diff --git a/benchmarks/BenchOps/BenchOps.cpp b/benchmarks/BenchOps/BenchOps.cpp index a6fada42d..0f89a35da 100644 --- a/benchmarks/BenchOps/BenchOps.cpp +++ b/benchmarks/BenchOps/BenchOps.cpp @@ -61,12 +61,12 @@ CONSOLE_APP_MAIN count += src[i & 15].val[0]; } } - { +/* { RTIMING("Barrier read"); for(int i = 0; i < N; i++) { count += ReadWithBarrier(src[i & 15].val[0]); } - } + }*/ { static StaticMutex mtx; RTIMING("StaticMutex"); diff --git a/benchmarks/BenchOps/BenchOps.upp b/benchmarks/BenchOps/BenchOps.upp index 0189e874a..7f14d1880 100644 --- a/benchmarks/BenchOps/BenchOps.upp +++ b/benchmarks/BenchOps/BenchOps.upp @@ -2,9 +2,6 @@ uses Core; file - BenchOps.cpp.mine, - BenchOps.cpp.r10063, - BenchOps.cpp.r10157, BenchOps.cpp; mainconfig diff --git a/reference/Topic/app.tpp/main$en-us.tpp b/reference/Topic/app.tpp/main$en-us.tpp deleted file mode 100644 index 51a8f1aed..000000000 --- a/reference/Topic/app.tpp/main$en-us.tpp +++ /dev/null @@ -1,7 +0,0 @@ -topic "This is Topic++ example page";[ $$0,0#00000000000000000000000000000000:Default] -[{_}%EN-US -[s0;=*6 This is Topic`+`+ example page&] -[s0; &] -[s0; This is a [^topic`:`/`/Topic`/app`/page2`$en`-us^ link to another -page].&] -[s0; ] \ No newline at end of file diff --git a/reference/Topic/app.tpp/page2$en-us.tpp b/reference/Topic/app.tpp/page2$en-us.tpp deleted file mode 100644 index 685bf5b06..000000000 --- a/reference/Topic/app.tpp/page2$en-us.tpp +++ /dev/null @@ -1,7 +0,0 @@ -TITLE("This is Topic++ example page 2") -COMPRESSED -120,156,139,86,80,81,49,208,49,80,54,32,0,172,92,82, -211,18,75,115,74,98,163,171,227,107,85,93,253,116,67,131, -21,162,139,13,172,21,66,50,50,139,21,128,168,36,35,85, -33,49,47,31,72,21,41,20,36,166,167,234,197,2,0,214, -14,24,213, \ No newline at end of file diff --git a/uppsrc/Core/src.tpp/AProcess$en-us.tpp b/uppsrc/Core/src.tpp/AProcess_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/AProcess$en-us.tpp rename to uppsrc/Core/src.tpp/AProcess_en-us.tpp diff --git a/uppsrc/Core/src.tpp/Any$en-us.tpp b/uppsrc/Core/src.tpp/Any_en-us.tpp similarity index 97% rename from uppsrc/Core/src.tpp/Any$en-us.tpp rename to uppsrc/Core/src.tpp/Any_en-us.tpp index 5dd65cef0..d43bf67d3 100644 --- a/uppsrc/Core/src.tpp/Any$en-us.tpp +++ b/uppsrc/Core/src.tpp/Any_en-us.tpp @@ -1,88 +1,88 @@ -topic "Any"; -[2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,0#27521748481378242620020725143825:desc] -[0 $$3,0#96390100711032703541132217272105:end] -[H6;0 $$4,0#05600065144404261032431302351956:begin] -[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] -[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] -[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] -[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] -[b42;2 $$9,9#13035079074754324216151401829390:normal] -[{_}%EN-US -[ {{10000@(113.42.0) [s0; [*@7;4 Any]]}}&] -[s3;%- &] -[s1;:Any`:`:class:%- [@(0.0.255) class]_[* Any]_:_[@(0.0.255) private]_[*@3 Moveable][@(0.0.255) < -][* Any][@(0.0.255) >]&] -[s9; Any is a special type of container capable of containing none -or single element of [/ any] type. It also provides methods for -querying the type stored and retrieving the content of specific -type.&] -[s0; Any has pick semantics.&] -[s3; &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] -[s0;0%- &] -[s5;:Any`:`:Any`(`):%- [* Any]()&] -[s2; Constructs an empty Any.&] -[s3; &] -[s4;%- &] -[s5;:Any`:`:Any`(pick`_ Any`&`):%- [* Any]([@(0.128.128) pick`_]_[_^topic`:`/`/Core`/src`/Any`$en`-us`#Any`:`:class^ A -ny][@(0.0.255) `&]_[*@3 s])&] -[s2; Pick constructor. Transfers content of source [* Any] [%-*@3 s] -while destroying its content by picking..&] -[s3; &] -[s4;%- &] -[s5;:Any`:`:`~Any`(`):%- [@(0.0.255) `~][* Any]()&] -[s2; Default destructor.&] -[s3; &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0; [* Public Method List]]}}&] -[s3;%- &] -[s5;:Upp`:`:Any`:`:Create`(Args`.`.`.args`):%- [@(0.0.255) template]_<[@(0.0.255) class]_ -[*@4 T], [@(0.0.255) class...]_[*@4 Args]>_[*@4 T][@(0.0.255) `&]_[* Create]([*@4 Args][@(0.0.255) . -..]_args)&] -[s2; Creates content of type T inside Any. Additional parameters -to constructor can be specified.&] -[s3;%- &] -[s4;%- &] -[s5;:Any`:`:Is`(`)const:%- [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 T][@(0.0.255) >]_[@(0.0.255) b -ool]_[* Is]()_[@(0.0.255) const]&] -[s2; Tests whether Any contains content of type T.&] -[s7; [*C@4 T]-|Required type.&] -[s7; [*/ Return value]-|true if there is content with type T in Any.&] -[s3;%- &] -[s4;%- &] -[s5;:Any`:`:Get`(`):%- [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 T][@(0.0.255) >]_[*@4 T][@(0.0.255) `& -]_[* Get]()&] -[s2; Returns reference to content. Is must be true, otherwise -this operation is illegal.&] -[s7; [*C@4 T]-|Required type.&] -[s7; [*/ Return value]-|Reference to content.&] -[s3;%- &] -[s4;%- &] -[s5;:Any`:`:Get`(`)const:%- [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 T][@(0.0.255) >]_[@(0.0.255) c -onst]_[*@4 T][@(0.0.255) `&]_[* Get]()_[@(0.0.255) const]&] -[s2; Returns constant reference to content. Is must be true, otherwise -this operation is illegal.&] -[s7; [*C@4 T]-|Required type.&] -[s7; [*/ Return value]-|Reference to content.&] -[s3;%- &] -[s4;%- &] -[s5;:Any`:`:Clear`(`):%- [@(0.0.255) void]_[* Clear]()&] -[s2; Removes (and destroys) content.&] -[s3;%- &] -[s4;%- &] -[s5;:Any`:`:IsEmpty`(`)const:%- [@(0.0.255) bool]_[* IsEmpty]()_[@(0.0.255) const]&] -[s7; [*/ Return value]-|true if there is no content.&] -[s3;%- &] -[s4;%- &] -[s5;:Upp`:`:Any`:`:operator`=`(Upp`:`:Any`&`&`):%- [@(0.0.255) void]_[* operator`=]([_^topic`:`/`/Core`/src`/Any`$en`-us`#Any`:`:class^ A -ny][@(0.0.255) `&`&]_[*@3 s])&] -[s2; Pick assignment.&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:Any`:`:Any`(Upp`:`:Any`&`&`):%- [* Any]([_^topic`:`/`/Core`/src`/Any`$en`-us`#Any`:`:class^ A -ny][@(0.0.255) `&`&]_[*@3 s])&] -[s2; Pick constructor.&] +topic "Any"; +[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,0#27521748481378242620020725143825:desc] +[0 $$3,0#96390100711032703541132217272105:end] +[H6;0 $$4,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] +[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] +[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] +[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] +[b42;2 $$9,9#13035079074754324216151401829390:normal] +[{_}%EN-US +[ {{10000@(113.42.0) [s0; [*@7;4 Any]]}}&] +[s3;%- &] +[s1;:Any`:`:class:%- [@(0.0.255) class]_[* Any]_:_[@(0.0.255) private]_[*@3 Moveable][@(0.0.255) < +][* Any][@(0.0.255) >]&] +[s9; Any is a special type of container capable of containing none +or single element of [/ any] type. It also provides methods for +querying the type stored and retrieving the content of specific +type.&] +[s0; Any has pick semantics.&] +[s3; &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] +[s0;0%- &] +[s5;:Any`:`:Any`(`):%- [* Any]()&] +[s2; Constructs an empty Any.&] +[s3; &] +[s4;%- &] +[s5;:Any`:`:Any`(pick`_ Any`&`):%- [* Any]([@(0.128.128) pick`_]_[_^topic`:`/`/Core`/src`/Any`$en`-us`#Any`:`:class^ A +ny][@(0.0.255) `&]_[*@3 s])&] +[s2; Pick constructor. Transfers content of source [* Any] [%-*@3 s] +while destroying its content by picking..&] +[s3; &] +[s4;%- &] +[s5;:Any`:`:`~Any`(`):%- [@(0.0.255) `~][* Any]()&] +[s2; Default destructor.&] +[s3; &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0; [* Public Method List]]}}&] +[s3;%- &] +[s5;:Upp`:`:Any`:`:Create`(Args`.`.`.args`):%- [@(0.0.255) template]_<[@(0.0.255) class]_ +[*@4 T], [@(0.0.255) class...]_[*@4 Args]>_[*@4 T][@(0.0.255) `&]_[* Create]([*@4 Args][@(0.0.255) . +..]_args)&] +[s2; Creates content of type T inside Any. Additional parameters +to constructor can be specified.&] +[s3;%- &] +[s4;%- &] +[s5;:Any`:`:Is`(`)const:%- [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 T][@(0.0.255) >]_[@(0.0.255) b +ool]_[* Is]()_[@(0.0.255) const]&] +[s2; Tests whether Any contains content of type T.&] +[s7; [*C@4 T]-|Required type.&] +[s7; [*/ Return value]-|true if there is content with type T in Any.&] +[s3;%- &] +[s4;%- &] +[s5;:Any`:`:Get`(`):%- [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 T][@(0.0.255) >]_[*@4 T][@(0.0.255) `& +]_[* Get]()&] +[s2; Returns reference to content. Is must be true, otherwise +this operation is illegal.&] +[s7; [*C@4 T]-|Required type.&] +[s7; [*/ Return value]-|Reference to content.&] +[s3;%- &] +[s4;%- &] +[s5;:Any`:`:Get`(`)const:%- [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 T][@(0.0.255) >]_[@(0.0.255) c +onst]_[*@4 T][@(0.0.255) `&]_[* Get]()_[@(0.0.255) const]&] +[s2; Returns constant reference to content. Is must be true, otherwise +this operation is illegal.&] +[s7; [*C@4 T]-|Required type.&] +[s7; [*/ Return value]-|Reference to content.&] +[s3;%- &] +[s4;%- &] +[s5;:Any`:`:Clear`(`):%- [@(0.0.255) void]_[* Clear]()&] +[s2; Removes (and destroys) content.&] +[s3;%- &] +[s4;%- &] +[s5;:Any`:`:IsEmpty`(`)const:%- [@(0.0.255) bool]_[* IsEmpty]()_[@(0.0.255) const]&] +[s7; [*/ Return value]-|true if there is no content.&] +[s3;%- &] +[s4;%- &] +[s5;:Upp`:`:Any`:`:operator`=`(Upp`:`:Any`&`&`):%- [@(0.0.255) void]_[* operator`=]([_^topic`:`/`/Core`/src`/Any`$en`-us`#Any`:`:class^ A +ny][@(0.0.255) `&`&]_[*@3 s])&] +[s2; Pick assignment.&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:Any`:`:Any`(Upp`:`:Any`&`&`):%- [* Any]([_^topic`:`/`/Core`/src`/Any`$en`-us`#Any`:`:class^ A +ny][@(0.0.255) `&`&]_[*@3 s])&] +[s2; Pick constructor.&] [s0; ]] \ No newline at end of file diff --git a/uppsrc/Core/src.tpp/AppEnv$en-us.tpp b/uppsrc/Core/src.tpp/AppEnv_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/AppEnv$en-us.tpp rename to uppsrc/Core/src.tpp/AppEnv_en-us.tpp diff --git a/uppsrc/Core/src.tpp/ArrayMap$en-us.tpp b/uppsrc/Core/src.tpp/ArrayMap_en-us.tpp similarity index 98% rename from uppsrc/Core/src.tpp/ArrayMap$en-us.tpp rename to uppsrc/Core/src.tpp/ArrayMap_en-us.tpp index 841025c26..ade9bad9d 100644 --- a/uppsrc/Core/src.tpp/ArrayMap$en-us.tpp +++ b/uppsrc/Core/src.tpp/ArrayMap_en-us.tpp @@ -1,176 +1,176 @@ -topic "ArrayMap"; -[2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,0#27521748481378242620020725143825:desc] -[0 $$3,0#96390100711032703541132217272105:end] -[H6;0 $$4,0#05600065144404261032431302351956:begin] -[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] -[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] -[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] -[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] -[b42;2 $$9,9#13035079074754324216151401829390:normal] -[{_}%EN-US -[ {{10000@(113.42.0) [s0; [*@7;4 ArrayMap]]}}&] -[s3; &] -[s1;:noref:%- [@(0.0.255)3 template][3 _<][@(0.0.255)3 class][3 _][*@4;3 K][3 , -][@(0.0.255)3 class][3 _][*@4;3 T][3 , ][@(0.0.255)3 class][3 _][*@4;3 HashFn][3 _`=_StdHash][@(0.0.255)3 < -][*@4;3 K][@(0.0.255)3 >][3 _>]&] -[s1;:ArrayMap`:`:class:%- [@(0.0.255) class]_[* ArrayMap]_:_[@(0.0.255) public]_[*@3 MoveableA -ndDeepCopyOption][@(0.0.255) <]_[* ArrayMap][@(0.0.255) <][*@4 K], [*@4 T], -[*@4 HashFn][@(0.0.255) >]_>, [@(0.0.255) public]_[*@3 AMap][@(0.0.255) <]_[*@4 K], -[*@4 T], [_^topic`:`/`/Core`/src`/Array`$en`-us`#Array`:`:class^ Array][@(0.0.255) <][*@4 T -][@(0.0.255) >], [*@4 HashFn]_>_&] -[s8; [*@4 K]-|Type of keys. K must have deep copy constructor, be [/^dpp`:`/`/SourceDoc`/Containers`/Moveable^ m -oveable] and must have operator`=`= defined.&] -[s8; [*@4 T]-|Type or base class of the values stored in ArrayMap. There -is no common requirement for T.&] -[s8; [*@4 HashFn]-|Hashing class. Must have defined unsigned operator()(const -K`& x) method returning hash value for elements.&] -[s9; Array flavor of map. Inherits most of its functionality from -[^topic`:`/`/Core`/src`/AMap`$en`-us^ AMap] and adds only members -specific for its flavor.&] -[s9; Like any other NTL container, ArrayMap is a [*/^topic`:`/`/Core`/srcdoc`/Moveable`$en`-us^ m -oveable][*/ ]type with [*/^topic`:`/`/Core`/srcdoc`/pick`_`$en`-us^ pick -and optional deep copy] transfer semantics. Calling methods of -a picked VectorMap is logic error with the exceptions of:&] -[s0; &] -[s0; [C+75 void ][*C+75 operator`=][C+75 (pick`_ ArrayMap`& ][*C@3+75 v][C+75 ) -][/+75 (defined by composition)]&] -[s0; [C+75 void ][*C+75 operator<<`=][C+75 (const AMap`& ][*C@3+75 v][C+75 )][+75 -][/+75 (defined in AMap)]&] -[s0; [C+75 void ][*C+75 Clear][C+75 ()]&] -[s0; [C+75 bool ][*C+75 IsPicked][C+75 () const]&] -[s9; Optional deep copy operator is inherited from AMap class. Pick -operator is implicitly defined by composition.&] -[s0; &] -[s0;~~~.416; [* Base classes]&] -[s0; [^topic`:`/`/Core`/src`/AMap`$en`-us`#AMap`:`:class^ AMap< K, -T, Array, HashFn >]&] -[s3; &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] -[s3;%- &] -[s5;:ArrayMap`:`:ArrayMap`(`):%- [* ArrayMap]()&] -[s2; Default constructor. Creates empty ArrayMap.&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:ArrayMap`:`:ArrayMap`(std`:`:initializer`_list``>`):%- [* A -rrayMap]([_^http`:`/`/en`.cppreference`.com`/w`/cpp`/utility`/initializer`_list^ st -d`::initializer`_list]<[_^http`:`/`/en`.cppreference`.com`/w`/cpp`/utility`/pair^ st -d`::pair]<[*@4 K], [*@4 T]>>_[*@3 init])&] -[s2; C`+`+ 11 initialization.&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:ArrayMap`:`:operator`(`)`(const K`&`,const T`&`):%- [*_^Upp`:`:ArrayMap^ Ar -rayMap][@(0.0.255) `&]_[* operator()]([@(0.0.255) const]_[*@4 K][@(0.0.255) `&]_[*@3 k], -[@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[*@3 v])&] -[s2; Same as Add([%-*@3 k], [%-*@3 v]), returns `*this. Syntax sugar -for creating map.&] -[s3; &] -[s4;%- &] -[s5;:ArrayMap`:`:ArrayMap`(const ArrayMap`&`,int`):%- [* ArrayMap]([@(0.0.255) const]_[* Ar -rayMap][@(0.0.255) `&]_[*@3 s], [@(0.0.255) int])&] -[s2; Optional deep copy constructor.&] -[s6; Requires T to have deep copy constructor or optional deep copy -constructor if Array stores only objects of type T.&] -[s6; Requires polymorphic deep copy if Array also stores objects -of type derived from T.&] -[s7; [*C@3 s]-|Source ArrayMap.&] -[s3; &] -[s4;%- &] -[s5;:ArrayMap`:`:ArrayMap`(pick`_ Index``&`,pick`_ Array``&`):%- [* Arr -ayMap]([@(0.128.128) pick`_]_[_^topic`:`/`/Core`/src`/Indext`$en`-us`#Index`:`:class^ I -ndex][@(0.0.255) <][*@4 K], [*@4 HashFn][@(0.0.255) >`&]_[*@3 ndx], [@(0.128.128) pick`_]_[_^topic`:`/`/Core`/src`/Array`$en`-us`#Array`:`:class^ A -rray][@(0.0.255) <][*@4 T][@(0.0.255) >`&]_[*@3 val])&] -[s2; Pick`-constructs ArrayMap from Index of keys and Array of values. -The source containers should have equal number of elements.&] -[s7; [*C@3 ndx]-|Source Index.&] -[s7; [*C@3 val]-|Source Array.&] -[s3; &] -[s4;%- &] -[s5;:ArrayMap`:`:ArrayMap`(pick`_ Vector``&`,pick`_ Array``&`):%- [* ArrayMap]( -[@(0.128.128) pick`_]_[_^topic`:`/`/Core`/src`/Vector`$en`-us`#Vector`:`:class^ Vecto -r][@(0.0.255) <][*@4 K][@(0.0.255) >`&]_[*@3 ndx], [@(0.128.128) pick`_]_[_^topic`:`/`/Core`/src`/Array`$en`-us`#Array`:`:class^ A -rray][@(0.0.255) <][*@4 T][@(0.0.255) >`&]_[*@3 val])&] -[s2; Pick`-constructs ArrayMap from Vector of keys and Array of values. -The source containers should have equal number of elements.&] -[s7; [*C@3 ndx]-|Source Index.&] -[s7; [*C@3 val]-|Source Array.&] -[s3; &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] -[s3;%- &] -[s5;:ArrayMap`:`:Add`(const K`&`,const T`&`):%- [*@4 T][@(0.0.255) `&]_[* Add]([@(0.0.255) co -nst]_[*@4 K][@(0.0.255) `&]_[*@3 k], [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[*@3 x])&] -[s2; Adds a key and value pair to the ArrayMap. This method has to -be reimplemented in ArrayMap (using simple forwarding) due to -overloading of Add in other forms.Returns a reference to the -element.&] -[s6; T must have deep copy constructor.&] -[s6; Invalidates iterators to the ArrayMap.&] -[s6; Invalidates references to keys.&] -[s7; [*C@3 k]-|Key.&] -[s7; [*C@3 x]-|Value.&] -[s3; &] -[s4;%- &] -[s5;:ArrayMap`:`:Add`(const K`&`):%- [*@4 T][@(0.0.255) `&]_[* Add]([@(0.0.255) const]_[*@4 K][@(0.0.255) `& -]_[*@3 k])&] -[s2; Adds a key to the ArrayMap and returns a reference to the corresponding -default constructed value. This method has to be reimplemented -in ArrayMap (using simple forwarding) due to overloading of [* Add] -in other forms.&] -[s6; T must have default constructor.&] -[s6; Invalidates iterators to the ArrayMap.&] -[s6; Invalidates references to keys.&] -[s7; [*@3 k]-|Key.&] -[s7; [*/ Return value]-|Reference to value.&] -[s3; &] -[s4;%- &] -[s5;:ArrayMap`:`:Add`(const K`&`,T`*`):%- [*@4 T][@(0.0.255) `&]_[* Add]([@(0.0.255) const]_[*@4 K -][@(0.0.255) `&]_[*@3 k], [*@4 T]_`*[*@3 newt])&] -[s2; Adds a key`-value pair to the ArrayMap. The value is specified -by a pointer to the object. ArrayMap takes over ownership of -this object. This variant allows use of ArrayMap as polymorphic -container, because type of added element can be also derived -from T as well. No constructor is applied.&] -[s7; [*@3 k]-|Key.&] -[s7; [%-*@3 newt]-|Value.&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:ArrayMap`:`:Create`(const K`&`,Args`.`.`.args`):%- [@(0.0.255) template]_<[@(0.0.255) c -lass]_[*@4 TT], [@(0.0.255) class...]_[*@4 Args]>_[*@4 TT][@(0.0.255) `&]_[* Create]([@(0.0.255) c -onst]_[*@4 K][@(0.0.255) `&]_[*@3 k], [*@4 Args][@(0.0.255) ...]_args)&] -[s2;%- [%% Adds a new key ][*@3 k][%% with value element of type ][*@4 TT][%% -(must be derived from ][*@4 T]). Value is constructd in`-place, -with args as constructor parameters.&] -[s3; &] -[s4;%- &] -[s5;:ArrayMap`:`:Set`(int`,T`*`):%- [*@4 T][@(0.0.255) `&]_[* Set]([@(0.0.255) int]_[*@3 i], -[*@4 T]_`*[*@3 ptr])&] -[s2; Sets value at specified index. Value is specified by a pointer -to the object. ArrayMap takes over ownership of this object. -Returns a reference to the element.&] -[s7; [*C@3 i]-|Index.&] -[s7; [*C@3 ptr]-|Value.&] -[s3; &] -[s4;%- &] -[s5;:ArrayMap`:`:PopDetach`(`):%- [*@4 T]_`*[* PopDetach]()&] -[s2; Drops last element in the ArrayMap, giving up ownership of value. -Client is responsible for deletion of the element.&] -[s6; Invalidates iterators to ArrayMap.&] -[s7; [* Return value]-|Value.&] -[s3; &] -[s4;%- &] -[s5;:ArrayMap`:`:Detach`(int`):%- [*@4 T]_`*[* Detach]([@(0.0.255) int]_[*@3 i])&] -[s2; Removes element [%-*@3 i]. but does not destroy it `- the heap -pointer to the element is returned. Client is responsible for -deletion of the element.&] -[s3; &] -[s4;%- &] -[s5;:ArrayMap`:`:Swap`(int`,T`*`):%- [*@4 T]_`*[* Swap]([@(0.0.255) int]_[*@3 i], -[*@4 T]_`*[*@3 newt])&] -[s2; Sets element at [%-*@3 i] to [%-*@3 newt].and returns a pointer -to original element. Client is responsible for deletion of the -original element.&] -[s3; &] +topic "ArrayMap"; +[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,0#27521748481378242620020725143825:desc] +[0 $$3,0#96390100711032703541132217272105:end] +[H6;0 $$4,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] +[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] +[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] +[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] +[b42;2 $$9,9#13035079074754324216151401829390:normal] +[{_}%EN-US +[ {{10000@(113.42.0) [s0; [*@7;4 ArrayMap]]}}&] +[s3; &] +[s1;:noref:%- [@(0.0.255)3 template][3 _<][@(0.0.255)3 class][3 _][*@4;3 K][3 , +][@(0.0.255)3 class][3 _][*@4;3 T][3 , ][@(0.0.255)3 class][3 _][*@4;3 HashFn][3 _`=_StdHash][@(0.0.255)3 < +][*@4;3 K][@(0.0.255)3 >][3 _>]&] +[s1;:ArrayMap`:`:class:%- [@(0.0.255) class]_[* ArrayMap]_:_[@(0.0.255) public]_[*@3 MoveableA +ndDeepCopyOption][@(0.0.255) <]_[* ArrayMap][@(0.0.255) <][*@4 K], [*@4 T], +[*@4 HashFn][@(0.0.255) >]_>, [@(0.0.255) public]_[*@3 AMap][@(0.0.255) <]_[*@4 K], +[*@4 T], [_^topic`:`/`/Core`/src`/Array`$en`-us`#Array`:`:class^ Array][@(0.0.255) <][*@4 T +][@(0.0.255) >], [*@4 HashFn]_>_&] +[s8; [*@4 K]-|Type of keys. K must have deep copy constructor, be [/^dpp`:`/`/SourceDoc`/Containers`/Moveable^ m +oveable] and must have operator`=`= defined.&] +[s8; [*@4 T]-|Type or base class of the values stored in ArrayMap. There +is no common requirement for T.&] +[s8; [*@4 HashFn]-|Hashing class. Must have defined unsigned operator()(const +K`& x) method returning hash value for elements.&] +[s9; Array flavor of map. Inherits most of its functionality from +[^topic`:`/`/Core`/src`/AMap`$en`-us^ AMap] and adds only members +specific for its flavor.&] +[s9; Like any other NTL container, ArrayMap is a [*/^topic`:`/`/Core`/srcdoc`/Moveable`$en`-us^ m +oveable][*/ ]type with [*/^topic`:`/`/Core`/srcdoc`/pick`_`$en`-us^ pick +and optional deep copy] transfer semantics. Calling methods of +a picked VectorMap is logic error with the exceptions of:&] +[s0; &] +[s0; [C+75 void ][*C+75 operator`=][C+75 (pick`_ ArrayMap`& ][*C@3+75 v][C+75 ) +][/+75 (defined by composition)]&] +[s0; [C+75 void ][*C+75 operator<<`=][C+75 (const AMap`& ][*C@3+75 v][C+75 )][+75 +][/+75 (defined in AMap)]&] +[s0; [C+75 void ][*C+75 Clear][C+75 ()]&] +[s0; [C+75 bool ][*C+75 IsPicked][C+75 () const]&] +[s9; Optional deep copy operator is inherited from AMap class. Pick +operator is implicitly defined by composition.&] +[s0; &] +[s0;~~~.416; [* Base classes]&] +[s0; [^topic`:`/`/Core`/src`/AMap`$en`-us`#AMap`:`:class^ AMap< K, +T, Array, HashFn >]&] +[s3; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] +[s3;%- &] +[s5;:ArrayMap`:`:ArrayMap`(`):%- [* ArrayMap]()&] +[s2; Default constructor. Creates empty ArrayMap.&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:ArrayMap`:`:ArrayMap`(std`:`:initializer`_list``>`):%- [* A +rrayMap]([_^http`:`/`/en`.cppreference`.com`/w`/cpp`/utility`/initializer`_list^ st +d`::initializer`_list]<[_^http`:`/`/en`.cppreference`.com`/w`/cpp`/utility`/pair^ st +d`::pair]<[*@4 K], [*@4 T]>>_[*@3 init])&] +[s2; C`+`+ 11 initialization.&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:ArrayMap`:`:operator`(`)`(const K`&`,const T`&`):%- [*_^Upp`:`:ArrayMap^ Ar +rayMap][@(0.0.255) `&]_[* operator()]([@(0.0.255) const]_[*@4 K][@(0.0.255) `&]_[*@3 k], +[@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[*@3 v])&] +[s2; Same as Add([%-*@3 k], [%-*@3 v]), returns `*this. Syntax sugar +for creating map.&] +[s3; &] +[s4;%- &] +[s5;:ArrayMap`:`:ArrayMap`(const ArrayMap`&`,int`):%- [* ArrayMap]([@(0.0.255) const]_[* Ar +rayMap][@(0.0.255) `&]_[*@3 s], [@(0.0.255) int])&] +[s2; Optional deep copy constructor.&] +[s6; Requires T to have deep copy constructor or optional deep copy +constructor if Array stores only objects of type T.&] +[s6; Requires polymorphic deep copy if Array also stores objects +of type derived from T.&] +[s7; [*C@3 s]-|Source ArrayMap.&] +[s3; &] +[s4;%- &] +[s5;:ArrayMap`:`:ArrayMap`(pick`_ Index``&`,pick`_ Array``&`):%- [* Arr +ayMap]([@(0.128.128) pick`_]_[_^topic`:`/`/Core`/src`/Indext`$en`-us`#Index`:`:class^ I +ndex][@(0.0.255) <][*@4 K], [*@4 HashFn][@(0.0.255) >`&]_[*@3 ndx], [@(0.128.128) pick`_]_[_^topic`:`/`/Core`/src`/Array`$en`-us`#Array`:`:class^ A +rray][@(0.0.255) <][*@4 T][@(0.0.255) >`&]_[*@3 val])&] +[s2; Pick`-constructs ArrayMap from Index of keys and Array of values. +The source containers should have equal number of elements.&] +[s7; [*C@3 ndx]-|Source Index.&] +[s7; [*C@3 val]-|Source Array.&] +[s3; &] +[s4;%- &] +[s5;:ArrayMap`:`:ArrayMap`(pick`_ Vector``&`,pick`_ Array``&`):%- [* ArrayMap]( +[@(0.128.128) pick`_]_[_^topic`:`/`/Core`/src`/Vector`$en`-us`#Vector`:`:class^ Vecto +r][@(0.0.255) <][*@4 K][@(0.0.255) >`&]_[*@3 ndx], [@(0.128.128) pick`_]_[_^topic`:`/`/Core`/src`/Array`$en`-us`#Array`:`:class^ A +rray][@(0.0.255) <][*@4 T][@(0.0.255) >`&]_[*@3 val])&] +[s2; Pick`-constructs ArrayMap from Vector of keys and Array of values. +The source containers should have equal number of elements.&] +[s7; [*C@3 ndx]-|Source Index.&] +[s7; [*C@3 val]-|Source Array.&] +[s3; &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] +[s3;%- &] +[s5;:ArrayMap`:`:Add`(const K`&`,const T`&`):%- [*@4 T][@(0.0.255) `&]_[* Add]([@(0.0.255) co +nst]_[*@4 K][@(0.0.255) `&]_[*@3 k], [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[*@3 x])&] +[s2; Adds a key and value pair to the ArrayMap. This method has to +be reimplemented in ArrayMap (using simple forwarding) due to +overloading of Add in other forms.Returns a reference to the +element.&] +[s6; T must have deep copy constructor.&] +[s6; Invalidates iterators to the ArrayMap.&] +[s6; Invalidates references to keys.&] +[s7; [*C@3 k]-|Key.&] +[s7; [*C@3 x]-|Value.&] +[s3; &] +[s4;%- &] +[s5;:ArrayMap`:`:Add`(const K`&`):%- [*@4 T][@(0.0.255) `&]_[* Add]([@(0.0.255) const]_[*@4 K][@(0.0.255) `& +]_[*@3 k])&] +[s2; Adds a key to the ArrayMap and returns a reference to the corresponding +default constructed value. This method has to be reimplemented +in ArrayMap (using simple forwarding) due to overloading of [* Add] +in other forms.&] +[s6; T must have default constructor.&] +[s6; Invalidates iterators to the ArrayMap.&] +[s6; Invalidates references to keys.&] +[s7; [*@3 k]-|Key.&] +[s7; [*/ Return value]-|Reference to value.&] +[s3; &] +[s4;%- &] +[s5;:ArrayMap`:`:Add`(const K`&`,T`*`):%- [*@4 T][@(0.0.255) `&]_[* Add]([@(0.0.255) const]_[*@4 K +][@(0.0.255) `&]_[*@3 k], [*@4 T]_`*[*@3 newt])&] +[s2; Adds a key`-value pair to the ArrayMap. The value is specified +by a pointer to the object. ArrayMap takes over ownership of +this object. This variant allows use of ArrayMap as polymorphic +container, because type of added element can be also derived +from T as well. No constructor is applied.&] +[s7; [*@3 k]-|Key.&] +[s7; [%-*@3 newt]-|Value.&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:ArrayMap`:`:Create`(const K`&`,Args`.`.`.args`):%- [@(0.0.255) template]_<[@(0.0.255) c +lass]_[*@4 TT], [@(0.0.255) class...]_[*@4 Args]>_[*@4 TT][@(0.0.255) `&]_[* Create]([@(0.0.255) c +onst]_[*@4 K][@(0.0.255) `&]_[*@3 k], [*@4 Args][@(0.0.255) ...]_args)&] +[s2;%- [%% Adds a new key ][*@3 k][%% with value element of type ][*@4 TT][%% +(must be derived from ][*@4 T]). Value is constructd in`-place, +with args as constructor parameters.&] +[s3; &] +[s4;%- &] +[s5;:ArrayMap`:`:Set`(int`,T`*`):%- [*@4 T][@(0.0.255) `&]_[* Set]([@(0.0.255) int]_[*@3 i], +[*@4 T]_`*[*@3 ptr])&] +[s2; Sets value at specified index. Value is specified by a pointer +to the object. ArrayMap takes over ownership of this object. +Returns a reference to the element.&] +[s7; [*C@3 i]-|Index.&] +[s7; [*C@3 ptr]-|Value.&] +[s3; &] +[s4;%- &] +[s5;:ArrayMap`:`:PopDetach`(`):%- [*@4 T]_`*[* PopDetach]()&] +[s2; Drops last element in the ArrayMap, giving up ownership of value. +Client is responsible for deletion of the element.&] +[s6; Invalidates iterators to ArrayMap.&] +[s7; [* Return value]-|Value.&] +[s3; &] +[s4;%- &] +[s5;:ArrayMap`:`:Detach`(int`):%- [*@4 T]_`*[* Detach]([@(0.0.255) int]_[*@3 i])&] +[s2; Removes element [%-*@3 i]. but does not destroy it `- the heap +pointer to the element is returned. Client is responsible for +deletion of the element.&] +[s3; &] +[s4;%- &] +[s5;:ArrayMap`:`:Swap`(int`,T`*`):%- [*@4 T]_`*[* Swap]([@(0.0.255) int]_[*@3 i], +[*@4 T]_`*[*@3 newt])&] +[s2; Sets element at [%-*@3 i] to [%-*@3 newt].and returns a pointer +to original element. Client is responsible for deletion of the +original element.&] +[s3; &] [s0; ]] \ No newline at end of file diff --git a/uppsrc/Core/src.tpp/Array$en-us.tpp b/uppsrc/Core/src.tpp/Array_en-us.tpp similarity index 97% rename from uppsrc/Core/src.tpp/Array$en-us.tpp rename to uppsrc/Core/src.tpp/Array_en-us.tpp index b2e0d4593..f10bee783 100644 --- a/uppsrc/Core/src.tpp/Array$en-us.tpp +++ b/uppsrc/Core/src.tpp/Array_en-us.tpp @@ -1,638 +1,638 @@ -topic "Array"; -[2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,0#27521748481378242620020725143825:desc] -[0 $$3,0#96390100711032703541132217272105:end] -[H6;0 $$4,0#05600065144404261032431302351956:begin] -[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] -[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] -[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] -[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] -[b42;2 $$9,9#13035079074754324216151401829390:normal] -[{_}%EN-US -[ {{10000@(113.42.0) [s0; [*@7;4 Array]]}}&] -[s3;%- &] -[s1;:noref:%- [@(0.0.255)3 template][3 _<][@(0.0.255)3 class][3 _][*@4;3 T][@(0.0.255)3 >]&] -[s1;:Array`:`:class:%- [@(0.0.255) class]_[* Array]_:_[@(0.0.255) public]_[*@3 MoveableAndDeep -CopyOption][@(0.0.255) <]_[* Array][@(0.0.255) <][*@4 T][@(0.0.255) >]_>_&] -[s8; [*@4 T]-|Type or base class of elements stored in the Array. There -is no common requirement for T.&] -[s9; The most universal form of basic random access container. Its -features are derived from fact that typically it is implemented -using indirect container of pointers to T like Vector. Nevertheless -it supports common concepts as ownership of contained elements, -reference (not pointer) access to elements and so on.&] -[s9; It provides almost all operations of Vector with the same semantics -and almost any Vector can be directly replaced by Array. On the -other hand, it provides some special operations impossible for -Vector and most important, it never invalidates references (that -means C`+`+ references and pointers) to elements (it often invalidates -iterators, though).&] -[s9; Array can be also used to store polymorphic elements `- stored -elements could be derived from T. To store such elements, you -pass a pointer to an element previously created on the heap. -Still, Array takes over ownership of such element (it e.g. deletes -it when appropriate). You can also use this method to create -an Array of elements that do not have either pick, deep copy -constructor nor default constructor.&] -[s9; There are also operations that allow detaching an element from -an Array, removing it but not destroying. Pointer to such element -is returned from this operation and the Array gives up ownership.&] -[s9; Disadvantage of Array over Vector is performance `- most operations -are significantly slower than with Vectors (by factor up to 8, -it depends on the speed of malloc/free). Still, some operations -might be even faster, e.g. Insert and Remove operations usually -move much less memory.&] -[s9; As for memory, for small size of elements, Array memory consumption -is significantly higher than Vector consumption. As the size -of the elements grow, Array starts to be better than Vector.&] -[s9; Iterators to Array satisfy all C`+`+ standard library requirements -for random access iterator plus they allow assignment (and copy -constructor) and testing for 0 (that is NULL) pointer.&] -[s9; Like any other NTL container, Array is a [*/^topic`:`/`/Core`/srcdoc`/Moveable`$en`-us^ m -oveable][*/ ]type with [*/^topic`:`/`/Core`/srcdoc`/pick`_`$en`-us^ pick -and optional deep copy] transfer semantics.&] -[s3; &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] -[s3;%- &] -[s5;:Array`:`:Array`(`):%- [* Array]()&] -[s2; Default constructor. Constructs an empty Array.&] -[s3;%- &] -[s4;%- &] -[s5;:Array`:`:Array`(pick`_ Array`&`):%- [* Array]([@(0.128.128) pick`_]_[* Array][@(0.0.255) `& -]_[*@3 v])&] -[s2; Pick constructor. Transfers the source Array in low constant -time, but destroys it by picking. &] -[s7; [*@3 v]-|Source Array.&] -[s3; &] -[s4; &] -[s5;:Array`:`:Array`(const Array`&`,int`):%- [* Array]([@(0.0.255) const]_[* Array][@(0.0.255) `& -]_[*@3 v], [@(0.0.255) int])&] -[s2; Optional deep copy constructor.&] -[s6; Requires T to have deep copy constructor or optional deep copy -constructor if the Array stores only objects of type T.&] -[s6; Requires polymorphic deep copy if the Array stores also objects -of type derived from T.&] -[s7; [*@3 v]-|Source Array.&] -[s3; &] -[s4; &] -[s5;:Array`:`:`~Array`(`):%- [@(0.0.255) `~][* Array]()&] -[s2; Destructor. Invokes the destructor of every element in the Array.&] -[s3;%- &] -[s4;%- &] -[s5;:Upp`:`:Array`:`:Array`(std`:`:initializer`_list``):%- [* Array]([_^http`:`/`/en`.cppreference`.com`/w`/cpp`/utility`/initializer`_list^ s -td`::initializer`_list]<[*@4 T]>_[*@3 init])&] -[s2; C`+`+11 initialization.&] -[s0; &] -[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] -[s4;H0;%- &] -[s5;:Array`:`:Add`(`):%- [*@4 T][@(0.0.255) `&]_[* Add]()&] -[s2; Adds a new default constructed element to the Array.&] -[s6; Requires T to have default constructor.&] -[s6; Invalidates iterators to the Array.&] -[s7; [*/ Return value]-|Reference to newly added default constructed -element.&] -[s3;%- &] -[s4;%- &] -[s5;:Array`:`:Add`(const T`&`):%- [*@4 T][@(0.0.255) `&]_[* Add]([@(0.0.255) const]_[*@4 T][@(0.0.255) `& -]_[*@3 x])&] -[s2; Adds a new element with specified value to the Array.&] -[s6; Requires T to have deep copy constructor.&] -[s6; Invalidates iterators to the Array.&] -[s7; [*C@3 x]-|The value that is copied to newly created element.&] -[s7; [*/ Return value]-|Reference to new element in Array.&] -[s3;%- &] -[s4;%- &] -[s5;:Upp`:`:Array`:`:Add`(T`&`&`):%- [*@4 T][@(0.0.255) `&]_[* Add]([*@4 T][@(0.0.255) `&`&]_[*@3 x -])&] -[s2; Adds new element to the Array and picks value of parameter to -it.&] -[s3;%- &] -[s4;%- &] -[s5;:Array`:`:Add`(T`*`):%- [*@4 T][@(0.0.255) `&]_[* Add]([*@4 T]_`*[*@3 newt])&] -[s2; Adds a new element to the Array. Element is specified by pointer -to an object created using operator new. Array takes over ownership -of this object. This variant allows the use of an Array as a -polymorphic container, because the type of the added element -can be either T or a type derived from T. No constructor is applied. -&] -[s7; [*C@3 newt]-|Object to be added.&] -[s7; [*/ Return value]-|Reference to the new element (that is [* `*newt]).&] -[s0;*%- &] -[s4;%- &] -[s5;:Array`:`:Create`(`):%- [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 TT][@(0.0.255) >]_ -[*@4 TT][@(0.0.255) `&]_[* Create]()&] -[s2; Creates and adds a new element to the Array.&] -[s6; Requires T to have default constructor.&] -[s7; [*C@4 TT]-|Type of the new element.&] -[s7; [*/ Return value]-|Reference to the newly created element.&] -[s3;%- &] -[s4;%- &] -[s5;:Array`:`:operator`[`]`(int`)const:%- [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[* operat -or`[`]]([@(0.0.255) int]_[*@3 i])_[@(0.0.255) const]&] -[s2; Returns a reference to the element at the specified position.&] -[s7; [*C@3 i]-|Position of the element.&] -[s7; [*/ Return value]-|Constant reference to the element.&] -[s3;%- &] -[s4;%- &] -[s5;:Array`:`:operator`[`]`(int`):%- [*@4 T][@(0.0.255) `&]_[* operator`[`]]([@(0.0.255) int]_ -[*@3 i])&] -[s2; Returns a reference to the element at the specified position.&] -[s7; [*C@3 i]-|Position of element.&] -[s7; [*/ Return value]-|Reference to the element.&] -[s3;%- &] -[s4;%- &] -[s5;:Array`:`:GetCount`(`)const:%- [@(0.0.255) int]_[* GetCount]()_[@(0.0.255) const]&] -[s2; Returns the number of elements in the Array.&] -[s7; [*/ Return value]-|Actual number of elements.&] -[s3;%- &] -[s4;%- &] -[s5;:Array`:`:IsEmpty`(`)const:%- [@(0.0.255) bool]_[* IsEmpty]()_[@(0.0.255) const]&] -[s2; Tests whether Array is empty. Same as GetCount() `=`= 0.&] -[s7; [*/ Return value]-|true if Array is empty, false otherwise.&] -[s3;%- &] -[s4;%- &] -[s5;:Array`:`:Trim`(int`):%- [@(0.0.255) void]_[* Trim]([@(0.0.255) int]_[*@3 n])&] -[s2; Reduces the number of elements in the Array to the specified -number. Required number must be less than or equal to the actual -number of elements in the Array.&] -[s7; [*C@3 n]-|Required number of elements.&] -[s3;%- &] -[s4;%- &] -[s5;:Array`:`:SetCount`(int`):%- [@(0.0.255) void]_[* SetCount]([@(0.0.255) int]_[*@3 n])&] -[s2; Changes the count of elements in the Array to the specified -value. If the required number of elements is greater than actual -number, the newly added elements are default constructed. If -the Array`'s capacity has to be increased, the new capacity will -exactly match the required number of elements (unlike [* SetCountR]).&] -[s6; Requires T to have default constructor.&] -[s6; Invalidates iterators to the Array.&] -[s7; [*C@3 n]-|Required number of elements.&] -[s3;%- &] -[s4;%- &] -[s5;:Array`:`:SetCount`(int`,const T`&`):%- [@(0.0.255) void]_[* SetCount]([@(0.0.255) int]_ -[*@3 n], [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[*@3 init])&] -[s2; Changes the count of elements in the Array to the specified -value. If the required number of elements is greater than the -actual number, the newly added elements are initialized to the -specified value using copy constructor. If the Array`'s capacity -has to be increased, the new capacity will exactly match the -required number of elements (unlike [* SetCountR]).&] -[s6; Requires T to have deep copy constructor.&] -[s6; Invalidates iterators to the Array.&] -[s7; [*C@3 n]-|Required number of elements.&] -[s7; [*C@3 init]-|Initialization value of the newly added elements.&] -[s3;%- &] -[s4;%- &] -[s5;:Array`:`:SetCountR`(int`):%- [@(0.0.255) void]_[* SetCountR]([@(0.0.255) int]_[*@3 n])&] -[s2; Changes the count of elements in the Array to the specified -value. If the required number of elements is greater than the -actual number, the newly added elements are default constructed. -If the Array`'s capacity has to be increased, the new capacity -will be greater than the required number of elements (unlike -[* SetCount]) to allow adding other elements without further increasing -capacity.&] -[s6; Requires T to have default constructor.&] -[s6; Invalidates iterators to the Array.&] -[s7; [*C@3 n]-|Required number of elements.&] -[s3;%- &] -[s4;%- &] -[s5;:Array`:`:SetCountR`(int`,const T`&`):%- [@(0.0.255) void]_[* SetCountR]([@(0.0.255) in -t]_[*@3 n], [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[*@3 init])&] -[s2; Changes the count of elements in the Array to the specified -value. If the required number of elements is greater than the -actual number, the newly added elements are initialized to the -specified value using copy constructor. If the Array`'s capacity -has to be increased, he new capacity will be greater than the -required number of elements (unlike [* SetCount]) to allow adding -other elements without further increasing capacity.&] -[s6; Requires T to have deep copy constructor.&] -[s6; Invalidates iterators to the Array.&] -[s7; [*C@3 n]-|Required number of elements.&] -[s7; [*C@3 init]-|Initialization value of the newly added elements.&] -[s3;%- &] -[s4;%- &] -[s5;:Array`:`:Clear`(`):%- [@(0.0.255) void]_[* Clear]()&] -[s2; Removes all elements from the Array. Capacity is also cleared -to zero.&] -[s6; Invalidates iterators to the Array.&] -[s3;%- &] -[s4;%- &] -[s5;:Array`:`:At`(int`):%- [*@4 T][@(0.0.255) `&]_[* At]([@(0.0.255) int]_[*@3 i])&] -[s2; If the specified position is lower than the number of elements -in the Array ([* i < GetCount()]), returns a reference to the element -at the specified position. Otherwise increases the number of -elements in the Array to [* i `+ 1]. Newly added elements are default -constructed. If the Array`'s capacity has to be increased, the -new capacity will be greater than the required number of elements -to allow adding other elements without further increasing capacity.&] -[s6; Requires T to have default constructor.&] -[s6; Invalidates iterators to the Array.&] -[s7; [*C@3 i]-|Position of the required element.&] -[s7; [*/ Return value]-|Reference to the required element.&] -[s3;%- &] -[s4;%- &] -[s5;:Array`:`:At`(int`,const T`&`):%- [*@4 T][@(0.0.255) `&]_[* At]([@(0.0.255) int]_[*@3 i], -[@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[*@3 x])&] -[s2; If specified position is lower than number of elements in the -Array ([* i < GetCount()]), returns a reference to the element -at the specified position. Otherwise increases the number of -elements in the Array to [* i `+ 1]. Newly added elements are copy -constructed from [* x]. If the Array`'s capacity has to be increased, -the new capacity will be greater than the required number of -elements to allow adding other elements without further increasing -capacity.&] -[s6; Requires T to have deep copy constructor.&] -[s6; Invalidates iterators to the Array.&] -[s7; [*C@3 i]-|Position of the required element.&] -[s7; [*C@3 x]-|Initialization value of newly added elements.&] -[s7; [*/ Return value]-|Reference to the required element.&] -[s3;%- &] -[s4;%- &] -[s5;:Array`:`:Shrink`(`):%- [@(0.0.255) void]_[* Shrink]()&] -[s2; Minimizes memory consumption of the Array by decreasing the -capacity to the number of elements.&] -[s3;%- &] -[s4;%- &] -[s5;:Array`:`:Reserve`(int`):%- [@(0.0.255) void]_[* Reserve]([@(0.0.255) int]_[*@3 xtra])&] -[s2; Reserves capacity. If required capacity is greater than the -current capacity, capacity is increased to the required value.&] -[s7; [*C@3 xtra]-|Required capacity.&] -[s3;%- &] -[s4;%- &] -[s5;:Array`:`:GetAlloc`(`)const:%- [@(0.0.255) int]_[* GetAlloc]()_[@(0.0.255) const]&] -[s2; Returns current capacity of the Array.&] -[s7; [*/ Return value]-|Capacity of the Array.&] -[s3;%- &] -[s4;%- &] -[s5;:Array`:`:Set`(int`,const T`&`,int`):%- [@(0.0.255) void]_[* Set]([@(0.0.255) int]_[*@3 i -], [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[*@3 x], [@(0.0.255) int]_[*@3 count])&] -[s2; Sets the requested number of elements starting at the position -[* i] to the specified value. If the required number of elements -exceeds existing elements of the Array then elements are added -to the Array.&] -[s6; Requires T to have deep copy constructor.&] -[s6; Invalidates iterators to the Array.&] -[s7; [*C@3 i]-|Starting position.&] -[s7; [*C@3 x]-|Value.&] -[s7; [*C@3 count]-|Number of elements.&] -[s3;%- &] -[s4;%- &] -[s5;:Array`:`:Set`(int`,const T`&`):%- [*@4 T][@(0.0.255) `&]_[* Set]([@(0.0.255) int]_[*@3 i], - [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[*@3 x])&] -[s2; Sets the element at [%-*@3 i] to [%-*@3 x] and returns a reference -to this element.&] -[s3; &] -[s4;%- &] -[s5;:Array`:`:Remove`(int`,int`):%- [@(0.0.255) void]_[* Remove]([@(0.0.255) int]_[*@3 i], -[@(0.0.255) int]_[*@3 count]_`=_[@3 1])&] -[s2; Removes requested number of elements.&] -[s6; Invalidates iterators to the Array.&] -[s7; [*C@3 i]-|Position.&] -[s7; [*C@3 count]-|Number of elements to remove.&] -[s3;%- &] -[s4;%- &] -[s5;:Array`:`:Remove`(const int`*`,int`):%- [@(0.0.255) void]_[* Remove]([@(0.0.255) const]_ -[@(0.0.255) int]_`*[*@3 sorted`_list], [@(0.0.255) int]_[*@3 n])&] -[s2; Removes number of elements from the Array. Time of operation -almost does not depend on number of elements.&] -[s6; Invalidates iterators to the Array.&] -[s7; [*C@3 sorted`_list]-|Pointer to the Array of positions to remove. -It must be sorted from lowest to greatest value.&] -[s7; [*C@3 n]-|Number of elements to remove.&] -[s3;%- &] -[s4;%- &] -[s5;:Array`:`:Remove`(const Vector``&`):%- [@(0.0.255) void]_[* Remove]([@(0.0.255) c -onst]_[_^Vector^ Vector][@(0.0.255) `&]_[*@3 sorted`_list])&] -[s2; Removes number of elements from the Array. Same as [* Remove(sorted`_list, -sorted`_list.GetCount())].&] -[s6; Invalidates iterators to the Array.&] -[s7; [*C@3 sorted`_list]-|Sorted Vector of positions to remove.&] -[s3;%- &] -[s4;%- &] -[s5;:Array`:`:InsertN`(int`,int`):%- [@(0.0.255) void]_[* InsertN]([@(0.0.255) int]_[*@3 i], -[@(0.0.255) int]_[*@3 count]_`=_[@3 1])&] -[s2; Inserts a specified number of default constructed elements at -the specified position.&] -[s6; Requires T to have default constructor.&] -[s6; Invalidates iterators to the Array.&] -[s7; [*C@3 i]-|Position.&] -[s7; [*C@3 count]-|Number of elements to insert.&] -[s3;%- &] -[s4;%- &] -[s5;:Array`:`:Insert`(int`):%- [*@4 T][@(0.0.255) `&]_[* Insert]([@(0.0.255) int]_[*@3 i])&] -[s2; Inserts one default constructed element at the specified position.&] -[s7; [*1 Requires T to have default constructor.]&] -[s6; Invalidates iterators to the Array.&] -[s7; [*C@3 i]-|Position.&] -[s3;%- &] -[s4;%- &] -[s5;:Array`:`:Insert`(int`,const T`&`,int`):%- [@(0.0.255) void]_[* Insert]([@(0.0.255) int -]_[*@3 i], [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[*@3 x], [@(0.0.255) int]_[*@3 count])&] -[s2; Inserts a specified number of elements, setting them to a specified -value.&] -[s6;~~~.992; Requires T to have deep copy constructor.&] -[s6; Invalidates iterators to the Array.&] -[s7; [*C@3 i]-|Position.&] -[s7; [*C@3 x]-|Value of the inserted elements.&] -[s7; [*C@3 count]-|Number of elements to insert.&] -[s3;%- &] -[s4;%- &] -[s5;:Array`:`:Insert`(int`,const T`&`):%- [*@4 T][@(0.0.255) `&]_[* Insert]([@(0.0.255) int]_ -[*@3 i], [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[*@3 x])&] -[s2; Inserts an element at [%-*@3 i] setting it to [%-*@3 x] and returns -a reference to it.&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:Array`:`:InsertPick`(int`,T`&`&`):%- [*@4 T][@(0.0.255) `&]_[* InsertPick]([@(0.0.255) i -nt]_[*@3 i], [*@4 T][@(0.0.255) `&`&]_[*@3 x])&] -[s2; Inserts an element at [%-*@3 i] picking the content of [%-*@3 x] -and returns a reference to it.&] -[s3; &] -[s4;%- &] -[s5;:Array`:`:Insert`(int`,const Array`&`):%- [@(0.0.255) void]_[* Insert]([@(0.0.255) int]_ -[*@3 i], [@(0.0.255) const]_[_^topic`:`/`/Core`/src`/Array`$en`-us`#Array`:`:class^ Arr -ay][@(0.0.255) `&]_[*@3 x])&] -[s2; Inserts all elements from another Array.&] -[s6;~~~.992; Requires T to have deep copy constructor.&] -[s6; Invalidates iterators to the Array.&] -[s7; [*C@3 i]-|Position.&] -[s7; [*C@3 x]-|Source Array.&] -[s3;%- &] -[s4;%- &] -[s5;:Array`:`:Insert`(int`,const Array`&`,int`,int`):%- [@(0.0.255) void]_[* Insert]([@(0.0.255) i -nt]_[*@3 i], [@(0.0.255) const]_[_^topic`:`/`/Core`/src`/Array`$en`-us`#Array`:`:class^ A -rray][@(0.0.255) `&]_[*@3 x], [@(0.0.255) int]_[*@3 offset], [@(0.0.255) int]_[*@3 count])&] -[s2; Inserts a range of elements from another Array.&] -[s6;~~~.992; Requires T to have deep copy constructor.&] -[s6; Invalidates iterators to the Array.&] -[s7; [*C@3 i]-|Insertion position.&] -[s7; [*C@3 x]-|Source Array.&] -[s7; [*C@3 offset]-|Position of first element in source Array to be -inserted.&] -[s7; [*C@3 count]-|Number of elements to insert.&] -[s3;%- &] -[s4;%- &] -[s5;:Upp`:`:Array`:`:Insert`(int`,std`:`:initializer`_list``):%- [@(0.0.255) void]_ -[* Insert]([@(0.0.255) int]_[*@3 i], [_^http`:`/`/en`.cppreference`.com`/w`/cpp`/utility`/initializer`_list^ s -td`::initializer`_list]<[*@4 T]>_[*@3 init])&] -[s2; Inserts C`+`+11 style initializer list.&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:Array`:`:Append`(std`:`:initializer`_list``):%- [@(0.0.255) void]_[* Appe -nd]([_^http`:`/`/en`.cppreference`.com`/w`/cpp`/utility`/initializer`_list^ std`::in -itializer`_list]<[*@4 T]>_[*@3 init])&] -[s2; Appends C`+`+11 style initializer list.&] -[s3; &] -[s4;%- &] -[s5;:Array`:`:Append`(const Array`&`):%- [@(0.0.255) void]_[* Append]([@(0.0.255) const]_[_^topic`:`/`/Core`/src`/Array`$en`-us`#Array`:`:class^ A -rray][@(0.0.255) `&]_[*@3 x])&] -[s2; Appends all elements of source Array.&] -[s6;~~~.992; Requires T to have deep copy constructor.&] -[s6; Invalidates iterators to the Array.&] -[s7; [*C@3 x]-|Source Array.&] -[s3;%- &] -[s4;%- &] -[s5;:Array`:`:Append`(const Array`&`,int`,int`):%- [@(0.0.255) void]_[* Append]([@(0.0.255) c -onst]_[_^topic`:`/`/Core`/src`/Array`$en`-us`#Array`:`:class^ Array][@(0.0.255) `&]_[*@3 x -], [@(0.0.255) int]_[*@3 o], [@(0.0.255) int]_[*@3 c])&] -[s2; Appends a range of elements from source Array.&] -[s6;~~~.992; Requires T to have deep copy constructor.&] -[s6; Invalidates iterators to the Array.&] -[s7; [*C@3 x]-|Source Array.&] -[s7; [*C@3 o]-|Position of the first element in source Array to be inserted.&] -[s7; [*C@3 c]-|Number of elements to insert.&] -[s3;%- &] -[s4;%- &] -[s5;:Upp`:`:Array`:`:InsertPick`(int`,Upp`:`:Array`&`&`):%- [@(0.0.255) void]_[* InsertPi -ck]([@(0.0.255) int]_[*@3 i], [_^topic`:`/`/Core`/src`/Array`$en`-us`#Array`:`:class^ A -rray][@(0.0.255) `&`&]_[*@3 x])&] -[s2; Inserts the source Array at the specified position using pick -transfer semantics. It is faster than deep copy insert, does -not use deep copy constructor for T, but destroys the source -Array by picking.&] -[s3;%- &] -[s4;%- &] -[s5;:Upp`:`:Array`:`:AppendPick`(Upp`:`:Array`&`&`):%- [@(0.0.255) void]_[* AppendPick]([_^topic`:`/`/Core`/src`/Array`$en`-us`#Array`:`:class^ A -rray][@(0.0.255) `&`&]_[*@3 x])&] -[s2; Appends source Array using pick transfer semantics. It is faster -than deep copy insert, does not use deep copy constructor for -T, but destroys the source Array by picking.&] -[s3;%- &] -[s4;%- &] -[s5;:Array`:`:Swap`(int`,int`):%- [@(0.0.255) void]_[* Swap]([@(0.0.255) int]_[*@3 i1], -[@(0.0.255) int]_[*@3 i2])&] -[s2; Swaps elements without using copy constructor.&] -[s6; Invalidates iterators to the Array.&] -[s7; [*C@3 i1]-|Position of the first element.&] -[s7; [*C@3 i2]-|Position of the second element.&] -[s3;%- &] -[s4;%- &] -[s5;:Array`:`:Move`(int`,int`):%- [@(0.0.255) void]_[* Move]([@(0.0.255) int]_[*@3 i1], -[@(0.0.255) int]_[*@3 i2])&] -[s2; Removes element at position [* i1] and inserts it at [* i2], without -using copy constructor of T.&] -[s6; Invalidates iterators to the Array.&] -[s7; [*C@3 i1]-|Position of the element to move.&] -[s7; [*C@3 i2]-|Target position.&] -[s3;%- &] -[s4;%- &] -[s5;:Array`:`:Detach`(int`):%- [*@4 T]_`*[* Detach]([@(0.0.255) int]_[*@3 i])&] -[s2; Removes the element at position [* i], giving up ownership. Client -is responsible for deletion of the element.&] -[s6; Invalidates iterators to the Array.&] -[s7; [*C@3 i]-|Position of the element to remove.&] -[s7; [*/ Return value]-|Pointer to the element allocated on the heap.&] -[s3;%- &] -[s4;%- &] -[s5;:Array`:`:Swap`(int`,T`*`):%- [*@4 T]_`*[* Swap]([@(0.0.255) int]_[*@3 i], -[*@4 T]_`*[*@3 newt])&] -[s2; Sets element at [%-*@3 i] to [%-*@3 newt].and returns a pointer -to original element. Client is responsible for deletion of the -original element.&] -[s3; &] -[s4;%- &] -[s5;:Array`:`:Set`(int`,T`*`):%- [*@4 T][@(0.0.255) `&]_[* Set]([@(0.0.255) int]_[*@3 i], -[*@4 T]_`*[*@3 newt])&] -[s2; Replaces element at the specified position by an element previously -created on the heap. Array takes over ownership of the element.&] -[s7; [*C@3 i]-|Position.&] -[s7; [*C@3 newt]-|New element allocated on the heap.&] -[s7; [*/ Return value]-|Reference to new element.&] -[s3;%- &] -[s4;%- &] -[s5;:Array`:`:Insert`(int`,T`*`):%- [@(0.0.255) void]_[* Insert]([@(0.0.255) int]_[*@3 i], -[*@4 T]_`*[*@3 newt])&] -[s2; Inserts an element previously created on the heap at the specified -position. Array takes over ownership of element.&] -[s6; Invalidates iterators to the Array.&] -[s7; [*C@3 i]-|Insertion position.&] -[s7; [*C@3 newt]-|New element allocated on the heap.&] -[s3;%- &] -[s4;%- &] -[s5;:Array`:`:Drop`(int`):%- [@(0.0.255) void]_[* Drop]([@(0.0.255) int]_[*@3 n]_`=_[@3 1])&] -[s2; Drops specified number of last elements in the Array (same as -Trim(GetCount() `- n)).&] -[s7; [C@3 n][* -|Number of elements.]&] -[s3;%- &] -[s4;%- &] -[s5;:Array`:`:Top`(`):%- [*@4 T][@(0.0.255) `&]_[* Top]()&] -[s2; Returns reference to the last element in the Array.&] -[s7; [*/ Return value]-|Reference of last element in the Array.&] -[s3;%- &] -[s4;%- &] -[s5;:Array`:`:Top`(`)const:%- [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[* Top]()_[@(0.0.255) c -onst]&] -[s2; Returns constant reference to the last element in the Array.&] -[s7; [*/ Return value]-|Reference of last element in the Array.&] -[s3;%- &] -[s4;%- &] -[s5;:Array`:`:PopDetach`(`):%- [*@4 T]_`*[* PopDetach]()&] -[s2; Drops the last element in the Array, giving up ownership (same -as Detach(GetCount() `- 1)). Client is responsible for deletion -of element.&] -[s6; Invalidates iterators to the Array.&] -[s7; [*/ Return value]-|Pointer to element allocated on the heap.&] -[s3;%- &] -[s4;%- &] -[s5;:Array`:`:Swap`(Array`&`):%- [@(0.0.255) void]_[* Swap]([_^topic`:`/`/Core`/src`/Array`$en`-us`#Array`:`:class^ A -rray][@(0.0.255) `&]_[*@3 b])&] -[s2; Swaps content of Array with another array in constant time operation.&] -[s7; [*C@3 b]-|Target array.&] -[s3;%- &] -[s4;%- &] -[s5;:Array`:`:operator`<`<`(const T`&`):%- [_^topic`:`/`/Core`/src`/Array`$en`-us`#Array`:`:class^ A -rray][@(0.0.255) `&]_[* operator<<]([@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[*@3 x])&] -[s2; Operator replacement of [* void Add(const T`&x)]. By returning -a reference to the Array it allows adding more elements in a -single expression, thus e.g. allowing to construct a temporary -Array as part of an expression like Foo((Array() << 1 << -2 << 4)).&] -[s6; Requires T to have deep copy constructor.&] -[s6; Invalidates iterators to the Array.&] -[s7; [*C@3 x]-|The value that is copied to newly created element.&] -[s7; [*/ Return value]-|Reference to the Array (`*this).&] -[s3;%- &] -[s4;%- &] -[s5;:Array`:`:operator`<`<`(T`*`):%- [_^topic`:`/`/Core`/src`/Array`$en`-us`#Array`:`:class^ A -rray][@(0.0.255) `&]_[* operator<<]([*@4 T]_`*[*@3 newt])&] -[s2; Operator replacement of [* void Add(T `*x)]. By returning a reference -to the Array it allows adding more elements in a single expression, -thus e.g. allowing to construct a temporary Array as part of -an expression like Foo((Array() << new Bar << new DerivedFromBar)).&] -[s6; Invalidates iterators to the Array.&] -[s7; [*C@3 newt]-|Object to be added.&] -[s7; [*/ Return value]-|Reference to the Array (`*this).&] -[s3;%- &] -[s4;%- &] -[s5;:Array`:`:operator`|`(pick`_ T`&`):%- [_^topic`:`/`/Core`/src`/Array`$en`-us`#Array`:`:class^ A -rray][@(0.0.255) `&]_[* operator`|]([@(0.128.128) pick`_]_[*@4 T][@(0.0.255) `&]_[*@3 x])&] -[s2; Operator replacement of [* void AddPick(pick`_ T`&x)]. By returning -a reference to the Array it allows adding more elements in a -single expression, thus e.g. allowing to construct a temporary -Array as part of an expression.&] -[s6; Requires T to have pick constructor.&] -[s6; Invalidates iterators to the Array.&] -[s7; [*C@3 x]-|Source instance of T that is to be picked.&] -[s7; [*/ Return value]-|Reference to Array (`*this).&] -[s3;%- &] -[s4;%- &] -[s5;:Array`:`:IsPicked`(`)const:%- [@(0.0.255) bool]_[* IsPicked]()_[@(0.0.255) const]&] -[s2; Returns [* true] if the Array is in picked state.&] -[s7; [*/ Return value]-|[* true] if the Array is in picked state, [* false] -otherwise.&] -[s3;%- &] -[s4;%- &] -[s5;:Array`:`:Serialize`(Stream`&`):%- [@(0.0.255) void]_[* Serialize]([_^topic`:`/`/Core`/src`/Stream`$en`-us`#Stream`:`:class^ S -tream][@(0.0.255) `&]_[*@3 s])&] -[s2; Serializes the content of the Array to/from the Stream. Works -only if NTL is used as part of UPP. Does not work with polymorphic -Arrays (those storing objects derived from T).&] -[s6; Requires T to have serialization operator defined.&] -[s7; [*C@3 s]-|Target/source stream.&] -[s3;%- &] -[s4;%- &] -[s5;:Array`:`:operator`=`(pick`_ Array`&`):%- [@(0.0.255) void]_[* operator`=]([@(0.128.128) p -ick`_]_[_^topic`:`/`/Core`/src`/Array`$en`-us`#Array`:`:class^ Array][@(0.0.255) `&]_ -[*@3 v])&] -[s2; Pick operator. Transfers the source Array in low constant time, -but destroys it by picking.&] -[s7; [*C@3 v]-|Source Array.&] -[s3;%- &] -[s4;%- &] -[s5;:Array`:`:ValueType`:`:typedef:%- [@(0.0.255) typedef]_T_[* ValueType]&] -[s2; Typedef of T for use in templated algorithms.&] -[s3;%- &] -[s4;%- &] -[s1;:Array`:`:Iterator`:`:class:%- [@(0.0.255) class]_[* Iterator]_:_[@(0.0.255) public]_[*@3 C -onstIterator]&] -[s2; Iterator type.&] -[s3;%- &] -[s4;%- &] -[s1;:Upp`:`:Array`:`:ConstIterator`:`:class:%- [@(0.0.255) class]_[* ConstIterator]&] -[s2; Constant iterator type.&] -[s3;%- &] -[s4;%- &] -[s5;:Array`:`:Begin`(`):%- [_^topic`:`/`/Core`/src`/Array`$en`-us`#Array`:`:Iterator`:`:class^ I -terator]_[* Begin]()&] -[s2; Returns a non`-constant iterator to the first element in the -Array. &] -[s7; [*/ Return value]-|Iterator.&] -[s3;%- &] -[s4;%- &] -[s5;:Array`:`:End`(`):%- [_^topic`:`/`/Core`/src`/Array`$en`-us`#Array`:`:Iterator`:`:class^ I -terator]_[* End]()&] -[s2; Returns a non`-constant iterator to the position just beyond -the last element in Array.&] -[s7; [*/ Return value]-|Iterator.&] -[s3;%- &] -[s4;%- &] -[s5;:Array`:`:GetIter`(int`):%- [_^topic`:`/`/Core`/src`/Array`$en`-us`#Array`:`:Iterator`:`:class^ I -terator]_[* GetIter]([@(0.0.255) int]_[*@3 pos])&] -[s2; Returns a non`-constant iterator to the element at the specified -position. Same as [* Begin() `+ pos]. The benefit of this method -is that [* pos] is range checked in debug mode.&] -[s7; [*C@3 pos]-|Required position.&] -[s7; [*/ Return value]-|Iterator.&] -[s3;%- &] -[s4;%- &] -[s5;:Array`:`:Begin`(`)const:%- [_^topic`:`/`/Core`/src`/Array`$en`-us`#Upp`:`:Array`:`:ConstIterator`:`:class^ C -onstIterator]_[* Begin]()_[@(0.0.255) const]&] -[s2; Returns a constant iterator to the first element in Array. &] -[s7; [*/ Return value]-|Iterator.&] -[s3;%- &] -[s4;%- &] -[s5;:Array`:`:End`(`)const:%- [_^topic`:`/`/Core`/src`/Array`$en`-us`#Upp`:`:Array`:`:ConstIterator`:`:class^ C -onstIterator]_[* End]()_[@(0.0.255) const]&] -[s2; Returns a constant iterator to the position just beyond the -last element in Array.&] -[s7; [*/ Return value]-|Iterator.-|&] -[s3;%- &] -[s4;%- &] -[s5;:Array`:`:GetIter`(int`)const:%- [_^topic`:`/`/Core`/src`/Array`$en`-us`#Upp`:`:Array`:`:ConstIterator`:`:class^ C -onstIterator]_[* GetIter]([@(0.0.255) int]_[*@3 pos])_[@(0.0.255) const]&] -[s2; Returns a constant iterator to the element at the specified -position. Same as [* Begin() `+ pos]. The benefit of this method -is that [* pos] is range checked in debug mode..&] -[s7; [*C@3 pos]-|Required position.&] -[s7; [*/ Return value]-|Iterator.&] -[s3; &] -[s4;%- &] -[s5;%- friend_[@(0.0.255) void][@(64) _]Swap[@(64) (][_^topic`:`/`/Core`/src`/Array`$en`-us`#Array`:`:class^ A -rray][@(64) `&_][@3 a][@(64) , ][_^topic`:`/`/Core`/src`/Array`$en`-us`#Array`:`:class^ A -rray][@(64) `&_][@3 b][@(64) )]&] -[s2; Specialization of the generic [* Swap] for Array. Swaps the arrays -in simple constant time operation.&] -[s7; [*C@3 a]-|First Array to swap.&] -[s7; [*C@3 b]-|Second Array to swap.&] -[s4;%- &] -[s5;%- friend_[@(0.0.255) void][@(64) _]IterSwap[@(64) (][_^topic`:`/`/Core`/src`/Array`$en`-us`#Array`:`:Iterator`:`:class^ I -terator][@(64) _][@3 a][@(64) , ][_^topic`:`/`/Core`/src`/Array`$en`-us`#Array`:`:Iterator`:`:class^ I -terator][@(64) _][@3 b][@(64) )]&] -[s2; Specialization of the generic [* IterSwap] for Array. Swaps the -elements in an Array without any requirements for T.&] -[s7; [*C@3 a]-|Iterator to first element.&] -[s7; [*C@3 b]-|Iterator to second element.&] -[s3; &] +topic "Array"; +[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,0#27521748481378242620020725143825:desc] +[0 $$3,0#96390100711032703541132217272105:end] +[H6;0 $$4,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] +[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] +[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] +[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] +[b42;2 $$9,9#13035079074754324216151401829390:normal] +[{_}%EN-US +[ {{10000@(113.42.0) [s0; [*@7;4 Array]]}}&] +[s3;%- &] +[s1;:noref:%- [@(0.0.255)3 template][3 _<][@(0.0.255)3 class][3 _][*@4;3 T][@(0.0.255)3 >]&] +[s1;:Array`:`:class:%- [@(0.0.255) class]_[* Array]_:_[@(0.0.255) public]_[*@3 MoveableAndDeep +CopyOption][@(0.0.255) <]_[* Array][@(0.0.255) <][*@4 T][@(0.0.255) >]_>_&] +[s8; [*@4 T]-|Type or base class of elements stored in the Array. There +is no common requirement for T.&] +[s9; The most universal form of basic random access container. Its +features are derived from fact that typically it is implemented +using indirect container of pointers to T like Vector. Nevertheless +it supports common concepts as ownership of contained elements, +reference (not pointer) access to elements and so on.&] +[s9; It provides almost all operations of Vector with the same semantics +and almost any Vector can be directly replaced by Array. On the +other hand, it provides some special operations impossible for +Vector and most important, it never invalidates references (that +means C`+`+ references and pointers) to elements (it often invalidates +iterators, though).&] +[s9; Array can be also used to store polymorphic elements `- stored +elements could be derived from T. To store such elements, you +pass a pointer to an element previously created on the heap. +Still, Array takes over ownership of such element (it e.g. deletes +it when appropriate). You can also use this method to create +an Array of elements that do not have either pick, deep copy +constructor nor default constructor.&] +[s9; There are also operations that allow detaching an element from +an Array, removing it but not destroying. Pointer to such element +is returned from this operation and the Array gives up ownership.&] +[s9; Disadvantage of Array over Vector is performance `- most operations +are significantly slower than with Vectors (by factor up to 8, +it depends on the speed of malloc/free). Still, some operations +might be even faster, e.g. Insert and Remove operations usually +move much less memory.&] +[s9; As for memory, for small size of elements, Array memory consumption +is significantly higher than Vector consumption. As the size +of the elements grow, Array starts to be better than Vector.&] +[s9; Iterators to Array satisfy all C`+`+ standard library requirements +for random access iterator plus they allow assignment (and copy +constructor) and testing for 0 (that is NULL) pointer.&] +[s9; Like any other NTL container, Array is a [*/^topic`:`/`/Core`/srcdoc`/Moveable`$en`-us^ m +oveable][*/ ]type with [*/^topic`:`/`/Core`/srcdoc`/pick`_`$en`-us^ pick +and optional deep copy] transfer semantics.&] +[s3; &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] +[s3;%- &] +[s5;:Array`:`:Array`(`):%- [* Array]()&] +[s2; Default constructor. Constructs an empty Array.&] +[s3;%- &] +[s4;%- &] +[s5;:Array`:`:Array`(pick`_ Array`&`):%- [* Array]([@(0.128.128) pick`_]_[* Array][@(0.0.255) `& +]_[*@3 v])&] +[s2; Pick constructor. Transfers the source Array in low constant +time, but destroys it by picking. &] +[s7; [*@3 v]-|Source Array.&] +[s3; &] +[s4; &] +[s5;:Array`:`:Array`(const Array`&`,int`):%- [* Array]([@(0.0.255) const]_[* Array][@(0.0.255) `& +]_[*@3 v], [@(0.0.255) int])&] +[s2; Optional deep copy constructor.&] +[s6; Requires T to have deep copy constructor or optional deep copy +constructor if the Array stores only objects of type T.&] +[s6; Requires polymorphic deep copy if the Array stores also objects +of type derived from T.&] +[s7; [*@3 v]-|Source Array.&] +[s3; &] +[s4; &] +[s5;:Array`:`:`~Array`(`):%- [@(0.0.255) `~][* Array]()&] +[s2; Destructor. Invokes the destructor of every element in the Array.&] +[s3;%- &] +[s4;%- &] +[s5;:Upp`:`:Array`:`:Array`(std`:`:initializer`_list``):%- [* Array]([_^http`:`/`/en`.cppreference`.com`/w`/cpp`/utility`/initializer`_list^ s +td`::initializer`_list]<[*@4 T]>_[*@3 init])&] +[s2; C`+`+11 initialization.&] +[s0; &] +[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] +[s4;H0;%- &] +[s5;:Array`:`:Add`(`):%- [*@4 T][@(0.0.255) `&]_[* Add]()&] +[s2; Adds a new default constructed element to the Array.&] +[s6; Requires T to have default constructor.&] +[s6; Invalidates iterators to the Array.&] +[s7; [*/ Return value]-|Reference to newly added default constructed +element.&] +[s3;%- &] +[s4;%- &] +[s5;:Array`:`:Add`(const T`&`):%- [*@4 T][@(0.0.255) `&]_[* Add]([@(0.0.255) const]_[*@4 T][@(0.0.255) `& +]_[*@3 x])&] +[s2; Adds a new element with specified value to the Array.&] +[s6; Requires T to have deep copy constructor.&] +[s6; Invalidates iterators to the Array.&] +[s7; [*C@3 x]-|The value that is copied to newly created element.&] +[s7; [*/ Return value]-|Reference to new element in Array.&] +[s3;%- &] +[s4;%- &] +[s5;:Upp`:`:Array`:`:Add`(T`&`&`):%- [*@4 T][@(0.0.255) `&]_[* Add]([*@4 T][@(0.0.255) `&`&]_[*@3 x +])&] +[s2; Adds new element to the Array and picks value of parameter to +it.&] +[s3;%- &] +[s4;%- &] +[s5;:Array`:`:Add`(T`*`):%- [*@4 T][@(0.0.255) `&]_[* Add]([*@4 T]_`*[*@3 newt])&] +[s2; Adds a new element to the Array. Element is specified by pointer +to an object created using operator new. Array takes over ownership +of this object. This variant allows the use of an Array as a +polymorphic container, because the type of the added element +can be either T or a type derived from T. No constructor is applied. +&] +[s7; [*C@3 newt]-|Object to be added.&] +[s7; [*/ Return value]-|Reference to the new element (that is [* `*newt]).&] +[s0;*%- &] +[s4;%- &] +[s5;:Array`:`:Create`(`):%- [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 TT][@(0.0.255) >]_ +[*@4 TT][@(0.0.255) `&]_[* Create]()&] +[s2; Creates and adds a new element to the Array.&] +[s6; Requires T to have default constructor.&] +[s7; [*C@4 TT]-|Type of the new element.&] +[s7; [*/ Return value]-|Reference to the newly created element.&] +[s3;%- &] +[s4;%- &] +[s5;:Array`:`:operator`[`]`(int`)const:%- [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[* operat +or`[`]]([@(0.0.255) int]_[*@3 i])_[@(0.0.255) const]&] +[s2; Returns a reference to the element at the specified position.&] +[s7; [*C@3 i]-|Position of the element.&] +[s7; [*/ Return value]-|Constant reference to the element.&] +[s3;%- &] +[s4;%- &] +[s5;:Array`:`:operator`[`]`(int`):%- [*@4 T][@(0.0.255) `&]_[* operator`[`]]([@(0.0.255) int]_ +[*@3 i])&] +[s2; Returns a reference to the element at the specified position.&] +[s7; [*C@3 i]-|Position of element.&] +[s7; [*/ Return value]-|Reference to the element.&] +[s3;%- &] +[s4;%- &] +[s5;:Array`:`:GetCount`(`)const:%- [@(0.0.255) int]_[* GetCount]()_[@(0.0.255) const]&] +[s2; Returns the number of elements in the Array.&] +[s7; [*/ Return value]-|Actual number of elements.&] +[s3;%- &] +[s4;%- &] +[s5;:Array`:`:IsEmpty`(`)const:%- [@(0.0.255) bool]_[* IsEmpty]()_[@(0.0.255) const]&] +[s2; Tests whether Array is empty. Same as GetCount() `=`= 0.&] +[s7; [*/ Return value]-|true if Array is empty, false otherwise.&] +[s3;%- &] +[s4;%- &] +[s5;:Array`:`:Trim`(int`):%- [@(0.0.255) void]_[* Trim]([@(0.0.255) int]_[*@3 n])&] +[s2; Reduces the number of elements in the Array to the specified +number. Required number must be less than or equal to the actual +number of elements in the Array.&] +[s7; [*C@3 n]-|Required number of elements.&] +[s3;%- &] +[s4;%- &] +[s5;:Array`:`:SetCount`(int`):%- [@(0.0.255) void]_[* SetCount]([@(0.0.255) int]_[*@3 n])&] +[s2; Changes the count of elements in the Array to the specified +value. If the required number of elements is greater than actual +number, the newly added elements are default constructed. If +the Array`'s capacity has to be increased, the new capacity will +exactly match the required number of elements (unlike [* SetCountR]).&] +[s6; Requires T to have default constructor.&] +[s6; Invalidates iterators to the Array.&] +[s7; [*C@3 n]-|Required number of elements.&] +[s3;%- &] +[s4;%- &] +[s5;:Array`:`:SetCount`(int`,const T`&`):%- [@(0.0.255) void]_[* SetCount]([@(0.0.255) int]_ +[*@3 n], [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[*@3 init])&] +[s2; Changes the count of elements in the Array to the specified +value. If the required number of elements is greater than the +actual number, the newly added elements are initialized to the +specified value using copy constructor. If the Array`'s capacity +has to be increased, the new capacity will exactly match the +required number of elements (unlike [* SetCountR]).&] +[s6; Requires T to have deep copy constructor.&] +[s6; Invalidates iterators to the Array.&] +[s7; [*C@3 n]-|Required number of elements.&] +[s7; [*C@3 init]-|Initialization value of the newly added elements.&] +[s3;%- &] +[s4;%- &] +[s5;:Array`:`:SetCountR`(int`):%- [@(0.0.255) void]_[* SetCountR]([@(0.0.255) int]_[*@3 n])&] +[s2; Changes the count of elements in the Array to the specified +value. If the required number of elements is greater than the +actual number, the newly added elements are default constructed. +If the Array`'s capacity has to be increased, the new capacity +will be greater than the required number of elements (unlike +[* SetCount]) to allow adding other elements without further increasing +capacity.&] +[s6; Requires T to have default constructor.&] +[s6; Invalidates iterators to the Array.&] +[s7; [*C@3 n]-|Required number of elements.&] +[s3;%- &] +[s4;%- &] +[s5;:Array`:`:SetCountR`(int`,const T`&`):%- [@(0.0.255) void]_[* SetCountR]([@(0.0.255) in +t]_[*@3 n], [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[*@3 init])&] +[s2; Changes the count of elements in the Array to the specified +value. If the required number of elements is greater than the +actual number, the newly added elements are initialized to the +specified value using copy constructor. If the Array`'s capacity +has to be increased, he new capacity will be greater than the +required number of elements (unlike [* SetCount]) to allow adding +other elements without further increasing capacity.&] +[s6; Requires T to have deep copy constructor.&] +[s6; Invalidates iterators to the Array.&] +[s7; [*C@3 n]-|Required number of elements.&] +[s7; [*C@3 init]-|Initialization value of the newly added elements.&] +[s3;%- &] +[s4;%- &] +[s5;:Array`:`:Clear`(`):%- [@(0.0.255) void]_[* Clear]()&] +[s2; Removes all elements from the Array. Capacity is also cleared +to zero.&] +[s6; Invalidates iterators to the Array.&] +[s3;%- &] +[s4;%- &] +[s5;:Array`:`:At`(int`):%- [*@4 T][@(0.0.255) `&]_[* At]([@(0.0.255) int]_[*@3 i])&] +[s2; If the specified position is lower than the number of elements +in the Array ([* i < GetCount()]), returns a reference to the element +at the specified position. Otherwise increases the number of +elements in the Array to [* i `+ 1]. Newly added elements are default +constructed. If the Array`'s capacity has to be increased, the +new capacity will be greater than the required number of elements +to allow adding other elements without further increasing capacity.&] +[s6; Requires T to have default constructor.&] +[s6; Invalidates iterators to the Array.&] +[s7; [*C@3 i]-|Position of the required element.&] +[s7; [*/ Return value]-|Reference to the required element.&] +[s3;%- &] +[s4;%- &] +[s5;:Array`:`:At`(int`,const T`&`):%- [*@4 T][@(0.0.255) `&]_[* At]([@(0.0.255) int]_[*@3 i], +[@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[*@3 x])&] +[s2; If specified position is lower than number of elements in the +Array ([* i < GetCount()]), returns a reference to the element +at the specified position. Otherwise increases the number of +elements in the Array to [* i `+ 1]. Newly added elements are copy +constructed from [* x]. If the Array`'s capacity has to be increased, +the new capacity will be greater than the required number of +elements to allow adding other elements without further increasing +capacity.&] +[s6; Requires T to have deep copy constructor.&] +[s6; Invalidates iterators to the Array.&] +[s7; [*C@3 i]-|Position of the required element.&] +[s7; [*C@3 x]-|Initialization value of newly added elements.&] +[s7; [*/ Return value]-|Reference to the required element.&] +[s3;%- &] +[s4;%- &] +[s5;:Array`:`:Shrink`(`):%- [@(0.0.255) void]_[* Shrink]()&] +[s2; Minimizes memory consumption of the Array by decreasing the +capacity to the number of elements.&] +[s3;%- &] +[s4;%- &] +[s5;:Array`:`:Reserve`(int`):%- [@(0.0.255) void]_[* Reserve]([@(0.0.255) int]_[*@3 xtra])&] +[s2; Reserves capacity. If required capacity is greater than the +current capacity, capacity is increased to the required value.&] +[s7; [*C@3 xtra]-|Required capacity.&] +[s3;%- &] +[s4;%- &] +[s5;:Array`:`:GetAlloc`(`)const:%- [@(0.0.255) int]_[* GetAlloc]()_[@(0.0.255) const]&] +[s2; Returns current capacity of the Array.&] +[s7; [*/ Return value]-|Capacity of the Array.&] +[s3;%- &] +[s4;%- &] +[s5;:Array`:`:Set`(int`,const T`&`,int`):%- [@(0.0.255) void]_[* Set]([@(0.0.255) int]_[*@3 i +], [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[*@3 x], [@(0.0.255) int]_[*@3 count])&] +[s2; Sets the requested number of elements starting at the position +[* i] to the specified value. If the required number of elements +exceeds existing elements of the Array then elements are added +to the Array.&] +[s6; Requires T to have deep copy constructor.&] +[s6; Invalidates iterators to the Array.&] +[s7; [*C@3 i]-|Starting position.&] +[s7; [*C@3 x]-|Value.&] +[s7; [*C@3 count]-|Number of elements.&] +[s3;%- &] +[s4;%- &] +[s5;:Array`:`:Set`(int`,const T`&`):%- [*@4 T][@(0.0.255) `&]_[* Set]([@(0.0.255) int]_[*@3 i], + [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[*@3 x])&] +[s2; Sets the element at [%-*@3 i] to [%-*@3 x] and returns a reference +to this element.&] +[s3; &] +[s4;%- &] +[s5;:Array`:`:Remove`(int`,int`):%- [@(0.0.255) void]_[* Remove]([@(0.0.255) int]_[*@3 i], +[@(0.0.255) int]_[*@3 count]_`=_[@3 1])&] +[s2; Removes requested number of elements.&] +[s6; Invalidates iterators to the Array.&] +[s7; [*C@3 i]-|Position.&] +[s7; [*C@3 count]-|Number of elements to remove.&] +[s3;%- &] +[s4;%- &] +[s5;:Array`:`:Remove`(const int`*`,int`):%- [@(0.0.255) void]_[* Remove]([@(0.0.255) const]_ +[@(0.0.255) int]_`*[*@3 sorted`_list], [@(0.0.255) int]_[*@3 n])&] +[s2; Removes number of elements from the Array. Time of operation +almost does not depend on number of elements.&] +[s6; Invalidates iterators to the Array.&] +[s7; [*C@3 sorted`_list]-|Pointer to the Array of positions to remove. +It must be sorted from lowest to greatest value.&] +[s7; [*C@3 n]-|Number of elements to remove.&] +[s3;%- &] +[s4;%- &] +[s5;:Array`:`:Remove`(const Vector``&`):%- [@(0.0.255) void]_[* Remove]([@(0.0.255) c +onst]_[_^Vector^ Vector][@(0.0.255) `&]_[*@3 sorted`_list])&] +[s2; Removes number of elements from the Array. Same as [* Remove(sorted`_list, +sorted`_list.GetCount())].&] +[s6; Invalidates iterators to the Array.&] +[s7; [*C@3 sorted`_list]-|Sorted Vector of positions to remove.&] +[s3;%- &] +[s4;%- &] +[s5;:Array`:`:InsertN`(int`,int`):%- [@(0.0.255) void]_[* InsertN]([@(0.0.255) int]_[*@3 i], +[@(0.0.255) int]_[*@3 count]_`=_[@3 1])&] +[s2; Inserts a specified number of default constructed elements at +the specified position.&] +[s6; Requires T to have default constructor.&] +[s6; Invalidates iterators to the Array.&] +[s7; [*C@3 i]-|Position.&] +[s7; [*C@3 count]-|Number of elements to insert.&] +[s3;%- &] +[s4;%- &] +[s5;:Array`:`:Insert`(int`):%- [*@4 T][@(0.0.255) `&]_[* Insert]([@(0.0.255) int]_[*@3 i])&] +[s2; Inserts one default constructed element at the specified position.&] +[s7; [*1 Requires T to have default constructor.]&] +[s6; Invalidates iterators to the Array.&] +[s7; [*C@3 i]-|Position.&] +[s3;%- &] +[s4;%- &] +[s5;:Array`:`:Insert`(int`,const T`&`,int`):%- [@(0.0.255) void]_[* Insert]([@(0.0.255) int +]_[*@3 i], [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[*@3 x], [@(0.0.255) int]_[*@3 count])&] +[s2; Inserts a specified number of elements, setting them to a specified +value.&] +[s6;~~~.992; Requires T to have deep copy constructor.&] +[s6; Invalidates iterators to the Array.&] +[s7; [*C@3 i]-|Position.&] +[s7; [*C@3 x]-|Value of the inserted elements.&] +[s7; [*C@3 count]-|Number of elements to insert.&] +[s3;%- &] +[s4;%- &] +[s5;:Array`:`:Insert`(int`,const T`&`):%- [*@4 T][@(0.0.255) `&]_[* Insert]([@(0.0.255) int]_ +[*@3 i], [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[*@3 x])&] +[s2; Inserts an element at [%-*@3 i] setting it to [%-*@3 x] and returns +a reference to it.&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:Array`:`:InsertPick`(int`,T`&`&`):%- [*@4 T][@(0.0.255) `&]_[* InsertPick]([@(0.0.255) i +nt]_[*@3 i], [*@4 T][@(0.0.255) `&`&]_[*@3 x])&] +[s2; Inserts an element at [%-*@3 i] picking the content of [%-*@3 x] +and returns a reference to it.&] +[s3; &] +[s4;%- &] +[s5;:Array`:`:Insert`(int`,const Array`&`):%- [@(0.0.255) void]_[* Insert]([@(0.0.255) int]_ +[*@3 i], [@(0.0.255) const]_[_^topic`:`/`/Core`/src`/Array`$en`-us`#Array`:`:class^ Arr +ay][@(0.0.255) `&]_[*@3 x])&] +[s2; Inserts all elements from another Array.&] +[s6;~~~.992; Requires T to have deep copy constructor.&] +[s6; Invalidates iterators to the Array.&] +[s7; [*C@3 i]-|Position.&] +[s7; [*C@3 x]-|Source Array.&] +[s3;%- &] +[s4;%- &] +[s5;:Array`:`:Insert`(int`,const Array`&`,int`,int`):%- [@(0.0.255) void]_[* Insert]([@(0.0.255) i +nt]_[*@3 i], [@(0.0.255) const]_[_^topic`:`/`/Core`/src`/Array`$en`-us`#Array`:`:class^ A +rray][@(0.0.255) `&]_[*@3 x], [@(0.0.255) int]_[*@3 offset], [@(0.0.255) int]_[*@3 count])&] +[s2; Inserts a range of elements from another Array.&] +[s6;~~~.992; Requires T to have deep copy constructor.&] +[s6; Invalidates iterators to the Array.&] +[s7; [*C@3 i]-|Insertion position.&] +[s7; [*C@3 x]-|Source Array.&] +[s7; [*C@3 offset]-|Position of first element in source Array to be +inserted.&] +[s7; [*C@3 count]-|Number of elements to insert.&] +[s3;%- &] +[s4;%- &] +[s5;:Upp`:`:Array`:`:Insert`(int`,std`:`:initializer`_list``):%- [@(0.0.255) void]_ +[* Insert]([@(0.0.255) int]_[*@3 i], [_^http`:`/`/en`.cppreference`.com`/w`/cpp`/utility`/initializer`_list^ s +td`::initializer`_list]<[*@4 T]>_[*@3 init])&] +[s2; Inserts C`+`+11 style initializer list.&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:Array`:`:Append`(std`:`:initializer`_list``):%- [@(0.0.255) void]_[* Appe +nd]([_^http`:`/`/en`.cppreference`.com`/w`/cpp`/utility`/initializer`_list^ std`::in +itializer`_list]<[*@4 T]>_[*@3 init])&] +[s2; Appends C`+`+11 style initializer list.&] +[s3; &] +[s4;%- &] +[s5;:Array`:`:Append`(const Array`&`):%- [@(0.0.255) void]_[* Append]([@(0.0.255) const]_[_^topic`:`/`/Core`/src`/Array`$en`-us`#Array`:`:class^ A +rray][@(0.0.255) `&]_[*@3 x])&] +[s2; Appends all elements of source Array.&] +[s6;~~~.992; Requires T to have deep copy constructor.&] +[s6; Invalidates iterators to the Array.&] +[s7; [*C@3 x]-|Source Array.&] +[s3;%- &] +[s4;%- &] +[s5;:Array`:`:Append`(const Array`&`,int`,int`):%- [@(0.0.255) void]_[* Append]([@(0.0.255) c +onst]_[_^topic`:`/`/Core`/src`/Array`$en`-us`#Array`:`:class^ Array][@(0.0.255) `&]_[*@3 x +], [@(0.0.255) int]_[*@3 o], [@(0.0.255) int]_[*@3 c])&] +[s2; Appends a range of elements from source Array.&] +[s6;~~~.992; Requires T to have deep copy constructor.&] +[s6; Invalidates iterators to the Array.&] +[s7; [*C@3 x]-|Source Array.&] +[s7; [*C@3 o]-|Position of the first element in source Array to be inserted.&] +[s7; [*C@3 c]-|Number of elements to insert.&] +[s3;%- &] +[s4;%- &] +[s5;:Upp`:`:Array`:`:InsertPick`(int`,Upp`:`:Array`&`&`):%- [@(0.0.255) void]_[* InsertPi +ck]([@(0.0.255) int]_[*@3 i], [_^topic`:`/`/Core`/src`/Array`$en`-us`#Array`:`:class^ A +rray][@(0.0.255) `&`&]_[*@3 x])&] +[s2; Inserts the source Array at the specified position using pick +transfer semantics. It is faster than deep copy insert, does +not use deep copy constructor for T, but destroys the source +Array by picking.&] +[s3;%- &] +[s4;%- &] +[s5;:Upp`:`:Array`:`:AppendPick`(Upp`:`:Array`&`&`):%- [@(0.0.255) void]_[* AppendPick]([_^topic`:`/`/Core`/src`/Array`$en`-us`#Array`:`:class^ A +rray][@(0.0.255) `&`&]_[*@3 x])&] +[s2; Appends source Array using pick transfer semantics. It is faster +than deep copy insert, does not use deep copy constructor for +T, but destroys the source Array by picking.&] +[s3;%- &] +[s4;%- &] +[s5;:Array`:`:Swap`(int`,int`):%- [@(0.0.255) void]_[* Swap]([@(0.0.255) int]_[*@3 i1], +[@(0.0.255) int]_[*@3 i2])&] +[s2; Swaps elements without using copy constructor.&] +[s6; Invalidates iterators to the Array.&] +[s7; [*C@3 i1]-|Position of the first element.&] +[s7; [*C@3 i2]-|Position of the second element.&] +[s3;%- &] +[s4;%- &] +[s5;:Array`:`:Move`(int`,int`):%- [@(0.0.255) void]_[* Move]([@(0.0.255) int]_[*@3 i1], +[@(0.0.255) int]_[*@3 i2])&] +[s2; Removes element at position [* i1] and inserts it at [* i2], without +using copy constructor of T.&] +[s6; Invalidates iterators to the Array.&] +[s7; [*C@3 i1]-|Position of the element to move.&] +[s7; [*C@3 i2]-|Target position.&] +[s3;%- &] +[s4;%- &] +[s5;:Array`:`:Detach`(int`):%- [*@4 T]_`*[* Detach]([@(0.0.255) int]_[*@3 i])&] +[s2; Removes the element at position [* i], giving up ownership. Client +is responsible for deletion of the element.&] +[s6; Invalidates iterators to the Array.&] +[s7; [*C@3 i]-|Position of the element to remove.&] +[s7; [*/ Return value]-|Pointer to the element allocated on the heap.&] +[s3;%- &] +[s4;%- &] +[s5;:Array`:`:Swap`(int`,T`*`):%- [*@4 T]_`*[* Swap]([@(0.0.255) int]_[*@3 i], +[*@4 T]_`*[*@3 newt])&] +[s2; Sets element at [%-*@3 i] to [%-*@3 newt].and returns a pointer +to original element. Client is responsible for deletion of the +original element.&] +[s3; &] +[s4;%- &] +[s5;:Array`:`:Set`(int`,T`*`):%- [*@4 T][@(0.0.255) `&]_[* Set]([@(0.0.255) int]_[*@3 i], +[*@4 T]_`*[*@3 newt])&] +[s2; Replaces element at the specified position by an element previously +created on the heap. Array takes over ownership of the element.&] +[s7; [*C@3 i]-|Position.&] +[s7; [*C@3 newt]-|New element allocated on the heap.&] +[s7; [*/ Return value]-|Reference to new element.&] +[s3;%- &] +[s4;%- &] +[s5;:Array`:`:Insert`(int`,T`*`):%- [@(0.0.255) void]_[* Insert]([@(0.0.255) int]_[*@3 i], +[*@4 T]_`*[*@3 newt])&] +[s2; Inserts an element previously created on the heap at the specified +position. Array takes over ownership of element.&] +[s6; Invalidates iterators to the Array.&] +[s7; [*C@3 i]-|Insertion position.&] +[s7; [*C@3 newt]-|New element allocated on the heap.&] +[s3;%- &] +[s4;%- &] +[s5;:Array`:`:Drop`(int`):%- [@(0.0.255) void]_[* Drop]([@(0.0.255) int]_[*@3 n]_`=_[@3 1])&] +[s2; Drops specified number of last elements in the Array (same as +Trim(GetCount() `- n)).&] +[s7; [C@3 n][* -|Number of elements.]&] +[s3;%- &] +[s4;%- &] +[s5;:Array`:`:Top`(`):%- [*@4 T][@(0.0.255) `&]_[* Top]()&] +[s2; Returns reference to the last element in the Array.&] +[s7; [*/ Return value]-|Reference of last element in the Array.&] +[s3;%- &] +[s4;%- &] +[s5;:Array`:`:Top`(`)const:%- [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[* Top]()_[@(0.0.255) c +onst]&] +[s2; Returns constant reference to the last element in the Array.&] +[s7; [*/ Return value]-|Reference of last element in the Array.&] +[s3;%- &] +[s4;%- &] +[s5;:Array`:`:PopDetach`(`):%- [*@4 T]_`*[* PopDetach]()&] +[s2; Drops the last element in the Array, giving up ownership (same +as Detach(GetCount() `- 1)). Client is responsible for deletion +of element.&] +[s6; Invalidates iterators to the Array.&] +[s7; [*/ Return value]-|Pointer to element allocated on the heap.&] +[s3;%- &] +[s4;%- &] +[s5;:Array`:`:Swap`(Array`&`):%- [@(0.0.255) void]_[* Swap]([_^topic`:`/`/Core`/src`/Array`$en`-us`#Array`:`:class^ A +rray][@(0.0.255) `&]_[*@3 b])&] +[s2; Swaps content of Array with another array in constant time operation.&] +[s7; [*C@3 b]-|Target array.&] +[s3;%- &] +[s4;%- &] +[s5;:Array`:`:operator`<`<`(const T`&`):%- [_^topic`:`/`/Core`/src`/Array`$en`-us`#Array`:`:class^ A +rray][@(0.0.255) `&]_[* operator<<]([@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[*@3 x])&] +[s2; Operator replacement of [* void Add(const T`&x)]. By returning +a reference to the Array it allows adding more elements in a +single expression, thus e.g. allowing to construct a temporary +Array as part of an expression like Foo((Array() << 1 << +2 << 4)).&] +[s6; Requires T to have deep copy constructor.&] +[s6; Invalidates iterators to the Array.&] +[s7; [*C@3 x]-|The value that is copied to newly created element.&] +[s7; [*/ Return value]-|Reference to the Array (`*this).&] +[s3;%- &] +[s4;%- &] +[s5;:Array`:`:operator`<`<`(T`*`):%- [_^topic`:`/`/Core`/src`/Array`$en`-us`#Array`:`:class^ A +rray][@(0.0.255) `&]_[* operator<<]([*@4 T]_`*[*@3 newt])&] +[s2; Operator replacement of [* void Add(T `*x)]. By returning a reference +to the Array it allows adding more elements in a single expression, +thus e.g. allowing to construct a temporary Array as part of +an expression like Foo((Array() << new Bar << new DerivedFromBar)).&] +[s6; Invalidates iterators to the Array.&] +[s7; [*C@3 newt]-|Object to be added.&] +[s7; [*/ Return value]-|Reference to the Array (`*this).&] +[s3;%- &] +[s4;%- &] +[s5;:Array`:`:operator`|`(pick`_ T`&`):%- [_^topic`:`/`/Core`/src`/Array`$en`-us`#Array`:`:class^ A +rray][@(0.0.255) `&]_[* operator`|]([@(0.128.128) pick`_]_[*@4 T][@(0.0.255) `&]_[*@3 x])&] +[s2; Operator replacement of [* void AddPick(pick`_ T`&x)]. By returning +a reference to the Array it allows adding more elements in a +single expression, thus e.g. allowing to construct a temporary +Array as part of an expression.&] +[s6; Requires T to have pick constructor.&] +[s6; Invalidates iterators to the Array.&] +[s7; [*C@3 x]-|Source instance of T that is to be picked.&] +[s7; [*/ Return value]-|Reference to Array (`*this).&] +[s3;%- &] +[s4;%- &] +[s5;:Array`:`:IsPicked`(`)const:%- [@(0.0.255) bool]_[* IsPicked]()_[@(0.0.255) const]&] +[s2; Returns [* true] if the Array is in picked state.&] +[s7; [*/ Return value]-|[* true] if the Array is in picked state, [* false] +otherwise.&] +[s3;%- &] +[s4;%- &] +[s5;:Array`:`:Serialize`(Stream`&`):%- [@(0.0.255) void]_[* Serialize]([_^topic`:`/`/Core`/src`/Stream`$en`-us`#Stream`:`:class^ S +tream][@(0.0.255) `&]_[*@3 s])&] +[s2; Serializes the content of the Array to/from the Stream. Works +only if NTL is used as part of UPP. Does not work with polymorphic +Arrays (those storing objects derived from T).&] +[s6; Requires T to have serialization operator defined.&] +[s7; [*C@3 s]-|Target/source stream.&] +[s3;%- &] +[s4;%- &] +[s5;:Array`:`:operator`=`(pick`_ Array`&`):%- [@(0.0.255) void]_[* operator`=]([@(0.128.128) p +ick`_]_[_^topic`:`/`/Core`/src`/Array`$en`-us`#Array`:`:class^ Array][@(0.0.255) `&]_ +[*@3 v])&] +[s2; Pick operator. Transfers the source Array in low constant time, +but destroys it by picking.&] +[s7; [*C@3 v]-|Source Array.&] +[s3;%- &] +[s4;%- &] +[s5;:Array`:`:ValueType`:`:typedef:%- [@(0.0.255) typedef]_T_[* ValueType]&] +[s2; Typedef of T for use in templated algorithms.&] +[s3;%- &] +[s4;%- &] +[s1;:Array`:`:Iterator`:`:class:%- [@(0.0.255) class]_[* Iterator]_:_[@(0.0.255) public]_[*@3 C +onstIterator]&] +[s2; Iterator type.&] +[s3;%- &] +[s4;%- &] +[s1;:Upp`:`:Array`:`:ConstIterator`:`:class:%- [@(0.0.255) class]_[* ConstIterator]&] +[s2; Constant iterator type.&] +[s3;%- &] +[s4;%- &] +[s5;:Array`:`:Begin`(`):%- [_^topic`:`/`/Core`/src`/Array`$en`-us`#Array`:`:Iterator`:`:class^ I +terator]_[* Begin]()&] +[s2; Returns a non`-constant iterator to the first element in the +Array. &] +[s7; [*/ Return value]-|Iterator.&] +[s3;%- &] +[s4;%- &] +[s5;:Array`:`:End`(`):%- [_^topic`:`/`/Core`/src`/Array`$en`-us`#Array`:`:Iterator`:`:class^ I +terator]_[* End]()&] +[s2; Returns a non`-constant iterator to the position just beyond +the last element in Array.&] +[s7; [*/ Return value]-|Iterator.&] +[s3;%- &] +[s4;%- &] +[s5;:Array`:`:GetIter`(int`):%- [_^topic`:`/`/Core`/src`/Array`$en`-us`#Array`:`:Iterator`:`:class^ I +terator]_[* GetIter]([@(0.0.255) int]_[*@3 pos])&] +[s2; Returns a non`-constant iterator to the element at the specified +position. Same as [* Begin() `+ pos]. The benefit of this method +is that [* pos] is range checked in debug mode.&] +[s7; [*C@3 pos]-|Required position.&] +[s7; [*/ Return value]-|Iterator.&] +[s3;%- &] +[s4;%- &] +[s5;:Array`:`:Begin`(`)const:%- [_^topic`:`/`/Core`/src`/Array`$en`-us`#Upp`:`:Array`:`:ConstIterator`:`:class^ C +onstIterator]_[* Begin]()_[@(0.0.255) const]&] +[s2; Returns a constant iterator to the first element in Array. &] +[s7; [*/ Return value]-|Iterator.&] +[s3;%- &] +[s4;%- &] +[s5;:Array`:`:End`(`)const:%- [_^topic`:`/`/Core`/src`/Array`$en`-us`#Upp`:`:Array`:`:ConstIterator`:`:class^ C +onstIterator]_[* End]()_[@(0.0.255) const]&] +[s2; Returns a constant iterator to the position just beyond the +last element in Array.&] +[s7; [*/ Return value]-|Iterator.-|&] +[s3;%- &] +[s4;%- &] +[s5;:Array`:`:GetIter`(int`)const:%- [_^topic`:`/`/Core`/src`/Array`$en`-us`#Upp`:`:Array`:`:ConstIterator`:`:class^ C +onstIterator]_[* GetIter]([@(0.0.255) int]_[*@3 pos])_[@(0.0.255) const]&] +[s2; Returns a constant iterator to the element at the specified +position. Same as [* Begin() `+ pos]. The benefit of this method +is that [* pos] is range checked in debug mode..&] +[s7; [*C@3 pos]-|Required position.&] +[s7; [*/ Return value]-|Iterator.&] +[s3; &] +[s4;%- &] +[s5;%- friend_[@(0.0.255) void][@(64) _]Swap[@(64) (][_^topic`:`/`/Core`/src`/Array`$en`-us`#Array`:`:class^ A +rray][@(64) `&_][@3 a][@(64) , ][_^topic`:`/`/Core`/src`/Array`$en`-us`#Array`:`:class^ A +rray][@(64) `&_][@3 b][@(64) )]&] +[s2; Specialization of the generic [* Swap] for Array. Swaps the arrays +in simple constant time operation.&] +[s7; [*C@3 a]-|First Array to swap.&] +[s7; [*C@3 b]-|Second Array to swap.&] +[s4;%- &] +[s5;%- friend_[@(0.0.255) void][@(64) _]IterSwap[@(64) (][_^topic`:`/`/Core`/src`/Array`$en`-us`#Array`:`:Iterator`:`:class^ I +terator][@(64) _][@3 a][@(64) , ][_^topic`:`/`/Core`/src`/Array`$en`-us`#Array`:`:Iterator`:`:class^ I +terator][@(64) _][@3 b][@(64) )]&] +[s2; Specialization of the generic [* IterSwap] for Array. Swaps the +elements in an Array without any requirements for T.&] +[s7; [*C@3 a]-|Iterator to first element.&] +[s7; [*C@3 b]-|Iterator to second element.&] +[s3; &] [s0; ]] \ No newline at end of file diff --git a/uppsrc/Core/src.tpp/AsyncWork$en-us.tpp b/uppsrc/Core/src.tpp/AsyncWork_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/AsyncWork$en-us.tpp rename to uppsrc/Core/src.tpp/AsyncWork_en-us.tpp diff --git a/uppsrc/Core/src.tpp/BiArray$en-us.tpp b/uppsrc/Core/src.tpp/BiArray_en-us.tpp similarity index 97% rename from uppsrc/Core/src.tpp/BiArray$en-us.tpp rename to uppsrc/Core/src.tpp/BiArray_en-us.tpp index dbcba28b4..3e66c1706 100644 --- a/uppsrc/Core/src.tpp/BiArray$en-us.tpp +++ b/uppsrc/Core/src.tpp/BiArray_en-us.tpp @@ -1,389 +1,389 @@ -topic "BiArray"; -[2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,0#27521748481378242620020725143825:desc] -[0 $$3,0#96390100711032703541132217272105:end] -[H6;0 $$4,0#05600065144404261032431302351956:begin] -[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] -[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] -[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] -[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] -[b42;2 $$9,9#13035079074754324216151401829390:normal] -[{_}%EN-US -[ {{10000@(113.42.0) [s0; [*@7;4 BiArray]]}}&] -[s3; &] -[s1;:noref:%- [@(0.0.255)3 template][3 _<][@(0.0.255)3 class][3 _][*@4;3 T][@(0.0.255)3 >]&] -[s1;:BiArray`:`:class:%- [@(0.0.255) class]_[* BiArray]_:_[@(0.0.255) private]_[*@3 MoveableAn -dDeepCopyOption][@(0.0.255) <]_[* BiArray][@(0.0.255) <][*@4 T][@(0.0.255) >]_>_&] -[s8; [@4 T]-|Type or base class of elements stored in the BiArray. There -is no common requirement for T.&] -[s9; The universal form of bidirectional random access container. -Its features are derived from the fact that it is typically implemented -using an indirect container of pointers to T like BiVector. -Nevertheless it supports common concepts as ownership of contained -elements, reference (not pointer) access to elements and so on.&] -[s9; It provides almost all operations of BiVector with the same -semantics and almost any BiVector can be directly replaced by -BiArray. On the other hand, it provides some special operations -impossible for BiVector and most important, it never invalidates -references (that means C`+`+ references and pointers) to elements -(it often invalidates iterators, though).&] -[s9; BiArray can also be used to store polymorphic elements `- stored -elements could be derived from T. To store such elements, you -pass pointer to element previously created on the heap. Still, -BiArray takes over ownership of such element (it e.g. deletes -it when appropriate). You can also use this method to create -BiArray of elements that do not have pick nor deep copy constructor.&] -[s9; There are also operations that allow detaching an element from -BiArray, removing it but not destroying. Pointer to such element -is returned from these operations and BiArray gives up ownership.&] -[s9; Disadvantage of BiArray over BiVector is performance `- most -operations are significantly slower than with BiVectors (by factor -up to 8, it depends on speed of malloc/free).&] -[s9; As for memory, for small sized elements, BiArray memory consumption -is significantly higher than BiVector consumption. As the size -of the elements grow, BiArray starts to be better than BiVector.&] -[s9; Iterators to BiArray satisfy all C`+`+ standard library requirements -for random access iterator plus they allow assignment (and copy -constructor) and testing for 0 (that is NULL) pointer.&] -[s9; Like any other NTL container, BiArray is a [*/^topic`:`/`/Core`/srcdoc`/Moveable`$en`-us^ m -oveable][*/ ]type with [*/^topic`:`/`/Core`/srcdoc`/pick`_`$en`-us^ pick -and optional deep copy] transfer semantics. Calling methods of -picked BiArray is logic error with the exceptions of&] -[s0; [C+75 void ][*C+75 operator`=][C+75 (pick`_ BiArray`& ][*C@3+75 v][C+75 )]&] -[s0; [C+75 void ][*C+75 operator<<`=][C+75 (const BiArray`& ][*C@3+75 v][C+75 )][+75 -][/+75 (defined using DeepCopyOptionTemplate)]&] -[s0; [C+75 void ][*C+75 Clear][C+75 ()]&] -[s0; [C+75 bool ][*C+75 IsPicked][C+75 () const]&] -[s9; Optional deep copy is implemented through DeepCopyOptionTemplate -macro.&] -[s3;%- &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] -[s3;%- &] -[s5;:BiArray`:`:BiArray`(`):%- [* BiArray]()&] -[s2; Default constructor. Constructs empty BiArray.&] -[s3; &] -[s4; &] -[s0;:`:`:BiArray`:`:BiArray`(const`:`:BiArray`&`,int`): [* BiArray](const -[* BiArray]`& [*@3 v], int)&] -[s2; Optional deep copy constructor.&] -[s6; Requires T to have deep copy constructor or optional deep copy -constructor if Array stores only objects of type T.&] -[s6; Requires polymorphic deep copy if Array stores also objects -of type derived from T.&] -[s7; [*C@3 v]-|Source Array.&] -[s3; &] -[s4;%- &] -[s5;:BiArray`:`:BiArray`(pick`_ BiArray`&`):%- [* BiArray]([@(0.128.128) pick`_]_[* BiArray -][@(0.0.255) `&]_[*@3 src])&] -[s2; Pick constructor. Transfers source BiArray in low constant time, -but destroys it by picking. &] -[s7; [*@3 v]-|Source BiArray.&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:BiArray`:`:BiArray`(std`:`:initializer`_list``):%- [* BiArray]([_^http`:`/`/en`.cppreference`.com`/w`/cpp`/utility`/initializer`_list^ s -td`::initializer`_list]<[*@4 T]>_[*@3 init])&] -[s2; C`+`+ 11 initialization.&] -[s3; &] -[s4;%- &] -[s5;:BiArray`:`:`~BiArray`(`):%- [@(0.0.255) `~][* BiArray]()&] -[s2; Destructor. Invokes the destructor of every element in the BiArray.&] -[s3; &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] -[s3;%- &] -[s5;:BiArray`:`:AddHead`(`):%- [*@4 T][@(0.0.255) `&]_[* AddHead]()&] -[s2; Adds a new default constructed element at the head of the BiArray. -The new element will be at position 0.&] -[s6; Requires T to have default constructor.&] -[s6; Invalidates iterators to the BiArray.&] -[s7; [*/ Return value]-|Reference to the newly added default constructed -element.&] -[s3; &] -[s4;%- &] -[s5;:BiArray`:`:AddTail`(`):%- [*@4 T][@(0.0.255) `&]_[* AddTail]()&] -[s2; Adds a new default constructed element at the tail of BiArray. -The new element will be at position GetCount() `- 1.&] -[s6; Requires T to have default constructor.&] -[s6; Invalidates iterators to the BiArray.&] -[s7; [*/ Return value]-|Reference to the newly added default constructed -element.&] -[s0;3 &] -[s4;%- &] -[s5;:BiArray`:`:AddHead`(const T`&`):%- [@(0.0.255) void]_[* AddHead]([@(0.0.255) const]_[*@4 T -][@(0.0.255) `&]_[*@3 x])&] -[s2; Adds a new element with the specified value at the head of BiArray. -The new element will be at position 0.&] -[s6; Requires T to have deep copy constructor.&] -[s6; Invalidates iterators to the BiArray.&] -[s7; [*C@3 x]-|The value that is copied to the newly created element.&] -[s3; &] -[s4;%- &] -[s5;:BiArray`:`:AddTail`(const T`&`):%- [@(0.0.255) void]_[* AddTail]([@(0.0.255) const]_[*@4 T -][@(0.0.255) `&]_[*@3 x])&] -[s2; Adds a new element with the specified value at the tail of BiArray. -The new element will be at position GetCount() `- 1.&] -[s6; Requires T to have deep copy constructor.&] -[s6; Invalidates iterators to the BiArray.&] -[s7; [*C@3 x]-|The value that is copied to the newly created element.&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:BiArray`:`:AddHeadPick`(T`&`&`):%- [@(0.0.255) void]_[* AddHeadPick]([*@4 T][@(0.0.255) `& -`&]_[*@3 x])&] -[s2; Adds a new element at the head of BiArray and picks value of -the parameter. The new element will be at position 0.&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:BiArray`:`:AddTailPick`(T`&`&`):%- [@(0.0.255) void]_[* AddTailPick]([*@4 T][@(0.0.255) `& -`&]_[*@3 x])&] -[s2; Adds a new element at the tail of BiArray and picks the value -of the parameter. The new element will be at position GetCount() -`- 1.&] -[s3; &] -[s4;%- &] -[s5;:BiArray`:`:AddHead`(T`*`):%- [*@4 T][@(0.0.255) `&]_[* AddHead]([*@4 T]_`*[*@3 newt])&] -[s2; Adds a new element at the head of BiArray. Element is specified -by a pointer to the object. BiArray takes over ownership of the -object. This variant allows use of BiArray as polymorphic container, -because the type of added element can also be derived from T -as well. No constructor is applied. The new element will be at -position 0.&] -[s6; Invalidates iterators to the BiArray.&] -[s7; [*C@3 newt]-|The object to be added.&] -[s7; [*/ Return value]-|Reference to the object `= [* `*newt].&] -[s0;3 &] -[s4;%- &] -[s5;:BiArray`:`:AddTail`(T`*`):%- [*@4 T][@(0.0.255) `&]_[* AddTail]([*@4 T]_`*[*@3 newt])&] -[s2; Adds new element at the tail of BiArray. Element is specified -by a pointer to the object. BiArray takes over ownership of this -this object. This variant allows use of BiArray as polymorphic -container, because the type of added element can also be derived -from T as well. No constructor is applied. The new element will -be at position GetCount() `- 1.&] -[s6; Invalidates iterators to the BiArray.&] -[s7; [*C@3 newt]-|The object to be added.&] -[s7; [*/ Return value]-|Reference to the object `- [* `*newt].&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:BiArray`:`:CreateHead`(`):%- [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 TT]> -_[*@4 TT][@(0.0.255) `&]_[* CreateHead]()&] -[s2; Creates a new element of type [%-*@4 TT] at the head.&] -[s3;%- &] -[s4;%- &] -[s5;:Upp`:`:BiArray`:`:CreateTail`(`):%- [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 TT]> -_[*@4 TT][@(0.0.255) `&]_[* CreateTail]()&] -[s2; Creates a new element of type [%-*@4 TT] at the tail.&] -[s3;%- &] -[s4;%- &] -[s5;:BiArray`:`:Head`(`):%- [*@4 T][@(0.0.255) `&]_[* Head]()&] -[s2; Returns reference to the head of the BiArray. Same as operator`[`](0).&] -[s7; [*/ Return value]-|Reference to the head of BiArray.&] -[s3; &] -[s4;%- &] -[s5;:BiArray`:`:Tail`(`):%- [*@4 T][@(0.0.255) `&]_[* Tail]()&] -[s2; Returns reference to the tail of the BiArray. Same as operator`[`](GetCount() -`- 1).&] -[s7; [*/ Return value]-|Reference to the tail of BiArray.&] -[s3; &] -[s4;%- &] -[s5;:BiArray`:`:Head`(`)const:%- [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[* Head]()_[@(0.0.255) c -onst]&] -[s2; Returns reference to the head of the BiArray. Same as operator`[`](0).&] -[s7; [*/ Return value]-|Constant reference to the head of BiArray.&] -[s3; &] -[s4;%- &] -[s5;:BiArray`:`:Tail`(`)const:%- [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[* Tail]()_[@(0.0.255) c -onst]&] -[s2; Returns reference to the tail of the BiArray. Same as operator`[`](GetCount() -`- 1).&] -[s7; [*/ Return value]-|Constant reference to the tail of BiArray.&] -[s3; &] -[s4;%- &] -[s5;:BiArray`:`:DropHead`(`):%- [@(0.0.255) void]_[* DropHead]()&] -[s2; Removes element at the head of the BiArray.&] -[s6; Invalidates iterators to the BiArray.&] -[s3; &] -[s4;%- &] -[s5;:BiArray`:`:DropTail`(`):%- [@(0.0.255) void]_[* DropTail]()&] -[s2; Removes element at the tail of the BiArray.&] -[s6; Invalidates iterators to the BiArray.&] -[s3; &] -[s4;%- &] -[s5;:BiArray`:`:DetachHead`(`):%- [*@4 T]_`*[* DetachHead]()&] -[s2; Removes element at the head of the BiArray, giving up ownership. -Client is responsible for deletion of the element.&] -[s6; Invalidates iterators to the BiArray.&] -[s7; [*/ Return value]-|Pointer to the element allocated on the heap.&] -[s3; &] -[s4;%- &] -[s5;:BiArray`:`:DetachTail`(`):%- [*@4 T]_`*[* DetachTail]()&] -[s2; Removes element at the tail of the BiArray, giving up ownership. -Client is responsible for deletion of the element.&] -[s6; Invalidates iterators to the BiArray.&] -[s7; [*/ Return value]-|Pointer to the element allocated on the heap.&] -[s3; &] -[s4;%- &] -[s5;:BiArray`:`:operator`[`]`(int`):%- [*@4 T][@(0.0.255) `&]_[* operator`[`]]([@(0.0.255) in -t]_[*@3 i])&] -[s2; Returns a reference to the element at the specified position.&] -[s7; [*C@3 i]-|Position of the element.&] -[s7; [*/ Return value]-|Reference to the element.&] -[s3; &] -[s4;%- &] -[s5;:BiArray`:`:operator`[`]`(int`)const:%- [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[* oper -ator`[`]]([@(0.0.255) int]_[*@3 i])_[@(0.0.255) const]&] -[s2; Returns a reference to the element at the specified position.&] -[s7; [*C@3 i]-|Position of the element.&] -[s7; [*/ Return value]-|Constant reference to the element.&] -[s3; &] -[s4;%- &] -[s5;:BiArray`:`:GetCount`(`)const:%- [@(0.0.255) int]_[* GetCount]()_[@(0.0.255) const]&] -[s2; Returns the number of elements in the BiArray.&] -[s7; [*/ Return value]-|Actual number of elements.&] -[s3; &] -[s4;%- &] -[s5;:BiArray`:`:IsEmpty`(`)const:%- [@(0.0.255) bool]_[* IsEmpty]()_[@(0.0.255) const]&] -[s2; Tests whether the BiArray is empty. Same as GetCount() `=`= -0.&] -[s7; [*/ Return value]-|true if Vector is empty, false otherwise.&] -[s3; &] -[s4;%- &] -[s5;:BiArray`:`:Clear`(`):%- [@(0.0.255) void]_[* Clear]()&] -[s2; Removes all elements from the BiArray.&] -[s3; &] -[s4;%- &] -[s5;:BiArray`:`:Shrink`(`):%- [@(0.0.255) void]_[* Shrink]()&] -[s2; Minimizes memory consumption of the BiArray by minimizing capacity.&] -[s3; &] -[s4;%- &] -[s5;:BiArray`:`:Reserve`(int`):%- [@(0.0.255) void]_[* Reserve]([@(0.0.255) int]_[*@3 n])&] -[s2; Reserves capacity. If required capacity is greater than the -current capacity, capacity is increased to the required value.&] -[s7; [*C@3 n]-|Required capacity.&] -[s3; &] -[s4;%- &] -[s5;:BiArray`:`:GetAlloc`(`)const:%- [@(0.0.255) int]_[* GetAlloc]()_[@(0.0.255) const]&] -[s2; Returns current capacity of BiArray.&] -[s7; [*/ Return value]-|Capacity of the BiArray.&] -[s3; &] -[s4; &] -[s0;:friend BiArray`& operator`<`<`(BiArray`& b`, const T`& x`): friend -BiArray`& [* operator]<<(BiArray`& [*@3 b], const T`& [*@3 x])&] -[s2; Operator replacement of [* void AddTail(const T`&x)]. By returning -a reference to the BiArray it allows adding more elements in -a single expression, thus e.g. allowing to construct a temporary -BiArray as part of an expression like Foo(BiArray() << 1 -<< 2 << 4).&] -[s6; Requires T to have deep copy constructor.&] -[s6; Invalidates iterators to the BiArray.&] -[s7; [*C@3 x]-|The value that is copied to the newly created element.&] -[s7; [*/ Return value]-|Reference to the BiArray (that is `*this).&] -[s3; &] -[s4; &] -[s0;:friend BiArray`& operator`>`>`(const T`& x`, BiArray`& b`): friend -BiArray`& [* operator]>>(const T`& [*@3 x], BiArray`& [*@3 b])&] -[s2; Operator replacement of [* void AddHead(const T`&x)]. By returning -a reference to the BiArray it allows adding more elements in -a single expression, thus e.g. allowing to construct a temporary -BiArray as part of an expression like Foo(1 >> (2 >> BiArray())).&] -[s6; Requires T to have deep copy constructor.&] -[s6; Invalidates iterators to the BiArray.&] -[s7; [*C@3 x]-|The value that is copied to the newly created element.&] -[s7; [*/ Return value]-|Reference to the BiArray (that is `*this).&] -[s3; &] -[s4;%- &] -[s5;:BiArray`:`:Serialize`(Stream`&`):%- [@(0.0.255) void]_[* Serialize]([_^Stream^ Stream][@(0.0.255) `& -]_[*@3 s])&] -[s2; Serializes the content of the BiArray to/from a Stream. Works -only if NTL is used as part of UPP.&] -[s6; Requires T to have serialization operator defined.&] -[s7; [*C@3 s]-|Target/source stream.&] -[s3; &] -[s4;%- &] -[s5;:BiArray`:`:IsPicked`(`)const:%- [@(0.0.255) bool]_[* IsPicked]()_[@(0.0.255) const]&] -[s2; Returns [* true] if BiArray is in picked state.&] -[s7; [*/ Return value]-|[* true] if BiArray is in picked state, [* false] -otherwise.&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:BiArray`:`:BiArray`(const Upp`:`:BiArray`&`,int`):%- [* BiArray]([@(0.0.255) c -onst]_[* BiArray][@(0.0.255) `&]_[*@3 v], [@(0.0.255) int])&] -[s2; Optional deep copy constructor.&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:BiArray`:`:BiArray`(Upp`:`:BiArray`&`&`):%- [* BiArray]([* BiArray][@(0.0.255) `& -`&]_[*@3 src])&] -[s2; Pick constructor.&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:BiArray`:`:operator`=`(Upp`:`:BiArray`&`&`):%- [@(0.0.255) void]_[* operator`= -]([_^Upp`:`:BiArray^ BiArray][@(0.0.255) `&`&]_[*@3 src])&] -[s2; Pick assignment.&] -[s3; &] -[s4;%- &] -[s5;:BiArray`:`:ValueType`:`:typedef:%- [@(0.0.255) typedef]_T_[* ValueType]&] -[s2; Typedef of T for use in templated algorithms.&] -[s3; &] -[s4;%- &] -[s5;:BiArray`:`:Iterator`:`:typedef:%- [@(0.0.255) typedef]_[_^IIterator^ IIterator][@(0.0.255) < -][_^BiArray^ BiArray][@(0.0.255) >]_[* Iterator]&] -[s2; Iterator type.&] -[s3; &] -[s4;%- &] -[s5;:BiArray`:`:ConstIterator`:`:typedef:%- [@(0.0.255) typedef]_[_^ConstIIterator^ Const -IIterator][@(0.0.255) <][_^BiArray^ BiArray][@(0.0.255) >]_[* ConstIterator]&] -[s2; Constant iterator type.&] -[s3; &] -[s4;%- &] -[s5;:BiArray`:`:Begin`(`):%- [_^BiArray`:`:Iterator^ Iterator]_[* Begin]()&] -[s2; Returns a non`-constant iterator to the head of the BiArray. -&] -[s7; [*/ Return value]-|Iterator.&] -[s3; &] -[s4;%- &] -[s5;:BiArray`:`:End`(`):%- [_^BiArray`:`:Iterator^ Iterator]_[* End]()&] -[s2; Returns a non`-constant iterator to the position just beyond -the tail of the BiArray.&] -[s7; [*/ Return value]-|Iterator.&] -[s3; &] -[s4;%- &] -[s5;:BiArray`:`:GetIter`(int`):%- [_^BiArray`:`:Iterator^ Iterator]_[* GetIter]([@(0.0.255) i -nt]_[*@3 pos])&] -[s2; Returns a non`-constant iterator to the element at the specified -position. Same as [* Begin() `+ pos]. The benefit of this method -is that [* pos] is range checked in debug mode.&] -[s7; [*C@3 pos]-|Required position.&] -[s7; [*/ Return value]-|Iterator.&] -[s3; &] -[s4;%- &] -[s5;:BiArray`:`:Begin`(`)const:%- [_^BiArray`:`:ConstIterator^ ConstIterator]_[* Begin]() -_[@(0.0.255) const]&] -[s2; Returns a constant iterator to the head of the BiArray. &] -[s7; [*/ Return value]-|Iterator.&] -[s3; &] -[s4;%- &] -[s5;:BiArray`:`:End`(`)const:%- [_^BiArray`:`:ConstIterator^ ConstIterator]_[* End]()_[@(0.0.255) c -onst]&] -[s2; Returns a constant iterator to the position just beyond the -tail of the Array.&] -[s7; [*/ Return value]-|Iterator.-|&] -[s3; &] -[s4;%- &] -[s5;:BiArray`:`:GetIter`(int`)const:%- [_^BiArray`:`:ConstIterator^ ConstIterator]_[* Get -Iter]([@(0.0.255) int]_[*@3 pos])_[@(0.0.255) const]&] -[s2; Returns a constant iterator to the element at the specified -position. Same as [* Begin() `+ pos]. The benefit of this method -is that [* pos] is range checked in debug mode.&] -[s7; [*C@3 pos]-|Required position.&] -[s7; [*/ Return value]-|Iterator.&] -[s3; &] -[s4; &] -[s5;K%- friend_[@(0.0.255) void][@(64) _]Swap[@(64) (][^`:`:BiArray^@(64) BiArray][@(64) `&_][@3 a -][@(64) , ][^`:`:BiArray^@(64) BiArray][@(64) `&_][@3 b][@(64) )]&] -[s2; Specialization of the generic [* Swap] for BiArrays. Swaps BiArray -in low constant time operation.&] -[s7; [*@3 a]-|First BiArray to swap.&] -[s7; [*@3 b]-|Second BiArray to swap.&] -[s3; &] +topic "BiArray"; +[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,0#27521748481378242620020725143825:desc] +[0 $$3,0#96390100711032703541132217272105:end] +[H6;0 $$4,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] +[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] +[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] +[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] +[b42;2 $$9,9#13035079074754324216151401829390:normal] +[{_}%EN-US +[ {{10000@(113.42.0) [s0; [*@7;4 BiArray]]}}&] +[s3; &] +[s1;:noref:%- [@(0.0.255)3 template][3 _<][@(0.0.255)3 class][3 _][*@4;3 T][@(0.0.255)3 >]&] +[s1;:BiArray`:`:class:%- [@(0.0.255) class]_[* BiArray]_:_[@(0.0.255) private]_[*@3 MoveableAn +dDeepCopyOption][@(0.0.255) <]_[* BiArray][@(0.0.255) <][*@4 T][@(0.0.255) >]_>_&] +[s8; [@4 T]-|Type or base class of elements stored in the BiArray. There +is no common requirement for T.&] +[s9; The universal form of bidirectional random access container. +Its features are derived from the fact that it is typically implemented +using an indirect container of pointers to T like BiVector. +Nevertheless it supports common concepts as ownership of contained +elements, reference (not pointer) access to elements and so on.&] +[s9; It provides almost all operations of BiVector with the same +semantics and almost any BiVector can be directly replaced by +BiArray. On the other hand, it provides some special operations +impossible for BiVector and most important, it never invalidates +references (that means C`+`+ references and pointers) to elements +(it often invalidates iterators, though).&] +[s9; BiArray can also be used to store polymorphic elements `- stored +elements could be derived from T. To store such elements, you +pass pointer to element previously created on the heap. Still, +BiArray takes over ownership of such element (it e.g. deletes +it when appropriate). You can also use this method to create +BiArray of elements that do not have pick nor deep copy constructor.&] +[s9; There are also operations that allow detaching an element from +BiArray, removing it but not destroying. Pointer to such element +is returned from these operations and BiArray gives up ownership.&] +[s9; Disadvantage of BiArray over BiVector is performance `- most +operations are significantly slower than with BiVectors (by factor +up to 8, it depends on speed of malloc/free).&] +[s9; As for memory, for small sized elements, BiArray memory consumption +is significantly higher than BiVector consumption. As the size +of the elements grow, BiArray starts to be better than BiVector.&] +[s9; Iterators to BiArray satisfy all C`+`+ standard library requirements +for random access iterator plus they allow assignment (and copy +constructor) and testing for 0 (that is NULL) pointer.&] +[s9; Like any other NTL container, BiArray is a [*/^topic`:`/`/Core`/srcdoc`/Moveable`$en`-us^ m +oveable][*/ ]type with [*/^topic`:`/`/Core`/srcdoc`/pick`_`$en`-us^ pick +and optional deep copy] transfer semantics. Calling methods of +picked BiArray is logic error with the exceptions of&] +[s0; [C+75 void ][*C+75 operator`=][C+75 (pick`_ BiArray`& ][*C@3+75 v][C+75 )]&] +[s0; [C+75 void ][*C+75 operator<<`=][C+75 (const BiArray`& ][*C@3+75 v][C+75 )][+75 +][/+75 (defined using DeepCopyOptionTemplate)]&] +[s0; [C+75 void ][*C+75 Clear][C+75 ()]&] +[s0; [C+75 bool ][*C+75 IsPicked][C+75 () const]&] +[s9; Optional deep copy is implemented through DeepCopyOptionTemplate +macro.&] +[s3;%- &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] +[s3;%- &] +[s5;:BiArray`:`:BiArray`(`):%- [* BiArray]()&] +[s2; Default constructor. Constructs empty BiArray.&] +[s3; &] +[s4; &] +[s0;:`:`:BiArray`:`:BiArray`(const`:`:BiArray`&`,int`): [* BiArray](const +[* BiArray]`& [*@3 v], int)&] +[s2; Optional deep copy constructor.&] +[s6; Requires T to have deep copy constructor or optional deep copy +constructor if Array stores only objects of type T.&] +[s6; Requires polymorphic deep copy if Array stores also objects +of type derived from T.&] +[s7; [*C@3 v]-|Source Array.&] +[s3; &] +[s4;%- &] +[s5;:BiArray`:`:BiArray`(pick`_ BiArray`&`):%- [* BiArray]([@(0.128.128) pick`_]_[* BiArray +][@(0.0.255) `&]_[*@3 src])&] +[s2; Pick constructor. Transfers source BiArray in low constant time, +but destroys it by picking. &] +[s7; [*@3 v]-|Source BiArray.&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:BiArray`:`:BiArray`(std`:`:initializer`_list``):%- [* BiArray]([_^http`:`/`/en`.cppreference`.com`/w`/cpp`/utility`/initializer`_list^ s +td`::initializer`_list]<[*@4 T]>_[*@3 init])&] +[s2; C`+`+ 11 initialization.&] +[s3; &] +[s4;%- &] +[s5;:BiArray`:`:`~BiArray`(`):%- [@(0.0.255) `~][* BiArray]()&] +[s2; Destructor. Invokes the destructor of every element in the BiArray.&] +[s3; &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] +[s3;%- &] +[s5;:BiArray`:`:AddHead`(`):%- [*@4 T][@(0.0.255) `&]_[* AddHead]()&] +[s2; Adds a new default constructed element at the head of the BiArray. +The new element will be at position 0.&] +[s6; Requires T to have default constructor.&] +[s6; Invalidates iterators to the BiArray.&] +[s7; [*/ Return value]-|Reference to the newly added default constructed +element.&] +[s3; &] +[s4;%- &] +[s5;:BiArray`:`:AddTail`(`):%- [*@4 T][@(0.0.255) `&]_[* AddTail]()&] +[s2; Adds a new default constructed element at the tail of BiArray. +The new element will be at position GetCount() `- 1.&] +[s6; Requires T to have default constructor.&] +[s6; Invalidates iterators to the BiArray.&] +[s7; [*/ Return value]-|Reference to the newly added default constructed +element.&] +[s0;3 &] +[s4;%- &] +[s5;:BiArray`:`:AddHead`(const T`&`):%- [@(0.0.255) void]_[* AddHead]([@(0.0.255) const]_[*@4 T +][@(0.0.255) `&]_[*@3 x])&] +[s2; Adds a new element with the specified value at the head of BiArray. +The new element will be at position 0.&] +[s6; Requires T to have deep copy constructor.&] +[s6; Invalidates iterators to the BiArray.&] +[s7; [*C@3 x]-|The value that is copied to the newly created element.&] +[s3; &] +[s4;%- &] +[s5;:BiArray`:`:AddTail`(const T`&`):%- [@(0.0.255) void]_[* AddTail]([@(0.0.255) const]_[*@4 T +][@(0.0.255) `&]_[*@3 x])&] +[s2; Adds a new element with the specified value at the tail of BiArray. +The new element will be at position GetCount() `- 1.&] +[s6; Requires T to have deep copy constructor.&] +[s6; Invalidates iterators to the BiArray.&] +[s7; [*C@3 x]-|The value that is copied to the newly created element.&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:BiArray`:`:AddHeadPick`(T`&`&`):%- [@(0.0.255) void]_[* AddHeadPick]([*@4 T][@(0.0.255) `& +`&]_[*@3 x])&] +[s2; Adds a new element at the head of BiArray and picks value of +the parameter. The new element will be at position 0.&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:BiArray`:`:AddTailPick`(T`&`&`):%- [@(0.0.255) void]_[* AddTailPick]([*@4 T][@(0.0.255) `& +`&]_[*@3 x])&] +[s2; Adds a new element at the tail of BiArray and picks the value +of the parameter. The new element will be at position GetCount() +`- 1.&] +[s3; &] +[s4;%- &] +[s5;:BiArray`:`:AddHead`(T`*`):%- [*@4 T][@(0.0.255) `&]_[* AddHead]([*@4 T]_`*[*@3 newt])&] +[s2; Adds a new element at the head of BiArray. Element is specified +by a pointer to the object. BiArray takes over ownership of the +object. This variant allows use of BiArray as polymorphic container, +because the type of added element can also be derived from T +as well. No constructor is applied. The new element will be at +position 0.&] +[s6; Invalidates iterators to the BiArray.&] +[s7; [*C@3 newt]-|The object to be added.&] +[s7; [*/ Return value]-|Reference to the object `= [* `*newt].&] +[s0;3 &] +[s4;%- &] +[s5;:BiArray`:`:AddTail`(T`*`):%- [*@4 T][@(0.0.255) `&]_[* AddTail]([*@4 T]_`*[*@3 newt])&] +[s2; Adds new element at the tail of BiArray. Element is specified +by a pointer to the object. BiArray takes over ownership of this +this object. This variant allows use of BiArray as polymorphic +container, because the type of added element can also be derived +from T as well. No constructor is applied. The new element will +be at position GetCount() `- 1.&] +[s6; Invalidates iterators to the BiArray.&] +[s7; [*C@3 newt]-|The object to be added.&] +[s7; [*/ Return value]-|Reference to the object `- [* `*newt].&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:BiArray`:`:CreateHead`(`):%- [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 TT]> +_[*@4 TT][@(0.0.255) `&]_[* CreateHead]()&] +[s2; Creates a new element of type [%-*@4 TT] at the head.&] +[s3;%- &] +[s4;%- &] +[s5;:Upp`:`:BiArray`:`:CreateTail`(`):%- [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 TT]> +_[*@4 TT][@(0.0.255) `&]_[* CreateTail]()&] +[s2; Creates a new element of type [%-*@4 TT] at the tail.&] +[s3;%- &] +[s4;%- &] +[s5;:BiArray`:`:Head`(`):%- [*@4 T][@(0.0.255) `&]_[* Head]()&] +[s2; Returns reference to the head of the BiArray. Same as operator`[`](0).&] +[s7; [*/ Return value]-|Reference to the head of BiArray.&] +[s3; &] +[s4;%- &] +[s5;:BiArray`:`:Tail`(`):%- [*@4 T][@(0.0.255) `&]_[* Tail]()&] +[s2; Returns reference to the tail of the BiArray. Same as operator`[`](GetCount() +`- 1).&] +[s7; [*/ Return value]-|Reference to the tail of BiArray.&] +[s3; &] +[s4;%- &] +[s5;:BiArray`:`:Head`(`)const:%- [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[* Head]()_[@(0.0.255) c +onst]&] +[s2; Returns reference to the head of the BiArray. Same as operator`[`](0).&] +[s7; [*/ Return value]-|Constant reference to the head of BiArray.&] +[s3; &] +[s4;%- &] +[s5;:BiArray`:`:Tail`(`)const:%- [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[* Tail]()_[@(0.0.255) c +onst]&] +[s2; Returns reference to the tail of the BiArray. Same as operator`[`](GetCount() +`- 1).&] +[s7; [*/ Return value]-|Constant reference to the tail of BiArray.&] +[s3; &] +[s4;%- &] +[s5;:BiArray`:`:DropHead`(`):%- [@(0.0.255) void]_[* DropHead]()&] +[s2; Removes element at the head of the BiArray.&] +[s6; Invalidates iterators to the BiArray.&] +[s3; &] +[s4;%- &] +[s5;:BiArray`:`:DropTail`(`):%- [@(0.0.255) void]_[* DropTail]()&] +[s2; Removes element at the tail of the BiArray.&] +[s6; Invalidates iterators to the BiArray.&] +[s3; &] +[s4;%- &] +[s5;:BiArray`:`:DetachHead`(`):%- [*@4 T]_`*[* DetachHead]()&] +[s2; Removes element at the head of the BiArray, giving up ownership. +Client is responsible for deletion of the element.&] +[s6; Invalidates iterators to the BiArray.&] +[s7; [*/ Return value]-|Pointer to the element allocated on the heap.&] +[s3; &] +[s4;%- &] +[s5;:BiArray`:`:DetachTail`(`):%- [*@4 T]_`*[* DetachTail]()&] +[s2; Removes element at the tail of the BiArray, giving up ownership. +Client is responsible for deletion of the element.&] +[s6; Invalidates iterators to the BiArray.&] +[s7; [*/ Return value]-|Pointer to the element allocated on the heap.&] +[s3; &] +[s4;%- &] +[s5;:BiArray`:`:operator`[`]`(int`):%- [*@4 T][@(0.0.255) `&]_[* operator`[`]]([@(0.0.255) in +t]_[*@3 i])&] +[s2; Returns a reference to the element at the specified position.&] +[s7; [*C@3 i]-|Position of the element.&] +[s7; [*/ Return value]-|Reference to the element.&] +[s3; &] +[s4;%- &] +[s5;:BiArray`:`:operator`[`]`(int`)const:%- [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[* oper +ator`[`]]([@(0.0.255) int]_[*@3 i])_[@(0.0.255) const]&] +[s2; Returns a reference to the element at the specified position.&] +[s7; [*C@3 i]-|Position of the element.&] +[s7; [*/ Return value]-|Constant reference to the element.&] +[s3; &] +[s4;%- &] +[s5;:BiArray`:`:GetCount`(`)const:%- [@(0.0.255) int]_[* GetCount]()_[@(0.0.255) const]&] +[s2; Returns the number of elements in the BiArray.&] +[s7; [*/ Return value]-|Actual number of elements.&] +[s3; &] +[s4;%- &] +[s5;:BiArray`:`:IsEmpty`(`)const:%- [@(0.0.255) bool]_[* IsEmpty]()_[@(0.0.255) const]&] +[s2; Tests whether the BiArray is empty. Same as GetCount() `=`= +0.&] +[s7; [*/ Return value]-|true if Vector is empty, false otherwise.&] +[s3; &] +[s4;%- &] +[s5;:BiArray`:`:Clear`(`):%- [@(0.0.255) void]_[* Clear]()&] +[s2; Removes all elements from the BiArray.&] +[s3; &] +[s4;%- &] +[s5;:BiArray`:`:Shrink`(`):%- [@(0.0.255) void]_[* Shrink]()&] +[s2; Minimizes memory consumption of the BiArray by minimizing capacity.&] +[s3; &] +[s4;%- &] +[s5;:BiArray`:`:Reserve`(int`):%- [@(0.0.255) void]_[* Reserve]([@(0.0.255) int]_[*@3 n])&] +[s2; Reserves capacity. If required capacity is greater than the +current capacity, capacity is increased to the required value.&] +[s7; [*C@3 n]-|Required capacity.&] +[s3; &] +[s4;%- &] +[s5;:BiArray`:`:GetAlloc`(`)const:%- [@(0.0.255) int]_[* GetAlloc]()_[@(0.0.255) const]&] +[s2; Returns current capacity of BiArray.&] +[s7; [*/ Return value]-|Capacity of the BiArray.&] +[s3; &] +[s4; &] +[s0;:friend BiArray`& operator`<`<`(BiArray`& b`, const T`& x`): friend +BiArray`& [* operator]<<(BiArray`& [*@3 b], const T`& [*@3 x])&] +[s2; Operator replacement of [* void AddTail(const T`&x)]. By returning +a reference to the BiArray it allows adding more elements in +a single expression, thus e.g. allowing to construct a temporary +BiArray as part of an expression like Foo(BiArray() << 1 +<< 2 << 4).&] +[s6; Requires T to have deep copy constructor.&] +[s6; Invalidates iterators to the BiArray.&] +[s7; [*C@3 x]-|The value that is copied to the newly created element.&] +[s7; [*/ Return value]-|Reference to the BiArray (that is `*this).&] +[s3; &] +[s4; &] +[s0;:friend BiArray`& operator`>`>`(const T`& x`, BiArray`& b`): friend +BiArray`& [* operator]>>(const T`& [*@3 x], BiArray`& [*@3 b])&] +[s2; Operator replacement of [* void AddHead(const T`&x)]. By returning +a reference to the BiArray it allows adding more elements in +a single expression, thus e.g. allowing to construct a temporary +BiArray as part of an expression like Foo(1 >> (2 >> BiArray())).&] +[s6; Requires T to have deep copy constructor.&] +[s6; Invalidates iterators to the BiArray.&] +[s7; [*C@3 x]-|The value that is copied to the newly created element.&] +[s7; [*/ Return value]-|Reference to the BiArray (that is `*this).&] +[s3; &] +[s4;%- &] +[s5;:BiArray`:`:Serialize`(Stream`&`):%- [@(0.0.255) void]_[* Serialize]([_^Stream^ Stream][@(0.0.255) `& +]_[*@3 s])&] +[s2; Serializes the content of the BiArray to/from a Stream. Works +only if NTL is used as part of UPP.&] +[s6; Requires T to have serialization operator defined.&] +[s7; [*C@3 s]-|Target/source stream.&] +[s3; &] +[s4;%- &] +[s5;:BiArray`:`:IsPicked`(`)const:%- [@(0.0.255) bool]_[* IsPicked]()_[@(0.0.255) const]&] +[s2; Returns [* true] if BiArray is in picked state.&] +[s7; [*/ Return value]-|[* true] if BiArray is in picked state, [* false] +otherwise.&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:BiArray`:`:BiArray`(const Upp`:`:BiArray`&`,int`):%- [* BiArray]([@(0.0.255) c +onst]_[* BiArray][@(0.0.255) `&]_[*@3 v], [@(0.0.255) int])&] +[s2; Optional deep copy constructor.&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:BiArray`:`:BiArray`(Upp`:`:BiArray`&`&`):%- [* BiArray]([* BiArray][@(0.0.255) `& +`&]_[*@3 src])&] +[s2; Pick constructor.&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:BiArray`:`:operator`=`(Upp`:`:BiArray`&`&`):%- [@(0.0.255) void]_[* operator`= +]([_^Upp`:`:BiArray^ BiArray][@(0.0.255) `&`&]_[*@3 src])&] +[s2; Pick assignment.&] +[s3; &] +[s4;%- &] +[s5;:BiArray`:`:ValueType`:`:typedef:%- [@(0.0.255) typedef]_T_[* ValueType]&] +[s2; Typedef of T for use in templated algorithms.&] +[s3; &] +[s4;%- &] +[s5;:BiArray`:`:Iterator`:`:typedef:%- [@(0.0.255) typedef]_[_^IIterator^ IIterator][@(0.0.255) < +][_^BiArray^ BiArray][@(0.0.255) >]_[* Iterator]&] +[s2; Iterator type.&] +[s3; &] +[s4;%- &] +[s5;:BiArray`:`:ConstIterator`:`:typedef:%- [@(0.0.255) typedef]_[_^ConstIIterator^ Const +IIterator][@(0.0.255) <][_^BiArray^ BiArray][@(0.0.255) >]_[* ConstIterator]&] +[s2; Constant iterator type.&] +[s3; &] +[s4;%- &] +[s5;:BiArray`:`:Begin`(`):%- [_^BiArray`:`:Iterator^ Iterator]_[* Begin]()&] +[s2; Returns a non`-constant iterator to the head of the BiArray. +&] +[s7; [*/ Return value]-|Iterator.&] +[s3; &] +[s4;%- &] +[s5;:BiArray`:`:End`(`):%- [_^BiArray`:`:Iterator^ Iterator]_[* End]()&] +[s2; Returns a non`-constant iterator to the position just beyond +the tail of the BiArray.&] +[s7; [*/ Return value]-|Iterator.&] +[s3; &] +[s4;%- &] +[s5;:BiArray`:`:GetIter`(int`):%- [_^BiArray`:`:Iterator^ Iterator]_[* GetIter]([@(0.0.255) i +nt]_[*@3 pos])&] +[s2; Returns a non`-constant iterator to the element at the specified +position. Same as [* Begin() `+ pos]. The benefit of this method +is that [* pos] is range checked in debug mode.&] +[s7; [*C@3 pos]-|Required position.&] +[s7; [*/ Return value]-|Iterator.&] +[s3; &] +[s4;%- &] +[s5;:BiArray`:`:Begin`(`)const:%- [_^BiArray`:`:ConstIterator^ ConstIterator]_[* Begin]() +_[@(0.0.255) const]&] +[s2; Returns a constant iterator to the head of the BiArray. &] +[s7; [*/ Return value]-|Iterator.&] +[s3; &] +[s4;%- &] +[s5;:BiArray`:`:End`(`)const:%- [_^BiArray`:`:ConstIterator^ ConstIterator]_[* End]()_[@(0.0.255) c +onst]&] +[s2; Returns a constant iterator to the position just beyond the +tail of the Array.&] +[s7; [*/ Return value]-|Iterator.-|&] +[s3; &] +[s4;%- &] +[s5;:BiArray`:`:GetIter`(int`)const:%- [_^BiArray`:`:ConstIterator^ ConstIterator]_[* Get +Iter]([@(0.0.255) int]_[*@3 pos])_[@(0.0.255) const]&] +[s2; Returns a constant iterator to the element at the specified +position. Same as [* Begin() `+ pos]. The benefit of this method +is that [* pos] is range checked in debug mode.&] +[s7; [*C@3 pos]-|Required position.&] +[s7; [*/ Return value]-|Iterator.&] +[s3; &] +[s4; &] +[s5;K%- friend_[@(0.0.255) void][@(64) _]Swap[@(64) (][^`:`:BiArray^@(64) BiArray][@(64) `&_][@3 a +][@(64) , ][^`:`:BiArray^@(64) BiArray][@(64) `&_][@3 b][@(64) )]&] +[s2; Specialization of the generic [* Swap] for BiArrays. Swaps BiArray +in low constant time operation.&] +[s7; [*@3 a]-|First BiArray to swap.&] +[s7; [*@3 b]-|Second BiArray to swap.&] +[s3; &] [s0; ]] \ No newline at end of file diff --git a/uppsrc/Core/src.tpp/BiVector$en-us.tpp b/uppsrc/Core/src.tpp/BiVector_en-us.tpp similarity index 97% rename from uppsrc/Core/src.tpp/BiVector$en-us.tpp rename to uppsrc/Core/src.tpp/BiVector_en-us.tpp index 100bc6a9c..478718c3a 100644 --- a/uppsrc/Core/src.tpp/BiVector$en-us.tpp +++ b/uppsrc/Core/src.tpp/BiVector_en-us.tpp @@ -1,290 +1,290 @@ -topic "BiVector"; -[2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,0#27521748481378242620020725143825:desc] -[0 $$3,0#96390100711032703541132217272105:end] -[H6;0 $$4,0#05600065144404261032431302351956:begin] -[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] -[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] -[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] -[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] -[b42;2 $$9,9#13035079074754324216151401829390:normal] -[{_}%EN-US -[ {{10000@(113.42.0) [s0; [*@7;4 BiVector]]}}&] -[s3; &] -[s1;:noref:%- [@(0.0.255)3 template][3 _<][@(0.0.255)3 class][3 _][*@4;3 T][@(0.0.255)3 >]&] -[s1;:BiVector`:`:class:%- [@(0.0.255) class]_[* BiVector]_:_[@(0.0.255) private]_[*@3 Moveable -AndDeepCopyOption][@(0.0.255) <]_[* BiVector][@(0.0.255) <][*@4 T][@(0.0.255) >]_>_&] -[s8; [*@4 T]-|Type of elements stored in the BiVector. T is required -to be [/^topic`:`/`/Core`/srcdoc`/Moveable`$en`-us^ moveable][/ -]and must have either [/ deep copy constructor], [/ pick constructor] -or [/ default constructor].&] -[s0; &] -[s0;# Vector flavor of bidirectional container. Allows adding elements -at both sides of sequence in constant amortized time.&] -[s0;# &] -[s0; Like any other NTL container, BiVector is a [*/^topic`:`/`/Core`/srcdoc`/Moveable`$en`-us^ m -oveable][/ ]type with [*/^topic`:`/`/Core`/srcdoc`/pick`_`$en`-us^ pick -and optional deep copy] transfer semantics. Calling methods of -picked a BiVector is logic error with the exceptions of:&] -[s0;%- [C+75 void ][*C+75 operator`=][C+75 (pick`_ Vector`& ][*C@3+75 v][C+75 )]&] -[s0;%- [C+75 void ][*C+75 operator<<`=][C+75 (const Vector`& ][*C@3+75 v][C+75 ) -][/C+75 (defined using DeepCopyOptionTemplate)]&] -[s0;%- [C+75 void ][*C+75 Clear][C+75 ()]&] -[s0;%- [C+75 bool ][*C+75 IsPicked][C+75 () const]&] -[s0;C+75%- &] -[s0; Optional deep copy is implemented through [* DeepCopyOptionTemplate] -macro.&] -[s3; &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] -[s3; &] -[s5;:BiVector`:`:BiVector`(`):%- [* BiVector]()&] -[s2; Default constructor. Creates an empty [* BiVector].&] -[s3;%- &] -[s4;%- &] -[s5;:Upp`:`:BiVector`:`:BiVector`(Upp`:`:BiVector`&`&`):%- [* BiVector]([* BiVector][@(0.0.255) `& -`&]_[*@3 src])&] -[s2; Pick constructor. Transfers source [* BiVector ][%-*@3 src ]in low -constant time, but destroys it by picking.&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:BiVector`:`:operator`=`(Upp`:`:BiVector`&`&`):%- [@(0.0.255) void]_[* operato -r`=]([_^Upp`:`:BiVector^ BiVector][@(0.0.255) `&`&]_[*@3 src])&] -[s2; Pick assignment. Transfers source [* BiVector ][%-*@3 src ]in low -constant time, but destroys it by picking.&] -[s3; &] -[s4;%- &] -[s5;:BiVector`:`:BiVector`(const BiVector`&`,int`):%- [* BiVector]([@(0.0.255) const]_[* Bi -Vector][@(0.0.255) `&]_[*@3 src], [@(0.0.255) int])&] -[s2; Optional deep copy constructor. Creates a deep copy of [%-*@3 src].&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:BiVector`:`:BiVector`(std`:`:initializer`_list``):%- [* BiVector]([_^http`:`/`/en`.cppreference`.com`/w`/cpp`/utility`/initializer`_list^ s -td`::initializer`_list]<[*@4 T]>_[*@3 init])&] -[s2; C`+`+11 initialization.&] -[s3; &] -[s4;%- &] -[s5;:BiVector`:`:`~BiVector`(`):%- [@(0.0.255) `~][* BiVector]()&] -[s2; Default destructor. Invokes the destructor of every element -in the BiVector.&] -[s3;%- &] -[s0;i448;a25;kKO9;@(0.0.255)%- &] -[ {{10000F(128)G(128)@1 [s0; [* Public Method List]]}}&] -[s3;%- &] -[s5;:BiVector`:`:AddHead`(`):%- [*@4 T][@(0.0.255) `&]_[* AddHead]()&] -[s2; Adds a new default constructed element at the head of the [* BiVector]. -The new element will be at position 0. Returns reference to the -newly added default constructed element.&] -[s6; Requires T to have default constructor.&] -[s6; Invalidates iterators and references to the BiVector.&] -[s3; &] -[s4;%- &] -[s5;:BiVector`:`:AddTail`(`):%- [*@4 T][@(0.0.255) `&]_[* AddTail]()&] -[s2; Adds a new default constructed element at the tail of the [* BiVector]. -The new element will be at position [* GetCount]() `- 1. Returns -reference to the newly added default constructed element.&] -[s6; Requires T to have default constructor.&] -[s6; Invalidates iterators and references to the BiVector.&] -[s3;%- &] -[s4;%- &] -[s5;:BiVector`:`:AddHead`(const T`&`):%- [@(0.0.255) void]_[* AddHead]([@(0.0.255) const]_[*@4 T -][@(0.0.255) `&]_[*@3 x])&] -[s2; Adds a new element with the specified value [%-*@3 x ]at the head -of the [* BiVector]. The new element will be at position 0.&] -[s6; Requires T to have deep copy constructor.&] -[s6; Invalidates iterators and references to the BiVector.&] -[s3;%- &] -[s4;%- &] -[s5;:BiVector`:`:AddTail`(const T`&`):%- [@(0.0.255) void]_[* AddTail]([@(0.0.255) const]_[*@4 T -][@(0.0.255) `&]_[*@3 x])&] -[s2; Adds a new element with the specified value [%-*@3 x ]at the tail -of the [* BiVector]. The new element will be at position [* GetCount]() -`- 1.&] -[s6; Requires T to have deep copy constructor.&] -[s6; Invalidates iterators and references to the BiVector.&] -[s3;%- &] -[s4;%- &] -[s5;:Upp`:`:BiVector`:`:AddHeadPick`(T`&`&`):%- [@(0.0.255) void]_[* AddHeadPick]([*@4 T][@(0.0.255) `& -`&]_[*@3 x])&] -[s2; Adds a new element at the head of the [* BiVector] and picks value -of the parameter [%-*@3 x]. The new element will be at position -0.&] -[s6; Requires T to have pick constructor.&] -[s2; Invalidates iterators and references to the BiVector.&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:BiVector`:`:AddTailPick`(T`&`&`):%- [@(0.0.255) void]_[* AddTailPick]([*@4 T][@(0.0.255) `& -`&]_[*@3 x])&] -[s2; Adds a new element at the tail of the [* BiVector] and picks value -of the parameter [%-*@3 x]. The new element will be at position -[* GetCount]() `- 1.&] -[s6; Requires T to have pick constructor.&] -[s2; Invalidates iterators and references to the BiVector.&] -[s3;%- &] -[s4;%- &] -[s5;:BiVector`:`:Head`(`):%- [*@4 T][@(0.0.255) `&]_[* Head]()&] -[s2; Returns a reference to the head of the [* BiVector] . Same as -operator`[`](0).&] -[s3;%- &] -[s4;%- &] -[s5;:BiVector`:`:Tail`(`):%- [*@4 T][@(0.0.255) `&]_[* Tail]()&] -[s2; Returns a reference to the tail of the [* BiVector] . Same as -operator`[`]([* GetCount]() `- 1).&] -[s3;%- &] -[s4;%- &] -[s5;:BiVector`:`:Head`(`)const:%- [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[* Head]()_[@(0.0.255) c -onst]&] -[s2; Returns a [* const] reference to the head of the [* BiVector] . -Same as operator`[`](0).&] -[s3;%- &] -[s4;%- &] -[s5;:BiVector`:`:Tail`(`)const:%- [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[* Tail]()_[@(0.0.255) c -onst]&] -[s2; Returns a [* const ]reference to the tail of the [* BiVector] . -Same as operator`[`]([* GetCount]() `- 1).&] -[s3;%- &] -[s4;%- &] -[s5;:BiVector`:`:DropHead`(`):%- [@(0.0.255) void]_[* DropHead]()&] -[s2; Removes the element at the head of the [* BiVector].&] -[s6; Invalidates iterators and references to the BiVector.&] -[s3;%- &] -[s4;%- &] -[s5;:BiVector`:`:DropTail`(`):%- [@(0.0.255) void]_[* DropTail]()&] -[s2; Removes the element at the tail of the [* BiVector].&] -[s6; Invalidates iterators and references to the BiVector.&] -[s3;%- &] -[s4;%- &] -[s5;:BiVector`:`:operator`[`]`(int`):%- [*@4 T][@(0.0.255) `&]_[* operator`[`]]([@(0.0.255) i -nt]_[*@3 i])&] -[s2; Returns a reference to the element at the specified position -[%-*@3 i].&] -[s3;%- &] -[s4;%- &] -[s5;:BiVector`:`:operator`[`]`(int`)const:%- [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[* ope -rator`[`]]([@(0.0.255) int]_[*@3 i])_[@(0.0.255) const]&] -[s2; Returns a [* const] reference to the element at the specified -position [%-*@3 i].&] -[s3;%- &] -[s4;%- &] -[s5;:BiVector`:`:GetCount`(`)const:%- [@(0.0.255) int]_[* GetCount]()_[@(0.0.255) const]&] -[s2; Returns the number of elements in the [* BiVector].&] -[s3;%- &] -[s4;%- &] -[s5;:BiVector`:`:IsEmpty`(`)const:%- [@(0.0.255) bool]_[* IsEmpty]()_[@(0.0.255) const]&] -[s2; Tests whether the [* BiVector ]is empty. Same as [* GetCount]() -`=`= 0.&] -[s3;%- &] -[s4;%- &] -[s5;:BiVector`:`:Clear`(`):%- [@(0.0.255) void]_[* Clear]()&] -[s2; Removes all elements from the [* BiVector].&] -[s3;%- &] -[s4;%- &] -[s5;:BiVector`:`:Shrink`(`):%- [@(0.0.255) void]_[* Shrink]()&] -[s2; Minimizes memory consumption of the [* BiVector ]by minimizing -capacity.&] -[s3;%- &] -[s4;%- &] -[s5;:BiVector`:`:Reserve`(int`):%- [@(0.0.255) void]_[* Reserve]([@(0.0.255) int]_[*@3 n])&] -[s2; Reserves capacity. If required capacity [%-*@3 n ]is greater than -the current capacity, capacity is increased to the required value.&] -[s3;%- &] -[s4;%- &] -[s5;:BiVector`:`:GetAlloc`(`)const:%- [@(0.0.255) int]_[* GetAlloc]()_[@(0.0.255) const]&] -[s2; Returns current capacity of the [* BiVector].&] -[s3; &] -[s4;%- &] -[s5;:BiVector`:`:Serialize`(Stream`&`):%- [@(0.0.255) void]_[* Serialize]([_^Stream^ Stream -][@(0.0.255) `&]_[*@3 s])&] -[s2; Serializes content of the [* BiVector ]to/from the Stream [%-*@3 s].&] -[s6; Requires T to have serialization operator defined.&] -[s3;%- &] -[s4;%- &] -[s5;:BiVector`:`:IsPicked`(`):%- [@(0.0.255) bool]_[* IsPicked]()&] -[s2; Returns [* true ]if [* BiVector ]has been picked, false otherwise.&] -[s3;%- &] -[s4;%- &] -[s5;:BiVector`:`:operator`=`(pick`_ BiVector`&`):%- [@(0.0.255) void]_[* operator`=]([@(0.128.128) p -ick`_]_[_^BiVector^ BiVector][@(0.0.255) `&]_[*@3 src])&] -[s2; Pick operator. Transfers source [* BiVector ][%-*@3 src] in low -constant time, but destroys it by picking.&] -[s3;%- &] -[s4;%- &] -[s5;:BiVector`:`:ValueType`:`:typedef:%- [@(0.0.255) typedef]_[*@4 T]_[* ValueType]&] -[s2; Typedef of [*@4 T] for use in templated algorithms.&] -[s3; &] -[s4;%- &] -[s5;:BiVector`:`:Iterator`:`:typedef:%- [@(0.0.255) typedef]_[_^IIterator^ IIterator][@(0.0.255) < -][_^BiVector^ BiVector][@(0.0.255) >]_[* Iterator]&] -[s2; Iterator type.&] -[s3; &] -[s4;%- &] -[s5;:BiVector`:`:ConstIterator`:`:typedef:%- [@(0.0.255) typedef]_[_^ConstIIterator^ Cons -tIIterator][@(0.0.255) <][_^BiVector^ BiVector][@(0.0.255) >]_[* ConstIterator]&] -[s2; Constant iterator type.&] -[s3;%- &] -[s4;%- &] -[s5;:BiVector`:`:Begin`(`)const:%- [_^BiVector`:`:ConstIterator^ ConstIterator]_[* Begin]( -)_[@(0.0.255) const]&] -[s7; Returns a constant iterator to the first element in the BiVector.&] -[s3; &] -[s4;%- &] -[s5;:BiVector`:`:End`(`)const:%- [_^BiVector`:`:ConstIterator^ ConstIterator]_[* End]()_[@(0.0.255) c -onst]&] -[s2; Returns a constant iterator to the position just beyond the -last element in the BiVector.&] -[s3;%- &] -[s4;%- &] -[s5;:BiVector`:`:GetIter`(int`)const:%- [_^BiVector`:`:ConstIterator^ ConstIterator]_[* G -etIter]([@(0.0.255) int]_[*@3 pos])_[@(0.0.255) const]&] -[s2; Returns a constant iterator to the element at the specified -position [%-*@3 pos]. Same as [* Begin() `+ ][%-*@3 pos]. The benefit -of this method is that [%-*@3 pos] is range checked in debug mode.&] -[s3;%- &] -[s4;%- &] -[s5;:BiVector`:`:Begin`(`):%- [_^BiVector`:`:Iterator^ Iterator]_[* Begin]()&] -[s2; Returns a non`-constant iterator to the first element in the -[* BiVector].&] -[s3;%- &] -[s4;%- &] -[s5;:BiVector`:`:End`(`):%- [_^BiVector`:`:Iterator^ Iterator]_[* End]()&] -[s2; Returns non`-constant iterator to the position just beyond the -last element in the [* BiVector].&] -[s3;%- &] -[s4;%- &] -[s5;:BiVector`:`:GetIter`(int`):%- [_^BiVector`:`:Iterator^ Iterator]_[* GetIter]([@(0.0.255) i -nt]_[*@3 pos])&] -[s2; Returns a non`-constant iterator to the element at the specified -position. Same as [* Begin() `+ pos]. The benefit of this method -is that [* pos] is range checked in debug mode.&] -[s3; &] -[s4; &] -[s5;K%- friend_[@(0.0.255) void][@(64) _]Swap[@(64) (][^`:`:BiVector^@(64) BiVector][@(64) `&_][@3 a -][@(64) , ][^`:`:BiVector^@(64) BiVector][@(64) `&_][@3 b][@(64) )]&] -[s2; Specialization of the generic [* Swap] for BiVectors. Swaps BiVectors -in low constant time operation.&] -[s3; &] -[s0;i448;a25;kKO9;@(0.0.255)%- &] -[ {{10000F(128)G(128)@1 [s0; [* Global Operators]]}}&] -[s3; &] -[s0;:friend BiVector`& operator`<`<`(BiVector`& b`, const T`& x`): friend -BiVector`& [* operator]<<(BiVector`& [*@3 b], const T`& [*@3 x])&] -[s2; Operator replacement of [* void AddTail(const T`&x)]. By returning -a reference to the BiVector it allows adding more elements in -a single expression, thus e.g. allowing to construct a temporary -BiVector as part of an expression like Foo(BiVector() << -1 << 2 << 4).&] -[s6; Requires T to have deep copy constructor.&] -[s6; Invalidates iterators and references to the BiVector.&] -[s3; &] -[s4; &] -[s0;:friend BiVector`& operator`>`>`(const T`& x`, BiVector`& b`): friend -BiVector`& [* operator]>>(const T`& [*@3 x], BiVector`& [*@3 b])&] -[s2; Operator replacement of [* void AddHead(const T`&x)]. By returning -a reference to the BiVector it allows adding more elements in -a single expression, thus e.g. allowing to construct a temporary -BiVector as part of an expression like Foo(1 >> (2 >> BiVector())).&] -[s6; Requires T to have deep copy constructor.&] -[s6; Invalidates iterators and references to the BiVector.&] -[s3; &] +topic "BiVector"; +[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,0#27521748481378242620020725143825:desc] +[0 $$3,0#96390100711032703541132217272105:end] +[H6;0 $$4,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] +[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] +[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] +[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] +[b42;2 $$9,9#13035079074754324216151401829390:normal] +[{_}%EN-US +[ {{10000@(113.42.0) [s0; [*@7;4 BiVector]]}}&] +[s3; &] +[s1;:noref:%- [@(0.0.255)3 template][3 _<][@(0.0.255)3 class][3 _][*@4;3 T][@(0.0.255)3 >]&] +[s1;:BiVector`:`:class:%- [@(0.0.255) class]_[* BiVector]_:_[@(0.0.255) private]_[*@3 Moveable +AndDeepCopyOption][@(0.0.255) <]_[* BiVector][@(0.0.255) <][*@4 T][@(0.0.255) >]_>_&] +[s8; [*@4 T]-|Type of elements stored in the BiVector. T is required +to be [/^topic`:`/`/Core`/srcdoc`/Moveable`$en`-us^ moveable][/ +]and must have either [/ deep copy constructor], [/ pick constructor] +or [/ default constructor].&] +[s0; &] +[s0;# Vector flavor of bidirectional container. Allows adding elements +at both sides of sequence in constant amortized time.&] +[s0;# &] +[s0; Like any other NTL container, BiVector is a [*/^topic`:`/`/Core`/srcdoc`/Moveable`$en`-us^ m +oveable][/ ]type with [*/^topic`:`/`/Core`/srcdoc`/pick`_`$en`-us^ pick +and optional deep copy] transfer semantics. Calling methods of +picked a BiVector is logic error with the exceptions of:&] +[s0;%- [C+75 void ][*C+75 operator`=][C+75 (pick`_ Vector`& ][*C@3+75 v][C+75 )]&] +[s0;%- [C+75 void ][*C+75 operator<<`=][C+75 (const Vector`& ][*C@3+75 v][C+75 ) +][/C+75 (defined using DeepCopyOptionTemplate)]&] +[s0;%- [C+75 void ][*C+75 Clear][C+75 ()]&] +[s0;%- [C+75 bool ][*C+75 IsPicked][C+75 () const]&] +[s0;C+75%- &] +[s0; Optional deep copy is implemented through [* DeepCopyOptionTemplate] +macro.&] +[s3; &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] +[s3; &] +[s5;:BiVector`:`:BiVector`(`):%- [* BiVector]()&] +[s2; Default constructor. Creates an empty [* BiVector].&] +[s3;%- &] +[s4;%- &] +[s5;:Upp`:`:BiVector`:`:BiVector`(Upp`:`:BiVector`&`&`):%- [* BiVector]([* BiVector][@(0.0.255) `& +`&]_[*@3 src])&] +[s2; Pick constructor. Transfers source [* BiVector ][%-*@3 src ]in low +constant time, but destroys it by picking.&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:BiVector`:`:operator`=`(Upp`:`:BiVector`&`&`):%- [@(0.0.255) void]_[* operato +r`=]([_^Upp`:`:BiVector^ BiVector][@(0.0.255) `&`&]_[*@3 src])&] +[s2; Pick assignment. Transfers source [* BiVector ][%-*@3 src ]in low +constant time, but destroys it by picking.&] +[s3; &] +[s4;%- &] +[s5;:BiVector`:`:BiVector`(const BiVector`&`,int`):%- [* BiVector]([@(0.0.255) const]_[* Bi +Vector][@(0.0.255) `&]_[*@3 src], [@(0.0.255) int])&] +[s2; Optional deep copy constructor. Creates a deep copy of [%-*@3 src].&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:BiVector`:`:BiVector`(std`:`:initializer`_list``):%- [* BiVector]([_^http`:`/`/en`.cppreference`.com`/w`/cpp`/utility`/initializer`_list^ s +td`::initializer`_list]<[*@4 T]>_[*@3 init])&] +[s2; C`+`+11 initialization.&] +[s3; &] +[s4;%- &] +[s5;:BiVector`:`:`~BiVector`(`):%- [@(0.0.255) `~][* BiVector]()&] +[s2; Default destructor. Invokes the destructor of every element +in the BiVector.&] +[s3;%- &] +[s0;i448;a25;kKO9;@(0.0.255)%- &] +[ {{10000F(128)G(128)@1 [s0; [* Public Method List]]}}&] +[s3;%- &] +[s5;:BiVector`:`:AddHead`(`):%- [*@4 T][@(0.0.255) `&]_[* AddHead]()&] +[s2; Adds a new default constructed element at the head of the [* BiVector]. +The new element will be at position 0. Returns reference to the +newly added default constructed element.&] +[s6; Requires T to have default constructor.&] +[s6; Invalidates iterators and references to the BiVector.&] +[s3; &] +[s4;%- &] +[s5;:BiVector`:`:AddTail`(`):%- [*@4 T][@(0.0.255) `&]_[* AddTail]()&] +[s2; Adds a new default constructed element at the tail of the [* BiVector]. +The new element will be at position [* GetCount]() `- 1. Returns +reference to the newly added default constructed element.&] +[s6; Requires T to have default constructor.&] +[s6; Invalidates iterators and references to the BiVector.&] +[s3;%- &] +[s4;%- &] +[s5;:BiVector`:`:AddHead`(const T`&`):%- [@(0.0.255) void]_[* AddHead]([@(0.0.255) const]_[*@4 T +][@(0.0.255) `&]_[*@3 x])&] +[s2; Adds a new element with the specified value [%-*@3 x ]at the head +of the [* BiVector]. The new element will be at position 0.&] +[s6; Requires T to have deep copy constructor.&] +[s6; Invalidates iterators and references to the BiVector.&] +[s3;%- &] +[s4;%- &] +[s5;:BiVector`:`:AddTail`(const T`&`):%- [@(0.0.255) void]_[* AddTail]([@(0.0.255) const]_[*@4 T +][@(0.0.255) `&]_[*@3 x])&] +[s2; Adds a new element with the specified value [%-*@3 x ]at the tail +of the [* BiVector]. The new element will be at position [* GetCount]() +`- 1.&] +[s6; Requires T to have deep copy constructor.&] +[s6; Invalidates iterators and references to the BiVector.&] +[s3;%- &] +[s4;%- &] +[s5;:Upp`:`:BiVector`:`:AddHeadPick`(T`&`&`):%- [@(0.0.255) void]_[* AddHeadPick]([*@4 T][@(0.0.255) `& +`&]_[*@3 x])&] +[s2; Adds a new element at the head of the [* BiVector] and picks value +of the parameter [%-*@3 x]. The new element will be at position +0.&] +[s6; Requires T to have pick constructor.&] +[s2; Invalidates iterators and references to the BiVector.&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:BiVector`:`:AddTailPick`(T`&`&`):%- [@(0.0.255) void]_[* AddTailPick]([*@4 T][@(0.0.255) `& +`&]_[*@3 x])&] +[s2; Adds a new element at the tail of the [* BiVector] and picks value +of the parameter [%-*@3 x]. The new element will be at position +[* GetCount]() `- 1.&] +[s6; Requires T to have pick constructor.&] +[s2; Invalidates iterators and references to the BiVector.&] +[s3;%- &] +[s4;%- &] +[s5;:BiVector`:`:Head`(`):%- [*@4 T][@(0.0.255) `&]_[* Head]()&] +[s2; Returns a reference to the head of the [* BiVector] . Same as +operator`[`](0).&] +[s3;%- &] +[s4;%- &] +[s5;:BiVector`:`:Tail`(`):%- [*@4 T][@(0.0.255) `&]_[* Tail]()&] +[s2; Returns a reference to the tail of the [* BiVector] . Same as +operator`[`]([* GetCount]() `- 1).&] +[s3;%- &] +[s4;%- &] +[s5;:BiVector`:`:Head`(`)const:%- [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[* Head]()_[@(0.0.255) c +onst]&] +[s2; Returns a [* const] reference to the head of the [* BiVector] . +Same as operator`[`](0).&] +[s3;%- &] +[s4;%- &] +[s5;:BiVector`:`:Tail`(`)const:%- [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[* Tail]()_[@(0.0.255) c +onst]&] +[s2; Returns a [* const ]reference to the tail of the [* BiVector] . +Same as operator`[`]([* GetCount]() `- 1).&] +[s3;%- &] +[s4;%- &] +[s5;:BiVector`:`:DropHead`(`):%- [@(0.0.255) void]_[* DropHead]()&] +[s2; Removes the element at the head of the [* BiVector].&] +[s6; Invalidates iterators and references to the BiVector.&] +[s3;%- &] +[s4;%- &] +[s5;:BiVector`:`:DropTail`(`):%- [@(0.0.255) void]_[* DropTail]()&] +[s2; Removes the element at the tail of the [* BiVector].&] +[s6; Invalidates iterators and references to the BiVector.&] +[s3;%- &] +[s4;%- &] +[s5;:BiVector`:`:operator`[`]`(int`):%- [*@4 T][@(0.0.255) `&]_[* operator`[`]]([@(0.0.255) i +nt]_[*@3 i])&] +[s2; Returns a reference to the element at the specified position +[%-*@3 i].&] +[s3;%- &] +[s4;%- &] +[s5;:BiVector`:`:operator`[`]`(int`)const:%- [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[* ope +rator`[`]]([@(0.0.255) int]_[*@3 i])_[@(0.0.255) const]&] +[s2; Returns a [* const] reference to the element at the specified +position [%-*@3 i].&] +[s3;%- &] +[s4;%- &] +[s5;:BiVector`:`:GetCount`(`)const:%- [@(0.0.255) int]_[* GetCount]()_[@(0.0.255) const]&] +[s2; Returns the number of elements in the [* BiVector].&] +[s3;%- &] +[s4;%- &] +[s5;:BiVector`:`:IsEmpty`(`)const:%- [@(0.0.255) bool]_[* IsEmpty]()_[@(0.0.255) const]&] +[s2; Tests whether the [* BiVector ]is empty. Same as [* GetCount]() +`=`= 0.&] +[s3;%- &] +[s4;%- &] +[s5;:BiVector`:`:Clear`(`):%- [@(0.0.255) void]_[* Clear]()&] +[s2; Removes all elements from the [* BiVector].&] +[s3;%- &] +[s4;%- &] +[s5;:BiVector`:`:Shrink`(`):%- [@(0.0.255) void]_[* Shrink]()&] +[s2; Minimizes memory consumption of the [* BiVector ]by minimizing +capacity.&] +[s3;%- &] +[s4;%- &] +[s5;:BiVector`:`:Reserve`(int`):%- [@(0.0.255) void]_[* Reserve]([@(0.0.255) int]_[*@3 n])&] +[s2; Reserves capacity. If required capacity [%-*@3 n ]is greater than +the current capacity, capacity is increased to the required value.&] +[s3;%- &] +[s4;%- &] +[s5;:BiVector`:`:GetAlloc`(`)const:%- [@(0.0.255) int]_[* GetAlloc]()_[@(0.0.255) const]&] +[s2; Returns current capacity of the [* BiVector].&] +[s3; &] +[s4;%- &] +[s5;:BiVector`:`:Serialize`(Stream`&`):%- [@(0.0.255) void]_[* Serialize]([_^Stream^ Stream +][@(0.0.255) `&]_[*@3 s])&] +[s2; Serializes content of the [* BiVector ]to/from the Stream [%-*@3 s].&] +[s6; Requires T to have serialization operator defined.&] +[s3;%- &] +[s4;%- &] +[s5;:BiVector`:`:IsPicked`(`):%- [@(0.0.255) bool]_[* IsPicked]()&] +[s2; Returns [* true ]if [* BiVector ]has been picked, false otherwise.&] +[s3;%- &] +[s4;%- &] +[s5;:BiVector`:`:operator`=`(pick`_ BiVector`&`):%- [@(0.0.255) void]_[* operator`=]([@(0.128.128) p +ick`_]_[_^BiVector^ BiVector][@(0.0.255) `&]_[*@3 src])&] +[s2; Pick operator. Transfers source [* BiVector ][%-*@3 src] in low +constant time, but destroys it by picking.&] +[s3;%- &] +[s4;%- &] +[s5;:BiVector`:`:ValueType`:`:typedef:%- [@(0.0.255) typedef]_[*@4 T]_[* ValueType]&] +[s2; Typedef of [*@4 T] for use in templated algorithms.&] +[s3; &] +[s4;%- &] +[s5;:BiVector`:`:Iterator`:`:typedef:%- [@(0.0.255) typedef]_[_^IIterator^ IIterator][@(0.0.255) < +][_^BiVector^ BiVector][@(0.0.255) >]_[* Iterator]&] +[s2; Iterator type.&] +[s3; &] +[s4;%- &] +[s5;:BiVector`:`:ConstIterator`:`:typedef:%- [@(0.0.255) typedef]_[_^ConstIIterator^ Cons +tIIterator][@(0.0.255) <][_^BiVector^ BiVector][@(0.0.255) >]_[* ConstIterator]&] +[s2; Constant iterator type.&] +[s3;%- &] +[s4;%- &] +[s5;:BiVector`:`:Begin`(`)const:%- [_^BiVector`:`:ConstIterator^ ConstIterator]_[* Begin]( +)_[@(0.0.255) const]&] +[s7; Returns a constant iterator to the first element in the BiVector.&] +[s3; &] +[s4;%- &] +[s5;:BiVector`:`:End`(`)const:%- [_^BiVector`:`:ConstIterator^ ConstIterator]_[* End]()_[@(0.0.255) c +onst]&] +[s2; Returns a constant iterator to the position just beyond the +last element in the BiVector.&] +[s3;%- &] +[s4;%- &] +[s5;:BiVector`:`:GetIter`(int`)const:%- [_^BiVector`:`:ConstIterator^ ConstIterator]_[* G +etIter]([@(0.0.255) int]_[*@3 pos])_[@(0.0.255) const]&] +[s2; Returns a constant iterator to the element at the specified +position [%-*@3 pos]. Same as [* Begin() `+ ][%-*@3 pos]. The benefit +of this method is that [%-*@3 pos] is range checked in debug mode.&] +[s3;%- &] +[s4;%- &] +[s5;:BiVector`:`:Begin`(`):%- [_^BiVector`:`:Iterator^ Iterator]_[* Begin]()&] +[s2; Returns a non`-constant iterator to the first element in the +[* BiVector].&] +[s3;%- &] +[s4;%- &] +[s5;:BiVector`:`:End`(`):%- [_^BiVector`:`:Iterator^ Iterator]_[* End]()&] +[s2; Returns non`-constant iterator to the position just beyond the +last element in the [* BiVector].&] +[s3;%- &] +[s4;%- &] +[s5;:BiVector`:`:GetIter`(int`):%- [_^BiVector`:`:Iterator^ Iterator]_[* GetIter]([@(0.0.255) i +nt]_[*@3 pos])&] +[s2; Returns a non`-constant iterator to the element at the specified +position. Same as [* Begin() `+ pos]. The benefit of this method +is that [* pos] is range checked in debug mode.&] +[s3; &] +[s4; &] +[s5;K%- friend_[@(0.0.255) void][@(64) _]Swap[@(64) (][^`:`:BiVector^@(64) BiVector][@(64) `&_][@3 a +][@(64) , ][^`:`:BiVector^@(64) BiVector][@(64) `&_][@3 b][@(64) )]&] +[s2; Specialization of the generic [* Swap] for BiVectors. Swaps BiVectors +in low constant time operation.&] +[s3; &] +[s0;i448;a25;kKO9;@(0.0.255)%- &] +[ {{10000F(128)G(128)@1 [s0; [* Global Operators]]}}&] +[s3; &] +[s0;:friend BiVector`& operator`<`<`(BiVector`& b`, const T`& x`): friend +BiVector`& [* operator]<<(BiVector`& [*@3 b], const T`& [*@3 x])&] +[s2; Operator replacement of [* void AddTail(const T`&x)]. By returning +a reference to the BiVector it allows adding more elements in +a single expression, thus e.g. allowing to construct a temporary +BiVector as part of an expression like Foo(BiVector() << +1 << 2 << 4).&] +[s6; Requires T to have deep copy constructor.&] +[s6; Invalidates iterators and references to the BiVector.&] +[s3; &] +[s4; &] +[s0;:friend BiVector`& operator`>`>`(const T`& x`, BiVector`& b`): friend +BiVector`& [* operator]>>(const T`& [*@3 x], BiVector`& [*@3 b])&] +[s2; Operator replacement of [* void AddHead(const T`&x)]. By returning +a reference to the BiVector it allows adding more elements in +a single expression, thus e.g. allowing to construct a temporary +BiVector as part of an expression like Foo(1 >> (2 >> BiVector())).&] +[s6; Requires T to have deep copy constructor.&] +[s6; Invalidates iterators and references to the BiVector.&] +[s3; &] [s0; ]] \ No newline at end of file diff --git a/uppsrc/Core/src.tpp/Bits$en-us.tpp b/uppsrc/Core/src.tpp/Bits_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/Bits$en-us.tpp rename to uppsrc/Core/src.tpp/Bits_en-us.tpp diff --git a/uppsrc/Core/src.tpp/Buffer$en-us.tpp b/uppsrc/Core/src.tpp/Buffer_en-us.tpp similarity index 97% rename from uppsrc/Core/src.tpp/Buffer$en-us.tpp rename to uppsrc/Core/src.tpp/Buffer_en-us.tpp index 3f25df9bf..4a094c22d 100644 --- a/uppsrc/Core/src.tpp/Buffer$en-us.tpp +++ b/uppsrc/Core/src.tpp/Buffer_en-us.tpp @@ -1,114 +1,114 @@ -topic "Buffer"; -[2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,0#27521748481378242620020725143825:desc] -[0 $$3,0#96390100711032703541132217272105:end] -[H6;0 $$4,0#05600065144404261032431302351956:begin] -[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] -[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] -[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] -[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] -[b42;2 $$9,9#13035079074754324216151401829390:normal] -[{_}%EN-US -[ {{10000@(113.42.0) [s0; [*@7;4 Buffer]]}}&] -[s3; &] -[s1;:noref:%- [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 T][@(0.0.255) >]&] -[s1;:Buffer`:`:class:%- [@(0.0.255) class]_[* Buffer]_:_[@(0.0.255) private]_[*@3 Moveable][@(0.0.255) < -]_[* Buffer][@(0.0.255) <][*@4 T][@(0.0.255) >]_>_&] -[s0;%- &] -[s0; [%-*C@4 T]-|Type of elements stored in Buffer.&] -[s0; &] -[s0; Buffer is a simple class used to manage a fixed size plain old -C dynamically allocated vector of elements of a specified type. -The size of the buffer is specified as a constructor parameter -and it can be also reallocated with new size, while loosing all -current data.&] -[s0; &] -[s0; Buffer is a [*/^topic`:`/`/Core`/srcdoc`/Moveable`$en`-us^ moveable][*/ -]type with [*/^topic`:`/`/Core`/srcdoc`/pick`_`$en`-us^ pick] (only) -transfer semantics. Calling methods of picked Buffer is logic -error with the exceptions of:&] -[s0; [C+75 void Alloc(int size);]&] -[s0; [C+75 void Alloc(int size, const T`& in);]&] -[s0; [C+75 void Clear();]&] -[s0; [C+75 void operator`=(pick`_ Buffer`& v);]&] -[s3; &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] -[s3; &] -[s5;:Buffer`:`:Buffer`(`):%- [* Buffer]()&] -[s2; Constructs an empty buffer.&] -[s3;%- &] -[s4;%- &] -[s5;:Buffer`:`:Buffer`(size`_t`):%- [* Buffer](size`_t_[*@3 size])&] -[s2; Constructs the Buffer with a [%-*@3 size][%- number of elements].&] -[s6; T must have default constructor.&] -[s3; &] -[s4;%- &] -[s5;:Buffer`:`:Buffer`(size`_t`,const T`&`):%- [* Buffer](size`_t_[*@3 size], -[@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[*@3 init])&] -[s2; Constructs the Buffer initializing the [%-@3 size ]elements to -the specified value [%-@3 init].&] -[s6; T must have default constructor.&] -[s3;%- &] -[s4;%- &] -[s5;:Buffer`:`:Buffer`(pick`_ Buffer`&`):%- [* Buffer]([@(0.128.128) pick`_]_[* Buffer][@(0.0.255) `& -]_[*@3 v])&] -[s2;%- [%% Pick constructor. Destroys source container ][*@3 v.]&] -[s3;%- &] -[s4;%- &] -[s5;:Buffer`:`:`~Buffer`(`):%- [@(0.0.255) `~][* Buffer]()&] -[s2; Default destructor.&] -[s3;%- &] -[s4;%- &] -[s5;:Upp`:`:Buffer`:`:Buffer`(size`_t`,std`:`:initializer`_list``):%- [* Buffer](si -ze`_t_[*@3 size], [_^http`:`/`/en`.cppreference`.com`/w`/cpp`/utility`/initializer`_list^ s -td`::initializer`_list]<[*@4 T]>_[*@3 init])&] -[s5;:Upp`:`:Buffer`:`:Buffer`(std`:`:initializer`_list``):%- [* Buffer]([_^http`:`/`/en`.cppreference`.com`/w`/cpp`/utility`/initializer`_list^ s -td`::initializer`_list]<[*@4 T]>_[*@3 init])&] -[s2; C`+`+ 11 initialization.&] -[s3; &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] -[s3;%- &] -[s5;:Buffer`:`:operator`=`(pick`_ Buffer`&`):%- [@(0.0.255) void]_[* operator`=]([@(0.128.128) p -ick`_]_[_^Buffer^ Buffer][@(0.0.255) `&]_[*@3 v])&] -[s2; Pick operator. Source buffer [%-*@3 v ]is destroyed.&] -[s3;%- &] -[s4;%- &] -[s5;:Buffer`:`:operator T`*`(`):%- [* operator_T`*]()&] -[s5;:Buffer`:`:operator const T`*`(`)const:%- [* operator_const_T`*]()_[@(0.0.255) const]&] -[s5;:Buffer`:`:operator`~`(`):%- [*@4 T]_`*[* operator`~]()&] -[s5;:Buffer`:`:operator`~`(`)const:%- [@(0.0.255) const]_[*@4 T]_`*[* operator`~]()_[@(0.0.255) c -onst]&] -[s5;:Upp`:`:Buffer`:`:Get`(`):%- [*@4 T]_`*[* Get]()&] -[s5;:Upp`:`:Buffer`:`:Get`(`)const:%- [@(0.0.255) const]_[*@4 T]_`*[* Get]()_[@(0.0.255) cons -t]&] -[s2; Returns a pointer to the first element of the Buffer or NULL -if the Buffer is empty.&] -[s3;%- &] -[s4;%- &] -[s5;:Buffer`:`:Alloc`(size`_t`):%- [@(0.0.255) void]_[* Alloc](size`_t_[*@3 size])&] -[s2; Clears the buffer and allocates it with the new size [%-*@3 size]. -All current elements are lost.&] -[s6; T must have default constructor.&] -[s3; &] -[s4;%- &] -[s5;:Buffer`:`:Alloc`(size`_t`,const T`&`):%- [@(0.0.255) void]_[* Alloc](size`_t_[*@3 size -], [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[*@3 in])&] -[s2; Clears the buffer and allocates it with the new size [%-*@3 size], -using the initialization value [%-*@3 in]. All current elements -are lost.&] -[s6; T must have deep copy constructor.&] -[s3; &] -[s4;%- &] -[s5;:Buffer`:`:Clear`(`):%- [@(0.0.255) void]_[* Clear]()&] -[s2; Clears the buffer to the same state as default constructor. -All current elements are destroyed.&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:Buffer`:`:IsEmpty`(`)const:%- [@(0.0.255) bool]_[* IsEmpty]()_[@(0.0.255) const -]&] -[s2; Returns true if Buffer is empty.&] -[s3;%- &] +topic "Buffer"; +[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,0#27521748481378242620020725143825:desc] +[0 $$3,0#96390100711032703541132217272105:end] +[H6;0 $$4,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] +[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] +[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] +[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] +[b42;2 $$9,9#13035079074754324216151401829390:normal] +[{_}%EN-US +[ {{10000@(113.42.0) [s0; [*@7;4 Buffer]]}}&] +[s3; &] +[s1;:noref:%- [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 T][@(0.0.255) >]&] +[s1;:Buffer`:`:class:%- [@(0.0.255) class]_[* Buffer]_:_[@(0.0.255) private]_[*@3 Moveable][@(0.0.255) < +]_[* Buffer][@(0.0.255) <][*@4 T][@(0.0.255) >]_>_&] +[s0;%- &] +[s0; [%-*C@4 T]-|Type of elements stored in Buffer.&] +[s0; &] +[s0; Buffer is a simple class used to manage a fixed size plain old +C dynamically allocated vector of elements of a specified type. +The size of the buffer is specified as a constructor parameter +and it can be also reallocated with new size, while loosing all +current data.&] +[s0; &] +[s0; Buffer is a [*/^topic`:`/`/Core`/srcdoc`/Moveable`$en`-us^ moveable][*/ +]type with [*/^topic`:`/`/Core`/srcdoc`/pick`_`$en`-us^ pick] (only) +transfer semantics. Calling methods of picked Buffer is logic +error with the exceptions of:&] +[s0; [C+75 void Alloc(int size);]&] +[s0; [C+75 void Alloc(int size, const T`& in);]&] +[s0; [C+75 void Clear();]&] +[s0; [C+75 void operator`=(pick`_ Buffer`& v);]&] +[s3; &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] +[s3; &] +[s5;:Buffer`:`:Buffer`(`):%- [* Buffer]()&] +[s2; Constructs an empty buffer.&] +[s3;%- &] +[s4;%- &] +[s5;:Buffer`:`:Buffer`(size`_t`):%- [* Buffer](size`_t_[*@3 size])&] +[s2; Constructs the Buffer with a [%-*@3 size][%- number of elements].&] +[s6; T must have default constructor.&] +[s3; &] +[s4;%- &] +[s5;:Buffer`:`:Buffer`(size`_t`,const T`&`):%- [* Buffer](size`_t_[*@3 size], +[@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[*@3 init])&] +[s2; Constructs the Buffer initializing the [%-@3 size ]elements to +the specified value [%-@3 init].&] +[s6; T must have default constructor.&] +[s3;%- &] +[s4;%- &] +[s5;:Buffer`:`:Buffer`(pick`_ Buffer`&`):%- [* Buffer]([@(0.128.128) pick`_]_[* Buffer][@(0.0.255) `& +]_[*@3 v])&] +[s2;%- [%% Pick constructor. Destroys source container ][*@3 v.]&] +[s3;%- &] +[s4;%- &] +[s5;:Buffer`:`:`~Buffer`(`):%- [@(0.0.255) `~][* Buffer]()&] +[s2; Default destructor.&] +[s3;%- &] +[s4;%- &] +[s5;:Upp`:`:Buffer`:`:Buffer`(size`_t`,std`:`:initializer`_list``):%- [* Buffer](si +ze`_t_[*@3 size], [_^http`:`/`/en`.cppreference`.com`/w`/cpp`/utility`/initializer`_list^ s +td`::initializer`_list]<[*@4 T]>_[*@3 init])&] +[s5;:Upp`:`:Buffer`:`:Buffer`(std`:`:initializer`_list``):%- [* Buffer]([_^http`:`/`/en`.cppreference`.com`/w`/cpp`/utility`/initializer`_list^ s +td`::initializer`_list]<[*@4 T]>_[*@3 init])&] +[s2; C`+`+ 11 initialization.&] +[s3; &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] +[s3;%- &] +[s5;:Buffer`:`:operator`=`(pick`_ Buffer`&`):%- [@(0.0.255) void]_[* operator`=]([@(0.128.128) p +ick`_]_[_^Buffer^ Buffer][@(0.0.255) `&]_[*@3 v])&] +[s2; Pick operator. Source buffer [%-*@3 v ]is destroyed.&] +[s3;%- &] +[s4;%- &] +[s5;:Buffer`:`:operator T`*`(`):%- [* operator_T`*]()&] +[s5;:Buffer`:`:operator const T`*`(`)const:%- [* operator_const_T`*]()_[@(0.0.255) const]&] +[s5;:Buffer`:`:operator`~`(`):%- [*@4 T]_`*[* operator`~]()&] +[s5;:Buffer`:`:operator`~`(`)const:%- [@(0.0.255) const]_[*@4 T]_`*[* operator`~]()_[@(0.0.255) c +onst]&] +[s5;:Upp`:`:Buffer`:`:Get`(`):%- [*@4 T]_`*[* Get]()&] +[s5;:Upp`:`:Buffer`:`:Get`(`)const:%- [@(0.0.255) const]_[*@4 T]_`*[* Get]()_[@(0.0.255) cons +t]&] +[s2; Returns a pointer to the first element of the Buffer or NULL +if the Buffer is empty.&] +[s3;%- &] +[s4;%- &] +[s5;:Buffer`:`:Alloc`(size`_t`):%- [@(0.0.255) void]_[* Alloc](size`_t_[*@3 size])&] +[s2; Clears the buffer and allocates it with the new size [%-*@3 size]. +All current elements are lost.&] +[s6; T must have default constructor.&] +[s3; &] +[s4;%- &] +[s5;:Buffer`:`:Alloc`(size`_t`,const T`&`):%- [@(0.0.255) void]_[* Alloc](size`_t_[*@3 size +], [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[*@3 in])&] +[s2; Clears the buffer and allocates it with the new size [%-*@3 size], +using the initialization value [%-*@3 in]. All current elements +are lost.&] +[s6; T must have deep copy constructor.&] +[s3; &] +[s4;%- &] +[s5;:Buffer`:`:Clear`(`):%- [@(0.0.255) void]_[* Clear]()&] +[s2; Clears the buffer to the same state as default constructor. +All current elements are destroyed.&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:Buffer`:`:IsEmpty`(`)const:%- [@(0.0.255) bool]_[* IsEmpty]()_[@(0.0.255) const +]&] +[s2; Returns true if Buffer is empty.&] +[s3;%- &] [s0; ]] \ No newline at end of file diff --git a/uppsrc/Core/src.tpp/CParser$en-us.tpp b/uppsrc/Core/src.tpp/CParser_en-us.tpp similarity index 97% rename from uppsrc/Core/src.tpp/CParser$en-us.tpp rename to uppsrc/Core/src.tpp/CParser_en-us.tpp index 83e19b4de..c71f45c9b 100644 --- a/uppsrc/Core/src.tpp/CParser$en-us.tpp +++ b/uppsrc/Core/src.tpp/CParser_en-us.tpp @@ -1,556 +1,556 @@ -topic "CParser"; -[2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,0#27521748481378242620020725143825:desc] -[0 $$3,0#96390100711032703541132217272105:end] -[H6;0 $$4,0#05600065144404261032431302351956:begin] -[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] -[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] -[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] -[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] -[b42;2 $$9,9#13035079074754324216151401829390:normal] -[{_} -[ {{10000@(113.42.0) [s0;%% [*@7;4 CParser]]}}&] -[s3; &] -[s1;:CParser`:`:class: [@(0.0.255) class]_[* CParser]&] -[s9;%% CParser is simple yet very useful lexical analyzer suitable -for building descent parsers of languages with C`-like syntax.&] -[s9;%% CParser works on `'`\0`' terminated text in memory (not Stream), -so to parse the file you have to load it into the memory first. -Text has to exist during the time it is processed by CParser -(no copy is made).&] -[s9;%% Many CParser methods can throw CParser`::Error exception to -indicate the failure to parse required symbol. When using CParser -to build concrete parser, it is common to use this exception -(preferably via ThrowError method) to indicate errors as well.&] -[s9;%% Routines handling with identifiers allow ascii letters, digits -and characters `'`_`' and `'`$`'. `'`$`' is not exactly in C -standard, but is allowed by JavaSript, JSON, Java and most C/C`+`+ -compiler as extension.&] -[s9;%% CParser objects cannot be transfered (copied).&] -[s9;%% &] -[s3;%% &] -[s0;%% &] -[ {{10000F(128)G(128)@1 [s0;%% [* Constructor Detail]]}}&] -[s3; &] -[s5;:CParser`:`:CParser`(const char`*`): [* CParser]([@(0.0.255) const]_[@(0.0.255) char]_`* -[*@3 ptr])&] -[s2; [%% Constructs the ][%%* CParser ][%% which can parse input buffer -][*@3 ptr].&] -[s3; &] -[s4; &] -[s5;:CParser`:`:CParser`(const char`*`,const char`*`,int`): [* CParser]([@(0.0.255) const -]_[@(0.0.255) char]_`*[*@3 ptr], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 fn], -[@(0.0.255) int]_[*@3 line]_`=_[@3 1])&] -[s2;%% Constructs the [* CParser], with additional information for -the text. The additional info can be used when reporting error:&] -[s7;%% [%-*C@3 ptr]-|Pointer to the input text.&] -[s7;%% [%-*C@3 fn]-|The name of file (in fact, can be anything, value -is just stored).&] -[s7;%% [%-*C@3 line]-|First line number.&] -[s3; &] -[s4; &] -[s5;:CParser`:`:CParser`(`): [* CParser]()&] -[s2;%% Constructs the [* CParser]. Input text has to be assigned using -the [* SetPos ]method.&] -[s3; &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0;%% [* Public Member List]]}}&] -[s3; &] -[s5;:CParser`:`:ThrowError`(const char`*`): [@(0.0.255) void]_[* ThrowError]([@(0.0.255) co -nst]_[@(0.0.255) char]_`*[*@3 s])&] -[s2;%% Throws [^topic`:`/`/Core`/src`/CParser`$en`-us`#CParser`:`:Error`:`:struct^ CPar -ser`::Error] with the error message [%-*@3 s].&] -[s3; &] -[s3;%% &] -[s4; &] -[s5;:CParser`:`:SkipSpaces`(bool`): [_^CParser^ CParser][@(0.0.255) `&]_[* SkipSpaces]([@(0.0.255) b -ool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2;%% Sets the mode of skipping spaces. If [%-*@3 b] is true, sets -[* CParser ]to the mode where white`-spaces are automatically skipped. -First skip is performed when position in input text is assigned -via constructor or [^topic`:`/`/Core`/src`/CParser`$en`-us`#CParser`:`:SetPos`(const CParser`:`:Pos`&`)^ S -etPos], then the skip is performed after any symbol. If [%-*@3 b] -is false, sets [* CParser ]to the mode where white`-spaces are -not automatically skipped, but have to be skipped by [^topic`:`/`/Core`/src`/CParser`$en`-us`#CParser`:`:Spaces`(`)^ S -paces][* ]method. Default is true.&] -[s3;%% &] -[s4; &] -[s5;:CParser`:`:NoSkipSpaces`(`): [_^CParser^ CParser][@(0.0.255) `&]_[* NoSkipSpaces]()&] -[s2;%% Same as SkipSpaces(false).&] -[s3; &] -[s4; &] -[s5;:CParser`:`:UnicodeEscape`(bool`): [_^CParser^ CParser][@(0.0.255) `&]_[* UnicodeEscape -]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2;%% Activates/deactivates whether CParser should recognize `\u -and `\U unicode escape sequences in String. This option is active -by default.&] -[s3; &] -[s4; &] -[s5;:CParser`:`:SkipComments`(bool`): [_^CParser^ CParser][@(0.0.255) `&]_[* SkipComments]( -[@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2;%% Sets the behaviour of comments. If active, comments are treated -as whitespaces (basically, they are ignored). This is [*/ default]. -Note that SkipComments has to be called before any parsing happens.&] -[s3;%% &] -[s4; &] -[s5;:CParser`:`:NoSkipComments`(`): [_^CParser^ CParser][@(0.0.255) `&]_[* NoSkipComments]( -)&] -[s2;%% Same as SkipComments(false).&] -[s3; &] -[s4; &] -[s5;:Upp`:`:CParser`:`:NestComments`(bool`): [_^Upp`:`:CParser^ CParser][@(0.0.255) `&]_[* N -estComments]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2;%% If active, CParser recognizes nested comments (e.g `"[C /`* -level1 /`* level2 `*/ `*/]`").&] -[s3;%% &] -[s4; &] -[s5;:Upp`:`:CParser`:`:NoNestComments`(`): [_^Upp`:`:CParser^ CParser][@(0.0.255) `&]_[* No -NestComments]()&] -[s2;%% Same as NestComments(false).&] -[s3; &] -[s4; &] -[s5;:CParser`:`:Spaces`(`): [@(0.0.255) bool]_[* Spaces]()&] -[s2;%% Skips white`-spaces. Returns [* true] if there were white`-space -to skip, [* false] otherwise. Stores the position before advancing -as `"space pointer`" to be retrieved by GetSpacePtr.&] -[s3; &] -[s4; &] -[s5;:CParser`:`:PeekChar`(`)const: [@(0.0.255) char]_[* PeekChar]()_[@(0.0.255) const]&] -[s2;%% Returns the current single character.&] -[s3; &] -[s4; &] -[s5;:CParser`:`:GetChar`(`): [@(0.0.255) char]_[* GetChar]()&] -[s2;%% Advances the position in the input text by one character and -returns the character at the position before advancing.&] -[s3; &] -[s4; &] -[s5;:CParser`:`:IsChar`(char`)const: [@(0.0.255) bool]_[* IsChar]([@(0.0.255) char]_[*@3 c])_ -[@(0.0.255) const]&] -[s2;%% Tests whether there is a specific character [%-*@3 c ]at the -current position.&] -[s3;%% &] -[s4; &] -[s5;:CParser`:`:IsChar2`(char`,char`)const: [@(0.0.255) bool]_[* IsChar2]([@(0.0.255) char]_ -[*@3 c1], [@(0.0.255) char]_[*@3 c2])_[@(0.0.255) const]&] -[s2;%% Tests whether there is a specific character pair ([%-*@3 c1], -[%-*@3 c2]) at the current position.&] -[s3;%% &] -[s4; &] -[s5;:CParser`:`:IsChar3`(char`,char`,char`)const: [@(0.0.255) bool]_[* IsChar3]([@(0.0.255) c -har]_[*@3 c1], [@(0.0.255) char]_[*@3 c2], [@(0.0.255) char]_[*@3 c3])_[@(0.0.255) const]&] -[s2;%% Test for a specific character triplet ([%-*@3 c1], [%-*@3 c2], -[%-*@3 c3]) at the current position.&] -[s3; &] -[s4; &] -[s5;:CParser`:`:Char`(char`): [@(0.0.255) bool]_[* Char]([@(0.0.255) char]_[*@3 c])&] -[s2;%% Tests for a single character [%-*@3 c] at the current position. -If there is match, position is advanced and [* true] is returned. -If no match is found position remains unmodified and [* false] -is returned.&] -[s3; &] -[s4; &] -[s5;:CParser`:`:Char2`(char`,char`): [@(0.0.255) bool]_[* Char2]([@(0.0.255) char]_[*@3 c1], -[@(0.0.255) char]_[*@3 c2])&] -[s2;%% Tests for a character pair ([%-*@3 c1], [%-*@3 c2]) at the current -position. If there is match, position is advanced by two characters -and [* true] is returned. If no match is found position remains -unmodified and [* false] is returned.&] -[s3; &] -[s4; &] -[s5;:CParser`:`:Char3`(char`,char`,char`): [@(0.0.255) bool]_[* Char3]([@(0.0.255) char]_[*@3 c -1], [@(0.0.255) char]_[*@3 c2], [@(0.0.255) char]_[*@3 c3])&] -[s2;%% Tests for a character triplet ([%-*@3 c1], [%-*@3 c2], [%-*@3 c3]) -at the current position. If there is match, position is advanced -by three characters and [* true] is returned. If no match is found -position remains unmodified and [* false] is returned.&] -[s3; &] -[s4; &] -[s5;:CParser`:`:PassChar`(char`): [@(0.0.255) void]_[* PassChar]([@(0.0.255) char]_[*@3 c])&] -[s2;%% Calls [^topic`:`/`/Core`/src`/CParser`$en`-us`#CParser`:`:Char`(char`)^ Char](c) -. If it returns false, throws error.&] -[s3; &] -[s4; &] -[s5;:CParser`:`:PassChar2`(char`,char`): [@(0.0.255) void]_[* PassChar2]([@(0.0.255) char]_ -[*@3 c1], [@(0.0.255) char]_[*@3 c2])&] -[s2;%% Calls [^topic`:`/`/Core`/src`/CParser`$en`-us`#CParser`:`:Char2`(char`,char`)^ C -har2](c1, c2). If it returns [* false], throws [^topic`:`/`/Core`/src`/CParser`$en`-us`#CParser`:`:Error`:`:struct^ C -Parser`::Error].&] -[s3; &] -[s4; &] -[s5;:CParser`:`:PassChar3`(char`,char`,char`): [@(0.0.255) void]_[* PassChar3]([@(0.0.255) c -har]_[*@3 c1], [@(0.0.255) char]_[*@3 c2], [@(0.0.255) char]_[*@3 c3])&] -[s2;%% Calls [^topic`:`/`/Core`/src`/CParser`$en`-us`#CParser`:`:Char3`(char`,char`,char`)^ C -har3](c1, c2, c3). If it returns [* false], throws [^topic`:`/`/Core`/src`/CParser`$en`-us`#CParser`:`:Error`:`:struct^ C -Parser`::Error].&] -[s3; &] -[s4; &] -[s5;:CParser`:`:Id`(const char`*`): [@(0.0.255) bool]_[* Id]([@(0.0.255) const]_[@(0.0.255) c -har]_`*[*@3 s])&] -[s2;%% Tests for given C`-like identifier [%-*@3 s]. If there is match, -advances position by [* strlen](s) characters. Returns [* true] on -match and [* false] otherwise.&] -[s3; &] -[s4; &] -[s5;:CParser`:`:PassId`(const char`*`): [@(0.0.255) void]_[* PassId]([@(0.0.255) const]_[@(0.0.255) c -har]_`*[*@3 s])_[@(0.0.255) throw](Error)&] -[s2;%% Invokes the [^topic`:`/`/Core`/src`/CParser`$en`-us`#CParser`:`:Id`(const char`*`)^ I -d] method with [%-*@3 s] as parameter. If it returns [* false], throws -[^topic`:`/`/Core`/src`/CParser`$en`-us`#CParser`:`:Error`:`:struct^ CParser`::Error -].&] -[s3; &] -[s4; &] -[s5;:CParser`:`:IsId`(`)const: [@(0.0.255) bool]_[* IsId]()_[@(0.0.255) const]&] -[s2;%% Tests whether there is any C`-like identifier at the current -position.&] -[s3; &] -[s4; &] -[s5;:CParser`:`:IsId`(const char`*`)const: [@(0.0.255) bool]_[* IsId]([@(0.0.255) const]_[@(0.0.255) c -har]_`*[*@3 s])_[@(0.0.255) const]&] -[s2;%% Tests whether there is C`-like identifier [%-*@3 s] at current -position.&] -[s3;%% &] -[s4; &] -[s5;:CParser`:`:ReadId`(`): [_^String^ String]_[* ReadId]()&] -[s2;%% Reads C`-like identifier from the current position. If there -is none, a [^topic`:`/`/Core`/src`/CParser`$en`-us`#CParser`:`:Error`:`:struct^ CPa -rser`::Error] is thrown.&] -[s3; &] -[s4; &] -[s5;:CParser`:`:ReadIdt`(`): [_^String^ String]_[* ReadIdt]()&] -[s2;%% Special variant of [^topic`:`/`/Core`/src`/CParser`$en`-us`#CParser`:`:ReadId`(`)throw`(CParser`:`:Error`)^ R -eadId] that considers different non`-alphanumeric characters -to be the part of identifier as long as they form C`+`+ normal -or template based type.&] -[s3; &] -[s4; &] -[s5;:CParser`:`:IsInt`(`)const: [@(0.0.255) bool]_[* IsInt]()_[@(0.0.255) const]&] -[s2;%% Test for integer at current position `- there either must -be digit, or `'`+`' or `'`-`' sign followed by any number of -spaces and digit.&] -[s3; &] -[s4; &] -[s5;:CParser`:`:Sgn`(`): [@(0.0.255) int]_[* Sgn]()&] -[s2;%% If there are characters `'`-`' or `'`+`' at current posisition, -skips them. If `'`-`' was skipped, returns `-1, otherwise 1.&] -[s3; &] -[s4; &] -[s5;:CParser`:`:ReadInt`(`): [@(0.0.255) int]_[* ReadInt]()&] -[s2;%% Reads the integer from the current position. If [* IsInt ]is -false, throws an [^topic`:`/`/Core`/src`/CParser`$en`-us`#CParser`:`:Error`:`:struct^ C -Parser`::Error.]&] -[s3; &] -[s4; &] -[s5;:CParser`:`:ReadInt`(int`,int`): [@(0.0.255) int]_[* ReadInt]([@(0.0.255) int]_[*@3 min], - [@(0.0.255) int]_[*@3 max])&] -[s2;%% Performs ReadInt and then checks the result to be in [%-*@3 min] -<`= result <`= [%-*@3 max]. If not, throws a [^topic`:`/`/Core`/src`/CParser`$en`-us`#CParser`:`:Error`:`:struct^ C -Parser`::Error], otherwise returns it.&] -[s3;%% &] -[s4; &] -[s5;:CParser`:`:ReadInt64`(`): [_^int64^ int64]_[* ReadInt64]()&] -[s2;%% Reads the 64`-bit integer from the current position. If [* IsInt -]is false, throws an [^topic`:`/`/Core`/src`/CParser`$en`-us`#CParser`:`:Error`:`:struct^ C -Parser`::Error.]&] -[s3; &] -[s4; &] -[s5;:CParser`:`:ReadInt64`(int64`,int64`): [_^int64^ int64]_[* ReadInt64]([_^int64^ int64]_ -[*@3 min], [_^int64^ int64]_[*@3 max])&] -[s2;%% Performs ReadInt64 and then checks the result to be in [%-*@3 min] -<`= result <`= [%-*@3 max]. If not, throws a [^topic`:`/`/Core`/src`/CParser`$en`-us`#CParser`:`:Error`:`:struct^ C -Parser`::Error], otherwise returns it.&] -[s3; &] -[s4; &] -[s5;:CParser`:`:IsNumber`(`)const: [@(0.0.255) bool]_[* IsNumber]()_[@(0.0.255) const]&] -[s2;%% Tests for sign`-less number at current position `- there must -be digit at current position.&] -[s3; &] -[s4; &] -[s5;:CParser`:`:IsNumber`(int`)const: [@(0.0.255) bool]_[* IsNumber]([@(0.0.255) int]_[*@3 ba -se])_[@(0.0.255) const]&] -[s2;%% Tests for sign`-less number with given base `- there must -be digit or letter `'A`' `- `'Z`' or `'a`' `- `'z`', where range -is limit by actual [%-*@3 base ](e.g. for base 12 letters `'a`' -`'A`' `'b`' `'B`' are allowed).&] -[s3; &] -[s4; &] -[s5;:CParser`:`:ReadNumber`(int`): [_^uint32^ uint32]_[* ReadNumber]([@(0.0.255) int]_[*@3 ba -se]_`=_[@3 10])&] -[s2;%% Reads a number with the given numeric [%-*C@3 base]. If [* IsNumber]([%-*@3 base]) -is false, throws an [^topic`:`/`/Core`/src`/CParser`$en`-us`#CParser`:`:Error`:`:struct^ C -Parser`::Error.]&] -[s3; &] -[s4; &] -[s5;:CParser`:`:ReadNumber64`(int`): [_^uint64^ uint64]_[* ReadNumber64]([@(0.0.255) int]_[*@3 b -ase]_`=_[@3 10])&] -[s2;%% Reads 64`-bit unsigned number with given numeric [%-*@3 base].&] -[s3;%% &] -[s4; &] -[s5;:CParser`:`:IsDouble`(`)const: [@(0.0.255) bool]_[* IsDouble]()_[@(0.0.255) const]&] -[s2;%% Test for floating point number at current position `- there -either must be digit, or `'`+`' or `'`-`' sign followed by any -number of spaces and digit.&] -[s3;%% &] -[s4; &] -[s5;:CParser`:`:IsDouble2`(`)const: [@(0.0.255) bool]_[* IsDouble2]()_[@(0.0.255) const]&] -[s2;%% Similar to IsDouble, but also allows double number to start -with decimal point, like `'.21`'.&] -[s3; &] -[s4; &] -[s5;:CParser`:`:ReadDouble`(`): [@(0.0.255) double]_[* ReadDouble]()&] -[s2;%% Reads a floating point number with C based lexical rules. -As an exception to C lexical rules, ReadDouble also recognizes -form starting with decimal point, like `".21`".&] -[s3; &] -[s4; &] -[s5;:CParser`:`:IsString`(`)const: [@(0.0.255) bool]_[* IsString]()_[@(0.0.255) const]&] -[s2;%% Tests for C`-like string literal at the current position. -Same as [* IsChar](`'`\`"`');&] -[s3; &] -[s4; &] -[s5;:CParser`:`:ReadOneString`(bool`): [_^String^ String]_[* ReadOneString]([@(0.0.255) boo -l]_[*@3 chkend]_`=_[@(0.0.255) true])&] -[s2;%% Reads C`-like string literal from current position (follow -C lexical rules, including escape codes). Literals on different -lines are not concatenated (unlike C). When [%-*C@3 chkend] is -[* false], [* ReadOneString ]is more permissive as it allows unterminated -string literals `- string is then also delimited by end of line -or text.&] -[s3; &] -[s4; &] -[s5;:CParser`:`:ReadString`(bool`): [_^String^ String]_[* ReadString]([@(0.0.255) bool]_[*@3 c -hkend]_`=_[@(0.0.255) true])&] -[s2;%% Reads C`-like string literal from current position (follow -C lexical rules, including escape codes). Literals on different -lines are concatenated (as in C). When [%-*C@3 chkend] is [* false], -[* ReadOneString ]is more permissive as it allows unterminated -string literals `- string is then also delimited by end of line -or text.&] -[s3; &] -[s4; &] -[s5;:CParser`:`:ReadOneString`(int`,bool`): [_^String^ String]_[* ReadOneString]([@(0.0.255) i -nt]_[*@3 delim], [@(0.0.255) bool]_[*@3 chkend]_`=_[@(0.0.255) true])&] -[s2;%% Reads C`-like string literal from current position (follow -C lexical rules, including escape codes) with different delimiter -[%-*C@3 delim] than `'`\`"`'. Literals on different lines are not -concatenated (unlike C). When [%-*C@3 chkend] is false, [* ReadOneString -]is more permissive as it allows unterminated string literals -`- string is then also delimited by end of line or text.&] -[s3; &] -[s4; &] -[s5;:CParser`:`:ReadString`(int`,bool`): [_^String^ String]_[* ReadString]([@(0.0.255) int]_ -[*@3 delim], [@(0.0.255) bool]_[*@3 chkend]_`=_[@(0.0.255) true])&] -[s2;%% Reads C`-like string literal from current position (follow -C lexical rules, including escape codes). with different delimiter -[%-*C@3 delim] than `'`\`"`'. Literals on different lines are concatenated -(as in C). When [%-*C@3 chkend] is false, [* ReadOneString ]is more -permissive as it allows unterminated string literals `- string -is then also delimited by end of line or text.&] -[s3; &] -[s4; &] -[s5;:CParser`:`:SkipTerm`(`): [@(0.0.255) void]_[* SkipTerm]()&] -[s2;%% Skips a single symbol. Decimal numbers, identifiers and string -literals are skipped as whole symbols, otherwise input position -is advanced by 1 character.&] -[s3; &] -[s4; &] -[s5;:CParser`:`:GetPtr`(`)const: [@(0.0.255) const]_[@(0.0.255) char]_`*[* GetPtr]()_[@(0.0.255) c -onst]&] -[s2;%% Returns a pointer to the current position.&] -[s3; &] -[s4; &] -[s5;:CParser`:`:GetSpacePtr`(`)const: [@(0.0.255) const]_[@(0.0.255) char]_`*[* GetSpacePtr -]()_[@(0.0.255) const]&] -[s2;%% Returns a pointer to the position of last whitespace before -current position, or current position if there was none whitespace. -This pointer is set at the start of Space call, Space is called -after each token processed (unless SkipWhitespaces is false).&] -[s3; &] -[s4; &] -[s5;:CParser`:`:GetPos`(`)const: [_^CParser`:`:Pos^ Pos]_[* GetPos]()_[@(0.0.255) const]&] -[s2;%% Gets the current position. It contains the pointer as well -as the line number and the filename.&] -[s3; &] -[s4; &] -[s5;:CParser`:`:SetPos`(const CParser`:`:Pos`&`): [@(0.0.255) void]_[* SetPos]([@(0.0.255) c -onst]_[_^topic`:`/`/Core`/src`/CParser`$en`-us`#CParser`:`:Pos`:`:struct^ CParser`: -:Pos][@(0.0.255) `&]_[*@3 p])&] -[s2; [%% Sets the current position to ][*@3 p][%% . ][*@3 p ]can be from -a different [* CParser].&] -[s3; &] -[s4; &] -[s5;:CParser`:`:IsEof`(`)const: [@(0.0.255) bool]_[* IsEof]()_[@(0.0.255) const]&] -[s2;%% Test for the end of input text.&] -[s3; &] -[s4; &] -[s5;:CParser`:`:operator bool`(`)const: [* operator_bool]()_[@(0.0.255) const]&] -[s2; Returns [* true ]if end of file has not been reached, [* false ]otherwise.&] -[s3; &] -[s4; &] -[s5;:CParser`:`:GetLine`(`)const: [@(0.0.255) int]_[* GetLine]()_[@(0.0.255) const]&] -[s2; Returns the current line number.&] -[s3; &] -[s4; &] -[s5;:CParser`:`:GetColumn`(int`)const: [@(0.0.255) int]_[* GetColumn]([@(0.0.255) int]_[*@3 t -absize])_[@(0.0.255) const]&] -[s2;%% Returns the current column, with given [%-*@3 tabsize].&] -[s3;%% &] -[s4; &] -[s5;:CParser`:`:GetFileName`(`)const: [_^String^ String]_[* GetFileName]()_[@(0.0.255) cons -t]&] -[s2; Returns the actual filename.&] -[s3;%% &] -[s3; &] -[s4; &] -[s5;:CParser`:`:LineInfoComment`(const String`&`,int`,int`): [@(0.0.255) static] -[_^String^ String]_[* LineInfoComment]([@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_ -[*@3 filename], [@(0.0.255) int]_[*@3 line]_`=_[@3 1], [@(0.0.255) int]_[*@3 column]_`=_[@3 1]) -&] -[s2;%% This function creates a special comment that when parsed by -CParser, switches filename and line number. This is supposed -to help in situations when parsed text is actually a result of -e.g. include operations of some original files, to improve error -reporting. Not that such comment is lexically treated as comment. -Comment is created using LINEINFO`_ESC characters begin/end delimiter -(current value is `'`\2`').&] -[s3;%% &] -[s4; &] -[s5;:CParser`:`:GetLineInfoComment`(int`)const: [_^String^ String]_[* GetLineInfoComment]( -[@(0.0.255) int]_[*@3 tabsize]_`=_[@3 4])_[@(0.0.255) const]&] -[s2;%% Calls LineInfoComment(GetFileName(), GetLine(), GetColumn([%-*@3 tabsize])) -`- creates a comment to identify current file position in further -processing.&] -[s3; &] -[s4; &] -[s5;:CParser`:`:Set`(const char`*`,const char`*`,int`): [@(0.0.255) void]_[* Set]([@(0.0.255) c -onst]_[@(0.0.255) char]_`*[*@3 ptr], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 fn], -[@(0.0.255) int]_[*@3 line]_`=_[@3 1])&] -[s2;%% Sets the new input string (with filename and line).&] -[s3;%% &] -[s4; &] -[s5;:CParser`:`:Set`(const char`*`): [@(0.0.255) void]_[* Set]([@(0.0.255) const]_[@(0.0.255) c -har]_`*[*@3 ptr])&] -[s2;%% Sets the new input string.&] -[s3;%% &] -[s0;%% &] -[ {{10000@(113.42.0) [s0;%% [*@7;4 CParser`::Error]]}}&] -[s3; &] -[s1;:CParser`:`:Error`:`:struct: [@(0.0.255)3 struct][3 _][*3 Error][3 _:_][@(0.0.255)3 public][3 _ -][*@3;3 Exc]&] -[s0; &] -[s0;%% Type used as [^topic`:`/`/Core`/src`/CParser`$en`-us`#CParser`:`:class^ CParser] -exception. Contains single [^topic`:`/`/Core`/src`/String`$en`-us`#String`:`:class^ S -tring] with error description.&] -[s0;/%% &] -[s0; [%%/ Derived from][%% ][^topic`:`/`/Core`/src`/Exc`$en`-us`#Exc`:`:class^ Exc]&] -[s3;%% &] -[s0;%% &] -[ {{10000F(128)G(128)@1 [s0;%% [* Constructor Detail]]}}&] -[s3; &] -[s5;:Exc`:`:Exc`(`): [* Exc]()&] -[s2;%% Default constructor. Error message is empty.&] -[s3;%% &] -[s4; &] -[s5;:Exc`:`:Exc`(const String`&`): [* Exc]([@(0.0.255) const]_[_^String^ String][@(0.0.255) `& -]_[*@3 desc])&] -[s2; [%% Construct an ][%%* Error][%% with ][*@3 desc] as an error message.&] -[s3;%% &] -[s0;%% &] -[s0;%% &] -[s0;%% &] -[ {{10000@(113.42.0) [s0;%% [*@7;4 CParser`::Pos]]}}&] -[s3;%% &] -[s1;:CParser`:`:Pos`:`:struct: [@(0.0.255)3 struct][3 _][*3 Pos]&] -[s3; &] -[s5;:`:`:CParser`:`:Pos`:`:struct:%% Position in parsed text.&] -[s3;%% &] -[ {{10000F(128)G(128)@1 [s0;%% [* Constructor Detail]]}}&] -[s3; &] -[s5;:CParser`:`:Pos`:`:Pos`(const char`*`,int`,String`): [* Pos]([@(0.0.255) const]_[@(0.0.255) c -har]_`*[*@3 ptr]_`=_NULL, [@(0.0.255) int]_[*@3 line]_`=_[@3 1], [_^String^ String]_[*@3 fn]_ -`=_Null)&] -[s2; Constrcuts a [* Pos ]based on pointer in input buffer, line number -and anme of the file.&] -[s7;%% [%-*@3 ptr]-|Pointer to the position in the input text &] -[s7;%% [%-*@3 line]-|Line number.&] -[s7;%% [%-*@3 fn]-|Filename.&] -[s3; &] -[ {{10000F(128)G(128)@1 [s0;%% [* Public Member List]]}}&] -[s3; &] -[s5;:CParser`:`:Pos`:`:ptr: [@(0.0.255) const]_[@(0.0.255) char]_`*[* ptr]&] -[s2;%% Pointer to the position in the input text &] -[s3;%% &] -[s4; &] -[s5;:CParser`:`:Pos`:`:wspc: [@(0.0.255) const]_[@(0.0.255) char]_`*[* wspc]&] -[s2;%% Pointer to the position of last whitespace before current -position, or current position if there was none whitespace.&] -[s3; &] -[s4; &] -[s5;:CParser`:`:Pos`:`:lineptr: [@(0.0.255) const]_[@(0.0.255) char]_`*[* lineptr]&] -[s2;%% Pointer to the beginning of the last line.&] -[s3; &] -[s4; &] -[s5;:CParser`:`:Pos`:`:line: [@(0.0.255) int]_[* line]&] -[s2;%% Line number.&] -[s3;%% &] -[s4; &] -[s5;:CParser`:`:Pos`:`:fn: [_^topic`:`/`/Core`/src`/String`$en`-us`#String`:`:class^ St -ring]_[* fn]&] -[s2;%% Filename.&] -[s3;%% &] -[s4; &] -[s5;:CParser`:`:Pos`:`:GetColumn`(int`)const: [@(0.0.255) int]_[* GetColumn]([@(0.0.255) in -t]_[*@3 tabsize]_`=_[@3 4])_[@(0.0.255) const]&] -[s2;%% Returns the column, for given [%-*@3 tabsize].&] -[s0;%% &] -[s0;%% &] -[ {{10000@(113.42.0) [s0;%% [*@7;4 C`-like string literal formatting]]}}&] -[s3;%% &] -[s0;%% [* AsCString] routines produce C`-like literals (compatible -with [^topic`:`/`/Core`/src`/CParser`$en`-us`#CParser`:`:class^ CParser]) -from character data:&] -[s0;%% &] -[s5;:AsCString`(const char`*`,const char`*`,int`,const char`*`,dword`): [_^String^ Stri -ng]_[* AsCString]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 s], [@(0.0.255) const]_[@(0.0.255) c -har]_`*[*@3 end], [@(0.0.255) int]_[*@3 linemax]_`=_INT`_MAX, [@(0.0.255) const]_[@(0.0.255) c -har]_`*[*@3 linepfx]_`=_NULL, [_^dword^ dword]_[*@3 flags]_`=_[@3 0])&] -[s2;%% Creates C`-like literal.&] -[s7;%% [%-*@3 s]-|Pointer to characters.&] -[s7;%% [%-*@3 end] -|End of characters array (`'`\0`' characters are -allowed inside data).&] -[s7;%% [%-*@3 linemax] -|Maximal length of line. If this is exceeded, -ending `"`\`"`\n`" and [@3 linepfx] is inserted and literal continues -on the new line.&] -[s7;%% [%-*@3 linepfx]-|Pointer to zero`-terminated text to be inserted -at the beginning of the line when the line length is exceeded.&] -[s7;%% [%-*@3 flags]-|a combination of flags:&] -[s0;~~~1408;%% -|ASCSTRING`_SMART-|breaks string into lines when too -long&] -[s0;~~~1408;%% -|ASCSTRING`_OCTALHI-|escapes characters >128&] -[s0;~~~1408;%% -|ASCSTRING`_JSON-|uses JSON notation for escapes &] -[s0;~~~1408;%% -|(`\u0001 instead of `\001)&] -[s0;~~~1408;%% &] -[s7;%% [*/ Return value]-|C`-like literal.&] -[s3;%% &] -[s4; &] -[s5;:AsCString`(const char`*`,int`,const char`*`,dword`): [_^String^ String]_[* AsCString -]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 s], [@(0.0.255) int]_[*@3 linemax]_`=_INT`_MA -X, [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 linepfx]_`=_NULL, [_^dword^ dword]_[*@3 flag -s]_`=_[@3 0])&] -[s2;%% Creates C`-like literal from zero terminated character data. -Same as [^topic`:`/`/Core`/src`/CParser`$en`-us`#AsCString`(const char`*`,const char`*`,int`,const char`*`,dword`)^ A -sCString]([%-*@3 s],[%- _][%-*@3 s][%- _]`+[%- _][* strlen]([%-*@3 s]),[%- _][%-*@3 linemax],[%- _][%-*@3 l -inepfx],[%- _][%-*@3 flags]).&] -[s3;%% &] -[s4; &] -[s5;:AsCString`(const String`&`,int`,const char`*`,dword`): [_^String^ String]_[* AsCStri -ng]([@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 s], [@(0.0.255) int]_[*@3 linem -ax]_`=_INT`_MAX, [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 linepfx]_`=_NULL, -[_^dword^ dword]_[*@3 flags]_`=_[@3 0])&] -[s2;%% Creates C`-like literal from [^topic`:`/`/Core`/src`/String`$en`-us`#String`:`:class^ S -tring]. String can contain zero characters. Same as [^topic`:`/`/Core`/src`/CParser`$en`-us`#AsCString`(const char`*`,const char`*`,int`,const char`*`,dword`)^ A -sCString]([%-*@3 s].[^topic`:`/`/Core`/src`/String`$en`-us`#String0`:`:Begin`(`)const^ B -egin](),[%- _][%-*@3 s].[^topic`:`/`/Core`/src`/String`$en`-us`#String0`:`:End`(`)const^ E -nd](),[%- _][%-*@3 linemax],[%- _][%-*@3 linepfx],[%- _][%-*@3 flags]).&] -[s3;%% &] +topic "CParser"; +[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,0#27521748481378242620020725143825:desc] +[0 $$3,0#96390100711032703541132217272105:end] +[H6;0 $$4,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] +[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] +[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] +[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] +[b42;2 $$9,9#13035079074754324216151401829390:normal] +[{_} +[ {{10000@(113.42.0) [s0;%% [*@7;4 CParser]]}}&] +[s3; &] +[s1;:CParser`:`:class: [@(0.0.255) class]_[* CParser]&] +[s9;%% CParser is simple yet very useful lexical analyzer suitable +for building descent parsers of languages with C`-like syntax.&] +[s9;%% CParser works on `'`\0`' terminated text in memory (not Stream), +so to parse the file you have to load it into the memory first. +Text has to exist during the time it is processed by CParser +(no copy is made).&] +[s9;%% Many CParser methods can throw CParser`::Error exception to +indicate the failure to parse required symbol. When using CParser +to build concrete parser, it is common to use this exception +(preferably via ThrowError method) to indicate errors as well.&] +[s9;%% Routines handling with identifiers allow ascii letters, digits +and characters `'`_`' and `'`$`'. `'`$`' is not exactly in C +standard, but is allowed by JavaSript, JSON, Java and most C/C`+`+ +compiler as extension.&] +[s9;%% CParser objects cannot be transfered (copied).&] +[s9;%% &] +[s3;%% &] +[s0;%% &] +[ {{10000F(128)G(128)@1 [s0;%% [* Constructor Detail]]}}&] +[s3; &] +[s5;:CParser`:`:CParser`(const char`*`): [* CParser]([@(0.0.255) const]_[@(0.0.255) char]_`* +[*@3 ptr])&] +[s2; [%% Constructs the ][%%* CParser ][%% which can parse input buffer +][*@3 ptr].&] +[s3; &] +[s4; &] +[s5;:CParser`:`:CParser`(const char`*`,const char`*`,int`): [* CParser]([@(0.0.255) const +]_[@(0.0.255) char]_`*[*@3 ptr], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 fn], +[@(0.0.255) int]_[*@3 line]_`=_[@3 1])&] +[s2;%% Constructs the [* CParser], with additional information for +the text. The additional info can be used when reporting error:&] +[s7;%% [%-*C@3 ptr]-|Pointer to the input text.&] +[s7;%% [%-*C@3 fn]-|The name of file (in fact, can be anything, value +is just stored).&] +[s7;%% [%-*C@3 line]-|First line number.&] +[s3; &] +[s4; &] +[s5;:CParser`:`:CParser`(`): [* CParser]()&] +[s2;%% Constructs the [* CParser]. Input text has to be assigned using +the [* SetPos ]method.&] +[s3; &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0;%% [* Public Member List]]}}&] +[s3; &] +[s5;:CParser`:`:ThrowError`(const char`*`): [@(0.0.255) void]_[* ThrowError]([@(0.0.255) co +nst]_[@(0.0.255) char]_`*[*@3 s])&] +[s2;%% Throws [^topic`:`/`/Core`/src`/CParser`$en`-us`#CParser`:`:Error`:`:struct^ CPar +ser`::Error] with the error message [%-*@3 s].&] +[s3; &] +[s3;%% &] +[s4; &] +[s5;:CParser`:`:SkipSpaces`(bool`): [_^CParser^ CParser][@(0.0.255) `&]_[* SkipSpaces]([@(0.0.255) b +ool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2;%% Sets the mode of skipping spaces. If [%-*@3 b] is true, sets +[* CParser ]to the mode where white`-spaces are automatically skipped. +First skip is performed when position in input text is assigned +via constructor or [^topic`:`/`/Core`/src`/CParser`$en`-us`#CParser`:`:SetPos`(const CParser`:`:Pos`&`)^ S +etPos], then the skip is performed after any symbol. If [%-*@3 b] +is false, sets [* CParser ]to the mode where white`-spaces are +not automatically skipped, but have to be skipped by [^topic`:`/`/Core`/src`/CParser`$en`-us`#CParser`:`:Spaces`(`)^ S +paces][* ]method. Default is true.&] +[s3;%% &] +[s4; &] +[s5;:CParser`:`:NoSkipSpaces`(`): [_^CParser^ CParser][@(0.0.255) `&]_[* NoSkipSpaces]()&] +[s2;%% Same as SkipSpaces(false).&] +[s3; &] +[s4; &] +[s5;:CParser`:`:UnicodeEscape`(bool`): [_^CParser^ CParser][@(0.0.255) `&]_[* UnicodeEscape +]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2;%% Activates/deactivates whether CParser should recognize `\u +and `\U unicode escape sequences in String. This option is active +by default.&] +[s3; &] +[s4; &] +[s5;:CParser`:`:SkipComments`(bool`): [_^CParser^ CParser][@(0.0.255) `&]_[* SkipComments]( +[@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2;%% Sets the behaviour of comments. If active, comments are treated +as whitespaces (basically, they are ignored). This is [*/ default]. +Note that SkipComments has to be called before any parsing happens.&] +[s3;%% &] +[s4; &] +[s5;:CParser`:`:NoSkipComments`(`): [_^CParser^ CParser][@(0.0.255) `&]_[* NoSkipComments]( +)&] +[s2;%% Same as SkipComments(false).&] +[s3; &] +[s4; &] +[s5;:Upp`:`:CParser`:`:NestComments`(bool`): [_^Upp`:`:CParser^ CParser][@(0.0.255) `&]_[* N +estComments]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2;%% If active, CParser recognizes nested comments (e.g `"[C /`* +level1 /`* level2 `*/ `*/]`").&] +[s3;%% &] +[s4; &] +[s5;:Upp`:`:CParser`:`:NoNestComments`(`): [_^Upp`:`:CParser^ CParser][@(0.0.255) `&]_[* No +NestComments]()&] +[s2;%% Same as NestComments(false).&] +[s3; &] +[s4; &] +[s5;:CParser`:`:Spaces`(`): [@(0.0.255) bool]_[* Spaces]()&] +[s2;%% Skips white`-spaces. Returns [* true] if there were white`-space +to skip, [* false] otherwise. Stores the position before advancing +as `"space pointer`" to be retrieved by GetSpacePtr.&] +[s3; &] +[s4; &] +[s5;:CParser`:`:PeekChar`(`)const: [@(0.0.255) char]_[* PeekChar]()_[@(0.0.255) const]&] +[s2;%% Returns the current single character.&] +[s3; &] +[s4; &] +[s5;:CParser`:`:GetChar`(`): [@(0.0.255) char]_[* GetChar]()&] +[s2;%% Advances the position in the input text by one character and +returns the character at the position before advancing.&] +[s3; &] +[s4; &] +[s5;:CParser`:`:IsChar`(char`)const: [@(0.0.255) bool]_[* IsChar]([@(0.0.255) char]_[*@3 c])_ +[@(0.0.255) const]&] +[s2;%% Tests whether there is a specific character [%-*@3 c ]at the +current position.&] +[s3;%% &] +[s4; &] +[s5;:CParser`:`:IsChar2`(char`,char`)const: [@(0.0.255) bool]_[* IsChar2]([@(0.0.255) char]_ +[*@3 c1], [@(0.0.255) char]_[*@3 c2])_[@(0.0.255) const]&] +[s2;%% Tests whether there is a specific character pair ([%-*@3 c1], +[%-*@3 c2]) at the current position.&] +[s3;%% &] +[s4; &] +[s5;:CParser`:`:IsChar3`(char`,char`,char`)const: [@(0.0.255) bool]_[* IsChar3]([@(0.0.255) c +har]_[*@3 c1], [@(0.0.255) char]_[*@3 c2], [@(0.0.255) char]_[*@3 c3])_[@(0.0.255) const]&] +[s2;%% Test for a specific character triplet ([%-*@3 c1], [%-*@3 c2], +[%-*@3 c3]) at the current position.&] +[s3; &] +[s4; &] +[s5;:CParser`:`:Char`(char`): [@(0.0.255) bool]_[* Char]([@(0.0.255) char]_[*@3 c])&] +[s2;%% Tests for a single character [%-*@3 c] at the current position. +If there is match, position is advanced and [* true] is returned. +If no match is found position remains unmodified and [* false] +is returned.&] +[s3; &] +[s4; &] +[s5;:CParser`:`:Char2`(char`,char`): [@(0.0.255) bool]_[* Char2]([@(0.0.255) char]_[*@3 c1], +[@(0.0.255) char]_[*@3 c2])&] +[s2;%% Tests for a character pair ([%-*@3 c1], [%-*@3 c2]) at the current +position. If there is match, position is advanced by two characters +and [* true] is returned. If no match is found position remains +unmodified and [* false] is returned.&] +[s3; &] +[s4; &] +[s5;:CParser`:`:Char3`(char`,char`,char`): [@(0.0.255) bool]_[* Char3]([@(0.0.255) char]_[*@3 c +1], [@(0.0.255) char]_[*@3 c2], [@(0.0.255) char]_[*@3 c3])&] +[s2;%% Tests for a character triplet ([%-*@3 c1], [%-*@3 c2], [%-*@3 c3]) +at the current position. If there is match, position is advanced +by three characters and [* true] is returned. If no match is found +position remains unmodified and [* false] is returned.&] +[s3; &] +[s4; &] +[s5;:CParser`:`:PassChar`(char`): [@(0.0.255) void]_[* PassChar]([@(0.0.255) char]_[*@3 c])&] +[s2;%% Calls [^topic`:`/`/Core`/src`/CParser`$en`-us`#CParser`:`:Char`(char`)^ Char](c) +. If it returns false, throws error.&] +[s3; &] +[s4; &] +[s5;:CParser`:`:PassChar2`(char`,char`): [@(0.0.255) void]_[* PassChar2]([@(0.0.255) char]_ +[*@3 c1], [@(0.0.255) char]_[*@3 c2])&] +[s2;%% Calls [^topic`:`/`/Core`/src`/CParser`$en`-us`#CParser`:`:Char2`(char`,char`)^ C +har2](c1, c2). If it returns [* false], throws [^topic`:`/`/Core`/src`/CParser`$en`-us`#CParser`:`:Error`:`:struct^ C +Parser`::Error].&] +[s3; &] +[s4; &] +[s5;:CParser`:`:PassChar3`(char`,char`,char`): [@(0.0.255) void]_[* PassChar3]([@(0.0.255) c +har]_[*@3 c1], [@(0.0.255) char]_[*@3 c2], [@(0.0.255) char]_[*@3 c3])&] +[s2;%% Calls [^topic`:`/`/Core`/src`/CParser`$en`-us`#CParser`:`:Char3`(char`,char`,char`)^ C +har3](c1, c2, c3). If it returns [* false], throws [^topic`:`/`/Core`/src`/CParser`$en`-us`#CParser`:`:Error`:`:struct^ C +Parser`::Error].&] +[s3; &] +[s4; &] +[s5;:CParser`:`:Id`(const char`*`): [@(0.0.255) bool]_[* Id]([@(0.0.255) const]_[@(0.0.255) c +har]_`*[*@3 s])&] +[s2;%% Tests for given C`-like identifier [%-*@3 s]. If there is match, +advances position by [* strlen](s) characters. Returns [* true] on +match and [* false] otherwise.&] +[s3; &] +[s4; &] +[s5;:CParser`:`:PassId`(const char`*`): [@(0.0.255) void]_[* PassId]([@(0.0.255) const]_[@(0.0.255) c +har]_`*[*@3 s])_[@(0.0.255) throw](Error)&] +[s2;%% Invokes the [^topic`:`/`/Core`/src`/CParser`$en`-us`#CParser`:`:Id`(const char`*`)^ I +d] method with [%-*@3 s] as parameter. If it returns [* false], throws +[^topic`:`/`/Core`/src`/CParser`$en`-us`#CParser`:`:Error`:`:struct^ CParser`::Error +].&] +[s3; &] +[s4; &] +[s5;:CParser`:`:IsId`(`)const: [@(0.0.255) bool]_[* IsId]()_[@(0.0.255) const]&] +[s2;%% Tests whether there is any C`-like identifier at the current +position.&] +[s3; &] +[s4; &] +[s5;:CParser`:`:IsId`(const char`*`)const: [@(0.0.255) bool]_[* IsId]([@(0.0.255) const]_[@(0.0.255) c +har]_`*[*@3 s])_[@(0.0.255) const]&] +[s2;%% Tests whether there is C`-like identifier [%-*@3 s] at current +position.&] +[s3;%% &] +[s4; &] +[s5;:CParser`:`:ReadId`(`): [_^String^ String]_[* ReadId]()&] +[s2;%% Reads C`-like identifier from the current position. If there +is none, a [^topic`:`/`/Core`/src`/CParser`$en`-us`#CParser`:`:Error`:`:struct^ CPa +rser`::Error] is thrown.&] +[s3; &] +[s4; &] +[s5;:CParser`:`:ReadIdt`(`): [_^String^ String]_[* ReadIdt]()&] +[s2;%% Special variant of [^topic`:`/`/Core`/src`/CParser`$en`-us`#CParser`:`:ReadId`(`)throw`(CParser`:`:Error`)^ R +eadId] that considers different non`-alphanumeric characters +to be the part of identifier as long as they form C`+`+ normal +or template based type.&] +[s3; &] +[s4; &] +[s5;:CParser`:`:IsInt`(`)const: [@(0.0.255) bool]_[* IsInt]()_[@(0.0.255) const]&] +[s2;%% Test for integer at current position `- there either must +be digit, or `'`+`' or `'`-`' sign followed by any number of +spaces and digit.&] +[s3; &] +[s4; &] +[s5;:CParser`:`:Sgn`(`): [@(0.0.255) int]_[* Sgn]()&] +[s2;%% If there are characters `'`-`' or `'`+`' at current posisition, +skips them. If `'`-`' was skipped, returns `-1, otherwise 1.&] +[s3; &] +[s4; &] +[s5;:CParser`:`:ReadInt`(`): [@(0.0.255) int]_[* ReadInt]()&] +[s2;%% Reads the integer from the current position. If [* IsInt ]is +false, throws an [^topic`:`/`/Core`/src`/CParser`$en`-us`#CParser`:`:Error`:`:struct^ C +Parser`::Error.]&] +[s3; &] +[s4; &] +[s5;:CParser`:`:ReadInt`(int`,int`): [@(0.0.255) int]_[* ReadInt]([@(0.0.255) int]_[*@3 min], + [@(0.0.255) int]_[*@3 max])&] +[s2;%% Performs ReadInt and then checks the result to be in [%-*@3 min] +<`= result <`= [%-*@3 max]. If not, throws a [^topic`:`/`/Core`/src`/CParser`$en`-us`#CParser`:`:Error`:`:struct^ C +Parser`::Error], otherwise returns it.&] +[s3;%% &] +[s4; &] +[s5;:CParser`:`:ReadInt64`(`): [_^int64^ int64]_[* ReadInt64]()&] +[s2;%% Reads the 64`-bit integer from the current position. If [* IsInt +]is false, throws an [^topic`:`/`/Core`/src`/CParser`$en`-us`#CParser`:`:Error`:`:struct^ C +Parser`::Error.]&] +[s3; &] +[s4; &] +[s5;:CParser`:`:ReadInt64`(int64`,int64`): [_^int64^ int64]_[* ReadInt64]([_^int64^ int64]_ +[*@3 min], [_^int64^ int64]_[*@3 max])&] +[s2;%% Performs ReadInt64 and then checks the result to be in [%-*@3 min] +<`= result <`= [%-*@3 max]. If not, throws a [^topic`:`/`/Core`/src`/CParser`$en`-us`#CParser`:`:Error`:`:struct^ C +Parser`::Error], otherwise returns it.&] +[s3; &] +[s4; &] +[s5;:CParser`:`:IsNumber`(`)const: [@(0.0.255) bool]_[* IsNumber]()_[@(0.0.255) const]&] +[s2;%% Tests for sign`-less number at current position `- there must +be digit at current position.&] +[s3; &] +[s4; &] +[s5;:CParser`:`:IsNumber`(int`)const: [@(0.0.255) bool]_[* IsNumber]([@(0.0.255) int]_[*@3 ba +se])_[@(0.0.255) const]&] +[s2;%% Tests for sign`-less number with given base `- there must +be digit or letter `'A`' `- `'Z`' or `'a`' `- `'z`', where range +is limit by actual [%-*@3 base ](e.g. for base 12 letters `'a`' +`'A`' `'b`' `'B`' are allowed).&] +[s3; &] +[s4; &] +[s5;:CParser`:`:ReadNumber`(int`): [_^uint32^ uint32]_[* ReadNumber]([@(0.0.255) int]_[*@3 ba +se]_`=_[@3 10])&] +[s2;%% Reads a number with the given numeric [%-*C@3 base]. If [* IsNumber]([%-*@3 base]) +is false, throws an [^topic`:`/`/Core`/src`/CParser`$en`-us`#CParser`:`:Error`:`:struct^ C +Parser`::Error.]&] +[s3; &] +[s4; &] +[s5;:CParser`:`:ReadNumber64`(int`): [_^uint64^ uint64]_[* ReadNumber64]([@(0.0.255) int]_[*@3 b +ase]_`=_[@3 10])&] +[s2;%% Reads 64`-bit unsigned number with given numeric [%-*@3 base].&] +[s3;%% &] +[s4; &] +[s5;:CParser`:`:IsDouble`(`)const: [@(0.0.255) bool]_[* IsDouble]()_[@(0.0.255) const]&] +[s2;%% Test for floating point number at current position `- there +either must be digit, or `'`+`' or `'`-`' sign followed by any +number of spaces and digit.&] +[s3;%% &] +[s4; &] +[s5;:CParser`:`:IsDouble2`(`)const: [@(0.0.255) bool]_[* IsDouble2]()_[@(0.0.255) const]&] +[s2;%% Similar to IsDouble, but also allows double number to start +with decimal point, like `'.21`'.&] +[s3; &] +[s4; &] +[s5;:CParser`:`:ReadDouble`(`): [@(0.0.255) double]_[* ReadDouble]()&] +[s2;%% Reads a floating point number with C based lexical rules. +As an exception to C lexical rules, ReadDouble also recognizes +form starting with decimal point, like `".21`".&] +[s3; &] +[s4; &] +[s5;:CParser`:`:IsString`(`)const: [@(0.0.255) bool]_[* IsString]()_[@(0.0.255) const]&] +[s2;%% Tests for C`-like string literal at the current position. +Same as [* IsChar](`'`\`"`');&] +[s3; &] +[s4; &] +[s5;:CParser`:`:ReadOneString`(bool`): [_^String^ String]_[* ReadOneString]([@(0.0.255) boo +l]_[*@3 chkend]_`=_[@(0.0.255) true])&] +[s2;%% Reads C`-like string literal from current position (follow +C lexical rules, including escape codes). Literals on different +lines are not concatenated (unlike C). When [%-*C@3 chkend] is +[* false], [* ReadOneString ]is more permissive as it allows unterminated +string literals `- string is then also delimited by end of line +or text.&] +[s3; &] +[s4; &] +[s5;:CParser`:`:ReadString`(bool`): [_^String^ String]_[* ReadString]([@(0.0.255) bool]_[*@3 c +hkend]_`=_[@(0.0.255) true])&] +[s2;%% Reads C`-like string literal from current position (follow +C lexical rules, including escape codes). Literals on different +lines are concatenated (as in C). When [%-*C@3 chkend] is [* false], +[* ReadOneString ]is more permissive as it allows unterminated +string literals `- string is then also delimited by end of line +or text.&] +[s3; &] +[s4; &] +[s5;:CParser`:`:ReadOneString`(int`,bool`): [_^String^ String]_[* ReadOneString]([@(0.0.255) i +nt]_[*@3 delim], [@(0.0.255) bool]_[*@3 chkend]_`=_[@(0.0.255) true])&] +[s2;%% Reads C`-like string literal from current position (follow +C lexical rules, including escape codes) with different delimiter +[%-*C@3 delim] than `'`\`"`'. Literals on different lines are not +concatenated (unlike C). When [%-*C@3 chkend] is false, [* ReadOneString +]is more permissive as it allows unterminated string literals +`- string is then also delimited by end of line or text.&] +[s3; &] +[s4; &] +[s5;:CParser`:`:ReadString`(int`,bool`): [_^String^ String]_[* ReadString]([@(0.0.255) int]_ +[*@3 delim], [@(0.0.255) bool]_[*@3 chkend]_`=_[@(0.0.255) true])&] +[s2;%% Reads C`-like string literal from current position (follow +C lexical rules, including escape codes). with different delimiter +[%-*C@3 delim] than `'`\`"`'. Literals on different lines are concatenated +(as in C). When [%-*C@3 chkend] is false, [* ReadOneString ]is more +permissive as it allows unterminated string literals `- string +is then also delimited by end of line or text.&] +[s3; &] +[s4; &] +[s5;:CParser`:`:SkipTerm`(`): [@(0.0.255) void]_[* SkipTerm]()&] +[s2;%% Skips a single symbol. Decimal numbers, identifiers and string +literals are skipped as whole symbols, otherwise input position +is advanced by 1 character.&] +[s3; &] +[s4; &] +[s5;:CParser`:`:GetPtr`(`)const: [@(0.0.255) const]_[@(0.0.255) char]_`*[* GetPtr]()_[@(0.0.255) c +onst]&] +[s2;%% Returns a pointer to the current position.&] +[s3; &] +[s4; &] +[s5;:CParser`:`:GetSpacePtr`(`)const: [@(0.0.255) const]_[@(0.0.255) char]_`*[* GetSpacePtr +]()_[@(0.0.255) const]&] +[s2;%% Returns a pointer to the position of last whitespace before +current position, or current position if there was none whitespace. +This pointer is set at the start of Space call, Space is called +after each token processed (unless SkipWhitespaces is false).&] +[s3; &] +[s4; &] +[s5;:CParser`:`:GetPos`(`)const: [_^CParser`:`:Pos^ Pos]_[* GetPos]()_[@(0.0.255) const]&] +[s2;%% Gets the current position. It contains the pointer as well +as the line number and the filename.&] +[s3; &] +[s4; &] +[s5;:CParser`:`:SetPos`(const CParser`:`:Pos`&`): [@(0.0.255) void]_[* SetPos]([@(0.0.255) c +onst]_[_^topic`:`/`/Core`/src`/CParser`$en`-us`#CParser`:`:Pos`:`:struct^ CParser`: +:Pos][@(0.0.255) `&]_[*@3 p])&] +[s2; [%% Sets the current position to ][*@3 p][%% . ][*@3 p ]can be from +a different [* CParser].&] +[s3; &] +[s4; &] +[s5;:CParser`:`:IsEof`(`)const: [@(0.0.255) bool]_[* IsEof]()_[@(0.0.255) const]&] +[s2;%% Test for the end of input text.&] +[s3; &] +[s4; &] +[s5;:CParser`:`:operator bool`(`)const: [* operator_bool]()_[@(0.0.255) const]&] +[s2; Returns [* true ]if end of file has not been reached, [* false ]otherwise.&] +[s3; &] +[s4; &] +[s5;:CParser`:`:GetLine`(`)const: [@(0.0.255) int]_[* GetLine]()_[@(0.0.255) const]&] +[s2; Returns the current line number.&] +[s3; &] +[s4; &] +[s5;:CParser`:`:GetColumn`(int`)const: [@(0.0.255) int]_[* GetColumn]([@(0.0.255) int]_[*@3 t +absize])_[@(0.0.255) const]&] +[s2;%% Returns the current column, with given [%-*@3 tabsize].&] +[s3;%% &] +[s4; &] +[s5;:CParser`:`:GetFileName`(`)const: [_^String^ String]_[* GetFileName]()_[@(0.0.255) cons +t]&] +[s2; Returns the actual filename.&] +[s3;%% &] +[s3; &] +[s4; &] +[s5;:CParser`:`:LineInfoComment`(const String`&`,int`,int`): [@(0.0.255) static] +[_^String^ String]_[* LineInfoComment]([@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_ +[*@3 filename], [@(0.0.255) int]_[*@3 line]_`=_[@3 1], [@(0.0.255) int]_[*@3 column]_`=_[@3 1]) +&] +[s2;%% This function creates a special comment that when parsed by +CParser, switches filename and line number. This is supposed +to help in situations when parsed text is actually a result of +e.g. include operations of some original files, to improve error +reporting. Not that such comment is lexically treated as comment. +Comment is created using LINEINFO`_ESC characters begin/end delimiter +(current value is `'`\2`').&] +[s3;%% &] +[s4; &] +[s5;:CParser`:`:GetLineInfoComment`(int`)const: [_^String^ String]_[* GetLineInfoComment]( +[@(0.0.255) int]_[*@3 tabsize]_`=_[@3 4])_[@(0.0.255) const]&] +[s2;%% Calls LineInfoComment(GetFileName(), GetLine(), GetColumn([%-*@3 tabsize])) +`- creates a comment to identify current file position in further +processing.&] +[s3; &] +[s4; &] +[s5;:CParser`:`:Set`(const char`*`,const char`*`,int`): [@(0.0.255) void]_[* Set]([@(0.0.255) c +onst]_[@(0.0.255) char]_`*[*@3 ptr], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 fn], +[@(0.0.255) int]_[*@3 line]_`=_[@3 1])&] +[s2;%% Sets the new input string (with filename and line).&] +[s3;%% &] +[s4; &] +[s5;:CParser`:`:Set`(const char`*`): [@(0.0.255) void]_[* Set]([@(0.0.255) const]_[@(0.0.255) c +har]_`*[*@3 ptr])&] +[s2;%% Sets the new input string.&] +[s3;%% &] +[s0;%% &] +[ {{10000@(113.42.0) [s0;%% [*@7;4 CParser`::Error]]}}&] +[s3; &] +[s1;:CParser`:`:Error`:`:struct: [@(0.0.255)3 struct][3 _][*3 Error][3 _:_][@(0.0.255)3 public][3 _ +][*@3;3 Exc]&] +[s0; &] +[s0;%% Type used as [^topic`:`/`/Core`/src`/CParser`$en`-us`#CParser`:`:class^ CParser] +exception. Contains single [^topic`:`/`/Core`/src`/String`$en`-us`#String`:`:class^ S +tring] with error description.&] +[s0;/%% &] +[s0; [%%/ Derived from][%% ][^topic`:`/`/Core`/src`/Exc`$en`-us`#Exc`:`:class^ Exc]&] +[s3;%% &] +[s0;%% &] +[ {{10000F(128)G(128)@1 [s0;%% [* Constructor Detail]]}}&] +[s3; &] +[s5;:Exc`:`:Exc`(`): [* Exc]()&] +[s2;%% Default constructor. Error message is empty.&] +[s3;%% &] +[s4; &] +[s5;:Exc`:`:Exc`(const String`&`): [* Exc]([@(0.0.255) const]_[_^String^ String][@(0.0.255) `& +]_[*@3 desc])&] +[s2; [%% Construct an ][%%* Error][%% with ][*@3 desc] as an error message.&] +[s3;%% &] +[s0;%% &] +[s0;%% &] +[s0;%% &] +[ {{10000@(113.42.0) [s0;%% [*@7;4 CParser`::Pos]]}}&] +[s3;%% &] +[s1;:CParser`:`:Pos`:`:struct: [@(0.0.255)3 struct][3 _][*3 Pos]&] +[s3; &] +[s5;:`:`:CParser`:`:Pos`:`:struct:%% Position in parsed text.&] +[s3;%% &] +[ {{10000F(128)G(128)@1 [s0;%% [* Constructor Detail]]}}&] +[s3; &] +[s5;:CParser`:`:Pos`:`:Pos`(const char`*`,int`,String`): [* Pos]([@(0.0.255) const]_[@(0.0.255) c +har]_`*[*@3 ptr]_`=_NULL, [@(0.0.255) int]_[*@3 line]_`=_[@3 1], [_^String^ String]_[*@3 fn]_ +`=_Null)&] +[s2; Constrcuts a [* Pos ]based on pointer in input buffer, line number +and anme of the file.&] +[s7;%% [%-*@3 ptr]-|Pointer to the position in the input text &] +[s7;%% [%-*@3 line]-|Line number.&] +[s7;%% [%-*@3 fn]-|Filename.&] +[s3; &] +[ {{10000F(128)G(128)@1 [s0;%% [* Public Member List]]}}&] +[s3; &] +[s5;:CParser`:`:Pos`:`:ptr: [@(0.0.255) const]_[@(0.0.255) char]_`*[* ptr]&] +[s2;%% Pointer to the position in the input text &] +[s3;%% &] +[s4; &] +[s5;:CParser`:`:Pos`:`:wspc: [@(0.0.255) const]_[@(0.0.255) char]_`*[* wspc]&] +[s2;%% Pointer to the position of last whitespace before current +position, or current position if there was none whitespace.&] +[s3; &] +[s4; &] +[s5;:CParser`:`:Pos`:`:lineptr: [@(0.0.255) const]_[@(0.0.255) char]_`*[* lineptr]&] +[s2;%% Pointer to the beginning of the last line.&] +[s3; &] +[s4; &] +[s5;:CParser`:`:Pos`:`:line: [@(0.0.255) int]_[* line]&] +[s2;%% Line number.&] +[s3;%% &] +[s4; &] +[s5;:CParser`:`:Pos`:`:fn: [_^topic`:`/`/Core`/src`/String`$en`-us`#String`:`:class^ St +ring]_[* fn]&] +[s2;%% Filename.&] +[s3;%% &] +[s4; &] +[s5;:CParser`:`:Pos`:`:GetColumn`(int`)const: [@(0.0.255) int]_[* GetColumn]([@(0.0.255) in +t]_[*@3 tabsize]_`=_[@3 4])_[@(0.0.255) const]&] +[s2;%% Returns the column, for given [%-*@3 tabsize].&] +[s0;%% &] +[s0;%% &] +[ {{10000@(113.42.0) [s0;%% [*@7;4 C`-like string literal formatting]]}}&] +[s3;%% &] +[s0;%% [* AsCString] routines produce C`-like literals (compatible +with [^topic`:`/`/Core`/src`/CParser`$en`-us`#CParser`:`:class^ CParser]) +from character data:&] +[s0;%% &] +[s5;:AsCString`(const char`*`,const char`*`,int`,const char`*`,dword`): [_^String^ Stri +ng]_[* AsCString]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 s], [@(0.0.255) const]_[@(0.0.255) c +har]_`*[*@3 end], [@(0.0.255) int]_[*@3 linemax]_`=_INT`_MAX, [@(0.0.255) const]_[@(0.0.255) c +har]_`*[*@3 linepfx]_`=_NULL, [_^dword^ dword]_[*@3 flags]_`=_[@3 0])&] +[s2;%% Creates C`-like literal.&] +[s7;%% [%-*@3 s]-|Pointer to characters.&] +[s7;%% [%-*@3 end] -|End of characters array (`'`\0`' characters are +allowed inside data).&] +[s7;%% [%-*@3 linemax] -|Maximal length of line. If this is exceeded, +ending `"`\`"`\n`" and [@3 linepfx] is inserted and literal continues +on the new line.&] +[s7;%% [%-*@3 linepfx]-|Pointer to zero`-terminated text to be inserted +at the beginning of the line when the line length is exceeded.&] +[s7;%% [%-*@3 flags]-|a combination of flags:&] +[s0;~~~1408;%% -|ASCSTRING`_SMART-|breaks string into lines when too +long&] +[s0;~~~1408;%% -|ASCSTRING`_OCTALHI-|escapes characters >128&] +[s0;~~~1408;%% -|ASCSTRING`_JSON-|uses JSON notation for escapes &] +[s0;~~~1408;%% -|(`\u0001 instead of `\001)&] +[s0;~~~1408;%% &] +[s7;%% [*/ Return value]-|C`-like literal.&] +[s3;%% &] +[s4; &] +[s5;:AsCString`(const char`*`,int`,const char`*`,dword`): [_^String^ String]_[* AsCString +]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 s], [@(0.0.255) int]_[*@3 linemax]_`=_INT`_MA +X, [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 linepfx]_`=_NULL, [_^dword^ dword]_[*@3 flag +s]_`=_[@3 0])&] +[s2;%% Creates C`-like literal from zero terminated character data. +Same as [^topic`:`/`/Core`/src`/CParser`$en`-us`#AsCString`(const char`*`,const char`*`,int`,const char`*`,dword`)^ A +sCString]([%-*@3 s],[%- _][%-*@3 s][%- _]`+[%- _][* strlen]([%-*@3 s]),[%- _][%-*@3 linemax],[%- _][%-*@3 l +inepfx],[%- _][%-*@3 flags]).&] +[s3;%% &] +[s4; &] +[s5;:AsCString`(const String`&`,int`,const char`*`,dword`): [_^String^ String]_[* AsCStri +ng]([@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 s], [@(0.0.255) int]_[*@3 linem +ax]_`=_INT`_MAX, [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 linepfx]_`=_NULL, +[_^dword^ dword]_[*@3 flags]_`=_[@3 0])&] +[s2;%% Creates C`-like literal from [^topic`:`/`/Core`/src`/String`$en`-us`#String`:`:class^ S +tring]. String can contain zero characters. Same as [^topic`:`/`/Core`/src`/CParser`$en`-us`#AsCString`(const char`*`,const char`*`,int`,const char`*`,dword`)^ A +sCString]([%-*@3 s].[^topic`:`/`/Core`/src`/String`$en`-us`#String0`:`:Begin`(`)const^ B +egin](),[%- _][%-*@3 s].[^topic`:`/`/Core`/src`/String`$en`-us`#String0`:`:End`(`)const^ E +nd](),[%- _][%-*@3 linemax],[%- _][%-*@3 linepfx],[%- _][%-*@3 flags]).&] +[s3;%% &] [s0; ]] \ No newline at end of file diff --git a/uppsrc/Core/src.tpp/Callbacks$en-us.tpp b/uppsrc/Core/src.tpp/Callbacks_en-us.tpp similarity index 97% rename from uppsrc/Core/src.tpp/Callbacks$en-us.tpp rename to uppsrc/Core/src.tpp/Callbacks_en-us.tpp index 70008a0ca..433f2d544 100644 --- a/uppsrc/Core/src.tpp/Callbacks$en-us.tpp +++ b/uppsrc/Core/src.tpp/Callbacks_en-us.tpp @@ -1,417 +1,417 @@ -topic "Callbacks"; -[2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,2#27521748481378242620020725143825:desc] -[0 $$3,0#96390100711032703541132217272105:end] -[H6;0 $$4,0#05600065144404261032431302351956:begin] -[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] -[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] -[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] -[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] -[b42;2 $$9,9#13035079074754324216151401829390:normal] -[{_}%EN-US -[ {{10000@(113.42.0) [s0; [*@7;4 Callbacks]]}}&] -[s9; [/ Note: Callbacks are now deprecated. Use Function/Event/Gate -instead!]&] -[s9; Callbacks can be described as a very generalized form of function -pointers. Each Callback represents some kind of action (usually -calling a certain function or a certain object method) that can -be invoked at any time.&] -[s9; If you are happy enough to be able to use C`+`+11, you can also -assign C`+`+ lambda to Callback using operator << (see bellow).&] -[s9; There are several basic callback types, depending on number -of parameters passed and return value. In order to keep description -of callbacks short, all these types are described in a single -`"parametrized`" description, with parameters [*/@(128.0.255) highlighted].&] -[s9; Generally, callbacks are now defined for up to 5 parameters -of target (function, method, another callback).&] -[s0; &] -[s0; Callback types:&] -[s3; &] -[ {{1514:5185:1933:1368h1;t/17b/17@(204) [s0;%- [*/@(128.0.255)1 CallbackType]] -:: [s0;%- [*/@(128.0.255)1 parameters]] -:: [s0;%- [*/@(128.0.255)1 arguments]] -:: [s0;%- [*/@(128.0.255)1 return`_type]] -::@2 [s0;:Callback`:`:class:%- [*C+75 Callback]] -:: [s0;%- [*/C@(0.0.255)+75 none]] -:: [s0;%- [*/C@(0.0.255)+75 none]] -:: [s0;%- [*/C+75 void]] -:: [s0;:Callback1`:`:class:%- [*C+75 Callback1]] -:: [s0;%- [*/C+75 class P1]] -:: [s0;%- [*/C+75 P1]] -:: [s0;%- [*/C+75 void]] -:: [s0;:Callback2`:`:class: [*C+75 Callback2]] -:: [s0; [*/C+75 class P1, class P2]] -:: [s0; [*/C+75 P1, P2]] -:: [s0; [*/C+75 void]] -:: [s0;:Callback3`:`:class: [*C+75 Callback3]] -:: [s0; [*/C+75 class P1, class P2, class P3]] -:: [s0; [*/C+75 P1, P2, P3]] -:: [s0; [*/C+75 void]] -:: [s0;:Callback4`:`:class: [*C+75 Callback4]] -:: [s0; [*/C+75 class P1, class P2, class P3, class P4]] -:: [s0; [*/C+75 P1, P2, P3, P4]] -:: [s0; [*/C+75 void]] -:: [s0;:Callback5`:`:class: [*C+75 Callback5]] -:: [s0; [*/C+75 class P1, ... , class P5]] -:: [s0; [*/C+75 P1, ... , P5]] -:: [s0; [*/C+75 void]] -:: [s0;:Gate`:`:class: [*C+75 Gate]] -:: [s0; [*/C@(0.0.255)+75 none]] -:: [s0; [*/C@(0.0.255)+75 none]] -:: [s0; [*/C+75 bool]] -:: [s0;:Gate1`:`:class: [*C+75 Gate1]] -:: [s0; [*/C+75 class P1]] -:: [s0; [*/C+75 P1]] -:: [s0; [*/C+75 bool]] -:: [s0;:Gate2`:`:class: [*C+75 Gate2]] -:: [s0; [*/C+75 class P1, class P2]] -:: [s0; [*/C+75 P1, P2]] -:: [s0; [*/C+75 bool]] -:: [s0;:Gate3`:`:class: [*C+75 Gate3]] -:: [s0; [*/C+75 class P1, class P2, class P3]] -:: [s0; [*/C+75 P1, P2, P3]] -:: [s0; [*/C+75 bool]] -:: [s0;:Gate4`:`:class: [*C+75 Gate4]] -:: [s0; [*/C+75 class P1, class P2, class P3, class P4]] -:: [s0; [*/C+75 P1, P2, P3, P4]] -:: [s0; [*/C+75 bool]] -:: [s0;:Gate5`:`:class: [*C+75 Gate5]] -:: [s0; [*/C+75 class P1, ... , class P5]] -:: [s0; [*/C+75 P1, ... , P5]] -:: [s0; [*/C+75 bool]]}}&] -[s0; &] -[s0; `[ template_<[*/@(128.0.255) parameters]> `]&] -[s0; [%- class_][*/@(128.0.255) CallbackType]&] -[s2; &] -[s2; Callback type. Callbacks are moveable types with fast deep copy -(using reference counting).&] -[s2; &] -[s0; &] -[s0;%- explicit_[%%*/@(128.0.255) CallbackType]([%%*/@(128.0.255) CallbackType]Action<[%%*/@(128.0.255) a -rguments>]_`*[*@3 newaction])&] -[s2; Constructs callback based from new action.&] -[s7; [%-*C@3 newaction]-|Action. Must be created using [* new] operator. -Callback takes over its ownership.&] -[s3; &] -[s0; &] -[s0;:Callback1`:`:Callback1`(`):%- [%%*/@(128.0.255) CallbackType]()&] -[s2; Creates an empty callback.&] -[s3; &] -[s4; &] -[s0;:Callback1`:`:Callback1`(const Callback1`&`):%- [%%*/@(128.0.255) CallbackType](con -st_[%%*/@(128.0.255) CallbackType]`&_[*@3 c])&] -[s2; Copy constructor. &] -[s7; [%-*C@3 c]-|Source callback.&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:Callback`:`:Callback`(Upp`:`:AnyLambda``):%- [@(0.0.255) template]_<[@(0.0.255) c -lass]_[*@4 T]>_[%%*/@(128.0.255) CallbackType]([_^Upp`:`:AnyLambda^ AnyLambda]<[*@4 T]>_[*@3 l -])&] -[s2; Constructor from C`+`+11 lambda. Note that AnyLambda intermediate -type is necessarry as std`::function appears to have `"catch all`" -templated constructor, which creates overloading problems. Use -`'lambda`' helper function to convert lambda to AnyLambda (or -use operator<<).&] -[s3; &] -[s4; &] -[s0;:`:`:Callback1`:`:`~Callback1`(`):%- `~[%%*/@(128.0.255) CallbackType]()&] -[s2; Destructor.&] -[s3; &] -[s4; &] -[s0;:`:`:Callback1`:`:Clear`(`):%- void_[* Clear]()&] -[s2; Empties the callback.&] -[s3; &] -[s4; &] -[s0;:`:`:Gate`:`:ClearTrue`(`):%- void_[* ClearTrue]()&] -[s6; Only in Gate callbacks.&] -[s2; Clears Gate. After this method is invoked, the Gate performs -no actions but returns true.&] -[s3; &] -[s4; &] -[s0;:`:`:Gate`:`:ClearFalse`(`):%- void_[* ClearFalse]()&] -[s6; Only in Gate callbacks.&] -[s2; Clears Gate. After this method is invoked, the Gate performs -no actions and returns false. This is the same as Clear.&] -[s3; &] -[s4; &] -[s0;:`:`:Callback1`:`:operator bool`(`)const:%- [* operator_bool]()_const&] -[s7; [*/ Return value]-|True if the callback is valid. Invoking a valid -callback invokes an action.&] -[s3; &] -[s4; &] -[s0;:`:`:Callback1`:`:Execute`(P1`)const:%- [*/@(128.0.255) return`_type]_[* Execute]([%%*/@(128.0.255) a -rguments])_const&] -[s2; Executes the callback with given set of arguments.&] -[s3; &] -[s4; &] -[s0;:`:`:Callback1`:`:operator`(`)`(P1`)const:%- [%%*/@(128.0.255) return`_type]_[* opera -tor()]([%%*/@(128.0.255) arguments])_const&] -[s2; Same as the Execute method.&] -[s3; &] -[s0; &] -[s0;:Callback1Action`:`:struct:%- `[ template_<[*/@(128.0.255) parameters]> -`]&] -[s0;%- struct_[*/@(128.0.255) CallbackType][* Action]&] -[s2; This is the abstract base class for callback action implementations. -Callback holds reference counted pointer to instance of class -derived from this class.&] -[s3; &] -[s0; &] -[s0;:Callback1Action`:`:Callback1Action`(`):%- [*/@(128.0.255) CallbackType][* Action]()&] -[s2; Constructor. Assigns 1 to the reference count.&] -[s3; &] -[s4; &] -[s0;:Callback1Action`:`:`~Callback1Action`(`):%- `~[*/@(128.0.255) CallbackType][* Action -]()&] -[s2; Virtual destructor.&] -[s3; &] -[s4; &] -[s0;:Callback1Action`:`:Execute`(P1`):%- virtual [%%*/@(128.0.255) return`_type]_[* Execu -te]([*/@(128.0.255) arguments])_`=_[@3 0]&] -[s2; Performs the action with specified set of arguments.&] -[s3; &] -[s4; &] -[s0;:Callback1Action`:`:IsValid`(`)const:%- virtual bool_[* IsValid]()_const&] -[s7; [*/ Return value]-|true if the Action is valid. Default implementation -returns true.&] -[s3; &] -[s4; &] -[s0;:Callback1Action`:`:count:%- Atomic_[* count]&] -[s2; Member variable used as reference count.&] -[s3; &] -[s0;%- &] -[s0;%- &] -[s0;%- &] -[ {{10000@(113.42.0) [s0; [*@7;4 Common Callback/Gate functions]]}}&] -[s3; &] -[s0;:`:`:callback`(OBJECT`*`,void`(METHOD`:`:`*`)`(P1 p1`)`): template_&] -[s0;%- [*/@(128.0.255) CallbackType]<[*/@(128.0.255) arguments]> [* callback]([*@4 OBJECT]_`* -[*@3 object], void_([*@4 METHOD]`::`*[*@3 method])([%%*/@(128.0.255) arguments]))&] -[s2; Creates a callback that invokes the specified method of the -specified object.&] -[s7; [%-*C@3 object]-|Pointer to the object.&] -[s7; [%-*C@3 method]-|Pointer to the method.&] -[s7; [*/ Return value]-|Created callback.&] -[s3; &] -[s4; &] -[s0;:`:`:callback`(OBJECT`*`,void`(METHOD`:`:`*`)`(P1 p1`)`): template_&] -[s0;%- [*/@(128.0.255) CallbackType]<[*/@(128.0.255) arguments]> [* callback](const -[*@4 OBJECT]_`*[*@3 object], void_([*@4 METHOD]`::`*[*@3 method])([%%*/@(128.0.255) argument -s]) const)&] -[s2; Constant variant of callback. The created Callback object invokes -a constant method of the object.&] -[s7; [%-*C@3 object]-|Pointer to the object.&] -[s7; [%-*C@3 method]-|Pointer to the constant method to invoke.&] -[s7; [*/ Return value]-|Created callback.&] -[s3; &] -[s4; &] -[s0;:`:`:pteback`(OBJECT`*`,void`(METHOD`:`:`*`)`(P1 p1`)`): `[ template_<[*/@(128.0.255) p -arameters]> `]&] -[s0;%- [*/@(128.0.255) CallbackType][%% <][%%*/@(128.0.255) arguments][%% > -][* pteback]([*@4 OBJECT]_`*[*@3 object], void_([*@4 METHOD]`::`*[*@3 method])([%%*/@(128.0.255) a -rguments]))&] -[s2; Creates a Callback object which is similar to the one created -by callback, but which can be safely invoked even after destruction -of [@3 object] (results in no operation).&] -[s7; [%-*C@3 object]-|Pointer to the object. Must be an ancestor of -the [^topic`:`/`/Core`/src`/PtePtr`$en`-us`#`:`:Pte`:`:template ` class Pte^ P -te] class.&] -[s7; [%-*C@3 method]-|Pointer to the method.&] -[s7; [*/ Return value]-|Created callback.&] -[s3; &] -[s4; &] -[s0;:`:`:callback`(void`(`*`)`(P1 p1`)`): `[ template_<[*/@(128.0.255) parameters]> -`]&] -[s0;%- [*/@(128.0.255) CallbackType][%% <][%%*/@(128.0.255) arguments][%% > -][* callback](void_(`*[*@3 fn])([%%*/@(128.0.255) arguments]))&] -[s2; Creates a Callback object that invokes a non`-member function.&] -[s7; [%-*C@3 fn]-|Pointer to the function.&] -[s7; [*/ Return value]-|Created callback.&] -[s3; &] -[s4; &] -[s0;:Proxy`(Callback1``&`): `[ template_<[*/@(128.0.255) parameters]> -`]&] -[s0;%- [*/@(128.0.255) CallbackType][%% <][%%*/@(128.0.255) arguments][%% >] -[* Proxy]([*/@(128.0.255) CallbackType][%% <][%%*/@(128.0.255) arguments][%% >]`&_[*@3 cb])&] -[s2; Creates a Callback object that invokes another Callback object. -Useful for callback routing (e.g. when some parent Ctrl wants -to reroute some of its child callbacks via its interface). Note -that this function stores a reference to the target callback -in the created callback `- storing callbacks that are used as -Proxy targets in Vector flavor of containers is not a good idea.&] -[s7; [%-*C@3 cb]-|Target callback.&] -[s7; [*/ Return value]-|Created callback.&] -[s3; &] -[s4; &] -[s0;:callback`(Callback1``,Callback1``): `[ template_<[*/@(128.0.255) paramet -ers]> `]&] -[s0;%- [%%*/@(128.0.255) CallbackType][%% <][%%*/@(128.0.255) arguments][%% > -][* callback]([%%*/@(128.0.255) CallbackType][%% <][%%*/@(128.0.255) arguments][%% > -]_[*@3 cb1], [%%*/@(128.0.255) CallbackType][%% <][%%*/@(128.0.255) arguments][%% > -]_[*@3 cb2])&] -[s2; Creates a Callback object that invokes two other callbacks. -Note that this function stores a reference to the target callbacks -in the created callback `- storing callbacks that are used as -targets here in Vector flavor of containers is not a good idea. -For Gate callbacks, the result of this operation is the boolean -value returned by [*@3 cb2].&] -[s7; [%-*C@3 cb1]-|First target callback.&] -[s7; [%-*C@3 cb2]-|Second target callback.&] -[s7; [*/ Return value]-|Created callback.&] -[s3; &] -[s4; &] -[s0;:operator`<`<`(Callback1``&`,Callback1``): `[ template_<[*/@(128.0.255) p -arameters]> `]&] -[s0;%- [%%*/@(128.0.255) CallbackType][%% <][%%*/@(128.0.255) arguments][%% >]`&_[* operator<<]( -[%%*/@(128.0.255) CallbackType][%% <][%%*/@(128.0.255) arguments][%% > -]`&_[*@3 a], [%%*/@(128.0.255) CallbackType][%% <][%%*/@(128.0.255) arguments][%% >]_[*@3 b]) -&] -[s2; Operator variant of the previous function. Allows chaining thus -imitating callback insertion.&] -[s7; [%-*C@3 a]-|First callback. Its value is replaced by a callback -that calls both the first and the second callback.&] -[s7; [%-*C@3 b]-|Second callback.&] -[s7; [*/ Return value]-|Reference to the first callback.&] -[s3; &] -[s4;%- &] -[s0;:operator`<`<`(Callback1``&`,Callback1``): `[ template_<[*/@(128.0.255) p -arameters]> `]&] -[s0;%- [%%*/@(128.0.255) CallbackType][%% <][%%*/@(128.0.255) arguments][%% >]`&_[* operator<<]( -[%%*/@(128.0.255) CallbackType][%% <][%%*/@(128.0.255) arguments][%% > -]`&_[*@3 a], [%%*/@(128.0.255) C`+`+11Lambda]_[*@3 b])&] -[s2; Variant of merging callbacks that can be used for C`+`+11 lambdas.&] -[s3; &] -[s0; &] -[ {{10000@(113.42.0) [s0; [*@7;4 Storing arguments in callback]]}}&] -[s0; &] -[s0; It is possible to store some arguments that are passed to target -(function or method) as parameters when creating. If simultaneously -passing other parameters in callback call, those passed on call -represent beginning arguments and those defined in callback creation -fill the rest of arguments.&] -[s0; &] -[s0; Again, all this is defined for up to 5 target parameters:&] -[s0; &] -[s0;:`:`:callback1`(Object`*`,void`(M`:`:`*`)`(P`)`,T`):%- template_&] -[s0;:`:`:callback1`(Object`*`,void`(M`:`:`*`)`(P`)`,T`):%- [%%*/@(128.0.255) CallbackTy -pe][%% <][%%*/@(128.0.255) arguments][%% >]_[* callback1]([*@4 Object]_`*[*@3 object], -void_([*@4 M]`::`*[*@3 method])([*@4 P1], ...), [*@4 T1]_[*@3 arg1], ...)&] -[s3;%- &] -[s0;:`:`:callback1`(const Object`*`,void`(M`:`:`*`)`(P`)const`,T`):%- template_&] -[s0;:`:`:callback1`(const Object`*`,void`(M`:`:`*`)`(P`)const`,T`):%- [%%*/@(128.0.255) C -allbackType][%% <][%%*/@(128.0.255) arguments][%% >]_[* callback1]([*@4 Object]_`*[*@3 object -], void_([*@4 M]`::`*[*@3 method])([*@4 P1], ...) const, [*@4 T1]_[*@3 arg1], -...)&] -[s3;%- &] -[s0;:`:`:pteback1`(Object`*`,void`(M`:`:`*`)`(P`)`,T`):%- template_&] -[s0;:`:`:pteback1`(Object`*`,void`(M`:`:`*`)`(P`)`,T`):%- [%%*/@(128.0.255) CallbackTyp -e][%% <][%%*/@(128.0.255) arguments][%% >]_[* pteback1]([*@4 Object]_`*[*@3 object], -void_([*@4 M]`::`*[*@3 method])([*@4 P1], ...), [*@4 T1]_[*@3 arg1], ...)&] -[s3;%- &] -[s0;:`:`:pteback1`(Object`*`,void`(M`:`:`*`)`(P`)const`,T`):%- template_&] -[s0;:`:`:pteback1`(Object`*`,void`(M`:`:`*`)`(P`)const`,T`):%- [%%*/@(128.0.255) Callba -ckType][%% <][%%*/@(128.0.255) arguments][%% >]_[* pteback1]([*@4 Object]_`*[*@3 object], -void_([*@4 M]`::`*[*@3 method])([*@4 P1], ...) const, [*@4 T1]_[*@3 arg1], -...)&] -[s3;%- &] -[s0;:`:`:callback1`(void`(`*`)`(P`)`,T`):%- template_&] -[s0;:`:`:callback1`(void`(`*`)`(P`)`,T`):%- [%%*/@(128.0.255) CallbackType][%% <][%%*/@(128.0.255) a -rguments][%% >]_[* callback1](void_(`*[*@3 fn])([*@4 P1], ...), [*@4 T1]_[*@3 arg], -...)&] -[s0;%- &] -[s2; [%-*@4 P1] ([%-*@4 P2, P3 ][%- ...]) are arguments passed on method -invocation, [%-*@4 T1] ([%-*@4 T2, T3 ][%- ...]) are parameters stored -in Callback object.&] -[s3; &] -[s0; &] -[s0;%- &] -[ {{10000@(113.42.0) [s0; [*@7;4 Callback macros]]}}&] -[s9; Callback macros reduce verbosity of instance method callbacks. -They expect CLASSNAME to be typedef`-ed as the type of current -class and return method callbacks bound to the [*@(0.0.255) this] -pointer.&] -[s3; &] -[s0; &] -[s0;:`:`:THISBACK`(x`):%- [* THISBACK]([*@3 x])&] -[s2; Expands to callback(this, `&CLASSNAME`::[@3 m]).&] -[s7; [%-*C@3 m]-|Name of method.&] -[s3; &] -[s4; &] -[s0;:`:`:THISBACK1`(x`, arg`):%- [* THISBACK1]([*@3 x], [*@3 arg])&] -[s2; Expands to callback1(this, `&CLASSNAME`::[@3 m], [@3 arg]).&] -[s7; [%-*C@3 m]-|Name of method.&] -[s7; [%-*C@3 arg]-|Additional parameter.&] -[s3; &] -[s4; &] -[s0;:`:`:THISBACK2`(m`, a`, b`):%- [* THISBACK2]([*@3 m], [*@3 a], [*@3 b])&] -[s2; Expands to callback2(this, `&CLASSNAME`::[@3 m], [@3 a],[@3 b]).&] -[s7; [%-*C@3 m]-|Name of method.&] -[s7; [%-*C@3 a]-|First additional parameter.&] -[s7; [%-*C@3 b]-|Second additional parameter.&] -[s3; &] -[s4; &] -[s0;:`:`:PTEBACK`(x`):%- [* PTEBACK]([*@3 x])&] -[s2; Expands to pteback(this, `&CLASSNAME`::[@3 m]).&] -[s7; [%-*C@3 m]-|Name of method.&] -[s3; &] -[s4; &] -[s0;:`:`:PTEBACK1`(x`, arg`):%- [* PTEBACK1]([*@3 x], [*@3 arg])&] -[s2; Expands to pteback1(this, `&CLASSNAME`::[@3 m], [@3 arg]).&] -[s7; [%-*C@3 m]-|Name of method.&] -[s7; [%-*C@3 arg]-|Additional parameter.&] -[s3; &] -[s4; &] -[s0;:`:`:PTEBACK2`(m`, a`, b`):%- [* PTEBACK2]([*@3 m], [*@3 a], [*@3 b])&] -[s2; Expands to pteback2(this, `&CLASSNAME`::[@3 m], [@3 a],[@3 b]).&] -[s7; [%-*C@3 m]-|Name of method.&] -[s7; [%-*C@3 a]-|First additional parameter.&] -[s7; [%-*C@3 b]-|Second additional parameter.&] -[s3; &] -[s0; &] -[s0;%- &] -[s0;%- &] -[ {{10000@(113.42.0) [s0; [*@7;4 EventArgTarget]]}}&] -[s3;%- &] -[s1;:noref:%- [@(0.0.255)3 template][3 _<][@(0.0.255)3 class][3 _][*@4;3 T][3 >]&] -[s1;:EventArgTarget`:`:class:%- [@(0.0.255) class]_[* CallbackArgTarget]&] -[s9; This helper class is useful in a situation when a set of callbacks -define some output value. Example is pop`-up menu that provides -selection of one character `- in that case, CallbackArgTarget -can be used instead of dedicated method to obtain result of user -selection.&] -[s8; [%-*@4 T]-|Type of output value. Must be able to be assigned Null.&] -[s3; &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] -[s3; &] -[s5;:EventArgTarget`:`:EventArgTarget`(`):%- [* CallbackArgTarget]()&] -[s2; Assigns Null to the output value.&] -[s3; &] -[s4; &] -[s5;:EventArgTarget`:`:operator const T`&`(`)const:%- [* operator_const_T`&]()_[@(0.0.255) c -onst]&] -[s7; [*/ Return value]-|The result. If no CallbackArgTarget was invoked, -returns Null.&] -[s3; &] -[s4;%- &] -[s5;:EventArgTarget`:`:IsNullInstance`(`)const:%- [@(0.0.255) bool]_[* IsNullInstance]()_ -[@(0.0.255) const]&] -[s7; [*/ Return value]-|True if there is not Null in output value.&] -[s3; &] -[s4;%- &] -[s5;:EventArgTarget`:`:operator`[`]`(const T`&`):%- [_^Callback^ Callback]_[* operator`[`] -]([@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[*@3 value])&] -[s2; Returns a Callback that, when invoked, assigns [@3 value] to the -output value.&] -[s7; [%-*C@3 value]-|Value.&] -[s7; [*/ Return value]-|Callback.&] -[s3; &] +topic "Callbacks"; +[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,2#27521748481378242620020725143825:desc] +[0 $$3,0#96390100711032703541132217272105:end] +[H6;0 $$4,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] +[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] +[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] +[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] +[b42;2 $$9,9#13035079074754324216151401829390:normal] +[{_}%EN-US +[ {{10000@(113.42.0) [s0; [*@7;4 Callbacks]]}}&] +[s9; [/ Note: Callbacks are now deprecated. Use Function/Event/Gate +instead!]&] +[s9; Callbacks can be described as a very generalized form of function +pointers. Each Callback represents some kind of action (usually +calling a certain function or a certain object method) that can +be invoked at any time.&] +[s9; If you are happy enough to be able to use C`+`+11, you can also +assign C`+`+ lambda to Callback using operator << (see bellow).&] +[s9; There are several basic callback types, depending on number +of parameters passed and return value. In order to keep description +of callbacks short, all these types are described in a single +`"parametrized`" description, with parameters [*/@(128.0.255) highlighted].&] +[s9; Generally, callbacks are now defined for up to 5 parameters +of target (function, method, another callback).&] +[s0; &] +[s0; Callback types:&] +[s3; &] +[ {{1514:5185:1933:1368h1;t/17b/17@(204) [s0;%- [*/@(128.0.255)1 CallbackType]] +:: [s0;%- [*/@(128.0.255)1 parameters]] +:: [s0;%- [*/@(128.0.255)1 arguments]] +:: [s0;%- [*/@(128.0.255)1 return`_type]] +::@2 [s0;:Callback`:`:class:%- [*C+75 Callback]] +:: [s0;%- [*/C@(0.0.255)+75 none]] +:: [s0;%- [*/C@(0.0.255)+75 none]] +:: [s0;%- [*/C+75 void]] +:: [s0;:Callback1`:`:class:%- [*C+75 Callback1]] +:: [s0;%- [*/C+75 class P1]] +:: [s0;%- [*/C+75 P1]] +:: [s0;%- [*/C+75 void]] +:: [s0;:Callback2`:`:class: [*C+75 Callback2]] +:: [s0; [*/C+75 class P1, class P2]] +:: [s0; [*/C+75 P1, P2]] +:: [s0; [*/C+75 void]] +:: [s0;:Callback3`:`:class: [*C+75 Callback3]] +:: [s0; [*/C+75 class P1, class P2, class P3]] +:: [s0; [*/C+75 P1, P2, P3]] +:: [s0; [*/C+75 void]] +:: [s0;:Callback4`:`:class: [*C+75 Callback4]] +:: [s0; [*/C+75 class P1, class P2, class P3, class P4]] +:: [s0; [*/C+75 P1, P2, P3, P4]] +:: [s0; [*/C+75 void]] +:: [s0;:Callback5`:`:class: [*C+75 Callback5]] +:: [s0; [*/C+75 class P1, ... , class P5]] +:: [s0; [*/C+75 P1, ... , P5]] +:: [s0; [*/C+75 void]] +:: [s0;:Gate`:`:class: [*C+75 Gate]] +:: [s0; [*/C@(0.0.255)+75 none]] +:: [s0; [*/C@(0.0.255)+75 none]] +:: [s0; [*/C+75 bool]] +:: [s0;:Gate1`:`:class: [*C+75 Gate1]] +:: [s0; [*/C+75 class P1]] +:: [s0; [*/C+75 P1]] +:: [s0; [*/C+75 bool]] +:: [s0;:Gate2`:`:class: [*C+75 Gate2]] +:: [s0; [*/C+75 class P1, class P2]] +:: [s0; [*/C+75 P1, P2]] +:: [s0; [*/C+75 bool]] +:: [s0;:Gate3`:`:class: [*C+75 Gate3]] +:: [s0; [*/C+75 class P1, class P2, class P3]] +:: [s0; [*/C+75 P1, P2, P3]] +:: [s0; [*/C+75 bool]] +:: [s0;:Gate4`:`:class: [*C+75 Gate4]] +:: [s0; [*/C+75 class P1, class P2, class P3, class P4]] +:: [s0; [*/C+75 P1, P2, P3, P4]] +:: [s0; [*/C+75 bool]] +:: [s0;:Gate5`:`:class: [*C+75 Gate5]] +:: [s0; [*/C+75 class P1, ... , class P5]] +:: [s0; [*/C+75 P1, ... , P5]] +:: [s0; [*/C+75 bool]]}}&] +[s0; &] +[s0; `[ template_<[*/@(128.0.255) parameters]> `]&] +[s0; [%- class_][*/@(128.0.255) CallbackType]&] +[s2; &] +[s2; Callback type. Callbacks are moveable types with fast deep copy +(using reference counting).&] +[s2; &] +[s0; &] +[s0;%- explicit_[%%*/@(128.0.255) CallbackType]([%%*/@(128.0.255) CallbackType]Action<[%%*/@(128.0.255) a +rguments>]_`*[*@3 newaction])&] +[s2; Constructs callback based from new action.&] +[s7; [%-*C@3 newaction]-|Action. Must be created using [* new] operator. +Callback takes over its ownership.&] +[s3; &] +[s0; &] +[s0;:Callback1`:`:Callback1`(`):%- [%%*/@(128.0.255) CallbackType]()&] +[s2; Creates an empty callback.&] +[s3; &] +[s4; &] +[s0;:Callback1`:`:Callback1`(const Callback1`&`):%- [%%*/@(128.0.255) CallbackType](con +st_[%%*/@(128.0.255) CallbackType]`&_[*@3 c])&] +[s2; Copy constructor. &] +[s7; [%-*C@3 c]-|Source callback.&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:Callback`:`:Callback`(Upp`:`:AnyLambda``):%- [@(0.0.255) template]_<[@(0.0.255) c +lass]_[*@4 T]>_[%%*/@(128.0.255) CallbackType]([_^Upp`:`:AnyLambda^ AnyLambda]<[*@4 T]>_[*@3 l +])&] +[s2; Constructor from C`+`+11 lambda. Note that AnyLambda intermediate +type is necessarry as std`::function appears to have `"catch all`" +templated constructor, which creates overloading problems. Use +`'lambda`' helper function to convert lambda to AnyLambda (or +use operator<<).&] +[s3; &] +[s4; &] +[s0;:`:`:Callback1`:`:`~Callback1`(`):%- `~[%%*/@(128.0.255) CallbackType]()&] +[s2; Destructor.&] +[s3; &] +[s4; &] +[s0;:`:`:Callback1`:`:Clear`(`):%- void_[* Clear]()&] +[s2; Empties the callback.&] +[s3; &] +[s4; &] +[s0;:`:`:Gate`:`:ClearTrue`(`):%- void_[* ClearTrue]()&] +[s6; Only in Gate callbacks.&] +[s2; Clears Gate. After this method is invoked, the Gate performs +no actions but returns true.&] +[s3; &] +[s4; &] +[s0;:`:`:Gate`:`:ClearFalse`(`):%- void_[* ClearFalse]()&] +[s6; Only in Gate callbacks.&] +[s2; Clears Gate. After this method is invoked, the Gate performs +no actions and returns false. This is the same as Clear.&] +[s3; &] +[s4; &] +[s0;:`:`:Callback1`:`:operator bool`(`)const:%- [* operator_bool]()_const&] +[s7; [*/ Return value]-|True if the callback is valid. Invoking a valid +callback invokes an action.&] +[s3; &] +[s4; &] +[s0;:`:`:Callback1`:`:Execute`(P1`)const:%- [*/@(128.0.255) return`_type]_[* Execute]([%%*/@(128.0.255) a +rguments])_const&] +[s2; Executes the callback with given set of arguments.&] +[s3; &] +[s4; &] +[s0;:`:`:Callback1`:`:operator`(`)`(P1`)const:%- [%%*/@(128.0.255) return`_type]_[* opera +tor()]([%%*/@(128.0.255) arguments])_const&] +[s2; Same as the Execute method.&] +[s3; &] +[s0; &] +[s0;:Callback1Action`:`:struct:%- `[ template_<[*/@(128.0.255) parameters]> +`]&] +[s0;%- struct_[*/@(128.0.255) CallbackType][* Action]&] +[s2; This is the abstract base class for callback action implementations. +Callback holds reference counted pointer to instance of class +derived from this class.&] +[s3; &] +[s0; &] +[s0;:Callback1Action`:`:Callback1Action`(`):%- [*/@(128.0.255) CallbackType][* Action]()&] +[s2; Constructor. Assigns 1 to the reference count.&] +[s3; &] +[s4; &] +[s0;:Callback1Action`:`:`~Callback1Action`(`):%- `~[*/@(128.0.255) CallbackType][* Action +]()&] +[s2; Virtual destructor.&] +[s3; &] +[s4; &] +[s0;:Callback1Action`:`:Execute`(P1`):%- virtual [%%*/@(128.0.255) return`_type]_[* Execu +te]([*/@(128.0.255) arguments])_`=_[@3 0]&] +[s2; Performs the action with specified set of arguments.&] +[s3; &] +[s4; &] +[s0;:Callback1Action`:`:IsValid`(`)const:%- virtual bool_[* IsValid]()_const&] +[s7; [*/ Return value]-|true if the Action is valid. Default implementation +returns true.&] +[s3; &] +[s4; &] +[s0;:Callback1Action`:`:count:%- Atomic_[* count]&] +[s2; Member variable used as reference count.&] +[s3; &] +[s0;%- &] +[s0;%- &] +[s0;%- &] +[ {{10000@(113.42.0) [s0; [*@7;4 Common Callback/Gate functions]]}}&] +[s3; &] +[s0;:`:`:callback`(OBJECT`*`,void`(METHOD`:`:`*`)`(P1 p1`)`): template_&] +[s0;%- [*/@(128.0.255) CallbackType]<[*/@(128.0.255) arguments]> [* callback]([*@4 OBJECT]_`* +[*@3 object], void_([*@4 METHOD]`::`*[*@3 method])([%%*/@(128.0.255) arguments]))&] +[s2; Creates a callback that invokes the specified method of the +specified object.&] +[s7; [%-*C@3 object]-|Pointer to the object.&] +[s7; [%-*C@3 method]-|Pointer to the method.&] +[s7; [*/ Return value]-|Created callback.&] +[s3; &] +[s4; &] +[s0;:`:`:callback`(OBJECT`*`,void`(METHOD`:`:`*`)`(P1 p1`)`): template_&] +[s0;%- [*/@(128.0.255) CallbackType]<[*/@(128.0.255) arguments]> [* callback](const +[*@4 OBJECT]_`*[*@3 object], void_([*@4 METHOD]`::`*[*@3 method])([%%*/@(128.0.255) argument +s]) const)&] +[s2; Constant variant of callback. The created Callback object invokes +a constant method of the object.&] +[s7; [%-*C@3 object]-|Pointer to the object.&] +[s7; [%-*C@3 method]-|Pointer to the constant method to invoke.&] +[s7; [*/ Return value]-|Created callback.&] +[s3; &] +[s4; &] +[s0;:`:`:pteback`(OBJECT`*`,void`(METHOD`:`:`*`)`(P1 p1`)`): `[ template_<[*/@(128.0.255) p +arameters]> `]&] +[s0;%- [*/@(128.0.255) CallbackType][%% <][%%*/@(128.0.255) arguments][%% > +][* pteback]([*@4 OBJECT]_`*[*@3 object], void_([*@4 METHOD]`::`*[*@3 method])([%%*/@(128.0.255) a +rguments]))&] +[s2; Creates a Callback object which is similar to the one created +by callback, but which can be safely invoked even after destruction +of [@3 object] (results in no operation).&] +[s7; [%-*C@3 object]-|Pointer to the object. Must be an ancestor of +the [^topic`:`/`/Core`/src`/PtePtr`$en`-us`#`:`:Pte`:`:template ` class Pte^ P +te] class.&] +[s7; [%-*C@3 method]-|Pointer to the method.&] +[s7; [*/ Return value]-|Created callback.&] +[s3; &] +[s4; &] +[s0;:`:`:callback`(void`(`*`)`(P1 p1`)`): `[ template_<[*/@(128.0.255) parameters]> +`]&] +[s0;%- [*/@(128.0.255) CallbackType][%% <][%%*/@(128.0.255) arguments][%% > +][* callback](void_(`*[*@3 fn])([%%*/@(128.0.255) arguments]))&] +[s2; Creates a Callback object that invokes a non`-member function.&] +[s7; [%-*C@3 fn]-|Pointer to the function.&] +[s7; [*/ Return value]-|Created callback.&] +[s3; &] +[s4; &] +[s0;:Proxy`(Callback1``&`): `[ template_<[*/@(128.0.255) parameters]> +`]&] +[s0;%- [*/@(128.0.255) CallbackType][%% <][%%*/@(128.0.255) arguments][%% >] +[* Proxy]([*/@(128.0.255) CallbackType][%% <][%%*/@(128.0.255) arguments][%% >]`&_[*@3 cb])&] +[s2; Creates a Callback object that invokes another Callback object. +Useful for callback routing (e.g. when some parent Ctrl wants +to reroute some of its child callbacks via its interface). Note +that this function stores a reference to the target callback +in the created callback `- storing callbacks that are used as +Proxy targets in Vector flavor of containers is not a good idea.&] +[s7; [%-*C@3 cb]-|Target callback.&] +[s7; [*/ Return value]-|Created callback.&] +[s3; &] +[s4; &] +[s0;:callback`(Callback1``,Callback1``): `[ template_<[*/@(128.0.255) paramet +ers]> `]&] +[s0;%- [%%*/@(128.0.255) CallbackType][%% <][%%*/@(128.0.255) arguments][%% > +][* callback]([%%*/@(128.0.255) CallbackType][%% <][%%*/@(128.0.255) arguments][%% > +]_[*@3 cb1], [%%*/@(128.0.255) CallbackType][%% <][%%*/@(128.0.255) arguments][%% > +]_[*@3 cb2])&] +[s2; Creates a Callback object that invokes two other callbacks. +Note that this function stores a reference to the target callbacks +in the created callback `- storing callbacks that are used as +targets here in Vector flavor of containers is not a good idea. +For Gate callbacks, the result of this operation is the boolean +value returned by [*@3 cb2].&] +[s7; [%-*C@3 cb1]-|First target callback.&] +[s7; [%-*C@3 cb2]-|Second target callback.&] +[s7; [*/ Return value]-|Created callback.&] +[s3; &] +[s4; &] +[s0;:operator`<`<`(Callback1``&`,Callback1``): `[ template_<[*/@(128.0.255) p +arameters]> `]&] +[s0;%- [%%*/@(128.0.255) CallbackType][%% <][%%*/@(128.0.255) arguments][%% >]`&_[* operator<<]( +[%%*/@(128.0.255) CallbackType][%% <][%%*/@(128.0.255) arguments][%% > +]`&_[*@3 a], [%%*/@(128.0.255) CallbackType][%% <][%%*/@(128.0.255) arguments][%% >]_[*@3 b]) +&] +[s2; Operator variant of the previous function. Allows chaining thus +imitating callback insertion.&] +[s7; [%-*C@3 a]-|First callback. Its value is replaced by a callback +that calls both the first and the second callback.&] +[s7; [%-*C@3 b]-|Second callback.&] +[s7; [*/ Return value]-|Reference to the first callback.&] +[s3; &] +[s4;%- &] +[s0;:operator`<`<`(Callback1``&`,Callback1``): `[ template_<[*/@(128.0.255) p +arameters]> `]&] +[s0;%- [%%*/@(128.0.255) CallbackType][%% <][%%*/@(128.0.255) arguments][%% >]`&_[* operator<<]( +[%%*/@(128.0.255) CallbackType][%% <][%%*/@(128.0.255) arguments][%% > +]`&_[*@3 a], [%%*/@(128.0.255) C`+`+11Lambda]_[*@3 b])&] +[s2; Variant of merging callbacks that can be used for C`+`+11 lambdas.&] +[s3; &] +[s0; &] +[ {{10000@(113.42.0) [s0; [*@7;4 Storing arguments in callback]]}}&] +[s0; &] +[s0; It is possible to store some arguments that are passed to target +(function or method) as parameters when creating. If simultaneously +passing other parameters in callback call, those passed on call +represent beginning arguments and those defined in callback creation +fill the rest of arguments.&] +[s0; &] +[s0; Again, all this is defined for up to 5 target parameters:&] +[s0; &] +[s0;:`:`:callback1`(Object`*`,void`(M`:`:`*`)`(P`)`,T`):%- template_&] +[s0;:`:`:callback1`(Object`*`,void`(M`:`:`*`)`(P`)`,T`):%- [%%*/@(128.0.255) CallbackTy +pe][%% <][%%*/@(128.0.255) arguments][%% >]_[* callback1]([*@4 Object]_`*[*@3 object], +void_([*@4 M]`::`*[*@3 method])([*@4 P1], ...), [*@4 T1]_[*@3 arg1], ...)&] +[s3;%- &] +[s0;:`:`:callback1`(const Object`*`,void`(M`:`:`*`)`(P`)const`,T`):%- template_&] +[s0;:`:`:callback1`(const Object`*`,void`(M`:`:`*`)`(P`)const`,T`):%- [%%*/@(128.0.255) C +allbackType][%% <][%%*/@(128.0.255) arguments][%% >]_[* callback1]([*@4 Object]_`*[*@3 object +], void_([*@4 M]`::`*[*@3 method])([*@4 P1], ...) const, [*@4 T1]_[*@3 arg1], +...)&] +[s3;%- &] +[s0;:`:`:pteback1`(Object`*`,void`(M`:`:`*`)`(P`)`,T`):%- template_&] +[s0;:`:`:pteback1`(Object`*`,void`(M`:`:`*`)`(P`)`,T`):%- [%%*/@(128.0.255) CallbackTyp +e][%% <][%%*/@(128.0.255) arguments][%% >]_[* pteback1]([*@4 Object]_`*[*@3 object], +void_([*@4 M]`::`*[*@3 method])([*@4 P1], ...), [*@4 T1]_[*@3 arg1], ...)&] +[s3;%- &] +[s0;:`:`:pteback1`(Object`*`,void`(M`:`:`*`)`(P`)const`,T`):%- template_&] +[s0;:`:`:pteback1`(Object`*`,void`(M`:`:`*`)`(P`)const`,T`):%- [%%*/@(128.0.255) Callba +ckType][%% <][%%*/@(128.0.255) arguments][%% >]_[* pteback1]([*@4 Object]_`*[*@3 object], +void_([*@4 M]`::`*[*@3 method])([*@4 P1], ...) const, [*@4 T1]_[*@3 arg1], +...)&] +[s3;%- &] +[s0;:`:`:callback1`(void`(`*`)`(P`)`,T`):%- template_&] +[s0;:`:`:callback1`(void`(`*`)`(P`)`,T`):%- [%%*/@(128.0.255) CallbackType][%% <][%%*/@(128.0.255) a +rguments][%% >]_[* callback1](void_(`*[*@3 fn])([*@4 P1], ...), [*@4 T1]_[*@3 arg], +...)&] +[s0;%- &] +[s2; [%-*@4 P1] ([%-*@4 P2, P3 ][%- ...]) are arguments passed on method +invocation, [%-*@4 T1] ([%-*@4 T2, T3 ][%- ...]) are parameters stored +in Callback object.&] +[s3; &] +[s0; &] +[s0;%- &] +[ {{10000@(113.42.0) [s0; [*@7;4 Callback macros]]}}&] +[s9; Callback macros reduce verbosity of instance method callbacks. +They expect CLASSNAME to be typedef`-ed as the type of current +class and return method callbacks bound to the [*@(0.0.255) this] +pointer.&] +[s3; &] +[s0; &] +[s0;:`:`:THISBACK`(x`):%- [* THISBACK]([*@3 x])&] +[s2; Expands to callback(this, `&CLASSNAME`::[@3 m]).&] +[s7; [%-*C@3 m]-|Name of method.&] +[s3; &] +[s4; &] +[s0;:`:`:THISBACK1`(x`, arg`):%- [* THISBACK1]([*@3 x], [*@3 arg])&] +[s2; Expands to callback1(this, `&CLASSNAME`::[@3 m], [@3 arg]).&] +[s7; [%-*C@3 m]-|Name of method.&] +[s7; [%-*C@3 arg]-|Additional parameter.&] +[s3; &] +[s4; &] +[s0;:`:`:THISBACK2`(m`, a`, b`):%- [* THISBACK2]([*@3 m], [*@3 a], [*@3 b])&] +[s2; Expands to callback2(this, `&CLASSNAME`::[@3 m], [@3 a],[@3 b]).&] +[s7; [%-*C@3 m]-|Name of method.&] +[s7; [%-*C@3 a]-|First additional parameter.&] +[s7; [%-*C@3 b]-|Second additional parameter.&] +[s3; &] +[s4; &] +[s0;:`:`:PTEBACK`(x`):%- [* PTEBACK]([*@3 x])&] +[s2; Expands to pteback(this, `&CLASSNAME`::[@3 m]).&] +[s7; [%-*C@3 m]-|Name of method.&] +[s3; &] +[s4; &] +[s0;:`:`:PTEBACK1`(x`, arg`):%- [* PTEBACK1]([*@3 x], [*@3 arg])&] +[s2; Expands to pteback1(this, `&CLASSNAME`::[@3 m], [@3 arg]).&] +[s7; [%-*C@3 m]-|Name of method.&] +[s7; [%-*C@3 arg]-|Additional parameter.&] +[s3; &] +[s4; &] +[s0;:`:`:PTEBACK2`(m`, a`, b`):%- [* PTEBACK2]([*@3 m], [*@3 a], [*@3 b])&] +[s2; Expands to pteback2(this, `&CLASSNAME`::[@3 m], [@3 a],[@3 b]).&] +[s7; [%-*C@3 m]-|Name of method.&] +[s7; [%-*C@3 a]-|First additional parameter.&] +[s7; [%-*C@3 b]-|Second additional parameter.&] +[s3; &] +[s0; &] +[s0;%- &] +[s0;%- &] +[ {{10000@(113.42.0) [s0; [*@7;4 EventArgTarget]]}}&] +[s3;%- &] +[s1;:noref:%- [@(0.0.255)3 template][3 _<][@(0.0.255)3 class][3 _][*@4;3 T][3 >]&] +[s1;:EventArgTarget`:`:class:%- [@(0.0.255) class]_[* CallbackArgTarget]&] +[s9; This helper class is useful in a situation when a set of callbacks +define some output value. Example is pop`-up menu that provides +selection of one character `- in that case, CallbackArgTarget +can be used instead of dedicated method to obtain result of user +selection.&] +[s8; [%-*@4 T]-|Type of output value. Must be able to be assigned Null.&] +[s3; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] +[s3; &] +[s5;:EventArgTarget`:`:EventArgTarget`(`):%- [* CallbackArgTarget]()&] +[s2; Assigns Null to the output value.&] +[s3; &] +[s4; &] +[s5;:EventArgTarget`:`:operator const T`&`(`)const:%- [* operator_const_T`&]()_[@(0.0.255) c +onst]&] +[s7; [*/ Return value]-|The result. If no CallbackArgTarget was invoked, +returns Null.&] +[s3; &] +[s4;%- &] +[s5;:EventArgTarget`:`:IsNullInstance`(`)const:%- [@(0.0.255) bool]_[* IsNullInstance]()_ +[@(0.0.255) const]&] +[s7; [*/ Return value]-|True if there is not Null in output value.&] +[s3; &] +[s4;%- &] +[s5;:EventArgTarget`:`:operator`[`]`(const T`&`):%- [_^Callback^ Callback]_[* operator`[`] +]([@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[*@3 value])&] +[s2; Returns a Callback that, when invoked, assigns [@3 value] to the +output value.&] +[s7; [%-*C@3 value]-|Value.&] +[s7; [*/ Return value]-|Callback.&] +[s3; &] [s0; ]] \ No newline at end of file diff --git a/uppsrc/Core/src.tpp/CharSet$en-us.tpp b/uppsrc/Core/src.tpp/CharSet_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/CharSet$en-us.tpp rename to uppsrc/Core/src.tpp/CharSet_en-us.tpp diff --git a/uppsrc/Core/src.tpp/CoAlgo$en-us.tpp b/uppsrc/Core/src.tpp/CoAlgo_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/CoAlgo$en-us.tpp rename to uppsrc/Core/src.tpp/CoAlgo_en-us.tpp diff --git a/uppsrc/Core/src.tpp/CoWork$en-us.tpp b/uppsrc/Core/src.tpp/CoWork_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/CoWork$en-us.tpp rename to uppsrc/Core/src.tpp/CoWork_en-us.tpp diff --git a/uppsrc/Core/src.tpp/Color$en-us.tpp b/uppsrc/Core/src.tpp/Color_en-us.tpp similarity index 97% rename from uppsrc/Core/src.tpp/Color$en-us.tpp rename to uppsrc/Core/src.tpp/Color_en-us.tpp index aac4f9e58..58b6f8f5b 100644 --- a/uppsrc/Core/src.tpp/Color$en-us.tpp +++ b/uppsrc/Core/src.tpp/Color_en-us.tpp @@ -1,405 +1,405 @@ -topic "Color"; -[2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,0#27521748481378242620020725143825:desc] -[0 $$3,0#96390100711032703541132217272105:end] -[H6;0 $$4,0#05600065144404261032431302351956:begin] -[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] -[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] -[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] -[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] -[b42;2 $$9,9#13035079074754324216151401829390:normal] -[{_}%EN-US -[ {{10000@(113.42.0) [s0; [*@(229)4 Color]]}}&] -[s3;%- &] -[s1;:Color`:`:class:%- [@(0.0.255)3 class][3 _][*3 Color][3 _:_][@(0.0.255)3 private][3 _][*@3;3 Ass -ignValueTypeNo][@(0.0.255)3 <][*3 Color][3 , COLOR`_V, ][_^Moveable^3 Moveable][@(0.0.255)3 < -][*3 Color][@(0.0.255)3 >][3 _>_]&] -[s9; [* Color] type representing RGB color. All components are in the -range 0 through 255. Null value is defined for Color. Color is -Value compatible as a Rich`-Value type (supports Value comparison, -serialization etc.).&] -[s3; &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] -[s3; &] -[s5;:Color`:`:Color`(`):%- [* Color]()&] -[s2; Default constructor. Leaves component values uninitialized.&] -[s3; &] -[s4;%- &] -[s5;:Color`:`:Color`(int`,int`,int`):%- [* Color]([@(0.0.255) int]_[*@3 r], -[@(0.0.255) int]_[*@3 g], [@(0.0.255) int]_[*@3 b])&] -[s2; Constructor.&] -[s7; [%-*C@3 r]-|Red channel.&] -[s7; [%-*C@3 g]-|Green channel.&] -[s7; [%-*C@3 b]-|Blue channel.&] -[s3; &] -[s4;%- &] -[s5;:Color`:`:Color`(const Nuller`&`):%- [* Color]([@(0.0.255) const]_[_^Nuller^ Nuller][@(0.0.255) `& -])&] -[s2; Null constructor.&] -[s3; &] -[s4;%- &] -[s5;:Color`:`:Color`(const Value`&`):%- [* Color]([@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `& -]_[*@3 q])&] -[s2; Conversion from Value.&] -[s7; [%-*@3 q]-|Value.&] -[s3; &] -[s4;%- &] -[s5;:Color`:`:Color`(Color`(`*`)`(`)`):%- [* Color]([* Color]_(`*[*@3 fn])())&] -[s2; This constructor allows using a pointer to a function returning -Colors instead of Colors in many places. Global functions returning -Color are needed instead of global Color constants on many platforms, -because often global variables are not allowed when using dynamic -libraries.&] -[s7; [%-*@3 fn]-|Pointer to a function returning Color.&] -[s0; &] -[s4;%- &] -[s5;:Color`:`:Color`(RGBA`):%- [* Color]([_^RGBA^ RGBA]_[*@3 rgba])&] -[s2; Conversion from a RGBA structure [%-*@3 rgba].&] -[s3; &] -[s4;%- &] -[s5;:Color`:`:Color`(int`,int`):%- [* Color]([@(0.0.255) int]_[*@3 n], -[@(0.0.255) int])&] -[s2; Constructs a Color from an integer representation of that colors -RGB code.&] -[s3; &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] -[s3; &] -[s5;:Color`:`:operator Value`(`)const:%- [* operator_Value]()_[@(0.0.255) const]&] -[s2; Conversion to Value.&] -[s7; [*/ Return value]-|Value.&] -[s3; &] -[s4;%- &] -[s5;:Color`:`:GetRaw`(`)const:%- [_^dword^ dword]_[* GetRaw]()_[@(0.0.255) const]&] -[s7; [*/ Return value]-|Platform specific dword representing the color.&] -[s3; &] -[s4;%- &] -[s5;:Color`:`:GetR`(`)const:%- [@(0.0.255) int]_[* GetR]()_[@(0.0.255) const]&] -[s7; [*/ Return value]-|The red component.&] -[s3; &] -[s4;%- &] -[s5;:Color`:`:GetG`(`)const:%- [@(0.0.255) int]_[* GetG]()_[@(0.0.255) const]&] -[s7; [*/ Return value]-|The green component.&] -[s3; &] -[s4;%- &] -[s5;:Color`:`:GetB`(`)const:%- [@(0.0.255) int]_[* GetB]()_[@(0.0.255) const]&] -[s7; [*/ Return value]-|The blue component.&] -[s3; &] -[s4;%- &] -[s5;:Color`:`:SetNull`(`):%- [@(0.0.255) void]_[* SetNull]()&] -[s2; Sets the Color to Null.&] -[s3;%- &] -[s4;%- &] -[s5;:Color`:`:IsNullInstance`(`)const:%- [@(0.0.255) bool]_[* IsNullInstance]()_[@(0.0.255) c -onst]&] -[s7; [*/ Return value]-|True if Color is Null. Used to implement IsNull -for Color.&] -[s3; &] -[s4;%- &] -[s5;:Color`:`:GetHashValue`(`)const:%- [@(0.0.255) unsigned]_[* GetHashValue]()_[@(0.0.255) c -onst]&] -[s7; [*/ Return value]-|Hash`-value for Color.&] -[s3; &] -[s4;%- &] -[s5;:Color`:`:operator`=`=`(Color`)const:%- [@(0.0.255) bool]_[* operator`=`=]([_^Color^ Co -lor]_[*@3 c])_[@(0.0.255) const]&] -[s7; [%-*C@3 c]-|Color to compare with.&] -[s7; [*/ Return value]-|True if Color is equal to [@3 c].&] -[s3; &] -[s4;%- &] -[s5;:Color`:`:operator`!`=`(Color`)const:%- [@(0.0.255) bool]_[* operator!`=]([_^Color^ Col -or]_[*@3 c])_[@(0.0.255) const]&] -[s7; [%-*C@3 c]-|Color to compare with.&] -[s7; [*/ Return value]-|True if Color is not equal to [@3 c].&] -[s3; &] -[s4;%- &] -[s5;:Color`:`:Serialize`(Stream`&`):%- [@(0.0.255) void]_[* Serialize]([_^Stream^ Stream][@(0.0.255) `& -]_[*@3 s])&] -[s2; Serializes the color to the [^topic`:`/`/Core`/src`/Stream`$en`-us`#Stream`:`:class^ S -tream] [%-*@3 s].&] -[s3; &] -[s4;%- &] -[s5;:Color`:`:FromRaw`(dword`):%- [@(0.0.255) static] [_^Color^ Color]_[* FromRaw]([_^dword^ d -word]_[*@3 co])&] -[s2; Creates a Color based on a platform specific raw dword value.&] -[s7; [%-*C@3 co]-|Raw dword value.&] -[s7; [*/ Return value]-|Color.&] -[s3; &] -[s4;%- &] -[s5;:Color`:`:operator COLORREF`(`)const:%- [* operator_COLORREF]()_[@(0.0.255) const]&] -[s6;%- Win32 specific.&] -[s2; Return COLORREF for Color.&] -[s7; [*/ Return value]-|COLORREF.&] -[s3; &] -[s4;%- &] -[s5;:Color`:`:FromCR`(COLORREF`):%- [@(0.0.255) static] [_^Color^ Color]_[* FromCR](COLORRE -F_[*@3 cr])&] -[s6; Win32 specific.&] -[s2; Creates Color from COLORREF.&] -[s7; [%-*C@3 cr]-|COLORREF.&] -[s7; [*/ Return value]-|Color.&] -[s3; &] -[s4;%- &] -[s5;:Color`:`:operator dword`(`)const:%- [* operator_dword]()_[@(0.0.255) const]&] -[s6;%- Not available on Win32&] -[s7; [*/ Return value]-|[^topic`:`/`/Core`/src`/Color`$en`-us`#Color`:`:GetRaw`(`)const^ G -etRaw]().&] -[s3; &] -[s4;%- &] -[s5;:Color`:`:operator RGBA`(`)const:%- [* operator_RGBA]()_[@(0.0.255) const]&] -[s2; Returns a RGBA structure containing the color information.&] -[s3;%- &] -[s0; &] -[s0; &] -[s0;%- &] -[ {{10000@(113.42.0) [s0; [*@(229)4 Utility functions]]}}&] -[s3;%- &] -[s5;:GetRValue`(dword`):%- [@(0.0.255) int]_[* GetRValue]([_^dword^ dword]_[*@3 c])&] -[s2; Returns red component from a platform specific value.&] -[s7; [%-*C@3 c]-|Platform specific value.&] -[s7; [*/ Return value]-|Red component.&] -[s3; &] -[s4;%- &] -[s5;:GetGValue`(dword`):%- [@(0.0.255) int]_[* GetGValue]([_^dword^ dword]_[*@3 c])&] -[s2; Returns green component from a platform specific value.&] -[s7; [%-*C@3 c]-|Platform specific value.&] -[s7; [*/ Return value]-|Green component.&] -[s3; &] -[s4;%- &] -[s5;:GetBValue`(dword`):%- [@(0.0.255) int]_[* GetBValue]([_^dword^ dword]_[*@3 c])&] -[s2; Returns blue component from a platform specific value.&] -[s7; [%-*C@3 c]-|Platform specific value.&] -[s7; [*/ Return value]-|Blue component.&] -[s3; &] -[s4;%- &] -[s5;:RGB`(byte`,byte`,byte`):%- [_^dword^ dword]_[* RGB]([_^byte^ byte]_[*@3 r], -[_^byte^ byte]_[*@3 g], [_^byte^ byte]_[*@3 b])&] -[s2; Calculates platform specific value from components.&] -[s7; [%-*C@3 r]-|Red component.&] -[s7; [%-*C@3 g]-|Green component.&] -[s7; [%-*C@3 b]-|Blue component.&] -[s7; [*/ Return value]-|Platform specific value.&] -[s3; &] -[s4;%- &] -[s5;:GetHashValue`(Color`):%- [@(0.0.255) unsigned]_[* GetHashValue]([_^Color^ Color]_[*@3 c]) -&] -[s2; Returns a hash value for the color.&] -[s7; [%-*C@3 c]-|Color.&] -[s7; [*/ Return value]-|Hash value.&] -[s3; &] -[s4;%- &] -[s5;:Nvl`(Color`,Color`):%- [_^Color^ Color]_[* Nvl]([_^Color^ Color]_[*@3 a], -[_^Color^ Color]_[*@3 b])&] -[s2; Returns first parameter if it is not Null, second otherwise.&] -[s7; [%-*C@3 a]-|Color.&] -[s7; [%-*C@3 b]-|Color.&] -[s7; [*/ Return value]-|a if not Null, b otherwise.&] -[s3; &] -[s4;%- &] -[s5;:AsString`(const Color`&`):%- [@(0.0.255) template]_<>_[_^String^ String]_[* AsString]( -[@(0.0.255) const]_[_^Color^ Color][@(0.0.255) `&]_[*@3 c])&] -[s2; Converts Color to textual form.&] -[s7; [%-*C@3 c]-|Color.&] -[s7; [*/ Return value]-|Textual form.&] -[s3; &] -[s4;%- &] -[s5;:RGBtoHSV`(double`,double`,double`,double`&`,double`&`,double`&`):%- [@(0.0.255) vo -id]_[* RGBtoHSV]([@(0.0.255) double]_[*@3 r], [@(0.0.255) double]_[*@3 g], -[@(0.0.255) double]_[*@3 b], [@(0.0.255) double`&]_[*@3 h], [@(0.0.255) double`&]_[*@3 s], -[@(0.0.255) double`&]_[*@3 v])&] -[s2; Transforms an `[R,G,B`] color triplet (each of the components -is supposed to be in the range `[0..1`]) into an `[H,S,V`] triplet -(again all components are in the range `[0..1`]). This effectively -transforms the RGB cube to a cone in which color selection more -intuitively matches our our visual perception ([/ hue] corresponds -to the tint of the color, [/ saturation] to the richness of the -color hue and [/ value] corresponds to luminance or brightness). -&] -[s2; &] -[s2; The mathematical formula used to convert between the two color -spaces are:&] -[s2; &] -[s2; v `= max(r, g, b)&] -[s2; s `= 1 `- min(r, g, b) / v&] -[s2; h `= (x `- min(r, g, b)) / (max(r, g, b) `- min(r, g, b))&] -[s2; &] -[s2; where [/ x] is the color component which is neither minimum nor -maximum. There are six combinations for this, in every even h -is taken, in every odd 1`-h. The six combinations correspond -to six points on the color wheel forming the base of the HSV -cone `- pure red, yellow, green, cyan, blue, and magenta. The -color component ranges along the circumference are the following -(capital letters denote maximum component value, minuscule letters -minimum): Rgb `-> RGb `-> rGb `-> rGB `-> rgB `-> RgB.&] -[s2; &] -[s2; An easy way to visualize the HSV transform based on the RGB -cube is: imagine a slight deformation of the cube where the tip -of the cone corresponds to the black RBG cube vertex, the opposite -(white) RGB cube vertex corresponds to the center of the base -circle of the HSV cone and the remaining six RGB cube vertices -get projected on the circumference of the cone base as explained -in the preceding paragraph.&] -[s2; &] -[s7; [%-*C@3 r]-|input red component `[0..1`]&] -[s7; [%-*C@3 g]-|input green component `[0..1`]&] -[s7; [%-*C@3 b]-|input blue component `[0..1`]&] -[s7; [%-*C@3 h]-|output hue `[0..1`], i.e. color tint&] -[s7; [%-*C@3 s]-|output saturation `[0..1`]. Maximum saturation (1) -corresponds to the `"purest`" basic color (one of the six), whereas -minimum saturation (0) is gray or white.&] -[s7; [%-*C@3 v]-|output brightness `[0..1`].&] -[s3; &] -[s4;%- &] -[s5;:HSVtoRGB`(double`,double`,double`,double`&`,double`&`,double`&`):%- [@(0.0.255) vo -id]_[* HSVtoRGB]([@(0.0.255) double]_[*@3 h], [@(0.0.255) double]_[*@3 s], -[@(0.0.255) double]_[*@3 v], [@(0.0.255) double`&]_[*@3 r], [@(0.0.255) double`&]_[*@3 g], -[@(0.0.255) double`&]_[*@3 b])&] -[s2; Transformes an HSV triplet (each of the components is supposed -to lie in the interval `[0..1`]) into an RGB triplet (again with -component ranges `[0..1`]). This projects the HSV cone (as explained -in the preceding section) back onto the RGB cube.&] -[s7; [%-*C@3 h]-|input hue, i.e. color tint `[0..1`]&] -[s7; [%-*C@3 s]-|input saturation, i.e. color `"purity`" `[0..1`]&] -[s7; [%-*C@3 v]-|value `- luminance or brightness `[0..1`]&] -[s7; [%-*C@3 r]-|output red component `[0..1`]&] -[s7; [%-*C@3 g]-|output green component `[0..1`]&] -[s7; [%-*C@3 b]-|output blue component `[0..1`]&] -[s3; &] -[s4;%- &] -[s5;:HsvColorf`(double`,double`,double`):%- [_^Color^ Color]_[* HsvColorf]([@(0.0.255) doub -le]_[*@3 h], [@(0.0.255) double]_[*@3 s], [@(0.0.255) double]_[*@3 v])&] -[s2; Converts an HSV color triplet into a [* Color] object. The H, -S, and V components are supposed to be in the range `[0..1`].&] -[s7; [%-*C@3 h]-|input hue `[0..1`]&] -[s7; [%-*C@3 s]-|input saturation `[0..1`]&] -[s7; [%-*C@3 v]-|input value aka brightness `[0..1`]&] -[s7; [*/ Return value]-|the [* Color] object with the given HSV components&] -[s3; &] -[s4;%- &] -[s5;:Blend`(Color`,Color`,int`):%- [_^Color^ Color]_[* Blend]([_^Color^ Color]_[*@3 c1], -[_^Color^ Color]_[*@3 c2], [@(0.0.255) int]_[*@3 alpha]_`=_[@3 128])&] -[s2; Blends two colors.&] -[s7; [%-*C@3 c1]-|First color.&] -[s7; [%-*C@3 c2]-|Second color.&] -[s7; [%-*C@3 alpha]-|Blending factor in the range 0..255.&] -[s7; [*/ Return value]-|Blended color `- (255 `- alpha) / 255.0 `* c1 -`+ alpha / 255.0 `* c2.&] -[s3; &] -[s4;%- &] -[s5;:ColorToHtml`(Color`):%- [_^String^ String]_[* ColorToHtml]([_^Color^ Color]_[*@3 color]) -&] -[s2; Converts Color to the textual format used in HTML (into hexadecimal -form like #ffffff for white).&] -[s7; [%-*C@3 color]-|Color.&] -[s7; [*/ Return value]-|HTML text.&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:ColorFromText`(const char`*`):%- [_^Upp`:`:Color^ Color]_[* ColorFromText]([@(0.0.255) c -onst]_[@(0.0.255) char]_`*[*@3 s])&] -[s2; Converts text to Color. Allowed formats are 3 decimal numbers -in range 0`-255, representing r, g, b colors and separated by -`',`' or `';`' or `'.`' or `' `', or the text must exactly contain -6 hexadecimal digits representing RRGGBB values.&] -[s3; &] -[s4;%- &] -[s5;:GrayColor`(int`):%- [_^Color^ Color]_[* GrayColor]([@(0.0.255) int]_[*@3 a]_`=_[@3 128])&] -[s2; Returns a gray color of intensity [%-*@3 a].&] -[s3; &] -[s4;%- &] -[s5;:Grayscale`(const Color`&`):%- [@(0.0.255) int]_[* Grayscale]([@(0.0.255) const]_[_^Color^ C -olor][@(0.0.255) `&]_[*@3 c])&] -[s2; Converts a color [%-*@3 c][%- to grayscale].&] -[s3; &] -[s4;%- &] -[s5;:IsDark`(Color`):%- [@(0.0.255) bool]_[* IsDark]([_^Color^ Color]_[*@3 c])&] -[s2; True if [%-*@3 c] grayscale level is lower than 80.&] -[s3; &] -[s4;%- &] -[s5;:IsLight`(Color`):%- [@(0.0.255) bool]_[* IsLight]([_^Color^ Color]_[*@3 c])&] -[s2; True if [%-*@3 c] grayscale is higher than 175 (255 `- 80).&] -[s3; &] -[s4;%- &] -[s5;:StraightColor`(RGBA`):%- [_^Color^ Color]_[* StraightColor]([_^RGBA^ RGBA]_[*@3 rgba])&] -[s2; Converts a RGBA structure [%-*@3 rgba] to a [* Color].&] -[s3; &] -[s0;3 &] -[ {{10000@(113.42.0) [s0; [*@(229)4 Color constants]]}}&] -[s3; &] -[s9; Predefined colors are represented by functions that return the -predefined color value.&] -[s3; &] -[s0; &] -[s5;:Black`(`):%- [_^Color^ Color]_[* Black]()&] -[s2; Black.&] -[s3;%- &] -[s4;%- &] -[s5;:Gray`(`):%- [_^Color^ Color]_[* Gray]()&] -[s2; Gray.&] -[s3;%- &] -[s4;%- &] -[s5;:LtGray`(`):%- [_^Color^ Color]_[* LtGray]()&] -[s2; Light gray.&] -[s3;%- &] -[s4;%- &] -[s5;:WhiteGray`(`):%- [_^Color^ Color]_[* WhiteGray]()&] -[s2; White gray.&] -[s3;%- &] -[s4;%- &] -[s5;:White`(`):%- [_^Color^ Color]_[* White]()&] -[s2; White.&] -[s3;%- &] -[s4;%- &] -[s5;:Red`(`):%- [_^Color^ Color]_[* Red]()&] -[s2; Red.&] -[s3;%- &] -[s4;%- &] -[s5;:Green`(`):%- [_^Color^ Color]_[* Green]()&] -[s2; Green.&] -[s3;%- &] -[s4;%- &] -[s5;:Brown`(`):%- [_^Color^ Color]_[* Brown]()&] -[s2; Brown.&] -[s3;%- &] -[s4;%- &] -[s5;:Blue`(`):%- [_^Color^ Color]_[* Blue]()&] -[s2; Blue.&] -[s3;%- &] -[s4;%- &] -[s5;:Magenta`(`):%- [_^Color^ Color]_[* Magenta]()&] -[s2; Magenta.&] -[s3;%- &] -[s4;%- &] -[s5;:Cyan`(`):%- [_^Color^ Color]_[* Cyan]()&] -[s2; Cyan.&] -[s3;%- &] -[s4;%- &] -[s5;:Yellow`(`):%- [_^Color^ Color]_[* Yellow]()&] -[s2; Yellow.&] -[s3; &] -[s4;%- &] -[s5;:LtRed`(`):%- [_^Color^ Color]_[* LtRed]()&] -[s2; Light red.&] -[s3;%- &] -[s4;%- &] -[s5;:LtGreen`(`):%- [_^Color^ Color]_[* LtGreen]()&] -[s2; Light green.&] -[s3;%- &] -[s4;%- &] -[s5;:LtYellow`(`):%- [_^Color^ Color]_[* LtYellow]()&] -[s2; Light yellow.&] -[s3;%- &] -[s4;%- &] -[s5;:LtBlue`(`):%- [_^Color^ Color]_[* LtBlue]()&] -[s2; Light blue.&] -[s3;%- &] -[s4;%- &] -[s5;:LtMagenta`(`):%- [_^Color^ Color]_[* LtMagenta]()&] -[s2; Light magenta.&] -[s3;%- &] -[s4;%- &] -[s5;:LtCyan`(`):%- [_^Color^ Color]_[* LtCyan]()&] -[s2; Light cyan.&] -[s3;%- &] +topic "Color"; +[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,0#27521748481378242620020725143825:desc] +[0 $$3,0#96390100711032703541132217272105:end] +[H6;0 $$4,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] +[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] +[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] +[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] +[b42;2 $$9,9#13035079074754324216151401829390:normal] +[{_}%EN-US +[ {{10000@(113.42.0) [s0; [*@(229)4 Color]]}}&] +[s3;%- &] +[s1;:Color`:`:class:%- [@(0.0.255)3 class][3 _][*3 Color][3 _:_][@(0.0.255)3 private][3 _][*@3;3 Ass +ignValueTypeNo][@(0.0.255)3 <][*3 Color][3 , COLOR`_V, ][_^Moveable^3 Moveable][@(0.0.255)3 < +][*3 Color][@(0.0.255)3 >][3 _>_]&] +[s9; [* Color] type representing RGB color. All components are in the +range 0 through 255. Null value is defined for Color. Color is +Value compatible as a Rich`-Value type (supports Value comparison, +serialization etc.).&] +[s3; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] +[s3; &] +[s5;:Color`:`:Color`(`):%- [* Color]()&] +[s2; Default constructor. Leaves component values uninitialized.&] +[s3; &] +[s4;%- &] +[s5;:Color`:`:Color`(int`,int`,int`):%- [* Color]([@(0.0.255) int]_[*@3 r], +[@(0.0.255) int]_[*@3 g], [@(0.0.255) int]_[*@3 b])&] +[s2; Constructor.&] +[s7; [%-*C@3 r]-|Red channel.&] +[s7; [%-*C@3 g]-|Green channel.&] +[s7; [%-*C@3 b]-|Blue channel.&] +[s3; &] +[s4;%- &] +[s5;:Color`:`:Color`(const Nuller`&`):%- [* Color]([@(0.0.255) const]_[_^Nuller^ Nuller][@(0.0.255) `& +])&] +[s2; Null constructor.&] +[s3; &] +[s4;%- &] +[s5;:Color`:`:Color`(const Value`&`):%- [* Color]([@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `& +]_[*@3 q])&] +[s2; Conversion from Value.&] +[s7; [%-*@3 q]-|Value.&] +[s3; &] +[s4;%- &] +[s5;:Color`:`:Color`(Color`(`*`)`(`)`):%- [* Color]([* Color]_(`*[*@3 fn])())&] +[s2; This constructor allows using a pointer to a function returning +Colors instead of Colors in many places. Global functions returning +Color are needed instead of global Color constants on many platforms, +because often global variables are not allowed when using dynamic +libraries.&] +[s7; [%-*@3 fn]-|Pointer to a function returning Color.&] +[s0; &] +[s4;%- &] +[s5;:Color`:`:Color`(RGBA`):%- [* Color]([_^RGBA^ RGBA]_[*@3 rgba])&] +[s2; Conversion from a RGBA structure [%-*@3 rgba].&] +[s3; &] +[s4;%- &] +[s5;:Color`:`:Color`(int`,int`):%- [* Color]([@(0.0.255) int]_[*@3 n], +[@(0.0.255) int])&] +[s2; Constructs a Color from an integer representation of that colors +RGB code.&] +[s3; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] +[s3; &] +[s5;:Color`:`:operator Value`(`)const:%- [* operator_Value]()_[@(0.0.255) const]&] +[s2; Conversion to Value.&] +[s7; [*/ Return value]-|Value.&] +[s3; &] +[s4;%- &] +[s5;:Color`:`:GetRaw`(`)const:%- [_^dword^ dword]_[* GetRaw]()_[@(0.0.255) const]&] +[s7; [*/ Return value]-|Platform specific dword representing the color.&] +[s3; &] +[s4;%- &] +[s5;:Color`:`:GetR`(`)const:%- [@(0.0.255) int]_[* GetR]()_[@(0.0.255) const]&] +[s7; [*/ Return value]-|The red component.&] +[s3; &] +[s4;%- &] +[s5;:Color`:`:GetG`(`)const:%- [@(0.0.255) int]_[* GetG]()_[@(0.0.255) const]&] +[s7; [*/ Return value]-|The green component.&] +[s3; &] +[s4;%- &] +[s5;:Color`:`:GetB`(`)const:%- [@(0.0.255) int]_[* GetB]()_[@(0.0.255) const]&] +[s7; [*/ Return value]-|The blue component.&] +[s3; &] +[s4;%- &] +[s5;:Color`:`:SetNull`(`):%- [@(0.0.255) void]_[* SetNull]()&] +[s2; Sets the Color to Null.&] +[s3;%- &] +[s4;%- &] +[s5;:Color`:`:IsNullInstance`(`)const:%- [@(0.0.255) bool]_[* IsNullInstance]()_[@(0.0.255) c +onst]&] +[s7; [*/ Return value]-|True if Color is Null. Used to implement IsNull +for Color.&] +[s3; &] +[s4;%- &] +[s5;:Color`:`:GetHashValue`(`)const:%- [@(0.0.255) unsigned]_[* GetHashValue]()_[@(0.0.255) c +onst]&] +[s7; [*/ Return value]-|Hash`-value for Color.&] +[s3; &] +[s4;%- &] +[s5;:Color`:`:operator`=`=`(Color`)const:%- [@(0.0.255) bool]_[* operator`=`=]([_^Color^ Co +lor]_[*@3 c])_[@(0.0.255) const]&] +[s7; [%-*C@3 c]-|Color to compare with.&] +[s7; [*/ Return value]-|True if Color is equal to [@3 c].&] +[s3; &] +[s4;%- &] +[s5;:Color`:`:operator`!`=`(Color`)const:%- [@(0.0.255) bool]_[* operator!`=]([_^Color^ Col +or]_[*@3 c])_[@(0.0.255) const]&] +[s7; [%-*C@3 c]-|Color to compare with.&] +[s7; [*/ Return value]-|True if Color is not equal to [@3 c].&] +[s3; &] +[s4;%- &] +[s5;:Color`:`:Serialize`(Stream`&`):%- [@(0.0.255) void]_[* Serialize]([_^Stream^ Stream][@(0.0.255) `& +]_[*@3 s])&] +[s2; Serializes the color to the [^topic`:`/`/Core`/src`/Stream`$en`-us`#Stream`:`:class^ S +tream] [%-*@3 s].&] +[s3; &] +[s4;%- &] +[s5;:Color`:`:FromRaw`(dword`):%- [@(0.0.255) static] [_^Color^ Color]_[* FromRaw]([_^dword^ d +word]_[*@3 co])&] +[s2; Creates a Color based on a platform specific raw dword value.&] +[s7; [%-*C@3 co]-|Raw dword value.&] +[s7; [*/ Return value]-|Color.&] +[s3; &] +[s4;%- &] +[s5;:Color`:`:operator COLORREF`(`)const:%- [* operator_COLORREF]()_[@(0.0.255) const]&] +[s6;%- Win32 specific.&] +[s2; Return COLORREF for Color.&] +[s7; [*/ Return value]-|COLORREF.&] +[s3; &] +[s4;%- &] +[s5;:Color`:`:FromCR`(COLORREF`):%- [@(0.0.255) static] [_^Color^ Color]_[* FromCR](COLORRE +F_[*@3 cr])&] +[s6; Win32 specific.&] +[s2; Creates Color from COLORREF.&] +[s7; [%-*C@3 cr]-|COLORREF.&] +[s7; [*/ Return value]-|Color.&] +[s3; &] +[s4;%- &] +[s5;:Color`:`:operator dword`(`)const:%- [* operator_dword]()_[@(0.0.255) const]&] +[s6;%- Not available on Win32&] +[s7; [*/ Return value]-|[^topic`:`/`/Core`/src`/Color`$en`-us`#Color`:`:GetRaw`(`)const^ G +etRaw]().&] +[s3; &] +[s4;%- &] +[s5;:Color`:`:operator RGBA`(`)const:%- [* operator_RGBA]()_[@(0.0.255) const]&] +[s2; Returns a RGBA structure containing the color information.&] +[s3;%- &] +[s0; &] +[s0; &] +[s0;%- &] +[ {{10000@(113.42.0) [s0; [*@(229)4 Utility functions]]}}&] +[s3;%- &] +[s5;:GetRValue`(dword`):%- [@(0.0.255) int]_[* GetRValue]([_^dword^ dword]_[*@3 c])&] +[s2; Returns red component from a platform specific value.&] +[s7; [%-*C@3 c]-|Platform specific value.&] +[s7; [*/ Return value]-|Red component.&] +[s3; &] +[s4;%- &] +[s5;:GetGValue`(dword`):%- [@(0.0.255) int]_[* GetGValue]([_^dword^ dword]_[*@3 c])&] +[s2; Returns green component from a platform specific value.&] +[s7; [%-*C@3 c]-|Platform specific value.&] +[s7; [*/ Return value]-|Green component.&] +[s3; &] +[s4;%- &] +[s5;:GetBValue`(dword`):%- [@(0.0.255) int]_[* GetBValue]([_^dword^ dword]_[*@3 c])&] +[s2; Returns blue component from a platform specific value.&] +[s7; [%-*C@3 c]-|Platform specific value.&] +[s7; [*/ Return value]-|Blue component.&] +[s3; &] +[s4;%- &] +[s5;:RGB`(byte`,byte`,byte`):%- [_^dword^ dword]_[* RGB]([_^byte^ byte]_[*@3 r], +[_^byte^ byte]_[*@3 g], [_^byte^ byte]_[*@3 b])&] +[s2; Calculates platform specific value from components.&] +[s7; [%-*C@3 r]-|Red component.&] +[s7; [%-*C@3 g]-|Green component.&] +[s7; [%-*C@3 b]-|Blue component.&] +[s7; [*/ Return value]-|Platform specific value.&] +[s3; &] +[s4;%- &] +[s5;:GetHashValue`(Color`):%- [@(0.0.255) unsigned]_[* GetHashValue]([_^Color^ Color]_[*@3 c]) +&] +[s2; Returns a hash value for the color.&] +[s7; [%-*C@3 c]-|Color.&] +[s7; [*/ Return value]-|Hash value.&] +[s3; &] +[s4;%- &] +[s5;:Nvl`(Color`,Color`):%- [_^Color^ Color]_[* Nvl]([_^Color^ Color]_[*@3 a], +[_^Color^ Color]_[*@3 b])&] +[s2; Returns first parameter if it is not Null, second otherwise.&] +[s7; [%-*C@3 a]-|Color.&] +[s7; [%-*C@3 b]-|Color.&] +[s7; [*/ Return value]-|a if not Null, b otherwise.&] +[s3; &] +[s4;%- &] +[s5;:AsString`(const Color`&`):%- [@(0.0.255) template]_<>_[_^String^ String]_[* AsString]( +[@(0.0.255) const]_[_^Color^ Color][@(0.0.255) `&]_[*@3 c])&] +[s2; Converts Color to textual form.&] +[s7; [%-*C@3 c]-|Color.&] +[s7; [*/ Return value]-|Textual form.&] +[s3; &] +[s4;%- &] +[s5;:RGBtoHSV`(double`,double`,double`,double`&`,double`&`,double`&`):%- [@(0.0.255) vo +id]_[* RGBtoHSV]([@(0.0.255) double]_[*@3 r], [@(0.0.255) double]_[*@3 g], +[@(0.0.255) double]_[*@3 b], [@(0.0.255) double`&]_[*@3 h], [@(0.0.255) double`&]_[*@3 s], +[@(0.0.255) double`&]_[*@3 v])&] +[s2; Transforms an `[R,G,B`] color triplet (each of the components +is supposed to be in the range `[0..1`]) into an `[H,S,V`] triplet +(again all components are in the range `[0..1`]). This effectively +transforms the RGB cube to a cone in which color selection more +intuitively matches our our visual perception ([/ hue] corresponds +to the tint of the color, [/ saturation] to the richness of the +color hue and [/ value] corresponds to luminance or brightness). +&] +[s2; &] +[s2; The mathematical formula used to convert between the two color +spaces are:&] +[s2; &] +[s2; v `= max(r, g, b)&] +[s2; s `= 1 `- min(r, g, b) / v&] +[s2; h `= (x `- min(r, g, b)) / (max(r, g, b) `- min(r, g, b))&] +[s2; &] +[s2; where [/ x] is the color component which is neither minimum nor +maximum. There are six combinations for this, in every even h +is taken, in every odd 1`-h. The six combinations correspond +to six points on the color wheel forming the base of the HSV +cone `- pure red, yellow, green, cyan, blue, and magenta. The +color component ranges along the circumference are the following +(capital letters denote maximum component value, minuscule letters +minimum): Rgb `-> RGb `-> rGb `-> rGB `-> rgB `-> RgB.&] +[s2; &] +[s2; An easy way to visualize the HSV transform based on the RGB +cube is: imagine a slight deformation of the cube where the tip +of the cone corresponds to the black RBG cube vertex, the opposite +(white) RGB cube vertex corresponds to the center of the base +circle of the HSV cone and the remaining six RGB cube vertices +get projected on the circumference of the cone base as explained +in the preceding paragraph.&] +[s2; &] +[s7; [%-*C@3 r]-|input red component `[0..1`]&] +[s7; [%-*C@3 g]-|input green component `[0..1`]&] +[s7; [%-*C@3 b]-|input blue component `[0..1`]&] +[s7; [%-*C@3 h]-|output hue `[0..1`], i.e. color tint&] +[s7; [%-*C@3 s]-|output saturation `[0..1`]. Maximum saturation (1) +corresponds to the `"purest`" basic color (one of the six), whereas +minimum saturation (0) is gray or white.&] +[s7; [%-*C@3 v]-|output brightness `[0..1`].&] +[s3; &] +[s4;%- &] +[s5;:HSVtoRGB`(double`,double`,double`,double`&`,double`&`,double`&`):%- [@(0.0.255) vo +id]_[* HSVtoRGB]([@(0.0.255) double]_[*@3 h], [@(0.0.255) double]_[*@3 s], +[@(0.0.255) double]_[*@3 v], [@(0.0.255) double`&]_[*@3 r], [@(0.0.255) double`&]_[*@3 g], +[@(0.0.255) double`&]_[*@3 b])&] +[s2; Transformes an HSV triplet (each of the components is supposed +to lie in the interval `[0..1`]) into an RGB triplet (again with +component ranges `[0..1`]). This projects the HSV cone (as explained +in the preceding section) back onto the RGB cube.&] +[s7; [%-*C@3 h]-|input hue, i.e. color tint `[0..1`]&] +[s7; [%-*C@3 s]-|input saturation, i.e. color `"purity`" `[0..1`]&] +[s7; [%-*C@3 v]-|value `- luminance or brightness `[0..1`]&] +[s7; [%-*C@3 r]-|output red component `[0..1`]&] +[s7; [%-*C@3 g]-|output green component `[0..1`]&] +[s7; [%-*C@3 b]-|output blue component `[0..1`]&] +[s3; &] +[s4;%- &] +[s5;:HsvColorf`(double`,double`,double`):%- [_^Color^ Color]_[* HsvColorf]([@(0.0.255) doub +le]_[*@3 h], [@(0.0.255) double]_[*@3 s], [@(0.0.255) double]_[*@3 v])&] +[s2; Converts an HSV color triplet into a [* Color] object. The H, +S, and V components are supposed to be in the range `[0..1`].&] +[s7; [%-*C@3 h]-|input hue `[0..1`]&] +[s7; [%-*C@3 s]-|input saturation `[0..1`]&] +[s7; [%-*C@3 v]-|input value aka brightness `[0..1`]&] +[s7; [*/ Return value]-|the [* Color] object with the given HSV components&] +[s3; &] +[s4;%- &] +[s5;:Blend`(Color`,Color`,int`):%- [_^Color^ Color]_[* Blend]([_^Color^ Color]_[*@3 c1], +[_^Color^ Color]_[*@3 c2], [@(0.0.255) int]_[*@3 alpha]_`=_[@3 128])&] +[s2; Blends two colors.&] +[s7; [%-*C@3 c1]-|First color.&] +[s7; [%-*C@3 c2]-|Second color.&] +[s7; [%-*C@3 alpha]-|Blending factor in the range 0..255.&] +[s7; [*/ Return value]-|Blended color `- (255 `- alpha) / 255.0 `* c1 +`+ alpha / 255.0 `* c2.&] +[s3; &] +[s4;%- &] +[s5;:ColorToHtml`(Color`):%- [_^String^ String]_[* ColorToHtml]([_^Color^ Color]_[*@3 color]) +&] +[s2; Converts Color to the textual format used in HTML (into hexadecimal +form like #ffffff for white).&] +[s7; [%-*C@3 color]-|Color.&] +[s7; [*/ Return value]-|HTML text.&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:ColorFromText`(const char`*`):%- [_^Upp`:`:Color^ Color]_[* ColorFromText]([@(0.0.255) c +onst]_[@(0.0.255) char]_`*[*@3 s])&] +[s2; Converts text to Color. Allowed formats are 3 decimal numbers +in range 0`-255, representing r, g, b colors and separated by +`',`' or `';`' or `'.`' or `' `', or the text must exactly contain +6 hexadecimal digits representing RRGGBB values.&] +[s3; &] +[s4;%- &] +[s5;:GrayColor`(int`):%- [_^Color^ Color]_[* GrayColor]([@(0.0.255) int]_[*@3 a]_`=_[@3 128])&] +[s2; Returns a gray color of intensity [%-*@3 a].&] +[s3; &] +[s4;%- &] +[s5;:Grayscale`(const Color`&`):%- [@(0.0.255) int]_[* Grayscale]([@(0.0.255) const]_[_^Color^ C +olor][@(0.0.255) `&]_[*@3 c])&] +[s2; Converts a color [%-*@3 c][%- to grayscale].&] +[s3; &] +[s4;%- &] +[s5;:IsDark`(Color`):%- [@(0.0.255) bool]_[* IsDark]([_^Color^ Color]_[*@3 c])&] +[s2; True if [%-*@3 c] grayscale level is lower than 80.&] +[s3; &] +[s4;%- &] +[s5;:IsLight`(Color`):%- [@(0.0.255) bool]_[* IsLight]([_^Color^ Color]_[*@3 c])&] +[s2; True if [%-*@3 c] grayscale is higher than 175 (255 `- 80).&] +[s3; &] +[s4;%- &] +[s5;:StraightColor`(RGBA`):%- [_^Color^ Color]_[* StraightColor]([_^RGBA^ RGBA]_[*@3 rgba])&] +[s2; Converts a RGBA structure [%-*@3 rgba] to a [* Color].&] +[s3; &] +[s0;3 &] +[ {{10000@(113.42.0) [s0; [*@(229)4 Color constants]]}}&] +[s3; &] +[s9; Predefined colors are represented by functions that return the +predefined color value.&] +[s3; &] +[s0; &] +[s5;:Black`(`):%- [_^Color^ Color]_[* Black]()&] +[s2; Black.&] +[s3;%- &] +[s4;%- &] +[s5;:Gray`(`):%- [_^Color^ Color]_[* Gray]()&] +[s2; Gray.&] +[s3;%- &] +[s4;%- &] +[s5;:LtGray`(`):%- [_^Color^ Color]_[* LtGray]()&] +[s2; Light gray.&] +[s3;%- &] +[s4;%- &] +[s5;:WhiteGray`(`):%- [_^Color^ Color]_[* WhiteGray]()&] +[s2; White gray.&] +[s3;%- &] +[s4;%- &] +[s5;:White`(`):%- [_^Color^ Color]_[* White]()&] +[s2; White.&] +[s3;%- &] +[s4;%- &] +[s5;:Red`(`):%- [_^Color^ Color]_[* Red]()&] +[s2; Red.&] +[s3;%- &] +[s4;%- &] +[s5;:Green`(`):%- [_^Color^ Color]_[* Green]()&] +[s2; Green.&] +[s3;%- &] +[s4;%- &] +[s5;:Brown`(`):%- [_^Color^ Color]_[* Brown]()&] +[s2; Brown.&] +[s3;%- &] +[s4;%- &] +[s5;:Blue`(`):%- [_^Color^ Color]_[* Blue]()&] +[s2; Blue.&] +[s3;%- &] +[s4;%- &] +[s5;:Magenta`(`):%- [_^Color^ Color]_[* Magenta]()&] +[s2; Magenta.&] +[s3;%- &] +[s4;%- &] +[s5;:Cyan`(`):%- [_^Color^ Color]_[* Cyan]()&] +[s2; Cyan.&] +[s3;%- &] +[s4;%- &] +[s5;:Yellow`(`):%- [_^Color^ Color]_[* Yellow]()&] +[s2; Yellow.&] +[s3; &] +[s4;%- &] +[s5;:LtRed`(`):%- [_^Color^ Color]_[* LtRed]()&] +[s2; Light red.&] +[s3;%- &] +[s4;%- &] +[s5;:LtGreen`(`):%- [_^Color^ Color]_[* LtGreen]()&] +[s2; Light green.&] +[s3;%- &] +[s4;%- &] +[s5;:LtYellow`(`):%- [_^Color^ Color]_[* LtYellow]()&] +[s2; Light yellow.&] +[s3;%- &] +[s4;%- &] +[s5;:LtBlue`(`):%- [_^Color^ Color]_[* LtBlue]()&] +[s2; Light blue.&] +[s3;%- &] +[s4;%- &] +[s5;:LtMagenta`(`):%- [_^Color^ Color]_[* LtMagenta]()&] +[s2; Light magenta.&] +[s3;%- &] +[s4;%- &] +[s5;:LtCyan`(`):%- [_^Color^ Color]_[* LtCyan]()&] +[s2; Light cyan.&] +[s3;%- &] [s0; ]] \ No newline at end of file diff --git a/uppsrc/Core/src.tpp/ConditionVariable$en-us.tpp b/uppsrc/Core/src.tpp/ConditionVariable_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/ConditionVariable$en-us.tpp rename to uppsrc/Core/src.tpp/ConditionVariable_en-us.tpp diff --git a/uppsrc/Core/src.tpp/Convert$en-us.tpp b/uppsrc/Core/src.tpp/Convert_en-us.tpp similarity index 97% rename from uppsrc/Core/src.tpp/Convert$en-us.tpp rename to uppsrc/Core/src.tpp/Convert_en-us.tpp index 8acf4097c..86d5ee2db 100644 --- a/uppsrc/Core/src.tpp/Convert$en-us.tpp +++ b/uppsrc/Core/src.tpp/Convert_en-us.tpp @@ -1,616 +1,616 @@ -topic "Convert"; -[2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,0#27521748481378242620020725143825:desc] -[0 $$3,0#96390100711032703541132217272105:end] -[H6;0 $$4,0#05600065144404261032431302351956:begin] -[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] -[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] -[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] -[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] -[b42;2 $$9,9#13035079074754324216151401829390:normal] -[{_}%EN-US -[ {{10000@(113.42.0) [s0; [*@7;4 Convert]]}}&] -[s3;%- &] -[s1;:Convert`:`:class:%- [@(0.0.255)3 class][3 _][*3 Convert]&] -[s9; Convert`-derived classes serve as bidirectional Value`-Value -converters. One direction is represented by Format method and -usually converts the Value to the textual representation. Reverse -direction is represented by the Scan method.&] -[s9; If the conversion is not possible (e.g. due to invalid textual -representation), convert methods should return `"ErrorValue`" -to indicate the problem.&] -[s3; &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] -[s3;%- &] -[s5;:Convert`:`:Format`(const Value`&`)const:%- [@(0.0.255) virtual] -[_^Value^ Value]_[* Format]([@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_[*@3 q])_[@(0.0.255) c -onst]&] -[s2; [%- Converts the Value. Default ]implementation uses Value`::ToString -to convert the Value.&] -[s7; [%-*C@3 q]-|Value.&] -[s7; [*/ Return value]-|Converted Value.&] -[s3; &] -[s4;%- &] -[s5;:Convert`:`:Scan`(const Value`&`)const:%- [@(0.0.255) virtual] -[_^Value^ Value]_[* Scan]([@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_[*@3 text])_[@(0.0.255) c -onst]&] -[s2; Converts the Value in reverse direction. Default implementation -returns [@3 text] (no conversion is performed).&] -[s7; [%-*C@3 text]-|Value.&] -[s7; [*/ Return value]-|Converted Value.&] -[s3; &] -[s4;%- &] -[s5;:Convert`:`:Filter`(int`)const:%- [@(0.0.255) virtual] [@(0.0.255) int]_[* Filter]([@(0.0.255) i -nt]_[*@3 chr])_[@(0.0.255) const]&] -[s2; Adjusts characters allowed in textual representation of Value.&] -[s7; [%-*C@3 chr]-|Character to adjust.&] -[s7; [*/ Return value]-|Adjusted character. Zero indicates that character -is rejected. Filter is allowed to alter the input character (e.g. -by upper`-casing it, changing `',`' to `'.`' etc..). Default -implementation returns unaltered [@3 chr].&] -[s3; &] -[s4;%- &] -[s5;:Convert`:`:operator`(`)`(const Value`&`)const:%- [_^Value^ Value]_[* operator()]([@(0.0.255) c -onst]_[_^Value^ Value][@(0.0.255) `&]_[*@3 q])_[@(0.0.255) const]&] -[s2; Invokes the Format method. Helper functor`-like syntax.&] -[s7; [%-*C@3 q]-|Value.&] -[s7; [*/ Return value]-|Converted Value.&] -[s3; &] -[s0;3 &] -[s0;%- &] -[s0;%- &] -[ {{10000@(113.42.0) [s0; [*@7;4 ConvertDate]]}}&] -[s3;%- &] -[s1;:ConvertDate`:`:class:%- [@(0.0.255)3 class][3 _][*3 ConvertDate][3 _:_][@(0.0.255)3 public][3 _ -][*@3;3 Convert]&] -[s9; Date Converter. Textual date format depends on actual regional -settings.&] -[s9; &] -[s0;%- [%% Derived from ][^topic`:`/`/Core`/src`/Convert`$en`-us`#Convert`:`:class^ Conve -rt]&] -[s3; &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] -[s3;%- &] -[s5;:ConvertDate`:`:ConvertDate`(Date`,Date`,bool`):%- [* ConvertDate]([_^Date^ Date]_[*@3 m -inval]_`=_Date`::Low(), [_^Date^ Date]_[*@3 maxval]_`=_Date`::High(), -[@(0.0.255) bool]_[*@3 notnull]_`=_[@(0.0.255) false])&] -[s2; Constructor.&] -[s7; [%-*C@3 minval]-|Minimum Date allowed.&] -[s7; [%-*C@3 maxval]-|Maximum Date allowed.&] -[s7; [%-*C@3 notnull]-|Disallow Nulls.&] -[s3; &] -[s4;%- &] -[s5;:ConvertDate`:`:`~ConvertDate`(`):%- [@(0.0.255) `~][* ConvertDate]()&] -[s2; Default destructor.&] -[s3;%- &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] -[s3;%- &] -[s5;:ConvertDate`:`:MinMax`(Date`,Date`):%- [_^ConvertDate^ ConvertDate][@(0.0.255) `&]_[* M -inMax]([_^Date^ Date]_[*@3 `_min], [_^Date^ Date]_[*@3 `_max])&] -[s2; Sets the range of Dates allowed.&] -[s7; [%-*C@3 `_min]-|Minimal Date.&] -[s7; [%-*C@3 `_max]-|Maximal Date.&] -[s7; [*/ Return value]-|`*this.&] -[s3; &] -[s4;%- &] -[s5;:ConvertDate`:`:Min`(Date`):%- [_^ConvertDate^ ConvertDate][@(0.0.255) `&]_[* Min]([_^Date^ D -ate]_[*@3 `_min])&] -[s2; Sets minimal allowed Date.&] -[s7; [%-*C@3 `_min]-|Minimal Date.&] -[s7; [*/ Return value]-|`*this.&] -[s3; &] -[s4;%- &] -[s5;:ConvertDate`:`:Max`(Date`):%- [_^ConvertDate^ ConvertDate][@(0.0.255) `&]_[* Max]([_^Date^ D -ate]_[*@3 `_max])&] -[s2; Sets maximal allowed Date.&] -[s7; [%-*C@3 `_max]-|Maximal Date.&] -[s7; [*/ Return value]-|`*this.&] -[s3; &] -[s4;%- &] -[s5;:ConvertDate`:`:NotNull`(bool`):%- [_^ConvertDate^ ConvertDate][@(0.0.255) `&]_[* NotNu -ll]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2; Allows/disallows Null dates. (Null dates are represented by -the empty text).&] -[s7; [%-*C@3 b]-|true to disallow Null dates.&] -[s7; [*/ Return value]-|`*this.&] -[s3; &] -[s4;%- &] -[s5;:ConvertDate`:`:NoNotNull`(`):%- [_^ConvertDate^ ConvertDate][@(0.0.255) `&]_[* NoNotNu -ll]()&] -[s2; Same as [^topic`:`/`/Core`/src`/Convert`$en`-us`#ConvertDate`:`:NotNull`(bool`)^ N -otNull](false).&] -[s3; &] -[s4;%- &] -[s5;:ConvertDate`:`:GetMin`(`)const:%- [_^Date^ Date]_[* GetMin]()_[@(0.0.255) const]&] -[s7; [*/ Return value]-|Minimal allowed date.&] -[s3; &] -[s4;%- &] -[s5;:ConvertDate`:`:GetMax`(`)const:%- [_^Date^ Date]_[* GetMax]()_[@(0.0.255) const]&] -[s7; [*/ Return value]-|Maximal allowed date.&] -[s3; &] -[s4;%- &] -[s5;:ConvertDate`:`:IsNotNull`(`)const:%- [@(0.0.255) bool]_[* IsNotNull]()_[@(0.0.255) con -st]&] -[s7; [*/ Return value]-|true is Nulls are disallowed.&] -[s3; &] -[s0; &] -[s0;%- &] -[s0;%- &] -[ {{10000@(113.42.0) [s0; [*@7;4 ConvertDouble]]}}&] -[s3; &] -[s1;:ConvertDouble`:`:class:%- [@(0.0.255)3 class][3 _][*3 ConvertDouble][3 _:_][@(0.0.255)3 pub -lic][3 _][*@3;3 Convert]&] -[s9; Floating point number converter.&] -[s0; &] -[s0;%- [%%/ Derived from][%% ][^topic`:`/`/Core`/src`/Convert`$en`-us`#Convert`:`:class^ C -onvert]&] -[s3; &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] -[s3;%- &] -[s5;:ConvertDouble`:`:ConvertDouble`(double`,double`,bool`):%- [* ConvertDouble]([@(0.0.255) d -ouble]_[*@3 minval]_`=_DOUBLE`_NULL`_LIM, [@(0.0.255) double]_[*@3 maxval]_`=_`-DOUBLE`_ -NULL`_LIM, [@(0.0.255) bool]_[*@3 notnull]_`=_[@(0.0.255) false])&] -[s2; Constructor.&] -[s7; [%-*C@3 minval]-|Lower limit `- default value means there is no -limit.&] -[s7; [%-*C@3 maxval]-|Upper limit `- default value means there is no -limit.&] -[s7; [%-*C@3 notnull]-|If true, Nulls are not allowed.&] -[s3; &] -[s4;%- &] -[s5;:ConvertDouble`:`:`~ConvertDouble`(`):%- [@(0.0.255) `~][* ConvertDouble]()&] -[s2; Default destructor.&] -[s3;%- &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] -[s3;%- &] -[s5;:ConvertDouble`:`:Pattern`(const char`*`):%- [_^ConvertDouble^ ConvertDouble][@(0.0.255) `& -]_[* Pattern]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 p])&] -[s2; Formatting tag used for conversion to textual representation -(includes standard printf formatting tags, see Format function -for description). Default tag is [@4 %.10g]. After setting a new -pattern, ConvertDouble formats simple example number (Format(1.1)) -and if it detects character `',`' in resulting string, Filter -method forces `',`' to be used instead of `'.`' for decimal point.&] -[s7; [%-*C@3 p]-|Pattern.&] -[s7; [*/ Return value]-|`*this.&] -[s3; &] -[s4;%- &] -[s5;:ConvertDouble`:`:MinMax`(double`,double`):%- [_^ConvertDouble^ ConvertDouble][@(0.0.255) `& -]_[* MinMax]([@(0.0.255) double]_[*@3 `_min], [@(0.0.255) double]_[*@3 `_max])&] -[s2; Sets minimal and maximal allowed numbers.&] -[s7; [%-*C@3 `_min]-|Lower limit.&] -[s7; [%-*C@3 `_max]-|Upper limit.&] -[s7; [*/ Return value]-|`*this.&] -[s3; &] -[s4;%- &] -[s5;:ConvertDouble`:`:Min`(double`):%- [_^ConvertDouble^ ConvertDouble][@(0.0.255) `&]_[* M -in]([@(0.0.255) double]_[*@3 `_min])&] -[s2; Sets minimal allowed number.&] -[s7; [%-*C@3 `_min]-|Lower limit.&] -[s7; [*/ Return value]-|`*this.&] -[s3; &] -[s4;%- &] -[s5;:ConvertDouble`:`:Max`(double`):%- [_^ConvertDouble^ ConvertDouble][@(0.0.255) `&]_[* M -ax]([@(0.0.255) double]_[*@3 `_max])&] -[s2; Sets maximal allowed number.&] -[s7; [%-*C@3 `_max]-|Upper limit.&] -[s7; [*/ Return value]-|`*this.&] -[s3; &] -[s4;%- &] -[s5;:ConvertDouble`:`:NotNull`(bool`):%- [_^ConvertDouble^ ConvertDouble][@(0.0.255) `&]_ -[* NotNull]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2; Allows/disallows Nulls. (Nulls are represented by the empty -text).&] -[s7; [%-*C@3 b]-|true to disallow.&] -[s7; [*/ Return value]-|`*this.&] -[s3; &] -[s4;%- &] -[s5;:ConvertDouble`:`:NoNotNull`(`):%- [_^ConvertDouble^ ConvertDouble][@(0.0.255) `&]_[* N -oNotNull]()&] -[s2; Equivalent to [^topic`:`/`/Core`/src`/Convert`$en`-us`#ConvertDouble`:`:NotNull`(bool`)^ N -otNull](false).&] -[s3; &] -[s4;%- &] -[s5;:ConvertDouble`:`:GetMin`(`)const:%- [@(0.0.255) double]_[* GetMin]()_[@(0.0.255) const -]&] -[s7; [*/ Return value]-|Lower limit.&] -[s3; &] -[s4;%- &] -[s5;:ConvertDouble`:`:GetMax`(`)const:%- [@(0.0.255) double]_[* GetMax]()_[@(0.0.255) const -]&] -[s7; [*/ Return value]-|Upper limit.&] -[s3; &] -[s4;%- &] -[s5;:ConvertDouble`:`:IsNotNull`(`)const:%- [@(0.0.255) bool]_[* IsNotNull]()_[@(0.0.255) c -onst]&] -[s7; [*/ Return value]-|true is Nulls are disallowed.&] -[s3; &] -[s0; &] -[s0; &] -[s0;%- &] -[ {{10000@(113.42.0) [s0; [*@7;4 ConvertInt]]}}&] -[s3; &] -[s1;:ConvertInt`:`:class:%- [@(0.0.255)3 class][3 _][*3 ConvertInt][3 _:_][@(0.0.255)3 public][3 _ -][*@3;3 Convert]&] -[s9; Integer converter.&] -[s0; &] -[s0;%- [%%/ Derived from][%% ][^topic`:`/`/Core`/src`/Convert`$en`-us`#Convert`:`:class^ C -onvert]&] -[s3; &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] -[s3;%- &] -[s5;:ConvertInt`:`:ConvertInt`(int`,int`,bool`):%- [* ConvertInt]([@(0.0.255) int]_[*@3 min -val]_`=_`-INT`_MAX, [@(0.0.255) int]_[*@3 maxval]_`=_INT`_MAX, [@(0.0.255) bool]_[*@3 not -null]_`=_[@(0.0.255) false])&] -[s2; Constructor.&] -[s7; [%-*C@3 minval]-|Lower limit. Default value results in no limit.&] -[s7; [%-*C@3 maxval]-|Upper limit. Default value results in no limit.&] -[s7; [%-*C@3 notnull]-|If true, Nulls are not allowed.&] -[s3; &] -[s4;%- &] -[s5;:ConvertInt`:`:`~ConvertInt`(`):%- [@(0.0.255) `~][* ConvertInt]()&] -[s2; Default destructor.&] -[s3;%- &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] -[s3;%- &] -[s5;:ConvertInt`:`:MinMax`(int`,int`):%- [_^ConvertInt^ ConvertInt][@(0.0.255) `&]_[* MinMa -x]([@(0.0.255) int]_[*@3 `_min], [@(0.0.255) int]_[*@3 `_max])&] -[s2; Sets minimal and maximal allowed numbers.&] -[s7; [%-*C@3 `_min]-|Lower limit.&] -[s7; [%-*C@3 `_max]-|Upper limit.&] -[s7; [*/ Return value]-|`*this.&] -[s3; &] -[s4;%- &] -[s5;:ConvertInt`:`:Min`(int`):%- [_^ConvertInt^ ConvertInt][@(0.0.255) `&]_[* Min]([@(0.0.255) i -nt]_[*@3 `_min])&] -[s2; Sets minimal allowed number.&] -[s7; [%-*C@3 `_min]-|Lower limit.&] -[s7; [*/ Return value]-|`*this.&] -[s3; &] -[s4;%- &] -[s5;:ConvertInt`:`:Max`(int`):%- [_^ConvertInt^ ConvertInt][@(0.0.255) `&]_[* Max]([@(0.0.255) i -nt]_[*@3 `_max])&] -[s2; Sets maximal allowed number.&] -[s7; [%-*C@3 `_max]-|Upper limit.&] -[s7; [*/ Return value]-|`*this.&] -[s3; &] -[s4;%- &] -[s5;:ConvertInt`:`:NotNull`(bool`):%- [_^ConvertInt^ ConvertInt][@(0.0.255) `&]_[* NotNull]( -[@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2; Allows/disallows Nulls. (Nulls are represented by the empty -text).&] -[s7; [%-*C@3 b]-|true to disallow.&] -[s7; [*/ Return value]-|`*this.&] -[s3; &] -[s4;%- &] -[s5;:ConvertInt`:`:NoNotNull`(`):%- [_^ConvertInt^ ConvertInt][@(0.0.255) `&]_[* NoNotNull]( -)&] -[s2; Equivalent to [^topic`:`/`/Core`/src`/Convert`$en`-us`#ConvertInt`:`:NotNull`(bool`)^ N -otNull](false).&] -[s7; [*/ Return value]-|`*this.&] -[s3; &] -[s4;%- &] -[s5;:ConvertInt`:`:GetMin`(`)const:%- [@(0.0.255) int]_[* GetMin]()_[@(0.0.255) const]&] -[s7; [*/ Return value]-|Lower limit.&] -[s3; &] -[s4;%- &] -[s5;:ConvertInt`:`:GetMax`(`)const:%- [@(0.0.255) int]_[* GetMax]()_[@(0.0.255) const]&] -[s7; [*/ Return value]-|Upper limit.&] -[s3; &] -[s4;%- &] -[s5;:ConvertInt`:`:IsNotNull`(`)const:%- [@(0.0.255) bool]_[* IsNotNull]()_[@(0.0.255) cons -t]&] -[s7; [*/ Return value]-|true if null are not allowed.&] -[s3; &] -[s0; &] -[s0; &] -[s0;%- &] -[ {{10000@(113.42.0) [s0; [*@7;4 ConvertString]]}}&] -[s3; &] -[s1;:ConvertString`:`:class:%- [@(0.0.255)3 class][3 _][*3 ConvertString][3 _:_][@(0.0.255)3 pub -lic][3 _][*@3;3 Convert]&] -[s9; String `"converter`". Of course, String already is textual representation -of itself, the real purpose of this class is to introduce constraints -of String value.&] -[s0; &] -[s0;%- [%%/ Derived from][%% ][^topic`:`/`/Core`/src`/Convert`$en`-us`#Convert`:`:class^ C -onvert]&] -[s3; &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] -[s3; &] -[s5;:ConvertString`:`:ConvertString`(int`,bool`):%- [* ConvertString]([@(0.0.255) int]_[*@3 m -axlen]_`=_INT`_MAX, [@(0.0.255) bool]_[*@3 notnull]_`=_[@(0.0.255) false])&] -[s2; Constructor.&] -[s7; [%-*C@3 maxlen]-|Maximum length `- default is unlimited.&] -[s7; [%-*C@3 notnull]-|If true, empty strings are not allowed.&] -[s3; &] -[s4;%- &] -[s5;:ConvertString`:`:`~ConvertString`(`):%- [@(0.0.255) `~][* ConvertString]()&] -[s2; Default destructor.&] -[s3;%- &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] -[s3; &] -[s5;:ConvertString`:`:MaxLen`(int`):%- [_^ConvertString^ ConvertString][@(0.0.255) `&]_[* M -axLen]([@(0.0.255) int]_[*@3 `_maxlen])&] -[s2; Sets maximum length of String allowed.&] -[s7; [%-*C@3 `_maxlen]-|Length.&] -[s7; [*/ Return value]-|`*this.&] -[s3; &] -[s4;%- &] -[s5;:ConvertString`:`:GetMaxLength`(`)const:%- [@(0.0.255) int]_[* GetMaxLength]()_[@(0.0.255) c -onst]&] -[s7; [*/ Return value]-|Maximum length of String allowed.&] -[s3; &] -[s4;%- &] -[s5;:ConvertString`:`:NotNull`(bool`):%- [_^ConvertString^ ConvertString][@(0.0.255) `&]_ -[* NotNull]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2; Disallows empty Strings.&] -[s7; [%-*C@3 b]-|true to disallow.&] -[s7; [*/ Return value]-|`*this.&] -[s3; &] -[s4;%- &] -[s5;:ConvertString`:`:NoNotNull`(`):%- [_^ConvertString^ ConvertString][@(0.0.255) `&]_[* N -oNotNull]()&] -[s2; Same as [^topic`:`/`/Core`/src`/Convert`$en`-us`#ConvertString`:`:NotNull`(bool`)^ N -otNull](false).&] -[s3; &] -[s4;%- &] -[s5;:ConvertString`:`:IsNotNull`(`)const:%- [@(0.0.255) bool]_[* IsNotNull]()_[@(0.0.255) c -onst]&] -[s7; [*/ Return value]-|true mean empty Strings are not allowed.&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:ConvertString`:`:TrimLeft`(bool`):%- [_^Upp`:`:ConvertString^ ConvertString -][@(0.0.255) `&]_[* TrimLeft]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s5;:Upp`:`:ConvertString`:`:TrimRight`(bool`):%- [_^Upp`:`:ConvertString^ ConvertStrin -g][@(0.0.255) `&]_[* TrimRight]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s5;:Upp`:`:ConvertString`:`:TrimBoth`(bool`):%- [_^Upp`:`:ConvertString^ ConvertString -][@(0.0.255) `&]_[* TrimBoth]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2; Whitechars on the left/right/both side(s) are removed before -checking count of characters or nullness.&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:ConvertString`:`:IsTrimLeft`(`)const:%- [@(0.0.255) bool]_[* IsTrimLeft]()_[@(0.0.255) c -onst]&] -[s5;:Upp`:`:ConvertString`:`:IsTrimRight`(`)const:%- [@(0.0.255) bool]_[* IsTrimRight]()_ -[@(0.0.255) const]&] -[s2; Checks whether TrimLeft or TrimRight (or both) is active.&] -[s0; &] -[s0; &] -[s0;%- &] -[ {{10000@(113.42.0) [s0; [*@7;4 ConvertString]]}}&] -[s3; &] -[s1;:ConvertTime`:`:class:%- [@(0.0.255)3 class][3 _][*3 ConvertTime][3 _:_][@(0.0.255)3 public][3 _ -][*@3;3 Convert]&] -[s9; Time converter.&] -[s0; &] -[s0;%- [%%/ Derived from][%% ][^topic`:`/`/Core`/src`/Convert`$en`-us`#Convert`:`:class^ C -onvert]&] -[s3; &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] -[s3;%- &] -[s5;:ConvertTime`:`:ConvertTime`(Time`,Time`,bool`):%- [* ConvertTime]([_^Time^ Time]_[*@3 m -inval]_`=_ToTime(Date`::Low()), [_^Time^ Time]_[*@3 maxval]_`=_ToTime(Date`::High()), -[@(0.0.255) bool]_[*@3 notnull]_`=_[@(0.0.255) false])&] -[s2;%- Constructor.&] -[s7; [%-*C@3 minval]-|Lower limit. Default means there is no limit.&] -[s7; [%-*C@3 maxval]-|Upper limit. Default means there is no limit.&] -[s7; [%-*C@3 notnull]-|true disallows Nulls.&] -[s3;%- &] -[s4;%- &] -[s5;:ConvertTime`:`:`~ConvertTime`(`):%- [@(0.0.255) `~][* ConvertTime]()&] -[s2; Default destructor.&] -[s3; &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] -[s3;%- &] -[s5;:ConvertTime`:`:MinMax`(Time`,Time`):%- [_^ConvertTime^ ConvertTime][@(0.0.255) `&]_[* M -inMax]([_^Time^ Time]_[*@3 `_min], [_^Time^ Time]_[*@3 `_max])&] -[s2;%- Time limeits.&] -[s7; [%-*C@3 `_min]-|Lower limit.&] -[s7; [%-*C@3 `_max]-|Upper limit.&] -[s7; [*/ Return value]-|`*this.&] -[s3; &] -[s4;%- &] -[s5;:ConvertTime`:`:NotNull`(bool`):%- [_^ConvertTime^ ConvertTime][@(0.0.255) `&]_[* NotNu -ll]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2; Disallows empty Strings.&] -[s7; [%-*C@3 b]-|true to disallow.&] -[s7; [*/ Return value]-|`*this.&] -[s3; &] -[s4;%- &] -[s5;:ConvertTime`:`:NoNotNull`(`):%- [_^ConvertTime^ ConvertTime][@(0.0.255) `&]_[* NoNotNu -ll]()&] -[s2; Same as [^topic`:`/`/Core`/src`/Convert`$en`-us`#ConvertTime`:`:NotNull`(bool`)^ N -otNull](false).&] -[s3; &] -[s4;%- &] -[s5;:ConvertTime`:`:TimeAlways`(bool`):%- [_^ConvertTime^ ConvertTime][@(0.0.255) `&]_[* Ti -meAlways]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2; If active, Format always shows time, even if the Value is Date -or is at midnight.&] -[s3; &] -[s4;%- &] -[s5;:ConvertTime`:`:DayEnd`(bool`):%- [_^ConvertTime^ ConvertTime][@(0.0.255) `&]_[* DayEnd -]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2; If active, when Scan encounters date without time, it sets the -time to 23:59:59.&] -[s3; &] -[s4;%- &] -[s5;:ConvertTime`:`:GetMin`(`)const:%- [_^Time^ Time]_[* GetMin]()_[@(0.0.255) const]&] -[s7; [*/ Return value]-|Lower limit.&] -[s3; &] -[s4;%- &] -[s5;:ConvertTime`:`:GetMax`(`)const:%- [_^Time^ Time]_[* GetMax]()_[@(0.0.255) const]&] -[s7; [*/ Return value]-|Upper limit.&] -[s3; &] -[s4;%- &] -[s5;:ConvertTime`:`:IsNotNull`(`)const:%- [@(0.0.255) bool]_[* IsNotNull]()_[@(0.0.255) con -st]&] -[s7; [*/ Return value]-|true means Nulls are disallowed.&] -[s3; &] -[s0; &] -[s0; &] -[s0;%- &] -[ {{10000@(113.42.0) [s0; [*@7;4 FormatConvert]]}}&] -[s3; &] -[s1;:FormatConvert`:`:class:%- [@(0.0.255)3 class][3 _][*3 FormatConvert][3 _:_][@(0.0.255)3 pub -lic][3 _][*@3;3 Convert]&] -[s9; This unidirectional Convert class (only Format direction implemented) -converts single Value or ValueArray using Format function and -specified formatter pattern.&] -[s9; &] -[s0;%- [%%/ Derived from][%% ][^topic`:`/`/Core`/src`/Convert`$en`-us`#Convert`:`:class^ C -onvert]&] -[s3; &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] -[s3;%- &] -[s5;:FormatConvert`:`:SetFormat`(const char`*`):%- [@(0.0.255) void]_[* SetFormat]([@(0.0.255) c -onst]_[@(0.0.255) char]_`*[*@3 fmt])&] -[s2; Sets formatting pattern.&] -[s7; [%-*C@3 fmt]-|The pattern.&] -[s3; &] -[s0;3 &] -[s0;3 &] -[s0;%- &] -[ {{10000@(113.42.0) [s0; [*@7;4 JoinConvert]]}}&] -[s3; &] -[s1;:JoinConvert`:`:class:%- [@(0.0.255)3 class][3 _][*3 JoinConvert][3 _:_][@(0.0.255)3 public][3 _ -][*@3;3 Convert]&] -[s9; This unidirectional Convert class (only Format direction is -implemented) converts ValueArray using a set of other Convert -instances. Resulting textual representation is created by joining -a set of defined elements `- some of them static texts, others -referring to elements of input ValueArray, converted using specified -Convert.&] -[s0; &] -[s0;%- [%%/ Derived from][%% ][^topic`:`/`/Core`/src`/Convert`$en`-us`#Convert`:`:class^ C -onvert]&] -[s3; &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] -[s3;%- &] -[s5;:JoinConvert`:`:Add`(const char`*`):%- [_^JoinConvert^ JoinConvert][@(0.0.255) `&]_[* A -dd]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text])&] -[s2; Adds static text to the list of elements.&] -[s7; [%-*C@3 text]-|Text.&] -[s7; [*/ Return value]-|`*this.&] -[s3; &] -[s4;%- &] -[s5;:JoinConvert`:`:Add`(int`,const Convert`&`):%- [_^JoinConvert^ JoinConvert][@(0.0.255) `& -]_[* Add]([@(0.0.255) int]_[*@3 pos], [@(0.0.255) const]_[_^Convert^ Convert][@(0.0.255) `&]_ -[*@3 cv])&] -[s2; Add element referring to input value, to be converted using -specified Convert.&] -[s7; [%-*C@3 pos]-|Index of input ValueArray element.&] -[s7; [%-*C@3 cv]-|Convert.&] -[s7; [*/ Return value]-|`*this.&] -[s3; &] -[s4;%- &] -[s5;:JoinConvert`:`:Add`(int`):%- [_^JoinConvert^ JoinConvert][@(0.0.255) `&]_[* Add]([@(0.0.255) i -nt]_[*@3 pos])&] -[s2; Add element referring to input value, to be converted using -default Convert.&] -[s7; [%-*C@3 pos]-|Index of input ValueArray element.&] -[s7; [*/ Return value]-|`*this.&] -[s3; &] -[s4;%- &] -[s5;:JoinConvert`:`:Add`(const Convert`&`):%- [_^JoinConvert^ JoinConvert][@(0.0.255) `&]_ -[* Add]([@(0.0.255) const]_[_^Convert^ Convert][@(0.0.255) `&]_[*@3 cv])&] -[s2; Add element referring to input value, to be converted using -specified Convert. Index of input element is the index of previous -input element plus 1.&] -[s7; [%-*C@3 cv]-|Convert.&] -[s7; [*/ Return value]-|`*this.&] -[s3; &] -[s4;%- &] -[s5;:JoinConvert`:`:Add`(`):%- [_^JoinConvert^ JoinConvert][@(0.0.255) `&]_[* Add]()&] -[s2; Add element referring to input value, to be converted using -default Convert. Index of input element is the index of previous -input element plus 1.&] -[s7; [*/ Return value]-|`*this.&] -[s3; &] -[s0; &] -[s0;3 &] -[s0;%- &] -[ {{10000@(113.42.0) [s0; [*@7;4 Standard Converts]]}}&] -[s3; &] -[s9; Standard converts are simple global functions returning a constant -reference to the single global variable representing the particular -Convert class. Following table lists names of these functions -and respective constructors of Convert classes used to create -global variable:&] -[s3; &] -[s0; &] -[s5;:StdConvert`(`):%- [@(0.0.255) const]_[_^Convert^ Convert][@(0.0.255) `&]_[* StdConvert]( -)&] -[s2; [C^topic`:`/`/Core`/src`/Convert`$en`-us`#Convert`:`:class^1 Convert]&] -[s3;%- &] -[s4;%- &] -[s5;:StdConvertInt`(`):%- [@(0.0.255) const]_[_^ConvertInt^ ConvertInt][@(0.0.255) `&]_[* Std -ConvertInt]()&] -[s2; [C^topic`:`/`/Core`/src`/Convert`$en`-us`#ConvertInt`:`:class^1 ConvertInt]&] -[s3;%- &] -[s4;%- &] -[s5;:StdConvertIntNotNull`(`):%- [@(0.0.255) const]_[_^ConvertInt^ ConvertInt][@(0.0.255) `& -]_[* StdConvertIntNotNull]()&] -[s2; [C^topic`:`/`/Core`/src`/Convert`$en`-us`#ConvertInt`:`:class^1 ConvertInt][C1 (`-IN -T`_MAX, INT`_MAX, true)]&] -[s3;%- &] -[s4;%- &] -[s5;:StdConvertDouble`(`):%- [@(0.0.255) const]_[_^ConvertDouble^ ConvertDouble][@(0.0.255) `& -]_[* StdConvertDouble]()&] -[s2; [C^topic`:`/`/Core`/src`/Convert`$en`-us`#ConvertDouble`:`:class^1 ConvertDouble]&] -[s3;%- &] -[s4;%- &] -[s5;:StdConvertDoubleNotNull`(`):%- [@(0.0.255) const]_[_^ConvertDouble^ ConvertDouble][@(0.0.255) `& -]_[* StdConvertDoubleNotNull]()&] -[s2; [C^topic`:`/`/Core`/src`/Convert`$en`-us`#ConvertDouble`:`:class^1 ConvertDouble][C1 ( -`-DOUBLE`_NULL`_LIM, DOUBLE`_NULL`_LIM, true)]&] -[s3;%- &] -[s4;%- &] -[s5;:StdConvertDate`(`):%- [@(0.0.255) const]_[_^ConvertDate^ ConvertDate][@(0.0.255) `&]_[* S -tdConvertDate]()&] -[s2; [C^topic`:`/`/Core`/src`/Convert`$en`-us`#ConvertDate`:`:class^1 ConvertDate]&] -[s3;%- &] -[s4;%- &] -[s5;:StdConvertDateNotNull`(`):%- [@(0.0.255) const]_[_^ConvertDate^ ConvertDate][@(0.0.255) `& -]_[* StdConvertDateNotNull]()&] -[s2; [C^topic`:`/`/Core`/src`/Convert`$en`-us`#ConvertDate`:`:class^1 ConvertDate][C1 (Da -te(0, 0, 0), Date(3000, 12, 31), true)]&] -[s3;%- &] -[s4;%- &] -[s5;:StdConvertTime`(`):%- [@(0.0.255) const]_[_^ConvertTime^ ConvertTime][@(0.0.255) `&]_[* S -tdConvertTime]()&] -[s2; [C^topic`:`/`/Core`/src`/Convert`$en`-us`#ConvertTime`:`:class^1 ConvertTime]&] -[s3;%- &] -[s4;%- &] -[s5;:StdConvertTimeNotNull`(`):%- [@(0.0.255) const]_[_^ConvertTime^ ConvertTime][@(0.0.255) `& -]_[* StdConvertTimeNotNull]()&] -[s2; [C^topic`:`/`/Core`/src`/Convert`$en`-us`#ConvertTime`:`:class^1 ConvertTime][C1 (Nu -ll, Null, true)]&] -[s3;%- &] -[s4;%- &] -[s5;:StdConvertString`(`):%- [@(0.0.255) const]_[_^ConvertString^ ConvertString][@(0.0.255) `& -]_[* StdConvertString]()&] -[s2; [C^topic`:`/`/Core`/src`/Convert`$en`-us`#ConvertString`:`:class^1 ConvertString]&] -[s3;%- &] -[s4;%- &] -[s5;:StdConvertStringNotNull`(`):%- [@(0.0.255) const]_[_^ConvertString^ ConvertString][@(0.0.255) `& -]_[* StdConvertStringNotNull]()&] -[s2; [C^topic`:`/`/Core`/src`/Convert`$en`-us`#ConvertString`:`:class^1 ConvertString][C1 ( -INT`_MAX, true)]&] -[s3;%- &] +topic "Convert"; +[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,0#27521748481378242620020725143825:desc] +[0 $$3,0#96390100711032703541132217272105:end] +[H6;0 $$4,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] +[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] +[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] +[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] +[b42;2 $$9,9#13035079074754324216151401829390:normal] +[{_}%EN-US +[ {{10000@(113.42.0) [s0; [*@7;4 Convert]]}}&] +[s3;%- &] +[s1;:Convert`:`:class:%- [@(0.0.255)3 class][3 _][*3 Convert]&] +[s9; Convert`-derived classes serve as bidirectional Value`-Value +converters. One direction is represented by Format method and +usually converts the Value to the textual representation. Reverse +direction is represented by the Scan method.&] +[s9; If the conversion is not possible (e.g. due to invalid textual +representation), convert methods should return `"ErrorValue`" +to indicate the problem.&] +[s3; &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] +[s3;%- &] +[s5;:Convert`:`:Format`(const Value`&`)const:%- [@(0.0.255) virtual] +[_^Value^ Value]_[* Format]([@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_[*@3 q])_[@(0.0.255) c +onst]&] +[s2; [%- Converts the Value. Default ]implementation uses Value`::ToString +to convert the Value.&] +[s7; [%-*C@3 q]-|Value.&] +[s7; [*/ Return value]-|Converted Value.&] +[s3; &] +[s4;%- &] +[s5;:Convert`:`:Scan`(const Value`&`)const:%- [@(0.0.255) virtual] +[_^Value^ Value]_[* Scan]([@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_[*@3 text])_[@(0.0.255) c +onst]&] +[s2; Converts the Value in reverse direction. Default implementation +returns [@3 text] (no conversion is performed).&] +[s7; [%-*C@3 text]-|Value.&] +[s7; [*/ Return value]-|Converted Value.&] +[s3; &] +[s4;%- &] +[s5;:Convert`:`:Filter`(int`)const:%- [@(0.0.255) virtual] [@(0.0.255) int]_[* Filter]([@(0.0.255) i +nt]_[*@3 chr])_[@(0.0.255) const]&] +[s2; Adjusts characters allowed in textual representation of Value.&] +[s7; [%-*C@3 chr]-|Character to adjust.&] +[s7; [*/ Return value]-|Adjusted character. Zero indicates that character +is rejected. Filter is allowed to alter the input character (e.g. +by upper`-casing it, changing `',`' to `'.`' etc..). Default +implementation returns unaltered [@3 chr].&] +[s3; &] +[s4;%- &] +[s5;:Convert`:`:operator`(`)`(const Value`&`)const:%- [_^Value^ Value]_[* operator()]([@(0.0.255) c +onst]_[_^Value^ Value][@(0.0.255) `&]_[*@3 q])_[@(0.0.255) const]&] +[s2; Invokes the Format method. Helper functor`-like syntax.&] +[s7; [%-*C@3 q]-|Value.&] +[s7; [*/ Return value]-|Converted Value.&] +[s3; &] +[s0;3 &] +[s0;%- &] +[s0;%- &] +[ {{10000@(113.42.0) [s0; [*@7;4 ConvertDate]]}}&] +[s3;%- &] +[s1;:ConvertDate`:`:class:%- [@(0.0.255)3 class][3 _][*3 ConvertDate][3 _:_][@(0.0.255)3 public][3 _ +][*@3;3 Convert]&] +[s9; Date Converter. Textual date format depends on actual regional +settings.&] +[s9; &] +[s0;%- [%% Derived from ][^topic`:`/`/Core`/src`/Convert`$en`-us`#Convert`:`:class^ Conve +rt]&] +[s3; &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] +[s3;%- &] +[s5;:ConvertDate`:`:ConvertDate`(Date`,Date`,bool`):%- [* ConvertDate]([_^Date^ Date]_[*@3 m +inval]_`=_Date`::Low(), [_^Date^ Date]_[*@3 maxval]_`=_Date`::High(), +[@(0.0.255) bool]_[*@3 notnull]_`=_[@(0.0.255) false])&] +[s2; Constructor.&] +[s7; [%-*C@3 minval]-|Minimum Date allowed.&] +[s7; [%-*C@3 maxval]-|Maximum Date allowed.&] +[s7; [%-*C@3 notnull]-|Disallow Nulls.&] +[s3; &] +[s4;%- &] +[s5;:ConvertDate`:`:`~ConvertDate`(`):%- [@(0.0.255) `~][* ConvertDate]()&] +[s2; Default destructor.&] +[s3;%- &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] +[s3;%- &] +[s5;:ConvertDate`:`:MinMax`(Date`,Date`):%- [_^ConvertDate^ ConvertDate][@(0.0.255) `&]_[* M +inMax]([_^Date^ Date]_[*@3 `_min], [_^Date^ Date]_[*@3 `_max])&] +[s2; Sets the range of Dates allowed.&] +[s7; [%-*C@3 `_min]-|Minimal Date.&] +[s7; [%-*C@3 `_max]-|Maximal Date.&] +[s7; [*/ Return value]-|`*this.&] +[s3; &] +[s4;%- &] +[s5;:ConvertDate`:`:Min`(Date`):%- [_^ConvertDate^ ConvertDate][@(0.0.255) `&]_[* Min]([_^Date^ D +ate]_[*@3 `_min])&] +[s2; Sets minimal allowed Date.&] +[s7; [%-*C@3 `_min]-|Minimal Date.&] +[s7; [*/ Return value]-|`*this.&] +[s3; &] +[s4;%- &] +[s5;:ConvertDate`:`:Max`(Date`):%- [_^ConvertDate^ ConvertDate][@(0.0.255) `&]_[* Max]([_^Date^ D +ate]_[*@3 `_max])&] +[s2; Sets maximal allowed Date.&] +[s7; [%-*C@3 `_max]-|Maximal Date.&] +[s7; [*/ Return value]-|`*this.&] +[s3; &] +[s4;%- &] +[s5;:ConvertDate`:`:NotNull`(bool`):%- [_^ConvertDate^ ConvertDate][@(0.0.255) `&]_[* NotNu +ll]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2; Allows/disallows Null dates. (Null dates are represented by +the empty text).&] +[s7; [%-*C@3 b]-|true to disallow Null dates.&] +[s7; [*/ Return value]-|`*this.&] +[s3; &] +[s4;%- &] +[s5;:ConvertDate`:`:NoNotNull`(`):%- [_^ConvertDate^ ConvertDate][@(0.0.255) `&]_[* NoNotNu +ll]()&] +[s2; Same as [^topic`:`/`/Core`/src`/Convert`$en`-us`#ConvertDate`:`:NotNull`(bool`)^ N +otNull](false).&] +[s3; &] +[s4;%- &] +[s5;:ConvertDate`:`:GetMin`(`)const:%- [_^Date^ Date]_[* GetMin]()_[@(0.0.255) const]&] +[s7; [*/ Return value]-|Minimal allowed date.&] +[s3; &] +[s4;%- &] +[s5;:ConvertDate`:`:GetMax`(`)const:%- [_^Date^ Date]_[* GetMax]()_[@(0.0.255) const]&] +[s7; [*/ Return value]-|Maximal allowed date.&] +[s3; &] +[s4;%- &] +[s5;:ConvertDate`:`:IsNotNull`(`)const:%- [@(0.0.255) bool]_[* IsNotNull]()_[@(0.0.255) con +st]&] +[s7; [*/ Return value]-|true is Nulls are disallowed.&] +[s3; &] +[s0; &] +[s0;%- &] +[s0;%- &] +[ {{10000@(113.42.0) [s0; [*@7;4 ConvertDouble]]}}&] +[s3; &] +[s1;:ConvertDouble`:`:class:%- [@(0.0.255)3 class][3 _][*3 ConvertDouble][3 _:_][@(0.0.255)3 pub +lic][3 _][*@3;3 Convert]&] +[s9; Floating point number converter.&] +[s0; &] +[s0;%- [%%/ Derived from][%% ][^topic`:`/`/Core`/src`/Convert`$en`-us`#Convert`:`:class^ C +onvert]&] +[s3; &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] +[s3;%- &] +[s5;:ConvertDouble`:`:ConvertDouble`(double`,double`,bool`):%- [* ConvertDouble]([@(0.0.255) d +ouble]_[*@3 minval]_`=_DOUBLE`_NULL`_LIM, [@(0.0.255) double]_[*@3 maxval]_`=_`-DOUBLE`_ +NULL`_LIM, [@(0.0.255) bool]_[*@3 notnull]_`=_[@(0.0.255) false])&] +[s2; Constructor.&] +[s7; [%-*C@3 minval]-|Lower limit `- default value means there is no +limit.&] +[s7; [%-*C@3 maxval]-|Upper limit `- default value means there is no +limit.&] +[s7; [%-*C@3 notnull]-|If true, Nulls are not allowed.&] +[s3; &] +[s4;%- &] +[s5;:ConvertDouble`:`:`~ConvertDouble`(`):%- [@(0.0.255) `~][* ConvertDouble]()&] +[s2; Default destructor.&] +[s3;%- &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] +[s3;%- &] +[s5;:ConvertDouble`:`:Pattern`(const char`*`):%- [_^ConvertDouble^ ConvertDouble][@(0.0.255) `& +]_[* Pattern]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 p])&] +[s2; Formatting tag used for conversion to textual representation +(includes standard printf formatting tags, see Format function +for description). Default tag is [@4 %.10g]. After setting a new +pattern, ConvertDouble formats simple example number (Format(1.1)) +and if it detects character `',`' in resulting string, Filter +method forces `',`' to be used instead of `'.`' for decimal point.&] +[s7; [%-*C@3 p]-|Pattern.&] +[s7; [*/ Return value]-|`*this.&] +[s3; &] +[s4;%- &] +[s5;:ConvertDouble`:`:MinMax`(double`,double`):%- [_^ConvertDouble^ ConvertDouble][@(0.0.255) `& +]_[* MinMax]([@(0.0.255) double]_[*@3 `_min], [@(0.0.255) double]_[*@3 `_max])&] +[s2; Sets minimal and maximal allowed numbers.&] +[s7; [%-*C@3 `_min]-|Lower limit.&] +[s7; [%-*C@3 `_max]-|Upper limit.&] +[s7; [*/ Return value]-|`*this.&] +[s3; &] +[s4;%- &] +[s5;:ConvertDouble`:`:Min`(double`):%- [_^ConvertDouble^ ConvertDouble][@(0.0.255) `&]_[* M +in]([@(0.0.255) double]_[*@3 `_min])&] +[s2; Sets minimal allowed number.&] +[s7; [%-*C@3 `_min]-|Lower limit.&] +[s7; [*/ Return value]-|`*this.&] +[s3; &] +[s4;%- &] +[s5;:ConvertDouble`:`:Max`(double`):%- [_^ConvertDouble^ ConvertDouble][@(0.0.255) `&]_[* M +ax]([@(0.0.255) double]_[*@3 `_max])&] +[s2; Sets maximal allowed number.&] +[s7; [%-*C@3 `_max]-|Upper limit.&] +[s7; [*/ Return value]-|`*this.&] +[s3; &] +[s4;%- &] +[s5;:ConvertDouble`:`:NotNull`(bool`):%- [_^ConvertDouble^ ConvertDouble][@(0.0.255) `&]_ +[* NotNull]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2; Allows/disallows Nulls. (Nulls are represented by the empty +text).&] +[s7; [%-*C@3 b]-|true to disallow.&] +[s7; [*/ Return value]-|`*this.&] +[s3; &] +[s4;%- &] +[s5;:ConvertDouble`:`:NoNotNull`(`):%- [_^ConvertDouble^ ConvertDouble][@(0.0.255) `&]_[* N +oNotNull]()&] +[s2; Equivalent to [^topic`:`/`/Core`/src`/Convert`$en`-us`#ConvertDouble`:`:NotNull`(bool`)^ N +otNull](false).&] +[s3; &] +[s4;%- &] +[s5;:ConvertDouble`:`:GetMin`(`)const:%- [@(0.0.255) double]_[* GetMin]()_[@(0.0.255) const +]&] +[s7; [*/ Return value]-|Lower limit.&] +[s3; &] +[s4;%- &] +[s5;:ConvertDouble`:`:GetMax`(`)const:%- [@(0.0.255) double]_[* GetMax]()_[@(0.0.255) const +]&] +[s7; [*/ Return value]-|Upper limit.&] +[s3; &] +[s4;%- &] +[s5;:ConvertDouble`:`:IsNotNull`(`)const:%- [@(0.0.255) bool]_[* IsNotNull]()_[@(0.0.255) c +onst]&] +[s7; [*/ Return value]-|true is Nulls are disallowed.&] +[s3; &] +[s0; &] +[s0; &] +[s0;%- &] +[ {{10000@(113.42.0) [s0; [*@7;4 ConvertInt]]}}&] +[s3; &] +[s1;:ConvertInt`:`:class:%- [@(0.0.255)3 class][3 _][*3 ConvertInt][3 _:_][@(0.0.255)3 public][3 _ +][*@3;3 Convert]&] +[s9; Integer converter.&] +[s0; &] +[s0;%- [%%/ Derived from][%% ][^topic`:`/`/Core`/src`/Convert`$en`-us`#Convert`:`:class^ C +onvert]&] +[s3; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] +[s3;%- &] +[s5;:ConvertInt`:`:ConvertInt`(int`,int`,bool`):%- [* ConvertInt]([@(0.0.255) int]_[*@3 min +val]_`=_`-INT`_MAX, [@(0.0.255) int]_[*@3 maxval]_`=_INT`_MAX, [@(0.0.255) bool]_[*@3 not +null]_`=_[@(0.0.255) false])&] +[s2; Constructor.&] +[s7; [%-*C@3 minval]-|Lower limit. Default value results in no limit.&] +[s7; [%-*C@3 maxval]-|Upper limit. Default value results in no limit.&] +[s7; [%-*C@3 notnull]-|If true, Nulls are not allowed.&] +[s3; &] +[s4;%- &] +[s5;:ConvertInt`:`:`~ConvertInt`(`):%- [@(0.0.255) `~][* ConvertInt]()&] +[s2; Default destructor.&] +[s3;%- &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] +[s3;%- &] +[s5;:ConvertInt`:`:MinMax`(int`,int`):%- [_^ConvertInt^ ConvertInt][@(0.0.255) `&]_[* MinMa +x]([@(0.0.255) int]_[*@3 `_min], [@(0.0.255) int]_[*@3 `_max])&] +[s2; Sets minimal and maximal allowed numbers.&] +[s7; [%-*C@3 `_min]-|Lower limit.&] +[s7; [%-*C@3 `_max]-|Upper limit.&] +[s7; [*/ Return value]-|`*this.&] +[s3; &] +[s4;%- &] +[s5;:ConvertInt`:`:Min`(int`):%- [_^ConvertInt^ ConvertInt][@(0.0.255) `&]_[* Min]([@(0.0.255) i +nt]_[*@3 `_min])&] +[s2; Sets minimal allowed number.&] +[s7; [%-*C@3 `_min]-|Lower limit.&] +[s7; [*/ Return value]-|`*this.&] +[s3; &] +[s4;%- &] +[s5;:ConvertInt`:`:Max`(int`):%- [_^ConvertInt^ ConvertInt][@(0.0.255) `&]_[* Max]([@(0.0.255) i +nt]_[*@3 `_max])&] +[s2; Sets maximal allowed number.&] +[s7; [%-*C@3 `_max]-|Upper limit.&] +[s7; [*/ Return value]-|`*this.&] +[s3; &] +[s4;%- &] +[s5;:ConvertInt`:`:NotNull`(bool`):%- [_^ConvertInt^ ConvertInt][@(0.0.255) `&]_[* NotNull]( +[@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2; Allows/disallows Nulls. (Nulls are represented by the empty +text).&] +[s7; [%-*C@3 b]-|true to disallow.&] +[s7; [*/ Return value]-|`*this.&] +[s3; &] +[s4;%- &] +[s5;:ConvertInt`:`:NoNotNull`(`):%- [_^ConvertInt^ ConvertInt][@(0.0.255) `&]_[* NoNotNull]( +)&] +[s2; Equivalent to [^topic`:`/`/Core`/src`/Convert`$en`-us`#ConvertInt`:`:NotNull`(bool`)^ N +otNull](false).&] +[s7; [*/ Return value]-|`*this.&] +[s3; &] +[s4;%- &] +[s5;:ConvertInt`:`:GetMin`(`)const:%- [@(0.0.255) int]_[* GetMin]()_[@(0.0.255) const]&] +[s7; [*/ Return value]-|Lower limit.&] +[s3; &] +[s4;%- &] +[s5;:ConvertInt`:`:GetMax`(`)const:%- [@(0.0.255) int]_[* GetMax]()_[@(0.0.255) const]&] +[s7; [*/ Return value]-|Upper limit.&] +[s3; &] +[s4;%- &] +[s5;:ConvertInt`:`:IsNotNull`(`)const:%- [@(0.0.255) bool]_[* IsNotNull]()_[@(0.0.255) cons +t]&] +[s7; [*/ Return value]-|true if null are not allowed.&] +[s3; &] +[s0; &] +[s0; &] +[s0;%- &] +[ {{10000@(113.42.0) [s0; [*@7;4 ConvertString]]}}&] +[s3; &] +[s1;:ConvertString`:`:class:%- [@(0.0.255)3 class][3 _][*3 ConvertString][3 _:_][@(0.0.255)3 pub +lic][3 _][*@3;3 Convert]&] +[s9; String `"converter`". Of course, String already is textual representation +of itself, the real purpose of this class is to introduce constraints +of String value.&] +[s0; &] +[s0;%- [%%/ Derived from][%% ][^topic`:`/`/Core`/src`/Convert`$en`-us`#Convert`:`:class^ C +onvert]&] +[s3; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] +[s3; &] +[s5;:ConvertString`:`:ConvertString`(int`,bool`):%- [* ConvertString]([@(0.0.255) int]_[*@3 m +axlen]_`=_INT`_MAX, [@(0.0.255) bool]_[*@3 notnull]_`=_[@(0.0.255) false])&] +[s2; Constructor.&] +[s7; [%-*C@3 maxlen]-|Maximum length `- default is unlimited.&] +[s7; [%-*C@3 notnull]-|If true, empty strings are not allowed.&] +[s3; &] +[s4;%- &] +[s5;:ConvertString`:`:`~ConvertString`(`):%- [@(0.0.255) `~][* ConvertString]()&] +[s2; Default destructor.&] +[s3;%- &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] +[s3; &] +[s5;:ConvertString`:`:MaxLen`(int`):%- [_^ConvertString^ ConvertString][@(0.0.255) `&]_[* M +axLen]([@(0.0.255) int]_[*@3 `_maxlen])&] +[s2; Sets maximum length of String allowed.&] +[s7; [%-*C@3 `_maxlen]-|Length.&] +[s7; [*/ Return value]-|`*this.&] +[s3; &] +[s4;%- &] +[s5;:ConvertString`:`:GetMaxLength`(`)const:%- [@(0.0.255) int]_[* GetMaxLength]()_[@(0.0.255) c +onst]&] +[s7; [*/ Return value]-|Maximum length of String allowed.&] +[s3; &] +[s4;%- &] +[s5;:ConvertString`:`:NotNull`(bool`):%- [_^ConvertString^ ConvertString][@(0.0.255) `&]_ +[* NotNull]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2; Disallows empty Strings.&] +[s7; [%-*C@3 b]-|true to disallow.&] +[s7; [*/ Return value]-|`*this.&] +[s3; &] +[s4;%- &] +[s5;:ConvertString`:`:NoNotNull`(`):%- [_^ConvertString^ ConvertString][@(0.0.255) `&]_[* N +oNotNull]()&] +[s2; Same as [^topic`:`/`/Core`/src`/Convert`$en`-us`#ConvertString`:`:NotNull`(bool`)^ N +otNull](false).&] +[s3; &] +[s4;%- &] +[s5;:ConvertString`:`:IsNotNull`(`)const:%- [@(0.0.255) bool]_[* IsNotNull]()_[@(0.0.255) c +onst]&] +[s7; [*/ Return value]-|true mean empty Strings are not allowed.&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:ConvertString`:`:TrimLeft`(bool`):%- [_^Upp`:`:ConvertString^ ConvertString +][@(0.0.255) `&]_[* TrimLeft]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s5;:Upp`:`:ConvertString`:`:TrimRight`(bool`):%- [_^Upp`:`:ConvertString^ ConvertStrin +g][@(0.0.255) `&]_[* TrimRight]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s5;:Upp`:`:ConvertString`:`:TrimBoth`(bool`):%- [_^Upp`:`:ConvertString^ ConvertString +][@(0.0.255) `&]_[* TrimBoth]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2; Whitechars on the left/right/both side(s) are removed before +checking count of characters or nullness.&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:ConvertString`:`:IsTrimLeft`(`)const:%- [@(0.0.255) bool]_[* IsTrimLeft]()_[@(0.0.255) c +onst]&] +[s5;:Upp`:`:ConvertString`:`:IsTrimRight`(`)const:%- [@(0.0.255) bool]_[* IsTrimRight]()_ +[@(0.0.255) const]&] +[s2; Checks whether TrimLeft or TrimRight (or both) is active.&] +[s0; &] +[s0; &] +[s0;%- &] +[ {{10000@(113.42.0) [s0; [*@7;4 ConvertString]]}}&] +[s3; &] +[s1;:ConvertTime`:`:class:%- [@(0.0.255)3 class][3 _][*3 ConvertTime][3 _:_][@(0.0.255)3 public][3 _ +][*@3;3 Convert]&] +[s9; Time converter.&] +[s0; &] +[s0;%- [%%/ Derived from][%% ][^topic`:`/`/Core`/src`/Convert`$en`-us`#Convert`:`:class^ C +onvert]&] +[s3; &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] +[s3;%- &] +[s5;:ConvertTime`:`:ConvertTime`(Time`,Time`,bool`):%- [* ConvertTime]([_^Time^ Time]_[*@3 m +inval]_`=_ToTime(Date`::Low()), [_^Time^ Time]_[*@3 maxval]_`=_ToTime(Date`::High()), +[@(0.0.255) bool]_[*@3 notnull]_`=_[@(0.0.255) false])&] +[s2;%- Constructor.&] +[s7; [%-*C@3 minval]-|Lower limit. Default means there is no limit.&] +[s7; [%-*C@3 maxval]-|Upper limit. Default means there is no limit.&] +[s7; [%-*C@3 notnull]-|true disallows Nulls.&] +[s3;%- &] +[s4;%- &] +[s5;:ConvertTime`:`:`~ConvertTime`(`):%- [@(0.0.255) `~][* ConvertTime]()&] +[s2; Default destructor.&] +[s3; &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] +[s3;%- &] +[s5;:ConvertTime`:`:MinMax`(Time`,Time`):%- [_^ConvertTime^ ConvertTime][@(0.0.255) `&]_[* M +inMax]([_^Time^ Time]_[*@3 `_min], [_^Time^ Time]_[*@3 `_max])&] +[s2;%- Time limeits.&] +[s7; [%-*C@3 `_min]-|Lower limit.&] +[s7; [%-*C@3 `_max]-|Upper limit.&] +[s7; [*/ Return value]-|`*this.&] +[s3; &] +[s4;%- &] +[s5;:ConvertTime`:`:NotNull`(bool`):%- [_^ConvertTime^ ConvertTime][@(0.0.255) `&]_[* NotNu +ll]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2; Disallows empty Strings.&] +[s7; [%-*C@3 b]-|true to disallow.&] +[s7; [*/ Return value]-|`*this.&] +[s3; &] +[s4;%- &] +[s5;:ConvertTime`:`:NoNotNull`(`):%- [_^ConvertTime^ ConvertTime][@(0.0.255) `&]_[* NoNotNu +ll]()&] +[s2; Same as [^topic`:`/`/Core`/src`/Convert`$en`-us`#ConvertTime`:`:NotNull`(bool`)^ N +otNull](false).&] +[s3; &] +[s4;%- &] +[s5;:ConvertTime`:`:TimeAlways`(bool`):%- [_^ConvertTime^ ConvertTime][@(0.0.255) `&]_[* Ti +meAlways]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2; If active, Format always shows time, even if the Value is Date +or is at midnight.&] +[s3; &] +[s4;%- &] +[s5;:ConvertTime`:`:DayEnd`(bool`):%- [_^ConvertTime^ ConvertTime][@(0.0.255) `&]_[* DayEnd +]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2; If active, when Scan encounters date without time, it sets the +time to 23:59:59.&] +[s3; &] +[s4;%- &] +[s5;:ConvertTime`:`:GetMin`(`)const:%- [_^Time^ Time]_[* GetMin]()_[@(0.0.255) const]&] +[s7; [*/ Return value]-|Lower limit.&] +[s3; &] +[s4;%- &] +[s5;:ConvertTime`:`:GetMax`(`)const:%- [_^Time^ Time]_[* GetMax]()_[@(0.0.255) const]&] +[s7; [*/ Return value]-|Upper limit.&] +[s3; &] +[s4;%- &] +[s5;:ConvertTime`:`:IsNotNull`(`)const:%- [@(0.0.255) bool]_[* IsNotNull]()_[@(0.0.255) con +st]&] +[s7; [*/ Return value]-|true means Nulls are disallowed.&] +[s3; &] +[s0; &] +[s0; &] +[s0;%- &] +[ {{10000@(113.42.0) [s0; [*@7;4 FormatConvert]]}}&] +[s3; &] +[s1;:FormatConvert`:`:class:%- [@(0.0.255)3 class][3 _][*3 FormatConvert][3 _:_][@(0.0.255)3 pub +lic][3 _][*@3;3 Convert]&] +[s9; This unidirectional Convert class (only Format direction implemented) +converts single Value or ValueArray using Format function and +specified formatter pattern.&] +[s9; &] +[s0;%- [%%/ Derived from][%% ][^topic`:`/`/Core`/src`/Convert`$en`-us`#Convert`:`:class^ C +onvert]&] +[s3; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] +[s3;%- &] +[s5;:FormatConvert`:`:SetFormat`(const char`*`):%- [@(0.0.255) void]_[* SetFormat]([@(0.0.255) c +onst]_[@(0.0.255) char]_`*[*@3 fmt])&] +[s2; Sets formatting pattern.&] +[s7; [%-*C@3 fmt]-|The pattern.&] +[s3; &] +[s0;3 &] +[s0;3 &] +[s0;%- &] +[ {{10000@(113.42.0) [s0; [*@7;4 JoinConvert]]}}&] +[s3; &] +[s1;:JoinConvert`:`:class:%- [@(0.0.255)3 class][3 _][*3 JoinConvert][3 _:_][@(0.0.255)3 public][3 _ +][*@3;3 Convert]&] +[s9; This unidirectional Convert class (only Format direction is +implemented) converts ValueArray using a set of other Convert +instances. Resulting textual representation is created by joining +a set of defined elements `- some of them static texts, others +referring to elements of input ValueArray, converted using specified +Convert.&] +[s0; &] +[s0;%- [%%/ Derived from][%% ][^topic`:`/`/Core`/src`/Convert`$en`-us`#Convert`:`:class^ C +onvert]&] +[s3; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] +[s3;%- &] +[s5;:JoinConvert`:`:Add`(const char`*`):%- [_^JoinConvert^ JoinConvert][@(0.0.255) `&]_[* A +dd]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text])&] +[s2; Adds static text to the list of elements.&] +[s7; [%-*C@3 text]-|Text.&] +[s7; [*/ Return value]-|`*this.&] +[s3; &] +[s4;%- &] +[s5;:JoinConvert`:`:Add`(int`,const Convert`&`):%- [_^JoinConvert^ JoinConvert][@(0.0.255) `& +]_[* Add]([@(0.0.255) int]_[*@3 pos], [@(0.0.255) const]_[_^Convert^ Convert][@(0.0.255) `&]_ +[*@3 cv])&] +[s2; Add element referring to input value, to be converted using +specified Convert.&] +[s7; [%-*C@3 pos]-|Index of input ValueArray element.&] +[s7; [%-*C@3 cv]-|Convert.&] +[s7; [*/ Return value]-|`*this.&] +[s3; &] +[s4;%- &] +[s5;:JoinConvert`:`:Add`(int`):%- [_^JoinConvert^ JoinConvert][@(0.0.255) `&]_[* Add]([@(0.0.255) i +nt]_[*@3 pos])&] +[s2; Add element referring to input value, to be converted using +default Convert.&] +[s7; [%-*C@3 pos]-|Index of input ValueArray element.&] +[s7; [*/ Return value]-|`*this.&] +[s3; &] +[s4;%- &] +[s5;:JoinConvert`:`:Add`(const Convert`&`):%- [_^JoinConvert^ JoinConvert][@(0.0.255) `&]_ +[* Add]([@(0.0.255) const]_[_^Convert^ Convert][@(0.0.255) `&]_[*@3 cv])&] +[s2; Add element referring to input value, to be converted using +specified Convert. Index of input element is the index of previous +input element plus 1.&] +[s7; [%-*C@3 cv]-|Convert.&] +[s7; [*/ Return value]-|`*this.&] +[s3; &] +[s4;%- &] +[s5;:JoinConvert`:`:Add`(`):%- [_^JoinConvert^ JoinConvert][@(0.0.255) `&]_[* Add]()&] +[s2; Add element referring to input value, to be converted using +default Convert. Index of input element is the index of previous +input element plus 1.&] +[s7; [*/ Return value]-|`*this.&] +[s3; &] +[s0; &] +[s0;3 &] +[s0;%- &] +[ {{10000@(113.42.0) [s0; [*@7;4 Standard Converts]]}}&] +[s3; &] +[s9; Standard converts are simple global functions returning a constant +reference to the single global variable representing the particular +Convert class. Following table lists names of these functions +and respective constructors of Convert classes used to create +global variable:&] +[s3; &] +[s0; &] +[s5;:StdConvert`(`):%- [@(0.0.255) const]_[_^Convert^ Convert][@(0.0.255) `&]_[* StdConvert]( +)&] +[s2; [C^topic`:`/`/Core`/src`/Convert`$en`-us`#Convert`:`:class^1 Convert]&] +[s3;%- &] +[s4;%- &] +[s5;:StdConvertInt`(`):%- [@(0.0.255) const]_[_^ConvertInt^ ConvertInt][@(0.0.255) `&]_[* Std +ConvertInt]()&] +[s2; [C^topic`:`/`/Core`/src`/Convert`$en`-us`#ConvertInt`:`:class^1 ConvertInt]&] +[s3;%- &] +[s4;%- &] +[s5;:StdConvertIntNotNull`(`):%- [@(0.0.255) const]_[_^ConvertInt^ ConvertInt][@(0.0.255) `& +]_[* StdConvertIntNotNull]()&] +[s2; [C^topic`:`/`/Core`/src`/Convert`$en`-us`#ConvertInt`:`:class^1 ConvertInt][C1 (`-IN +T`_MAX, INT`_MAX, true)]&] +[s3;%- &] +[s4;%- &] +[s5;:StdConvertDouble`(`):%- [@(0.0.255) const]_[_^ConvertDouble^ ConvertDouble][@(0.0.255) `& +]_[* StdConvertDouble]()&] +[s2; [C^topic`:`/`/Core`/src`/Convert`$en`-us`#ConvertDouble`:`:class^1 ConvertDouble]&] +[s3;%- &] +[s4;%- &] +[s5;:StdConvertDoubleNotNull`(`):%- [@(0.0.255) const]_[_^ConvertDouble^ ConvertDouble][@(0.0.255) `& +]_[* StdConvertDoubleNotNull]()&] +[s2; [C^topic`:`/`/Core`/src`/Convert`$en`-us`#ConvertDouble`:`:class^1 ConvertDouble][C1 ( +`-DOUBLE`_NULL`_LIM, DOUBLE`_NULL`_LIM, true)]&] +[s3;%- &] +[s4;%- &] +[s5;:StdConvertDate`(`):%- [@(0.0.255) const]_[_^ConvertDate^ ConvertDate][@(0.0.255) `&]_[* S +tdConvertDate]()&] +[s2; [C^topic`:`/`/Core`/src`/Convert`$en`-us`#ConvertDate`:`:class^1 ConvertDate]&] +[s3;%- &] +[s4;%- &] +[s5;:StdConvertDateNotNull`(`):%- [@(0.0.255) const]_[_^ConvertDate^ ConvertDate][@(0.0.255) `& +]_[* StdConvertDateNotNull]()&] +[s2; [C^topic`:`/`/Core`/src`/Convert`$en`-us`#ConvertDate`:`:class^1 ConvertDate][C1 (Da +te(0, 0, 0), Date(3000, 12, 31), true)]&] +[s3;%- &] +[s4;%- &] +[s5;:StdConvertTime`(`):%- [@(0.0.255) const]_[_^ConvertTime^ ConvertTime][@(0.0.255) `&]_[* S +tdConvertTime]()&] +[s2; [C^topic`:`/`/Core`/src`/Convert`$en`-us`#ConvertTime`:`:class^1 ConvertTime]&] +[s3;%- &] +[s4;%- &] +[s5;:StdConvertTimeNotNull`(`):%- [@(0.0.255) const]_[_^ConvertTime^ ConvertTime][@(0.0.255) `& +]_[* StdConvertTimeNotNull]()&] +[s2; [C^topic`:`/`/Core`/src`/Convert`$en`-us`#ConvertTime`:`:class^1 ConvertTime][C1 (Nu +ll, Null, true)]&] +[s3;%- &] +[s4;%- &] +[s5;:StdConvertString`(`):%- [@(0.0.255) const]_[_^ConvertString^ ConvertString][@(0.0.255) `& +]_[* StdConvertString]()&] +[s2; [C^topic`:`/`/Core`/src`/Convert`$en`-us`#ConvertString`:`:class^1 ConvertString]&] +[s3;%- &] +[s4;%- &] +[s5;:StdConvertStringNotNull`(`):%- [@(0.0.255) const]_[_^ConvertString^ ConvertString][@(0.0.255) `& +]_[* StdConvertStringNotNull]()&] +[s2; [C^topic`:`/`/Core`/src`/Convert`$en`-us`#ConvertString`:`:class^1 ConvertString][C1 ( +INT`_MAX, true)]&] +[s3;%- &] [s0; ]] \ No newline at end of file diff --git a/uppsrc/Core/src.tpp/DateFmt$en-us.tpp b/uppsrc/Core/src.tpp/DateFmt_en-us.tpp similarity index 98% rename from uppsrc/Core/src.tpp/DateFmt$en-us.tpp rename to uppsrc/Core/src.tpp/DateFmt_en-us.tpp index c8c8aa509..2b95b8c7a 100644 --- a/uppsrc/Core/src.tpp/DateFmt$en-us.tpp +++ b/uppsrc/Core/src.tpp/DateFmt_en-us.tpp @@ -1,82 +1,82 @@ -topic "Date formatting and scanning"; -[2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,0#27521748481378242620020725143825:desc] -[0 $$3,0#96390100711032703541132217272105:end] -[H6;0 $$4,0#05600065144404261032431302351956:begin] -[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] -[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] -[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] -[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] -[b42;2 $$9,9#13035079074754324216151401829390:normal] -[{_}%EN-US -[ {{10000@(113.42.0) [s0;%- [*@7;4 Date formatting and scanning]]}}&] -[s0;*@3;4%- &] -[ {{10000F(128)G(128)@1 [s0; [* Global functions]]}}&] -[s3;%- &] -[s5;:StrToDate`(Date`&`,const char`*`):%- [@(0.0.255) const]_[@(0.0.255) char]_`*[* StrToDa -te]([_^Date^ Date][@(0.0.255) `&]_[*@3 d], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 s])&] -[s2; Scans a string for a Date. Order of day, month and year is specified -using SetDateScan. In place of month both number and text is -accepted `- text must match abbreviated or full name of month.&] -[s7; [%-*C@3 d]-|Found date.&] -[s7; [%-*C@3 s]-|String to scan.&] -[s7; [*/ Return value]-|NULL if no date is found in s or pointer to -character right after the date.&] -[s3; &] -[s4;%- &] -[s5;:Format`(Date`):%- [_^String^ String]_[* Format]([_^Date^ Date]_[*@3 date])&] -[s2; Formats date. Date is formated using the standard [^topic`:`/`/Core`/src`/Format`$en`-us^ F -ormat] function, where the string set by SetDateFormat is used -as formating string, and the three supplied integer value arguments -are year, month and day.&] -[s7; [%-*C@3 date]-|Date to format.&] -[s7; [*/ Return value]-|Formatted date.&] -[s3; &] -[s4;%- &] -[s5;:CharFilterDate`(int`):%- [@(0.0.255) int]_[* CharFilterDate]([@(0.0.255) int]_[*@3 c])&] -[s2; Character filter for dates. Its behaviour is specified by SetDateFilter -function.&] -[s7; [%-*C@3 c]-|Character to filter.&] -[s7; [*/ Return value]-|Filtered character.&] -[s3; &] -[s4;%- &] -[s5;:SetDateFormat`(const char`*`):%- [@(0.0.255) void]_[* SetDateFormat]([@(0.0.255) const -]_[@(0.0.255) char]_`*[*@3 fmt])&] -[s2; Sets formating string for dates. When used for formatting, there -are 3 integer arguments passed to [^topic`:`/`/Core`/src`/Format`$en`-us^ Format] -with this string. First is year, second is month and third is -day. This is per`-thread setting with threads inheriting the -setting of main thread.&] -[s3; &] -[s4;%- &] -[s5;:SetDateScan`(const char`*`):%- [@(0.0.255) void]_[* SetDateScan]([@(0.0.255) const]_[@(0.0.255) c -har]_`*[*@3 scan])&] -[s2; Sets date scan string `- this string represents order of [* d]ay, -[* m]onth and [* y]ear for StrToDate function. Letters `'[* d]`', `'[* m]`' -and `'[* y]`' are used in [%-*@3 scan] to designate the order. This -is per`-thread setting with threads inheriting the setting of -main thread.&] -[s2; Example:&] -[s2; [*C@3 ][*C `"mdy`"]&] -[s7; The month is first, day second and year third.&] -[s3; &] -[s4;%- &] -[s5;:SetDateFilter`(const char`*`):%- [@(0.0.255) void]_[* SetDateFilter]([@(0.0.255) const -]_[@(0.0.255) char]_`*[*@3 seps])&] -[s2; Specifies CharFilterDate behaviour. Digits are always allowed -in CharFilterDate. If there is `"a`" at the beginning of seps -string, letters are allowed. If there is `"A`", letters are allowed -and converted to upper`-case. After this optional character, -list of characters allowed as separator follows. `"`\r`" after -character designates `"replace`" character `- if used, all characters -up to next `"amend`" character or `'`\0`' are replaced by it. - This is per`-thread setting with threads inheriting the setting -of main thread.&] -[s2; Example:&] -[s2; [*C@3 ][*C `"a.][*C@3 `\r][*C@5 ,][*C@3 `\r][*C /][*C@3 `\r][*C@5 :;][*C `"]&] -[s2; CharFilterDate would allow letters but not convert them to uppercase, -it will allow characters `'[* .]`' and `'/`' and it will convert -`'[*@5 ,]`' to `'[* .]`' and `'[*@5 :]`' or `'[*@5 ;]`' to `'[* /]`'.&] -[s3; &] +topic "Date formatting and scanning"; +[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,0#27521748481378242620020725143825:desc] +[0 $$3,0#96390100711032703541132217272105:end] +[H6;0 $$4,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] +[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] +[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] +[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] +[b42;2 $$9,9#13035079074754324216151401829390:normal] +[{_}%EN-US +[ {{10000@(113.42.0) [s0;%- [*@7;4 Date formatting and scanning]]}}&] +[s0;*@3;4%- &] +[ {{10000F(128)G(128)@1 [s0; [* Global functions]]}}&] +[s3;%- &] +[s5;:StrToDate`(Date`&`,const char`*`):%- [@(0.0.255) const]_[@(0.0.255) char]_`*[* StrToDa +te]([_^Date^ Date][@(0.0.255) `&]_[*@3 d], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 s])&] +[s2; Scans a string for a Date. Order of day, month and year is specified +using SetDateScan. In place of month both number and text is +accepted `- text must match abbreviated or full name of month.&] +[s7; [%-*C@3 d]-|Found date.&] +[s7; [%-*C@3 s]-|String to scan.&] +[s7; [*/ Return value]-|NULL if no date is found in s or pointer to +character right after the date.&] +[s3; &] +[s4;%- &] +[s5;:Format`(Date`):%- [_^String^ String]_[* Format]([_^Date^ Date]_[*@3 date])&] +[s2; Formats date. Date is formated using the standard [^topic`:`/`/Core`/src`/Format`$en`-us^ F +ormat] function, where the string set by SetDateFormat is used +as formating string, and the three supplied integer value arguments +are year, month and day.&] +[s7; [%-*C@3 date]-|Date to format.&] +[s7; [*/ Return value]-|Formatted date.&] +[s3; &] +[s4;%- &] +[s5;:CharFilterDate`(int`):%- [@(0.0.255) int]_[* CharFilterDate]([@(0.0.255) int]_[*@3 c])&] +[s2; Character filter for dates. Its behaviour is specified by SetDateFilter +function.&] +[s7; [%-*C@3 c]-|Character to filter.&] +[s7; [*/ Return value]-|Filtered character.&] +[s3; &] +[s4;%- &] +[s5;:SetDateFormat`(const char`*`):%- [@(0.0.255) void]_[* SetDateFormat]([@(0.0.255) const +]_[@(0.0.255) char]_`*[*@3 fmt])&] +[s2; Sets formating string for dates. When used for formatting, there +are 3 integer arguments passed to [^topic`:`/`/Core`/src`/Format`$en`-us^ Format] +with this string. First is year, second is month and third is +day. This is per`-thread setting with threads inheriting the +setting of main thread.&] +[s3; &] +[s4;%- &] +[s5;:SetDateScan`(const char`*`):%- [@(0.0.255) void]_[* SetDateScan]([@(0.0.255) const]_[@(0.0.255) c +har]_`*[*@3 scan])&] +[s2; Sets date scan string `- this string represents order of [* d]ay, +[* m]onth and [* y]ear for StrToDate function. Letters `'[* d]`', `'[* m]`' +and `'[* y]`' are used in [%-*@3 scan] to designate the order. This +is per`-thread setting with threads inheriting the setting of +main thread.&] +[s2; Example:&] +[s2; [*C@3 ][*C `"mdy`"]&] +[s7; The month is first, day second and year third.&] +[s3; &] +[s4;%- &] +[s5;:SetDateFilter`(const char`*`):%- [@(0.0.255) void]_[* SetDateFilter]([@(0.0.255) const +]_[@(0.0.255) char]_`*[*@3 seps])&] +[s2; Specifies CharFilterDate behaviour. Digits are always allowed +in CharFilterDate. If there is `"a`" at the beginning of seps +string, letters are allowed. If there is `"A`", letters are allowed +and converted to upper`-case. After this optional character, +list of characters allowed as separator follows. `"`\r`" after +character designates `"replace`" character `- if used, all characters +up to next `"amend`" character or `'`\0`' are replaced by it. + This is per`-thread setting with threads inheriting the setting +of main thread.&] +[s2; Example:&] +[s2; [*C@3 ][*C `"a.][*C@3 `\r][*C@5 ,][*C@3 `\r][*C /][*C@3 `\r][*C@5 :;][*C `"]&] +[s2; CharFilterDate would allow letters but not convert them to uppercase, +it will allow characters `'[* .]`' and `'/`' and it will convert +`'[*@5 ,]`' to `'[* .]`' and `'[*@5 :]`' or `'[*@5 ;]`' to `'[* /]`'.&] +[s3; &] [s0; ]] \ No newline at end of file diff --git a/uppsrc/Core/src.tpp/DateTime$en-us.tpp b/uppsrc/Core/src.tpp/DateTime_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/DateTime$en-us.tpp rename to uppsrc/Core/src.tpp/DateTime_en-us.tpp diff --git a/uppsrc/Core/src.tpp/Exc$en-us.tpp b/uppsrc/Core/src.tpp/Exc_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/Exc$en-us.tpp rename to uppsrc/Core/src.tpp/Exc_en-us.tpp diff --git a/uppsrc/Core/src.tpp/FastCompress$en-us.tpp b/uppsrc/Core/src.tpp/FastCompress_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/FastCompress$en-us.tpp rename to uppsrc/Core/src.tpp/FastCompress_en-us.tpp diff --git a/uppsrc/Core/src.tpp/FindFile$en-us.tpp b/uppsrc/Core/src.tpp/FindFile_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/FindFile$en-us.tpp rename to uppsrc/Core/src.tpp/FindFile_en-us.tpp diff --git a/uppsrc/Core/src.tpp/FixedAMap$en-us.tpp b/uppsrc/Core/src.tpp/FixedAMap_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/FixedAMap$en-us.tpp rename to uppsrc/Core/src.tpp/FixedAMap_en-us.tpp diff --git a/uppsrc/Core/src.tpp/FormatFn$en-us.tpp b/uppsrc/Core/src.tpp/FormatFn_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/FormatFn$en-us.tpp rename to uppsrc/Core/src.tpp/FormatFn_en-us.tpp diff --git a/uppsrc/Core/src.tpp/Format$en-us.tpp b/uppsrc/Core/src.tpp/Format_en-us.tpp similarity index 97% rename from uppsrc/Core/src.tpp/Format$en-us.tpp rename to uppsrc/Core/src.tpp/Format_en-us.tpp index bf23133d7..02246067a 100644 --- a/uppsrc/Core/src.tpp/Format$en-us.tpp +++ b/uppsrc/Core/src.tpp/Format_en-us.tpp @@ -1,432 +1,432 @@ -topic "Format - text formatting"; -[2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,0#27521748481378242620020725143825:desc] -[0 $$3,0#96390100711032703541132217272105:end] -[H6;0 $$4,0#05600065144404261032431302351956:begin] -[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] -[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] -[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] -[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] -[b42;2 $$9,9#13035079074754324216151401829390:normal] -[{_}%EN-US -[ {{10000@(113.42.0) [s0; [*@2;4 Format `- text formatting]]}}&] -[s0;*@3;4 &] -[s5;:`:`:Format`(const char`*`,const`:`:Vector`<`:`:Value`>`&`):%- [^`:`:String^ String -]_[* Format][@(64) (][@(0.0.255) const][@(64) _][@(0.0.255) char][@(64) _`*][*@3 format][@(64) , -][@(0.0.255) const][@(64) _][^`:`:Vector^@(64) Vector][@(64) <][^`:`:Value^@(64) Value][@(64) > -`&_][*@3 args][@(64) )]&] -[s5;%- [^`:`:String^ String]_[* Format][@(64) (][@(0.0.255) const][@(64) _][@(0.0.255) char][@(64) _ -`*][*@3 format][@(64) , ][^`:`:Value^@(64) Value][@(64) _][*@3 arg][*,@3 1][*@3 -][@4 `[], [^`:`:Value^@(64) Value][@(64) _][*@3 arg][*,@3 n][@4 `]...] [@(64) )]&] -[s5;:Format`(int`,const char`*`,const Vector``&`):%- [^String^ String]_[* Format]( -[@(0.0.255) int]_[*@3 language], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 s], -[@(0.0.255) const]_Vector[@(0.0.255) <]Value[@(0.0.255) >`&]_[*@3 v])&] -[s5;%- [^`:`:String^ String]_[* Format][@(64) (][@(0.0.255) int][@(64) _][*@3 language][@(64) , -][@(0.0.255) const][@(64) _][@(0.0.255) char][@(64) _`*][*@3 format][@(64) , -][^`:`:Value^@(64) Value][@(64) _][*@3 arg][*,@3 1][*@3 ][@4 `[], [^`:`:Value^@(64) Value][@(64) _ -][*@3 arg][*,@3 n][@4 `]...] [@(64) )]&] -[s2; &] -[s0; Format forms output text based on [*@3 format], inserting actual -arguments to placeholders. Argument values are converted to text -using formatters. U`+`+ specifies set of standard formatters; -application can freely register their own formatters for specific -Value types too.&] -[s0; &] -[s0; Note that the variable number of Value arguments is implemented -by overloading the Format up to 20 parameters.&] -[s0; &] -[s0; Placeholders start with [* %] and have format:&] -[s0; &] -[s0; [* %][*@4 `[][*@(0.0.255) commands][*@4 `]`[][*@(0.0.255) options][*@4 `]`[][*@(0.0.255) forma -tter`-id][*@4 `]`[][*@(0.0.255) ``][*@4 `]]&] -[s0; &] -[s0; [*@(0.0.255) commands] are interpreted by Format routine (not -specific formatter). Each command sequence ends with character -specifying the kind of command, this delimits it from options -and/or formatter.&] -[s0; &] -[s0; Available commands:&] -[s0; &] -[ {{1785:8215^ [s0; [*/@(0.0.255) position][* :]] -::= [s0; Seeks to an argument at [*/@(0.0.255) position]. Allows to `"reorganize`" -ordering of arguments, useful with translations.] -::^ [s0; [*/@(0.0.255) width][* <]] -::= [s0; Places formatter result into field with [*/@(0.0.255) width] characters, -aligns left.] -::^ [s0; [*/@(0.0.255) width][* >]] -::= [s0; Places formatter result into field with [*/@(0.0.255) width] characters, -aligns right.] -::^ [s0; [*/@(0.0.255) width][* `=]] -::= [s0; Places formatter result into field with [*/@(0.0.255) width] characters, -aligns to center.] -::^ [s0; [* `[][*/@(0.0.255) text][* `]`~]] -::= [s0; If argument is [* Null], uses [*/@(0.0.255) text] instead of formatter -result.]}}&] -[s0; &] -[s0; [*@(0.0.255) formatter`-id][* ]must consist of alpha characters -only, unlike C identifiers, digits or `'`_`' are not allowed. -Everything between [*@(0.0.255) commands] and [*@(0.0.255) formatter`-id] -is considered to be [*@(0.0.255) options] and passed to formatter. -Note that [*@(0.0.255) formatter`-id] is Value type specific `- -the same name can specify different formatter depending on Value -type. [*@(0.0.255) formatter`-id] is case`-sensitive.&] -[s0; &] -[s0; Character [* `*] in [*@(0.0.255) options] section is replaced by -an argument converted using AsString.&] -[s0; &] -[s0; If [*@(0.0.255) options] are to contain alpha characters, they -need to be escaped using [* `[ `]] to distinguish options from -formatter`-id.&] -[s0; &] -[s0; Placeholder can end either by non`-alpha character or by [* ``]. -formatter`-id can be left empty; in that case Format uses AsString -to convert Value to text (defined in RichValue interface) `- -the most trivial placeholder is therefore [* %``].&] -[s0; &] -[s0; While Format implements all of classic printf formatter, please -notice two incompatibilities:&] -[s0; &] -[s0;i150;O0; All arguments of Format must be convertible (and are -converted) to Value. On the positive side, Value performs natural -conversions like double `-> int, so it is possible to e.g. use -%d for double value.&] -[s0; &] -[s0;i150;O0; formatter`-id `"eats`" all alpha characters. This is -a problem when non`-placeholder alpha character is to follow -placeholder, e.g. %dpt `- this has to be written as %d``pt (`` -delimits the formatter`-id).&] -[s0; &] -[s0; &] -[s0; [*/ Standard formatters]&] -[s0; &] -[s0; [* Default formatter]&] -[s0; &] -[s0; If formatter`-id is empty, Value is converted using AsString -(implemented in RichValue interface).&] -[s0; &] -[s0; &] -[s0; [* printf formatters]&] -[s0; &] -[s0; Most printf formatters are supported:&] -[s0; &] -[s0; [* c d i o x X ld li lo lx lX lld lli llo llx llX e E f g G s]&] -[s0; &] -[s0; Please refer to printf documentation for the description.&] -[s0; &] -[s0; &] -[s0; [* Switch formatter]&] -[s0; &] -[s0; This is special number formatter (registered for double, int -and int64 values). [*@(0.0.255) options] of switch formatter contain -a list of values and respective texts `- a text for actual argument -is printed. [*@(0.0.255) formatter`-id] is [* s].&] -[s0; &] -[s0; The format of switch [*@(0.0.255) options] is&] -[s0; &] -[s0; [*@4 `[][*@(0.0.255) modulo][* %][*@4 `]`[][*@(0.0.255) case][* :][*@(0.0.255) text];[*@4 `]...`[ -][*@(0.0.255) default][*@4 `]]&] -[s0; &] -[ {{1395:8605 [s0; [*@(0.0.255) modulo]] -:: [s0; If this optional part is present, modulo of argument is used -for switch cases.] -:: [s0; [*@(0.0.255) case]] -:: [s0; Numeric case.] -:: [s0; [*@(0.0.255) text]] -:: [s0; Text for given numeric case.] -:: [s0; [*@(0.0.255) default]] -:: [s0; Default text when no case is matched.]}}&] -[s0; &] -[s0; Note that as text usually contains letters, whole switch options -section is almost always escaped using [* `[] [* `]].&] -[s0; &] -[s0; &] -[s0; [* Simple integer formatters]&] -[s0; &] -[s0; These formatters are registered for double, int and int64 values.&] -[s0; &] -[ {{1426:8574h1;@(204) [s0; [*@(0.0.255) formatter`-id]] -:: [s0; Description] -::@2 [s0;%- [* month]] -:: [s0; Lower`-case month name.] -:: [s0;%- [* Month]] -:: [s0; Month name with first letter upper`-case, rest lower`-case.] -:: [s0;%- [* MONTH]] -:: [s0; Upper`-case month name.] -:: [s0;%- [* mon]] -:: [s0; Abbreviated lower`-case month name.] -:: [s0;%- [* Mon]] -:: [s0; Abbreviated month name, first letter upper`-case, rest lower`-case.] -:: [s0;%- [* MON]] -:: [s0; Abbreviated upper`-case month name.] -:: [s0;%- [* day]] -:: [s0; Lower`-case day name.] -:: [s0;%- [* Day]] -:: [s0; Day name with first letter upper`-case, rest lower`-case.] -:: [s0;%- [* DAY]] -:: [s0; Upper`-case day name.] -:: [s0;%- [* dy]] -:: [s0; Abbreviated lower`-case day name.] -:: [s0;%- [* Dy]] -:: [s0; Abbreviated day name, first letter upper`-case, rest lower`-case.] -:: [s0;%- [* DY]] -:: [s0; Abbreviated upper`-case day name.] -:: [s0;%- [* tw]] -:: [s0; 12`-hour modulo format.] -:: [s0;%- [* a]] -:: [s0; Letter format, 1: a, 2: b, ... 26: z, 27: aa, ...] -:: [s0;%- [* A]] -:: [s0; Letter format, 1: a, 2: b, ... 26: z, 27: aa, ...] -:: [s0;%- [* r]] -:: [s0; Lower`-case roman numbers.] -:: [s0;%- [* R]] -:: [s0; Upper`-case roman numbers.]}}&] -[s0; &] -[s0; &] -[s0; [* Alternative real number formatters]&] -[s0; &] -[ {{1426:8574 [s0; [* n]] -:: [s0; fixed decimals] -:: [s0; [* v]] -:: [s0; valid decimals] -:: [s0; [* ne], [* ve]] -:: [s0; force exponential notation] -:: [s0; [* nf], [* vf]] -:: [s0; force fixed notation] -:: [s0; [* nl], [* vl]] -:: [s0; locale/language`-based formatting (can use `',`' instead of -`'.`' and add thousands separators)]}}&] -[s0; &] -[s0; &] -[s0; The format of [*@(0.0.255) options] of alternative real number -formatters is&] -[s0; &] -[s0; [*@4 `[][* `+][*@4 `]`[`[][* `-][*@4 `]][*@(0.0.255) digits][*@4 `]`[][* `@][*@4 `]`[][* ,][*@4 `]`[][* ! -][*@4 `]`[][* `^][*@4 `[][* `+][*@4 `]][*@(0.0.255) expdig][*@4 `]]&] -[s0; &] -[ {{1426:8574 [s0; `+] -:: [s0; always prepend sign (even if positive number)] -:: [s0; [*@4 `[][* `-][*@4 `]][*@(0.0.255) digits]] -:: [s0; number of decimals to print (negative `= left of decimal point, -default `= 6)] -:: [s0; `@] -:: [s0; do not use thousands separators (in internationalized formatting -[* nl] or [* vl])] -:: [s0; [* ,]] -:: [s0; use `',`' instead of `'.`' for decimal point] -:: [s0; [* !]] -:: [s0; keep insignificant zeros] -:: [s0; [* `^]] -:: [s0; exponent options:&] -[ {{5000:5000 [s0; [* `+]] -:: [s0; always prepend sign to exponent] -:: [s0; [*@(0.0.255) expdig]] -:: [s0; exponent padding width]}}]}}&] -[s0; &] -[s0; &] -[s0; &] -[s0;%- [*/ Examples of standard formatters]&] -[s0; &] -[s0;3%- &] -[ {{5073:4927 [s0;%- Format(`"[* %d, %s]`", 123, `"TEXT`")] -:: [s0;%- 123, TEXT] -:: [s0;%- Format(`"[* %2:s, %1:d]`", 123, `"TEXT`")] -:: [s0;%- TEXT, 123] -:: [s0;%- Format(`"[* %010d]`", 123)] -:: [s0;%- 0000000123] -:: [s0;%- Format(`"[* %0`*d]`", 11, 123)] -:: [s0;%- 00000000123] -:: [s0;%- Format(`"[* `|%20d`|]`", 123)] -:: [s0;%- `| 123`|] -:: [s0;%- Format(`"[* `|%20`=d`|]`", 123)] -:: [s0;%- `| 123 `|] -:: [s0;%- Format(`"[* %dpt]`", 123)] -:: [s0;%- 123pt] -:: [s0;%- Format(`"[* %`[empty`]`~d, %`[empty`]`~d]`", 123, Null)] -:: [s0;%- 123, empty] -:: [s0;%- Format(`"[* %]`", 123)] -:: [s0;%- 123] -:: [s0;%- Format(`"[* %c]`", 65)] -:: [s0;%- A] -:: [s0;%- Format(`"[* %d]`", 123)] -:: [s0;%- 123] -:: [s0;%- Format(`"[* %i]`", 123)] -:: [s0;%- 123] -:: [s0;%- Format(`"[* %o]`", 123)] -:: [s0;%- 173] -:: [s0;%- Format(`"[* %x]`", 123)] -:: [s0;%- 7b] -:: [s0;%- Format(`"[* %X]`", 123)] -:: [s0;%- 7B] -:: [s0;%- Format(`"[* %e]`", 1234567.89)] -:: [s0;%- 1.234568e`+006] -:: [s0;%- Format(`"[* %E]`", 1234567.89)] -:: [s0;%- 1.234568E`+006] -:: [s0;%- Format(`"[* %f]`", 1234567.89)] -:: [s0;%- 1234567.890000] -:: [s0;%- Format(`"[* %g]`", 1234567.89)] -:: [s0;%- 1.23457e`+006] -:: [s0;%- Format(`"[* %G]`", 1234567.89)] -:: [s0;%- 1.23457E`+006] -:: [s0;%- Format(`"[* %n]`", 1234567.89)] -:: [s0;%- 1234567.89] -:: [s0;%- Format(`"[* %,n]`", 1234567.89)] -:: [s0;%- 1234567,89] -:: [s0;%- Format(`"[* %`+n]`", 1234567.89)] -:: [s0;%- `+1234567.89] -:: [s0;%- Format(`"[* %2,n]`", 123.456)] -:: [s0;%- 123,46] -:: [s0;%- Format(`"[* %2,n]`", 123)] -:: [s0;%- 123] -:: [s0;%- Format(`"[* %2!,n]`", 123)] -:: [s0;%- 123.00] -:: [s0;%- Format(`"[* %ne]`", 1234567.89)] -:: [s0;%- 1234567.89] -:: [s0;%- Format(`"[* %nf]`", 1234567.89e30)] -:: [s0;%- 1234567890000000000000000000000000000] -:: [s0;%- Format(`"[* %nl]`", 1234567.89)] -:: [s0;%- 1,234,567.89] -:: [s0;%- Format(`"[* %`@nl]`", 1234567.89)] -:: [s0;%- 1234567.89] -:: [s0;%- Format(`"[* %`@,nl]`", 1234567.89)] -:: [s0;%- 1234567,89] -:: [s0;%- Format(`"[* %v]`", 1234567.89)] -:: [s0;%- 1234570] -:: [s0;%- Format(`"[* %ve]`", 1234567.89)] -:: [s0;%- 1234570] -:: [s0;%- Format(`"[* %vf]`", 1234567.89e30)] -:: [s0;%- 1234570000000000000000000000000000000] -:: [s0;%- Format(`"[* %vl]`", 1234567.89)] -:: [s0;%- 1,234,570] -:: [s0;%- Format(`"[* %`[1:one;2:two;3:three;another`]s]`", 2)] -:: [s0;%- two] -:: [s0;%- Format(`"[* %`[1:one;2:two;3:three;another`]s]`", 20)] -:: [s0;%- another] -:: [s0;%- Format(`"[* %`[3%1:one;2:two;3:three;another`]s]`", 20)] -:: [s0;%- two] -:: [s0;%- Format(`"[* %month]`", 6)] -:: [s0;%- june] -:: [s0;%- Format(`"[* %Month]`", 6)] -:: [s0;%- June] -:: [s0;%- Format(`"[* %MONTH]`", 6)] -:: [s0;%- JUNE] -:: [s0;%- Format(`"[* %mon]`", 6)] -:: [s0;%- jun] -:: [s0;%- Format(`"[* %Mon]`", 6)] -:: [s0;%- Jun] -:: [s0;%- Format(`"[* %MON]`", 6)] -:: [s0;%- JUN] -:: [s0;%- Format(`"[* %day]`", 6)] -:: [s0;%- saturday] -:: [s0;%- Format(`"[* %Day]`", 6)] -:: [s0;%- Saturday] -:: [s0;%- Format(`"[* %DAY]`", 6)] -:: [s0;%- SATURDAY] -:: [s0;%- Format(`"[* %dy]`", 6)] -:: [s0;%- sa] -:: [s0;%- Format(`"[* %Dy]`", 6)] -:: [s0;%- Sa] -:: [s0;%- Format(`"[* %DY]`", 6)] -:: [s0;%- SA] -:: [s0;%- Format(`"[* %tw]`", 0)] -:: [s0;%- 12] -:: [s0;%- Format(`"[* %tw]`", 5)] -:: [s0;%- 5] -:: [s0;%- Format(`"[* %tw]`", 15)] -:: [s0;%- 3] -:: [s0;%- Format(`"[* %0tw]`", 15)] -:: [s0;%- 03] -:: [s0;%- Format(`"[* %a]`", 1)] -:: [s0;%- a] -:: [s0;%- Format(`"[* %a]`", 123)] -:: [s0;%- es] -:: [s0;%- Format(`"[* %A]`", 1)] -:: [s0;%- A] -:: [s0;%- Format(`"[* %A]`", 123)] -:: [s0;%- ES] -:: [s0;%- Format(`"[* %r]`", 8)] -:: [s0;%- viii] -:: [s0;%- Format(`"[* %R]`", 1231)] -:: [s0;%- MCCXXXI] -:: [s0;%- Format(`"[* %]`", GetSysDate())] -:: [s0;%- 11/11/2011] -:: [s0;%- Format(`"[* %]`", GetSysTime())] -:: [s0;%- 11/11/2011 14:44:11] -:: [s0;%- Format(`"[* %]`", `"text`")] -:: [s0;%- text]}}&] -[s0; &] -[s0; &] -[s0; &] -[s0;%- [*@3+117 Registering custom formatters]&] -[s0; &] -[s5;:Formatter`:`:typedef:%- typedef_[^String^ String]_(`*Formatter)([@(0.0.255) const][@(64) _ -][^Formatting^@(64) Formatting][@(64) `&_fmt)]&] -[s2; Formatter has to have form of function with single [^Formatting^ Formatting] -argument.&] -[s1; &] -[ {{10000F(128)G(128)@1 [s0; [* Formatting]]}}&] -[s0;%- &] -[s1;:Formatting`:`:struct:%- [@(0.0.255) struct]_[* Formatting]&] -[s2; This structure passes all informations to format Value argument -to the formatter.&] -[s3; &] -[s4;%- &] -[s5;:Formatting`:`:language:%- [@(0.0.255) int]_[* language]&] -[s2; Language of resulting text.&] -[s3;%- &] -[s4;%- &] -[s5;:Formatting`:`:arg:%- Value_[* arg]&] -[s2; Actual argument.&] -[s3;%- &] -[s4;%- &] -[s5;:Formatting`:`:format:%- String_[* format]&] -[s2; Formatting [*@(0.0.255) options].&] -[s3;%- &] -[s4;%- &] -[s5;:Formatting`:`:id:%- String_[* id]&] -[s2; Formatter`-id.&] -[s1; &] -[ {{10000F(128)G(128)@1 [s0; [* Format registration functions]]}}&] -[s3;%- &] -[s5;:RegisterFormatter`(int`,const char`*`,Formatter`)init`_:%- [@(0.0.255) void]_[* Regi -sterFormatter]([@(0.0.255) int]_[*@3 type], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 id], - Formatter_[*@3 f])&] -[s2; Registers formatter for specific Value [%-*@3 type]. If [%-*@3 type] -is VALUE`_V, formatter is applied to all Value types if no formatter -for specific type is specified.&] -[s3;%- &] -[s4;%- &] -[s5;:RegisterNumberFormatter`(const char`*`,Formatter`)init`_:%- [@(0.0.255) void]_[* Reg -isterNumberFormatter]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 id], -Formatter_[*@3 f])&] -[s2; Registers formatter for bool, int, double and int64 types.&] -[s3;%- &] -[s4;%- &] -[s5;:RegisterStringFormatter`(const char`*`,Formatter`)init`_:%- [@(0.0.255) void]_[* Reg -isterStringFormatter]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 id], -Formatter_[*@3 f])&] -[s2; Registers formatter for String and WString types.&] -[s3;%- &] -[s4;%- &] -[s5;:RegisterDateTimeFormatter`(const char`*`,Formatter`)init`_:%- [@(0.0.255) void]_[* R -egisterDateTimeFormatter]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 id], -Formatter_[*@3 f])&] -[s2; Registers formatter for Date and Time types.&] -[s3;%- &] -[s4;%- &] -[s5;:RegisterValueFormatter`(const char`*`,Formatter`)init`_:%- [@(0.0.255) void]_[* Regi -sterValueFormatter]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 id], -Formatter_[*@3 f])&] -[s2; Registers formatter to be applied when no formatter for specific -type is specified.&] -[s3; &] -[s4;%- &] -[s5;:RegisterNullFormatter`(const char`*`,Formatter`)init`_:%- [@(0.0.255) void]_[* Regis -terNullFormatter]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 id], -Formatter_[*@3 f])&] -[s2; Registers formatter [%-*@3 id] to be applied when the Value argument -is Void (Value()) or ErrorValue.&] -[s3; &] +topic "Format - text formatting"; +[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,0#27521748481378242620020725143825:desc] +[0 $$3,0#96390100711032703541132217272105:end] +[H6;0 $$4,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] +[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] +[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] +[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] +[b42;2 $$9,9#13035079074754324216151401829390:normal] +[{_}%EN-US +[ {{10000@(113.42.0) [s0; [*@2;4 Format `- text formatting]]}}&] +[s0;*@3;4 &] +[s5;:`:`:Format`(const char`*`,const`:`:Vector`<`:`:Value`>`&`):%- [^`:`:String^ String +]_[* Format][@(64) (][@(0.0.255) const][@(64) _][@(0.0.255) char][@(64) _`*][*@3 format][@(64) , +][@(0.0.255) const][@(64) _][^`:`:Vector^@(64) Vector][@(64) <][^`:`:Value^@(64) Value][@(64) > +`&_][*@3 args][@(64) )]&] +[s5;%- [^`:`:String^ String]_[* Format][@(64) (][@(0.0.255) const][@(64) _][@(0.0.255) char][@(64) _ +`*][*@3 format][@(64) , ][^`:`:Value^@(64) Value][@(64) _][*@3 arg][*,@3 1][*@3 +][@4 `[], [^`:`:Value^@(64) Value][@(64) _][*@3 arg][*,@3 n][@4 `]...] [@(64) )]&] +[s5;:Format`(int`,const char`*`,const Vector``&`):%- [^String^ String]_[* Format]( +[@(0.0.255) int]_[*@3 language], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 s], +[@(0.0.255) const]_Vector[@(0.0.255) <]Value[@(0.0.255) >`&]_[*@3 v])&] +[s5;%- [^`:`:String^ String]_[* Format][@(64) (][@(0.0.255) int][@(64) _][*@3 language][@(64) , +][@(0.0.255) const][@(64) _][@(0.0.255) char][@(64) _`*][*@3 format][@(64) , +][^`:`:Value^@(64) Value][@(64) _][*@3 arg][*,@3 1][*@3 ][@4 `[], [^`:`:Value^@(64) Value][@(64) _ +][*@3 arg][*,@3 n][@4 `]...] [@(64) )]&] +[s2; &] +[s0; Format forms output text based on [*@3 format], inserting actual +arguments to placeholders. Argument values are converted to text +using formatters. U`+`+ specifies set of standard formatters; +application can freely register their own formatters for specific +Value types too.&] +[s0; &] +[s0; Note that the variable number of Value arguments is implemented +by overloading the Format up to 20 parameters.&] +[s0; &] +[s0; Placeholders start with [* %] and have format:&] +[s0; &] +[s0; [* %][*@4 `[][*@(0.0.255) commands][*@4 `]`[][*@(0.0.255) options][*@4 `]`[][*@(0.0.255) forma +tter`-id][*@4 `]`[][*@(0.0.255) ``][*@4 `]]&] +[s0; &] +[s0; [*@(0.0.255) commands] are interpreted by Format routine (not +specific formatter). Each command sequence ends with character +specifying the kind of command, this delimits it from options +and/or formatter.&] +[s0; &] +[s0; Available commands:&] +[s0; &] +[ {{1785:8215^ [s0; [*/@(0.0.255) position][* :]] +::= [s0; Seeks to an argument at [*/@(0.0.255) position]. Allows to `"reorganize`" +ordering of arguments, useful with translations.] +::^ [s0; [*/@(0.0.255) width][* <]] +::= [s0; Places formatter result into field with [*/@(0.0.255) width] characters, +aligns left.] +::^ [s0; [*/@(0.0.255) width][* >]] +::= [s0; Places formatter result into field with [*/@(0.0.255) width] characters, +aligns right.] +::^ [s0; [*/@(0.0.255) width][* `=]] +::= [s0; Places formatter result into field with [*/@(0.0.255) width] characters, +aligns to center.] +::^ [s0; [* `[][*/@(0.0.255) text][* `]`~]] +::= [s0; If argument is [* Null], uses [*/@(0.0.255) text] instead of formatter +result.]}}&] +[s0; &] +[s0; [*@(0.0.255) formatter`-id][* ]must consist of alpha characters +only, unlike C identifiers, digits or `'`_`' are not allowed. +Everything between [*@(0.0.255) commands] and [*@(0.0.255) formatter`-id] +is considered to be [*@(0.0.255) options] and passed to formatter. +Note that [*@(0.0.255) formatter`-id] is Value type specific `- +the same name can specify different formatter depending on Value +type. [*@(0.0.255) formatter`-id] is case`-sensitive.&] +[s0; &] +[s0; Character [* `*] in [*@(0.0.255) options] section is replaced by +an argument converted using AsString.&] +[s0; &] +[s0; If [*@(0.0.255) options] are to contain alpha characters, they +need to be escaped using [* `[ `]] to distinguish options from +formatter`-id.&] +[s0; &] +[s0; Placeholder can end either by non`-alpha character or by [* ``]. +formatter`-id can be left empty; in that case Format uses AsString +to convert Value to text (defined in RichValue interface) `- +the most trivial placeholder is therefore [* %``].&] +[s0; &] +[s0; While Format implements all of classic printf formatter, please +notice two incompatibilities:&] +[s0; &] +[s0;i150;O0; All arguments of Format must be convertible (and are +converted) to Value. On the positive side, Value performs natural +conversions like double `-> int, so it is possible to e.g. use +%d for double value.&] +[s0; &] +[s0;i150;O0; formatter`-id `"eats`" all alpha characters. This is +a problem when non`-placeholder alpha character is to follow +placeholder, e.g. %dpt `- this has to be written as %d``pt (`` +delimits the formatter`-id).&] +[s0; &] +[s0; &] +[s0; [*/ Standard formatters]&] +[s0; &] +[s0; [* Default formatter]&] +[s0; &] +[s0; If formatter`-id is empty, Value is converted using AsString +(implemented in RichValue interface).&] +[s0; &] +[s0; &] +[s0; [* printf formatters]&] +[s0; &] +[s0; Most printf formatters are supported:&] +[s0; &] +[s0; [* c d i o x X ld li lo lx lX lld lli llo llx llX e E f g G s]&] +[s0; &] +[s0; Please refer to printf documentation for the description.&] +[s0; &] +[s0; &] +[s0; [* Switch formatter]&] +[s0; &] +[s0; This is special number formatter (registered for double, int +and int64 values). [*@(0.0.255) options] of switch formatter contain +a list of values and respective texts `- a text for actual argument +is printed. [*@(0.0.255) formatter`-id] is [* s].&] +[s0; &] +[s0; The format of switch [*@(0.0.255) options] is&] +[s0; &] +[s0; [*@4 `[][*@(0.0.255) modulo][* %][*@4 `]`[][*@(0.0.255) case][* :][*@(0.0.255) text];[*@4 `]...`[ +][*@(0.0.255) default][*@4 `]]&] +[s0; &] +[ {{1395:8605 [s0; [*@(0.0.255) modulo]] +:: [s0; If this optional part is present, modulo of argument is used +for switch cases.] +:: [s0; [*@(0.0.255) case]] +:: [s0; Numeric case.] +:: [s0; [*@(0.0.255) text]] +:: [s0; Text for given numeric case.] +:: [s0; [*@(0.0.255) default]] +:: [s0; Default text when no case is matched.]}}&] +[s0; &] +[s0; Note that as text usually contains letters, whole switch options +section is almost always escaped using [* `[] [* `]].&] +[s0; &] +[s0; &] +[s0; [* Simple integer formatters]&] +[s0; &] +[s0; These formatters are registered for double, int and int64 values.&] +[s0; &] +[ {{1426:8574h1;@(204) [s0; [*@(0.0.255) formatter`-id]] +:: [s0; Description] +::@2 [s0;%- [* month]] +:: [s0; Lower`-case month name.] +:: [s0;%- [* Month]] +:: [s0; Month name with first letter upper`-case, rest lower`-case.] +:: [s0;%- [* MONTH]] +:: [s0; Upper`-case month name.] +:: [s0;%- [* mon]] +:: [s0; Abbreviated lower`-case month name.] +:: [s0;%- [* Mon]] +:: [s0; Abbreviated month name, first letter upper`-case, rest lower`-case.] +:: [s0;%- [* MON]] +:: [s0; Abbreviated upper`-case month name.] +:: [s0;%- [* day]] +:: [s0; Lower`-case day name.] +:: [s0;%- [* Day]] +:: [s0; Day name with first letter upper`-case, rest lower`-case.] +:: [s0;%- [* DAY]] +:: [s0; Upper`-case day name.] +:: [s0;%- [* dy]] +:: [s0; Abbreviated lower`-case day name.] +:: [s0;%- [* Dy]] +:: [s0; Abbreviated day name, first letter upper`-case, rest lower`-case.] +:: [s0;%- [* DY]] +:: [s0; Abbreviated upper`-case day name.] +:: [s0;%- [* tw]] +:: [s0; 12`-hour modulo format.] +:: [s0;%- [* a]] +:: [s0; Letter format, 1: a, 2: b, ... 26: z, 27: aa, ...] +:: [s0;%- [* A]] +:: [s0; Letter format, 1: a, 2: b, ... 26: z, 27: aa, ...] +:: [s0;%- [* r]] +:: [s0; Lower`-case roman numbers.] +:: [s0;%- [* R]] +:: [s0; Upper`-case roman numbers.]}}&] +[s0; &] +[s0; &] +[s0; [* Alternative real number formatters]&] +[s0; &] +[ {{1426:8574 [s0; [* n]] +:: [s0; fixed decimals] +:: [s0; [* v]] +:: [s0; valid decimals] +:: [s0; [* ne], [* ve]] +:: [s0; force exponential notation] +:: [s0; [* nf], [* vf]] +:: [s0; force fixed notation] +:: [s0; [* nl], [* vl]] +:: [s0; locale/language`-based formatting (can use `',`' instead of +`'.`' and add thousands separators)]}}&] +[s0; &] +[s0; &] +[s0; The format of [*@(0.0.255) options] of alternative real number +formatters is&] +[s0; &] +[s0; [*@4 `[][* `+][*@4 `]`[`[][* `-][*@4 `]][*@(0.0.255) digits][*@4 `]`[][* `@][*@4 `]`[][* ,][*@4 `]`[][* ! +][*@4 `]`[][* `^][*@4 `[][* `+][*@4 `]][*@(0.0.255) expdig][*@4 `]]&] +[s0; &] +[ {{1426:8574 [s0; `+] +:: [s0; always prepend sign (even if positive number)] +:: [s0; [*@4 `[][* `-][*@4 `]][*@(0.0.255) digits]] +:: [s0; number of decimals to print (negative `= left of decimal point, +default `= 6)] +:: [s0; `@] +:: [s0; do not use thousands separators (in internationalized formatting +[* nl] or [* vl])] +:: [s0; [* ,]] +:: [s0; use `',`' instead of `'.`' for decimal point] +:: [s0; [* !]] +:: [s0; keep insignificant zeros] +:: [s0; [* `^]] +:: [s0; exponent options:&] +[ {{5000:5000 [s0; [* `+]] +:: [s0; always prepend sign to exponent] +:: [s0; [*@(0.0.255) expdig]] +:: [s0; exponent padding width]}}]}}&] +[s0; &] +[s0; &] +[s0; &] +[s0;%- [*/ Examples of standard formatters]&] +[s0; &] +[s0;3%- &] +[ {{5073:4927 [s0;%- Format(`"[* %d, %s]`", 123, `"TEXT`")] +:: [s0;%- 123, TEXT] +:: [s0;%- Format(`"[* %2:s, %1:d]`", 123, `"TEXT`")] +:: [s0;%- TEXT, 123] +:: [s0;%- Format(`"[* %010d]`", 123)] +:: [s0;%- 0000000123] +:: [s0;%- Format(`"[* %0`*d]`", 11, 123)] +:: [s0;%- 00000000123] +:: [s0;%- Format(`"[* `|%20d`|]`", 123)] +:: [s0;%- `| 123`|] +:: [s0;%- Format(`"[* `|%20`=d`|]`", 123)] +:: [s0;%- `| 123 `|] +:: [s0;%- Format(`"[* %dpt]`", 123)] +:: [s0;%- 123pt] +:: [s0;%- Format(`"[* %`[empty`]`~d, %`[empty`]`~d]`", 123, Null)] +:: [s0;%- 123, empty] +:: [s0;%- Format(`"[* %]`", 123)] +:: [s0;%- 123] +:: [s0;%- Format(`"[* %c]`", 65)] +:: [s0;%- A] +:: [s0;%- Format(`"[* %d]`", 123)] +:: [s0;%- 123] +:: [s0;%- Format(`"[* %i]`", 123)] +:: [s0;%- 123] +:: [s0;%- Format(`"[* %o]`", 123)] +:: [s0;%- 173] +:: [s0;%- Format(`"[* %x]`", 123)] +:: [s0;%- 7b] +:: [s0;%- Format(`"[* %X]`", 123)] +:: [s0;%- 7B] +:: [s0;%- Format(`"[* %e]`", 1234567.89)] +:: [s0;%- 1.234568e`+006] +:: [s0;%- Format(`"[* %E]`", 1234567.89)] +:: [s0;%- 1.234568E`+006] +:: [s0;%- Format(`"[* %f]`", 1234567.89)] +:: [s0;%- 1234567.890000] +:: [s0;%- Format(`"[* %g]`", 1234567.89)] +:: [s0;%- 1.23457e`+006] +:: [s0;%- Format(`"[* %G]`", 1234567.89)] +:: [s0;%- 1.23457E`+006] +:: [s0;%- Format(`"[* %n]`", 1234567.89)] +:: [s0;%- 1234567.89] +:: [s0;%- Format(`"[* %,n]`", 1234567.89)] +:: [s0;%- 1234567,89] +:: [s0;%- Format(`"[* %`+n]`", 1234567.89)] +:: [s0;%- `+1234567.89] +:: [s0;%- Format(`"[* %2,n]`", 123.456)] +:: [s0;%- 123,46] +:: [s0;%- Format(`"[* %2,n]`", 123)] +:: [s0;%- 123] +:: [s0;%- Format(`"[* %2!,n]`", 123)] +:: [s0;%- 123.00] +:: [s0;%- Format(`"[* %ne]`", 1234567.89)] +:: [s0;%- 1234567.89] +:: [s0;%- Format(`"[* %nf]`", 1234567.89e30)] +:: [s0;%- 1234567890000000000000000000000000000] +:: [s0;%- Format(`"[* %nl]`", 1234567.89)] +:: [s0;%- 1,234,567.89] +:: [s0;%- Format(`"[* %`@nl]`", 1234567.89)] +:: [s0;%- 1234567.89] +:: [s0;%- Format(`"[* %`@,nl]`", 1234567.89)] +:: [s0;%- 1234567,89] +:: [s0;%- Format(`"[* %v]`", 1234567.89)] +:: [s0;%- 1234570] +:: [s0;%- Format(`"[* %ve]`", 1234567.89)] +:: [s0;%- 1234570] +:: [s0;%- Format(`"[* %vf]`", 1234567.89e30)] +:: [s0;%- 1234570000000000000000000000000000000] +:: [s0;%- Format(`"[* %vl]`", 1234567.89)] +:: [s0;%- 1,234,570] +:: [s0;%- Format(`"[* %`[1:one;2:two;3:three;another`]s]`", 2)] +:: [s0;%- two] +:: [s0;%- Format(`"[* %`[1:one;2:two;3:three;another`]s]`", 20)] +:: [s0;%- another] +:: [s0;%- Format(`"[* %`[3%1:one;2:two;3:three;another`]s]`", 20)] +:: [s0;%- two] +:: [s0;%- Format(`"[* %month]`", 6)] +:: [s0;%- june] +:: [s0;%- Format(`"[* %Month]`", 6)] +:: [s0;%- June] +:: [s0;%- Format(`"[* %MONTH]`", 6)] +:: [s0;%- JUNE] +:: [s0;%- Format(`"[* %mon]`", 6)] +:: [s0;%- jun] +:: [s0;%- Format(`"[* %Mon]`", 6)] +:: [s0;%- Jun] +:: [s0;%- Format(`"[* %MON]`", 6)] +:: [s0;%- JUN] +:: [s0;%- Format(`"[* %day]`", 6)] +:: [s0;%- saturday] +:: [s0;%- Format(`"[* %Day]`", 6)] +:: [s0;%- Saturday] +:: [s0;%- Format(`"[* %DAY]`", 6)] +:: [s0;%- SATURDAY] +:: [s0;%- Format(`"[* %dy]`", 6)] +:: [s0;%- sa] +:: [s0;%- Format(`"[* %Dy]`", 6)] +:: [s0;%- Sa] +:: [s0;%- Format(`"[* %DY]`", 6)] +:: [s0;%- SA] +:: [s0;%- Format(`"[* %tw]`", 0)] +:: [s0;%- 12] +:: [s0;%- Format(`"[* %tw]`", 5)] +:: [s0;%- 5] +:: [s0;%- Format(`"[* %tw]`", 15)] +:: [s0;%- 3] +:: [s0;%- Format(`"[* %0tw]`", 15)] +:: [s0;%- 03] +:: [s0;%- Format(`"[* %a]`", 1)] +:: [s0;%- a] +:: [s0;%- Format(`"[* %a]`", 123)] +:: [s0;%- es] +:: [s0;%- Format(`"[* %A]`", 1)] +:: [s0;%- A] +:: [s0;%- Format(`"[* %A]`", 123)] +:: [s0;%- ES] +:: [s0;%- Format(`"[* %r]`", 8)] +:: [s0;%- viii] +:: [s0;%- Format(`"[* %R]`", 1231)] +:: [s0;%- MCCXXXI] +:: [s0;%- Format(`"[* %]`", GetSysDate())] +:: [s0;%- 11/11/2011] +:: [s0;%- Format(`"[* %]`", GetSysTime())] +:: [s0;%- 11/11/2011 14:44:11] +:: [s0;%- Format(`"[* %]`", `"text`")] +:: [s0;%- text]}}&] +[s0; &] +[s0; &] +[s0; &] +[s0;%- [*@3+117 Registering custom formatters]&] +[s0; &] +[s5;:Formatter`:`:typedef:%- typedef_[^String^ String]_(`*Formatter)([@(0.0.255) const][@(64) _ +][^Formatting^@(64) Formatting][@(64) `&_fmt)]&] +[s2; Formatter has to have form of function with single [^Formatting^ Formatting] +argument.&] +[s1; &] +[ {{10000F(128)G(128)@1 [s0; [* Formatting]]}}&] +[s0;%- &] +[s1;:Formatting`:`:struct:%- [@(0.0.255) struct]_[* Formatting]&] +[s2; This structure passes all informations to format Value argument +to the formatter.&] +[s3; &] +[s4;%- &] +[s5;:Formatting`:`:language:%- [@(0.0.255) int]_[* language]&] +[s2; Language of resulting text.&] +[s3;%- &] +[s4;%- &] +[s5;:Formatting`:`:arg:%- Value_[* arg]&] +[s2; Actual argument.&] +[s3;%- &] +[s4;%- &] +[s5;:Formatting`:`:format:%- String_[* format]&] +[s2; Formatting [*@(0.0.255) options].&] +[s3;%- &] +[s4;%- &] +[s5;:Formatting`:`:id:%- String_[* id]&] +[s2; Formatter`-id.&] +[s1; &] +[ {{10000F(128)G(128)@1 [s0; [* Format registration functions]]}}&] +[s3;%- &] +[s5;:RegisterFormatter`(int`,const char`*`,Formatter`)init`_:%- [@(0.0.255) void]_[* Regi +sterFormatter]([@(0.0.255) int]_[*@3 type], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 id], + Formatter_[*@3 f])&] +[s2; Registers formatter for specific Value [%-*@3 type]. If [%-*@3 type] +is VALUE`_V, formatter is applied to all Value types if no formatter +for specific type is specified.&] +[s3;%- &] +[s4;%- &] +[s5;:RegisterNumberFormatter`(const char`*`,Formatter`)init`_:%- [@(0.0.255) void]_[* Reg +isterNumberFormatter]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 id], +Formatter_[*@3 f])&] +[s2; Registers formatter for bool, int, double and int64 types.&] +[s3;%- &] +[s4;%- &] +[s5;:RegisterStringFormatter`(const char`*`,Formatter`)init`_:%- [@(0.0.255) void]_[* Reg +isterStringFormatter]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 id], +Formatter_[*@3 f])&] +[s2; Registers formatter for String and WString types.&] +[s3;%- &] +[s4;%- &] +[s5;:RegisterDateTimeFormatter`(const char`*`,Formatter`)init`_:%- [@(0.0.255) void]_[* R +egisterDateTimeFormatter]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 id], +Formatter_[*@3 f])&] +[s2; Registers formatter for Date and Time types.&] +[s3;%- &] +[s4;%- &] +[s5;:RegisterValueFormatter`(const char`*`,Formatter`)init`_:%- [@(0.0.255) void]_[* Regi +sterValueFormatter]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 id], +Formatter_[*@3 f])&] +[s2; Registers formatter to be applied when no formatter for specific +type is specified.&] +[s3; &] +[s4;%- &] +[s5;:RegisterNullFormatter`(const char`*`,Formatter`)init`_:%- [@(0.0.255) void]_[* Regis +terNullFormatter]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 id], +Formatter_[*@3 f])&] +[s2; Registers formatter [%-*@3 id] to be applied when the Value argument +is Void (Value()) or ErrorValue.&] +[s3; &] [s0; ]] \ No newline at end of file diff --git a/uppsrc/Core/src.tpp/Function$en-us.tpp b/uppsrc/Core/src.tpp/Function_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/Function$en-us.tpp rename to uppsrc/Core/src.tpp/Function_en-us.tpp diff --git a/uppsrc/Core/src.tpp/HttpCookie$en-us.tpp b/uppsrc/Core/src.tpp/HttpCookie_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/HttpCookie$en-us.tpp rename to uppsrc/Core/src.tpp/HttpCookie_en-us.tpp diff --git a/uppsrc/Core/src.tpp/HttpHeader$en-us.tpp b/uppsrc/Core/src.tpp/HttpHeader_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/HttpHeader$en-us.tpp rename to uppsrc/Core/src.tpp/HttpHeader_en-us.tpp diff --git a/uppsrc/Core/src.tpp/HttpRequest$en-us.tpp b/uppsrc/Core/src.tpp/HttpRequest_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/HttpRequest$en-us.tpp rename to uppsrc/Core/src.tpp/HttpRequest_en-us.tpp diff --git a/uppsrc/Core/src.tpp/Huge$en-us.tpp b/uppsrc/Core/src.tpp/Huge_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/Huge$en-us.tpp rename to uppsrc/Core/src.tpp/Huge_en-us.tpp diff --git a/uppsrc/Core/src.tpp/Id$en-us.tpp b/uppsrc/Core/src.tpp/Id_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/Id$en-us.tpp rename to uppsrc/Core/src.tpp/Id_en-us.tpp diff --git a/uppsrc/Core/src.tpp/InArray$en-us.tpp b/uppsrc/Core/src.tpp/InArray_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/InArray$en-us.tpp rename to uppsrc/Core/src.tpp/InArray_en-us.tpp diff --git a/uppsrc/Core/src.tpp/InFilterStream$en-us.tpp b/uppsrc/Core/src.tpp/InFilterStream_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/InFilterStream$en-us.tpp rename to uppsrc/Core/src.tpp/InFilterStream_en-us.tpp diff --git a/uppsrc/Core/src.tpp/InVector$en-us.tpp b/uppsrc/Core/src.tpp/InVector_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/InVector$en-us.tpp rename to uppsrc/Core/src.tpp/InVector_en-us.tpp diff --git a/uppsrc/Core/src.tpp/Indext$en-us.tpp b/uppsrc/Core/src.tpp/Indext_en-us.tpp similarity index 97% rename from uppsrc/Core/src.tpp/Indext$en-us.tpp rename to uppsrc/Core/src.tpp/Indext_en-us.tpp index 26b481183..b16bfe377 100644 --- a/uppsrc/Core/src.tpp/Indext$en-us.tpp +++ b/uppsrc/Core/src.tpp/Indext_en-us.tpp @@ -1,503 +1,503 @@ -topic "Index"; -[2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,0#27521748481378242620020725143825:desc] -[0 $$3,0#96390100711032703541132217272105:end] -[H6;0 $$4,0#05600065144404261032431302351956:begin] -[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] -[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] -[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] -[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] -[b42;2 $$9,9#13035079074754324216151401829390:normal] -[{_}%EN-US -[ {{10000@(113.42.0) [s0; [*@7;4 Index]]}}&] -[s3; &] -[s1;:noref:%- [@(0.0.255)3 template][3 _<][@(0.0.255)3 class][3 _][*@4;3 T][3 >]&] -[s1;:Index`:`:class:%- [@(0.0.255) class]_[* Index]&] -[s8; [*@4 T]-|Type of elements stored in Index. T is required to be -[/^topic`:`/`/Core`/srcdoc`/Moveable`$en`-us^ moveable][/ ]and must -have [/^topic`:`/`/Core`/srcdoc`/pick`_`$en`-us^ deep copy constructor] -and deep copy assignment.&] -[s0; &] -[s0; Like any other NTL container, Index is a [*/^topic`:`/`/Core`/srcdoc`/Moveable`$en`-us^ m -oveable][*/ ]type with [*/^topic`:`/`/Core`/srcdoc`/pick`_`$en`-us^ pick -and optional deep copy] transfer semantics.&] -[s9; Index adds associative capabilities to Vector.&] -[s9; It allows adding elements at the end of sequence in constant -amortized time like basic random container. Additionally, it -also allows fast retrieval of a position of the element with -specified value. Implementation is based on hash tables. Index -stores hash`-values of elements, so it has no advantage to cache -them externally.&] -[s9; Removing elements from an Index poses an interesting problem. -While it is possible to simply remove (or insert) an element -at a specified position, such operation has to move a lot of -elements and also invalidates internal hash maps. Thus removing -elements this way is slow, especially when combined with searching.&] -[s9; The solution for this problem is [*/ unlinking] of elements. Unlinked -elements are not removed from the Index, instead they are [*/ ignored][/ -]by search operations. Unlinking is a simple, constant time, -fast operation. Further, it is possible to place an element at -the first available unlinked position (rather than to the end -of sequence) using the [* Put] method, reusing unlinked position -in short constant time.&] -[s9; The only problem of unlinking is that it breaks so`-called [* multi`-key -ordering]. This term means that if there are more elements with -the same value in the index and they are iterated through using -the FindNext method, their positions (got as the result of Find -and subsequent FindNext methods) are in ascending order. The -problem is that it is impossible to implement placing elements -at unlinked positions in short time while preserving this ordering. -On the other hand, usage scenarios for indexes show that need -for unlinking elements and multi`-key ordering is almost always -disjunct. For the rest of the cases, it is always possible to -restore ordering using [* Sweep] method.&] -[s3; &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] -[s3;%- &] -[s5;:Index`:`:Index`(`):%- [* Index]()&] -[s2; Constructs empty Index.&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:Index`:`:Index`(Upp`:`:Index`&`&`):%- [* Index]([* Index][@(0.0.255) `&`&]_[*@3 s -])&] -[s2; Pick constructor.&] -[s3; &] -[s4;%- &] -[s5;:Index`:`:Index`(pick`_ Vector``&`):%- [* Index]([@(0.128.128) pick`_]_[_^Vector^ V -ector][@(0.0.255) <][*@4 T][@(0.0.255) >`&]_[*@3 s])&] -[s2; Pick operator. Transfers source Vector to Index in low constant -time, but destroys it by picking.&] -[s7; [*C@3 x]-|Source Vector.&] -[s3; &] -[s4;%- &] -[s5;:Index`:`:Index`(const Index`&`,int`):%- [* Index]([@(0.0.255) const]_[* Index][@(0.0.255) `& -]_[*@3 s], [@(0.0.255) int])&] -[s2; Optional deep copy constructor.&] -[s6; Requires T to have deep copy constructor or optional deep copy -constructor.&] -[s7; [*C@3 s]-|Source Index.&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:Index`:`:Index`(Upp`:`:Vector``&`&`):%- [@(0.0.255) explicit]_[* Index]([_^Upp`:`:Vector^ V -ector]<[*@4 T]>`&`&_[*@3 s])&] -[s2; Pick constructs Index from Vector.&] -[s3; &] -[s4;%- &] -[s5;:Index`:`:Index`(const Vector``&`,int`):%- [* Index]([@(0.0.255) const]_[_^Vector^ V -ector][@(0.0.255) <][*@4 T][@(0.0.255) >`&]_[*@3 s], [@(0.0.255) int])&] -[s2; Deep`-copy constructs Index from Vector.&] -[s6; Requires T to have deep copy constructor or optional deep copy -constructor.&] -[s7; [*@3 s]-|Source Vector.&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:Index`:`:operator`=`(Upp`:`:Vector``&`&`):%- [_^Upp`:`:Index^ Index][@(0.0.255) `& -]_[* operator`=]([_^Upp`:`:Vector^ Vector]<[*@4 T]>`&`&_[*@3 x])&] -[s2; Pick assignment from Vector.&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:Index`:`:operator`=`(Upp`:`:Index``&`&`):%- [_^Upp`:`:Index^ Index][@(0.0.255) `& -]_[* operator`=]([_^Upp`:`:Index^ Index]<[*@4 T]>`&`&_[*@3 x])&] -[s2; Pick assignment.&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:Index`:`:Index`(std`:`:initializer`_list``):%- [* Index]([_^http`:`/`/en`.cppreference`.com`/w`/cpp`/utility`/initializer`_list^ s -td`::initializer`_list]<[*@4 T]>_[*@3 init])&] -[s6;%- C`+`+ 11 initialization.&] -[s3;%- &] -[s4;%- &] -[s5;:Index`:`:Add`(const T`&`,unsigned`):%- [*@4 T][@(0.0.255) `&]_[* Add]([@(0.0.255) const]_ -[*@4 T][@(0.0.255) `&]_[*@3 x], [@(0.0.255) unsigned]_[*@3 `_hash])&] -[s2; Adds a new element [%-*@3 x] with a precomputed hash value [%-*@3 `_hash]. -The performance benefit of this variant is that sometimes you -can compute hash`-value as the part of other process, like fetching -strings from an input stream. Returns a reference to the element.&] -[s6; Requires T to have deep copy constructor.&] -[s6; Invalidates iterators to Index.&] -[s6; Invalidates references to Index.&] -[s6; The precomputed [%-@3 `_hash] must be the same as the hash specified -by HashFn.&] -[s3;%- &] -[s4;%- &] -[s5;:Index`:`:Add`(const T`&`):%- [*@4 T][@(0.0.255) `&]_[* Add]([@(0.0.255) const]_[*@4 T][@(0.0.255) `& -]_[*@3 x])&] -[s2; Adds a new element [%-*@3 x ]to Index. Returns a reference to -the element.&] -[s6; Requires T to have deep copy constructor.&] -[s6; Invalidates iterators to Index.&] -[s6; Invalidates references to Index.&] -[s3;%- &] -[s4;%- &] -[s5;:Upp`:`:Index`:`:operator`<`<`(const T`&`):%- [_^Upp`:`:Index^ Index][@(0.0.255) `&]_ -[* operator<<]([@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[*@3 x])&] -[s2; Same as Add([%-*@3 x]).&] -[s3;%- &] -[s4;%- &] -[s5;:Index`:`:Find`(const T`&`,unsigned`)const:%- [@(0.0.255) int]_[* Find]([@(0.0.255) con -st]_[*@4 T][@(0.0.255) `&]_[*@3 x], [@(0.0.255) unsigned]_[*@3 `_hash])_[@(0.0.255) const]&] -[s2; Returns the position of the first element with value [%-*@3 x] -in Index, using a precomputed [%-*@3 `_hash]. If multi`-key ordering -is not broken and more than one element with the same value exists -in AIndex, the lowest position is returned. If the specified -value does not exist in AIndex, a negative number is returned. -Unlinked elements are ignored.&] -[s6; The precomputed [%-@3 `_hash] must be the same as the hash specified -by HashFn.&] -[s3;%- &] -[s4;%- &] -[s5;:Index`:`:Find`(const T`&`)const:%- [@(0.0.255) int]_[* Find]([@(0.0.255) const]_[*@4 T][@(0.0.255) `& -]_[*@3 x])_[@(0.0.255) const]&] -[s2; Returns the position of the first element with value [%-*@3 x] -in AIndex. If multi`-key ordering is not broken and more than -one element with the same value exists in AIndex, lowest position -is retrieved. If the specified value does not exist in AIndex, -a negative number is returned. Unlinked elements are ignored.&] -[s3;%- &] -[s4;%- &] -[s5;:Index`:`:FindNext`(int`)const:%- [@(0.0.255) int]_[* FindNext]([@(0.0.255) int]_[*@3 i]) -_[@(0.0.255) const]&] -[s2; Returns the position of the next element with the same value -as the element at [%-*@3 i]. If multi`-key ordering is not broken -and more than one element with that value exists in AIndex, the -lowest position greater than specified one is retrieved, so positions -returned by subsequent calls to FindNext are in ascending order. -When there are no more elements with the required value, a negative -number is returned. Unlinked elements are ignored.&] -[s3;%- &] -[s4;%- &] -[s5;:Index`:`:FindLast`(const T`&`,unsigned`)const:%- [@(0.0.255) int]_[* FindLast]([@(0.0.255) c -onst]_[*@4 T][@(0.0.255) `&]_[*@3 x], [@(0.0.255) unsigned]_[*@3 `_hash])_[@(0.0.255) const]&] -[s2; Returns the position of the last element with value [%-*@3 x] -in AIndex, using a precomputed [%-*@3 `_hash]. If multi`-key ordering -is not broken and more than one element with the same value exists -in AIndex, the greatest position is retrieved. If the specified -value does not exist in AIndex, a negative number is returned. -Unlinked elements are ignored.&] -[s6; The precomputed [%-@3 `_hash] must be the same as the hash specified -by HashFn.&] -[s3;%- &] -[s4;%- &] -[s5;:Index`:`:FindLast`(const T`&`)const:%- [@(0.0.255) int]_[* FindLast]([@(0.0.255) const -]_[*@4 T][@(0.0.255) `&]_[*@3 x])_[@(0.0.255) const]&] -[s2; Returns the position of the last element with value [%-*@3 x] -in AIndex. If multi`-key ordering is not broken and more than -one element with the same value exists in AIndex, the greatest -position is retrieved. If element does not exist in AIndex, a -negative number is returned. Unlinked elements are ignored.&] -[s3;%- &] -[s4;%- &] -[s5;:Index`:`:FindPrev`(int`)const:%- [@(0.0.255) int]_[* FindPrev]([@(0.0.255) int]_[*@3 i]) -_[@(0.0.255) const]&] -[s2; Returns the position of the previous element with the same value -as the element at [%- _][%-*@3 i]. If multi`-key ordering is not -broken and more than one element with that value exists in AIndex, -the greatest position lower than specified one is retrieved (so -that positions got by subsequent calls to FindNext are in descending -order). When there are no more elements with required value, -negative number is returned. Unlinked elements are ignored.&] -[s3;%- &] -[s4;%- &] -[s5;:Index`:`:FindAdd`(const T`&`,unsigned`):%- [@(0.0.255) int]_[* FindAdd]([@(0.0.255) co -nst]_[*@4 T][@(0.0.255) `&]_[*@3 key], [@(0.0.255) unsigned]_[*@3 `_hash])&] -[s2; Retrieves position of first element with value [%-*@3 key] in -AIndex, using a precomputed [%-*@3 `_hash]. If multi`-key ordering -is not broken and more than one element with the same value exists -in AIndex, the greatest position is retrieved. If element does -not exist in AIndex, it is added to AIndex and position of this -newly added element is returned. Unlinked elements are ignored.&] -[s0;l288;a4;%- [*@5;1 Requires T to have deep copy constructor.]&] -[s0;l288;a4;%- [*@5;1 Invalidates iterators to AIndex.]&] -[s6;%- Invalidates references to Index.&] -[s6; The precomputed [%-@3 `_hash] must be the same as the hash specified -by HashFn.&] -[s3;%- &] -[s4;%- &] -[s5;:Index`:`:FindAdd`(const T`&`):%- [@(0.0.255) int]_[* FindAdd]([@(0.0.255) const]_[*@4 T][@(0.0.255) `& -]_[*@3 key])&] -[s2; Retrieves position of first element with value [%-*@3 key] in -AIndex. If multi`-key ordering is not broken and more than one -element with the same value exists in AIndex, lowest position -is retrieved. If element does not exist in AIndex, it is added -to AIndex and position of this newly added element is returned. -Unlinked elements are ignored.&] -[s0;l288;a4;%- [*@5;1 Requires T to have deep copy constructor.]&] -[s0;l288;a4;%- [*@5;1 Invalidates iterators to AIndex.]&] -[s2;%- [*@5;1 Invalidates references to Index.]&] -[s3; &] -[s4;%- &] -[s5;:Index`:`:Unlink`(int`):%- [@(0.0.255) void]_[* Unlink]([@(0.0.255) int]_[*@3 i])&] -[s2; Unlinks the element at [%-*@3 i]. The unlinked item stays in AIndex -but is ignored by any Find operation.&] -[s3;%- &] -[s4;%- &] -[s5;:Index`:`:Put`(const T`&`,unsigned`):%- [@(0.0.255) int]_[* Put]([@(0.0.255) const]_[*@4 T -][@(0.0.255) `&]_[*@3 x], [@(0.0.255) unsigned]_[*@3 `_hash])&] -[s2; If there are any unlinked elements in Index, one of them is -replaced by [%-*@3 x]. If there are no unlinked elements, the element -with the specified value is appended to the end of AIndex using -[* Add]. The position of newly placed element is returned.&] -[s6; Invalidates multi`-key ordering.&] -[s6; Requires T to have deep copy constructor.&] -[s6; Invalidates iterators to AIndex.&] -[s6; Invalidates references to Index.&] -[s6; The precomputed [%-@3 `_hash] must be the same as the hash specified -by HashFn.&] -[s3;%- &] -[s4;%- &] -[s5;:Index`:`:Put`(const T`&`):%- [@(0.0.255) int]_[* Put]([@(0.0.255) const]_[*@4 T][@(0.0.255) `& -]_[*@3 x])&] -[s2; If there are any unlinked elements in AIndex, one of them is -replaced by [%-*@3 x]. If there are no unlinked elements, the element -with the specified value is appended to the end of AIndex using -[* Add]. The position of the newly placed element is returned.&] -[s6; Invalidates multi`-key ordering.&] -[s6; Requires T to have deep copy constructor.&] -[s6; Invalidates iterators to AIndex.&] -[s6; Invalidates references to Index.&] -[s3;%- &] -[s4;%- &] -[s5;:Index`:`:FindPut`(const T`&`,unsigned`):%- [@(0.0.255) int]_[* FindPut]([@(0.0.255) co -nst]_[*@4 T][@(0.0.255) `&]_[*@3 key], [@(0.0.255) unsigned]_[*@3 `_hash])&] -[s2; Retrieves the position of the first element with the value [%-*@3 key] -in AIndex, using a precomputed [%-*@3 `_hash]. The precomputed -hash value must be the same as the hash value that would be the -result of HashFn. If the specified value does not exist in the -AIndex, it is placed to it using [* Put(const T`& x, unsigned `_hash).] -The position of the found or placed element is returned.&] -[s6;~~~.992; Invalidates multi`-key ordering.&] -[s6; Requires T to have deep copy constructor.&] -[s6; Invalidates iterators to AIndex.&] -[s6; Invalidates references to Index.&] -[s6;%- The precomputed [@3 `_hash] must be the same as the hash specified -by HashFn.&] -[s3;%- &] -[s4;%- &] -[s5;:Index`:`:FindPut`(const T`&`):%- [@(0.0.255) int]_[* FindPut]([@(0.0.255) const]_[*@4 T][@(0.0.255) `& -]_[*@3 key])&] -[s2; Retrieves the position of the first element with value [%-*@3 key] -in AIndex. If the element does not exist in the AIndex, it is -placed to it using [* Put(const T`& x).] The position of the found -or placed element is returned.&] -[s6; Invalidates multi`-key ordering.&] -[s6; Requires T to have deep copy constructor.&] -[s6; Invalidates iterators to AIndex.&] -[s6; Invalidates references to Index.&] -[s3;%- &] -[s4;%- &] -[s5;:Index`:`:Set`(int`,const T`&`,unsigned`):%- [*@4 T][@(0.0.255) `&]_[* Set]([@(0.0.255) i -nt]_[*@3 i], [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[*@3 x], [@(0.0.255) unsigned]_[*@3 `_ha -sh])&] -[s2; Replaces the element at the specified position with a new element -with value [%-*@3 x], using a precomputed [%-*@3 `_hash]. Speed of -this operation depends on the total number of elements with the -same value as the specified one. Returns a reference to the element.&] -[s6; Requires T to have deep copy constructor.&] -[s6; Invalidates iterators to AIndex.&] -[s6; Invalidates references to Index.&] -[s6;%- The precomputed [@3 `_hash] must be the same as the hash specified -by HashFn.&] -[s3;%- &] -[s4;%- &] -[s5;:Index`:`:Set`(int`,const T`&`):%- [*@4 T][@(0.0.255) `&]_[* Set]([@(0.0.255) int]_[*@3 i], - [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[*@3 x])&] -[s2; Replaces the element at the specified position with a new element -with value [%-*@3 x]. Speed of this operation depends on the total -number of elements with the same value as the specified one. -Returns a reference to the element.&] -[s6; Requires T to have deep copy constructor.&] -[s6; Invalidates iterators to AIndex.&] -[s6; Invalidates references to Index.&] -[s3;%- &] -[s4;%- &] -[s5;:Index`:`:operator`[`]`(int`)const:%- [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[* operat -or`[`]]([@(0.0.255) int]_[*@3 i])_[@(0.0.255) const]&] -[s2; Returns the element at the specified position.&] -[s3;%- &] -[s4;%- &] -[s5;:Index`:`:GetCount`(`)const:%- [@(0.0.255) int]_[* GetCount]()_[@(0.0.255) const]&] -[s2; Returns number of elements in AIndex.&] -[s3;%- &] -[s4;%- &] -[s5;:Upp`:`:Index`:`:begin`(`)const:%- [_^Upp`:`:Index`:`:ConstIterator^ ConstIterator]_ -[* begin]()_[@(0.0.255) const]&] -[s5;:Upp`:`:Index`:`:end`(`)const:%- [_^Upp`:`:Index`:`:ConstIterator^ ConstIterator]_[* e -nd]()_[@(0.0.255) const]&] -[s2;%- Standard begin/end methods.&] -[s3;%- &] -[s4;%- &] -[s5;:Index`:`:IsEmpty`(`)const:%- [@(0.0.255) bool]_[* IsEmpty]()_[@(0.0.255) const]&] -[s2; Tests whether AIndex is empty. Same as GetCount() `=`= 0.&] -[s3;%- &] -[s4;%- &] -[s5;:Index`:`:GetHash`(int`)const:%- [@(0.0.255) unsigned]_[* GetHash]([@(0.0.255) int]_[*@3 i -])_[@(0.0.255) const]&] -[s2; Returns a hash of element [%-*@3 i]. This is perhaps only useful -when making the exact copy of Index, e.g. in the persistent storage.&] -[s3; &] -[s4;%- &] -[s5;:Index`:`:Clear`(`):%- [@(0.0.255) void]_[* Clear]()&] -[s2; Removes all elements from AIndex.&] -[s3; &] -[s4; &] -[s5;:Index`:`:UnlinkKey`(const T`&`,unsigned`):%- [@(0.0.255) int]_[* UnlinkKey]([@(0.0.255) c -onst]_[*@4 T][@(0.0.255) `&]_[*@3 k], [@(0.0.255) unsigned]_[*@3 `_hash])&] -[s2; Unlinks all elements with value [%-*@3 k] using precomputed [%-*@3 `_hash]. -Unlinked elements stay in AIndex but are ignored by any Find -operations. Precomputed hash value must be same as hash value -that would be result of HashFn.&] -[s6;%- The precomputed [@3 `_hash] must be the same as the hash specified -by HashFn.&] -[s3;%- &] -[s4;%- &] -[s5;:Index`:`:UnlinkKey`(const T`&`):%- [@(0.0.255) int]_[* UnlinkKey]([@(0.0.255) const]_[*@4 T -][@(0.0.255) `&]_[*@3 k])&] -[s2; Unlinks all elements with value [%-*@3 k]. Unlinked elements remain -in the AIndex but are ignored by any Find operations.&] -[s3;%- &] -[s4;%- &] -[s5;:Index`:`:IsUnlinked`(int`)const:%- [@(0.0.255) bool]_[* IsUnlinked]([@(0.0.255) int]_[*@3 i -])_[@(0.0.255) const]&] -[s2; Tests whether the element at [%-*@3 i] is unlinked.&] -[s3;%- &] -[s4;%- &] -[s5;:Index`:`:GetUnlinked`(`)const:%- [_^Vector^ Vector]<[@(0.0.255) int]>_[* GetUnlinked]( -)_[@(0.0.255) const]&] -[s2; Returns indices of all unlinked elements.&] -[s3;%- &] -[s4;%- &] -[s5;:Index`:`:Sweep`(`):%- [@(0.0.255) void]_[* Sweep]()&] -[s2; Removes all unlinked elements from AIndex. Complexity of the -operation depends on the number of elements in AIndex, not on -the number of unlinked elements. Also restores multi`-key ordering.&] -[s3;%- &] -[s4;%- &] -[s5;:Index`:`:HasUnlinked`(`)const:%- [@(0.0.255) bool]_[* HasUnlinked]()_[@(0.0.255) const -]&] -[s2; Returns true of AIndex has any unlinked elements.&] -[s3;%- &] -[s4;%- &] -[s5;:Index`:`:Insert`(int`,const T`&`,unsigned`):%- [*@4 T][@(0.0.255) `&]_[* Insert]([@(0.0.255) i -nt]_[*@3 i], [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[*@3 k], [@(0.0.255) unsigned]_[*@3 h])&] -[s2; Inserts an element with value [%-*@3 k] at the specified position -[%-*@3 i], using a precomputed hash [%-*@3 h]. This is a slow O(n) -operation. Returns a reference to the element.&] -[s6; Requires T to have deep copy constructor.&] -[s6; Invalidates iterators to AIndex.&] -[s6; Invalidates references to Index.&] -[s6;%- The precomputed [@3 `_hash] must be the same as the hash specified -by HashFn.&] -[s3;%- &] -[s4;%- &] -[s5;:Index`:`:Insert`(int`,const T`&`):%- [*@4 T][@(0.0.255) `&]_[* Insert]([@(0.0.255) int]_ -[*@3 i], [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[*@3 k])&] -[s2; Inserts an element with value [%-*@3 k] at the specified position -[%-*@3 i]. This is a slow O(n) operation. Returns a reference to -the element.&] -[s6; Requires T to have deep copy constructor.&] -[s6; Invalidates iterators to AIndex.&] -[s6; Invalidates references to Index.&] -[s3;%- &] -[s4;%- &] -[s5;:Index`:`:Remove`(int`):%- [@(0.0.255) void]_[* Remove]([@(0.0.255) int]_[*@3 i])&] -[s2; Removes an element at the specified position [%-*@3 i]. This is -a slow O(n) operation.&] -[s6; Invalidates iterators to AIndex.&] -[s6; Invalidates references to Index.&] -[s3;%- &] -[s4;%- &] -[s5;:Index`:`:Remove`(int`,int`):%- [@(0.0.255) void]_[* Remove]([@(0.0.255) int]_[*@3 i], -[@(0.0.255) int]_[*@3 count])&] -[s2; Removes [%-*@3 count] elements starting at [%-*@3 i]. This is a -slow O(n) operation.&] -[s6; Invalidates iterators to AIndex.&] -[s6; Invalidates references to Index.&] -[s3; &] -[s4;%- &] -[s5;:Index`:`:Remove`(const int`*`,int`):%- [@(0.0.255) void]_[* Remove]([@(0.0.255) const]_ -[@(0.0.255) int]_`*[*@3 sorted`_list], [@(0.0.255) int]_[*@3 count])&] -[s2; Removes multiple elements from AIndex. Time of operation only -slightly depends on the number of removed elements. This is a -slow O(n) operation. [%-*@3 sorted`_list] must point to [%-*@3 count] -positions, sorted in ascending order.&] -[s6; Invalidates iterators to AIndex.&] -[s6; Invalidates references to Index.&] -[s3;%- &] -[s4;%- &] -[s5;:Index`:`:Remove`(const Vector``&`):%- [@(0.0.255) void]_[* Remove]([@(0.0.255) c -onst]_Vector[@(0.0.255) `&]_[*@3 sorted`_list])&] -[s2; Removes multiple elements from AIndex. Same as Remove(sorted`_list, -sorted`_list.GetCount()).&] -[s6; Invalidates iterators to AIndex.&] -[s6; Invalidates references to Index.&] -[s3;%- &] -[s4;%- &] -[s5;:Index`:`:RemoveKey`(const T`&`,unsigned`):%- [@(0.0.255) int]_[* RemoveKey]([@(0.0.255) c -onst]_[*@4 T][@(0.0.255) `&]_[*@3 k], [@(0.0.255) unsigned]_[*@3 h])&] -[s2; Removes all elements with value [%-*@3 k] using a precomputed -hash [%-*@3 h]. Slow O(n).&] -[s6; Invalidates iterators to AIndex.&] -[s6; Invalidates references to Index.&] -[s6;%- The precomputed [@3 `_hash] must be the same as the hash specified -by HashFn.&] -[s3;%- &] -[s4;%- &] -[s5;:Index`:`:RemoveKey`(const T`&`):%- [@(0.0.255) int]_[* RemoveKey]([@(0.0.255) const]_[*@4 T -][@(0.0.255) `&]_[*@3 k])&] -[s2; Removes all elements with value [%-*@3 k]. Slow O(n).&] -[s6; Invalidates iterators to AIndex.&] -[s6; Invalidates references to Index.&] -[s3;%- &] -[s4;%- &] -[s5;:Index`:`:Trim`(int`):%- [@(0.0.255) void]_[* Trim]([@(0.0.255) int]_[*@3 n])&] -[s2; Reduces the number of elements in AIndex to [%-*@3 n]. Requested -number must be less than or equal to actual number of elements -in AIndex.&] -[s3;%- &] -[s4;%- &] -[s5;:Index`:`:Drop`(int`):%- [@(0.0.255) void]_[* Drop]([@(0.0.255) int]_[*@3 n]_`=_[@3 1])&] -[s2; Drops [%-*@3 n] elements from the end of the AIndex (same as Trim(GetCount() -`- n)).&] -[s3;%- &] -[s4;%- &] -[s5;:Index`:`:Top`(`)const:%- [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[* Top]()_[@(0.0.255) c -onst]&] -[s2; Returns a reference to the last element in the AIndex.&] -[s3;%- &] -[s4;%- &] -[s5;:Index`:`:Pop`(`):%- [*@4 T]_[* Pop]()&] -[s2; Drops last element of the Index and returns its value.&] -[s6; Requires T to have deep copy constructor.&] -[s3;%- &] -[s4;%- &] -[s5;:Index`:`:Reserve`(int`):%- [@(0.0.255) void]_[* Reserve]([@(0.0.255) int]_[*@3 n])&] -[s2; Reserves capacity. If [%-*@3 n] is greater than current capacity, -capacity is increased to the requested value.&] -[s0; &] -[s4;%- &] -[s5;:Index`:`:Shrink`(`):%- [@(0.0.255) void]_[* Shrink]()&] -[s2; Minimizes the memory consumption of AIndex by decreasing the -capacity to the number of elements.&] -[s3;%- &] -[s4;%- &] -[s5;:Index`:`:GetAlloc`(`)const:%- [@(0.0.255) int]_[* GetAlloc]()_[@(0.0.255) const]&] -[s2; Returns the current capacity of AIndex.&] -[s3;%- &] -[s4;%- &] -[s5;:Index`:`:Serialize`(Stream`&`):%- [@(0.0.255) void]_[* Serialize](Stream[@(0.0.255) `& -]_[*@3 s])&] -[s2; Serializes content of AIndex to/from Stream.&] -[s6; Requires T to have serialization operator defined.&] -[s3;%- &] -[s4;%- &] -[s5;:Index`:`:PickKeys`(`):%- [*@4 V]_[* PickKeys]()&] -[s2; Returns a basic random access container of elements. Destroys -AIndex by picking.&] -[s3;%- &] -[s4;%- &] -[s5;:Index`:`:GetKeys`(`)const:%- [@(0.0.255) const]_[*@4 V][@(0.0.255) `&]_[* GetKeys]()_[@(0.0.255) c -onst]&] -[s2; Returns a constant reference to basic random access container -of elements.&] +topic "Index"; +[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,0#27521748481378242620020725143825:desc] +[0 $$3,0#96390100711032703541132217272105:end] +[H6;0 $$4,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] +[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] +[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] +[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] +[b42;2 $$9,9#13035079074754324216151401829390:normal] +[{_}%EN-US +[ {{10000@(113.42.0) [s0; [*@7;4 Index]]}}&] +[s3; &] +[s1;:noref:%- [@(0.0.255)3 template][3 _<][@(0.0.255)3 class][3 _][*@4;3 T][3 >]&] +[s1;:Index`:`:class:%- [@(0.0.255) class]_[* Index]&] +[s8; [*@4 T]-|Type of elements stored in Index. T is required to be +[/^topic`:`/`/Core`/srcdoc`/Moveable`$en`-us^ moveable][/ ]and must +have [/^topic`:`/`/Core`/srcdoc`/pick`_`$en`-us^ deep copy constructor] +and deep copy assignment.&] +[s0; &] +[s0; Like any other NTL container, Index is a [*/^topic`:`/`/Core`/srcdoc`/Moveable`$en`-us^ m +oveable][*/ ]type with [*/^topic`:`/`/Core`/srcdoc`/pick`_`$en`-us^ pick +and optional deep copy] transfer semantics.&] +[s9; Index adds associative capabilities to Vector.&] +[s9; It allows adding elements at the end of sequence in constant +amortized time like basic random container. Additionally, it +also allows fast retrieval of a position of the element with +specified value. Implementation is based on hash tables. Index +stores hash`-values of elements, so it has no advantage to cache +them externally.&] +[s9; Removing elements from an Index poses an interesting problem. +While it is possible to simply remove (or insert) an element +at a specified position, such operation has to move a lot of +elements and also invalidates internal hash maps. Thus removing +elements this way is slow, especially when combined with searching.&] +[s9; The solution for this problem is [*/ unlinking] of elements. Unlinked +elements are not removed from the Index, instead they are [*/ ignored][/ +]by search operations. Unlinking is a simple, constant time, +fast operation. Further, it is possible to place an element at +the first available unlinked position (rather than to the end +of sequence) using the [* Put] method, reusing unlinked position +in short constant time.&] +[s9; The only problem of unlinking is that it breaks so`-called [* multi`-key +ordering]. This term means that if there are more elements with +the same value in the index and they are iterated through using +the FindNext method, their positions (got as the result of Find +and subsequent FindNext methods) are in ascending order. The +problem is that it is impossible to implement placing elements +at unlinked positions in short time while preserving this ordering. +On the other hand, usage scenarios for indexes show that need +for unlinking elements and multi`-key ordering is almost always +disjunct. For the rest of the cases, it is always possible to +restore ordering using [* Sweep] method.&] +[s3; &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] +[s3;%- &] +[s5;:Index`:`:Index`(`):%- [* Index]()&] +[s2; Constructs empty Index.&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:Index`:`:Index`(Upp`:`:Index`&`&`):%- [* Index]([* Index][@(0.0.255) `&`&]_[*@3 s +])&] +[s2; Pick constructor.&] +[s3; &] +[s4;%- &] +[s5;:Index`:`:Index`(pick`_ Vector``&`):%- [* Index]([@(0.128.128) pick`_]_[_^Vector^ V +ector][@(0.0.255) <][*@4 T][@(0.0.255) >`&]_[*@3 s])&] +[s2; Pick operator. Transfers source Vector to Index in low constant +time, but destroys it by picking.&] +[s7; [*C@3 x]-|Source Vector.&] +[s3; &] +[s4;%- &] +[s5;:Index`:`:Index`(const Index`&`,int`):%- [* Index]([@(0.0.255) const]_[* Index][@(0.0.255) `& +]_[*@3 s], [@(0.0.255) int])&] +[s2; Optional deep copy constructor.&] +[s6; Requires T to have deep copy constructor or optional deep copy +constructor.&] +[s7; [*C@3 s]-|Source Index.&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:Index`:`:Index`(Upp`:`:Vector``&`&`):%- [@(0.0.255) explicit]_[* Index]([_^Upp`:`:Vector^ V +ector]<[*@4 T]>`&`&_[*@3 s])&] +[s2; Pick constructs Index from Vector.&] +[s3; &] +[s4;%- &] +[s5;:Index`:`:Index`(const Vector``&`,int`):%- [* Index]([@(0.0.255) const]_[_^Vector^ V +ector][@(0.0.255) <][*@4 T][@(0.0.255) >`&]_[*@3 s], [@(0.0.255) int])&] +[s2; Deep`-copy constructs Index from Vector.&] +[s6; Requires T to have deep copy constructor or optional deep copy +constructor.&] +[s7; [*@3 s]-|Source Vector.&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:Index`:`:operator`=`(Upp`:`:Vector``&`&`):%- [_^Upp`:`:Index^ Index][@(0.0.255) `& +]_[* operator`=]([_^Upp`:`:Vector^ Vector]<[*@4 T]>`&`&_[*@3 x])&] +[s2; Pick assignment from Vector.&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:Index`:`:operator`=`(Upp`:`:Index``&`&`):%- [_^Upp`:`:Index^ Index][@(0.0.255) `& +]_[* operator`=]([_^Upp`:`:Index^ Index]<[*@4 T]>`&`&_[*@3 x])&] +[s2; Pick assignment.&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:Index`:`:Index`(std`:`:initializer`_list``):%- [* Index]([_^http`:`/`/en`.cppreference`.com`/w`/cpp`/utility`/initializer`_list^ s +td`::initializer`_list]<[*@4 T]>_[*@3 init])&] +[s6;%- C`+`+ 11 initialization.&] +[s3;%- &] +[s4;%- &] +[s5;:Index`:`:Add`(const T`&`,unsigned`):%- [*@4 T][@(0.0.255) `&]_[* Add]([@(0.0.255) const]_ +[*@4 T][@(0.0.255) `&]_[*@3 x], [@(0.0.255) unsigned]_[*@3 `_hash])&] +[s2; Adds a new element [%-*@3 x] with a precomputed hash value [%-*@3 `_hash]. +The performance benefit of this variant is that sometimes you +can compute hash`-value as the part of other process, like fetching +strings from an input stream. Returns a reference to the element.&] +[s6; Requires T to have deep copy constructor.&] +[s6; Invalidates iterators to Index.&] +[s6; Invalidates references to Index.&] +[s6; The precomputed [%-@3 `_hash] must be the same as the hash specified +by HashFn.&] +[s3;%- &] +[s4;%- &] +[s5;:Index`:`:Add`(const T`&`):%- [*@4 T][@(0.0.255) `&]_[* Add]([@(0.0.255) const]_[*@4 T][@(0.0.255) `& +]_[*@3 x])&] +[s2; Adds a new element [%-*@3 x ]to Index. Returns a reference to +the element.&] +[s6; Requires T to have deep copy constructor.&] +[s6; Invalidates iterators to Index.&] +[s6; Invalidates references to Index.&] +[s3;%- &] +[s4;%- &] +[s5;:Upp`:`:Index`:`:operator`<`<`(const T`&`):%- [_^Upp`:`:Index^ Index][@(0.0.255) `&]_ +[* operator<<]([@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[*@3 x])&] +[s2; Same as Add([%-*@3 x]).&] +[s3;%- &] +[s4;%- &] +[s5;:Index`:`:Find`(const T`&`,unsigned`)const:%- [@(0.0.255) int]_[* Find]([@(0.0.255) con +st]_[*@4 T][@(0.0.255) `&]_[*@3 x], [@(0.0.255) unsigned]_[*@3 `_hash])_[@(0.0.255) const]&] +[s2; Returns the position of the first element with value [%-*@3 x] +in Index, using a precomputed [%-*@3 `_hash]. If multi`-key ordering +is not broken and more than one element with the same value exists +in AIndex, the lowest position is returned. If the specified +value does not exist in AIndex, a negative number is returned. +Unlinked elements are ignored.&] +[s6; The precomputed [%-@3 `_hash] must be the same as the hash specified +by HashFn.&] +[s3;%- &] +[s4;%- &] +[s5;:Index`:`:Find`(const T`&`)const:%- [@(0.0.255) int]_[* Find]([@(0.0.255) const]_[*@4 T][@(0.0.255) `& +]_[*@3 x])_[@(0.0.255) const]&] +[s2; Returns the position of the first element with value [%-*@3 x] +in AIndex. If multi`-key ordering is not broken and more than +one element with the same value exists in AIndex, lowest position +is retrieved. If the specified value does not exist in AIndex, +a negative number is returned. Unlinked elements are ignored.&] +[s3;%- &] +[s4;%- &] +[s5;:Index`:`:FindNext`(int`)const:%- [@(0.0.255) int]_[* FindNext]([@(0.0.255) int]_[*@3 i]) +_[@(0.0.255) const]&] +[s2; Returns the position of the next element with the same value +as the element at [%-*@3 i]. If multi`-key ordering is not broken +and more than one element with that value exists in AIndex, the +lowest position greater than specified one is retrieved, so positions +returned by subsequent calls to FindNext are in ascending order. +When there are no more elements with the required value, a negative +number is returned. Unlinked elements are ignored.&] +[s3;%- &] +[s4;%- &] +[s5;:Index`:`:FindLast`(const T`&`,unsigned`)const:%- [@(0.0.255) int]_[* FindLast]([@(0.0.255) c +onst]_[*@4 T][@(0.0.255) `&]_[*@3 x], [@(0.0.255) unsigned]_[*@3 `_hash])_[@(0.0.255) const]&] +[s2; Returns the position of the last element with value [%-*@3 x] +in AIndex, using a precomputed [%-*@3 `_hash]. If multi`-key ordering +is not broken and more than one element with the same value exists +in AIndex, the greatest position is retrieved. If the specified +value does not exist in AIndex, a negative number is returned. +Unlinked elements are ignored.&] +[s6; The precomputed [%-@3 `_hash] must be the same as the hash specified +by HashFn.&] +[s3;%- &] +[s4;%- &] +[s5;:Index`:`:FindLast`(const T`&`)const:%- [@(0.0.255) int]_[* FindLast]([@(0.0.255) const +]_[*@4 T][@(0.0.255) `&]_[*@3 x])_[@(0.0.255) const]&] +[s2; Returns the position of the last element with value [%-*@3 x] +in AIndex. If multi`-key ordering is not broken and more than +one element with the same value exists in AIndex, the greatest +position is retrieved. If element does not exist in AIndex, a +negative number is returned. Unlinked elements are ignored.&] +[s3;%- &] +[s4;%- &] +[s5;:Index`:`:FindPrev`(int`)const:%- [@(0.0.255) int]_[* FindPrev]([@(0.0.255) int]_[*@3 i]) +_[@(0.0.255) const]&] +[s2; Returns the position of the previous element with the same value +as the element at [%- _][%-*@3 i]. If multi`-key ordering is not +broken and more than one element with that value exists in AIndex, +the greatest position lower than specified one is retrieved (so +that positions got by subsequent calls to FindNext are in descending +order). When there are no more elements with required value, +negative number is returned. Unlinked elements are ignored.&] +[s3;%- &] +[s4;%- &] +[s5;:Index`:`:FindAdd`(const T`&`,unsigned`):%- [@(0.0.255) int]_[* FindAdd]([@(0.0.255) co +nst]_[*@4 T][@(0.0.255) `&]_[*@3 key], [@(0.0.255) unsigned]_[*@3 `_hash])&] +[s2; Retrieves position of first element with value [%-*@3 key] in +AIndex, using a precomputed [%-*@3 `_hash]. If multi`-key ordering +is not broken and more than one element with the same value exists +in AIndex, the greatest position is retrieved. If element does +not exist in AIndex, it is added to AIndex and position of this +newly added element is returned. Unlinked elements are ignored.&] +[s0;l288;a4;%- [*@5;1 Requires T to have deep copy constructor.]&] +[s0;l288;a4;%- [*@5;1 Invalidates iterators to AIndex.]&] +[s6;%- Invalidates references to Index.&] +[s6; The precomputed [%-@3 `_hash] must be the same as the hash specified +by HashFn.&] +[s3;%- &] +[s4;%- &] +[s5;:Index`:`:FindAdd`(const T`&`):%- [@(0.0.255) int]_[* FindAdd]([@(0.0.255) const]_[*@4 T][@(0.0.255) `& +]_[*@3 key])&] +[s2; Retrieves position of first element with value [%-*@3 key] in +AIndex. If multi`-key ordering is not broken and more than one +element with the same value exists in AIndex, lowest position +is retrieved. If element does not exist in AIndex, it is added +to AIndex and position of this newly added element is returned. +Unlinked elements are ignored.&] +[s0;l288;a4;%- [*@5;1 Requires T to have deep copy constructor.]&] +[s0;l288;a4;%- [*@5;1 Invalidates iterators to AIndex.]&] +[s2;%- [*@5;1 Invalidates references to Index.]&] +[s3; &] +[s4;%- &] +[s5;:Index`:`:Unlink`(int`):%- [@(0.0.255) void]_[* Unlink]([@(0.0.255) int]_[*@3 i])&] +[s2; Unlinks the element at [%-*@3 i]. The unlinked item stays in AIndex +but is ignored by any Find operation.&] +[s3;%- &] +[s4;%- &] +[s5;:Index`:`:Put`(const T`&`,unsigned`):%- [@(0.0.255) int]_[* Put]([@(0.0.255) const]_[*@4 T +][@(0.0.255) `&]_[*@3 x], [@(0.0.255) unsigned]_[*@3 `_hash])&] +[s2; If there are any unlinked elements in Index, one of them is +replaced by [%-*@3 x]. If there are no unlinked elements, the element +with the specified value is appended to the end of AIndex using +[* Add]. The position of newly placed element is returned.&] +[s6; Invalidates multi`-key ordering.&] +[s6; Requires T to have deep copy constructor.&] +[s6; Invalidates iterators to AIndex.&] +[s6; Invalidates references to Index.&] +[s6; The precomputed [%-@3 `_hash] must be the same as the hash specified +by HashFn.&] +[s3;%- &] +[s4;%- &] +[s5;:Index`:`:Put`(const T`&`):%- [@(0.0.255) int]_[* Put]([@(0.0.255) const]_[*@4 T][@(0.0.255) `& +]_[*@3 x])&] +[s2; If there are any unlinked elements in AIndex, one of them is +replaced by [%-*@3 x]. If there are no unlinked elements, the element +with the specified value is appended to the end of AIndex using +[* Add]. The position of the newly placed element is returned.&] +[s6; Invalidates multi`-key ordering.&] +[s6; Requires T to have deep copy constructor.&] +[s6; Invalidates iterators to AIndex.&] +[s6; Invalidates references to Index.&] +[s3;%- &] +[s4;%- &] +[s5;:Index`:`:FindPut`(const T`&`,unsigned`):%- [@(0.0.255) int]_[* FindPut]([@(0.0.255) co +nst]_[*@4 T][@(0.0.255) `&]_[*@3 key], [@(0.0.255) unsigned]_[*@3 `_hash])&] +[s2; Retrieves the position of the first element with the value [%-*@3 key] +in AIndex, using a precomputed [%-*@3 `_hash]. The precomputed +hash value must be the same as the hash value that would be the +result of HashFn. If the specified value does not exist in the +AIndex, it is placed to it using [* Put(const T`& x, unsigned `_hash).] +The position of the found or placed element is returned.&] +[s6;~~~.992; Invalidates multi`-key ordering.&] +[s6; Requires T to have deep copy constructor.&] +[s6; Invalidates iterators to AIndex.&] +[s6; Invalidates references to Index.&] +[s6;%- The precomputed [@3 `_hash] must be the same as the hash specified +by HashFn.&] +[s3;%- &] +[s4;%- &] +[s5;:Index`:`:FindPut`(const T`&`):%- [@(0.0.255) int]_[* FindPut]([@(0.0.255) const]_[*@4 T][@(0.0.255) `& +]_[*@3 key])&] +[s2; Retrieves the position of the first element with value [%-*@3 key] +in AIndex. If the element does not exist in the AIndex, it is +placed to it using [* Put(const T`& x).] The position of the found +or placed element is returned.&] +[s6; Invalidates multi`-key ordering.&] +[s6; Requires T to have deep copy constructor.&] +[s6; Invalidates iterators to AIndex.&] +[s6; Invalidates references to Index.&] +[s3;%- &] +[s4;%- &] +[s5;:Index`:`:Set`(int`,const T`&`,unsigned`):%- [*@4 T][@(0.0.255) `&]_[* Set]([@(0.0.255) i +nt]_[*@3 i], [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[*@3 x], [@(0.0.255) unsigned]_[*@3 `_ha +sh])&] +[s2; Replaces the element at the specified position with a new element +with value [%-*@3 x], using a precomputed [%-*@3 `_hash]. Speed of +this operation depends on the total number of elements with the +same value as the specified one. Returns a reference to the element.&] +[s6; Requires T to have deep copy constructor.&] +[s6; Invalidates iterators to AIndex.&] +[s6; Invalidates references to Index.&] +[s6;%- The precomputed [@3 `_hash] must be the same as the hash specified +by HashFn.&] +[s3;%- &] +[s4;%- &] +[s5;:Index`:`:Set`(int`,const T`&`):%- [*@4 T][@(0.0.255) `&]_[* Set]([@(0.0.255) int]_[*@3 i], + [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[*@3 x])&] +[s2; Replaces the element at the specified position with a new element +with value [%-*@3 x]. Speed of this operation depends on the total +number of elements with the same value as the specified one. +Returns a reference to the element.&] +[s6; Requires T to have deep copy constructor.&] +[s6; Invalidates iterators to AIndex.&] +[s6; Invalidates references to Index.&] +[s3;%- &] +[s4;%- &] +[s5;:Index`:`:operator`[`]`(int`)const:%- [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[* operat +or`[`]]([@(0.0.255) int]_[*@3 i])_[@(0.0.255) const]&] +[s2; Returns the element at the specified position.&] +[s3;%- &] +[s4;%- &] +[s5;:Index`:`:GetCount`(`)const:%- [@(0.0.255) int]_[* GetCount]()_[@(0.0.255) const]&] +[s2; Returns number of elements in AIndex.&] +[s3;%- &] +[s4;%- &] +[s5;:Upp`:`:Index`:`:begin`(`)const:%- [_^Upp`:`:Index`:`:ConstIterator^ ConstIterator]_ +[* begin]()_[@(0.0.255) const]&] +[s5;:Upp`:`:Index`:`:end`(`)const:%- [_^Upp`:`:Index`:`:ConstIterator^ ConstIterator]_[* e +nd]()_[@(0.0.255) const]&] +[s2;%- Standard begin/end methods.&] +[s3;%- &] +[s4;%- &] +[s5;:Index`:`:IsEmpty`(`)const:%- [@(0.0.255) bool]_[* IsEmpty]()_[@(0.0.255) const]&] +[s2; Tests whether AIndex is empty. Same as GetCount() `=`= 0.&] +[s3;%- &] +[s4;%- &] +[s5;:Index`:`:GetHash`(int`)const:%- [@(0.0.255) unsigned]_[* GetHash]([@(0.0.255) int]_[*@3 i +])_[@(0.0.255) const]&] +[s2; Returns a hash of element [%-*@3 i]. This is perhaps only useful +when making the exact copy of Index, e.g. in the persistent storage.&] +[s3; &] +[s4;%- &] +[s5;:Index`:`:Clear`(`):%- [@(0.0.255) void]_[* Clear]()&] +[s2; Removes all elements from AIndex.&] +[s3; &] +[s4; &] +[s5;:Index`:`:UnlinkKey`(const T`&`,unsigned`):%- [@(0.0.255) int]_[* UnlinkKey]([@(0.0.255) c +onst]_[*@4 T][@(0.0.255) `&]_[*@3 k], [@(0.0.255) unsigned]_[*@3 `_hash])&] +[s2; Unlinks all elements with value [%-*@3 k] using precomputed [%-*@3 `_hash]. +Unlinked elements stay in AIndex but are ignored by any Find +operations. Precomputed hash value must be same as hash value +that would be result of HashFn.&] +[s6;%- The precomputed [@3 `_hash] must be the same as the hash specified +by HashFn.&] +[s3;%- &] +[s4;%- &] +[s5;:Index`:`:UnlinkKey`(const T`&`):%- [@(0.0.255) int]_[* UnlinkKey]([@(0.0.255) const]_[*@4 T +][@(0.0.255) `&]_[*@3 k])&] +[s2; Unlinks all elements with value [%-*@3 k]. Unlinked elements remain +in the AIndex but are ignored by any Find operations.&] +[s3;%- &] +[s4;%- &] +[s5;:Index`:`:IsUnlinked`(int`)const:%- [@(0.0.255) bool]_[* IsUnlinked]([@(0.0.255) int]_[*@3 i +])_[@(0.0.255) const]&] +[s2; Tests whether the element at [%-*@3 i] is unlinked.&] +[s3;%- &] +[s4;%- &] +[s5;:Index`:`:GetUnlinked`(`)const:%- [_^Vector^ Vector]<[@(0.0.255) int]>_[* GetUnlinked]( +)_[@(0.0.255) const]&] +[s2; Returns indices of all unlinked elements.&] +[s3;%- &] +[s4;%- &] +[s5;:Index`:`:Sweep`(`):%- [@(0.0.255) void]_[* Sweep]()&] +[s2; Removes all unlinked elements from AIndex. Complexity of the +operation depends on the number of elements in AIndex, not on +the number of unlinked elements. Also restores multi`-key ordering.&] +[s3;%- &] +[s4;%- &] +[s5;:Index`:`:HasUnlinked`(`)const:%- [@(0.0.255) bool]_[* HasUnlinked]()_[@(0.0.255) const +]&] +[s2; Returns true of AIndex has any unlinked elements.&] +[s3;%- &] +[s4;%- &] +[s5;:Index`:`:Insert`(int`,const T`&`,unsigned`):%- [*@4 T][@(0.0.255) `&]_[* Insert]([@(0.0.255) i +nt]_[*@3 i], [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[*@3 k], [@(0.0.255) unsigned]_[*@3 h])&] +[s2; Inserts an element with value [%-*@3 k] at the specified position +[%-*@3 i], using a precomputed hash [%-*@3 h]. This is a slow O(n) +operation. Returns a reference to the element.&] +[s6; Requires T to have deep copy constructor.&] +[s6; Invalidates iterators to AIndex.&] +[s6; Invalidates references to Index.&] +[s6;%- The precomputed [@3 `_hash] must be the same as the hash specified +by HashFn.&] +[s3;%- &] +[s4;%- &] +[s5;:Index`:`:Insert`(int`,const T`&`):%- [*@4 T][@(0.0.255) `&]_[* Insert]([@(0.0.255) int]_ +[*@3 i], [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[*@3 k])&] +[s2; Inserts an element with value [%-*@3 k] at the specified position +[%-*@3 i]. This is a slow O(n) operation. Returns a reference to +the element.&] +[s6; Requires T to have deep copy constructor.&] +[s6; Invalidates iterators to AIndex.&] +[s6; Invalidates references to Index.&] +[s3;%- &] +[s4;%- &] +[s5;:Index`:`:Remove`(int`):%- [@(0.0.255) void]_[* Remove]([@(0.0.255) int]_[*@3 i])&] +[s2; Removes an element at the specified position [%-*@3 i]. This is +a slow O(n) operation.&] +[s6; Invalidates iterators to AIndex.&] +[s6; Invalidates references to Index.&] +[s3;%- &] +[s4;%- &] +[s5;:Index`:`:Remove`(int`,int`):%- [@(0.0.255) void]_[* Remove]([@(0.0.255) int]_[*@3 i], +[@(0.0.255) int]_[*@3 count])&] +[s2; Removes [%-*@3 count] elements starting at [%-*@3 i]. This is a +slow O(n) operation.&] +[s6; Invalidates iterators to AIndex.&] +[s6; Invalidates references to Index.&] +[s3; &] +[s4;%- &] +[s5;:Index`:`:Remove`(const int`*`,int`):%- [@(0.0.255) void]_[* Remove]([@(0.0.255) const]_ +[@(0.0.255) int]_`*[*@3 sorted`_list], [@(0.0.255) int]_[*@3 count])&] +[s2; Removes multiple elements from AIndex. Time of operation only +slightly depends on the number of removed elements. This is a +slow O(n) operation. [%-*@3 sorted`_list] must point to [%-*@3 count] +positions, sorted in ascending order.&] +[s6; Invalidates iterators to AIndex.&] +[s6; Invalidates references to Index.&] +[s3;%- &] +[s4;%- &] +[s5;:Index`:`:Remove`(const Vector``&`):%- [@(0.0.255) void]_[* Remove]([@(0.0.255) c +onst]_Vector[@(0.0.255) `&]_[*@3 sorted`_list])&] +[s2; Removes multiple elements from AIndex. Same as Remove(sorted`_list, +sorted`_list.GetCount()).&] +[s6; Invalidates iterators to AIndex.&] +[s6; Invalidates references to Index.&] +[s3;%- &] +[s4;%- &] +[s5;:Index`:`:RemoveKey`(const T`&`,unsigned`):%- [@(0.0.255) int]_[* RemoveKey]([@(0.0.255) c +onst]_[*@4 T][@(0.0.255) `&]_[*@3 k], [@(0.0.255) unsigned]_[*@3 h])&] +[s2; Removes all elements with value [%-*@3 k] using a precomputed +hash [%-*@3 h]. Slow O(n).&] +[s6; Invalidates iterators to AIndex.&] +[s6; Invalidates references to Index.&] +[s6;%- The precomputed [@3 `_hash] must be the same as the hash specified +by HashFn.&] +[s3;%- &] +[s4;%- &] +[s5;:Index`:`:RemoveKey`(const T`&`):%- [@(0.0.255) int]_[* RemoveKey]([@(0.0.255) const]_[*@4 T +][@(0.0.255) `&]_[*@3 k])&] +[s2; Removes all elements with value [%-*@3 k]. Slow O(n).&] +[s6; Invalidates iterators to AIndex.&] +[s6; Invalidates references to Index.&] +[s3;%- &] +[s4;%- &] +[s5;:Index`:`:Trim`(int`):%- [@(0.0.255) void]_[* Trim]([@(0.0.255) int]_[*@3 n])&] +[s2; Reduces the number of elements in AIndex to [%-*@3 n]. Requested +number must be less than or equal to actual number of elements +in AIndex.&] +[s3;%- &] +[s4;%- &] +[s5;:Index`:`:Drop`(int`):%- [@(0.0.255) void]_[* Drop]([@(0.0.255) int]_[*@3 n]_`=_[@3 1])&] +[s2; Drops [%-*@3 n] elements from the end of the AIndex (same as Trim(GetCount() +`- n)).&] +[s3;%- &] +[s4;%- &] +[s5;:Index`:`:Top`(`)const:%- [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[* Top]()_[@(0.0.255) c +onst]&] +[s2; Returns a reference to the last element in the AIndex.&] +[s3;%- &] +[s4;%- &] +[s5;:Index`:`:Pop`(`):%- [*@4 T]_[* Pop]()&] +[s2; Drops last element of the Index and returns its value.&] +[s6; Requires T to have deep copy constructor.&] +[s3;%- &] +[s4;%- &] +[s5;:Index`:`:Reserve`(int`):%- [@(0.0.255) void]_[* Reserve]([@(0.0.255) int]_[*@3 n])&] +[s2; Reserves capacity. If [%-*@3 n] is greater than current capacity, +capacity is increased to the requested value.&] +[s0; &] +[s4;%- &] +[s5;:Index`:`:Shrink`(`):%- [@(0.0.255) void]_[* Shrink]()&] +[s2; Minimizes the memory consumption of AIndex by decreasing the +capacity to the number of elements.&] +[s3;%- &] +[s4;%- &] +[s5;:Index`:`:GetAlloc`(`)const:%- [@(0.0.255) int]_[* GetAlloc]()_[@(0.0.255) const]&] +[s2; Returns the current capacity of AIndex.&] +[s3;%- &] +[s4;%- &] +[s5;:Index`:`:Serialize`(Stream`&`):%- [@(0.0.255) void]_[* Serialize](Stream[@(0.0.255) `& +]_[*@3 s])&] +[s2; Serializes content of AIndex to/from Stream.&] +[s6; Requires T to have serialization operator defined.&] +[s3;%- &] +[s4;%- &] +[s5;:Index`:`:PickKeys`(`):%- [*@4 V]_[* PickKeys]()&] +[s2; Returns a basic random access container of elements. Destroys +AIndex by picking.&] +[s3;%- &] +[s4;%- &] +[s5;:Index`:`:GetKeys`(`)const:%- [@(0.0.255) const]_[*@4 V][@(0.0.255) `&]_[* GetKeys]()_[@(0.0.255) c +onst]&] +[s2; Returns a constant reference to basic random access container +of elements.&] [s0; ]] \ No newline at end of file diff --git a/uppsrc/Core/src.tpp/InetHeader$en-us.tpp b/uppsrc/Core/src.tpp/InetHeader_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/InetHeader$en-us.tpp rename to uppsrc/Core/src.tpp/InetHeader_en-us.tpp diff --git a/uppsrc/Core/src.tpp/Inet$en-us.tpp b/uppsrc/Core/src.tpp/Inet_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/Inet$en-us.tpp rename to uppsrc/Core/src.tpp/Inet_en-us.tpp diff --git a/uppsrc/Core/src.tpp/IpAddrInfo$en-us.tpp b/uppsrc/Core/src.tpp/IpAddrInfo_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/IpAddrInfo$en-us.tpp rename to uppsrc/Core/src.tpp/IpAddrInfo_en-us.tpp diff --git a/uppsrc/Core/src.tpp/JSON$en-us.tpp b/uppsrc/Core/src.tpp/JSON_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/JSON$en-us.tpp rename to uppsrc/Core/src.tpp/JSON_en-us.tpp diff --git a/uppsrc/Core/src.tpp/Jsonize$en-us.tpp b/uppsrc/Core/src.tpp/Jsonize_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/Jsonize$en-us.tpp rename to uppsrc/Core/src.tpp/Jsonize_en-us.tpp diff --git a/uppsrc/Core/src.tpp/LRUCache$en-us.tpp b/uppsrc/Core/src.tpp/LRUCache_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/LRUCache$en-us.tpp rename to uppsrc/Core/src.tpp/LRUCache_en-us.tpp diff --git a/uppsrc/Core/src.tpp/LazyUpdate$en-us.tpp b/uppsrc/Core/src.tpp/LazyUpdate_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/LazyUpdate$en-us.tpp rename to uppsrc/Core/src.tpp/LazyUpdate_en-us.tpp diff --git a/uppsrc/Core/src.tpp/Logging$en-us.tpp b/uppsrc/Core/src.tpp/Logging_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/Logging$en-us.tpp rename to uppsrc/Core/src.tpp/Logging_en-us.tpp diff --git a/uppsrc/Core/src.tpp/MathUtil$en-us.tpp b/uppsrc/Core/src.tpp/MathUtil_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/MathUtil$en-us.tpp rename to uppsrc/Core/src.tpp/MathUtil_en-us.tpp diff --git a/uppsrc/Core/src.tpp/Mt$en-us.tpp b/uppsrc/Core/src.tpp/Mt_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/Mt$en-us.tpp rename to uppsrc/Core/src.tpp/Mt_en-us.tpp diff --git a/uppsrc/Core/src.tpp/Mutex$en-us.tpp b/uppsrc/Core/src.tpp/Mutex_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/Mutex$en-us.tpp rename to uppsrc/Core/src.tpp/Mutex_en-us.tpp diff --git a/uppsrc/Core/src.tpp/NetNode$en-us.tpp b/uppsrc/Core/src.tpp/NetNode_en-us.tpp similarity index 97% rename from uppsrc/Core/src.tpp/NetNode$en-us.tpp rename to uppsrc/Core/src.tpp/NetNode_en-us.tpp index 7476544d6..9e0f22bb0 100644 --- a/uppsrc/Core/src.tpp/NetNode$en-us.tpp +++ b/uppsrc/Core/src.tpp/NetNode_en-us.tpp @@ -1,66 +1,66 @@ -topic "NetNode"; -[2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,0#27521748481378242620020725143825:desc] -[0 $$3,0#96390100711032703541132217272105:end] -[H6;0 $$4,0#05600065144404261032431302351956:begin] -[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] -[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] -[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] -[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] -[b42;2 $$9,9#13035079074754324216151401829390:normal] -[{_} -[ {{10000@(113.42.0) [s0;%% [*@7;4 NetNode]]}}&] -[s3; &] -[s1;:NetNode`:`:class: [@(0.0.255)3 class][3 _][*3 NetNode][3 _:_][@(0.0.255)3 private][3 _][*@3;3 M -oveable][@(0.0.255)3 <][*3 NetNode][@(0.0.255)3 >][3 _]&] -[s6;l0;%% WIN32 specific&] -[s9;%% This class represents single network node (network resource). -It is [^topic`:`/`/Core`/srcdoc`/Moveable`$en`-us^ moveable] and -has deep copy.&] -[s3;%% &] -[s0;%% &] -[ {{10000F(128)G(128)@1 [s0;%% [* Constructor Detail]]}}&] -[s3; &] -[s5;:NetNode`:`:NetNode`(`): [* NetNode]()&] -[s2;%% Default constructor.&] -[s3; &] -[s4; &] -[s5;:NetNode`:`:NetNode`(const NetNode`&`): [* NetNode]([@(0.0.255) const]_[* NetNode][@(0.0.255) `& -]_[*@3 s])&] -[s2;%% Deep copy constructor.&] -[s3;%% &] -[s0;%% &] -[ {{10000F(128)G(128)@1 [s0;%% [* Public Member List]]}}&] -[s3; &] -[s5;:NetNode`:`:GetName`(`)const: [_^String^ String]_[* GetName]()_[@(0.0.255) const]&] -[s2;%% Returns the name of network node (e.g. for displaying in GUI).&] -[s3; &] -[s4; &] -[s5;:NetNode`:`:GetPath`(`)const: [_^String^ String]_[* GetPath]()_[@(0.0.255) const]&] -[s2;%% If node represents a disk share, it returns a path to this -share (like `\`\SERVER`\DATA). FindFile can be used to retrieve -the list of files on this path (you have to add a file mask). -If this method returns empty String, node is not a disk share.&] -[s3; &] -[s4; &] -[s5;:NetNode`:`:Enum`(`)const: [_^Array^ Array][@(0.0.255) <][_^NetNode^ NetNode][@(0.0.255) > -]_[* Enum]()_[@(0.0.255) const]&] -[s2;%% Returns the array of subnodes.&] -[s3; &] -[s4; &] -[s5;:NetNode`:`:Serialize`(Stream`&`): [@(0.0.255) void]_[* Serialize]([_^Stream^ Stream][@(0.0.255) `& -]_[*@3 s])&] -[s2;%% Serializes the Node.&] -[s3; &] -[s4; &] -[s5;:NetNode`:`:EnumRoot`(`): [@(0.0.255) static] [_^Array^ Array][@(0.0.255) <][_^NetNode^ N -etNode][@(0.0.255) >]_[* EnumRoot]()&] -[s2;%% Enumerates root nodes.&] -[s3; &] -[s4; &] -[s5;:NetNode`:`:operator`=`(const NetNode`&`): [_^NetNode^ NetNode][@(0.0.255) `&]_[* opera -tor`=]([@(0.0.255) const]_[_^NetNode^ NetNode][@(0.0.255) `&]_[*@3 s])&] -[s2;%% Deep copy assignment.&] -[s3; &] +topic "NetNode"; +[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,0#27521748481378242620020725143825:desc] +[0 $$3,0#96390100711032703541132217272105:end] +[H6;0 $$4,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] +[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] +[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] +[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] +[b42;2 $$9,9#13035079074754324216151401829390:normal] +[{_} +[ {{10000@(113.42.0) [s0;%% [*@7;4 NetNode]]}}&] +[s3; &] +[s1;:NetNode`:`:class: [@(0.0.255)3 class][3 _][*3 NetNode][3 _:_][@(0.0.255)3 private][3 _][*@3;3 M +oveable][@(0.0.255)3 <][*3 NetNode][@(0.0.255)3 >][3 _]&] +[s6;l0;%% WIN32 specific&] +[s9;%% This class represents single network node (network resource). +It is [^topic`:`/`/Core`/srcdoc`/Moveable`$en`-us^ moveable] and +has deep copy.&] +[s3;%% &] +[s0;%% &] +[ {{10000F(128)G(128)@1 [s0;%% [* Constructor Detail]]}}&] +[s3; &] +[s5;:NetNode`:`:NetNode`(`): [* NetNode]()&] +[s2;%% Default constructor.&] +[s3; &] +[s4; &] +[s5;:NetNode`:`:NetNode`(const NetNode`&`): [* NetNode]([@(0.0.255) const]_[* NetNode][@(0.0.255) `& +]_[*@3 s])&] +[s2;%% Deep copy constructor.&] +[s3;%% &] +[s0;%% &] +[ {{10000F(128)G(128)@1 [s0;%% [* Public Member List]]}}&] +[s3; &] +[s5;:NetNode`:`:GetName`(`)const: [_^String^ String]_[* GetName]()_[@(0.0.255) const]&] +[s2;%% Returns the name of network node (e.g. for displaying in GUI).&] +[s3; &] +[s4; &] +[s5;:NetNode`:`:GetPath`(`)const: [_^String^ String]_[* GetPath]()_[@(0.0.255) const]&] +[s2;%% If node represents a disk share, it returns a path to this +share (like `\`\SERVER`\DATA). FindFile can be used to retrieve +the list of files on this path (you have to add a file mask). +If this method returns empty String, node is not a disk share.&] +[s3; &] +[s4; &] +[s5;:NetNode`:`:Enum`(`)const: [_^Array^ Array][@(0.0.255) <][_^NetNode^ NetNode][@(0.0.255) > +]_[* Enum]()_[@(0.0.255) const]&] +[s2;%% Returns the array of subnodes.&] +[s3; &] +[s4; &] +[s5;:NetNode`:`:Serialize`(Stream`&`): [@(0.0.255) void]_[* Serialize]([_^Stream^ Stream][@(0.0.255) `& +]_[*@3 s])&] +[s2;%% Serializes the Node.&] +[s3; &] +[s4; &] +[s5;:NetNode`:`:EnumRoot`(`): [@(0.0.255) static] [_^Array^ Array][@(0.0.255) <][_^NetNode^ N +etNode][@(0.0.255) >]_[* EnumRoot]()&] +[s2;%% Enumerates root nodes.&] +[s3; &] +[s4; &] +[s5;:NetNode`:`:operator`=`(const NetNode`&`): [_^NetNode^ NetNode][@(0.0.255) `&]_[* opera +tor`=]([@(0.0.255) const]_[_^NetNode^ NetNode][@(0.0.255) `&]_[*@3 s])&] +[s2;%% Deep copy assignment.&] +[s3; &] [s0; ] \ No newline at end of file diff --git a/uppsrc/Core/src.tpp/NumericConversions$en-us.tpp b/uppsrc/Core/src.tpp/NumericConversions_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/NumericConversions$en-us.tpp rename to uppsrc/Core/src.tpp/NumericConversions_en-us.tpp diff --git a/uppsrc/Core/src.tpp/One$en-us.tpp b/uppsrc/Core/src.tpp/One_en-us.tpp similarity index 97% rename from uppsrc/Core/src.tpp/One$en-us.tpp rename to uppsrc/Core/src.tpp/One_en-us.tpp index f4c1c8ab8..26411ab7c 100644 --- a/uppsrc/Core/src.tpp/One$en-us.tpp +++ b/uppsrc/Core/src.tpp/One_en-us.tpp @@ -1,176 +1,176 @@ -topic "One"; -[2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,0#27521748481378242620020725143825:desc] -[0 $$3,0#96390100711032703541132217272105:end] -[H6;0 $$4,0#05600065144404261032431302351956:begin] -[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] -[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] -[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] -[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] -[b42;2 $$9,9#13035079074754324216151401829390:normal] -[{_} -[ {{10000@(113.42.0) [s0;%% [*@7;4 One]]}}&] -[s3; &] -[s1;:noref: [@(0.0.255)3 template][3 _<][@(0.0.255)3 class][3 _][*@4;3 T][@(0.0.255)3 >]&] -[s1;:One`:`:class: [@(0.0.255) class]_[* One]_:_[@(0.0.255) private]_[*@3 MoveableAndDeepCopyO -ption][@(0.0.255) <]_[* One][@(0.0.255) <][*@4 T][@(0.0.255) >]_>_&] -[s8;%% [%-*C@4 T]-|Type or base class of element stored in One.&] -[s0;%% &] -[s9;%% One is a container capable of containing none or single element -of type specified as template argument or derived from it.&] -[s9;%% The container is similar to [^http`:`/`/en`.cppreference`.com`/w`/cpp`/memory`/unique`_ptr^ s -td`::unique`_ptr]., but unlike it, it is treated more like container -than smart pointer. For example, it propagates constantness of -One to contained element.&] -[s9;%% One is [*/^topic`:`/`/Core`/srcdoc`/Moveable`$en`-us^ moveable][*/ -]type with [*/^topic`:`/`/Core`/srcdoc`/pick`_`$en`-us^ pick and -optional clone] transfer semantics.&] -[s3; &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0;%% [* Constructor List]]}}&] -[s0;0 &] -[s5;:One`:`:One`(`): [* One]()&] -[s2;%% Default constructor. Constructs empty One.&] -[s3; &] -[s4; &] -[s5;:One`:`:One`(T`*`): [* One]([*@4 T]_`*[*@3 newt])&] -[s2;%% Constructs One with content [%-*@3 newt]. Content is specified -by pointer to object created using operator new. One takes over -ownership of this this object.&] -[s3;%% &] -[s4; &] -[s5;:Upp`:`:One`:`:One`(Upp`:`:One``&`&`): [@(0.0.255) template]_<[@(0.0.255) class]_ -[*@4 TT]>_[* One]([* One]<[*@4 TT]>`&`&_[*@3 p])&] -[s2;%% Pick constructor. [%-*@4 TT] must be the same as [%-*@4 T] or -derived from [%-*@4 T].&] -[s3;%% &] -[s4; &] -[s5;:One`:`:One`(const One``&`,int`): [* One]([@(0.0.255) const]_[* One][@(0.0.255) <][*@4 T -][@(0.0.255) >`&]_[*@3 p], [@(0.0.255) int])&] -[s6;%% Optional deep copy constructor.&] -[s2;%% Requires T to have deep copy constructor or optional deep -copy constructor.&] -[s3;%% &] -[s4; &] -[s5;:One`:`:`~One`(`): [@(0.0.255) `~][* One]()&] -[s2;%% Default destructor.&] -[s3; &] -[s1;%% &] -[ {{10000F(128)G(128)@1 [s0;%% [* Method List]]}}&] -[s0;0 &] -[s5;:One`:`:Clear`(`): [@(0.0.255) void]_[* Clear]()&] -[s2; Removes the element stored in [* One].&] -[s3; &] -[s4; &] -[s5;:One`:`:IsPicked`(`)const: [@(0.0.255) bool]_[* IsPicked]()_[@(0.0.255) const]&] -[s2;%% Returns [* true] if [* One] has been picked.&] -[s3;%% &] -[s4; &] -[s5;:One`:`:Attach`(T`*`): [@(0.0.255) void]_[* Attach]([*@4 T]_`*[*@3 data])&] -[s2;%% Assigns element to One. (Note: if there is content in One while -calling this function, it is destroyed). [%-*C@3 data] must be -pointer to the new content created using operator new.&] -[s3; &] -[s4; &] -[s5;:Upp`:`:One`:`:Detach`(`): [*@4 T]_`*[* Detach]()&] -[s2;%% Removes content giving up ownership. Client is responsible -for deletion of content. If One is empty, return value is NULL, -otherwise the return value is pointer to the content allocated -on the heap.&] -[s3; &] -[s4; &] -[s5;:One`:`:operator`=`(T`*`): [@(0.0.255) void]_[* operator`=]([*@4 T]_`*[*@3 data])&] -[s7;%% Same as Attach([%-*@3 data]) (operator version).&] -[s3; &] -[s4; &] -[s5;:Upp`:`:One`:`:operator`=`(Upp`:`:One``&`&`): [@(0.0.255) template]_<[@(0.0.255) c -lass]_[*@4 TT]>_[@(0.0.255) void]_[* operator`=]([_^Upp`:`:One^ One]<[*@4 TT]>`&`&_[*@3 d])&] -[s2;%% Pick assignment. [%-*@4 TT] must be the same as [%-*@4 T] or derived -from [%-*@4 T].&] -[s3; &] -[s4; &] -[s5;:One`:`:operator`-`>`(`)const: [@(0.0.255) const]_[*@4 T]_`*[* operator`->]()_[@(0.0.255) c -onst]&] -[s2;%% Constant content access operator. Illegal if there is no content. -Returns constant pointer to content.&] -[s3; &] -[s4; &] -[s5;:One`:`:operator`-`>`(`): [*@4 T]_`*[* operator`->]()&] -[s2;%% Content access operator. Illegal if there is no content. Returns -pointer to content.&] -[s3; &] -[s4; &] -[s5;:One`:`:operator`~`(`)const: [@(0.0.255) const]_[*@4 T]_`*[* operator`~]()_[@(0.0.255) co -nst]&] -[s5;:Upp`:`:One`:`:Get`(`)const: [@(0.0.255) const]_[*@4 T]_`*[* Get]()_[@(0.0.255) const]&] -[s2;%% Constant content pointer access. Returns constant pointer -to content or NULL when there is no content.&] -[s3; &] -[s4; &] -[s5;:One`:`:operator`~`(`): [*@4 T]_`*[* operator`~]()&] -[s5;:Upp`:`:One`:`:Get`(`): [*@4 T]_`*[* Get]()&] -[s2;%% Content pointer access. Returns pointer to content or NULL -when there is no content.&] -[s3; &] -[s4; &] -[s5;:One`:`:operator`*`(`)const: [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[* operator`*]()_[@(0.0.255) c -onst]&] -[s2;%% Content constant reference access. Illegal if there is no -content. Returns constant reference to content.&] -[s3; &] -[s4; &] -[s5;:One`:`:operator`*`(`): [*@4 T][@(0.0.255) `&]_[* operator`*]()&] -[s2;%% Content reference access. Illegal if there is no content. -Returns reference to content.&] -[s3; &] -[s4; &] -[s5;:Upp`:`:One`:`:Create`(Args`.`.`.args`): [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 T -T], [@(0.0.255) class...]_[*@4 Args]>_[*@4 TT][@(0.0.255) `&]_[* Create]([*@4 Args][@(0.0.255) . -..]_args)&] -[s2;%% Creates [%-*@4 TT] content in One. If there is content in One -while calling this function, it is destroyed. Additional arguments -can be specified for [%-*@4 TT ]constructor.&] -[s3; &] -[s4; &] -[s5;:Upp`:`:One`:`:Create`(`): [*@4 T][@(0.0.255) `&]_[* Create]()&] -[s2;%% Creates [%-*@4 T] content in One (default constructed).&] -[s3; &] -[s4; &] -[s5;:One`:`:Is`(`)const: [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 TT]>_[@(0.0.255) bool -]_[* Is]()_[@(0.0.255) const]&] -[s2;%% Returns true if One contains object of type [%-*@4 TT] or derived -from [%-*@4 TT]. [%-*@4 T] must be polymorphic.&] -[s3; &] -[s4; &] -[s5;:One`:`:IsEmpty`(`)const: [@(0.0.255) bool]_[* IsEmpty]()_[@(0.0.255) const]&] -[s2;%% Returns [* true] if there is no content.&] -[s3; &] -[s4; &] -[s5;:One`:`:operator bool`(`)const: [* operator_bool]()_[@(0.0.255) const]&] -[s2;%% Returns [* true] if there is content.&] -[s0; &] -[s0; &] -[ {{10000@(113.42.0) [s0;%% [*@7;4 MakeOne]]}}&] -[s0; &] -[s3; &] -[s1;:noref: [@(0.0.255)3 template][3 _<][@(0.0.255)3 class][3 _][*@4;3 T][3 >]&] -[s1;:Upp`:`:MakeOne`:`:struct: [@(0.0.255) struct]_[* MakeOne]_:_[@(0.0.255) public]_[*@3 One]< -[*@4 T]>_&] -[s2;%% [%-*C@4 T]-|Type or base class of element stored in One.&] -[s0; &] -[s0; This is a simple helper class `- constructors of MakeOne call -One`::Create method to actually create contained object.&] -[s0; &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0;%% [* Constructor List]]}}&] -[s3; &] -[s5;:Upp`:`:MakeOne`:`:MakeOne`(Args`.`.`.args`): [@(0.0.255) template]_<[@(0.0.255) clas -s...]_[*@4 Args]>_[* MakeOne]([*@4 Args][@(0.0.255) ...]_args)&] -[s2;%% Creates contained object with variable number of parameters.&] -[s3;%% &] -[s4; &] -[s5;:Upp`:`:MakeOne`:`:MakeOne`(`): [* MakeOne]()&] -[s2;%% Creates contained object with no parameters (GCC bug workaround).&] -[s3; &] +topic "One"; +[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,0#27521748481378242620020725143825:desc] +[0 $$3,0#96390100711032703541132217272105:end] +[H6;0 $$4,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] +[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] +[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] +[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] +[b42;2 $$9,9#13035079074754324216151401829390:normal] +[{_} +[ {{10000@(113.42.0) [s0;%% [*@7;4 One]]}}&] +[s3; &] +[s1;:noref: [@(0.0.255)3 template][3 _<][@(0.0.255)3 class][3 _][*@4;3 T][@(0.0.255)3 >]&] +[s1;:One`:`:class: [@(0.0.255) class]_[* One]_:_[@(0.0.255) private]_[*@3 MoveableAndDeepCopyO +ption][@(0.0.255) <]_[* One][@(0.0.255) <][*@4 T][@(0.0.255) >]_>_&] +[s8;%% [%-*C@4 T]-|Type or base class of element stored in One.&] +[s0;%% &] +[s9;%% One is a container capable of containing none or single element +of type specified as template argument or derived from it.&] +[s9;%% The container is similar to [^http`:`/`/en`.cppreference`.com`/w`/cpp`/memory`/unique`_ptr^ s +td`::unique`_ptr]., but unlike it, it is treated more like container +than smart pointer. For example, it propagates constantness of +One to contained element.&] +[s9;%% One is [*/^topic`:`/`/Core`/srcdoc`/Moveable`$en`-us^ moveable][*/ +]type with [*/^topic`:`/`/Core`/srcdoc`/pick`_`$en`-us^ pick and +optional clone] transfer semantics.&] +[s3; &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0;%% [* Constructor List]]}}&] +[s0;0 &] +[s5;:One`:`:One`(`): [* One]()&] +[s2;%% Default constructor. Constructs empty One.&] +[s3; &] +[s4; &] +[s5;:One`:`:One`(T`*`): [* One]([*@4 T]_`*[*@3 newt])&] +[s2;%% Constructs One with content [%-*@3 newt]. Content is specified +by pointer to object created using operator new. One takes over +ownership of this this object.&] +[s3;%% &] +[s4; &] +[s5;:Upp`:`:One`:`:One`(Upp`:`:One``&`&`): [@(0.0.255) template]_<[@(0.0.255) class]_ +[*@4 TT]>_[* One]([* One]<[*@4 TT]>`&`&_[*@3 p])&] +[s2;%% Pick constructor. [%-*@4 TT] must be the same as [%-*@4 T] or +derived from [%-*@4 T].&] +[s3;%% &] +[s4; &] +[s5;:One`:`:One`(const One``&`,int`): [* One]([@(0.0.255) const]_[* One][@(0.0.255) <][*@4 T +][@(0.0.255) >`&]_[*@3 p], [@(0.0.255) int])&] +[s6;%% Optional deep copy constructor.&] +[s2;%% Requires T to have deep copy constructor or optional deep +copy constructor.&] +[s3;%% &] +[s4; &] +[s5;:One`:`:`~One`(`): [@(0.0.255) `~][* One]()&] +[s2;%% Default destructor.&] +[s3; &] +[s1;%% &] +[ {{10000F(128)G(128)@1 [s0;%% [* Method List]]}}&] +[s0;0 &] +[s5;:One`:`:Clear`(`): [@(0.0.255) void]_[* Clear]()&] +[s2; Removes the element stored in [* One].&] +[s3; &] +[s4; &] +[s5;:One`:`:IsPicked`(`)const: [@(0.0.255) bool]_[* IsPicked]()_[@(0.0.255) const]&] +[s2;%% Returns [* true] if [* One] has been picked.&] +[s3;%% &] +[s4; &] +[s5;:One`:`:Attach`(T`*`): [@(0.0.255) void]_[* Attach]([*@4 T]_`*[*@3 data])&] +[s2;%% Assigns element to One. (Note: if there is content in One while +calling this function, it is destroyed). [%-*C@3 data] must be +pointer to the new content created using operator new.&] +[s3; &] +[s4; &] +[s5;:Upp`:`:One`:`:Detach`(`): [*@4 T]_`*[* Detach]()&] +[s2;%% Removes content giving up ownership. Client is responsible +for deletion of content. If One is empty, return value is NULL, +otherwise the return value is pointer to the content allocated +on the heap.&] +[s3; &] +[s4; &] +[s5;:One`:`:operator`=`(T`*`): [@(0.0.255) void]_[* operator`=]([*@4 T]_`*[*@3 data])&] +[s7;%% Same as Attach([%-*@3 data]) (operator version).&] +[s3; &] +[s4; &] +[s5;:Upp`:`:One`:`:operator`=`(Upp`:`:One``&`&`): [@(0.0.255) template]_<[@(0.0.255) c +lass]_[*@4 TT]>_[@(0.0.255) void]_[* operator`=]([_^Upp`:`:One^ One]<[*@4 TT]>`&`&_[*@3 d])&] +[s2;%% Pick assignment. [%-*@4 TT] must be the same as [%-*@4 T] or derived +from [%-*@4 T].&] +[s3; &] +[s4; &] +[s5;:One`:`:operator`-`>`(`)const: [@(0.0.255) const]_[*@4 T]_`*[* operator`->]()_[@(0.0.255) c +onst]&] +[s2;%% Constant content access operator. Illegal if there is no content. +Returns constant pointer to content.&] +[s3; &] +[s4; &] +[s5;:One`:`:operator`-`>`(`): [*@4 T]_`*[* operator`->]()&] +[s2;%% Content access operator. Illegal if there is no content. Returns +pointer to content.&] +[s3; &] +[s4; &] +[s5;:One`:`:operator`~`(`)const: [@(0.0.255) const]_[*@4 T]_`*[* operator`~]()_[@(0.0.255) co +nst]&] +[s5;:Upp`:`:One`:`:Get`(`)const: [@(0.0.255) const]_[*@4 T]_`*[* Get]()_[@(0.0.255) const]&] +[s2;%% Constant content pointer access. Returns constant pointer +to content or NULL when there is no content.&] +[s3; &] +[s4; &] +[s5;:One`:`:operator`~`(`): [*@4 T]_`*[* operator`~]()&] +[s5;:Upp`:`:One`:`:Get`(`): [*@4 T]_`*[* Get]()&] +[s2;%% Content pointer access. Returns pointer to content or NULL +when there is no content.&] +[s3; &] +[s4; &] +[s5;:One`:`:operator`*`(`)const: [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[* operator`*]()_[@(0.0.255) c +onst]&] +[s2;%% Content constant reference access. Illegal if there is no +content. Returns constant reference to content.&] +[s3; &] +[s4; &] +[s5;:One`:`:operator`*`(`): [*@4 T][@(0.0.255) `&]_[* operator`*]()&] +[s2;%% Content reference access. Illegal if there is no content. +Returns reference to content.&] +[s3; &] +[s4; &] +[s5;:Upp`:`:One`:`:Create`(Args`.`.`.args`): [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 T +T], [@(0.0.255) class...]_[*@4 Args]>_[*@4 TT][@(0.0.255) `&]_[* Create]([*@4 Args][@(0.0.255) . +..]_args)&] +[s2;%% Creates [%-*@4 TT] content in One. If there is content in One +while calling this function, it is destroyed. Additional arguments +can be specified for [%-*@4 TT ]constructor.&] +[s3; &] +[s4; &] +[s5;:Upp`:`:One`:`:Create`(`): [*@4 T][@(0.0.255) `&]_[* Create]()&] +[s2;%% Creates [%-*@4 T] content in One (default constructed).&] +[s3; &] +[s4; &] +[s5;:One`:`:Is`(`)const: [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 TT]>_[@(0.0.255) bool +]_[* Is]()_[@(0.0.255) const]&] +[s2;%% Returns true if One contains object of type [%-*@4 TT] or derived +from [%-*@4 TT]. [%-*@4 T] must be polymorphic.&] +[s3; &] +[s4; &] +[s5;:One`:`:IsEmpty`(`)const: [@(0.0.255) bool]_[* IsEmpty]()_[@(0.0.255) const]&] +[s2;%% Returns [* true] if there is no content.&] +[s3; &] +[s4; &] +[s5;:One`:`:operator bool`(`)const: [* operator_bool]()_[@(0.0.255) const]&] +[s2;%% Returns [* true] if there is content.&] +[s0; &] +[s0; &] +[ {{10000@(113.42.0) [s0;%% [*@7;4 MakeOne]]}}&] +[s0; &] +[s3; &] +[s1;:noref: [@(0.0.255)3 template][3 _<][@(0.0.255)3 class][3 _][*@4;3 T][3 >]&] +[s1;:Upp`:`:MakeOne`:`:struct: [@(0.0.255) struct]_[* MakeOne]_:_[@(0.0.255) public]_[*@3 One]< +[*@4 T]>_&] +[s2;%% [%-*C@4 T]-|Type or base class of element stored in One.&] +[s0; &] +[s0; This is a simple helper class `- constructors of MakeOne call +One`::Create method to actually create contained object.&] +[s0; &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0;%% [* Constructor List]]}}&] +[s3; &] +[s5;:Upp`:`:MakeOne`:`:MakeOne`(Args`.`.`.args`): [@(0.0.255) template]_<[@(0.0.255) clas +s...]_[*@4 Args]>_[* MakeOne]([*@4 Args][@(0.0.255) ...]_args)&] +[s2;%% Creates contained object with variable number of parameters.&] +[s3;%% &] +[s4; &] +[s5;:Upp`:`:MakeOne`:`:MakeOne`(`): [* MakeOne]()&] +[s2;%% Creates contained object with no parameters (GCC bug workaround).&] +[s3; &] [s0; ]] \ No newline at end of file diff --git a/uppsrc/Core/src.tpp/OutFilterStream$en-us.tpp b/uppsrc/Core/src.tpp/OutFilterStream_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/OutFilterStream$en-us.tpp rename to uppsrc/Core/src.tpp/OutFilterStream_en-us.tpp diff --git a/uppsrc/Core/src.tpp/ParseXmlFilter$en-us.tpp b/uppsrc/Core/src.tpp/ParseXmlFilter_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/ParseXmlFilter$en-us.tpp rename to uppsrc/Core/src.tpp/ParseXmlFilter_en-us.tpp diff --git a/uppsrc/Core/src.tpp/Path$en-us.tpp b/uppsrc/Core/src.tpp/Path_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/Path$en-us.tpp rename to uppsrc/Core/src.tpp/Path_en-us.tpp diff --git a/uppsrc/Core/src.tpp/Point$en-us.tpp b/uppsrc/Core/src.tpp/Point_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/Point$en-us.tpp rename to uppsrc/Core/src.tpp/Point_en-us.tpp diff --git a/uppsrc/Core/src.tpp/PrimitiveDataTypes$en-us.tpp b/uppsrc/Core/src.tpp/PrimitiveDataTypes_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/PrimitiveDataTypes$en-us.tpp rename to uppsrc/Core/src.tpp/PrimitiveDataTypes_en-us.tpp diff --git a/uppsrc/Core/src.tpp/PtePtr$en-us.tpp b/uppsrc/Core/src.tpp/PtePtr_en-us.tpp similarity index 97% rename from uppsrc/Core/src.tpp/PtePtr$en-us.tpp rename to uppsrc/Core/src.tpp/PtePtr_en-us.tpp index 908e41dd9..82e379ea2 100644 --- a/uppsrc/Core/src.tpp/PtePtr$en-us.tpp +++ b/uppsrc/Core/src.tpp/PtePtr_en-us.tpp @@ -1,121 +1,121 @@ -topic "Ptr and Pte"; -[2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,0#27521748481378242620020725143825:desc] -[0 $$3,0#96390100711032703541132217272105:end] -[H6;0 $$4,0#05600065144404261032431302351956:begin] -[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] -[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] -[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] -[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] -[b42;2 $$9,9#13035079074754324216151401829390:normal] -[{_}%EN-US -[ {{10000@(113.42.0) [s0; [*@7;4 Ptr and Pte]]}}&] -[s9; Ptr and Pte class templates provide a smart pointer system that -cleared (assigned NULL) when pointed object is destructed. That -makes it useful in situations where life`-time of object cannot -be precisely determined.&] -[s9; While [* Ptr ]class template provides smart pointers, [* Pte ]is -the class which adds necessary functionality to pointed objects. -[* Ptr ]could only point to objects of [* Pte]`-derived type. So -to make a class `"[* Ptr]`-able`" you should add [* Pte ]as one of -class bases, with the derived class as its parameter, e.g.:&] -[s0; [C+75 struct Foo : Pte `{....]&] -[s3; &] -[s0; &] -[ {{10000@(113.42.0) [s0; [*@7;4 Pte]]}}&] -[s3;%- &] -[s1;:noref:%- [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 T][@(0.0.255) >]&] -[s1;:Pte`:`:class:%- [@(0.0.255) class]_[* Pte]_:_[@(0.0.255) public]_[*@3 PteBase]&] -[s0; &] -[s0; This template class implements the functionality needed in the -pointed object. &] -[s0; [*C@4 T]-|Type of pointed object.&] -[s0; &] -[s0; [/ Derived from] [^topic`:`/`/Core`/src`/PtePtr`$en`-us`#`:`:PteBase`:`:class PteBase^ P -teBase]&] -[s3; &] -[s0;%- &] -[ {{10000@(113.42.0) [s0; [*@7;4 Ptr and Pte]]}}&] -[s3;%- &] -[s1;:noref:%- [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 T][@(0.0.255) >]&] -[s1;:Ptr`:`:class:%- [@(0.0.255) class]_[* Ptr]_:_[@(0.0.255) public]_[*@3 PtrBase], -[@(0.0.255) private]_[*@3 Moveable][@(0.0.255) <]_[* Ptr][@(0.0.255) <][*@4 T][@(0.0.255) >]_>_ -&] -[s0;%- &] -[s0; Type specific pointer.&] -[s0; [*C@4 T]-|Type of pointed object. T class must be derived from -Pte.&] -[s0; &] -[s0; [/ Derived from] [^topic`:`/`/Core`/src`/PtePtr`$en`-us`#`:`:PtrBase`:`:PtrBase`(`)^ P -trBase]&] -[s3; &] -[s1;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] -[s3;%- &] -[s5;:Ptr`:`:Ptr`(`):%- [* Ptr]()&] -[s2; Default constructor.&] -[s3; &] -[s4;%- &] -[s5;:Ptr`:`:Ptr`(T`*`):%- [* Ptr]([*@4 T]_`*[*@3 ptr])&] -[s2; Constructs Ptr pointing to specified object [%-*@3 ptr].&] -[s3; &] -[s4;%- &] -[s5;:Ptr`:`:Ptr`(const Ptr`&`):%- [* Ptr]([@(0.0.255) const]_[* Ptr][@(0.0.255) `&]_[*@3 ptr])&] -[s2; Constructs Ptr pointing to the same object as other Ptr [%-*@3 ptr].&] -[s3; &] -[s1;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Public Method List]]}}&] -[s3; &] -[s5;:Ptr`:`:operator`-`>`(`)const:%- [*@4 T]_`*[* operator`->]()_[@(0.0.255) const]&] -[s2; Returns a C`+`+ pointer to pointed object or NULL if Ptr does -not point to any object.&] -[s3;%- &] -[s4;%- &] -[s5;:Ptr`:`:operator`~`(`)const:%- [*@4 T]_`*[* operator`~]()_[@(0.0.255) const]&] -[s2; Returns a C`+`+ pointer to pointed object or NULL if Ptr does -not point to any object.&] -[s3;%- &] -[s4;%- &] -[s5;:Ptr`:`:operator T`*`(`)const:%- [* operator_T`*]()_[@(0.0.255) const]&] -[s2; Returns a C`+`+ pointer to pointed object or NULL if Ptr does -not point to any object.&] -[s3;%- &] -[s4;%- &] -[s5;:Ptr`:`:operator`=`(T`*`):%- [_^Ptr^ Ptr][@(0.0.255) `&]_[* operator`=]([*@4 T]_`*[*@3 ptr]) -&] -[s2; Assigns new pointer. Returns `*this.&] -[s3;%- &] -[s4;%- &] -[s5;:Ptr`:`:operator`=`(const Ptr`&`):%- [_^Ptr^ Ptr][@(0.0.255) `&]_[* operator`=]([@(0.0.255) c -onst]_[_^Ptr^ Ptr][@(0.0.255) `&]_[*@3 ptr])&] -[s2; Assigns other Ptr. Returns `*this.-|&] -[s3; &] -[s4;%- &] -[s5;:Ptr`:`:ToString`(`)const:%- [_^String^ String]_[* ToString]()_[@(0.0.255) const]&] -[s2; Converts all information to string for diagnostic purposes&] -[s3; &] -[s0;i448;a25;kKO9;@(0.0.255)%- &] -[ {{10000F(128)G(128)@1 [s0; [* Global Operators]]}}&] -[s3; &] -[s5;K%- friend_[@(0.0.255) bool][@(64) _]operator`=`=[@(64) (][@(0.0.255) const][@(64) _][^`:`:Ptr^@(64) P -tr][@(64) `&_][@3 a][@(64) , ][@(0.0.255) const][@(64) _T_`*][@3 b][@(64) )]&] -[s5;K%- friend_[@(0.0.255) bool][@(64) _]operator`=`=[@(64) (][@(0.0.255) const][@(64) _T_`*][@3 a -][@(64) , ][@(0.0.255) const][@(64) _][^`:`:Ptr^@(64) Ptr][@(64) `&_][@3 b][@(64) )]&] -[s5;K%- friend_[@(0.0.255) bool][@(64) _]operator`=`=[@(64) (][@(0.0.255) const][@(64) _][^`:`:Ptr^@(64) P -tr][@(64) `&_][@3 a][@(64) , ][@(0.0.255) const][@(64) _][^`:`:Ptr^@(64) Ptr][@(64) `&_][@3 b][@(64) ) -]&] -[s5;K%- friend_[@(0.0.255) bool][@(64) _]operator`=`=[@(64) (][@(0.0.255) const][@(64) _][^`:`:Ptr^@(64) P -tr][@(64) `&_][@3 a][@(64) , T_`*][@3 b][@(64) )]&] -[s5;K%- friend_[@(0.0.255) bool][@(64) _]operator`=`=[@(64) (T_`*][@3 a][@(64) , -][@(0.0.255) const][@(64) _][^`:`:Ptr^@(64) Ptr][@(64) `&_][@3 b][@(64) )]&] -[s5;K%- friend_[@(0.0.255) bool][@(64) _]operator!`=[@(64) (][@(0.0.255) const][@(64) _][^`:`:Ptr^@(64) P -tr][@(64) `&_][@3 a][@(64) , ][@(0.0.255) const][@(64) _T_`*][@3 b][@(64) )]&] -[s5;K%- friend_[@(0.0.255) bool][@(64) _]operator!`=[@(64) (][@(0.0.255) const][@(64) _T_`*][@3 a -][@(64) , ][@(0.0.255) const][@(64) _][^`:`:Ptr^@(64) Ptr][@(64) `&_][@3 b][@(64) )]&] -[s5;K%- friend_[@(0.0.255) bool][@(64) _]operator!`=[@(64) (][@(0.0.255) const][@(64) _][^`:`:Ptr^@(64) P -tr][@(64) `&_][@3 a][@(64) , ][@(0.0.255) const][@(64) _][^`:`:Ptr^@(64) Ptr][@(64) `&_][@3 b][@(64) ) -]&] -[s2; Comparison operators.&] -[s3; &] +topic "Ptr and Pte"; +[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,0#27521748481378242620020725143825:desc] +[0 $$3,0#96390100711032703541132217272105:end] +[H6;0 $$4,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] +[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] +[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] +[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] +[b42;2 $$9,9#13035079074754324216151401829390:normal] +[{_}%EN-US +[ {{10000@(113.42.0) [s0; [*@7;4 Ptr and Pte]]}}&] +[s9; Ptr and Pte class templates provide a smart pointer system that +cleared (assigned NULL) when pointed object is destructed. That +makes it useful in situations where life`-time of object cannot +be precisely determined.&] +[s9; While [* Ptr ]class template provides smart pointers, [* Pte ]is +the class which adds necessary functionality to pointed objects. +[* Ptr ]could only point to objects of [* Pte]`-derived type. So +to make a class `"[* Ptr]`-able`" you should add [* Pte ]as one of +class bases, with the derived class as its parameter, e.g.:&] +[s0; [C+75 struct Foo : Pte `{....]&] +[s3; &] +[s0; &] +[ {{10000@(113.42.0) [s0; [*@7;4 Pte]]}}&] +[s3;%- &] +[s1;:noref:%- [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 T][@(0.0.255) >]&] +[s1;:Pte`:`:class:%- [@(0.0.255) class]_[* Pte]_:_[@(0.0.255) public]_[*@3 PteBase]&] +[s0; &] +[s0; This template class implements the functionality needed in the +pointed object. &] +[s0; [*C@4 T]-|Type of pointed object.&] +[s0; &] +[s0; [/ Derived from] [^topic`:`/`/Core`/src`/PtePtr`$en`-us`#`:`:PteBase`:`:class PteBase^ P +teBase]&] +[s3; &] +[s0;%- &] +[ {{10000@(113.42.0) [s0; [*@7;4 Ptr and Pte]]}}&] +[s3;%- &] +[s1;:noref:%- [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 T][@(0.0.255) >]&] +[s1;:Ptr`:`:class:%- [@(0.0.255) class]_[* Ptr]_:_[@(0.0.255) public]_[*@3 PtrBase], +[@(0.0.255) private]_[*@3 Moveable][@(0.0.255) <]_[* Ptr][@(0.0.255) <][*@4 T][@(0.0.255) >]_>_ +&] +[s0;%- &] +[s0; Type specific pointer.&] +[s0; [*C@4 T]-|Type of pointed object. T class must be derived from +Pte.&] +[s0; &] +[s0; [/ Derived from] [^topic`:`/`/Core`/src`/PtePtr`$en`-us`#`:`:PtrBase`:`:PtrBase`(`)^ P +trBase]&] +[s3; &] +[s1;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] +[s3;%- &] +[s5;:Ptr`:`:Ptr`(`):%- [* Ptr]()&] +[s2; Default constructor.&] +[s3; &] +[s4;%- &] +[s5;:Ptr`:`:Ptr`(T`*`):%- [* Ptr]([*@4 T]_`*[*@3 ptr])&] +[s2; Constructs Ptr pointing to specified object [%-*@3 ptr].&] +[s3; &] +[s4;%- &] +[s5;:Ptr`:`:Ptr`(const Ptr`&`):%- [* Ptr]([@(0.0.255) const]_[* Ptr][@(0.0.255) `&]_[*@3 ptr])&] +[s2; Constructs Ptr pointing to the same object as other Ptr [%-*@3 ptr].&] +[s3; &] +[s1;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Public Method List]]}}&] +[s3; &] +[s5;:Ptr`:`:operator`-`>`(`)const:%- [*@4 T]_`*[* operator`->]()_[@(0.0.255) const]&] +[s2; Returns a C`+`+ pointer to pointed object or NULL if Ptr does +not point to any object.&] +[s3;%- &] +[s4;%- &] +[s5;:Ptr`:`:operator`~`(`)const:%- [*@4 T]_`*[* operator`~]()_[@(0.0.255) const]&] +[s2; Returns a C`+`+ pointer to pointed object or NULL if Ptr does +not point to any object.&] +[s3;%- &] +[s4;%- &] +[s5;:Ptr`:`:operator T`*`(`)const:%- [* operator_T`*]()_[@(0.0.255) const]&] +[s2; Returns a C`+`+ pointer to pointed object or NULL if Ptr does +not point to any object.&] +[s3;%- &] +[s4;%- &] +[s5;:Ptr`:`:operator`=`(T`*`):%- [_^Ptr^ Ptr][@(0.0.255) `&]_[* operator`=]([*@4 T]_`*[*@3 ptr]) +&] +[s2; Assigns new pointer. Returns `*this.&] +[s3;%- &] +[s4;%- &] +[s5;:Ptr`:`:operator`=`(const Ptr`&`):%- [_^Ptr^ Ptr][@(0.0.255) `&]_[* operator`=]([@(0.0.255) c +onst]_[_^Ptr^ Ptr][@(0.0.255) `&]_[*@3 ptr])&] +[s2; Assigns other Ptr. Returns `*this.-|&] +[s3; &] +[s4;%- &] +[s5;:Ptr`:`:ToString`(`)const:%- [_^String^ String]_[* ToString]()_[@(0.0.255) const]&] +[s2; Converts all information to string for diagnostic purposes&] +[s3; &] +[s0;i448;a25;kKO9;@(0.0.255)%- &] +[ {{10000F(128)G(128)@1 [s0; [* Global Operators]]}}&] +[s3; &] +[s5;K%- friend_[@(0.0.255) bool][@(64) _]operator`=`=[@(64) (][@(0.0.255) const][@(64) _][^`:`:Ptr^@(64) P +tr][@(64) `&_][@3 a][@(64) , ][@(0.0.255) const][@(64) _T_`*][@3 b][@(64) )]&] +[s5;K%- friend_[@(0.0.255) bool][@(64) _]operator`=`=[@(64) (][@(0.0.255) const][@(64) _T_`*][@3 a +][@(64) , ][@(0.0.255) const][@(64) _][^`:`:Ptr^@(64) Ptr][@(64) `&_][@3 b][@(64) )]&] +[s5;K%- friend_[@(0.0.255) bool][@(64) _]operator`=`=[@(64) (][@(0.0.255) const][@(64) _][^`:`:Ptr^@(64) P +tr][@(64) `&_][@3 a][@(64) , ][@(0.0.255) const][@(64) _][^`:`:Ptr^@(64) Ptr][@(64) `&_][@3 b][@(64) ) +]&] +[s5;K%- friend_[@(0.0.255) bool][@(64) _]operator`=`=[@(64) (][@(0.0.255) const][@(64) _][^`:`:Ptr^@(64) P +tr][@(64) `&_][@3 a][@(64) , T_`*][@3 b][@(64) )]&] +[s5;K%- friend_[@(0.0.255) bool][@(64) _]operator`=`=[@(64) (T_`*][@3 a][@(64) , +][@(0.0.255) const][@(64) _][^`:`:Ptr^@(64) Ptr][@(64) `&_][@3 b][@(64) )]&] +[s5;K%- friend_[@(0.0.255) bool][@(64) _]operator!`=[@(64) (][@(0.0.255) const][@(64) _][^`:`:Ptr^@(64) P +tr][@(64) `&_][@3 a][@(64) , ][@(0.0.255) const][@(64) _T_`*][@3 b][@(64) )]&] +[s5;K%- friend_[@(0.0.255) bool][@(64) _]operator!`=[@(64) (][@(0.0.255) const][@(64) _T_`*][@3 a +][@(64) , ][@(0.0.255) const][@(64) _][^`:`:Ptr^@(64) Ptr][@(64) `&_][@3 b][@(64) )]&] +[s5;K%- friend_[@(0.0.255) bool][@(64) _]operator!`=[@(64) (][@(0.0.255) const][@(64) _][^`:`:Ptr^@(64) P +tr][@(64) `&_][@3 a][@(64) , ][@(0.0.255) const][@(64) _][^`:`:Ptr^@(64) Ptr][@(64) `&_][@3 b][@(64) ) +]&] +[s2; Comparison operators.&] +[s3; &] [s0; ]] \ No newline at end of file diff --git a/uppsrc/Core/src.tpp/RGBA$en-us.tpp b/uppsrc/Core/src.tpp/RGBA_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/RGBA$en-us.tpp rename to uppsrc/Core/src.tpp/RGBA_en-us.tpp diff --git a/uppsrc/Core/src.tpp/RWMutex$en-us.tpp b/uppsrc/Core/src.tpp/RWMutex_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/RWMutex$en-us.tpp rename to uppsrc/Core/src.tpp/RWMutex_en-us.tpp diff --git a/uppsrc/Core/src.tpp/Range$en-us.tpp b/uppsrc/Core/src.tpp/Range_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/Range$en-us.tpp rename to uppsrc/Core/src.tpp/Range_en-us.tpp diff --git a/uppsrc/Core/src.tpp/Rect$en-us.tpp b/uppsrc/Core/src.tpp/Rect_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/Rect$en-us.tpp rename to uppsrc/Core/src.tpp/Rect_en-us.tpp diff --git a/uppsrc/Core/src.tpp/Ref$en-us.tpp b/uppsrc/Core/src.tpp/Ref_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/Ref$en-us.tpp rename to uppsrc/Core/src.tpp/Ref_en-us.tpp diff --git a/uppsrc/Core/src.tpp/Semaphore$en-us.tpp b/uppsrc/Core/src.tpp/Semaphore_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/Semaphore$en-us.tpp rename to uppsrc/Core/src.tpp/Semaphore_en-us.tpp diff --git a/uppsrc/Core/src.tpp/SerializationUtils$en-us.tpp b/uppsrc/Core/src.tpp/SerializationUtils_en-us.tpp similarity index 98% rename from uppsrc/Core/src.tpp/SerializationUtils$en-us.tpp rename to uppsrc/Core/src.tpp/SerializationUtils_en-us.tpp index c6a19b03b..5c4f97ddc 100644 --- a/uppsrc/Core/src.tpp/SerializationUtils$en-us.tpp +++ b/uppsrc/Core/src.tpp/SerializationUtils_en-us.tpp @@ -1,222 +1,222 @@ -topic "Serialization utilities"; -[2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,0#27521748481378242620020725143825:desc] -[0 $$3,0#96390100711032703541132217272105:end] -[H6;0 $$4,0#05600065144404261032431302351956:begin] -[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] -[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] -[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] -[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] -[b42;2 $$9,9#13035079074754324216151401829390:normal] -[{_}%EN-US -[ {{10000@(113.42.0) [s0; [*@2;4 Serialization utilities]]}}&] -[s0;*@3;4 &] -[ {{10000t/25b/25@1 [s0;%- [* Function List]]}}&] -[s0;0%- &] -[s5;:Pack16`(Stream`&`,int`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* Pack16]([_^Stream^ Str -eam][@(0.0.255) `&]_[*@3 s], [@(0.0.255) int`&]_[*@3 i])&] -[s2; Serializes 32`-bit data, optimizing it for 16`-bit values. If -value is in `-32767`-32767 range, it is serialized as 2 bytes, -otherwise 6 bytes are used.&] -[s7; [%-*C@3 s]-|Stream.&] -[s7; [%-*C@3 i]-|Data to serialize.&] -[s7; [*/ Return value]-|s for chaining.&] -[s3; &] -[s4;%- &] -[s5;:Pack16`(Stream`&`,int`&`,int`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* Pack16]([_^Stream^ S -tream][@(0.0.255) `&]_[*@3 s], [@(0.0.255) int`&]_[*@3 i1], [@(0.0.255) int`&]_[*@3 i2])&] -[s5;:Pack16`(Stream`&`,int`&`,int`&`,int`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* Pack16 -]([_^Stream^ Stream][@(0.0.255) `&]_[*@3 s], [@(0.0.255) int`&]_[*@3 i1], -[@(0.0.255) int`&]_[*@3 i2], [@(0.0.255) int`&]_[*@3 i3])&] -[s5;:Pack16`(Stream`&`,int`&`,int`&`,int`&`,int`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_ -[* Pack16]([_^Stream^ Stream][@(0.0.255) `&]_[*@3 s], [@(0.0.255) int`&]_[*@3 i1], -[@(0.0.255) int`&]_[*@3 i2], [@(0.0.255) int`&]_[*@3 i3], [@(0.0.255) int`&]_[*@3 i4])&] -[s5;:Pack16`(Stream`&`,int`&`,int`&`,int`&`,int`&`,int`&`):%- [_^Stream^ Stream][@(0.0.255) `& -]_[* Pack16]([_^Stream^ Stream][@(0.0.255) `&]_[*@3 s], [@(0.0.255) int`&]_[*@3 i1], -[@(0.0.255) int`&]_[*@3 i2], [@(0.0.255) int`&]_[*@3 i3], [@(0.0.255) int`&]_[*@3 i4], -[@(0.0.255) int`&]_[*@3 i5])&] -[s2; Calls Pack16 for each of individual 32`-bit integer parameters.&] -[s3; &] -[s4;%- &] -[s5;:Load`(Callback1``,Stream`&`):%- [@(0.0.255) bool]_[* Load]([_^Callback1^ Ca -llback1][@(0.0.255) <][_^Stream^ Stream][@(0.0.255) `&>]_[*@3 serialize], -[_^Stream^ Stream][@(0.0.255) `&]_[*@3 stream])&] -[s2; Smart serialization restore. Data to serialize are represented -by Callback. First, backup of current state of data is performed -and stored in memory. Then data are loaded from the specified -stream. If restoring of data is successful (no LoadingError exception -is thrown), Load returns true. If LoadingError is thrown, it -is caught by Load, data are restored from backup copy and Load -returns false.&] -[s7; [%-*C@3 serialize]-|Callback to the serialization function.&] -[s7; [%-*C@3 stream]-|Stream.&] -[s7; [*/ Return value]-|true indicates success.&] -[s3; &] -[s4;%- &] -[s5;:Store`(Callback1``,Stream`&`):%- [@(0.0.255) bool]_[* Store]([_^Callback1^ C -allback1][@(0.0.255) <][_^Stream^ Stream][@(0.0.255) `&>]_[*@3 serialize], -[_^Stream^ Stream][@(0.0.255) `&]_[*@3 stream])&] -[s2; Serialization save. Data to serialize are represented by Callback.&] -[s7; [%-*C@3 serialize]-|Callback to the serialization function.&] -[s7; [%-*C@3 stream]-|Stream.&] -[s7; [*/ Return value]-|true if data were properly stored to the stream.&] -[s3; &] -[s4;%- &] -[s5;:LoadFromFile`(Callback1``,const char`*`):%- [@(0.0.255) bool]_[* LoadFrom -File]([_^Callback1^ Callback1][@(0.0.255) <]Stream[@(0.0.255) `&>]_[*@3 serialize], -[@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 file]_`=_NULL)&] -[s2; Using [^topic`:`/`/Core`/src`/SerializationUtils`$en`-us`#`:`:Load`(Callback1``,Stream`&`)^ L -oad], data are restored from the file.&] -[s7; [%-*C@3 serialize]-|Callback to the serialization function.&] -[s7; [%-*C@3 file]-|Filename.&] -[s7; [*/ Return value]-|true indicates success.&] -[s3; &] -[s4;%- &] -[s5;:StoreToFile`(Callback1``,const char`*`):%- [@(0.0.255) bool]_[* StoreToFi -le]([_^Callback1^ Callback1][@(0.0.255) <]Stream[@(0.0.255) `&>]_[*@3 serialize], -[@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 file]_`=_NULL)&] -[s2; Using [^topic`:`/`/Core`/src`/SerializationUtils`$en`-us`#`:`:Store`(Callback1``,Stream`&`)^ S -tore] data are saved to the file.&] -[s7; [%-*C@3 serialize]-|Callback to the serialization function.&] -[s7; [%-*C@3 file]-|Filename.&] -[s7; [*/ Return value]-|true indicates success.&] -[s3; &] -[s4;%- &] -[s5;:Load`(T`&`,Stream`&`):%- [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 T][@(0.0.255) >]_ -[@(0.0.255) bool]_[* Load]([*@4 T][@(0.0.255) `&]_[*@3 x], [_^Stream^ Stream][@(0.0.255) `&]_[*@3 s -])&] -[s2; Calls [^topic`:`/`/Core`/src`/SerializationUtils`$en`-us`#`:`:Load`(Callback1``,Stream`&`)^ L -oad] with callback(`&[@3 x], `&T`::Serialize) as serialization callback. -In other words, [@3 x] is restored using its Serialize method.&] -[s7; [*C@4 T]-|Type of object to restore.&] -[s7; [%-*C@3 x]-|Reference to the object.&] -[s7; [%-*C@3 s]-|Stream.&] -[s7; [*/ Return value]-|true indicates success.&] -[s3; &] -[s4;%- &] -[s5;:Store`(T`&`,Stream`&`):%- [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 T][@(0.0.255) > -]_[@(0.0.255) bool]_[* Store]([*@4 T][@(0.0.255) `&]_[*@3 x], [_^Stream^ Stream][@(0.0.255) `&]_ -[*@3 s])&] -[s2; Calls [^topic`:`/`/Core`/src`/SerializationUtils`$en`-us`#`:`:Store`(T`&`,Stream`&`)^ S -tore] with callback(`&[@3 x], `&T`::Serialize) as serialization -callback. In other words, [@3 x] is stored using its Serialize -method.&] -[s7; [*C@4 T]-|Type of object to restore.&] -[s7; [%-*C@3 x]-|Reference to the object.&] -[s7; [%-*C@3 s]-|Stream.&] -[s7; [*/ Return value]-|true indicates success.&] -[s3; &] -[s4;%- &] -[s5;:LoadFromFile`(T`&`,const char`*`):%- [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 T][@(0.0.255) > -]_[@(0.0.255) bool]_[* LoadFromFile]([*@4 T][@(0.0.255) `&]_[*@3 x], [@(0.0.255) const]_[@(0.0.255) c -har]_`*[*@3 name]_`=_NULL)&] -[s2; Calls [^topic`:`/`/Core`/src`/SerializationUtils`$en`-us`#`:`:LoadFromFile`(Callback1``,const char`*`)^ L -oadFromFile] with callback(`&[@3 x], `&T`::Serialize) as serialization -callback. In other words, [@3 x] is restored from the file using -its Serialize method.&] -[s7; [*C@4 T]-|Type of object to restore.&] -[s7; [%-*C@3 x]-|Reference to the object.&] -[s7; [%-*C@3 name]-|Filename.&] -[s7; [*/ Return value]-|true indicates success.&] -[s3; &] -[s4;%- &] -[s5;:StoreToFile`(T`&`,const char`*`):%- [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 T][@(0.0.255) > -]_[@(0.0.255) bool]_[* StoreToFile]([*@4 T][@(0.0.255) `&]_[*@3 x], [@(0.0.255) const]_[@(0.0.255) c -har]_`*[*@3 name]_`=_NULL)&] -[s2; Calls [^topic`:`/`/Core`/src`/SerializationUtils`$en`-us`#`:`:StoreToFile`(Callback1``,const char`*`)^ S -toreToFile] with callback(`&[@3 x], `&T`::Serialize) as serialization -callback. In other words, [@3 x] is stored to the file using its -Serialize method.&] -[s7; [*C@4 T]-|Type of object to store.&] -[s7; [%-*C@3 x]-|Reference to the object.&] -[s7; [%-*C@3 name]-|Filename.&] -[s7; [*/ Return value]-|true indicates success.&] -[s3; &] -[s4;%- &] -[s5;:StoreAsString`(T`&`):%- [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 T][@(0.0.255) >]_ -[_^String^ String]_[* StoreAsString]([*@4 T][@(0.0.255) `&]_[*@3 x])&] -[s2; Stores [@3 x] using its Serialize method and StringStream.&] -[s7; [*C@4 T]-|Type of object to store.&] -[s7; [%-*C@3 x]-|Reference to the object.&] -[s7; [*/ Return value]-|String containing serialized [@3 x].&] -[s3; &] -[s4;%- &] -[s5;:LoadFromString`(T`&`,const String`&`):%- [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 T -][@(0.0.255) >]_[@(0.0.255) bool]_[* LoadFromString]([*@4 T][@(0.0.255) `&]_[*@3 x], -[@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 s])&] -[s2; Restores serialized data from the String (e.g. previously stored -by StoreAsString).&] -[s7; [*C@4 T]-|Type of object to restore.&] -[s7; [%-*C@3 x]-|Reference to object.&] -[s7; [%-*C@3 s]-|String containing serialized [@3 x].&] -[s7; [*/ Return value]-|true indicates success.&] -[s3; &] -[s0; &] -[s0; &] -[s0; &] -[s0; [*@3;4 Global modular serialization support]&] -[s0;# Modular serialization is a viable option for storing configuration -of applications consisting of many modules. It allows individual -storing/loading data for given global configuration key and also -serialization of all such data with single stream.&] -[s0;3 &] -[ {{10000t/25b/25@1 [s0;%- [* Function List]]}}&] -[s0;0%- &] -[s5;:RegisterGlobalConfig`(const char`*`):%- [@(0.0.255) void]_[* RegisterGlobalConfig]([@(0.0.255) c -onst]_[@(0.0.255) char]_`*[*@3 name])&] -[s7; Registers name as global configuration key.&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:RegisterGlobalSerialize`(const char`*`,Upp`:`:Event``):%- [@(0.0.255) v -oid]_[* RegisterGlobalSerialize]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 name], -[_^Upp`:`:Event^ Event]_[*@3 WhenSerialize])&] -[s2; Registers name as global configuration key. [%-*@3 WhenSerialize] -is directly used to serialize data, unlike other variants of -global config key, where data are stored / retrieved using LoadFromGlobal -/ StoreToGlobal.&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:RegisterGlobalConfig`(const char`*`,Upp`:`:Event`<`>`):%- [@(0.0.255) void]_ -[* RegisterGlobalConfig]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 name], -[_^Upp`:`:Event^ Event]<>_[*@3 WhenFlush])&] -[s2; Registers name as global configuration key. [%-*C@3 WhenFlush] - is called before storing of all configuration keys is performed -by SerializeGlobalConfigs `- this is useful when StoreToGlobal -has to be explicitly triggered before storing configuration.&] -[s3; &] -[s4;%- &] -[s5;:LoadFromGlobal`(T`&`,const char`*`):%- [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 T -][@(0.0.255) >]_[@(0.0.255) bool]_[* LoadFromGlobal]([*@4 T][@(0.0.255) `&]_[*@3 x], -[@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 name])&] -[s2; Loads [%-*@3 x] from global configuration key [%-*@3 name], using -Serialize method of T.&] -[s3; &] -[s4;%- &] -[s5;:StoreToGlobal`(T`&`,const char`*`):%- [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 T -][@(0.0.255) >]_[@(0.0.255) void]_[* StoreToGlobal]([*@4 T][@(0.0.255) `&]_[*@3 x], -[@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 name])&] -[s2; Stores [@3 x] to global configuration key [%-*@3 name], using Serialize -method of T.&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:LoadFromGlobal`(Upp`:`:Event``,const char`*`):%- [@(0.0.255) b -ool]_[* LoadFromGlobal]([_^Upp`:`:Event^ Event]_[*@3 serialize], -[@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 name])&] -[s2; Loads [%-*@3 x] from global configuration key [%-*@3 name], using -[%-*@3 serialize] as serialization function.&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:StoreToGlobal`(Upp`:`:Event``,const char`*`):%- [@(0.0.255) v -oid]_[* StoreToGlobal]([_^Upp`:`:Event^ Event]_[*@3 x], -[@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 name])&] -[s2; Stores [@3 x] to global configuration key [%-*@3 name], using [%-*@3 serialize] -as serialization function.&] -[s3; &] -[s4;%- &] -[s5;:SerializeGlobalConfigs`(Stream`&`):%- [@(0.0.255) void]_[* SerializeGlobalConfigs]([_^Stream^ S -tream][@(0.0.255) `&]_[*@3 s])&] -[s2; Serializes all registered global configuration data from/to -single stream.&] -[s3; &] +topic "Serialization utilities"; +[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,0#27521748481378242620020725143825:desc] +[0 $$3,0#96390100711032703541132217272105:end] +[H6;0 $$4,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] +[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] +[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] +[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] +[b42;2 $$9,9#13035079074754324216151401829390:normal] +[{_}%EN-US +[ {{10000@(113.42.0) [s0; [*@2;4 Serialization utilities]]}}&] +[s0;*@3;4 &] +[ {{10000t/25b/25@1 [s0;%- [* Function List]]}}&] +[s0;0%- &] +[s5;:Pack16`(Stream`&`,int`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* Pack16]([_^Stream^ Str +eam][@(0.0.255) `&]_[*@3 s], [@(0.0.255) int`&]_[*@3 i])&] +[s2; Serializes 32`-bit data, optimizing it for 16`-bit values. If +value is in `-32767`-32767 range, it is serialized as 2 bytes, +otherwise 6 bytes are used.&] +[s7; [%-*C@3 s]-|Stream.&] +[s7; [%-*C@3 i]-|Data to serialize.&] +[s7; [*/ Return value]-|s for chaining.&] +[s3; &] +[s4;%- &] +[s5;:Pack16`(Stream`&`,int`&`,int`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* Pack16]([_^Stream^ S +tream][@(0.0.255) `&]_[*@3 s], [@(0.0.255) int`&]_[*@3 i1], [@(0.0.255) int`&]_[*@3 i2])&] +[s5;:Pack16`(Stream`&`,int`&`,int`&`,int`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* Pack16 +]([_^Stream^ Stream][@(0.0.255) `&]_[*@3 s], [@(0.0.255) int`&]_[*@3 i1], +[@(0.0.255) int`&]_[*@3 i2], [@(0.0.255) int`&]_[*@3 i3])&] +[s5;:Pack16`(Stream`&`,int`&`,int`&`,int`&`,int`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_ +[* Pack16]([_^Stream^ Stream][@(0.0.255) `&]_[*@3 s], [@(0.0.255) int`&]_[*@3 i1], +[@(0.0.255) int`&]_[*@3 i2], [@(0.0.255) int`&]_[*@3 i3], [@(0.0.255) int`&]_[*@3 i4])&] +[s5;:Pack16`(Stream`&`,int`&`,int`&`,int`&`,int`&`,int`&`):%- [_^Stream^ Stream][@(0.0.255) `& +]_[* Pack16]([_^Stream^ Stream][@(0.0.255) `&]_[*@3 s], [@(0.0.255) int`&]_[*@3 i1], +[@(0.0.255) int`&]_[*@3 i2], [@(0.0.255) int`&]_[*@3 i3], [@(0.0.255) int`&]_[*@3 i4], +[@(0.0.255) int`&]_[*@3 i5])&] +[s2; Calls Pack16 for each of individual 32`-bit integer parameters.&] +[s3; &] +[s4;%- &] +[s5;:Load`(Callback1``,Stream`&`):%- [@(0.0.255) bool]_[* Load]([_^Callback1^ Ca +llback1][@(0.0.255) <][_^Stream^ Stream][@(0.0.255) `&>]_[*@3 serialize], +[_^Stream^ Stream][@(0.0.255) `&]_[*@3 stream])&] +[s2; Smart serialization restore. Data to serialize are represented +by Callback. First, backup of current state of data is performed +and stored in memory. Then data are loaded from the specified +stream. If restoring of data is successful (no LoadingError exception +is thrown), Load returns true. If LoadingError is thrown, it +is caught by Load, data are restored from backup copy and Load +returns false.&] +[s7; [%-*C@3 serialize]-|Callback to the serialization function.&] +[s7; [%-*C@3 stream]-|Stream.&] +[s7; [*/ Return value]-|true indicates success.&] +[s3; &] +[s4;%- &] +[s5;:Store`(Callback1``,Stream`&`):%- [@(0.0.255) bool]_[* Store]([_^Callback1^ C +allback1][@(0.0.255) <][_^Stream^ Stream][@(0.0.255) `&>]_[*@3 serialize], +[_^Stream^ Stream][@(0.0.255) `&]_[*@3 stream])&] +[s2; Serialization save. Data to serialize are represented by Callback.&] +[s7; [%-*C@3 serialize]-|Callback to the serialization function.&] +[s7; [%-*C@3 stream]-|Stream.&] +[s7; [*/ Return value]-|true if data were properly stored to the stream.&] +[s3; &] +[s4;%- &] +[s5;:LoadFromFile`(Callback1``,const char`*`):%- [@(0.0.255) bool]_[* LoadFrom +File]([_^Callback1^ Callback1][@(0.0.255) <]Stream[@(0.0.255) `&>]_[*@3 serialize], +[@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 file]_`=_NULL)&] +[s2; Using [^topic`:`/`/Core`/src`/SerializationUtils`$en`-us`#`:`:Load`(Callback1``,Stream`&`)^ L +oad], data are restored from the file.&] +[s7; [%-*C@3 serialize]-|Callback to the serialization function.&] +[s7; [%-*C@3 file]-|Filename.&] +[s7; [*/ Return value]-|true indicates success.&] +[s3; &] +[s4;%- &] +[s5;:StoreToFile`(Callback1``,const char`*`):%- [@(0.0.255) bool]_[* StoreToFi +le]([_^Callback1^ Callback1][@(0.0.255) <]Stream[@(0.0.255) `&>]_[*@3 serialize], +[@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 file]_`=_NULL)&] +[s2; Using [^topic`:`/`/Core`/src`/SerializationUtils`$en`-us`#`:`:Store`(Callback1``,Stream`&`)^ S +tore] data are saved to the file.&] +[s7; [%-*C@3 serialize]-|Callback to the serialization function.&] +[s7; [%-*C@3 file]-|Filename.&] +[s7; [*/ Return value]-|true indicates success.&] +[s3; &] +[s4;%- &] +[s5;:Load`(T`&`,Stream`&`):%- [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 T][@(0.0.255) >]_ +[@(0.0.255) bool]_[* Load]([*@4 T][@(0.0.255) `&]_[*@3 x], [_^Stream^ Stream][@(0.0.255) `&]_[*@3 s +])&] +[s2; Calls [^topic`:`/`/Core`/src`/SerializationUtils`$en`-us`#`:`:Load`(Callback1``,Stream`&`)^ L +oad] with callback(`&[@3 x], `&T`::Serialize) as serialization callback. +In other words, [@3 x] is restored using its Serialize method.&] +[s7; [*C@4 T]-|Type of object to restore.&] +[s7; [%-*C@3 x]-|Reference to the object.&] +[s7; [%-*C@3 s]-|Stream.&] +[s7; [*/ Return value]-|true indicates success.&] +[s3; &] +[s4;%- &] +[s5;:Store`(T`&`,Stream`&`):%- [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 T][@(0.0.255) > +]_[@(0.0.255) bool]_[* Store]([*@4 T][@(0.0.255) `&]_[*@3 x], [_^Stream^ Stream][@(0.0.255) `&]_ +[*@3 s])&] +[s2; Calls [^topic`:`/`/Core`/src`/SerializationUtils`$en`-us`#`:`:Store`(T`&`,Stream`&`)^ S +tore] with callback(`&[@3 x], `&T`::Serialize) as serialization +callback. In other words, [@3 x] is stored using its Serialize +method.&] +[s7; [*C@4 T]-|Type of object to restore.&] +[s7; [%-*C@3 x]-|Reference to the object.&] +[s7; [%-*C@3 s]-|Stream.&] +[s7; [*/ Return value]-|true indicates success.&] +[s3; &] +[s4;%- &] +[s5;:LoadFromFile`(T`&`,const char`*`):%- [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 T][@(0.0.255) > +]_[@(0.0.255) bool]_[* LoadFromFile]([*@4 T][@(0.0.255) `&]_[*@3 x], [@(0.0.255) const]_[@(0.0.255) c +har]_`*[*@3 name]_`=_NULL)&] +[s2; Calls [^topic`:`/`/Core`/src`/SerializationUtils`$en`-us`#`:`:LoadFromFile`(Callback1``,const char`*`)^ L +oadFromFile] with callback(`&[@3 x], `&T`::Serialize) as serialization +callback. In other words, [@3 x] is restored from the file using +its Serialize method.&] +[s7; [*C@4 T]-|Type of object to restore.&] +[s7; [%-*C@3 x]-|Reference to the object.&] +[s7; [%-*C@3 name]-|Filename.&] +[s7; [*/ Return value]-|true indicates success.&] +[s3; &] +[s4;%- &] +[s5;:StoreToFile`(T`&`,const char`*`):%- [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 T][@(0.0.255) > +]_[@(0.0.255) bool]_[* StoreToFile]([*@4 T][@(0.0.255) `&]_[*@3 x], [@(0.0.255) const]_[@(0.0.255) c +har]_`*[*@3 name]_`=_NULL)&] +[s2; Calls [^topic`:`/`/Core`/src`/SerializationUtils`$en`-us`#`:`:StoreToFile`(Callback1``,const char`*`)^ S +toreToFile] with callback(`&[@3 x], `&T`::Serialize) as serialization +callback. In other words, [@3 x] is stored to the file using its +Serialize method.&] +[s7; [*C@4 T]-|Type of object to store.&] +[s7; [%-*C@3 x]-|Reference to the object.&] +[s7; [%-*C@3 name]-|Filename.&] +[s7; [*/ Return value]-|true indicates success.&] +[s3; &] +[s4;%- &] +[s5;:StoreAsString`(T`&`):%- [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 T][@(0.0.255) >]_ +[_^String^ String]_[* StoreAsString]([*@4 T][@(0.0.255) `&]_[*@3 x])&] +[s2; Stores [@3 x] using its Serialize method and StringStream.&] +[s7; [*C@4 T]-|Type of object to store.&] +[s7; [%-*C@3 x]-|Reference to the object.&] +[s7; [*/ Return value]-|String containing serialized [@3 x].&] +[s3; &] +[s4;%- &] +[s5;:LoadFromString`(T`&`,const String`&`):%- [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 T +][@(0.0.255) >]_[@(0.0.255) bool]_[* LoadFromString]([*@4 T][@(0.0.255) `&]_[*@3 x], +[@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 s])&] +[s2; Restores serialized data from the String (e.g. previously stored +by StoreAsString).&] +[s7; [*C@4 T]-|Type of object to restore.&] +[s7; [%-*C@3 x]-|Reference to object.&] +[s7; [%-*C@3 s]-|String containing serialized [@3 x].&] +[s7; [*/ Return value]-|true indicates success.&] +[s3; &] +[s0; &] +[s0; &] +[s0; &] +[s0; [*@3;4 Global modular serialization support]&] +[s0;# Modular serialization is a viable option for storing configuration +of applications consisting of many modules. It allows individual +storing/loading data for given global configuration key and also +serialization of all such data with single stream.&] +[s0;3 &] +[ {{10000t/25b/25@1 [s0;%- [* Function List]]}}&] +[s0;0%- &] +[s5;:RegisterGlobalConfig`(const char`*`):%- [@(0.0.255) void]_[* RegisterGlobalConfig]([@(0.0.255) c +onst]_[@(0.0.255) char]_`*[*@3 name])&] +[s7; Registers name as global configuration key.&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:RegisterGlobalSerialize`(const char`*`,Upp`:`:Event``):%- [@(0.0.255) v +oid]_[* RegisterGlobalSerialize]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 name], +[_^Upp`:`:Event^ Event]_[*@3 WhenSerialize])&] +[s2; Registers name as global configuration key. [%-*@3 WhenSerialize] +is directly used to serialize data, unlike other variants of +global config key, where data are stored / retrieved using LoadFromGlobal +/ StoreToGlobal.&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:RegisterGlobalConfig`(const char`*`,Upp`:`:Event`<`>`):%- [@(0.0.255) void]_ +[* RegisterGlobalConfig]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 name], +[_^Upp`:`:Event^ Event]<>_[*@3 WhenFlush])&] +[s2; Registers name as global configuration key. [%-*C@3 WhenFlush] + is called before storing of all configuration keys is performed +by SerializeGlobalConfigs `- this is useful when StoreToGlobal +has to be explicitly triggered before storing configuration.&] +[s3; &] +[s4;%- &] +[s5;:LoadFromGlobal`(T`&`,const char`*`):%- [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 T +][@(0.0.255) >]_[@(0.0.255) bool]_[* LoadFromGlobal]([*@4 T][@(0.0.255) `&]_[*@3 x], +[@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 name])&] +[s2; Loads [%-*@3 x] from global configuration key [%-*@3 name], using +Serialize method of T.&] +[s3; &] +[s4;%- &] +[s5;:StoreToGlobal`(T`&`,const char`*`):%- [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 T +][@(0.0.255) >]_[@(0.0.255) void]_[* StoreToGlobal]([*@4 T][@(0.0.255) `&]_[*@3 x], +[@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 name])&] +[s2; Stores [@3 x] to global configuration key [%-*@3 name], using Serialize +method of T.&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:LoadFromGlobal`(Upp`:`:Event``,const char`*`):%- [@(0.0.255) b +ool]_[* LoadFromGlobal]([_^Upp`:`:Event^ Event]_[*@3 serialize], +[@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 name])&] +[s2; Loads [%-*@3 x] from global configuration key [%-*@3 name], using +[%-*@3 serialize] as serialization function.&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:StoreToGlobal`(Upp`:`:Event``,const char`*`):%- [@(0.0.255) v +oid]_[* StoreToGlobal]([_^Upp`:`:Event^ Event]_[*@3 x], +[@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 name])&] +[s2; Stores [@3 x] to global configuration key [%-*@3 name], using [%-*@3 serialize] +as serialization function.&] +[s3; &] +[s4;%- &] +[s5;:SerializeGlobalConfigs`(Stream`&`):%- [@(0.0.255) void]_[* SerializeGlobalConfigs]([_^Stream^ S +tream][@(0.0.255) `&]_[*@3 s])&] +[s2; Serializes all registered global configuration data from/to +single stream.&] +[s3; &] [s0; ]] \ No newline at end of file diff --git a/uppsrc/Core/src.tpp/Size$en-us.tpp b/uppsrc/Core/src.tpp/Size_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/Size$en-us.tpp rename to uppsrc/Core/src.tpp/Size_en-us.tpp diff --git a/uppsrc/Core/src.tpp/SocketWaitEvent$en-us.tpp b/uppsrc/Core/src.tpp/SocketWaitEvent_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/SocketWaitEvent$en-us.tpp rename to uppsrc/Core/src.tpp/SocketWaitEvent_en-us.tpp diff --git a/uppsrc/Core/src.tpp/SortedAMap$en-us.tpp b/uppsrc/Core/src.tpp/SortedAMap_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/SortedAMap$en-us.tpp rename to uppsrc/Core/src.tpp/SortedAMap_en-us.tpp diff --git a/uppsrc/Core/src.tpp/SortedArrayMap$en-us.tpp b/uppsrc/Core/src.tpp/SortedArrayMap_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/SortedArrayMap$en-us.tpp rename to uppsrc/Core/src.tpp/SortedArrayMap_en-us.tpp diff --git a/uppsrc/Core/src.tpp/SortedIndex$en-us.tpp b/uppsrc/Core/src.tpp/SortedIndex_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/SortedIndex$en-us.tpp rename to uppsrc/Core/src.tpp/SortedIndex_en-us.tpp diff --git a/uppsrc/Core/src.tpp/SortedVectorMap$en-us.tpp b/uppsrc/Core/src.tpp/SortedVectorMap_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/SortedVectorMap$en-us.tpp rename to uppsrc/Core/src.tpp/SortedVectorMap_en-us.tpp diff --git a/uppsrc/Core/src.tpp/SpinLock$en-us.tpp b/uppsrc/Core/src.tpp/SpinLock_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/SpinLock$en-us.tpp rename to uppsrc/Core/src.tpp/SpinLock_en-us.tpp diff --git a/uppsrc/Core/src.tpp/SplitMerge$en-us.tpp b/uppsrc/Core/src.tpp/SplitMerge_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/SplitMerge$en-us.tpp rename to uppsrc/Core/src.tpp/SplitMerge_en-us.tpp diff --git a/uppsrc/Core/src.tpp/StreamFn$en-us.tpp b/uppsrc/Core/src.tpp/StreamFn_en-us.tpp similarity index 97% rename from uppsrc/Core/src.tpp/StreamFn$en-us.tpp rename to uppsrc/Core/src.tpp/StreamFn_en-us.tpp index f01c4a13b..ffd56d5f4 100644 --- a/uppsrc/Core/src.tpp/StreamFn$en-us.tpp +++ b/uppsrc/Core/src.tpp/StreamFn_en-us.tpp @@ -1,177 +1,177 @@ -topic "Stream utilities"; -[2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,0#27521748481378242620020725143825:desc] -[0 $$3,0#96390100711032703541132217272105:end] -[H6;0 $$4,0#05600065144404261032431302351956:begin] -[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] -[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] -[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] -[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] -[b42;2 $$9,9#13035079074754324216151401829390:normal] -[{_} -[ {{10000@(113.42.0) [s0;%% [*@2;4 Stream helpers]]}}&] -[s0;%% &] -[ {{10000t/25b/25@1 [s0; [* Function List]]}}&] -[s3; &] -[s5;:LoadStream`(Stream`&`): [_^String^ String]_[* LoadStream]([_^Stream^ Stream][@(0.0.255) `& -]_[*@3 in])&] -[s2;%% Reads the stream starting with the current position till the -end is reached and returns data in String.&] -[s7;%% [%-*C@3 in]-|Stream.&] -[s7;%% [*/ Return value]-|Content of stream.&] -[s3; &] -[s4; &] -[s5;:SaveStream`(Stream`&`,const String`&`): [@(0.0.255) bool]_[* SaveStream]([_^Stream^ St -ream][@(0.0.255) `&]_[*@3 out], [@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 dat -a])&] -[s2;%% Writes data to stream.&] -[s7;%% [%-*C@3 out]-|Output stream.&] -[s7;%% [%-*C@3 data]-|Data to write.&] -[s7;%% [*/ Return value]-|True if all data were successfully written -to the stream.&] -[s3; &] -[s4; &] -[s5;:CopyStream`(Stream`&`,Stream`&`,int64`): [_^int64^ int64]_[* CopyStream]([_^Stream^ St -ream][@(0.0.255) `&]_[*@3 dest], [_^Stream^ Stream][@(0.0.255) `&]_[*@3 src], -[_^int64^ int64]_[*@3 count] `= INT64`_MAX)&] -[s2;%% Copies at most [%-*@3 count] bytes from source to destination -stream. Returns the actual number of bytes copied. With default -[%-*@3 count] value it copies all data from [%-*@3 src] until EOF.&] -[s3; &] -[s4; &] -[s5;:CoutUTF8`(`): [@(0.0.255) void]_[* CoutUTF8]()&] -[s2;%% In Win32, setups console output for UTF8. NOP in POSIX.&] -[s3; &] -[s4; &] -[s5;:Cout`(`): [_^Stream^ Stream][@(0.0.255) `&]_[* Cout]()&] -[s2;%% Returns special output stream representing console output. -Data written to this stream are displayed as characters in console. -In Win32, encoding is converted to default console encoding, -or is not convereted at all if CoutUTF8 was called.&] -[s7;%% [*/ Return value]-|Console stream.&] -[s3; &] -[s4; &] -[s5;:Cerr`(`): [_^Stream^ Stream][@(0.0.255) `&]_[* Cerr]()&] -[s2;%% Returns special output stream representing console error output. -Data written to this stream are displayed as characters in console.&] -[s3; &] -[s4; &] -[s5;:ReadStdIn`(`): [_^String^ String]_[* ReadStdIn]()&] -[s2;%% Reads one line of input data from the console.&] -[s7;%% [*/ Return value]-|Console input.&] -[s3; &] -[s4; &] -[s5;:Upp`:`:ReadSecret`(`): [_^Upp`:`:String^ String]_[* ReadSecret]()&] -[s2;%% Reads one line of input data from the console without echoing. -This function is useful for reading passwords, secret phrases, -etc. from the console.&] -[s7;%% [*/ Return value]-|Console input.&] -[s3; &] -[s4; &] -[s5;:NilStream`(`): [_^Stream^ Stream][@(0.0.255) `&]_[* NilStream]()&] -[s2;%% Returns special stream that is always in IsEof state and simply -discards all data written to it.&] -[s7;%% [*/ Return value]-|`"Black hole`" stream.&] -[s3; &] -[s4; &] -[s5;:LoadFile`(const char`*`): [_^String^ String]_[* LoadFile]([@(0.0.255) const]_[@(0.0.255) c -har]_`*[*@3 filename])&] -[s2;%% Loads the content of specified file.&] -[s7;%% [%-*C@3 filename]-|File name.&] -[s7;%% [*/ Return value]-|Content of file.&] -[s3; &] -[s4; &] -[s5;:SaveFile`(const char`*`,const String`&`): [@(0.0.255) bool]_[* SaveFile]([@(0.0.255) c -onst]_[@(0.0.255) char]_`*[*@3 filename], [@(0.0.255) const]_[_^String^ String][@(0.0.255) `& -]_[*@3 data])&] -[s2;%% Saves data as the file (overwrites existing).&] -[s7;%% [%-*C@3 filename]-|File name.&] -[s7;%% [%-*C@3 data]-|Data to write.&] -[s7;%% [*/ Return value]-|true if file was successfully written.&] -[s3; &] -[s4; &] -[s5;:operator`%`(Stream`&`,T`&`): [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 T][@(0.0.255) > -]_[_^Stream^ Stream][@(0.0.255) `&]_[* operator%]([_^Stream^ Stream][@(0.0.255) `&]_[*@3 s], -[*@4 T][@(0.0.255) `&]_[*@3 x])&] -[s2;%% Serialization operator. Simply invokes x.Serialize(s);&] -[s7;%% [*C@4 T]-|Type of variable to be serialized.&] -[s7;%% [%-*C@3 s]-|Stream.&] -[s7;%% [%-*C@3 x]-|Variable to be serialized.&] -[s7;%% [*/ Return value]-|s for chaining.&] -[s3; &] -[s4; &] -[s5;:operator`<`<`(Stream`&`,const char`*`): [_^Stream^ Stream][@(0.0.255) `&]_[* operator< -<]([_^Stream^ Stream][@(0.0.255) `&]_[*@3 s], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 x]) -&] -[s2;%% Overload of stream insertion operator to get simple case work. -Insertion operator uses formatted stream output (Putf).&] -[s7;%% [%-*C@3 s]-|Output stream.&] -[s7;%% [%-*C@3 x]-|Data to write `- all characters are written to the -stream.&] -[s7;%% [*/ Return value]-|s for chaining.&] -[s3; &] -[s4; &] -[s5;:operator`<`<`(Stream`&`,char`*`): [_^Stream^ Stream][@(0.0.255) `&]_[* operator<<]([_^Stream^ S -tream][@(0.0.255) `&]_[*@3 s], [@(0.0.255) char]_`*[*@3 x])&] -[s2;%% Overload of stream insertion operator to get simple case work. -Insertion operator uses formatted stream output (Putf).&] -[s7;%% [%-*C@3 s]-|Output stream.&] -[s7;%% [%-*C@3 x]-|Data to write `- all characters are written to the -stream.&] -[s7;%% [*/ Return value]-|s for chaining.&] -[s3; &] -[s4; &] -[s5;:operator`<`<`(Stream`&`,const String`&`): [_^Stream^ Stream][@(0.0.255) `&]_[* operato -r<<]([_^Stream^ Stream][@(0.0.255) `&]_[*@3 s], [@(0.0.255) const]_[_^String^ String]_`&[*@3 x -])&] -[s2;%% Overload of stream insertion operator to get simple case work. -Insertion operator uses formatted stream output (Putf).&] -[s7;%% [%-*C@3 s]-|Output stream.&] -[s7;%% [%-*C@3 x]-|Data to write `- all characters are written to the -stream.&] -[s7;%% [*/ Return value]-|s for chaining.&] -[s3; &] -[s4; &] -[s5;:operator`<`<`(Stream`&`,char`): [_^Stream^ Stream][@(0.0.255) `&]_[* operator<<]([_^Stream^ S -tream][@(0.0.255) `&]_[*@3 s], [@(0.0.255) char]_[*@3 x])&] -[s2;%% Overload of stream insertion operator to get simple case work. -Insertion operator uses formatted stream output (Putf).&] -[s7;%% [%-*C@3 s]-|Output stream.&] -[s7;%% [%-*C@3 x]-|Data to write `- it is written as single character.&] -[s7;%% [*/ Return value]-|s for chaining.&] -[s3; &] -[s4; &] -[s5;:operator`<`<`(Stream`&`,const void`*`): [_^Stream^ Stream][@(0.0.255) `&]_[* operator< -<]([_^Stream^ Stream][@(0.0.255) `&]_[*@3 s], [@(0.0.255) const]_[@(0.0.255) void]_`*[*@3 x]) -&] -[s2;%% Overload of stream insertion operator to get simple case work. -Insertion operator uses formatted stream output (Putf).&] -[s7;%% [%-*C@3 s]-|Output stream.&] -[s7;%% [%-*C@3 x]-|Data to write `- pointer is formatted as hexadecimal -value.&] -[s7;%% [*/ Return value]-|s for chaining.&] -[s3; &] -[s4; &] -[s5;:operator`<`<`(Stream`&`,void`*`): [_^Stream^ Stream][@(0.0.255) `&]_[* operator<<]([_^Stream^ S -tream][@(0.0.255) `&]_[*@3 s], [@(0.0.255) void]_`*[*@3 x])&] -[s2;%% Overload of stream insertion operator to get simple case work. -Insertion operator uses formatted stream output (Putf).&] -[s7;%% [%-*C@3 s]-|Output stream.&] -[s7;%% [%-*C@3 x]-|Data to write `- pointer is formatted as hexadecimal -value.&] -[s7;%% [*/ Return value]-|s for chaining.&] -[s3; &] -[s4; &] -[s5;:operator`<`<`(Stream`&`,const T`&`): [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 T][@(0.0.255) > -]_[_^Stream^ Stream][@(0.0.255) `&]_[* operator<<]([_^Stream^ Stream][@(0.0.255) `&]_[*@3 s], - [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[*@3 x])&] -[s2;%% Global stream insertion operator. Calls AsString for x and -stores the result to the stream. Global AsString version in turn -calls ToString method of x.&] -[s7;%% [*C@4 T]-|Type of data to write to the stream.&] -[s7;%% [%-*C@3 s]-|Output stream.&] -[s7;%% [%-*C@3 x]-|Data to write.&] -[s7;%% [*/ Return value]-|s for chaining.&] -[s3;%% &] +topic "Stream utilities"; +[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,0#27521748481378242620020725143825:desc] +[0 $$3,0#96390100711032703541132217272105:end] +[H6;0 $$4,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] +[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] +[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] +[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] +[b42;2 $$9,9#13035079074754324216151401829390:normal] +[{_} +[ {{10000@(113.42.0) [s0;%% [*@2;4 Stream helpers]]}}&] +[s0;%% &] +[ {{10000t/25b/25@1 [s0; [* Function List]]}}&] +[s3; &] +[s5;:LoadStream`(Stream`&`): [_^String^ String]_[* LoadStream]([_^Stream^ Stream][@(0.0.255) `& +]_[*@3 in])&] +[s2;%% Reads the stream starting with the current position till the +end is reached and returns data in String.&] +[s7;%% [%-*C@3 in]-|Stream.&] +[s7;%% [*/ Return value]-|Content of stream.&] +[s3; &] +[s4; &] +[s5;:SaveStream`(Stream`&`,const String`&`): [@(0.0.255) bool]_[* SaveStream]([_^Stream^ St +ream][@(0.0.255) `&]_[*@3 out], [@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 dat +a])&] +[s2;%% Writes data to stream.&] +[s7;%% [%-*C@3 out]-|Output stream.&] +[s7;%% [%-*C@3 data]-|Data to write.&] +[s7;%% [*/ Return value]-|True if all data were successfully written +to the stream.&] +[s3; &] +[s4; &] +[s5;:CopyStream`(Stream`&`,Stream`&`,int64`): [_^int64^ int64]_[* CopyStream]([_^Stream^ St +ream][@(0.0.255) `&]_[*@3 dest], [_^Stream^ Stream][@(0.0.255) `&]_[*@3 src], +[_^int64^ int64]_[*@3 count] `= INT64`_MAX)&] +[s2;%% Copies at most [%-*@3 count] bytes from source to destination +stream. Returns the actual number of bytes copied. With default +[%-*@3 count] value it copies all data from [%-*@3 src] until EOF.&] +[s3; &] +[s4; &] +[s5;:CoutUTF8`(`): [@(0.0.255) void]_[* CoutUTF8]()&] +[s2;%% In Win32, setups console output for UTF8. NOP in POSIX.&] +[s3; &] +[s4; &] +[s5;:Cout`(`): [_^Stream^ Stream][@(0.0.255) `&]_[* Cout]()&] +[s2;%% Returns special output stream representing console output. +Data written to this stream are displayed as characters in console. +In Win32, encoding is converted to default console encoding, +or is not convereted at all if CoutUTF8 was called.&] +[s7;%% [*/ Return value]-|Console stream.&] +[s3; &] +[s4; &] +[s5;:Cerr`(`): [_^Stream^ Stream][@(0.0.255) `&]_[* Cerr]()&] +[s2;%% Returns special output stream representing console error output. +Data written to this stream are displayed as characters in console.&] +[s3; &] +[s4; &] +[s5;:ReadStdIn`(`): [_^String^ String]_[* ReadStdIn]()&] +[s2;%% Reads one line of input data from the console.&] +[s7;%% [*/ Return value]-|Console input.&] +[s3; &] +[s4; &] +[s5;:Upp`:`:ReadSecret`(`): [_^Upp`:`:String^ String]_[* ReadSecret]()&] +[s2;%% Reads one line of input data from the console without echoing. +This function is useful for reading passwords, secret phrases, +etc. from the console.&] +[s7;%% [*/ Return value]-|Console input.&] +[s3; &] +[s4; &] +[s5;:NilStream`(`): [_^Stream^ Stream][@(0.0.255) `&]_[* NilStream]()&] +[s2;%% Returns special stream that is always in IsEof state and simply +discards all data written to it.&] +[s7;%% [*/ Return value]-|`"Black hole`" stream.&] +[s3; &] +[s4; &] +[s5;:LoadFile`(const char`*`): [_^String^ String]_[* LoadFile]([@(0.0.255) const]_[@(0.0.255) c +har]_`*[*@3 filename])&] +[s2;%% Loads the content of specified file.&] +[s7;%% [%-*C@3 filename]-|File name.&] +[s7;%% [*/ Return value]-|Content of file.&] +[s3; &] +[s4; &] +[s5;:SaveFile`(const char`*`,const String`&`): [@(0.0.255) bool]_[* SaveFile]([@(0.0.255) c +onst]_[@(0.0.255) char]_`*[*@3 filename], [@(0.0.255) const]_[_^String^ String][@(0.0.255) `& +]_[*@3 data])&] +[s2;%% Saves data as the file (overwrites existing).&] +[s7;%% [%-*C@3 filename]-|File name.&] +[s7;%% [%-*C@3 data]-|Data to write.&] +[s7;%% [*/ Return value]-|true if file was successfully written.&] +[s3; &] +[s4; &] +[s5;:operator`%`(Stream`&`,T`&`): [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 T][@(0.0.255) > +]_[_^Stream^ Stream][@(0.0.255) `&]_[* operator%]([_^Stream^ Stream][@(0.0.255) `&]_[*@3 s], +[*@4 T][@(0.0.255) `&]_[*@3 x])&] +[s2;%% Serialization operator. Simply invokes x.Serialize(s);&] +[s7;%% [*C@4 T]-|Type of variable to be serialized.&] +[s7;%% [%-*C@3 s]-|Stream.&] +[s7;%% [%-*C@3 x]-|Variable to be serialized.&] +[s7;%% [*/ Return value]-|s for chaining.&] +[s3; &] +[s4; &] +[s5;:operator`<`<`(Stream`&`,const char`*`): [_^Stream^ Stream][@(0.0.255) `&]_[* operator< +<]([_^Stream^ Stream][@(0.0.255) `&]_[*@3 s], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 x]) +&] +[s2;%% Overload of stream insertion operator to get simple case work. +Insertion operator uses formatted stream output (Putf).&] +[s7;%% [%-*C@3 s]-|Output stream.&] +[s7;%% [%-*C@3 x]-|Data to write `- all characters are written to the +stream.&] +[s7;%% [*/ Return value]-|s for chaining.&] +[s3; &] +[s4; &] +[s5;:operator`<`<`(Stream`&`,char`*`): [_^Stream^ Stream][@(0.0.255) `&]_[* operator<<]([_^Stream^ S +tream][@(0.0.255) `&]_[*@3 s], [@(0.0.255) char]_`*[*@3 x])&] +[s2;%% Overload of stream insertion operator to get simple case work. +Insertion operator uses formatted stream output (Putf).&] +[s7;%% [%-*C@3 s]-|Output stream.&] +[s7;%% [%-*C@3 x]-|Data to write `- all characters are written to the +stream.&] +[s7;%% [*/ Return value]-|s for chaining.&] +[s3; &] +[s4; &] +[s5;:operator`<`<`(Stream`&`,const String`&`): [_^Stream^ Stream][@(0.0.255) `&]_[* operato +r<<]([_^Stream^ Stream][@(0.0.255) `&]_[*@3 s], [@(0.0.255) const]_[_^String^ String]_`&[*@3 x +])&] +[s2;%% Overload of stream insertion operator to get simple case work. +Insertion operator uses formatted stream output (Putf).&] +[s7;%% [%-*C@3 s]-|Output stream.&] +[s7;%% [%-*C@3 x]-|Data to write `- all characters are written to the +stream.&] +[s7;%% [*/ Return value]-|s for chaining.&] +[s3; &] +[s4; &] +[s5;:operator`<`<`(Stream`&`,char`): [_^Stream^ Stream][@(0.0.255) `&]_[* operator<<]([_^Stream^ S +tream][@(0.0.255) `&]_[*@3 s], [@(0.0.255) char]_[*@3 x])&] +[s2;%% Overload of stream insertion operator to get simple case work. +Insertion operator uses formatted stream output (Putf).&] +[s7;%% [%-*C@3 s]-|Output stream.&] +[s7;%% [%-*C@3 x]-|Data to write `- it is written as single character.&] +[s7;%% [*/ Return value]-|s for chaining.&] +[s3; &] +[s4; &] +[s5;:operator`<`<`(Stream`&`,const void`*`): [_^Stream^ Stream][@(0.0.255) `&]_[* operator< +<]([_^Stream^ Stream][@(0.0.255) `&]_[*@3 s], [@(0.0.255) const]_[@(0.0.255) void]_`*[*@3 x]) +&] +[s2;%% Overload of stream insertion operator to get simple case work. +Insertion operator uses formatted stream output (Putf).&] +[s7;%% [%-*C@3 s]-|Output stream.&] +[s7;%% [%-*C@3 x]-|Data to write `- pointer is formatted as hexadecimal +value.&] +[s7;%% [*/ Return value]-|s for chaining.&] +[s3; &] +[s4; &] +[s5;:operator`<`<`(Stream`&`,void`*`): [_^Stream^ Stream][@(0.0.255) `&]_[* operator<<]([_^Stream^ S +tream][@(0.0.255) `&]_[*@3 s], [@(0.0.255) void]_`*[*@3 x])&] +[s2;%% Overload of stream insertion operator to get simple case work. +Insertion operator uses formatted stream output (Putf).&] +[s7;%% [%-*C@3 s]-|Output stream.&] +[s7;%% [%-*C@3 x]-|Data to write `- pointer is formatted as hexadecimal +value.&] +[s7;%% [*/ Return value]-|s for chaining.&] +[s3; &] +[s4; &] +[s5;:operator`<`<`(Stream`&`,const T`&`): [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 T][@(0.0.255) > +]_[_^Stream^ Stream][@(0.0.255) `&]_[* operator<<]([_^Stream^ Stream][@(0.0.255) `&]_[*@3 s], + [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[*@3 x])&] +[s2;%% Global stream insertion operator. Calls AsString for x and +stores the result to the stream. Global AsString version in turn +calls ToString method of x.&] +[s7;%% [*C@4 T]-|Type of data to write to the stream.&] +[s7;%% [%-*C@3 s]-|Output stream.&] +[s7;%% [%-*C@3 x]-|Data to write.&] +[s7;%% [*/ Return value]-|s for chaining.&] +[s3;%% &] [s0;%% ]] \ No newline at end of file diff --git a/uppsrc/Core/src.tpp/Stream$en-us.tpp b/uppsrc/Core/src.tpp/Stream_en-us.tpp similarity index 97% rename from uppsrc/Core/src.tpp/Stream$en-us.tpp rename to uppsrc/Core/src.tpp/Stream_en-us.tpp index 17aa54346..8b836c1c1 100644 --- a/uppsrc/Core/src.tpp/Stream$en-us.tpp +++ b/uppsrc/Core/src.tpp/Stream_en-us.tpp @@ -1,1497 +1,1497 @@ -topic "Streams"; -[2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,0#27521748481378242620020725143825:desc] -[0 $$3,0#96390100711032703541132217272105:end] -[H6;0 $$4,0#05600065144404261032431302351956:begin] -[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] -[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] -[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] -[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] -[b42;2 $$9,9#13035079074754324216151401829390:normal] -[{_}%EN-US -[ {{10000@(113.42.0) [s0; [*@7;4 Stream]]}}&] -[s3; &] -[s1;:Stream`:`:class:%- [@(0.0.255)3 class][3 _][*3 Stream]&] -[s9; Stream is the base class of all U`+`+ streams.&] -[s0; U`+`+ streams generally serve in two different roles:&] -[s0;i150;O0; As basic raw binary streams, which includes text input -and output.&] -[s0;i150;O0; As binary serialization target/source. This mainly needs -to store flag indicating serialization direction.&] -[s0; &] -[s0; While Stream offers a basic interface for stream based operations, -more specific operations are handled by one of the following -classes derived from Stream:&] -[s0; &] -[ {{993:993:993:993:995:996:987:1013:1016:1021f0;g33;GNl17/25r17/4t17/0b17/0@7-2 [s0; [^topic`:`/`/Core`/src`/Stream`$en`-us`#`:`:Stream`:`:class Stream^1 Stream]] -::l0/25r0/25t0/15b0/15@2-1 [s0;%- ] -:: [s0;%- ] -::r/4t/0b/0 [s0; ] -:: [s0; ] -:: [s0; ] -:: [s0; ] -:: [s0; ] -:: [s0; ] -:: [s0; ] -:: [s0; ] -::l17/25r17/4t17/0b17/0@7-2 [s0; [^topic`:`/`/Core`/src`/Stream`$en`-us`#`:`:StringStream`:`:class StringStream^1 S -tringStream]] -::l0/25r0/25t0/15b0/15@2-1 [s0;%- ] -:: [s0;%- ] -::r/4t/0b/0 [s0; ] -:: [s0; ] -:: [s0; ] -:: [s0; ] -:: [s0; ] -:: [s0; ] -:: [s0; ] -::l17/25r17/4t17/0b17/0@7-2 [s0; [^topic`:`/`/Core`/src`/Stream`$en`-us`#`:`:MemStream`:`:class MemStream^1 MemStre -am]] -::l0/25r0/25t0/15b0/15@2-1 [s0;%- ] -:: [s0;%- ] -::r/4t/0b/0 [s0; ] -:: [s0; ] -:: [s0; ] -:: [s0; ] -:: [s0; ] -:: [s0; ] -:: [s0; ] -:: [s0; ] -::l17/25r17/4t17/0b17/0@7-2 [s0; [^topic`:`/`/Core`/src`/Stream`$en`-us`#`:`:MemReadStream`:`:class MemReadStream^1 M -emReadStream]] -::l0/25r0/25t0/15b0/15@2-1 [s0;%- ] -:: [s0;%- ] -::r/4t/0b/0 [s0; ] -:: [s0; ] -:: [s0; ] -:: [s0; ] -:: [s0; ] -:: [s0; ] -::l17/25r17/4t17/0b17/0@7-2 [s0; [^topic`:`/`/Core`/src`/Stream`$en`-us`#`:`:BufferStream`:`:class BufferStream^1 B -ufferStream]] -::l0/25r0/25t0/15b0/15@2-1 [s0;%- ] -:: [s0;%- ] -::r/4t/0b/0 [s0; ] -:: [s0; ] -:: [s0; ] -:: [s0; ] -:: [s0; ] -:: [s0; ] -:: [s0; ] -:: [s0; ] -::l17/25r17/4t17/0b17/0@7-2 [s0; [^topic`:`/`/Core`/src`/Stream`$en`-us`#`:`:BlockStream`:`:class BlockStream^1 Blo -ckStream]] -::l0/25r0/25t0/15b0/15@2-1 [s0;%- ] -:: [s0;%- ] -::r/4t/0b/0 [s0; ] -:: [s0; ] -:: [s0; ] -:: [s0; ] -:: [s0; ] -:: [s0; ] -:: [s0; ] -:: [s0; ] -::l17/25r17/4t17/0b17/0@7-2 [s0; [^topic`:`/`/Core`/src`/Stream`$en`-us`#`:`:FileStream`:`:class FileStream^1 FileS -tream]] -::l0/25r0/25t0/15b0/15@2-1 [s0;%- ] -:: [s0;%- ] -::r/4t/0b/0 [s0; ] -:: [s0; ] -:: [s0; ] -:: [s0; ] -:: [s0; ] -:: [s0; ] -:: [s0; ] -:: [s0; ] -::l17/25r17/4t17/0b17/0@7-2 [s0; [^topic`:`/`/Core`/src`/Stream`$en`-us`#`:`:FileIn`:`:class FileIn^1 FileIn]] -::l0/25r0/25t0/15b0/15@2-1 [s0;%- ] -:: [s0;%- ] -::r/4t/0b/0 [s0; ] -:: [s0; ] -:: [s0; ] -:: [s0; ] -:: [s0; ] -:: [s0; ] -:: [s0; ] -::l17/25r17/4t17/0b17/0@7-2 [s0; [^topic`:`/`/Core`/src`/Stream`$en`-us`#`:`:FileOut`:`:class FileOut^1 FileOut]] -::l0/25r0/25t0/15b0/15@2-1 [s0;%- ] -:: [s0;%- ] -::r/4t/0b/0 [s0; ] -:: [s0; ] -:: [s0; ] -:: [s0; ] -:: [s0; ] -:: [s0; ] -:: [s0; ] -::l17/25r17/4t17/0b17/0@7-2 [s0; [^topic`:`/`/Core`/src`/Stream`$en`-us`#`:`:FileAppend`:`:class FileAppend^1 FileA -ppend]] -::l0/25r0/25t0/15b0/15@2-1 [s0;%- ] -:: [s0;%- ] -::r/4t/0b/0 [s0; ] -:: [s0; ] -:: [s0; ] -:: [s0; ] -:: [s0; ] -::l17/25r17/4t17/0b17/0@7-2 [s0; [^topic`:`/`/Core`/src`/Stream`$en`-us`#`:`:SizeStream`:`:class SizeStream^1 SizeS -tream]] -::l0/25r0/25t0/15b0/15@2-1 [s0;%- ] -:: [s0;%- ] -::r/4t/0b/0 [s0; ] -:: [s0; ] -:: [s0; ] -:: [s0; ] -:: [s0; ] -:: [s0; ] -:: [s0; ] -::l17/25r17/4t17/0b17/0@7-2 [s0; [^topic`:`/`/Core`/src`/Stream`$en`-us`#`:`:CompareStream`:`:class CompareStream^1 C -ompareStream]] -::l0/25r0/25t0/15b0/15@2-1 [s0;%- ] -:: [s0;%- ] -::r/4t/0b/0 [s0; ] -:: [s0; ] -:: [s0; ] -:: [s0; ] -:: [s0; ]}}&] -[s3; &] -[s0; &] -[s0; In order to achieve optimal performance of buffered stream operations, -the most frequent operations have a little bit more complicated -implementation that demands proper definition of virtual methods, -as they must correctly adjust some protected data members of -Stream. Therefore the implementation of some method can be considered -a part of interface definition:&] -[s0; &] -[s0; [*C@5 void Stream`::Put(int c)]&] -[s0; [*C@5 `{]&] -[s0; [*C@5 -|if(ptr < wrlim)]&] -[s0; [*C@5 -|-|`*ptr`+`+ `= c;]&] -[s0; [*C@5 -|else]&] -[s0; [*C@5 -|-|`_Put(c);]&] -[s0; [*C@5 `}]&] -[s0;*C@5 &] -[s0; [*C@5 int Stream`::Term()]&] -[s0; [*C@5 `{]&] -[s0; [*C@5 -|return ptr < rdlim ? `*ptr : `_Term();]&] -[s0; [*C@5 `}]&] -[s0;*C@5 &] -[s0; [*C@5 int Stream`::Get()]&] -[s0; [*C@5 `{]&] -[s0; [*C@5 -|return ptr < rdlim ? `*ptr`+`+ : `_Get();]&] -[s0; [*C@5 `}]&] -[s0;*C@5 &] -[s0; [*C@5 int64 Stream`::GetPos() const]&] -[s0; [*C@5 `{]&] -[s0; [*C@5 -|return dword(ptr `- buffer) `+ pos;]&] -[s0; [*C@5 `}]&] -[s0; &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0; [* Protected members]]}}&] -[s3;%- &] -[s5;:Stream`:`:pos:%- [_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:int64`:`:typedef^ i -nt64]_[* pos]&] -[s6;%- Protected.&] -[s2; Position of buffer in the stream.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:buffer:%- [_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:byte`:`:typedef^ b -yte]_`*[* buffer]&] -[s6; Protected.&] -[s2; Pointer to beginning of buffer.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:ptr:%- [_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:byte`:`:typedef^ b -yte]_`*[* ptr]&] -[s6; Protected.&] -[s2; Pointer to current input/output byte.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:rdlim:%- [_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:byte`:`:typedef^ b -yte]_`*[* rdlim]&] -[s6; Protected.&] -[s2; Read limit. [* Get] method returns values from buffer as long -as [* ptr < rdlim].&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:wrlim:%- [_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:byte`:`:typedef^ b -yte]_`*[* wrlim]&] -[s6; Protected.&] -[s2; Write limit. [* Put] method returns values from buffer as long -as [* ptr < wrlim].&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:`_Put`(int`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* `_Put]([@(0.0.255) i -nt]_[*@3 w])&] -[s2; Called by [* Put] method in case that output byte cannot be stored -into buffer ([* ptr >`= wrlim]). If Stream wants to use buffering, -this method should adjust [* buffer], [* ptr] and [* wrlim].&] -[s7; [%-*C@3 w]-|Byte to store.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:`_Term`(`):%- [@(0.0.255) virtual] [@(0.0.255) int]_[* `_Term]()&] -[s2; Called by [* Term] method in case that input byte is not in buffer -([* ptr >`= rdlim]). If Stream wants to use buffering, this method -should adjust [* buffer], [* ptr] and [* rdlim].&] -[s7; [*/ Return value]-|Value at current position in the stream. Current -position is not advanced.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:`_Get`(`):%- [@(0.0.255) virtual] [@(0.0.255) int]_[* `_Get]()&] -[s2; Called by [* Get] method in case that input byte is not in buffer -([* ptr >`= rdlim]). If Stream wants to use buffering, this method -should adjust [* buffer], [* ptr] and [* rdlim].&] -[s7; [*/ Return value]-|Value read from the stream.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:`_Put`(const void`*`,dword`):%- [@(0.0.255) virtual] -[@(0.0.255) void]_[* `_Put]([@(0.0.255) const]_[@(0.0.255) void]_`*[*@3 data], -[_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:dword`:`:typedef^ dword -]_[*@3 size])&] -[s2; Directly called by [* Put] method. Writes a block of binary data.&] -[s7; [%-*C@3 data]-|Pointer to data.&] -[s7; [%-*C@3 size]-|Size.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:`_Get`(void`*`,dword`):%- [@(0.0.255) virtual] [_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:dword`:`:typedef^ d -word]_[* `_Get]([@(0.0.255) void]_`*[*@3 data], [_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:dword`:`:typedef^ d -word]_[*@3 size])&] -[s2; Directly called by [* Get] method. &] -[s7; [%-*C@3 data]-|&] -[s7; [%-*C@3 size]-|&] -[s7; [*/ Return value]-|&] -[s3; &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] -[s3; &] -[s5;:Stream`:`:Stream`(`):%- [* Stream]()&] -[s2; Default constructor. Sets stream into Loading serialization -mode and zero level indentation. All protected variables are -set to 0 / NULL.&] -[s3;%- &] -[s4;%- &] -[s5;:Stream`:`:Stream`(const Stream`&`):%- [* Stream]([@(0.0.255) const]_[* Stream][@(0.0.255) `& -]_[*@3 s])&] -[s2; Default copy constructor.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:`~Stream`(`):%- [@(0.0.255) `~][* Stream]()&] -[s2; Default destructor.&] -[s3;%- &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0; [* Public Member List: Raw Operations]]}}&] -[s3;%- &] -[s5;:Stream`:`:Seek`(int64`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Seek]([_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:int64`:`:typedef^ i -nt64]_[*@3 pos])&] -[s2; Seeks to given position.&] -[s7; [%-*C@3 pos]-|Position.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:GetSize`(`)const:%- [@(0.0.255) virtual] [_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:int64`:`:typedef^ i -nt64]_[* GetSize]()_[@(0.0.255) const]&] -[s7; [* Return value]-|Size of stream.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:SetSize`(int64`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* SetSize]([_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:int64`:`:typedef^ i -nt64]_[*@3 size])&] -[s2; Alters the size of the stream.&] -[s7; [%-*C@3 size]-|New size.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:Flush`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Flush]()&] -[s2; If stream has any internal buffers (like [* FileStream]), writes -these buffers to OS.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:Close`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Close]()&] -[s2; Closes stream.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:IsOpen`(`)const:%- [@(0.0.255) virtual] [@(0.0.255) bool]_[* IsOpen]()_[@(0.0.255) c -onst]_`=_[@3 0]&] -[s7; [* Return value]-|true if stream is open.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:IsError`(`)const:%- [@(0.0.255) bool]_[* IsError]()_[@(0.0.255) const]&] -[s7; [* Return value]-|true if error was encountered during stream operations -since opening it or last [* ClearError] call `- error code is non`-zero.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:IsOK`(`)const:%- [@(0.0.255) bool]_[* IsOK]()_[@(0.0.255) const]&] -[s7; [*/ Return value]-|!IsError().&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:SetError`(int`):%- [@(0.0.255) void]_[* SetError]([@(0.0.255) int]_[*@3 c]_`=_ -[@3 0])&] -[s2; Sets stream error code.&] -[s7; [%-*C@3 c]-|Error code.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:SetLastError`(`):%- [@(0.0.255) void]_[* SetLastError]()&] -[s2; Sets stream error to last OS`-specific error (obtained e.g. -by GetLastError call in Win32 or in errno in Posix). This error -can be interpreted by GetErrorMessage function.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:GetError`(`)const:%- [@(0.0.255) int]_[* GetError]()_[@(0.0.255) const]&] -[s2; Returns current error`-code. Zero indicates no error.&] -[s3;%- &] -[s4;%- &] -[s5;:Upp`:`:Stream`:`:GetErrorText`(`)const:%- [_^Upp`:`:String^ String]_[* GetErrorText]( -)_[@(0.0.255) const]&] -[s2; Returns the text description of the last error.&] -[s3;%- &] -[s4;%- &] -[s5;:Stream`:`:ClearError`(`):%- [@(0.0.255) void]_[* ClearError]()&] -[s2; Clears error code.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:GetPos`(`)const:%- [_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:int64`:`:typedef^ i -nt64]_[* GetPos]()_[@(0.0.255) const]&] -[s7; [*/ Return value]-|Current position in the stream.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:GetLeft`(`)const:%- [_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:int64`:`:typedef^ i -nt64]_[* GetLeft]()_[@(0.0.255) const]&] -[s7; [*/ Return value]-|Bytes between current position and the end of -stream `- equivalent to GetSize() `- GetPos().&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:SeekEnd`(int64`):%- [@(0.0.255) void]_[* SeekEnd]([_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:int64`:`:typedef^ i -nt64]_[*@3 rel]_`=_[@3 0])&] -[s2; Sets current position in the stream relative to the end of stream. -Same as Seek(GetSize() `+ rel).&] -[s7; [%-*C@3 rel]-|Position `- should be less or equal to zero.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:SeekCur`(int64`):%- [@(0.0.255) void]_[* SeekCur]([_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:int64`:`:typedef^ i -nt64]_[*@3 rel])&] -[s2; Sets current position in the stream relative to the current -position. Same as Seek(GetPos() `+ rel).&] -[s7; [%-*C@3 rel]-|Relative offset.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:IsEof`(`):%- [@(0.0.255) bool]_[* IsEof]()&] -[s2; There are no more byte to be read from the stream. Is also true -in case of error.&] -[s3;%- &] -[s4;%- &] -[s5;:Stream`:`:Put`(int`):%- [@(0.0.255) void]_[* Put]([@(0.0.255) int]_[*@3 c])&] -[s2; Puts single byte into the output stream.&] -[s7; [%-*C@3 c]-|Byte.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:Term`(`):%- [@(0.0.255) int]_[* Term]()&] -[s5;:Stream`:`:Peek`(`):%- [@(0.0.255) int]_[* Peek]()&] -[s2; Peeks byte from input stream not advancing current position. -If there are no more bytes in input stream or error occurred, -negative value is returned.&] -[s3;%- &] -[s4;%- &] -[s5;:Stream`:`:Get`(`):%- [@(0.0.255) int]_[* Get]()&] -[s2; Reads single byte from input stream, advancing current position. -If there are no more bytes in input stream or error occurred, -negative value is returned.&] -[s7; [*/ Return value]-|Byte read from input stream.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:PeekPtr`(int`):%- [@(0.0.255) const]_[_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:byte`:`:typedef^ b -yte]_`*[* PeekPtr]([@(0.0.255) int]_[*@3 size]_`=_[@3 1])&] -[s2; This is a special optimization method; it might return a pointer -to data of [%-*@3 size] bytes at current position in the stream, -but it is allowed to return NULL `- in that case you need to -use Get to load data. PeekPtr does not move the position forward, -you need to use some of Seek methods to do that.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:GetPtr`(int`):%- [@(0.0.255) const]_[_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:byte`:`:typedef^ b -yte]_`*[* GetPtr]([@(0.0.255) int]_[*@3 size]_`=_[@3 1])&] -[s2; This is a special optimization method; it might return a pointer -to data of [%-*@3 size] bytes at current position in the stream, -but it is allowed to return NULL `- in that case you need to -use Get to load data. Unlike PeekPtr, it advances stream by [%-*@3 size].&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:PutPtr`(int`):%- [_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:byte`:`:typedef^ b -yte]_`*[* PutPtr]([@(0.0.255) int]_[*@3 size]_`=_[@3 1])&] -[s2; This is a special optimization method; it might return a writable -pointer where you can write output data of [%-*@3 size] bytes, -but it is allowed to return NULL `- in that case you need to -output data using Put. Advances stream by [%-*@3 size].&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:GetSzPtr`(int`&`):%- [@(0.0.255) const]_[_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:byte`:`:typedef^ b -yte]_`*[* GetSzPtr]([@(0.0.255) int`&]_[*@3 size])&] -[s2; This is a special optimization method, it returns a pointer -to data at current position of stream, sets [%-*@3 size] to the -maximal possible amount of bytes that can be read from this pointer -and advances stream by this size. [%-*@3 size] can be set to zero, -in that case stream has to be read by another means (e.g. Get).&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:Put`(const void`*`,int`):%- [@(0.0.255) void]_[* Put]([@(0.0.255) const]_[@(0.0.255) v -oid]_`*[*@3 data], [@(0.0.255) int]_[*@3 size])&] -[s2; Writes a block of raw binary data to the output stream.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:Get`(void`*`,int`):%- [@(0.0.255) int]_[* Get]([@(0.0.255) void]_`*[*@3 data], - [@(0.0.255) int]_[*@3 size])&] -[s2; Reads at most [%-*@3 size] bytes from the stream to [%-*@3 data]. -Returns the number of bytes actually read.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:Get`(int`):%- [_^String^ String]_[* Get]([@(0.0.255) int]_[*@3 size])&] -[s2; Reads at most [%-*@3 size] bytes from the input stream and returns -result as String.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:GetAll`(int`):%- [_^String^ String]_[* GetAll]([@(0.0.255) int]_[*@3 size])&] -[s2; Reads exactly [%-*@3 size] bytes from the input stream and returns -result as String. If there is not enough bytes left, returns -String`::GetVoid(). Note that is [%-*@3 size] is large (currently -> 4MB), function reads result in chunks in order to avoid problems -with corrupted streams, e.g. situation where the [%-*@3 size] is -obtained from the stream, is corrupted and too big and allocating -that much memory would cause out`-of`-memory situation.&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:Stream`:`:Skip`(int`):%- [@(0.0.255) int]_[* Skip]([@(0.0.255) int]_[*@3 size])&] -[s2; Skips [%-*@3 size] bytes in input Stream. This is similar to SeekCur([%-*@3 size]), -however it works with Streams that do not support seeking. Returns -a number of bytes actually skipped (can be less than required -because of EOF).&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:GetAll`(void`*`,int`):%- [@(0.0.255) bool]_[* GetAll]([@(0.0.255) void]_`*[*@3 d -ata], [@(0.0.255) int]_[*@3 size])&] -[s2; Reads [%-*@3 size] bytes from the stream to memory at [%-*@3 data]. -If there is not enough data in the stream, LoadError is invoked -(that in turn might throw an exception). Returns true if required -number of bytes was read.&] -[s3;%- &] -[s4;%- &] -[s5;:Stream`:`:Put64`(const void`*`,int64`):%- [@(0.0.255) void]_[* Put64]([@(0.0.255) cons -t]_[@(0.0.255) void]_`*[*@3 data], [_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:int64`:`:typedef^ i -nt64]_[*@3 size])&] -[s2; Writes a block of raw binary data to the output stream, unlike -regular Put, block size can be greater than 2GB, if CPU is 64 -bit.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:Get64`(void`*`,int64`):%- [_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:int64`:`:typedef^ i -nt64]_[* Get64]([@(0.0.255) void]_`*[*@3 data], [_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:int64`:`:typedef^ i -nt64]_[*@3 size])&] -[s2; Reads at most [%-*@3 size] bytes from the stream to [%-*@3 data]. -Returns the number of bytes actually read. Unlike regular Get, -block size can be greater than 2GB, if CPU is 64 bit.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:GetAll64`(void`*`,int64`):%- [@(0.0.255) bool]_[* GetAll64]([@(0.0.255) void -]_`*[*@3 data], [_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:int64`:`:typedef^ i -nt64]_[*@3 size])&] -[s2; Reads [%-*@3 size] bytes from the stream to memory at [%-*@3 data]. -If there is not enough data in the stream, LoadError is invoked -(that in turn might throw an exception). Returns true if required -number of bytes was read. Unlike regular Get, block size can -be greater than 2GB, if CPU is 64 bit.&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:Stream`:`:Get`(Upp`:`:Huge`&`,size`_t`):%- [_^size`_t^ size`_t]_[* Get]([_^Upp`:`:Huge^ H -uge][@(0.0.255) `&]_[*@3 h], [_^size`_t^ size`_t]_[*@3 size])&] -[s2; Reads data into [%-*@3 h], returns the size read.&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:Stream`:`:GetAll`(Upp`:`:Huge`&`,size`_t`):%- [@(0.0.255) bool]_[* GetAll]([_^Upp`:`:Huge^ H -uge][@(0.0.255) `&]_[*@3 h], [_^size`_t^ size`_t]_[*@3 size])&] -[s2; Reads data into [%-*@3 h], returns the size read. If there is -not enough data in the stream, LoadError is invoked (that in -turn might throw an exception).&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:LoadThrowing`(`):%- [@(0.0.255) void]_[* LoadThrowing]()&] -[s2; Sets stream into the mode that throws LoadingError exception -when LoadError is invoked. This mode is typical for serialization -usage of stream.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:LoadError`(`):%- [@(0.0.255) void]_[* LoadError]()&] -[s2; Performs SetError(ERROR`_LOADING`_FAILED). If Stream set to -the LoadThrowing mode (by LoadThrowing() method), LoadingError -exception is thrown.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:Get8`(`):%- [@(0.0.255) int]_[* Get8]()&] -[s2; Reads a single byte from the stream. If there is not enough -data in the stream, LoadError is invoked (that in turn might -throw an exception) `- this is the difference from Get() method.&] -[s7; [*/ Return value]-|Byte from stream or `-1.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:Get16`(`):%- [@(0.0.255) int]_[* Get16]()&] -[s2; Reads 16`-bit value from the stream in platform specific format -(either little`-endian or big`-endian). If there is not enough -data in the stream, LoadError is invoked (that in turn might -throw an exception) and `-1 returned.&] -[s7; [*/ Return value]-|16`-bit value.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:Get32`(`):%- [@(0.0.255) int]_[* Get32]()&] -[s2; Reads 32`-bit value from the stream in platform specific format -(either little`-endian or big`-endian). If there is not enough -data in the stream, LoadError is invoked (that in turn might -throw an exception) and `-1 returned (but that is a valid return -value as well).&] -[s7; [*/ Return value]-|32`-bit value.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:Get64`(`):%- [_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:int64`:`:typedef^ i -nt64]_[* Get64]()&] -[s2; Reads 64`-bit value from the stream in platform specific format -(either little`-endian or big`-endian). If there is not enough -data in the stream, LoadError is invoked (that in turn might -throw an exception) and `-1 returned (but that is a valid return -value as well).&] -[s7; [*/ Return value]-|64`-bit value.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:Get16le`(`):%- [@(0.0.255) int]_[* Get16le]()&] -[s2; Reads 16`-bit value from the stream in the little`-endian mode. -If there is not enough data in the stream, LoadError is invoked -(that in turn might throw an exception) and `-1 returned.&] -[s7; [*/ Return value]-|16`-bit value.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:Get32le`(`):%- [@(0.0.255) int]_[* Get32le]()&] -[s2; Reads 32`-bit value from the stream in the little`-endian mode. -If there is not enough data in the stream, LoadError is invoked -(that in turn might throw an exception) and `-1 returned (but -that is a valid return value as well).&] -[s7; [*/ Return value]-|32`-bit value.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:Get64le`(`):%- [_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:int64`:`:typedef^ i -nt64]_[* Get64le]()&] -[s2; Reads 64`-bit value from the stream in the little`-endian mode. -If there is not enough data in the stream, LoadError is invoked -(that in turn might throw an exception) and `-1 returned (but -that is a valid value return as well).&] -[s7; [*/ Return value]-|64`-bit value.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:Get16be`(`):%- [@(0.0.255) int]_[* Get16be]()&] -[s2; Reads 16`-bit value from the stream in the big`-endian mode. -If there is not enough data in the stream, LoadError is invoked -(that in turn might throw an exception) and `-1 is returned.&] -[s7; [*/ Return value]-|16`-bit value.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:Get32be`(`):%- [@(0.0.255) int]_[* Get32be]()&] -[s2; Reads 32`-bit value from the stream in the big`-endian mode. -If there is not enough data in the stream, LoadError is invoked -(that in turn might throw an exception) and `-1 returned (but -that is a valid value return as well).&] -[s7; [*/ Return value]-|32`-bit value.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:Get64be`(`):%- [_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:int64`:`:typedef^ i -nt64]_[* Get64be]()&] -[s2; Reads 64`-bit value from the stream in the big`-endian mode. -If there is not enough data in the stream, LoadError is invoked -(that in turn might throw an exception) and `-1 returned (but -that is a valid value return as well).&] -[s7; [*/ Return value]-|64`-bit value.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:GetLine`(`):%- [_^String^ String]_[* GetLine]()&] -[s2; Reads single line from the stream. Line is delimited by `'`\n`' -character or the end of file (or error). `'`\r`' characters are -ignored.&] -[s7; [*/ Return value]-|Line from the stream.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:GetUtf8`(`):%- [@(0.0.255) int]_[* GetUtf8]()&] -[s2; Reads single Utf8 encoded value from the stream.&] -[s7; [*/ Return value]-|Utf`-8 value.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:Put16`(word`):%- [@(0.0.255) void]_[* Put16]([_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:word`:`:typedef^ w -ord]_[*@3 q])&] -[s2; Writes 16`-bit value [%-*@3 q ]in platform specific format (either -little`-endian or big`-endian).&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:Put32`(dword`):%- [@(0.0.255) void]_[* Put32]([_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:dword`:`:typedef^ d -word]_[*@3 q])&] -[s2; Writes 32`-bit value [%-*@3 q ]in platform specific format (either -little`-endian or big`-endian).&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:Put64`(int64`):%- [@(0.0.255) void]_[* Put64]([_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:int64`:`:typedef^ i -nt64]_[*@3 q])&] -[s2; Writes 64`-bit value [%-*@3 q ]in platform specific format (either -little`-endian or big`-endian).&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:Put16le`(word`):%- [@(0.0.255) void]_[* Put16le]([_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:word`:`:typedef^ w -ord]_[*@3 q])&] -[s2; Writes 16`-bit value [%-*@3 q ]in little`-endian mode.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:Put32le`(dword`):%- [@(0.0.255) void]_[* Put32le]([_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:dword`:`:typedef^ d -word]_[*@3 q])&] -[s2; Writes 32`-bit value [%-*@3 q ]in little`-endian mode.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:Put64le`(int64`):%- [@(0.0.255) void]_[* Put64le]([_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:int64`:`:typedef^ i -nt64]_[*@3 q])&] -[s2; Writes 64`-bit value [%-*@3 q ]in little`-endian mode.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:Put16be`(word`):%- [@(0.0.255) void]_[* Put16be]([_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:word`:`:typedef^ w -ord]_[*@3 q])&] -[s2; Writes 16`-bit value [%-*@3 q ]in big`-endian mode.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:Put32be`(dword`):%- [@(0.0.255) void]_[* Put32be]([_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:dowrd`:`:typedef^ d -word]_[*@3 q])&] -[s2; Writes 32`-bit value [%-*@3 q ]in big`-endian mode.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:Put64be`(int64`):%- [@(0.0.255) void]_[* Put64be]([_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:int64`:`:typedef^ i -nt64]_[*@3 q])&] -[s2; Writes 64`-bit value [%-*@3 q ]in big`-endian mode.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:PutUtf8`(int`):%- [@(0.0.255) void]_[* PutUtf8]([@(0.0.255) int]_[*@3 c])&] -[s2; Puts a single Utf8 value to the stream.&] -[s7; [%-*C@3 c]-|Value.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:Put`(const char`*`):%- [@(0.0.255) void]_[* Put]([@(0.0.255) const]_[@(0.0.255) c -har]_`*[*@3 s])&] -[s2; Writes zero terminated string to the stream (zero is not written).&] -[s7; [%-*C@3 s]-|String to write.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:Put`(const String`&`):%- [@(0.0.255) void]_[* Put]([@(0.0.255) const]_[_^String^ S -tring][@(0.0.255) `&]_[*@3 s])&] -[s2; Writes String to the the stream. String can contain zero characters.&] -[s7; [%-*C@3 s]-|String to write.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:Put`(int`,int`):%- [@(0.0.255) void]_[* Put]([@(0.0.255) int]_[*@3 c], -[@(0.0.255) int]_[*@3 count])&] -[s2; Writes single byte to the stream requested number of times.&] -[s7; [%-*C@3 c]-|Byte to write.&] -[s7; [%-*C@3 count]-|Repeat count.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:Put0`(int`):%- [@(0.0.255) void]_[* Put0]([@(0.0.255) int]_[*@3 count])&] -[s2; Writes zero byte to the stream requested number of times. This -variation is mainly provided because Put(0, count) causes ambiguity -as 0 is considered as NULL pointer too...&] -[s7; [%-*C@3 count]-|Repeat count.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:PutW`(const wchar`*`,int`):%- [@(0.0.255) void]_[* PutW]([@(0.0.255) const]_ -[_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:wchar`:`:typedef^ wchar -]_`*[*@3 s], [@(0.0.255) int]_[*@3 count])&] -[s2; Writes a specified number of wchars (16`-bit character values) -to the stream in platform specific format (little`-endian or -big`-endian).&] -[s7; [%-*C@3 s]-|String to write.&] -[s7; [%-*C@3 count]-|Length of string.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:GetW`(wchar`*`,int`):%- [_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:dword`:`:typedef^ d -word]_[* GetW]([_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:wchar`:`:typedef^ w -char]_`*[*@3 s], [@(0.0.255) int]_[*@3 count])&] -[s2; Reads a specified number of wchars (16`-bit character values) -from the stream in platform specific format.&] -[s7; [%-*C@3 s]-|Pointer to buffer to receive wchars.&] -[s7; [%-*C@3 count]-|Number of wchars.&] -[s7; [*/ Return value]-|Number of wchars actually read.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:GetAllW`(wchar`*`,int`):%- [@(0.0.255) bool]_[* GetAllW]([_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:wchar`:`:typedef^ w -char]_`*[*@3 s], [@(0.0.255) int]_[*@3 count])&] -[s2; Reads a specified number of wchars (16`-bit character values) -from the stream in platform specific format. If there is not -enough data in the stream, LoadError is invoked (that in turn -might throw an exception).&] -[s7; [%-*C@3 s]-|&] -[s7; [%-*C@3 count]-|&] -[s7; [*/ Return value]-|&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:PutCrLf`(`):%- [@(0.0.255) void]_[* PutCrLf]()&] -[s2; Writes CR`-LF pair to the stream. &] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:PutEol`(`):%- [@(0.0.255) void]_[* PutEol]()&] -[s2; Writes platform specific `"end of line`" to the stream. It is -CR`-LF pair on Win32 platform or single LF on Posix platform.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:operator`<`<`(EOLenum`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* operator<<]( -EOLenum)&] -[s2; This is the same as PutEol. EOLenum contains single value, EOL. -This is operator allows more convenient way to express PutEol -in the chain of << operators.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:PutLine`(const char`*`):%- [@(0.0.255) void]_[* PutLine]([@(0.0.255) const]_ -[@(0.0.255) char]_`*[*@3 s])&] -[s2; Writes a line to stream `- equivalent of Put(s); PutEol();&] -[s7; [%-*C@3 s]-|Zero`-terminated string.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:PutLine`(const String`&`):%- [@(0.0.255) void]_[* PutLine]([@(0.0.255) const -]_[_^String^ String][@(0.0.255) `&]_[*@3 s])&] -[s2; Writes a line to stream `- equivalent of Put(s); PutEol();&] -[s7; [%-*C@3 s]-|String.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:Put`(Stream`&`,int64`,dword`):%- [@(0.0.255) void]_[* Put]([_^Stream^ Stream -][@(0.0.255) `&]_[*@3 s], [_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:int64`:`:typedef^ i -nt64]_[*@3 size]_`=_INT64`_MAX, [_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:dword`:`:typedef^ d -word]_[*@3 click]_`=_[@3 4096])&] -[s2; Writes a content of specified stream to the stream.&] -[s7; [%-*C@3 s]-|Input stream.&] -[s7; [%-*C@3 size]-|Maximum number of bytes to write. Default value -INT64`_MAX means whole input stream from current position to -the end is written.&] -[s7; [%-*C@3 click]-|Size of buffer used for copying.&] -[s3; &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0; [* Public Member List: Serialization Support]]}}&] -[s3;%- &] -[s5;:Stream`:`:SetLoading`(`):%- [@(0.0.255) void]_[* SetLoading]()&] -[s2; Sets the stream into the loading mode.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:SetStoring`(`):%- [@(0.0.255) void]_[* SetStoring]()&] -[s2; Sets the stream into the storing mode.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:IsLoading`(`)const:%- [@(0.0.255) bool]_[* IsLoading]()_[@(0.0.255) const]&] -[s2; Returns true if stream is in loading mode.&] -[s3;%- &] -[s4;%- &] -[s5;:Stream`:`:IsStoring`(`)const:%- [@(0.0.255) bool]_[* IsStoring]()_[@(0.0.255) const]&] -[s2; Returns true if stream is in storing mode.&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:Stream`:`:SerializeRaw`(Upp`:`:byte`*`,Upp`:`:int64`):%- [@(0.0.255) void]_ -[* SerializeRaw]([_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:byte`:`:typedef^ b -yte]_`*[*@3 data], [_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:int64`:`:typedef^ i -nt64]_[*@3 count])&] -[s2; Serializes raw 8`-bit data. Might invoke LoadError if there -is not enough data to load. Data are always stored in little`-endian -mode (conversion performed on BE systems as necessary).&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:Stream`:`:SerializeRaw`(Upp`:`:word`*`,Upp`:`:int64`):%- [@(0.0.255) void]_ -[* SerializeRaw]([_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:word`:`:typedef^ w -ord]_`*[*@3 data], [_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:int64`:`:typedef^ i -nt64]_[*@3 count])&] -[s2; Serializes raw 16`-bit data. Might invoke LoadError if there -is not enough data to load. Data are always stored in little`-endian -mode (conversion performed on BE systems as necessary).&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:Stream`:`:SerializeRaw`(Upp`:`:dword`*`,Upp`:`:int64`):%- [@(0.0.255) void]_ -[* SerializeRaw]([_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:dword`:`:typedef^ d -word]_`*[*@3 data], [_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:int64`:`:typedef^ i -nt64]_[*@3 count])&] -[s2; Serializes raw 32`-bit data. Might invoke LoadError if there -is not enough data to load. Data are always stored in little`-endian -mode (conversion performed on BE systems as necessary).&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:Stream`:`:SerializeRaw`(Upp`:`:uint64`*`,Upp`:`:int64`):%- [@(0.0.255) void -]_[* SerializeRaw]([_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:uint64`:`:typedef^ u -int64]_`*[*@3 data], [_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:int64`:`:typedef^ i -nt64]_[*@3 count])&] -[s2; Serializes raw 64`-bit data. Might invoke LoadError if there -is not enough data to load. Data are always stored in little`-endian -mode (conversion performed on BE systems as necessary).&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:SerializeRLE`(byte`*`,int`):%- [@(0.0.255) void]_[* SerializeRLE]([_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:byte`:`:typedef^ b -yte]_`*[*@3 data], [@(0.0.255) int]_[*@3 count])&] -[s2; Serializes raw data, using simple RLE compression.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:operator`%`(bool`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* operator%]([@(0.0.255) b -ool`&]_[*@3 d])&] -[s2; Serializes bool variable [%-*@3 d]. Might invoke LoadError if -there is not enough data to load. Returns [* `*this] for chaining.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:operator`%`(char`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* operator%]([@(0.0.255) c -har`&]_[*@3 d])&] -[s2; Serializes char variable [%-*@3 d]. Might invoke LoadError if -there is not enough data to load. Returns [* `*this] for chaining.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:operator`%`(signed char`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* operator -%]([@(0.0.255) signed]_[@(0.0.255) char`&]_[*@3 d])&] -[s2; Serializes signed char variable [%-*@3 d]. Might invoke LoadError -if there is not enough data to load. Returns [* `*this] for chaining.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:operator`%`(unsigned char`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* operat -or%]([@(0.0.255) unsigned]_[@(0.0.255) char`&]_[*@3 d])&] -[s2; Serializes unsigned char variable [%-*@3 d]. Might invoke LoadError -if there is not enough data to load. Returns [* `*this] for chaining.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:operator`%`(short`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* operator%]([@(0.0.255) s -hort`&]_[*@3 d])&] -[s2; Serializes short variable [%-*@3 d]. Might invoke LoadError if -there is not enough data to load. Returns [* `*this] for chaining.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:operator`%`(unsigned short`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* opera -tor%]([@(0.0.255) unsigned]_[@(0.0.255) short`&]_[*@3 d])&] -[s2; Serializes unsigned short variable [%-*@3 d]. Might invoke LoadError -if there is not enough data to load. Returns [* `*this] for chaining.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:operator`%`(int`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* operator%]([@(0.0.255) i -nt`&]_[*@3 d])&] -[s2; Serializes int variable [%-*@3 d]. Might invoke LoadError if there -is not enough data to load. Returns [* `*this] for chaining.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:operator`%`(unsigned int`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* operato -r%]([@(0.0.255) unsigned]_[@(0.0.255) int`&]_[*@3 d])&] -[s2; Serializes unsigned int variable [%-*@3 d]. Might invoke LoadError -if there is not enough data to load. Returns [* `*this] for chaining.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:operator`%`(long`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* operator%]([@(0.0.255) l -ong`&]_[*@3 d])&] -[s2; Serializes long variable [%-*@3 d]. Might invoke LoadError if -there is not enough data to load. Returns [* `*this] for chaining.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:operator`%`(unsigned long`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* operat -or%]([@(0.0.255) unsigned]_[@(0.0.255) long`&]_[*@3 d])&] -[s2; Serializes unsigned long variable [%-*@3 d]. Might invoke LoadError -if there is not enough data to load. Returns [* `*this] for chaining.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:operator`%`(float`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* operator%]([@(0.0.255) f -loat`&]_[*@3 d])&] -[s2; Serializes float variable [%-*@3 d]. Might invoke LoadError if -there is not enough data to load. Returns [* `*this] for chaining.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:operator`%`(double`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* operator%]([@(0.0.255) d -ouble`&]_[*@3 d])&] -[s2; Serializes double variable [%-*@3 d]. Might invoke LoadError if -there is not enough data to load. Returns [* `*this] for chaining.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:operator`%`(int64`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* operator%]([_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:int64`:`:typedef^ i -nt64][@(0.0.255) `&]_[*@3 d])&] -[s2; Serializes int64 variable [%-*@3 d]. Might invoke LoadError if -there is not enough data to load. Returns [* `*this] for chaining.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:operator`%`(uint64`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* operator%]([_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:uint64`:`:typedef^ u -int64][@(0.0.255) `&]_[*@3 d])&] -[s2; Serializes uint64 variable [%-*@3 d]. Might invoke LoadError if -there is not enough data to load. Returns [* `*this] for chaining.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:operator`%`(String`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* operator%]([_^String^ S -tring][@(0.0.255) `&]_[*@3 s])&] -[s2; Serializes String variable [%-*@3 s]. Might invoke LoadError if -there is not enough data to load or input data are invalid. Returns -[* `*this] for chaining.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:operator`/`(String`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* operator/]([_^String^ S -tring][@(0.0.255) `&]_[*@3 s])&] -[s2; Serializes String variable [%-*@3 s ]using RLE compression and -packed format for length. Might invoke LoadError if there is -not enough data to load or input data are invalid. Returns [* `*this] -for chaining.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:operator`%`(WString`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* operator%]([_^WString^ W -String][@(0.0.255) `&]_[*@3 s])&] -[s2; Serializes WString variable. Might invoke LoadError if there -is not enough data to load or input data are invalid. Returns -[* `*this] for chaining.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:operator`/`(WString`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* operator/]([_^WString^ W -String][@(0.0.255) `&]_[*@3 s])&] -[s2; Serializes String variable using RLE compression and packed -format for length. Might invoke LoadError if there is not enough -data to load or input data are invalid. Returns [* `*this] for -chaining.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:Pack`(dword`&`):%- [@(0.0.255) void]_[* Pack]([_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:dword`:`:typedef^ d -word][@(0.0.255) `&]_[*@3 i])&] -[s2; Serializes dword value using format optimized for storing small -values. Values 0..254 are stored as serializes as single byte, -other values result in 5 bytes. Might invoke LoadError if there -is not enough data to load or input data are invalid.&] -[s7; [%-*C@3 i]-|Variable to serialize.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:operator`/`(int`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* operator/]([@(0.0.255) i -nt`&]_[*@3 i])&] -[s2; Serializes int value using format optimized for storing small -values. Might invoke LoadError if there is not enough data to -load or input data are invalid.&] -[s7; [%-*C@3 i]-|Variable to serialize.&] -[s7; [*/ Return value]-|`*this for chaining.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:operator`/`(unsigned int`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* operato -r/]([@(0.0.255) unsigned]_[@(0.0.255) int`&]_[*@3 i])&] -[s2; Serializes unsigned int value using format optimized for storing -small values. Might invoke LoadError if there is not enough data -to load or input data are invalid.&] -[s7; [%-*C@3 i]-|Variable to serialize.&] -[s7; [*/ Return value]-|`*this for chaining.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:Magic`(dword`):%- [@(0.0.255) void]_[* Magic]([_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:dword`:`:typedef^ d -word]_[*@3 magic]_`=_[@3 0]x7d674d7b)&] -[s2; Serializes `"magic value`" to ensure stream integrity. When -loading, this value is loaded and checked `- mismatch results -in invoking LoadError.&] -[s7; [%-*C@3 magic]-|Magic value.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:Pack`(bool`&`,bool`&`,bool`&`,bool`&`,bool`&`,bool`&`,bool`&`,bool`&`):%- [@(0.0.255) v -oid]_[* Pack]([@(0.0.255) bool`&]_[*@3 a], [@(0.0.255) bool`&]_[*@3 b], -[@(0.0.255) bool`&]_[*@3 c], [@(0.0.255) bool`&]_[*@3 d], [@(0.0.255) bool`&]_[*@3 e], -[@(0.0.255) bool`&]_[*@3 f], [@(0.0.255) bool`&]_[*@3 g], [@(0.0.255) bool`&]_[*@3 h])&] -[s2; Serializes a set of boolean values compressed into single byte.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:Pack`(bool`&`,bool`&`,bool`&`,bool`&`,bool`&`,bool`&`,bool`&`):%- [@(0.0.255) v -oid]_[* Pack]([@(0.0.255) bool`&]_[*@3 a], [@(0.0.255) bool`&]_[*@3 b], -[@(0.0.255) bool`&]_[*@3 c], [@(0.0.255) bool`&]_[*@3 d], [@(0.0.255) bool`&]_[*@3 e], -[@(0.0.255) bool`&]_[*@3 f], [@(0.0.255) bool`&]_[*@3 g])&] -[s2; Serializes a set of boolean values compressed into single byte.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:Pack`(bool`&`,bool`&`,bool`&`,bool`&`,bool`&`,bool`&`):%- [@(0.0.255) vo -id]_[* Pack]([@(0.0.255) bool`&]_[*@3 a], [@(0.0.255) bool`&]_[*@3 b], -[@(0.0.255) bool`&]_[*@3 c], [@(0.0.255) bool`&]_[*@3 d], [@(0.0.255) bool`&]_[*@3 e], -[@(0.0.255) bool`&]_[*@3 f])&] -[s2; Serializes a set of boolean values compressed into single byte.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:Pack`(bool`&`,bool`&`,bool`&`,bool`&`,bool`&`):%- [@(0.0.255) void]_[* Pac -k]([@(0.0.255) bool`&]_[*@3 a], [@(0.0.255) bool`&]_[*@3 b], [@(0.0.255) bool`&]_[*@3 c], -[@(0.0.255) bool`&]_[*@3 d], [@(0.0.255) bool`&]_[*@3 e])&] -[s2; Serializes a set of boolean values compressed into single byte.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:Pack`(bool`&`,bool`&`,bool`&`,bool`&`):%- [@(0.0.255) void]_[* Pack]([@(0.0.255) b -ool`&]_[*@3 a], [@(0.0.255) bool`&]_[*@3 b], [@(0.0.255) bool`&]_[*@3 c], -[@(0.0.255) bool`&]_[*@3 d])&] -[s2; Serializes a set of boolean values compressed into single byte.&] -[s3; &] -[s4;%- &] -[s5;:Stream`:`:Pack`(bool`&`,bool`&`,bool`&`):%- [@(0.0.255) void]_[* Pack]([@(0.0.255) boo -l`&]_[*@3 a], [@(0.0.255) bool`&]_[*@3 b], [@(0.0.255) bool`&]_[*@3 c])&] -[s2; Serializes a set of boolean values compressed into single byte.&] -[s4;%- &] -[s5;:Stream`:`:Pack`(bool`&`,bool`&`):%- [@(0.0.255) void]_[* Pack]([@(0.0.255) bool`&]_[*@3 a -], [@(0.0.255) bool`&]_[*@3 b])&] -[s2; Serializes a set of boolean values compressed into single byte.&] -[s3; &] -[s0;3 &] -[s0;3 &] -[s0;%- &] -[ {{10000@(113.42.0) [s0; [*@7;4 StringStream]]}}&] -[s3; &] -[s1;:StringStream`:`:class:%- [@(0.0.255)3 class][3 _][*3 StringStream][3 _:_][@(0.0.255)3 publi -c][3 _][*@3;3 Stream]&] -[s9; StringStream is stream that uses String as storage medium. The -maximum output size is limited to 2GB (maximum String size limit).&] -[s2; &] -[s0;%- [%%/ Derived from][%% ][^topic`:`/`/Core`/src`/Stream`$en`-us`#`:`:Stream`:`:class Stream^ S -tream]&] -[s3; &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] -[s3;%- &] -[s5;:StringStream`:`:StringStream`(`):%- [* StringStream]()&] -[s2; Consructs empty stream and sets it into Storing serialization -mode (like [* Create]).&] -[s3; &] -[s4;%- &] -[s5;:StringStream`:`:StringStream`(const String`&`):%- [* StringStream]([@(0.0.255) const -]_[_^String^ String][@(0.0.255) `&]_[*@3 data])&] -[s2; Constructs stream with specified content and sets it into Loading -serialization mode (like [* Open]).&] -[s7; [%-*C@3 data]-|Content of stream.&] -[s3; &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Public Member List: Serialization Support]]}}&] -[s3;%- &] -[s5;:StringStream`:`:Open`(const String`&`):%- [@(0.0.255) void]_[* Open]([@(0.0.255) const -]_[_^String^ String][@(0.0.255) `&]_[*@3 data])&] -[s2;%- Sets the content of stream to specified String and sets it -into the Loading serialization mode.&] -[s7; [%-*C@3 data]-|Content of stream.&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:StringStream`:`:Limit`(int`):%- [@(0.0.255) void]_[* Limit]([@(0.0.255) int]_[*@3 s -z])&] -[s2; Sets the output size limit. Exception StringStream`::LimitExc -is thrown if this the output size reaches this limit.&] -[s3; &] -[s4;%- &] -[s5;:StringStream`:`:Create`(`):%- [@(0.0.255) void]_[* Create]()&] -[s2; Creates empty StringStream and sets it into Storing serialization -mode.&] -[s3; &] -[s4;%- &] -[s5;:StringStream`:`:Reserve`(int`):%- [@(0.0.255) void]_[* Reserve]([@(0.0.255) int]_[*@3 n]) -&] -[s2; Reserves additional [%-*@3 n] bytes of internal storage as optimization -hint. This might speedup the operation in certain cases if you -know how much data approximately will be put into StringStream.&] -[s3; &] -[s4;%- &] -[s5;:StringStream`:`:GetResult`(`):%- [_^String^ String]_[* GetResult]()&] -[s2; Returns resulting String.&] -[s7; [*/ Return value]-|Result.&] -[s3; &] -[s4;%- &] -[s5;:StringStream`:`:operator String`(`):%- [* operator_String]()&] -[s7; [*/ Return value]-|[^topic`:`/`/Core`/src`/Stream`$en`-us`#StringStream`:`:GetResult`(`)^ G -etResult]().&] -[s0;3 &] -[s0;3 &] -[s0;3 &] -[s0;%- &] -[ {{10000@(113.42.0) [s0; [*@7;4 MemStream]]}}&] -[s3; &] -[s1;:MemStream`:`:class:%- [@(0.0.255)3 class][3 _][*3 MemStream][3 _:_][@(0.0.255)3 public][3 _][*@3;3 S -tream]&] -[s9; Stream that is using raw memory as its content.&] -[s2; &] -[s0;%- [%%/ Derived from][%% ][^topic`:`/`/Core`/src`/Stream`$en`-us`#`:`:Stream`:`:class Stream^ S -tream]&] -[s3; &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] -[s3;%- &] -[s5;:MemStream`:`:MemStream`(void`*`,int`):%- [* MemStream]([@(0.0.255) void]_`*[*@3 data], - [@(0.0.255) int]_[*@3 size])&] -[s2; Constructs [* MemStream] at specified memory buffer.&] -[s7; [%-*C@3 data]-|Pointer to the stream content.&] -[s7; [%-*C@3 size]-|Size.&] -[s0;3 &] -[s0;3 &] -[s0;3 &] -[s0;%- &] -[ {{10000@(113.42.0) [s0; [*@7;4 MemReadStream]]}}&] -[s3;%- &] -[s1;:MemReadStream`:`:class:%- [@(0.0.255)3 class][3 _][*3 MemReadStream][3 _:_][@(0.0.255)3 pub -lic][3 _][*@3;3 MemStream]&] -[s9; Read`-only stream using raw memory as content.&] -[s2; &] -[s0;%- [%%/ Derived from][%% ][^topic`:`/`/Core`/src`/Stream`$en`-us`#`:`:MemStream`:`:class MemStream^ M -emStream]&] -[s3; &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] -[s3; &] -[s5;:MemReadStream`:`:MemReadStream`(const void`*`,int`):%- [* MemReadStream]([@(0.0.255) c -onst]_[@(0.0.255) void]_`*[*@3 data], [@(0.0.255) int]_[*@3 size])&] -[s2; Constructs [* MemStream] at specified memory buffer.&] -[s7; [%-*C@3 data]-|Pointer to the stream content.&] -[s7; [%-*C@3 size]-|Size.&] -[s3; &] -[s0;3 &] -[s0;3 &] -[s0;%- &] -[ {{10000@(113.42.0) [s0; [*@7;4 BlockStream]]}}&] -[s3; &] -[s1;:BlockStream`:`:class:%- [@(0.0.255)3 class][3 _][*3 BlockStream][3 _:_][@(0.0.255)3 public][3 _ -][*@3;3 Stream]&] -[s9; BlockStream implements operations needed to manage streams that -are able to read or write a block of data at random positon. -BlockStream provides buffered implementation of such stream. -It implements all virtual methods of Stream, with exception of -[* IsOpen] and [* Close], using new virtual methods [* Read], [* Write] -and [* SetStreamSize].&] -[s2; &] -[s0;%- [%%/ Derived from][%% ][^topic`:`/`/Core`/src`/Stream`$en`-us`#`:`:BufferStream`:`:class BufferStream^ B -ufferStream]&] -[s3; &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] -[s3;%- &] -[s0;%- [@(0.0.255) enum]_`{_[*@3 READ], [*@3 CREATE], [*@3 APPEND], [*@3 READWRITE], -[*@3 NOWRITESHARE], [*@3 DELETESHARE], [*@3 NOREADSHARE], [*@3 SHAREMASK]_`}&] -[s2; This enum defines basic operation modes of BlockStream (used -combined with binary or).&] -[s7;:`:`:BlockStream`:`:READ: [%-*C@3 READ]-|Read mode.&] -[s7;:`:`:BlockStream`:`:CREATE: [%-*C@3 CREATE]-|Write mode.&] -[s7;:`:`:BlockStream`:`:APPEND: [%-*C@3 APPEND]-|Append mode `- means -that initial position in the stream is at the end of it.&] -[s7;:`:`:BlockStream`:`:READWRITE: [%-*C@3 READWRITE]-|Enables subsequent -streams full access to stream.&] -[s7;:`:`:BlockStream`:`:NOWRITESHARE: [%-*C@3 NOWRITESHARE]-|Disables -subsequent streams to write to the stream.&] -[s7;:`:`:BlockStream`:`:DELETESHARE: [%-*C@3 DELETESHARE]-|Enables subsequent -streams to delete the stream.&] -[s7;:`:`:BlockStream`:`:NOREADSHARE: [%-*C@3 NOREADSHARE]-|Disables -subsequent streams to read the stream.&] -[s3; &] -[s4;%- &] -[s5;:BlockStream`:`:SetBufferSize`(dword`):%- [@(0.0.255) void]_[* SetBufferSize]([_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:dword`:`:typedef^ d -word]_[*@3 newsize])&] -[s2; Sets a new size of internal buffer.&] -[s7; [%-*C@3 newsize]-|The new size of buffer.&] -[s3; &] -[s4;%- &] -[s5;:BlockStream`:`:GetBufferSize`(`)const:%- [_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:dword`:`:typedef^ d -word]_[* GetBufferSize]()_[@(0.0.255) const]&] -[s2; [*/ Return value]-|Size of buffer.&] -[s3;%- &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Protected Member List]]}}&] -[s3; &] -[s5;:BlockStream`:`:Read`(int64`,void`*`,dword`):%- [@(0.0.255) virtual] -[_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:dword`:`:typedef^ dword -]_[* Read]([_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:int64`:`:typedef^ i -nt64]_[*@3 at], [@(0.0.255) void]_`*[*@3 ptr], [_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:dword`:`:typedef^ d -word]_[*@3 size])&] -[s2; Implementation of this virtual method in derived class should -read a block of data at specified position in media.&] -[s7; [%-*C@3 at]-|Position in media.&] -[s7; [%-*C@3 ptr]-|Pointer to buffer to receive data.&] -[s7; [%-*C@3 size]-|Requested size of data.&] -[s7; [*/ Return value]-|Size of data read.&] -[s3; &] -[s4;%- &] -[s5;:BlockStream`:`:Write`(int64`,const void`*`,dword`):%- [@(0.0.255) virtual] -[@(0.0.255) void]_[* Write]([_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:int64`:`:typedef^ i -nt64]_[*@3 at], [@(0.0.255) const]_[@(0.0.255) void]_`*[*@3 data], [_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:dword`:`:typedef^ d -word]_[*@3 size])&] -[s2; Implementation of this virtual method in derived method should -write a block of data at specified position in media.&] -[s7; [%-*C@3 at]-|Position in media.&] -[s7; [%-*C@3 data]-|Pointer to data.&] -[s7; [%-*C@3 size]-|Size of data.&] -[s3; &] -[s4;%- &] -[s5;:BlockStream`:`:SetStreamSize`(int64`):%- [@(0.0.255) virtual] -[@(0.0.255) void]_[* SetStreamSize]([_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:int64`:`:typedef^ i -nt64]_[*@3 size])&] -[s2; Implementation of this virtual method in derived class should -adjust the size of media.&] -[s7; [%-*C@3 size]-|Requested new size of media.&] -[s3; &] -[s4;%- &] -[s5;:BlockStream`:`:GetStreamSize`(`)const:%- [_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:int64`:`:typedef^ i -nt64]_[* GetStreamSize]()_[@(0.0.255) const]&] -[s2; Returns current media size. Note that this might be different -from current GetSize() `- media size adjustment can be deffered -to flushing the buffer.&] -[s7; [*/ Return value]-|Current media size.&] -[s3; &] -[s4;%- &] -[s5;:BlockStream`:`:OpenInit`(dword`,int64`):%- [@(0.0.255) void]_[* OpenInit]([_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:dword`:`:typedef^ d -word]_[*@3 mode], [_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:int64`:`:typedef^ i -nt64]_[*@3 file`_size])&] -[s2; Initializes the BlockStream to specified mode and actual media -size.&] -[s7; [%-*C@3 mode]-|Mode.&] -[s7; [%-*C@3 file`_size]-|Actual media size.&] -[s3; &] -[s0;3 &] -[s0;3 &] -[s0;%- &] -[ {{10000@(113.42.0) [s0; [*@7;4 FileStream]]}}&] -[s3; &] -[s1;:FileStream`:`:class:%- [@(0.0.255)3 class][3 _][*3 FileStream][3 _:_][@(0.0.255)3 public][3 _ -][*@3;3 BlockStream]&] -[s9; Classical file stream.&] -[s9; &] -[s0;%- [%%/ Derived from][%% ][^topic`:`/`/Core`/src`/Stream`$en`-us`#`:`:BlockStream`:`:class BlockStream^ B -lockStream]&] -[s3; &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] -[s3;%- &] -[s5;:FileStream`:`:FileStream`(const char`*`,dword`):%- [* FileStream]([@(0.0.255) const]_ -[@(0.0.255) char]_`*[*@3 filename], [_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:dword`:`:typedef^ d -word]_[*@3 mode])&] -[s2; Opens file stream in specified mode (as defined in BlockStream).&] -[s7; [%-*C@3 filename]-|The name of the file.&] -[s7; [%-*C@3 mode]-|Open mode.&] -[s3; &] -[s4;%- &] -[s5;:FileStream`:`:FileStream`(const char`*`,dword`,mode`_t`):%- [* FileStream]([@(0.0.255) c -onst]_[@(0.0.255) char]_`*[*@3 filename], [_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:dword`:`:typedef^ d -word]_[*@3 mode], mode`_t_[*@3 acm]_`=_[@3 0644])&] -[s6;%- Posix specific.&] -[s2; Opens file stream in specified mode (as defined in BlockStream) -and specific POSIX access rights.&] -[s7; [%-*C@3 filename]-|The name of the file.&] -[s7; [%-*C@3 mode]-|Open mode.&] -[s7; [%-*C@3 acm]-|Access rights.&] -[s3; &] -[s4;%- &] -[s5;:FileStream`:`:FileStream`(int`):%- [* FileStream]([@(0.0.255) int]_[*@3 std`_handle])&] -[s6; Posix specific.&] -[s2; Assigns existing file handle to FileStream.&] -[s7; [%-*C@3 std`_handle]-|File handle of open file. FileStream takes -ownership of this handle.&] -[s3; &] -[s4;%- &] -[s5;:FileStream`:`:FileStream`(`):%- [* FileStream]()&] -[s2; Creates empty unopened FileStream.&] -[s3; &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] -[s3;%- &] -[s5;:FileStream`:`:operator bool`(`)const:%- [* operator_bool]()_[@(0.0.255) const]&] -[s2; [*/ Return value]-|True if stream is open.&] -[s3; &] -[s4;%- &] -[s5;:FileStream`:`:GetTime`(`)const:%- [_^FileTime^ FileTime]_[* GetTime]()_[@(0.0.255) con -st]&] -[s2; Returns last`-write time of stream.&] -[s7; [*/ Return value]-|Time.&] -[s3; &] -[s4;%- &] -[s5;:FileStream`:`:SetTime`(const FileTime`&`):%- [@(0.0.255) void]_[* SetTime]([@(0.0.255) c -onst]_[_^FileTime^ FileTime][@(0.0.255) `&]_[*@3 tm])&] -[s2; Opens file stream in specified mode (as defined in BlockStream).&] -[s7; [%-*C@3 filename]-|The name of the file.&] -[s2; [%-*C@3 mode]-|Open mode.&] -[s3; &] -[s4;%- &] -[s5;:FileStream`:`:Open`(const char`*`,dword`):%- [@(0.0.255) bool]_[* Open]([@(0.0.255) co -nst]_[@(0.0.255) char]_`*[*@3 filename], [_^dword^ dword]_[*@3 mode])&] -[s6;%- Posix specific.&] -[s2; Opens file stream in specified mode (as defined in BlockStream) -and specific POSIX access rights. [%-*@3 mode] can be one of READ, -CREATE, APPEND, READWRITE possibly combined (using `'`|`') with -flag NOWRITESHARE. This enforces exclusive write access to the -file.&] -[s7; [%-*C@3 filename]-|The name of the file.&] -[s7; [%-*C@3 mode]-|Open mode.&] -[s3; &] -[s4;%- &] -[s5;:FileStream`:`:Open`(const char`*`,dword`,mode`_t`):%- [@(0.0.255) bool]_[* Open]([@(0.0.255) c -onst]_[@(0.0.255) char]_`*[*@3 filename], [_^dword^ dword]_[*@3 mode], -mode`_t_[*@3 acm]_`=_[@3 0644])&] -[s6;%- Posix specific.&] -[s2; Opens file stream in specified mode (as defined in BlockStream) -and specific POSIX access rights. [%-*@3 mode] can be one of READ, -CREATE, APPEND, READWRITE possibly combined (using `'`|`') with -flag NOWRITESHARE. This flag uses flock system call to enforce -exclusive write access to the file. In READ, if file does not -exist, function fails. In CREATE mode, files is always created -empty. In APPEND and READWRITE modes, file is created if it does -not already exist.&] -[s7; [%-*C@3 filename]-|The name of the file.&] -[s7; [%-*C@3 mode]-|Open mode.&] -[s7; [%-*C@3 acm]-|Access rights.&] -[s3; &] -[s4;%- &] -[s5;:FileStream`:`:GetHandle`(`)const:%- HANDLE_[* GetHandle]()_[@(0.0.255) const]&] -[s2; [*/ Return value]-|File handle, either POSIX or WIN32.&] -[s3; &] -[s0;3 &] -[s0;3 &] -[s0;%- &] -[ {{10000@(113.42.0) [s0; [*@7;4 FileIn]]}}&] -[s3; &] -[s1;:FileIn`:`:class:%- [@(0.0.255)3 class][3 _][*3 FileIn][3 _:_][@(0.0.255)3 public][3 _][*@3;3 Fi -leStream]&] -[s9; Simple helper class that represents FileStream in read mode.&] -[s0; &] -[s9;%- [%%/ Derived from][%% ][^topic`:`/`/Core`/src`/Stream`$en`-us`#`:`:FileStream`:`:class FileStream^ F -ileStream]&] -[s3; &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] -[s3; &] -[s5;:FileIn`:`:FileIn`(const char`*`):%- [* FileIn]([@(0.0.255) const]_[@(0.0.255) char]_`* -[*@3 fn])&] -[s2; Opens file for reading.&] -[s7; [%-*C@3 fn]-|File name.&] -[s3; &] -[s4;%- &] -[s5;:FileIn`:`:FileIn`(`):%- [* FileIn]()&] -[s2; Constructs empty FileStream.&] -[s3; &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] -[s3;%- &] -[s5;:FileIn`:`:Open`(const char`*`):%- [@(0.0.255) bool]_[* Open]([@(0.0.255) const]_[@(0.0.255) c -har]_`*[*@3 fn])&] -[s2; Opens file for reading.&] -[s7; [%-*C@3 fn]-|File name.&] -[s7; [*/ Return value]-|True if open was successful.&] -[s3; &] -[s0;3 &] -[s0;3 &] -[s0;%- &] -[ {{10000@(113.42.0) [s0; [*@7;4 FileOut]]}}&] -[s3; &] -[s1;:FileOut`:`:class:%- [@(0.0.255)3 class][3 _][*3 FileOut][3 _:_][@(0.0.255)3 public][3 _][*@3;3 F -ileStream]&] -[s9; Simple helper class that represents FileStream in write mode.&] -[s2; &] -[s0;%- [%%/ Derived from][%% ][^topic`:`/`/Core`/src`/Stream`$en`-us`#`:`:FileStream`:`:class FileStream^ F -ileStream]&] -[s3; &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] -[s3;%- &] -[s5;:FileOut`:`:FileOut`(const char`*`):%- [* FileOut]([@(0.0.255) const]_[@(0.0.255) char]_ -`*[*@3 fn])&] -[s2; Opens file for writing.&] -[s7; [%-*C@3 fn]-|File name.&] -[s3; &] -[s4;%- &] -[s5;:FileOut`:`:FileOut`(`):%- [* FileOut]()&] -[s2;%- Constructs non`-opened FileStream.&] -[s3; &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] -[s3; &] -[s5;:FileOut`:`:Open`(const char`*`):%- [@(0.0.255) bool]_[* Open]([@(0.0.255) const]_[@(0.0.255) c -har]_`*[*@3 fn])&] -[s2; Opens file for writing.&] -[s7; [%-*C@3 fn]-|File name.&] -[s7; [*/ Return value]-|True if open was successful.&] -[s3; &] -[s4;%- &] -[s5;:FileOut`:`:Open`(const char`*`,mode`_t`):%- [@(0.0.255) bool]_[* Open]([@(0.0.255) con -st]_[@(0.0.255) char]_`*[*@3 fn], mode`_t_[*@3 acm]_`=_[@3 0644])&] -[s2; Opens file for writing.&] -[s6; POSIX specific&] -[s7; [%-*C@3 fn]-|File name.&] -[s7;%- [*@3 acm][@3 -|]File mode&] -[s2; [*/ Return value]-|True if open was successful.&] -[s3; &] -[s0; &] -[s0;3 &] -[s0;3 &] -[ {{10000@(113.42.0) [s0; [*@7;4 FileAppend]]}}&] -[s3; &] -[s1;:FileAppend`:`:class:%- [@(0.0.255)3 class][3 _][*3 FileAppend][3 _:_][@(0.0.255)3 public][3 _ -][*@3;3 FileStream]&] -[s9; Simple helper class that represents FileStream in append mode -`- that in fact means in write mode with current position at -the end of the file.&] -[s2; &] -[s0;%- [%%/ Derived from][%% ]FileStream&] -[s3; &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] -[s3; &] -[s5;:FileAppend`:`:FileAppend`(const char`*`):%- [* FileAppend]([@(0.0.255) const]_[@(0.0.255) c -har]_`*[*@3 fn])&] -[s2; Opens file in append mode.&] -[s7; [%-*C@3 fn]-|File name.&] -[s3; &] -[s4;%- &] -[s5;:FileAppend`:`:FileAppend`(`):%- [* FileAppend]()&] -[s2; Constructs empty FileStream.&] -[s3; &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] -[s3; &] -[s5;:FileAppend`:`:Open`(const char`*`):%- [@(0.0.255) bool]_[* Open]([@(0.0.255) const]_[@(0.0.255) c -har]_`*[*@3 fn])&] -[s2; Opens file in append mode.&] -[s7; [%-*C@3 fn]-|File name.&] -[s7; [*/ Return value]-|true when Open was successful.&] -[s3; &] -[s0;3 &] -[s0;3 &] -[s0;%- &] -[ {{10000@(113.42.0) [s0; [*@7;4 SizeStream]]}}&] -[s3; &] -[s1;:SizeStream`:`:class:%- [@(0.0.255)3 class][3 _][*3 SizeStream][3 _:_][@(0.0.255)3 public][3 _ -][*@3;3 Stream]&] -[s9; Special output stream that in fact does not store output data, -only counts the total number of bytes written.&] -[s2; &] -[s0;%- [%%/ Derived from][%% ][^topic`:`/`/Core`/src`/Stream`$en`-us`#`:`:BufferStream`:`:class BufferStream^ B -ufferStream]&] -[s3; &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] -[s3; &] -[s0;:`:`:SizeStream`:`:SizeStream`(`):%- [* SizeStream]()&] -[s2; Default constructor.&] -[s3; &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] -[s3; &] -[s5;:SizeStream`:`:Open`(`):%- [@(0.0.255) void]_[* Open]()&] -[s2; Reopens data `- resets the counter of output bytes.&] -[s3; &] -[s4;%- &] -[s5;:SizeStream`:`:operator int64`(`)const:%- [* operator_int64]()_[@(0.0.255) const]&] -[s2; Returns current number of bytes written.&] -[s3;%- &] -[s0; &] -[s0;3 &] -[s0;%- &] -[ {{10000@(113.42.0) [s0; [*@7;4 CompareStream]]}}&] -[s3; &] -[s1;:CompareStream`:`:class:%- [@(0.0.255)3 class][3 _][*3 CompareStream][3 _:_][@(0.0.255)3 pub -lic][3 _][*@3;3 Stream]&] -[s9; Special output stream that instead of storing data performs -their comparison to the data of another stream.&] -[s2; &] -[s0;%- [%%/ Derived from][%% ][^topic`:`/`/Core`/src`/Stream`$en`-us`#`:`:BufferStream`:`:class BufferStream^ B -ufferStream]&] -[s3; &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] -[s3; &] -[s0;:CompareStream`:`:CompareStream`(`):%- [* CompareStream]()&] -[s2; Constructs closed CompareStream.&] -[s3; &] -[s4;%- &] -[s5;:CompareStream`:`:CompareStream`(Stream`&`):%- [* CompareStream]([_^Stream^ Stream][@(0.0.255) `& -]_[*@3 aStream])&] -[s2; Constructors CompareStream opened for comparison with specified -stream.&] -[s7; [%-*C@3 aStream]-|Stream to compare with.&] -[s3;%- &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] -[s3; &] -[s5;:CompareStream`:`:Open`(Stream`&`):%- [@(0.0.255) void]_[* Open]([_^Stream^ Stream][@(0.0.255) `& -]_[*@3 aStream])&] -[s2; Opens CompareStream for comparison with the specified stream.&] -[s7; [%-*C@3 aStream]-|Stream to compare with.&] -[s3; &] -[s4;%- &] -[s5;:CompareStream`:`:IsEqual`(`):%- [@(0.0.255) bool]_[* IsEqual]()&] -[s7; Return value-|true if all bytes written so far match those in -comparison stream.&] -[s3; &] -[s4;%- &] -[s5;:CompareStream`:`:operator bool`(`):%- [* operator_bool]()&] -[s7; Return value-|IsEqual().&] -[s3; &] +topic "Streams"; +[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,0#27521748481378242620020725143825:desc] +[0 $$3,0#96390100711032703541132217272105:end] +[H6;0 $$4,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] +[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] +[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] +[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] +[b42;2 $$9,9#13035079074754324216151401829390:normal] +[{_}%EN-US +[ {{10000@(113.42.0) [s0; [*@7;4 Stream]]}}&] +[s3; &] +[s1;:Stream`:`:class:%- [@(0.0.255)3 class][3 _][*3 Stream]&] +[s9; Stream is the base class of all U`+`+ streams.&] +[s0; U`+`+ streams generally serve in two different roles:&] +[s0;i150;O0; As basic raw binary streams, which includes text input +and output.&] +[s0;i150;O0; As binary serialization target/source. This mainly needs +to store flag indicating serialization direction.&] +[s0; &] +[s0; While Stream offers a basic interface for stream based operations, +more specific operations are handled by one of the following +classes derived from Stream:&] +[s0; &] +[ {{993:993:993:993:995:996:987:1013:1016:1021f0;g33;GNl17/25r17/4t17/0b17/0@7-2 [s0; [^topic`:`/`/Core`/src`/Stream`$en`-us`#`:`:Stream`:`:class Stream^1 Stream]] +::l0/25r0/25t0/15b0/15@2-1 [s0;%- ] +:: [s0;%- ] +::r/4t/0b/0 [s0; ] +:: [s0; ] +:: [s0; ] +:: [s0; ] +:: [s0; ] +:: [s0; ] +:: [s0; ] +:: [s0; ] +::l17/25r17/4t17/0b17/0@7-2 [s0; [^topic`:`/`/Core`/src`/Stream`$en`-us`#`:`:StringStream`:`:class StringStream^1 S +tringStream]] +::l0/25r0/25t0/15b0/15@2-1 [s0;%- ] +:: [s0;%- ] +::r/4t/0b/0 [s0; ] +:: [s0; ] +:: [s0; ] +:: [s0; ] +:: [s0; ] +:: [s0; ] +:: [s0; ] +::l17/25r17/4t17/0b17/0@7-2 [s0; [^topic`:`/`/Core`/src`/Stream`$en`-us`#`:`:MemStream`:`:class MemStream^1 MemStre +am]] +::l0/25r0/25t0/15b0/15@2-1 [s0;%- ] +:: [s0;%- ] +::r/4t/0b/0 [s0; ] +:: [s0; ] +:: [s0; ] +:: [s0; ] +:: [s0; ] +:: [s0; ] +:: [s0; ] +:: [s0; ] +::l17/25r17/4t17/0b17/0@7-2 [s0; [^topic`:`/`/Core`/src`/Stream`$en`-us`#`:`:MemReadStream`:`:class MemReadStream^1 M +emReadStream]] +::l0/25r0/25t0/15b0/15@2-1 [s0;%- ] +:: [s0;%- ] +::r/4t/0b/0 [s0; ] +:: [s0; ] +:: [s0; ] +:: [s0; ] +:: [s0; ] +:: [s0; ] +::l17/25r17/4t17/0b17/0@7-2 [s0; [^topic`:`/`/Core`/src`/Stream`$en`-us`#`:`:BufferStream`:`:class BufferStream^1 B +ufferStream]] +::l0/25r0/25t0/15b0/15@2-1 [s0;%- ] +:: [s0;%- ] +::r/4t/0b/0 [s0; ] +:: [s0; ] +:: [s0; ] +:: [s0; ] +:: [s0; ] +:: [s0; ] +:: [s0; ] +:: [s0; ] +::l17/25r17/4t17/0b17/0@7-2 [s0; [^topic`:`/`/Core`/src`/Stream`$en`-us`#`:`:BlockStream`:`:class BlockStream^1 Blo +ckStream]] +::l0/25r0/25t0/15b0/15@2-1 [s0;%- ] +:: [s0;%- ] +::r/4t/0b/0 [s0; ] +:: [s0; ] +:: [s0; ] +:: [s0; ] +:: [s0; ] +:: [s0; ] +:: [s0; ] +:: [s0; ] +::l17/25r17/4t17/0b17/0@7-2 [s0; [^topic`:`/`/Core`/src`/Stream`$en`-us`#`:`:FileStream`:`:class FileStream^1 FileS +tream]] +::l0/25r0/25t0/15b0/15@2-1 [s0;%- ] +:: [s0;%- ] +::r/4t/0b/0 [s0; ] +:: [s0; ] +:: [s0; ] +:: [s0; ] +:: [s0; ] +:: [s0; ] +:: [s0; ] +:: [s0; ] +::l17/25r17/4t17/0b17/0@7-2 [s0; [^topic`:`/`/Core`/src`/Stream`$en`-us`#`:`:FileIn`:`:class FileIn^1 FileIn]] +::l0/25r0/25t0/15b0/15@2-1 [s0;%- ] +:: [s0;%- ] +::r/4t/0b/0 [s0; ] +:: [s0; ] +:: [s0; ] +:: [s0; ] +:: [s0; ] +:: [s0; ] +:: [s0; ] +::l17/25r17/4t17/0b17/0@7-2 [s0; [^topic`:`/`/Core`/src`/Stream`$en`-us`#`:`:FileOut`:`:class FileOut^1 FileOut]] +::l0/25r0/25t0/15b0/15@2-1 [s0;%- ] +:: [s0;%- ] +::r/4t/0b/0 [s0; ] +:: [s0; ] +:: [s0; ] +:: [s0; ] +:: [s0; ] +:: [s0; ] +:: [s0; ] +::l17/25r17/4t17/0b17/0@7-2 [s0; [^topic`:`/`/Core`/src`/Stream`$en`-us`#`:`:FileAppend`:`:class FileAppend^1 FileA +ppend]] +::l0/25r0/25t0/15b0/15@2-1 [s0;%- ] +:: [s0;%- ] +::r/4t/0b/0 [s0; ] +:: [s0; ] +:: [s0; ] +:: [s0; ] +:: [s0; ] +::l17/25r17/4t17/0b17/0@7-2 [s0; [^topic`:`/`/Core`/src`/Stream`$en`-us`#`:`:SizeStream`:`:class SizeStream^1 SizeS +tream]] +::l0/25r0/25t0/15b0/15@2-1 [s0;%- ] +:: [s0;%- ] +::r/4t/0b/0 [s0; ] +:: [s0; ] +:: [s0; ] +:: [s0; ] +:: [s0; ] +:: [s0; ] +:: [s0; ] +::l17/25r17/4t17/0b17/0@7-2 [s0; [^topic`:`/`/Core`/src`/Stream`$en`-us`#`:`:CompareStream`:`:class CompareStream^1 C +ompareStream]] +::l0/25r0/25t0/15b0/15@2-1 [s0;%- ] +:: [s0;%- ] +::r/4t/0b/0 [s0; ] +:: [s0; ] +:: [s0; ] +:: [s0; ] +:: [s0; ]}}&] +[s3; &] +[s0; &] +[s0; In order to achieve optimal performance of buffered stream operations, +the most frequent operations have a little bit more complicated +implementation that demands proper definition of virtual methods, +as they must correctly adjust some protected data members of +Stream. Therefore the implementation of some method can be considered +a part of interface definition:&] +[s0; &] +[s0; [*C@5 void Stream`::Put(int c)]&] +[s0; [*C@5 `{]&] +[s0; [*C@5 -|if(ptr < wrlim)]&] +[s0; [*C@5 -|-|`*ptr`+`+ `= c;]&] +[s0; [*C@5 -|else]&] +[s0; [*C@5 -|-|`_Put(c);]&] +[s0; [*C@5 `}]&] +[s0;*C@5 &] +[s0; [*C@5 int Stream`::Term()]&] +[s0; [*C@5 `{]&] +[s0; [*C@5 -|return ptr < rdlim ? `*ptr : `_Term();]&] +[s0; [*C@5 `}]&] +[s0;*C@5 &] +[s0; [*C@5 int Stream`::Get()]&] +[s0; [*C@5 `{]&] +[s0; [*C@5 -|return ptr < rdlim ? `*ptr`+`+ : `_Get();]&] +[s0; [*C@5 `}]&] +[s0;*C@5 &] +[s0; [*C@5 int64 Stream`::GetPos() const]&] +[s0; [*C@5 `{]&] +[s0; [*C@5 -|return dword(ptr `- buffer) `+ pos;]&] +[s0; [*C@5 `}]&] +[s0; &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0; [* Protected members]]}}&] +[s3;%- &] +[s5;:Stream`:`:pos:%- [_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:int64`:`:typedef^ i +nt64]_[* pos]&] +[s6;%- Protected.&] +[s2; Position of buffer in the stream.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:buffer:%- [_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:byte`:`:typedef^ b +yte]_`*[* buffer]&] +[s6; Protected.&] +[s2; Pointer to beginning of buffer.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:ptr:%- [_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:byte`:`:typedef^ b +yte]_`*[* ptr]&] +[s6; Protected.&] +[s2; Pointer to current input/output byte.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:rdlim:%- [_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:byte`:`:typedef^ b +yte]_`*[* rdlim]&] +[s6; Protected.&] +[s2; Read limit. [* Get] method returns values from buffer as long +as [* ptr < rdlim].&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:wrlim:%- [_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:byte`:`:typedef^ b +yte]_`*[* wrlim]&] +[s6; Protected.&] +[s2; Write limit. [* Put] method returns values from buffer as long +as [* ptr < wrlim].&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:`_Put`(int`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* `_Put]([@(0.0.255) i +nt]_[*@3 w])&] +[s2; Called by [* Put] method in case that output byte cannot be stored +into buffer ([* ptr >`= wrlim]). If Stream wants to use buffering, +this method should adjust [* buffer], [* ptr] and [* wrlim].&] +[s7; [%-*C@3 w]-|Byte to store.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:`_Term`(`):%- [@(0.0.255) virtual] [@(0.0.255) int]_[* `_Term]()&] +[s2; Called by [* Term] method in case that input byte is not in buffer +([* ptr >`= rdlim]). If Stream wants to use buffering, this method +should adjust [* buffer], [* ptr] and [* rdlim].&] +[s7; [*/ Return value]-|Value at current position in the stream. Current +position is not advanced.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:`_Get`(`):%- [@(0.0.255) virtual] [@(0.0.255) int]_[* `_Get]()&] +[s2; Called by [* Get] method in case that input byte is not in buffer +([* ptr >`= rdlim]). If Stream wants to use buffering, this method +should adjust [* buffer], [* ptr] and [* rdlim].&] +[s7; [*/ Return value]-|Value read from the stream.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:`_Put`(const void`*`,dword`):%- [@(0.0.255) virtual] +[@(0.0.255) void]_[* `_Put]([@(0.0.255) const]_[@(0.0.255) void]_`*[*@3 data], +[_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:dword`:`:typedef^ dword +]_[*@3 size])&] +[s2; Directly called by [* Put] method. Writes a block of binary data.&] +[s7; [%-*C@3 data]-|Pointer to data.&] +[s7; [%-*C@3 size]-|Size.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:`_Get`(void`*`,dword`):%- [@(0.0.255) virtual] [_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:dword`:`:typedef^ d +word]_[* `_Get]([@(0.0.255) void]_`*[*@3 data], [_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:dword`:`:typedef^ d +word]_[*@3 size])&] +[s2; Directly called by [* Get] method. &] +[s7; [%-*C@3 data]-|&] +[s7; [%-*C@3 size]-|&] +[s7; [*/ Return value]-|&] +[s3; &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] +[s3; &] +[s5;:Stream`:`:Stream`(`):%- [* Stream]()&] +[s2; Default constructor. Sets stream into Loading serialization +mode and zero level indentation. All protected variables are +set to 0 / NULL.&] +[s3;%- &] +[s4;%- &] +[s5;:Stream`:`:Stream`(const Stream`&`):%- [* Stream]([@(0.0.255) const]_[* Stream][@(0.0.255) `& +]_[*@3 s])&] +[s2; Default copy constructor.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:`~Stream`(`):%- [@(0.0.255) `~][* Stream]()&] +[s2; Default destructor.&] +[s3;%- &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0; [* Public Member List: Raw Operations]]}}&] +[s3;%- &] +[s5;:Stream`:`:Seek`(int64`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Seek]([_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:int64`:`:typedef^ i +nt64]_[*@3 pos])&] +[s2; Seeks to given position.&] +[s7; [%-*C@3 pos]-|Position.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:GetSize`(`)const:%- [@(0.0.255) virtual] [_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:int64`:`:typedef^ i +nt64]_[* GetSize]()_[@(0.0.255) const]&] +[s7; [* Return value]-|Size of stream.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:SetSize`(int64`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* SetSize]([_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:int64`:`:typedef^ i +nt64]_[*@3 size])&] +[s2; Alters the size of the stream.&] +[s7; [%-*C@3 size]-|New size.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Flush`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Flush]()&] +[s2; If stream has any internal buffers (like [* FileStream]), writes +these buffers to OS.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Close`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Close]()&] +[s2; Closes stream.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:IsOpen`(`)const:%- [@(0.0.255) virtual] [@(0.0.255) bool]_[* IsOpen]()_[@(0.0.255) c +onst]_`=_[@3 0]&] +[s7; [* Return value]-|true if stream is open.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:IsError`(`)const:%- [@(0.0.255) bool]_[* IsError]()_[@(0.0.255) const]&] +[s7; [* Return value]-|true if error was encountered during stream operations +since opening it or last [* ClearError] call `- error code is non`-zero.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:IsOK`(`)const:%- [@(0.0.255) bool]_[* IsOK]()_[@(0.0.255) const]&] +[s7; [*/ Return value]-|!IsError().&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:SetError`(int`):%- [@(0.0.255) void]_[* SetError]([@(0.0.255) int]_[*@3 c]_`=_ +[@3 0])&] +[s2; Sets stream error code.&] +[s7; [%-*C@3 c]-|Error code.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:SetLastError`(`):%- [@(0.0.255) void]_[* SetLastError]()&] +[s2; Sets stream error to last OS`-specific error (obtained e.g. +by GetLastError call in Win32 or in errno in Posix). This error +can be interpreted by GetErrorMessage function.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:GetError`(`)const:%- [@(0.0.255) int]_[* GetError]()_[@(0.0.255) const]&] +[s2; Returns current error`-code. Zero indicates no error.&] +[s3;%- &] +[s4;%- &] +[s5;:Upp`:`:Stream`:`:GetErrorText`(`)const:%- [_^Upp`:`:String^ String]_[* GetErrorText]( +)_[@(0.0.255) const]&] +[s2; Returns the text description of the last error.&] +[s3;%- &] +[s4;%- &] +[s5;:Stream`:`:ClearError`(`):%- [@(0.0.255) void]_[* ClearError]()&] +[s2; Clears error code.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:GetPos`(`)const:%- [_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:int64`:`:typedef^ i +nt64]_[* GetPos]()_[@(0.0.255) const]&] +[s7; [*/ Return value]-|Current position in the stream.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:GetLeft`(`)const:%- [_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:int64`:`:typedef^ i +nt64]_[* GetLeft]()_[@(0.0.255) const]&] +[s7; [*/ Return value]-|Bytes between current position and the end of +stream `- equivalent to GetSize() `- GetPos().&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:SeekEnd`(int64`):%- [@(0.0.255) void]_[* SeekEnd]([_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:int64`:`:typedef^ i +nt64]_[*@3 rel]_`=_[@3 0])&] +[s2; Sets current position in the stream relative to the end of stream. +Same as Seek(GetSize() `+ rel).&] +[s7; [%-*C@3 rel]-|Position `- should be less or equal to zero.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:SeekCur`(int64`):%- [@(0.0.255) void]_[* SeekCur]([_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:int64`:`:typedef^ i +nt64]_[*@3 rel])&] +[s2; Sets current position in the stream relative to the current +position. Same as Seek(GetPos() `+ rel).&] +[s7; [%-*C@3 rel]-|Relative offset.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:IsEof`(`):%- [@(0.0.255) bool]_[* IsEof]()&] +[s2; There are no more byte to be read from the stream. Is also true +in case of error.&] +[s3;%- &] +[s4;%- &] +[s5;:Stream`:`:Put`(int`):%- [@(0.0.255) void]_[* Put]([@(0.0.255) int]_[*@3 c])&] +[s2; Puts single byte into the output stream.&] +[s7; [%-*C@3 c]-|Byte.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Term`(`):%- [@(0.0.255) int]_[* Term]()&] +[s5;:Stream`:`:Peek`(`):%- [@(0.0.255) int]_[* Peek]()&] +[s2; Peeks byte from input stream not advancing current position. +If there are no more bytes in input stream or error occurred, +negative value is returned.&] +[s3;%- &] +[s4;%- &] +[s5;:Stream`:`:Get`(`):%- [@(0.0.255) int]_[* Get]()&] +[s2; Reads single byte from input stream, advancing current position. +If there are no more bytes in input stream or error occurred, +negative value is returned.&] +[s7; [*/ Return value]-|Byte read from input stream.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:PeekPtr`(int`):%- [@(0.0.255) const]_[_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:byte`:`:typedef^ b +yte]_`*[* PeekPtr]([@(0.0.255) int]_[*@3 size]_`=_[@3 1])&] +[s2; This is a special optimization method; it might return a pointer +to data of [%-*@3 size] bytes at current position in the stream, +but it is allowed to return NULL `- in that case you need to +use Get to load data. PeekPtr does not move the position forward, +you need to use some of Seek methods to do that.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:GetPtr`(int`):%- [@(0.0.255) const]_[_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:byte`:`:typedef^ b +yte]_`*[* GetPtr]([@(0.0.255) int]_[*@3 size]_`=_[@3 1])&] +[s2; This is a special optimization method; it might return a pointer +to data of [%-*@3 size] bytes at current position in the stream, +but it is allowed to return NULL `- in that case you need to +use Get to load data. Unlike PeekPtr, it advances stream by [%-*@3 size].&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:PutPtr`(int`):%- [_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:byte`:`:typedef^ b +yte]_`*[* PutPtr]([@(0.0.255) int]_[*@3 size]_`=_[@3 1])&] +[s2; This is a special optimization method; it might return a writable +pointer where you can write output data of [%-*@3 size] bytes, +but it is allowed to return NULL `- in that case you need to +output data using Put. Advances stream by [%-*@3 size].&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:GetSzPtr`(int`&`):%- [@(0.0.255) const]_[_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:byte`:`:typedef^ b +yte]_`*[* GetSzPtr]([@(0.0.255) int`&]_[*@3 size])&] +[s2; This is a special optimization method, it returns a pointer +to data at current position of stream, sets [%-*@3 size] to the +maximal possible amount of bytes that can be read from this pointer +and advances stream by this size. [%-*@3 size] can be set to zero, +in that case stream has to be read by another means (e.g. Get).&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Put`(const void`*`,int`):%- [@(0.0.255) void]_[* Put]([@(0.0.255) const]_[@(0.0.255) v +oid]_`*[*@3 data], [@(0.0.255) int]_[*@3 size])&] +[s2; Writes a block of raw binary data to the output stream.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Get`(void`*`,int`):%- [@(0.0.255) int]_[* Get]([@(0.0.255) void]_`*[*@3 data], + [@(0.0.255) int]_[*@3 size])&] +[s2; Reads at most [%-*@3 size] bytes from the stream to [%-*@3 data]. +Returns the number of bytes actually read.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Get`(int`):%- [_^String^ String]_[* Get]([@(0.0.255) int]_[*@3 size])&] +[s2; Reads at most [%-*@3 size] bytes from the input stream and returns +result as String.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:GetAll`(int`):%- [_^String^ String]_[* GetAll]([@(0.0.255) int]_[*@3 size])&] +[s2; Reads exactly [%-*@3 size] bytes from the input stream and returns +result as String. If there is not enough bytes left, returns +String`::GetVoid(). Note that is [%-*@3 size] is large (currently +> 4MB), function reads result in chunks in order to avoid problems +with corrupted streams, e.g. situation where the [%-*@3 size] is +obtained from the stream, is corrupted and too big and allocating +that much memory would cause out`-of`-memory situation.&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:Stream`:`:Skip`(int`):%- [@(0.0.255) int]_[* Skip]([@(0.0.255) int]_[*@3 size])&] +[s2; Skips [%-*@3 size] bytes in input Stream. This is similar to SeekCur([%-*@3 size]), +however it works with Streams that do not support seeking. Returns +a number of bytes actually skipped (can be less than required +because of EOF).&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:GetAll`(void`*`,int`):%- [@(0.0.255) bool]_[* GetAll]([@(0.0.255) void]_`*[*@3 d +ata], [@(0.0.255) int]_[*@3 size])&] +[s2; Reads [%-*@3 size] bytes from the stream to memory at [%-*@3 data]. +If there is not enough data in the stream, LoadError is invoked +(that in turn might throw an exception). Returns true if required +number of bytes was read.&] +[s3;%- &] +[s4;%- &] +[s5;:Stream`:`:Put64`(const void`*`,int64`):%- [@(0.0.255) void]_[* Put64]([@(0.0.255) cons +t]_[@(0.0.255) void]_`*[*@3 data], [_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:int64`:`:typedef^ i +nt64]_[*@3 size])&] +[s2; Writes a block of raw binary data to the output stream, unlike +regular Put, block size can be greater than 2GB, if CPU is 64 +bit.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Get64`(void`*`,int64`):%- [_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:int64`:`:typedef^ i +nt64]_[* Get64]([@(0.0.255) void]_`*[*@3 data], [_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:int64`:`:typedef^ i +nt64]_[*@3 size])&] +[s2; Reads at most [%-*@3 size] bytes from the stream to [%-*@3 data]. +Returns the number of bytes actually read. Unlike regular Get, +block size can be greater than 2GB, if CPU is 64 bit.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:GetAll64`(void`*`,int64`):%- [@(0.0.255) bool]_[* GetAll64]([@(0.0.255) void +]_`*[*@3 data], [_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:int64`:`:typedef^ i +nt64]_[*@3 size])&] +[s2; Reads [%-*@3 size] bytes from the stream to memory at [%-*@3 data]. +If there is not enough data in the stream, LoadError is invoked +(that in turn might throw an exception). Returns true if required +number of bytes was read. Unlike regular Get, block size can +be greater than 2GB, if CPU is 64 bit.&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:Stream`:`:Get`(Upp`:`:Huge`&`,size`_t`):%- [_^size`_t^ size`_t]_[* Get]([_^Upp`:`:Huge^ H +uge][@(0.0.255) `&]_[*@3 h], [_^size`_t^ size`_t]_[*@3 size])&] +[s2; Reads data into [%-*@3 h], returns the size read.&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:Stream`:`:GetAll`(Upp`:`:Huge`&`,size`_t`):%- [@(0.0.255) bool]_[* GetAll]([_^Upp`:`:Huge^ H +uge][@(0.0.255) `&]_[*@3 h], [_^size`_t^ size`_t]_[*@3 size])&] +[s2; Reads data into [%-*@3 h], returns the size read. If there is +not enough data in the stream, LoadError is invoked (that in +turn might throw an exception).&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:LoadThrowing`(`):%- [@(0.0.255) void]_[* LoadThrowing]()&] +[s2; Sets stream into the mode that throws LoadingError exception +when LoadError is invoked. This mode is typical for serialization +usage of stream.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:LoadError`(`):%- [@(0.0.255) void]_[* LoadError]()&] +[s2; Performs SetError(ERROR`_LOADING`_FAILED). If Stream set to +the LoadThrowing mode (by LoadThrowing() method), LoadingError +exception is thrown.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Get8`(`):%- [@(0.0.255) int]_[* Get8]()&] +[s2; Reads a single byte from the stream. If there is not enough +data in the stream, LoadError is invoked (that in turn might +throw an exception) `- this is the difference from Get() method.&] +[s7; [*/ Return value]-|Byte from stream or `-1.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Get16`(`):%- [@(0.0.255) int]_[* Get16]()&] +[s2; Reads 16`-bit value from the stream in platform specific format +(either little`-endian or big`-endian). If there is not enough +data in the stream, LoadError is invoked (that in turn might +throw an exception) and `-1 returned.&] +[s7; [*/ Return value]-|16`-bit value.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Get32`(`):%- [@(0.0.255) int]_[* Get32]()&] +[s2; Reads 32`-bit value from the stream in platform specific format +(either little`-endian or big`-endian). If there is not enough +data in the stream, LoadError is invoked (that in turn might +throw an exception) and `-1 returned (but that is a valid return +value as well).&] +[s7; [*/ Return value]-|32`-bit value.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Get64`(`):%- [_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:int64`:`:typedef^ i +nt64]_[* Get64]()&] +[s2; Reads 64`-bit value from the stream in platform specific format +(either little`-endian or big`-endian). If there is not enough +data in the stream, LoadError is invoked (that in turn might +throw an exception) and `-1 returned (but that is a valid return +value as well).&] +[s7; [*/ Return value]-|64`-bit value.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Get16le`(`):%- [@(0.0.255) int]_[* Get16le]()&] +[s2; Reads 16`-bit value from the stream in the little`-endian mode. +If there is not enough data in the stream, LoadError is invoked +(that in turn might throw an exception) and `-1 returned.&] +[s7; [*/ Return value]-|16`-bit value.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Get32le`(`):%- [@(0.0.255) int]_[* Get32le]()&] +[s2; Reads 32`-bit value from the stream in the little`-endian mode. +If there is not enough data in the stream, LoadError is invoked +(that in turn might throw an exception) and `-1 returned (but +that is a valid return value as well).&] +[s7; [*/ Return value]-|32`-bit value.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Get64le`(`):%- [_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:int64`:`:typedef^ i +nt64]_[* Get64le]()&] +[s2; Reads 64`-bit value from the stream in the little`-endian mode. +If there is not enough data in the stream, LoadError is invoked +(that in turn might throw an exception) and `-1 returned (but +that is a valid value return as well).&] +[s7; [*/ Return value]-|64`-bit value.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Get16be`(`):%- [@(0.0.255) int]_[* Get16be]()&] +[s2; Reads 16`-bit value from the stream in the big`-endian mode. +If there is not enough data in the stream, LoadError is invoked +(that in turn might throw an exception) and `-1 is returned.&] +[s7; [*/ Return value]-|16`-bit value.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Get32be`(`):%- [@(0.0.255) int]_[* Get32be]()&] +[s2; Reads 32`-bit value from the stream in the big`-endian mode. +If there is not enough data in the stream, LoadError is invoked +(that in turn might throw an exception) and `-1 returned (but +that is a valid value return as well).&] +[s7; [*/ Return value]-|32`-bit value.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Get64be`(`):%- [_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:int64`:`:typedef^ i +nt64]_[* Get64be]()&] +[s2; Reads 64`-bit value from the stream in the big`-endian mode. +If there is not enough data in the stream, LoadError is invoked +(that in turn might throw an exception) and `-1 returned (but +that is a valid value return as well).&] +[s7; [*/ Return value]-|64`-bit value.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:GetLine`(`):%- [_^String^ String]_[* GetLine]()&] +[s2; Reads single line from the stream. Line is delimited by `'`\n`' +character or the end of file (or error). `'`\r`' characters are +ignored.&] +[s7; [*/ Return value]-|Line from the stream.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:GetUtf8`(`):%- [@(0.0.255) int]_[* GetUtf8]()&] +[s2; Reads single Utf8 encoded value from the stream.&] +[s7; [*/ Return value]-|Utf`-8 value.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Put16`(word`):%- [@(0.0.255) void]_[* Put16]([_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:word`:`:typedef^ w +ord]_[*@3 q])&] +[s2; Writes 16`-bit value [%-*@3 q ]in platform specific format (either +little`-endian or big`-endian).&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Put32`(dword`):%- [@(0.0.255) void]_[* Put32]([_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:dword`:`:typedef^ d +word]_[*@3 q])&] +[s2; Writes 32`-bit value [%-*@3 q ]in platform specific format (either +little`-endian or big`-endian).&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Put64`(int64`):%- [@(0.0.255) void]_[* Put64]([_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:int64`:`:typedef^ i +nt64]_[*@3 q])&] +[s2; Writes 64`-bit value [%-*@3 q ]in platform specific format (either +little`-endian or big`-endian).&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Put16le`(word`):%- [@(0.0.255) void]_[* Put16le]([_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:word`:`:typedef^ w +ord]_[*@3 q])&] +[s2; Writes 16`-bit value [%-*@3 q ]in little`-endian mode.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Put32le`(dword`):%- [@(0.0.255) void]_[* Put32le]([_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:dword`:`:typedef^ d +word]_[*@3 q])&] +[s2; Writes 32`-bit value [%-*@3 q ]in little`-endian mode.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Put64le`(int64`):%- [@(0.0.255) void]_[* Put64le]([_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:int64`:`:typedef^ i +nt64]_[*@3 q])&] +[s2; Writes 64`-bit value [%-*@3 q ]in little`-endian mode.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Put16be`(word`):%- [@(0.0.255) void]_[* Put16be]([_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:word`:`:typedef^ w +ord]_[*@3 q])&] +[s2; Writes 16`-bit value [%-*@3 q ]in big`-endian mode.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Put32be`(dword`):%- [@(0.0.255) void]_[* Put32be]([_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:dowrd`:`:typedef^ d +word]_[*@3 q])&] +[s2; Writes 32`-bit value [%-*@3 q ]in big`-endian mode.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Put64be`(int64`):%- [@(0.0.255) void]_[* Put64be]([_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:int64`:`:typedef^ i +nt64]_[*@3 q])&] +[s2; Writes 64`-bit value [%-*@3 q ]in big`-endian mode.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:PutUtf8`(int`):%- [@(0.0.255) void]_[* PutUtf8]([@(0.0.255) int]_[*@3 c])&] +[s2; Puts a single Utf8 value to the stream.&] +[s7; [%-*C@3 c]-|Value.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Put`(const char`*`):%- [@(0.0.255) void]_[* Put]([@(0.0.255) const]_[@(0.0.255) c +har]_`*[*@3 s])&] +[s2; Writes zero terminated string to the stream (zero is not written).&] +[s7; [%-*C@3 s]-|String to write.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Put`(const String`&`):%- [@(0.0.255) void]_[* Put]([@(0.0.255) const]_[_^String^ S +tring][@(0.0.255) `&]_[*@3 s])&] +[s2; Writes String to the the stream. String can contain zero characters.&] +[s7; [%-*C@3 s]-|String to write.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Put`(int`,int`):%- [@(0.0.255) void]_[* Put]([@(0.0.255) int]_[*@3 c], +[@(0.0.255) int]_[*@3 count])&] +[s2; Writes single byte to the stream requested number of times.&] +[s7; [%-*C@3 c]-|Byte to write.&] +[s7; [%-*C@3 count]-|Repeat count.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Put0`(int`):%- [@(0.0.255) void]_[* Put0]([@(0.0.255) int]_[*@3 count])&] +[s2; Writes zero byte to the stream requested number of times. This +variation is mainly provided because Put(0, count) causes ambiguity +as 0 is considered as NULL pointer too...&] +[s7; [%-*C@3 count]-|Repeat count.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:PutW`(const wchar`*`,int`):%- [@(0.0.255) void]_[* PutW]([@(0.0.255) const]_ +[_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:wchar`:`:typedef^ wchar +]_`*[*@3 s], [@(0.0.255) int]_[*@3 count])&] +[s2; Writes a specified number of wchars (16`-bit character values) +to the stream in platform specific format (little`-endian or +big`-endian).&] +[s7; [%-*C@3 s]-|String to write.&] +[s7; [%-*C@3 count]-|Length of string.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:GetW`(wchar`*`,int`):%- [_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:dword`:`:typedef^ d +word]_[* GetW]([_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:wchar`:`:typedef^ w +char]_`*[*@3 s], [@(0.0.255) int]_[*@3 count])&] +[s2; Reads a specified number of wchars (16`-bit character values) +from the stream in platform specific format.&] +[s7; [%-*C@3 s]-|Pointer to buffer to receive wchars.&] +[s7; [%-*C@3 count]-|Number of wchars.&] +[s7; [*/ Return value]-|Number of wchars actually read.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:GetAllW`(wchar`*`,int`):%- [@(0.0.255) bool]_[* GetAllW]([_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:wchar`:`:typedef^ w +char]_`*[*@3 s], [@(0.0.255) int]_[*@3 count])&] +[s2; Reads a specified number of wchars (16`-bit character values) +from the stream in platform specific format. If there is not +enough data in the stream, LoadError is invoked (that in turn +might throw an exception).&] +[s7; [%-*C@3 s]-|&] +[s7; [%-*C@3 count]-|&] +[s7; [*/ Return value]-|&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:PutCrLf`(`):%- [@(0.0.255) void]_[* PutCrLf]()&] +[s2; Writes CR`-LF pair to the stream. &] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:PutEol`(`):%- [@(0.0.255) void]_[* PutEol]()&] +[s2; Writes platform specific `"end of line`" to the stream. It is +CR`-LF pair on Win32 platform or single LF on Posix platform.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:operator`<`<`(EOLenum`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* operator<<]( +EOLenum)&] +[s2; This is the same as PutEol. EOLenum contains single value, EOL. +This is operator allows more convenient way to express PutEol +in the chain of << operators.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:PutLine`(const char`*`):%- [@(0.0.255) void]_[* PutLine]([@(0.0.255) const]_ +[@(0.0.255) char]_`*[*@3 s])&] +[s2; Writes a line to stream `- equivalent of Put(s); PutEol();&] +[s7; [%-*C@3 s]-|Zero`-terminated string.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:PutLine`(const String`&`):%- [@(0.0.255) void]_[* PutLine]([@(0.0.255) const +]_[_^String^ String][@(0.0.255) `&]_[*@3 s])&] +[s2; Writes a line to stream `- equivalent of Put(s); PutEol();&] +[s7; [%-*C@3 s]-|String.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Put`(Stream`&`,int64`,dword`):%- [@(0.0.255) void]_[* Put]([_^Stream^ Stream +][@(0.0.255) `&]_[*@3 s], [_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:int64`:`:typedef^ i +nt64]_[*@3 size]_`=_INT64`_MAX, [_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:dword`:`:typedef^ d +word]_[*@3 click]_`=_[@3 4096])&] +[s2; Writes a content of specified stream to the stream.&] +[s7; [%-*C@3 s]-|Input stream.&] +[s7; [%-*C@3 size]-|Maximum number of bytes to write. Default value +INT64`_MAX means whole input stream from current position to +the end is written.&] +[s7; [%-*C@3 click]-|Size of buffer used for copying.&] +[s3; &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0; [* Public Member List: Serialization Support]]}}&] +[s3;%- &] +[s5;:Stream`:`:SetLoading`(`):%- [@(0.0.255) void]_[* SetLoading]()&] +[s2; Sets the stream into the loading mode.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:SetStoring`(`):%- [@(0.0.255) void]_[* SetStoring]()&] +[s2; Sets the stream into the storing mode.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:IsLoading`(`)const:%- [@(0.0.255) bool]_[* IsLoading]()_[@(0.0.255) const]&] +[s2; Returns true if stream is in loading mode.&] +[s3;%- &] +[s4;%- &] +[s5;:Stream`:`:IsStoring`(`)const:%- [@(0.0.255) bool]_[* IsStoring]()_[@(0.0.255) const]&] +[s2; Returns true if stream is in storing mode.&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:Stream`:`:SerializeRaw`(Upp`:`:byte`*`,Upp`:`:int64`):%- [@(0.0.255) void]_ +[* SerializeRaw]([_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:byte`:`:typedef^ b +yte]_`*[*@3 data], [_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:int64`:`:typedef^ i +nt64]_[*@3 count])&] +[s2; Serializes raw 8`-bit data. Might invoke LoadError if there +is not enough data to load. Data are always stored in little`-endian +mode (conversion performed on BE systems as necessary).&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:Stream`:`:SerializeRaw`(Upp`:`:word`*`,Upp`:`:int64`):%- [@(0.0.255) void]_ +[* SerializeRaw]([_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:word`:`:typedef^ w +ord]_`*[*@3 data], [_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:int64`:`:typedef^ i +nt64]_[*@3 count])&] +[s2; Serializes raw 16`-bit data. Might invoke LoadError if there +is not enough data to load. Data are always stored in little`-endian +mode (conversion performed on BE systems as necessary).&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:Stream`:`:SerializeRaw`(Upp`:`:dword`*`,Upp`:`:int64`):%- [@(0.0.255) void]_ +[* SerializeRaw]([_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:dword`:`:typedef^ d +word]_`*[*@3 data], [_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:int64`:`:typedef^ i +nt64]_[*@3 count])&] +[s2; Serializes raw 32`-bit data. Might invoke LoadError if there +is not enough data to load. Data are always stored in little`-endian +mode (conversion performed on BE systems as necessary).&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:Stream`:`:SerializeRaw`(Upp`:`:uint64`*`,Upp`:`:int64`):%- [@(0.0.255) void +]_[* SerializeRaw]([_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:uint64`:`:typedef^ u +int64]_`*[*@3 data], [_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:int64`:`:typedef^ i +nt64]_[*@3 count])&] +[s2; Serializes raw 64`-bit data. Might invoke LoadError if there +is not enough data to load. Data are always stored in little`-endian +mode (conversion performed on BE systems as necessary).&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:SerializeRLE`(byte`*`,int`):%- [@(0.0.255) void]_[* SerializeRLE]([_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:byte`:`:typedef^ b +yte]_`*[*@3 data], [@(0.0.255) int]_[*@3 count])&] +[s2; Serializes raw data, using simple RLE compression.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:operator`%`(bool`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* operator%]([@(0.0.255) b +ool`&]_[*@3 d])&] +[s2; Serializes bool variable [%-*@3 d]. Might invoke LoadError if +there is not enough data to load. Returns [* `*this] for chaining.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:operator`%`(char`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* operator%]([@(0.0.255) c +har`&]_[*@3 d])&] +[s2; Serializes char variable [%-*@3 d]. Might invoke LoadError if +there is not enough data to load. Returns [* `*this] for chaining.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:operator`%`(signed char`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* operator +%]([@(0.0.255) signed]_[@(0.0.255) char`&]_[*@3 d])&] +[s2; Serializes signed char variable [%-*@3 d]. Might invoke LoadError +if there is not enough data to load. Returns [* `*this] for chaining.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:operator`%`(unsigned char`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* operat +or%]([@(0.0.255) unsigned]_[@(0.0.255) char`&]_[*@3 d])&] +[s2; Serializes unsigned char variable [%-*@3 d]. Might invoke LoadError +if there is not enough data to load. Returns [* `*this] for chaining.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:operator`%`(short`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* operator%]([@(0.0.255) s +hort`&]_[*@3 d])&] +[s2; Serializes short variable [%-*@3 d]. Might invoke LoadError if +there is not enough data to load. Returns [* `*this] for chaining.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:operator`%`(unsigned short`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* opera +tor%]([@(0.0.255) unsigned]_[@(0.0.255) short`&]_[*@3 d])&] +[s2; Serializes unsigned short variable [%-*@3 d]. Might invoke LoadError +if there is not enough data to load. Returns [* `*this] for chaining.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:operator`%`(int`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* operator%]([@(0.0.255) i +nt`&]_[*@3 d])&] +[s2; Serializes int variable [%-*@3 d]. Might invoke LoadError if there +is not enough data to load. Returns [* `*this] for chaining.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:operator`%`(unsigned int`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* operato +r%]([@(0.0.255) unsigned]_[@(0.0.255) int`&]_[*@3 d])&] +[s2; Serializes unsigned int variable [%-*@3 d]. Might invoke LoadError +if there is not enough data to load. Returns [* `*this] for chaining.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:operator`%`(long`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* operator%]([@(0.0.255) l +ong`&]_[*@3 d])&] +[s2; Serializes long variable [%-*@3 d]. Might invoke LoadError if +there is not enough data to load. Returns [* `*this] for chaining.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:operator`%`(unsigned long`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* operat +or%]([@(0.0.255) unsigned]_[@(0.0.255) long`&]_[*@3 d])&] +[s2; Serializes unsigned long variable [%-*@3 d]. Might invoke LoadError +if there is not enough data to load. Returns [* `*this] for chaining.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:operator`%`(float`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* operator%]([@(0.0.255) f +loat`&]_[*@3 d])&] +[s2; Serializes float variable [%-*@3 d]. Might invoke LoadError if +there is not enough data to load. Returns [* `*this] for chaining.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:operator`%`(double`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* operator%]([@(0.0.255) d +ouble`&]_[*@3 d])&] +[s2; Serializes double variable [%-*@3 d]. Might invoke LoadError if +there is not enough data to load. Returns [* `*this] for chaining.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:operator`%`(int64`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* operator%]([_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:int64`:`:typedef^ i +nt64][@(0.0.255) `&]_[*@3 d])&] +[s2; Serializes int64 variable [%-*@3 d]. Might invoke LoadError if +there is not enough data to load. Returns [* `*this] for chaining.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:operator`%`(uint64`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* operator%]([_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:uint64`:`:typedef^ u +int64][@(0.0.255) `&]_[*@3 d])&] +[s2; Serializes uint64 variable [%-*@3 d]. Might invoke LoadError if +there is not enough data to load. Returns [* `*this] for chaining.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:operator`%`(String`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* operator%]([_^String^ S +tring][@(0.0.255) `&]_[*@3 s])&] +[s2; Serializes String variable [%-*@3 s]. Might invoke LoadError if +there is not enough data to load or input data are invalid. Returns +[* `*this] for chaining.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:operator`/`(String`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* operator/]([_^String^ S +tring][@(0.0.255) `&]_[*@3 s])&] +[s2; Serializes String variable [%-*@3 s ]using RLE compression and +packed format for length. Might invoke LoadError if there is +not enough data to load or input data are invalid. Returns [* `*this] +for chaining.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:operator`%`(WString`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* operator%]([_^WString^ W +String][@(0.0.255) `&]_[*@3 s])&] +[s2; Serializes WString variable. Might invoke LoadError if there +is not enough data to load or input data are invalid. Returns +[* `*this] for chaining.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:operator`/`(WString`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* operator/]([_^WString^ W +String][@(0.0.255) `&]_[*@3 s])&] +[s2; Serializes String variable using RLE compression and packed +format for length. Might invoke LoadError if there is not enough +data to load or input data are invalid. Returns [* `*this] for +chaining.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Pack`(dword`&`):%- [@(0.0.255) void]_[* Pack]([_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:dword`:`:typedef^ d +word][@(0.0.255) `&]_[*@3 i])&] +[s2; Serializes dword value using format optimized for storing small +values. Values 0..254 are stored as serializes as single byte, +other values result in 5 bytes. Might invoke LoadError if there +is not enough data to load or input data are invalid.&] +[s7; [%-*C@3 i]-|Variable to serialize.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:operator`/`(int`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* operator/]([@(0.0.255) i +nt`&]_[*@3 i])&] +[s2; Serializes int value using format optimized for storing small +values. Might invoke LoadError if there is not enough data to +load or input data are invalid.&] +[s7; [%-*C@3 i]-|Variable to serialize.&] +[s7; [*/ Return value]-|`*this for chaining.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:operator`/`(unsigned int`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* operato +r/]([@(0.0.255) unsigned]_[@(0.0.255) int`&]_[*@3 i])&] +[s2; Serializes unsigned int value using format optimized for storing +small values. Might invoke LoadError if there is not enough data +to load or input data are invalid.&] +[s7; [%-*C@3 i]-|Variable to serialize.&] +[s7; [*/ Return value]-|`*this for chaining.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Magic`(dword`):%- [@(0.0.255) void]_[* Magic]([_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:dword`:`:typedef^ d +word]_[*@3 magic]_`=_[@3 0]x7d674d7b)&] +[s2; Serializes `"magic value`" to ensure stream integrity. When +loading, this value is loaded and checked `- mismatch results +in invoking LoadError.&] +[s7; [%-*C@3 magic]-|Magic value.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Pack`(bool`&`,bool`&`,bool`&`,bool`&`,bool`&`,bool`&`,bool`&`,bool`&`):%- [@(0.0.255) v +oid]_[* Pack]([@(0.0.255) bool`&]_[*@3 a], [@(0.0.255) bool`&]_[*@3 b], +[@(0.0.255) bool`&]_[*@3 c], [@(0.0.255) bool`&]_[*@3 d], [@(0.0.255) bool`&]_[*@3 e], +[@(0.0.255) bool`&]_[*@3 f], [@(0.0.255) bool`&]_[*@3 g], [@(0.0.255) bool`&]_[*@3 h])&] +[s2; Serializes a set of boolean values compressed into single byte.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Pack`(bool`&`,bool`&`,bool`&`,bool`&`,bool`&`,bool`&`,bool`&`):%- [@(0.0.255) v +oid]_[* Pack]([@(0.0.255) bool`&]_[*@3 a], [@(0.0.255) bool`&]_[*@3 b], +[@(0.0.255) bool`&]_[*@3 c], [@(0.0.255) bool`&]_[*@3 d], [@(0.0.255) bool`&]_[*@3 e], +[@(0.0.255) bool`&]_[*@3 f], [@(0.0.255) bool`&]_[*@3 g])&] +[s2; Serializes a set of boolean values compressed into single byte.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Pack`(bool`&`,bool`&`,bool`&`,bool`&`,bool`&`,bool`&`):%- [@(0.0.255) vo +id]_[* Pack]([@(0.0.255) bool`&]_[*@3 a], [@(0.0.255) bool`&]_[*@3 b], +[@(0.0.255) bool`&]_[*@3 c], [@(0.0.255) bool`&]_[*@3 d], [@(0.0.255) bool`&]_[*@3 e], +[@(0.0.255) bool`&]_[*@3 f])&] +[s2; Serializes a set of boolean values compressed into single byte.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Pack`(bool`&`,bool`&`,bool`&`,bool`&`,bool`&`):%- [@(0.0.255) void]_[* Pac +k]([@(0.0.255) bool`&]_[*@3 a], [@(0.0.255) bool`&]_[*@3 b], [@(0.0.255) bool`&]_[*@3 c], +[@(0.0.255) bool`&]_[*@3 d], [@(0.0.255) bool`&]_[*@3 e])&] +[s2; Serializes a set of boolean values compressed into single byte.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Pack`(bool`&`,bool`&`,bool`&`,bool`&`):%- [@(0.0.255) void]_[* Pack]([@(0.0.255) b +ool`&]_[*@3 a], [@(0.0.255) bool`&]_[*@3 b], [@(0.0.255) bool`&]_[*@3 c], +[@(0.0.255) bool`&]_[*@3 d])&] +[s2; Serializes a set of boolean values compressed into single byte.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Pack`(bool`&`,bool`&`,bool`&`):%- [@(0.0.255) void]_[* Pack]([@(0.0.255) boo +l`&]_[*@3 a], [@(0.0.255) bool`&]_[*@3 b], [@(0.0.255) bool`&]_[*@3 c])&] +[s2; Serializes a set of boolean values compressed into single byte.&] +[s4;%- &] +[s5;:Stream`:`:Pack`(bool`&`,bool`&`):%- [@(0.0.255) void]_[* Pack]([@(0.0.255) bool`&]_[*@3 a +], [@(0.0.255) bool`&]_[*@3 b])&] +[s2; Serializes a set of boolean values compressed into single byte.&] +[s3; &] +[s0;3 &] +[s0;3 &] +[s0;%- &] +[ {{10000@(113.42.0) [s0; [*@7;4 StringStream]]}}&] +[s3; &] +[s1;:StringStream`:`:class:%- [@(0.0.255)3 class][3 _][*3 StringStream][3 _:_][@(0.0.255)3 publi +c][3 _][*@3;3 Stream]&] +[s9; StringStream is stream that uses String as storage medium. The +maximum output size is limited to 2GB (maximum String size limit).&] +[s2; &] +[s0;%- [%%/ Derived from][%% ][^topic`:`/`/Core`/src`/Stream`$en`-us`#`:`:Stream`:`:class Stream^ S +tream]&] +[s3; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] +[s3;%- &] +[s5;:StringStream`:`:StringStream`(`):%- [* StringStream]()&] +[s2; Consructs empty stream and sets it into Storing serialization +mode (like [* Create]).&] +[s3; &] +[s4;%- &] +[s5;:StringStream`:`:StringStream`(const String`&`):%- [* StringStream]([@(0.0.255) const +]_[_^String^ String][@(0.0.255) `&]_[*@3 data])&] +[s2; Constructs stream with specified content and sets it into Loading +serialization mode (like [* Open]).&] +[s7; [%-*C@3 data]-|Content of stream.&] +[s3; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Public Member List: Serialization Support]]}}&] +[s3;%- &] +[s5;:StringStream`:`:Open`(const String`&`):%- [@(0.0.255) void]_[* Open]([@(0.0.255) const +]_[_^String^ String][@(0.0.255) `&]_[*@3 data])&] +[s2;%- Sets the content of stream to specified String and sets it +into the Loading serialization mode.&] +[s7; [%-*C@3 data]-|Content of stream.&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:StringStream`:`:Limit`(int`):%- [@(0.0.255) void]_[* Limit]([@(0.0.255) int]_[*@3 s +z])&] +[s2; Sets the output size limit. Exception StringStream`::LimitExc +is thrown if this the output size reaches this limit.&] +[s3; &] +[s4;%- &] +[s5;:StringStream`:`:Create`(`):%- [@(0.0.255) void]_[* Create]()&] +[s2; Creates empty StringStream and sets it into Storing serialization +mode.&] +[s3; &] +[s4;%- &] +[s5;:StringStream`:`:Reserve`(int`):%- [@(0.0.255) void]_[* Reserve]([@(0.0.255) int]_[*@3 n]) +&] +[s2; Reserves additional [%-*@3 n] bytes of internal storage as optimization +hint. This might speedup the operation in certain cases if you +know how much data approximately will be put into StringStream.&] +[s3; &] +[s4;%- &] +[s5;:StringStream`:`:GetResult`(`):%- [_^String^ String]_[* GetResult]()&] +[s2; Returns resulting String.&] +[s7; [*/ Return value]-|Result.&] +[s3; &] +[s4;%- &] +[s5;:StringStream`:`:operator String`(`):%- [* operator_String]()&] +[s7; [*/ Return value]-|[^topic`:`/`/Core`/src`/Stream`$en`-us`#StringStream`:`:GetResult`(`)^ G +etResult]().&] +[s0;3 &] +[s0;3 &] +[s0;3 &] +[s0;%- &] +[ {{10000@(113.42.0) [s0; [*@7;4 MemStream]]}}&] +[s3; &] +[s1;:MemStream`:`:class:%- [@(0.0.255)3 class][3 _][*3 MemStream][3 _:_][@(0.0.255)3 public][3 _][*@3;3 S +tream]&] +[s9; Stream that is using raw memory as its content.&] +[s2; &] +[s0;%- [%%/ Derived from][%% ][^topic`:`/`/Core`/src`/Stream`$en`-us`#`:`:Stream`:`:class Stream^ S +tream]&] +[s3; &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] +[s3;%- &] +[s5;:MemStream`:`:MemStream`(void`*`,int`):%- [* MemStream]([@(0.0.255) void]_`*[*@3 data], + [@(0.0.255) int]_[*@3 size])&] +[s2; Constructs [* MemStream] at specified memory buffer.&] +[s7; [%-*C@3 data]-|Pointer to the stream content.&] +[s7; [%-*C@3 size]-|Size.&] +[s0;3 &] +[s0;3 &] +[s0;3 &] +[s0;%- &] +[ {{10000@(113.42.0) [s0; [*@7;4 MemReadStream]]}}&] +[s3;%- &] +[s1;:MemReadStream`:`:class:%- [@(0.0.255)3 class][3 _][*3 MemReadStream][3 _:_][@(0.0.255)3 pub +lic][3 _][*@3;3 MemStream]&] +[s9; Read`-only stream using raw memory as content.&] +[s2; &] +[s0;%- [%%/ Derived from][%% ][^topic`:`/`/Core`/src`/Stream`$en`-us`#`:`:MemStream`:`:class MemStream^ M +emStream]&] +[s3; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] +[s3; &] +[s5;:MemReadStream`:`:MemReadStream`(const void`*`,int`):%- [* MemReadStream]([@(0.0.255) c +onst]_[@(0.0.255) void]_`*[*@3 data], [@(0.0.255) int]_[*@3 size])&] +[s2; Constructs [* MemStream] at specified memory buffer.&] +[s7; [%-*C@3 data]-|Pointer to the stream content.&] +[s7; [%-*C@3 size]-|Size.&] +[s3; &] +[s0;3 &] +[s0;3 &] +[s0;%- &] +[ {{10000@(113.42.0) [s0; [*@7;4 BlockStream]]}}&] +[s3; &] +[s1;:BlockStream`:`:class:%- [@(0.0.255)3 class][3 _][*3 BlockStream][3 _:_][@(0.0.255)3 public][3 _ +][*@3;3 Stream]&] +[s9; BlockStream implements operations needed to manage streams that +are able to read or write a block of data at random positon. +BlockStream provides buffered implementation of such stream. +It implements all virtual methods of Stream, with exception of +[* IsOpen] and [* Close], using new virtual methods [* Read], [* Write] +and [* SetStreamSize].&] +[s2; &] +[s0;%- [%%/ Derived from][%% ][^topic`:`/`/Core`/src`/Stream`$en`-us`#`:`:BufferStream`:`:class BufferStream^ B +ufferStream]&] +[s3; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] +[s3;%- &] +[s0;%- [@(0.0.255) enum]_`{_[*@3 READ], [*@3 CREATE], [*@3 APPEND], [*@3 READWRITE], +[*@3 NOWRITESHARE], [*@3 DELETESHARE], [*@3 NOREADSHARE], [*@3 SHAREMASK]_`}&] +[s2; This enum defines basic operation modes of BlockStream (used +combined with binary or).&] +[s7;:`:`:BlockStream`:`:READ: [%-*C@3 READ]-|Read mode.&] +[s7;:`:`:BlockStream`:`:CREATE: [%-*C@3 CREATE]-|Write mode.&] +[s7;:`:`:BlockStream`:`:APPEND: [%-*C@3 APPEND]-|Append mode `- means +that initial position in the stream is at the end of it.&] +[s7;:`:`:BlockStream`:`:READWRITE: [%-*C@3 READWRITE]-|Enables subsequent +streams full access to stream.&] +[s7;:`:`:BlockStream`:`:NOWRITESHARE: [%-*C@3 NOWRITESHARE]-|Disables +subsequent streams to write to the stream.&] +[s7;:`:`:BlockStream`:`:DELETESHARE: [%-*C@3 DELETESHARE]-|Enables subsequent +streams to delete the stream.&] +[s7;:`:`:BlockStream`:`:NOREADSHARE: [%-*C@3 NOREADSHARE]-|Disables +subsequent streams to read the stream.&] +[s3; &] +[s4;%- &] +[s5;:BlockStream`:`:SetBufferSize`(dword`):%- [@(0.0.255) void]_[* SetBufferSize]([_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:dword`:`:typedef^ d +word]_[*@3 newsize])&] +[s2; Sets a new size of internal buffer.&] +[s7; [%-*C@3 newsize]-|The new size of buffer.&] +[s3; &] +[s4;%- &] +[s5;:BlockStream`:`:GetBufferSize`(`)const:%- [_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:dword`:`:typedef^ d +word]_[* GetBufferSize]()_[@(0.0.255) const]&] +[s2; [*/ Return value]-|Size of buffer.&] +[s3;%- &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Protected Member List]]}}&] +[s3; &] +[s5;:BlockStream`:`:Read`(int64`,void`*`,dword`):%- [@(0.0.255) virtual] +[_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:dword`:`:typedef^ dword +]_[* Read]([_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:int64`:`:typedef^ i +nt64]_[*@3 at], [@(0.0.255) void]_`*[*@3 ptr], [_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:dword`:`:typedef^ d +word]_[*@3 size])&] +[s2; Implementation of this virtual method in derived class should +read a block of data at specified position in media.&] +[s7; [%-*C@3 at]-|Position in media.&] +[s7; [%-*C@3 ptr]-|Pointer to buffer to receive data.&] +[s7; [%-*C@3 size]-|Requested size of data.&] +[s7; [*/ Return value]-|Size of data read.&] +[s3; &] +[s4;%- &] +[s5;:BlockStream`:`:Write`(int64`,const void`*`,dword`):%- [@(0.0.255) virtual] +[@(0.0.255) void]_[* Write]([_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:int64`:`:typedef^ i +nt64]_[*@3 at], [@(0.0.255) const]_[@(0.0.255) void]_`*[*@3 data], [_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:dword`:`:typedef^ d +word]_[*@3 size])&] +[s2; Implementation of this virtual method in derived method should +write a block of data at specified position in media.&] +[s7; [%-*C@3 at]-|Position in media.&] +[s7; [%-*C@3 data]-|Pointer to data.&] +[s7; [%-*C@3 size]-|Size of data.&] +[s3; &] +[s4;%- &] +[s5;:BlockStream`:`:SetStreamSize`(int64`):%- [@(0.0.255) virtual] +[@(0.0.255) void]_[* SetStreamSize]([_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:int64`:`:typedef^ i +nt64]_[*@3 size])&] +[s2; Implementation of this virtual method in derived class should +adjust the size of media.&] +[s7; [%-*C@3 size]-|Requested new size of media.&] +[s3; &] +[s4;%- &] +[s5;:BlockStream`:`:GetStreamSize`(`)const:%- [_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:int64`:`:typedef^ i +nt64]_[* GetStreamSize]()_[@(0.0.255) const]&] +[s2; Returns current media size. Note that this might be different +from current GetSize() `- media size adjustment can be deffered +to flushing the buffer.&] +[s7; [*/ Return value]-|Current media size.&] +[s3; &] +[s4;%- &] +[s5;:BlockStream`:`:OpenInit`(dword`,int64`):%- [@(0.0.255) void]_[* OpenInit]([_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:dword`:`:typedef^ d +word]_[*@3 mode], [_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:int64`:`:typedef^ i +nt64]_[*@3 file`_size])&] +[s2; Initializes the BlockStream to specified mode and actual media +size.&] +[s7; [%-*C@3 mode]-|Mode.&] +[s7; [%-*C@3 file`_size]-|Actual media size.&] +[s3; &] +[s0;3 &] +[s0;3 &] +[s0;%- &] +[ {{10000@(113.42.0) [s0; [*@7;4 FileStream]]}}&] +[s3; &] +[s1;:FileStream`:`:class:%- [@(0.0.255)3 class][3 _][*3 FileStream][3 _:_][@(0.0.255)3 public][3 _ +][*@3;3 BlockStream]&] +[s9; Classical file stream.&] +[s9; &] +[s0;%- [%%/ Derived from][%% ][^topic`:`/`/Core`/src`/Stream`$en`-us`#`:`:BlockStream`:`:class BlockStream^ B +lockStream]&] +[s3; &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] +[s3;%- &] +[s5;:FileStream`:`:FileStream`(const char`*`,dword`):%- [* FileStream]([@(0.0.255) const]_ +[@(0.0.255) char]_`*[*@3 filename], [_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:dword`:`:typedef^ d +word]_[*@3 mode])&] +[s2; Opens file stream in specified mode (as defined in BlockStream).&] +[s7; [%-*C@3 filename]-|The name of the file.&] +[s7; [%-*C@3 mode]-|Open mode.&] +[s3; &] +[s4;%- &] +[s5;:FileStream`:`:FileStream`(const char`*`,dword`,mode`_t`):%- [* FileStream]([@(0.0.255) c +onst]_[@(0.0.255) char]_`*[*@3 filename], [_^topic`:`/`/Core`/src`/PrimitiveDataTypes`$en`-us`#Upp`:`:dword`:`:typedef^ d +word]_[*@3 mode], mode`_t_[*@3 acm]_`=_[@3 0644])&] +[s6;%- Posix specific.&] +[s2; Opens file stream in specified mode (as defined in BlockStream) +and specific POSIX access rights.&] +[s7; [%-*C@3 filename]-|The name of the file.&] +[s7; [%-*C@3 mode]-|Open mode.&] +[s7; [%-*C@3 acm]-|Access rights.&] +[s3; &] +[s4;%- &] +[s5;:FileStream`:`:FileStream`(int`):%- [* FileStream]([@(0.0.255) int]_[*@3 std`_handle])&] +[s6; Posix specific.&] +[s2; Assigns existing file handle to FileStream.&] +[s7; [%-*C@3 std`_handle]-|File handle of open file. FileStream takes +ownership of this handle.&] +[s3; &] +[s4;%- &] +[s5;:FileStream`:`:FileStream`(`):%- [* FileStream]()&] +[s2; Creates empty unopened FileStream.&] +[s3; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] +[s3;%- &] +[s5;:FileStream`:`:operator bool`(`)const:%- [* operator_bool]()_[@(0.0.255) const]&] +[s2; [*/ Return value]-|True if stream is open.&] +[s3; &] +[s4;%- &] +[s5;:FileStream`:`:GetTime`(`)const:%- [_^FileTime^ FileTime]_[* GetTime]()_[@(0.0.255) con +st]&] +[s2; Returns last`-write time of stream.&] +[s7; [*/ Return value]-|Time.&] +[s3; &] +[s4;%- &] +[s5;:FileStream`:`:SetTime`(const FileTime`&`):%- [@(0.0.255) void]_[* SetTime]([@(0.0.255) c +onst]_[_^FileTime^ FileTime][@(0.0.255) `&]_[*@3 tm])&] +[s2; Opens file stream in specified mode (as defined in BlockStream).&] +[s7; [%-*C@3 filename]-|The name of the file.&] +[s2; [%-*C@3 mode]-|Open mode.&] +[s3; &] +[s4;%- &] +[s5;:FileStream`:`:Open`(const char`*`,dword`):%- [@(0.0.255) bool]_[* Open]([@(0.0.255) co +nst]_[@(0.0.255) char]_`*[*@3 filename], [_^dword^ dword]_[*@3 mode])&] +[s6;%- Posix specific.&] +[s2; Opens file stream in specified mode (as defined in BlockStream) +and specific POSIX access rights. [%-*@3 mode] can be one of READ, +CREATE, APPEND, READWRITE possibly combined (using `'`|`') with +flag NOWRITESHARE. This enforces exclusive write access to the +file.&] +[s7; [%-*C@3 filename]-|The name of the file.&] +[s7; [%-*C@3 mode]-|Open mode.&] +[s3; &] +[s4;%- &] +[s5;:FileStream`:`:Open`(const char`*`,dword`,mode`_t`):%- [@(0.0.255) bool]_[* Open]([@(0.0.255) c +onst]_[@(0.0.255) char]_`*[*@3 filename], [_^dword^ dword]_[*@3 mode], +mode`_t_[*@3 acm]_`=_[@3 0644])&] +[s6;%- Posix specific.&] +[s2; Opens file stream in specified mode (as defined in BlockStream) +and specific POSIX access rights. [%-*@3 mode] can be one of READ, +CREATE, APPEND, READWRITE possibly combined (using `'`|`') with +flag NOWRITESHARE. This flag uses flock system call to enforce +exclusive write access to the file. In READ, if file does not +exist, function fails. In CREATE mode, files is always created +empty. In APPEND and READWRITE modes, file is created if it does +not already exist.&] +[s7; [%-*C@3 filename]-|The name of the file.&] +[s7; [%-*C@3 mode]-|Open mode.&] +[s7; [%-*C@3 acm]-|Access rights.&] +[s3; &] +[s4;%- &] +[s5;:FileStream`:`:GetHandle`(`)const:%- HANDLE_[* GetHandle]()_[@(0.0.255) const]&] +[s2; [*/ Return value]-|File handle, either POSIX or WIN32.&] +[s3; &] +[s0;3 &] +[s0;3 &] +[s0;%- &] +[ {{10000@(113.42.0) [s0; [*@7;4 FileIn]]}}&] +[s3; &] +[s1;:FileIn`:`:class:%- [@(0.0.255)3 class][3 _][*3 FileIn][3 _:_][@(0.0.255)3 public][3 _][*@3;3 Fi +leStream]&] +[s9; Simple helper class that represents FileStream in read mode.&] +[s0; &] +[s9;%- [%%/ Derived from][%% ][^topic`:`/`/Core`/src`/Stream`$en`-us`#`:`:FileStream`:`:class FileStream^ F +ileStream]&] +[s3; &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] +[s3; &] +[s5;:FileIn`:`:FileIn`(const char`*`):%- [* FileIn]([@(0.0.255) const]_[@(0.0.255) char]_`* +[*@3 fn])&] +[s2; Opens file for reading.&] +[s7; [%-*C@3 fn]-|File name.&] +[s3; &] +[s4;%- &] +[s5;:FileIn`:`:FileIn`(`):%- [* FileIn]()&] +[s2; Constructs empty FileStream.&] +[s3; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] +[s3;%- &] +[s5;:FileIn`:`:Open`(const char`*`):%- [@(0.0.255) bool]_[* Open]([@(0.0.255) const]_[@(0.0.255) c +har]_`*[*@3 fn])&] +[s2; Opens file for reading.&] +[s7; [%-*C@3 fn]-|File name.&] +[s7; [*/ Return value]-|True if open was successful.&] +[s3; &] +[s0;3 &] +[s0;3 &] +[s0;%- &] +[ {{10000@(113.42.0) [s0; [*@7;4 FileOut]]}}&] +[s3; &] +[s1;:FileOut`:`:class:%- [@(0.0.255)3 class][3 _][*3 FileOut][3 _:_][@(0.0.255)3 public][3 _][*@3;3 F +ileStream]&] +[s9; Simple helper class that represents FileStream in write mode.&] +[s2; &] +[s0;%- [%%/ Derived from][%% ][^topic`:`/`/Core`/src`/Stream`$en`-us`#`:`:FileStream`:`:class FileStream^ F +ileStream]&] +[s3; &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] +[s3;%- &] +[s5;:FileOut`:`:FileOut`(const char`*`):%- [* FileOut]([@(0.0.255) const]_[@(0.0.255) char]_ +`*[*@3 fn])&] +[s2; Opens file for writing.&] +[s7; [%-*C@3 fn]-|File name.&] +[s3; &] +[s4;%- &] +[s5;:FileOut`:`:FileOut`(`):%- [* FileOut]()&] +[s2;%- Constructs non`-opened FileStream.&] +[s3; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] +[s3; &] +[s5;:FileOut`:`:Open`(const char`*`):%- [@(0.0.255) bool]_[* Open]([@(0.0.255) const]_[@(0.0.255) c +har]_`*[*@3 fn])&] +[s2; Opens file for writing.&] +[s7; [%-*C@3 fn]-|File name.&] +[s7; [*/ Return value]-|True if open was successful.&] +[s3; &] +[s4;%- &] +[s5;:FileOut`:`:Open`(const char`*`,mode`_t`):%- [@(0.0.255) bool]_[* Open]([@(0.0.255) con +st]_[@(0.0.255) char]_`*[*@3 fn], mode`_t_[*@3 acm]_`=_[@3 0644])&] +[s2; Opens file for writing.&] +[s6; POSIX specific&] +[s7; [%-*C@3 fn]-|File name.&] +[s7;%- [*@3 acm][@3 -|]File mode&] +[s2; [*/ Return value]-|True if open was successful.&] +[s3; &] +[s0; &] +[s0;3 &] +[s0;3 &] +[ {{10000@(113.42.0) [s0; [*@7;4 FileAppend]]}}&] +[s3; &] +[s1;:FileAppend`:`:class:%- [@(0.0.255)3 class][3 _][*3 FileAppend][3 _:_][@(0.0.255)3 public][3 _ +][*@3;3 FileStream]&] +[s9; Simple helper class that represents FileStream in append mode +`- that in fact means in write mode with current position at +the end of the file.&] +[s2; &] +[s0;%- [%%/ Derived from][%% ]FileStream&] +[s3; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] +[s3; &] +[s5;:FileAppend`:`:FileAppend`(const char`*`):%- [* FileAppend]([@(0.0.255) const]_[@(0.0.255) c +har]_`*[*@3 fn])&] +[s2; Opens file in append mode.&] +[s7; [%-*C@3 fn]-|File name.&] +[s3; &] +[s4;%- &] +[s5;:FileAppend`:`:FileAppend`(`):%- [* FileAppend]()&] +[s2; Constructs empty FileStream.&] +[s3; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] +[s3; &] +[s5;:FileAppend`:`:Open`(const char`*`):%- [@(0.0.255) bool]_[* Open]([@(0.0.255) const]_[@(0.0.255) c +har]_`*[*@3 fn])&] +[s2; Opens file in append mode.&] +[s7; [%-*C@3 fn]-|File name.&] +[s7; [*/ Return value]-|true when Open was successful.&] +[s3; &] +[s0;3 &] +[s0;3 &] +[s0;%- &] +[ {{10000@(113.42.0) [s0; [*@7;4 SizeStream]]}}&] +[s3; &] +[s1;:SizeStream`:`:class:%- [@(0.0.255)3 class][3 _][*3 SizeStream][3 _:_][@(0.0.255)3 public][3 _ +][*@3;3 Stream]&] +[s9; Special output stream that in fact does not store output data, +only counts the total number of bytes written.&] +[s2; &] +[s0;%- [%%/ Derived from][%% ][^topic`:`/`/Core`/src`/Stream`$en`-us`#`:`:BufferStream`:`:class BufferStream^ B +ufferStream]&] +[s3; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] +[s3; &] +[s0;:`:`:SizeStream`:`:SizeStream`(`):%- [* SizeStream]()&] +[s2; Default constructor.&] +[s3; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] +[s3; &] +[s5;:SizeStream`:`:Open`(`):%- [@(0.0.255) void]_[* Open]()&] +[s2; Reopens data `- resets the counter of output bytes.&] +[s3; &] +[s4;%- &] +[s5;:SizeStream`:`:operator int64`(`)const:%- [* operator_int64]()_[@(0.0.255) const]&] +[s2; Returns current number of bytes written.&] +[s3;%- &] +[s0; &] +[s0;3 &] +[s0;%- &] +[ {{10000@(113.42.0) [s0; [*@7;4 CompareStream]]}}&] +[s3; &] +[s1;:CompareStream`:`:class:%- [@(0.0.255)3 class][3 _][*3 CompareStream][3 _:_][@(0.0.255)3 pub +lic][3 _][*@3;3 Stream]&] +[s9; Special output stream that instead of storing data performs +their comparison to the data of another stream.&] +[s2; &] +[s0;%- [%%/ Derived from][%% ][^topic`:`/`/Core`/src`/Stream`$en`-us`#`:`:BufferStream`:`:class BufferStream^ B +ufferStream]&] +[s3; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] +[s3; &] +[s0;:CompareStream`:`:CompareStream`(`):%- [* CompareStream]()&] +[s2; Constructs closed CompareStream.&] +[s3; &] +[s4;%- &] +[s5;:CompareStream`:`:CompareStream`(Stream`&`):%- [* CompareStream]([_^Stream^ Stream][@(0.0.255) `& +]_[*@3 aStream])&] +[s2; Constructors CompareStream opened for comparison with specified +stream.&] +[s7; [%-*C@3 aStream]-|Stream to compare with.&] +[s3;%- &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] +[s3; &] +[s5;:CompareStream`:`:Open`(Stream`&`):%- [@(0.0.255) void]_[* Open]([_^Stream^ Stream][@(0.0.255) `& +]_[*@3 aStream])&] +[s2; Opens CompareStream for comparison with the specified stream.&] +[s7; [%-*C@3 aStream]-|Stream to compare with.&] +[s3; &] +[s4;%- &] +[s5;:CompareStream`:`:IsEqual`(`):%- [@(0.0.255) bool]_[* IsEqual]()&] +[s7; Return value-|true if all bytes written so far match those in +comparison stream.&] +[s3; &] +[s4;%- &] +[s5;:CompareStream`:`:operator bool`(`):%- [* operator_bool]()&] +[s7; Return value-|IsEqual().&] +[s3; &] [s0; ]] \ No newline at end of file diff --git a/uppsrc/Core/src.tpp/StringBuffer$en-us.tpp b/uppsrc/Core/src.tpp/StringBuffer_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/StringBuffer$en-us.tpp rename to uppsrc/Core/src.tpp/StringBuffer_en-us.tpp diff --git a/uppsrc/Core/src.tpp/StringUtils$en-us.tpp b/uppsrc/Core/src.tpp/StringUtils_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/StringUtils$en-us.tpp rename to uppsrc/Core/src.tpp/StringUtils_en-us.tpp diff --git a/uppsrc/Core/src.tpp/String$en-us.tpp b/uppsrc/Core/src.tpp/String_en-us.tpp similarity index 97% rename from uppsrc/Core/src.tpp/String$en-us.tpp rename to uppsrc/Core/src.tpp/String_en-us.tpp index e71f511e5..14f005d05 100644 --- a/uppsrc/Core/src.tpp/String$en-us.tpp +++ b/uppsrc/Core/src.tpp/String_en-us.tpp @@ -1,707 +1,707 @@ -topic "String and WString"; -[2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,0#27521748481378242620020725143825:desc] -[0 $$3,0#96390100711032703541132217272105:end] -[H6;0 $$4,0#05600065144404261032431302351956:begin] -[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] -[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] -[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] -[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] -[b42;2 $$9,9#13035079074754324216151401829390:normal] -[{_}%EN-US -[ {{10000@(113.42.0) [s0; [*@7;4 String]]}}&] -[s3; &] -[s1;:String`:`:class:%- [@(0.0.255)3 class][3 _][*3 String][3 _:_][@(0.0.255)3 public][3 _][*@3;3 Mo -veable][@(0.0.255)3 <][*3 String][3 , ][_^AString^3 AString][@(0.0.255)3 <][_^String0^3 Strin -g0][@(0.0.255)3 >][3 _>_]&] -[s9; String is a value class that contains an array of characters -(or bytes). It is designed to have fast copy operations. The -array of characters is zero terminated. String provides non`-mutable -access to the array of characters. String can store 8 bit encoded -string or an UTF`-8 encoded string. For UTF`-8 strings, however, -String works with raw 8 bit values `- there are not automatic -conversions performed e.g. in operator`[`]. If you need to access -individual UTF`-8 characters, the best practice in most cases -is to convert it to WString (and eventually back after processing).&] -[s9; String is also often used to store raw binary data.&] -[s9; WString is similar to String, but it uses 16 bit Ucs2 encoding. -String and WString share a number of common functions through -the AString interface.&] -[s3; &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] -[s3;%- &] -[s5;:String`:`:String`(`):%- [* String]()&] -[s2; Default constructor. Constructs empty [* String].&] -[s3;%- &] -[s4;%- &] -[s5;:String`:`:String`(const String`&`):%- [* String]([@(0.0.255) const]_[* String][@(0.0.255) `& -]_[*@3 s])&] -[s2; Default copy constructor.&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:String`:`:String`(Upp`:`:String`&`&`):%- [* String]([* String][@(0.0.255) `&`&]_ -[*@3 s])&] -[s2; Pick constructor.&] -[s3; &] -[s4;%- &] -[s5;:String`:`:String`(const char`*`):%- [* String]([@(0.0.255) const]_[@(0.0.255) char]_`* -[*@3 s])&] -[s2; Creates a copy of zero terminated string [%-*@3 s].&] -[s3; &] -[s4;%- &] -[s5;:String`:`:String`(const char`*`,int`):%- [* String]([@(0.0.255) const]_[@(0.0.255) cha -r]_`*[*@3 s], [@(0.0.255) int]_[*@3 n])&] -[s2; Constructs a string equal to first [%-*@3 n] characters of string -[%-*@3 s]. Zero characters are included.&] -[s3; &] -[s4;%- &] -[s5;:String`:`:String`(const String`&`,int`):%- [* String]([@(0.0.255) const]_[* String][@(0.0.255) `& -]_[*@3 s], [@(0.0.255) int]_[*@3 n])&] -[s2; Constructs a string equal to first [%-*@3 n] characters of String -[%-*@3 s]. Zero characters are included.&] -[s3; &] -[s4;%- &] -[s5;:String`:`:String`(const byte`*`,int`):%- [* String]([@(0.0.255) const]_[_^byte^ byte]_ -`*[*@3 s], [@(0.0.255) int]_[*@3 n])&] -[s2; Constructs a string equal to first [%-*@3 n] bytes of [%-*@3 s]. -Zero characters are included.&] -[s3; &] -[s4;%- &] -[s5;:String`:`:String`(const char`*`,const char`*`):%- [* String]([@(0.0.255) const]_[@(0.0.255) c -har]_`*[*@3 s], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 lim])&] -[s2; Constructs a string equal to first [%-*@3 lim] `- [%-*@3 s] characters -of [%-*@3 s]. Zero characters are included.&] -[s3; &] -[s4;%- &] -[s5;:String`:`:String`(int`,int`):%- [* String]([@(0.0.255) int]_[*@3 chr], -[@(0.0.255) int]_[*@3 count])&] -[s2; Constructs a string consisting of [%-*@3 count] characters equal -to [%-*@3 chr]. [%-*@3 chr] can be zero.&] -[s3; &] -[s4;%- &] -[s5;:String`:`:String`(StringBuffer`&`):%- [* String]([_^StringBuffer^ StringBuffer][@(0.0.255) `& -]_[*@3 b])&] -[s2; Constructs a string from [%-*@3 b]. [%-*@3 b] is emptied by this -operation.&] -[s3; &] -[s4;%- &] -[s5;:String`:`:String`(const Nuller`&`):%- [* String]([@(0.0.255) const]_[_^Nuller^ Nuller][@(0.0.255) `& -])&] -[s2; Constructs empty [* String]. This variant is important to allow -assigning [* Null ]to [* String ](which is same as assigning the -empty [* String]).&] -[s3;%- &] -[s4;%- &] -[s5;:String`:`:String`(const string`&`):%- [* String]([@(0.0.255) const]_[_^http`:`/`/en`.cppreference`.com`/w`/cpp`/string`/basic`_string^ s -td`::string][@(0.0.255) `&]_[*@3 s])&] -[s2; Constructor to achieve minimal STL compatibility.&] -[s3; &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] -[s3;%- &] -[s5;:String`:`:Shrink`(`):%- [@(0.0.255) void]_[* Shrink]()&] -[s2; Reduces memory used by string to minimum (size optimization).&] -[s3; &] -[s4;%- &] -[s5;:String`:`:GetCharCount`(`)const:%- [@(0.0.255) int]_[* GetCharCount]()_[@(0.0.255) con -st]&] -[s2; Returns a number of characters contained in String. This is -equal GetCount() if default charset is not UTF`-8, but different -for UTF`-8. It is faster equivalent of ToWString().GetCount().&] -[s3;%- &] -[s4;%- &] -[s5;:String`:`:ToWString`(`)const:%- [_^WString^ WString]_[* ToWString]()_[@(0.0.255) const -]&] -[s2; Convert String to WString using current default character set.&] -[s3;%- &] -[s4;%- &] -[s5;:String`:`:ToString`(`)const:%- [@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[* T -oString]()_[@(0.0.255) const]&] -[s2; Returns `*this. Useful because ToString is standard method to -convert concrete type to text, used by AsString template (and -therefore by operator << as well).&] -[s3;%- &] -[s4;%- &] -[s5;:String`:`:GetVoid`(`):%- [@(0.0.255) static] [_^String^ String]_[* GetVoid]()&] -[s2; Returns special Void value. This value is same as empty string, -but IsVoid method returns true for it. It can be used in special -scenarios where client code needs to distinguish between two -empty values (let us say Void is `"more empty`"...). For example, -LoadFile returns Void string if file failed to load, but normal -empty string if it is empty.&] -[s3;%- &] -[s4;%- &] -[s5;:String`:`:IsVoid`(`)const:%- [@(0.0.255) bool]_[* IsVoid]()_[@(0.0.255) const]&] -[s2; Returns true if String is special value returned by [* GetVoid].&] -[s3;%- &] -[s4;%- &] -[s5;:String0`:`:IsEqual`(const String0`&`)const:%- [@(0.0.255) bool]_[* IsEqual]([@(0.0.255) c -onst]_[_^String0^ String][@(0.0.255) `&]_[*@3 s])_[@(0.0.255) const]&] -[s2; Return true if string is equal to [%-*@3 s].&] -[s3; &] -[s4;%- &] -[s5;:String0`:`:Compare`(const String0`&`)const:%- [@(0.0.255) int]_[* Compare]([@(0.0.255) c -onst]_[_^String0^ String0][@(0.0.255) `&]_[*@3 s])_[@(0.0.255) const]&] -[s2; Lexicographic comparison, return `-1 if this string is lower, -0 for equality, 1 if this string is greater. Individual characters -are compared as unsigned integer values.&] -[s3; &] -[s4;%- &] -[s5;:String0`:`:GetHashValue`(`)const:%- [@(0.0.255) unsigned]_[* GetHashValue]()_[@(0.0.255) c -onst]&] -[s2; Returns the hash value of the string.&] -[s3;%- &] -[s4;%- &] -[s5;:String0`:`:Cat`(int`):%- [@(0.0.255) void]_[* Cat]([@(0.0.255) int]_[*@3 c])&] -[s5;:String`:`:operator`+`=`(char`):%- [@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_ -[* operator`+`=]([@(0.0.255) char]_[*@3 c])&] -[s2; Appends single character [%-*@3 c]. This operations has constant -amortized time (in other words, internal space used by implementation -grows exponentially, like with Vector or std`::vector). [%-*@3 c] -can be zero.&] -[s3; &] -[s4;%- &] -[s5;:String0`:`:Cat`(const char`*`,int`):%- [@(0.0.255) void]_[* Cat]([@(0.0.255) const]_[@(0.0.255) c -har]_`*[*@3 s], [@(0.0.255) int]_[*@3 len])&] -[s2;%- [%% Appends ][*@3 len][%% characters from string ][*@3 s] ([*@3 s ]can -contain zero characters).&] -[s3; &] -[s4;%- &] -[s5;:String0`:`:Set`(int`,int`):%- [@(0.0.255) void]_[* Set]([@(0.0.255) int]_[*@3 i], -[@(0.0.255) int]_[*@3 chr])&] -[s2; Replace character at position [%-*@3 i] with [%-*@3 chr].&] -[s3; &] -[s4;%- &] -[s5;:String0`:`:Trim`(int`):%- [@(0.0.255) void]_[* Trim]([@(0.0.255) int]_[*@3 pos])&] -[s2; Sets the number of characters (length) to [%-*@3 pos].&] -[s3; &] -[s4;%- &] -[s5;:String0`:`:Begin`(`)const:%- [@(0.0.255) const]_[@(0.0.255) char]_`*[* Begin]()_[@(0.0.255) c -onst]&] -[s2; Returns a pointer to the first character.&] -[s3;%- &] -[s4;%- &] -[s5;:String0`:`:End`(`)const:%- [@(0.0.255) const]_[@(0.0.255) char]_`*[* End]()_[@(0.0.255) c -onst]&] -[s2; Returns a pointer to ending zero.&] -[s3;%- &] -[s4;%- &] -[s5;:String0`:`:Remove`(int`,int`):%- [@(0.0.255) void]_[* Remove]([@(0.0.255) int]_[*@3 pos], - [@(0.0.255) int]_[*@3 count]_`=_[@3 1])&] -[s2; Removes [%-*@3 count] element starting at position [%-*@3 pos].&] -[s3; &] -[s4;%- &] -[s5;:String0`:`:Clear`(`):%- [@(0.0.255) void]_[* Clear]()&] -[s2; Empties the string.&] -[s3;%- &] -[s4;%- &] -[s5;:String0`:`:GetCount`(`)const:%- [@(0.0.255) int]_[* GetCount]()_[@(0.0.255) const]&] -[s5;:String0`:`:GetLength`(`)const:%- [@(0.0.255) int]_[* GetLength]()_[@(0.0.255) const]&] -[s2; Returns the number of characters.&] -[s3;%- &] -[s4;%- &] -[s5;:String0`:`:GetAlloc`(`)const:%- [@(0.0.255) int]_[* GetAlloc]()_[@(0.0.255) const]&] -[s2; Returns the number of allocated characters (maximum string length -before it has to grow) &] -[s3;%- &] -[s4;%- &] -[s5;:String0`:`:Reserve`(int`):%- [@(0.0.255) void]_[* Reserve]([@(0.0.255) int]_[*@3 r])&] -[s2; Reserves [%-*@3 r] characters of internal storage for future concatenation -operations.&] -[s3; &] -[s4;%- &] -[s5;:String`:`:operator`+`=`(const char`*`):%- [@(0.0.255) const]_[_^String^ String][@(0.0.255) `& -]_[* operator`+`=]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 s])&] -[s5;:String`:`:operator`+`=`(const String`&`):%- [@(0.0.255) const]_[_^String^ String][@(0.0.255) `& -]_[* operator`+`=]([@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 s])&] -[s2; Appends a zero terminated string [%-*@3 s].&] -[s3; &] -[s4;%- &] -[s5;:String`:`:operator`=`(const String`&`):%- [_^String^ String][@(0.0.255) `&]_[* operato -r`=]([@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 s])&] -[s2; Assigns another string [%-*@3 s]. This operations is relatively -fast and does not depend on the length of string.&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:String`:`:operator`=`(Upp`:`:String`&`&`):%- [_^Upp`:`:String^ String][@(0.0.255) `& -]_[* operator`=]([_^Upp`:`:String^ String][@(0.0.255) `&`&]_[*@3 s])&] -[s2; Pick assignment.&] -[s3; &] -[s4;%- &] -[s5;:String`:`:operator`=`(const char`*`):%- [_^String^ String][@(0.0.255) `&]_[* operator`= -]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 s])&] -[s2; Assign a zero terminated string [%-*@3 s].&] -[s3; &] -[s4;%- &] -[s5;:String`:`:operator`=`(StringBuffer`&`):%- [_^String^ String][@(0.0.255) `&]_[* operato -r`=]([_^StringBuffer^ StringBuffer][@(0.0.255) `&]_[*@3 b])&] -[s2; Assigns the content of [* StringBuffer]. After the operation,b -is emptied.&] -[s3; &] -[s4;%- &] -[s5;:String`:`:operator`<`<`=`(const String`&`):%- [_^String^ String][@(0.0.255) `&]_[* ope -rator<<`=]([@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 s])&] -[s2; `"Deep`" assignment. It is equivalent of standard assignment -followed by [* Shrink ]operation (in other words, internal buffer -gets reallocated to the exact size of source).&] -[s3;%- &] -[s4;%- &] -[s5;:String`:`:ToStd`(`)const:%- [_^http`:`/`/en`.cppreference`.com`/w`/cpp`/string`/basic`_string^ s -td`::string]_[* ToStd]()_[@(0.0.255) const]&] -[s2; Converts String to std`::string.&] -[s3;%- &] -[s4;%- &] -[s5;:String0`:`:operator const char`*`(`)const:%- [@(0.0.255) operator]_[@(0.0.255) const -]_[@(0.0.255) char]_`*()_[@(0.0.255) const]&] -[s5;:String0`:`:operator`~`(`)const:%- [@(0.0.255) const]_[@(0.0.255) char]_`*[* operator`~ -]()_[@(0.0.255) const]&] -[s2; Returns [* Begin]().&] -[s3;%- &] -[s4;%- &] -[s5;:String0`:`:operator`[`]`(int`)const:%- [@(0.0.255) int]_[* operator`[`]]([@(0.0.255) i -nt]_[*@3 i])_[@(0.0.255) const]&] -[s2;%- [%% Returns the character at position ][*@3 i.]&] -[s3;%- &] -[s0;%- &] -[s0;@(0.0.255) &] -[s0;%- &] -[ {{10000@(113.42.0) [s0; [*@7;4 WString]]}}&] -[s3; &] -[s1;:WString`:`:class:%- [@(0.0.255)3 class][3 _][*3 WString][3 _:_][@(0.0.255)3 public][3 _][*@3;3 M -oveable][@(0.0.255)3 <][*3 WString][3 , ][_^AString^3 AString][@(0.0.255)3 <][_^WString0^3 WS -tring0][@(0.0.255)3 >][3 _>_]&] -[s9; WString is similar to String, but it uses 16 bit Ucs2 encoding. -String and WString share a number of common functions through -the AString interface.&] -[s3; &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] -[s3; &] -[s5;:WString`:`:WString`(`):%- [* WString]()&] -[s2; Default constructor. Constructs empty [* WString].&] -[s3;%- &] -[s4;%- &] -[s5;:WString`:`:WString`(const WString`&`):%- [* WString]([@(0.0.255) const]_[* WString][@(0.0.255) `& -]_[*@3 s])&] -[s2; Default copy constructor.&] -[s3; &] -[s4;%- &] -[s5;:WString`:`:WString`(const wchar`*`):%- [* WString]([@(0.0.255) const]_[_^wchar^ wchar]_ -`*[*@3 s])&] -[s2; Creates a copy of zero terminated string [%-*@3 s].&] -[s3; &] -[s4;%- &] -[s5;:WString`:`:WString`(const char`*`):%- [* WString]([@(0.0.255) const]_[@(0.0.255) char]_ -`*[*@3 s])&] -[s2; Creates a copy of zero terminated string [%-*@3 s].&] -[s3; &] -[s4;%- &] -[s5;:WString`:`:WString`(const WString`&`,int`):%- [* WString]([@(0.0.255) const]_[* WStrin -g][@(0.0.255) `&]_[*@3 s], [@(0.0.255) int]_[*@3 n])&] -[s2;%- [%% Constructs a string equal to first ][*@3 n][%% characters of -][%%* WString][%% ][*@3 s][%% ]([*@3 s ]can contain zero characters).&] -[s3; &] -[s4;%- &] -[s5;:WString`:`:WString`(const wchar`*`,int`):%- [* WString]([@(0.0.255) const]_[_^wchar^ w -char]_`*[*@3 s], [@(0.0.255) int]_[*@3 n])&] -[s2;%- [%% Constructs a string equal to first ][*@3 n][%% characters of -][*@3 s ]([*@3 s ]can contain zero characters).&] -[s3; &] -[s4;%- &] -[s5;:WString`:`:WString`(const wchar`*`,const wchar`*`):%- [* WString]([@(0.0.255) const]_ -[_^wchar^ wchar]_`*[*@3 s], [@(0.0.255) const]_[_^wchar^ wchar]_`*[*@3 lim])&] -[s2;%- [%% Constructs a string equal to first ][*@3 lim][%% `- ][*@3 s][%% -characters of ][*@3 s][%% ]([*@3 s ]can contain zero characters).&] -[s3; &] -[s4;%- &] -[s5;:WString`:`:WString`(const char`*`,int`):%- [* WString]([@(0.0.255) const]_[@(0.0.255) c -har]_`*[*@3 s], [@(0.0.255) int]_[*@3 n])&] -[s2;%- [%% Constructs a string equal to first ][*@3 n][%% characters of -zero terminated string ][*@3 s ]([*@3 s ]can contain zero characters).&] -[s3; &] -[s4;%- &] -[s5;:WString`:`:WString`(const char`*`,const char`*`):%- [* WString]([@(0.0.255) const]_[@(0.0.255) c -har]_`*[*@3 s], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 lim])&] -[s2;%- [%% Constructs a string equal to first ][*@3 n][%% characters of -zero terminated string ][*@3 s ]([*@3 s ]can contain zero characters).&] -[s3; &] -[s4;%- &] -[s5;:WString`:`:WString`(int`,int`):%- [* WString]([@(0.0.255) int]_[*@3 chr], -[@(0.0.255) int]_[*@3 count])&] -[s2; Constructs a string consisting of [%-*@3 count] characters equal -to [%-*@3 chr]. [%-*@3 chr] can be zero.&] -[s3; &] -[s4;%- &] -[s5;:WString`:`:WString`(WStringBuffer`&`):%- [* WString]([_^WStringBuffer^ WStringBuffer -][@(0.0.255) `&]_[*@3 b])&] -[s2; Constructs a string from [%-*@3 b]. [%-*@3 b] is emptied by this -operation.&] -[s3; &] -[s4;%- &] -[s5;:WString`:`:WString`(const Nuller`&`):%- [* WString]([@(0.0.255) const]_[_^Nuller^ Null -er][@(0.0.255) `&])&] -[s2; Constructs empty [* WString]. This variant is important to allow -assigning [* Null] to [* WString] (which is same as assigning the -empty [* WString]).&] -[s3;%- &] -[s4;%- &] -[s5;:WString`:`:WString`(const wstring`&`):%- [* WString]([@(0.0.255) const]_std`::wstring -[@(0.0.255) `&]_[*@3 s])&] -[s2; Constructor to achieve minimal STL compatibility.&] -[s3; &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] -[s3; &] -[s5;:WString`:`:Shrink`(`):%- [@(0.0.255) void]_[* Shrink]()&] -[s2; Reduces memory used by string to minimum (size optimization).&] -[s3;%- &] -[s4;%- &] -[s5;:WString`:`:ToString`(`)const:%- [_^String^ String]_[* ToString]()_[@(0.0.255) const]&] -[s2; Converts [* WString ]to [* String ]using current default character -set. Also serves as standard text conversion (for [* AsString] -and [* operator<<] templates).&] -[s3;%- &] -[s4;%- &] -[s5;:WString`:`:GetVoid`(`):%- [@(0.0.255) static] [_^WString^ WString]_[* GetVoid]()&] -[s2; Returns special Void value. This value is same as empty string, -but IsVoid method returns true for it. It can be used in special -scenarios where client code needs to distinguish between two -empty values (let us say Void is `"more empty`"...). For example, -LoadFile returns Void string if file failed to load, but normal -empty string if it is empty.&] -[s3;%- &] -[s4;%- &] -[s5;:WString`:`:IsVoid`(`)const:%- [@(0.0.255) bool]_[* IsVoid]()_[@(0.0.255) const]&] -[s2; Returns true if String is special value returned by [* GetVoid].&] -[s3;%- &] -[s4;%- &] -[s5;:WString0`:`:Begin`(`)const:%- [@(0.0.255) const]_[_^wchar^ wchar]_`*[* Begin]()_[@(0.0.255) c -onst]&] -[s2; Returns a pointer to the first character.&] -[s3;%- &] -[s4;%- &] -[s5;:WString0`:`:End`(`)const:%- [@(0.0.255) const]_[_^wchar^ wchar]_`*[* End]()_[@(0.0.255) c -onst]&] -[s2; Returns a pointer to ending zero.&] -[s3;%- &] -[s4;%- &] -[s5;:WString0`:`:GetCount`(`)const:%- [@(0.0.255) int]_[* GetCount]()_[@(0.0.255) const]&] -[s5;:WString0`:`:GetLength`(`)const:%- [@(0.0.255) int]_[* GetLength]()_[@(0.0.255) const]&] -[s2; Returns the number of characters.&] -[s3;%- &] -[s4;%- &] -[s5;:WString0`:`:GetAlloc`(`)const:%- [@(0.0.255) int]_[* GetAlloc]()_[@(0.0.255) const]&] -[s2; Returns the number of allocated characters (maximum string length -before it has to grow) &] -[s3;%- &] -[s4;%- &] -[s5;:WString0`:`:Cat`(int`):%- [@(0.0.255) void]_[* Cat]([@(0.0.255) int]_[*@3 c])&] -[s2; Appends single character [%-*@3 c]. This operations has constant -amortized time (in other words, internal space used by implementation -grows exponentially, like with Vector or std`::vector).&] -[s3; &] -[s4;%- &] -[s5;:WString0`:`:Cat`(const wchar`*`,int`):%- [@(0.0.255) void]_[* Cat]([@(0.0.255) const]_ -[_^wchar^ wchar]_`*[*@3 s], [@(0.0.255) int]_[*@3 length])&] -[s2;%- [%% Appends ][*@3 len][%% characters from string ][*@3 s] ([*@3 s ]can -contain zero characters).&] -[s3; &] -[s4;%- &] -[s5;:WString0`:`:GetHashValue`(`)const:%- [@(0.0.255) unsigned]_[* GetHashValue]()_[@(0.0.255) c -onst]&] -[s2; Returns the hash value of the string.&] -[s3;%- &] -[s4;%- &] -[s5;:WString0`:`:IsEqual`(const WString0`&`)const:%- [@(0.0.255) bool]_[* IsEqual]([@(0.0.255) c -onst]_[_^WString0^ WString][@(0.0.255) `&]_[*@3 s])_[@(0.0.255) const]&] -[s2; Return true if string is equal to [%-*@3 s].&] -[s3; &] -[s4;%- &] -[s5;:WString0`:`:Compare`(const WString0`&`)const:%- [@(0.0.255) int]_[* Compare]([@(0.0.255) c -onst]_[_^WString0^ WString][@(0.0.255) `&]_[*@3 s])_[@(0.0.255) const]&] -[s2; Lexicographic comparison, return `-1 if this string is lower, -0 for equality, 1 if this string is greater. Individual characters -are compared as unsigned integer values.&] -[s3; &] -[s4;%- &] -[s5;:WString0`:`:Remove`(int`,int`):%- [@(0.0.255) void]_[* Remove]([@(0.0.255) int]_[*@3 pos -], [@(0.0.255) int]_[*@3 count]_`=_[@3 1])&] -[s2; Removes [%-*@3 count] element starting at position [%-*@3 pos].&] -[s3; &] -[s4;%- &] -[s5;:WString0`:`:Insert`(int`,const wchar`*`,int`):%- [@(0.0.255) void]_[* Insert]([@(0.0.255) i -nt]_[*@3 pos], [@(0.0.255) const]_[_^wchar^ wchar]_`*[*@3 s], [@(0.0.255) int]_[*@3 count])&] -[s2; Inserts first [%-*@3 count] characters of [%-*@3 s] at position -[%-*@3 pos].&] -[s3; &] -[s4;%- &] -[s5;:WString0`:`:Clear`(`):%- [@(0.0.255) void]_[* Clear]()&] -[s2; Empties the string.&] -[s3;%- &] -[s4;%- &] -[s5;:WString0`:`:Set`(int`,int`):%- [@(0.0.255) void]_[* Set]([@(0.0.255) int]_[*@3 pos], -[@(0.0.255) int]_[*@3 ch])&] -[s2; Replace character at position [%-*@3 pos] with [%-*@3 ch].&] -[s3; &] -[s4;%- &] -[s5;:WString0`:`:Trim`(int`):%- [@(0.0.255) void]_[* Trim]([@(0.0.255) int]_[*@3 pos])&] -[s2; Sets the number of characters (length) to [%-*@3 pos].&] -[s3;%- &] -[s4;%- &] -[s5;:WString`:`:ToStd`(`)const:%- [_^http`:`/`/en`.cppreference`.com`/w`/cpp`/string`/basic`_string^ s -td`::wstring]_[* ToStd]()_[@(0.0.255) const]&] -[s2; Converts WString to std`::string.&] -[s0;%- &] -[s0;%- &] -[ {{10000@(113.42.0) [s0; [*@7;4 AString]]}}&] -[s3; &] -[s1;:noref:%- [@(0.0.255)3 template][3 _<][@(0.0.255)3 class][3 _][*@3;3 B][@(0.0.255)3 >]&] -[s1;:AString`:`:class:%- [@(0.0.255) class]_[* AString]_:_[@(0.0.255) public]_[*@3 B]&] -[s9; A class that implements behavior common to both String and WString.&] -[s3; &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] -[s3;%- &] -[s5;:AString`:`:Clear`(`):%- [@(0.0.255) void]_[* Clear]()&] -[s2; Clears the content of the string.&] -[s3;%- &] -[s4;%- &] -[s5;:AString`:`:GetLength`(`)const:%- [@(0.0.255) int]_[* GetLength]()_[@(0.0.255) const]&] -[s2; Returns the length of the string.&] -[s3;%- &] -[s4;%- &] -[s5;:AString`:`:IsEmpty`(`)const:%- [@(0.0.255) bool]_[* IsEmpty]()_[@(0.0.255) const]&] -[s2; Return true if the length of the string is zero.&] -[s3;%- &] -[s4;%- &] -[s5;:AString`:`:End`(`)const:%- [@(0.0.255) const]_[_^AString`:`:tchar^ tchar]_`*[* End]()_ -[@(0.0.255) const]&] -[s2; Returns a pointer to the end of the string.&] -[s3;%- &] -[s4;%- &] -[s5;:AString`:`:Last`(`)const:%- [@(0.0.255) const]_[_^AString`:`:tchar^ tchar]_`*[* Last]( -)_[@(0.0.255) const]&] -[s2; Returns a pointer to the last character in the string. If string -is empty, returns a pointer to the ending zero.&] -[s3;%- &] -[s4;%- &] -[s5;:AString`:`:GetIter`(int`)const:%- [@(0.0.255) const]_[_^AString`:`:tchar^ tchar]_`*[* G -etIter]([@(0.0.255) int]_[*@3 i])_[@(0.0.255) const]&] -[s2; Returns a pointer to character index [%-*@3 i] of the string.&] -[s3; &] -[s4;%- &] -[s5;:AString`:`:operator`[`]`(int`)const:%- [@(0.0.255) int]_[* operator`[`]]([@(0.0.255) i -nt]_[*@3 i])_[@(0.0.255) const]&] -[s2; Returns the character with index [%-*@3 i].&] -[s3; &] -[s4;%- &] -[s5;:AString`:`:operator const tchar`*`(`)const:%- [@(0.0.255) operator]_[@(0.0.255) cons -t]_tchar_`*()_[@(0.0.255) const]&] -[s5;:AString`:`:operator`~`(`)const:%- [@(0.0.255) const]_[_^AString`:`:tchar^ tchar]_`*[* o -perator`~]()_[@(0.0.255) const]&] -[s5;:AString`:`:operator const void`*`(`)const:%- [@(0.0.255) operator]_[@(0.0.255) const -]_[@(0.0.255) void]_`*()_[@(0.0.255) const]&] -[s5;:AString`:`:operator const bchar`*`(`)const:%- [@(0.0.255) operator]_[@(0.0.255) cons -t]_bchar_`*()_[@(0.0.255) const]&] -[s2; Same as [* Begin()].&] -[s3;%- &] -[s4;%- &] -[s5;:AString`:`:Insert`(int`,int`):%- [@(0.0.255) void]_[* Insert]([@(0.0.255) int]_[*@3 pos], - [@(0.0.255) int]_[*@3 c])&] -[s5;:AString`:`:Insert`(int`,const AString`:`:tchar`*`,int`):%- [@(0.0.255) void]_[* Inse -rt]([@(0.0.255) int]_[*@3 pos], [@(0.0.255) const]_[_^AString`:`:tchar^ tchar]_`*[*@3 s], -[@(0.0.255) int]_[*@3 count])&] -[s5;:AString`:`:Insert`(int`,const AString`:`:String`&`):%- [@(0.0.255) void]_[* Insert]( -[@(0.0.255) int]_[*@3 pos], [@(0.0.255) const]_[_^AString`:`:String^ String][@(0.0.255) `&]_ -[*@3 s])&] -[s5;:AString`:`:Insert`(int`,const char`*`):%- [@(0.0.255) void]_[* Insert]([@(0.0.255) int -]_[*@3 pos], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 s])&] -[s2; Inserts item [%-*@3 c]/[%-*@3 s] at position [%-*@3 pos] ([%-*@3 count] -times).&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:AString`:`:TrimLast`(int`):%- [@(0.0.255) void]_[* TrimLast]([@(0.0.255) int]_[*@3 c -ount]_`=_[@3 1])&] -[s2; Removes [%-*@3 count] characters from the end of String. Same -as Remove(GetCount() `- count).&] -[s3; &] -[s4;%- &] -[s5;:AString`:`:Mid`(int`,int`)const:%- [_^AString`:`:String^ String]_[* Mid]([@(0.0.255) i -nt]_[*@3 pos], [@(0.0.255) int]_[*@3 length])_[@(0.0.255) const]&] -[s2; Returns a substring that begins from [%-*@3 pos] and with [%-*@3 length -]chars.&] -[s3; &] -[s4;%- &] -[s5;:AString`:`:Mid`(int`)const:%- [_^AString`:`:String^ String]_[* Mid]([@(0.0.255) int]_[*@3 p -os])_[@(0.0.255) const]&] -[s2; Returns a substring that begins from [%-*@3 pos].&] -[s3; &] -[s4;%- &] -[s5;:AString`:`:Right`(int`)const:%- [_^AString`:`:String^ String]_[* Right]([@(0.0.255) in -t]_[*@3 count])_[@(0.0.255) const]&] -[s2; Returns a substring with [%-*@3 count ]chars beginning from the -ens of the string.&] -[s3; &] -[s4;%- &] -[s5;:AString`:`:Left`(int`)const:%- [_^AString`:`:String^ String]_[* Left]([@(0.0.255) int]_ -[*@3 count])_[@(0.0.255) const]&] -[s2; Returns a substring with [%-*@3 count ]chars beginning from the -begin of the string.&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:AString`:`:Find`(int`,const Upp`:`:AString`:`:tchar`*`,int`)const:%- [@(0.0.255) i -nt]_[* Find]([@(0.0.255) int]_[*@3 len], [@(0.0.255) const]_[_^Upp`:`:AString`:`:tchar^ tch -ar]_`*[*@3 s], [@(0.0.255) int]_[*@3 from])_[@(0.0.255) const]&] -[s5;:AString`:`:Find`(const AString`:`:tchar`*`,int`)const:%- [@(0.0.255) int]_[* Find]([@(0.0.255) c -onst]_[_^AString`:`:tchar^ tchar]_`*[*@3 s], [@(0.0.255) int]_[*@3 from]_`=_[@3 0])_[@(0.0.255) c -onst]&] -[s5;:AString`:`:Find`(const AString`:`:String`&`,int`)const:%- [@(0.0.255) int]_[* Find]( -[@(0.0.255) const]_[_^AString`:`:String^ String][@(0.0.255) `&]_[*@3 s], -[@(0.0.255) int]_[*@3 from]_`=_[@3 0])_[@(0.0.255) const]&] -[s2; Returns first position of substring [%-*@3 s] greater than or -equal to [%-*@3 from], or `-1 if [%-*@3 s] is not found.&] -[s3; &] -[s4;%- &] -[s5;:AString`:`:FindAfter`(const AString`:`:tchar`*`,int`)const:%- [@(0.0.255) int]_[* Fi -ndAfter]([@(0.0.255) const]_[_^AString`:`:tchar^ tchar]_`*[*@3 s], -[@(0.0.255) int]_[*@3 from]_`=_[@3 0])_[@(0.0.255) const]&] -[s5;:AString`:`:FindAfter`(const AString`:`:String`&`,int`)const:%- [@(0.0.255) int]_[* F -indAfter]([@(0.0.255) const]_[_^AString`:`:String^ String][@(0.0.255) `&]_[*@3 s], -[@(0.0.255) int]_[*@3 from]_`=_[@3 0])_[@(0.0.255) const]&] -[s2; Similiar to Find, but if found, returns position [*/ after] the -substring found. In other words, if not found returns `-1, if -found, returns Find([%-*@3 s][%- , ][%-*@3 from]) `+ length of [%-*@3 s].&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:AString`:`:ReverseFind`(int`,const Upp`:`:AString`:`:tchar`*`,int`)const:%- [@(0.0.255) i -nt]_[* ReverseFind]([@(0.0.255) int]_[*@3 len], [@(0.0.255) const]_[_^Upp`:`:AString`:`:tchar^ t -char]_`*[*@3 s], [@(0.0.255) int]_[*@3 from])_[@(0.0.255) const]&] -[s5;:Upp`:`:AString`:`:ReverseFind`(const Upp`:`:AString`:`:tchar`*`,int`)const:%- [@(0.0.255) i -nt]_[* ReverseFind]([@(0.0.255) const]_[_^Upp`:`:AString`:`:tchar^ tchar]_`*[*@3 s], -[@(0.0.255) int]_[*@3 from])_[@(0.0.255) const]&] -[s5;:Upp`:`:AString`:`:ReverseFind`(const Upp`:`:AString`:`:String`&`,int`)const:%- [@(0.0.255) i -nt]_[* ReverseFind]([@(0.0.255) const]_[_^Upp`:`:AString`:`:String^ String][@(0.0.255) `& -]_[*@3 s], [@(0.0.255) int]_[*@3 from])_[@(0.0.255) const]&] -[s5;:Upp`:`:AString`:`:ReverseFind`(const Upp`:`:AString`:`:tchar`*`)const:%- [@(0.0.255) i -nt]_[* ReverseFind]([@(0.0.255) const]_[_^Upp`:`:AString`:`:tchar^ tchar]_`*[*@3 s])_[@(0.0.255) c -onst]&] -[s5;:Upp`:`:AString`:`:ReverseFind`(const Upp`:`:AString`:`:String`&`)const:%- [@(0.0.255) i -nt]_[* ReverseFind]([@(0.0.255) const]_[_^Upp`:`:AString`:`:String^ String][@(0.0.255) `& -]_[*@3 s])_[@(0.0.255) const]&] -[s2; Finds the [*/ last] position of [%-*@3 s] less than [%-*@3 from], -or `-1 if not found.&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:AString`:`:ReverseFindAfter`(int`,const Upp`:`:AString`:`:tchar`*`,int`)const:%- [@(0.0.255) i -nt]_[* ReverseFindAfter]([@(0.0.255) int]_[*@3 len], [@(0.0.255) const]_[_^Upp`:`:AString`:`:tchar^ t -char]_`*[*@3 s], [@(0.0.255) int]_[*@3 from])_[@(0.0.255) const]&] -[s5;:Upp`:`:AString`:`:ReverseFindAfter`(const Upp`:`:AString`:`:tchar`*`,int`)const:%- [@(0.0.255) i -nt]_[* ReverseFindAfter]([@(0.0.255) const]_[_^Upp`:`:AString`:`:tchar^ tchar]_`*[*@3 s], - [@(0.0.255) int]_[*@3 from])_[@(0.0.255) const]&] -[s5;:Upp`:`:AString`:`:ReverseFindAfter`(const Upp`:`:AString`:`:String`&`,int`)const:%- [@(0.0.255) i -nt]_[* ReverseFindAfter]([@(0.0.255) const]_[_^Upp`:`:AString`:`:String^ String][@(0.0.255) `& -]_[*@3 s], [@(0.0.255) int]_[*@3 from])_[@(0.0.255) const]&] -[s5;:Upp`:`:AString`:`:ReverseFindAfter`(const Upp`:`:AString`:`:tchar`*`)const:%- [@(0.0.255) i -nt]_[* ReverseFindAfter]([@(0.0.255) const]_[_^Upp`:`:AString`:`:tchar^ tchar]_`*[*@3 s]) -_[@(0.0.255) const]&] -[s5;:Upp`:`:AString`:`:ReverseFindAfter`(const Upp`:`:AString`:`:String`&`)const:%- [@(0.0.255) i -nt]_[* ReverseFindAfter]([@(0.0.255) const]_[_^Upp`:`:AString`:`:String^ String][@(0.0.255) `& -]_[*@3 s])_[@(0.0.255) const]&] -[s2; Similar to ReverseFind, but returns position [*/ after] the substring -found. In other words, if not found returns `-1, if found, returns -Find([%-*@3 s][%- , ][%-*@3 from]) `+ length of [%-*@3 s].&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:AString`:`:Replace`(const Upp`:`:AString`:`:tchar`*`,int`,const Upp`:`:AString`:`:tchar`*`,int`):%- [@(0.0.255) v -oid]_[* Replace]([@(0.0.255) const]_[_^Upp`:`:AString`:`:tchar^ tchar]_`*[*@3 find], -[@(0.0.255) int]_[*@3 findlen], [@(0.0.255) const]_[_^Upp`:`:AString`:`:tchar^ tchar]_`*[*@3 r -eplace], [@(0.0.255) int]_[*@3 replacelen])&] -[s5;:AString`:`:Replace`(const AString`:`:String`&`,const AString`:`:String`&`):%- [@(0.0.255) v -oid]_[* Replace]([@(0.0.255) const]_[_^AString`:`:String^ String][@(0.0.255) `&]_[*@3 find], - [@(0.0.255) const]_[_^AString`:`:String^ String][@(0.0.255) `&]_[*@3 replace])&] -[s5;:AString`:`:Replace`(const AString`:`:tchar`*`,const AString`:`:tchar`*`):%- [@(0.0.255) v -oid]_[* Replace]([@(0.0.255) const]_[_^AString`:`:tchar^ tchar]_`*[*@3 find], -[@(0.0.255) const]_[_^AString`:`:tchar^ tchar]_`*[*@3 replace])&] -[s5;:AString`:`:Replace`(const AString`:`:String`&`,const AString`:`:tchar`*`):%- [@(0.0.255) v -oid]_[* Replace]([@(0.0.255) const]_[_^AString`:`:String^ String][@(0.0.255) `&]_[*@3 find], - [@(0.0.255) const]_[_^AString`:`:tchar^ tchar]_`*[*@3 replace])&] -[s5;:AString`:`:Replace`(const AString`:`:tchar`*`,const AString`:`:String`&`):%- [@(0.0.255) v -oid]_[* Replace]([@(0.0.255) const]_[_^AString`:`:tchar^ tchar]_`*[*@3 find], -[@(0.0.255) const]_[_^AString`:`:String^ String][@(0.0.255) `&]_[*@3 replace])&] -[s2; Replaces substring [%-*@3 find] with [%-*@3 replace ]string for -all times [%-*@3 find] string appears.&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:AString`:`:StartsWith`(const Upp`:`:AString`:`:tchar`*`,int`)const:%- [@(0.0.255) b -ool]_[* StartsWith]([@(0.0.255) const]_[_^Upp`:`:AString`:`:tchar^ tchar]_`*[*@3 s], -[@(0.0.255) int]_[*@3 len])_[@(0.0.255) const]&] -[s5;:Upp`:`:AString`:`:StartsWith`(const Upp`:`:AString`:`:tchar`*`)const:%- [@(0.0.255) b -ool]_[* StartsWith]([@(0.0.255) const]_[_^Upp`:`:AString`:`:tchar^ tchar]_`*[*@3 s])_[@(0.0.255) c -onst]&] -[s5;:Upp`:`:AString`:`:StartsWith`(const Upp`:`:AString`:`:String`&`)const:%- [@(0.0.255) b -ool]_[* StartsWith]([@(0.0.255) const]_[_^Upp`:`:AString`:`:String^ String][@(0.0.255) `& -]_[*@3 s])_[@(0.0.255) const]&] -[s2; Returns true if string starts with [%-*@3 s].&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:AString`:`:TrimStart`(const Upp`:`:AString`:`:tchar`*`,int`):%- [@(0.0.255) b -ool]_[* TrimStart]([@(0.0.255) const]_[_^Upp`:`:AString`:`:tchar^ tchar]_`*[*@3 s], -[@(0.0.255) int]_[*@3 len])&] -[s5;:Upp`:`:AString`:`:TrimStart`(const Upp`:`:AString`:`:tchar`*`):%- [@(0.0.255) bool -]_[* TrimStart]([@(0.0.255) const]_[_^Upp`:`:AString`:`:tchar^ tchar]_`*[*@3 s])&] -[s5;:Upp`:`:AString`:`:TrimStart`(const Upp`:`:AString`:`:String`&`):%- [@(0.0.255) boo -l]_[* TrimStart]([@(0.0.255) const]_[_^Upp`:`:AString`:`:String^ String][@(0.0.255) `&]_[*@3 s -])&] -[s2; If string starts with [%-*@3 s], trims the start to remove it -and returns true.&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:AString`:`:EndsWith`(const Upp`:`:AString`:`:tchar`*`,int`)const:%- [@(0.0.255) b -ool]_[* EndsWith]([@(0.0.255) const]_[_^Upp`:`:AString`:`:tchar^ tchar]_`*[*@3 s], -[@(0.0.255) int]_[*@3 len])_[@(0.0.255) const]&] -[s5;:Upp`:`:AString`:`:EndsWith`(const Upp`:`:AString`:`:tchar`*`)const:%- [@(0.0.255) b -ool]_[* EndsWith]([@(0.0.255) const]_[_^Upp`:`:AString`:`:tchar^ tchar]_`*[*@3 s])_[@(0.0.255) c -onst]&] -[s5;:Upp`:`:AString`:`:EndsWith`(const Upp`:`:AString`:`:String`&`)const:%- [@(0.0.255) b -ool]_[* EndsWith]([@(0.0.255) const]_[_^Upp`:`:AString`:`:String^ String][@(0.0.255) `&]_ -[*@3 s])_[@(0.0.255) const]&] -[s2; Returns true if string ends with [%-*@3 s].&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:AString`:`:TrimEnd`(const Upp`:`:AString`:`:tchar`*`,int`):%- [@(0.0.255) b -ool]_[* TrimEnd]([@(0.0.255) const]_[_^Upp`:`:AString`:`:tchar^ tchar]_`*[*@3 s], -[@(0.0.255) int]_[*@3 len])&] -[s5;:Upp`:`:AString`:`:TrimEnd`(const Upp`:`:AString`:`:tchar`*`):%- [@(0.0.255) bool]_ -[* TrimEnd]([@(0.0.255) const]_[_^Upp`:`:AString`:`:tchar^ tchar]_`*[*@3 s])&] -[s5;:Upp`:`:AString`:`:TrimEnd`(const Upp`:`:AString`:`:String`&`):%- [@(0.0.255) bool]_ -[* TrimEnd]([@(0.0.255) const]_[_^Upp`:`:AString`:`:String^ String][@(0.0.255) `&]_[*@3 s]) -&] -[s2; If string ends with [%-*@3 s], trims the end to remove it and -returns true.&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:AString`:`:FindFirstOf`(int`,const Upp`:`:AString`:`:tchar`*`,int`)const:%- [@(0.0.255) i -nt]_[* FindFirstOf]([@(0.0.255) int]_[*@3 len], [@(0.0.255) const]_[_^Upp`:`:AString`:`:tchar^ t -char]_`*[*@3 set], [@(0.0.255) int]_[*@3 from])_[@(0.0.255) const]&] -[s2; Returns the first position of any character from [%-*@3 set] starting -at [%-*@3 from]. The number of characters in [%-*@3 set] is [%-*@3 len]. -Returns `-1 if not found.&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:AString`:`:FindFirstOf`(const Upp`:`:AString`:`:tchar`*`,int`)const:%- [@(0.0.255) i -nt]_[* FindFirstOf]([@(0.0.255) const]_[_^Upp`:`:AString`:`:tchar^ tchar]_`*[*@3 set], -[@(0.0.255) int]_[*@3 from]_`=_[@3 0])_[@(0.0.255) const]&] -[s2; Returns the first position of any character from zero terminated -[%-*@3 set] starting at [%-*@3 from]. Returns `-1 if not found.&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:AString`:`:FindFirstOf`(const Upp`:`:AString`:`:String`&`,int`)const:%- [@(0.0.255) i -nt]_[* FindFirstOf]([@(0.0.255) const]_[_^Upp`:`:AString`:`:String^ String][@(0.0.255) `& -]_[*@3 set], [@(0.0.255) int]_[*@3 from]_`=_[@3 0])_[@(0.0.255) const]&] -[s2; Returns the first position of any character from [%-*@3 set] starting -at [%-*@3 from]. Returns `-1 if not found.&] -[s2; &] -[s3; &] +topic "String and WString"; +[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,0#27521748481378242620020725143825:desc] +[0 $$3,0#96390100711032703541132217272105:end] +[H6;0 $$4,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] +[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] +[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] +[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] +[b42;2 $$9,9#13035079074754324216151401829390:normal] +[{_}%EN-US +[ {{10000@(113.42.0) [s0; [*@7;4 String]]}}&] +[s3; &] +[s1;:String`:`:class:%- [@(0.0.255)3 class][3 _][*3 String][3 _:_][@(0.0.255)3 public][3 _][*@3;3 Mo +veable][@(0.0.255)3 <][*3 String][3 , ][_^AString^3 AString][@(0.0.255)3 <][_^String0^3 Strin +g0][@(0.0.255)3 >][3 _>_]&] +[s9; String is a value class that contains an array of characters +(or bytes). It is designed to have fast copy operations. The +array of characters is zero terminated. String provides non`-mutable +access to the array of characters. String can store 8 bit encoded +string or an UTF`-8 encoded string. For UTF`-8 strings, however, +String works with raw 8 bit values `- there are not automatic +conversions performed e.g. in operator`[`]. If you need to access +individual UTF`-8 characters, the best practice in most cases +is to convert it to WString (and eventually back after processing).&] +[s9; String is also often used to store raw binary data.&] +[s9; WString is similar to String, but it uses 16 bit Ucs2 encoding. +String and WString share a number of common functions through +the AString interface.&] +[s3; &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] +[s3;%- &] +[s5;:String`:`:String`(`):%- [* String]()&] +[s2; Default constructor. Constructs empty [* String].&] +[s3;%- &] +[s4;%- &] +[s5;:String`:`:String`(const String`&`):%- [* String]([@(0.0.255) const]_[* String][@(0.0.255) `& +]_[*@3 s])&] +[s2; Default copy constructor.&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:String`:`:String`(Upp`:`:String`&`&`):%- [* String]([* String][@(0.0.255) `&`&]_ +[*@3 s])&] +[s2; Pick constructor.&] +[s3; &] +[s4;%- &] +[s5;:String`:`:String`(const char`*`):%- [* String]([@(0.0.255) const]_[@(0.0.255) char]_`* +[*@3 s])&] +[s2; Creates a copy of zero terminated string [%-*@3 s].&] +[s3; &] +[s4;%- &] +[s5;:String`:`:String`(const char`*`,int`):%- [* String]([@(0.0.255) const]_[@(0.0.255) cha +r]_`*[*@3 s], [@(0.0.255) int]_[*@3 n])&] +[s2; Constructs a string equal to first [%-*@3 n] characters of string +[%-*@3 s]. Zero characters are included.&] +[s3; &] +[s4;%- &] +[s5;:String`:`:String`(const String`&`,int`):%- [* String]([@(0.0.255) const]_[* String][@(0.0.255) `& +]_[*@3 s], [@(0.0.255) int]_[*@3 n])&] +[s2; Constructs a string equal to first [%-*@3 n] characters of String +[%-*@3 s]. Zero characters are included.&] +[s3; &] +[s4;%- &] +[s5;:String`:`:String`(const byte`*`,int`):%- [* String]([@(0.0.255) const]_[_^byte^ byte]_ +`*[*@3 s], [@(0.0.255) int]_[*@3 n])&] +[s2; Constructs a string equal to first [%-*@3 n] bytes of [%-*@3 s]. +Zero characters are included.&] +[s3; &] +[s4;%- &] +[s5;:String`:`:String`(const char`*`,const char`*`):%- [* String]([@(0.0.255) const]_[@(0.0.255) c +har]_`*[*@3 s], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 lim])&] +[s2; Constructs a string equal to first [%-*@3 lim] `- [%-*@3 s] characters +of [%-*@3 s]. Zero characters are included.&] +[s3; &] +[s4;%- &] +[s5;:String`:`:String`(int`,int`):%- [* String]([@(0.0.255) int]_[*@3 chr], +[@(0.0.255) int]_[*@3 count])&] +[s2; Constructs a string consisting of [%-*@3 count] characters equal +to [%-*@3 chr]. [%-*@3 chr] can be zero.&] +[s3; &] +[s4;%- &] +[s5;:String`:`:String`(StringBuffer`&`):%- [* String]([_^StringBuffer^ StringBuffer][@(0.0.255) `& +]_[*@3 b])&] +[s2; Constructs a string from [%-*@3 b]. [%-*@3 b] is emptied by this +operation.&] +[s3; &] +[s4;%- &] +[s5;:String`:`:String`(const Nuller`&`):%- [* String]([@(0.0.255) const]_[_^Nuller^ Nuller][@(0.0.255) `& +])&] +[s2; Constructs empty [* String]. This variant is important to allow +assigning [* Null ]to [* String ](which is same as assigning the +empty [* String]).&] +[s3;%- &] +[s4;%- &] +[s5;:String`:`:String`(const string`&`):%- [* String]([@(0.0.255) const]_[_^http`:`/`/en`.cppreference`.com`/w`/cpp`/string`/basic`_string^ s +td`::string][@(0.0.255) `&]_[*@3 s])&] +[s2; Constructor to achieve minimal STL compatibility.&] +[s3; &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] +[s3;%- &] +[s5;:String`:`:Shrink`(`):%- [@(0.0.255) void]_[* Shrink]()&] +[s2; Reduces memory used by string to minimum (size optimization).&] +[s3; &] +[s4;%- &] +[s5;:String`:`:GetCharCount`(`)const:%- [@(0.0.255) int]_[* GetCharCount]()_[@(0.0.255) con +st]&] +[s2; Returns a number of characters contained in String. This is +equal GetCount() if default charset is not UTF`-8, but different +for UTF`-8. It is faster equivalent of ToWString().GetCount().&] +[s3;%- &] +[s4;%- &] +[s5;:String`:`:ToWString`(`)const:%- [_^WString^ WString]_[* ToWString]()_[@(0.0.255) const +]&] +[s2; Convert String to WString using current default character set.&] +[s3;%- &] +[s4;%- &] +[s5;:String`:`:ToString`(`)const:%- [@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[* T +oString]()_[@(0.0.255) const]&] +[s2; Returns `*this. Useful because ToString is standard method to +convert concrete type to text, used by AsString template (and +therefore by operator << as well).&] +[s3;%- &] +[s4;%- &] +[s5;:String`:`:GetVoid`(`):%- [@(0.0.255) static] [_^String^ String]_[* GetVoid]()&] +[s2; Returns special Void value. This value is same as empty string, +but IsVoid method returns true for it. It can be used in special +scenarios where client code needs to distinguish between two +empty values (let us say Void is `"more empty`"...). For example, +LoadFile returns Void string if file failed to load, but normal +empty string if it is empty.&] +[s3;%- &] +[s4;%- &] +[s5;:String`:`:IsVoid`(`)const:%- [@(0.0.255) bool]_[* IsVoid]()_[@(0.0.255) const]&] +[s2; Returns true if String is special value returned by [* GetVoid].&] +[s3;%- &] +[s4;%- &] +[s5;:String0`:`:IsEqual`(const String0`&`)const:%- [@(0.0.255) bool]_[* IsEqual]([@(0.0.255) c +onst]_[_^String0^ String][@(0.0.255) `&]_[*@3 s])_[@(0.0.255) const]&] +[s2; Return true if string is equal to [%-*@3 s].&] +[s3; &] +[s4;%- &] +[s5;:String0`:`:Compare`(const String0`&`)const:%- [@(0.0.255) int]_[* Compare]([@(0.0.255) c +onst]_[_^String0^ String0][@(0.0.255) `&]_[*@3 s])_[@(0.0.255) const]&] +[s2; Lexicographic comparison, return `-1 if this string is lower, +0 for equality, 1 if this string is greater. Individual characters +are compared as unsigned integer values.&] +[s3; &] +[s4;%- &] +[s5;:String0`:`:GetHashValue`(`)const:%- [@(0.0.255) unsigned]_[* GetHashValue]()_[@(0.0.255) c +onst]&] +[s2; Returns the hash value of the string.&] +[s3;%- &] +[s4;%- &] +[s5;:String0`:`:Cat`(int`):%- [@(0.0.255) void]_[* Cat]([@(0.0.255) int]_[*@3 c])&] +[s5;:String`:`:operator`+`=`(char`):%- [@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_ +[* operator`+`=]([@(0.0.255) char]_[*@3 c])&] +[s2; Appends single character [%-*@3 c]. This operations has constant +amortized time (in other words, internal space used by implementation +grows exponentially, like with Vector or std`::vector). [%-*@3 c] +can be zero.&] +[s3; &] +[s4;%- &] +[s5;:String0`:`:Cat`(const char`*`,int`):%- [@(0.0.255) void]_[* Cat]([@(0.0.255) const]_[@(0.0.255) c +har]_`*[*@3 s], [@(0.0.255) int]_[*@3 len])&] +[s2;%- [%% Appends ][*@3 len][%% characters from string ][*@3 s] ([*@3 s ]can +contain zero characters).&] +[s3; &] +[s4;%- &] +[s5;:String0`:`:Set`(int`,int`):%- [@(0.0.255) void]_[* Set]([@(0.0.255) int]_[*@3 i], +[@(0.0.255) int]_[*@3 chr])&] +[s2; Replace character at position [%-*@3 i] with [%-*@3 chr].&] +[s3; &] +[s4;%- &] +[s5;:String0`:`:Trim`(int`):%- [@(0.0.255) void]_[* Trim]([@(0.0.255) int]_[*@3 pos])&] +[s2; Sets the number of characters (length) to [%-*@3 pos].&] +[s3; &] +[s4;%- &] +[s5;:String0`:`:Begin`(`)const:%- [@(0.0.255) const]_[@(0.0.255) char]_`*[* Begin]()_[@(0.0.255) c +onst]&] +[s2; Returns a pointer to the first character.&] +[s3;%- &] +[s4;%- &] +[s5;:String0`:`:End`(`)const:%- [@(0.0.255) const]_[@(0.0.255) char]_`*[* End]()_[@(0.0.255) c +onst]&] +[s2; Returns a pointer to ending zero.&] +[s3;%- &] +[s4;%- &] +[s5;:String0`:`:Remove`(int`,int`):%- [@(0.0.255) void]_[* Remove]([@(0.0.255) int]_[*@3 pos], + [@(0.0.255) int]_[*@3 count]_`=_[@3 1])&] +[s2; Removes [%-*@3 count] element starting at position [%-*@3 pos].&] +[s3; &] +[s4;%- &] +[s5;:String0`:`:Clear`(`):%- [@(0.0.255) void]_[* Clear]()&] +[s2; Empties the string.&] +[s3;%- &] +[s4;%- &] +[s5;:String0`:`:GetCount`(`)const:%- [@(0.0.255) int]_[* GetCount]()_[@(0.0.255) const]&] +[s5;:String0`:`:GetLength`(`)const:%- [@(0.0.255) int]_[* GetLength]()_[@(0.0.255) const]&] +[s2; Returns the number of characters.&] +[s3;%- &] +[s4;%- &] +[s5;:String0`:`:GetAlloc`(`)const:%- [@(0.0.255) int]_[* GetAlloc]()_[@(0.0.255) const]&] +[s2; Returns the number of allocated characters (maximum string length +before it has to grow) &] +[s3;%- &] +[s4;%- &] +[s5;:String0`:`:Reserve`(int`):%- [@(0.0.255) void]_[* Reserve]([@(0.0.255) int]_[*@3 r])&] +[s2; Reserves [%-*@3 r] characters of internal storage for future concatenation +operations.&] +[s3; &] +[s4;%- &] +[s5;:String`:`:operator`+`=`(const char`*`):%- [@(0.0.255) const]_[_^String^ String][@(0.0.255) `& +]_[* operator`+`=]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 s])&] +[s5;:String`:`:operator`+`=`(const String`&`):%- [@(0.0.255) const]_[_^String^ String][@(0.0.255) `& +]_[* operator`+`=]([@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 s])&] +[s2; Appends a zero terminated string [%-*@3 s].&] +[s3; &] +[s4;%- &] +[s5;:String`:`:operator`=`(const String`&`):%- [_^String^ String][@(0.0.255) `&]_[* operato +r`=]([@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 s])&] +[s2; Assigns another string [%-*@3 s]. This operations is relatively +fast and does not depend on the length of string.&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:String`:`:operator`=`(Upp`:`:String`&`&`):%- [_^Upp`:`:String^ String][@(0.0.255) `& +]_[* operator`=]([_^Upp`:`:String^ String][@(0.0.255) `&`&]_[*@3 s])&] +[s2; Pick assignment.&] +[s3; &] +[s4;%- &] +[s5;:String`:`:operator`=`(const char`*`):%- [_^String^ String][@(0.0.255) `&]_[* operator`= +]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 s])&] +[s2; Assign a zero terminated string [%-*@3 s].&] +[s3; &] +[s4;%- &] +[s5;:String`:`:operator`=`(StringBuffer`&`):%- [_^String^ String][@(0.0.255) `&]_[* operato +r`=]([_^StringBuffer^ StringBuffer][@(0.0.255) `&]_[*@3 b])&] +[s2; Assigns the content of [* StringBuffer]. After the operation,b +is emptied.&] +[s3; &] +[s4;%- &] +[s5;:String`:`:operator`<`<`=`(const String`&`):%- [_^String^ String][@(0.0.255) `&]_[* ope +rator<<`=]([@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 s])&] +[s2; `"Deep`" assignment. It is equivalent of standard assignment +followed by [* Shrink ]operation (in other words, internal buffer +gets reallocated to the exact size of source).&] +[s3;%- &] +[s4;%- &] +[s5;:String`:`:ToStd`(`)const:%- [_^http`:`/`/en`.cppreference`.com`/w`/cpp`/string`/basic`_string^ s +td`::string]_[* ToStd]()_[@(0.0.255) const]&] +[s2; Converts String to std`::string.&] +[s3;%- &] +[s4;%- &] +[s5;:String0`:`:operator const char`*`(`)const:%- [@(0.0.255) operator]_[@(0.0.255) const +]_[@(0.0.255) char]_`*()_[@(0.0.255) const]&] +[s5;:String0`:`:operator`~`(`)const:%- [@(0.0.255) const]_[@(0.0.255) char]_`*[* operator`~ +]()_[@(0.0.255) const]&] +[s2; Returns [* Begin]().&] +[s3;%- &] +[s4;%- &] +[s5;:String0`:`:operator`[`]`(int`)const:%- [@(0.0.255) int]_[* operator`[`]]([@(0.0.255) i +nt]_[*@3 i])_[@(0.0.255) const]&] +[s2;%- [%% Returns the character at position ][*@3 i.]&] +[s3;%- &] +[s0;%- &] +[s0;@(0.0.255) &] +[s0;%- &] +[ {{10000@(113.42.0) [s0; [*@7;4 WString]]}}&] +[s3; &] +[s1;:WString`:`:class:%- [@(0.0.255)3 class][3 _][*3 WString][3 _:_][@(0.0.255)3 public][3 _][*@3;3 M +oveable][@(0.0.255)3 <][*3 WString][3 , ][_^AString^3 AString][@(0.0.255)3 <][_^WString0^3 WS +tring0][@(0.0.255)3 >][3 _>_]&] +[s9; WString is similar to String, but it uses 16 bit Ucs2 encoding. +String and WString share a number of common functions through +the AString interface.&] +[s3; &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] +[s3; &] +[s5;:WString`:`:WString`(`):%- [* WString]()&] +[s2; Default constructor. Constructs empty [* WString].&] +[s3;%- &] +[s4;%- &] +[s5;:WString`:`:WString`(const WString`&`):%- [* WString]([@(0.0.255) const]_[* WString][@(0.0.255) `& +]_[*@3 s])&] +[s2; Default copy constructor.&] +[s3; &] +[s4;%- &] +[s5;:WString`:`:WString`(const wchar`*`):%- [* WString]([@(0.0.255) const]_[_^wchar^ wchar]_ +`*[*@3 s])&] +[s2; Creates a copy of zero terminated string [%-*@3 s].&] +[s3; &] +[s4;%- &] +[s5;:WString`:`:WString`(const char`*`):%- [* WString]([@(0.0.255) const]_[@(0.0.255) char]_ +`*[*@3 s])&] +[s2; Creates a copy of zero terminated string [%-*@3 s].&] +[s3; &] +[s4;%- &] +[s5;:WString`:`:WString`(const WString`&`,int`):%- [* WString]([@(0.0.255) const]_[* WStrin +g][@(0.0.255) `&]_[*@3 s], [@(0.0.255) int]_[*@3 n])&] +[s2;%- [%% Constructs a string equal to first ][*@3 n][%% characters of +][%%* WString][%% ][*@3 s][%% ]([*@3 s ]can contain zero characters).&] +[s3; &] +[s4;%- &] +[s5;:WString`:`:WString`(const wchar`*`,int`):%- [* WString]([@(0.0.255) const]_[_^wchar^ w +char]_`*[*@3 s], [@(0.0.255) int]_[*@3 n])&] +[s2;%- [%% Constructs a string equal to first ][*@3 n][%% characters of +][*@3 s ]([*@3 s ]can contain zero characters).&] +[s3; &] +[s4;%- &] +[s5;:WString`:`:WString`(const wchar`*`,const wchar`*`):%- [* WString]([@(0.0.255) const]_ +[_^wchar^ wchar]_`*[*@3 s], [@(0.0.255) const]_[_^wchar^ wchar]_`*[*@3 lim])&] +[s2;%- [%% Constructs a string equal to first ][*@3 lim][%% `- ][*@3 s][%% +characters of ][*@3 s][%% ]([*@3 s ]can contain zero characters).&] +[s3; &] +[s4;%- &] +[s5;:WString`:`:WString`(const char`*`,int`):%- [* WString]([@(0.0.255) const]_[@(0.0.255) c +har]_`*[*@3 s], [@(0.0.255) int]_[*@3 n])&] +[s2;%- [%% Constructs a string equal to first ][*@3 n][%% characters of +zero terminated string ][*@3 s ]([*@3 s ]can contain zero characters).&] +[s3; &] +[s4;%- &] +[s5;:WString`:`:WString`(const char`*`,const char`*`):%- [* WString]([@(0.0.255) const]_[@(0.0.255) c +har]_`*[*@3 s], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 lim])&] +[s2;%- [%% Constructs a string equal to first ][*@3 n][%% characters of +zero terminated string ][*@3 s ]([*@3 s ]can contain zero characters).&] +[s3; &] +[s4;%- &] +[s5;:WString`:`:WString`(int`,int`):%- [* WString]([@(0.0.255) int]_[*@3 chr], +[@(0.0.255) int]_[*@3 count])&] +[s2; Constructs a string consisting of [%-*@3 count] characters equal +to [%-*@3 chr]. [%-*@3 chr] can be zero.&] +[s3; &] +[s4;%- &] +[s5;:WString`:`:WString`(WStringBuffer`&`):%- [* WString]([_^WStringBuffer^ WStringBuffer +][@(0.0.255) `&]_[*@3 b])&] +[s2; Constructs a string from [%-*@3 b]. [%-*@3 b] is emptied by this +operation.&] +[s3; &] +[s4;%- &] +[s5;:WString`:`:WString`(const Nuller`&`):%- [* WString]([@(0.0.255) const]_[_^Nuller^ Null +er][@(0.0.255) `&])&] +[s2; Constructs empty [* WString]. This variant is important to allow +assigning [* Null] to [* WString] (which is same as assigning the +empty [* WString]).&] +[s3;%- &] +[s4;%- &] +[s5;:WString`:`:WString`(const wstring`&`):%- [* WString]([@(0.0.255) const]_std`::wstring +[@(0.0.255) `&]_[*@3 s])&] +[s2; Constructor to achieve minimal STL compatibility.&] +[s3; &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] +[s3; &] +[s5;:WString`:`:Shrink`(`):%- [@(0.0.255) void]_[* Shrink]()&] +[s2; Reduces memory used by string to minimum (size optimization).&] +[s3;%- &] +[s4;%- &] +[s5;:WString`:`:ToString`(`)const:%- [_^String^ String]_[* ToString]()_[@(0.0.255) const]&] +[s2; Converts [* WString ]to [* String ]using current default character +set. Also serves as standard text conversion (for [* AsString] +and [* operator<<] templates).&] +[s3;%- &] +[s4;%- &] +[s5;:WString`:`:GetVoid`(`):%- [@(0.0.255) static] [_^WString^ WString]_[* GetVoid]()&] +[s2; Returns special Void value. This value is same as empty string, +but IsVoid method returns true for it. It can be used in special +scenarios where client code needs to distinguish between two +empty values (let us say Void is `"more empty`"...). For example, +LoadFile returns Void string if file failed to load, but normal +empty string if it is empty.&] +[s3;%- &] +[s4;%- &] +[s5;:WString`:`:IsVoid`(`)const:%- [@(0.0.255) bool]_[* IsVoid]()_[@(0.0.255) const]&] +[s2; Returns true if String is special value returned by [* GetVoid].&] +[s3;%- &] +[s4;%- &] +[s5;:WString0`:`:Begin`(`)const:%- [@(0.0.255) const]_[_^wchar^ wchar]_`*[* Begin]()_[@(0.0.255) c +onst]&] +[s2; Returns a pointer to the first character.&] +[s3;%- &] +[s4;%- &] +[s5;:WString0`:`:End`(`)const:%- [@(0.0.255) const]_[_^wchar^ wchar]_`*[* End]()_[@(0.0.255) c +onst]&] +[s2; Returns a pointer to ending zero.&] +[s3;%- &] +[s4;%- &] +[s5;:WString0`:`:GetCount`(`)const:%- [@(0.0.255) int]_[* GetCount]()_[@(0.0.255) const]&] +[s5;:WString0`:`:GetLength`(`)const:%- [@(0.0.255) int]_[* GetLength]()_[@(0.0.255) const]&] +[s2; Returns the number of characters.&] +[s3;%- &] +[s4;%- &] +[s5;:WString0`:`:GetAlloc`(`)const:%- [@(0.0.255) int]_[* GetAlloc]()_[@(0.0.255) const]&] +[s2; Returns the number of allocated characters (maximum string length +before it has to grow) &] +[s3;%- &] +[s4;%- &] +[s5;:WString0`:`:Cat`(int`):%- [@(0.0.255) void]_[* Cat]([@(0.0.255) int]_[*@3 c])&] +[s2; Appends single character [%-*@3 c]. This operations has constant +amortized time (in other words, internal space used by implementation +grows exponentially, like with Vector or std`::vector).&] +[s3; &] +[s4;%- &] +[s5;:WString0`:`:Cat`(const wchar`*`,int`):%- [@(0.0.255) void]_[* Cat]([@(0.0.255) const]_ +[_^wchar^ wchar]_`*[*@3 s], [@(0.0.255) int]_[*@3 length])&] +[s2;%- [%% Appends ][*@3 len][%% characters from string ][*@3 s] ([*@3 s ]can +contain zero characters).&] +[s3; &] +[s4;%- &] +[s5;:WString0`:`:GetHashValue`(`)const:%- [@(0.0.255) unsigned]_[* GetHashValue]()_[@(0.0.255) c +onst]&] +[s2; Returns the hash value of the string.&] +[s3;%- &] +[s4;%- &] +[s5;:WString0`:`:IsEqual`(const WString0`&`)const:%- [@(0.0.255) bool]_[* IsEqual]([@(0.0.255) c +onst]_[_^WString0^ WString][@(0.0.255) `&]_[*@3 s])_[@(0.0.255) const]&] +[s2; Return true if string is equal to [%-*@3 s].&] +[s3; &] +[s4;%- &] +[s5;:WString0`:`:Compare`(const WString0`&`)const:%- [@(0.0.255) int]_[* Compare]([@(0.0.255) c +onst]_[_^WString0^ WString][@(0.0.255) `&]_[*@3 s])_[@(0.0.255) const]&] +[s2; Lexicographic comparison, return `-1 if this string is lower, +0 for equality, 1 if this string is greater. Individual characters +are compared as unsigned integer values.&] +[s3; &] +[s4;%- &] +[s5;:WString0`:`:Remove`(int`,int`):%- [@(0.0.255) void]_[* Remove]([@(0.0.255) int]_[*@3 pos +], [@(0.0.255) int]_[*@3 count]_`=_[@3 1])&] +[s2; Removes [%-*@3 count] element starting at position [%-*@3 pos].&] +[s3; &] +[s4;%- &] +[s5;:WString0`:`:Insert`(int`,const wchar`*`,int`):%- [@(0.0.255) void]_[* Insert]([@(0.0.255) i +nt]_[*@3 pos], [@(0.0.255) const]_[_^wchar^ wchar]_`*[*@3 s], [@(0.0.255) int]_[*@3 count])&] +[s2; Inserts first [%-*@3 count] characters of [%-*@3 s] at position +[%-*@3 pos].&] +[s3; &] +[s4;%- &] +[s5;:WString0`:`:Clear`(`):%- [@(0.0.255) void]_[* Clear]()&] +[s2; Empties the string.&] +[s3;%- &] +[s4;%- &] +[s5;:WString0`:`:Set`(int`,int`):%- [@(0.0.255) void]_[* Set]([@(0.0.255) int]_[*@3 pos], +[@(0.0.255) int]_[*@3 ch])&] +[s2; Replace character at position [%-*@3 pos] with [%-*@3 ch].&] +[s3; &] +[s4;%- &] +[s5;:WString0`:`:Trim`(int`):%- [@(0.0.255) void]_[* Trim]([@(0.0.255) int]_[*@3 pos])&] +[s2; Sets the number of characters (length) to [%-*@3 pos].&] +[s3;%- &] +[s4;%- &] +[s5;:WString`:`:ToStd`(`)const:%- [_^http`:`/`/en`.cppreference`.com`/w`/cpp`/string`/basic`_string^ s +td`::wstring]_[* ToStd]()_[@(0.0.255) const]&] +[s2; Converts WString to std`::string.&] +[s0;%- &] +[s0;%- &] +[ {{10000@(113.42.0) [s0; [*@7;4 AString]]}}&] +[s3; &] +[s1;:noref:%- [@(0.0.255)3 template][3 _<][@(0.0.255)3 class][3 _][*@3;3 B][@(0.0.255)3 >]&] +[s1;:AString`:`:class:%- [@(0.0.255) class]_[* AString]_:_[@(0.0.255) public]_[*@3 B]&] +[s9; A class that implements behavior common to both String and WString.&] +[s3; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] +[s3;%- &] +[s5;:AString`:`:Clear`(`):%- [@(0.0.255) void]_[* Clear]()&] +[s2; Clears the content of the string.&] +[s3;%- &] +[s4;%- &] +[s5;:AString`:`:GetLength`(`)const:%- [@(0.0.255) int]_[* GetLength]()_[@(0.0.255) const]&] +[s2; Returns the length of the string.&] +[s3;%- &] +[s4;%- &] +[s5;:AString`:`:IsEmpty`(`)const:%- [@(0.0.255) bool]_[* IsEmpty]()_[@(0.0.255) const]&] +[s2; Return true if the length of the string is zero.&] +[s3;%- &] +[s4;%- &] +[s5;:AString`:`:End`(`)const:%- [@(0.0.255) const]_[_^AString`:`:tchar^ tchar]_`*[* End]()_ +[@(0.0.255) const]&] +[s2; Returns a pointer to the end of the string.&] +[s3;%- &] +[s4;%- &] +[s5;:AString`:`:Last`(`)const:%- [@(0.0.255) const]_[_^AString`:`:tchar^ tchar]_`*[* Last]( +)_[@(0.0.255) const]&] +[s2; Returns a pointer to the last character in the string. If string +is empty, returns a pointer to the ending zero.&] +[s3;%- &] +[s4;%- &] +[s5;:AString`:`:GetIter`(int`)const:%- [@(0.0.255) const]_[_^AString`:`:tchar^ tchar]_`*[* G +etIter]([@(0.0.255) int]_[*@3 i])_[@(0.0.255) const]&] +[s2; Returns a pointer to character index [%-*@3 i] of the string.&] +[s3; &] +[s4;%- &] +[s5;:AString`:`:operator`[`]`(int`)const:%- [@(0.0.255) int]_[* operator`[`]]([@(0.0.255) i +nt]_[*@3 i])_[@(0.0.255) const]&] +[s2; Returns the character with index [%-*@3 i].&] +[s3; &] +[s4;%- &] +[s5;:AString`:`:operator const tchar`*`(`)const:%- [@(0.0.255) operator]_[@(0.0.255) cons +t]_tchar_`*()_[@(0.0.255) const]&] +[s5;:AString`:`:operator`~`(`)const:%- [@(0.0.255) const]_[_^AString`:`:tchar^ tchar]_`*[* o +perator`~]()_[@(0.0.255) const]&] +[s5;:AString`:`:operator const void`*`(`)const:%- [@(0.0.255) operator]_[@(0.0.255) const +]_[@(0.0.255) void]_`*()_[@(0.0.255) const]&] +[s5;:AString`:`:operator const bchar`*`(`)const:%- [@(0.0.255) operator]_[@(0.0.255) cons +t]_bchar_`*()_[@(0.0.255) const]&] +[s2; Same as [* Begin()].&] +[s3;%- &] +[s4;%- &] +[s5;:AString`:`:Insert`(int`,int`):%- [@(0.0.255) void]_[* Insert]([@(0.0.255) int]_[*@3 pos], + [@(0.0.255) int]_[*@3 c])&] +[s5;:AString`:`:Insert`(int`,const AString`:`:tchar`*`,int`):%- [@(0.0.255) void]_[* Inse +rt]([@(0.0.255) int]_[*@3 pos], [@(0.0.255) const]_[_^AString`:`:tchar^ tchar]_`*[*@3 s], +[@(0.0.255) int]_[*@3 count])&] +[s5;:AString`:`:Insert`(int`,const AString`:`:String`&`):%- [@(0.0.255) void]_[* Insert]( +[@(0.0.255) int]_[*@3 pos], [@(0.0.255) const]_[_^AString`:`:String^ String][@(0.0.255) `&]_ +[*@3 s])&] +[s5;:AString`:`:Insert`(int`,const char`*`):%- [@(0.0.255) void]_[* Insert]([@(0.0.255) int +]_[*@3 pos], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 s])&] +[s2; Inserts item [%-*@3 c]/[%-*@3 s] at position [%-*@3 pos] ([%-*@3 count] +times).&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:AString`:`:TrimLast`(int`):%- [@(0.0.255) void]_[* TrimLast]([@(0.0.255) int]_[*@3 c +ount]_`=_[@3 1])&] +[s2; Removes [%-*@3 count] characters from the end of String. Same +as Remove(GetCount() `- count).&] +[s3; &] +[s4;%- &] +[s5;:AString`:`:Mid`(int`,int`)const:%- [_^AString`:`:String^ String]_[* Mid]([@(0.0.255) i +nt]_[*@3 pos], [@(0.0.255) int]_[*@3 length])_[@(0.0.255) const]&] +[s2; Returns a substring that begins from [%-*@3 pos] and with [%-*@3 length +]chars.&] +[s3; &] +[s4;%- &] +[s5;:AString`:`:Mid`(int`)const:%- [_^AString`:`:String^ String]_[* Mid]([@(0.0.255) int]_[*@3 p +os])_[@(0.0.255) const]&] +[s2; Returns a substring that begins from [%-*@3 pos].&] +[s3; &] +[s4;%- &] +[s5;:AString`:`:Right`(int`)const:%- [_^AString`:`:String^ String]_[* Right]([@(0.0.255) in +t]_[*@3 count])_[@(0.0.255) const]&] +[s2; Returns a substring with [%-*@3 count ]chars beginning from the +ens of the string.&] +[s3; &] +[s4;%- &] +[s5;:AString`:`:Left`(int`)const:%- [_^AString`:`:String^ String]_[* Left]([@(0.0.255) int]_ +[*@3 count])_[@(0.0.255) const]&] +[s2; Returns a substring with [%-*@3 count ]chars beginning from the +begin of the string.&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:AString`:`:Find`(int`,const Upp`:`:AString`:`:tchar`*`,int`)const:%- [@(0.0.255) i +nt]_[* Find]([@(0.0.255) int]_[*@3 len], [@(0.0.255) const]_[_^Upp`:`:AString`:`:tchar^ tch +ar]_`*[*@3 s], [@(0.0.255) int]_[*@3 from])_[@(0.0.255) const]&] +[s5;:AString`:`:Find`(const AString`:`:tchar`*`,int`)const:%- [@(0.0.255) int]_[* Find]([@(0.0.255) c +onst]_[_^AString`:`:tchar^ tchar]_`*[*@3 s], [@(0.0.255) int]_[*@3 from]_`=_[@3 0])_[@(0.0.255) c +onst]&] +[s5;:AString`:`:Find`(const AString`:`:String`&`,int`)const:%- [@(0.0.255) int]_[* Find]( +[@(0.0.255) const]_[_^AString`:`:String^ String][@(0.0.255) `&]_[*@3 s], +[@(0.0.255) int]_[*@3 from]_`=_[@3 0])_[@(0.0.255) const]&] +[s2; Returns first position of substring [%-*@3 s] greater than or +equal to [%-*@3 from], or `-1 if [%-*@3 s] is not found.&] +[s3; &] +[s4;%- &] +[s5;:AString`:`:FindAfter`(const AString`:`:tchar`*`,int`)const:%- [@(0.0.255) int]_[* Fi +ndAfter]([@(0.0.255) const]_[_^AString`:`:tchar^ tchar]_`*[*@3 s], +[@(0.0.255) int]_[*@3 from]_`=_[@3 0])_[@(0.0.255) const]&] +[s5;:AString`:`:FindAfter`(const AString`:`:String`&`,int`)const:%- [@(0.0.255) int]_[* F +indAfter]([@(0.0.255) const]_[_^AString`:`:String^ String][@(0.0.255) `&]_[*@3 s], +[@(0.0.255) int]_[*@3 from]_`=_[@3 0])_[@(0.0.255) const]&] +[s2; Similiar to Find, but if found, returns position [*/ after] the +substring found. In other words, if not found returns `-1, if +found, returns Find([%-*@3 s][%- , ][%-*@3 from]) `+ length of [%-*@3 s].&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:AString`:`:ReverseFind`(int`,const Upp`:`:AString`:`:tchar`*`,int`)const:%- [@(0.0.255) i +nt]_[* ReverseFind]([@(0.0.255) int]_[*@3 len], [@(0.0.255) const]_[_^Upp`:`:AString`:`:tchar^ t +char]_`*[*@3 s], [@(0.0.255) int]_[*@3 from])_[@(0.0.255) const]&] +[s5;:Upp`:`:AString`:`:ReverseFind`(const Upp`:`:AString`:`:tchar`*`,int`)const:%- [@(0.0.255) i +nt]_[* ReverseFind]([@(0.0.255) const]_[_^Upp`:`:AString`:`:tchar^ tchar]_`*[*@3 s], +[@(0.0.255) int]_[*@3 from])_[@(0.0.255) const]&] +[s5;:Upp`:`:AString`:`:ReverseFind`(const Upp`:`:AString`:`:String`&`,int`)const:%- [@(0.0.255) i +nt]_[* ReverseFind]([@(0.0.255) const]_[_^Upp`:`:AString`:`:String^ String][@(0.0.255) `& +]_[*@3 s], [@(0.0.255) int]_[*@3 from])_[@(0.0.255) const]&] +[s5;:Upp`:`:AString`:`:ReverseFind`(const Upp`:`:AString`:`:tchar`*`)const:%- [@(0.0.255) i +nt]_[* ReverseFind]([@(0.0.255) const]_[_^Upp`:`:AString`:`:tchar^ tchar]_`*[*@3 s])_[@(0.0.255) c +onst]&] +[s5;:Upp`:`:AString`:`:ReverseFind`(const Upp`:`:AString`:`:String`&`)const:%- [@(0.0.255) i +nt]_[* ReverseFind]([@(0.0.255) const]_[_^Upp`:`:AString`:`:String^ String][@(0.0.255) `& +]_[*@3 s])_[@(0.0.255) const]&] +[s2; Finds the [*/ last] position of [%-*@3 s] less than [%-*@3 from], +or `-1 if not found.&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:AString`:`:ReverseFindAfter`(int`,const Upp`:`:AString`:`:tchar`*`,int`)const:%- [@(0.0.255) i +nt]_[* ReverseFindAfter]([@(0.0.255) int]_[*@3 len], [@(0.0.255) const]_[_^Upp`:`:AString`:`:tchar^ t +char]_`*[*@3 s], [@(0.0.255) int]_[*@3 from])_[@(0.0.255) const]&] +[s5;:Upp`:`:AString`:`:ReverseFindAfter`(const Upp`:`:AString`:`:tchar`*`,int`)const:%- [@(0.0.255) i +nt]_[* ReverseFindAfter]([@(0.0.255) const]_[_^Upp`:`:AString`:`:tchar^ tchar]_`*[*@3 s], + [@(0.0.255) int]_[*@3 from])_[@(0.0.255) const]&] +[s5;:Upp`:`:AString`:`:ReverseFindAfter`(const Upp`:`:AString`:`:String`&`,int`)const:%- [@(0.0.255) i +nt]_[* ReverseFindAfter]([@(0.0.255) const]_[_^Upp`:`:AString`:`:String^ String][@(0.0.255) `& +]_[*@3 s], [@(0.0.255) int]_[*@3 from])_[@(0.0.255) const]&] +[s5;:Upp`:`:AString`:`:ReverseFindAfter`(const Upp`:`:AString`:`:tchar`*`)const:%- [@(0.0.255) i +nt]_[* ReverseFindAfter]([@(0.0.255) const]_[_^Upp`:`:AString`:`:tchar^ tchar]_`*[*@3 s]) +_[@(0.0.255) const]&] +[s5;:Upp`:`:AString`:`:ReverseFindAfter`(const Upp`:`:AString`:`:String`&`)const:%- [@(0.0.255) i +nt]_[* ReverseFindAfter]([@(0.0.255) const]_[_^Upp`:`:AString`:`:String^ String][@(0.0.255) `& +]_[*@3 s])_[@(0.0.255) const]&] +[s2; Similar to ReverseFind, but returns position [*/ after] the substring +found. In other words, if not found returns `-1, if found, returns +Find([%-*@3 s][%- , ][%-*@3 from]) `+ length of [%-*@3 s].&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:AString`:`:Replace`(const Upp`:`:AString`:`:tchar`*`,int`,const Upp`:`:AString`:`:tchar`*`,int`):%- [@(0.0.255) v +oid]_[* Replace]([@(0.0.255) const]_[_^Upp`:`:AString`:`:tchar^ tchar]_`*[*@3 find], +[@(0.0.255) int]_[*@3 findlen], [@(0.0.255) const]_[_^Upp`:`:AString`:`:tchar^ tchar]_`*[*@3 r +eplace], [@(0.0.255) int]_[*@3 replacelen])&] +[s5;:AString`:`:Replace`(const AString`:`:String`&`,const AString`:`:String`&`):%- [@(0.0.255) v +oid]_[* Replace]([@(0.0.255) const]_[_^AString`:`:String^ String][@(0.0.255) `&]_[*@3 find], + [@(0.0.255) const]_[_^AString`:`:String^ String][@(0.0.255) `&]_[*@3 replace])&] +[s5;:AString`:`:Replace`(const AString`:`:tchar`*`,const AString`:`:tchar`*`):%- [@(0.0.255) v +oid]_[* Replace]([@(0.0.255) const]_[_^AString`:`:tchar^ tchar]_`*[*@3 find], +[@(0.0.255) const]_[_^AString`:`:tchar^ tchar]_`*[*@3 replace])&] +[s5;:AString`:`:Replace`(const AString`:`:String`&`,const AString`:`:tchar`*`):%- [@(0.0.255) v +oid]_[* Replace]([@(0.0.255) const]_[_^AString`:`:String^ String][@(0.0.255) `&]_[*@3 find], + [@(0.0.255) const]_[_^AString`:`:tchar^ tchar]_`*[*@3 replace])&] +[s5;:AString`:`:Replace`(const AString`:`:tchar`*`,const AString`:`:String`&`):%- [@(0.0.255) v +oid]_[* Replace]([@(0.0.255) const]_[_^AString`:`:tchar^ tchar]_`*[*@3 find], +[@(0.0.255) const]_[_^AString`:`:String^ String][@(0.0.255) `&]_[*@3 replace])&] +[s2; Replaces substring [%-*@3 find] with [%-*@3 replace ]string for +all times [%-*@3 find] string appears.&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:AString`:`:StartsWith`(const Upp`:`:AString`:`:tchar`*`,int`)const:%- [@(0.0.255) b +ool]_[* StartsWith]([@(0.0.255) const]_[_^Upp`:`:AString`:`:tchar^ tchar]_`*[*@3 s], +[@(0.0.255) int]_[*@3 len])_[@(0.0.255) const]&] +[s5;:Upp`:`:AString`:`:StartsWith`(const Upp`:`:AString`:`:tchar`*`)const:%- [@(0.0.255) b +ool]_[* StartsWith]([@(0.0.255) const]_[_^Upp`:`:AString`:`:tchar^ tchar]_`*[*@3 s])_[@(0.0.255) c +onst]&] +[s5;:Upp`:`:AString`:`:StartsWith`(const Upp`:`:AString`:`:String`&`)const:%- [@(0.0.255) b +ool]_[* StartsWith]([@(0.0.255) const]_[_^Upp`:`:AString`:`:String^ String][@(0.0.255) `& +]_[*@3 s])_[@(0.0.255) const]&] +[s2; Returns true if string starts with [%-*@3 s].&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:AString`:`:TrimStart`(const Upp`:`:AString`:`:tchar`*`,int`):%- [@(0.0.255) b +ool]_[* TrimStart]([@(0.0.255) const]_[_^Upp`:`:AString`:`:tchar^ tchar]_`*[*@3 s], +[@(0.0.255) int]_[*@3 len])&] +[s5;:Upp`:`:AString`:`:TrimStart`(const Upp`:`:AString`:`:tchar`*`):%- [@(0.0.255) bool +]_[* TrimStart]([@(0.0.255) const]_[_^Upp`:`:AString`:`:tchar^ tchar]_`*[*@3 s])&] +[s5;:Upp`:`:AString`:`:TrimStart`(const Upp`:`:AString`:`:String`&`):%- [@(0.0.255) boo +l]_[* TrimStart]([@(0.0.255) const]_[_^Upp`:`:AString`:`:String^ String][@(0.0.255) `&]_[*@3 s +])&] +[s2; If string starts with [%-*@3 s], trims the start to remove it +and returns true.&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:AString`:`:EndsWith`(const Upp`:`:AString`:`:tchar`*`,int`)const:%- [@(0.0.255) b +ool]_[* EndsWith]([@(0.0.255) const]_[_^Upp`:`:AString`:`:tchar^ tchar]_`*[*@3 s], +[@(0.0.255) int]_[*@3 len])_[@(0.0.255) const]&] +[s5;:Upp`:`:AString`:`:EndsWith`(const Upp`:`:AString`:`:tchar`*`)const:%- [@(0.0.255) b +ool]_[* EndsWith]([@(0.0.255) const]_[_^Upp`:`:AString`:`:tchar^ tchar]_`*[*@3 s])_[@(0.0.255) c +onst]&] +[s5;:Upp`:`:AString`:`:EndsWith`(const Upp`:`:AString`:`:String`&`)const:%- [@(0.0.255) b +ool]_[* EndsWith]([@(0.0.255) const]_[_^Upp`:`:AString`:`:String^ String][@(0.0.255) `&]_ +[*@3 s])_[@(0.0.255) const]&] +[s2; Returns true if string ends with [%-*@3 s].&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:AString`:`:TrimEnd`(const Upp`:`:AString`:`:tchar`*`,int`):%- [@(0.0.255) b +ool]_[* TrimEnd]([@(0.0.255) const]_[_^Upp`:`:AString`:`:tchar^ tchar]_`*[*@3 s], +[@(0.0.255) int]_[*@3 len])&] +[s5;:Upp`:`:AString`:`:TrimEnd`(const Upp`:`:AString`:`:tchar`*`):%- [@(0.0.255) bool]_ +[* TrimEnd]([@(0.0.255) const]_[_^Upp`:`:AString`:`:tchar^ tchar]_`*[*@3 s])&] +[s5;:Upp`:`:AString`:`:TrimEnd`(const Upp`:`:AString`:`:String`&`):%- [@(0.0.255) bool]_ +[* TrimEnd]([@(0.0.255) const]_[_^Upp`:`:AString`:`:String^ String][@(0.0.255) `&]_[*@3 s]) +&] +[s2; If string ends with [%-*@3 s], trims the end to remove it and +returns true.&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:AString`:`:FindFirstOf`(int`,const Upp`:`:AString`:`:tchar`*`,int`)const:%- [@(0.0.255) i +nt]_[* FindFirstOf]([@(0.0.255) int]_[*@3 len], [@(0.0.255) const]_[_^Upp`:`:AString`:`:tchar^ t +char]_`*[*@3 set], [@(0.0.255) int]_[*@3 from])_[@(0.0.255) const]&] +[s2; Returns the first position of any character from [%-*@3 set] starting +at [%-*@3 from]. The number of characters in [%-*@3 set] is [%-*@3 len]. +Returns `-1 if not found.&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:AString`:`:FindFirstOf`(const Upp`:`:AString`:`:tchar`*`,int`)const:%- [@(0.0.255) i +nt]_[* FindFirstOf]([@(0.0.255) const]_[_^Upp`:`:AString`:`:tchar^ tchar]_`*[*@3 set], +[@(0.0.255) int]_[*@3 from]_`=_[@3 0])_[@(0.0.255) const]&] +[s2; Returns the first position of any character from zero terminated +[%-*@3 set] starting at [%-*@3 from]. Returns `-1 if not found.&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:AString`:`:FindFirstOf`(const Upp`:`:AString`:`:String`&`,int`)const:%- [@(0.0.255) i +nt]_[* FindFirstOf]([@(0.0.255) const]_[_^Upp`:`:AString`:`:String^ String][@(0.0.255) `& +]_[*@3 set], [@(0.0.255) int]_[*@3 from]_`=_[@3 0])_[@(0.0.255) const]&] +[s2; Returns the first position of any character from [%-*@3 set] starting +at [%-*@3 from]. Returns `-1 if not found.&] +[s2; &] +[s3; &] [s3; ]] \ No newline at end of file diff --git a/uppsrc/Core/src.tpp/TcpSocket$en-us.tpp b/uppsrc/Core/src.tpp/TcpSocket_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/TcpSocket$en-us.tpp rename to uppsrc/Core/src.tpp/TcpSocket_en-us.tpp diff --git a/uppsrc/Core/src.tpp/Thread$en-us.tpp b/uppsrc/Core/src.tpp/Thread_en-us.tpp similarity index 97% rename from uppsrc/Core/src.tpp/Thread$en-us.tpp rename to uppsrc/Core/src.tpp/Thread_en-us.tpp index 47238f322..3efcd1edf 100644 --- a/uppsrc/Core/src.tpp/Thread$en-us.tpp +++ b/uppsrc/Core/src.tpp/Thread_en-us.tpp @@ -1,128 +1,128 @@ -topic "Thread"; -[2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,0#27521748481378242620020725143825:desc] -[0 $$3,0#96390100711032703541132217272105:end] -[H6;0 $$4,0#05600065144404261032431302351956:begin] -[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] -[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] -[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] -[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] -[b42;2 $$9,9#13035079074754324216151401829390:normal] -[{_} -[ {{10000@(113.42.0) [s0;%% [*@7;4 Thread]]}}&] -[s3; &] -[s1;:Thread`:`:class: [@(0.0.255) class]_[* Thread]_:_[@(0.0.255) private]_[*@3 NoCopy]&] -[s9;%% Encapsulation of thread.&] -[s3;%% &] -[s0;%% &] -[ {{10000F(128)G(128)@1 [s0;%% [* Constructor Detail]]}}&] -[s3; &] -[s5;:Thread`:`:Thread`(`): [* Thread]()&] -[s2;%% Default constructor.&] -[s3;%% &] -[s4; &] -[s5;:Thread`:`:`~Thread`(`): [@(0.0.255) `~][* Thread]()&] -[s2;%% Destructor. Performs Detach `- thread continues running.&] -[s3;%% &] -[s0;%% &] -[ {{10000F(128)G(128)@1 [s0;%% [* Public Method List]]}}&] -[s3; &] -[s5;:Upp`:`:Thread`:`:Run`(Upp`:`:Function``,bool`): [@(0.0.255) bool]_[* Run]( -[_^Upp`:`:Function^ Function]<[@(0.0.255) void]_()>_[*@3 cb], [@(0.0.255) bool]_[*@3 noshut -down]_`=_[@(0.0.255) false])&] -[s2;%% Starts a new thread. If [%-*@3 noshutdown] is true, started -thread is not meant to be aware of Shutdown system `- basically -it means that it does not affect thread counter.&] -[s3;%% &] -[s4; &] -[s5;:Upp`:`:Thread`:`:Start`(Upp`:`:Function``,bool`): [@(0.0.255) static] -[@(0.0.255) void]_[* Start]([_^Upp`:`:Function^ Function]<[@(0.0.255) void]_()>_[*@3 cb], -[@(0.0.255) bool]_[*@3 noshutdown]_`=_[@(0.0.255) false])&] -[s2;%% Starts a thread and returns immediately (you cannot Wait for -the thread to finish in this case). If [%-*@3 noshutdown] is true, -started thread is not meant to be aware of Shutdown system `- -basically it means that it does not affect thread counter.&] -[s3;%% &] -[s4; &] -[s5;:Thread`:`:Detach`(`): [@(0.0.255) void]_[* Detach]()&] -[s2;%% Detaches running thread from the Thread object. It means that -thread continues running but is no longer controlled by Thread -instance.&] -[s3; &] -[s4; &] -[s5;:Thread`:`:Wait`(`): [@(0.0.255) int]_[* Wait]()&] -[s2;%% Waits for started thread to finish. (`"join`").&] -[s3; &] -[s4; &] -[s5;:Thread`:`:IsOpen`(`)const: [@(0.0.255) bool]_[* IsOpen]()_[@(0.0.255) const]&] -[s2;%% Thread represents an existing thread. Note that the thread -can be already finished and not running anymore (calling to Wait -in that case returns immediately).&] -[s3; &] -[s4; &] -[s5;:Upp`:`:Thread`:`:GetId`(`)const: [_^Upp`:`:Thread`:`:Id^ Thread`::Id]_[* GetId]()_[@(0.0.255) c -onst]&] -[s2;%% Returns the system`-unique id of thread.&] -[s3; &] -[s4; &] -[s5;:Thread`:`:GetHandle`(`)const: HANDLE_[* GetHandle]()_[@(0.0.255) const -][*C `[WIN32`]]&] -[s5;:Thread`:`:GetHandle`(`)const: pthread`_t_[* GetHandle]()_[@(0.0.255) const -][*C `[POSIX`]]&] -[s2;%% Returns platform specific handle of thread.&] -[s3; &] -[s4; &] -[s5;:Thread`:`:Sleep`(int`): [@(0.0.255) static] [@(0.0.255) void]_[* Sleep]([@(0.0.255) int]_ -[*@3 ms])&] -[s2;%% Sleep for a given number of milliseconds.&] -[s3; &] -[s4; &] -[s5;:Thread`:`:IsST`(`): [@(0.0.255) static] [@(0.0.255) bool]_[* IsST]()&] -[s2;%% No additional thread was started yet (only the main thread -is running so far).&] -[s3; &] -[s4; &] -[s5;:Thread`:`:IsMain`(`): [@(0.0.255) static] [@(0.0.255) bool]_[* IsMain]()&] -[s2;%% Returns true if current thread is main.&] -[s3; &] -[s4; &] -[s5;:Thread`:`:GetCount`(`): [@(0.0.255) static] [@(0.0.255) int]_[* GetCount]()&] -[s2;%% Number of running threads.&] -[s3; &] -[s4; &] -[s5;:Thread`:`:ShutdownThreads`(`): [@(0.0.255) static] [@(0.0.255) void]_[* ShutdownThread -s]()&] -[s2;%% Sets the `"Shutdown`" flag on, waits before all threads started -without noshutdown true terminate, then sets flag off again. -It is meant to be used together with IsShutdownThreads to terminate -long running secondary service threads. Main thread calls ShutdownThreads, -secondary threads test IsShutdownThreads and if true, exit.&] -[s3; &] -[s4; &] -[s5;:Thread`:`:IsShutdownThreads`(`): [@(0.0.255) static] [@(0.0.255) bool]_[* IsShutdownTh -reads]()&] -[s2;%% True if ShutdownThreads is active. This is supposed to be -tested by threads participating in shutdown system.&] -[s3; &] -[s4; &] -[s5;:Thread`:`:AtExit: [@(0.0.255) static]_[@(0.0.255) void]_(`*[* AtExit]([@(0.0.255) void]_ -(`*[*@3 exitfn])()))()&] -[s2;%% Allow to install a function [%-*@3 exitfn] to be called at thread -exit. Returns the pointer to function already installed or NULL, -client code should call the already installed function (return -value is not null)&] -[s3; &] -[s4; &] -[s5;:Upp`:`:Thread`:`:GetCurrentId`(`): [@(0.0.255) static] [_^Upp`:`:Thread`:`:Id^ Threa -d`::Id]_[* GetCurrentId]()&] -[s2;%% Returns the system`-unique id of calling thread.&] -[s3; &] -[s4; &] -[s5;:Thread`:`:Priority`(int`): [@(0.0.255) bool]_[* Priority]([@(0.0.255) int]_[*@3 percent]) -&] -[s2;%% Sets the treads priority to [%-*@3 percent ][%- (0 to 200)]. In -reality, current implementation supports only 5 levels, 25%, -75%, 125%, 175% and more than 175%; last two levels require root -privileges. Returns true if setting the priority was successful.&] +topic "Thread"; +[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,0#27521748481378242620020725143825:desc] +[0 $$3,0#96390100711032703541132217272105:end] +[H6;0 $$4,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] +[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] +[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] +[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] +[b42;2 $$9,9#13035079074754324216151401829390:normal] +[{_} +[ {{10000@(113.42.0) [s0;%% [*@7;4 Thread]]}}&] +[s3; &] +[s1;:Thread`:`:class: [@(0.0.255) class]_[* Thread]_:_[@(0.0.255) private]_[*@3 NoCopy]&] +[s9;%% Encapsulation of thread.&] +[s3;%% &] +[s0;%% &] +[ {{10000F(128)G(128)@1 [s0;%% [* Constructor Detail]]}}&] +[s3; &] +[s5;:Thread`:`:Thread`(`): [* Thread]()&] +[s2;%% Default constructor.&] +[s3;%% &] +[s4; &] +[s5;:Thread`:`:`~Thread`(`): [@(0.0.255) `~][* Thread]()&] +[s2;%% Destructor. Performs Detach `- thread continues running.&] +[s3;%% &] +[s0;%% &] +[ {{10000F(128)G(128)@1 [s0;%% [* Public Method List]]}}&] +[s3; &] +[s5;:Upp`:`:Thread`:`:Run`(Upp`:`:Function``,bool`): [@(0.0.255) bool]_[* Run]( +[_^Upp`:`:Function^ Function]<[@(0.0.255) void]_()>_[*@3 cb], [@(0.0.255) bool]_[*@3 noshut +down]_`=_[@(0.0.255) false])&] +[s2;%% Starts a new thread. If [%-*@3 noshutdown] is true, started +thread is not meant to be aware of Shutdown system `- basically +it means that it does not affect thread counter.&] +[s3;%% &] +[s4; &] +[s5;:Upp`:`:Thread`:`:Start`(Upp`:`:Function``,bool`): [@(0.0.255) static] +[@(0.0.255) void]_[* Start]([_^Upp`:`:Function^ Function]<[@(0.0.255) void]_()>_[*@3 cb], +[@(0.0.255) bool]_[*@3 noshutdown]_`=_[@(0.0.255) false])&] +[s2;%% Starts a thread and returns immediately (you cannot Wait for +the thread to finish in this case). If [%-*@3 noshutdown] is true, +started thread is not meant to be aware of Shutdown system `- +basically it means that it does not affect thread counter.&] +[s3;%% &] +[s4; &] +[s5;:Thread`:`:Detach`(`): [@(0.0.255) void]_[* Detach]()&] +[s2;%% Detaches running thread from the Thread object. It means that +thread continues running but is no longer controlled by Thread +instance.&] +[s3; &] +[s4; &] +[s5;:Thread`:`:Wait`(`): [@(0.0.255) int]_[* Wait]()&] +[s2;%% Waits for started thread to finish. (`"join`").&] +[s3; &] +[s4; &] +[s5;:Thread`:`:IsOpen`(`)const: [@(0.0.255) bool]_[* IsOpen]()_[@(0.0.255) const]&] +[s2;%% Thread represents an existing thread. Note that the thread +can be already finished and not running anymore (calling to Wait +in that case returns immediately).&] +[s3; &] +[s4; &] +[s5;:Upp`:`:Thread`:`:GetId`(`)const: [_^Upp`:`:Thread`:`:Id^ Thread`::Id]_[* GetId]()_[@(0.0.255) c +onst]&] +[s2;%% Returns the system`-unique id of thread.&] +[s3; &] +[s4; &] +[s5;:Thread`:`:GetHandle`(`)const: HANDLE_[* GetHandle]()_[@(0.0.255) const +][*C `[WIN32`]]&] +[s5;:Thread`:`:GetHandle`(`)const: pthread`_t_[* GetHandle]()_[@(0.0.255) const +][*C `[POSIX`]]&] +[s2;%% Returns platform specific handle of thread.&] +[s3; &] +[s4; &] +[s5;:Thread`:`:Sleep`(int`): [@(0.0.255) static] [@(0.0.255) void]_[* Sleep]([@(0.0.255) int]_ +[*@3 ms])&] +[s2;%% Sleep for a given number of milliseconds.&] +[s3; &] +[s4; &] +[s5;:Thread`:`:IsST`(`): [@(0.0.255) static] [@(0.0.255) bool]_[* IsST]()&] +[s2;%% No additional thread was started yet (only the main thread +is running so far).&] +[s3; &] +[s4; &] +[s5;:Thread`:`:IsMain`(`): [@(0.0.255) static] [@(0.0.255) bool]_[* IsMain]()&] +[s2;%% Returns true if current thread is main.&] +[s3; &] +[s4; &] +[s5;:Thread`:`:GetCount`(`): [@(0.0.255) static] [@(0.0.255) int]_[* GetCount]()&] +[s2;%% Number of running threads.&] +[s3; &] +[s4; &] +[s5;:Thread`:`:ShutdownThreads`(`): [@(0.0.255) static] [@(0.0.255) void]_[* ShutdownThread +s]()&] +[s2;%% Sets the `"Shutdown`" flag on, waits before all threads started +without noshutdown true terminate, then sets flag off again. +It is meant to be used together with IsShutdownThreads to terminate +long running secondary service threads. Main thread calls ShutdownThreads, +secondary threads test IsShutdownThreads and if true, exit.&] +[s3; &] +[s4; &] +[s5;:Thread`:`:IsShutdownThreads`(`): [@(0.0.255) static] [@(0.0.255) bool]_[* IsShutdownTh +reads]()&] +[s2;%% True if ShutdownThreads is active. This is supposed to be +tested by threads participating in shutdown system.&] +[s3; &] +[s4; &] +[s5;:Thread`:`:AtExit: [@(0.0.255) static]_[@(0.0.255) void]_(`*[* AtExit]([@(0.0.255) void]_ +(`*[*@3 exitfn])()))()&] +[s2;%% Allow to install a function [%-*@3 exitfn] to be called at thread +exit. Returns the pointer to function already installed or NULL, +client code should call the already installed function (return +value is not null)&] +[s3; &] +[s4; &] +[s5;:Upp`:`:Thread`:`:GetCurrentId`(`): [@(0.0.255) static] [_^Upp`:`:Thread`:`:Id^ Threa +d`::Id]_[* GetCurrentId]()&] +[s2;%% Returns the system`-unique id of calling thread.&] +[s3; &] +[s4; &] +[s5;:Thread`:`:Priority`(int`): [@(0.0.255) bool]_[* Priority]([@(0.0.255) int]_[*@3 percent]) +&] +[s2;%% Sets the treads priority to [%-*@3 percent ][%- (0 to 200)]. In +reality, current implementation supports only 5 levels, 25%, +75%, 125%, 175% and more than 175%; last two levels require root +privileges. Returns true if setting the priority was successful.&] [s0; ]] \ No newline at end of file diff --git a/uppsrc/Core/src.tpp/UrlInfo$en-us.tpp b/uppsrc/Core/src.tpp/UrlInfo_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/UrlInfo$en-us.tpp rename to uppsrc/Core/src.tpp/UrlInfo_en-us.tpp diff --git a/uppsrc/Core/src.tpp/Utf$en-us.tpp b/uppsrc/Core/src.tpp/Utf_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/Utf$en-us.tpp rename to uppsrc/Core/src.tpp/Utf_en-us.tpp diff --git a/uppsrc/Core/src.tpp/Util$en-us.tpp b/uppsrc/Core/src.tpp/Util_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/Util$en-us.tpp rename to uppsrc/Core/src.tpp/Util_en-us.tpp diff --git a/uppsrc/Core/src.tpp/ValueArray$en-us.tpp b/uppsrc/Core/src.tpp/ValueArray_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/ValueArray$en-us.tpp rename to uppsrc/Core/src.tpp/ValueArray_en-us.tpp diff --git a/uppsrc/Core/src.tpp/ValueGen$en-us.tpp b/uppsrc/Core/src.tpp/ValueGen_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/ValueGen$en-us.tpp rename to uppsrc/Core/src.tpp/ValueGen_en-us.tpp diff --git a/uppsrc/Core/src.tpp/ValueMap$en-us.tpp b/uppsrc/Core/src.tpp/ValueMap_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/ValueMap$en-us.tpp rename to uppsrc/Core/src.tpp/ValueMap_en-us.tpp diff --git a/uppsrc/Core/src.tpp/Value$en-us.tpp b/uppsrc/Core/src.tpp/Value_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/Value$en-us.tpp rename to uppsrc/Core/src.tpp/Value_en-us.tpp diff --git a/uppsrc/Core/src.tpp/VectorMap$en-us.tpp b/uppsrc/Core/src.tpp/VectorMap_en-us.tpp similarity index 98% rename from uppsrc/Core/src.tpp/VectorMap$en-us.tpp rename to uppsrc/Core/src.tpp/VectorMap_en-us.tpp index 3107d2196..5b67e4a67 100644 --- a/uppsrc/Core/src.tpp/VectorMap$en-us.tpp +++ b/uppsrc/Core/src.tpp/VectorMap_en-us.tpp @@ -1,107 +1,107 @@ -topic "VectorMap"; -[2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,0#27521748481378242620020725143825:desc] -[0 $$3,0#96390100711032703541132217272105:end] -[H6;0 $$4,0#05600065144404261032431302351956:begin] -[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] -[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] -[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] -[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] -[b42;2 $$9,9#13035079074754324216151401829390:normal] -[{_}%EN-US -[ {{10000@(113.42.0) [s0; [*@7;4 VectorMap]]}}&] -[s3; &] -[s1;:noref:%- [@(0.0.255)3 template][3 _<][@(0.0.255)3 class][3 _][*@4;3 K][3 , -][@(0.0.255)3 class][3 _][*@4;3 T][3 , ][@(0.0.255)3 class][3 _][*@4;3 HashFn][3 _`=_StdHash][@(0.0.255)3 < -][*@4;3 K][@(0.0.255)3 >][3 _>]&] -[s1;:VectorMap`:`:class:%- [@(0.0.255) class]_[* VectorMap]_:_[@(0.0.255) public]_[*_^MoveableAndDeepCopyOption^@3 M -oveableAndDeepCopyOption][@(0.0.255) <][* VectorMap][@(0.0.255) <][*@4 K], -[*@4 T], [*@4 HashFn][@(0.0.255) >]_>, [@(0.0.255) public]_[*_^AMap^@3 AMap][@(0.0.255) <]_[*@4 K -], [*@4 T], [_^Vector^ Vector][@(0.0.255) <][*@4 T][@(0.0.255) >], [*@4 HashFn]_>_&] -[s0;%- &] -[s8; [*@4 K]-|Type of keys. K must have deep copy constructor, be [/^topic`:`/`/Core`/srcdoc`/Moveable`$en`-us^ m -oveable] and must have operator`=`= defined.&] -[s8; [*@4 T]-|Type of elements stored in Vector. T is required to be -[/^topic`:`/`/Core`/srcdoc`/Moveable`$en`-us^ moveable][/ ]and must -have either [/^topic`:`/`/Core`/srcdoc`/pick`_`$en`-us^ deep copy -constructor], [/^topic`:`/`/Core`/srcdoc`/pick`_`$en`-us^ pick -constructor] or [/ default constructor].&] -[s8; [*@4 HashFn]-|Hashing class. Must have defined unsigned operator()(const -K`& x) method returning hash value for elements.&] -[s0; &] -[s9; Vector flavor of map. Inherits most of its functionality from -[^topic`:`/`/Core`/src`/AMap`$en`-us^ AMap] and adds only members -specific for its flavor.&] -[s9; Like any other NTL container, VectorMap is [*/^topic`:`/`/Core`/srcdoc`/Moveable`$en`-us^ m -oveable][*/ ]type with [*/^topic`:`/`/Core`/srcdoc`/pick`_`$en`-us^ pick -and optional deep copy] transfer semantics. Calling methods of -picked VectorMap is logic error with exception of:&] -[s9;C+75 &] -[s0; [*C+75 void operator`=(pick`_ VectorMap`& ][*C@3+75 v][*C+75 ) ][*/C+75 (defined -by composition)]&] -[s0; [*C+75 void operator<<`=(const AMap`& ][*C@3+75 v][*C+75 ) ][*/C+75 (defined -in AMap)]&] -[s0; [*C+75 void Clear()]&] -[s0; [*C+75 bool IsPicked() const]&] -[s0;C+75 &] -[s9; Optional deep copy operator is inherited from AMap class. Pick -operator is implicitly defined by composition.&] -[s3; &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] -[s3;%- &] -[s5;:VectorMap`:`:VectorMap`(`):%- [* VectorMap]()&] -[s2; Default constructor. Constructs empty [* VectorMap].&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:VectorMap`:`:VectorMap`(std`:`:initializer`_list``>`):%- [* V -ectorMap]([_^http`:`/`/en`.cppreference`.com`/w`/cpp`/utility`/initializer`_list^ s -td`::initializer`_list]<[_^http`:`/`/en`.cppreference`.com`/w`/cpp`/utility`/pair^ s -td`::pair]<[*@4 K], [*@4 T]>>_[*@3 init])&] -[s2; C`+`+ 11 initialization.&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:VectorMap`:`:operator`(`)`(const K`&`,const T`&`):%- [*_^Upp`:`:VectorMap^ V -ectorMap][@(0.0.255) `&]_[* operator()]([@(0.0.255) const]_[*@4 K][@(0.0.255) `&]_[*@3 k], -[@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[*@3 v])&] -[s2; Same as Add([%-*@3 k], [%-*@3 v]), returns `*this. Syntax sugar -for creating map.&] -[s3; &] -[s4;%- &] -[s5;:VectorMap`:`:VectorMap`(const VectorMap`&`,int`):%- [* VectorMap]([@(0.0.255) const]_ -[* VectorMap][@(0.0.255) `&]_[*@3 s], [@(0.0.255) int])&] -[s2; Optional deep copy constructor.&] -[s6; Requires T to have deep copy constructor or optional deep copy -constructor.&] -[s7; [%-*@3 s][%- -|]Source [* VectorMap].&] -[s3; &] -[s4;%- &] -[s5;:VectorMap`:`:VectorMap`(pick`_ Index``&`,pick`_ Vector``&`):%- [* V -ectorMap]([@(0.128.128) pick`_]_[_^Index^ Index][@(0.0.255) <][*@4 K], -[*@4 HashFn][@(0.0.255) >`&]_[*@3 ndx], [@(0.128.128) pick`_]_[_^Vector^ Vector][@(0.0.255) < -][*@4 T][@(0.0.255) >`&]_[*@3 val])&] -[s2; Pick`-constructs [* VectorMap] from [* Index] of keys and [* Vector] -of values. Both source containers should have the same number -of elements.&] -[s7; [%-*@3 ndx][%- -|]Source Index.&] -[s7; [%-*@3 val][%- -|]Source Vector.&] -[s3; &] -[s4;%- &] -[s5;:VectorMap`:`:VectorMap`(pick`_ Vector``&`,pick`_ Vector``&`):%- [* VectorM -ap]([@(0.128.128) pick`_]_[_^Vector^ Vector][@(0.0.255) <][*@4 K][@(0.0.255) >`&]_[*@3 ndx], -[@(0.128.128) pick`_]_[_^Vector^ Vector][@(0.0.255) <][*@4 T][@(0.0.255) >`&]_[*@3 val])&] -[s2; Pick`-constructs [* VectorMap] from [* Vector] of keys and [* Vector] -of values. Both source containers should have the same number -of elements.&] -[s7; [%-*@3 ndx][%- -|]Source Vector of keys.&] -[s7; [%-*@3 val][%- -|]Source Vector of values.&] -[s3; &] -[s0; &] -[ {{10000F(128)G(128)t/25b/25@1 [s0;%- [* Public Member List]]}}&] -[s3;%- &] -[s5;:VectorMap`:`:Pop`(`):%- [*@4 T]_[* Pop]()&] -[s2; Drops last element of VectorMap and returns its value.&] -[s7; [*/ Return value]-|Value of dropped element.&] -[s3; &] +topic "VectorMap"; +[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,0#27521748481378242620020725143825:desc] +[0 $$3,0#96390100711032703541132217272105:end] +[H6;0 $$4,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] +[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] +[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] +[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] +[b42;2 $$9,9#13035079074754324216151401829390:normal] +[{_}%EN-US +[ {{10000@(113.42.0) [s0; [*@7;4 VectorMap]]}}&] +[s3; &] +[s1;:noref:%- [@(0.0.255)3 template][3 _<][@(0.0.255)3 class][3 _][*@4;3 K][3 , +][@(0.0.255)3 class][3 _][*@4;3 T][3 , ][@(0.0.255)3 class][3 _][*@4;3 HashFn][3 _`=_StdHash][@(0.0.255)3 < +][*@4;3 K][@(0.0.255)3 >][3 _>]&] +[s1;:VectorMap`:`:class:%- [@(0.0.255) class]_[* VectorMap]_:_[@(0.0.255) public]_[*_^MoveableAndDeepCopyOption^@3 M +oveableAndDeepCopyOption][@(0.0.255) <][* VectorMap][@(0.0.255) <][*@4 K], +[*@4 T], [*@4 HashFn][@(0.0.255) >]_>, [@(0.0.255) public]_[*_^AMap^@3 AMap][@(0.0.255) <]_[*@4 K +], [*@4 T], [_^Vector^ Vector][@(0.0.255) <][*@4 T][@(0.0.255) >], [*@4 HashFn]_>_&] +[s0;%- &] +[s8; [*@4 K]-|Type of keys. K must have deep copy constructor, be [/^topic`:`/`/Core`/srcdoc`/Moveable`$en`-us^ m +oveable] and must have operator`=`= defined.&] +[s8; [*@4 T]-|Type of elements stored in Vector. T is required to be +[/^topic`:`/`/Core`/srcdoc`/Moveable`$en`-us^ moveable][/ ]and must +have either [/^topic`:`/`/Core`/srcdoc`/pick`_`$en`-us^ deep copy +constructor], [/^topic`:`/`/Core`/srcdoc`/pick`_`$en`-us^ pick +constructor] or [/ default constructor].&] +[s8; [*@4 HashFn]-|Hashing class. Must have defined unsigned operator()(const +K`& x) method returning hash value for elements.&] +[s0; &] +[s9; Vector flavor of map. Inherits most of its functionality from +[^topic`:`/`/Core`/src`/AMap`$en`-us^ AMap] and adds only members +specific for its flavor.&] +[s9; Like any other NTL container, VectorMap is [*/^topic`:`/`/Core`/srcdoc`/Moveable`$en`-us^ m +oveable][*/ ]type with [*/^topic`:`/`/Core`/srcdoc`/pick`_`$en`-us^ pick +and optional deep copy] transfer semantics. Calling methods of +picked VectorMap is logic error with exception of:&] +[s9;C+75 &] +[s0; [*C+75 void operator`=(pick`_ VectorMap`& ][*C@3+75 v][*C+75 ) ][*/C+75 (defined +by composition)]&] +[s0; [*C+75 void operator<<`=(const AMap`& ][*C@3+75 v][*C+75 ) ][*/C+75 (defined +in AMap)]&] +[s0; [*C+75 void Clear()]&] +[s0; [*C+75 bool IsPicked() const]&] +[s0;C+75 &] +[s9; Optional deep copy operator is inherited from AMap class. Pick +operator is implicitly defined by composition.&] +[s3; &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] +[s3;%- &] +[s5;:VectorMap`:`:VectorMap`(`):%- [* VectorMap]()&] +[s2; Default constructor. Constructs empty [* VectorMap].&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:VectorMap`:`:VectorMap`(std`:`:initializer`_list``>`):%- [* V +ectorMap]([_^http`:`/`/en`.cppreference`.com`/w`/cpp`/utility`/initializer`_list^ s +td`::initializer`_list]<[_^http`:`/`/en`.cppreference`.com`/w`/cpp`/utility`/pair^ s +td`::pair]<[*@4 K], [*@4 T]>>_[*@3 init])&] +[s2; C`+`+ 11 initialization.&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:VectorMap`:`:operator`(`)`(const K`&`,const T`&`):%- [*_^Upp`:`:VectorMap^ V +ectorMap][@(0.0.255) `&]_[* operator()]([@(0.0.255) const]_[*@4 K][@(0.0.255) `&]_[*@3 k], +[@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[*@3 v])&] +[s2; Same as Add([%-*@3 k], [%-*@3 v]), returns `*this. Syntax sugar +for creating map.&] +[s3; &] +[s4;%- &] +[s5;:VectorMap`:`:VectorMap`(const VectorMap`&`,int`):%- [* VectorMap]([@(0.0.255) const]_ +[* VectorMap][@(0.0.255) `&]_[*@3 s], [@(0.0.255) int])&] +[s2; Optional deep copy constructor.&] +[s6; Requires T to have deep copy constructor or optional deep copy +constructor.&] +[s7; [%-*@3 s][%- -|]Source [* VectorMap].&] +[s3; &] +[s4;%- &] +[s5;:VectorMap`:`:VectorMap`(pick`_ Index``&`,pick`_ Vector``&`):%- [* V +ectorMap]([@(0.128.128) pick`_]_[_^Index^ Index][@(0.0.255) <][*@4 K], +[*@4 HashFn][@(0.0.255) >`&]_[*@3 ndx], [@(0.128.128) pick`_]_[_^Vector^ Vector][@(0.0.255) < +][*@4 T][@(0.0.255) >`&]_[*@3 val])&] +[s2; Pick`-constructs [* VectorMap] from [* Index] of keys and [* Vector] +of values. Both source containers should have the same number +of elements.&] +[s7; [%-*@3 ndx][%- -|]Source Index.&] +[s7; [%-*@3 val][%- -|]Source Vector.&] +[s3; &] +[s4;%- &] +[s5;:VectorMap`:`:VectorMap`(pick`_ Vector``&`,pick`_ Vector``&`):%- [* VectorM +ap]([@(0.128.128) pick`_]_[_^Vector^ Vector][@(0.0.255) <][*@4 K][@(0.0.255) >`&]_[*@3 ndx], +[@(0.128.128) pick`_]_[_^Vector^ Vector][@(0.0.255) <][*@4 T][@(0.0.255) >`&]_[*@3 val])&] +[s2; Pick`-constructs [* VectorMap] from [* Vector] of keys and [* Vector] +of values. Both source containers should have the same number +of elements.&] +[s7; [%-*@3 ndx][%- -|]Source Vector of keys.&] +[s7; [%-*@3 val][%- -|]Source Vector of values.&] +[s3; &] +[s0; &] +[ {{10000F(128)G(128)t/25b/25@1 [s0;%- [* Public Member List]]}}&] +[s3;%- &] +[s5;:VectorMap`:`:Pop`(`):%- [*@4 T]_[* Pop]()&] +[s2; Drops last element of VectorMap and returns its value.&] +[s7; [*/ Return value]-|Value of dropped element.&] +[s3; &] [s0; ]] \ No newline at end of file diff --git a/uppsrc/Core/src.tpp/Vector$en-us.tpp b/uppsrc/Core/src.tpp/Vector_en-us.tpp similarity index 97% rename from uppsrc/Core/src.tpp/Vector$en-us.tpp rename to uppsrc/Core/src.tpp/Vector_en-us.tpp index 08f37a329..0bc7e764f 100644 --- a/uppsrc/Core/src.tpp/Vector$en-us.tpp +++ b/uppsrc/Core/src.tpp/Vector_en-us.tpp @@ -1,589 +1,589 @@ -topic "Vector"; -[2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,0#27521748481378242620020725143825:desc] -[0 $$3,0#96390100711032703541132217272105:end] -[H6;0 $$4,0#05600065144404261032431302351956:begin] -[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] -[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] -[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] -[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] -[b42;2 $$9,9#13035079074754324216151401829390:normal] -[{_}%EN-US -[ {{10000@(113.42.0) [s0; [*@7;4 Vector]]}}&] -[s3; &] -[s1;:noref:%- [@(0.0.255)3 template][3 _<][@(0.0.255)3 class][3 _][*@4;3 T][@(0.0.255)3 >]&] -[s1;:Vector`:`:class:%- [@(0.0.255) class]_[* Vector]_:_[@(0.0.255) public]_[*@3 MoveableAndDe -epCopyOption][@(0.0.255) <]_[* Vector][@(0.0.255) <][*@4 T][@(0.0.255) >]_>&] -[s8; [*C@4 T]-|Type of elements stored in Vector. T is required to be -[*/^topic`:`/`/Core`/srcdoc`/Moveable`$en`-us^ moveable][*/ ]and -must have either [*/^topic`:`/`/Core`/srcdoc`/pick`_`$en`-us^ deep -copy constructor], [*/^topic`:`/`/Core`/srcdoc`/pick`_`$en`-us^ pick -constructor] or [*/ default constructor].&] -[s9; The most effective flavor of basic random access container. -Its features are derived from fact that it is implemented as -simple C`-like vector of elements.&] -[s9; Disadvantage of Vector is common requirement for elements to -be stored in it `- they must be [*/^topic`:`/`/Core`/srcdoc`/Moveable`$en`-us^ move -able]. Another disadvantage is fact that many operations invalidate -references (that means C`+`+ references and pointers) to elements.&] -[s9; Like any other NTL container, Vector is [*/^topic`:`/`/Core`/srcdoc`/Moveable`$en`-us^ m -oveable][*/ ]type with [*/^topic`:`/`/Core`/srcdoc`/pick`_`$en`-us^ pick -and optional deep copy] transfer semantics. Calling methods of -picked Vector is logic error with exception of&] -[s0;%- &] -[s0;%- void_operator`=([@(0.128.128) pick`_]_[_^Vector^ Vector]`&_[@3 v])&] -[s0; void operator<<`=(const Vector`& [@3 v]) [/ (defined using DeepCopyOptionTemplate)]&] -[s0;%- void_Clear()&] -[s0;%- bool_IsPicked()_const&] -[s0; &] -[s0; Optional deep copy is implemented through DeepCopyOptionTemplate -macro.&] -[s0; &] -[s0; Vector provides access to internal C`-like vector of elements -(either using Begin or even using direct cast operator) a can -be used as buffer for C`-like functions, although [^topic`:`/`/Core`/src`/Buffer`$en`-us^ B -uffer] class might be more suitable in these cases.&] -[s3; &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] -[s3;%- &] -[s5;:Vector`:`:Vector`(`):%- [* Vector]()&] -[s2; Default constructor. Constructs empty Vector.&] -[s3; &] -[s4;%- &] -[s5;:Vector`:`:Vector`(pick`_ Vector`&`):%- [* Vector]([@(0.128.128) pick`_]_[* Vector][@(0.0.255) `& -]_[*@3 v])&] -[s2; Pick constructor. Transfers source Vector in low constant time, -but destroys it by picking.&] -[s7; v-|Source Vector.&] -[s3; &] -[s4;%- &] -[s5;:Vector`:`:Vector`(const Vector`&`,int`):%- [* Vector]([@(0.0.255) const]_[* Vector][@(0.0.255) `& -]_[*@3 v], [@(0.0.255) int])&] -[s2; Optional deep copy constructor.&] -[s6; Requires T to have deep copy constructor or optional deep copy -constructor.&] -[s2; [*C@3 v]-|Source Vector. [%-*@3 v].&] -[s3; &] -[s4;%- &] -[s5;:Vector`:`:`~Vector`(`):%- [@(0.0.255) `~][* Vector]()&] -[s2; Destructor. Calls destructors of all elements in Vector.&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:Vector`:`:Vector`(std`:`:initializer`_list``):%- [* Vector]([_^http`:`/`/en`.cppreference`.com`/w`/cpp`/utility`/initializer`_list^ s -td`::initializer`_list]<[*@4 T]>_[*@3 init])&] -[s2; C`+`+ 11 initialization.&] -[s3; &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] -[s3;%- &] -[s5;:Vector`:`:Add`(`):%- [*@4 T][@(0.0.255) `&]_[* Add]()&] -[s2; Adds new default constructed element to Vector.&] -[s6; Requires T to have default constructor.&] -[s6; Invalidates iterators and references to Vector.&] -[s7; [*/ Return value]-|Reference to newly added default constructed -element.&] -[s3;%- &] -[s4;%- &] -[s5;:Upp`:`:Vector`:`:Create`(Args`.`.`.args`):%- [@(0.0.255) template]_<[@(0.0.255) clas -s...]_[*@4 Args]>_[*@4 T][@(0.0.255) `&]_[* Create]([*@4 Args][@(0.0.255) ...]_args)&] -[s2; Adds new element to Vector using args as constructor parameters.&] -[s3;%- &] -[s4;%- &] -[s5;:Vector`:`:Add`(const T`&`):%- [*@4 T][@(0.0.255) `&]_[* Add]([@(0.0.255) const]_[*@4 T][@(0.0.255) `& -]_[*@3 x])&] -[s2; Adds new element with specified value to Vector.&] -[s6; Requires T to have deep copy constructor.&] -[s6; Invalidates iterators and references to Vector.&] -[s7; [*C@3 x]-|The value that is copied to newly created element.&] -[s7; [*/ Return value]-|Reference to new element in Vector.&] -[s3;%- &] -[s4;%- &] -[s5;:Upp`:`:Vector`:`:Add`(T`&`&`):%- [*@4 T][@(0.0.255) `&]_[* Add]([*@4 T][@(0.0.255) `&`&]_[*@3 x -])&] -[s2; Adds new element to Vector and picks value of parameter to it. -&] -[s3; &] -[s4;%- &] -[s5;:Vector`:`:AddN`(int`):%- [@(0.0.255) void]_[* AddN]([@(0.0.255) int]_[*@3 n])&] -[s2; Adds specified number of default constructed elements to Vector.&] -[s6; Requires T to have default constructor.&] -[s6; Invalidates iterators and references to Vector.&] -[s7; [*C@3 n]-|Number of elements to add&] -[s3;%- &] -[s4;%- &] -[s5;:Vector`:`:operator`[`]`(int`)const:%- [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[* opera -tor`[`]]([@(0.0.255) int]_[*@3 i])_[@(0.0.255) const]&] -[s2; Returns a reference to the element at specified position.&] -[s7; [*C@3 i]-|Position of element.&] -[s7; [*/ Return value]-|Constant reference to the element.&] -[s3;%- &] -[s4;%- &] -[s5;:Vector`:`:operator`[`]`(int`):%- [*@4 T][@(0.0.255) `&]_[* operator`[`]]([@(0.0.255) int -]_[*@3 i])&] -[s2; Returns a reference to the element at specified position.&] -[s7; [*C@3 i]-|Position of element.&] -[s7; [*/ Return value]-|Reference to the element.&] -[s3;%- &] -[s4;%- &] -[s5;:Vector`:`:GetCount`(`)const:%- [@(0.0.255) int]_[* GetCount]()_[@(0.0.255) const]&] -[s2; Return the number of elements in Vector.&] -[s7; [*/ Return value]-|Actual number of elements.&] -[s3;%- &] -[s4;%- &] -[s5;:Vector`:`:IsEmpty`(`)const:%- [@(0.0.255) bool]_[* IsEmpty]()_[@(0.0.255) const]&] -[s2; Tests whether Vector is empty. Same as GetCount() `=`= 0.&] -[s7; [*/ Return value]-|true if Vector is empty, false otherwise.&] -[s3;%- &] -[s4;%- &] -[s5;:Vector`:`:Trim`(int`):%- [@(0.0.255) void]_[* Trim]([@(0.0.255) int]_[*@3 n])&] -[s2; Reduces number of elements in Vector to specified number. Required -number must be less than or equal to actual number of elements -in Vector.&] -[s6; Invalidates iterators to Vector.&] -[s7; [*C@3 n]-|Required number of elements.&] -[s3;%- &] -[s4;%- &] -[s5;:Vector`:`:SetCount`(int`):%- [@(0.0.255) void]_[* SetCount]([@(0.0.255) int]_[*@3 n])&] -[s2; Changes count of elements in Vector to specified value. If required -number of elements is greater than actual number, newly added -elements are default constructed. If Vector has to increase capacity, -the new capacity will exactly match required number of elements -(unlike [* SetCountR]).&] -[s6; Requires T to have default constructor.&] -[s6; Invalidates iterators and references to Vector.&] -[s7; [*C@3 n]-|Required number of elements.&] -[s3;%- &] -[s4;%- &] -[s5;:Vector`:`:SetCount`(int`,const T`&`):%- [@(0.0.255) void]_[* SetCount]([@(0.0.255) int -]_[*@3 n], [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[*@3 init])&] -[s2; Changes count of elements in Vector to specified value. If required -number of elements is greater than actual number, newly added -elements are initialized to specified value using copy constructor. -If Vector has to increase capacity, the new capacity will exactly -match required number of elements (unlike [* SetCountR]).&] -[s6; Requires T to have deep copy constructor.&] -[s6; Invalidates iterators and references to Vector.&] -[s7; [*C@3 n]-|Required number of elements.&] -[s7; [*C@3 init]-|Initialization value of newly added elements.&] -[s3;%- &] -[s4;%- &] -[s5;:Vector`:`:SetCountR`(int`):%- [@(0.0.255) void]_[* SetCountR]([@(0.0.255) int]_[*@3 n])&] -[s2; Changes count of elements in Vector to specified value. If required -number of elements is greater than actual number, newly added -elements are default constructed. If Vector has to increase capacity, -the new capacity will be greater than required number of elements -(unlike [* SetCount]) to allow adding other elements without further -increasing capacity.&] -[s6; Requires T to have default constructor.&] -[s6; Invalidates iterators and references to Vector.&] -[s7; [*C@3 n]-|Required number of elements.&] -[s3;%- &] -[s4;%- &] -[s5;:Vector`:`:SetCountR`(int`,const T`&`):%- [@(0.0.255) void]_[* SetCountR]([@(0.0.255) i -nt]_[*@3 n], [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[*@3 init])&] -[s2; Changes count of elements in Vector to specified value. If required -number of elements is greater than actual number, newly added -elements are initialized to specified value using copy constructor. -If Vector has to increase capacity, the new capacity will be -greater than required number of elements (unlike [* SetCount]) -to allow adding other elements without further increasing capacity.&] -[s6; Requires T to have deep copy constructor.&] -[s6; Invalidates iterators and references to Vector.&] -[s7; [*C@3 n]-|Required number of elements.&] -[s7; [*C@3 init]-|Initialization value of newly added elements.&] -[s3;%- &] -[s4;%- &] -[s5;:Vector`:`:Clear`(`):%- [@(0.0.255) void]_[* Clear]()&] -[s2; Removes all elements from Vector. Capacity is also cleared to -zero.&] -[s6; Invalidates iterators and references to Vector.&] -[s3;%- &] -[s4;%- &] -[s5;:Vector`:`:At`(int`):%- [*@4 T][@(0.0.255) `&]_[* At]([@(0.0.255) int]_[*@3 i])&] -[s2; If specified position is lower than number of elements in Vector -([* i < GetCount()]), returns reference to element at specified -position. Otherwise increases number of elements in Vector to -[* i `+ 1]. Newly added elements are default constructed. If Vector -has to increase capacity, the new capacity will be greater than -required number of elements to allow adding other elements without -further increasing capacity.&] -[s6; Requires T to have default constructor.&] -[s6; Invalidates iterators and references to Vector.&] -[s7; [*C@3 i]-|Position of required element.&] -[s7; [*/ Return value]-|Reference to required element.&] -[s3;%- &] -[s4;%- &] -[s5;:Vector`:`:At`(int`,const T`&`):%- [*@4 T][@(0.0.255) `&]_[* At]([@(0.0.255) int]_[*@3 i], -[@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[*@3 x])&] -[s2; If specified position is lower than number of elements in Vector -([* i < GetCount()]), returns reference to element at specified -position. Otherwise increases number of elements in Vector to -[* i `+ 1]. Newly added elements are copy constructed from [* x]. -If Vector has to increase capacity, the new capacity will be -greater than required number of elements to allow adding other -elements without further increasing capacity.&] -[s6; Requires T to have deep copy constructor.&] -[s6; Invalidates iterators and references to Vector.&] -[s7; [*C@3 i]-|Position of required element.&] -[s7; [*C@3 x]-|Initialization value of newly added elements.&] -[s7; [*/ Return value]-|Reference to required element.&] -[s3;%- &] -[s4;%- &] -[s5;:Vector`:`:Shrink`(`):%- [@(0.0.255) void]_[* Shrink]()&] -[s2; Minimizes memory consumption of Vector by decreasing capacity -to number of elements.&] -[s3;%- &] -[s4;%- &] -[s5;:Vector`:`:Reserve`(int`):%- [@(0.0.255) void]_[* Reserve]([@(0.0.255) int]_[*@3 n])&] -[s2; Reserves capacity. If required capacity is greater than current -capacity, capacity is increased to the required value.&] -[s7; [*C@3 xtra]-|Required capacity.&] -[s3;%- &] -[s4;%- &] -[s5;:Vector`:`:GetAlloc`(`)const:%- [@(0.0.255) int]_[* GetAlloc]()_[@(0.0.255) const]&] -[s2; Returns current capacity of Vector.&] -[s7; [*/ Return value]-|Capacity of Vector.&] -[s3;%- &] -[s4;%- &] -[s5;:Vector`:`:Set`(int`,const T`&`,int`):%- [@(0.0.255) void]_[* Set]([@(0.0.255) int]_[*@3 i -], [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[*@3 x], [@(0.0.255) int]_[*@3 count])&] -[s2; Sets requested number of elements starting at the position [* i] -to the specified value. If required number of elements exceeds -existing elements of Vector then elements are added to Vector.&] -[s6; Requires T to have deep copy constructor.&] -[s6; Invalidates iterators and references to Vector.&] -[s7; [*C@3 i]-|Starting position.&] -[s7; [*C@3 x]-|Value.&] -[s7; [*C@3 count]-|Number of elements.&] -[s3;%- &] -[s4;%- &] -[s5;:Vector`:`:Set`(int`,const T`&`):%- [*@4 T][@(0.0.255) `&]_[* Set]([@(0.0.255) int]_[*@3 i], - [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[*@3 x])&] -[s2; Sets element at [%-*@3 i] to [%-*@3 x].and returns a reference to -the element.&] -[s3; &] -[s4;%- &] -[s5;:Vector`:`:Remove`(int`,int`):%- [@(0.0.255) void]_[* Remove]([@(0.0.255) int]_[*@3 i], -[@(0.0.255) int]_[*@3 count]_`=_[@3 1])&] -[s2; Removes requested number of elements.&] -[s6; Invalidates iterators and references to Vector.&] -[s7; [*C@3 i]-|Position.&] -[s7; [*C@3 count]-|Number of elements to remove.&] -[s3;%- &] -[s4;%- &] -[s5;:Vector`:`:Remove`(const int`*`,int`):%- [@(0.0.255) void]_[* Remove]([@(0.0.255) const -]_[@(0.0.255) int]_`*[*@3 sorted`_list], [@(0.0.255) int]_[*@3 n])&] -[s2; Removes number of elements from Vector. Time of operation almost -does not depend on number of elements.&] -[s6; Invalidates iterators and references to Vector.&] -[s7; [*C@3 sorted`_list]-|Pointer to array of positions to remove. It -must be sorted from lowest to greatest value.&] -[s7; [*C@3 n]-|Number of elements to remove.&] -[s3;%- &] -[s4;%- &] -[s5;:Vector`:`:Remove`(const Vector``&`):%- [@(0.0.255) void]_[* Remove]([@(0.0.255) c -onst]_[_^Vector^ Vector][@(0.0.255) `&]_[*@3 sorted`_list])&] -[s2; Removes number of elements form Vector. Same as [* Remove(sorted`_list, -sorted`_list.GetCount())].&] -[s6; Invalidates iterators and references to Vector.&] -[s7; [*C@3 sorted`_list]-|Sorted Vector of positions to remove.&] -[s3;%- &] -[s4;%- &] -[s5;:Vector`:`:InsertN`(int`,int`):%- [@(0.0.255) void]_[* InsertN]([@(0.0.255) int]_[*@3 i], - [@(0.0.255) int]_[*@3 count]_`=_[@3 1])&] -[s2; Inserts a specified number of default constructed elements at -a specified position.&] -[s6; Requires T to have default constructor.&] -[s6; Invalidates iterators and references to Vector.&] -[s7; [*C@3 i]-|Position.&] -[s7; [*C@3 count]-|Number of elements to insert.&] -[s3;%- &] -[s4;%- &] -[s5;:Vector`:`:Insert`(int`):%- [*@4 T][@(0.0.255) `&]_[* Insert]([@(0.0.255) int]_[*@3 i])&] -[s2; Inserts one default constructed element at the specified position.&] -[s7; [*1 Requires T to have default constructor.]&] -[s6; Invalidates iterators and references to Vector.&] -[s7; [*C@3 i]-|Position.&] -[s3;%- &] -[s4;%- &] -[s5;:Vector`:`:Insert`(int`,const T`&`,int`):%- [@(0.0.255) void]_[* Insert]([@(0.0.255) in -t]_[*@3 i], [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[*@3 x], [@(0.0.255) int]_[*@3 count])&] -[s2; Inserts a specified number of elements, setting them to a specified -value.&] -[s6;~~~.992; Requires T to have deep copy constructor.&] -[s6; Invalidates iterators and references to Vector.&] -[s7; [*C@3 i]-|Position.&] -[s7; [*C@3 x]-|Value of inserted elements.&] -[s7; [*C@3 count]-|Number of elements to insert.&] -[s3;%- &] -[s4;%- &] -[s5;:Vector`:`:Insert`(int`,const T`&`):%- [*@4 T][@(0.0.255) `&]_[* Insert]([@(0.0.255) int]_ -[*@3 i], [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[*@3 x])&] -[s2; Inserts element at position [%-*@3 i] setting its value to [%-*@3 x] -and returns a reference to it.&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:Vector`:`:Insert`(int`,T`&`&`):%- [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 T -]>_[*@4 T][@(0.0.255) `&]_[* Insert]([@(0.0.255) int]_[*@3 q], [*@4 T][@(0.0.255) `&`&]_[*@3 x])&] -[s2; Inserts an element at [%-*@3 i] picking the content of [%-*@3 x] -and returns a reference to this new element.&] -[s3; &] -[s4;%- &] -[s5;:Vector`:`:Insert`(int`,const Vector`&`):%- [@(0.0.255) void]_[* Insert]([@(0.0.255) in -t]_[*@3 i], [@(0.0.255) const]_[_^Vector^ Vector][@(0.0.255) `&]_[*@3 x])&] -[s2; Inserts all elements from another Vector.&] -[s6;~~~.992; Requires T to have deep copy constructor.&] -[s6; Invalidates iterators and references to Vector.&] -[s7; [*C@3 i]-|Position.&] -[s7; [*C@3 x]-|Source Vector.&] -[s3;%- &] -[s4;%- &] -[s5;:Vector`:`:Insert`(int`,const Vector`&`,int`,int`):%- [@(0.0.255) void]_[* Insert]([@(0.0.255) i -nt]_[*@3 i], [@(0.0.255) const]_[_^Vector^ Vector][@(0.0.255) `&]_[*@3 x], -[@(0.0.255) int]_[*@3 offset], [@(0.0.255) int]_[*@3 count])&] -[s2; Inserts a range of elements from another Vector.&] -[s6;~~~.992; Requires T to have deep copy constructor.&] -[s6; Invalidates iterators and references to Vector.&] -[s7; [*C@3 i]-|Insertion position.&] -[s7; [*C@3 x]-|Source Vector.&] -[s7; [*C@3 offset]-|Position of first element in source Vector to be -inserted.&] -[s7; [*C@3 count]-|Number of elements to insert.&] -[s3;%- &] -[s4;%- &] -[s5;:Upp`:`:Vector`:`:Insert`(int`,Upp`:`:Vector`&`&`):%- [@(0.0.255) void]_[* Insert]([@(0.0.255) i -nt]_[*@3 i], [_^Upp`:`:Vector^ Vector][@(0.0.255) `&`&]_[*@3 x])&] -[s2; Inserts source Vector at specified position using pick transfer -semantics. It is faster than deep copy insert, does not use deep -copy constructor for T, but destroys source Vector.&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:Vector`:`:Insert`(int`,std`:`:initializer`_list``):%- [@(0.0.255) void]_ -[* Insert]([@(0.0.255) int]_[*@3 i], [_^std`:`:initializer`_list^ std`::initializer`_list]< -[*@4 T]>_[*@3 init])&] -[s2; Inserts C`+`+11 style initialization list.&] -[s3;%- &] -[s4;%- &] -[s5;:Upp`:`:Vector`:`:Append`(std`:`:initializer`_list``):%- [@(0.0.255) void]_[* App -end](std`::initializer`_list<[*@4 T]>_[*@3 init])&] -[s2; Appends C`+`+11 style initialization list.&] -[s3;%- &] -[s4;%- &] -[s5;:Vector`:`:InsertSplit`(int`,Vector``&`,int`):%- [@(0.0.255) void]_[* InsertSplit -]([@(0.0.255) int]_[*@3 i], [_^Vector^ Vector]<[*@4 T]>`&_[*@3 v], [@(0.0.255) int]_[*@3 from]) -&] -[s2; Insert the part of source vector [%-*@3 v] starting at element -[%-*@3 from] till the end at position [%-*@3 i] and trims [%-*@3 v] -at [%-*@3 from], effectively splitting [%-*@3 v] into two parts.&] -[s3; &] -[s4;%- &] -[s5;:Vector`:`:Append`(const Vector`&`):%- [@(0.0.255) void]_[* Append]([@(0.0.255) const]_ -[_^Vector^ Vector][@(0.0.255) `&]_[*@3 x])&] -[s2; Appends all elements of source Vector.&] -[s6;~~~.992; Requires T to have deep copy constructor.&] -[s6; Invalidates iterators and references to Vector.&] -[s7; [*C@3 x]-|Source Vector.&] -[s3;%- &] -[s4;%- &] -[s5;:Vector`:`:Append`(const Vector`&`,int`,int`):%- [@(0.0.255) void]_[* Append]([@(0.0.255) c -onst]_[_^Vector^ Vector][@(0.0.255) `&]_[*@3 x], [@(0.0.255) int]_[*@3 o], -[@(0.0.255) int]_[*@3 c])&] -[s2; Appends a range of elements from source Vector.&] -[s6;~~~.992; Requires T to have deep copy constructor.&] -[s6; Invalidates iterators and references to Vector.&] -[s7; [*C@3 x]-|Source Vector.&] -[s7; [*C@3 o]-|Position of first element in source Vector to be inserted.&] -[s7; [*C@3 c]-|Number of elements to insert.&] -[s3;%- &] -[s4;%- &] -[s5;:Upp`:`:Vector`:`:Append`(Upp`:`:Vector`&`&`):%- [@(0.0.255) void]_[* Append]([_^Upp`:`:Vector^ V -ector][@(0.0.255) `&`&]_[*@3 x])&] -[s2; Appends source Vector using pick transfer semantics. It is faster -than deep copy insert, does not use deep copy constructor for -T, but destroys source Vector by picking.&] -[s3;%- &] -[s4;%- &] -[s5;:Vector`:`:Swap`(int`,int`):%- [@(0.0.255) void]_[* Swap]([@(0.0.255) int]_[*@3 i1], -[@(0.0.255) int]_[*@3 i2])&] -[s2; Swaps elements at [%-*@3 i1] and [%-*@3 i2].&] -[s3; &] -[s4;%- &] -[s5;:Vector`:`:Drop`(int`):%- [@(0.0.255) void]_[* Drop]([@(0.0.255) int]_[*@3 n]_`=_[@3 1])&] -[s2; Drops specified number of last elements in the Vector (same -as Trim(GetCount() `- n)).&] -[s7; [*C@3 n]-|Number of elements.&] -[s3;%- &] -[s4;%- &] -[s5;:Vector`:`:Top`(`):%- [*@4 T][@(0.0.255) `&]_[* Top]()&] -[s2; Returns reference to the last element in the Vector.&] -[s7; [*/ Return value]-|Reference of last element in the Vector.&] -[s3;%- &] -[s4;%- &] -[s5;:Vector`:`:Top`(`)const:%- [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[* Top]()_[@(0.0.255) c -onst]&] -[s2; Returns constant reference to the last element in the Vector.&] -[s7; [*/ Return value]-|Reference of last element in the Vector.&] -[s3;%- &] -[s4;%- &] -[s5;:Vector`:`:Pop`(`):%- [*@4 T]_[* Pop]()&] -[s2; Drops last element of Vector and returns its value.&] -[s6; Requires T to have deep copy constructor.&] -[s7; [*/ Return value]-|Value of dropped element.&] -[s3;%- &] -[s4;%- &] -[s5;:Vector`:`:operator T`*`(`):%- [@(0.0.255) operator]_[*@4 T][@(0.0.255) `*]()&] -[s2; Returns non`-constant pointer to elements.&] -[s7; [*/ Return value]-|Pointer to elements.&] -[s3;%- &] -[s4;%- &] -[s5;:Vector`:`:operator const T`*`(`)const:%- [@(0.0.255) operator]_[@(0.0.255) const]_[*@4 T -][@(0.0.255) `*]()_[@(0.0.255) const]&] -[s2; Returns constant pointer to elements.&] -[s7; [*/ Return value]-|Pointer to elements.&] -[s3;%- &] -[s4;%- &] -[s5;:Vector`:`:operator`<`<`(const T`&`):%- [_^Vector^ Vector][@(0.0.255) `&]_[* operator<< -]([@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[*@3 x])&] -[s2; Operator replacement of [* void Add(const T`&x)]. By returning -reference to to Vector allows adding more elements in single -expression, thus e.g. allowing to construct temporary Vector -as part of expression like Foo((Vector() << 1 << 2 << 4)).&] -[s6; Requires T to have deep copy constructor.&] -[s6; Invalidates iterators and references to Vector.&] -[s7; [*C@3 x]-|The value that is copied to newly created element.&] -[s7; [*/ Return value]-|Reference to Vector (`*this).&] -[s3;%- &] -[s4;%- &] -[s5;:Vector`:`:ToString`(`)const:%- [_^String^ String]_[* ToString]()_[@(0.0.255) const]&] -[s2; Converts container into String, mostly for debugging purposes.&] -[s3;%- &] -[s4;%- &] -[s5;:Vector`:`:operator`=`=`(const Vector``&`)const:%- [@(0.0.255) bool]_[* operator`= -`=]([@(0.0.255) const]_[_^Vector^ Vector]<[*@4 T]>`&_[*@3 b])_[@(0.0.255) const]&] -[s5;:Vector`:`:operator`!`=`(const Vector``&`)const:%- [@(0.0.255) bool]_[* operator! -`=]([@(0.0.255) const]_[_^Vector^ Vector]<[*@4 T]>`&_[*@3 b])_[@(0.0.255) const]&] -[s2; Compares two containers for (in)equality, using T`::operator`=`=.&] -[s3; &] -[s4;%- &] -[s5;:Vector`:`:Compare`(const Vector``&`)const:%- [@(0.0.255) int]_[* Compare]([@(0.0.255) c -onst]_[_^Vector^ Vector]<[*@4 T]>`&_[*@3 b])_[@(0.0.255) const]&] -[s5;:Vector`:`:operator`<`=`(const Vector``&`)const:%- [@(0.0.255) bool]_[* operator< -`=]([@(0.0.255) const]_[_^Vector^ Vector]<[*@4 T]>`&_[*@3 b])_[@(0.0.255) const]&] -[s5;:Vector`:`:operator`>`=`(const Vector``&`)const:%- [@(0.0.255) bool]_[* operator> -`=]([@(0.0.255) const]_[_^Vector^ Vector]<[*@4 T]>`&_[*@3 b])_[@(0.0.255) const]&] -[s5;:Vector`:`:operator`<`(const Vector``&`)const:%- [@(0.0.255) bool]_[* operator<]( -[@(0.0.255) const]_[_^Vector^ Vector]<[*@4 T]>`&_[*@3 b])_[@(0.0.255) const]&] -[s5;:Vector`:`:operator`>`(const Vector``&`)const:%- [@(0.0.255) bool]_[* operator>]( -[@(0.0.255) const]_[_^Vector^ Vector]<[*@4 T]>`&_[*@3 b])_[@(0.0.255) const]&] -[s2; Lexicographically compares two containers, using SgnCompare -for elements.&] -[s3; &] -[s4;%- &] -[s5;:Vector`:`:operator`|`(pick`_ T`&`):%- [_^Vector^ Vector][@(0.0.255) `&]_[* operator`|]( -[@(0.128.128) pick`_]_[*@4 T][@(0.0.255) `&]_[*@3 x])&] -[s2; Operator replacement of [* void AddPick(pick`_ T`&x)]. By returning -reference to to Vector allows adding more elements in single -expression, thus e.g. allowing to construct temporary Vector -as part of expression.&] -[s6; Requires T to have pick constructor.&] -[s6; Invalidates iterators and references to Vector.&] -[s7; [*C@3 x]-|Source instance of T that is to be picked.&] -[s7; [*/ Return value]-|Reference to Vector (`*this).&] -[s3;%- &] -[s4;%- &] -[s5;:Vector`:`:Serialize`(Stream`&`):%- [@(0.0.255) void]_[* Serialize]([_^Stream^ Stream][@(0.0.255) `& -]_[*@3 s])&] -[s2; Serializes content of Vector to/from Stream. Works only if NTL -is used as part of UPP.&] -[s6; Requires T to have serialization operator defined.&] -[s7; [*C@3 s]-|Target/source stream.&] -[s3;%- &] -[s4;%- &] -[s5;:Vector`:`:operator`=`(pick`_ Vector`&`):%- [@(0.0.255) void]_[* operator`=]([@(0.128.128) p -ick`_]_[_^Vector^ Vector][@(0.0.255) `&]_[*@3 v])&] -[s2; Pick operator. Transfers source Vector in low constant time, -but destroys it by picking.&] -[s7; [*C@3 v]-|Source Vector.&] -[s3;%- &] -[s4;%- &] -[s5;:Vector`:`:IsPicked`(`)const:%- [@(0.0.255) bool]_[* IsPicked]()_[@(0.0.255) const]&] -[s2; Returns [* true] if Vector is in picked state.&] -[s7; [*/ Return value]-|[* true] if Vector is in picked state, [* false] -otherwise.&] -[s3; &] -[s4; &] -[s5;%- friend_T`&_operator<<`=[@(64) (T`&_][@3 dest][@(64) , ][@(0.0.255) const][@(64) _T`&_][@3 s -rc][@(64) )]&] -[s2; Optional deep copy operator. Defined using DeepCopyOptionTemplate.&] -[s6; Requires T to have deep copy operator or optional deep copy -operator.&] -[s7; [*C@3 v]-|Source Vector.&] -[s3;%- &] -[s4;%- &] -[s5;:Vector`:`:ValueType`:`:typedef:%- [@(0.0.255) typedef]_T_[* ValueType]&] -[s2; Typedef of T for use in templated algorithms.&] -[s3;%- &] -[s4;%- &] -[s5;:Vector`:`:Iterator`:`:typedef:%- [@(0.0.255) typedef]_T_`*[* Iterator]&] -[s2; Iterator type. Iterator is guaranteed to be of T`* type.&] -[s3;%- &] -[s4;%- &] -[s5;:Vector`:`:ConstIterator`:`:typedef:%- [@(0.0.255) typedef]_[@(0.0.255) const]_T_`*[* C -onstIterator]&] -[s2; Constant iterator type. Iterator is guaranteed to be of const -T`* type.&] -[s3;%- &] -[s4;%- &] -[s5;:Vector`:`:Begin`(`)const:%- [_^Vector`:`:ConstIterator^ ConstIterator]_[* Begin]()_[@(0.0.255) c -onst]&] -[s2; Returns constant iterator to the first element in Vector.&] -[s7; [*/ Return value]-|Iterator.&] -[s3;%- &] -[s4;%- &] -[s5;:Vector`:`:End`(`)const:%- [_^Vector`:`:ConstIterator^ ConstIterator]_[* End]()_[@(0.0.255) c -onst]&] -[s2; Returns constant iterator to the position just beyond the last -element in Vector.&] -[s7; [*/ Return value]-|Iterator.&] -[s3;%- &] -[s4;%- &] -[s5;:Vector`:`:GetIter`(int`)const:%- [_^Vector`:`:ConstIterator^ ConstIterator]_[* GetIt -er]([@(0.0.255) int]_[*@3 i])_[@(0.0.255) const]&] -[s2; Returns constant iterator to the element at specified position. -Same as [* Begin() `+ i]. Benefit of this methods is that in debug -mode [* pos] is range checked.&] -[s7; [*C@3 i]-|Required position.&] -[s7; [*/ Return value]-|Iterator.&] -[s3;%- &] -[s4;%- &] -[s5;:Vector`:`:Begin`(`):%- [_^Vector`:`:Iterator^ Iterator]_[* Begin]()&] -[s2; Returns non`-constant iterator to the first element in Vector.&] -[s7; [*/ Return value]-|Iterator.&] -[s3;%- &] -[s4;%- &] -[s5;:Vector`:`:End`(`):%- [_^Vector`:`:Iterator^ Iterator]_[* End]()&] -[s2; Returns non`-constant iterator to the position just beyond the -last element in Vector.&] -[s7; [*/ Return value]-|Iterator.&] -[s3;%- &] -[s4;%- &] -[s5;:Vector`:`:GetIter`(int`):%- [_^Vector`:`:Iterator^ Iterator]_[* GetIter]([@(0.0.255) i -nt]_[*@3 i])&] -[s2; Returns non`-constant iterator to the element at specified position. -Same as [* Begin() `+ pos]. Benefit of this methods is that in -debug mode [* pos] is range checked.&] -[s7; [*C@3 i]-|Required position.&] -[s7; [*/ Return value]-|Iterator.&] -[s3;%- &] -[s4;%- &] -[s5;:`:`:Vector`:`:Swap`(`:`:Vector`&`,`:`:Vector`&`):%- [@(0.0.255) friend]_[@(0.0.255) v -oid]_[* Swap]([_^`:`:Vector^ Vector][@(0.0.255) `&]_[*@3 a], [_^`:`:Vector^ Vector][@(0.0.255) `& -]_[*@3 b])&] -[s2; Specialization of generic [* Swap] for Vector. Swaps Vector in -simple constant time operation.&] -[s7; [*C@3 a]-|First Vector to swap.&] -[s7; [*C@3 b]-|Second Vector to swap.&] -[s3; &] +topic "Vector"; +[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,0#27521748481378242620020725143825:desc] +[0 $$3,0#96390100711032703541132217272105:end] +[H6;0 $$4,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] +[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] +[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] +[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] +[b42;2 $$9,9#13035079074754324216151401829390:normal] +[{_}%EN-US +[ {{10000@(113.42.0) [s0; [*@7;4 Vector]]}}&] +[s3; &] +[s1;:noref:%- [@(0.0.255)3 template][3 _<][@(0.0.255)3 class][3 _][*@4;3 T][@(0.0.255)3 >]&] +[s1;:Vector`:`:class:%- [@(0.0.255) class]_[* Vector]_:_[@(0.0.255) public]_[*@3 MoveableAndDe +epCopyOption][@(0.0.255) <]_[* Vector][@(0.0.255) <][*@4 T][@(0.0.255) >]_>&] +[s8; [*C@4 T]-|Type of elements stored in Vector. T is required to be +[*/^topic`:`/`/Core`/srcdoc`/Moveable`$en`-us^ moveable][*/ ]and +must have either [*/^topic`:`/`/Core`/srcdoc`/pick`_`$en`-us^ deep +copy constructor], [*/^topic`:`/`/Core`/srcdoc`/pick`_`$en`-us^ pick +constructor] or [*/ default constructor].&] +[s9; The most effective flavor of basic random access container. +Its features are derived from fact that it is implemented as +simple C`-like vector of elements.&] +[s9; Disadvantage of Vector is common requirement for elements to +be stored in it `- they must be [*/^topic`:`/`/Core`/srcdoc`/Moveable`$en`-us^ move +able]. Another disadvantage is fact that many operations invalidate +references (that means C`+`+ references and pointers) to elements.&] +[s9; Like any other NTL container, Vector is [*/^topic`:`/`/Core`/srcdoc`/Moveable`$en`-us^ m +oveable][*/ ]type with [*/^topic`:`/`/Core`/srcdoc`/pick`_`$en`-us^ pick +and optional deep copy] transfer semantics. Calling methods of +picked Vector is logic error with exception of&] +[s0;%- &] +[s0;%- void_operator`=([@(0.128.128) pick`_]_[_^Vector^ Vector]`&_[@3 v])&] +[s0; void operator<<`=(const Vector`& [@3 v]) [/ (defined using DeepCopyOptionTemplate)]&] +[s0;%- void_Clear()&] +[s0;%- bool_IsPicked()_const&] +[s0; &] +[s0; Optional deep copy is implemented through DeepCopyOptionTemplate +macro.&] +[s0; &] +[s0; Vector provides access to internal C`-like vector of elements +(either using Begin or even using direct cast operator) a can +be used as buffer for C`-like functions, although [^topic`:`/`/Core`/src`/Buffer`$en`-us^ B +uffer] class might be more suitable in these cases.&] +[s3; &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] +[s3;%- &] +[s5;:Vector`:`:Vector`(`):%- [* Vector]()&] +[s2; Default constructor. Constructs empty Vector.&] +[s3; &] +[s4;%- &] +[s5;:Vector`:`:Vector`(pick`_ Vector`&`):%- [* Vector]([@(0.128.128) pick`_]_[* Vector][@(0.0.255) `& +]_[*@3 v])&] +[s2; Pick constructor. Transfers source Vector in low constant time, +but destroys it by picking.&] +[s7; v-|Source Vector.&] +[s3; &] +[s4;%- &] +[s5;:Vector`:`:Vector`(const Vector`&`,int`):%- [* Vector]([@(0.0.255) const]_[* Vector][@(0.0.255) `& +]_[*@3 v], [@(0.0.255) int])&] +[s2; Optional deep copy constructor.&] +[s6; Requires T to have deep copy constructor or optional deep copy +constructor.&] +[s2; [*C@3 v]-|Source Vector. [%-*@3 v].&] +[s3; &] +[s4;%- &] +[s5;:Vector`:`:`~Vector`(`):%- [@(0.0.255) `~][* Vector]()&] +[s2; Destructor. Calls destructors of all elements in Vector.&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:Vector`:`:Vector`(std`:`:initializer`_list``):%- [* Vector]([_^http`:`/`/en`.cppreference`.com`/w`/cpp`/utility`/initializer`_list^ s +td`::initializer`_list]<[*@4 T]>_[*@3 init])&] +[s2; C`+`+ 11 initialization.&] +[s3; &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] +[s3;%- &] +[s5;:Vector`:`:Add`(`):%- [*@4 T][@(0.0.255) `&]_[* Add]()&] +[s2; Adds new default constructed element to Vector.&] +[s6; Requires T to have default constructor.&] +[s6; Invalidates iterators and references to Vector.&] +[s7; [*/ Return value]-|Reference to newly added default constructed +element.&] +[s3;%- &] +[s4;%- &] +[s5;:Upp`:`:Vector`:`:Create`(Args`.`.`.args`):%- [@(0.0.255) template]_<[@(0.0.255) clas +s...]_[*@4 Args]>_[*@4 T][@(0.0.255) `&]_[* Create]([*@4 Args][@(0.0.255) ...]_args)&] +[s2; Adds new element to Vector using args as constructor parameters.&] +[s3;%- &] +[s4;%- &] +[s5;:Vector`:`:Add`(const T`&`):%- [*@4 T][@(0.0.255) `&]_[* Add]([@(0.0.255) const]_[*@4 T][@(0.0.255) `& +]_[*@3 x])&] +[s2; Adds new element with specified value to Vector.&] +[s6; Requires T to have deep copy constructor.&] +[s6; Invalidates iterators and references to Vector.&] +[s7; [*C@3 x]-|The value that is copied to newly created element.&] +[s7; [*/ Return value]-|Reference to new element in Vector.&] +[s3;%- &] +[s4;%- &] +[s5;:Upp`:`:Vector`:`:Add`(T`&`&`):%- [*@4 T][@(0.0.255) `&]_[* Add]([*@4 T][@(0.0.255) `&`&]_[*@3 x +])&] +[s2; Adds new element to Vector and picks value of parameter to it. +&] +[s3; &] +[s4;%- &] +[s5;:Vector`:`:AddN`(int`):%- [@(0.0.255) void]_[* AddN]([@(0.0.255) int]_[*@3 n])&] +[s2; Adds specified number of default constructed elements to Vector.&] +[s6; Requires T to have default constructor.&] +[s6; Invalidates iterators and references to Vector.&] +[s7; [*C@3 n]-|Number of elements to add&] +[s3;%- &] +[s4;%- &] +[s5;:Vector`:`:operator`[`]`(int`)const:%- [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[* opera +tor`[`]]([@(0.0.255) int]_[*@3 i])_[@(0.0.255) const]&] +[s2; Returns a reference to the element at specified position.&] +[s7; [*C@3 i]-|Position of element.&] +[s7; [*/ Return value]-|Constant reference to the element.&] +[s3;%- &] +[s4;%- &] +[s5;:Vector`:`:operator`[`]`(int`):%- [*@4 T][@(0.0.255) `&]_[* operator`[`]]([@(0.0.255) int +]_[*@3 i])&] +[s2; Returns a reference to the element at specified position.&] +[s7; [*C@3 i]-|Position of element.&] +[s7; [*/ Return value]-|Reference to the element.&] +[s3;%- &] +[s4;%- &] +[s5;:Vector`:`:GetCount`(`)const:%- [@(0.0.255) int]_[* GetCount]()_[@(0.0.255) const]&] +[s2; Return the number of elements in Vector.&] +[s7; [*/ Return value]-|Actual number of elements.&] +[s3;%- &] +[s4;%- &] +[s5;:Vector`:`:IsEmpty`(`)const:%- [@(0.0.255) bool]_[* IsEmpty]()_[@(0.0.255) const]&] +[s2; Tests whether Vector is empty. Same as GetCount() `=`= 0.&] +[s7; [*/ Return value]-|true if Vector is empty, false otherwise.&] +[s3;%- &] +[s4;%- &] +[s5;:Vector`:`:Trim`(int`):%- [@(0.0.255) void]_[* Trim]([@(0.0.255) int]_[*@3 n])&] +[s2; Reduces number of elements in Vector to specified number. Required +number must be less than or equal to actual number of elements +in Vector.&] +[s6; Invalidates iterators to Vector.&] +[s7; [*C@3 n]-|Required number of elements.&] +[s3;%- &] +[s4;%- &] +[s5;:Vector`:`:SetCount`(int`):%- [@(0.0.255) void]_[* SetCount]([@(0.0.255) int]_[*@3 n])&] +[s2; Changes count of elements in Vector to specified value. If required +number of elements is greater than actual number, newly added +elements are default constructed. If Vector has to increase capacity, +the new capacity will exactly match required number of elements +(unlike [* SetCountR]).&] +[s6; Requires T to have default constructor.&] +[s6; Invalidates iterators and references to Vector.&] +[s7; [*C@3 n]-|Required number of elements.&] +[s3;%- &] +[s4;%- &] +[s5;:Vector`:`:SetCount`(int`,const T`&`):%- [@(0.0.255) void]_[* SetCount]([@(0.0.255) int +]_[*@3 n], [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[*@3 init])&] +[s2; Changes count of elements in Vector to specified value. If required +number of elements is greater than actual number, newly added +elements are initialized to specified value using copy constructor. +If Vector has to increase capacity, the new capacity will exactly +match required number of elements (unlike [* SetCountR]).&] +[s6; Requires T to have deep copy constructor.&] +[s6; Invalidates iterators and references to Vector.&] +[s7; [*C@3 n]-|Required number of elements.&] +[s7; [*C@3 init]-|Initialization value of newly added elements.&] +[s3;%- &] +[s4;%- &] +[s5;:Vector`:`:SetCountR`(int`):%- [@(0.0.255) void]_[* SetCountR]([@(0.0.255) int]_[*@3 n])&] +[s2; Changes count of elements in Vector to specified value. If required +number of elements is greater than actual number, newly added +elements are default constructed. If Vector has to increase capacity, +the new capacity will be greater than required number of elements +(unlike [* SetCount]) to allow adding other elements without further +increasing capacity.&] +[s6; Requires T to have default constructor.&] +[s6; Invalidates iterators and references to Vector.&] +[s7; [*C@3 n]-|Required number of elements.&] +[s3;%- &] +[s4;%- &] +[s5;:Vector`:`:SetCountR`(int`,const T`&`):%- [@(0.0.255) void]_[* SetCountR]([@(0.0.255) i +nt]_[*@3 n], [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[*@3 init])&] +[s2; Changes count of elements in Vector to specified value. If required +number of elements is greater than actual number, newly added +elements are initialized to specified value using copy constructor. +If Vector has to increase capacity, the new capacity will be +greater than required number of elements (unlike [* SetCount]) +to allow adding other elements without further increasing capacity.&] +[s6; Requires T to have deep copy constructor.&] +[s6; Invalidates iterators and references to Vector.&] +[s7; [*C@3 n]-|Required number of elements.&] +[s7; [*C@3 init]-|Initialization value of newly added elements.&] +[s3;%- &] +[s4;%- &] +[s5;:Vector`:`:Clear`(`):%- [@(0.0.255) void]_[* Clear]()&] +[s2; Removes all elements from Vector. Capacity is also cleared to +zero.&] +[s6; Invalidates iterators and references to Vector.&] +[s3;%- &] +[s4;%- &] +[s5;:Vector`:`:At`(int`):%- [*@4 T][@(0.0.255) `&]_[* At]([@(0.0.255) int]_[*@3 i])&] +[s2; If specified position is lower than number of elements in Vector +([* i < GetCount()]), returns reference to element at specified +position. Otherwise increases number of elements in Vector to +[* i `+ 1]. Newly added elements are default constructed. If Vector +has to increase capacity, the new capacity will be greater than +required number of elements to allow adding other elements without +further increasing capacity.&] +[s6; Requires T to have default constructor.&] +[s6; Invalidates iterators and references to Vector.&] +[s7; [*C@3 i]-|Position of required element.&] +[s7; [*/ Return value]-|Reference to required element.&] +[s3;%- &] +[s4;%- &] +[s5;:Vector`:`:At`(int`,const T`&`):%- [*@4 T][@(0.0.255) `&]_[* At]([@(0.0.255) int]_[*@3 i], +[@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[*@3 x])&] +[s2; If specified position is lower than number of elements in Vector +([* i < GetCount()]), returns reference to element at specified +position. Otherwise increases number of elements in Vector to +[* i `+ 1]. Newly added elements are copy constructed from [* x]. +If Vector has to increase capacity, the new capacity will be +greater than required number of elements to allow adding other +elements without further increasing capacity.&] +[s6; Requires T to have deep copy constructor.&] +[s6; Invalidates iterators and references to Vector.&] +[s7; [*C@3 i]-|Position of required element.&] +[s7; [*C@3 x]-|Initialization value of newly added elements.&] +[s7; [*/ Return value]-|Reference to required element.&] +[s3;%- &] +[s4;%- &] +[s5;:Vector`:`:Shrink`(`):%- [@(0.0.255) void]_[* Shrink]()&] +[s2; Minimizes memory consumption of Vector by decreasing capacity +to number of elements.&] +[s3;%- &] +[s4;%- &] +[s5;:Vector`:`:Reserve`(int`):%- [@(0.0.255) void]_[* Reserve]([@(0.0.255) int]_[*@3 n])&] +[s2; Reserves capacity. If required capacity is greater than current +capacity, capacity is increased to the required value.&] +[s7; [*C@3 xtra]-|Required capacity.&] +[s3;%- &] +[s4;%- &] +[s5;:Vector`:`:GetAlloc`(`)const:%- [@(0.0.255) int]_[* GetAlloc]()_[@(0.0.255) const]&] +[s2; Returns current capacity of Vector.&] +[s7; [*/ Return value]-|Capacity of Vector.&] +[s3;%- &] +[s4;%- &] +[s5;:Vector`:`:Set`(int`,const T`&`,int`):%- [@(0.0.255) void]_[* Set]([@(0.0.255) int]_[*@3 i +], [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[*@3 x], [@(0.0.255) int]_[*@3 count])&] +[s2; Sets requested number of elements starting at the position [* i] +to the specified value. If required number of elements exceeds +existing elements of Vector then elements are added to Vector.&] +[s6; Requires T to have deep copy constructor.&] +[s6; Invalidates iterators and references to Vector.&] +[s7; [*C@3 i]-|Starting position.&] +[s7; [*C@3 x]-|Value.&] +[s7; [*C@3 count]-|Number of elements.&] +[s3;%- &] +[s4;%- &] +[s5;:Vector`:`:Set`(int`,const T`&`):%- [*@4 T][@(0.0.255) `&]_[* Set]([@(0.0.255) int]_[*@3 i], + [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[*@3 x])&] +[s2; Sets element at [%-*@3 i] to [%-*@3 x].and returns a reference to +the element.&] +[s3; &] +[s4;%- &] +[s5;:Vector`:`:Remove`(int`,int`):%- [@(0.0.255) void]_[* Remove]([@(0.0.255) int]_[*@3 i], +[@(0.0.255) int]_[*@3 count]_`=_[@3 1])&] +[s2; Removes requested number of elements.&] +[s6; Invalidates iterators and references to Vector.&] +[s7; [*C@3 i]-|Position.&] +[s7; [*C@3 count]-|Number of elements to remove.&] +[s3;%- &] +[s4;%- &] +[s5;:Vector`:`:Remove`(const int`*`,int`):%- [@(0.0.255) void]_[* Remove]([@(0.0.255) const +]_[@(0.0.255) int]_`*[*@3 sorted`_list], [@(0.0.255) int]_[*@3 n])&] +[s2; Removes number of elements from Vector. Time of operation almost +does not depend on number of elements.&] +[s6; Invalidates iterators and references to Vector.&] +[s7; [*C@3 sorted`_list]-|Pointer to array of positions to remove. It +must be sorted from lowest to greatest value.&] +[s7; [*C@3 n]-|Number of elements to remove.&] +[s3;%- &] +[s4;%- &] +[s5;:Vector`:`:Remove`(const Vector``&`):%- [@(0.0.255) void]_[* Remove]([@(0.0.255) c +onst]_[_^Vector^ Vector][@(0.0.255) `&]_[*@3 sorted`_list])&] +[s2; Removes number of elements form Vector. Same as [* Remove(sorted`_list, +sorted`_list.GetCount())].&] +[s6; Invalidates iterators and references to Vector.&] +[s7; [*C@3 sorted`_list]-|Sorted Vector of positions to remove.&] +[s3;%- &] +[s4;%- &] +[s5;:Vector`:`:InsertN`(int`,int`):%- [@(0.0.255) void]_[* InsertN]([@(0.0.255) int]_[*@3 i], + [@(0.0.255) int]_[*@3 count]_`=_[@3 1])&] +[s2; Inserts a specified number of default constructed elements at +a specified position.&] +[s6; Requires T to have default constructor.&] +[s6; Invalidates iterators and references to Vector.&] +[s7; [*C@3 i]-|Position.&] +[s7; [*C@3 count]-|Number of elements to insert.&] +[s3;%- &] +[s4;%- &] +[s5;:Vector`:`:Insert`(int`):%- [*@4 T][@(0.0.255) `&]_[* Insert]([@(0.0.255) int]_[*@3 i])&] +[s2; Inserts one default constructed element at the specified position.&] +[s7; [*1 Requires T to have default constructor.]&] +[s6; Invalidates iterators and references to Vector.&] +[s7; [*C@3 i]-|Position.&] +[s3;%- &] +[s4;%- &] +[s5;:Vector`:`:Insert`(int`,const T`&`,int`):%- [@(0.0.255) void]_[* Insert]([@(0.0.255) in +t]_[*@3 i], [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[*@3 x], [@(0.0.255) int]_[*@3 count])&] +[s2; Inserts a specified number of elements, setting them to a specified +value.&] +[s6;~~~.992; Requires T to have deep copy constructor.&] +[s6; Invalidates iterators and references to Vector.&] +[s7; [*C@3 i]-|Position.&] +[s7; [*C@3 x]-|Value of inserted elements.&] +[s7; [*C@3 count]-|Number of elements to insert.&] +[s3;%- &] +[s4;%- &] +[s5;:Vector`:`:Insert`(int`,const T`&`):%- [*@4 T][@(0.0.255) `&]_[* Insert]([@(0.0.255) int]_ +[*@3 i], [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[*@3 x])&] +[s2; Inserts element at position [%-*@3 i] setting its value to [%-*@3 x] +and returns a reference to it.&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:Vector`:`:Insert`(int`,T`&`&`):%- [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 T +]>_[*@4 T][@(0.0.255) `&]_[* Insert]([@(0.0.255) int]_[*@3 q], [*@4 T][@(0.0.255) `&`&]_[*@3 x])&] +[s2; Inserts an element at [%-*@3 i] picking the content of [%-*@3 x] +and returns a reference to this new element.&] +[s3; &] +[s4;%- &] +[s5;:Vector`:`:Insert`(int`,const Vector`&`):%- [@(0.0.255) void]_[* Insert]([@(0.0.255) in +t]_[*@3 i], [@(0.0.255) const]_[_^Vector^ Vector][@(0.0.255) `&]_[*@3 x])&] +[s2; Inserts all elements from another Vector.&] +[s6;~~~.992; Requires T to have deep copy constructor.&] +[s6; Invalidates iterators and references to Vector.&] +[s7; [*C@3 i]-|Position.&] +[s7; [*C@3 x]-|Source Vector.&] +[s3;%- &] +[s4;%- &] +[s5;:Vector`:`:Insert`(int`,const Vector`&`,int`,int`):%- [@(0.0.255) void]_[* Insert]([@(0.0.255) i +nt]_[*@3 i], [@(0.0.255) const]_[_^Vector^ Vector][@(0.0.255) `&]_[*@3 x], +[@(0.0.255) int]_[*@3 offset], [@(0.0.255) int]_[*@3 count])&] +[s2; Inserts a range of elements from another Vector.&] +[s6;~~~.992; Requires T to have deep copy constructor.&] +[s6; Invalidates iterators and references to Vector.&] +[s7; [*C@3 i]-|Insertion position.&] +[s7; [*C@3 x]-|Source Vector.&] +[s7; [*C@3 offset]-|Position of first element in source Vector to be +inserted.&] +[s7; [*C@3 count]-|Number of elements to insert.&] +[s3;%- &] +[s4;%- &] +[s5;:Upp`:`:Vector`:`:Insert`(int`,Upp`:`:Vector`&`&`):%- [@(0.0.255) void]_[* Insert]([@(0.0.255) i +nt]_[*@3 i], [_^Upp`:`:Vector^ Vector][@(0.0.255) `&`&]_[*@3 x])&] +[s2; Inserts source Vector at specified position using pick transfer +semantics. It is faster than deep copy insert, does not use deep +copy constructor for T, but destroys source Vector.&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:Vector`:`:Insert`(int`,std`:`:initializer`_list``):%- [@(0.0.255) void]_ +[* Insert]([@(0.0.255) int]_[*@3 i], [_^std`:`:initializer`_list^ std`::initializer`_list]< +[*@4 T]>_[*@3 init])&] +[s2; Inserts C`+`+11 style initialization list.&] +[s3;%- &] +[s4;%- &] +[s5;:Upp`:`:Vector`:`:Append`(std`:`:initializer`_list``):%- [@(0.0.255) void]_[* App +end](std`::initializer`_list<[*@4 T]>_[*@3 init])&] +[s2; Appends C`+`+11 style initialization list.&] +[s3;%- &] +[s4;%- &] +[s5;:Vector`:`:InsertSplit`(int`,Vector``&`,int`):%- [@(0.0.255) void]_[* InsertSplit +]([@(0.0.255) int]_[*@3 i], [_^Vector^ Vector]<[*@4 T]>`&_[*@3 v], [@(0.0.255) int]_[*@3 from]) +&] +[s2; Insert the part of source vector [%-*@3 v] starting at element +[%-*@3 from] till the end at position [%-*@3 i] and trims [%-*@3 v] +at [%-*@3 from], effectively splitting [%-*@3 v] into two parts.&] +[s3; &] +[s4;%- &] +[s5;:Vector`:`:Append`(const Vector`&`):%- [@(0.0.255) void]_[* Append]([@(0.0.255) const]_ +[_^Vector^ Vector][@(0.0.255) `&]_[*@3 x])&] +[s2; Appends all elements of source Vector.&] +[s6;~~~.992; Requires T to have deep copy constructor.&] +[s6; Invalidates iterators and references to Vector.&] +[s7; [*C@3 x]-|Source Vector.&] +[s3;%- &] +[s4;%- &] +[s5;:Vector`:`:Append`(const Vector`&`,int`,int`):%- [@(0.0.255) void]_[* Append]([@(0.0.255) c +onst]_[_^Vector^ Vector][@(0.0.255) `&]_[*@3 x], [@(0.0.255) int]_[*@3 o], +[@(0.0.255) int]_[*@3 c])&] +[s2; Appends a range of elements from source Vector.&] +[s6;~~~.992; Requires T to have deep copy constructor.&] +[s6; Invalidates iterators and references to Vector.&] +[s7; [*C@3 x]-|Source Vector.&] +[s7; [*C@3 o]-|Position of first element in source Vector to be inserted.&] +[s7; [*C@3 c]-|Number of elements to insert.&] +[s3;%- &] +[s4;%- &] +[s5;:Upp`:`:Vector`:`:Append`(Upp`:`:Vector`&`&`):%- [@(0.0.255) void]_[* Append]([_^Upp`:`:Vector^ V +ector][@(0.0.255) `&`&]_[*@3 x])&] +[s2; Appends source Vector using pick transfer semantics. It is faster +than deep copy insert, does not use deep copy constructor for +T, but destroys source Vector by picking.&] +[s3;%- &] +[s4;%- &] +[s5;:Vector`:`:Swap`(int`,int`):%- [@(0.0.255) void]_[* Swap]([@(0.0.255) int]_[*@3 i1], +[@(0.0.255) int]_[*@3 i2])&] +[s2; Swaps elements at [%-*@3 i1] and [%-*@3 i2].&] +[s3; &] +[s4;%- &] +[s5;:Vector`:`:Drop`(int`):%- [@(0.0.255) void]_[* Drop]([@(0.0.255) int]_[*@3 n]_`=_[@3 1])&] +[s2; Drops specified number of last elements in the Vector (same +as Trim(GetCount() `- n)).&] +[s7; [*C@3 n]-|Number of elements.&] +[s3;%- &] +[s4;%- &] +[s5;:Vector`:`:Top`(`):%- [*@4 T][@(0.0.255) `&]_[* Top]()&] +[s2; Returns reference to the last element in the Vector.&] +[s7; [*/ Return value]-|Reference of last element in the Vector.&] +[s3;%- &] +[s4;%- &] +[s5;:Vector`:`:Top`(`)const:%- [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[* Top]()_[@(0.0.255) c +onst]&] +[s2; Returns constant reference to the last element in the Vector.&] +[s7; [*/ Return value]-|Reference of last element in the Vector.&] +[s3;%- &] +[s4;%- &] +[s5;:Vector`:`:Pop`(`):%- [*@4 T]_[* Pop]()&] +[s2; Drops last element of Vector and returns its value.&] +[s6; Requires T to have deep copy constructor.&] +[s7; [*/ Return value]-|Value of dropped element.&] +[s3;%- &] +[s4;%- &] +[s5;:Vector`:`:operator T`*`(`):%- [@(0.0.255) operator]_[*@4 T][@(0.0.255) `*]()&] +[s2; Returns non`-constant pointer to elements.&] +[s7; [*/ Return value]-|Pointer to elements.&] +[s3;%- &] +[s4;%- &] +[s5;:Vector`:`:operator const T`*`(`)const:%- [@(0.0.255) operator]_[@(0.0.255) const]_[*@4 T +][@(0.0.255) `*]()_[@(0.0.255) const]&] +[s2; Returns constant pointer to elements.&] +[s7; [*/ Return value]-|Pointer to elements.&] +[s3;%- &] +[s4;%- &] +[s5;:Vector`:`:operator`<`<`(const T`&`):%- [_^Vector^ Vector][@(0.0.255) `&]_[* operator<< +]([@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[*@3 x])&] +[s2; Operator replacement of [* void Add(const T`&x)]. By returning +reference to to Vector allows adding more elements in single +expression, thus e.g. allowing to construct temporary Vector +as part of expression like Foo((Vector() << 1 << 2 << 4)).&] +[s6; Requires T to have deep copy constructor.&] +[s6; Invalidates iterators and references to Vector.&] +[s7; [*C@3 x]-|The value that is copied to newly created element.&] +[s7; [*/ Return value]-|Reference to Vector (`*this).&] +[s3;%- &] +[s4;%- &] +[s5;:Vector`:`:ToString`(`)const:%- [_^String^ String]_[* ToString]()_[@(0.0.255) const]&] +[s2; Converts container into String, mostly for debugging purposes.&] +[s3;%- &] +[s4;%- &] +[s5;:Vector`:`:operator`=`=`(const Vector``&`)const:%- [@(0.0.255) bool]_[* operator`= +`=]([@(0.0.255) const]_[_^Vector^ Vector]<[*@4 T]>`&_[*@3 b])_[@(0.0.255) const]&] +[s5;:Vector`:`:operator`!`=`(const Vector``&`)const:%- [@(0.0.255) bool]_[* operator! +`=]([@(0.0.255) const]_[_^Vector^ Vector]<[*@4 T]>`&_[*@3 b])_[@(0.0.255) const]&] +[s2; Compares two containers for (in)equality, using T`::operator`=`=.&] +[s3; &] +[s4;%- &] +[s5;:Vector`:`:Compare`(const Vector``&`)const:%- [@(0.0.255) int]_[* Compare]([@(0.0.255) c +onst]_[_^Vector^ Vector]<[*@4 T]>`&_[*@3 b])_[@(0.0.255) const]&] +[s5;:Vector`:`:operator`<`=`(const Vector``&`)const:%- [@(0.0.255) bool]_[* operator< +`=]([@(0.0.255) const]_[_^Vector^ Vector]<[*@4 T]>`&_[*@3 b])_[@(0.0.255) const]&] +[s5;:Vector`:`:operator`>`=`(const Vector``&`)const:%- [@(0.0.255) bool]_[* operator> +`=]([@(0.0.255) const]_[_^Vector^ Vector]<[*@4 T]>`&_[*@3 b])_[@(0.0.255) const]&] +[s5;:Vector`:`:operator`<`(const Vector``&`)const:%- [@(0.0.255) bool]_[* operator<]( +[@(0.0.255) const]_[_^Vector^ Vector]<[*@4 T]>`&_[*@3 b])_[@(0.0.255) const]&] +[s5;:Vector`:`:operator`>`(const Vector``&`)const:%- [@(0.0.255) bool]_[* operator>]( +[@(0.0.255) const]_[_^Vector^ Vector]<[*@4 T]>`&_[*@3 b])_[@(0.0.255) const]&] +[s2; Lexicographically compares two containers, using SgnCompare +for elements.&] +[s3; &] +[s4;%- &] +[s5;:Vector`:`:operator`|`(pick`_ T`&`):%- [_^Vector^ Vector][@(0.0.255) `&]_[* operator`|]( +[@(0.128.128) pick`_]_[*@4 T][@(0.0.255) `&]_[*@3 x])&] +[s2; Operator replacement of [* void AddPick(pick`_ T`&x)]. By returning +reference to to Vector allows adding more elements in single +expression, thus e.g. allowing to construct temporary Vector +as part of expression.&] +[s6; Requires T to have pick constructor.&] +[s6; Invalidates iterators and references to Vector.&] +[s7; [*C@3 x]-|Source instance of T that is to be picked.&] +[s7; [*/ Return value]-|Reference to Vector (`*this).&] +[s3;%- &] +[s4;%- &] +[s5;:Vector`:`:Serialize`(Stream`&`):%- [@(0.0.255) void]_[* Serialize]([_^Stream^ Stream][@(0.0.255) `& +]_[*@3 s])&] +[s2; Serializes content of Vector to/from Stream. Works only if NTL +is used as part of UPP.&] +[s6; Requires T to have serialization operator defined.&] +[s7; [*C@3 s]-|Target/source stream.&] +[s3;%- &] +[s4;%- &] +[s5;:Vector`:`:operator`=`(pick`_ Vector`&`):%- [@(0.0.255) void]_[* operator`=]([@(0.128.128) p +ick`_]_[_^Vector^ Vector][@(0.0.255) `&]_[*@3 v])&] +[s2; Pick operator. Transfers source Vector in low constant time, +but destroys it by picking.&] +[s7; [*C@3 v]-|Source Vector.&] +[s3;%- &] +[s4;%- &] +[s5;:Vector`:`:IsPicked`(`)const:%- [@(0.0.255) bool]_[* IsPicked]()_[@(0.0.255) const]&] +[s2; Returns [* true] if Vector is in picked state.&] +[s7; [*/ Return value]-|[* true] if Vector is in picked state, [* false] +otherwise.&] +[s3; &] +[s4; &] +[s5;%- friend_T`&_operator<<`=[@(64) (T`&_][@3 dest][@(64) , ][@(0.0.255) const][@(64) _T`&_][@3 s +rc][@(64) )]&] +[s2; Optional deep copy operator. Defined using DeepCopyOptionTemplate.&] +[s6; Requires T to have deep copy operator or optional deep copy +operator.&] +[s7; [*C@3 v]-|Source Vector.&] +[s3;%- &] +[s4;%- &] +[s5;:Vector`:`:ValueType`:`:typedef:%- [@(0.0.255) typedef]_T_[* ValueType]&] +[s2; Typedef of T for use in templated algorithms.&] +[s3;%- &] +[s4;%- &] +[s5;:Vector`:`:Iterator`:`:typedef:%- [@(0.0.255) typedef]_T_`*[* Iterator]&] +[s2; Iterator type. Iterator is guaranteed to be of T`* type.&] +[s3;%- &] +[s4;%- &] +[s5;:Vector`:`:ConstIterator`:`:typedef:%- [@(0.0.255) typedef]_[@(0.0.255) const]_T_`*[* C +onstIterator]&] +[s2; Constant iterator type. Iterator is guaranteed to be of const +T`* type.&] +[s3;%- &] +[s4;%- &] +[s5;:Vector`:`:Begin`(`)const:%- [_^Vector`:`:ConstIterator^ ConstIterator]_[* Begin]()_[@(0.0.255) c +onst]&] +[s2; Returns constant iterator to the first element in Vector.&] +[s7; [*/ Return value]-|Iterator.&] +[s3;%- &] +[s4;%- &] +[s5;:Vector`:`:End`(`)const:%- [_^Vector`:`:ConstIterator^ ConstIterator]_[* End]()_[@(0.0.255) c +onst]&] +[s2; Returns constant iterator to the position just beyond the last +element in Vector.&] +[s7; [*/ Return value]-|Iterator.&] +[s3;%- &] +[s4;%- &] +[s5;:Vector`:`:GetIter`(int`)const:%- [_^Vector`:`:ConstIterator^ ConstIterator]_[* GetIt +er]([@(0.0.255) int]_[*@3 i])_[@(0.0.255) const]&] +[s2; Returns constant iterator to the element at specified position. +Same as [* Begin() `+ i]. Benefit of this methods is that in debug +mode [* pos] is range checked.&] +[s7; [*C@3 i]-|Required position.&] +[s7; [*/ Return value]-|Iterator.&] +[s3;%- &] +[s4;%- &] +[s5;:Vector`:`:Begin`(`):%- [_^Vector`:`:Iterator^ Iterator]_[* Begin]()&] +[s2; Returns non`-constant iterator to the first element in Vector.&] +[s7; [*/ Return value]-|Iterator.&] +[s3;%- &] +[s4;%- &] +[s5;:Vector`:`:End`(`):%- [_^Vector`:`:Iterator^ Iterator]_[* End]()&] +[s2; Returns non`-constant iterator to the position just beyond the +last element in Vector.&] +[s7; [*/ Return value]-|Iterator.&] +[s3;%- &] +[s4;%- &] +[s5;:Vector`:`:GetIter`(int`):%- [_^Vector`:`:Iterator^ Iterator]_[* GetIter]([@(0.0.255) i +nt]_[*@3 i])&] +[s2; Returns non`-constant iterator to the element at specified position. +Same as [* Begin() `+ pos]. Benefit of this methods is that in +debug mode [* pos] is range checked.&] +[s7; [*C@3 i]-|Required position.&] +[s7; [*/ Return value]-|Iterator.&] +[s3;%- &] +[s4;%- &] +[s5;:`:`:Vector`:`:Swap`(`:`:Vector`&`,`:`:Vector`&`):%- [@(0.0.255) friend]_[@(0.0.255) v +oid]_[* Swap]([_^`:`:Vector^ Vector][@(0.0.255) `&]_[*@3 a], [_^`:`:Vector^ Vector][@(0.0.255) `& +]_[*@3 b])&] +[s2; Specialization of generic [* Swap] for Vector. Swaps Vector in +simple constant time operation.&] +[s7; [*C@3 a]-|First Vector to swap.&] +[s7; [*C@3 b]-|Second Vector to swap.&] +[s3; &] [s0; ]] \ No newline at end of file diff --git a/uppsrc/Core/src.tpp/WebSocket$en-us.tpp b/uppsrc/Core/src.tpp/WebSocket_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/WebSocket$en-us.tpp rename to uppsrc/Core/src.tpp/WebSocket_en-us.tpp diff --git a/uppsrc/Core/src.tpp/XmlIO$en-us.tpp b/uppsrc/Core/src.tpp/XmlIO_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/XmlIO$en-us.tpp rename to uppsrc/Core/src.tpp/XmlIO_en-us.tpp diff --git a/uppsrc/Core/src.tpp/XmlNode$en-us.tpp b/uppsrc/Core/src.tpp/XmlNode_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/XmlNode$en-us.tpp rename to uppsrc/Core/src.tpp/XmlNode_en-us.tpp diff --git a/uppsrc/Core/src.tpp/XmlOutput$en-us.tpp b/uppsrc/Core/src.tpp/XmlOutput_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/XmlOutput$en-us.tpp rename to uppsrc/Core/src.tpp/XmlOutput_en-us.tpp diff --git a/uppsrc/Core/src.tpp/XmlParser$en-us.tpp b/uppsrc/Core/src.tpp/XmlParser_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/XmlParser$en-us.tpp rename to uppsrc/Core/src.tpp/XmlParser_en-us.tpp diff --git a/uppsrc/Core/src.tpp/Zlib$en-us.tpp b/uppsrc/Core/src.tpp/Zlib_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/Zlib$en-us.tpp rename to uppsrc/Core/src.tpp/Zlib_en-us.tpp diff --git a/uppsrc/Core/src.tpp/algo$en-us.tpp b/uppsrc/Core/src.tpp/algo_en-us.tpp similarity index 98% rename from uppsrc/Core/src.tpp/algo$en-us.tpp rename to uppsrc/Core/src.tpp/algo_en-us.tpp index 1bab15ff8..5a1ea4f9c 100644 --- a/uppsrc/Core/src.tpp/algo$en-us.tpp +++ b/uppsrc/Core/src.tpp/algo_en-us.tpp @@ -1,269 +1,269 @@ -topic "Template Algorithms"; -[2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,0#27521748481378242620020725143825:desc] -[0 $$3,0#96390100711032703541132217272105:end] -[H6;0 $$4,0#05600065144404261032431302351956:begin] -[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] -[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] -[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] -[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] -[b42;2 $$9,9#13035079074754324216151401829390:normal] -[{_} -[ {{10000@(113.42.0) [s0;%% [*@7;4 Template Algorithms]]}}&] -[s3;%% &] -[s5;:Swap`(T`&`,T`&`): [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 T][@(0.0.255) >]_&] -[s5;:Swap`(T`&`,T`&`): [@(0.0.255) void]_[* Swap]([*@4 T][@(0.0.255) `&]_[*@3 a], -[*@4 T][@(0.0.255) `&]_[*@3 b])&] -[s2;%% Swaps values. Specific types might specialize [* Swap].&] -[s3; &] -[s4; &] -[s5;:IterSwap`(I`,I`): [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 I][@(0.0.255) >]_&] -[s5;:IterSwap`(I`,I`): [@(0.0.255) void]_[* IterSwap]([*@4 I]_[*@3 a], [*@4 I]_[*@3 b])&] -[s2;%% Swaps values pointed to by iterators. Specific types might -specialize [* IterSwap].&] -[s3; &] -[s4; &] -[s5;:sgn`(T`): [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 T]>_&] -[s5;:sgn`(T`): [@(0.0.255) int]_[* sgn]([*@4 T]_[*@3 a])&] -[s2;%% Returns 1 if [%-*@3 a]. is greater than zero, `-1 if [%-*@3 a] -is smaller than zero and zero if [%-*@3 a] is zero.&] -[s3;%% &] -[s4; &] -[s5;:tabs`(T`): [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 T]>_&] -[s5;:tabs`(T`): [*@4 T]_[* tabs]([*@4 T]_[*@3 a])&] -[s2;%% Returns the absolute value of [%-*@3 a].&] -[s3;%% &] -[s4; &] -[s5;:cmp`(const T`&`,const T`&`): [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 T]>_&] -[s5;:cmp`(const T`&`,const T`&`): [@(0.0.255) int]_[* cmp]([@(0.0.255) const]_[*@4 T][@(0.0.255) `& -]_[*@3 a], [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[*@3 b])&] -[s2; [%% Returns 1 if ][*@3 a][%% is greater than ][*@3 b][%% , `-1 if ][*@3 a][%% -is smaller than ][*@3 b][%% and zero if ][*@3 a][%% is equal than ][*@3 b.]&] -[s3;%% &] -[s4; &] -[s5;:Upp`:`:Reverse`(Range`&`): [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 Range]>_&] -[s5;:Upp`:`:Reverse`(Range`&`): [@(0.0.255) void]_[* Reverse]([*@4 Range][@(0.0.255) `&]_[*@3 r -])&] -[s5;:Upp`:`:Reverse`(Range`&`&`): [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 Range]>_&] -[s5;:Upp`:`:Reverse`(Range`&`&`): [@(0.0.255) void]_[* Reverse]([*@4 Range][@(0.0.255) `&`&]_ -[*@3 r])&] -[s2;%% Reverses the order of values in a range.&] -[s3;%% &] -[s4; &] -[s5;:Upp`:`:Sum`(const Range`&`,const Upp`:`:ValueTypeOf``&`): [@(0.0.255) temp -late]_<[@(0.0.255) class]_[*@4 Range]>_&] -[s5;:Upp`:`:Sum`(const Range`&`,const Upp`:`:ValueTypeOf``&`): [_^Upp`:`:ValueTypeOf^ V -alueTypeOf]<[*@4 Range]>_[* Sum]([@(0.0.255) const]_[*@4 Range][@(0.0.255) `&]_[*@3 r], -[@(0.0.255) const]_[_^Upp`:`:ValueTypeOf^ ValueTypeOf]<[*@4 Range]>`&_[*@3 zero])&] -[s2; [%% Returns the sum of all elements in range ][*@3 r][%% , with ][*@3 zero][%% -representing initial zero value. ][*@4 T]_must have defined operator`+`=.&] -[s3;%% &] -[s4; &] -[s5;:Sum`(const T`&`): [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 Range]>_&] -[s5;:Sum`(const T`&`): [@(0.0.255) typename]_[_^Upp`:`:ValueTypeOf^ ValueTypeOf]<[*@4 Range -]>_[* Sum]([@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[*@3 c])&] -[s2;%% Same as Sum(c, 0).&] -[s3;%% &] -[s4; &] -[s5;:Upp`:`:Count`(const Range`&`,const V`&`): [@(0.0.255) template]_<[@(0.0.255) class]_ -[*@4 Range], [@(0.0.255) class]_[*@4 V]>_&] -[s5;:Upp`:`:Count`(const Range`&`,const V`&`): [@(0.0.255) int]_[* Count]([@(0.0.255) const -]_[*@4 Range][@(0.0.255) `&]_[*@3 r], [@(0.0.255) const]_[*@4 V][@(0.0.255) `&]_[*@3 val])&] -[s2;%% Counts the number of elements in the Range [%-*@3 r] that are -equal to [%-*@3 val] .&] -[s3;%% &] -[s4; &] -[s5;:Upp`:`:CountIf`(const Range`&`,const Predicate`&`): [@(0.0.255) template]_<[@(0.0.255) c -lass]_[*@4 Range], [@(0.0.255) class]_[*@4 Predicate]>_&] -[s5;:Upp`:`:CountIf`(const Range`&`,const Predicate`&`): [@(0.0.255) int]_[* CountIf]([@(0.0.255) c -onst]_[*@4 Range][@(0.0.255) `&]_[*@3 r], [@(0.0.255) const]_[*@4 Predicate][@(0.0.255) `&]_[*@3 p -])&] -[s2;%% Counts the number of elements in the Range [%-*@3 r] that satisfy -condition [%-*@3 p].&] -[s3;%% &] -[s4; &] -[s5;:Upp`:`:FindBest`(const Range`&`,const Pred`&`): [@(0.0.255) template]_<[@(0.0.255) c -lass]_[*@4 Range], [@(0.0.255) class]_[*@4 Pred]>_&] -[s5;:Upp`:`:FindBest`(const Range`&`,const Pred`&`): [@(0.0.255) int]_[* FindBest]([@(0.0.255) c -onst]_[*@4 Range][@(0.0.255) `&]_[*@3 r], [@(0.0.255) const]_[*@4 Pred][@(0.0.255) `&]_[*@3 pre -d])&] -[s2;%% Finds the most suitable element in a range [%-*@3 r] as specified -by [%-*@3 pred]. E.g. if [%-*@3 pred] is std`::less, finds minimum. -If [%-*@3 r] is empty, returns `-1.&] -[s3;%% &] -[s4; &] -[s5;:Upp`:`:FindMin`(const Range`&`): [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 Range]> -_&] -[s5;:Upp`:`:FindMin`(const Range`&`): [@(0.0.255) int]_[* FindMin]([@(0.0.255) const]_[*@4 Ra -nge][@(0.0.255) `&]_[*@3 r])&] -[s2;%% Returns the index of minimal element of [%-*@3 r], using std`::less -to compare elements. If [%-*@3 r] is empty, returns `-1.&] -[s3;%% &] -[s4; &] -[s5;:Upp`:`:Min`(const Range`&`): [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 Range]>_&] -[s5;:Upp`:`:Min`(const Range`&`): [@(0.0.255) const]_[_^Upp`:`:ValueTypeOf^ ValueTypeOf]< -[*@4 Range]>`&_[* Min]([@(0.0.255) const]_[*@4 Range][@(0.0.255) `&]_[*@3 r])&] -[s2;%% Returns the [/ value] of minimal element of [%-*@3 r], using std`::less -to compare elements. If [%-*@3 r] is empty, behavior is undefined -(ASSERT fails in debug).&] -[s3;%% &] -[s4; &] -[s5;:Upp`:`:Min`(const Range`&`,const Upp`:`:ValueTypeOf``&`): [@(0.0.255) temp -late]_<[@(0.0.255) class]_[*@4 Range]>_&] -[s5;:Upp`:`:Min`(const Range`&`,const Upp`:`:ValueTypeOf``&`): [@(0.0.255) cons -t]_[_^Upp`:`:ValueTypeOf^ ValueTypeOf]<[*@4 Range]>`&_[* Min]([@(0.0.255) const]_[*@4 Range -][@(0.0.255) `&]_[*@3 r], [@(0.0.255) const]_[_^Upp`:`:ValueTypeOf^ ValueTypeOf]<[*@4 Range -]>`&_[*@3 def])&] -[s2;%% Returns the [/ value] of minimal element of [%-*@3 r], using std`::less -to compare elements. If [%-*@3 r] is empty, returns [%-*@3 def].&] -[s3;%% &] -[s4; &] -[s5;:Upp`:`:FindMax`(const Range`&`): [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 Range]> -_&] -[s5;:Upp`:`:FindMax`(const Range`&`): [@(0.0.255) int]_[* FindMax]([@(0.0.255) const]_[*@4 Ra -nge][@(0.0.255) `&]_[*@3 r])&] -[s2;%% Returns the index of maximal element of [%-*@3 r], using std`::greater -to compare elements. If [%-*@3 r] is empty, returns `-1.&] -[s3;%% &] -[s4; &] -[s5;:Upp`:`:Max`(const Range`&`): [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 Range]>_&] -[s5;:Upp`:`:Max`(const Range`&`): [@(0.0.255) const]_[_^Upp`:`:ValueTypeOf^ ValueTypeOf]< -[*@4 Range]>`&_[* Max]([@(0.0.255) const]_[*@4 Range][@(0.0.255) `&]_[*@3 r])&] -[s2;%% Returns the [/ value] of maximal element of [%-*@3 r], using std`::less -to compare elements. If [%-*@3 r] is empty, behavior is undefined -(ASSERT fails in debug)..&] -[s3;%% &] -[s4; &] -[s5;:Upp`:`:Max`(const Range`&`,const Upp`:`:ValueTypeOf``&`): [@(0.0.255) temp -late]_<[@(0.0.255) class]_[*@4 Range]>_&] -[s5;:Upp`:`:Max`(const Range`&`,const Upp`:`:ValueTypeOf``&`): [@(0.0.255) cons -t]_[_^Upp`:`:ValueTypeOf^ ValueTypeOf]<[*@4 Range]>`&_[* Max]([@(0.0.255) const]_[*@4 Range -][@(0.0.255) `&]_[*@3 r], [@(0.0.255) const]_[_^Upp`:`:ValueTypeOf^ ValueTypeOf]<[*@4 Range -]>`&_[*@3 def])&] -[s2;%% Returns the [/ value] of maximal element of [%-*@3 r], using std`::less -to compare elements. If [%-*@3 r] is empty, returns [%-*@3 def].&] -[s3;%% &] -[s4; &] -[s5;:Upp`:`:IsEqualRange`(const Range1`&`,const Range2`&`): [@(0.0.255) template]_<[@(0.0.255) c -lass]_[*@4 Range1], [@(0.0.255) class]_[*@4 Range2]>_&] -[s5;:Upp`:`:IsEqualRange`(const Range1`&`,const Range2`&`): [@(0.0.255) bool]_[* IsEqualR -ange]([@(0.0.255) const]_[*@4 Range1][@(0.0.255) `&]_[*@3 a], [@(0.0.255) const]_[*@4 Range2][@(0.0.255) `& -]_[*@3 b])&] -[s2;%% Returns true if [%-*@3 a] and [%-*@3 b] are equal. operator`=`= -is used to compare elements. Ranges are considered equal if they -have the same number of elements and for every element at index -[/ i: ][%-*@3 a]`[i`] `=`= [%-*@3 b]`[i`].&] -[s3;%% &] -[s4; &] -[s5;:Upp`:`:CompareRanges`(const Range1`&`,const Range2`&`): [@(0.0.255) template]_<[@(0.0.255) c -lass]_[*@4 Range1], [@(0.0.255) class]_[*@4 Range2]>_&] -[s5;:Upp`:`:CompareRanges`(const Range1`&`,const Range2`&`): [@(0.0.255) int]_[* CompareR -anges]([@(0.0.255) const]_[*@4 Range1][@(0.0.255) `&]_[*@3 a], [@(0.0.255) const]_[*@4 Range2 -][@(0.0.255) `&]_[*@3 b])&] -[s2;%% Lexicographically compares ranges [%-*@3 a] [%-*@3 b], using SgnCompare -to compare elements. SgnCompare is supposed to return value < -0 if first element is less than second, 0 if they are equal, ->0 otherwise. Returns value <0, 0, >0 if [%-*@3 a] < [%-*@3 b],[%-*@3 -a] `=`= [%-*@3 b],[%-*@3 a] > [%-*@3 b].&] -[s3;%% &] -[s4; &] -[s5;:Upp`:`:FindMatch`(const Range`&`,const C`&`,int`): [@(0.0.255) template]_<[@(0.0.255) c -lass]_[*@4 Range], [@(0.0.255) class]_[*@4 V], [@(0.0.255) class]_[*@4 C]>_&] -[s5;:Upp`:`:FindMatch`(const Range`&`,const C`&`,int`): [@(0.0.255) int]_[* FindMatch]([@(0.0.255) c -onst]_[*@4 Range][@(0.0.255) `&]_[*@3 r], [@(0.0.255) const]_[*@4 C][@(0.0.255) `&]_[*@3 match], - [@(0.0.255) int]_[*@3 from]_`=_[@3 0])&] -[s2;%% Returns the index of first element for which predicate [%-*@3 match] -is true. If not found, returns `-1. Search starts at index [%-*@3 from].&] -[s3;%% &] -[s4; &] -[s5;:Upp`:`:FindIndex`(const Range`&`,const V`&`,int`): [@(0.0.255) template]_<[@(0.0.255) c -lass]_[*@4 Range], [@(0.0.255) class]_[*@4 V]>_&] -[s5;:Upp`:`:FindIndex`(const Range`&`,const V`&`,int`): [@(0.0.255) int]_[* FindIndex]([@(0.0.255) c -onst]_[*@4 Range][@(0.0.255) `&]_[*@3 r], [@(0.0.255) const]_[*@4 V][@(0.0.255) `&]_[*@3 value], - [@(0.0.255) int]_[*@3 from]_`=_[@3 0])&] -[s2;%% Returns the index of first element which is equal to [%-*@3 value]. -If not found, returns `-1. Search starts at index [%-*@3 from].&] -[s3;%% &] -[s4; &] -[s5;:Upp`:`:FindAll`(const Range`&`,Predicate`,int`): [@(0.0.255) template]_<[@(0.0.255) c -lass]_[*@4 Range], [@(0.0.255) class]_[*@4 Predicate]>_&] -[s5;:Upp`:`:FindAll`(const Range`&`,Predicate`,int`): [_^Upp`:`:Vector^ Vector]<[@(0.0.255) i -nt]>_[* FindAll]([@(0.0.255) const]_[*@4 Range][@(0.0.255) `&]_[*@3 r], -[*@4 Predicate]_[*@3 match], [@(0.0.255) int]_[*@3 from]_`=_[@3 0])&] -[s2;%% Returns the Vector of indices of [/ ALL] elements for which -[%-*@3 match] is true. Returned Vector is sorted in ascending order. -Search starts at index [%-*@3 from].&] -[s3;%% &] -[s4; &] -[s5;:Upp`:`:FindLowerBound`(const Range`&`,const T`&`,const Less`&`): [@(0.0.255) templ -ate]_<[@(0.0.255) class]_[*@4 Range], [@(0.0.255) class]_[*@4 T], [@(0.0.255) class]_[*@4 Les -s]>_&] -[s5;:Upp`:`:FindLowerBound`(const Range`&`,const T`&`,const Less`&`): [@(0.0.255) int]_ -[* FindLowerBound]([@(0.0.255) const]_[*@4 Range][@(0.0.255) `&]_[*@3 r], -[@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[*@3 val], [@(0.0.255) const]_[*@4 Less][@(0.0.255) `& -]_[*@3 less])&] -[s5;:Upp`:`:FindLowerBound`(const Range`&`,const T`&`): [@(0.0.255) template]_<[@(0.0.255) c -lass]_[*@4 Range], [@(0.0.255) class]_[*@4 T]>_&] -[s5;:Upp`:`:FindLowerBound`(const Range`&`,const T`&`): [@(0.0.255) int]_[* FindLowerBoun -d]([@(0.0.255) const]_[*@4 Range][@(0.0.255) `&]_[*@3 r], [@(0.0.255) const]_[*@4 T][@(0.0.255) `& -]_[*@3 val])&] -[s2;%% Finds the first index in sorted range [%-*@3 r], which must -be sorted by [%-*@3 less ]predicate (or std`::less in second overload), -where [%-*@3 val] can be inserted without breaking the ordering.&] -[s3;%% &] -[s4; &] -[s5;:Upp`:`:FindUpperBound`(const Range`&`,const T`&`,const L`&`): [@(0.0.255) template -]_<[@(0.0.255) class]_[*@4 Range], [@(0.0.255) class]_[*@4 T], [@(0.0.255) class]_[*@4 L]>_&] -[s5;:Upp`:`:FindUpperBound`(const Range`&`,const T`&`,const L`&`): [@(0.0.255) int]_[* Fi -ndUpperBound]([@(0.0.255) const]_[*@4 Range][@(0.0.255) `&]_[*@3 r], -[@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[*@3 val], [@(0.0.255) const]_[*@4 L][@(0.0.255) `&]_ -[*@3 less])&] -[s5;:Upp`:`:FindUpperBound`(const Range`&`,const T`&`): [@(0.0.255) template]_<[@(0.0.255) c -lass]_[*@4 Range], [@(0.0.255) class]_[*@4 T]>_&] -[s5;:Upp`:`:FindUpperBound`(const Range`&`,const T`&`): [@(0.0.255) int]_[* FindUpperBoun -d]([@(0.0.255) const]_[*@4 Range][@(0.0.255) `&]_[*@3 r], [@(0.0.255) const]_[*@4 T][@(0.0.255) `& -]_[*@3 val])&] -[s2;%% Finds the last index in sorted range [%-*@3 r], which must be -sorted by [%-*@3 less ]predicate (or std`::less in second overload), -where [%-*@3 val] can be inserted without breaking the ordering.&] -[s3; &] -[s4; &] -[s5;:Upp`:`:FindBinary`(const Range`&`,const T`&`,const L`&`): [@(0.0.255) template]_<[@(0.0.255) c -lass]_[*@4 Range], [@(0.0.255) class]_[*@4 T], [@(0.0.255) class]_[*@4 L]>_&] -[s5;:Upp`:`:FindBinary`(const Range`&`,const T`&`,const L`&`): [@(0.0.255) int]_[* FindBi -nary]([@(0.0.255) const]_[*@4 Range][@(0.0.255) `&]_[*@3 r], [@(0.0.255) const]_[*@4 T][@(0.0.255) `& -]_[*@3 val], [@(0.0.255) const]_[*@4 L][@(0.0.255) `&]_[*@3 less])&] -[s5;:Upp`:`:FindBinary`(const Range`&`,const T`&`): [@(0.0.255) template]_<[@(0.0.255) cl -ass]_[*@4 Range], [@(0.0.255) class]_[*@4 T]>_&] -[s5;:Upp`:`:FindBinary`(const Range`&`,const T`&`): [@(0.0.255) int]_[* FindBinary]([@(0.0.255) c -onst]_[*@4 Range][@(0.0.255) `&]_[*@3 r], [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[*@3 val])&] -[s2;%% Finds the index of [%-*@3 val] in sorted range [%-*@3 r], which -must be sorted by [%-*@3 less ]predicate (or std`::less in second -overload). If [%-*@3 val] is not present in [%-*@3 r], return `-1.&] -[s3;%% &] -[s4; &] -[s5;:Upp`:`:LruAdd`(Container`&`,T`,int`): [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 C -ontainer], [@(0.0.255) class]_[*@4 T]>_&] -[s5;:Upp`:`:LruAdd`(Container`&`,T`,int`): [@(0.0.255) void]_[* LruAdd]([*@4 Container][@(0.0.255) `& -]_[*@3 lru], [*@4 T]_[*@3 value], [@(0.0.255) int]_[*@3 limit]_`=_[@3 10])&] -[s2;%% This specialized algorithm is intended to manage Least`-Recently`-Used -lists. [%-*@3 lru] has to be U`+`+ array type (Vector, Array, InVector, -InArray) and represents the list. [%-*@3 value] is the value to -be eventually added to the list, [%-*@3 limit] is the maximum number -of elements in the list. On call, if [%-*@3 value] is present in -the [%-*@3 lru], it is moved to the front. If it is not present, -it is inserted to the front and the size of list is eventually -reduced to [%-*@3 limit], possibly removing the element at the -end of list.&] -[s3;%% &] -[s4; &] -[s5;:Upp`:`:MakeIota`(V`,V`,V`): [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 C]_`=_Vecto -r<[@(0.0.255) int]>, [@(0.0.255) class]_[*@4 V]>_&] -[s5;:Upp`:`:MakeIota`(V`,V`,V`): [*@4 C]_[* MakeIota]([*@4 V]_[*@3 end], -[*@4 V]_[*@3 start]_`=_[@3 0], [*@4 V]_[*@3 step]_`=_[@3 1])&] -[s2;%% Returns a cointainer of type [%-*@4 C] filled with sequence -of numbers starting at [%-*@3 start] and less than [%-*@3 end] increasing -by [%-*@3 step] increments.&] -[s3;%% &] +topic "Template Algorithms"; +[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,0#27521748481378242620020725143825:desc] +[0 $$3,0#96390100711032703541132217272105:end] +[H6;0 $$4,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] +[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] +[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] +[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] +[b42;2 $$9,9#13035079074754324216151401829390:normal] +[{_} +[ {{10000@(113.42.0) [s0;%% [*@7;4 Template Algorithms]]}}&] +[s3;%% &] +[s5;:Swap`(T`&`,T`&`): [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 T][@(0.0.255) >]_&] +[s5;:Swap`(T`&`,T`&`): [@(0.0.255) void]_[* Swap]([*@4 T][@(0.0.255) `&]_[*@3 a], +[*@4 T][@(0.0.255) `&]_[*@3 b])&] +[s2;%% Swaps values. Specific types might specialize [* Swap].&] +[s3; &] +[s4; &] +[s5;:IterSwap`(I`,I`): [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 I][@(0.0.255) >]_&] +[s5;:IterSwap`(I`,I`): [@(0.0.255) void]_[* IterSwap]([*@4 I]_[*@3 a], [*@4 I]_[*@3 b])&] +[s2;%% Swaps values pointed to by iterators. Specific types might +specialize [* IterSwap].&] +[s3; &] +[s4; &] +[s5;:sgn`(T`): [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 T]>_&] +[s5;:sgn`(T`): [@(0.0.255) int]_[* sgn]([*@4 T]_[*@3 a])&] +[s2;%% Returns 1 if [%-*@3 a]. is greater than zero, `-1 if [%-*@3 a] +is smaller than zero and zero if [%-*@3 a] is zero.&] +[s3;%% &] +[s4; &] +[s5;:tabs`(T`): [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 T]>_&] +[s5;:tabs`(T`): [*@4 T]_[* tabs]([*@4 T]_[*@3 a])&] +[s2;%% Returns the absolute value of [%-*@3 a].&] +[s3;%% &] +[s4; &] +[s5;:cmp`(const T`&`,const T`&`): [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 T]>_&] +[s5;:cmp`(const T`&`,const T`&`): [@(0.0.255) int]_[* cmp]([@(0.0.255) const]_[*@4 T][@(0.0.255) `& +]_[*@3 a], [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[*@3 b])&] +[s2; [%% Returns 1 if ][*@3 a][%% is greater than ][*@3 b][%% , `-1 if ][*@3 a][%% +is smaller than ][*@3 b][%% and zero if ][*@3 a][%% is equal than ][*@3 b.]&] +[s3;%% &] +[s4; &] +[s5;:Upp`:`:Reverse`(Range`&`): [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 Range]>_&] +[s5;:Upp`:`:Reverse`(Range`&`): [@(0.0.255) void]_[* Reverse]([*@4 Range][@(0.0.255) `&]_[*@3 r +])&] +[s5;:Upp`:`:Reverse`(Range`&`&`): [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 Range]>_&] +[s5;:Upp`:`:Reverse`(Range`&`&`): [@(0.0.255) void]_[* Reverse]([*@4 Range][@(0.0.255) `&`&]_ +[*@3 r])&] +[s2;%% Reverses the order of values in a range.&] +[s3;%% &] +[s4; &] +[s5;:Upp`:`:Sum`(const Range`&`,const Upp`:`:ValueTypeOf``&`): [@(0.0.255) temp +late]_<[@(0.0.255) class]_[*@4 Range]>_&] +[s5;:Upp`:`:Sum`(const Range`&`,const Upp`:`:ValueTypeOf``&`): [_^Upp`:`:ValueTypeOf^ V +alueTypeOf]<[*@4 Range]>_[* Sum]([@(0.0.255) const]_[*@4 Range][@(0.0.255) `&]_[*@3 r], +[@(0.0.255) const]_[_^Upp`:`:ValueTypeOf^ ValueTypeOf]<[*@4 Range]>`&_[*@3 zero])&] +[s2; [%% Returns the sum of all elements in range ][*@3 r][%% , with ][*@3 zero][%% +representing initial zero value. ][*@4 T]_must have defined operator`+`=.&] +[s3;%% &] +[s4; &] +[s5;:Sum`(const T`&`): [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 Range]>_&] +[s5;:Sum`(const T`&`): [@(0.0.255) typename]_[_^Upp`:`:ValueTypeOf^ ValueTypeOf]<[*@4 Range +]>_[* Sum]([@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[*@3 c])&] +[s2;%% Same as Sum(c, 0).&] +[s3;%% &] +[s4; &] +[s5;:Upp`:`:Count`(const Range`&`,const V`&`): [@(0.0.255) template]_<[@(0.0.255) class]_ +[*@4 Range], [@(0.0.255) class]_[*@4 V]>_&] +[s5;:Upp`:`:Count`(const Range`&`,const V`&`): [@(0.0.255) int]_[* Count]([@(0.0.255) const +]_[*@4 Range][@(0.0.255) `&]_[*@3 r], [@(0.0.255) const]_[*@4 V][@(0.0.255) `&]_[*@3 val])&] +[s2;%% Counts the number of elements in the Range [%-*@3 r] that are +equal to [%-*@3 val] .&] +[s3;%% &] +[s4; &] +[s5;:Upp`:`:CountIf`(const Range`&`,const Predicate`&`): [@(0.0.255) template]_<[@(0.0.255) c +lass]_[*@4 Range], [@(0.0.255) class]_[*@4 Predicate]>_&] +[s5;:Upp`:`:CountIf`(const Range`&`,const Predicate`&`): [@(0.0.255) int]_[* CountIf]([@(0.0.255) c +onst]_[*@4 Range][@(0.0.255) `&]_[*@3 r], [@(0.0.255) const]_[*@4 Predicate][@(0.0.255) `&]_[*@3 p +])&] +[s2;%% Counts the number of elements in the Range [%-*@3 r] that satisfy +condition [%-*@3 p].&] +[s3;%% &] +[s4; &] +[s5;:Upp`:`:FindBest`(const Range`&`,const Pred`&`): [@(0.0.255) template]_<[@(0.0.255) c +lass]_[*@4 Range], [@(0.0.255) class]_[*@4 Pred]>_&] +[s5;:Upp`:`:FindBest`(const Range`&`,const Pred`&`): [@(0.0.255) int]_[* FindBest]([@(0.0.255) c +onst]_[*@4 Range][@(0.0.255) `&]_[*@3 r], [@(0.0.255) const]_[*@4 Pred][@(0.0.255) `&]_[*@3 pre +d])&] +[s2;%% Finds the most suitable element in a range [%-*@3 r] as specified +by [%-*@3 pred]. E.g. if [%-*@3 pred] is std`::less, finds minimum. +If [%-*@3 r] is empty, returns `-1.&] +[s3;%% &] +[s4; &] +[s5;:Upp`:`:FindMin`(const Range`&`): [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 Range]> +_&] +[s5;:Upp`:`:FindMin`(const Range`&`): [@(0.0.255) int]_[* FindMin]([@(0.0.255) const]_[*@4 Ra +nge][@(0.0.255) `&]_[*@3 r])&] +[s2;%% Returns the index of minimal element of [%-*@3 r], using std`::less +to compare elements. If [%-*@3 r] is empty, returns `-1.&] +[s3;%% &] +[s4; &] +[s5;:Upp`:`:Min`(const Range`&`): [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 Range]>_&] +[s5;:Upp`:`:Min`(const Range`&`): [@(0.0.255) const]_[_^Upp`:`:ValueTypeOf^ ValueTypeOf]< +[*@4 Range]>`&_[* Min]([@(0.0.255) const]_[*@4 Range][@(0.0.255) `&]_[*@3 r])&] +[s2;%% Returns the [/ value] of minimal element of [%-*@3 r], using std`::less +to compare elements. If [%-*@3 r] is empty, behavior is undefined +(ASSERT fails in debug).&] +[s3;%% &] +[s4; &] +[s5;:Upp`:`:Min`(const Range`&`,const Upp`:`:ValueTypeOf``&`): [@(0.0.255) temp +late]_<[@(0.0.255) class]_[*@4 Range]>_&] +[s5;:Upp`:`:Min`(const Range`&`,const Upp`:`:ValueTypeOf``&`): [@(0.0.255) cons +t]_[_^Upp`:`:ValueTypeOf^ ValueTypeOf]<[*@4 Range]>`&_[* Min]([@(0.0.255) const]_[*@4 Range +][@(0.0.255) `&]_[*@3 r], [@(0.0.255) const]_[_^Upp`:`:ValueTypeOf^ ValueTypeOf]<[*@4 Range +]>`&_[*@3 def])&] +[s2;%% Returns the [/ value] of minimal element of [%-*@3 r], using std`::less +to compare elements. If [%-*@3 r] is empty, returns [%-*@3 def].&] +[s3;%% &] +[s4; &] +[s5;:Upp`:`:FindMax`(const Range`&`): [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 Range]> +_&] +[s5;:Upp`:`:FindMax`(const Range`&`): [@(0.0.255) int]_[* FindMax]([@(0.0.255) const]_[*@4 Ra +nge][@(0.0.255) `&]_[*@3 r])&] +[s2;%% Returns the index of maximal element of [%-*@3 r], using std`::greater +to compare elements. If [%-*@3 r] is empty, returns `-1.&] +[s3;%% &] +[s4; &] +[s5;:Upp`:`:Max`(const Range`&`): [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 Range]>_&] +[s5;:Upp`:`:Max`(const Range`&`): [@(0.0.255) const]_[_^Upp`:`:ValueTypeOf^ ValueTypeOf]< +[*@4 Range]>`&_[* Max]([@(0.0.255) const]_[*@4 Range][@(0.0.255) `&]_[*@3 r])&] +[s2;%% Returns the [/ value] of maximal element of [%-*@3 r], using std`::less +to compare elements. If [%-*@3 r] is empty, behavior is undefined +(ASSERT fails in debug)..&] +[s3;%% &] +[s4; &] +[s5;:Upp`:`:Max`(const Range`&`,const Upp`:`:ValueTypeOf``&`): [@(0.0.255) temp +late]_<[@(0.0.255) class]_[*@4 Range]>_&] +[s5;:Upp`:`:Max`(const Range`&`,const Upp`:`:ValueTypeOf``&`): [@(0.0.255) cons +t]_[_^Upp`:`:ValueTypeOf^ ValueTypeOf]<[*@4 Range]>`&_[* Max]([@(0.0.255) const]_[*@4 Range +][@(0.0.255) `&]_[*@3 r], [@(0.0.255) const]_[_^Upp`:`:ValueTypeOf^ ValueTypeOf]<[*@4 Range +]>`&_[*@3 def])&] +[s2;%% Returns the [/ value] of maximal element of [%-*@3 r], using std`::less +to compare elements. If [%-*@3 r] is empty, returns [%-*@3 def].&] +[s3;%% &] +[s4; &] +[s5;:Upp`:`:IsEqualRange`(const Range1`&`,const Range2`&`): [@(0.0.255) template]_<[@(0.0.255) c +lass]_[*@4 Range1], [@(0.0.255) class]_[*@4 Range2]>_&] +[s5;:Upp`:`:IsEqualRange`(const Range1`&`,const Range2`&`): [@(0.0.255) bool]_[* IsEqualR +ange]([@(0.0.255) const]_[*@4 Range1][@(0.0.255) `&]_[*@3 a], [@(0.0.255) const]_[*@4 Range2][@(0.0.255) `& +]_[*@3 b])&] +[s2;%% Returns true if [%-*@3 a] and [%-*@3 b] are equal. operator`=`= +is used to compare elements. Ranges are considered equal if they +have the same number of elements and for every element at index +[/ i: ][%-*@3 a]`[i`] `=`= [%-*@3 b]`[i`].&] +[s3;%% &] +[s4; &] +[s5;:Upp`:`:CompareRanges`(const Range1`&`,const Range2`&`): [@(0.0.255) template]_<[@(0.0.255) c +lass]_[*@4 Range1], [@(0.0.255) class]_[*@4 Range2]>_&] +[s5;:Upp`:`:CompareRanges`(const Range1`&`,const Range2`&`): [@(0.0.255) int]_[* CompareR +anges]([@(0.0.255) const]_[*@4 Range1][@(0.0.255) `&]_[*@3 a], [@(0.0.255) const]_[*@4 Range2 +][@(0.0.255) `&]_[*@3 b])&] +[s2;%% Lexicographically compares ranges [%-*@3 a] [%-*@3 b], using SgnCompare +to compare elements. SgnCompare is supposed to return value < +0 if first element is less than second, 0 if they are equal, +>0 otherwise. Returns value <0, 0, >0 if [%-*@3 a] < [%-*@3 b],[%-*@3 +a] `=`= [%-*@3 b],[%-*@3 a] > [%-*@3 b].&] +[s3;%% &] +[s4; &] +[s5;:Upp`:`:FindMatch`(const Range`&`,const C`&`,int`): [@(0.0.255) template]_<[@(0.0.255) c +lass]_[*@4 Range], [@(0.0.255) class]_[*@4 V], [@(0.0.255) class]_[*@4 C]>_&] +[s5;:Upp`:`:FindMatch`(const Range`&`,const C`&`,int`): [@(0.0.255) int]_[* FindMatch]([@(0.0.255) c +onst]_[*@4 Range][@(0.0.255) `&]_[*@3 r], [@(0.0.255) const]_[*@4 C][@(0.0.255) `&]_[*@3 match], + [@(0.0.255) int]_[*@3 from]_`=_[@3 0])&] +[s2;%% Returns the index of first element for which predicate [%-*@3 match] +is true. If not found, returns `-1. Search starts at index [%-*@3 from].&] +[s3;%% &] +[s4; &] +[s5;:Upp`:`:FindIndex`(const Range`&`,const V`&`,int`): [@(0.0.255) template]_<[@(0.0.255) c +lass]_[*@4 Range], [@(0.0.255) class]_[*@4 V]>_&] +[s5;:Upp`:`:FindIndex`(const Range`&`,const V`&`,int`): [@(0.0.255) int]_[* FindIndex]([@(0.0.255) c +onst]_[*@4 Range][@(0.0.255) `&]_[*@3 r], [@(0.0.255) const]_[*@4 V][@(0.0.255) `&]_[*@3 value], + [@(0.0.255) int]_[*@3 from]_`=_[@3 0])&] +[s2;%% Returns the index of first element which is equal to [%-*@3 value]. +If not found, returns `-1. Search starts at index [%-*@3 from].&] +[s3;%% &] +[s4; &] +[s5;:Upp`:`:FindAll`(const Range`&`,Predicate`,int`): [@(0.0.255) template]_<[@(0.0.255) c +lass]_[*@4 Range], [@(0.0.255) class]_[*@4 Predicate]>_&] +[s5;:Upp`:`:FindAll`(const Range`&`,Predicate`,int`): [_^Upp`:`:Vector^ Vector]<[@(0.0.255) i +nt]>_[* FindAll]([@(0.0.255) const]_[*@4 Range][@(0.0.255) `&]_[*@3 r], +[*@4 Predicate]_[*@3 match], [@(0.0.255) int]_[*@3 from]_`=_[@3 0])&] +[s2;%% Returns the Vector of indices of [/ ALL] elements for which +[%-*@3 match] is true. Returned Vector is sorted in ascending order. +Search starts at index [%-*@3 from].&] +[s3;%% &] +[s4; &] +[s5;:Upp`:`:FindLowerBound`(const Range`&`,const T`&`,const Less`&`): [@(0.0.255) templ +ate]_<[@(0.0.255) class]_[*@4 Range], [@(0.0.255) class]_[*@4 T], [@(0.0.255) class]_[*@4 Les +s]>_&] +[s5;:Upp`:`:FindLowerBound`(const Range`&`,const T`&`,const Less`&`): [@(0.0.255) int]_ +[* FindLowerBound]([@(0.0.255) const]_[*@4 Range][@(0.0.255) `&]_[*@3 r], +[@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[*@3 val], [@(0.0.255) const]_[*@4 Less][@(0.0.255) `& +]_[*@3 less])&] +[s5;:Upp`:`:FindLowerBound`(const Range`&`,const T`&`): [@(0.0.255) template]_<[@(0.0.255) c +lass]_[*@4 Range], [@(0.0.255) class]_[*@4 T]>_&] +[s5;:Upp`:`:FindLowerBound`(const Range`&`,const T`&`): [@(0.0.255) int]_[* FindLowerBoun +d]([@(0.0.255) const]_[*@4 Range][@(0.0.255) `&]_[*@3 r], [@(0.0.255) const]_[*@4 T][@(0.0.255) `& +]_[*@3 val])&] +[s2;%% Finds the first index in sorted range [%-*@3 r], which must +be sorted by [%-*@3 less ]predicate (or std`::less in second overload), +where [%-*@3 val] can be inserted without breaking the ordering.&] +[s3;%% &] +[s4; &] +[s5;:Upp`:`:FindUpperBound`(const Range`&`,const T`&`,const L`&`): [@(0.0.255) template +]_<[@(0.0.255) class]_[*@4 Range], [@(0.0.255) class]_[*@4 T], [@(0.0.255) class]_[*@4 L]>_&] +[s5;:Upp`:`:FindUpperBound`(const Range`&`,const T`&`,const L`&`): [@(0.0.255) int]_[* Fi +ndUpperBound]([@(0.0.255) const]_[*@4 Range][@(0.0.255) `&]_[*@3 r], +[@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[*@3 val], [@(0.0.255) const]_[*@4 L][@(0.0.255) `&]_ +[*@3 less])&] +[s5;:Upp`:`:FindUpperBound`(const Range`&`,const T`&`): [@(0.0.255) template]_<[@(0.0.255) c +lass]_[*@4 Range], [@(0.0.255) class]_[*@4 T]>_&] +[s5;:Upp`:`:FindUpperBound`(const Range`&`,const T`&`): [@(0.0.255) int]_[* FindUpperBoun +d]([@(0.0.255) const]_[*@4 Range][@(0.0.255) `&]_[*@3 r], [@(0.0.255) const]_[*@4 T][@(0.0.255) `& +]_[*@3 val])&] +[s2;%% Finds the last index in sorted range [%-*@3 r], which must be +sorted by [%-*@3 less ]predicate (or std`::less in second overload), +where [%-*@3 val] can be inserted without breaking the ordering.&] +[s3; &] +[s4; &] +[s5;:Upp`:`:FindBinary`(const Range`&`,const T`&`,const L`&`): [@(0.0.255) template]_<[@(0.0.255) c +lass]_[*@4 Range], [@(0.0.255) class]_[*@4 T], [@(0.0.255) class]_[*@4 L]>_&] +[s5;:Upp`:`:FindBinary`(const Range`&`,const T`&`,const L`&`): [@(0.0.255) int]_[* FindBi +nary]([@(0.0.255) const]_[*@4 Range][@(0.0.255) `&]_[*@3 r], [@(0.0.255) const]_[*@4 T][@(0.0.255) `& +]_[*@3 val], [@(0.0.255) const]_[*@4 L][@(0.0.255) `&]_[*@3 less])&] +[s5;:Upp`:`:FindBinary`(const Range`&`,const T`&`): [@(0.0.255) template]_<[@(0.0.255) cl +ass]_[*@4 Range], [@(0.0.255) class]_[*@4 T]>_&] +[s5;:Upp`:`:FindBinary`(const Range`&`,const T`&`): [@(0.0.255) int]_[* FindBinary]([@(0.0.255) c +onst]_[*@4 Range][@(0.0.255) `&]_[*@3 r], [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[*@3 val])&] +[s2;%% Finds the index of [%-*@3 val] in sorted range [%-*@3 r], which +must be sorted by [%-*@3 less ]predicate (or std`::less in second +overload). If [%-*@3 val] is not present in [%-*@3 r], return `-1.&] +[s3;%% &] +[s4; &] +[s5;:Upp`:`:LruAdd`(Container`&`,T`,int`): [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 C +ontainer], [@(0.0.255) class]_[*@4 T]>_&] +[s5;:Upp`:`:LruAdd`(Container`&`,T`,int`): [@(0.0.255) void]_[* LruAdd]([*@4 Container][@(0.0.255) `& +]_[*@3 lru], [*@4 T]_[*@3 value], [@(0.0.255) int]_[*@3 limit]_`=_[@3 10])&] +[s2;%% This specialized algorithm is intended to manage Least`-Recently`-Used +lists. [%-*@3 lru] has to be U`+`+ array type (Vector, Array, InVector, +InArray) and represents the list. [%-*@3 value] is the value to +be eventually added to the list, [%-*@3 limit] is the maximum number +of elements in the list. On call, if [%-*@3 value] is present in +the [%-*@3 lru], it is moved to the front. If it is not present, +it is inserted to the front and the size of list is eventually +reduced to [%-*@3 limit], possibly removing the element at the +end of list.&] +[s3;%% &] +[s4; &] +[s5;:Upp`:`:MakeIota`(V`,V`,V`): [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 C]_`=_Vecto +r<[@(0.0.255) int]>, [@(0.0.255) class]_[*@4 V]>_&] +[s5;:Upp`:`:MakeIota`(V`,V`,V`): [*@4 C]_[* MakeIota]([*@4 V]_[*@3 end], +[*@4 V]_[*@3 start]_`=_[@3 0], [*@4 V]_[*@3 step]_`=_[@3 1])&] +[s2;%% Returns a cointainer of type [%-*@4 C] filled with sequence +of numbers starting at [%-*@3 start] and less than [%-*@3 end] increasing +by [%-*@3 step] increments.&] +[s3;%% &] [s0;%% ]] \ No newline at end of file diff --git a/uppsrc/Core/src.tpp/algo_sort$en-us.tpp b/uppsrc/Core/src.tpp/algo_sort_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/algo_sort$en-us.tpp rename to uppsrc/Core/src.tpp/algo_sort_en-us.tpp diff --git a/uppsrc/Core/src.tpp/algo_sorted$en-us.tpp b/uppsrc/Core/src.tpp/algo_sorted_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/algo_sorted$en-us.tpp rename to uppsrc/Core/src.tpp/algo_sorted_en-us.tpp diff --git a/uppsrc/Core/src.tpp/xxHash$en-us.tpp b/uppsrc/Core/src.tpp/xxHash_en-us.tpp similarity index 100% rename from uppsrc/Core/src.tpp/xxHash$en-us.tpp rename to uppsrc/Core/src.tpp/xxHash_en-us.tpp diff --git a/uppsrc/Core/srcdoc.tpp/AboutStream$en-us.tpp b/uppsrc/Core/srcdoc.tpp/AboutStream_en-us.tpp similarity index 100% rename from uppsrc/Core/srcdoc.tpp/AboutStream$en-us.tpp rename to uppsrc/Core/srcdoc.tpp/AboutStream_en-us.tpp diff --git a/uppsrc/Core/srcdoc.tpp/BRC$en-us.tpp b/uppsrc/Core/srcdoc.tpp/BRC_en-us.tpp similarity index 99% rename from uppsrc/Core/srcdoc.tpp/BRC$en-us.tpp rename to uppsrc/Core/srcdoc.tpp/BRC_en-us.tpp index 9aad2562f..1eb69cd5d 100644 --- a/uppsrc/Core/srcdoc.tpp/BRC$en-us.tpp +++ b/uppsrc/Core/srcdoc.tpp/BRC_en-us.tpp @@ -1,13 +1,13 @@ -TITLE("Including binary data using .brc files") -COMPRESSED -120,156,149,87,139,114,219,184,21,253,21,76,156,182,182,67,171,4,64,240,33,117,58,235,60,102,214,219,212,187,147,109,166,221,117,61,17,68,65,50,55,124,168,4,101,71,105,155,111,239,185,0,169,151,189,217,105,156,68,30,10,184,247,220,115,207,61,0,111,4,123,254,60,12,194,147,240,55,254,140,95,155,133,94,151,221,237,77,41,210,116,82,112,46,194,137,230,201,228,251,108,242,229,203,151,17,143,194,116,66,193,56,130,241,48,146,92,112,60,11,35,145,112,149,133,153,74,121,26,202,36,18,42,9,213,120,165,91,93,221,222,232,84,78,206,223,197,216,37,2,117,34,185,228,33,143,69,132,85,161,12,69,196,133,226,105,26,241,68,165,50,139,227,113,174,87,93,209,212,183,55,51,218,23,97,155,196,182,48,73,227,136,99,83,164,132,76,84,132,205,81,4,120,18,137,147,56,73,198,93,209,149,230,246,166,32,220,64,251,138,80,70,65,124,2,116,34,193,206,72,68,113,36,83,33,121,42,68,156,201,40,139,0,155,139,113,209,25,128,156,69,98,162,241,143,182, -41,228,139,84,196,37,24,137,18,37,177,44,193,103,20,102,92,32,105,26,42,133,124,230,211,64,211,12,4,17,73,180,55,70,74,145,40,218,145,70,41,151,73,42,34,17,11,128,8,19,20,74,8,212,120,110,108,142,189,82,240,73,7,88,147,87,223,168,9,199,230,36,72,78,68,152,133,34,78,50,36,5,96,212,44,179,140,203,20,73,35,174,66,46,199,121,51,71,157,51,161,66,233,50,166,104,69,140,200,142,22,21,115,128,22,50,69,202,132,75,137,255,85,148,38,99,107,168,25,93,211,222,222,156,127,115,26,142,194,145,80,234,140,182,103,216,158,202,72,202,40,206,34,30,74,164,65,140,136,56,139,67,180,147,43,145,142,103,218,34,103,135,71,137,103,150,147,154,192,189,76,149,68,234,24,255,161,175,40,80,130,31,145,69,169,148,105,56,206,75,109,109,79,18,17,116,78,69,114,30,112,126,146,16,183,74,138,40,35,114,164,0,201,34,86,25,7,203,42,142,66,49,110,205,191,214,69,107,42,83,131,230,2,242,152,12,45,234,181,8,48,94,138,34,224,2, -98,84,113,28,18,95,10,130,16,82,129,240,144,167,17,16,225,7,109,238,122,53,206,118,53,200,128,203,147,76,68,18,72,178,40,2,3,8,192,51,206,121,152,226,7,149,129,23,167,15,222,11,171,79,239,183,71,1,143,78,18,200,24,157,202,34,74,159,73,226,79,128,126,17,135,10,125,16,126,187,32,214,197,115,240,206,69,74,255,28,243,92,5,28,243,0,136,92,41,212,45,65,181,72,81,187,2,247,210,73,156,39,233,248,218,60,216,215,186,51,189,96,206,95,61,247,74,227,113,192,227,147,144,246,171,52,67,3,121,68,252,201,40,202,68,38,165,18,153,146,113,8,30,173,31,104,218,76,35,229,198,113,27,36,9,120,130,225,66,173,74,161,122,183,13,149,39,156,160,136,52,139,137,133,62,200,244,162,44,106,194,1,101,76,188,24,206,95,189,224,60,161,64,41,134,38,77,227,80,102,32,3,28,132,10,74,135,33,164,104,52,250,44,48,6,228,8,249,71,189,52,211,139,126,90,29,4,82,160,146,42,37,221,98,39,160,3,4,226,100,97,24,227,73,154,98, -154,198,75,189,58,16,160,8,3,17,66,69,240,31,133,161,68,46,200,47,204,200,75,224,12,232,0,172,40,83,94,129,211,139,218,216,206,204,209,124,21,186,178,5,15,4,7,119,208,159,82,105,20,197,192,139,220,9,89,19,181,16,3,172,18,57,254,65,99,94,254,253,225,191,191,123,115,125,241,254,71,118,99,197,132,93,213,121,185,158,23,245,146,205,138,90,183,27,54,215,157,102,107,75,79,70,179,54,103,139,162,52,246,247,183,55,54,164,197,236,125,217,21,21,218,55,125,49,125,17,244,235,254,118,103,174,94,191,9,88,209,177,194,178,123,131,40,70,219,13,235,26,102,170,153,153,31,132,46,106,182,105,214,45,211,171,85,89,228,154,188,209,246,113,40,221,105,191,22,45,194,170,220,156,49,255,233,113,140,216,119,107,139,44,181,53,109,199,180,123,200,30,138,238,142,117,119,134,193,194,76,109,17,144,77,159,17,246,233,51,172,4,8,205,250,70,49,93,207,89,183,89,25,255,188,232,198,125,97,244,145,76,216,203,171,235,203,119,63,157,218,110,62,253,208,85, -171,114,250,225,126,241,49,64,52,124,140,30,186,114,250,236,108,111,3,62,80,57,48,180,128,164,219,229,154,134,155,157,222,252,145,29,6,184,165,154,9,159,158,53,247,132,82,227,27,20,6,174,232,233,106,61,3,17,172,152,99,119,177,40,76,203,154,133,7,137,72,179,77,103,216,244,252,150,61,220,21,249,29,91,53,0,110,153,238,220,206,153,89,22,117,77,204,209,14,122,176,199,243,172,108,242,143,35,118,89,218,38,64,221,13,190,111,135,92,247,186,45,244,12,212,1,130,94,119,13,26,138,86,148,229,134,45,77,109,96,172,102,30,16,69,236,81,45,211,15,165,169,151,221,221,109,208,35,202,155,186,211,232,135,207,79,57,153,95,49,98,211,127,134,143,19,160,237,166,158,67,19,122,209,1,144,107,27,154,50,20,224,65,191,209,136,236,131,81,128,178,88,214,216,225,58,89,97,112,11,208,71,59,34,71,143,101,167,61,191,249,186,109,169,5,80,32,169,96,16,36,106,7,113,214,22,84,49,5,153,255,66,34,114,29,161,208,174,109,69,61,47,238,139,249,154, -64,158,141,92,99,173,65,113,115,230,140,214,16,216,190,97,36,186,26,143,216,105,107,74,20,118,239,162,210,55,64,236,4,189,45,167,159,159,179,225,129,211,235,118,44,180,221,239,154,175,253,80,95,151,142,164,121,67,61,238,238,10,27,48,15,157,212,97,155,202,60,160,169,102,59,82,253,164,208,137,122,36,236,147,194,141,57,164,244,172,218,16,8,63,30,135,201,174,155,7,138,195,114,93,99,32,141,195,246,132,152,105,134,126,93,23,91,109,89,71,117,158,27,107,31,105,115,122,209,123,6,155,173,139,114,78,194,52,237,162,105,43,191,180,54,180,139,86,195,230,86,46,208,210,184,134,85,126,112,93,181,230,147,201,215,29,165,58,34,237,167,189,26,180,183,35,91,84,69,169,91,86,153,252,78,215,133,173,124,76,175,245,3,104,186,109,245,198,146,0,208,109,252,181,235,21,180,227,213,55,51,12,187,231,112,183,209,114,196,128,23,92,144,25,58,11,67,19,150,16,133,101,120,236,35,147,220,105,209,170,109,168,30,234,161,102,64,1,31,170,215,16,128,27,244,253, -230,187,32,218,225,160,27,10,157,79,31,13,171,116,141,104,94,146,142,92,168,181,151,147,55,148,74,231,109,227,6,133,232,91,219,39,77,109,250,225,242,221,187,203,199,222,198,191,102,111,223,146,186,124,71,30,88,85,204,231,80,239,206,232,248,214,194,48,60,230,19,185,146,247,4,80,181,90,119,251,93,119,186,31,92,144,24,238,39,172,248,108,182,181,208,227,199,126,97,169,241,13,106,252,84,84,235,170,95,108,137,137,114,13,178,167,47,24,247,177,118,251,157,230,208,177,251,66,187,200,131,34,15,105,233,157,245,72,198,55,211,219,201,99,139,247,177,73,83,51,215,15,28,37,243,221,177,115,103,202,21,1,219,154,172,46,92,107,183,147,112,212,16,50,214,71,137,251,249,217,2,232,215,29,175,202,155,117,221,61,129,208,31,66,67,198,128,6,244,79,238,68,249,243,158,99,19,57,117,95,12,73,111,207,173,161,248,171,133,155,254,166,130,107,230,56,94,225,234,125,99,189,90,237,208,192,193,213,2,223,183,21,244,189,66,94,208,233,142,167,189,149,135,232,251,204, -186,53,67,87,175,223,191,125,235,207,228,163,64,30,20,51,165,187,48,111,227,125,197,118,30,197,158,94,244,194,240,77,57,160,230,73,86,65,208,18,94,110,247,134,243,55,243,255,166,27,246,118,114,228,234,245,30,38,52,185,52,72,65,220,211,212,108,15,56,119,225,129,218,186,252,206,91,199,208,20,55,76,149,182,31,135,99,231,232,202,52,62,200,246,138,179,139,255,12,30,240,215,203,31,255,210,91,128,1,88,80,109,105,254,167,231,191,122,187,57,138,61,152,38,108,205,29,118,134,142,231,242,24,43,129,34,46,107,15,243,209,57,57,40,136,205,241,74,148,35,216,230,204,17,137,250,173,183,249,126,225,54,237,96,32,199,126,238,188,145,57,159,116,243,120,96,118,211,63,64,214,151,75,112,230,165,186,104,202,178,121,32,128,187,67,138,20,147,183,134,174,60,227,175,24,196,192,214,241,124,62,250,254,171,115,188,91,245,212,28,127,219,60,24,84,23,120,181,97,88,115,28,2,187,187,219,246,210,182,36,185,152,79,171,166,5,104,182,104,155,106,95,5,205,236,23, -80,122,84,11,78,189,246,9,172,174,109,79,122,158,63,252,182,110,113,234,200,221,234,252,168,142,219,97,80,220,61,103,107,2,232,225,103,211,54,120,59,50,109,5,112,132,214,118,45,248,183,236,174,41,231,131,82,118,87,47,223,230,218,29,163,46,101,131,129,88,233,238,238,108,184,200,206,12,78,84,186,51,119,221,176,221,107,175,23,140,110,161,192,123,111,77,27,119,107,176,158,166,217,134,30,193,152,119,41,142,166,18,47,55,36,101,175,160,158,70,76,199,254,141,232,229,207,130,142,247,159,175,126,216,187,190,110,175,131,190,54,66,98,87,38,47,22,148,177,191,169,211,154,83,139,119,25,84,84,206,233,20,249,92,224,34,60,167,104,51,252,42,166,23,132,241,81,113,213,81,93,35,66,185,167,141,222,148,142,173,126,95,223,120,205,218,108,239,167,222,86,251,19,55,111,170,85,235,143,74,111,231,116,81,166,47,154,182,192,139,69,223,142,17,123,75,211,69,73,255,239,183,37,34,236,200,83,94,249,59,122,185,9,6,83,253,251,213,181,20,187,59,187,166,83,7, -220,82,254,221,117,173,160,119,68,127,11,219,94,219,142,15,141,239,95,126,215,187,202,186,29,196,113,240,230,89,209,200,140,216,251,154,110,156,111,175,174,223,255,35,32,91,221,127,195,220,157,234,7,59,237,238,197,104,139,14,180,250,235,142,191,4,213,160,175,173,220,227,149,182,61,86,103,132,121,238,168,70,244,214,245,111,134,121,118,253,179,190,129,30,23,133,65,2,154,244,133,166,23,74,58,23,232,23,104,34,96,86,111,8,235,130,238,97,102,169,253,123,15,250,232,247,34,25,225,28,4,125,251,63,70,167,205,3, - +TITLE("Including binary data using .brc files") +COMPRESSED +120,156,149,87,139,114,219,184,21,253,21,76,156,182,182,67,171,4,64,240,33,117,58,235,60,102,214,219,212,187,147,109,166,221,117,61,17,68,65,50,55,124,168,4,101,71,105,155,111,239,185,0,169,151,189,217,105,156,68,30,10,184,247,220,115,207,61,0,111,4,123,254,60,12,194,147,240,55,254,140,95,155,133,94,151,221,237,77,41,210,116,82,112,46,194,137,230,201,228,251,108,242,229,203,151,17,143,194,116,66,193,56,130,241,48,146,92,112,60,11,35,145,112,149,133,153,74,121,26,202,36,18,42,9,213,120,165,91,93,221,222,232,84,78,206,223,197,216,37,2,117,34,185,228,33,143,69,132,85,161,12,69,196,133,226,105,26,241,68,165,50,139,227,113,174,87,93,209,212,183,55,51,218,23,97,155,196,182,48,73,227,136,99,83,164,132,76,84,132,205,81,4,120,18,137,147,56,73,198,93,209,149,230,246,166,32,220,64,251,138,80,70,65,124,2,116,34,193,206,72,68,113,36,83,33,121,42,68,156,201,40,139,0,155,139,113,209,25,128,156,69,98,162,241,143,182, +41,228,139,84,196,37,24,137,18,37,177,44,193,103,20,102,92,32,105,26,42,133,124,230,211,64,211,12,4,17,73,180,55,70,74,145,40,218,145,70,41,151,73,42,34,17,11,128,8,19,20,74,8,212,120,110,108,142,189,82,240,73,7,88,147,87,223,168,9,199,230,36,72,78,68,152,133,34,78,50,36,5,96,212,44,179,140,203,20,73,35,174,66,46,199,121,51,71,157,51,161,66,233,50,166,104,69,140,200,142,22,21,115,128,22,50,69,202,132,75,137,255,85,148,38,99,107,168,25,93,211,222,222,156,127,115,26,142,194,145,80,234,140,182,103,216,158,202,72,202,40,206,34,30,74,164,65,140,136,56,139,67,180,147,43,145,142,103,218,34,103,135,71,137,103,150,147,154,192,189,76,149,68,234,24,255,161,175,40,80,130,31,145,69,169,148,105,56,206,75,109,109,79,18,17,116,78,69,114,30,112,126,146,16,183,74,138,40,35,114,164,0,201,34,86,25,7,203,42,142,66,49,110,205,191,214,69,107,42,83,131,230,2,242,152,12,45,234,181,8,48,94,138,34,224,2, +98,84,113,28,18,95,10,130,16,82,129,240,144,167,17,16,225,7,109,238,122,53,206,118,53,200,128,203,147,76,68,18,72,178,40,2,3,8,192,51,206,121,152,226,7,149,129,23,167,15,222,11,171,79,239,183,71,1,143,78,18,200,24,157,202,34,74,159,73,226,79,128,126,17,135,10,125,16,126,187,32,214,197,115,240,206,69,74,255,28,243,92,5,28,243,0,136,92,41,212,45,65,181,72,81,187,2,247,210,73,156,39,233,248,218,60,216,215,186,51,189,96,206,95,61,247,74,227,113,192,227,147,144,246,171,52,67,3,121,68,252,201,40,202,68,38,165,18,153,146,113,8,30,173,31,104,218,76,35,229,198,113,27,36,9,120,130,225,66,173,74,161,122,183,13,149,39,156,160,136,52,139,137,133,62,200,244,162,44,106,194,1,101,76,188,24,206,95,189,224,60,161,64,41,134,38,77,227,80,102,32,3,28,132,10,74,135,33,164,104,52,250,44,48,6,228,8,249,71,189,52,211,139,126,90,29,4,82,160,146,42,37,221,98,39,160,3,4,226,100,97,24,227,73,154,98, +154,198,75,189,58,16,160,8,3,17,66,69,240,31,133,161,68,46,200,47,204,200,75,224,12,232,0,172,40,83,94,129,211,139,218,216,206,204,209,124,21,186,178,5,15,4,7,119,208,159,82,105,20,197,192,139,220,9,89,19,181,16,3,172,18,57,254,65,99,94,254,253,225,191,191,123,115,125,241,254,71,118,99,197,132,93,213,121,185,158,23,245,146,205,138,90,183,27,54,215,157,102,107,75,79,70,179,54,103,139,162,52,246,247,183,55,54,164,197,236,125,217,21,21,218,55,125,49,125,17,244,235,254,118,103,174,94,191,9,88,209,177,194,178,123,131,40,70,219,13,235,26,102,170,153,153,31,132,46,106,182,105,214,45,211,171,85,89,228,154,188,209,246,113,40,221,105,191,22,45,194,170,220,156,49,255,233,113,140,216,119,107,139,44,181,53,109,199,180,123,200,30,138,238,142,117,119,134,193,194,76,109,17,144,77,159,17,246,233,51,172,4,8,205,250,70,49,93,207,89,183,89,25,255,188,232,198,125,97,244,145,76,216,203,171,235,203,119,63,157,218,110,62,253,208,85, +171,114,250,225,126,241,49,64,52,124,140,30,186,114,250,236,108,111,3,62,80,57,48,180,128,164,219,229,154,134,155,157,222,252,145,29,6,184,165,154,9,159,158,53,247,132,82,227,27,20,6,174,232,233,106,61,3,17,172,152,99,119,177,40,76,203,154,133,7,137,72,179,77,103,216,244,252,150,61,220,21,249,29,91,53,0,110,153,238,220,206,153,89,22,117,77,204,209,14,122,176,199,243,172,108,242,143,35,118,89,218,38,64,221,13,190,111,135,92,247,186,45,244,12,212,1,130,94,119,13,26,138,86,148,229,134,45,77,109,96,172,102,30,16,69,236,81,45,211,15,165,169,151,221,221,109,208,35,202,155,186,211,232,135,207,79,57,153,95,49,98,211,127,134,143,19,160,237,166,158,67,19,122,209,1,144,107,27,154,50,20,224,65,191,209,136,236,131,81,128,178,88,214,216,225,58,89,97,112,11,208,71,59,34,71,143,101,167,61,191,249,186,109,169,5,80,32,169,96,16,36,106,7,113,214,22,84,49,5,153,255,66,34,114,29,161,208,174,109,69,61,47,238,139,249,154, +64,158,141,92,99,173,65,113,115,230,140,214,16,216,190,97,36,186,26,143,216,105,107,74,20,118,239,162,210,55,64,236,4,189,45,167,159,159,179,225,129,211,235,118,44,180,221,239,154,175,253,80,95,151,142,164,121,67,61,238,238,10,27,48,15,157,212,97,155,202,60,160,169,102,59,82,253,164,208,137,122,36,236,147,194,141,57,164,244,172,218,16,8,63,30,135,201,174,155,7,138,195,114,93,99,32,141,195,246,132,152,105,134,126,93,23,91,109,89,71,117,158,27,107,31,105,115,122,209,123,6,155,173,139,114,78,194,52,237,162,105,43,191,180,54,180,139,86,195,230,86,46,208,210,184,134,85,126,112,93,181,230,147,201,215,29,165,58,34,237,167,189,26,180,183,35,91,84,69,169,91,86,153,252,78,215,133,173,124,76,175,245,3,104,186,109,245,198,146,0,208,109,252,181,235,21,180,227,213,55,51,12,187,231,112,183,209,114,196,128,23,92,144,25,58,11,67,19,150,16,133,101,120,236,35,147,220,105,209,170,109,168,30,234,161,102,64,1,31,170,215,16,128,27,244,253, +230,187,32,218,225,160,27,10,157,79,31,13,171,116,141,104,94,146,142,92,168,181,151,147,55,148,74,231,109,227,6,133,232,91,219,39,77,109,250,225,242,221,187,203,199,222,198,191,102,111,223,146,186,124,71,30,88,85,204,231,80,239,206,232,248,214,194,48,60,230,19,185,146,247,4,80,181,90,119,251,93,119,186,31,92,144,24,238,39,172,248,108,182,181,208,227,199,126,97,169,241,13,106,252,84,84,235,170,95,108,137,137,114,13,178,167,47,24,247,177,118,251,157,230,208,177,251,66,187,200,131,34,15,105,233,157,245,72,198,55,211,219,201,99,139,247,177,73,83,51,215,15,28,37,243,221,177,115,103,202,21,1,219,154,172,46,92,107,183,147,112,212,16,50,214,71,137,251,249,217,2,232,215,29,175,202,155,117,221,61,129,208,31,66,67,198,128,6,244,79,238,68,249,243,158,99,19,57,117,95,12,73,111,207,173,161,248,171,133,155,254,166,130,107,230,56,94,225,234,125,99,189,90,237,208,192,193,213,2,223,183,21,244,189,66,94,208,233,142,167,189,149,135,232,251,204, +186,53,67,87,175,223,191,125,235,207,228,163,64,30,20,51,165,187,48,111,227,125,197,118,30,197,158,94,244,194,240,77,57,160,230,73,86,65,208,18,94,110,247,134,243,55,243,255,166,27,246,118,114,228,234,245,30,38,52,185,52,72,65,220,211,212,108,15,56,119,225,129,218,186,252,206,91,199,208,20,55,76,149,182,31,135,99,231,232,202,52,62,200,246,138,179,139,255,12,30,240,215,203,31,255,210,91,128,1,88,80,109,105,254,167,231,191,122,187,57,138,61,152,38,108,205,29,118,134,142,231,242,24,43,129,34,46,107,15,243,209,57,57,40,136,205,241,74,148,35,216,230,204,17,137,250,173,183,249,126,225,54,237,96,32,199,126,238,188,145,57,159,116,243,120,96,118,211,63,64,214,151,75,112,230,165,186,104,202,178,121,32,128,187,67,138,20,147,183,134,174,60,227,175,24,196,192,214,241,124,62,250,254,171,115,188,91,245,212,28,127,219,60,24,84,23,120,181,97,88,115,28,2,187,187,219,246,210,182,36,185,152,79,171,166,5,104,182,104,155,106,95,5,205,236,23, +80,122,84,11,78,189,246,9,172,174,109,79,122,158,63,252,182,110,113,234,200,221,234,252,168,142,219,97,80,220,61,103,107,2,232,225,103,211,54,120,59,50,109,5,112,132,214,118,45,248,183,236,174,41,231,131,82,118,87,47,223,230,218,29,163,46,101,131,129,88,233,238,238,108,184,200,206,12,78,84,186,51,119,221,176,221,107,175,23,140,110,161,192,123,111,77,27,119,107,176,158,166,217,134,30,193,152,119,41,142,166,18,47,55,36,101,175,160,158,70,76,199,254,141,232,229,207,130,142,247,159,175,126,216,187,190,110,175,131,190,54,66,98,87,38,47,22,148,177,191,169,211,154,83,139,119,25,84,84,206,233,20,249,92,224,34,60,167,104,51,252,42,166,23,132,241,81,113,213,81,93,35,66,185,167,141,222,148,142,173,126,95,223,120,205,218,108,239,167,222,86,251,19,55,111,170,85,235,143,74,111,231,116,81,166,47,154,182,192,139,69,223,142,17,123,75,211,69,73,255,239,183,37,34,236,200,83,94,249,59,122,185,9,6,83,253,251,213,181,20,187,59,187,166,83,7, +220,82,254,221,117,173,160,119,68,127,11,219,94,219,142,15,141,239,95,126,215,187,202,186,29,196,113,240,230,89,209,200,140,216,251,154,110,156,111,175,174,223,255,35,32,91,221,127,195,220,157,234,7,59,237,238,197,104,139,14,180,250,235,142,191,4,213,160,175,173,220,227,149,182,61,86,103,132,121,238,168,70,244,214,245,111,134,121,118,253,179,190,129,30,23,133,65,2,154,244,133,166,23,74,58,23,232,23,104,34,96,86,111,8,235,130,238,97,102,169,253,123,15,250,232,247,34,25,225,28,4,125,251,63,70,167,205,3, + diff --git a/uppsrc/Core/srcdoc.tpp/Caveats$en-us.tpp b/uppsrc/Core/srcdoc.tpp/Caveats_en-us.tpp similarity index 97% rename from uppsrc/Core/srcdoc.tpp/Caveats$en-us.tpp rename to uppsrc/Core/srcdoc.tpp/Caveats_en-us.tpp index 35780b3c0..473ce5313 100644 --- a/uppsrc/Core/srcdoc.tpp/Caveats$en-us.tpp +++ b/uppsrc/Core/srcdoc.tpp/Caveats_en-us.tpp @@ -1,119 +1,119 @@ -topic "U++ traps and pitfalls"; -[2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;*@(64)2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,2#27521748481378242620020725143825:desc] -[a83;*R6 $$3,0#31310162474203024125188417583966:caption] -[l288;i1121;b17;O9;~~~.1408;2 $$4,0#10431211400427159095818037425705:param] -[i448;a25;kKO9;*@(64)2 $$5,0#37138531426314131252341829483370:item] -[*+117 $$6,6#14700283458701402223321329925657:header] -[l416;2 $$7,7#55548704457842300043401641954952:nested`-desc] -[l288;i448;a25;kO9;*2 $$8,8#64691275497409617375831514634295:nested`-class] -[{_}%EN-US -[s3; U`+`+ traps and pitfalls&] -[s0; &] -[ {{5000:5000l/33r/33t/33b/33 [s0; [C@5 Vector x;]&] -[s0; [C@5 ....]&] -[s0; [C@5 x.At(i) `= x`[q`];]] -::l/25r/25t/15b/15 [s0; Problem: At invalidates references to Vector; if x`[q`] gets -evaluated first, the reference can be later invalidated by At. -(Note: Array does not have the same problem).] -::l/33r/33t/33b/33 [s0; [C@5 Vector x;]&] -[s0; [C@5 ....]&] -[s0; [C@5 const Foo`& s `= x.Top(); ]&] -[s0; [C@5 x.Add() `= s;]&] -[s0; [C@5 ....]&] -[s0; [C@5 x.Add(x.Top());]&] -[s0; [C@5 ....]&] -[s0; [C@5 x.Add(x`[0`]);]] -::l/25r/25t/15b/15 [s0; Very similar to above problem, only more explicit.] -::l/33r/33t/33b/33 [s0; [C@5 void MyFn(Array x);]] -::l/25r/25t/15b/15 [s0; This is in most cases a bug `- U`+`+ containers have `"[^topic`:`/`/Core`/srcdoc`/pick`_`$en`-us^ p -ick transfer semantics]`", means that such function destroys -the real parameter. (Rarely, however, this can be on purpose).] -::l/33r/33t/33b/33 [s0; [C@5 int x `= Null;]&] -[s0; [C@5 double y `= x;]] -::l/25r/25t/15b/15 [s0; C`+`+ knows nothing about U`+`+ Null concept, y will not be -a Null. Note that Value is aware about the Null, so this code:&] -[s0; &] -[s0; [C@5 int x `= Null;]&] -[s0; [C@5 Value v `= x;]&] -[s0; [C@5 double y `= v;]&] -[s0; &] -[s0; behaves as expected.] -::l/33r/33t/33b/33 [s0; [C@5 #include ]&] -[s0; [C@5 using namespace Upp;]&] -[s0;C@5 &] -[s0; [C@5 class TestWindow : public TopWindow]&] -[s0; [C@5 `{]&] -[s0; [C@5 `};]&] -[s0;C@5 &] -[s0; [C@5 EditString es;]&] -[s0;C@5 &] -[s0; [C@5 GUI`_APP`_MAIN]&] -[s0; [C@5 `{]&] -[s0; [C@5 -|TestWindow().Run();]&] -[s0; [C@5 `}]] -::^l/25r/25t/15b/15 [s0; Warning: You cannot define widgets as global variable. This is -rather host platform dependent technical issue rather than deliberate -decision.&] -[s0; &] -[s0; The code might run OK on some platforms, but crash on others. -Means, just do not do it...&] -[s0; &] -[s0; This applies for application static Ctrl`'s as well. Problem -is that Ctrl`'s may initialize/instantiate only `*after`* the -GUI framework has finished loading and initializing. static or -global Ctrl`'s are usually instantiated before, permanently breaking -the GUI init sequence.&] -[s0; &] -[s0; Solution: use a static method to return an internal static Ctrl.&] -[s0; &] -[s0; [C EditString`& MyApp`::GetEditString()]&] -[s0; [C `{]&] -[s0; [C -|static EditString `_;]&] -[s0; [C -|return `_;]&] -[s0; [C `}]&] -[s0; &] -[s0; Or even better: the Upp [C Single<>] template&] -[s0;C &] -[s0; [C EditString`& es `= Single();]&] -[s0;C ] -::=l/33r/33t/33b/33 [s0; [C@5 INITBLOCK]&] -[s0; [C@5 `{]&] -[s0; [C@5 ...]&] -[s0; [C@5 `}]&] -[s0;C@5 &] -[s0; [C@5 EXITBLOCK]&] -[s0; [C@5 `{]&] -[s0; [C@5 ...]&] -[s0; [C@5 `}]&] -[s0;C@5 ] -::^l/25r/25t/15b/15 [s0; Upp provides a nice solution to do init / deinit work of your -package`'s static or global stuff (i.e. if it`'s not Plain Ol`' -Data and needs some function calls).&] -[s0; &] -[s0; If your INITBLOCK / EXITBLOCK resides in a .cpp file and the -file contains code that is actually referenced (used) somewhere -else, everything works as expected, no precautions need to be -taken. If not, the linker will drop the file, your init code -won`'t be invoked.&] -[s0; &] -[s0; This is because the INITBLOCK / EXITBLOCK actually registers -itself in an init facility from upper Upp code. So no code ref -downwards is added.&] -[s0; &] -[s0; [/ Deprecated Solution:]&] -[s0; [/ If nothing else references some code in the file, make it a -.icpp file.]&] -[s0;/ &] -[s0; [/ .icpp files are forced to be linked no matter what. See ][/^topic`:`/`/ide`/app`/Files`$en`-us^ f -iles ][/ description section in manual.]&] -[s0;/ &] -[s0; Solution:&] -[s0; Use INITIALIZE([/ MyName]); in package header and INITIALIZER(PNGRaster) -`{ .. `} in .cpp where INITBLOCK / EXITBLOCK are. Possibly, you -can replace INITBLOCK by INITIALIZER body. Including header file -into main project ensures that file with INITIALIZER will be -linked into binary.]}}&] -[s0; &] +topic "U++ traps and pitfalls"; +[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;*@(64)2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,2#27521748481378242620020725143825:desc] +[a83;*R6 $$3,0#31310162474203024125188417583966:caption] +[l288;i1121;b17;O9;~~~.1408;2 $$4,0#10431211400427159095818037425705:param] +[i448;a25;kKO9;*@(64)2 $$5,0#37138531426314131252341829483370:item] +[*+117 $$6,6#14700283458701402223321329925657:header] +[l416;2 $$7,7#55548704457842300043401641954952:nested`-desc] +[l288;i448;a25;kO9;*2 $$8,8#64691275497409617375831514634295:nested`-class] +[{_}%EN-US +[s3; U`+`+ traps and pitfalls&] +[s0; &] +[ {{5000:5000l/33r/33t/33b/33 [s0; [C@5 Vector x;]&] +[s0; [C@5 ....]&] +[s0; [C@5 x.At(i) `= x`[q`];]] +::l/25r/25t/15b/15 [s0; Problem: At invalidates references to Vector; if x`[q`] gets +evaluated first, the reference can be later invalidated by At. +(Note: Array does not have the same problem).] +::l/33r/33t/33b/33 [s0; [C@5 Vector x;]&] +[s0; [C@5 ....]&] +[s0; [C@5 const Foo`& s `= x.Top(); ]&] +[s0; [C@5 x.Add() `= s;]&] +[s0; [C@5 ....]&] +[s0; [C@5 x.Add(x.Top());]&] +[s0; [C@5 ....]&] +[s0; [C@5 x.Add(x`[0`]);]] +::l/25r/25t/15b/15 [s0; Very similar to above problem, only more explicit.] +::l/33r/33t/33b/33 [s0; [C@5 void MyFn(Array x);]] +::l/25r/25t/15b/15 [s0; This is in most cases a bug `- U`+`+ containers have `"[^topic`:`/`/Core`/srcdoc`/pick`_`$en`-us^ p +ick transfer semantics]`", means that such function destroys +the real parameter. (Rarely, however, this can be on purpose).] +::l/33r/33t/33b/33 [s0; [C@5 int x `= Null;]&] +[s0; [C@5 double y `= x;]] +::l/25r/25t/15b/15 [s0; C`+`+ knows nothing about U`+`+ Null concept, y will not be +a Null. Note that Value is aware about the Null, so this code:&] +[s0; &] +[s0; [C@5 int x `= Null;]&] +[s0; [C@5 Value v `= x;]&] +[s0; [C@5 double y `= v;]&] +[s0; &] +[s0; behaves as expected.] +::l/33r/33t/33b/33 [s0; [C@5 #include ]&] +[s0; [C@5 using namespace Upp;]&] +[s0;C@5 &] +[s0; [C@5 class TestWindow : public TopWindow]&] +[s0; [C@5 `{]&] +[s0; [C@5 `};]&] +[s0;C@5 &] +[s0; [C@5 EditString es;]&] +[s0;C@5 &] +[s0; [C@5 GUI`_APP`_MAIN]&] +[s0; [C@5 `{]&] +[s0; [C@5 -|TestWindow().Run();]&] +[s0; [C@5 `}]] +::^l/25r/25t/15b/15 [s0; Warning: You cannot define widgets as global variable. This is +rather host platform dependent technical issue rather than deliberate +decision.&] +[s0; &] +[s0; The code might run OK on some platforms, but crash on others. +Means, just do not do it...&] +[s0; &] +[s0; This applies for application static Ctrl`'s as well. Problem +is that Ctrl`'s may initialize/instantiate only `*after`* the +GUI framework has finished loading and initializing. static or +global Ctrl`'s are usually instantiated before, permanently breaking +the GUI init sequence.&] +[s0; &] +[s0; Solution: use a static method to return an internal static Ctrl.&] +[s0; &] +[s0; [C EditString`& MyApp`::GetEditString()]&] +[s0; [C `{]&] +[s0; [C -|static EditString `_;]&] +[s0; [C -|return `_;]&] +[s0; [C `}]&] +[s0; &] +[s0; Or even better: the Upp [C Single<>] template&] +[s0;C &] +[s0; [C EditString`& es `= Single();]&] +[s0;C ] +::=l/33r/33t/33b/33 [s0; [C@5 INITBLOCK]&] +[s0; [C@5 `{]&] +[s0; [C@5 ...]&] +[s0; [C@5 `}]&] +[s0;C@5 &] +[s0; [C@5 EXITBLOCK]&] +[s0; [C@5 `{]&] +[s0; [C@5 ...]&] +[s0; [C@5 `}]&] +[s0;C@5 ] +::^l/25r/25t/15b/15 [s0; Upp provides a nice solution to do init / deinit work of your +package`'s static or global stuff (i.e. if it`'s not Plain Ol`' +Data and needs some function calls).&] +[s0; &] +[s0; If your INITBLOCK / EXITBLOCK resides in a .cpp file and the +file contains code that is actually referenced (used) somewhere +else, everything works as expected, no precautions need to be +taken. If not, the linker will drop the file, your init code +won`'t be invoked.&] +[s0; &] +[s0; This is because the INITBLOCK / EXITBLOCK actually registers +itself in an init facility from upper Upp code. So no code ref +downwards is added.&] +[s0; &] +[s0; [/ Deprecated Solution:]&] +[s0; [/ If nothing else references some code in the file, make it a +.icpp file.]&] +[s0;/ &] +[s0; [/ .icpp files are forced to be linked no matter what. See ][/^topic`:`/`/ide`/app`/Files`$en`-us^ f +iles ][/ description section in manual.]&] +[s0;/ &] +[s0; Solution:&] +[s0; Use INITIALIZE([/ MyName]); in package header and INITIALIZER(PNGRaster) +`{ .. `} in .cpp where INITBLOCK / EXITBLOCK are. Possibly, you +can replace INITBLOCK by INITIALIZER body. Including header file +into main project ensures that file with INITIALIZER will be +linked into binary.]}}&] +[s0; &] [s0; ]] \ No newline at end of file diff --git a/uppsrc/Core/srcdoc.tpp/Charset$en-us.tpp b/uppsrc/Core/srcdoc.tpp/Charset_en-us.tpp similarity index 98% rename from uppsrc/Core/srcdoc.tpp/Charset$en-us.tpp rename to uppsrc/Core/srcdoc.tpp/Charset_en-us.tpp index 3f35758a5..2e696f4d4 100644 --- a/uppsrc/Core/srcdoc.tpp/Charset$en-us.tpp +++ b/uppsrc/Core/srcdoc.tpp/Charset_en-us.tpp @@ -1,47 +1,47 @@ -topic "Charset and encoding issues"; -[2 $$0,0#00000000000000000000000000000000:Default] -[l288;i1120;a17;O9;~~~.1408;2 $$1,0#10431211400427159095818037425705:param] -[a83;*R6 $$2,5#31310162474203024125188417583966:caption] -[b83;*2 $$3,5#07864147445237544204411237157677:title] -[i288;b167;a42;O9;C2 $$4,6#40027414424643823182269349404212:item] -[b42;a42;2 $$5,5#45413000475342174754091244180557:text] -[l288;a17;2 $$6,6#27521748481378242620020725143825:desc] -[l321;t246;C@5;1 $$7,7#20902679421464641399138805415013:code] -[b2503;2 $$8,0#65142375456100023862071332075487:separator] -[*@(0.0.255)2 $$9,0#83433469410354161042741608181528:base] -[t4167;C2 $$10,0#37138531426314131251341829483380:class] -[l288;a17;*1 $$11,11#70004532496200323422659154056402:requirement] -[i417;b42;a42;O9;~~~.416;2 $$12,12#10566046415157235020018451313112:tparam] -[b167;C2 $$13,13#92430459443460461911108080531343:item1] -[i288;a42;O9;C2 $$14,14#77422149456609303542238260500223:item2] -[*@2$(0.128.128)2 $$15,15#34511555403152284025741354420178:NewsDate] -[l321;*C$7;2 $$16,16#03451589433145915344929335295360:result] -[l321;b83;a83;*C$7;2 $$17,17#07531550463529505371228428965313:result`-line] -[l160;t4167;*C+117 $$18,5#88603949442205825958800053222425:package`-title] -[2 $$19,0#53580023442335529039900623488521:gap] -[t4167;C2 $$20,20#70211524482531209251820423858195:class`-nested] -[{_}%EN-US -[s2; Charset and encoding issues&] -[s3; [3 UTF`-8EE]&] -[s5; U`+`+ is not using pure UTF`-8, but our extension that we have -named `"UTF`-8EE`" as for `"Error Escaped`".&] -[s5; The thing is that not every sequence of bytes is valid UTF`-8. -Now the issues is how to react to this problem when loading file -into TheIDE (or other editor). Of course, error message is one -solution, but we sometimes have to process text files that have -several section with different encodings, UTF`-8 being one of -them. It is of course cool to have editor capable of dealing -with this.&] -[s5; So let us introduce UTF`-8EE. The idea is this `- when invalid -input sequence is encountered, it is `"escaped`" into the unicode -private area (0xe000 `- 0xf8ff) `- all bytes are escaped as 0xEE[@(0.0.255) xx] -unicode characters (another source of that `"EE`" in the name). -For this purpose, valid utf8 sequences that would yield 0xee00`-0xeeff -values are also considered invalid in utf8ee and escaped (but -as it is private area, no real characters can be there). Now -when unicode text is converted back to utf`-8, those escaped -bytes are simply interpreted with their original value. This -basically means that any text can be converted from UTF`-8EE -to 16bit unicode (UCS2) and back and the result is equal to the -original text.&] +topic "Charset and encoding issues"; +[2 $$0,0#00000000000000000000000000000000:Default] +[l288;i1120;a17;O9;~~~.1408;2 $$1,0#10431211400427159095818037425705:param] +[a83;*R6 $$2,5#31310162474203024125188417583966:caption] +[b83;*2 $$3,5#07864147445237544204411237157677:title] +[i288;b167;a42;O9;C2 $$4,6#40027414424643823182269349404212:item] +[b42;a42;2 $$5,5#45413000475342174754091244180557:text] +[l288;a17;2 $$6,6#27521748481378242620020725143825:desc] +[l321;t246;C@5;1 $$7,7#20902679421464641399138805415013:code] +[b2503;2 $$8,0#65142375456100023862071332075487:separator] +[*@(0.0.255)2 $$9,0#83433469410354161042741608181528:base] +[t4167;C2 $$10,0#37138531426314131251341829483380:class] +[l288;a17;*1 $$11,11#70004532496200323422659154056402:requirement] +[i417;b42;a42;O9;~~~.416;2 $$12,12#10566046415157235020018451313112:tparam] +[b167;C2 $$13,13#92430459443460461911108080531343:item1] +[i288;a42;O9;C2 $$14,14#77422149456609303542238260500223:item2] +[*@2$(0.128.128)2 $$15,15#34511555403152284025741354420178:NewsDate] +[l321;*C$7;2 $$16,16#03451589433145915344929335295360:result] +[l321;b83;a83;*C$7;2 $$17,17#07531550463529505371228428965313:result`-line] +[l160;t4167;*C+117 $$18,5#88603949442205825958800053222425:package`-title] +[2 $$19,0#53580023442335529039900623488521:gap] +[t4167;C2 $$20,20#70211524482531209251820423858195:class`-nested] +[{_}%EN-US +[s2; Charset and encoding issues&] +[s3; [3 UTF`-8EE]&] +[s5; U`+`+ is not using pure UTF`-8, but our extension that we have +named `"UTF`-8EE`" as for `"Error Escaped`".&] +[s5; The thing is that not every sequence of bytes is valid UTF`-8. +Now the issues is how to react to this problem when loading file +into TheIDE (or other editor). Of course, error message is one +solution, but we sometimes have to process text files that have +several section with different encodings, UTF`-8 being one of +them. It is of course cool to have editor capable of dealing +with this.&] +[s5; So let us introduce UTF`-8EE. The idea is this `- when invalid +input sequence is encountered, it is `"escaped`" into the unicode +private area (0xe000 `- 0xf8ff) `- all bytes are escaped as 0xEE[@(0.0.255) xx] +unicode characters (another source of that `"EE`" in the name). +For this purpose, valid utf8 sequences that would yield 0xee00`-0xeeff +values are also considered invalid in utf8ee and escaped (but +as it is private area, no real characters can be there). Now +when unicode text is converted back to utf`-8, those escaped +bytes are simply interpreted with their original value. This +basically means that any text can be converted from UTF`-8EE +to 16bit unicode (UCS2) and back and the result is equal to the +original text.&] [s0; ] \ No newline at end of file diff --git a/uppsrc/Core/srcdoc.tpp/Configuration$en-us.tpp b/uppsrc/Core/srcdoc.tpp/Configuration_en-us.tpp similarity index 98% rename from uppsrc/Core/srcdoc.tpp/Configuration$en-us.tpp rename to uppsrc/Core/srcdoc.tpp/Configuration_en-us.tpp index 017ed7b0c..17c7f0fa2 100644 --- a/uppsrc/Core/srcdoc.tpp/Configuration$en-us.tpp +++ b/uppsrc/Core/srcdoc.tpp/Configuration_en-us.tpp @@ -1,170 +1,170 @@ -TITLE("About storing configuration") -COMPRESSED -120,156,189,88,105,119,219,198,21,253,43,99,203,142,69,7, -162,49,131,157,76,122,226,210,178,173,83,91,201,177,236,166, -57,170,142,49,36,135,20,34,44,44,22,83,108,154,252,246, -222,55,3,146,0,165,198,137,63,20,62,22,183,121,219,125, -247,45,192,165,96,143,30,217,150,125,100,127,230,26,189,80, -11,217,164,245,213,101,42,194,112,156,4,182,59,150,60,24, -127,31,141,127,251,237,183,97,20,137,49,169,226,80,197,109, -215,225,130,115,215,182,93,17,112,47,178,35,47,228,161,237, -4,174,240,2,219,27,173,100,41,179,171,75,25,58,227,167, -239,124,72,9,203,59,114,184,195,109,238,11,23,167,108,199, -22,46,23,30,15,67,151,7,94,232,68,190,63,154,201,85, -157,20,249,213,229,148,228,32,229,64,202,14,66,223,229,144, -113,61,225,4,158,11,89,215,229,28,239,185,23,248,65,48, -170,147,58,85,144,225,126,48,150,174,24,79,200,75,215,242, -143,224,157,8,32,234,10,215,119,157,80,56,60,20,194,143, -28,55,114,225,54,23,163,164,86,112,114,10,25,146,35,49, -15,6,93,207,229,14,240,112,3,207,193,177,0,175,174,29, -113,1,171,161,237,121,48,168,110,183,32,17,62,36,231,195, -156,8,60,58,29,186,33,119,130,80,184,194,23,112,192,14, -16,36,89,247,70,115,85,205,32,231,8,62,174,225,210,120, -242,157,55,230,16,14,172,224,72,216,145,45,252,32,130,65, -56,139,128,157,40,226,78,8,131,46,247,108,238,140,102,197, -156,130,20,158,237,140,33,19,34,11,62,20,107,72,60,159, -195,95,225,132,176,24,112,199,193,95,207,13,131,81,165,40, -15,117,81,94,93,62,253,238,216,30,218,67,225,121,3,242, -55,130,120,232,184,142,227,250,145,203,109,7,86,160,195,37, -184,124,27,153,228,158,8,71,83,89,193,100,237,18,176,19, -202,60,177,8,176,59,161,231,192,178,143,63,200,40,194,115, -128,140,136,220,208,113,66,123,52,75,101,85,117,224,121,74, -33,114,110,113,126,20,16,170,158,35,220,136,160,113,4,224, -21,190,23,113,224,235,249,174,45,70,165,250,87,147,148,42, -83,57,0,78,64,140,241,54,57,45,9,225,139,33,161,176, -184,0,13,61,223,183,9,45,15,92,16,142,7,184,109,30, -186,240,8,255,144,224,186,229,161,230,134,230,5,119,44,238, -28,69,194,117,224,73,228,186,0,0,10,120,196,57,183,67, -252,67,100,128,69,51,131,195,5,29,132,49,111,196,93,139, -187,71,1,8,140,60,69,46,153,143,28,130,79,0,125,225, -219,30,210,32,140,184,32,208,197,35,192,206,69,72,255,7, -36,239,89,28,133,0,15,185,231,33,108,7,64,139,16,161, -123,64,222,209,228,230,65,56,58,87,235,234,133,172,85,203, -150,167,147,71,134,102,220,183,184,127,100,147,188,23,70,72, -31,119,9,62,199,117,35,17,57,142,39,34,207,241,109,192, -88,153,58,38,97,170,37,93,135,59,37,129,197,3,148,21, -66,245,60,4,175,197,16,120,192,201,21,17,70,62,129,208, -42,137,79,210,36,39,63,192,139,177,161,194,211,201,215,156, -7,164,40,68,181,132,161,111,59,17,176,0,4,182,7,154, -163,19,132,200,51,210,44,80,3,212,10,102,55,114,169,226, -147,182,78,127,249,248,235,227,211,243,147,15,23,236,178,18, -227,175,145,46,246,124,90,52,53,171,64,212,36,95,178,89, -145,47,146,101,3,226,162,23,124,117,117,89,217,99,118,182, -96,155,162,97,107,153,215,172,46,216,178,96,69,206,154,138, -142,151,106,153,84,117,185,97,139,38,159,145,72,197,142,215, -138,205,139,60,126,82,179,52,185,81,172,190,86,25,251,164, -112,38,107,102,215,22,187,46,114,85,213,233,102,96,145,214, -248,73,154,178,69,146,207,233,92,82,178,117,41,87,43,85, -86,44,201,217,164,40,213,179,31,147,220,17,147,34,27,94, -143,90,119,232,37,24,179,203,199,182,125,98,219,236,162,214, -142,191,82,53,142,190,83,75,243,249,24,129,84,53,155,93, -203,146,197,79,63,201,180,81,22,235,125,183,146,53,188,121, -253,183,211,159,24,213,90,252,241,70,109,88,252,237,213,129, -122,58,16,127,124,243,253,228,249,155,248,227,219,231,147,215, -103,231,167,131,241,225,169,4,208,224,218,57,113,150,215,255, -103,15,166,69,145,194,131,139,123,97,48,31,226,175,144,102, -122,115,224,199,29,223,14,117,255,79,87,191,208,55,66,135, -16,155,203,90,126,206,151,158,241,59,138,255,188,47,159,138, -100,14,95,94,168,84,213,202,184,115,8,18,244,117,98,253, -140,234,150,144,120,121,93,172,21,120,206,146,126,185,52,80, -129,207,37,43,214,121,191,188,192,251,84,85,186,12,216,181, -252,164,200,92,50,147,105,186,97,245,186,96,171,162,170,146, -105,146,38,117,162,170,81,223,22,31,48,26,132,241,9,170, -22,253,90,205,15,52,31,87,69,166,234,107,42,12,93,132, -8,41,254,86,99,203,86,50,41,97,180,40,25,234,236,90, -174,42,70,103,217,109,150,14,90,229,98,192,166,73,46,81, -177,247,117,131,246,229,253,239,153,79,140,210,245,181,172,89, -252,100,150,42,153,171,50,126,66,69,141,50,103,149,202,43, -106,12,248,149,98,63,134,47,50,223,160,47,48,149,86,106, -192,102,50,103,105,81,220,80,89,21,90,130,144,194,153,121, -11,10,16,210,61,131,58,151,54,178,134,23,232,29,5,113, -91,206,231,20,93,86,204,147,197,134,37,117,69,206,213,56, -80,181,77,75,178,42,201,86,80,72,16,50,53,79,208,251, -134,236,130,16,75,50,85,193,32,252,79,232,180,90,52,169, -165,67,233,255,162,110,229,12,45,108,107,155,81,7,132,167, -146,200,53,100,103,96,182,90,169,124,94,81,163,212,185,215, -30,220,214,67,246,215,123,128,181,232,24,69,89,224,79,9, -42,228,115,139,172,80,191,108,93,45,117,227,85,64,17,131, -137,61,67,18,203,10,101,50,85,51,217,104,40,149,46,38, -141,220,28,67,92,123,183,72,139,53,142,212,107,165,140,254, -126,146,164,105,186,108,85,22,75,12,106,86,76,127,134,220, -22,36,147,167,50,145,105,242,239,150,173,219,22,63,236,48, -193,209,92,36,50,252,30,89,186,19,164,197,254,46,35,233, -196,172,104,210,57,219,134,180,181,216,111,252,127,135,151,69, -249,86,174,190,185,104,187,153,121,253,11,123,83,200,249,89, -158,188,4,89,250,221,151,232,147,203,76,13,198,125,191,230, -10,52,2,123,183,195,230,67,157,164,195,217,106,53,100,47, -193,32,93,23,232,152,50,95,42,76,58,89,17,179,1,208, -92,97,205,218,51,61,75,42,141,88,79,201,53,155,130,155, -103,237,120,187,53,100,79,178,12,108,67,6,211,205,144,189, -39,46,109,35,52,9,173,64,205,101,242,73,229,123,190,215, -77,137,153,154,212,166,20,164,134,237,196,192,150,73,248,121, -70,121,100,152,153,41,58,135,33,147,198,81,234,140,231,168, -9,172,67,76,13,151,195,209,31,69,113,182,88,82,207,235, -130,25,63,204,54,176,49,196,79,241,67,3,34,84,180,147, -23,108,67,113,129,117,36,133,19,67,76,65,72,188,59,157, -156,158,191,127,113,246,46,126,104,177,243,38,77,119,114,212, -250,209,132,113,250,2,126,234,81,185,147,58,123,177,59,190, -75,150,170,103,195,126,222,126,218,118,76,96,98,34,172,168, -86,52,106,153,204,27,234,161,150,206,64,82,199,79,42,150, -23,232,104,75,98,250,52,85,153,197,126,110,192,141,121,193, -250,93,178,15,80,27,29,92,219,250,77,192,124,243,13,235, -134,246,109,252,144,190,2,54,168,158,225,30,9,125,44,254, -103,30,63,108,101,79,254,163,99,235,159,7,8,251,131,59, -116,22,199,15,46,16,219,93,224,45,242,96,48,216,105,60, -189,5,15,51,157,117,28,60,45,75,226,172,252,116,103,141, -123,176,205,217,30,192,239,23,84,106,101,91,103,85,82,55, -134,206,107,93,127,75,85,155,230,147,129,207,56,152,25,118, -81,161,236,11,25,159,128,62,237,141,120,183,63,168,110,77, -39,74,238,105,57,104,127,187,9,183,233,164,80,147,127,223, -231,167,250,87,124,149,46,76,18,183,140,206,36,70,25,53, -135,98,65,105,222,152,6,78,210,20,115,83,183,179,18,121, -86,21,13,4,248,208,172,86,85,57,99,199,122,10,78,126, -32,67,37,77,135,127,188,125,99,62,12,14,168,133,225,119, -95,143,238,31,162,238,160,129,35,135,224,140,238,105,201,44, -169,55,12,107,5,49,46,201,225,138,14,20,55,100,77,166, -87,0,20,175,90,105,185,245,117,145,30,182,99,56,75,131, -41,95,226,23,211,138,41,221,120,71,6,234,205,74,177,231, -171,213,68,139,12,169,0,48,225,100,210,43,253,125,55,49, -109,84,55,0,61,71,251,60,63,232,4,175,62,156,197,31, -159,255,240,3,109,54,103,231,237,151,241,47,237,27,186,246, -165,160,243,131,194,53,126,104,138,238,202,154,174,157,139,173, -239,221,223,64,108,18,56,189,197,29,67,117,220,42,27,176, -248,43,172,92,15,168,219,188,44,139,204,244,110,45,107,109, -13,238,40,191,189,238,35,126,10,5,119,152,175,249,244,160, -211,178,232,122,215,228,111,55,112,180,53,51,56,240,241,193, -5,81,250,125,241,197,158,52,43,20,192,231,93,137,127,237, -115,234,188,168,251,83,175,98,93,80,244,52,232,184,102,129, -68,9,74,116,59,43,119,200,199,163,209,69,59,183,209,12, -145,246,66,23,42,141,177,106,161,202,253,174,208,221,12,90, -194,145,13,154,112,116,219,137,193,121,140,225,167,100,54,64, -139,111,75,170,45,227,110,255,213,227,156,30,26,152,237,104, -199,65,210,85,21,237,136,197,93,223,186,107,8,7,33,58, -85,173,37,184,58,55,51,23,155,21,233,59,160,40,252,104, -32,181,103,87,143,158,187,175,193,69,246,236,153,46,181,166, -210,67,96,183,133,183,245,72,152,104,0,204,211,182,187,53, -14,149,216,193,84,251,182,99,68,223,55,236,128,61,190,208, -200,152,59,42,130,104,124,87,226,112,60,246,120,166,71,224, -158,10,7,226,218,216,189,25,189,99,248,190,122,53,63,177, -199,157,209,252,184,103,174,99,141,86,249,118,171,173,154,197, -2,77,76,25,196,116,179,37,172,244,93,9,51,237,99,93, -148,55,120,29,118,55,58,51,8,230,200,202,28,253,141,110, -128,204,214,158,84,157,93,196,44,200,53,233,148,166,39,201, -218,176,189,72,177,166,66,231,193,29,142,196,86,73,153,96, -178,84,166,217,155,254,222,125,212,176,160,129,215,221,81,177, -171,43,179,237,116,87,49,171,35,162,231,0,213,149,101,138, -201,218,21,89,155,174,103,204,84,87,91,106,189,111,15,70, -197,116,160,111,26,128,27,198,121,169,73,189,157,60,139,237, -128,40,24,141,59,64,20,63,156,211,147,146,4,243,236,240, -118,9,59,193,90,135,138,27,22,84,40,201,99,166,161,12, -169,241,67,73,183,197,155,7,46,166,140,147,251,238,41,219, -45,222,194,206,83,179,28,249,175,42,212,23,42,225,38,215, -48,51,169,159,247,220,43,132,130,76,113,11,165,215,255,226, -15,120,131,155,38,192,125,63,210,253,2,110,239,186,247,215, -187,54,142,87,105,49,149,105,91,190,189,157,125,191,175,127, -185,188,197,38,64,127,42,103,55,236,71,12,195,151,105,83, -93,31,172,175,168,164,221,213,85,246,2,45,242,119,28,154, -96,235,164,77,230,66,233,112,161,165,43,252,166,152,221,236, -7,163,126,252,177,165,153,57,118,252,30,18,183,7,207,57, -238,70,220,146,240,207,201,108,91,69,215,161,170,211,55,182, +TITLE("About storing configuration") +COMPRESSED +120,156,189,88,105,119,219,198,21,253,43,99,203,142,69,7, +162,49,131,157,76,122,226,210,178,173,83,91,201,177,236,166, +57,170,142,49,36,135,20,34,44,44,22,83,108,154,252,246, +222,55,3,146,0,165,198,137,63,20,62,22,183,121,219,125, +247,45,192,165,96,143,30,217,150,125,100,127,230,26,189,80, +11,217,164,245,213,101,42,194,112,156,4,182,59,150,60,24, +127,31,141,127,251,237,183,97,20,137,49,169,226,80,197,109, +215,225,130,115,215,182,93,17,112,47,178,35,47,228,161,237, +4,174,240,2,219,27,173,100,41,179,171,75,25,58,227,167, +239,124,72,9,203,59,114,184,195,109,238,11,23,167,108,199, +22,46,23,30,15,67,151,7,94,232,68,190,63,154,201,85, +157,20,249,213,229,148,228,32,229,64,202,14,66,223,229,144, +113,61,225,4,158,11,89,215,229,28,239,185,23,248,65,48, +170,147,58,85,144,225,126,48,150,174,24,79,200,75,215,242, +143,224,157,8,32,234,10,215,119,157,80,56,60,20,194,143, +28,55,114,225,54,23,163,164,86,112,114,10,25,146,35,49, +15,6,93,207,229,14,240,112,3,207,193,177,0,175,174,29, +113,1,171,161,237,121,48,168,110,183,32,17,62,36,231,195, +156,8,60,58,29,186,33,119,130,80,184,194,23,112,192,14, +16,36,89,247,70,115,85,205,32,231,8,62,174,225,210,120, +242,157,55,230,16,14,172,224,72,216,145,45,252,32,130,65, +56,139,128,157,40,226,78,8,131,46,247,108,238,140,102,197, +156,130,20,158,237,140,33,19,34,11,62,20,107,72,60,159, +195,95,225,132,176,24,112,199,193,95,207,13,131,81,165,40, +15,117,81,94,93,62,253,238,216,30,218,67,225,121,3,242, +55,130,120,232,184,142,227,250,145,203,109,7,86,160,195,37, +184,124,27,153,228,158,8,71,83,89,193,100,237,18,176,19, +202,60,177,8,176,59,161,231,192,178,143,63,200,40,194,115, +128,140,136,220,208,113,66,123,52,75,101,85,117,224,121,74, +33,114,110,113,126,20,16,170,158,35,220,136,160,113,4,224, +21,190,23,113,224,235,249,174,45,70,165,250,87,147,148,42, +83,57,0,78,64,140,241,54,57,45,9,225,139,33,161,176, +184,0,13,61,223,183,9,45,15,92,16,142,7,184,109,30, +186,240,8,255,144,224,186,229,161,230,134,230,5,119,44,238, +28,69,194,117,224,73,228,186,0,0,10,120,196,57,183,67, +252,67,100,128,69,51,131,195,5,29,132,49,111,196,93,139, +187,71,1,8,140,60,69,46,153,143,28,130,79,0,125,225, +219,30,210,32,140,184,32,208,197,35,192,206,69,72,255,7, +36,239,89,28,133,0,15,185,231,33,108,7,64,139,16,161, +123,64,222,209,228,230,65,56,58,87,235,234,133,172,85,203, +150,167,147,71,134,102,220,183,184,127,100,147,188,23,70,72, +31,119,9,62,199,117,35,17,57,142,39,34,207,241,109,192, +88,153,58,38,97,170,37,93,135,59,37,129,197,3,148,21, +66,245,60,4,175,197,16,120,192,201,21,17,70,62,129,208, +42,137,79,210,36,39,63,192,139,177,161,194,211,201,215,156, +7,164,40,68,181,132,161,111,59,17,176,0,4,182,7,154, +163,19,132,200,51,210,44,80,3,212,10,102,55,114,169,226, +147,182,78,127,249,248,235,227,211,243,147,15,23,236,178,18, +227,175,145,46,246,124,90,52,53,171,64,212,36,95,178,89, +145,47,146,101,3,226,162,23,124,117,117,89,217,99,118,182, +96,155,162,97,107,153,215,172,46,216,178,96,69,206,154,138, +142,151,106,153,84,117,185,97,139,38,159,145,72,197,142,215, +138,205,139,60,126,82,179,52,185,81,172,190,86,25,251,164, +112,38,107,102,215,22,187,46,114,85,213,233,102,96,145,214, +248,73,154,178,69,146,207,233,92,82,178,117,41,87,43,85, +86,44,201,217,164,40,213,179,31,147,220,17,147,34,27,94, +143,90,119,232,37,24,179,203,199,182,125,98,219,236,162,214, +142,191,82,53,142,190,83,75,243,249,24,129,84,53,155,93, +203,146,197,79,63,201,180,81,22,235,125,183,146,53,188,121, +253,183,211,159,24,213,90,252,241,70,109,88,252,237,213,129, +122,58,16,127,124,243,253,228,249,155,248,227,219,231,147,215, +103,231,167,131,241,225,169,4,208,224,218,57,113,150,215,255, +103,15,166,69,145,194,131,139,123,97,48,31,226,175,144,102, +122,115,224,199,29,223,14,117,255,79,87,191,208,55,66,135, +16,155,203,90,126,206,151,158,241,59,138,255,188,47,159,138, +100,14,95,94,168,84,213,202,184,115,8,18,244,117,98,253, +140,234,150,144,120,121,93,172,21,120,206,146,126,185,52,80, +129,207,37,43,214,121,191,188,192,251,84,85,186,12,216,181, +252,164,200,92,50,147,105,186,97,245,186,96,171,162,170,146, +105,146,38,117,162,170,81,223,22,31,48,26,132,241,9,170, +22,253,90,205,15,52,31,87,69,166,234,107,42,12,93,132, +8,41,254,86,99,203,86,50,41,97,180,40,25,234,236,90, +174,42,70,103,217,109,150,14,90,229,98,192,166,73,46,81, +177,247,117,131,246,229,253,239,153,79,140,210,245,181,172,89, +252,100,150,42,153,171,50,126,66,69,141,50,103,149,202,43, +106,12,248,149,98,63,134,47,50,223,160,47,48,149,86,106, +192,102,50,103,105,81,220,80,89,21,90,130,144,194,153,121, +11,10,16,210,61,131,58,151,54,178,134,23,232,29,5,113, +91,206,231,20,93,86,204,147,197,134,37,117,69,206,213,56, +80,181,77,75,178,42,201,86,80,72,16,50,53,79,208,251, +134,236,130,16,75,50,85,193,32,252,79,232,180,90,52,169, +165,67,233,255,162,110,229,12,45,108,107,155,81,7,132,167, +146,200,53,100,103,96,182,90,169,124,94,81,163,212,185,215, +30,220,214,67,246,215,123,128,181,232,24,69,89,224,79,9, +42,228,115,139,172,80,191,108,93,45,117,227,85,64,17,131, +137,61,67,18,203,10,101,50,85,51,217,104,40,149,46,38, +141,220,28,67,92,123,183,72,139,53,142,212,107,165,140,254, +126,146,164,105,186,108,85,22,75,12,106,86,76,127,134,220, +22,36,147,167,50,145,105,242,239,150,173,219,22,63,236,48, +193,209,92,36,50,252,30,89,186,19,164,197,254,46,35,233, +196,172,104,210,57,219,134,180,181,216,111,252,127,135,151,69, +249,86,174,190,185,104,187,153,121,253,11,123,83,200,249,89, +158,188,4,89,250,221,151,232,147,203,76,13,198,125,191,230, +10,52,2,123,183,195,230,67,157,164,195,217,106,53,100,47, +193,32,93,23,232,152,50,95,42,76,58,89,17,179,1,208, +92,97,205,218,51,61,75,42,141,88,79,201,53,155,130,155, +103,237,120,187,53,100,79,178,12,108,67,6,211,205,144,189, +39,46,109,35,52,9,173,64,205,101,242,73,229,123,190,215, +77,137,153,154,212,166,20,164,134,237,196,192,150,73,248,121, +70,121,100,152,153,41,58,135,33,147,198,81,234,140,231,168, +9,172,67,76,13,151,195,209,31,69,113,182,88,82,207,235, +130,25,63,204,54,176,49,196,79,241,67,3,34,84,180,147, +23,108,67,113,129,117,36,133,19,67,76,65,72,188,59,157, +156,158,191,127,113,246,46,126,104,177,243,38,77,119,114,212, +250,209,132,113,250,2,126,234,81,185,147,58,123,177,59,190, +75,150,170,103,195,126,222,126,218,118,76,96,98,34,172,168, +86,52,106,153,204,27,234,161,150,206,64,82,199,79,42,150, +23,232,104,75,98,250,52,85,153,197,126,110,192,141,121,193, +250,93,178,15,80,27,29,92,219,250,77,192,124,243,13,235, +134,246,109,252,144,190,2,54,168,158,225,30,9,125,44,254, +103,30,63,108,101,79,254,163,99,235,159,7,8,251,131,59, +116,22,199,15,46,16,219,93,224,45,242,96,48,216,105,60, +189,5,15,51,157,117,28,60,45,75,226,172,252,116,103,141, +123,176,205,217,30,192,239,23,84,106,101,91,103,85,82,55, +134,206,107,93,127,75,85,155,230,147,129,207,56,152,25,118, +81,161,236,11,25,159,128,62,237,141,120,183,63,168,110,77, +39,74,238,105,57,104,127,187,9,183,233,164,80,147,127,223, +231,167,250,87,124,149,46,76,18,183,140,206,36,70,25,53, +135,98,65,105,222,152,6,78,210,20,115,83,183,179,18,121, +86,21,13,4,248,208,172,86,85,57,99,199,122,10,78,126, +32,67,37,77,135,127,188,125,99,62,12,14,168,133,225,119, +95,143,238,31,162,238,160,129,35,135,224,140,238,105,201,44, +169,55,12,107,5,49,46,201,225,138,14,20,55,100,77,166, +87,0,20,175,90,105,185,245,117,145,30,182,99,56,75,131, +41,95,226,23,211,138,41,221,120,71,6,234,205,74,177,231, +171,213,68,139,12,169,0,48,225,100,210,43,253,125,55,49, +109,84,55,0,61,71,251,60,63,232,4,175,62,156,197,31, +159,255,240,3,109,54,103,231,237,151,241,47,237,27,186,246, +165,160,243,131,194,53,126,104,138,238,202,154,174,157,139,173, +239,221,223,64,108,18,56,189,197,29,67,117,220,42,27,176, +248,43,172,92,15,168,219,188,44,139,204,244,110,45,107,109, +13,238,40,191,189,238,35,126,10,5,119,152,175,249,244,160, +211,178,232,122,215,228,111,55,112,180,53,51,56,240,241,193, +5,81,250,125,241,197,158,52,43,20,192,231,93,137,127,237, +115,234,188,168,251,83,175,98,93,80,244,52,232,184,102,129, +68,9,74,116,59,43,119,200,199,163,209,69,59,183,209,12, +145,246,66,23,42,141,177,106,161,202,253,174,208,221,12,90, +194,145,13,154,112,116,219,137,193,121,140,225,167,100,54,64, +139,111,75,170,45,227,110,255,213,227,156,30,26,152,237,104, +199,65,210,85,21,237,136,197,93,223,186,107,8,7,33,58, +85,173,37,184,58,55,51,23,155,21,233,59,160,40,252,104, +32,181,103,87,143,158,187,175,193,69,246,236,153,46,181,166, +210,67,96,183,133,183,245,72,152,104,0,204,211,182,187,53, +14,149,216,193,84,251,182,99,68,223,55,236,128,61,190,208, +200,152,59,42,130,104,124,87,226,112,60,246,120,166,71,224, +158,10,7,226,218,216,189,25,189,99,248,190,122,53,63,177, +199,157,209,252,184,103,174,99,141,86,249,118,171,173,154,197, +2,77,76,25,196,116,179,37,172,244,93,9,51,237,99,93, +148,55,120,29,118,55,58,51,8,230,200,202,28,253,141,110, +128,204,214,158,84,157,93,196,44,200,53,233,148,166,39,201, +218,176,189,72,177,166,66,231,193,29,142,196,86,73,153,96, +178,84,166,217,155,254,222,125,212,176,160,129,215,221,81,177, +171,43,179,237,116,87,49,171,35,162,231,0,213,149,101,138, +201,218,21,89,155,174,103,204,84,87,91,106,189,111,15,70, +197,116,160,111,26,128,27,198,121,169,73,189,157,60,139,237, +128,40,24,141,59,64,20,63,156,211,147,146,4,243,236,240, +118,9,59,193,90,135,138,27,22,84,40,201,99,166,161,12, +169,241,67,73,183,197,155,7,46,166,140,147,251,238,41,219, +45,222,194,206,83,179,28,249,175,42,212,23,42,225,38,215, +48,51,169,159,247,220,43,132,130,76,113,11,165,215,255,226, +15,120,131,155,38,192,125,63,210,253,2,110,239,186,247,215, +187,54,142,87,105,49,149,105,91,190,189,157,125,191,175,127, +185,188,197,38,64,127,42,103,55,236,71,12,195,151,105,83, +93,31,172,175,168,164,221,213,85,246,2,45,242,119,28,154, +96,235,164,77,230,66,233,112,161,165,43,252,166,152,221,236, +7,163,126,252,177,165,153,57,118,252,30,18,183,7,207,57, +238,70,220,146,240,207,201,108,91,69,215,161,170,211,55,182, 187,160,195,182,175,87,255,5,12,24,224,58, \ No newline at end of file diff --git a/uppsrc/Core/srcdoc.tpp/Core2016$en-us.tpp b/uppsrc/Core/srcdoc.tpp/Core2016_en-us.tpp similarity index 100% rename from uppsrc/Core/srcdoc.tpp/Core2016$en-us.tpp rename to uppsrc/Core/srcdoc.tpp/Core2016_en-us.tpp diff --git a/uppsrc/Core/srcdoc.tpp/DLI$en-us.tpp b/uppsrc/Core/srcdoc.tpp/DLI_en-us.tpp similarity index 97% rename from uppsrc/Core/srcdoc.tpp/DLI$en-us.tpp rename to uppsrc/Core/srcdoc.tpp/DLI_en-us.tpp index f1c7234d1..e0e6e0d4a 100644 --- a/uppsrc/Core/srcdoc.tpp/DLI$en-us.tpp +++ b/uppsrc/Core/srcdoc.tpp/DLI_en-us.tpp @@ -1,81 +1,81 @@ -topic "Runtime dynamic linking using .dli files"; -[2 $$0,0#00000000000000000000000000000000:Default] -[l288;i1120;a17;O9;~~~.1408;2 $$1,0#10431211400427159095818037425705:param] -[a83;*R6 $$2,5#31310162474203024125188417583966:caption] -[b83;*4 $$3,5#07864147445237544204411237157677:title] -[i288;O9;C2 $$4,6#40027414424643823182269349404212:item] -[b42;a42;2 $$5,5#45413000475342174754091244180557:text] -[l288;b17;a17;2 $$6,6#27521748481378242620020725143825:desc] -[l321;t246;C@5;1 $$7,7#20902679421464641399138805415013:code] -[b2503;2 $$8,0#65142375456100023862071332075487:separator] -[*@(0.0.255)2 $$9,0#83433469410354161042741608181528:base] -[t4167;C2 $$10,0#37138531426314131251341829483380:class] -[l288;a17;*1 $$11,11#70004532496200323422659154056402:requirement] -[i417;b42;a42;O9;~~~.416;2 $$12,12#10566046415157235020018451313112:tparam] -[b167;C2 $$13,13#92430459443460461911108080531343:item1] -[i288;a42;O9;C2 $$14,14#77422149456609303542238260500223:item2] -[*@2$(0.128.128)2 $$15,15#34511555403152284025741354420178:NewsDate] -[l321;*C$7;2 $$16,16#03451589433145915344929335295360:result] -[l321;b83;a83;*C$7;2 $$17,17#07531550463529505371228428965313:result`-line] -[l160;t4167;*C+117 $$18,5#88603949442205825958800053222425:package`-title] -[2 $$19,0#53580023442335529039900623488521:gap] -[t4167;C2 $$20,20#70211524482531209251820423858195:class`-nested] -[b50;2 $$21,21#03324558446220344731010354752573:Par] -[{_}%EN-US -[s2; Runtime dynamic linking using .dli files&] -[s0; In Ultimate`+`+ you can use .dli file to automatize generating -.dll wrapper objects. To create such object you have to provide -`".dli`" file with content like (actual example is for Lotus -Notes client .dll):&] -[s0; &] -[s7; FN(WORD, OSLoadString, (HMODULE hModule, STATUS StringCode, -char `*retBuffer, WORD BufferLength))&] -[s7; FN(WORD, OSTranslate, (WORD TranslateMode, char far `*In, -WORD InLength, char far `*Out, WORD OutLength))&] -[s7; FN(STATUS, NotesInitExtended, (int argc, char `*`*argv))&] -[s7; FN(STATUS, OSPathNetConstruct, (char `*PortName, char `*ServerName, -char far `*FileName, char `*retPathName))&] -[s7; FN(STATUS, NSFDbOpen, (char far `*PathName, DBHANDLE far `*rethDB))&] -[s7; FN(STATUS, NSFDbClose, (DBHANDLE hDB))&] -[s7; ...........&] -[s0; &] -[s0; `- basically, this is somewhat `"reparsed`" header file for -.dll. Then place&] -[s0; &] -[s7; #define DLLFILENAME `"nnotes.dll`"&] -[s7; #define DLIMODULE NOTES&] -[s7; #define DLIHEADER &] -[s7; #define DLLCALL LNPUBLIC&] -[s7; #include &] -[s0; &] -[s0; to common header file and&] -[s0; &] -[s7; #define DLLFILENAME `"nnotes.dll`"&] -[s7; #define DLIMODULE NOTES&] -[s7; #define DLIHEADER &] -[s7; #define DLLCALL LNPUBLIC&] -[s7; #include &] -[s0; &] -[s0; to some .cpp file or, if you need that .dll just in single .cpp -file, you can use&] -[s0; &] -[s7; #define DLLFILENAME `"nnotes.dll`"&] -[s7; #define DLIMODULE NOTES&] -[s7; #define DLIHEADER &] -[s7; #define DLLCALL LNPUBLIC&] -[s7; #include &] -[s0; &] -[s0; in .cpp (this is equivalent of placing both above variants to -.cpp).&] -[s0; &] -[s0; This creates global function NOTES() returning the object instance -that has all .dll functions described in .dli file defined as -its methods. Moreover, it has operator bool that can be used -to test whether .dll is present:&] -[s0; &] -[s7; char h`[256`];&] -[s7; if(NOTES())&] -[s7; -|NOTES().OSLoadString(GetModuleHandle(NULL), ERR(nError), h, -255);&] -[s0; &] +topic "Runtime dynamic linking using .dli files"; +[2 $$0,0#00000000000000000000000000000000:Default] +[l288;i1120;a17;O9;~~~.1408;2 $$1,0#10431211400427159095818037425705:param] +[a83;*R6 $$2,5#31310162474203024125188417583966:caption] +[b83;*4 $$3,5#07864147445237544204411237157677:title] +[i288;O9;C2 $$4,6#40027414424643823182269349404212:item] +[b42;a42;2 $$5,5#45413000475342174754091244180557:text] +[l288;b17;a17;2 $$6,6#27521748481378242620020725143825:desc] +[l321;t246;C@5;1 $$7,7#20902679421464641399138805415013:code] +[b2503;2 $$8,0#65142375456100023862071332075487:separator] +[*@(0.0.255)2 $$9,0#83433469410354161042741608181528:base] +[t4167;C2 $$10,0#37138531426314131251341829483380:class] +[l288;a17;*1 $$11,11#70004532496200323422659154056402:requirement] +[i417;b42;a42;O9;~~~.416;2 $$12,12#10566046415157235020018451313112:tparam] +[b167;C2 $$13,13#92430459443460461911108080531343:item1] +[i288;a42;O9;C2 $$14,14#77422149456609303542238260500223:item2] +[*@2$(0.128.128)2 $$15,15#34511555403152284025741354420178:NewsDate] +[l321;*C$7;2 $$16,16#03451589433145915344929335295360:result] +[l321;b83;a83;*C$7;2 $$17,17#07531550463529505371228428965313:result`-line] +[l160;t4167;*C+117 $$18,5#88603949442205825958800053222425:package`-title] +[2 $$19,0#53580023442335529039900623488521:gap] +[t4167;C2 $$20,20#70211524482531209251820423858195:class`-nested] +[b50;2 $$21,21#03324558446220344731010354752573:Par] +[{_}%EN-US +[s2; Runtime dynamic linking using .dli files&] +[s0; In Ultimate`+`+ you can use .dli file to automatize generating +.dll wrapper objects. To create such object you have to provide +`".dli`" file with content like (actual example is for Lotus +Notes client .dll):&] +[s0; &] +[s7; FN(WORD, OSLoadString, (HMODULE hModule, STATUS StringCode, +char `*retBuffer, WORD BufferLength))&] +[s7; FN(WORD, OSTranslate, (WORD TranslateMode, char far `*In, +WORD InLength, char far `*Out, WORD OutLength))&] +[s7; FN(STATUS, NotesInitExtended, (int argc, char `*`*argv))&] +[s7; FN(STATUS, OSPathNetConstruct, (char `*PortName, char `*ServerName, +char far `*FileName, char `*retPathName))&] +[s7; FN(STATUS, NSFDbOpen, (char far `*PathName, DBHANDLE far `*rethDB))&] +[s7; FN(STATUS, NSFDbClose, (DBHANDLE hDB))&] +[s7; ...........&] +[s0; &] +[s0; `- basically, this is somewhat `"reparsed`" header file for +.dll. Then place&] +[s0; &] +[s7; #define DLLFILENAME `"nnotes.dll`"&] +[s7; #define DLIMODULE NOTES&] +[s7; #define DLIHEADER &] +[s7; #define DLLCALL LNPUBLIC&] +[s7; #include &] +[s0; &] +[s0; to common header file and&] +[s0; &] +[s7; #define DLLFILENAME `"nnotes.dll`"&] +[s7; #define DLIMODULE NOTES&] +[s7; #define DLIHEADER &] +[s7; #define DLLCALL LNPUBLIC&] +[s7; #include &] +[s0; &] +[s0; to some .cpp file or, if you need that .dll just in single .cpp +file, you can use&] +[s0; &] +[s7; #define DLLFILENAME `"nnotes.dll`"&] +[s7; #define DLIMODULE NOTES&] +[s7; #define DLIHEADER &] +[s7; #define DLLCALL LNPUBLIC&] +[s7; #include &] +[s0; &] +[s0; in .cpp (this is equivalent of placing both above variants to +.cpp).&] +[s0; &] +[s0; This creates global function NOTES() returning the object instance +that has all .dll functions described in .dli file defined as +its methods. Moreover, it has operator bool that can be used +to test whether .dll is present:&] +[s0; &] +[s7; char h`[256`];&] +[s7; if(NOTES())&] +[s7; -|NOTES().OSLoadString(GetModuleHandle(NULL), ERR(nError), h, +255);&] +[s0; &] [s0;3 ]] \ No newline at end of file diff --git a/uppsrc/Core/srcdoc.tpp/Decisions$en-us.tpp b/uppsrc/Core/srcdoc.tpp/Decisions_en-us.tpp similarity index 98% rename from uppsrc/Core/srcdoc.tpp/Decisions$en-us.tpp rename to uppsrc/Core/srcdoc.tpp/Decisions_en-us.tpp index 309df652d..2bdba53c0 100644 --- a/uppsrc/Core/srcdoc.tpp/Decisions$en-us.tpp +++ b/uppsrc/Core/srcdoc.tpp/Decisions_en-us.tpp @@ -1,61 +1,61 @@ -topic "Design decisions and tradeoffs"; -[2 $$0,0#00000000000000000000000000000000:Default] -[l288;i704;a17;O9;~~~.992;2 $$1,0#10431211400427159095818037425705:param] -[a83;*R6 $$2,5#31310162474203024125188417583966:caption] -[b83;*2 $$3,5#07864147445237544204411237157677:title] -[i288;b167;a42;O9;C2 $$4,6#40027414424643823182269349404212:item] -[b42;a42;2 $$5,5#45413000475342174754091244180557:text] -[l288;a17;2 $$6,6#27521748481378242620020725143825:desc] -[l321;t246;C@5;1 $$7,7#20902679421464641399138805415013:code] -[b2503;2 $$8,0#65142375456100023862071332075487:separator] -[*@(0.0.255)2 $$9,0#83433469410354161042741608181528:base] -[t4167;C2 $$10,0#37138531426314131251341829483380:class] -[l288;a17;*1 $$11,11#70004532496200323422659154056402:requirement] -[i417;b42;a42;O9;~~~.416;2 $$12,12#10566046415157235020018451313112:tparam] -[b167;C2 $$13,13#92430459443460461911108080531343:item1] -[i288;a42;O9;C2 $$14,14#77422149456609303542238260500223:item2] -[*@2$(0.128.128)2 $$15,15#34511555403152284025741354420178:NewsDate] -[l321;*C$7;2 $$16,16#03451589433145915344929335295360:result] -[l321;b83;a83;*C$7;2 $$17,17#07531550463529505371228428965313:result`-line] -[l160;t4167;*C+117 $$18,5#88603949442205825958800053222425:package`-title] -[{_}%EN-US -[s2; Design decisions and trade`-offs&] -[s0;i150;b33;O0; At the moment, we strongly favor static linking -of U`+`+ packages. If nothing else, it makes U`+`+ apps self`-contained -(together with system of .lay and .iml files) and also much faster -to load (and run) in Linux (just compare start times of UWord -with some KDE based word`-processor). Shared builds were implemented -mainly to improve build times in debug mode.&] -[s0;i150;b33;O0; CPU has to be either little`-endian or big`-endian -(exotic architectures are not supported), in flat 32`-bit mode -or in 64`-bit mode with sizeof(int) >`= 4 (that is quite standard). -Currently tested CPU architectures are i386, AMD64, ARM and PowerPC.&] -[s0;i150;b33;O0; CPU and compiler are supposed to support [^topic`:`/`/Core`/srcdoc`/Moveable`$en`-us^ M -oveable] (true for any gcc, clang and MSVC`+`+ as well).&] -[s0;i150;b33;O0; We decided to ignore possibility of `"out`-of`-memory`" -exceptions and recovery. If U`+`+ application goes out of memory, -it simply prints the error message and terminates. This is quite -pragmatic resolution `- our experience is that it is quite hard -and annoying to achieve robustness here and it cannot be reliably -tested. Also, most platforms with virtual memory will almost -freeze long before out`-of`-memory problem due to intensive page -swapping. Related issue `- default and copy constructors are -not allowed to throw exceptions in U`+`+ (the common reason to -throw exception here is out`-of`-memory condition).&] -[s0;i150;b33;O0;%- [%% Maximum number of elements in any of U`+`+ containers -(including GUI elements, like number of rows in DropList) is -2][%%` 31 ][%% `- 1 `= ]2,147,483,647.&] -[s0;i150;b33;O0; GUI is designed in a way that all user events are -passed and processed by the main thread. The synchronization -is done using single global mutex (operated by EnterGuiMutex, -LeaveGuiMutex or GuiLock scoped helper). Other threads can directly -work with GUI as long they do use this global mutex. There are -some operations (like opening/closing windows, message loops) -that cannot be performed by any other thread than main.&] -[s0;i150;b33;O0; U`+`+ does not use OS`-native widgets. The main -reason for this is to achieve widget interface model optimal -for rapid development. The less important reason is that this -way it is much easier to make U`+`+ cross`-platform. On the other -hand, Chameleon skinning system achieves native look`&feel, so -there is a little perceivable difference for end user.&] +topic "Design decisions and tradeoffs"; +[2 $$0,0#00000000000000000000000000000000:Default] +[l288;i704;a17;O9;~~~.992;2 $$1,0#10431211400427159095818037425705:param] +[a83;*R6 $$2,5#31310162474203024125188417583966:caption] +[b83;*2 $$3,5#07864147445237544204411237157677:title] +[i288;b167;a42;O9;C2 $$4,6#40027414424643823182269349404212:item] +[b42;a42;2 $$5,5#45413000475342174754091244180557:text] +[l288;a17;2 $$6,6#27521748481378242620020725143825:desc] +[l321;t246;C@5;1 $$7,7#20902679421464641399138805415013:code] +[b2503;2 $$8,0#65142375456100023862071332075487:separator] +[*@(0.0.255)2 $$9,0#83433469410354161042741608181528:base] +[t4167;C2 $$10,0#37138531426314131251341829483380:class] +[l288;a17;*1 $$11,11#70004532496200323422659154056402:requirement] +[i417;b42;a42;O9;~~~.416;2 $$12,12#10566046415157235020018451313112:tparam] +[b167;C2 $$13,13#92430459443460461911108080531343:item1] +[i288;a42;O9;C2 $$14,14#77422149456609303542238260500223:item2] +[*@2$(0.128.128)2 $$15,15#34511555403152284025741354420178:NewsDate] +[l321;*C$7;2 $$16,16#03451589433145915344929335295360:result] +[l321;b83;a83;*C$7;2 $$17,17#07531550463529505371228428965313:result`-line] +[l160;t4167;*C+117 $$18,5#88603949442205825958800053222425:package`-title] +[{_}%EN-US +[s2; Design decisions and trade`-offs&] +[s0;i150;b33;O0; At the moment, we strongly favor static linking +of U`+`+ packages. If nothing else, it makes U`+`+ apps self`-contained +(together with system of .lay and .iml files) and also much faster +to load (and run) in Linux (just compare start times of UWord +with some KDE based word`-processor). Shared builds were implemented +mainly to improve build times in debug mode.&] +[s0;i150;b33;O0; CPU has to be either little`-endian or big`-endian +(exotic architectures are not supported), in flat 32`-bit mode +or in 64`-bit mode with sizeof(int) >`= 4 (that is quite standard). +Currently tested CPU architectures are i386, AMD64, ARM and PowerPC.&] +[s0;i150;b33;O0; CPU and compiler are supposed to support [^topic`:`/`/Core`/srcdoc`/Moveable`$en`-us^ M +oveable] (true for any gcc, clang and MSVC`+`+ as well).&] +[s0;i150;b33;O0; We decided to ignore possibility of `"out`-of`-memory`" +exceptions and recovery. If U`+`+ application goes out of memory, +it simply prints the error message and terminates. This is quite +pragmatic resolution `- our experience is that it is quite hard +and annoying to achieve robustness here and it cannot be reliably +tested. Also, most platforms with virtual memory will almost +freeze long before out`-of`-memory problem due to intensive page +swapping. Related issue `- default and copy constructors are +not allowed to throw exceptions in U`+`+ (the common reason to +throw exception here is out`-of`-memory condition).&] +[s0;i150;b33;O0;%- [%% Maximum number of elements in any of U`+`+ containers +(including GUI elements, like number of rows in DropList) is +2][%%` 31 ][%% `- 1 `= ]2,147,483,647.&] +[s0;i150;b33;O0; GUI is designed in a way that all user events are +passed and processed by the main thread. The synchronization +is done using single global mutex (operated by EnterGuiMutex, +LeaveGuiMutex or GuiLock scoped helper). Other threads can directly +work with GUI as long they do use this global mutex. There are +some operations (like opening/closing windows, message loops) +that cannot be performed by any other thread than main.&] +[s0;i150;b33;O0; U`+`+ does not use OS`-native widgets. The main +reason for this is to achieve widget interface model optimal +for rapid development. The less important reason is that this +way it is much easier to make U`+`+ cross`-platform. On the other +hand, Chameleon skinning system achieves native look`&feel, so +there is a little perceivable difference for end user.&] [s0; ]] \ No newline at end of file diff --git a/uppsrc/Core/srcdoc.tpp/Leaks$en-us.tpp b/uppsrc/Core/srcdoc.tpp/Leaks_en-us.tpp similarity index 100% rename from uppsrc/Core/srcdoc.tpp/Leaks$en-us.tpp rename to uppsrc/Core/srcdoc.tpp/Leaks_en-us.tpp diff --git a/uppsrc/Core/srcdoc.tpp/Moveable$en-us.tpp b/uppsrc/Core/srcdoc.tpp/Moveable_en-us.tpp similarity index 97% rename from uppsrc/Core/srcdoc.tpp/Moveable$en-us.tpp rename to uppsrc/Core/srcdoc.tpp/Moveable_en-us.tpp index 21ab35feb..d00611d98 100644 --- a/uppsrc/Core/srcdoc.tpp/Moveable$en-us.tpp +++ b/uppsrc/Core/srcdoc.tpp/Moveable_en-us.tpp @@ -1,243 +1,243 @@ -topic "Moveable"; -[2 $$0,0#00000000000000000000000000000000:Default] -[l288;i704;a17;O9;~~~.992;2 $$1,0#10431211400427159095818037425705:param] -[a83;*R6 $$2,5#31310162474203024125188417583966:caption] -[b83;*2 $$3,5#07864147445237544204411237157677:title] -[b167;a42;C2 $$4,6#40027414424643823182269349404212:item] -[b42;a42;2 $$5,5#45413000475342174754091244180557:text] -[l288;a17;2 $$6,6#27521748481378242620020725143825:desc] -[l321;t246;C@5;1 $$7,7#20902679421464641399138805415013:code] -[b2503;2 $$8,0#65142375456100023862071332075487:separator] -[*@(0.0.255)2 $$9,0#83433469410354161042741608181528:base] -[t4167;C2 $$10,0#37138531426314131251341829483380:class] -[l288;a17;*1 $$11,11#70004532496200323422659154056402:requirement] -[i417;b42;a42;O9;~~~.416;2 $$12,12#10566046415157235020018451313112:tparam] -[b167;C2 $$13,13#92430459443460461911108080531343:item1] -[i288;a42;O9;C2 $$14,14#77422149456609303542238260500223:item2] -[*@2$(0.128.128)2 $$15,15#34511555403152284025741354420178:NewsDate] -[l321;*C$7;2 $$16,16#03451589433145915344929335295360:result] -[l321;b83;a83;*C$7;2 $$17,17#07531550463529505371228428965313:result`-line] -[l160;t4167;*C+117 $$18,5#88603949442205825958800053222425:package`-title] -[{_}%EN-US -[s2; Moveable&] -[s5; First important node: U`+`+ Moveable is not to be confused with -C`+`+ standard library move semantics.&] -[s5; Moveable concept represents basic requirement for types stored -in Vector flavor of containers (namely Vector, BiVector, Index, -VectorMap, InVector, SortedIndex, SortedVectorMap). To explain -what it is and why it is so important let us first create a very -primitive Vector`-like container template&] -[s7; template &] -[s7; class SimpleVector `{&] -[s7; -|T `*vector;&] -[s7; -|int capacity;&] -[s7; -|int items;&] -[s7; &] -[s7; -|void [* Expand()] `{&] -[s7; -|-|capacity `= max(1, 2 `* capacity);&] -[s7; -|-|T `*newvector `= (T `*) new char`[capacity `* sizeof(T)`];&] -[s7; -|-|for(int i `= 0; i < items; i`+`+) `{&] -[s7; -|-|-|[* new(newvector`[i`]) T(vector`[i`])];&] -[s7; -|-|-|[* vector`[i`].T`::`~T();]&] -[s7; -|-|`}&] -[s7; -|-|delete`[`] (char `*) vector;&] -[s7; -|-|vector `= newvector;&] -[s7; -|`}&] -[s7; public:&] -[s7; -|void Add(const T`& x) `{&] -[s7; -|-|if(items >`= capacity) [* Expand()];&] -[s7; -|-|new(vector`[items`+`+`]) T(x);&] -[s7; -|`}&] -[s7; -|T`& operator`[`](int i) `{ return vector`[i`]; `}&] -[s7; -|SimpleVector() `{&] -[s7; -|-|vector `= NULL;&] -[s7; -|-|capacity `= items `= 0;&] -[s7; -|`}&] -[s7; -|`~SimpleVector() `{&] -[s7; -|-|for(int i `= 0; i < items; i`+`+)&] -[s7; -|-|-|vector`[i`].T`::`~T();&] -[s7; -|-|delete`[`] (char `*)vector;&] -[s7; -|`}&] -[s7; `};&] -[s5; This [* SimpleVector] stores added elements in the [* vector] member -field. If there is no more empty storage space left in [* vector], -[* SimpleVector] simply doubles its capacity using [* Expand] method. -This method is what interests us `- because [* Expand ]requires -means to copy values of elements from the original memory area -to the newly allocated one. The version above uses placement -new and copy constructor for this purpose. This also means that -[* SimpleVector] requires T to have copy constructor (in standard -C`+`+ library terms: it must be [/ copy`-constructible]). Now let -us create a typical element that can be stored in such container&] -[s7; class SimpleString `{&] -[s7; -|char `*text;&] -[s7; public:&] -[s7; -|SimpleString(const char `*txt) `{&] -[s7; -|-|text `= new char`[strlen(txt)`+1`];&] -[s7; -|-|strcpy(text, txt);&] -[s7; -|`}&] -[s7; -|SimpleString(const SimpleString`& s) `{&] -[s7; -|-|text `= new char`[strlen(s.text)`+1`];&] -[s7; -|-|strcpy(text, s.text);&] -[s7; -|`}&] -[s7; -|void operator`=(const SimpleString`& s) `{&] -[s7; -|-|delete`[`] text;&] -[s7; -|-|text `= new char`[strlen(s.text)`+1`];&] -[s7; -|-|strcpy(text, s.text);-|-|&] -[s7; -|`}&] -[s7; -|`~SimpleString() `{&] -[s7; -|-|delete`[`] text;&] -[s7; -|`}&] -[s7; `};&] -[s5; and see what happens when [* SimpleVector] of [* SimpleString]s -is expanded: First, copies of all elements are created, that means -allocating new storage for [* text] member of new element and copying -source [* text] to it using [* strcpy]. A moment later, [* Expand] -invokes destructor for element, thus deleting all [* text]s in -the original elements. Does not it seem we are wasting a lot -of CPU cycles just to make copies of things that we throw away -a moment later anyway? What if instead of making copies we could -find a way to transfer original elements`' [* text] members to -new elements and somehow disallow [* delete`[`] text] in destructor? -See how primitive it can be:&] -[s7; template &] -[s7; class SimpleVector `{&] -[s7; -|T `*vector;&] -[s7; -|int capacity;&] -[s7; -|int items;&] -[s7; &] -[s7; -|void Expand() `{&] -[s7; -|-|capacity `= max(1, 2 `* capacity);&] -[s7; -|-|T `*newvector `= (T `*) new char`[capacity `* sizeof(T)`];&] -[s7; -|-|[* memcpy(newvector, vector, items `* sizeof(T));]&] -[s7; -|-|delete`[`](char `*)vector;&] -[s7; -|-|vector `= newvector;&] -[s7; -|`}&] -[s7; public:&] -[s7; -|void Add(const T`& x) `{&] -[s7; -|-|if(items >`= capacity) Expand();&] -[s7; -|-|new(vector`[items`+`+`]) T(x);&] -[s7; -|`}&] -[s7; -|SimpleVector() `{&] -[s7; -|-|vector `= NULL;&] -[s7; -|-|capacity `= items `= 0;&] -[s7; -|`}&] -[s7; -|`~SimpleVector() `{&] -[s7; -|-|for(int i `= 0; i < items; i`+`+)&] -[s7; -|-|-|vector`[i`].T`::`~T();&] -[s7; -|-|delete`[`] (char `*)vector;&] -[s7; -|`}&] -[s7; `};&] -[s5; For the moment please ignore fact that by using memcpy to move -non`-POD types we are violating C`+`+ standard (we will discuss -it later). Now, what we get here is exactly what we wanted `- -instead of a series of copy construction and destruction we simply -copy raw binary data to the new location. This way we simply -transfer the old value in the [* text ]member of elements into -the new expanded [* vector]. We need to invoke neither copy constructor -nor destructor when expanding vector. Not a single CPU cycle -is lost.&] -[s5; The types that can be moved in memory using memcpy are called -[*/ moveable.]&] -[s5; Clearly not all types are moveable. Being moveable has a lot -to do with [/ not] storing references to the object itself or to -it`'s parts. E.g.&] -[s7; struct Link `{&] -[s7; -|Link `*prev;&] -[s7; public:&] -[s7; -|Link() `{ prev `= NULL; `}&] -[s7; -|Link(Link `*p) `{ prev `= p; `}&] -[s7; `};&] -[s5; is [* not] moveable, because memcpy`-ing to a new location would -break the existing links. All of the following requirements should -be fullfilled for moveable types:&] -[s5;i150;O0; It does not have any virtual method nor virtual base -class.&] -[s5;i150;O0; Base classes (if any) and any instance member variables -are moveable.&] -[s5;i150;O0; No references or pointers are stored to the object itself -or to subobjects in the methods of the type, into variables that -exist after the method finishes execution. &] -[s5; Fundamental types fulfills these requirements so they are moveable.&] -[s5; Example:&] -[s7; struct Foo;&] -[s7; &] -[s7; Foo `*global`_foo;&] -[s0; &] -[s7; struct Foo `{&] -[s7; -|int a;&] -[s7; -|Foo `*foo;&] -[s7; -|int `*ptr;&] -[s7; public:&] -[s7; -|void Set(Foo `* f) `{&] -[s7; -|-|foo `= f;&] -[s7; -|`}&] -[s7; -|void Ok1() `{&] -[s7; -|-|Foo `*x `= this;&] -[s7; -|// local variable will not exist outside method&] -[s7; -|// `-> does not prevent Foo from being moveable&] -[s7; -|`}&] -[s7; -|void Ok2() `{&] -[s7; -|-|memset(`&a, 0, sizeof(int));&] -[s7; -|// pointer will not exist outside method&] -[s7; -|// `-> does not prevent Foo from being moveable&] -[s7; -|`}&] -[s7; -|void Bad1() `{&] -[s7; -|-|foo `= this;&] -[s7; -|// member variable foo exists outside method&] -[s7; -|// `-> makes Foo non`-moveable&] -[s7; -|`}&] -[s7; -|void Bad2() `{&] -[s7; -|-|ptr `= `&a;&] -[s7; -|// pointer to subobject stored, ptr exists outside method&] -[s7; -|// `-> makes Foo non`-moveable&] -[s7; -|`}&] -[s7; -|void Bad3() `{&] -[s7; -|-|global`_foo `= this;&] -[s7; -|// pointer stored to global variable&] -[s7; -|// `-> makes Foo non`-moveable&] -[s7; -|`}&] -[s7; -|void Bad4(Foo`& another) `{&] -[s7; -|-|another.Set(this);&] -[s7; -|// pointer stored indirectly in object that exist outside method&] -[s7; -|// `-> makes Foo non`-moveable&] -[s7; -|`}&] -[s7; `};&] -[s5; These requirements satisfies fairly large number of types, incidentally -most of the types you ever wanted to store in a container of -elements of a single type are moveable. Most important, all NTL -containers [* are ]moveable.&] -[s5; Now we have an effective method how to organize the storing -of elements in containers. We have to deal with the fact that -being moveable is part of an object`'s interface, and we should -ensure that only movable elements are stored into NTL containers. -For this we need a way to declare at compile time that a certain -type is moveable and also a way to check it.&] -[s5; To achieve this goal, you can mark moveable types by deriving -them from the [* Moveable] template class e.g.:&] -[s7; class SimpleString : Moveable `{ ... `}&] -[s5; Alternatively the [* NTL`_MOVEABLE ]macro can be used to mark -types as moveable if the class interface can not be changed, -such as in:&] -[s7; NTL`_MOVEABLE(std`::string);&] -[s5; Now that we can mark types as moveable, we need a way to check -a type for being moveable. This is done by adding the line:&] -[s7; AssertMoveable()&] -[s5; to one of the methods of a template that gets compiled for any -template argument `- the destructor is the most obvious place. -The AssertMovable function is defined only if [* T] is marked as -moveable, so it results in compilation error for non`-moveable -T types.&] -[s5; Finally, time has come to deal with the C`+`+ standard. Current -C`+`+ defines memcpy only for POD types. The moveable concept -requires memcpy of non`-POD types to be defined. In fact, difference -between POD and moveable non`-POD types is the existence of constructors -and non`-virtual destructor. To get things work, all we need -is that the result of memcpy`-ing non`-POD type [* T ]is same as -memcpy`-ing the POD [* T1 ]type which you would get by removing -the destructor and the constructors from [* T]. While this operation -is still undefined by C`+`+, it is really hard to imagine an -optimal C`+`+ implementation that would break this rule. Indeed, -all current implementation we have met so far support moveable -semantics in the way we have defined here. Performance and other +topic "Moveable"; +[2 $$0,0#00000000000000000000000000000000:Default] +[l288;i704;a17;O9;~~~.992;2 $$1,0#10431211400427159095818037425705:param] +[a83;*R6 $$2,5#31310162474203024125188417583966:caption] +[b83;*2 $$3,5#07864147445237544204411237157677:title] +[b167;a42;C2 $$4,6#40027414424643823182269349404212:item] +[b42;a42;2 $$5,5#45413000475342174754091244180557:text] +[l288;a17;2 $$6,6#27521748481378242620020725143825:desc] +[l321;t246;C@5;1 $$7,7#20902679421464641399138805415013:code] +[b2503;2 $$8,0#65142375456100023862071332075487:separator] +[*@(0.0.255)2 $$9,0#83433469410354161042741608181528:base] +[t4167;C2 $$10,0#37138531426314131251341829483380:class] +[l288;a17;*1 $$11,11#70004532496200323422659154056402:requirement] +[i417;b42;a42;O9;~~~.416;2 $$12,12#10566046415157235020018451313112:tparam] +[b167;C2 $$13,13#92430459443460461911108080531343:item1] +[i288;a42;O9;C2 $$14,14#77422149456609303542238260500223:item2] +[*@2$(0.128.128)2 $$15,15#34511555403152284025741354420178:NewsDate] +[l321;*C$7;2 $$16,16#03451589433145915344929335295360:result] +[l321;b83;a83;*C$7;2 $$17,17#07531550463529505371228428965313:result`-line] +[l160;t4167;*C+117 $$18,5#88603949442205825958800053222425:package`-title] +[{_}%EN-US +[s2; Moveable&] +[s5; First important node: U`+`+ Moveable is not to be confused with +C`+`+ standard library move semantics.&] +[s5; Moveable concept represents basic requirement for types stored +in Vector flavor of containers (namely Vector, BiVector, Index, +VectorMap, InVector, SortedIndex, SortedVectorMap). To explain +what it is and why it is so important let us first create a very +primitive Vector`-like container template&] +[s7; template &] +[s7; class SimpleVector `{&] +[s7; -|T `*vector;&] +[s7; -|int capacity;&] +[s7; -|int items;&] +[s7; &] +[s7; -|void [* Expand()] `{&] +[s7; -|-|capacity `= max(1, 2 `* capacity);&] +[s7; -|-|T `*newvector `= (T `*) new char`[capacity `* sizeof(T)`];&] +[s7; -|-|for(int i `= 0; i < items; i`+`+) `{&] +[s7; -|-|-|[* new(newvector`[i`]) T(vector`[i`])];&] +[s7; -|-|-|[* vector`[i`].T`::`~T();]&] +[s7; -|-|`}&] +[s7; -|-|delete`[`] (char `*) vector;&] +[s7; -|-|vector `= newvector;&] +[s7; -|`}&] +[s7; public:&] +[s7; -|void Add(const T`& x) `{&] +[s7; -|-|if(items >`= capacity) [* Expand()];&] +[s7; -|-|new(vector`[items`+`+`]) T(x);&] +[s7; -|`}&] +[s7; -|T`& operator`[`](int i) `{ return vector`[i`]; `}&] +[s7; -|SimpleVector() `{&] +[s7; -|-|vector `= NULL;&] +[s7; -|-|capacity `= items `= 0;&] +[s7; -|`}&] +[s7; -|`~SimpleVector() `{&] +[s7; -|-|for(int i `= 0; i < items; i`+`+)&] +[s7; -|-|-|vector`[i`].T`::`~T();&] +[s7; -|-|delete`[`] (char `*)vector;&] +[s7; -|`}&] +[s7; `};&] +[s5; This [* SimpleVector] stores added elements in the [* vector] member +field. If there is no more empty storage space left in [* vector], +[* SimpleVector] simply doubles its capacity using [* Expand] method. +This method is what interests us `- because [* Expand ]requires +means to copy values of elements from the original memory area +to the newly allocated one. The version above uses placement +new and copy constructor for this purpose. This also means that +[* SimpleVector] requires T to have copy constructor (in standard +C`+`+ library terms: it must be [/ copy`-constructible]). Now let +us create a typical element that can be stored in such container&] +[s7; class SimpleString `{&] +[s7; -|char `*text;&] +[s7; public:&] +[s7; -|SimpleString(const char `*txt) `{&] +[s7; -|-|text `= new char`[strlen(txt)`+1`];&] +[s7; -|-|strcpy(text, txt);&] +[s7; -|`}&] +[s7; -|SimpleString(const SimpleString`& s) `{&] +[s7; -|-|text `= new char`[strlen(s.text)`+1`];&] +[s7; -|-|strcpy(text, s.text);&] +[s7; -|`}&] +[s7; -|void operator`=(const SimpleString`& s) `{&] +[s7; -|-|delete`[`] text;&] +[s7; -|-|text `= new char`[strlen(s.text)`+1`];&] +[s7; -|-|strcpy(text, s.text);-|-|&] +[s7; -|`}&] +[s7; -|`~SimpleString() `{&] +[s7; -|-|delete`[`] text;&] +[s7; -|`}&] +[s7; `};&] +[s5; and see what happens when [* SimpleVector] of [* SimpleString]s +is expanded: First, copies of all elements are created, that means +allocating new storage for [* text] member of new element and copying +source [* text] to it using [* strcpy]. A moment later, [* Expand] +invokes destructor for element, thus deleting all [* text]s in +the original elements. Does not it seem we are wasting a lot +of CPU cycles just to make copies of things that we throw away +a moment later anyway? What if instead of making copies we could +find a way to transfer original elements`' [* text] members to +new elements and somehow disallow [* delete`[`] text] in destructor? +See how primitive it can be:&] +[s7; template &] +[s7; class SimpleVector `{&] +[s7; -|T `*vector;&] +[s7; -|int capacity;&] +[s7; -|int items;&] +[s7; &] +[s7; -|void Expand() `{&] +[s7; -|-|capacity `= max(1, 2 `* capacity);&] +[s7; -|-|T `*newvector `= (T `*) new char`[capacity `* sizeof(T)`];&] +[s7; -|-|[* memcpy(newvector, vector, items `* sizeof(T));]&] +[s7; -|-|delete`[`](char `*)vector;&] +[s7; -|-|vector `= newvector;&] +[s7; -|`}&] +[s7; public:&] +[s7; -|void Add(const T`& x) `{&] +[s7; -|-|if(items >`= capacity) Expand();&] +[s7; -|-|new(vector`[items`+`+`]) T(x);&] +[s7; -|`}&] +[s7; -|SimpleVector() `{&] +[s7; -|-|vector `= NULL;&] +[s7; -|-|capacity `= items `= 0;&] +[s7; -|`}&] +[s7; -|`~SimpleVector() `{&] +[s7; -|-|for(int i `= 0; i < items; i`+`+)&] +[s7; -|-|-|vector`[i`].T`::`~T();&] +[s7; -|-|delete`[`] (char `*)vector;&] +[s7; -|`}&] +[s7; `};&] +[s5; For the moment please ignore fact that by using memcpy to move +non`-POD types we are violating C`+`+ standard (we will discuss +it later). Now, what we get here is exactly what we wanted `- +instead of a series of copy construction and destruction we simply +copy raw binary data to the new location. This way we simply +transfer the old value in the [* text ]member of elements into +the new expanded [* vector]. We need to invoke neither copy constructor +nor destructor when expanding vector. Not a single CPU cycle +is lost.&] +[s5; The types that can be moved in memory using memcpy are called +[*/ moveable.]&] +[s5; Clearly not all types are moveable. Being moveable has a lot +to do with [/ not] storing references to the object itself or to +it`'s parts. E.g.&] +[s7; struct Link `{&] +[s7; -|Link `*prev;&] +[s7; public:&] +[s7; -|Link() `{ prev `= NULL; `}&] +[s7; -|Link(Link `*p) `{ prev `= p; `}&] +[s7; `};&] +[s5; is [* not] moveable, because memcpy`-ing to a new location would +break the existing links. All of the following requirements should +be fullfilled for moveable types:&] +[s5;i150;O0; It does not have any virtual method nor virtual base +class.&] +[s5;i150;O0; Base classes (if any) and any instance member variables +are moveable.&] +[s5;i150;O0; No references or pointers are stored to the object itself +or to subobjects in the methods of the type, into variables that +exist after the method finishes execution. &] +[s5; Fundamental types fulfills these requirements so they are moveable.&] +[s5; Example:&] +[s7; struct Foo;&] +[s7; &] +[s7; Foo `*global`_foo;&] +[s0; &] +[s7; struct Foo `{&] +[s7; -|int a;&] +[s7; -|Foo `*foo;&] +[s7; -|int `*ptr;&] +[s7; public:&] +[s7; -|void Set(Foo `* f) `{&] +[s7; -|-|foo `= f;&] +[s7; -|`}&] +[s7; -|void Ok1() `{&] +[s7; -|-|Foo `*x `= this;&] +[s7; -|// local variable will not exist outside method&] +[s7; -|// `-> does not prevent Foo from being moveable&] +[s7; -|`}&] +[s7; -|void Ok2() `{&] +[s7; -|-|memset(`&a, 0, sizeof(int));&] +[s7; -|// pointer will not exist outside method&] +[s7; -|// `-> does not prevent Foo from being moveable&] +[s7; -|`}&] +[s7; -|void Bad1() `{&] +[s7; -|-|foo `= this;&] +[s7; -|// member variable foo exists outside method&] +[s7; -|// `-> makes Foo non`-moveable&] +[s7; -|`}&] +[s7; -|void Bad2() `{&] +[s7; -|-|ptr `= `&a;&] +[s7; -|// pointer to subobject stored, ptr exists outside method&] +[s7; -|// `-> makes Foo non`-moveable&] +[s7; -|`}&] +[s7; -|void Bad3() `{&] +[s7; -|-|global`_foo `= this;&] +[s7; -|// pointer stored to global variable&] +[s7; -|// `-> makes Foo non`-moveable&] +[s7; -|`}&] +[s7; -|void Bad4(Foo`& another) `{&] +[s7; -|-|another.Set(this);&] +[s7; -|// pointer stored indirectly in object that exist outside method&] +[s7; -|// `-> makes Foo non`-moveable&] +[s7; -|`}&] +[s7; `};&] +[s5; These requirements satisfies fairly large number of types, incidentally +most of the types you ever wanted to store in a container of +elements of a single type are moveable. Most important, all NTL +containers [* are ]moveable.&] +[s5; Now we have an effective method how to organize the storing +of elements in containers. We have to deal with the fact that +being moveable is part of an object`'s interface, and we should +ensure that only movable elements are stored into NTL containers. +For this we need a way to declare at compile time that a certain +type is moveable and also a way to check it.&] +[s5; To achieve this goal, you can mark moveable types by deriving +them from the [* Moveable] template class e.g.:&] +[s7; class SimpleString : Moveable `{ ... `}&] +[s5; Alternatively the [* NTL`_MOVEABLE ]macro can be used to mark +types as moveable if the class interface can not be changed, +such as in:&] +[s7; NTL`_MOVEABLE(std`::string);&] +[s5; Now that we can mark types as moveable, we need a way to check +a type for being moveable. This is done by adding the line:&] +[s7; AssertMoveable()&] +[s5; to one of the methods of a template that gets compiled for any +template argument `- the destructor is the most obvious place. +The AssertMovable function is defined only if [* T] is marked as +moveable, so it results in compilation error for non`-moveable +T types.&] +[s5; Finally, time has come to deal with the C`+`+ standard. Current +C`+`+ defines memcpy only for POD types. The moveable concept +requires memcpy of non`-POD types to be defined. In fact, difference +between POD and moveable non`-POD types is the existence of constructors +and non`-virtual destructor. To get things work, all we need +is that the result of memcpy`-ing non`-POD type [* T ]is same as +memcpy`-ing the POD [* T1 ]type which you would get by removing +the destructor and the constructors from [* T]. While this operation +is still undefined by C`+`+, it is really hard to imagine an +optimal C`+`+ implementation that would break this rule. Indeed, +all current implementation we have met so far support moveable +semantics in the way we have defined here. Performance and other gains realized by using the moveable concept are too big to ignore.]] \ No newline at end of file diff --git a/uppsrc/Core/srcdoc.tpp/NTL$en-us.tpp b/uppsrc/Core/srcdoc.tpp/NTL_en-us.tpp similarity index 98% rename from uppsrc/Core/srcdoc.tpp/NTL$en-us.tpp rename to uppsrc/Core/srcdoc.tpp/NTL_en-us.tpp index 27948b0a0..a7c31a0b3 100644 --- a/uppsrc/Core/srcdoc.tpp/NTL$en-us.tpp +++ b/uppsrc/Core/srcdoc.tpp/NTL_en-us.tpp @@ -1,127 +1,127 @@ -topic "Overview of U++ containers - NTL"; -[2 $$0,0#00000000000000000000000000000000:Default] -[l288;i704;a17;O9;~~~.992;2 $$1,0#10431211400427159095818037425705:param] -[a83;*R6 $$2,5#31310162474203024125188417583966:caption] -[b83;*2 $$3,5#07864147445237544204411237157677:title] -[b167;a42;C2 $$4,6#40027414424643823182269349404212:item] -[b42;a42;2 $$5,5#45413000475342174754091244180557:text] -[l288;a17;2 $$6,6#27521748481378242620020725143825:desc] -[l321;t246;C@5;1 $$7,7#20902679421464641399138805415013:code] -[b2503;2 $$8,0#65142375456100023862071332075487:separator] -[*@(0.0.255)2 $$9,0#83433469410354161042741608181528:base] -[t4167;C2 $$10,0#37138531426314131251341829483380:class] -[l288;a17;*1 $$11,11#70004532496200323422659154056402:requirement] -[i417;b42;a42;O9;~~~.416;2 $$12,12#10566046415157235020018451313112:tparam] -[b167;C2 $$13,13#92430459443460461911108080531343:item1] -[i288;a42;O9;C2 $$14,14#77422149456609303542238260500223:item2] -[*@2$(0.128.128)2 $$15,15#34511555403152284025741354420178:NewsDate] -[l321;*C$7;2 $$16,16#03451589433145915344929335295360:result] -[l321;b83;a83;*C$7;2 $$17,17#07531550463529505371228428965313:result`-line] -[l160;t4167;*C+117 $$18,5#88603949442205825958800053222425:package`-title] -[{_}%EN-US -[s2; Overview of U`+`+ containers `- NTL&] -[s5; NTL is a library of container and algorithm templates. It is -designed to solve some problems we see in current C`+`+ standard -library STL.&] -[s3; Random access&] -[s5; Each single NTL container template that can store more than -one element has random access. This random access is as fast -as access using iterators so for iterating elements you can use -indices rather than iterators and we recommend this approach.&] -[s3; Requirements&] -[s5; An important feature of NTL are requirements for stored elements. -Unlike STL, which has single [/ copy`-constructible] and [/ assignable] -requirement for whole library, NTL makes requirements on per -container and even per method basis. This way NTL allows [/ direct] -storing of [/ any] type of elements. NTL provides two or even three -flavors for each basic ADT kind of container relative to requirements -for elements.&] -[s3; Flavors&] -[s5; [*/ Vector] flavor of containers requires types to be [*/^dpp`:`/`/SourceDoc`/Containers`/Moveable^ m -oveable] and have either [*/^dpp`:`/`/SourceDoc`/Containers`/pick`_^ deep -copy constructor][^dpp`:`/`/SourceDoc`/Containers`/pick`_^ ]and -operator, [*/^dpp`:`/`/SourceDoc`/Containers`/pick`_^ pick constructor] -and operator or default constructor. Containers of this flavor -have word [* Vector] in their their names, with the exception of -[* Index] which is also of this flavor. This flavor has the best -runtime characteristics.&] -[s5; [*/ Array] flavor of containers has [*/ no][/ ]common requirements -for elements, but is less efficient. You can use it to store -even polymorphic types. Type of stored elements does not even -have to be defined at the point of instantiation, so you can -use Array flavor to create recursive data structures. Another -feature of this flavor is that references to elements are never -invalidated. Containers of this flavor have [* Array] in their -name.&] -[s3; Containers as return values&] -[s5; NTL allows containers to be used as return values, in single -constant time operation. It is allowed by defining specific [*/^topic`:`/`/Core`/src`/pick`_`$en`-us^ t -ransfer semantics][/ .]&] -[s3; Basic random access containers&] -[s5; This kind of containers allows adding/removing elements at the -end of the sequence in amortized constant time. As these containers -are basic building blocks for NTL, their names are the same as -names for all three flavors. [* Vector] flavor allows direct access -to underlying C vector of elements. [* Vector] and [* Array] flavors -allow removing and inserting of elements at any position (with -complexity based on number of elements moved).&] -[s3; Bidirectional containers&] -[s5; This kind of containers allows adding/removing elements to/from -both beginning and end of sequence in constant amortized time. -It is well suited for FIFO operations. [* BiVector] and [* BiArray] -are two flavors of bidirectional containers.&] -[s3; Index&] -[s5; Basically, this kind of container provides random access sequence -that allows adding elements at the end of sequence in constant -amortized time (much like basic random access containers) with -one unique feature: it allows fast retrieval of position of element -with specific value. Hashing is used for this operation. Indexes -represent ideal building`-blocks for any associative operations. -[* Index] and [* ArrayIndex ]are two flavors of indexes.&] -[s5; As both index flavors are built on top of according basic random -access containers, they provide read`-only access or even pick -operations to this container. That means you can supply elements -to [* Index] by picking [* Vector ]in [* Index] constructor or get -[* Vector] of elements of [* Index] in low constant time pick operation. -Same is true for [* Array] and [* ArrayIndex.]&] -[s5; Also, as most of functionality added to basic random access -containers is same for both [* Index] and [* ArrayIndex], most of -operations are shared in common template class [* AIndex], which -represents index container without concrete flavor. [* Index] and -[* ArrayIndex] are derived from this [* AIndex], adding few operations -specific for their flavors.&] -[s3; Maps&] -[s5; Basically, maps are just simple compositions of Index and basic -random access container to store values, thus getting classical -map design. In find operation, position of key in Index is retrieved -and value from basic access container at the same position is -returned. This design also allows accessing both keys and values -using indices. &] -[s5; In case of maps, keys are always stored in [* Index], that means -that flavor is relative only to type of values (and keys must -be moveable). [* VectorMap], [* ArrayMap] and [* SegtorMap] are flavors -of maps. As with [* Index], the common operations of this flavor -are implemented in template base class [* AMap]. Also, picking -operations for any part of maps are available.&] -[s3; InVector, Sorted maps&] -[s5; NTL provides random access containers with fast insertion at -arbitrary position, which scale well to milions of items. These -containers then provide basis for `'sorted maps`' that are using -binary search. Sorted maps are useful when range`-search is required.&] -[s3; One&] -[s5; [* One] is a container that can hold one or none elements of the -specified type or a type derived from it. Its functionally rather -close to standard library auto`_ptr but with improvements in -direction of NTL, like transfer semantics, moveable concept (yes, -you [/ can] have Vector< One >) and others. Also it is important -from conceptual view, because it is it is treated like a container -rather than a pointer.&] -[s3; Any&] -[s5; Any is a container that can store none or single element of -[/ any] type. Container provides Is method to determine the -type of stored element and Create method to create the element -in container.&] -[s3; Buffer&] -[s5; Buffer is a simple random access container without growing properties.&] -[s0; &] +topic "Overview of U++ containers - NTL"; +[2 $$0,0#00000000000000000000000000000000:Default] +[l288;i704;a17;O9;~~~.992;2 $$1,0#10431211400427159095818037425705:param] +[a83;*R6 $$2,5#31310162474203024125188417583966:caption] +[b83;*2 $$3,5#07864147445237544204411237157677:title] +[b167;a42;C2 $$4,6#40027414424643823182269349404212:item] +[b42;a42;2 $$5,5#45413000475342174754091244180557:text] +[l288;a17;2 $$6,6#27521748481378242620020725143825:desc] +[l321;t246;C@5;1 $$7,7#20902679421464641399138805415013:code] +[b2503;2 $$8,0#65142375456100023862071332075487:separator] +[*@(0.0.255)2 $$9,0#83433469410354161042741608181528:base] +[t4167;C2 $$10,0#37138531426314131251341829483380:class] +[l288;a17;*1 $$11,11#70004532496200323422659154056402:requirement] +[i417;b42;a42;O9;~~~.416;2 $$12,12#10566046415157235020018451313112:tparam] +[b167;C2 $$13,13#92430459443460461911108080531343:item1] +[i288;a42;O9;C2 $$14,14#77422149456609303542238260500223:item2] +[*@2$(0.128.128)2 $$15,15#34511555403152284025741354420178:NewsDate] +[l321;*C$7;2 $$16,16#03451589433145915344929335295360:result] +[l321;b83;a83;*C$7;2 $$17,17#07531550463529505371228428965313:result`-line] +[l160;t4167;*C+117 $$18,5#88603949442205825958800053222425:package`-title] +[{_}%EN-US +[s2; Overview of U`+`+ containers `- NTL&] +[s5; NTL is a library of container and algorithm templates. It is +designed to solve some problems we see in current C`+`+ standard +library STL.&] +[s3; Random access&] +[s5; Each single NTL container template that can store more than +one element has random access. This random access is as fast +as access using iterators so for iterating elements you can use +indices rather than iterators and we recommend this approach.&] +[s3; Requirements&] +[s5; An important feature of NTL are requirements for stored elements. +Unlike STL, which has single [/ copy`-constructible] and [/ assignable] +requirement for whole library, NTL makes requirements on per +container and even per method basis. This way NTL allows [/ direct] +storing of [/ any] type of elements. NTL provides two or even three +flavors for each basic ADT kind of container relative to requirements +for elements.&] +[s3; Flavors&] +[s5; [*/ Vector] flavor of containers requires types to be [*/^dpp`:`/`/SourceDoc`/Containers`/Moveable^ m +oveable] and have either [*/^dpp`:`/`/SourceDoc`/Containers`/pick`_^ deep +copy constructor][^dpp`:`/`/SourceDoc`/Containers`/pick`_^ ]and +operator, [*/^dpp`:`/`/SourceDoc`/Containers`/pick`_^ pick constructor] +and operator or default constructor. Containers of this flavor +have word [* Vector] in their their names, with the exception of +[* Index] which is also of this flavor. This flavor has the best +runtime characteristics.&] +[s5; [*/ Array] flavor of containers has [*/ no][/ ]common requirements +for elements, but is less efficient. You can use it to store +even polymorphic types. Type of stored elements does not even +have to be defined at the point of instantiation, so you can +use Array flavor to create recursive data structures. Another +feature of this flavor is that references to elements are never +invalidated. Containers of this flavor have [* Array] in their +name.&] +[s3; Containers as return values&] +[s5; NTL allows containers to be used as return values, in single +constant time operation. It is allowed by defining specific [*/^topic`:`/`/Core`/src`/pick`_`$en`-us^ t +ransfer semantics][/ .]&] +[s3; Basic random access containers&] +[s5; This kind of containers allows adding/removing elements at the +end of the sequence in amortized constant time. As these containers +are basic building blocks for NTL, their names are the same as +names for all three flavors. [* Vector] flavor allows direct access +to underlying C vector of elements. [* Vector] and [* Array] flavors +allow removing and inserting of elements at any position (with +complexity based on number of elements moved).&] +[s3; Bidirectional containers&] +[s5; This kind of containers allows adding/removing elements to/from +both beginning and end of sequence in constant amortized time. +It is well suited for FIFO operations. [* BiVector] and [* BiArray] +are two flavors of bidirectional containers.&] +[s3; Index&] +[s5; Basically, this kind of container provides random access sequence +that allows adding elements at the end of sequence in constant +amortized time (much like basic random access containers) with +one unique feature: it allows fast retrieval of position of element +with specific value. Hashing is used for this operation. Indexes +represent ideal building`-blocks for any associative operations. +[* Index] and [* ArrayIndex ]are two flavors of indexes.&] +[s5; As both index flavors are built on top of according basic random +access containers, they provide read`-only access or even pick +operations to this container. That means you can supply elements +to [* Index] by picking [* Vector ]in [* Index] constructor or get +[* Vector] of elements of [* Index] in low constant time pick operation. +Same is true for [* Array] and [* ArrayIndex.]&] +[s5; Also, as most of functionality added to basic random access +containers is same for both [* Index] and [* ArrayIndex], most of +operations are shared in common template class [* AIndex], which +represents index container without concrete flavor. [* Index] and +[* ArrayIndex] are derived from this [* AIndex], adding few operations +specific for their flavors.&] +[s3; Maps&] +[s5; Basically, maps are just simple compositions of Index and basic +random access container to store values, thus getting classical +map design. In find operation, position of key in Index is retrieved +and value from basic access container at the same position is +returned. This design also allows accessing both keys and values +using indices. &] +[s5; In case of maps, keys are always stored in [* Index], that means +that flavor is relative only to type of values (and keys must +be moveable). [* VectorMap], [* ArrayMap] and [* SegtorMap] are flavors +of maps. As with [* Index], the common operations of this flavor +are implemented in template base class [* AMap]. Also, picking +operations for any part of maps are available.&] +[s3; InVector, Sorted maps&] +[s5; NTL provides random access containers with fast insertion at +arbitrary position, which scale well to milions of items. These +containers then provide basis for `'sorted maps`' that are using +binary search. Sorted maps are useful when range`-search is required.&] +[s3; One&] +[s5; [* One] is a container that can hold one or none elements of the +specified type or a type derived from it. Its functionally rather +close to standard library auto`_ptr but with improvements in +direction of NTL, like transfer semantics, moveable concept (yes, +you [/ can] have Vector< One >) and others. Also it is important +from conceptual view, because it is it is treated like a container +rather than a pointer.&] +[s3; Any&] +[s5; Any is a container that can store none or single element of +[/ any] type. Container provides Is method to determine the +type of stored element and Create method to create the element +in container.&] +[s3; Buffer&] +[s5; Buffer is a simple random access container without growing properties.&] +[s0; &] [s0; ]] \ No newline at end of file diff --git a/uppsrc/Core/srcdoc.tpp/NTLvsSTL$en-us.tpp b/uppsrc/Core/srcdoc.tpp/NTLvsSTL_en-us.tpp similarity index 98% rename from uppsrc/Core/srcdoc.tpp/NTLvsSTL$en-us.tpp rename to uppsrc/Core/srcdoc.tpp/NTLvsSTL_en-us.tpp index d07c9a1d3..634e03c7e 100644 --- a/uppsrc/Core/srcdoc.tpp/NTLvsSTL$en-us.tpp +++ b/uppsrc/Core/srcdoc.tpp/NTLvsSTL_en-us.tpp @@ -1,72 +1,72 @@ -topic "NTL vs STL"; -[2 $$0,0#00000000000000000000000000000000:Default] -[l288;i704;a17;O9;~~~.992;2 $$1,0#10431211400427159095818037425705:param] -[a83;*R6 $$2,5#31310162474203024125188417583966:caption] -[b83;*2 $$3,5#07864147445237544204411237157677:title] -[b167;a42;C2 $$4,6#40027414424643823182269349404212:item] -[b42;a42;2 $$5,5#45413000475342174754091244180557:text] -[l288;a17;2 $$6,6#27521748481378242620020725143825:desc] -[l321;t246;C@5;1 $$7,7#20902679421464641399138805415013:code] -[b2503;2 $$8,0#65142375456100023862071332075487:separator] -[*@(0.0.255)2 $$9,0#83433469410354161042741608181528:base] -[t4167;C2 $$10,0#37138531426314131251341829483380:class] -[l288;a17;*1 $$11,11#70004532496200323422659154056402:requirement] -[i417;b42;a42;O9;~~~.416;2 $$12,12#10566046415157235020018451313112:tparam] -[b167;C2 $$13,13#92430459443460461911108080531343:item1] -[i288;a42;O9;C2 $$14,14#77422149456609303542238260500223:item2] -[*@2$(0.128.128)2 $$15,15#34511555403152284025741354420178:NewsDate] -[l321;*C$7;2 $$16,16#03451589433145915344929335295360:result] -[l321;b83;a83;*C$7;2 $$17,17#07531550463529505371228428965313:result`-line] -[l160;t4167;*C+117 $$18,5#88603949442205825958800053222425:package`-title] -[{_}%EN-US -[s2; NTL `- STL Comparison&] -[s5; NTL was created to solve following problems we used to encounter -when using STL: &] -[s3; Copy`-constructible requirements&] -[s5; STL requires the elements stored in containers to meet the requirements -of copy`-constructible and assignable types. This causes two -problems:&] -[s5;i150;O2; Elements that do not satisfy these requirements cannot -be directly stored in STL containers.&] -[s5;i150;O2; For many types of elements, including STL containers -themselves, copy`-constructor and assign operator is a very expensive -operation, that is why often they cannot be stored in STL containers -effectively.&] -[s5; NTL addresses this problem by introducing [^topic`:`/`/Core`/src`/Vector`$en`-us^ V -ector] and [^topic`:`/`/Core`/src`/Array`$en`-us^ Array] flavors -of containers.&] -[s3; Value transfer&] -[s5; STL provides deep copy of containers as default operation for -(most) `'`=`' cases, with `&`& based move semantics for specific -or explicit cases (std`::move). NTL requires to specify the mode -of transfer with `'pick`' (corresponds to std`::move) or `'clone`' -functions in all cases, except the assignment of temporary value -(where the final semantics is the same).&] -[s3; Random access and random access notation&] -[s5; STL uses iterators as the preferred way how to access and identify -elements in containers. While this is generally the most generic -way, real`-life problems often require or at least benefit from -random access using indices. NTL provides fast random access -to all kinds of containers and NTL interfaces prefer notation -using indices. As a side effect, NTL user can completely avoid -using iterators in favor of indices, which in current C`+`+ results -in much simpler and less verbose syntax (using modern optimizing -compilers there is no difference in performance).&] -[s3; Index&] -[s5; A completely new type of associative container, [^topic`:`/`/Core`/src`/Indext`$en`-us^ I -ndex], is introduced, as an ideal building block for all kinds -of associative operations.&] -[s5; [* InVector, Sorted maps]&] -[s5; NTL provides random access containers with fast insertion at -arbitrary position, which scale well to milions of items. These -containers then provide basis for `'sorted maps`' that are using -binary search.&] -[s3; Algorithm requirements&] -[s5; Requirements of STL algorithms are very loosely defined. NTL -tries to provide more specific requirements and also minimal -ones. This allows e.g. direct sorting of Array of polymorphic -elements.&] -[s3; Minor improvements&] -[s5; There are also some minor improvements:&] -[s5;i150;O2; Besides [* reserve] present in STL, NTL provides also +topic "NTL vs STL"; +[2 $$0,0#00000000000000000000000000000000:Default] +[l288;i704;a17;O9;~~~.992;2 $$1,0#10431211400427159095818037425705:param] +[a83;*R6 $$2,5#31310162474203024125188417583966:caption] +[b83;*2 $$3,5#07864147445237544204411237157677:title] +[b167;a42;C2 $$4,6#40027414424643823182269349404212:item] +[b42;a42;2 $$5,5#45413000475342174754091244180557:text] +[l288;a17;2 $$6,6#27521748481378242620020725143825:desc] +[l321;t246;C@5;1 $$7,7#20902679421464641399138805415013:code] +[b2503;2 $$8,0#65142375456100023862071332075487:separator] +[*@(0.0.255)2 $$9,0#83433469410354161042741608181528:base] +[t4167;C2 $$10,0#37138531426314131251341829483380:class] +[l288;a17;*1 $$11,11#70004532496200323422659154056402:requirement] +[i417;b42;a42;O9;~~~.416;2 $$12,12#10566046415157235020018451313112:tparam] +[b167;C2 $$13,13#92430459443460461911108080531343:item1] +[i288;a42;O9;C2 $$14,14#77422149456609303542238260500223:item2] +[*@2$(0.128.128)2 $$15,15#34511555403152284025741354420178:NewsDate] +[l321;*C$7;2 $$16,16#03451589433145915344929335295360:result] +[l321;b83;a83;*C$7;2 $$17,17#07531550463529505371228428965313:result`-line] +[l160;t4167;*C+117 $$18,5#88603949442205825958800053222425:package`-title] +[{_}%EN-US +[s2; NTL `- STL Comparison&] +[s5; NTL was created to solve following problems we used to encounter +when using STL: &] +[s3; Copy`-constructible requirements&] +[s5; STL requires the elements stored in containers to meet the requirements +of copy`-constructible and assignable types. This causes two +problems:&] +[s5;i150;O2; Elements that do not satisfy these requirements cannot +be directly stored in STL containers.&] +[s5;i150;O2; For many types of elements, including STL containers +themselves, copy`-constructor and assign operator is a very expensive +operation, that is why often they cannot be stored in STL containers +effectively.&] +[s5; NTL addresses this problem by introducing [^topic`:`/`/Core`/src`/Vector`$en`-us^ V +ector] and [^topic`:`/`/Core`/src`/Array`$en`-us^ Array] flavors +of containers.&] +[s3; Value transfer&] +[s5; STL provides deep copy of containers as default operation for +(most) `'`=`' cases, with `&`& based move semantics for specific +or explicit cases (std`::move). NTL requires to specify the mode +of transfer with `'pick`' (corresponds to std`::move) or `'clone`' +functions in all cases, except the assignment of temporary value +(where the final semantics is the same).&] +[s3; Random access and random access notation&] +[s5; STL uses iterators as the preferred way how to access and identify +elements in containers. While this is generally the most generic +way, real`-life problems often require or at least benefit from +random access using indices. NTL provides fast random access +to all kinds of containers and NTL interfaces prefer notation +using indices. As a side effect, NTL user can completely avoid +using iterators in favor of indices, which in current C`+`+ results +in much simpler and less verbose syntax (using modern optimizing +compilers there is no difference in performance).&] +[s3; Index&] +[s5; A completely new type of associative container, [^topic`:`/`/Core`/src`/Indext`$en`-us^ I +ndex], is introduced, as an ideal building block for all kinds +of associative operations.&] +[s5; [* InVector, Sorted maps]&] +[s5; NTL provides random access containers with fast insertion at +arbitrary position, which scale well to milions of items. These +containers then provide basis for `'sorted maps`' that are using +binary search.&] +[s3; Algorithm requirements&] +[s5; Requirements of STL algorithms are very loosely defined. NTL +tries to provide more specific requirements and also minimal +ones. This allows e.g. direct sorting of Array of polymorphic +elements.&] +[s3; Minor improvements&] +[s5; There are also some minor improvements:&] +[s5;i150;O2; Besides [* reserve] present in STL, NTL provides also [* Shrink] method to minimize a container`'s memory consumption.]] \ No newline at end of file diff --git a/uppsrc/Core/srcdoc.tpp/Packages$en-us.tpp b/uppsrc/Core/srcdoc.tpp/Packages_en-us.tpp similarity index 97% rename from uppsrc/Core/srcdoc.tpp/Packages$en-us.tpp rename to uppsrc/Core/srcdoc.tpp/Packages_en-us.tpp index 58c7fc169..55fd1c3e0 100644 --- a/uppsrc/Core/srcdoc.tpp/Packages$en-us.tpp +++ b/uppsrc/Core/srcdoc.tpp/Packages_en-us.tpp @@ -1,89 +1,89 @@ -topic "Standard Ultimate++ packages"; -[2 $$0,0#00000000000000000000000000000000:Default] -[l288;i1120;a17;O9;~~~.1408;2 $$1,0#10431211400427159095818037425705:param] -[a83;*R6 $$2,5#31310162474203024125188417583966:caption] -[b83;*4 $$3,5#07864147445237544204411237157677:title] -[i288;O9;C2 $$4,6#40027414424643823182269349404212:item] -[b42;a42;2 $$5,5#45413000475342174754091244180557:text] -[l288;b17;a17;2 $$6,6#27521748481378242620020725143825:desc] -[l321;t246;C@5;1 $$7,7#20902679421464641399138805415013:code] -[b2503;2 $$8,0#65142375456100023862071332075487:separator] -[*@(0.0.255)2 $$9,0#83433469410354161042741608181528:base] -[t4167;C2 $$10,0#37138531426314131251341829483380:class] -[l288;a17;*1 $$11,11#70004532496200323422659154056402:requirement] -[i417;b42;a42;O9;~~~.416;2 $$12,12#10566046415157235020018451313112:tparam] -[b167;C2 $$13,13#92430459443460461911108080531343:item1] -[i288;a42;O9;C2 $$14,14#77422149456609303542238260500223:item2] -[*@2$(0.128.128)2 $$15,15#34511555403152284025741354420178:NewsDate] -[l321;*C$7;2 $$16,16#03451589433145915344929335295360:result] -[l321;b83;a83;*C$7;2 $$17,17#07531550463529505371228428965313:result`-line] -[l160;t4167;*C+117 $$18,5#88603949442205825958800053222425:package`-title] -[2 $$19,0#53580023442335529039900623488521:gap] -[t4167;C2 $$20,20#70211524482531209251820423858195:class`-nested] -[b50;2 $$21,21#03324558446220344731010354752573:Par] -[{_}%EN-US -[s2; Standard Ultimate`+`+ packages&] -[ {{1851:8149 [s0; Core] -:: [s0; core components, like streams, string, containers, callbacks...] -:: [s0; Draw] -:: [s0; drawing routines, X11/Win32 interfaces] -:: [s0; CtrlCore] -:: [s0; basic GUI widgets and X11/Win32 interfaces] -:: [s0; CtrlLib] -:: [s0; standard library of GUI widgets] -:: [s0; RichText] -:: [s0; formatted text] -:: [s0; RichEdit] -:: [s0; word`-processor] -:: [s0; Sql] -:: [s0; common SQL functionality] -:: [s0; Oracle] -:: [s0; Oracle interface] -:: [s0; MySql] -:: [s0; MySql interface] -:: [s0; OleDB] -:: [s0; OLE DB interface] -:: [s0; SqlCtrl] -:: [s0; SQL GUI] -:: [s0; Image] -:: [s0; advanced raster operations] -:: [s0; Geom] -:: [s0; advanced FP geometry and graphics] -:: [s0; Esc] -:: [s0; ESC scripting language interpreter (Embedded SCripting language)] -:: [s0; Ole] -:: [s0; Win32 OLE operations] -:: [s0; Report] -:: [s0; printed reports package] -:: [s0; PdfDraw] -:: [s0; PDF output] -:: [s0; Painter] -:: [s0; Advanced 2D software renderer and SVG parser] -:: [s0; CodeEditor] -:: [s0; Source files oriented editor] -:: [s0; Skylark] -:: [s0; Web framework 1: create complexe websites using templates and -C`+`+ code] -:: [s0; Turtle] -:: [s0; Web framework 2: allows to run standard U`+`+ applications over -the web] -:: [s0; plugin/`*] -:: [s0; `"external`" sources adapted to work with U`+`+ or support for -various file formats]}}&] -[s0; &] -[s3; Standard applications (main packages)&] -[s0; &] -[ {{1851:8149 [s0; ide] -:: [s0; TheIDE development environment.] -:: [s0; umk] -:: [s0; U`+`+ commandline build utility] -:: [s0; Updater] -:: [s0; Small applications needed to run SelfUpdate on Win32.] -:: [s0; SqlCommander] -:: [s0; SQL GUI console.] -:: [s0; CbGen] -:: [s0; Utility to generate callback code.] -:: [s0; Crash] -:: [s0; Crush`-dump viewer.]}}&] -[s0; &] +topic "Standard Ultimate++ packages"; +[2 $$0,0#00000000000000000000000000000000:Default] +[l288;i1120;a17;O9;~~~.1408;2 $$1,0#10431211400427159095818037425705:param] +[a83;*R6 $$2,5#31310162474203024125188417583966:caption] +[b83;*4 $$3,5#07864147445237544204411237157677:title] +[i288;O9;C2 $$4,6#40027414424643823182269349404212:item] +[b42;a42;2 $$5,5#45413000475342174754091244180557:text] +[l288;b17;a17;2 $$6,6#27521748481378242620020725143825:desc] +[l321;t246;C@5;1 $$7,7#20902679421464641399138805415013:code] +[b2503;2 $$8,0#65142375456100023862071332075487:separator] +[*@(0.0.255)2 $$9,0#83433469410354161042741608181528:base] +[t4167;C2 $$10,0#37138531426314131251341829483380:class] +[l288;a17;*1 $$11,11#70004532496200323422659154056402:requirement] +[i417;b42;a42;O9;~~~.416;2 $$12,12#10566046415157235020018451313112:tparam] +[b167;C2 $$13,13#92430459443460461911108080531343:item1] +[i288;a42;O9;C2 $$14,14#77422149456609303542238260500223:item2] +[*@2$(0.128.128)2 $$15,15#34511555403152284025741354420178:NewsDate] +[l321;*C$7;2 $$16,16#03451589433145915344929335295360:result] +[l321;b83;a83;*C$7;2 $$17,17#07531550463529505371228428965313:result`-line] +[l160;t4167;*C+117 $$18,5#88603949442205825958800053222425:package`-title] +[2 $$19,0#53580023442335529039900623488521:gap] +[t4167;C2 $$20,20#70211524482531209251820423858195:class`-nested] +[b50;2 $$21,21#03324558446220344731010354752573:Par] +[{_}%EN-US +[s2; Standard Ultimate`+`+ packages&] +[ {{1851:8149 [s0; Core] +:: [s0; core components, like streams, string, containers, callbacks...] +:: [s0; Draw] +:: [s0; drawing routines, X11/Win32 interfaces] +:: [s0; CtrlCore] +:: [s0; basic GUI widgets and X11/Win32 interfaces] +:: [s0; CtrlLib] +:: [s0; standard library of GUI widgets] +:: [s0; RichText] +:: [s0; formatted text] +:: [s0; RichEdit] +:: [s0; word`-processor] +:: [s0; Sql] +:: [s0; common SQL functionality] +:: [s0; Oracle] +:: [s0; Oracle interface] +:: [s0; MySql] +:: [s0; MySql interface] +:: [s0; OleDB] +:: [s0; OLE DB interface] +:: [s0; SqlCtrl] +:: [s0; SQL GUI] +:: [s0; Image] +:: [s0; advanced raster operations] +:: [s0; Geom] +:: [s0; advanced FP geometry and graphics] +:: [s0; Esc] +:: [s0; ESC scripting language interpreter (Embedded SCripting language)] +:: [s0; Ole] +:: [s0; Win32 OLE operations] +:: [s0; Report] +:: [s0; printed reports package] +:: [s0; PdfDraw] +:: [s0; PDF output] +:: [s0; Painter] +:: [s0; Advanced 2D software renderer and SVG parser] +:: [s0; CodeEditor] +:: [s0; Source files oriented editor] +:: [s0; Skylark] +:: [s0; Web framework 1: create complexe websites using templates and +C`+`+ code] +:: [s0; Turtle] +:: [s0; Web framework 2: allows to run standard U`+`+ applications over +the web] +:: [s0; plugin/`*] +:: [s0; `"external`" sources adapted to work with U`+`+ or support for +various file formats]}}&] +[s0; &] +[s3; Standard applications (main packages)&] +[s0; &] +[ {{1851:8149 [s0; ide] +:: [s0; TheIDE development environment.] +:: [s0; umk] +:: [s0; U`+`+ commandline build utility] +:: [s0; Updater] +:: [s0; Small applications needed to run SelfUpdate on Win32.] +:: [s0; SqlCommander] +:: [s0; SQL GUI console.] +:: [s0; CbGen] +:: [s0; Utility to generate callback code.] +:: [s0; Crash] +:: [s0; Crush`-dump viewer.]}}&] +[s0; &] [s0;3 ]] \ No newline at end of file diff --git a/uppsrc/Core/srcdoc.tpp/Translating$en-us.tpp b/uppsrc/Core/srcdoc.tpp/Translating_en-us.tpp similarity index 99% rename from uppsrc/Core/srcdoc.tpp/Translating$en-us.tpp rename to uppsrc/Core/srcdoc.tpp/Translating_en-us.tpp index 19f05066b..0628ac9be 100644 --- a/uppsrc/Core/srcdoc.tpp/Translating$en-us.tpp +++ b/uppsrc/Core/srcdoc.tpp/Translating_en-us.tpp @@ -1,96 +1,96 @@ -topic "Translating U++"; -[2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;*@(64)2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,2#27521748481378242620020725143825:desc] -[a83;*R6 $$3,0#31310162474203024125188417583966:caption] -[l288;i1121;b17;O9;~~~.1408;2 $$4,0#10431211400427159095818037425705:param] -[i448;a25;kKO9;*@(64)2 $$5,0#37138531426314131252341829483370:item] -[*+117 $$6,6#14700283458701402223321329925657:header] -[l416;2 $$7,7#55548704457842300043401641954952:nested`-desc] -[l288;i448;a25;kO9;*2 $$8,8#64691275497409617375831514634295:nested`-class] -[b42;a42;ph2 $$9,9#45413000475342174754091244180557:text] -[#b83;*4 $$10,9#07864147445237544204411237157677:title] -[{_}%EN-US -[s3; HOWTO: Submit translations to the U`+`+ project&] -[s9; Before starting the translation work, get to know TheIDE and -pay attention to the context of the terminology used. Try to -use already established computer terminology in your language -instead of inventing new terms.&] -[s10; 1. Export .tr file&] -[s9; Run the latest TheIDE and load the uppsrc AllForI18n. This package -uses all other uppsrc packages that need translating.&] -[s9; Choose Project / Export runtime translation file (`*.tr):&] -[s0; &] -[s0;= -@@image:2106&775 -(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) -&] -[s0; &] -[s9; Choose the language and eventually the encoding (prefer UTF`-8), -choose the output directory and hit OK.&] -[s9; As a result, a translation template file (e.g. [/ fr`-fr.UTF`-8.tr]) -will be created in the output directory and opened in TheIDE.&] -[s10; 2. Translate .tr file&] -[s9; Translate the resulting file using TheIDE or a text editor that -supports the character set you have selected. You simply need -to fill in the texts in your language corresponding to the English -expressions where the translation is missing `- the text is empty -string.&] -[s9; Example [/ fr`-fr.UTF`-8.tr] file being translated:&] -[s0; &] -[ {{10000 [s0; [*C@5+75 LANGUAGE `"FR`-FR UTF`-8`";]&] -[s0; [*C@5+75 // CtrlLib/CtrlLib.t]&] -[s0; [*C@5+75 `"(default)`",]&] -[s0; [*C@5+75 -|`"Par défaut`";]&] -[s0;*C@5+75 &] -[s0; [*C@5+75 `"Undo`",]&] -[s0; [*C@5+75 -|`"Annuler`";]&] -[s0;*C@5+75 &] -[s0; [*C@5+75 `"Cut`",]&] -[s0; [*C@5+75 -|`"Couper`";]&] -[s0;*C@5+75 &] -[s0; [*C@5+75 `"Copy`",]&] -[s0; [*C@5+75 -|][*C@3+75 `"`"][*C@5+75 ;]&] -[s0; ......]}}&] -[s0; &] -[s9; We recommend simply searching for empty strings `- [@3 `"`"].&] -[s9; Important: characters `'[@(0.0.255) `\v]`' and `'[@(0.0.255) `\a]`' -are prefix separators `- you are not supposed to translate prefix -or copy it to the translation.&] -[s9; Example:&] -[s0; &] -[ {{10000 [s0; T`_(`"date[@(0.0.255) `\v]May`")&] -[s0; &] -[s0; // csCZ(`"datum[@(0.0.255) `\v]KvÄ›ten`") Wrong: Do not translate -`"date`" prefix!&] -[s0; // csCZ(`"date[@(0.0.255) `\v]KvÄ›ten`") Wrong: Do not copy `"date`" -prefix!&] -[s0; &] -[s0; csCZ(`"KvÄ›ten`") // Correct]}}&] -[s10; 3. Date formatting&] -[s9; There are 3 texts in Core.t that are used to represent default -localized. Date formatting and scanning:&] -[s0; &] -[ {{10000 [s0; T`_(`"date`-format[@(0.0.255) `\a]%2:02d/%3:02d/%1:4d`")&] -[s0; &] -[s0; T`_(`"date`-scan[@(0.0.255) `\a]mdy`")&] -[s0; &] -[s0; T`_(`"date`-filter[@(0.0.255) `\a]A/[@(0.0.255) `\r] .`-`")]}}&] -[s0; &] -[s9; The format of these strings is described in [^topic`:`/`/Core`/src`/DateFmt`$en`-us^ D -ate formatting and scanning].&] -[s10; 4. Submit the translation&] -[s9; Submit the translated .tr file to the Ultimate`+`+ project forum -for peer review and to be merged in source.&] -[s9; Use:&] -[s0; [_^http`:`/`/www`.ultimatepp`.org`/forums`/index`.php`?t`=thread`&frm`_id`=74`&^@(0.0.255) U -ltimate`+`+ forum: Home »]&] -[s0; [@(0.0.255) -|][_^http`:`/`/www`.ultimatepp`.org`/forums`/index`.php`?t`=thread`&frm`_id`=74`&^@(0.0.255) U -`+`+ Library support »]&] -[s0; [@(0.0.255) -|-|][_^http`:`/`/www`.ultimatepp`.org`/forums`/index`.php`?t`=thread`&frm`_id`=74`&^@(0.0.255) U -`+`+ Libraries and TheIDE: i18n, Unicode and Internationalization]&] -[s0;_^http`:`/`/www`.ultimatepp`.org`/forums`/index`.php`?t`=thread`&frm`_id`=74`&^@(0.0.255) &] -[s10; 5. Repeat!&] -[s9; U`+`+ is evolving framework and the set of text literals is -growing and changing. Therefore you are welcome to check from +topic "Translating U++"; +[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;*@(64)2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,2#27521748481378242620020725143825:desc] +[a83;*R6 $$3,0#31310162474203024125188417583966:caption] +[l288;i1121;b17;O9;~~~.1408;2 $$4,0#10431211400427159095818037425705:param] +[i448;a25;kKO9;*@(64)2 $$5,0#37138531426314131252341829483370:item] +[*+117 $$6,6#14700283458701402223321329925657:header] +[l416;2 $$7,7#55548704457842300043401641954952:nested`-desc] +[l288;i448;a25;kO9;*2 $$8,8#64691275497409617375831514634295:nested`-class] +[b42;a42;ph2 $$9,9#45413000475342174754091244180557:text] +[#b83;*4 $$10,9#07864147445237544204411237157677:title] +[{_}%EN-US +[s3; HOWTO: Submit translations to the U`+`+ project&] +[s9; Before starting the translation work, get to know TheIDE and +pay attention to the context of the terminology used. Try to +use already established computer terminology in your language +instead of inventing new terms.&] +[s10; 1. Export .tr file&] +[s9; Run the latest TheIDE and load the uppsrc AllForI18n. This package +uses all other uppsrc packages that need translating.&] +[s9; Choose Project / Export runtime translation file (`*.tr):&] +[s0; &] +[s0;= +@@image:2106&775 +(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) +&] +[s0; &] +[s9; Choose the language and eventually the encoding (prefer UTF`-8), +choose the output directory and hit OK.&] +[s9; As a result, a translation template file (e.g. [/ fr`-fr.UTF`-8.tr]) +will be created in the output directory and opened in TheIDE.&] +[s10; 2. Translate .tr file&] +[s9; Translate the resulting file using TheIDE or a text editor that +supports the character set you have selected. You simply need +to fill in the texts in your language corresponding to the English +expressions where the translation is missing `- the text is empty +string.&] +[s9; Example [/ fr`-fr.UTF`-8.tr] file being translated:&] +[s0; &] +[ {{10000 [s0; [*C@5+75 LANGUAGE `"FR`-FR UTF`-8`";]&] +[s0; [*C@5+75 // CtrlLib/CtrlLib.t]&] +[s0; [*C@5+75 `"(default)`",]&] +[s0; [*C@5+75 -|`"Par défaut`";]&] +[s0;*C@5+75 &] +[s0; [*C@5+75 `"Undo`",]&] +[s0; [*C@5+75 -|`"Annuler`";]&] +[s0;*C@5+75 &] +[s0; [*C@5+75 `"Cut`",]&] +[s0; [*C@5+75 -|`"Couper`";]&] +[s0;*C@5+75 &] +[s0; [*C@5+75 `"Copy`",]&] +[s0; [*C@5+75 -|][*C@3+75 `"`"][*C@5+75 ;]&] +[s0; ......]}}&] +[s0; &] +[s9; We recommend simply searching for empty strings `- [@3 `"`"].&] +[s9; Important: characters `'[@(0.0.255) `\v]`' and `'[@(0.0.255) `\a]`' +are prefix separators `- you are not supposed to translate prefix +or copy it to the translation.&] +[s9; Example:&] +[s0; &] +[ {{10000 [s0; T`_(`"date[@(0.0.255) `\v]May`")&] +[s0; &] +[s0; // csCZ(`"datum[@(0.0.255) `\v]KvÄ›ten`") Wrong: Do not translate +`"date`" prefix!&] +[s0; // csCZ(`"date[@(0.0.255) `\v]KvÄ›ten`") Wrong: Do not copy `"date`" +prefix!&] +[s0; &] +[s0; csCZ(`"KvÄ›ten`") // Correct]}}&] +[s10; 3. Date formatting&] +[s9; There are 3 texts in Core.t that are used to represent default +localized. Date formatting and scanning:&] +[s0; &] +[ {{10000 [s0; T`_(`"date`-format[@(0.0.255) `\a]%2:02d/%3:02d/%1:4d`")&] +[s0; &] +[s0; T`_(`"date`-scan[@(0.0.255) `\a]mdy`")&] +[s0; &] +[s0; T`_(`"date`-filter[@(0.0.255) `\a]A/[@(0.0.255) `\r] .`-`")]}}&] +[s0; &] +[s9; The format of these strings is described in [^topic`:`/`/Core`/src`/DateFmt`$en`-us^ D +ate formatting and scanning].&] +[s10; 4. Submit the translation&] +[s9; Submit the translated .tr file to the Ultimate`+`+ project forum +for peer review and to be merged in source.&] +[s9; Use:&] +[s0; [_^http`:`/`/www`.ultimatepp`.org`/forums`/index`.php`?t`=thread`&frm`_id`=74`&^@(0.0.255) U +ltimate`+`+ forum: Home »]&] +[s0; [@(0.0.255) -|][_^http`:`/`/www`.ultimatepp`.org`/forums`/index`.php`?t`=thread`&frm`_id`=74`&^@(0.0.255) U +`+`+ Library support »]&] +[s0; [@(0.0.255) -|-|][_^http`:`/`/www`.ultimatepp`.org`/forums`/index`.php`?t`=thread`&frm`_id`=74`&^@(0.0.255) U +`+`+ Libraries and TheIDE: i18n, Unicode and Internationalization]&] +[s0;_^http`:`/`/www`.ultimatepp`.org`/forums`/index`.php`?t`=thread`&frm`_id`=74`&^@(0.0.255) &] +[s10; 5. Repeat!&] +[s9; U`+`+ is evolving framework and the set of text literals is +growing and changing. Therefore you are welcome to check from time to time for new texts to be translated.]] \ No newline at end of file diff --git a/uppsrc/Core/srcdoc.tpp/Tutorial$en-us.tpp b/uppsrc/Core/srcdoc.tpp/Tutorial_en-us.tpp similarity index 96% rename from uppsrc/Core/srcdoc.tpp/Tutorial$en-us.tpp rename to uppsrc/Core/srcdoc.tpp/Tutorial_en-us.tpp index 04027a861..62e7055ba 100644 --- a/uppsrc/Core/srcdoc.tpp/Tutorial$en-us.tpp +++ b/uppsrc/Core/srcdoc.tpp/Tutorial_en-us.tpp @@ -1,3307 +1,3307 @@ -topic "U++ Core Tutorial"; -[2 $$0,0#00000000000000000000000000000000:Default] -[l288;i1120;a17;O9;~~~.1408;2 $$1,0#10431211400427159095818037425705:param] -[a83;*R6 $$2,5#31310162474203024125188417583966:caption] -[b83;*4 $$3,5#07864147445237544204411237157677:title] -[i288;O9;C2 $$4,6#40027414424643823182269349404212:item] -[b42;a42;ph2 $$5,5#45413000475342174754091244180557:text] -[l288;b17;a17;2 $$6,6#27521748481378242620020725143825:desc] -[l321;C@5;1 $$7,7#20902679421464641399138805415013:code] -[b2503;2 $$8,0#65142375456100023862071332075487:separator] -[*@(0.0.255)2 $$9,0#83433469410354161042741608181528:base] -[C2 $$10,0#37138531426314131251341829483380:class] -[l288;a17;*1 $$11,11#70004532496200323422659154056402:requirement] -[i417;b42;a42;O9;~~~.416;2 $$12,12#10566046415157235020018451313112:tparam] -[b167;C2 $$13,13#92430459443460461911108080531343:item1] -[i288;a42;O9;C2 $$14,14#77422149456609303542238260500223:item2] -[*@2$(0.128.128)2 $$15,15#34511555403152284025741354420178:NewsDate] -[l321;*C$7;2 $$16,16#03451589433145915344929335295360:result] -[l321;*C$7;2 $$17,17#07531550463529505371228428965313:result`-line] -[l160;*C+117 $$18,5#88603949442205825958800053222425:package`-title] -[2 $$19,0#53580023442335529039900623488521:gap] -[C2 $$20,20#70211524482531209251820423858195:class`-nested] -[b50;2 $$21,21#03324558446220344731010354752573:Par] -[H8;b73;*+150 $$22,5#07864147445237544204111237153677:subtitle] -[{_} -[s2;%% U`+`+ Core Tutorial&] -[s0;3 &] -[s0;3 &] -[s0; [^`#Chapter`_1^ 1. Basics]&] -[s0; ___[^`#Section`_1`_1^ 1.1 Logging]&] -[s0; ___[^`#Section`_1`_2^ 1.2 String]&] -[s0; ___[^`#Section`_1`_3^ 1.3 StringBuffer]&] -[s0; ___[^`#Section`_1`_4^ 1.4 WString]&] -[s0; ___[^`#Section`_1`_5^ 1.5 Date and Time]&] -[s0; ___[^`#Section`_1`_6^ 1.6 AsString, ToString and operator<<]&] -[s0; ___[^`#Section`_1`_7^ 1.7 CombineHash]&] -[s0; ___[^`#Section`_1`_8^ 1.8 SgnCompare and CombineCompare]&] -[s0; &] -[s0; [^`#Chapter`_2^ 2. Array containers]&] -[s0; ___[^`#Section`_2`_1^ 2.1 Vector basics]&] -[s0; ___[^`#Section`_2`_2^ 2.2 Vector operations]&] -[s0; ___[^`#Section`_2`_3^ 2.3 Transfer issues]&] -[s0; ___[^`#Section`_2`_4^ 2.4 Client types in U`+`+ containers]&] -[s0; ___[^`#Section`_2`_5^ 2.5 Array flavor]&] -[s0; ___[^`#Section`_2`_6^ 2.6 Polymorphic Array]&] -[s0; ___[^`#Section`_2`_7^ 2.7 Bidirectional containers]&] -[s0; ___[^`#Section`_2`_8^ 2.8 Index]&] -[s0; ___[^`#Section`_2`_9^ 2.9 Index and client types]&] -[s0; ___[^`#Section`_2`_10^ 2.10 VectorMap, ArrayMap]&] -[s0; ___[^`#Section`_2`_11^ 2.11 One]&] -[s0; ___[^`#Section`_2`_12^ 2.12 Any]&] -[s0; ___[^`#Section`_2`_13^ 2.13 InVector, InArray]&] -[s0; ___[^`#Section`_2`_14^ 2.14 SortedIndex, SortedVectorMap, SortedArrayMap]&] -[s0; ___[^`#Section`_2`_15^ 2.15 Tuples]&] -[s0; &] -[s0; [^`#Chapter`_3^ 3. Ranges and algoritims]&] -[s0; ___[^`#Section`_3`_1^ 3.1 Range]&] -[s0; ___[^`#Section`_3`_2^ 3.2 Algorithms]&] -[s0; ___[^`#Section`_3`_3^ 3.3 Sorting]&] -[s0; &] -[s0; [^`#Chapter`_4^ 4. Value]&] -[s0; ___[^`#Section`_4`_1^ 4.1 Value]&] -[s0; ___[^`#Section`_4`_2^ 4.2 Null]&] -[s0; ___[^`#Section`_4`_3^ 4.3 Client types and Value, RawValue, RichValue]&] -[s0; ___[^`#Section`_4`_4^ 4.4 ValueArray and ValueMap]&] -[s0; &] -[s0; [^`#Chapter`_5^ 5. Function and lambdas]&] -[s0; ___[^`#Section`_5`_1^ 5.1 Function]&] -[s0; ___[^`#Section`_5`_2^ 5.2 Capturing U`+`+ containers into lambdas]&] -[s0; &] -[s0; [^`#Chapter`_6^ 6. Multithreading]&] -[s0; ___[^`#Section`_6`_1^ 6.1 Thread]&] -[s0; ___[^`#Section`_6`_2^ 6.2 Mutex]&] -[s0; ___[^`#Section`_6`_3^ 6.3 ConditionVariable]&] -[s0; ___[^`#Section`_6`_4^ 6.4 CoWork]&] -[s0; ___[^`#Section`_6`_5^ 6.5 CoPartition]&] -[s0; ___[^`#Section`_6`_6^ 6.6 Parallel algorithms]&] -[s0;^`#Section`_6`_6^ &] -[s22;:Chapter`_1: 1. Basics&] -[s3;:Section`_1`_1: 1.1 Logging&] -[s5; Logging is a useful technique to trace the flow of the code -and examine results. In this tutorial we will be using logging -extensively, so let us start tutorial with the explanation of -logging.&] -[s5; In debug mode and with default settings, macro [*C@5 LOG] puts -string into output log file. Log file is placed into `'config`-directory`', -which by default is .exe directory in Win32 and `~/.upp/appname -in POSIX.&] -[s5; In TheIDE, you can access the log using `'Debug`'/`'View the -log file Alt`+L`'.&] -[s0; &] -[s7; LOG(`"Hello world`");&] -[s0; &] -[s17; Hello world&] -[s0; &] -[s5; You can log values of various types, as long as they have [*C@5 AsString] -function defined You can chain values in single [*C@5 LOG] using -[*C@5 operator<<]:&] -[s0; &] -[s7; int x `= 123;&] -[s7; LOG(`"Value of x is `" << x);&] -[s0; &] -[s17; Value of x is 123&] -[s0; &] -[s5; As it is very common to log a value of single variable, [*C@5 DUMP] -macro provides a useful shortcut, creating a log line with the -variable name and value:&] -[s0; &] -[s7; DUMP(x);&] -[s0; &] -[s17; x `= 123&] -[s0; &] -[s5; To get the value in hexadecimal code, you can use [*C@5 LOGHEX] -/ [*C@5 DUMPHEX]&] -[s0; &] -[s7; DUMPHEX(x);&] -[s7; String h `= `"foo`";&] -[s7; DUMPHEX(h);&] -[s0; &] -[s17; x `= 0x7b&] -[s17; h `= Memory at 0x0x7ffcb01abe30, size 0x3 `= 3&] -[s17; `+0 0x00007FFCB01ABE30 66 6F 6F - foo &] -[s0; &] -[s5; To log the value of a container (or generic Range), you can -either use normal [*C@5 LOG] / [*C@5 DUMP]:&] -[s0; &] -[s7; Vector v `= `{ 1, 2, 3 `};&] -[s7; &] -[s7; DUMP(v);&] -[s0; &] -[s17; v `= `[1, 2, 3`]&] -[s0; &] -[s5; or you can use DUMPC for multi`-line output:&] -[s0; &] -[s7; DUMPC(v);&] -[s0; &] -[s17; v:&] -[s17; -|`[0`] `= 1&] -[s17; -|`[1`] `= 2&] -[s17; -|`[2`] `= 3&] -[s0; &] -[s5; For maps, use DUMPM:&] -[s0; &] -[s7; VectorMap map `= `{ `{ 1, `"one`" `}, `{ 2, `"two`" -`} `};&] -[s7; &] -[s7; DUMP(map);&] -[s0; &] -[s17; map `= `{1: one, 2: two`}&] -[s0; &] -[s0; &] -[s7; DUMPM(map);&] -[s0; &] -[s17; map:&] -[s17; -|`[0`] `= (1) one&] -[s17; -|`[1`] `= (2) two&] -[s0; &] -[s5; All normal [*C@5 LOG]s are removed in release mode. If you need -to log things in release mode, you need to use [*C@5 LOG]/``DUMP`` -variant with `'[*C@5 R]`' prefix ([*C@5 RLOG], [*C@5 RDUMP], [*C@5 RDUMPHEX]...):&] -[s0; &] -[s7; RLOG(`"This will be logged in release mode too!`");&] -[s0; &] -[s17; This will be logged in release mode too!&] -[s0; &] -[s5; Sort of opposite situation is when adding temporary [*C@5 LOG]s -to the code for debugging. In that case, `'[*C@5 D]`' prefixed -variants ([*C@5 DLOG], [*C@5 DDUMP], [*C@5 DDUMPHEX]...) are handy -`- these cause compile error in release mode, so will not get -forgotten in the code past the release:&] -[s0; &] -[s7; DLOG(`"This would not compile in release mode.`");&] -[s0; &] -[s17; This would not compile in release mode.&] -[s0; &] -[s5; The last flavor of [*C@5 LOG] you can encounter while reading -U`+`+ sources is the one prefixed with `'[*C@5 L]`'. This one is -not actually defined in U`+`+ library and is just a convention. -On the start of file, there is usually something like:&] -[s0; &] -[s7; #define LLOG(x) // DLOG(x)&] -[s0; &] -[s5; and by uncommenting the body part, you can activate the logging -in that particular file.&] -[s5; While logging to .log file is default, there are various ways -how to affect logging, for example following line adjusts logging -to output the log both to the console and .log file:&] -[s0; &] -[s7; StdLogSetup(LOG`_COUT`|LOG`_FILE);&] -[s0; &] -[s3;H4;:Section`_1`_2: 1.2 String&] -[s5; String is a value type useful for storing text or binary data.&] -[s0; &] -[s7; String a `= `"Hello`";&] -[s7; DUMP(a);&] -[s0; &] -[s17; a `= Hello&] -[s0; &] -[s5; You can concatenate it with another String or literal:&] -[s0; &] -[s7; a `= a `+ `" world`";&] -[s7; DUMP(a);&] -[s0; &] -[s17; a `= Hello world&] -[s0; &] -[s5; Or single character or specified number of characters from another -[*C@5 String] or literal:&] -[s0; &] -[s7; a.Cat(`'!`');&] -[s7; DUMP(a);&] -[s0; &] -[s17; a `= Hello world!&] -[s0; &] -[s0; &] -[s7; a.Cat(`"ABCDEFGHIJKLM`", 3);&] -[s7; DUMP(a);&] -[s0; &] -[s17; a `= Hello world!ABC&] -[s0; &] -[s5; [*C@5 Clear] method empties the String:&] -[s0; &] -[s7; a.Clear();&] -[s7; DUMP(a);&] -[s0; &] -[s17; a `= &] -[s0; &] -[s5; You can use [*C@5 operator<<] to append to existing [*C@5 String]. -Non`-string values are converted to appropriate [*C@5 String] representation -(using standard function [*C@5 AsString], whose default template -definition calls [*C@5 ToString] method for value):&] -[s0; &] -[s7; for(int i `= 0; i < 10; i`+`+)&] -[s7; -|a << i << `", `";&] -[s7; &] -[s7; DUMP(a);&] -[s0; &] -[s17; a `= 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, &] -[s0; &] -[s5; Sometimes is is useful to use [*C@5 operator<<] to produce a temporary -[*C@5 String] value (e.g. as real argument to function call):&] -[s0; &] -[s7; String b `= String() << `"Number is `" << 123 << `".`";&] -[s7; &] -[s7; DUMP(b);&] -[s0; &] -[s17; b `= Number is 123.&] -[s0; &] -[s5; String provides many various methods for obtaining character -count, inserting characters into [*C@5 String] or removing them:&] -[s0; &] -[s7; a `= `"0123456789`";&] -[s7; &] -[s7; DUMP(a.GetCount());&] -[s0; &] -[s17; a.GetCount() `= 10&] -[s0; &] -[s0; &] -[s7; DUMP(a.GetLength()); // GetLength is a synonym of GetCount&] -[s0; &] -[s17; a.GetLength() `= 10&] -[s0; &] -[s0; &] -[s7; a.Insert(6, `"`");&] -[s7; DUMP(a);&] -[s0; &] -[s17; a `= 0123456789&] -[s0; &] -[s0; &] -[s7; a.Remove(2, 2);&] -[s7; DUMP(a);&] -[s0; &] -[s17; a `= 01456789&] -[s0; &] -[s5; as well as searching and comparing methods:&] -[s0; &] -[s7; DUMP(a.Find(`'e`'));&] -[s7; DUMP(a.ReverseFind(`'e`'));&] -[s0; &] -[s17; a.Find(`'e`') `= 8&] -[s17; a.ReverseFind(`'e`') `= 11&] -[s0; &] -[s0; &] -[s7; DUMP(a.Find(`"ins`"));&] -[s0; &] -[s17; a.Find(`"ins`") `= 5&] -[s0; &] -[s0; &] -[s7; DUMP(a.StartsWith(`"ABC`"));&] -[s7; DUMP(a.StartsWith(`"01`"));&] -[s7; DUMP(a.EndsWith(`"89`"));&] -[s0; &] -[s17; a.StartsWith(`"ABC`") `= false&] -[s17; a.StartsWith(`"01`") `= true&] -[s17; a.EndsWith(`"89`") `= true&] -[s0; &] -[s5; You can get slice of String using Mid method; with single parameter -it provides slice to the end of String:&] -[s0; &] -[s7; DUMP(a.Mid(3, 3));&] -[s7; DUMP(a.Mid(3));&] -[s0; &] -[s17; a.Mid(3, 3) `= 56789&] -[s0; &] -[s5; You can also trim the length of String using Trim (this is faster -than using any other method):&] -[s0; &] -[s7; a.Trim(4);&] -[s7; DUMP(a);&] -[s0; &] -[s17; a `= 0145&] -[s0; &] -[s5; You can obtain integer values of individual characters using -operator`[`]:&] -[s0; &] -[s7; DUMP(a`[0`]);&] -[s0; &] -[s17; a`[0`] `= 48&] -[s0; &] -[s5; or the value of first character using operator`* (note that -if [*C@5 GetCount() `=`= 0], this will return zero terminator):&] -[s0; &] -[s7; DUMP(`*a);&] -[s0; &] -[s17; `*a `= 48&] -[s0; &] -[s0; &] -[s7; a.Clear();&] -[s7; &] -[s7; DUMP(`*a);&] -[s0; &] -[s17; `*a `= 0&] -[s0; &] -[s5; [*C@5 String] has implicit cast to zero terminated [*C@5 const char -`*ptr] (only valid as long as [*C@5 String] does not mutate:&] -[s0; &] -[s7; a `= `"1234`";&] -[s7; const char `*s `= a;&] -[s7; while(`*s)&] -[s7; -|LOG(`*s`+`+);&] -[s0; &] -[s17; 1&] -[s17; 2&] -[s17; 3&] -[s17; 4&] -[s0; &] -[s5; [*C@5 String] also has standard [*C@5 begin] [*C@5 end] methods, which -e.g. allows for C`+`+11 [*C@5 for]:&] -[s0; &] -[s7; for(char ch : a)&] -[s7; -|LOG(ch);&] -[s0; &] -[s17; 1&] -[s17; 2&] -[s17; 3&] -[s17; 4&] -[s0; &] -[s5; It is absolutely OK and common to use String for storing binary -data, including zeroes:&] -[s0; &] -[s7; a.Cat(0);&] -[s7; &] -[s7; DUMPHEX(a);&] -[s0; &] -[s17; a `= Memory at 0x0x7ffcb01abd20, size 0x5 `= 5&] -[s17; `+0 0x00007FFCB01ABD20 31 32 33 34 00 - 1234. &] -[s0; &] -[s3;H4;:Section`_1`_3: 1.3 StringBuffer&] -[s5; If you need a direct write access to [*C@5 String]`'s C`-string -character buffer, you can use complementary [*C@5 StringBuffer] -class. One of reasons to do so is when you have to deal with -some C`-API functions that expects to write directly to [*C@5 char -`*] and you would like that result converted to the [*C@5 String]:&] -[s0; &] -[s7; void CApiFunction(char `*c)&] -[s7; `{&] -[s7; -|strcpy(c, `"Hello`");&] -[s7; `}&] -[s7; &] -[s7; StringBuffer b;&] -[s7; b.SetLength(200);&] -[s7; CApiFunction(b);&] -[s7; b.Strlen();&] -[s7; String x `= b;&] -[s7; &] -[s7; DUMP(x);&] -[s0; &] -[s17; x `= Hello&] -[s0; &] -[s5; In this case, [*C@5 SetLength] creates a C array of 200 characters. -You can then call C`-API function. Later you set the real length -using [*C@5 Strlen] `- this function performs strlen of buffer -and sets the length accordingly. Later you simply assign the -[*C@5 StringBuffer] to [*C@5 String]. Note that for performance reasons, -this operation clears the [*C@5 StringBuffer] content (operation -is fast and does not depend on the number of characters).&] -[s5; Another usage scenario of StringBuffer is altering existing -String:&] -[s0; &] -[s7; b `= x;&] -[s7; b`[1`] `= `'a`';&] -[s7; x `= b;&] -[s7; &] -[s7; DUMP(x);&] -[s0; &] -[s17; x `= Hallo&] -[s0; &] -[s5; Similar to assigning StringBuffer to String, assigning String -to StringBuffer clears the source String.&] -[s5; StringBuffer also provides appending operations:&] -[s0; &] -[s7; b `= x;&] -[s7; b.Cat(`'!`');&] -[s7; x `= b;&] -[s7; &] -[s7; DUMP(x);&] -[s0; &] -[s17; x `= Hallo!&] -[s0; &] -[s5; Note that sometimes when creating some String from a lot of -single characters, using StringBuffer for the operation is slightly -faster then using String directly.&] -[s3;H4;:Section`_1`_4: 1.4 WString&] -[s5; String works with 8 bit characters. For 16`-bit character encoding -use [*C@5 WString]. Both classes are closely related and share -most of interface methods. U`+`+ also provides conversions between -[*C@5 String] and [*C@5 WString] and you can also use 8 bit string -literals with [*C@5 WString]. Conversion is ruled by current default -character set. Default value of default character set is [*C@5 CHARSET`_UTF8]. -This conversion is also used in [*C@5 WString`::ToString], e.g. -when putting [*C@5 WString] to log:&] -[s0; &] -[s7; WString x `= `"characters 280`-300: `"; // you can assign 8`-bit -character literal to WString&] -[s7; for(int i `= 280; i < 300; i`+`+)&] -[s7; -|x.Cat(i);&] -[s7; &] -[s7; DUMP(x);&] -[s0; &] -[s17; x `= characters 280`-300: ĘęĚěĜÄĞğĠġĢģĤĥĦħĨĩĪī&] -[s0; &] -[s5; [*C@5 ToString] converts [*C@5 WString] to [*C@5 String]:&] -[s0; &] -[s7; String y `= x.ToString();&] -[s7; DUMP(y);&] -[s0; &] -[s17; y `= characters 280`-300: ĘęĚěĜÄĞğĠġĢģĤĥĦħĨĩĪī&] -[s0; &] -[s5; [*C@5 ToWString] converts [*C@5 String] to [*C@5 WString]:&] -[s0; &] -[s7; y.Cat(`" (appended)`"); // you can use 8`-bit character literals -in most WString operations&] -[s7; x `= y.ToWString();&] -[s7; &] -[s7; DUMP(x);&] -[s0; &] -[s17; x `= characters 280`-300: ĘęĚěĜÄĞğĠġĢģĤĥĦħĨĩĪī -(appended)&] -[s0; &] -[s3;H4;:Section`_1`_5: 1.5 Date and Time&] -[s5; To represent date and time, U`+`+ provides [*C@5 Date] and [*C@5 Time] -concrete types.&] -[s0; &] -[s7; Date date `= GetSysDate();&] -[s7; &] -[s7; DUMP(date);&] -[s0; &] -[s17; date `= 07/19/2017&] -[s0; &] -[s5; All data members of [*C@5 Date] structure are public:&] -[s0; &] -[s7; DUMP((int)date.year); // we need to cast to int because some -date members&] -[s7; DUMP((int)date.month); // are of unsigned character type which -would log&] -[s7; DUMP((int)date.day); // as characters&] -[s0; &] -[s17; (int)date.year `= 2017&] -[s17; (int)date.month `= 7&] -[s17; (int)date.day `= 19&] -[s0; &] -[s5; Dates can be compared:&] -[s0; &] -[s7; DUMP(date > Date(2000, 1, 1));&] -[s0; &] -[s17; date > Date(2000, 1, 1) `= true&] -[s0; &] -[s5; Adding a number to [*C@5 Date] adds a number of days to it, incrementing/decrement -ing goes to the next/previous day:&] -[s0; &] -[s7; DUMP(date `+ 1);&] -[s7; DUMP(`-`-date);&] -[s7; DUMP(`+`+date);&] -[s0; &] -[s17; date `+ 1 `= 07/20/2017&] -[s17; `-`-date `= 07/18/2017&] -[s17; `+`+date `= 07/19/2017&] -[s0; &] -[s5; Subtraction of dates yields a number of days between them:&] -[s0; &] -[s7; DUMP(date `- Date(2000, 1, 1));&] -[s0; &] -[s17; date `- Date(2000, 1, 1) `= 6409&] -[s0; &] -[s5; There are several [*C@5 Date] and calendar related functions:&] -[s0; &] -[s7; DUMP(IsLeapYear(2012));&] -[s7; DUMP(IsLeapYear(2014));&] -[s7; DUMP(IsLeapYear(2015));&] -[s7; DUMP(IsLeapYear(2016));&] -[s7; DUMP(IsLeapYear(2017));&] -[s0; &] -[s17; IsLeapYear(2012) `= true&] -[s17; IsLeapYear(2014) `= false&] -[s17; IsLeapYear(2015) `= false&] -[s17; IsLeapYear(2016) `= true&] -[s17; IsLeapYear(2017) `= false&] -[s0; &] -[s0; &] -[s7; DUMP(GetDaysOfMonth(2, 2015));&] -[s7; DUMP(GetDaysOfMonth(2, 2016));&] -[s0; &] -[s17; GetDaysOfMonth(2, 2015) `= 28&] -[s17; GetDaysOfMonth(2, 2016) `= 29&] -[s0; &] -[s0; &] -[s7; DUMP(DayOfWeek(date)); // 0 is Sunday&] -[s0; &] -[s17; DayOfWeek(date) `= 3&] -[s0; &] -[s0; &] -[s7; DUMP(LastDayOfMonth(date));&] -[s7; DUMP(FirstDayOfMonth(date));&] -[s7; DUMP(LastDayOfYear(date));&] -[s7; DUMP(FirstDayOfYear(date));&] -[s7; DUMP(DayOfYear(date)); // number of days since Jan`-1 `+ 1&] -[s7; DUMP(DayOfYear(Date(2016, 1, 1)));&] -[s0; &] -[s17; LastDayOfMonth(date) `= 07/31/2017&] -[s17; FirstDayOfMonth(date) `= 07/01/2017&] -[s17; LastDayOfYear(date) `= 12/31/2017&] -[s17; FirstDayOfYear(date) `= 01/01/2017&] -[s17; DayOfYear(date) `= 200&] -[s17; DayOfYear(Date(2016, 1, 1)) `= 1&] -[s0; &] -[s0; &] -[s7; DUMP(AddMonths(date, 20));&] -[s7; DUMP(GetMonths(date, date `+ 100)); // number of `'whole months`' -between two dates&] -[s7; DUMP(GetMonthsP(date, date `+ 100)); // number of `'whole or -partial months`' between two dates&] -[s7; DUMP(AddYears(date, 2));&] -[s0; &] -[s17; AddMonths(date, 20) `= 03/19/2019&] -[s17; GetMonths(date, date `+ 100) `= 3&] -[s17; GetMonthsP(date, date `+ 100) `= 4&] -[s17; AddYears(date, 2) `= 07/19/2019&] -[s0; &] -[s0; &] -[s7; DUMP(GetWeekDate(2015, 1));&] -[s7; int year;&] -[s7; DUMP(GetWeek(Date(2016, 1, 1), year)); // first day of year -can belong to previous year&] -[s7; DUMP(year);&] -[s0; &] -[s17; GetWeekDate(2015, 1) `= 12/29/2014&] -[s17; GetWeek(Date(2016, 1, 1), year) `= 53&] -[s17; year `= 2015&] -[s0; &] -[s0; &] -[s7; DUMP(EasterDay(2015));&] -[s7; DUMP(EasterDay(2016));&] -[s0; &] -[s17; EasterDay(2015) `= 04/05/2015&] -[s17; EasterDay(2016) `= 03/27/2016&] -[s0; &] -[s5; U`+`+ defines the beginning and the end of era, most algorithms -can safely assume that as minimal and maximal values [*C@5 Date] -can represent:&] -[s0; &] -[s7; DUMP(Date`::Low());&] -[s7; DUMP(Date`::High());&] -[s0; &] -[s17; Date`::Low() `= 01/01/`-4000&] -[s17; Date`::High() `= 01/01/4000&] -[s0; &] -[s5; Time is derived from [*C@5 Date], adding members to represent -time:&] -[s0; &] -[s7; Time time `= GetSysTime();&] -[s7; DUMP(time);&] -[s7; DUMP((Date)time);&] -[s7; DUMP((int)time.hour);&] -[s7; DUMP((int)time.minute);&] -[s7; DUMP((int)time.second);&] -[s0; &] -[s17; time `= 07/19/2017 22:55:10&] -[s17; (Date)time `= 07/19/2017&] -[s17; (int)time.hour `= 22&] -[s17; (int)time.minute `= 55&] -[s17; (int)time.second `= 10&] -[s0; &] -[s5; Times can be compared:&] -[s0; &] -[s7; DUMP(time > Time(1970, 0, 0));&] -[s0; &] -[s17; time > Time(1970, 0, 0) `= true&] -[s0; &] -[s5; Warning: As [*C@5 Time] is derived from the [*C@5 Date], most operations -automatically convert [*C@5 Time] back to [*C@5 Date]. You have to -use [*C@5 ToTime] conversion function to convert [*C@5 Date] to [*C@5 Time]:&] -[s0; &] -[s7; DUMP(time > date); // time gets converted to Date...&] -[s7; DUMP(time > ToTime(date));&] -[s0; &] -[s17; time > date `= false&] -[s17; time > ToTime(date) `= true&] -[s0; &] -[s5; Like [*C@5 Date], [*C@5 Time] supports add and subtract operations, -but numbers represent seconds (using [*C@5 int64] datatype):&] -[s0; &] -[s7; DUMP(time `+ 1);&] -[s7; DUMP(time `+ 24 `* 3600);&] -[s7; DUMP(time `- date); // time converts to Date, so the result -is in days&] -[s7; DUMP(time `- ToTime(date)); // Time `- Time is in seconds&] -[s0; &] -[s17; time `+ 1 `= 07/19/2017 22:55:11&] -[s17; time `+ 24 `* 3600 `= 07/20/2017 22:55:10&] -[s17; time `- date `= 0&] -[s17; time `- ToTime(date) `= 82510&] -[s0; &] -[s5; [*C@5 Time] defines era limits too:&] -[s0; &] -[s7; DUMP(Time`::Low());&] -[s7; DUMP(Time`::High());&] -[s0; &] -[s17; Time`::Low() `= 01/01/`-4000 00:00:00&] -[s17; Time`::High() `= 01/01/4000 00:00:00&] -[s0; &] -[s3;H4;:Section`_1`_6: 1.6 [C@5 AsString], [C@5 ToString] and [C@5 operator<<]&] -[s5; U`+`+ Core provides simple yet effective standard schema for -converting values to default textual form. System is based on -the combination of template functions (following code is part -of U`+`+ library):&] -[s0; &] -[s7; namespace Upp `{&] -[s7; -|template &] -[s7; -|inline String AsString(const T`& x)&] -[s7; -|`{&] -[s7; -|-|return x.ToString();&] -[s7; -|`}&] -[s7; -|&] -[s7; -|template &] -[s7; -|inline Stream`& operator<<(Stream`& s, const T`& x)&] -[s7; -|`{&] -[s7; -|-|s << AsString(x);&] -[s7; -|-|return s;&] -[s7; -|`}&] -[s7; -|&] -[s7; -|template &] -[s7; -|inline String`& operator<<(String`& s, const T`& x)&] -[s7; -|`{&] -[s7; -|-|s.Cat(AsString(x));&] -[s7; -|-|return s;&] -[s7; -|`}&] -[s7; `};&] -[s0; &] -[s5; Client types have to either define [*C@5 String ToString] method -or specialize [*C@5 AsString] template in [*C@5 Upp] namespace. Such -types can be appended to Streams or Strings using [*C@5 operator<<]. -Of course, U`+`+ value types and primitive types have required -items predefined by U`+`+:&] -[s0; &] -[s7; FileOut fout(ConfigFile(`"test.txt`"));&] -[s7; String sout;&] -[s7; &] -[s7; fout << 1.23 << `' `' << GetSysDate() << `' `' << GetSysTime();&] -[s7; sout << 1.23 << `' `' << GetSysDate() << `' `' << GetSysTime();&] -[s7; &] -[s7; fout.Close();&] -[s7; &] -[s7; DUMP(LoadFile(ConfigFile(`"test.txt`")));&] -[s7; DUMP(sout);&] -[s0; &] -[s17; LoadFile(ConfigFile(`"test.txt`")) `= 1.23 07/19/2017 07/19/2017 -22:55:10&] -[s17; sout `= 1.23 07/19/2017 07/19/2017 22:55:10&] -[s0; &] -[s5; Getting client types involved into this schema is not too difficult, -all you need to do is to add [*C@5 ToString] method:&] -[s0; &] -[s7; struct BinFoo `{&] -[s7; -|int x;&] -[s7; -|&] -[s7; -|String ToString() const `{ return FormatIntBase(x, 2); `}&] -[s7; `};&] -[s7; &] -[s7; BinFoo bf;&] -[s7; bf.x `= 30;&] -[s7; &] -[s7; sout.Clear();&] -[s7; sout << bf;&] -[s7; DUMP(sout);&] -[s0; &] -[s17; sout `= 11110&] -[s0; &] -[s5; If you cannot add [*C@5 ToString], you can still specialize template -in Upp namespace:&] -[s0; &] -[s7; struct RomanFoo `{&] -[s7; -|int x;&] -[s7; -|&] -[s7; -|RomanFoo(int x) : x(x) `{`}&] -[s7; `};&] -[s7; &] -[s7; namespace Upp `{&] -[s7; template <> String Upp`::AsString(const RomanFoo`& a) `{ return -FormatIntRoman(a.x); `}&] -[s7; `};&] -[s0; &] -[s3;H4;:Section`_1`_7: 1.7 CombineHash&] -[s5; To simplify providing of high quality hash codes for composite -types, U`+`+ provides [*C@5 CombineHash] utility class. This class -uses [*C@5 GetHashValue] function to gather hash codes of all values -and combines them to provide final hash value for composite type:&] -[s0; &] -[s7; struct Foo `{&] -[s7; -|String a;&] -[s7; -|int b;&] -[s7; -|&] -[s7; -|unsigned GetHashValue() const `{ return CombineHash(a, b); -`}&] -[s7; `};&] -[s0; &] -[s5; Note that [*C@5 GetHashValue] is defined as function template -that calls [*C@5 GetHashValue] method of its argument, therefore -defining [*C@5 GetHashValue] method defines [*C@5 GetHashValue] function -too:&] -[s0; &] -[s7; Foo x;&] -[s7; x.a `= `"world`";&] -[s7; x.b `= 22;&] -[s7; &] -[s7; DUMP(GetHashValue(x));&] -[s0; &] -[s17; GetHashValue(x) `= 4272824901&] -[s0; &] -[s0; &] -[s7; x.a << `'!`';&] -[s7; &] -[s7; DUMP(GetHashValue(x));&] -[s0; &] -[s17; GetHashValue(x) `= 3378606405&] -[s0; &] -[s3;H4;:Section`_1`_8: 1.8 SgnCompare and CombineCompare&] -[s5; Traditional approach of C language of representing comparison -results was 3`-state: comparing a and b results in negative value -(if a < b), zero (if a `=`= b) or positive value (a > b). In -C`+`+ standard library, comparisons are usually represented with -[*C@5 bool] predicates.&] -[s5; However, with [*C@5 bool] predicate it becomes somewhat more difficult -to provide comparisons for composite types:&] -[s0; &] -[s7; struct Foo `{&] -[s7; -|String a;&] -[s7; -|int b;&] -[s7; -|int c;&] -[s7; -|&] -[s7; -|// we want to order Foo instances by a first, then b, then -c&] -[s7; -|&] -[s7; -|bool operator<(const Foo`& x) const `{&] -[s7; -|-|return a < x.a ? true&] -[s7; -|-| : a `=`= x.a ? b < x.b ? true&] -[s7; -|-| : b `=`= x.b ? false&] -[s7; -|-| : c < x.c&] -[s7; -|-| : false;&] -[s7; -|`}&] -[s7; `};&] -[s0; &] -[s5; U`+`+ provides standard function [*C@5 SgnCompare], which returns -negative value/zero/positive in `"C style`":&] -[s0; &] -[s7; int a `= 1;&] -[s7; int b `= 2;&] -[s7; &] -[s7; DUMP(SgnCompare(a, b));&] -[s7; DUMP(SgnCompare(b, a));&] -[s7; DUMP(SgnCompare(a, a));&] -[s0; &] -[s17; SgnCompare(a, b) `= `-1&] -[s17; SgnCompare(b, a) `= 1&] -[s17; SgnCompare(a, a) `= 0&] -[s0; &] -[s5; Default implementation of [*C@5 SgnCompare] calls [*C@5 Compare] -method of value:&] -[s0; &] -[s7; struct MyClass `{&] -[s7; -|int val;&] -[s7; -|&] -[s7; -|int Compare(const MyClass`& x) const `{ return SgnCompare(val, -x.val); `}&] -[s7; `};&] -[s0; &] -[s5; [*C@5 SgnCompare] is now defined for [*C@5 MyClass]:&] -[s0; &] -[s7; MyClass u, v;&] -[s7; u.val `= 1;&] -[s7; v.val `= 2;&] -[s7; &] -[s7; DUMP(SgnCompare(u, v));&] -[s7; DUMP(SgnCompare(v, u));&] -[s7; DUMP(SgnCompare(v, v));&] -[s0; &] -[s17; SgnCompare(u, v) `= `-1&] -[s17; SgnCompare(v, u) `= 1&] -[s17; SgnCompare(v, v) `= 0&] -[s0; &] -[s5; Now getting back to [*C@5 Foo], with [*C@5 SgnCompare] [*C@5 operator<] -becomes much less difficult:&] -[s0; &] -[s7; struct Foo2 `{&] -[s7; -|String a;&] -[s7; -|int b;&] -[s7; -|int c;&] -[s7; -|&] -[s7; -|bool operator<(const Foo2`& x) const `{&] -[s7; -|-|int q `= SgnCompare(a, x.a);&] -[s7; -|-|if(q) return q < 0;&] -[s7; -|-|q `= SgnCompare(b, x.b);&] -[s7; -|-|if(q) return q < 0;&] -[s7; -|-|q `= SgnCompare(c, x.c);&] -[s7; -|-|return q < 0;&] -[s7; -|`}&] -[s7; `};&] -[s0; &] -[s5; Alternatively, it is possible to define just [*C@5 Compare] method -and use [*C@5 Comparable] [^https`:`/`/en`.wikipedia`.org`/wiki`/Curiously`_recurring`_template`_pattern^ C -RTP idiom] to define all relation operators:&] -[s0; &] -[s7; struct Foo3 : Comparable `{&] -[s7; -|String a;&] -[s7; -|int b;&] -[s7; -|int c;&] -[s7; -|&] -[s7; -|int Compare(const Foo3`& x) const `{&] -[s7; -|-|int q `= SgnCompare(a, x.a);&] -[s7; -|-|if(q) return q;&] -[s7; -|-|q `= SgnCompare(b, x.b);&] -[s7; -|-|if(q) return q;&] -[s7; -|-|return SgnCompare(c, x.c);&] -[s7; -|`}&] -[s7; `};&] -[s7; &] -[s7; Foo3 m, n;&] -[s7; m.a `= `"A`";&] -[s7; m.b `= 1;&] -[s7; m.c `= 2;&] -[s7; n.a `= `"A`";&] -[s7; n.b `= 1;&] -[s7; n.c `= 3;&] -[s7; &] -[s7; DUMP(m < n);&] -[s7; DUMP(m `=`= n);&] -[s7; DUMP(m !`= n);&] -[s7; DUMP(SgnCompare(m, n));&] -[s0; &] -[s17; m < n `= true&] -[s17; m `=`= n `= false&] -[s17; m !`= n `= true&] -[s17; SgnCompare(m, n) `= `-1&] -[s0; &] -[s5; While the content of [*C@5 Compare] method is trivial, it can -be further simplified using [*C@5 CombineCompare] helper class:&] -[s0; &] -[s7; struct Foo4 : Comparable `{&] -[s7; -|String a;&] -[s7; -|int b;&] -[s7; -|int c;&] -[s7; -|&] -[s7; -|int Compare(const Foo4`& x) const `{&] -[s7; -|-|return CombineCompare(a, x.a)(b, x.b)(c, x.c);&] -[s7; -|`}&] -[s7; `};&] -[s7; &] -[s7; Foo4 o, p;&] -[s7; o.a `= `"A`";&] -[s7; o.b `= 1;&] -[s7; o.c `= 2;&] -[s7; p.a `= `"A`";&] -[s7; p.b `= 1;&] -[s7; p.c `= 3;&] -[s7; &] -[s7; DUMP(o < p);&] -[s7; DUMP(o `=`= p);&] -[s7; DUMP(o !`= p);&] -[s7; DUMP(SgnCompare(o, p));&] -[s0; &] -[s17; o < p `= true&] -[s17; o `=`= p `= false&] -[s17; o !`= p `= true&] -[s17; SgnCompare(o, p) `= `-1&] -[s0; &] -[s22;:Chapter`_2: 2. Array containers&] -[s3;:Section`_2`_1: 2.1 [C@5 Vector] basics&] -[s5; [*C@5 Vector] is the basic container of U`+`+. It is the random -access container similar to [*C@5 std`::vector] with one important -performance related difference: There are rules for elements of -[*C@5 Vector] that allow its implementation to move elements in -memory using plain [*C@5 memcpy]/``memmove`` (`"Moveable`" concept).&] -[s5; Anyway, for now let us start with simple [*C@5 Vector] of [*C@5 int]s:&] -[s0; &] -[s7; -|Vector v;&] -[s0; &] -[s5; You can add elements to the Vector as parameters of the Add -method&] -[s0; &] -[s7; -|v.Add(1);&] -[s7; -|v.Add(2);&] -[s7; -|&] -[s7; -|DUMP(v);&] -[s0; &] -[s17; v `= `[1, 2`]&] -[s0; &] -[s5; Alternative and very important possibility for U`+`+ containers -is `'in`-place creation`'. In this case, parameter`-less Add -returns a reference to a new element in [*C@5 Vector]:&] -[s0; &] -[s7; -|v.Add() `= 3;&] -[s7; -|&] -[s7; -|DUMP(v);&] -[s0; &] -[s17; v `= `[1, 2, 3`]&] -[s0; &] -[s5; You can also use [*C@5 operator<<]&] -[s0; &] -[s7; -|v << 4 << 5;&] -[s7; &] -[s7; -|DUMP(v);&] -[s0; &] -[s17; v `= `[1, 2, 3, 4, 5`]&] -[s0; &] -[s5; [*C@5 Vector] also supports initializer lists:&] -[s0; &] -[s7; -|v.Append(`{ 6, 7 `});&] -[s7; &] -[s7; -|DUMP(v);&] -[s0; &] -[s17; v `= `[1, 2, 3, 4, 5, 6, 7`]&] -[s0; &] -[s5; To iterate [*C@5 Vector] you can use indices:&] -[s0; &] -[s7; -|for(int i `= 0; i < v.GetCount(); i`+`+)&] -[s7; -|-|LOG(v`[i`]);&] -[s0; &] -[s17; 1&] -[s17; 2&] -[s17; 3&] -[s17; 4&] -[s17; 5&] -[s17; 6&] -[s17; 7&] -[s0; &] -[s5; begin/end interface:&] -[s0; &] -[s7; -|for(auto q `= v.begin(), e `= v.end(); q !`= e; q`+`+)&] -[s7; -|-|LOG(`*q);&] -[s0; &] -[s17; 1&] -[s17; 2&] -[s17; 3&] -[s17; 4&] -[s17; 5&] -[s17; 6&] -[s17; 7&] -[s0; &] -[s5; C`+`+11 range`-for syntax:&] -[s0; &] -[s7; -|for(const auto`& q : v)&] -[s7; -|-|LOG(q);&] -[s0; &] -[s17; 1&] -[s17; 2&] -[s17; 3&] -[s17; 4&] -[s17; 5&] -[s17; 6&] -[s17; 7&] -[s0; &] -[s3;H4;:Section`_2`_2: 2.2 [C@5 Vector] operations&] -[s5; You can [*C@5 Insert] or [*C@5 Remove] elements at random positions -of Vector (O(n) complexity):&] -[s0; &] -[s7; Vector v;&] -[s7; v.Add(1);&] -[s7; v.Add(2);&] -[s7; &] -[s7; v.Insert(1, 10);&] -[s7; &] -[s7; DUMP(v);&] -[s0; &] -[s17; v `= `[1, 10, 2`]&] -[s0; &] -[s0; &] -[s7; v.Insert(0, `{ 7, 6, 5 `});&] -[s7; &] -[s7; DUMP(v);&] -[s0; &] -[s17; v `= `[7, 6, 5, 1, 10, 2`]&] -[s0; &] -[s0; &] -[s7; v.Remove(0);&] -[s7; &] -[s7; DUMP(v);&] -[s0; &] -[s17; v `= `[6, 5, 1, 10, 2`]&] -[s0; &] -[s5; At method returns element at specified position ensuring that -such a position exists. If there is not enough elements in [*C@5 Vector], -required number of elements is added. If second parameter of -[*C@5 At] is present, newly added elements are initialized to this -value.&] -[s0; &] -[s7; v.Clear();&] -[s7; for(int i `= 0; i < 10000; i`+`+)&] -[s7; -|v.At(Random(10), 0)`+`+;&] -[s7; &] -[s7; DUMP(v);&] -[s0; &] -[s17; v `= `[972, 1037, 983, 993, 1009, 981, 1002, 1033, 963, 1027`]&] -[s0; &] -[s5; You can apply algorithms on containers, e.g. Sort&] -[s0; &] -[s7; Sort(v);&] -[s7; &] -[s7; DUMP(v);&] -[s0; &] -[s17; v `= `[963, 972, 981, 983, 993, 1002, 1009, 1027, 1033, 1037`]&] -[s0; &] -[s3;H4;:Section`_2`_3: 2.3 Transfer issues&] -[s5; Often you need to pass content of one container to another of -the same type. U`+`+ containers always support [^topic`:`/`/Core`/srcdoc`/pick`_`$en`-us^ p -ick semantics] (synonym of std`::move), and, depending on type -stored, also might support [^topic`:`/`/Core`/srcdoc`/pick`_`$en`-us^ clone -semantics]. When transferring the value, you have to explicitly -specify which one to use:&] -[s0; &] -[s7; Vector v`{ 1, 2 `};&] -[s7; &] -[s7; DUMP(v);&] -[s7; &] -[s7; Vector v1 `= pick(v);&] -[s7; &] -[s7; DUMP(v);&] -[s7; DUMP(v1);&] -[s0; &] -[s17; v `= `[1, 2`]&] -[s17; v `= `[`]&] -[s17; v1 `= `[1, 2`]&] -[s0; &] -[s5; now source [*C@5 Vector] [*C@5 v] is empty, as elements were `'picked`' -to [*C@5 v1].&] -[s5; If you really need to preserve value of source (and elements -support deep copy operation), you can use [*C@5 clone]:&] -[s0; &] -[s7; v `= clone(v1);&] -[s7; &] -[s7; DUMP(v);&] -[s7; DUMP(v1);&] -[s0; &] -[s17; v `= `[1, 2`]&] -[s17; v1 `= `[1, 2`]&] -[s0; &] -[s5; The requirement of explicit [*C@5 clone] has the advantage of -avoiding unexpected deep copies. For example:&] -[s0; &] -[s7; Vector> x;&] -[s7; x.Add() << 1 << 2 << 3;&] -[s7; &] -[s7; for(auto i : x) `{ LOG(i); `}&] -[s0; &] -[s5; results in run`-time error, whereas the equivalent code with -[*C@5 std`::vector] compiles but silently performs deep copy for -each iteration:&] -[s0; &] -[s7; std`::vector> sv;&] -[s7; sv.push`_back(`{1, 2, 3`});&] -[s7; for(auto i : sv) // invokes std`::vector copy constructor&] -[s7; -|for(auto j : i)&] -[s7; -|-|DUMP(j);&] -[s0; &] -[s5; That said, in certain cases it is simpler to have default copy -instead of explicit [*C@5 clone]. You can easily achieve that using -[*C@5 WithDeepCopy] template:&] -[s0; &] -[s7; WithDeepCopy> v2;&] -[s7; &] -[s7; v2 `= v;&] -[s7; &] -[s7; DUMP(v);&] -[s7; DUMP(v2);&] -[s0; &] -[s17; v `= `[1, 2`]&] -[s17; v2 `= `[1, 2`]&] -[s0; &] -[s3;H4;:Section`_2`_4: 2.4 Client types in U`+`+ containers&] -[s5; So far we were using int as type of elements. In order to store -client defined types into the [*C@5 Vector] (and the Vector [^topic`:`/`/Core`/src`/Overview`$en`-us^ f -lavor]) the type must satisfy [^topic`:`/`/Core`/src`/Moveable`$en`-us^ moveable] -requirement `- in short, it must not contain back`-pointers nor -virtual methods. Type must be marked as [/ moveable] in order to -define interface contract using [*C@5 Moveable] [^https`:`/`/en`.wikipedia`.org`/wiki`/Curiously`_recurring`_template`_pattern^ C -RTP idiom]:&] -[s0; &] -[s7; struct Distribution : Moveable `{&] -[s7; -|String text;&] -[s7; -|Vector data;&] -[s7; -|&] -[s7; -|String ToString() const `{ return text `+ `": `" `+ AsString(data); -`}&] -[s7; `};&] -[s0; &] -[s5; Now to add [*C@5 Distribution] elements you cannot use [*C@5 Vector`::Add(const -T`&)], because it requires elements to have default deep`-copy -constructor `- and [*C@5 Distribution does not have one, as ]Vector`` -has default pick`-constructor, so Distribution itself has pick`-constructor. -It would no be a good idea either, because deep`-copy would involve -expensive copying of inner Vector.&] -[s5; Instead, Add without parameters has to be used `- it default -constructs (that is cheap) element in Vector and returns reference -to it:&] -[s0; &] -[s7; Vector dist;&] -[s7; for(int n `= 5; n <`= 10; n`+`+) `{&] -[s7; -|Distribution`& d `= dist.Add();&] -[s7; -|d.text << `"Test `" << n;&] -[s7; -|for(int i `= 0; i < 10000; i`+`+)&] -[s7; -|-|d.data.At(Random(n), 0)`+`+;&] -[s7; `}&] -[s7; &] -[s7; DUMPC(dist);&] -[s0; &] -[s17; dist:&] -[s17; -|`[0`] `= Test 5: `[1940, 2038, 2008, 2034, 1980`]&] -[s17; -|`[1`] `= Test 6: `[1643, 1672, 1672, 1635, 1718, 1660`]&] -[s17; -|`[2`] `= Test 7: `[1458, 1420, 1432, 1369, 1471, 1403, 1447`]&] -[s17; -|`[3`] `= Test 8: `[1229, 1288, 1283, 1256, 1237, 1221, 1223, -1263`]&] -[s17; -|`[4`] `= Test 9: `[1069, 1126, 1075, 1090, 1112, 1126, 1139, -1148, 1115`]&] -[s17; -|`[5`] `= Test 10: `[1058, 982, 984, 973, 982, 988, 1009, 1030, -990, 1004`]&] -[s0; &] -[s5; Another possibility is to use [*C@5 Vector`::Add(T`&`&)] method, -which uses pick`-constructor instead of deep`-copy constructor. -E.g. [*C@5 Distribution] elements might be generated by some function:&] -[s0; &] -[s7; Distribution CreateDist(int n);&] -[s0; &] -[s5; and code for adding such elements to Vector then looks like:&] -[s0; &] -[s7; for(n `= 5; n <`= 10; n`+`+)&] -[s7; -|dist.Add(CreateDist(n));&] -[s0; &] -[s5; alternatively, you can use default`-constructed variant too&] -[s0; &] -[s7; -|dist.Add() `= CreateDist();&] -[s0; &] -[s3;H4;:Section`_2`_5: 2.5 Array flavor&] -[s5; If elements are not [*C@5 Moveable] and therefore cannot be stored -in [*C@5 Vector] flavor, they can still be stored in [*C@5 Array] -flavor. Another reason for using Array is the need for referencing -elements `- Array flavor never invalidates references or pointers -to them. Finally, if sizeof(T) is large (say more than 100`-200 -bytes), using Array might be better from performance perspective.&] -[s5; Example of elements that cannot be stored in Vector flavor are -standard library objects like [*C@5 std`::string] (because obviously, -standard library knows nothing about U`+`+ Moveable concept):&] -[s0; &] -[s7; Array as;&] -[s7; for(int i `= 0; i < 4; i`+`+)&] -[s7; -|as.Add(`"Test`");&] -[s7; &] -[s7; for(auto s : as)&] -[s7; -|DUMP(s.c`_str());&] -[s0; &] -[s17; s.c`_str() `= Test&] -[s17; s.c`_str() `= Test&] -[s17; s.c`_str() `= Test&] -[s17; s.c`_str() `= Test&] -[s0; &] -[s3;H4;:Section`_2`_6: 2.6 Polymorphic [C@5 Array]&] -[s5; [*C@5 Array] can even be used for storing polymorphic elements:&] -[s0; &] -[s7; struct Number `{&] -[s7; -|virtual double Get() const `= 0;&] -[s7; -|String ToString() const `{ return AsString(Get()); `}&] -[s7; -|virtual `~Number() `{`}&] -[s7; `};&] -[s7; &] -[s7; struct Integer : public Number `{&] -[s7; -|int n;&] -[s7; -|virtual double Get() const `{ return n; `}&] -[s7; `};&] -[s7; &] -[s7; struct Double : public Number `{&] -[s7; -|double n;&] -[s7; -|virtual double Get() const `{ return n; `}&] -[s7; `};&] -[s0; &] -[s5; To add such derived types to [*C@5 Array], you can best use in`-place -creation with [*C@5 Create] method:&] -[s0; &] -[s7; Array num;&] -[s7; num.Create().n `= 15.5;&] -[s7; num.Create().n `= 3;&] -[s7; &] -[s7; DUMP(num);&] -[s0; &] -[s17; num `= `[15.5, 3`]&] -[s0; &] -[s5; Alternatively, you can use [*C@5 Add(T `*)] method and provide -a pointer to the newly created instance on the heap ([*C@5 Add] -returns a reference to the instance):&] -[s0; &] -[s7; Double `*nd `= new Double;&] -[s7; nd`->n `= 1.1;&] -[s7; num.Add(nd);&] -[s7; &] -[s7; DUMP(num);&] -[s0; &] -[s17; num `= `[15.5, 3, 1.1`]&] -[s0; &] -[s5; Array takes ownership of heap object and deletes it as appropriate. -We recommend to use this variant only if in`-place creation with -[*C@5 Create] is not possible.&] -[s5; It is OK do directly apply U`+`+ algorithms on [*C@5 Array] (the -most stringent requirement of any of basic algorithms is that -there is [*C@5 IterSwap] provided for container iterators and that -is specialized for [*C@5 Array] iterators):&] -[s0; &] -[s7; Sort(num, `[`](const Number`& a, const Number`& b) `{ return -a.Get() < b.Get(); `});&] -[s7; &] -[s7; DUMP(num);&] -[s0; &] -[s17; num `= `[1.1, 3, 15.5`]&] -[s0; &] -[s3;H4;:Section`_2`_7: 2.7 Bidirectional containers&] -[s5; [*C@5 Vector] and [*C@5 Array] containers allow fast adding and -removing elements at the end of sequence. Sometimes, same is -needed at begin of sequence too (usually to support FIFO queues). -[*C@5 BiVector] and [*C@5 BiArray] are optimal for this scenario:&] -[s0; &] -[s7; BiVector n;&] -[s7; n.AddHead(1);&] -[s7; n.AddTail(2);&] -[s7; n.AddHead(3);&] -[s7; n.AddTail(4);&] -[s7; DUMP(n);&] -[s0; &] -[s17; n `= `[3, 1, 2, 4`]&] -[s0; &] -[s0; &] -[s7; n.DropHead();&] -[s7; DUMP(n);&] -[s0; &] -[s17; n `= `[1, 2, 4`]&] -[s0; &] -[s0; &] -[s7; n.DropTail();&] -[s7; DUMP(n);&] -[s0; &] -[s17; n `= `[1, 2`]&] -[s0; &] -[s0; &] -[s7; struct Val `{&] -[s7; -|virtual String ToString() const `= 0;&] -[s7; -|virtual `~Val() `{`}&] -[s7; `};&] -[s7; &] -[s7; struct Number : Val `{&] -[s7; -|int n;&] -[s7; -|virtual String ToString() const `{ return AsString(n); `}&] -[s7; `};&] -[s7; &] -[s7; struct Text : Val `{&] -[s7; -|String s;&] -[s7; -|virtual String ToString() const `{ return s; `}&] -[s7; `};&] -[s7; &] -[s7; BiArray num;&] -[s7; num.CreateHead().n `= 3;&] -[s7; num.CreateTail().s `= `"Hello`";&] -[s7; num.CreateHead().s `= `"World`";&] -[s7; num.CreateTail().n `= 2;&] -[s7; &] -[s7; DUMP(num);&] -[s0; &] -[s17; num `= `[World, 3, Hello, 2`]&] -[s0; &] -[s3;H4;:Section`_2`_8: 2.8 [C@5 Index]&] -[s5; [*C@5 Index] is the the foundation of all U`+`+ associative operations -and is one of defining features of U`+`+.&] -[s5; [*C@5 Index] is a container very similar to the plain [*C@5 Vector] -(it is random access array of elements with fast addition at -the end) with one additional feature `- it is able to fast retrieve -position of element with required value using [*C@5 Find] method:&] -[s0; &] -[s7; Index ndx;&] -[s7; ndx.Add(`"alfa`");&] -[s7; ndx.Add(`"beta`");&] -[s7; ndx.Add(`"gamma`");&] -[s7; ndx.Add(`"delta`");&] -[s7; ndx.Add(`"kappa`");&] -[s7; &] -[s7; DUMP(ndx);&] -[s7; DUMP(ndx.Find(`"beta`"));&] -[s0; &] -[s17; ndx `= `[alfa, beta, gamma, delta, kappa`]&] -[s17; ndx.Find(`"beta`") `= 1&] -[s0; &] -[s5; If element is not present in [*C@5 Index], [*C@5 Find] returns a -negative value:&] -[s0; &] -[s7; DUMP(ndx.Find(`"something`"));&] -[s0; &] -[s17; ndx.Find(`"something`") `= `-1&] -[s0; &] -[s5; Any element can be replaced using [*C@5 Set] method:&] -[s0; &] -[s7; ndx.Set(1, `"alfa`");&] -[s7; &] -[s7; DUMP(ndx);&] -[s0; &] -[s17; ndx `= `[alfa, alfa, gamma, delta, kappa`]&] -[s0; &] -[s5; If there are more elements with the same value, they can be -iterated using [*C@5 FindNext] method:&] -[s0; &] -[s7; int fi `= ndx.Find(`"alfa`");&] -[s7; while(fi >`= 0) `{&] -[s7; -|DUMP(fi);&] -[s7; -|fi `= ndx.FindNext(fi);&] -[s7; `}&] -[s0; &] -[s17; fi `= 0&] -[s17; fi `= 1&] -[s0; &] -[s5; [*C@5 FindAdd] method retrieves position of element like [*C@5 Find], -but if element is not present in [*C@5 Index], it is added:&] -[s0; &] -[s7; DUMP(ndx.FindAdd(`"one`"));&] -[s7; DUMP(ndx.FindAdd(`"two`"));&] -[s7; DUMP(ndx.FindAdd(`"three`"));&] -[s7; DUMP(ndx.FindAdd(`"two`"));&] -[s7; DUMP(ndx.FindAdd(`"three`"));&] -[s7; DUMP(ndx.FindAdd(`"one`"));&] -[s0; &] -[s17; ndx.FindAdd(`"one`") `= 5&] -[s17; ndx.FindAdd(`"two`") `= 6&] -[s17; ndx.FindAdd(`"three`") `= 7&] -[s17; ndx.FindAdd(`"two`") `= 6&] -[s17; ndx.FindAdd(`"three`") `= 7&] -[s17; ndx.FindAdd(`"one`") `= 5&] -[s0; &] -[s5; Removing elements from random access sequence tends to be expensive, -that is why rather than remove, [*C@5 Index] supports [*C@5 Unlink] -and [*C@5 UnlinkKey] operations, which retain the element in [*C@5 Index] -but make it invisible for [*C@5 Find] operation:&] -[s0; &] -[s7; ndx.Unlink(2);&] -[s7; ndx.UnlinkKey(`"kappa`");&] -[s7; &] -[s7; DUMP(ndx.Find(ndx`[2`]));&] -[s7; DUMP(ndx.Find(`"kappa`"));&] -[s0; &] -[s17; ndx.Find(ndx`[2`]) `= `-1&] -[s17; ndx.Find(`"kappa`") `= `-1&] -[s0; &] -[s5; You can test whether element at given position is unlinked using -[*C@5 IsUnlinked] method&] -[s0; &] -[s7; DUMP(ndx.IsUnlinked(1));&] -[s7; DUMP(ndx.IsUnlinked(2));&] -[s0; &] -[s17; ndx.IsUnlinked(1) `= false&] -[s17; ndx.IsUnlinked(2) `= true&] -[s0; &] -[s5; Unlinked positions can be reused by [*C@5 Put] method:&] -[s0; &] -[s7; ndx.Put(`"foo`");&] -[s7; &] -[s7; DUMP(ndx);&] -[s7; DUMP(ndx.Find(`"foo`"));&] -[s0; &] -[s17; ndx `= `[alfa, alfa, foo, delta, kappa, one, two, three`]&] -[s17; ndx.Find(`"foo`") `= 2&] -[s0; &] -[s5; You can also remove all unlinked elements from [*C@5 Index] using -[*C@5 Sweep] method:&] -[s0; &] -[s7; ndx.Sweep();&] -[s7; &] -[s7; DUMP(ndx);&] -[s0; &] -[s17; ndx `= `[alfa, alfa, foo, delta, one, two, three`]&] -[s0; &] -[s5; Operations directly removing or inserting elements of Index -are expensive, but available too:&] -[s0; &] -[s7; ndx.Remove(1);&] -[s7; &] -[s7; DUMP(ndx);&] -[s0; &] -[s17; ndx `= `[alfa, foo, delta, one, two, three`]&] -[s0; &] -[s0; &] -[s7; ndx.RemoveKey(`"two`");&] -[s7; &] -[s7; DUMP(ndx);&] -[s0; &] -[s17; ndx `= `[alfa, foo, delta, one, three`]&] -[s0; &] -[s0; &] -[s7; ndx.Insert(0, `"insert`");&] -[s7; &] -[s7; DUMP(ndx);&] -[s0; &] -[s17; ndx `= `[insert, alfa, foo, delta, one, three`]&] -[s0; &] -[s5; PickKeys operation allows you to obtain Vector of elements of -Index in low constant time operation (while destroying source -Index)&] -[s0; &] -[s7; Vector d `= ndx.PickKeys();&] -[s7; &] -[s7; DUMP(d);&] -[s0; &] -[s17; d `= `[insert, alfa, foo, delta, one, three`]&] -[s0; &] -[s5; Pick`-assigning [*C@5 Vector] to [*C@5 Index] is supported as well:&] -[s0; &] -[s7; d`[0`] `= `"test`";&] -[s7; &] -[s7; ndx `= pick(d);&] -[s7; &] -[s7; DUMP(ndx);&] -[s0; &] -[s17; ndx `= `[test, alfa, foo, delta, one, three`]&] -[s0; &] -[s3;H4;:Section`_2`_9: 2.9 Index and client types&] -[s5; In order to store elements to [*C@5 Index], they type must be -[*C@5 Moveable], have deep copy and defined the [*C@5 operator`=`=] -and a [*C@5 GetHashValue] function or method to compute the hash -code. It is recommended to use [*C@5 CombineHash] to combine hash -values of types that already provide [*C@5 GetHashValue]:&] -[s0; &] -[s7; struct Person : Moveable `{&] -[s7; -|String name;&] -[s7; -|String surname;&] -[s7; &] -[s7; -|unsigned GetHashValue() const `{ return CombineHash(name, -surname); `}&] -[s7; -|bool operator`=`=(const Person`& b) const `{ return name `=`= -b.name `&`& surname `=`= b.surname; `}&] -[s7; &] -[s7; -|Person(String name, String surname) : name(name), surname(surname) -`{`}&] -[s7; -|Person() `{`}&] -[s7; `};&] -[s7; &] -[s7; Index p;&] -[s7; p.Add(Person(`"John`", `"Smith`"));&] -[s7; p.Add(Person(`"Paul`", `"Carpenter`"));&] -[s7; p.Add(Person(`"Carl`", `"Engles`"));&] -[s7; &] -[s7; DUMP(p.Find(Person(`"Paul`", `"Carpenter`")));&] -[s0; &] -[s17; p.Find(Person(`"Paul`", `"Carpenter`")) `= 1&] -[s0; &] -[s3;H4;:Section`_2`_10: 2.10 [C@5 VectorMap], [C@5 ArrayMap]&] -[s5; [*C@5 VectorMap] is nothing else than a simple composition of -[*C@5 Index] of keys and [*C@5 Vector] of values. You can use [*C@5 Add] -methods to put elements into the [*C@5 VectorMap]:&] -[s0; &] -[s7; struct Person : Moveable `{&] -[s7; -|String name;&] -[s7; -|String surname;&] -[s7; -|&] -[s7; -|String ToString() const `{ return String() << name << `' `' -<< surname; `}&] -[s7; &] -[s7; -|Person(String name, String surname) : name(name), surname(surname) -`{`}&] -[s7; -|Person() `{`}&] -[s7; `};&] -[s7; &] -[s7; VectorMap m;&] -[s7; &] -[s7; m.Add(`"1`", Person(`"John`", `"Smith`"));&] -[s7; m.Add(`"2`", Person(`"Carl`", `"Engles`"));&] -[s7; &] -[s7; Person`& p `= m.Add(`"3`");&] -[s7; p.name `= `"Paul`";&] -[s7; p.surname `= `"Carpenter`";&] -[s7; &] -[s7; DUMP(m);&] -[s0; &] -[s17; m `= `{1: John Smith, 2: Carl Engles, 3: Paul Carpenter`}&] -[s0; &] -[s5; [*C@5 VectorMap] provides read`-only access to its [*C@5 Index] -of keys and read`-write access to its [*C@5 Vector] of values:&] -[s0; &] -[s7; DUMP(m.GetKeys());&] -[s7; DUMP(m.GetValues());&] -[s0; &] -[s17; m.GetKeys() `= `[1, 2, 3`]&] -[s17; m.GetValues() `= `[John Smith, Carl Engles, Paul Carpenter`]&] -[s0; &] -[s0; &] -[s7; m.GetValues()`[2`].name `= `"Peter`";&] -[s7; &] -[s7; DUMP(m);&] -[s0; &] -[s17; m `= `{1: John Smith, 2: Carl Engles, 3: Peter Carpenter`}&] -[s0; &] -[s5; You can use indices to iterate [*C@5 VectorMap] contents:&] -[s0; &] -[s7; for(int i `= 0; i < m.GetCount(); i`+`+)&] -[s7; -|LOG(m.GetKey(i) << `": `" << m`[i`]);&] -[s0; &] -[s17; 1: John Smith&] -[s17; 2: Carl Engles&] -[s17; 3: Peter Carpenter&] -[s0; &] -[s5; Standard [*C@5 begin] / [*C@5 end] pair for [*C@5 VectorMap] is the -range of just values (internal Vector) `- it corresponds with -[*C@5 operator`[`]] returning values:&] -[s0; &] -[s7; for(const auto`& p : m)&] -[s7; -|DUMP(p);&] -[s0; &] -[s17; p `= John Smith&] -[s17; p `= Carl Engles&] -[s17; p `= Peter Carpenter&] -[s0; &] -[s5; To iterate through keys, you can use [*C@5 begin]/``end`` of internal -[*C@5 Index]:&] -[s0; &] -[s7; for(const auto`& p : m.GetKeys())&] -[s7; -|DUMP(p);&] -[s0; &] -[s17; p `= 1&] -[s17; p `= 2&] -[s17; p `= 3&] -[s0; &] -[s5; Alternatively, it is possible to create `'projection range`' -of VectorMap that provides convenient key/value iteration, using -[*C@5 operator`~] (note that is also removes `'unlinked`' items, -see later):&] -[s0; &] -[s7; for(const auto`& e : `~m) `{&] -[s7; -|DUMP(e.key);&] -[s7; -|DUMP(e.value);&] -[s7; `}&] -[s0; &] -[s17; e.key `= 1&] -[s17; e.value `= John Smith&] -[s17; e.key `= 2&] -[s17; e.value `= Carl Engles&] -[s17; e.key `= 3&] -[s17; e.value `= Peter Carpenter&] -[s0; &] -[s5; Note that the `'projection range`' obtained by [*C@5 operator`~] -is temporary value, which means that if mutating operation is -required for values, r`-value reference has to be used instead -of plain reference:&] -[s0; &] -[s7; for(const auto`& e : `~m)&] -[s7; -|if(e.key `=`= `"2`")&] -[s7; -|-|e.value.surname `= `"May`";&] -[s7; &] -[s7; DUMP(m);&] -[s0; &] -[s17; m `= `{1: John Smith, 2: Carl May, 3: Peter Carpenter`}&] -[s0; &] -[s5; You can use Find method to retrieve position of element with -required key:&] -[s0; &] -[s7; DUMP(m.Find(`"2`"));&] -[s0; &] -[s17; m.Find(`"2`") `= 1&] -[s0; &] -[s5; or Get method to retrieve corresponding value:&] -[s0; &] -[s7; DUMP(m.Get(`"2`"));&] -[s0; &] -[s17; m.Get(`"2`") `= Carl May&] -[s0; &] -[s5; Passing key not present in [*C@5 VectorMap] as [*C@5 Get] parameter -is undefined behavior (ASSERT fails in debug mode), but there -exists two parameter version of [*C@5 Get] that returns second -parameter if the key is not found in VectorMap:&] -[s0; &] -[s7; DUMP(m.Get(`"33`", Person(`"unknown`", `"person`")));&] -[s0; &] -[s17; m.Get(`"33`", Person(`"unknown`", `"person`")) `= unknown person&] -[s0; &] -[s5; As with [*C@5 Index], you can use [*C@5 Unlink] to make elements -invisible for Find operations:&] -[s0; &] -[s7; m.Unlink(1);&] -[s7; DUMP(m.Find(`"2`"));&] -[s0; &] -[s17; m.Find(`"2`") `= `-1&] -[s0; &] -[s5; [*C@5 SetKey] changes the key of the element:&] -[s0; &] -[s7; m.SetKey(1, `"33`");&] -[s7; DUMP(m.Get(`"33`", Person(`"unknown`", `"person`")));&] -[s0; &] -[s17; m.Get(`"33`", Person(`"unknown`", `"person`")) `= Carl May&] -[s0; &] -[s5; If there are more elements with the same key in [*C@5 VectorMap], -you can iterate them using [*C@5 FindNext] method:&] -[s0; &] -[s7; m.Add(`"33`", Person(`"Peter`", `"Pan`"));&] -[s7; &] -[s7; int q `= m.Find(`"33`");&] -[s7; while(q >`= 0) `{&] -[s7; -|DUMP(m`[q`]);&] -[s7; -|q `= m.FindNext(q);&] -[s7; `}&] -[s0; &] -[s17; m`[q`] `= Carl May&] -[s17; m`[q`] `= Peter Pan&] -[s0; &] -[s5; Unlinked positions can be `'reused`' using Put method:&] -[s0; &] -[s7; m.UnlinkKey(`"33`");&] -[s7; m.Put(`"22`", Person(`"Ali`", `"Baba`"));&] -[s7; m.Put(`"44`", Person(`"Ivan`", `"Wilks`"));&] -[s7; &] -[s7; DUMP(m);&] -[s0; &] -[s17; m `= `{1: John Smith, 22: Ali Baba, 3: Peter Carpenter, 44: Ivan -Wilks`}&] -[s0; &] -[s5; [*C@5 PickValues] / [*C@5 PickIndex] / [*C@5 PickKeys] / pick internal -[*C@5 Vector] / [*C@5 Index] / [*C@5 Vector] of [*C@5 Index]:&] -[s0; &] -[s7; Vector ps `= m.PickValues();&] -[s7; Vector ks `= m.PickKeys();&] -[s7; &] -[s7; DUMP(ps);&] -[s7; DUMP(ks);&] -[s7; DUMP(m);&] -[s0; &] -[s17; ps `= `[John Smith, Ali Baba, Peter Carpenter, Ivan Wilks`]&] -[s17; ks `= `[1, 22, 3, 44`]&] -[s17; m `= `{`}&] -[s0; &] -[s5; [*C@5 VectorMap] pick constructor to create map by picking:&] -[s0; &] -[s7; ks`[0`] `= `"Changed key`";&] -[s7; &] -[s7; m `= VectorMap(pick(ks), pick(ps));&] -[s7; &] -[s7; DUMP(m);&] -[s0; &] -[s17; m `= `{Changed key: John Smith, 22: Ali Baba, 3: Peter Carpenter, -44: Ivan Wilks`}&] -[s0; &] -[s5; [*C@5 ArrayMap] is composition of Index and Array, for cases where -Array is better fit for value type (e.g. they are polymorphic):&] -[s0; &] -[s7; ArrayMap am;&] -[s7; am.Create(`"key`", `"new`", `"person`");&] -[s7; &] -[s7; DUMP(am);&] -[s0; &] -[s17; am `= `{key: new person`}&] -[s0; &] -[s3;H4;:Section`_2`_11: 2.11 [C@5 One]&] -[s5; [*C@5 One] is a container that can store none or one element of -T or derived from T. It is functionally quite similar to [*C@5 std`::unique`_ptr], -but has some convenient features.&] -[s0; &] -[s7; struct Base `{&] -[s7; -|virtual String Get() `= 0;&] -[s7; -|virtual `~Base() `{`}&] -[s7; `};&] -[s7; &] -[s7; struct Derived1 : Base `{&] -[s7; -|virtual String Get() `{ return `"Derived1`"; `}&] -[s7; `};&] -[s7; &] -[s7; struct Derived2 : Base `{&] -[s7; -|virtual String Get() `{ return `"Derived2`"; `}&] -[s7; `};&] -[s7; &] -[s7; One s;&] -[s0; &] -[s5; [*C@5 operator bool] of one returns true if it contains an element:&] -[s0; &] -[s7; DUMP((bool)s);&] -[s0; &] -[s17; (bool)s `= false&] -[s0; &] -[s0; &] -[s7; s.Create();&] -[s7; DUMP((bool)s);&] -[s7; DUMP(s`->Get());&] -[s0; &] -[s17; (bool)s `= true&] -[s17; s`->Get() `= Derived1&] -[s0; &] -[s5; You can use [*C@5 Is] to check if certain type is currently stored -in [*C@5 One]:&] -[s0; &] -[s7; DUMP(s.Is());&] -[s7; DUMP(s.Is());&] -[s7; DUMP(s.Is());&] -[s0; &] -[s17; s.Is() `= true&] -[s17; s.Is() `= true&] -[s17; s.Is() `= false&] -[s0; &] -[s5; To get a pointer to the contained instance, use [*C@5 operator`~]:&] -[s0; &] -[s7; Base `*b `= `~s;&] -[s7; DUMP(b`->Get());&] -[s0; &] -[s17; b`->Get() `= Derived1&] -[s0; &] -[s5; Clear method removes the element from One:&] -[s0; &] -[s7; s.Clear();&] -[s7; DUMP((bool)s);&] -[s0; &] -[s17; (bool)s `= false&] -[s0; &] -[s5; Helper class MakeOne derived from One can be used to create -contained element:&] -[s0; &] -[s7; s `= MakeOne();&] -[s7; DUMP(s`->Get());&] -[s0; &] -[s17; s`->Get() `= Derived1&] -[s0; &] -[s0; &] -[s7; MakeOne d2;&] -[s7; DUMP(d2`->Get());&] -[s0; &] -[s17; d2`->Get() `= Derived2&] -[s0; &] -[s0; &] -[s7; s `= pick(d2);&] -[s7; DUMP(s`->Get());&] -[s0; &] -[s17; s`->Get() `= Derived2&] -[s0; &] -[s3;H4;:Section`_2`_12: 2.12 [C@5 Any]&] -[s5; [*C@5 Any] is a container that can contain none or one element -of [/ any] type. [*C@5 Any`::Is] method matches exact type ignoring -class hierarchies (unlike [*C@5 One`::Is]). You can use [*C@5 Get] -to retrieve a reference to the instance stored:&] -[s0; &] -[s7; for(int pass `= 0; pass < 2; pass`+`+) `{&] -[s7; -|Any x;&] -[s7; -|if(pass)&] -[s7; -|-|x.Create() `= `"Hello!`";&] -[s7; -|else&] -[s7; -|-|x.Create() `= Blue();&] -[s7; -|&] -[s7; -|if(x.Is())&] -[s7; -|-|LOG(`"Any is now String: `" << x.Get());&] -[s7; -|&] -[s7; -|if(x.Is())&] -[s7; -|-|LOG(`"Any is now Color: `" << x.Get());&] -[s7; `}&] -[s0; &] -[s17; Any is now Color: Color(0, 0, 128)&] -[s17; Any is now String: Hello!&] -[s0; &] -[s3;H4;:Section`_2`_13: 2.13 [C@5 InVector], [C@5 InArray]&] -[s5; [*C@5 InVector] and [*C@5 InArray] are container types quite similar -to [*C@5 Vector]/``Array``, but they trade the speed of [*C@5 operator`[`]] -with the ability to insert or remove elements at any position -quickly. You can expect [*C@5 operator`[`]] to be about 10 times -slower than in Vector (but that is still quite fast), while [*C@5 Insert] -at any position scales well up to hundreds of megabytes of data -(e.g. [*C@5 InVector] containing 100M of String elements is handled -without problems).&] -[s0; &] -[s7; InVector v;&] -[s7; for(int i `= 0; i < 1000000; i`+`+)&] -[s7; -|v.Add(i);&] -[s7; v.Insert(0, `-1); // This is fast&] -[s0; &] -[s5; While the interface of [*C@5 InVector]/``InArray`` is almost identical -to [*C@5 Vector]/``Array``, [*C@5 InVector]/``InArray`` in addition -implements [*C@5 FindLowerBound]/``FindUpperBound`` methods `- -while normal generic range algorithms work, it is possible to -provide [*C@5 InVector]/``InArray`` specific optimizations that -basically match the performace of [*C@5 Find`*Bound] on simple -[*C@5 Vector].&] -[s0; &] -[s7; DUMP(v.FindLowerBound(55));&] -[s0; &] -[s17; v.FindLowerBound(55) `= 56&] -[s0; &] -[s3;H4;:Section`_2`_14: 2.14 [C@5 SortedIndex], [C@5 SortedVectorMap], -[C@5 SortedArrayMap]&] -[s5; [*C@5 SortedIndex] is similar to regular [*C@5 Index], but keeps -its elements in sorted order (sorting predicate is a template -parameter, defaults to [*C@5 StdLess]). Implementation is using -[*C@5 InVector], so it works fine even with very large number of -elements (performance is similar to tree based [*C@5 std`::set]). -Unlike [*C@5 Index], [*C@5 SortedIndex] provides lower/upper bounds -searches, so it allows range search.&] -[s0; &] -[s7; SortedIndex x;&] -[s7; x.Add(5);&] -[s7; x.Add(3);&] -[s7; x.Add(7);&] -[s7; x.Add(1);&] -[s7; &] -[s7; DUMPC(x);&] -[s7; DUMP(x.Find(3));&] -[s7; DUMP(x.Find(3));&] -[s7; DUMP(x.FindLowerBound(3));&] -[s7; DUMP(x.FindUpperBound(6));&] -[s0; &] -[s17; x:&] -[s17; -|`[0`] `= 1&] -[s17; -|`[1`] `= 3&] -[s17; -|`[2`] `= 5&] -[s17; -|`[3`] `= 7&] -[s17; x.Find(3) `= 1&] -[s17; x.Find(3) `= 1&] -[s17; x.FindLowerBound(3) `= 1&] -[s17; x.FindUpperBound(6) `= 3&] -[s0; &] -[s5; [*C@5 SortedVectorMap] and [*C@5 SortedArrayMap] are then [*C@5 SortedIndex] -based equivalents to [*C@5 VectorMap]/``ArrayMap``:&] -[s0; &] -[s7; SortedVectorMap m;&] -[s7; m.Add(`"zulu`", 11);&] -[s7; m.Add(`"frank`", 12);&] -[s7; m.Add(`"alfa`", 13);&] -[s7; &] -[s7; DUMPM(m);&] -[s7; DUMP(m.Get(`"zulu`"));&] -[s0; &] -[s17; m:&] -[s17; -|`[0`] `= (alfa) 13&] -[s17; -|`[1`] `= (frank) 12&] -[s17; -|`[2`] `= (zulu) 11&] -[s17; m.Get(`"zulu`") `= 11&] -[s0; &] -[s3;H4;:Section`_2`_15: 2.15 Tuples&] -[s5; Template class [*C@5 Tuple] allows combining 2`-4 values with -different types. These are principally similar to [*C@5 std`::tuple], -with some advantages. Unlike [*C@5 std`::tuple], individual elements -are directly accessible as member variables [*C@5 a]..``d``, [*C@5 Tuple] -supports persistent storage patterns ([*C@5 Serialize], [*C@5 Jsonize], -[*C@5 Xmlize]), hash code ([*C@5 GetHashValue]), conversion to [*C@5 String] -and Value conversions.&] -[s5; To create a [*C@5 Tuple] value, you can use the [*C@5 MakeTuple] -function.&] -[s0; &] -[s7; Tuple x `= MakeTuple(12, `"hello`", `"world`");&] -[s0; &] -[s5; Individual values are accessible as members [*C@5 a] .. [*C@5 d]:&] -[s0; &] -[s7; DUMP(x.a);&] -[s7; DUMP(x.b);&] -[s7; DUMP(x.c);&] -[s0; &] -[s17; x.a `= 12&] -[s17; x.b `= hello&] -[s17; x.c `= world&] -[s0; &] -[s5; Or using [*C@5 Get]:&] -[s0; &] -[s7; DUMP(x.Get<1>());&] -[s7; DUMP(x.Get());&] -[s0; &] -[s17; x.Get<1>() `= hello&] -[s17; x.Get() `= 12&] -[s0; &] -[s5; As long as all individual types have conversion to [*C@5 String] -([*C@5 AsString]), the tuple also has such conversion and thus -can e.g. be easily logged:&] -[s0; &] -[s7; DUMP(x);&] -[s0; &] -[s17; x `= (12, hello, world)&] -[s0; &] -[s5; As long as individual types have defined [*C@5 GetHashValue], -so does [*C@5 Tuple]:&] -[s0; &] -[s7; DUMP(GetHashValue(x));&] -[s0; &] -[s17; GetHashValue(x) `= 834842890&] -[s0; &] -[s5; As long as individual types have defined [*C@5 operator`=`=], -[*C@5 Tuple] has defined [*C@5 operator`=`=] and [*C@5 operator!`=]:&] -[s0; &] -[s7; Tuple y `= x;&] -[s7; DUMP(x `=`= y);&] -[s7; DUMP(x !`= y);&] -[s7; y.a`+`+;&] -[s7; DUMP(x `=`= y);&] -[s7; DUMP(x !`= y);&] -[s0; &] -[s17; x `=`= y `= true&] -[s17; x !`= y `= false&] -[s17; x `=`= y `= false&] -[s17; x !`= y `= true&] -[s0; &] -[s5; As long as all individual types have defined [*C@5 SgnCompare], -Tuple has SgnCompare, Compare method and operators <, <`=, >, ->`=:&] -[s0; &] -[s7; DUMP(x.Compare(y));&] -[s7; DUMP(SgnCompare(x, y));&] -[s7; DUMP(x < y);&] -[s0; &] -[s17; x.Compare(y) `= `-1&] -[s17; SgnCompare(x, y) `= `-1&] -[s17; x < y `= true&] -[s0; &] -[s5; GetCount returns the width of [*C@5 Tuple]:&] -[s0; &] -[s7; DUMP(x.GetCount());&] -[s0; &] -[s17; x.GetCount() `= 3&] -[s0; &] -[s5; Elements that are directly convertible with [*C@5 Value] can be -`'Get`'/`'Set`':&] -[s0; &] -[s7; for(int i `= 0; i < x.GetCount(); i`+`+)&] -[s7; -|DUMP(x.Get(i));&] -[s0; &] -[s17; x.Get(i) `= 12&] -[s17; x.Get(i) `= hello&] -[s17; x.Get(i) `= world&] -[s0; &] -[s0; &] -[s7; x.Set(1, `"Hi`");&] -[s7; DUMP(x);&] -[s0; &] -[s17; x `= (12, Hi, world)&] -[s0; &] -[s5; As long as all individual types are convertible with [*C@5 Value], -you can convert Tuple to [*C@5 ValueArray] and back:&] -[s0; &] -[s7; ValueArray va `= x.GetArray();&] -[s7; DUMP(va);&] -[s7; &] -[s7; va.Set(2, `"Joe`");&] -[s7; x.SetArray(va);&] -[s0; &] -[s17; va `= `[12, Hi, world`]&] -[s0; &] -[s5; It is OK to assign [*C@5 Tuple] to [*C@5 Tuple] with different individual -types, as long as types are directly convertible:&] -[s0; &] -[s7; Tuple d `= x;&] -[s7; DUMP(d);&] -[s0; &] -[s17; d `= (12, Hi, Joe)&] -[s0; &] -[s5; Tie can be used to assign tuple to l`-values:&] -[s0; &] -[s7; int i;&] -[s7; String s1, s2;&] -[s7; &] -[s7; Tie(i, s1, s2) `= x;&] -[s7; &] -[s7; DUMP(i);&] -[s7; DUMP(s1);&] -[s7; DUMP(s2);&] -[s0; &] -[s17; i `= 12&] -[s17; s1 `= Hi&] -[s17; s2 `= Joe&] -[s0; &] -[s5; U`+`+ Tuples are carefully designed as POD type, which allows -POD arrays to be intialized with classic C style:&] -[s0; &] -[s7; static Tuple2 map`[`] `= `{&] -[s7; -|`{ 1, `"one`" `},&] -[s7; -|`{ 2, `"one`" `},&] -[s7; -|`{ 3, `"one`" `},&] -[s7; `};&] -[s0; &] -[s5; Simple FindTuple template function is provided to search for -tuple based on the first value ([*C@5 a]) (linear O(n) search):&] -[s0; &] -[s7; DUMP(FindTuple(map, `_`_countof(map), 3)`->b);&] -[s0; &] -[s17; FindTuple(map, `_`_countof(map), 3)`->b `= one&] -[s0; &] -[s22;:Chapter`_3: 3. Ranges and algoritims&] -[s3;:Section`_3`_1: 3.1 Range&] -[s5; Unlike STL, which interface algorithms with data using [*C@5 begin] -/ [*C@5 end] pair, U`+`+ algorithms usually work on [/ Ranges]. Range -is an object that has [*C@5 begin] / [*C@5 end] methods providing -random access to elements (all U`+`+ containers are random access), -[*C@5 operator`[`]] and [*C@5 GetCount] method.&] -[s5; Obviously, U`+`+ containers are ranges:&] -[s0; &] -[s7; Vector x `= `{ 1, 2, 3, 4, 5, 1, 2, 3, 4 `};&] -[s7; &] -[s7; DUMP(FindIndex(x, 2)); // FindIndex is a trivial algorithm that -does linear search&] -[s0; &] -[s17; FindIndex(x, 2) `= 1&] -[s0; &] -[s5; If you want the algorithm to run on part of container only, -you can use [*C@5 SubRange] instance:&] -[s0; &] -[s7; DUMP(SubRange(x, 3, 6));&] -[s7; DUMP(FindIndex(SubRange(x, 3, 6), 4));&] -[s0; &] -[s17; SubRange(x, 3, 6) `= `[4, 5, 1, 2, 3, 4`]&] -[s17; FindIndex(SubRange(x, 3, 6), 4) `= 0&] -[s0; &] -[s5; As a side`-job, SubRange can also be created from `'begin`' -/ `'end`' pair, thus e.g. allowing algorithms to work on C arrays:&] -[s0; &] -[s7; int a`[`] `= `{ 1, 22, 4, 2, 8 `};&] -[s7; &] -[s7; auto ar `= SubRange(std`::begin(a), std`::end(a));&] -[s7; &] -[s7; DUMP(ar);&] -[s0; &] -[s17; ar `= `[1, 22, 4, 2, 8`]&] -[s0; &] -[s0; &] -[s7; Sort(ar);&] -[s7; DUMP(ar);&] -[s0; &] -[s17; ar `= `[1, 2, 4, 8, 22`]&] -[s0; &] -[s5; There are some macro aliases that make type management of ranges -easier:&] -[s0; &] -[s7; DUMP(typeid(ValueTypeOf).name());&] -[s7; DUMP(typeid(ValueTypeOf).name());&] -[s7; DUMP(typeid(IteratorOf).name());&] -[s7; DUMP(typeid(ConstIteratorOf).name());&] -[s7; DUMP(typeid(SubRangeOf>).name());&] -[s0; &] -[s17; typeid(ValueTypeOf).name() `= i&] -[s17; typeid(ValueTypeOf).name() `= i&] -[s17; typeid(IteratorOf).name() `= Pi&] -[s17; typeid(ConstIteratorOf).name() -`= Pi&] -[s17; typeid(SubRangeOf>).name() `= N3Upp13SubRangeClassIPiEE&] -[s0; &] -[s5; While containers themselves and SubRange are the two most common -range types, U`+`+ has two special ranges. [*C@5 ConstRange] simply -provides the range of single value:&] -[s0; &] -[s7; DUMP(ConstRange(1, 10));&] -[s0; &] -[s17; ConstRange(1, 10) `= `[1, 1, 1, 1, 1, 1, 1, 1, 1, 1`]&] -[s0; &] -[s5; [*C@5 ReverseRange] reverses the order of elements in the source -range:&] -[s0; &] -[s7; Vector v`{ 1, 2, 3, 4 `};&] -[s7; &] -[s7; DUMP(ReverseRange(v));&] -[s0; &] -[s17; ReverseRange(v) `= `[4, 3, 2, 1`]&] -[s0; &] -[s5; [*C@5 ViewRange] picks a source range and [*C@5 Vector] of integer -indices a provides a view of source range through this [*C@5 Vector]:&] -[s0; &] -[s7; Vector h`{ 2, 4, 0 `};&] -[s7; &] -[s7; DUMP(ViewRange(x, clone(h)));&] -[s0; &] -[s17; ViewRange(x, clone(h)) `= `[3, 5, 1`]&] -[s0; &] -[s0; &] -[s7; Sort(ViewRange(x, clone(h)));&] -[s7; DUMP(ViewRange(x, clone(h)));&] -[s7; DUMP(x);&] -[s0; &] -[s17; ViewRange(x, clone(h)) `= `[1, 3, 5`]&] -[s17; x `= `[5, 2, 1, 4, 3, 1, 2, 3, 4`]&] -[s0; &] -[s5; [*C@5 SortedRange] returns range sorted by predicate (default -is std`::less):&] -[s0; &] -[s7; DUMP(SortedRange(x));&] -[s0; &] -[s17; SortedRange(x) `= `[1, 1, 2, 2, 3, 3, 4, 4, 5`]&] -[s0; &] -[s5; Finally [*C@5 FilterRange] creates a subrange of elements satisfying -certain condition:&] -[s0; &] -[s7; DUMP(FilterRange(x, `[`](int x) `{ return x > 3; `}));&] -[s0; &] -[s17; FilterRange(x, `[`](int x) `{ return x > 3; `}) `= `[5, 4, 4`]&] -[s0; &] -[s5; Various Range functions can be combined to produce complex results:&] -[s0; &] -[s7; DUMP(ReverseRange(FilterRange(x, `[`](int x) `{ return x < 4; -`})));&] -[s0; &] -[s17; ReverseRange(FilterRange(x, `[`](int x) `{ return x < 4; `})) -`= `[3, 2, 1, 3, 1, 2`]&] -[s0; &] -[s3;H4;:Section`_3`_2: 3.2 Algorithms&] -[s5; In principle, is is possible to apply C`+`+ standard library -algorithms on U`+`+ containers or ranges.&] -[s5; U`+`+ algorithms are tuned for U`+`+ approach `- they work on -ranges and they prefer indices. Sometimes, U`+`+ algorithm will -perform faster with U`+`+ types than standard library algorithm.&] -[s5; [*C@5 FindIndex] performs linear search to find element with given -value and returns its index or `-1 if not found:&] -[s0; &] -[s7; Vector data `{ 5, 3, 7, 9, 3, 4, 2 `};&] -[s7; &] -[s7; &] -[s7; DUMP(FindIndex(data, 3));&] -[s7; DUMP(FindIndex(data, 6));&] -[s0; &] -[s17; FindIndex(data, 3) `= 1&] -[s17; FindIndex(data, 6) `= `-1&] -[s0; &] -[s5; [*C@5 SubRange] can be used to apply algorithm on subrange of -container:&] -[s0; &] -[s7; DUMP(FindIndex(SubRange(data, 2, data.GetCount() `- 2), 3));&] -[s0; &] -[s17; FindIndex(SubRange(data, 2, data.GetCount() `- 2), 3) `= 2&] -[s0; &] -[s5; [*C@5 FindMin] and [*C@5 FindMax] return the index of minimal / -maximal element:&] -[s0; &] -[s7; DUMP(FindMin(data));&] -[s7; DUMP(FindMax(data));&] -[s0; &] -[s17; FindMin(data) `= 6&] -[s17; FindMax(data) `= 3&] -[s0; &] -[s5; [*C@5 Min] and [*C@5 Max] return the [/ value] of minimal / maximal -element:&] -[s0; &] -[s7; DUMP(Min(data));&] -[s7; DUMP(Max(data));&] -[s0; &] -[s17; Min(data) `= 2&] -[s17; Max(data) `= 9&] -[s0; &] -[s5; If the range is empty, [*C@5 Min] and [*C@5 Max] are undefined (ASSERT -fails in debug mode), unless the value is specified as second -parameter to be used in this case:&] -[s0; &] -[s7; -|Vector empty;&] -[s7; //-|DUMP(Min(empty)); // This is undefined (fails in ASSERT)&] -[s7; -|DUMP(Min(empty, `-99999));&] -[s0; &] -[s17; Min(empty, `-99999) `= `-99999&] -[s0; &] -[s5; [*C@5 Count] returns the number of elements with specified value, -[*C@5 CountIf] the number of elements that satisfy predicate:&] -[s0; &] -[s7; DUMP(Count(data, 11));&] -[s7; DUMP(CountIf(data, `[`=`](int c) `{ return c >`= 5; `}));&] -[s0; &] -[s17; Count(data, 11) `= 0&] -[s17; CountIf(data, `[`=`](int c) `{ return c >`= 5; `}) `= 3&] -[s0; &] -[s5; [*C@5 Sum] return the sum of all elements in range:&] -[s0; &] -[s7; DUMP(Sum(data));&] -[s0; &] -[s17; Sum(data) `= 33&] -[s0; &] -[s5; Sorted containers can be searched with bisection. U`+`+ provides -usual upper / lower bound algorithms. [*C@5 FindBinary] returns -the index of element with given value or `-1 if not found:&] -[s0; &] -[s7; data `= `{ 5, 7, 9, 9, 14, 20, 23, 50 `};&] -[s7; // 0 1 2 3 4 5 6 7&] -[s7; DUMP(FindLowerBound(data, 9));&] -[s7; DUMP(FindUpperBound(data, 9));&] -[s7; DUMP(FindBinary(data, 9));&] -[s7; DUMP(FindLowerBound(data, 10));&] -[s7; DUMP(FindUpperBound(data, 10));&] -[s7; DUMP(FindBinary(data, 10));&] -[s0; &] -[s17; FindLowerBound(data, 9) `= 2&] -[s17; FindUpperBound(data, 9) `= 4&] -[s17; FindBinary(data, 9) `= 2&] -[s17; FindLowerBound(data, 10) `= 4&] -[s17; FindUpperBound(data, 10) `= 4&] -[s17; FindBinary(data, 10) `= `-1&] -[s0; &] -[s3;H4;:Section`_3`_3: 3.3 Sorting&] -[s5; Unsurprisingly, [*C@5 Sort] function sorts a range. You can specify -sorting predicate, default is [*C@5 operator<]:&] -[s0; &] -[s7; Vector x `{ `"1`", `"2`", `"10`" `};&] -[s7; &] -[s7; Sort(x);&] -[s7; &] -[s7; DUMP(x);&] -[s0; &] -[s17; x `= `[1, 10, 2`]&] -[s0; &] -[s0; &] -[s7; Sort(x, `[`](const String`& a, const String`& b) `{ return atoi(a) -< atoi(b); `});&] -[s7; &] -[s7; DUMP(x);&] -[s0; &] -[s17; x `= `[1, 2, 10`]&] -[s0; &] -[s5; [*C@5 IndexSort] is sort variant that is able to sort two ranges -(like [*C@5 Vector] or [*C@5 Array]) of the same size, based on values -in the first range:&] -[s0; &] -[s7; Vector a `{ 5, 10, 2, 9, 7, 3 `};&] -[s7; Vector b `{ `"five`", `"ten`", `"two`", `"nine`", `"seven`", -`"three`" `};&] -[s7; &] -[s7; IndexSort(a, b);&] -[s7; &] -[s7; DUMP(a);&] -[s7; DUMP(b);&] -[s0; &] -[s17; a `= `[2, 3, 5, 7, 9, 10`]&] -[s17; b `= `[two, three, five, seven, nine, ten`]&] -[s0; &] -[s0; &] -[s7; IndexSort(b, a);&] -[s7; &] -[s7; DUMP(a);&] -[s7; DUMP(b);&] -[s0; &] -[s17; a `= `[5, 9, 7, 10, 3, 2`]&] -[s17; b `= `[five, nine, seven, ten, three, two`]&] -[s0; &] -[s5; There are also [*C@5 IndexSort2] and [*C@5 IndexSort3] variants -that sort 2 or 3 dependent ranges.&] -[s5; Sometimes, instead of sorting items in the range, it is useful -to know the order of items as sorted, using [*C@5 GetSortOrder]:&] -[s0; &] -[s7; Vector o `= GetSortOrder(a);&] -[s7; &] -[s7; DUMP(o);&] -[s0; &] -[s17; o `= `[5, 4, 0, 2, 1, 3`]&] -[s0; &] -[s5; Normal [*C@5 Sort] is not stable `- equal items can appear in -sorted range in random order. If maintaining original order of -equal items is important, use [*C@5 StableSort] variant (with performance -penalty):&] -[s0; &] -[s7; Vector t `{ Point(10, 10), Point(7, 1), Point(7, 2), -Point(7, 3), Point(1, 0) `};&] -[s7; StableSort(t, `[`](const Point`& a, const Point`& b) `{ return -a.x < b.x; `});&] -[s7; &] -[s7; DUMP(t);&] -[s0; &] -[s17; t `= `[`[1, 0`], `[7, 1`], `[7, 2`], `[7, 3`], `[10, 10`]`]&] -[s0; &] -[s5; All sorting algorithms have they `'Stable`' variant, so there -is [*C@5 StableIndexSort], [*C@5 GetStableSortOrder] etc...&] -[s22;:Chapter`_4: 4. Value&] -[s3;:Section`_4`_1: 4.1 Value&] -[s5; Value is sort of equivalent of polymorphic data types from scripting -languages like Python or JavaSript. [*C@5 Value] can represent -values of concrete types, some types also have extended interoperability -with [*C@5 Value] and it is then possible to e.g. compare [*C@5 Value]s -containing such types against each other or serialize them for -persistent storage.&] -[s5; Usually, Value compatible types define typecast operator to -[*C@5 Value] and constructor from [*C@5 Value], so that interaction -is for the most part seamless:&] -[s0; &] -[s7; Value a `= 1;&] -[s7; Value b `= 2.34;&] -[s7; Value c `= GetSysDate();&] -[s7; Value d `= `"hello`";&] -[s7; &] -[s7; DUMP(a);&] -[s7; DUMP(b);&] -[s7; DUMP(c);&] -[s7; DUMP(d);&] -[s7; &] -[s7; int x `= a;&] -[s7; double y `= b;&] -[s7; Date z `= c;&] -[s7; String s `= d;&] -[s7; &] -[s7; DUMP(x);&] -[s7; DUMP(y);&] -[s7; DUMP(z);&] -[s7; DUMP(s);&] -[s0; &] -[s17; a `= 1&] -[s17; b `= 2.34&] -[s17; c `= 07/19/2017&] -[s17; d `= hello&] -[s17; x `= 1&] -[s17; y `= 2.34&] -[s17; z `= 07/19/2017&] -[s17; s `= hello&] -[s0; &] -[s5; As for primitive types, Value seamlessly works with [*C@5 int], -[*C@5 int64], [*C@5 bool] and [*C@5 double]. Casting [*C@5 Value] to -a type that it does not contain throws an exception:&] -[s0; &] -[s7; try `{&] -[s7; -|s `= a;&] -[s7; -|DUMP(s); // we never get here....&] -[s7; `}&] -[s7; catch(ValueTypeError) `{&] -[s7; -|LOG(`"Failed Value conversion`");&] -[s7; `}&] -[s0; &] -[s17; Failed Value conversion&] -[s0; &] -[s5; However, conversion between related types is possible (as long -as it is supported by these types):&] -[s0; &] -[s7; double i `= a;&] -[s7; int j `= b;&] -[s7; Time k `= c;&] -[s7; WString t `= d;&] -[s7; &] -[s7; DUMP(i);&] -[s7; DUMP(j);&] -[s7; DUMP(k);&] -[s7; DUMP(t);&] -[s0; &] -[s17; i `= 1&] -[s17; j `= 2&] -[s17; k `= 07/19/2017 00:00:00&] -[s17; t `= hello&] -[s0; &] -[s5; To determine type of value stored in [*C@5 Value], you can use -[*C@5 Is] method:&] -[s0; &] -[s7; DUMP(a.Is());&] -[s7; DUMP(a.Is());&] -[s7; DUMP(b.Is());&] -[s7; DUMP(c.Is());&] -[s7; DUMP(c.Is());&] -[s7; DUMP(d.Is());&] -[s0; &] -[s17; a.Is() `= true&] -[s17; a.Is() `= false&] -[s17; b.Is() `= true&] -[s17; c.Is() `= false&] -[s17; c.Is() `= true&] -[s17; d.Is() `= true&] -[s0; &] -[s5; Note that Is tests for absolute type match, not for compatible -types. For that reason, for widely used compatible types helper -functions are defined:&] -[s0; &] -[s7; DUMP(IsNumber(a));&] -[s7; DUMP(IsNumber(b));&] -[s7; DUMP(IsDateTime(c));&] -[s7; DUMP(IsString(d));&] -[s0; &] -[s17; IsNumber(a) `= true&] -[s17; IsNumber(b) `= true&] -[s17; IsDateTime(c) `= true&] -[s17; IsString(d) `= true&] -[s0; &] -[s3;H4;:Section`_4`_2: 4.2 [C@5 Null]&] -[s5; U`+`+ defines a special [*C@5 Null] constant to represent an empty -value. This constant is convertible to many value types including -primitive types [*C@5 double], [*C@5 int] and [*C@5 int64] (defined -as lowest number the type can represent). If type supports ordering -(<, >), all values of the type are greater than Null value. To -test whether a value is empty, use [*C@5 IsNull] function.&] -[s0; &] -[s7; int x `= Null;&] -[s7; int y `= 120;&] -[s7; Date d `= Null;&] -[s7; Date e `= GetSysDate();&] -[s7; &] -[s7; DUMP(x);&] -[s7; DUMP(y);&] -[s7; DUMP(d);&] -[s7; DUMP(e > d);&] -[s0; &] -[s17; x `= &] -[s17; y `= 120&] -[s17; d `= &] -[s17; e > d `= true&] -[s0; &] -[s5; [*C@5 Null] is the only instance of [*C@5 Nuller] type. Assigning -[*C@5 Null] to primitive types is achieved by cast operators of -[*C@5 Nuller], other types can do it using constructor from [*C@5 Nuller].&] -[s5; As a special case, if [*C@5 Value] contains [*C@5 Null], it is convertible -to any value type that can contain [*C@5 Null]:&] -[s0; &] -[s7; Value v `= x; // x is int&] -[s7; e `= v; // e is Date, but v is Null, so Null is assigned to -e&] -[s7; &] -[s7; DUMP(IsNull(e));&] -[s0; &] -[s17; IsNull(e) `= true&] -[s0; &] -[s5; Function [*C@5 Nvl] is U`+`+ analog of well known SQL function -coalesce (ifnull, Nvl), which returns the first non`-null argument -(or [*C@5 Null] if all are [*C@5 Null]).&] -[s0; &] -[s7; int a `= Null;&] -[s7; int b `= 123;&] -[s7; int c `= 1;&] -[s7; &] -[s7; DUMP(Nvl(a, b, c));&] -[s0; &] -[s17; Nvl(a, b, c) `= 123&] -[s0; &] -[s3;H4;:Section`_4`_3: 4.3 Client types and [C@5 Value], [C@5 RawValue], -[C@5 RichValue]&] -[s5; There are two Value compatibility levels. The simple one, [*C@5 RawValue], -has little requirements for the type used `- only copy constructor -and assignment operator are required (and there are even forms -of [*C@5 RawValue] that work for types missing these):&] -[s0; &] -[s7; struct RawFoo `{&] -[s7; -|String x;&] -[s7; -|// default copy constructor and assignment operator are provided -by compiler&] -[s7; `};&] -[s0; &] -[s5; To convert such type to [*C@5 Value], use [*C@5 RawToValue]:&] -[s0; &] -[s7; RawFoo h;&] -[s7; h.x `= `"hello`";&] -[s7; Value q `= RawToValue(h);&] -[s7; &] -[s7; DUMP(q.Is());&] -[s0; &] -[s17; q.Is() `= true&] -[s0; &] -[s5; To convert it back, us `'To`' templated member function of [*C@5 Value], -it returns a constant reference to the value:&] -[s0; &] -[s7; DUMP(q.To().x);&] -[s0; &] -[s17; q.To().x `= hello&] -[s0; &] -[s5; [*C@5 RichValue] level [*C@5 Value]s provide more operations for -[*C@5 Value] `- equality test, [*C@5 IsNull] test, hashing, conversion -to text, serialization (possibly to XML and Json), comparison. -In order to make serialization work, type must also have assigned -an integer id (client types should use ids in range 10000..20000). -Type can provide the support for these operations via template -function specializations or (perhaps more convenient) using defined -methods and inheriting from [*C@5 ValueType] base class template:&] -[s0; &] -[s7; struct Foo : ValueType `{&] -[s7; -|int x;&] -[s7; -|&] -[s7; -|Foo(const Nuller`&) `{ x `= Null; `}&] -[s7; -|Foo(int x) : x(x) `{`}&] -[s7; -|Foo() `{`}&] -[s7; &] -[s7; -|// We provide these methods to allow automatic conversion of -Foo to/from Value&] -[s7; -|operator Value() const `{ return RichToValue(`*this); -`}&] -[s7; -|Foo(const Value`& v) `{ `*this `= v.Get(); -`}&] -[s7; &] -[s7; -|String ToString() const `{ return AsString(x); -`}&] -[s7; -|unsigned GetHashValue() const `{ return x; `}&] -[s7; -|void Serialize(Stream`& s) `{ s % x; `}&] -[s7; -|bool operator`=`=(const Foo`& b) const `{ return x `=`= b.x; -`}&] -[s7; -|bool IsNullInstance() const `{ return IsNull(x); `}&] -[s7; -|int Compare(const Foo`& b) const `{ return SgnCompare(x, -b.x); `}&] -[s7; -|// This type does not define XML nor Json serialization&] -[s7; `};&] -[s7; &] -[s7; INITBLOCK `{ // This has to be at file level scope&] -[s7; -|Value`::Register(); // need to register value type integer -id to allow serialization&] -[s7; `}&] -[s7; &] -[s7; Value a `= Foo(54321); // uses Foo`::operator Value&] -[s7; Value b `= Foo(54321);&] -[s7; Value c `= Foo(600);&] -[s7; &] -[s7; DUMP(a); // uses Foo`::ToString&] -[s7; DUMP(a `=`= b); // uses Foo`::operator`=`=&] -[s7; DUMP(a `=`= c);&] -[s7; DUMP(c < a); // uses Foo`::Compare&] -[s7; &] -[s7; DUMP(IsNull(a)); // uses Foo`::IsNullInstance&] -[s7; &] -[s7; Foo foo `= c; // Uses Foo`::Foo(const Value`&)&] -[s7; DUMP(foo);&] -[s0; &] -[s17; a `= 54321&] -[s17; a `=`= b `= true&] -[s17; a `=`= c `= false&] -[s17; c < a `= true&] -[s17; IsNull(a) `= false&] -[s17; foo `= 600&] -[s0; &] -[s0; &] -[s7; String s `= StoreAsString(a); // Uses Foo`::Serialize&] -[s7; &] -[s7; Value loaded;&] -[s7; // Using registered (Value`::Registered) integer id creates the -correct type, then uses&] -[s7; // Foo`::Serialize to load the data from the stream&] -[s7; LoadFromString(loaded, s);&] -[s7; &] -[s7; DUMP(loaded);&] -[s0; &] -[s17; loaded `= 54321&] -[s0; &] -[s3;H4;:Section`_4`_4: 4.4 [C@5 ValueArray] and [C@5 ValueMap]&] -[s5; [*C@5 ValueArray] is a type that represents an array of [*C@5 Value]s:&] -[s0; &] -[s7; ValueArray va`{1, 2, 3`};&] -[s7; &] -[s7; DUMP(va);&] -[s0; &] -[s17; va `= `[1, 2, 3`]&] -[s0; &] -[s5; ValueArray can be assigned to Value (and back):&] -[s0; &] -[s7; Value v `= va;&] -[s7; &] -[s7; DUMP(v);&] -[s7; DUMP(v.Is()); // must be exactly ValueArray&] -[s7; DUMP(IsValueArray(v)); // is ValueArray or ValueMap (which is -convertible to ValueArray)&] -[s7; &] -[s7; ValueArray va2 `= v;&] -[s7; &] -[s7; DUMP(va2);&] -[s0; &] -[s17; v `= `[1, 2, 3`]&] -[s17; v.Is() `= true&] -[s17; IsValueArray(v) `= true&] -[s17; va2 `= `[1, 2, 3`]&] -[s0; &] -[s5; Elements can be appended using [*C@5 Add] method or [*C@5 operator<<], -element at index can be changed with [*C@5 Set]:&] -[s0; &] -[s7; va.Add(10);&] -[s7; va << 20 << 21;&] -[s7; va.Set(0, 999);&] -[s7; &] -[s7; DUMP(va);&] -[s0; &] -[s17; va `= `[999, 2, 3, 10, 20, 21`]&] -[s0; &] -[s5; Elements can be removed:&] -[s0; &] -[s7; va.Remove(0, 2);&] -[s7; &] -[s7; DUMP(va);&] -[s0; &] -[s17; va `= `[3, 10, 20, 21`]&] -[s0; &] -[s5; and inserted:&] -[s0; &] -[s7; va.Insert(1, v);&] -[s7; &] -[s7; DUMP(va);&] -[s0; &] -[s17; va `= `[3, 1, 2, 3, 10, 20, 21`]&] -[s0; &] -[s5; It is possible to get a reference to element at index, however -note that some [^topic`:`/`/Core`/srcdoc`/ValueReference`$en`-us^ special -rules] apply here:&] -[s0; &] -[s7; va.At(0) `= 222;&] -[s7; &] -[s7; DUMP(va);&] -[s0; &] -[s17; va `= `[222, 1, 2, 3, 10, 20, 21`]&] -[s0; &] -[s5; If [*C@5 Value] contains [*C@5 ValueArray], [*C@5 Value`::GetCount] -method returns the number of elements in the array (if there -is no [*C@5 ValueArray] in [*C@5 Value], it returns zero). You can -use [*C@5 Value`::operator`[`](int)] to get constant reference to -[*C@5 ValueArray] elements:&] -[s0; &] -[s7; for(int i `= 0; i < v.GetCount(); i`+`+)&] -[s7; -|LOG(v`[i`]);&] -[s0; &] -[s17; 1&] -[s17; 2&] -[s17; 3&] -[s0; &] -[s5; It is even possible to directly add element to [*C@5 Value] if -it contains [*C@5 ValueArray]:&] -[s0; &] -[s7; v.Add(4);&] -[s7; &] -[s7; DUMP(v);&] -[s0; &] -[s17; v `= `[1, 2, 3, 4`]&] -[s0; &] -[s5; Or even get a reference to element at some index (with [^topic`:`/`/Core`/srcdoc`/ValueReference`$en`-us^ s -pecial rules]):&] -[s0; &] -[s7; v.At(0) `= 111;&] -[s7; &] -[s7; DUMP(v);&] -[s0; &] -[s17; v `= `[111, 2, 3, 4`]&] -[s0; &] -[s5; [*C@5 ValueMap] can store key `- value pairs and retrieve value -for key quickly. Note that keys are not limited to [*C@5 String], -but can be any [*C@5 Value] with [*C@5 operator`=`=] and hash code -defined.&] -[s5; [*C@5 Add] method or [*C@5 operator()] add data to [*C@5 ValueMap]:&] -[s0; &] -[s7; ValueMap m;&] -[s7; &] -[s7; m.Add(`"one`", 1);&] -[s7; m(`"two`", 2)(`"three`", 3);&] -[s7; &] -[s7; DUMP(m);&] -[s0; &] -[s17; m `= `{ one: 1, two: 2, three: 3 `}&] -[s0; &] -[s5; [*C@5 operator`[`]] retrieves the value at the key:&] -[s0; &] -[s7; DUMP(m`[`"two`"`]);&] -[s0; &] -[s17; m`[`"two`"`] `= 2&] -[s0; &] -[s5; When key is not present in the map, [*C@5 operator`[`]] returns -void Value (which is also Null):&] -[s0; &] -[s7; DUMP(m`[`"key`"`]);&] -[s7; DUMP(m`[`"key`"`].IsVoid());&] -[s7; DUMP(IsNull(m`[`"key`"`]));&] -[s0; &] -[s17; m`[`"key`"`] `= &] -[s17; m`[`"key`"`].IsVoid() `= true&] -[s17; IsNull(m`[`"key`"`]) `= true&] -[s0; &] -[s5; Just like [*C@5 VectorMap], [*C@5 ValueMap] is ordered, so the order -of adding pairs to it matters:&] -[s0; &] -[s7; ValueMap m2;&] -[s7; &] -[s7; m2.Add(`"two`", 2);&] -[s7; m2(`"one`", 1)(`"three`", 3);&] -[s7; &] -[s7; DUMP(m2);&] -[s7; DUMP(m `=`= m2); // different order of adding means they are -not equal&] -[s0; &] -[s17; m2 `= `{ two: 2, one: 1, three: 3 `}&] -[s17; m `=`= m2 `= false&] -[s0; &] -[s5; `'Unordered`' equality test can be done using [*C@5 IsSame]:&] -[s0; &] -[s7; DUMP(m.IsSame(m2));&] -[s0; &] -[s17; m.IsSame(m2) `= true&] -[s0; &] -[s5; Iterating ValueMap can be achieved with [*C@5 GetCount], [*C@5 GetKey] -and [*C@5 GetValue]:&] -[s0; &] -[s7; for(int i `= 0; i < m.GetCount(); i`+`+)&] -[s7; -|LOG(m.GetKey(i) << `" `= `" << m.GetValue(i));&] -[s0; &] -[s17; one `= 1&] -[s17; two `= 2&] -[s17; three `= 3&] -[s0; &] -[s5; It is possible to get [*C@5 ValueArray] of values:&] -[s0; &] -[s7; LOG(m.GetValues());&] -[s0; &] -[s17; `[1, 2, 3`]&] -[s0; &] -[s5; [*C@5 GetKeys] gets constant reference to [*C@5 Index] of -keys:&] -[s0; &] -[s7; LOG(m.GetKeys());&] -[s0; &] -[s17; `[one, two, three`]&] -[s0; &] -[s5; It is possible to change the value with [*C@5 Set]:&] -[s0; &] -[s7; m.Set(`"two`", 4);&] -[s7; &] -[s7; DUMP(m);&] -[s0; &] -[s17; m `= `{ one: 1, two: 4, three: 3 `}&] -[s0; &] -[s5; Or to change the value of key with [*C@5 SetKey]:&] -[s0; &] -[s7; m.SetKey(1, `"four`");&] -[s7; &] -[s7; DUMP(m);&] -[s0; &] -[s17; m `= `{ one: 1, four: 4, three: 3 `}&] -[s0; &] -[s5; It is possible get a reference of value at given key, (with -[^topic`:`/`/Core`/srcdoc`/ValueReference`$en`-us^ special rules]) -with [*C@5 GetAdd] or [*C@5 operator()]:&] -[s0; &] -[s7; Value`& h `= m(`"five`");&] -[s7; &] -[s7; h `= 5;&] -[s7; &] -[s7; DUMP(m);&] -[s0; &] -[s17; m `= `{ one: 1, four: 4, three: 3, five: 5 `}&] -[s0; &] -[s5; When ValueMap is stored into Value, [*C@5 operator`[`](String)] -provides access to value at key. Note that this narrows keys -to text values:&] -[s0; &] -[s7; v `= m;&] -[s7; DUMP(v);&] -[s7; DUMP(v`[`"five`"`]);&] -[s0; &] -[s17; v `= `{ one: 1, four: 4, three: 3, five: 5 `}&] -[s17; v`[`"five`"`] `= 5&] -[s0; &] -[s5; [*C@5 Value`::GetAdd] and [*C@5 Value`::operator()] provide a reference -to value at key, with [^topic`:`/`/Core`/srcdoc`/ValueReference`$en`-us^ special -rules]:&] -[s0; &] -[s7; v.GetAdd(`"newkey`") `= `"foo`";&] -[s7; v(`"five`") `= `"FIVE`";&] -[s7; &] -[s7; DUMP(v);&] -[s0; &] -[s17; v `= `{ one: 1, four: 4, three: 3, five: FIVE, newkey: foo `}&] -[s0; &] -[s5; [*C@5 ValueMap] and [*C@5 ValueArray] are convertible with each -other. When assigning [*C@5 ValueMap] to [*C@5 ValueArray], values -are simply used:&] -[s0; &] -[s7; ValueArray v2 `= m;&] -[s7; &] -[s7; DUMP(v2);&] -[s0; &] -[s17; v2 `= `[1, 4, 3, 5`]&] -[s0; &] -[s5; When assigning [*C@5 ValueArray] to [*C@5 ValueMap], keys are set -as indices of elements:&] -[s0; &] -[s7; ValueMap m3 `= v2;&] -[s7; &] -[s7; DUMP(m3);&] -[s0; &] -[s17; m3 `= `{ 0: 1, 1: 4, 2: 3, 3: 5 `}&] -[s0; &] -[s5; With basic [*C@5 Value] types [*C@5 int], [*C@5 String], [*C@5 ValueArray] -and [*C@5 ValueMap], [*C@5 Value] can represent JSON:&] -[s0; &] -[s7; Value j `= ParseJSON(`"`{ `\`"array`\`" : `[ 1, 2, 3 `] `}`");&] -[s7; &] -[s7; DUMP(j);&] -[s0; &] -[s17; j `= `{ array: `[1, 2, 3`] `}&] -[s0; &] -[s0; &] -[s7; j(`"value`") `= m;&] -[s7; &] -[s7; DUMP(AsJSON(j));&] -[s0; &] -[s17; AsJSON(j) `= `{`"array`":`[1,2,3`],`"value`":`{`"one`":1,`"four`":4,`"three`":3,`"fiv -e`":5`}`}&] -[s0; &] -[s0; &] -[s7; j(`"array`").At(1) `= ValueMap()(`"key`", 1);&] -[s7; &] -[s7; DUMP(AsJSON(j));&] -[s0; &] -[s17; AsJSON(j) `= `{`"array`":`[1,`{`"key`":1`},3`],`"value`":`{`"one`":1,`"four`":4,`"thr -ee`":3,`"five`":5`}`}&] -[s0; &] -[s22;:Chapter`_5: 5. Function and lambdas&] -[s3;:Section`_5`_1: 5.1 Function&] -[s5; U`+`+ [*C@5 Function] is quite similar to [*C@5 std`::function] `- -it is a function wrapper that can store/copy/invoke any callable -target. There are two important differences. First, invoking -empty [*C@5 Function] is NOP, if [*C@5 Function] has return type -[*C@5 T], it returns [*C@5 T()]. Second, [*C@5 Function] allows effective -chaining of callable targets using [*C@5 operator<<], if [*C@5 Function] -has return type, the return type of last callable appended is -used.&] -[s5; Usually, the callable target is C`+`+11 lambda:&] -[s0; &] -[s7; Function fn `= `[`](int n) `{ LOG(`"Called A`"); -return 3 `* n; `};&] -[s7; &] -[s7; LOG(`"About to call function`");&] -[s7; int n `= fn(7);&] -[s7; DUMP(n);&] -[s0; &] -[s17; About to call function&] -[s17; Called A&] -[s17; n `= 21&] -[s0; &] -[s5; If you chain another lambda into [*C@5 Function], all are called, -but the last one`'s return value is used:&] -[s0; &] -[s7; fn << `[`](int n) `{ LOG(`"Called B`"); return n `* n; `};&] -[s7; LOG(`"About to call combined function`");&] -[s7; n `= fn(7);&] -[s7; DUMP(n);&] -[s0; &] -[s17; About to call combined function&] -[s17; Called A&] -[s17; Called B&] -[s17; n `= 49&] -[s0; &] -[s5; Invoking empty lambda does nothing and returns default constructed -return value. This is quite useful for GUI classes, which have -a lot of output events represented by [*C@5 Function] which are -often unassigned to any action.&] -[s0; &] -[s7; fn.Clear();&] -[s7; LOG(`"About to call empty function`");&] -[s7; n `= fn(7);&] -[s7; DUMP(n);&] -[s0; &] -[s17; About to call empty function&] -[s17; n `= 0&] -[s0; &] -[s5; While using [*C@5 Function] with lambda expression is the most -common, you can use any target that has corresponding [*C@5 operator()] -defined:&] -[s0; &] -[s7; struct Functor `{&] -[s7; -|int operator()(int x) `{ LOG(`"Called Foo`"); return x % 2; -`}&] -[s7; `};&] -[s7; &] -[s7; fn `= Functor();&] -[s7; LOG(`"About to call Functor`");&] -[s7; n `= fn(7);&] -[s7; DUMP(n);&] -[s0; &] -[s17; About to call Functor&] -[s17; Called Foo&] -[s17; n `= 1&] -[s0; &] -[s5; As [*C@5 Function] with [*C@5 void] and [*C@5 bool] return types are -the most frequently used, U`+`+ defines template aliases [*C@5 Event]:&] -[s0; &] -[s7; Event<> ev `= `[`] `{ LOG(`"Event invoked`"); `};&] -[s7; &] -[s7; ev();&] -[s0; &] -[s17; Event invoked&] -[s0; &] -[s5; and [*C@5 Gate]:&] -[s0; &] -[s7; Gate gt `= `[`](int x) `{ LOG(`"Gate invoked with `" << -x); return x < 10; `};&] -[s7; &] -[s7; bool b `= gt(9);&] -[s7; DUMP(b);&] -[s7; b `= gt(10);&] -[s7; DUMP(b);&] -[s0; &] -[s17; Gate invoked with 9&] -[s17; b `= true&] -[s17; Gate invoked with 10&] -[s17; b `= false&] -[s0; &] -[s5; Using lambda to define calls to methods with more parameters -can be verbose and error`-prone. The issue can be simplified -by using [*C@5 THISFN] macro:&] -[s0; &] -[s7; struct Foo `{&] -[s7; -|void Test(int a, const String`& b) `{ LOG(`"Foo`::Test `" << -a << `", `" << b); `}&] -[s7; -|&] -[s7; -|typedef Foo CLASSNAME; // required for THISFN&] -[s7; -|&] -[s7; -|void Do() `{&] -[s7; -|-|Event fn;&] -[s7; -|-|&] -[s7; -|-|fn `= `[`=`](int a, const String`& b) `{ Test(a, b); `};&] -[s7; -|-|fn(1, `"using lambda`");&] -[s7; -|-|&] -[s7; -|-|fn `= THISFN(Test); // this is functionally equivalent, but -less verbose&] -[s7; -|-|fn(2, `"using THISFN`");&] -[s7; -|`}&] -[s7; `};&] -[s7; &] -[s7; Foo f;&] -[s7; f.Do();&] -[s0; &] -[s17; Foo`::Test 1, using lambda&] -[s17; Foo`::Test 2, using THISFN&] -[s0; &] -[s3;H4;:Section`_5`_2: 5.2 Capturing U`+`+ containers into lambdas&] -[s5; Capturing objects with pick/clone semantics can be achieved -using [/ capture with an initializer]:&] -[s0; &] -[s7; Vector x`{ 1, 2 `};&] -[s7; Array y`{ `"one`", `"two`" `};&] -[s7; Event<> ev `= `[x `= pick(x), y `= clone(y)`] `{ DUMP(x); DUMP(y); -`};&] -[s7; &] -[s7; DUMP(x); // x is picked, so empty&] -[s7; DUMP(y); // y was cloned, so it retains original value&] -[s7; &] -[s7; LOG(`"About to invoke event`");&] -[s7; &] -[s7; ev();&] -[s0; &] -[s17; x `= `[`]&] -[s17; y `= `[one, two`]&] -[s17; About to invoke event&] -[s17; x `= `[1, 2`]&] -[s17; y `= `[one, two`]&] -[s0; &] -[s22;:Chapter`_6: 6. Multithreading&] -[s3;:Section`_6`_1: 6.1 [C@5 Thread]&] -[s5; Since C`+`+11, there is now a reasonable support for threads -in standard library. There are however reasons to use U`+`+ threads -instead. One of them is that U`+`+ high performance memory allocator -needs a cleanup call at the the thread exit, which is naturally -implemented into [*C@5 Upp`::Thread]. Second `'hard`' reason is -that Microsoft compiler is using Win32 API function for condition -variable that are not available for Windows XP, while U`+`+ has -alternative implementation for Windows XP, thus making executable -compatible with it.&] -[s5; Then of course we believe U`+`+ multithreading / parallel programming -support is easier to use and leads to higher performance...&] -[s5; [*C@5 Thread] class can start the thread and allows launching -thread to [*C@5 Wait] for its completion:&] -[s0; &] -[s7; Thread t;&] -[s7; t.Run(`[`] `{&] -[s7; -|for(int i `= 0; i < 10; i`+`+) `{&] -[s7; -|-|LOG(`"In the thread `" << i);&] -[s7; -|-|Sleep(100);&] -[s7; -|`}&] -[s7; -|LOG(`"Thread is ending...`");&] -[s7; `});&] -[s7; for(int i `= 0; i < 5; i`+`+) `{&] -[s7; -|LOG(`"In the main thread `" << i);&] -[s7; -|Sleep(100);&] -[s7; `}&] -[s7; LOG(`"About to wait for thread to finish`");&] -[s7; t.Wait();&] -[s7; LOG(`"Wait for thread done`");&] -[s0; &] -[s17; In the main thread 0&] -[s17; In the thread 0&] -[s17; In the thread 1&] -[s17; In the main thread 1&] -[s17; In the thread 2&] -[s17; In the main thread 2&] -[s17; In the main thread 3&] -[s17; In the thread 3&] -[s17; In the main thread 4&] -[s17; In the thread 4&] -[s17; About to wait for thread to finish&] -[s17; In the thread 5&] -[s17; In the thread 6&] -[s17; In the thread 7&] -[s17; In the thread 8&] -[s17; In the thread 9&] -[s17; Thread is ending...&] -[s17; Wait for thread done&] -[s0; &] -[s5; [*C@5 Thread] destructor calls [*C@5 Detach] method with `'disconnects`' -[*C@5 Thread] from the thread. Thread continues running.&] -[s5; [*C@5 Thread`::Start] static method launches a thread without possibility -to wait for its completion; if you need to wait, you have to -use some other method:&] -[s0; &] -[s7; bool x `= false;&] -[s7; &] -[s7; Thread`::Start(`[`&x`] `{ LOG(`"In the Started thread`"); x `= -true; `});&] -[s7; &] -[s7; LOG(`"About to wait for thread to finish`");&] -[s7; while(!x) `{ Sleep(1); `} // Do not do this in real code!&] -[s7; LOG(`"Wait for thread done`");&] -[s0; &] -[s17; About to wait for thread to finish&] -[s17; In the Started thread&] -[s17; Wait for thread done&] -[s0; &] -[s5; (method used here is horrible, but should demonstrate the point).&] -[s3;H4;:Section`_6`_2: 6.2 [C@5 Mutex]&] -[s5; Mutex (`"mutual exclusion`") is a well known concept in multithreaded -programming: When multiple threads write and read the same data, -the access has to be serialized using Mutex. Following invalid -code demonstrates why:&] -[s0; &] -[s7; Thread t;&] -[s7; &] -[s7; int sum `= 0;&] -[s7; t.Run(`[`&sum`] `{&] -[s7; -|for(int i `= 0; i < 1000000; i`+`+)&] -[s7; -|-|sum`+`+;&] -[s7; `});&] -[s7; &] -[s7; for(int i `= 0; i < 1000000; i`+`+)&] -[s7; -|sum`+`+;&] -[s7; &] -[s7; t.Wait();&] -[s7; DUMP(sum);&] -[s0; &] -[s17; sum `= 1560532&] -[s0; &] -[s5; While the expected value is 2000000, produced value is different. -The problem is that both thread read / modify / write [*C@5 sum] -value without any locking. Using [*C@5 Mutex] locks the [*C@5 sum] -and thus serializes access to it `- read / modify / write sequence - is now exclusive for the thread that has [*C@5 Mutex] locked, -this fixing the issue. [*C@5 Mutex] can be locked / unlocked with -[*C@5 Enter] / [*C@5 Leave] methods. Alternatively, [*C@5 Mutex`::Lock] -helper class locks [*C@5 Mutex] in constructor and unlocks it in -destructor:&] -[s0; &] -[s7; Mutex m;&] -[s7; sum `= 0;&] -[s7; t.Run(`[`&sum, `&m`] `{&] -[s7; -|for(int i `= 0; i < 1000000; i`+`+) `{&] -[s7; -|-|m.Enter();&] -[s7; -|-|sum`+`+;&] -[s7; -|-|m.Leave();&] -[s7; -|`}&] -[s7; `});&] -[s7; &] -[s7; for(int i `= 0; i < 1000000; i`+`+) `{&] -[s7; -|Mutex`::Lock `_`_(m); // Lock m till the end of scope&] -[s7; -|sum`+`+;&] -[s7; `}&] -[s7; &] -[s7; t.Wait();&] -[s7; DUMP(sum);&] -[s0; &] -[s17; sum `= 2000000&] -[s0; &] -[s3;H4;:Section`_6`_3: 6.3 [C@5 ConditionVariable]&] -[s5; [*C@5 ConditionVariable] in general is a synchronization primitive -used to block/awaken the thread. [*C@5 ConditionVariable] is associated -with [*C@5 Mutex] used to protect some data; in the thread that -is to be blocked, [*C@5 Mutex] has to locked; call to [*C@5 Wait] -atomically unlocks the [*C@5 Mutex] and puts the thread to waiting. -Another thread then can resume the thread by calling [*C@5 Signal], -which also causes [*C@5 Mutex] to lock again. Multiple threads -can be waiting on single [*C@5 ConditionVariable]; [*C@5 Signal] -resumes single waiting thread, [*C@5 Brodcast] resumes all waitng -threads.&] -[s0; &] -[s7; bool stop `= false;&] -[s7; BiVector data;&] -[s7; Mutex m;&] -[s7; ConditionVariable cv;&] -[s7; &] -[s7; Thread t;&] -[s7; t.Run(`[`&stop, `&data, `&m, `&cv`] `{&] -[s7; -|Mutex`::Lock `_`_(m);&] -[s7; -|for(;;) `{&] -[s7; -|-|while(data.GetCount()) `{&] -[s7; -|-|-|int q `= data.PopTail();&] -[s7; -|-|-|LOG(`"Data received: `" << q);&] -[s7; -|-|`}&] -[s7; -|-|if(stop)&] -[s7; -|-|-|break;&] -[s7; -|-|cv.Wait(m);&] -[s7; -|`}&] -[s7; `});&] -[s7; &] -[s7; for(int i `= 0; i < 10; i`+`+) `{&] -[s7; -|`{&] -[s7; -|-|Mutex`::Lock `_`_(m);&] -[s7; -|-|data.AddHead(i);&] -[s7; -|`}&] -[s7; -|cv.Signal();&] -[s7; -|Sleep(1);&] -[s7; `}&] -[s7; stop `= true;&] -[s7; cv.Signal();&] -[s7; t.Wait();&] -[s0; &] -[s17; Data received: 0&] -[s17; Data received: 1&] -[s17; Data received: 2&] -[s17; Data received: 3&] -[s17; Data received: 4&] -[s17; Data received: 5&] -[s17; Data received: 6&] -[s17; Data received: 7&] -[s17; Data received: 8&] -[s17; Data received: 9&] -[s0; &] -[s5; Important note: rarely thread can be resumed from [*C@5 Wait] even -if no other called [*C@5 Signal]. This is not a bug, but [^https`:`/`/en`.wikipedia`.org`/wiki`/Spurious`_wakeup^ d -esign decision for performance reason]. In practice it only means -that situation has to be (re)checked after resume.&] -[s3;H4;:Section`_6`_4: 6.4 [C@5 CoWork]&] -[s5; [*C@5 CoWork] is intented to be use when thread are used to speedup -code by distributing tasks over multiple CPU cores. [*C@5 CoWork] -spans a single set of worker threads that exist for the whole -duration of program run. [*C@5 CoWork] instances then manage assigning -jobs to these worker threads and waiting for the all work to -finish.&] -[s5; Job units to [*C@5 CoWork] are represented by [*C@5 Function] and thus can be written inline as lambdas.&] -[s5; As an example, following code reads input file by lines, splits -lines into words (this is the parallelized work) and then adds -resulting words to [*C@5 Index]:&] -[s0; &] -[s7; FileIn in(GetDataFile(`"test.txt`")); // let us open some tutorial -testing data&] -[s7; &] -[s7; Index w;&] -[s7; Mutex m; // need mutex to serialize access to w&] -[s7; &] -[s7; CoWork co;&] -[s7; while(!in.IsEof()) `{&] -[s7; -|String ln `= in.GetLine();&] -[s7; -|co `& `[ln, `&w, `&m`] `{&] -[s7; -|-|Vector h `= Split(ln, `[`](int c) `{ return IsAlpha(c) -? 0 : c; `});&] -[s7; -|-|Mutex`::Lock `_`_(m);&] -[s7; -|-|for(const auto`& s : h)&] -[s7; -|-|-|w.FindAdd(s);&] -[s7; -|`};&] -[s7; `}&] -[s7; co.Finish();&] -[s7; &] -[s7; DUMP(w);&] -[s0; &] -[s17; w `= `[esse, cillum, dolore, eu, fugiat, nulla, pariatur, Excepteur, -sint, occaecat, cupidatat, consequat, Duis, aute, irure, dolor, -in, reprehenderit, voluptate, velit, quis, nostrud, exercitation, -ullamco, laboris, nisi, ut, aliquip, ex, ea, commodo, tempor, -incididunt, labore, et, magna, aliqua, Ut, enim, ad, minim, veniam, -Lorem, ipsum, sit, amet, consectetur, adipiscing, elit, sed, -do, eiusmod, non, proident, sunt, culpa, qui, officia, deserunt, -mollit, anim, id, est, laborum`]&] -[s0; &] -[s5; Adding words to [*C@5 w] requires [*C@5 Mutex]. Alternative to this -`'result gathering`' [*C@5 Mutex] is CoWork`::FinLock. The idea -behind this is that CoWork requires an internal [*C@5 Mutex] to -serialize access to common data, so why [*C@5 FinLock] locks this -internal mutex a bit earlier, saving CPU cycles required to lock -and unlock dedicated mutex. From API contract perspective, you -can consider [*C@5 FinLock] to serialize code till the end of worker -job.&] -[s0; &] -[s7; in.Seek(0);&] -[s7; while(!in.IsEof()) `{&] -[s7; -|String ln `= in.GetLine();&] -[s7; -|co `& `[ln, `&w, `&m`] `{&] -[s7; -|-|Vector h `= Split(ln, `[`](int c) `{ return IsAlpha(c) -? 0 : c; `});&] -[s7; -|-|CoWork`::FinLock(); // replaces the mutex, locked till the -end of CoWork job&] -[s7; -|-|for(const auto`& s : h)&] -[s7; -|-|-|w.FindAdd(s);&] -[s7; -|`};&] -[s7; `}&] -[s7; co.Finish();&] -[s7; &] -[s7; DUMP(w);&] -[s0; &] -[s17; w `= `[esse, cillum, dolore, eu, fugiat, nulla, pariatur, Excepteur, -sint, occaecat, cupidatat, consequat, Duis, aute, irure, dolor, -in, reprehenderit, voluptate, velit, quis, nostrud, exercitation, -ullamco, laboris, nisi, ut, aliquip, ex, ea, commodo, tempor, -incididunt, labore, et, magna, aliqua, Ut, enim, ad, minim, veniam, -Lorem, ipsum, sit, amet, consectetur, adipiscing, elit, sed, -do, eiusmod, non, proident, sunt, culpa, qui, officia, deserunt, -mollit, anim, id, est, laborum`]&] -[s0; &] -[s5; Of course, the code performed after FinLock should not take -long, otherwise there is negative impact on all CoWork instances. -In fact, from this perspective, above code is probably past this -threshold...&] -[s3;H4;:Section`_6`_5: 6.5 CoPartition&] -[s5; There is some overhead associated with CoWork worker threads. -That is why e.g. performing a simple operation on the array spawning -worker thread for each element is not a good idea performance -wise:&] -[s0; &] -[s7; Vector data;&] -[s7; for(int i `= 0; i < 10000; i`+`+)&] -[s7; -|data.Add(i);&] -[s7; &] -[s7; int sum `= 0;&] -[s7; &] -[s7; CoWork co;&] -[s7; for(int i `= 0; i < data.GetCount(); i`+`+)&] -[s7; -|co `& `[i, `&sum, `&data`] `{ CoWork`::FinLock(); sum `+`= data`[i`]; -`};&] -[s7; co.Finish();&] -[s7; DUMP(sum);&] -[s0; &] -[s17; sum `= 49995000&] -[s0; &] -[s5; Above code computes the sum of all elements in the [*C@5 Vector], -using CoWorker job for each element. While producing the correct -result, it is likely to run much slower than single`-threaded -version.&] -[s5; The solution to the problem is to split the array into small -number of larger subranges that are processed in parallel. This -is what [*C@5 CoPartition] template algorithm does:&] -[s0; &] -[s7; sum `= 0;&] -[s7; CoPartition(data, `[`&sum`](const auto`& subrange) `{&] -[s7; -|int partial`_sum `= 0;&] -[s7; -|for(const auto`& x : subrange)&] -[s7; -|-|partial`_sum `+`= x;&] -[s7; -|CoWork`::FinLock(); // available as CoPartition uses CoWork&] -[s7; -|sum `+`= partial`_sum;&] -[s7; `});&] -[s7; DUMP(sum);&] -[s0; &] -[s17; sum `= 49995000&] -[s0; &] -[s5; Note that CoWork is still internally used, so [*C@5 CoWork`::FinLock] -is available. Instead of working on subranges, it is also possible -to use iterators:&] -[s0; &] -[s7; sum `= 0;&] -[s7; CoPartition(data.begin(), data.end(), `[`&sum`] (auto l, auto -h) `{&] -[s7; -|int partial`_sum `= 0;&] -[s7; -|while(l !`= h)&] -[s7; -|-|partial`_sum `+`= `*l`+`+;&] -[s7; -|CoWork`::FinLock(); // available as CoPartition uses CoWork&] -[s7; -|sum `+`= partial`_sum;&] -[s7; `});&] -[s7; DUMP(sum);&] -[s0; &] -[s17; sum `= 49995000&] -[s0; &] -[s5; There is no requirement on the type of iterators, so it is even -possible to use just indices:&] -[s0; &] -[s7; sum `= 0;&] -[s7; CoPartition(0, data.GetCount(), `[`&sum, `&data`] (int l, int -h) `{&] -[s7; -|int partial`_sum `= 0;&] -[s7; -|while(l !`= h)&] -[s7; -|-|partial`_sum `+`= data`[l`+`+`];&] -[s7; -|CoWork`::FinLock(); // available as CoPartition uses CoWork&] -[s7; -|sum `+`= partial`_sum;&] -[s7; `});&] -[s7; DUMP(sum);&] -[s0; &] -[s17; sum `= 49995000&] -[s0; &] -[s3;H4;:Section`_6`_6: 6.6 Parallel algorithms&] -[s5; U`+`+ provides a parallel versions of algorithms where it makes -sense. The naming scheme is `'Co`' prefix before the name of -algorithm designates the parallel version.&] -[s5; So the parallel version of e.g. [*C@5 FindIndex] is [*C@5 CoFindIndex], -for [*C@5 Sort] it is [*C@5 CoSort]:&] -[s0; &] -[s7; Vector x`{ `"zero`", `"one`", `"two`", `"three`", `"four`", -`"five`" `};&] -[s7; &] -[s7; DUMP(FindIndex(x, `"two`"));&] -[s7; DUMP(CoFindIndex(x, `"two`"));&] -[s7; &] -[s7; CoSort(x);&] -[s7; DUMP(x);&] -[s0; &] -[s17; FindIndex(x, `"two`") `= 2&] -[s17; CoFindIndex(x, `"two`") `= 2&] -[s17; x `= `[five, four, one, three, two, zero`]&] -[s0; &] -[s5; Caution should be exercised when using these algorithms `- for -small datasets, they are almost certainly slower than single`-threaded -versions.&] +topic "U++ Core Tutorial"; +[2 $$0,0#00000000000000000000000000000000:Default] +[l288;i1120;a17;O9;~~~.1408;2 $$1,0#10431211400427159095818037425705:param] +[a83;*R6 $$2,5#31310162474203024125188417583966:caption] +[b83;*4 $$3,5#07864147445237544204411237157677:title] +[i288;O9;C2 $$4,6#40027414424643823182269349404212:item] +[b42;a42;ph2 $$5,5#45413000475342174754091244180557:text] +[l288;b17;a17;2 $$6,6#27521748481378242620020725143825:desc] +[l321;C@5;1 $$7,7#20902679421464641399138805415013:code] +[b2503;2 $$8,0#65142375456100023862071332075487:separator] +[*@(0.0.255)2 $$9,0#83433469410354161042741608181528:base] +[C2 $$10,0#37138531426314131251341829483380:class] +[l288;a17;*1 $$11,11#70004532496200323422659154056402:requirement] +[i417;b42;a42;O9;~~~.416;2 $$12,12#10566046415157235020018451313112:tparam] +[b167;C2 $$13,13#92430459443460461911108080531343:item1] +[i288;a42;O9;C2 $$14,14#77422149456609303542238260500223:item2] +[*@2$(0.128.128)2 $$15,15#34511555403152284025741354420178:NewsDate] +[l321;*C$7;2 $$16,16#03451589433145915344929335295360:result] +[l321;*C$7;2 $$17,17#07531550463529505371228428965313:result`-line] +[l160;*C+117 $$18,5#88603949442205825958800053222425:package`-title] +[2 $$19,0#53580023442335529039900623488521:gap] +[C2 $$20,20#70211524482531209251820423858195:class`-nested] +[b50;2 $$21,21#03324558446220344731010354752573:Par] +[H8;b73;*+150 $$22,5#07864147445237544204111237153677:subtitle] +[{_} +[s2;%% U`+`+ Core Tutorial&] +[s0;3 &] +[s0;3 &] +[s0; [^`#Chapter`_1^ 1. Basics]&] +[s0; ___[^`#Section`_1`_1^ 1.1 Logging]&] +[s0; ___[^`#Section`_1`_2^ 1.2 String]&] +[s0; ___[^`#Section`_1`_3^ 1.3 StringBuffer]&] +[s0; ___[^`#Section`_1`_4^ 1.4 WString]&] +[s0; ___[^`#Section`_1`_5^ 1.5 Date and Time]&] +[s0; ___[^`#Section`_1`_6^ 1.6 AsString, ToString and operator<<]&] +[s0; ___[^`#Section`_1`_7^ 1.7 CombineHash]&] +[s0; ___[^`#Section`_1`_8^ 1.8 SgnCompare and CombineCompare]&] +[s0; &] +[s0; [^`#Chapter`_2^ 2. Array containers]&] +[s0; ___[^`#Section`_2`_1^ 2.1 Vector basics]&] +[s0; ___[^`#Section`_2`_2^ 2.2 Vector operations]&] +[s0; ___[^`#Section`_2`_3^ 2.3 Transfer issues]&] +[s0; ___[^`#Section`_2`_4^ 2.4 Client types in U`+`+ containers]&] +[s0; ___[^`#Section`_2`_5^ 2.5 Array flavor]&] +[s0; ___[^`#Section`_2`_6^ 2.6 Polymorphic Array]&] +[s0; ___[^`#Section`_2`_7^ 2.7 Bidirectional containers]&] +[s0; ___[^`#Section`_2`_8^ 2.8 Index]&] +[s0; ___[^`#Section`_2`_9^ 2.9 Index and client types]&] +[s0; ___[^`#Section`_2`_10^ 2.10 VectorMap, ArrayMap]&] +[s0; ___[^`#Section`_2`_11^ 2.11 One]&] +[s0; ___[^`#Section`_2`_12^ 2.12 Any]&] +[s0; ___[^`#Section`_2`_13^ 2.13 InVector, InArray]&] +[s0; ___[^`#Section`_2`_14^ 2.14 SortedIndex, SortedVectorMap, SortedArrayMap]&] +[s0; ___[^`#Section`_2`_15^ 2.15 Tuples]&] +[s0; &] +[s0; [^`#Chapter`_3^ 3. Ranges and algoritims]&] +[s0; ___[^`#Section`_3`_1^ 3.1 Range]&] +[s0; ___[^`#Section`_3`_2^ 3.2 Algorithms]&] +[s0; ___[^`#Section`_3`_3^ 3.3 Sorting]&] +[s0; &] +[s0; [^`#Chapter`_4^ 4. Value]&] +[s0; ___[^`#Section`_4`_1^ 4.1 Value]&] +[s0; ___[^`#Section`_4`_2^ 4.2 Null]&] +[s0; ___[^`#Section`_4`_3^ 4.3 Client types and Value, RawValue, RichValue]&] +[s0; ___[^`#Section`_4`_4^ 4.4 ValueArray and ValueMap]&] +[s0; &] +[s0; [^`#Chapter`_5^ 5. Function and lambdas]&] +[s0; ___[^`#Section`_5`_1^ 5.1 Function]&] +[s0; ___[^`#Section`_5`_2^ 5.2 Capturing U`+`+ containers into lambdas]&] +[s0; &] +[s0; [^`#Chapter`_6^ 6. Multithreading]&] +[s0; ___[^`#Section`_6`_1^ 6.1 Thread]&] +[s0; ___[^`#Section`_6`_2^ 6.2 Mutex]&] +[s0; ___[^`#Section`_6`_3^ 6.3 ConditionVariable]&] +[s0; ___[^`#Section`_6`_4^ 6.4 CoWork]&] +[s0; ___[^`#Section`_6`_5^ 6.5 CoPartition]&] +[s0; ___[^`#Section`_6`_6^ 6.6 Parallel algorithms]&] +[s0;^`#Section`_6`_6^ &] +[s22;:Chapter`_1: 1. Basics&] +[s3;:Section`_1`_1: 1.1 Logging&] +[s5; Logging is a useful technique to trace the flow of the code +and examine results. In this tutorial we will be using logging +extensively, so let us start tutorial with the explanation of +logging.&] +[s5; In debug mode and with default settings, macro [*C@5 LOG] puts +string into output log file. Log file is placed into `'config`-directory`', +which by default is .exe directory in Win32 and `~/.upp/appname +in POSIX.&] +[s5; In TheIDE, you can access the log using `'Debug`'/`'View the +log file Alt`+L`'.&] +[s0; &] +[s7; LOG(`"Hello world`");&] +[s0; &] +[s17; Hello world&] +[s0; &] +[s5; You can log values of various types, as long as they have [*C@5 AsString] +function defined You can chain values in single [*C@5 LOG] using +[*C@5 operator<<]:&] +[s0; &] +[s7; int x `= 123;&] +[s7; LOG(`"Value of x is `" << x);&] +[s0; &] +[s17; Value of x is 123&] +[s0; &] +[s5; As it is very common to log a value of single variable, [*C@5 DUMP] +macro provides a useful shortcut, creating a log line with the +variable name and value:&] +[s0; &] +[s7; DUMP(x);&] +[s0; &] +[s17; x `= 123&] +[s0; &] +[s5; To get the value in hexadecimal code, you can use [*C@5 LOGHEX] +/ [*C@5 DUMPHEX]&] +[s0; &] +[s7; DUMPHEX(x);&] +[s7; String h `= `"foo`";&] +[s7; DUMPHEX(h);&] +[s0; &] +[s17; x `= 0x7b&] +[s17; h `= Memory at 0x0x7ffcb01abe30, size 0x3 `= 3&] +[s17; `+0 0x00007FFCB01ABE30 66 6F 6F + foo &] +[s0; &] +[s5; To log the value of a container (or generic Range), you can +either use normal [*C@5 LOG] / [*C@5 DUMP]:&] +[s0; &] +[s7; Vector v `= `{ 1, 2, 3 `};&] +[s7; &] +[s7; DUMP(v);&] +[s0; &] +[s17; v `= `[1, 2, 3`]&] +[s0; &] +[s5; or you can use DUMPC for multi`-line output:&] +[s0; &] +[s7; DUMPC(v);&] +[s0; &] +[s17; v:&] +[s17; -|`[0`] `= 1&] +[s17; -|`[1`] `= 2&] +[s17; -|`[2`] `= 3&] +[s0; &] +[s5; For maps, use DUMPM:&] +[s0; &] +[s7; VectorMap map `= `{ `{ 1, `"one`" `}, `{ 2, `"two`" +`} `};&] +[s7; &] +[s7; DUMP(map);&] +[s0; &] +[s17; map `= `{1: one, 2: two`}&] +[s0; &] +[s0; &] +[s7; DUMPM(map);&] +[s0; &] +[s17; map:&] +[s17; -|`[0`] `= (1) one&] +[s17; -|`[1`] `= (2) two&] +[s0; &] +[s5; All normal [*C@5 LOG]s are removed in release mode. If you need +to log things in release mode, you need to use [*C@5 LOG]/``DUMP`` +variant with `'[*C@5 R]`' prefix ([*C@5 RLOG], [*C@5 RDUMP], [*C@5 RDUMPHEX]...):&] +[s0; &] +[s7; RLOG(`"This will be logged in release mode too!`");&] +[s0; &] +[s17; This will be logged in release mode too!&] +[s0; &] +[s5; Sort of opposite situation is when adding temporary [*C@5 LOG]s +to the code for debugging. In that case, `'[*C@5 D]`' prefixed +variants ([*C@5 DLOG], [*C@5 DDUMP], [*C@5 DDUMPHEX]...) are handy +`- these cause compile error in release mode, so will not get +forgotten in the code past the release:&] +[s0; &] +[s7; DLOG(`"This would not compile in release mode.`");&] +[s0; &] +[s17; This would not compile in release mode.&] +[s0; &] +[s5; The last flavor of [*C@5 LOG] you can encounter while reading +U`+`+ sources is the one prefixed with `'[*C@5 L]`'. This one is +not actually defined in U`+`+ library and is just a convention. +On the start of file, there is usually something like:&] +[s0; &] +[s7; #define LLOG(x) // DLOG(x)&] +[s0; &] +[s5; and by uncommenting the body part, you can activate the logging +in that particular file.&] +[s5; While logging to .log file is default, there are various ways +how to affect logging, for example following line adjusts logging +to output the log both to the console and .log file:&] +[s0; &] +[s7; StdLogSetup(LOG`_COUT`|LOG`_FILE);&] +[s0; &] +[s3;H4;:Section`_1`_2: 1.2 String&] +[s5; String is a value type useful for storing text or binary data.&] +[s0; &] +[s7; String a `= `"Hello`";&] +[s7; DUMP(a);&] +[s0; &] +[s17; a `= Hello&] +[s0; &] +[s5; You can concatenate it with another String or literal:&] +[s0; &] +[s7; a `= a `+ `" world`";&] +[s7; DUMP(a);&] +[s0; &] +[s17; a `= Hello world&] +[s0; &] +[s5; Or single character or specified number of characters from another +[*C@5 String] or literal:&] +[s0; &] +[s7; a.Cat(`'!`');&] +[s7; DUMP(a);&] +[s0; &] +[s17; a `= Hello world!&] +[s0; &] +[s0; &] +[s7; a.Cat(`"ABCDEFGHIJKLM`", 3);&] +[s7; DUMP(a);&] +[s0; &] +[s17; a `= Hello world!ABC&] +[s0; &] +[s5; [*C@5 Clear] method empties the String:&] +[s0; &] +[s7; a.Clear();&] +[s7; DUMP(a);&] +[s0; &] +[s17; a `= &] +[s0; &] +[s5; You can use [*C@5 operator<<] to append to existing [*C@5 String]. +Non`-string values are converted to appropriate [*C@5 String] representation +(using standard function [*C@5 AsString], whose default template +definition calls [*C@5 ToString] method for value):&] +[s0; &] +[s7; for(int i `= 0; i < 10; i`+`+)&] +[s7; -|a << i << `", `";&] +[s7; &] +[s7; DUMP(a);&] +[s0; &] +[s17; a `= 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, &] +[s0; &] +[s5; Sometimes is is useful to use [*C@5 operator<<] to produce a temporary +[*C@5 String] value (e.g. as real argument to function call):&] +[s0; &] +[s7; String b `= String() << `"Number is `" << 123 << `".`";&] +[s7; &] +[s7; DUMP(b);&] +[s0; &] +[s17; b `= Number is 123.&] +[s0; &] +[s5; String provides many various methods for obtaining character +count, inserting characters into [*C@5 String] or removing them:&] +[s0; &] +[s7; a `= `"0123456789`";&] +[s7; &] +[s7; DUMP(a.GetCount());&] +[s0; &] +[s17; a.GetCount() `= 10&] +[s0; &] +[s0; &] +[s7; DUMP(a.GetLength()); // GetLength is a synonym of GetCount&] +[s0; &] +[s17; a.GetLength() `= 10&] +[s0; &] +[s0; &] +[s7; a.Insert(6, `"`");&] +[s7; DUMP(a);&] +[s0; &] +[s17; a `= 0123456789&] +[s0; &] +[s0; &] +[s7; a.Remove(2, 2);&] +[s7; DUMP(a);&] +[s0; &] +[s17; a `= 01456789&] +[s0; &] +[s5; as well as searching and comparing methods:&] +[s0; &] +[s7; DUMP(a.Find(`'e`'));&] +[s7; DUMP(a.ReverseFind(`'e`'));&] +[s0; &] +[s17; a.Find(`'e`') `= 8&] +[s17; a.ReverseFind(`'e`') `= 11&] +[s0; &] +[s0; &] +[s7; DUMP(a.Find(`"ins`"));&] +[s0; &] +[s17; a.Find(`"ins`") `= 5&] +[s0; &] +[s0; &] +[s7; DUMP(a.StartsWith(`"ABC`"));&] +[s7; DUMP(a.StartsWith(`"01`"));&] +[s7; DUMP(a.EndsWith(`"89`"));&] +[s0; &] +[s17; a.StartsWith(`"ABC`") `= false&] +[s17; a.StartsWith(`"01`") `= true&] +[s17; a.EndsWith(`"89`") `= true&] +[s0; &] +[s5; You can get slice of String using Mid method; with single parameter +it provides slice to the end of String:&] +[s0; &] +[s7; DUMP(a.Mid(3, 3));&] +[s7; DUMP(a.Mid(3));&] +[s0; &] +[s17; a.Mid(3, 3) `= 56789&] +[s0; &] +[s5; You can also trim the length of String using Trim (this is faster +than using any other method):&] +[s0; &] +[s7; a.Trim(4);&] +[s7; DUMP(a);&] +[s0; &] +[s17; a `= 0145&] +[s0; &] +[s5; You can obtain integer values of individual characters using +operator`[`]:&] +[s0; &] +[s7; DUMP(a`[0`]);&] +[s0; &] +[s17; a`[0`] `= 48&] +[s0; &] +[s5; or the value of first character using operator`* (note that +if [*C@5 GetCount() `=`= 0], this will return zero terminator):&] +[s0; &] +[s7; DUMP(`*a);&] +[s0; &] +[s17; `*a `= 48&] +[s0; &] +[s0; &] +[s7; a.Clear();&] +[s7; &] +[s7; DUMP(`*a);&] +[s0; &] +[s17; `*a `= 0&] +[s0; &] +[s5; [*C@5 String] has implicit cast to zero terminated [*C@5 const char +`*ptr] (only valid as long as [*C@5 String] does not mutate:&] +[s0; &] +[s7; a `= `"1234`";&] +[s7; const char `*s `= a;&] +[s7; while(`*s)&] +[s7; -|LOG(`*s`+`+);&] +[s0; &] +[s17; 1&] +[s17; 2&] +[s17; 3&] +[s17; 4&] +[s0; &] +[s5; [*C@5 String] also has standard [*C@5 begin] [*C@5 end] methods, which +e.g. allows for C`+`+11 [*C@5 for]:&] +[s0; &] +[s7; for(char ch : a)&] +[s7; -|LOG(ch);&] +[s0; &] +[s17; 1&] +[s17; 2&] +[s17; 3&] +[s17; 4&] +[s0; &] +[s5; It is absolutely OK and common to use String for storing binary +data, including zeroes:&] +[s0; &] +[s7; a.Cat(0);&] +[s7; &] +[s7; DUMPHEX(a);&] +[s0; &] +[s17; a `= Memory at 0x0x7ffcb01abd20, size 0x5 `= 5&] +[s17; `+0 0x00007FFCB01ABD20 31 32 33 34 00 + 1234. &] +[s0; &] +[s3;H4;:Section`_1`_3: 1.3 StringBuffer&] +[s5; If you need a direct write access to [*C@5 String]`'s C`-string +character buffer, you can use complementary [*C@5 StringBuffer] +class. One of reasons to do so is when you have to deal with +some C`-API functions that expects to write directly to [*C@5 char +`*] and you would like that result converted to the [*C@5 String]:&] +[s0; &] +[s7; void CApiFunction(char `*c)&] +[s7; `{&] +[s7; -|strcpy(c, `"Hello`");&] +[s7; `}&] +[s7; &] +[s7; StringBuffer b;&] +[s7; b.SetLength(200);&] +[s7; CApiFunction(b);&] +[s7; b.Strlen();&] +[s7; String x `= b;&] +[s7; &] +[s7; DUMP(x);&] +[s0; &] +[s17; x `= Hello&] +[s0; &] +[s5; In this case, [*C@5 SetLength] creates a C array of 200 characters. +You can then call C`-API function. Later you set the real length +using [*C@5 Strlen] `- this function performs strlen of buffer +and sets the length accordingly. Later you simply assign the +[*C@5 StringBuffer] to [*C@5 String]. Note that for performance reasons, +this operation clears the [*C@5 StringBuffer] content (operation +is fast and does not depend on the number of characters).&] +[s5; Another usage scenario of StringBuffer is altering existing +String:&] +[s0; &] +[s7; b `= x;&] +[s7; b`[1`] `= `'a`';&] +[s7; x `= b;&] +[s7; &] +[s7; DUMP(x);&] +[s0; &] +[s17; x `= Hallo&] +[s0; &] +[s5; Similar to assigning StringBuffer to String, assigning String +to StringBuffer clears the source String.&] +[s5; StringBuffer also provides appending operations:&] +[s0; &] +[s7; b `= x;&] +[s7; b.Cat(`'!`');&] +[s7; x `= b;&] +[s7; &] +[s7; DUMP(x);&] +[s0; &] +[s17; x `= Hallo!&] +[s0; &] +[s5; Note that sometimes when creating some String from a lot of +single characters, using StringBuffer for the operation is slightly +faster then using String directly.&] +[s3;H4;:Section`_1`_4: 1.4 WString&] +[s5; String works with 8 bit characters. For 16`-bit character encoding +use [*C@5 WString]. Both classes are closely related and share +most of interface methods. U`+`+ also provides conversions between +[*C@5 String] and [*C@5 WString] and you can also use 8 bit string +literals with [*C@5 WString]. Conversion is ruled by current default +character set. Default value of default character set is [*C@5 CHARSET`_UTF8]. +This conversion is also used in [*C@5 WString`::ToString], e.g. +when putting [*C@5 WString] to log:&] +[s0; &] +[s7; WString x `= `"characters 280`-300: `"; // you can assign 8`-bit +character literal to WString&] +[s7; for(int i `= 280; i < 300; i`+`+)&] +[s7; -|x.Cat(i);&] +[s7; &] +[s7; DUMP(x);&] +[s0; &] +[s17; x `= characters 280`-300: ĘęĚěĜÄĞğĠġĢģĤĥĦħĨĩĪī&] +[s0; &] +[s5; [*C@5 ToString] converts [*C@5 WString] to [*C@5 String]:&] +[s0; &] +[s7; String y `= x.ToString();&] +[s7; DUMP(y);&] +[s0; &] +[s17; y `= characters 280`-300: ĘęĚěĜÄĞğĠġĢģĤĥĦħĨĩĪī&] +[s0; &] +[s5; [*C@5 ToWString] converts [*C@5 String] to [*C@5 WString]:&] +[s0; &] +[s7; y.Cat(`" (appended)`"); // you can use 8`-bit character literals +in most WString operations&] +[s7; x `= y.ToWString();&] +[s7; &] +[s7; DUMP(x);&] +[s0; &] +[s17; x `= characters 280`-300: ĘęĚěĜÄĞğĠġĢģĤĥĦħĨĩĪī +(appended)&] +[s0; &] +[s3;H4;:Section`_1`_5: 1.5 Date and Time&] +[s5; To represent date and time, U`+`+ provides [*C@5 Date] and [*C@5 Time] +concrete types.&] +[s0; &] +[s7; Date date `= GetSysDate();&] +[s7; &] +[s7; DUMP(date);&] +[s0; &] +[s17; date `= 07/19/2017&] +[s0; &] +[s5; All data members of [*C@5 Date] structure are public:&] +[s0; &] +[s7; DUMP((int)date.year); // we need to cast to int because some +date members&] +[s7; DUMP((int)date.month); // are of unsigned character type which +would log&] +[s7; DUMP((int)date.day); // as characters&] +[s0; &] +[s17; (int)date.year `= 2017&] +[s17; (int)date.month `= 7&] +[s17; (int)date.day `= 19&] +[s0; &] +[s5; Dates can be compared:&] +[s0; &] +[s7; DUMP(date > Date(2000, 1, 1));&] +[s0; &] +[s17; date > Date(2000, 1, 1) `= true&] +[s0; &] +[s5; Adding a number to [*C@5 Date] adds a number of days to it, incrementing/decrement +ing goes to the next/previous day:&] +[s0; &] +[s7; DUMP(date `+ 1);&] +[s7; DUMP(`-`-date);&] +[s7; DUMP(`+`+date);&] +[s0; &] +[s17; date `+ 1 `= 07/20/2017&] +[s17; `-`-date `= 07/18/2017&] +[s17; `+`+date `= 07/19/2017&] +[s0; &] +[s5; Subtraction of dates yields a number of days between them:&] +[s0; &] +[s7; DUMP(date `- Date(2000, 1, 1));&] +[s0; &] +[s17; date `- Date(2000, 1, 1) `= 6409&] +[s0; &] +[s5; There are several [*C@5 Date] and calendar related functions:&] +[s0; &] +[s7; DUMP(IsLeapYear(2012));&] +[s7; DUMP(IsLeapYear(2014));&] +[s7; DUMP(IsLeapYear(2015));&] +[s7; DUMP(IsLeapYear(2016));&] +[s7; DUMP(IsLeapYear(2017));&] +[s0; &] +[s17; IsLeapYear(2012) `= true&] +[s17; IsLeapYear(2014) `= false&] +[s17; IsLeapYear(2015) `= false&] +[s17; IsLeapYear(2016) `= true&] +[s17; IsLeapYear(2017) `= false&] +[s0; &] +[s0; &] +[s7; DUMP(GetDaysOfMonth(2, 2015));&] +[s7; DUMP(GetDaysOfMonth(2, 2016));&] +[s0; &] +[s17; GetDaysOfMonth(2, 2015) `= 28&] +[s17; GetDaysOfMonth(2, 2016) `= 29&] +[s0; &] +[s0; &] +[s7; DUMP(DayOfWeek(date)); // 0 is Sunday&] +[s0; &] +[s17; DayOfWeek(date) `= 3&] +[s0; &] +[s0; &] +[s7; DUMP(LastDayOfMonth(date));&] +[s7; DUMP(FirstDayOfMonth(date));&] +[s7; DUMP(LastDayOfYear(date));&] +[s7; DUMP(FirstDayOfYear(date));&] +[s7; DUMP(DayOfYear(date)); // number of days since Jan`-1 `+ 1&] +[s7; DUMP(DayOfYear(Date(2016, 1, 1)));&] +[s0; &] +[s17; LastDayOfMonth(date) `= 07/31/2017&] +[s17; FirstDayOfMonth(date) `= 07/01/2017&] +[s17; LastDayOfYear(date) `= 12/31/2017&] +[s17; FirstDayOfYear(date) `= 01/01/2017&] +[s17; DayOfYear(date) `= 200&] +[s17; DayOfYear(Date(2016, 1, 1)) `= 1&] +[s0; &] +[s0; &] +[s7; DUMP(AddMonths(date, 20));&] +[s7; DUMP(GetMonths(date, date `+ 100)); // number of `'whole months`' +between two dates&] +[s7; DUMP(GetMonthsP(date, date `+ 100)); // number of `'whole or +partial months`' between two dates&] +[s7; DUMP(AddYears(date, 2));&] +[s0; &] +[s17; AddMonths(date, 20) `= 03/19/2019&] +[s17; GetMonths(date, date `+ 100) `= 3&] +[s17; GetMonthsP(date, date `+ 100) `= 4&] +[s17; AddYears(date, 2) `= 07/19/2019&] +[s0; &] +[s0; &] +[s7; DUMP(GetWeekDate(2015, 1));&] +[s7; int year;&] +[s7; DUMP(GetWeek(Date(2016, 1, 1), year)); // first day of year +can belong to previous year&] +[s7; DUMP(year);&] +[s0; &] +[s17; GetWeekDate(2015, 1) `= 12/29/2014&] +[s17; GetWeek(Date(2016, 1, 1), year) `= 53&] +[s17; year `= 2015&] +[s0; &] +[s0; &] +[s7; DUMP(EasterDay(2015));&] +[s7; DUMP(EasterDay(2016));&] +[s0; &] +[s17; EasterDay(2015) `= 04/05/2015&] +[s17; EasterDay(2016) `= 03/27/2016&] +[s0; &] +[s5; U`+`+ defines the beginning and the end of era, most algorithms +can safely assume that as minimal and maximal values [*C@5 Date] +can represent:&] +[s0; &] +[s7; DUMP(Date`::Low());&] +[s7; DUMP(Date`::High());&] +[s0; &] +[s17; Date`::Low() `= 01/01/`-4000&] +[s17; Date`::High() `= 01/01/4000&] +[s0; &] +[s5; Time is derived from [*C@5 Date], adding members to represent +time:&] +[s0; &] +[s7; Time time `= GetSysTime();&] +[s7; DUMP(time);&] +[s7; DUMP((Date)time);&] +[s7; DUMP((int)time.hour);&] +[s7; DUMP((int)time.minute);&] +[s7; DUMP((int)time.second);&] +[s0; &] +[s17; time `= 07/19/2017 22:55:10&] +[s17; (Date)time `= 07/19/2017&] +[s17; (int)time.hour `= 22&] +[s17; (int)time.minute `= 55&] +[s17; (int)time.second `= 10&] +[s0; &] +[s5; Times can be compared:&] +[s0; &] +[s7; DUMP(time > Time(1970, 0, 0));&] +[s0; &] +[s17; time > Time(1970, 0, 0) `= true&] +[s0; &] +[s5; Warning: As [*C@5 Time] is derived from the [*C@5 Date], most operations +automatically convert [*C@5 Time] back to [*C@5 Date]. You have to +use [*C@5 ToTime] conversion function to convert [*C@5 Date] to [*C@5 Time]:&] +[s0; &] +[s7; DUMP(time > date); // time gets converted to Date...&] +[s7; DUMP(time > ToTime(date));&] +[s0; &] +[s17; time > date `= false&] +[s17; time > ToTime(date) `= true&] +[s0; &] +[s5; Like [*C@5 Date], [*C@5 Time] supports add and subtract operations, +but numbers represent seconds (using [*C@5 int64] datatype):&] +[s0; &] +[s7; DUMP(time `+ 1);&] +[s7; DUMP(time `+ 24 `* 3600);&] +[s7; DUMP(time `- date); // time converts to Date, so the result +is in days&] +[s7; DUMP(time `- ToTime(date)); // Time `- Time is in seconds&] +[s0; &] +[s17; time `+ 1 `= 07/19/2017 22:55:11&] +[s17; time `+ 24 `* 3600 `= 07/20/2017 22:55:10&] +[s17; time `- date `= 0&] +[s17; time `- ToTime(date) `= 82510&] +[s0; &] +[s5; [*C@5 Time] defines era limits too:&] +[s0; &] +[s7; DUMP(Time`::Low());&] +[s7; DUMP(Time`::High());&] +[s0; &] +[s17; Time`::Low() `= 01/01/`-4000 00:00:00&] +[s17; Time`::High() `= 01/01/4000 00:00:00&] +[s0; &] +[s3;H4;:Section`_1`_6: 1.6 [C@5 AsString], [C@5 ToString] and [C@5 operator<<]&] +[s5; U`+`+ Core provides simple yet effective standard schema for +converting values to default textual form. System is based on +the combination of template functions (following code is part +of U`+`+ library):&] +[s0; &] +[s7; namespace Upp `{&] +[s7; -|template &] +[s7; -|inline String AsString(const T`& x)&] +[s7; -|`{&] +[s7; -|-|return x.ToString();&] +[s7; -|`}&] +[s7; -|&] +[s7; -|template &] +[s7; -|inline Stream`& operator<<(Stream`& s, const T`& x)&] +[s7; -|`{&] +[s7; -|-|s << AsString(x);&] +[s7; -|-|return s;&] +[s7; -|`}&] +[s7; -|&] +[s7; -|template &] +[s7; -|inline String`& operator<<(String`& s, const T`& x)&] +[s7; -|`{&] +[s7; -|-|s.Cat(AsString(x));&] +[s7; -|-|return s;&] +[s7; -|`}&] +[s7; `};&] +[s0; &] +[s5; Client types have to either define [*C@5 String ToString] method +or specialize [*C@5 AsString] template in [*C@5 Upp] namespace. Such +types can be appended to Streams or Strings using [*C@5 operator<<]. +Of course, U`+`+ value types and primitive types have required +items predefined by U`+`+:&] +[s0; &] +[s7; FileOut fout(ConfigFile(`"test.txt`"));&] +[s7; String sout;&] +[s7; &] +[s7; fout << 1.23 << `' `' << GetSysDate() << `' `' << GetSysTime();&] +[s7; sout << 1.23 << `' `' << GetSysDate() << `' `' << GetSysTime();&] +[s7; &] +[s7; fout.Close();&] +[s7; &] +[s7; DUMP(LoadFile(ConfigFile(`"test.txt`")));&] +[s7; DUMP(sout);&] +[s0; &] +[s17; LoadFile(ConfigFile(`"test.txt`")) `= 1.23 07/19/2017 07/19/2017 +22:55:10&] +[s17; sout `= 1.23 07/19/2017 07/19/2017 22:55:10&] +[s0; &] +[s5; Getting client types involved into this schema is not too difficult, +all you need to do is to add [*C@5 ToString] method:&] +[s0; &] +[s7; struct BinFoo `{&] +[s7; -|int x;&] +[s7; -|&] +[s7; -|String ToString() const `{ return FormatIntBase(x, 2); `}&] +[s7; `};&] +[s7; &] +[s7; BinFoo bf;&] +[s7; bf.x `= 30;&] +[s7; &] +[s7; sout.Clear();&] +[s7; sout << bf;&] +[s7; DUMP(sout);&] +[s0; &] +[s17; sout `= 11110&] +[s0; &] +[s5; If you cannot add [*C@5 ToString], you can still specialize template +in Upp namespace:&] +[s0; &] +[s7; struct RomanFoo `{&] +[s7; -|int x;&] +[s7; -|&] +[s7; -|RomanFoo(int x) : x(x) `{`}&] +[s7; `};&] +[s7; &] +[s7; namespace Upp `{&] +[s7; template <> String Upp`::AsString(const RomanFoo`& a) `{ return +FormatIntRoman(a.x); `}&] +[s7; `};&] +[s0; &] +[s3;H4;:Section`_1`_7: 1.7 CombineHash&] +[s5; To simplify providing of high quality hash codes for composite +types, U`+`+ provides [*C@5 CombineHash] utility class. This class +uses [*C@5 GetHashValue] function to gather hash codes of all values +and combines them to provide final hash value for composite type:&] +[s0; &] +[s7; struct Foo `{&] +[s7; -|String a;&] +[s7; -|int b;&] +[s7; -|&] +[s7; -|unsigned GetHashValue() const `{ return CombineHash(a, b); +`}&] +[s7; `};&] +[s0; &] +[s5; Note that [*C@5 GetHashValue] is defined as function template +that calls [*C@5 GetHashValue] method of its argument, therefore +defining [*C@5 GetHashValue] method defines [*C@5 GetHashValue] function +too:&] +[s0; &] +[s7; Foo x;&] +[s7; x.a `= `"world`";&] +[s7; x.b `= 22;&] +[s7; &] +[s7; DUMP(GetHashValue(x));&] +[s0; &] +[s17; GetHashValue(x) `= 4272824901&] +[s0; &] +[s0; &] +[s7; x.a << `'!`';&] +[s7; &] +[s7; DUMP(GetHashValue(x));&] +[s0; &] +[s17; GetHashValue(x) `= 3378606405&] +[s0; &] +[s3;H4;:Section`_1`_8: 1.8 SgnCompare and CombineCompare&] +[s5; Traditional approach of C language of representing comparison +results was 3`-state: comparing a and b results in negative value +(if a < b), zero (if a `=`= b) or positive value (a > b). In +C`+`+ standard library, comparisons are usually represented with +[*C@5 bool] predicates.&] +[s5; However, with [*C@5 bool] predicate it becomes somewhat more difficult +to provide comparisons for composite types:&] +[s0; &] +[s7; struct Foo `{&] +[s7; -|String a;&] +[s7; -|int b;&] +[s7; -|int c;&] +[s7; -|&] +[s7; -|// we want to order Foo instances by a first, then b, then +c&] +[s7; -|&] +[s7; -|bool operator<(const Foo`& x) const `{&] +[s7; -|-|return a < x.a ? true&] +[s7; -|-| : a `=`= x.a ? b < x.b ? true&] +[s7; -|-| : b `=`= x.b ? false&] +[s7; -|-| : c < x.c&] +[s7; -|-| : false;&] +[s7; -|`}&] +[s7; `};&] +[s0; &] +[s5; U`+`+ provides standard function [*C@5 SgnCompare], which returns +negative value/zero/positive in `"C style`":&] +[s0; &] +[s7; int a `= 1;&] +[s7; int b `= 2;&] +[s7; &] +[s7; DUMP(SgnCompare(a, b));&] +[s7; DUMP(SgnCompare(b, a));&] +[s7; DUMP(SgnCompare(a, a));&] +[s0; &] +[s17; SgnCompare(a, b) `= `-1&] +[s17; SgnCompare(b, a) `= 1&] +[s17; SgnCompare(a, a) `= 0&] +[s0; &] +[s5; Default implementation of [*C@5 SgnCompare] calls [*C@5 Compare] +method of value:&] +[s0; &] +[s7; struct MyClass `{&] +[s7; -|int val;&] +[s7; -|&] +[s7; -|int Compare(const MyClass`& x) const `{ return SgnCompare(val, +x.val); `}&] +[s7; `};&] +[s0; &] +[s5; [*C@5 SgnCompare] is now defined for [*C@5 MyClass]:&] +[s0; &] +[s7; MyClass u, v;&] +[s7; u.val `= 1;&] +[s7; v.val `= 2;&] +[s7; &] +[s7; DUMP(SgnCompare(u, v));&] +[s7; DUMP(SgnCompare(v, u));&] +[s7; DUMP(SgnCompare(v, v));&] +[s0; &] +[s17; SgnCompare(u, v) `= `-1&] +[s17; SgnCompare(v, u) `= 1&] +[s17; SgnCompare(v, v) `= 0&] +[s0; &] +[s5; Now getting back to [*C@5 Foo], with [*C@5 SgnCompare] [*C@5 operator<] +becomes much less difficult:&] +[s0; &] +[s7; struct Foo2 `{&] +[s7; -|String a;&] +[s7; -|int b;&] +[s7; -|int c;&] +[s7; -|&] +[s7; -|bool operator<(const Foo2`& x) const `{&] +[s7; -|-|int q `= SgnCompare(a, x.a);&] +[s7; -|-|if(q) return q < 0;&] +[s7; -|-|q `= SgnCompare(b, x.b);&] +[s7; -|-|if(q) return q < 0;&] +[s7; -|-|q `= SgnCompare(c, x.c);&] +[s7; -|-|return q < 0;&] +[s7; -|`}&] +[s7; `};&] +[s0; &] +[s5; Alternatively, it is possible to define just [*C@5 Compare] method +and use [*C@5 Comparable] [^https`:`/`/en`.wikipedia`.org`/wiki`/Curiously`_recurring`_template`_pattern^ C +RTP idiom] to define all relation operators:&] +[s0; &] +[s7; struct Foo3 : Comparable `{&] +[s7; -|String a;&] +[s7; -|int b;&] +[s7; -|int c;&] +[s7; -|&] +[s7; -|int Compare(const Foo3`& x) const `{&] +[s7; -|-|int q `= SgnCompare(a, x.a);&] +[s7; -|-|if(q) return q;&] +[s7; -|-|q `= SgnCompare(b, x.b);&] +[s7; -|-|if(q) return q;&] +[s7; -|-|return SgnCompare(c, x.c);&] +[s7; -|`}&] +[s7; `};&] +[s7; &] +[s7; Foo3 m, n;&] +[s7; m.a `= `"A`";&] +[s7; m.b `= 1;&] +[s7; m.c `= 2;&] +[s7; n.a `= `"A`";&] +[s7; n.b `= 1;&] +[s7; n.c `= 3;&] +[s7; &] +[s7; DUMP(m < n);&] +[s7; DUMP(m `=`= n);&] +[s7; DUMP(m !`= n);&] +[s7; DUMP(SgnCompare(m, n));&] +[s0; &] +[s17; m < n `= true&] +[s17; m `=`= n `= false&] +[s17; m !`= n `= true&] +[s17; SgnCompare(m, n) `= `-1&] +[s0; &] +[s5; While the content of [*C@5 Compare] method is trivial, it can +be further simplified using [*C@5 CombineCompare] helper class:&] +[s0; &] +[s7; struct Foo4 : Comparable `{&] +[s7; -|String a;&] +[s7; -|int b;&] +[s7; -|int c;&] +[s7; -|&] +[s7; -|int Compare(const Foo4`& x) const `{&] +[s7; -|-|return CombineCompare(a, x.a)(b, x.b)(c, x.c);&] +[s7; -|`}&] +[s7; `};&] +[s7; &] +[s7; Foo4 o, p;&] +[s7; o.a `= `"A`";&] +[s7; o.b `= 1;&] +[s7; o.c `= 2;&] +[s7; p.a `= `"A`";&] +[s7; p.b `= 1;&] +[s7; p.c `= 3;&] +[s7; &] +[s7; DUMP(o < p);&] +[s7; DUMP(o `=`= p);&] +[s7; DUMP(o !`= p);&] +[s7; DUMP(SgnCompare(o, p));&] +[s0; &] +[s17; o < p `= true&] +[s17; o `=`= p `= false&] +[s17; o !`= p `= true&] +[s17; SgnCompare(o, p) `= `-1&] +[s0; &] +[s22;:Chapter`_2: 2. Array containers&] +[s3;:Section`_2`_1: 2.1 [C@5 Vector] basics&] +[s5; [*C@5 Vector] is the basic container of U`+`+. It is the random +access container similar to [*C@5 std`::vector] with one important +performance related difference: There are rules for elements of +[*C@5 Vector] that allow its implementation to move elements in +memory using plain [*C@5 memcpy]/``memmove`` (`"Moveable`" concept).&] +[s5; Anyway, for now let us start with simple [*C@5 Vector] of [*C@5 int]s:&] +[s0; &] +[s7; -|Vector v;&] +[s0; &] +[s5; You can add elements to the Vector as parameters of the Add +method&] +[s0; &] +[s7; -|v.Add(1);&] +[s7; -|v.Add(2);&] +[s7; -|&] +[s7; -|DUMP(v);&] +[s0; &] +[s17; v `= `[1, 2`]&] +[s0; &] +[s5; Alternative and very important possibility for U`+`+ containers +is `'in`-place creation`'. In this case, parameter`-less Add +returns a reference to a new element in [*C@5 Vector]:&] +[s0; &] +[s7; -|v.Add() `= 3;&] +[s7; -|&] +[s7; -|DUMP(v);&] +[s0; &] +[s17; v `= `[1, 2, 3`]&] +[s0; &] +[s5; You can also use [*C@5 operator<<]&] +[s0; &] +[s7; -|v << 4 << 5;&] +[s7; &] +[s7; -|DUMP(v);&] +[s0; &] +[s17; v `= `[1, 2, 3, 4, 5`]&] +[s0; &] +[s5; [*C@5 Vector] also supports initializer lists:&] +[s0; &] +[s7; -|v.Append(`{ 6, 7 `});&] +[s7; &] +[s7; -|DUMP(v);&] +[s0; &] +[s17; v `= `[1, 2, 3, 4, 5, 6, 7`]&] +[s0; &] +[s5; To iterate [*C@5 Vector] you can use indices:&] +[s0; &] +[s7; -|for(int i `= 0; i < v.GetCount(); i`+`+)&] +[s7; -|-|LOG(v`[i`]);&] +[s0; &] +[s17; 1&] +[s17; 2&] +[s17; 3&] +[s17; 4&] +[s17; 5&] +[s17; 6&] +[s17; 7&] +[s0; &] +[s5; begin/end interface:&] +[s0; &] +[s7; -|for(auto q `= v.begin(), e `= v.end(); q !`= e; q`+`+)&] +[s7; -|-|LOG(`*q);&] +[s0; &] +[s17; 1&] +[s17; 2&] +[s17; 3&] +[s17; 4&] +[s17; 5&] +[s17; 6&] +[s17; 7&] +[s0; &] +[s5; C`+`+11 range`-for syntax:&] +[s0; &] +[s7; -|for(const auto`& q : v)&] +[s7; -|-|LOG(q);&] +[s0; &] +[s17; 1&] +[s17; 2&] +[s17; 3&] +[s17; 4&] +[s17; 5&] +[s17; 6&] +[s17; 7&] +[s0; &] +[s3;H4;:Section`_2`_2: 2.2 [C@5 Vector] operations&] +[s5; You can [*C@5 Insert] or [*C@5 Remove] elements at random positions +of Vector (O(n) complexity):&] +[s0; &] +[s7; Vector v;&] +[s7; v.Add(1);&] +[s7; v.Add(2);&] +[s7; &] +[s7; v.Insert(1, 10);&] +[s7; &] +[s7; DUMP(v);&] +[s0; &] +[s17; v `= `[1, 10, 2`]&] +[s0; &] +[s0; &] +[s7; v.Insert(0, `{ 7, 6, 5 `});&] +[s7; &] +[s7; DUMP(v);&] +[s0; &] +[s17; v `= `[7, 6, 5, 1, 10, 2`]&] +[s0; &] +[s0; &] +[s7; v.Remove(0);&] +[s7; &] +[s7; DUMP(v);&] +[s0; &] +[s17; v `= `[6, 5, 1, 10, 2`]&] +[s0; &] +[s5; At method returns element at specified position ensuring that +such a position exists. If there is not enough elements in [*C@5 Vector], +required number of elements is added. If second parameter of +[*C@5 At] is present, newly added elements are initialized to this +value.&] +[s0; &] +[s7; v.Clear();&] +[s7; for(int i `= 0; i < 10000; i`+`+)&] +[s7; -|v.At(Random(10), 0)`+`+;&] +[s7; &] +[s7; DUMP(v);&] +[s0; &] +[s17; v `= `[972, 1037, 983, 993, 1009, 981, 1002, 1033, 963, 1027`]&] +[s0; &] +[s5; You can apply algorithms on containers, e.g. Sort&] +[s0; &] +[s7; Sort(v);&] +[s7; &] +[s7; DUMP(v);&] +[s0; &] +[s17; v `= `[963, 972, 981, 983, 993, 1002, 1009, 1027, 1033, 1037`]&] +[s0; &] +[s3;H4;:Section`_2`_3: 2.3 Transfer issues&] +[s5; Often you need to pass content of one container to another of +the same type. U`+`+ containers always support [^topic`:`/`/Core`/srcdoc`/pick`_`$en`-us^ p +ick semantics] (synonym of std`::move), and, depending on type +stored, also might support [^topic`:`/`/Core`/srcdoc`/pick`_`$en`-us^ clone +semantics]. When transferring the value, you have to explicitly +specify which one to use:&] +[s0; &] +[s7; Vector v`{ 1, 2 `};&] +[s7; &] +[s7; DUMP(v);&] +[s7; &] +[s7; Vector v1 `= pick(v);&] +[s7; &] +[s7; DUMP(v);&] +[s7; DUMP(v1);&] +[s0; &] +[s17; v `= `[1, 2`]&] +[s17; v `= `[`]&] +[s17; v1 `= `[1, 2`]&] +[s0; &] +[s5; now source [*C@5 Vector] [*C@5 v] is empty, as elements were `'picked`' +to [*C@5 v1].&] +[s5; If you really need to preserve value of source (and elements +support deep copy operation), you can use [*C@5 clone]:&] +[s0; &] +[s7; v `= clone(v1);&] +[s7; &] +[s7; DUMP(v);&] +[s7; DUMP(v1);&] +[s0; &] +[s17; v `= `[1, 2`]&] +[s17; v1 `= `[1, 2`]&] +[s0; &] +[s5; The requirement of explicit [*C@5 clone] has the advantage of +avoiding unexpected deep copies. For example:&] +[s0; &] +[s7; Vector> x;&] +[s7; x.Add() << 1 << 2 << 3;&] +[s7; &] +[s7; for(auto i : x) `{ LOG(i); `}&] +[s0; &] +[s5; results in run`-time error, whereas the equivalent code with +[*C@5 std`::vector] compiles but silently performs deep copy for +each iteration:&] +[s0; &] +[s7; std`::vector> sv;&] +[s7; sv.push`_back(`{1, 2, 3`});&] +[s7; for(auto i : sv) // invokes std`::vector copy constructor&] +[s7; -|for(auto j : i)&] +[s7; -|-|DUMP(j);&] +[s0; &] +[s5; That said, in certain cases it is simpler to have default copy +instead of explicit [*C@5 clone]. You can easily achieve that using +[*C@5 WithDeepCopy] template:&] +[s0; &] +[s7; WithDeepCopy> v2;&] +[s7; &] +[s7; v2 `= v;&] +[s7; &] +[s7; DUMP(v);&] +[s7; DUMP(v2);&] +[s0; &] +[s17; v `= `[1, 2`]&] +[s17; v2 `= `[1, 2`]&] +[s0; &] +[s3;H4;:Section`_2`_4: 2.4 Client types in U`+`+ containers&] +[s5; So far we were using int as type of elements. In order to store +client defined types into the [*C@5 Vector] (and the Vector [^topic`:`/`/Core`/src`/Overview`$en`-us^ f +lavor]) the type must satisfy [^topic`:`/`/Core`/src`/Moveable`$en`-us^ moveable] +requirement `- in short, it must not contain back`-pointers nor +virtual methods. Type must be marked as [/ moveable] in order to +define interface contract using [*C@5 Moveable] [^https`:`/`/en`.wikipedia`.org`/wiki`/Curiously`_recurring`_template`_pattern^ C +RTP idiom]:&] +[s0; &] +[s7; struct Distribution : Moveable `{&] +[s7; -|String text;&] +[s7; -|Vector data;&] +[s7; -|&] +[s7; -|String ToString() const `{ return text `+ `": `" `+ AsString(data); +`}&] +[s7; `};&] +[s0; &] +[s5; Now to add [*C@5 Distribution] elements you cannot use [*C@5 Vector`::Add(const +T`&)], because it requires elements to have default deep`-copy +constructor `- and [*C@5 Distribution does not have one, as ]Vector`` +has default pick`-constructor, so Distribution itself has pick`-constructor. +It would no be a good idea either, because deep`-copy would involve +expensive copying of inner Vector.&] +[s5; Instead, Add without parameters has to be used `- it default +constructs (that is cheap) element in Vector and returns reference +to it:&] +[s0; &] +[s7; Vector dist;&] +[s7; for(int n `= 5; n <`= 10; n`+`+) `{&] +[s7; -|Distribution`& d `= dist.Add();&] +[s7; -|d.text << `"Test `" << n;&] +[s7; -|for(int i `= 0; i < 10000; i`+`+)&] +[s7; -|-|d.data.At(Random(n), 0)`+`+;&] +[s7; `}&] +[s7; &] +[s7; DUMPC(dist);&] +[s0; &] +[s17; dist:&] +[s17; -|`[0`] `= Test 5: `[1940, 2038, 2008, 2034, 1980`]&] +[s17; -|`[1`] `= Test 6: `[1643, 1672, 1672, 1635, 1718, 1660`]&] +[s17; -|`[2`] `= Test 7: `[1458, 1420, 1432, 1369, 1471, 1403, 1447`]&] +[s17; -|`[3`] `= Test 8: `[1229, 1288, 1283, 1256, 1237, 1221, 1223, +1263`]&] +[s17; -|`[4`] `= Test 9: `[1069, 1126, 1075, 1090, 1112, 1126, 1139, +1148, 1115`]&] +[s17; -|`[5`] `= Test 10: `[1058, 982, 984, 973, 982, 988, 1009, 1030, +990, 1004`]&] +[s0; &] +[s5; Another possibility is to use [*C@5 Vector`::Add(T`&`&)] method, +which uses pick`-constructor instead of deep`-copy constructor. +E.g. [*C@5 Distribution] elements might be generated by some function:&] +[s0; &] +[s7; Distribution CreateDist(int n);&] +[s0; &] +[s5; and code for adding such elements to Vector then looks like:&] +[s0; &] +[s7; for(n `= 5; n <`= 10; n`+`+)&] +[s7; -|dist.Add(CreateDist(n));&] +[s0; &] +[s5; alternatively, you can use default`-constructed variant too&] +[s0; &] +[s7; -|dist.Add() `= CreateDist();&] +[s0; &] +[s3;H4;:Section`_2`_5: 2.5 Array flavor&] +[s5; If elements are not [*C@5 Moveable] and therefore cannot be stored +in [*C@5 Vector] flavor, they can still be stored in [*C@5 Array] +flavor. Another reason for using Array is the need for referencing +elements `- Array flavor never invalidates references or pointers +to them. Finally, if sizeof(T) is large (say more than 100`-200 +bytes), using Array might be better from performance perspective.&] +[s5; Example of elements that cannot be stored in Vector flavor are +standard library objects like [*C@5 std`::string] (because obviously, +standard library knows nothing about U`+`+ Moveable concept):&] +[s0; &] +[s7; Array as;&] +[s7; for(int i `= 0; i < 4; i`+`+)&] +[s7; -|as.Add(`"Test`");&] +[s7; &] +[s7; for(auto s : as)&] +[s7; -|DUMP(s.c`_str());&] +[s0; &] +[s17; s.c`_str() `= Test&] +[s17; s.c`_str() `= Test&] +[s17; s.c`_str() `= Test&] +[s17; s.c`_str() `= Test&] +[s0; &] +[s3;H4;:Section`_2`_6: 2.6 Polymorphic [C@5 Array]&] +[s5; [*C@5 Array] can even be used for storing polymorphic elements:&] +[s0; &] +[s7; struct Number `{&] +[s7; -|virtual double Get() const `= 0;&] +[s7; -|String ToString() const `{ return AsString(Get()); `}&] +[s7; -|virtual `~Number() `{`}&] +[s7; `};&] +[s7; &] +[s7; struct Integer : public Number `{&] +[s7; -|int n;&] +[s7; -|virtual double Get() const `{ return n; `}&] +[s7; `};&] +[s7; &] +[s7; struct Double : public Number `{&] +[s7; -|double n;&] +[s7; -|virtual double Get() const `{ return n; `}&] +[s7; `};&] +[s0; &] +[s5; To add such derived types to [*C@5 Array], you can best use in`-place +creation with [*C@5 Create] method:&] +[s0; &] +[s7; Array num;&] +[s7; num.Create().n `= 15.5;&] +[s7; num.Create().n `= 3;&] +[s7; &] +[s7; DUMP(num);&] +[s0; &] +[s17; num `= `[15.5, 3`]&] +[s0; &] +[s5; Alternatively, you can use [*C@5 Add(T `*)] method and provide +a pointer to the newly created instance on the heap ([*C@5 Add] +returns a reference to the instance):&] +[s0; &] +[s7; Double `*nd `= new Double;&] +[s7; nd`->n `= 1.1;&] +[s7; num.Add(nd);&] +[s7; &] +[s7; DUMP(num);&] +[s0; &] +[s17; num `= `[15.5, 3, 1.1`]&] +[s0; &] +[s5; Array takes ownership of heap object and deletes it as appropriate. +We recommend to use this variant only if in`-place creation with +[*C@5 Create] is not possible.&] +[s5; It is OK do directly apply U`+`+ algorithms on [*C@5 Array] (the +most stringent requirement of any of basic algorithms is that +there is [*C@5 IterSwap] provided for container iterators and that +is specialized for [*C@5 Array] iterators):&] +[s0; &] +[s7; Sort(num, `[`](const Number`& a, const Number`& b) `{ return +a.Get() < b.Get(); `});&] +[s7; &] +[s7; DUMP(num);&] +[s0; &] +[s17; num `= `[1.1, 3, 15.5`]&] +[s0; &] +[s3;H4;:Section`_2`_7: 2.7 Bidirectional containers&] +[s5; [*C@5 Vector] and [*C@5 Array] containers allow fast adding and +removing elements at the end of sequence. Sometimes, same is +needed at begin of sequence too (usually to support FIFO queues). +[*C@5 BiVector] and [*C@5 BiArray] are optimal for this scenario:&] +[s0; &] +[s7; BiVector n;&] +[s7; n.AddHead(1);&] +[s7; n.AddTail(2);&] +[s7; n.AddHead(3);&] +[s7; n.AddTail(4);&] +[s7; DUMP(n);&] +[s0; &] +[s17; n `= `[3, 1, 2, 4`]&] +[s0; &] +[s0; &] +[s7; n.DropHead();&] +[s7; DUMP(n);&] +[s0; &] +[s17; n `= `[1, 2, 4`]&] +[s0; &] +[s0; &] +[s7; n.DropTail();&] +[s7; DUMP(n);&] +[s0; &] +[s17; n `= `[1, 2`]&] +[s0; &] +[s0; &] +[s7; struct Val `{&] +[s7; -|virtual String ToString() const `= 0;&] +[s7; -|virtual `~Val() `{`}&] +[s7; `};&] +[s7; &] +[s7; struct Number : Val `{&] +[s7; -|int n;&] +[s7; -|virtual String ToString() const `{ return AsString(n); `}&] +[s7; `};&] +[s7; &] +[s7; struct Text : Val `{&] +[s7; -|String s;&] +[s7; -|virtual String ToString() const `{ return s; `}&] +[s7; `};&] +[s7; &] +[s7; BiArray num;&] +[s7; num.CreateHead().n `= 3;&] +[s7; num.CreateTail().s `= `"Hello`";&] +[s7; num.CreateHead().s `= `"World`";&] +[s7; num.CreateTail().n `= 2;&] +[s7; &] +[s7; DUMP(num);&] +[s0; &] +[s17; num `= `[World, 3, Hello, 2`]&] +[s0; &] +[s3;H4;:Section`_2`_8: 2.8 [C@5 Index]&] +[s5; [*C@5 Index] is the the foundation of all U`+`+ associative operations +and is one of defining features of U`+`+.&] +[s5; [*C@5 Index] is a container very similar to the plain [*C@5 Vector] +(it is random access array of elements with fast addition at +the end) with one additional feature `- it is able to fast retrieve +position of element with required value using [*C@5 Find] method:&] +[s0; &] +[s7; Index ndx;&] +[s7; ndx.Add(`"alfa`");&] +[s7; ndx.Add(`"beta`");&] +[s7; ndx.Add(`"gamma`");&] +[s7; ndx.Add(`"delta`");&] +[s7; ndx.Add(`"kappa`");&] +[s7; &] +[s7; DUMP(ndx);&] +[s7; DUMP(ndx.Find(`"beta`"));&] +[s0; &] +[s17; ndx `= `[alfa, beta, gamma, delta, kappa`]&] +[s17; ndx.Find(`"beta`") `= 1&] +[s0; &] +[s5; If element is not present in [*C@5 Index], [*C@5 Find] returns a +negative value:&] +[s0; &] +[s7; DUMP(ndx.Find(`"something`"));&] +[s0; &] +[s17; ndx.Find(`"something`") `= `-1&] +[s0; &] +[s5; Any element can be replaced using [*C@5 Set] method:&] +[s0; &] +[s7; ndx.Set(1, `"alfa`");&] +[s7; &] +[s7; DUMP(ndx);&] +[s0; &] +[s17; ndx `= `[alfa, alfa, gamma, delta, kappa`]&] +[s0; &] +[s5; If there are more elements with the same value, they can be +iterated using [*C@5 FindNext] method:&] +[s0; &] +[s7; int fi `= ndx.Find(`"alfa`");&] +[s7; while(fi >`= 0) `{&] +[s7; -|DUMP(fi);&] +[s7; -|fi `= ndx.FindNext(fi);&] +[s7; `}&] +[s0; &] +[s17; fi `= 0&] +[s17; fi `= 1&] +[s0; &] +[s5; [*C@5 FindAdd] method retrieves position of element like [*C@5 Find], +but if element is not present in [*C@5 Index], it is added:&] +[s0; &] +[s7; DUMP(ndx.FindAdd(`"one`"));&] +[s7; DUMP(ndx.FindAdd(`"two`"));&] +[s7; DUMP(ndx.FindAdd(`"three`"));&] +[s7; DUMP(ndx.FindAdd(`"two`"));&] +[s7; DUMP(ndx.FindAdd(`"three`"));&] +[s7; DUMP(ndx.FindAdd(`"one`"));&] +[s0; &] +[s17; ndx.FindAdd(`"one`") `= 5&] +[s17; ndx.FindAdd(`"two`") `= 6&] +[s17; ndx.FindAdd(`"three`") `= 7&] +[s17; ndx.FindAdd(`"two`") `= 6&] +[s17; ndx.FindAdd(`"three`") `= 7&] +[s17; ndx.FindAdd(`"one`") `= 5&] +[s0; &] +[s5; Removing elements from random access sequence tends to be expensive, +that is why rather than remove, [*C@5 Index] supports [*C@5 Unlink] +and [*C@5 UnlinkKey] operations, which retain the element in [*C@5 Index] +but make it invisible for [*C@5 Find] operation:&] +[s0; &] +[s7; ndx.Unlink(2);&] +[s7; ndx.UnlinkKey(`"kappa`");&] +[s7; &] +[s7; DUMP(ndx.Find(ndx`[2`]));&] +[s7; DUMP(ndx.Find(`"kappa`"));&] +[s0; &] +[s17; ndx.Find(ndx`[2`]) `= `-1&] +[s17; ndx.Find(`"kappa`") `= `-1&] +[s0; &] +[s5; You can test whether element at given position is unlinked using +[*C@5 IsUnlinked] method&] +[s0; &] +[s7; DUMP(ndx.IsUnlinked(1));&] +[s7; DUMP(ndx.IsUnlinked(2));&] +[s0; &] +[s17; ndx.IsUnlinked(1) `= false&] +[s17; ndx.IsUnlinked(2) `= true&] +[s0; &] +[s5; Unlinked positions can be reused by [*C@5 Put] method:&] +[s0; &] +[s7; ndx.Put(`"foo`");&] +[s7; &] +[s7; DUMP(ndx);&] +[s7; DUMP(ndx.Find(`"foo`"));&] +[s0; &] +[s17; ndx `= `[alfa, alfa, foo, delta, kappa, one, two, three`]&] +[s17; ndx.Find(`"foo`") `= 2&] +[s0; &] +[s5; You can also remove all unlinked elements from [*C@5 Index] using +[*C@5 Sweep] method:&] +[s0; &] +[s7; ndx.Sweep();&] +[s7; &] +[s7; DUMP(ndx);&] +[s0; &] +[s17; ndx `= `[alfa, alfa, foo, delta, one, two, three`]&] +[s0; &] +[s5; Operations directly removing or inserting elements of Index +are expensive, but available too:&] +[s0; &] +[s7; ndx.Remove(1);&] +[s7; &] +[s7; DUMP(ndx);&] +[s0; &] +[s17; ndx `= `[alfa, foo, delta, one, two, three`]&] +[s0; &] +[s0; &] +[s7; ndx.RemoveKey(`"two`");&] +[s7; &] +[s7; DUMP(ndx);&] +[s0; &] +[s17; ndx `= `[alfa, foo, delta, one, three`]&] +[s0; &] +[s0; &] +[s7; ndx.Insert(0, `"insert`");&] +[s7; &] +[s7; DUMP(ndx);&] +[s0; &] +[s17; ndx `= `[insert, alfa, foo, delta, one, three`]&] +[s0; &] +[s5; PickKeys operation allows you to obtain Vector of elements of +Index in low constant time operation (while destroying source +Index)&] +[s0; &] +[s7; Vector d `= ndx.PickKeys();&] +[s7; &] +[s7; DUMP(d);&] +[s0; &] +[s17; d `= `[insert, alfa, foo, delta, one, three`]&] +[s0; &] +[s5; Pick`-assigning [*C@5 Vector] to [*C@5 Index] is supported as well:&] +[s0; &] +[s7; d`[0`] `= `"test`";&] +[s7; &] +[s7; ndx `= pick(d);&] +[s7; &] +[s7; DUMP(ndx);&] +[s0; &] +[s17; ndx `= `[test, alfa, foo, delta, one, three`]&] +[s0; &] +[s3;H4;:Section`_2`_9: 2.9 Index and client types&] +[s5; In order to store elements to [*C@5 Index], they type must be +[*C@5 Moveable], have deep copy and defined the [*C@5 operator`=`=] +and a [*C@5 GetHashValue] function or method to compute the hash +code. It is recommended to use [*C@5 CombineHash] to combine hash +values of types that already provide [*C@5 GetHashValue]:&] +[s0; &] +[s7; struct Person : Moveable `{&] +[s7; -|String name;&] +[s7; -|String surname;&] +[s7; &] +[s7; -|unsigned GetHashValue() const `{ return CombineHash(name, +surname); `}&] +[s7; -|bool operator`=`=(const Person`& b) const `{ return name `=`= +b.name `&`& surname `=`= b.surname; `}&] +[s7; &] +[s7; -|Person(String name, String surname) : name(name), surname(surname) +`{`}&] +[s7; -|Person() `{`}&] +[s7; `};&] +[s7; &] +[s7; Index p;&] +[s7; p.Add(Person(`"John`", `"Smith`"));&] +[s7; p.Add(Person(`"Paul`", `"Carpenter`"));&] +[s7; p.Add(Person(`"Carl`", `"Engles`"));&] +[s7; &] +[s7; DUMP(p.Find(Person(`"Paul`", `"Carpenter`")));&] +[s0; &] +[s17; p.Find(Person(`"Paul`", `"Carpenter`")) `= 1&] +[s0; &] +[s3;H4;:Section`_2`_10: 2.10 [C@5 VectorMap], [C@5 ArrayMap]&] +[s5; [*C@5 VectorMap] is nothing else than a simple composition of +[*C@5 Index] of keys and [*C@5 Vector] of values. You can use [*C@5 Add] +methods to put elements into the [*C@5 VectorMap]:&] +[s0; &] +[s7; struct Person : Moveable `{&] +[s7; -|String name;&] +[s7; -|String surname;&] +[s7; -|&] +[s7; -|String ToString() const `{ return String() << name << `' `' +<< surname; `}&] +[s7; &] +[s7; -|Person(String name, String surname) : name(name), surname(surname) +`{`}&] +[s7; -|Person() `{`}&] +[s7; `};&] +[s7; &] +[s7; VectorMap m;&] +[s7; &] +[s7; m.Add(`"1`", Person(`"John`", `"Smith`"));&] +[s7; m.Add(`"2`", Person(`"Carl`", `"Engles`"));&] +[s7; &] +[s7; Person`& p `= m.Add(`"3`");&] +[s7; p.name `= `"Paul`";&] +[s7; p.surname `= `"Carpenter`";&] +[s7; &] +[s7; DUMP(m);&] +[s0; &] +[s17; m `= `{1: John Smith, 2: Carl Engles, 3: Paul Carpenter`}&] +[s0; &] +[s5; [*C@5 VectorMap] provides read`-only access to its [*C@5 Index] +of keys and read`-write access to its [*C@5 Vector] of values:&] +[s0; &] +[s7; DUMP(m.GetKeys());&] +[s7; DUMP(m.GetValues());&] +[s0; &] +[s17; m.GetKeys() `= `[1, 2, 3`]&] +[s17; m.GetValues() `= `[John Smith, Carl Engles, Paul Carpenter`]&] +[s0; &] +[s0; &] +[s7; m.GetValues()`[2`].name `= `"Peter`";&] +[s7; &] +[s7; DUMP(m);&] +[s0; &] +[s17; m `= `{1: John Smith, 2: Carl Engles, 3: Peter Carpenter`}&] +[s0; &] +[s5; You can use indices to iterate [*C@5 VectorMap] contents:&] +[s0; &] +[s7; for(int i `= 0; i < m.GetCount(); i`+`+)&] +[s7; -|LOG(m.GetKey(i) << `": `" << m`[i`]);&] +[s0; &] +[s17; 1: John Smith&] +[s17; 2: Carl Engles&] +[s17; 3: Peter Carpenter&] +[s0; &] +[s5; Standard [*C@5 begin] / [*C@5 end] pair for [*C@5 VectorMap] is the +range of just values (internal Vector) `- it corresponds with +[*C@5 operator`[`]] returning values:&] +[s0; &] +[s7; for(const auto`& p : m)&] +[s7; -|DUMP(p);&] +[s0; &] +[s17; p `= John Smith&] +[s17; p `= Carl Engles&] +[s17; p `= Peter Carpenter&] +[s0; &] +[s5; To iterate through keys, you can use [*C@5 begin]/``end`` of internal +[*C@5 Index]:&] +[s0; &] +[s7; for(const auto`& p : m.GetKeys())&] +[s7; -|DUMP(p);&] +[s0; &] +[s17; p `= 1&] +[s17; p `= 2&] +[s17; p `= 3&] +[s0; &] +[s5; Alternatively, it is possible to create `'projection range`' +of VectorMap that provides convenient key/value iteration, using +[*C@5 operator`~] (note that is also removes `'unlinked`' items, +see later):&] +[s0; &] +[s7; for(const auto`& e : `~m) `{&] +[s7; -|DUMP(e.key);&] +[s7; -|DUMP(e.value);&] +[s7; `}&] +[s0; &] +[s17; e.key `= 1&] +[s17; e.value `= John Smith&] +[s17; e.key `= 2&] +[s17; e.value `= Carl Engles&] +[s17; e.key `= 3&] +[s17; e.value `= Peter Carpenter&] +[s0; &] +[s5; Note that the `'projection range`' obtained by [*C@5 operator`~] +is temporary value, which means that if mutating operation is +required for values, r`-value reference has to be used instead +of plain reference:&] +[s0; &] +[s7; for(const auto`& e : `~m)&] +[s7; -|if(e.key `=`= `"2`")&] +[s7; -|-|e.value.surname `= `"May`";&] +[s7; &] +[s7; DUMP(m);&] +[s0; &] +[s17; m `= `{1: John Smith, 2: Carl May, 3: Peter Carpenter`}&] +[s0; &] +[s5; You can use Find method to retrieve position of element with +required key:&] +[s0; &] +[s7; DUMP(m.Find(`"2`"));&] +[s0; &] +[s17; m.Find(`"2`") `= 1&] +[s0; &] +[s5; or Get method to retrieve corresponding value:&] +[s0; &] +[s7; DUMP(m.Get(`"2`"));&] +[s0; &] +[s17; m.Get(`"2`") `= Carl May&] +[s0; &] +[s5; Passing key not present in [*C@5 VectorMap] as [*C@5 Get] parameter +is undefined behavior (ASSERT fails in debug mode), but there +exists two parameter version of [*C@5 Get] that returns second +parameter if the key is not found in VectorMap:&] +[s0; &] +[s7; DUMP(m.Get(`"33`", Person(`"unknown`", `"person`")));&] +[s0; &] +[s17; m.Get(`"33`", Person(`"unknown`", `"person`")) `= unknown person&] +[s0; &] +[s5; As with [*C@5 Index], you can use [*C@5 Unlink] to make elements +invisible for Find operations:&] +[s0; &] +[s7; m.Unlink(1);&] +[s7; DUMP(m.Find(`"2`"));&] +[s0; &] +[s17; m.Find(`"2`") `= `-1&] +[s0; &] +[s5; [*C@5 SetKey] changes the key of the element:&] +[s0; &] +[s7; m.SetKey(1, `"33`");&] +[s7; DUMP(m.Get(`"33`", Person(`"unknown`", `"person`")));&] +[s0; &] +[s17; m.Get(`"33`", Person(`"unknown`", `"person`")) `= Carl May&] +[s0; &] +[s5; If there are more elements with the same key in [*C@5 VectorMap], +you can iterate them using [*C@5 FindNext] method:&] +[s0; &] +[s7; m.Add(`"33`", Person(`"Peter`", `"Pan`"));&] +[s7; &] +[s7; int q `= m.Find(`"33`");&] +[s7; while(q >`= 0) `{&] +[s7; -|DUMP(m`[q`]);&] +[s7; -|q `= m.FindNext(q);&] +[s7; `}&] +[s0; &] +[s17; m`[q`] `= Carl May&] +[s17; m`[q`] `= Peter Pan&] +[s0; &] +[s5; Unlinked positions can be `'reused`' using Put method:&] +[s0; &] +[s7; m.UnlinkKey(`"33`");&] +[s7; m.Put(`"22`", Person(`"Ali`", `"Baba`"));&] +[s7; m.Put(`"44`", Person(`"Ivan`", `"Wilks`"));&] +[s7; &] +[s7; DUMP(m);&] +[s0; &] +[s17; m `= `{1: John Smith, 22: Ali Baba, 3: Peter Carpenter, 44: Ivan +Wilks`}&] +[s0; &] +[s5; [*C@5 PickValues] / [*C@5 PickIndex] / [*C@5 PickKeys] / pick internal +[*C@5 Vector] / [*C@5 Index] / [*C@5 Vector] of [*C@5 Index]:&] +[s0; &] +[s7; Vector ps `= m.PickValues();&] +[s7; Vector ks `= m.PickKeys();&] +[s7; &] +[s7; DUMP(ps);&] +[s7; DUMP(ks);&] +[s7; DUMP(m);&] +[s0; &] +[s17; ps `= `[John Smith, Ali Baba, Peter Carpenter, Ivan Wilks`]&] +[s17; ks `= `[1, 22, 3, 44`]&] +[s17; m `= `{`}&] +[s0; &] +[s5; [*C@5 VectorMap] pick constructor to create map by picking:&] +[s0; &] +[s7; ks`[0`] `= `"Changed key`";&] +[s7; &] +[s7; m `= VectorMap(pick(ks), pick(ps));&] +[s7; &] +[s7; DUMP(m);&] +[s0; &] +[s17; m `= `{Changed key: John Smith, 22: Ali Baba, 3: Peter Carpenter, +44: Ivan Wilks`}&] +[s0; &] +[s5; [*C@5 ArrayMap] is composition of Index and Array, for cases where +Array is better fit for value type (e.g. they are polymorphic):&] +[s0; &] +[s7; ArrayMap am;&] +[s7; am.Create(`"key`", `"new`", `"person`");&] +[s7; &] +[s7; DUMP(am);&] +[s0; &] +[s17; am `= `{key: new person`}&] +[s0; &] +[s3;H4;:Section`_2`_11: 2.11 [C@5 One]&] +[s5; [*C@5 One] is a container that can store none or one element of +T or derived from T. It is functionally quite similar to [*C@5 std`::unique`_ptr], +but has some convenient features.&] +[s0; &] +[s7; struct Base `{&] +[s7; -|virtual String Get() `= 0;&] +[s7; -|virtual `~Base() `{`}&] +[s7; `};&] +[s7; &] +[s7; struct Derived1 : Base `{&] +[s7; -|virtual String Get() `{ return `"Derived1`"; `}&] +[s7; `};&] +[s7; &] +[s7; struct Derived2 : Base `{&] +[s7; -|virtual String Get() `{ return `"Derived2`"; `}&] +[s7; `};&] +[s7; &] +[s7; One s;&] +[s0; &] +[s5; [*C@5 operator bool] of one returns true if it contains an element:&] +[s0; &] +[s7; DUMP((bool)s);&] +[s0; &] +[s17; (bool)s `= false&] +[s0; &] +[s0; &] +[s7; s.Create();&] +[s7; DUMP((bool)s);&] +[s7; DUMP(s`->Get());&] +[s0; &] +[s17; (bool)s `= true&] +[s17; s`->Get() `= Derived1&] +[s0; &] +[s5; You can use [*C@5 Is] to check if certain type is currently stored +in [*C@5 One]:&] +[s0; &] +[s7; DUMP(s.Is());&] +[s7; DUMP(s.Is());&] +[s7; DUMP(s.Is());&] +[s0; &] +[s17; s.Is() `= true&] +[s17; s.Is() `= true&] +[s17; s.Is() `= false&] +[s0; &] +[s5; To get a pointer to the contained instance, use [*C@5 operator`~]:&] +[s0; &] +[s7; Base `*b `= `~s;&] +[s7; DUMP(b`->Get());&] +[s0; &] +[s17; b`->Get() `= Derived1&] +[s0; &] +[s5; Clear method removes the element from One:&] +[s0; &] +[s7; s.Clear();&] +[s7; DUMP((bool)s);&] +[s0; &] +[s17; (bool)s `= false&] +[s0; &] +[s5; Helper class MakeOne derived from One can be used to create +contained element:&] +[s0; &] +[s7; s `= MakeOne();&] +[s7; DUMP(s`->Get());&] +[s0; &] +[s17; s`->Get() `= Derived1&] +[s0; &] +[s0; &] +[s7; MakeOne d2;&] +[s7; DUMP(d2`->Get());&] +[s0; &] +[s17; d2`->Get() `= Derived2&] +[s0; &] +[s0; &] +[s7; s `= pick(d2);&] +[s7; DUMP(s`->Get());&] +[s0; &] +[s17; s`->Get() `= Derived2&] +[s0; &] +[s3;H4;:Section`_2`_12: 2.12 [C@5 Any]&] +[s5; [*C@5 Any] is a container that can contain none or one element +of [/ any] type. [*C@5 Any`::Is] method matches exact type ignoring +class hierarchies (unlike [*C@5 One`::Is]). You can use [*C@5 Get] +to retrieve a reference to the instance stored:&] +[s0; &] +[s7; for(int pass `= 0; pass < 2; pass`+`+) `{&] +[s7; -|Any x;&] +[s7; -|if(pass)&] +[s7; -|-|x.Create() `= `"Hello!`";&] +[s7; -|else&] +[s7; -|-|x.Create() `= Blue();&] +[s7; -|&] +[s7; -|if(x.Is())&] +[s7; -|-|LOG(`"Any is now String: `" << x.Get());&] +[s7; -|&] +[s7; -|if(x.Is())&] +[s7; -|-|LOG(`"Any is now Color: `" << x.Get());&] +[s7; `}&] +[s0; &] +[s17; Any is now Color: Color(0, 0, 128)&] +[s17; Any is now String: Hello!&] +[s0; &] +[s3;H4;:Section`_2`_13: 2.13 [C@5 InVector], [C@5 InArray]&] +[s5; [*C@5 InVector] and [*C@5 InArray] are container types quite similar +to [*C@5 Vector]/``Array``, but they trade the speed of [*C@5 operator`[`]] +with the ability to insert or remove elements at any position +quickly. You can expect [*C@5 operator`[`]] to be about 10 times +slower than in Vector (but that is still quite fast), while [*C@5 Insert] +at any position scales well up to hundreds of megabytes of data +(e.g. [*C@5 InVector] containing 100M of String elements is handled +without problems).&] +[s0; &] +[s7; InVector v;&] +[s7; for(int i `= 0; i < 1000000; i`+`+)&] +[s7; -|v.Add(i);&] +[s7; v.Insert(0, `-1); // This is fast&] +[s0; &] +[s5; While the interface of [*C@5 InVector]/``InArray`` is almost identical +to [*C@5 Vector]/``Array``, [*C@5 InVector]/``InArray`` in addition +implements [*C@5 FindLowerBound]/``FindUpperBound`` methods `- +while normal generic range algorithms work, it is possible to +provide [*C@5 InVector]/``InArray`` specific optimizations that +basically match the performace of [*C@5 Find`*Bound] on simple +[*C@5 Vector].&] +[s0; &] +[s7; DUMP(v.FindLowerBound(55));&] +[s0; &] +[s17; v.FindLowerBound(55) `= 56&] +[s0; &] +[s3;H4;:Section`_2`_14: 2.14 [C@5 SortedIndex], [C@5 SortedVectorMap], +[C@5 SortedArrayMap]&] +[s5; [*C@5 SortedIndex] is similar to regular [*C@5 Index], but keeps +its elements in sorted order (sorting predicate is a template +parameter, defaults to [*C@5 StdLess]). Implementation is using +[*C@5 InVector], so it works fine even with very large number of +elements (performance is similar to tree based [*C@5 std`::set]). +Unlike [*C@5 Index], [*C@5 SortedIndex] provides lower/upper bounds +searches, so it allows range search.&] +[s0; &] +[s7; SortedIndex x;&] +[s7; x.Add(5);&] +[s7; x.Add(3);&] +[s7; x.Add(7);&] +[s7; x.Add(1);&] +[s7; &] +[s7; DUMPC(x);&] +[s7; DUMP(x.Find(3));&] +[s7; DUMP(x.Find(3));&] +[s7; DUMP(x.FindLowerBound(3));&] +[s7; DUMP(x.FindUpperBound(6));&] +[s0; &] +[s17; x:&] +[s17; -|`[0`] `= 1&] +[s17; -|`[1`] `= 3&] +[s17; -|`[2`] `= 5&] +[s17; -|`[3`] `= 7&] +[s17; x.Find(3) `= 1&] +[s17; x.Find(3) `= 1&] +[s17; x.FindLowerBound(3) `= 1&] +[s17; x.FindUpperBound(6) `= 3&] +[s0; &] +[s5; [*C@5 SortedVectorMap] and [*C@5 SortedArrayMap] are then [*C@5 SortedIndex] +based equivalents to [*C@5 VectorMap]/``ArrayMap``:&] +[s0; &] +[s7; SortedVectorMap m;&] +[s7; m.Add(`"zulu`", 11);&] +[s7; m.Add(`"frank`", 12);&] +[s7; m.Add(`"alfa`", 13);&] +[s7; &] +[s7; DUMPM(m);&] +[s7; DUMP(m.Get(`"zulu`"));&] +[s0; &] +[s17; m:&] +[s17; -|`[0`] `= (alfa) 13&] +[s17; -|`[1`] `= (frank) 12&] +[s17; -|`[2`] `= (zulu) 11&] +[s17; m.Get(`"zulu`") `= 11&] +[s0; &] +[s3;H4;:Section`_2`_15: 2.15 Tuples&] +[s5; Template class [*C@5 Tuple] allows combining 2`-4 values with +different types. These are principally similar to [*C@5 std`::tuple], +with some advantages. Unlike [*C@5 std`::tuple], individual elements +are directly accessible as member variables [*C@5 a]..``d``, [*C@5 Tuple] +supports persistent storage patterns ([*C@5 Serialize], [*C@5 Jsonize], +[*C@5 Xmlize]), hash code ([*C@5 GetHashValue]), conversion to [*C@5 String] +and Value conversions.&] +[s5; To create a [*C@5 Tuple] value, you can use the [*C@5 MakeTuple] +function.&] +[s0; &] +[s7; Tuple x `= MakeTuple(12, `"hello`", `"world`");&] +[s0; &] +[s5; Individual values are accessible as members [*C@5 a] .. [*C@5 d]:&] +[s0; &] +[s7; DUMP(x.a);&] +[s7; DUMP(x.b);&] +[s7; DUMP(x.c);&] +[s0; &] +[s17; x.a `= 12&] +[s17; x.b `= hello&] +[s17; x.c `= world&] +[s0; &] +[s5; Or using [*C@5 Get]:&] +[s0; &] +[s7; DUMP(x.Get<1>());&] +[s7; DUMP(x.Get());&] +[s0; &] +[s17; x.Get<1>() `= hello&] +[s17; x.Get() `= 12&] +[s0; &] +[s5; As long as all individual types have conversion to [*C@5 String] +([*C@5 AsString]), the tuple also has such conversion and thus +can e.g. be easily logged:&] +[s0; &] +[s7; DUMP(x);&] +[s0; &] +[s17; x `= (12, hello, world)&] +[s0; &] +[s5; As long as individual types have defined [*C@5 GetHashValue], +so does [*C@5 Tuple]:&] +[s0; &] +[s7; DUMP(GetHashValue(x));&] +[s0; &] +[s17; GetHashValue(x) `= 834842890&] +[s0; &] +[s5; As long as individual types have defined [*C@5 operator`=`=], +[*C@5 Tuple] has defined [*C@5 operator`=`=] and [*C@5 operator!`=]:&] +[s0; &] +[s7; Tuple y `= x;&] +[s7; DUMP(x `=`= y);&] +[s7; DUMP(x !`= y);&] +[s7; y.a`+`+;&] +[s7; DUMP(x `=`= y);&] +[s7; DUMP(x !`= y);&] +[s0; &] +[s17; x `=`= y `= true&] +[s17; x !`= y `= false&] +[s17; x `=`= y `= false&] +[s17; x !`= y `= true&] +[s0; &] +[s5; As long as all individual types have defined [*C@5 SgnCompare], +Tuple has SgnCompare, Compare method and operators <, <`=, >, +>`=:&] +[s0; &] +[s7; DUMP(x.Compare(y));&] +[s7; DUMP(SgnCompare(x, y));&] +[s7; DUMP(x < y);&] +[s0; &] +[s17; x.Compare(y) `= `-1&] +[s17; SgnCompare(x, y) `= `-1&] +[s17; x < y `= true&] +[s0; &] +[s5; GetCount returns the width of [*C@5 Tuple]:&] +[s0; &] +[s7; DUMP(x.GetCount());&] +[s0; &] +[s17; x.GetCount() `= 3&] +[s0; &] +[s5; Elements that are directly convertible with [*C@5 Value] can be +`'Get`'/`'Set`':&] +[s0; &] +[s7; for(int i `= 0; i < x.GetCount(); i`+`+)&] +[s7; -|DUMP(x.Get(i));&] +[s0; &] +[s17; x.Get(i) `= 12&] +[s17; x.Get(i) `= hello&] +[s17; x.Get(i) `= world&] +[s0; &] +[s0; &] +[s7; x.Set(1, `"Hi`");&] +[s7; DUMP(x);&] +[s0; &] +[s17; x `= (12, Hi, world)&] +[s0; &] +[s5; As long as all individual types are convertible with [*C@5 Value], +you can convert Tuple to [*C@5 ValueArray] and back:&] +[s0; &] +[s7; ValueArray va `= x.GetArray();&] +[s7; DUMP(va);&] +[s7; &] +[s7; va.Set(2, `"Joe`");&] +[s7; x.SetArray(va);&] +[s0; &] +[s17; va `= `[12, Hi, world`]&] +[s0; &] +[s5; It is OK to assign [*C@5 Tuple] to [*C@5 Tuple] with different individual +types, as long as types are directly convertible:&] +[s0; &] +[s7; Tuple d `= x;&] +[s7; DUMP(d);&] +[s0; &] +[s17; d `= (12, Hi, Joe)&] +[s0; &] +[s5; Tie can be used to assign tuple to l`-values:&] +[s0; &] +[s7; int i;&] +[s7; String s1, s2;&] +[s7; &] +[s7; Tie(i, s1, s2) `= x;&] +[s7; &] +[s7; DUMP(i);&] +[s7; DUMP(s1);&] +[s7; DUMP(s2);&] +[s0; &] +[s17; i `= 12&] +[s17; s1 `= Hi&] +[s17; s2 `= Joe&] +[s0; &] +[s5; U`+`+ Tuples are carefully designed as POD type, which allows +POD arrays to be intialized with classic C style:&] +[s0; &] +[s7; static Tuple2 map`[`] `= `{&] +[s7; -|`{ 1, `"one`" `},&] +[s7; -|`{ 2, `"one`" `},&] +[s7; -|`{ 3, `"one`" `},&] +[s7; `};&] +[s0; &] +[s5; Simple FindTuple template function is provided to search for +tuple based on the first value ([*C@5 a]) (linear O(n) search):&] +[s0; &] +[s7; DUMP(FindTuple(map, `_`_countof(map), 3)`->b);&] +[s0; &] +[s17; FindTuple(map, `_`_countof(map), 3)`->b `= one&] +[s0; &] +[s22;:Chapter`_3: 3. Ranges and algoritims&] +[s3;:Section`_3`_1: 3.1 Range&] +[s5; Unlike STL, which interface algorithms with data using [*C@5 begin] +/ [*C@5 end] pair, U`+`+ algorithms usually work on [/ Ranges]. Range +is an object that has [*C@5 begin] / [*C@5 end] methods providing +random access to elements (all U`+`+ containers are random access), +[*C@5 operator`[`]] and [*C@5 GetCount] method.&] +[s5; Obviously, U`+`+ containers are ranges:&] +[s0; &] +[s7; Vector x `= `{ 1, 2, 3, 4, 5, 1, 2, 3, 4 `};&] +[s7; &] +[s7; DUMP(FindIndex(x, 2)); // FindIndex is a trivial algorithm that +does linear search&] +[s0; &] +[s17; FindIndex(x, 2) `= 1&] +[s0; &] +[s5; If you want the algorithm to run on part of container only, +you can use [*C@5 SubRange] instance:&] +[s0; &] +[s7; DUMP(SubRange(x, 3, 6));&] +[s7; DUMP(FindIndex(SubRange(x, 3, 6), 4));&] +[s0; &] +[s17; SubRange(x, 3, 6) `= `[4, 5, 1, 2, 3, 4`]&] +[s17; FindIndex(SubRange(x, 3, 6), 4) `= 0&] +[s0; &] +[s5; As a side`-job, SubRange can also be created from `'begin`' +/ `'end`' pair, thus e.g. allowing algorithms to work on C arrays:&] +[s0; &] +[s7; int a`[`] `= `{ 1, 22, 4, 2, 8 `};&] +[s7; &] +[s7; auto ar `= SubRange(std`::begin(a), std`::end(a));&] +[s7; &] +[s7; DUMP(ar);&] +[s0; &] +[s17; ar `= `[1, 22, 4, 2, 8`]&] +[s0; &] +[s0; &] +[s7; Sort(ar);&] +[s7; DUMP(ar);&] +[s0; &] +[s17; ar `= `[1, 2, 4, 8, 22`]&] +[s0; &] +[s5; There are some macro aliases that make type management of ranges +easier:&] +[s0; &] +[s7; DUMP(typeid(ValueTypeOf).name());&] +[s7; DUMP(typeid(ValueTypeOf).name());&] +[s7; DUMP(typeid(IteratorOf).name());&] +[s7; DUMP(typeid(ConstIteratorOf).name());&] +[s7; DUMP(typeid(SubRangeOf>).name());&] +[s0; &] +[s17; typeid(ValueTypeOf).name() `= i&] +[s17; typeid(ValueTypeOf).name() `= i&] +[s17; typeid(IteratorOf).name() `= Pi&] +[s17; typeid(ConstIteratorOf).name() +`= Pi&] +[s17; typeid(SubRangeOf>).name() `= N3Upp13SubRangeClassIPiEE&] +[s0; &] +[s5; While containers themselves and SubRange are the two most common +range types, U`+`+ has two special ranges. [*C@5 ConstRange] simply +provides the range of single value:&] +[s0; &] +[s7; DUMP(ConstRange(1, 10));&] +[s0; &] +[s17; ConstRange(1, 10) `= `[1, 1, 1, 1, 1, 1, 1, 1, 1, 1`]&] +[s0; &] +[s5; [*C@5 ReverseRange] reverses the order of elements in the source +range:&] +[s0; &] +[s7; Vector v`{ 1, 2, 3, 4 `};&] +[s7; &] +[s7; DUMP(ReverseRange(v));&] +[s0; &] +[s17; ReverseRange(v) `= `[4, 3, 2, 1`]&] +[s0; &] +[s5; [*C@5 ViewRange] picks a source range and [*C@5 Vector] of integer +indices a provides a view of source range through this [*C@5 Vector]:&] +[s0; &] +[s7; Vector h`{ 2, 4, 0 `};&] +[s7; &] +[s7; DUMP(ViewRange(x, clone(h)));&] +[s0; &] +[s17; ViewRange(x, clone(h)) `= `[3, 5, 1`]&] +[s0; &] +[s0; &] +[s7; Sort(ViewRange(x, clone(h)));&] +[s7; DUMP(ViewRange(x, clone(h)));&] +[s7; DUMP(x);&] +[s0; &] +[s17; ViewRange(x, clone(h)) `= `[1, 3, 5`]&] +[s17; x `= `[5, 2, 1, 4, 3, 1, 2, 3, 4`]&] +[s0; &] +[s5; [*C@5 SortedRange] returns range sorted by predicate (default +is std`::less):&] +[s0; &] +[s7; DUMP(SortedRange(x));&] +[s0; &] +[s17; SortedRange(x) `= `[1, 1, 2, 2, 3, 3, 4, 4, 5`]&] +[s0; &] +[s5; Finally [*C@5 FilterRange] creates a subrange of elements satisfying +certain condition:&] +[s0; &] +[s7; DUMP(FilterRange(x, `[`](int x) `{ return x > 3; `}));&] +[s0; &] +[s17; FilterRange(x, `[`](int x) `{ return x > 3; `}) `= `[5, 4, 4`]&] +[s0; &] +[s5; Various Range functions can be combined to produce complex results:&] +[s0; &] +[s7; DUMP(ReverseRange(FilterRange(x, `[`](int x) `{ return x < 4; +`})));&] +[s0; &] +[s17; ReverseRange(FilterRange(x, `[`](int x) `{ return x < 4; `})) +`= `[3, 2, 1, 3, 1, 2`]&] +[s0; &] +[s3;H4;:Section`_3`_2: 3.2 Algorithms&] +[s5; In principle, is is possible to apply C`+`+ standard library +algorithms on U`+`+ containers or ranges.&] +[s5; U`+`+ algorithms are tuned for U`+`+ approach `- they work on +ranges and they prefer indices. Sometimes, U`+`+ algorithm will +perform faster with U`+`+ types than standard library algorithm.&] +[s5; [*C@5 FindIndex] performs linear search to find element with given +value and returns its index or `-1 if not found:&] +[s0; &] +[s7; Vector data `{ 5, 3, 7, 9, 3, 4, 2 `};&] +[s7; &] +[s7; &] +[s7; DUMP(FindIndex(data, 3));&] +[s7; DUMP(FindIndex(data, 6));&] +[s0; &] +[s17; FindIndex(data, 3) `= 1&] +[s17; FindIndex(data, 6) `= `-1&] +[s0; &] +[s5; [*C@5 SubRange] can be used to apply algorithm on subrange of +container:&] +[s0; &] +[s7; DUMP(FindIndex(SubRange(data, 2, data.GetCount() `- 2), 3));&] +[s0; &] +[s17; FindIndex(SubRange(data, 2, data.GetCount() `- 2), 3) `= 2&] +[s0; &] +[s5; [*C@5 FindMin] and [*C@5 FindMax] return the index of minimal / +maximal element:&] +[s0; &] +[s7; DUMP(FindMin(data));&] +[s7; DUMP(FindMax(data));&] +[s0; &] +[s17; FindMin(data) `= 6&] +[s17; FindMax(data) `= 3&] +[s0; &] +[s5; [*C@5 Min] and [*C@5 Max] return the [/ value] of minimal / maximal +element:&] +[s0; &] +[s7; DUMP(Min(data));&] +[s7; DUMP(Max(data));&] +[s0; &] +[s17; Min(data) `= 2&] +[s17; Max(data) `= 9&] +[s0; &] +[s5; If the range is empty, [*C@5 Min] and [*C@5 Max] are undefined (ASSERT +fails in debug mode), unless the value is specified as second +parameter to be used in this case:&] +[s0; &] +[s7; -|Vector empty;&] +[s7; //-|DUMP(Min(empty)); // This is undefined (fails in ASSERT)&] +[s7; -|DUMP(Min(empty, `-99999));&] +[s0; &] +[s17; Min(empty, `-99999) `= `-99999&] +[s0; &] +[s5; [*C@5 Count] returns the number of elements with specified value, +[*C@5 CountIf] the number of elements that satisfy predicate:&] +[s0; &] +[s7; DUMP(Count(data, 11));&] +[s7; DUMP(CountIf(data, `[`=`](int c) `{ return c >`= 5; `}));&] +[s0; &] +[s17; Count(data, 11) `= 0&] +[s17; CountIf(data, `[`=`](int c) `{ return c >`= 5; `}) `= 3&] +[s0; &] +[s5; [*C@5 Sum] return the sum of all elements in range:&] +[s0; &] +[s7; DUMP(Sum(data));&] +[s0; &] +[s17; Sum(data) `= 33&] +[s0; &] +[s5; Sorted containers can be searched with bisection. U`+`+ provides +usual upper / lower bound algorithms. [*C@5 FindBinary] returns +the index of element with given value or `-1 if not found:&] +[s0; &] +[s7; data `= `{ 5, 7, 9, 9, 14, 20, 23, 50 `};&] +[s7; // 0 1 2 3 4 5 6 7&] +[s7; DUMP(FindLowerBound(data, 9));&] +[s7; DUMP(FindUpperBound(data, 9));&] +[s7; DUMP(FindBinary(data, 9));&] +[s7; DUMP(FindLowerBound(data, 10));&] +[s7; DUMP(FindUpperBound(data, 10));&] +[s7; DUMP(FindBinary(data, 10));&] +[s0; &] +[s17; FindLowerBound(data, 9) `= 2&] +[s17; FindUpperBound(data, 9) `= 4&] +[s17; FindBinary(data, 9) `= 2&] +[s17; FindLowerBound(data, 10) `= 4&] +[s17; FindUpperBound(data, 10) `= 4&] +[s17; FindBinary(data, 10) `= `-1&] +[s0; &] +[s3;H4;:Section`_3`_3: 3.3 Sorting&] +[s5; Unsurprisingly, [*C@5 Sort] function sorts a range. You can specify +sorting predicate, default is [*C@5 operator<]:&] +[s0; &] +[s7; Vector x `{ `"1`", `"2`", `"10`" `};&] +[s7; &] +[s7; Sort(x);&] +[s7; &] +[s7; DUMP(x);&] +[s0; &] +[s17; x `= `[1, 10, 2`]&] +[s0; &] +[s0; &] +[s7; Sort(x, `[`](const String`& a, const String`& b) `{ return atoi(a) +< atoi(b); `});&] +[s7; &] +[s7; DUMP(x);&] +[s0; &] +[s17; x `= `[1, 2, 10`]&] +[s0; &] +[s5; [*C@5 IndexSort] is sort variant that is able to sort two ranges +(like [*C@5 Vector] or [*C@5 Array]) of the same size, based on values +in the first range:&] +[s0; &] +[s7; Vector a `{ 5, 10, 2, 9, 7, 3 `};&] +[s7; Vector b `{ `"five`", `"ten`", `"two`", `"nine`", `"seven`", +`"three`" `};&] +[s7; &] +[s7; IndexSort(a, b);&] +[s7; &] +[s7; DUMP(a);&] +[s7; DUMP(b);&] +[s0; &] +[s17; a `= `[2, 3, 5, 7, 9, 10`]&] +[s17; b `= `[two, three, five, seven, nine, ten`]&] +[s0; &] +[s0; &] +[s7; IndexSort(b, a);&] +[s7; &] +[s7; DUMP(a);&] +[s7; DUMP(b);&] +[s0; &] +[s17; a `= `[5, 9, 7, 10, 3, 2`]&] +[s17; b `= `[five, nine, seven, ten, three, two`]&] +[s0; &] +[s5; There are also [*C@5 IndexSort2] and [*C@5 IndexSort3] variants +that sort 2 or 3 dependent ranges.&] +[s5; Sometimes, instead of sorting items in the range, it is useful +to know the order of items as sorted, using [*C@5 GetSortOrder]:&] +[s0; &] +[s7; Vector o `= GetSortOrder(a);&] +[s7; &] +[s7; DUMP(o);&] +[s0; &] +[s17; o `= `[5, 4, 0, 2, 1, 3`]&] +[s0; &] +[s5; Normal [*C@5 Sort] is not stable `- equal items can appear in +sorted range in random order. If maintaining original order of +equal items is important, use [*C@5 StableSort] variant (with performance +penalty):&] +[s0; &] +[s7; Vector t `{ Point(10, 10), Point(7, 1), Point(7, 2), +Point(7, 3), Point(1, 0) `};&] +[s7; StableSort(t, `[`](const Point`& a, const Point`& b) `{ return +a.x < b.x; `});&] +[s7; &] +[s7; DUMP(t);&] +[s0; &] +[s17; t `= `[`[1, 0`], `[7, 1`], `[7, 2`], `[7, 3`], `[10, 10`]`]&] +[s0; &] +[s5; All sorting algorithms have they `'Stable`' variant, so there +is [*C@5 StableIndexSort], [*C@5 GetStableSortOrder] etc...&] +[s22;:Chapter`_4: 4. Value&] +[s3;:Section`_4`_1: 4.1 Value&] +[s5; Value is sort of equivalent of polymorphic data types from scripting +languages like Python or JavaSript. [*C@5 Value] can represent +values of concrete types, some types also have extended interoperability +with [*C@5 Value] and it is then possible to e.g. compare [*C@5 Value]s +containing such types against each other or serialize them for +persistent storage.&] +[s5; Usually, Value compatible types define typecast operator to +[*C@5 Value] and constructor from [*C@5 Value], so that interaction +is for the most part seamless:&] +[s0; &] +[s7; Value a `= 1;&] +[s7; Value b `= 2.34;&] +[s7; Value c `= GetSysDate();&] +[s7; Value d `= `"hello`";&] +[s7; &] +[s7; DUMP(a);&] +[s7; DUMP(b);&] +[s7; DUMP(c);&] +[s7; DUMP(d);&] +[s7; &] +[s7; int x `= a;&] +[s7; double y `= b;&] +[s7; Date z `= c;&] +[s7; String s `= d;&] +[s7; &] +[s7; DUMP(x);&] +[s7; DUMP(y);&] +[s7; DUMP(z);&] +[s7; DUMP(s);&] +[s0; &] +[s17; a `= 1&] +[s17; b `= 2.34&] +[s17; c `= 07/19/2017&] +[s17; d `= hello&] +[s17; x `= 1&] +[s17; y `= 2.34&] +[s17; z `= 07/19/2017&] +[s17; s `= hello&] +[s0; &] +[s5; As for primitive types, Value seamlessly works with [*C@5 int], +[*C@5 int64], [*C@5 bool] and [*C@5 double]. Casting [*C@5 Value] to +a type that it does not contain throws an exception:&] +[s0; &] +[s7; try `{&] +[s7; -|s `= a;&] +[s7; -|DUMP(s); // we never get here....&] +[s7; `}&] +[s7; catch(ValueTypeError) `{&] +[s7; -|LOG(`"Failed Value conversion`");&] +[s7; `}&] +[s0; &] +[s17; Failed Value conversion&] +[s0; &] +[s5; However, conversion between related types is possible (as long +as it is supported by these types):&] +[s0; &] +[s7; double i `= a;&] +[s7; int j `= b;&] +[s7; Time k `= c;&] +[s7; WString t `= d;&] +[s7; &] +[s7; DUMP(i);&] +[s7; DUMP(j);&] +[s7; DUMP(k);&] +[s7; DUMP(t);&] +[s0; &] +[s17; i `= 1&] +[s17; j `= 2&] +[s17; k `= 07/19/2017 00:00:00&] +[s17; t `= hello&] +[s0; &] +[s5; To determine type of value stored in [*C@5 Value], you can use +[*C@5 Is] method:&] +[s0; &] +[s7; DUMP(a.Is());&] +[s7; DUMP(a.Is());&] +[s7; DUMP(b.Is());&] +[s7; DUMP(c.Is());&] +[s7; DUMP(c.Is());&] +[s7; DUMP(d.Is());&] +[s0; &] +[s17; a.Is() `= true&] +[s17; a.Is() `= false&] +[s17; b.Is() `= true&] +[s17; c.Is() `= false&] +[s17; c.Is() `= true&] +[s17; d.Is() `= true&] +[s0; &] +[s5; Note that Is tests for absolute type match, not for compatible +types. For that reason, for widely used compatible types helper +functions are defined:&] +[s0; &] +[s7; DUMP(IsNumber(a));&] +[s7; DUMP(IsNumber(b));&] +[s7; DUMP(IsDateTime(c));&] +[s7; DUMP(IsString(d));&] +[s0; &] +[s17; IsNumber(a) `= true&] +[s17; IsNumber(b) `= true&] +[s17; IsDateTime(c) `= true&] +[s17; IsString(d) `= true&] +[s0; &] +[s3;H4;:Section`_4`_2: 4.2 [C@5 Null]&] +[s5; U`+`+ defines a special [*C@5 Null] constant to represent an empty +value. This constant is convertible to many value types including +primitive types [*C@5 double], [*C@5 int] and [*C@5 int64] (defined +as lowest number the type can represent). If type supports ordering +(<, >), all values of the type are greater than Null value. To +test whether a value is empty, use [*C@5 IsNull] function.&] +[s0; &] +[s7; int x `= Null;&] +[s7; int y `= 120;&] +[s7; Date d `= Null;&] +[s7; Date e `= GetSysDate();&] +[s7; &] +[s7; DUMP(x);&] +[s7; DUMP(y);&] +[s7; DUMP(d);&] +[s7; DUMP(e > d);&] +[s0; &] +[s17; x `= &] +[s17; y `= 120&] +[s17; d `= &] +[s17; e > d `= true&] +[s0; &] +[s5; [*C@5 Null] is the only instance of [*C@5 Nuller] type. Assigning +[*C@5 Null] to primitive types is achieved by cast operators of +[*C@5 Nuller], other types can do it using constructor from [*C@5 Nuller].&] +[s5; As a special case, if [*C@5 Value] contains [*C@5 Null], it is convertible +to any value type that can contain [*C@5 Null]:&] +[s0; &] +[s7; Value v `= x; // x is int&] +[s7; e `= v; // e is Date, but v is Null, so Null is assigned to +e&] +[s7; &] +[s7; DUMP(IsNull(e));&] +[s0; &] +[s17; IsNull(e) `= true&] +[s0; &] +[s5; Function [*C@5 Nvl] is U`+`+ analog of well known SQL function +coalesce (ifnull, Nvl), which returns the first non`-null argument +(or [*C@5 Null] if all are [*C@5 Null]).&] +[s0; &] +[s7; int a `= Null;&] +[s7; int b `= 123;&] +[s7; int c `= 1;&] +[s7; &] +[s7; DUMP(Nvl(a, b, c));&] +[s0; &] +[s17; Nvl(a, b, c) `= 123&] +[s0; &] +[s3;H4;:Section`_4`_3: 4.3 Client types and [C@5 Value], [C@5 RawValue], +[C@5 RichValue]&] +[s5; There are two Value compatibility levels. The simple one, [*C@5 RawValue], +has little requirements for the type used `- only copy constructor +and assignment operator are required (and there are even forms +of [*C@5 RawValue] that work for types missing these):&] +[s0; &] +[s7; struct RawFoo `{&] +[s7; -|String x;&] +[s7; -|// default copy constructor and assignment operator are provided +by compiler&] +[s7; `};&] +[s0; &] +[s5; To convert such type to [*C@5 Value], use [*C@5 RawToValue]:&] +[s0; &] +[s7; RawFoo h;&] +[s7; h.x `= `"hello`";&] +[s7; Value q `= RawToValue(h);&] +[s7; &] +[s7; DUMP(q.Is());&] +[s0; &] +[s17; q.Is() `= true&] +[s0; &] +[s5; To convert it back, us `'To`' templated member function of [*C@5 Value], +it returns a constant reference to the value:&] +[s0; &] +[s7; DUMP(q.To().x);&] +[s0; &] +[s17; q.To().x `= hello&] +[s0; &] +[s5; [*C@5 RichValue] level [*C@5 Value]s provide more operations for +[*C@5 Value] `- equality test, [*C@5 IsNull] test, hashing, conversion +to text, serialization (possibly to XML and Json), comparison. +In order to make serialization work, type must also have assigned +an integer id (client types should use ids in range 10000..20000). +Type can provide the support for these operations via template +function specializations or (perhaps more convenient) using defined +methods and inheriting from [*C@5 ValueType] base class template:&] +[s0; &] +[s7; struct Foo : ValueType `{&] +[s7; -|int x;&] +[s7; -|&] +[s7; -|Foo(const Nuller`&) `{ x `= Null; `}&] +[s7; -|Foo(int x) : x(x) `{`}&] +[s7; -|Foo() `{`}&] +[s7; &] +[s7; -|// We provide these methods to allow automatic conversion of +Foo to/from Value&] +[s7; -|operator Value() const `{ return RichToValue(`*this); +`}&] +[s7; -|Foo(const Value`& v) `{ `*this `= v.Get(); +`}&] +[s7; &] +[s7; -|String ToString() const `{ return AsString(x); +`}&] +[s7; -|unsigned GetHashValue() const `{ return x; `}&] +[s7; -|void Serialize(Stream`& s) `{ s % x; `}&] +[s7; -|bool operator`=`=(const Foo`& b) const `{ return x `=`= b.x; +`}&] +[s7; -|bool IsNullInstance() const `{ return IsNull(x); `}&] +[s7; -|int Compare(const Foo`& b) const `{ return SgnCompare(x, +b.x); `}&] +[s7; -|// This type does not define XML nor Json serialization&] +[s7; `};&] +[s7; &] +[s7; INITBLOCK `{ // This has to be at file level scope&] +[s7; -|Value`::Register(); // need to register value type integer +id to allow serialization&] +[s7; `}&] +[s7; &] +[s7; Value a `= Foo(54321); // uses Foo`::operator Value&] +[s7; Value b `= Foo(54321);&] +[s7; Value c `= Foo(600);&] +[s7; &] +[s7; DUMP(a); // uses Foo`::ToString&] +[s7; DUMP(a `=`= b); // uses Foo`::operator`=`=&] +[s7; DUMP(a `=`= c);&] +[s7; DUMP(c < a); // uses Foo`::Compare&] +[s7; &] +[s7; DUMP(IsNull(a)); // uses Foo`::IsNullInstance&] +[s7; &] +[s7; Foo foo `= c; // Uses Foo`::Foo(const Value`&)&] +[s7; DUMP(foo);&] +[s0; &] +[s17; a `= 54321&] +[s17; a `=`= b `= true&] +[s17; a `=`= c `= false&] +[s17; c < a `= true&] +[s17; IsNull(a) `= false&] +[s17; foo `= 600&] +[s0; &] +[s0; &] +[s7; String s `= StoreAsString(a); // Uses Foo`::Serialize&] +[s7; &] +[s7; Value loaded;&] +[s7; // Using registered (Value`::Registered) integer id creates the +correct type, then uses&] +[s7; // Foo`::Serialize to load the data from the stream&] +[s7; LoadFromString(loaded, s);&] +[s7; &] +[s7; DUMP(loaded);&] +[s0; &] +[s17; loaded `= 54321&] +[s0; &] +[s3;H4;:Section`_4`_4: 4.4 [C@5 ValueArray] and [C@5 ValueMap]&] +[s5; [*C@5 ValueArray] is a type that represents an array of [*C@5 Value]s:&] +[s0; &] +[s7; ValueArray va`{1, 2, 3`};&] +[s7; &] +[s7; DUMP(va);&] +[s0; &] +[s17; va `= `[1, 2, 3`]&] +[s0; &] +[s5; ValueArray can be assigned to Value (and back):&] +[s0; &] +[s7; Value v `= va;&] +[s7; &] +[s7; DUMP(v);&] +[s7; DUMP(v.Is()); // must be exactly ValueArray&] +[s7; DUMP(IsValueArray(v)); // is ValueArray or ValueMap (which is +convertible to ValueArray)&] +[s7; &] +[s7; ValueArray va2 `= v;&] +[s7; &] +[s7; DUMP(va2);&] +[s0; &] +[s17; v `= `[1, 2, 3`]&] +[s17; v.Is() `= true&] +[s17; IsValueArray(v) `= true&] +[s17; va2 `= `[1, 2, 3`]&] +[s0; &] +[s5; Elements can be appended using [*C@5 Add] method or [*C@5 operator<<], +element at index can be changed with [*C@5 Set]:&] +[s0; &] +[s7; va.Add(10);&] +[s7; va << 20 << 21;&] +[s7; va.Set(0, 999);&] +[s7; &] +[s7; DUMP(va);&] +[s0; &] +[s17; va `= `[999, 2, 3, 10, 20, 21`]&] +[s0; &] +[s5; Elements can be removed:&] +[s0; &] +[s7; va.Remove(0, 2);&] +[s7; &] +[s7; DUMP(va);&] +[s0; &] +[s17; va `= `[3, 10, 20, 21`]&] +[s0; &] +[s5; and inserted:&] +[s0; &] +[s7; va.Insert(1, v);&] +[s7; &] +[s7; DUMP(va);&] +[s0; &] +[s17; va `= `[3, 1, 2, 3, 10, 20, 21`]&] +[s0; &] +[s5; It is possible to get a reference to element at index, however +note that some [^topic`:`/`/Core`/srcdoc`/ValueReference`$en`-us^ special +rules] apply here:&] +[s0; &] +[s7; va.At(0) `= 222;&] +[s7; &] +[s7; DUMP(va);&] +[s0; &] +[s17; va `= `[222, 1, 2, 3, 10, 20, 21`]&] +[s0; &] +[s5; If [*C@5 Value] contains [*C@5 ValueArray], [*C@5 Value`::GetCount] +method returns the number of elements in the array (if there +is no [*C@5 ValueArray] in [*C@5 Value], it returns zero). You can +use [*C@5 Value`::operator`[`](int)] to get constant reference to +[*C@5 ValueArray] elements:&] +[s0; &] +[s7; for(int i `= 0; i < v.GetCount(); i`+`+)&] +[s7; -|LOG(v`[i`]);&] +[s0; &] +[s17; 1&] +[s17; 2&] +[s17; 3&] +[s0; &] +[s5; It is even possible to directly add element to [*C@5 Value] if +it contains [*C@5 ValueArray]:&] +[s0; &] +[s7; v.Add(4);&] +[s7; &] +[s7; DUMP(v);&] +[s0; &] +[s17; v `= `[1, 2, 3, 4`]&] +[s0; &] +[s5; Or even get a reference to element at some index (with [^topic`:`/`/Core`/srcdoc`/ValueReference`$en`-us^ s +pecial rules]):&] +[s0; &] +[s7; v.At(0) `= 111;&] +[s7; &] +[s7; DUMP(v);&] +[s0; &] +[s17; v `= `[111, 2, 3, 4`]&] +[s0; &] +[s5; [*C@5 ValueMap] can store key `- value pairs and retrieve value +for key quickly. Note that keys are not limited to [*C@5 String], +but can be any [*C@5 Value] with [*C@5 operator`=`=] and hash code +defined.&] +[s5; [*C@5 Add] method or [*C@5 operator()] add data to [*C@5 ValueMap]:&] +[s0; &] +[s7; ValueMap m;&] +[s7; &] +[s7; m.Add(`"one`", 1);&] +[s7; m(`"two`", 2)(`"three`", 3);&] +[s7; &] +[s7; DUMP(m);&] +[s0; &] +[s17; m `= `{ one: 1, two: 2, three: 3 `}&] +[s0; &] +[s5; [*C@5 operator`[`]] retrieves the value at the key:&] +[s0; &] +[s7; DUMP(m`[`"two`"`]);&] +[s0; &] +[s17; m`[`"two`"`] `= 2&] +[s0; &] +[s5; When key is not present in the map, [*C@5 operator`[`]] returns +void Value (which is also Null):&] +[s0; &] +[s7; DUMP(m`[`"key`"`]);&] +[s7; DUMP(m`[`"key`"`].IsVoid());&] +[s7; DUMP(IsNull(m`[`"key`"`]));&] +[s0; &] +[s17; m`[`"key`"`] `= &] +[s17; m`[`"key`"`].IsVoid() `= true&] +[s17; IsNull(m`[`"key`"`]) `= true&] +[s0; &] +[s5; Just like [*C@5 VectorMap], [*C@5 ValueMap] is ordered, so the order +of adding pairs to it matters:&] +[s0; &] +[s7; ValueMap m2;&] +[s7; &] +[s7; m2.Add(`"two`", 2);&] +[s7; m2(`"one`", 1)(`"three`", 3);&] +[s7; &] +[s7; DUMP(m2);&] +[s7; DUMP(m `=`= m2); // different order of adding means they are +not equal&] +[s0; &] +[s17; m2 `= `{ two: 2, one: 1, three: 3 `}&] +[s17; m `=`= m2 `= false&] +[s0; &] +[s5; `'Unordered`' equality test can be done using [*C@5 IsSame]:&] +[s0; &] +[s7; DUMP(m.IsSame(m2));&] +[s0; &] +[s17; m.IsSame(m2) `= true&] +[s0; &] +[s5; Iterating ValueMap can be achieved with [*C@5 GetCount], [*C@5 GetKey] +and [*C@5 GetValue]:&] +[s0; &] +[s7; for(int i `= 0; i < m.GetCount(); i`+`+)&] +[s7; -|LOG(m.GetKey(i) << `" `= `" << m.GetValue(i));&] +[s0; &] +[s17; one `= 1&] +[s17; two `= 2&] +[s17; three `= 3&] +[s0; &] +[s5; It is possible to get [*C@5 ValueArray] of values:&] +[s0; &] +[s7; LOG(m.GetValues());&] +[s0; &] +[s17; `[1, 2, 3`]&] +[s0; &] +[s5; [*C@5 GetKeys] gets constant reference to [*C@5 Index] of +keys:&] +[s0; &] +[s7; LOG(m.GetKeys());&] +[s0; &] +[s17; `[one, two, three`]&] +[s0; &] +[s5; It is possible to change the value with [*C@5 Set]:&] +[s0; &] +[s7; m.Set(`"two`", 4);&] +[s7; &] +[s7; DUMP(m);&] +[s0; &] +[s17; m `= `{ one: 1, two: 4, three: 3 `}&] +[s0; &] +[s5; Or to change the value of key with [*C@5 SetKey]:&] +[s0; &] +[s7; m.SetKey(1, `"four`");&] +[s7; &] +[s7; DUMP(m);&] +[s0; &] +[s17; m `= `{ one: 1, four: 4, three: 3 `}&] +[s0; &] +[s5; It is possible get a reference of value at given key, (with +[^topic`:`/`/Core`/srcdoc`/ValueReference`$en`-us^ special rules]) +with [*C@5 GetAdd] or [*C@5 operator()]:&] +[s0; &] +[s7; Value`& h `= m(`"five`");&] +[s7; &] +[s7; h `= 5;&] +[s7; &] +[s7; DUMP(m);&] +[s0; &] +[s17; m `= `{ one: 1, four: 4, three: 3, five: 5 `}&] +[s0; &] +[s5; When ValueMap is stored into Value, [*C@5 operator`[`](String)] +provides access to value at key. Note that this narrows keys +to text values:&] +[s0; &] +[s7; v `= m;&] +[s7; DUMP(v);&] +[s7; DUMP(v`[`"five`"`]);&] +[s0; &] +[s17; v `= `{ one: 1, four: 4, three: 3, five: 5 `}&] +[s17; v`[`"five`"`] `= 5&] +[s0; &] +[s5; [*C@5 Value`::GetAdd] and [*C@5 Value`::operator()] provide a reference +to value at key, with [^topic`:`/`/Core`/srcdoc`/ValueReference`$en`-us^ special +rules]:&] +[s0; &] +[s7; v.GetAdd(`"newkey`") `= `"foo`";&] +[s7; v(`"five`") `= `"FIVE`";&] +[s7; &] +[s7; DUMP(v);&] +[s0; &] +[s17; v `= `{ one: 1, four: 4, three: 3, five: FIVE, newkey: foo `}&] +[s0; &] +[s5; [*C@5 ValueMap] and [*C@5 ValueArray] are convertible with each +other. When assigning [*C@5 ValueMap] to [*C@5 ValueArray], values +are simply used:&] +[s0; &] +[s7; ValueArray v2 `= m;&] +[s7; &] +[s7; DUMP(v2);&] +[s0; &] +[s17; v2 `= `[1, 4, 3, 5`]&] +[s0; &] +[s5; When assigning [*C@5 ValueArray] to [*C@5 ValueMap], keys are set +as indices of elements:&] +[s0; &] +[s7; ValueMap m3 `= v2;&] +[s7; &] +[s7; DUMP(m3);&] +[s0; &] +[s17; m3 `= `{ 0: 1, 1: 4, 2: 3, 3: 5 `}&] +[s0; &] +[s5; With basic [*C@5 Value] types [*C@5 int], [*C@5 String], [*C@5 ValueArray] +and [*C@5 ValueMap], [*C@5 Value] can represent JSON:&] +[s0; &] +[s7; Value j `= ParseJSON(`"`{ `\`"array`\`" : `[ 1, 2, 3 `] `}`");&] +[s7; &] +[s7; DUMP(j);&] +[s0; &] +[s17; j `= `{ array: `[1, 2, 3`] `}&] +[s0; &] +[s0; &] +[s7; j(`"value`") `= m;&] +[s7; &] +[s7; DUMP(AsJSON(j));&] +[s0; &] +[s17; AsJSON(j) `= `{`"array`":`[1,2,3`],`"value`":`{`"one`":1,`"four`":4,`"three`":3,`"fiv +e`":5`}`}&] +[s0; &] +[s0; &] +[s7; j(`"array`").At(1) `= ValueMap()(`"key`", 1);&] +[s7; &] +[s7; DUMP(AsJSON(j));&] +[s0; &] +[s17; AsJSON(j) `= `{`"array`":`[1,`{`"key`":1`},3`],`"value`":`{`"one`":1,`"four`":4,`"thr +ee`":3,`"five`":5`}`}&] +[s0; &] +[s22;:Chapter`_5: 5. Function and lambdas&] +[s3;:Section`_5`_1: 5.1 Function&] +[s5; U`+`+ [*C@5 Function] is quite similar to [*C@5 std`::function] `- +it is a function wrapper that can store/copy/invoke any callable +target. There are two important differences. First, invoking +empty [*C@5 Function] is NOP, if [*C@5 Function] has return type +[*C@5 T], it returns [*C@5 T()]. Second, [*C@5 Function] allows effective +chaining of callable targets using [*C@5 operator<<], if [*C@5 Function] +has return type, the return type of last callable appended is +used.&] +[s5; Usually, the callable target is C`+`+11 lambda:&] +[s0; &] +[s7; Function fn `= `[`](int n) `{ LOG(`"Called A`"); +return 3 `* n; `};&] +[s7; &] +[s7; LOG(`"About to call function`");&] +[s7; int n `= fn(7);&] +[s7; DUMP(n);&] +[s0; &] +[s17; About to call function&] +[s17; Called A&] +[s17; n `= 21&] +[s0; &] +[s5; If you chain another lambda into [*C@5 Function], all are called, +but the last one`'s return value is used:&] +[s0; &] +[s7; fn << `[`](int n) `{ LOG(`"Called B`"); return n `* n; `};&] +[s7; LOG(`"About to call combined function`");&] +[s7; n `= fn(7);&] +[s7; DUMP(n);&] +[s0; &] +[s17; About to call combined function&] +[s17; Called A&] +[s17; Called B&] +[s17; n `= 49&] +[s0; &] +[s5; Invoking empty lambda does nothing and returns default constructed +return value. This is quite useful for GUI classes, which have +a lot of output events represented by [*C@5 Function] which are +often unassigned to any action.&] +[s0; &] +[s7; fn.Clear();&] +[s7; LOG(`"About to call empty function`");&] +[s7; n `= fn(7);&] +[s7; DUMP(n);&] +[s0; &] +[s17; About to call empty function&] +[s17; n `= 0&] +[s0; &] +[s5; While using [*C@5 Function] with lambda expression is the most +common, you can use any target that has corresponding [*C@5 operator()] +defined:&] +[s0; &] +[s7; struct Functor `{&] +[s7; -|int operator()(int x) `{ LOG(`"Called Foo`"); return x % 2; +`}&] +[s7; `};&] +[s7; &] +[s7; fn `= Functor();&] +[s7; LOG(`"About to call Functor`");&] +[s7; n `= fn(7);&] +[s7; DUMP(n);&] +[s0; &] +[s17; About to call Functor&] +[s17; Called Foo&] +[s17; n `= 1&] +[s0; &] +[s5; As [*C@5 Function] with [*C@5 void] and [*C@5 bool] return types are +the most frequently used, U`+`+ defines template aliases [*C@5 Event]:&] +[s0; &] +[s7; Event<> ev `= `[`] `{ LOG(`"Event invoked`"); `};&] +[s7; &] +[s7; ev();&] +[s0; &] +[s17; Event invoked&] +[s0; &] +[s5; and [*C@5 Gate]:&] +[s0; &] +[s7; Gate gt `= `[`](int x) `{ LOG(`"Gate invoked with `" << +x); return x < 10; `};&] +[s7; &] +[s7; bool b `= gt(9);&] +[s7; DUMP(b);&] +[s7; b `= gt(10);&] +[s7; DUMP(b);&] +[s0; &] +[s17; Gate invoked with 9&] +[s17; b `= true&] +[s17; Gate invoked with 10&] +[s17; b `= false&] +[s0; &] +[s5; Using lambda to define calls to methods with more parameters +can be verbose and error`-prone. The issue can be simplified +by using [*C@5 THISFN] macro:&] +[s0; &] +[s7; struct Foo `{&] +[s7; -|void Test(int a, const String`& b) `{ LOG(`"Foo`::Test `" << +a << `", `" << b); `}&] +[s7; -|&] +[s7; -|typedef Foo CLASSNAME; // required for THISFN&] +[s7; -|&] +[s7; -|void Do() `{&] +[s7; -|-|Event fn;&] +[s7; -|-|&] +[s7; -|-|fn `= `[`=`](int a, const String`& b) `{ Test(a, b); `};&] +[s7; -|-|fn(1, `"using lambda`");&] +[s7; -|-|&] +[s7; -|-|fn `= THISFN(Test); // this is functionally equivalent, but +less verbose&] +[s7; -|-|fn(2, `"using THISFN`");&] +[s7; -|`}&] +[s7; `};&] +[s7; &] +[s7; Foo f;&] +[s7; f.Do();&] +[s0; &] +[s17; Foo`::Test 1, using lambda&] +[s17; Foo`::Test 2, using THISFN&] +[s0; &] +[s3;H4;:Section`_5`_2: 5.2 Capturing U`+`+ containers into lambdas&] +[s5; Capturing objects with pick/clone semantics can be achieved +using [/ capture with an initializer]:&] +[s0; &] +[s7; Vector x`{ 1, 2 `};&] +[s7; Array y`{ `"one`", `"two`" `};&] +[s7; Event<> ev `= `[x `= pick(x), y `= clone(y)`] `{ DUMP(x); DUMP(y); +`};&] +[s7; &] +[s7; DUMP(x); // x is picked, so empty&] +[s7; DUMP(y); // y was cloned, so it retains original value&] +[s7; &] +[s7; LOG(`"About to invoke event`");&] +[s7; &] +[s7; ev();&] +[s0; &] +[s17; x `= `[`]&] +[s17; y `= `[one, two`]&] +[s17; About to invoke event&] +[s17; x `= `[1, 2`]&] +[s17; y `= `[one, two`]&] +[s0; &] +[s22;:Chapter`_6: 6. Multithreading&] +[s3;:Section`_6`_1: 6.1 [C@5 Thread]&] +[s5; Since C`+`+11, there is now a reasonable support for threads +in standard library. There are however reasons to use U`+`+ threads +instead. One of them is that U`+`+ high performance memory allocator +needs a cleanup call at the the thread exit, which is naturally +implemented into [*C@5 Upp`::Thread]. Second `'hard`' reason is +that Microsoft compiler is using Win32 API function for condition +variable that are not available for Windows XP, while U`+`+ has +alternative implementation for Windows XP, thus making executable +compatible with it.&] +[s5; Then of course we believe U`+`+ multithreading / parallel programming +support is easier to use and leads to higher performance...&] +[s5; [*C@5 Thread] class can start the thread and allows launching +thread to [*C@5 Wait] for its completion:&] +[s0; &] +[s7; Thread t;&] +[s7; t.Run(`[`] `{&] +[s7; -|for(int i `= 0; i < 10; i`+`+) `{&] +[s7; -|-|LOG(`"In the thread `" << i);&] +[s7; -|-|Sleep(100);&] +[s7; -|`}&] +[s7; -|LOG(`"Thread is ending...`");&] +[s7; `});&] +[s7; for(int i `= 0; i < 5; i`+`+) `{&] +[s7; -|LOG(`"In the main thread `" << i);&] +[s7; -|Sleep(100);&] +[s7; `}&] +[s7; LOG(`"About to wait for thread to finish`");&] +[s7; t.Wait();&] +[s7; LOG(`"Wait for thread done`");&] +[s0; &] +[s17; In the main thread 0&] +[s17; In the thread 0&] +[s17; In the thread 1&] +[s17; In the main thread 1&] +[s17; In the thread 2&] +[s17; In the main thread 2&] +[s17; In the main thread 3&] +[s17; In the thread 3&] +[s17; In the main thread 4&] +[s17; In the thread 4&] +[s17; About to wait for thread to finish&] +[s17; In the thread 5&] +[s17; In the thread 6&] +[s17; In the thread 7&] +[s17; In the thread 8&] +[s17; In the thread 9&] +[s17; Thread is ending...&] +[s17; Wait for thread done&] +[s0; &] +[s5; [*C@5 Thread] destructor calls [*C@5 Detach] method with `'disconnects`' +[*C@5 Thread] from the thread. Thread continues running.&] +[s5; [*C@5 Thread`::Start] static method launches a thread without possibility +to wait for its completion; if you need to wait, you have to +use some other method:&] +[s0; &] +[s7; bool x `= false;&] +[s7; &] +[s7; Thread`::Start(`[`&x`] `{ LOG(`"In the Started thread`"); x `= +true; `});&] +[s7; &] +[s7; LOG(`"About to wait for thread to finish`");&] +[s7; while(!x) `{ Sleep(1); `} // Do not do this in real code!&] +[s7; LOG(`"Wait for thread done`");&] +[s0; &] +[s17; About to wait for thread to finish&] +[s17; In the Started thread&] +[s17; Wait for thread done&] +[s0; &] +[s5; (method used here is horrible, but should demonstrate the point).&] +[s3;H4;:Section`_6`_2: 6.2 [C@5 Mutex]&] +[s5; Mutex (`"mutual exclusion`") is a well known concept in multithreaded +programming: When multiple threads write and read the same data, +the access has to be serialized using Mutex. Following invalid +code demonstrates why:&] +[s0; &] +[s7; Thread t;&] +[s7; &] +[s7; int sum `= 0;&] +[s7; t.Run(`[`&sum`] `{&] +[s7; -|for(int i `= 0; i < 1000000; i`+`+)&] +[s7; -|-|sum`+`+;&] +[s7; `});&] +[s7; &] +[s7; for(int i `= 0; i < 1000000; i`+`+)&] +[s7; -|sum`+`+;&] +[s7; &] +[s7; t.Wait();&] +[s7; DUMP(sum);&] +[s0; &] +[s17; sum `= 1560532&] +[s0; &] +[s5; While the expected value is 2000000, produced value is different. +The problem is that both thread read / modify / write [*C@5 sum] +value without any locking. Using [*C@5 Mutex] locks the [*C@5 sum] +and thus serializes access to it `- read / modify / write sequence + is now exclusive for the thread that has [*C@5 Mutex] locked, +this fixing the issue. [*C@5 Mutex] can be locked / unlocked with +[*C@5 Enter] / [*C@5 Leave] methods. Alternatively, [*C@5 Mutex`::Lock] +helper class locks [*C@5 Mutex] in constructor and unlocks it in +destructor:&] +[s0; &] +[s7; Mutex m;&] +[s7; sum `= 0;&] +[s7; t.Run(`[`&sum, `&m`] `{&] +[s7; -|for(int i `= 0; i < 1000000; i`+`+) `{&] +[s7; -|-|m.Enter();&] +[s7; -|-|sum`+`+;&] +[s7; -|-|m.Leave();&] +[s7; -|`}&] +[s7; `});&] +[s7; &] +[s7; for(int i `= 0; i < 1000000; i`+`+) `{&] +[s7; -|Mutex`::Lock `_`_(m); // Lock m till the end of scope&] +[s7; -|sum`+`+;&] +[s7; `}&] +[s7; &] +[s7; t.Wait();&] +[s7; DUMP(sum);&] +[s0; &] +[s17; sum `= 2000000&] +[s0; &] +[s3;H4;:Section`_6`_3: 6.3 [C@5 ConditionVariable]&] +[s5; [*C@5 ConditionVariable] in general is a synchronization primitive +used to block/awaken the thread. [*C@5 ConditionVariable] is associated +with [*C@5 Mutex] used to protect some data; in the thread that +is to be blocked, [*C@5 Mutex] has to locked; call to [*C@5 Wait] +atomically unlocks the [*C@5 Mutex] and puts the thread to waiting. +Another thread then can resume the thread by calling [*C@5 Signal], +which also causes [*C@5 Mutex] to lock again. Multiple threads +can be waiting on single [*C@5 ConditionVariable]; [*C@5 Signal] +resumes single waiting thread, [*C@5 Brodcast] resumes all waitng +threads.&] +[s0; &] +[s7; bool stop `= false;&] +[s7; BiVector data;&] +[s7; Mutex m;&] +[s7; ConditionVariable cv;&] +[s7; &] +[s7; Thread t;&] +[s7; t.Run(`[`&stop, `&data, `&m, `&cv`] `{&] +[s7; -|Mutex`::Lock `_`_(m);&] +[s7; -|for(;;) `{&] +[s7; -|-|while(data.GetCount()) `{&] +[s7; -|-|-|int q `= data.PopTail();&] +[s7; -|-|-|LOG(`"Data received: `" << q);&] +[s7; -|-|`}&] +[s7; -|-|if(stop)&] +[s7; -|-|-|break;&] +[s7; -|-|cv.Wait(m);&] +[s7; -|`}&] +[s7; `});&] +[s7; &] +[s7; for(int i `= 0; i < 10; i`+`+) `{&] +[s7; -|`{&] +[s7; -|-|Mutex`::Lock `_`_(m);&] +[s7; -|-|data.AddHead(i);&] +[s7; -|`}&] +[s7; -|cv.Signal();&] +[s7; -|Sleep(1);&] +[s7; `}&] +[s7; stop `= true;&] +[s7; cv.Signal();&] +[s7; t.Wait();&] +[s0; &] +[s17; Data received: 0&] +[s17; Data received: 1&] +[s17; Data received: 2&] +[s17; Data received: 3&] +[s17; Data received: 4&] +[s17; Data received: 5&] +[s17; Data received: 6&] +[s17; Data received: 7&] +[s17; Data received: 8&] +[s17; Data received: 9&] +[s0; &] +[s5; Important note: rarely thread can be resumed from [*C@5 Wait] even +if no other called [*C@5 Signal]. This is not a bug, but [^https`:`/`/en`.wikipedia`.org`/wiki`/Spurious`_wakeup^ d +esign decision for performance reason]. In practice it only means +that situation has to be (re)checked after resume.&] +[s3;H4;:Section`_6`_4: 6.4 [C@5 CoWork]&] +[s5; [*C@5 CoWork] is intented to be use when thread are used to speedup +code by distributing tasks over multiple CPU cores. [*C@5 CoWork] +spans a single set of worker threads that exist for the whole +duration of program run. [*C@5 CoWork] instances then manage assigning +jobs to these worker threads and waiting for the all work to +finish.&] +[s5; Job units to [*C@5 CoWork] are represented by [*C@5 Function] and thus can be written inline as lambdas.&] +[s5; As an example, following code reads input file by lines, splits +lines into words (this is the parallelized work) and then adds +resulting words to [*C@5 Index]:&] +[s0; &] +[s7; FileIn in(GetDataFile(`"test.txt`")); // let us open some tutorial +testing data&] +[s7; &] +[s7; Index w;&] +[s7; Mutex m; // need mutex to serialize access to w&] +[s7; &] +[s7; CoWork co;&] +[s7; while(!in.IsEof()) `{&] +[s7; -|String ln `= in.GetLine();&] +[s7; -|co `& `[ln, `&w, `&m`] `{&] +[s7; -|-|Vector h `= Split(ln, `[`](int c) `{ return IsAlpha(c) +? 0 : c; `});&] +[s7; -|-|Mutex`::Lock `_`_(m);&] +[s7; -|-|for(const auto`& s : h)&] +[s7; -|-|-|w.FindAdd(s);&] +[s7; -|`};&] +[s7; `}&] +[s7; co.Finish();&] +[s7; &] +[s7; DUMP(w);&] +[s0; &] +[s17; w `= `[esse, cillum, dolore, eu, fugiat, nulla, pariatur, Excepteur, +sint, occaecat, cupidatat, consequat, Duis, aute, irure, dolor, +in, reprehenderit, voluptate, velit, quis, nostrud, exercitation, +ullamco, laboris, nisi, ut, aliquip, ex, ea, commodo, tempor, +incididunt, labore, et, magna, aliqua, Ut, enim, ad, minim, veniam, +Lorem, ipsum, sit, amet, consectetur, adipiscing, elit, sed, +do, eiusmod, non, proident, sunt, culpa, qui, officia, deserunt, +mollit, anim, id, est, laborum`]&] +[s0; &] +[s5; Adding words to [*C@5 w] requires [*C@5 Mutex]. Alternative to this +`'result gathering`' [*C@5 Mutex] is CoWork`::FinLock. The idea +behind this is that CoWork requires an internal [*C@5 Mutex] to +serialize access to common data, so why [*C@5 FinLock] locks this +internal mutex a bit earlier, saving CPU cycles required to lock +and unlock dedicated mutex. From API contract perspective, you +can consider [*C@5 FinLock] to serialize code till the end of worker +job.&] +[s0; &] +[s7; in.Seek(0);&] +[s7; while(!in.IsEof()) `{&] +[s7; -|String ln `= in.GetLine();&] +[s7; -|co `& `[ln, `&w, `&m`] `{&] +[s7; -|-|Vector h `= Split(ln, `[`](int c) `{ return IsAlpha(c) +? 0 : c; `});&] +[s7; -|-|CoWork`::FinLock(); // replaces the mutex, locked till the +end of CoWork job&] +[s7; -|-|for(const auto`& s : h)&] +[s7; -|-|-|w.FindAdd(s);&] +[s7; -|`};&] +[s7; `}&] +[s7; co.Finish();&] +[s7; &] +[s7; DUMP(w);&] +[s0; &] +[s17; w `= `[esse, cillum, dolore, eu, fugiat, nulla, pariatur, Excepteur, +sint, occaecat, cupidatat, consequat, Duis, aute, irure, dolor, +in, reprehenderit, voluptate, velit, quis, nostrud, exercitation, +ullamco, laboris, nisi, ut, aliquip, ex, ea, commodo, tempor, +incididunt, labore, et, magna, aliqua, Ut, enim, ad, minim, veniam, +Lorem, ipsum, sit, amet, consectetur, adipiscing, elit, sed, +do, eiusmod, non, proident, sunt, culpa, qui, officia, deserunt, +mollit, anim, id, est, laborum`]&] +[s0; &] +[s5; Of course, the code performed after FinLock should not take +long, otherwise there is negative impact on all CoWork instances. +In fact, from this perspective, above code is probably past this +threshold...&] +[s3;H4;:Section`_6`_5: 6.5 CoPartition&] +[s5; There is some overhead associated with CoWork worker threads. +That is why e.g. performing a simple operation on the array spawning +worker thread for each element is not a good idea performance +wise:&] +[s0; &] +[s7; Vector data;&] +[s7; for(int i `= 0; i < 10000; i`+`+)&] +[s7; -|data.Add(i);&] +[s7; &] +[s7; int sum `= 0;&] +[s7; &] +[s7; CoWork co;&] +[s7; for(int i `= 0; i < data.GetCount(); i`+`+)&] +[s7; -|co `& `[i, `&sum, `&data`] `{ CoWork`::FinLock(); sum `+`= data`[i`]; +`};&] +[s7; co.Finish();&] +[s7; DUMP(sum);&] +[s0; &] +[s17; sum `= 49995000&] +[s0; &] +[s5; Above code computes the sum of all elements in the [*C@5 Vector], +using CoWorker job for each element. While producing the correct +result, it is likely to run much slower than single`-threaded +version.&] +[s5; The solution to the problem is to split the array into small +number of larger subranges that are processed in parallel. This +is what [*C@5 CoPartition] template algorithm does:&] +[s0; &] +[s7; sum `= 0;&] +[s7; CoPartition(data, `[`&sum`](const auto`& subrange) `{&] +[s7; -|int partial`_sum `= 0;&] +[s7; -|for(const auto`& x : subrange)&] +[s7; -|-|partial`_sum `+`= x;&] +[s7; -|CoWork`::FinLock(); // available as CoPartition uses CoWork&] +[s7; -|sum `+`= partial`_sum;&] +[s7; `});&] +[s7; DUMP(sum);&] +[s0; &] +[s17; sum `= 49995000&] +[s0; &] +[s5; Note that CoWork is still internally used, so [*C@5 CoWork`::FinLock] +is available. Instead of working on subranges, it is also possible +to use iterators:&] +[s0; &] +[s7; sum `= 0;&] +[s7; CoPartition(data.begin(), data.end(), `[`&sum`] (auto l, auto +h) `{&] +[s7; -|int partial`_sum `= 0;&] +[s7; -|while(l !`= h)&] +[s7; -|-|partial`_sum `+`= `*l`+`+;&] +[s7; -|CoWork`::FinLock(); // available as CoPartition uses CoWork&] +[s7; -|sum `+`= partial`_sum;&] +[s7; `});&] +[s7; DUMP(sum);&] +[s0; &] +[s17; sum `= 49995000&] +[s0; &] +[s5; There is no requirement on the type of iterators, so it is even +possible to use just indices:&] +[s0; &] +[s7; sum `= 0;&] +[s7; CoPartition(0, data.GetCount(), `[`&sum, `&data`] (int l, int +h) `{&] +[s7; -|int partial`_sum `= 0;&] +[s7; -|while(l !`= h)&] +[s7; -|-|partial`_sum `+`= data`[l`+`+`];&] +[s7; -|CoWork`::FinLock(); // available as CoPartition uses CoWork&] +[s7; -|sum `+`= partial`_sum;&] +[s7; `});&] +[s7; DUMP(sum);&] +[s0; &] +[s17; sum `= 49995000&] +[s0; &] +[s3;H4;:Section`_6`_6: 6.6 Parallel algorithms&] +[s5; U`+`+ provides a parallel versions of algorithms where it makes +sense. The naming scheme is `'Co`' prefix before the name of +algorithm designates the parallel version.&] +[s5; So the parallel version of e.g. [*C@5 FindIndex] is [*C@5 CoFindIndex], +for [*C@5 Sort] it is [*C@5 CoSort]:&] +[s0; &] +[s7; Vector x`{ `"zero`", `"one`", `"two`", `"three`", `"four`", +`"five`" `};&] +[s7; &] +[s7; DUMP(FindIndex(x, `"two`"));&] +[s7; DUMP(CoFindIndex(x, `"two`"));&] +[s7; &] +[s7; CoSort(x);&] +[s7; DUMP(x);&] +[s0; &] +[s17; FindIndex(x, `"two`") `= 2&] +[s17; CoFindIndex(x, `"two`") `= 2&] +[s17; x `= `[five, four, one, three, two, zero`]&] +[s0; &] +[s5; Caution should be exercised when using these algorithms `- for +small datasets, they are almost certainly slower than single`-threaded +versions.&] [s5; ]] \ No newline at end of file diff --git a/uppsrc/Core/srcdoc.tpp/UserValue$en-us.tpp b/uppsrc/Core/srcdoc.tpp/UserValue_en-us.tpp similarity index 98% rename from uppsrc/Core/srcdoc.tpp/UserValue$en-us.tpp rename to uppsrc/Core/srcdoc.tpp/UserValue_en-us.tpp index bb966470e..e70920ab2 100644 --- a/uppsrc/Core/srcdoc.tpp/UserValue$en-us.tpp +++ b/uppsrc/Core/srcdoc.tpp/UserValue_en-us.tpp @@ -1,134 +1,134 @@ -TITLE("Storing custom data types in Values") -COMPRESSED -120,156,141,87,105,115,219,200,17,253,43,83,150,179,43,105, -33,22,230,194,65,38,155,77,201,73,202,31,162,77,217,138, -83,41,149,202,28,130,67,17,43,16,67,99,0,113,153,195, -191,61,175,103,64,209,148,55,135,85,22,8,2,125,189,247, -186,123,116,39,216,235,215,105,146,158,165,255,227,223,244,141, -93,153,161,233,239,239,26,81,20,179,58,79,213,204,240,124, -246,99,57,251,252,249,243,164,44,197,140,92,113,184,226,169, -146,92,112,174,210,84,137,156,235,50,45,117,193,139,84,230, -74,232,60,213,211,173,233,204,230,254,206,20,114,118,249,46, -131,149,72,244,153,228,146,167,60,19,10,111,165,50,21,138, -11,205,139,66,241,92,23,178,204,178,105,101,182,125,237,218, -251,187,5,217,193,74,194,42,205,139,76,113,216,40,45,100, -174,21,108,149,226,28,159,185,206,179,60,159,246,117,223,88, -216,240,44,159,25,37,102,215,148,165,74,178,51,100,39,114, -152,42,161,50,37,11,33,121,33,68,86,74,85,42,164,205, -197,180,238,45,146,92,192,134,236,200,76,35,160,210,138,75, -224,161,114,45,241,90,142,171,74,75,46,16,181,72,181,70, -64,251,243,1,36,194,135,236,50,132,19,185,166,183,11,85, -112,153,23,66,137,76,32,129,52,71,145,20,93,79,151,214, -87,176,147,130,207,122,164,52,187,254,65,207,56,140,243,36, -63,19,105,153,138,44,47,17,16,201,162,96,89,150,92,22, -8,168,184,78,185,156,86,110,73,69,10,157,202,25,108,10, -176,144,193,113,128,68,103,28,249,10,89,32,98,206,165,196, -111,173,138,124,234,45,241,208,187,238,254,238,242,135,243,116, -146,78,132,214,23,148,111,9,243,66,42,41,85,86,42,158, -74,68,129,15,69,112,101,41,152,228,90,20,211,133,241,8, -217,43,2,246,154,152,39,21,1,118,89,104,137,200,25,126, -129,81,148,39,129,140,40,85,33,101,145,78,171,198,120,255, -5,60,151,84,34,231,9,231,103,57,161,170,165,80,37,65, -35,5,224,21,153,46,57,240,213,153,74,197,180,179,159,134, -186,179,27,219,2,224,26,194,152,29,200,25,69,136,92,162, -8,69,194,5,100,168,179,44,37,180,52,180,32,164,6,220, -41,47,20,50,194,15,8,238,71,29,6,109,4,93,112,153, -112,121,86,10,37,145,73,169,20,0,128,3,94,114,206,211, -2,63,168,12,176,4,101,112,164,16,138,136,225,163,185,74, -184,58,203,33,96,240,84,42,10,95,74,130,79,0,125,145, -165,26,52,136,104,46,8,116,241,26,176,115,81,208,255,11, -178,215,9,71,35,32,67,174,53,202,150,0,90,20,40,93, -3,121,25,196,205,243,98,122,99,119,254,141,233,237,168,150, -203,235,215,81,102,60,75,120,118,150,146,189,46,74,208,199, -21,193,39,149,42,69,41,165,22,165,150,89,10,24,125,236, -99,50,166,94,10,125,248,236,36,79,120,142,182,66,169,90, -163,248,96,134,194,115,78,169,136,162,204,8,132,209,201,252, -170,169,91,202,3,186,152,69,41,92,94,127,199,121,78,142, -10,116,75,81,100,169,44,129,5,32,72,53,100,142,73,80, -128,103,208,44,208,3,52,10,170,71,243,96,231,87,99,159, -254,227,227,191,126,245,251,155,171,191,188,103,119,94,204,216, -123,200,179,110,31,88,53,248,222,109,216,210,244,134,245,251, -173,245,172,110,217,7,211,12,214,127,115,127,231,211,25,251, -113,197,42,55,116,222,178,186,103,181,103,91,231,125,189,104, -44,235,29,131,109,103,255,155,143,132,245,107,211,207,191,245, -108,135,43,110,236,126,254,45,76,86,174,155,176,183,45,91, -153,170,79,152,125,178,45,61,99,243,87,190,55,237,210,116, -203,249,43,246,68,30,70,135,77,253,104,217,219,155,219,249, -199,15,204,117,236,253,237,187,183,55,127,164,155,181,121,178, -236,201,118,123,188,210,163,80,230,183,182,170,77,195,252,176, -221,186,174,127,78,37,161,79,27,231,123,102,232,149,222,83, -192,186,99,182,197,248,3,228,134,70,224,243,219,84,104,189, -217,54,161,39,236,146,190,255,9,85,134,36,189,217,88,182, -51,123,56,162,58,152,105,247,204,225,65,23,115,157,140,184, -141,151,91,88,108,12,236,63,1,142,24,195,79,217,218,237, -80,108,87,87,107,20,122,154,194,222,13,240,222,246,191,13, -166,62,100,65,89,63,153,186,49,132,187,219,142,110,88,101, -154,6,201,193,145,217,125,1,215,252,213,36,216,186,182,217, -179,126,231,144,53,168,246,196,223,136,138,39,235,93,103,182, -91,210,128,105,153,91,252,4,76,80,38,72,53,35,4,32, -130,61,216,190,167,87,96,186,128,160,224,23,222,134,174,125, -105,51,130,70,44,146,103,179,79,216,0,197,216,201,195,100, -250,5,30,249,140,253,105,127,139,20,89,63,27,239,163,229, -211,225,118,188,60,177,249,111,216,59,179,187,117,225,249,121, -127,49,59,133,245,15,0,126,91,87,143,17,115,144,59,177, -147,192,70,212,203,174,238,215,192,5,163,191,239,134,170,175, -33,146,202,109,247,0,27,164,45,227,194,77,2,212,21,42, -65,170,167,73,34,242,159,225,252,24,253,52,184,235,16,112, -21,66,65,128,158,153,166,183,93,107,66,152,165,181,219,16, -107,228,233,43,199,111,240,194,127,114,188,180,91,219,46,9, -112,16,188,91,219,168,42,80,25,201,117,136,201,252,218,13, -205,146,45,108,168,31,244,159,135,42,221,222,46,47,38,236, -175,107,180,82,125,120,139,88,32,111,167,245,124,225,98,101, -60,82,127,33,217,224,131,176,105,45,220,31,195,147,2,146, -175,193,170,92,11,125,70,94,231,223,32,67,80,23,226,220, -186,95,199,111,191,63,127,122,201,223,141,235,109,152,13,193, -255,106,104,171,32,234,209,142,117,150,84,6,100,163,119,180, -3,190,90,217,14,173,98,73,220,117,80,48,61,171,81,0, -158,6,194,71,98,71,77,45,44,134,67,141,209,149,48,83, -85,174,11,184,66,171,187,53,218,46,78,43,7,119,108,59, -156,136,120,4,167,197,80,234,88,181,54,237,3,90,97,5, -148,118,24,75,254,24,188,181,149,245,222,96,242,44,108,101, -128,10,160,217,162,4,226,30,145,18,182,65,42,53,154,23, -232,117,53,117,174,15,4,146,104,98,36,146,222,218,53,203, -227,84,9,73,205,95,209,236,182,61,137,21,45,24,82,136, -61,24,42,166,114,33,240,144,164,89,173,168,5,49,6,200, -135,15,34,175,169,29,98,141,148,165,235,54,120,188,103,67, -11,153,212,29,229,129,201,187,10,252,46,58,107,30,67,244, -128,242,252,170,69,69,163,100,12,242,239,195,188,217,216,205, -2,80,160,183,22,251,3,33,243,143,21,148,19,59,232,0, -152,235,169,1,49,49,2,175,47,52,245,188,69,142,93,183, -49,143,118,236,148,213,168,176,103,142,151,20,43,204,146,175, -249,167,22,222,217,166,57,85,225,213,63,15,147,229,255,210, -223,2,164,47,136,2,184,29,26,102,22,14,95,244,157,105, -61,162,48,111,55,8,89,87,129,177,209,239,249,210,5,1, -133,1,71,106,11,76,6,9,211,12,8,195,232,32,192,95, -112,4,43,219,117,174,187,120,1,204,239,216,186,126,160,54, -111,32,184,134,226,157,174,3,184,196,73,128,58,97,101,119, -88,96,29,45,0,219,133,135,158,198,132,31,192,244,184,130, -63,28,87,230,116,92,215,227,142,136,219,149,22,206,201,162, -8,10,195,27,110,231,163,163,184,182,169,77,8,29,183,193, -73,142,70,12,77,86,28,18,13,150,236,158,118,58,152,8, -206,135,14,148,244,144,87,235,176,43,90,228,213,132,213,8, -251,152,56,100,179,180,225,164,65,46,190,78,243,2,222,112, -174,159,95,173,72,168,61,118,109,2,208,208,47,77,253,119, -4,142,13,96,195,156,35,7,55,67,211,68,153,78,216,223, -70,29,217,58,140,73,218,55,239,80,223,97,200,157,111,168, -158,112,112,56,46,18,132,131,151,243,231,246,64,133,27,96, -72,174,227,58,27,185,37,78,70,70,162,183,19,82,46,14, -197,133,110,192,156,240,196,84,164,5,158,200,67,29,15,52, -227,142,12,135,243,201,179,42,191,167,208,207,77,111,60,27, -223,166,53,142,190,66,143,16,207,142,6,80,36,113,240,67, -104,98,140,130,229,151,224,142,221,72,43,14,113,87,29,176, -61,108,111,66,59,12,230,112,139,185,28,150,35,137,119,59, -116,56,195,217,35,128,212,178,85,216,248,161,11,214,33,185, -56,228,150,14,81,208,138,246,103,179,169,91,162,145,86,58, -187,118,13,249,167,170,24,253,133,244,11,103,158,160,106,132, -63,74,228,249,224,120,42,240,136,242,8,200,11,129,178,249, -119,241,218,217,7,12,250,168,250,195,116,27,101,75,102,227, -228,62,232,166,35,136,58,91,185,135,22,119,113,192,69,229, -141,167,3,90,112,141,51,97,35,132,153,59,66,135,16,214, -108,162,234,240,169,143,182,199,73,127,162,223,145,91,215,226, -140,189,198,65,123,213,236,35,166,134,14,28,209,24,101,61, -175,33,194,49,240,22,199,107,20,3,242,185,113,199,253,23, -218,17,48,61,180,113,214,80,240,93,132,128,206,41,109,253, +TITLE("Storing custom data types in Values") +COMPRESSED +120,156,141,87,105,115,219,200,17,253,43,83,150,179,43,105, +33,22,230,194,65,38,155,77,201,73,202,31,162,77,217,138, +83,41,149,202,28,130,67,17,43,16,67,99,0,113,153,195, +191,61,175,103,64,209,148,55,135,85,22,8,2,125,189,247, +186,123,116,39,216,235,215,105,146,158,165,255,227,223,244,141, +93,153,161,233,239,239,26,81,20,179,58,79,213,204,240,124, +246,99,57,251,252,249,243,164,44,197,140,92,113,184,226,169, +146,92,112,174,210,84,137,156,235,50,45,117,193,139,84,230, +74,232,60,213,211,173,233,204,230,254,206,20,114,118,249,46, +131,149,72,244,153,228,146,167,60,19,10,111,165,50,21,138, +11,205,139,66,241,92,23,178,204,178,105,101,182,125,237,218, +251,187,5,217,193,74,194,42,205,139,76,113,216,40,45,100, +174,21,108,149,226,28,159,185,206,179,60,159,246,117,223,88, +216,240,44,159,25,37,102,215,148,165,74,178,51,100,39,114, +152,42,161,50,37,11,33,121,33,68,86,74,85,42,164,205, +197,180,238,45,146,92,192,134,236,200,76,35,160,210,138,75, +224,161,114,45,241,90,142,171,74,75,46,16,181,72,181,70, +64,251,243,1,36,194,135,236,50,132,19,185,166,183,11,85, +112,153,23,66,137,76,32,129,52,71,145,20,93,79,151,214, +87,176,147,130,207,122,164,52,187,254,65,207,56,140,243,36, +63,19,105,153,138,44,47,17,16,201,162,96,89,150,92,22, +8,168,184,78,185,156,86,110,73,69,10,157,202,25,108,10, +176,144,193,113,128,68,103,28,249,10,89,32,98,206,165,196, +111,173,138,124,234,45,241,208,187,238,254,238,242,135,243,116, +146,78,132,214,23,148,111,9,243,66,42,41,85,86,42,158, +74,68,129,15,69,112,101,41,152,228,90,20,211,133,241,8, +217,43,2,246,154,152,39,21,1,118,89,104,137,200,25,126, +129,81,148,39,129,140,40,85,33,101,145,78,171,198,120,255, +5,60,151,84,34,231,9,231,103,57,161,170,165,80,37,65, +35,5,224,21,153,46,57,240,213,153,74,197,180,179,159,134, +186,179,27,219,2,224,26,194,152,29,200,25,69,136,92,162, +8,69,194,5,100,168,179,44,37,180,52,180,32,164,6,220, +41,47,20,50,194,15,8,238,71,29,6,109,4,93,112,153, +112,121,86,10,37,145,73,169,20,0,128,3,94,114,206,211, +2,63,168,12,176,4,101,112,164,16,138,136,225,163,185,74, +184,58,203,33,96,240,84,42,10,95,74,130,79,0,125,145, +165,26,52,136,104,46,8,116,241,26,176,115,81,208,255,11, +178,215,9,71,35,32,67,174,53,202,150,0,90,20,40,93, +3,121,25,196,205,243,98,122,99,119,254,141,233,237,168,150, +203,235,215,81,102,60,75,120,118,150,146,189,46,74,208,199, +21,193,39,149,42,69,41,165,22,165,150,89,10,24,125,236, +99,50,166,94,10,125,248,236,36,79,120,142,182,66,169,90, +163,248,96,134,194,115,78,169,136,162,204,8,132,209,201,252, +170,169,91,202,3,186,152,69,41,92,94,127,199,121,78,142, +10,116,75,81,100,169,44,129,5,32,72,53,100,142,73,80, +128,103,208,44,208,3,52,10,170,71,243,96,231,87,99,159, +254,227,227,191,126,245,251,155,171,191,188,103,119,94,204,216, +123,200,179,110,31,88,53,248,222,109,216,210,244,134,245,251, +173,245,172,110,217,7,211,12,214,127,115,127,231,211,25,251, +113,197,42,55,116,222,178,186,103,181,103,91,231,125,189,104, +44,235,29,131,109,103,255,155,143,132,245,107,211,207,191,245, +108,135,43,110,236,126,254,45,76,86,174,155,176,183,45,91, +153,170,79,152,125,178,45,61,99,243,87,190,55,237,210,116, +203,249,43,246,68,30,70,135,77,253,104,217,219,155,219,249, +199,15,204,117,236,253,237,187,183,55,127,164,155,181,121,178, +236,201,118,123,188,210,163,80,230,183,182,170,77,195,252,176, +221,186,174,127,78,37,161,79,27,231,123,102,232,149,222,83, +192,186,99,182,197,248,3,228,134,70,224,243,219,84,104,189, +217,54,161,39,236,146,190,255,9,85,134,36,189,217,88,182, +51,123,56,162,58,152,105,247,204,225,65,23,115,157,140,184, +141,151,91,88,108,12,236,63,1,142,24,195,79,217,218,237, +80,108,87,87,107,20,122,154,194,222,13,240,222,246,191,13, +166,62,100,65,89,63,153,186,49,132,187,219,142,110,88,101, +154,6,201,193,145,217,125,1,215,252,213,36,216,186,182,217, +179,126,231,144,53,168,246,196,223,136,138,39,235,93,103,182, +91,210,128,105,153,91,252,4,76,80,38,72,53,35,4,32, +130,61,216,190,167,87,96,186,128,160,224,23,222,134,174,125, +105,51,130,70,44,146,103,179,79,216,0,197,216,201,195,100, +250,5,30,249,140,253,105,127,139,20,89,63,27,239,163,229, +211,225,118,188,60,177,249,111,216,59,179,187,117,225,249,121, +127,49,59,133,245,15,0,126,91,87,143,17,115,144,59,177, +147,192,70,212,203,174,238,215,192,5,163,191,239,134,170,175, +33,146,202,109,247,0,27,164,45,227,194,77,2,212,21,42, +65,170,167,73,34,242,159,225,252,24,253,52,184,235,16,112, +21,66,65,128,158,153,166,183,93,107,66,152,165,181,219,16, +107,228,233,43,199,111,240,194,127,114,188,180,91,219,46,9, +112,16,188,91,219,168,42,80,25,201,117,136,201,252,218,13, +205,146,45,108,168,31,244,159,135,42,221,222,46,47,38,236, +175,107,180,82,125,120,139,88,32,111,167,245,124,225,98,101, +60,82,127,33,217,224,131,176,105,45,220,31,195,147,2,146, +175,193,170,92,11,125,70,94,231,223,32,67,80,23,226,220, +186,95,199,111,191,63,127,122,201,223,141,235,109,152,13,193, +255,106,104,171,32,234,209,142,117,150,84,6,100,163,119,180, +3,190,90,217,14,173,98,73,220,117,80,48,61,171,81,0, +158,6,194,71,98,71,77,45,44,134,67,141,209,149,48,83, +85,174,11,184,66,171,187,53,218,46,78,43,7,119,108,59, +156,136,120,4,167,197,80,234,88,181,54,237,3,90,97,5, +148,118,24,75,254,24,188,181,149,245,222,96,242,44,108,101, +128,10,160,217,162,4,226,30,145,18,182,65,42,53,154,23, +232,117,53,117,174,15,4,146,104,98,36,146,222,218,53,203, +227,84,9,73,205,95,209,236,182,61,137,21,45,24,82,136, +61,24,42,166,114,33,240,144,164,89,173,168,5,49,6,200, +135,15,34,175,169,29,98,141,148,165,235,54,120,188,103,67, +11,153,212,29,229,129,201,187,10,252,46,58,107,30,67,244, +128,242,252,170,69,69,163,100,12,242,239,195,188,217,216,205, +2,80,160,183,22,251,3,33,243,143,21,148,19,59,232,0, +152,235,169,1,49,49,2,175,47,52,245,188,69,142,93,183, +49,143,118,236,148,213,168,176,103,142,151,20,43,204,146,175, +249,167,22,222,217,166,57,85,225,213,63,15,147,229,255,210, +223,2,164,47,136,2,184,29,26,102,22,14,95,244,157,105, +61,162,48,111,55,8,89,87,129,177,209,239,249,210,5,1, +133,1,71,106,11,76,6,9,211,12,8,195,232,32,192,95, +112,4,43,219,117,174,187,120,1,204,239,216,186,126,160,54, +111,32,184,134,226,157,174,3,184,196,73,128,58,97,101,119, +88,96,29,45,0,219,133,135,158,198,132,31,192,244,184,130, +63,28,87,230,116,92,215,227,142,136,219,149,22,206,201,162, +8,10,195,27,110,231,163,163,184,182,169,77,8,29,183,193, +73,142,70,12,77,86,28,18,13,150,236,158,118,58,152,8, +206,135,14,148,244,144,87,235,176,43,90,228,213,132,213,8, +251,152,56,100,179,180,225,164,65,46,190,78,243,2,222,112, +174,159,95,173,72,168,61,118,109,2,208,208,47,77,253,119, +4,142,13,96,195,156,35,7,55,67,211,68,153,78,216,223, +70,29,217,58,140,73,218,55,239,80,223,97,200,157,111,168, +158,112,112,56,46,18,132,131,151,243,231,246,64,133,27,96, +72,174,227,58,27,185,37,78,70,70,162,183,19,82,46,14, +197,133,110,192,156,240,196,84,164,5,158,200,67,29,15,52, +227,142,12,135,243,201,179,42,191,167,208,207,77,111,60,27, +223,166,53,142,190,66,143,16,207,142,6,80,36,113,240,67, +104,98,140,130,229,151,224,142,221,72,43,14,113,87,29,176, +61,108,111,66,59,12,230,112,139,185,28,150,35,137,119,59, +116,56,195,217,35,128,212,178,85,216,248,161,11,214,33,185, +56,228,150,14,81,208,138,246,103,179,169,91,162,145,86,58, +187,118,13,249,167,170,24,253,133,244,11,103,158,160,106,132, +63,74,228,249,224,120,42,240,136,242,8,200,11,129,178,249, +119,241,218,217,7,12,250,168,250,195,116,27,101,75,102,227, +228,62,232,166,35,136,58,91,185,135,22,119,113,192,69,229, +141,167,3,90,112,141,51,97,35,132,153,59,66,135,16,214, +108,162,234,240,169,143,182,199,73,127,162,223,145,91,215,226, +140,189,198,65,123,213,236,35,166,134,14,28,209,24,101,61, +175,33,194,49,240,22,199,107,20,3,242,185,113,199,253,23, +218,17,48,61,180,113,214,80,240,93,132,128,206,41,109,253, 137,246,198,17,113,201,238,255,13,38,126,64,0, \ No newline at end of file diff --git a/uppsrc/Core/srcdoc.tpp/ValueReference$en-us.tpp b/uppsrc/Core/srcdoc.tpp/ValueReference_en-us.tpp similarity index 100% rename from uppsrc/Core/srcdoc.tpp/ValueReference$en-us.tpp rename to uppsrc/Core/srcdoc.tpp/ValueReference_en-us.tpp diff --git a/uppsrc/Core/srcdoc.tpp/i18n$en-us.tpp b/uppsrc/Core/srcdoc.tpp/i18n_en-us.tpp similarity index 97% rename from uppsrc/Core/srcdoc.tpp/i18n$en-us.tpp rename to uppsrc/Core/srcdoc.tpp/i18n_en-us.tpp index 4ab3c5e67..9624ed62f 100644 --- a/uppsrc/Core/srcdoc.tpp/i18n$en-us.tpp +++ b/uppsrc/Core/srcdoc.tpp/i18n_en-us.tpp @@ -1,177 +1,177 @@ -topic "Internationalization and translation files"; -[2 $$0,0#00000000000000000000000000000000:Default] -[l288;i704;a17;O9;~~~.992;2 $$1,0#10431211400427159095818037425705:param] -[a83;*R6 $$2,5#31310162474203024125188417583966:caption] -[b83;*2 $$3,5#07864147445237544204411237157677:title] -[b167;a42;C2 $$4,6#40027414424643823182269349404212:item] -[b42;a42;2 $$5,5#45413000475342174754091244180557:text] -[l288;a17;2 $$6,6#27521748481378242620020725143825:desc] -[l321;t246;C@5;1 $$7,7#20902679421464641399138805415013:code] -[b2503;2 $$8,0#65142375456100023862071332075487:separator] -[*@(0.0.255)2 $$9,0#83433469410354161042741608181528:base] -[t4167;C2 $$10,0#37138531426314131251341829483380:class] -[l288;a17;*1 $$11,11#70004532496200323422659154056402:requirement] -[i417;b42;a42;O9;~~~.416;2 $$12,12#10566046415157235020018451313112:tparam] -[b167;C2 $$13,13#92430459443460461911108080531343:item1] -[i288;a42;O9;C2 $$14,14#77422149456609303542238260500223:item2] -[*@2$(0.128.128)2 $$15,15#34511555403152284025741354420178:NewsDate] -[l321;*C$7;2 $$16,16#03451589433145915344929335295360:result] -[l321;b83;a83;*C$7;2 $$17,17#07531550463529505371228428965313:result`-line] -[l160;t4167;*C+117 $$18,5#88603949442205825958800053222425:package`-title] -[@(128.0.255)2 $$19,0#65874547464505293575048467215454:QTF Chr] -[{_}%EN-US -[s2; Internationalization and translation files&] -[s0; To internationalize your application, you need to provide versions -of string literals in all required languages. In U`+`+, you can -do this using translation files.&] -[s0; &] -[s0; To mark string literals for translation in sources, you have -to tag them with t`_ macro, like&] -[s0; &] -[s7; printf(t`_(`"Hello world!`"));&] -[s0; &] -[s0; This macro is expanded to function that provides translation -of English (more specifically en`-US) text to default language -set by SetLanguage function. String literal here is considered -to be the key for translation lookup. U`+`+ supports three forms -of keys here:&] -[s0; &] -[s0;i150;O0; plain keys are just en`-US texts. Example: t`_(`"Hello -world!`")&] -[s0;i150;O0; context keys consist of context and en`-US text separated -by `\v, where both are parts of key. Example: t`_(`"align`\vTop`"). -This is useful in cases when context is needed to provide translation.&] -[s0;i150;O0; id keys consist of id and en`-US text separated by `\a, -but only id is used as key in translation lookup. Example: t`_(`"CtrlCoreReport`\a -Report`"). &] -[s0; &] -[s0; Important: t`_ tag can be used with string literals only.&] -[s0; &] -[s0; t`_ macro expands to function call that provides translation -of given literal. Where this is not acceptable (like in arrays -of literals), tt`_ tag can be used `- it is expanded to literal -alone and that can be later converted using GetLngString macro.&] -[s0; &] -[s0; Translations are stored in .t files of regular packages. Format -of this file is rather simple `- it is set of keys followed by -translation of keys to required languages. Key is introduced -by T`_, translation, translations are introduced by their language -codes, e.g.&] -[s0; &] -[s0; T`_(`"Sideways`")&] -[s0; csCZ(`"Na šířku`")&] -[s0; &] -[s0; Language codes for other languages may be found in Core, within -the lcid.txt file (found in the Languages section).&] -[s0; &] -[s0; TheIDE provides means for manipulating .t files `- in Workspace -menu there is `"Synchronize translation files`" operation. This -operation scans all source files of current project and builds -map of t`_ tagged string literals and then combines this information -with any valid .t files it finds. This operation also allows -adding new languages to .t files.&] -[s0; &] -[s0; t. files are always in UTF8 encoding. To change the encoding -for your file, you can right`-click on the file in TheIDE, and -select `'Convert to encoding...`'. Note that if you use Windows -Notepad to save the file as UTF`-8, you may need to strip out -the BOM that Windows may have included, or you may experience -compiling errors.&] -[s0; &] -[s0; TheIDE also maintains translation repository `- it stores ALL -translations that it meets into this file. Each time .t file -is synchronized, TheIDE tries to supply all missing translations -from repository and also adds all translation existing in .t -file back to repository. This is e.g. great when some source -is moved to another package.&] -[s0; &] -[s0; U`+`+ also supports run`-time translations (as opposite to compile`-time -.t files). You can use `-`-export`-tr in any U`+`+ application -to force creation of runtime translation file (with .tr extension). -Parameters of this flag is 4 letter language code and single -letter character set encoding according this table:&] -[s0; &] -[s0; &] -[ {{1840:8160<330;>1757;f4;h1; [s19;= [C `_]] -:: [s0; utf`-8] -:: [s19;= [C 0]] -:: [s0; windows`-1250] -:: [s19;= [C 1]] -:: [s0; windows`-1251] -:: [s19;= [C 2]] -:: [s0; windows`-1252] -:: [s19;= [C 3]] -:: [s0; windows`-1253] -:: [s19;= [C 4]] -:: [s0; windows`-1254] -:: [s19;= [C 5]] -:: [s0; windows`-1255] -:: [s19;= [C 6]] -:: [s0; windows`-1256] -:: [s19;= [C 7]] -:: [s0; windows`-1257] -:: [s19;= [C A]] -:: [s0; iso`-8859`-1] -:: [s19;= [C B]] -:: [s0; iso`-8859`-2] -:: [s19;= [C C]] -:: [s0; iso`-8859`-3] -:: [s19;= [C D]] -:: [s0; iso`-8859`-4] -:: [s19;= [C E]] -:: [s0; iso`-8859`-5] -:: [s19;= [C F]] -:: [s0; iso`-8859`-6] -:: [s19;= [C G]] -:: [s0; iso`-8859`-7] -:: [s19;= [C H]] -:: [s0; iso`-8859`-8] -:: [s19;= [C I]] -:: [s0; iso`-8859`-9] -:: [s19;= [C J]] -:: [s0; iso`-8859`-10]}}&] -[s0; &] -[s0; example:&] -[s0; &] -[s7; myapp `-`-export`-tr dede2&] -[s0; &] -[s0; will create dede2.tr file (in exe directory on Win32 and user`'s -home folder on Posix) ready for translation to deDE in windows`-1252. -If translations are already present, they are supplied, otherwise -.tr file contains English strings in place of translations.&] -[s0; &] -[s0; It is also possible to output secondary already translated language -to .tr file as comments (e.g. in case that translator cannot -understand English, but can understand some other language):&] -[s0; &] -[s0; &] -[s7; myapp `-`-export`-tr dede2 cscz&] -[s0; &] -[s0; Each U`+`+ application performs search for .tr files at startup -and uses them to extend internal translation tables.&] -[s0; &] -[s0; .tr files can be also imported to .t files using TheIDE`'s `"Import -runtime translation`" function of Workspace menu. Note that this -function does not add new languages to .t files `- just adds -translations to languages added manually.&] -[s0; &] -[s0; When `-`-export`-tr is used without parameter, it exports all -compile`-time languages. This is useful for maintenance purposes.&] -[s0; &] -[s0; You will need to include the following in [* one of your compiled -files (not a header)]:&] -[s0; &] -[s7; #define TFILE &] -[s7; #include &] -[s0; &] -[s0; where `'YourProject/YourTranslations.t`' would be a path to -your translations file.&] -[s0; &] -[s0; To set your application`'s language to the user`'s default language, -add the following somewhere early in your application`'s execution:&] -[s0; &] -[s7; SetLanguage( GetSystemLNG() );&] -[s0; &] -[s0; In multithreaded applications this setting works on per`-thread -basis (since release 5061); threads inherit the language setting +topic "Internationalization and translation files"; +[2 $$0,0#00000000000000000000000000000000:Default] +[l288;i704;a17;O9;~~~.992;2 $$1,0#10431211400427159095818037425705:param] +[a83;*R6 $$2,5#31310162474203024125188417583966:caption] +[b83;*2 $$3,5#07864147445237544204411237157677:title] +[b167;a42;C2 $$4,6#40027414424643823182269349404212:item] +[b42;a42;2 $$5,5#45413000475342174754091244180557:text] +[l288;a17;2 $$6,6#27521748481378242620020725143825:desc] +[l321;t246;C@5;1 $$7,7#20902679421464641399138805415013:code] +[b2503;2 $$8,0#65142375456100023862071332075487:separator] +[*@(0.0.255)2 $$9,0#83433469410354161042741608181528:base] +[t4167;C2 $$10,0#37138531426314131251341829483380:class] +[l288;a17;*1 $$11,11#70004532496200323422659154056402:requirement] +[i417;b42;a42;O9;~~~.416;2 $$12,12#10566046415157235020018451313112:tparam] +[b167;C2 $$13,13#92430459443460461911108080531343:item1] +[i288;a42;O9;C2 $$14,14#77422149456609303542238260500223:item2] +[*@2$(0.128.128)2 $$15,15#34511555403152284025741354420178:NewsDate] +[l321;*C$7;2 $$16,16#03451589433145915344929335295360:result] +[l321;b83;a83;*C$7;2 $$17,17#07531550463529505371228428965313:result`-line] +[l160;t4167;*C+117 $$18,5#88603949442205825958800053222425:package`-title] +[@(128.0.255)2 $$19,0#65874547464505293575048467215454:QTF Chr] +[{_}%EN-US +[s2; Internationalization and translation files&] +[s0; To internationalize your application, you need to provide versions +of string literals in all required languages. In U`+`+, you can +do this using translation files.&] +[s0; &] +[s0; To mark string literals for translation in sources, you have +to tag them with t`_ macro, like&] +[s0; &] +[s7; printf(t`_(`"Hello world!`"));&] +[s0; &] +[s0; This macro is expanded to function that provides translation +of English (more specifically en`-US) text to default language +set by SetLanguage function. String literal here is considered +to be the key for translation lookup. U`+`+ supports three forms +of keys here:&] +[s0; &] +[s0;i150;O0; plain keys are just en`-US texts. Example: t`_(`"Hello +world!`")&] +[s0;i150;O0; context keys consist of context and en`-US text separated +by `\v, where both are parts of key. Example: t`_(`"align`\vTop`"). +This is useful in cases when context is needed to provide translation.&] +[s0;i150;O0; id keys consist of id and en`-US text separated by `\a, +but only id is used as key in translation lookup. Example: t`_(`"CtrlCoreReport`\a +Report`"). &] +[s0; &] +[s0; Important: t`_ tag can be used with string literals only.&] +[s0; &] +[s0; t`_ macro expands to function call that provides translation +of given literal. Where this is not acceptable (like in arrays +of literals), tt`_ tag can be used `- it is expanded to literal +alone and that can be later converted using GetLngString macro.&] +[s0; &] +[s0; Translations are stored in .t files of regular packages. Format +of this file is rather simple `- it is set of keys followed by +translation of keys to required languages. Key is introduced +by T`_, translation, translations are introduced by their language +codes, e.g.&] +[s0; &] +[s0; T`_(`"Sideways`")&] +[s0; csCZ(`"Na šířku`")&] +[s0; &] +[s0; Language codes for other languages may be found in Core, within +the lcid.txt file (found in the Languages section).&] +[s0; &] +[s0; TheIDE provides means for manipulating .t files `- in Workspace +menu there is `"Synchronize translation files`" operation. This +operation scans all source files of current project and builds +map of t`_ tagged string literals and then combines this information +with any valid .t files it finds. This operation also allows +adding new languages to .t files.&] +[s0; &] +[s0; t. files are always in UTF8 encoding. To change the encoding +for your file, you can right`-click on the file in TheIDE, and +select `'Convert to encoding...`'. Note that if you use Windows +Notepad to save the file as UTF`-8, you may need to strip out +the BOM that Windows may have included, or you may experience +compiling errors.&] +[s0; &] +[s0; TheIDE also maintains translation repository `- it stores ALL +translations that it meets into this file. Each time .t file +is synchronized, TheIDE tries to supply all missing translations +from repository and also adds all translation existing in .t +file back to repository. This is e.g. great when some source +is moved to another package.&] +[s0; &] +[s0; U`+`+ also supports run`-time translations (as opposite to compile`-time +.t files). You can use `-`-export`-tr in any U`+`+ application +to force creation of runtime translation file (with .tr extension). +Parameters of this flag is 4 letter language code and single +letter character set encoding according this table:&] +[s0; &] +[s0; &] +[ {{1840:8160<330;>1757;f4;h1; [s19;= [C `_]] +:: [s0; utf`-8] +:: [s19;= [C 0]] +:: [s0; windows`-1250] +:: [s19;= [C 1]] +:: [s0; windows`-1251] +:: [s19;= [C 2]] +:: [s0; windows`-1252] +:: [s19;= [C 3]] +:: [s0; windows`-1253] +:: [s19;= [C 4]] +:: [s0; windows`-1254] +:: [s19;= [C 5]] +:: [s0; windows`-1255] +:: [s19;= [C 6]] +:: [s0; windows`-1256] +:: [s19;= [C 7]] +:: [s0; windows`-1257] +:: [s19;= [C A]] +:: [s0; iso`-8859`-1] +:: [s19;= [C B]] +:: [s0; iso`-8859`-2] +:: [s19;= [C C]] +:: [s0; iso`-8859`-3] +:: [s19;= [C D]] +:: [s0; iso`-8859`-4] +:: [s19;= [C E]] +:: [s0; iso`-8859`-5] +:: [s19;= [C F]] +:: [s0; iso`-8859`-6] +:: [s19;= [C G]] +:: [s0; iso`-8859`-7] +:: [s19;= [C H]] +:: [s0; iso`-8859`-8] +:: [s19;= [C I]] +:: [s0; iso`-8859`-9] +:: [s19;= [C J]] +:: [s0; iso`-8859`-10]}}&] +[s0; &] +[s0; example:&] +[s0; &] +[s7; myapp `-`-export`-tr dede2&] +[s0; &] +[s0; will create dede2.tr file (in exe directory on Win32 and user`'s +home folder on Posix) ready for translation to deDE in windows`-1252. +If translations are already present, they are supplied, otherwise +.tr file contains English strings in place of translations.&] +[s0; &] +[s0; It is also possible to output secondary already translated language +to .tr file as comments (e.g. in case that translator cannot +understand English, but can understand some other language):&] +[s0; &] +[s0; &] +[s7; myapp `-`-export`-tr dede2 cscz&] +[s0; &] +[s0; Each U`+`+ application performs search for .tr files at startup +and uses them to extend internal translation tables.&] +[s0; &] +[s0; .tr files can be also imported to .t files using TheIDE`'s `"Import +runtime translation`" function of Workspace menu. Note that this +function does not add new languages to .t files `- just adds +translations to languages added manually.&] +[s0; &] +[s0; When `-`-export`-tr is used without parameter, it exports all +compile`-time languages. This is useful for maintenance purposes.&] +[s0; &] +[s0; You will need to include the following in [* one of your compiled +files (not a header)]:&] +[s0; &] +[s7; #define TFILE &] +[s7; #include &] +[s0; &] +[s0; where `'YourProject/YourTranslations.t`' would be a path to +your translations file.&] +[s0; &] +[s0; To set your application`'s language to the user`'s default language, +add the following somewhere early in your application`'s execution:&] +[s0; &] +[s7; SetLanguage( GetSystemLNG() );&] +[s0; &] +[s0; In multithreaded applications this setting works on per`-thread +basis (since release 5061); threads inherit the language setting of main thread on startup.]] \ No newline at end of file diff --git a/uppsrc/Core/srcdoc.tpp/pick_$en-us.tpp b/uppsrc/Core/srcdoc.tpp/pick__en-us.tpp similarity index 98% rename from uppsrc/Core/srcdoc.tpp/pick_$en-us.tpp rename to uppsrc/Core/srcdoc.tpp/pick__en-us.tpp index 104e19fa6..054abf839 100644 --- a/uppsrc/Core/srcdoc.tpp/pick_$en-us.tpp +++ b/uppsrc/Core/srcdoc.tpp/pick__en-us.tpp @@ -1,61 +1,61 @@ -topic "Transfer semantics"; -[2 $$0,0#00000000000000000000000000000000:Default] -[l288;i704;a17;O9;~~~.992;2 $$1,0#10431211400427159095818037425705:param] -[a83;*R6 $$2,5#31310162474203024125188417583966:caption] -[b83;*2 $$3,5#07864147445237544204411237157677:title] -[b167;a42;C2 $$4,6#40027414424643823182269349404212:item] -[b42;a42;2 $$5,5#45413000475342174754091244180557:text] -[l288;a17;2 $$6,6#27521748481378242620020725143825:desc] -[l321;t246;C@5;1 $$7,7#20902679421464641399138805415013:code] -[b2503;2 $$8,0#65142375456100023862071332075487:separator] -[*@(0.0.255)2 $$9,0#83433469410354161042741608181528:base] -[t4167;C2 $$10,0#37138531426314131251341829483380:class] -[l288;a17;*1 $$11,11#70004532496200323422659154056402:requirement] -[i417;b42;a42;O9;~~~.416;2 $$12,12#10566046415157235020018451313112:tparam] -[b167;C2 $$13,13#92430459443460461911108080531343:item1] -[i288;a42;O9;C2 $$14,14#77422149456609303542238260500223:item2] -[*@2$(0.128.128)2 $$15,15#34511555403152284025741354420178:NewsDate] -[l321;*C$7;2 $$16,16#03451589433145915344929335295360:result] -[l321;b83;a83;*C$7;2 $$17,17#07531550463529505371228428965313:result`-line] -[l160;t4167;*C+117 $$18,5#88603949442205825958800053222425:package`-title] -[{_}%EN-US -[s2; Transfer semantics&] -[s3; Explicit pick/clone&] -[s5; U`+`+ containers require the transfer mode (deep copy or move) -to be explicitly specified when transfering the content of the -container (exception is the temporary value, which can be pick -assigned without explicit pick). This decision has the advantage -of not accidentally using costly deep copy semantics, when in -reality move is required in majority of case..&] -[s7; Vector a, b;&] -[s7; a `= pick(b); // moves content of b to a, b is cleared&] -[s7; b `= clone(a); // a and b now contain the same data&] -[s5; &] -[s3; Composition&] -[s5; When class contains members with pick semantics, a lot of error`-prone -work is saved when compiler is able to generate pick constructor/operator`= -for the class. C`+`+11 is quite capable of doing so, but needs -to explicitly activate it with default memebers:&] -[s7; Foo(Foo`&`&) `= default;&] -[s7; Foo`& operator`=(Foo`&`&) `= default;&] -[s5; Meanwhile, C`+`+03 does need these and does not recognize them. -To make things easier, we define macro rval`_default, which simplifies -this and irons out differences&] -[s7; rval`_default(Foo)&] -[s3; Optional deep copy `- clone, uniform access to deep copy&] -[s5; To support clone, class has to define special constructor of -form&] -[s7; T(const T`&, int)&] -[s5; and to derive from DeepCopyOption class, which provides support -for static/dynamic construction of instances.&] -[s3; Changing default semantics&] -[s5; If for some reason you need version of [/ optional] deep copy -type with [/ default] deep copy, you can easily create it with -[* WithDeepCopy ]template&] -[s7; IntArray a `= MakeArray(100);&] -[s7; WithDeepCopy b(a); // b now has deep copy semantics&] -[s7; a`[3`] `= 10; //legal&] -[s7; b `= a; // deep copy&] -[s7; a `= pick(b); // pick&] -[s7; b`[4`] `= 1; // illegal&] +topic "Transfer semantics"; +[2 $$0,0#00000000000000000000000000000000:Default] +[l288;i704;a17;O9;~~~.992;2 $$1,0#10431211400427159095818037425705:param] +[a83;*R6 $$2,5#31310162474203024125188417583966:caption] +[b83;*2 $$3,5#07864147445237544204411237157677:title] +[b167;a42;C2 $$4,6#40027414424643823182269349404212:item] +[b42;a42;2 $$5,5#45413000475342174754091244180557:text] +[l288;a17;2 $$6,6#27521748481378242620020725143825:desc] +[l321;t246;C@5;1 $$7,7#20902679421464641399138805415013:code] +[b2503;2 $$8,0#65142375456100023862071332075487:separator] +[*@(0.0.255)2 $$9,0#83433469410354161042741608181528:base] +[t4167;C2 $$10,0#37138531426314131251341829483380:class] +[l288;a17;*1 $$11,11#70004532496200323422659154056402:requirement] +[i417;b42;a42;O9;~~~.416;2 $$12,12#10566046415157235020018451313112:tparam] +[b167;C2 $$13,13#92430459443460461911108080531343:item1] +[i288;a42;O9;C2 $$14,14#77422149456609303542238260500223:item2] +[*@2$(0.128.128)2 $$15,15#34511555403152284025741354420178:NewsDate] +[l321;*C$7;2 $$16,16#03451589433145915344929335295360:result] +[l321;b83;a83;*C$7;2 $$17,17#07531550463529505371228428965313:result`-line] +[l160;t4167;*C+117 $$18,5#88603949442205825958800053222425:package`-title] +[{_}%EN-US +[s2; Transfer semantics&] +[s3; Explicit pick/clone&] +[s5; U`+`+ containers require the transfer mode (deep copy or move) +to be explicitly specified when transfering the content of the +container (exception is the temporary value, which can be pick +assigned without explicit pick). This decision has the advantage +of not accidentally using costly deep copy semantics, when in +reality move is required in majority of case..&] +[s7; Vector a, b;&] +[s7; a `= pick(b); // moves content of b to a, b is cleared&] +[s7; b `= clone(a); // a and b now contain the same data&] +[s5; &] +[s3; Composition&] +[s5; When class contains members with pick semantics, a lot of error`-prone +work is saved when compiler is able to generate pick constructor/operator`= +for the class. C`+`+11 is quite capable of doing so, but needs +to explicitly activate it with default memebers:&] +[s7; Foo(Foo`&`&) `= default;&] +[s7; Foo`& operator`=(Foo`&`&) `= default;&] +[s5; Meanwhile, C`+`+03 does need these and does not recognize them. +To make things easier, we define macro rval`_default, which simplifies +this and irons out differences&] +[s7; rval`_default(Foo)&] +[s3; Optional deep copy `- clone, uniform access to deep copy&] +[s5; To support clone, class has to define special constructor of +form&] +[s7; T(const T`&, int)&] +[s5; and to derive from DeepCopyOption class, which provides support +for static/dynamic construction of instances.&] +[s3; Changing default semantics&] +[s5; If for some reason you need version of [/ optional] deep copy +type with [/ default] deep copy, you can easily create it with +[* WithDeepCopy ]template&] +[s7; IntArray a `= MakeArray(100);&] +[s7; WithDeepCopy b(a); // b now has deep copy semantics&] +[s7; a`[3`] `= 10; //legal&] +[s7; b `= a; // deep copy&] +[s7; a `= pick(b); // pick&] +[s7; b`[4`] `= 1; // illegal&] [s0; ]] \ No newline at end of file diff --git a/uppsrc/Core/srcdoc.tpp/std$en-us.tpp b/uppsrc/Core/srcdoc.tpp/std_en-us.tpp similarity index 98% rename from uppsrc/Core/srcdoc.tpp/std$en-us.tpp rename to uppsrc/Core/srcdoc.tpp/std_en-us.tpp index 875a976c0..46892370f 100644 --- a/uppsrc/Core/srcdoc.tpp/std$en-us.tpp +++ b/uppsrc/Core/srcdoc.tpp/std_en-us.tpp @@ -1,38 +1,38 @@ -topic "NTL and standard library"; -[2 $$0,0#00000000000000000000000000000000:Default] -[l288;i704;a17;O9;~~~.992;2 $$1,0#10431211400427159095818037425705:param] -[a83;*R6 $$2,5#31310162474203024125188417583966:caption] -[b83;*2 $$3,5#07864147445237544204411237157677:title] -[b167;a42;C2 $$4,6#40027414424643823182269349404212:item] -[b42;a42;2 $$5,5#45413000475342174754091244180557:text] -[l288;a17;2 $$6,6#27521748481378242620020725143825:desc] -[l321;C@5;1 $$7,7#20902679421464641399138805415013:code] -[b2503;2 $$8,0#65142375456100023862071332075487:separator] -[*@(0.0.255)2 $$9,0#83433469410354161042741608181528:base] -[C7 $$10,0#37138531426314131251341829483380:class] -[l288;a17;*1 $$11,11#70004532496200323422659154056402:requirement] -[i417;b42;a42;O9;~~~.416;2 $$12,12#10566046415157235020018451313112:tparam] -[b167;C2 $$13,13#92430459443460461911108080531343:item1] -[i288;a42;O9;C2 $$14,14#77422149456609303542238260500223:item2] -[*@2$(0.128.128)2 $$15,15#34511555403152284025741354420178:NewsDate] -[l321;*C$7;2 $$16,16#03451589433145915344929335295360:result] -[l321;b83;a83;*C$7;2 $$17,17#07531550463529505371228428965313:result`-line] -[l160;*C+117 $$18,5#88603949442205825958800053222425:package`-title] -[{_}%EN-US -[s2; NTL and standard library&] -[s5; While NTL is kind of `"alien technology`" with respect to C`+`+ -standard library, in fact it is largely inter`-operable with -it.&] -[s3; Iterators&] -[s5; Each NTL container (with exception of One) provides iterator -access. All iterators satisfy STL requirements for random access -iterators. This also means that most of STL (and STL based) algorithms -can be used with NTL containers.&] -[s3; auto`_ptr&] -[s5; Funny part about standard library and NTL relationship is that -any known (and imaginable) implementation of auto`_ptr is moveable -`- so you can store it into any flavor of containers. All you -need to do is to mark an instantiation with the Moveable template.&] -[s5; Even better is that you do not need Vector of auto`_ptr `- because -Array flavor will do the same job more comfortably.&] +topic "NTL and standard library"; +[2 $$0,0#00000000000000000000000000000000:Default] +[l288;i704;a17;O9;~~~.992;2 $$1,0#10431211400427159095818037425705:param] +[a83;*R6 $$2,5#31310162474203024125188417583966:caption] +[b83;*2 $$3,5#07864147445237544204411237157677:title] +[b167;a42;C2 $$4,6#40027414424643823182269349404212:item] +[b42;a42;2 $$5,5#45413000475342174754091244180557:text] +[l288;a17;2 $$6,6#27521748481378242620020725143825:desc] +[l321;C@5;1 $$7,7#20902679421464641399138805415013:code] +[b2503;2 $$8,0#65142375456100023862071332075487:separator] +[*@(0.0.255)2 $$9,0#83433469410354161042741608181528:base] +[C7 $$10,0#37138531426314131251341829483380:class] +[l288;a17;*1 $$11,11#70004532496200323422659154056402:requirement] +[i417;b42;a42;O9;~~~.416;2 $$12,12#10566046415157235020018451313112:tparam] +[b167;C2 $$13,13#92430459443460461911108080531343:item1] +[i288;a42;O9;C2 $$14,14#77422149456609303542238260500223:item2] +[*@2$(0.128.128)2 $$15,15#34511555403152284025741354420178:NewsDate] +[l321;*C$7;2 $$16,16#03451589433145915344929335295360:result] +[l321;b83;a83;*C$7;2 $$17,17#07531550463529505371228428965313:result`-line] +[l160;*C+117 $$18,5#88603949442205825958800053222425:package`-title] +[{_}%EN-US +[s2; NTL and standard library&] +[s5; While NTL is kind of `"alien technology`" with respect to C`+`+ +standard library, in fact it is largely inter`-operable with +it.&] +[s3; Iterators&] +[s5; Each NTL container (with exception of One) provides iterator +access. All iterators satisfy STL requirements for random access +iterators. This also means that most of STL (and STL based) algorithms +can be used with NTL containers.&] +[s3; auto`_ptr&] +[s5; Funny part about standard library and NTL relationship is that +any known (and imaginable) implementation of auto`_ptr is moveable +`- so you can store it into any flavor of containers. All you +need to do is to mark an instantiation with the Moveable template.&] +[s5; Even better is that you do not need Vector of auto`_ptr `- because +Array flavor will do the same job more comfortably.&] [s0; ]] \ No newline at end of file diff --git a/uppsrc/Core/srcimp.tpp/Heap$en-us.tpp b/uppsrc/Core/srcimp.tpp/Heap_en-us.tpp similarity index 98% rename from uppsrc/Core/srcimp.tpp/Heap$en-us.tpp rename to uppsrc/Core/srcimp.tpp/Heap_en-us.tpp index 79ab46102..7461c8c89 100644 --- a/uppsrc/Core/srcimp.tpp/Heap$en-us.tpp +++ b/uppsrc/Core/srcimp.tpp/Heap_en-us.tpp @@ -1,150 +1,150 @@ -topic "Heap implementation"; -[2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;*@(64)2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,2#27521748481378242620020725143825:desc] -[a83;*R6 $$3,0#31310162474203024125188417583966:caption] -[l288;i1121;b17;O9;~~~.1408;2 $$4,0#10431211400427159095818037425705:param] -[i448;a25;kKO9;*@(64)2 $$5,0#37138531426314131252341829483370:item] -[*+117 $$6,6#14700283458701402223321329925657:header] -[l416;2 $$7,7#55548704457842300043401641954952:nested`-desc] -[l288;i448;a25;kO9;*2 $$8,8#64691275497409617375831514634295:nested`-class] -[{_}%EN-US -[s3; Heap implementation&] -[s0; U`+`+ heap is divided into 3 categories based on the block size -`- small, medium and big.&] -[s0; &] -[s6; Small blocks&] -[s0; Blocks <`= 576 bytes. According to our research, blocks <`= -576 represent the majority of blocks used in C`+`+/U`+`+ applications -(>98% of all blocks).&] -[s0; &] -[s0; Small blocks are allocated in 4KB pages. U`+`+ always expects -to get any memory from the system 4KB aligned (this is provided -by platform specific SysAllocRaw and SysFreeRaw functions).&] -[s0; &] -[s0; There are 18 possible block sizes for small blocks (16, 32, -64, 96, 128, 160, 192, 224, 256, 288, 368, 448, 576). Sizes of -larger blocks are designed so that they are 16 bytes rounded -and will use the most memory in (4096 `- 32 `= 4064) page (see -bellow). E.g. 4064 / 7 `= 580, which is adjusted down to 576, -thus wasting just 4064 `- 576 `* 7 `= 32 bytes per 4KB page.&] -[s0; &] -[s0; Each 4KB pages is dedicated to a single block size. Therefore -there is no need to store any per`-block information; instead -information about the whole block is stored in the 32 bytes header -at the beginning of 4KB page. This header stores pointer to the -list of free blocks in the page, double`-link pointers for the -block so that it can be stored in allocator structures, total -number of blocks in the 4KB page and a number of free blocks -in 4KB page.&] -[s0; &] -[s0; Allocator keeps the list of 4KB pages that are completely used -(no free blocks) in 16 element (one element per block size) sFull -array of lists, using double`-linked pointers. It stores partially -used pages in sWork 16 elements array of lists and unused pages -in sFree list.&] -[s0; &] -[s0; Now the critical implementation detail is how, given the pointer -to the block in the Free, the header of 4KB page and that way -the size of block is decided. More specifically, how is small -block determined, because if we know we have small block, we -can look at the start of 4KB page. The trick is that larger than -256 bytes block are always placed at the address that ends with -8 in hex (is 8 bytes aligned and 16 bytes misaligned), while -small blocks are always 16 bytes aligned. That makes test simple -`- blocks whose address `& 8 is nonzero are >256, if `&8 is zero -we have small block and can look at the beginning of 4KB page -to get more info.&] -[s0; &] -[s0; Allocator uses cache of small blocks. In this cache, up to about -3.5KB of small blocks per small block size are stored on free, -without really invoking more complex deallocation routine.&] -[s0; &] -[s0; If allocation/deallocation runs out of cache, the real work -has to be done:&] -[s0; &] -[s0; When allocating small block, first sWork list is checked for -the block. If not available, sFree list is checked to get free -block, if even that is empty, new block is obtained from the -system (using AllocRaw4KB). Note that allocator keeps the number -of free blocks in the header. Implementation detail: there are -two possibilities how free blocks can be recorded in the block -header. First, there is a single`-linked list of free blocks. -Second, for blocks that are initially free (got from sFree or -system), portion of free blocks in the 4KB page is left out of -free list and managed by `'free`' member `- the offset of last -such free block in page. If this offset is >32, free block is -obtained using it (subtracting the block size). This is used -to avoid the need to link all free blocks in the page when getting -new free page.&] -[s0; &] -[s0; When freeing, number of free blocks in 4KB page is incremented. -If it is now 1, it means block has to be moved from sFull to -sWork. If it now equals the total number of blocks in page, 4KB -page moves to sFree.&] -[s0; &] -[s0; &] -[s6; Medium blocks &] -[s0; Blocks >256 and < 65504 bytes. Approximate best`-fit allocator -is used for these blocks. Memory is organized in 64KB chunks -(obtained using AllocRaw64KB). Each allocated block has header -with its size and the size of previous block, free flag and pointer -to the Heap.&] -[s0; &] -[s0; Allocator keeps an array of lists of free blocks of particular -sizes. Size distribution is mostly exponential, blocks lower -than 2048 are rounded up to 32 bytes, between 2048 and about -35000 rounding exponentially grows up to 2048 and then stays -at this value. Each such size has its index in the array of free -blocks.&] -[s0; &] -[s0; When allocating, index is decided based on the size and array -is searched starting with that index to obtain the smallest free -block (best`-fit) greater than required size. Bigger blocks are -divided and the rest of block is put to free block list.&] -[s0; &] -[s0; When freeing, allocator merges the freed block with previous -or next free block if any and reassigns in free block list.&] -[s0; &] -[s0; Note that master header of 64KB blocks and all operations are -designed so that resulting pointers are NOT 16 byte aligned (see -description of small blocks).&] -[s0; &] -[s0; &] -[s6; Big blocks&] -[s0; For blocks bigger than 65504 bytes, allocator simply uses SysAllocRaw -to directly obtain virtual memory. It stores information about -the block in the header at the beginning of block, also making -block 16`-bytes unaligned in the process. Free then returns virtual -memory back to the system.&] -[s0; &] -[s0; &] -[s6; Multithreading&] -[s0; Each thread has its own heap (implemented using TLS) and there -is also `'aux`' heap, which is basically used to keep track of -completely free 4KB pages or 64KB chunks.&] -[s0; Most small and medium block allocations are lockless. Single -mutex for the whole allocator is locked in following, relatively -rare, situations:&] -[s0; &] -[s0;i150;O0; When freeing the small block that was allocated in different -thread (has different heap). Such blocks are first buffered until -their total size is more than 2000 bytes, then the mutex is locked -and all blocks are, distributed to remote`_free lists of respective -heaps.&] -[s0;i150;O0; When allocating the small block and there is no block -available in partially used pages and there is no `'reserve`' -empty page (of any size class) available `- in that case, mutex -is locked and and situation resolved, either by obtaining the -free page from global storage, by adopting orphaned partially -used page from auxiliary page, or if all else fails, by retrieving -page from the system. As part of this process, remote`_list pointer -is checked (without locking) and if not null, mutex is locked -and remotely freed pages are processed.&] -[s0;i150;O0; When freeing the small block which results in completely -free page and when heap already has reserve empty page for given -size class. In that case, reserve page is put to global list -of empty pages and new free page is used as new reserve (this -is because new page is likely more `'hot`' in cache).&] -[s0; &] +topic "Heap implementation"; +[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;*@(64)2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,2#27521748481378242620020725143825:desc] +[a83;*R6 $$3,0#31310162474203024125188417583966:caption] +[l288;i1121;b17;O9;~~~.1408;2 $$4,0#10431211400427159095818037425705:param] +[i448;a25;kKO9;*@(64)2 $$5,0#37138531426314131252341829483370:item] +[*+117 $$6,6#14700283458701402223321329925657:header] +[l416;2 $$7,7#55548704457842300043401641954952:nested`-desc] +[l288;i448;a25;kO9;*2 $$8,8#64691275497409617375831514634295:nested`-class] +[{_}%EN-US +[s3; Heap implementation&] +[s0; U`+`+ heap is divided into 3 categories based on the block size +`- small, medium and big.&] +[s0; &] +[s6; Small blocks&] +[s0; Blocks <`= 576 bytes. According to our research, blocks <`= +576 represent the majority of blocks used in C`+`+/U`+`+ applications +(>98% of all blocks).&] +[s0; &] +[s0; Small blocks are allocated in 4KB pages. U`+`+ always expects +to get any memory from the system 4KB aligned (this is provided +by platform specific SysAllocRaw and SysFreeRaw functions).&] +[s0; &] +[s0; There are 18 possible block sizes for small blocks (16, 32, +64, 96, 128, 160, 192, 224, 256, 288, 368, 448, 576). Sizes of +larger blocks are designed so that they are 16 bytes rounded +and will use the most memory in (4096 `- 32 `= 4064) page (see +bellow). E.g. 4064 / 7 `= 580, which is adjusted down to 576, +thus wasting just 4064 `- 576 `* 7 `= 32 bytes per 4KB page.&] +[s0; &] +[s0; Each 4KB pages is dedicated to a single block size. Therefore +there is no need to store any per`-block information; instead +information about the whole block is stored in the 32 bytes header +at the beginning of 4KB page. This header stores pointer to the +list of free blocks in the page, double`-link pointers for the +block so that it can be stored in allocator structures, total +number of blocks in the 4KB page and a number of free blocks +in 4KB page.&] +[s0; &] +[s0; Allocator keeps the list of 4KB pages that are completely used +(no free blocks) in 16 element (one element per block size) sFull +array of lists, using double`-linked pointers. It stores partially +used pages in sWork 16 elements array of lists and unused pages +in sFree list.&] +[s0; &] +[s0; Now the critical implementation detail is how, given the pointer +to the block in the Free, the header of 4KB page and that way +the size of block is decided. More specifically, how is small +block determined, because if we know we have small block, we +can look at the start of 4KB page. The trick is that larger than +256 bytes block are always placed at the address that ends with +8 in hex (is 8 bytes aligned and 16 bytes misaligned), while +small blocks are always 16 bytes aligned. That makes test simple +`- blocks whose address `& 8 is nonzero are >256, if `&8 is zero +we have small block and can look at the beginning of 4KB page +to get more info.&] +[s0; &] +[s0; Allocator uses cache of small blocks. In this cache, up to about +3.5KB of small blocks per small block size are stored on free, +without really invoking more complex deallocation routine.&] +[s0; &] +[s0; If allocation/deallocation runs out of cache, the real work +has to be done:&] +[s0; &] +[s0; When allocating small block, first sWork list is checked for +the block. If not available, sFree list is checked to get free +block, if even that is empty, new block is obtained from the +system (using AllocRaw4KB). Note that allocator keeps the number +of free blocks in the header. Implementation detail: there are +two possibilities how free blocks can be recorded in the block +header. First, there is a single`-linked list of free blocks. +Second, for blocks that are initially free (got from sFree or +system), portion of free blocks in the 4KB page is left out of +free list and managed by `'free`' member `- the offset of last +such free block in page. If this offset is >32, free block is +obtained using it (subtracting the block size). This is used +to avoid the need to link all free blocks in the page when getting +new free page.&] +[s0; &] +[s0; When freeing, number of free blocks in 4KB page is incremented. +If it is now 1, it means block has to be moved from sFull to +sWork. If it now equals the total number of blocks in page, 4KB +page moves to sFree.&] +[s0; &] +[s0; &] +[s6; Medium blocks &] +[s0; Blocks >256 and < 65504 bytes. Approximate best`-fit allocator +is used for these blocks. Memory is organized in 64KB chunks +(obtained using AllocRaw64KB). Each allocated block has header +with its size and the size of previous block, free flag and pointer +to the Heap.&] +[s0; &] +[s0; Allocator keeps an array of lists of free blocks of particular +sizes. Size distribution is mostly exponential, blocks lower +than 2048 are rounded up to 32 bytes, between 2048 and about +35000 rounding exponentially grows up to 2048 and then stays +at this value. Each such size has its index in the array of free +blocks.&] +[s0; &] +[s0; When allocating, index is decided based on the size and array +is searched starting with that index to obtain the smallest free +block (best`-fit) greater than required size. Bigger blocks are +divided and the rest of block is put to free block list.&] +[s0; &] +[s0; When freeing, allocator merges the freed block with previous +or next free block if any and reassigns in free block list.&] +[s0; &] +[s0; Note that master header of 64KB blocks and all operations are +designed so that resulting pointers are NOT 16 byte aligned (see +description of small blocks).&] +[s0; &] +[s0; &] +[s6; Big blocks&] +[s0; For blocks bigger than 65504 bytes, allocator simply uses SysAllocRaw +to directly obtain virtual memory. It stores information about +the block in the header at the beginning of block, also making +block 16`-bytes unaligned in the process. Free then returns virtual +memory back to the system.&] +[s0; &] +[s0; &] +[s6; Multithreading&] +[s0; Each thread has its own heap (implemented using TLS) and there +is also `'aux`' heap, which is basically used to keep track of +completely free 4KB pages or 64KB chunks.&] +[s0; Most small and medium block allocations are lockless. Single +mutex for the whole allocator is locked in following, relatively +rare, situations:&] +[s0; &] +[s0;i150;O0; When freeing the small block that was allocated in different +thread (has different heap). Such blocks are first buffered until +their total size is more than 2000 bytes, then the mutex is locked +and all blocks are, distributed to remote`_free lists of respective +heaps.&] +[s0;i150;O0; When allocating the small block and there is no block +available in partially used pages and there is no `'reserve`' +empty page (of any size class) available `- in that case, mutex +is locked and and situation resolved, either by obtaining the +free page from global storage, by adopting orphaned partially +used page from auxiliary page, or if all else fails, by retrieving +page from the system. As part of this process, remote`_list pointer +is checked (without locking) and if not null, mutex is locked +and remotely freed pages are processed.&] +[s0;i150;O0; When freeing the small block which results in completely +free page and when heap already has reserve empty page for given +size class. In that case, reserve page is put to global list +of empty pages and new free page is used as new reserve (this +is because new page is likely more `'hot`' in cache).&] +[s0; &] [s0; ]] \ No newline at end of file diff --git a/uppsrc/Core/srcimp.tpp/String$en-us.tpp b/uppsrc/Core/srcimp.tpp/String_en-us.tpp similarity index 98% rename from uppsrc/Core/srcimp.tpp/String$en-us.tpp rename to uppsrc/Core/srcimp.tpp/String_en-us.tpp index 2ed10eb4a..e175806a1 100644 --- a/uppsrc/Core/srcimp.tpp/String$en-us.tpp +++ b/uppsrc/Core/srcimp.tpp/String_en-us.tpp @@ -1,59 +1,59 @@ -topic "String and WString"; -[2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;*@(64)2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,2#27521748481378242620020725143825:desc] -[a83;*R6 $$3,0#31310162474203024125188417583966:caption] -[l288;i1121;b17;O9;~~~.1408;2 $$4,0#10431211400427159095818037425705:param] -[i448;a25;kKO9;*@(64)2 $$5,0#37138531426314131252341829483370:item] -[*+117 $$6,6#14700283458701402223321329925657:header] -[l416;2 $$7,7#55548704457842300043401641954952:nested`-desc] -[l288;i448;a25;kO9;*2 $$8,8#64691275497409617375831514634295:nested`-class] -[{_}%EN-US -[s3; String and WString&] -[s0; Core implementation of String and WString is totally independent.&] -[s0; &] -[s0; Core implementation is represented by String0 and WString0 classes. -Common methods shared by both are then added using AString template -(which inherits either String0 or WString0). Implementation is -then finalized in String and WString final classes.&] -[s0; &] -[s6; String&] -[s0; String uses three step implementation to maximize performance.&] -[s0; &] -[s0; Strings up to 14 characters (bytes) can be stored using small`-string -optimization inside String value. sizeof(String) is 16; first -14 bytes (0`- 13) in this case are character data, byte 14 is -reserved for zero terminator (and is always zero for this kind), -byte 15 is the string len. Also, for this first kind of string, -all characters len ... 14 are strictly kept zero `- this allows -very fast implementation of equality comparison.&] -[s0; &] -[s0; For strings up to 31 characters, bytes 0`-7 are used for pointer -to character data. Character data are allocated as 32 bytes block -(one byte for zero terminator); String implementation is directly -connected with heap allocator to bypass size processing here -and achieve maximum performance. Length of String is stored in -the bytes 8`-11. Byte 14 is in this case 31 (`"MEDIUM`") `- it -is the maximum number allowed to be stored in the buffer. Note -that non`-zero value in byte 14 signals that string is not `"small`". -When copying String of this size, new memory block is always -allocated and data is copied. With direct link to heap allocator, -this is about as fast as using reference counting in single threaded -mode and faster in multithreaded.&] -[s0; &] -[s0; Finally, if size exceeds 31 characters, String uses reference -counting. Layout is similar to `"MEDIUM`", but memory block is -of variable length and preceded with reference count and the -size of block (`"alloc`") `- maximum number of characters the -block can store. Note that as an optimization, for blocks smaller -than 255 characters, this number is also stored in byte 14 for -faster retrieval. If block is larger, 255 is in byte 14 and the -`"alloc`" size has to be retrieved from the memory block.&] -[s0; &] -[s6; WString&] -[s0; WString implementation does not use small string optimization, -first step is 23 wchars stored in 48 bytes memory block without -reference counting, for larger string once again reference counting -is applied. Sizes are also directly stored in `"int`" member -variables.&] +topic "String and WString"; +[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;*@(64)2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,2#27521748481378242620020725143825:desc] +[a83;*R6 $$3,0#31310162474203024125188417583966:caption] +[l288;i1121;b17;O9;~~~.1408;2 $$4,0#10431211400427159095818037425705:param] +[i448;a25;kKO9;*@(64)2 $$5,0#37138531426314131252341829483370:item] +[*+117 $$6,6#14700283458701402223321329925657:header] +[l416;2 $$7,7#55548704457842300043401641954952:nested`-desc] +[l288;i448;a25;kO9;*2 $$8,8#64691275497409617375831514634295:nested`-class] +[{_}%EN-US +[s3; String and WString&] +[s0; Core implementation of String and WString is totally independent.&] +[s0; &] +[s0; Core implementation is represented by String0 and WString0 classes. +Common methods shared by both are then added using AString template +(which inherits either String0 or WString0). Implementation is +then finalized in String and WString final classes.&] +[s0; &] +[s6; String&] +[s0; String uses three step implementation to maximize performance.&] +[s0; &] +[s0; Strings up to 14 characters (bytes) can be stored using small`-string +optimization inside String value. sizeof(String) is 16; first +14 bytes (0`- 13) in this case are character data, byte 14 is +reserved for zero terminator (and is always zero for this kind), +byte 15 is the string len. Also, for this first kind of string, +all characters len ... 14 are strictly kept zero `- this allows +very fast implementation of equality comparison.&] +[s0; &] +[s0; For strings up to 31 characters, bytes 0`-7 are used for pointer +to character data. Character data are allocated as 32 bytes block +(one byte for zero terminator); String implementation is directly +connected with heap allocator to bypass size processing here +and achieve maximum performance. Length of String is stored in +the bytes 8`-11. Byte 14 is in this case 31 (`"MEDIUM`") `- it +is the maximum number allowed to be stored in the buffer. Note +that non`-zero value in byte 14 signals that string is not `"small`". +When copying String of this size, new memory block is always +allocated and data is copied. With direct link to heap allocator, +this is about as fast as using reference counting in single threaded +mode and faster in multithreaded.&] +[s0; &] +[s0; Finally, if size exceeds 31 characters, String uses reference +counting. Layout is similar to `"MEDIUM`", but memory block is +of variable length and preceded with reference count and the +size of block (`"alloc`") `- maximum number of characters the +block can store. Note that as an optimization, for blocks smaller +than 255 characters, this number is also stored in byte 14 for +faster retrieval. If block is larger, 255 is in byte 14 and the +`"alloc`" size has to be retrieved from the memory block.&] +[s0; &] +[s6; WString&] +[s0; WString implementation does not use small string optimization, +first step is 23 wchars stored in 48 bytes memory block without +reference counting, for larger string once again reference counting +is applied. Sizes are also directly stored in `"int`" member +variables.&] [s0; ]] \ No newline at end of file diff --git a/uppsrc/CtrlCore/src.tpp/Ctrl$en-us.tpp b/uppsrc/CtrlCore/src.tpp/Ctrl_en-us.tpp similarity index 97% rename from uppsrc/CtrlCore/src.tpp/Ctrl$en-us.tpp rename to uppsrc/CtrlCore/src.tpp/Ctrl_en-us.tpp index 7728e0bbf..d84f79aa3 100644 --- a/uppsrc/CtrlCore/src.tpp/Ctrl$en-us.tpp +++ b/uppsrc/CtrlCore/src.tpp/Ctrl_en-us.tpp @@ -1,2817 +1,2817 @@ -topic "Ctrl"; -[2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,2#27521748481378242620020725143825:desc] -[0 $$3,0#96390100711032703541132217272105:end] -[H6;0 $$4,0#05600065144404261032431302351956:begin] -[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] -[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] -[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] -[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] -[b42;2 $$9,9#13035079074754324216151401829390:normal] -[{_}%EN-US -[ {{10000@(113.42.0) [s0; [*@7;4 Ctrl]]}}&] -[s3;%- &] -[s1;:Ctrl`:`:class:%- [@(0.0.255)3 class][3 _][*3 Ctrl][3 _:_][@(0.0.255)3 public][3 _][*@3;3 Pte][3 < -][*3 Ctrl][3 >_]&] -[s9; (Derivation from Pte allows Ctrl to be pointed to by Ptr&] -[s0; &] -[s0; This the base class of GUI widgets hierarchy (that is why U`+`+ -widgets are also named `"Ctrls`").&] -[s3; &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] -[s3; &] -[s0;%- enum_[* PlacementConstants]&] -[s2;b17;a17; Constants used in logical coordinates.&] -[s7;i1120;a17;:Ctrl`:`:CENTER: [%-*C@3 CENTER]-|Center alignment.&] -[s7;i1120;a17;:Ctrl`:`:LEFT: [%-*C@3 LEFT]-|Left alignment.&] -[s7;i1120;a17;:Ctrl`:`:RIGHT: [%-*C@3 RIGHT]-|Right alignment.&] -[s7;i1120;a17;:Ctrl`:`:TOP: [%-*C@3 TOP]-|Equal to LEFT (better name -for vertical coordinate).&] -[s7;i1120;a17;:Ctrl`:`:BOTTOM: [%-*C@3 BOTTOM]-|Equal to RIGHT (better -name for vertical coordinate)&] -[s7;i1120;a17;:Ctrl`:`:SIZE: [%-*C@3 SIZE]-|Size alignment.&] -[s7;i1120;a17;:Ctrl`:`:MINSIZE: [%-*C@3 MINSIZE]-|Value is determined -using GetMinSize.&] -[s7;i1120;a17;:Ctrl`:`:MAXSIZE: [%-*C@3 MAXSIZE]-|Value is determined -using GetMaxSize.&] -[s7;i1120;a17;:Ctrl`:`:STDSIZE: [%-*C@3 STDSIZE]-|Value is determined -using Get&] -[s3; &] -[s4; &] -[s0;%- enum_[* StateReason]&] -[s2;b17;a17; Arguments of State virtual method.&] -[s7;i1120;a17;:Ctrl`:`:FOCUS: [%-*C@3 FOCUS]-|Ctrl got/lost focus.&] -[s7;i1120;a17;:Ctrl`:`:ACTIVATE: [%-*C@3 ACTIVATE]-|Ctrl was activated.&] -[s7;i1120;a17;:Ctrl`:`:DEACTIVATE: [%-*C@3 DEACTIVATE]-|Ctrl was deactivated.&] -[s7;i1120;a17;:Ctrl`:`:SHOW: [%-*C@3 SHOW]-|Ctrl visibility changed.&] -[s7;i1120;a17;:Ctrl`:`:ENABLE: [%-*C@3 ENABLE]-|Ctrl was enabled/disable.&] -[s7;i1120;a17;:Ctrl`:`:EDITABLE: [%-*C@3 EDITABLE]-|Ctrl editable status -changed.&] -[s7;i1120;a17;:Ctrl`:`:OPEN: [%-*C@3 OPEN]-|Ctrl was open (its top`-level -Ctrl was open on screen).&] -[s7;i1120;a17;:Ctrl`:`:CLOSE: [%-*C@3 CLOSE]-|Ctrl was closed (its top`-level -Ctrl was closed).&] -[s3; &] -[s4; &] -[s0;%- enum_[* MouseEvents]&] -[s2;b17;a17; Constants that make up [*/ event] argument of [*/ MouseEvent] -and [*/ FrameMouseEvent] virtual methods. Value is combination -of button and action bit fields.&] -[s2;b17;a17; &] -[s0;l160; [* Field masks]&] -[s7;i1120;a17;:Ctrl`:`:BUTTON: [%-*C@3 BUTTON]-|Mask for button field.&] -[s7;i1120;a17;:Ctrl`:`:ACTION: [%-*C@3 ACTION]-|Mask for action field. -&] -[s0; &] -[s0;l160; [* Actions]&] -[s7;i1120;a17;:Ctrl`:`:MOUSEENTER: [%-*C@3 MOUSEENTER]-|Mouse entered -Ctrl.&] -[s7;i1120;a17;:Ctrl`:`:MOUSEMOVE: [%-*C@3 MOUSEMOVE]-|Mouse moved over -Ctrl.&] -[s7;i1120;a17;:Ctrl`:`:MOUSELEAVE: [%-*C@3 MOUSELEAVE]-|Mouse left Ctrl.&] -[s7;i1120;a17;:Ctrl`:`:CURSORIMAGE: [%-*C@3 CURSORIMAGE]-|Cursor image -has to be determined (method should respond with image).&] -[s7;i1120;a17;:Ctrl`:`:MOUSEWHEEL: [%-*C@3 MOUSEWHEEL]-|Mouse wheel -rotated.&] -[s7;i1120;a17;:Ctrl`:`:DOWN: [%-*C@3 DOWN]-|Mouse button was pressed.&] -[s7;i1120;a17;:Ctrl`:`:UP: [%-*C@3 UP]-|Mouse button was released.&] -[s7;i1120;a17;:Ctrl`:`:DOUBLE: [%-*C@3 DOUBLE]-|Mouse button was double`-clicked.&] -[s7;i1120;a17;:Ctrl`:`:REPEAT: [%-*C@3 REPEAT]-|When mouse button is -pressed for a while, U`+`+ imitates keyboard autorepeat sending -this message.&] -[s0;l160; [* Buttons] &] -[s7;i1120;a17; [%-*C@3 LEFT]-|Left button. (This constant is not defined -in MouseEvents, instead LEFT from Placements Constants is used).&] -[s7;i1120;a17; [%-*C@3 RIGHT]-|Left button. (This constant is not defined -in MouseEvents, instead LEFT from Placements Constants is used).&] -[s0;l160; [* Combinations]&] -[s7;i1120;a17;:Ctrl`:`:LEFTDOWN: [%-*C@3 LEFTDOWN]-|Left button pressed.&] -[s7;i1120;a17;:Ctrl`:`:LEFTDOUBLE: [%-*C@3 LEFTDOUBLE]-|Left button -double pressed.&] -[s7;i1120;a17;:Ctrl`:`:LEFTREPEAT: [%-*C@3 LEFTREPEAT]-|Left button -autorepeat.&] -[s7;i1120;a17;:Ctrl`:`:LEFTUP: [%-*C@3 LEFTUP]-|Left button released.&] -[s7;i1120;a17;:Ctrl`:`:RIGHTDOWN: [%-*C@3 RIGHTDOWN]-|Right button pressed.&] -[s7;i1120;a17;:Ctrl`:`:RIGHTDOUBLE: [%-*C@3 RIGHTDOUBLE]-|Right button -double pressed.&] -[s7;i1120;a17;:Ctrl`:`:RIGHTREPEAT: [%-*C@3 RIGHTREPEAT]-|Right button -autorepeat.&] -[s7;i1120;a17;:Ctrl`:`:RIGHTUP: [%-*C@3 RIGHTUP]-|Right button released.&] -[s3; &] -[s4; &] -[s0;%- enum_`{_[*@3 NOBACKPAINT], [*@3 FULLBACKPAINT], [*@3 TRANSPARENTBACKPAINT], -[*@3 EXCLUDEPAINT]_`}&] -[s2;b17;a17; These constants are parameters of BackPaint method. -They determine back`-plane drawing style.&] -[s7;i1120;a17;:Ctrl`:`:NOBACKPAINT: [%-*C@3 NOBACKPAINT]-|No backpaint -is used.&] -[s7;i1120;a17;:Ctrl`:`:FULLBACKPAINT: [%-*C@3 FULLBACKPAINT]-|Whole -area of Ctrl is backpainted.&] -[s7;i1120;a17;:Ctrl`:`:TRANSPARENTBACKPAINT: [%-*C@3 TRANSPARENTBACKPAINT]-|Only -transparent child Ctrls are backpainted.&] -[s7;i1120;a17;:Ctrl`:`:EXCLUDEPAINT: [%-*C@3 EXCLUDEPAINT]-|Ctrl is -not painted. This is special case for specific system related -situations (like OLE control painted by regular Windows routine).&] -[s3; &] -[s4; &] -[s5;%- [*@(64) typedef_][*@(0.0.255) bool][*@(64) _(`*][* MouseHook][*@(64) )(Ctrl_`*ctrl, -][*@(0.0.255) bool][*@(64) _inframe, ][*@(0.0.255) int][*@(64) _event, -Point_p, ][*@(0.0.255) int][*@(64) _zdelta, dword_keyflags)]&] -[s2;b17;a17; Type for hooking mouse events across all Ctrls.&] -[s3; &] -[s4; &] -[s5;%- [*@(64) typedef_][*@(0.0.255) bool][*@(64) _(`*][* KeyHook][*@(64) )(Ctrl_`*ctrl, -dword_key, ][*@(0.0.255) int][*@(64) _count)]&] -[s2;b17;a17; Type for hooking keyboard events across all Ctrls.&] -[s3; &] -[s4; &] -[s5;%- [*@(64) typedef_][*@(0.0.255) bool][*@(64) _(`*][* StateHook][*@(64) )(Ctrl_`*ctrl, -][*@(0.0.255) int][*@(64) _reason)]&] -[s2;b17;a17; Type for hooking state changes across all Ctrls.&] -[s0; &] -[s4;%- &] -[s5;:Ctrl`:`:PosLeft`(int`,int`):%- [@(0.0.255) static] [_^Ctrl`:`:Logc^ Logc]_[* PosLeft]( -[@(0.0.255) int]_[*@3 pos], [@(0.0.255) int]_[*@3 size])&] -[s2;b17;a17; Creates left (or top) aligned logical coordinate (Logc).&] -[s7;i1120;a17; [%-*C@3 pos]-|Distance between left margin and left margin -of parent`'s view.&] -[s7;i1120;a17; [%-*C@3 size]-|Size.&] -[s7;i1120;a17; [*/ Return value]-|Logical coordinate.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:PosRight`(int`,int`):%- [@(0.0.255) static] [_^Ctrl`:`:Logc^ Logc]_[* PosRight -]([@(0.0.255) int]_[*@3 pos], [@(0.0.255) int]_[*@3 size])&] -[s2;b17;a17; Creates right (or bottom) aligned logical coordinate -(Logc).&] -[s7;i1120;a17; [%-*C@3 pos]-|Distance between right margin and right -margin of parent`'s view.&] -[s7;i1120;a17; [%-*C@3 size]-|Size.&] -[s7;i1120;a17; [*/ Return value]-|Logical coordinate.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:PosTop`(int`,int`):%- [@(0.0.255) static] [_^`:`:Ctrl`:`:Logc^ Logc]_[* PosTop -]([@(0.0.255) int]_[*@3 pos], [@(0.0.255) int]_[*@3 size])&] -[s2;b17;a17; Equal to PosLeft(pos, size).&] -[s7;i1120;a17; [%-*C@3 pos]-|Distance between top margin and top margin -of parent`'s view.&] -[s7;i1120;a17; [%-*C@3 size]-|Size.&] -[s7;i1120;a17; [*/ Return value]-|Logical coordinate.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:PosBottom`(int`,int`):%- [@(0.0.255) static] [_^`:`:Ctrl`:`:Logc^ Logc]_[* Pos -Bottom]([@(0.0.255) int]_[*@3 pos], [@(0.0.255) int]_[*@3 size])&] -[s2;b17;a17; Equal to PosRight(pos, size).&] -[s7;i1120;a17; [%-*C@3 pos]-|Distance between bottom margin and bottom -margin of parent`'s view.&] -[s7;i1120;a17; [%-*C@3 size]-|Size.&] -[s7;i1120;a17; [*/ Return value]-|Logical coordinate.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:PosSize`(int`,int`):%- [@(0.0.255) static] [_^`:`:Ctrl`:`:Logc^ Logc]_[* PosSi -ze]([@(0.0.255) int]_[*@3 lpos], [@(0.0.255) int]_[*@3 rpos])&] -[s2;b17;a17; Creates logical coordinate where distances between margins -and parent`'s view margins are fixed and size of Ctrl is variable -(depends of parent`'s view size).&] -[s7;i1120;a17; [%-*C@3 lpos]-|Distance between left/top margin and left/top -margin of parent`'s view.&] -[s7;i1120;a17; [%-*C@3 rpos]-|Distance between right/bottom margin and -right/bottom margin of parent`'s view.&] -[s7;i1120;a17; [*/ Return value]-|Logical coordinate.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:PosCenter`(int`,int`):%- [@(0.0.255) static] [_^`:`:Ctrl`:`:Logc^ Logc]_[* Pos -Center]([@(0.0.255) int]_[*@3 size], [@(0.0.255) int]_[*@3 offset])&] -[s2;b17;a17; Creates centered logical coordinate, where Ctrl is placed -in specified distance from center of parent`'s view. &] -[s7;i1120;a17; [%-*C@3 size]-|Size.&] -[s7;i1120;a17; [%-*C@3 offset]-|Offset from center.&] -[s7;i1120;a17; [*/ Return value]-|Logical coordinate.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:PosCenter`(int`):%- [@(0.0.255) static] [_^`:`:Ctrl`:`:Logc^ Logc]_[* PosCente -r]([@(0.0.255) int]_[*@3 size])&] -[s2;b17;a17; Equal to PosCenter(size, 0).&] -[s7;i1120;a17; [%-*C@3 size]-|Size.&] -[s7;i1120;a17; [*/ Return value]-|Logical coordinate.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:GetTopCtrls`(`):%- [@(0.0.255) static] [_^`:`:Vector^ Vector][@(0.0.255) <]Ctr -l_`*>_[* GetTopCtrls]()&] -[s2;b17;a17; Returns all opened top`-level Ctrls of process. Top`-level -Ctrls are those without parent (GetParent() `=`= NULL) `- TopWindow -Ctrls and pop`-up Ctrls.&] -[s7;i1120;a17; [*/ Return value]-|Vector of all top Ctrls.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:GetTopWindows`(`):%- [@(0.0.255) static] [_^`:`:Vector^ Vector][@(0.0.255) <]C -trl_`*>_[* GetTopWindows]()&] -[s2;b17;a17; Returns all opened TopWindows (that is, instances of -TopWindow class or classes derived from TopWindow) of process. -The difference between GetTopWindows and GetTopCtrls is that -GetTopCtrls returns pop`-ups too. &] -[s7;i1120;a17; [*/ Return value]-|Vector of all TopWindows.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:CloseTopCtrls`(`):%- [@(0.0.255) static] [@(0.0.255) void]_[* CloseTopCtrls]() -&] -[s2;b17;a17; Closes all top`-level Ctrls.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:InstallMouseHook`(Ctrl`:`:MouseHook`):%- [@(0.0.255) static] -[@(0.0.255) void]_[* InstallMouseHook]([_^`:`:Ctrl`:`:MouseHook^ MouseHook]_[*@3 hook])&] -[s2;b17;a17; Installs mouse hook `- a routine that receives all mouse -input of application before it gets processed by Ctrls. You can -install more mouse hooks. Mouse hook routine should return true -to indicate the end of processing (and event propagation).&] -[s7;i1120;a17; [%-*C@3 hook]-|Pointer to hook routine.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:DeinstallMouseHook`(Ctrl`:`:MouseHook`):%- [@(0.0.255) static] -[@(0.0.255) void]_[* DeinstallMouseHook]([_^`:`:Ctrl`:`:MouseHook^ MouseHook]_[*@3 hook]) -&] -[s2;b17;a17; Uninstalls previously installed mouse hook.&] -[s7;i1120;a17; [%-*C@3 hook]-|Pointer to hook routine.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:InstallKeyHook`(Ctrl`:`:KeyHook`):%- [@(0.0.255) static] -[@(0.0.255) void]_[* InstallKeyHook]([_^`:`:Ctrl`:`:KeyHook^ KeyHook]_[*@3 hook])&] -[s2;b17;a17; Installs keyboard hook `- a routine that receives all -keyboard input of application before it gets processed by Ctrls. -You can install more than one keyboard hooks. Keyboard hook routine -should return true to indicate the end of processing (and event -propagation).&] -[s7;i1120;a17; [%-*C@3 hook]-|Pointer to hook routine.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:DeinstallKeyHook`(Ctrl`:`:KeyHook`):%- [@(0.0.255) static] -[@(0.0.255) void]_[* DeinstallKeyHook]([_^`:`:Ctrl`:`:KeyHook^ KeyHook]_[*@3 hook])&] -[s2;b17;a17; Uninstalls previously installed keyboard hook.&] -[s7;i1120;a17; [%-*C@3 hook]-|Pointer to hook routine.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:InstallStateHook`(Ctrl`:`:StateHook`):%- [@(0.0.255) static] -[@(0.0.255) void]_[* InstallStateHook]([_^`:`:Ctrl`:`:StateHook^ StateHook]_[*@3 hook])&] -[s2;b17;a17; Installs state hook `- a routine that receives all state -changes of any Ctrls.&] -[s7;i1120;a17; [%-*C@3 hook]-|Pointer to hook routine.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:DeinstallStateHook`(Ctrl`:`:StateHook`):%- [@(0.0.255) static] -[@(0.0.255) void]_[* DeinstallStateHook]([_^`:`:Ctrl`:`:StateHook^ StateHook]_[*@3 hook]) -&] -[s2;b17;a17; Deinstalls previously installed state hook.&] -[s7;i1120;a17; [%-*C@3 hook]-|Pointer to hook routine.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:Paint`(Draw`&`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Paint]([_^`:`:Draw^ D -raw][@(0.0.255) `&]_[*@3 draw])&] -[s2;b17;a17; This method is called when Ctrl`'s view area is about -to be repainted.&] -[s7;i1120;a17; [%-*C@3 draw]-|Target of draw operations.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:CancelMode`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* CancelMode]()&] -[s2;b17;a17; This method is called by U`+`+ core in situations when -internal state of Ctrl that represents ongoing user action is -about to be cleared to default. Typical example of such action -is state of Button that is pushed by mouse click `- if the pushed -state is internally recorded in Button, it should by cleared -by this method. Examples of situations when this method is called -by framework is removing Ctrl from its parent or releasing mouse -capture.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:Activate`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Activate]()&] -[s2;b17;a17; This method is called when Ctrl is top`-level and is -activated `- it or some of its child Ctrls receives keyboard -focus (activation usually has other signs as bringing window -foreground or changing its caption).&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:Deactivate`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Deactivate]()&] -[s2;b17;a17; This method is called when Ctrl is top`-level and is -deactivated `- focus has gone outside of Ctrl and its child Ctrls.&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:Ctrl`:`:DeactivateBy`(Upp`:`:Ctrl`*`):%- [@(0.0.255) virtual] -[@(0.0.255) void]_[* DeactivateBy]([_^Upp`:`:Ctrl^ Ctrl]_`*[*@3 new`_focus])&] -[s2; Similar to Deactivate without parameter, but if a widget that -caused deactivation by getting a focus is part of the same appliaction, -[%-*@3 new`_focus] contains a pointer to it. If deactivation is -caused by switching to another application, this parameter is -NULL. Both variants of Deactivate are called, the variant with -paremeter is called first.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:FrameMouseEvent`(int`,Point`,int`,dword`):%- [@(0.0.255) virtual] -[_^`:`:Image^ Image]_[* FrameMouseEvent]([@(0.0.255) int]_[*@3 event], -[_^`:`:Point^ Point]_[*@3 p], [@(0.0.255) int]_[*@3 zdelta], [_^`:`:dword^ dword]_[*@3 keyfla -gs])&] -[s2;b17;a17; This method is called when mouse event happens in frame -area of Ctrl not containing any child Ctrls. Default implementation -does nothing and returns Image`::Arrow().&] -[s7;i1120;a17; [%-*C@3 event]-|Type of event define by [^topic`:`/`/CtrlCore`/src`/Ctrl`$en`-us`#`:`:Ctrl`:`:enum MouseEvents `{ BUTTON`, ACTION`, MOUSEENTER`, MOUSEMOVE`, MOUSELEAVE`, CURSORIMAGE`, MOUSEWHEEL`, DOWN`, UP`, DOUBLE`, REPEAT`, LEFTDOWN`, LEFTDOUBLE`, LEFTREPEAT`, LEFTUP`, RIGHTDOWN`, RIGHTDOUBLE`, RIGHTREPEAT`, RIGHTUP `}^ M -ouseEvents] enum.&] -[s7;i1120;a17; [%-*C@3 p]-|Position of mouse cursor in frame coordinates.&] -[s7;i1120;a17; [%-*C@3 zdelta]-|Mouse wheel rotation delta (if event -is MOUSEWHEEL).&] -[s7;i1120;a17; [%-*C@3 keyflags]-|Combination of key flags for Shift, -Ctrl and Alt keys.&] -[s7;i1120;a17; [*/ Return value]-|If event is MOUSEIMAGE, method should -return Image to be displayed as mouse cursor.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:MouseEvent`(int`,Point`,int`,dword`):%- [@(0.0.255) virtual] -[_^`:`:Image^ Image]_[* MouseEvent]([@(0.0.255) int]_[*@3 event], [_^`:`:Point^ Point]_[*@3 p -], [@(0.0.255) int]_[*@3 zdelta], [_^`:`:dword^ dword]_[*@3 keyflags])&] -[s2;b17;a17; This method is called when mouse event happens in view -area of Ctrl not containing any child Ctrls. Default implementation -calls specific mouse event methods based on event parameter.&] -[s7;i1120;a17; [%-*C@3 event]-|Type of event define by [^topic`:`/`/CtrlCore`/src`/Ctrl`$en`-us`#`:`:Ctrl`:`:enum MouseEvents `{ BUTTON`, ACTION`, MOUSEENTER`, MOUSEMOVE`, MOUSELEAVE`, CURSORIMAGE`, MOUSEWHEEL`, DOWN`, UP`, DOUBLE`, REPEAT`, LEFTDOWN`, LEFTDOUBLE`, LEFTREPEAT`, LEFTUP`, RIGHTDOWN`, RIGHTDOUBLE`, RIGHTREPEAT`, RIGHTUP `}^ M -ouseEvents] enum.&] -[s7;i1120;a17; [%-*C@3 p]-|Position of mouse cursor in view coordinates.&] -[s7;i1120;a17; [%-*C@3 zdelta]-|Mouse wheel rotation delta (if event -is MOUSEWHEEL).&] -[s7;i1120;a17; [%-*C@3 keyflags]-|Combination of key flags for Shift, -Ctrl and Alt keys.&] -[s7;i1120;a17; [*/ Return value]-|If event is MOUSEIMAGE, method should -return Image to be displayed as mouse cursor.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:MouseEnter`(Point`,dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* MouseE -nter]([_^`:`:Point^ Point]_[*@3 p], [_^`:`:dword^ dword]_[*@3 keyflags])&] -[s2;b17;a17; This method is called by default implementation of MouseEvent -when mouse cursor enters the view area of Ctrl.&] -[s7;i1120;a17; [%-*C@3 p]-|Point of mouse cursor in view coordinates.&] -[s7;i1120;a17; [%-*C@3 keyflags]-|Combination of key flags for Shift, -Ctrl and Alt keys.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:MouseMove`(Point`,dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* MouseMo -ve]([_^`:`:Point^ Point]_[*@3 p], [_^`:`:dword^ dword]_[*@3 keyflags])&] -[s2;b17;a17; This method is called by default implementation of MouseEvent -when mouse cursor hovers above view area of Ctrl.&] -[s7;i1120;a17; [%-*C@3 p]-|Position of mouse cursor in view coordinates.&] -[s7;i1120;a17; [%-*C@3 keyflags]-|Combination of key flags for Shift, -Ctrl and Alt keys.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:LeftDown`(Point`,dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* LeftDown -]([_^`:`:Point^ Point]_[*@3 p], [_^`:`:dword^ dword]_[*@3 keyflags])&] -[s2;b17;a17; This method is called by default implementation of MouseEvent -when mouse left button is pressed.&] -[s7;i1120;a17; [%-*C@3 p]-|Position of mouse cursor in view coordinates.&] -[s7;i1120;a17; [%-*C@3 keyflags]-|Combination of key flags for Shift, -Ctrl and Alt keys.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:LeftDouble`(Point`,dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* LeftDo -uble]([_^`:`:Point^ Point]_[*@3 p], [_^`:`:dword^ dword]_[*@3 keyflags])&] -[s2;b17;a17; This method is called by default implementation of MouseEvent -when mouse left button is double`-clicked. Default implementation -calls LeftDown.&] -[s7;i1120;a17; [%-*C@3 p]-|Position of mouse cursor in view coordinates.&] -[s7;i1120;a17; [%-*C@3 keyflags]-|Combination of key flags for Shift, -Ctrl and Alt keys.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:LeftTriple`(Point`,dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* LeftTr -iple]([_^`:`:Point^ Point]_[*@3 p], [_^`:`:dword^ dword]_[*@3 keyflags])&] -[s2;b17;a17; This method is called by default implementation of MouseEvent -when mouse left button is triple`-clicked. Default implementation -calls LeftDown.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:LeftDrag`(Point`,dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* LeftDrag -]([_^`:`:Point^ Point]_[*@3 p], [_^`:`:dword^ dword]_[*@3 keyflags])&] -[s2;b17;a17; This method is called by default implementation of MouseEvent -when user moves the mouse while holding left button by more than -GUI`_DragDistance pixels. [%-*@3 p] is the starting point of drag, -not the current mouse position.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:LeftHold`(Point`,dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* LeftHold -]([_^`:`:Point^ Point]_[*@3 p], [_^`:`:dword^ dword]_[*@3 keyflags])&] -[s2;b17;a17; This method is called by default implementation of MouseEvent -when user holds the mouse left button down for a while.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:LeftRepeat`(Point`,dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* LeftRe -peat]([_^`:`:Point^ Point]_[*@3 p], [_^`:`:dword^ dword]_[*@3 keyflags])&] -[s2;b17;a17; This method is repeatedly called by default implementation -of MouseEvent when mouse left button is pressed for some time, -imitating keyboard autorepeat behaviour.&] -[s7;i1120;a17; [%-*C@3 p]-|Position of mouse cursor in view coordinates.&] -[s7;i1120;a17; [%-*C@3 keyflags]-|Combination of key flags for Shift, -Ctrl and Alt keys.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:LeftUp`(Point`,dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* LeftUp]([_^`:`:Point^ P -oint]_[*@3 p], [_^`:`:dword^ dword]_[*@3 keyflags])&] -[s2;b17;a17; This method is called by default implementation of MouseEvent -when mouse left button is released.&] -[s7;i1120;a17; [%-*C@3 p]-|Position of mouse cursor in view coordinates.&] -[s7;i1120;a17; [%-*C@3 keyflags]-|Combination of key flags for Shift, -Ctrl and Alt keys.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:RightDown`(Point`,dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* RightDo -wn]([_^`:`:Point^ Point]_[*@3 p], [_^`:`:dword^ dword]_[*@3 keyflags])&] -[s2;b17;a17; This method is called by default implementation of MouseEvent -when mouse right button is pressed.&] -[s7;i1120;a17; [%-*C@3 p]-|Position of mouse cursor in view coordinates.&] -[s7;i1120;a17; [%-*C@3 keyflags]-|Combination of key flags for Shift, -Ctrl and Alt keys.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:RightDouble`(Point`,dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Right -Double]([_^`:`:Point^ Point]_[*@3 p], [_^`:`:dword^ dword]_[*@3 keyflags])&] -[s2;b17;a17; This method is called by default implementation of MouseEvent -when mouse right button is double`-clicked. Default implementation -calls RightDown.&] -[s7;i1120;a17; [%-*C@3 p]-|Position of mouse cursor in view coordinates.&] -[s7;i1120;a17; [%-*C@3 keyflags]-|Combination of key flags for Shift, -Ctrl and Alt keys.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:RightTriple`(Point`,dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Right -Triple]([_^`:`:Point^ Point]_[*@3 p], [_^`:`:dword^ dword]_[*@3 keyflags])&] -[s2;b17;a17; This method is called by default implementation of MouseEvent -when mouse right button is triple`-clicked. Default implementation -calls RightDown.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:RightDrag`(Point`,dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* RightDr -ag]([_^`:`:Point^ Point]_[*@3 p], [_^`:`:dword^ dword]_[*@3 keyflags])&] -[s2;b17;a17; This method is called by default implementation of MouseEvent -when user moves the mouse while holding right button by more -than GUI`_DragDistance pixels. [%-*@3 p] is the starting point -of drag, not the current mouse position.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:RightHold`(Point`,dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* RightHo -ld]([_^`:`:Point^ Point]_[*@3 p], [_^`:`:dword^ dword]_[*@3 keyflags])&] -[s2;b17;a17; This method is called by default implementation of MouseEvent -when user holds the mouse right button down for a while.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:RightRepeat`(Point`,dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Right -Repeat]([_^`:`:Point^ Point]_[*@3 p], [_^`:`:dword^ dword]_[*@3 keyflags])&] -[s2;b17;a17; This method is repeatedly called by default implementation -of MouseEvent when mouse right button is pressed for some time, -imitating keyboard autorepeat behaviour.&] -[s7;i1120;a17; [%-*C@3 p]-|Position of mouse cursor in view coordinates.&] -[s7;i1120;a17; [%-*C@3 keyflags]-|Combination of key flags for Shift, -Ctrl and Alt keys.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:RightUp`(Point`,dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* RightUp]( -[_^`:`:Point^ Point]_[*@3 p], [_^`:`:dword^ dword]_[*@3 keyflags])&] -[s2;b17;a17; This method is called by default implementation of MouseEvent -when mouse left button is released.&] -[s7;i1120;a17; [%-*C@3 p]-|Position of mouse cursor in view coordinates.&] -[s7;i1120;a17; [%-*C@3 keyflags]-|Combination of key flags for Shift, -Ctrl and Alt keys.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:MiddleDown`(Point`,dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Middle -Down]([_^Point^ Point]_[*@3 p], [_^dword^ dword]_[*@3 keyflags])&] -[s2;b17;a17; This method is called by default implementation of MouseEvent -when mouse middle button is pressed.&] -[s7;i1120;a17; [%-*C@3 p]-|Position of mouse cursor in view coordinates.&] -[s7;i1120;a17; [%-*C@3 keyflags]-|Combination of key flags for Shift, -Ctrl and Alt keys.&] -[s3; &] -[s4;%- &] -[s5;:Ctrl`:`:MiddleDouble`(Point`,dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Midd -leDouble]([_^Point^ Point]_[*@3 p], [_^dword^ dword]_[*@3 keyflags])&] -[s2;b17;a17; This method is called by default implementation of MouseEvent -when mouse left button is double`-clicked.&] -[s7;i1120;a17; [%-*C@3 p]-|Position of mouse cursor in view coordinates.&] -[s7;i1120;a17; [%-*C@3 keyflags]-|Combination of key flags for Shift, -Ctrl and Alt keys.&] -[s3; &] -[s4;%- &] -[s5;:Ctrl`:`:MiddleTriple`(Point`,dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Midd -leTriple]([_^Point^ Point]_[*@3 p], [_^dword^ dword]_[*@3 keyflags])&] -[s2; This method is called by default implementation of MouseEvent -when mouse right button is triple`-clicked.&] -[s7;i1120;a17; [%-*C@3 p]-|Position of mouse cursor in view coordinates.&] -[s7;i1120;a17; [%-*C@3 keyflags]-|Combination of key flags for Shift, -Ctrl and Alt keys.&] -[s3; &] -[s4;%- &] -[s5;:Ctrl`:`:MiddleRepeat`(Point`,dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Midd -leRepeat]([_^Point^ Point]_[*@3 p], [_^dword^ dword]_[*@3 keyflags])&] -[s2; This method is repeatedly called by default implementation of -MouseEvent when mouse right button is pressed for some time, -imitating keyboard autorepeat behaviour.&] -[s7;i1120;a17; [%-*C@3 p]-|Position of mouse cursor in view coordinates.&] -[s7;i1120;a17; [%-*C@3 keyflags]-|Combination of key flags for Shift, -Ctrl and Alt keys.&] -[s3; &] -[s4;%- &] -[s5;:Ctrl`:`:MiddleDrag`(Point`,dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Middle -Drag]([_^Point^ Point]_[*@3 p], [_^dword^ dword]_[*@3 keyflags])&] -[s2; This method is called by default implementation of MouseEvent -when user moves the mouse while holding middle button by more -than GUI`_DragDistance pixels. [%-*@3 p] is the starting point -of drag, not the current mouse position.&] -[s3; &] -[s4;%- &] -[s5;:Ctrl`:`:MiddleHold`(Point`,dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Middle -Hold]([_^Point^ Point]_[*@3 p], [_^dword^ dword]_[*@3 keyflags])&] -[s2; This method is called by default implementation of MouseEvent -when user holds the mouse middle button down for a while.&] -[s7;i1120;a17; [%-*C@3 p]-|Position of mouse cursor in view coordinates.&] -[s7;i1120;a17; [%-*C@3 keyflags]-|Combination of key flags for Shift, -Ctrl and Alt keys.&] -[s3; &] -[s4;%- &] -[s5;:Ctrl`:`:MiddleUp`(Point`,dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* MiddleUp -]([_^Point^ Point]_[*@3 p], [_^dword^ dword]_[*@3 keyflags])&] -[s2; This method is called by default implementation of MouseEvent -when mouse middle button is released.&] -[s7;i1120;a17; [%-*C@3 p]-|Position of mouse cursor in view coordinates.&] -[s7;i1120;a17; [%-*C@3 keyflags]-|Combination of key flags for Shift, -Ctrl and Alt keys.&] -[s3; &] -[s4;%- &] -[s5;:Ctrl`:`:MouseWheel`(Point`,int`,dword`):%- [@(0.0.255) virtual] -[@(0.0.255) void]_[* MouseWheel]([_^`:`:Point^ Point]_[*@3 p], [@(0.0.255) int]_[*@3 zdelta], - [_^`:`:dword^ dword]_[*@3 keyflags])&] -[s2;b17;a17; This method is called by default implementation of MouseEvent -when mouse wheel is rotated. Default implementation of this method -propagates event to the parent and suppresses call of ChildMouseEvent -for the parent.&] -[s7;i1120;a17; [%-*C@3 p]-|Position of mouse cursor in view coordinates.&] -[s7;i1120;a17; [%-*C@3 zdelta]-|Amount of rotation.&] -[s7;i1120;a17; [%-*C@3 keyflags]-|Combination of key flags for Shift, -Ctrl and Alt keys.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:MouseLeave`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* MouseLeave]()&] -[s2;b17;a17; This method is called by default implementation of MouseEvent -when mouse cursor leaves view area of Ctrl.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:DragAndDrop`(Point`,PasteClip`&`):%- [@(0.0.255) virtual] -[@(0.0.255) void]_[* DragAndDrop]([_^Point^ Point]_[*@3 p], [_^PasteClip^ PasteClip][@(0.0.255) `& -]_[*@3 d])&] -[s2; This method is called when user performs drag and drop operation -over view area. The drag operation can either be just moving -the mouse, or actual drop `- the difference is that for actual -drop the PasteClip`::Accept method returns true. This allows to -share drag and drop logic, which is very similar, in the single -method.&] -[s3; &] -[s4;%- &] -[s5;:Ctrl`:`:FrameDragAndDrop`(Point`,PasteClip`&`):%- [@(0.0.255) virtual] -[@(0.0.255) void]_[* FrameDragAndDrop]([_^Point^ Point]_[*@3 p], [_^PasteClip^ PasteClip][@(0.0.255) `& -]_[*@3 d])&] -[s2; This method is called when user performs drag and drop operation -over frame area. The drag operation can either be just moving -the mouse, or actual drop `- the difference is that for actual -drop the PasteClip`::Accept method returns true. This allows to -share drag and drop logic, which is very similar, in the single -method.&] -[s3; &] -[s4;%- &] -[s5;:Ctrl`:`:DragRepeat`(Point`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* DragRepeat]([_^Point^ P -oint]_[*@3 p])&] -[s2; This method is called when user holds his drag operation over -single position for some time. This is similar to LeftRepeat -and it is usually used to scroll the content of view when DragRepeat -occurs at the border area of view.&] -[s3; &] -[s4;%- &] -[s5;:Ctrl`:`:DragEnter`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* DragEnter]()&] -[s2; Called when user enters view with drag.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:DragLeave`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* DragLeave]()&] -[s2; Called when user`'s drag leaves the view.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:GetDropData`(const String`&`)const:%- [@(0.0.255) virtual] -[_^String^ String]_[* GetDropData]([@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 f -mt])_[@(0.0.255) const]&] -[s2; This method is invoked to obtain drop data from Ctrl if such -data was not supplied as ClipData in call to DoDragAndDrop. Default -implementation calls GetSelectionData.&] -[s3; &] -[s4;%- &] -[s5;:Ctrl`:`:GetSelectionData`(const String`&`)const:%- [@(0.0.255) virtual] -[_^String^ String]_[* GetSelectionData]([@(0.0.255) const]_[_^String^ String][@(0.0.255) `& -]_[*@3 fmt])_[@(0.0.255) const]&] -[s2; This method should return the widget`'s actual selection in -requested format. It is used for X11 middle mouse selection paste -operation ans as default implementation of GetDropData, because -usually the data to be transfered by drag`&drop operation is -the selection.&] -[s3; &] -[s4;%- &] -[s5;:Ctrl`:`:CursorImage`(Point`,dword`):%- [@(0.0.255) virtual] [_^`:`:Image^ Image]_[* Cu -rsorImage]([_^`:`:Point^ Point]_[*@3 p], [_^`:`:dword^ dword]_[*@3 keyflags])&] -[s2;b17;a17; This method is called by default implementation of MouseEvent -when the shape of mouse cursor is to be determined..&] -[s7;i1120;a17; [%-*C@3 p]-|Position of mouse cursor in view coordinates.&] -[s7;i1120;a17; [%-*C@3 keyflags]-|Combination of key flags for Shift, -Ctrl and Alt keys.&] -[s7;i1120;a17; [*/ Return value]-|Image of new cursor. Default implementation -returns Image`::Arrow().&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:Key`(dword`,int`):%- [@(0.0.255) virtual] [@(0.0.255) bool]_[* Key]([_^`:`:dword^ d -word]_[*@3 key], [@(0.0.255) int]_[*@3 count])&] -[s2;b17;a17; This method provides keyboard input. When keyboard event -occurs and some of U`+`+ application Ctrls has input focus, its -Key method is called. If Key method returns true, processing -of key event is finished. If it returns false, U`+`+ calls Key -method of parent Ctrl and it repeats until either true is returned -or Ctrl has no parent. If such top`-level Ctrl is reached, U`+`+ -calls its HotKey method. Default implementation is void and returns -false.&] -[s7;i1120;a17; [%-*C@3 key]-|Key identifier. If it is less than 65536, -it indicates character code, otherwise it is key`-code. Key`-code -is combination of basic key codes and further flags indicating -state of shift keys and push/release events.&] -[s7;i1120;a17; [%-*C@3 count]-|Accumulated autorepeat count.&] -[s7;i1120;a17; [*/ Return value]-|Method should return true if further -propagation is not desirable (in most cases this indicates that -Ctrl accepted the key).&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:HotKey`(dword`):%- [@(0.0.255) virtual] [@(0.0.255) bool]_[* HotKey]([_^`:`:dword^ d -word]_[*@3 key])&] -[s2;b17;a17; This method is called when no Ctrl accepts key event -using Key method. Default implementation calls HotKey method -child Ctrls. If some child Ctrl returns true, method returns -true, otherwise it returns false.&] -[s7;i1120;a17; [%-*C@3 key]-|Key indentifier.&] -[s7;i1120;a17; [*/ Return value]-|Method should return true to stop -further distribution of key event via HotKey methods.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:GotFocus`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* GotFocus]()&] -[s2;b17;a17; This method is called when Ctrl receives input focus. -Default implementation is void.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:LostFocus`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* LostFocus]()&] -[s2;b17;a17; This method is called when Ctrl loses input focus. Default -implementation is void.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:ChildFrameMouseEvent`(Ctrl`*`,int`,Point`,int`,dword`):%- [@(0.0.255) virt -ual] [@(0.0.255) void]_[* ChildFrameMouseEvent]([_^Ctrl^ Ctrl]_`*[*@3 child], -[@(0.0.255) int]_[*@3 event], [_^Point^ Point]_[*@3 p], [@(0.0.255) int]_[*@3 zdelta], -[_^dword^ dword]_[*@3 keyflags])&] -[s2; This method is invoked before the [/ frame] mouse [%-*@3 event] -is routed to the [%-*@3 child]. Parameters of the event are the -same as those in MouseEvent method. Default implementation calls -the parent`'s ChildMouseEvent method.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:ChildMouseEvent`(Ctrl`*`,int`,Point`,int`,dword`):%- [@(0.0.255) virtual] -[@(0.0.255) void]_[* ChildMouseEvent]([_^`:`:Ctrl^ Ctrl]_`*[*@3 child], -[@(0.0.255) int]_[*@3 event], [_^`:`:Point^ Point]_[*@3 p], [@(0.0.255) int]_[*@3 zdelta], -[_^`:`:dword^ dword]_[*@3 keyflags])&] -[s2;b17;a17; This method is invoked before the mouse [%-*@3 event] -is routed to the [%-*@3 child]. Parameters of the event are the -same as those in MouseEvent method. Default implementation calls -the parent`'s ChildMouseEvent method.&] -[s3; &] -[s4;%- &] -[s5;:Ctrl`:`:ChildGotFocus`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* ChildGotFocus]( -)&] -[s2;b17;a17; This method is invoked when any of child Ctrls receives -input focus.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:ChildLostFocus`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* ChildLostFocus -]()&] -[s2;b17;a17; This method is invoked when any of child Ctrls loses -input focus.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:GetAccessKeys`(`)const:%- [@(0.0.255) virtual] [_^`:`:dword^ dword]_[* GetAcce -ssKeys]()_[@(0.0.255) const]&] -[s2;b17;a17; Ctrl should use this method to signal presence of access -keys. Access keys are keyboard keys that can be used to access -or activate dialog functions when pressed together with Alt key. -They can be defined by application designer (usually using `& -or `\b in labels), or they are automatically synthesized using -[* AssignAccessKeys] method. If Ctrl (of one of Ctrls in its child -tree) has some access keys and those keys are letters (in range -`'A`' `- `'Z`'), they should be returned as bit value using AccessKeyBit -function. Other access keys should be indicated by bit 0 (that -means, by binary or of 1 to result). Default implementation returns -0.&] -[s7;i1120;a17; [*/ Return value]-|Bit set of access keys.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:AssignAccessKeys`(dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* AssignA -ccessKeys]([_^`:`:dword^ dword]_[*@3 used])&] -[s2;b17;a17; This method gives a Ctrl chance to synthesize its letter -access keys.&] -[s7;i1120;a17; [%-*C@3 used]-|Set of letter access keys that are already -used and should not be chosen by Ctrl as its access keys.&] -[s3; &] -[s4;%- &] -[s5;:Ctrl`:`:ChildAdded`(Ctrl`*`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* ChildAdded]( -[_^`:`:Ctrl^ Ctrl]_`*[*@3 child])&] -[s2;b17;a17; This method is invoked when child is added to Ctrl.&] -[s7;i1120;a17; [%-*C@3 child]-|Pointer to child added.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:ChildRemoved`(Ctrl`*`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* ChildRemov -ed]([_^`:`:Ctrl^ Ctrl]_`*[*@3 child])&] -[s2;b17;a17; This method is invoked when child is removed from Ctrl.&] -[s7;i1120;a17; [%-*C@3 child]-|Pointer to child removed.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:ParentChange`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* ParentChange]()&] -[s2;b17;a17; This method is called when Ctrl is added or removed -from parent.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:State`(int`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* State]([@(0.0.255) int -]_[*@3 reason])&] -[s2;b17;a17; This method is used to notify Ctrls about special state`-change -events that are not covered by virtual methods. Method is called -for entire child tree of Ctrl whose state has changed.&] -[s7;i1120;a17; [%-*C@3 reason]-|Code of event. Standard reasons are -enumerated by StateReason enum.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:Layout`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Layout]()&] -[s2;b17;a17; This method is invoked when layout of Ctrl has to be -refreshed. This is usually either before window is displayed -or when the Ctrl is resized.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:GetMinSize`(`)const:%- [@(0.0.255) virtual] [_^`:`:Size^ Size]_[* GetMinSize]( -)_[@(0.0.255) const]&] -[s2;b17;a17; This method should return [/ minimal] size of Ctrl. This -is used e.g. to limit the minimal size of windows. Default implementation -returns size suitable for edit`-field type of widget, based on -default GUI font and EditFieldIsThin setting.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:GetStdSize`(`)const:%- [@(0.0.255) virtual] [_^`:`:Size^ Size]_[* GetStdSize]( -)_[@(0.0.255) const]&] -[s2;b17;a17; This method should return [/ standard] size of Ctrl. Default -implementation returns calls GetMinSize, increases width 10 and -returns resulting Size.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:GetMaxSize`(`)const:%- [@(0.0.255) virtual] [_^Size^ Size]_[* GetMaxSize]()_[@(0.0.255) c -onst]&] -[s2; This method should return [/ maximal] size of Ctrl. Default implementation -returns the size of virtual working area. Redefinition can be -used to e.g. define the maximum size of window (as maximal size -of view area).&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:IsShowEnabled`(`)const:%- [@(0.0.255) virtual] [@(0.0.255) bool]_[* IsShowEnab -led]()_[@(0.0.255) const]&] -[s2;b17;a17; This method indicates whether Ctrl should be painted -as enabled. Default implementation returns IsEnabled() `&`& (!parent -`|`| parent`->IsShowEnabled()), however TopWindow overloads this -function so that owner of modal dialogs while being disabled -during modal dialog lifetime are displayed with enabled Ctrls.&] -[s7;i1120;a17; [*/ Return value]-|true if Ctrl should be painted as -enabled.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:GetOpaqueRect`(`)const:%- [@(0.0.255) virtual] [_^Rect^ Rect]_[* GetOpaqueRect -]()_[@(0.0.255) const]&] -[s2; Returns the rectangle of view area that is opaque (is completely -filled when painting the widget). The default implementation -returns the whole view area if Transparent flag is set, empty -rectangle otherwise. Paint routine uses this information to optimize.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:GetVoidRect`(`)const:%- [@(0.0.255) virtual] [_^Rect^ Rect]_[* GetVoidRect]()_ -[@(0.0.255) const]&] -[s2; Returns the rectangle of view area that is fully transparent -(nothing is painted in that rectangle). Paint routine uses this -information to optimize.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:Updated`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Updated]()&] -[s2; Invoked by Update method. Default implementation is empty.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:OverPaint`(`)const:%- [@(0.0.255) virtual] [@(0.0.255) int]_[* OverPaint]()_[@(0.0.255) c -onst]&] -[s2;b17;a17; This method can returns non`-zero number that represents -paint extension margin of view area `- Ctrl can paint inside -this margin despite that fact that it does not belong to view. -This is useful to represent some specific skinning effect (like -glare around the button). Default implementation returns zero.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:Close`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Close]()&] -[s2;b17;a17; Closes top`-level Ctrl. If Ctrl is not top`-level, has -no effect. If it is and is open in host GUI (either as pop`-up -or as [^topic`:`/`/CtrlCore`/src`/TopWindow`$en`-us`#`:`:TopWindow`:`:class^ TopWin -dow]), it should close it. Default implementation closes. TopWindow -overrides this method to break modal loop instead of closing -if modal loop is performed for it.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:IsOcxChild`(`):%- [@(0.0.255) virtual] [@(0.0.255) bool]_[* IsOcxChild]()&] -[s2;b17;a17; Used for Ocx control implementation.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:GetDesc`(`)const:%- [@(0.0.255) virtual] [_^String^ String]_[* GetDesc]()_[@(0.0.255) c -onst]&] -[s2; Returns description of Ctrl for diagnostic purposes. Default -implementation is empty.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:WhenAction:%- [_^Callback^ Callback]_[* WhenAction]&] -[s2; This callback is used to signal that [/ user] has changed the -value (or state) of widget.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:SetData`(const Value`&`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* SetData]( -[@(0.0.255) const]_[_^`:`:Value^ Value][@(0.0.255) `&]_[*@3 data])&] -[s2;b17;a17; Sets the new value to the object. Default implementation -is void.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:GetData`(`)const:%- [@(0.0.255) virtual] [_^`:`:Value^ Value]_[* GetData]()_[@(0.0.255) c -onst]&] -[s2;b17;a17; Gets current value of the object. Default implementation -returns Value() `- void value.&] -[s7;i1120;a17; [*/ Return value]-|Value of object.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:SetModify`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* SetModify]()&] -[s2;b17;a17; Sets modification flag.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:ClearModify`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* ClearModify]()&] -[s2;b17;a17; Clears modification flag. Default implementation is -empty.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:IsModified`(`)const:%- [@(0.0.255) virtual] [@(0.0.255) bool]_[* IsModified]() -_[@(0.0.255) const]&] -[s2;b17;a17; Queries modification flag. Default implementation returns -false.&] -[s7;i1120;a17; [*/ Return value]-|Modification flag.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:Accept`(`):%- [@(0.0.255) virtual] [@(0.0.255) bool]_[* Accept]()&] -[s2;b17;a17; This virtual method is called when value of Ctrl is -about to be accepted. Default implementation calls Accept for -all child Ctrls and returns false if any of child Ctrls returns -false, true otherwise.&] -[s2;b17;a17; Typical use is when user pressed OK button. If any Ctrl -of dialog returns false, OK is canceled.&] -[s2;b17;a17; Typical implementation of this method should test whether -current state of Ctrl (its edited value) matches requirements. -If it does, it should finish editing, accept edited value and -return true. Otherwise it should return false, &] -[s7;i1120;a17; [*/ Return value]-|Ctrl should return true if it successfully -finished editing, false otherwise.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:Reject`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Reject]()&] -[s2;b17;a17; This virtual method is called when Ctrl should abort -editing, discarding edited value. Default implementation calls -Reject for all child Ctrls.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:Serialize`(Stream`&`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Serialize]( -[_^`:`:Stream^ Stream][@(0.0.255) `&]_[*@3 s])&] -[s2;b17;a17; Serialization method. Should serialize the value of -Ctrl in a way that is suitable for dialog backup and optional -restore (e.g. when user presses Cancel button).&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:Jsonize`(JsonIO`&`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Jsonize]([_^JsonIO^ J -sonIO][@(0.0.255) `&]_[*@3 jio])&] -[s2; Method to convert the data of widget to/from JSON. Default implementation -calls Jsonize for Value obtained/set by GetData/SetData.&] -[s3; &] -[s4;%- &] -[s5;:Ctrl`:`:Xmlize`(XmlIO`&`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Xmlize]([_^XmlIO^ X -mlIO][@(0.0.255) `&]_[*@3 xio])&] -[s2; Method to convert the data of widget to/from XML. Default implementation -calls Jsonize for Value obtained/set by GetData/SetData.&] -[s3; &] -[s4;%- &] -[s5;:Ctrl`:`:AddChild`(Ctrl`*`):%- [@(0.0.255) void]_[* AddChild]([_^`:`:Ctrl^ Ctrl]_`*[*@3 c -hild])&] -[s2;b17;a17; Adds a child Ctrl as last one.&] -[s7;i1120;a17; [%-*C@3 child]-|Pointer to child Ctrl at the end of child -list. Note that U`+`+ never takes ownership of Ctrls `- never -calls delete for [@3 child. ]That allows using non`-heap based -Ctrls. &] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:AddChild`(Ctrl`*`,Ctrl`*`):%- [@(0.0.255) void]_[* AddChild]([_^`:`:Ctrl^ Ctrl -]_`*[*@3 child], [_^`:`:Ctrl^ Ctrl]_`*[*@3 insafter])&] -[s2;b17;a17; Inserts child Ctrl after another Ctrl that is already -child. If [%-*@3 insafter] is NULL, child is inserted as the first -child.&] -[s7;i1120;a17; [%-*C@3 child]-|Pointer to child Ctrl.&] -[s7;i1120;a17; [%-*C@3 insafter]-|Ctrl that will be before inserted -Ctrl.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:AddChildBefore`(Ctrl`*`,Ctrl`*`):%- [@(0.0.255) void]_[* AddChildBefore]([_^`:`:Ctrl^ C -trl]_`*[*@3 child], [_^`:`:Ctrl^ Ctrl]_`*[*@3 insbefore])&] -[s2;b17;a17; Inserts child Ctrl before another Ctrl that is already -child. If [%-*@3 insbefore], child is inserted as last child.&] -[s7;i1120;a17; [%-*C@3 child]-|Pointer to child Ctrl.&] -[s7;i1120;a17; [%-*C@3 insbefore]-|Ctrl that will be after inserted -Ctrl.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:RemoveChild`(Ctrl`*`):%- [@(0.0.255) void]_[* RemoveChild]([_^`:`:Ctrl^ Ctrl]_ -`*[*@3 child])&] -[s2;b17;a17; Removes Ctrl from child list. Ctrl is never deleted.&] -[s7;i1120;a17; [%-*C@3 child]-|Child to be removed.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:GetParent`(`)const:%- [_^`:`:Ctrl^ Ctrl]_`*[* GetParent]()_[@(0.0.255) const]&] -[s2;b17;a17; Returns parent of Ctrl or NULL if Ctrl is topmost.&] -[s7;i1120;a17; [*/ Return value]-|Pointer to parent Ctrl.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:GetLastChild`(`)const:%- [_^`:`:Ctrl^ Ctrl]_`*[* GetLastChild]()_[@(0.0.255) c -onst]&] -[s2;b17;a17; Returns last child.&] -[s7;i1120;a17; [*/ Return value]-|Pointer to last child or NULL if Ctrl -has no children.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:GetFirstChild`(`)const:%- [_^`:`:Ctrl^ Ctrl]_`*[* GetFirstChild]()_[@(0.0.255) c -onst]&] -[s2;b17;a17; Returns first child.&] -[s7;i1120;a17; [*/ Return value]-|Pointer to first child or NULL if -Ctrl has no children.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:GetPrev`(`)const:%- [_^`:`:Ctrl^ Ctrl]_`*[* GetPrev]()_[@(0.0.255) const]&] -[s2;b17;a17; Returns child that is before this Ctrl in child list -or NULL if Ctrl is first or not in list.&] -[s7;i1120;a17; [*/ Return value]-|Pointer to previous child or NULL.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:GetNext`(`)const:%- [_^`:`:Ctrl^ Ctrl]_`*[* GetNext]()_[@(0.0.255) const]&] -[s2;b17;a17; Returns next child that is after this Ctrl in child -list or NULL if Ctrl is last or not in list.&] -[s7;i1120;a17; [*/ Return value]-|Pointer to next child or NULL.&] -[s3;%- &] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:GetChildIndex`(const Ctrl`*`)const:%- [@(0.0.255) int]_[* GetChildIndex]([@(0.0.255) c -onst]_[_^Ctrl^ Ctrl]_`*[*@3 child])_[@(0.0.255) const]&] -[s2; Returns the index of [%-*@3 child] (first child has index 0, second -child 1 etc...). If [%-*@3 child] is not present in this Ctrl, -returns `-1. Note that this function performs sequential scan -of child (results in O(n) complexity).&] -[s3; &] -[s4;%- &] -[s5;:Ctrl`:`:GetChildCount`(`)const:%- [@(0.0.255) int]_[* GetChildCount]()_[@(0.0.255) con -st]&] -[s2; Returns the number of child ctrls. Note that this function performs -sequential scan of child (results in O(n) complexity).&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:GetIndexChild`(int`)const:%- [_^Ctrl^ Ctrl]_`*[* GetIndexChild]([@(0.0.255) in -t]_[*@3 i])_[@(0.0.255) const]&] -[s2; Retruns child at index [%-*@3 i] or NULL if there is none. Note -that this function performs sequential scan of child (results -in O(n) complexity).&] -[s3; &] -[s4;%- &] -[s5;:Ctrl`:`:IsChild`(`)const:%- [@(0.0.255) bool]_[* IsChild]()_[@(0.0.255) const]&] -[s7;i1120;a17; [*/ Return value]-|True if Ctrl has parent.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:ChildFromPoint`(Point`&`)const:%- [_^`:`:Ctrl^ Ctrl]_`*[* ChildFromPoint]([_^`:`:Point^ P -oint][@(0.0.255) `&]_[*@3 pt])_[@(0.0.255) const]&] -[s2;b17;a17; Checks whether opened top`-level Ctrl is foreground.&] -[s7;i1120;a17; [*/ Return value]-|True if Ctrl is foreground.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:IsForeground`(`)const:%- [@(0.0.255) bool]_[* IsForeground]()_[@(0.0.255) cons -t]&] -[s2; Returns true if Ctrl or its top`-level parent is foreground -window.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:SetForeground`(`):%- [@(0.0.255) void]_[* SetForeground]()&] -[s2;b17;a17; Asks platform to put top`-level Ctrl to foreground.&] -[s3; &] -[s4;%- &] -[s5;:Ctrl`:`:GetTopCtrl`(`)const:%- [@(0.0.255) const]_[_^Ctrl^ Ctrl]_`*[* GetTopCtrl]()_[@(0.0.255) c -onst]&] -[s2; Gets the top`-level Ctrl, that is Ctrl that has this Ctrl in -child tree and has no parent.&] -[s7;i1120;a17; [*/ Return value]-|Pointer to top`-level Ctrl. Can return -this.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:GetTopCtrl`(`):%- [_^Ctrl^ Ctrl]_`*[* GetTopCtrl]()&] -[s2; Gets the top`-level Ctrl, that is Ctrl that has this Ctrl in -child tree and has no parent.&] -[s7;i1120;a17; [*/ Return value]-|Pointer to top`-level Ctrl. Can return -this.&] -[s3; &] -[s4;%- &] -[s5;:Ctrl`:`:GetOwner`(`)const:%- [@(0.0.255) const]_[_^Ctrl^ Ctrl]_`*[* GetOwner]()_[@(0.0.255) c -onst]&] -[s2; Returns owner of top`-level Ctrl. Example of owned window is -dialog launched from main application window. Owner is another -top`-level Ctrl.&] -[s7;i1120;a17; [*/ Return value]-|Pointer to owner top`-level Ctrl or -NULL is window is not owned.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:GetOwner`(`):%- [_^`:`:Ctrl^ Ctrl]_`*[* GetOwner]()&] -[s2;b17;a17; Returns owner of top`-level Ctrl.&] -[s7;i1120;a17; [*/ Return value]-|Pointer to owner top`-level Ctrl or -NULL is window is not owned.&] -[s3; &] -[s4;%- &] -[s5;:Ctrl`:`:GetTopCtrlOwner`(`)const:%- [@(0.0.255) const]_[_^Ctrl^ Ctrl]_`*[* GetTopCtrlO -wner]()_[@(0.0.255) const]&] -[s2; Equivalent to GetTopCtrl()`->GetOwner() call.&] -[s7;i1120;a17; [*/ Return value]-|Pointer to owner of top`-level Ctrl.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:GetTopCtrlOwner`(`):%- [_^`:`:Ctrl^ Ctrl]_`*[* GetTopCtrlOwner]()&] -[s2;b17;a17; Equivalent to GetTopCtrl()`->GetOwner() call.&] -[s7;i1120;a17; [*/ Return value]-|Pointer to owner of top`-level Ctrl.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:GetOwnerCtrl`(`):%- [_^`:`:Ctrl^ Ctrl]_`*[* GetOwnerCtrl]()&] -[s5;K:Ctrl`:`:GetOwnerCtrl`(`)const:%- [*@(0.0.255) const][*@(64) _][*^`:`:Ctrl^@(64) Ctrl][*@(64) _ -`*][* GetOwnerCtrl][*@(64) ()_][*@(0.0.255) const]&] -[s2;b17;a17; Returns the owner Ctrl. Unlike GetOwner, it returns -actual widget that was used as `"owner`" parameter in Open or -PopUp calls.&] -[s3; &] -[s4;%- &] -[s5;:Ctrl`:`:GetTopWindow`(`)const:%- [@(0.0.255) const]_[_^TopWindow^ TopWindow]_`*[* GetT -opWindow]()_[@(0.0.255) const]&] -[s2; TopWindow that contains this Ctrl.&] -[s7;i1120;a17; [*/ Return value]-|Pointer to TopWindow.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:GetTopWindow`(`):%- [_^`:`:TopWindow^ TopWindow]_`*[* GetTopWindow]()&] -[s2;b17;a17; TopWindow that contains this Ctrl.&] -[s7;i1120;a17; [*/ Return value]-|Pointer to TopWindow.&] -[s3; &] -[s4;%- &] -[s5;:Ctrl`:`:GetMainWindow`(`)const:%- [@(0.0.255) const]_[_^TopWindow^ TopWindow]_`*[* Get -MainWindow]()_[@(0.0.255) const]&] -[s2; Returns main window (one with no owner) that directly or indirectly -owns this Ctrl.&] -[s7;i1120;a17; [*/ Return value]-|Pointer to main window.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:GetMainWindow`(`):%- [_^`:`:TopWindow^ TopWindow]_`*[* GetMainWindow]()&] -[s2;b17;a17; Returns main window (one with no owner) that directly -or indirectly owns this Ctrl.&] -[s7;i1120;a17; [*/ Return value]-|Pointer to main window.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:SetFrame`(int`,CtrlFrame`&`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* SetFrame]( -[@(0.0.255) int]_[*@3 i], [_^`:`:CtrlFrame^ CtrlFrame][@(0.0.255) `&]_[*@3 frm])&] -[s2;b17;a17; Sets Frame at given position. If there is no such position -yet, required number of NullFrame frames is added. Only reference -to frame is stored, that means that frame must exists during -the time it is used in Ctrl. Also, some frames can also be used -for multiple Ctrls.&] -[s7;i1120;a17; [%-*C@3 i]-|Position. First frame with i `=`= 0 is outermost.&] -[s7;i1120;a17; [%-*C@3 frm]-|Reference to frame.&] -[s7;i1120;a17; [*/ Return value]-|Returns `*this to allow chaining of -method calls.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:SetFrame`(CtrlFrame`&`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* SetFrame]([_^`:`:CtrlFrame^ C -trlFrame][@(0.0.255) `&]_[*@3 frm])&] -[s2;b17;a17; Sets frame at position 0.&] -[s7;i1120;a17; [%-*C@3 frm]-|Reference to frame.&] -[s7;i1120;a17; [*/ Return value]-|`*this.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:AddFrame`(CtrlFrame`&`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* AddFrame]([_^`:`:CtrlFrame^ C -trlFrame][@(0.0.255) `&]_[*@3 frm])&] -[s2;b17;a17; Adds frame at inner`-most position.&] -[s7;i1120;a17; [%-*C@3 frm]-|Reference to frame.&] -[s7;i1120;a17; [*/ Return value]-|`*this.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:GetFrame`(int`)const:%- [@(0.0.255) const]_[_^`:`:CtrlFrame^ CtrlFrame][@(0.0.255) `& -]_[* GetFrame]([@(0.0.255) int]_[*@3 i]_`=_[@3 0])_[@(0.0.255) const]&] -[s2;b17;a17; Returns reference to frame at given position.&] -[s7;i1120;a17; [%-*C@3 i]-|Position.&] -[s7;i1120;a17; [*/ Return value]-|Reference to frame.&] -[s3; &] -[s4;%- &] -[s5;:Ctrl`:`:GetFrame`(int`):%- [_^CtrlFrame^ CtrlFrame][@(0.0.255) `&]_[* GetFrame]([@(0.0.255) i -nt]_[*@3 i]_`=_[@3 0])&] -[s2; Returns reference to frame at given position.&] -[s7;i1120;a17; [%-*C@3 i]-|Position.&] -[s7;i1120;a17; [*/ Return value]-|Reference to frame.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:RemoveFrame`(int`):%- [@(0.0.255) void]_[* RemoveFrame]([@(0.0.255) int]_[*@3 i]) -&] -[s2; Removes frame at given position.&] -[s7;i1120;a17; [%-*C@3 i]-|Index of frame.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:RemoveFrame`(CtrlFrame`&`):%- [@(0.0.255) void]_[* RemoveFrame]([_^`:`:CtrlFrame^ C -trlFrame][@(0.0.255) `&]_[*@3 frm])&] -[s2;b17;a17; Removes first frame equal to [@3 frm]. Equality means -here that pointers to both frames are the same (it is same instance).&] -[s7;i1120;a17; [%-*C@3 frm]-|Frame to remove.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:InsertFrame`(int`,CtrlFrame`&`):%- [@(0.0.255) void]_[* InsertFrame]([@(0.0.255) i -nt]_[*@3 i], [_^`:`:CtrlFrame^ CtrlFrame][@(0.0.255) `&]_[*@3 frm])&] -[s2;b17;a17; Inserts frame at given position.&] -[s7;i1120;a17; [%-*C@3 i]-|Position.&] -[s7;i1120;a17; [%-*C@3 frm]-|Reference to frame.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:FindFrame`(CtrlFrame`&`):%- [@(0.0.255) int]_[* FindFrame]([_^`:`:CtrlFrame^ C -trlFrame][@(0.0.255) `&]_[*@3 frm])&] -[s2;b17;a17; Finds first frame equal to [@3 frm]. Equality means here -that pointers to both frames are the same (it is same instance).&] -[s7;i1120;a17; [%-*C@3 frm]-|Frame to find.&] -[s7;i1120;a17; [*/ Return value]-|Index of frame or negative value if -frame is not found.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:GetFrameCount`(`)const:%- [@(0.0.255) int]_[* GetFrameCount]()_[@(0.0.255) con -st]&] -[s2;b17;a17; Returns count of frames in Ctrl.&] -[s7;i1120;a17; [*/ Return value]-|Count of frames.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:ClearFrames`(`):%- [@(0.0.255) void]_[* ClearFrames]()&] -[s2;b17;a17; Removes all frames from Ctrl. Frame at position 0 then -added and set to NullFrame.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:IsOpen`(`)const:%- [@(0.0.255) bool]_[* IsOpen]()_[@(0.0.255) const]&] -[s2;b17;a17; Checks whether top`-level Ctrl of this Ctrl is open.&] -[s7;i1120;a17; [*/ Return value]-|true if open.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:Shutdown`(`):%- [@(0.0.255) void]_[* Shutdown]()&] -[s2;b17;a17; Sets internal flag indicating that Ctrl is being destructed. -This is rarely used to solve some destruction order problems.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:IsShutdown`(`)const:%- [@(0.0.255) bool]_[* IsShutdown]()_[@(0.0.255) const]&] -[s2;b17;a17; Checks whether internal shutdown flag is set.&] -[s7;i1120;a17; [*/ Return value]-|True if in shutdown mode.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:SetPos`(Ctrl`:`:LogPos`,bool`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* SetPos]( -[_^`:`:Ctrl`:`:LogPos^ LogPos]_[*@3 p], [@(0.0.255) bool]_[*@3 inframe])&] -[s2;b17;a17; Sets [^topic`:`/`/CtrlCore`/src`/LogPos`$en`-us^ logical -position] of Ctrl. If Ctrl is top`-level, logical position must -be of left`-top type.&] -[s7;i1120;a17; [%-*C@3 p]-|Logical position.&] -[s7;i1120;a17; [%-*C@3 inframe]-|If true, Ctrl is placed into [^topic`:`/`/CtrlCore`/src`/AboutFrames`$en`-us^ f -rame area] instead of view area&] -[s7;i1120;a17; [*/ Return value]-|`*this.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:SetPos`(Ctrl`:`:LogPos`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* SetPos]([_^`:`:Ctrl`:`:LogPos^ L -ogPos]_[*@3 p])&] -[s2;b17;a17; Sets logical position of Ctrl in view area.&] -[s7;i1120;a17; [%-*C@3 p]-|Logical position.&] -[s7;i1120;a17; [*/ Return value]-|`*this.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:SetPos`(Ctrl`:`:Logc`,Ctrl`:`:Logc`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* S -etPos]([_^`:`:Ctrl`:`:Logc^ Logc]_[*@3 x], [_^`:`:Ctrl`:`:Logc^ Logc]_[*@3 y])&] -[s2;b17;a17; Sets logical position by individual coordinates (in -view area).&] -[s7;i1120;a17; [%-*C@3 x]-|Horizontal logical position.&] -[s7;i1120;a17; [%-*C@3 y]-|Vertical logical postion.&] -[s7;i1120;a17; [*/ Return value]-|`*this.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:SetPosX`(Ctrl`:`:Logc`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* SetPosX]([_^`:`:Ctrl`:`:Logc^ L -ogc]_[*@3 x])&] -[s2;b17;a17; Sets horizontal logical position only (in view area).&] -[s7;i1120;a17; [%-*C@3 x]-|Horizontal logical position.&] -[s7;i1120;a17; [*/ Return value]-|`*this.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:SetPosY`(Ctrl`:`:Logc`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* SetPosY]([_^`:`:Ctrl`:`:Logc^ L -ogc]_[*@3 y])&] -[s2;b17;a17; Sets vertical logical position only (in view area).&] -[s7;i1120;a17; [%-*C@3 y]-|Vertical logical position.&] -[s7;i1120;a17; [*/ Return value]-|`*this.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:SetRect`(const Rect`&`):%- [@(0.0.255) void]_[* SetRect]([@(0.0.255) const]_[_^`:`:Rect^ R -ect][@(0.0.255) `&]_[*@3 r])&] -[s2;b17;a17; Sets left`-top logical position (in view area).&] -[s7;i1120;a17; [%-*C@3 r]-|Rectangle determines left`-top position.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:SetRect`(int`,int`,int`,int`):%- [@(0.0.255) void]_[* SetRect]([@(0.0.255) int -]_[*@3 x], [@(0.0.255) int]_[*@3 y], [@(0.0.255) int]_[*@3 cx], [@(0.0.255) int]_[*@3 cy])&] -[s2;b17;a17; Sets left`-top logical position (in view area).&] -[s7;i1120;a17; [%-*C@3 x]-|Distance between parent rectangle left`-edge -and Ctrl.&] -[s7;i1120;a17; [%-*C@3 y]-|Distance between parent rectangle top`-edge -and Ctrl.&] -[s7;i1120;a17; [%-*C@3 cx]-|Horizontal size.&] -[s7;i1120;a17; [%-*C@3 cy]-|Vertical size.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:SetRectX`(int`,int`):%- [@(0.0.255) void]_[* SetRectX]([@(0.0.255) int]_[*@3 x], - [@(0.0.255) int]_[*@3 cx])&] -[s2;b17;a17; Sets left horizontal logical position (in view area).&] -[s7;i1120;a17; [%-*C@3 x]-|Distance between parent rectangle left`-edge -and Ctrl.&] -[s7;i1120;a17; [%-*C@3 cx]-|Horizontal size.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:SetRectY`(int`,int`):%- [@(0.0.255) void]_[* SetRectY]([@(0.0.255) int]_[*@3 y], - [@(0.0.255) int]_[*@3 cy])&] -[s2;b17;a17; Sets top vertical logical position (in view area).&] -[s7;i1120;a17; [%-*C@3 y]-|Distance between parent rectangle top`-edge -and Ctrl.&] -[s7;i1120;a17; [%-*C@3 cy]-|Vertical size.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:SetFramePos`(Ctrl`:`:LogPos`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* SetFrame -Pos]([_^`:`:Ctrl`:`:LogPos^ LogPos]_[*@3 p])&] -[s2;b17;a17; Sets logical position of Ctrl in frame area.&] -[s7;i1120;a17; [%-*C@3 p]-|Logical position.&] -[s7;i1120;a17; [*/ Return value]-|`*this.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:SetFramePos`(Ctrl`:`:Logc`,Ctrl`:`:Logc`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `& -]_[* SetFramePos]([_^`:`:Ctrl`:`:Logc^ Logc]_[*@3 x], [_^`:`:Ctrl`:`:Logc^ Logc]_[*@3 y])&] -[s2;b17;a17; Sets logical position by individual coordinates (in -frame area).&] -[s7;i1120;a17; [%-*C@3 x]-|Horizontal logical position.&] -[s7;i1120;a17; [%-*C@3 y]-|Vertical logical postion.&] -[s7;i1120;a17; [*/ Return value]-|`*this.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:SetFramePosX`(Ctrl`:`:Logc`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* SetFrameP -osX]([_^`:`:Ctrl`:`:Logc^ Logc]_[*@3 x])&] -[s2;b17;a17; Sets horizontal logical position only (in frame area).&] -[s7;i1120;a17; [%-*C@3 x]-|Horizontal logical position.&] -[s7;i1120;a17; [*/ Return value]-|`*this.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:SetFramePosY`(Ctrl`:`:Logc`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* SetFrameP -osY]([_^`:`:Ctrl`:`:Logc^ Logc]_[*@3 y])&] -[s2;b17;a17; Sets vertical logical position only (in frame area).&] -[s7;i1120;a17; [%-*C@3 y]-|Vertical logical position.&] -[s7;i1120;a17; [*/ Return value]-|`*this.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:SetFrameRect`(const Rect`&`):%- [@(0.0.255) void]_[* SetFrameRect]([@(0.0.255) c -onst]_[_^`:`:Rect^ Rect][@(0.0.255) `&]_[*@3 r])&] -[s2;b17;a17; Sets left`-top logical position (in frame area).&] -[s7;i1120;a17; [%-*C@3 r]-|Rectangle determines left`-top position.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:SetFrameRect`(int`,int`,int`,int`):%- [@(0.0.255) void]_[* SetFrameRect]([@(0.0.255) i -nt]_[*@3 x], [@(0.0.255) int]_[*@3 y], [@(0.0.255) int]_[*@3 cx], [@(0.0.255) int]_[*@3 cy])&] -[s2;b17;a17; Sets left`-top logical position (in frame area).&] -[s7;i1120;a17; [%-*C@3 x]-|Distance between parent rectangle left`-edge -and Ctrl.&] -[s7;i1120;a17; [%-*C@3 y]-|Distance between parent rectangle top`-edge -and Ctrl.&] -[s7;i1120;a17; [%-*C@3 cx]-|Horizontal size.&] -[s7;i1120;a17; [%-*C@3 cy]-|Vertical size.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:SetFrameRectX`(int`,int`):%- [@(0.0.255) void]_[* SetFrameRectX]([@(0.0.255) i -nt]_[*@3 x], [@(0.0.255) int]_[*@3 cx])&] -[s2;b17;a17; Sets left horizontal logical position (in frame area).&] -[s7;i1120;a17; [%-*C@3 x]-|Distance between parent rectangle left`-edge -and Ctrl.&] -[s7;i1120;a17; [%-*C@3 cx]-|Horizontal size.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:SetFrameRectY`(int`,int`):%- [@(0.0.255) void]_[* SetFrameRectY]([@(0.0.255) i -nt]_[*@3 y], [@(0.0.255) int]_[*@3 cy])&] -[s2;b17;a17; Sets top vertical logical position (in frame area).&] -[s7;i1120;a17; [%-*C@3 y]-|Distance between parent rectangle top`-edge -and Ctrl.&] -[s7;i1120;a17; [%-*C@3 cy]-|Vertical size.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:InFrame`(`)const:%- [@(0.0.255) bool]_[* InFrame]()_[@(0.0.255) const]&] -[s7;i1120;a17; [*/ Return value]-|true when Ctrl has position in frame -area.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:InView`(`)const:%- [@(0.0.255) bool]_[* InView]()_[@(0.0.255) const]&] -[s7;i1120;a17; [*/ Return value]-|true when Ctrl has position in view -area.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:GetPos`(`)const:%- [_^`:`:Ctrl`:`:LogPos^ LogPos]_[* GetPos]()_[@(0.0.255) con -st]&] -[s7;i1120;a17; [*/ Return value]-|Logical position of Ctrl&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:RefreshLayout`(`):%- [@(0.0.255) void]_[* RefreshLayout]()&] -[s2;b17;a17; Recomputes layout for Ctrl. This includes calling FrameLayout -for all frames and calling Layout virtual method. Layout of child -widgets is recomputed if their size changes.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:RefreshLayoutDeep`(`):%- [@(0.0.255) void]_[* RefreshLayoutDeep]()&] -[s2; Recomputes layout for the whole Ctrl tree `- unlike RefreshLayout, -recomputes layout of all descendants regardless whether their -size has changed.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:RefreshParentLayout`(`):%- [@(0.0.255) void]_[* RefreshParentLayout]()&] -[s2;b17;a17; If Ctrl has parent, calls parent`->RefreshLayout().&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:UpdateLayout`(`):%- [@(0.0.255) void]_[* UpdateLayout]()&] -[s2; Recomputes layout of widget by recalculating its frame coverage, -then, if view size has changed, calls Layout method (this is -the difference from RefreshLayout, which calls Layout always). -Layout of child widgets is recomputed if their size changes.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:UpdateParentLayout`(`):%- [@(0.0.255) void]_[* UpdateParentLayout]()&] -[s2; Calls UpdateLayout for parent (if exists).&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:LeftPos`(int`,int`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* LeftPos]([@(0.0.255) i -nt]_[*@3 a], [@(0.0.255) int]_[*@3 size]_`=_STDSIZE)&] -[s2;b17;a17; Sets left horizontal position (in view area).&] -[s7;i1120;a17; [%-*C@3 a]-|Distance from left border of parent.&] -[s7;i1120;a17; [%-*C@3 size]-|Horizontal size.&] -[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:RightPos`(int`,int`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* RightPos]([@(0.0.255) i -nt]_[*@3 a], [@(0.0.255) int]_[*@3 size]_`=_STDSIZE)&] -[s2;b17;a17; Sets right horizontal position (in view area).&] -[s7;i1120;a17; [%-*C@3 a]-|Distance from the right border of parent.&] -[s7;i1120;a17; [%-*C@3 size]-|Horizontal size.&] -[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:TopPos`(int`,int`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* TopPos]([@(0.0.255) i -nt]_[*@3 a], [@(0.0.255) int]_[*@3 size]_`=_STDSIZE)&] -[s2;b17;a17; Sets top vertical position (in view area).&] -[s7;i1120;a17; [%-*C@3 a]-|Distance from the top border of parent.&] -[s7;i1120;a17; [%-*C@3 size]-|Vertical size.&] -[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:BottomPos`(int`,int`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* BottomPos]([@(0.0.255) i -nt]_[*@3 a], [@(0.0.255) int]_[*@3 size]_`=_STDSIZE)&] -[s2;b17;a17; Sets bottom vertical position (in view area).&] -[s7;i1120;a17; [%-*C@3 a]-|Distance from the bottom border of parent.&] -[s7;i1120;a17; [%-*C@3 size]-|Vertical size.&] -[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:HSizePos`(int`,int`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* HSizePos]([@(0.0.255) i -nt]_[*@3 a]_`=_[@3 0], [@(0.0.255) int]_[*@3 b]_`=_[@3 0])&] -[s2;b17;a17; Sets horizontal sizing position (in view area).&] -[s7;i1120;a17; [%-*C@3 a]-|Distance from left border of parent.&] -[s7;i1120;a17; [%-*C@3 b]-|Distance from right border of parent.&] -[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:VSizePos`(int`,int`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* VSizePos]([@(0.0.255) i -nt]_[*@3 a]_`=_[@3 0], [@(0.0.255) int]_[*@3 b]_`=_[@3 0])&] -[s2;b17;a17; Sets vertical sizing position (in view area).&] -[s7;i1120;a17; [%-*C@3 a]-|Distance form top border of parent.&] -[s7;i1120;a17; [%-*C@3 b]-|Distance from bottom border of parent.&] -[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:SizePos`(`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* SizePos]()&] -[s2;b17;a17; Same as VSizePos().HSizePos().&] -[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:HCenterPos`(int`,int`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* HCenterPos]([@(0.0.255) i -nt]_[*@3 size]_`=_STDSIZE, [@(0.0.255) int]_[*@3 delta]_`=_[@3 0])&] -[s2;b17;a17; Horizontal centered position (in view area).&] -[s7;i1120;a17; [%-*C@3 size]-|Horizontal size.&] -[s7;i1120;a17; [%-*C@3 delta]-|Offset from centered position (rarely -used).&] -[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:VCenterPos`(int`,int`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* VCenterPos]([@(0.0.255) i -nt]_[*@3 size]_`=_STDSIZE, [@(0.0.255) int]_[*@3 delta]_`=_[@3 0])&] -[s2;b17;a17; Vertical centered position (in view area).&] -[s7;i1120;a17; [%-*C@3 size]-|Vertical size.&] -[s7;i1120;a17; [%-*C@3 delta]-|Offset from centered position (rarely -used).&] -[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:LeftPosZ`(int`,int`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* LeftPosZ]([@(0.0.255) i -nt]_[*@3 a], [@(0.0.255) int]_[*@3 size]_`=_STDSIZE)&] -[s2;b17;a17; Sets left horizontal [/ zoomed ]position (in view area). -Distances are recalculated using zoom factor to accommodate size -differences between standard font used during layout design and -actual standard font.&] -[s7;i1120;a17; [%-*C@3 a]-|Distance from the left border of parent.&] -[s7;i1120;a17; [%-*C@3 size]-|Horizontal size.&] -[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:RightPosZ`(int`,int`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* RightPosZ]([@(0.0.255) i -nt]_[*@3 a], [@(0.0.255) int]_[*@3 size]_`=_STDSIZE)&] -[s2;b17;a17; Sets right horizontal [/ zoomed ]position (in view area). -Distances are recalculated using zoom factor to accommodate size -differences between standard font used during layout design and -actual standard font.&] -[s7;i1120;a17; [%-*C@3 a]-|Distance from the right border of parent.&] -[s7;i1120;a17; [%-*C@3 size]-|Horizontal size.&] -[s2;b17;a17; [*/ Return value]-|`*this for method chaining.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:TopPosZ`(int`,int`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* TopPosZ]([@(0.0.255) i -nt]_[*@3 a], [@(0.0.255) int]_[*@3 size]_`=_STDSIZE)&] -[s2;b17;a17; Sets top vertical [/ zoomed ]position (in view area). -Distances are recalculated using zoom factor to accommodate size -differences between standard font used during layout design and -actual standard font.&] -[s7;i1120;a17; [%-*C@3 a]-|Distance from the top border of parent.&] -[s7;i1120;a17; [%-*C@3 size]-|Vertical size.&] -[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:BottomPosZ`(int`,int`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* BottomPosZ]([@(0.0.255) i -nt]_[*@3 a], [@(0.0.255) int]_[*@3 size]_`=_STDSIZE)&] -[s2;b17;a17; Sets bottom vertical [/ zoomed ]position (in view area). -Distances are recalculated using zoom factor to accommodate size -differences between standard font used during layout design and -actual standard font.&] -[s7;i1120;a17; [%-*C@3 a]-|Distance from the bottom border of parent.&] -[s7;i1120;a17; [%-*C@3 size]-|Vertical size.&] -[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:HSizePosZ`(int`,int`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* HSizePosZ]([@(0.0.255) i -nt]_[*@3 a]_`=_[@3 0], [@(0.0.255) int]_[*@3 b]_`=_[@3 0])&] -[s2;b17;a17; Sets vertical [/ zoomed ]sizing position (in view area). -Distances are recalculated using zoom factor to accommodate size -differences between standard font used during layout design and -actual standard font.&] -[s7;i1120;a17; [%-*C@3 a]-|Distance form top border of parent.&] -[s7;i1120;a17; [%-*C@3 b]-|Distance from bottom border of parent.&] -[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:VSizePosZ`(int`,int`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* VSizePosZ]([@(0.0.255) i -nt]_[*@3 a]_`=_[@3 0], [@(0.0.255) int]_[*@3 b]_`=_[@3 0])&] -[s2;b17;a17; Sets vertical [/ zoomed ]sizing position (in view area). -Distances are recalculated using zoom factor to accommodate size -differences between standard font used during layout design and -actual standard font.&] -[s7;i1120;a17; [%-*C@3 a]-|Distance form top border of parent.&] -[s7;i1120;a17; [%-*C@3 b]-|Distance from bottom border of parent.&] -[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:HCenterPosZ`(int`,int`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* HCenterPosZ]([@(0.0.255) i -nt]_[*@3 size]_`=_STDSIZE, [@(0.0.255) int]_[*@3 delta]_`=_[@3 0])&] -[s2;b17;a17; Horizontal centered [/ zoomed ]position (in view area). -Distances are recalculated using zoom factor to accommodate size -differences between standard font used during layout design and -actual standard font.&] -[s7;i1120;a17; [%-*C@3 size]-|Horizontal size.&] -[s7;i1120;a17; [%-*C@3 delta]-|Offset from centered position (rarely -used).&] -[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:VCenterPosZ`(int`,int`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* VCenterPosZ]([@(0.0.255) i -nt]_[*@3 size]_`=_STDSIZE, [@(0.0.255) int]_[*@3 delta]_`=_[@3 0])&] -[s2;b17;a17; Vertical centered [/ zoomed] position (in view area). -Distances are recalculated using zoom factor to accommodate size -differences between standard font used during layout design and -actual standard font.&] -[s7;i1120;a17; [%-*C@3 size]-|Vertical size.&] -[s7;i1120;a17; [%-*C@3 delta]-|Offset from centered position (rarely -used).&] -[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:GetRect`(`)const:%- [_^`:`:Rect^ Rect]_[* GetRect]()_[@(0.0.255) const]&] -[s7;i1120;a17; [*/ Return value]-|Returns current position in parent. -It is either position in view or frame coordinates.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:GetScreenRect`(`)const:%- [_^`:`:Rect^ Rect]_[* GetScreenRect]()_[@(0.0.255) c -onst]&] -[s7;i1120;a17; [*/ Return value]-|Returns current position in absolute -screen coordinates.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:GetView`(`)const:%- [_^`:`:Rect^ Rect]_[* GetView]()_[@(0.0.255) const]&] -[s7;i1120;a17; [*/ Return value]-|Returns position of view rectangle -in frame coordinates.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:GetScreenView`(`)const:%- [_^`:`:Rect^ Rect]_[* GetScreenView]()_[@(0.0.255) c -onst]&] -[s7;i1120;a17; [*/ Return value]-|Returns position of view rectangle -in absolute screen coordinates.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:GetSize`(`)const:%- [_^`:`:Size^ Size]_[* GetSize]()_[@(0.0.255) const]&] -[s7;i1120;a17; [*/ Return value]-|Returns size of view rectangle of -Ctrl.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:GetVisibleScreenRect`(`)const:%- [_^`:`:Rect^ Rect]_[* GetVisibleScreenRect]( -)_[@(0.0.255) const]&] -[s7;i1120;a17; [*/ Return value]-|Returns current position in parent -intersected with either parent`'s visible screen rectangle for -frame Ctrl (as obtained using GetVisibleScreenRect) or parent`'s -screen view rectangle for view Ctrl (obtained using GetVisibleScreenView). -This method is useful when rectangle of Ctrl exceeds it`'s parent -area `- in this case this method returns part of Ctrl that is -not clipped out by parent`'s are limits.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:GetVisibleScreenView`(`)const:%- [_^`:`:Rect^ Rect]_[* GetVisibleScreenView]( -)_[@(0.0.255) const]&] -[s7;i1120;a17; [*/ Return value]-|Returns current position of view area -intersected with either parent`'s visible screen rectangle for -frame Ctrl (as obtained using GetVisibleScreenRect) or parent`'s -screen view rectangle for view Ctrl (obtained using GetVisibleScreenView). -This method is useful when rectangle of Ctrl exceeds it`'s parent -area `- in this case this method returns part of Ctrl view that -is not clipped out by parent`'s are limits.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:GetWorkArea`(`)const:%- [_^Rect^ Rect]_[* GetWorkArea]()_[@(0.0.255) const]&] -[s2; Returns the work area (the maximum rectangle that window can -use) for screen that this window is in.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:AddFrameSize`(int`,int`)const:%- [_^`:`:Size^ Size]_[* AddFrameSize]([@(0.0.255) i -nt]_[*@3 cx], [@(0.0.255) int]_[*@3 cy])_[@(0.0.255) const]&] -[s2;b17;a17; Computes size of Ctrl for given size of view and actual -set of frames.&] -[s7;i1120;a17; [%-*C@3 cx]-|Width.&] -[s7;i1120;a17; [%-*C@3 cy]-|Height.&] -[s7;i1120;a17; [*/ Return value]-|Size of Ctrl that would have requested -view size.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:AddFrameSize`(Size`)const:%- [_^`:`:Size^ Size]_[* AddFrameSize]([_^`:`:Size^ S -ize]_[*@3 sz])_[@(0.0.255) const]&] -[s2;b17;a17; Same as AddFrameSize(sz.cx, sz.cy).&] -[s7;i1120;a17; [%-*C@3 sz]-|Size.&] -[s7;i1120;a17; [*/ Return value]-|Size of Ctrl that would have requested -view size.&] -[s3; &] -[s4;%- &] -[s5;:Ctrl`:`:Refresh`(const Rect`&`):%- [@(0.0.255) void]_[* Refresh]([@(0.0.255) const]_[_^Rect^ R -ect][@(0.0.255) `&]_[*@3 r])&] -[s2; Marks requested rectangle of view area for repainting. Actual -repaint is deferred for performance reasons.&] -[s7;i1120;a17; [%-*C@3 r]-|Rectangle in view.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:Refresh`(int`,int`,int`,int`):%- [@(0.0.255) void]_[* Refresh]([@(0.0.255) int -]_[*@3 x], [@(0.0.255) int]_[*@3 y], [@(0.0.255) int]_[*@3 cx], [@(0.0.255) int]_[*@3 cy])&] -[s2;b17;a17; Marks requested rectangle of view area for repainting. -Actual repaint is deferred for performance reasons.&] -[s7;i1120;a17; [%-*C@3 x]-|Left position of rectangle.&] -[s7;i1120;a17; [%-*C@3 y]-|Top position of rectangle.&] -[s7;i1120;a17; [%-*C@3 cx]-|Width.&] -[s7;i1120;a17; [%-*C@3 cy]-|Height.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:Refresh`(`):%- [@(0.0.255) void]_[* Refresh]()&] -[s2;b17;a17; Marks whole view area for repainting.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:IsFullRefresh`(`)const:%- [@(0.0.255) bool]_[* IsFullRefresh]()_[@(0.0.255) co -nst]&] -[s7;i1120;a17; [*/ Return value]-|true when whole view area is marked -for repainting but was not repainted yet.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:RefreshFrame`(const Rect`&`):%- [@(0.0.255) void]_[* RefreshFrame]([@(0.0.255) c -onst]_[_^`:`:Rect^ Rect][@(0.0.255) `&]_[*@3 r])&] -[s2;b17;a17; Marks requested rectangle of frame area for repainting. -Actual repainting is deferred for performance reasons.&] -[s7;i1120;a17; [%-*C@3 r]-|Area to repaint.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:RefreshFrame`(int`,int`,int`,int`):%- [@(0.0.255) void]_[* RefreshFrame]([@(0.0.255) i -nt]_[*@3 x], [@(0.0.255) int]_[*@3 y], [@(0.0.255) int]_[*@3 cx], [@(0.0.255) int]_[*@3 cy])&] -[s2;b17;a17; Marks requested rectangle of frame area for repainting. -Actual repaint is deferred for performance reasons.&] -[s7;i1120;a17; [%-*C@3 x]-|Left position of rectangle.&] -[s7;i1120;a17; [%-*C@3 y]-|Top position of rectangle.&] -[s7;i1120;a17; [%-*C@3 cx]-|Width.&] -[s7;i1120;a17; [%-*C@3 cy]-|Height.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:RefreshFrame`(`):%- [@(0.0.255) void]_[* RefreshFrame]()&] -[s2;b17;a17; Marks whole Ctrl area for repainting.&] -[s3; &] -[s4;%- &] -[s5;:Ctrl`:`:ScrollView`(const Rect`&`,int`,int`):%- [@(0.0.255) void]_[* ScrollView]([@(0.0.255) c -onst]_[_^Rect^ Rect][@(0.0.255) `&]_[*@3 r], [@(0.0.255) int]_[*@3 dx], -[@(0.0.255) int]_[*@3 dy])&] -[s2; Marks requested view rectangle for repainting, indicating that -part of this repaint can be done by scrolling current content -of rectangle. Note that actual scroll is deferred to repaint -and that U`+`+ is still allowed to solve the situation by repainting -rather than scrolling.&] -[s7;i1120;a17; [%-*C@3 r]-|Area for repainting.&] -[s7;i1120;a17; [%-*C@3 dx]-|Horizontal scroll.&] -[s7;i1120;a17; [%-*C@3 dy]-|Vertical scroll.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:ScrollView`(int`,int`,int`,int`,int`,int`):%- [@(0.0.255) void]_[* ScrollVie -w]([@(0.0.255) int]_[*@3 x], [@(0.0.255) int]_[*@3 y], [@(0.0.255) int]_[*@3 cx], -[@(0.0.255) int]_[*@3 cy], [@(0.0.255) int]_[*@3 dx], [@(0.0.255) int]_[*@3 dy])&] -[s2;b17;a17; Marks requested view rectangle for repainting, indicating -that part of this repaint can be done by scrolling current content -of rectangle. Note that actual scroll is deferred to repaint -and that U`+`+ is still allowed to solve the situation by repainting -rather than scrolling.&] -[s7;i1120;a17; [%-*C@3 r]-|Area for repainting.&] -[s7;i1120;a17; [%-*C@3 x]-|Left position of rectangle.&] -[s7;i1120;a17; [%-*C@3 y]-|Top position of rectangle.&] -[s7;i1120;a17; [%-*C@3 cx]-|Width.&] -[s7;i1120;a17; [%-*C@3 cy]-|Height.&] -[s7;i1120;a17; [%-*C@3 dx]-|Horizontal scroll.&] -[s7;i1120;a17; [%-*C@3 dy]-|Vertical scroll.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:ScrollView`(int`,int`):%- [@(0.0.255) void]_[* ScrollView]([@(0.0.255) int]_[*@3 d -x], [@(0.0.255) int]_[*@3 dy])&] -[s2;b17;a17; Marks while view area for repainting, indicating that -part of this repaint can be done by scrolling current content -of rectangle. Note that actual scroll is deferred to repaint -and that U`+`+ is still allowed to solve the situation by repainting -rather than scrolling.&] -[s7;i1120;a17; [%-*C@3 dx]-|Horizontal scroll.&] -[s7;i1120;a17; [%-*C@3 dy]-|Vertical scroll.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:ScrollView`(const Rect`&`,Size`):%- [@(0.0.255) void]_[* ScrollView]([@(0.0.255) c -onst]_[_^`:`:Rect^ Rect][@(0.0.255) `&]_[*@3 r], [_^`:`:Size^ Size]_[*@3 delta])&] -[s2;b17;a17; Same as ScrollView(r, delta.cx, delta.cy).&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:ScrollView`(Size`):%- [@(0.0.255) void]_[* ScrollView]([_^`:`:Size^ Size]_[*@3 d -elta])&] -[s2;b17;a17; Same as ScrollView(delta.cx, delta.cy).&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:Sync`(`):%- [@(0.0.255) void]_[* Sync]()&] -[s2;b17;a17; Forces immediate repainting of areas marked using Refresh, -RefreshFrame or ScrollView methods.&] -[s3; &] -[s4;%- &] -[s5;:Ctrl`:`:Sync`(const Rect`&`):%- [@(0.0.255) void]_[* Sync]([@(0.0.255) const]_[_^Rect^ R -ect][@(0.0.255) `&]_[*@3 r])&] -[s2; Forces immediate repainting of areas marked using Refresh, RefreshFrame -or ScrollView methods, limited with intersection of given rectangle.&] -[s7;i1120;a17; [%-*C@3 r]-|Rectangle.&] -[s3; &] -[s4;%- &] -[s5;:Ctrl`:`:OverrideCursor`(const Image`&`):%- [@(0.0.255) static] -[_^Image^ Image]_[* OverrideCursor]([@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 m -])&] -[s2; Overrides mouse cursor to [%-*@3 m]. To end the override, call -it again with the Image returned by the override call.&] -[s2; &] -[s4;%- &] -[s5;:Ctrl`:`:DrawCtrl`(Draw`&`,int`,int`):%- [@(0.0.255) void]_[* DrawCtrl]([_^Draw^ Draw][@(0.0.255) `& -]_[*@3 w], [@(0.0.255) int]_[*@3 x]_`=_[@3 0], [@(0.0.255) int]_[*@3 y]_`=_[@3 0])&] -[s2; Draws Ctrl at specified position. This is intended for utility -purposes like taking screen`-shots. This version Draws Ctrl [/ without] -background (supplied by parent).&] -[s7;i1120;a17; [%-*C@3 w]-|Target Draw.&] -[s7;i1120;a17; [%-*C@3 x, ][*C@3 y]-|Position.&] -[s3; &] -[s4;%- &] -[s5;:Ctrl`:`:DrawCtrlWithParent`(Draw`&`,int`,int`):%- [@(0.0.255) void]_[* DrawCtrlWithP -arent]([_^Draw^ Draw][@(0.0.255) `&]_[*@3 w], [@(0.0.255) int]_[*@3 x]_`=_[@3 0], -[@(0.0.255) int]_[*@3 y]_`=_[@3 0])&] -[s2; Draws Ctrl at specified position. This is intended for utility -purposes like taking screen`-shots. This version Draws Ctrl [/ with] -background (supplied by parent).&] -[s7;i1120;a17; [%-*C@3 w]-|Target Draw.&] -[s7;i1120;a17; [%-*C@3 x, ][*C@3 y]-|Position.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:HasChild`(Ctrl`*`)const:%- [@(0.0.255) bool]_[* HasChild]([_^`:`:Ctrl^ Ctrl]_`* -[*@3 ctrl])_[@(0.0.255) const]&] -[s2;b17;a17; Tests whether Ctrl has specified [/ direct] child.&] -[s7;i1120;a17; [%-*C@3 ctrl]-|Child.&] -[s7;i1120;a17; [*/ Return value]-|true if ctrl is child.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:HasChildDeep`(Ctrl`*`)const:%- [@(0.0.255) bool]_[* HasChildDeep]([_^`:`:Ctrl^ C -trl]_`*[*@3 ctrl])_[@(0.0.255) const]&] -[s2;b17;a17; Tests whether Ctrl has specified ctrl in its child tree -(direct or indirect).&] -[s7;i1120;a17; [%-*C@3 ctrl]-|Child.&] -[s7;i1120;a17; [*/ Return value]-|true if ctrl is in child tree.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:IgnoreMouse`(bool`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* IgnoreMouse]([@(0.0.255) b -ool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2;b17;a17; Sets ignore`-mouse flag. When active, Ctrl is ignored -for mouse input. That is important for static Ctrls that cover -other Ctrls, like LabelBox `- this flag ensures, that mouse input -is not consumed by LabelBox, but is distributed to Ctrls that -lay inside it.&] -[s7;i1120;a17; [%-*C@3 b]-|Value of flag.&] -[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:NoIgnoreMouse`(`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* NoIgnoreMouse]()&] -[s2;b17;a17; Same as IgnoreMouse(false).&] -[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:IsIgnoreMouse`(`)const:%- [@(0.0.255) bool]_[* IsIgnoreMouse]()_[@(0.0.255) co -nst]&] -[s2; Returns the ignore`-mouse flag (see IgnoreMouse).&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:HasMouse`(`)const:%- [@(0.0.255) bool]_[* HasMouse]()_[@(0.0.255) const]&] -[s7;i1120;a17; [*/ Return value]-|true when Ctrl is target for mouse -events.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:HasMouseDeep`(`)const:%- [@(0.0.255) bool]_[* HasMouseDeep]()_[@(0.0.255) cons -t]&] -[s2; Returns true if Ctrl or any of its descendants is target for -mouse events.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:HasMouseInFrame`(const Rect`&`)const:%- [@(0.0.255) bool]_[* HasMouseInFrame -]([@(0.0.255) const]_[_^Rect^ Rect][@(0.0.255) `&]_[*@3 r])_[@(0.0.255) const]&] -[s7;i1120;a17; [%-*C@3 r]-|rectangle in frame area.&] -[s7;i1120;a17; [*/ Return value]-|true when Ctrl is target for mouse -events and mouse pointer is inside specified frame area rectangle.&] -[s3; &] -[s4;%- &] -[s5;:Ctrl`:`:HasMouseIn`(const Rect`&`)const:%- [@(0.0.255) bool]_[* HasMouseIn]([@(0.0.255) c -onst]_[_^Rect^ Rect][@(0.0.255) `&]_[*@3 r])_[@(0.0.255) const]&] -[s2; Returns true when Ctrl is target for mouse events and mouse -pointer is inside specified view area rectangle.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:GetMouseViewPos`(`)const:%- [_^Point^ Point]_[* GetMouseViewPos]()_[@(0.0.255) c -onst]&] -[s2; Returns the position of mouse relative to the view area. Note -that the result can negative point or point outside &] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:GetMouseCtrl`(`):%- [@(0.0.255) static] [_^`:`:Ctrl^ Ctrl]_`*[* GetMouseCtrl]( -)&] -[s7;i1120;a17; Returns current target for mouse events.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:IgnoreMouseClick`(`):%- [@(0.0.255) static] [@(0.0.255) void]_[* IgnoreMouseCl -ick]()&] -[s2;b17;a17; Forces framework to ignore all mouse events till next -button`-up event. This is good tool to solve some corner cases, -like popup window closed by button click when mouse pointer is -over its owner as well (TopWindow`::Close calls this function).&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:IgnoreMouseUp`(`):%- [@(0.0.255) static] [@(0.0.255) void]_[* IgnoreMouseUp]() -&] -[s2;b17;a17; Invokes IgnoreMouseClick if some of mouse buttons is -pressed.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:UnIgnoreMouse`(`):%- [@(0.0.255) static] [@(0.0.255) void]_[* UnIgnoreMouse]() -&] -[s2; Cancels the effect or IgnoreMouseClick and IgnoreMouseUp (clicks -are not ignored anymore).&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:SetCapture`(`):%- [@(0.0.255) bool]_[* SetCapture]()&] -[s2;b17;a17; Sets mouse capture for Ctrl. This method should be called -in MouseLeft or MouseRight methods only. Ctrl will receive all -mouse input until ReleaseCapture is called or mouse button is -released.&] -[s7;i1120;a17; [*/ Return value]-|True when SetCapture was successful -(usually you can ignore this return value).&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:ReleaseCapture`(`):%- [@(0.0.255) bool]_[* ReleaseCapture]()&] -[s2;b17;a17; Release Ctrl`'s mouse capture.&] -[s7;i1120;a17; [*/ Return value]-|True when mouse capture was released.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:HasCapture`(`)const:%- [@(0.0.255) bool]_[* HasCapture]()_[@(0.0.255) const]&] -[s7;i1120;a17; [*/ Return value]-|True if Ctrl has mouse capture.&] -[s3;%- &] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:GetCaptureCtrl`(`):%- [@(0.0.255) static] [_^Ctrl^ Ctrl]_`*[* GetCaptureCtrl]( -)&] -[s2; Returns a pointer to the Ctrl that is currently capturing the -mouse.&] -[s3; &] -[s4;%- &] -[s5;:Ctrl`:`:ReleaseCtrlCapture`(`):%- [@(0.0.255) static] [@(0.0.255) bool]_[* ReleaseCtrl -Capture]()&] -[s2;b17;a17; If any of application`'s Ctrls has mouse capture, it -is released.&] -[s7;i1120;a17; [*/ Return value]-|True if mouse capture was released.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:SetFocus`(`):%- [@(0.0.255) bool]_[* SetFocus]()&] -[s2;b17;a17; Sets keyboard input focus to the Ctrl. Ctrl is first -to receive keyboard events via Key method as long as it has keyboard -input focus. When Ctrl denies keyboard event (by returning false -from Key method), it is passed to its parent`'s Key method and -so on.&] -[s7;i1120;a17; [*/ Return value]-|True if setting focus was successful.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:HasFocus`(`)const:%- [@(0.0.255) bool]_[* HasFocus]()_[@(0.0.255) const]&] -[s7;i1120;a17; [*/ Return value]-|True if Ctrl has keyboard input focus.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:HasFocusDeep`(`)const:%- [@(0.0.255) bool]_[* HasFocusDeep]()_[@(0.0.255) cons -t]&] -[s7;i1120;a17; [*/ Return value]-|True if Ctrl or any of its descendants -has focus or is equal to GetOwnerCtrl of any active popup.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:WantFocus`(bool`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* WantFocus]([@(0.0.255) b -ool]_[*@3 ft]_`=_[@(0.0.255) true])&] -[s2;b17;a17; Indicates whether Ctrl wants focus to be passed to it -by U`+`+, when navigating through the dialog using Tab (or Shift`+Tab) -key.&] -[s7;i1120;a17; [%-*C@3 ft]-|true to indicate that Ctrl wants focus.&] -[s7;i1120;a17; [*/ Return value]-|Same Ctrl for method chaining.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:NoWantFocus`(`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* NoWantFocus]()&] -[s7;i1120;a17; [*/ Return value]-|Same Ctrl for method chaining.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:IsWantFocus`(`)const:%- [@(0.0.255) bool]_[* IsWantFocus]()_[@(0.0.255) const]&] -[s2;b17;a17;%- Checks whether Ctrl has WantFocus acti.&] -[s7;i1120;a17; [*/ Return value]-|true, when Ctrl wants focus.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:InitFocus`(bool`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* InitFocus]([@(0.0.255) b -ool]_[*@3 ft]_`=_[@(0.0.255) true])&] -[s2;b17;a17; Indicates that Ctrl is eligible to obtain focus upon -opening of dialog or in other similar situations.&] -[s7;i1120;a17; [%-*C@3 ft]-|true to indicate Ctrl is eligible.&] -[s7;i1120;a17; [*/ Return value]-|Same Ctrl for method chaining.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:NoInitFocus`(`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* NoInitFocus]()&] -[s2;b17;a17; Same as InitFocus(false).&] -[s7;i1120;a17; [*/ Return value]-|Same Ctrl for method chaining.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:IsInitFocus`(`):%- [@(0.0.255) bool]_[* IsInitFocus]()&] -[s7;i1120;a17; [*/ Return value]-|true when Ctrl wants init focus.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:SetWantFocus`(`):%- [@(0.0.255) bool]_[* SetWantFocus]()&] -[s2;b17;a17; If Ctrl wants focus (WantFocus(true) was called for -it), set focus to Ctrl, otherwise nothing happens.&] -[s7;i1120;a17; [*/ Return value]-|true if focus was set.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:GetFocusChild`(`)const:%- [_^`:`:Ctrl^ Ctrl]_`*[* GetFocusChild]()_[@(0.0.255) c -onst]&] -[s2;b17;a17; If any immediate child of Ctrl has focus, returns pointer -to it.&] -[s7;i1120;a17; [*/ Return value]-|Pointer to child with focus or NULL -if no such exists.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:GetFocusChildDeep`(`)const:%- [_^`:`:Ctrl^ Ctrl]_`*[* GetFocusChildDeep]()_[@(0.0.255) c -onst]&] -[s2;b17;a17; If any child of Ctrl`'s child tree has focus, returns -pointer to it.&] -[s7;i1120;a17; [*/ Return value]-|&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:CancelModeDeep`(`):%- [@(0.0.255) void]_[* CancelModeDeep]()&] -[s2;b17;a17; Calls CancelMode virtual method for Ctrl and all of -its descendants.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:SetCaret`(int`,int`,int`,int`):%- [@(0.0.255) void]_[* SetCaret]([@(0.0.255) i -nt]_[*@3 x], [@(0.0.255) int]_[*@3 y], [@(0.0.255) int]_[*@3 cx], [@(0.0.255) int]_[*@3 cy])&] -[s2;b17;a17; Place caret rectangle block at given position in view -area. Caret rectangle is full flashing box and usually indicates -place where text is to entered. Ctrl can have just one caret. -Only Ctrl with focus has its caret displayed (also means that -you do not need to remove caret when Ctrl goes out of focus).&] -[s7;i1120;a17; [%-*C@3 x]-|X position.&] -[s7;i1120;a17; [%-*C@3 y]-|Y position.&] -[s7;i1120;a17; [%-*C@3 cx]-|Horizontal size.&] -[s7;i1120;a17; [%-*C@3 cy]-|Vertical size.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:SetCaret`(const `:`:Rect`&`):%- [@(0.0.255) void]_[* SetCaret]([@(0.0.255) con -st]_[_^`:`:Rect^ Rect][@(0.0.255) `&]_[*@3 r])&] -[s2;b17;a17; Place caret rectangle block at given position in view -area. Caret rectangle is full flashing box and usually indicates -place where text is to entered. Ctrl can have just one caret. -Only Ctrl with focus has its caret displayed (also means that -you do not need to remove caret when Ctrl goes out of focus).&] -[s7;i1120;a17; [%-*C@3 r]-|Caret block rectangle.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:KillCaret`(`):%- [@(0.0.255) void]_[* KillCaret]()&] -[s2;b17;a17; Removes caret from Ctrl.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:GetFocusCtrl`(`):%- [@(0.0.255) static] [_^`:`:Ctrl^ Ctrl]_`*[* GetFocusCtrl]( -)&] -[s7;i1120;a17; [*/ Return value]-|Ctrl that has focus or NULL if no -Ctrl of application has it.&] -[s3; &] -[s4;%- &] -[s5;:Ctrl`:`:IterateFocusForward`(Ctrl`*`,Ctrl`*`,bool`,bool`,bool`):%- [@(0.0.255) sta -tic] [@(0.0.255) bool]_[* IterateFocusForward]([_^Ctrl^ Ctrl]_`*[*@3 ctrl], -[_^Ctrl^ Ctrl]_`*[*@3 top], [@(0.0.255) bool]_[*@3 noframe]_`=_[@(0.0.255) false], -[@(0.0.255) bool]_[*@3 init]_`=_[@(0.0.255) false], [@(0.0.255) bool]_[*@3 all]_`=_[@(0.0.255) f -alse])&] -[s2; Tries to move focus to next `"appropriate`" Ctrl, like when -Tab key is pressed in the dialog. Appropriate Ctrl needs to have -WantFocus flag, be visible and enabled.&] -[s7;i1120;a17; [%-*C@3 ctrl]-|Ctrl with focus.&] -[s7;i1120;a17; [%-*C@3 top]-|Top Ctrl `- function cycles only between -this Ctrl subtree.&] -[s7;i1120;a17; [%-*C@3 noframe]-|Indicates that frame Ctrls are to be -excluded.&] -[s7;i1120;a17; [*/ Return value]-|true when focus was successfully moved.&] -[s3; &] -[s4;%- &] -[s5;:Ctrl`:`:IterateFocusBackward`(Ctrl`*`,Ctrl`*`,bool`,bool`):%- [@(0.0.255) static] -[@(0.0.255) bool]_[* IterateFocusBackward]([_^Ctrl^ Ctrl]_`*[*@3 ctrl], -[_^Ctrl^ Ctrl]_`*[*@3 top], [@(0.0.255) bool]_[*@3 noframe]_`=_[@(0.0.255) false], -[@(0.0.255) bool]_[*@3 all]_`=_[@(0.0.255) false])&] -[s2; Tries to move focus to previous appropriate Ctrl, like when -Tab key is pressed in the dialog. `"Appropriate`" Ctrl needs -to have WantFocus flag, be visible and enabled.&] -[s7;i1120;a17; [%-*C@3 ctrl]-|Ctrl with focus.&] -[s7;i1120;a17; [%-*C@3 top]-|Top Ctrl `- function cycles only between -this Ctrl subtree.&] -[s7;i1120;a17; [%-*C@3 noframe]-|Indicates that frame Ctrls are to be -excluded.&] -[s7;i1120;a17; [*C@3 init]-|Ctrl must have InitFocus flag.&] -[s7;i1120;a17; [*/ Return value]-|true when focus was successfully moved.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:AccessKeyBit`(byte`):%- [@(0.0.255) static] [_^`:`:dword^ dword]_[* AccessKeyB -it]([_^`:`:byte^ byte]_[*@3 accesskey])&] -[s2;b17;a17; Returns bit`-mask for specified access`-key.&] -[s7;i1120;a17; [%-*C@3 accesskey]-|Access`-key. It should be plain ASCII -value of access`-key.&] -[s7;i1120;a17; [*/ Return value]-|Access`-key bitmask. Note that only -`'A`' `- `'Z`' have distinct bit`-masks as those are only access`-keys -distributed automatically.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:GetAccessKeysDeep`(`)const:%- [_^`:`:dword^ dword]_[* GetAccessKeysDeep]()_[@(0.0.255) c -onst]&] -[s5;:Ctrl`:`:GetAccessKeysDeep`(`)const:%- [_^`:`:dword^ dword]_[* GetAccessKeysDeep]()_[@(0.0.255) c -onst]&] -[s2;b17;a17; Returns binary or of Ctrl`'s GetAccessKey method results -with the result of calling GetAccessKeyDeep for all children. -In other words, returns key coverage for the whole Ctrl tree.&] -[s7;i1120;a17; [*/ Return value]-|Access`-keys used by Ctrl and its -descendants.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:DistributeAccessKeys`(`):%- [@(0.0.255) void]_[* DistributeAccessKeys]()&] -[s2;b17;a17; Triggers automatic distribution of access keys. This -is implemented as gathering all already used access keys using -GetAccessKeys method and then using AssignAccessKeys method with -this value to distribute rest of keys (in other words, it is -equivalent of AssignAccessKeys(GetAccessKeys())).&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:RefreshAccessKeys`(`):%- [@(0.0.255) void]_[* RefreshAccessKeys]()&] -[s2;b17;a17; Invokes Refresh for this Ctrl or any descendant with -any access`-key assigned.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:VisibleAccessKeys`(`):%- [@(0.0.255) bool]_[* VisibleAccessKeys]()&] -[s7;i1120;a17; [*/ Return value]-|True if according to current access`-key -model there should be visible graphical representation (usually -underline) of access`-keys.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:Show`(bool`):%- [@(0.0.255) void]_[* Show]([@(0.0.255) bool]_[*@3 show]_`=_[@(0.0.255) t -rue])&] -[s2;b17;a17; Sets visibility flag for Ctrl.&] -[s7;i1120;a17; [%-*C@3 show]-|true indicates that Ctrl should be visible.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:Hide`(`):%- [@(0.0.255) void]_[* Hide]()&] -[s2;b17;a17; Same as Show(false).&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:IsShown`(`)const:%- [@(0.0.255) bool]_[* IsShown]()_[@(0.0.255) const]&] -[s7;i1120;a17; [*/ Return value]-|visibility flag for Ctrl.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:IsVisible`(`)const:%- [@(0.0.255) bool]_[* IsVisible]()_[@(0.0.255) const]&] -[s7;i1120;a17; [*/ Return value]-|true if Ctrl is currently visible -on the screen. Ctrl is visible if it has visibility flag set, -its parent is visible and its top`-level Ctrl is open.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:Enable`(bool`):%- [@(0.0.255) void]_[* Enable]([@(0.0.255) bool]_[*@3 enable]_`= -_[@(0.0.255) true])&] -[s2;b17;a17; Enables or disables Ctrl.&] -[s7;i1120;a17; [%-*C@3 enable]-|true indicates that Ctrl should be enabled.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:Disable`(`):%- [@(0.0.255) void]_[* Disable]()&] -[s2;b17;a17; Same as Enable(false).&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:IsEnabled`(`)const:%- [@(0.0.255) bool]_[* IsEnabled]()_[@(0.0.255) const]&] -[s7;i1120;a17; [*/ Return value]-|true if Ctrl is enabled.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:SetEditable`(bool`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* SetEditable]([@(0.0.255) b -ool]_[*@3 editable]_`=_[@(0.0.255) true])&] -[s2;b17;a17; Sets editable or read`-only mode of Ctrl. Specific Ctrls -can check this flag using IsEditable method and behave accordingly.&] -[s7;i1120;a17; [%-*C@3 editable]-|true indicates that Ctrl is editable.&] -[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:SetReadOnly`(`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* SetReadOnly]()&] -[s2;b17;a17; Same as SetEditable(false).&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:IsEditable`(`)const:%- [@(0.0.255) bool]_[* IsEditable]()_[@(0.0.255) const]&] -[s7;i1120;a17; [*/ Return value]-|true if Ctrl is editable.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:IsReadOnly`(`)const:%- [@(0.0.255) bool]_[* IsReadOnly]()_[@(0.0.255) const]&] -[s2;b17;a17; Same as !IsEditable().&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:ResetModify`(`):%- [@(0.0.255) void]_[* ResetModify]()&] -[s2;b17;a17; Resets modify flag.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:IsModifySet`(`)const:%- [@(0.0.255) bool]_[* IsModifySet]()_[@(0.0.255) const]&] -[s7;i1120;a17; [*/ Return value]-|true if modify flag is set.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:UpdateRefresh`(`):%- [@(0.0.255) void]_[* UpdateRefresh]()&] -[s2;b17;a17; Calls both Update and Refresh methods.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:Update`(`):%- [@(0.0.255) void]_[* Update]()&] -[s2;b17;a17; Same as SetModify().&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:Action`(`):%- [@(0.0.255) void]_[* Action]()&] -[s2;b17;a17; Invokes default Ctrl callback `- WhenAction. Action -actually makes a copy of WhenAction `- this ensures that the -Event<> object is not destroyed during the call.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:UpdateAction`(`):%- [@(0.0.255) void]_[* UpdateAction]()&] -[s2;b17;a17; Calls Update and then Action.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:UpdateActionRefresh`(`):%- [@(0.0.255) void]_[* UpdateActionRefresh]()&] -[s2;b17;a17; Calls Update, then Action, then Refresh. Typically called -after user changes values of Ctrl.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:BackPaint`(int`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* BackPaint]([@(0.0.255) i -nt]_[*@3 bp]_`=_FULLBACKPAINT)&] -[s2;b17;a17; Activates back`-paint mode for Ctrl.&] -[s7;i1120;a17; [%-*C@3 bp]-|Back`-paint mode.&] -[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:TransparentBackPaint`(`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* TransparentBa -ckPaint]()&] -[s7;i1120;a17; [*/ Return value]-|BackPaint(TRANSPARENTBACKPAINT).&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:NoBackPaint`(`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* NoBackPaint]()&] -[s7;i1120;a17; [*/ Return value]-|BackPaint(NOBACKPAINT).&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:BackPaintHint`(`):%- [_^Ctrl^ Ctrl][@(0.0.255) `&]_[* BackPaintHint]()&] -[s2; Activates FULLBACKPAINT mode if computer is a `"decent machine`" -(simple heurestics to identify fast enough PC with enough memory).&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:GetBackPaint`(`)const:%- [@(0.0.255) int]_[* GetBackPaint]()_[@(0.0.255) const -]&] -[s7;i1120;a17; [*/ Return value]-|Current back`-paint mode of Ctrl.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:Transparent`(bool`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* Transparent]([@(0.0.255) b -ool]_[*@3 bp]_`=_[@(0.0.255) true])&] -[s2;b17;a17; Sets transparency flag of Ctrl. If transparency flag -is disabled, U`+`+ can paint Ctrl in more effective way.&] -[s7;i1120;a17; [%-*C@3 bp]-|Transparency flag.&] -[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:NoTransparent`(`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* NoTransparent]()&] -[s7;i1120;a17; [*/ Return value]-|Transparent(false).&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:IsTransparent`(`)const:%- [@(0.0.255) bool]_[* IsTransparent]()_[@(0.0.255) co -nst]&] -[s7;i1120;a17; [*/ Return value]-|Value of transparency flag.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:ActiveX`(bool`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* ActiveX]([@(0.0.255) boo -l]_[*@3 ax]_`=_[@(0.0.255) true])&] -[s2;b17;a17; Special flag used for ActiveX Ctrls implementation.&] -[s6; Windows specific.&] -[s7;i1120;a17; [%-*C@3 ax]-|true `- Ctrl is ActiveX control&] -[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:NoActiveX`(`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* NoActiveX]()&] -[s7;i1120;a17; [*/ Return value]-|ActiveX(false).&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:IsActiveX`(`)const:%- [@(0.0.255) bool]_[* IsActiveX]()_[@(0.0.255) const]&] -[s7;i1120;a17; [*/ Return value]-|Value of ActiveX flag.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:Info`(const char`*`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* Info]([@(0.0.255) c -onst]_[@(0.0.255) char]_`*[*@3 txt])&] -[s2;b17;a17; Sets Tip text of Ctrl. This text is displayed as tooltip -of Ctrl.&] -[s7;i1120;a17; [%-*C@3 txt]-|Text.&] -[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:HelpLine`(const char`*`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* HelpLine]([@(0.0.255) c -onst]_[@(0.0.255) char]_`*[*@3 txt])&] -[s2;b17;a17; Sets help topic link for Ctrl.&] -[s7;i1120;a17; [%-*C@3 txt]-|Link.&] -[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:GetTip`(`)const:%- [_^`:`:String^ String]_[* GetTip]()_[@(0.0.255) const]&] -[s7;i1120;a17; [*/ Return value]-|Current Tip text.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:GetHelpLine`(`)const:%- [_^`:`:String^ String]_[* GetHelpLine]()_[@(0.0.255) c -onst]&] -[s7;i1120;a17; [*/ Return value]-|Current HelpTopic link.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:operator`<`<`(Ctrl`&`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* operator<<]([_^`:`:Ctrl^ C -trl][@(0.0.255) `&]_[*@3 ctrl])&] -[s5;:Ctrl`:`:Add`(Ctrl`&`):%- [@(0.0.255) void]_[* Add]([_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 c -trl])&] -[s2;b17;a17; Adds ctrl as the last child.&] -[s7;i1120;a17; [%-*C@3 ctrl]-|Ctrl to add.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:Remove`(`):%- [@(0.0.255) void]_[* Remove]()&] -[s2;b17;a17; Removes Ctrl from its parent.&] -[s3; &] -[s4;%- &] -[s5;:Ctrl`:`:operator`<`<`=`(const Value`&`):%- [@(0.0.255) const]_[_^`:`:Value^ Value][@(0.0.255) `& -]_[* operator<<`=]([@(0.0.255) const]_[_^`:`:Value^ Value][@(0.0.255) `&]_[*@3 v])&] -[s2;b17;a17; Same as SetData(v).&] -[s7;i1120;a17; [%-*C@3 v]-|New Value of Ctrl.&] -[s7;i1120;a17; [*/ Return value]-|Reference to v.&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:Ctrl`:`:operator`<`<`(Upp`:`:Function``):%- [_^Upp`:`:Callback^ C -allback][@(0.0.255) `&]_[* operator<<]([_^Upp`:`:Function^ Upp`::Function]<[@(0.0.255) voi -d]_()>_[*@3 action])&] -[s2; Same as WhenAction << action, can be used both with lambdas -and Events (former Callbacks)..&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:Ctrl`:`:SetTimeCallback`(int`,Upp`:`:Function``,int`):%- [@(0.0.255) v -oid]_[* SetTimeCallback]([@(0.0.255) int]_[*@3 delay`_ms], [_^Upp`:`:Function^ Function]< -[@(0.0.255) void]_()>_[*@3 cb], [@(0.0.255) int]_[*@3 id]_`=_[@3 0])&] -[s2;b17;a17; Puts delayed callback to the timer queue. As an identifier -of callback, which is void `* in timer queue, [* this] `+ [* id] -is used. When Ctrl is destroyed, all callbacks with [* id] in range -0 ... sizeof(Ctrl) are removed from timer callback queue `- this -ensures that no dangling callbacks are left there.&] -[s7;i1120;a17; [%-*C@3 delay`_ms]-|Delay of callback in ms. If this -is 0, callback is called immediately after all pending input -GUI events are processed.&] -[s7;i1120;a17; [%-*C@3 cb]-|Callback. Should be callback to Ctrl`'s -method.&] -[s7;i1120;a17; [%-*C@3 id]-|id. Should be in range 0..80. U`+`+ defines -compile`-time protocol for distributing these ids. If Ctrl wants -to use non`-zero time callback [* id], it should define it using&] -[s7;i1120;a17; -|[@(0.0.255) enum] [@(0.0.255) `{ ]TIMEID`_PERIODIC `= -[/ baseclass]`::TIMEID`_COUNT,&] -[s7;i1120;a17; -| TIMEID`_COUNT[@(0.0.255) `};]&] -[s7;i1120;a17; -|Using zero as [* id] is OK as long as you do not intend -to remove time callbacks using [* KillTimeCallback.]&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:KillTimeCallback`(int`):%- [@(0.0.255) void]_[* KillTimeCallback]([@(0.0.255) i -nt]_[*@3 id]_`=_[@3 0])&] -[s2;b17;a17; Removes time callback associated with Ctrl.&] -[s7;i1120;a17; [%-*C@3 id]-|Id of callback.&] -[s3;%- &] -[s4;%- &] -[s5;:Upp`:`:Ctrl`:`:KillSetTimeCallback`(int`,Upp`:`:Function``,int`):%- [@(0.0.255) v -oid]_[* KillSetTimeCallback]([@(0.0.255) int]_[*@3 delay`_ms], [_^Upp`:`:Function^ Functi -on]<[@(0.0.255) void]_()>_[*@3 cb], [@(0.0.255) int]_[*@3 id])&] -[s2; Removes callback with [%-*@3 id] and sets it again.&] -[s3; &] -[s4;%- &] -[s5;:Ctrl`:`:ExistsTimeCallback`(int`)const:%- [@(0.0.255) bool]_[* ExistsTimeCallback]([@(0.0.255) i -nt]_[*@3 id]_`=_[@3 0])_[@(0.0.255) const]&] -[s2;b17;a17; Tests whether Ctrl has associated callback in timer -queue.&] -[s7;i1120;a17; [%-*C@3 id]-|Id of callback.&] -[s7;i1120;a17; [*/ Return value]-|true when id is found in timer queue.&] -[s3;%- &] -[s4;%- &] -[s5;:Upp`:`:Ctrl`:`:PostCallback`(Upp`:`:Function``,int`):%- [@(0.0.255) voi -d]_[* PostCallback]([_^Upp`:`:Function^ Function]<[@(0.0.255) void]_()>_[*@3 cb], -[@(0.0.255) int]_[*@3 id]_`=_[@3 0])&] -[s2; Posts callback to be executed immediately (but in the main loop -after all current GUI events).&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:Ctrl`:`:KillPostCallback`(Upp`:`:Function``,int`):%- [@(0.0.255) v -oid]_[* KillPostCallback]([_^Upp`:`:Function^ Function]<[@(0.0.255) void]_()>_[*@3 cb], -[@(0.0.255) int]_[*@3 id])&] -[s2; Similar to PostCallback, but removes callback(s) with the same -id from the queue first.&] -[s3; &] -[s4;%- &] -[s5;:Ctrl`:`:GetActiveCtrl`(`):%- [@(0.0.255) static] [_^`:`:Ctrl^ Ctrl]_`*[* GetActiveCtrl -]()&] -[s2;b17;a17; Returns pointer to active Ctrl. Active Ctrl is top`-level -Ctrl of Ctrl with keyboard focus.&] -[s7;i1120;a17; [*/ Return value]-|Pointer to active Ctrl.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:GetActiveWindow`(`):%- [@(0.0.255) static] [_^`:`:Ctrl^ Ctrl]_`*[* GetActiveWi -ndow]()&] -[s2;b17;a17; Returns pointer to active TopWindow that is either active -or owns active Ctrl. Difference between GetActiveWindow and GetActiveCtrl -is that GetActiveCtrl can return pop`-up Ctrl, while GetActiveWindow -returns always TopWindow `- if active Ctrl is pop`-up, owner -of pop`-up is returned.&] -[s7;i1120;a17; [*/ Return value]-|Pointer to active window.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:GetVisibleChild`(Ctrl`*`,Point`,bool`):%- [@(0.0.255) static] -[_^`:`:Ctrl^ Ctrl]_`*[* GetVisibleChild]([_^`:`:Ctrl^ Ctrl]_`*[*@3 ctrl], -[_^`:`:Point^ Point]_[*@3 p], [@(0.0.255) bool]_[*@3 pointinframe])&] -[s2;b17;a17; Finds deepest descendant of Ctrl that is visible and -contains given point. If not such Ctrl exists, returns this.&] -[s7;i1120;a17; [%-*C@3 ctrl]-|Parent ctrl.&] -[s7;i1120;a17; [%-*C@3 p]-|Point.&] -[s7;i1120;a17; [%-*C@3 pointinframe]-|Determines whether point is in -view or frame coordinates.&] -[s7;i1120;a17; [*/ Return value]-|Pointer to Ctrl.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:PopUpHWND`(HWND`,bool`,bool`,bool`,bool`):%- [@(0.0.255) void]_[* PopUpHWND]( -HWND_[*@3 hwnd], [@(0.0.255) bool]_[*@3 savebits]_`=_[@(0.0.255) true], -[@(0.0.255) bool]_[*@3 activate]_`=_[@(0.0.255) true], [@(0.0.255) bool]_[*@3 dropshadow]_`= -_[@(0.0.255) false], [@(0.0.255) bool]_[*@3 topmost]_`=_[@(0.0.255) false])&] -[s2;b17;a17; Opens top`-level Ctrl as pop`-up window. [*/ This method -can only be invoked in the main thread.]&] -[s6; [2 Win32 specific.]&] -[s7;i1120;a17; [%-*C@3 hwnd]-|Win32 handle of owner window.&] -[s7;i1120;a17; [%-*C@3 savebits]-|Indicates that system should try to -preserve background bits.&] -[s7;i1120;a17; [%-*C@3 activate]-|Pop`-up should be activated.&] -[s7;i1120;a17; [%-*C@3 dropshadow]-|Pop`-up should have drop`-shadow -(if supported).&] -[s7;i1120;a17; [%-*C@3 topmost]-|Pop`-up should be top`-most window.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:PopUp`(Ctrl`*`,bool`,bool`,bool`,bool`):%- [@(0.0.255) void]_[* PopUp]([_^`:`:Ctrl^ C -trl]_`*[*@3 owner]_`=_NULL, [@(0.0.255) bool]_[*@3 savebits]_`=_[@(0.0.255) true], -[@(0.0.255) bool]_[*@3 activate]_`=_[@(0.0.255) true], [@(0.0.255) bool]_[*@3 dropshadow]_`= -_[@(0.0.255) false], [@(0.0.255) bool]_[*@3 topmost]_`=_[@(0.0.255) false])&] -[s2;b17;a17; Opens top`-level Ctrl as pop`-up window. [*/ This method -can only be invoked in the main thread.]&] -[s7;i1120;a17; [%-*C@3 owner]-|Owner.&] -[s7;i1120;a17; [%-*C@3 savebits]-|Indicates that system should try to -preserve background bits.&] -[s7;i1120;a17; [%-*C@3 activate]-|Pop`-up should be activated.&] -[s7;i1120;a17; [%-*C@3 dropshadow]-|Pop`-up should have drop`-shadow -(if supported).&] -[s7;i1120;a17; [%-*C@3 topmost]-|Pop`-up should be top`-most window.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:SetAlpha`(`:`:byte`):%- [@(0.0.255) void]_[* SetAlpha]([_^`:`:byte^ byte]_[*@3 a -lpha])&] -[s2;b17;a17; Sets top`-level Ctrl alpha blending if supported by -system. Ctrl must be open.&] -[s7;i1120;a17; [%-*C@3 alpha]-|Value of alpha.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:IsWaitingEvent`(`):%- [@(0.0.255) static] [@(0.0.255) bool]_[* IsWaitingEvent]( -)&] -[s7;i1120;a17; [*/ Return value]-|True when there is waiting unprocessed -event in input queue.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:ProcessEvent`(bool`*`):%- [@(0.0.255) static] [@(0.0.255) bool]_[* ProcessEven -t]([@(0.0.255) bool]_`*[*@3 quit]_`=_NULL)&] -[s2;b17;a17; Processes single event from input queue. When there -is no pending event, returns immediately. (Processing event involves -usually involves dispatching it via virtual methods to proper -Ctrls).&] -[s7;i1120;a17; [%-*C@3 quit]-|Assigned true when WM`_QUIT message is -intercepted (Win32 specific).&] -[s7;i1120;a17; [*/ Return value]-|True indicates that event was processed, -false that queue was empty.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:ProcessEvents`(bool`*`):%- [@(0.0.255) static] [@(0.0.255) bool]_[* ProcessEve -nts]([@(0.0.255) bool]_`*[*@3 quit]_`=_NULL)&] -[s2;b17;a17; Processes all events from input queue. When there is -no pending event, returns immediately. (Processing event involves -usually involves dispatching it via virtual methods to proper -Ctrls).&] -[s7;i1120;a17; [%-*C@3 quit]-|Assigned true when WM`_QUIT message is -intercepted (Win32 specific).&] -[s7;i1120;a17; [*/ Return value]-|True indicates that one or more events -were processed, false that queue was empty.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:IsPopUp`(`)const:%- [@(0.0.255) bool]_[* IsPopUp]()_[@(0.0.255) const]&] -[s7;i1120;a17; [*/ Return value]-|True if Ctrl is pop`-up window.&] -[s3; &] -[s4;%- &] -[s5;:Ctrl`:`:EventLoop`(Ctrl`*`):%- [@(0.0.255) static] [@(0.0.255) void]_[* EventLoop]([_^`:`:Ctrl^ C -trl]_`*[*@3 loopctrl]_`=_NULL)&] -[s2;b17;a17; Executes event`-loop. If [*@3 loopctrl ]is not NULL, it -must be opened top`-level Ctrl and loop is executed until EndLoop -method for [*@3 loopctrl ]is invoked. If [*@3 loopctrl] is NULL, -loop is executed as long as any top`-level Ctrl exists or application -is terminated by OS specific `"shutdown`" event. [*/ This method -can only be invoked in the main thread.]&] -[s7;i1120;a17; [%-*C@3 loopctrl]-|Looping Ctrl.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:GetLoopLevel`(`):%- [@(0.0.255) static] [@(0.0.255) int]_[* GetLoopLevel]()&] -[s7;i1120;a17; [*/ Return value]-|Level of even`-loop (even`-loops a -reentrant).&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:GetLoopCtrl`(`):%- [@(0.0.255) static] [_^`:`:Ctrl^ Ctrl]_`*[* GetLoopCtrl]()&] -[s7;i1120;a17; [*/ Return value]-|Current looping Ctrl.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:EndLoop`(`):%- [@(0.0.255) void]_[* EndLoop]()&] -[s2;b17;a17; Terminates loop for looping Ctrl. Note that this terminates -only loop for looping Ctrl. If there is another loop above such -loop, nothing is terminated until this additional loop is active.&] -[s3; &] -[s4;%- &] -[s5;:Ctrl`:`:EndLoop`(int`):%- [@(0.0.255) void]_[* EndLoop]([@(0.0.255) int]_[*@3 code])&] -[s2; Same as EndLoop(), but also defines loop exit code.&] -[s7;i1120;a17; [%-*C@3 code]-|Loop exit code.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:InLoop`(`)const:%- [@(0.0.255) bool]_[* InLoop]()_[@(0.0.255) const]&] -[s7;i1120;a17; [*/ Return value]-|true if Ctrl is looping Ctrl.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:GetExitCode`(`)const:%- [@(0.0.255) int]_[* GetExitCode]()_[@(0.0.255) const]&] -[s7;i1120;a17; [*/ Return value]-|Exit code of last loop performed with -this Ctrl.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:Clipboard`(`):%- [@(0.0.255) static] [_^PasteClip^ PasteClip][@(0.0.255) `&]_[* C -lipboard]()&] -[s2; Represents the clipboard as PasteClip. This allows unification -of drag`&drop and clipboard operations as there can be single -method handling with Clipboard and Drag`&Drop (and X11 selection) -operations.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:Selection`(`):%- [@(0.0.255) static] [_^PasteClip^ PasteClip][@(0.0.255) `&]_[* S -election]()&] -[s2; Represents X11 selection as PasteClip. This allows unification -of drag`&drop and selection operations as there can be single -method handling with Clipboard and Drag`&Drop (and X11 selection) -operations.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:SetSelectionSource`(const char`*`):%- [@(0.0.255) void]_[* SetSelectionSourc -e]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 fmts])&] -[s2; Tells X11 system that this Ctrl is current selection source, -with [%-*@3 fmts] available (semicolon separated list).&] -[s3; &] -[s4;%- &] -[s5;:Ctrl`:`:DoDragAndDrop`(const char`*`,const Image`&`,dword`,const VectorMap``&`):%- [@(0.0.255) i -nt]_[* DoDragAndDrop]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 fmts], -[@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 sample], [_^dword^ dword]_[*@3 action -s], [@(0.0.255) const]_[_^VectorMap^ VectorMap]<[_^String^ String], -[_^ClipData^ ClipData]>`&_[*@3 data])&] -[s2; Performs drag`&drop operation, with this Ctrl as source. [%-*@3 fmts] -is a semicolon separated list of formats available using GetDropData -method, [%-*@3 sample] is an image representation of data, [%-*@3 actions] -are allowed drag and drop operations `- a binary or DND`_NONE, -DND`_COPY, DND`_MOVE (or DND`_ALL as combination of all of them). -Special unrelated flag DND`_EXACTIMAGE can be add to actions -to indicate that Drag`&Drop should not alter [%-*@3 sample] image -(otherwise it can be adjusted to look consistent). [%-*@3 data] -is data directly provided for the operation as map of individual -formats to ClipData.&] -[s3; &] -[s4;%- &] -[s5;:Ctrl`:`:DoDragAndDrop`(const char`*`,const Image`&`,dword`):%- [@(0.0.255) int]_[* D -oDragAndDrop]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 fmts], [@(0.0.255) const]_[_^Image^ I -mage][@(0.0.255) `&]_[*@3 sample]_`=_Null, [_^dword^ dword]_[*@3 actions]_`=_DND`_ALL)&] -[s2; DoDragAndDrop with empty data (all formats are provided by GetDropData).&] -[s3; &] -[s4;%- &] -[s5;:Ctrl`:`:DoDragAndDrop`(const VectorMap``&`,const Image`&`,dword`):%- [@(0.0.255) i -nt]_[* DoDragAndDrop]([@(0.0.255) const]_[_^VectorMap^ VectorMap]<[_^String^ String], -[_^ClipData^ ClipData]>`&_[*@3 data], [@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 s -ample]_`=_Null, [_^dword^ dword]_[*@3 actions]_`=_DND`_ALL)&] -[s2; DoDragAndDrop with empty fmts (all formats are provided by [%-*@3 data]).&] -[s3; &] -[s4;%- &] -[s5;:Ctrl`:`:GetDragAndDropSource`(`):%- [@(0.0.255) static] [_^Ctrl^ Ctrl]_`*[* GetDragAnd -DropSource]()&] -[s2; Returns current source of Drag and Drop, is such source exists -in this process and it is U`+`+ widget (otherwise returns NULL).&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:GetDragAndDropTarget`(`):%- [@(0.0.255) static] [_^Ctrl^ Ctrl]_`*[* GetDragAnd -DropTarget]()&] -[s2; Returns current target of Drag and Drop, is such target exists -in this process and it is U`+`+ widget (otherwise returns NULL).&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:IsDragAndDropSource`(`):%- [@(0.0.255) bool]_[* IsDragAndDropSource]()&] -[s2; Same as this `=`= GetDragAndDropSource().&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:IsDragAndDropTarget`(`):%- [@(0.0.255) bool]_[* IsDragAndDropTarget]()&] -[s2; Same as this `=`= GetDragAndDropTarget().&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:StdSampleSize`(`):%- [@(0.0.255) static] [_^Size^ Size]_[* StdSampleSize]()&] -[s2; Returns the best size of DoDragAndDrop sample parameter.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:SetMinSize`(Size`):%- [@(0.0.255) void]_[* SetMinSize]([_^`:`:Size^ Size]_[*@3 s -z])&] -[s2;b17;a17; This method does nothing. It is a interface placeholder -to get Layout templates working `- in derived classes this can -be statically overloaded to receive minimal size of layout.&] -[s7;i1120;a17; [%-*C@3 sz]-|Minimal size of layout.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:Csizeinit`(`):%- [@(0.0.255) static] [@(0.0.255) void]_[* Csizeinit]()&] -[s2;b17;a17; Sets zoom factor used to scale layouts (to scale zoomed -positioning methods like LeftPosZ). Horizontal distances are -scaled by sz.cx / bsz.cx, vertical by sz.cy / bsz.cy. If bsz -is Size(0, 0), default base size (based on standard Win32 GUI -font) is used. Note that U`+`+ sets scaling factor automatically -upon startup based on actual standard GUI font size.&] -[s7;i1120;a17; [%-*C@3 sz]-|Numerator of scaling factor.&] -[s7;i1120;a17; [%-*C@3 bsz]-|Denominator of scaling factor.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:HorzLayoutZoom`(int`):%- [@(0.0.255) static] [@(0.0.255) int]_[* HorzLayoutZoo -m]([@(0.0.255) int]_[*@3 cx])&] -[s2;b17;a17; Performs horizontal scaling by actual scaling factor.&] -[s7;i1120;a17; [%-*C@3 cx]-|Distance to scale.&] -[s7;i1120;a17; [*/ Return value]-|Scaled distance.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:VertLayoutZoom`(int`):%- [@(0.0.255) static] [@(0.0.255) int]_[* VertLayoutZoo -m]([@(0.0.255) int]_[*@3 cy])&] -[s2;b17;a17; Performs vertical scaling by actual scaling factor.&] -[s7;i1120;a17; [%-*C@3 cy]-|Distance to scale.&] -[s7;i1120;a17; [*/ Return value]-|Scaled distance.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:LayoutZoom`(int`,int`):%- [@(0.0.255) static] [_^`:`:Size^ Size]_[* LayoutZoom -]([@(0.0.255) int]_[*@3 cx], [@(0.0.255) int]_[*@3 cy])&] -[s2;b17;a17; Performs scaling by actual scaling factor.&] -[s7;i1120;a17; [%-*C@3 cx]-|Horizontal distance.&] -[s7;i1120;a17; [%-*C@3 cy]-|Vertical distance.&] -[s7;i1120;a17; [*/ Return value]-|Scaled size.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:LayoutZoom`(Size`):%- [@(0.0.255) static] [_^`:`:Size^ Size]_[* LayoutZoom]([_^`:`:Size^ S -ize]_[*@3 sz])&] -[s2;b17;a17; Performs scaling by actual scaling factor.&] -[s7;i1120;a17; [%-*C@3 sz]-|Size to scale.&] -[s7;i1120;a17; [*/ Return value]-|Scaled size.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:NoLayoutZoom`(`):%- [@(0.0.255) static] [@(0.0.255) void]_[* NoLayoutZoom]()&] -[s2;b17;a17; Sets scaling factor to (1, 1). Same as SetZoomSize(Size(1, -1), Size(1, 1)).&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:Ctrl`:`:SetUHDEnabled`(bool`):%- [@(0.0.255) void]_[* SetUHDEnabled]([@(0.0.255) b -ool]_[*@3 set])&] -[s2; Informs host platform that application is UHD ready. Default -is true.&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:Ctrl`:`:IsUHDEnabled`(`):%- [@(0.0.255) bool]_[* IsUHDEnabled]()&] -[s2; Returns the value set by SetUHDEnabled.&] -[s3;%- &] -[s4; &] -[s5;K:Ctrl`:`:GetWorkArea`(`):%- [*^`:`:Rect^@(64) Rect][*@(64) _][* GetWorkArea][*@(64) ()]&] -[s2; Returns OS specific working area for the widget `- this is rectangle -in screen coordinates where application top`-level windows can -be placed `- the size of screen minus the size of any border -entities like the task`-bar. If widget is not associated with -the open window, returns the size of primary work area.&] -[s7;i1120;a17; [*/ Return value]-|Work area rectangle.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:GetVirtualWorkArea`(`):%- [@(0.0.255) static] [_^`:`:Rect^ Rect]_[* GetVirtual -WorkArea]()&] -[s2;b17;a17; Returns the total size of all displays minus any border -entities.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:GetVirtualScreenArea`(`):%- [@(0.0.255) static] [_^`:`:Rect^ Rect]_[* GetVirtu -alScreenArea]()&] -[s2;b17;a17; Returns the total size of all displays.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:GetPrimaryWorkArea`(`):%- [@(0.0.255) static] [_^`:`:Rect^ Rect]_[* GetPrimary -WorkArea]()&] -[s2;b17;a17; Returns the size of primary work area `- primary screen -in Windows is the display with start menu.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:GetPrimaryScreenArea`(`):%- [@(0.0.255) static] [_^`:`:Rect^ Rect]_[* GetPrima -ryScreenArea]()&] -[s2;b17;a17; Returns the size of primary screen `- primary screen -in Windows is the display with start menu.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:GetWorkArea`(Point`):%- [@(0.0.255) static] [_^Rect^ Rect]_[* GetWorkArea]([_^Point^ P -oint]_[*@3 pt])&] -[s2; Returns the recangle of work area which contains [%-*@3 pt]. If -[%-*@3 pt] does not belong to any area, returns the primary work -area.&] -[s3; &] -[s4;%- &] -[s5;:Ctrl`:`:GetMouseWorkArea`(`):%- [@(0.0.255) static] [_^Rect^ Rect]_[* GetMouseWorkArea -]()&] -[s2; Returns the work are which contains mouse cursor. Same as GetWorkArea(GetMousePo -s()).&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:GetKbdDelay`(`):%- [@(0.0.255) static] [@(0.0.255) int]_[* GetKbdDelay]()&] -[s2;b17;a17; Returns delay of keyboard before autorepeat starts when -key is pressed.&] -[s7;i1120;a17; [*/ Return value]-|Time in ms.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:GetKbdSpeed`(`):%- [@(0.0.255) static] [@(0.0.255) int]_[* GetKbdSpeed]()&] -[s2;b17;a17; Returns speed of autorepeat.&] -[s7;i1120;a17; [*/ Return value]-|Speed of autorepeat.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:GetDefaultWindowRect`(`):%- [@(0.0.255) static] [_^`:`:Rect^ Rect]_[* GetDefau -ltWindowRect]()&] -[s2;b17;a17; Returns OS suggested rectangle of newly open window.&] -[s7;i1120;a17; [*/ Return value]-|Default window rectangle.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:GetAppName`(`):%- [@(0.0.255) static] [_^`:`:String^ String]_[* GetAppName]()&] -[s7;i1120;a17; [*/ Return value]-|Name of application. Used by U`+`+ -in several places like Prompts.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:SetAppName`(const String`&`):%- [@(0.0.255) static] [@(0.0.255) void]_[* SetAp -pName]([@(0.0.255) const]_[_^`:`:String^ String][@(0.0.255) `&]_[*@3 appname])&] -[s7;i1120;a17; [%-*C@3 appname]-|Adjusts application name.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:Name`(`)const:%- [_^`:`:String^ String]_[* Name]()_[@(0.0.255) const]&] -[s2;b17;a17; Dumps diagnostic informations to standard log.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:Dump`(Stream`&`)const:%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Dump]([_^`:`:Stream^ S -tream][@(0.0.255) `&]_[*@3 s])_[@(0.0.255) const]&] -[s2;b17;a17;%- Dumps diagnostic informations to specified output -stream.&] -[s7;i1120;a17; [%-*C@3 s]-|Stream.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:InitWin32`(HINSTANCE`):%- [@(0.0.255) static] [@(0.0.255) void]_[* InitWin32]( -HINSTANCE_[*@3 hinst])&] -[s2;b17;a17; Flushes all drawing operations to screen (what it EXACTLY -does is platform specific).&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:GuiSleep`(int`):%- [@(0.0.255) static] [@(0.0.255) void]_[* GuiSleep]([@(0.0.255) i -nt]_[*@3 ms])&] -[s2;b17;a17; Sleeps (while allowing other applications or threads -to run) for at least [*@3 ms] milliseconds or until new input event -is available. [*/ This method can only be invoked in the main thread.]&] -[s7;i1120;a17; [%-*@3 ms]-|Time to sleep.&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:Ctrl`:`:Call`(Upp`:`:Function``):%- [@(0.0.255) static] -[@(0.0.255) void]_[* Call]([_^Upp`:`:Function^ Function]<[@(0.0.255) void]_()>_[*@3 cb])&] -[s2; Executes a callback in the main thread (the one responsible -for GUI). It works by posting callback into timer queue (with -zero delay), then waits its completion using Semaphore. Main -GUI thread has to run timer queue management for callback to -be executed (by running event`-loop (TopWindow`::Run) or ProcessEvents). -Warning: Call temporarily unlocks GuiLock (if locked) so that -the main thread can run on GUI, this is possible source of race`-conditions -(GuiLock is relocked after call completes). Be prepared that -some other code can run on GUI between call to Call and cb being -executed!&] -[s3; &] -[s4;%- &] -[s5;:Ctrl`:`:IsShutdownThreads`(`):%- [@(0.0.255) static] [@(0.0.255) bool]_[* IsShutdownTh -reads]()&] -[s2; Same as Thread`::IsShutdownThreads. Used to signal non`-main -threads that the program is about to end, so that non`-main threads -should terminate.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:ShutdownThreads`(`):%- [@(0.0.255) static] [@(0.0.255) void]_[* ShutdownThread -s]()&] -[s2; Similiar to Thread`::ShutdownThreads, but as part of waiting -for threads to finish calls ProcessEvents so that any Call methods -can finish.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:GetEventId`(`):%- [@(0.0.255) static] [_^int64^ int64]_[* GetEventId]()&] -[s2; This function is guaranteed to return the same number while -single input event (mouse event or keyboard event) is processed. -This is helpful in certain caching situations `- e.g. if you -want to lazy fetch some data, but only once per input event.&] -[s0;%- &] -[s0;%- &] -[ {{10000@(113.42.0) [s0; [*@7;4 Ctrl`::Logc]]}}&] -[s3; &] -[s1;:Ctrl`:`:Logc`:`:class:%- [@(0.0.255)3 class][3 _][*3 Logc]&] -[s9; This nested class serves as either vertical or horizontal part -of logical position.&] -[s3; &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] -[s3;%- &] -[s5;:Ctrl`:`:Logc`:`:Logc`(int`,int`,int`):%- [* Logc]([@(0.0.255) int]_[*@3 al], -[@(0.0.255) int]_[*@3 a], [@(0.0.255) int]_[*@3 b])&] -[s7;l352;i1120;a17; [%-*C@3 al]-|Alignment type. Determines what other -parameters mean. &] -[s7;l352;i1120;a17; [%-*C@3 a]-|First value.&] -[s7;l352;i1120;a17; [%-*C@3 b]-|Second value.&] -[s3;%- &] -[s4;%- &] -[s5;:Ctrl`:`:Logc`:`:Logc`(`):%- [* Logc]()&] -[s2; Default constructor. Sets Logc to the empty state.&] -[s3; &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] -[s3;%- &] -[s5;:Ctrl`:`:Logc`:`:LSGN`(dword`):%- [@(0.0.255) static] [@(0.0.255) int]_[* LSGN]([_^dword^ d -word]_[*@3 d])&] -[s7;l352;i1120;a17; [%-*C@3 q]-|Logc to compare with.&] -[s7;l352;i1120;a17; [*/ Return value]-|True when equal.&] -[s3; &] -[s4;%- &] -[s5;:Ctrl`:`:Logc`:`:operator`!`=`(Ctrl`:`:Logc`)const:%- [@(0.0.255) bool]_[* operator!`= -]([_^Ctrl`:`:Logc^ Logc]_[*@3 q])_[@(0.0.255) const]&] -[s7;l352;i1120;a17; [%-*C@3 q]-|Logc to compare with.&] -[s7;l352;i1120;a17; [*/ Return value]-|True when not equal.&] -[s3; &] -[s4;%- &] -[s5;:Ctrl`:`:Logc`:`:GetAlign`(`)const:%- [@(0.0.255) int]_[* GetAlign]()_[@(0.0.255) const -]&] -[s7;l352;i1120;a17; [*/ Return value]-|Alignment type.&] -[s3; &] -[s4;%- &] -[s5;:Ctrl`:`:Logc`:`:GetA`(`)const:%- [@(0.0.255) int]_[* GetA]()_[@(0.0.255) const]&] -[s7;l352;i1120;a17; [*/ Return value]-|First value.&] -[s3; &] -[s4;%- &] -[s5;:Ctrl`:`:Logc`:`:GetB`(`)const:%- [@(0.0.255) int]_[* GetB]()_[@(0.0.255) const]&] -[s7;l352;i1120;a17; [*/ Return value]-|Second value.&] -[s3; &] -[s4;%- &] -[s5;:Ctrl`:`:Logc`:`:SetAlign`(int`):%- [@(0.0.255) void]_[* SetAlign]([@(0.0.255) int]_[*@3 a -lign])&] -[s2;l352;b17;a17;%- Sets alignment type.&] -[s7;l352;i1120;a17; [%-*C@3 align]-|Alignment type.&] -[s3; &] -[s4;%- &] -[s5;:Ctrl`:`:Logc`:`:SetA`(int`):%- [@(0.0.255) void]_[* SetA]([@(0.0.255) int]_[*@3 a])&] -[s2;l352;b17;a17; Sets first value.&] -[s7;l352;i1120;a17; [%-*C@3 a]-|Value.&] -[s3; &] -[s4;%- &] -[s5;:Ctrl`:`:Logc`:`:SetB`(int`):%- [@(0.0.255) void]_[* SetB]([@(0.0.255) int]_[*@3 b])&] -[s2;l352;b17;a17; Sets second value.&] -[s7;l352;i1120;a17; [%-*C@3 b]-|Value.&] -[s3; &] -[s4;%- &] -[s5;:Ctrl`:`:Logc`:`:IsEmpty`(`)const:%- [@(0.0.255) bool]_[* IsEmpty]()_[@(0.0.255) const]&] -[s7;l352;i1120;a17; [*/ Return value]-|True if Logc is empty.&] -[s3; &] -[s0; &] -[s0; &] -[s0;%- &] -[ {{10000@(113.42.0) [s0; [*@7;4 Ctrl`::LogPos]]}}&] -[s3; &] -[s5;:`:`:Ctrl`:`:LogPos`:`:struct:%- [*@(0.0.255) struct][*@(64) _][* LogPos]&] -[s9; This nested class combines two Logc value into complete logical -position.&] -[s3; &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] -[s3;%- &] -[s5;:Ctrl`:`:LogPos`:`:LogPos`(Ctrl`:`:Logc`,Ctrl`:`:Logc`):%- [* LogPos]([_^Ctrl`:`:Logc^ L -ogc]_[*@3 x], [_^Ctrl`:`:Logc^ Logc]_[*@3 y])&] -[s7;l352;i1120;a17; [%-*C@3 x]-|Horizontal Logc.&] -[s7;l352;i1120;a17; [%-*C@3 y]-|Vertical Logc.&] -[s3; &] -[s4;%- &] -[s5;:Ctrl`:`:LogPos`:`:LogPos`(`):%- [* LogPos]()&] -[s2; Default constructor. Sets both Logc empty.&] -[s3; &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] -[s3;%- &] -[s5;:Ctrl`:`:LogPos`:`:operator`=`=`(Ctrl`:`:LogPos`)const:%- [@(0.0.255) bool]_[* operat -or`=`=]([_^Ctrl`:`:LogPos^ LogPos]_[*@3 b])_[@(0.0.255) const]&] -[s7;l352;i1120;a17; [%-*C@3 b]-|LogPos to compare with.&] -[s7;l352;i1120;a17; [*/ Return value]-|True when equal.&] -[s3; &] -[s4;%- &] -[s5;:Ctrl`:`:LogPos`:`:operator`!`=`(Ctrl`:`:LogPos`)const:%- [@(0.0.255) bool]_[* operat -or!`=]([_^Ctrl`:`:LogPos^ LogPos]_[*@3 b])_[@(0.0.255) const]&] -[s7;l352;i1120;a17; [%-*C@3 b]-|LogPos to compare with.&] -[s7;l352;i1120;a17; [*/ Return value]-|True when equal.&] -[s3; &] -[s4;%- &] -[s5;:Ctrl`:`:LogPos`:`:x:%- [_^Ctrl`:`:Logc^ Logc]_[* x]&] -[s2; Horizontal Logc.&] -[s3; &] -[s4;%- &] -[s5;:Ctrl`:`:LogPos`:`:y:%- [_^Ctrl`:`:Logc^ Logc]_[* y]&] -[s2; Vertical Logc.&] -[s3; &] +topic "Ctrl"; +[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,2#27521748481378242620020725143825:desc] +[0 $$3,0#96390100711032703541132217272105:end] +[H6;0 $$4,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] +[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] +[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] +[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] +[b42;2 $$9,9#13035079074754324216151401829390:normal] +[{_}%EN-US +[ {{10000@(113.42.0) [s0; [*@7;4 Ctrl]]}}&] +[s3;%- &] +[s1;:Ctrl`:`:class:%- [@(0.0.255)3 class][3 _][*3 Ctrl][3 _:_][@(0.0.255)3 public][3 _][*@3;3 Pte][3 < +][*3 Ctrl][3 >_]&] +[s9; (Derivation from Pte allows Ctrl to be pointed to by Ptr&] +[s0; &] +[s0; This the base class of GUI widgets hierarchy (that is why U`+`+ +widgets are also named `"Ctrls`").&] +[s3; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] +[s3; &] +[s0;%- enum_[* PlacementConstants]&] +[s2;b17;a17; Constants used in logical coordinates.&] +[s7;i1120;a17;:Ctrl`:`:CENTER: [%-*C@3 CENTER]-|Center alignment.&] +[s7;i1120;a17;:Ctrl`:`:LEFT: [%-*C@3 LEFT]-|Left alignment.&] +[s7;i1120;a17;:Ctrl`:`:RIGHT: [%-*C@3 RIGHT]-|Right alignment.&] +[s7;i1120;a17;:Ctrl`:`:TOP: [%-*C@3 TOP]-|Equal to LEFT (better name +for vertical coordinate).&] +[s7;i1120;a17;:Ctrl`:`:BOTTOM: [%-*C@3 BOTTOM]-|Equal to RIGHT (better +name for vertical coordinate)&] +[s7;i1120;a17;:Ctrl`:`:SIZE: [%-*C@3 SIZE]-|Size alignment.&] +[s7;i1120;a17;:Ctrl`:`:MINSIZE: [%-*C@3 MINSIZE]-|Value is determined +using GetMinSize.&] +[s7;i1120;a17;:Ctrl`:`:MAXSIZE: [%-*C@3 MAXSIZE]-|Value is determined +using GetMaxSize.&] +[s7;i1120;a17;:Ctrl`:`:STDSIZE: [%-*C@3 STDSIZE]-|Value is determined +using Get&] +[s3; &] +[s4; &] +[s0;%- enum_[* StateReason]&] +[s2;b17;a17; Arguments of State virtual method.&] +[s7;i1120;a17;:Ctrl`:`:FOCUS: [%-*C@3 FOCUS]-|Ctrl got/lost focus.&] +[s7;i1120;a17;:Ctrl`:`:ACTIVATE: [%-*C@3 ACTIVATE]-|Ctrl was activated.&] +[s7;i1120;a17;:Ctrl`:`:DEACTIVATE: [%-*C@3 DEACTIVATE]-|Ctrl was deactivated.&] +[s7;i1120;a17;:Ctrl`:`:SHOW: [%-*C@3 SHOW]-|Ctrl visibility changed.&] +[s7;i1120;a17;:Ctrl`:`:ENABLE: [%-*C@3 ENABLE]-|Ctrl was enabled/disable.&] +[s7;i1120;a17;:Ctrl`:`:EDITABLE: [%-*C@3 EDITABLE]-|Ctrl editable status +changed.&] +[s7;i1120;a17;:Ctrl`:`:OPEN: [%-*C@3 OPEN]-|Ctrl was open (its top`-level +Ctrl was open on screen).&] +[s7;i1120;a17;:Ctrl`:`:CLOSE: [%-*C@3 CLOSE]-|Ctrl was closed (its top`-level +Ctrl was closed).&] +[s3; &] +[s4; &] +[s0;%- enum_[* MouseEvents]&] +[s2;b17;a17; Constants that make up [*/ event] argument of [*/ MouseEvent] +and [*/ FrameMouseEvent] virtual methods. Value is combination +of button and action bit fields.&] +[s2;b17;a17; &] +[s0;l160; [* Field masks]&] +[s7;i1120;a17;:Ctrl`:`:BUTTON: [%-*C@3 BUTTON]-|Mask for button field.&] +[s7;i1120;a17;:Ctrl`:`:ACTION: [%-*C@3 ACTION]-|Mask for action field. +&] +[s0; &] +[s0;l160; [* Actions]&] +[s7;i1120;a17;:Ctrl`:`:MOUSEENTER: [%-*C@3 MOUSEENTER]-|Mouse entered +Ctrl.&] +[s7;i1120;a17;:Ctrl`:`:MOUSEMOVE: [%-*C@3 MOUSEMOVE]-|Mouse moved over +Ctrl.&] +[s7;i1120;a17;:Ctrl`:`:MOUSELEAVE: [%-*C@3 MOUSELEAVE]-|Mouse left Ctrl.&] +[s7;i1120;a17;:Ctrl`:`:CURSORIMAGE: [%-*C@3 CURSORIMAGE]-|Cursor image +has to be determined (method should respond with image).&] +[s7;i1120;a17;:Ctrl`:`:MOUSEWHEEL: [%-*C@3 MOUSEWHEEL]-|Mouse wheel +rotated.&] +[s7;i1120;a17;:Ctrl`:`:DOWN: [%-*C@3 DOWN]-|Mouse button was pressed.&] +[s7;i1120;a17;:Ctrl`:`:UP: [%-*C@3 UP]-|Mouse button was released.&] +[s7;i1120;a17;:Ctrl`:`:DOUBLE: [%-*C@3 DOUBLE]-|Mouse button was double`-clicked.&] +[s7;i1120;a17;:Ctrl`:`:REPEAT: [%-*C@3 REPEAT]-|When mouse button is +pressed for a while, U`+`+ imitates keyboard autorepeat sending +this message.&] +[s0;l160; [* Buttons] &] +[s7;i1120;a17; [%-*C@3 LEFT]-|Left button. (This constant is not defined +in MouseEvents, instead LEFT from Placements Constants is used).&] +[s7;i1120;a17; [%-*C@3 RIGHT]-|Left button. (This constant is not defined +in MouseEvents, instead LEFT from Placements Constants is used).&] +[s0;l160; [* Combinations]&] +[s7;i1120;a17;:Ctrl`:`:LEFTDOWN: [%-*C@3 LEFTDOWN]-|Left button pressed.&] +[s7;i1120;a17;:Ctrl`:`:LEFTDOUBLE: [%-*C@3 LEFTDOUBLE]-|Left button +double pressed.&] +[s7;i1120;a17;:Ctrl`:`:LEFTREPEAT: [%-*C@3 LEFTREPEAT]-|Left button +autorepeat.&] +[s7;i1120;a17;:Ctrl`:`:LEFTUP: [%-*C@3 LEFTUP]-|Left button released.&] +[s7;i1120;a17;:Ctrl`:`:RIGHTDOWN: [%-*C@3 RIGHTDOWN]-|Right button pressed.&] +[s7;i1120;a17;:Ctrl`:`:RIGHTDOUBLE: [%-*C@3 RIGHTDOUBLE]-|Right button +double pressed.&] +[s7;i1120;a17;:Ctrl`:`:RIGHTREPEAT: [%-*C@3 RIGHTREPEAT]-|Right button +autorepeat.&] +[s7;i1120;a17;:Ctrl`:`:RIGHTUP: [%-*C@3 RIGHTUP]-|Right button released.&] +[s3; &] +[s4; &] +[s0;%- enum_`{_[*@3 NOBACKPAINT], [*@3 FULLBACKPAINT], [*@3 TRANSPARENTBACKPAINT], +[*@3 EXCLUDEPAINT]_`}&] +[s2;b17;a17; These constants are parameters of BackPaint method. +They determine back`-plane drawing style.&] +[s7;i1120;a17;:Ctrl`:`:NOBACKPAINT: [%-*C@3 NOBACKPAINT]-|No backpaint +is used.&] +[s7;i1120;a17;:Ctrl`:`:FULLBACKPAINT: [%-*C@3 FULLBACKPAINT]-|Whole +area of Ctrl is backpainted.&] +[s7;i1120;a17;:Ctrl`:`:TRANSPARENTBACKPAINT: [%-*C@3 TRANSPARENTBACKPAINT]-|Only +transparent child Ctrls are backpainted.&] +[s7;i1120;a17;:Ctrl`:`:EXCLUDEPAINT: [%-*C@3 EXCLUDEPAINT]-|Ctrl is +not painted. This is special case for specific system related +situations (like OLE control painted by regular Windows routine).&] +[s3; &] +[s4; &] +[s5;%- [*@(64) typedef_][*@(0.0.255) bool][*@(64) _(`*][* MouseHook][*@(64) )(Ctrl_`*ctrl, +][*@(0.0.255) bool][*@(64) _inframe, ][*@(0.0.255) int][*@(64) _event, +Point_p, ][*@(0.0.255) int][*@(64) _zdelta, dword_keyflags)]&] +[s2;b17;a17; Type for hooking mouse events across all Ctrls.&] +[s3; &] +[s4; &] +[s5;%- [*@(64) typedef_][*@(0.0.255) bool][*@(64) _(`*][* KeyHook][*@(64) )(Ctrl_`*ctrl, +dword_key, ][*@(0.0.255) int][*@(64) _count)]&] +[s2;b17;a17; Type for hooking keyboard events across all Ctrls.&] +[s3; &] +[s4; &] +[s5;%- [*@(64) typedef_][*@(0.0.255) bool][*@(64) _(`*][* StateHook][*@(64) )(Ctrl_`*ctrl, +][*@(0.0.255) int][*@(64) _reason)]&] +[s2;b17;a17; Type for hooking state changes across all Ctrls.&] +[s0; &] +[s4;%- &] +[s5;:Ctrl`:`:PosLeft`(int`,int`):%- [@(0.0.255) static] [_^Ctrl`:`:Logc^ Logc]_[* PosLeft]( +[@(0.0.255) int]_[*@3 pos], [@(0.0.255) int]_[*@3 size])&] +[s2;b17;a17; Creates left (or top) aligned logical coordinate (Logc).&] +[s7;i1120;a17; [%-*C@3 pos]-|Distance between left margin and left margin +of parent`'s view.&] +[s7;i1120;a17; [%-*C@3 size]-|Size.&] +[s7;i1120;a17; [*/ Return value]-|Logical coordinate.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:PosRight`(int`,int`):%- [@(0.0.255) static] [_^Ctrl`:`:Logc^ Logc]_[* PosRight +]([@(0.0.255) int]_[*@3 pos], [@(0.0.255) int]_[*@3 size])&] +[s2;b17;a17; Creates right (or bottom) aligned logical coordinate +(Logc).&] +[s7;i1120;a17; [%-*C@3 pos]-|Distance between right margin and right +margin of parent`'s view.&] +[s7;i1120;a17; [%-*C@3 size]-|Size.&] +[s7;i1120;a17; [*/ Return value]-|Logical coordinate.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:PosTop`(int`,int`):%- [@(0.0.255) static] [_^`:`:Ctrl`:`:Logc^ Logc]_[* PosTop +]([@(0.0.255) int]_[*@3 pos], [@(0.0.255) int]_[*@3 size])&] +[s2;b17;a17; Equal to PosLeft(pos, size).&] +[s7;i1120;a17; [%-*C@3 pos]-|Distance between top margin and top margin +of parent`'s view.&] +[s7;i1120;a17; [%-*C@3 size]-|Size.&] +[s7;i1120;a17; [*/ Return value]-|Logical coordinate.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:PosBottom`(int`,int`):%- [@(0.0.255) static] [_^`:`:Ctrl`:`:Logc^ Logc]_[* Pos +Bottom]([@(0.0.255) int]_[*@3 pos], [@(0.0.255) int]_[*@3 size])&] +[s2;b17;a17; Equal to PosRight(pos, size).&] +[s7;i1120;a17; [%-*C@3 pos]-|Distance between bottom margin and bottom +margin of parent`'s view.&] +[s7;i1120;a17; [%-*C@3 size]-|Size.&] +[s7;i1120;a17; [*/ Return value]-|Logical coordinate.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:PosSize`(int`,int`):%- [@(0.0.255) static] [_^`:`:Ctrl`:`:Logc^ Logc]_[* PosSi +ze]([@(0.0.255) int]_[*@3 lpos], [@(0.0.255) int]_[*@3 rpos])&] +[s2;b17;a17; Creates logical coordinate where distances between margins +and parent`'s view margins are fixed and size of Ctrl is variable +(depends of parent`'s view size).&] +[s7;i1120;a17; [%-*C@3 lpos]-|Distance between left/top margin and left/top +margin of parent`'s view.&] +[s7;i1120;a17; [%-*C@3 rpos]-|Distance between right/bottom margin and +right/bottom margin of parent`'s view.&] +[s7;i1120;a17; [*/ Return value]-|Logical coordinate.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:PosCenter`(int`,int`):%- [@(0.0.255) static] [_^`:`:Ctrl`:`:Logc^ Logc]_[* Pos +Center]([@(0.0.255) int]_[*@3 size], [@(0.0.255) int]_[*@3 offset])&] +[s2;b17;a17; Creates centered logical coordinate, where Ctrl is placed +in specified distance from center of parent`'s view. &] +[s7;i1120;a17; [%-*C@3 size]-|Size.&] +[s7;i1120;a17; [%-*C@3 offset]-|Offset from center.&] +[s7;i1120;a17; [*/ Return value]-|Logical coordinate.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:PosCenter`(int`):%- [@(0.0.255) static] [_^`:`:Ctrl`:`:Logc^ Logc]_[* PosCente +r]([@(0.0.255) int]_[*@3 size])&] +[s2;b17;a17; Equal to PosCenter(size, 0).&] +[s7;i1120;a17; [%-*C@3 size]-|Size.&] +[s7;i1120;a17; [*/ Return value]-|Logical coordinate.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:GetTopCtrls`(`):%- [@(0.0.255) static] [_^`:`:Vector^ Vector][@(0.0.255) <]Ctr +l_`*>_[* GetTopCtrls]()&] +[s2;b17;a17; Returns all opened top`-level Ctrls of process. Top`-level +Ctrls are those without parent (GetParent() `=`= NULL) `- TopWindow +Ctrls and pop`-up Ctrls.&] +[s7;i1120;a17; [*/ Return value]-|Vector of all top Ctrls.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:GetTopWindows`(`):%- [@(0.0.255) static] [_^`:`:Vector^ Vector][@(0.0.255) <]C +trl_`*>_[* GetTopWindows]()&] +[s2;b17;a17; Returns all opened TopWindows (that is, instances of +TopWindow class or classes derived from TopWindow) of process. +The difference between GetTopWindows and GetTopCtrls is that +GetTopCtrls returns pop`-ups too. &] +[s7;i1120;a17; [*/ Return value]-|Vector of all TopWindows.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:CloseTopCtrls`(`):%- [@(0.0.255) static] [@(0.0.255) void]_[* CloseTopCtrls]() +&] +[s2;b17;a17; Closes all top`-level Ctrls.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:InstallMouseHook`(Ctrl`:`:MouseHook`):%- [@(0.0.255) static] +[@(0.0.255) void]_[* InstallMouseHook]([_^`:`:Ctrl`:`:MouseHook^ MouseHook]_[*@3 hook])&] +[s2;b17;a17; Installs mouse hook `- a routine that receives all mouse +input of application before it gets processed by Ctrls. You can +install more mouse hooks. Mouse hook routine should return true +to indicate the end of processing (and event propagation).&] +[s7;i1120;a17; [%-*C@3 hook]-|Pointer to hook routine.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:DeinstallMouseHook`(Ctrl`:`:MouseHook`):%- [@(0.0.255) static] +[@(0.0.255) void]_[* DeinstallMouseHook]([_^`:`:Ctrl`:`:MouseHook^ MouseHook]_[*@3 hook]) +&] +[s2;b17;a17; Uninstalls previously installed mouse hook.&] +[s7;i1120;a17; [%-*C@3 hook]-|Pointer to hook routine.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:InstallKeyHook`(Ctrl`:`:KeyHook`):%- [@(0.0.255) static] +[@(0.0.255) void]_[* InstallKeyHook]([_^`:`:Ctrl`:`:KeyHook^ KeyHook]_[*@3 hook])&] +[s2;b17;a17; Installs keyboard hook `- a routine that receives all +keyboard input of application before it gets processed by Ctrls. +You can install more than one keyboard hooks. Keyboard hook routine +should return true to indicate the end of processing (and event +propagation).&] +[s7;i1120;a17; [%-*C@3 hook]-|Pointer to hook routine.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:DeinstallKeyHook`(Ctrl`:`:KeyHook`):%- [@(0.0.255) static] +[@(0.0.255) void]_[* DeinstallKeyHook]([_^`:`:Ctrl`:`:KeyHook^ KeyHook]_[*@3 hook])&] +[s2;b17;a17; Uninstalls previously installed keyboard hook.&] +[s7;i1120;a17; [%-*C@3 hook]-|Pointer to hook routine.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:InstallStateHook`(Ctrl`:`:StateHook`):%- [@(0.0.255) static] +[@(0.0.255) void]_[* InstallStateHook]([_^`:`:Ctrl`:`:StateHook^ StateHook]_[*@3 hook])&] +[s2;b17;a17; Installs state hook `- a routine that receives all state +changes of any Ctrls.&] +[s7;i1120;a17; [%-*C@3 hook]-|Pointer to hook routine.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:DeinstallStateHook`(Ctrl`:`:StateHook`):%- [@(0.0.255) static] +[@(0.0.255) void]_[* DeinstallStateHook]([_^`:`:Ctrl`:`:StateHook^ StateHook]_[*@3 hook]) +&] +[s2;b17;a17; Deinstalls previously installed state hook.&] +[s7;i1120;a17; [%-*C@3 hook]-|Pointer to hook routine.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:Paint`(Draw`&`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Paint]([_^`:`:Draw^ D +raw][@(0.0.255) `&]_[*@3 draw])&] +[s2;b17;a17; This method is called when Ctrl`'s view area is about +to be repainted.&] +[s7;i1120;a17; [%-*C@3 draw]-|Target of draw operations.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:CancelMode`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* CancelMode]()&] +[s2;b17;a17; This method is called by U`+`+ core in situations when +internal state of Ctrl that represents ongoing user action is +about to be cleared to default. Typical example of such action +is state of Button that is pushed by mouse click `- if the pushed +state is internally recorded in Button, it should by cleared +by this method. Examples of situations when this method is called +by framework is removing Ctrl from its parent or releasing mouse +capture.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:Activate`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Activate]()&] +[s2;b17;a17; This method is called when Ctrl is top`-level and is +activated `- it or some of its child Ctrls receives keyboard +focus (activation usually has other signs as bringing window +foreground or changing its caption).&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:Deactivate`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Deactivate]()&] +[s2;b17;a17; This method is called when Ctrl is top`-level and is +deactivated `- focus has gone outside of Ctrl and its child Ctrls.&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:Ctrl`:`:DeactivateBy`(Upp`:`:Ctrl`*`):%- [@(0.0.255) virtual] +[@(0.0.255) void]_[* DeactivateBy]([_^Upp`:`:Ctrl^ Ctrl]_`*[*@3 new`_focus])&] +[s2; Similar to Deactivate without parameter, but if a widget that +caused deactivation by getting a focus is part of the same appliaction, +[%-*@3 new`_focus] contains a pointer to it. If deactivation is +caused by switching to another application, this parameter is +NULL. Both variants of Deactivate are called, the variant with +paremeter is called first.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:FrameMouseEvent`(int`,Point`,int`,dword`):%- [@(0.0.255) virtual] +[_^`:`:Image^ Image]_[* FrameMouseEvent]([@(0.0.255) int]_[*@3 event], +[_^`:`:Point^ Point]_[*@3 p], [@(0.0.255) int]_[*@3 zdelta], [_^`:`:dword^ dword]_[*@3 keyfla +gs])&] +[s2;b17;a17; This method is called when mouse event happens in frame +area of Ctrl not containing any child Ctrls. Default implementation +does nothing and returns Image`::Arrow().&] +[s7;i1120;a17; [%-*C@3 event]-|Type of event define by [^topic`:`/`/CtrlCore`/src`/Ctrl`$en`-us`#`:`:Ctrl`:`:enum MouseEvents `{ BUTTON`, ACTION`, MOUSEENTER`, MOUSEMOVE`, MOUSELEAVE`, CURSORIMAGE`, MOUSEWHEEL`, DOWN`, UP`, DOUBLE`, REPEAT`, LEFTDOWN`, LEFTDOUBLE`, LEFTREPEAT`, LEFTUP`, RIGHTDOWN`, RIGHTDOUBLE`, RIGHTREPEAT`, RIGHTUP `}^ M +ouseEvents] enum.&] +[s7;i1120;a17; [%-*C@3 p]-|Position of mouse cursor in frame coordinates.&] +[s7;i1120;a17; [%-*C@3 zdelta]-|Mouse wheel rotation delta (if event +is MOUSEWHEEL).&] +[s7;i1120;a17; [%-*C@3 keyflags]-|Combination of key flags for Shift, +Ctrl and Alt keys.&] +[s7;i1120;a17; [*/ Return value]-|If event is MOUSEIMAGE, method should +return Image to be displayed as mouse cursor.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:MouseEvent`(int`,Point`,int`,dword`):%- [@(0.0.255) virtual] +[_^`:`:Image^ Image]_[* MouseEvent]([@(0.0.255) int]_[*@3 event], [_^`:`:Point^ Point]_[*@3 p +], [@(0.0.255) int]_[*@3 zdelta], [_^`:`:dword^ dword]_[*@3 keyflags])&] +[s2;b17;a17; This method is called when mouse event happens in view +area of Ctrl not containing any child Ctrls. Default implementation +calls specific mouse event methods based on event parameter.&] +[s7;i1120;a17; [%-*C@3 event]-|Type of event define by [^topic`:`/`/CtrlCore`/src`/Ctrl`$en`-us`#`:`:Ctrl`:`:enum MouseEvents `{ BUTTON`, ACTION`, MOUSEENTER`, MOUSEMOVE`, MOUSELEAVE`, CURSORIMAGE`, MOUSEWHEEL`, DOWN`, UP`, DOUBLE`, REPEAT`, LEFTDOWN`, LEFTDOUBLE`, LEFTREPEAT`, LEFTUP`, RIGHTDOWN`, RIGHTDOUBLE`, RIGHTREPEAT`, RIGHTUP `}^ M +ouseEvents] enum.&] +[s7;i1120;a17; [%-*C@3 p]-|Position of mouse cursor in view coordinates.&] +[s7;i1120;a17; [%-*C@3 zdelta]-|Mouse wheel rotation delta (if event +is MOUSEWHEEL).&] +[s7;i1120;a17; [%-*C@3 keyflags]-|Combination of key flags for Shift, +Ctrl and Alt keys.&] +[s7;i1120;a17; [*/ Return value]-|If event is MOUSEIMAGE, method should +return Image to be displayed as mouse cursor.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:MouseEnter`(Point`,dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* MouseE +nter]([_^`:`:Point^ Point]_[*@3 p], [_^`:`:dword^ dword]_[*@3 keyflags])&] +[s2;b17;a17; This method is called by default implementation of MouseEvent +when mouse cursor enters the view area of Ctrl.&] +[s7;i1120;a17; [%-*C@3 p]-|Point of mouse cursor in view coordinates.&] +[s7;i1120;a17; [%-*C@3 keyflags]-|Combination of key flags for Shift, +Ctrl and Alt keys.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:MouseMove`(Point`,dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* MouseMo +ve]([_^`:`:Point^ Point]_[*@3 p], [_^`:`:dword^ dword]_[*@3 keyflags])&] +[s2;b17;a17; This method is called by default implementation of MouseEvent +when mouse cursor hovers above view area of Ctrl.&] +[s7;i1120;a17; [%-*C@3 p]-|Position of mouse cursor in view coordinates.&] +[s7;i1120;a17; [%-*C@3 keyflags]-|Combination of key flags for Shift, +Ctrl and Alt keys.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:LeftDown`(Point`,dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* LeftDown +]([_^`:`:Point^ Point]_[*@3 p], [_^`:`:dword^ dword]_[*@3 keyflags])&] +[s2;b17;a17; This method is called by default implementation of MouseEvent +when mouse left button is pressed.&] +[s7;i1120;a17; [%-*C@3 p]-|Position of mouse cursor in view coordinates.&] +[s7;i1120;a17; [%-*C@3 keyflags]-|Combination of key flags for Shift, +Ctrl and Alt keys.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:LeftDouble`(Point`,dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* LeftDo +uble]([_^`:`:Point^ Point]_[*@3 p], [_^`:`:dword^ dword]_[*@3 keyflags])&] +[s2;b17;a17; This method is called by default implementation of MouseEvent +when mouse left button is double`-clicked. Default implementation +calls LeftDown.&] +[s7;i1120;a17; [%-*C@3 p]-|Position of mouse cursor in view coordinates.&] +[s7;i1120;a17; [%-*C@3 keyflags]-|Combination of key flags for Shift, +Ctrl and Alt keys.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:LeftTriple`(Point`,dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* LeftTr +iple]([_^`:`:Point^ Point]_[*@3 p], [_^`:`:dword^ dword]_[*@3 keyflags])&] +[s2;b17;a17; This method is called by default implementation of MouseEvent +when mouse left button is triple`-clicked. Default implementation +calls LeftDown.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:LeftDrag`(Point`,dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* LeftDrag +]([_^`:`:Point^ Point]_[*@3 p], [_^`:`:dword^ dword]_[*@3 keyflags])&] +[s2;b17;a17; This method is called by default implementation of MouseEvent +when user moves the mouse while holding left button by more than +GUI`_DragDistance pixels. [%-*@3 p] is the starting point of drag, +not the current mouse position.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:LeftHold`(Point`,dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* LeftHold +]([_^`:`:Point^ Point]_[*@3 p], [_^`:`:dword^ dword]_[*@3 keyflags])&] +[s2;b17;a17; This method is called by default implementation of MouseEvent +when user holds the mouse left button down for a while.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:LeftRepeat`(Point`,dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* LeftRe +peat]([_^`:`:Point^ Point]_[*@3 p], [_^`:`:dword^ dword]_[*@3 keyflags])&] +[s2;b17;a17; This method is repeatedly called by default implementation +of MouseEvent when mouse left button is pressed for some time, +imitating keyboard autorepeat behaviour.&] +[s7;i1120;a17; [%-*C@3 p]-|Position of mouse cursor in view coordinates.&] +[s7;i1120;a17; [%-*C@3 keyflags]-|Combination of key flags for Shift, +Ctrl and Alt keys.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:LeftUp`(Point`,dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* LeftUp]([_^`:`:Point^ P +oint]_[*@3 p], [_^`:`:dword^ dword]_[*@3 keyflags])&] +[s2;b17;a17; This method is called by default implementation of MouseEvent +when mouse left button is released.&] +[s7;i1120;a17; [%-*C@3 p]-|Position of mouse cursor in view coordinates.&] +[s7;i1120;a17; [%-*C@3 keyflags]-|Combination of key flags for Shift, +Ctrl and Alt keys.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:RightDown`(Point`,dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* RightDo +wn]([_^`:`:Point^ Point]_[*@3 p], [_^`:`:dword^ dword]_[*@3 keyflags])&] +[s2;b17;a17; This method is called by default implementation of MouseEvent +when mouse right button is pressed.&] +[s7;i1120;a17; [%-*C@3 p]-|Position of mouse cursor in view coordinates.&] +[s7;i1120;a17; [%-*C@3 keyflags]-|Combination of key flags for Shift, +Ctrl and Alt keys.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:RightDouble`(Point`,dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Right +Double]([_^`:`:Point^ Point]_[*@3 p], [_^`:`:dword^ dword]_[*@3 keyflags])&] +[s2;b17;a17; This method is called by default implementation of MouseEvent +when mouse right button is double`-clicked. Default implementation +calls RightDown.&] +[s7;i1120;a17; [%-*C@3 p]-|Position of mouse cursor in view coordinates.&] +[s7;i1120;a17; [%-*C@3 keyflags]-|Combination of key flags for Shift, +Ctrl and Alt keys.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:RightTriple`(Point`,dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Right +Triple]([_^`:`:Point^ Point]_[*@3 p], [_^`:`:dword^ dword]_[*@3 keyflags])&] +[s2;b17;a17; This method is called by default implementation of MouseEvent +when mouse right button is triple`-clicked. Default implementation +calls RightDown.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:RightDrag`(Point`,dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* RightDr +ag]([_^`:`:Point^ Point]_[*@3 p], [_^`:`:dword^ dword]_[*@3 keyflags])&] +[s2;b17;a17; This method is called by default implementation of MouseEvent +when user moves the mouse while holding right button by more +than GUI`_DragDistance pixels. [%-*@3 p] is the starting point +of drag, not the current mouse position.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:RightHold`(Point`,dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* RightHo +ld]([_^`:`:Point^ Point]_[*@3 p], [_^`:`:dword^ dword]_[*@3 keyflags])&] +[s2;b17;a17; This method is called by default implementation of MouseEvent +when user holds the mouse right button down for a while.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:RightRepeat`(Point`,dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Right +Repeat]([_^`:`:Point^ Point]_[*@3 p], [_^`:`:dword^ dword]_[*@3 keyflags])&] +[s2;b17;a17; This method is repeatedly called by default implementation +of MouseEvent when mouse right button is pressed for some time, +imitating keyboard autorepeat behaviour.&] +[s7;i1120;a17; [%-*C@3 p]-|Position of mouse cursor in view coordinates.&] +[s7;i1120;a17; [%-*C@3 keyflags]-|Combination of key flags for Shift, +Ctrl and Alt keys.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:RightUp`(Point`,dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* RightUp]( +[_^`:`:Point^ Point]_[*@3 p], [_^`:`:dword^ dword]_[*@3 keyflags])&] +[s2;b17;a17; This method is called by default implementation of MouseEvent +when mouse left button is released.&] +[s7;i1120;a17; [%-*C@3 p]-|Position of mouse cursor in view coordinates.&] +[s7;i1120;a17; [%-*C@3 keyflags]-|Combination of key flags for Shift, +Ctrl and Alt keys.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:MiddleDown`(Point`,dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Middle +Down]([_^Point^ Point]_[*@3 p], [_^dword^ dword]_[*@3 keyflags])&] +[s2;b17;a17; This method is called by default implementation of MouseEvent +when mouse middle button is pressed.&] +[s7;i1120;a17; [%-*C@3 p]-|Position of mouse cursor in view coordinates.&] +[s7;i1120;a17; [%-*C@3 keyflags]-|Combination of key flags for Shift, +Ctrl and Alt keys.&] +[s3; &] +[s4;%- &] +[s5;:Ctrl`:`:MiddleDouble`(Point`,dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Midd +leDouble]([_^Point^ Point]_[*@3 p], [_^dword^ dword]_[*@3 keyflags])&] +[s2;b17;a17; This method is called by default implementation of MouseEvent +when mouse left button is double`-clicked.&] +[s7;i1120;a17; [%-*C@3 p]-|Position of mouse cursor in view coordinates.&] +[s7;i1120;a17; [%-*C@3 keyflags]-|Combination of key flags for Shift, +Ctrl and Alt keys.&] +[s3; &] +[s4;%- &] +[s5;:Ctrl`:`:MiddleTriple`(Point`,dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Midd +leTriple]([_^Point^ Point]_[*@3 p], [_^dword^ dword]_[*@3 keyflags])&] +[s2; This method is called by default implementation of MouseEvent +when mouse right button is triple`-clicked.&] +[s7;i1120;a17; [%-*C@3 p]-|Position of mouse cursor in view coordinates.&] +[s7;i1120;a17; [%-*C@3 keyflags]-|Combination of key flags for Shift, +Ctrl and Alt keys.&] +[s3; &] +[s4;%- &] +[s5;:Ctrl`:`:MiddleRepeat`(Point`,dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Midd +leRepeat]([_^Point^ Point]_[*@3 p], [_^dword^ dword]_[*@3 keyflags])&] +[s2; This method is repeatedly called by default implementation of +MouseEvent when mouse right button is pressed for some time, +imitating keyboard autorepeat behaviour.&] +[s7;i1120;a17; [%-*C@3 p]-|Position of mouse cursor in view coordinates.&] +[s7;i1120;a17; [%-*C@3 keyflags]-|Combination of key flags for Shift, +Ctrl and Alt keys.&] +[s3; &] +[s4;%- &] +[s5;:Ctrl`:`:MiddleDrag`(Point`,dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Middle +Drag]([_^Point^ Point]_[*@3 p], [_^dword^ dword]_[*@3 keyflags])&] +[s2; This method is called by default implementation of MouseEvent +when user moves the mouse while holding middle button by more +than GUI`_DragDistance pixels. [%-*@3 p] is the starting point +of drag, not the current mouse position.&] +[s3; &] +[s4;%- &] +[s5;:Ctrl`:`:MiddleHold`(Point`,dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Middle +Hold]([_^Point^ Point]_[*@3 p], [_^dword^ dword]_[*@3 keyflags])&] +[s2; This method is called by default implementation of MouseEvent +when user holds the mouse middle button down for a while.&] +[s7;i1120;a17; [%-*C@3 p]-|Position of mouse cursor in view coordinates.&] +[s7;i1120;a17; [%-*C@3 keyflags]-|Combination of key flags for Shift, +Ctrl and Alt keys.&] +[s3; &] +[s4;%- &] +[s5;:Ctrl`:`:MiddleUp`(Point`,dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* MiddleUp +]([_^Point^ Point]_[*@3 p], [_^dword^ dword]_[*@3 keyflags])&] +[s2; This method is called by default implementation of MouseEvent +when mouse middle button is released.&] +[s7;i1120;a17; [%-*C@3 p]-|Position of mouse cursor in view coordinates.&] +[s7;i1120;a17; [%-*C@3 keyflags]-|Combination of key flags for Shift, +Ctrl and Alt keys.&] +[s3; &] +[s4;%- &] +[s5;:Ctrl`:`:MouseWheel`(Point`,int`,dword`):%- [@(0.0.255) virtual] +[@(0.0.255) void]_[* MouseWheel]([_^`:`:Point^ Point]_[*@3 p], [@(0.0.255) int]_[*@3 zdelta], + [_^`:`:dword^ dword]_[*@3 keyflags])&] +[s2;b17;a17; This method is called by default implementation of MouseEvent +when mouse wheel is rotated. Default implementation of this method +propagates event to the parent and suppresses call of ChildMouseEvent +for the parent.&] +[s7;i1120;a17; [%-*C@3 p]-|Position of mouse cursor in view coordinates.&] +[s7;i1120;a17; [%-*C@3 zdelta]-|Amount of rotation.&] +[s7;i1120;a17; [%-*C@3 keyflags]-|Combination of key flags for Shift, +Ctrl and Alt keys.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:MouseLeave`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* MouseLeave]()&] +[s2;b17;a17; This method is called by default implementation of MouseEvent +when mouse cursor leaves view area of Ctrl.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:DragAndDrop`(Point`,PasteClip`&`):%- [@(0.0.255) virtual] +[@(0.0.255) void]_[* DragAndDrop]([_^Point^ Point]_[*@3 p], [_^PasteClip^ PasteClip][@(0.0.255) `& +]_[*@3 d])&] +[s2; This method is called when user performs drag and drop operation +over view area. The drag operation can either be just moving +the mouse, or actual drop `- the difference is that for actual +drop the PasteClip`::Accept method returns true. This allows to +share drag and drop logic, which is very similar, in the single +method.&] +[s3; &] +[s4;%- &] +[s5;:Ctrl`:`:FrameDragAndDrop`(Point`,PasteClip`&`):%- [@(0.0.255) virtual] +[@(0.0.255) void]_[* FrameDragAndDrop]([_^Point^ Point]_[*@3 p], [_^PasteClip^ PasteClip][@(0.0.255) `& +]_[*@3 d])&] +[s2; This method is called when user performs drag and drop operation +over frame area. The drag operation can either be just moving +the mouse, or actual drop `- the difference is that for actual +drop the PasteClip`::Accept method returns true. This allows to +share drag and drop logic, which is very similar, in the single +method.&] +[s3; &] +[s4;%- &] +[s5;:Ctrl`:`:DragRepeat`(Point`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* DragRepeat]([_^Point^ P +oint]_[*@3 p])&] +[s2; This method is called when user holds his drag operation over +single position for some time. This is similar to LeftRepeat +and it is usually used to scroll the content of view when DragRepeat +occurs at the border area of view.&] +[s3; &] +[s4;%- &] +[s5;:Ctrl`:`:DragEnter`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* DragEnter]()&] +[s2; Called when user enters view with drag.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:DragLeave`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* DragLeave]()&] +[s2; Called when user`'s drag leaves the view.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:GetDropData`(const String`&`)const:%- [@(0.0.255) virtual] +[_^String^ String]_[* GetDropData]([@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 f +mt])_[@(0.0.255) const]&] +[s2; This method is invoked to obtain drop data from Ctrl if such +data was not supplied as ClipData in call to DoDragAndDrop. Default +implementation calls GetSelectionData.&] +[s3; &] +[s4;%- &] +[s5;:Ctrl`:`:GetSelectionData`(const String`&`)const:%- [@(0.0.255) virtual] +[_^String^ String]_[* GetSelectionData]([@(0.0.255) const]_[_^String^ String][@(0.0.255) `& +]_[*@3 fmt])_[@(0.0.255) const]&] +[s2; This method should return the widget`'s actual selection in +requested format. It is used for X11 middle mouse selection paste +operation ans as default implementation of GetDropData, because +usually the data to be transfered by drag`&drop operation is +the selection.&] +[s3; &] +[s4;%- &] +[s5;:Ctrl`:`:CursorImage`(Point`,dword`):%- [@(0.0.255) virtual] [_^`:`:Image^ Image]_[* Cu +rsorImage]([_^`:`:Point^ Point]_[*@3 p], [_^`:`:dword^ dword]_[*@3 keyflags])&] +[s2;b17;a17; This method is called by default implementation of MouseEvent +when the shape of mouse cursor is to be determined..&] +[s7;i1120;a17; [%-*C@3 p]-|Position of mouse cursor in view coordinates.&] +[s7;i1120;a17; [%-*C@3 keyflags]-|Combination of key flags for Shift, +Ctrl and Alt keys.&] +[s7;i1120;a17; [*/ Return value]-|Image of new cursor. Default implementation +returns Image`::Arrow().&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:Key`(dword`,int`):%- [@(0.0.255) virtual] [@(0.0.255) bool]_[* Key]([_^`:`:dword^ d +word]_[*@3 key], [@(0.0.255) int]_[*@3 count])&] +[s2;b17;a17; This method provides keyboard input. When keyboard event +occurs and some of U`+`+ application Ctrls has input focus, its +Key method is called. If Key method returns true, processing +of key event is finished. If it returns false, U`+`+ calls Key +method of parent Ctrl and it repeats until either true is returned +or Ctrl has no parent. If such top`-level Ctrl is reached, U`+`+ +calls its HotKey method. Default implementation is void and returns +false.&] +[s7;i1120;a17; [%-*C@3 key]-|Key identifier. If it is less than 65536, +it indicates character code, otherwise it is key`-code. Key`-code +is combination of basic key codes and further flags indicating +state of shift keys and push/release events.&] +[s7;i1120;a17; [%-*C@3 count]-|Accumulated autorepeat count.&] +[s7;i1120;a17; [*/ Return value]-|Method should return true if further +propagation is not desirable (in most cases this indicates that +Ctrl accepted the key).&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:HotKey`(dword`):%- [@(0.0.255) virtual] [@(0.0.255) bool]_[* HotKey]([_^`:`:dword^ d +word]_[*@3 key])&] +[s2;b17;a17; This method is called when no Ctrl accepts key event +using Key method. Default implementation calls HotKey method +child Ctrls. If some child Ctrl returns true, method returns +true, otherwise it returns false.&] +[s7;i1120;a17; [%-*C@3 key]-|Key indentifier.&] +[s7;i1120;a17; [*/ Return value]-|Method should return true to stop +further distribution of key event via HotKey methods.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:GotFocus`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* GotFocus]()&] +[s2;b17;a17; This method is called when Ctrl receives input focus. +Default implementation is void.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:LostFocus`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* LostFocus]()&] +[s2;b17;a17; This method is called when Ctrl loses input focus. Default +implementation is void.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:ChildFrameMouseEvent`(Ctrl`*`,int`,Point`,int`,dword`):%- [@(0.0.255) virt +ual] [@(0.0.255) void]_[* ChildFrameMouseEvent]([_^Ctrl^ Ctrl]_`*[*@3 child], +[@(0.0.255) int]_[*@3 event], [_^Point^ Point]_[*@3 p], [@(0.0.255) int]_[*@3 zdelta], +[_^dword^ dword]_[*@3 keyflags])&] +[s2; This method is invoked before the [/ frame] mouse [%-*@3 event] +is routed to the [%-*@3 child]. Parameters of the event are the +same as those in MouseEvent method. Default implementation calls +the parent`'s ChildMouseEvent method.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:ChildMouseEvent`(Ctrl`*`,int`,Point`,int`,dword`):%- [@(0.0.255) virtual] +[@(0.0.255) void]_[* ChildMouseEvent]([_^`:`:Ctrl^ Ctrl]_`*[*@3 child], +[@(0.0.255) int]_[*@3 event], [_^`:`:Point^ Point]_[*@3 p], [@(0.0.255) int]_[*@3 zdelta], +[_^`:`:dword^ dword]_[*@3 keyflags])&] +[s2;b17;a17; This method is invoked before the mouse [%-*@3 event] +is routed to the [%-*@3 child]. Parameters of the event are the +same as those in MouseEvent method. Default implementation calls +the parent`'s ChildMouseEvent method.&] +[s3; &] +[s4;%- &] +[s5;:Ctrl`:`:ChildGotFocus`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* ChildGotFocus]( +)&] +[s2;b17;a17; This method is invoked when any of child Ctrls receives +input focus.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:ChildLostFocus`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* ChildLostFocus +]()&] +[s2;b17;a17; This method is invoked when any of child Ctrls loses +input focus.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:GetAccessKeys`(`)const:%- [@(0.0.255) virtual] [_^`:`:dword^ dword]_[* GetAcce +ssKeys]()_[@(0.0.255) const]&] +[s2;b17;a17; Ctrl should use this method to signal presence of access +keys. Access keys are keyboard keys that can be used to access +or activate dialog functions when pressed together with Alt key. +They can be defined by application designer (usually using `& +or `\b in labels), or they are automatically synthesized using +[* AssignAccessKeys] method. If Ctrl (of one of Ctrls in its child +tree) has some access keys and those keys are letters (in range +`'A`' `- `'Z`'), they should be returned as bit value using AccessKeyBit +function. Other access keys should be indicated by bit 0 (that +means, by binary or of 1 to result). Default implementation returns +0.&] +[s7;i1120;a17; [*/ Return value]-|Bit set of access keys.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:AssignAccessKeys`(dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* AssignA +ccessKeys]([_^`:`:dword^ dword]_[*@3 used])&] +[s2;b17;a17; This method gives a Ctrl chance to synthesize its letter +access keys.&] +[s7;i1120;a17; [%-*C@3 used]-|Set of letter access keys that are already +used and should not be chosen by Ctrl as its access keys.&] +[s3; &] +[s4;%- &] +[s5;:Ctrl`:`:ChildAdded`(Ctrl`*`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* ChildAdded]( +[_^`:`:Ctrl^ Ctrl]_`*[*@3 child])&] +[s2;b17;a17; This method is invoked when child is added to Ctrl.&] +[s7;i1120;a17; [%-*C@3 child]-|Pointer to child added.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:ChildRemoved`(Ctrl`*`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* ChildRemov +ed]([_^`:`:Ctrl^ Ctrl]_`*[*@3 child])&] +[s2;b17;a17; This method is invoked when child is removed from Ctrl.&] +[s7;i1120;a17; [%-*C@3 child]-|Pointer to child removed.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:ParentChange`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* ParentChange]()&] +[s2;b17;a17; This method is called when Ctrl is added or removed +from parent.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:State`(int`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* State]([@(0.0.255) int +]_[*@3 reason])&] +[s2;b17;a17; This method is used to notify Ctrls about special state`-change +events that are not covered by virtual methods. Method is called +for entire child tree of Ctrl whose state has changed.&] +[s7;i1120;a17; [%-*C@3 reason]-|Code of event. Standard reasons are +enumerated by StateReason enum.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:Layout`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Layout]()&] +[s2;b17;a17; This method is invoked when layout of Ctrl has to be +refreshed. This is usually either before window is displayed +or when the Ctrl is resized.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:GetMinSize`(`)const:%- [@(0.0.255) virtual] [_^`:`:Size^ Size]_[* GetMinSize]( +)_[@(0.0.255) const]&] +[s2;b17;a17; This method should return [/ minimal] size of Ctrl. This +is used e.g. to limit the minimal size of windows. Default implementation +returns size suitable for edit`-field type of widget, based on +default GUI font and EditFieldIsThin setting.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:GetStdSize`(`)const:%- [@(0.0.255) virtual] [_^`:`:Size^ Size]_[* GetStdSize]( +)_[@(0.0.255) const]&] +[s2;b17;a17; This method should return [/ standard] size of Ctrl. Default +implementation returns calls GetMinSize, increases width 10 and +returns resulting Size.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:GetMaxSize`(`)const:%- [@(0.0.255) virtual] [_^Size^ Size]_[* GetMaxSize]()_[@(0.0.255) c +onst]&] +[s2; This method should return [/ maximal] size of Ctrl. Default implementation +returns the size of virtual working area. Redefinition can be +used to e.g. define the maximum size of window (as maximal size +of view area).&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:IsShowEnabled`(`)const:%- [@(0.0.255) virtual] [@(0.0.255) bool]_[* IsShowEnab +led]()_[@(0.0.255) const]&] +[s2;b17;a17; This method indicates whether Ctrl should be painted +as enabled. Default implementation returns IsEnabled() `&`& (!parent +`|`| parent`->IsShowEnabled()), however TopWindow overloads this +function so that owner of modal dialogs while being disabled +during modal dialog lifetime are displayed with enabled Ctrls.&] +[s7;i1120;a17; [*/ Return value]-|true if Ctrl should be painted as +enabled.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:GetOpaqueRect`(`)const:%- [@(0.0.255) virtual] [_^Rect^ Rect]_[* GetOpaqueRect +]()_[@(0.0.255) const]&] +[s2; Returns the rectangle of view area that is opaque (is completely +filled when painting the widget). The default implementation +returns the whole view area if Transparent flag is set, empty +rectangle otherwise. Paint routine uses this information to optimize.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:GetVoidRect`(`)const:%- [@(0.0.255) virtual] [_^Rect^ Rect]_[* GetVoidRect]()_ +[@(0.0.255) const]&] +[s2; Returns the rectangle of view area that is fully transparent +(nothing is painted in that rectangle). Paint routine uses this +information to optimize.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:Updated`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Updated]()&] +[s2; Invoked by Update method. Default implementation is empty.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:OverPaint`(`)const:%- [@(0.0.255) virtual] [@(0.0.255) int]_[* OverPaint]()_[@(0.0.255) c +onst]&] +[s2;b17;a17; This method can returns non`-zero number that represents +paint extension margin of view area `- Ctrl can paint inside +this margin despite that fact that it does not belong to view. +This is useful to represent some specific skinning effect (like +glare around the button). Default implementation returns zero.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:Close`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Close]()&] +[s2;b17;a17; Closes top`-level Ctrl. If Ctrl is not top`-level, has +no effect. If it is and is open in host GUI (either as pop`-up +or as [^topic`:`/`/CtrlCore`/src`/TopWindow`$en`-us`#`:`:TopWindow`:`:class^ TopWin +dow]), it should close it. Default implementation closes. TopWindow +overrides this method to break modal loop instead of closing +if modal loop is performed for it.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:IsOcxChild`(`):%- [@(0.0.255) virtual] [@(0.0.255) bool]_[* IsOcxChild]()&] +[s2;b17;a17; Used for Ocx control implementation.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:GetDesc`(`)const:%- [@(0.0.255) virtual] [_^String^ String]_[* GetDesc]()_[@(0.0.255) c +onst]&] +[s2; Returns description of Ctrl for diagnostic purposes. Default +implementation is empty.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:WhenAction:%- [_^Callback^ Callback]_[* WhenAction]&] +[s2; This callback is used to signal that [/ user] has changed the +value (or state) of widget.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:SetData`(const Value`&`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* SetData]( +[@(0.0.255) const]_[_^`:`:Value^ Value][@(0.0.255) `&]_[*@3 data])&] +[s2;b17;a17; Sets the new value to the object. Default implementation +is void.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:GetData`(`)const:%- [@(0.0.255) virtual] [_^`:`:Value^ Value]_[* GetData]()_[@(0.0.255) c +onst]&] +[s2;b17;a17; Gets current value of the object. Default implementation +returns Value() `- void value.&] +[s7;i1120;a17; [*/ Return value]-|Value of object.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:SetModify`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* SetModify]()&] +[s2;b17;a17; Sets modification flag.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:ClearModify`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* ClearModify]()&] +[s2;b17;a17; Clears modification flag. Default implementation is +empty.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:IsModified`(`)const:%- [@(0.0.255) virtual] [@(0.0.255) bool]_[* IsModified]() +_[@(0.0.255) const]&] +[s2;b17;a17; Queries modification flag. Default implementation returns +false.&] +[s7;i1120;a17; [*/ Return value]-|Modification flag.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:Accept`(`):%- [@(0.0.255) virtual] [@(0.0.255) bool]_[* Accept]()&] +[s2;b17;a17; This virtual method is called when value of Ctrl is +about to be accepted. Default implementation calls Accept for +all child Ctrls and returns false if any of child Ctrls returns +false, true otherwise.&] +[s2;b17;a17; Typical use is when user pressed OK button. If any Ctrl +of dialog returns false, OK is canceled.&] +[s2;b17;a17; Typical implementation of this method should test whether +current state of Ctrl (its edited value) matches requirements. +If it does, it should finish editing, accept edited value and +return true. Otherwise it should return false, &] +[s7;i1120;a17; [*/ Return value]-|Ctrl should return true if it successfully +finished editing, false otherwise.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:Reject`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Reject]()&] +[s2;b17;a17; This virtual method is called when Ctrl should abort +editing, discarding edited value. Default implementation calls +Reject for all child Ctrls.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:Serialize`(Stream`&`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Serialize]( +[_^`:`:Stream^ Stream][@(0.0.255) `&]_[*@3 s])&] +[s2;b17;a17; Serialization method. Should serialize the value of +Ctrl in a way that is suitable for dialog backup and optional +restore (e.g. when user presses Cancel button).&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:Jsonize`(JsonIO`&`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Jsonize]([_^JsonIO^ J +sonIO][@(0.0.255) `&]_[*@3 jio])&] +[s2; Method to convert the data of widget to/from JSON. Default implementation +calls Jsonize for Value obtained/set by GetData/SetData.&] +[s3; &] +[s4;%- &] +[s5;:Ctrl`:`:Xmlize`(XmlIO`&`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Xmlize]([_^XmlIO^ X +mlIO][@(0.0.255) `&]_[*@3 xio])&] +[s2; Method to convert the data of widget to/from XML. Default implementation +calls Jsonize for Value obtained/set by GetData/SetData.&] +[s3; &] +[s4;%- &] +[s5;:Ctrl`:`:AddChild`(Ctrl`*`):%- [@(0.0.255) void]_[* AddChild]([_^`:`:Ctrl^ Ctrl]_`*[*@3 c +hild])&] +[s2;b17;a17; Adds a child Ctrl as last one.&] +[s7;i1120;a17; [%-*C@3 child]-|Pointer to child Ctrl at the end of child +list. Note that U`+`+ never takes ownership of Ctrls `- never +calls delete for [@3 child. ]That allows using non`-heap based +Ctrls. &] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:AddChild`(Ctrl`*`,Ctrl`*`):%- [@(0.0.255) void]_[* AddChild]([_^`:`:Ctrl^ Ctrl +]_`*[*@3 child], [_^`:`:Ctrl^ Ctrl]_`*[*@3 insafter])&] +[s2;b17;a17; Inserts child Ctrl after another Ctrl that is already +child. If [%-*@3 insafter] is NULL, child is inserted as the first +child.&] +[s7;i1120;a17; [%-*C@3 child]-|Pointer to child Ctrl.&] +[s7;i1120;a17; [%-*C@3 insafter]-|Ctrl that will be before inserted +Ctrl.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:AddChildBefore`(Ctrl`*`,Ctrl`*`):%- [@(0.0.255) void]_[* AddChildBefore]([_^`:`:Ctrl^ C +trl]_`*[*@3 child], [_^`:`:Ctrl^ Ctrl]_`*[*@3 insbefore])&] +[s2;b17;a17; Inserts child Ctrl before another Ctrl that is already +child. If [%-*@3 insbefore], child is inserted as last child.&] +[s7;i1120;a17; [%-*C@3 child]-|Pointer to child Ctrl.&] +[s7;i1120;a17; [%-*C@3 insbefore]-|Ctrl that will be after inserted +Ctrl.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:RemoveChild`(Ctrl`*`):%- [@(0.0.255) void]_[* RemoveChild]([_^`:`:Ctrl^ Ctrl]_ +`*[*@3 child])&] +[s2;b17;a17; Removes Ctrl from child list. Ctrl is never deleted.&] +[s7;i1120;a17; [%-*C@3 child]-|Child to be removed.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:GetParent`(`)const:%- [_^`:`:Ctrl^ Ctrl]_`*[* GetParent]()_[@(0.0.255) const]&] +[s2;b17;a17; Returns parent of Ctrl or NULL if Ctrl is topmost.&] +[s7;i1120;a17; [*/ Return value]-|Pointer to parent Ctrl.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:GetLastChild`(`)const:%- [_^`:`:Ctrl^ Ctrl]_`*[* GetLastChild]()_[@(0.0.255) c +onst]&] +[s2;b17;a17; Returns last child.&] +[s7;i1120;a17; [*/ Return value]-|Pointer to last child or NULL if Ctrl +has no children.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:GetFirstChild`(`)const:%- [_^`:`:Ctrl^ Ctrl]_`*[* GetFirstChild]()_[@(0.0.255) c +onst]&] +[s2;b17;a17; Returns first child.&] +[s7;i1120;a17; [*/ Return value]-|Pointer to first child or NULL if +Ctrl has no children.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:GetPrev`(`)const:%- [_^`:`:Ctrl^ Ctrl]_`*[* GetPrev]()_[@(0.0.255) const]&] +[s2;b17;a17; Returns child that is before this Ctrl in child list +or NULL if Ctrl is first or not in list.&] +[s7;i1120;a17; [*/ Return value]-|Pointer to previous child or NULL.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:GetNext`(`)const:%- [_^`:`:Ctrl^ Ctrl]_`*[* GetNext]()_[@(0.0.255) const]&] +[s2;b17;a17; Returns next child that is after this Ctrl in child +list or NULL if Ctrl is last or not in list.&] +[s7;i1120;a17; [*/ Return value]-|Pointer to next child or NULL.&] +[s3;%- &] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:GetChildIndex`(const Ctrl`*`)const:%- [@(0.0.255) int]_[* GetChildIndex]([@(0.0.255) c +onst]_[_^Ctrl^ Ctrl]_`*[*@3 child])_[@(0.0.255) const]&] +[s2; Returns the index of [%-*@3 child] (first child has index 0, second +child 1 etc...). If [%-*@3 child] is not present in this Ctrl, +returns `-1. Note that this function performs sequential scan +of child (results in O(n) complexity).&] +[s3; &] +[s4;%- &] +[s5;:Ctrl`:`:GetChildCount`(`)const:%- [@(0.0.255) int]_[* GetChildCount]()_[@(0.0.255) con +st]&] +[s2; Returns the number of child ctrls. Note that this function performs +sequential scan of child (results in O(n) complexity).&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:GetIndexChild`(int`)const:%- [_^Ctrl^ Ctrl]_`*[* GetIndexChild]([@(0.0.255) in +t]_[*@3 i])_[@(0.0.255) const]&] +[s2; Retruns child at index [%-*@3 i] or NULL if there is none. Note +that this function performs sequential scan of child (results +in O(n) complexity).&] +[s3; &] +[s4;%- &] +[s5;:Ctrl`:`:IsChild`(`)const:%- [@(0.0.255) bool]_[* IsChild]()_[@(0.0.255) const]&] +[s7;i1120;a17; [*/ Return value]-|True if Ctrl has parent.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:ChildFromPoint`(Point`&`)const:%- [_^`:`:Ctrl^ Ctrl]_`*[* ChildFromPoint]([_^`:`:Point^ P +oint][@(0.0.255) `&]_[*@3 pt])_[@(0.0.255) const]&] +[s2;b17;a17; Checks whether opened top`-level Ctrl is foreground.&] +[s7;i1120;a17; [*/ Return value]-|True if Ctrl is foreground.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:IsForeground`(`)const:%- [@(0.0.255) bool]_[* IsForeground]()_[@(0.0.255) cons +t]&] +[s2; Returns true if Ctrl or its top`-level parent is foreground +window.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:SetForeground`(`):%- [@(0.0.255) void]_[* SetForeground]()&] +[s2;b17;a17; Asks platform to put top`-level Ctrl to foreground.&] +[s3; &] +[s4;%- &] +[s5;:Ctrl`:`:GetTopCtrl`(`)const:%- [@(0.0.255) const]_[_^Ctrl^ Ctrl]_`*[* GetTopCtrl]()_[@(0.0.255) c +onst]&] +[s2; Gets the top`-level Ctrl, that is Ctrl that has this Ctrl in +child tree and has no parent.&] +[s7;i1120;a17; [*/ Return value]-|Pointer to top`-level Ctrl. Can return +this.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:GetTopCtrl`(`):%- [_^Ctrl^ Ctrl]_`*[* GetTopCtrl]()&] +[s2; Gets the top`-level Ctrl, that is Ctrl that has this Ctrl in +child tree and has no parent.&] +[s7;i1120;a17; [*/ Return value]-|Pointer to top`-level Ctrl. Can return +this.&] +[s3; &] +[s4;%- &] +[s5;:Ctrl`:`:GetOwner`(`)const:%- [@(0.0.255) const]_[_^Ctrl^ Ctrl]_`*[* GetOwner]()_[@(0.0.255) c +onst]&] +[s2; Returns owner of top`-level Ctrl. Example of owned window is +dialog launched from main application window. Owner is another +top`-level Ctrl.&] +[s7;i1120;a17; [*/ Return value]-|Pointer to owner top`-level Ctrl or +NULL is window is not owned.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:GetOwner`(`):%- [_^`:`:Ctrl^ Ctrl]_`*[* GetOwner]()&] +[s2;b17;a17; Returns owner of top`-level Ctrl.&] +[s7;i1120;a17; [*/ Return value]-|Pointer to owner top`-level Ctrl or +NULL is window is not owned.&] +[s3; &] +[s4;%- &] +[s5;:Ctrl`:`:GetTopCtrlOwner`(`)const:%- [@(0.0.255) const]_[_^Ctrl^ Ctrl]_`*[* GetTopCtrlO +wner]()_[@(0.0.255) const]&] +[s2; Equivalent to GetTopCtrl()`->GetOwner() call.&] +[s7;i1120;a17; [*/ Return value]-|Pointer to owner of top`-level Ctrl.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:GetTopCtrlOwner`(`):%- [_^`:`:Ctrl^ Ctrl]_`*[* GetTopCtrlOwner]()&] +[s2;b17;a17; Equivalent to GetTopCtrl()`->GetOwner() call.&] +[s7;i1120;a17; [*/ Return value]-|Pointer to owner of top`-level Ctrl.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:GetOwnerCtrl`(`):%- [_^`:`:Ctrl^ Ctrl]_`*[* GetOwnerCtrl]()&] +[s5;K:Ctrl`:`:GetOwnerCtrl`(`)const:%- [*@(0.0.255) const][*@(64) _][*^`:`:Ctrl^@(64) Ctrl][*@(64) _ +`*][* GetOwnerCtrl][*@(64) ()_][*@(0.0.255) const]&] +[s2;b17;a17; Returns the owner Ctrl. Unlike GetOwner, it returns +actual widget that was used as `"owner`" parameter in Open or +PopUp calls.&] +[s3; &] +[s4;%- &] +[s5;:Ctrl`:`:GetTopWindow`(`)const:%- [@(0.0.255) const]_[_^TopWindow^ TopWindow]_`*[* GetT +opWindow]()_[@(0.0.255) const]&] +[s2; TopWindow that contains this Ctrl.&] +[s7;i1120;a17; [*/ Return value]-|Pointer to TopWindow.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:GetTopWindow`(`):%- [_^`:`:TopWindow^ TopWindow]_`*[* GetTopWindow]()&] +[s2;b17;a17; TopWindow that contains this Ctrl.&] +[s7;i1120;a17; [*/ Return value]-|Pointer to TopWindow.&] +[s3; &] +[s4;%- &] +[s5;:Ctrl`:`:GetMainWindow`(`)const:%- [@(0.0.255) const]_[_^TopWindow^ TopWindow]_`*[* Get +MainWindow]()_[@(0.0.255) const]&] +[s2; Returns main window (one with no owner) that directly or indirectly +owns this Ctrl.&] +[s7;i1120;a17; [*/ Return value]-|Pointer to main window.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:GetMainWindow`(`):%- [_^`:`:TopWindow^ TopWindow]_`*[* GetMainWindow]()&] +[s2;b17;a17; Returns main window (one with no owner) that directly +or indirectly owns this Ctrl.&] +[s7;i1120;a17; [*/ Return value]-|Pointer to main window.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:SetFrame`(int`,CtrlFrame`&`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* SetFrame]( +[@(0.0.255) int]_[*@3 i], [_^`:`:CtrlFrame^ CtrlFrame][@(0.0.255) `&]_[*@3 frm])&] +[s2;b17;a17; Sets Frame at given position. If there is no such position +yet, required number of NullFrame frames is added. Only reference +to frame is stored, that means that frame must exists during +the time it is used in Ctrl. Also, some frames can also be used +for multiple Ctrls.&] +[s7;i1120;a17; [%-*C@3 i]-|Position. First frame with i `=`= 0 is outermost.&] +[s7;i1120;a17; [%-*C@3 frm]-|Reference to frame.&] +[s7;i1120;a17; [*/ Return value]-|Returns `*this to allow chaining of +method calls.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:SetFrame`(CtrlFrame`&`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* SetFrame]([_^`:`:CtrlFrame^ C +trlFrame][@(0.0.255) `&]_[*@3 frm])&] +[s2;b17;a17; Sets frame at position 0.&] +[s7;i1120;a17; [%-*C@3 frm]-|Reference to frame.&] +[s7;i1120;a17; [*/ Return value]-|`*this.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:AddFrame`(CtrlFrame`&`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* AddFrame]([_^`:`:CtrlFrame^ C +trlFrame][@(0.0.255) `&]_[*@3 frm])&] +[s2;b17;a17; Adds frame at inner`-most position.&] +[s7;i1120;a17; [%-*C@3 frm]-|Reference to frame.&] +[s7;i1120;a17; [*/ Return value]-|`*this.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:GetFrame`(int`)const:%- [@(0.0.255) const]_[_^`:`:CtrlFrame^ CtrlFrame][@(0.0.255) `& +]_[* GetFrame]([@(0.0.255) int]_[*@3 i]_`=_[@3 0])_[@(0.0.255) const]&] +[s2;b17;a17; Returns reference to frame at given position.&] +[s7;i1120;a17; [%-*C@3 i]-|Position.&] +[s7;i1120;a17; [*/ Return value]-|Reference to frame.&] +[s3; &] +[s4;%- &] +[s5;:Ctrl`:`:GetFrame`(int`):%- [_^CtrlFrame^ CtrlFrame][@(0.0.255) `&]_[* GetFrame]([@(0.0.255) i +nt]_[*@3 i]_`=_[@3 0])&] +[s2; Returns reference to frame at given position.&] +[s7;i1120;a17; [%-*C@3 i]-|Position.&] +[s7;i1120;a17; [*/ Return value]-|Reference to frame.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:RemoveFrame`(int`):%- [@(0.0.255) void]_[* RemoveFrame]([@(0.0.255) int]_[*@3 i]) +&] +[s2; Removes frame at given position.&] +[s7;i1120;a17; [%-*C@3 i]-|Index of frame.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:RemoveFrame`(CtrlFrame`&`):%- [@(0.0.255) void]_[* RemoveFrame]([_^`:`:CtrlFrame^ C +trlFrame][@(0.0.255) `&]_[*@3 frm])&] +[s2;b17;a17; Removes first frame equal to [@3 frm]. Equality means +here that pointers to both frames are the same (it is same instance).&] +[s7;i1120;a17; [%-*C@3 frm]-|Frame to remove.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:InsertFrame`(int`,CtrlFrame`&`):%- [@(0.0.255) void]_[* InsertFrame]([@(0.0.255) i +nt]_[*@3 i], [_^`:`:CtrlFrame^ CtrlFrame][@(0.0.255) `&]_[*@3 frm])&] +[s2;b17;a17; Inserts frame at given position.&] +[s7;i1120;a17; [%-*C@3 i]-|Position.&] +[s7;i1120;a17; [%-*C@3 frm]-|Reference to frame.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:FindFrame`(CtrlFrame`&`):%- [@(0.0.255) int]_[* FindFrame]([_^`:`:CtrlFrame^ C +trlFrame][@(0.0.255) `&]_[*@3 frm])&] +[s2;b17;a17; Finds first frame equal to [@3 frm]. Equality means here +that pointers to both frames are the same (it is same instance).&] +[s7;i1120;a17; [%-*C@3 frm]-|Frame to find.&] +[s7;i1120;a17; [*/ Return value]-|Index of frame or negative value if +frame is not found.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:GetFrameCount`(`)const:%- [@(0.0.255) int]_[* GetFrameCount]()_[@(0.0.255) con +st]&] +[s2;b17;a17; Returns count of frames in Ctrl.&] +[s7;i1120;a17; [*/ Return value]-|Count of frames.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:ClearFrames`(`):%- [@(0.0.255) void]_[* ClearFrames]()&] +[s2;b17;a17; Removes all frames from Ctrl. Frame at position 0 then +added and set to NullFrame.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:IsOpen`(`)const:%- [@(0.0.255) bool]_[* IsOpen]()_[@(0.0.255) const]&] +[s2;b17;a17; Checks whether top`-level Ctrl of this Ctrl is open.&] +[s7;i1120;a17; [*/ Return value]-|true if open.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:Shutdown`(`):%- [@(0.0.255) void]_[* Shutdown]()&] +[s2;b17;a17; Sets internal flag indicating that Ctrl is being destructed. +This is rarely used to solve some destruction order problems.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:IsShutdown`(`)const:%- [@(0.0.255) bool]_[* IsShutdown]()_[@(0.0.255) const]&] +[s2;b17;a17; Checks whether internal shutdown flag is set.&] +[s7;i1120;a17; [*/ Return value]-|True if in shutdown mode.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:SetPos`(Ctrl`:`:LogPos`,bool`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* SetPos]( +[_^`:`:Ctrl`:`:LogPos^ LogPos]_[*@3 p], [@(0.0.255) bool]_[*@3 inframe])&] +[s2;b17;a17; Sets [^topic`:`/`/CtrlCore`/src`/LogPos`$en`-us^ logical +position] of Ctrl. If Ctrl is top`-level, logical position must +be of left`-top type.&] +[s7;i1120;a17; [%-*C@3 p]-|Logical position.&] +[s7;i1120;a17; [%-*C@3 inframe]-|If true, Ctrl is placed into [^topic`:`/`/CtrlCore`/src`/AboutFrames`$en`-us^ f +rame area] instead of view area&] +[s7;i1120;a17; [*/ Return value]-|`*this.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:SetPos`(Ctrl`:`:LogPos`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* SetPos]([_^`:`:Ctrl`:`:LogPos^ L +ogPos]_[*@3 p])&] +[s2;b17;a17; Sets logical position of Ctrl in view area.&] +[s7;i1120;a17; [%-*C@3 p]-|Logical position.&] +[s7;i1120;a17; [*/ Return value]-|`*this.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:SetPos`(Ctrl`:`:Logc`,Ctrl`:`:Logc`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* S +etPos]([_^`:`:Ctrl`:`:Logc^ Logc]_[*@3 x], [_^`:`:Ctrl`:`:Logc^ Logc]_[*@3 y])&] +[s2;b17;a17; Sets logical position by individual coordinates (in +view area).&] +[s7;i1120;a17; [%-*C@3 x]-|Horizontal logical position.&] +[s7;i1120;a17; [%-*C@3 y]-|Vertical logical postion.&] +[s7;i1120;a17; [*/ Return value]-|`*this.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:SetPosX`(Ctrl`:`:Logc`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* SetPosX]([_^`:`:Ctrl`:`:Logc^ L +ogc]_[*@3 x])&] +[s2;b17;a17; Sets horizontal logical position only (in view area).&] +[s7;i1120;a17; [%-*C@3 x]-|Horizontal logical position.&] +[s7;i1120;a17; [*/ Return value]-|`*this.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:SetPosY`(Ctrl`:`:Logc`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* SetPosY]([_^`:`:Ctrl`:`:Logc^ L +ogc]_[*@3 y])&] +[s2;b17;a17; Sets vertical logical position only (in view area).&] +[s7;i1120;a17; [%-*C@3 y]-|Vertical logical position.&] +[s7;i1120;a17; [*/ Return value]-|`*this.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:SetRect`(const Rect`&`):%- [@(0.0.255) void]_[* SetRect]([@(0.0.255) const]_[_^`:`:Rect^ R +ect][@(0.0.255) `&]_[*@3 r])&] +[s2;b17;a17; Sets left`-top logical position (in view area).&] +[s7;i1120;a17; [%-*C@3 r]-|Rectangle determines left`-top position.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:SetRect`(int`,int`,int`,int`):%- [@(0.0.255) void]_[* SetRect]([@(0.0.255) int +]_[*@3 x], [@(0.0.255) int]_[*@3 y], [@(0.0.255) int]_[*@3 cx], [@(0.0.255) int]_[*@3 cy])&] +[s2;b17;a17; Sets left`-top logical position (in view area).&] +[s7;i1120;a17; [%-*C@3 x]-|Distance between parent rectangle left`-edge +and Ctrl.&] +[s7;i1120;a17; [%-*C@3 y]-|Distance between parent rectangle top`-edge +and Ctrl.&] +[s7;i1120;a17; [%-*C@3 cx]-|Horizontal size.&] +[s7;i1120;a17; [%-*C@3 cy]-|Vertical size.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:SetRectX`(int`,int`):%- [@(0.0.255) void]_[* SetRectX]([@(0.0.255) int]_[*@3 x], + [@(0.0.255) int]_[*@3 cx])&] +[s2;b17;a17; Sets left horizontal logical position (in view area).&] +[s7;i1120;a17; [%-*C@3 x]-|Distance between parent rectangle left`-edge +and Ctrl.&] +[s7;i1120;a17; [%-*C@3 cx]-|Horizontal size.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:SetRectY`(int`,int`):%- [@(0.0.255) void]_[* SetRectY]([@(0.0.255) int]_[*@3 y], + [@(0.0.255) int]_[*@3 cy])&] +[s2;b17;a17; Sets top vertical logical position (in view area).&] +[s7;i1120;a17; [%-*C@3 y]-|Distance between parent rectangle top`-edge +and Ctrl.&] +[s7;i1120;a17; [%-*C@3 cy]-|Vertical size.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:SetFramePos`(Ctrl`:`:LogPos`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* SetFrame +Pos]([_^`:`:Ctrl`:`:LogPos^ LogPos]_[*@3 p])&] +[s2;b17;a17; Sets logical position of Ctrl in frame area.&] +[s7;i1120;a17; [%-*C@3 p]-|Logical position.&] +[s7;i1120;a17; [*/ Return value]-|`*this.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:SetFramePos`(Ctrl`:`:Logc`,Ctrl`:`:Logc`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `& +]_[* SetFramePos]([_^`:`:Ctrl`:`:Logc^ Logc]_[*@3 x], [_^`:`:Ctrl`:`:Logc^ Logc]_[*@3 y])&] +[s2;b17;a17; Sets logical position by individual coordinates (in +frame area).&] +[s7;i1120;a17; [%-*C@3 x]-|Horizontal logical position.&] +[s7;i1120;a17; [%-*C@3 y]-|Vertical logical postion.&] +[s7;i1120;a17; [*/ Return value]-|`*this.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:SetFramePosX`(Ctrl`:`:Logc`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* SetFrameP +osX]([_^`:`:Ctrl`:`:Logc^ Logc]_[*@3 x])&] +[s2;b17;a17; Sets horizontal logical position only (in frame area).&] +[s7;i1120;a17; [%-*C@3 x]-|Horizontal logical position.&] +[s7;i1120;a17; [*/ Return value]-|`*this.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:SetFramePosY`(Ctrl`:`:Logc`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* SetFrameP +osY]([_^`:`:Ctrl`:`:Logc^ Logc]_[*@3 y])&] +[s2;b17;a17; Sets vertical logical position only (in frame area).&] +[s7;i1120;a17; [%-*C@3 y]-|Vertical logical position.&] +[s7;i1120;a17; [*/ Return value]-|`*this.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:SetFrameRect`(const Rect`&`):%- [@(0.0.255) void]_[* SetFrameRect]([@(0.0.255) c +onst]_[_^`:`:Rect^ Rect][@(0.0.255) `&]_[*@3 r])&] +[s2;b17;a17; Sets left`-top logical position (in frame area).&] +[s7;i1120;a17; [%-*C@3 r]-|Rectangle determines left`-top position.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:SetFrameRect`(int`,int`,int`,int`):%- [@(0.0.255) void]_[* SetFrameRect]([@(0.0.255) i +nt]_[*@3 x], [@(0.0.255) int]_[*@3 y], [@(0.0.255) int]_[*@3 cx], [@(0.0.255) int]_[*@3 cy])&] +[s2;b17;a17; Sets left`-top logical position (in frame area).&] +[s7;i1120;a17; [%-*C@3 x]-|Distance between parent rectangle left`-edge +and Ctrl.&] +[s7;i1120;a17; [%-*C@3 y]-|Distance between parent rectangle top`-edge +and Ctrl.&] +[s7;i1120;a17; [%-*C@3 cx]-|Horizontal size.&] +[s7;i1120;a17; [%-*C@3 cy]-|Vertical size.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:SetFrameRectX`(int`,int`):%- [@(0.0.255) void]_[* SetFrameRectX]([@(0.0.255) i +nt]_[*@3 x], [@(0.0.255) int]_[*@3 cx])&] +[s2;b17;a17; Sets left horizontal logical position (in frame area).&] +[s7;i1120;a17; [%-*C@3 x]-|Distance between parent rectangle left`-edge +and Ctrl.&] +[s7;i1120;a17; [%-*C@3 cx]-|Horizontal size.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:SetFrameRectY`(int`,int`):%- [@(0.0.255) void]_[* SetFrameRectY]([@(0.0.255) i +nt]_[*@3 y], [@(0.0.255) int]_[*@3 cy])&] +[s2;b17;a17; Sets top vertical logical position (in frame area).&] +[s7;i1120;a17; [%-*C@3 y]-|Distance between parent rectangle top`-edge +and Ctrl.&] +[s7;i1120;a17; [%-*C@3 cy]-|Vertical size.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:InFrame`(`)const:%- [@(0.0.255) bool]_[* InFrame]()_[@(0.0.255) const]&] +[s7;i1120;a17; [*/ Return value]-|true when Ctrl has position in frame +area.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:InView`(`)const:%- [@(0.0.255) bool]_[* InView]()_[@(0.0.255) const]&] +[s7;i1120;a17; [*/ Return value]-|true when Ctrl has position in view +area.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:GetPos`(`)const:%- [_^`:`:Ctrl`:`:LogPos^ LogPos]_[* GetPos]()_[@(0.0.255) con +st]&] +[s7;i1120;a17; [*/ Return value]-|Logical position of Ctrl&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:RefreshLayout`(`):%- [@(0.0.255) void]_[* RefreshLayout]()&] +[s2;b17;a17; Recomputes layout for Ctrl. This includes calling FrameLayout +for all frames and calling Layout virtual method. Layout of child +widgets is recomputed if their size changes.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:RefreshLayoutDeep`(`):%- [@(0.0.255) void]_[* RefreshLayoutDeep]()&] +[s2; Recomputes layout for the whole Ctrl tree `- unlike RefreshLayout, +recomputes layout of all descendants regardless whether their +size has changed.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:RefreshParentLayout`(`):%- [@(0.0.255) void]_[* RefreshParentLayout]()&] +[s2;b17;a17; If Ctrl has parent, calls parent`->RefreshLayout().&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:UpdateLayout`(`):%- [@(0.0.255) void]_[* UpdateLayout]()&] +[s2; Recomputes layout of widget by recalculating its frame coverage, +then, if view size has changed, calls Layout method (this is +the difference from RefreshLayout, which calls Layout always). +Layout of child widgets is recomputed if their size changes.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:UpdateParentLayout`(`):%- [@(0.0.255) void]_[* UpdateParentLayout]()&] +[s2; Calls UpdateLayout for parent (if exists).&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:LeftPos`(int`,int`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* LeftPos]([@(0.0.255) i +nt]_[*@3 a], [@(0.0.255) int]_[*@3 size]_`=_STDSIZE)&] +[s2;b17;a17; Sets left horizontal position (in view area).&] +[s7;i1120;a17; [%-*C@3 a]-|Distance from left border of parent.&] +[s7;i1120;a17; [%-*C@3 size]-|Horizontal size.&] +[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:RightPos`(int`,int`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* RightPos]([@(0.0.255) i +nt]_[*@3 a], [@(0.0.255) int]_[*@3 size]_`=_STDSIZE)&] +[s2;b17;a17; Sets right horizontal position (in view area).&] +[s7;i1120;a17; [%-*C@3 a]-|Distance from the right border of parent.&] +[s7;i1120;a17; [%-*C@3 size]-|Horizontal size.&] +[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:TopPos`(int`,int`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* TopPos]([@(0.0.255) i +nt]_[*@3 a], [@(0.0.255) int]_[*@3 size]_`=_STDSIZE)&] +[s2;b17;a17; Sets top vertical position (in view area).&] +[s7;i1120;a17; [%-*C@3 a]-|Distance from the top border of parent.&] +[s7;i1120;a17; [%-*C@3 size]-|Vertical size.&] +[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:BottomPos`(int`,int`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* BottomPos]([@(0.0.255) i +nt]_[*@3 a], [@(0.0.255) int]_[*@3 size]_`=_STDSIZE)&] +[s2;b17;a17; Sets bottom vertical position (in view area).&] +[s7;i1120;a17; [%-*C@3 a]-|Distance from the bottom border of parent.&] +[s7;i1120;a17; [%-*C@3 size]-|Vertical size.&] +[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:HSizePos`(int`,int`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* HSizePos]([@(0.0.255) i +nt]_[*@3 a]_`=_[@3 0], [@(0.0.255) int]_[*@3 b]_`=_[@3 0])&] +[s2;b17;a17; Sets horizontal sizing position (in view area).&] +[s7;i1120;a17; [%-*C@3 a]-|Distance from left border of parent.&] +[s7;i1120;a17; [%-*C@3 b]-|Distance from right border of parent.&] +[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:VSizePos`(int`,int`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* VSizePos]([@(0.0.255) i +nt]_[*@3 a]_`=_[@3 0], [@(0.0.255) int]_[*@3 b]_`=_[@3 0])&] +[s2;b17;a17; Sets vertical sizing position (in view area).&] +[s7;i1120;a17; [%-*C@3 a]-|Distance form top border of parent.&] +[s7;i1120;a17; [%-*C@3 b]-|Distance from bottom border of parent.&] +[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:SizePos`(`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* SizePos]()&] +[s2;b17;a17; Same as VSizePos().HSizePos().&] +[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:HCenterPos`(int`,int`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* HCenterPos]([@(0.0.255) i +nt]_[*@3 size]_`=_STDSIZE, [@(0.0.255) int]_[*@3 delta]_`=_[@3 0])&] +[s2;b17;a17; Horizontal centered position (in view area).&] +[s7;i1120;a17; [%-*C@3 size]-|Horizontal size.&] +[s7;i1120;a17; [%-*C@3 delta]-|Offset from centered position (rarely +used).&] +[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:VCenterPos`(int`,int`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* VCenterPos]([@(0.0.255) i +nt]_[*@3 size]_`=_STDSIZE, [@(0.0.255) int]_[*@3 delta]_`=_[@3 0])&] +[s2;b17;a17; Vertical centered position (in view area).&] +[s7;i1120;a17; [%-*C@3 size]-|Vertical size.&] +[s7;i1120;a17; [%-*C@3 delta]-|Offset from centered position (rarely +used).&] +[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:LeftPosZ`(int`,int`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* LeftPosZ]([@(0.0.255) i +nt]_[*@3 a], [@(0.0.255) int]_[*@3 size]_`=_STDSIZE)&] +[s2;b17;a17; Sets left horizontal [/ zoomed ]position (in view area). +Distances are recalculated using zoom factor to accommodate size +differences between standard font used during layout design and +actual standard font.&] +[s7;i1120;a17; [%-*C@3 a]-|Distance from the left border of parent.&] +[s7;i1120;a17; [%-*C@3 size]-|Horizontal size.&] +[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:RightPosZ`(int`,int`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* RightPosZ]([@(0.0.255) i +nt]_[*@3 a], [@(0.0.255) int]_[*@3 size]_`=_STDSIZE)&] +[s2;b17;a17; Sets right horizontal [/ zoomed ]position (in view area). +Distances are recalculated using zoom factor to accommodate size +differences between standard font used during layout design and +actual standard font.&] +[s7;i1120;a17; [%-*C@3 a]-|Distance from the right border of parent.&] +[s7;i1120;a17; [%-*C@3 size]-|Horizontal size.&] +[s2;b17;a17; [*/ Return value]-|`*this for method chaining.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:TopPosZ`(int`,int`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* TopPosZ]([@(0.0.255) i +nt]_[*@3 a], [@(0.0.255) int]_[*@3 size]_`=_STDSIZE)&] +[s2;b17;a17; Sets top vertical [/ zoomed ]position (in view area). +Distances are recalculated using zoom factor to accommodate size +differences between standard font used during layout design and +actual standard font.&] +[s7;i1120;a17; [%-*C@3 a]-|Distance from the top border of parent.&] +[s7;i1120;a17; [%-*C@3 size]-|Vertical size.&] +[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:BottomPosZ`(int`,int`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* BottomPosZ]([@(0.0.255) i +nt]_[*@3 a], [@(0.0.255) int]_[*@3 size]_`=_STDSIZE)&] +[s2;b17;a17; Sets bottom vertical [/ zoomed ]position (in view area). +Distances are recalculated using zoom factor to accommodate size +differences between standard font used during layout design and +actual standard font.&] +[s7;i1120;a17; [%-*C@3 a]-|Distance from the bottom border of parent.&] +[s7;i1120;a17; [%-*C@3 size]-|Vertical size.&] +[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:HSizePosZ`(int`,int`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* HSizePosZ]([@(0.0.255) i +nt]_[*@3 a]_`=_[@3 0], [@(0.0.255) int]_[*@3 b]_`=_[@3 0])&] +[s2;b17;a17; Sets vertical [/ zoomed ]sizing position (in view area). +Distances are recalculated using zoom factor to accommodate size +differences between standard font used during layout design and +actual standard font.&] +[s7;i1120;a17; [%-*C@3 a]-|Distance form top border of parent.&] +[s7;i1120;a17; [%-*C@3 b]-|Distance from bottom border of parent.&] +[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:VSizePosZ`(int`,int`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* VSizePosZ]([@(0.0.255) i +nt]_[*@3 a]_`=_[@3 0], [@(0.0.255) int]_[*@3 b]_`=_[@3 0])&] +[s2;b17;a17; Sets vertical [/ zoomed ]sizing position (in view area). +Distances are recalculated using zoom factor to accommodate size +differences between standard font used during layout design and +actual standard font.&] +[s7;i1120;a17; [%-*C@3 a]-|Distance form top border of parent.&] +[s7;i1120;a17; [%-*C@3 b]-|Distance from bottom border of parent.&] +[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:HCenterPosZ`(int`,int`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* HCenterPosZ]([@(0.0.255) i +nt]_[*@3 size]_`=_STDSIZE, [@(0.0.255) int]_[*@3 delta]_`=_[@3 0])&] +[s2;b17;a17; Horizontal centered [/ zoomed ]position (in view area). +Distances are recalculated using zoom factor to accommodate size +differences between standard font used during layout design and +actual standard font.&] +[s7;i1120;a17; [%-*C@3 size]-|Horizontal size.&] +[s7;i1120;a17; [%-*C@3 delta]-|Offset from centered position (rarely +used).&] +[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:VCenterPosZ`(int`,int`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* VCenterPosZ]([@(0.0.255) i +nt]_[*@3 size]_`=_STDSIZE, [@(0.0.255) int]_[*@3 delta]_`=_[@3 0])&] +[s2;b17;a17; Vertical centered [/ zoomed] position (in view area). +Distances are recalculated using zoom factor to accommodate size +differences between standard font used during layout design and +actual standard font.&] +[s7;i1120;a17; [%-*C@3 size]-|Vertical size.&] +[s7;i1120;a17; [%-*C@3 delta]-|Offset from centered position (rarely +used).&] +[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:GetRect`(`)const:%- [_^`:`:Rect^ Rect]_[* GetRect]()_[@(0.0.255) const]&] +[s7;i1120;a17; [*/ Return value]-|Returns current position in parent. +It is either position in view or frame coordinates.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:GetScreenRect`(`)const:%- [_^`:`:Rect^ Rect]_[* GetScreenRect]()_[@(0.0.255) c +onst]&] +[s7;i1120;a17; [*/ Return value]-|Returns current position in absolute +screen coordinates.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:GetView`(`)const:%- [_^`:`:Rect^ Rect]_[* GetView]()_[@(0.0.255) const]&] +[s7;i1120;a17; [*/ Return value]-|Returns position of view rectangle +in frame coordinates.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:GetScreenView`(`)const:%- [_^`:`:Rect^ Rect]_[* GetScreenView]()_[@(0.0.255) c +onst]&] +[s7;i1120;a17; [*/ Return value]-|Returns position of view rectangle +in absolute screen coordinates.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:GetSize`(`)const:%- [_^`:`:Size^ Size]_[* GetSize]()_[@(0.0.255) const]&] +[s7;i1120;a17; [*/ Return value]-|Returns size of view rectangle of +Ctrl.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:GetVisibleScreenRect`(`)const:%- [_^`:`:Rect^ Rect]_[* GetVisibleScreenRect]( +)_[@(0.0.255) const]&] +[s7;i1120;a17; [*/ Return value]-|Returns current position in parent +intersected with either parent`'s visible screen rectangle for +frame Ctrl (as obtained using GetVisibleScreenRect) or parent`'s +screen view rectangle for view Ctrl (obtained using GetVisibleScreenView). +This method is useful when rectangle of Ctrl exceeds it`'s parent +area `- in this case this method returns part of Ctrl that is +not clipped out by parent`'s are limits.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:GetVisibleScreenView`(`)const:%- [_^`:`:Rect^ Rect]_[* GetVisibleScreenView]( +)_[@(0.0.255) const]&] +[s7;i1120;a17; [*/ Return value]-|Returns current position of view area +intersected with either parent`'s visible screen rectangle for +frame Ctrl (as obtained using GetVisibleScreenRect) or parent`'s +screen view rectangle for view Ctrl (obtained using GetVisibleScreenView). +This method is useful when rectangle of Ctrl exceeds it`'s parent +area `- in this case this method returns part of Ctrl view that +is not clipped out by parent`'s are limits.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:GetWorkArea`(`)const:%- [_^Rect^ Rect]_[* GetWorkArea]()_[@(0.0.255) const]&] +[s2; Returns the work area (the maximum rectangle that window can +use) for screen that this window is in.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:AddFrameSize`(int`,int`)const:%- [_^`:`:Size^ Size]_[* AddFrameSize]([@(0.0.255) i +nt]_[*@3 cx], [@(0.0.255) int]_[*@3 cy])_[@(0.0.255) const]&] +[s2;b17;a17; Computes size of Ctrl for given size of view and actual +set of frames.&] +[s7;i1120;a17; [%-*C@3 cx]-|Width.&] +[s7;i1120;a17; [%-*C@3 cy]-|Height.&] +[s7;i1120;a17; [*/ Return value]-|Size of Ctrl that would have requested +view size.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:AddFrameSize`(Size`)const:%- [_^`:`:Size^ Size]_[* AddFrameSize]([_^`:`:Size^ S +ize]_[*@3 sz])_[@(0.0.255) const]&] +[s2;b17;a17; Same as AddFrameSize(sz.cx, sz.cy).&] +[s7;i1120;a17; [%-*C@3 sz]-|Size.&] +[s7;i1120;a17; [*/ Return value]-|Size of Ctrl that would have requested +view size.&] +[s3; &] +[s4;%- &] +[s5;:Ctrl`:`:Refresh`(const Rect`&`):%- [@(0.0.255) void]_[* Refresh]([@(0.0.255) const]_[_^Rect^ R +ect][@(0.0.255) `&]_[*@3 r])&] +[s2; Marks requested rectangle of view area for repainting. Actual +repaint is deferred for performance reasons.&] +[s7;i1120;a17; [%-*C@3 r]-|Rectangle in view.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:Refresh`(int`,int`,int`,int`):%- [@(0.0.255) void]_[* Refresh]([@(0.0.255) int +]_[*@3 x], [@(0.0.255) int]_[*@3 y], [@(0.0.255) int]_[*@3 cx], [@(0.0.255) int]_[*@3 cy])&] +[s2;b17;a17; Marks requested rectangle of view area for repainting. +Actual repaint is deferred for performance reasons.&] +[s7;i1120;a17; [%-*C@3 x]-|Left position of rectangle.&] +[s7;i1120;a17; [%-*C@3 y]-|Top position of rectangle.&] +[s7;i1120;a17; [%-*C@3 cx]-|Width.&] +[s7;i1120;a17; [%-*C@3 cy]-|Height.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:Refresh`(`):%- [@(0.0.255) void]_[* Refresh]()&] +[s2;b17;a17; Marks whole view area for repainting.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:IsFullRefresh`(`)const:%- [@(0.0.255) bool]_[* IsFullRefresh]()_[@(0.0.255) co +nst]&] +[s7;i1120;a17; [*/ Return value]-|true when whole view area is marked +for repainting but was not repainted yet.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:RefreshFrame`(const Rect`&`):%- [@(0.0.255) void]_[* RefreshFrame]([@(0.0.255) c +onst]_[_^`:`:Rect^ Rect][@(0.0.255) `&]_[*@3 r])&] +[s2;b17;a17; Marks requested rectangle of frame area for repainting. +Actual repainting is deferred for performance reasons.&] +[s7;i1120;a17; [%-*C@3 r]-|Area to repaint.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:RefreshFrame`(int`,int`,int`,int`):%- [@(0.0.255) void]_[* RefreshFrame]([@(0.0.255) i +nt]_[*@3 x], [@(0.0.255) int]_[*@3 y], [@(0.0.255) int]_[*@3 cx], [@(0.0.255) int]_[*@3 cy])&] +[s2;b17;a17; Marks requested rectangle of frame area for repainting. +Actual repaint is deferred for performance reasons.&] +[s7;i1120;a17; [%-*C@3 x]-|Left position of rectangle.&] +[s7;i1120;a17; [%-*C@3 y]-|Top position of rectangle.&] +[s7;i1120;a17; [%-*C@3 cx]-|Width.&] +[s7;i1120;a17; [%-*C@3 cy]-|Height.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:RefreshFrame`(`):%- [@(0.0.255) void]_[* RefreshFrame]()&] +[s2;b17;a17; Marks whole Ctrl area for repainting.&] +[s3; &] +[s4;%- &] +[s5;:Ctrl`:`:ScrollView`(const Rect`&`,int`,int`):%- [@(0.0.255) void]_[* ScrollView]([@(0.0.255) c +onst]_[_^Rect^ Rect][@(0.0.255) `&]_[*@3 r], [@(0.0.255) int]_[*@3 dx], +[@(0.0.255) int]_[*@3 dy])&] +[s2; Marks requested view rectangle for repainting, indicating that +part of this repaint can be done by scrolling current content +of rectangle. Note that actual scroll is deferred to repaint +and that U`+`+ is still allowed to solve the situation by repainting +rather than scrolling.&] +[s7;i1120;a17; [%-*C@3 r]-|Area for repainting.&] +[s7;i1120;a17; [%-*C@3 dx]-|Horizontal scroll.&] +[s7;i1120;a17; [%-*C@3 dy]-|Vertical scroll.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:ScrollView`(int`,int`,int`,int`,int`,int`):%- [@(0.0.255) void]_[* ScrollVie +w]([@(0.0.255) int]_[*@3 x], [@(0.0.255) int]_[*@3 y], [@(0.0.255) int]_[*@3 cx], +[@(0.0.255) int]_[*@3 cy], [@(0.0.255) int]_[*@3 dx], [@(0.0.255) int]_[*@3 dy])&] +[s2;b17;a17; Marks requested view rectangle for repainting, indicating +that part of this repaint can be done by scrolling current content +of rectangle. Note that actual scroll is deferred to repaint +and that U`+`+ is still allowed to solve the situation by repainting +rather than scrolling.&] +[s7;i1120;a17; [%-*C@3 r]-|Area for repainting.&] +[s7;i1120;a17; [%-*C@3 x]-|Left position of rectangle.&] +[s7;i1120;a17; [%-*C@3 y]-|Top position of rectangle.&] +[s7;i1120;a17; [%-*C@3 cx]-|Width.&] +[s7;i1120;a17; [%-*C@3 cy]-|Height.&] +[s7;i1120;a17; [%-*C@3 dx]-|Horizontal scroll.&] +[s7;i1120;a17; [%-*C@3 dy]-|Vertical scroll.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:ScrollView`(int`,int`):%- [@(0.0.255) void]_[* ScrollView]([@(0.0.255) int]_[*@3 d +x], [@(0.0.255) int]_[*@3 dy])&] +[s2;b17;a17; Marks while view area for repainting, indicating that +part of this repaint can be done by scrolling current content +of rectangle. Note that actual scroll is deferred to repaint +and that U`+`+ is still allowed to solve the situation by repainting +rather than scrolling.&] +[s7;i1120;a17; [%-*C@3 dx]-|Horizontal scroll.&] +[s7;i1120;a17; [%-*C@3 dy]-|Vertical scroll.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:ScrollView`(const Rect`&`,Size`):%- [@(0.0.255) void]_[* ScrollView]([@(0.0.255) c +onst]_[_^`:`:Rect^ Rect][@(0.0.255) `&]_[*@3 r], [_^`:`:Size^ Size]_[*@3 delta])&] +[s2;b17;a17; Same as ScrollView(r, delta.cx, delta.cy).&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:ScrollView`(Size`):%- [@(0.0.255) void]_[* ScrollView]([_^`:`:Size^ Size]_[*@3 d +elta])&] +[s2;b17;a17; Same as ScrollView(delta.cx, delta.cy).&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:Sync`(`):%- [@(0.0.255) void]_[* Sync]()&] +[s2;b17;a17; Forces immediate repainting of areas marked using Refresh, +RefreshFrame or ScrollView methods.&] +[s3; &] +[s4;%- &] +[s5;:Ctrl`:`:Sync`(const Rect`&`):%- [@(0.0.255) void]_[* Sync]([@(0.0.255) const]_[_^Rect^ R +ect][@(0.0.255) `&]_[*@3 r])&] +[s2; Forces immediate repainting of areas marked using Refresh, RefreshFrame +or ScrollView methods, limited with intersection of given rectangle.&] +[s7;i1120;a17; [%-*C@3 r]-|Rectangle.&] +[s3; &] +[s4;%- &] +[s5;:Ctrl`:`:OverrideCursor`(const Image`&`):%- [@(0.0.255) static] +[_^Image^ Image]_[* OverrideCursor]([@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 m +])&] +[s2; Overrides mouse cursor to [%-*@3 m]. To end the override, call +it again with the Image returned by the override call.&] +[s2; &] +[s4;%- &] +[s5;:Ctrl`:`:DrawCtrl`(Draw`&`,int`,int`):%- [@(0.0.255) void]_[* DrawCtrl]([_^Draw^ Draw][@(0.0.255) `& +]_[*@3 w], [@(0.0.255) int]_[*@3 x]_`=_[@3 0], [@(0.0.255) int]_[*@3 y]_`=_[@3 0])&] +[s2; Draws Ctrl at specified position. This is intended for utility +purposes like taking screen`-shots. This version Draws Ctrl [/ without] +background (supplied by parent).&] +[s7;i1120;a17; [%-*C@3 w]-|Target Draw.&] +[s7;i1120;a17; [%-*C@3 x, ][*C@3 y]-|Position.&] +[s3; &] +[s4;%- &] +[s5;:Ctrl`:`:DrawCtrlWithParent`(Draw`&`,int`,int`):%- [@(0.0.255) void]_[* DrawCtrlWithP +arent]([_^Draw^ Draw][@(0.0.255) `&]_[*@3 w], [@(0.0.255) int]_[*@3 x]_`=_[@3 0], +[@(0.0.255) int]_[*@3 y]_`=_[@3 0])&] +[s2; Draws Ctrl at specified position. This is intended for utility +purposes like taking screen`-shots. This version Draws Ctrl [/ with] +background (supplied by parent).&] +[s7;i1120;a17; [%-*C@3 w]-|Target Draw.&] +[s7;i1120;a17; [%-*C@3 x, ][*C@3 y]-|Position.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:HasChild`(Ctrl`*`)const:%- [@(0.0.255) bool]_[* HasChild]([_^`:`:Ctrl^ Ctrl]_`* +[*@3 ctrl])_[@(0.0.255) const]&] +[s2;b17;a17; Tests whether Ctrl has specified [/ direct] child.&] +[s7;i1120;a17; [%-*C@3 ctrl]-|Child.&] +[s7;i1120;a17; [*/ Return value]-|true if ctrl is child.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:HasChildDeep`(Ctrl`*`)const:%- [@(0.0.255) bool]_[* HasChildDeep]([_^`:`:Ctrl^ C +trl]_`*[*@3 ctrl])_[@(0.0.255) const]&] +[s2;b17;a17; Tests whether Ctrl has specified ctrl in its child tree +(direct or indirect).&] +[s7;i1120;a17; [%-*C@3 ctrl]-|Child.&] +[s7;i1120;a17; [*/ Return value]-|true if ctrl is in child tree.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:IgnoreMouse`(bool`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* IgnoreMouse]([@(0.0.255) b +ool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2;b17;a17; Sets ignore`-mouse flag. When active, Ctrl is ignored +for mouse input. That is important for static Ctrls that cover +other Ctrls, like LabelBox `- this flag ensures, that mouse input +is not consumed by LabelBox, but is distributed to Ctrls that +lay inside it.&] +[s7;i1120;a17; [%-*C@3 b]-|Value of flag.&] +[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:NoIgnoreMouse`(`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* NoIgnoreMouse]()&] +[s2;b17;a17; Same as IgnoreMouse(false).&] +[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:IsIgnoreMouse`(`)const:%- [@(0.0.255) bool]_[* IsIgnoreMouse]()_[@(0.0.255) co +nst]&] +[s2; Returns the ignore`-mouse flag (see IgnoreMouse).&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:HasMouse`(`)const:%- [@(0.0.255) bool]_[* HasMouse]()_[@(0.0.255) const]&] +[s7;i1120;a17; [*/ Return value]-|true when Ctrl is target for mouse +events.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:HasMouseDeep`(`)const:%- [@(0.0.255) bool]_[* HasMouseDeep]()_[@(0.0.255) cons +t]&] +[s2; Returns true if Ctrl or any of its descendants is target for +mouse events.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:HasMouseInFrame`(const Rect`&`)const:%- [@(0.0.255) bool]_[* HasMouseInFrame +]([@(0.0.255) const]_[_^Rect^ Rect][@(0.0.255) `&]_[*@3 r])_[@(0.0.255) const]&] +[s7;i1120;a17; [%-*C@3 r]-|rectangle in frame area.&] +[s7;i1120;a17; [*/ Return value]-|true when Ctrl is target for mouse +events and mouse pointer is inside specified frame area rectangle.&] +[s3; &] +[s4;%- &] +[s5;:Ctrl`:`:HasMouseIn`(const Rect`&`)const:%- [@(0.0.255) bool]_[* HasMouseIn]([@(0.0.255) c +onst]_[_^Rect^ Rect][@(0.0.255) `&]_[*@3 r])_[@(0.0.255) const]&] +[s2; Returns true when Ctrl is target for mouse events and mouse +pointer is inside specified view area rectangle.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:GetMouseViewPos`(`)const:%- [_^Point^ Point]_[* GetMouseViewPos]()_[@(0.0.255) c +onst]&] +[s2; Returns the position of mouse relative to the view area. Note +that the result can negative point or point outside &] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:GetMouseCtrl`(`):%- [@(0.0.255) static] [_^`:`:Ctrl^ Ctrl]_`*[* GetMouseCtrl]( +)&] +[s7;i1120;a17; Returns current target for mouse events.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:IgnoreMouseClick`(`):%- [@(0.0.255) static] [@(0.0.255) void]_[* IgnoreMouseCl +ick]()&] +[s2;b17;a17; Forces framework to ignore all mouse events till next +button`-up event. This is good tool to solve some corner cases, +like popup window closed by button click when mouse pointer is +over its owner as well (TopWindow`::Close calls this function).&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:IgnoreMouseUp`(`):%- [@(0.0.255) static] [@(0.0.255) void]_[* IgnoreMouseUp]() +&] +[s2;b17;a17; Invokes IgnoreMouseClick if some of mouse buttons is +pressed.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:UnIgnoreMouse`(`):%- [@(0.0.255) static] [@(0.0.255) void]_[* UnIgnoreMouse]() +&] +[s2; Cancels the effect or IgnoreMouseClick and IgnoreMouseUp (clicks +are not ignored anymore).&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:SetCapture`(`):%- [@(0.0.255) bool]_[* SetCapture]()&] +[s2;b17;a17; Sets mouse capture for Ctrl. This method should be called +in MouseLeft or MouseRight methods only. Ctrl will receive all +mouse input until ReleaseCapture is called or mouse button is +released.&] +[s7;i1120;a17; [*/ Return value]-|True when SetCapture was successful +(usually you can ignore this return value).&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:ReleaseCapture`(`):%- [@(0.0.255) bool]_[* ReleaseCapture]()&] +[s2;b17;a17; Release Ctrl`'s mouse capture.&] +[s7;i1120;a17; [*/ Return value]-|True when mouse capture was released.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:HasCapture`(`)const:%- [@(0.0.255) bool]_[* HasCapture]()_[@(0.0.255) const]&] +[s7;i1120;a17; [*/ Return value]-|True if Ctrl has mouse capture.&] +[s3;%- &] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:GetCaptureCtrl`(`):%- [@(0.0.255) static] [_^Ctrl^ Ctrl]_`*[* GetCaptureCtrl]( +)&] +[s2; Returns a pointer to the Ctrl that is currently capturing the +mouse.&] +[s3; &] +[s4;%- &] +[s5;:Ctrl`:`:ReleaseCtrlCapture`(`):%- [@(0.0.255) static] [@(0.0.255) bool]_[* ReleaseCtrl +Capture]()&] +[s2;b17;a17; If any of application`'s Ctrls has mouse capture, it +is released.&] +[s7;i1120;a17; [*/ Return value]-|True if mouse capture was released.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:SetFocus`(`):%- [@(0.0.255) bool]_[* SetFocus]()&] +[s2;b17;a17; Sets keyboard input focus to the Ctrl. Ctrl is first +to receive keyboard events via Key method as long as it has keyboard +input focus. When Ctrl denies keyboard event (by returning false +from Key method), it is passed to its parent`'s Key method and +so on.&] +[s7;i1120;a17; [*/ Return value]-|True if setting focus was successful.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:HasFocus`(`)const:%- [@(0.0.255) bool]_[* HasFocus]()_[@(0.0.255) const]&] +[s7;i1120;a17; [*/ Return value]-|True if Ctrl has keyboard input focus.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:HasFocusDeep`(`)const:%- [@(0.0.255) bool]_[* HasFocusDeep]()_[@(0.0.255) cons +t]&] +[s7;i1120;a17; [*/ Return value]-|True if Ctrl or any of its descendants +has focus or is equal to GetOwnerCtrl of any active popup.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:WantFocus`(bool`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* WantFocus]([@(0.0.255) b +ool]_[*@3 ft]_`=_[@(0.0.255) true])&] +[s2;b17;a17; Indicates whether Ctrl wants focus to be passed to it +by U`+`+, when navigating through the dialog using Tab (or Shift`+Tab) +key.&] +[s7;i1120;a17; [%-*C@3 ft]-|true to indicate that Ctrl wants focus.&] +[s7;i1120;a17; [*/ Return value]-|Same Ctrl for method chaining.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:NoWantFocus`(`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* NoWantFocus]()&] +[s7;i1120;a17; [*/ Return value]-|Same Ctrl for method chaining.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:IsWantFocus`(`)const:%- [@(0.0.255) bool]_[* IsWantFocus]()_[@(0.0.255) const]&] +[s2;b17;a17;%- Checks whether Ctrl has WantFocus acti.&] +[s7;i1120;a17; [*/ Return value]-|true, when Ctrl wants focus.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:InitFocus`(bool`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* InitFocus]([@(0.0.255) b +ool]_[*@3 ft]_`=_[@(0.0.255) true])&] +[s2;b17;a17; Indicates that Ctrl is eligible to obtain focus upon +opening of dialog or in other similar situations.&] +[s7;i1120;a17; [%-*C@3 ft]-|true to indicate Ctrl is eligible.&] +[s7;i1120;a17; [*/ Return value]-|Same Ctrl for method chaining.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:NoInitFocus`(`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* NoInitFocus]()&] +[s2;b17;a17; Same as InitFocus(false).&] +[s7;i1120;a17; [*/ Return value]-|Same Ctrl for method chaining.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:IsInitFocus`(`):%- [@(0.0.255) bool]_[* IsInitFocus]()&] +[s7;i1120;a17; [*/ Return value]-|true when Ctrl wants init focus.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:SetWantFocus`(`):%- [@(0.0.255) bool]_[* SetWantFocus]()&] +[s2;b17;a17; If Ctrl wants focus (WantFocus(true) was called for +it), set focus to Ctrl, otherwise nothing happens.&] +[s7;i1120;a17; [*/ Return value]-|true if focus was set.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:GetFocusChild`(`)const:%- [_^`:`:Ctrl^ Ctrl]_`*[* GetFocusChild]()_[@(0.0.255) c +onst]&] +[s2;b17;a17; If any immediate child of Ctrl has focus, returns pointer +to it.&] +[s7;i1120;a17; [*/ Return value]-|Pointer to child with focus or NULL +if no such exists.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:GetFocusChildDeep`(`)const:%- [_^`:`:Ctrl^ Ctrl]_`*[* GetFocusChildDeep]()_[@(0.0.255) c +onst]&] +[s2;b17;a17; If any child of Ctrl`'s child tree has focus, returns +pointer to it.&] +[s7;i1120;a17; [*/ Return value]-|&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:CancelModeDeep`(`):%- [@(0.0.255) void]_[* CancelModeDeep]()&] +[s2;b17;a17; Calls CancelMode virtual method for Ctrl and all of +its descendants.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:SetCaret`(int`,int`,int`,int`):%- [@(0.0.255) void]_[* SetCaret]([@(0.0.255) i +nt]_[*@3 x], [@(0.0.255) int]_[*@3 y], [@(0.0.255) int]_[*@3 cx], [@(0.0.255) int]_[*@3 cy])&] +[s2;b17;a17; Place caret rectangle block at given position in view +area. Caret rectangle is full flashing box and usually indicates +place where text is to entered. Ctrl can have just one caret. +Only Ctrl with focus has its caret displayed (also means that +you do not need to remove caret when Ctrl goes out of focus).&] +[s7;i1120;a17; [%-*C@3 x]-|X position.&] +[s7;i1120;a17; [%-*C@3 y]-|Y position.&] +[s7;i1120;a17; [%-*C@3 cx]-|Horizontal size.&] +[s7;i1120;a17; [%-*C@3 cy]-|Vertical size.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:SetCaret`(const `:`:Rect`&`):%- [@(0.0.255) void]_[* SetCaret]([@(0.0.255) con +st]_[_^`:`:Rect^ Rect][@(0.0.255) `&]_[*@3 r])&] +[s2;b17;a17; Place caret rectangle block at given position in view +area. Caret rectangle is full flashing box and usually indicates +place where text is to entered. Ctrl can have just one caret. +Only Ctrl with focus has its caret displayed (also means that +you do not need to remove caret when Ctrl goes out of focus).&] +[s7;i1120;a17; [%-*C@3 r]-|Caret block rectangle.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:KillCaret`(`):%- [@(0.0.255) void]_[* KillCaret]()&] +[s2;b17;a17; Removes caret from Ctrl.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:GetFocusCtrl`(`):%- [@(0.0.255) static] [_^`:`:Ctrl^ Ctrl]_`*[* GetFocusCtrl]( +)&] +[s7;i1120;a17; [*/ Return value]-|Ctrl that has focus or NULL if no +Ctrl of application has it.&] +[s3; &] +[s4;%- &] +[s5;:Ctrl`:`:IterateFocusForward`(Ctrl`*`,Ctrl`*`,bool`,bool`,bool`):%- [@(0.0.255) sta +tic] [@(0.0.255) bool]_[* IterateFocusForward]([_^Ctrl^ Ctrl]_`*[*@3 ctrl], +[_^Ctrl^ Ctrl]_`*[*@3 top], [@(0.0.255) bool]_[*@3 noframe]_`=_[@(0.0.255) false], +[@(0.0.255) bool]_[*@3 init]_`=_[@(0.0.255) false], [@(0.0.255) bool]_[*@3 all]_`=_[@(0.0.255) f +alse])&] +[s2; Tries to move focus to next `"appropriate`" Ctrl, like when +Tab key is pressed in the dialog. Appropriate Ctrl needs to have +WantFocus flag, be visible and enabled.&] +[s7;i1120;a17; [%-*C@3 ctrl]-|Ctrl with focus.&] +[s7;i1120;a17; [%-*C@3 top]-|Top Ctrl `- function cycles only between +this Ctrl subtree.&] +[s7;i1120;a17; [%-*C@3 noframe]-|Indicates that frame Ctrls are to be +excluded.&] +[s7;i1120;a17; [*/ Return value]-|true when focus was successfully moved.&] +[s3; &] +[s4;%- &] +[s5;:Ctrl`:`:IterateFocusBackward`(Ctrl`*`,Ctrl`*`,bool`,bool`):%- [@(0.0.255) static] +[@(0.0.255) bool]_[* IterateFocusBackward]([_^Ctrl^ Ctrl]_`*[*@3 ctrl], +[_^Ctrl^ Ctrl]_`*[*@3 top], [@(0.0.255) bool]_[*@3 noframe]_`=_[@(0.0.255) false], +[@(0.0.255) bool]_[*@3 all]_`=_[@(0.0.255) false])&] +[s2; Tries to move focus to previous appropriate Ctrl, like when +Tab key is pressed in the dialog. `"Appropriate`" Ctrl needs +to have WantFocus flag, be visible and enabled.&] +[s7;i1120;a17; [%-*C@3 ctrl]-|Ctrl with focus.&] +[s7;i1120;a17; [%-*C@3 top]-|Top Ctrl `- function cycles only between +this Ctrl subtree.&] +[s7;i1120;a17; [%-*C@3 noframe]-|Indicates that frame Ctrls are to be +excluded.&] +[s7;i1120;a17; [*C@3 init]-|Ctrl must have InitFocus flag.&] +[s7;i1120;a17; [*/ Return value]-|true when focus was successfully moved.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:AccessKeyBit`(byte`):%- [@(0.0.255) static] [_^`:`:dword^ dword]_[* AccessKeyB +it]([_^`:`:byte^ byte]_[*@3 accesskey])&] +[s2;b17;a17; Returns bit`-mask for specified access`-key.&] +[s7;i1120;a17; [%-*C@3 accesskey]-|Access`-key. It should be plain ASCII +value of access`-key.&] +[s7;i1120;a17; [*/ Return value]-|Access`-key bitmask. Note that only +`'A`' `- `'Z`' have distinct bit`-masks as those are only access`-keys +distributed automatically.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:GetAccessKeysDeep`(`)const:%- [_^`:`:dword^ dword]_[* GetAccessKeysDeep]()_[@(0.0.255) c +onst]&] +[s5;:Ctrl`:`:GetAccessKeysDeep`(`)const:%- [_^`:`:dword^ dword]_[* GetAccessKeysDeep]()_[@(0.0.255) c +onst]&] +[s2;b17;a17; Returns binary or of Ctrl`'s GetAccessKey method results +with the result of calling GetAccessKeyDeep for all children. +In other words, returns key coverage for the whole Ctrl tree.&] +[s7;i1120;a17; [*/ Return value]-|Access`-keys used by Ctrl and its +descendants.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:DistributeAccessKeys`(`):%- [@(0.0.255) void]_[* DistributeAccessKeys]()&] +[s2;b17;a17; Triggers automatic distribution of access keys. This +is implemented as gathering all already used access keys using +GetAccessKeys method and then using AssignAccessKeys method with +this value to distribute rest of keys (in other words, it is +equivalent of AssignAccessKeys(GetAccessKeys())).&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:RefreshAccessKeys`(`):%- [@(0.0.255) void]_[* RefreshAccessKeys]()&] +[s2;b17;a17; Invokes Refresh for this Ctrl or any descendant with +any access`-key assigned.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:VisibleAccessKeys`(`):%- [@(0.0.255) bool]_[* VisibleAccessKeys]()&] +[s7;i1120;a17; [*/ Return value]-|True if according to current access`-key +model there should be visible graphical representation (usually +underline) of access`-keys.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:Show`(bool`):%- [@(0.0.255) void]_[* Show]([@(0.0.255) bool]_[*@3 show]_`=_[@(0.0.255) t +rue])&] +[s2;b17;a17; Sets visibility flag for Ctrl.&] +[s7;i1120;a17; [%-*C@3 show]-|true indicates that Ctrl should be visible.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:Hide`(`):%- [@(0.0.255) void]_[* Hide]()&] +[s2;b17;a17; Same as Show(false).&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:IsShown`(`)const:%- [@(0.0.255) bool]_[* IsShown]()_[@(0.0.255) const]&] +[s7;i1120;a17; [*/ Return value]-|visibility flag for Ctrl.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:IsVisible`(`)const:%- [@(0.0.255) bool]_[* IsVisible]()_[@(0.0.255) const]&] +[s7;i1120;a17; [*/ Return value]-|true if Ctrl is currently visible +on the screen. Ctrl is visible if it has visibility flag set, +its parent is visible and its top`-level Ctrl is open.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:Enable`(bool`):%- [@(0.0.255) void]_[* Enable]([@(0.0.255) bool]_[*@3 enable]_`= +_[@(0.0.255) true])&] +[s2;b17;a17; Enables or disables Ctrl.&] +[s7;i1120;a17; [%-*C@3 enable]-|true indicates that Ctrl should be enabled.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:Disable`(`):%- [@(0.0.255) void]_[* Disable]()&] +[s2;b17;a17; Same as Enable(false).&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:IsEnabled`(`)const:%- [@(0.0.255) bool]_[* IsEnabled]()_[@(0.0.255) const]&] +[s7;i1120;a17; [*/ Return value]-|true if Ctrl is enabled.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:SetEditable`(bool`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* SetEditable]([@(0.0.255) b +ool]_[*@3 editable]_`=_[@(0.0.255) true])&] +[s2;b17;a17; Sets editable or read`-only mode of Ctrl. Specific Ctrls +can check this flag using IsEditable method and behave accordingly.&] +[s7;i1120;a17; [%-*C@3 editable]-|true indicates that Ctrl is editable.&] +[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:SetReadOnly`(`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* SetReadOnly]()&] +[s2;b17;a17; Same as SetEditable(false).&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:IsEditable`(`)const:%- [@(0.0.255) bool]_[* IsEditable]()_[@(0.0.255) const]&] +[s7;i1120;a17; [*/ Return value]-|true if Ctrl is editable.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:IsReadOnly`(`)const:%- [@(0.0.255) bool]_[* IsReadOnly]()_[@(0.0.255) const]&] +[s2;b17;a17; Same as !IsEditable().&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:ResetModify`(`):%- [@(0.0.255) void]_[* ResetModify]()&] +[s2;b17;a17; Resets modify flag.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:IsModifySet`(`)const:%- [@(0.0.255) bool]_[* IsModifySet]()_[@(0.0.255) const]&] +[s7;i1120;a17; [*/ Return value]-|true if modify flag is set.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:UpdateRefresh`(`):%- [@(0.0.255) void]_[* UpdateRefresh]()&] +[s2;b17;a17; Calls both Update and Refresh methods.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:Update`(`):%- [@(0.0.255) void]_[* Update]()&] +[s2;b17;a17; Same as SetModify().&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:Action`(`):%- [@(0.0.255) void]_[* Action]()&] +[s2;b17;a17; Invokes default Ctrl callback `- WhenAction. Action +actually makes a copy of WhenAction `- this ensures that the +Event<> object is not destroyed during the call.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:UpdateAction`(`):%- [@(0.0.255) void]_[* UpdateAction]()&] +[s2;b17;a17; Calls Update and then Action.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:UpdateActionRefresh`(`):%- [@(0.0.255) void]_[* UpdateActionRefresh]()&] +[s2;b17;a17; Calls Update, then Action, then Refresh. Typically called +after user changes values of Ctrl.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:BackPaint`(int`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* BackPaint]([@(0.0.255) i +nt]_[*@3 bp]_`=_FULLBACKPAINT)&] +[s2;b17;a17; Activates back`-paint mode for Ctrl.&] +[s7;i1120;a17; [%-*C@3 bp]-|Back`-paint mode.&] +[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:TransparentBackPaint`(`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* TransparentBa +ckPaint]()&] +[s7;i1120;a17; [*/ Return value]-|BackPaint(TRANSPARENTBACKPAINT).&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:NoBackPaint`(`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* NoBackPaint]()&] +[s7;i1120;a17; [*/ Return value]-|BackPaint(NOBACKPAINT).&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:BackPaintHint`(`):%- [_^Ctrl^ Ctrl][@(0.0.255) `&]_[* BackPaintHint]()&] +[s2; Activates FULLBACKPAINT mode if computer is a `"decent machine`" +(simple heurestics to identify fast enough PC with enough memory).&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:GetBackPaint`(`)const:%- [@(0.0.255) int]_[* GetBackPaint]()_[@(0.0.255) const +]&] +[s7;i1120;a17; [*/ Return value]-|Current back`-paint mode of Ctrl.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:Transparent`(bool`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* Transparent]([@(0.0.255) b +ool]_[*@3 bp]_`=_[@(0.0.255) true])&] +[s2;b17;a17; Sets transparency flag of Ctrl. If transparency flag +is disabled, U`+`+ can paint Ctrl in more effective way.&] +[s7;i1120;a17; [%-*C@3 bp]-|Transparency flag.&] +[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:NoTransparent`(`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* NoTransparent]()&] +[s7;i1120;a17; [*/ Return value]-|Transparent(false).&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:IsTransparent`(`)const:%- [@(0.0.255) bool]_[* IsTransparent]()_[@(0.0.255) co +nst]&] +[s7;i1120;a17; [*/ Return value]-|Value of transparency flag.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:ActiveX`(bool`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* ActiveX]([@(0.0.255) boo +l]_[*@3 ax]_`=_[@(0.0.255) true])&] +[s2;b17;a17; Special flag used for ActiveX Ctrls implementation.&] +[s6; Windows specific.&] +[s7;i1120;a17; [%-*C@3 ax]-|true `- Ctrl is ActiveX control&] +[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:NoActiveX`(`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* NoActiveX]()&] +[s7;i1120;a17; [*/ Return value]-|ActiveX(false).&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:IsActiveX`(`)const:%- [@(0.0.255) bool]_[* IsActiveX]()_[@(0.0.255) const]&] +[s7;i1120;a17; [*/ Return value]-|Value of ActiveX flag.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:Info`(const char`*`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* Info]([@(0.0.255) c +onst]_[@(0.0.255) char]_`*[*@3 txt])&] +[s2;b17;a17; Sets Tip text of Ctrl. This text is displayed as tooltip +of Ctrl.&] +[s7;i1120;a17; [%-*C@3 txt]-|Text.&] +[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:HelpLine`(const char`*`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* HelpLine]([@(0.0.255) c +onst]_[@(0.0.255) char]_`*[*@3 txt])&] +[s2;b17;a17; Sets help topic link for Ctrl.&] +[s7;i1120;a17; [%-*C@3 txt]-|Link.&] +[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:GetTip`(`)const:%- [_^`:`:String^ String]_[* GetTip]()_[@(0.0.255) const]&] +[s7;i1120;a17; [*/ Return value]-|Current Tip text.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:GetHelpLine`(`)const:%- [_^`:`:String^ String]_[* GetHelpLine]()_[@(0.0.255) c +onst]&] +[s7;i1120;a17; [*/ Return value]-|Current HelpTopic link.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:operator`<`<`(Ctrl`&`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* operator<<]([_^`:`:Ctrl^ C +trl][@(0.0.255) `&]_[*@3 ctrl])&] +[s5;:Ctrl`:`:Add`(Ctrl`&`):%- [@(0.0.255) void]_[* Add]([_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 c +trl])&] +[s2;b17;a17; Adds ctrl as the last child.&] +[s7;i1120;a17; [%-*C@3 ctrl]-|Ctrl to add.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:Remove`(`):%- [@(0.0.255) void]_[* Remove]()&] +[s2;b17;a17; Removes Ctrl from its parent.&] +[s3; &] +[s4;%- &] +[s5;:Ctrl`:`:operator`<`<`=`(const Value`&`):%- [@(0.0.255) const]_[_^`:`:Value^ Value][@(0.0.255) `& +]_[* operator<<`=]([@(0.0.255) const]_[_^`:`:Value^ Value][@(0.0.255) `&]_[*@3 v])&] +[s2;b17;a17; Same as SetData(v).&] +[s7;i1120;a17; [%-*C@3 v]-|New Value of Ctrl.&] +[s7;i1120;a17; [*/ Return value]-|Reference to v.&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:Ctrl`:`:operator`<`<`(Upp`:`:Function``):%- [_^Upp`:`:Callback^ C +allback][@(0.0.255) `&]_[* operator<<]([_^Upp`:`:Function^ Upp`::Function]<[@(0.0.255) voi +d]_()>_[*@3 action])&] +[s2; Same as WhenAction << action, can be used both with lambdas +and Events (former Callbacks)..&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:Ctrl`:`:SetTimeCallback`(int`,Upp`:`:Function``,int`):%- [@(0.0.255) v +oid]_[* SetTimeCallback]([@(0.0.255) int]_[*@3 delay`_ms], [_^Upp`:`:Function^ Function]< +[@(0.0.255) void]_()>_[*@3 cb], [@(0.0.255) int]_[*@3 id]_`=_[@3 0])&] +[s2;b17;a17; Puts delayed callback to the timer queue. As an identifier +of callback, which is void `* in timer queue, [* this] `+ [* id] +is used. When Ctrl is destroyed, all callbacks with [* id] in range +0 ... sizeof(Ctrl) are removed from timer callback queue `- this +ensures that no dangling callbacks are left there.&] +[s7;i1120;a17; [%-*C@3 delay`_ms]-|Delay of callback in ms. If this +is 0, callback is called immediately after all pending input +GUI events are processed.&] +[s7;i1120;a17; [%-*C@3 cb]-|Callback. Should be callback to Ctrl`'s +method.&] +[s7;i1120;a17; [%-*C@3 id]-|id. Should be in range 0..80. U`+`+ defines +compile`-time protocol for distributing these ids. If Ctrl wants +to use non`-zero time callback [* id], it should define it using&] +[s7;i1120;a17; -|[@(0.0.255) enum] [@(0.0.255) `{ ]TIMEID`_PERIODIC `= +[/ baseclass]`::TIMEID`_COUNT,&] +[s7;i1120;a17; -| TIMEID`_COUNT[@(0.0.255) `};]&] +[s7;i1120;a17; -|Using zero as [* id] is OK as long as you do not intend +to remove time callbacks using [* KillTimeCallback.]&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:KillTimeCallback`(int`):%- [@(0.0.255) void]_[* KillTimeCallback]([@(0.0.255) i +nt]_[*@3 id]_`=_[@3 0])&] +[s2;b17;a17; Removes time callback associated with Ctrl.&] +[s7;i1120;a17; [%-*C@3 id]-|Id of callback.&] +[s3;%- &] +[s4;%- &] +[s5;:Upp`:`:Ctrl`:`:KillSetTimeCallback`(int`,Upp`:`:Function``,int`):%- [@(0.0.255) v +oid]_[* KillSetTimeCallback]([@(0.0.255) int]_[*@3 delay`_ms], [_^Upp`:`:Function^ Functi +on]<[@(0.0.255) void]_()>_[*@3 cb], [@(0.0.255) int]_[*@3 id])&] +[s2; Removes callback with [%-*@3 id] and sets it again.&] +[s3; &] +[s4;%- &] +[s5;:Ctrl`:`:ExistsTimeCallback`(int`)const:%- [@(0.0.255) bool]_[* ExistsTimeCallback]([@(0.0.255) i +nt]_[*@3 id]_`=_[@3 0])_[@(0.0.255) const]&] +[s2;b17;a17; Tests whether Ctrl has associated callback in timer +queue.&] +[s7;i1120;a17; [%-*C@3 id]-|Id of callback.&] +[s7;i1120;a17; [*/ Return value]-|true when id is found in timer queue.&] +[s3;%- &] +[s4;%- &] +[s5;:Upp`:`:Ctrl`:`:PostCallback`(Upp`:`:Function``,int`):%- [@(0.0.255) voi +d]_[* PostCallback]([_^Upp`:`:Function^ Function]<[@(0.0.255) void]_()>_[*@3 cb], +[@(0.0.255) int]_[*@3 id]_`=_[@3 0])&] +[s2; Posts callback to be executed immediately (but in the main loop +after all current GUI events).&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:Ctrl`:`:KillPostCallback`(Upp`:`:Function``,int`):%- [@(0.0.255) v +oid]_[* KillPostCallback]([_^Upp`:`:Function^ Function]<[@(0.0.255) void]_()>_[*@3 cb], +[@(0.0.255) int]_[*@3 id])&] +[s2; Similar to PostCallback, but removes callback(s) with the same +id from the queue first.&] +[s3; &] +[s4;%- &] +[s5;:Ctrl`:`:GetActiveCtrl`(`):%- [@(0.0.255) static] [_^`:`:Ctrl^ Ctrl]_`*[* GetActiveCtrl +]()&] +[s2;b17;a17; Returns pointer to active Ctrl. Active Ctrl is top`-level +Ctrl of Ctrl with keyboard focus.&] +[s7;i1120;a17; [*/ Return value]-|Pointer to active Ctrl.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:GetActiveWindow`(`):%- [@(0.0.255) static] [_^`:`:Ctrl^ Ctrl]_`*[* GetActiveWi +ndow]()&] +[s2;b17;a17; Returns pointer to active TopWindow that is either active +or owns active Ctrl. Difference between GetActiveWindow and GetActiveCtrl +is that GetActiveCtrl can return pop`-up Ctrl, while GetActiveWindow +returns always TopWindow `- if active Ctrl is pop`-up, owner +of pop`-up is returned.&] +[s7;i1120;a17; [*/ Return value]-|Pointer to active window.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:GetVisibleChild`(Ctrl`*`,Point`,bool`):%- [@(0.0.255) static] +[_^`:`:Ctrl^ Ctrl]_`*[* GetVisibleChild]([_^`:`:Ctrl^ Ctrl]_`*[*@3 ctrl], +[_^`:`:Point^ Point]_[*@3 p], [@(0.0.255) bool]_[*@3 pointinframe])&] +[s2;b17;a17; Finds deepest descendant of Ctrl that is visible and +contains given point. If not such Ctrl exists, returns this.&] +[s7;i1120;a17; [%-*C@3 ctrl]-|Parent ctrl.&] +[s7;i1120;a17; [%-*C@3 p]-|Point.&] +[s7;i1120;a17; [%-*C@3 pointinframe]-|Determines whether point is in +view or frame coordinates.&] +[s7;i1120;a17; [*/ Return value]-|Pointer to Ctrl.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:PopUpHWND`(HWND`,bool`,bool`,bool`,bool`):%- [@(0.0.255) void]_[* PopUpHWND]( +HWND_[*@3 hwnd], [@(0.0.255) bool]_[*@3 savebits]_`=_[@(0.0.255) true], +[@(0.0.255) bool]_[*@3 activate]_`=_[@(0.0.255) true], [@(0.0.255) bool]_[*@3 dropshadow]_`= +_[@(0.0.255) false], [@(0.0.255) bool]_[*@3 topmost]_`=_[@(0.0.255) false])&] +[s2;b17;a17; Opens top`-level Ctrl as pop`-up window. [*/ This method +can only be invoked in the main thread.]&] +[s6; [2 Win32 specific.]&] +[s7;i1120;a17; [%-*C@3 hwnd]-|Win32 handle of owner window.&] +[s7;i1120;a17; [%-*C@3 savebits]-|Indicates that system should try to +preserve background bits.&] +[s7;i1120;a17; [%-*C@3 activate]-|Pop`-up should be activated.&] +[s7;i1120;a17; [%-*C@3 dropshadow]-|Pop`-up should have drop`-shadow +(if supported).&] +[s7;i1120;a17; [%-*C@3 topmost]-|Pop`-up should be top`-most window.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:PopUp`(Ctrl`*`,bool`,bool`,bool`,bool`):%- [@(0.0.255) void]_[* PopUp]([_^`:`:Ctrl^ C +trl]_`*[*@3 owner]_`=_NULL, [@(0.0.255) bool]_[*@3 savebits]_`=_[@(0.0.255) true], +[@(0.0.255) bool]_[*@3 activate]_`=_[@(0.0.255) true], [@(0.0.255) bool]_[*@3 dropshadow]_`= +_[@(0.0.255) false], [@(0.0.255) bool]_[*@3 topmost]_`=_[@(0.0.255) false])&] +[s2;b17;a17; Opens top`-level Ctrl as pop`-up window. [*/ This method +can only be invoked in the main thread.]&] +[s7;i1120;a17; [%-*C@3 owner]-|Owner.&] +[s7;i1120;a17; [%-*C@3 savebits]-|Indicates that system should try to +preserve background bits.&] +[s7;i1120;a17; [%-*C@3 activate]-|Pop`-up should be activated.&] +[s7;i1120;a17; [%-*C@3 dropshadow]-|Pop`-up should have drop`-shadow +(if supported).&] +[s7;i1120;a17; [%-*C@3 topmost]-|Pop`-up should be top`-most window.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:SetAlpha`(`:`:byte`):%- [@(0.0.255) void]_[* SetAlpha]([_^`:`:byte^ byte]_[*@3 a +lpha])&] +[s2;b17;a17; Sets top`-level Ctrl alpha blending if supported by +system. Ctrl must be open.&] +[s7;i1120;a17; [%-*C@3 alpha]-|Value of alpha.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:IsWaitingEvent`(`):%- [@(0.0.255) static] [@(0.0.255) bool]_[* IsWaitingEvent]( +)&] +[s7;i1120;a17; [*/ Return value]-|True when there is waiting unprocessed +event in input queue.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:ProcessEvent`(bool`*`):%- [@(0.0.255) static] [@(0.0.255) bool]_[* ProcessEven +t]([@(0.0.255) bool]_`*[*@3 quit]_`=_NULL)&] +[s2;b17;a17; Processes single event from input queue. When there +is no pending event, returns immediately. (Processing event involves +usually involves dispatching it via virtual methods to proper +Ctrls).&] +[s7;i1120;a17; [%-*C@3 quit]-|Assigned true when WM`_QUIT message is +intercepted (Win32 specific).&] +[s7;i1120;a17; [*/ Return value]-|True indicates that event was processed, +false that queue was empty.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:ProcessEvents`(bool`*`):%- [@(0.0.255) static] [@(0.0.255) bool]_[* ProcessEve +nts]([@(0.0.255) bool]_`*[*@3 quit]_`=_NULL)&] +[s2;b17;a17; Processes all events from input queue. When there is +no pending event, returns immediately. (Processing event involves +usually involves dispatching it via virtual methods to proper +Ctrls).&] +[s7;i1120;a17; [%-*C@3 quit]-|Assigned true when WM`_QUIT message is +intercepted (Win32 specific).&] +[s7;i1120;a17; [*/ Return value]-|True indicates that one or more events +were processed, false that queue was empty.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:IsPopUp`(`)const:%- [@(0.0.255) bool]_[* IsPopUp]()_[@(0.0.255) const]&] +[s7;i1120;a17; [*/ Return value]-|True if Ctrl is pop`-up window.&] +[s3; &] +[s4;%- &] +[s5;:Ctrl`:`:EventLoop`(Ctrl`*`):%- [@(0.0.255) static] [@(0.0.255) void]_[* EventLoop]([_^`:`:Ctrl^ C +trl]_`*[*@3 loopctrl]_`=_NULL)&] +[s2;b17;a17; Executes event`-loop. If [*@3 loopctrl ]is not NULL, it +must be opened top`-level Ctrl and loop is executed until EndLoop +method for [*@3 loopctrl ]is invoked. If [*@3 loopctrl] is NULL, +loop is executed as long as any top`-level Ctrl exists or application +is terminated by OS specific `"shutdown`" event. [*/ This method +can only be invoked in the main thread.]&] +[s7;i1120;a17; [%-*C@3 loopctrl]-|Looping Ctrl.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:GetLoopLevel`(`):%- [@(0.0.255) static] [@(0.0.255) int]_[* GetLoopLevel]()&] +[s7;i1120;a17; [*/ Return value]-|Level of even`-loop (even`-loops a +reentrant).&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:GetLoopCtrl`(`):%- [@(0.0.255) static] [_^`:`:Ctrl^ Ctrl]_`*[* GetLoopCtrl]()&] +[s7;i1120;a17; [*/ Return value]-|Current looping Ctrl.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:EndLoop`(`):%- [@(0.0.255) void]_[* EndLoop]()&] +[s2;b17;a17; Terminates loop for looping Ctrl. Note that this terminates +only loop for looping Ctrl. If there is another loop above such +loop, nothing is terminated until this additional loop is active.&] +[s3; &] +[s4;%- &] +[s5;:Ctrl`:`:EndLoop`(int`):%- [@(0.0.255) void]_[* EndLoop]([@(0.0.255) int]_[*@3 code])&] +[s2; Same as EndLoop(), but also defines loop exit code.&] +[s7;i1120;a17; [%-*C@3 code]-|Loop exit code.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:InLoop`(`)const:%- [@(0.0.255) bool]_[* InLoop]()_[@(0.0.255) const]&] +[s7;i1120;a17; [*/ Return value]-|true if Ctrl is looping Ctrl.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:GetExitCode`(`)const:%- [@(0.0.255) int]_[* GetExitCode]()_[@(0.0.255) const]&] +[s7;i1120;a17; [*/ Return value]-|Exit code of last loop performed with +this Ctrl.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:Clipboard`(`):%- [@(0.0.255) static] [_^PasteClip^ PasteClip][@(0.0.255) `&]_[* C +lipboard]()&] +[s2; Represents the clipboard as PasteClip. This allows unification +of drag`&drop and clipboard operations as there can be single +method handling with Clipboard and Drag`&Drop (and X11 selection) +operations.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:Selection`(`):%- [@(0.0.255) static] [_^PasteClip^ PasteClip][@(0.0.255) `&]_[* S +election]()&] +[s2; Represents X11 selection as PasteClip. This allows unification +of drag`&drop and selection operations as there can be single +method handling with Clipboard and Drag`&Drop (and X11 selection) +operations.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:SetSelectionSource`(const char`*`):%- [@(0.0.255) void]_[* SetSelectionSourc +e]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 fmts])&] +[s2; Tells X11 system that this Ctrl is current selection source, +with [%-*@3 fmts] available (semicolon separated list).&] +[s3; &] +[s4;%- &] +[s5;:Ctrl`:`:DoDragAndDrop`(const char`*`,const Image`&`,dword`,const VectorMap``&`):%- [@(0.0.255) i +nt]_[* DoDragAndDrop]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 fmts], +[@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 sample], [_^dword^ dword]_[*@3 action +s], [@(0.0.255) const]_[_^VectorMap^ VectorMap]<[_^String^ String], +[_^ClipData^ ClipData]>`&_[*@3 data])&] +[s2; Performs drag`&drop operation, with this Ctrl as source. [%-*@3 fmts] +is a semicolon separated list of formats available using GetDropData +method, [%-*@3 sample] is an image representation of data, [%-*@3 actions] +are allowed drag and drop operations `- a binary or DND`_NONE, +DND`_COPY, DND`_MOVE (or DND`_ALL as combination of all of them). +Special unrelated flag DND`_EXACTIMAGE can be add to actions +to indicate that Drag`&Drop should not alter [%-*@3 sample] image +(otherwise it can be adjusted to look consistent). [%-*@3 data] +is data directly provided for the operation as map of individual +formats to ClipData.&] +[s3; &] +[s4;%- &] +[s5;:Ctrl`:`:DoDragAndDrop`(const char`*`,const Image`&`,dword`):%- [@(0.0.255) int]_[* D +oDragAndDrop]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 fmts], [@(0.0.255) const]_[_^Image^ I +mage][@(0.0.255) `&]_[*@3 sample]_`=_Null, [_^dword^ dword]_[*@3 actions]_`=_DND`_ALL)&] +[s2; DoDragAndDrop with empty data (all formats are provided by GetDropData).&] +[s3; &] +[s4;%- &] +[s5;:Ctrl`:`:DoDragAndDrop`(const VectorMap``&`,const Image`&`,dword`):%- [@(0.0.255) i +nt]_[* DoDragAndDrop]([@(0.0.255) const]_[_^VectorMap^ VectorMap]<[_^String^ String], +[_^ClipData^ ClipData]>`&_[*@3 data], [@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 s +ample]_`=_Null, [_^dword^ dword]_[*@3 actions]_`=_DND`_ALL)&] +[s2; DoDragAndDrop with empty fmts (all formats are provided by [%-*@3 data]).&] +[s3; &] +[s4;%- &] +[s5;:Ctrl`:`:GetDragAndDropSource`(`):%- [@(0.0.255) static] [_^Ctrl^ Ctrl]_`*[* GetDragAnd +DropSource]()&] +[s2; Returns current source of Drag and Drop, is such source exists +in this process and it is U`+`+ widget (otherwise returns NULL).&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:GetDragAndDropTarget`(`):%- [@(0.0.255) static] [_^Ctrl^ Ctrl]_`*[* GetDragAnd +DropTarget]()&] +[s2; Returns current target of Drag and Drop, is such target exists +in this process and it is U`+`+ widget (otherwise returns NULL).&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:IsDragAndDropSource`(`):%- [@(0.0.255) bool]_[* IsDragAndDropSource]()&] +[s2; Same as this `=`= GetDragAndDropSource().&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:IsDragAndDropTarget`(`):%- [@(0.0.255) bool]_[* IsDragAndDropTarget]()&] +[s2; Same as this `=`= GetDragAndDropTarget().&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:StdSampleSize`(`):%- [@(0.0.255) static] [_^Size^ Size]_[* StdSampleSize]()&] +[s2; Returns the best size of DoDragAndDrop sample parameter.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:SetMinSize`(Size`):%- [@(0.0.255) void]_[* SetMinSize]([_^`:`:Size^ Size]_[*@3 s +z])&] +[s2;b17;a17; This method does nothing. It is a interface placeholder +to get Layout templates working `- in derived classes this can +be statically overloaded to receive minimal size of layout.&] +[s7;i1120;a17; [%-*C@3 sz]-|Minimal size of layout.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:Csizeinit`(`):%- [@(0.0.255) static] [@(0.0.255) void]_[* Csizeinit]()&] +[s2;b17;a17; Sets zoom factor used to scale layouts (to scale zoomed +positioning methods like LeftPosZ). Horizontal distances are +scaled by sz.cx / bsz.cx, vertical by sz.cy / bsz.cy. If bsz +is Size(0, 0), default base size (based on standard Win32 GUI +font) is used. Note that U`+`+ sets scaling factor automatically +upon startup based on actual standard GUI font size.&] +[s7;i1120;a17; [%-*C@3 sz]-|Numerator of scaling factor.&] +[s7;i1120;a17; [%-*C@3 bsz]-|Denominator of scaling factor.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:HorzLayoutZoom`(int`):%- [@(0.0.255) static] [@(0.0.255) int]_[* HorzLayoutZoo +m]([@(0.0.255) int]_[*@3 cx])&] +[s2;b17;a17; Performs horizontal scaling by actual scaling factor.&] +[s7;i1120;a17; [%-*C@3 cx]-|Distance to scale.&] +[s7;i1120;a17; [*/ Return value]-|Scaled distance.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:VertLayoutZoom`(int`):%- [@(0.0.255) static] [@(0.0.255) int]_[* VertLayoutZoo +m]([@(0.0.255) int]_[*@3 cy])&] +[s2;b17;a17; Performs vertical scaling by actual scaling factor.&] +[s7;i1120;a17; [%-*C@3 cy]-|Distance to scale.&] +[s7;i1120;a17; [*/ Return value]-|Scaled distance.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:LayoutZoom`(int`,int`):%- [@(0.0.255) static] [_^`:`:Size^ Size]_[* LayoutZoom +]([@(0.0.255) int]_[*@3 cx], [@(0.0.255) int]_[*@3 cy])&] +[s2;b17;a17; Performs scaling by actual scaling factor.&] +[s7;i1120;a17; [%-*C@3 cx]-|Horizontal distance.&] +[s7;i1120;a17; [%-*C@3 cy]-|Vertical distance.&] +[s7;i1120;a17; [*/ Return value]-|Scaled size.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:LayoutZoom`(Size`):%- [@(0.0.255) static] [_^`:`:Size^ Size]_[* LayoutZoom]([_^`:`:Size^ S +ize]_[*@3 sz])&] +[s2;b17;a17; Performs scaling by actual scaling factor.&] +[s7;i1120;a17; [%-*C@3 sz]-|Size to scale.&] +[s7;i1120;a17; [*/ Return value]-|Scaled size.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:NoLayoutZoom`(`):%- [@(0.0.255) static] [@(0.0.255) void]_[* NoLayoutZoom]()&] +[s2;b17;a17; Sets scaling factor to (1, 1). Same as SetZoomSize(Size(1, +1), Size(1, 1)).&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:Ctrl`:`:SetUHDEnabled`(bool`):%- [@(0.0.255) void]_[* SetUHDEnabled]([@(0.0.255) b +ool]_[*@3 set])&] +[s2; Informs host platform that application is UHD ready. Default +is true.&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:Ctrl`:`:IsUHDEnabled`(`):%- [@(0.0.255) bool]_[* IsUHDEnabled]()&] +[s2; Returns the value set by SetUHDEnabled.&] +[s3;%- &] +[s4; &] +[s5;K:Ctrl`:`:GetWorkArea`(`):%- [*^`:`:Rect^@(64) Rect][*@(64) _][* GetWorkArea][*@(64) ()]&] +[s2; Returns OS specific working area for the widget `- this is rectangle +in screen coordinates where application top`-level windows can +be placed `- the size of screen minus the size of any border +entities like the task`-bar. If widget is not associated with +the open window, returns the size of primary work area.&] +[s7;i1120;a17; [*/ Return value]-|Work area rectangle.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:GetVirtualWorkArea`(`):%- [@(0.0.255) static] [_^`:`:Rect^ Rect]_[* GetVirtual +WorkArea]()&] +[s2;b17;a17; Returns the total size of all displays minus any border +entities.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:GetVirtualScreenArea`(`):%- [@(0.0.255) static] [_^`:`:Rect^ Rect]_[* GetVirtu +alScreenArea]()&] +[s2;b17;a17; Returns the total size of all displays.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:GetPrimaryWorkArea`(`):%- [@(0.0.255) static] [_^`:`:Rect^ Rect]_[* GetPrimary +WorkArea]()&] +[s2;b17;a17; Returns the size of primary work area `- primary screen +in Windows is the display with start menu.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:GetPrimaryScreenArea`(`):%- [@(0.0.255) static] [_^`:`:Rect^ Rect]_[* GetPrima +ryScreenArea]()&] +[s2;b17;a17; Returns the size of primary screen `- primary screen +in Windows is the display with start menu.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:GetWorkArea`(Point`):%- [@(0.0.255) static] [_^Rect^ Rect]_[* GetWorkArea]([_^Point^ P +oint]_[*@3 pt])&] +[s2; Returns the recangle of work area which contains [%-*@3 pt]. If +[%-*@3 pt] does not belong to any area, returns the primary work +area.&] +[s3; &] +[s4;%- &] +[s5;:Ctrl`:`:GetMouseWorkArea`(`):%- [@(0.0.255) static] [_^Rect^ Rect]_[* GetMouseWorkArea +]()&] +[s2; Returns the work are which contains mouse cursor. Same as GetWorkArea(GetMousePo +s()).&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:GetKbdDelay`(`):%- [@(0.0.255) static] [@(0.0.255) int]_[* GetKbdDelay]()&] +[s2;b17;a17; Returns delay of keyboard before autorepeat starts when +key is pressed.&] +[s7;i1120;a17; [*/ Return value]-|Time in ms.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:GetKbdSpeed`(`):%- [@(0.0.255) static] [@(0.0.255) int]_[* GetKbdSpeed]()&] +[s2;b17;a17; Returns speed of autorepeat.&] +[s7;i1120;a17; [*/ Return value]-|Speed of autorepeat.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:GetDefaultWindowRect`(`):%- [@(0.0.255) static] [_^`:`:Rect^ Rect]_[* GetDefau +ltWindowRect]()&] +[s2;b17;a17; Returns OS suggested rectangle of newly open window.&] +[s7;i1120;a17; [*/ Return value]-|Default window rectangle.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:GetAppName`(`):%- [@(0.0.255) static] [_^`:`:String^ String]_[* GetAppName]()&] +[s7;i1120;a17; [*/ Return value]-|Name of application. Used by U`+`+ +in several places like Prompts.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:SetAppName`(const String`&`):%- [@(0.0.255) static] [@(0.0.255) void]_[* SetAp +pName]([@(0.0.255) const]_[_^`:`:String^ String][@(0.0.255) `&]_[*@3 appname])&] +[s7;i1120;a17; [%-*C@3 appname]-|Adjusts application name.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:Name`(`)const:%- [_^`:`:String^ String]_[* Name]()_[@(0.0.255) const]&] +[s2;b17;a17; Dumps diagnostic informations to standard log.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:Dump`(Stream`&`)const:%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Dump]([_^`:`:Stream^ S +tream][@(0.0.255) `&]_[*@3 s])_[@(0.0.255) const]&] +[s2;b17;a17;%- Dumps diagnostic informations to specified output +stream.&] +[s7;i1120;a17; [%-*C@3 s]-|Stream.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:InitWin32`(HINSTANCE`):%- [@(0.0.255) static] [@(0.0.255) void]_[* InitWin32]( +HINSTANCE_[*@3 hinst])&] +[s2;b17;a17; Flushes all drawing operations to screen (what it EXACTLY +does is platform specific).&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:GuiSleep`(int`):%- [@(0.0.255) static] [@(0.0.255) void]_[* GuiSleep]([@(0.0.255) i +nt]_[*@3 ms])&] +[s2;b17;a17; Sleeps (while allowing other applications or threads +to run) for at least [*@3 ms] milliseconds or until new input event +is available. [*/ This method can only be invoked in the main thread.]&] +[s7;i1120;a17; [%-*@3 ms]-|Time to sleep.&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:Ctrl`:`:Call`(Upp`:`:Function``):%- [@(0.0.255) static] +[@(0.0.255) void]_[* Call]([_^Upp`:`:Function^ Function]<[@(0.0.255) void]_()>_[*@3 cb])&] +[s2; Executes a callback in the main thread (the one responsible +for GUI). It works by posting callback into timer queue (with +zero delay), then waits its completion using Semaphore. Main +GUI thread has to run timer queue management for callback to +be executed (by running event`-loop (TopWindow`::Run) or ProcessEvents). +Warning: Call temporarily unlocks GuiLock (if locked) so that +the main thread can run on GUI, this is possible source of race`-conditions +(GuiLock is relocked after call completes). Be prepared that +some other code can run on GUI between call to Call and cb being +executed!&] +[s3; &] +[s4;%- &] +[s5;:Ctrl`:`:IsShutdownThreads`(`):%- [@(0.0.255) static] [@(0.0.255) bool]_[* IsShutdownTh +reads]()&] +[s2; Same as Thread`::IsShutdownThreads. Used to signal non`-main +threads that the program is about to end, so that non`-main threads +should terminate.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:ShutdownThreads`(`):%- [@(0.0.255) static] [@(0.0.255) void]_[* ShutdownThread +s]()&] +[s2; Similiar to Thread`::ShutdownThreads, but as part of waiting +for threads to finish calls ProcessEvents so that any Call methods +can finish.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:GetEventId`(`):%- [@(0.0.255) static] [_^int64^ int64]_[* GetEventId]()&] +[s2; This function is guaranteed to return the same number while +single input event (mouse event or keyboard event) is processed. +This is helpful in certain caching situations `- e.g. if you +want to lazy fetch some data, but only once per input event.&] +[s0;%- &] +[s0;%- &] +[ {{10000@(113.42.0) [s0; [*@7;4 Ctrl`::Logc]]}}&] +[s3; &] +[s1;:Ctrl`:`:Logc`:`:class:%- [@(0.0.255)3 class][3 _][*3 Logc]&] +[s9; This nested class serves as either vertical or horizontal part +of logical position.&] +[s3; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] +[s3;%- &] +[s5;:Ctrl`:`:Logc`:`:Logc`(int`,int`,int`):%- [* Logc]([@(0.0.255) int]_[*@3 al], +[@(0.0.255) int]_[*@3 a], [@(0.0.255) int]_[*@3 b])&] +[s7;l352;i1120;a17; [%-*C@3 al]-|Alignment type. Determines what other +parameters mean. &] +[s7;l352;i1120;a17; [%-*C@3 a]-|First value.&] +[s7;l352;i1120;a17; [%-*C@3 b]-|Second value.&] +[s3;%- &] +[s4;%- &] +[s5;:Ctrl`:`:Logc`:`:Logc`(`):%- [* Logc]()&] +[s2; Default constructor. Sets Logc to the empty state.&] +[s3; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] +[s3;%- &] +[s5;:Ctrl`:`:Logc`:`:LSGN`(dword`):%- [@(0.0.255) static] [@(0.0.255) int]_[* LSGN]([_^dword^ d +word]_[*@3 d])&] +[s7;l352;i1120;a17; [%-*C@3 q]-|Logc to compare with.&] +[s7;l352;i1120;a17; [*/ Return value]-|True when equal.&] +[s3; &] +[s4;%- &] +[s5;:Ctrl`:`:Logc`:`:operator`!`=`(Ctrl`:`:Logc`)const:%- [@(0.0.255) bool]_[* operator!`= +]([_^Ctrl`:`:Logc^ Logc]_[*@3 q])_[@(0.0.255) const]&] +[s7;l352;i1120;a17; [%-*C@3 q]-|Logc to compare with.&] +[s7;l352;i1120;a17; [*/ Return value]-|True when not equal.&] +[s3; &] +[s4;%- &] +[s5;:Ctrl`:`:Logc`:`:GetAlign`(`)const:%- [@(0.0.255) int]_[* GetAlign]()_[@(0.0.255) const +]&] +[s7;l352;i1120;a17; [*/ Return value]-|Alignment type.&] +[s3; &] +[s4;%- &] +[s5;:Ctrl`:`:Logc`:`:GetA`(`)const:%- [@(0.0.255) int]_[* GetA]()_[@(0.0.255) const]&] +[s7;l352;i1120;a17; [*/ Return value]-|First value.&] +[s3; &] +[s4;%- &] +[s5;:Ctrl`:`:Logc`:`:GetB`(`)const:%- [@(0.0.255) int]_[* GetB]()_[@(0.0.255) const]&] +[s7;l352;i1120;a17; [*/ Return value]-|Second value.&] +[s3; &] +[s4;%- &] +[s5;:Ctrl`:`:Logc`:`:SetAlign`(int`):%- [@(0.0.255) void]_[* SetAlign]([@(0.0.255) int]_[*@3 a +lign])&] +[s2;l352;b17;a17;%- Sets alignment type.&] +[s7;l352;i1120;a17; [%-*C@3 align]-|Alignment type.&] +[s3; &] +[s4;%- &] +[s5;:Ctrl`:`:Logc`:`:SetA`(int`):%- [@(0.0.255) void]_[* SetA]([@(0.0.255) int]_[*@3 a])&] +[s2;l352;b17;a17; Sets first value.&] +[s7;l352;i1120;a17; [%-*C@3 a]-|Value.&] +[s3; &] +[s4;%- &] +[s5;:Ctrl`:`:Logc`:`:SetB`(int`):%- [@(0.0.255) void]_[* SetB]([@(0.0.255) int]_[*@3 b])&] +[s2;l352;b17;a17; Sets second value.&] +[s7;l352;i1120;a17; [%-*C@3 b]-|Value.&] +[s3; &] +[s4;%- &] +[s5;:Ctrl`:`:Logc`:`:IsEmpty`(`)const:%- [@(0.0.255) bool]_[* IsEmpty]()_[@(0.0.255) const]&] +[s7;l352;i1120;a17; [*/ Return value]-|True if Logc is empty.&] +[s3; &] +[s0; &] +[s0; &] +[s0;%- &] +[ {{10000@(113.42.0) [s0; [*@7;4 Ctrl`::LogPos]]}}&] +[s3; &] +[s5;:`:`:Ctrl`:`:LogPos`:`:struct:%- [*@(0.0.255) struct][*@(64) _][* LogPos]&] +[s9; This nested class combines two Logc value into complete logical +position.&] +[s3; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] +[s3;%- &] +[s5;:Ctrl`:`:LogPos`:`:LogPos`(Ctrl`:`:Logc`,Ctrl`:`:Logc`):%- [* LogPos]([_^Ctrl`:`:Logc^ L +ogc]_[*@3 x], [_^Ctrl`:`:Logc^ Logc]_[*@3 y])&] +[s7;l352;i1120;a17; [%-*C@3 x]-|Horizontal Logc.&] +[s7;l352;i1120;a17; [%-*C@3 y]-|Vertical Logc.&] +[s3; &] +[s4;%- &] +[s5;:Ctrl`:`:LogPos`:`:LogPos`(`):%- [* LogPos]()&] +[s2; Default constructor. Sets both Logc empty.&] +[s3; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] +[s3;%- &] +[s5;:Ctrl`:`:LogPos`:`:operator`=`=`(Ctrl`:`:LogPos`)const:%- [@(0.0.255) bool]_[* operat +or`=`=]([_^Ctrl`:`:LogPos^ LogPos]_[*@3 b])_[@(0.0.255) const]&] +[s7;l352;i1120;a17; [%-*C@3 b]-|LogPos to compare with.&] +[s7;l352;i1120;a17; [*/ Return value]-|True when equal.&] +[s3; &] +[s4;%- &] +[s5;:Ctrl`:`:LogPos`:`:operator`!`=`(Ctrl`:`:LogPos`)const:%- [@(0.0.255) bool]_[* operat +or!`=]([_^Ctrl`:`:LogPos^ LogPos]_[*@3 b])_[@(0.0.255) const]&] +[s7;l352;i1120;a17; [%-*C@3 b]-|LogPos to compare with.&] +[s7;l352;i1120;a17; [*/ Return value]-|True when equal.&] +[s3; &] +[s4;%- &] +[s5;:Ctrl`:`:LogPos`:`:x:%- [_^Ctrl`:`:Logc^ Logc]_[* x]&] +[s2; Horizontal Logc.&] +[s3; &] +[s4;%- &] +[s5;:Ctrl`:`:LogPos`:`:y:%- [_^Ctrl`:`:Logc^ Logc]_[* y]&] +[s2; Vertical Logc.&] +[s3; &] [s0; ]] \ No newline at end of file diff --git a/uppsrc/CtrlCore/src.tpp/Frame$en-us.tpp b/uppsrc/CtrlCore/src.tpp/Frame_en-us.tpp similarity index 97% rename from uppsrc/CtrlCore/src.tpp/Frame$en-us.tpp rename to uppsrc/CtrlCore/src.tpp/Frame_en-us.tpp index 1b3089ed8..296b860eb 100644 --- a/uppsrc/CtrlCore/src.tpp/Frame$en-us.tpp +++ b/uppsrc/CtrlCore/src.tpp/Frame_en-us.tpp @@ -1,339 +1,339 @@ -topic "Frame"; -[2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,2#27521748481378242620020725143825:desc] -[0 $$3,0#96390100711032703541132217272105:end] -[H6;0 $$4,0#05600065144404261032431302351956:begin] -[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] -[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] -[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] -[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] -[b42;2 $$9,9#13035079074754324216151401829390:normal] -[{_}%EN-US -[ {{10000t/25b/25@3 [s0;%- [*@(229)4 Frame]]}}&] -[s9; [^topic`:`/`/CtrlCore`/srcdoc`/AboutFrames`$en`-us^ Frames] are -objects derived from CtrlFrame class that form appearance and -functionality of area between outer Ctrl border and its view.&] -[s3; &] -[s0; &] -[s0; &] -[s0;%- &] -[ {{10000t/25b/25@3 [s0;%- [*@(229)4 CtrlFrame]]}}&] -[s3; &] -[s1;:CtrlFrame`:`:class:%- [@(0.0.255)3 class][3 _][*3 CtrlFrame]&] -[s9; Interface definition of frame classes.&] -[s3; &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] -[s3;%- &] -[s5;:CtrlFrame`:`:`~CtrlFrame`(`):%- [@(0.0.255) `~][* CtrlFrame]()&] -[s2; Empty virtual destructor.&] -[s3; &] -[s4;%- &] -[s5;:CtrlFrame`:`:FrameLayout`(Rect`&`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* FrameL -ayout]([_^Rect^ Rect][@(0.0.255) `&]_[*@3 r])_`=_[@3 0]&] -[s2; Frame reacts to this method by defining its own layout (if needed) -and reducing the size of Ctrl view rectangle.&] -[s7; [%-*C@3 r]-|Reference to current Ctrl rectangle. When Ctrl recomputes -its layout, it starts with Rect equivalent to its external size -(GetRect().Size()). Then it calls FrameLayout of all its frames -(starting with frame 0) and resulting Rect is the size of Ctrl`'s -view.&] -[s3; &] -[s4;%- &] -[s5;:CtrlFrame`:`:FrameAddSize`(Size`&`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Frame -AddSize]([_^Size^ Size][@(0.0.255) `&]_[*@3 sz])_`=_[@3 0]&] -[s2; Adds size of the frame to the current external size of Ctrl. -This is used to compute the external size of Ctrl for given size -of view.&] -[s7; [%-*C@3 sz]-|Reference to actual size of Ctrl.&] -[s3; &] -[s4;%- &] -[s5;:CtrlFrame`:`:FramePaint`(Draw`&`,const Rect`&`):%- [@(0.0.255) virtual] -[@(0.0.255) void]_[* FramePaint]([_^Draw^ Draw][@(0.0.255) `&]_[*@3 w], -[@(0.0.255) const]_[_^Rect^ Rect][@(0.0.255) `&]_[*@3 r])&] -[s2; Paint the frame. Default implementation is empty.&] -[s7; [%-*C@3 w]-|Draw.&] -[s7; [%-*C@3 r]-|Outer rectangle of the frame (this is the same rectangle -as was given in last FrameLayout).&] -[s3; &] -[s4;%- &] -[s5;:CtrlFrame`:`:FrameAdd`(Ctrl`&`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* FrameAdd]( -[_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 parent])&] -[s2; Called when frame is added to the Ctrl. Frame can use it to -add its subctrls to the parent. Default implementation is empty.&] -[s7; [%-*C@3 parent]-|Parent Ctrl.&] -[s3; &] -[s4;%- &] -[s5;:CtrlFrame`:`:FrameRemove`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* FrameRemove]( -)&] -[s2; Called when frame is removed from the Ctrl. Frame can use it -to remove subctrls from its parent. Default implementation is -empty. &] -[s3; &] -[s4;%- &] -[s5;:CtrlFrame`:`:OverPaint`(`)const:%- [@(0.0.255) virtual] [@(0.0.255) int]_[* OverPaint]( -)_[@(0.0.255) const]&] -[s2; This method can returns non`-zero number that represents paint -extension margin of Ctrl rectangle `- frame can paint over this -margin despite that fact that it does not belong to the Ctrl -rectangle. This is useful to represent some specific skinning -effect (like glare around the EditField). Default implementation -returns zero. &] -[s3; &] -[s0; &] -[s0; &] -[s0; &] -[ {{10000t/25b/25@3 [s0;%- [*@(229)4 Standard static frames]]}}&] -[s9; U`+`+ defines several standard static frames. Those frames are -mostly used to define (or alter) appearance of border of Ctrls. -All of them are obtained as a reference to single global instance -by single global function and can be assigned to unlimited number -of Ctrls.&] -[s9; Appearance of some of them can be altered by current OS look`&feel.&] -[s3; &] -[s0; &] -[ {{3967:1202:1908:2923h1;@(204) [s0; Function] -:: [s0; altered by look`&feel] -:: [s0; Appearance] -:: [s0; Comment] -::@2 [s0; CtrlFrame`&_[* NullFrame]()] -:: [s0; No.] -:: [s0; -@@image:612&237 -(A2IAJgAAANr/AAAAAHic7dBBCQAgAMDA/g2tINhBKwzBlzcuwdYcCwAAntmf5VLJpZJLJZdKLpVcKrlUcqnkUsmlkksll0oulVwquVRyqeRSyaWSS6W7SwAAEB2VfOL1) -] -:: [s0; [1 Default Frame for Ctrl.]] -:: [s0; CtrlFrame`&_[* InsetFrame]()] -:: [s0; No.] -:: [s0; -@@image:612&237 -(A2IAJgAAANr/AAAAAHic7dHBDYAgFERB++/ADjxYkC2Y0ANawgaiRJnNXDnwfjmPAgAAj9m3dR611uZKyxy7P9tZqU4wlZKplEylZColUymZSslUSqZSMpWSqZRMpWQqJVMpmUrJVErWWant4Rc1Vxp94bc3/FIAAPzbBXs9SD0=) -] -:: [s0; ] -:: [s0; CtrlFrame`&_[* OutsetFrame]()] -:: [s0; No.] -:: [s0; -@@image:612&237 -(A2IAJgAAANr/AAAAAHic7dKxDYNAEEXB678Dd0DggtwCEj1gOuDpILt5mnSTrz323wEAALxhjDF9e67Rd/tY6TYrlaxUslLJSiUrlaxUslLJSiUrlaxUslLJSiUrlaxUslLp4UrX+SKmVxqLNf1LAABQ/AG7lTfP) -] -:: [s0; ] -:: [s0; CtrlFrame`&_[* ButtonFrame]()] -:: [s0; No.] -:: [s0; -@@image:612&237 -(A2IAJgAAANr/AAAAAHic7dGxDYAwEATB778DOiCgIDJiJPcAlHCyBQSe06Sf7LdzbwAA8JprplVVd6Vjjm3rMljp5x9/MpWSqZRMpWQqJVMpmUrJVEqmUjKVkqmUTKVkKiVTKZlKyVRKNljpOZ9Ed6WabH2VAAAgdAN14TM/) -] -:: [s0; ] -:: [s0; CtrlFrame`&_[* ThinInsetFrame]()] -:: [s0; No.] -:: [s0; -@@image:612&237 -(A2IAJgAAANr/AAAAAHic7dBBDYAwAARB/xJwwANBWCCph2Jh0wR4MJcRcNlxnQMAAB5z7Nt/zDmXK80/TaUylcpUKlOpTKUylcpUKlOpTKUylcpUKlOpTKUylcpUKlOpTKWytUpfv357a5UAACC6AbZWe+U=) -] -:: [s0; ] -:: [s0; CtrlFrame`&_[* ThinOutsetFrame]()] -:: [s0; No.] -:: [s0; -@@image:612&237 -(A2IAJgAAANr/AAAAAHic7dAxDYBAAARB/xJwQIEgLJC8B8ABm0+ofi7TXrPjOgcAAPzmXmnHvqn0OZXKVCpTqUylMpXKVCpTqUylMpXKVCpTqUylMpXKVCpTqUylMpXKpiu9x6XMVQIAgOgB/DB5xQ==) -] -:: [s0; ] -:: [s0; CtrlFrame`&_[* BlackFrame]()] -:: [s0; No.] -:: [s0; -@@image:612&237 -(A2IAJgAAANr/AAAAAHic7dBRDYAwFMBA/CvEAsk8gIVmC1/vmlPQ9dwLAAB+cw1r+9I7JpdKLpVcKrlUcqnkUsmlkksll0oulVwquVRyqeRSyaWSSyWXSieXRrV3CQAAog9J6pkj) -] -:: [s0; ] -:: [s0; CtrlFrame`&_[* FieldFrame]()] -:: [s0; Yes.] -:: [s0; -@@image:612&237 -(A2IAJgAAANr/AAAAAHic7dBBDYAwAMBAx/jADHqwQDIPzEIzwmvXnIKO5x4AAPCb47y2snzp3SaXSi6VXCq5VHKp5FLJpZJLJZdKLpVcKrlUcqnkUsmlkksll0pfLm1l7RIAAEQTozHbhg==) -] -:: [s0; [1 Good for borders of all Ctrls that display somthing, like EditField -or ArrayCtrl.]] -:: [s0; CtrlFrame`&_[* TopSeparatorFrame]()] -:: [s0; Yes.] -:: [s0; -@@image:612&237 -(A2IAJgAAANr/AAAAAHic7dBRCQAhEEDB/hGugR9XwwjCXQTBDlpBBGFh5zEJ3ujfAACAa97ypHJ2aSbr7NLfaiouueSSS9G45JJLLkXjkksuuRSNSy655FI0Lt27BAAAmxZrvoWI) -] -:: [s0; ] -:: [s0; CtrlFrame`&_[* BottomSeparatorFrame]()] -:: [s0; Yes.] -:: [s0; -@@image:612&237 -(A2IAJgAAANr/AAAAAHic7dBRCQAhEEDB/hGugR9XwwjCXQTBDlpBBGFh5zEJ3ujfAACAa/5WU3HJJZdcisYll1xyKRqXXHLJpWhccskll6Jx6d6ltzypnF2ayTq7BAAAmxaTOIWI) -] -:: [s0; ] -:: [s0; CtrlFrame`&_[* LeftSeparatorFrame]()] -:: [s0; Yes.] -:: [s0; -@@image:612&237 -(A2IAJgAAANr/AAAAAHic7dBBCcAwFAUw/xLqYIfamITCKmFQD78Wdhk8aCAKst5nAQDAb/rVqmqO+xCWLFmylMaSJUuW0liyZMlSGkuWLFlKY8mSpfwlAAD4aAPkY4SY) -] -:: [s0; ] -:: [s0; CtrlFrame`&_[* RightSeparatorFrame]()] -:: [s0; Yes.] -:: [s0; -@@image:612&237 -(A2IAJgAAANr/AAAAAHic7dBRCYAwGAbA/hFssAdrLMJAIwzW4V8FX4RPPLgEt+a1AADgNffoP3G2o6osWbJkKYclS5YspbFkyZKlNJYsWbKUxpIlS19ZAgCAhzabQ4SY) -] -:: [s0; ]}}&] -[s3; &] -[s0; &] -[s0; &] -[s0;%- &] -[ {{10000t/25b/25@3 [s0;%- [*@(229)4 Simple Ctrl frame templates]]}}&] -[s3;%- &] -[s1;:noref:%- [@(0.0.255)3 template][3 _<][@(0.0.255)3 class][3 _][*@3;3 T][3 >]&] -[s1;:FrameCtrl`:`:class:%- [@(0.0.255) class]_[* FrameCtrl]_:_[@(0.0.255) public]_[*@3 T], -[@(0.0.255) public]_[*@3 CtrlFrame]&] -[s2; This is the base class of simple Ctrl frames `- frames that -place single Ctrl at some edge of parent Ctrl.&] -[s2; &] -[s2; This class basically overloads FrameAdd and FrameRemove virtual -methods of [^topic`:`/`/CtrlCore`/src`/Frame`$en`-us`#`:`:CtrlFrame`:`:class CtrlFrame^ C -trlFrame] so that they add/remove `'this`' from parent`'s children`-list.&] -[s2; &] -[s7; [%-*C@4 T]-|Ctrl type.&] -[s0; &] -[s0;%- [%%/ Derived from][%% ]T, [^topic`:`/`/CtrlCore`/src`/Frame`$en`-us`#`:`:CtrlFrame`:`:class CtrlFrame^@(0.0.255) C -trlFrame]&] -[s0;^topic`:`/`/CtrlCore`/src`/Frame`$en`-us`#`:`:CtrlFrame`:`:class CtrlFrame^@(0.0.255)%- &] -[s0;^topic`:`/`/CtrlCore`/src`/Frame`$en`-us`#`:`:CtrlFrame`:`:class CtrlFrame^@(0.0.255)%- &] -[s5;:FrameCtrl`:`:GetParent`(`):%- [_^Ctrl^ Ctrl]_`*[* GetParent]()&] -[s2; Returns a parent to which the Ctrl is attached.&] -[s3;%- &] -[s4; &] -[s1;:noref:%- [@(0.0.255)3 template][3 _<][@(0.0.255)3 class][3 _][*@4;3 T][3 >]&] -[s1;:FrameLR`:`:class:%- [@(0.0.255) class]_[* FrameLR]_:_[@(0.0.255) public]_[*@3 FrameCtrl]< -[*@4 T]>_&] -[s2; This class extends CtrlFrame class with width attribute and -serves as base class to classes placing Ctrl at the left or right -size of parent Ctrl frame. Width is initialized to 0. 0 as width -indicates that width is equal to the height.&] -[s2; &] -[s7; [%-*C@4 T]-|Ctrl type.&] -[s0; &] -[s0;%- [%%/ Derived from][%% ][^topic`:`/`/CtrlCore`/src`/Frame`$en`-us`#`:`:FrameCtrl`:`:template ` class FrameCtrl^ F -rameCtrl] &] -[s0; &] -[s0; &] -[s0; &] -[s5;:FrameLR`:`:Width`(int`):%- [_^FrameLR^ FrameLR][@(0.0.255) `&]_[* Width]([@(0.0.255) int -]_[*@3 `_cx])&] -[s2; Sets the new width.&] -[s7; [%-*C@3 `_cx]-|Width.&] -[s7; [*/ Return value]-|`*this.&] -[s0;3 &] -[s5;:FrameLR`:`:GetWidth`(`)const:%- [@(0.0.255) int]_[* GetWidth]()_[@(0.0.255) const]&] -[s7; [*/ Return value]-|Current width.&] -[s3; &] -[s4; &] -[s1;:noref:%- [@(0.0.255)3 template][3 _<][@(0.0.255)3 class][3 _][*@4;3 T][3 >]&] -[s1;:FrameLeft`:`:class:%- [@(0.0.255) class]_[* FrameLeft]_:_[@(0.0.255) public]_[*@3 FrameLR -]<[*@4 T]>_&] -[s2; This class places Ctrl to the parent`'s left side as frame.&] -[s7; [%-*C@4 T]-|Ctrl type.&] -[s0; &] -[s0;%- [%%/ Derived from][%% ][^topic`:`/`/CtrlCore`/src`/Frame`$en`-us`#`:`:FrameLR`:`:template ` class FrameLR^ F -rameLR] &] -[s3; &] -[s4; &] -[s1;:noref:%- [@(0.0.255)3 template][3 _<][@(0.0.255)3 class][3 _][*@4;3 T][3 >]&] -[s1;:FrameRight`:`:class:%- [@(0.0.255) class]_[* FrameRight]_:_[@(0.0.255) public]_[*@3 Frame -LR]<[*@4 T]>_&] -[s2; This class places Ctrl to the parent`'s right side as frame.&] -[s7; [%-*C@4 T]-|Ctrl type.&] -[s0; &] -[s0;%- [%%/ Derived from][%% ][^topic`:`/`/CtrlCore`/src`/Frame`$en`-us`#`:`:FrameLR`:`:template ` class FrameLR^ F -rameLR] &] -[s3; &] -[s1;:noref:%- [@(0.0.255)3 template][3 _<][@(0.0.255)3 class][3 _][*@4;3 T][3 >]&] -[s1;:FrameTB`:`:class:%- [@(0.0.255) class]_[* FrameTB]_:_[@(0.0.255) public]_[*@3 FrameCtrl]< -[*@4 T]>_&] -[s2; This class extends CtrlFrame class with height attribute and -serves as base class to classes placing Ctrl as the top or bottom -side of parent Ctrl frame. Height is initialized to 0. 0 as height -indicates that height is equal to the width.&] -[s7; [%-*C@4 T]-|Ctrl type.&] -[s0; &] -[s0;%- [%%/ Derived from][%% ][^topic`:`/`/CtrlCore`/src`/Frame`$en`-us`#`:`:FrameCtrl`:`:template ` class FrameCtrl^ F -rameCtrl] &] -[s3; &] -[s0; &] -[s0; &] -[s5;:FrameTB`:`:Height`(int`):%- [_^FrameTB^ FrameTB][@(0.0.255) `&]_[* Height]([@(0.0.255) i -nt]_[*@3 `_cy])&] -[s2; Sets the new height.&] -[s7; [%-*C@3 `_cy]-|Height.&] -[s7; [*/ Return value]-|`*this.&] -[s0; &] -[s5;:FrameTB`:`:GetHeight`(`)const:%- [@(0.0.255) int]_[* GetHeight]()_[@(0.0.255) const]&] -[s7; [*/ Return value]-|Current height.&] -[s3; &] -[s4; &] -[s1;:noref:%- [@(0.0.255)3 template][3 _<][@(0.0.255)3 class][3 _][*@4;3 T][3 >]&] -[s1;:FrameTop`:`:class:%- [@(0.0.255) class]_[* FrameTop]_:_[@(0.0.255) public]_[*@3 FrameTB]< -[*@4 T]>_&] -[s2; This class places Ctrl to the parent`'s top side as frame.&] -[s7; [%-*C@4 T]-|Ctrl type.&] -[s0; &] -[s0;%- [%%/ Derived from][%% ][^topic`:`/`/CtrlCore`/src`/Frame`$en`-us`#`:`:FrameTB`:`:template ` class FrameTB^ F -rameTB] &] -[s3; &] -[s4; &] -[s1;:noref:%- [@(0.0.255)3 template][3 _<][@(0.0.255)3 class][3 _][*@4;3 T][3 >]&] -[s1;:FrameBottom`:`:class:%- [@(0.0.255) class]_[* FrameBottom]_:_[@(0.0.255) public]_[*@3 Fra -meTB]<[*@4 T]>_&] -[s2; This class places Ctrl to the parent`'s bottom side as frame.&] -[s7; [%-*C@4 T]-|Ctrl type.&] -[s0; &] -[s0;%- [%%/ Derived from][%% ][^topic`:`/`/CtrlCore`/src`/Frame`$en`-us`#`:`:FrameTB`:`:template ` class FrameTB^ F -rameTB] &] -[s3; &] -[s0; &] -[s0; &] -[s0;%- &] -[ {{10000t/25b/25@3 [s0;%- [*@(229)4 Frame utility functions]]}}&] -[s9; Following functions are intended as helpers to for implementation -of FrameLayout method of CtrlFrame, placing some Ctrl to the -side of parent Ctrl. They adjust given Rect (parameter of FrameLayout) -and also alter position of given Ctrl.&] -[s3; &] -[s0; &] -[s5;:LayoutFrameLeft`(Rect`&`,Ctrl`*`,int`):%- [@(0.0.255) void]_[* LayoutFrameLeft]([_^Rect^ R -ect][@(0.0.255) `&]_[*@3 r], [_^Ctrl^ Ctrl]_`*[*@3 ctrl], [@(0.0.255) int]_[*@3 cx])&] -[s2; Places ctrl at the left side of parent Ctrl.&] -[s7; [%-*C@3 r]-|Current parent Ctrl rect.&] -[s7; [%-*C@3 ctrl]-|Ctrl to be placed.&] -[s7; [%-*C@3 cx]-|Required width.&] -[s3; &] -[s4;%- &] -[s5;:LayoutFrameRight`(Rect`&`,Ctrl`*`,int`):%- [@(0.0.255) void]_[* LayoutFrameRight]([_^Rect^ R -ect][@(0.0.255) `&]_[*@3 r], [_^Ctrl^ Ctrl]_`*[*@3 ctrl], [@(0.0.255) int]_[*@3 cx])&] -[s2; Places ctrl at the right side of parent Ctrl.&] -[s7; [%-*C@3 r]-|Current parent Ctrl rect.&] -[s7; [%-*C@3 ctrl]-|Ctrl to be placed.&] -[s7; [%-*C@3 cx]-|Required width.&] -[s3; &] -[s4;%- &] -[s5;:LayoutFrameTop`(Rect`&`,Ctrl`*`,int`):%- [@(0.0.255) void]_[* LayoutFrameTop]([_^Rect^ R -ect][@(0.0.255) `&]_[*@3 r], [_^Ctrl^ Ctrl]_`*[*@3 ctrl], [@(0.0.255) int]_[*@3 cy])&] -[s2; Places ctrl at the top side of parent Ctrl.&] -[s7; [%-*C@3 r]-|Current parent Ctrl rect.&] -[s7; [%-*C@3 ctrl]-|Ctrl to be placed.&] -[s7; [%-*C@3 cy]-|Required height.&] -[s3; &] -[s4;%- &] -[s5;:LayoutFrameBottom`(Rect`&`,Ctrl`*`,int`):%- [@(0.0.255) void]_[* LayoutFrameBottom]( -[_^Rect^ Rect][@(0.0.255) `&]_[*@3 r], [_^Ctrl^ Ctrl]_`*[*@3 ctrl], [@(0.0.255) int]_[*@3 cy])&] -[s2; Places ctrl at the bottom side of parent Ctrl.&] -[s7; [%-*C@3 r]-|Current parent Ctrl rect.&] -[s7; [%-*C@3 ctrl]-|Ctrl to be placed.&] -[s7; [%-*C@3 cy]-|Required height.&] -[s3; &] +topic "Frame"; +[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,2#27521748481378242620020725143825:desc] +[0 $$3,0#96390100711032703541132217272105:end] +[H6;0 $$4,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] +[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] +[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] +[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] +[b42;2 $$9,9#13035079074754324216151401829390:normal] +[{_}%EN-US +[ {{10000t/25b/25@3 [s0;%- [*@(229)4 Frame]]}}&] +[s9; [^topic`:`/`/CtrlCore`/srcdoc`/AboutFrames`$en`-us^ Frames] are +objects derived from CtrlFrame class that form appearance and +functionality of area between outer Ctrl border and its view.&] +[s3; &] +[s0; &] +[s0; &] +[s0;%- &] +[ {{10000t/25b/25@3 [s0;%- [*@(229)4 CtrlFrame]]}}&] +[s3; &] +[s1;:CtrlFrame`:`:class:%- [@(0.0.255)3 class][3 _][*3 CtrlFrame]&] +[s9; Interface definition of frame classes.&] +[s3; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] +[s3;%- &] +[s5;:CtrlFrame`:`:`~CtrlFrame`(`):%- [@(0.0.255) `~][* CtrlFrame]()&] +[s2; Empty virtual destructor.&] +[s3; &] +[s4;%- &] +[s5;:CtrlFrame`:`:FrameLayout`(Rect`&`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* FrameL +ayout]([_^Rect^ Rect][@(0.0.255) `&]_[*@3 r])_`=_[@3 0]&] +[s2; Frame reacts to this method by defining its own layout (if needed) +and reducing the size of Ctrl view rectangle.&] +[s7; [%-*C@3 r]-|Reference to current Ctrl rectangle. When Ctrl recomputes +its layout, it starts with Rect equivalent to its external size +(GetRect().Size()). Then it calls FrameLayout of all its frames +(starting with frame 0) and resulting Rect is the size of Ctrl`'s +view.&] +[s3; &] +[s4;%- &] +[s5;:CtrlFrame`:`:FrameAddSize`(Size`&`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Frame +AddSize]([_^Size^ Size][@(0.0.255) `&]_[*@3 sz])_`=_[@3 0]&] +[s2; Adds size of the frame to the current external size of Ctrl. +This is used to compute the external size of Ctrl for given size +of view.&] +[s7; [%-*C@3 sz]-|Reference to actual size of Ctrl.&] +[s3; &] +[s4;%- &] +[s5;:CtrlFrame`:`:FramePaint`(Draw`&`,const Rect`&`):%- [@(0.0.255) virtual] +[@(0.0.255) void]_[* FramePaint]([_^Draw^ Draw][@(0.0.255) `&]_[*@3 w], +[@(0.0.255) const]_[_^Rect^ Rect][@(0.0.255) `&]_[*@3 r])&] +[s2; Paint the frame. Default implementation is empty.&] +[s7; [%-*C@3 w]-|Draw.&] +[s7; [%-*C@3 r]-|Outer rectangle of the frame (this is the same rectangle +as was given in last FrameLayout).&] +[s3; &] +[s4;%- &] +[s5;:CtrlFrame`:`:FrameAdd`(Ctrl`&`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* FrameAdd]( +[_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 parent])&] +[s2; Called when frame is added to the Ctrl. Frame can use it to +add its subctrls to the parent. Default implementation is empty.&] +[s7; [%-*C@3 parent]-|Parent Ctrl.&] +[s3; &] +[s4;%- &] +[s5;:CtrlFrame`:`:FrameRemove`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* FrameRemove]( +)&] +[s2; Called when frame is removed from the Ctrl. Frame can use it +to remove subctrls from its parent. Default implementation is +empty. &] +[s3; &] +[s4;%- &] +[s5;:CtrlFrame`:`:OverPaint`(`)const:%- [@(0.0.255) virtual] [@(0.0.255) int]_[* OverPaint]( +)_[@(0.0.255) const]&] +[s2; This method can returns non`-zero number that represents paint +extension margin of Ctrl rectangle `- frame can paint over this +margin despite that fact that it does not belong to the Ctrl +rectangle. This is useful to represent some specific skinning +effect (like glare around the EditField). Default implementation +returns zero. &] +[s3; &] +[s0; &] +[s0; &] +[s0; &] +[ {{10000t/25b/25@3 [s0;%- [*@(229)4 Standard static frames]]}}&] +[s9; U`+`+ defines several standard static frames. Those frames are +mostly used to define (or alter) appearance of border of Ctrls. +All of them are obtained as a reference to single global instance +by single global function and can be assigned to unlimited number +of Ctrls.&] +[s9; Appearance of some of them can be altered by current OS look`&feel.&] +[s3; &] +[s0; &] +[ {{3967:1202:1908:2923h1;@(204) [s0; Function] +:: [s0; altered by look`&feel] +:: [s0; Appearance] +:: [s0; Comment] +::@2 [s0; CtrlFrame`&_[* NullFrame]()] +:: [s0; No.] +:: [s0; +@@image:612&237 +(A2IAJgAAANr/AAAAAHic7dBBCQAgAMDA/g2tINhBKwzBlzcuwdYcCwAAntmf5VLJpZJLJZdKLpVcKrlUcqnkUsmlkksll0oulVwquVRyqeRSyaWSS6W7SwAAEB2VfOL1) +] +:: [s0; [1 Default Frame for Ctrl.]] +:: [s0; CtrlFrame`&_[* InsetFrame]()] +:: [s0; No.] +:: [s0; +@@image:612&237 +(A2IAJgAAANr/AAAAAHic7dHBDYAgFERB++/ADjxYkC2Y0ANawgaiRJnNXDnwfjmPAgAAj9m3dR611uZKyxy7P9tZqU4wlZKplEylZColUymZSslUSqZSMpWSqZRMpWQqJVMpmUrJVErWWant4Rc1Vxp94bc3/FIAAPzbBXs9SD0=) +] +:: [s0; ] +:: [s0; CtrlFrame`&_[* OutsetFrame]()] +:: [s0; No.] +:: [s0; +@@image:612&237 +(A2IAJgAAANr/AAAAAHic7dKxDYNAEEXB678Dd0DggtwCEj1gOuDpILt5mnSTrz323wEAALxhjDF9e67Rd/tY6TYrlaxUslLJSiUrlaxUslLJSiUrlaxUslLJSiUrlaxUslLp4UrX+SKmVxqLNf1LAABQ/AG7lTfP) +] +:: [s0; ] +:: [s0; CtrlFrame`&_[* ButtonFrame]()] +:: [s0; No.] +:: [s0; +@@image:612&237 +(A2IAJgAAANr/AAAAAHic7dGxDYAwEATB778DOiCgIDJiJPcAlHCyBQSe06Sf7LdzbwAA8JprplVVd6Vjjm3rMljp5x9/MpWSqZRMpWQqJVMpmUrJVEqmUjKVkqmUTKVkKiVTKZlKyVRKNljpOZ9Ed6WabH2VAAAgdAN14TM/) +] +:: [s0; ] +:: [s0; CtrlFrame`&_[* ThinInsetFrame]()] +:: [s0; No.] +:: [s0; +@@image:612&237 +(A2IAJgAAANr/AAAAAHic7dBBDYAwAARB/xJwwANBWCCph2Jh0wR4MJcRcNlxnQMAAB5z7Nt/zDmXK80/TaUylcpUKlOpTKUylcpUKlOpTKUylcpUKlOpTKUylcpUKlOpTKWytUpfv357a5UAACC6AbZWe+U=) +] +:: [s0; ] +:: [s0; CtrlFrame`&_[* ThinOutsetFrame]()] +:: [s0; No.] +:: [s0; +@@image:612&237 +(A2IAJgAAANr/AAAAAHic7dAxDYBAAARB/xJwQIEgLJC8B8ABm0+ofi7TXrPjOgcAAPzmXmnHvqn0OZXKVCpTqUylMpXKVCpTqUylMpXKVCpTqUylMpXKVCpTqUylMpXKpiu9x6XMVQIAgOgB/DB5xQ==) +] +:: [s0; ] +:: [s0; CtrlFrame`&_[* BlackFrame]()] +:: [s0; No.] +:: [s0; +@@image:612&237 +(A2IAJgAAANr/AAAAAHic7dBRDYAwFMBA/CvEAsk8gIVmC1/vmlPQ9dwLAAB+cw1r+9I7JpdKLpVcKrlUcqnkUsmlkksll0oulVwquVRyqeRSyaWSSyWXSieXRrV3CQAAog9J6pkj) +] +:: [s0; ] +:: [s0; CtrlFrame`&_[* FieldFrame]()] +:: [s0; Yes.] +:: [s0; +@@image:612&237 +(A2IAJgAAANr/AAAAAHic7dBBDYAwAMBAx/jADHqwQDIPzEIzwmvXnIKO5x4AAPCb47y2snzp3SaXSi6VXCq5VHKp5FLJpZJLJZdKLpVcKrlUcqnkUsmlkksll0pfLm1l7RIAAEQTozHbhg==) +] +:: [s0; [1 Good for borders of all Ctrls that display somthing, like EditField +or ArrayCtrl.]] +:: [s0; CtrlFrame`&_[* TopSeparatorFrame]()] +:: [s0; Yes.] +:: [s0; +@@image:612&237 +(A2IAJgAAANr/AAAAAHic7dBRCQAhEEDB/hGugR9XwwjCXQTBDlpBBGFh5zEJ3ujfAACAa97ypHJ2aSbr7NLfaiouueSSS9G45JJLLkXjkksuuRSNSy655FI0Lt27BAAAmxZrvoWI) +] +:: [s0; ] +:: [s0; CtrlFrame`&_[* BottomSeparatorFrame]()] +:: [s0; Yes.] +:: [s0; +@@image:612&237 +(A2IAJgAAANr/AAAAAHic7dBRCQAhEEDB/hGugR9XwwjCXQTBDlpBBGFh5zEJ3ujfAACAa/5WU3HJJZdcisYll1xyKRqXXHLJpWhccskll6Jx6d6ltzypnF2ayTq7BAAAmxaTOIWI) +] +:: [s0; ] +:: [s0; CtrlFrame`&_[* LeftSeparatorFrame]()] +:: [s0; Yes.] +:: [s0; +@@image:612&237 +(A2IAJgAAANr/AAAAAHic7dBBCcAwFAUw/xLqYIfamITCKmFQD78Wdhk8aCAKst5nAQDAb/rVqmqO+xCWLFmylMaSJUuW0liyZMlSGkuWLFlKY8mSpfwlAAD4aAPkY4SY) +] +:: [s0; ] +:: [s0; CtrlFrame`&_[* RightSeparatorFrame]()] +:: [s0; Yes.] +:: [s0; +@@image:612&237 +(A2IAJgAAANr/AAAAAHic7dBRCYAwGAbA/hFssAdrLMJAIwzW4V8FX4RPPLgEt+a1AADgNffoP3G2o6osWbJkKYclS5YspbFkyZKlNJYsWbKUxpIlS19ZAgCAhzabQ4SY) +] +:: [s0; ]}}&] +[s3; &] +[s0; &] +[s0; &] +[s0;%- &] +[ {{10000t/25b/25@3 [s0;%- [*@(229)4 Simple Ctrl frame templates]]}}&] +[s3;%- &] +[s1;:noref:%- [@(0.0.255)3 template][3 _<][@(0.0.255)3 class][3 _][*@3;3 T][3 >]&] +[s1;:FrameCtrl`:`:class:%- [@(0.0.255) class]_[* FrameCtrl]_:_[@(0.0.255) public]_[*@3 T], +[@(0.0.255) public]_[*@3 CtrlFrame]&] +[s2; This is the base class of simple Ctrl frames `- frames that +place single Ctrl at some edge of parent Ctrl.&] +[s2; &] +[s2; This class basically overloads FrameAdd and FrameRemove virtual +methods of [^topic`:`/`/CtrlCore`/src`/Frame`$en`-us`#`:`:CtrlFrame`:`:class CtrlFrame^ C +trlFrame] so that they add/remove `'this`' from parent`'s children`-list.&] +[s2; &] +[s7; [%-*C@4 T]-|Ctrl type.&] +[s0; &] +[s0;%- [%%/ Derived from][%% ]T, [^topic`:`/`/CtrlCore`/src`/Frame`$en`-us`#`:`:CtrlFrame`:`:class CtrlFrame^@(0.0.255) C +trlFrame]&] +[s0;^topic`:`/`/CtrlCore`/src`/Frame`$en`-us`#`:`:CtrlFrame`:`:class CtrlFrame^@(0.0.255)%- &] +[s0;^topic`:`/`/CtrlCore`/src`/Frame`$en`-us`#`:`:CtrlFrame`:`:class CtrlFrame^@(0.0.255)%- &] +[s5;:FrameCtrl`:`:GetParent`(`):%- [_^Ctrl^ Ctrl]_`*[* GetParent]()&] +[s2; Returns a parent to which the Ctrl is attached.&] +[s3;%- &] +[s4; &] +[s1;:noref:%- [@(0.0.255)3 template][3 _<][@(0.0.255)3 class][3 _][*@4;3 T][3 >]&] +[s1;:FrameLR`:`:class:%- [@(0.0.255) class]_[* FrameLR]_:_[@(0.0.255) public]_[*@3 FrameCtrl]< +[*@4 T]>_&] +[s2; This class extends CtrlFrame class with width attribute and +serves as base class to classes placing Ctrl at the left or right +size of parent Ctrl frame. Width is initialized to 0. 0 as width +indicates that width is equal to the height.&] +[s2; &] +[s7; [%-*C@4 T]-|Ctrl type.&] +[s0; &] +[s0;%- [%%/ Derived from][%% ][^topic`:`/`/CtrlCore`/src`/Frame`$en`-us`#`:`:FrameCtrl`:`:template ` class FrameCtrl^ F +rameCtrl] &] +[s0; &] +[s0; &] +[s0; &] +[s5;:FrameLR`:`:Width`(int`):%- [_^FrameLR^ FrameLR][@(0.0.255) `&]_[* Width]([@(0.0.255) int +]_[*@3 `_cx])&] +[s2; Sets the new width.&] +[s7; [%-*C@3 `_cx]-|Width.&] +[s7; [*/ Return value]-|`*this.&] +[s0;3 &] +[s5;:FrameLR`:`:GetWidth`(`)const:%- [@(0.0.255) int]_[* GetWidth]()_[@(0.0.255) const]&] +[s7; [*/ Return value]-|Current width.&] +[s3; &] +[s4; &] +[s1;:noref:%- [@(0.0.255)3 template][3 _<][@(0.0.255)3 class][3 _][*@4;3 T][3 >]&] +[s1;:FrameLeft`:`:class:%- [@(0.0.255) class]_[* FrameLeft]_:_[@(0.0.255) public]_[*@3 FrameLR +]<[*@4 T]>_&] +[s2; This class places Ctrl to the parent`'s left side as frame.&] +[s7; [%-*C@4 T]-|Ctrl type.&] +[s0; &] +[s0;%- [%%/ Derived from][%% ][^topic`:`/`/CtrlCore`/src`/Frame`$en`-us`#`:`:FrameLR`:`:template ` class FrameLR^ F +rameLR] &] +[s3; &] +[s4; &] +[s1;:noref:%- [@(0.0.255)3 template][3 _<][@(0.0.255)3 class][3 _][*@4;3 T][3 >]&] +[s1;:FrameRight`:`:class:%- [@(0.0.255) class]_[* FrameRight]_:_[@(0.0.255) public]_[*@3 Frame +LR]<[*@4 T]>_&] +[s2; This class places Ctrl to the parent`'s right side as frame.&] +[s7; [%-*C@4 T]-|Ctrl type.&] +[s0; &] +[s0;%- [%%/ Derived from][%% ][^topic`:`/`/CtrlCore`/src`/Frame`$en`-us`#`:`:FrameLR`:`:template ` class FrameLR^ F +rameLR] &] +[s3; &] +[s1;:noref:%- [@(0.0.255)3 template][3 _<][@(0.0.255)3 class][3 _][*@4;3 T][3 >]&] +[s1;:FrameTB`:`:class:%- [@(0.0.255) class]_[* FrameTB]_:_[@(0.0.255) public]_[*@3 FrameCtrl]< +[*@4 T]>_&] +[s2; This class extends CtrlFrame class with height attribute and +serves as base class to classes placing Ctrl as the top or bottom +side of parent Ctrl frame. Height is initialized to 0. 0 as height +indicates that height is equal to the width.&] +[s7; [%-*C@4 T]-|Ctrl type.&] +[s0; &] +[s0;%- [%%/ Derived from][%% ][^topic`:`/`/CtrlCore`/src`/Frame`$en`-us`#`:`:FrameCtrl`:`:template ` class FrameCtrl^ F +rameCtrl] &] +[s3; &] +[s0; &] +[s0; &] +[s5;:FrameTB`:`:Height`(int`):%- [_^FrameTB^ FrameTB][@(0.0.255) `&]_[* Height]([@(0.0.255) i +nt]_[*@3 `_cy])&] +[s2; Sets the new height.&] +[s7; [%-*C@3 `_cy]-|Height.&] +[s7; [*/ Return value]-|`*this.&] +[s0; &] +[s5;:FrameTB`:`:GetHeight`(`)const:%- [@(0.0.255) int]_[* GetHeight]()_[@(0.0.255) const]&] +[s7; [*/ Return value]-|Current height.&] +[s3; &] +[s4; &] +[s1;:noref:%- [@(0.0.255)3 template][3 _<][@(0.0.255)3 class][3 _][*@4;3 T][3 >]&] +[s1;:FrameTop`:`:class:%- [@(0.0.255) class]_[* FrameTop]_:_[@(0.0.255) public]_[*@3 FrameTB]< +[*@4 T]>_&] +[s2; This class places Ctrl to the parent`'s top side as frame.&] +[s7; [%-*C@4 T]-|Ctrl type.&] +[s0; &] +[s0;%- [%%/ Derived from][%% ][^topic`:`/`/CtrlCore`/src`/Frame`$en`-us`#`:`:FrameTB`:`:template ` class FrameTB^ F +rameTB] &] +[s3; &] +[s4; &] +[s1;:noref:%- [@(0.0.255)3 template][3 _<][@(0.0.255)3 class][3 _][*@4;3 T][3 >]&] +[s1;:FrameBottom`:`:class:%- [@(0.0.255) class]_[* FrameBottom]_:_[@(0.0.255) public]_[*@3 Fra +meTB]<[*@4 T]>_&] +[s2; This class places Ctrl to the parent`'s bottom side as frame.&] +[s7; [%-*C@4 T]-|Ctrl type.&] +[s0; &] +[s0;%- [%%/ Derived from][%% ][^topic`:`/`/CtrlCore`/src`/Frame`$en`-us`#`:`:FrameTB`:`:template ` class FrameTB^ F +rameTB] &] +[s3; &] +[s0; &] +[s0; &] +[s0;%- &] +[ {{10000t/25b/25@3 [s0;%- [*@(229)4 Frame utility functions]]}}&] +[s9; Following functions are intended as helpers to for implementation +of FrameLayout method of CtrlFrame, placing some Ctrl to the +side of parent Ctrl. They adjust given Rect (parameter of FrameLayout) +and also alter position of given Ctrl.&] +[s3; &] +[s0; &] +[s5;:LayoutFrameLeft`(Rect`&`,Ctrl`*`,int`):%- [@(0.0.255) void]_[* LayoutFrameLeft]([_^Rect^ R +ect][@(0.0.255) `&]_[*@3 r], [_^Ctrl^ Ctrl]_`*[*@3 ctrl], [@(0.0.255) int]_[*@3 cx])&] +[s2; Places ctrl at the left side of parent Ctrl.&] +[s7; [%-*C@3 r]-|Current parent Ctrl rect.&] +[s7; [%-*C@3 ctrl]-|Ctrl to be placed.&] +[s7; [%-*C@3 cx]-|Required width.&] +[s3; &] +[s4;%- &] +[s5;:LayoutFrameRight`(Rect`&`,Ctrl`*`,int`):%- [@(0.0.255) void]_[* LayoutFrameRight]([_^Rect^ R +ect][@(0.0.255) `&]_[*@3 r], [_^Ctrl^ Ctrl]_`*[*@3 ctrl], [@(0.0.255) int]_[*@3 cx])&] +[s2; Places ctrl at the right side of parent Ctrl.&] +[s7; [%-*C@3 r]-|Current parent Ctrl rect.&] +[s7; [%-*C@3 ctrl]-|Ctrl to be placed.&] +[s7; [%-*C@3 cx]-|Required width.&] +[s3; &] +[s4;%- &] +[s5;:LayoutFrameTop`(Rect`&`,Ctrl`*`,int`):%- [@(0.0.255) void]_[* LayoutFrameTop]([_^Rect^ R +ect][@(0.0.255) `&]_[*@3 r], [_^Ctrl^ Ctrl]_`*[*@3 ctrl], [@(0.0.255) int]_[*@3 cy])&] +[s2; Places ctrl at the top side of parent Ctrl.&] +[s7; [%-*C@3 r]-|Current parent Ctrl rect.&] +[s7; [%-*C@3 ctrl]-|Ctrl to be placed.&] +[s7; [%-*C@3 cy]-|Required height.&] +[s3; &] +[s4;%- &] +[s5;:LayoutFrameBottom`(Rect`&`,Ctrl`*`,int`):%- [@(0.0.255) void]_[* LayoutFrameBottom]( +[_^Rect^ Rect][@(0.0.255) `&]_[*@3 r], [_^Ctrl^ Ctrl]_`*[*@3 ctrl], [@(0.0.255) int]_[*@3 cy])&] +[s2; Places ctrl at the bottom side of parent Ctrl.&] +[s7; [%-*C@3 r]-|Current parent Ctrl rect.&] +[s7; [%-*C@3 ctrl]-|Ctrl to be placed.&] +[s7; [%-*C@3 cy]-|Required height.&] +[s3; &] [s0; ]] \ No newline at end of file diff --git a/uppsrc/CtrlCore/src.tpp/Layout$en-us.tpp b/uppsrc/CtrlCore/src.tpp/Layout_en-us.tpp similarity index 97% rename from uppsrc/CtrlCore/src.tpp/Layout$en-us.tpp rename to uppsrc/CtrlCore/src.tpp/Layout_en-us.tpp index 6c3fa3557..8b0ff7260 100644 --- a/uppsrc/CtrlCore/src.tpp/Layout$en-us.tpp +++ b/uppsrc/CtrlCore/src.tpp/Layout_en-us.tpp @@ -1,88 +1,88 @@ -topic "Layout functions"; -[2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,2#27521748481378242620020725143825:desc] -[0 $$3,0#96390100711032703541132217272105:end] -[H6;0 $$4,0#05600065144404261032431302351956:begin] -[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] -[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] -[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] -[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] -[b42;2 $$9,9#13035079074754324216151401829390:normal] -[{_}%EN-US -[ {{10000@(113.42.0) [s0;%- [*@7;4 Layout functions]]}}&] -[s3; &] -[s0; &] -[s5;:InitLayout`(Ctrl`&`,L`&`):%- [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 L]>_[@(0.0.255) v -oid]_[* InitLayout]([_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 ctrl], [*@4 L][@(0.0.255) `&]_[*@3 layou -t])&] -[s2; Assigns layout parameters to member Ctrl variables of [@3 layout], -and adds them to the specified [*@3 ctrl].&] -[s7; [*C@4 L]-|Class (or structure) with Ctrl variables. Ctrl variables -must have public access.&] -[s7; [%-*C@3 ctrl]-|Parent Ctrl.&] -[s7; [%-*C@3 layout]-|[*C@4 L] instance.&] -[s3; &] -[s4;%- &] -[s5;:CtrlLayout`(T`&`):%- [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 T]>_[@(0.0.255) void -]_[* CtrlLayout]([*@4 T][@(0.0.255) `&]_[*@3 ctrl])&] -[s2; Assigns layout parameters to member variables. Required layout -must be one of base classes of T.&] -[s7; [*C@4 T]-|Parent Ctrl type.&] -[s7; [%-*C@3 ctrl]-|Parent Ctrl.&] -[s3; &] -[s4;%- &] -[s5;:CtrlLayout`(T`&`,const char`*`):%- [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 T]>_ -[@(0.0.255) void]_[* CtrlLayout]([*@4 T][@(0.0.255) `&]_[*@3 ctrl], [@(0.0.255) const]_[@(0.0.255) c -har]_`*[*@3 title])&] -[s2; Calls CtrlLayout and then calls Title method of [*@3 ctrl ](assigning -a caption text to the TopWindow).&] -[s7; [*C@4 T]-|Parent Ctrl type.&] -[s7; [%-*C@3 ctrl]-|Parent Ctrl.&] -[s7; [%-*C@3 title]-|Window title.&] -[s3; &] -[s4;%- &] -[s5;:CtrlLayoutOK`(T`&`,const char`*`):%- [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 T]> -_[@(0.0.255) void]_[* CtrlLayoutOK]([*@4 T][@(0.0.255) `&]_[*@3 ctrl], -[@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 title])&] -[s2; Calls CtrlLayout and then assigns Acceptor(IDOK) to the [/ ok] -member Ctrl variable and makes it the default button (activated -by Enter).&] -[s7; [*C@4 T]-|Parent Ctrl type.&] -[s7; [%-*C@3 ctrl]-|Parent Ctrl.&] -[s7; [%-*C@3 title]-|Window title.&] -[s3; &] -[s4;%- &] -[s5;:CtrlLayoutCancel`(T`&`,const char`*`):%- [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 T -]>_[@(0.0.255) void]_[* CtrlLayoutCancel]([*@4 T][@(0.0.255) `&]_[*@3 ctrl], -[@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 title])&] -[s2; Calls CtrlLayout and then assigns Rejector(IDCANCEL) to the -[/ cancel] member Ctrl variable and makes it the default cancel -button (activated by Esc).&] -[s7; [*C@4 T]-|Parent Ctrl type.&] -[s7; [%-*C@3 ctrl]-|Parent Ctrl.&] -[s7; [%-*C@3 title]-|Window title.&] -[s3; &] -[s4;%- &] -[s5;:CtrlLayoutOKCancel`(T`&`,const char`*`):%- [@(0.0.255) template]_<[@(0.0.255) class]_ -[*@4 T]>_[@(0.0.255) void]_[* CtrlLayoutOKCancel]([*@4 T][@(0.0.255) `&]_[*@3 ctrl], -[@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 title])&] -[s2; Calls CtrlLayoutOK and then assigns Rejector(IDCANCEL) to the -[/ cancel] member Ctrl variable and makes it the default cancel -button (activated by Esc).&] -[s7; [*C@4 T]-|Parent Ctrl type.&] -[s7; [%-*C@3 ctrl]-|Parent Ctrl.&] -[s7; [%-*C@3 title]-|Window title.&] -[s3; &] -[s4;%- &] -[s5;:CtrlLayoutExit`(T`&`,const char`*`):%- [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 T -]>_[@(0.0.255) void]_[* CtrlLayoutExit]([*@4 T][@(0.0.255) `&]_[*@3 ctrl], -[@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 title])&] -[s2; Calls CtrlLayoutOK and then assigns Acceptor(IDEXIT) to the -[/ exit] member Ctrl variable and makes it the default button (activated -by Enter).&] -[s7; [*C@4 T]-|Parent Ctrl type.&] -[s7; [%-*C@3 ctrl]-|Parent Ctrl.&] -[s7; [%-*C@3 title]-|Window title.&] -[s3; &] +topic "Layout functions"; +[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,2#27521748481378242620020725143825:desc] +[0 $$3,0#96390100711032703541132217272105:end] +[H6;0 $$4,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] +[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] +[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] +[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] +[b42;2 $$9,9#13035079074754324216151401829390:normal] +[{_}%EN-US +[ {{10000@(113.42.0) [s0;%- [*@7;4 Layout functions]]}}&] +[s3; &] +[s0; &] +[s5;:InitLayout`(Ctrl`&`,L`&`):%- [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 L]>_[@(0.0.255) v +oid]_[* InitLayout]([_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 ctrl], [*@4 L][@(0.0.255) `&]_[*@3 layou +t])&] +[s2; Assigns layout parameters to member Ctrl variables of [@3 layout], +and adds them to the specified [*@3 ctrl].&] +[s7; [*C@4 L]-|Class (or structure) with Ctrl variables. Ctrl variables +must have public access.&] +[s7; [%-*C@3 ctrl]-|Parent Ctrl.&] +[s7; [%-*C@3 layout]-|[*C@4 L] instance.&] +[s3; &] +[s4;%- &] +[s5;:CtrlLayout`(T`&`):%- [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 T]>_[@(0.0.255) void +]_[* CtrlLayout]([*@4 T][@(0.0.255) `&]_[*@3 ctrl])&] +[s2; Assigns layout parameters to member variables. Required layout +must be one of base classes of T.&] +[s7; [*C@4 T]-|Parent Ctrl type.&] +[s7; [%-*C@3 ctrl]-|Parent Ctrl.&] +[s3; &] +[s4;%- &] +[s5;:CtrlLayout`(T`&`,const char`*`):%- [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 T]>_ +[@(0.0.255) void]_[* CtrlLayout]([*@4 T][@(0.0.255) `&]_[*@3 ctrl], [@(0.0.255) const]_[@(0.0.255) c +har]_`*[*@3 title])&] +[s2; Calls CtrlLayout and then calls Title method of [*@3 ctrl ](assigning +a caption text to the TopWindow).&] +[s7; [*C@4 T]-|Parent Ctrl type.&] +[s7; [%-*C@3 ctrl]-|Parent Ctrl.&] +[s7; [%-*C@3 title]-|Window title.&] +[s3; &] +[s4;%- &] +[s5;:CtrlLayoutOK`(T`&`,const char`*`):%- [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 T]> +_[@(0.0.255) void]_[* CtrlLayoutOK]([*@4 T][@(0.0.255) `&]_[*@3 ctrl], +[@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 title])&] +[s2; Calls CtrlLayout and then assigns Acceptor(IDOK) to the [/ ok] +member Ctrl variable and makes it the default button (activated +by Enter).&] +[s7; [*C@4 T]-|Parent Ctrl type.&] +[s7; [%-*C@3 ctrl]-|Parent Ctrl.&] +[s7; [%-*C@3 title]-|Window title.&] +[s3; &] +[s4;%- &] +[s5;:CtrlLayoutCancel`(T`&`,const char`*`):%- [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 T +]>_[@(0.0.255) void]_[* CtrlLayoutCancel]([*@4 T][@(0.0.255) `&]_[*@3 ctrl], +[@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 title])&] +[s2; Calls CtrlLayout and then assigns Rejector(IDCANCEL) to the +[/ cancel] member Ctrl variable and makes it the default cancel +button (activated by Esc).&] +[s7; [*C@4 T]-|Parent Ctrl type.&] +[s7; [%-*C@3 ctrl]-|Parent Ctrl.&] +[s7; [%-*C@3 title]-|Window title.&] +[s3; &] +[s4;%- &] +[s5;:CtrlLayoutOKCancel`(T`&`,const char`*`):%- [@(0.0.255) template]_<[@(0.0.255) class]_ +[*@4 T]>_[@(0.0.255) void]_[* CtrlLayoutOKCancel]([*@4 T][@(0.0.255) `&]_[*@3 ctrl], +[@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 title])&] +[s2; Calls CtrlLayoutOK and then assigns Rejector(IDCANCEL) to the +[/ cancel] member Ctrl variable and makes it the default cancel +button (activated by Esc).&] +[s7; [*C@4 T]-|Parent Ctrl type.&] +[s7; [%-*C@3 ctrl]-|Parent Ctrl.&] +[s7; [%-*C@3 title]-|Window title.&] +[s3; &] +[s4;%- &] +[s5;:CtrlLayoutExit`(T`&`,const char`*`):%- [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 T +]>_[@(0.0.255) void]_[* CtrlLayoutExit]([*@4 T][@(0.0.255) `&]_[*@3 ctrl], +[@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 title])&] +[s2; Calls CtrlLayoutOK and then assigns Acceptor(IDEXIT) to the +[/ exit] member Ctrl variable and makes it the default button (activated +by Enter).&] +[s7; [*C@4 T]-|Parent Ctrl type.&] +[s7; [%-*C@3 ctrl]-|Parent Ctrl.&] +[s7; [%-*C@3 title]-|Window title.&] +[s3; &] [s0; ]] \ No newline at end of file diff --git a/uppsrc/CtrlCore/src.tpp/PasteClipUtil$en-us.tpp b/uppsrc/CtrlCore/src.tpp/PasteClipUtil_en-us.tpp similarity index 100% rename from uppsrc/CtrlCore/src.tpp/PasteClipUtil$en-us.tpp rename to uppsrc/CtrlCore/src.tpp/PasteClipUtil_en-us.tpp diff --git a/uppsrc/CtrlCore/src.tpp/PasteClip$en-us.tpp b/uppsrc/CtrlCore/src.tpp/PasteClip_en-us.tpp similarity index 100% rename from uppsrc/CtrlCore/src.tpp/PasteClip$en-us.tpp rename to uppsrc/CtrlCore/src.tpp/PasteClip_en-us.tpp diff --git a/uppsrc/CtrlCore/src.tpp/RectTracker$en-us.tpp b/uppsrc/CtrlCore/src.tpp/RectTracker_en-us.tpp similarity index 97% rename from uppsrc/CtrlCore/src.tpp/RectTracker$en-us.tpp rename to uppsrc/CtrlCore/src.tpp/RectTracker_en-us.tpp index 5cf4c3ea3..2e29d7d53 100644 --- a/uppsrc/CtrlCore/src.tpp/RectTracker$en-us.tpp +++ b/uppsrc/CtrlCore/src.tpp/RectTracker_en-us.tpp @@ -1,177 +1,177 @@ -topic "RectTracker"; -[2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,2#27521748481378242620020725143825:desc] -[0 $$3,0#96390100711032703541132217272105:end] -[H6;0 $$4,0#05600065144404261032431302351956:begin] -[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] -[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] -[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] -[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] -[b42;2 $$9,9#13035079074754324216151401829390:normal] -[{_} -[ {{10000t/25b/25@3 [s0; [*@(229)4 RectTracker]]}}&] -[s3; &] -[s1;:RectTracker`:`:class: [@(0.0.255)3 class][3 _][*3 RectTracker][3 _:_][@(0.0.255)3 public][3 _ -][*@3;3 LocalLoop]&] -[s9;%% RectTracker is a class that represent repositioning modal -loop. It can reposition and/or resize rectangle or line as single -modal operation.&] -[s3;%% &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0;%% [* Public Member List]]}}&] -[s3; &] -[s5;:RectTracker`:`:sync: [_^Callback1^ Callback1]<[_^Rect^ Rect]>_[* sync]&] -[s2;%% This callback is called each time the dimensions change.&] -[s3;%% &] -[s4; &] -[s5;:RectTracker`:`:round: [_^Callback1^ Callback1]_[* round]&] -[s2;%% If present, this callback is used to alter coordinates of -rectangle after they are determined from mouse position, before -other processing. Can be used e.g. to implement `"snap to grid`" -operations. This is more recent alternative to defining rounding -object and method Round.&] -[s3; &] -[s4; &] -[s5;:RectTracker`:`:SetCursorImage`(const Image`&`): [_^RectTracker^ RectTracker][@(0.0.255) `& -]_[* SetCursorImage]([@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 m])&] -[s2;%% Sets the mouse cursor appearance during the loop.&] -[s3;%% &] -[s4; &] -[s5;:RectTracker`:`:MinSize`(Size`): [_^RectTracker^ RectTracker][@(0.0.255) `&]_[* MinSize -]([_^Size^ Size]_[*@3 sz])&] -[s2;%% Sets the minimal size of rectangle.&] -[s3;%% &] -[s4; &] -[s5;:RectTracker`:`:MaxSize`(Size`): [_^RectTracker^ RectTracker][@(0.0.255) `&]_[* MaxSize -]([_^Size^ Size]_[*@3 sz])&] -[s2;%% Sets the maximal size of rectangle.&] -[s3;%% &] -[s4; &] -[s5;:RectTracker`:`:MaxRect`(const Rect`&`): [_^RectTracker^ RectTracker][@(0.0.255) `&]_ -[* MaxRect]([@(0.0.255) const]_[_^Rect^ Rect][@(0.0.255) `&]_[*@3 mr])&] -[s2;%% Sets the bounding rectangle which the resulting rectangle -cannot exceed.&] -[s3;%% &] -[s4; &] -[s5;:RectTracker`:`:Clip`(const Rect`&`): [_^RectTracker^ RectTracker][@(0.0.255) `&]_[* Cl -ip]([@(0.0.255) const]_[_^Rect^ Rect][@(0.0.255) `&]_[*@3 c])&] -[s2;%% Sets the clipping rectangle.&] -[s3;%% &] -[s4; &] -[s5;:RectTracker`:`:Width`(int`): [_^RectTracker^ RectTracker][@(0.0.255) `&]_[* Width]([@(0.0.255) i -nt]_[*@3 n])&] -[s2;%% Sets the width of tracking rectangle shape lines.&] -[s3;%% &] -[s4; &] -[s5;:RectTracker`:`:SetColor`(Color`): [_^RectTracker^ RectTracker][@(0.0.255) `&]_[* SetCo -lor]([_^Color^ Color]_[*@3 c])&] -[s2;%% Sets the color of tracking rectangle (if on white background).&] -[s3;%% &] -[s4; &] -[s5;:RectTracker`:`:Pattern`(int`): [_^RectTracker^ RectTracker][@(0.0.255) `&]_[* Pattern]( -[@(0.0.255) int]_[*@3 p])&] -[s2;%% Sets the pattern used to drive lines. [%-*@3 p] can be one of&] -[s2;%% &] -[ {{5000:5000<288; [s2;l0;%% DRAWDRAGRECT`_SOLID] -:: [s2;l0;%% solid line] -:: [s2;l0;%% DRAWDRAGRECT`_NORMAL] -:: [s2;l0;%% line of alternating single dots `- default] -:: [s2;l0;%% DRAWDRAGRECT`_DASHED ] -:: [s2;l0;%% line of alternating 4 pixel segments]}}&] -[s3;%% &] -[s4; &] -[s5;:RectTracker`:`:Dashed`(`): [_^RectTracker^ RectTracker][@(0.0.255) `&]_[* Dashed]()&] -[s2;%% Same as Pattern(DRAWDRAGRECT`_DASH).&] -[s3;%% &] -[s4; &] -[s5;:RectTracker`:`:Solid`(`): [_^RectTracker^ RectTracker][@(0.0.255) `&]_[* Solid]()&] -[s2;%% Same as Pattern(DRAWDRAGRECT`_SOLID).&] -[s3;%% &] -[s4; &] -[s5;:RectTracker`:`:Normal`(`): [_^RectTracker^ RectTracker][@(0.0.255) `&]_[* Normal]()&] -[s2;%% Same as Pattern(DRAWDRAGRECT`_NORMAL).&] -[s3; &] -[s4; &] -[s5;:RectTracker`:`:Animation`(int`): [_^RectTracker^ RectTracker][@(0.0.255) `&]_[* Animat -ion]([@(0.0.255) int]_[*@3 step`_ms]_`=_[@3 40])&] -[s2;%% Activates pattern animation.&] -[s3;%% &] -[s4; &] -[s5;:RectTracker`:`:KeepRatio`(bool`): [_^RectTracker^ RectTracker][@(0.0.255) `&]_[* KeepR -atio]([@(0.0.255) bool]_[*@3 b])&] -[s2;%% Forces rectangle to keep the original ratio.&] -[s3;%% &] -[s4; &] -[s5;:RectTracker`:`:Round`(RectTracker`:`:Rounder`&`): [_^RectTracker^ RectTracker][@(0.0.255) `& -]_[* Round]([_^RectTracker`:`:Rounder^ Rounder][@(0.0.255) `&]_[*@3 r])&] -[s2;%% Sets the rounding object. This is somewhat obsoleted by round -callback.&] -[s3;%% &] -[s4; &] -[s5;:RectTracker`:`:Get`(`): [_^Rect^ Rect]_[* Get]()&] -[s2;%% Returns the current tracking rectangle.&] -[s3;%% &] -[s4; &] -[s5;:RectTracker`:`:Track`(const Rect`&`,int`,int`): [_^Rect^ Rect]_[* Track]([@(0.0.255) c -onst]_[_^Rect^ Rect][@(0.0.255) `&]_[*@3 r], [@(0.0.255) int]_[*@3 tx]_`=_ALIGN`_RIGHT, -[@(0.0.255) int]_[*@3 ty]_`=_ALIGN`_BOTTOM)&] -[s2;%% Performs the modal rectangle tracking loop. [%-*@3 tx] and [%-*@3 ty] -specify which edge or corner of rectangle is being changed:&] -[s2;%% &] -[ {{2807:2850:4343<288;>1088;h1;@(204) [s0; [*@3 tx]] -:: [s0; [*@3 ty]] -:: [s0;%% Changed] -::@2 [s0;%% ALIGN`_LEFT] -:: [s0;%% ALIGN`_TOP] -:: [s0;%% Top`-left corner.] -:: [s0;%% ALIGN`_LEFT] -:: [s0;%% ALIGN`_CENTER] -:: [s0;%% Left edge.] -:: [s0;%% ALIGN`_LEFT] -:: [s0;%% ALIGN`_BOTTOM] -:: [s0;%% Bottom`-left corner.] -:: [s0;%% ALIGN`_CENTER] -:: [s0;%% ALIGN`_TOP] -:: [s0;%% Top edge.] -::@(255.255.192) [s0;%% ALIGN`_CENTER] -:: [s0;%% ALIGN`_CENTER] -:: [s0;%% Rectangle is moved.] -::@2 [s0;%% ALIGN`_CENTER] -:: [s0;%% ALIGN`_BOTTOM] -:: [s0;%% Bottom edge.] -:: [s0;%% ALIGN`_RIGHT] -:: [s0;%% ALIGN`_TOP] -:: [s0;%% Top`-right corner.] -:: [s0;%% ALIGN`_RIGHT] -:: [s0;%% ALIGN`_CENTER] -:: [s0;%% Right edge.] -:: [s0;%% ALIGN`_RIGHT] -:: [s0;%% ALIGN`_BOTTOM] -:: [s0;%% Bottom`-right corner.]}}&] -[s2;%% &] -[s2;%% Returns a new rectangle.&] -[s3;%% &] -[s4; &] -[s5;:RectTracker`:`:TrackHorzLine`(int`,int`,int`,int`): [@(0.0.255) int]_[* TrackHorzLin -e]([@(0.0.255) int]_[*@3 x0], [@(0.0.255) int]_[*@3 y0], [@(0.0.255) int]_[*@3 cx], -[@(0.0.255) int]_[*@3 line])&] -[s2;%% Performs tracking look of horizontal line. [%-*@3 x0], [%-*@3 y0] -is base point, [%-*@3 cx] the width of line, [%-*@3 line] the current -position. Returns the new position.&] -[s3;%% &] -[s4; &] -[s5;:RectTracker`:`:TrackVertLine`(int`,int`,int`,int`): [@(0.0.255) int]_[* TrackVertLin -e]([@(0.0.255) int]_[*@3 x0], [@(0.0.255) int]_[*@3 y0], [@(0.0.255) int]_[*@3 cy], -[@(0.0.255) int]_[*@3 line])&] -[s2;%% Performs tracking look of vertical line. [%-*@3 x0], [%-*@3 y0] -is base point, [%-*@3 cy] the height of line, [%-*@3 line] the current -position. Returns the new position.&] -[s3;%% &] -[s4; &] -[s5;:RectTracker`:`:RectTracker`(Ctrl`&`): [* RectTracker]([_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 m -aster])&] -[s2;%% Constructs RectTracker, the view area of [%-*@3 master] is used -for drawing and coordinate system.&] -[s3;%% &] +topic "RectTracker"; +[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,2#27521748481378242620020725143825:desc] +[0 $$3,0#96390100711032703541132217272105:end] +[H6;0 $$4,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] +[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] +[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] +[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] +[b42;2 $$9,9#13035079074754324216151401829390:normal] +[{_} +[ {{10000t/25b/25@3 [s0; [*@(229)4 RectTracker]]}}&] +[s3; &] +[s1;:RectTracker`:`:class: [@(0.0.255)3 class][3 _][*3 RectTracker][3 _:_][@(0.0.255)3 public][3 _ +][*@3;3 LocalLoop]&] +[s9;%% RectTracker is a class that represent repositioning modal +loop. It can reposition and/or resize rectangle or line as single +modal operation.&] +[s3;%% &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0;%% [* Public Member List]]}}&] +[s3; &] +[s5;:RectTracker`:`:sync: [_^Callback1^ Callback1]<[_^Rect^ Rect]>_[* sync]&] +[s2;%% This callback is called each time the dimensions change.&] +[s3;%% &] +[s4; &] +[s5;:RectTracker`:`:round: [_^Callback1^ Callback1]_[* round]&] +[s2;%% If present, this callback is used to alter coordinates of +rectangle after they are determined from mouse position, before +other processing. Can be used e.g. to implement `"snap to grid`" +operations. This is more recent alternative to defining rounding +object and method Round.&] +[s3; &] +[s4; &] +[s5;:RectTracker`:`:SetCursorImage`(const Image`&`): [_^RectTracker^ RectTracker][@(0.0.255) `& +]_[* SetCursorImage]([@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 m])&] +[s2;%% Sets the mouse cursor appearance during the loop.&] +[s3;%% &] +[s4; &] +[s5;:RectTracker`:`:MinSize`(Size`): [_^RectTracker^ RectTracker][@(0.0.255) `&]_[* MinSize +]([_^Size^ Size]_[*@3 sz])&] +[s2;%% Sets the minimal size of rectangle.&] +[s3;%% &] +[s4; &] +[s5;:RectTracker`:`:MaxSize`(Size`): [_^RectTracker^ RectTracker][@(0.0.255) `&]_[* MaxSize +]([_^Size^ Size]_[*@3 sz])&] +[s2;%% Sets the maximal size of rectangle.&] +[s3;%% &] +[s4; &] +[s5;:RectTracker`:`:MaxRect`(const Rect`&`): [_^RectTracker^ RectTracker][@(0.0.255) `&]_ +[* MaxRect]([@(0.0.255) const]_[_^Rect^ Rect][@(0.0.255) `&]_[*@3 mr])&] +[s2;%% Sets the bounding rectangle which the resulting rectangle +cannot exceed.&] +[s3;%% &] +[s4; &] +[s5;:RectTracker`:`:Clip`(const Rect`&`): [_^RectTracker^ RectTracker][@(0.0.255) `&]_[* Cl +ip]([@(0.0.255) const]_[_^Rect^ Rect][@(0.0.255) `&]_[*@3 c])&] +[s2;%% Sets the clipping rectangle.&] +[s3;%% &] +[s4; &] +[s5;:RectTracker`:`:Width`(int`): [_^RectTracker^ RectTracker][@(0.0.255) `&]_[* Width]([@(0.0.255) i +nt]_[*@3 n])&] +[s2;%% Sets the width of tracking rectangle shape lines.&] +[s3;%% &] +[s4; &] +[s5;:RectTracker`:`:SetColor`(Color`): [_^RectTracker^ RectTracker][@(0.0.255) `&]_[* SetCo +lor]([_^Color^ Color]_[*@3 c])&] +[s2;%% Sets the color of tracking rectangle (if on white background).&] +[s3;%% &] +[s4; &] +[s5;:RectTracker`:`:Pattern`(int`): [_^RectTracker^ RectTracker][@(0.0.255) `&]_[* Pattern]( +[@(0.0.255) int]_[*@3 p])&] +[s2;%% Sets the pattern used to drive lines. [%-*@3 p] can be one of&] +[s2;%% &] +[ {{5000:5000<288; [s2;l0;%% DRAWDRAGRECT`_SOLID] +:: [s2;l0;%% solid line] +:: [s2;l0;%% DRAWDRAGRECT`_NORMAL] +:: [s2;l0;%% line of alternating single dots `- default] +:: [s2;l0;%% DRAWDRAGRECT`_DASHED ] +:: [s2;l0;%% line of alternating 4 pixel segments]}}&] +[s3;%% &] +[s4; &] +[s5;:RectTracker`:`:Dashed`(`): [_^RectTracker^ RectTracker][@(0.0.255) `&]_[* Dashed]()&] +[s2;%% Same as Pattern(DRAWDRAGRECT`_DASH).&] +[s3;%% &] +[s4; &] +[s5;:RectTracker`:`:Solid`(`): [_^RectTracker^ RectTracker][@(0.0.255) `&]_[* Solid]()&] +[s2;%% Same as Pattern(DRAWDRAGRECT`_SOLID).&] +[s3;%% &] +[s4; &] +[s5;:RectTracker`:`:Normal`(`): [_^RectTracker^ RectTracker][@(0.0.255) `&]_[* Normal]()&] +[s2;%% Same as Pattern(DRAWDRAGRECT`_NORMAL).&] +[s3; &] +[s4; &] +[s5;:RectTracker`:`:Animation`(int`): [_^RectTracker^ RectTracker][@(0.0.255) `&]_[* Animat +ion]([@(0.0.255) int]_[*@3 step`_ms]_`=_[@3 40])&] +[s2;%% Activates pattern animation.&] +[s3;%% &] +[s4; &] +[s5;:RectTracker`:`:KeepRatio`(bool`): [_^RectTracker^ RectTracker][@(0.0.255) `&]_[* KeepR +atio]([@(0.0.255) bool]_[*@3 b])&] +[s2;%% Forces rectangle to keep the original ratio.&] +[s3;%% &] +[s4; &] +[s5;:RectTracker`:`:Round`(RectTracker`:`:Rounder`&`): [_^RectTracker^ RectTracker][@(0.0.255) `& +]_[* Round]([_^RectTracker`:`:Rounder^ Rounder][@(0.0.255) `&]_[*@3 r])&] +[s2;%% Sets the rounding object. This is somewhat obsoleted by round +callback.&] +[s3;%% &] +[s4; &] +[s5;:RectTracker`:`:Get`(`): [_^Rect^ Rect]_[* Get]()&] +[s2;%% Returns the current tracking rectangle.&] +[s3;%% &] +[s4; &] +[s5;:RectTracker`:`:Track`(const Rect`&`,int`,int`): [_^Rect^ Rect]_[* Track]([@(0.0.255) c +onst]_[_^Rect^ Rect][@(0.0.255) `&]_[*@3 r], [@(0.0.255) int]_[*@3 tx]_`=_ALIGN`_RIGHT, +[@(0.0.255) int]_[*@3 ty]_`=_ALIGN`_BOTTOM)&] +[s2;%% Performs the modal rectangle tracking loop. [%-*@3 tx] and [%-*@3 ty] +specify which edge or corner of rectangle is being changed:&] +[s2;%% &] +[ {{2807:2850:4343<288;>1088;h1;@(204) [s0; [*@3 tx]] +:: [s0; [*@3 ty]] +:: [s0;%% Changed] +::@2 [s0;%% ALIGN`_LEFT] +:: [s0;%% ALIGN`_TOP] +:: [s0;%% Top`-left corner.] +:: [s0;%% ALIGN`_LEFT] +:: [s0;%% ALIGN`_CENTER] +:: [s0;%% Left edge.] +:: [s0;%% ALIGN`_LEFT] +:: [s0;%% ALIGN`_BOTTOM] +:: [s0;%% Bottom`-left corner.] +:: [s0;%% ALIGN`_CENTER] +:: [s0;%% ALIGN`_TOP] +:: [s0;%% Top edge.] +::@(255.255.192) [s0;%% ALIGN`_CENTER] +:: [s0;%% ALIGN`_CENTER] +:: [s0;%% Rectangle is moved.] +::@2 [s0;%% ALIGN`_CENTER] +:: [s0;%% ALIGN`_BOTTOM] +:: [s0;%% Bottom edge.] +:: [s0;%% ALIGN`_RIGHT] +:: [s0;%% ALIGN`_TOP] +:: [s0;%% Top`-right corner.] +:: [s0;%% ALIGN`_RIGHT] +:: [s0;%% ALIGN`_CENTER] +:: [s0;%% Right edge.] +:: [s0;%% ALIGN`_RIGHT] +:: [s0;%% ALIGN`_BOTTOM] +:: [s0;%% Bottom`-right corner.]}}&] +[s2;%% &] +[s2;%% Returns a new rectangle.&] +[s3;%% &] +[s4; &] +[s5;:RectTracker`:`:TrackHorzLine`(int`,int`,int`,int`): [@(0.0.255) int]_[* TrackHorzLin +e]([@(0.0.255) int]_[*@3 x0], [@(0.0.255) int]_[*@3 y0], [@(0.0.255) int]_[*@3 cx], +[@(0.0.255) int]_[*@3 line])&] +[s2;%% Performs tracking look of horizontal line. [%-*@3 x0], [%-*@3 y0] +is base point, [%-*@3 cx] the width of line, [%-*@3 line] the current +position. Returns the new position.&] +[s3;%% &] +[s4; &] +[s5;:RectTracker`:`:TrackVertLine`(int`,int`,int`,int`): [@(0.0.255) int]_[* TrackVertLin +e]([@(0.0.255) int]_[*@3 x0], [@(0.0.255) int]_[*@3 y0], [@(0.0.255) int]_[*@3 cy], +[@(0.0.255) int]_[*@3 line])&] +[s2;%% Performs tracking look of vertical line. [%-*@3 x0], [%-*@3 y0] +is base point, [%-*@3 cy] the height of line, [%-*@3 line] the current +position. Returns the new position.&] +[s3;%% &] +[s4; &] +[s5;:RectTracker`:`:RectTracker`(Ctrl`&`): [* RectTracker]([_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 m +aster])&] +[s2;%% Constructs RectTracker, the view area of [%-*@3 master] is used +for drawing and coordinate system.&] +[s3;%% &] [s0;%% ] \ No newline at end of file diff --git a/uppsrc/CtrlCore/src.tpp/SystemDrawFn$en-us.tpp b/uppsrc/CtrlCore/src.tpp/SystemDrawFn_en-us.tpp similarity index 100% rename from uppsrc/CtrlCore/src.tpp/SystemDrawFn$en-us.tpp rename to uppsrc/CtrlCore/src.tpp/SystemDrawFn_en-us.tpp diff --git a/uppsrc/CtrlCore/src.tpp/TopWindow$en-us.tpp b/uppsrc/CtrlCore/src.tpp/TopWindow_en-us.tpp similarity index 97% rename from uppsrc/CtrlCore/src.tpp/TopWindow$en-us.tpp rename to uppsrc/CtrlCore/src.tpp/TopWindow_en-us.tpp index b7d68b8b2..3c23fbb57 100644 --- a/uppsrc/CtrlCore/src.tpp/TopWindow$en-us.tpp +++ b/uppsrc/CtrlCore/src.tpp/TopWindow_en-us.tpp @@ -1,515 +1,515 @@ -topic "TopWindow"; -[2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,2#27521748481378242620020725143825:desc] -[0 $$3,0#96390100711032703541132217272105:end] -[H6;0 $$4,0#05600065144404261032431302351956:begin] -[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] -[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] -[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] -[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] -[b42;2 $$9,9#13035079074754324216151401829390:normal] -[{_}%EN-US -[ {{10000t/25b/25@3 [s0;%- [*@(229)4 TopWindow]]}}&] -[s3;%- &] -[s1;:TopWindow`:`:class:%- [@(0.0.255)3 class][3 _][*3 TopWindow][3 _:_][@(0.0.255)3 public][3 _][*@3;3 C -trl]&] -[s9; TopWindow represents top`-level independent window of host OS, -usually decorated with caption, close/zoom/restore buttons etc.&] -[s9; Important fact to note is that window`-rectangle (as defined -by Ctrl`::SetRect and Ctrl`::GetRect methods) does not include -any host GUI specific decorations (caption, thick border for -resizing), just the area that is `"controlled`" by U`+`+.&] -[s9; When TopWindow is opened, it is by default centered w.r.t. to -its owner (if there is any). This behaviour can be altered by -NoCenter or CenterScreen methods.&] -[s3; &] -[s9;%- [%%/ Derived from][%% ][^topic`:`/`/CtrlCore`/src`/Ctrl`$en`-us`#`:`:Ctrl`:`:class^ C -trl]&] -[s3; &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] -[s3;%- &] -[s5;:TopWindow`:`:Reject`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Reject]()&] -[s2; This virtual method is overloaded to perform Restore operation -if there was any previous call to Backup method.&] -[s3; &] -[s4;%- &] -[s5;:TopWindow`:`:Close`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Close]()&] -[s2; This virtual method is implemented in TopWindow so that it breaks -modal loop if TopWindow runs it. If there is Breaker with IDCANCEL -defined, performs RejectBreak(IDCANCEL). Otherwise, if there -is Breaker with IDYES (as assigned to exit Ctrl by CtrlLayoutExit), -performs AcceptBreak(IDYES). If none if that is true, AcceptBreak(IDOK) -is performed.&] -[s2; If TopWindow does not run modal loop, it is closed `- in this -case, any state backup created by Backup method is scratched.&] -[s3; &] -[s4;%- &] -[s5;:TopWindow`:`:WhenClose:%- [_^Callback^ Callback]_[* WhenClose]&] -[s2; This callback is by default invoked when Close button of host -GUI window is pushed. Default assigned action is to perform Close -virtual method.&] -[s3; &] -[s4;%- &] -[s5;:TopWindow`:`:Backup`(`):%- [@(0.0.255) void]_[* Backup]()&] -[s2; Serializes the content of all contained Ctrls (using [^topic`:`/`/CtrlCore`/src`/Ctrl`$en`-us`#`:`:Ctrl`:`:Serialize`(`:`:Stream`&`)^ S -erialize] virtual method) into internal storage of TopWindow. -Useful when implementing Cancel buttons.&] -[s3; &] -[s4;%- &] -[s5;:TopWindow`:`:Restore`(`):%- [@(0.0.255) void]_[* Restore]()&] -[s2; Restores content of all contained Ctrls from internal storage. -If internal storage is empty, does nothing.&] -[s3; &] -[s4;%- &] -[s5;:TopWindow`:`:Break`(int`):%- [@(0.0.255) void]_[* Break]([@(0.0.255) int]_[*@3 ID]_`=_ID -EXIT)&] -[s2; If TopWindow is running its loop (see [^topic`:`/`/CtrlCore`/src`/TopWindow`$en`-us`#`:`:TopWindow`:`:Run`(bool`)^ R -un] or [^topic`:`/`/CtrlCore`/src`/TopWindow`$en`-us`#`:`:TopWindow`:`:RunAppModal`(`)^ R -unAppModal] methods), breaks the loop with specified exit code.&] -[s7; [%-*C@3 ID]-|Exit code.&] -[s3; &] -[s4;%- &] -[s5;:TopWindow`:`:AcceptBreak`(int`):%- [@(0.0.255) bool]_[* AcceptBreak]([@(0.0.255) int]_ -[*@3 ID])&] -[s2; Tries to accept all contained Ctrls by calling Accept for all -child Ctrls, until some returns false `- in such case this method -returns false. If all child Ctrls return true, calls Break with -specified ID and returns true.&] -[s7; [%-*C@3 ID]-|Exit code.&] -[s7; [*/ Return value]-|True if all child Ctrls were accepted and Break(ID) -was invoked.&] -[s3; &] -[s4;%- &] -[s5;:TopWindow`:`:RejectBreak`(int`):%- [@(0.0.255) void]_[* RejectBreak]([@(0.0.255) int]_ -[*@3 ID])&] -[s2; Rejects all contained widgets by calling Reject for all child -Ctrls, then calls Break with specified ID.&] -[s7; [%-*C@3 ID]-|Exit code.&] -[s3; &] -[s4;%- &] -[s5;:TopWindow`:`:WorkAreaTrim`(`):%- [@(0.0.255) void]_[* WorkAreaTrim]()&] -[s2; Adjusts window position so that it does not exceeds desktop -workspace. Exceeding parts are trimmed (decreasing window size).&] -[s3; &] -[s4;%- &] -[s5;:TopWindow`:`:Breaker`(int`):%- [_^Callback^ Callback]_[* Breaker]([@(0.0.255) int]_[*@3 I -D]_`=_IDEXIT)&] -[s2; Returns Callback that, when invoked, invokes [* Break] with the -specified exit code. Note that Callback as return value is used -for backward compatibility with pre`-C`+`+11 U`+`+ and for practical -purposes, you could consider Event<> being returned.&] -[s7; [%-*C@3 ID]-|Message loop exit code.&] -[s7; [*/ Return value]-|Callback.&] -[s3; &] -[s4;%- &] -[s5;:TopWindow`:`:Acceptor`(int`):%- [_^Callback^ Callback]_[* Acceptor]([@(0.0.255) int]_[*@3 I -D])&] -[s2; Returns Callback that, when invoked, invokes [* AcceptBreak] with -the specified exit code. Note that Callback as return value is -used for backward compatibility with pre`-C`+`+11 U`+`+ and for -practical purposes, you could consider Event<> being returned.&] -[s7; [%-*C@3 ID]-|Message loop exit code.&] -[s7; [*/ Return value]-|Callback.&] -[s3; &] -[s4;%- &] -[s5;:TopWindow`:`:Rejector`(int`):%- [_^Callback^ Callback]_[* Rejector]([@(0.0.255) int]_[*@3 I -D])&] -[s2; Returns Callback that, when invoked, invokes [* RejectBreak] with -the specified exit code. Note that Callback as return value is -used for backward compatibility with pre`-C`+`+11 U`+`+ and for -practical purposes, you could consider Event<> being returned.&] -[s7; [%-*C@3 ID]-|Message loop exit code.&] -[s7; [*/ Return value]-|Callback.&] -[s3; &] -[s4;%- &] -[s5;:TopWindow`:`:Breaker`(Ctrl`&`,int`):%- [_^TopWindow^ TopWindow][@(0.0.255) `&]_[* Brea -ker]([_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 m], [@(0.0.255) int]_[*@3 ID]_`=_`-[@3 1])&] -[s2; Same as m <<`= [* Breaker](ID) `- assigns [* Breaker] callback to -WhenAction method of specified Ctrl.&] -[s7; [%-*C@3 m]-|Ctrl.&] -[s7; [%-*C@3 ID]-|Message loop exit code.&] -[s7; [*/ Return value]-|`*this.&] -[s3; &] -[s4;%- &] -[s5;:TopWindow`:`:Acceptor`(Ctrl`&`,int`):%- [_^TopWindow^ TopWindow][@(0.0.255) `&]_[* Acc -eptor]([_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 m], [@(0.0.255) int]_[*@3 ID])&] -[s2; Same as m <<`= [* Acceptor](ID) `- assigns [* Acceptor] callback -to WhenAction method of specified Ctrl.&] -[s7; [%-*C@3 m]-|Ctrl.&] -[s7; [%-*C@3 ID]-|Message loop exit code.&] -[s7; [*/ Return value]-|`*this.&] -[s3; &] -[s4;%- &] -[s5;:TopWindow`:`:Rejector`(Ctrl`&`,int`):%- [_^TopWindow^ TopWindow][@(0.0.255) `&]_[* Rej -ector]([_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 m], [@(0.0.255) int]_[*@3 ID])&] -[s2; Same as m <<`= [* Rejector](ID) `- assigns [* Rejector] callback -to WhenAction method of specified Ctrl.&] -[s7; [%-*C@3 m]-|Ctrl.&] -[s7; [%-*C@3 ID]-|Message loop exit code.&] -[s7; [*/ Return value]-|`*this.&] -[s3; &] -[s4;%- &] -[s5;:TopWindow`:`:NoCenter`(`):%- [_^TopWindow^ TopWindow][@(0.0.255) `&]_[* NoCenter]()&] -[s2; Sets TopWindow not to be centered when being created on the -screen. Returns `*this.&] -[s3; &] -[s4;%- &] -[s5;:TopWindow`:`:CenterOwner`(`):%- [_^TopWindow^ TopWindow][@(0.0.255) `&]_[* CenterOwner -]()&] -[s2; Sets TopWindow to be centered w.r.t. its owner when being created -on the screen. This is default. Returns `*this.&] -[s3; &] -[s4;%- &] -[s5;:TopWindow`:`:CenterScreen`(`):%- [_^TopWindow^ TopWindow][@(0.0.255) `&]_[* CenterScre -en]()&] -[s2; Sets TopWindow to be desktop centered when being created on -the screen. Returns `*this.&] -[s3; &] -[s4;%- &] -[s5;:TopWindow`:`:SetMinSize`(Size`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* SetMinSiz -e]([_^Size^ Size]_[*@3 sz])&] -[s2; Sets the minimal size for window. This size is then returned -by GetMinSize virtual method. If window is resizable, it cannot -be made smaller than this size.&] -[s7; [%-*C@3 sz]-|Minimal size of window.&] -[s3; &] -[s4;%- &] -[s5;:TopWindow`:`:Open`(HWND`):%- [@(0.0.255) void]_[* Open](HWND_[*@3 ownerhwnd])&] -[s2; Opens window with owner specified as Win32 handle.&] -[s6; Win32 specific.&] -[s7; [%-*C@3 ownerhwnd]-|Owner window handle.&] -[s3; &] -[s4;%- &] -[s5;:TopWindow`:`:Style`(dword`):%- [_^TopWindow^ TopWindow][@(0.0.255) `&]_[* Style]([_^dword^ d -word]_[*@3 `_style])&] -[s2; Sets Win32 window style.&] -[s6; Win32 specific.&] -[s7; [%-*C@3 `_style]-|Style.&] -[s7; [*/ Return value]-|`*this.&] -[s3; &] -[s4;%- &] -[s5;:TopWindow`:`:GetStyle`(`)const:%- [_^dword^ dword]_[* GetStyle]()_[@(0.0.255) const]&] -[s2; Sets Win32 window extended style.&] -[s6; Win32 specific.&] -[s7; [*/ Return value]-|`*this.&] -[s3; &] -[s4;%- &] -[s5;:TopWindow`:`:ExStyle`(dword`):%- [_^TopWindow^ TopWindow][@(0.0.255) `&]_[* ExStyle]([_^dword^ d -word]_[*@3 `_exstyle])&] -[s6; Win32 specific.&] -[s7; [%-*C@3 `_exstyle]-|style&] -[s7; [*/ Return value]-|`*this&] -[s3; &] -[s4;%- &] -[s5;:TopWindow`:`:GetExStyle`(`)const:%- [_^dword^ dword]_[* GetExStyle]()_[@(0.0.255) cons -t]&] -[s6; Win32 specific.&] -[s7; [*/ Return value]-|style&] -[s3; &] -[s4;%- &] -[s5;:TopWindow`:`:Open`(Ctrl`*`):%- [@(0.0.255) void]_[* Open]([_^Ctrl^ Ctrl]_`*[*@3 owner])&] -[s2; Opens TopWindow as window in host GUI with specified owner.&] -[s7; [%-*C@3 owner]-|Owner of window. If NULL, window has no owner.&] -[s3; &] -[s4;%- &] -[s5;:TopWindow`:`:Open`(`):%- [@(0.0.255) void]_[* Open]()&] -[s2; Opens TopWindow with owner equal to current active window if -it is owned by the process.&] -[s3; &] -[s4;%- &] -[s5;:TopWindow`:`:OpenMain`(`):%- [@(0.0.255) void]_[* OpenMain]()&] -[s2; Opens window without owner.&] -[s3; &] -[s4;%- &] -[s5;:TopWindow`:`:Run`(bool`):%- [@(0.0.255) int]_[* Run]([@(0.0.255) bool]_[*@3 appmodal]_`= -_[@(0.0.255) false])&] -[s2; Execute modal loop for TopWindow. If TopWindow is not open, -it calls Open before starting loop, but it does not close it.&] -[s7; [%-*C@3 appmodal]-|If true, all application window are disabled -while performing loop. If false, only TopWindow`'s relative windows -(with the same `"super`"`-owner) are disabled.&] -[s7; [*/ Return value]-|Result code of modal loop.&] -[s3; &] -[s4;%- &] -[s5;:TopWindow`:`:RunAppModal`(`):%- [@(0.0.255) int]_[* RunAppModal]()&] -[s2; Same as Run(true).&] -[s7; [*/ Return value]-|Result code of modal loop.&] -[s3; &] -[s4;%- &] -[s5;:TopWindow`:`:Execute`(`):%- [@(0.0.255) int]_[* Execute]()&] -[s2; Similar to Run, but closes TopWindow when loop exits.&] -[s7; [*/ Return value]-|Result code of modal loop.&] -[s3; &] -[s4;%- &] -[s5;:TopWindow`:`:ExecuteOK`(`):%- [@(0.0.255) bool]_[* ExecuteOK]()&] -[s2; Same as Execute but return true if button OK was pressed.&] -[s7; [*/ Return value]-|Result true if OK otherwise false.&] -[s3; &] -[s4;%- &] -[s5;:TopWindow`:`:ExecuteCancel`(`):%- [@(0.0.255) bool]_[* ExecuteCancel]()&] -[s2; Same as Execute but return true if button Cancel was pressed.&] -[s7; [*/ Return value]-|Result true if Cancel otherwise false.&] -[s3; &] -[s4;%- &] -[s5;:TopWindow`:`:Minimize`(bool`):%- [@(0.0.255) void]_[* Minimize]([@(0.0.255) bool]_[*@3 e -ffect]_`=_[@(0.0.255) false])&] -[s2; Minimize window.&] -[s7; [%-*C@3 effect]-|Do platform specific GUI effects.&] -[s3; &] -[s4;%- &] -[s5;:TopWindow`:`:Maximize`(bool`):%- [@(0.0.255) void]_[* Maximize]([@(0.0.255) bool]_[*@3 e -ffect]_`=_[@(0.0.255) false])&] -[s2; Maximize window.&] -[s7; [%-*C@3 effect]-|Do platform specific GUI effects.&] -[s3; &] -[s4;%- &] -[s5;:TopWindow`:`:Overlap`(bool`):%- [@(0.0.255) void]_[* Overlap]([@(0.0.255) bool]_[*@3 eff -ect]_`=_[@(0.0.255) false])&] -[s2; Put window to normal overlapped state.&] -[s7; [%-*C@3 effect]-|Do platform specific GUI effects.&] -[s3; &] -[s4;%- &] -[s5;:TopWindow`:`:IsMaximized`(`)const:%- [@(0.0.255) bool]_[* IsMaximized]()_[@(0.0.255) c -onst]&] -[s7; [*/ Return value]-|True if TopWindow is maximized.&] -[s3; &] -[s4;%- &] -[s5;:TopWindow`:`:IsMinimized`(`)const:%- [@(0.0.255) bool]_[* IsMinimized]()_[@(0.0.255) c -onst]&] -[s7; [*/ Return value]-|True if TopWindow is minimized.&] -[s3; &] -[s4;%- &] -[s5;:TopWindow`:`:IsOverlapped`(`)const:%- [@(0.0.255) bool]_[* IsOverlapped]()_[@(0.0.255) c -onst]&] -[s7; [*/ Return value]-|True if TopWindow is in normal (overlapped) -state.&] -[s3; &] -[s4;%- &] -[s5;:TopWindow`:`:ActiveFocus`(Ctrl`&`):%- [_^TopWindow^ TopWindow][@(0.0.255) `&]_[* Activ -eFocus]([_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 ctrl])&] -[s2; Sets the ActiveFocus Ctrl. This Ctrl gets focus when TopWindow -is activated. If there is no Ctrl with active focus, first Ctrl -is activated. When TopWindow is deactivated, Ctrl that has focus -is stored as new ActiveFocus Ctrl and gets focus once TopWindow -is activated again (unless this method changes ActiveFocus meanwhile). -When this, method is called while TopWindow is active, it is -equivalent to ctrl.SetFocus().&] -[s7; [%-*C@3 ctrl]-|Ctrl to have &] -[s7; [*/ Return value]-|`*this.&] -[s3; &] -[s4;%- &] -[s5;:TopWindow`:`:Title`(const WString`&`):%- [_^TopWindow^ TopWindow][@(0.0.255) `&]_[* Ti -tle]([@(0.0.255) const]_[_^WString^ WString][@(0.0.255) `&]_[*@3 `_title])&] -[s5;:TopWindow`:`:Title`(const char`*`):%- [_^TopWindow^ TopWindow][@(0.0.255) `&]_[* Title -]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 `_title])&] -[s2; Sets the title of the window.&] -[s7; [%-*C@3 `_title]-|Title.&] -[s7; [*/ Return value]-|`*this.&] -[s3; &] -[s4;%- &] -[s5;:TopWindow`:`:GetTitle`(`)const:%- [@(0.0.255) const]_[_^WString^ WString][@(0.0.255) `& -]_[* GetTitle]()_[@(0.0.255) const]&] -[s7; [*/ Return value]-|Current title of window.&] -[s3; &] -[s4;%- &] -[s5;:TopWindow`:`:Sizeable`(bool`):%- [_^TopWindow^ TopWindow][@(0.0.255) `&]_[* Sizeable]( -[@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2; Indicates whether TopWindow should be resizeable by user.&] -[s7; [%-*C@3 b]-|True to set.&] -[s7; [*/ Return value]-|`*this.&] -[s3; &] -[s4;%- &] -[s5;:TopWindow`:`:NoSizeable`(`):%- [_^TopWindow^ TopWindow][@(0.0.255) `&]_[* NoSizeable]( -)&] -[s2; Same as Sizeable(false).&] -[s7; [*/ Return value]-|`*this.&] -[s3; &] -[s4;%- &] -[s5;:TopWindow`:`:IsSizeable`(`)const:%- [@(0.0.255) bool]_[* IsSizeable]()_[@(0.0.255) con -st]&] -[s7; [*/ Return value]-|Value&] -[s3; &] -[s4;%- &] -[s5;:TopWindow`:`:MinimizeBox`(bool`):%- [_^TopWindow^ TopWindow][@(0.0.255) `&]_[* Minimiz -eBox]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2; Sets TopWindow to have a minimize box.&] -[s7; [%-*C@3 b]-|true to set.&] -[s7; [*/ Return value]-|`*this.&] -[s3; &] -[s4;%- &] -[s5;:TopWindow`:`:MaximizeBox`(bool`):%- [_^TopWindow^ TopWindow][@(0.0.255) `&]_[* Maximiz -eBox]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2; Sets TopWindow to have a maximize box.&] -[s7; [%-*C@3 b]-|true to set.&] -[s7; [*/ Return value]-|`*this.&] -[s3; &] -[s4;%- &] -[s5;:TopWindow`:`:Zoomable`(bool`):%- [_^TopWindow^ TopWindow][@(0.0.255) `&]_[* Zoomable]( -[@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2; Sets TopWindow to be Zoomable `- to have maximize/minimize flags, -if supported by host platform. Same as MinimizeBox(b).MaximizeBox(b).&] -[s7; [%-*C@3 b]-|True to set.&] -[s7; [*/ Return value]-|`*this.&] -[s3; &] -[s4;%- &] -[s5;:TopWindow`:`:NoZoomable`(`):%- [_^TopWindow^ TopWindow][@(0.0.255) `&]_[* NoZoomable]( -)&] -[s2; Same as Zoomable(false).&] -[s7; [*/ Return value]-|`*this.&] -[s3; &] -[s4;%- &] -[s5;:TopWindow`:`:IsZoomable`(`)const:%- [@(0.0.255) bool]_[* IsZoomable]()_[@(0.0.255) con -st]&] -[s7; [*/ Return value]-|Value of Zoomable flag.&] -[s3; &] -[s4;%- &] -[s5;:TopWindow`:`:Background`(const PaintRect`&`):%- [_^TopWindow^ TopWindow][@(0.0.255) `& -]_[* Background]([@(0.0.255) const]_[_^PaintRect^ PaintRect][@(0.0.255) `&]_[*@3 prect])&] -[s2; Sets PaintRect that will be used to paint TopWindow background. -Default PaintRect paints background with SColorFace.&] -[s7; [%-*C@3 prect]-|PaintRect.&] -[s7; [*/ Return value]-|`*this.&] -[s3; &] -[s4;%- &] -[s5;:TopWindow`:`:GetBackground`(`)const:%- [@(0.0.255) const]_[_^PaintRect^ PaintRect][@(0.0.255) `& -]_[* GetBackground]()_[@(0.0.255) const]&] -[s2; Returns active PaintRect used to paint TopWindow background.&] -[s7; [*/ Return value]-|PaintRect.&] -[s3; &] -[s4;%- &] -[s5;:TopWindow`:`:ToolWindow`(bool`):%- [_^TopWindow^ TopWindow][@(0.0.255) `&]_[* ToolWind -ow]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2; Makes TopWindow appear with thin caption, if supported by host -platform. Must be set before opening.&] -[s7; [%-*C@3 b]-|True to set the flag.&] -[s7; [*/ Return value]-|`*this.&] -[s3; &] -[s4;%- &] -[s5;:TopWindow`:`:NoToolWindow`(`):%- [_^TopWindow^ TopWindow][@(0.0.255) `&]_[* NoToolWind -ow]()&] -[s2; Same as ToolWindow(false).&] -[s7; [*/ Return value]-|`*this.&] -[s3; &] -[s4;%- &] -[s5;:TopWindow`:`:IsToolWindow`(`)const:%- [@(0.0.255) bool]_[* IsToolWindow]()_[@(0.0.255) c -onst]&] -[s7; [*/ Return value]-|Value of ToolWindow flag.&] -[s3; &] -[s4;%- &] -[s5;:TopWindow`:`:TopMost`(bool`,bool`):%- [_^TopWindow^ TopWindow][@(0.0.255) `&]_[* TopMo -st]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true], [@(0.0.255) bool]_[*@3 stay`_top]_`=_[@(0.0.255) t -rue])&] -[s2; Makes window stay over any other window. Returns `*this.&] -[s3; &] -[s4;%- &] -[s5;:TopWindow`:`:NoTopMost`(`):%- [_^TopWindow^ TopWindow][@(0.0.255) `&]_[* NoTopMost]()&] -[s2; Same as TopMost(false).&] -[s3; &] -[s4;%- &] -[s5;:TopWindow`:`:IsTopMost`(`)const:%- [@(0.0.255) bool]_[* IsTopMost]()_[@(0.0.255) const -]&] -[s2; Value of TopMost flag.&] -[s3; &] -[s4;%- &] -[s5;:TopWindow`:`:FullScreen`(bool`):%- [_^TopWindow^ TopWindow][@(0.0.255) `&]_[* FullScre -en]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2; Sets window to fullscreen if [%-*@3 b] is true, otherwise sets -window to regular state. Returns `*this.&] -[s3; &] -[s4;%- &] -[s5;:TopWindow`:`:IsFullScreen`(`)const:%- [@(0.0.255) bool]_[* IsFullScreen]()_[@(0.0.255) c -onst]&] -[s2; [*/ Return value]-|True if window is in fullscreen mode.&] -[s3;%- &] -[s4;%- &] -[s5;:TopWindow`:`:FrameLess`(bool`):%- [_^TopWindow^ TopWindow][@(0.0.255) `&]_[* FrameLess -]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2; [%-*@3 b].&] -[s3; &] -[s4;%- &] -[s5;:TopWindow`:`:IsFrameLess`(`)const:%- [@(0.0.255) bool]_[* IsFrameLess]()_[@(0.0.255) c -onst]&] -[s2; &] -[s3;%- &] -[s4;%- &] -[s5;:TopWindow`:`:Urgent`(bool`):%- [_^TopWindow^ TopWindow][@(0.0.255) `&]_[* Urgent]([@(0.0.255) b -ool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2; Calling Urgent(true) causes title of inactive window and its -item in taskbar to flash to catch users attention. The effect -lasts until either Urgent(false) is called or the window is taken -to foreground. If Urgent(true) is called on currently active -window then it has no effect.&] -[s2; &] -[s2; Note: Most of the window managers on X11 do support this feature, -but there still might be some obscure ones that simply ignore -this setting.&] -[s3; &] -[s4;%- &] -[s5;:TopWindow`:`:IsUrgent`(`)const:%- [@(0.0.255) bool]_[* IsUrgent]()_[@(0.0.255) const]&] -[s2; [*/ Return value]-|True if window tries to catch users attention -by flashing.&] -[s3;%- &] -[s4;%- &] -[s5;:TopWindow`:`:NoAccessKeysDistribution`(`):%- [_^TopWindow^ TopWindow][@(0.0.255) `&]_ -[* NoAccessKeysDistribution]()&] -[s2; Disables distribution of access keys. Normally, TopWindow tries -to assign access`-keys (also known as `"hot`-keys`") to all of -its child windows before opening. This method disables this behaviour.&] -[s7; [*/ Return value]-|`*this.&] -[s3; &] -[s4;%- &] -[s5;:TopWindow`:`:CloseBoxRejects`(bool`):%- [_^TopWindow^ TopWindow][@(0.0.255) `&]_[* Clo -seBoxRejects]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2; When active, pressing window title close button always rejects -the dialog. When not active, the action depends on Acceptors/Rejectors -present, performing first of IDCANCEL `-> reject, IDNO `-> reject, -IDEXIT `-> accept, IDYES `-> Accept, and IDOK `-> Accept as default -action if nothing else is present.&] -[s3; &] -[s4;%- &] -[s5;:TopWindow`:`:Icon`(const Image`&`):%- [_^TopWindow^ TopWindow][@(0.0.255) `&]_[* Icon]( -[@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 m])&] -[s2; Defines icon for TopWindow that is usually displayed in window -caption (platform specif).&] -[s7; [%-*C@3 m]-|Icon.&] -[s7; [*/ Return value]-|`*this.&] -[s3; &] -[s4;%- &] -[s5;:TopWindow`:`:LargeIcon`(const Image`&`):%- [_^TopWindow^ TopWindow][@(0.0.255) `&]_[* L -argeIcon]([@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 m])&] -[s2; Defines `"large`" icon for TopWindow. It can be displayed e.g. -in task switcher and other places (platform specific).&] -[s7; [%-*C@3 m]-|Icon.&] -[s7; [*/ Return value]-|`*this.&] -[s3; &] -[s4;%- &] -[s5;:TopWindow`:`:Icon`(const Image`&`,const Image`&`):%- [_^TopWindow^ TopWindow][@(0.0.255) `& -]_[* Icon]([@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 smallicon], -[@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 largeicon])&] -[s2; Defines both `"small`" and `"large`" icons for TopWindow.&] -[s7; [%-*C@3 smallicon]-|Small icon.&] -[s7; [%-*C@3 largeicon]-|Large icon.&] -[s7; [*/ Return value]-|`*this.&] -[s3; &] -[s4;%- &] -[s5;:TopWindow`:`:SerializePlacement`(Stream`&`,bool`):%- [@(0.0.255) void]_[* SerializeP -lacement]([_^Stream^ Stream][@(0.0.255) `&]_[*@3 s], [@(0.0.255) bool]_[*@3 reminimize]_`=_ -[@(0.0.255) false])&] -[s2; Serializes current placement of TopWindow. It is platform specific, -however information can include screen position in `"normal`" -state and current status (maximized, minimized, normal).&] -[s7; [%-*C@3 s]-|Stream.&] -[s7; [%-*C@3 reminimize]-|If false and loading the information from -the stream, minimized state is not restored.&] -[s3; &] -[s4;%- &] -[s5;:TopWindow`:`:TopWindow`(`):%- [* TopWindow]()&] -[s2; Constructor.&] -[s3; &] -[s4;%- &] -[s5;:TopWindow`:`:`~TopWindow`(`):%- [@(0.0.255) `~][* TopWindow]()&] -[s2; Destructor.&] -[s3; &] +topic "TopWindow"; +[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,2#27521748481378242620020725143825:desc] +[0 $$3,0#96390100711032703541132217272105:end] +[H6;0 $$4,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] +[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] +[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] +[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] +[b42;2 $$9,9#13035079074754324216151401829390:normal] +[{_}%EN-US +[ {{10000t/25b/25@3 [s0;%- [*@(229)4 TopWindow]]}}&] +[s3;%- &] +[s1;:TopWindow`:`:class:%- [@(0.0.255)3 class][3 _][*3 TopWindow][3 _:_][@(0.0.255)3 public][3 _][*@3;3 C +trl]&] +[s9; TopWindow represents top`-level independent window of host OS, +usually decorated with caption, close/zoom/restore buttons etc.&] +[s9; Important fact to note is that window`-rectangle (as defined +by Ctrl`::SetRect and Ctrl`::GetRect methods) does not include +any host GUI specific decorations (caption, thick border for +resizing), just the area that is `"controlled`" by U`+`+.&] +[s9; When TopWindow is opened, it is by default centered w.r.t. to +its owner (if there is any). This behaviour can be altered by +NoCenter or CenterScreen methods.&] +[s3; &] +[s9;%- [%%/ Derived from][%% ][^topic`:`/`/CtrlCore`/src`/Ctrl`$en`-us`#`:`:Ctrl`:`:class^ C +trl]&] +[s3; &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] +[s3;%- &] +[s5;:TopWindow`:`:Reject`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Reject]()&] +[s2; This virtual method is overloaded to perform Restore operation +if there was any previous call to Backup method.&] +[s3; &] +[s4;%- &] +[s5;:TopWindow`:`:Close`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Close]()&] +[s2; This virtual method is implemented in TopWindow so that it breaks +modal loop if TopWindow runs it. If there is Breaker with IDCANCEL +defined, performs RejectBreak(IDCANCEL). Otherwise, if there +is Breaker with IDYES (as assigned to exit Ctrl by CtrlLayoutExit), +performs AcceptBreak(IDYES). If none if that is true, AcceptBreak(IDOK) +is performed.&] +[s2; If TopWindow does not run modal loop, it is closed `- in this +case, any state backup created by Backup method is scratched.&] +[s3; &] +[s4;%- &] +[s5;:TopWindow`:`:WhenClose:%- [_^Callback^ Callback]_[* WhenClose]&] +[s2; This callback is by default invoked when Close button of host +GUI window is pushed. Default assigned action is to perform Close +virtual method.&] +[s3; &] +[s4;%- &] +[s5;:TopWindow`:`:Backup`(`):%- [@(0.0.255) void]_[* Backup]()&] +[s2; Serializes the content of all contained Ctrls (using [^topic`:`/`/CtrlCore`/src`/Ctrl`$en`-us`#`:`:Ctrl`:`:Serialize`(`:`:Stream`&`)^ S +erialize] virtual method) into internal storage of TopWindow. +Useful when implementing Cancel buttons.&] +[s3; &] +[s4;%- &] +[s5;:TopWindow`:`:Restore`(`):%- [@(0.0.255) void]_[* Restore]()&] +[s2; Restores content of all contained Ctrls from internal storage. +If internal storage is empty, does nothing.&] +[s3; &] +[s4;%- &] +[s5;:TopWindow`:`:Break`(int`):%- [@(0.0.255) void]_[* Break]([@(0.0.255) int]_[*@3 ID]_`=_ID +EXIT)&] +[s2; If TopWindow is running its loop (see [^topic`:`/`/CtrlCore`/src`/TopWindow`$en`-us`#`:`:TopWindow`:`:Run`(bool`)^ R +un] or [^topic`:`/`/CtrlCore`/src`/TopWindow`$en`-us`#`:`:TopWindow`:`:RunAppModal`(`)^ R +unAppModal] methods), breaks the loop with specified exit code.&] +[s7; [%-*C@3 ID]-|Exit code.&] +[s3; &] +[s4;%- &] +[s5;:TopWindow`:`:AcceptBreak`(int`):%- [@(0.0.255) bool]_[* AcceptBreak]([@(0.0.255) int]_ +[*@3 ID])&] +[s2; Tries to accept all contained Ctrls by calling Accept for all +child Ctrls, until some returns false `- in such case this method +returns false. If all child Ctrls return true, calls Break with +specified ID and returns true.&] +[s7; [%-*C@3 ID]-|Exit code.&] +[s7; [*/ Return value]-|True if all child Ctrls were accepted and Break(ID) +was invoked.&] +[s3; &] +[s4;%- &] +[s5;:TopWindow`:`:RejectBreak`(int`):%- [@(0.0.255) void]_[* RejectBreak]([@(0.0.255) int]_ +[*@3 ID])&] +[s2; Rejects all contained widgets by calling Reject for all child +Ctrls, then calls Break with specified ID.&] +[s7; [%-*C@3 ID]-|Exit code.&] +[s3; &] +[s4;%- &] +[s5;:TopWindow`:`:WorkAreaTrim`(`):%- [@(0.0.255) void]_[* WorkAreaTrim]()&] +[s2; Adjusts window position so that it does not exceeds desktop +workspace. Exceeding parts are trimmed (decreasing window size).&] +[s3; &] +[s4;%- &] +[s5;:TopWindow`:`:Breaker`(int`):%- [_^Callback^ Callback]_[* Breaker]([@(0.0.255) int]_[*@3 I +D]_`=_IDEXIT)&] +[s2; Returns Callback that, when invoked, invokes [* Break] with the +specified exit code. Note that Callback as return value is used +for backward compatibility with pre`-C`+`+11 U`+`+ and for practical +purposes, you could consider Event<> being returned.&] +[s7; [%-*C@3 ID]-|Message loop exit code.&] +[s7; [*/ Return value]-|Callback.&] +[s3; &] +[s4;%- &] +[s5;:TopWindow`:`:Acceptor`(int`):%- [_^Callback^ Callback]_[* Acceptor]([@(0.0.255) int]_[*@3 I +D])&] +[s2; Returns Callback that, when invoked, invokes [* AcceptBreak] with +the specified exit code. Note that Callback as return value is +used for backward compatibility with pre`-C`+`+11 U`+`+ and for +practical purposes, you could consider Event<> being returned.&] +[s7; [%-*C@3 ID]-|Message loop exit code.&] +[s7; [*/ Return value]-|Callback.&] +[s3; &] +[s4;%- &] +[s5;:TopWindow`:`:Rejector`(int`):%- [_^Callback^ Callback]_[* Rejector]([@(0.0.255) int]_[*@3 I +D])&] +[s2; Returns Callback that, when invoked, invokes [* RejectBreak] with +the specified exit code. Note that Callback as return value is +used for backward compatibility with pre`-C`+`+11 U`+`+ and for +practical purposes, you could consider Event<> being returned.&] +[s7; [%-*C@3 ID]-|Message loop exit code.&] +[s7; [*/ Return value]-|Callback.&] +[s3; &] +[s4;%- &] +[s5;:TopWindow`:`:Breaker`(Ctrl`&`,int`):%- [_^TopWindow^ TopWindow][@(0.0.255) `&]_[* Brea +ker]([_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 m], [@(0.0.255) int]_[*@3 ID]_`=_`-[@3 1])&] +[s2; Same as m <<`= [* Breaker](ID) `- assigns [* Breaker] callback to +WhenAction method of specified Ctrl.&] +[s7; [%-*C@3 m]-|Ctrl.&] +[s7; [%-*C@3 ID]-|Message loop exit code.&] +[s7; [*/ Return value]-|`*this.&] +[s3; &] +[s4;%- &] +[s5;:TopWindow`:`:Acceptor`(Ctrl`&`,int`):%- [_^TopWindow^ TopWindow][@(0.0.255) `&]_[* Acc +eptor]([_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 m], [@(0.0.255) int]_[*@3 ID])&] +[s2; Same as m <<`= [* Acceptor](ID) `- assigns [* Acceptor] callback +to WhenAction method of specified Ctrl.&] +[s7; [%-*C@3 m]-|Ctrl.&] +[s7; [%-*C@3 ID]-|Message loop exit code.&] +[s7; [*/ Return value]-|`*this.&] +[s3; &] +[s4;%- &] +[s5;:TopWindow`:`:Rejector`(Ctrl`&`,int`):%- [_^TopWindow^ TopWindow][@(0.0.255) `&]_[* Rej +ector]([_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 m], [@(0.0.255) int]_[*@3 ID])&] +[s2; Same as m <<`= [* Rejector](ID) `- assigns [* Rejector] callback +to WhenAction method of specified Ctrl.&] +[s7; [%-*C@3 m]-|Ctrl.&] +[s7; [%-*C@3 ID]-|Message loop exit code.&] +[s7; [*/ Return value]-|`*this.&] +[s3; &] +[s4;%- &] +[s5;:TopWindow`:`:NoCenter`(`):%- [_^TopWindow^ TopWindow][@(0.0.255) `&]_[* NoCenter]()&] +[s2; Sets TopWindow not to be centered when being created on the +screen. Returns `*this.&] +[s3; &] +[s4;%- &] +[s5;:TopWindow`:`:CenterOwner`(`):%- [_^TopWindow^ TopWindow][@(0.0.255) `&]_[* CenterOwner +]()&] +[s2; Sets TopWindow to be centered w.r.t. its owner when being created +on the screen. This is default. Returns `*this.&] +[s3; &] +[s4;%- &] +[s5;:TopWindow`:`:CenterScreen`(`):%- [_^TopWindow^ TopWindow][@(0.0.255) `&]_[* CenterScre +en]()&] +[s2; Sets TopWindow to be desktop centered when being created on +the screen. Returns `*this.&] +[s3; &] +[s4;%- &] +[s5;:TopWindow`:`:SetMinSize`(Size`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* SetMinSiz +e]([_^Size^ Size]_[*@3 sz])&] +[s2; Sets the minimal size for window. This size is then returned +by GetMinSize virtual method. If window is resizable, it cannot +be made smaller than this size.&] +[s7; [%-*C@3 sz]-|Minimal size of window.&] +[s3; &] +[s4;%- &] +[s5;:TopWindow`:`:Open`(HWND`):%- [@(0.0.255) void]_[* Open](HWND_[*@3 ownerhwnd])&] +[s2; Opens window with owner specified as Win32 handle.&] +[s6; Win32 specific.&] +[s7; [%-*C@3 ownerhwnd]-|Owner window handle.&] +[s3; &] +[s4;%- &] +[s5;:TopWindow`:`:Style`(dword`):%- [_^TopWindow^ TopWindow][@(0.0.255) `&]_[* Style]([_^dword^ d +word]_[*@3 `_style])&] +[s2; Sets Win32 window style.&] +[s6; Win32 specific.&] +[s7; [%-*C@3 `_style]-|Style.&] +[s7; [*/ Return value]-|`*this.&] +[s3; &] +[s4;%- &] +[s5;:TopWindow`:`:GetStyle`(`)const:%- [_^dword^ dword]_[* GetStyle]()_[@(0.0.255) const]&] +[s2; Sets Win32 window extended style.&] +[s6; Win32 specific.&] +[s7; [*/ Return value]-|`*this.&] +[s3; &] +[s4;%- &] +[s5;:TopWindow`:`:ExStyle`(dword`):%- [_^TopWindow^ TopWindow][@(0.0.255) `&]_[* ExStyle]([_^dword^ d +word]_[*@3 `_exstyle])&] +[s6; Win32 specific.&] +[s7; [%-*C@3 `_exstyle]-|style&] +[s7; [*/ Return value]-|`*this&] +[s3; &] +[s4;%- &] +[s5;:TopWindow`:`:GetExStyle`(`)const:%- [_^dword^ dword]_[* GetExStyle]()_[@(0.0.255) cons +t]&] +[s6; Win32 specific.&] +[s7; [*/ Return value]-|style&] +[s3; &] +[s4;%- &] +[s5;:TopWindow`:`:Open`(Ctrl`*`):%- [@(0.0.255) void]_[* Open]([_^Ctrl^ Ctrl]_`*[*@3 owner])&] +[s2; Opens TopWindow as window in host GUI with specified owner.&] +[s7; [%-*C@3 owner]-|Owner of window. If NULL, window has no owner.&] +[s3; &] +[s4;%- &] +[s5;:TopWindow`:`:Open`(`):%- [@(0.0.255) void]_[* Open]()&] +[s2; Opens TopWindow with owner equal to current active window if +it is owned by the process.&] +[s3; &] +[s4;%- &] +[s5;:TopWindow`:`:OpenMain`(`):%- [@(0.0.255) void]_[* OpenMain]()&] +[s2; Opens window without owner.&] +[s3; &] +[s4;%- &] +[s5;:TopWindow`:`:Run`(bool`):%- [@(0.0.255) int]_[* Run]([@(0.0.255) bool]_[*@3 appmodal]_`= +_[@(0.0.255) false])&] +[s2; Execute modal loop for TopWindow. If TopWindow is not open, +it calls Open before starting loop, but it does not close it.&] +[s7; [%-*C@3 appmodal]-|If true, all application window are disabled +while performing loop. If false, only TopWindow`'s relative windows +(with the same `"super`"`-owner) are disabled.&] +[s7; [*/ Return value]-|Result code of modal loop.&] +[s3; &] +[s4;%- &] +[s5;:TopWindow`:`:RunAppModal`(`):%- [@(0.0.255) int]_[* RunAppModal]()&] +[s2; Same as Run(true).&] +[s7; [*/ Return value]-|Result code of modal loop.&] +[s3; &] +[s4;%- &] +[s5;:TopWindow`:`:Execute`(`):%- [@(0.0.255) int]_[* Execute]()&] +[s2; Similar to Run, but closes TopWindow when loop exits.&] +[s7; [*/ Return value]-|Result code of modal loop.&] +[s3; &] +[s4;%- &] +[s5;:TopWindow`:`:ExecuteOK`(`):%- [@(0.0.255) bool]_[* ExecuteOK]()&] +[s2; Same as Execute but return true if button OK was pressed.&] +[s7; [*/ Return value]-|Result true if OK otherwise false.&] +[s3; &] +[s4;%- &] +[s5;:TopWindow`:`:ExecuteCancel`(`):%- [@(0.0.255) bool]_[* ExecuteCancel]()&] +[s2; Same as Execute but return true if button Cancel was pressed.&] +[s7; [*/ Return value]-|Result true if Cancel otherwise false.&] +[s3; &] +[s4;%- &] +[s5;:TopWindow`:`:Minimize`(bool`):%- [@(0.0.255) void]_[* Minimize]([@(0.0.255) bool]_[*@3 e +ffect]_`=_[@(0.0.255) false])&] +[s2; Minimize window.&] +[s7; [%-*C@3 effect]-|Do platform specific GUI effects.&] +[s3; &] +[s4;%- &] +[s5;:TopWindow`:`:Maximize`(bool`):%- [@(0.0.255) void]_[* Maximize]([@(0.0.255) bool]_[*@3 e +ffect]_`=_[@(0.0.255) false])&] +[s2; Maximize window.&] +[s7; [%-*C@3 effect]-|Do platform specific GUI effects.&] +[s3; &] +[s4;%- &] +[s5;:TopWindow`:`:Overlap`(bool`):%- [@(0.0.255) void]_[* Overlap]([@(0.0.255) bool]_[*@3 eff +ect]_`=_[@(0.0.255) false])&] +[s2; Put window to normal overlapped state.&] +[s7; [%-*C@3 effect]-|Do platform specific GUI effects.&] +[s3; &] +[s4;%- &] +[s5;:TopWindow`:`:IsMaximized`(`)const:%- [@(0.0.255) bool]_[* IsMaximized]()_[@(0.0.255) c +onst]&] +[s7; [*/ Return value]-|True if TopWindow is maximized.&] +[s3; &] +[s4;%- &] +[s5;:TopWindow`:`:IsMinimized`(`)const:%- [@(0.0.255) bool]_[* IsMinimized]()_[@(0.0.255) c +onst]&] +[s7; [*/ Return value]-|True if TopWindow is minimized.&] +[s3; &] +[s4;%- &] +[s5;:TopWindow`:`:IsOverlapped`(`)const:%- [@(0.0.255) bool]_[* IsOverlapped]()_[@(0.0.255) c +onst]&] +[s7; [*/ Return value]-|True if TopWindow is in normal (overlapped) +state.&] +[s3; &] +[s4;%- &] +[s5;:TopWindow`:`:ActiveFocus`(Ctrl`&`):%- [_^TopWindow^ TopWindow][@(0.0.255) `&]_[* Activ +eFocus]([_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 ctrl])&] +[s2; Sets the ActiveFocus Ctrl. This Ctrl gets focus when TopWindow +is activated. If there is no Ctrl with active focus, first Ctrl +is activated. When TopWindow is deactivated, Ctrl that has focus +is stored as new ActiveFocus Ctrl and gets focus once TopWindow +is activated again (unless this method changes ActiveFocus meanwhile). +When this, method is called while TopWindow is active, it is +equivalent to ctrl.SetFocus().&] +[s7; [%-*C@3 ctrl]-|Ctrl to have &] +[s7; [*/ Return value]-|`*this.&] +[s3; &] +[s4;%- &] +[s5;:TopWindow`:`:Title`(const WString`&`):%- [_^TopWindow^ TopWindow][@(0.0.255) `&]_[* Ti +tle]([@(0.0.255) const]_[_^WString^ WString][@(0.0.255) `&]_[*@3 `_title])&] +[s5;:TopWindow`:`:Title`(const char`*`):%- [_^TopWindow^ TopWindow][@(0.0.255) `&]_[* Title +]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 `_title])&] +[s2; Sets the title of the window.&] +[s7; [%-*C@3 `_title]-|Title.&] +[s7; [*/ Return value]-|`*this.&] +[s3; &] +[s4;%- &] +[s5;:TopWindow`:`:GetTitle`(`)const:%- [@(0.0.255) const]_[_^WString^ WString][@(0.0.255) `& +]_[* GetTitle]()_[@(0.0.255) const]&] +[s7; [*/ Return value]-|Current title of window.&] +[s3; &] +[s4;%- &] +[s5;:TopWindow`:`:Sizeable`(bool`):%- [_^TopWindow^ TopWindow][@(0.0.255) `&]_[* Sizeable]( +[@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2; Indicates whether TopWindow should be resizeable by user.&] +[s7; [%-*C@3 b]-|True to set.&] +[s7; [*/ Return value]-|`*this.&] +[s3; &] +[s4;%- &] +[s5;:TopWindow`:`:NoSizeable`(`):%- [_^TopWindow^ TopWindow][@(0.0.255) `&]_[* NoSizeable]( +)&] +[s2; Same as Sizeable(false).&] +[s7; [*/ Return value]-|`*this.&] +[s3; &] +[s4;%- &] +[s5;:TopWindow`:`:IsSizeable`(`)const:%- [@(0.0.255) bool]_[* IsSizeable]()_[@(0.0.255) con +st]&] +[s7; [*/ Return value]-|Value&] +[s3; &] +[s4;%- &] +[s5;:TopWindow`:`:MinimizeBox`(bool`):%- [_^TopWindow^ TopWindow][@(0.0.255) `&]_[* Minimiz +eBox]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2; Sets TopWindow to have a minimize box.&] +[s7; [%-*C@3 b]-|true to set.&] +[s7; [*/ Return value]-|`*this.&] +[s3; &] +[s4;%- &] +[s5;:TopWindow`:`:MaximizeBox`(bool`):%- [_^TopWindow^ TopWindow][@(0.0.255) `&]_[* Maximiz +eBox]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2; Sets TopWindow to have a maximize box.&] +[s7; [%-*C@3 b]-|true to set.&] +[s7; [*/ Return value]-|`*this.&] +[s3; &] +[s4;%- &] +[s5;:TopWindow`:`:Zoomable`(bool`):%- [_^TopWindow^ TopWindow][@(0.0.255) `&]_[* Zoomable]( +[@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2; Sets TopWindow to be Zoomable `- to have maximize/minimize flags, +if supported by host platform. Same as MinimizeBox(b).MaximizeBox(b).&] +[s7; [%-*C@3 b]-|True to set.&] +[s7; [*/ Return value]-|`*this.&] +[s3; &] +[s4;%- &] +[s5;:TopWindow`:`:NoZoomable`(`):%- [_^TopWindow^ TopWindow][@(0.0.255) `&]_[* NoZoomable]( +)&] +[s2; Same as Zoomable(false).&] +[s7; [*/ Return value]-|`*this.&] +[s3; &] +[s4;%- &] +[s5;:TopWindow`:`:IsZoomable`(`)const:%- [@(0.0.255) bool]_[* IsZoomable]()_[@(0.0.255) con +st]&] +[s7; [*/ Return value]-|Value of Zoomable flag.&] +[s3; &] +[s4;%- &] +[s5;:TopWindow`:`:Background`(const PaintRect`&`):%- [_^TopWindow^ TopWindow][@(0.0.255) `& +]_[* Background]([@(0.0.255) const]_[_^PaintRect^ PaintRect][@(0.0.255) `&]_[*@3 prect])&] +[s2; Sets PaintRect that will be used to paint TopWindow background. +Default PaintRect paints background with SColorFace.&] +[s7; [%-*C@3 prect]-|PaintRect.&] +[s7; [*/ Return value]-|`*this.&] +[s3; &] +[s4;%- &] +[s5;:TopWindow`:`:GetBackground`(`)const:%- [@(0.0.255) const]_[_^PaintRect^ PaintRect][@(0.0.255) `& +]_[* GetBackground]()_[@(0.0.255) const]&] +[s2; Returns active PaintRect used to paint TopWindow background.&] +[s7; [*/ Return value]-|PaintRect.&] +[s3; &] +[s4;%- &] +[s5;:TopWindow`:`:ToolWindow`(bool`):%- [_^TopWindow^ TopWindow][@(0.0.255) `&]_[* ToolWind +ow]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2; Makes TopWindow appear with thin caption, if supported by host +platform. Must be set before opening.&] +[s7; [%-*C@3 b]-|True to set the flag.&] +[s7; [*/ Return value]-|`*this.&] +[s3; &] +[s4;%- &] +[s5;:TopWindow`:`:NoToolWindow`(`):%- [_^TopWindow^ TopWindow][@(0.0.255) `&]_[* NoToolWind +ow]()&] +[s2; Same as ToolWindow(false).&] +[s7; [*/ Return value]-|`*this.&] +[s3; &] +[s4;%- &] +[s5;:TopWindow`:`:IsToolWindow`(`)const:%- [@(0.0.255) bool]_[* IsToolWindow]()_[@(0.0.255) c +onst]&] +[s7; [*/ Return value]-|Value of ToolWindow flag.&] +[s3; &] +[s4;%- &] +[s5;:TopWindow`:`:TopMost`(bool`,bool`):%- [_^TopWindow^ TopWindow][@(0.0.255) `&]_[* TopMo +st]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true], [@(0.0.255) bool]_[*@3 stay`_top]_`=_[@(0.0.255) t +rue])&] +[s2; Makes window stay over any other window. Returns `*this.&] +[s3; &] +[s4;%- &] +[s5;:TopWindow`:`:NoTopMost`(`):%- [_^TopWindow^ TopWindow][@(0.0.255) `&]_[* NoTopMost]()&] +[s2; Same as TopMost(false).&] +[s3; &] +[s4;%- &] +[s5;:TopWindow`:`:IsTopMost`(`)const:%- [@(0.0.255) bool]_[* IsTopMost]()_[@(0.0.255) const +]&] +[s2; Value of TopMost flag.&] +[s3; &] +[s4;%- &] +[s5;:TopWindow`:`:FullScreen`(bool`):%- [_^TopWindow^ TopWindow][@(0.0.255) `&]_[* FullScre +en]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2; Sets window to fullscreen if [%-*@3 b] is true, otherwise sets +window to regular state. Returns `*this.&] +[s3; &] +[s4;%- &] +[s5;:TopWindow`:`:IsFullScreen`(`)const:%- [@(0.0.255) bool]_[* IsFullScreen]()_[@(0.0.255) c +onst]&] +[s2; [*/ Return value]-|True if window is in fullscreen mode.&] +[s3;%- &] +[s4;%- &] +[s5;:TopWindow`:`:FrameLess`(bool`):%- [_^TopWindow^ TopWindow][@(0.0.255) `&]_[* FrameLess +]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2; [%-*@3 b].&] +[s3; &] +[s4;%- &] +[s5;:TopWindow`:`:IsFrameLess`(`)const:%- [@(0.0.255) bool]_[* IsFrameLess]()_[@(0.0.255) c +onst]&] +[s2; &] +[s3;%- &] +[s4;%- &] +[s5;:TopWindow`:`:Urgent`(bool`):%- [_^TopWindow^ TopWindow][@(0.0.255) `&]_[* Urgent]([@(0.0.255) b +ool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2; Calling Urgent(true) causes title of inactive window and its +item in taskbar to flash to catch users attention. The effect +lasts until either Urgent(false) is called or the window is taken +to foreground. If Urgent(true) is called on currently active +window then it has no effect.&] +[s2; &] +[s2; Note: Most of the window managers on X11 do support this feature, +but there still might be some obscure ones that simply ignore +this setting.&] +[s3; &] +[s4;%- &] +[s5;:TopWindow`:`:IsUrgent`(`)const:%- [@(0.0.255) bool]_[* IsUrgent]()_[@(0.0.255) const]&] +[s2; [*/ Return value]-|True if window tries to catch users attention +by flashing.&] +[s3;%- &] +[s4;%- &] +[s5;:TopWindow`:`:NoAccessKeysDistribution`(`):%- [_^TopWindow^ TopWindow][@(0.0.255) `&]_ +[* NoAccessKeysDistribution]()&] +[s2; Disables distribution of access keys. Normally, TopWindow tries +to assign access`-keys (also known as `"hot`-keys`") to all of +its child windows before opening. This method disables this behaviour.&] +[s7; [*/ Return value]-|`*this.&] +[s3; &] +[s4;%- &] +[s5;:TopWindow`:`:CloseBoxRejects`(bool`):%- [_^TopWindow^ TopWindow][@(0.0.255) `&]_[* Clo +seBoxRejects]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2; When active, pressing window title close button always rejects +the dialog. When not active, the action depends on Acceptors/Rejectors +present, performing first of IDCANCEL `-> reject, IDNO `-> reject, +IDEXIT `-> accept, IDYES `-> Accept, and IDOK `-> Accept as default +action if nothing else is present.&] +[s3; &] +[s4;%- &] +[s5;:TopWindow`:`:Icon`(const Image`&`):%- [_^TopWindow^ TopWindow][@(0.0.255) `&]_[* Icon]( +[@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 m])&] +[s2; Defines icon for TopWindow that is usually displayed in window +caption (platform specif).&] +[s7; [%-*C@3 m]-|Icon.&] +[s7; [*/ Return value]-|`*this.&] +[s3; &] +[s4;%- &] +[s5;:TopWindow`:`:LargeIcon`(const Image`&`):%- [_^TopWindow^ TopWindow][@(0.0.255) `&]_[* L +argeIcon]([@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 m])&] +[s2; Defines `"large`" icon for TopWindow. It can be displayed e.g. +in task switcher and other places (platform specific).&] +[s7; [%-*C@3 m]-|Icon.&] +[s7; [*/ Return value]-|`*this.&] +[s3; &] +[s4;%- &] +[s5;:TopWindow`:`:Icon`(const Image`&`,const Image`&`):%- [_^TopWindow^ TopWindow][@(0.0.255) `& +]_[* Icon]([@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 smallicon], +[@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 largeicon])&] +[s2; Defines both `"small`" and `"large`" icons for TopWindow.&] +[s7; [%-*C@3 smallicon]-|Small icon.&] +[s7; [%-*C@3 largeicon]-|Large icon.&] +[s7; [*/ Return value]-|`*this.&] +[s3; &] +[s4;%- &] +[s5;:TopWindow`:`:SerializePlacement`(Stream`&`,bool`):%- [@(0.0.255) void]_[* SerializeP +lacement]([_^Stream^ Stream][@(0.0.255) `&]_[*@3 s], [@(0.0.255) bool]_[*@3 reminimize]_`=_ +[@(0.0.255) false])&] +[s2; Serializes current placement of TopWindow. It is platform specific, +however information can include screen position in `"normal`" +state and current status (maximized, minimized, normal).&] +[s7; [%-*C@3 s]-|Stream.&] +[s7; [%-*C@3 reminimize]-|If false and loading the information from +the stream, minimized state is not restored.&] +[s3; &] +[s4;%- &] +[s5;:TopWindow`:`:TopWindow`(`):%- [* TopWindow]()&] +[s2; Constructor.&] +[s3; &] +[s4;%- &] +[s5;:TopWindow`:`:`~TopWindow`(`):%- [@(0.0.255) `~][* TopWindow]()&] +[s2; Destructor.&] +[s3; &] [s0; ]] \ No newline at end of file diff --git a/uppsrc/CtrlCore/src.tpp/Zooming$en-us.tpp b/uppsrc/CtrlCore/src.tpp/Zooming_en-us.tpp similarity index 100% rename from uppsrc/CtrlCore/src.tpp/Zooming$en-us.tpp rename to uppsrc/CtrlCore/src.tpp/Zooming_en-us.tpp diff --git a/uppsrc/CtrlCore/srcdoc.tpp/AboutChameleon$en-us.tpp b/uppsrc/CtrlCore/srcdoc.tpp/AboutChameleon_en-us.tpp similarity index 100% rename from uppsrc/CtrlCore/srcdoc.tpp/AboutChameleon$en-us.tpp rename to uppsrc/CtrlCore/srcdoc.tpp/AboutChameleon_en-us.tpp diff --git a/uppsrc/CtrlCore/srcdoc.tpp/AboutFrames$en-us.tpp b/uppsrc/CtrlCore/srcdoc.tpp/AboutFrames_en-us.tpp similarity index 98% rename from uppsrc/CtrlCore/srcdoc.tpp/AboutFrames$en-us.tpp rename to uppsrc/CtrlCore/srcdoc.tpp/AboutFrames_en-us.tpp index 098de3c76..0273e798e 100644 --- a/uppsrc/CtrlCore/srcdoc.tpp/AboutFrames$en-us.tpp +++ b/uppsrc/CtrlCore/srcdoc.tpp/AboutFrames_en-us.tpp @@ -1,1186 +1,1186 @@ -TITLE("About Frames") -COMPRESSED -120,156,172,188,137,115,226,89,126,39,248,175,40,162,189,222, -234,118,185,34,165,188,171,98,34,108,183,103,118,28,225,245, -78,184,61,49,177,209,209,177,157,157,165,238,206,117,117,102, -109,102,86,87,219,51,118,32,129,64,18,18,32,113,131,196, -141,0,33,113,8,113,8,4,226,144,184,239,251,70,2,113, -95,226,22,247,254,80,102,85,103,87,183,103,236,8,235,224, -120,239,123,191,247,126,63,62,223,239,123,252,120,97,238,143, -254,232,222,199,247,190,119,239,127,241,243,233,95,46,254,252, -217,87,95,188,253,201,143,191,88,120,242,228,179,23,143,239, -61,248,236,217,252,227,207,254,175,167,159,253,243,63,255,243, -39,79,159,46,124,6,72,154,7,36,205,223,123,112,127,126, -97,126,254,193,189,123,15,22,30,207,63,124,122,239,233,195, -39,243,79,238,221,127,252,96,225,225,227,123,15,63,253,242, -217,235,103,191,250,201,143,159,61,185,255,217,15,254,246,17, -192,181,240,241,195,239,221,159,191,63,127,111,254,209,194,3, -128,234,222,253,123,11,15,230,23,30,206,63,121,242,96,254, -241,195,39,247,159,62,122,244,233,243,103,95,190,125,241,234, -229,79,126,252,179,25,31,192,117,31,224,186,247,248,201,163, -7,243,0,207,131,135,11,247,31,63,124,0,240,62,120,48, -63,15,188,158,127,248,248,209,227,199,159,190,125,241,246,139, -69,128,103,254,209,227,207,158,61,88,248,236,135,0,227,131, -143,31,125,15,48,110,225,49,192,249,96,225,193,163,7,247, -159,44,220,159,127,178,176,240,232,233,253,7,79,31,0,86, -207,47,124,250,226,237,34,96,227,207,0,150,25,27,192,245, -16,80,247,224,225,131,249,251,64,48,30,60,126,120,31,160, -122,12,60,63,184,247,116,126,1,208,249,228,222,195,135,128, -186,197,223,124,19,161,89,112,0,182,71,128,178,133,199,15, -103,196,79,30,60,153,191,255,248,201,194,131,133,71,11,128, -250,123,143,1,15,103,186,31,126,250,249,226,155,231,0,219, -253,133,249,207,222,2,6,125,246,195,63,123,248,217,60,192, -252,248,227,199,223,91,184,247,244,222,194,163,199,79,1,125, -128,169,128,183,247,159,62,157,191,255,4,208,247,96,254,225, -189,249,251,159,62,127,245,249,204,195,133,135,247,238,207,20, -62,1,134,224,17,32,248,46,30,15,31,205,3,230,46,220, -127,2,104,124,60,127,255,62,240,248,240,193,147,199,159,190, -89,156,13,194,219,87,175,127,242,227,31,252,217,71,247,62, -185,247,201,194,195,135,223,7,184,159,2,220,79,238,63,184, -127,255,193,163,167,15,230,239,221,7,148,0,34,30,204,98, -245,232,30,48,138,243,15,23,158,124,250,179,103,111,0,141, -111,31,204,130,250,195,63,153,159,127,60,27,249,217,36,2, -194,126,255,201,195,251,128,242,71,192,3,48,162,128,135,247, -129,216,44,60,125,240,228,254,253,39,247,62,125,254,197,179, -55,111,62,8,208,15,102,94,206,207,127,60,63,255,189,199, -179,184,62,188,191,240,224,233,44,58,247,23,128,0,47,60, -122,248,116,30,136,240,195,71,15,238,45,124,250,122,241,255, -251,234,197,235,197,95,45,190,4,66,252,2,80,254,217,55, -163,243,126,14,206,154,102,226,22,62,158,95,0,102,225,195, -71,143,238,205,226,245,16,152,10,11,247,31,2,1,191,55, -255,228,1,96,16,240,11,12,240,219,247,211,240,110,106,204, -166,197,252,253,143,231,239,127,239,233,194,131,251,128,29,79, -31,60,0,66,0,240,207,63,157,159,159,191,247,4,248,5, -252,2,2,115,55,49,230,129,217,251,126,50,205,63,248,120, -254,193,247,30,3,179,22,24,159,167,15,102,74,159,222,159, -197,109,1,136,250,194,163,123,15,129,240,47,188,227,90,152, -5,123,225,143,128,112,207,47,60,153,253,207,2,62,255,240, -227,121,96,246,3,118,205,63,124,8,248,122,31,136,240,194, -19,192,223,135,64,200,239,223,205,232,249,199,79,62,253,155, -197,175,223,252,229,179,183,139,239,103,201,15,126,248,71,119, -65,127,244,241,252,163,239,221,155,113,63,124,242,20,24,181, -249,7,179,136,221,127,240,224,233,194,211,251,247,31,46,60, -125,120,255,209,61,32,114,111,222,173,220,25,235,108,249,220, -45,189,247,34,30,127,60,255,24,88,71,128,119,15,31,2, -254,222,49,1,190,62,158,159,153,177,240,228,233,163,153,223, -239,69,252,244,79,191,120,241,114,102,3,48,25,62,123,55, -254,63,248,118,2,60,1,22,200,147,39,143,238,221,127,10, -196,1,112,255,222,67,96,106,3,75,255,9,48,176,192,184, -46,0,243,126,182,246,159,255,253,179,95,44,254,244,79,223, -47,204,255,254,255,252,211,255,246,31,255,230,79,255,235,143, -230,126,252,6,88,102,127,254,179,87,95,189,157,251,79,192, -192,44,190,249,227,159,252,248,205,189,207,230,222,63,253,199, -103,207,127,57,247,95,127,250,39,63,253,147,185,31,190,125, -253,197,220,71,95,191,248,252,23,139,111,191,63,247,203,103, -111,230,94,189,92,156,123,245,122,238,87,175,94,47,206,253, -252,142,249,147,247,66,230,158,1,77,175,126,246,255,46,62, -127,251,102,238,243,197,215,47,126,189,248,57,64,242,234,87, -119,82,238,104,230,238,38,229,220,219,95,62,123,59,247,243, -87,175,127,53,247,236,203,47,23,129,185,241,242,249,226,220, -179,151,0,245,87,47,159,207,174,60,207,190,120,241,246,31, -230,94,253,124,38,242,217,220,207,22,223,126,189,184,248,114, -14,176,119,241,245,59,147,126,246,234,53,160,225,142,231,5, -160,237,215,47,22,191,254,228,119,157,248,208,166,25,45,96, -203,140,122,113,230,219,204,143,25,219,139,151,159,47,254,230, -147,119,18,103,109,207,190,248,250,217,63,188,121,231,214,220, -215,47,222,254,242,29,197,220,189,247,138,230,94,188,153,251, -234,205,87,207,190,248,226,31,128,103,64,226,219,87,115,95, -190,126,245,235,23,159,47,2,14,63,127,5,44,115,192,233, -111,140,3,204,159,73,254,100,238,175,222,189,152,251,252,21, -96,208,203,87,111,231,94,46,190,227,253,229,179,95,207,252, -254,135,223,103,254,248,189,17,247,230,158,63,123,9,4,96, -238,205,226,219,25,199,223,124,245,197,187,72,126,244,125,32, -236,192,56,44,254,230,217,175,190,252,98,241,227,185,31,189, -5,248,159,255,45,16,252,185,159,205,4,222,221,65,238,188, -250,128,103,238,217,123,239,238,125,250,65,180,128,139,231,159, -254,143,191,123,245,229,127,3,188,125,245,245,28,224,249,203, -207,190,109,255,64,238,115,192,137,223,118,204,222,125,242,195, -87,95,188,122,253,209,143,254,250,237,15,255,225,217,203,239, -255,182,19,16,241,201,159,127,254,249,71,119,68,63,122,241, -143,139,255,229,213,155,143,190,255,29,130,31,45,190,157,201, -253,232,222,199,115,192,31,112,245,188,123,248,14,209,223,126, -245,242,163,111,155,126,103,136,255,195,220,159,253,217,139,95, -1,51,252,211,71,143,22,254,24,88,0,171,224,18,8,2, -2,129,150,71,83,224,17,116,11,219,169,198,135,118,127,168, -77,129,221,168,68,32,89,192,83,101,147,14,145,235,91,235, -209,17,230,230,16,177,197,88,229,138,204,101,20,8,99,116, -195,184,1,183,172,20,59,28,179,19,4,149,15,102,73,200, -98,21,163,156,140,57,46,166,249,82,153,172,170,57,34,59, -116,209,51,153,35,4,190,144,175,251,87,148,246,184,74,219, -203,105,15,52,161,253,250,209,89,106,71,149,79,10,136,218, -93,162,213,100,17,76,174,201,100,21,76,149,23,186,118,228, -74,48,120,53,121,166,175,241,18,201,54,255,220,172,129,91, -138,55,110,239,229,214,186,106,133,116,200,184,220,142,120,66, -244,234,182,221,121,5,63,24,249,21,13,150,30,125,196,166, -104,189,120,173,117,183,55,49,246,120,167,212,99,41,234,66, -159,17,84,52,190,173,56,231,198,151,216,190,46,163,143,206, -55,118,46,43,14,162,77,18,215,147,192,50,221,214,132,16, -109,215,171,88,194,94,76,60,188,132,81,39,43,146,178,150, -124,25,55,128,45,245,13,210,222,153,90,81,18,25,35,83, -68,206,161,98,66,73,137,203,124,237,70,209,163,246,182,232, -16,245,237,4,179,195,187,205,169,193,171,27,40,209,90,178, -131,6,181,86,174,167,155,108,56,247,182,189,156,56,23,76, -8,198,177,252,202,138,32,76,21,251,208,141,252,25,15,26, -23,69,142,87,122,206,75,112,224,168,80,63,130,4,147,212, -48,57,189,164,175,226,28,93,99,159,0,101,49,247,26,184, -115,174,234,32,207,218,199,186,195,195,205,91,247,37,118,221, -85,180,111,168,81,244,238,50,220,188,106,148,197,55,43,59, -160,160,235,202,18,219,114,128,105,168,46,194,148,52,59,119, -194,87,237,100,204,221,241,69,176,61,181,50,33,79,140,55, -84,4,245,105,215,18,13,183,59,224,173,92,154,188,213,9, -49,28,227,148,114,159,175,151,217,244,37,92,175,81,102,43, -120,29,140,191,195,227,21,46,210,76,12,33,97,69,195,48, -219,230,53,135,89,113,24,41,168,2,234,184,79,95,198,181, -74,180,86,172,166,188,222,190,52,47,111,51,111,32,83,184, -112,205,20,79,79,93,89,147,112,79,169,135,41,203,133,44, -170,34,23,219,42,4,38,11,178,19,14,211,96,48,109,232, -58,117,233,33,42,87,118,16,206,74,191,175,5,181,125,182, -233,161,125,66,40,38,189,154,243,212,114,178,113,121,194,38, -105,107,220,107,122,195,86,186,189,170,174,56,78,141,195,173, -21,84,254,166,176,114,51,74,67,215,53,251,210,192,105,22, -51,168,76,73,188,41,181,200,217,202,73,109,254,1,79,119, -62,221,46,130,54,143,26,214,113,246,186,42,87,56,133,8, -154,41,195,132,178,47,111,150,200,35,7,41,36,181,107,124, -40,104,136,161,169,178,151,147,60,173,87,209,10,83,10,181, -74,159,61,182,228,91,129,102,18,207,84,39,105,129,10,170, -199,15,173,169,130,240,88,213,75,147,173,251,87,165,254,182, -120,79,97,73,19,202,33,34,49,20,61,189,86,164,77,49, -135,174,37,226,94,211,66,233,20,228,228,214,228,169,119,97, -134,162,105,205,80,106,136,55,73,174,10,197,96,78,214,78, -53,135,163,212,141,188,232,58,10,131,215,185,35,68,13,163, -44,64,221,240,1,210,174,30,55,192,242,233,72,120,83,213, -244,16,237,29,229,192,218,17,233,58,205,222,110,139,77,202, -183,98,203,187,174,90,235,180,220,20,157,6,4,114,108,148, -44,88,103,41,55,211,1,82,22,46,102,75,203,65,234,122, -11,205,10,109,94,212,67,185,148,187,58,130,187,157,147,198, -222,228,250,124,111,69,72,25,136,216,181,240,86,213,11,119, -36,55,175,249,133,252,36,132,70,145,79,186,209,32,146,140, -237,117,211,180,252,200,50,202,140,183,122,67,164,38,212,19, -115,66,67,100,189,222,111,169,45,157,75,121,43,11,85,154, -224,57,80,91,51,8,85,111,247,188,98,97,43,158,12,179, -2,249,181,145,234,72,105,195,203,179,101,251,176,208,56,175, -20,42,218,186,46,100,232,136,142,108,254,224,41,26,29,17, -138,69,19,92,231,164,20,247,237,202,164,131,84,99,207,40, -172,241,210,209,240,21,36,190,177,170,232,98,93,75,177,139, -156,1,159,156,244,121,121,169,90,144,234,7,85,169,112,241, -118,243,220,50,57,138,215,14,196,213,186,0,83,106,178,149, -144,157,138,45,80,174,96,165,252,3,182,45,218,220,174,34, -5,228,141,129,187,232,91,74,50,83,252,193,165,114,13,173, -149,209,64,248,140,5,143,36,105,221,62,45,34,172,200,109, -198,122,202,101,6,89,173,141,234,32,182,188,232,234,116,208, -180,103,60,245,171,252,48,117,58,160,20,4,212,209,186,198, -70,178,102,19,23,222,205,93,93,156,200,174,197,4,229,152, -210,26,212,44,143,173,194,233,152,16,32,148,70,26,69,177, -61,89,214,100,248,123,204,228,145,204,127,129,28,168,221,195, -91,10,181,64,140,66,153,66,251,168,116,227,175,169,115,83, -38,59,115,5,178,42,76,83,120,17,11,165,228,50,185,67, -24,243,194,165,171,67,41,161,174,246,48,147,51,236,147,5, -177,56,174,130,104,7,189,236,211,120,55,122,124,51,242,48, -124,39,80,250,224,160,182,68,49,97,88,170,188,180,130,42, -46,119,210,43,250,124,230,70,230,71,46,5,2,217,184,218, -55,174,113,57,196,186,132,134,55,64,135,140,122,164,177,177, -102,88,11,28,16,211,236,100,80,102,55,177,109,212,242,161, -249,88,139,17,40,170,230,83,153,160,73,98,244,10,252,80, -44,145,25,172,108,155,132,72,188,43,21,62,149,148,174,77, -84,120,58,28,225,99,54,75,169,50,200,88,23,171,227,66, -181,105,178,47,131,109,136,110,226,242,64,187,198,189,138,187, -109,60,77,27,26,9,198,137,193,137,97,153,125,233,169,55, -89,20,181,166,185,95,58,220,170,18,146,200,1,236,54,148, -57,72,247,219,12,190,124,112,66,198,211,132,201,75,161,224, -250,150,13,97,131,29,106,84,18,220,202,146,106,171,231,88, -254,149,185,126,177,212,41,90,11,13,97,101,243,194,139,238, -107,142,91,25,241,141,64,81,196,226,14,235,91,228,171,156, -169,183,7,145,156,172,81,53,7,84,70,65,92,130,97,124, -26,55,216,136,221,237,40,200,96,172,139,125,128,206,197,107, -4,151,149,131,86,118,215,225,59,76,90,118,120,120,14,19, -185,55,2,130,36,178,39,218,103,164,147,253,102,191,71,103, -54,139,18,48,52,162,38,95,85,55,47,20,121,129,163,22, -28,106,29,112,86,26,115,226,213,217,45,34,131,242,232,60, -210,202,196,228,89,227,244,168,189,93,58,100,15,146,188,137, -187,151,158,164,122,222,150,91,231,61,35,28,146,182,156,234, -118,54,59,136,187,87,14,74,13,88,64,182,71,115,40,229, -30,132,56,181,105,68,69,200,215,150,245,246,173,160,124,202, -57,79,198,74,225,65,6,66,15,107,108,151,251,190,222,117, -102,231,132,203,79,82,206,28,53,66,174,110,35,7,41,210, -170,79,124,129,118,11,3,203,3,170,36,42,174,45,37,227, -28,50,173,126,174,102,154,116,46,7,62,50,118,200,119,91, -70,72,31,58,244,237,164,105,202,9,148,4,61,15,143,55, -97,61,142,204,160,48,16,76,188,44,30,14,94,43,221,50, -33,144,177,82,238,128,157,236,140,139,107,163,27,52,25,94, -221,223,92,217,39,69,92,206,227,90,170,218,195,156,171,146, -235,123,86,168,37,237,204,95,75,202,123,99,220,104,191,236, -183,213,141,218,11,254,46,87,222,232,113,97,59,114,143,235, -162,224,118,81,51,198,52,59,143,192,48,246,67,133,13,240, -102,26,170,217,111,200,32,75,54,74,109,217,193,194,151,228, -142,112,47,27,235,225,185,254,118,167,124,221,42,153,32,221, -142,189,131,179,55,44,215,142,109,73,70,21,44,156,222,164, -175,198,92,249,69,144,206,138,6,212,92,36,132,155,175,177, -9,187,248,83,225,46,69,201,153,200,215,185,103,155,166,66, -194,41,135,65,117,71,6,133,29,126,206,85,202,189,244,155, -53,249,113,114,9,164,141,245,237,196,224,81,54,189,214,237, -120,171,70,68,86,46,180,97,202,33,171,106,199,183,27,195, -43,237,240,110,64,187,3,171,150,77,234,93,135,122,122,62, -42,108,249,193,92,232,234,240,128,64,81,19,176,214,193,109, -134,156,109,71,229,50,9,111,223,113,109,160,133,245,219,192, -93,9,165,27,193,233,122,130,137,169,15,56,12,103,6,66, -125,112,133,91,155,134,184,42,196,242,217,5,203,85,19,196, -33,232,29,52,232,116,144,197,155,53,121,167,136,28,138,246, -96,165,108,149,191,19,224,161,157,235,231,161,126,133,219,59, -155,132,114,121,104,67,227,29,132,37,54,134,6,187,75,94, -26,68,240,158,104,125,5,158,183,91,109,45,105,58,165,182, -98,116,42,61,12,8,94,111,31,76,54,86,108,68,103,88, -187,6,1,209,43,38,60,201,130,72,134,57,232,155,61,5, -47,134,130,40,131,241,51,200,166,92,197,138,116,100,29,118, -193,11,143,101,218,12,94,224,232,16,83,179,219,170,88,94, -51,40,91,65,56,214,156,219,138,82,65,230,110,236,148,235, -36,124,199,83,133,51,53,67,34,211,215,166,13,150,68,148, -131,186,174,126,133,35,11,242,190,6,131,12,147,67,233,173, -115,79,70,181,149,223,44,25,201,98,194,114,21,73,95,109, -31,80,77,83,234,70,49,209,111,133,39,220,65,229,180,33, -222,207,182,182,225,226,136,151,76,138,39,148,230,146,157,132, -129,163,207,151,21,188,189,250,250,49,61,104,37,64,57,123, -23,225,224,249,200,53,36,220,120,14,150,58,141,166,128,73, -43,136,113,189,242,161,9,132,221,90,206,203,131,123,49,67, -167,166,223,0,110,8,125,109,81,162,63,244,145,243,187,241, -203,173,225,81,181,100,27,156,221,226,42,16,92,229,4,115, -24,145,196,36,249,241,33,25,155,194,157,100,236,229,156,31, -152,120,82,14,210,68,241,32,235,169,147,124,215,238,77,141, -201,44,203,112,223,115,123,219,217,185,16,82,236,225,227,65, -101,23,201,60,24,240,208,88,46,213,224,144,236,226,4,253, -235,64,237,28,87,11,94,240,251,189,102,106,88,54,226,203, -249,177,98,26,103,122,88,176,51,39,229,198,200,202,210,153, -22,52,194,183,119,78,177,173,169,41,194,145,118,141,213,160, -30,34,149,245,214,74,198,201,146,25,169,4,124,191,31,63, -75,52,34,122,79,160,33,17,212,163,165,100,137,154,116,186, -244,157,176,135,72,128,102,216,167,105,105,66,120,197,60,84, -133,218,107,209,161,99,180,157,113,45,171,42,214,229,114,227, -20,138,76,115,15,67,165,201,244,184,40,210,82,121,189,92, -200,65,30,123,200,2,222,217,152,130,164,232,212,224,8,175, -210,220,135,35,58,106,151,55,122,70,10,108,210,69,141,32, -89,115,9,221,59,82,221,76,9,106,34,95,107,8,198,221, -208,53,22,33,31,105,103,91,82,45,225,70,124,179,236,195, -143,245,124,235,214,238,141,150,189,161,172,51,40,145,58,149, -190,39,182,230,208,212,177,218,223,11,242,39,172,16,202,195, -136,165,72,91,166,181,171,233,134,33,95,8,94,235,170,62, -176,35,113,218,217,81,194,249,137,173,148,178,108,57,186,37, -199,227,78,226,213,96,195,25,55,110,47,21,212,22,21,71, -29,183,247,32,88,237,86,51,40,69,133,45,71,217,238,225, -142,118,235,0,26,88,178,21,116,106,57,77,206,218,145,85, -150,55,206,146,163,150,105,106,160,120,92,91,133,101,139,22, -185,19,150,134,173,14,117,206,120,80,57,145,243,52,245,13, -49,9,110,204,172,159,89,212,12,206,57,117,43,157,162,69, -213,94,56,54,25,246,154,225,12,209,185,125,74,181,180,205, -66,200,32,179,93,60,227,168,189,76,181,168,187,86,76,108, -170,9,215,122,132,23,110,172,67,139,142,45,74,113,37,102, -70,118,218,250,67,57,180,189,236,55,147,236,97,146,5,137, -109,235,185,166,113,82,116,229,233,173,73,204,200,246,169,89, -24,79,123,152,158,85,38,87,173,49,92,12,182,88,248,125, -117,116,119,147,96,5,132,108,37,185,186,78,218,107,22,174, -170,7,2,64,139,187,228,217,218,96,115,129,126,54,86,141, -42,123,206,76,131,6,11,239,164,171,85,244,180,137,105,20, -89,202,172,64,194,227,133,75,41,29,239,144,101,26,92,161, -189,199,76,192,112,19,138,34,1,132,41,160,109,51,30,217, -214,139,129,46,54,11,143,160,3,93,85,98,18,159,159,170, -80,56,10,64,112,123,238,114,140,103,47,8,198,45,38,222, -48,0,232,54,174,48,222,97,100,144,160,83,234,94,6,224, -105,76,125,179,54,77,9,88,231,166,1,11,111,180,148,143, -89,51,247,111,108,215,81,252,161,20,240,199,163,23,22,19, -199,170,1,82,210,46,12,195,102,33,155,53,104,239,22,116, -231,158,196,46,27,80,183,57,160,116,134,186,146,135,123,170, -27,208,253,204,58,59,190,186,55,26,226,44,200,8,16,207, -13,198,196,181,124,90,92,161,144,90,150,208,204,206,246,216, -182,4,92,116,213,87,86,120,24,228,228,110,19,174,236,132, -61,252,121,216,237,34,142,196,90,249,13,117,61,201,97,101, -194,75,105,146,90,207,137,30,35,125,154,196,129,74,147,181, -38,72,99,72,125,63,116,156,25,81,229,212,212,133,42,170, -178,107,234,93,117,152,138,87,82,70,116,87,172,49,81,70, -82,121,226,128,69,189,36,91,252,103,140,164,97,74,212,50, -217,220,17,146,13,225,161,41,223,64,183,247,72,238,255,126, -245,213,29,194,125,254,203,103,47,127,177,248,45,232,253,234, -205,139,151,191,152,251,241,15,230,0,136,120,7,93,127,50, -247,171,197,183,191,124,245,249,239,193,214,119,0,243,61,213, -71,127,245,242,205,55,47,191,11,54,255,0,142,252,215,0, -200,196,216,142,201,31,3,0,50,162,88,174,226,153,161,117, -169,198,231,239,142,116,248,101,13,156,47,162,45,175,31,52, -101,171,221,117,27,188,70,231,210,140,133,88,121,56,192,251, -234,199,65,150,186,236,59,182,224,109,86,210,113,30,206,150, -201,58,201,38,222,22,137,158,217,125,62,173,24,199,232,208, -4,42,137,106,75,5,215,123,142,57,28,82,243,44,79,137, -228,115,30,216,69,79,238,206,162,207,82,57,178,165,98,56, -232,169,134,87,253,148,50,43,82,212,194,157,204,145,128,89, -56,138,209,226,198,172,111,219,222,61,57,193,9,92,52,120, -204,209,218,219,106,83,58,88,129,243,250,122,208,133,199,121, -232,29,140,67,233,139,87,93,131,113,205,188,102,8,21,168, -250,139,150,165,85,128,52,237,233,109,54,90,167,92,82,29, -120,45,184,77,91,222,98,186,132,196,177,150,190,50,15,143, -121,247,249,39,158,72,120,237,2,206,165,172,158,87,8,235, -131,201,109,16,84,183,224,118,200,201,209,105,90,113,229,184, -130,244,2,80,185,198,193,152,226,163,215,182,33,19,154,188, -148,101,106,141,161,177,43,39,24,214,198,141,138,34,106,50, -147,59,27,52,173,118,143,149,214,238,130,174,183,117,78,143, -92,154,8,19,113,232,130,30,209,54,81,26,106,120,232,72, -75,8,173,91,180,55,145,152,21,164,67,27,19,138,198,178, -176,136,51,142,241,12,247,32,173,77,97,224,152,253,250,133, -87,238,212,75,105,91,145,142,1,37,184,133,226,83,254,253, -227,32,166,126,162,141,243,67,55,23,249,218,38,244,38,16, -42,104,143,208,167,181,220,237,152,118,123,208,52,65,245,100, -40,125,220,222,65,28,160,40,238,158,126,213,208,163,151,188, -235,124,211,169,18,220,27,215,54,212,4,205,233,32,90,41, -180,165,224,171,92,140,120,53,123,154,36,14,47,28,130,145, -82,30,203,41,107,39,136,94,118,155,183,158,60,97,171,175, -87,79,217,70,124,252,154,14,57,247,22,50,94,97,115,80, -64,92,8,203,203,242,161,122,127,187,16,223,223,241,19,182, -55,138,171,215,92,122,237,108,5,127,158,174,81,247,0,111, -12,222,200,102,54,33,61,62,90,45,138,13,240,42,203,168, -67,136,196,110,45,18,185,36,208,48,67,12,73,251,134,184, -155,97,229,243,224,37,247,161,101,40,151,103,124,122,60,246, -22,219,231,21,176,113,223,22,115,249,26,218,164,192,148,2, -8,54,152,98,114,66,220,233,245,228,252,132,150,92,218,113, -176,184,17,106,86,38,201,15,160,53,255,230,230,176,15,54, -57,168,209,136,181,232,66,43,163,90,240,105,151,62,218,166, -55,15,137,121,147,39,35,247,172,110,109,43,64,136,128,102, -47,80,222,155,250,114,52,104,128,209,97,47,179,147,188,208, -242,42,56,225,220,77,152,144,138,20,55,140,66,146,171,82, -232,149,205,82,29,101,131,147,186,87,166,25,73,206,131,36, -43,68,140,59,100,240,86,3,114,2,174,205,186,144,231,48, -7,181,114,125,197,52,212,163,116,138,244,196,170,61,44,49, -6,240,179,46,124,207,52,12,100,210,251,59,199,30,146,97, -149,82,11,28,28,198,229,149,234,192,185,29,165,141,214,135, -180,243,115,152,3,85,242,184,178,107,249,129,102,80,230,164, -144,169,226,248,50,220,83,173,113,18,194,192,73,114,124,216, -208,52,89,173,11,229,190,169,149,69,228,237,100,4,199,118, -14,101,12,7,9,129,91,2,22,134,195,105,241,158,140,37, -188,93,181,5,79,253,225,72,125,58,73,173,197,48,120,26, -117,188,173,26,180,174,138,199,81,117,218,128,37,92,233,216, -54,222,113,95,134,194,110,77,123,98,100,170,54,101,133,142, -148,137,131,131,2,26,172,206,243,115,192,141,88,19,74,181, -117,245,14,53,89,239,15,251,181,108,102,83,144,129,237,10, -175,130,138,164,12,76,107,85,87,172,38,73,22,193,12,178, -187,131,17,93,70,150,167,200,209,192,145,64,186,222,178,112, -248,20,230,238,254,110,225,112,154,99,81,58,197,237,0,214, -117,205,138,7,143,143,207,216,9,193,161,215,175,150,5,83, -124,88,242,54,160,142,216,119,211,112,252,197,242,50,130,89, -191,184,12,134,110,211,209,178,74,216,62,107,132,59,1,85, -52,111,27,238,156,29,137,215,76,214,243,129,222,54,212,157, -210,247,108,220,162,133,85,61,73,195,15,161,109,38,187,208, -41,119,161,113,95,148,120,142,84,174,3,104,110,68,190,64, -106,79,175,182,205,120,204,13,148,17,105,234,86,86,7,142, -210,18,124,35,146,44,175,81,82,237,12,62,172,202,112,139, -27,178,109,57,133,18,166,166,90,221,150,218,60,189,221,42, -76,52,83,144,148,87,228,110,33,113,160,85,41,116,146,82, -166,18,148,116,76,226,9,30,13,40,214,250,40,131,9,4, -8,55,82,218,36,237,44,54,129,207,85,219,106,41,255,240, -136,210,30,210,228,189,50,245,92,194,195,110,12,79,111,66, -96,14,174,157,226,34,73,136,149,37,171,42,51,17,238,1, -183,176,16,151,204,161,108,96,18,112,97,160,115,214,88,45, -185,119,201,94,182,114,67,115,112,74,44,28,92,240,35,253, -19,233,244,34,48,194,114,241,155,204,118,33,1,94,85,115, -45,184,156,180,237,67,1,8,146,103,231,92,55,200,60,224, -19,94,64,158,133,240,38,61,63,58,101,47,186,109,91,208, -97,234,40,210,56,88,211,53,98,88,222,136,152,12,158,230, -130,116,91,164,226,216,228,75,174,15,207,10,171,170,177,244, -10,113,32,63,190,40,51,107,98,245,169,238,48,31,50,228, -234,109,74,191,165,77,38,73,17,209,129,223,180,203,80,123, -64,155,87,148,65,132,50,64,228,111,249,59,34,189,190,81, -64,80,196,2,84,67,39,204,112,220,68,92,84,146,27,197, -54,197,184,56,59,101,206,11,213,234,43,153,103,47,230,171, -37,0,4,57,185,205,28,167,79,58,122,1,127,64,36,195, -104,65,131,16,118,112,29,102,67,36,108,199,249,42,127,41, -66,99,72,88,231,89,242,165,217,204,6,151,37,89,183,60, -19,41,195,33,227,147,33,233,68,76,149,19,82,103,39,90, -220,88,225,16,245,207,202,249,10,219,30,78,185,130,14,76, -167,208,41,130,121,212,194,82,102,192,232,30,145,13,251,20, -91,58,233,176,212,88,53,44,203,121,222,1,109,238,160,75, -218,129,111,21,234,78,193,55,132,73,121,222,28,80,176,6, -236,242,57,184,15,70,64,19,8,194,53,146,90,63,10,101, -209,39,45,92,7,234,133,213,162,2,55,230,96,187,153,135, -67,163,253,101,122,148,132,246,85,101,204,156,68,234,91,35, -39,141,212,235,18,172,163,17,150,20,48,10,25,81,198,25, -219,1,123,129,133,101,243,125,25,232,250,101,229,226,236,224, -200,50,138,118,14,200,117,194,16,203,61,223,176,160,15,236, -24,74,195,186,141,196,174,195,224,123,59,0,226,134,196,144, -32,194,113,199,117,44,216,206,182,50,149,147,86,5,186,119, -34,171,156,84,139,45,130,38,37,197,22,216,17,206,106,114, -89,230,237,105,207,133,164,96,109,247,220,69,45,4,129,43, -58,191,158,47,118,19,8,73,10,7,146,177,161,204,82,157, -95,167,131,176,242,176,185,198,59,175,241,48,141,29,47,102, -196,68,113,161,103,186,146,150,86,206,31,17,108,212,72,47, -15,34,135,83,178,75,161,205,231,182,15,142,7,205,94,238, -140,41,202,24,183,84,177,99,251,101,65,146,143,39,149,99, -56,17,146,66,171,175,5,203,66,197,17,184,160,238,14,251, -12,88,111,141,2,247,182,183,212,88,242,38,140,98,199,112, -49,66,15,113,176,77,142,140,226,153,226,42,110,25,119,16, -38,91,132,199,254,186,156,106,22,83,59,246,64,161,36,91, -207,121,29,136,253,172,189,147,243,56,219,215,174,188,132,193, -140,202,79,155,185,11,195,198,185,240,66,199,142,96,247,212, -92,200,185,171,196,182,115,119,79,133,227,154,50,54,158,194, -249,106,184,73,188,10,238,25,161,122,175,194,112,187,10,225, -19,8,16,94,96,133,72,130,209,68,180,27,105,149,34,189, -109,31,166,164,1,110,82,103,160,85,164,197,116,103,93,170, -16,90,60,82,99,86,31,165,131,114,154,82,42,42,235,55, -189,134,60,78,113,129,82,131,24,160,107,60,242,226,16,198, -244,54,14,228,101,201,134,179,106,196,244,130,129,53,33,25, -154,139,173,10,186,40,61,145,13,163,97,26,167,250,128,42, -222,56,193,52,16,48,101,206,50,61,73,83,117,176,75,211, -53,49,209,231,115,175,154,203,32,249,153,210,105,43,216,121, -221,214,122,105,76,77,30,68,235,220,29,115,27,103,60,177, -226,160,250,190,107,90,110,215,116,84,6,235,236,182,95,93, -6,83,133,8,230,128,120,59,62,175,171,225,118,34,58,139, -43,179,169,3,140,208,6,94,129,2,16,18,129,176,145,141, -109,27,17,228,44,204,32,100,123,223,132,183,34,82,133,20, -218,84,23,121,45,40,136,2,0,252,96,99,44,144,32,92, -198,36,75,242,226,82,191,169,174,91,183,237,231,100,136,79, -57,140,48,178,138,252,73,38,116,32,57,23,145,72,135,254, -83,147,77,6,235,143,193,85,126,95,175,137,177,208,29,26, -120,176,116,7,33,43,65,137,207,231,63,93,21,15,116,194, -118,205,60,192,85,242,167,78,203,173,36,7,101,84,1,224, -223,61,232,248,38,104,37,71,130,24,90,144,125,87,92,10, -19,28,85,162,85,241,30,41,188,190,173,92,15,70,233,155, -141,145,238,128,74,198,28,94,187,48,50,211,218,148,135,238, -59,182,112,157,210,85,74,173,27,31,129,252,35,232,121,54, -69,3,17,105,166,152,128,67,89,177,96,76,0,23,25,218, -53,150,18,100,183,105,20,107,130,192,114,168,160,114,19,110, -78,198,254,190,195,37,33,203,47,142,243,231,90,89,254,160, -228,76,133,167,219,226,75,85,155,16,116,28,247,241,222,92, -42,122,164,84,31,158,148,182,39,57,107,12,10,19,30,246, -199,129,94,67,41,204,40,220,46,249,69,185,115,105,236,49, -188,76,42,194,93,18,115,236,254,99,232,126,206,86,198,10, -10,129,154,191,138,19,20,119,213,161,80,43,22,108,118,99, -219,200,34,222,81,91,159,182,125,45,8,143,131,230,236,110, -192,168,81,12,161,179,47,102,151,218,122,102,62,205,65,76, -197,77,186,48,100,215,42,209,248,70,206,114,11,199,195,59, -28,124,211,81,38,51,18,41,57,90,237,206,10,7,184,61, -19,50,208,60,38,248,245,75,200,173,226,58,185,202,78,122, -106,232,1,41,194,50,225,53,144,48,182,31,202,244,41,27, -231,146,253,193,210,85,57,236,34,251,195,205,147,129,209,34, -101,167,124,5,6,145,181,107,238,163,125,180,72,155,75,181, -241,206,148,82,62,145,149,57,80,230,42,218,78,190,123,53, -220,16,13,76,200,84,108,112,19,163,236,93,238,176,125,1, -108,66,126,169,101,47,9,208,4,229,245,166,217,116,52,208, -47,75,74,21,13,169,201,58,91,33,25,249,22,242,30,73, -205,42,2,8,104,74,177,85,131,85,90,121,205,198,188,154, -18,57,80,167,91,103,144,185,184,155,178,108,168,113,45,16, -11,6,166,130,29,93,187,106,72,175,85,89,76,217,238,83, -153,113,171,231,117,178,51,199,111,38,174,123,218,194,218,206, -85,0,190,68,196,30,36,146,250,181,29,147,206,202,79,150, -36,30,53,26,68,164,135,220,112,129,57,220,217,135,13,40, -190,193,134,198,152,119,141,166,3,199,100,69,224,103,221,138, -229,205,14,182,40,69,170,209,27,187,142,233,68,73,205,216, -88,234,101,190,55,110,183,8,74,14,105,146,2,147,15,19, -131,29,100,181,231,5,83,175,140,88,164,177,174,243,195,181, -2,36,148,112,66,101,80,232,165,21,79,221,171,71,150,185, -176,1,87,222,0,183,7,25,46,158,232,70,56,7,75,5, -135,65,237,239,26,212,168,181,18,61,233,132,120,200,16,160, -45,93,133,18,109,204,18,125,39,137,234,136,82,240,115,167, -43,101,153,209,33,102,116,70,164,201,181,9,106,135,17,216, -210,38,61,41,106,223,244,142,163,52,117,31,16,173,243,249, -225,246,115,53,168,125,171,244,32,59,203,124,24,66,130,3, -1,253,152,84,103,249,0,54,166,148,196,244,164,25,210,49, -186,49,72,211,166,182,45,235,193,47,107,220,210,74,12,137, -29,170,253,128,232,85,114,137,78,41,173,164,221,12,100,199, -45,196,128,7,124,64,40,157,224,55,68,213,126,248,5,141, -82,58,93,137,9,125,99,97,226,220,61,35,128,48,44,131, -243,237,14,240,154,171,7,198,199,236,55,40,1,186,21,90, -50,236,40,116,148,103,150,181,14,11,232,211,211,162,211,88, -117,121,48,19,37,67,5,0,133,116,10,185,180,98,199,36, -60,113,82,25,16,186,226,60,222,30,40,84,36,26,101,114, -78,133,151,86,2,200,51,16,248,16,165,206,246,48,87,128, -22,197,32,92,23,172,236,195,152,208,210,202,134,15,121,134, -167,161,212,137,238,216,54,11,101,1,191,78,108,168,91,220, -97,254,140,130,56,225,194,88,3,58,118,56,74,29,21,71, -171,173,212,109,64,197,113,77,91,148,250,62,57,227,203,228, -100,224,75,255,246,104,137,100,172,181,117,72,69,117,76,240, -128,219,235,252,9,187,236,56,115,28,43,181,219,198,222,154, -114,115,51,105,205,15,140,190,115,193,25,203,51,12,105,84, -123,91,231,195,97,196,16,61,101,78,204,113,99,181,119,161, -57,245,215,87,72,120,121,166,223,142,230,137,170,62,139,186, -133,142,76,55,88,3,95,146,99,178,15,180,253,51,19,206, -164,252,14,200,252,155,87,111,23,223,213,156,191,91,136,126, -241,242,237,226,235,159,63,123,190,56,171,236,126,190,248,230, -197,47,94,46,126,62,247,230,213,59,234,23,0,46,125,246, -102,113,86,200,125,243,229,226,243,23,63,127,241,252,155,178, -242,71,95,188,248,251,197,185,223,194,205,187,2,241,171,183, -191,92,124,253,97,45,247,205,93,237,244,125,153,252,251,119, -165,243,23,47,129,198,89,185,27,16,250,14,237,190,171,152, -127,83,231,189,43,43,255,252,213,235,187,178,240,203,175,126, -245,179,223,22,146,191,229,125,243,9,160,249,189,182,153,129, -111,62,158,187,51,231,71,207,95,191,250,226,139,191,120,246, -250,3,107,222,233,158,123,254,234,229,219,103,47,94,206,80, -245,59,173,111,190,250,217,12,58,3,172,255,0,64,240,111, -10,210,95,205,188,5,172,124,231,211,183,182,126,9,8,154, -33,242,47,238,236,251,78,161,253,111,94,125,61,247,245,226, -157,253,207,62,159,21,217,127,47,12,63,127,47,109,238,213, -87,223,22,172,255,48,144,255,243,207,63,127,135,222,255,226, -139,103,207,255,254,223,23,200,207,42,193,152,187,74,240,74, -21,205,140,233,165,26,222,126,180,212,240,104,229,138,117,28, -131,166,165,9,117,110,63,65,183,171,231,233,217,84,89,66, -227,75,28,59,218,212,189,106,141,188,151,176,87,188,94,86, -36,118,140,148,242,134,230,154,172,120,56,45,144,4,155,171, -88,34,15,222,33,16,85,189,163,28,205,189,31,197,98,99, -145,84,221,185,219,170,231,78,221,196,181,54,244,154,210,107, -57,28,187,146,222,40,73,117,150,41,60,159,212,227,65,58, -204,67,35,24,157,130,110,53,5,233,118,19,184,76,146,32, -219,16,202,149,48,32,50,87,50,66,94,99,29,10,19,105, -67,219,251,187,183,238,34,202,217,175,139,138,72,70,20,219, -213,102,198,219,20,140,48,122,206,72,107,92,149,230,238,170, -0,172,40,226,246,45,146,213,72,112,163,185,115,233,88,179, -73,118,93,250,96,215,35,150,65,81,56,159,10,19,59,222, -166,78,253,133,157,84,26,151,80,43,148,237,219,66,9,87, -102,242,234,136,218,160,9,102,142,225,146,78,149,33,54,56, -87,69,242,91,48,165,49,206,113,175,234,38,74,221,180,62, -9,187,180,160,101,136,61,141,72,153,65,90,122,199,150,82, -174,113,247,97,238,139,93,74,99,67,221,69,59,175,65,197, -53,97,70,123,211,47,67,172,32,244,69,130,112,162,94,234, -217,24,26,11,10,21,30,95,82,215,97,235,192,71,253,8, -44,127,69,194,163,194,198,173,85,247,228,230,194,28,218,167, -139,170,193,50,221,125,128,137,123,81,132,33,93,95,69,30, -176,104,196,196,141,84,217,184,38,156,174,152,76,12,114,219, -72,175,16,186,167,168,228,174,72,79,96,202,233,229,210,145, -196,164,38,25,68,114,240,134,138,168,86,75,186,201,240,113, -199,224,201,27,203,30,224,201,200,210,57,58,129,171,169,11, -171,79,134,38,41,215,77,220,39,224,213,240,190,8,15,54, -228,122,84,217,189,99,36,27,229,133,163,250,250,164,187,203, -27,244,83,55,171,67,33,127,201,89,133,131,192,150,101,58, -220,26,64,108,157,226,147,219,72,76,67,148,110,138,144,62, -172,15,126,7,225,67,221,112,86,182,145,196,132,193,7,7, -110,131,129,182,196,23,30,23,219,9,253,70,13,223,29,141, -104,32,147,178,51,197,229,198,144,211,118,145,154,81,211,66, -254,166,5,177,142,34,91,155,253,2,135,125,42,234,174,194, -78,77,99,14,156,193,71,172,173,95,222,94,172,220,96,67, -197,147,86,86,59,117,75,183,196,131,169,152,32,187,245,199, -5,50,221,249,16,55,171,4,103,162,234,254,101,44,52,171, -4,211,77,25,246,172,18,188,76,30,109,238,247,56,246,201, -222,213,134,240,130,87,178,174,168,125,244,181,117,20,116,168, -28,164,198,112,127,163,45,109,251,235,179,10,48,178,118,28, -44,85,228,148,248,85,226,172,189,2,192,45,24,193,70,11, -102,172,94,187,50,11,74,68,214,170,236,50,20,161,140,93, -137,69,215,52,107,168,153,90,97,31,114,13,192,144,79,7, -193,179,194,32,110,95,217,59,201,25,69,219,48,114,29,46, -79,110,78,9,75,16,41,87,69,211,83,11,12,112,78,179, -42,229,214,111,51,96,87,253,108,146,129,213,187,195,179,97, -186,222,48,237,160,132,82,69,138,219,58,21,78,105,25,34, -184,203,9,245,98,212,227,48,149,207,65,145,172,149,77,192, -136,132,160,220,9,162,53,188,195,195,161,39,213,244,230,105, -70,235,0,62,69,104,106,62,234,74,23,46,31,75,243,204, -163,211,142,155,7,227,53,12,36,142,215,91,184,169,208,52, -211,158,187,225,114,215,194,101,98,63,81,203,37,215,150,40, -135,153,126,6,201,73,82,236,149,190,124,234,18,246,98,234, -134,191,206,119,56,143,240,72,69,146,43,57,11,231,33,90, -147,79,218,117,114,246,43,166,253,202,38,241,34,61,214,116, -46,115,20,215,197,160,27,207,82,243,2,202,210,46,0,226, -209,183,214,16,82,117,222,177,92,72,20,4,44,188,108,175, -71,240,252,227,192,217,230,161,244,102,93,222,232,112,93,56, -159,137,117,125,181,175,213,78,14,118,226,208,41,9,57,189, -9,182,212,125,225,78,103,34,72,54,178,21,250,176,190,225, -101,134,177,222,12,175,106,222,34,133,241,156,96,54,29,35, -11,146,37,94,252,122,95,19,243,81,168,241,163,154,21,87, -210,113,96,131,30,98,204,46,44,113,236,203,150,200,202,202, -169,101,210,111,208,150,33,234,14,104,197,153,193,165,148,120, -76,2,123,190,34,216,245,183,149,70,184,241,144,35,197,245, -248,234,198,117,138,74,89,194,43,169,174,201,18,219,129,195, -122,183,182,197,206,252,64,141,169,38,206,28,71,123,117,52, -59,13,198,164,248,125,147,69,162,233,52,17,22,107,127,25, -203,145,75,29,38,117,167,122,68,233,204,80,124,158,90,200, -19,147,8,166,112,20,64,95,178,19,3,187,201,193,55,25, -150,178,141,41,94,236,227,175,107,236,14,223,14,210,184,158, -196,147,6,160,84,31,82,218,165,122,9,137,246,73,112,76, -212,222,230,5,49,131,205,113,81,224,11,241,66,165,176,37, -246,100,58,200,54,141,133,53,72,249,87,96,76,252,156,19, -180,182,147,53,13,100,176,202,141,39,140,246,122,71,197,166, -20,236,80,115,18,65,174,180,140,195,27,52,20,145,61,180, -28,135,131,197,195,108,25,163,116,45,179,115,250,107,159,39, -181,222,82,94,163,201,249,67,203,160,39,239,251,213,125,65, -136,165,236,12,110,67,163,77,135,164,174,8,55,92,12,114, -176,195,3,15,163,91,80,110,207,111,51,181,220,146,179,64, -21,182,179,133,235,154,186,150,77,38,123,7,62,56,89,113, -158,201,195,59,114,247,129,173,114,132,77,78,171,147,113,135, -35,115,94,168,165,187,161,73,135,54,5,33,157,222,125,74, -76,168,28,160,26,170,62,104,80,238,92,109,174,108,8,33, -55,69,116,122,237,74,42,114,165,161,24,179,95,74,132,250, -119,42,97,170,112,153,226,10,162,194,12,77,252,82,42,39, -202,112,135,210,90,242,186,110,57,115,49,98,97,73,83,85, -212,215,188,166,242,32,111,27,28,12,116,24,35,178,13,106, -24,56,2,172,241,242,162,101,13,181,236,2,249,198,208,202, -217,43,117,87,87,16,91,168,132,30,222,88,222,144,161,249, -170,80,153,120,176,206,13,233,196,73,165,247,186,30,37,101, -96,186,110,129,18,179,27,196,78,98,185,133,241,107,110,92, -235,226,235,181,245,176,194,237,63,68,117,146,107,185,229,115, -68,98,173,70,21,238,174,13,200,26,21,154,79,245,171,111, -67,70,117,59,222,190,41,218,235,2,210,150,179,83,180,194, -58,10,250,114,88,189,42,8,69,8,52,92,121,111,89,57, -208,177,247,13,21,219,54,187,152,54,244,189,2,38,219,235, -57,26,50,49,3,194,114,21,214,73,2,48,222,43,220,90, -71,251,171,43,173,138,178,143,35,142,250,187,145,150,38,178, -191,11,27,20,247,252,49,159,127,9,24,215,237,168,98,165, -138,47,21,19,3,129,64,89,32,149,73,6,97,136,185,17, -74,192,183,19,6,113,39,132,21,105,139,164,242,169,66,41, -14,49,176,70,133,142,119,182,125,110,197,24,168,116,154,155, -40,25,158,216,179,21,36,2,15,2,0,71,186,188,193,245, -186,55,162,221,27,97,171,68,83,31,123,146,35,69,200,235, -56,202,57,135,74,197,56,199,225,157,25,141,234,13,10,36, -30,216,90,25,72,38,200,193,141,0,221,217,217,64,116,252, -238,218,1,101,32,208,210,187,35,132,85,20,54,231,180,104, -146,203,128,18,101,221,236,200,70,84,220,229,28,86,111,150, -170,102,186,158,17,146,39,142,106,50,234,182,219,24,55,93, -85,134,87,19,123,217,57,202,7,171,42,151,240,20,221,145, -197,34,43,109,9,3,134,45,161,58,113,53,132,9,238,184, -58,102,71,239,102,90,102,148,234,122,77,238,102,121,51,37, -10,231,86,145,187,75,171,129,173,45,107,192,160,160,79,86, -151,151,241,187,18,28,193,22,138,32,65,21,124,185,215,224, -198,172,9,156,95,229,80,98,236,181,51,81,176,24,230,5, -65,185,100,38,38,174,14,210,131,4,7,111,162,129,40,90, -177,54,158,105,244,202,58,174,63,105,139,41,15,56,62,149, -24,27,240,118,24,100,163,14,199,192,242,168,208,85,224,78, -135,203,236,172,174,6,228,203,113,68,230,244,106,41,210,216, -75,209,71,121,212,173,166,144,9,186,60,251,132,157,36,232, -50,224,114,209,118,173,98,95,46,158,83,177,120,88,68,69, -20,226,156,116,247,209,187,88,56,125,4,206,159,73,85,93, -39,158,33,217,75,198,123,38,142,222,198,116,11,243,160,14, -87,166,104,56,15,228,113,136,100,82,246,8,144,56,72,178, -77,195,180,252,73,238,113,206,102,189,209,90,105,52,208,234, -21,95,105,119,54,211,250,137,82,7,243,161,149,27,58,218, -176,5,86,187,111,135,86,223,33,125,40,139,110,70,203,19, -211,97,0,37,32,201,214,93,208,142,108,255,184,152,130,174, -15,41,44,83,113,25,115,28,227,222,118,119,123,205,136,180, -215,62,64,12,148,183,107,198,32,184,4,3,13,110,250,240, -65,43,74,62,161,132,46,224,197,29,117,215,144,71,28,152, -66,43,78,50,198,126,156,225,110,69,107,6,84,33,126,54, -30,159,17,91,202,22,254,96,156,26,105,179,227,82,198,71, -145,238,141,247,121,193,3,41,167,130,141,80,205,149,67,203, -17,110,111,53,213,151,92,236,54,210,185,238,113,25,23,246, -65,185,160,22,114,149,42,216,118,111,11,167,235,203,203,148, -50,248,132,50,216,112,83,120,55,183,229,42,169,17,80,197, -165,151,160,126,118,9,86,22,108,142,36,229,72,36,186,217, -200,203,237,213,196,116,43,76,66,251,73,146,43,150,116,216, -136,57,25,136,22,112,159,139,192,5,136,107,135,90,52,206, -153,6,198,209,74,181,141,216,60,245,9,15,198,129,19,204, -161,3,111,209,155,200,104,213,41,128,226,25,222,12,37,133, -16,149,0,16,79,60,221,8,56,130,194,68,61,204,143,19, -14,19,236,73,47,103,91,154,32,100,24,137,10,55,22,141, -162,77,155,85,77,101,27,119,161,102,85,239,220,26,183,37, -163,35,203,241,173,143,55,232,81,157,196,110,113,31,165,58, -139,157,100,219,205,152,189,152,245,80,15,3,107,59,209,131, -227,138,243,38,56,137,173,151,109,147,246,142,61,142,172,102, -139,34,82,80,79,71,22,215,169,7,213,132,154,17,10,15, -97,57,244,142,118,59,29,178,227,226,200,188,24,101,34,4, -82,75,16,15,77,78,229,138,111,213,208,137,86,88,236,157, -182,219,2,236,177,185,191,229,59,41,184,193,26,156,119,90, -14,202,37,118,99,164,115,11,34,243,237,21,198,205,85,219, -8,66,185,98,253,4,101,47,122,185,147,245,97,213,33,196, -165,246,66,187,100,79,228,215,161,215,106,213,229,82,155,216, -153,128,106,17,117,211,237,11,103,91,235,248,245,164,178,92, -12,12,131,85,115,37,80,41,192,173,121,253,205,116,195,192, -44,227,210,186,172,111,247,34,178,223,105,39,46,2,194,213, -192,230,240,200,177,4,197,123,125,70,197,153,4,142,119,159, -211,162,61,89,124,123,163,158,83,24,172,151,200,104,72,138, -82,108,103,241,13,249,13,104,40,106,242,97,248,200,58,176, -158,107,43,5,121,5,178,113,150,114,117,180,90,67,82,172, -221,46,44,91,220,174,157,184,60,140,37,149,237,155,9,84, -171,152,27,79,49,99,74,207,70,77,209,33,219,217,80,84, -199,166,55,32,57,212,148,20,117,209,170,167,221,24,149,137, -110,235,167,201,211,246,222,160,164,115,168,49,103,87,3,209, -185,195,62,69,206,138,152,230,129,207,123,198,84,123,155,76, -181,25,89,220,228,223,36,43,37,78,113,133,33,151,131,218, -102,100,123,111,195,2,60,50,140,117,202,122,113,133,38,95, -201,25,15,28,179,82,173,95,199,156,8,49,234,170,92,46, -122,71,135,177,140,218,5,255,170,165,140,20,186,103,197,100, -134,13,25,52,25,188,177,107,237,128,133,119,170,195,205,99, -47,92,39,36,183,33,102,225,233,224,56,179,166,183,0,253, -22,161,93,48,240,215,1,122,199,116,25,149,84,148,60,92, -196,214,122,18,39,136,238,238,179,213,55,179,146,177,21,96, -111,208,213,94,28,83,109,33,120,153,106,142,151,188,1,188, -101,218,222,189,245,250,238,222,194,207,100,73,249,48,165,66, -81,84,197,173,228,185,41,67,62,178,204,122,201,44,78,195, -3,103,3,244,170,59,247,144,201,186,124,136,199,188,171,100, -167,51,67,97,34,103,158,133,161,153,217,18,43,173,179,10, -114,21,205,42,5,60,202,96,133,6,112,31,52,60,61,102, -192,131,234,20,122,220,176,89,120,48,104,147,187,5,122,129, -199,103,178,118,128,32,120,128,24,104,253,106,146,212,44,220, -233,14,218,42,8,189,208,240,164,98,123,179,26,115,202,140, -164,166,136,28,53,255,178,83,176,179,213,171,49,63,179,90, -169,226,206,116,242,141,158,167,70,62,235,14,228,253,105,210, -183,135,143,42,40,34,21,22,148,201,172,95,228,8,170,24, -109,109,171,139,240,26,55,82,238,195,17,254,64,222,170,96, -186,32,66,174,183,20,85,58,38,214,252,208,40,230,199,39, -102,73,207,49,236,239,228,54,122,173,86,31,118,107,28,163, -250,14,94,146,3,107,6,199,120,197,96,188,227,194,183,38, -122,108,10,63,166,34,115,142,201,86,167,54,134,245,242,24, -84,115,138,242,95,129,44,223,129,242,127,254,230,14,175,206, -192,230,155,197,197,143,191,129,183,119,192,243,243,207,191,217, -111,254,110,163,248,251,109,216,0,172,157,109,15,127,183,149, -252,219,61,217,127,247,234,14,137,190,0,192,238,191,152,20, -0,96,245,226,91,0,241,206,61,7,88,223,2,152,249,197, -12,185,190,135,179,119,138,222,60,7,32,238,243,95,126,7, -204,190,121,251,250,171,231,239,183,214,207,207,125,250,129,130, -159,254,247,111,161,236,175,95,188,126,251,213,179,47,230,126, -253,234,197,231,239,72,255,250,25,224,218,219,143,102,91,162, -127,250,199,115,175,191,255,33,245,159,254,143,215,159,124,177, -248,243,183,115,63,253,147,159,254,135,185,133,123,191,133,196, -63,253,167,255,137,72,0,79,207,54,95,127,52,123,0,100, -190,249,199,239,8,125,243,143,159,60,255,205,191,81,230,127, -121,6,4,232,163,191,124,253,236,107,64,226,215,31,207,82, -11,111,222,206,253,11,86,127,253,201,140,240,110,151,247,59, -7,62,158,123,253,201,219,87,95,126,12,232,155,189,252,207, -139,47,126,241,203,183,31,125,255,227,185,31,253,245,219,255, -227,245,226,226,135,155,200,191,53,227,167,255,244,217,239,230, -28,126,252,131,15,67,246,147,217,238,248,55,115,95,125,249, -110,232,94,2,230,126,113,215,241,219,36,203,44,33,242,249, -226,108,28,223,0,211,229,13,16,142,111,179,42,175,1,227, -158,205,114,27,159,188,63,243,240,230,237,179,215,111,223,124, -56,147,190,37,249,150,105,38,239,249,179,47,190,120,243,161, -29,119,121,155,187,3,6,119,74,129,73,246,203,197,185,119, -167,57,102,137,151,223,74,121,189,248,37,208,188,248,18,208, -50,147,246,211,255,253,253,9,134,111,253,122,63,110,63,249, -144,242,213,151,95,190,122,243,2,152,134,95,190,126,245,124, -17,152,167,63,253,211,111,143,36,188,203,222,124,190,8,24, -123,55,165,223,222,41,190,59,195,243,249,239,122,11,144,1, -6,190,88,252,245,59,162,247,121,173,15,168,102,134,124,124, -151,172,185,75,227,124,13,44,162,55,31,207,216,158,191,250, -213,151,95,189,125,207,246,161,200,187,64,125,216,250,205,137, -140,119,71,40,102,61,207,191,122,253,26,112,226,238,20,195, -55,99,50,59,55,242,226,229,221,89,138,111,220,190,155,90, -63,153,3,218,94,125,253,102,238,203,217,187,89,224,0,99, -102,66,222,143,36,48,134,127,32,3,245,126,165,126,144,97, -122,71,255,123,121,166,247,171,242,174,115,254,59,167,25,102, -249,188,215,239,247,143,220,123,127,113,153,255,95,165,159,254, -77,89,168,248,108,59,201,245,221,118,18,157,12,235,41,211, -127,103,59,9,247,221,118,18,200,58,159,27,227,238,115,229, -209,110,165,28,133,3,159,211,211,222,164,180,24,21,219,216, -108,7,73,114,49,62,116,168,241,241,236,182,171,139,220,43, -22,181,7,35,179,154,107,171,217,157,182,218,50,109,125,208, -76,199,128,251,134,171,34,145,120,133,237,174,220,157,40,249, -36,253,220,81,75,52,148,119,35,249,42,37,208,217,86,38, -106,113,231,137,99,84,131,67,108,74,136,165,91,195,163,235, -233,117,37,83,81,61,205,163,44,65,163,47,123,185,209,173, -169,122,102,108,172,193,137,99,109,222,154,214,75,214,90,107, -149,137,177,197,139,83,249,199,160,115,109,21,193,93,169,174, -122,17,59,86,182,226,4,39,64,155,180,136,1,101,61,76, -41,94,6,171,114,37,236,100,235,152,59,45,45,21,160,244, -112,62,178,227,75,93,216,53,37,245,78,207,78,28,225,36, -142,126,34,79,234,137,162,142,158,168,156,162,202,174,253,144, -179,22,26,41,57,234,35,55,216,215,23,190,170,245,70,39, -47,83,180,160,4,200,226,215,168,64,102,8,123,154,113,224, -61,87,93,152,114,117,60,246,192,56,117,29,17,35,154,116, -64,27,4,193,40,182,118,201,223,230,194,13,156,155,146,204, -226,135,65,150,252,48,120,115,175,64,115,143,205,145,164,98, -211,3,58,15,217,145,58,133,151,28,223,247,123,215,78,54, -83,141,190,38,39,40,28,25,195,155,212,171,125,225,54,232, -250,186,158,112,152,7,186,155,107,16,98,243,66,166,160,95, -79,168,178,99,84,5,165,63,227,130,123,180,210,182,228,216, -116,74,26,247,70,27,178,19,226,233,105,51,106,14,30,75, -193,91,70,213,150,125,246,52,113,100,175,29,181,124,167,166, -58,110,36,26,187,136,236,182,245,56,121,146,85,43,86,182, -215,212,134,90,211,189,204,187,144,221,20,241,138,42,140,204, -192,183,16,177,201,5,97,173,93,83,85,206,183,69,27,22, -119,147,112,153,146,94,177,61,132,161,65,32,86,13,69,129, -132,59,129,49,240,193,151,200,68,9,125,81,88,57,209,234, -1,0,120,10,81,14,70,104,163,49,164,203,246,46,93,92, -23,108,153,22,235,11,143,106,205,188,25,223,196,30,78,176, -237,117,129,205,3,90,242,26,78,92,137,80,92,15,231,11, -211,39,37,7,242,0,20,54,241,65,226,204,214,218,254,94, -188,233,202,145,53,75,49,131,129,218,153,26,18,151,73,49, -55,22,85,84,35,44,240,246,177,57,67,181,168,200,96,141, -161,209,37,168,73,5,164,248,96,9,109,190,108,151,221,234, -92,147,8,181,138,142,113,60,62,182,157,118,246,247,180,132, -74,73,93,152,180,80,227,190,53,212,160,37,163,124,52,5, -29,183,135,170,215,189,250,97,186,39,0,135,173,62,13,61, -183,205,38,48,88,75,232,218,196,100,140,219,132,158,35,77, -55,168,16,238,108,16,205,216,91,124,109,84,67,151,28,253, -115,252,128,82,247,33,215,121,238,155,243,34,130,169,60,241, -72,100,55,83,67,106,239,140,64,223,220,167,185,85,214,253, -182,123,131,142,235,236,104,134,123,245,140,92,56,174,54,107, -117,152,73,133,84,170,171,183,135,206,134,53,180,57,206,114, -170,194,202,197,209,110,164,168,74,139,220,234,196,158,12,19, -46,115,154,43,164,195,81,118,144,69,107,216,236,86,151,154, -108,109,207,242,79,146,204,4,90,67,167,32,93,23,28,22, -149,108,17,41,209,65,193,128,225,94,97,205,6,222,177,66, -142,170,7,92,227,115,52,138,220,221,137,230,240,100,98,55, -93,164,229,167,145,219,234,109,107,56,118,80,187,147,70,172, -67,233,81,202,19,201,137,174,209,62,27,99,73,91,49,155, -17,116,124,150,170,100,135,50,125,87,97,191,141,166,184,254, -92,83,21,242,169,172,65,89,206,213,153,182,139,153,176,103, -73,149,100,212,213,29,145,45,236,15,157,130,119,195,91,120, -212,4,215,62,177,250,98,157,72,116,44,188,101,46,135,122, -215,226,142,61,238,70,64,33,21,152,77,119,118,40,108,132, -3,189,228,184,54,201,208,50,114,233,102,23,223,11,79,50, -168,9,18,187,214,185,8,142,11,43,122,7,194,141,222,140, -86,79,154,106,246,104,83,199,187,142,148,107,105,95,104,221, -194,133,237,82,10,2,245,228,144,1,163,136,220,107,44,60, -230,134,81,148,100,193,235,168,182,31,188,141,67,68,52,229, -164,214,218,102,226,21,93,183,143,88,60,32,224,41,225,212, -52,220,114,110,81,82,103,7,160,182,220,53,217,100,31,108, -102,211,19,6,221,232,50,213,45,215,189,154,72,87,9,103, -120,177,149,108,84,62,153,232,15,92,154,180,23,211,166,215, -61,107,151,82,137,187,126,193,63,216,135,141,41,5,199,24, -150,28,236,201,210,102,56,213,78,58,149,178,76,35,63,173, -125,140,113,83,122,211,154,76,189,172,53,196,227,213,206,37, -171,48,57,20,180,134,155,96,119,185,128,42,237,123,178,13, -149,15,164,118,198,143,54,112,100,184,22,159,226,197,155,186, -60,150,109,42,81,10,58,11,150,116,204,167,131,49,113,35, -7,103,107,83,106,73,214,93,246,9,234,144,116,134,22,181, -142,176,214,87,239,200,194,248,13,89,56,191,137,89,23,90, -243,8,254,49,206,139,93,79,136,147,167,173,9,131,119,217, -247,172,36,210,107,1,159,62,171,94,57,172,117,144,91,37, -236,170,64,77,81,30,76,153,45,123,67,53,220,176,92,27, -214,41,29,55,73,21,7,117,106,131,147,141,218,64,150,223, -175,138,234,122,125,247,6,33,22,52,8,77,157,144,227,46, -162,115,132,86,142,216,89,35,239,141,86,82,121,129,194,114, -50,32,149,14,235,61,236,33,108,12,62,109,120,251,141,248, -96,11,59,246,99,29,155,110,159,16,38,228,94,23,216,16, -27,249,6,186,122,184,116,194,144,158,247,24,235,82,17,43, -173,45,14,236,43,237,219,224,224,150,113,85,167,152,226,132, -160,144,96,170,239,86,45,154,113,156,65,14,72,165,39,87, -233,174,158,135,245,113,175,213,222,241,165,21,134,24,104,21, -251,187,161,76,76,148,62,185,230,159,88,52,155,25,165,119, -109,159,162,167,45,141,33,172,233,202,237,45,8,74,242,4, -202,168,46,50,120,225,231,199,172,188,154,80,36,173,72,26, -0,244,191,33,75,5,8,84,222,30,136,88,169,23,138,234, -150,251,56,100,102,83,217,133,220,186,82,161,104,37,71,49, -220,173,47,97,227,208,147,36,234,245,86,9,214,17,118,29, -242,75,53,126,55,78,66,243,247,114,44,180,32,193,163,136, -164,126,16,127,120,181,143,33,163,221,233,68,193,228,75,9, -207,179,171,142,35,144,226,226,118,223,116,234,46,28,80,14, -196,187,110,195,41,170,146,224,180,184,195,11,198,68,16,38, -212,29,82,114,45,224,144,95,59,53,117,219,206,164,239,37, -156,248,109,82,122,178,34,147,30,12,105,248,144,181,120,171, -114,187,234,94,116,161,201,224,215,138,221,248,154,81,148,220, -194,177,161,76,111,169,206,165,131,2,114,119,225,166,147,86, -97,244,171,10,43,79,189,101,199,52,12,101,20,170,16,85, -70,81,185,102,80,221,191,220,222,11,226,35,229,117,204,228, -152,137,171,196,85,145,157,58,31,33,207,186,208,154,14,186, -95,177,224,101,3,231,128,209,15,113,241,166,224,10,200,166, -116,215,243,226,20,157,178,195,160,76,193,110,58,197,186,121, -126,227,112,173,99,172,121,46,107,3,188,89,209,236,55,46, -229,144,37,159,115,249,34,75,195,238,203,99,189,44,52,210, -203,243,219,82,178,245,34,19,141,9,178,246,152,52,239,18, -103,157,233,77,73,58,22,58,27,13,166,13,48,87,174,51, -178,79,72,88,53,23,194,229,72,59,219,16,68,50,68,169, -225,19,201,169,209,159,84,131,171,192,125,43,73,231,139,206, -81,181,229,171,125,135,129,153,221,119,27,198,92,16,4,34, -184,182,31,155,240,130,203,94,21,179,79,151,187,185,101,7, -52,92,85,235,226,232,82,76,186,22,191,10,31,128,114,103, -251,233,196,241,149,183,100,88,227,224,141,116,138,118,235,102, -150,122,42,234,184,251,254,168,35,118,192,246,153,84,91,216, -64,135,81,38,238,92,194,61,126,132,126,95,145,65,65,68, -8,99,72,97,85,77,96,162,228,122,199,112,48,68,134,6, -34,50,100,98,39,199,3,58,17,100,143,3,186,109,209,249, -18,115,222,46,39,249,229,225,94,225,34,193,39,85,176,188, -110,243,220,116,18,217,225,158,141,67,198,208,48,183,166,143, -130,241,198,224,198,112,148,132,148,156,217,14,61,185,15,115, -226,137,89,92,217,88,87,39,173,89,157,30,140,192,236,50, -16,86,184,241,218,2,34,118,205,179,253,35,254,235,11,188, -25,145,52,111,113,208,55,92,222,245,106,115,121,183,76,93, -49,198,148,129,157,74,68,76,146,203,10,253,221,104,18,181, -127,75,8,194,161,216,224,250,49,166,97,98,196,100,16,218, -176,177,51,75,60,17,101,14,100,35,218,168,42,108,76,167, -35,96,30,44,187,199,90,164,160,174,83,212,75,146,64,139, -123,27,244,116,192,154,66,124,171,215,41,88,251,187,219,158, -213,220,134,49,150,93,93,94,171,242,57,19,213,120,144,203, -215,70,84,56,85,209,103,164,74,81,153,157,197,114,201,176, -172,30,246,128,36,46,163,251,12,136,198,126,230,52,239,50, -42,8,37,214,203,185,41,51,28,88,62,195,121,166,27,43, -55,201,6,117,156,188,186,74,25,176,178,202,242,150,54,217, -103,209,14,165,87,230,110,172,206,89,26,219,93,55,72,197, -77,185,16,199,17,251,249,208,5,37,33,95,58,236,251,70, -173,160,158,210,10,198,115,246,147,67,89,68,226,202,27,229, -185,158,253,148,32,174,166,141,92,75,181,40,198,75,209,87, -177,224,217,77,163,47,228,57,57,69,141,243,90,179,17,35, -231,121,48,9,14,139,165,244,155,16,255,89,48,203,72,95, -113,75,178,35,77,81,159,204,66,171,194,226,118,146,88,31, -12,58,177,168,179,66,154,90,60,250,53,135,5,57,194,41, -118,90,167,89,79,198,178,42,118,240,196,28,111,90,235,218, -59,27,41,139,250,2,222,70,25,53,27,183,100,223,154,135, -147,55,77,46,79,92,173,38,34,116,188,39,115,54,198,18, -193,97,102,232,150,120,212,71,216,12,71,23,94,131,197,247, -236,252,246,49,118,112,129,100,162,66,118,206,201,132,197,55, -11,14,68,20,87,213,73,67,240,78,151,86,157,40,80,221, -157,105,12,55,107,99,170,183,222,47,20,61,44,236,93,222, -105,179,224,190,203,59,153,131,18,179,49,210,41,168,65,100, -115,69,63,189,90,106,215,64,200,216,196,84,120,183,123,4, -171,172,202,103,121,39,132,219,158,88,135,94,31,70,192,244, -37,98,167,70,173,141,45,41,250,222,150,53,199,218,66,170, -253,197,98,96,123,136,179,213,131,149,82,125,205,172,117,79, -161,244,177,167,131,186,108,242,156,45,198,129,114,32,76,239, -111,135,32,198,83,226,222,116,8,182,241,12,59,212,164,103, -201,198,64,29,242,203,50,129,13,86,20,160,182,153,97,125, -224,16,88,65,49,75,246,176,162,197,29,200,70,37,182,156, -73,129,220,154,55,199,208,29,16,93,152,231,215,10,83,179, -228,106,64,116,208,214,10,91,109,48,252,196,139,54,198,59, -133,44,158,19,232,34,232,161,94,211,41,40,28,11,199,69, -240,144,227,141,90,116,89,193,68,129,31,118,130,230,98,163, -103,58,60,51,37,157,237,101,77,191,88,80,139,142,6,55, -102,240,217,165,91,77,72,231,156,163,243,54,33,185,218,81, -27,57,83,109,155,64,9,248,224,61,145,122,43,112,5,119, -214,242,3,93,161,225,184,30,216,145,197,205,181,45,145,122, -15,184,252,48,51,196,36,106,80,190,164,26,189,230,59,198, -78,248,12,191,65,145,165,208,100,11,192,238,59,32,51,27, -222,12,211,168,112,15,218,43,235,69,241,88,237,46,138,3, -30,218,86,59,119,4,8,176,242,213,5,204,30,30,146,60, -226,248,50,3,122,32,163,145,224,104,237,112,137,219,241,193, -197,148,114,143,176,76,241,145,193,87,3,102,121,223,100,220, -188,108,7,113,29,81,192,179,135,47,237,169,131,117,49,32, -160,209,189,186,179,167,127,1,216,99,106,27,215,211,128,210, -204,32,83,17,3,173,98,181,184,70,0,90,245,194,80,190, -56,72,9,128,166,164,88,45,66,198,228,219,184,119,221,219, -3,161,186,0,80,16,52,201,91,88,113,115,35,153,226,148, -241,24,64,196,77,102,112,69,173,79,171,33,253,204,11,248, -52,175,56,68,0,6,155,134,109,163,217,207,103,86,100,81, -240,29,63,75,168,150,41,73,44,202,218,80,141,219,195,123, -213,145,46,185,160,43,240,248,9,38,160,96,197,136,76,204, -142,41,136,61,96,114,113,197,139,28,11,116,167,162,65,187, -135,35,82,44,190,153,2,234,25,78,226,106,47,135,50,153, -137,192,55,92,41,142,189,221,58,179,61,180,221,136,60,61, -139,49,238,234,83,209,9,46,69,206,38,130,46,51,235,43, -105,130,58,64,90,186,146,245,36,27,228,11,90,108,228,138, -212,189,71,150,10,72,188,41,216,13,119,72,99,12,176,138, -247,77,39,35,188,209,101,24,246,119,140,27,249,140,207,167, -82,152,198,120,226,230,38,133,51,108,121,199,120,229,224,116, -183,199,105,141,172,184,58,103,76,232,237,5,198,75,29,202, -24,36,135,28,232,178,211,208,86,125,169,253,157,44,212,95, -189,124,247,253,7,51,72,252,197,226,111,190,217,132,241,53, -0,152,191,221,237,240,230,195,47,7,184,203,75,60,123,254, -238,128,255,226,47,159,253,250,197,12,168,2,0,254,110,223, -198,226,39,191,248,228,131,205,27,175,94,207,253,231,197,103, -159,47,190,158,161,235,143,223,99,252,217,14,141,119,40,127, -150,235,122,243,234,131,45,28,51,233,175,190,139,144,191,61, -89,241,249,172,235,197,140,232,195,236,194,79,238,50,24,223, -52,252,237,226,175,94,253,250,219,51,22,111,230,62,250,160, -21,176,247,93,242,2,128,198,191,126,191,55,229,245,172,231, -221,94,18,0,250,127,179,189,229,247,14,109,204,210,62,63, -249,159,228,198,22,230,62,253,38,73,246,65,210,232,47,190, -122,251,246,213,203,185,223,124,7,99,255,219,51,102,191,249, -228,67,67,190,155,127,154,127,52,251,255,0,220,255,110,138, -109,254,209,191,127,138,237,95,45,243,223,37,197,6,232,188, -115,242,119,19,109,179,73,55,107,253,209,95,191,253,63,159, -253,98,241,229,219,103,127,40,225,246,47,56,250,209,93,182, -234,143,231,190,124,54,203,230,124,199,142,119,141,119,223,250, -240,155,127,173,204,119,83,236,163,223,27,184,111,218,255,160, -152,223,77,229,44,252,62,247,95,3,65,152,125,223,196,189, -187,17,254,228,239,94,125,249,193,187,191,121,245,223,158,189, -124,251,159,94,61,255,234,205,31,148,255,62,215,248,187,201, -29,224,233,147,119,63,127,176,239,27,83,222,45,133,133,239, -100,149,190,221,212,244,174,247,223,245,251,45,18,99,55,250, -46,159,180,25,215,201,242,204,208,114,103,196,225,26,110,151, -133,43,35,60,83,203,93,94,135,244,225,203,92,61,68,186, -226,93,177,158,86,135,81,121,49,209,14,43,199,141,61,117, -153,35,247,37,227,118,162,179,237,115,174,71,85,157,100,110, -84,171,237,141,13,197,246,70,91,123,176,74,40,153,131,93, -9,89,75,247,31,23,56,156,230,89,158,234,32,75,200,14, -239,105,220,123,178,172,81,165,34,145,211,64,101,143,236,162, -140,41,123,121,170,191,221,246,103,101,87,77,103,185,25,163, -145,236,206,44,38,238,228,141,87,114,123,44,88,196,178,122, -4,165,8,165,82,132,199,120,153,239,54,237,108,218,110,213, -175,244,37,201,71,230,1,216,188,114,89,223,245,11,175,6, -140,11,197,206,78,52,223,72,67,57,165,154,214,32,102,185, -172,209,107,9,87,180,68,105,110,114,79,99,186,74,133,58, -236,28,93,30,19,162,244,122,120,111,235,150,201,244,41,167, -240,163,94,192,179,178,106,2,160,9,201,49,190,238,181,19, -42,110,180,183,225,150,105,234,210,91,216,254,89,75,226,66, -71,243,60,232,246,168,121,93,61,132,21,28,74,40,138,118, -105,220,150,76,101,160,35,158,38,159,40,50,246,43,218,35, -188,116,42,234,186,119,37,97,52,104,79,131,88,22,66,225, -41,28,152,160,8,89,245,230,181,157,67,68,164,73,55,106, -59,75,103,52,222,54,215,175,57,175,47,237,64,202,218,52, -217,116,78,179,247,59,123,9,1,30,98,223,171,19,244,240, -160,207,203,22,119,245,132,76,180,222,208,30,41,175,32,198, -118,70,116,123,228,226,33,207,229,155,250,27,217,201,129,133, -158,212,174,136,163,176,186,54,112,49,132,6,223,165,149,146, -203,68,42,69,35,223,113,56,198,55,152,70,176,157,208,187, -143,27,110,223,24,108,139,140,153,18,95,188,126,53,216,162, -88,217,129,177,221,187,63,116,147,172,109,39,162,184,13,219, -54,243,92,88,203,169,185,224,56,218,78,38,251,185,188,244, -4,233,86,84,197,25,139,72,122,174,219,78,46,79,214,27, -156,243,244,206,134,162,162,174,26,120,197,149,28,73,44,56, -90,45,137,109,85,17,119,224,92,23,93,106,71,112,228,210, -158,198,125,96,242,16,9,0,0,233,223,88,76,160,54,127, -234,56,181,171,17,5,175,230,124,99,186,162,222,22,240,214, -195,218,52,55,187,70,205,166,80,250,104,221,163,177,38,102, -121,37,3,86,59,242,92,64,214,249,199,20,218,137,74,212, -110,157,199,134,195,122,117,137,153,150,5,164,226,104,107,21, -225,214,211,144,35,86,181,50,192,65,59,146,100,219,236,111, -166,185,144,174,118,87,104,215,53,156,183,146,93,195,33,42, -202,58,240,187,149,77,44,112,7,87,152,252,211,97,206,215, -205,243,251,68,240,32,166,70,12,71,35,126,76,66,76,168, -86,124,9,245,82,250,208,14,155,132,173,56,38,134,69,0, -117,224,142,217,190,166,48,31,170,140,93,133,11,133,35,84, -168,153,34,246,11,135,230,122,146,67,105,167,195,200,193,185, -125,201,120,2,207,16,146,23,155,241,48,92,99,72,238,157, -233,104,120,191,150,14,91,111,187,111,136,250,195,146,106,208, -171,104,77,245,233,141,37,166,26,83,53,209,97,219,75,52, -149,55,17,161,146,174,34,60,171,77,175,144,152,155,91,249, -77,152,118,74,242,233,228,216,8,105,221,119,162,172,86,58, -70,137,87,115,120,56,172,165,154,70,239,44,173,212,154,240, -17,241,61,245,106,72,216,28,112,213,120,44,59,200,53,104, -194,107,132,160,162,122,173,255,255,59,57,147,223,68,178,59, -142,255,43,45,37,167,81,38,125,200,109,20,229,144,81,142, -185,68,115,27,117,203,61,147,78,50,202,36,61,234,246,40, -57,26,48,139,89,12,102,43,48,155,1,155,213,44,54,59, -184,176,89,140,141,141,217,87,179,217,24,179,239,187,139,45, -96,119,119,102,34,69,26,205,237,189,250,253,222,247,87,85, -122,135,170,175,62,239,135,168,34,115,51,141,9,125,4,51, -241,163,172,203,92,79,67,114,225,29,189,154,138,53,55,14, -56,179,155,75,244,116,14,1,96,147,35,4,155,250,29,83, -6,188,153,239,121,205,35,55,102,109,80,172,250,214,139,178, -117,7,77,223,119,229,148,86,94,154,117,149,8,29,152,193, -225,173,67,124,201,179,17,56,37,151,226,225,58,77,212,109, -224,46,176,69,245,157,156,45,78,101,114,162,152,53,92,3, -51,138,89,236,168,101,139,128,110,15,83,67,97,162,225,112, -59,191,211,98,176,74,86,104,58,86,89,134,214,182,191,109, -129,178,99,220,120,61,203,24,213,197,242,145,43,152,132,153, -5,74,37,81,126,121,186,23,235,244,93,213,123,243,172,155, -192,14,38,121,186,51,18,218,226,106,161,29,223,176,20,59, -228,142,236,225,29,82,214,127,226,38,111,37,209,200,157,146, -212,66,222,15,23,31,246,199,176,110,0,169,106,53,119,118, -55,66,137,0,27,154,220,65,237,172,5,61,158,181,232,139, -31,186,94,67,30,190,15,134,109,60,201,109,69,212,171,89, -107,131,161,136,85,85,246,163,88,157,63,55,155,242,196,251, -80,248,166,186,39,5,112,116,118,60,110,192,149,21,21,96, -216,219,73,35,192,242,124,230,228,150,235,146,34,82,237,35, -100,174,195,14,235,205,133,153,12,151,244,199,154,99,70,38, -112,99,107,244,149,144,63,212,179,70,197,254,177,43,228,175, -158,131,128,44,120,175,182,104,44,107,222,160,30,78,77,34, -176,64,70,158,25,4,84,69,17,186,202,45,217,204,110,148, -81,102,227,80,97,169,37,214,36,51,144,134,224,186,36,155, -118,21,60,253,113,2,244,50,176,4,5,219,124,147,61,180, -99,125,76,12,53,73,49,185,151,88,147,60,207,50,195,145, -116,123,190,203,11,144,113,230,60,165,26,47,94,64,184,235, -84,101,155,27,144,231,216,208,116,150,159,160,206,152,195,250, -176,126,182,133,151,67,212,168,237,17,107,138,208,46,187,1, -202,102,24,151,245,59,236,144,95,105,117,240,169,45,155,92, -28,98,149,11,137,78,33,222,211,187,11,246,211,108,65,21, -52,155,6,168,96,50,225,46,39,136,215,232,209,157,197,152, -51,245,5,114,180,124,131,133,219,185,86,17,197,233,115,210, -5,198,160,223,218,34,5,17,221,81,174,137,193,200,162,14, -0,11,153,163,69,249,206,169,38,167,163,183,124,116,137,107, -207,85,11,192,7,227,212,160,58,19,70,211,108,110,164,238, -6,58,20,175,130,195,21,149,111,43,104,135,108,217,222,66, -199,41,145,244,168,200,17,186,103,160,139,205,124,99,179,151, -179,87,208,173,27,22,44,151,56,182,135,215,96,162,35,23, -4,42,109,145,173,50,42,178,95,32,82,55,174,242,150,245, -82,158,216,80,59,117,84,225,65,183,190,217,79,161,26,113, -59,205,211,47,98,139,45,115,130,109,86,218,130,164,248,129, -226,172,29,190,144,158,55,211,122,154,20,178,165,113,243,251, -208,169,207,141,54,184,198,35,37,51,176,97,80,66,78,34, -227,98,45,130,160,183,0,2,217,159,79,179,140,66,30,85, -168,118,110,1,249,242,246,208,201,221,154,135,165,115,181,103, -36,185,32,166,213,245,99,175,44,50,28,77,39,86,163,41, -16,85,135,68,172,114,243,138,151,216,2,187,154,246,125,251, -92,149,198,247,8,133,193,142,25,13,109,28,215,241,209,245, -94,207,107,6,183,148,230,130,168,128,203,42,36,119,138,118, -144,157,51,138,102,116,54,62,28,239,82,214,175,188,53,136, -138,96,58,168,157,234,134,205,169,159,192,224,240,10,152,4, -28,113,239,32,149,135,25,219,132,61,189,9,37,96,94,73, -78,89,234,97,3,143,221,219,176,183,111,241,25,3,237,138, -195,134,30,186,84,95,104,46,36,244,14,33,210,205,225,54, -37,56,206,15,207,137,36,174,0,68,139,28,208,26,214,192, -6,192,3,191,75,82,23,170,241,90,178,243,33,126,87,193, -192,11,186,163,93,185,237,50,210,184,212,213,85,106,142,132, -58,46,87,244,93,87,223,190,201,53,249,116,128,151,98,232, -136,213,166,54,135,85,227,153,193,30,108,215,64,117,223,4, -21,135,220,176,204,190,43,214,147,25,155,221,76,204,42,78, -83,230,67,130,236,24,81,101,76,1,67,26,113,123,192,103, -231,225,183,50,161,144,134,117,146,28,83,210,250,186,50,115, -127,165,167,170,114,67,108,173,80,49,108,73,146,163,52,61, -107,217,200,2,23,202,90,162,172,222,167,73,96,93,158,190, -206,28,101,76,83,91,8,119,71,186,225,158,220,158,104,207, -114,150,48,34,35,61,2,82,44,205,186,183,140,42,70,29, -180,141,6,3,153,196,108,136,102,12,59,227,108,39,192,56, -96,223,202,154,227,10,199,51,74,34,53,185,221,99,207,131, -111,167,149,38,186,194,92,193,189,218,72,134,157,176,178,92, -91,47,226,242,176,218,148,58,47,70,207,106,92,18,175,198, -31,19,89,100,5,219,67,201,55,175,234,155,28,103,240,62, -53,127,136,76,121,112,5,198,14,153,16,231,230,38,1,65, -96,238,201,85,49,184,181,47,1,204,126,28,141,35,57,101, -83,189,34,66,155,122,88,187,81,147,49,107,246,22,94,201, -164,227,179,45,49,165,149,195,72,75,24,120,186,170,20,59, -78,147,161,237,74,49,173,163,235,74,137,180,242,58,74,242, -50,163,29,31,42,162,151,105,103,49,6,249,246,140,12,106, -97,90,101,82,50,178,211,209,135,137,250,148,115,41,244,10, -175,98,231,144,127,122,178,70,108,52,109,77,72,110,10,132, -34,71,12,215,173,147,216,243,158,67,249,66,249,200,230,53, -50,17,1,237,96,27,126,82,172,184,253,49,77,113,80,84, -77,134,202,209,65,21,186,47,224,57,114,15,20,238,38,194, -21,95,226,16,103,101,222,40,220,57,28,197,56,65,149,83, -209,145,178,43,168,91,248,209,35,81,197,94,184,243,136,187, -204,93,64,50,231,192,224,92,107,231,58,221,87,239,132,67, -164,170,92,87,118,166,155,69,20,108,234,81,17,141,189,89, -55,63,209,35,139,81,192,201,75,170,133,253,203,155,92,213, -27,172,122,39,136,104,237,161,110,234,170,122,121,177,190,120, -101,165,110,234,238,130,5,41,135,217,108,3,90,138,57,154, -217,159,151,239,85,202,221,18,211,122,81,216,84,249,252,195, -170,13,115,202,71,31,23,216,182,136,143,43,145,236,227,105, -128,226,204,124,224,86,117,50,170,94,160,121,236,73,44,161, -38,13,38,73,159,29,142,114,151,195,11,199,89,232,110,115, -79,123,101,165,147,99,100,186,100,46,80,204,242,21,71,91, -28,18,205,172,53,24,89,69,247,26,57,236,238,58,116,219, -3,112,90,177,187,120,160,168,82,216,89,180,94,96,186,39, -66,5,162,0,29,11,170,25,17,133,157,15,220,98,203,117, -254,105,52,64,155,120,243,114,210,157,15,94,187,128,119,170, -237,148,57,103,172,80,170,107,234,237,27,184,174,70,159,170, -248,60,82,114,0,210,184,94,54,140,186,47,50,221,179,54, -31,170,5,233,189,161,208,119,24,251,188,8,170,103,132,225, -93,202,73,211,213,68,183,124,90,154,97,183,1,135,48,137, -163,84,162,77,49,167,82,212,248,26,255,50,112,70,210,186, -88,187,106,65,192,203,59,169,78,98,18,107,217,120,40,21, -4,47,33,64,156,209,21,25,30,110,244,138,174,151,236,83, -17,29,222,109,169,39,98,79,180,83,153,230,66,179,217,108, -104,140,23,76,62,41,42,78,214,154,254,30,22,1,76,53, -87,165,139,245,3,65,191,224,0,122,234,91,7,51,5,175, -26,229,67,228,9,103,223,10,34,107,132,56,130,118,6,122, -236,209,93,49,156,236,32,114,108,150,29,210,148,134,38,64, -188,9,118,230,162,140,206,225,80,225,4,222,116,132,157,86, -195,224,52,6,80,161,217,6,212,40,220,82,55,204,138,249, -236,70,147,217,48,198,252,167,187,251,220,187,92,22,75,227, -250,187,205,253,233,192,43,203,0,61,65,208,114,188,235,135, -96,4,68,11,118,199,144,58,137,102,70,130,167,64,58,154, -219,115,92,15,56,103,32,156,92,110,149,88,31,48,45,142, -166,61,89,161,169,75,204,9,170,94,121,8,221,197,41,190, -27,63,216,132,244,209,188,71,19,246,201,185,195,8,84,108, -108,130,241,176,87,69,90,188,240,8,143,153,30,66,26,199, -158,56,62,86,66,248,72,87,25,123,184,95,36,178,184,156, -100,179,195,148,21,175,124,125,219,240,97,17,144,45,62,20, -218,203,2,84,59,163,7,33,229,214,129,198,218,215,159,96, -246,48,38,54,52,243,105,130,16,72,203,156,92,50,16,252, -201,28,226,55,134,112,212,17,255,0,189,225,245,249,146,87, -30,17,20,38,206,43,4,138,177,140,52,178,124,96,172,119, -142,167,133,34,66,232,110,15,8,58,18,129,241,89,83,31, -145,46,166,82,128,229,226,245,225,254,234,98,1,187,89,235, -151,48,123,18,31,216,242,108,6,65,153,166,104,224,214,135, -18,174,59,194,66,243,33,126,4,33,4,93,106,136,229,57, -234,13,168,21,130,142,59,88,6,35,184,145,214,15,202,206, -250,18,174,102,161,31,38,86,78,183,103,139,203,139,97,136, -88,9,44,35,90,193,241,97,198,208,205,74,45,143,137,2, -167,85,153,61,95,232,235,207,250,46,119,170,151,83,72,151, -233,91,60,169,12,216,6,27,69,149,68,250,184,76,96,181, -54,230,215,200,74,64,6,202,128,135,54,147,243,176,183,148, -39,80,226,146,226,89,25,68,69,144,203,199,105,64,61,210, -64,123,14,66,227,253,120,184,233,233,151,154,59,219,72,161, -216,183,120,128,3,153,65,15,105,211,56,84,148,56,216,14, -55,247,197,139,32,121,93,120,230,153,53,153,203,59,83,46, -84,91,150,110,56,174,106,129,215,197,32,88,183,92,54,149, -89,123,143,59,190,108,105,135,231,118,158,178,88,158,111,142, -13,41,149,147,200,140,98,215,58,237,83,182,30,159,110,240, -215,212,73,116,249,8,101,40,209,103,151,65,86,71,75,214, -173,73,174,188,132,235,251,109,144,234,235,16,164,178,148,121, -55,49,245,119,175,197,204,211,233,36,223,33,197,36,68,102, -100,63,150,73,240,66,253,148,132,10,89,148,42,241,140,118, -63,4,166,140,186,103,228,21,6,89,19,216,117,40,186,78, -155,195,42,158,163,53,219,143,185,137,63,46,207,24,125,254, -104,33,45,219,100,190,250,234,219,215,75,131,233,95,111,222, -254,253,217,87,111,86,255,182,236,22,249,246,245,95,191,255, -246,213,219,71,158,99,229,211,71,134,234,201,116,90,30,81, -122,247,129,191,250,136,162,188,103,75,254,252,212,131,242,237, -55,143,46,209,163,214,199,70,160,143,206,211,71,36,234,215, -207,254,240,132,107,60,221,195,255,113,193,254,7,248,248,224, -109,189,250,246,221,211,153,165,239,87,191,121,236,24,186,250, -122,33,245,106,117,33,246,229,39,47,87,223,124,247,205,215, -43,159,173,60,95,121,190,212,248,252,205,219,215,43,207,223, -189,253,122,229,249,99,229,149,95,190,254,231,202,167,223,191, -91,249,197,34,231,179,39,63,233,245,95,86,151,147,15,50, -207,86,126,251,132,132,125,177,242,187,247,112,216,199,188,151, -255,29,190,248,213,207,43,247,167,165,37,243,83,234,61,38, -190,252,193,248,231,86,252,226,205,119,63,165,222,34,237,229, -199,209,7,171,240,103,148,251,253,155,213,213,55,255,248,41, -21,159,50,95,254,112,242,226,203,79,158,61,123,241,222,240, -124,207,220,253,168,61,236,50,180,216,192,175,255,253,205,187, +TITLE("About Frames") +COMPRESSED +120,156,172,188,137,115,226,89,126,39,248,175,40,162,189,222, +234,118,185,34,165,188,171,98,34,108,183,103,118,28,225,245, +78,184,61,49,177,209,209,177,157,157,165,238,206,117,117,102, +109,102,86,87,219,51,118,32,129,64,18,18,32,113,131,196, +141,0,33,113,8,113,8,4,226,144,184,239,251,70,2,113, +95,226,22,247,254,80,102,85,103,87,183,103,236,8,235,224, +120,239,123,191,247,126,63,62,223,239,123,252,120,97,238,143, +254,232,222,199,247,190,119,239,127,241,243,233,95,46,254,252, +217,87,95,188,253,201,143,191,88,120,242,228,179,23,143,239, +61,248,236,217,252,227,207,254,175,167,159,253,243,63,255,243, +39,79,159,46,124,6,72,154,7,36,205,223,123,112,127,126, +97,126,254,193,189,123,15,22,30,207,63,124,122,239,233,195, +39,243,79,238,221,127,252,96,225,225,227,123,15,63,253,242, +217,235,103,191,250,201,143,159,61,185,255,217,15,254,246,17, +192,181,240,241,195,239,221,159,191,63,127,111,254,209,194,3, +128,234,222,253,123,11,15,230,23,30,206,63,121,242,96,254, +241,195,39,247,159,62,122,244,233,243,103,95,190,125,241,234, +229,79,126,252,179,25,31,192,117,31,224,186,247,248,201,163, +7,243,0,207,131,135,11,247,31,63,124,0,240,62,120,48, +63,15,188,158,127,248,248,209,227,199,159,190,125,241,246,139, +69,128,103,254,209,227,207,158,61,88,248,236,135,0,227,131, +143,31,125,15,48,110,225,49,192,249,96,225,193,163,7,247, +159,44,220,159,127,178,176,240,232,233,253,7,79,31,0,86, +207,47,124,250,226,237,34,96,227,207,0,150,25,27,192,245, +16,80,247,224,225,131,249,251,64,48,30,60,126,120,31,160, +122,12,60,63,184,247,116,126,1,208,249,228,222,195,135,128, +186,197,223,124,19,161,89,112,0,182,71,128,178,133,199,15, +103,196,79,30,60,153,191,255,248,201,194,131,133,71,11,128, +250,123,143,1,15,103,186,31,126,250,249,226,155,231,0,219, +253,133,249,207,222,2,6,125,246,195,63,123,248,217,60,192, +252,248,227,199,223,91,184,247,244,222,194,163,199,79,1,125, +128,169,128,183,247,159,62,157,191,255,4,208,247,96,254,225, +189,249,251,159,62,127,245,249,204,195,133,135,247,238,207,20, +62,1,134,224,17,32,248,46,30,15,31,205,3,230,46,220, +127,2,104,124,60,127,255,62,240,248,240,193,147,199,159,190, +89,156,13,194,219,87,175,127,242,227,31,252,217,71,247,62, +185,247,201,194,195,135,223,7,184,159,2,220,79,238,63,184, +127,255,193,163,167,15,230,239,221,7,148,0,34,30,204,98, +245,232,30,48,138,243,15,23,158,124,250,179,103,111,0,141, +111,31,204,130,250,195,63,153,159,127,60,27,249,217,36,2, +194,126,255,201,195,251,128,242,71,192,3,48,162,128,135,247, +129,216,44,60,125,240,228,254,253,39,247,62,125,254,197,179, +55,111,62,8,208,15,102,94,206,207,127,60,63,255,189,199, +179,184,62,188,191,240,224,233,44,58,247,23,128,0,47,60, +122,248,116,30,136,240,195,71,15,238,45,124,250,122,241,255, +251,234,197,235,197,95,45,190,4,66,252,2,80,254,217,55, +163,243,126,14,206,154,102,226,22,62,158,95,0,102,225,195, +71,143,238,205,226,245,16,152,10,11,247,31,2,1,191,55, +255,228,1,96,16,240,11,12,240,219,247,211,240,110,106,204, +166,197,252,253,143,231,239,127,239,233,194,131,251,128,29,79, +31,60,0,66,0,240,207,63,157,159,159,191,247,4,248,5, +252,2,2,115,55,49,230,129,217,251,126,50,205,63,248,120, +254,193,247,30,3,179,22,24,159,167,15,102,74,159,222,159, +197,109,1,136,250,194,163,123,15,129,240,47,188,227,90,152, +5,123,225,143,128,112,207,47,60,153,253,207,2,62,255,240, +227,121,96,246,3,118,205,63,124,8,248,122,31,136,240,194, +19,192,223,135,64,200,239,223,205,232,249,199,79,62,253,155, +197,175,223,252,229,179,183,139,239,103,201,15,126,248,71,119, +65,127,244,241,252,163,239,221,155,113,63,124,242,20,24,181, +249,7,179,136,221,127,240,224,233,194,211,251,247,31,46,60, +125,120,255,209,61,32,114,111,222,173,220,25,235,108,249,220, +45,189,247,34,30,127,60,255,24,88,71,128,119,15,31,2, +254,222,49,1,190,62,158,159,153,177,240,228,233,163,153,223, +239,69,252,244,79,191,120,241,114,102,3,48,25,62,123,55, +254,63,248,118,2,60,1,22,200,147,39,143,238,221,127,10, +196,1,112,255,222,67,96,106,3,75,255,9,48,176,192,184, +46,0,243,126,182,246,159,255,253,179,95,44,254,244,79,223, +47,204,255,254,255,252,211,255,246,31,255,230,79,255,235,143, +230,126,252,6,88,102,127,254,179,87,95,189,157,251,79,192, +192,44,190,249,227,159,252,248,205,189,207,230,222,63,253,199, +103,207,127,57,247,95,127,250,39,63,253,147,185,31,190,125, +253,197,220,71,95,191,248,252,23,139,111,191,63,247,203,103, +111,230,94,189,92,156,123,245,122,238,87,175,94,47,206,253, +252,142,249,147,247,66,230,158,1,77,175,126,246,255,46,62, +127,251,102,238,243,197,215,47,126,189,248,57,64,242,234,87, +119,82,238,104,230,238,38,229,220,219,95,62,123,59,247,243, +87,175,127,53,247,236,203,47,23,129,185,241,242,249,226,220, +179,151,0,245,87,47,159,207,174,60,207,190,120,241,246,31, +230,94,253,124,38,242,217,220,207,22,223,126,189,184,248,114, +14,176,119,241,245,59,147,126,246,234,53,160,225,142,231,5, +160,237,215,47,22,191,254,228,119,157,248,208,166,25,45,96, +203,140,122,113,230,219,204,143,25,219,139,151,159,47,254,230, +147,119,18,103,109,207,190,248,250,217,63,188,121,231,214,220, +215,47,222,254,242,29,197,220,189,247,138,230,94,188,153,251, +234,205,87,207,190,248,226,31,128,103,64,226,219,87,115,95, +190,126,245,235,23,159,47,2,14,63,127,5,44,115,192,233, +111,140,3,204,159,73,254,100,238,175,222,189,152,251,252,21, +96,208,203,87,111,231,94,46,190,227,253,229,179,95,207,252, +254,135,223,103,254,248,189,17,247,230,158,63,123,9,4,96, +238,205,226,219,25,199,223,124,245,197,187,72,126,244,125,32, +236,192,56,44,254,230,217,175,190,252,98,241,227,185,31,189, +5,248,159,255,45,16,252,185,159,205,4,222,221,65,238,188, +250,128,103,238,217,123,239,238,125,250,65,180,128,139,231,159, +254,143,191,123,245,229,127,3,188,125,245,245,28,224,249,203, +207,190,109,255,64,238,115,192,137,223,118,204,222,125,242,195, +87,95,188,122,253,209,143,254,250,237,15,255,225,217,203,239, +255,182,19,16,241,201,159,127,254,249,71,119,68,63,122,241, +143,139,255,229,213,155,143,190,255,29,130,31,45,190,157,201, +253,232,222,199,115,192,31,112,245,188,123,248,14,209,223,126, +245,242,163,111,155,126,103,136,255,195,220,159,253,217,139,95, +1,51,252,211,71,143,22,254,24,88,0,171,224,18,8,2, +2,129,150,71,83,224,17,116,11,219,169,198,135,118,127,168, +77,129,221,168,68,32,89,192,83,101,147,14,145,235,91,235, +209,17,230,230,16,177,197,88,229,138,204,101,20,8,99,116, +195,184,1,183,172,20,59,28,179,19,4,149,15,102,73,200, +98,21,163,156,140,57,46,166,249,82,153,172,170,57,34,59, +116,209,51,153,35,4,190,144,175,251,87,148,246,184,74,219, +203,105,15,52,161,253,250,209,89,106,71,149,79,10,136,218, +93,162,213,100,17,76,174,201,100,21,76,149,23,186,118,228, +74,48,120,53,121,166,175,241,18,201,54,255,220,172,129,91, +138,55,110,239,229,214,186,106,133,116,200,184,220,142,120,66, +244,234,182,221,121,5,63,24,249,21,13,150,30,125,196,166, +104,189,120,173,117,183,55,49,246,120,167,212,99,41,234,66, +159,17,84,52,190,173,56,231,198,151,216,190,46,163,143,206, +55,118,46,43,14,162,77,18,215,147,192,50,221,214,132,16, +109,215,171,88,194,94,76,60,188,132,81,39,43,146,178,150, +124,25,55,128,45,245,13,210,222,153,90,81,18,25,35,83, +68,206,161,98,66,73,137,203,124,237,70,209,163,246,182,232, +16,245,237,4,179,195,187,205,169,193,171,27,40,209,90,178, +131,6,181,86,174,167,155,108,56,247,182,189,156,56,23,76, +8,198,177,252,202,138,32,76,21,251,208,141,252,25,15,26, +23,69,142,87,122,206,75,112,224,168,80,63,130,4,147,212, +48,57,189,164,175,226,28,93,99,159,0,101,49,247,26,184, +115,174,234,32,207,218,199,186,195,195,205,91,247,37,118,221, +85,180,111,168,81,244,238,50,220,188,106,148,197,55,43,59, +160,160,235,202,18,219,114,128,105,168,46,194,148,52,59,119, +194,87,237,100,204,221,241,69,176,61,181,50,33,79,140,55, +84,4,245,105,215,18,13,183,59,224,173,92,154,188,213,9, +49,28,227,148,114,159,175,151,217,244,37,92,175,81,102,43, +120,29,140,191,195,227,21,46,210,76,12,33,97,69,195,48, +219,230,53,135,89,113,24,41,168,2,234,184,79,95,198,181, +74,180,86,172,166,188,222,190,52,47,111,51,111,32,83,184, +112,205,20,79,79,93,89,147,112,79,169,135,41,203,133,44, +170,34,23,219,42,4,38,11,178,19,14,211,96,48,109,232, +58,117,233,33,42,87,118,16,206,74,191,175,5,181,125,182, +233,161,125,66,40,38,189,154,243,212,114,178,113,121,194,38, +105,107,220,107,122,195,86,186,189,170,174,56,78,141,195,173, +21,84,254,166,176,114,51,74,67,215,53,251,210,192,105,22, +51,168,76,73,188,41,181,200,217,202,73,109,254,1,79,119, +62,221,46,130,54,143,26,214,113,246,186,42,87,56,133,8, +154,41,195,132,178,47,111,150,200,35,7,41,36,181,107,124, +40,104,136,161,169,178,151,147,60,173,87,209,10,83,10,181, +74,159,61,182,228,91,129,102,18,207,84,39,105,129,10,170, +199,15,173,169,130,240,88,213,75,147,173,251,87,165,254,182, +120,79,97,73,19,202,33,34,49,20,61,189,86,164,77,49, +135,174,37,226,94,211,66,233,20,228,228,214,228,169,119,97, +134,162,105,205,80,106,136,55,73,174,10,197,96,78,214,78, +53,135,163,212,141,188,232,58,10,131,215,185,35,68,13,163, +44,64,221,240,1,210,174,30,55,192,242,233,72,120,83,213, +244,16,237,29,229,192,218,17,233,58,205,222,110,139,77,202, +183,98,203,187,174,90,235,180,220,20,157,6,4,114,108,148, +44,88,103,41,55,211,1,82,22,46,102,75,203,65,234,122, +11,205,10,109,94,212,67,185,148,187,58,130,187,157,147,198, +222,228,250,124,111,69,72,25,136,216,181,240,86,213,11,119, +36,55,175,249,133,252,36,132,70,145,79,186,209,32,146,140, +237,117,211,180,252,200,50,202,140,183,122,67,164,38,212,19, +115,66,67,100,189,222,111,169,45,157,75,121,43,11,85,154, +224,57,80,91,51,8,85,111,247,188,98,97,43,158,12,179, +2,249,181,145,234,72,105,195,203,179,101,251,176,208,56,175, +20,42,218,186,46,100,232,136,142,108,254,224,41,26,29,17, +138,69,19,92,231,164,20,247,237,202,164,131,84,99,207,40, +172,241,210,209,240,21,36,190,177,170,232,98,93,75,177,139, +156,1,159,156,244,121,121,169,90,144,234,7,85,169,112,241, +118,243,220,50,57,138,215,14,196,213,186,0,83,106,178,149, +144,157,138,45,80,174,96,165,252,3,182,45,218,220,174,34, +5,228,141,129,187,232,91,74,50,83,252,193,165,114,13,173, +149,209,64,248,140,5,143,36,105,221,62,45,34,172,200,109, +198,122,202,101,6,89,173,141,234,32,182,188,232,234,116,208, +180,103,60,245,171,252,48,117,58,160,20,4,212,209,186,198, +70,178,102,19,23,222,205,93,93,156,200,174,197,4,229,152, +210,26,212,44,143,173,194,233,152,16,32,148,70,26,69,177, +61,89,214,100,248,123,204,228,145,204,127,129,28,168,221,195, +91,10,181,64,140,66,153,66,251,168,116,227,175,169,115,83, +38,59,115,5,178,42,76,83,120,17,11,165,228,50,185,67, +24,243,194,165,171,67,41,161,174,246,48,147,51,236,147,5, +177,56,174,130,104,7,189,236,211,120,55,122,124,51,242,48, +124,39,80,250,224,160,182,68,49,97,88,170,188,180,130,42, +46,119,210,43,250,124,230,70,230,71,46,5,2,217,184,218, +55,174,113,57,196,186,132,134,55,64,135,140,122,164,177,177, +102,88,11,28,16,211,236,100,80,102,55,177,109,212,242,161, +249,88,139,17,40,170,230,83,153,160,73,98,244,10,252,80, +44,145,25,172,108,155,132,72,188,43,21,62,149,148,174,77, +84,120,58,28,225,99,54,75,169,50,200,88,23,171,227,66, +181,105,178,47,131,109,136,110,226,242,64,187,198,189,138,187, +109,60,77,27,26,9,198,137,193,137,97,153,125,233,169,55, +89,20,181,166,185,95,58,220,170,18,146,200,1,236,54,148, +57,72,247,219,12,190,124,112,66,198,211,132,201,75,161,224, +250,150,13,97,131,29,106,84,18,220,202,146,106,171,231,88, +254,149,185,126,177,212,41,90,11,13,97,101,243,194,139,238, +107,142,91,25,241,141,64,81,196,226,14,235,91,228,171,156, +169,183,7,145,156,172,81,53,7,84,70,65,92,130,97,124, +26,55,216,136,221,237,40,200,96,172,139,125,128,206,197,107, +4,151,149,131,86,118,215,225,59,76,90,118,120,120,14,19, +185,55,2,130,36,178,39,218,103,164,147,253,102,191,71,103, +54,139,18,48,52,162,38,95,85,55,47,20,121,129,163,22, +28,106,29,112,86,26,115,226,213,217,45,34,131,242,232,60, +210,202,196,228,89,227,244,168,189,93,58,100,15,146,188,137, +187,151,158,164,122,222,150,91,231,61,35,28,146,182,156,234, +118,54,59,136,187,87,14,74,13,88,64,182,71,115,40,229, +30,132,56,181,105,68,69,200,215,150,245,246,173,160,124,202, +57,79,198,74,225,65,6,66,15,107,108,151,251,190,222,117, +102,231,132,203,79,82,206,28,53,66,174,110,35,7,41,210, +170,79,124,129,118,11,3,203,3,170,36,42,174,45,37,227, +28,50,173,126,174,102,154,116,46,7,62,50,118,200,119,91, +70,72,31,58,244,237,164,105,202,9,148,4,61,15,143,55, +97,61,142,204,160,48,16,76,188,44,30,14,94,43,221,50, +33,144,177,82,238,128,157,236,140,139,107,163,27,52,25,94, +221,223,92,217,39,69,92,206,227,90,170,218,195,156,171,146, +235,123,86,168,37,237,204,95,75,202,123,99,220,104,191,236, +183,213,141,218,11,254,46,87,222,232,113,97,59,114,143,235, +162,224,118,81,51,198,52,59,143,192,48,246,67,133,13,240, +102,26,170,217,111,200,32,75,54,74,109,217,193,194,151,228, +142,112,47,27,235,225,185,254,118,167,124,221,42,153,32,221, +142,189,131,179,55,44,215,142,109,73,70,21,44,156,222,164, +175,198,92,249,69,144,206,138,6,212,92,36,132,155,175,177, +9,187,248,83,225,46,69,201,153,200,215,185,103,155,166,66, +194,41,135,65,117,71,6,133,29,126,206,85,202,189,244,155, +53,249,113,114,9,164,141,245,237,196,224,81,54,189,214,237, +120,171,70,68,86,46,180,97,202,33,171,106,199,183,27,195, +43,237,240,110,64,187,3,171,150,77,234,93,135,122,122,62, +42,108,249,193,92,232,234,240,128,64,81,19,176,214,193,109, +134,156,109,71,229,50,9,111,223,113,109,160,133,245,219,192, +93,9,165,27,193,233,122,130,137,169,15,56,12,103,6,66, +125,112,133,91,155,134,184,42,196,242,217,5,203,85,19,196, +33,232,29,52,232,116,144,197,155,53,121,167,136,28,138,246, +96,165,108,149,191,19,224,161,157,235,231,161,126,133,219,59, +155,132,114,121,104,67,227,29,132,37,54,134,6,187,75,94, +26,68,240,158,104,125,5,158,183,91,109,45,105,58,165,182, +98,116,42,61,12,8,94,111,31,76,54,86,108,68,103,88, +187,6,1,209,43,38,60,201,130,72,134,57,232,155,61,5, +47,134,130,40,131,241,51,200,166,92,197,138,116,100,29,118, +193,11,143,101,218,12,94,224,232,16,83,179,219,170,88,94, +51,40,91,65,56,214,156,219,138,82,65,230,110,236,148,235, +36,124,199,83,133,51,53,67,34,211,215,166,13,150,68,148, +131,186,174,126,133,35,11,242,190,6,131,12,147,67,233,173, +115,79,70,181,149,223,44,25,201,98,194,114,21,73,95,109, +31,80,77,83,234,70,49,209,111,133,39,220,65,229,180,33, +222,207,182,182,225,226,136,151,76,138,39,148,230,146,157,132, +129,163,207,151,21,188,189,250,250,49,61,104,37,64,57,123, +23,225,224,249,200,53,36,220,120,14,150,58,141,166,128,73, +43,136,113,189,242,161,9,132,221,90,206,203,131,123,49,67, +167,166,223,0,110,8,125,109,81,162,63,244,145,243,187,241, +203,173,225,81,181,100,27,156,221,226,42,16,92,229,4,115, +24,145,196,36,249,241,33,25,155,194,157,100,236,229,156,31, +152,120,82,14,210,68,241,32,235,169,147,124,215,238,77,141, +201,44,203,112,223,115,123,219,217,185,16,82,236,225,227,65, +101,23,201,60,24,240,208,88,46,213,224,144,236,226,4,253, +235,64,237,28,87,11,94,240,251,189,102,106,88,54,226,203, +249,177,98,26,103,122,88,176,51,39,229,198,200,202,210,153, +22,52,194,183,119,78,177,173,169,41,194,145,118,141,213,160, +30,34,149,245,214,74,198,201,146,25,169,4,124,191,31,63, +75,52,34,122,79,160,33,17,212,163,165,100,137,154,116,186, +244,157,176,135,72,128,102,216,167,105,105,66,120,197,60,84, +133,218,107,209,161,99,180,157,113,45,171,42,214,229,114,227, +20,138,76,115,15,67,165,201,244,184,40,210,82,121,189,92, +200,65,30,123,200,2,222,217,152,130,164,232,212,224,8,175, +210,220,135,35,58,106,151,55,122,70,10,108,210,69,141,32, +89,115,9,221,59,82,221,76,9,106,34,95,107,8,198,221, +208,53,22,33,31,105,103,91,82,45,225,70,124,179,236,195, +143,245,124,235,214,238,141,150,189,161,172,51,40,145,58,149, +190,39,182,230,208,212,177,218,223,11,242,39,172,16,202,195, +136,165,72,91,166,181,171,233,134,33,95,8,94,235,170,62, +176,35,113,218,217,81,194,249,137,173,148,178,108,57,186,37, +199,227,78,226,213,96,195,25,55,110,47,21,212,22,21,71, +29,183,247,32,88,237,86,51,40,69,133,45,71,217,238,225, +142,118,235,0,26,88,178,21,116,106,57,77,206,218,145,85, +150,55,206,146,163,150,105,106,160,120,92,91,133,101,139,22, +185,19,150,134,173,14,117,206,120,80,57,145,243,52,245,13, +49,9,110,204,172,159,89,212,12,206,57,117,43,157,162,69, +213,94,56,54,25,246,154,225,12,209,185,125,74,181,180,205, +66,200,32,179,93,60,227,168,189,76,181,168,187,86,76,108, +170,9,215,122,132,23,110,172,67,139,142,45,74,113,37,102, +70,118,218,250,67,57,180,189,236,55,147,236,97,146,5,137, +109,235,185,166,113,82,116,229,233,173,73,204,200,246,169,89, +24,79,123,152,158,85,38,87,173,49,92,12,182,88,248,125, +117,116,119,147,96,5,132,108,37,185,186,78,218,107,22,174, +170,7,2,64,139,187,228,217,218,96,115,129,126,54,86,141, +42,123,206,76,131,6,11,239,164,171,85,244,180,137,105,20, +89,202,172,64,194,227,133,75,41,29,239,144,101,26,92,161, +189,199,76,192,112,19,138,34,1,132,41,160,109,51,30,217, +214,139,129,46,54,11,143,160,3,93,85,98,18,159,159,170, +80,56,10,64,112,123,238,114,140,103,47,8,198,45,38,222, +48,0,232,54,174,48,222,97,100,144,160,83,234,94,6,224, +105,76,125,179,54,77,9,88,231,166,1,11,111,180,148,143, +89,51,247,111,108,215,81,252,161,20,240,199,163,23,22,19, +199,170,1,82,210,46,12,195,102,33,155,53,104,239,22,116, +231,158,196,46,27,80,183,57,160,116,134,186,146,135,123,170, +27,208,253,204,58,59,190,186,55,26,226,44,200,8,16,207, +13,198,196,181,124,90,92,161,144,90,150,208,204,206,246,216, +182,4,92,116,213,87,86,120,24,228,228,110,19,174,236,132, +61,252,121,216,237,34,142,196,90,249,13,117,61,201,97,101, +194,75,105,146,90,207,137,30,35,125,154,196,129,74,147,181, +38,72,99,72,125,63,116,156,25,81,229,212,212,133,42,170, +178,107,234,93,117,152,138,87,82,70,116,87,172,49,81,70, +82,121,226,128,69,189,36,91,252,103,140,164,97,74,212,50, +217,220,17,146,13,225,161,41,223,64,183,247,72,238,255,126, +245,213,29,194,125,254,203,103,47,127,177,248,45,232,253,234, +205,139,151,191,152,251,241,15,230,0,136,120,7,93,127,50, +247,171,197,183,191,124,245,249,239,193,214,119,0,243,61,213, +71,127,245,242,205,55,47,191,11,54,255,0,142,252,215,0, +200,196,216,142,201,31,3,0,50,162,88,174,226,153,161,117, +169,198,231,239,142,116,248,101,13,156,47,162,45,175,31,52, +101,171,221,117,27,188,70,231,210,140,133,88,121,56,192,251, +234,199,65,150,186,236,59,182,224,109,86,210,113,30,206,150, +201,58,201,38,222,22,137,158,217,125,62,173,24,199,232,208, +4,42,137,106,75,5,215,123,142,57,28,82,243,44,79,137, +228,115,30,216,69,79,238,206,162,207,82,57,178,165,98,56, +232,169,134,87,253,148,50,43,82,212,194,157,204,145,128,89, +56,138,209,226,198,172,111,219,222,61,57,193,9,92,52,120, +204,209,218,219,106,83,58,88,129,243,250,122,208,133,199,121, +232,29,140,67,233,139,87,93,131,113,205,188,102,8,21,168, +250,139,150,165,85,128,52,237,233,109,54,90,167,92,82,29, +120,45,184,77,91,222,98,186,132,196,177,150,190,50,15,143, +121,247,249,39,158,72,120,237,2,206,165,172,158,87,8,235, +131,201,109,16,84,183,224,118,200,201,209,105,90,113,229,184, +130,244,2,80,185,198,193,152,226,163,215,182,33,19,154,188, +148,101,106,141,161,177,43,39,24,214,198,141,138,34,106,50, +147,59,27,52,173,118,143,149,214,238,130,174,183,117,78,143, +92,154,8,19,113,232,130,30,209,54,81,26,106,120,232,72, +75,8,173,91,180,55,145,152,21,164,67,27,19,138,198,178, +176,136,51,142,241,12,247,32,173,77,97,224,152,253,250,133, +87,238,212,75,105,91,145,142,1,37,184,133,226,83,254,253, +227,32,166,126,162,141,243,67,55,23,249,218,38,244,38,16, +42,104,143,208,167,181,220,237,152,118,123,208,52,65,245,100, +40,125,220,222,65,28,160,40,238,158,126,213,208,163,151,188, +235,124,211,169,18,220,27,215,54,212,4,205,233,32,90,41, +180,165,224,171,92,140,120,53,123,154,36,14,47,28,130,145, +82,30,203,41,107,39,136,94,118,155,183,158,60,97,171,175, +87,79,217,70,124,252,154,14,57,247,22,50,94,97,115,80, +64,92,8,203,203,242,161,122,127,187,16,223,223,241,19,182, +55,138,171,215,92,122,237,108,5,127,158,174,81,247,0,111, +12,222,200,102,54,33,61,62,90,45,138,13,240,42,203,168, +67,136,196,110,45,18,185,36,208,48,67,12,73,251,134,184, +155,97,229,243,224,37,247,161,101,40,151,103,124,122,60,246, +22,219,231,21,176,113,223,22,115,249,26,218,164,192,148,2, +8,54,152,98,114,66,220,233,245,228,252,132,150,92,218,113, +176,184,17,106,86,38,201,15,160,53,255,230,230,176,15,54, +57,168,209,136,181,232,66,43,163,90,240,105,151,62,218,166, +55,15,137,121,147,39,35,247,172,110,109,43,64,136,128,102, +47,80,222,155,250,114,52,104,128,209,97,47,179,147,188,208, +242,42,56,225,220,77,152,144,138,20,55,140,66,146,171,82, +232,149,205,82,29,101,131,147,186,87,166,25,73,206,131,36, +43,68,140,59,100,240,86,3,114,2,174,205,186,144,231,48, +7,181,114,125,197,52,212,163,116,138,244,196,170,61,44,49, +6,240,179,46,124,207,52,12,100,210,251,59,199,30,146,97, +149,82,11,28,28,198,229,149,234,192,185,29,165,141,214,135, +180,243,115,152,3,85,242,184,178,107,249,129,102,80,230,164, +144,169,226,248,50,220,83,173,113,18,194,192,73,114,124,216, +208,52,89,173,11,229,190,169,149,69,228,237,100,4,199,118, +14,101,12,7,9,129,91,2,22,134,195,105,241,158,140,37, +188,93,181,5,79,253,225,72,125,58,73,173,197,48,120,26, +117,188,173,26,180,174,138,199,81,117,218,128,37,92,233,216, +54,222,113,95,134,194,110,77,123,98,100,170,54,101,133,142, +148,137,131,131,2,26,172,206,243,115,192,141,88,19,74,181, +117,245,14,53,89,239,15,251,181,108,102,83,144,129,237,10, +175,130,138,164,12,76,107,85,87,172,38,73,22,193,12,178, +187,131,17,93,70,150,167,200,209,192,145,64,186,222,178,112, +248,20,230,238,254,110,225,112,154,99,81,58,197,237,0,214, +117,205,138,7,143,143,207,216,9,193,161,215,175,150,5,83, +124,88,242,54,160,142,216,119,211,112,252,197,242,50,130,89, +191,184,12,134,110,211,209,178,74,216,62,107,132,59,1,85, +52,111,27,238,156,29,137,215,76,214,243,129,222,54,212,157, +210,247,108,220,162,133,85,61,73,195,15,161,109,38,187,208, +41,119,161,113,95,148,120,142,84,174,3,104,110,68,190,64, +106,79,175,182,205,120,204,13,148,17,105,234,86,86,7,142, +210,18,124,35,146,44,175,81,82,237,12,62,172,202,112,139, +27,178,109,57,133,18,166,166,90,221,150,218,60,189,221,42, +76,52,83,144,148,87,228,110,33,113,160,85,41,116,146,82, +166,18,148,116,76,226,9,30,13,40,214,250,40,131,9,4, +8,55,82,218,36,237,44,54,129,207,85,219,106,41,255,240, +136,210,30,210,228,189,50,245,92,194,195,110,12,79,111,66, +96,14,174,157,226,34,73,136,149,37,171,42,51,17,238,1, +183,176,16,151,204,161,108,96,18,112,97,160,115,214,88,45, +185,119,201,94,182,114,67,115,112,74,44,28,92,240,35,253, +19,233,244,34,48,194,114,241,155,204,118,33,1,94,85,115, +45,184,156,180,237,67,1,8,146,103,231,92,55,200,60,224, +19,94,64,158,133,240,38,61,63,58,101,47,186,109,91,208, +97,234,40,210,56,88,211,53,98,88,222,136,152,12,158,230, +130,116,91,164,226,216,228,75,174,15,207,10,171,170,177,244, +10,113,32,63,190,40,51,107,98,245,169,238,48,31,50,228, +234,109,74,191,165,77,38,73,17,209,129,223,180,203,80,123, +64,155,87,148,65,132,50,64,228,111,249,59,34,189,190,81, +64,80,196,2,84,67,39,204,112,220,68,92,84,146,27,197, +54,197,184,56,59,101,206,11,213,234,43,153,103,47,230,171, +37,0,4,57,185,205,28,167,79,58,122,1,127,64,36,195, +104,65,131,16,118,112,29,102,67,36,108,199,249,42,127,41, +66,99,72,88,231,89,242,165,217,204,6,151,37,89,183,60, +19,41,195,33,227,147,33,233,68,76,149,19,82,103,39,90, +220,88,225,16,245,207,202,249,10,219,30,78,185,130,14,76, +167,208,41,130,121,212,194,82,102,192,232,30,145,13,251,20, +91,58,233,176,212,88,53,44,203,121,222,1,109,238,160,75, +218,129,111,21,234,78,193,55,132,73,121,222,28,80,176,6, +236,242,57,184,15,70,64,19,8,194,53,146,90,63,10,101, +209,39,45,92,7,234,133,213,162,2,55,230,96,187,153,135, +67,163,253,101,122,148,132,246,85,101,204,156,68,234,91,35, +39,141,212,235,18,172,163,17,150,20,48,10,25,81,198,25, +219,1,123,129,133,101,243,125,25,232,250,101,229,226,236,224, +200,50,138,118,14,200,117,194,16,203,61,223,176,160,15,236, +24,74,195,186,141,196,174,195,224,123,59,0,226,134,196,144, +32,194,113,199,117,44,216,206,182,50,149,147,86,5,186,119, +34,171,156,84,139,45,130,38,37,197,22,216,17,206,106,114, +89,230,237,105,207,133,164,96,109,247,220,69,45,4,129,43, +58,191,158,47,118,19,8,73,10,7,146,177,161,204,82,157, +95,167,131,176,242,176,185,198,59,175,241,48,141,29,47,102, +196,68,113,161,103,186,146,150,86,206,31,17,108,212,72,47, +15,34,135,83,178,75,161,205,231,182,15,142,7,205,94,238, +140,41,202,24,183,84,177,99,251,101,65,146,143,39,149,99, +56,17,146,66,171,175,5,203,66,197,17,184,160,238,14,251, +12,88,111,141,2,247,182,183,212,88,242,38,140,98,199,112, +49,66,15,113,176,77,142,140,226,153,226,42,110,25,119,16, +38,91,132,199,254,186,156,106,22,83,59,246,64,161,36,91, +207,121,29,136,253,172,189,147,243,56,219,215,174,188,132,193, +140,202,79,155,185,11,195,198,185,240,66,199,142,96,247,212, +92,200,185,171,196,182,115,119,79,133,227,154,50,54,158,194, +249,106,184,73,188,10,238,25,161,122,175,194,112,187,10,225, +19,8,16,94,96,133,72,130,209,68,180,27,105,149,34,189, +109,31,166,164,1,110,82,103,160,85,164,197,116,103,93,170, +16,90,60,82,99,86,31,165,131,114,154,82,42,42,235,55, +189,134,60,78,113,129,82,131,24,160,107,60,242,226,16,198, +244,54,14,228,101,201,134,179,106,196,244,130,129,53,33,25, +154,139,173,10,186,40,61,145,13,163,97,26,167,250,128,42, +222,56,193,52,16,48,101,206,50,61,73,83,117,176,75,211, +53,49,209,231,115,175,154,203,32,249,153,210,105,43,216,121, +221,214,122,105,76,77,30,68,235,220,29,115,27,103,60,177, +226,160,250,190,107,90,110,215,116,84,6,235,236,182,95,93, +6,83,133,8,230,128,120,59,62,175,171,225,118,34,58,139, +43,179,169,3,140,208,6,94,129,2,16,18,129,176,145,141, +109,27,17,228,44,204,32,100,123,223,132,183,34,82,133,20, +218,84,23,121,45,40,136,2,0,252,96,99,44,144,32,92, +198,36,75,242,226,82,191,169,174,91,183,237,231,100,136,79, +57,140,48,178,138,252,73,38,116,32,57,23,145,72,135,254, +83,147,77,6,235,143,193,85,126,95,175,137,177,208,29,26, +120,176,116,7,33,43,65,137,207,231,63,93,21,15,116,194, +118,205,60,192,85,242,167,78,203,173,36,7,101,84,1,224, +223,61,232,248,38,104,37,71,130,24,90,144,125,87,92,10, +19,28,85,162,85,241,30,41,188,190,173,92,15,70,233,155, +141,145,238,128,74,198,28,94,187,48,50,211,218,148,135,238, +59,182,112,157,210,85,74,173,27,31,129,252,35,232,121,54, +69,3,17,105,166,152,128,67,89,177,96,76,0,23,25,218, +53,150,18,100,183,105,20,107,130,192,114,168,160,114,19,110, +78,198,254,190,195,37,33,203,47,142,243,231,90,89,254,160, +228,76,133,167,219,226,75,85,155,16,116,28,247,241,222,92, +42,122,164,84,31,158,148,182,39,57,107,12,10,19,30,246, +199,129,94,67,41,204,40,220,46,249,69,185,115,105,236,49, +188,76,42,194,93,18,115,236,254,99,232,126,206,86,198,10, +10,129,154,191,138,19,20,119,213,161,80,43,22,108,118,99, +219,200,34,222,81,91,159,182,125,45,8,143,131,230,236,110, +192,168,81,12,161,179,47,102,151,218,122,102,62,205,65,76, +197,77,186,48,100,215,42,209,248,70,206,114,11,199,195,59, +28,124,211,81,38,51,18,41,57,90,237,206,10,7,184,61, +19,50,208,60,38,248,245,75,200,173,226,58,185,202,78,122, +106,232,1,41,194,50,225,53,144,48,182,31,202,244,41,27, +231,146,253,193,210,85,57,236,34,251,195,205,147,129,209,34, +101,167,124,5,6,145,181,107,238,163,125,180,72,155,75,181, +241,206,148,82,62,145,149,57,80,230,42,218,78,190,123,53, +220,16,13,76,200,84,108,112,19,163,236,93,238,176,125,1, +108,66,126,169,101,47,9,208,4,229,245,166,217,116,52,208, +47,75,74,21,13,169,201,58,91,33,25,249,22,242,30,73, +205,42,2,8,104,74,177,85,131,85,90,121,205,198,188,154, +18,57,80,167,91,103,144,185,184,155,178,108,168,113,45,16, +11,6,166,130,29,93,187,106,72,175,85,89,76,217,238,83, +153,113,171,231,117,178,51,199,111,38,174,123,218,194,218,206, +85,0,190,68,196,30,36,146,250,181,29,147,206,202,79,150, +36,30,53,26,68,164,135,220,112,129,57,220,217,135,13,40, +190,193,134,198,152,119,141,166,3,199,100,69,224,103,221,138, +229,205,14,182,40,69,170,209,27,187,142,233,68,73,205,216, +88,234,101,190,55,110,183,8,74,14,105,146,2,147,15,19, +131,29,100,181,231,5,83,175,140,88,164,177,174,243,195,181, +2,36,148,112,66,101,80,232,165,21,79,221,171,71,150,185, +176,1,87,222,0,183,7,25,46,158,232,70,56,7,75,5, +135,65,237,239,26,212,168,181,18,61,233,132,120,200,16,160, +45,93,133,18,109,204,18,125,39,137,234,136,82,240,115,167, +43,101,153,209,33,102,116,70,164,201,181,9,106,135,17,216, +210,38,61,41,106,223,244,142,163,52,117,31,16,173,243,249, +225,246,115,53,168,125,171,244,32,59,203,124,24,66,130,3, +1,253,152,84,103,249,0,54,166,148,196,244,164,25,210,49, +186,49,72,211,166,182,45,235,193,47,107,220,210,74,12,137, +29,170,253,128,232,85,114,137,78,41,173,164,221,12,100,199, +45,196,128,7,124,64,40,157,224,55,68,213,126,248,5,141, +82,58,93,137,9,125,99,97,226,220,61,35,128,48,44,131, +243,237,14,240,154,171,7,198,199,236,55,40,1,186,21,90, +50,236,40,116,148,103,150,181,14,11,232,211,211,162,211,88, +117,121,48,19,37,67,5,0,133,116,10,185,180,98,199,36, +60,113,82,25,16,186,226,60,222,30,40,84,36,26,101,114, +78,133,151,86,2,200,51,16,248,16,165,206,246,48,87,128, +22,197,32,92,23,172,236,195,152,208,210,202,134,15,121,134, +167,161,212,137,238,216,54,11,101,1,191,78,108,168,91,220, +97,254,140,130,56,225,194,88,3,58,118,56,74,29,21,71, +171,173,212,109,64,197,113,77,91,148,250,62,57,227,203,228, +100,224,75,255,246,104,137,100,172,181,117,72,69,117,76,240, +128,219,235,252,9,187,236,56,115,28,43,181,219,198,222,154, +114,115,51,105,205,15,140,190,115,193,25,203,51,12,105,84, +123,91,231,195,97,196,16,61,101,78,204,113,99,181,119,161, +57,245,215,87,72,120,121,166,223,142,230,137,170,62,139,186, +133,142,76,55,88,3,95,146,99,178,15,180,253,51,19,206, +164,252,14,200,252,155,87,111,23,223,213,156,191,91,136,126, +241,242,237,226,235,159,63,123,190,56,171,236,126,190,248,230, +197,47,94,46,126,62,247,230,213,59,234,23,0,46,125,246, +102,113,86,200,125,243,229,226,243,23,63,127,241,252,155,178, +242,71,95,188,248,251,197,185,223,194,205,187,2,241,171,183, +191,92,124,253,97,45,247,205,93,237,244,125,153,252,251,119, +165,243,23,47,129,198,89,185,27,16,250,14,237,190,171,152, +127,83,231,189,43,43,255,252,213,235,187,178,240,203,175,126, +245,179,223,22,146,191,229,125,243,9,160,249,189,182,153,129, +111,62,158,187,51,231,71,207,95,191,250,226,139,191,120,246, +250,3,107,222,233,158,123,254,234,229,219,103,47,94,206,80, +245,59,173,111,190,250,217,12,58,3,172,255,0,64,240,111, +10,210,95,205,188,5,172,124,231,211,183,182,126,9,8,154, +33,242,47,238,236,251,78,161,253,111,94,125,61,247,245,226, +157,253,207,62,159,21,217,127,47,12,63,127,47,109,238,213, +87,223,22,172,255,48,144,255,243,207,63,127,135,222,255,226, +139,103,207,255,254,223,23,200,207,42,193,152,187,74,240,74, +21,205,140,233,165,26,222,126,180,212,240,104,229,138,117,28, +131,166,165,9,117,110,63,65,183,171,231,233,217,84,89,66, +227,75,28,59,218,212,189,106,141,188,151,176,87,188,94,86, +36,118,140,148,242,134,230,154,172,120,56,45,144,4,155,171, +88,34,15,222,33,16,85,189,163,28,205,189,31,197,98,99, +145,84,221,185,219,170,231,78,221,196,181,54,244,154,210,107, +57,28,187,146,222,40,73,117,150,41,60,159,212,227,65,58, +204,67,35,24,157,130,110,53,5,233,118,19,184,76,146,32, +219,16,202,149,48,32,50,87,50,66,94,99,29,10,19,105, +67,219,251,187,183,238,34,202,217,175,139,138,72,70,20,219, +213,102,198,219,20,140,48,122,206,72,107,92,149,230,238,170, +0,172,40,226,246,45,146,213,72,112,163,185,115,233,88,179, +73,118,93,250,96,215,35,150,65,81,56,159,10,19,59,222, +166,78,253,133,157,84,26,151,80,43,148,237,219,66,9,87, +102,242,234,136,218,160,9,102,142,225,146,78,149,33,54,56, +87,69,242,91,48,165,49,206,113,175,234,38,74,221,180,62, +9,187,180,160,101,136,61,141,72,153,65,90,122,199,150,82, +174,113,247,97,238,139,93,74,99,67,221,69,59,175,65,197, +53,97,70,123,211,47,67,172,32,244,69,130,112,162,94,234, +217,24,26,11,10,21,30,95,82,215,97,235,192,71,253,8, +44,127,69,194,163,194,198,173,85,247,228,230,194,28,218,167, +139,170,193,50,221,125,128,137,123,81,132,33,93,95,69,30, +176,104,196,196,141,84,217,184,38,156,174,152,76,12,114,219, +72,175,16,186,167,168,228,174,72,79,96,202,233,229,210,145, +196,164,38,25,68,114,240,134,138,168,86,75,186,201,240,113, +199,224,201,27,203,30,224,201,200,210,57,58,129,171,169,11, +171,79,134,38,41,215,77,220,39,224,213,240,190,8,15,54, +228,122,84,217,189,99,36,27,229,133,163,250,250,164,187,203, +27,244,83,55,171,67,33,127,201,89,133,131,192,150,101,58, +220,26,64,108,157,226,147,219,72,76,67,148,110,138,144,62, +172,15,126,7,225,67,221,112,86,182,145,196,132,193,7,7, +110,131,129,182,196,23,30,23,219,9,253,70,13,223,29,141, +104,32,147,178,51,197,229,198,144,211,118,145,154,81,211,66, +254,166,5,177,142,34,91,155,253,2,135,125,42,234,174,194, +78,77,99,14,156,193,71,172,173,95,222,94,172,220,96,67, +197,147,86,86,59,117,75,183,196,131,169,152,32,187,245,199, +5,50,221,249,16,55,171,4,103,162,234,254,101,44,52,171, +4,211,77,25,246,172,18,188,76,30,109,238,247,56,246,201, +222,213,134,240,130,87,178,174,168,125,244,181,117,20,116,168, +28,164,198,112,127,163,45,109,251,235,179,10,48,178,118,28, +44,85,228,148,248,85,226,172,189,2,192,45,24,193,70,11, +102,172,94,187,50,11,74,68,214,170,236,50,20,161,140,93, +137,69,215,52,107,168,153,90,97,31,114,13,192,144,79,7, +193,179,194,32,110,95,217,59,201,25,69,219,48,114,29,46, +79,110,78,9,75,16,41,87,69,211,83,11,12,112,78,179, +42,229,214,111,51,96,87,253,108,146,129,213,187,195,179,97, +186,222,48,237,160,132,82,69,138,219,58,21,78,105,25,34, +184,203,9,245,98,212,227,48,149,207,65,145,172,149,77,192, +136,132,160,220,9,162,53,188,195,195,161,39,213,244,230,105, +70,235,0,62,69,104,106,62,234,74,23,46,31,75,243,204, +163,211,142,155,7,227,53,12,36,142,215,91,184,169,208,52, +211,158,187,225,114,215,194,101,98,63,81,203,37,215,150,40, +135,153,126,6,201,73,82,236,149,190,124,234,18,246,98,234, +134,191,206,119,56,143,240,72,69,146,43,57,11,231,33,90, +147,79,218,117,114,246,43,166,253,202,38,241,34,61,214,116, +46,115,20,215,197,160,27,207,82,243,2,202,210,46,0,226, +209,183,214,16,82,117,222,177,92,72,20,4,44,188,108,175, +71,240,252,227,192,217,230,161,244,102,93,222,232,112,93,56, +159,137,117,125,181,175,213,78,14,118,226,208,41,9,57,189, +9,182,212,125,225,78,103,34,72,54,178,21,250,176,190,225, +101,134,177,222,12,175,106,222,34,133,241,156,96,54,29,35, +11,146,37,94,252,122,95,19,243,81,168,241,163,154,21,87, +210,113,96,131,30,98,204,46,44,113,236,203,150,200,202,202, +169,101,210,111,208,150,33,234,14,104,197,153,193,165,148,120, +76,2,123,190,34,216,245,183,149,70,184,241,144,35,197,245, +248,234,198,117,138,74,89,194,43,169,174,201,18,219,129,195, +122,183,182,197,206,252,64,141,169,38,206,28,71,123,117,52, +59,13,198,164,248,125,147,69,162,233,52,17,22,107,127,25, +203,145,75,29,38,117,167,122,68,233,204,80,124,158,90,200, +19,147,8,166,112,20,64,95,178,19,3,187,201,193,55,25, +150,178,141,41,94,236,227,175,107,236,14,223,14,210,184,158, +196,147,6,160,84,31,82,218,165,122,9,137,246,73,112,76, +212,222,230,5,49,131,205,113,81,224,11,241,66,165,176,37, +246,100,58,200,54,141,133,53,72,249,87,96,76,252,156,19, +180,182,147,53,13,100,176,202,141,39,140,246,122,71,197,166, +20,236,80,115,18,65,174,180,140,195,27,52,20,145,61,180, +28,135,131,197,195,108,25,163,116,45,179,115,250,107,159,39, +181,222,82,94,163,201,249,67,203,160,39,239,251,213,125,65, +136,165,236,12,110,67,163,77,135,164,174,8,55,92,12,114, +176,195,3,15,163,91,80,110,207,111,51,181,220,146,179,64, +21,182,179,133,235,154,186,150,77,38,123,7,62,56,89,113, +158,201,195,59,114,247,129,173,114,132,77,78,171,147,113,135, +35,115,94,168,165,187,161,73,135,54,5,33,157,222,125,74, +76,168,28,160,26,170,62,104,80,238,92,109,174,108,8,33, +55,69,116,122,237,74,42,114,165,161,24,179,95,74,132,250, +119,42,97,170,112,153,226,10,162,194,12,77,252,82,42,39, +202,112,135,210,90,242,186,110,57,115,49,98,97,73,83,85, +212,215,188,166,242,32,111,27,28,12,116,24,35,178,13,106, +24,56,2,172,241,242,162,101,13,181,236,2,249,198,208,202, +217,43,117,87,87,16,91,168,132,30,222,88,222,144,161,249, +170,80,153,120,176,206,13,233,196,73,165,247,186,30,37,101, +96,186,110,129,18,179,27,196,78,98,185,133,241,107,110,92, +235,226,235,181,245,176,194,237,63,68,117,146,107,185,229,115, +68,98,173,70,21,238,174,13,200,26,21,154,79,245,171,111, +67,70,117,59,222,190,41,218,235,2,210,150,179,83,180,194, +58,10,250,114,88,189,42,8,69,8,52,92,121,111,89,57, +208,177,247,13,21,219,54,187,152,54,244,189,2,38,219,235, +57,26,50,49,3,194,114,21,214,73,2,48,222,43,220,90, +71,251,171,43,173,138,178,143,35,142,250,187,145,150,38,178, +191,11,27,20,247,252,49,159,127,9,24,215,237,168,98,165, +138,47,21,19,3,129,64,89,32,149,73,6,97,136,185,17, +74,192,183,19,6,113,39,132,21,105,139,164,242,169,66,41, +14,49,176,70,133,142,119,182,125,110,197,24,168,116,154,155, +40,25,158,216,179,21,36,2,15,2,0,71,186,188,193,245, +186,55,162,221,27,97,171,68,83,31,123,146,35,69,200,235, +56,202,57,135,74,197,56,199,225,157,25,141,234,13,10,36, +30,216,90,25,72,38,200,193,141,0,221,217,217,64,116,252, +238,218,1,101,32,208,210,187,35,132,85,20,54,231,180,104, +146,203,128,18,101,221,236,200,70,84,220,229,28,86,111,150, +170,102,186,158,17,146,39,142,106,50,234,182,219,24,55,93, +85,134,87,19,123,217,57,202,7,171,42,151,240,20,221,145, +197,34,43,109,9,3,134,45,161,58,113,53,132,9,238,184, +58,102,71,239,102,90,102,148,234,122,77,238,102,121,51,37, +10,231,86,145,187,75,171,129,173,45,107,192,160,160,79,86, +151,151,241,187,18,28,193,22,138,32,65,21,124,185,215,224, +198,172,9,156,95,229,80,98,236,181,51,81,176,24,230,5, +65,185,100,38,38,174,14,210,131,4,7,111,162,129,40,90, +177,54,158,105,244,202,58,174,63,105,139,41,15,56,62,149, +24,27,240,118,24,100,163,14,199,192,242,168,208,85,224,78, +135,203,236,172,174,6,228,203,113,68,230,244,106,41,210,216, +75,209,71,121,212,173,166,144,9,186,60,251,132,157,36,232, +50,224,114,209,118,173,98,95,46,158,83,177,120,88,68,69, +20,226,156,116,247,209,187,88,56,125,4,206,159,73,85,93, +39,158,33,217,75,198,123,38,142,222,198,116,11,243,160,14, +87,166,104,56,15,228,113,136,100,82,246,8,144,56,72,178, +77,195,180,252,73,238,113,206,102,189,209,90,105,52,208,234, +21,95,105,119,54,211,250,137,82,7,243,161,149,27,58,218, +176,5,86,187,111,135,86,223,33,125,40,139,110,70,203,19, +211,97,0,37,32,201,214,93,208,142,108,255,184,152,130,174, +15,41,44,83,113,25,115,28,227,222,118,119,123,205,136,180, +215,62,64,12,148,183,107,198,32,184,4,3,13,110,250,240, +65,43,74,62,161,132,46,224,197,29,117,215,144,71,28,152, +66,43,78,50,198,126,156,225,110,69,107,6,84,33,126,54, +30,159,17,91,202,22,254,96,156,26,105,179,227,82,198,71, +145,238,141,247,121,193,3,41,167,130,141,80,205,149,67,203, +17,110,111,53,213,151,92,236,54,210,185,238,113,25,23,246, +65,185,160,22,114,149,42,216,118,111,11,167,235,203,203,148, +50,248,132,50,216,112,83,120,55,183,229,42,169,17,80,197, +165,151,160,126,118,9,86,22,108,142,36,229,72,36,186,217, +200,203,237,213,196,116,43,76,66,251,73,146,43,150,116,216, +136,57,25,136,22,112,159,139,192,5,136,107,135,90,52,206, +153,6,198,209,74,181,141,216,60,245,9,15,198,129,19,204, +161,3,111,209,155,200,104,213,41,128,226,25,222,12,37,133, +16,149,0,16,79,60,221,8,56,130,194,68,61,204,143,19, +14,19,236,73,47,103,91,154,32,100,24,137,10,55,22,141, +162,77,155,85,77,101,27,119,161,102,85,239,220,26,183,37, +163,35,203,241,173,143,55,232,81,157,196,110,113,31,165,58, +139,157,100,219,205,152,189,152,245,80,15,3,107,59,209,131, +227,138,243,38,56,137,173,151,109,147,246,142,61,142,172,102, +139,34,82,80,79,71,22,215,169,7,213,132,154,17,10,15, +97,57,244,142,118,59,29,178,227,226,200,188,24,101,34,4, +82,75,16,15,77,78,229,138,111,213,208,137,86,88,236,157, +182,219,2,236,177,185,191,229,59,41,184,193,26,156,119,90, +14,202,37,118,99,164,115,11,34,243,237,21,198,205,85,219, +8,66,185,98,253,4,101,47,122,185,147,245,97,213,33,196, +165,246,66,187,100,79,228,215,161,215,106,213,229,82,155,216, +153,128,106,17,117,211,237,11,103,91,235,248,245,164,178,92, +12,12,131,85,115,37,80,41,192,173,121,253,205,116,195,192, +44,227,210,186,172,111,247,34,178,223,105,39,46,2,194,213, +192,230,240,200,177,4,197,123,125,70,197,153,4,142,119,159, +211,162,61,89,124,123,163,158,83,24,172,151,200,104,72,138, +82,108,103,241,13,249,13,104,40,106,242,97,248,200,58,176, +158,107,43,5,121,5,178,113,150,114,117,180,90,67,82,172, +221,46,44,91,220,174,157,184,60,140,37,149,237,155,9,84, +171,152,27,79,49,99,74,207,70,77,209,33,219,217,80,84, +199,166,55,32,57,212,148,20,117,209,170,167,221,24,149,137, +110,235,167,201,211,246,222,160,164,115,168,49,103,87,3,209, +185,195,62,69,206,138,152,230,129,207,123,198,84,123,155,76, +181,25,89,220,228,223,36,43,37,78,113,133,33,151,131,218, +102,100,123,111,195,2,60,50,140,117,202,122,113,133,38,95, +201,25,15,28,179,82,173,95,199,156,8,49,234,170,92,46, +122,71,135,177,140,218,5,255,170,165,140,20,186,103,197,100, +134,13,25,52,25,188,177,107,237,128,133,119,170,195,205,99, +47,92,39,36,183,33,102,225,233,224,56,179,166,183,0,253, +22,161,93,48,240,215,1,122,199,116,25,149,84,148,60,92, +196,214,122,18,39,136,238,238,179,213,55,179,146,177,21,96, +111,208,213,94,28,83,109,33,120,153,106,142,151,188,1,188, +101,218,222,189,245,250,238,222,194,207,100,73,249,48,165,66, +81,84,197,173,228,185,41,67,62,178,204,122,201,44,78,195, +3,103,3,244,170,59,247,144,201,186,124,136,199,188,171,100, +167,51,67,97,34,103,158,133,161,153,217,18,43,173,179,10, +114,21,205,42,5,60,202,96,133,6,112,31,52,60,61,102, +192,131,234,20,122,220,176,89,120,48,104,147,187,5,122,129, +199,103,178,118,128,32,120,128,24,104,253,106,146,212,44,220, +233,14,218,42,8,189,208,240,164,98,123,179,26,115,202,140, +164,166,136,28,53,255,178,83,176,179,213,171,49,63,179,90, +169,226,206,116,242,141,158,167,70,62,235,14,228,253,105,210, +183,135,143,42,40,34,21,22,148,201,172,95,228,8,170,24, +109,109,171,139,240,26,55,82,238,195,17,254,64,222,170,96, +186,32,66,174,183,20,85,58,38,214,252,208,40,230,199,39, +102,73,207,49,236,239,228,54,122,173,86,31,118,107,28,163, +250,14,94,146,3,107,6,199,120,197,96,188,227,194,183,38, +122,108,10,63,166,34,115,142,201,86,167,54,134,245,242,24, +84,115,138,242,95,129,44,223,129,242,127,254,230,14,175,206, +192,230,155,197,197,143,191,129,183,119,192,243,243,207,191,217, +111,254,110,163,248,251,109,216,0,172,157,109,15,127,183,149, +252,219,61,217,127,247,234,14,137,190,0,192,238,191,152,20, +0,96,245,226,91,0,241,206,61,7,88,223,2,152,249,197, +12,185,190,135,179,119,138,222,60,7,32,238,243,95,126,7, +204,190,121,251,250,171,231,239,183,214,207,207,125,250,129,130, +159,254,247,111,161,236,175,95,188,126,251,213,179,47,230,126, +253,234,197,231,239,72,255,250,25,224,218,219,143,102,91,162, +127,250,199,115,175,191,255,33,245,159,254,143,215,159,124,177, +248,243,183,115,63,253,147,159,254,135,185,133,123,191,133,196, +63,253,167,255,137,72,0,79,207,54,95,127,52,123,0,100, +190,249,199,239,8,125,243,143,159,60,255,205,191,81,230,127, +121,6,4,232,163,191,124,253,236,107,64,226,215,31,207,82, +11,111,222,206,253,11,86,127,253,201,140,240,110,151,247,59, +7,62,158,123,253,201,219,87,95,126,12,232,155,189,252,207, +139,47,126,241,203,183,31,125,255,227,185,31,253,245,219,255, +227,245,226,226,135,155,200,191,53,227,167,255,244,217,239,230, +28,126,252,131,15,67,246,147,217,238,248,55,115,95,125,249, +110,232,94,2,230,126,113,215,241,219,36,203,44,33,242,249, +226,108,28,223,0,211,229,13,16,142,111,179,42,175,1,227, +158,205,114,27,159,188,63,243,240,230,237,179,215,111,223,124, +56,147,190,37,249,150,105,38,239,249,179,47,190,120,243,161, +29,119,121,155,187,3,6,119,74,129,73,246,203,197,185,119, +167,57,102,137,151,223,74,121,189,248,37,208,188,248,18,208, +50,147,246,211,255,253,253,9,134,111,253,122,63,110,63,249, +144,242,213,151,95,190,122,243,2,152,134,95,190,126,245,124, +17,152,167,63,253,211,111,143,36,188,203,222,124,190,8,24, +123,55,165,223,222,41,190,59,195,243,249,239,122,11,144,1, +6,190,88,252,245,59,162,247,121,173,15,168,102,134,124,124, +151,172,185,75,227,124,13,44,162,55,31,207,216,158,191,250, +213,151,95,189,125,207,246,161,200,187,64,125,216,250,205,137, +140,119,71,40,102,61,207,191,122,253,26,112,226,238,20,195, +55,99,50,59,55,242,226,229,221,89,138,111,220,190,155,90, +63,153,3,218,94,125,253,102,238,203,217,187,89,224,0,99, +102,66,222,143,36,48,134,127,32,3,245,126,165,126,144,97, +122,71,255,123,121,166,247,171,242,174,115,254,59,167,25,102, +249,188,215,239,247,143,220,123,127,113,153,255,95,165,159,254, +77,89,168,248,108,59,201,245,221,118,18,157,12,235,41,211, +127,103,59,9,247,221,118,18,200,58,159,27,227,238,115,229, +209,110,165,28,133,3,159,211,211,222,164,180,24,21,219,216, +108,7,73,114,49,62,116,168,241,241,236,182,171,139,220,43, +22,181,7,35,179,154,107,171,217,157,182,218,50,109,125,208, +76,199,128,251,134,171,34,145,120,133,237,174,220,157,40,249, +36,253,220,81,75,52,148,119,35,249,42,37,208,217,86,38, +106,113,231,137,99,84,131,67,108,74,136,165,91,195,163,235, +233,117,37,83,81,61,205,163,44,65,163,47,123,185,209,173, +169,122,102,108,172,193,137,99,109,222,154,214,75,214,90,107, +149,137,177,197,139,83,249,199,160,115,109,21,193,93,169,174, +122,17,59,86,182,226,4,39,64,155,180,136,1,101,61,76, +41,94,6,171,114,37,236,100,235,152,59,45,45,21,160,244, +112,62,178,227,75,93,216,53,37,245,78,207,78,28,225,36, +142,126,34,79,234,137,162,142,158,168,156,162,202,174,253,144, +179,22,26,41,57,234,35,55,216,215,23,190,170,245,70,39, +47,83,180,160,4,200,226,215,168,64,102,8,123,154,113,224, +61,87,93,152,114,117,60,246,192,56,117,29,17,35,154,116, +64,27,4,193,40,182,118,201,223,230,194,13,156,155,146,204, +226,135,65,150,252,48,120,115,175,64,115,143,205,145,164,98, +211,3,58,15,217,145,58,133,151,28,223,247,123,215,78,54, +83,141,190,38,39,40,28,25,195,155,212,171,125,225,54,232, +250,186,158,112,152,7,186,155,107,16,98,243,66,166,160,95, +79,168,178,99,84,5,165,63,227,130,123,180,210,182,228,216, +116,74,26,247,70,27,178,19,226,233,105,51,106,14,30,75, +193,91,70,213,150,125,246,52,113,100,175,29,181,124,167,166, +58,110,36,26,187,136,236,182,245,56,121,146,85,43,86,182, +215,212,134,90,211,189,204,187,144,221,20,241,138,42,140,204, +192,183,16,177,201,5,97,173,93,83,85,206,183,69,27,22, +119,147,112,153,146,94,177,61,132,161,65,32,86,13,69,129, +132,59,129,49,240,193,151,200,68,9,125,81,88,57,209,234, +1,0,120,10,81,14,70,104,163,49,164,203,246,46,93,92, +23,108,153,22,235,11,143,106,205,188,25,223,196,30,78,176, +237,117,129,205,3,90,242,26,78,92,137,80,92,15,231,11, +211,39,37,7,242,0,20,54,241,65,226,204,214,218,254,94, +188,233,202,145,53,75,49,131,129,218,153,26,18,151,73,49, +55,22,85,84,35,44,240,246,177,57,67,181,168,200,96,141, +161,209,37,168,73,5,164,248,96,9,109,190,108,151,221,234, +92,147,8,181,138,142,113,60,62,182,157,118,246,247,180,132, +74,73,93,152,180,80,227,190,53,212,160,37,163,124,52,5, +29,183,135,170,215,189,250,97,186,39,0,135,173,62,13,61, +183,205,38,48,88,75,232,218,196,100,140,219,132,158,35,77, +55,168,16,238,108,16,205,216,91,124,109,84,67,151,28,253, +115,252,128,82,247,33,215,121,238,155,243,34,130,169,60,241, +72,100,55,83,67,106,239,140,64,223,220,167,185,85,214,253, +182,123,131,142,235,236,104,134,123,245,140,92,56,174,54,107, +117,152,73,133,84,170,171,183,135,206,134,53,180,57,206,114, +170,194,202,197,209,110,164,168,74,139,220,234,196,158,12,19, +46,115,154,43,164,195,81,118,144,69,107,216,236,86,151,154, +108,109,207,242,79,146,204,4,90,67,167,32,93,23,28,22, +149,108,17,41,209,65,193,128,225,94,97,205,6,222,177,66, +142,170,7,92,227,115,52,138,220,221,137,230,240,100,98,55, +93,164,229,167,145,219,234,109,107,56,118,80,187,147,70,172, +67,233,81,202,19,201,137,174,209,62,27,99,73,91,49,155, +17,116,124,150,170,100,135,50,125,87,97,191,141,166,184,254, +92,83,21,242,169,172,65,89,206,213,153,182,139,153,176,103, +73,149,100,212,213,29,145,45,236,15,157,130,119,195,91,120, +212,4,215,62,177,250,98,157,72,116,44,188,101,46,135,122, +215,226,142,61,238,70,64,33,21,152,77,119,118,40,108,132, +3,189,228,184,54,201,208,50,114,233,102,23,223,11,79,50, +168,9,18,187,214,185,8,142,11,43,122,7,194,141,222,140, +86,79,154,106,246,104,83,199,187,142,148,107,105,95,104,221, +194,133,237,82,10,2,245,228,144,1,163,136,220,107,44,60, +230,134,81,148,100,193,235,168,182,31,188,141,67,68,52,229, +164,214,218,102,226,21,93,183,143,88,60,32,224,41,225,212, +52,220,114,110,81,82,103,7,160,182,220,53,217,100,31,108, +102,211,19,6,221,232,50,213,45,215,189,154,72,87,9,103, +120,177,149,108,84,62,153,232,15,92,154,180,23,211,166,215, +61,107,151,82,137,187,126,193,63,216,135,141,41,5,199,24, +150,28,236,201,210,102,56,213,78,58,149,178,76,35,63,173, +125,140,113,83,122,211,154,76,189,172,53,196,227,213,206,37, +171,48,57,20,180,134,155,96,119,185,128,42,237,123,178,13, +149,15,164,118,198,143,54,112,100,184,22,159,226,197,155,186, +60,150,109,42,81,10,58,11,150,116,204,167,131,49,113,35, +7,103,107,83,106,73,214,93,246,9,234,144,116,134,22,181, +142,176,214,87,239,200,194,248,13,89,56,191,137,89,23,90, +243,8,254,49,206,139,93,79,136,147,167,173,9,131,119,217, +247,172,36,210,107,1,159,62,171,94,57,172,117,144,91,37, +236,170,64,77,81,30,76,153,45,123,67,53,220,176,92,27, +214,41,29,55,73,21,7,117,106,131,147,141,218,64,150,223, +175,138,234,122,125,247,6,33,22,52,8,77,157,144,227,46, +162,115,132,86,142,216,89,35,239,141,86,82,121,129,194,114, +50,32,149,14,235,61,236,33,108,12,62,109,120,251,141,248, +96,11,59,246,99,29,155,110,159,16,38,228,94,23,216,16, +27,249,6,186,122,184,116,194,144,158,247,24,235,82,17,43, +173,45,14,236,43,237,219,224,224,150,113,85,167,152,226,132, +160,144,96,170,239,86,45,154,113,156,65,14,72,165,39,87, +233,174,158,135,245,113,175,213,222,241,165,21,134,24,104,21, +251,187,161,76,76,148,62,185,230,159,88,52,155,25,165,119, +109,159,162,167,45,141,33,172,233,202,237,45,8,74,242,4, +202,168,46,50,120,225,231,199,172,188,154,80,36,173,72,26, +0,244,191,33,75,5,8,84,222,30,136,88,169,23,138,234, +150,251,56,100,102,83,217,133,220,186,82,161,104,37,71,49, +220,173,47,97,227,208,147,36,234,245,86,9,214,17,118,29, +242,75,53,126,55,78,66,243,247,114,44,180,32,193,163,136, +164,126,16,127,120,181,143,33,163,221,233,68,193,228,75,9, +207,179,171,142,35,144,226,226,118,223,116,234,46,28,80,14, +196,187,110,195,41,170,146,224,180,184,195,11,198,68,16,38, +212,29,82,114,45,224,144,95,59,53,117,219,206,164,239,37, +156,248,109,82,122,178,34,147,30,12,105,248,144,181,120,171, +114,187,234,94,116,161,201,224,215,138,221,248,154,81,148,220, +194,177,161,76,111,169,206,165,131,2,114,119,225,166,147,86, +97,244,171,10,43,79,189,101,199,52,12,101,20,170,16,85, +70,81,185,102,80,221,191,220,222,11,226,35,229,117,204,228, +152,137,171,196,85,145,157,58,31,33,207,186,208,154,14,186, +95,177,224,101,3,231,128,209,15,113,241,166,224,10,200,166, +116,215,243,226,20,157,178,195,160,76,193,110,58,197,186,121, +126,227,112,173,99,172,121,46,107,3,188,89,209,236,55,46, +229,144,37,159,115,249,34,75,195,238,203,99,189,44,52,210, +203,243,219,82,178,245,34,19,141,9,178,246,152,52,239,18, +103,157,233,77,73,58,22,58,27,13,166,13,48,87,174,51, +178,79,72,88,53,23,194,229,72,59,219,16,68,50,68,169, +225,19,201,169,209,159,84,131,171,192,125,43,73,231,139,206, +81,181,229,171,125,135,129,153,221,119,27,198,92,16,4,34, +184,182,31,155,240,130,203,94,21,179,79,151,187,185,101,7, +52,92,85,235,226,232,82,76,186,22,191,10,31,128,114,103, +251,233,196,241,149,183,100,88,227,224,141,116,138,118,235,102, +150,122,42,234,184,251,254,168,35,118,192,246,153,84,91,216, +64,135,81,38,238,92,194,61,126,132,126,95,145,65,65,68, +8,99,72,97,85,77,96,162,228,122,199,112,48,68,134,6, +34,50,100,98,39,199,3,58,17,100,143,3,186,109,209,249, +18,115,222,46,39,249,229,225,94,225,34,193,39,85,176,188, +110,243,220,116,18,217,225,158,141,67,198,208,48,183,166,143, +130,241,198,224,198,112,148,132,148,156,217,14,61,185,15,115, +226,137,89,92,217,88,87,39,173,89,157,30,140,192,236,50, +16,86,184,241,218,2,34,118,205,179,253,35,254,235,11,188, +25,145,52,111,113,208,55,92,222,245,106,115,121,183,76,93, +49,198,148,129,157,74,68,76,146,203,10,253,221,104,18,181, +127,75,8,194,161,216,224,250,49,166,97,98,196,100,16,218, +176,177,51,75,60,17,101,14,100,35,218,168,42,108,76,167, +35,96,30,44,187,199,90,164,160,174,83,212,75,146,64,139, +123,27,244,116,192,154,66,124,171,215,41,88,251,187,219,158, +213,220,134,49,150,93,93,94,171,242,57,19,213,120,144,203, +215,70,84,56,85,209,103,164,74,81,153,157,197,114,201,176, +172,30,246,128,36,46,163,251,12,136,198,126,230,52,239,50, +42,8,37,214,203,185,41,51,28,88,62,195,121,166,27,43, +55,201,6,117,156,188,186,74,25,176,178,202,242,150,54,217, +103,209,14,165,87,230,110,172,206,89,26,219,93,55,72,197, +77,185,16,199,17,251,249,208,5,37,33,95,58,236,251,70, +173,160,158,210,10,198,115,246,147,67,89,68,226,202,27,229, +185,158,253,148,32,174,166,141,92,75,181,40,198,75,209,87, +177,224,217,77,163,47,228,57,57,69,141,243,90,179,17,35, +231,121,48,9,14,139,165,244,155,16,255,89,48,203,72,95, +113,75,178,35,77,81,159,204,66,171,194,226,118,146,88,31, +12,58,177,168,179,66,154,90,60,250,53,135,5,57,194,41, +118,90,167,89,79,198,178,42,118,240,196,28,111,90,235,218, +59,27,41,139,250,2,222,70,25,53,27,183,100,223,154,135, +147,55,77,46,79,92,173,38,34,116,188,39,115,54,198,18, +193,97,102,232,150,120,212,71,216,12,71,23,94,131,197,247, +236,252,246,49,118,112,129,100,162,66,118,206,201,132,197,55, +11,14,68,20,87,213,73,67,240,78,151,86,157,40,80,221, +157,105,12,55,107,99,170,183,222,47,20,61,44,236,93,222, +105,179,224,190,203,59,153,131,18,179,49,210,41,168,65,100, +115,69,63,189,90,106,215,64,200,216,196,84,120,183,123,4, +171,172,202,103,121,39,132,219,158,88,135,94,31,70,192,244, +37,98,167,70,173,141,45,41,250,222,150,53,199,218,66,170, +253,197,98,96,123,136,179,213,131,149,82,125,205,172,117,79, +161,244,177,167,131,186,108,242,156,45,198,129,114,32,76,239, +111,135,32,198,83,226,222,116,8,182,241,12,59,212,164,103, +201,198,64,29,242,203,50,129,13,86,20,160,182,153,97,125, +224,16,88,65,49,75,246,176,162,197,29,200,70,37,182,156, +73,129,220,154,55,199,208,29,16,93,152,231,215,10,83,179, +228,106,64,116,208,214,10,91,109,48,252,196,139,54,198,59, +133,44,158,19,232,34,232,161,94,211,41,40,28,11,199,69, +240,144,227,141,90,116,89,193,68,129,31,118,130,230,98,163, +103,58,60,51,37,157,237,101,77,191,88,80,139,142,6,55, +102,240,217,165,91,77,72,231,156,163,243,54,33,185,218,81, +27,57,83,109,155,64,9,248,224,61,145,122,43,112,5,119, +214,242,3,93,161,225,184,30,216,145,197,205,181,45,145,122, +15,184,252,48,51,196,36,106,80,190,164,26,189,230,59,198, +78,248,12,191,65,145,165,208,100,11,192,238,59,32,51,27, +222,12,211,168,112,15,218,43,235,69,241,88,237,46,138,3, +30,218,86,59,119,4,8,176,242,213,5,204,30,30,146,60, +226,248,50,3,122,32,163,145,224,104,237,112,137,219,241,193, +197,148,114,143,176,76,241,145,193,87,3,102,121,223,100,220, +188,108,7,113,29,81,192,179,135,47,237,169,131,117,49,32, +160,209,189,186,179,167,127,1,216,99,106,27,215,211,128,210, +204,32,83,17,3,173,98,181,184,70,0,90,245,194,80,190, +56,72,9,128,166,164,88,45,66,198,228,219,184,119,221,219, +3,161,186,0,80,16,52,201,91,88,113,115,35,153,226,148, +241,24,64,196,77,102,112,69,173,79,171,33,253,204,11,248, +52,175,56,68,0,6,155,134,109,163,217,207,103,86,100,81, +240,29,63,75,168,150,41,73,44,202,218,80,141,219,195,123, +213,145,46,185,160,43,240,248,9,38,160,96,197,136,76,204, +142,41,136,61,96,114,113,197,139,28,11,116,167,162,65,187, +135,35,82,44,190,153,2,234,25,78,226,106,47,135,50,153, +137,192,55,92,41,142,189,221,58,179,61,180,221,136,60,61, +139,49,238,234,83,209,9,46,69,206,38,130,46,51,235,43, +105,130,58,64,90,186,146,245,36,27,228,11,90,108,228,138, +212,189,71,150,10,72,188,41,216,13,119,72,99,12,176,138, +247,77,39,35,188,209,101,24,246,119,140,27,249,140,207,167, +82,152,198,120,226,230,38,133,51,108,121,199,120,229,224,116, +183,199,105,141,172,184,58,103,76,232,237,5,198,75,29,202, +24,36,135,28,232,178,211,208,86,125,169,253,157,44,212,95, +189,124,247,253,7,51,72,252,197,226,111,190,217,132,241,53, +0,152,191,221,237,240,230,195,47,7,184,203,75,60,123,254, +238,128,255,226,47,159,253,250,197,12,168,2,0,254,110,223, +198,226,39,191,248,228,131,205,27,175,94,207,253,231,197,103, +159,47,190,158,161,235,143,223,99,252,217,14,141,119,40,127, +150,235,122,243,234,131,45,28,51,233,175,190,139,144,191,61, +89,241,249,172,235,197,140,232,195,236,194,79,238,50,24,223, +52,252,237,226,175,94,253,250,219,51,22,111,230,62,250,160, +21,176,247,93,242,2,128,198,191,126,191,55,229,245,172,231, +221,94,18,0,250,127,179,189,229,247,14,109,204,210,62,63, +249,159,228,198,22,230,62,253,38,73,246,65,210,232,47,190, +122,251,246,213,203,185,223,124,7,99,255,219,51,102,191,249, +228,67,67,190,155,127,154,127,52,251,255,0,220,255,110,138, +109,254,209,191,127,138,237,95,45,243,223,37,197,6,232,188, +115,242,119,19,109,179,73,55,107,253,209,95,191,253,63,159, +253,98,241,229,219,103,127,40,225,246,47,56,250,209,93,182, +234,143,231,190,124,54,203,230,124,199,142,119,141,119,223,250, +240,155,127,173,204,119,83,236,163,223,27,184,111,218,255,160, +152,223,77,229,44,252,62,247,95,3,65,152,125,223,196,189, +187,17,254,228,239,94,125,249,193,187,191,121,245,223,158,189, +124,251,159,94,61,255,234,205,31,148,255,62,215,248,187,201, +29,224,233,147,119,63,127,176,239,27,83,222,45,133,133,239, +100,149,190,221,212,244,174,247,223,245,251,45,18,99,55,250, +46,159,180,25,215,201,242,204,208,114,103,196,225,26,110,151, +133,43,35,60,83,203,93,94,135,244,225,203,92,61,68,186, +226,93,177,158,86,135,81,121,49,209,14,43,199,141,61,117, +153,35,247,37,227,118,162,179,237,115,174,71,85,157,100,110, +84,171,237,141,13,197,246,70,91,123,176,74,40,153,131,93, +9,89,75,247,31,23,56,156,230,89,158,234,32,75,200,14, +239,105,220,123,178,172,81,165,34,145,211,64,101,143,236,162, +140,41,123,121,170,191,221,246,103,101,87,77,103,185,25,163, +145,236,206,44,38,238,228,141,87,114,123,44,88,196,178,122, +4,165,8,165,82,132,199,120,153,239,54,237,108,218,110,213, +175,244,37,201,71,230,1,216,188,114,89,223,245,11,175,6, +140,11,197,206,78,52,223,72,67,57,165,154,214,32,102,185, +172,209,107,9,87,180,68,105,110,114,79,99,186,74,133,58, +236,28,93,30,19,162,244,122,120,111,235,150,201,244,41,167, +240,163,94,192,179,178,106,2,160,9,201,49,190,238,181,19, +42,110,180,183,225,150,105,234,210,91,216,254,89,75,226,66, +71,243,60,232,246,168,121,93,61,132,21,28,74,40,138,118, +105,220,150,76,101,160,35,158,38,159,40,50,246,43,218,35, +188,116,42,234,186,119,37,97,52,104,79,131,88,22,66,225, +41,28,152,160,8,89,245,230,181,157,67,68,164,73,55,106, +59,75,103,52,222,54,215,175,57,175,47,237,64,202,218,52, +217,116,78,179,247,59,123,9,1,30,98,223,171,19,244,240, +160,207,203,22,119,245,132,76,180,222,208,30,41,175,32,198, +118,70,116,123,228,226,33,207,229,155,250,27,217,201,129,133, +158,212,174,136,163,176,186,54,112,49,132,6,223,165,149,146, +203,68,42,69,35,223,113,56,198,55,152,70,176,157,208,187, +143,27,110,223,24,108,139,140,153,18,95,188,126,53,216,162, +88,217,129,177,221,187,63,116,147,172,109,39,162,184,13,219, +54,243,92,88,203,169,185,224,56,218,78,38,251,185,188,244, +4,233,86,84,197,25,139,72,122,174,219,78,46,79,214,27, +156,243,244,206,134,162,162,174,26,120,197,149,28,73,44,56, +90,45,137,109,85,17,119,224,92,23,93,106,71,112,228,210, +158,198,125,96,242,16,9,0,0,233,223,88,76,160,54,127, +234,56,181,171,17,5,175,230,124,99,186,162,222,22,240,214, +195,218,52,55,187,70,205,166,80,250,104,221,163,177,38,102, +121,37,3,86,59,242,92,64,214,249,199,20,218,137,74,212, +110,157,199,134,195,122,117,137,153,150,5,164,226,104,107,21, +225,214,211,144,35,86,181,50,192,65,59,146,100,219,236,111, +166,185,144,174,118,87,104,215,53,156,183,146,93,195,33,42, +202,58,240,187,149,77,44,112,7,87,152,252,211,97,206,215, +205,243,251,68,240,32,166,70,12,71,35,126,76,66,76,168, +86,124,9,245,82,250,208,14,155,132,173,56,38,134,69,0, +117,224,142,217,190,166,48,31,170,140,93,133,11,133,35,84, +168,153,34,246,11,135,230,122,146,67,105,167,195,200,193,185, +125,201,120,2,207,16,146,23,155,241,48,92,99,72,238,157, +233,104,120,191,150,14,91,111,187,111,136,250,195,146,106,208, +171,104,77,245,233,141,37,166,26,83,53,209,97,219,75,52, +149,55,17,161,146,174,34,60,171,77,175,144,152,155,91,249, +77,152,118,74,242,233,228,216,8,105,221,119,162,172,86,58, +70,137,87,115,120,56,172,165,154,70,239,44,173,212,154,240, +17,241,61,245,106,72,216,28,112,213,120,44,59,200,53,104, +194,107,132,160,162,122,173,255,255,59,57,147,223,68,178,59, +142,255,43,45,37,167,81,38,125,200,109,20,229,144,81,142, +185,68,115,27,117,203,61,147,78,50,202,36,61,234,246,40, +57,26,48,139,89,12,102,43,48,155,1,155,213,44,54,59, +184,176,89,140,141,141,217,87,179,217,24,179,239,187,139,45, +96,119,119,102,34,69,26,205,237,189,250,253,222,247,87,85, +122,135,170,175,62,239,135,168,34,115,51,141,9,125,4,51, +241,163,172,203,92,79,67,114,225,29,189,154,138,53,55,14, +56,179,155,75,244,116,14,1,96,147,35,4,155,250,29,83, +6,188,153,239,121,205,35,55,102,109,80,172,250,214,139,178, +117,7,77,223,119,229,148,86,94,154,117,149,8,29,152,193, +225,173,67,124,201,179,17,56,37,151,226,225,58,77,212,109, +224,46,176,69,245,157,156,45,78,101,114,162,152,53,92,3, +51,138,89,236,168,101,139,128,110,15,83,67,97,162,225,112, +59,191,211,98,176,74,86,104,58,86,89,134,214,182,191,109, +129,178,99,220,120,61,203,24,213,197,242,145,43,152,132,153, +5,74,37,81,126,121,186,23,235,244,93,213,123,243,172,155, +192,14,38,121,186,51,18,218,226,106,161,29,223,176,20,59, +228,142,236,225,29,82,214,127,226,38,111,37,209,200,157,146, +212,66,222,15,23,31,246,199,176,110,0,169,106,53,119,118, +55,66,137,0,27,154,220,65,237,172,5,61,158,181,232,139, +31,186,94,67,30,190,15,134,109,60,201,109,69,212,171,89, +107,131,161,136,85,85,246,163,88,157,63,55,155,242,196,251, +80,248,166,186,39,5,112,116,118,60,110,192,149,21,21,96, +216,219,73,35,192,242,124,230,228,150,235,146,34,82,237,35, +100,174,195,14,235,205,133,153,12,151,244,199,154,99,70,38, +112,99,107,244,149,144,63,212,179,70,197,254,177,43,228,175, +158,131,128,44,120,175,182,104,44,107,222,160,30,78,77,34, +176,64,70,158,25,4,84,69,17,186,202,45,217,204,110,148, +81,102,227,80,97,169,37,214,36,51,144,134,224,186,36,155, +118,21,60,253,113,2,244,50,176,4,5,219,124,147,61,180, +99,125,76,12,53,73,49,185,151,88,147,60,207,50,195,145, +116,123,190,203,11,144,113,230,60,165,26,47,94,64,184,235, +84,101,155,27,144,231,216,208,116,150,159,160,206,152,195,250, +176,126,182,133,151,67,212,168,237,17,107,138,208,46,187,1, +202,102,24,151,245,59,236,144,95,105,117,240,169,45,155,92, +28,98,149,11,137,78,33,222,211,187,11,246,211,108,65,21, +52,155,6,168,96,50,225,46,39,136,215,232,209,157,197,152, +51,245,5,114,180,124,131,133,219,185,86,17,197,233,115,210, +5,198,160,223,218,34,5,17,221,81,174,137,193,200,162,14, +0,11,153,163,69,249,206,169,38,167,163,183,124,116,137,107, +207,85,11,192,7,227,212,160,58,19,70,211,108,110,164,238, +6,58,20,175,130,195,21,149,111,43,104,135,108,217,222,66, +199,41,145,244,168,200,17,186,103,160,139,205,124,99,179,151, +179,87,208,173,27,22,44,151,56,182,135,215,96,162,35,23, +4,42,109,145,173,50,42,178,95,32,82,55,174,242,150,245, +82,158,216,80,59,117,84,225,65,183,190,217,79,161,26,113, +59,205,211,47,98,139,45,115,130,109,86,218,130,164,248,129, +226,172,29,190,144,158,55,211,122,154,20,178,165,113,243,251, +208,169,207,141,54,184,198,35,37,51,176,97,80,66,78,34, +227,98,45,130,160,183,0,2,217,159,79,179,140,66,30,85, +168,118,110,1,249,242,246,208,201,221,154,135,165,115,181,103, +36,185,32,166,213,245,99,175,44,50,28,77,39,86,163,41, +16,85,135,68,172,114,243,138,151,216,2,187,154,246,125,251, +92,149,198,247,8,133,193,142,25,13,109,28,215,241,209,245, +94,207,107,6,183,148,230,130,168,128,203,42,36,119,138,118, +144,157,51,138,102,116,54,62,28,239,82,214,175,188,53,136, +138,96,58,168,157,234,134,205,169,159,192,224,240,10,152,4, +28,113,239,32,149,135,25,219,132,61,189,9,37,96,94,73, +78,89,234,97,3,143,221,219,176,183,111,241,25,3,237,138, +195,134,30,186,84,95,104,46,36,244,14,33,210,205,225,54, +37,56,206,15,207,137,36,174,0,68,139,28,208,26,214,192, +6,192,3,191,75,82,23,170,241,90,178,243,33,126,87,193, +192,11,186,163,93,185,237,50,210,184,212,213,85,106,142,132, +58,46,87,244,93,87,223,190,201,53,249,116,128,151,98,232, +136,213,166,54,135,85,227,153,193,30,108,215,64,117,223,4, +21,135,220,176,204,190,43,214,147,25,155,221,76,204,42,78, +83,230,67,130,236,24,81,101,76,1,67,26,113,123,192,103, +231,225,183,50,161,144,134,117,146,28,83,210,250,186,50,115, +127,165,167,170,114,67,108,173,80,49,108,73,146,163,52,61, +107,217,200,2,23,202,90,162,172,222,167,73,96,93,158,190, +206,28,101,76,83,91,8,119,71,186,225,158,220,158,104,207, +114,150,48,34,35,61,2,82,44,205,186,183,140,42,70,29, +180,141,6,3,153,196,108,136,102,12,59,227,108,39,192,56, +96,223,202,154,227,10,199,51,74,34,53,185,221,99,207,131, +111,167,149,38,186,194,92,193,189,218,72,134,157,176,178,92, +91,47,226,242,176,218,148,58,47,70,207,106,92,18,175,198, +31,19,89,100,5,219,67,201,55,175,234,155,28,103,240,62, +53,127,136,76,121,112,5,198,14,153,16,231,230,38,1,65, +96,238,201,85,49,184,181,47,1,204,126,28,141,35,57,101, +83,189,34,66,155,122,88,187,81,147,49,107,246,22,94,201, +164,227,179,45,49,165,149,195,72,75,24,120,186,170,20,59, +78,147,161,237,74,49,173,163,235,74,137,180,242,58,74,242, +50,163,29,31,42,162,151,105,103,49,6,249,246,140,12,106, +97,90,101,82,50,178,211,209,135,137,250,148,115,41,244,10, +175,98,231,144,127,122,178,70,108,52,109,77,72,110,10,132, +34,71,12,215,173,147,216,243,158,67,249,66,249,200,230,53, +50,17,1,237,96,27,126,82,172,184,253,49,77,113,80,84, +77,134,202,209,65,21,186,47,224,57,114,15,20,238,38,194, +21,95,226,16,103,101,222,40,220,57,28,197,56,65,149,83, +209,145,178,43,168,91,248,209,35,81,197,94,184,243,136,187, +204,93,64,50,231,192,224,92,107,231,58,221,87,239,132,67, +164,170,92,87,118,166,155,69,20,108,234,81,17,141,189,89, +55,63,209,35,139,81,192,201,75,170,133,253,203,155,92,213, +27,172,122,39,136,104,237,161,110,234,170,122,121,177,190,120, +101,165,110,234,238,130,5,41,135,217,108,3,90,138,57,154, +217,159,151,239,85,202,221,18,211,122,81,216,84,249,252,195, +170,13,115,202,71,31,23,216,182,136,143,43,145,236,227,105, +128,226,204,124,224,86,117,50,170,94,160,121,236,73,44,161, +38,13,38,73,159,29,142,114,151,195,11,199,89,232,110,115, +79,123,101,165,147,99,100,186,100,46,80,204,242,21,71,91, +28,18,205,172,53,24,89,69,247,26,57,236,238,58,116,219, +3,112,90,177,187,120,160,168,82,216,89,180,94,96,186,39, +66,5,162,0,29,11,170,25,17,133,157,15,220,98,203,117, +254,105,52,64,155,120,243,114,210,157,15,94,187,128,119,170, +237,148,57,103,172,80,170,107,234,237,27,184,174,70,159,170, +248,60,82,114,0,210,184,94,54,140,186,47,50,221,179,54, +31,170,5,233,189,161,208,119,24,251,188,8,170,103,132,225, +93,202,73,211,213,68,183,124,90,154,97,183,1,135,48,137, +163,84,162,77,49,167,82,212,248,26,255,50,112,70,210,186, +88,187,106,65,192,203,59,169,78,98,18,107,217,120,40,21, +4,47,33,64,156,209,21,25,30,110,244,138,174,151,236,83, +17,29,222,109,169,39,98,79,180,83,153,230,66,179,217,108, +104,140,23,76,62,41,42,78,214,154,254,30,22,1,76,53, +87,165,139,245,3,65,191,224,0,122,234,91,7,51,5,175, +26,229,67,228,9,103,223,10,34,107,132,56,130,118,6,122, +236,209,93,49,156,236,32,114,108,150,29,210,148,134,38,64, +188,9,118,230,162,140,206,225,80,225,4,222,116,132,157,86, +195,224,52,6,80,161,217,6,212,40,220,82,55,204,138,249, +236,70,147,217,48,198,252,167,187,251,220,187,92,22,75,227, +250,187,205,253,233,192,43,203,0,61,65,208,114,188,235,135, +96,4,68,11,118,199,144,58,137,102,70,130,167,64,58,154, +219,115,92,15,56,103,32,156,92,110,149,88,31,48,45,142, +166,61,89,161,169,75,204,9,170,94,121,8,221,197,41,190, +27,63,216,132,244,209,188,71,19,246,201,185,195,8,84,108, +108,130,241,176,87,69,90,188,240,8,143,153,30,66,26,199, +158,56,62,86,66,248,72,87,25,123,184,95,36,178,184,156, +100,179,195,148,21,175,124,125,219,240,97,17,144,45,62,20, +218,203,2,84,59,163,7,33,229,214,129,198,218,215,159,96, +246,48,38,54,52,243,105,130,16,72,203,156,92,50,16,252, +201,28,226,55,134,112,212,17,255,0,189,225,245,249,146,87, +30,17,20,38,206,43,4,138,177,140,52,178,124,96,172,119, +142,167,133,34,66,232,110,15,8,58,18,129,241,89,83,31, +145,46,166,82,128,229,226,245,225,254,234,98,1,187,89,235, +151,48,123,18,31,216,242,108,6,65,153,166,104,224,214,135, +18,174,59,194,66,243,33,126,4,33,4,93,106,136,229,57, +234,13,168,21,130,142,59,88,6,35,184,145,214,15,202,206, +250,18,174,102,161,31,38,86,78,183,103,139,203,139,97,136, +88,9,44,35,90,193,241,97,198,208,205,74,45,143,137,2, +167,85,153,61,95,232,235,207,250,46,119,170,151,83,72,151, +233,91,60,169,12,216,6,27,69,149,68,250,184,76,96,181, +54,230,215,200,74,64,6,202,128,135,54,147,243,176,183,148, +39,80,226,146,226,89,25,68,69,144,203,199,105,64,61,210, +64,123,14,66,227,253,120,184,233,233,151,154,59,219,72,161, +216,183,120,128,3,153,65,15,105,211,56,84,148,56,216,14, +55,247,197,139,32,121,93,120,230,153,53,153,203,59,83,46, +84,91,150,110,56,174,106,129,215,197,32,88,183,92,54,149, +89,123,143,59,190,108,105,135,231,118,158,178,88,158,111,142, +13,41,149,147,200,140,98,215,58,237,83,182,30,159,110,240, +215,212,73,116,249,8,101,40,209,103,151,65,86,71,75,214, +173,73,174,188,132,235,251,109,144,234,235,16,164,178,148,121, +55,49,245,119,175,197,204,211,233,36,223,33,197,36,68,102, +100,63,150,73,240,66,253,148,132,10,89,148,42,241,140,118, +63,4,166,140,186,103,228,21,6,89,19,216,117,40,186,78, +155,195,42,158,163,53,219,143,185,137,63,46,207,24,125,254, +104,33,45,219,100,190,250,234,219,215,75,131,233,95,111,222, +254,253,217,87,111,86,255,182,236,22,249,246,245,95,191,255, +246,213,219,71,158,99,229,211,71,134,234,201,116,90,30,81, +122,247,129,191,250,136,162,188,103,75,254,252,212,131,242,237, +55,143,46,209,163,214,199,70,160,143,206,211,71,36,234,215, +207,254,240,132,107,60,221,195,255,113,193,254,7,248,248,224, +109,189,250,246,221,211,153,165,239,87,191,121,236,24,186,250, +122,33,245,106,117,33,246,229,39,47,87,223,124,247,205,215, +43,159,173,60,95,121,190,212,248,252,205,219,215,43,207,223, +189,253,122,229,249,99,229,149,95,190,254,231,202,167,223,191, +91,249,197,34,231,179,39,63,233,245,95,86,151,147,15,50, +207,86,126,251,132,132,125,177,242,187,247,112,216,199,188,151, +255,29,190,248,213,207,43,247,167,165,37,243,83,234,61,38, +190,252,193,248,231,86,252,226,205,119,63,165,222,34,237,229, +199,209,7,171,240,103,148,251,253,155,213,213,55,255,248,41, +21,159,50,95,254,112,242,226,203,79,158,61,123,241,222,240, +124,207,220,253,168,61,236,50,180,216,192,175,255,253,205,187, 71,76,232,7,27,229,55,207,94,252,7,193,119,84,109, \ No newline at end of file diff --git a/uppsrc/CtrlCore/srcdoc.tpp/CtrlDesignConcepts$en-us.tpp b/uppsrc/CtrlCore/srcdoc.tpp/CtrlDesignConcepts_en-us.tpp similarity index 100% rename from uppsrc/CtrlCore/srcdoc.tpp/CtrlDesignConcepts$en-us.tpp rename to uppsrc/CtrlCore/srcdoc.tpp/CtrlDesignConcepts_en-us.tpp diff --git a/uppsrc/CtrlCore/srcdoc.tpp/LogPos$en-us.tpp b/uppsrc/CtrlCore/srcdoc.tpp/LogPos_en-us.tpp similarity index 98% rename from uppsrc/CtrlCore/srcdoc.tpp/LogPos$en-us.tpp rename to uppsrc/CtrlCore/srcdoc.tpp/LogPos_en-us.tpp index 078859668..059190067 100644 --- a/uppsrc/CtrlCore/srcdoc.tpp/LogPos$en-us.tpp +++ b/uppsrc/CtrlCore/srcdoc.tpp/LogPos_en-us.tpp @@ -1,85 +1,85 @@ -TITLE("Logical positions") -COMPRESSED -120,156,149,85,219,110,219,70,16,253,149,69,228,22,182,43, -11,59,123,33,119,197,151,20,78,158,26,36,65,210,246,193, -130,96,211,212,74,90,132,34,85,146,138,47,69,243,237,61, -67,202,142,29,181,72,107,193,162,77,242,204,185,204,12,57, -83,226,232,72,142,229,72,126,231,103,250,42,44,243,93,217, -205,103,165,114,46,139,169,52,89,78,105,246,206,103,95,190, -124,153,120,175,50,46,69,40,69,210,104,82,68,70,74,163, -82,178,94,122,235,200,73,157,26,101,83,105,167,219,188,201, -55,243,89,238,116,118,250,33,1,74,141,237,72,147,38,73, -137,50,184,75,106,169,12,41,75,206,25,74,173,211,62,73, -166,69,190,237,98,93,205,103,215,140,3,74,3,37,83,151, -24,2,198,88,165,83,107,128,53,134,8,127,147,77,147,52, -157,118,177,43,3,48,148,164,89,110,84,118,206,42,205,56, -25,65,157,74,1,53,202,36,70,59,165,201,41,149,120,109, -188,129,108,82,211,216,5,136,188,6,134,113,12,179,32,52, -214,144,70,30,38,181,26,183,165,56,26,233,73,129,213,73, -107,65,24,110,31,66,226,124,24,151,128,78,165,150,239,118, -198,145,78,157,50,42,81,16,32,83,152,100,118,59,93,132, -182,0,78,43,202,58,72,202,206,95,218,140,0,78,199,233, -72,73,47,85,146,122,16,66,44,12,107,239,73,59,16,26, -178,146,244,180,168,23,108,82,89,169,51,96,28,186,144,160, -112,31,137,77,8,122,149,118,96,76,73,107,124,91,227,210, -105,27,184,15,93,221,204,103,167,47,143,229,68,78,148,181, -39,172,215,3,238,180,209,218,36,222,144,212,96,65,13,195, -113,37,18,157,36,171,220,244,58,111,65,217,25,14,246,156, -59,207,83,132,216,181,179,26,204,9,190,208,81,216,211,72, -70,121,227,180,118,114,90,148,121,219,62,137,231,148,45,18, -141,137,70,41,167,106,181,50,158,163,209,10,241,170,196,122, -66,190,54,49,82,77,155,240,199,46,54,97,19,42,4,28, -49,24,217,67,115,246,67,8,45,195,16,170,49,41,140,161, -77,18,201,105,89,204,130,210,22,113,75,114,6,138,240,65, -131,187,253,28,246,179,209,207,5,233,49,233,145,87,70,67, -137,55,6,1,160,0,121,34,146,14,31,56,67,44,253,100, -16,36,244,38,6,250,1,110,198,100,70,41,6,24,125,242, -134,233,189,230,248,20,210,87,137,180,104,131,26,224,138,67, -87,71,136,157,148,227,223,19,198,219,49,97,17,160,144,172, -133,109,141,160,149,131,117,139,228,117,63,220,148,186,233,219, -112,211,190,202,187,176,159,150,211,243,163,97,204,40,25,83, -50,146,140,183,206,163,125,100,56,62,109,140,87,94,107,171, -188,213,137,68,140,237,176,199,12,230,93,234,247,240,177,72, -58,166,20,107,5,171,214,194,124,15,131,241,148,88,138,114, -62,225,16,246,69,174,206,202,88,177,14,204,69,54,140,194, -233,249,79,68,41,23,114,216,22,231,18,169,61,178,64,4, -210,98,204,241,36,112,232,51,218,172,176,3,252,40,40,62, -229,171,112,117,182,223,211,63,47,255,250,225,245,219,179,223, -62,138,89,171,50,241,166,94,197,34,47,197,182,110,35,47, -127,251,227,124,214,218,76,188,47,243,162,31,4,81,47,197, -121,215,148,173,184,137,221,58,86,34,118,173,64,95,249,82, -108,197,34,116,161,217,64,227,66,92,223,137,242,219,106,147, -3,2,145,151,245,141,216,212,77,16,69,189,217,150,225,86, -108,31,185,154,80,230,93,252,28,68,87,63,112,48,55,206, -23,93,94,173,202,48,17,191,174,3,160,184,38,150,245,174, -17,221,221,54,180,172,113,93,55,241,190,174,58,80,29,168, -152,14,166,34,86,57,123,39,51,49,59,21,101,88,118,115, -113,117,38,224,8,182,90,81,96,219,198,7,208,175,254,96, -53,182,16,81,128,184,169,55,125,1,17,22,171,192,228,123, -173,143,50,69,94,45,158,42,106,227,125,152,28,138,224,211, -189,136,255,78,123,93,119,235,129,155,41,154,184,90,15,42, -218,39,50,62,64,198,33,217,112,239,252,59,108,223,136,238, -89,158,43,248,202,201,148,204,245,15,206,10,232,8,205,255, -244,54,128,254,37,55,241,123,104,186,190,208,65,123,251,105, -224,71,215,231,188,68,137,7,192,235,188,88,139,46,110,194, -179,81,42,214,232,16,168,121,140,203,252,174,222,117,226,120, -215,238,242,178,188,19,121,43,134,181,99,103,69,19,242,94, -111,221,240,217,120,31,171,213,201,88,108,227,109,120,202,141, -59,129,221,175,8,11,193,16,96,174,119,29,111,4,102,106, -33,80,226,112,47,246,26,127,174,208,79,120,142,109,187,195, -212,175,243,126,169,250,53,0,146,183,224,145,40,62,234,189, -175,107,196,183,234,119,65,108,155,250,186,12,27,209,175,5, -238,233,107,228,219,109,9,194,94,126,145,87,98,215,242,186, -12,203,188,136,203,101,232,243,232,27,92,15,59,196,184,74, -112,55,22,121,195,154,3,131,22,188,30,123,86,188,62,227, -170,130,214,155,117,168,246,255,65,197,254,50,139,25,196,223, -172,239,30,32,7,173,175,194,224,234,58,244,38,194,98,34, -46,112,20,203,188,192,107,242,240,121,210,176,5,22,205,239, -124,49,123,169,197,213,139,119,191,92,158,243,204,148,151,175, -111,99,119,249,33,116,205,221,213,139,57,43,109,118,85,223, -239,71,27,189,231,222,38,72,63,226,120,236,253,88,144,62, -225,193,28,236,47,135,245,239,9,118,45,27,122,134,126,104, -212,197,144,249,131,179,103,109,89,12,105,241,229,175,143,178, -77,232,214,245,98,120,106,138,11,209,238,150,203,120,43,142, -203,248,41,136,55,216,223,247,117,123,33,66,87,76,38,147, +TITLE("Logical positions") +COMPRESSED +120,156,149,85,219,110,219,70,16,253,149,69,228,22,182,43, +11,59,123,33,119,197,151,20,78,158,26,36,65,210,246,193, +130,96,211,212,74,90,132,34,85,146,138,47,69,243,237,61, +67,202,142,29,181,72,107,193,162,77,242,204,185,204,12,57, +83,226,232,72,142,229,72,126,231,103,250,42,44,243,93,217, +205,103,165,114,46,139,169,52,89,78,105,246,206,103,95,190, +124,153,120,175,50,46,69,40,69,210,104,82,68,70,74,163, +82,178,94,122,235,200,73,157,26,101,83,105,167,219,188,201, +55,243,89,238,116,118,250,33,1,74,141,237,72,147,38,73, +137,50,184,75,106,169,12,41,75,206,25,74,173,211,62,73, +166,69,190,237,98,93,205,103,215,140,3,74,3,37,83,151, +24,2,198,88,165,83,107,128,53,134,8,127,147,77,147,52, +157,118,177,43,3,48,148,164,89,110,84,118,206,42,205,56, +25,65,157,74,1,53,202,36,70,59,165,201,41,149,120,109, +188,129,108,82,211,216,5,136,188,6,134,113,12,179,32,52, +214,144,70,30,38,181,26,183,165,56,26,233,73,129,213,73, +107,65,24,110,31,66,226,124,24,151,128,78,165,150,239,118, +198,145,78,157,50,42,81,16,32,83,152,100,118,59,93,132, +182,0,78,43,202,58,72,202,206,95,218,140,0,78,199,233, +72,73,47,85,146,122,16,66,44,12,107,239,73,59,16,26, +178,146,244,180,168,23,108,82,89,169,51,96,28,186,144,160, +112,31,137,77,8,122,149,118,96,76,73,107,124,91,227,210, +105,27,184,15,93,221,204,103,167,47,143,229,68,78,148,181, +39,172,215,3,238,180,209,218,36,222,144,212,96,65,13,195, +113,37,18,157,36,171,220,244,58,111,65,217,25,14,246,156, +59,207,83,132,216,181,179,26,204,9,190,208,81,216,211,72, +70,121,227,180,118,114,90,148,121,219,62,137,231,148,45,18, +141,137,70,41,167,106,181,50,158,163,209,10,241,170,196,122, +66,190,54,49,82,77,155,240,199,46,54,97,19,42,4,28, +49,24,217,67,115,246,67,8,45,195,16,170,49,41,140,161, +77,18,201,105,89,204,130,210,22,113,75,114,6,138,240,65, +131,187,253,28,246,179,209,207,5,233,49,233,145,87,70,67, +137,55,6,1,160,0,121,34,146,14,31,56,67,44,253,100, +16,36,244,38,6,250,1,110,198,100,70,41,6,24,125,242, +134,233,189,230,248,20,210,87,137,180,104,131,26,224,138,67, +87,71,136,157,148,227,223,19,198,219,49,97,17,160,144,172, +133,109,141,160,149,131,117,139,228,117,63,220,148,186,233,219, +112,211,190,202,187,176,159,150,211,243,163,97,204,40,25,83, +50,146,140,183,206,163,125,100,56,62,109,140,87,94,107,171, +188,213,137,68,140,237,176,199,12,230,93,234,247,240,177,72, +58,166,20,107,5,171,214,194,124,15,131,241,148,88,138,114, +62,225,16,246,69,174,206,202,88,177,14,204,69,54,140,194, +233,249,79,68,41,23,114,216,22,231,18,169,61,178,64,4, +210,98,204,241,36,112,232,51,218,172,176,3,252,40,40,62, +229,171,112,117,182,223,211,63,47,255,250,225,245,219,179,223, +62,138,89,171,50,241,166,94,197,34,47,197,182,110,35,47, +127,251,227,124,214,218,76,188,47,243,162,31,4,81,47,197, +121,215,148,173,184,137,221,58,86,34,118,173,64,95,249,82, +108,197,34,116,161,217,64,227,66,92,223,137,242,219,106,147, +3,2,145,151,245,141,216,212,77,16,69,189,217,150,225,86, +108,31,185,154,80,230,93,252,28,68,87,63,112,48,55,206, +23,93,94,173,202,48,17,191,174,3,160,184,38,150,245,174, +17,221,221,54,180,172,113,93,55,241,190,174,58,80,29,168, +152,14,166,34,86,57,123,39,51,49,59,21,101,88,118,115, +113,117,38,224,8,182,90,81,96,219,198,7,208,175,254,96, +53,182,16,81,128,184,169,55,125,1,17,22,171,192,228,123, +173,143,50,69,94,45,158,42,106,227,125,152,28,138,224,211, +189,136,255,78,123,93,119,235,129,155,41,154,184,90,15,42, +218,39,50,62,64,198,33,217,112,239,252,59,108,223,136,238, +89,158,43,248,202,201,148,204,245,15,206,10,232,8,205,255, +244,54,128,254,37,55,241,123,104,186,190,208,65,123,251,105, +224,71,215,231,188,68,137,7,192,235,188,88,139,46,110,194, +179,81,42,214,232,16,168,121,140,203,252,174,222,117,226,120, +215,238,242,178,188,19,121,43,134,181,99,103,69,19,242,94, +111,221,240,217,120,31,171,213,201,88,108,227,109,120,202,141, +59,129,221,175,8,11,193,16,96,174,119,29,111,4,102,106, +33,80,226,112,47,246,26,127,174,208,79,120,142,109,187,195, +212,175,243,126,169,250,53,0,146,183,224,145,40,62,234,189, +175,107,196,183,234,119,65,108,155,250,186,12,27,209,175,5, +238,233,107,228,219,109,9,194,94,126,145,87,98,215,242,186, +12,203,188,136,203,101,232,243,232,27,92,15,59,196,184,74, +112,55,22,121,195,154,3,131,22,188,30,123,86,188,62,227, +170,130,214,155,117,168,246,255,65,197,254,50,139,25,196,223, +172,239,30,32,7,173,175,194,224,234,58,244,38,194,98,34, +46,112,20,203,188,192,107,242,240,121,210,176,5,22,205,239, +124,49,123,169,197,213,139,119,191,92,158,243,204,148,151,175, +111,99,119,249,33,116,205,221,213,139,57,43,109,118,85,223, +239,71,27,189,231,222,38,72,63,226,120,236,253,88,144,62, +225,193,28,236,47,135,245,239,9,118,45,27,122,134,126,104, +212,197,144,249,131,179,103,109,89,12,105,241,229,175,143,178, +77,232,214,245,98,120,106,138,11,209,238,150,203,120,43,142, +203,248,41,136,55,216,223,247,117,123,33,66,87,76,38,147, 147,158,68,102,90,204,255,6,214,199,18,85, \ No newline at end of file diff --git a/uppsrc/CtrlCore/srcdoc.tpp/Resolution$en-us.tpp b/uppsrc/CtrlCore/srcdoc.tpp/Resolution_en-us.tpp similarity index 100% rename from uppsrc/CtrlCore/srcdoc.tpp/Resolution$en-us.tpp rename to uppsrc/CtrlCore/srcdoc.tpp/Resolution_en-us.tpp diff --git a/uppsrc/CtrlCore/srcdoc.tpp/TimerAndModalTrap$en-us.tpp b/uppsrc/CtrlCore/srcdoc.tpp/TimerAndModalTrap_en-us.tpp similarity index 98% rename from uppsrc/CtrlCore/srcdoc.tpp/TimerAndModalTrap$en-us.tpp rename to uppsrc/CtrlCore/srcdoc.tpp/TimerAndModalTrap_en-us.tpp index 310c0cb2c..a7981d509 100644 --- a/uppsrc/CtrlCore/srcdoc.tpp/TimerAndModalTrap$en-us.tpp +++ b/uppsrc/CtrlCore/srcdoc.tpp/TimerAndModalTrap_en-us.tpp @@ -1,140 +1,140 @@ -topic "About modal loops and periodic timer events"; -[2 $$0,0#00000000000000000000000000000000:Default] -[l288;i704;a17;O9;~~~.992;2 $$1,0#10431211400427159095818037425705:param] -[a83;*R6 $$2,5#31310162474203024125188417583966:caption] -[b83;*2 $$3,5#07864147445237544204411237157677:title] -[i288;b167;a42;O9;C2 $$4,6#40027414424643823182269349404212:item] -[b42;a42;2 $$5,5#45413000475342174754091244180557:text] -[l288;a17;2 $$6,6#27521748481378242620020725143825:desc] -[l321;t246;C@5;1 $$7,7#20902679421464641399138805415013:code] -[b2503;2 $$8,0#65142375456100023862071332075487:separator] -[*@(0.0.255)2 $$9,0#83433469410354161042741608181528:base] -[t4167;C2 $$10,0#37138531426314131251341829483380:class] -[l288;a17;*1 $$11,11#70004532496200323422659154056402:requirement] -[i417;b42;a42;O9;~~~.416;2 $$12,12#10566046415157235020018451313112:tparam] -[b167;C2 $$13,13#92430459443460461911108080531343:item1] -[i288;a42;O9;C2 $$14,14#77422149456609303542238260500223:item2] -[*@2$(0.128.128)2 $$15,15#34511555403152284025741354420178:NewsDate] -[l321;*C$7;2 $$16,16#03451589433145915344929335295360:result] -[l321;b83;a83;*C$7;2 $$17,17#07531550463529505371228428965313:result`-line] -[l160;t4167;*C+117 $$18,5#88603949442205825958800053222425:package`-title] -[{_}%EN-US -[s2; About modal loops and periodic timer events&] -[s0; &] -[s0; In this article we try to explain what is wrong with this piece -of code:&] -[s0; &] -[s7; #include &] -[s7; &] -[s7; class LOOP : public TopWindow `{&] -[s7; public:&] -[s7; -|typedef LOOP CLASSNAME;&] -[s7; -|LOOP();&] -[s7; -|void f1();&] -[s7; `};&] -[s7; &] -[s7; &] -[s7; LOOP`::LOOP()&] -[s7; `{&] -[s7; -|SetTimeCallback(`-1000, THISBACK(f1));&] -[s7; `}&] -[s7; void LOOP`::f1()&] -[s7; `{&] -[s7; -|PromptOK(`"prompt!`");&] -[s7; `}&] -[s7; &] -[s7; GUI`_APP`_MAIN&] -[s7; `{&] -[s7; -|LOOP().Run();&] -[s7; `}&] -[s0; &] -[s0; The trouble is that the PromptOK box gets opened over and over -again, so very soon you start running out of Windows resources -(window handles). This slows down the repaint. Of course if you -click one of the boxes, many others are already stacked below -it so that you`'re never able to close them all.&] -[s0; &] -[s0; Using a periodic timer is a tricky thing; remember that it keeps -running all the time, even as you feel from the GUI viewpoint -that it`'s been blocked by something. Actually, this `'heartbeat`' -lies at the very core of the Ctrl system, so it just runs whenever -the event processing is allowed to take place. Also remember -that the TimeCallback dispatcher routine is fully reentrant in -the sense that it can continue sending other timer messages even -until you return from the function called by it.&] -[s0; &] -[s0; So the flowchart of your application basically breaks down to -the following. For clarity, a summary of the allocated stack -frames is written below each phase to help you get a better understanding -of the issue.&] -[s0; &] -[s0;i150;O0; Entry into WinMain&] -[s0;l160; stack [C `[WinMain`]]&] -[s0;i150;O0; install timer ticking each 1 second&] -[s0;l160; stack: [C `[WinMain`] `[LOOP`::LOOP`]]&] -[s0;i150;O0; run event loop in the LOOP window&] -[s0;l160; stack: [C `[WinMain`] `[LOOP`::Run`]]&] -[s0;i150;O0; after 1 second: f1 gets called&] -[s0;l160; stack: [C `[WinMain`] `[TopWindow`::Run`] `[timer`] `[LOOP`::f1`]]&] -[s0;i150;O0; PromptOK gets displayed and its modal loop run&] -[s0;l160; stack: [C `[WinMain`] `[TopWindow`::Run`] `[timer`] `[LOOP`::f1`] -`[PromptOK`::Run`]]&] -[s0;i150;O0; after another second: f1 gets called again, but on a -higher stack frame&] -[s0;l160; stack: [C `[WinMain`] `[TopWindow`::Run`] `[timer`] `[LOOP`::f1`] -`[PromptOK`::Run`] `[timer`] `[LOOP`::f1`]]&] -[s0;i150;O0; another PromptOK gets displayed ands its modal loop -run&] -[s0;l160; stack: [C `[WinMain`] `[TopWindow`::Run`] `[timer`] `[LOOP`::f1`] -`[PromptOK`::Run`] `[timer`] `[LOOP`::f1`] `[PromptOK`::Run`]]&] -[s0;i150;O0; after another 1 second: f1 gets called a third time, -continuing a theoretically infinite recursion&] -[s0; &] -[s0; Now, if you had a simple infinite recursion in a computational -part of your application, it is quite likely that you would run -out of stack very soon, so typically after a few seconds the -application crashes on stack overflow (remember that, in Windows, -this is a little tricky, because if you`'re not running the application -in the debugger, the stack overflow usually causes the application -to immediately close quietly without the normal annoying `'Fatal -application error`' box. I believe this is so because once the -stack gets completely exhausted, Windows don`'t dare run any -other message loop on top of it).&] -[s0; &] -[s0; However, your situation is a little different. According to -the formulation of your application, the stack grows relatively -slowly `- just about a few hundred bytes a second, I guess, which -in view of the default 1 MB application stack limit it not that -much, so your application can (from the stack point of view) -run at least a quarter of an hour, maybe more. However, during -that quarter hour the application would allocate about 1000 Prompt -boxes, which might not be strictly beyond Windows capabilities, -but at least it is sure to slow things down a lot. By the way, -by pressing Ctrl`+F4 and holding it for autorepeat you should -be able to close all the prompt boxes and the application as -well, because the autorepeat should be faster that the prompt -creation interval and by holding it down for a while you should -relatively quickly eat the abundant stack frames (until finally -you close the last PromptOK box and then the LOOP window itself, -after which your application exits the LOOP`::Run modal loop and -exits WinMain).&] -[s0; &] -[s0; I hope I haven`'t wrought more havoc in your view of the above -matter than necessary. Keep in mind that very many things in -a Windowing system are reentrant and it is not at all impossible, -and under circumstances it is in fact quite likely, that the -same function or method gets called from various stack frames, -sometimes even multiple times at once (not in the multithreaded`-sense, -but recursively from a subfunction called by the outer execution -of the method). To be quite honest, bugs linked to such recursions -are sometimes worst to catch, especially when they are connected -with destruction of an object. (Imagine a situation, in which -the destructor of a Ctrl`-based object performs some cleanup -and during its processing the callback mechanisms linked to its -member objects, like dialog controls, transfer control back to -this half`-destructed object. By the way, this is perhaps the -main reason for the Shutdown mechanism in Ctrl`'s.) Most critical -spots in the CtrlCore library ifself are protected by various -means against such situations, but this doesn`'t mean that such -a recursion cannot crash your application.&] +topic "About modal loops and periodic timer events"; +[2 $$0,0#00000000000000000000000000000000:Default] +[l288;i704;a17;O9;~~~.992;2 $$1,0#10431211400427159095818037425705:param] +[a83;*R6 $$2,5#31310162474203024125188417583966:caption] +[b83;*2 $$3,5#07864147445237544204411237157677:title] +[i288;b167;a42;O9;C2 $$4,6#40027414424643823182269349404212:item] +[b42;a42;2 $$5,5#45413000475342174754091244180557:text] +[l288;a17;2 $$6,6#27521748481378242620020725143825:desc] +[l321;t246;C@5;1 $$7,7#20902679421464641399138805415013:code] +[b2503;2 $$8,0#65142375456100023862071332075487:separator] +[*@(0.0.255)2 $$9,0#83433469410354161042741608181528:base] +[t4167;C2 $$10,0#37138531426314131251341829483380:class] +[l288;a17;*1 $$11,11#70004532496200323422659154056402:requirement] +[i417;b42;a42;O9;~~~.416;2 $$12,12#10566046415157235020018451313112:tparam] +[b167;C2 $$13,13#92430459443460461911108080531343:item1] +[i288;a42;O9;C2 $$14,14#77422149456609303542238260500223:item2] +[*@2$(0.128.128)2 $$15,15#34511555403152284025741354420178:NewsDate] +[l321;*C$7;2 $$16,16#03451589433145915344929335295360:result] +[l321;b83;a83;*C$7;2 $$17,17#07531550463529505371228428965313:result`-line] +[l160;t4167;*C+117 $$18,5#88603949442205825958800053222425:package`-title] +[{_}%EN-US +[s2; About modal loops and periodic timer events&] +[s0; &] +[s0; In this article we try to explain what is wrong with this piece +of code:&] +[s0; &] +[s7; #include &] +[s7; &] +[s7; class LOOP : public TopWindow `{&] +[s7; public:&] +[s7; -|typedef LOOP CLASSNAME;&] +[s7; -|LOOP();&] +[s7; -|void f1();&] +[s7; `};&] +[s7; &] +[s7; &] +[s7; LOOP`::LOOP()&] +[s7; `{&] +[s7; -|SetTimeCallback(`-1000, THISBACK(f1));&] +[s7; `}&] +[s7; void LOOP`::f1()&] +[s7; `{&] +[s7; -|PromptOK(`"prompt!`");&] +[s7; `}&] +[s7; &] +[s7; GUI`_APP`_MAIN&] +[s7; `{&] +[s7; -|LOOP().Run();&] +[s7; `}&] +[s0; &] +[s0; The trouble is that the PromptOK box gets opened over and over +again, so very soon you start running out of Windows resources +(window handles). This slows down the repaint. Of course if you +click one of the boxes, many others are already stacked below +it so that you`'re never able to close them all.&] +[s0; &] +[s0; Using a periodic timer is a tricky thing; remember that it keeps +running all the time, even as you feel from the GUI viewpoint +that it`'s been blocked by something. Actually, this `'heartbeat`' +lies at the very core of the Ctrl system, so it just runs whenever +the event processing is allowed to take place. Also remember +that the TimeCallback dispatcher routine is fully reentrant in +the sense that it can continue sending other timer messages even +until you return from the function called by it.&] +[s0; &] +[s0; So the flowchart of your application basically breaks down to +the following. For clarity, a summary of the allocated stack +frames is written below each phase to help you get a better understanding +of the issue.&] +[s0; &] +[s0;i150;O0; Entry into WinMain&] +[s0;l160; stack [C `[WinMain`]]&] +[s0;i150;O0; install timer ticking each 1 second&] +[s0;l160; stack: [C `[WinMain`] `[LOOP`::LOOP`]]&] +[s0;i150;O0; run event loop in the LOOP window&] +[s0;l160; stack: [C `[WinMain`] `[LOOP`::Run`]]&] +[s0;i150;O0; after 1 second: f1 gets called&] +[s0;l160; stack: [C `[WinMain`] `[TopWindow`::Run`] `[timer`] `[LOOP`::f1`]]&] +[s0;i150;O0; PromptOK gets displayed and its modal loop run&] +[s0;l160; stack: [C `[WinMain`] `[TopWindow`::Run`] `[timer`] `[LOOP`::f1`] +`[PromptOK`::Run`]]&] +[s0;i150;O0; after another second: f1 gets called again, but on a +higher stack frame&] +[s0;l160; stack: [C `[WinMain`] `[TopWindow`::Run`] `[timer`] `[LOOP`::f1`] +`[PromptOK`::Run`] `[timer`] `[LOOP`::f1`]]&] +[s0;i150;O0; another PromptOK gets displayed ands its modal loop +run&] +[s0;l160; stack: [C `[WinMain`] `[TopWindow`::Run`] `[timer`] `[LOOP`::f1`] +`[PromptOK`::Run`] `[timer`] `[LOOP`::f1`] `[PromptOK`::Run`]]&] +[s0;i150;O0; after another 1 second: f1 gets called a third time, +continuing a theoretically infinite recursion&] +[s0; &] +[s0; Now, if you had a simple infinite recursion in a computational +part of your application, it is quite likely that you would run +out of stack very soon, so typically after a few seconds the +application crashes on stack overflow (remember that, in Windows, +this is a little tricky, because if you`'re not running the application +in the debugger, the stack overflow usually causes the application +to immediately close quietly without the normal annoying `'Fatal +application error`' box. I believe this is so because once the +stack gets completely exhausted, Windows don`'t dare run any +other message loop on top of it).&] +[s0; &] +[s0; However, your situation is a little different. According to +the formulation of your application, the stack grows relatively +slowly `- just about a few hundred bytes a second, I guess, which +in view of the default 1 MB application stack limit it not that +much, so your application can (from the stack point of view) +run at least a quarter of an hour, maybe more. However, during +that quarter hour the application would allocate about 1000 Prompt +boxes, which might not be strictly beyond Windows capabilities, +but at least it is sure to slow things down a lot. By the way, +by pressing Ctrl`+F4 and holding it for autorepeat you should +be able to close all the prompt boxes and the application as +well, because the autorepeat should be faster that the prompt +creation interval and by holding it down for a while you should +relatively quickly eat the abundant stack frames (until finally +you close the last PromptOK box and then the LOOP window itself, +after which your application exits the LOOP`::Run modal loop and +exits WinMain).&] +[s0; &] +[s0; I hope I haven`'t wrought more havoc in your view of the above +matter than necessary. Keep in mind that very many things in +a Windowing system are reentrant and it is not at all impossible, +and under circumstances it is in fact quite likely, that the +same function or method gets called from various stack frames, +sometimes even multiple times at once (not in the multithreaded`-sense, +but recursively from a subfunction called by the outer execution +of the method). To be quite honest, bugs linked to such recursions +are sometimes worst to catch, especially when they are connected +with destruction of an object. (Imagine a situation, in which +the destructor of a Ctrl`-based object performs some cleanup +and during its processing the callback mechanisms linked to its +member objects, like dialog controls, transfer control back to +this half`-destructed object. By the way, this is perhaps the +main reason for the Shutdown mechanism in Ctrl`'s.) Most critical +spots in the CtrlCore library ifself are protected by various +means against such situations, but this doesn`'t mean that such +a recursion cannot crash your application.&] [s0; ] \ No newline at end of file diff --git a/uppsrc/CtrlLib/appdoc.tpp/DlgSelectColor$cs-cz.tpp b/uppsrc/CtrlLib/appdoc.tpp/DlgSelectColor_cs-cz.tpp similarity index 99% rename from uppsrc/CtrlLib/appdoc.tpp/DlgSelectColor$cs-cz.tpp rename to uppsrc/CtrlLib/appdoc.tpp/DlgSelectColor_cs-cz.tpp index de6575ee3..d0b8b6bb3 100644 --- a/uppsrc/CtrlLib/appdoc.tpp/DlgSelectColor$cs-cz.tpp +++ b/uppsrc/CtrlLib/appdoc.tpp/DlgSelectColor_cs-cz.tpp @@ -1,631 +1,631 @@ -TITLE("VýbÄ›r barvy") -COMPRESSED -120,156,172,188,231,111,99,89,150,39,248,175,8,216,217,70,247,160,167,58,179,186,178,45,22,24,204,12,176,11,12,118,182,177,189,211,31,166,208,168,85,86,198,76,70,101,100,70,34,51,34,49,153,139,5,232,73,137,70,20,173,68,138,78,18,141,232,73,209,136,222,91,209,123,111,68,138,86,36,37,209,251,125,140,136,204,170,234,233,158,233,15,27,128,116,223,187,239,220,227,126,231,158,115,159,240,78,252,114,239,95,252,139,143,254,248,163,255,233,163,255,193,191,191,250,119,47,254,243,254,219,87,111,254,254,151,159,126,252,209,71,127,189,255,201,71,127,253,239,255,37,176,246,99,96,237,207,255,244,163,95,252,217,71,63,255,228,23,31,127,242,139,191,252,197,199,31,125,252,139,159,255,249,95,254,28,32,251,139,63,255,232,227,79,62,254,228,175,254,102,255,155,253,255,242,205,254,215,159,255,253,47,255,159,95,253,191,255,243,191,253,219,127,245,111,255,211,222,47,191,253,232,175,247,254,221,203,253,87,175,255,203,222,183,175,94,191,117,153,29,146,189,47,126,245,157, -195,244,169,147,254,205,219,189,79,247,191,249,238,251,159,237,253,27,96,120,187,247,155,23,123,159,189,122,177,247,245,235,55,174,211,23,159,126,191,247,229,107,151,249,171,215,123,63,236,127,182,255,102,239,187,95,125,229,164,127,241,250,213,203,47,246,119,171,94,124,247,149,195,244,235,207,247,190,254,230,245,183,111,94,127,243,2,184,252,234,197,167,175,247,190,251,254,211,111,0,234,31,246,190,222,127,245,226,205,247,123,78,236,62,240,28,224,249,78,244,119,251,239,87,189,99,240,179,189,255,232,50,191,252,110,255,205,139,87,223,126,225,184,250,113,5,160,197,7,193,95,237,59,177,14,201,27,128,221,254,222,219,47,94,57,56,59,61,190,218,223,251,236,229,183,95,252,236,15,254,254,151,223,126,252,215,123,127,251,245,235,87,47,156,216,175,118,235,95,191,2,214,125,241,253,238,9,96,245,127,120,241,249,171,23,159,57,233,187,21,251,95,188,121,9,40,44,217,251,193,193,121,71,244,118,239,15,127,52,226,71,19,118,227,222,119,175,95,125,250,193,43,127,180,247,237, -139,189,239,94,236,125,251,245,235,207,118,75,1,93,56,223,190,121,9,72,223,121,243,237,222,15,175,1,75,127,120,11,168,251,213,219,47,95,124,243,242,215,95,56,56,123,159,3,180,175,223,236,191,231,176,247,221,63,225,169,95,254,203,189,255,243,127,253,55,127,191,247,135,78,236,139,111,190,123,241,21,176,112,239,255,254,87,128,217,159,125,3,92,2,87,63,188,120,181,155,253,35,192,112,128,246,127,251,219,191,3,104,95,127,246,237,27,135,228,171,221,227,111,191,127,3,240,218,93,253,102,255,219,63,250,217,222,223,253,234,245,167,175,223,238,125,237,58,117,72,190,222,255,108,39,226,55,59,28,1,107,94,236,44,252,230,245,15,223,238,127,254,65,185,29,199,143,246,126,246,179,189,159,127,242,201,223,239,214,254,184,204,73,255,227,61,151,249,197,222,15,128,228,55,47,246,222,0,66,118,70,75,190,125,241,106,231,222,247,171,191,127,231,166,175,1,31,238,127,246,26,128,243,245,123,111,189,253,227,189,47,93,50,96,53,176,112,39,122,199,242,75,192,157,47,190, -254,22,192,236,179,215,239,103,190,125,245,214,197,121,239,141,23,159,189,124,179,191,195,77,178,115,205,235,87,14,201,95,255,36,1,0,233,187,151,223,190,122,239,53,32,170,191,124,241,230,27,151,108,7,199,254,219,55,175,191,220,127,3,248,250,251,29,199,23,95,191,126,31,33,191,113,72,126,246,1,246,15,195,191,254,215,47,191,220,255,47,47,254,234,47,63,250,131,191,252,232,79,62,254,51,16,148,0,34,128,64,32,104,127,11,252,6,205,100,103,228,227,34,214,193,78,97,96,217,45,180,31,225,32,165,48,95,242,234,160,110,241,33,189,88,62,147,29,224,194,50,252,238,141,105,185,148,223,72,219,74,157,219,187,13,38,106,155,205,133,218,194,130,10,5,171,30,131,196,91,105,104,230,146,15,183,189,152,4,234,190,193,65,60,8,39,92,92,56,172,43,165,88,192,183,212,11,50,249,163,138,183,16,94,101,158,219,248,220,32,122,128,225,197,124,112,174,227,114,4,137,71,161,182,123,227,205,201,140,54,49,37,19,209,231,154,54,112,133,184,35,86,93,46,53,193, -147,38,240,105,122,203,69,111,163,124,64,9,159,133,89,91,187,67,124,232,177,189,7,167,177,41,5,149,90,131,231,249,56,125,239,255,122,245,126,119,124,177,219,39,223,190,217,255,14,8,81,192,207,64,164,191,5,98,124,23,176,239,99,16,64,251,107,32,170,126,248,236,39,168,0,208,255,230,253,12,16,108,187,153,253,189,47,129,43,32,39,252,240,213,254,151,123,175,63,253,238,251,47,128,52,240,221,175,190,125,249,230,237,254,175,119,8,253,241,222,23,159,125,191,247,235,207,127,189,195,247,135,111,0,20,95,2,168,238,32,5,54,200,187,45,255,19,247,247,105,224,235,215,95,188,253,236,199,5,223,125,255,27,96,239,186,78,95,190,121,31,96,0,144,239,4,190,91,247,147,14,191,254,220,193,249,26,8,150,223,236,3,38,125,13,0,190,219,190,192,227,127,2,216,191,248,203,63,248,139,191,252,147,191,248,135,184,242,207,24,199,217,67,187,85,140,135,47,55,218,71,132,115,51,227,100,157,242,235,230,21,18,229,160,177,100,151,252,67,92,240,152,112,152,113,53, -179,233,246,241,49,115,99,12,4,218,51,235,53,89,218,100,231,229,85,123,64,237,116,105,184,121,124,205,170,44,220,115,133,168,130,77,201,243,71,21,209,228,173,178,64,38,129,135,102,234,70,52,57,188,42,60,87,74,228,49,67,122,217,193,97,22,88,100,62,86,80,159,33,228,253,199,57,79,184,1,165,21,77,114,39,181,98,138,107,237,176,176,51,125,212,123,165,196,126,114,13,235,86,2,203,100,65,59,154,86,9,79,34,207,208,2,17,178,2,1,206,54,68,92,10,193,194,209,239,66,250,118,151,2,93,168,119,217,229,221,36,176,221,127,74,88,63,102,130,31,246,94,127,1,36,183,223,188,220,109,207,253,175,119,169,249,215,59,122,32,145,124,245,18,72,53,111,1,160,223,225,240,221,175,62,36,159,183,123,111,126,148,177,191,7,36,179,111,191,248,106,7,208,171,23,223,1,28,222,252,86,252,151,223,3,8,3,201,231,139,183,223,252,0,100,198,31,0,226,215,111,119,169,28,144,244,249,235,189,207,190,1,96,220,133,216,155,215,159,191,6,178,196,239,48,221, -237,202,55,14,206,231,239,248,126,181,255,217,222,171,151,159,238,242,208,78,197,47,119,102,236,176,221,255,245,235,119,217,248,235,87,175,127,253,249,247,63,169,251,199,255,48,122,247,119,161,242,83,116,3,134,189,207,16,31,18,244,222,215,47,255,235,139,87,111,119,243,64,86,0,24,127,241,250,43,128,177,227,234,203,247,146,156,244,15,69,226,79,246,126,249,39,123,255,233,67,230,223,223,251,251,191,217,21,154,253,15,241,244,219,249,223,241,249,239,148,129,189,15,181,242,197,151,123,63,252,234,67,137,2,20,250,234,179,253,111,62,123,159,189,222,5,252,127,183,206,253,205,206,41,251,159,3,186,1,217,79,242,229,222,183,187,156,251,242,71,47,126,249,222,255,159,255,158,31,223,35,240,83,78,253,242,197,15,47,1,103,236,178,252,15,251,95,58,233,46,20,144,124,129,189,242,98,231,143,87,47,191,251,157,242,247,161,142,126,216,54,255,203,79,27,230,227,63,251,248,231,127,240,243,159,127,252,115,16,20,2,190,3,3,91,134,185,249,176,101,122,140,131,81,34,181, -165,9,100,61,16,24,198,73,90,3,242,155,135,10,40,5,61,128,201,43,147,149,92,83,178,185,151,56,16,216,32,174,162,15,66,133,133,114,172,12,94,18,253,163,230,37,99,100,111,110,77,76,159,249,140,217,191,246,181,37,166,53,175,124,204,51,156,162,218,248,90,32,80,123,200,21,53,25,131,212,133,71,149,77,220,195,60,133,75,246,39,185,91,242,229,243,150,53,72,44,162,197,152,207,34,221,224,195,233,88,210,103,50,85,160,16,238,154,172,25,206,140,136,222,26,39,191,160,154,169,9,30,233,9,75,191,239,68,193,7,11,12,79,164,57,135,160,253,106,29,199,136,62,245,118,107,39,225,174,55,34,157,63,31,5,104,72,147,11,209,7,95,168,14,161,243,128,178,173,227,99,250,7,171,132,165,72,72,64,52,173,3,229,12,98,84,31,79,36,147,148,170,111,63,66,178,219,135,219,22,215,244,252,72,100,8,226,166,169,201,103,56,121,74,132,207,154,75,217,29,171,123,176,213,53,195,73,52,12,198,34,166,46,76,119,199,29,132,228,34,46,135,228,108,79,102, -82,162,230,168,80,132,168,54,198,19,198,159,51,80,210,179,6,70,218,227,32,251,55,181,227,200,138,165,59,20,193,154,121,57,164,138,92,233,207,143,54,160,230,37,207,117,50,81,129,13,242,219,45,124,35,39,145,2,48,55,8,79,41,140,73,23,1,126,66,17,95,54,57,194,155,246,227,197,240,10,146,180,170,18,201,218,121,174,59,168,68,152,82,213,177,126,27,177,30,108,109,221,171,160,224,130,35,54,10,201,80,97,94,32,63,46,28,171,113,168,92,62,163,66,143,234,33,103,149,73,194,168,177,172,182,187,115,12,233,156,45,90,72,227,49,41,50,132,248,9,19,114,5,41,113,72,224,201,68,35,129,141,194,146,101,231,161,204,114,26,189,63,186,19,12,80,162,103,182,125,18,34,117,55,133,252,193,148,53,209,144,212,83,194,67,243,226,232,134,123,155,187,92,10,224,121,249,169,228,185,85,211,10,56,138,178,22,114,41,139,244,147,27,250,163,109,123,0,87,66,78,13,86,27,230,17,52,39,144,249,206,120,9,12,170,42,35,157,11,146,246,238,52,30,91,141, -32,156,38,150,183,196,192,196,14,25,253,198,120,245,120,42,70,80,89,49,158,6,206,213,74,206,25,216,58,134,106,206,87,93,135,226,153,232,112,177,57,18,200,71,71,117,80,242,193,230,118,200,48,143,199,45,234,34,155,206,10,143,138,153,172,187,81,181,9,169,135,25,80,18,116,141,62,131,39,31,207,206,7,3,209,208,220,225,115,184,126,102,218,136,96,225,96,151,171,44,58,5,162,38,44,13,123,222,68,60,192,108,57,105,184,49,99,205,59,132,171,24,164,201,174,72,41,100,249,51,175,48,131,217,177,142,213,69,202,82,179,220,112,150,55,183,217,233,113,144,79,199,217,171,72,237,136,85,145,118,211,37,139,116,169,45,78,221,33,122,159,65,223,96,142,68,209,139,226,162,195,1,57,158,177,100,75,91,221,83,173,7,109,33,150,207,21,204,116,99,175,102,217,56,98,229,140,151,166,43,211,157,139,104,107,44,237,226,81,26,41,158,164,183,134,21,203,151,245,172,105,220,224,134,149,145,15,169,151,43,74,107,46,97,139,212,172,232,138,55,85,199,203,113,208,130, -239,225,245,204,246,35,97,14,158,75,222,248,61,5,73,181,149,127,234,29,240,115,212,164,102,35,21,107,66,34,121,128,39,189,14,8,52,97,241,137,34,44,178,159,220,161,23,65,5,220,237,211,33,212,62,221,194,103,24,19,31,148,57,247,101,1,235,219,206,164,19,56,239,230,25,228,238,112,200,178,44,173,128,157,226,140,169,226,104,124,38,234,178,206,124,71,110,131,150,241,252,112,211,96,100,70,118,197,4,85,13,142,57,118,37,116,18,192,18,58,203,130,114,249,112,180,25,223,147,131,84,169,116,122,55,37,16,51,137,233,185,85,210,197,74,194,118,166,194,152,171,235,73,246,123,113,72,147,120,136,139,169,131,8,181,31,163,90,164,46,85,93,226,86,129,154,178,139,186,184,237,79,51,243,55,186,201,202,77,125,238,142,169,114,148,115,3,246,67,218,172,227,5,132,53,62,49,75,207,195,11,162,25,83,14,104,64,217,132,46,217,83,161,93,172,212,198,13,1,67,41,68,147,39,178,234,66,73,137,88,158,189,148,173,123,60,69,55,164,239,250,137,61,138,132,31, -232,30,209,80,105,134,82,118,211,90,116,31,65,237,249,38,30,155,116,226,177,181,219,69,206,186,93,247,136,27,194,186,121,6,105,180,117,233,254,242,246,134,166,174,221,93,210,24,219,241,138,203,235,140,56,51,228,234,97,220,55,82,205,250,249,51,95,27,102,45,210,125,79,105,192,144,206,185,134,78,185,160,34,203,110,252,27,95,50,60,59,19,85,178,233,208,241,246,185,97,185,15,172,101,49,221,90,85,43,94,52,113,220,165,161,89,87,79,196,190,165,204,56,228,115,113,219,71,251,67,152,229,49,108,38,104,237,230,41,246,188,236,134,213,230,109,21,149,76,215,214,231,126,205,51,207,254,172,119,174,12,202,200,74,105,93,121,243,184,246,163,70,193,75,42,35,234,98,89,37,189,114,119,219,115,201,245,134,76,87,57,43,166,164,129,130,16,207,32,93,176,110,114,243,44,146,223,57,181,196,113,72,85,26,118,158,31,203,68,42,146,97,52,62,139,162,238,40,159,238,49,157,77,230,78,31,162,202,55,211,34,213,5,199,67,167,71,142,23,35,193,65,242,34,49,60, -131,95,153,233,23,72,133,149,135,46,245,204,75,118,234,108,1,227,246,214,190,238,36,78,113,198,60,129,46,238,52,157,4,159,164,207,228,150,72,207,156,51,135,111,196,254,19,121,185,159,41,8,89,101,108,65,169,101,223,187,67,71,67,18,70,68,156,20,184,198,101,144,53,146,105,139,113,10,201,82,89,220,207,169,218,242,114,44,225,47,203,166,121,71,210,119,248,100,99,214,74,65,225,12,128,192,62,64,185,194,83,195,51,235,233,190,117,214,110,91,158,251,171,130,174,246,116,83,115,5,155,5,135,157,114,144,55,95,240,155,138,12,228,242,14,124,207,11,204,177,211,82,123,54,221,170,39,90,166,198,180,153,9,199,89,71,138,143,193,229,152,2,165,165,4,199,185,228,198,220,131,249,138,57,48,211,106,226,96,65,155,24,36,168,125,227,150,114,125,103,199,233,6,49,41,221,74,129,72,172,198,10,186,191,61,47,67,142,31,224,230,46,219,204,46,187,77,218,173,172,181,229,167,5,13,163,126,54,174,57,171,104,7,174,218,158,202,162,182,97,93,49,25,22,22,105, -140,96,81,184,229,177,12,131,132,204,190,9,71,165,22,68,78,161,196,87,192,43,152,101,182,102,205,151,23,148,203,248,17,5,235,65,65,68,71,196,187,133,86,38,81,201,216,82,173,68,160,8,201,38,202,64,80,27,240,165,13,225,64,239,84,195,231,18,52,6,29,207,212,190,147,198,214,94,152,165,83,202,13,56,20,8,250,49,220,178,232,159,214,150,173,205,22,188,30,76,89,11,53,203,176,224,246,149,219,231,16,185,226,223,122,210,13,62,49,164,210,55,99,237,35,15,46,94,63,57,56,202,193,68,184,60,149,213,210,97,68,253,131,210,132,158,138,89,125,18,18,188,225,187,88,62,174,203,150,37,115,149,63,10,171,204,67,170,119,113,209,185,173,221,251,26,68,56,239,66,199,195,230,2,53,155,202,145,132,18,56,29,164,206,45,100,230,210,4,173,240,106,73,157,195,25,79,3,203,9,38,72,121,174,192,33,247,55,96,179,172,114,93,217,42,164,154,205,164,26,107,42,202,170,213,132,3,54,142,8,210,99,202,106,100,95,115,203,12,209,118,156,214,81,55,115, -233,166,136,14,72,68,204,45,221,63,151,67,196,39,151,173,82,91,193,42,183,179,91,212,61,216,161,0,210,233,17,248,232,118,82,5,60,35,80,2,249,71,21,244,107,105,161,176,218,217,215,4,198,65,141,179,222,25,56,132,245,22,159,91,52,76,251,77,71,107,188,141,153,242,82,62,224,23,249,58,229,107,250,180,134,48,235,145,123,56,51,177,176,229,192,160,172,148,213,108,7,184,141,63,84,86,74,228,200,36,47,95,50,182,151,186,182,42,101,29,223,111,181,4,138,67,199,131,158,18,17,194,250,58,75,89,99,170,119,183,165,164,68,135,18,61,45,211,3,115,107,27,58,180,208,20,117,186,142,4,103,137,105,246,193,216,182,182,112,47,28,157,6,186,190,32,48,175,11,184,249,100,84,32,216,194,77,95,62,40,70,11,2,209,246,166,102,186,215,60,119,67,214,135,169,10,106,245,231,65,165,216,165,123,26,15,141,231,247,169,36,210,33,22,29,101,211,76,149,70,44,211,136,175,228,226,137,64,17,16,169,2,33,149,54,28,86,187,250,26,155,187,126,202,191,167, -93,244,175,49,83,30,253,34,174,196,70,219,146,41,79,197,197,149,182,219,177,140,62,189,130,87,122,176,48,170,252,164,179,58,250,81,171,79,4,71,79,117,148,158,173,91,136,116,42,89,80,45,140,202,143,213,64,254,52,98,60,224,69,67,107,132,228,199,240,174,2,178,13,102,111,219,147,198,232,30,158,142,83,215,196,64,164,9,30,59,97,18,43,66,210,45,166,179,215,249,240,194,223,230,209,83,89,91,92,50,93,44,54,214,208,53,121,187,234,204,114,170,242,73,121,221,81,87,152,206,209,209,9,217,103,161,221,107,34,216,194,105,166,50,84,54,41,53,240,201,74,7,222,70,214,249,49,47,235,162,144,213,18,17,234,40,199,202,12,138,185,200,125,54,209,56,16,105,202,1,159,54,144,233,154,9,22,143,145,155,87,93,249,226,163,1,98,110,215,195,218,118,90,251,78,63,145,219,44,199,121,252,172,9,46,210,121,139,235,158,174,214,182,54,193,25,240,243,249,118,210,183,21,200,181,184,205,28,90,233,25,215,156,225,52,128,198,220,231,109,143,89,144,14,191,48, -50,10,43,35,136,89,46,175,141,81,22,43,162,108,70,109,27,120,172,161,226,147,221,106,174,100,198,211,81,251,80,228,157,215,158,10,167,136,52,214,116,99,21,0,37,25,239,166,18,121,210,89,222,100,42,163,163,71,240,164,197,112,118,156,157,36,157,230,229,53,79,1,62,103,135,108,113,57,45,15,187,165,210,226,117,101,21,10,127,134,122,32,155,7,155,114,157,186,79,82,37,183,147,44,53,145,75,81,73,122,36,196,120,123,48,42,12,31,152,195,128,79,115,165,143,27,57,14,194,25,185,207,164,54,104,69,86,159,118,130,144,220,24,149,157,245,54,110,170,234,120,90,162,134,221,210,245,211,190,97,209,21,214,123,30,227,1,126,241,138,207,97,228,195,55,196,35,189,60,197,120,22,203,20,178,114,97,112,98,8,43,174,187,49,112,153,145,108,159,28,166,147,58,89,194,162,139,250,122,182,152,5,222,120,136,187,26,113,110,253,201,214,42,197,131,188,226,100,60,19,179,203,224,250,41,35,232,139,211,137,77,53,139,27,90,230,67,115,86,193,172,210,165,33,200,14, -120,46,241,246,120,30,245,185,174,97,70,247,159,176,42,36,84,176,89,27,204,24,244,67,189,123,218,63,214,181,58,117,18,87,29,62,193,138,224,107,18,215,60,235,34,20,88,163,108,49,214,11,158,6,213,77,177,104,131,106,42,155,85,119,112,39,76,205,214,48,151,128,220,71,31,138,175,209,19,113,124,40,81,232,40,166,147,179,161,201,16,36,26,148,129,232,41,69,113,122,223,120,106,103,96,142,89,154,100,57,10,172,6,197,4,157,162,167,167,207,52,219,102,235,108,30,190,121,230,176,120,148,186,177,26,40,205,11,58,224,212,249,52,134,213,146,81,207,179,3,139,131,171,113,58,228,153,249,90,200,152,37,219,73,46,46,187,212,55,201,39,103,124,238,218,140,164,161,117,132,188,247,170,41,83,60,179,130,28,42,4,119,207,169,93,67,106,61,68,149,180,61,20,33,70,237,225,114,100,104,168,30,140,150,7,238,124,161,46,94,155,123,69,69,247,130,76,92,48,37,108,4,244,166,76,236,160,229,184,155,39,116,9,99,194,227,101,116,133,88,138,111,44,215,150,181, -230,252,124,124,251,96,179,160,170,166,1,171,5,190,96,176,117,208,33,115,65,155,154,17,125,66,219,21,155,205,22,84,119,224,28,182,185,91,176,32,107,40,241,217,13,191,194,195,25,241,231,80,174,73,205,83,146,185,58,37,157,163,36,85,33,141,76,29,18,105,66,82,157,42,36,147,187,27,249,69,109,146,27,4,21,56,95,185,199,160,246,24,68,246,61,195,81,144,99,131,135,109,125,115,93,30,89,32,93,174,36,19,173,133,113,75,187,110,121,245,28,197,163,44,193,45,100,53,137,107,198,209,230,157,175,121,212,169,225,238,61,12,180,0,103,104,166,245,124,214,229,37,197,153,50,240,147,149,105,80,164,8,21,250,71,26,235,26,10,185,179,245,66,135,113,155,106,88,141,23,27,64,150,118,24,214,88,117,187,126,125,237,167,75,84,16,68,17,141,201,157,94,99,175,226,88,95,1,248,81,4,175,226,103,210,62,107,18,133,18,21,62,59,129,22,21,222,214,76,14,48,19,125,206,44,48,42,224,101,119,114,183,146,220,204,58,243,199,68,66,118,126,168,143,148,158, -49,99,115,199,195,88,81,206,102,15,77,198,68,15,189,96,242,168,183,23,43,233,163,222,40,241,207,100,215,237,212,253,227,249,82,59,148,153,77,26,221,189,6,78,38,247,208,194,60,37,197,202,52,168,218,144,168,55,102,20,11,250,139,155,241,241,198,158,15,152,37,122,95,88,99,78,107,52,158,153,102,49,237,182,30,82,38,32,106,162,6,154,103,41,222,250,167,60,108,233,44,112,59,205,19,153,67,102,125,227,61,93,31,245,99,104,230,136,151,214,105,39,166,70,225,49,167,107,168,73,195,249,65,211,94,139,135,178,158,66,28,119,92,73,215,112,250,154,176,55,81,184,220,79,249,77,4,214,4,103,227,234,166,244,92,253,112,171,52,157,181,207,245,164,222,230,230,54,49,167,247,141,248,64,46,85,230,137,179,188,81,219,93,37,157,212,158,3,183,33,232,9,58,127,103,46,105,108,56,113,125,124,157,43,170,156,226,147,167,99,12,156,159,129,100,208,78,172,196,215,71,103,215,148,213,96,100,150,61,222,217,56,172,213,234,20,119,132,58,100,200,234,6,177,174,95, -208,159,142,228,147,235,203,103,129,216,115,210,51,145,239,251,228,106,104,250,8,49,92,231,168,96,151,194,205,40,233,93,79,36,35,242,76,125,237,96,74,219,81,83,211,101,209,242,215,13,223,210,98,124,158,204,1,95,77,132,249,102,26,223,206,114,184,189,107,127,111,74,85,231,239,14,31,162,240,30,171,54,204,187,251,192,64,142,155,159,167,121,175,94,156,55,25,70,14,66,58,220,46,117,128,18,119,101,120,218,192,215,241,131,152,199,127,202,151,110,87,25,21,54,255,8,235,230,39,167,77,247,117,8,230,113,49,142,206,38,82,227,125,146,182,46,168,123,2,133,155,173,119,147,139,61,214,73,166,69,51,141,135,177,168,53,203,16,244,16,192,169,89,211,53,155,71,68,212,211,246,80,186,141,247,150,8,5,79,98,153,221,186,137,130,3,214,25,163,177,14,180,27,9,31,175,206,108,173,113,173,129,38,96,91,169,54,170,172,247,220,125,42,177,184,157,153,132,216,43,62,121,148,57,33,208,21,41,83,225,122,212,96,120,194,52,75,130,134,233,165,247,182,12,107,50, -171,14,74,36,82,238,185,121,114,17,181,95,87,199,81,50,69,179,38,41,210,68,169,64,1,70,189,111,83,16,224,145,64,54,167,63,32,249,250,105,161,54,221,22,110,44,45,247,131,242,142,62,20,14,140,83,196,211,193,237,232,105,57,179,207,187,53,180,244,40,96,192,108,194,161,241,113,182,215,115,76,78,17,151,204,180,97,189,66,20,89,215,254,162,158,128,203,104,77,157,152,247,10,56,86,25,171,119,1,225,176,111,170,21,54,143,110,93,3,51,180,73,175,165,112,126,241,58,236,159,148,183,103,25,185,34,152,34,171,195,102,94,217,105,188,139,179,22,18,239,69,199,74,12,250,174,115,55,135,4,12,57,143,65,198,98,24,100,124,73,22,216,114,21,97,185,6,64,103,113,215,125,140,122,41,161,139,90,212,194,77,81,119,18,166,224,90,106,208,1,212,3,203,65,140,130,4,30,45,174,139,175,30,100,15,215,160,195,124,223,166,182,197,11,186,103,255,150,139,108,110,195,179,121,208,26,200,156,130,201,199,39,107,178,67,29,145,231,78,27,97,29,247,86,251,108, -86,165,43,62,8,250,46,180,189,166,84,174,138,241,114,130,97,108,153,91,76,34,182,168,224,202,107,238,54,210,115,246,140,219,160,253,254,1,70,214,63,137,103,102,79,225,77,243,241,12,199,247,138,187,142,120,224,216,114,80,110,149,250,151,134,204,176,179,73,67,213,147,67,172,231,44,207,226,198,138,15,51,0,247,167,102,175,113,29,114,234,155,157,206,117,8,41,135,31,233,164,13,70,135,185,56,43,180,60,140,101,68,173,180,95,110,166,184,118,235,124,73,16,91,161,126,10,35,220,41,20,141,234,121,24,186,92,16,176,8,127,111,4,70,92,167,122,154,36,239,150,230,79,209,111,153,242,75,138,248,129,90,245,100,182,53,222,113,89,98,94,138,136,115,135,207,174,41,9,248,240,240,129,213,156,61,45,54,109,132,131,51,92,136,76,96,117,2,133,109,249,238,38,25,198,228,199,39,152,121,193,81,111,83,110,162,162,16,108,160,195,19,74,107,71,102,44,193,244,133,22,40,103,212,226,40,167,179,123,237,105,132,204,117,173,252,98,75,135,155,4,187,251,74,151,236, -80,179,49,240,93,79,60,9,103,53,77,162,133,122,201,179,68,127,52,192,5,250,189,67,105,235,80,210,62,155,68,75,174,174,205,169,180,72,5,49,105,212,85,196,79,169,35,87,99,130,213,250,58,40,175,2,193,53,109,130,83,75,47,97,247,62,134,221,205,145,68,24,87,202,244,245,242,99,225,34,90,147,184,25,45,38,170,212,97,17,122,135,229,131,41,50,102,157,107,163,27,156,162,54,232,94,200,174,184,146,142,47,15,119,149,30,87,79,229,3,200,189,153,142,189,63,112,43,97,132,184,207,63,140,198,110,33,165,51,117,147,215,159,230,215,158,236,173,38,138,104,142,29,150,229,163,215,67,24,218,151,18,107,5,125,153,202,249,154,77,147,167,228,12,214,181,243,101,14,115,133,182,163,31,142,93,14,30,42,118,221,104,157,170,238,91,220,113,203,156,242,219,185,213,150,249,130,131,141,201,47,237,222,227,232,211,208,225,12,14,142,150,10,57,46,240,152,149,231,156,242,209,41,176,99,236,183,249,80,167,46,77,173,174,207,91,147,48,250,78,67,122,30,166,96,137, -144,47,99,31,177,202,122,67,254,210,108,14,111,202,138,245,89,39,155,94,223,79,2,119,15,186,117,103,158,38,109,149,210,165,255,97,74,209,232,220,84,157,155,164,47,184,41,89,100,211,128,88,54,50,23,74,189,157,160,207,59,8,150,228,154,181,64,170,241,133,211,218,245,218,208,32,103,106,211,60,155,165,175,135,111,58,222,197,77,167,176,70,213,56,135,53,28,217,195,184,13,39,110,168,103,143,65,125,95,114,104,106,208,70,25,245,64,195,91,246,133,105,188,247,124,57,67,40,196,182,220,26,139,18,145,60,147,179,219,116,10,227,65,186,146,105,101,45,63,49,95,94,202,188,17,42,175,133,182,166,232,135,76,37,73,76,144,55,100,234,94,177,34,41,153,110,9,167,232,163,56,242,209,90,41,141,180,98,115,213,235,186,175,178,158,130,184,11,116,54,155,148,27,206,42,232,187,109,0,33,190,25,156,245,192,41,49,136,85,50,108,163,115,140,232,110,59,117,116,7,13,87,170,116,186,16,76,211,105,103,98,128,109,11,150,147,13,75,159,26,57,184,134,232,201,178, -230,18,161,156,151,185,64,214,60,42,179,10,184,192,195,25,3,155,215,113,216,64,250,219,54,235,132,208,9,33,148,94,30,26,228,81,46,35,67,188,213,123,168,35,108,234,170,111,63,196,8,228,102,79,95,93,86,27,68,122,241,5,180,231,244,48,195,229,214,38,233,154,182,183,130,132,230,196,148,110,58,40,165,76,97,92,203,242,55,184,123,164,254,238,200,63,114,179,30,10,137,252,226,116,250,216,20,35,13,151,119,93,3,143,161,242,224,146,249,39,69,164,30,29,165,103,125,44,169,128,33,165,214,169,46,120,105,157,95,149,21,157,103,247,73,64,100,104,110,76,235,167,235,164,248,62,104,160,106,99,247,46,237,189,167,124,59,41,37,206,200,252,240,137,154,27,198,170,31,206,234,190,12,229,62,115,19,179,60,107,148,237,251,89,26,29,143,26,174,35,50,56,41,135,202,64,58,168,22,91,15,39,161,156,16,97,94,236,56,42,240,54,146,48,132,84,201,176,197,16,106,185,1,62,124,60,235,128,32,109,48,5,9,209,221,104,55,161,222,193,92,114,225,83,230,60, -189,54,131,190,234,210,89,249,195,3,251,240,193,21,206,123,234,26,15,174,148,159,132,251,121,25,234,76,227,53,105,56,240,108,175,122,218,171,94,185,83,42,211,125,224,217,226,134,35,38,134,33,90,218,112,247,244,122,93,183,195,87,21,26,217,121,186,81,108,106,131,1,131,230,226,137,61,207,217,134,9,72,185,225,131,35,14,224,136,181,96,85,19,152,16,213,243,37,102,122,79,115,196,60,180,104,99,112,23,223,112,160,36,57,51,114,216,79,209,115,253,149,122,221,15,82,69,23,230,130,97,110,40,240,218,77,77,72,31,212,142,39,58,201,117,152,57,96,60,141,41,109,170,74,19,94,79,134,245,193,131,54,96,188,49,119,242,85,88,148,202,162,109,122,2,232,116,109,186,124,176,92,212,34,203,238,157,207,30,143,61,64,197,168,5,5,214,6,143,137,155,206,77,145,237,134,113,146,218,44,76,122,214,103,48,140,87,8,118,4,155,19,243,37,87,13,49,113,200,178,20,135,67,94,205,30,34,123,61,117,180,99,90,164,29,163,98,219,169,127,122,129,210,142,79,170, -87,227,227,43,45,21,193,83,21,200,43,149,238,188,29,155,77,110,245,213,188,244,34,56,174,109,98,102,201,220,135,157,247,61,134,43,120,98,19,104,204,205,156,90,127,194,42,185,165,203,100,38,104,161,208,181,115,109,77,187,189,212,244,227,205,40,125,235,166,171,239,167,53,205,54,180,169,55,194,158,135,205,176,38,15,110,237,124,199,249,113,215,124,148,159,242,7,170,197,84,113,197,98,172,69,3,209,236,10,170,28,178,239,146,158,165,107,216,221,154,219,125,89,227,104,181,218,250,50,211,59,207,173,233,122,180,50,220,186,13,38,139,170,3,229,70,251,44,247,209,188,238,243,26,195,84,236,236,222,94,189,101,57,177,235,122,223,233,150,53,97,235,27,162,137,97,225,165,22,218,33,121,38,27,207,228,236,3,77,18,180,192,8,58,108,124,223,102,43,117,33,46,112,50,79,154,205,14,208,106,52,45,113,115,62,190,180,92,9,112,112,127,223,99,146,45,76,253,184,65,31,238,15,106,23,23,102,243,224,248,190,134,96,21,207,87,198,217,237,212,38,169,89,124,150,211, -233,136,39,52,61,6,37,117,175,107,122,147,62,49,49,73,215,144,129,111,37,42,245,104,177,7,204,57,149,246,220,199,93,173,30,147,171,203,219,38,252,41,211,175,193,17,15,157,204,217,99,201,170,100,103,215,107,40,183,196,194,168,79,99,211,167,182,229,0,241,52,44,137,146,90,65,247,210,30,104,161,157,135,101,81,156,8,57,144,201,5,80,240,221,250,68,62,215,210,175,226,85,82,60,104,14,245,51,113,248,196,16,173,48,169,224,112,61,235,243,151,24,139,75,94,43,86,234,179,25,105,223,197,248,68,184,62,183,66,238,193,165,99,206,193,170,255,92,163,235,228,193,166,67,75,84,180,150,217,136,86,199,190,155,234,189,189,115,37,94,85,182,26,56,83,91,75,202,4,45,111,67,32,33,50,19,187,156,63,6,121,198,121,230,24,139,173,139,210,236,19,152,57,165,25,169,204,197,50,50,9,97,205,210,197,115,177,120,176,118,45,240,227,158,190,48,4,27,41,15,70,143,248,17,139,182,26,172,104,53,180,12,102,178,158,220,120,144,173,115,24,36,82,8,94,110, -198,149,208,10,4,93,183,147,24,114,73,7,39,207,153,162,89,220,61,12,182,98,71,32,40,76,37,81,66,37,125,107,188,100,211,68,195,96,184,181,2,243,138,65,32,57,8,100,5,65,64,32,52,8,36,174,191,191,133,48,35,246,180,44,46,32,144,80,28,151,225,16,158,129,225,149,21,72,220,136,52,43,4,101,72,245,78,236,141,44,166,118,92,202,67,192,105,96,170,75,208,61,20,156,115,178,41,151,170,236,249,213,224,64,107,133,243,24,161,135,164,43,22,175,24,193,228,62,9,108,22,64,208,245,94,134,251,108,141,191,155,144,197,214,92,230,74,109,101,212,76,146,217,177,144,9,226,233,181,232,199,242,21,146,35,103,171,8,145,230,196,127,220,23,141,65,20,88,203,13,33,0,167,30,209,249,40,146,99,55,36,80,73,251,212,133,142,60,193,106,198,77,81,37,119,138,139,104,150,108,145,72,119,102,54,33,26,6,228,49,34,35,43,72,122,14,73,7,80,43,86,94,34,100,103,146,205,165,117,73,90,82,211,235,22,229,152,242,88,230,195,155,163,113,146,85, -93,248,77,222,103,172,247,182,139,32,150,79,42,158,249,161,216,94,133,173,5,122,135,69,130,175,203,208,243,109,49,133,48,198,205,46,179,176,112,110,38,146,99,248,27,56,36,31,101,167,61,55,241,205,136,175,53,214,214,106,171,136,201,121,28,128,167,136,62,140,111,119,131,45,28,37,145,172,103,179,224,5,137,47,79,64,216,7,199,6,74,12,151,175,136,48,231,196,202,2,46,42,222,24,96,79,219,165,17,148,15,209,30,249,35,97,154,187,236,137,248,99,171,178,146,89,113,71,89,201,99,162,105,83,244,172,113,83,22,65,57,119,178,218,168,128,53,96,65,62,77,16,233,21,13,205,158,209,77,89,182,241,108,93,226,206,142,15,148,179,66,21,44,10,187,242,214,251,94,239,120,112,92,86,232,239,14,35,21,25,8,126,96,36,66,110,193,232,25,74,219,98,187,40,103,232,39,99,72,212,7,203,68,119,178,213,52,123,250,172,185,143,87,107,162,135,134,72,29,112,131,231,43,175,179,96,187,84,128,242,215,5,214,166,202,64,206,99,108,246,61,190,114,188,240,199, -229,43,220,134,95,105,15,78,231,57,126,103,165,138,135,111,100,9,104,130,34,224,94,214,170,241,235,49,241,140,70,17,200,29,100,89,204,238,34,70,170,238,39,87,46,221,1,139,81,216,17,44,113,19,53,78,200,160,5,8,109,191,0,147,73,0,214,59,168,25,0,214,59,168,53,0,214,59,168,245,0,214,219,16,14,172,80,131,41,48,82,204,106,68,159,215,186,38,28,92,136,239,96,92,93,31,127,130,134,148,45,131,109,94,39,42,137,79,58,80,248,241,225,244,2,52,3,103,216,32,80,5,12,2,193,65,32,16,5,4,202,128,42,187,91,152,7,194,169,148,193,20,214,8,41,50,8,177,94,249,35,30,188,145,75,91,20,54,249,14,73,174,50,236,157,203,67,139,67,127,25,58,89,183,5,51,233,138,45,183,42,243,32,56,24,98,133,128,229,214,6,62,3,162,68,189,172,138,13,196,150,59,65,98,252,41,140,2,59,61,135,119,136,64,241,202,119,115,118,70,130,219,179,35,81,53,219,118,113,200,165,166,25,30,244,77,184,187,212,39,192,103,199,126,138,152, -45,43,92,241,51,57,74,2,46,50,186,32,15,136,156,53,102,3,19,226,119,160,27,138,252,176,196,141,143,34,86,225,53,232,224,106,35,22,160,83,243,44,26,214,142,64,244,225,227,36,142,18,225,60,163,31,19,227,155,132,39,32,247,135,242,20,235,241,241,117,173,147,120,0,19,201,40,46,200,200,162,182,110,33,213,234,36,107,171,128,181,23,145,51,184,170,2,246,58,241,153,138,228,129,25,242,162,19,125,176,159,36,128,139,106,147,234,118,232,205,50,25,71,196,17,237,248,64,232,172,96,225,66,11,66,38,232,26,206,15,39,120,238,28,49,191,113,95,218,10,132,64,132,77,17,123,123,206,120,200,223,5,83,14,29,241,227,99,191,149,207,60,66,37,32,119,116,54,58,1,135,160,141,112,80,6,207,70,137,65,232,122,29,1,134,87,192,43,43,0,15,10,130,182,66,32,167,128,26,25,182,114,251,223,245,155,128,225,134,204,36,167,49,118,85,110,205,162,9,82,182,228,170,2,182,179,229,32,154,24,111,177,66,64,54,208,142,201,53,74,76,2,68,28,201,217, -86,252,142,137,23,3,57,4,68,204,129,10,234,197,195,40,32,184,18,74,182,66,228,214,13,64,4,129,237,244,8,156,3,152,169,41,86,237,161,128,4,1,195,15,243,218,8,138,231,93,117,151,32,50,226,157,198,120,128,116,167,49,20,188,122,167,241,142,31,160,177,77,238,205,176,163,106,63,185,136,175,86,56,7,24,114,91,13,2,37,2,17,220,1,42,65,23,12,84,233,66,207,138,0,35,105,238,39,8,243,57,32,138,181,110,203,16,212,21,209,141,21,115,198,246,150,131,12,177,82,80,72,64,67,144,28,80,34,83,65,195,69,84,64,177,10,62,199,150,147,1,47,89,33,201,3,9,59,156,39,139,73,171,198,99,62,50,189,79,216,176,143,57,16,222,32,196,93,69,142,225,198,88,64,80,63,20,138,43,109,56,59,82,61,66,49,209,152,68,124,203,20,87,200,53,35,191,205,149,180,170,103,162,89,201,109,107,130,79,174,19,29,0,79,188,248,154,34,136,66,156,87,197,25,211,236,182,245,192,70,0,227,154,26,132,171,113,187,150,145,184,85,77,116,207,10, -20,129,7,236,214,87,21,86,198,57,172,138,130,67,39,50,104,17,4,73,94,69,144,20,88,208,3,169,186,109,13,48,55,71,18,64,1,253,110,184,226,10,66,57,14,159,195,183,234,243,49,139,90,122,148,161,133,125,255,213,45,31,202,194,230,241,58,60,201,172,142,163,225,29,14,116,43,142,16,193,89,246,35,92,28,57,147,131,132,98,188,1,176,20,36,120,103,229,255,120,148,139,241,3,240,106,193,188,20,159,136,41,42,8,252,224,16,10,224,248,140,68,237,156,7,248,238,159,59,206,128,209,42,27,216,236,0,207,29,235,15,35,164,82,3,199,166,0,84,199,72,158,50,145,2,138,85,228,218,102,56,143,245,168,236,77,13,75,70,212,47,79,102,130,170,216,42,43,173,165,41,182,150,45,20,59,132,240,80,100,158,96,26,121,153,52,114,44,140,192,197,120,140,220,74,16,146,108,64,96,53,8,32,40,26,130,0,166,184,192,28,9,121,0,79,128,55,80,123,251,110,90,63,169,128,47,175,16,202,58,188,171,128,55,185,106,10,104,12,127,134,91,216,152,12,69, -46,147,8,74,173,50,128,158,159,35,192,243,140,20,57,235,121,129,75,134,32,77,87,144,98,151,163,203,220,115,118,248,185,6,238,72,90,134,5,41,205,143,16,234,164,44,133,34,23,22,231,85,187,56,72,145,251,101,45,46,55,76,100,138,35,104,8,126,69,97,99,113,240,74,7,124,11,169,3,105,207,199,100,236,4,31,178,45,231,16,116,230,158,138,28,17,154,7,37,116,130,115,105,5,34,152,199,64,137,35,114,43,196,23,83,193,208,206,60,72,245,120,62,17,75,225,118,59,164,123,31,62,78,212,109,77,186,208,18,59,84,85,108,197,173,66,211,164,176,249,188,86,205,224,190,44,40,193,39,146,72,254,81,18,161,48,30,175,178,21,111,131,4,94,65,237,87,4,168,245,189,249,114,33,96,254,206,35,224,6,225,157,71,18,239,188,68,178,29,190,243,18,20,205,126,79,102,77,190,39,107,128,222,147,225,133,239,201,32,240,247,100,144,8,226,31,247,111,242,61,153,28,242,158,12,33,120,79,70,34,191,39,251,255,93,15,144,27,78,97,143,145,117,208,201,172, -117,238,184,151,224,65,32,53,81,117,113,78,78,34,58,244,96,146,110,218,229,1,132,194,10,110,155,241,135,11,244,57,205,120,21,90,132,209,9,4,186,136,236,0,49,98,199,252,94,220,253,56,146,162,74,80,147,92,184,155,158,156,24,129,188,61,123,98,206,53,160,165,106,48,190,76,212,192,75,250,117,126,123,131,133,38,33,230,144,51,226,146,75,42,20,139,202,239,172,100,34,84,157,235,232,56,0,108,244,10,141,98,140,141,101,126,244,133,96,129,68,67,20,86,17,59,103,82,35,243,16,125,42,43,18,129,252,226,46,27,93,54,81,70,189,176,59,113,14,146,81,30,153,26,161,11,178,41,193,31,208,153,53,103,5,11,196,50,214,94,148,10,247,159,226,208,29,37,40,187,60,176,137,70,54,20,22,61,202,132,119,254,224,179,81,96,116,70,6,134,155,43,96,25,199,53,132,28,186,159,161,76,37,157,124,1,168,73,1,53,225,120,33,142,9,88,185,66,117,16,20,239,217,63,127,63,254,143,70,92,166,18,132,136,90,135,144,12,91,181,75,237,144,225,110,54, -3,130,80,254,121,35,225,221,72,69,83,8,149,45,67,116,206,134,58,172,142,39,52,200,10,13,238,106,60,80,226,129,26,191,43,241,182,15,183,92,24,165,226,2,131,220,168,227,182,237,82,139,6,65,216,163,119,231,214,203,15,231,86,246,238,24,91,145,103,145,236,153,75,111,197,216,170,155,76,7,200,214,163,92,186,194,49,194,36,45,59,43,132,11,161,73,243,160,137,14,243,226,107,96,33,11,237,98,110,161,215,190,19,201,108,120,107,98,159,9,87,202,138,80,102,131,245,166,0,240,17,11,217,156,99,15,204,231,132,131,221,221,161,57,15,141,196,4,132,99,74,193,105,139,151,32,104,144,171,246,148,132,56,110,47,210,168,97,207,120,4,22,131,250,104,21,52,76,105,29,76,224,179,40,113,36,138,149,114,86,253,57,87,103,197,64,212,53,17,220,61,13,50,226,71,9,24,124,45,1,14,70,5,72,169,125,37,1,81,4,167,44,9,91,94,224,141,251,55,129,135,96,36,62,130,13,147,78,118,198,74,99,68,202,183,61,186,51,196,10,112,78,173,239,24,240, -26,83,70,205,115,168,151,222,159,72,18,78,249,17,170,129,175,77,238,33,169,71,252,2,76,1,153,115,21,229,36,173,219,92,178,69,80,98,214,30,132,13,197,200,74,127,219,99,34,224,62,110,72,186,99,113,127,13,119,35,98,77,119,1,209,129,208,120,252,147,91,153,191,7,126,68,107,99,209,236,53,90,110,13,246,102,29,176,171,216,164,240,205,126,15,145,52,138,131,245,209,39,52,76,200,130,226,80,32,158,57,95,41,61,167,117,87,54,226,8,44,178,221,200,240,230,115,232,157,230,145,10,128,73,27,44,250,224,228,232,128,61,71,27,143,220,36,56,36,14,28,19,173,243,21,84,99,93,249,46,159,243,104,171,58,252,20,67,162,53,170,67,25,69,69,147,145,15,96,110,32,110,69,140,89,29,44,179,148,161,94,244,76,2,138,52,81,97,133,181,219,6,13,64,52,184,10,126,216,4,205,68,46,17,60,166,204,136,173,145,133,5,201,209,236,222,83,80,60,32,30,192,31,226,1,172,168,244,46,50,32,140,178,1,156,46,240,14,136,86,82,206,198,226,243,238, -131,126,254,52,123,106,39,107,183,252,134,50,83,41,183,60,203,13,50,24,11,175,178,42,224,213,148,56,13,250,32,7,131,32,255,232,28,30,91,111,206,253,79,106,159,36,210,218,208,66,237,82,26,125,50,101,93,132,73,163,109,105,68,83,220,89,51,79,7,90,24,239,118,152,30,61,155,243,17,255,180,171,171,151,154,245,180,38,22,94,198,219,30,38,36,37,161,156,76,243,96,194,163,163,165,223,6,83,252,129,8,158,88,55,91,24,168,132,77,63,133,5,9,240,130,161,215,186,53,65,216,117,89,187,190,38,106,64,79,71,250,13,58,58,235,199,248,18,184,56,26,63,87,208,33,234,160,24,147,186,72,99,109,11,156,97,56,189,52,247,80,203,170,186,210,8,7,131,139,184,198,230,45,167,67,135,84,226,234,209,80,182,111,208,45,122,52,58,189,24,92,164,80,89,233,164,228,29,153,115,86,131,196,136,231,192,252,174,89,178,161,159,233,3,205,46,2,175,107,97,83,155,66,193,248,112,47,226,225,33,225,178,136,31,122,199,97,86,190,67,23,166,140,139,235,182, -182,82,49,8,150,224,184,175,10,30,230,102,25,113,101,44,243,98,193,70,152,99,133,120,76,144,207,33,243,165,132,222,191,53,43,239,195,249,170,88,61,35,120,75,245,142,55,61,156,19,242,214,50,20,119,101,38,50,24,242,46,87,14,236,133,227,237,22,77,129,104,65,184,82,26,30,57,244,85,232,190,30,88,99,213,24,101,62,146,5,42,154,56,115,108,49,252,172,59,244,82,141,103,148,105,100,202,174,149,48,184,180,255,48,41,213,193,11,66,172,205,110,133,148,122,92,91,18,170,189,212,101,60,158,2,124,145,67,31,139,107,167,197,170,237,182,172,5,246,241,212,124,146,180,16,175,134,92,173,117,157,45,235,120,129,243,59,77,245,86,69,241,182,192,51,59,214,38,212,89,164,41,173,34,54,233,128,173,155,235,100,87,154,126,94,173,137,106,107,247,104,89,183,117,43,12,153,14,62,10,122,90,39,145,37,191,113,65,205,225,80,144,171,115,223,70,154,122,226,5,233,150,167,25,163,253,248,60,165,89,116,179,186,73,138,11,112,25,50,5,156,217,247,8,61,178, -227,162,128,5,55,151,68,2,15,21,61,198,218,185,9,199,9,248,88,90,147,19,59,254,43,62,2,125,82,189,218,42,146,198,75,223,166,160,130,75,86,21,238,32,14,248,39,58,39,228,172,197,41,78,131,54,153,71,104,21,229,30,101,51,31,245,111,186,75,145,36,28,132,224,45,50,32,246,178,144,176,214,114,113,145,152,84,75,163,248,134,201,24,78,111,149,160,62,202,39,205,118,245,184,173,236,84,164,155,235,112,98,252,115,105,148,59,193,160,103,34,106,22,67,152,245,81,193,38,16,64,155,181,210,74,60,177,219,39,136,56,132,61,61,80,97,232,118,32,218,245,115,215,19,10,125,197,22,111,193,49,68,78,30,56,68,223,94,22,143,15,142,14,180,146,171,201,46,114,253,217,104,215,86,222,202,240,7,78,8,40,66,169,128,33,160,247,27,200,186,203,175,207,153,202,117,23,94,240,225,31,149,50,56,239,29,125,135,67,132,111,138,161,177,220,240,240,104,57,199,123,49,165,171,250,53,187,149,86,11,185,101,60,45,84,166,199,125,34,56,66,140,122,202,29,153, -118,59,170,77,76,31,82,224,199,79,228,113,71,3,234,123,72,134,28,240,124,185,165,146,84,74,179,231,178,131,214,85,54,78,14,195,24,203,2,249,229,249,137,138,126,52,49,55,27,59,13,236,63,148,209,33,227,82,3,92,150,60,101,154,19,8,127,126,189,57,27,160,195,115,56,169,178,9,192,76,56,94,56,175,184,203,213,163,189,213,248,92,11,55,210,76,129,135,81,7,205,96,48,165,241,185,138,99,12,145,143,248,43,248,243,208,146,132,88,135,83,31,100,210,247,28,182,143,213,195,187,36,58,65,145,231,225,58,15,164,191,69,103,241,51,175,28,162,2,37,189,85,53,112,194,189,244,177,36,105,136,204,135,174,203,238,99,144,43,125,89,61,75,84,193,90,34,112,178,66,207,16,32,89,222,118,163,95,21,241,226,0,180,230,2,39,230,241,235,219,19,187,177,72,183,121,75,234,62,108,110,4,221,227,173,50,202,29,162,78,237,206,184,68,106,168,188,210,40,167,247,97,53,27,95,119,245,7,144,136,37,38,132,168,175,107,199,73,39,65,144,183,162,199,54,45, -251,81,178,2,128,235,54,204,179,44,187,215,20,29,86,146,44,170,156,230,74,147,198,59,38,196,169,58,141,119,34,19,115,244,96,141,154,133,113,46,49,90,149,70,87,252,87,101,74,229,241,104,147,89,135,114,89,7,106,128,178,14,14,160,142,85,190,132,246,213,159,37,7,24,223,243,212,247,0,73,121,158,39,234,147,26,147,42,159,143,207,37,64,206,120,231,105,181,49,38,23,63,46,76,180,115,39,213,150,197,199,102,235,18,251,204,72,27,170,1,112,59,188,48,132,161,222,210,113,105,115,163,174,240,222,112,0,0,137,60,0,192,83,49,234,118,115,248,110,2,105,217,77,232,196,54,252,196,115,105,190,44,104,121,185,96,25,192,92,1,63,3,178,174,6,100,221,21,93,160,230,194,118,69,23,168,185,49,16,232,222,86,143,201,51,160,147,209,205,192,22,229,163,120,103,112,52,80,182,209,191,91,191,49,45,31,214,70,9,140,211,157,58,218,123,8,235,22,109,231,16,10,220,63,96,177,133,112,25,220,104,81,28,65,77,236,45,5,76,65,165,50,236,81,138,96, -106,57,12,134,161,164,213,54,187,9,207,32,248,185,36,2,214,22,14,170,48,113,4,103,212,178,37,230,12,155,111,135,184,241,238,8,132,126,31,71,135,58,232,12,66,238,181,216,108,249,10,168,213,198,236,232,164,239,232,242,16,221,140,121,156,134,152,243,142,17,242,210,14,188,166,158,231,35,41,150,248,177,115,15,142,150,5,162,145,250,196,223,64,15,84,103,40,76,134,221,203,69,69,231,229,105,103,166,93,84,192,55,40,180,244,22,105,16,166,51,241,194,193,28,175,74,89,253,106,116,142,54,191,85,0,15,211,104,193,200,128,247,131,59,6,19,142,35,130,207,5,90,8,142,226,85,65,18,179,133,206,191,170,155,252,140,50,81,152,68,162,19,109,91,235,145,36,247,61,128,249,119,250,169,74,98,228,243,177,83,132,25,224,144,177,179,69,240,115,145,14,255,152,134,150,215,64,61,132,192,71,216,54,23,169,112,245,39,183,15,85,179,159,136,5,222,162,196,226,97,153,123,19,223,152,104,179,139,14,20,126,152,171,180,15,110,159,249,117,168,24,100,71,59,51,21, -133,198,251,112,184,174,7,30,170,12,48,5,10,70,95,22,212,220,20,45,26,206,202,22,216,30,172,31,187,204,174,181,114,171,1,206,67,224,253,110,47,132,59,68,231,106,0,159,146,164,82,74,138,44,36,188,220,250,116,84,128,104,22,70,74,224,12,12,188,206,69,202,79,200,198,59,130,22,72,93,62,252,93,127,51,1,27,182,121,130,63,187,59,182,129,224,80,188,48,67,17,244,27,114,208,20,2,88,99,133,131,197,6,0,112,82,5,246,254,143,52,20,32,70,210,144,167,54,2,225,135,121,139,41,74,29,223,0,161,76,114,8,122,178,13,171,42,245,20,226,92,113,154,246,60,88,70,242,244,157,9,173,154,28,222,28,205,14,54,10,138,163,109,39,155,157,98,236,96,139,45,220,47,25,70,111,72,123,72,195,78,25,235,85,190,91,226,206,139,201,26,97,227,82,12,234,89,183,245,142,42,107,104,162,188,162,233,206,152,123,204,43,85,227,222,157,205,121,196,245,81,15,81,205,37,143,225,124,164,64,111,180,33,205,49,242,68,251,92,127,204,165,10,15,198,91, -203,45,205,157,200,13,27,108,92,68,161,11,28,79,169,247,216,82,103,99,137,214,147,121,84,123,21,93,203,52,68,79,137,71,36,110,253,78,241,201,86,56,135,129,52,182,192,22,121,113,82,2,219,126,191,3,227,223,191,122,249,197,87,111,223,236,62,92,255,250,155,253,127,226,203,245,223,105,57,248,240,209,252,171,31,118,157,32,223,189,126,181,255,102,239,213,235,47,62,124,230,255,213,254,167,14,201,103,95,188,253,237,215,247,14,201,175,119,141,90,95,58,233,95,189,124,179,247,221,11,64,218,174,217,233,61,151,63,222,123,187,251,202,253,229,135,251,183,63,182,131,237,237,255,182,79,226,195,147,31,222,61,120,251,87,255,68,251,200,39,127,246,7,31,127,244,231,159,28,66,15,118,155,26,4,73,252,216,23,212,99,20,159,186,154,21,222,61,174,32,98,169,182,228,188,87,192,61,227,9,154,152,131,230,117,52,182,9,168,204,195,172,114,175,21,104,174,181,218,188,176,62,201,155,70,18,12,50,191,99,130,9,114,210,74,187,218,150,249,173,167,217,131,209,188,49, -199,157,192,118,216,174,11,137,192,214,64,176,50,19,94,8,205,154,141,92,160,59,117,29,245,148,38,27,234,144,61,78,210,104,190,237,177,59,172,218,60,89,42,162,213,132,97,18,182,228,240,112,235,52,133,181,70,168,53,197,228,229,52,71,239,111,227,154,240,250,190,159,209,132,137,5,40,75,186,192,12,104,149,17,20,229,140,102,12,103,106,91,244,200,84,44,39,177,93,47,142,72,42,192,30,174,203,234,18,93,234,102,22,199,201,243,234,180,209,121,230,119,221,15,66,106,62,222,185,163,105,224,73,146,211,236,44,218,171,129,114,52,62,139,148,242,194,172,134,120,32,201,202,159,240,138,203,160,252,97,32,231,100,105,90,98,89,36,2,35,84,201,161,110,51,203,240,88,53,23,174,186,211,62,27,241,95,220,150,130,44,203,6,4,102,188,51,132,102,195,138,5,199,174,108,44,216,115,28,230,180,15,198,206,73,48,249,32,179,60,175,158,206,242,174,161,179,80,107,101,200,40,90,126,123,0,161,33,144,230,83,14,173,7,131,107,167,6,112,206,191,28,110,197,6,77, -168,56,177,109,117,14,14,201,178,89,171,109,186,162,158,64,172,220,168,251,151,165,254,150,187,166,176,142,206,47,69,108,150,77,125,138,172,250,0,183,119,98,184,233,162,136,93,162,6,211,193,253,227,72,42,234,241,52,24,245,69,87,85,165,21,130,253,128,43,191,22,156,138,121,245,136,159,214,41,128,205,150,172,82,168,206,134,132,13,50,225,92,173,67,182,13,87,250,19,198,189,154,90,17,54,215,185,89,226,228,97,56,178,18,157,88,21,82,173,188,98,187,41,82,44,30,222,80,43,129,43,81,67,114,129,104,16,226,195,144,237,180,248,220,177,194,18,208,119,214,95,160,91,157,250,59,139,235,112,181,18,19,33,46,205,204,167,13,58,16,52,156,90,192,189,100,102,48,167,123,162,183,102,34,83,213,148,74,44,224,97,210,24,96,118,18,103,232,196,185,134,55,103,192,166,84,74,188,80,142,61,78,253,184,167,147,238,99,17,113,149,77,150,147,25,113,75,167,197,164,31,73,183,138,98,144,219,235,98,25,93,164,201,93,38,233,58,15,247,98,10,47,205,140,198,83, -193,94,114,137,112,132,132,76,26,136,250,152,94,13,131,118,101,245,146,243,92,142,8,123,248,161,76,108,43,157,45,13,240,235,66,167,35,208,115,152,110,166,42,57,136,183,169,12,202,40,86,41,96,85,48,192,166,51,55,229,29,128,214,119,168,217,176,110,241,117,130,36,189,145,49,3,195,251,224,179,75,152,152,50,196,143,101,242,201,86,208,144,139,218,182,83,243,237,209,165,181,74,27,46,98,53,205,181,65,236,86,157,168,117,8,36,89,20,140,95,145,41,116,156,226,137,134,230,198,251,28,119,50,56,209,45,123,112,142,143,87,134,228,176,207,190,113,33,121,46,211,14,24,188,19,118,163,205,83,173,7,193,225,18,70,25,129,90,52,124,21,68,219,100,161,120,49,237,6,249,99,220,192,213,241,247,238,94,84,7,52,91,40,120,196,162,9,207,19,228,51,26,62,0,126,7,196,123,191,23,212,91,14,133,252,16,138,14,203,17,155,13,219,73,213,41,51,154,180,215,225,52,122,220,158,132,207,243,246,145,154,206,99,204,25,204,55,245,109,17,34,116,149,117,62,62, -148,238,212,253,50,31,172,171,240,210,71,201,78,213,92,184,44,117,146,55,55,189,7,83,66,168,40,213,33,106,29,118,217,59,141,75,144,207,234,254,236,74,144,172,149,71,195,113,196,199,229,205,93,87,209,26,248,208,26,60,82,247,175,148,233,97,221,78,151,32,38,11,209,85,144,188,41,93,71,151,247,124,233,101,47,42,64,144,172,128,9,167,128,13,59,69,153,132,136,242,81,231,166,196,19,94,101,12,91,92,201,141,15,217,113,58,216,26,75,121,218,148,198,162,213,20,238,148,37,154,168,125,76,102,231,253,54,167,122,236,67,41,187,33,205,147,46,165,108,95,147,148,27,59,145,134,109,68,182,231,200,198,100,180,164,227,249,247,183,204,50,186,115,153,184,190,233,69,47,184,136,168,234,218,138,93,87,75,194,86,175,114,91,66,176,121,12,50,173,37,105,140,32,167,57,59,77,47,161,69,2,160,247,254,114,236,252,229,181,222,58,236,205,93,188,222,158,205,212,79,132,219,216,237,131,226,34,233,236,222,34,253,157,199,115,17,2,33,162,60,13,153,154,98,155,122, -127,78,229,123,0,228,110,86,207,212,56,13,66,123,212,162,107,72,20,189,203,204,158,30,95,184,53,168,17,130,58,154,13,207,208,242,33,27,174,174,37,141,196,163,18,194,104,9,63,161,2,173,98,210,106,81,143,249,196,200,106,170,211,202,105,145,119,26,224,222,135,153,23,103,189,125,167,1,254,226,118,160,150,164,138,103,148,130,169,205,240,139,96,152,118,225,193,38,75,235,163,215,60,71,34,147,28,223,95,90,26,90,232,37,57,124,24,8,114,225,33,36,212,141,150,7,130,74,2,229,1,101,15,146,212,74,91,253,136,206,230,117,81,16,61,117,78,152,166,8,35,227,154,142,40,210,15,42,161,22,252,2,165,190,144,36,0,45,248,196,94,132,18,139,244,146,32,30,100,23,85,202,7,124,199,172,177,98,145,46,250,205,10,114,50,205,110,126,191,10,252,221,135,94,199,223,246,79,237,186,181,254,243,219,175,190,248,245,111,107,210,187,86,228,175,28,156,111,95,189,248,236,67,89,250,253,98,242,242,227,79,62,250,235,255,3,184,253,229,191,220,251,15,239,186,212, -94,190,249,208,98,249,87,239,219,83,29,18,23,231,119,26,36,63,180,104,253,84,18,223,119,38,191,235,120,115,210,255,65,31,229,207,254,91,25,127,251,219,182,179,247,28,246,1,57,175,63,253,234,245,174,59,238,157,9,175,127,248,241,209,219,189,143,255,108,215,72,251,197,171,253,15,109,106,239,122,209,246,254,240,93,123,37,32,248,245,167,187,30,208,47,222,254,209,63,34,232,63,126,168,177,59,90,64,196,251,78,231,93,127,233,251,70,242,119,141,210,239,187,226,118,125,129,159,238,138,252,254,174,249,244,237,143,253,220,187,102,185,247,205,199,187,195,193,143,52,239,74,55,192,230,199,62,223,223,247,254,123,253,126,175,121,237,247,29,252,190,188,255,179,245,1,142,27,255,136,14,187,83,194,155,23,63,54,16,254,83,194,254,247,253,87,14,14,32,233,167,222,195,111,94,0,166,125,249,65,242,139,159,0,248,126,239,23,123,255,21,248,121,215,192,188,247,135,191,126,241,234,11,192,116,192,243,239,140,249,199,92,251,183,187,222,250,29,34,255,44,238,127,1,112,255, -139,247,220,255,240,207,126,241,79,115,253,59,64,240,63,83,97,64,185,255,186,251,245,65,229,159,127,242,223,81,246,239,94,1,236,222,235,250,15,125,254,15,142,107,63,33,255,242,199,255,46,224,195,210,189,93,139,246,139,55,31,196,125,247,171,159,20,250,208,239,239,164,255,213,143,141,138,255,77,195,226,159,254,233,159,255,193,39,127,254,9,4,154,2,21,118,45,190,151,239,143,104,72,224,136,134,125,32,37,105,76,107,51,127,225,194,114,206,98,92,54,138,50,160,222,34,85,43,173,152,68,58,148,68,164,163,238,109,8,205,37,1,111,146,28,34,249,112,177,233,158,214,2,36,95,61,113,189,208,89,157,119,119,56,56,233,130,220,44,246,159,15,120,205,42,6,153,22,67,184,154,173,178,88,204,102,139,148,137,157,211,138,130,77,91,116,94,187,94,78,26,147,249,100,56,225,221,26,87,42,229,124,56,49,151,182,155,205,178,100,60,109,79,142,225,212,21,129,184,181,203,211,143,132,202,115,232,28,154,82,207,5,42,5,247,174,24,224,137,226,174,42,227,170,79,39, -94,61,203,139,244,27,94,12,172,36,231,161,164,169,136,92,34,63,198,170,233,139,85,100,78,67,92,163,28,231,109,243,160,25,146,247,49,1,61,225,246,89,18,144,146,193,103,167,170,91,206,115,129,207,186,54,38,93,55,40,12,214,129,159,202,103,190,49,127,237,11,106,99,204,103,67,113,185,116,214,169,197,112,124,106,136,149,167,220,169,229,222,111,4,69,44,18,108,102,131,43,63,66,10,66,231,221,9,217,245,196,241,194,78,21,2,27,164,139,191,178,224,229,102,208,141,23,52,35,171,186,122,138,215,123,185,117,92,227,37,133,219,204,29,104,77,160,77,198,220,129,233,224,182,66,56,136,151,93,32,164,251,26,96,98,191,107,197,236,216,25,36,116,131,184,101,186,206,171,147,3,244,185,13,100,95,80,110,29,7,86,55,24,208,4,68,231,173,14,137,73,63,166,85,79,173,60,36,218,105,149,48,41,6,181,214,132,185,104,5,97,15,176,233,14,145,142,176,250,26,81,30,253,32,40,5,53,171,86,255,225,19,130,202,235,129,117,7,65,65,41,118,65,242,142,12, -125,33,126,181,168,204,72,181,33,58,234,85,99,46,19,133,91,49,99,16,22,183,227,201,242,221,189,166,212,208,232,248,107,186,204,33,230,95,234,163,105,199,253,17,205,126,192,138,182,219,102,14,76,224,83,203,117,252,147,53,114,154,182,174,136,1,222,48,86,170,220,13,12,208,252,9,138,121,135,199,110,172,23,44,59,231,184,179,80,197,239,240,12,19,170,87,116,2,111,238,76,162,245,226,20,244,76,183,123,23,32,155,90,46,239,128,42,179,203,72,43,118,170,63,25,91,25,45,149,13,65,101,35,203,231,91,121,205,140,48,67,79,49,178,8,191,226,172,248,12,72,191,253,206,195,65,34,165,75,14,92,53,166,70,148,170,137,16,234,226,28,211,216,39,71,18,237,131,195,47,86,15,220,250,12,179,92,228,240,232,185,116,192,161,12,203,29,139,154,215,130,63,186,57,110,174,195,13,215,180,197,95,117,61,86,72,88,143,74,64,208,21,219,19,57,53,14,204,150,28,197,229,130,35,57,45,222,216,146,161,28,231,106,2,210,70,6,201,168,105,16,245,196,151,201,2, -243,66,98,179,122,82,82,69,63,223,46,122,20,126,253,248,180,114,69,14,64,2,247,67,60,247,114,24,68,156,50,68,252,49,83,124,186,85,72,212,158,9,121,40,199,216,252,92,238,218,23,48,96,48,172,179,103,206,9,56,21,237,64,15,198,164,217,217,50,184,193,52,107,204,54,241,38,9,63,184,202,89,25,10,74,135,131,108,167,142,174,244,137,86,112,49,177,184,55,79,80,173,116,61,59,79,13,150,178,233,96,107,8,204,253,23,67,215,98,224,25,170,113,77,77,126,200,42,116,182,74,255,6,150,129,167,11,141,174,120,82,239,166,115,34,42,157,131,57,229,15,249,91,245,217,86,218,53,54,20,143,252,88,249,120,121,193,114,21,214,138,64,231,136,47,86,55,232,168,51,7,239,56,119,164,213,153,224,73,115,9,171,126,52,92,40,18,17,172,51,253,212,176,77,145,129,250,57,14,51,50,6,202,195,118,196,176,70,178,202,221,245,80,100,66,178,152,157,82,250,97,53,167,106,107,174,197,114,168,150,178,57,181,118,111,194,159,106,50,211,84,134,118,184,204,34, -32,93,220,153,20,123,232,146,116,27,43,149,109,192,204,80,79,111,186,210,60,7,220,34,28,247,253,32,209,89,70,139,49,179,54,78,42,187,212,79,47,85,205,164,81,18,207,33,173,173,86,147,82,185,59,120,62,174,28,175,7,58,198,205,244,169,178,65,15,164,150,242,58,199,108,222,18,176,184,230,52,183,77,183,93,166,156,77,77,206,21,38,84,197,120,254,176,62,215,39,100,105,153,54,81,106,208,252,13,45,229,18,196,40,221,32,78,81,84,6,184,82,89,151,23,88,12,140,79,213,46,152,43,152,213,234,173,225,252,246,152,28,207,132,113,158,240,129,22,93,112,211,160,69,89,231,168,113,52,92,177,93,98,104,94,53,121,122,22,154,41,155,193,166,213,34,44,227,182,88,63,77,52,188,41,114,31,76,54,61,229,58,173,31,195,239,135,113,30,247,78,65,42,207,147,158,227,107,197,122,229,187,47,196,187,77,134,207,120,118,116,122,35,79,214,216,198,2,18,2,158,110,136,82,221,105,242,208,237,172,216,205,15,11,34,255,204,197,174,64,21,78,123,120,118,99, -44,64,159,40,237,64,8,131,186,55,219,111,210,129,14,194,208,236,178,49,49,179,190,220,126,216,244,2,199,173,53,234,178,191,70,63,139,243,215,54,203,144,147,93,197,250,82,230,90,109,158,133,174,160,86,107,175,128,128,128,35,132,222,149,185,22,239,48,103,9,86,230,233,80,123,52,63,240,56,136,120,13,222,215,162,173,9,39,60,88,189,12,82,92,71,238,202,157,4,40,113,124,137,173,119,159,135,85,225,209,216,28,78,78,51,44,193,121,51,170,71,72,60,122,215,224,170,140,110,37,7,235,209,176,122,75,187,106,165,174,28,57,248,49,183,102,66,152,31,29,49,62,246,18,65,209,9,166,193,83,111,98,202,203,247,91,156,107,199,100,244,176,48,22,98,14,168,94,81,123,228,94,50,61,60,133,220,70,59,185,174,69,67,6,21,120,110,70,228,202,44,161,198,225,165,242,78,150,218,33,150,235,212,201,110,58,195,78,243,228,14,26,98,213,53,1,53,217,15,176,182,65,61,84,48,198,129,144,182,136,90,63,126,177,192,35,197,66,233,8,127,141,207,20,145,162, -84,20,177,24,5,251,146,117,1,226,60,97,212,39,126,42,222,136,208,30,134,90,156,22,191,158,186,113,251,241,249,41,154,167,68,89,79,150,71,67,239,173,227,36,124,124,196,65,81,50,146,219,170,0,141,48,194,143,6,96,145,53,31,159,28,44,31,23,165,3,57,137,18,212,246,79,30,174,12,55,229,187,147,132,186,10,237,180,199,113,75,86,149,79,193,177,206,96,37,7,165,122,173,145,167,39,122,108,129,70,168,65,161,85,186,142,59,227,173,110,16,71,1,2,70,219,157,220,54,189,93,153,15,161,105,192,100,178,2,105,211,247,178,7,224,185,50,99,207,207,225,155,184,183,204,123,236,51,77,112,51,226,80,60,188,55,128,122,87,242,149,52,197,17,228,169,137,203,202,57,20,56,206,27,208,221,135,32,189,39,159,21,181,215,209,84,6,211,191,93,166,239,143,215,25,236,117,60,67,104,63,84,47,83,231,114,176,58,160,146,133,115,166,107,205,152,8,191,16,68,229,215,225,57,205,150,105,65,227,147,249,9,10,197,58,3,246,200,200,219,189,94,108,152,21,21, -69,23,9,41,233,81,104,59,91,213,141,69,49,17,205,127,116,3,170,115,83,28,232,113,137,228,171,158,89,73,242,229,81,19,179,46,201,5,71,28,92,35,134,161,79,56,171,254,113,172,239,14,159,174,143,47,48,216,92,207,128,49,130,134,110,65,187,240,36,236,173,103,61,122,213,200,173,172,78,101,133,39,86,136,14,199,112,2,74,14,148,207,178,69,122,236,147,27,5,217,100,59,7,33,104,72,108,33,38,188,139,197,28,106,80,144,196,79,142,151,216,130,108,114,45,93,8,77,135,253,222,133,197,120,139,135,193,208,196,25,46,194,242,241,6,172,237,24,213,5,13,47,167,76,184,95,38,144,50,100,72,42,8,229,144,165,17,167,41,134,232,65,127,36,67,78,111,120,4,82,190,118,156,54,210,76,71,161,130,49,215,148,5,131,106,42,174,134,169,137,155,93,247,89,81,183,184,30,142,202,231,208,107,3,126,14,27,234,241,224,233,234,4,124,138,186,246,90,249,241,212,145,70,174,216,88,241,93,70,143,77,70,66,169,237,56,182,28,229,112,155,155,231,145,16,86, -178,123,97,57,66,201,3,214,162,194,84,37,29,114,6,58,53,129,22,109,47,118,160,29,92,174,40,246,180,67,137,130,95,109,133,92,63,43,156,146,40,122,185,1,35,95,108,37,101,27,46,51,125,13,212,72,3,229,97,66,194,169,169,24,205,180,193,85,73,44,195,140,236,33,127,12,22,61,4,106,148,108,151,173,66,120,141,214,233,209,32,117,100,214,223,31,28,109,105,145,71,61,49,204,235,233,251,106,11,222,191,60,99,116,186,180,147,193,124,68,164,82,2,135,233,203,167,52,115,245,52,185,208,129,14,76,158,67,9,153,228,116,212,44,29,16,231,198,178,128,232,132,43,206,120,233,215,244,39,146,227,96,202,66,19,49,243,182,94,64,57,40,151,43,98,218,255,199,199,91,52,75,212,108,87,98,127,69,67,15,58,218,191,193,99,207,61,87,135,52,144,251,201,175,35,100,105,208,163,91,204,204,76,183,152,153,153,153,110,49,51,51,179,239,247,61,201,225,48,141,42,35,243,68,158,147,59,87,237,92,123,101,196,90,81,182,173,66,203,82,18,101,198,173,220,110, -57,38,34,141,49,14,84,156,186,38,22,124,14,250,152,112,234,223,199,25,11,10,5,46,67,86,209,80,194,210,40,242,47,3,155,115,116,186,165,42,104,151,219,38,111,0,76,236,103,228,90,193,173,97,28,173,152,124,56,191,238,97,64,247,204,181,167,78,166,83,9,88,114,173,69,220,97,248,67,223,119,248,85,178,119,132,155,41,152,146,129,60,5,70,104,223,234,19,164,160,149,68,203,52,99,192,82,204,174,58,146,165,54,179,253,145,216,145,74,137,239,166,253,56,111,211,170,145,152,246,172,80,203,64,143,151,201,250,128,208,113,43,4,213,156,55,194,71,129,219,174,162,179,111,228,183,139,198,154,226,223,160,243,23,143,176,101,226,84,201,58,168,253,30,69,196,241,199,166,208,50,149,251,34,84,247,52,130,126,153,216,223,36,93,22,68,219,82,249,248,248,245,51,250,70,80,171,228,80,87,19,242,82,184,160,144,187,45,130,201,237,130,115,16,78,93,227,4,76,142,39,185,129,98,109,74,19,171,101,184,33,204,137,141,180,165,176,150,71,250,18,53,89,85,132,45, -106,6,171,57,174,157,49,69,78,73,76,18,160,160,208,220,194,51,199,42,223,85,6,249,134,224,165,138,55,180,0,60,198,163,83,31,232,23,227,186,65,233,241,86,214,87,213,247,115,55,99,50,248,23,145,229,222,140,85,164,173,253,178,58,68,128,218,188,219,127,52,138,69,250,175,212,29,220,124,124,63,69,115,65,72,180,34,229,99,188,67,228,66,253,164,174,242,171,255,16,209,220,36,152,67,58,114,204,21,107,247,74,141,109,36,234,211,117,67,169,110,99,16,212,244,164,38,222,147,29,34,85,154,152,69,53,73,159,31,254,33,63,252,130,50,170,91,72,28,206,132,246,219,213,138,79,21,18,24,116,239,47,235,151,8,62,102,5,64,98,113,15,45,60,146,164,238,47,193,241,44,212,231,60,208,64,238,5,23,15,181,77,135,77,127,142,236,194,242,73,148,134,89,212,40,117,8,209,106,22,111,234,201,203,154,76,186,145,188,217,109,122,213,114,247,142,243,249,78,90,193,122,72,156,235,190,238,221,167,136,13,118,70,123,77,95,14,167,126,71,170,231,105,57,49,159, -85,55,226,173,248,111,211,128,212,68,247,169,120,107,11,220,187,85,151,51,40,229,53,147,70,241,64,50,146,175,20,48,223,191,167,211,162,99,47,60,198,144,33,77,57,126,218,14,210,80,207,126,121,177,61,175,121,46,210,130,141,177,17,7,155,176,255,22,141,222,211,59,39,58,198,94,185,203,204,138,151,229,190,159,42,245,172,138,14,101,97,210,5,54,211,195,106,63,156,233,83,32,62,167,241,30,61,40,29,242,185,206,105,213,58,200,143,232,80,157,129,32,226,86,0,26,124,28,21,136,99,88,111,60,69,232,166,148,11,112,240,172,44,100,228,50,112,150,219,164,238,109,159,189,16,122,149,187,48,111,40,71,76,99,91,123,112,210,49,99,174,251,110,20,72,7,225,204,122,115,58,81,27,94,34,255,193,84,144,94,254,162,11,130,185,12,54,91,81,138,196,105,78,226,40,71,33,218,51,145,147,41,96,208,121,42,161,227,65,86,135,143,248,42,145,106,150,124,122,72,232,182,160,204,17,34,55,127,66,197,167,220,116,181,77,242,3,191,81,151,124,93,238,202,183,141, -84,20,118,27,39,67,207,12,124,182,135,176,76,14,224,215,214,116,76,85,219,74,133,80,55,133,194,102,63,5,59,226,154,56,134,95,233,250,159,236,70,6,118,167,56,32,57,156,65,213,50,230,89,110,184,6,48,251,165,198,161,190,37,59,232,130,98,62,242,147,244,7,25,134,48,166,84,252,181,43,67,182,191,252,84,41,188,252,35,181,157,21,33,132,180,60,84,153,223,10,194,132,139,146,102,55,188,71,43,231,108,86,107,3,236,180,152,131,51,82,101,164,147,116,135,199,111,173,173,49,23,36,192,1,86,254,12,58,151,1,28,211,164,107,243,74,251,48,98,62,31,138,205,122,165,153,37,8,247,25,181,204,189,254,222,78,198,37,155,224,234,58,70,143,201,228,254,173,0,35,0,81,176,212,175,44,17,195,209,235,236,37,119,58,13,133,222,7,150,150,100,168,69,207,135,191,137,18,203,176,249,19,9,159,75,200,201,43,208,175,25,230,35,185,109,26,32,6,64,193,121,59,180,48,234,150,48,133,70,172,213,35,0,19,90,203,197,44,30,16,106,40,99,191,20,103, -140,241,107,204,103,191,4,168,136,15,15,119,212,148,9,70,76,239,37,130,81,244,24,136,192,164,139,31,27,125,1,10,37,131,29,253,238,86,15,186,13,104,4,133,30,63,25,237,45,248,11,101,213,173,131,131,102,60,205,109,166,251,232,32,65,16,195,49,126,161,35,66,152,24,141,62,150,212,118,76,168,68,22,52,124,31,43,9,104,149,229,232,176,48,38,228,193,196,104,166,109,32,138,198,146,87,144,23,67,182,84,209,197,158,13,1,59,66,79,65,51,249,19,106,16,16,229,123,208,45,79,82,71,18,166,5,65,35,62,54,125,1,31,155,208,168,249,116,129,232,212,201,200,33,4,44,25,186,234,27,16,99,152,99,62,205,55,55,87,252,16,24,100,106,228,120,51,127,40,225,240,124,95,183,196,220,206,213,253,249,134,152,116,223,139,161,175,109,15,249,2,70,88,134,7,56,50,3,23,226,96,154,11,37,125,31,173,52,242,219,65,212,30,215,61,112,230,206,128,39,167,23,229,55,85,139,212,65,21,78,34,98,184,142,163,217,191,171,118,16,145,253,28,20,202,116, -204,175,42,213,136,111,194,20,136,111,40,211,74,161,211,81,97,167,222,192,148,221,13,109,178,89,231,114,234,243,113,6,0,61,44,81,195,21,8,252,140,12,214,203,62,167,154,243,213,26,128,209,248,121,181,74,23,82,218,209,55,245,76,75,161,242,95,73,112,69,14,90,6,145,156,135,35,167,85,2,8,120,238,198,79,87,208,89,206,66,102,205,46,226,232,110,18,226,62,5,246,25,129,223,141,206,225,143,223,196,103,232,58,187,201,88,116,202,3,16,32,209,155,72,40,244,233,213,228,246,12,56,19,254,202,208,33,251,109,136,8,101,230,57,104,68,46,222,217,195,20,0,184,168,31,213,251,6,112,134,236,170,95,130,209,156,95,214,60,74,85,108,215,239,107,181,223,148,28,231,27,136,185,207,100,29,155,213,143,145,128,198,96,236,2,244,207,12,169,85,17,58,83,232,220,33,67,141,249,80,195,244,183,249,103,75,96,248,91,11,246,71,231,111,235,245,231,176,44,90,246,205,42,138,190,54,15,62,85,238,249,85,138,52,209,174,21,134,220,172,42,14,201,16,191,97, -129,189,61,59,90,12,5,36,91,1,28,208,71,175,65,190,127,193,139,95,34,158,86,33,51,231,67,217,141,254,53,131,8,173,171,57,220,29,26,12,64,242,26,151,148,98,115,104,159,230,149,57,164,37,21,138,176,118,130,41,119,11,162,210,189,83,24,147,42,99,0,44,149,88,132,37,232,114,230,221,0,85,59,149,214,188,110,23,151,9,139,11,93,168,226,181,212,43,61,225,4,198,84,115,14,33,226,38,78,144,12,29,246,124,126,175,123,92,192,148,87,225,229,20,80,122,180,218,223,239,240,138,212,220,31,208,135,140,187,48,122,172,9,132,113,195,155,116,23,166,25,85,195,4,100,78,79,2,19,242,30,248,26,88,170,139,139,109,19,176,169,188,25,163,203,138,96,200,110,111,77,102,111,43,30,146,134,43,159,110,63,208,76,14,141,30,227,123,32,59,196,192,152,102,167,250,207,109,38,126,169,193,172,219,201,12,18,103,164,224,102,108,213,197,83,29,225,253,108,88,186,216,147,155,164,227,103,204,191,109,236,44,89,48,231,21,91,130,180,92,209,78,208,181,115,216, -68,129,66,28,59,131,15,211,126,254,96,122,171,114,139,94,167,2,214,224,145,18,157,128,75,95,125,31,168,98,194,128,23,131,101,141,114,152,64,60,53,132,116,18,0,6,36,242,42,166,54,50,164,138,47,51,31,31,110,165,90,41,243,3,230,248,97,57,21,9,122,204,252,187,237,133,191,5,132,231,145,1,144,159,142,221,211,231,111,43,147,62,66,135,0,81,188,22,122,201,218,153,184,30,60,196,20,10,141,172,201,83,40,18,143,249,201,106,155,43,239,158,22,253,93,238,85,15,11,171,238,64,80,233,232,226,200,118,89,194,0,218,75,251,242,32,202,231,5,244,141,169,73,23,136,162,254,180,67,123,212,244,208,104,199,63,167,2,26,157,89,21,230,25,99,110,151,106,87,7,229,144,187,98,6,48,173,18,38,128,73,73,8,95,159,145,201,196,26,66,233,49,244,10,112,69,68,41,198,106,112,216,197,100,152,227,52,15,58,143,28,1,175,241,39,201,29,116,167,34,153,51,18,98,179,83,177,109,238,11,54,220,95,32,129,251,141,212,246,132,202,52,23,157,76,159, -231,193,26,212,230,124,33,194,127,168,214,47,139,73,0,117,40,38,226,111,62,1,170,217,182,188,1,31,99,247,9,64,219,225,151,134,57,159,202,66,148,15,192,45,185,142,254,223,61,201,254,231,191,254,229,175,255,127,142,100,127,83,213,254,230,176,247,127,117,36,251,119,83,184,63,36,206,255,250,215,191,252,253,127,254,187,255,233,191,255,211,63,255,235,159,54,153,255,49,244,207,127,140,252,227,223,253,235,63,4,5,255,22,20,252,159,238,113,127,74,160,255,233,239,254,237,191,255,246,255,229,31,255,183,63,238,88,255,250,15,127,247,47,127,234,147,255,250,219,252,111,127,200,202,191,99,255,238,54,249,79,255,174,153,254,15,255,250,231,197,238,31,79,253,249,198,63,68,242,176,224,31,255,225,159,254,152,251,79,43,180,255,18,84,255,229,63,92,253,254,211,223,164,230,127,251,235,239,148,255,235,191,252,33,129,255,41,117,255,78,25,148,255,187,205,230,127,254,187,255,229,175,127,249,47,127,255,135,149,229,127,88,174,253,203,63,254,161,233,254,78,248,15,127,10,136, -255,252,215,63,36,198,127,249,251,127,254,125,239,223,255,239,127,91,236,127,251,235,191,252,235,31,30,114,255,245,15,73,247,143,107,232,191,254,241,245,255,247,104,252,45,162,255,227,255,83,90,252,255,242,66,139,178,151,108,216,149,29,14,190,116,144,167,47,240,6,126,131,169,177,24,219,97,174,210,155,187,168,59,222,160,170,218,170,246,99,211,112,243,238,27,119,109,109,117,95,218,98,229,69,51,113,27,134,129,29,9,0,245,93,207,199,8,220,122,70,19,244,24,107,246,1,106,26,157,86,171,211,154,63,60,46,227,203,121,243,112,110,222,166,88,140,234,243,72,42,26,190,209,139,205,164,132,119,150,106,198,161,229,215,248,124,32,226,182,70,247,119,186,255,6,100,180,14,134,186,219,112,169,79,66,202,122,71,164,216,245,172,254,9,206,53,249,45,99,92,214,75,108,128,123,196,242,1,235,213,82,178,72,63,98,231,231,28,174,46,179,132,21,113,192,128,209,123,97,87,109,40,202,240,46,237,49,105,147,216,172,117,49,224,39,34,55,42,179,206,247,35,8,156,92,62, -56,242,1,57,142,93,54,145,143,85,227,152,59,243,241,78,90,128,165,25,213,181,148,180,38,191,132,136,189,252,228,168,233,108,243,61,128,21,214,123,77,225,130,48,49,12,6,105,47,1,182,201,231,141,192,199,0,129,5,198,51,188,35,120,255,56,120,212,55,40,215,230,228,195,230,251,6,101,26,55,115,126,107,241,7,31,120,82,9,134,225,26,52,92,240,0,248,145,8,16,105,39,142,49,234,96,25,105,171,187,22,137,41,226,0,96,252,182,193,240,68,216,215,38,1,188,126,197,127,174,40,215,234,162,254,66,67,34,20,134,220,139,70,78,13,198,108,92,53,35,95,243,235,103,106,8,252,138,162,107,82,34,88,196,253,232,220,103,112,171,2,156,210,12,153,142,167,119,5,113,190,134,173,43,39,86,36,171,98,68,222,254,10,209,234,200,177,125,226,198,208,185,198,175,78,148,211,137,91,241,96,198,119,196,246,237,26,223,78,3,73,174,227,238,189,79,8,210,57,137,155,117,72,121,231,91,37,42,125,28,71,131,94,119,19,133,63,70,86,108,218,33,123,145,114,5, -99,178,73,137,193,100,64,154,162,97,212,74,134,34,133,249,209,249,44,63,145,135,114,5,3,199,189,189,132,29,65,0,162,136,161,122,164,9,216,57,3,148,111,168,206,254,29,78,188,42,254,169,144,14,66,5,2,51,185,238,65,192,243,204,140,57,155,34,170,191,66,32,129,75,12,159,24,238,192,128,124,69,60,71,67,84,107,82,53,167,242,48,61,44,123,139,68,62,217,207,250,152,82,234,67,226,17,54,217,171,172,242,195,205,43,200,47,68,219,82,91,16,42,233,213,225,203,211,179,220,150,237,158,216,111,20,155,180,207,241,251,224,91,58,6,124,83,239,252,143,39,227,197,157,183,128,239,158,54,228,250,170,110,29,58,245,16,10,52,1,3,91,148,139,124,249,25,140,198,242,221,73,32,115,86,117,190,52,65,235,203,16,12,49,13,117,150,193,42,140,161,180,220,75,52,59,162,54,222,69,217,122,7,76,61,228,244,149,249,162,61,236,223,227,214,153,38,52,3,121,168,114,245,169,169,159,24,211,209,69,42,164,208,32,149,158,212,18,147,137,228,195,248,74,189,46, -146,81,45,222,224,61,201,84,102,107,83,143,46,105,93,11,234,143,6,238,253,62,196,197,231,78,241,202,93,163,188,222,37,62,223,32,21,239,131,194,231,168,223,85,113,29,170,230,144,97,234,33,155,8,165,147,1,174,23,254,189,111,136,67,190,185,239,253,66,234,246,34,63,0,152,126,150,31,117,127,94,251,35,129,173,128,97,123,212,115,43,115,227,165,15,45,175,174,188,14,196,146,155,195,134,197,125,68,175,201,38,11,234,222,48,206,73,143,70,155,51,166,180,216,9,125,93,251,76,79,148,79,144,84,41,221,226,15,251,194,126,179,84,200,222,197,178,95,135,177,76,221,36,82,159,118,85,154,206,151,186,24,161,253,210,130,74,9,244,160,62,206,103,245,214,101,73,158,234,14,246,101,81,228,132,82,215,29,222,88,190,43,124,88,89,82,185,97,116,56,23,201,225,102,51,158,19,21,73,50,48,9,75,117,134,100,8,249,108,229,159,109,65,97,198,166,189,113,15,208,188,150,12,183,36,77,148,142,14,201,179,143,126,9,234,56,203,18,166,190,31,150,50,114,251,121, -224,250,23,230,4,171,172,20,184,151,219,75,204,7,126,87,1,8,200,102,73,174,68,63,188,23,248,70,160,95,15,245,248,224,176,97,88,124,236,9,113,202,91,111,253,221,39,14,225,32,123,185,58,40,150,142,131,185,46,226,24,125,142,98,134,148,94,214,250,222,182,102,62,174,167,207,126,195,113,221,69,206,67,234,156,29,223,203,162,209,239,152,79,216,165,44,61,201,245,233,169,19,175,193,249,24,9,118,151,109,176,93,186,173,158,45,227,96,147,136,173,180,42,197,235,148,143,228,173,161,115,92,16,184,3,106,230,69,210,118,138,117,196,171,187,98,120,211,211,52,181,78,93,242,158,207,184,219,150,105,237,184,247,82,39,183,108,225,112,18,42,230,224,253,39,176,184,83,193,103,245,209,147,61,35,146,102,125,153,70,235,252,172,153,226,215,15,210,118,77,142,189,1,65,159,38,106,121,181,232,135,91,104,155,25,209,120,148,57,175,153,132,45,19,144,55,149,189,49,184,7,203,103,121,202,45,78,185,21,244,148,95,238,126,156,139,137,243,187,241,20,220,121,23,147,18, -43,231,93,198,119,75,45,223,154,120,61,120,61,245,185,237,151,81,226,208,65,250,134,112,119,110,237,45,174,189,125,92,29,214,123,154,63,194,112,47,201,196,205,252,44,91,201,167,43,91,52,114,49,178,207,118,67,222,169,62,141,132,58,31,145,183,35,45,101,52,98,122,91,140,122,62,236,77,167,97,33,151,75,28,88,226,97,173,254,69,139,184,205,200,183,144,103,32,123,48,182,238,39,169,227,152,177,172,94,202,170,227,226,26,101,109,78,148,113,144,206,98,45,184,217,59,6,39,64,91,143,205,236,236,150,215,110,235,236,200,66,163,150,222,253,217,252,157,47,79,190,100,16,201,174,82,180,62,121,20,253,107,177,45,117,238,183,241,107,70,223,137,235,105,3,63,64,147,232,109,125,2,90,168,93,132,18,205,10,249,36,135,156,54,241,219,57,125,118,158,189,250,213,232,114,116,180,65,76,107,241,201,84,86,159,124,165,165,203,230,197,183,52,101,81,171,142,95,143,42,231,179,239,154,64,36,177,232,65,96,153,0,253,169,199,43,13,38,100,92,55,198,209,49,59,58, -206,11,174,185,56,183,144,111,193,233,25,54,142,82,72,168,118,195,124,22,239,10,2,32,4,8,132,124,202,158,29,8,2,164,5,198,53,208,16,214,23,156,70,170,76,178,90,138,85,165,212,100,245,199,213,171,226,110,223,32,93,91,48,152,22,37,111,179,146,69,232,213,213,131,154,69,202,167,108,26,73,28,36,205,248,64,138,94,179,29,79,94,58,249,169,173,215,48,221,183,166,167,76,249,209,12,45,43,122,32,105,5,62,92,55,156,65,249,65,72,196,179,48,232,36,58,245,92,188,210,226,75,131,181,109,102,39,183,38,111,62,167,212,7,179,248,76,203,140,22,60,206,57,71,246,151,196,242,16,60,128,177,231,60,130,183,168,242,94,141,42,87,113,240,78,43,82,17,29,102,180,89,161,83,132,222,163,35,209,125,240,132,31,158,234,98,166,134,219,125,59,81,135,63,166,206,46,71,230,190,151,108,65,154,10,117,73,45,195,182,125,13,2,226,150,103,152,129,231,135,203,107,189,102,134,14,4,14,83,31,252,212,201,19,253,136,183,78,15,182,233,177,28,255,100,234, -178,51,43,185,63,179,180,196,44,225,232,241,206,10,220,166,198,82,211,20,214,87,38,66,11,129,163,24,57,121,164,239,7,108,219,91,39,42,163,54,153,55,170,101,181,166,45,217,140,134,252,83,1,145,248,217,194,101,217,178,92,42,149,157,118,94,55,16,171,222,165,81,37,170,204,151,12,123,233,55,181,246,204,224,213,207,37,184,88,179,51,52,147,177,125,199,37,145,241,208,47,125,138,26,120,94,222,221,42,235,225,105,103,27,142,201,165,147,155,115,37,237,215,90,107,94,87,126,174,78,241,151,65,171,56,63,211,3,205,78,107,196,162,12,4,60,89,8,22,20,186,110,94,116,77,107,223,250,67,200,123,255,60,155,74,241,82,158,74,243,232,134,2,222,254,1,109,228,6,53,233,81,223,30,244,133,29,43,223,119,34,6,251,223,228,104,154,203,26,173,81,135,48,61,27,220,140,43,149,66,188,197,36,65,86,71,165,179,114,86,96,187,235,34,183,36,254,248,121,245,248,199,229,134,124,242,29,17,151,35,249,65,2,180,90,196,160,252,113,107,189,143,245,226,209,117, -110,130,129,12,75,133,255,177,60,249,173,117,221,101,54,238,44,12,168,180,35,207,7,91,30,225,8,138,116,4,209,211,209,100,195,154,240,120,203,237,27,25,108,220,16,150,73,164,198,149,177,70,247,53,40,120,152,108,22,156,71,84,122,161,98,212,220,222,124,210,113,21,221,15,69,162,86,177,146,179,239,244,108,169,148,36,90,90,217,249,149,62,120,110,191,235,133,27,8,153,4,146,112,143,217,76,34,106,6,178,124,68,47,0,158,169,251,29,54,243,113,106,205,231,55,207,151,72,144,0,99,7,33,128,86,16,248,163,71,166,107,99,77,173,239,121,28,211,225,200,163,2,195,138,217,55,63,204,154,228,216,147,150,250,141,26,159,65,232,34,168,112,185,241,174,5,25,20,199,23,47,211,145,159,14,197,42,238,251,153,124,180,46,31,138,129,145,32,155,220,154,235,60,215,115,103,173,170,235,152,66,227,251,9,118,157,221,102,8,19,175,11,40,107,47,196,102,158,90,106,51,121,204,252,178,140,60,50,123,235,88,108,23,253,10,162,254,93,102,180,193,225,253,12,222,235, -224,224,16,92,99,50,110,229,97,157,254,136,221,159,242,242,37,133,214,179,74,133,251,83,172,173,95,113,249,68,28,134,113,105,20,48,237,90,11,235,186,99,125,254,156,109,250,172,233,131,77,194,190,66,224,72,122,232,109,194,66,130,105,237,171,187,11,213,108,173,119,122,189,33,119,81,142,244,24,49,105,3,250,8,188,54,174,13,178,214,190,55,122,44,34,26,213,201,65,0,135,204,198,188,13,251,240,234,188,245,97,37,20,76,203,249,28,153,54,60,226,212,79,211,63,222,103,116,224,167,124,65,144,160,222,55,248,244,180,118,94,23,158,19,130,131,140,237,233,172,172,69,245,8,138,31,86,81,141,11,227,237,226,46,236,78,103,239,47,57,202,48,235,138,250,168,245,173,215,65,136,0,253,64,125,25,52,137,214,218,244,197,110,253,38,215,110,56,244,61,4,3,174,14,155,233,105,140,45,78,95,105,245,132,75,161,180,105,228,71,199,144,155,191,218,250,73,24,38,254,93,32,4,85,87,191,93,3,155,204,121,57,240,89,96,212,81,164,129,179,34,31,57,239,214,154, -85,127,16,46,205,166,117,182,118,220,27,201,193,204,137,99,43,145,90,155,67,158,157,86,110,212,98,51,99,180,72,237,87,99,217,169,63,198,180,142,181,111,225,25,94,212,216,187,123,246,107,165,111,173,85,112,184,150,110,51,156,58,1,244,85,81,19,128,87,70,211,93,213,153,154,213,225,161,121,91,158,225,107,110,181,95,42,233,123,20,227,65,69,42,157,54,80,188,224,244,107,152,241,230,98,163,62,95,206,94,55,250,93,29,151,94,27,127,24,181,91,49,94,66,116,200,58,224,235,92,31,55,51,63,17,163,151,237,239,247,49,205,88,139,119,150,77,231,221,20,174,95,34,235,102,125,185,128,186,126,111,224,148,249,12,223,61,83,5,66,199,165,30,234,28,215,123,193,174,237,214,163,57,131,41,58,46,204,113,116,211,249,121,116,10,43,213,203,63,106,118,40,15,2,175,66,12,77,223,249,172,231,84,99,72,195,53,243,4,202,220,41,6,165,159,116,158,151,9,157,56,137,173,30,146,0,188,246,102,207,235,224,214,166,143,45,175,165,118,171,219,162,195,5,175,218, -122,84,238,214,58,139,250,10,56,55,55,122,231,209,232,239,27,55,232,164,67,105,93,56,240,161,170,218,20,99,79,94,142,220,157,97,246,81,10,191,198,17,96,248,107,6,231,104,173,188,177,250,194,175,240,37,127,53,38,157,235,78,11,213,153,230,28,87,231,56,223,88,120,251,239,19,12,245,29,244,7,183,171,62,10,204,1,143,66,183,35,14,220,111,8,48,208,218,246,242,30,180,40,181,67,136,72,244,219,129,188,144,109,183,227,117,27,58,217,107,11,245,31,111,208,242,134,213,43,151,136,48,36,167,155,225,189,137,54,154,112,109,185,132,55,148,235,187,123,223,90,0,183,47,149,237,152,5,172,80,162,148,230,61,173,159,119,34,35,138,199,204,181,233,189,227,251,5,202,254,130,133,243,9,94,56,79,29,231,160,85,187,87,159,95,188,107,21,188,229,167,189,122,30,20,147,22,143,228,204,29,42,55,233,249,195,218,37,200,7,77,207,7,196,173,180,10,46,244,40,135,193,181,200,61,130,149,0,244,59,153,215,248,113,74,31,167,44,123,255,188,98,31,204,184,54, -251,209,214,47,30,193,99,100,233,215,37,61,149,177,90,235,90,95,207,35,20,228,69,61,122,115,252,180,197,119,24,112,89,225,239,118,244,212,150,166,185,107,216,201,104,73,244,59,147,76,106,140,147,229,212,234,183,223,186,119,182,146,143,246,180,253,212,174,195,165,160,99,212,209,182,174,149,251,125,167,69,161,24,246,178,202,104,239,69,182,125,62,26,162,13,189,99,94,224,187,177,90,183,128,94,214,113,31,165,177,175,235,192,135,152,42,236,86,145,39,17,230,92,79,252,14,78,113,227,124,147,24,19,240,9,208,135,217,30,97,41,148,234,164,156,46,19,119,231,216,122,243,224,207,114,235,253,40,160,54,46,70,231,233,91,22,113,254,180,135,51,187,239,192,218,56,228,130,209,184,6,243,109,47,13,66,125,202,29,231,149,153,9,87,76,103,173,71,118,218,105,153,84,218,71,248,238,105,231,84,218,91,248,92,107,145,82,78,54,37,163,140,218,80,246,84,162,47,87,70,150,151,70,14,254,37,12,183,75,3,95,181,86,189,243,13,32,219,81,109,60,78,57,247,53,104, -62,34,90,199,217,61,56,190,78,111,216,206,169,173,29,221,199,241,31,154,142,49,171,209,86,63,110,72,95,148,41,73,19,244,53,170,246,205,125,80,184,48,115,123,255,40,113,157,98,99,89,141,218,204,23,220,210,165,127,39,183,189,202,79,221,90,11,107,79,113,119,89,226,220,152,49,3,30,45,68,51,136,139,227,132,179,88,5,90,23,225,1,160,220,245,235,18,122,230,65,126,215,14,95,93,255,167,120,207,162,222,1,32,76,75,38,70,33,12,130,191,200,187,182,203,234,247,29,121,186,174,115,189,50,123,107,39,70,161,226,14,252,34,123,147,27,21,175,243,62,178,155,15,234,166,152,39,99,69,56,13,234,137,198,250,242,6,57,60,134,193,164,65,171,133,165,202,230,35,185,213,26,80,222,202,189,217,215,224,198,172,201,163,123,44,193,242,107,233,197,17,101,59,38,135,251,186,1,161,180,179,14,250,25,222,20,105,39,207,231,181,40,100,223,170,155,182,102,156,243,60,202,187,115,247,33,95,131,41,131,34,223,158,16,3,224,177,142,221,187,159,176,15,179,225,230, -253,37,26,144,116,59,236,7,126,45,80,207,213,253,15,160,29,86,103,214,166,101,45,28,238,96,231,186,210,185,80,27,217,45,114,117,170,168,180,94,143,170,114,160,221,96,225,16,64,117,143,71,118,96,84,79,28,236,129,35,243,67,166,30,71,237,58,243,129,244,89,46,239,96,163,174,149,33,169,221,54,102,115,210,173,208,94,52,233,91,52,219,175,84,143,235,68,75,69,179,98,222,60,148,13,207,112,27,140,5,71,72,248,172,170,44,139,174,24,172,135,4,36,155,42,240,240,155,177,184,252,111,238,187,0,0,108,72,108,98,198,165,41,72,186,85,190,127,191,176,250,72,221,41,39,230,146,183,42,251,114,119,105,197,180,192,128,117,226,169,188,104,227,243,12,99,93,112,35,80,21,107,250,249,18,214,231,175,87,24,163,125,171,149,159,176,51,210,113,109,118,231,240,207,57,171,118,173,251,219,26,234,206,251,148,75,151,195,196,236,253,172,189,233,44,47,255,58,226,113,72,119,54,163,162,209,41,79,125,142,187,97,141,219,140,241,241,4,168,200,204,183,143,30,178,7, -156,95,134,247,235,240,186,159,127,241,147,62,45,88,246,238,229,245,125,57,93,222,46,207,211,202,170,2,179,180,149,198,219,221,157,206,118,78,123,50,94,122,37,61,192,92,220,19,183,148,231,149,166,53,107,141,29,168,76,61,201,51,215,88,123,16,112,108,188,167,22,146,51,243,189,197,76,73,77,98,229,49,106,143,213,111,212,137,231,178,238,0,67,163,85,133,199,71,16,96,0,10,236,247,47,75,254,219,174,42,186,220,174,15,212,119,178,242,2,209,2,28,234,134,83,200,206,61,154,243,120,71,210,242,193,92,35,85,36,210,134,198,219,97,172,0,181,185,228,175,237,88,45,112,190,240,215,70,182,45,30,50,156,228,211,226,158,22,159,154,242,87,230,241,122,165,248,245,199,232,48,167,41,223,242,203,44,45,74,178,54,204,166,195,13,137,20,58,174,233,118,102,119,159,147,31,233,225,134,99,54,104,220,242,235,41,191,17,218,210,113,25,129,212,170,112,166,177,247,168,73,57,117,110,199,111,217,23,80,104,245,100,212,83,171,237,108,87,172,69,197,90,44,121,55,200, -78,231,234,143,0,121,139,205,227,125,59,106,173,187,211,143,183,238,106,126,202,199,57,207,132,125,112,153,53,47,21,46,1,33,231,165,158,120,5,90,123,29,102,73,215,182,80,54,150,61,95,148,51,54,243,26,3,139,49,250,188,38,180,189,235,193,145,19,125,240,189,124,39,107,206,220,44,235,4,207,178,195,94,19,205,216,51,11,8,3,180,4,255,115,242,56,93,168,177,51,92,26,10,222,251,191,25,142,235,33,124,158,100,248,68,154,136,194,59,82,172,228,217,148,180,175,213,215,14,243,72,68,213,159,7,125,68,168,0,13,146,14,50,86,63,94,215,221,175,205,179,87,234,66,133,243,237,120,211,221,146,92,39,90,136,219,72,186,46,66,168,103,252,150,10,215,141,149,115,178,185,8,194,145,15,171,37,8,155,214,202,73,105,162,113,9,31,35,122,239,54,178,166,53,205,242,239,126,99,180,174,238,113,84,213,66,43,239,239,199,136,56,83,43,179,138,246,93,18,120,63,7,70,101,56,22,174,136,33,112,245,205,138,28,83,112,105,109,198,113,182,57,146,171,250,197, -227,53,63,107,247,164,119,203,108,189,10,234,201,78,146,61,163,64,213,135,146,204,72,235,57,106,99,59,61,203,61,117,201,135,65,195,15,152,65,141,48,114,64,79,121,22,134,131,234,177,51,113,131,8,247,189,63,200,204,112,94,237,109,64,197,191,95,209,183,253,9,249,172,185,187,168,67,135,200,174,175,151,29,235,139,10,135,83,83,46,173,247,189,90,70,208,178,34,230,185,244,68,38,68,84,155,91,241,94,193,239,108,136,20,113,3,179,12,30,246,145,88,62,139,84,26,40,68,63,121,71,187,50,7,93,187,144,36,191,36,192,213,123,116,164,203,13,210,213,148,78,117,116,129,111,185,78,16,232,112,227,193,95,131,30,26,71,150,141,184,81,159,219,40,102,33,230,45,230,173,146,54,177,62,137,2,227,254,25,29,78,88,93,239,217,121,179,210,249,241,220,47,160,134,242,99,240,236,55,164,147,18,24,252,61,23,147,143,97,194,139,209,62,91,222,235,188,131,214,186,167,243,231,202,46,90,252,194,184,243,18,101,204,82,211,73,235,17,220,71,250,48,152,198,101,213, -68,245,115,51,93,128,231,232,90,69,179,117,107,108,231,83,101,82,73,98,107,50,7,207,217,146,182,111,144,73,179,36,174,169,120,206,78,139,53,226,222,128,46,139,141,220,217,226,141,239,175,146,51,186,248,152,95,251,236,103,92,225,253,120,239,54,222,190,22,149,156,58,162,111,226,79,129,202,163,213,73,18,143,44,133,116,252,216,34,23,53,7,188,54,209,142,18,129,83,220,184,100,10,214,117,116,114,138,172,142,170,23,191,242,90,185,14,138,32,120,134,215,173,241,199,204,141,84,228,114,84,156,199,245,126,225,234,72,52,225,101,20,217,94,249,85,221,157,94,5,130,188,52,76,149,47,227,191,83,155,7,111,250,188,143,17,202,143,107,116,57,149,138,231,142,103,180,29,176,103,253,184,49,2,138,217,11,159,107,174,116,134,57,214,13,57,8,23,193,45,93,129,53,33,170,207,168,47,184,124,100,195,45,55,236,79,154,58,169,157,209,219,239,210,103,239,69,27,180,222,241,245,182,129,110,43,224,182,222,245,52,144,122,163,63,16,55,153,110,195,185,46,163,165,124,102, -181,238,251,231,71,27,112,73,158,241,72,134,142,126,252,32,168,29,222,244,86,248,5,199,209,44,110,240,188,147,99,56,58,94,119,208,102,135,41,115,231,20,166,139,164,104,165,217,126,166,151,155,237,53,186,88,87,90,180,209,185,151,42,210,37,154,74,139,108,31,4,210,147,246,151,153,158,32,169,126,134,17,159,58,55,213,156,151,255,243,254,60,39,146,154,214,220,137,185,43,138,99,158,181,152,87,207,167,221,74,33,21,53,74,145,139,236,101,172,202,29,236,145,181,230,48,168,26,235,210,26,98,210,30,179,111,234,44,91,179,102,159,174,190,136,193,46,109,18,77,157,79,40,6,118,1,195,200,113,16,67,125,11,225,106,221,39,124,151,47,54,223,217,197,11,69,177,133,129,78,84,104,171,4,73,21,151,44,227,166,211,85,129,209,221,157,111,227,217,212,207,113,93,204,65,101,101,237,43,206,24,129,120,231,173,39,54,191,0,250,80,192,100,18,146,70,101,103,173,235,34,89,200,126,178,139,98,119,98,242,190,234,131,254,137,244,123,220,105,158,51,232,96,63,25,81, -207,238,162,245,10,67,57,188,143,244,217,221,178,208,200,245,206,91,80,63,59,202,147,71,163,206,217,76,77,222,141,184,181,147,172,39,139,143,131,243,41,172,158,176,118,251,146,116,180,180,83,30,251,117,40,172,189,243,32,251,245,81,76,120,36,216,134,204,104,152,83,239,52,204,246,5,1,132,63,73,214,58,235,85,183,174,227,118,60,68,75,72,62,43,209,50,179,24,29,58,103,13,235,147,169,185,172,147,196,196,91,211,111,78,159,132,253,163,96,60,112,53,102,77,91,201,92,5,227,113,157,183,144,190,244,235,241,243,163,164,159,170,44,65,207,160,148,98,73,9,154,240,122,138,82,93,63,120,123,21,24,23,61,65,196,158,207,32,116,141,164,183,82,90,99,107,211,215,156,245,183,175,197,220,29,243,104,233,47,108,46,110,4,193,211,169,142,219,207,71,220,56,154,133,205,221,207,207,244,26,241,188,29,217,253,41,11,151,211,156,87,209,243,85,220,99,28,217,184,245,237,13,167,247,217,152,197,229,209,245,122,122,72,218,112,88,240,42,36,173,62,125,235,131,127,15, -115,98,32,181,191,215,18,44,173,91,122,190,174,106,89,203,235,148,105,79,38,147,245,123,183,206,252,254,46,159,189,53,119,76,27,175,94,235,181,167,63,153,112,175,227,181,159,232,77,217,85,108,172,23,183,139,3,162,30,187,202,100,28,117,116,55,206,72,122,226,49,199,109,82,245,222,101,190,87,198,250,126,164,62,180,149,220,221,178,199,204,127,90,238,251,173,71,25,180,155,246,249,173,107,30,180,171,206,49,100,125,18,241,26,182,121,77,150,230,121,140,163,33,15,111,193,126,230,131,71,54,181,188,93,244,167,77,60,169,98,56,150,207,19,67,50,235,139,157,213,156,71,243,11,163,19,226,149,228,246,67,160,64,137,165,161,198,116,239,8,80,215,113,59,40,241,10,25,45,210,227,28,65,143,252,173,62,119,159,233,173,246,3,183,89,94,202,250,17,163,107,59,239,220,79,179,27,236,243,203,31,245,184,85,65,9,205,29,39,229,105,38,53,111,74,134,104,243,29,135,184,102,119,158,128,206,253,236,191,175,146,176,109,114,101,73,58,183,66,151,229,184,6,72,231,74, -118,55,111,91,211,246,189,241,141,178,95,49,124,31,41,128,164,125,142,237,45,105,12,65,61,120,57,199,46,27,171,66,0,159,221,109,215,203,234,160,159,10,82,123,171,16,23,1,16,195,109,243,29,125,218,25,166,10,9,62,1,35,255,86,234,107,108,63,145,135,242,19,159,233,208,99,90,255,198,99,153,52,49,217,165,23,159,54,105,34,149,108,218,166,240,74,98,45,241,70,1,144,189,120,194,67,216,124,42,110,151,110,8,209,149,172,13,62,85,224,151,31,219,147,181,17,110,151,150,127,158,26,58,224,243,49,224,159,105,200,149,195,211,80,77,168,17,129,237,5,180,112,215,143,142,238,248,132,62,233,76,65,197,69,142,205,222,61,60,166,151,63,96,90,131,243,90,123,162,100,62,211,102,192,104,95,7,135,200,133,29,43,128,43,113,76,31,43,41,119,108,175,216,222,97,229,224,15,86,115,23,123,102,84,129,111,2,20,217,180,169,137,232,62,20,179,199,221,187,155,175,248,177,232,42,184,206,172,110,202,99,33,12,177,200,120,221,44,172,36,185,220,10,236,106,24, -77,62,185,213,201,126,213,180,145,228,14,30,97,64,105,226,169,25,131,124,123,137,83,168,188,170,128,250,126,122,8,117,52,63,140,252,1,202,11,242,111,106,140,32,52,251,196,72,178,28,82,248,142,213,213,120,225,136,86,219,146,15,155,6,125,31,142,156,35,99,128,149,67,238,64,209,94,31,80,0,231,65,159,102,49,53,198,112,100,214,134,46,206,59,242,227,130,124,95,248,141,250,62,10,93,83,255,12,155,204,164,185,239,182,98,75,43,185,189,120,17,125,88,49,92,140,221,186,49,229,237,29,184,97,20,151,152,176,54,229,80,156,37,207,117,45,33,107,207,5,182,26,202,62,223,234,107,183,68,178,209,152,30,25,245,209,210,81,108,143,54,207,66,242,144,126,171,255,133,44,104,238,102,24,220,238,102,214,108,50,228,144,139,221,14,45,160,214,228,30,0,119,206,164,41,183,45,213,252,212,18,84,230,174,224,163,245,109,154,64,255,174,112,187,84,95,58,106,19,151,140,126,104,173,152,58,142,175,111,119,92,224,169,250,110,240,15,175,253,102,230,214,217,118,31,235, -178,32,5,229,198,185,253,101,99,93,19,15,31,149,207,182,178,110,90,143,236,202,65,149,67,126,83,114,163,86,220,180,188,151,182,231,77,11,175,219,221,11,55,126,69,177,206,19,104,111,247,155,242,189,253,109,249,37,92,99,110,15,211,229,5,75,0,80,151,34,144,215,176,196,187,167,70,165,160,105,7,175,157,164,5,231,60,14,56,67,118,115,67,242,251,183,135,147,235,21,213,217,204,92,208,130,121,192,217,97,22,32,109,36,166,62,61,42,155,185,107,221,176,160,151,79,76,236,182,44,115,141,237,225,60,114,69,145,77,83,179,36,39,109,190,99,218,6,226,17,92,251,121,17,107,163,137,99,228,131,75,191,151,211,127,86,244,221,140,123,119,222,69,5,87,84,81,177,59,152,93,73,231,163,101,49,191,105,238,143,41,163,178,93,39,213,247,74,246,59,121,226,114,109,17,30,218,158,27,220,243,180,206,251,134,177,219,123,23,187,253,151,169,107,249,44,46,239,181,123,51,146,72,31,151,15,194,210,145,70,129,188,230,167,75,205,160,123,149,143,187,186,29,42,75,15, -238,211,174,30,150,173,179,243,130,203,106,68,32,157,52,176,113,65,158,26,247,246,131,243,86,237,32,107,147,86,14,249,2,185,2,84,215,183,153,68,126,207,207,139,6,238,230,186,172,53,196,95,100,61,154,193,223,72,190,62,23,255,239,78,157,8,195,250,150,183,144,153,187,15,203,198,83,109,219,237,49,207,239,62,30,48,98,13,181,121,110,193,26,206,130,181,18,157,251,95,154,168,224,7,232,28,93,191,8,238,195,97,244,139,205,228,173,117,32,65,178,184,147,230,3,86,217,164,147,138,79,140,58,222,222,55,54,2,245,62,193,107,252,115,56,145,29,165,145,199,185,211,45,54,251,18,27,34,248,79,24,171,9,120,97,120,14,32,203,201,191,120,143,17,234,252,200,223,224,254,109,163,198,110,87,130,29,135,75,118,247,98,170,11,109,113,95,125,202,27,94,228,49,229,37,235,13,20,31,151,67,130,13,167,247,183,236,30,172,250,237,154,127,224,84,94,47,230,141,230,209,115,159,92,86,238,229,108,217,175,37,237,86,74,224,108,220,162,243,68,54,105,57,72,60,172, -192,247,152,250,220,184,13,186,16,89,175,2,88,137,87,167,24,114,41,94,189,32,2,183,134,78,245,130,77,143,62,49,249,17,136,80,244,118,49,85,29,161,91,241,147,173,132,110,4,109,230,21,186,147,189,98,208,157,79,200,150,70,55,2,182,142,26,221,202,84,57,232,75,45,62,109,161,235,193,80,244,113,219,242,68,151,185,177,255,181,225,13,91,201,160,235,5,182,190,179,252,8,188,115,27,84,62,102,24,94,14,241,170,104,119,40,85,215,70,14,221,227,41,52,106,48,112,113,77,34,131,147,170,254,68,110,98,163,128,132,51,50,96,244,228,183,75,66,211,61,196,112,121,146,238,96,55,103,74,186,5,57,83,126,24,30,234,108,65,247,60,0,51,22,195,131,152,173,27,116,15,101,214,160,31,44,160,153,147,225,64,189,229,78,134,1,22,127,108,232,38,30,2,118,189,226,249,36,172,126,173,27,64,112,186,187,140,199,153,188,134,8,40,111,232,238,248,89,132,2,138,219,77,46,113,170,183,139,20,219,14,241,17,36,157,226,167,143,101,145,176,78,128,69,124,33, -82,153,126,2,89,204,22,233,92,191,180,150,234,197,122,99,174,241,192,160,150,98,203,81,74,51,86,103,144,99,213,112,61,95,140,53,189,181,99,172,73,76,218,145,241,239,14,20,198,227,245,104,109,25,155,214,147,53,118,188,236,203,51,235,241,166,119,110,35,199,171,193,24,48,230,246,135,17,129,199,158,58,210,69,41,119,130,60,72,69,60,153,16,41,101,139,155,109,69,180,61,45,35,214,35,84,195,243,210,5,7,183,37,203,241,237,4,131,99,106,219,99,129,83,125,52,174,149,255,209,70,247,142,163,159,175,1,136,1,197,39,66,91,73,212,144,48,51,103,250,39,49,27,71,127,143,197,58,39,6,107,159,165,210,195,182,197,126,56,212,240,217,0,176,73,165,234,101,244,112,50,77,104,33,150,138,97,197,193,183,82,237,167,216,106,235,91,139,246,44,66,163,1,108,150,135,22,145,149,11,170,113,98,235,192,25,139,67,157,13,83,30,10,118,49,110,191,80,88,131,250,163,59,96,117,23,153,226,128,213,63,108,198,76,93,55,248,230,177,251,245,243,76,66,213,217, -201,8,230,132,158,139,84,247,145,102,73,103,32,94,62,74,102,228,216,216,166,241,66,156,185,107,193,168,106,170,200,173,5,189,112,232,189,90,42,186,70,239,134,174,37,142,244,98,176,99,63,107,188,4,69,39,248,85,223,178,113,84,103,197,222,252,8,85,108,220,83,160,38,5,66,218,167,65,133,127,236,170,76,208,243,5,65,7,200,84,253,208,158,180,148,249,54,100,184,36,19,104,194,51,78,98,145,191,212,225,5,9,217,194,23,155,40,226,149,108,229,91,206,164,72,103,174,137,81,247,185,212,229,32,254,254,38,99,249,91,252,45,168,82,121,82,125,81,140,51,15,158,109,168,140,110,139,255,70,101,244,27,211,161,158,164,183,18,42,99,202,39,27,220,237,69,37,157,218,140,135,20,145,138,62,42,97,226,230,244,124,178,232,244,138,57,224,141,254,224,25,120,131,240,31,224,129,197,172,84,143,87,171,69,191,161,27,3,200,124,225,140,62,13,129,74,18,214,69,159,167,143,157,241,20,172,83,210,237,130,20,31,53,121,127,163,68,181,61,25,181,4,162,72,120,120, -214,47,192,136,25,178,204,88,64,199,20,52,9,229,77,70,22,22,192,243,177,94,145,204,55,16,245,246,252,167,204,247,80,79,193,147,108,227,123,145,230,45,86,190,3,188,91,126,42,86,145,7,116,106,201,0,155,200,10,55,127,228,163,13,216,28,240,131,19,162,247,112,74,80,198,243,167,103,50,100,52,231,202,200,137,36,25,59,244,38,235,81,89,81,35,32,44,244,169,220,222,155,113,72,96,24,69,191,42,49,254,201,232,221,76,185,57,165,200,141,2,156,193,130,81,194,249,224,145,141,214,231,166,109,37,111,158,115,246,162,60,62,208,223,127,36,104,139,81,170,152,46,117,144,191,5,121,12,61,21,132,76,90,210,135,217,159,137,204,179,27,72,164,198,87,150,190,200,62,125,84,232,72,23,3,55,193,40,81,63,7,239,197,93,72,4,91,38,22,177,145,9,199,69,193,144,141,68,92,144,239,206,101,66,166,84,129,218,142,86,143,166,234,174,122,166,160,106,198,179,186,136,170,9,62,64,117,214,38,223,70,159,169,38,107,82,232,230,172,56,211,141,46,244,160,37, -47,186,35,90,155,188,232,143,222,58,19,150,115,192,199,61,83,17,199,223,145,79,3,25,153,23,93,129,21,210,60,213,14,217,207,200,137,220,183,106,20,103,144,19,85,98,19,219,132,160,20,53,75,53,252,156,143,203,186,168,147,202,56,61,11,217,222,207,93,98,214,9,8,55,125,250,249,243,124,205,228,65,208,230,220,105,214,162,139,186,151,27,120,79,192,84,116,138,68,190,102,27,144,95,78,145,31,185,52,4,82,138,62,15,75,11,231,212,113,136,69,29,48,205,90,55,44,236,12,225,160,42,27,29,144,37,195,129,60,50,100,103,82,190,108,63,164,92,50,224,238,67,48,38,147,49,151,232,246,127,201,195,33,159,81,68,165,120,206,104,74,125,136,156,64,55,101,170,182,69,54,152,251,34,215,89,224,222,145,163,85,224,197,50,94,234,233,38,248,185,59,239,206,124,7,242,110,175,143,23,190,23,231,46,190,166,28,223,134,239,96,193,114,110,116,134,112,100,97,5,47,182,88,90,253,190,19,213,197,41,55,114,18,129,79,133,159,12,159,88,135,38,236,9,138,140, -90,50,124,35,33,115,42,189,34,106,4,133,117,106,250,71,175,229,218,49,41,234,114,72,146,72,44,70,154,28,178,83,163,103,35,255,80,228,72,19,27,57,231,185,132,223,59,205,190,96,225,81,188,30,44,65,199,232,22,35,232,231,79,163,42,77,126,73,88,58,111,17,88,43,167,140,19,55,128,132,106,226,15,33,64,27,6,249,144,65,249,24,214,31,6,207,193,115,85,126,26,226,51,112,101,180,48,73,202,103,194,210,61,167,149,58,26,243,201,88,216,139,3,1,209,72,149,174,9,237,237,209,229,68,223,132,20,153,233,218,120,248,234,142,176,116,237,34,120,55,78,89,186,6,15,134,180,162,47,125,195,51,45,226,212,183,65,187,72,27,125,233,61,191,68,53,16,157,19,152,234,160,244,168,206,133,244,235,209,7,172,232,3,116,147,166,37,110,192,10,230,20,76,176,236,47,22,234,163,105,146,42,202,3,238,98,133,162,36,251,17,53,65,253,170,26,121,138,85,68,149,160,79,24,161,154,244,90,28,162,150,78,45,123,247,167,178,88,191,218,56,122,206,234,249,179, -147,97,48,169,64,169,98,121,153,193,246,103,31,245,222,198,234,88,254,108,103,189,45,216,66,145,196,56,231,14,104,77,99,156,33,103,62,133,181,164,42,56,102,26,58,105,98,216,18,179,11,55,249,0,241,66,118,231,206,178,176,249,203,220,253,9,238,242,232,168,146,40,206,115,167,81,1,233,107,77,92,222,229,83,105,15,15,224,247,168,17,59,125,212,19,177,113,113,129,36,169,19,170,35,71,200,88,169,179,52,48,181,122,170,210,107,121,0,7,12,125,19,216,62,81,212,134,190,10,21,132,177,170,115,95,143,226,28,220,244,77,248,201,51,142,31,122,239,87,205,223,75,97,7,103,112,81,132,161,115,131,67,155,68,170,210,121,16,121,57,58,243,61,168,2,253,242,251,68,158,83,6,173,108,14,146,96,82,214,234,144,178,185,197,52,203,42,194,50,44,53,119,39,78,50,139,206,252,77,184,73,134,204,154,245,39,240,44,143,45,250,135,18,147,173,51,234,126,200,119,38,114,209,35,35,49,151,66,3,87,79,95,224,61,252,118,163,166,54,13,234,109,242,22,45,252, -162,203,206,59,2,147,34,112,99,79,56,152,24,102,119,65,145,76,23,36,150,21,113,170,56,0,232,13,148,177,202,18,241,115,195,5,41,185,149,63,249,210,95,44,140,215,4,170,49,147,64,11,156,3,63,138,164,57,92,152,207,13,134,72,104,162,62,17,182,113,102,164,84,202,168,79,134,143,42,222,1,152,66,233,10,178,200,222,78,85,234,45,77,76,137,169,42,247,194,102,238,2,83,221,4,142,119,99,185,161,111,67,197,167,179,234,210,119,163,88,139,86,117,227,191,243,172,229,135,222,243,85,242,11,84,216,222,137,158,20,161,171,220,224,222,70,253,141,135,23,113,147,167,50,224,65,25,56,147,75,38,42,157,38,40,99,139,144,50,180,82,47,11,120,153,250,22,243,56,207,105,70,169,25,135,121,154,154,248,198,50,124,78,74,164,101,60,11,63,23,232,151,135,156,70,53,151,113,97,199,232,139,65,68,154,181,82,13,224,78,199,212,68,125,66,136,224,190,168,107,112,1,129,151,132,250,118,63,190,168,168,168,238,99,58,232,164,186,137,193,40,49,110,7,88,227, -136,33,10,197,158,39,234,156,63,249,18,184,228,73,85,222,224,239,133,1,230,137,169,153,47,29,251,114,109,29,48,69,66,5,52,228,219,6,21,16,232,225,1,27,22,175,3,37,113,186,164,75,245,67,111,80,106,173,58,30,119,25,176,18,160,12,1,87,181,193,177,221,162,76,235,90,144,213,124,89,81,244,173,88,39,166,186,154,133,214,198,115,67,215,73,34,95,231,229,165,235,245,144,30,127,4,228,189,214,158,31,58,231,87,43,224,95,98,123,23,122,131,41,170,114,195,103,186,165,17,213,219,1,167,184,42,150,29,148,128,35,57,181,62,209,201,130,46,182,113,187,79,41,117,234,208,119,2,57,152,163,231,58,25,50,236,197,186,239,71,150,32,183,30,206,72,204,52,123,106,18,149,129,9,37,63,177,82,205,162,30,80,207,142,165,158,13,94,84,213,174,35,73,138,102,198,45,131,56,98,37,3,193,244,236,159,251,181,168,15,221,154,227,98,11,50,242,33,42,210,49,110,179,152,32,29,58,99,81,19,99,161,195,13,43,98,51,97,133,143,18,18,18,99,25,179, -46,88,195,36,164,250,77,51,125,240,23,24,46,149,119,7,208,161,221,111,68,192,6,36,201,82,3,137,14,21,117,17,80,67,178,170,168,79,68,29,164,29,107,185,220,235,211,209,147,6,239,20,46,81,250,72,7,16,76,176,203,131,145,14,26,61,217,52,209,233,78,148,97,109,235,64,119,177,204,182,244,76,32,150,148,99,91,5,102,86,91,230,177,171,195,138,239,17,27,219,61,226,163,193,148,141,235,223,201,176,81,213,214,134,13,34,150,217,107,255,131,116,22,171,148,84,183,129,76,51,150,9,181,78,19,85,0,147,9,135,74,161,211,70,84,208,89,177,158,154,255,246,149,100,128,32,244,200,202,255,44,2,86,198,138,106,42,212,243,203,160,27,83,42,156,201,206,220,50,36,192,163,236,85,240,129,208,68,77,153,241,201,209,33,81,23,61,92,75,222,228,38,125,79,80,1,74,217,26,191,96,4,222,21,10,92,221,88,209,171,75,245,254,36,212,7,57,54,56,146,48,253,140,133,14,24,5,112,147,105,3,59,125,146,71,229,243,161,253,194,15,225,152,55,250,131, -64,245,155,69,173,139,6,104,110,153,117,231,210,239,221,225,13,183,195,75,4,116,200,119,143,139,8,155,168,59,122,85,220,229,128,211,200,145,101,86,29,119,105,16,223,11,139,189,217,200,221,115,21,62,48,176,169,131,145,137,56,41,217,180,254,233,72,173,89,236,106,95,250,133,164,105,29,56,32,148,202,202,182,142,158,96,78,141,115,219,194,44,184,154,230,165,231,224,85,64,43,27,55,116,194,107,96,169,157,29,152,212,55,177,181,193,19,56,33,217,56,201,192,204,132,21,219,168,179,254,22,10,51,44,147,90,189,210,103,33,54,20,158,165,66,175,241,43,168,179,100,93,53,215,105,163,102,21,160,24,65,179,116,229,121,68,7,121,149,143,192,122,126,54,152,57,235,54,206,244,40,44,67,18,22,26,146,255,133,154,213,13,161,201,211,49,206,121,148,164,243,204,148,22,158,174,108,53,47,255,108,7,185,18,96,21,40,89,4,75,177,77,9,24,247,47,125,28,116,180,175,163,130,130,136,105,54,188,129,58,218,135,28,3,119,22,82,125,154,72,17,128,17,255,128,75, -185,162,47,13,195,212,131,166,84,222,18,170,248,168,238,40,186,169,59,138,124,85,22,201,155,2,146,245,184,72,0,60,2,199,202,249,106,180,75,194,93,87,194,115,188,42,237,139,240,216,129,36,83,179,225,70,125,54,46,41,208,212,195,54,234,192,1,180,102,41,54,117,100,165,94,115,22,219,206,215,35,226,178,88,6,122,8,78,125,45,44,163,3,24,215,185,155,52,49,19,174,235,210,79,255,150,84,175,43,59,84,27,224,185,176,157,13,200,121,228,155,184,222,155,237,182,254,6,43,176,50,113,52,191,193,234,239,161,43,154,129,157,220,41,124,35,57,49,154,96,43,116,52,109,68,3,109,212,151,157,63,64,165,0,36,135,17,21,83,183,137,168,144,12,18,21,221,208,47,81,65,62,199,141,61,58,81,185,117,72,137,194,228,154,32,138,131,60,253,225,203,14,122,14,106,202,203,230,27,236,250,36,103,160,52,198,8,19,78,60,27,250,130,102,25,220,92,43,197,142,43,248,45,93,207,153,188,16,3,29,123,155,10,82,146,174,5,82,204,106,116,12,204,206,133,166, -162,251,223,48,1,16,154,240,78,149,124,37,20,11,149,215,235,170,82,176,65,95,182,14,71,181,222,20,5,196,16,36,107,202,173,175,92,252,1,94,146,175,74,4,116,136,160,133,232,20,78,151,131,93,204,167,175,35,164,100,118,97,155,137,255,214,163,21,118,243,160,218,42,125,110,248,101,52,188,170,162,3,49,87,185,218,54,65,149,186,171,140,26,152,1,155,244,117,115,139,60,148,237,198,182,61,192,94,50,207,115,207,232,97,241,220,215,101,112,50,247,182,97,91,15,252,146,233,185,112,221,23,121,67,31,92,57,209,5,184,205,148,238,92,144,201,204,85,79,108,101,225,23,122,173,25,217,40,131,58,96,193,23,107,74,182,202,224,39,14,42,170,177,39,219,207,120,208,249,106,137,44,24,70,213,212,43,161,71,168,53,85,77,183,246,234,88,95,220,25,225,208,207,66,82,7,162,153,130,168,173,38,243,40,207,203,3,176,59,113,133,52,197,243,142,7,190,124,51,165,36,183,53,137,41,201,217,0,80,80,254,7,247,137,133,240,253,70,238,122,130,223,48,219,26,223, -62,116,163,86,89,88,21,27,28,19,203,188,162,158,11,41,53,85,85,90,95,0,131,0,199,23,36,93,222,85,64,17,1,104,164,78,159,13,100,40,20,0,112,151,208,235,232,238,18,132,0,141,53,78,186,115,48,131,80,180,225,50,160,10,30,72,3,96,15,27,38,99,15,182,36,100,212,78,160,13,155,177,226,46,29,85,147,46,215,165,107,191,139,69,141,125,188,118,116,165,12,220,14,224,166,116,85,69,38,79,181,103,177,109,125,109,170,145,167,117,96,133,120,145,171,235,42,186,129,189,59,206,109,3,211,225,62,43,231,190,149,231,5,93,199,156,208,6,255,134,237,198,78,96,71,255,196,13,158,15,96,135,116,101,7,122,19,147,71,124,165,245,143,47,168,214,224,74,236,42,42,159,136,136,83,52,91,202,157,210,111,166,86,142,142,230,124,171,137,202,13,128,104,132,253,139,56,101,68,3,97,149,85,13,181,126,30,52,112,14,88,123,202,161,159,5,108,168,66,48,23,221,10,146,44,95,70,237,48,77,43,34,96,11,98,9,215,41,83,16,65,116,19,164,15,51, -8,59,60,56,50,37,121,137,23,235,192,241,160,126,174,95,230,75,68,148,193,83,108,19,7,246,156,174,5,246,176,101,71,6,215,189,30,91,220,209,1,193,49,123,57,25,72,81,156,140,203,130,172,202,6,34,16,212,12,45,215,171,243,204,64,128,178,123,198,80,61,157,57,232,67,229,148,238,248,92,181,245,103,72,187,25,102,105,87,239,61,34,13,30,132,99,123,182,68,184,203,198,36,85,26,7,194,38,238,113,129,209,46,147,203,184,142,123,20,57,232,194,109,67,174,100,117,175,129,222,236,159,229,69,223,202,252,152,175,90,127,240,227,6,176,16,213,66,200,71,5,90,136,54,18,198,199,1,175,191,183,5,26,224,1,111,38,187,67,15,240,66,186,226,125,185,32,152,43,217,194,1,248,40,194,22,241,237,128,219,12,126,139,252,20,175,13,90,183,131,236,48,158,141,196,86,29,181,2,121,153,132,75,25,186,150,6,129,26,40,170,230,158,108,184,202,160,252,181,16,105,108,105,155,117,240,131,30,52,81,88,117,213,220,107,48,176,105,88,153,83,61,91,250,121,8, -131,14,212,59,90,208,227,188,40,72,150,96,150,85,221,52,203,153,21,17,148,33,141,52,145,146,197,239,228,224,201,188,141,115,94,144,67,254,243,243,78,165,167,10,222,214,205,231,91,248,189,61,222,187,103,233,249,31,216,23,239,66,176,225,130,43,162,99,93,220,113,32,11,151,170,73,237,187,232,19,177,203,38,239,125,35,69,142,33,182,94,93,12,180,40,14,199,99,129,86,233,3,232,10,73,97,148,169,85,122,125,48,195,153,141,22,195,186,122,235,109,80,65,211,87,198,111,131,245,137,61,236,130,188,214,219,162,209,30,1,62,49,180,229,220,171,116,192,65,100,45,29,143,253,58,30,84,224,152,143,225,137,66,84,253,61,159,2,88,33,217,168,32,254,9,188,226,79,73,74,63,11,209,14,108,45,78,160,149,100,32,225,91,65,240,82,50,212,10,30,72,120,45,27,3,4,176,42,226,158,142,23,129,217,76,241,149,238,143,34,60,72,255,54,14,252,173,71,64,76,62,17,152,68,184,116,65,31,3,48,186,86,70,221,14,162,67,241,148,104,215,114,183,136,186,112, -14,237,211,213,220,173,193,127,162,162,117,218,102,30,144,234,192,164,50,179,178,225,204,131,28,246,5,59,139,56,213,99,15,67,237,18,253,52,70,75,114,100,198,139,189,152,211,179,114,168,77,243,162,34,140,114,28,210,10,147,60,111,3,211,160,225,31,237,247,154,171,53,27,101,156,76,250,187,168,136,230,205,123,0,210,192,95,222,195,175,145,192,62,164,53,182,219,166,159,45,96,136,58,193,7,217,221,38,109,153,192,10,26,235,154,116,237,95,184,26,209,53,220,85,66,45,72,200,122,106,154,118,45,100,28,165,209,220,109,172,62,117,136,38,33,176,99,91,181,218,221,64,56,102,203,193,82,117,244,39,64,183,5,134,109,219,110,61,182,0,158,132,175,133,77,145,116,11,143,24,169,218,43,205,69,218,198,253,82,140,187,131,126,26,182,89,129,132,143,251,2,2,81,112,188,74,50,181,251,149,136,239,118,122,203,12,148,9,60,3,55,135,1,175,133,174,35,74,168,134,91,68,135,95,46,40,21,182,224,175,51,222,66,211,189,192,223,28,254,146,223,131,225,241,156,200, -17,156,215,135,70,81,2,199,119,36,230,206,197,95,188,154,192,120,112,33,144,193,55,35,91,160,221,79,1,151,136,85,95,184,107,6,152,193,63,163,126,7,214,113,123,78,156,171,169,91,132,95,72,247,118,250,106,233,230,145,219,7,107,189,178,153,6,197,38,160,40,197,182,170,102,16,167,42,180,229,70,253,176,20,194,25,155,88,179,220,56,197,18,168,239,60,211,180,224,34,75,210,5,102,105,150,19,248,9,228,251,109,62,148,183,124,225,52,91,49,201,153,33,241,4,226,7,125,207,25,1,162,55,74,243,75,101,40,7,44,146,202,248,184,93,77,234,49,11,124,70,237,93,47,244,131,184,166,245,193,13,245,125,216,182,14,240,77,255,73,237,138,80,104,171,162,205,188,206,112,61,49,72,202,229,66,77,87,122,111,13,116,50,126,214,84,91,189,223,199,132,81,234,204,217,102,239,78,166,96,145,50,195,181,101,175,221,57,174,129,95,171,5,87,240,128,130,184,76,209,158,221,85,210,101,49,208,29,197,123,6,30,6,136,244,116,87,227,191,93,193,52,162,11,141,31, -137,192,26,254,145,34,52,59,225,101,162,133,171,195,8,192,43,225,211,216,107,32,17,157,200,21,43,60,103,136,122,20,220,29,90,234,196,125,30,225,129,176,1,99,33,129,16,75,218,69,193,112,81,136,45,234,7,108,61,41,220,27,190,6,102,129,36,92,41,94,210,209,189,17,60,65,40,249,240,245,248,148,34,40,129,193,168,31,252,79,178,59,230,0,78,96,83,183,115,131,119,72,158,223,208,194,186,69,224,69,217,94,113,175,166,65,27,208,144,86,52,28,219,177,7,198,154,187,62,26,135,99,57,18,171,197,94,220,9,89,101,198,38,102,174,31,50,110,1,233,251,111,26,144,57,194,32,232,73,241,35,231,22,157,96,230,47,116,111,223,115,46,197,40,163,51,35,225,80,34,154,179,28,250,21,154,191,58,216,175,28,90,40,62,90,7,226,222,60,16,40,74,116,69,177,221,56,248,21,200,133,150,191,116,76,150,228,31,93,0,36,88,214,213,30,176,94,201,187,126,157,101,251,74,156,86,224,137,88,175,244,254,10,107,21,215,219,229,107,189,59,131,181,96,160,53, -214,102,31,84,230,64,165,83,211,182,161,110,125,194,215,68,215,118,8,93,162,45,34,96,69,82,189,215,39,9,17,91,10,116,24,62,26,104,52,192,51,130,111,92,14,216,15,160,240,20,146,133,141,211,81,192,90,201,19,163,33,44,224,85,95,40,98,19,90,73,118,72,108,229,11,173,164,115,88,222,185,128,215,211,63,92,225,5,75,112,243,166,160,16,79,241,125,199,231,163,112,15,51,241,163,255,141,243,169,2,148,145,66,28,225,158,104,34,136,67,84,226,174,8,133,27,132,9,132,118,205,119,17,117,138,128,2,72,40,225,235,201,41,71,40,56,129,173,248,102,44,148,35,1,210,224,95,188,118,128,29,165,103,117,205,154,6,45,64,5,198,157,113,174,199,30,84,211,101,6,104,70,14,246,232,136,231,122,81,39,102,85,22,155,234,133,126,6,37,55,166,35,38,70,65,150,229,128,52,167,250,207,172,32,86,102,48,72,51,242,135,144,44,138,147,163,167,226,123,92,124,35,70,36,59,212,136,45,116,30,231,239,141,133,127,70,9,134,121,175,153,255,153,124,233,112, -66,2,38,106,130,228,209,204,192,4,239,248,202,217,125,1,50,60,47,12,81,84,93,12,208,12,47,8,132,49,156,15,4,196,32,66,58,177,143,253,73,62,121,234,173,209,159,197,118,166,143,39,123,183,11,52,174,16,109,197,213,220,253,242,206,32,43,235,117,1,197,59,132,223,138,246,198,146,79,17,2,46,210,1,32,252,111,96,17,145,145,142,191,73,191,229,130,29,156,31,145,202,177,171,33,192,161,145,244,192,88,41,212,211,8,230,234,252,2,97,174,199,142,18,161,21,111,53,82,232,171,208,146,239,26,75,245,78,68,43,24,95,182,251,23,194,227,75,90,5,133,184,194,179,78,172,143,194,221,145,229,78,215,207,226,31,68,122,209,25,98,75,36,96,122,1,36,204,226,91,145,31,251,87,158,18,42,17,107,97,221,208,76,48,131,43,68,95,59,90,117,247,48,240,45,19,190,250,254,70,116,3,99,96,3,62,23,235,30,152,47,203,179,177,91,44,124,86,18,79,227,242,161,73,46,31,71,83,113,56,90,211,173,176,69,176,156,31,245,229,212,44,8,51,144,227, -36,51,53,51,77,196,126,250,29,52,63,209,100,69,65,25,197,196,148,20,37,121,65,88,0,132,144,246,4,45,103,129,201,140,191,121,56,16,191,254,100,62,215,5,146,191,212,42,109,231,131,96,72,144,254,198,121,63,29,202,182,66,41,94,79,129,51,250,161,148,184,47,232,161,224,136,78,192,102,232,205,9,224,153,176,142,140,209,204,4,143,32,2,102,226,201,253,8,28,226,47,131,243,13,252,48,137,119,3,242,88,176,131,208,13,124,173,149,239,245,245,214,157,12,16,90,171,199,115,189,142,6,44,112,71,246,238,125,129,67,4,122,48,231,154,248,17,224,111,18,19,74,149,129,116,170,192,30,206,201,138,132,95,49,161,176,136,66,212,51,63,9,97,179,66,114,83,233,167,208,118,201,63,139,244,44,132,185,17,104,90,250,22,146,213,74,186,182,66,27,137,235,173,221,61,224,157,108,248,9,232,227,8,31,186,248,42,10,241,196,111,186,116,23,69,120,253,79,57,160,159,37,85,2,77,249,112,55,129,43,69,22,182,190,138,236,43,16,114,33,205,193,156,50,133,224, -185,19,161,18,25,184,112,168,32,192,66,44,132,42,134,41,143,18,168,193,38,34,161,25,201,57,1,28,112,230,216,239,64,58,52,207,168,11,106,31,111,133,217,221,15,115,174,52,38,103,50,55,14,41,69,234,179,196,212,40,12,131,255,7,9,87,217,156,76,179,5,255,58,14,139,203,226,238,238,238,182,104,112,135,16,18,44,9,26,220,229,242,188,151,174,153,154,217,218,47,187,61,231,116,119,213,22,114,38,64,98,57,56,229,191,88,80,72,115,94,106,191,149,97,16,212,229,117,117,141,172,164,186,1,99,130,87,110,167,218,183,90,97,102,157,169,21,138,95,53,77,250,51,143,178,162,157,226,57,73,74,145,161,239,63,247,152,85,14,156,57,28,104,2,21,101,23,81,89,77,192,177,212,89,154,70,196,148,213,128,154,172,34,229,167,131,50,34,206,162,82,117,193,213,54,102,212,1,118,85,142,69,19,226,100,216,152,16,183,87,49,32,38,213,141,8,226,72,7,69,154,31,17,35,114,119,96,21,15,83,159,48,42,34,129,74,80,5,191,249,180,65,10,224,232,22, -220,155,212,32,92,229,10,50,27,144,83,234,196,11,77,76,198,166,217,5,36,14,19,50,201,14,36,197,122,6,188,23,111,201,251,192,77,179,160,81,70,137,98,174,94,99,1,127,54,211,205,15,68,244,35,133,238,16,43,144,10,33,66,49,161,102,82,105,159,47,91,177,210,201,140,93,19,1,49,20,34,217,218,230,0,148,10,22,125,181,197,160,108,244,255,250,70,136,238,209,13,116,126,192,40,117,177,56,190,239,193,20,88,74,116,52,174,70,37,227,3,191,42,119,0,109,105,196,58,212,132,147,209,137,166,177,209,190,16,181,167,225,30,95,248,20,219,44,12,237,46,132,127,109,25,187,88,154,29,190,202,32,103,103,112,243,100,71,187,252,251,22,68,58,247,172,26,183,10,206,178,36,107,29,83,99,206,202,202,188,146,197,116,79,65,125,73,149,230,126,157,179,236,178,141,82,229,218,61,78,18,67,188,61,12,118,102,57,194,194,254,30,215,197,100,41,69,64,68,199,208,159,234,135,195,184,102,0,226,100,215,32,31,124,51,212,111,130,128,209,154,133,116,116,125,212, -106,96,89,125,208,47,3,28,166,29,214,242,55,84,122,167,142,19,32,137,86,119,65,29,198,36,141,106,217,105,38,148,159,182,148,21,56,234,126,15,119,243,225,246,202,26,133,10,139,196,16,0,89,166,1,165,95,150,152,12,32,69,45,96,170,37,235,103,32,180,130,206,141,214,88,101,148,23,250,161,85,35,115,50,205,154,128,140,234,101,82,185,214,103,90,111,177,147,143,238,166,122,0,8,158,87,44,148,19,126,166,254,158,233,101,54,38,250,231,145,26,96,131,119,133,114,174,30,75,180,216,244,200,155,203,210,42,100,186,107,35,0,25,10,129,130,52,6,51,234,140,73,250,227,5,71,118,5,147,102,169,21,42,104,128,169,64,52,104,173,124,140,4,96,157,80,147,214,44,118,121,72,43,130,4,57,104,210,143,92,141,80,54,66,104,23,173,92,56,249,251,116,33,206,7,44,100,40,35,66,138,51,69,124,8,241,239,78,30,103,31,196,215,78,224,119,175,168,11,33,150,155,247,241,187,81,85,203,52,204,117,186,208,82,236,210,2,190,67,152,250,115,26,151,42,75, -205,90,238,186,157,166,41,203,145,144,118,29,168,43,203,214,197,73,187,144,255,25,181,12,133,220,240,4,145,219,119,158,236,86,48,254,194,154,146,9,49,195,200,140,121,133,193,156,254,195,0,53,111,50,4,144,85,52,53,116,73,52,86,25,184,246,64,83,221,195,157,122,140,65,14,103,151,20,172,248,22,127,176,192,173,85,146,36,192,97,203,62,184,192,65,157,69,106,204,75,89,16,216,41,99,20,20,238,25,67,2,20,89,196,192,41,227,100,52,41,187,143,147,225,8,202,128,92,132,83,200,170,184,44,81,238,99,112,230,131,173,31,200,171,77,212,211,184,15,153,213,125,52,160,255,77,119,227,21,31,189,97,102,4,104,163,188,98,94,146,142,245,218,247,204,199,32,58,53,85,142,12,223,59,214,113,87,44,212,139,8,108,130,205,248,115,157,229,191,151,125,32,58,216,195,151,211,91,128,147,181,58,163,151,58,193,26,217,174,96,209,58,133,172,1,173,101,42,106,180,46,53,191,33,101,156,3,250,126,150,54,168,165,240,83,33,57,224,227,102,42,151,28,221,106,12, -58,192,146,44,215,9,211,100,153,47,11,252,201,12,4,26,10,243,50,117,204,220,15,53,36,132,59,174,213,101,234,131,111,54,246,28,167,178,115,30,101,248,73,38,7,219,87,250,130,130,200,125,242,80,235,148,134,9,39,21,93,255,174,241,74,125,27,228,13,141,125,130,182,45,171,197,40,117,130,6,114,0,34,212,99,175,245,71,60,180,123,93,66,185,134,225,181,125,63,8,18,56,248,89,219,175,113,103,52,202,240,219,148,236,137,90,45,35,195,45,100,231,170,202,55,67,246,134,71,248,51,89,133,158,102,200,100,108,174,140,79,193,165,58,70,16,93,11,124,43,232,29,250,111,30,97,4,202,7,133,135,254,151,11,100,9,235,37,116,166,254,76,51,6,183,53,4,93,100,180,97,49,7,43,71,97,16,150,193,140,141,52,90,154,76,22,3,40,146,134,140,151,246,200,232,56,78,65,229,99,114,118,131,111,59,240,38,13,81,80,40,4,29,159,54,168,38,17,111,70,159,233,229,55,183,78,165,65,179,193,107,136,188,98,169,90,232,39,245,247,244,103,244,82,168,132, -142,180,16,150,24,28,37,230,242,33,140,139,205,140,60,80,178,111,35,211,77,107,34,113,56,18,72,184,67,5,87,157,126,165,184,36,192,85,42,196,82,118,144,184,219,84,244,105,161,94,97,196,215,166,149,221,44,173,85,42,201,163,216,133,206,79,79,21,218,56,0,125,211,81,29,156,224,79,105,34,181,14,3,149,15,183,4,25,245,4,76,1,69,60,31,50,223,52,62,193,73,229,156,195,70,210,65,252,238,213,137,54,229,91,204,11,78,54,106,69,25,137,113,79,63,132,154,173,170,65,227,93,239,186,133,214,166,170,208,35,217,173,46,167,117,203,248,57,152,221,7,78,171,72,89,102,226,44,104,183,211,10,156,97,19,136,139,87,107,91,192,45,244,129,134,192,23,150,225,140,154,68,192,130,10,232,88,187,139,158,106,197,236,0,5,181,168,190,187,38,132,116,134,45,207,195,29,227,138,178,150,174,42,242,252,90,36,88,33,165,157,170,122,25,4,9,21,67,218,250,45,77,144,71,88,186,144,147,62,168,50,76,197,113,66,15,100,118,178,50,22,135,250,164,223,50, -56,73,35,68,61,125,13,98,56,24,65,217,128,230,30,43,140,6,165,232,194,68,173,64,44,175,33,5,157,47,137,117,121,107,46,244,19,167,81,223,6,161,12,218,163,48,202,189,28,144,25,87,24,100,123,210,100,166,73,191,23,47,201,138,155,66,179,162,137,139,209,252,164,222,98,185,254,116,247,146,111,244,108,7,154,51,37,54,32,71,66,217,44,109,105,191,186,123,182,49,93,219,10,212,61,221,176,171,142,132,42,61,202,64,174,188,246,245,228,183,204,203,101,142,26,244,242,87,34,233,228,58,21,77,56,189,151,234,4,39,36,166,194,69,151,149,160,205,202,158,49,42,156,244,150,39,25,243,175,23,208,30,65,109,102,230,108,43,149,74,42,239,18,21,102,148,250,227,17,202,58,241,9,143,32,117,114,26,145,78,0,241,123,80,103,216,201,155,152,23,208,28,21,5,171,176,211,156,10,181,107,172,172,3,215,249,117,11,177,198,34,235,34,108,85,105,129,83,157,70,0,17,95,237,244,42,51,25,39,181,160,217,118,225,195,77,87,240,17,161,181,5,34,119,65,10, -8,60,20,25,21,167,100,55,68,226,24,239,97,69,135,191,133,224,241,174,142,183,229,25,222,52,221,216,217,190,25,222,53,44,231,181,177,169,90,94,78,197,227,242,70,191,111,12,105,10,35,229,38,85,35,14,109,25,245,49,131,19,151,226,157,246,29,89,243,24,19,147,194,71,27,79,163,58,181,182,167,104,158,168,131,148,45,156,1,224,10,44,13,140,85,232,26,64,70,143,167,113,115,181,148,126,210,12,228,118,128,240,210,185,22,42,53,160,227,138,74,169,80,11,229,232,246,76,86,249,237,21,191,238,102,209,194,62,129,131,169,48,170,60,119,35,119,150,110,69,214,223,42,155,155,225,100,2,134,197,104,33,185,170,205,109,127,166,23,47,244,14,155,3,99,11,19,32,181,35,129,234,7,231,77,1,153,96,114,185,222,20,239,212,43,94,80,29,129,25,106,53,91,224,110,178,222,180,86,237,71,204,179,127,54,125,90,167,210,99,218,134,142,109,6,141,106,72,70,57,114,145,79,242,36,197,75,88,99,89,189,71,187,80,184,105,175,99,50,192,2,66,197,142,198,161, -172,169,132,175,88,83,230,16,150,119,80,69,4,43,188,115,22,47,66,28,19,64,234,197,169,34,23,222,125,178,146,71,177,187,203,223,52,160,221,75,182,73,210,148,173,19,104,10,59,73,140,188,225,103,105,6,207,48,170,229,42,249,73,129,107,4,138,212,121,167,87,154,89,59,201,18,237,118,7,164,70,158,183,0,44,110,247,122,132,14,36,163,125,12,23,104,0,196,170,9,196,177,199,243,80,61,62,111,78,113,51,244,23,214,240,252,60,172,0,24,229,212,63,46,162,151,144,166,201,127,0,159,55,59,210,211,140,137,132,139,220,190,140,248,116,212,56,198,226,182,89,163,74,155,49,126,83,5,185,109,242,200,199,152,100,49,175,132,41,26,157,104,75,95,222,103,158,60,20,104,41,149,5,117,44,90,105,92,129,79,147,228,74,129,17,196,209,229,105,178,74,165,197,40,90,244,97,154,75,84,75,105,168,17,125,84,205,100,37,94,194,8,18,84,54,105,163,196,56,195,237,6,149,38,213,202,192,19,157,35,147,124,214,10,182,249,153,94,238,112,99,109,92,52,187,80, -144,18,142,150,178,163,219,219,184,102,222,83,189,199,230,66,166,31,113,129,248,104,39,148,62,57,231,84,166,22,142,62,50,155,34,173,113,228,5,232,155,108,230,203,31,239,113,207,227,17,162,65,125,207,44,153,94,74,125,84,163,86,223,14,223,194,246,126,228,164,214,75,233,239,151,135,25,57,18,84,83,41,219,225,107,249,11,197,142,218,213,170,226,90,2,148,142,172,164,73,61,185,208,242,13,126,249,56,85,16,239,194,117,128,248,4,144,183,161,170,2,151,143,58,48,101,170,45,18,12,239,67,181,11,190,250,18,5,108,125,169,171,249,42,253,156,87,254,55,62,128,237,77,146,151,174,16,178,57,207,34,150,214,198,11,211,117,23,107,25,118,4,245,33,206,102,199,178,87,105,50,146,16,240,88,248,247,106,219,61,166,5,143,9,148,52,199,64,108,182,241,116,124,185,137,62,139,195,179,60,237,126,114,110,147,81,81,213,250,11,157,109,35,45,53,161,206,137,120,231,206,168,57,161,234,83,38,169,183,160,26,241,104,179,12,249,230,244,186,70,45,198,176,147,38,219, -219,166,145,159,192,88,100,92,236,118,136,60,58,211,198,197,111,9,151,27,29,97,168,180,44,27,131,35,174,42,242,116,155,242,234,211,14,78,101,52,200,144,228,78,17,8,67,85,232,153,130,76,27,71,143,28,21,91,38,111,80,57,217,142,91,133,0,100,90,201,228,198,214,252,164,59,121,6,231,200,188,146,255,32,189,252,244,199,37,183,108,188,24,113,139,145,1,225,232,79,245,108,80,206,87,77,171,24,253,130,227,201,229,21,7,209,146,131,2,229,138,131,166,170,53,129,76,95,139,135,21,171,165,88,84,139,62,253,104,52,114,137,0,209,193,111,244,25,179,44,60,227,5,120,155,105,70,79,150,187,69,93,204,134,231,205,76,100,175,12,240,61,182,117,210,115,165,156,164,36,30,42,254,244,76,130,117,50,106,166,138,132,59,163,255,102,21,118,120,193,113,122,145,66,81,26,227,152,134,166,35,155,0,99,137,87,160,162,145,164,8,7,170,36,134,62,36,102,231,163,118,42,15,227,90,39,187,46,170,249,170,227,126,214,107,31,147,5,20,171,186,198,162,207,10,221, -247,77,150,200,80,9,88,150,145,71,148,218,121,144,186,4,205,73,214,110,47,37,56,210,54,23,23,159,161,246,92,152,20,81,140,109,231,46,44,223,189,215,75,126,84,32,199,218,105,63,37,229,147,20,205,200,106,4,217,190,1,255,147,174,106,222,164,8,116,86,7,106,202,146,4,156,12,67,95,64,78,229,43,246,17,226,158,89,163,119,198,232,239,45,20,60,147,71,44,47,227,39,43,242,159,223,69,163,11,99,22,55,233,196,94,248,8,69,103,252,230,10,184,182,204,22,183,166,201,106,61,221,160,41,218,100,25,162,212,78,134,19,79,54,122,186,168,96,5,1,199,168,82,73,183,242,74,167,208,145,171,236,182,233,162,92,14,251,151,23,240,153,78,244,112,211,109,26,84,59,171,27,223,143,22,138,63,251,153,245,210,239,100,244,128,23,28,42,22,66,44,8,34,151,202,149,56,129,213,56,124,233,178,20,79,46,97,118,160,108,8,10,127,140,109,128,37,28,181,39,86,124,86,163,83,254,18,113,137,49,200,172,214,162,168,178,18,93,7,27,85,88,43,30,53,162, -247,32,161,198,48,151,34,61,185,227,156,31,185,24,213,24,84,208,183,23,35,192,33,103,180,163,73,245,228,99,162,136,243,20,47,239,212,127,153,39,186,16,112,196,212,37,86,241,93,96,196,91,29,80,85,144,168,178,20,164,190,3,85,54,147,100,33,148,239,107,138,20,106,1,73,135,162,19,63,116,65,237,74,209,21,42,108,205,130,167,58,77,39,128,160,122,225,29,231,127,51,111,5,206,186,139,242,13,49,255,234,132,204,199,58,61,138,100,116,188,63,232,45,69,86,112,107,108,219,9,31,213,182,115,1,23,62,171,230,55,183,230,209,72,103,204,51,110,41,38,234,16,46,127,140,174,94,148,177,173,13,124,119,214,198,53,240,83,54,93,155,165,181,228,128,177,97,106,168,190,146,152,108,16,196,19,181,54,105,186,77,124,185,46,131,214,129,85,150,224,49,53,254,67,160,217,201,35,72,68,241,130,15,104,87,202,136,88,120,131,109,144,105,138,106,16,6,3,180,115,127,20,75,80,249,153,165,195,75,182,190,140,25,35,85,248,14,180,129,145,154,198,108,229,26,120, -174,118,164,66,210,104,133,36,230,95,59,28,209,185,197,134,84,221,126,75,183,11,133,108,96,211,100,184,49,129,125,116,244,39,121,50,208,124,188,182,155,237,31,240,199,94,201,65,144,125,24,222,183,113,219,221,240,94,180,181,144,160,88,118,178,36,74,41,77,40,187,94,227,57,197,210,141,62,168,130,159,98,149,7,53,168,224,163,197,82,55,185,70,39,130,76,131,126,170,230,141,81,78,176,94,169,165,250,177,32,154,4,186,42,37,13,244,176,159,141,35,0,235,160,191,39,11,126,47,71,56,58,210,235,137,239,26,155,139,203,168,245,164,104,225,213,152,126,139,42,85,16,120,37,166,225,132,15,200,189,44,21,135,183,144,79,136,10,41,226,194,91,77,161,26,166,194,136,228,246,212,58,188,118,201,86,251,111,94,247,88,36,22,172,37,53,18,157,125,42,248,215,89,56,195,245,39,176,124,123,148,169,28,228,153,198,104,113,242,76,176,78,243,145,60,65,73,54,12,211,175,204,150,252,250,182,60,207,121,153,2,87,251,42,34,215,231,41,108,166,229,142,111,121,22,82, -48,225,198,68,5,2,9,213,185,19,152,242,86,214,74,102,50,218,33,228,121,188,109,135,112,227,141,198,208,28,120,121,111,78,85,219,148,223,4,241,36,129,214,37,109,17,7,111,87,188,81,235,82,182,224,146,113,193,176,237,115,249,220,183,64,235,59,97,251,107,227,111,218,141,90,67,141,202,36,248,184,134,168,196,88,136,177,21,94,166,125,199,201,36,60,68,107,243,51,76,83,212,97,120,128,12,109,232,233,188,212,189,101,118,29,155,74,38,3,147,248,171,185,134,171,13,120,71,108,106,21,90,102,173,94,125,250,61,241,8,76,241,141,205,211,123,5,138,34,111,209,241,182,53,135,23,234,59,129,128,54,54,190,92,254,89,167,190,219,123,73,53,37,93,71,86,48,3,114,69,5,52,40,179,138,95,232,47,63,174,40,24,35,27,151,251,157,83,29,77,182,192,81,217,187,254,221,33,222,140,116,252,155,39,25,246,86,128,120,41,105,232,188,106,68,103,88,73,112,49,92,147,75,60,6,139,91,254,102,43,190,126,188,97,68,40,18,146,175,114,25,211,74,67,122,62, -247,182,54,122,235,56,57,77,76,227,240,105,138,5,177,98,44,88,146,21,101,37,88,169,58,43,242,223,94,247,255,125,28,206,74,189,92,26,212,105,197,58,223,250,88,131,89,55,242,232,62,58,134,159,204,195,73,44,254,162,65,247,27,142,237,247,239,189,28,203,20,29,218,189,33,7,96,245,225,65,244,225,231,167,45,28,254,176,22,24,174,175,186,83,77,194,90,121,48,58,211,230,215,57,222,176,38,46,241,165,236,11,39,43,207,82,180,53,82,217,87,92,139,208,239,254,209,31,195,159,56,60,48,220,153,194,76,247,93,114,27,25,176,133,138,75,250,149,252,155,137,165,126,1,161,242,68,130,155,141,171,39,252,15,214,43,26,215,55,226,245,46,248,243,14,79,200,171,190,245,152,33,247,77,206,19,63,217,98,53,197,235,243,237,73,24,221,159,15,38,237,18,126,134,120,231,176,88,158,121,76,219,43,113,233,150,101,224,63,101,39,32,241,138,16,159,169,7,107,243,126,164,62,81,55,198,168,131,165,62,225,55,253,168,245,41,15,227,231,30,91,138,145,14,197,15, -172,54,238,60,98,211,62,146,151,41,115,178,127,25,169,94,55,118,225,27,253,243,15,217,112,22,122,167,180,46,0,110,196,201,12,21,114,40,157,108,11,134,91,65,59,15,184,68,86,107,230,158,4,103,85,67,209,242,29,122,235,8,102,91,131,200,100,241,165,179,116,253,253,205,96,182,217,10,83,142,106,246,110,200,180,154,118,139,116,16,143,171,200,36,0,14,208,140,246,119,124,67,225,82,144,71,133,210,104,57,18,141,122,35,252,99,4,31,69,193,62,12,164,129,101,208,10,194,214,32,0,106,193,9,12,228,130,109,208,11,106,206,32,122,148,24,41,209,163,241,136,57,170,143,210,206,209,94,17,116,180,26,83,91,61,86,73,86,30,125,251,91,210,21,185,4,200,51,191,97,97,197,23,244,150,92,143,126,37,56,231,38,139,189,120,16,72,63,218,62,251,139,160,71,177,204,83,156,137,73,4,106,191,158,14,107,169,184,150,92,58,231,206,28,101,37,142,167,104,186,234,195,147,210,253,176,185,51,237,174,236,206,168,237,233,95,205,76,87,245,160,181,178,103,217,15, -112,75,157,14,10,233,16,69,25,60,109,188,207,230,41,28,217,78,97,71,181,39,20,59,63,68,7,183,37,72,222,151,152,6,115,255,162,76,182,196,21,255,189,104,56,73,154,16,213,144,126,126,106,139,180,39,218,240,91,116,147,180,15,120,189,88,102,7,113,211,163,166,23,207,159,89,217,99,233,129,35,109,24,224,181,44,130,72,103,101,214,92,22,37,70,103,98,34,3,126,74,93,30,194,32,128,39,104,122,38,185,7,63,240,109,248,252,52,150,250,153,124,248,216,103,137,237,154,22,41,36,87,220,156,211,30,146,20,69,42,89,38,76,29,47,160,241,31,51,21,39,122,196,203,16,233,130,182,235,167,37,248,217,50,224,164,196,203,183,127,206,191,239,104,103,189,209,216,180,222,191,62,98,62,80,65,242,242,179,174,122,154,228,152,79,218,54,137,83,39,117,74,236,50,187,252,247,40,57,74,87,242,213,167,108,37,221,201,137,178,11,81,74,148,227,37,248,166,20,47,207,74,178,178,75,86,154,253,183,104,202,178,114,157,196,32,67,24,254,253,55,76,244,165,217,229, -120,47,213,139,212,27,80,35,214,73,118,88,125,61,214,68,95,184,190,143,173,238,120,72,217,43,68,95,36,17,251,208,176,182,62,190,127,128,69,226,238,98,255,22,170,92,121,43,248,54,195,124,59,72,68,45,175,168,41,150,174,134,236,94,144,213,140,213,107,80,84,21,168,86,212,246,13,185,57,102,200,244,186,247,237,226,210,194,233,95,238,76,87,253,96,182,120,99,25,27,16,168,111,72,86,233,136,42,210,61,126,204,83,211,51,175,111,124,224,42,49,221,61,225,107,116,45,117,29,45,161,43,122,236,204,133,227,167,135,12,35,150,63,123,220,240,230,153,66,60,121,184,69,240,105,82,156,200,39,231,108,244,146,132,27,81,154,39,252,246,146,91,236,200,241,39,123,176,247,216,176,230,40,237,81,46,18,235,212,92,126,146,46,56,231,116,168,41,202,30,100,160,206,173,253,148,63,32,197,158,91,175,215,154,229,246,7,228,132,109,92,89,169,95,131,45,147,165,55,2,108,67,195,247,65,121,82,35,146,112,226,33,114,253,213,94,127,210,106,154,34,47,229,39,93,200, -249,148,60,9,84,208,10,130,96,110,180,58,137,35,180,50,163,163,59,93,77,116,206,229,106,183,6,85,12,25,138,178,240,70,82,5,38,180,5,109,242,141,29,182,33,224,249,120,108,22,166,206,186,117,20,157,185,166,11,79,97,83,201,84,103,153,226,166,26,30,167,206,67,241,20,60,144,167,115,240,136,60,3,79,80,231,5,166,136,169,108,170,163,79,109,83,188,78,87,215,241,116,190,44,38,251,80,225,89,176,0,41,160,70,26,8,115,254,132,140,127,247,35,232,65,87,223,139,20,209,14,141,246,199,124,120,100,10,153,46,182,115,98,42,183,21,193,8,107,38,106,8,242,92,30,165,90,83,107,242,149,59,62,57,214,142,215,217,33,2,20,151,56,210,112,110,252,160,121,177,35,108,186,65,164,135,222,166,174,12,14,78,119,3,31,234,203,27,51,61,142,177,1,161,65,125,194,68,142,167,226,98,224,199,28,113,75,243,124,125,7,182,18,242,125,214,58,246,175,212,55,63,133,243,9,237,176,68,51,87,254,132,127,20,31,150,3,225,81,255,176,8,186,201,43,249, -52,27,70,255,182,199,51,127,247,36,46,47,205,223,7,114,121,252,173,247,34,87,114,135,82,58,60,136,7,187,67,44,103,5,81,7,75,71,254,251,78,145,6,225,7,191,35,249,83,18,196,183,180,60,110,236,104,150,187,169,237,133,145,135,241,222,53,127,86,153,8,10,162,46,240,197,52,245,34,136,36,169,92,16,83,98,221,163,251,6,192,98,169,32,19,40,146,94,228,128,149,16,148,241,103,144,144,102,211,44,102,249,103,212,133,159,167,73,19,202,44,237,110,77,58,163,55,4,148,101,193,5,70,101,197,105,51,194,54,194,13,18,207,192,195,8,89,253,43,191,99,97,58,246,212,61,53,243,116,98,30,140,39,233,80,235,29,75,71,211,225,116,116,158,14,202,167,240,57,234,62,162,207,224,19,116,116,129,14,162,35,235,208,235,29,91,7,207,211,241,178,60,158,111,42,226,105,248,60,205,235,126,141,255,162,241,105,92,180,163,5,64,206,217,19,209,59,238,59,221,122,31,253,33,63,230,251,67,163,213,147,251,13,217,31,116,193,182,72,104,58,4,199,207,36,87, -30,138,149,174,248,158,151,205,42,152,63,160,90,67,10,84,5,242,21,234,134,19,122,251,54,74,58,32,225,4,161,41,117,244,65,175,186,1,10,213,159,217,21,124,52,61,202,204,8,76,211,95,130,135,253,20,210,198,175,136,162,181,155,26,173,68,201,53,238,250,99,108,133,226,23,235,55,101,105,9,34,215,164,93,120,202,46,86,175,250,218,211,124,11,226,86,127,99,52,237,25,254,142,134,253,95,222,19,150,24,142,172,232,65,76,179,20,38,63,22,127,187,63,249,19,119,87,27,127,41,146,39,226,222,55,239,62,37,79,214,29,160,236,212,37,113,244,73,230,126,160,119,236,210,71,98,116,20,126,228,119,238,82,249,35,121,100,47,36,157,172,212,65,41,133,98,87,60,103,129,235,148,29,195,198,111,178,156,147,156,49,181,111,252,222,49,229,214,212,118,205,79,217,40,233,168,32,39,106,202,29,227,149,217,58,56,211,52,202,201,185,164,5,153,162,161,58,58,135,207,97,106,112,93,14,221,37,197,8,177,39,165,130,203,18,179,136,103,7,211,129,39,129,228,147,212, -64,54,176,13,138,206,4,51,161,76,196,80,29,17,194,135,200,33,184,46,4,132,208,33,82,104,143,12,17,66,216,16,236,51,132,11,161,66,6,201,83,47,209,203,244,82,99,93,190,144,44,100,19,233,97,34,95,226,94,156,124,184,202,75,73,43,97,141,98,111,20,110,26,125,120,186,90,76,139,61,115,56,96,222,103,187,230,175,33,95,233,73,157,185,45,176,79,202,246,232,233,182,230,250,214,22,74,92,85,32,155,152,112,19,0,126,40,30,165,210,36,186,80,138,221,114,118,242,10,37,61,32,211,56,138,7,187,37,90,200,220,184,174,226,230,23,150,234,8,246,234,51,19,57,146,255,184,1,181,105,37,142,236,141,133,63,163,69,156,60,160,27,200,121,43,148,216,209,146,199,165,53,64,90,238,29,102,64,114,6,234,230,210,67,76,241,252,126,234,104,70,80,121,16,203,31,66,3,91,243,60,126,69,139,150,241,157,144,100,91,66,68,239,250,95,133,157,76,180,36,197,250,64,172,195,214,164,217,242,64,175,249,52,98,202,42,74,157,240,249,225,132,248,99,233,70, -20,43,32,206,36,54,45,140,110,100,69,136,47,136,233,163,149,40,19,199,158,23,216,93,190,163,148,41,86,137,56,17,198,44,181,109,31,176,43,150,242,210,12,63,233,70,30,200,139,78,160,131,118,16,126,89,63,101,131,164,157,176,99,192,139,112,143,153,230,107,28,122,237,93,163,208,92,205,84,41,85,94,146,148,62,165,53,73,77,106,147,92,92,82,151,220,42,179,214,229,123,201,94,186,149,155,183,178,163,148,34,161,104,6,184,62,238,11,55,64,19,251,196,97,110,144,211,244,115,195,220,87,110,128,206,189,22,134,47,131,100,96,232,27,134,154,175,160,102,160,145,154,229,127,9,201,159,108,6,252,190,107,126,253,191,190,95,87,217,253,39,233,37,156,132,205,138,162,212,68,10,34,162,228,67,235,15,206,173,70,187,212,159,249,65,30,124,36,163,147,167,119,52,127,57,134,234,167,194,21,217,191,137,178,130,49,55,91,69,188,138,38,32,15,71,199,175,71,179,218,228,138,85,42,29,84,157,113,208,20,57,136,67,24,160,71,84,110,248,43,99,204,45,193,245,228, -43,244,83,41,184,177,87,130,248,157,151,111,106,5,169,181,32,241,113,32,53,204,150,27,188,114,14,159,150,24,74,249,39,76,56,228,105,239,186,218,103,242,140,192,63,207,205,80,51,250,188,126,178,156,3,127,145,246,201,71,15,159,219,167,153,181,219,119,54,223,207,228,77,159,107,134,163,183,107,238,9,185,111,100,79,53,127,181,176,158,152,179,228,219,108,109,60,73,103,205,247,144,211,42,14,66,164,137,65,181,221,114,76,125,31,98,146,229,169,248,156,101,223,247,70,154,152,84,209,220,209,96,13,69,78,184,225,240,165,206,156,148,149,220,175,220,240,107,68,92,129,129,180,196,42,231,219,154,227,75,197,169,48,238,1,140,239,182,11,115,167,255,253,108,148,140,242,247,136,95,9,52,16,7,2,9,172,147,136,78,129,19,225,140,208,235,148,105,173,83,147,92,28,73,135,202,193,42,59,92,187,195,174,176,131,45,137,34,98,136,248,96,18,225,47,7,208,207,193,104,57,107,110,157,3,234,185,76,78,155,227,230,116,237,156,55,119,206,161,209,185,68,78,153,27,231, -36,204,92,61,231,36,238,225,68,18,60,206,136,19,34,113,254,29,123,103,127,84,92,29,33,60,111,226,45,131,53,137,44,133,10,222,68,224,60,219,166,89,49,70,165,63,145,138,93,245,140,3,198,184,231,205,114,142,134,214,92,122,87,181,125,208,152,182,9,40,65,111,214,14,170,181,57,57,77,172,112,71,15,90,33,215,90,145,43,146,105,65,72,181,198,157,144,131,234,17,248,167,60,191,3,87,244,29,181,252,10,207,48,127,248,222,155,167,184,24,250,8,91,7,249,149,24,40,253,32,126,60,139,175,13,57,172,245,134,217,61,196,62,74,41,128,116,95,40,154,7,101,224,14,166,159,232,221,53,145,48,63,23,122,27,231,243,33,39,159,244,253,104,56,63,157,223,175,134,112,234,146,144,105,76,237,79,246,222,133,158,93,101,30,199,195,143,223,111,13,88,139,8,72,94,80,51,171,65,189,176,220,176,99,34,107,235,105,153,6,94,226,152,215,103,241,91,203,190,151,164,28,155,88,215,214,114,216,120,192,206,180,239,126,142,254,143,30,74,255,161,197,159,17,91,133, -74,171,200,217,95,244,228,251,133,78,196,129,91,3,195,172,45,201,36,206,56,13,142,117,254,213,130,36,81,125,24,221,195,247,48,61,45,185,32,149,212,101,245,187,180,46,47,75,202,210,169,85,226,124,217,51,59,82,230,30,174,190,86,125,112,55,220,13,54,125,188,228,11,63,32,247,201,95,104,242,0,232,103,190,50,146,65,166,159,25,102,190,152,153,255,22,218,210,64,219,215,30,203,209,105,37,209,141,119,83,221,103,164,6,213,98,181,100,184,21,109,37,74,113,215,249,34,220,249,127,15,37,36,66,69,113,94,117,135,25,115,174,105,53,74,204,103,149,89,166,85,122,178,111,165,212,155,25,34,47,49,159,211,57,213,215,216,86,173,161,220,83,56,34,172,53,57,102,56,115,55,154,234,72,157,201,81,31,134,236,148,56,210,0,52,236,171,124,68,180,123,68,57,10,245,175,168,63,58,219,67,122,178,66,252,211,167,185,239,37,94,101,133,250,214,83,248,122,146,223,241,192,250,150,75,89,132,222,228,9,119,255,249,13,17,153,90,225,229,94,251,211,74,111,194,179, -62,221,115,141,102,63,233,199,3,91,99,68,45,146,198,157,252,126,154,245,163,159,131,103,76,123,248,28,62,185,215,158,216,18,6,238,31,243,154,120,240,68,93,31,243,221,231,215,53,219,117,186,6,127,9,246,194,143,94,100,137,174,237,139,26,191,159,184,208,185,102,173,165,98,192,143,28,176,239,65,183,225,248,170,156,151,159,155,89,26,52,131,188,165,79,89,66,9,31,124,159,165,191,129,44,174,193,158,108,125,91,12,95,109,168,106,67,157,185,91,221,55,217,153,155,113,220,150,69,103,64,255,234,196,20,137,139,38,174,73,105,34,18,51,36,137,73,146,102,218,71,105,82,158,148,184,165,42,191,244,110,105,89,58,56,171,207,234,181,156,45,139,171,229,106,69,89,80,71,11,202,154,180,38,45,215,164,85,105,121,97,111,29,91,198,175,49,27,91,153,22,166,149,217,124,77,117,75,221,106,110,88,26,86,151,197,241,103,117,88,28,214,227,75,59,107,9,7,105,141,173,15,77,152,143,221,245,23,21,77,81,8,87,222,97,233,156,107,218,101,171,177,169,208,75,228, -106,163,28,163,84,122,19,241,216,80,207,184,96,156,123,221,44,82,123,213,81,181,35,107,123,210,125,248,77,224,165,183,109,246,145,42,93,244,211,121,146,51,8,113,250,235,242,64,14,97,129,110,64,118,131,149,238,136,197,17,215,141,186,97,199,135,74,52,243,152,7,190,25,113,43,59,108,7,220,93,171,8,200,179,59,163,21,247,78,250,148,94,17,222,197,195,33,150,92,168,230,177,63,253,9,29,176,90,133,89,126,118,242,195,234,251,209,242,37,237,220,95,245,51,251,138,134,163,215,175,27,86,16,142,156,55,116,114,51,81,45,175,7,46,50,101,117,35,14,191,236,2,236,250,6,12,45,51,218,206,71,38,92,143,205,242,43,39,13,60,111,176,33,157,172,247,152,212,67,15,48,132,165,132,159,243,163,229,51,21,66,189,14,254,161,63,151,183,218,226,47,113,252,1,94,101,168,67,102,94,109,125,95,45,249,1,63,238,130,213,22,180,119,122,131,105,248,208,183,154,22,211,240,227,35,162,139,218,208,9,188,46,129,73,144,219,240,182,19,104,163,219,36,45,22,70, -82,25,147,194,100,176,142,17,17,57,57,142,177,206,153,115,4,156,15,14,250,163,21,104,221,90,200,94,11,217,138,181,100,173,63,89,107,216,98,180,24,198,86,181,85,245,216,60,208,198,179,241,224,61,248,150,39,235,201,182,244,45,191,190,53,123,129,127,109,241,238,14,139,203,154,61,88,118,214,249,176,231,160,89,22,131,78,28,119,194,92,160,86,213,174,23,12,155,111,100,204,194,9,251,112,10,153,11,229,2,134,54,122,243,92,146,150,182,55,78,233,58,126,109,252,162,167,220,81,122,12,177,62,16,147,157,209,171,205,118,244,243,42,160,190,72,230,204,12,16,39,106,117,48,132,196,84,174,70,26,200,253,74,163,82,17,226,184,254,140,31,177,247,34,108,201,247,188,30,52,32,19,33,23,136,198,196,222,42,16,90,78,246,135,131,75,150,61,121,139,54,251,151,44,123,16,199,235,148,38,20,57,184,168,37,88,186,55,222,42,27,170,103,180,67,1,59,0,142,5,249,138,180,176,111,67,184,12,128,230,103,191,126,225,154,216,40,216,155,114,207,51,185,215,65,117, -146,71,53,21,215,194,8,106,143,107,246,187,169,21,93,24,223,35,154,71,217,141,184,223,35,202,4,207,167,233,43,128,217,98,10,158,119,207,223,48,64,216,118,168,63,212,2,214,131,53,172,67,201,51,234,135,51,46,172,5,12,143,168,255,198,137,89,73,67,86,170,34,32,163,5,4,15,107,179,50,124,125,38,66,24,232,46,188,170,14,192,1,102,156,87,230,182,249,166,54,199,27,178,6,157,1,49,53,240,12,29,131,15,101,184,228,130,28,11,31,111,229,90,184,214,182,213,255,110,245,88,61,150,203,135,229,98,61,91,209,150,20,214,130,93,67,107,72,182,130,214,138,149,106,21,85,173,191,87,223,235,111,196,107,98,173,88,235,39,235,170,249,50,12,12,205,190,102,248,251,245,59,40,253,246,255,134,127,95,179,46,190,229,182,46,191,218,216,132,13,203,205,221,57,249,182,221,162,255,73,21,159,46,178,137,69,198,144,159,60,23,158,69,87,33,158,24,129,143,200,3,167,191,172,58,192,204,103,103,4,176,161,49,85,90,210,118,24,90,210,230,8,174,200,91,177, -43,84,153,130,149,118,74,222,16,45,15,186,108,141,21,113,65,21,232,201,125,73,31,210,219,29,121,250,123,41,246,204,205,58,45,133,77,203,167,55,122,41,67,234,239,222,76,118,16,98,24,191,20,163,212,143,248,182,76,227,115,13,69,114,170,57,238,127,202,63,235,94,197,55,207,129,201,168,67,48,60,138,196,113,248,218,39,141,247,231,244,213,59,48,195,167,232,39,86,244,132,182,233,183,128,185,127,102,22,187,252,83,47,186,133,139,136,247,211,97,232,213,116,244,116,209,223,74,144,184,103,5,71,109,247,103,37,126,48,162,154,171,205,67,225,127,4,223,207,172,147,130,189,236,33,185,208,93,156,63,34,187,148,85,56,201,188,163,142,154,229,186,27,250,71,18,47,230,212,146,102,172,166,192,132,94,118,95,36,173,140,95,133,110,194,139,217,34,127,52,170,2,80,48,10,42,48,129,77,176,17,100,5,45,157,96,58,231,133,28,31,173,221,11,196,22,156,216,202,35,88,118,22,140,192,226,179,176,13,117,196,229,118,153,15,226,131,14,70,150,144,45,5,92,189,160, -41,120,94,142,91,167,48,129,38,226,210,80,95,10,150,129,37,98,169,147,45,233,75,219,18,95,95,234,76,60,147,207,52,197,152,84,5,86,193,37,134,201,145,114,194,157,143,190,146,93,31,243,107,107,120,180,72,190,190,139,80,213,4,8,229,239,24,151,117,191,219,239,28,14,39,224,112,56,234,142,154,163,8,214,198,181,81,77,137,168,185,52,111,154,69,229,167,43,177,36,31,204,174,13,223,86,218,8,10,54,57,157,167,9,148,214,60,235,134,111,217,101,12,40,145,4,40,244,75,236,107,106,125,164,78,162,175,224,154,242,83,186,125,6,145,153,212,154,112,221,211,24,111,7,186,125,155,200,253,200,44,34,26,122,254,177,182,58,82,229,39,114,250,54,7,177,180,191,148,143,226,52,82,90,55,44,201,221,109,93,153,117,118,235,241,165,124,11,143,96,210,35,59,156,67,191,23,105,207,26,201,112,242,7,194,241,251,21,209,99,175,67,152,224,209,24,248,235,223,211,61,156,61,32,30,6,81,175,231,249,205,93,40,125,87,16,56,58,122,246,83,207,140,235,160,142, -248,222,121,38,11,236,15,136,218,205,127,250,3,82,195,197,38,168,72,157,176,107,162,243,139,155,176,147,127,180,109,209,207,73,181,202,13,223,94,91,236,15,188,168,147,137,148,93,189,167,249,88,155,251,189,72,16,168,188,35,174,4,55,200,214,9,216,8,54,157,141,175,179,121,106,140,154,165,158,146,213,34,53,28,107,133,81,24,7,251,129,112,232,232,93,162,121,75,208,170,124,180,130,158,128,231,182,242,32,61,113,79,204,243,50,53,195,23,24,184,83,229,5,219,41,97,59,109,78,248,19,1,119,122,123,65,119,162,233,78,211,23,120,170,19,207,115,253,237,47,159,195,233,215,116,208,77,154,189,72,57,246,69,212,182,21,197,52,14,134,121,182,211,114,218,135,131,119,124,186,153,78,69,222,139,176,183,212,219,91,53,30,135,229,63,18,249,76,61,250,149,40,180,179,19,130,140,128,138,169,206,164,205,76,48,106,102,12,212,158,172,237,76,111,224,144,96,237,104,15,170,144,26,23,48,201,111,96,201,19,45,223,16,242,19,38,225,158,89,206,18,50,191,25,124,72, -80,62,9,221,54,219,115,115,77,200,88,56,193,189,247,246,78,93,22,129,123,210,189,78,123,113,164,16,199,14,222,119,177,172,120,198,145,142,173,39,193,94,111,182,206,92,37,251,209,58,245,62,70,207,152,19,81,218,122,7,169,113,43,26,150,175,158,200,199,230,229,33,128,167,254,84,254,164,110,121,15,202,170,249,23,15,139,159,209,219,225,179,255,196,60,221,167,65,241,43,172,236,48,31,252,237,201,60,8,191,92,205,254,193,63,45,251,254,79,210,159,201,163,190,7,127,222,47,210,83,45,212,115,32,249,9,55,230,79,91,15,189,120,90,231,135,111,252,168,27,251,39,250,195,203,122,202,128,254,212,124,174,77,253,143,136,31,168,52,17,71,130,153,72,209,9,40,8,10,157,130,175,83,120,20,140,155,229,214,145,221,34,55,220,77,99,178,1,54,151,141,254,81,80,26,2,151,224,16,66,11,60,93,79,208,115,191,123,16,47,196,61,160,252,36,59,13,78,140,236,137,113,170,158,236,39,255,63,158,94,76,29,95,100,101,95,88,234,78,255,49,133,59,241,95,120, -63,173,223,79,190,147,207,227,78,163,187,126,207,97,189,236,247,81,216,160,108,190,15,124,13,155,89,50,122,1,35,124,216,133,12,161,28,182,64,26,131,121,33,9,102,220,147,156,206,58,19,198,84,142,209,99,175,114,192,77,24,241,244,13,95,56,114,165,77,180,182,178,29,140,77,129,145,108,45,57,15,182,208,15,46,231,99,136,20,59,226,87,117,135,24,158,82,235,3,57,193,234,119,41,107,18,240,82,205,7,251,125,97,200,184,161,123,97,71,26,122,198,68,118,89,248,231,118,110,139,82,31,124,243,174,31,125,74,174,248,73,148,172,184,182,187,234,100,92,215,248,236,143,73,172,222,116,188,86,126,63,51,243,19,133,198,206,99,120,197,213,75,163,8,15,214,23,88,4,66,145,213,216,202,181,243,110,132,175,43,202,17,146,173,180,240,34,192,17,200,86,156,8,77,58,110,225,5,138,21,47,2,107,35,216,184,174,108,133,100,70,246,8,55,64,100,224,120,137,47,106,196,124,218,94,35,95,52,143,87,129,44,66,67,2,145,17,229,72,44,153,47,252,211,71,124, -180,111,219,19,123,191,50,247,63,147,97,124,237,73,122,250,30,249,219,148,126,123,63,141,78,163,143,19,248,66,237,196,168,157,28,39,231,105,47,59,237,79,164,23,160,220,41,119,50,156,12,36,207,194,179,64,152,176,48,147,218,196,46,184,77,26,243,50,188,132,137,168,117,145,165,167,233,113,66,58,79,72,17,2,31,142,250,131,248,16,60,2,15,29,2,46,131,211,225,182,58,28,15,215,61,120,15,157,239,129,121,168,30,172,123,200,21,34,195,220,132,218,145,95,36,139,62,186,95,87,132,9,69,19,204,11,222,127,245,244,243,254,76,186,152,38,52,153,251,116,1,44,154,10,142,121,138,124,100,31,139,135,121,234,120,120,188,141,78,15,35,100,2,4,241,198,26,121,129,118,222,54,83,228,155,105,35,189,171,178,26,160,27,188,21,40,183,243,49,59,74,133,43,224,99,127,229,176,137,204,252,211,48,104,19,159,168,127,211,194,134,184,119,73,195,207,105,97,44,159,208,73,40,140,215,119,236,82,47,2,110,89,251,9,168,46,83,5,241,3,106,210,87,136,177,173, -155,96,95,108,23,175,56,230,177,117,33,184,19,77,206,147,219,102,255,113,206,189,132,44,138,152,126,13,189,3,172,253,11,243,188,169,159,102,194,101,19,190,60,149,187,35,74,241,136,254,42,99,102,58,230,130,44,249,7,15,103,202,65,41,61,98,216,132,242,150,252,229,199,62,233,2,159,116,71,144,218,99,245,24,211,151,254,197,75,49,51,25,154,203,147,236,24,216,82,176,28,35,4,117,146,93,90,177,138,210,44,235,39,246,234,62,161,102,209,94,180,113,165,86,113,168,31,160,192,232,74,218,30,104,197,253,194,71,49,78,196,12,229,6,210,26,220,156,70,165,83,25,176,18,181,68,47,209,74,15,70,233,171,217,111,14,117,238,47,247,192,221,119,55,135,246,93,63,241,19,239,205,82,179,200,12,92,165,60,43,207,250,186,186,30,87,167,53,102,141,89,249,18,171,196,58,181,86,3,43,53,160,0,70,56,112,4,124,227,190,1,22,30,96,225,88,64,3,7,54,94,83,3,112,181,112,46,192,113,249,29,62,255,190,254,6,159,73,55,28,249,199,254,163,92,79, -139,136,209,242,51,104,102,56,5,10,217,181,216,45,88,59,131,195,232,48,56,172,121,71,222,65,172,145,226,181,93,109,95,115,128,140,58,88,3,153,32,248,55,26,143,20,35,119,250,245,251,163,119,212,94,67,114,128,62,217,172,202,137,140,0,125,3,69,188,229,175,32,144,6,103,59,50,226,207,131,179,126,200,143,178,213,215,9,117,135,255,106,210,239,203,126,8,121,154,68,28,139,125,179,84,250,160,93,76,251,51,152,252,65,21,154,15,196,132,230,30,160,70,219,87,179,39,219,92,98,230,125,224,232,221,214,194,239,207,47,233,178,254,221,27,76,217,151,192,245,17,68,246,176,183,31,196,254,7,247,151,113,35,14,219,113,244,153,9,143,196,192,141,151,254,139,3,183,232,233,12,245,116,242,13,141,86,4,4,6,201,13,183,234,199,82,22,156,152,17,59,172,38,241,216,15,238,147,26,51,41,87,117,233,24,248,148,237,110,239,14,123,28,137,90,99,113,97,112,28,88,241,113,154,95,84,10,242,172,248,15,213,114,183,114,52,78,130,190,55,70,64,69,216,128,153, -209,145,58,136,201,95,97,9,35,5,224,82,99,172,18,219,196,96,248,88,54,166,139,77,235,136,14,194,135,184,32,116,24,68,18,161,66,124,195,16,44,68,3,225,66,164,15,8,242,45,232,89,63,253,43,255,122,255,21,53,207,18,179,56,63,194,70,67,226,164,88,73,149,215,168,106,142,130,35,227,232,84,160,18,148,131,106,88,77,82,83,116,101,93,152,170,43,237,42,187,242,90,77,253,239,74,77,39,171,169,90,210,150,114,225,201,75,176,194,155,191,120,58,174,224,205,175,34,54,46,226,127,184,253,166,184,75,184,19,238,4,14,254,194,177,120,209,102,116,57,114,181,124,141,88,155,147,106,59,112,15,58,54,224,139,184,17,115,180,3,255,17,167,112,83,211,153,244,146,218,82,183,67,201,57,250,215,70,187,36,214,11,244,55,212,223,246,197,44,154,242,200,61,164,45,221,161,108,250,77,229,208,18,191,239,113,131,45,206,193,38,228,189,147,143,127,55,74,251,149,110,58,113,231,214,209,224,143,157,42,78,94,232,198,97,122,46,234,191,66,17,86,208,10,70,54, -106,195,227,13,138,93,99,169,159,111,1,37,247,100,101,62,237,195,117,80,121,176,63,58,161,45,68,121,67,136,169,137,59,91,102,166,223,209,250,223,25,244,169,186,192,163,229,59,20,150,95,168,250,95,246,192,228,188,24,51,101,198,191,61,134,246,123,150,46,40,61,41,235,66,250,37,201,144,144,243,143,26,76,237,66,191,145,69,82,76,187,27,116,252,247,114,89,54,132,84,25,92,142,62,81,158,130,18,216,177,32,88,4,83,105,126,91,102,139,141,152,202,180,143,70,146,241,33,191,11,151,6,210,56,141,22,167,1,244,56,61,0,206,112,47,0,124,13,142,15,240,95,163,212,198,181,129,215,248,2,188,56,31,224,187,236,86,140,21,117,117,232,179,227,127,41,113,68,44,139,80,165,28,37,71,13,234,36,160,2,84,9,164,104,129,82,32,175,72,42,48,69,69,86,81,85,164,145,138,178,34,175,168,43,58,73,229,117,165,171,114,254,163,175,22,119,25,165,66,132,31,117,196,33,97,97,138,248,218,59,232,131,243,83,235,80,221,207,129,23,89,66,199,188,245,143, -174,154,177,70,251,71,23,169,70,196,190,200,218,129,78,144,95,27,213,71,224,136,25,24,141,20,74,133,43,13,46,233,159,18,87,97,151,174,223,226,125,101,140,240,62,216,16,115,64,171,82,241,163,127,232,71,148,137,188,22,200,101,200,225,53,103,184,208,191,177,119,102,61,27,220,29,75,36,9,59,8,191,240,116,250,1,45,29,127,136,218,92,235,249,166,246,70,147,110,3,249,30,159,178,13,98,240,204,146,18,174,156,43,204,221,118,115,31,194,76,51,200,57,209,214,127,70,3,129,119,168,139,229,15,3,143,181,35,40,214,79,133,241,241,54,8,75,31,215,77,127,203,126,178,91,88,43,20,146,30,96,45,41,230,223,247,106,210,67,14,155,243,36,11,12,255,155,115,142,176,190,65,38,252,7,247,58,103,149,60,201,241,18,207,109,206,113,45,65,124,16,151,229,185,252,28,211,185,108,85,203,223,104,66,30,200,166,230,141,31,148,215,138,94,87,83,135,203,241,174,179,246,104,194,230,117,196,135,20,80,89,9,141,95,96,226,160,250,11,78,8,218,191,64,130,72, -56,40,15,229,32,3,68,51,64,243,23,4,7,72,128,250,120,1,22,68,72,205,82,177,20,30,142,88,34,150,180,5,150,179,196,52,73,77,1,230,201,120,18,138,188,66,242,166,72,57,138,142,72,221,145,118,228,28,49,131,46,107,72,26,10,142,168,209,145,113,212,83,252,180,17,155,102,167,93,125,97,51,230,71,93,90,114,28,61,2,11,134,253,143,195,229,54,63,181,15,165,125,189,180,174,30,202,155,74,111,87,178,84,45,101,55,162,98,47,57,171,214,114,201,85,177,149,106,213,82,147,214,164,86,25,117,218,163,76,103,49,232,52,80,79,167,82,63,193,207,44,107,68,90,233,164,99,218,151,23,195,130,100,99,62,143,89,119,30,65,141,139,229,23,15,56,41,151,14,195,219,176,250,57,138,117,78,6,202,178,210,95,47,146,220,190,17,15,26,115,65,22,70,205,99,207,83,116,239,224,171,219,225,100,125,74,99,81,236,59,220,30,141,204,221,99,115,236,50,23,126,27,137,185,39,78,176,248,140,183,204,103,238,38,152,85,5,139,5,244,89,247,138,199,50,130, -250,129,129,138,153,64,164,61,24,211,205,180,19,65,14,93,21,33,213,154,43,7,138,153,91,102,48,83,247,143,52,79,97,0,102,0,251,160,231,92,211,180,16,147,222,76,119,37,160,53,50,32,3,87,69,125,73,168,15,7,52,64,152,82,136,112,166,231,96,213,117,132,24,12,72,173,7,138,84,49,227,220,19,220,202,168,192,154,185,254,155,165,154,9,57,229,136,16,221,88,107,238,218,11,91,163,95,87,157,107,24,105,109,92,7,173,72,152,85,110,101,88,237,86,24,193,170,183,242,173,126,152,21,91,86,151,217,101,152,187,76,41,155,105,159,22,241,67,6,143,69,67,161,24,42,134,146,163,134,26,136,254,66,21,10,217,33,27,180,129,240,71,8,15,189,189,176,212,67,122,104,6,205,62,32,254,11,239,208,181,3,249,94,112,13,129,37,14,58,0,243,95,90,82,2,245,168,31,55,17,226,31,97,229,240,190,188,174,28,74,7,102,117,83,222,85,86,165,186,187,106,47,59,43,86,88,201,85,181,149,29,149,135,133,218,100,84,233,245,58,181,204,104,208,42,84, -10,200,160,2,127,49,65,15,224,15,232,243,4,129,31,116,104,45,196,39,173,254,137,232,121,187,118,153,185,58,16,64,86,248,2,209,213,148,13,69,75,248,151,21,75,196,145,187,99,181,220,139,111,213,225,58,180,67,38,156,163,38,149,216,3,183,159,252,159,214,33,156,152,174,251,52,187,116,231,36,124,218,158,222,153,93,108,189,91,25,127,215,237,220,40,10,37,91,222,183,192,25,158,250,148,123,82,44,195,138,37,150,107,30,16,235,150,162,135,179,234,179,44,211,76,135,166,209,141,144,46,166,118,127,83,155,112,198,140,58,250,218,27,62,253,147,30,192,75,3,97,250,79,166,215,146,156,51,185,144,202,92,36,172,195,163,133,245,234,165,9,192,205,113,20,183,211,227,138,20,234,166,47,121,77,160,37,243,35,251,185,115,5,52,161,100,84,15,104,16,106,118,218,52,161,118,149,94,19,226,75,51,50,131,61,58,246,11,254,167,76,235,210,154,76,84,147,249,77,255,102,126,37,105,78,154,147,225,164,163,156,76,43,221,202,180,26,233,22,224,199,249,1,243,191,233, -138,187,126,2,103,220,25,64,95,96,56,58,137,70,34,64,53,25,36,131,134,16,227,14,85,94,176,67,152,45,180,85,224,21,89,153,34,171,208,189,0,77,21,83,5,79,193,195,41,58,47,248,20,122,31,116,109,169,66,113,204,156,221,18,149,81,47,7,134,187,246,15,241,249,20,213,38,151,72,165,245,179,186,46,31,42,155,18,98,87,93,149,143,149,173,238,191,42,115,85,224,182,146,173,234,40,91,238,116,55,181,74,43,211,175,13,106,133,49,191,7,47,204,1,7,183,55,65,212,222,92,35,13,72,233,4,85,68,247,96,222,222,186,39,246,42,71,40,200,79,219,164,163,183,40,162,54,188,55,155,9,2,84,6,26,49,254,43,198,195,11,228,188,132,243,83,233,165,147,107,70,123,111,221,46,141,94,232,27,221,40,18,241,159,2,38,195,112,239,234,13,213,239,240,224,224,34,168,142,118,39,229,231,32,94,237,132,201,222,23,45,163,15,60,104,169,240,249,217,51,112,118,160,120,37,127,128,172,93,92,186,216,133,233,15,230,228,243,141,250,8,78,220,153,48,239, -237,34,175,136,241,98,127,107,39,173,96,209,76,221,215,197,51,169,42,138,6,130,94,176,75,244,49,122,122,40,121,193,76,222,205,138,63,106,40,117,9,245,39,216,1,79,113,231,236,119,140,202,80,145,68,71,64,131,83,187,131,105,101,220,50,62,111,196,45,13,165,41,183,134,215,58,45,101,82,102,129,71,89,64,37,179,28,249,115,228,2,218,204,158,156,232,205,152,82,165,82,174,84,143,97,138,177,108,172,26,75,35,19,229,68,62,81,79,116,146,137,98,34,155,168,234,19,233,68,217,151,247,97,106,154,132,166,160,201,234,189,56,231,132,58,129,176,22,197,58,0,6,25,248,32,136,31,165,71,153,232,40,195,74,179,50,44,217,107,170,103,234,233,104,61,227,76,59,51,206,206,107,58,148,164,109,155,210,155,31,96,33,83,98,29,132,115,16,229,131,94,54,79,182,0,187,48,75,255,197,76,80,191,215,216,228,252,123,153,156,52,102,191,214,175,241,106,125,4,77,75,251,174,105,107,3,29,13,39,195,79,115,139,153,233,235,160,205,18,139,79,79,219,15,99,66, -28,80,166,155,43,83,253,24,32,205,151,189,4,195,162,255,30,245,27,124,132,196,18,45,216,122,190,45,134,226,144,15,217,224,103,188,160,202,193,168,7,191,211,248,17,151,71,214,142,178,87,221,173,177,109,163,242,101,101,186,195,173,205,58,99,183,253,169,236,4,205,42,88,79,93,206,143,183,32,250,254,166,174,106,177,199,65,91,12,15,230,143,15,81,32,51,252,220,78,126,221,129,19,243,248,228,119,37,105,75,228,227,194,38,159,172,173,149,123,0,73,27,223,104,155,153,241,10,247,185,247,81,79,45,220,90,185,69,148,116,179,255,126,235,3,252,51,43,147,3,108,159,64,209,193,205,157,109,236,116,151,150,23,73,184,252,17,38,205,237,210,236,86,174,212,150,165,100,136,12,46,141,33,147,114,173,182,87,227,53,49,178,233,28,145,219,166,219,182,49,46,181,77,15,231,203,57,157,134,248,67,117,65,107,139,93,105,163,196,137,2,98,12,194,108,38,78,143,160,26,100,215,226,197,78,164,147,238,232,114,157,88,39,219,73,214,59,133,78,180,147,233,232,18,157,124, -54,158,125,67,103,83,217,162,46,162,139,164,117,144,45,103,171,116,82,32,100,160,120,214,58,20,0,2,142,140,161,158,17,104,3,90,153,86,71,159,216,38,248,137,174,62,225,77,124,19,204,68,167,154,176,38,174,9,25,61,49,105,23,21,63,34,145,249,160,95,21,84,28,215,206,30,186,177,26,63,157,230,146,239,226,187,152,219,129,116,32,28,55,199,252,238,8,212,130,181,110,171,246,81,19,128,66,208,58,7,23,160,97,100,124,27,229,70,164,17,113,128,249,107,203,175,21,185,41,26,233,41,56,117,42,13,195,96,1,211,118,41,102,249,138,239,202,1,253,201,210,88,153,1,37,48,76,138,174,6,170,180,163,38,90,194,241,93,141,56,21,254,166,202,36,9,55,89,191,83,235,84,124,116,52,61,82,201,150,61,35,79,155,205,187,253,5,93,255,254,131,78,125,13,142,57,167,248,107,249,222,151,7,156,123,101,145,188,217,217,239,201,208,119,230,74,12,188,68,166,121,90,217,142,133,207,175,158,152,15,238,191,67,135,220,199,141,124,50,191,217,37,71,198,147,141, -219,132,165,199,237,198,156,167,95,209,115,254,232,51,43,189,194,219,247,209,209,204,184,35,230,205,152,96,238,189,18,231,25,155,218,158,17,41,175,240,249,24,109,107,102,122,234,235,219,236,132,28,253,225,9,40,241,156,202,161,228,67,44,151,28,209,46,219,134,35,132,26,5,133,252,198,154,60,214,246,74,105,111,38,43,253,131,165,131,207,121,245,54,169,172,204,46,105,20,38,157,9,232,50,13,75,166,97,68,140,13,141,55,1,189,141,60,149,109,13,149,45,232,78,102,27,186,100,163,144,140,38,51,245,100,34,153,79,198,147,248,183,100,42,89,84,69,96,170,244,75,183,114,190,90,204,215,73,17,107,2,77,45,38,225,42,184,175,240,40,101,50,193,52,187,155,102,103,192,116,45,29,170,101,106,233,70,198,117,79,187,50,174,215,200,238,210,187,204,156,160,16,28,255,229,45,57,186,151,129,7,81,145,165,128,41,228,188,151,125,101,31,142,230,235,119,164,157,40,141,7,231,61,166,161,169,172,167,19,233,150,89,19,148,45,224,201,248,195,230,215,181,105,172,143,89, -14,29,149,168,98,232,23,154,248,190,175,72,56,29,80,134,137,225,99,54,68,101,95,246,174,255,6,239,145,186,93,85,83,154,198,2,61,161,197,70,33,154,62,47,242,204,171,42,56,149,84,133,34,231,51,145,6,246,52,165,17,73,57,116,131,74,92,241,207,63,88,147,239,34,191,217,246,103,219,211,113,159,234,61,177,204,231,106,78,56,250,230,224,170,169,211,129,201,248,52,89,66,226,242,157,120,27,70,86,254,192,13,121,221,155,87,127,137,229,77,112,135,135,223,2,250,35,23,4,154,125,239,32,213,159,69,159,201,135,56,253,188,210,111,127,233,167,232,214,16,103,194,111,143,248,198,46,166,134,35,15,106,171,194,166,133,179,15,207,121,80,141,153,188,79,242,173,144,216,176,209,31,95,15,29,230,12,223,28,81,31,170,194,35,180,34,102,194,100,217,147,115,99,88,173,90,254,51,251,224,158,181,238,77,117,244,147,41,18,188,137,213,3,184,225,169,20,210,184,137,94,170,204,8,169,59,81,72,22,76,215,44,218,203,212,112,118,23,91,178,247,42,68,66,25,39, -253,161,99,191,77,168,227,238,208,19,250,189,48,172,87,237,101,123,221,48,47,197,107,246,138,189,186,112,27,214,150,180,169,245,182,229,149,22,52,109,4,135,123,18,3,182,76,29,190,195,239,120,59,140,110,71,206,137,114,180,121,29,152,115,231,232,46,83,215,37,117,145,93,70,215,72,232,250,41,100,175,41,209,94,216,252,163,99,102,60,7,20,180,180,149,189,27,185,51,5,196,194,3,139,184,147,234,172,63,6,211,231,236,144,60,29,212,69,242,197,122,42,241,86,111,199,219,249,76,162,156,205,68,163,61,19,78,168,183,226,244,38,246,76,121,187,102,40,34,15,153,163,104,212,18,50,93,44,11,32,54,8,219,131,240,145,150,65,202,229,190,171,191,121,154,168,105,195,5,179,236,123,196,17,71,101,45,21,250,39,21,166,225,44,12,53,98,201,197,64,188,4,71,20,84,49,223,152,7,93,127,22,107,164,51,39,245,241,222,27,55,193,32,196,204,231,165,195,206,87,115,124,133,81,89,213,34,219,31,184,50,146,88,184,197,86,216,192,141,125,150,134,55,127,199,238, -249,70,66,134,71,223,98,165,85,69,53,172,190,197,242,213,195,66,120,172,118,119,237,83,34,112,227,159,208,176,223,4,31,122,22,102,201,234,41,86,34,52,229,19,170,24,98,63,96,136,175,88,57,209,114,176,80,192,125,222,98,92,252,207,4,189,223,244,241,232,153,4,92,86,56,212,208,164,140,142,226,227,49,159,90,97,49,116,227,120,249,32,182,11,88,162,253,10,177,68,102,125,107,114,101,142,136,93,57,199,108,37,10,130,221,208,204,113,240,54,166,79,64,212,112,56,60,12,143,207,150,131,230,223,180,230,87,251,155,32,41,157,236,200,1,241,139,72,208,32,42,250,253,201,217,239,233,71,218,145,113,164,134,143,255,45,40,117,42,133,78,161,81,24,79,202,107,65,160,17,140,140,183,29,77,193,150,33,249,75,121,92,245,166,210,165,92,17,87,218,4,213,77,177,80,54,148,12,233,10,161,104,40,19,74,48,67,249,80,60,244,246,152,241,111,100,239,7,124,190,19,181,211,184,185,178,173,202,219,25,3,117,230,80,71,44,17,5,193,129,168,107,128,223,168,36, -39,185,199,93,168,29,152,78,252,196,83,108,108,58,86,246,198,71,188,221,72,155,103,153,139,110,208,198,202,252,65,182,167,240,113,19,160,50,5,126,33,172,66,161,1,23,219,48,81,92,123,79,107,3,124,143,11,85,172,52,172,136,5,119,134,151,177,206,185,45,231,231,7,146,232,150,244,5,138,99,177,148,72,50,65,244,20,50,228,68,46,12,149,71,180,173,217,78,120,163,243,103,187,9,19,250,24,100,184,45,3,246,31,142,202,151,24,1,42,178,77,249,112,202,63,109,27,239,95,92,188,94,201,49,189,203,112,149,95,222,224,240,197,231,102,219,236,94,237,51,129,255,34,62,79,211,168,96,234,230,223,65,97,154,0,253,124,91,255,128,174,79,201,201,143,55,87,191,110,239,6,170,113,41,111,122,196,131,168,53,162,31,159,72,137,63,173,72,66,58,9,19,118,208,92,114,6,160,181,46,49,3,107,127,229,64,126,109,74,36,163,125,105,227,6,173,217,86,75,89,75,46,11,112,108,23,62,145,177,198,109,239,2,230,16,149,64,159,241,111,32,27,77,12,45,60, -38,16,74,0,84,56,141,57,142,101,170,53,84,165,6,124,79,203,111,243,178,26,63,73,200,53,117,5,152,7,141,50,14,221,212,73,4,202,254,28,231,106,174,90,143,217,51,94,123,209,92,180,24,13,136,209,162,52,40,45,164,209,64,175,9,210,150,20,26,5,122,163,221,184,38,27,110,200,54,218,52,71,155,17,126,244,54,138,190,129,58,112,10,78,113,32,15,228,131,239,96,249,29,244,191,224,42,94,91,82,203,219,131,226,11,140,80,7,219,124,76,105,229,45,140,111,127,2,230,206,168,51,254,168,31,86,208,39,237,89,121,12,22,204,25,33,103,90,153,141,180,139,25,245,227,211,136,72,149,220,71,230,24,188,90,133,31,10,143,118,162,255,138,118,21,217,72,164,28,164,9,251,139,48,249,117,112,204,160,78,71,148,170,187,49,37,45,235,218,166,124,156,128,197,52,62,166,214,44,75,1,0,181,139,187,163,147,233,15,191,164,188,148,23,115,155,0,43,207,251,5,53,234,194,249,72,195,231,120,191,116,189,185,81,209,83,108,80,255,54,89,183,240,73,219,158, -123,164,32,32,169,12,143,119,252,100,104,48,57,73,40,71,187,131,82,140,30,189,91,23,210,44,219,110,143,221,43,92,31,122,178,32,199,145,187,206,94,15,255,218,106,20,44,106,158,132,49,91,235,12,199,206,164,236,95,105,241,136,204,171,198,63,117,240,134,30,199,65,74,105,23,74,158,21,227,42,152,40,150,67,146,70,22,220,155,203,161,232,153,101,153,215,76,159,242,155,120,147,68,102,41,154,48,203,132,159,142,173,217,162,54,60,101,152,100,99,110,214,94,24,88,2,129,244,25,208,111,240,28,131,206,92,189,247,192,216,197,6,218,176,6,179,177,134,239,231,35,175,190,245,150,49,251,70,89,165,92,163,197,199,180,178,250,136,169,196,226,104,134,107,57,145,49,146,221,141,30,161,62,13,246,96,240,108,52,43,205,246,97,89,90,182,156,181,102,127,215,89,0,159,193,107,101,161,10,104,127,225,119,11,94,210,132,17,161,6,102,17,136,132,46,161,227,41,125,74,140,82,85,87,178,148,46,37,89,137,48,41,23,89,63,120,140,105,151,229,136,196,108,153,188,108, -77,170,192,90,232,136,31,142,143,151,127,169,47,20,70,84,222,67,210,113,246,26,39,174,110,17,50,169,99,201,73,120,189,141,140,39,104,95,39,92,135,54,19,173,177,219,48,174,224,71,45,64,103,49,7,223,101,10,145,3,213,174,1,133,82,67,179,233,180,98,186,25,65,201,169,210,111,66,186,128,63,40,78,211,46,204,24,189,181,209,147,9,226,246,247,71,95,46,224,142,188,186,61,15,22,105,20,233,53,214,110,12,21,148,214,41,210,190,220,27,127,214,27,86,171,124,55,116,191,150,188,176,157,205,13,69,70,94,139,170,96,127,208,203,195,12,81,208,63,89,40,225,220,215,111,184,149,186,31,5,72,76,175,255,205,239,14,174,104,189,121,179,46,214,166,178,99,155,122,38,223,79,4,187,196,44,209,39,110,65,230,103,233,245,190,179,250,218,35,61,254,240,232,196,149,51,42,11,119,90,223,221,27,78,182,236,210,165,18,75,111,150,235,180,246,244,27,90,150,41,210,53,53,93,133,45,82,31,147,153,215,88,207,203,222,80,179,22,38,173,175,49,183,184,106,91, -249,136,229,240,100,54,185,32,233,208,17,98,35,169,205,16,81,205,245,179,154,11,106,163,234,99,2,190,134,59,207,245,120,169,197,160,185,107,95,253,20,85,80,157,6,96,190,129,231,226,49,245,90,91,127,208,145,81,58,19,237,167,17,144,53,107,203,4,151,217,115,28,104,138,238,181,30,3,151,114,80,14,14,193,225,7,200,120,161,10,70,171,247,255,113,112,78,91,182,44,81,16,253,245,238,109,219,182,109,219,182,109,219,188,125,238,107,85,62,101,140,53,35,34,71,85,142,100,83,249,56,34,27,63,101,57,213,197,145,151,148,248,37,169,175,108,247,219,227,246,176,61,145,182,7,237,201,59,51,124,192,140,219,9,247,106,147,7,8,124,157,223,246,205,229,116,143,106,153,130,50,157,139,23,51,197,132,56,159,42,196,114,216,226,25,153,71,23,224,176,46,95,25,205,237,139,247,112,113,85,73,14,12,28,252,178,40,109,139,88,130,22,147,169,195,91,17,153,158,56,36,50,241,249,238,28,43,9,54,221,202,183,242,43,144,223,80,134,132,1,190,70,40,94,45,104, -149,109,57,96,52,77,168,254,5,255,6,236,84,249,148,144,199,33,100,38,8,120,102,52,12,140,10,134,0,56,162,91,98,235,236,193,239,152,147,188,214,104,189,247,70,98,172,210,60,1,241,40,172,207,109,94,40,163,80,74,179,103,118,121,25,135,51,153,225,128,208,160,237,9,7,114,15,71,77,91,243,197,255,41,200,222,139,51,95,128,241,235,106,212,171,79,31,77,189,126,179,246,212,169,255,251,200,156,185,242,15,98,225,217,202,63,191,11,102,169,218,21,62,240,229,108,120,75,56,47,168,37,175,228,243,32,45,246,31,69,158,100,44,101,139,110,81,133,180,46,107,139,238,191,142,231,83,49,100,152,2,251,43,120,224,22,186,29,61,69,222,24,135,37,169,172,149,65,88,205,11,85,121,97,255,19,114,45,114,188,82,103,242,194,65,179,148,213,137,7,16,106,80,24,14,138,4,223,166,93,188,101,11,249,2,220,83,209,254,24,8,84,132,77,130,150,242,146,95,107,29,158,176,95,191,144,44,200,52,251,84,219,211,64,66,243,84,30,13,31,90,175,252,70,249,169, -237,178,22,101,192,130,176,64,36,28,101,44,138,172,34,179,200,21,23,25,224,179,199,236,229,82,148,126,32,31,208,138,4,59,65,76,32,23,103,230,2,186,160,46,44,42,223,24,154,208,144,221,234,4,140,84,83,234,155,150,145,213,151,249,93,187,202,109,22,91,181,70,169,7,166,52,167,96,34,148,52,196,210,96,112,149,135,250,95,37,5,20,122,20,146,201,161,177,243,217,87,125,226,7,27,14,221,59,3,51,96,84,253,238,147,120,249,24,24,248,120,53,242,46,134,62,211,175,32,80,191,66,168,202,123,80,36,253,6,190,10,150,82,82,104,20,112,18,189,249,13,166,89,59,109,49,35,252,165,133,44,252,84,71,188,22,174,80,58,79,106,1,10,86,32,53,6,9,249,40,76,32,52,119,252,84,56,235,67,155,1,97,200,159,210,221,66,202,26,99,225,78,251,121,136,103,114,222,37,55,159,140,79,218,109,189,96,203,237,126,252,74,107,62,191,71,239,216,153,210,218,206,82,39,196,236,198,162,26,197,44,126,246,189,83,94,208,197,119,147,122,87,75,93,201,167, -195,56,91,101,222,236,59,50,92,112,243,222,216,251,146,92,116,115,95,202,35,2,95,116,243,222,228,251,1,56,39,75,90,68,58,113,60,55,75,219,162,23,165,180,104,75,220,220,119,18,122,235,119,28,45,86,150,255,38,222,244,115,156,186,40,6,142,106,75,150,179,198,55,8,59,22,126,157,17,254,141,99,120,4,187,167,21,17,204,18,193,211,223,203,69,100,253,141,74,75,73,81,51,208,140,38,226,184,101,85,224,174,201,25,145,147,101,90,156,80,108,205,88,153,167,146,122,9,142,42,112,120,199,106,35,145,55,33,133,252,138,238,182,111,229,185,83,14,136,204,36,179,201,172,64,153,85,102,150,217,21,46,3,202,3,174,88,129,24,255,38,192,137,114,238,203,107,240,26,162,138,224,91,145,84,248,21,177,69,149,94,67,27,154,178,187,173,200,205,133,169,14,93,223,38,56,195,22,228,105,132,60,29,78,7,147,177,108,50,0,192,104,210,25,42,186,221,221,154,202,96,61,88,44,194,179,176,14,22,171,63,236,79,141,47,107,201,2,72,81,211,227,69,208,228,31, -152,58,28,216,0,41,20,35,138,163,88,255,241,203,162,111,135,248,163,194,55,82,85,187,129,92,27,15,22,13,133,212,239,130,207,217,193,134,177,43,152,195,211,130,29,123,91,204,8,104,17,203,19,126,162,19,164,129,29,227,249,134,43,177,245,59,71,68,17,192,214,190,107,150,238,78,159,212,18,173,202,184,39,239,147,168,206,163,55,82,5,187,251,29,9,20,236,26,110,232,107,216,59,234,241,172,222,161,241,17,109,221,185,200,237,99,255,49,103,92,41,57,169,123,124,101,151,73,176,11,169,146,79,97,94,87,6,249,129,68,178,115,215,192,55,188,154,58,194,253,197,130,190,206,87,66,253,144,27,241,51,186,249,91,16,18,209,51,164,115,86,90,178,167,68,192,12,106,58,140,40,68,208,12,107,58,68,113,68,220,140,171,111,238,194,53,107,12,44,242,137,148,69,102,46,114,134,146,10,192,238,17,27,106,103,153,128,241,253,97,146,30,65,160,205,253,144,182,88,19,233,197,40,90,141,113,96,32,62,42,205,79,3,53,48,159,76,40,75,0,214,213,229,117,48,146, -122,18,148,128,108,104,163,52,39,48,181,4,120,104,121,7,111,188,132,60,110,2,143,198,197,194,76,67,126,161,199,35,79,152,235,160,131,172,109,221,24,197,124,65,95,212,23,246,242,226,190,0,47,194,11,180,216,147,40,41,222,165,174,188,44,43,203,205,114,173,85,102,149,95,101,87,187,124,91,236,242,61,201,213,59,203,131,248,200,238,2,194,73,190,36,86,84,1,200,17,118,128,27,247,80,195,206,168,51,232,251,148,241,57,90,182,67,100,40,8,150,124,192,19,122,138,226,112,126,193,90,185,60,233,96,252,20,60,249,246,32,105,3,111,132,147,135,104,129,35,248,116,228,42,15,252,19,71,165,111,57,212,237,52,96,101,80,87,138,66,167,4,141,127,12,101,196,61,105,203,211,50,214,156,150,223,196,99,30,239,69,152,116,12,196,69,101,11,240,132,136,27,53,22,46,34,141,85,102,209,33,1,73,28,85,185,32,189,143,167,70,177,190,137,204,120,51,213,194,33,123,231,168,214,120,248,237,211,141,46,215,31,250,33,99,236,254,202,132,120,6,238,137,95,179,157, -38,60,29,141,39,123,183,218,143,12,134,244,19,221,83,109,196,135,244,57,117,99,93,38,189,148,43,252,28,84,231,91,147,225,21,222,185,157,217,7,51,89,154,186,73,201,253,55,253,54,93,179,197,23,96,82,53,97,231,57,87,228,40,74,23,55,166,108,222,21,59,26,178,181,112,211,229,63,254,180,39,108,198,245,193,156,35,56,57,150,196,46,176,128,13,166,232,60,3,139,102,63,19,146,110,184,201,164,243,45,158,61,118,180,143,182,9,91,228,8,148,68,66,180,131,105,108,26,7,76,100,83,121,32,176,254,25,189,156,250,87,213,100,195,175,38,28,40,38,228,69,205,137,158,150,226,246,99,147,59,64,205,157,172,249,83,17,133,112,188,106,70,85,130,152,150,165,41,180,52,8,150,126,238,141,112,88,198,48,40,175,202,151,78,206,149,6,160,1,2,116,129,59,102,144,15,140,178,103,81,90,150,34,204,18,211,212,48,53,30,38,135,201,250,151,85,229,250,228,16,11,41,129,193,151,197,170,2,190,40,60,43,234,156,50,35,205,98,212,57,57,148,157,141,4,160, -254,195,154,53,83,135,0,113,168,32,48,28,151,52,89,117,44,28,5,130,2,44,159,241,248,228,235,131,204,3,60,147,79,92,20,131,15,6,212,181,31,178,16,144,242,73,225,62,121,84,206,126,182,153,62,3,71,67,19,144,132,0,138,168,138,88,73,69,28,240,7,186,95,144,214,37,97,55,234,144,175,209,64,200,228,150,46,42,174,106,158,225,27,80,222,235,107,224,217,28,4,238,235,79,188,205,197,83,188,210,168,174,96,232,103,104,165,85,221,145,216,24,162,61,196,119,172,160,148,238,138,235,219,195,191,196,51,169,94,90,79,128,242,105,183,17,177,71,238,110,178,206,104,221,153,125,119,127,242,50,246,183,44,21,14,66,114,82,240,127,99,137,20,125,2,203,238,204,29,203,47,201,141,109,238,1,45,87,160,38,15,255,252,67,174,80,77,152,162,35,208,94,210,212,68,83,166,88,114,68,151,2,181,210,52,212,156,171,69,108,206,193,18,86,136,22,200,204,205,23,153,85,149,163,57,162,153,163,139,12,156,82,206,105,20,3,108,175,89,122,84,209,155,201,0,219, -18,54,43,84,240,38,51,176,100,171,197,255,78,78,9,184,141,72,109,214,205,68,179,121,248,180,73,250,196,201,80,82,53,49,53,68,22,126,110,107,7,57,140,198,49,5,96,166,84,193,50,34,40,194,143,41,105,162,71,73,45,147,229,170,150,129,32,82,76,32,26,38,51,85,114,29,144,108,149,10,171,168,118,221,90,197,166,251,106,14,41,23,41,101,64,153,48,86,10,81,246,36,200,139,254,46,38,204,9,180,66,173,28,44,106,118,195,105,186,152,102,130,92,79,11,117,248,157,230,63,69,171,243,75,101,70,154,83,67,220,96,227,101,173,229,82,48,223,96,237,137,104,20,15,199,141,142,155,243,114,87,134,232,45,114,133,92,129,30,144,185,199,95,96,123,37,236,7,237,5,115,233,103,109,60,85,112,158,2,157,182,79,227,151,80,52,63,198,9,88,66,143,200,63,15,184,78,86,82,253,33,60,108,71,13,224,117,6,160,96,215,247,251,71,32,227,28,175,72,107,244,213,116,78,2,227,39,208,53,253,29,59,225,136,87,116,8,50,223,255,70,182,41,195,1,221, -87,186,92,193,88,206,14,201,30,175,42,17,48,106,187,131,150,80,168,253,0,166,98,119,230,15,49,243,242,201,175,3,219,7,18,237,246,119,107,36,235,81,28,11,58,55,104,36,181,255,83,240,228,66,126,132,107,110,241,243,129,95,148,166,46,15,252,198,172,177,243,111,160,252,252,89,7,77,216,98,201,147,120,218,214,69,83,49,155,243,100,159,130,117,71,105,250,107,30,242,138,214,100,221,22,56,34,119,231,47,250,88,160,115,172,62,199,33,47,29,13,34,222,36,157,103,145,102,50,123,125,239,151,186,29,2,197,146,94,151,251,37,229,157,229,16,155,196,1,249,86,173,158,49,203,114,112,174,24,111,74,83,140,198,42,162,151,55,45,69,139,30,17,87,235,181,99,82,100,240,182,52,101,230,38,207,195,175,44,161,160,2,157,207,166,164,27,151,146,246,164,108,236,63,113,143,66,188,48,187,95,102,42,80,101,61,10,58,115,234,52,132,111,63,199,77,183,130,106,13,56,19,206,136,210,217,137,2,47,196,74,15,171,110,172,253,191,151,135,101,253,79,191,107,14,212, -128,153,234,75,131,186,217,147,102,46,236,141,24,189,33,103,194,175,59,206,61,48,63,169,41,191,59,212,114,143,132,12,242,175,253,102,79,203,197,53,44,14,139,236,180,45,9,158,68,96,98,7,90,36,22,238,224,165,105,181,63,157,43,18,15,195,21,83,194,248,125,61,152,148,150,226,200,58,48,38,85,24,180,11,219,130,214,181,12,50,165,94,14,98,114,59,96,68,6,48,41,218,40,48,101,53,175,226,53,9,179,38,91,116,92,101,16,180,181,119,176,46,131,146,245,225,64,56,104,193,140,252,96,202,75,106,10,165,44,8,221,155,156,253,8,89,86,186,39,18,84,162,68,237,209,206,117,205,232,58,59,4,51,106,191,144,40,74,168,253,6,59,66,23,182,35,92,234,25,221,108,78,214,29,24,212,30,224,51,49,230,53,223,207,223,91,32,22,173,159,194,236,127,51,249,225,108,180,202,153,39,116,45,59,190,74,209,83,211,198,206,63,137,196,245,167,29,60,121,215,146,39,105,179,119,72,173,51,14,255,201,217,136,203,142,234,172,35,125,18,211,155,159,182,243,4, -157,11,48,103,106,21,91,124,183,2,87,149,215,182,7,56,55,162,90,171,204,38,163,154,77,7,114,176,15,175,174,97,27,229,90,5,247,246,199,106,160,218,184,142,55,165,92,25,190,181,204,53,21,218,245,116,14,24,157,162,37,1,184,108,107,149,180,246,218,49,115,16,159,195,38,199,209,225,107,187,219,7,248,98,100,66,8,7,243,38,36,187,177,29,251,188,103,45,9,199,215,157,210,206,120,50,250,223,136,140,246,173,70,20,107,226,235,229,218,105,85,50,102,44,131,237,96,35,32,108,9,187,194,93,243,28,108,71,219,209,60,125,46,179,85,161,46,4,82,124,76,55,197,169,190,32,25,43,211,7,137,124,148,190,17,108,202,221,20,243,234,20,127,69,219,199,217,227,215,76,73,144,160,163,18,243,188,80,38,10,251,171,14,166,148,72,102,128,37,37,218,40,54,107,143,135,31,129,71,208,249,108,116,56,228,79,49,5,31,34,232,115,229,6,169,219,23,119,140,253,12,156,102,19,202,205,107,167,8,71,41,19,253,184,34,44,68,225,47,237,196,153,180,4,199,42, -56,13,191,78,18,49,63,149,105,157,61,145,140,9,98,56,133,99,160,88,35,43,162,94,254,192,31,248,196,32,10,107,248,60,168,248,47,213,126,109,109,54,199,68,229,181,93,72,237,103,229,36,35,191,211,137,155,102,49,190,81,94,106,11,107,177,121,136,147,198,117,138,56,73,145,170,88,242,84,156,36,91,35,72,64,218,49,67,39,128,240,70,223,15,207,255,3,0,249,126,64,62,193,4,55,191,250,53,21,165,191,88,156,62,54,101,103,58,155,175,175,27,223,88,155,66,132,185,59,215,109,214,204,157,94,75,185,235,249,103,58,46,117,249,139,15,5,155,148,217,18,192,70,178,229,204,178,141,173,141,43,124,30,182,238,20,69,18,106,191,138,165,222,226,112,20,125,93,53,93,175,39,92,213,190,101,154,125,238,214,29,188,73,27,202,115,108,224,93,145,7,170,22,223,140,110,220,7,14,23,255,68,181,252,135,33,52,206,22,95,89,45,218,191,223,75,217,210,171,16,222,42,31,198,163,141,19,239,12,106,88,45,160,229,128,141,149,9,74,1,173,170,134,111,236,143, -67,57,43,246,91,171,1,141,44,13,223,175,68,213,244,175,166,10,215,51,120,214,152,136,79,177,231,15,67,251,72,2,30,176,152,120,62,102,189,233,240,32,118,53,121,215,2,13,197,98,178,148,138,137,103,100,146,226,133,21,126,185,236,206,35,205,118,200,236,245,163,97,107,84,33,201,143,138,231,172,118,88,34,72,209,67,52,163,173,218,237,63,195,212,254,216,52,36,82,167,240,136,33,148,214,11,119,186,69,227,164,183,48,3,213,184,53,247,75,99,77,113,124,66,106,8,153,8,49,83,200,148,54,121,170,170,40,137,84,108,242,234,84,46,134,203,38,189,120,124,58,1,36,119,36,90,131,18,145,228,11,79,220,70,7,158,120,201,57,19,137,37,124,137,109,102,28,1,19,244,6,189,4,177,1,193,204,173,138,52,76,193,185,227,95,82,176,202,156,130,136,5,90,219,149,87,33,73,241,67,106,120,52,34,25,193,214,149,99,148,126,72,120,144,123,25,169,249,40,155,214,25,41,124,232,26,16,29,135,64,66,135,167,151,4,83,41,148,174,147,157,105,131,248,54,225, -99,203,249,187,51,166,91,77,192,180,239,65,214,229,209,88,206,53,90,137,30,1,73,44,56,205,253,234,183,60,118,217,139,193,97,179,68,218,127,9,138,171,102,255,116,89,197,217,221,155,84,197,28,197,123,217,20,115,124,240,90,82,239,208,137,181,29,40,28,232,101,223,51,123,246,119,101,21,34,238,170,63,69,173,59,244,128,59,175,61,47,225,11,126,45,173,163,43,254,139,125,125,164,7,46,222,27,251,232,168,119,225,40,139,243,134,203,31,212,29,57,210,18,219,222,132,7,245,82,31,50,215,56,149,248,245,125,20,248,123,226,80,30,45,187,177,42,65,75,149,93,71,47,226,157,18,63,166,53,87,220,150,96,138,190,28,218,251,231,0,36,76,248,36,46,223,43,249,165,160,239,113,240,220,43,244,117,167,47,87,192,84,198,147,186,2,45,94,210,236,168,180,62,174,43,79,147,92,238,72,192,89,135,148,10,172,91,82,176,218,81,75,57,20,87,20,148,190,195,181,51,199,145,41,88,54,147,207,112,17,135,77,236,205,155,79,210,94,71,204,99,53,163,87,77,100, -115,11,122,139,73,173,93,143,150,137,236,233,110,144,150,70,227,105,114,249,196,42,94,148,23,166,37,71,12,71,200,132,63,163,160,17,197,58,233,151,122,74,33,18,29,142,120,93,122,200,170,25,178,56,104,73,41,153,150,241,77,97,197,121,250,118,42,18,2,251,75,211,90,252,1,9,211,106,117,254,137,67,176,233,68,136,78,224,53,172,247,37,237,33,194,226,34,195,1,126,148,61,35,136,51,172,144,88,132,186,86,119,177,152,102,84,210,101,1,24,47,238,254,131,54,163,211,232,194,45,81,136,154,98,99,227,132,108,8,55,180,2,81,23,99,43,217,131,89,129,237,211,57,38,56,155,66,66,107,254,195,26,87,30,140,229,92,197,175,242,17,142,4,199,61,112,207,129,28,210,241,166,185,144,173,182,110,196,173,196,182,60,169,52,178,229,29,6,201,197,150,203,111,111,10,89,158,212,21,122,119,111,140,152,213,52,247,188,176,106,81,169,246,40,173,122,5,114,229,123,179,118,22,22,73,21,215,133,52,32,180,185,27,59,224,81,32,182,249,90,182,127,204,33,160,114, -150,100,71,154,7,224,8,169,140,37,150,236,126,3,99,68,85,86,38,229,109,225,190,6,204,59,32,176,114,151,32,151,136,247,229,96,6,194,108,32,45,228,46,105,78,20,213,111,192,22,196,31,229,86,205,89,37,144,126,90,196,117,141,78,4,122,194,209,121,154,84,23,239,103,26,177,15,216,142,56,218,0,87,141,12,180,170,151,115,185,28,162,158,190,161,54,146,223,39,73,69,234,173,0,87,153,45,212,77,117,118,112,123,94,133,185,112,246,86,146,11,17,242,124,129,0,108,64,18,227,183,16,126,4,31,111,91,144,2,7,111,185,38,97,224,136,120,41,234,118,185,200,86,9,138,23,71,8,181,51,115,124,183,49,80,130,11,129,108,62,166,108,148,121,57,209,79,137,83,27,116,62,210,146,192,78,115,223,135,36,75,230,160,70,197,18,242,70,36,233,129,211,45,9,115,208,66,212,195,90,9,164,79,104,18,13,196,185,159,158,228,241,203,157,57,222,203,27,214,53,56,239,31,181,166,160,95,86,79,102,86,226,47,53,104,163,103,152,23,23,210,98,212,133,82,144, -83,234,129,106,244,213,139,124,105,86,66,64,159,156,125,216,30,159,227,84,4,77,92,18,165,179,136,177,160,85,207,143,219,88,155,88,117,176,117,138,193,14,168,20,168,177,56,26,51,203,82,112,182,167,207,38,98,165,144,11,182,139,11,148,226,254,128,73,177,247,79,43,19,116,182,188,97,125,219,176,233,14,35,227,180,166,221,75,212,53,156,225,160,5,255,216,18,215,57,212,126,193,9,185,199,115,249,227,185,97,177,215,238,222,191,116,189,133,14,134,111,124,135,159,137,215,189,223,155,123,145,7,75,3,233,154,127,113,7,31,33,130,91,116,197,246,58,96,88,72,202,230,92,97,240,94,21,70,146,180,197,182,43,162,71,13,212,136,208,85,78,41,190,98,251,4,62,156,64,100,229,21,73,78,37,174,101,247,118,113,88,130,80,147,154,34,235,192,93,11,235,161,131,176,54,196,162,64,197,99,191,222,38,192,119,9,39,156,89,46,215,134,233,226,252,108,208,145,77,195,228,234,15,7,201,64,52,16,141,7,2,194,119,193,151,236,180,128,199,21,180,251,110,182,10,153, -119,207,40,118,237,118,79,30,48,110,81,55,98,73,178,134,102,137,86,139,164,158,234,101,212,88,219,34,131,200,35,212,177,195,74,35,214,191,46,61,127,152,25,104,12,231,125,60,126,241,154,170,123,60,59,59,239,18,137,62,114,87,149,83,21,70,157,48,249,163,42,81,14,92,68,44,129,145,159,78,209,152,104,44,82,11,197,180,246,229,58,178,240,255,98,34,135,216,156,173,101,204,188,110,70,10,240,195,122,51,3,135,191,74,184,214,47,228,246,172,184,111,253,106,173,73,198,154,162,80,116,19,188,172,219,244,34,64,202,0,15,164,22,227,200,42,48,194,69,20,205,29,196,28,232,84,148,162,156,218,96,211,222,69,160,163,49,149,50,186,229,58,253,134,56,68,161,117,23,67,104,199,3,190,79,208,107,161,26,204,82,219,44,246,201,148,175,4,146,32,98,58,123,239,100,223,10,181,217,92,114,141,231,52,113,150,179,159,241,177,207,164,253,75,117,90,109,147,118,4,189,108,57,83,250,49,178,101,75,214,139,224,215,14,64,252,11,96,118,218,22,115,40,79,95,94, -61,23,219,157,190,223,197,87,255,252,249,86,53,105,108,210,251,92,237,199,10,113,37,219,1,187,16,74,109,144,219,123,215,176,65,110,208,111,67,69,251,24,16,11,96,220,253,106,224,65,179,12,216,220,81,137,137,62,223,5,72,220,116,8,115,14,121,222,177,154,12,30,184,193,3,58,12,162,77,59,208,125,138,199,251,170,224,27,37,229,224,209,189,248,186,105,16,194,88,209,99,214,129,187,77,57,248,190,101,155,54,26,252,14,226,90,17,229,102,65,63,183,65,218,144,17,65,152,52,224,222,43,157,51,104,57,124,93,150,153,42,44,19,113,30,23,135,248,15,20,255,123,162,180,5,31,36,98,227,47,189,176,123,251,149,208,212,194,218,244,119,226,199,164,238,69,187,246,159,41,185,141,203,118,238,191,36,134,111,255,145,157,131,115,51,14,153,77,106,228,167,129,172,192,102,27,233,116,145,248,84,16,17,15,113,157,209,22,20,240,169,89,61,141,216,108,10,18,136,80,168,175,98,32,240,40,4,252,167,127,44,186,220,76,230,101,112,58,61,194,87,87,222,161,208,161, -172,205,218,68,151,76,218,88,181,181,52,144,53,214,116,76,253,147,14,210,171,170,194,50,85,144,231,85,132,133,120,68,21,127,185,142,199,84,61,21,59,53,71,162,225,245,79,180,184,107,189,251,232,128,255,190,214,106,254,36,179,216,118,251,116,2,230,42,145,36,50,157,238,185,190,153,183,219,108,222,150,74,187,147,156,76,126,185,30,161,32,148,68,69,28,175,26,235,38,95,57,70,204,203,63,164,130,27,72,150,59,41,47,178,50,54,127,254,31,82,151,126,224,235,99,127,94,187,199,207,243,213,199,186,218,31,135,246,115,214,200,94,245,147,55,244,144,59,163,188,152,50,220,209,26,170,218,216,51,124,161,222,173,174,152,95,0,69,178,88,234,131,32,38,23,76,247,200,150,236,96,143,153,121,130,113,120,67,182,55,183,34,87,236,175,163,35,116,37,202,189,33,146,196,44,107,252,67,144,69,154,102,228,185,188,80,17,9,85,177,42,158,35,112,135,163,15,36,225,215,91,34,81,104,43,189,96,24,150,252,34,83,74,250,237,24,102,78,144,4,160,72,145,248,64,32, -18,152,5,230,241,201,68,167,98,94,103,211,83,4,22,48,112,38,211,27,90,36,2,197,41,235,232,120,101,1,142,231,18,133,245,193,45,41,12,135,219,235,34,158,173,31,176,132,45,8,1,4,67,193,133,225,84,37,130,38,131,229,71,81,59,42,67,9,197,201,99,15,175,72,58,245,115,22,217,180,95,152,244,121,38,186,226,115,143,149,121,95,130,150,77,186,31,15,179,78,146,80,255,37,246,23,138,180,65,12,191,174,156,78,209,37,148,250,226,145,70,182,208,177,82,51,202,106,24,95,247,91,163,2,252,22,224,224,179,108,238,144,213,186,115,163,169,124,203,230,190,63,108,115,3,162,141,75,255,86,163,28,56,105,76,88,8,169,43,78,125,32,188,236,254,85,115,208,24,243,4,66,102,132,201,71,164,49,149,54,26,163,39,20,148,88,68,101,13,22,126,0,158,13,10,9,183,206,143,55,182,245,186,255,230,241,156,203,135,155,80,245,107,109,50,239,92,240,199,116,90,170,20,139,201,34,139,161,224,30,102,112,236,139,155,255,224,156,87,251,230,76,53,52,91,78, -191,125,188,108,217,82,117,36,154,229,72,194,185,182,71,21,16,140,218,110,104,174,228,27,254,104,111,223,225,246,226,206,46,183,199,69,112,251,93,80,75,90,155,171,51,120,151,166,0,128,93,75,186,185,125,30,128,121,75,174,117,123,71,64,239,79,83,205,206,228,35,195,1,82,4,75,189,171,242,125,99,64,21,65,90,144,109,229,222,230,247,240,3,192,34,93,138,92,93,221,155,255,50,0,102,112,126,129,116,105,115,37,30,93,236,107,254,98,0,109,5,216,129,60,81,102,218,152,174,214,147,241,238,59,214,16,12,15,113,84,49,4,103,145,250,181,139,177,157,173,254,71,241,211,136,35,129,121,74,142,42,34,132,125,37,95,11,39,50,65,213,63,110,94,41,55,109,248,113,187,13,32,167,135,185,192,126,193,13,25,72,130,107,50,152,254,99,148,240,52,177,158,31,213,7,53,193,1,176,30,178,226,81,67,52,134,22,39,155,195,116,51,43,207,26,64,202,1,45,212,24,97,144,144,201,242,156,159,242,186,203,19,219,159,1,23,251,0,23,104,226,110,108,242,25,255, -48,226,132,14,209,232,52,143,26,26,198,213,78,16,93,224,91,24,203,183,117,102,68,146,9,152,168,150,221,174,128,62,96,197,255,19,117,219,169,121,72,78,111,53,218,128,56,56,90,30,190,165,12,128,96,71,7,152,57,239,98,40,8,69,88,51,91,151,137,100,32,221,29,31,224,162,166,71,124,152,159,207,106,37,163,87,4,7,195,140,200,84,86,111,87,50,229,153,33,17,149,210,93,76,145,158,236,29,60,1,48,5,183,175,202,101,51,220,166,115,190,224,47,46,152,217,166,124,43,177,48,241,12,8,167,146,175,71,131,66,169,235,21,184,55,134,27,207,168,242,78,144,55,135,181,133,186,221,201,251,140,169,118,183,16,32,164,153,253,9,138,249,14,179,254,225,235,3,122,151,161,183,45,242,242,78,181,151,220,93,162,249,117,79,144,19,234,95,49,41,109,218,184,41,217,165,157,110,235,212,169,219,245,60,90,94,148,105,143,19,188,55,49,19,59,126,90,226,220,140,119,205,200,206,154,94,22,28,131,203,122,104,169,211,69,206,212,207,137,158,238,138,99,105,44,143, -91,138,76,169,39,123,116,221,210,247,198,193,52,158,99,99,69,178,212,153,221,46,57,31,23,240,14,57,36,81,35,122,50,105,121,173,70,157,129,126,122,72,73,39,244,108,210,37,82,244,179,5,78,186,51,192,235,79,119,212,29,30,213,253,40,87,167,37,231,217,185,238,108,25,151,198,213,35,225,171,135,0,172,89,28,239,124,203,59,95,116,139,30,110,199,1,22,51,81,135,249,118,50,149,88,227,137,178,38,173,228,183,6,234,144,4,206,123,30,134,17,31,5,56,89,217,17,208,82,71,207,123,125,222,179,143,99,165,92,38,196,14,123,177,176,145,59,255,93,16,11,93,82,6,31,77,36,206,7,131,144,161,20,178,73,123,145,190,253,155,31,71,137,131,34,172,26,13,217,40,8,2,138,133,131,33,189,93,42,169,219,10,63,36,185,110,133,240,10,0,155,123,4,95,153,53,43,82,37,104,243,34,11,84,198,253,4,147,191,166,173,9,118,129,53,44,52,243,245,9,21,51,147,136,2,40,119,179,241,144,76,169,18,132,227,8,195,26,26,81,105,163,97,25,206,129, -128,195,19,22,94,112,166,174,188,54,16,115,58,229,43,193,36,245,144,102,187,182,82,15,57,223,152,44,24,242,5,111,105,192,68,179,183,29,201,124,144,182,222,41,53,66,153,216,28,207,28,234,182,112,236,75,166,154,227,34,135,144,106,14,39,22,116,148,61,238,158,158,39,70,254,142,222,182,184,39,230,185,123,72,93,7,169,183,222,0,103,167,44,173,126,243,89,60,1,44,111,108,188,111,96,222,246,78,50,189,207,99,178,7,86,74,181,183,69,243,172,232,209,200,74,236,37,209,59,107,78,61,180,210,121,202,144,80,193,56,237,137,163,107,24,219,203,162,99,140,98,192,42,219,23,199,210,52,114,227,8,229,209,36,230,215,194,98,219,29,199,19,119,58,75,231,185,67,158,58,154,195,224,89,66,59,61,114,76,77,104,133,192,220,48,61,18,136,46,28,38,72,38,202,98,105,204,110,141,121,103,4,4,20,199,30,143,235,70,34,69,214,199,9,226,137,165,19,209,16,128,183,227,112,197,104,111,134,90,165,38,21,27,205,242,176,114,5,75,239,8,58,12,200,157,132, -28,222,52,16,132,12,226,175,53,165,138,182,242,201,226,118,20,82,83,75,165,88,224,208,84,149,230,73,79,177,241,161,102,252,247,218,184,87,122,29,207,191,148,21,109,196,176,243,208,137,226,3,74,168,227,91,242,245,40,38,10,35,217,132,36,194,204,119,4,69,33,191,45,83,73,189,82,228,95,25,19,255,234,247,251,238,21,8,252,30,181,81,36,14,39,42,189,197,216,214,42,205,159,41,251,35,179,102,187,214,174,81,96,122,167,190,33,62,71,11,91,178,204,130,142,19,110,240,242,3,174,100,87,83,137,199,49,69,40,34,117,41,141,206,19,157,169,0,194,34,42,173,215,249,211,95,155,91,120,194,22,67,246,80,244,103,253,54,117,79,185,82,250,152,89,60,155,242,181,216,65,87,244,34,10,230,173,20,5,22,166,164,234,113,10,183,218,56,197,138,191,252,108,125,29,209,123,147,101,143,63,229,75,150,55,144,255,51,68,79,212,95,124,93,186,4,172,103,232,22,174,12,206,208,18,122,11,75,17,95,51,82,49,97,107,245,250,207,96,98,110,177,99,211,187,58, -217,172,119,156,233,67,158,146,53,188,148,244,241,142,178,53,178,234,217,131,34,73,87,77,193,198,86,226,96,78,214,227,148,102,125,51,146,103,245,7,94,50,76,73,168,84,229,186,194,232,74,22,152,212,241,157,34,81,169,87,245,134,241,223,197,67,209,2,91,108,77,126,41,253,95,85,176,30,49,160,72,127,115,105,192,143,21,251,100,170,98,24,78,141,60,213,40,63,174,39,18,133,149,194,162,164,223,33,59,85,68,108,140,19,194,81,6,185,134,138,86,104,202,121,178,238,143,104,101,217,84,174,172,234,17,221,41,132,49,73,37,175,114,165,73,37,38,247,171,248,89,21,109,26,124,14,56,200,86,135,56,77,189,178,43,61,118,5,191,57,76,73,10,241,137,56,196,228,211,130,198,123,2,100,54,243,120,202,228,149,30,139,222,1,87,139,25,191,114,233,134,75,76,170,198,228,172,239,197,144,240,138,133,129,11,168,150,64,45,242,189,246,94,189,21,135,66,11,46,10,95,163,120,144,5,47,96,155,204,117,59,67,158,143,87,181,130,209,70,199,128,216,187,24,168,201, -41,35,55,90,115,224,17,138,222,166,83,39,71,68,146,95,99,7,53,148,63,11,100,82,82,138,196,41,43,78,85,175,28,71,140,233,18,129,136,68,105,83,58,71,52,166,10,22,69,168,84,222,235,223,218,136,109,225,9,83,244,132,250,203,31,245,219,116,222,89,93,76,71,134,99,46,234,219,137,178,145,140,46,117,76,59,30,230,48,109,13,229,147,10,121,140,181,95,26,126,49,148,229,141,190,233,78,150,35,190,95,190,94,79,112,144,122,59,124,88,92,246,68,72,116,225,159,236,237,59,185,236,118,191,52,231,80,65,127,78,254,218,166,63,74,234,183,173,244,78,98,183,129,216,176,198,23,163,159,68,153,186,211,155,37,184,71,165,164,70,86,124,231,9,230,197,168,170,145,52,182,33,233,253,12,228,73,231,88,70,178,88,142,206,87,136,130,103,200,148,190,48,220,76,163,89,42,199,226,215,204,193,39,36,131,106,199,232,15,227,105,76,139,21,116,164,190,45,56,131,224,247,40,34,93,98,72,81,166,180,180,142,218,231,139,132,242,67,146,94,162,227,77,244,120,190, -60,21,97,2,89,18,158,164,95,242,32,205,72,97,196,162,239,226,248,221,24,36,216,252,198,97,225,171,90,72,10,230,207,40,38,253,55,46,90,79,64,2,82,10,198,139,141,149,66,205,35,150,137,160,66,77,250,30,63,14,27,13,159,100,246,160,105,139,9,137,187,181,68,157,155,82,126,35,253,32,160,219,5,202,17,73,46,92,112,199,161,3,69,3,103,139,47,223,234,31,147,197,194,196,215,177,54,9,108,100,97,92,191,217,226,215,184,4,172,40,198,77,136,33,188,86,209,114,158,207,106,23,191,2,80,49,32,187,213,224,130,52,242,62,247,118,129,180,90,46,9,202,225,57,86,32,21,227,224,61,221,77,100,59,216,234,244,129,78,85,9,84,140,154,206,32,157,98,42,81,19,69,110,38,254,25,141,214,224,240,237,68,172,160,17,149,42,90,27,225,45,168,61,60,97,228,133,191,172,138,75,3,49,166,75,62,151,108,91,207,89,135,124,35,85,144,251,137,137,130,113,207,249,200,110,199,198,53,156,152,117,227,242,31,119,197,136,116,198,219,75,185,51,157,103,255, -150,246,184,51,213,75,245,126,32,112,57,211,115,208,232,122,18,172,24,224,177,185,253,166,168,174,47,221,226,14,61,154,14,99,47,93,160,162,94,211,131,89,60,255,16,39,233,141,105,43,186,235,210,210,213,28,35,186,59,210,214,193,220,147,60,26,210,115,136,105,90,104,165,142,98,227,95,231,181,22,91,113,212,81,155,6,154,200,243,6,71,122,39,72,28,105,190,209,116,158,51,10,38,187,100,158,41,50,36,110,84,122,202,208,152,220,115,228,163,128,18,209,83,198,57,107,98,74,215,24,240,155,169,56,151,20,83,146,52,61,105,196,77,244,232,129,2,237,80,239,27,142,139,233,97,18,41,24,5,44,173,72,144,77,147,73,34,139,32,84,195,13,26,159,56,211,19,171,67,231,86,25,44,117,114,40,130,176,76,139,246,170,115,118,130,143,209,107,240,2,205,220,156,159,8,21,6,138,136,86,93,175,53,246,164,189,120,212,213,74,0,164,50,234,69,136,219,161,177,136,76,32,88,53,54,112,230,17,113,146,221,166,241,180,28,69,14,77,115,56,199,17,92,203,25,14, -11,132,252,92,158,119,25,241,0,220,60,80,202,101,66,109,15,131,115,91,134,128,164,131,168,129,193,32,229,95,167,184,183,202,230,108,201,253,38,13,79,239,30,137,157,106,120,29,52,137,96,154,217,24,45,64,209,27,13,92,80,182,231,107,129,124,51,87,175,155,140,174,222,32,19,83,113,230,58,118,177,33,41,161,212,26,189,35,182,3,0,143,18,84,170,96,77,103,73,180,54,241,223,124,38,194,75,93,58,104,194,228,246,185,104,91,251,167,105,113,51,138,59,177,77,121,97,54,241,11,175,12,219,164,24,77,79,91,218,137,47,65,166,42,237,85,63,123,14,101,185,162,215,107,241,118,145,116,169,251,222,67,193,237,12,130,71,215,225,8,177,102,15,204,161,193,43,65,42,164,42,173,89,255,121,104,110,83,146,216,155,217,123,139,47,189,49,204,45,188,8,3,159,29,17,148,99,68,55,77,49,124,149,103,164,54,234,120,48,64,40,229,26,41,213,70,31,92,16,79,121,117,35,149,197,246,182,240,158,72,202,22,75,34,25,38,153,199,9,244,225,35,16,81,33,173, -229,142,194,229,36,158,197,243,84,1,195,27,238,253,187,87,208,32,143,20,82,34,90,170,160,103,15,36,225,22,34,124,39,33,229,37,121,233,35,143,147,171,146,156,244,37,106,212,104,1,22,65,53,139,43,9,202,73,76,18,55,21,14,137,194,88,87,41,16,212,58,6,33,233,112,88,195,143,68,14,43,248,144,114,100,160,60,12,144,243,151,107,57,178,80,154,17,226,225,54,87,73,114,191,230,45,102,14,183,152,86,39,223,120,56,209,99,103,16,54,1,115,86,0,69,16,39,13,47,17,83,116,107,200,81,132,204,200,69,82,98,227,133,57,71,241,43,47,247,221,25,37,49,86,95,47,210,105,1,255,174,208,58,10,137,98,113,73,67,137,92,152,112,164,88,197,177,68,88,207,207,47,42,90,74,196,12,111,153,30,34,232,163,190,13,56,81,17,184,183,129,73,68,4,228,123,206,120,148,76,80,169,229,31,107,244,252,113,42,157,142,17,130,72,148,38,39,242,70,187,42,119,241,84,72,231,245,254,166,77,29,23,154,176,69,91,40,120,251,57,191,75,167,191,228,200, -148,178,93,27,169,64,75,126,166,91,203,209,197,5,180,46,109,31,148,50,93,110,169,6,45,177,244,162,188,125,126,187,237,33,61,198,198,180,71,62,250,153,219,26,103,169,183,97,228,254,153,210,63,239,133,58,122,242,15,227,201,100,85,197,245,32,255,54,209,171,37,184,240,35,108,188,228,137,29,226,4,45,65,199,74,28,68,113,189,200,220,149,222,249,113,187,40,64,37,182,226,7,117,156,141,22,89,137,173,244,193,226,141,7,69,88,130,107,16,63,152,226,105,66,3,33,58,199,57,210,121,34,90,32,136,212,241,40,161,175,17,185,227,15,226,9,39,165,167,12,164,209,223,179,26,97,47,34,198,169,18,66,74,68,79,27,228,220,17,31,174,136,23,126,8,105,194,154,208,38,196,130,133,129,37,29,143,15,106,102,137,120,82,224,120,73,40,253,88,20,82,81,237,68,130,105,24,79,8,83,63,215,106,111,201,100,59,3,141,243,22,177,178,153,114,13,178,211,96,153,91,47,227,32,161,78,166,190,159,150,194,192,84,89,40,244,194,106,215,137,112,23,121,106,152,250, -122,185,199,21,128,197,75,3,251,168,17,8,247,4,92,70,164,52,172,1,152,110,25,173,149,211,53,223,188,234,198,41,202,147,71,126,182,53,117,242,111,60,205,86,191,224,253,207,38,84,131,119,41,156,87,35,20,16,5,42,22,145,49,74,22,141,236,63,71,162,19,107,110,66,42,103,56,203,124,87,247,91,97,29,32,67,69,87,192,19,186,24,186,83,56,145,150,137,58,5,100,208,245,250,241,168,0,205,218,48,122,181,112,81,132,80,104,45,209,247,119,223,177,63,38,115,134,68,50,68,88,224,141,200,188,194,24,223,117,231,96,169,133,201,21,163,197,14,231,115,58,202,136,208,117,171,176,29,111,140,86,166,189,154,247,153,29,26,215,240,53,48,79,21,55,62,161,190,85,218,46,63,194,241,132,229,8,82,173,119,81,27,133,213,28,162,73,23,99,207,233,178,239,249,182,77,215,255,192,207,197,235,219,255,109,142,169,206,87,229,67,181,94,239,61,170,25,123,189,15,168,218,203,249,62,161,14,157,172,26,115,12,109,103,54,135,254,149,154,116,182,154,227,72,67,99, -189,216,157,201,123,78,243,183,208,148,28,219,52,217,171,188,46,190,60,169,143,54,103,91,48,29,146,73,205,218,105,218,42,11,246,224,21,227,118,58,79,91,157,46,152,195,172,132,78,212,70,231,9,242,67,152,162,51,181,213,65,157,193,22,6,233,84,101,55,58,19,240,1,77,35,48,14,246,201,73,187,48,116,235,216,194,50,142,150,4,213,181,147,224,152,95,91,248,146,251,138,17,253,104,238,23,209,121,178,142,64,183,24,16,118,181,82,193,206,13,175,112,169,15,234,132,57,234,117,148,29,113,50,49,158,84,81,186,93,2,251,118,116,188,249,177,226,169,254,92,65,63,236,136,174,33,141,195,170,17,46,230,172,129,92,94,19,133,110,123,239,42,106,57,188,45,109,92,125,217,51,69,69,202,233,182,16,131,183,114,152,249,253,61,90,73,196,192,228,247,78,70,131,150,251,120,176,246,219,156,152,21,118,187,82,209,111,53,9,130,25,42,147,208,72,218,90,189,17,77,65,167,150,4,239,230,84,11,110,253,86,64,68,139,110,132,11,6,36,198,67,89,165,234,52,179, -193,181,158,36,66,32,252,62,224,22,58,34,38,148,220,68,175,9,190,248,14,184,235,152,206,88,226,55,195,111,145,55,36,51,198,148,125,151,253,169,138,201,67,140,190,162,71,241,188,95,75,233,96,38,209,180,67,155,9,245,100,99,58,68,213,191,201,115,235,22,161,215,23,31,217,32,36,78,71,21,183,201,111,151,108,60,134,217,30,79,28,218,24,187,222,228,110,119,0,164,78,255,217,38,227,99,253,179,205,185,179,199,226,18,92,140,222,21,174,253,224,122,111,208,147,104,121,113,122,61,64,16,94,199,72,108,248,94,9,112,50,194,255,48,75,234,85,22,0,3,200,74,104,173,226,57,78,207,15,64,32,64,100,184,130,80,146,70,110,20,158,198,31,4,132,35,160,52,188,65,52,57,164,127,113,136,205,147,170,252,93,192,47,8,8,7,67,136,40,9,45,169,155,227,123,6,255,9,64,135,129,142,240,9,81,37,201,229,196,57,105,78,148,3,252,49,86,39,210,73,92,162,79,135,128,187,173,107,205,0,1,198,134,195,241,220,147,88,244,187,21,247,127,165,124,120, -170,3,34,137,118,36,10,79,203,215,102,135,133,136,136,87,58,206,125,10,80,196,150,34,25,132,9,48,21,87,51,146,16,114,201,139,93,32,8,67,97,25,187,242,178,1,159,112,125,30,6,131,57,53,142,82,160,117,250,137,105,113,164,3,150,61,41,107,6,130,59,61,120,64,120,246,89,204,224,183,70,109,231,26,56,241,248,182,46,45,194,133,47,130,100,213,236,115,156,53,252,39,117,140,138,188,187,187,37,233,240,113,112,168,49,93,217,21,68,211,76,218,189,170,191,229,181,130,179,156,87,247,175,35,227,1,54,31,119,1,237,78,163,193,34,81,167,24,116,221,78,63,233,149,178,58,204,206,143,6,46,30,148,89,163,46,122,254,102,236,141,213,116,206,150,220,17,145,21,156,17,145,51,199,245,128,174,28,44,161,115,245,92,52,140,197,58,228,91,248,40,227,180,54,228,75,248,100,33,164,50,108,93,103,148,62,101,41,38,161,30,57,170,180,183,252,254,26,244,213,201,124,156,174,199,151,232,37,237,157,202,180,235,49,255,67,109,88,73,219,139,43,217,46,216,252, -21,103,180,3,23,197,57,85,219,182,145,187,204,158,153,238,61,168,227,153,204,218,14,89,216,163,161,153,161,219,166,195,22,34,117,52,103,206,54,235,208,216,130,31,181,25,160,45,70,222,115,162,119,130,20,226,200,24,109,231,61,195,60,48,69,230,152,34,67,47,117,103,162,44,141,205,229,222,63,6,167,40,221,142,50,178,166,223,199,149,245,77,133,233,112,35,51,52,245,100,2,172,50,171,44,182,45,108,13,155,67,97,123,216,34,54,137,205,60,177,81,108,22,91,168,180,119,14,108,67,66,152,184,64,36,25,92,169,164,159,92,171,37,217,238,217,79,91,69,94,122,112,88,198,41,206,74,122,122,87,10,177,140,11,74,85,233,32,122,108,125,130,154,229,7,22,184,146,130,31,3,68,34,161,159,82,174,81,233,169,55,232,247,162,209,128,60,9,249,253,58,151,222,135,199,203,19,236,19,165,102,167,32,199,35,137,75,89,91,162,88,241,100,110,74,232,22,44,99,49,233,90,144,75,171,157,147,202,159,114,248,200,120,222,166,62,165,140,20,77,32,191,6,168,89,244, -79,125,252,174,219,240,186,81,171,29,114,33,155,161,98,114,174,180,161,180,82,78,250,238,172,27,78,19,17,209,47,120,111,28,74,34,168,7,106,73,47,229,181,124,86,54,141,69,104,194,142,21,101,198,21,158,41,19,211,156,33,157,209,120,27,49,106,42,44,97,143,163,35,44,10,44,157,246,60,55,244,217,110,205,71,147,135,179,218,180,55,82,226,67,36,99,221,73,48,68,122,214,214,73,91,203,175,73,59,78,37,191,46,63,73,108,226,126,197,108,219,195,145,217,240,217,159,163,149,147,63,152,127,39,85,66,174,13,217,121,129,190,82,244,158,73,219,70,110,18,105,4,170,247,160,247,23,94,164,170,199,132,110,21,77,36,78,147,14,89,117,228,94,31,33,211,170,147,97,11,182,119,70,220,6,218,117,232,66,237,109,195,8,145,150,29,150,66,69,25,58,207,29,222,81,120,9,77,173,111,12,78,218,208,12,145,103,11,173,168,200,23,245,75,11,234,173,115,64,158,54,76,104,237,146,65,42,74,67,235,99,212,33,63,50,64,149,11,150,197,218,212,156,89,239,249, -237,176,22,177,161,73,119,102,210,82,89,175,156,77,66,106,91,163,212,44,131,234,159,95,105,86,191,73,226,245,220,180,240,210,157,117,29,187,149,9,113,137,111,137,255,231,99,52,195,185,228,39,68,72,41,195,80,30,8,9,3,196,41,66,185,163,176,193,148,12,190,37,49,171,45,221,4,106,160,206,42,100,124,248,171,132,11,133,191,76,168,132,8,39,228,146,231,35,34,209,176,11,106,209,22,145,7,236,54,10,145,109,133,92,76,204,145,184,202,195,123,39,105,212,239,183,214,33,32,136,255,56,62,236,6,40,1,198,59,68,240,185,224,121,108,209,15,253,0,213,212,52,128,177,40,151,56,148,234,173,182,51,90,83,42,98,111,14,45,94,36,42,148,175,249,23,108,7,131,152,212,247,195,249,168,221,140,166,163,124,146,207,106,34,202,154,67,177,51,38,183,146,39,253,22,153,137,37,37,106,127,34,73,131,174,11,103,212,255,185,62,109,208,106,112,189,217,156,14,73,55,91,169,110,173,38,161,150,80,202,180,213,163,134,107,214,86,72,87,203,24,150,108,84,68,120, -94,101,159,243,122,59,98,188,72,251,93,88,63,97,163,165,147,86,255,161,104,110,237,169,204,139,57,68,72,37,111,228,94,36,101,5,164,23,126,156,35,9,243,100,76,248,238,73,96,243,229,76,196,142,27,31,72,185,101,126,19,178,147,199,146,13,233,32,195,10,93,112,68,129,46,86,36,210,74,82,67,118,206,115,162,148,57,162,192,18,155,19,148,39,41,35,107,231,31,68,193,41,76,135,25,104,143,178,131,151,160,29,144,227,184,172,152,159,8,82,152,48,29,107,192,133,201,165,177,28,225,64,88,16,10,13,194,131,208,35,228,101,132,29,33,70,152,17,3,55,66,168,144,159,147,176,124,189,187,145,41,241,229,250,91,27,25,233,22,112,116,44,81,140,132,10,149,197,43,161,214,228,26,224,32,66,236,72,205,146,70,19,183,15,46,217,216,62,202,212,231,18,116,244,183,54,184,132,71,32,196,49,15,145,44,156,88,4,128,91,153,4,170,242,85,139,192,154,74,43,228,23,19,184,199,193,59,160,211,104,22,97,175,151,94,201,127,101,149,94,123,20,15,168,86,183, -77,38,38,231,77,231,68,227,214,15,10,80,189,248,219,142,130,158,10,218,146,66,193,77,120,100,201,79,36,125,250,156,240,98,77,45,186,30,207,5,232,178,2,201,153,84,239,180,163,222,152,50,17,119,113,40,209,18,249,211,177,65,179,24,103,35,159,196,199,229,112,212,109,70,198,81,54,41,103,109,145,229,206,145,216,57,217,28,200,155,94,255,211,145,142,206,219,19,194,62,135,134,41,120,124,109,207,70,125,222,9,145,75,118,107,176,153,6,148,83,230,61,202,199,111,153,182,74,212,142,255,135,85,164,98,229,185,167,184,138,219,240,3,236,216,162,218,237,43,31,211,220,116,170,55,124,121,54,158,252,95,228,142,228,21,188,60,1,174,64,239,226,246,191,160,172,208,194,66,237,210,32,33,62,151,9,217,200,253,20,40,135,196,107,194,54,6,63,162,10,168,97,87,1,9,22,189,225,248,130,192,88,9,82,192,202,120,78,152,42,67,230,112,124,125,128,114,4,85,96,107,188,195,246,167,223,12,158,99,134,249,222,64,47,68,249,42,98,32,253,152,74,196,235,37,130, -127,115,168,131,81,251,252,192,0,84,254,1,157,65,105,208,26,244,243,6,5,65,67,80,113,7,58,206,241,96,61,248,53,54,147,57,170,140,238,103,101,74,56,55,215,90,5,195,227,232,148,125,58,43,253,176,142,2,139,161,32,185,217,38,197,112,182,132,159,183,129,73,253,99,64,22,171,196,80,250,124,71,189,135,134,131,162,0,105,192,238,160,137,40,164,174,32,96,83,186,159,78,158,182,170,189,152,119,176,44,217,128,193,183,125,112,219,208,16,41,9,19,158,32,70,125,217,197,251,249,38,171,217,184,230,244,38,91,163,16,42,201,109,251,209,71,205,104,197,106,230,204,40,217,106,11,215,134,66,112,248,77,53,105,1,2,13,72,3,20,192,141,7,151,129,46,45,101,174,143,74,163,215,37,88,208,83,221,90,212,72,40,244,211,201,176,233,165,34,176,57,153,143,4,74,30,232,247,137,49,203,23,197,226,82,48,248,36,168,21,140,21,117,206,146,246,49,142,0,157,147,46,186,227,101,3,136,60,44,161,118,189,38,237,224,223,156,142,202,36,214,192,209,92,246,114, -53,17,185,102,205,199,37,157,81,202,176,55,124,214,219,153,245,138,76,203,171,175,118,240,142,190,248,128,115,215,219,251,182,158,248,92,123,247,141,29,9,203,135,55,15,254,194,95,128,137,78,11,186,187,83,30,141,110,11,190,203,82,83,69,255,159,43,210,182,253,224,63,87,76,209,33,186,105,176,133,56,138,141,169,179,206,250,23,53,81,71,109,234,173,35,247,11,28,232,157,48,153,211,204,12,157,185,191,8,186,16,216,34,73,34,78,53,159,52,140,142,221,255,174,71,170,220,99,104,75,205,158,223,61,117,106,161,117,97,131,62,178,76,73,54,173,50,107,110,195,111,6,180,94,48,223,180,179,140,210,247,154,101,52,95,52,167,132,52,120,152,188,52,204,226,160,84,41,18,93,231,208,145,206,203,32,156,88,137,45,236,204,131,221,11,34,183,92,150,103,127,162,63,51,54,240,87,239,143,173,228,63,203,89,12,101,15,232,193,61,90,141,224,71,133,14,73,90,100,62,83,131,123,122,241,200,110,91,197,86,169,59,238,198,172,33,16,134,119,248,181,254,149,217,223,224, -252,174,182,150,25,36,103,85,71,226,182,199,59,233,164,89,30,73,16,174,26,13,219,97,143,56,201,68,148,251,35,97,218,11,204,148,32,100,58,202,145,40,255,201,244,123,98,206,222,178,247,72,181,230,53,166,254,164,253,197,56,42,83,42,29,123,61,41,132,67,134,97,41,19,89,163,154,52,195,202,208,227,103,67,90,252,104,3,100,59,28,38,211,108,62,171,11,226,225,163,7,188,152,202,217,194,201,21,34,45,186,232,163,253,204,70,30,182,184,253,206,67,103,133,218,235,217,243,197,163,57,237,228,200,99,130,205,154,79,71,202,104,151,121,183,224,181,204,27,215,128,201,114,246,121,115,124,235,238,119,135,29,109,177,71,134,122,13,200,132,2,90,254,31,164,236,219,215,114,171,170,63,87,103,152,217,116,25,195,126,40,255,207,13,121,33,63,31,23,13,188,168,3,242,19,39,13,178,144,251,138,62,68,198,85,3,173,218,159,27,134,218,184,177,136,207,129,220,72,2,131,42,84,134,45,112,102,126,124,17,52,129,102,168,252,128,37,48,135,158,176,12,26,167,186,113, -112,111,62,252,17,68,65,104,24,253,140,48,80,133,110,176,56,10,87,76,116,117,204,65,67,19,10,192,194,56,133,2,183,192,49,112,13,28,219,129,123,20,140,70,17,103,41,53,145,117,160,177,108,186,70,38,252,69,252,148,100,79,30,114,144,189,101,51,134,84,8,40,160,69,208,217,43,204,30,249,14,48,141,31,14,200,189,97,92,212,110,98,56,192,225,136,149,233,150,107,30,238,167,68,64,164,246,214,93,200,32,114,105,77,129,1,183,141,84,184,144,60,74,237,113,252,213,159,40,245,47,107,12,212,202,204,176,60,46,174,180,74,7,66,137,217,29,15,83,110,232,157,105,67,106,205,85,206,109,162,84,197,227,132,119,183,90,34,101,20,40,244,76,235,161,4,235,55,229,120,180,0,206,67,114,159,149,224,34,60,232,109,64,127,192,113,236,76,170,79,250,69,103,14,136,152,180,61,117,152,68,217,104,245,63,138,10,187,9,174,159,206,33,182,35,142,243,211,180,156,149,11,42,73,97,15,135,144,207,200,82,62,83,116,39,203,40,114,171,232,98,140,250,182,49,99, -216,98,247,47,58,43,7,98,175,100,201,29,13,251,178,211,32,139,236,87,178,27,185,170,89,243,201,46,39,132,50,110,38,140,6,203,221,103,138,157,23,61,176,229,30,181,100,239,216,128,220,160,85,238,208,247,95,185,8,75,111,101,41,207,139,56,68,112,70,43,240,133,27,13,121,164,46,232,174,136,89,253,121,12,216,142,31,149,112,121,163,95,3,178,179,70,151,5,206,192,179,2,90,51,120,129,51,242,227,16,18,30,22,88,2,203,49,250,131,42,214,198,65,120,108,180,159,1,48,129,230,10,100,1,79,10,119,216,122,145,53,246,197,253,242,88,65,63,4,136,130,208,121,72,3,126,84,184,51,43,19,64,10,66,195,234,96,184,158,222,87,248,57,31,230,104,208,72,76,226,100,25,226,53,80,207,115,238,230,71,31,134,90,249,81,167,26,43,166,225,231,138,217,36,212,170,101,49,36,66,40,17,135,117,89,203,196,107,150,8,199,183,45,148,163,209,175,132,174,200,246,105,39,55,117,26,30,176,192,54,8,135,88,210,255,121,19,127,251,204,205,13,18,83,236,218, -166,192,83,208,41,230,86,246,52,228,139,92,201,100,249,204,75,59,72,135,58,70,13,202,198,170,28,18,132,131,128,146,229,40,233,248,107,211,86,56,4,215,169,1,176,70,78,98,154,128,165,142,149,76,97,238,98,34,47,51,127,78,97,73,102,87,83,234,51,120,175,216,92,156,166,188,85,55,90,187,219,171,36,83,140,98,92,153,122,208,106,253,20,52,45,67,246,165,65,204,7,178,58,53,103,230,156,101,45,73,134,160,120,75,205,173,118,48,76,38,5,105,94,19,108,240,83,164,161,148,45,154,147,67,186,64,33,185,233,226,119,155,228,26,177,153,3,117,156,171,10,181,183,178,224,14,51,115,217,41,144,68,182,138,181,28,50,41,158,197,112,128,140,120,54,61,224,199,209,209,244,209,210,87,117,17,199,206,127,191,203,51,224,83,78,170,184,74,6,242,163,247,41,127,63,53,106,175,251,115,5,172,24,216,93,253,7,248,139,97,64,111,22,223,254,71,58,0,178,224,59,143,79,252,243,83,5,180,176,59,163,210,183,254,91,214,194,162,119,58,223,240,39,11,192,185, -208,57,34,207,226,163,188,127,166,191,12,203,252,217,17,157,137,151,180,87,216,122,161,54,134,211,55,250,10,207,211,19,43,29,221,28,121,76,50,75,222,178,78,44,114,84,11,42,201,52,236,115,219,193,174,157,172,133,71,84,185,48,31,214,6,175,204,238,70,204,99,33,92,211,186,244,180,48,91,179,33,38,7,132,22,247,159,65,148,102,220,57,203,207,226,81,150,238,229,143,96,188,172,79,38,239,139,71,194,197,84,210,236,187,164,22,176,241,233,112,202,107,237,146,100,2,176,31,147,26,63,7,215,205,69,237,220,157,198,133,96,34,226,247,44,254,151,58,56,55,149,49,2,217,22,197,63,180,163,61,116,11,111,108,237,234,130,12,27,37,60,53,150,182,92,229,60,244,251,152,225,22,17,247,37,113,228,162,30,163,81,49,61,5,36,104,43,135,41,120,220,219,178,147,109,201,145,21,122,251,98,48,71,66,138,161,143,19,169,210,246,70,19,52,197,35,126,160,239,75,225,161,58,213,103,166,162,101,35,40,251,140,28,137,131,157,53,151,148,242,118,90,48,193,75,145, -46,186,113,184,87,97,165,118,47,49,236,134,111,176,199,227,144,180,20,182,232,131,194,229,103,250,180,23,147,241,196,6,115,221,175,161,208,116,211,86,11,76,211,171,199,55,243,60,175,148,99,215,213,236,122,156,162,87,174,191,237,1,83,107,222,85,146,234,186,241,190,90,43,183,251,184,23,179,78,215,199,115,58,202,185,64,211,7,115,183,15,166,78,143,183,251,188,251,179,245,146,151,250,106,93,142,233,123,22,237,181,190,90,103,78,113,51,253,229,70,63,15,197,187,116,151,255,189,72,101,217,92,136,23,221,249,48,222,166,219,252,184,45,246,165,201,172,149,139,232,120,85,159,95,111,240,158,208,70,222,168,59,253,188,51,206,167,137,44,234,151,91,231,30,61,119,13,67,243,24,49,117,37,199,197,249,24,129,228,71,190,243,26,31,229,103,68,63,223,121,15,110,186,106,102,73,16,209,109,97,150,40,217,174,1,164,171,142,13,89,92,113,13,118,141,242,48,133,89,46,7,223,246,239,14,65,28,28,219,140,4,223,196,167,103,251,92,197,168,179,122,138,142,188,246,134, -184,122,98,178,52,177,55,206,237,101,139,158,205,111,103,125,39,173,168,33,66,151,82,29,168,145,231,175,102,83,99,113,57,75,64,237,211,178,183,16,251,213,243,254,231,87,152,177,73,198,93,197,255,196,59,28,215,153,152,25,106,210,75,136,221,183,5,229,247,38,164,223,116,45,195,241,42,120,174,59,37,209,124,107,95,55,58,90,114,173,208,79,6,125,164,150,80,8,57,144,100,187,39,26,244,232,30,169,27,179,119,172,79,245,185,46,103,153,72,194,49,227,111,4,230,70,59,22,38,87,209,82,84,11,22,248,4,216,194,73,239,123,148,195,60,191,201,236,151,0,230,48,213,98,142,15,48,42,164,100,115,250,176,239,87,215,156,188,182,89,243,81,206,5,133,54,110,38,48,118,204,188,77,237,219,202,17,217,108,112,235,0,45,133,155,101,119,238,127,250,181,134,212,23,17,219,189,103,110,193,104,211,227,217,69,247,122,172,246,245,26,247,135,76,110,244,205,218,73,246,137,40,157,59,125,47,90,135,125,57,74,199,190,153,158,205,237,175,217,19,61,88,4,23,251,118, -89,247,251,82,20,141,109,52,184,103,15,231,57,59,104,243,43,97,57,250,132,232,217,204,211,58,103,228,43,145,222,47,208,63,166,142,132,204,127,231,108,254,112,8,66,100,166,182,177,143,130,214,198,169,253,1,43,100,69,42,39,110,33,179,81,83,12,181,29,173,151,158,94,25,71,202,38,152,6,0,66,86,75,115,137,69,11,51,177,17,7,218,183,46,167,14,54,45,75,62,49,196,111,157,215,33,249,108,230,3,239,228,239,46,217,115,140,190,224,114,85,252,149,59,248,119,133,85,143,30,48,1,109,100,183,142,251,156,15,193,182,96,94,88,6,190,173,78,147,122,243,176,170,253,3,87,13,7,72,108,10,165,233,7,170,247,105,101,62,77,174,218,81,249,146,129,58,235,105,35,241,109,62,181,90,225,75,18,142,112,13,204,143,130,163,246,241,147,254,212,52,128,43,160,80,14,58,198,229,28,63,96,53,104,44,172,61,42,120,10,7,80,244,220,73,254,148,202,184,25,159,144,104,124,25,82,161,157,168,197,173,96,75,231,72,113,237,139,227,175,224,206,157,230,220,74, -18,143,29,13,192,243,99,97,46,205,62,55,197,4,142,136,34,11,165,212,241,139,121,26,177,45,250,100,66,26,19,87,45,246,176,32,155,66,83,118,99,72,254,155,57,93,246,38,234,214,113,87,184,137,218,198,221,134,198,174,26,55,39,220,202,57,102,149,15,175,28,185,185,110,83,238,208,131,238,236,233,184,127,209,20,88,181,70,107,86,255,147,249,50,237,253,83,230,203,158,169,178,151,47,103,102,127,206,200,53,199,7,251,184,108,93,90,211,132,163,90,177,91,245,25,245,121,163,41,74,61,153,224,153,163,46,154,237,153,178,163,188,116,49,154,210,13,27,114,102,204,171,243,142,116,204,182,168,206,142,202,188,37,125,198,218,148,111,215,1,76,68,180,144,42,189,62,85,73,79,108,173,49,223,128,233,110,99,167,110,72,54,10,7,174,106,68,130,236,20,41,46,67,186,122,27,167,14,113,43,228,147,22,29,172,17,115,94,64,175,14,66,180,121,155,108,246,136,222,229,148,18,131,181,21,24,84,247,96,119,86,219,123,29,252,37,184,64,164,150,156,10,153,183,251,38, -20,204,101,32,141,82,203,224,41,235,138,108,57,149,75,202,95,224,254,28,55,118,107,249,0,157,208,113,245,251,82,114,66,21,255,197,44,47,233,221,237,94,17,47,61,165,48,25,172,4,247,35,176,31,13,128,153,68,8,75,120,162,179,143,123,103,89,248,138,105,29,235,167,17,130,156,45,160,20,200,222,129,77,8,108,214,219,73,165,104,221,137,208,209,40,252,218,43,8,179,243,140,191,9,102,49,80,96,238,3,210,236,16,92,192,142,71,232,254,174,12,113,163,84,185,169,82,82,13,95,13,108,204,198,177,50,213,103,250,130,101,197,207,135,128,120,199,0,152,61,149,150,242,2,36,103,15,9,201,88,170,70,206,157,110,88,214,137,218,166,79,155,227,154,148,105,183,71,29,133,44,206,114,50,226,69,255,60,235,137,213,62,111,6,102,182,227,184,203,216,215,70,253,90,13,44,211,174,199,203,178,93,0,154,109,163,86,172,255,104,52,183,125,253,250,103,127,91,151,107,190,31,179,181,223,195,1,222,167,2,59,152,251,61,178,79,234,181,82,215,171,7,29,171,168,200, -142,230,201,181,47,196,169,100,90,171,185,186,90,199,67,55,73,5,83,163,29,206,237,110,93,136,35,73,53,245,1,209,102,221,166,199,188,147,22,158,209,23,179,163,194,158,53,158,93,12,48,72,20,111,239,105,206,125,72,89,162,180,122,187,196,89,28,204,205,19,242,189,143,125,41,80,89,106,181,110,105,144,153,229,180,2,134,66,159,148,2,143,241,214,8,17,86,7,88,160,75,52,0,206,96,102,225,146,180,210,30,236,132,218,9,2,189,6,23,56,116,6,90,135,123,59,38,167,127,17,63,200,185,81,79,129,221,137,172,21,209,136,71,118,72,232,76,189,25,62,26,252,137,165,137,109,238,140,144,80,68,90,85,128,41,69,136,142,100,148,179,112,91,86,11,163,170,192,179,138,77,167,1,227,244,67,21,130,225,195,83,27,75,89,90,31,169,95,195,186,81,136,221,79,192,43,166,138,78,185,240,177,53,2,92,33,148,143,214,252,141,137,94,65,21,29,49,253,137,133,134,214,179,87,35,133,111,36,25,138,55,107,1,54,127,134,184,245,164,143,15,168,60,61,215,179, -54,63,154,166,34,69,24,233,26,211,88,155,218,205,153,233,208,74,185,251,240,134,208,252,224,44,60,55,193,88,207,64,136,189,27,165,205,234,99,223,13,155,76,193,18,44,207,117,154,236,161,15,48,14,213,47,93,0,222,199,160,155,135,244,15,244,97,203,185,131,210,246,75,78,188,182,27,119,35,185,107,250,194,111,148,155,254,176,185,108,211,174,208,227,238,236,101,189,218,125,210,252,241,142,35,220,202,237,139,126,179,150,47,79,196,111,198,80,181,251,53,35,90,181,91,237,137,121,57,163,62,36,246,100,165,178,213,29,155,35,10,107,213,238,76,252,145,10,91,189,155,18,243,177,162,172,44,105,15,144,21,217,81,102,84,238,99,79,162,168,80,43,77,85,117,193,147,152,42,218,90,229,73,85,168,62,54,93,242,180,133,131,226,177,224,213,55,234,74,221,70,39,147,97,220,143,4,85,153,168,6,59,113,171,84,116,94,3,15,71,63,194,33,210,180,65,198,247,22,215,182,32,97,117,132,69,175,65,133,133,20,27,28,113,157,252,4,45,216,89,1,27,91,229,220,107, -141,247,1,193,32,168,166,29,169,230,142,255,33,91,200,219,159,29,14,170,198,142,122,171,144,139,224,52,186,103,10,121,106,255,31,71,87,213,156,60,187,69,255,122,113,119,13,238,238,238,133,224,16,156,82,188,184,187,195,75,233,225,59,51,204,176,135,139,103,146,181,178,100,231,134,175,52,246,175,185,183,44,105,92,106,131,153,228,238,1,214,165,88,67,50,12,220,170,123,79,149,17,76,17,100,223,84,205,72,195,131,21,74,177,186,91,211,45,91,157,113,137,169,166,153,30,52,39,84,64,113,204,77,16,92,146,76,248,194,147,45,225,203,35,105,230,137,60,123,45,246,22,132,228,126,224,109,64,111,80,201,31,50,242,80,134,31,151,6,222,28,158,204,105,138,94,159,140,94,241,66,211,177,201,153,31,203,3,73,52,157,63,234,73,236,133,20,10,216,75,107,73,38,81,80,146,147,77,145,206,160,253,25,108,100,110,206,218,99,45,156,27,255,215,29,254,200,16,136,244,211,17,55,153,188,93,174,220,40,66,176,154,30,201,161,203,117,247,226,252,253,205,70,215,245,211, -118,14,109,55,240,188,150,83,79,125,110,57,79,14,229,243,103,183,227,97,220,129,0,99,217,143,82,196,15,79,161,215,167,98,228,34,114,254,126,235,70,41,162,252,235,225,233,245,109,24,125,83,148,9,180,79,187,36,46,26,164,92,131,213,91,232,182,234,227,48,106,145,97,17,168,154,138,110,112,28,197,147,244,14,115,81,233,3,91,120,161,114,251,60,196,67,133,178,221,88,223,198,187,103,132,222,54,63,10,27,180,125,202,243,203,199,185,137,105,117,123,10,121,198,232,115,62,247,21,104,49,157,4,19,187,222,150,5,107,158,24,110,108,174,172,26,104,37,209,156,229,10,6,3,183,199,108,101,103,96,57,105,23,239,93,193,97,71,111,99,176,31,52,216,69,211,119,70,217,158,137,179,150,197,7,204,29,81,26,158,203,85,220,198,145,233,233,156,39,208,162,165,194,49,60,105,20,95,155,82,221,60,39,99,28,41,61,40,32,250,57,165,143,46,27,128,242,180,129,132,19,222,214,44,80,251,74,27,203,202,102,35,57,253,52,193,41,14,51,227,30,140,84,14,99,123, -127,241,157,76,155,206,224,117,104,100,179,18,93,39,18,22,139,87,75,137,148,219,105,19,16,218,172,211,241,116,140,186,239,126,188,3,253,6,28,182,233,134,214,177,95,29,253,101,191,170,64,46,83,252,166,104,142,79,168,141,229,60,161,195,55,179,148,46,83,101,13,36,1,106,155,74,196,189,25,212,160,55,249,75,186,86,219,141,232,96,34,27,19,218,66,196,240,96,224,76,60,254,113,156,194,120,126,230,173,42,43,153,184,155,97,17,191,136,103,179,128,9,6,142,173,104,171,19,168,69,54,230,230,171,102,242,148,22,214,59,125,57,93,193,87,28,241,84,252,125,251,18,224,183,134,221,5,47,118,27,222,15,128,216,188,147,23,115,125,119,178,35,128,174,199,114,110,238,158,90,219,237,211,49,158,115,66,110,119,187,125,56,126,39,114,94,62,102,163,107,123,2,151,202,88,213,204,85,72,252,166,251,188,17,221,253,243,67,101,165,250,186,228,252,124,50,39,80,23,250,59,182,194,250,104,13,246,6,197,184,133,64,43,112,136,137,100,7,242,72,185,237,201,163,161,112, -112,236,89,153,129,255,51,193,246,223,202,208,169,179,240,124,53,191,31,207,133,168,153,96,38,228,10,192,216,222,210,64,45,6,46,54,110,158,89,68,39,172,4,92,86,49,213,219,110,67,84,83,210,231,113,100,73,253,103,50,4,254,108,107,190,9,199,193,249,234,213,67,250,214,141,25,27,242,116,107,51,216,224,180,186,188,71,225,127,125,43,75,251,146,150,51,31,167,51,249,186,158,85,193,30,242,94,76,15,65,184,160,102,194,57,66,95,102,203,208,84,38,116,135,240,17,66,148,26,255,84,171,22,212,117,83,112,90,40,178,75,191,230,18,79,90,169,14,42,109,221,38,54,214,84,90,41,151,228,18,237,66,171,146,131,149,71,18,69,56,113,107,155,77,195,143,228,15,58,168,172,48,135,28,211,151,47,224,48,27,83,20,107,35,94,177,125,22,132,213,150,214,89,186,12,149,77,144,5,36,139,9,29,49,80,172,152,146,99,19,186,181,216,104,10,30,87,138,133,50,229,159,251,13,187,82,17,8,24,131,27,50,153,244,6,134,153,8,45,36,30,12,219,145,208,108, -186,238,118,17,179,201,119,231,175,66,128,5,234,174,241,154,97,102,89,95,23,211,13,195,225,155,61,183,78,188,101,18,118,207,123,41,161,208,225,10,118,251,84,156,198,1,146,237,231,118,128,225,244,166,157,246,110,159,142,247,190,56,99,211,198,231,249,92,15,68,132,127,217,128,171,61,41,217,88,217,106,219,88,9,66,246,241,34,205,158,215,85,251,70,136,226,102,151,179,207,70,119,58,23,102,79,198,138,29,13,153,25,47,53,34,47,71,11,14,78,199,128,105,14,134,61,12,156,90,131,159,169,132,144,39,54,120,4,166,212,248,47,28,225,139,251,61,86,246,106,32,131,170,154,205,89,72,186,6,225,71,45,171,132,175,164,225,13,173,30,229,71,179,48,172,49,127,195,175,235,47,181,181,193,187,59,248,234,187,140,130,248,3,166,195,233,93,99,112,213,187,216,74,130,211,102,8,149,6,173,108,140,173,28,101,92,86,131,23,238,255,200,167,43,89,175,50,185,80,15,123,133,72,205,148,149,140,214,163,53,211,112,96,26,241,201,50,81,162,61,65,113,34,74,170,125, -2,135,153,125,118,41,138,55,210,52,86,250,208,18,149,27,95,188,99,101,6,115,106,46,129,192,188,176,85,137,147,139,81,82,185,100,68,12,208,162,251,17,231,190,36,10,67,187,204,243,107,197,31,41,248,82,157,174,239,123,20,109,84,38,210,113,92,164,37,17,77,60,65,213,123,155,240,213,205,4,139,149,177,247,41,80,192,113,248,9,7,130,66,183,179,93,45,86,92,177,47,22,135,237,157,88,10,13,239,139,219,143,255,155,147,115,251,17,220,22,29,10,184,227,74,127,21,18,12,58,176,238,194,62,61,119,187,243,23,37,116,138,156,107,123,78,189,254,246,203,192,45,246,247,61,24,125,231,187,187,195,210,197,160,8,158,171,17,246,168,198,8,5,151,195,176,154,222,171,213,66,1,241,114,200,167,227,234,111,171,224,93,79,162,105,35,164,190,10,152,254,123,47,169,0,211,67,117,65,80,15,156,203,67,69,237,142,123,95,231,1,190,189,24,83,47,87,46,130,137,198,18,194,14,249,33,56,29,188,35,223,44,156,167,246,58,35,184,252,146,88,109,137,45,192,98, -215,206,188,111,209,67,205,216,67,227,220,14,35,58,118,155,207,98,41,245,69,158,163,201,126,103,40,4,119,250,108,92,43,79,1,169,144,134,137,52,226,55,192,37,201,107,67,105,141,14,211,140,15,192,220,41,199,209,174,213,77,72,247,0,225,29,245,148,162,238,235,182,72,76,11,156,91,121,228,128,140,251,122,107,237,84,57,126,71,202,210,24,66,215,80,214,116,195,225,184,160,74,203,188,122,56,131,229,198,54,252,179,90,210,162,75,148,223,117,147,164,54,75,178,132,70,90,201,143,219,213,35,146,18,66,153,44,92,250,116,94,120,154,184,203,9,99,224,54,112,241,86,111,46,22,101,238,177,195,126,194,245,17,107,219,152,35,73,24,246,167,250,125,61,158,167,230,54,181,51,70,179,173,45,79,96,230,5,109,241,231,106,151,61,42,79,81,161,113,191,171,230,25,252,52,197,88,229,222,123,178,74,59,37,12,186,79,109,160,120,200,69,89,74,147,80,247,174,43,243,123,222,155,223,63,209,242,138,224,42,26,245,144,98,202,222,186,215,136,137,199,11,245,185,37,238, -150,161,79,39,132,234,26,128,165,81,238,50,91,95,34,95,79,76,22,6,22,189,51,102,43,240,222,190,35,24,114,136,120,222,133,35,82,76,210,34,16,28,119,96,132,50,33,231,235,222,237,148,238,23,234,47,166,150,119,190,157,186,132,254,75,102,189,9,56,142,169,188,82,56,208,249,159,159,78,37,199,235,234,116,59,133,181,227,162,67,144,106,124,232,126,243,173,108,151,141,171,228,26,202,11,170,242,7,172,23,55,187,86,172,251,72,207,101,237,245,154,165,26,103,132,26,177,189,115,216,237,231,193,0,10,101,79,81,121,25,165,13,231,189,37,215,116,42,171,134,197,153,170,104,216,47,143,168,2,63,92,92,20,118,83,119,167,51,9,27,224,158,163,88,4,125,173,102,112,209,13,238,62,195,241,37,252,204,129,24,196,5,188,92,210,74,74,11,87,55,227,154,13,23,195,158,29,199,110,160,138,102,247,163,93,184,58,212,72,183,34,172,167,150,240,143,109,227,78,210,64,154,143,180,134,127,28,248,113,139,26,205,60,138,172,18,11,105,165,168,211,210,60,110,156,22, -58,213,18,32,238,32,44,180,214,122,65,9,52,92,44,243,188,10,79,123,136,12,107,194,29,159,133,184,244,190,7,42,178,17,43,41,141,119,66,205,26,24,38,33,145,23,11,249,69,219,114,243,149,88,147,214,250,192,53,149,176,215,84,241,156,45,176,212,9,142,135,225,107,52,150,162,168,7,251,53,215,118,237,100,149,194,89,248,237,108,99,203,199,23,206,174,123,177,235,189,88,32,57,241,38,108,81,169,150,12,29,188,115,143,152,188,223,96,13,91,210,241,33,49,147,183,207,164,175,183,56,166,54,89,195,39,198,116,251,52,173,159,4,210,79,235,54,141,38,90,174,144,197,170,254,73,76,93,228,166,167,188,26,182,248,201,181,128,228,216,55,19,94,62,167,186,106,187,246,185,4,224,39,241,93,155,186,103,26,28,191,230,45,75,230,58,42,207,89,156,179,147,197,157,214,188,209,175,214,120,169,40,141,148,13,239,110,51,183,167,126,167,106,84,113,67,8,178,31,134,211,71,43,102,243,142,216,66,249,47,182,177,82,14,39,60,21,4,241,98,15,127,125,77,87,63, -12,165,29,79,113,76,72,207,6,158,165,8,212,109,146,90,182,60,63,205,206,179,211,12,121,230,158,233,216,158,51,144,10,161,163,216,138,226,62,239,111,236,200,185,177,216,84,244,207,29,25,12,23,13,233,249,53,120,109,15,175,129,53,151,1,201,50,198,12,49,227,170,133,194,53,112,45,229,230,137,73,130,166,56,125,90,241,177,113,124,136,219,176,247,180,251,74,34,221,78,107,248,138,141,84,179,252,249,208,26,225,194,26,167,248,59,69,185,213,25,27,87,48,238,83,238,196,240,212,50,169,128,2,110,151,85,168,156,21,3,191,144,98,177,243,134,35,126,95,83,143,210,208,224,105,139,27,110,44,234,212,245,35,127,200,121,175,219,99,201,23,150,126,155,115,93,192,231,253,250,55,218,236,12,167,224,227,144,174,217,203,218,107,65,136,113,221,75,63,36,251,46,9,229,228,227,23,218,52,247,26,134,112,24,250,184,200,155,247,135,33,109,72,120,250,147,253,118,131,156,223,221,153,255,124,234,123,79,224,78,222,202,67,228,15,229,104,70,180,254,172,38,79,217,241,228, -189,91,200,22,206,17,27,23,98,67,96,48,118,238,244,219,198,237,27,196,56,216,33,235,46,12,126,187,254,251,134,64,92,147,160,54,8,172,187,110,4,140,19,190,13,109,187,104,23,5,141,101,119,241,227,193,107,220,138,15,239,173,117,91,77,112,128,90,53,209,229,2,246,108,128,111,142,24,134,107,149,61,108,156,52,89,82,8,163,73,159,250,29,21,45,141,185,0,51,183,181,55,42,164,82,22,26,77,46,87,37,18,68,136,203,117,120,44,227,94,51,76,236,22,177,193,227,99,194,66,218,250,90,246,89,227,48,168,230,168,83,91,103,76,32,193,15,162,15,242,25,62,30,171,71,154,120,228,141,20,225,194,122,20,143,1,186,52,136,14,78,210,159,162,43,176,231,55,28,60,134,133,106,179,140,165,225,149,116,32,93,244,91,58,16,130,218,16,104,224,120,135,254,9,174,155,63,104,89,174,204,169,39,66,71,202,223,135,135,242,81,76,38,35,234,18,1,14,136,190,229,167,181,18,229,10,7,184,156,199,8,244,179,239,65,41,37,55,73,115,211,132,143,137,46,93, -25,153,62,176,9,58,209,153,0,112,214,64,174,216,97,194,226,136,18,71,133,158,18,54,212,78,196,119,130,203,162,139,115,201,86,139,84,124,237,176,195,16,76,19,31,0,102,193,242,139,124,247,193,96,111,187,177,200,34,102,55,166,228,169,105,95,33,52,95,117,54,1,222,65,79,38,26,31,155,249,153,71,57,89,34,241,111,194,236,97,207,247,241,157,95,140,185,233,191,252,194,117,121,199,169,179,212,189,103,49,140,29,229,199,194,225,99,70,63,131,223,224,41,66,72,22,206,133,201,107,60,57,95,39,93,215,49,4,236,127,39,33,251,81,9,28,205,57,129,245,40,196,157,183,185,103,111,96,192,213,9,42,19,224,89,12,204,62,28,95,249,109,77,187,186,169,177,170,33,174,221,185,183,213,0,71,83,51,19,11,226,193,90,153,126,49,255,229,19,242,246,191,146,155,59,119,150,55,18,103,52,204,137,156,14,193,5,250,65,60,233,69,224,32,18,172,175,146,167,1,211,35,174,224,208,35,240,164,174,138,180,70,73,211,53,113,64,11,110,197,210,55,247,35,198,211, -52,254,161,172,102,13,198,52,92,137,206,147,34,242,126,202,51,49,214,132,200,137,183,112,162,43,22,182,148,133,97,73,74,188,173,174,156,182,76,184,160,27,180,250,226,97,185,88,30,22,128,213,109,52,23,205,74,131,59,173,107,217,68,182,241,200,250,163,100,202,84,58,210,83,21,116,90,194,250,32,230,131,255,124,105,25,14,154,43,209,153,193,173,85,165,199,64,58,61,97,181,212,153,244,43,28,206,150,139,178,56,220,97,242,81,232,61,43,115,169,181,158,211,88,120,214,78,159,183,39,42,98,196,32,151,56,236,241,95,154,95,26,253,241,86,89,137,69,183,88,55,255,194,39,172,81,241,162,201,29,155,212,47,249,41,228,52,157,139,26,114,44,250,29,197,19,7,144,149,61,136,244,215,84,139,125,186,204,141,171,49,201,215,8,209,179,9,19,196,245,232,135,24,227,79,102,121,219,224,228,186,144,170,59,202,222,67,252,161,243,143,184,45,28,47,76,204,167,184,247,253,119,87,253,251,229,215,178,74,52,76,202,169,255,125,118,118,63,91,210,19,76,109,73,1,112, -62,18,202,255,108,135,172,149,102,38,62,199,35,142,133,38,79,144,249,222,252,124,228,160,29,209,119,106,250,199,181,251,146,152,253,125,62,186,193,232,218,197,41,201,64,10,75,162,103,58,146,45,241,210,113,16,254,92,51,120,126,240,174,39,217,223,162,92,145,173,213,95,165,212,117,54,43,148,75,70,121,50,41,142,229,87,78,68,19,237,148,16,231,168,160,77,215,175,65,81,79,98,183,98,128,11,41,43,175,199,182,114,141,178,150,91,177,154,37,131,126,169,108,102,179,53,74,124,218,175,72,247,122,9,231,132,196,38,41,166,234,166,147,174,10,24,48,12,228,157,21,20,5,171,203,71,0,93,35,221,224,196,27,105,245,230,138,250,31,89,117,27,53,229,162,58,45,107,137,234,80,109,135,193,2,89,36,233,4,211,66,173,48,102,176,77,29,171,121,122,1,83,28,22,233,177,222,224,72,43,40,49,58,115,145,130,225,38,92,61,150,101,249,231,82,167,106,115,131,164,242,15,154,32,33,247,93,68,215,85,102,166,15,222,28,125,65,230,172,84,46,103,120,249,113,221, -42,94,191,252,132,154,215,233,169,109,98,73,101,199,69,230,214,76,29,73,118,208,21,231,242,224,254,59,145,30,106,125,213,180,75,229,44,209,113,224,90,72,175,127,48,130,98,198,208,118,150,119,13,67,65,115,84,142,204,233,66,90,152,116,90,4,95,199,27,206,92,13,61,173,225,228,241,57,239,147,175,147,219,145,247,243,118,2,194,167,160,240,82,229,244,227,193,239,95,118,106,248,100,152,110,251,210,245,229,23,253,44,238,194,187,232,247,209,173,28,105,44,81,225,44,40,30,83,141,130,251,65,158,123,165,211,41,83,100,127,228,231,140,113,252,95,60,233,20,238,198,62,32,223,46,165,197,134,77,136,140,241,137,244,243,81,200,158,73,86,52,70,103,179,244,252,90,146,231,197,178,134,213,121,86,8,236,26,105,205,219,207,200,151,69,44,211,146,227,84,223,185,207,230,78,30,71,224,17,139,91,154,202,91,201,179,68,45,247,27,180,74,7,135,146,38,223,169,16,224,23,113,135,106,87,16,202,70,72,222,188,83,29,150,181,12,57,36,2,85,58,119,81,203,46,63, -44,29,68,52,106,91,160,57,108,55,155,194,166,126,9,151,190,218,121,245,55,219,205,247,203,70,213,199,168,50,202,118,165,154,101,80,203,212,186,105,43,156,132,146,237,36,152,100,144,217,29,99,186,60,215,164,230,10,81,64,62,185,21,140,56,39,189,168,149,201,62,53,184,117,28,5,42,69,83,114,90,3,96,141,153,84,244,212,197,86,58,140,134,234,130,44,151,125,108,90,126,156,194,107,251,138,168,159,184,193,30,21,170,79,19,18,46,10,173,125,238,184,174,67,195,73,131,208,146,109,148,246,247,115,7,122,86,87,52,186,102,95,156,71,18,157,77,21,167,234,122,162,212,3,129,118,63,212,154,196,171,87,246,184,250,61,97,81,143,77,150,126,245,101,47,0,222,225,136,25,177,135,116,67,95,168,180,75,164,114,48,101,168,51,50,202,81,93,254,244,199,64,249,228,247,57,127,247,78,246,159,219,196,34,156,131,151,119,31,124,249,122,241,163,250,223,183,240,179,116,248,68,179,221,206,128,121,188,253,100,23,28,79,237,24,187,52,38,29,207,239,7,42,183,24,143, -255,37,244,229,127,133,108,211,52,243,22,76,125,52,186,197,219,108,102,30,53,205,15,97,110,60,209,92,83,197,230,27,250,102,142,196,107,58,241,179,62,191,58,32,205,153,77,250,103,111,73,95,115,179,39,67,201,171,168,107,81,34,86,80,247,168,34,224,34,94,123,52,43,217,53,72,57,1,174,19,114,91,189,167,8,119,87,125,78,1,30,131,39,26,163,39,236,70,35,253,209,58,10,24,225,64,14,174,64,40,22,28,171,105,80,219,245,75,253,22,24,66,186,42,57,27,207,205,99,73,72,34,210,146,23,104,86,106,206,213,236,77,212,87,149,94,164,87,233,101,189,77,169,52,40,101,74,152,110,220,202,66,209,182,32,10,70,201,188,142,211,145,118,106,149,101,101,153,68,43,89,221,169,75,41,94,94,28,9,153,106,159,35,80,56,173,122,100,45,150,227,0,186,84,53,250,26,137,112,130,162,47,73,187,32,235,1,58,187,57,31,23,51,31,191,191,126,202,105,93,228,83,123,185,201,55,49,191,246,201,28,220,248,140,84,177,197,43,146,20,49,75,130,45,220,28, -237,153,208,115,63,162,19,7,129,213,21,25,113,249,213,56,132,249,167,111,183,247,199,108,156,52,54,61,252,158,193,148,78,58,62,107,94,47,203,101,252,49,241,239,249,48,45,248,212,172,127,22,55,40,247,226,177,182,230,195,5,190,221,66,123,254,103,213,252,251,194,212,210,247,166,136,99,169,255,109,59,59,10,47,212,125,119,48,180,219,129,9,200,251,133,69,168,244,115,68,241,16,202,111,253,153,183,253,122,170,39,10,18,79,92,125,75,52,98,48,218,189,250,133,201,172,216,15,113,173,108,187,67,164,91,179,8,165,200,132,218,207,112,25,214,151,78,92,250,252,214,104,190,74,44,51,157,210,27,202,114,114,194,64,184,237,40,114,118,216,242,100,42,58,37,87,143,182,123,127,76,230,86,241,180,215,221,57,162,158,35,184,124,253,53,255,81,10,106,95,217,240,83,81,136,85,178,45,20,139,9,222,117,128,123,183,148,244,29,247,82,167,179,219,226,102,221,184,82,206,40,16,1,14,213,38,129,193,175,200,107,247,223,246,23,134,67,248,111,219,72,23,187,221,6,175, -221,192,215,87,236,119,251,75,9,174,74,195,180,146,6,98,230,239,61,240,55,97,206,175,46,23,171,225,218,89,54,94,163,142,222,158,74,245,197,187,78,44,47,245,110,179,116,193,152,83,164,22,74,68,152,18,197,100,151,186,138,216,216,90,212,220,198,112,156,57,115,175,100,190,54,192,54,163,209,170,93,81,193,227,192,211,205,12,20,137,23,206,206,52,245,161,185,94,33,167,231,51,191,62,221,220,164,80,211,157,221,204,67,55,55,191,115,130,46,205,160,245,128,166,81,67,201,89,196,175,145,165,155,143,121,25,99,58,196,178,118,18,144,246,104,207,234,104,120,78,97,196,33,176,150,28,66,247,206,49,26,62,158,215,76,177,37,187,150,52,109,58,227,55,116,139,78,4,128,208,14,190,54,142,121,153,162,70,66,44,45,67,49,43,96,181,79,122,130,170,36,227,211,75,69,20,84,191,200,179,72,255,112,145,141,62,45,127,78,195,247,146,27,96,86,141,208,79,97,183,141,185,163,55,164,254,219,78,162,212,250,52,155,137,51,17,240,45,91,66,216,37,90,250,12,11, -147,85,31,241,240,16,87,254,44,248,73,168,180,67,70,234,111,60,202,105,255,139,230,133,227,100,109,167,29,11,126,178,158,6,40,237,159,11,182,191,132,128,219,67,42,53,197,127,120,184,147,69,126,21,35,37,60,55,255,189,51,193,245,172,123,91,147,244,10,254,141,147,96,73,249,240,22,50,218,146,54,105,22,68,15,54,40,99,213,39,109,2,96,105,91,101,145,152,250,159,32,131,156,122,219,25,227,78,19,213,19,183,229,73,255,128,249,211,194,148,112,36,139,94,206,204,112,184,190,50,198,164,126,201,80,10,58,206,152,40,27,56,10,46,157,205,40,198,54,3,26,21,109,247,98,1,38,56,66,41,88,120,222,252,159,189,251,125,104,48,107,181,80,177,163,81,183,40,255,189,94,211,64,70,185,71,92,134,103,8,66,148,174,81,192,223,74,199,152,126,208,229,236,92,122,164,142,174,203,106,181,5,165,137,248,176,241,178,129,153,78,237,21,176,15,199,102,102,110,86,203,5,231,60,222,167,155,105,37,110,55,60,132,127,100,129,182,102,106,17,72,15,232,125,22,208, -78,29,68,43,217,150,200,114,53,44,71,185,1,86,113,21,37,52,99,218,91,177,118,233,223,68,55,65,25,152,22,110,204,92,221,51,51,220,9,86,86,221,103,187,178,37,84,210,140,24,222,66,162,43,152,219,21,57,25,63,76,59,220,213,5,28,238,163,205,80,167,184,28,58,230,30,39,201,0,229,165,130,156,245,165,194,92,172,41,233,35,144,23,66,229,232,69,60,112,171,200,103,168,197,205,143,58,184,239,39,70,180,246,56,251,229,128,46,80,154,21,145,235,134,124,103,254,177,137,236,69,31,180,176,26,34,219,158,208,247,21,184,19,30,108,126,159,184,185,239,106,218,59,202,45,58,42,203,151,221,116,126,32,155,196,136,250,249,30,25,8,52,232,47,201,133,135,210,255,26,2,245,196,222,150,55,172,183,96,22,41,156,27,187,229,13,251,32,97,58,53,101,71,166,164,27,207,107,218,135,146,203,198,95,23,234,92,246,125,190,15,142,244,211,5,153,157,238,24,81,198,110,249,142,220,134,52,15,250,47,198,22,109,125,197,145,108,70,85,3,165,104,210,56,146,227, -161,149,20,35,38,222,100,83,168,168,105,41,245,122,176,135,62,230,48,42,142,232,210,138,71,79,233,151,241,211,64,169,6,202,135,18,234,144,0,188,163,201,148,234,52,172,14,54,84,6,175,65,121,193,72,15,69,15,72,51,207,56,140,198,66,5,204,239,133,22,97,198,223,42,177,47,235,117,139,215,106,165,46,100,196,71,231,101,230,6,37,70,203,100,151,155,217,121,87,47,15,18,243,54,223,191,204,204,36,87,19,187,121,219,35,51,51,15,37,4,102,164,140,206,0,38,211,88,193,44,209,19,25,15,215,220,151,113,211,3,140,10,207,237,214,164,118,57,10,98,91,190,195,207,113,168,88,122,115,44,64,234,171,14,150,238,49,185,25,151,105,205,140,109,101,106,152,206,12,159,163,107,241,82,19,148,140,156,78,110,143,77,53,36,21,18,21,47,184,103,175,24,14,99,68,122,16,172,90,142,212,111,237,147,90,188,6,238,65,248,3,85,69,255,189,130,183,75,175,67,242,124,115,68,66,48,64,70,113,92,130,230,126,70,115,138,150,142,13,104,163,221,143,104,104,129, -242,255,211,62,156,1,99,98,41,12,240,190,52,193,113,132,191,221,132,6,181,172,41,68,232,129,246,124,245,240,236,252,190,107,17,153,42,143,124,120,80,139,109,121,151,76,142,59,19,220,39,199,40,169,130,113,186,137,133,63,250,185,172,129,136,185,60,106,184,164,129,3,31,187,55,137,47,107,98,139,16,215,109,102,186,168,151,115,104,65,83,234,230,210,119,180,88,142,172,141,55,238,53,49,61,117,11,34,159,4,148,0,7,67,97,145,44,172,247,8,18,100,216,172,90,246,147,50,203,184,194,2,36,178,222,93,169,3,242,57,42,183,63,164,193,191,1,57,237,205,131,13,54,115,53,106,120,21,19,156,114,93,182,243,211,41,166,78,52,153,202,105,252,248,203,133,242,226,153,211,34,47,123,23,1,172,123,32,59,141,135,172,111,190,58,225,22,120,214,225,181,38,153,10,155,243,201,22,132,185,70,133,209,114,39,131,102,102,38,50,74,131,72,50,221,247,200,206,116,82,63,82,52,163,191,39,189,244,147,143,140,12,208,120,224,197,48,211,100,9,2,87,79,30,4,168, -56,80,69,176,114,117,61,159,24,120,54,39,71,100,110,108,19,179,162,32,185,216,121,106,51,89,106,177,227,66,72,89,225,105,83,166,37,128,174,179,158,121,151,134,11,132,178,161,56,84,244,121,148,57,147,218,105,217,210,243,21,210,58,4,201,223,218,84,73,26,249,169,91,188,210,247,1,106,9,108,242,102,75,32,14,5,77,183,107,239,203,8,237,77,231,101,76,137,80,95,208,125,50,166,163,119,25,215,224,48,52,201,129,140,6,57,65,154,125,227,174,255,110,206,69,81,51,41,213,253,162,170,244,144,240,196,161,235,154,197,249,145,21,78,2,49,135,114,249,206,77,3,247,21,214,122,218,51,222,182,72,133,179,184,155,215,79,140,38,203,103,88,251,37,109,119,94,35,31,82,55,161,164,101,74,55,225,144,46,102,167,150,214,224,137,80,50,199,190,52,31,21,56,68,176,176,13,97,213,135,31,46,24,225,119,25,142,234,211,183,29,15,105,148,105,232,157,105,49,119,33,197,97,236,169,201,162,40,226,69,158,39,116,182,94,81,39,42,33,218,193,148,156,82,91,124, -146,130,239,89,13,16,118,100,217,136,107,40,92,19,58,83,203,180,103,149,233,48,59,191,240,21,129,131,91,46,52,16,15,27,91,58,171,144,16,100,142,85,198,166,205,74,101,78,206,212,27,40,12,199,108,145,249,120,103,20,190,22,176,45,94,163,149,184,16,84,31,200,195,207,13,5,133,22,203,150,53,9,129,153,94,22,196,146,101,23,31,97,102,146,169,177,194,174,236,129,159,153,7,28,9,54,2,190,9,107,155,70,10,106,9,158,8,227,185,230,158,236,167,40,25,137,42,119,104,106,27,50,178,43,242,177,1,17,205,122,194,91,106,246,85,131,62,248,251,181,78,147,213,235,121,83,97,163,22,3,76,250,8,42,245,65,100,67,97,143,21,176,180,115,94,81,137,229,233,129,96,164,234,161,174,60,232,39,209,82,2,147,88,172,136,93,126,161,136,120,255,93,244,252,135,98,186,253,162,224,237,212,171,25,125,208,253,93,196,165,8,192,127,89,53,45,43,214,104,242,203,117,13,171,200,213,11,225,59,207,190,165,151,70,86,206,235,155,62,189,25,255,230,115,252,224, -255,244,117,87,179,217,115,102,193,229,203,74,248,55,77,188,113,111,137,55,85,118,54,252,207,208,75,194,27,100,214,206,247,113,188,47,218,121,206,198,215,77,55,166,221,144,238,30,200,167,146,118,241,250,121,58,254,32,213,223,164,131,37,215,136,6,10,220,214,136,97,209,67,183,115,42,174,205,112,56,239,192,217,23,78,180,195,232,54,237,241,105,136,31,23,172,129,156,192,25,130,92,138,221,111,120,145,83,156,54,41,183,69,113,121,133,170,162,41,104,100,247,31,123,150,151,207,128,190,98,222,170,37,225,70,213,50,91,41,255,234,37,30,186,198,124,164,136,50,56,249,8,58,14,96,153,211,18,47,126,119,241,89,141,64,182,31,39,123,205,135,187,48,219,10,252,232,14,154,188,92,37,206,249,158,139,227,92,35,193,104,63,38,240,38,254,173,43,137,241,131,12,247,61,8,51,157,196,255,33,154,193,223,147,94,242,89,249,128,193,209,71,32,3,77,61,98,90,32,113,180,113,179,195,0,7,215,142,169,142,220,102,205,85,177,55,160,145,149,31,111,211,85,71,192,160, -32,52,103,208,80,123,254,125,23,58,230,216,136,251,218,50,76,108,20,40,198,29,193,233,151,219,211,80,108,179,229,159,56,68,112,22,100,47,21,42,118,237,15,145,37,18,205,150,217,97,97,233,40,146,56,116,43,20,173,191,163,40,108,23,95,137,33,233,47,41,75,201,91,59,158,19,174,242,185,110,250,44,171,100,128,84,73,176,137,60,235,12,116,219,104,107,180,99,137,82,207,36,95,75,239,119,84,104,187,130,140,15,206,207,65,185,33,169,127,142,43,101,249,211,84,192,60,148,125,189,116,203,48,134,215,57,46,190,246,120,20,238,2,4,52,190,153,166,7,239,84,156,101,181,55,19,25,70,144,13,182,171,199,123,69,128,152,144,155,94,144,137,36,35,4,196,131,5,151,163,169,188,205,201,80,206,32,117,92,228,134,39,63,238,211,81,75,246,198,211,184,77,250,66,92,1,82,189,128,219,20,127,103,176,16,54,108,90,226,160,119,52,17,26,45,63,42,242,74,243,152,154,198,80,226,21,44,15,176,183,89,21,90,112,254,19,27,125,210,233,40,221,214,54,10,150, -43,41,38,77,152,81,108,120,247,57,83,85,145,10,34,105,244,24,168,62,70,7,3,97,218,8,68,161,201,217,181,61,104,142,153,126,199,244,229,173,198,39,101,78,246,87,68,18,220,29,227,146,32,153,189,137,214,119,199,180,68,11,39,167,162,206,253,52,69,148,24,201,173,232,247,142,39,142,172,92,253,76,19,229,244,219,137,3,55,7,245,13,252,253,74,101,179,3,208,64,199,152,67,245,137,13,153,83,217,57,165,196,147,71,208,26,50,189,122,166,175,5,216,44,16,137,203,130,180,217,252,235,159,207,179,63,166,38,124,44,192,90,132,227,57,7,33,254,33,83,33,125,60,141,148,129,36,50,28,58,213,8,118,21,71,182,58,174,88,26,192,236,5,132,112,80,252,29,106,63,172,40,133,135,220,169,159,217,253,10,110,140,177,176,8,109,7,73,94,35,54,9,72,109,177,153,155,185,150,7,15,236,235,177,249,90,75,219,209,220,194,20,40,13,159,172,105,247,240,236,57,49,63,90,60,140,181,173,23,143,248,170,228,194,53,160,244,194,223,168,43,241,151,158,196,92, -83,27,9,165,182,152,38,71,123,134,63,54,244,181,231,47,151,161,106,191,209,81,151,38,219,215,0,99,53,121,17,130,236,214,2,147,110,249,171,191,85,3,251,29,160,201,128,103,218,227,149,200,255,124,162,249,77,233,32,120,89,191,149,93,33,37,151,124,105,252,52,129,42,131,37,90,128,190,109,36,43,35,203,231,82,122,30,83,48,248,10,230,17,70,202,42,66,180,57,220,130,195,41,148,116,122,108,214,164,3,233,145,146,250,33,151,23,18,17,93,156,61,103,42,74,188,252,221,134,102,1,129,194,40,126,81,153,109,55,97,188,21,50,232,108,218,188,74,149,229,55,5,139,227,44,69,146,90,49,19,65,243,224,154,229,164,70,206,165,221,246,29,230,25,169,31,179,23,9,30,199,89,86,170,250,196,192,4,104,59,0,100,38,30,62,205,144,136,219,185,217,65,160,82,84,196,208,12,0,82,218,143,194,4,196,179,107,161,223,52,50,167,182,80,33,234,128,158,5,159,81,120,61,37,125,225,60,113,41,81,114,90,5,138,36,71,226,65,78,53,100,19,100,132,183,235, -87,192,136,132,212,195,193,19,56,46,39,151,1,111,100,188,55,194,9,162,247,92,240,183,40,78,225,230,109,202,80,44,191,4,193,188,102,185,81,72,141,228,187,90,37,228,113,157,132,10,120,110,41,75,155,126,218,190,200,245,53,46,188,61,202,92,174,61,141,236,23,175,159,86,166,236,91,79,41,254,243,87,227,164,111,135,112,145,127,38,22,37,23,27,74,165,255,253,173,168,48,182,206,221,203,176,3,109,168,63,90,160,221,118,36,142,206,187,218,139,185,112,240,140,80,207,103,106,57,63,72,142,248,168,187,168,227,32,60,58,12,21,164,226,49,115,205,235,234,1,247,142,63,234,76,90,79,154,179,163,246,149,81,127,92,168,113,246,175,161,143,82,166,103,43,82,244,10,28,169,168,0,233,216,130,162,102,163,105,144,50,6,22,70,163,235,227,244,66,219,38,40,223,232,74,133,66,78,229,133,31,50,32,77,28,169,25,124,232,133,119,162,108,248,49,83,85,182,178,19,113,94,161,124,79,138,242,89,98,119,188,123,169,16,110,32,144,85,92,124,140,166,97,97,211,180, -10,50,43,65,101,224,173,237,179,180,202,201,191,4,86,62,219,28,82,233,143,132,141,225,97,155,229,72,50,51,225,101,64,219,108,0,52,210,48,250,196,84,194,198,205,245,12,66,96,127,82,149,185,208,144,174,99,105,129,138,109,50,40,115,115,19,19,112,255,80,176,233,141,84,207,138,131,41,165,47,41,89,81,206,198,76,116,123,234,212,135,23,5,190,3,121,151,111,128,93,14,150,4,36,216,139,40,42,143,143,255,192,158,9,212,67,211,93,203,111,164,158,21,222,42,91,76,81,16,63,74,138,96,171,127,214,53,163,236,64,54,47,189,46,105,222,226,80,101,73,9,162,227,186,56,90,183,50,254,145,39,232,114,237,45,83,69,78,117,12,211,133,144,227,89,122,91,209,194,151,32,220,252,113,66,210,210,222,91,13,66,176,230,144,153,51,156,238,254,19,89,157,218,219,72,74,135,73,165,216,27,73,173,121,59,7,12,95,58,157,22,172,57,17,106,237,76,45,211,23,25,182,79,32,109,161,41,250,166,168,13,181,100,142,164,13,195,47,158,156,22,120,148,67,58,177, -69,143,108,210,55,21,46,142,81,60,233,40,94,251,133,211,32,21,84,166,164,170,5,73,52,58,175,112,11,208,139,217,160,141,172,193,89,75,244,193,128,22,163,115,205,82,41,121,116,27,17,246,138,116,58,37,209,243,105,2,197,129,174,73,25,85,26,128,206,204,140,56,204,172,6,26,223,117,62,115,249,198,74,44,29,254,174,170,194,202,251,79,237,55,39,57,137,9,209,71,19,121,246,89,70,194,246,50,106,80,211,54,111,21,20,114,70,158,232,219,216,102,121,137,26,209,197,191,183,171,89,97,42,225,11,35,39,116,153,155,55,12,21,164,82,53,81,6,1,142,85,58,180,161,132,218,145,138,1,164,233,42,7,63,213,134,31,203,112,246,160,209,174,9,178,108,58,22,197,197,118,101,232,5,45,133,146,177,177,86,49,7,31,199,64,248,142,243,128,80,161,64,156,246,85,1,141,30,49,142,19,72,238,5,209,95,38,206,77,107,163,247,60,250,228,128,106,81,122,45,138,227,252,201,254,229,94,7,252,50,162,228,166,90,115,103,55,99,77,22,57,164,217,46,126,65, -176,116,158,167,13,195,205,243,214,194,185,248,131,185,120,107,6,209,63,199,171,44,22,125,231,219,72,241,213,174,90,212,83,126,191,55,93,3,98,168,32,42,1,78,101,235,97,131,70,230,70,133,221,125,162,190,152,34,245,85,14,16,47,54,234,51,5,125,2,114,5,68,87,88,178,160,12,167,143,49,87,116,107,54,38,133,245,213,200,54,125,199,26,100,76,241,40,254,59,208,229,236,111,9,130,51,141,64,13,176,76,170,66,234,65,214,52,125,17,251,189,136,19,105,165,88,130,198,250,136,175,28,123,107,106,152,72,211,169,50,169,147,156,62,221,108,202,81,54,93,207,73,62,105,96,12,63,103,104,114,42,3,128,55,49,69,202,93,59,145,213,1,230,81,32,61,94,235,116,219,178,246,93,4,248,36,159,99,81,153,165,114,114,45,105,114,106,150,29,243,156,218,40,188,156,106,190,242,44,35,247,147,26,34,199,163,50,203,202,209,159,44,88,21,93,1,164,116,171,97,24,75,204,98,248,97,54,51,9,0,52,156,226,205,67,102,84,246,193,0,173,189,60,153,14,0, -194,176,11,194,255,33,227,117,54,242,134,49,105,176,72,172,18,228,244,112,45,201,168,171,225,98,69,142,100,207,0,179,235,192,78,251,71,43,157,13,101,223,72,17,195,67,17,14,125,232,172,166,232,198,197,251,92,191,116,133,190,162,2,253,55,17,231,71,191,172,31,229,170,219,30,187,140,89,92,101,141,99,100,120,169,182,60,63,136,76,135,189,121,91,217,61,105,118,201,170,225,244,234,65,54,155,181,230,240,224,86,60,224,106,146,11,21,245,206,147,191,163,141,151,164,123,0,100,153,30,226,48,60,236,152,49,38,100,50,188,98,236,66,22,167,48,74,80,216,15,131,169,113,96,185,30,213,26,84,101,72,1,14,158,119,253,109,53,176,18,146,167,16,57,233,145,214,216,82,61,210,141,19,89,111,217,196,64,72,40,16,67,2,43,152,187,124,204,224,99,57,22,47,83,208,139,112,44,40,195,82,212,182,40,156,155,82,148,82,114,120,154,168,242,162,27,6,239,156,110,27,166,200,114,208,45,10,104,81,101,252,140,174,73,43,12,180,195,73,161,99,220,216,16,65,51, -234,42,143,62,148,27,210,86,149,187,124,130,4,35,54,129,179,141,55,106,58,50,51,122,201,32,39,198,19,124,226,5,16,238,108,190,241,41,61,99,163,74,114,249,119,226,7,63,255,213,18,21,22,46,36,40,218,162,105,162,194,106,231,197,234,178,33,14,10,43,44,90,150,131,85,40,158,4,246,61,148,225,2,132,113,8,125,159,177,149,178,6,113,144,198,254,169,176,24,203,155,6,44,183,161,152,193,194,119,120,97,178,19,199,175,108,113,8,8,168,247,2,112,8,149,53,146,153,207,84,77,83,143,130,248,139,233,135,104,43,180,149,71,207,208,83,92,82,175,108,30,229,233,223,219,241,156,210,108,116,102,151,189,135,241,213,37,111,220,242,182,74,241,83,242,214,192,248,132,25,228,121,26,41,218,99,77,5,123,74,174,200,131,9,232,138,255,80,240,191,143,131,20,38,199,9,152,50,145,98,44,99,234,203,27,40,83,34,79,95,1,157,114,31,32,115,232,145,5,35,190,119,144,131,30,34,85,201,205,90,88,61,209,157,48,54,212,172,245,68,172,39,70,68,137,249, -210,12,36,149,191,53,109,57,127,135,165,47,28,255,146,227,1,3,246,131,124,245,225,72,36,141,155,40,106,136,82,41,18,77,167,37,170,39,143,149,22,75,82,123,212,116,153,169,45,41,16,113,42,45,91,51,120,67,244,195,32,69,145,91,236,162,193,45,163,100,166,149,218,84,175,1,47,48,76,119,32,165,87,116,21,235,189,11,167,123,115,226,212,166,85,46,224,49,42,243,232,239,120,208,2,105,246,168,201,152,103,85,147,32,64,30,249,24,115,94,70,229,7,68,138,199,146,49,203,202,62,113,176,143,255,114,59,211,243,204,97,52,173,188,156,24,216,0,202,244,189,230,123,230,42,5,148,196,243,112,134,190,139,231,213,76,228,178,6,182,183,111,244,13,90,84,68,131,12,23,233,71,24,1,105,232,125,126,244,127,2,161,227,173,48,80,56,229,213,202,85,204,174,102,50,126,104,224,128,161,162,158,203,16,12,122,211,75,154,1,99,21,131,177,19,118,24,33,98,138,252,229,116,46,166,126,181,197,118,76,178,163,185,236,149,159,140,49,121,227,58,82,156,36,130,81, -227,60,254,179,225,228,164,22,38,76,205,40,102,190,135,190,88,248,135,125,163,47,37,67,242,189,128,24,77,131,187,56,238,91,217,102,74,224,134,126,215,64,25,222,65,38,33,65,108,90,103,132,152,132,131,136,56,18,242,18,55,54,100,163,226,88,102,173,84,143,13,56,105,92,20,73,166,121,48,239,116,32,183,184,155,62,251,134,30,176,240,87,44,43,36,189,161,134,226,24,55,76,141,192,222,28,244,68,80,21,107,149,198,250,40,41,73,109,133,51,153,169,178,60,69,145,217,135,188,21,247,48,76,81,188,202,48,72,67,210,61,173,204,64,243,150,137,40,252,223,127,246,222,181,227,226,25,190,165,107,50,61,65,7,254,133,171,170,202,82,78,234,87,70,194,57,18,202,178,32,149,149,25,249,56,135,178,44,74,77,71,178,14,238,164,46,50,36,225,45,252,23,119,202,130,0,213,166,25,107,68,233,254,45,49,224,118,216,13,164,21,55,180,66,49,133,5,136,86,29,149,18,13,138,89,249,233,21,178,123,236,67,24,43,53,131,29,96,179,17,3,42,2,73,144,31, -127,244,23,193,121,51,245,130,148,239,64,71,116,244,20,6,46,68,60,235,200,87,60,249,129,202,130,235,32,93,195,58,139,132,27,179,114,9,75,25,72,204,176,136,136,20,225,194,231,63,155,191,179,191,211,65,131,193,116,218,206,37,232,173,164,140,119,181,83,72,88,107,156,135,127,54,148,60,215,194,191,113,231,206,60,55,221,27,119,194,127,184,163,133,81,171,128,216,95,57,92,28,153,151,151,203,205,172,155,216,222,140,199,148,202,1,60,24,164,171,105,172,89,76,198,135,189,144,80,130,198,69,14,217,100,69,156,203,238,215,49,125,56,31,255,171,33,75,61,4,84,79,64,92,90,54,154,200,13,57,0,176,223,183,143,16,236,246,24,78,117,73,201,231,27,120,148,132,14,196,78,22,58,21,54,136,166,177,114,175,32,220,240,204,105,163,24,189,199,138,231,153,247,210,40,156,172,112,163,123,131,210,111,101,166,53,212,29,100,7,143,158,110,98,175,251,36,127,239,3,36,181,206,46,90,220,22,138,106,134,163,101,148,37,202,82,38,202,96,78,180,198,114,211,175,112, -100,231,212,50,112,43,188,49,218,159,98,210,10,63,249,35,248,221,99,137,41,46,211,162,232,163,61,108,90,61,49,124,251,203,36,192,195,105,34,81,6,13,138,91,132,121,7,228,177,247,33,148,13,46,6,159,22,66,196,176,64,219,20,177,207,27,44,178,165,135,178,55,227,32,233,253,72,6,54,71,15,63,63,8,16,42,68,242,176,82,47,244,253,184,115,13,201,30,130,194,142,253,195,10,37,172,188,200,223,162,174,113,169,237,41,198,5,86,253,119,175,38,163,151,238,230,188,83,243,249,196,78,123,61,2,49,211,223,150,183,145,232,215,214,150,68,79,137,174,174,159,54,166,230,55,25,201,72,160,167,56,221,79,189,200,210,209,10,201,145,121,232,254,8,9,187,65,202,233,252,60,98,87,5,139,148,89,212,78,92,23,69,104,165,76,140,239,99,19,82,26,23,61,20,17,199,212,88,45,82,71,14,56,216,209,239,7,25,230,185,15,221,3,138,94,188,9,221,126,110,131,57,130,227,14,125,119,111,255,232,163,164,230,227,147,6,139,161,232,124,77,172,109,41,247,232, -160,37,133,83,58,137,167,93,254,109,195,100,137,155,62,127,166,240,50,13,94,86,83,240,222,193,57,212,32,136,253,134,193,60,184,131,64,118,137,219,42,2,71,214,46,15,58,145,188,144,103,241,22,130,92,218,34,39,60,188,225,12,103,148,59,201,46,79,83,217,62,165,102,204,162,82,186,107,129,5,67,208,122,202,198,203,226,104,152,136,144,150,136,113,187,32,158,34,51,229,52,98,220,38,106,68,98,30,198,27,232,152,85,152,57,97,237,17,26,132,182,115,98,79,201,141,0,51,220,236,179,36,142,110,190,33,56,55,147,185,111,197,254,147,153,8,110,15,52,116,96,134,134,248,197,94,207,13,237,36,225,23,147,205,224,22,122,23,31,121,207,69,203,103,12,202,238,196,93,247,29,24,12,50,115,92,32,2,235,89,82,73,241,7,219,242,89,63,227,230,248,60,201,86,186,32,20,108,126,118,48,100,13,222,163,145,80,28,184,83,172,173,3,83,204,22,244,48,19,184,73,49,143,60,132,152,89,156,180,77,233,95,176,215,76,212,35,38,46,44,20,4,162,136,5,245, -41,13,193,164,231,96,35,31,137,11,140,123,27,78,40,168,178,152,253,170,255,27,44,17,4,33,133,28,242,60,182,195,21,138,192,49,137,130,158,127,189,62,204,173,150,188,186,200,7,99,16,117,122,204,180,87,236,38,175,227,36,33,106,76,66,39,32,104,40,6,27,76,120,52,141,254,8,73,227,96,243,47,15,138,198,76,126,20,121,233,134,130,85,170,86,19,251,0,143,83,194,4,240,147,179,99,59,196,104,240,253,14,209,105,69,84,19,69,78,244,151,8,144,172,142,120,81,16,61,101,137,198,255,38,137,40,58,37,118,74,39,120,178,194,200,109,29,191,178,210,41,105,165,166,123,31,138,40,141,152,180,208,235,166,153,131,104,181,36,6,81,0,219,183,113,181,228,158,10,193,197,141,84,247,143,198,223,228,201,189,78,198,17,76,124,203,14,128,245,3,146,178,195,124,75,148,109,246,190,27,222,63,68,152,251,106,98,17,166,227,15,116,118,110,80,169,44,252,216,136,46,199,161,137,137,18,159,145,41,186,150,36,137,21,26,74,29,85,140,247,51,220,121,61,54,215, -125,144,146,13,38,5,219,62,228,86,251,84,158,170,215,142,53,220,46,63,185,102,20,214,84,63,152,6,98,92,12,191,183,179,212,36,226,166,196,190,3,164,141,31,53,37,52,55,188,72,238,117,63,66,148,95,20,220,183,120,61,2,251,104,139,163,14,249,103,255,122,51,132,213,61,85,117,185,247,126,31,197,98,169,107,162,250,163,199,153,146,17,124,242,198,35,246,15,6,112,191,190,91,222,220,30,212,94,218,82,229,244,187,177,27,117,93,206,26,196,251,151,226,38,101,48,195,25,137,54,130,82,96,222,123,233,5,75,242,74,71,152,50,53,225,41,113,149,125,38,186,66,21,229,199,200,130,236,150,160,165,179,169,110,252,112,81,209,221,165,0,65,54,241,225,121,154,133,92,211,162,200,164,248,132,134,183,150,205,200,50,39,222,21,210,52,229,51,172,194,190,164,155,82,62,249,28,183,150,184,225,161,221,35,106,1,176,83,11,81,106,137,160,163,0,174,239,64,10,173,189,4,2,192,14,46,50,106,250,67,245,4,114,151,105,130,210,248,153,184,158,220,227,164,75,64, -133,11,236,96,253,208,34,135,255,118,176,233,174,13,142,250,52,63,106,53,181,86,68,209,5,153,208,128,160,55,230,137,27,62,58,72,159,212,55,31,249,18,243,20,18,69,49,43,35,41,125,10,216,186,131,78,67,57,44,63,150,191,109,251,98,216,54,127,158,118,156,0,255,243,180,230,194,51,122,211,183,243,84,145,88,47,102,148,94,190,199,156,254,200,143,35,36,174,228,95,207,69,50,254,99,26,63,14,149,111,141,76,111,31,68,17,219,106,224,62,93,161,84,156,166,104,214,189,201,150,176,16,6,125,222,112,253,195,5,218,91,213,179,77,117,111,111,200,39,26,25,23,178,199,99,30,172,176,124,134,200,100,190,121,6,219,4,213,175,148,138,144,255,232,227,184,149,232,166,139,21,33,197,223,131,182,162,64,98,7,246,195,6,79,227,21,106,62,54,208,59,32,180,68,227,187,226,211,139,25,208,169,197,42,109,196,105,127,28,192,14,191,60,230,104,239,206,200,127,121,182,160,91,75,150,184,224,62,108,99,241,134,85,98,133,167,39,216,38,56,39,169,39,70,193,101, -231,3,231,60,162,92,79,220,88,30,139,247,143,74,51,243,245,65,69,131,92,226,68,131,224,246,37,9,56,64,138,141,12,31,251,63,213,147,15,156,134,111,243,23,111,85,65,96,63,168,49,136,94,202,164,211,216,13,143,17,86,156,195,22,176,211,67,177,32,252,194,181,52,241,21,219,218,12,15,64,209,209,11,77,173,162,116,100,135,254,157,159,212,242,34,16,91,194,115,123,151,136,34,117,101,16,52,71,53,225,177,67,57,105,78,234,219,198,97,175,181,115,122,18,23,133,155,158,183,144,151,89,6,87,140,119,98,194,87,67,170,94,123,28,126,53,48,226,160,202,59,200,165,205,249,71,109,31,33,232,69,237,235,112,228,194,92,131,158,237,62,31,189,138,188,210,77,58,193,248,118,116,110,11,6,92,100,71,231,185,94,83,127,128,213,34,38,100,91,189,57,28,99,72,198,199,229,237,154,253,197,7,11,35,239,230,111,94,134,114,6,98,249,253,77,172,250,160,174,211,6,245,190,222,85,220,24,163,40,254,101,214,134,20,255,104,115,93,193,245,233,133,141,48,31,101, -106,170,68,85,70,96,239,103,89,244,78,46,107,1,188,137,192,44,245,210,69,237,84,76,183,20,94,69,149,133,153,156,70,236,148,190,39,106,102,54,212,228,164,14,76,57,76,207,44,53,107,169,35,138,41,2,224,55,182,67,136,156,144,21,62,244,3,167,254,70,136,72,27,215,155,42,126,68,95,240,132,243,201,61,143,33,206,190,45,86,5,128,211,32,35,101,204,11,147,0,119,63,153,214,72,94,206,68,200,109,236,6,37,90,28,163,102,175,194,239,207,2,143,203,198,33,142,165,131,11,143,68,114,47,113,98,46,241,251,115,71,179,66,15,0,224,47,61,201,32,6,4,211,23,247,154,52,122,131,224,185,111,34,26,246,125,170,29,33,16,88,123,169,207,207,203,218,50,131,235,243,159,219,133,66,22,94,95,241,181,68,140,235,249,185,76,169,126,181,185,125,139,147,142,166,118,226,48,230,17,220,29,143,122,72,196,219,41,130,34,250,56,176,202,121,228,89,211,43,25,82,76,194,199,232,194,173,15,70,8,28,214,57,169,113,91,131,249,17,103,100,145,107,158,186,113, -176,193,112,130,33,178,6,233,161,141,32,13,65,71,51,197,188,180,97,30,38,192,148,41,244,96,154,117,1,39,57,30,5,104,135,70,119,250,48,43,170,137,239,47,230,163,178,146,20,210,31,99,24,19,67,44,3,41,123,184,139,52,238,109,216,239,72,0,231,29,172,169,91,184,134,188,86,169,184,190,222,2,225,152,99,85,86,172,74,82,225,33,102,36,153,17,91,186,72,124,240,57,81,145,208,83,55,31,15,248,140,114,86,23,196,175,63,244,27,207,211,56,197,233,23,197,137,55,178,19,104,78,216,23,18,65,238,78,213,43,11,181,110,85,7,0,246,253,26,224,85,175,39,2,174,123,26,33,7,226,45,182,129,51,20,243,12,17,1,196,182,52,230,177,25,12,113,63,77,229,69,97,116,202,54,2,54,135,234,30,64,53,21,30,138,170,8,244,242,30,151,59,233,113,101,148,52,82,158,116,204,82,213,232,170,215,97,177,29,252,68,78,24,159,252,34,10,153,127,26,243,7,252,139,118,159,203,237,24,161,119,18,59,105,213,76,129,183,151,90,177,48,166,214,177,37, -10,250,47,109,251,80,106,172,46,92,154,150,124,78,106,176,89,62,246,172,41,73,108,201,82,32,49,225,54,184,131,13,222,233,189,204,216,158,70,127,66,82,215,73,161,203,173,197,152,193,195,88,121,63,31,243,137,24,107,120,140,117,115,15,232,237,244,65,29,71,56,170,133,114,48,125,146,49,90,252,246,246,240,212,80,118,210,20,103,240,147,9,254,106,174,114,144,50,237,188,2,215,41,234,211,220,120,222,133,225,214,135,46,12,191,113,194,231,15,39,28,86,69,21,197,225,104,239,35,7,115,96,138,131,67,65,255,185,126,57,254,17,42,253,164,90,220,121,153,78,255,202,195,172,153,50,250,13,157,254,217,123,57,156,132,19,21,17,255,217,166,131,136,198,63,220,16,59,126,107,63,163,32,48,246,121,200,107,93,167,136,34,132,253,2,53,172,91,68,52,224,36,212,12,77,190,197,33,248,83,245,224,187,68,150,107,146,126,98,231,27,184,239,56,203,73,209,94,194,195,176,176,7,146,130,73,151,121,85,123,93,193,200,121,111,34,238,21,125,166,178,148,39,237,106,43, -46,34,234,167,255,169,245,161,208,114,166,14,107,126,157,239,68,203,127,94,91,71,132,16,179,190,29,27,108,187,75,96,239,55,232,206,111,163,103,30,47,10,179,85,131,103,11,35,233,188,20,168,232,142,247,43,72,227,240,68,44,198,156,177,159,15,121,20,226,19,45,182,72,141,153,220,29,219,134,157,59,150,13,227,127,248,240,21,206,165,146,87,69,88,140,76,160,197,157,101,121,64,75,192,225,76,10,191,236,40,175,228,132,196,171,45,144,34,237,21,5,198,211,140,15,6,53,23,85,140,111,123,108,51,191,154,83,31,176,80,204,207,219,60,171,15,253,116,111,135,26,71,247,248,209,253,106,247,202,90,132,227,251,225,61,231,39,140,50,205,153,252,52,159,162,217,89,154,195,92,196,47,95,112,126,80,181,248,55,145,249,17,156,29,21,242,31,6,140,130,238,0,143,38,155,31,53,17,61,38,203,2,228,218,135,121,15,228,177,205,195,204,96,186,114,129,90,182,97,180,97,96,29,217,80,203,194,238,229,101,90,130,202,224,3,96,210,25,98,67,63,248,8,51,163,196, -251,177,126,4,40,147,162,112,124,127,17,117,149,54,48,41,77,152,223,106,175,35,18,244,238,243,196,253,81,131,194,36,111,253,27,135,134,172,239,79,194,223,37,42,184,88,202,122,219,79,33,86,248,59,77,255,24,188,135,73,68,123,100,66,94,91,47,49,174,152,248,59,105,22,57,30,86,137,55,87,15,171,131,81,78,37,235,119,180,194,49,170,3,136,175,72,152,195,248,53,240,136,22,43,24,225,78,55,149,54,180,115,36,147,117,248,159,30,110,192,89,19,210,54,59,229,31,172,180,52,15,117,155,130,203,29,233,188,194,195,88,128,107,31,1,48,141,252,52,229,50,33,242,163,54,76,230,189,184,138,104,49,99,171,168,122,43,207,211,199,155,185,123,219,103,8,223,161,110,96,47,203,16,174,197,110,245,95,105,24,23,14,56,231,174,227,86,154,233,226,12,78,174,235,120,16,202,147,180,95,45,20,25,78,143,226,56,226,246,135,130,155,147,175,52,77,72,63,245,8,19,209,103,153,142,32,11,67,78,38,182,125,182,73,152,27,28,142,46,80,221,54,143,50,241,206, -74,13,170,91,150,246,188,1,56,170,32,126,206,222,139,201,96,217,199,196,48,135,147,103,176,9,154,190,32,4,154,225,115,80,132,57,106,32,105,128,144,53,2,166,194,241,142,194,19,24,154,220,97,145,131,15,135,207,241,202,125,37,195,107,247,187,203,100,84,194,207,172,146,197,135,207,124,186,251,152,33,25,226,239,65,236,15,241,190,253,250,32,60,218,239,43,247,137,220,167,210,43,179,11,10,69,51,233,3,121,73,242,52,75,137,17,231,12,177,19,62,238,114,48,53,98,132,176,60,218,195,227,13,251,112,183,246,21,158,32,235,212,85,154,203,100,209,106,177,6,117,9,102,5,194,178,159,190,214,164,47,225,73,138,39,183,0,249,145,151,49,132,148,38,194,221,196,244,149,191,70,25,28,95,185,97,230,252,165,126,222,126,21,109,253,199,178,240,123,19,72,92,222,39,127,137,2,133,163,36,129,104,82,22,254,182,246,170,142,8,85,147,43,175,51,223,171,191,188,36,151,187,217,153,237,212,202,10,203,196,241,117,132,179,189,234,27,8,169,251,15,33,176,27,21,97, -6,233,63,244,154,107,29,30,171,108,43,63,97,4,114,150,65,153,158,38,168,236,16,215,53,78,32,27,248,225,132,8,184,123,93,24,5,213,97,159,235,244,206,64,92,237,151,232,186,122,54,80,31,117,225,25,241,177,205,27,62,12,223,143,137,215,19,53,87,158,9,91,28,151,38,23,118,159,209,155,41,249,167,251,67,111,23,92,125,241,71,233,64,253,253,173,213,59,53,179,67,94,28,222,166,72,60,123,228,57,175,209,148,8,246,117,42,183,195,243,245,203,29,39,219,149,161,18,166,163,84,239,7,108,175,115,126,183,241,47,112,85,230,183,212,158,217,32,41,163,248,97,221,196,173,204,27,110,65,170,86,154,152,32,249,140,121,132,88,87,210,245,3,99,218,146,144,166,217,76,127,121,205,75,185,213,21,216,10,115,58,8,210,71,69,24,7,129,106,188,80,115,86,33,32,0,63,213,117,110,195,13,72,224,116,125,187,86,19,229,54,5,206,227,160,80,255,101,170,122,202,168,37,40,36,144,76,14,142,175,56,2,237,118,99,43,239,240,85,38,49,255,128,33,204,159, -188,229,245,34,69,65,4,201,167,198,186,178,77,126,8,17,46,27,177,105,25,229,44,172,132,156,253,158,38,121,173,7,96,168,32,158,165,54,134,28,180,10,26,234,204,236,250,108,187,50,81,58,27,197,65,132,17,207,156,217,34,152,46,240,17,254,151,213,152,15,255,104,30,62,161,45,156,150,5,214,233,196,107,143,166,231,17,114,254,184,91,152,87,15,120,205,119,245,177,113,108,248,217,89,182,248,218,219,63,69,250,202,123,42,204,121,107,82,240,136,53,154,206,252,231,168,140,48,185,187,83,52,222,189,61,132,191,129,47,150,67,36,153,202,241,17,57,84,181,186,139,225,7,238,210,244,252,204,123,58,2,70,212,141,62,110,0,125,22,179,80,173,125,85,140,75,95,195,19,6,239,158,157,50,234,210,14,69,3,15,56,185,115,215,168,78,29,103,157,46,163,247,50,106,149,98,179,2,45,168,36,51,171,190,226,38,140,146,23,136,130,251,38,69,72,118,77,222,67,147,230,38,87,201,222,67,158,182,72,46,124,66,237,81,209,165,161,123,73,158,112,126,144,52,26,176, -26,166,185,154,187,213,234,40,57,239,247,173,196,115,151,50,137,238,242,183,15,195,220,61,8,211,145,145,44,218,192,117,77,17,49,98,169,146,200,113,137,246,73,27,139,139,170,212,103,160,60,108,114,128,149,112,226,4,126,65,1,26,125,92,24,2,131,146,157,165,196,24,180,31,182,104,27,205,207,182,59,163,92,25,62,157,122,253,133,160,214,75,206,29,42,68,225,79,97,43,188,253,156,251,203,175,156,28,181,88,138,85,111,119,91,51,95,153,63,177,120,179,79,161,62,135,25,65,8,81,94,155,243,63,163,242,217,212,61,14,243,36,81,123,96,189,217,154,186,89,39,57,147,72,39,139,122,48,145,47,10,147,185,182,99,247,29,73,100,49,63,29,248,137,135,45,171,171,31,187,40,90,70,194,90,19,3,176,31,208,226,38,10,128,225,24,68,116,168,57,123,68,111,210,214,113,178,243,30,175,49,235,197,89,212,42,32,41,93,204,70,121,195,203,42,133,133,213,173,191,79,102,253,221,198,62,113,36,187,47,213,198,62,191,39,243,252,139,181,198,174,150,119,201,232,22, -111,37,122,227,18,71,215,248,247,230,106,230,86,69,121,207,188,222,103,152,185,20,199,36,188,75,120,64,115,200,61,12,51,35,12,180,149,8,184,6,49,106,137,141,72,156,128,239,33,184,231,224,132,42,39,80,70,14,154,12,224,60,17,111,236,234,68,59,58,217,22,236,18,80,102,203,186,249,236,161,216,4,42,61,156,79,100,89,166,230,120,38,161,130,212,251,226,182,54,21,255,135,51,20,60,8,234,63,176,199,66,91,247,103,65,177,233,56,252,34,146,127,38,49,101,254,167,25,158,11,56,249,227,209,68,191,154,100,23,161,122,239,190,61,48,81,63,119,218,141,14,96,46,93,29,253,9,222,173,27,222,173,187,24,200,81,98,23,76,230,67,6,148,16,5,155,249,125,3,228,84,228,155,84,45,13,151,80,240,185,18,187,50,199,36,218,167,54,40,237,82,127,195,123,79,2,222,160,181,41,142,117,122,89,159,49,104,254,44,178,50,126,90,11,184,45,111,73,152,141,239,14,152,107,45,187,141,74,117,157,35,57,157,181,42,189,85,234,197,229,172,92,154,237,104,149, -7,105,189,7,181,102,59,248,149,254,35,207,1,58,170,19,87,91,94,130,98,235,111,194,122,226,219,122,41,9,108,17,125,16,151,214,3,211,80,18,38,28,192,247,128,14,50,210,36,149,200,142,56,99,231,95,19,145,37,244,143,226,245,67,63,253,121,159,77,248,110,4,50,107,58,245,79,130,84,115,200,30,107,170,31,127,181,63,235,252,253,231,34,151,157,45,10,44,205,22,9,39,57,13,207,61,231,21,88,198,251,12,65,32,127,231,86,218,159,132,131,87,116,234,198,134,248,230,119,241,250,137,219,175,33,150,149,93,139,108,66,100,202,126,82,138,255,210,186,148,125,227,75,18,102,72,212,72,230,130,102,138,86,43,131,218,137,54,163,153,147,112,77,40,141,86,112,233,11,94,204,71,3,18,35,96,206,24,130,34,237,93,37,99,242,202,171,4,14,128,198,19,230,251,246,242,79,251,81,196,63,150,5,174,239,73,192,53,125,107,240,107,18,176,171,155,130,118,243,184,128,180,110,57,35,66,76,216,121,208,60,239,82,126,49,93,140,166,159,52,183,168,42,88,147,78, -238,35,205,173,146,239,134,56,20,124,156,185,69,248,120,167,141,250,136,75,180,245,128,164,229,18,78,34,247,31,116,147,171,170,70,224,153,170,254,170,190,180,220,210,100,226,178,187,41,128,63,241,100,177,77,29,219,141,28,183,27,132,81,248,112,199,125,181,155,226,236,27,142,36,129,114,118,48,53,91,60,220,169,50,60,251,20,193,63,154,85,25,109,123,243,235,202,186,253,25,29,254,148,124,140,143,205,152,104,30,60,30,136,108,171,222,141,244,31,166,188,206,211,73,30,219,210,144,238,166,167,221,230,92,234,25,116,96,139,58,197,3,103,109,198,230,11,249,151,116,175,77,251,178,169,83,170,34,143,138,153,16,194,70,74,57,21,246,2,21,46,199,19,53,100,151,172,202,181,13,117,124,162,214,49,1,172,230,20,116,155,131,122,70,183,192,221,213,144,186,161,206,79,210,90,85,53,174,111,50,92,144,102,22,89,26,134,157,68,155,196,185,51,41,201,125,92,126,125,167,235,172,42,207,114,54,106,243,105,86,212,231,196,236,244,111,129,91,28,21,17,35,233,25,45,182, -203,18,125,141,110,72,1,62,11,123,15,158,113,5,2,209,120,213,168,218,90,142,44,117,35,11,117,122,155,239,235,164,96,217,225,227,67,141,65,216,36,255,93,94,252,167,249,177,107,7,73,120,212,130,175,232,25,9,71,245,223,167,233,21,206,121,197,69,47,190,89,152,169,95,112,50,29,61,181,186,189,216,59,203,96,238,159,174,8,117,203,211,141,72,162,192,150,245,220,50,62,119,31,18,12,82,71,251,124,97,83,201,152,70,14,148,36,93,6,82,173,168,205,105,178,184,206,53,167,250,70,1,229,82,235,253,241,141,22,116,115,82,90,23,197,31,204,89,69,87,46,120,67,172,71,160,130,152,122,97,102,226,109,156,14,47,17,93,110,81,121,47,248,127,117,103,109,41,174,174,137,31,65,222,137,253,190,223,119,195,236,136,154,162,242,131,233,18,254,52,157,243,162,172,66,176,110,212,167,101,89,31,105,152,125,191,148,249,95,44,254,193,67,80,128,71,24,182,251,77,84,185,95,147,223,21,121,232,230,122,34,185,145,83,101,178,156,105,234,249,255,136,120,175,30,245, -186,46,79,236,171,60,87,115,101,121,220,125,225,11,143,44,205,55,176,175,61,26,89,79,187,71,227,118,135,183,213,111,119,75,221,87,196,34,84,1,69,42,114,206,80,64,1,69,134,3,20,185,200,57,115,40,114,206,57,29,243,239,119,60,70,130,179,207,58,59,172,189,214,111,175,245,91,8,177,137,43,13,151,231,229,198,99,130,104,39,193,185,124,252,1,3,144,186,179,72,170,61,89,33,160,172,224,139,225,141,76,197,135,82,72,164,82,224,139,78,108,103,197,135,3,233,172,232,203,188,240,158,98,35,150,150,192,83,141,128,114,45,218,27,14,212,91,35,22,148,53,233,227,50,12,184,132,103,145,65,45,9,168,68,183,64,187,99,165,20,200,163,87,185,239,215,255,99,164,34,247,47,56,241,237,84,125,108,56,168,76,24,44,50,7,173,48,74,235,252,50,98,234,101,123,212,249,99,188,38,103,180,172,98,172,142,252,243,104,153,196,140,121,99,189,89,149,147,55,57,79,1,45,219,60,60,127,109,62,168,143,13,231,132,141,31,36,113,231,16,228,118,34,236,220,124, -206,143,110,236,8,136,60,47,76,75,12,201,231,124,81,153,174,32,231,135,243,82,111,109,151,236,78,137,233,9,4,210,39,57,212,27,191,228,56,10,166,61,25,39,247,147,36,99,245,214,56,4,128,162,123,31,211,98,240,163,252,155,138,105,95,58,23,250,7,248,145,206,250,55,255,70,78,8,142,231,22,245,41,108,176,195,131,111,170,247,84,11,210,36,27,131,149,27,27,238,185,56,250,246,133,7,227,160,204,13,241,214,242,243,29,200,52,101,33,116,212,221,134,22,212,37,76,138,145,50,148,20,117,136,205,102,81,73,145,115,60,217,89,107,10,209,146,194,139,20,27,9,120,179,178,32,140,251,168,248,132,218,124,210,137,162,207,137,230,120,93,117,83,173,108,87,65,250,253,131,28,19,198,159,202,2,90,152,228,157,119,108,254,34,183,101,246,195,159,74,77,70,29,226,168,103,164,209,232,232,29,220,28,243,88,70,251,149,106,156,233,207,35,103,2,210,62,205,185,31,71,158,72,243,2,86,251,93,177,100,192,186,212,232,6,211,139,160,221,62,163,168,97,214,25,55, -2,111,150,21,148,174,40,252,58,141,50,45,70,79,10,79,7,251,8,178,110,193,59,106,69,98,242,190,130,99,165,69,177,116,161,27,49,86,157,190,116,97,130,41,244,85,79,62,162,21,175,26,84,67,209,126,122,207,88,113,238,68,157,247,44,253,150,54,101,21,180,150,133,87,29,34,158,212,174,143,52,10,94,55,175,122,23,166,171,201,42,191,13,6,181,108,76,83,103,204,186,16,154,157,202,31,59,186,208,179,185,169,90,181,171,4,235,56,175,90,125,37,233,227,194,163,17,184,69,110,126,54,63,189,56,194,228,151,79,80,178,14,162,139,244,234,60,27,212,197,195,60,199,34,87,220,81,231,156,109,93,177,58,168,111,165,161,39,48,242,162,159,82,6,105,192,183,100,133,146,134,51,66,97,144,252,218,94,184,41,135,62,61,29,168,160,76,40,116,96,70,24,40,227,45,220,46,189,127,62,165,202,87,76,130,84,30,64,168,28,185,78,234,184,86,148,69,238,200,23,189,121,113,194,13,170,41,188,93,197,100,6,14,64,104,187,236,85,41,106,243,201,178,9,202,66, -228,76,216,171,51,227,252,85,22,55,91,140,246,67,212,25,19,193,241,65,53,77,147,222,159,73,198,11,13,148,184,215,252,212,124,213,230,39,245,139,213,152,191,152,247,86,69,180,154,222,84,185,210,55,70,213,153,87,225,115,250,184,159,199,94,204,114,91,78,191,246,217,188,72,103,79,179,210,200,166,14,13,232,14,93,238,230,36,243,159,183,124,73,42,135,187,155,94,184,253,101,87,234,15,179,28,95,203,102,234,229,26,25,30,46,152,93,107,208,33,58,206,157,159,39,132,44,251,113,26,15,245,150,176,167,189,254,30,212,73,237,19,86,192,144,28,5,194,165,84,148,81,224,156,254,64,69,28,184,203,250,220,21,227,85,218,148,254,80,162,140,232,206,254,53,46,100,245,100,224,196,123,159,116,235,66,217,226,233,100,85,185,162,190,76,226,123,158,57,63,219,215,181,124,93,188,126,35,164,22,171,246,155,126,209,89,157,223,22,243,245,190,44,47,88,85,192,35,60,16,198,250,220,129,119,46,79,62,235,178,17,62,81,96,140,236,129,73,176,90,213,165,239,68,34,56, -202,187,98,37,150,35,149,43,110,40,77,234,150,39,19,65,175,72,12,235,106,106,78,102,224,206,151,127,23,130,68,85,163,40,12,156,241,93,193,233,17,118,94,21,87,72,216,18,250,200,24,172,251,235,104,16,31,83,175,55,74,57,23,96,220,16,219,23,220,183,116,0,225,167,220,209,32,154,183,165,250,104,163,158,18,186,144,93,49,90,93,172,93,26,131,12,149,61,158,168,244,190,245,233,19,122,57,40,29,239,44,6,131,123,218,177,74,140,211,166,134,83,199,92,206,200,174,21,28,235,210,23,254,185,177,249,228,74,86,37,118,134,54,4,252,49,253,103,137,47,159,73,103,138,97,222,22,26,144,29,196,204,254,246,202,23,0,213,8,0,14,158,145,138,164,234,248,56,4,130,1,186,80,125,187,98,190,0,69,59,139,17,19,41,27,42,133,234,15,8,100,63,204,232,85,17,57,177,242,84,105,79,32,238,124,86,60,175,244,205,179,125,16,241,196,180,190,10,62,153,125,15,192,85,148,222,119,94,153,241,171,2,38,89,83,185,114,175,223,245,201,117,255,93,189,72, -165,119,207,139,187,83,116,254,52,43,148,206,253,35,33,125,114,133,43,47,51,17,30,1,241,24,59,245,201,147,222,48,142,14,0,201,197,80,227,168,128,78,71,61,158,22,201,249,24,151,174,57,8,89,168,6,143,98,78,138,204,60,146,85,74,10,97,69,83,225,8,18,221,20,159,70,18,249,198,228,74,70,93,158,12,82,162,195,17,165,35,20,53,124,147,184,185,59,23,223,113,57,39,161,77,199,101,11,197,106,18,23,240,205,145,184,242,238,120,65,164,134,196,230,190,62,207,151,206,195,177,49,20,247,31,62,111,3,114,31,132,54,100,15,127,30,135,150,57,3,218,241,45,245,26,154,167,110,39,118,147,156,32,113,139,235,196,123,36,71,231,247,1,80,76,47,223,30,197,110,237,228,223,194,155,69,246,120,82,0,55,13,88,108,118,245,156,1,116,70,222,61,154,135,9,157,172,133,207,240,229,185,190,112,32,1,116,117,35,100,202,172,112,12,70,249,90,119,180,88,171,130,16,234,5,61,240,88,20,202,128,4,119,126,116,23,7,208,56,26,150,34,203,10,241,223, -180,8,92,153,17,171,31,178,95,162,215,135,236,155,134,80,173,203,119,85,70,188,87,133,187,210,150,0,8,194,177,202,12,40,8,224,3,62,28,69,245,42,251,150,126,123,105,74,50,34,35,182,61,100,184,115,81,121,40,239,158,119,226,110,166,158,100,144,175,123,101,217,79,172,112,219,185,214,133,113,73,50,178,55,185,138,119,60,24,102,63,114,18,17,45,88,153,48,0,160,25,237,106,114,161,155,243,154,185,124,215,196,173,249,139,102,22,92,60,20,91,162,47,96,77,6,11,122,89,246,135,38,217,143,53,248,217,195,191,201,123,42,26,151,22,231,30,27,218,167,135,186,141,82,177,169,58,78,178,91,69,74,99,102,120,54,37,50,34,69,70,220,36,218,28,236,238,245,173,39,225,207,51,92,215,86,149,15,193,73,16,140,74,91,250,137,134,72,187,198,46,54,240,116,108,84,202,153,177,64,115,212,208,147,190,167,216,197,27,20,163,47,149,154,220,212,210,231,190,184,208,14,54,238,253,244,78,187,159,205,204,233,244,250,28,110,143,255,251,171,90,74,120,52,30,170, -23,71,155,246,238,51,58,194,227,38,109,46,189,18,93,27,42,84,189,102,205,179,243,20,248,108,178,79,19,236,177,172,100,47,142,6,50,98,81,220,215,100,45,16,12,159,194,235,9,190,40,217,204,4,108,58,154,87,103,92,73,182,27,116,9,239,241,63,206,221,90,148,253,96,68,205,61,252,189,151,197,162,55,16,171,94,41,87,152,205,70,249,50,223,231,6,31,39,54,169,52,159,107,88,232,136,175,89,44,234,84,71,235,97,117,95,184,61,193,251,250,11,95,100,65,245,134,125,66,155,238,41,167,54,153,172,52,251,170,70,52,116,17,12,230,16,231,202,44,130,13,15,124,131,72,144,176,64,179,190,249,33,97,105,88,227,55,232,64,67,157,69,153,138,1,10,111,30,211,248,221,174,60,134,87,58,144,245,176,230,155,234,200,42,225,236,230,6,237,218,140,128,58,140,35,226,91,3,133,162,234,40,128,222,29,34,69,224,6,143,204,124,247,204,155,178,60,38,92,205,100,4,65,245,58,169,53,167,235,244,50,170,201,193,9,156,136,79,93,69,59,231,72,101,106,76, -166,210,148,69,144,141,182,58,221,60,42,199,149,112,75,31,64,225,209,34,162,95,32,123,96,44,248,111,184,75,11,211,159,218,7,66,107,111,217,95,232,171,249,124,231,123,106,106,215,207,64,168,20,138,233,83,182,109,233,140,115,246,107,94,159,103,208,168,94,166,251,195,5,221,28,84,74,251,133,101,210,177,6,224,136,141,33,55,35,161,241,78,40,47,102,116,240,138,150,64,80,245,232,9,160,26,61,159,152,82,90,225,233,164,176,143,246,56,52,199,52,210,121,195,211,201,229,112,49,175,106,242,150,53,239,218,96,154,135,147,247,178,84,123,76,214,198,93,116,109,53,212,50,115,229,173,79,27,98,111,51,8,216,90,238,26,218,123,151,23,187,76,32,121,107,215,19,86,111,9,218,149,57,27,118,160,204,7,242,79,235,199,125,108,238,125,11,61,35,8,148,124,81,245,134,216,41,130,107,151,173,221,88,87,45,115,123,79,193,51,204,39,147,201,128,58,143,146,57,7,75,91,123,19,84,247,134,250,228,224,189,107,137,64,211,21,90,92,91,154,215,13,162,208,221,106, -78,195,109,241,252,185,119,187,236,151,145,37,242,192,35,103,235,108,83,211,149,107,227,98,158,117,24,35,203,216,128,77,132,58,188,155,32,247,152,99,210,195,73,179,122,43,20,67,234,73,163,149,211,115,196,203,91,111,183,166,189,112,211,227,53,247,205,217,190,206,169,60,8,132,57,198,89,60,55,138,4,61,151,104,251,8,141,168,32,89,192,193,23,19,83,168,91,190,30,111,69,75,197,243,3,211,95,38,25,121,40,86,225,141,102,156,43,58,247,193,94,33,231,102,106,67,237,3,39,77,10,18,193,58,137,38,140,171,29,173,153,145,253,7,43,78,154,184,118,62,27,180,105,123,246,196,93,204,168,183,73,59,165,76,226,45,152,54,207,41,176,164,142,51,97,203,252,132,105,84,31,27,42,162,181,53,253,18,15,108,87,1,199,236,203,247,4,208,143,175,4,2,231,75,167,47,106,27,168,251,59,35,180,158,199,138,152,107,152,51,5,165,199,158,224,106,57,57,44,9,164,254,56,199,55,7,188,154,198,172,246,153,247,55,203,236,153,251,8,75,87,98,153,49,94,11, -86,134,57,175,226,20,72,91,212,217,88,161,182,218,241,86,72,67,155,94,215,40,107,192,199,120,34,1,95,170,242,163,208,178,22,53,53,133,89,83,59,84,201,25,70,128,220,253,210,21,103,195,253,83,105,31,243,136,26,172,75,221,51,178,95,67,144,113,236,172,125,254,178,91,95,114,26,22,47,159,142,239,245,69,121,236,210,110,184,75,241,49,128,255,229,135,128,62,233,216,74,192,147,201,76,233,219,19,58,248,30,134,191,244,112,119,49,186,12,137,42,28,98,238,35,121,212,238,6,163,203,19,8,127,0,133,195,187,164,53,183,70,227,36,41,227,187,153,125,3,178,157,62,60,151,137,238,86,33,150,127,33,178,101,68,11,82,33,43,98,180,127,91,231,110,243,74,106,133,169,201,102,59,148,242,75,87,89,76,46,30,196,232,212,180,220,157,74,91,186,59,119,220,62,244,170,242,199,185,244,132,68,220,121,134,199,105,40,133,128,5,14,65,130,219,237,163,15,103,212,71,36,225,174,237,63,61,240,60,142,73,194,87,71,197,202,4,104,230,201,45,177,32,205,7,111, -91,3,163,181,21,125,222,66,85,253,175,197,181,55,204,19,218,83,208,167,177,232,130,56,48,211,63,206,158,144,242,111,1,254,191,159,199,229,12,131,174,185,95,53,219,87,213,35,211,3,22,37,4,114,60,181,170,60,143,7,22,235,249,192,10,122,158,79,88,0,223,249,60,196,106,97,31,177,177,83,21,109,146,189,249,6,94,170,199,70,22,16,103,91,97,249,249,113,192,4,7,243,202,41,219,209,192,171,255,103,229,142,195,83,76,210,112,98,185,91,47,91,224,238,219,178,7,126,236,254,19,221,6,196,2,125,237,49,174,168,218,219,62,130,172,103,232,62,33,143,20,19,224,35,91,4,70,216,221,160,39,176,51,40,131,6,171,33,31,236,245,151,3,71,87,97,102,133,55,209,109,66,80,220,165,43,14,241,221,117,158,88,118,203,131,220,210,225,32,8,225,227,236,59,153,90,27,171,192,158,245,62,143,17,143,229,229,149,26,191,39,166,53,53,250,29,156,67,111,202,227,242,220,234,85,76,90,164,103,61,144,41,241,69,29,120,189,130,203,159,99,172,163,197,34,57, -22,253,3,83,141,111,146,234,184,70,197,105,109,232,137,118,205,242,142,137,41,131,138,8,38,9,119,126,97,144,94,238,126,132,145,148,15,78,112,237,225,130,237,87,127,102,210,16,203,131,83,50,45,19,42,47,37,224,221,251,211,41,133,59,152,23,80,96,170,254,108,16,59,148,101,214,86,145,56,95,250,211,3,125,215,254,62,246,96,160,150,10,36,66,79,193,182,235,170,59,158,5,122,218,28,110,234,216,125,146,33,47,0,30,13,227,249,224,177,252,197,74,9,248,20,90,144,130,54,227,121,87,183,140,231,249,212,151,173,217,59,54,107,61,6,29,4,2,56,238,11,163,32,173,7,245,207,28,49,33,69,236,141,12,49,133,234,85,79,187,127,88,208,2,254,245,157,83,217,236,106,204,4,111,101,239,169,86,197,187,62,69,124,162,112,13,210,65,110,130,189,61,210,107,195,235,154,219,242,235,23,23,34,69,0,57,85,240,144,88,5,174,1,208,186,114,102,30,62,187,174,237,226,41,146,99,230,173,80,226,204,156,49,157,95,155,22,219,47,28,48,118,156,60,250,114, -27,57,8,163,86,141,243,130,223,6,128,140,229,79,0,193,202,241,123,64,130,223,134,3,192,191,73,196,181,42,17,79,115,138,46,20,143,42,173,184,148,112,247,219,236,58,31,57,189,202,87,217,24,138,254,119,190,128,253,197,23,30,20,226,243,193,33,30,162,221,27,237,234,39,63,30,120,64,110,115,32,100,2,177,165,51,254,184,5,201,239,127,234,168,124,253,83,71,5,25,1,125,178,193,50,177,86,59,52,206,176,81,179,84,117,0,207,180,119,158,164,101,189,153,252,179,161,255,81,112,180,161,157,223,92,120,84,248,104,206,62,253,81,107,86,247,22,5,187,113,243,227,223,222,212,3,224,140,163,69,162,105,120,204,4,26,44,162,115,171,52,171,25,230,207,85,90,196,231,219,150,222,243,9,85,249,182,217,203,57,23,78,122,73,240,248,118,134,111,31,200,144,123,142,237,71,24,211,213,44,198,78,3,76,193,143,220,75,6,67,187,190,137,33,147,38,223,167,77,45,51,182,179,120,123,176,143,108,102,169,143,47,52,69,189,163,160,107,152,126,214,251,229,144,138,167, -213,156,244,31,226,244,112,0,244,23,161,24,189,78,127,152,111,204,179,128,62,97,120,234,228,50,48,251,134,139,47,39,107,199,125,126,153,63,215,105,87,10,130,254,130,226,212,68,72,143,204,90,39,88,251,179,201,126,66,213,225,45,42,164,102,214,89,67,186,71,153,60,199,68,5,165,252,33,136,223,31,229,104,39,210,11,90,32,22,130,20,60,133,223,238,86,168,27,6,46,61,81,131,161,122,85,149,139,73,124,247,165,171,63,29,168,49,167,62,187,140,226,3,69,106,86,93,199,20,199,93,103,195,249,152,122,249,152,27,111,145,152,174,19,231,238,103,61,112,43,46,189,199,200,114,48,142,7,250,21,18,195,34,76,61,162,195,67,101,243,114,1,25,237,218,234,208,189,110,58,251,254,158,100,150,150,211,148,31,19,247,228,252,121,30,56,14,31,30,59,86,112,103,127,69,29,143,101,70,248,59,194,114,162,79,76,248,125,173,102,225,77,128,136,175,171,80,29,63,74,80,73,37,77,40,203,187,218,62,247,254,203,192,78,50,128,32,35,244,158,206,36,250,39,245,238, -155,129,39,121,13,86,81,102,68,195,58,11,59,244,237,236,135,29,45,208,212,84,107,115,84,234,149,182,174,84,60,160,178,16,17,176,198,96,163,176,34,196,173,135,118,154,196,212,137,248,197,31,52,255,63,78,70,191,64,6,72,91,41,200,113,40,209,95,239,14,223,9,122,167,46,127,158,30,82,64,43,89,174,62,246,90,52,20,46,120,162,208,198,87,135,238,226,91,27,114,122,128,164,17,67,235,91,210,107,253,254,202,167,1,233,10,107,70,144,166,244,179,109,240,74,130,32,19,129,177,33,63,175,111,83,63,112,119,52,245,214,171,57,197,239,143,209,247,240,9,176,145,224,200,46,116,59,1,85,249,33,13,213,161,86,197,83,18,28,195,83,184,2,1,57,227,71,97,36,155,238,47,158,215,202,13,128,140,30,30,92,84,49,127,140,129,19,88,107,238,99,54,48,85,215,107,237,103,183,136,176,142,166,249,156,187,2,132,234,227,185,254,118,103,244,94,150,248,211,19,56,95,49,128,67,192,136,70,67,214,100,80,216,242,200,113,122,187,56,112,243,159,33,56,150,83, -224,84,255,221,127,254,79,127,252,179,255,240,239,127,251,79,255,254,183,255,195,47,250,155,63,4,129,191,254,253,183,255,252,191,253,229,31,255,209,175,253,187,95,15,255,167,255,240,219,255,30,100,253,213,111,255,252,135,191,249,139,0,231,183,191,248,253,31,254,249,95,126,251,187,223,127,251,87,191,232,175,255,230,247,191,124,136,254,240,167,206,255,244,219,31,255,203,111,255,207,239,127,252,237,247,223,254,248,47,255,248,135,63,254,227,127,235,251,207,255,242,23,126,237,63,248,69,191,253,235,255,249,135,191,248,75,191,234,111,254,206,175,253,235,63,252,179,95,245,219,223,254,254,247,255,242,63,252,127,195,127,141,126,172,225,215,254,246,175,255,252,55,126,81,80,20,148,253,246,247,127,248,219,63,252,95,15,201,31,127,255,219,199,124,191,255,227,223,249,85,255,247,31,30,210,63,254,211,63,255,154,228,159,126,233,241,247,255,240,251,175,185,254,248,143,255,240,251,223,61,148,249,203,191,250,253,111,254,240,95,255,233,127,252,111,170,255,233,242,191,254,246,31,255,227,95, -253,237,239,255,245,191,252,47,127,246,63,255,217,159,255,187,63,255,243,63,251,115,24,18,1,111,195,97,48,36,255,14,123,188,142,12,238,180,129,230,114,122,214,251,113,133,190,123,121,139,67,135,232,39,206,97,73,126,248,103,158,197,7,101,248,188,146,179,59,100,17,7,197,251,238,112,56,24,14,251,155,117,62,7,6,111,172,104,196,5,13,66,39,74,67,103,126,211,21,62,151,214,147,27,188,180,190,251,3,197,207,250,134,239,82,166,150,174,209,227,112,244,204,180,70,54,98,196,117,111,115,24,96,172,244,63,119,125,243,178,23,54,31,250,59,124,215,83,107,102,233,177,9,237,251,125,34,136,76,94,17,131,178,35,63,126,134,74,66,249,253,80,69,67,7,157,207,29,190,95,5,230,216,96,237,211,19,144,195,151,53,137,7,103,100,40,79,29,190,235,169,137,229,194,189,12,228,242,132,124,95,108,253,187,190,90,49,93,166,192,12,199,185,25,142,23,128,129,229,73,161,249,29,38,255,116,78,246,11,146,202,163,230,30,52,107,109,88,161,134,184,217,30,121,206,168, -185,54,27,157,187,103,121,104,203,23,126,57,216,33,194,98,70,255,190,188,219,141,91,233,251,7,147,217,135,197,247,60,54,146,34,68,185,74,177,186,46,213,42,18,69,175,19,175,22,201,116,98,20,72,31,187,32,114,1,200,87,132,214,229,129,196,175,220,96,113,135,54,143,27,117,176,53,54,170,193,120,156,184,217,175,236,78,174,174,224,253,26,51,76,200,99,93,230,44,120,121,200,72,206,219,172,69,154,141,198,51,6,237,34,169,215,37,182,99,83,101,46,70,44,28,242,228,142,190,167,27,129,25,242,88,123,10,43,125,140,147,63,107,37,52,18,176,202,166,53,41,128,95,83,214,244,203,249,84,146,250,68,82,103,95,123,224,76,222,224,35,208,105,152,66,193,125,220,104,178,191,237,98,158,163,214,61,239,88,119,63,243,73,20,170,103,209,169,73,188,63,50,135,65,207,143,47,136,172,83,116,249,36,6,209,186,163,99,213,31,187,226,152,109,225,210,89,234,129,135,147,235,249,187,54,58,66,232,157,102,60,6,252,77,1,53,190,42,98,239,245,185,242,129,213,192, -64,41,218,170,250,78,201,139,63,90,48,120,64,140,241,2,36,67,214,170,60,195,30,213,143,101,231,215,94,185,246,150,203,228,213,84,246,48,151,116,54,118,201,130,6,243,66,163,185,162,251,181,29,130,33,93,90,250,210,133,168,241,1,47,37,117,222,5,2,95,101,190,109,212,232,116,225,43,9,128,251,71,225,236,142,54,108,201,221,246,206,65,169,199,55,57,76,228,9,24,247,45,61,103,253,109,183,234,185,123,117,197,128,153,154,72,48,6,114,39,253,176,11,225,31,87,47,114,53,217,12,0,53,108,241,254,220,144,33,212,140,248,7,80,71,20,35,64,197,154,87,85,103,201,7,95,152,120,8,139,211,79,185,166,212,110,239,247,200,61,10,168,223,191,188,151,17,252,234,246,218,160,131,237,10,41,232,30,100,28,156,251,96,250,20,97,221,71,154,87,125,235,250,114,225,131,122,153,141,20,175,243,102,13,182,134,119,214,142,66,139,5,129,255,195,177,59,22,139,249,212,44,84,181,36,247,123,104,205,227,88,75,193,13,52,198,53,185,151,1,177,231,54,215,57,197, -229,66,91,82,23,188,151,32,94,45,247,76,170,75,76,250,162,128,159,5,9,168,96,24,29,60,154,177,242,124,161,223,52,74,215,157,207,153,114,48,0,95,109,101,67,55,227,199,189,237,153,86,154,78,145,226,140,226,15,217,141,235,193,218,234,52,96,115,47,47,9,119,240,174,9,104,184,184,132,157,139,157,127,230,34,125,46,235,131,92,96,21,121,246,183,20,167,228,224,92,53,113,54,35,179,178,187,147,61,77,180,47,123,150,214,114,126,77,14,93,153,99,251,253,2,173,34,247,92,230,58,199,248,133,14,191,176,244,137,89,122,53,55,219,96,121,94,238,28,79,224,112,53,203,215,202,75,211,82,137,158,230,152,222,122,207,16,28,16,158,9,19,202,157,153,253,6,245,6,125,162,196,104,234,4,23,231,28,26,207,174,240,214,8,155,102,44,173,119,222,120,177,194,155,86,166,98,42,58,86,214,92,100,139,58,226,195,126,192,167,104,168,238,128,15,160,20,213,123,218,136,143,6,254,182,72,79,233,180,176,228,105,207,169,106,170,67,124,163,110,45,143,194,152,119,117, -248,242,194,185,47,74,223,14,94,147,222,93,136,1,166,22,103,102,191,152,89,148,227,248,195,114,244,45,91,129,139,31,177,32,189,184,62,205,194,101,8,242,78,110,55,132,126,183,243,212,115,53,40,75,2,55,141,31,87,234,176,246,52,147,151,221,225,141,120,1,178,85,207,181,176,82,6,147,187,105,200,139,92,71,10,165,204,233,210,126,38,133,8,242,197,51,177,204,227,153,63,223,171,3,81,121,82,3,202,51,93,249,100,105,148,71,111,229,57,70,52,219,109,69,163,252,79,236,176,186,98,36,199,210,249,100,74,109,151,174,172,104,203,116,29,7,2,8,150,33,188,110,66,79,214,68,76,97,213,201,139,201,48,105,240,226,93,99,126,114,147,51,74,190,195,19,22,210,55,110,206,110,147,231,174,203,128,211,155,46,222,63,124,137,219,13,216,238,83,167,116,101,108,238,33,215,10,162,229,26,196,4,139,155,48,130,241,173,211,11,97,192,225,11,87,55,239,171,7,175,116,2,17,56,230,235,234,165,71,234,212,223,15,36,211,253,228,186,236,154,184,55,103,136,169,133, -62,170,92,107,254,24,13,43,55,205,143,78,51,99,243,54,245,29,58,31,64,55,182,152,85,181,51,241,233,243,190,228,58,49,240,249,228,185,175,132,2,213,6,137,132,219,167,120,113,188,191,182,46,72,68,121,65,194,2,21,253,114,26,2,161,201,237,170,247,236,183,238,122,227,114,253,46,165,76,60,87,234,211,181,241,84,191,86,222,82,240,236,113,67,58,200,236,113,170,17,252,77,176,87,193,116,52,164,224,96,42,121,33,52,4,60,135,81,232,88,226,176,162,234,102,202,127,17,77,184,134,78,53,110,104,0,233,43,187,145,30,138,151,81,229,157,62,243,77,77,60,55,233,227,211,6,7,67,8,124,150,253,133,255,162,158,179,120,231,155,193,89,202,78,142,253,215,231,80,219,244,228,104,231,48,79,242,45,174,157,156,226,190,176,132,73,151,205,45,24,108,46,94,26,90,110,64,79,168,9,205,5,182,170,91,123,39,141,89,60,189,7,102,21,34,212,48,47,26,122,87,57,203,240,33,194,53,62,68,238,8,230,212,125,7,41,174,187,218,229,251,246,184,224,234,218, -147,122,193,21,32,146,154,245,147,218,211,42,249,240,231,216,21,127,186,209,4,115,90,118,117,107,34,24,27,224,141,122,181,186,25,234,29,93,219,98,221,99,55,36,40,34,62,155,185,130,115,183,46,141,183,120,240,214,221,138,212,239,136,64,221,196,90,126,89,161,77,227,186,75,109,183,238,70,230,2,46,246,252,112,237,60,182,127,238,61,217,250,169,53,247,119,26,59,93,87,191,218,119,173,136,167,143,25,225,128,96,66,246,75,251,68,181,4,49,239,216,189,180,70,155,25,74,83,84,85,14,93,12,189,188,104,86,233,138,126,142,119,141,127,181,180,83,108,175,46,177,149,118,233,192,46,117,99,41,229,7,185,8,100,170,94,166,106,133,54,87,83,203,132,150,79,246,238,140,18,61,198,69,229,79,227,93,132,115,35,36,206,16,250,201,252,252,50,31,221,5,229,120,73,33,210,203,82,165,165,61,203,32,209,220,188,230,198,114,247,147,26,67,123,99,225,70,189,89,215,111,236,239,34,108,216,100,212,85,8,187,63,125,254,154,57,68,6,65,49,205,249,41,69,80,140, -9,236,121,156,203,160,87,29,230,247,182,252,83,87,109,246,46,119,152,83,146,234,223,45,8,136,124,114,58,149,131,11,102,76,194,122,111,46,35,138,2,195,128,176,210,5,113,34,1,187,180,246,56,29,120,169,123,222,13,26,47,52,57,106,232,80,158,128,18,45,220,13,97,170,71,193,60,215,63,215,36,27,112,76,100,244,245,251,190,21,49,120,250,56,229,127,226,14,211,240,72,248,128,11,174,107,247,101,12,205,233,0,47,254,220,112,145,44,142,123,195,141,240,182,250,1,30,194,16,16,175,132,112,108,166,10,99,188,204,24,119,102,249,171,164,48,88,203,97,228,98,64,114,129,207,174,193,232,64,44,243,249,118,115,184,49,46,132,127,158,75,159,137,102,121,115,105,74,74,186,214,66,177,248,201,136,116,108,192,131,71,17,43,195,125,223,184,91,177,35,219,90,23,176,74,17,83,173,190,186,160,51,234,174,235,15,189,20,86,2,215,177,166,222,217,134,199,189,79,103,114,13,28,80,130,25,220,109,69,160,52,78,212,101,208,138,13,9,119,81,233,140,206,54,135,111, -103,203,102,88,82,17,125,144,153,148,63,143,58,144,148,14,253,28,222,238,143,125,66,197,92,29,74,111,64,127,34,237,130,38,237,91,236,6,138,175,133,251,35,198,124,220,80,77,50,178,132,72,129,98,137,55,85,92,186,218,224,93,6,76,159,209,141,27,35,15,107,146,161,206,9,185,100,129,136,153,196,91,248,86,194,83,11,55,111,130,68,213,181,19,80,89,157,207,239,226,154,228,20,99,135,74,234,144,240,242,130,205,195,222,220,249,240,194,104,217,230,71,196,220,139,189,59,213,196,222,164,70,214,103,89,213,24,132,194,218,132,90,77,185,237,85,37,95,131,244,157,208,0,172,2,67,163,214,71,117,174,43,58,22,46,190,3,235,132,90,121,136,178,205,119,214,117,214,248,81,56,159,154,124,84,198,99,122,189,152,60,251,80,85,144,142,185,191,82,195,29,193,221,48,108,3,223,86,31,100,121,6,170,14,199,114,25,243,130,85,33,74,48,228,31,133,149,69,203,215,23,162,23,200,199,193,35,125,175,75,168,176,122,46,127,234,28,151,74,53,76,154,222,52,83,235, -210,178,46,184,163,129,247,247,163,253,22,145,152,8,5,205,114,55,133,53,17,104,175,226,139,122,121,218,134,119,234,42,88,219,125,82,23,225,51,223,178,184,54,226,194,104,110,46,111,164,236,28,183,112,116,165,214,249,7,1,156,115,26,133,177,131,123,165,71,18,17,209,5,250,167,134,253,162,248,88,70,227,242,213,105,214,241,9,204,111,181,26,59,58,159,96,239,225,216,182,243,186,214,113,142,33,117,129,81,191,108,77,223,147,226,242,99,162,57,110,204,240,14,92,217,218,93,238,101,206,109,89,186,204,219,250,109,168,57,36,190,18,81,188,47,104,44,152,188,231,44,199,200,196,155,247,107,145,164,79,108,115,85,114,29,23,38,239,205,151,64,146,44,72,122,249,215,239,36,62,161,196,135,104,60,71,208,183,44,45,126,207,161,206,140,49,212,7,163,150,164,115,94,24,66,64,160,189,126,114,161,233,2,11,133,132,243,96,238,126,53,221,78,208,193,217,247,29,4,211,132,199,89,195,220,44,206,131,0,70,200,160,9,250,226,107,150,91,147,217,0,206,21,112,92,57, -94,225,91,193,219,33,53,209,245,184,208,186,242,52,8,80,111,238,185,74,77,35,83,53,164,73,205,111,7,129,29,111,111,126,54,237,8,249,252,112,124,151,55,62,140,8,201,145,78,196,120,178,11,140,89,100,68,32,238,174,53,18,157,54,19,10,161,53,69,19,71,198,212,142,250,49,122,100,188,167,169,110,116,233,58,79,53,242,183,4,212,93,79,110,96,23,174,62,14,194,211,158,5,56,106,110,34,198,197,45,194,59,80,252,49,109,119,46,133,211,188,189,168,26,126,208,229,162,252,248,228,213,180,110,90,63,20,159,145,93,86,59,214,87,62,64,212,75,67,64,223,12,244,184,194,44,116,112,99,214,179,53,154,104,242,7,137,166,22,90,43,95,98,19,114,188,128,212,123,247,176,19,30,235,195,14,29,37,244,213,186,143,198,240,43,245,134,90,54,0,104,247,35,152,198,128,67,37,1,45,253,38,150,126,106,16,26,48,196,179,39,124,64,250,107,62,107,6,17,218,163,244,216,171,22,89,59,158,173,246,110,243,201,149,224,239,239,183,1,74,145,241,184,9,16,163, -119,62,71,27,165,20,111,126,185,252,60,211,187,121,18,38,197,67,210,97,79,92,239,215,83,115,43,28,193,4,86,117,209,103,6,100,103,125,182,81,204,119,241,106,27,243,107,30,182,65,117,159,185,87,40,213,148,64,178,112,210,232,146,203,211,155,198,82,235,69,198,30,116,190,155,43,97,28,251,111,148,154,20,247,90,33,225,34,139,142,19,36,188,229,224,66,209,143,118,242,230,60,225,202,211,158,33,192,185,159,150,4,83,85,178,236,113,252,12,119,142,54,233,138,188,253,104,121,123,136,51,109,114,138,101,183,246,227,210,146,63,195,61,150,213,29,36,221,240,87,243,177,128,142,47,72,109,118,130,92,93,199,49,11,60,252,57,65,82,120,65,222,13,72,6,143,195,151,244,129,6,185,67,203,59,90,244,149,203,33,209,16,1,69,207,171,70,10,87,83,191,62,22,173,16,18,20,227,211,159,2,154,23,95,117,243,40,204,242,187,237,51,177,212,149,157,222,87,203,221,71,74,252,44,146,103,168,169,167,195,244,137,103,224,237,158,58,177,239,177,210,49,111,0,59,142, -185,156,100,154,120,174,87,144,67,242,124,17,242,166,190,123,112,250,230,17,189,134,22,208,173,120,212,176,91,93,183,234,211,95,234,34,151,217,56,170,204,26,76,215,66,223,10,159,140,80,125,117,147,225,117,142,43,126,144,134,214,232,37,48,54,245,11,186,91,174,160,208,232,102,227,106,233,30,133,160,24,36,191,242,166,224,204,35,226,143,124,174,52,157,115,85,89,79,109,61,212,62,241,143,166,198,106,160,112,180,83,219,32,164,169,176,142,82,201,42,221,196,180,239,251,0,88,179,145,161,17,18,146,153,107,119,198,155,200,115,157,97,0,13,240,14,241,50,220,157,213,93,20,76,108,34,248,194,158,24,222,120,51,117,75,157,62,26,151,183,32,234,167,179,250,186,124,117,208,214,208,179,158,136,160,241,217,114,0,64,53,239,7,50,252,75,114,187,217,194,142,243,226,214,62,214,123,232,37,249,187,97,95,155,65,240,9,190,136,215,158,158,62,137,247,90,92,253,97,179,67,222,142,37,54,159,120,53,10,68,47,33,56,88,79,1,80,117,36,167,36,225,45,129,207,175, -64,103,247,82,178,222,53,78,59,222,7,34,164,216,46,203,48,181,18,41,121,26,125,122,23,221,239,198,187,16,222,100,92,177,1,180,255,237,123,129,62,164,176,14,252,210,244,190,155,145,105,126,121,213,223,127,231,114,167,146,194,155,97,32,199,107,237,215,107,170,111,204,245,52,224,188,201,230,56,186,182,77,176,156,104,252,180,244,107,206,22,178,86,67,58,253,117,254,168,228,170,25,104,254,30,114,215,168,103,192,90,217,125,45,198,167,230,82,123,205,53,162,10,7,213,4,77,191,93,89,244,241,71,105,58,65,225,181,254,7,76,67,243,112,163,193,120,114,57,233,43,8,36,94,160,37,89,12,185,47,244,6,182,76,72,29,84,109,128,151,176,178,164,38,216,9,195,224,192,241,126,57,22,140,83,0,214,155,52,207,81,186,236,205,250,113,245,126,204,43,87,224,234,231,3,129,121,194,21,73,187,14,127,202,61,234,99,131,193,15,204,218,134,214,236,76,235,101,50,177,14,220,13,207,238,176,48,34,250,158,15,27,26,2,210,166,103,63,104,106,210,247,113,246,0,161, -21,124,146,44,183,176,112,229,239,52,245,124,227,245,218,146,249,74,16,194,186,206,236,63,244,192,243,211,146,242,66,47,46,189,95,101,248,201,134,213,120,91,38,118,45,89,57,29,163,40,152,181,251,17,236,89,45,121,45,12,111,52,10,102,79,21,117,106,81,248,138,189,101,7,158,194,205,172,33,174,231,244,88,17,168,155,243,214,157,153,174,91,109,86,198,198,67,85,72,174,189,54,218,183,217,8,74,238,69,130,177,207,83,27,112,248,110,249,210,142,233,57,178,135,3,17,50,91,114,199,57,241,7,154,236,25,128,134,126,194,232,29,72,43,36,141,131,145,98,105,150,82,56,131,227,34,161,3,48,195,86,22,236,69,51,52,6,135,54,71,229,120,165,44,87,210,201,207,45,250,85,163,6,246,140,240,115,138,128,187,95,55,180,247,150,207,215,14,220,110,246,139,227,105,193,57,111,235,58,68,241,197,97,235,76,143,82,69,46,239,6,23,250,43,146,93,57,98,44,110,166,87,16,37,33,221,32,105,239,60,29,249,25,229,200,239,91,134,72,103,143,39,117,36,255,184, -49,77,151,166,20,128,195,136,216,2,29,182,67,34,222,97,200,48,155,156,156,246,208,149,28,23,197,163,233,246,223,132,218,71,241,62,153,156,180,110,99,199,171,117,11,93,58,93,122,23,141,234,84,235,112,116,61,102,232,5,13,142,250,17,160,43,147,169,251,244,0,208,245,42,107,214,108,213,181,166,177,96,64,196,171,59,115,169,174,77,164,125,159,63,76,38,93,13,170,125,141,110,48,70,23,167,241,176,237,215,238,122,201,37,188,143,135,121,218,175,195,39,174,233,223,147,229,16,181,102,70,153,4,19,230,105,242,202,57,60,234,183,216,234,227,25,175,151,227,193,56,237,11,224,72,175,159,21,37,204,25,61,82,243,31,190,242,117,61,221,26,50,203,254,45,239,33,210,22,243,67,240,166,106,180,136,36,100,218,0,227,166,171,43,79,235,165,99,10,215,103,23,112,189,191,148,75,151,75,76,237,76,130,3,147,220,187,32,33,220,227,39,133,211,141,219,157,87,237,43,22,188,21,160,81,227,193,212,33,199,242,202,115,45,37,2,204,143,119,112,247,195,4,239,186,119, -97,250,7,6,240,198,47,208,60,63,240,157,159,231,218,185,115,211,60,244,191,244,163,69,201,218,161,28,220,77,247,185,104,25,215,46,50,217,98,196,192,172,207,38,57,108,74,100,169,49,141,43,223,48,86,203,213,208,57,56,238,48,110,69,155,249,173,9,36,216,11,143,122,28,214,91,84,26,106,115,58,1,23,139,34,208,100,116,119,116,143,245,125,127,152,68,252,60,177,101,231,48,164,182,47,245,142,1,129,185,4,230,19,7,255,20,43,69,4,14,99,112,62,21,216,221,244,227,166,70,157,190,145,62,23,39,142,253,65,199,248,213,171,178,209,149,1,245,233,197,111,35,133,87,172,158,192,113,59,121,183,164,112,195,94,171,97,230,183,209,146,203,109,17,13,46,227,254,131,120,185,97,234,193,68,115,189,61,146,80,63,94,208,134,160,14,79,37,156,103,16,190,243,119,79,136,70,19,183,63,105,47,249,31,251,123,195,227,227,175,87,199,167,52,3,130,246,5,72,242,163,173,145,15,158,219,68,135,128,125,229,151,196,39,232,240,54,189,132,186,79,16,7,124,4,153, -226,114,194,104,55,44,58,120,205,129,129,95,157,103,212,124,72,104,236,50,12,204,249,50,31,78,38,191,46,139,158,41,229,152,165,207,22,31,218,238,153,35,237,121,204,32,212,167,200,188,5,102,188,0,106,29,26,157,231,222,253,233,113,180,39,185,68,253,6,206,114,12,253,179,235,106,129,116,93,129,135,166,147,92,111,43,15,100,238,207,23,222,155,155,173,57,148,73,17,207,133,187,246,242,248,245,142,27,144,144,246,216,171,27,83,59,88,249,215,155,251,216,191,56,54,135,195,207,157,84,38,123,36,188,67,141,163,137,104,9,171,26,192,201,246,22,63,38,14,188,233,220,220,139,100,133,179,185,210,239,7,77,222,87,162,192,73,150,56,186,252,27,207,231,113,82,160,203,158,6,85,135,63,232,76,170,77,149,4,28,146,96,24,131,193,67,60,218,109,154,19,172,246,186,186,86,167,189,90,243,254,5,185,6,167,57,188,97,89,109,112,57,32,21,65,221,219,78,127,6,78,165,154,170,195,183,110,220,11,133,99,6,36,23,103,135,123,86,91,28,171,45,14,3,81,157, -241,95,204,239,72,190,145,8,71,250,150,57,207,252,52,105,232,160,91,81,122,75,53,16,214,172,18,71,113,114,97,248,166,22,13,167,95,27,153,2,60,18,129,61,10,22,40,179,103,121,180,80,155,232,171,172,156,24,197,156,73,225,93,38,237,41,200,46,221,162,58,207,17,163,67,206,117,142,54,47,123,203,72,142,242,84,132,112,227,23,23,27,189,2,242,174,173,201,183,41,88,53,145,142,219,182,96,254,117,151,24,57,151,136,117,191,104,84,37,94,127,163,140,113,58,13,135,195,115,61,103,142,35,40,54,13,245,48,232,91,235,208,132,106,151,245,209,212,18,214,117,72,143,186,11,170,102,63,18,132,57,20,210,149,122,151,175,157,183,181,224,188,187,71,227,28,36,179,132,249,16,233,137,93,144,29,7,220,7,237,165,107,37,59,86,72,9,137,212,157,79,194,97,248,224,235,176,199,45,234,85,126,114,50,77,226,47,139,128,14,177,245,22,13,192,109,16,83,144,126,202,108,119,103,113,55,146,36,133,73,210,178,176,237,107,238,241,244,166,214,208,119,177,121,49,117, -170,173,93,163,89,53,92,26,86,127,64,198,225,4,216,5,181,139,143,151,60,204,239,5,55,215,186,193,185,2,117,116,229,213,139,174,96,7,1,143,78,200,65,212,222,133,169,43,17,30,77,76,193,137,31,165,211,152,90,85,81,93,119,166,38,232,19,253,169,150,118,123,16,96,7,222,42,125,184,198,225,53,156,120,108,92,180,75,143,53,8,85,21,124,155,199,77,172,99,142,87,164,174,125,248,12,79,160,53,225,4,205,162,12,103,149,124,176,200,230,215,69,162,89,69,184,100,119,220,219,65,54,224,135,104,12,205,50,163,26,56,0,251,252,82,93,145,138,16,49,92,115,10,166,45,254,89,253,40,7,121,245,101,106,187,246,52,163,55,105,89,113,240,56,46,124,104,218,117,234,37,80,10,2,143,247,114,17,130,214,213,243,98,212,78,94,226,241,156,34,186,178,121,25,45,88,86,54,146,228,26,70,189,128,12,108,4,200,45,18,82,2,183,186,103,117,162,226,83,130,44,255,243,104,93,111,20,249,37,129,95,130,246,204,57,218,4,13,129,123,26,28,65,64,195,237, -153,128,158,155,100,158,128,20,103,176,247,134,24,172,247,238,33,136,153,75,89,7,201,30,63,231,20,220,136,169,68,176,28,144,48,21,137,249,139,119,107,51,44,31,145,207,195,214,86,69,148,244,101,130,39,188,58,187,107,205,62,24,221,80,169,7,100,113,69,250,52,53,120,149,50,20,214,39,14,46,179,225,174,194,253,232,110,17,236,213,128,91,37,29,114,185,147,205,132,64,113,39,54,35,36,172,119,249,200,209,123,142,53,7,137,208,133,61,124,210,202,70,2,1,63,49,151,30,94,171,190,81,159,63,106,236,143,7,76,24,58,143,68,172,139,199,185,131,6,77,197,252,182,13,220,4,2,30,160,247,177,46,192,214,121,57,12,6,139,51,114,250,37,0,180,40,61,15,179,184,44,175,90,65,255,173,95,112,215,20,209,59,14,77,158,154,241,169,118,49,61,65,167,70,244,143,48,112,235,79,54,135,198,226,222,211,59,155,238,234,33,60,57,44,142,61,168,217,208,55,172,3,179,245,178,7,206,41,120,73,59,7,142,217,6,6,4,175,126,248,96,110,91,54,226,51, -140,0,232,45,98,158,205,222,3,98,114,105,245,89,219,214,101,225,144,73,141,152,150,106,14,225,199,171,75,185,180,191,157,140,79,82,147,119,35,219,197,122,144,201,20,38,67,160,115,114,151,158,61,69,31,169,187,233,80,78,91,76,238,132,161,182,42,213,140,44,144,188,143,247,96,80,228,94,93,221,171,97,134,211,73,17,72,61,239,46,245,235,123,83,253,11,138,217,23,92,51,87,86,20,231,58,30,170,228,146,221,173,193,130,195,49,255,213,233,166,150,39,35,85,119,176,64,69,16,168,251,28,98,223,50,19,4,51,166,30,190,220,189,170,213,65,209,57,22,60,109,199,122,37,240,41,239,139,146,118,139,27,128,12,245,69,55,38,136,57,119,126,173,185,91,242,192,150,253,147,53,63,3,87,210,110,133,237,129,196,129,249,249,244,5,90,63,9,93,115,146,188,174,226,95,109,57,8,143,36,141,43,250,202,212,84,96,103,78,132,47,194,114,178,119,22,244,40,152,110,21,69,127,160,20,138,171,51,150,162,89,175,7,181,107,103,82,142,65,133,49,114,55,49,150,224, -205,49,28,163,12,94,207,13,22,106,121,144,63,119,53,121,251,163,168,122,112,79,4,174,231,81,21,112,190,155,61,79,151,170,185,150,177,202,180,62,139,233,131,245,224,153,110,140,121,39,165,67,60,237,12,213,5,97,140,81,32,71,154,196,80,16,15,100,188,120,88,26,91,208,214,51,251,111,180,114,124,27,123,142,82,80,232,212,220,75,243,195,73,191,212,204,197,211,184,66,105,92,144,221,239,23,219,134,176,65,222,148,33,207,167,145,44,234,104,171,85,72,178,6,90,107,235,152,189,225,131,228,131,2,156,86,241,227,219,194,170,214,10,139,218,42,190,57,46,252,91,235,244,144,254,106,245,127,9,199,133,51,250,86,92,110,60,142,53,44,151,60,157,78,214,155,37,92,56,71,61,57,60,232,133,53,182,181,180,196,222,168,213,124,11,159,140,72,191,174,6,249,101,238,133,223,192,129,41,4,202,174,22,114,190,8,96,230,198,64,29,107,246,61,71,176,142,188,186,199,147,194,61,157,98,31,134,103,193,119,205,103,182,156,144,247,194,243,188,88,128,234,21,26,126,254, -77,208,1,83,163,245,254,84,191,84,161,254,4,19,1,139,190,68,152,231,7,27,104,235,225,164,94,20,145,37,219,190,80,197,223,55,102,250,53,252,174,185,19,138,222,235,45,244,165,212,182,74,141,137,219,76,207,63,50,229,205,166,43,221,77,253,141,144,65,218,204,208,102,58,182,254,96,7,10,79,211,77,157,164,46,171,17,59,123,200,165,238,19,15,43,214,125,76,100,213,216,134,221,251,157,224,94,82,109,135,73,34,100,235,211,111,215,176,243,240,160,90,150,144,130,113,157,84,131,79,224,69,61,57,14,10,55,207,241,100,134,234,23,72,103,65,8,174,41,87,20,71,175,175,152,171,153,128,236,108,175,5,206,151,111,143,93,160,115,143,60,246,16,183,9,168,98,3,222,189,228,216,131,121,196,37,160,47,250,122,206,3,72,81,61,58,178,207,171,32,189,14,156,24,250,209,117,3,93,7,13,10,95,51,215,196,14,81,66,169,244,254,83,40,21,151,135,156,117,95,82,182,240,224,101,191,190,93,159,247,184,89,170,121,161,47,252,174,132,218,22,66,65,161,164,250, -104,39,49,205,239,214,22,37,39,139,233,143,96,248,54,40,221,57,122,119,139,164,103,223,75,234,184,80,199,49,112,42,62,176,208,39,28,87,202,187,10,113,43,248,241,186,213,101,69,225,108,76,115,185,185,250,184,209,223,44,125,141,45,52,54,67,43,43,187,78,121,168,48,33,45,240,16,128,191,79,80,184,87,79,21,93,114,237,253,117,37,94,61,71,111,53,64,182,105,188,86,237,26,178,85,138,16,184,28,80,78,115,180,31,50,245,25,154,33,240,116,227,2,157,197,245,116,159,220,243,135,43,65,244,30,85,239,205,174,49,184,28,31,115,248,82,161,230,147,221,211,207,247,195,21,185,95,104,83,139,171,3,220,45,158,103,214,190,153,94,103,220,30,62,124,184,80,59,45,120,175,251,135,11,193,135,15,127,185,16,120,248,240,225,208,1,172,177,155,161,31,148,8,53,209,28,11,135,197,108,142,246,248,83,228,194,7,136,224,104,44,136,106,233,84,146,209,235,39,245,74,91,165,231,167,11,61,20,219,229,18,224,194,220,168,185,135,91,211,161,56,139,171,14,103,28, -158,127,113,177,232,245,109,70,93,152,77,24,101,247,45,88,48,0,15,181,180,16,153,240,88,75,253,104,154,181,213,127,107,229,31,210,95,173,204,47,225,163,5,208,243,231,89,236,66,111,38,11,86,72,83,92,54,39,245,99,53,7,77,114,163,42,189,187,158,123,36,143,74,101,138,30,197,249,114,94,82,250,218,117,192,169,17,223,74,250,36,21,155,50,221,80,0,133,130,7,36,117,23,213,87,70,162,112,189,161,244,37,32,52,229,63,253,98,20,150,252,211,126,66,162,226,145,91,4,69,134,189,174,54,193,87,210,106,205,34,181,205,125,163,14,219,125,233,114,185,48,142,193,196,226,192,218,61,227,155,188,19,154,198,183,33,44,115,248,242,2,188,140,190,88,51,27,85,34,18,154,233,153,204,146,37,195,169,34,47,92,100,60,130,141,124,119,165,142,128,28,129,249,94,197,241,44,190,42,104,148,69,16,134,55,21,190,135,247,199,88,136,116,31,241,26,199,113,73,253,36,218,52,112,34,89,38,120,124,228,117,247,105,173,20,119,59,112,36,143,166,240,141,213,49,1, -241,12,216,199,234,45,155,50,195,222,77,112,69,219,62,241,104,186,192,183,169,190,64,97,42,81,73,149,78,114,186,31,236,43,118,147,179,193,226,233,50,241,125,169,175,209,152,4,65,122,101,26,159,174,189,125,139,195,196,225,178,194,59,98,220,17,238,107,147,18,83,136,95,153,165,114,239,159,131,98,217,20,99,207,88,61,75,60,91,115,244,13,102,83,132,93,81,15,19,239,31,253,126,101,104,220,104,89,246,183,248,240,125,211,151,219,55,200,111,59,117,145,188,46,190,3,215,193,119,220,212,147,95,153,38,42,129,133,11,145,227,199,78,159,43,50,109,66,175,172,94,228,37,223,31,60,77,76,254,29,203,178,216,177,124,142,56,172,216,144,11,116,185,48,7,28,201,18,219,116,223,177,29,25,121,102,22,145,93,142,95,18,114,173,35,87,253,230,141,116,201,171,150,252,253,153,237,1,233,94,4,40,244,199,26,211,66,248,120,107,140,122,53,194,152,82,27,119,52,15,124,5,233,188,244,235,222,194,107,12,241,217,17,141,252,250,173,200,141,80,148,16,134,50,98,82, -18,114,120,16,37,21,186,94,83,136,205,106,139,250,233,188,162,168,177,156,247,147,23,10,42,135,108,154,8,225,131,7,63,229,94,145,136,103,68,29,183,176,213,102,84,22,96,78,246,79,12,54,37,109,144,63,159,87,198,244,8,211,30,228,44,176,120,180,198,250,68,27,114,182,17,181,45,205,61,45,137,85,210,240,107,164,69,235,70,202,79,246,183,38,130,138,68,229,244,110,53,41,244,26,197,90,89,150,210,228,170,189,185,222,209,17,120,137,49,196,178,178,35,107,163,233,240,178,103,56,187,229,16,50,129,215,184,86,64,146,167,208,217,65,130,108,130,111,71,208,185,66,243,220,178,2,224,135,155,18,28,100,36,81,152,125,27,73,154,219,159,133,233,252,106,189,165,57,128,187,21,93,28,164,135,211,44,123,105,140,220,243,237,112,126,56,51,156,238,92,152,222,252,249,94,28,100,86,171,61,91,227,141,180,146,228,182,63,56,83,37,160,59,67,110,182,34,250,230,65,90,170,228,38,83,210,168,176,223,170,47,103,158,76,235,254,122,107,206,235,49,189,89,206,40,231, -172,207,218,81,176,184,69,116,99,103,64,230,78,81,84,252,73,50,101,81,12,56,172,156,41,49,18,196,51,163,107,238,236,80,221,236,60,131,187,192,228,183,35,241,148,81,174,96,103,205,29,194,104,245,180,101,6,110,103,26,224,254,18,172,249,186,20,169,32,243,212,10,50,204,40,139,252,12,142,238,213,173,96,230,216,49,228,13,63,117,46,159,70,15,69,169,83,157,19,204,10,35,203,120,171,177,20,28,118,245,205,172,158,53,210,172,251,23,235,62,207,179,116,250,184,71,111,137,120,100,17,143,56,98,243,104,82,37,178,98,194,77,251,48,147,225,83,9,243,202,131,234,136,168,77,3,85,80,98,220,176,205,71,172,234,87,63,170,189,77,235,224,74,46,244,220,199,97,11,148,215,172,45,155,102,193,72,3,15,163,8,99,236,55,5,10,150,155,143,193,180,111,48,164,236,33,131,17,122,148,34,86,65,248,97,194,222,27,176,239,137,242,27,21,65,127,178,225,184,215,17,250,5,65,245,230,178,40,121,9,38,139,25,30,207,41,66,154,14,215,163,40,97,248,98,76, -8,235,105,248,182,142,135,233,141,130,212,51,138,84,104,37,4,209,93,81,222,138,10,182,6,47,170,133,158,111,1,230,161,135,214,109,117,12,129,218,203,106,206,227,11,227,70,140,231,142,18,5,4,174,252,131,152,248,208,18,203,118,92,59,211,9,201,226,71,157,221,236,107,49,239,94,74,115,232,163,131,204,220,38,62,178,87,2,248,248,136,37,47,251,48,135,208,118,219,57,179,123,234,150,81,228,142,190,158,248,48,117,90,17,30,187,52,154,244,195,178,233,39,116,117,43,156,245,208,43,118,29,221,40,140,146,153,241,22,147,134,171,27,182,80,161,2,55,26,17,79,65,7,32,110,48,242,1,97,202,35,14,211,35,174,113,214,7,123,24,208,81,122,141,203,40,209,252,55,2,135,196,229,223,201,112,188,88,252,154,194,97,91,130,212,202,160,68,124,224,12,52,42,122,40,125,127,250,162,49,197,112,81,48,41,180,189,126,29,149,1,167,2,17,129,33,175,245,204,55,38,144,109,70,190,83,72,91,133,246,56,23,17,21,6,89,33,115,120,18,99,86,245,220,150,231, -200,242,143,238,139,226,5,38,161,103,115,42,158,88,134,205,177,141,178,80,62,64,251,142,74,105,88,110,170,18,125,85,241,41,45,149,13,255,94,32,210,208,89,164,76,148,199,101,185,113,38,29,157,67,251,242,240,143,215,72,3,43,77,98,238,217,193,85,101,186,231,251,172,238,167,126,247,205,56,59,70,49,222,82,70,188,94,114,97,151,74,18,137,147,83,227,15,197,46,18,164,58,134,81,222,82,113,217,59,115,151,186,202,45,153,231,249,165,177,85,3,154,99,244,234,40,62,235,47,229,22,103,174,198,37,169,180,196,252,91,120,236,54,73,204,81,114,117,232,74,205,62,20,197,90,206,61,153,170,204,150,60,123,91,27,211,181,230,44,123,89,253,73,104,173,242,183,101,37,23,211,170,130,111,153,188,56,54,22,217,205,10,47,151,61,72,38,204,37,69,159,153,53,197,85,97,150,60,255,210,81,131,2,230,185,201,100,207,227,241,132,73,42,103,103,169,108,130,42,122,206,163,110,226,49,23,48,23,5,236,134,54,70,200,202,66,195,121,214,255,169,18,85,243,216,214, -108,252,106,49,123,15,212,177,34,186,203,72,207,103,117,174,81,80,233,12,227,252,160,160,70,170,11,133,38,125,44,249,54,135,242,114,182,42,151,160,45,84,79,248,60,3,159,239,40,240,249,219,73,253,200,218,187,55,215,14,239,234,236,222,223,11,225,55,53,211,135,238,232,36,156,134,212,103,100,193,40,209,35,86,204,242,139,189,46,21,83,252,229,138,134,133,68,52,14,150,145,114,18,198,52,86,251,245,131,162,80,90,210,47,108,148,219,162,190,48,41,109,170,143,136,103,11,239,145,44,230,40,137,68,73,207,118,50,131,243,190,53,190,34,163,85,248,187,99,36,161,22,3,148,175,36,155,252,8,118,82,56,229,41,144,146,237,164,5,169,140,202,134,69,212,24,156,20,31,81,195,93,24,149,151,186,118,169,144,146,15,41,45,246,253,209,181,161,95,191,223,48,148,158,72,212,85,189,198,223,80,24,106,208,215,205,124,84,178,76,24,30,17,125,134,71,187,39,104,205,93,23,205,2,87,39,198,223,203,228,169,19,69,113,139,82,251,205,161,205,122,138,115,40,174,113, -148,191,146,146,238,23,10,166,30,69,206,71,93,120,215,163,177,167,24,244,250,228,123,190,146,93,15,78,170,147,27,229,73,146,93,226,96,237,148,8,236,9,114,125,28,153,31,87,82,107,141,202,153,146,162,132,125,247,169,182,230,241,180,246,226,91,189,19,138,233,44,242,82,133,106,209,104,163,244,183,238,122,27,91,171,100,246,0,5,86,159,38,117,70,5,3,100,83,55,137,232,73,78,238,214,115,107,139,202,174,136,49,185,163,248,189,85,141,247,57,84,144,67,209,130,44,74,238,37,170,146,156,187,221,219,90,12,228,237,62,1,87,17,35,86,10,178,240,132,34,49,19,30,96,234,126,204,214,25,172,197,94,166,114,149,251,232,190,36,189,168,169,2,119,33,202,31,119,15,197,157,81,163,174,68,233,177,169,240,219,146,147,215,170,74,170,150,30,237,227,203,93,106,208,40,18,159,8,118,241,73,229,170,128,84,254,187,38,5,200,98,62,64,28,3,52,177,98,134,44,159,164,125,135,82,33,67,208,9,201,145,0,156,204,124,77,5,200,100,58,86,134,42,35,194,182, -144,144,141,21,78,63,125,13,236,43,1,133,70,161,209,175,88,159,98,137,66,202,108,1,108,12,69,246,182,81,235,48,5,8,196,80,114,23,150,211,162,232,218,242,159,0,119,251,69,12,151,135,40,243,75,229,203,139,51,121,101,241,252,151,27,203,84,162,248,168,173,183,251,21,147,127,162,164,94,57,69,13,75,41,87,56,20,34,21,129,191,139,224,126,74,246,241,249,165,193,225,211,98,23,77,169,67,34,112,217,150,88,106,96,42,159,16,56,177,23,45,254,120,85,98,165,58,193,81,180,185,7,236,144,169,253,174,95,133,24,182,35,225,72,85,184,112,84,83,51,128,91,180,109,138,183,85,156,106,27,71,185,0,188,142,243,207,3,162,254,161,45,116,174,188,244,88,121,241,61,221,200,246,39,7,229,194,197,53,146,153,128,110,208,86,152,12,36,63,185,60,143,76,55,125,169,165,74,173,77,113,225,196,62,32,191,180,37,68,173,193,247,86,94,196,158,223,77,178,98,149,58,17,188,227,10,197,128,58,230,104,163,101,134,58,165,220,234,71,223,205,138,55,230,157,250, -156,192,161,251,129,8,34,215,6,84,134,20,149,198,236,196,227,22,249,71,159,69,53,189,224,4,226,23,220,213,223,118,136,58,43,30,96,40,8,152,81,113,42,158,85,200,199,99,74,103,135,91,57,2,88,230,172,253,105,49,100,101,28,166,46,241,82,144,142,158,134,20,164,25,7,55,140,3,208,78,172,119,240,50,53,222,80,245,189,157,150,100,14,37,133,71,11,226,136,223,1,103,79,92,32,136,51,89,242,80,46,140,124,102,164,236,111,42,71,16,163,10,34,84,129,225,155,178,235,225,172,221,25,174,36,197,13,100,56,177,35,27,32,168,153,151,39,94,163,133,111,33,86,125,27,100,71,181,237,39,123,74,246,138,222,8,18,9,24,93,244,252,200,101,33,74,75,84,71,112,185,57,232,25,23,80,203,188,237,47,59,138,249,232,43,69,13,135,109,196,207,24,133,75,23,40,66,234,19,217,104,132,139,69,193,214,11,194,198,125,36,72,38,153,22,19,162,122,20,44,226,209,31,241,200,141,106,72,12,131,227,142,148,159,193,245,3,94,134,91,149,85,4,159,233,213, -33,178,7,51,170,110,71,237,93,78,234,195,254,238,228,57,15,151,24,98,228,242,104,228,165,151,31,134,47,208,233,101,10,103,170,28,34,38,109,183,217,144,76,227,53,229,25,28,247,238,139,23,91,201,119,147,63,143,127,227,80,158,227,184,40,90,158,135,27,12,165,24,83,211,146,139,12,254,45,76,115,108,10,152,58,167,254,221,203,96,74,253,75,250,144,218,49,127,32,196,25,33,34,209,182,61,61,21,151,90,135,161,220,192,87,224,234,76,13,173,145,12,229,241,109,230,11,255,3,192,233,74,138,214,180,166,71,168,137,46,78,63,245,162,141,1,133,241,251,9,47,165,211,35,227,44,201,103,156,12,67,165,87,18,41,220,94,13,95,40,83,50,28,27,58,161,158,113,33,137,56,32,126,17,194,3,35,17,63,164,228,215,197,100,196,115,7,251,20,68,137,87,66,10,172,76,178,9,8,151,87,61,117,116,16,206,3,193,48,207,131,69,18,107,254,87,109,150,107,69,228,235,95,65,82,2,139,123,225,144,145,14,86,137,250,74,196,78,184,112,151,206,215,25,7,6, -232,48,189,92,135,71,144,6,219,59,42,234,95,45,163,202,38,25,245,141,140,173,140,45,215,39,140,174,67,181,131,240,35,217,195,110,98,105,199,14,227,186,88,109,128,163,189,251,222,181,222,67,28,207,140,112,18,32,92,43,42,255,24,199,165,174,54,231,61,254,194,243,140,137,2,120,61,181,242,235,142,162,210,117,36,212,220,189,44,112,81,123,89,108,66,7,71,199,117,225,174,26,196,163,238,51,124,85,72,0,63,127,7,206,73,11,83,216,186,169,118,106,211,85,194,146,57,202,107,87,137,25,88,249,216,224,130,160,55,197,66,165,106,123,242,190,10,23,222,142,234,216,85,22,178,3,95,92,112,78,188,234,205,65,6,179,253,204,78,172,130,242,227,87,39,123,5,12,64,138,41,120,155,188,164,12,129,1,75,213,54,17,86,172,243,145,0,0,119,55,0,52,230,2,129,252,57,85,8,2,138,73,155,250,185,194,73,170,199,227,236,250,110,89,2,33,170,64,134,35,129,233,0,70,211,241,23,102,171,69,97,229,27,31,223,97,5,151,64,221,12,55,233,11,217,203, -33,29,50,59,85,157,6,109,149,124,198,31,173,248,163,51,248,236,50,187,154,95,252,197,89,78,178,146,131,30,202,44,232,97,4,61,228,160,206,67,11,77,190,59,11,75,180,163,143,180,83,145,104,123,39,93,177,243,31,218,187,195,225,163,7,218,15,18,34,70,100,152,48,206,18,198,236,4,202,40,229,15,92,20,18,126,190,178,159,55,175,232,87,110,0,187,52,112,125,226,180,178,69,121,70,76,223,97,71,176,194,36,193,93,241,248,4,105,27,69,130,97,238,214,107,235,99,195,83,172,159,128,175,144,159,189,161,89,188,27,71,49,163,204,48,28,182,13,196,195,1,194,167,77,250,240,43,44,245,172,250,96,82,50,168,108,123,157,142,63,69,144,31,6,92,150,252,66,199,120,219,189,200,72,88,108,7,73,244,75,39,24,17,197,245,197,214,115,195,155,188,94,58,3,151,193,212,236,149,89,94,170,115,134,195,240,214,129,228,185,173,0,235,134,206,188,108,232,70,149,154,125,128,238,156,226,240,188,117,144,232,232,240,49,92,195,45,2,132,171,83,189,196,18,38,215, -154,51,210,204,24,222,87,175,29,231,212,48,179,148,135,150,218,84,163,181,4,199,111,181,41,97,102,12,45,45,213,14,231,221,176,147,188,149,29,177,169,86,214,177,132,184,181,25,81,171,254,12,23,153,157,88,130,96,232,201,203,217,220,148,128,83,89,202,204,218,144,245,162,253,8,245,57,109,243,230,197,96,127,42,79,81,254,233,27,96,201,9,78,23,159,32,86,10,3,80,41,8,228,130,242,209,181,157,251,52,68,171,101,108,96,54,69,88,44,201,43,149,163,193,17,138,1,99,72,213,145,228,13,63,212,113,57,189,155,214,10,95,211,87,181,197,75,159,48,20,47,187,76,232,172,122,239,184,105,134,57,190,60,101,4,223,37,226,61,225,203,85,76,242,39,90,18,104,126,13,178,191,219,132,125,207,160,239,26,82,178,153,33,37,53,144,100,6,217,65,106,176,202,12,165,71,102,24,168,219,164,194,41,48,78,251,44,147,225,242,169,4,163,98,191,78,209,148,28,246,228,113,66,6,59,10,101,123,112,247,233,144,239,96,122,123,87,184,31,37,126,132,167,55,70,18, -10,162,152,99,220,40,253,184,251,224,66,228,103,92,250,215,15,8,219,173,187,94,238,13,188,180,2,61,196,49,142,241,70,80,31,74,134,23,251,13,147,195,52,216,95,148,60,173,133,67,58,120,217,12,215,51,96,239,222,75,210,0,55,241,199,56,155,84,84,134,107,246,241,2,149,5,163,58,186,1,122,222,214,190,240,232,184,178,74,35,107,33,113,93,117,248,35,100,41,103,208,111,162,242,83,172,135,232,215,141,8,141,23,45,47,227,63,114,61,116,136,233,21,179,211,112,145,197,11,211,84,152,207,234,116,184,63,17,254,160,77,94,180,163,252,3,232,44,188,188,144,96,76,20,138,69,33,46,81,75,123,241,33,101,71,146,42,24,200,21,124,222,32,23,169,203,173,52,220,152,182,120,43,21,184,184,168,244,195,53,195,119,210,142,67,243,227,171,8,124,23,254,136,98,29,48,218,57,18,188,104,74,25,67,89,214,209,250,82,222,133,176,220,74,25,189,174,69,82,120,222,17,195,252,75,40,128,38,183,201,196,87,241,55,25,69,23,191,144,50,47,17,102,75,76,251, -90,43,51,98,196,15,54,20,130,249,35,175,184,143,140,199,221,70,14,149,12,226,249,227,245,192,92,163,37,73,86,192,23,156,97,9,66,145,164,104,28,251,226,129,90,30,197,196,41,225,152,209,246,152,199,12,13,74,216,83,166,147,41,96,179,225,39,49,62,157,231,163,158,186,62,37,13,27,144,249,224,195,160,176,74,60,210,37,189,251,80,229,169,54,17,71,113,16,24,146,211,250,42,246,40,65,55,89,67,244,98,235,178,158,181,73,36,111,23,72,29,245,98,69,35,147,123,20,187,135,45,74,115,174,211,251,238,62,158,143,230,102,250,146,228,240,103,176,125,237,154,206,105,178,187,133,29,205,15,129,3,124,63,28,54,47,91,146,219,81,115,240,27,189,231,249,103,16,56,148,197,53,109,102,38,41,14,139,147,237,179,89,227,168,80,26,93,220,124,245,25,176,150,197,147,4,33,179,235,15,171,155,45,129,96,119,84,105,255,47,73,87,217,165,60,179,4,255,58,238,238,176,72,112,119,151,197,221,97,113,91,220,221,23,189,60,239,61,103,146,48,51,153,124,232,78, -119,85,205,132,164,61,10,97,116,150,72,149,37,246,165,112,133,15,157,166,88,6,71,163,208,21,39,165,219,83,84,214,30,158,52,103,226,195,169,224,188,145,167,154,246,81,166,115,73,66,204,103,128,249,236,232,190,120,58,124,246,39,42,149,207,197,63,150,66,66,204,153,134,51,71,143,107,235,202,242,120,98,2,193,81,137,197,84,162,80,25,95,232,169,166,164,209,177,103,48,185,242,236,149,254,7,119,254,9,223,21,34,250,55,173,192,223,79,171,140,63,139,217,211,40,240,185,43,61,214,70,143,52,239,9,145,86,82,144,21,227,211,193,236,168,78,88,86,96,201,13,45,185,9,247,146,91,39,114,204,96,22,211,20,189,48,73,138,7,68,122,236,67,228,200,246,197,116,82,222,130,173,169,77,1,255,78,192,69,32,5,6,165,247,115,63,248,21,102,32,89,176,113,0,48,4,119,34,54,152,132,130,77,132,56,122,200,22,39,129,33,184,41,82,54,45,32,175,179,2,21,137,104,161,212,26,151,146,30,15,160,207,32,218,10,138,162,211,180,176,161,44,30,166,246,195, -17,168,8,28,139,240,16,51,99,1,2,133,133,79,241,146,144,153,4,20,254,97,160,128,99,144,164,40,9,80,81,95,133,123,95,109,204,44,165,192,130,90,159,138,141,63,251,228,46,29,251,157,236,131,171,30,208,53,156,57,240,119,220,152,103,209,33,231,28,194,159,245,46,65,107,122,102,148,156,163,26,30,196,141,242,107,169,166,228,239,48,72,94,31,33,28,2,33,79,151,25,187,52,35,207,243,78,223,111,183,6,212,75,51,172,104,219,118,242,76,171,231,162,219,197,77,77,191,50,193,58,34,162,181,13,117,250,210,244,163,102,71,160,161,209,217,177,139,116,95,199,161,58,26,18,157,105,133,86,227,251,24,177,131,220,82,232,204,152,20,158,215,167,64,29,53,64,215,176,160,176,199,254,227,251,234,200,233,179,101,180,25,115,234,107,120,142,31,249,253,5,208,15,214,254,5,211,216,185,241,142,140,88,151,45,163,168,214,190,164,96,117,4,180,132,42,150,49,40,247,89,116,71,242,38,37,148,208,33,122,31,146,255,48,97,37,161,210,195,64,233,253,55,188,214,170, -10,207,12,236,247,8,215,191,56,107,101,221,57,196,64,243,70,253,59,251,175,86,81,217,40,152,12,91,218,255,65,215,106,162,238,75,73,254,138,135,137,38,117,152,168,10,95,84,207,176,61,21,97,166,34,222,73,50,18,75,70,56,150,210,246,246,15,169,130,40,136,2,197,164,162,132,219,79,190,34,168,146,88,16,198,239,132,213,20,34,247,219,0,70,36,165,29,127,232,207,199,242,59,184,13,8,109,42,82,81,199,64,239,241,155,6,41,148,12,16,97,68,241,135,37,223,21,182,31,149,125,139,116,96,224,104,4,131,88,105,160,9,14,255,106,75,96,1,45,229,199,142,230,148,237,231,122,173,126,188,14,147,117,41,57,103,169,11,49,64,228,215,22,163,206,6,65,147,149,109,47,223,209,130,191,104,234,182,95,181,182,140,85,53,204,88,153,246,107,214,166,105,85,214,133,160,53,25,80,165,75,171,178,213,234,181,1,149,50,161,167,145,120,228,182,19,242,203,128,22,138,78,39,42,0,221,63,153,22,224,156,157,139,38,171,6,104,86,71,189,164,205,166,43,0,37, -166,87,133,63,12,77,234,208,5,217,234,110,19,238,104,196,193,42,18,246,57,226,125,242,86,88,103,170,225,2,72,101,173,211,168,195,193,225,71,67,100,131,192,232,37,20,94,149,135,55,63,198,28,209,233,180,55,154,72,47,75,32,16,234,191,201,26,63,22,18,242,239,242,176,158,19,5,10,76,179,168,24,128,9,11,235,40,255,182,226,15,127,100,7,108,38,4,25,175,228,95,214,30,1,39,17,253,232,15,49,67,215,178,148,61,9,194,51,34,200,36,58,73,3,210,101,88,187,0,140,101,140,11,65,232,27,32,153,6,241,16,70,1,6,59,145,64,69,56,124,148,207,195,80,192,159,159,4,126,5,200,115,166,36,14,207,41,200,23,244,40,174,172,42,24,1,204,119,144,28,83,40,194,24,79,16,110,223,158,58,90,110,40,235,130,73,204,186,158,101,159,84,26,185,71,140,156,27,220,193,229,219,52,152,119,66,149,98,220,96,207,189,141,111,117,220,48,161,6,123,210,108,61,65,166,182,160,102,206,53,120,187,210,99,6,203,181,25,253,92,131,185,87,113,27,214, -80,214,56,150,70,236,87,38,40,67,154,13,5,201,210,128,62,45,50,65,23,213,80,217,43,52,70,140,26,31,36,36,161,134,32,160,177,207,81,41,92,176,248,109,152,134,245,154,10,22,123,140,4,131,60,195,175,60,93,255,65,31,172,65,174,150,101,104,170,211,37,140,185,104,9,18,57,189,59,62,111,104,139,31,114,134,76,172,130,43,231,61,83,210,204,82,80,100,10,216,78,162,234,105,138,44,45,45,28,85,194,201,201,30,139,22,100,169,72,222,50,202,14,29,6,65,206,252,47,67,119,252,68,243,40,24,205,177,243,109,217,145,62,198,240,36,65,164,50,175,233,168,44,100,148,86,178,12,30,208,219,19,60,143,87,4,175,166,224,52,15,210,61,90,186,71,94,151,240,84,117,158,186,204,3,106,201,60,63,50,79,229,165,42,1,144,15,197,78,71,171,254,3,151,210,51,0,140,158,131,79,240,67,122,176,190,144,34,172,1,252,9,128,67,23,242,41,210,24,138,242,225,254,82,65,15,19,184,18,251,37,196,191,87,31,103,195,148,192,254,12,49,9,43,84,174, -29,24,115,237,61,50,137,108,236,122,188,176,209,44,232,97,160,246,156,32,160,143,150,192,29,244,82,1,241,180,136,137,71,204,83,202,165,30,121,120,157,168,143,37,61,15,101,130,169,255,120,238,65,54,34,245,97,76,235,1,223,218,223,124,231,164,159,195,186,174,230,248,76,254,102,38,19,130,227,94,14,74,35,223,173,128,224,176,133,197,120,15,178,251,205,178,56,135,19,98,227,10,109,217,94,62,252,239,100,64,191,52,254,190,227,107,181,207,151,10,110,44,91,247,94,243,56,99,125,153,180,101,99,61,52,211,143,113,150,234,75,132,55,150,221,240,43,253,184,137,125,217,69,92,111,221,47,112,15,207,28,234,75,250,245,150,196,86,141,123,236,191,125,141,116,78,95,62,164,142,202,135,136,231,203,199,244,130,252,238,96,125,120,180,15,95,53,149,171,236,205,65,203,35,141,247,133,66,223,147,197,117,83,126,28,227,86,95,38,147,43,239,96,63,165,135,132,238,43,220,35,196,234,126,64,123,24,88,82,95,35,64,44,161,183,226,79,5,238,43,134,179,111,245,4,153, -248,251,3,239,189,2,220,134,35,30,220,19,87,126,81,239,253,162,109,68,35,247,62,241,71,160,120,121,176,225,70,220,107,86,182,153,79,2,215,171,175,209,209,230,193,28,61,38,159,18,27,61,144,163,135,251,60,122,124,141,30,41,169,246,97,150,62,6,210,199,71,84,146,218,49,187,227,5,33,12,156,170,63,226,105,139,163,164,64,112,21,137,2,176,20,76,16,94,52,154,8,100,36,196,62,142,206,111,95,7,52,73,238,252,203,73,253,91,66,65,100,2,115,147,82,80,100,55,214,52,32,194,142,136,164,74,3,168,137,239,143,233,7,185,88,32,159,161,1,241,126,198,51,217,73,89,126,222,75,121,180,78,216,199,61,66,247,128,233,135,51,223,29,250,58,213,213,80,125,3,205,60,237,7,143,40,134,3,43,70,174,129,241,190,225,73,157,246,99,86,102,17,12,163,121,172,63,76,203,63,126,185,33,106,195,78,210,76,211,233,172,63,60,53,154,196,224,30,28,232,183,202,159,211,151,14,106,252,39,89,93,165,174,23,219,72,40,3,35,230,20,213,131,3,96,39, -231,213,179,33,42,134,80,230,253,6,198,135,178,1,178,161,148,30,22,186,166,107,146,42,252,137,92,62,136,129,71,85,87,35,230,69,203,168,186,14,174,64,134,108,209,113,140,29,116,248,56,130,216,42,127,242,66,65,125,216,90,207,157,200,163,224,244,199,23,166,20,128,56,223,167,191,17,124,212,124,196,70,10,72,241,133,196,23,147,152,228,188,248,5,30,255,39,68,20,14,29,165,87,131,5,186,83,6,70,76,11,145,43,40,112,215,2,19,10,183,6,102,24,130,18,64,134,15,218,4,30,207,66,165,142,68,246,163,75,168,165,29,137,203,67,46,81,34,250,68,195,26,70,29,45,42,169,143,67,9,195,213,25,148,164,139,207,192,16,144,28,189,157,135,233,135,46,237,21,239,77,134,68,16,145,250,231,80,138,140,187,143,210,117,50,213,214,195,86,26,71,35,213,219,115,40,178,214,229,51,14,58,72,183,134,96,221,147,77,63,11,206,174,53,25,170,123,48,204,186,157,173,31,194,84,2,117,247,244,93,66,211,57,136,23,52,238,75,56,202,179,237,46,72,18,180, -178,6,209,87,205,205,232,92,119,126,63,24,107,34,188,137,95,178,76,7,119,166,69,48,35,237,237,244,202,188,107,238,51,45,6,213,94,143,27,86,166,253,23,190,133,224,139,237,29,191,214,188,149,44,240,45,14,212,222,152,228,180,197,131,250,212,42,97,190,237,173,152,246,39,190,75,157,90,20,158,61,89,75,105,139,123,172,165,215,122,224,237,185,80,134,92,222,30,44,173,165,21,103,255,201,100,242,7,95,72,225,124,208,237,237,136,238,41,239,203,148,78,229,35,185,54,81,190,20,195,180,76,225,216,97,214,154,21,228,75,220,141,38,156,108,242,126,237,224,126,169,4,3,68,220,17,48,173,237,0,110,161,31,221,18,127,78,111,81,199,132,45,24,194,158,43,241,177,125,66,247,3,191,100,224,85,179,14,178,248,201,90,53,242,9,135,126,248,101,30,46,248,164,67,159,116,228,152,73,7,49,233,36,38,19,206,75,202,105,79,58,87,159,6,121,202,17,235,39,29,156,82,215,67,80,172,143,112,50,10,107,208,104,194,102,178,193,31,22,41,96,97,20,39,72,6, -105,184,104,97,64,226,159,6,94,170,62,52,142,18,49,119,192,90,212,15,146,185,32,254,174,75,118,107,250,80,3,138,142,173,1,164,131,162,31,196,249,13,134,62,42,122,68,233,130,172,2,2,200,0,34,21,226,65,166,251,68,97,27,205,139,226,146,255,68,241,162,94,178,139,170,72,146,125,78,130,83,158,194,182,100,139,220,151,196,121,6,229,49,0,215,197,225,227,234,208,67,117,77,112,9,238,41,154,117,136,228,25,242,15,33,158,184,15,195,176,125,139,239,28,99,231,92,107,132,0,32,181,25,114,168,18,15,44,134,43,144,213,244,75,169,35,155,75,107,248,204,18,187,191,50,228,246,56,158,61,52,134,72,165,169,77,171,147,17,75,107,212,198,18,219,191,240,228,76,52,30,181,132,134,80,161,169,67,106,213,39,40,77,57,86,105,79,197,234,19,185,124,43,196,147,237,33,252,3,216,45,102,93,134,215,20,182,81,198,66,140,181,144,99,112,78,28,146,25,122,183,50,83,142,202,86,19,200,233,74,108,172,20,155,213,101,50,91,21,247,170,66,251,111,149,169, -205,254,227,102,217,108,21,46,93,240,71,101,74,17,149,78,142,162,49,113,71,100,168,241,123,76,13,62,91,74,252,194,145,34,136,148,40,180,31,145,55,35,114,160,88,143,251,103,18,159,165,120,172,82,102,90,244,145,66,10,223,226,162,182,74,20,224,169,69,159,242,155,161,197,26,244,88,131,105,137,53,24,49,14,61,242,195,161,69,56,140,136,183,175,192,63,42,156,63,5,205,82,212,91,246,235,68,110,136,167,196,83,82,50,86,142,21,127,168,243,220,150,7,175,254,5,228,200,160,73,1,22,191,129,210,131,65,166,140,48,138,201,137,128,13,88,161,208,32,137,7,192,152,19,212,37,89,132,60,40,100,55,213,70,97,253,117,121,182,230,34,185,65,70,27,46,98,21,49,72,67,130,49,44,3,226,28,114,136,20,40,67,193,21,102,215,154,67,69,115,42,50,189,107,26,208,189,21,112,252,121,208,164,177,137,111,77,24,157,170,92,129,61,177,25,69,56,234,69,123,19,18,165,185,107,34,102,19,37,161,57,234,216,236,217,163,219,103,3,252,147,97,226,38,253,16, -206,52,222,247,47,154,107,48,199,86,75,144,241,235,78,115,246,71,67,98,179,30,170,156,129,58,253,187,11,62,55,107,142,39,227,172,103,183,7,203,241,229,171,222,6,161,119,237,89,255,194,170,173,184,178,243,23,185,61,31,102,236,172,122,6,113,166,134,192,237,105,215,206,170,213,79,183,51,143,223,86,243,39,213,105,189,236,58,167,232,132,182,114,80,157,154,107,163,198,153,205,104,91,85,159,164,88,255,152,238,76,70,180,21,61,102,127,90,251,155,159,117,28,51,79,60,158,168,107,245,150,234,44,195,60,3,145,239,177,186,190,161,47,47,158,228,153,67,225,169,186,97,185,186,150,192,156,69,59,46,79,63,137,37,234,44,227,254,108,193,241,148,184,65,44,94,235,153,206,85,5,237,89,73,18,40,1,19,84,186,124,163,155,252,106,240,204,48,124,171,127,106,107,250,178,138,177,61,14,206,166,145,251,148,177,185,171,102,214,166,27,120,155,52,99,38,89,147,89,165,203,80,241,140,45,54,207,230,226,89,76,177,73,58,232,251,26,125,143,82,140,247,162,241,126,52, -22,238,53,99,19,138,105,165,170,5,188,14,36,243,203,253,255,240,230,61,253,122,161,13,255,77,84,210,190,130,166,131,0,64,246,30,19,10,80,211,39,193,255,22,232,8,147,253,103,143,168,27,147,121,88,240,67,176,1,238,225,141,69,195,186,143,9,134,178,13,57,97,143,237,236,165,151,117,71,163,142,50,9,243,104,96,96,52,209,241,239,2,219,0,185,14,235,194,179,45,72,192,0,137,233,192,53,176,146,247,189,66,162,253,24,209,114,137,110,234,192,3,66,229,172,176,154,192,88,207,209,240,5,98,183,39,82,196,167,51,189,92,3,63,35,72,244,236,54,154,153,254,10,212,29,201,191,234,96,126,27,208,107,178,254,152,174,80,174,0,160,81,245,31,97,62,127,41,17,109,17,152,174,225,148,204,216,210,242,97,213,170,252,145,108,33,128,97,249,33,102,218,146,152,220,215,2,71,248,157,7,105,242,100,93,57,8,51,12,44,37,78,183,176,9,14,224,120,226,16,61,94,103,145,139,103,22,141,7,89,171,72,6,168,100,9,34,45,225,244,229,6,83,194,5,156, -77,171,167,26,24,221,77,182,21,91,5,128,105,171,74,163,30,64,59,239,51,180,10,96,61,55,118,135,9,34,58,27,205,34,78,137,228,32,188,112,59,184,111,73,165,89,200,33,80,143,35,34,81,226,40,51,12,2,165,65,63,16,133,65,67,36,84,142,255,1,10,92,73,122,116,224,10,226,238,196,186,18,104,192,101,13,252,75,130,31,101,132,179,212,253,48,58,56,6,6,65,220,30,28,39,117,143,32,129,185,240,199,214,138,118,1,218,92,32,14,210,58,81,1,56,254,141,75,67,19,144,111,28,108,107,166,175,133,50,174,242,96,150,234,192,50,152,242,108,140,100,99,138,124,130,6,34,140,213,16,168,115,211,205,130,9,231,177,134,231,28,76,28,89,168,109,76,195,59,29,179,65,182,198,26,84,98,83,22,221,57,31,17,206,53,32,196,24,147,224,91,231,116,76,96,177,159,127,113,47,213,92,13,47,105,70,163,59,147,214,137,165,102,106,189,55,180,125,237,88,43,196,88,13,174,179,250,93,219,130,157,185,117,198,98,126,29,152,84,6,11,214,201,53,214,18, -68,117,241,160,178,96,151,53,141,177,148,81,23,142,34,140,5,107,196,25,43,71,136,186,168,199,80,179,107,145,249,88,200,169,3,132,241,88,205,250,83,141,137,4,12,91,59,28,43,15,255,62,51,137,160,36,44,85,195,175,154,53,195,8,199,110,184,185,156,77,243,200,102,234,40,29,118,114,205,129,40,142,105,28,4,71,105,150,210,156,76,186,113,52,83,72,154,54,40,208,230,112,16,199,48,68,160,42,22,152,158,246,237,49,178,28,252,199,205,141,204,234,217,163,126,226,226,49,204,188,20,139,48,74,166,239,38,217,74,249,67,117,209,102,133,164,69,27,29,113,104,6,124,138,117,212,39,89,57,44,155,216,196,176,111,145,180,59,146,72,127,69,210,169,72,154,247,19,73,139,225,105,188,87,229,215,139,5,127,104,26,166,217,25,188,235,112,148,133,23,85,24,194,34,24,204,95,112,68,6,113,36,10,6,137,131,128,105,223,215,23,79,245,160,159,34,63,140,239,90,176,226,31,30,10,138,42,156,195,103,134,72,27,136,67,88,33,168,69,9,98,147,161,3,65,69, -236,242,105,79,172,0,39,188,18,151,59,231,248,76,74,7,33,25,192,125,202,22,157,126,40,41,73,48,195,132,234,92,145,116,132,41,146,102,93,133,90,130,41,132,19,92,47,144,179,11,228,154,51,209,33,94,119,63,163,8,61,207,86,144,47,143,137,225,215,51,136,225,217,139,177,152,230,88,192,30,195,143,160,192,150,71,166,143,157,192,16,196,238,108,68,196,11,123,250,45,187,17,41,93,201,229,107,214,142,174,111,114,114,167,7,216,251,95,211,21,226,166,6,219,59,34,164,109,49,203,60,110,55,49,161,3,136,99,213,197,244,228,186,105,51,140,142,88,90,93,204,106,229,198,77,138,232,8,177,66,230,98,58,154,223,154,74,78,71,36,99,170,119,179,136,234,38,196,240,125,122,209,68,57,117,38,189,55,2,133,175,149,76,40,202,25,27,115,67,194,55,60,61,224,171,230,127,160,163,163,197,249,93,206,234,114,228,2,117,120,12,111,217,223,129,40,145,90,68,12,164,199,169,242,59,217,73,18,73,249,144,244,200,202,163,191,37,16,126,43,29,32,106,0,100,41, -95,125,38,103,222,209,81,191,223,187,98,236,182,22,39,92,23,163,23,149,216,125,161,21,87,169,153,77,154,60,170,139,174,8,186,13,181,192,214,173,224,187,12,74,191,59,233,119,35,189,170,234,101,11,122,97,195,160,21,244,204,130,158,94,47,230,152,69,34,163,200,183,42,64,94,194,122,107,130,247,12,60,29,231,77,194,252,123,213,106,15,178,149,124,212,189,168,241,72,13,72,76,125,26,148,2,103,124,105,0,230,12,10,157,176,101,64,193,244,43,65,54,241,255,243,217,1,125,157,242,244,31,158,221,105,172,180,105,171,31,250,47,17,126,49,63,228,27,155,125,235,44,96,57,45,3,212,2,6,166,83,69,53,252,48,225,203,127,179,163,147,85,166,76,49,20,229,100,86,19,4,247,34,252,176,52,248,216,51,167,63,226,95,42,34,178,246,232,165,57,83,188,227,233,104,214,148,206,67,176,64,26,127,174,178,249,249,105,154,209,211,213,52,227,74,194,44,71,148,107,165,3,91,57,183,148,21,209,145,6,232,10,173,90,10,36,165,6,16,161,4,72,38,202,2,220, -131,185,49,32,124,165,63,74,143,207,30,206,116,183,229,206,131,113,124,149,248,42,159,168,73,197,129,116,96,128,24,41,55,11,108,200,87,130,233,56,53,128,71,86,242,191,99,181,98,35,191,51,197,152,228,244,216,249,55,43,80,228,1,201,2,92,122,252,162,160,93,101,116,155,91,202,251,211,118,93,148,78,43,60,5,140,194,9,59,189,60,2,112,248,113,1,87,124,67,32,183,2,132,83,34,251,255,169,24,136,138,193,149,41,12,104,18,10,200,6,89,20,17,0,0,100,2,240,226,238,133,134,14,8,123,55,24,190,138,59,56,32,239,163,224,153,85,32,142,168,65,73,32,41,201,38,150,249,134,234,35,18,15,210,107,98,182,163,215,192,216,34,172,161,142,129,83,248,3,164,42,185,6,212,234,57,221,30,77,72,178,54,132,225,252,178,35,56,2,153,91,210,49,238,19,15,132,109,216,88,28,162,152,144,51,101,11,254,126,4,248,222,53,177,22,156,44,123,102,118,156,189,184,90,172,143,45,198,57,67,11,12,176,39,81,28,75,247,196,99,244,150,124,184,26,186, -24,139,192,4,39,114,130,200,117,186,247,4,25,61,185,34,171,179,192,109,140,8,203,229,11,104,35,182,89,90,232,138,244,122,218,130,67,71,70,220,148,145,246,205,52,248,69,206,184,182,138,232,234,10,181,121,58,199,175,142,28,175,47,195,180,213,105,80,109,237,149,197,243,109,242,116,133,187,200,158,22,175,35,195,232,189,101,56,83,17,196,150,241,189,72,114,27,28,93,123,96,147,231,151,205,87,39,81,185,2,108,162,14,126,155,105,61,246,126,139,35,253,57,126,249,175,14,31,204,215,97,223,114,108,238,66,135,203,227,33,170,20,223,75,20,183,176,217,21,236,145,120,42,20,190,56,139,38,50,96,177,10,108,25,43,193,144,101,24,18,201,64,250,180,68,162,138,68,36,106,136,23,61,54,113,209,98,47,58,236,5,166,194,94,20,248,139,26,132,191,40,241,23,21,58,126,81,160,237,106,180,29,166,68,219,85,4,187,30,68,176,107,9,118,29,166,246,46,211,94,30,197,99,56,43,56,94,189,235,211,29,220,186,225,189,42,150,29,212,211,97,2,29,42,238,107, -144,116,1,120,1,250,111,245,206,95,144,144,252,69,88,162,135,66,128,72,37,20,90,4,230,22,246,98,47,110,223,167,73,144,59,36,192,236,195,168,16,154,56,94,39,55,131,32,19,66,129,237,159,91,33,89,120,42,198,161,250,252,194,159,242,3,84,138,226,156,40,9,210,214,252,36,56,222,166,225,182,254,66,145,41,13,168,184,172,146,179,56,150,36,121,227,60,26,170,138,98,150,249,146,176,216,149,235,106,110,224,96,155,115,241,174,243,2,158,173,41,127,64,9,184,107,36,204,54,20,34,106,124,103,62,165,211,32,158,245,39,6,162,158,192,181,48,207,84,64,130,105,226,147,63,190,178,23,229,119,92,169,3,181,34,79,245,21,112,158,41,121,173,219,28,201,111,16,166,59,197,202,53,87,19,26,84,145,216,182,80,102,26,175,185,152,209,0,164,149,254,66,113,226,204,181,8,110,3,170,80,150,231,243,38,157,211,80,202,42,10,179,98,164,154,179,49,13,170,74,196,80,43,35,201,243,92,72,105,0,146,113,95,173,248,195,204,117,16,43,71,44,31,167,148,117, -238,126,142,224,222,2,81,253,40,165,216,140,74,71,128,109,205,36,51,244,34,226,71,82,26,42,173,133,82,48,67,202,15,36,165,64,13,51,79,195,173,170,0,132,83,15,224,245,114,51,130,254,19,74,42,55,230,148,50,48,42,129,76,127,170,55,187,108,167,205,143,237,228,73,35,117,49,81,197,118,74,161,147,150,180,49,202,252,139,162,106,19,140,101,25,107,94,79,107,172,122,145,87,39,226,0,204,194,47,189,32,96,22,139,2,90,241,132,85,142,46,88,197,5,163,168,154,176,10,38,86,33,215,99,242,196,14,48,207,7,180,251,127,108,156,36,33,37,0,135,159,196,162,160,32,91,19,10,70,242,81,162,55,146,190,143,14,52,214,97,58,140,27,40,46,192,159,96,196,27,111,254,4,182,31,77,123,139,59,20,11,164,87,94,40,93,87,24,123,141,227,145,249,146,88,101,151,28,169,67,76,120,45,26,161,74,225,72,146,155,135,23,215,8,32,69,42,34,235,16,104,45,209,119,215,135,114,16,22,252,85,239,138,245,107,96,162,29,58,135,154,0,221,51,144,230, -154,0,247,135,177,151,192,61,189,28,130,240,149,24,140,247,1,5,218,213,23,17,191,156,241,80,116,10,144,61,165,127,120,20,127,198,135,29,168,51,150,91,87,136,84,247,113,248,33,115,250,117,158,220,60,13,109,125,158,179,156,90,23,40,200,47,235,80,230,15,173,169,37,210,151,101,120,195,43,157,217,140,174,76,93,80,75,195,185,213,153,140,72,117,37,178,186,52,220,7,233,206,116,66,87,166,200,82,180,97,95,234,140,199,3,186,18,9,75,27,118,31,112,103,46,155,165,19,169,230,209,80,227,252,232,243,104,150,68,246,197,193,241,7,219,217,78,190,44,114,169,60,145,80,82,8,123,19,140,43,17,202,109,201,248,142,62,116,96,12,251,37,220,233,130,112,135,229,44,65,33,71,50,51,212,80,42,33,28,13,3,93,211,62,207,118,2,84,218,178,154,60,107,165,227,59,147,242,157,138,175,105,210,97,149,98,58,24,125,117,35,235,33,99,45,97,213,180,77,41,106,50,222,228,12,54,174,199,198,43,81,248,176,10,31,66,25,193,61,21,98,122,129,19,127,47, -240,95,22,252,167,189,193,247,17,236,240,167,193,140,199,114,84,171,130,5,28,254,61,113,128,74,64,96,91,145,9,252,240,197,14,196,192,135,146,15,73,162,239,184,14,220,149,71,254,144,104,24,208,138,67,94,142,55,147,186,85,5,156,48,207,246,165,239,200,186,224,131,32,229,87,224,219,105,63,124,68,233,111,41,69,152,172,11,114,232,100,93,228,167,163,231,71,140,168,10,3,197,198,212,124,16,137,52,89,147,88,32,182,7,237,135,193,210,67,227,191,19,37,68,177,1,12,253,83,250,65,212,120,197,80,221,9,82,160,10,160,102,176,65,12,25,73,237,255,89,106,193,167,8,172,162,216,196,203,170,36,134,54,244,239,71,35,56,102,111,28,66,42,6,127,54,203,140,76,40,44,177,120,146,218,197,235,166,18,152,150,70,50,41,191,169,2,156,242,218,115,96,92,138,22,248,130,112,243,100,117,55,141,115,58,93,92,46,90,213,82,136,145,76,114,40,229,201,195,165,67,127,177,21,135,63,147,241,142,84,1,135,244,77,139,221,8,94,138,12,221,34,147,85,1,5, -72,203,74,252,213,230,162,212,87,19,104,153,15,131,212,87,82,105,11,110,60,238,16,85,215,243,119,40,253,113,202,164,120,74,209,250,7,71,92,32,187,229,250,73,36,74,88,10,128,250,200,32,140,8,221,33,80,57,210,94,12,210,1,126,7,25,217,87,94,168,182,48,230,138,146,124,114,22,89,230,79,41,88,100,104,87,120,228,139,130,200,41,216,46,220,57,168,243,240,8,66,211,117,130,224,56,15,134,35,199,33,132,96,31,80,145,242,123,100,97,140,76,174,72,97,116,87,140,89,133,1,114,113,42,197,144,176,162,74,223,211,21,102,235,88,148,153,209,199,117,101,140,236,23,250,39,158,160,138,118,193,48,55,70,96,167,208,226,104,31,181,175,249,227,92,19,9,137,15,123,192,67,31,191,38,151,95,206,115,244,55,136,80,115,106,197,231,25,138,231,106,244,145,140,134,78,106,27,207,208,90,78,31,139,24,212,52,66,219,12,133,215,204,167,80,78,77,47,203,85,148,40,171,170,143,143,96,106,90,81,69,137,174,211,147,125,56,165,166,227,72,24,74,148,20,211, -79,161,33,53,13,192,72,28,208,240,125,31,204,101,121,244,242,113,2,229,52,17,250,4,28,75,43,30,83,146,104,118,177,143,84,214,201,122,169,151,73,250,233,75,195,22,180,209,10,33,179,138,129,180,14,144,93,43,36,106,18,189,27,65,195,181,125,63,237,52,138,93,56,86,61,138,83,68,197,8,250,199,77,232,199,38,133,14,72,195,254,61,69,244,70,23,244,48,244,244,39,120,84,201,110,15,26,181,141,69,235,34,201,240,68,36,26,144,11,98,47,106,218,140,91,116,121,73,131,65,201,96,208,35,61,22,21,133,135,153,52,120,24,138,13,203,153,96,20,81,79,58,233,73,193,141,64,222,113,231,60,243,43,255,58,231,238,166,34,103,95,174,38,29,76,250,255,116,104,204,24,148,192,2,1,9,41,136,125,162,136,59,132,144,136,238,35,32,14,236,14,226,125,181,122,177,21,10,127,223,246,42,225,126,40,211,3,49,237,194,168,31,74,251,242,56,248,5,240,218,214,90,68,173,168,6,28,174,108,57,40,5,135,48,226,164,50,193,132,214,188,231,151,198,225,221, -88,74,184,186,178,139,243,80,74,72,234,127,117,134,112,204,78,123,5,239,3,16,65,35,150,173,111,205,227,7,23,183,111,224,4,166,0,76,158,185,162,169,47,110,199,208,143,225,174,133,33,25,5,246,45,253,68,246,100,11,5,241,125,64,172,122,89,236,158,32,194,175,79,29,186,76,183,109,151,235,193,100,52,148,145,139,108,186,91,113,30,95,8,226,175,42,96,7,205,31,109,51,231,87,18,181,171,200,59,188,234,241,141,249,21,200,131,85,213,214,154,180,60,172,166,36,90,95,74,116,213,180,235,30,238,109,164,193,122,250,32,53,84,94,251,78,111,156,160,167,210,122,216,225,213,195,126,120,171,136,28,185,111,14,73,175,26,165,247,7,35,207,145,186,190,248,246,17,71,123,219,144,119,21,188,206,169,253,242,74,151,234,82,111,19,163,107,120,79,122,4,157,94,29,87,80,105,34,136,202,80,140,254,215,19,167,118,61,233,85,104,40,62,226,202,215,42,140,246,42,96,130,26,68,123,209,7,238,140,193,83,141,217,117,34,87,162,168,238,105,146,59,82,212,198,84, -130,93,20,225,38,211,217,95,97,119,21,248,117,132,133,120,234,224,142,196,0,218,28,193,239,61,164,217,233,66,94,9,248,227,30,58,92,219,135,107,243,119,178,171,102,123,122,126,42,36,112,33,125,183,53,188,104,223,234,5,18,27,75,255,95,30,51,0,56,172,48,0,192,224,97,146,175,143,13,118,194,58,42,168,133,82,131,156,169,39,9,106,132,122,211,117,68,237,201,138,96,217,45,50,181,27,192,241,211,27,208,180,77,34,20,92,16,35,30,91,20,171,152,61,217,49,248,129,32,191,110,136,42,129,19,203,60,235,131,65,177,228,50,95,80,226,213,96,77,205,152,167,171,131,24,109,13,204,129,187,186,129,44,116,108,94,114,217,110,44,215,56,239,201,51,53,229,80,82,67,187,123,48,194,151,17,55,136,46,21,96,87,63,225,39,124,25,66,183,233,31,192,119,3,177,243,162,0,60,93,75,61,161,121,16,71,206,98,183,165,86,202,106,109,33,232,170,154,237,54,73,218,249,18,187,230,52,53,81,155,210,88,192,171,150,80,83,7,110,212,254,244,23,244,26,135, -35,181,53,208,218,98,87,162,166,215,48,112,91,107,4,214,82,7,169,81,173,68,113,218,106,4,45,5,213,195,142,106,16,182,45,251,139,200,80,251,7,105,175,198,85,218,154,152,12,153,210,53,75,107,68,74,67,227,131,220,189,144,47,74,7,252,172,130,51,234,75,76,70,27,80,83,70,66,98,84,11,155,150,143,48,219,166,195,125,53,17,116,188,46,18,165,247,197,222,164,177,39,173,229,41,164,101,28,109,115,192,190,76,37,28,94,17,189,49,185,131,39,214,216,137,212,70,122,145,38,70,174,104,147,168,69,17,117,82,133,167,46,218,199,131,6,27,13,94,83,67,52,17,112,179,178,132,84,62,201,122,181,133,156,71,112,77,224,245,183,28,28,106,200,137,207,232,154,24,236,185,158,92,207,11,117,60,200,239,233,137,113,63,106,206,84,7,61,255,199,94,76,153,136,234,54,229,13,144,49,164,158,223,80,98,251,73,153,131,216,249,71,44,125,133,223,190,113,112,143,190,186,0,183,158,9,42,99,63,144,179,245,203,114,35,9,100,173,80,129,181,216,85,82,218,133, -149,178,73,16,140,155,215,129,221,178,63,107,53,229,71,208,155,143,143,58,10,254,249,88,104,16,92,109,41,201,186,76,196,63,212,130,141,246,84,16,157,101,164,70,209,73,24,174,246,1,36,40,16,35,124,0,137,103,57,131,18,82,0,142,230,14,213,53,105,224,60,151,252,91,103,181,218,50,182,54,27,132,105,72,130,30,186,194,120,74,38,97,16,90,109,14,255,8,43,23,16,171,196,141,163,189,168,4,198,53,69,33,134,48,245,97,45,75,48,173,247,165,143,208,227,134,186,144,210,130,152,85,6,1,73,165,82,43,144,232,180,48,83,201,35,168,44,16,87,165,136,68,25,253,1,144,236,193,197,41,3,25,33,173,109,41,165,128,81,100,115,56,170,1,159,168,174,217,144,53,192,164,71,124,79,86,186,23,55,241,123,120,230,170,237,206,42,243,100,215,202,108,79,104,254,253,99,110,155,51,233,109,173,221,110,167,211,105,226,103,163,47,199,99,10,230,163,89,106,132,31,55,171,174,93,69,94,112,129,51,119,208,166,127,158,238,177,166,228,251,229,150,122,240,78,49, -218,240,154,44,222,141,20,215,123,188,116,245,199,93,186,83,0,204,243,243,193,210,117,25,79,21,112,123,226,166,23,202,175,24,35,250,125,51,126,255,94,131,248,69,0,172,49,193,95,31,157,175,25,3,199,167,32,228,128,156,4,8,65,59,112,249,121,71,229,249,247,185,124,241,189,171,239,233,252,222,241,249,126,23,39,55,0,45,55,218,26,56,39,46,15,252,130,78,249,197,160,204,63,251,32,150,219,40,15,64,230,84,181,237,14,55,146,54,93,39,73,59,168,36,191,5,224,25,135,113,87,157,70,146,6,19,132,169,173,228,228,228,47,136,241,144,230,132,35,47,54,194,218,11,116,189,146,82,145,19,205,5,249,59,26,71,170,222,141,34,134,54,113,22,199,133,2,221,113,26,2,106,83,228,158,101,243,253,94,132,78,175,61,87,189,12,111,107,73,179,116,25,221,179,221,252,77,116,150,110,160,21,233,70,144,56,102,216,94,52,171,254,243,12,185,244,185,139,230,20,87,233,51,39,43,86,249,170,169,124,170,1,73,188,127,215,214,196,132,244,25,80,250,128,147,128, -43,238,191,201,181,183,226,121,22,160,158,247,196,139,254,61,124,175,77,111,121,170,238,211,30,55,232,231,243,43,248,70,228,125,217,223,139,126,247,84,63,222,124,204,175,47,125,210,239,212,79,108,235,13,169,250,124,185,115,206,248,52,47,173,111,92,211,151,57,230,138,166,39,53,253,118,252,60,124,209,11,177,248,12,37,143,111,82,219,23,63,193,136,249,231,179,244,214,47,202,191,161,243,133,252,52,242,134,111,100,253,55,250,117,180,83,158,153,240,187,242,35,242,9,11,191,130,197,84,159,57,86,99,247,139,186,255,164,239,94,166,218,245,157,208,248,20,149,199,47,105,145,195,158,39,175,240,221,44,122,178,11,205,23,46,254,94,196,223,171,84,252,109,142,191,7,182,237,27,186,125,183,183,205,119,38,255,182,230,223,190,141,240,133,21,190,4,84,200,243,23,121,247,225,7,103,65,61,112,111,92,105,180,91,135,126,188,181,137,146,230,2,100,155,158,180,134,177,188,10,58,217,174,21,104,89,82,86,131,12,38,133,213,104,173,171,139,34,124,7,60,12,232,224,132,209, -226,27,62,156,227,106,28,137,234,155,29,207,250,53,71,138,223,159,204,126,123,91,3,80,115,109,49,74,113,8,90,67,44,3,11,207,148,184,145,41,210,159,251,64,99,26,177,249,29,121,236,200,216,85,122,153,160,87,43,135,188,120,156,124,57,214,105,78,127,87,109,147,146,1,57,40,154,213,223,95,148,25,169,110,254,78,201,38,209,68,241,251,199,53,73,95,52,184,184,74,158,59,29,239,74,190,173,252,19,255,158,26,13,170,75,84,210,233,89,4,92,104,127,99,156,213,238,146,51,31,243,173,67,38,58,207,225,166,19,48,93,152,228,219,5,54,234,172,132,151,212,180,93,31,222,237,215,206,201,203,184,224,55,237,209,173,186,112,116,70,186,11,122,97,104,15,239,204,90,231,143,103,187,48,86,188,222,173,42,103,119,148,178,11,229,50,227,1,247,216,172,211,40,184,46,176,57,79,182,190,33,21,157,128,202,30,19,44,87,226,251,61,241,236,172,77,118,236,116,213,146,220,154,232,142,77,244,109,151,22,154,220,233,170,159,62,218,36,183,69,95,240,109,221,117,230, -215,13,99,164,177,139,42,77,6,126,161,69,159,24,145,251,25,43,250,254,43,116,184,241,233,166,34,177,155,139,171,187,172,120,119,181,238,54,81,235,174,105,221,29,169,214,29,40,221,237,37,201,221,92,186,107,75,119,147,179,118,55,214,238,161,139,225,178,240,111,228,224,68,199,172,86,100,190,4,235,96,206,9,89,219,155,26,240,74,242,179,2,203,196,197,181,205,207,43,53,166,53,122,137,52,182,183,244,75,6,8,99,113,69,150,121,255,188,237,137,151,241,238,186,164,82,246,35,236,18,117,155,70,34,39,139,85,213,49,66,10,39,211,109,240,118,164,171,6,173,181,34,19,108,193,20,230,115,102,24,211,22,213,48,25,208,213,248,165,238,150,10,164,196,37,4,208,70,27,4,185,101,39,45,140,183,67,91,64,89,221,2,230,54,113,171,110,51,157,197,19,4,89,180,78,104,134,166,108,145,57,106,189,179,52,119,205,41,182,29,3,140,89,226,186,149,80,85,249,197,234,23,95,126,99,195,181,162,196,35,223,93,33,202,107,58,32,213,107,60,218,46,49,48,194,239, -138,250,19,197,151,232,221,23,248,250,91,120,63,87,167,29,178,203,254,119,90,107,189,119,234,166,243,219,117,87,157,107,171,238,124,167,47,58,61,23,115,81,95,75,109,119,242,202,211,233,186,39,236,181,179,45,187,51,102,252,158,171,42,159,173,149,174,59,229,185,230,203,221,49,197,186,81,80,221,97,115,190,108,229,66,38,214,96,147,187,42,88,174,197,238,59,234,185,94,139,220,216,233,154,22,63,218,229,174,38,149,215,214,162,215,178,235,133,49,240,184,189,157,54,115,178,209,161,79,213,152,235,161,30,180,71,198,117,177,54,189,36,44,110,69,163,213,38,205,178,216,227,164,18,118,153,69,237,77,232,217,222,4,219,250,80,123,172,15,182,115,161,54,177,248,217,130,237,11,116,213,182,67,219,85,104,91,206,132,182,63,197,135,128,185,124,152,227,155,99,190,78,136,127,175,139,240,87,249,243,201,152,7,157,29,248,153,137,86,217,97,11,178,242,188,229,104,203,248,101,120,203,248,111,234,225,57,128,113,88,13,214,57,13,188,126,207,2,181,184,247,204,73,242,171,113, -68,117,125,83,209,165,173,249,37,144,229,163,247,119,157,2,250,13,242,101,192,182,79,69,211,118,47,129,70,150,159,70,177,84,244,101,104,148,163,135,219,23,76,78,137,127,186,20,131,26,21,182,133,179,117,52,177,153,237,119,45,224,46,7,184,84,165,221,2,40,136,41,219,77,192,57,104,165,91,214,251,156,193,234,95,88,81,34,133,149,143,7,225,9,133,127,106,240,146,100,212,174,251,242,2,233,64,139,206,208,197,181,59,20,160,85,103,228,116,87,107,10,208,172,179,31,186,152,44,5,104,109,230,75,229,84,192,37,15,41,214,59,140,10,112,35,63,230,22,82,84,0,209,117,71,173,59,16,149,63,126,188,200,182,240,230,71,119,237,214,140,235,80,7,55,174,93,255,128,166,108,113,155,26,109,62,58,66,215,16,142,204,232,221,117,16,183,157,228,53,126,185,189,184,13,37,82,98,254,162,207,95,228,96,141,254,160,45,189,130,229,198,123,144,64,252,151,81,210,127,209,43,32,239,203,185,250,90,231,158,57,157,31,112,175,30,152,239,137,13,211,224,101,221,237,89, -29,44,155,90,12,46,69,80,152,201,210,75,126,39,19,76,7,53,54,180,64,16,60,92,212,8,67,50,108,30,83,158,77,64,91,25,40,250,117,71,137,169,40,131,72,138,115,148,20,32,16,29,244,65,153,128,129,78,251,200,79,147,116,74,130,103,33,97,108,157,87,227,99,33,113,157,132,138,16,182,228,168,33,198,13,94,198,136,143,164,49,134,245,36,99,218,99,171,197,78,179,103,14,146,247,24,227,175,107,69,30,66,77,153,127,14,135,130,106,0,137,58,7,164,180,251,6,80,93,13,165,89,76,118,13,80,53,182,159,238,22,247,39,181,37,11,39,117,59,32,195,137,1,148,229,163,121,200,224,105,2,14,94,214,7,222,241,254,152,232,126,157,161,248,191,74,179,53,89,203,170,206,192,73,103,158,241,22,203,137,170,233,36,7,207,58,51,47,149,110,79,68,63,78,255,49,251,243,195,59,28,39,154,54,224,12,93,178,63,188,31,76,105,34,41,127,70,232,9,100,158,120,56,65,5,234,206,244,249,243,123,7,13,79,124,133,58,19,58,93,102,142,103,185,235,233, -166,240,120,187,236,185,118,157,52,61,102,107,135,94,231,46,150,152,147,237,20,118,45,6,60,107,97,144,229,76,39,101,139,185,40,106,212,249,51,13,190,123,100,196,92,216,16,143,248,215,203,182,182,147,115,211,113,104,43,14,43,197,234,144,81,28,202,138,131,45,98,56,204,12,135,66,211,112,120,1,135,44,176,58,140,129,195,28,56,200,77,190,3,243,61,33,190,95,89,253,131,39,184,49,92,57,141,159,111,243,82,225,252,11,124,117,198,234,102,214,47,0,60,207,12,52,149,101,53,32,5,179,233,1,180,210,94,206,91,194,243,21,36,14,109,253,88,121,112,76,188,100,136,91,226,229,198,158,77,253,6,213,130,20,169,13,148,190,210,7,37,27,150,133,18,69,153,77,90,113,154,162,130,20,22,106,220,59,230,229,236,3,128,19,218,139,156,103,22,204,180,138,3,168,97,243,5,63,160,148,43,61,101,118,55,25,86,246,237,168,145,61,182,155,224,229,204,166,133,231,235,63,171,148,106,197,96,24,169,45,91,114,5,141,138,172,167,98,83,110,5,91,139,77,113,127, -208,223,222,75,203,220,93,31,59,128,242,47,205,227,128,175,94,174,231,182,238,137,236,44,126,199,13,59,201,54,127,82,87,191,221,102,85,93,63,91,101,79,250,204,243,219,107,48,217,103,233,200,245,36,175,127,129,102,117,50,59,59,85,79,198,107,46,16,54,228,202,51,38,97,122,66,150,2,185,190,25,139,159,11,162,103,1,54,21,200,26,72,244,224,12,14,223,223,162,239,181,190,208,161,78,55,132,149,253,18,105,186,251,43,226,106,119,182,213,238,169,47,205,183,179,210,97,173,116,27,148,173,26,105,46,124,226,85,153,124,86,197,53,247,136,228,91,83,236,228,41,107,61,193,206,68,188,155,135,208,202,41,60,175,150,249,187,59,127,111,214,186,247,155,225,89,54,172,158,127,134,231,12,120,218,62,2,228,5,60,179,111,224,137,240,61,85,190,220,211,228,123,50,127,239,107,162,247,172,127,172,4,190,91,35,167,1,9,108,50,47,156,127,128,107,43,100,53,154,147,209,16,230,193,184,184,12,167,231,117,165,129,20,16,89,43,198,72,69,5,242,20,87,35,141,159, -161,180,208,72,224,192,108,175,134,15,1,58,194,96,44,37,69,243,20,14,228,233,98,180,12,67,4,164,179,40,252,162,191,32,131,188,145,250,61,191,76,204,200,160,248,184,228,209,35,37,109,16,84,145,132,81,104,125,31,143,116,58,221,132,165,21,119,125,143,146,118,238,140,1,229,39,172,75,37,3,95,51,143,24,145,53,251,163,196,214,108,41,3,60,149,146,25,217,229,12,28,93,162,241,210,166,24,244,61,5,135,130,139,248,20,143,201,104,193,91,214,230,187,175,105,18,255,42,80,239,233,46,8,93,28,49,235,186,184,215,186,151,11,91,211,238,138,216,214,38,237,215,45,189,112,253,184,162,22,169,206,164,85,31,23,166,69,219,21,182,235,138,90,26,182,180,240,148,93,177,148,53,91,212,154,135,139,162,165,254,25,145,165,40,181,212,240,194,81,112,157,163,22,2,73,27,66,171,43,194,240,162,43,58,141,129,66,131,185,89,225,47,246,115,184,233,30,104,137,60,99,133,80,91,220,191,52,86,107,165,65,89,33,86,24,155,45,218,252,114,139,180,39,114,133,19, -215,44,78,18,171,169,216,216,146,215,90,172,157,1,155,55,177,65,45,92,88,33,63,242,139,181,194,234,254,169,113,216,203,12,202,22,144,33,155,191,240,134,32,140,108,8,96,13,193,159,173,185,185,55,55,215,38,231,179,233,111,13,125,253,175,241,222,89,95,155,215,226,153,108,222,148,118,245,41,141,137,207,6,63,232,169,179,154,95,218,190,176,0,193,194,177,230,225,61,186,171,130,144,74,42,164,82,128,76,83,213,248,226,33,41,105,198,210,146,75,243,79,180,8,192,105,112,142,137,148,204,144,11,187,175,4,0,242,214,134,42,16,150,198,73,11,19,37,40,38,97,79,60,168,20,16,154,203,200,89,7,16,128,179,138,250,89,133,8,71,40,101,195,192,210,197,44,215,245,166,127,176,76,201,23,255,248,131,111,97,103,50,51,220,89,204,204,239,170,25,213,168,110,225,45,32,115,201,146,200,28,197,6,84,230,187,86,74,131,87,38,101,194,22,155,248,21,121,46,153,115,29,179,141,249,48,226,111,156,4,253,62,210,118,193,174,153,65,114,207,31,132,113,79,182,188, -181,41,227,118,45,15,182,166,39,98,41,110,32,95,233,131,171,237,244,68,237,250,98,70,205,57,30,76,101,79,216,42,249,84,176,165,131,103,87,247,196,108,57,74,134,102,30,30,44,117,79,164,102,201,145,50,131,240,1,195,42,120,56,83,126,226,106,33,202,57,200,126,134,0,221,141,95,215,195,239,151,199,105,175,180,168,11,243,26,99,189,68,57,110,183,40,179,42,140,43,211,229,225,96,113,42,139,45,13,107,166,35,90,170,145,21,103,17,204,148,123,99,99,114,123,248,115,56,53,224,82,139,50,215,97,172,94,38,140,115,128,100,156,177,192,88,211,253,228,54,156,83,156,231,242,167,175,56,123,250,90,111,94,125,203,230,53,221,120,55,155,166,119,181,240,246,22,222,85,127,225,29,174,94,17,65,243,241,109,255,83,111,114,7,57,127,108,86,163,142,233,47,193,63,234,166,139,138,209,165,47,42,154,90,250,42,27,200,126,124,81,93,150,81,21,54,236,176,43,2,99,248,239,159,205,147,249,1,114,218,246,240,18,72,0,37,75,225,207,202,242,75,76,196,35,126, -163,97,152,15,21,16,161,135,70,149,143,237,151,16,238,28,63,227,43,94,241,7,238,111,142,95,182,103,199,211,50,82,244,206,249,84,84,179,100,6,37,3,236,43,144,28,8,91,181,221,4,68,102,204,207,104,114,74,94,254,37,118,13,195,16,142,208,233,151,165,37,6,28,253,17,217,94,195,86,193,238,173,122,12,218,178,63,228,172,220,25,3,16,215,31,20,253,10,64,74,68,10,144,124,147,64,5,79,166,59,132,101,69,24,74,102,16,67,143,141,176,18,41,214,69,115,31,197,128,198,169,33,82,106,120,21,202,198,189,68,191,154,130,18,41,61,91,19,186,24,27,236,247,107,17,202,88,123,10,8,80,106,177,231,58,226,203,202,68,112,176,208,12,33,18,24,127,218,72,253,105,22,147,46,109,173,114,223,159,84,160,218,90,57,190,163,245,247,16,128,127,117,198,234,78,2,227,169,103,62,10,148,169,218,30,51,255,183,91,242,38,46,232,237,115,0,133,81,89,53,184,100,60,102,21,66,68,138,146,1,227,137,11,71,81,134,130,11,252,4,139,210,40,198,24,87, -201,192,70,148,84,137,197,131,183,112,28,148,176,20,6,134,70,78,126,245,135,96,135,80,164,56,197,214,7,16,162,164,88,5,9,198,101,228,164,229,4,1,72,179,235,15,203,166,111,111,69,74,132,124,87,222,66,171,170,30,45,107,68,182,12,226,98,40,45,179,106,252,34,107,122,222,15,193,112,253,16,201,182,156,130,117,245,60,6,192,227,89,84,142,56,232,29,192,98,136,191,40,9,254,203,26,114,160,160,170,211,111,227,155,174,67,111,181,233,200,89,214,70,252,201,157,30,16,126,28,153,150,101,93,192,127,29,7,58,68,219,65,200,227,23,156,210,64,85,118,4,173,50,29,21,159,26,14,68,63,117,135,223,150,165,226,105,135,240,64,83,112,132,242,150,172,156,35,167,224,245,84,116,20,29,30,212,208,158,157,165,227,160,108,40,92,130,157,16,225,32,93,3,60,212,24,245,214,150,131,141,197,40,111,212,112,188,213,18,103,59,135,111,156,166,24,175,37,71,141,140,248,224,224,48,126,208,173,70,90,107,176,118,117,5,193,81,135,240,229,152,48,138,201,15,254, -12,112,163,165,86,227,46,53,18,156,101,140,252,220,225,120,188,19,28,213,188,7,111,153,111,135,247,237,172,111,223,78,170,223,177,245,239,29,90,191,19,234,119,111,190,125,103,179,239,16,111,251,14,35,223,81,228,127,187,73,110,112,225,71,223,250,22,94,224,122,255,61,82,194,215,157,180,252,255,188,0,0,9,162,125,197,192,119,39,52,199,159,84,10,208,158,174,246,128,233,202,18,22,0,21,246,35,77,85,55,1,239,139,65,19,128,87,156,108,31,12,41,105,176,0,6,13,131,68,161,186,223,248,4,12,157,114,163,35,244,92,2,152,106,162,166,144,40,78,126,127,28,198,249,134,12,231,189,244,247,30,6,153,105,72,186,123,2,172,47,95,32,57,21,118,205,48,50,91,23,72,25,89,178,67,191,74,246,59,134,21,209,124,69,92,30,116,162,130,79,184,192,213,41,220,149,85,44,192,252,168,130,184,59,21,12,130,96,21,233,188,145,170,36,1,12,186,124,26,155,199,24,177,27,178,189,72,237,128,252,194,190,125,203,94,47,166,242,87,184,176,159,2,90,215,139, -170,250,253,5,230,85,229,205,170,26,191,232,154,79,59,115,145,184,73,77,47,178,194,243,233,152,160,111,206,158,232,101,43,248,168,10,169,32,91,202,73,231,114,247,224,68,221,221,118,87,248,179,230,121,89,42,190,6,69,45,32,148,137,145,231,28,41,58,61,11,55,163,119,250,220,88,188,242,91,241,151,174,220,224,74,143,75,120,222,12,158,180,177,222,141,177,125,254,56,122,94,99,233,87,160,210,191,176,229,42,98,174,134,10,78,244,192,13,211,125,34,234,6,175,36,255,203,173,43,244,184,210,4,57,247,30,158,167,250,235,118,249,125,221,236,222,79,217,220,170,222,27,211,123,123,77,58,183,88,231,134,188,119,110,159,210,228,111,110,11,254,77,205,191,189,82,252,155,160,125,250,173,186,23,190,99,245,221,63,169,124,102,72,200,178,59,43,143,190,118,224,253,100,248,84,64,69,93,14,76,164,152,127,76,172,164,40,229,97,112,19,3,137,113,74,74,41,8,124,8,42,105,240,197,121,70,135,234,83,72,228,160,22,29,133,249,39,11,110,151,76,105,225,193,71,93, -84,152,168,115,208,168,165,22,172,82,88,29,40,165,117,202,64,96,65,91,25,35,105,24,4,72,241,234,67,57,73,51,85,127,100,231,152,77,94,172,187,148,69,214,143,62,196,173,110,81,37,188,236,103,48,154,126,230,139,27,78,39,56,198,250,209,140,98,117,20,51,88,140,195,136,89,30,43,220,64,143,23,181,86,48,181,5,127,176,10,97,90,252,221,100,5,219,206,44,237,244,187,63,119,64,100,231,7,40,187,46,88,221,93,26,161,237,206,148,215,133,148,245,171,180,66,148,221,157,108,69,7,86,15,87,52,76,193,157,46,233,200,106,43,54,188,10,138,206,14,111,193,205,84,240,50,151,82,54,188,144,15,172,186,159,93,35,113,93,133,3,154,179,167,226,102,168,43,60,116,153,16,155,35,125,34,43,180,208,0,79,211,171,183,197,166,47,54,249,84,229,138,80,58,71,30,115,119,200,186,234,53,140,182,237,106,161,176,57,147,165,38,77,181,194,149,157,21,228,98,1,177,90,99,129,198,188,187,26,1,66,155,39,223,100,40,180,73,116,137,241,183,192,62,137,214, -191,87,163,245,94,189,109,250,51,79,127,214,190,245,103,188,254,108,181,191,207,112,251,153,109,63,191,141,242,51,88,126,230,191,229,103,134,252,236,114,191,207,24,247,153,226,62,123,38,151,213,69,215,208,175,219,86,129,99,158,211,164,187,195,198,149,118,203,114,233,165,222,39,176,224,93,245,39,176,170,88,160,15,218,75,53,72,147,244,71,37,234,179,73,81,140,182,252,47,176,252,97,37,73,83,130,123,162,208,61,33,81,174,251,135,42,218,145,33,6,161,21,101,81,80,41,243,115,19,37,209,128,61,167,133,139,53,148,163,141,7,119,49,88,183,68,245,234,82,213,29,100,151,172,94,163,15,137,120,89,190,69,149,221,134,2,186,188,160,152,37,106,212,184,75,81,69,187,164,140,234,230,85,65,27,222,152,170,167,30,112,109,73,77,57,230,152,27,176,120,181,177,28,176,185,252,165,189,0,26,75,159,124,30,133,43,89,221,20,203,110,74,233,100,43,127,71,202,149,205,7,47,76,55,222,76,211,17,171,170,232,57,135,46,186,177,21,157,100,188,164,151,169,152,148,178, -254,128,158,59,195,167,101,192,115,147,117,190,121,122,51,31,83,205,69,85,114,111,191,60,48,206,141,53,248,105,106,185,73,26,223,24,174,150,143,169,16,163,11,213,93,92,126,146,231,198,78,252,148,115,184,220,156,86,155,173,91,163,170,122,59,82,213,12,150,181,49,225,124,156,63,253,24,122,46,97,173,45,208,232,44,248,74,21,166,82,67,4,101,58,120,190,247,159,114,74,159,43,252,219,30,158,244,186,109,121,242,167,242,28,158,229,186,119,126,17,116,230,246,206,252,184,73,156,212,155,19,54,119,146,252,228,78,131,220,9,74,201,157,218,151,147,246,50,59,157,46,39,129,110,126,250,109,149,125,110,149,239,122,41,191,103,154,87,184,91,127,142,225,68,25,94,150,19,78,90,1,105,145,173,45,125,20,190,137,255,126,255,60,153,6,249,157,242,81,12,31,220,39,251,83,76,57,85,81,26,181,131,196,179,64,47,11,176,194,16,39,46,149,145,100,252,67,35,26,70,91,14,18,175,29,132,189,76,144,63,135,217,114,6,201,42,151,137,23,116,95,102,17,101,20,146, -138,63,195,153,192,198,57,140,138,38,72,212,182,225,16,18,52,150,113,50,74,87,141,184,190,76,96,157,106,164,162,112,64,212,174,90,12,18,201,253,37,36,155,11,178,235,64,58,175,72,77,60,204,230,208,173,64,213,65,139,101,20,71,168,178,9,81,203,205,28,5,80,77,170,232,4,140,82,27,57,195,67,248,110,254,119,37,159,90,92,21,170,156,139,197,84,242,126,62,96,1,110,158,198,55,3,142,49,137,202,33,50,215,15,78,151,2,14,151,190,213,14,99,209,75,76,249,130,248,83,185,1,176,54,48,23,50,128,108,87,172,2,88,249,54,83,161,195,151,26,85,49,230,81,166,191,102,243,189,79,215,53,234,169,174,184,189,16,224,110,42,39,134,221,245,211,228,45,122,202,236,165,228,219,63,252,240,245,60,182,158,167,145,107,133,191,252,108,115,173,117,176,249,230,150,247,75,221,235,25,94,149,103,240,255,25,212,57,44,42,153,106,41,0,81,244,209,106,144,71,84,81,236,1,44,77,196,0,67,102,146,124,2,204,142,131,254,210,176,132,164,74,30,131,4,234, -109,220,22,132,65,16,121,76,84,73,239,82,72,108,13,184,63,3,37,113,225,128,164,140,174,67,73,168,36,29,180,29,138,139,17,121,217,227,167,137,203,45,209,152,162,6,101,37,245,157,68,125,70,117,83,21,13,100,76,126,168,198,48,61,235,138,241,144,63,59,126,232,8,107,69,82,101,139,198,86,143,86,162,245,36,42,72,40,33,216,73,210,15,27,17,158,38,65,237,191,180,166,202,7,35,75,35,112,177,236,204,125,210,17,221,233,150,156,145,154,150,76,167,182,163,146,25,209,158,4,109,229,74,58,169,234,88,165,210,213,232,228,8,19,30,21,61,123,99,167,237,36,233,185,196,106,182,16,81,77,6,116,179,81,157,156,213,70,37,203,62,111,106,56,201,90,46,49,88,33,68,84,49,49,93,39,38,39,123,241,81,62,224,216,27,90,78,146,142,189,36,86,207,8,213,221,27,164,183,133,73,93,62,61,154,24,76,223,181,58,132,161,89,226,43,54,228,77,245,5,161,227,193,201,191,155,127,196,243,153,162,158,223,250,74,175,57,86,231,149,127,127,19,167,75,7, -222,100,255,119,36,180,223,77,254,38,123,162,77,131,119,149,241,159,202,252,157,161,179,249,201,99,110,36,81,95,70,135,203,232,135,114,25,137,47,35,104,53,49,106,87,71,218,234,232,248,239,75,114,217,228,175,155,75,103,114,233,191,206,190,202,119,44,189,250,138,179,199,12,57,252,68,229,196,252,65,7,180,116,66,183,212,132,193,0,64,159,243,71,10,97,70,154,124,214,47,3,73,3,152,4,152,57,2,192,198,106,150,6,1,111,235,56,168,6,43,162,177,165,105,40,230,39,65,75,248,65,97,87,151,139,52,74,202,132,15,69,35,147,162,195,125,220,160,67,6,64,228,228,107,160,92,66,59,228,3,42,63,178,111,165,169,108,87,23,103,172,80,121,27,26,55,82,27,182,35,179,129,189,27,137,131,116,124,171,91,39,30,151,245,20,163,100,237,226,180,68,83,141,132,250,225,143,147,33,139,197,22,103,34,167,251,65,28,115,15,211,5,197,145,5,89,250,243,162,219,98,109,234,146,216,243,68,143,200,151,226,23,98,167,142,116,95,232,253,41,252,215,32,139,30,214, -130,151,162,63,255,18,152,122,48,214,168,222,195,107,127,15,205,163,171,171,120,191,180,2,244,31,35,23,75,201,69,35,61,149,188,71,199,255,174,96,201,67,83,244,114,116,22,1,154,73,68,166,144,238,208,8,42,220,191,242,233,191,95,133,199,94,234,208,168,154,13,129,113,65,60,83,110,200,104,5,222,27,109,254,191,20,224,113,142,243,157,161,126,179,101,250,170,247,212,226,49,178,14,188,251,249,239,159,84,79,245,4,171,157,177,86,255,179,99,48,239,41,236,55,113,244,199,223,183,114,127,11,130,220,147,250,225,207,110,186,220,150,41,119,167,94,191,174,148,192,157,20,220,93,73,129,51,185,113,167,146,27,87,106,227,76,173,244,206,212,123,203,120,175,198,10,95,87,241,206,118,10,47,233,247,131,122,143,251,222,207,245,91,80,164,147,63,34,242,163,33,195,121,21,189,148,47,25,49,144,184,56,82,36,12,63,119,176,255,67,208,134,221,148,18,128,42,145,104,17,128,30,166,32,93,112,74,78,171,249,65,46,40,166,0,10,23,165,162,182,42,9,114,80,84,17, -127,218,82,198,196,107,44,152,114,88,204,7,33,126,189,146,254,16,141,225,252,33,59,129,111,37,40,84,114,56,73,16,14,145,54,33,100,56,50,98,127,77,226,87,43,17,166,227,252,126,44,253,168,145,13,82,13,54,76,57,99,21,89,63,0,7,46,62,206,88,186,36,30,28,80,89,252,116,10,31,26,27,206,132,117,238,13,180,166,74,239,97,229,76,87,112,133,104,107,157,24,93,212,134,103,99,178,232,40,46,184,248,250,90,27,90,29,72,213,59,117,113,84,155,21,53,199,161,177,226,34,169,121,196,1,35,27,73,77,196,82,157,185,80,156,197,103,37,176,228,104,42,186,200,74,46,143,200,36,192,83,49,119,72,42,238,21,123,121,248,44,175,56,26,74,46,11,73,181,34,210,207,240,71,234,14,145,182,3,69,163,174,59,155,0,22,113,48,223,96,40,86,120,218,221,118,77,125,61,165,248,193,171,136,120,207,190,245,63,150,74,181,49,80,107,7,123,122,229,150,74,125,227,165,163,78,145,178,153,109,200,114,75,254,135,179,81,41,51,39,230,216,157,106,254,58, -83,31,23,253,38,28,159,152,73,254,186,24,201,127,222,114,164,226,2,103,234,227,173,13,224,72,109,92,73,189,211,149,124,111,105,175,177,162,254,221,213,63,179,157,219,68,250,125,164,54,103,236,49,125,201,178,121,225,124,220,1,174,82,49,2,96,148,178,255,47,162,230,14,134,2,160,198,138,64,8,62,44,177,227,254,180,80,245,209,245,157,128,35,225,23,177,233,96,11,64,46,170,208,31,217,211,139,239,72,41,101,129,141,37,130,12,18,132,159,4,51,133,203,196,135,255,171,196,248,246,227,81,170,84,62,197,243,11,21,103,190,89,188,83,209,107,142,50,46,152,230,206,135,70,168,186,58,7,19,10,86,127,72,168,24,88,108,73,181,184,108,113,225,242,115,146,116,72,40,206,65,65,21,17,147,56,145,149,94,24,177,129,58,121,133,29,113,137,237,142,7,191,169,249,13,69,94,106,162,79,227,22,239,27,172,139,149,23,59,244,105,158,254,166,252,232,169,177,82,202,120,234,211,148,110,210,7,92,202,7,8,249,180,12,127,83,11,146,92,172,244,211,59,13,183,181, -111,114,133,136,44,195,6,194,211,52,254,77,73,23,137,200,82,72,120,146,116,243,109,65,233,2,15,149,191,3,167,156,191,77,226,229,47,240,18,15,220,56,185,127,219,227,170,93,126,43,103,94,39,106,206,221,158,254,84,239,165,147,196,123,210,86,219,171,114,184,250,87,166,119,78,206,82,172,61,47,48,175,165,105,132,127,2,55,121,155,78,101,226,42,215,215,167,181,155,121,211,166,158,209,178,244,181,42,250,142,42,171,192,93,206,113,231,49,23,225,244,68,222,8,161,236,243,71,232,29,87,223,225,117,245,61,175,254,26,222,106,159,89,233,51,40,59,62,163,50,167,233,150,191,44,59,229,145,171,86,168,24,229,254,14,121,215,99,187,59,95,251,205,191,31,92,111,238,71,206,63,183,19,163,209,205,6,137,20,152,143,192,199,157,143,145,247,12,151,204,201,72,241,34,218,96,124,215,241,7,48,26,38,241,188,209,32,88,216,138,146,81,226,127,42,175,129,12,2,93,230,62,50,136,232,188,38,96,48,71,25,243,65,246,105,153,250,185,140,120,238,12,132,33,22,149, -80,46,163,2,37,50,102,243,70,137,192,148,205,91,4,6,5,159,255,134,119,113,84,116,184,220,4,85,91,164,31,125,172,180,48,90,209,48,93,184,156,42,76,78,69,42,76,52,255,35,199,135,144,222,233,120,29,155,192,164,155,231,8,205,194,32,115,225,7,178,27,32,21,0,172,177,10,220,29,234,128,180,95,39,158,252,183,221,67,98,30,223,115,134,192,85,71,170,213,181,110,185,122,47,159,174,157,19,94,229,23,235,168,71,133,218,51,55,149,18,224,102,123,89,97,58,75,59,248,161,53,231,50,69,174,38,156,238,40,111,228,220,121,53,219,10,76,110,132,19,21,121,235,81,215,152,229,252,235,172,240,255,202,94,101,153,183,11,61,99,52,31,54,155,211,173,187,227,255,44,200,82,43,104,88,120,208,88,35,238,129,175,24,141,4,11,236,35,150,56,216,73,198,38,252,97,90,159,18,69,129,114,221,127,122,227,72,254,220,213,69,22,152,173,162,0,194,193,14,70,10,73,250,37,85,20,229,103,145,177,66,18,77,141,5,75,198,72,239,176,80,80,119,249,93,6, -198,175,227,31,32,200,170,37,14,253,170,90,68,203,66,59,200,200,248,195,12,188,2,55,238,98,110,48,221,100,62,21,49,166,211,126,133,5,199,23,35,100,152,70,67,160,70,132,38,199,18,133,64,245,7,162,171,31,229,73,211,4,18,76,245,18,248,14,239,214,158,248,85,222,241,224,215,145,25,198,62,136,124,25,251,240,83,109,199,161,104,63,86,97,232,195,88,166,184,29,73,145,251,145,248,46,24,148,92,249,104,102,174,9,199,78,66,17,115,79,221,159,229,119,37,197,21,100,42,121,200,42,62,113,78,39,194,177,49,104,68,39,14,244,123,221,93,30,12,92,13,121,15,73,225,92,99,105,151,27,246,46,120,68,218,175,190,238,221,217,201,245,142,80,181,165,28,171,215,39,186,253,250,198,126,125,71,240,157,254,21,177,217,125,203,29,21,203,79,107,160,212,237,105,182,170,11,171,110,69,70,131,117,159,114,217,25,213,63,142,124,185,213,85,101,143,7,250,196,129,53,115,137,17,118,182,143,155,236,222,46,241,149,46,190,194,223,226,43,91,124,69,127,191,175,194, -239,43,255,251,250,38,124,95,101,218,171,234,160,189,94,154,59,189,109,213,199,86,250,27,109,164,244,91,195,250,140,52,193,173,30,88,252,91,193,250,31,15,103,185,164,76,211,116,235,83,111,220,221,221,221,29,6,151,193,29,6,25,220,7,119,183,143,251,121,99,239,136,110,154,102,130,31,100,86,175,92,87,77,85,62,253,205,224,123,219,247,71,138,65,95,62,176,187,114,81,117,225,208,136,141,147,37,245,16,58,30,40,34,141,36,41,41,29,4,228,158,110,145,137,97,30,130,160,108,143,42,36,185,208,1,0,138,76,213,210,70,117,36,24,137,132,132,34,170,22,26,4,46,48,87,90,65,245,4,194,131,241,202,215,5,103,245,221,3,112,130,234,106,53,176,135,246,121,97,5,211,224,116,16,137,61,4,9,129,195,33,152,234,177,213,76,35,60,154,8,33,153,128,28,19,142,244,136,88,59,17,22,139,139,55,74,104,225,194,84,122,226,212,243,42,102,186,111,67,173,254,165,135,39,107,154,248,8,109,245,253,73,21,140,202,41,44,110,214,141,78,252,235,100,235,154, -40,170,83,31,67,51,2,223,27,88,47,228,220,248,154,206,33,67,207,197,209,178,208,25,90,17,134,149,68,33,90,162,219,139,24,55,30,160,230,164,107,185,56,186,10,15,69,35,32,176,240,25,20,10,6,122,128,191,97,236,116,106,19,195,66,119,100,156,46,104,247,147,0,227,249,66,248,78,111,237,118,24,51,141,218,12,170,91,156,232,246,43,218,202,241,194,112,252,208,151,39,215,211,185,141,209,86,178,54,210,107,15,12,250,143,27,157,106,194,100,122,83,168,95,237,137,44,70,93,167,206,156,104,211,219,0,125,236,66,91,120,48,57,11,31,58,196,122,26,242,189,135,185,247,44,247,68,111,112,239,133,27,61,169,183,209,91,54,122,184,93,163,247,51,239,173,43,184,80,71,7,243,215,49,97,191,141,250,234,169,30,189,90,241,50,134,149,94,15,163,143,246,114,248,33,162,254,187,18,244,9,194,161,221,85,155,15,200,49,168,143,249,138,163,229,32,60,41,49,164,4,128,199,23,123,0,96,164,59,108,80,8,146,13,164,194,225,226,17,10,245,133,112,36,238,170, -68,2,27,179,64,9,14,70,226,8,160,67,137,223,137,190,53,140,207,246,173,163,78,15,198,73,113,121,32,189,253,169,75,30,236,43,112,139,241,26,177,24,11,87,137,49,143,188,122,67,163,99,185,221,197,88,135,47,44,150,156,185,146,160,113,2,229,26,23,25,227,67,4,249,90,138,117,11,226,183,145,239,121,3,171,216,254,220,71,92,221,221,172,246,237,230,208,253,180,76,7,234,240,139,175,115,210,195,22,7,189,102,210,55,172,137,95,78,12,176,61,35,124,213,99,122,143,107,254,213,84,42,223,116,46,106,156,123,33,246,10,240,149,18,196,60,80,221,215,69,248,38,107,137,126,118,92,128,122,14,9,247,61,226,113,141,65,94,15,208,251,229,127,25,252,57,70,103,144,82,172,79,163,243,117,239,230,120,175,188,246,227,180,190,189,52,10,255,55,165,211,88,36,214,187,161,195,185,222,207,91,215,227,234,241,199,62,191,108,26,127,50,67,235,244,146,134,243,200,193,248,218,165,184,215,111,73,246,17,154,188,124,146,151,191,74,18,44,227,185,223,221,112,242,187,183, -44,214,215,233,233,81,61,61,94,12,251,67,97,127,196,58,246,7,194,254,184,87,214,143,70,229,193,169,60,252,154,202,35,69,127,116,118,186,171,191,190,243,219,174,195,119,47,251,174,61,238,185,247,223,226,173,0,251,12,49,69,113,175,19,186,25,169,17,136,252,109,158,9,113,74,23,149,40,40,197,135,82,33,88,74,134,101,81,0,162,137,30,32,75,46,120,222,28,5,245,201,164,29,52,14,56,75,200,239,64,57,253,77,134,126,60,23,84,139,4,143,67,217,220,192,215,29,5,246,124,252,30,194,8,105,198,220,69,22,180,88,72,178,209,110,165,43,218,15,199,93,241,62,10,77,158,88,74,46,255,79,201,133,208,35,214,225,10,43,2,239,36,145,21,20,75,177,184,68,80,59,51,142,211,74,119,4,210,101,85,216,121,206,68,15,114,180,106,197,118,231,64,171,182,50,102,173,103,55,219,13,235,174,162,59,135,216,53,183,144,154,54,41,215,205,86,101,91,168,137,30,177,247,51,66,46,140,168,9,27,110,124,84,55,35,205,27,227,198,89,232,94,1,105,185,74, -160,102,34,176,34,70,132,103,15,209,77,247,198,121,199,9,254,178,119,32,158,174,240,171,25,60,117,86,128,193,209,97,188,27,147,212,242,56,62,53,47,123,183,215,213,106,23,154,217,220,202,173,112,8,50,148,198,44,177,220,142,38,118,247,158,211,114,69,113,171,230,237,188,210,173,52,142,40,173,177,76,126,235,14,163,138,115,159,18,112,93,178,108,179,63,185,173,72,18,71,128,196,169,174,227,153,227,112,220,176,239,59,245,125,231,119,255,178,44,92,83,123,147,241,182,55,39,246,166,194,190,110,198,42,77,68,165,233,187,87,154,13,122,147,243,166,55,53,244,102,138,254,110,98,198,77,65,218,165,233,176,247,126,227,228,245,187,72,122,221,96,217,192,94,154,94,43,196,204,24,76,35,6,169,90,92,81,24,151,107,32,40,228,212,168,253,212,111,218,8,36,68,212,88,3,0,23,215,214,209,68,32,16,89,192,67,233,104,16,155,24,211,36,66,48,178,110,68,38,63,58,25,154,64,2,113,194,163,89,193,120,2,164,76,95,111,159,67,241,125,184,197,82,231,24,139, -4,38,44,203,38,169,231,22,177,57,218,21,154,111,114,114,137,84,215,229,137,160,186,201,152,28,198,200,193,218,70,236,134,194,7,180,58,104,227,228,63,169,223,57,31,182,71,232,215,9,119,211,194,171,60,57,56,108,47,37,211,142,138,91,245,6,105,145,137,159,136,81,233,221,139,109,97,178,19,3,220,82,13,213,99,41,209,66,182,49,81,51,94,98,154,79,24,231,126,97,150,9,164,110,1,21,22,211,141,154,232,157,158,115,252,205,132,112,183,248,99,143,186,228,181,32,141,59,39,163,225,30,103,84,188,127,41,254,102,124,126,221,45,119,79,221,219,46,44,86,185,211,7,56,4,37,74,171,151,88,157,87,19,135,203,210,104,213,99,153,213,66,126,62,73,86,26,119,144,214,154,36,167,250,227,168,234,180,104,4,220,58,45,187,216,77,190,78,44,137,59,66,106,133,23,113,253,97,200,168,173,45,251,69,221,117,90,72,23,247,147,187,113,106,144,27,39,78,227,52,111,36,78,169,249,105,63,63,73,75,243,147,100,126,130,144,83,167,86,234,180,76,37,78,184,212, -137,182,63,73,71,251,211,247,254,148,43,201,23,235,76,189,195,44,152,253,246,145,160,21,36,140,63,46,226,161,201,51,186,113,192,74,46,20,129,0,188,200,166,4,201,200,132,234,67,45,138,1,81,219,37,38,68,32,24,16,39,73,2,224,132,90,184,37,66,10,32,12,18,154,100,66,47,159,231,167,130,84,92,92,223,8,15,27,169,185,0,156,159,230,47,82,226,4,65,10,11,62,82,87,3,104,21,109,27,41,99,130,80,69,172,80,58,22,210,188,121,18,8,77,255,67,142,176,137,144,82,130,26,65,177,177,32,77,100,100,86,225,68,13,115,231,148,123,208,170,44,33,8,81,238,4,77,18,70,125,150,36,121,155,172,91,220,68,43,29,97,82,18,183,241,106,155,24,164,170,26,78,210,54,174,158,178,137,86,51,32,73,11,76,184,243,41,185,24,103,119,2,73,178,128,93,238,215,192,221,105,20,79,91,18,229,223,53,13,220,194,94,21,123,38,73,2,250,174,166,224,238,212,136,187,55,9,50,152,59,26,201,98,175,252,188,231,11,8,230,134,100,177,211,156,220, -173,36,222,97,206,4,117,139,163,170,209,76,242,199,12,115,66,182,216,172,84,115,94,242,75,97,86,84,84,218,147,90,195,245,38,209,8,115,83,164,173,237,149,169,69,178,239,238,152,243,250,180,67,179,159,45,146,92,142,57,37,175,61,38,37,159,77,221,241,213,104,6,93,146,81,105,141,246,152,29,234,251,42,137,139,31,221,66,219,246,208,172,89,180,106,38,121,208,140,71,35,202,78,108,79,92,41,137,171,46,193,185,186,10,87,83,225,122,57,193,16,209,143,178,209,116,66,74,129,120,24,135,118,239,233,55,60,119,70,8,66,131,55,88,33,148,106,60,204,120,32,196,52,78,205,160,130,40,16,113,130,19,158,151,226,206,168,26,223,205,55,180,26,218,124,236,50,158,240,254,111,254,75,59,30,41,156,228,141,133,137,97,165,77,64,133,107,109,191,35,95,96,106,95,182,249,252,17,44,237,131,41,40,34,9,205,79,75,137,121,235,10,245,49,211,208,126,173,27,1,155,70,70,248,57,228,39,5,168,119,38,143,155,22,138,155,152,180,156,73,172,172,16,180,70,143, -198,5,244,66,105,147,64,204,72,55,54,101,19,213,205,202,137,121,61,176,31,230,200,27,205,228,65,177,163,46,84,74,215,73,48,171,55,234,152,39,217,139,24,202,221,2,254,66,245,62,249,202,128,110,177,61,228,228,221,162,221,77,141,46,245,40,180,221,69,75,224,178,35,8,165,106,84,84,68,218,173,82,195,67,37,147,101,80,171,190,146,87,233,191,91,24,102,113,76,134,56,230,142,60,141,252,166,213,104,245,202,72,39,255,97,129,212,70,165,180,211,160,126,2,60,225,41,193,150,29,169,126,117,117,176,52,38,181,154,185,38,53,114,101,64,249,32,20,148,143,40,146,198,12,190,24,106,167,215,71,75,240,215,176,105,90,206,115,100,165,0,86,90,134,2,36,233,40,13,120,196,208,145,51,0,134,147,44,191,86,33,192,138,32,137,197,0,52,205,141,4,168,160,152,248,33,199,134,184,23,58,20,4,205,92,64,18,66,230,66,146,15,64,242,85,87,108,82,240,182,30,192,13,171,43,177,52,104,45,158,78,143,211,72,19,201,4,134,144,10,18,14,10,171,39,21, -192,153,63,177,133,30,139,14,88,127,36,35,55,133,5,5,149,181,177,16,237,197,143,125,124,16,130,148,134,196,109,99,159,147,145,109,194,94,231,16,171,209,75,235,106,196,147,133,234,34,37,255,154,132,145,30,102,210,48,130,105,90,119,188,19,6,246,168,38,118,168,191,172,44,147,39,107,255,74,31,234,239,49,182,159,226,162,78,163,236,213,172,120,102,88,148,118,122,187,30,215,153,142,125,153,227,234,195,50,220,211,16,127,53,91,17,94,22,132,159,126,29,206,99,129,219,82,229,253,175,143,249,232,84,112,153,255,95,31,243,201,152,99,177,8,190,89,255,191,143,185,153,195,101,69,143,248,244,111,108,140,203,122,45,73,126,125,154,227,104,141,19,122,221,156,226,47,89,223,246,180,184,177,27,131,108,150,14,155,133,159,103,210,246,255,250,152,91,116,44,22,61,45,61,164,198,154,253,24,67,222,143,45,251,49,101,159,24,75,74,227,103,105,44,109,149,198,186,210,248,72,30,140,105,131,177,108,112,29,127,15,198,4,120,26,187,198,178,4,28,179,255,96,31,242,91, -65,218,118,240,79,133,226,178,18,74,85,254,229,75,65,5,74,148,28,8,72,173,4,184,51,128,102,66,254,164,16,150,28,64,33,35,113,164,34,192,141,92,180,104,170,24,201,192,67,136,200,163,185,6,100,238,32,130,32,232,9,64,242,83,135,136,119,2,41,66,50,222,40,144,149,45,145,44,187,20,140,97,217,41,76,212,137,137,178,138,64,83,16,94,79,170,68,77,25,15,209,11,143,14,166,36,227,39,59,132,111,83,240,175,118,3,60,120,169,0,52,65,144,14,16,41,215,103,21,100,59,24,197,90,204,16,29,120,249,219,73,73,125,98,154,88,249,26,106,40,85,131,182,238,109,198,20,62,101,68,31,86,223,184,150,24,207,41,230,197,58,92,223,55,46,193,221,154,167,4,91,89,238,254,46,42,60,83,74,251,144,70,173,111,78,199,51,221,130,240,142,82,194,165,104,67,120,167,225,213,33,120,58,223,0,183,183,195,155,183,39,201,245,81,118,62,59,139,238,214,148,151,45,28,240,147,155,219,226,37,100,88,237,89,124,189,173,75,29,238,34,135,59,141,226,240, -135,219,253,198,195,123,189,21,126,123,153,59,27,204,178,234,111,49,197,94,78,71,246,3,121,254,117,51,217,188,121,118,219,211,205,228,44,210,201,111,163,104,209,77,215,218,105,140,53,62,96,247,183,47,187,235,73,115,61,97,170,198,147,165,122,162,84,207,165,72,245,244,153,158,120,187,233,73,55,61,191,76,141,39,90,244,36,139,158,30,70,248,70,128,31,214,157,195,84,48,47,249,43,119,197,167,72,180,182,42,202,7,214,227,178,97,4,200,38,2,208,4,138,2,0,4,39,105,160,48,137,19,88,56,85,44,141,179,63,156,66,248,14,98,73,189,98,129,216,43,246,96,208,12,44,64,132,18,205,242,17,194,215,149,149,192,252,46,92,143,222,131,229,8,150,25,194,49,146,27,76,88,156,5,82,129,140,44,138,10,146,143,149,208,95,66,24,187,54,195,66,176,209,162,36,110,181,49,185,25,28,40,24,159,165,255,165,133,47,234,105,202,225,205,12,228,20,124,101,91,24,217,10,236,142,137,202,75,225,73,195,156,126,177,210,45,164,92,255,133,48,206,65,229,159,0, -103,134,22,184,23,185,22,102,167,208,223,74,140,7,171,118,237,204,184,134,227,188,194,249,26,100,120,39,175,60,11,162,240,203,31,39,60,115,42,142,105,138,248,107,150,229,109,21,248,167,187,132,104,170,32,171,66,25,84,157,249,53,54,67,142,246,59,79,46,183,91,249,201,93,114,115,85,49,94,182,140,143,205,220,62,137,45,67,250,157,197,169,203,147,212,94,47,113,56,75,21,238,84,190,221,191,102,58,157,45,74,255,229,46,83,58,179,172,82,123,253,107,127,45,171,148,255,200,243,153,73,102,203,239,201,236,117,34,99,145,222,199,204,146,37,163,90,115,210,170,245,231,146,94,171,166,242,114,85,94,126,49,228,101,69,180,28,123,71,203,136,104,249,30,125,150,221,240,50,7,94,30,207,225,101,63,86,197,200,29,84,254,191,210,187,252,163,120,73,114,207,38,131,115,51,233,143,11,52,188,243,159,13,14,208,169,35,20,146,76,135,130,163,226,228,67,138,79,36,145,218,46,128,67,154,97,210,120,96,83,3,71,72,246,44,30,164,68,26,107,98,38,148,24,197,131, -129,201,166,100,38,92,64,8,70,168,25,248,78,100,201,196,61,224,14,197,237,221,139,108,136,33,19,51,1,4,149,136,139,55,237,0,244,217,172,136,76,117,206,150,98,235,98,81,73,73,183,112,253,84,237,145,232,15,105,103,146,16,68,99,240,225,212,250,193,132,112,120,7,33,158,252,210,14,27,147,56,147,132,15,197,76,217,129,59,192,187,76,15,120,64,154,132,120,149,242,216,253,108,190,13,29,198,41,193,120,236,190,55,207,160,66,112,78,78,60,163,93,221,240,128,111,227,63,10,239,78,69,120,20,95,18,193,38,30,107,237,208,38,199,163,172,19,4,213,205,93,143,241,136,203,164,130,67,2,209,220,189,170,10,79,78,181,62,38,79,119,238,110,133,240,164,126,69,235,77,188,193,219,101,237,110,207,143,126,109,90,167,56,203,157,220,237,241,22,228,6,71,98,190,104,237,126,57,158,168,218,208,48,39,53,186,29,90,99,241,164,197,6,91,60,245,165,221,137,49,158,188,214,155,115,164,246,233,29,247,219,226,73,73,223,19,242,211,111,75,116,152,67,67,21,183, -99,68,175,123,9,231,161,42,188,106,194,183,253,143,216,177,196,215,204,204,208,113,220,205,111,87,171,224,118,149,121,31,140,6,239,17,227,61,56,188,229,99,207,123,72,116,15,213,2,125,24,148,166,157,134,174,219,113,223,218,228,174,148,36,253,78,51,35,80,73,2,5,209,118,161,168,207,227,18,74,73,133,217,0,56,252,111,69,133,81,75,7,245,160,164,16,81,136,4,91,199,8,31,1,74,254,96,125,98,133,129,82,155,1,20,23,74,28,43,164,28,163,220,8,96,140,10,105,137,107,97,130,195,205,98,204,200,131,228,163,210,12,149,3,33,73,10,83,41,24,23,235,73,69,82,45,14,46,3,127,108,174,214,139,238,65,9,225,34,100,227,87,94,91,144,51,164,200,19,98,15,110,160,133,142,59,196,144,34,206,127,106,25,196,173,125,234,67,100,7,213,183,162,245,73,9,81,102,56,20,52,173,77,178,58,241,22,93,17,9,175,112,140,79,60,197,41,1,125,72,234,120,135,148,130,22,216,58,14,105,25,47,127,76,196,154,197,30,3,124,136,171,120,135,36,194, -205,45,190,20,214,156,74,180,60,198,239,220,226,202,129,176,166,68,75,107,234,228,94,20,79,110,107,38,162,95,218,18,141,69,49,43,231,88,11,242,165,113,149,152,235,138,95,26,171,46,170,214,217,147,26,45,175,152,196,88,155,98,93,221,18,79,101,138,125,75,216,26,215,234,140,169,189,58,83,108,82,172,49,169,41,99,78,88,112,69,172,67,114,192,21,110,191,202,200,115,74,244,57,226,2,58,91,74,192,21,17,55,222,212,235,61,216,219,183,71,201,224,149,83,94,162,55,229,245,185,136,41,142,151,146,246,146,208,94,110,61,237,37,165,241,91,91,208,241,161,126,206,5,96,201,173,170,38,126,155,156,31,252,64,109,129,112,17,74,130,97,133,87,172,26,60,164,112,227,0,20,130,180,212,176,17,82,148,130,5,140,200,66,141,168,133,254,21,8,121,49,225,245,121,86,34,205,0,108,76,20,83,136,188,0,30,41,141,112,140,224,84,147,104,133,80,140,209,8,132,148,135,180,202,101,48,14,207,196,32,37,159,52,135,49,225,222,22,137,133,99,190,65,196,147,83, -234,195,130,9,144,254,39,33,59,101,59,12,238,183,128,191,139,66,216,142,62,250,59,157,255,66,105,110,48,178,234,179,111,219,252,40,124,237,45,138,225,173,201,70,134,75,65,211,222,32,53,147,160,139,112,169,72,188,252,45,70,209,234,171,102,155,162,140,191,65,197,212,173,190,137,113,41,203,60,255,107,43,41,34,41,46,196,45,18,193,109,245,95,8,103,78,180,250,61,34,239,139,254,202,125,119,166,244,43,43,166,241,181,236,219,57,206,31,185,111,101,66,113,116,125,249,68,227,44,168,87,70,244,121,174,237,255,98,156,209,172,88,111,71,106,116,125,60,218,226,108,106,245,150,37,38,149,238,247,41,78,83,94,170,55,162,246,233,159,126,83,226,108,40,179,191,102,180,5,215,199,66,66,206,150,240,53,34,250,219,86,164,96,254,157,59,76,251,177,219,22,226,189,244,248,237,71,67,225,83,61,40,157,18,234,157,71,217,223,37,244,187,128,126,231,242,232,183,136,246,150,71,72,111,41,233,237,76,177,222,109,168,62,96,241,81,104,31,99,150,24,22,195,204,8,134, -137,168,5,76,27,38,78,9,13,199,133,1,225,194,12,234,11,109,112,99,66,137,4,140,22,220,167,156,136,200,32,82,23,225,35,239,193,132,4,235,64,97,98,156,164,175,72,17,180,8,208,227,246,223,1,19,198,36,213,10,69,106,138,13,18,161,57,83,144,158,93,142,26,135,56,38,70,26,11,215,242,113,167,11,11,15,213,2,93,165,11,224,35,40,12,66,32,220,221,129,200,187,120,155,32,93,131,220,165,215,144,247,222,217,157,184,81,174,125,232,57,30,235,196,220,55,180,69,56,20,207,44,211,222,202,13,25,72,138,63,252,206,237,168,96,231,58,203,223,43,206,185,47,202,164,153,40,213,145,154,107,146,230,153,22,147,252,141,140,224,166,248,99,220,132,164,139,180,208,175,53,146,103,24,231,111,14,82,130,147,124,95,226,18,207,211,176,125,223,121,9,94,215,135,155,71,227,212,202,42,59,215,200,182,198,50,177,172,12,43,135,249,14,99,115,213,217,133,230,95,98,101,148,86,63,100,55,215,38,108,244,194,144,189,223,209,92,46,72,145,219,236,101,245,150,172, -140,193,38,167,210,137,232,183,124,24,26,236,124,92,147,43,199,228,14,210,137,172,93,234,183,72,253,27,155,116,194,36,151,142,235,132,225,240,239,152,228,14,137,207,65,32,127,206,67,226,124,156,39,28,199,132,195,154,208,87,109,9,255,156,242,214,149,228,111,109,226,21,44,81,30,132,204,110,194,238,12,9,81,242,219,149,18,188,61,217,155,64,131,212,225,114,178,73,3,4,196,17,4,39,148,81,11,192,1,54,39,0,34,247,140,48,176,52,192,13,246,229,66,116,62,4,133,6,21,200,16,88,8,60,164,137,49,164,13,37,122,2,72,92,19,149,70,113,81,199,32,63,182,8,160,35,72,40,198,24,131,82,200,116,26,54,0,28,72,193,62,194,26,160,208,163,1,162,146,137,66,133,187,74,64,138,21,7,123,128,199,131,71,19,136,192,198,168,20,122,128,51,36,228,165,250,79,85,67,51,248,248,9,45,5,155,148,162,153,134,58,60,161,227,38,19,209,52,143,232,170,167,134,30,17,54,9,73,243,80,198,48,2,87,199,38,27,210,113,143,189,73,51,164,158,50, -54,73,25,247,80,70,43,2,91,197,38,29,16,113,143,200,24,55,148,236,33,54,113,17,215,186,192,32,22,161,151,219,40,38,152,80,247,101,136,239,224,24,27,242,133,25,125,114,235,66,120,141,49,19,81,47,108,232,134,54,148,29,99,140,9,241,194,186,64,114,210,161,155,197,40,203,106,181,38,140,38,195,11,169,41,198,162,84,91,118,160,82,233,80,81,2,49,214,148,90,51,26,163,193,134,30,16,99,85,168,74,155,144,22,108,232,252,117,235,53,188,27,92,155,195,212,51,124,69,84,135,241,7,205,29,66,138,47,94,79,162,219,248,42,151,69,85,227,209,209,218,249,95,180,97,6,245,207,161,50,255,244,223,197,47,195,162,222,38,249,99,225,75,95,10,204,77,24,189,126,229,54,23,63,12,176,190,19,216,127,25,41,130,114,24,100,44,183,82,9,40,204,205,225,173,213,71,205,148,251,4,10,157,51,107,126,220,247,84,1,185,19,242,33,102,90,138,12,244,65,0,69,8,141,10,152,181,119,104,3,137,41,238,4,12,222,72,98,6,176,247,175,183,114,12,66, -127,0,142,132,37,57,254,225,95,8,108,199,96,207,31,242,139,51,225,184,127,27,41,136,84,12,28,124,121,231,200,151,16,55,192,135,201,41,155,223,193,185,247,62,63,66,216,150,224,67,147,224,54,173,39,255,240,168,164,89,216,35,171,94,10,202,57,133,165,86,31,68,12,144,101,220,51,106,2,100,71,1,21,247,132,86,112,237,78,16,5,223,131,134,233,206,21,51,29,208,115,245,240,79,252,131,156,13,46,32,95,56,50,242,174,144,118,106,40,40,70,228,177,161,11,253,107,16,138,5,211,152,176,204,184,87,26,80,160,233,208,47,5,97,140,66,53,181,41,53,93,97,194,70,209,30,11,90,168,129,213,70,36,70,140,11,129,33,101,33,3,49,254,131,213,111,61,121,65,29,80,60,36,20,223,180,130,234,136,209,214,144,117,242,219,163,232,54,162,186,58,32,241,104,72,109,83,17,185,254,19,130,77,215,222,122,16,18,196,132,71,112,161,55,145,132,8,248,232,219,5,126,163,65,14,129,105,240,111,202,42,17,216,122,66,96,120,62,177,128,162,137,216,40,16,133, -34,75,181,69,145,202,10,137,133,88,226,3,25,128,6,1,209,197,191,65,130,214,224,61,224,32,127,79,90,159,114,109,106,151,241,139,0,251,91,27,32,97,35,151,18,212,1,30,67,242,8,83,139,89,237,130,51,72,14,102,43,145,118,165,72,28,226,42,250,149,6,8,96,16,240,246,49,183,123,194,227,17,110,109,128,237,246,252,124,120,188,155,106,172,179,237,35,28,222,135,206,240,166,80,182,27,135,231,113,220,148,50,225,206,113,95,13,48,71,142,119,2,214,58,160,182,140,230,227,202,120,87,179,40,222,113,55,225,110,31,83,197,59,9,226,145,15,27,5,247,177,117,71,223,233,172,0,22,91,152,30,61,206,59,30,21,80,172,91,196,226,241,210,248,253,185,228,218,182,187,239,181,143,149,198,159,10,41,254,53,247,212,62,78,217,127,205,61,215,182,253,248,95,115,79,139,63,145,72,175,173,91,78,250,225,185,81,252,217,136,193,150,219,105,112,15,181,196,239,40,198,13,198,77,10,235,122,20,33,254,72,192,192,54,111,48,199,7,216,251,240,231,114,185,159,189, -37,116,124,104,121,254,82,108,157,203,111,59,127,87,3,195,246,96,252,190,246,159,159,162,130,191,107,225,247,91,217,235,84,55,107,252,115,187,198,109,13,132,237,196,128,223,190,5,131,247,233,43,249,190,82,223,225,47,229,91,32,121,228,162,207,139,0,183,121,123,193,118,1,28,120,35,7,165,212,39,39,129,221,7,165,119,88,161,160,235,68,135,137,64,224,79,15,234,7,114,249,38,54,18,132,82,34,33,33,20,12,165,59,129,151,52,120,5,24,246,75,159,201,113,2,22,26,220,5,240,80,59,123,191,139,219,209,165,33,86,29,132,98,134,153,160,63,77,152,171,135,78,65,240,0,106,55,8,174,168,216,188,16,180,114,6,112,160,122,16,112,116,99,124,72,58,246,90,137,8,247,174,98,176,130,220,219,43,125,204,57,24,173,36,252,85,140,142,112,163,86,23,231,115,190,90,176,57,110,244,222,233,212,232,87,102,12,201,13,213,127,185,48,89,215,202,227,156,12,179,95,40,167,5,191,178,58,71,153,73,246,215,69,57,125,190,225,28,15,240,191,78,174,196,190,50, -226,220,195,196,231,198,5,233,250,27,180,198,164,119,250,117,58,189,244,149,3,214,24,225,122,39,182,139,55,94,157,221,172,198,120,108,103,111,157,58,249,202,130,106,176,135,125,59,219,137,139,142,87,60,82,99,62,172,140,153,174,31,248,138,6,210,54,122,93,58,199,57,90,220,86,42,126,67,59,201,210,167,46,216,109,229,123,227,57,138,193,248,207,9,171,127,173,220,58,71,233,156,202,228,119,37,91,115,84,101,175,82,184,179,43,5,191,151,195,79,79,116,241,116,70,189,254,168,215,110,137,122,109,73,175,175,145,244,154,147,94,79,114,244,60,82,239,61,232,125,244,68,158,5,146,102,174,31,117,10,112,251,220,203,222,16,254,167,63,39,80,216,140,13,23,41,98,37,116,156,248,176,159,60,100,218,38,76,208,225,84,34,4,135,144,65,120,254,3,127,100,166,224,242,3,56,240,87,128,131,162,153,244,93,40,94,57,86,34,236,210,208,47,8,38,97,146,140,115,180,37,250,215,13,132,180,252,63,0,109,143,207,2,76,38,46,208,149,128,78,76,236,53,104,10,250, -221,0,255,158,48,198,124,39,209,165,43,31,173,63,121,56,233,143,253,222,250,82,107,116,59,244,15,72,71,87,78,127,125,142,196,120,199,253,189,1,172,209,159,204,20,146,247,147,135,58,38,91,58,121,32,238,73,55,199,254,170,89,144,60,239,178,57,201,213,235,148,211,169,7,197,185,87,3,66,221,93,147,216,79,72,154,183,134,197,215,235,16,250,73,1,192,90,235,222,185,190,175,121,233,39,2,171,229,92,142,207,172,58,111,156,61,33,80,173,85,223,49,97,213,116,242,19,6,213,107,45,134,14,86,29,135,141,158,32,164,214,186,155,169,178,106,54,248,9,215,3,181,70,221,234,172,94,163,221,78,46,126,75,205,159,48,254,106,223,95,39,13,9,223,18,14,38,243,125,221,245,123,194,211,121,94,217,200,95,50,119,102,219,26,139,125,250,130,63,201,201,240,203,20,125,217,19,209,215,87,244,245,201,199,203,152,244,57,146,62,187,37,233,115,37,125,190,70,200,103,14,249,60,161,209,235,8,125,246,152,79,221,211,120,159,247,78,19,65,120,65,128,215,39,126,171, -65,137,255,95,61,200,24,173,153,60,69,24,15,228,255,241,30,157,140,249,240,30,177,22,253,240,30,148,2,5,161,19,47,231,167,52,75,143,209,11,192,113,138,153,86,138,19,240,130,235,226,58,150,86,11,49,89,76,17,145,56,128,194,133,4,170,249,31,136,3,118,38,60,10,73,35,5,28,35,60,252,26,231,17,56,14,16,243,141,73,140,123,13,201,191,176,238,252,197,153,143,112,97,86,78,214,187,241,25,126,174,143,238,51,57,250,241,151,115,156,236,235,191,76,154,236,120,109,166,184,160,78,38,166,136,31,127,28,83,55,235,175,179,44,93,44,207,117,89,14,178,117,38,165,43,129,226,92,171,17,190,46,96,125,220,18,205,181,168,245,240,117,38,132,62,158,0,176,250,122,124,2,185,188,227,49,129,85,95,114,251,39,22,147,39,31,43,16,168,250,106,104,103,237,89,186,232,24,67,170,27,23,159,27,38,14,30,29,67,64,245,117,183,50,152,177,108,183,177,141,111,174,203,38,149,25,139,166,253,26,179,240,117,245,32,70,255,99,126,255,142,69,63,244,186,112, -52,158,178,174,46,246,216,14,103,201,226,189,241,140,185,182,165,23,142,65,250,96,26,107,236,166,49,198,52,182,20,26,99,74,97,44,41,140,151,144,194,216,75,26,243,236,164,113,134,52,62,146,26,99,90,111,60,234,141,207,134,112,26,19,78,175,37,8,102,135,96,122,251,206,145,71,131,184,95,84,29,72,245,127,117,131,28,40,88,163,5,169,144,31,0,71,250,148,62,146,24,140,5,161,80,74,173,137,132,10,144,37,80,23,141,240,49,199,48,190,84,158,116,131,62,246,21,9,90,2,167,46,102,80,81,118,131,33,43,139,25,170,91,73,76,48,147,255,71,35,2,186,79,30,188,49,248,101,90,48,130,225,224,231,129,200,132,66,218,193,155,233,2,229,223,254,110,136,174,207,57,145,175,167,96,247,234,102,239,139,95,107,215,31,167,11,199,172,125,171,136,222,53,213,248,187,104,136,111,33,52,112,64,24,252,13,204,115,251,214,138,92,125,106,177,43,22,88,156,111,41,201,113,69,149,155,148,230,235,205,101,132,198,116,128,132,45,124,51,17,161,246,23,206,210,111, -68,150,239,79,62,38,0,207,241,77,128,122,182,231,226,51,243,175,213,148,223,24,168,246,84,154,62,51,167,203,232,141,211,32,181,103,66,7,243,207,149,129,223,40,160,246,31,79,232,248,155,30,111,183,59,143,223,214,40,170,127,150,191,159,175,155,12,223,22,136,36,255,26,211,253,218,111,42,122,91,43,99,140,167,83,24,251,230,131,175,249,10,209,228,239,175,46,31,28,180,166,219,152,185,240,14,176,175,49,246,101,191,81,95,59,234,171,223,160,190,22,212,215,16,170,123,253,65,95,93,232,139,188,134,190,238,204,215,62,193,124,45,153,175,17,83,250,186,34,95,91,228,107,213,67,190,158,196,231,156,30,188,117,16,211,55,7,33,21,60,95,193,253,99,168,246,118,208,113,116,8,28,71,3,40,162,66,14,138,4,168,137,60,137,136,135,139,46,80,33,82,88,52,37,255,173,227,249,22,123,2,184,38,41,141,74,115,227,204,127,19,83,86,177,40,9,78,7,168,132,200,199,167,66,149,94,83,30,166,212,245,21,86,110,23,139,189,25,73,130,136,13,11,39,26,108, -127,52,25,60,48,136,132,189,170,93,158,16,132,68,50,245,214,185,116,14,180,34,230,239,214,182,224,8,234,184,140,99,9,213,218,20,33,213,160,13,113,164,53,185,219,60,99,89,147,185,67,199,66,182,21,88,148,149,87,206,49,27,229,193,224,19,109,121,170,57,162,37,92,107,81,161,45,111,193,155,116,232,95,43,45,72,186,220,179,28,145,92,162,181,128,72,151,95,20,140,45,23,89,218,10,247,6,182,188,50,166,226,75,162,53,239,198,150,79,16,136,45,19,88,218,242,13,202,161,60,246,218,18,57,241,178,92,226,28,202,55,51,207,86,137,233,10,5,153,230,88,86,235,108,197,83,74,151,47,166,108,229,72,17,103,139,132,117,21,116,30,99,253,224,170,77,254,198,178,221,209,12,203,38,25,19,10,29,92,241,96,137,169,88,146,242,193,94,152,205,73,179,20,169,49,219,147,102,37,210,108,57,32,205,36,189,217,211,222,155,181,122,179,101,175,49,203,136,102,54,209,108,40,8,151,83,225,50,198,13,41,99,32,229,53,130,164,234,16,138,111,95,224,254,108,0, -199,197,25,207,190,255,123,44,218,79,116,142,44,5,17,135,96,80,36,136,77,116,11,68,114,176,63,100,66,229,176,218,160,6,92,72,202,169,20,210,238,6,197,82,78,233,83,179,61,65,208,98,28,71,90,65,115,164,85,42,12,22,177,233,0,19,20,192,6,8,135,87,122,131,177,190,118,105,4,78,6,38,69,82,120,136,168,108,112,33,47,113,208,70,201,244,236,40,159,76,108,28,87,193,150,116,14,116,91,140,43,98,75,118,4,131,58,197,149,178,37,74,29,220,225,7,27,130,230,182,109,80,93,12,71,230,77,34,218,182,146,24,219,192,149,115,205,162,121,13,27,121,162,29,78,35,217,16,223,76,84,232,134,76,20,230,218,196,242,44,56,74,44,51,36,89,174,148,26,148,103,38,33,50,245,33,136,226,234,196,87,105,200,29,55,228,75,92,180,70,96,101,38,186,113,168,33,30,226,106,229,86,156,18,165,113,28,210,189,38,87,61,183,42,146,56,228,227,16,206,115,181,99,14,125,137,60,183,13,217,59,157,235,55,165,47,146,165,26,235,112,135,115,165,23,97, -253,15,49,21,141,167,191,7,195,144,105,23,100,50,93,107,44,215,157,220,102,89,178,9,142,220,17,124,78,60,209,18,77,197,167,146,97,85,50,124,51,194,195,73,120,168,120,135,135,177,240,16,17,110,12,239,225,161,59,60,148,53,194,67,78,120,56,183,64,134,126,120,130,1,79,36,24,136,132,31,71,12,250,57,194,183,55,240,178,221,129,235,154,144,152,172,170,155,247,191,2,14,52,64,65,34,74,26,20,69,130,139,162,21,255,29,9,48,81,36,17,145,91,164,34,251,175,46,164,221,71,142,65,43,41,214,85,0,40,206,16,147,87,3,17,133,61,24,189,139,15,116,229,93,40,220,47,103,157,41,95,194,99,143,157,52,194,47,168,130,177,15,150,193,73,4,19,20,238,8,2,136,203,34,202,55,128,16,72,204,165,43,190,127,236,19,146,226,156,175,164,43,160,145,237,211,199,16,247,84,184,2,230,237,211,130,205,115,162,245,213,26,50,101,239,147,157,198,63,137,190,102,218,87,10,125,110,95,148,253,69,66,45,244,254,199,62,201,79,89,54,138,210,117,178,62, -246,73,140,103,35,37,136,174,17,229,28,74,241,59,54,234,227,158,72,53,234,68,120,98,35,189,112,126,223,1,170,201,20,167,253,12,197,235,186,249,53,158,92,98,159,33,117,95,252,190,5,95,147,202,236,253,25,10,247,219,247,210,103,53,133,172,242,135,252,209,178,251,52,120,77,37,250,170,96,73,169,24,114,36,31,68,200,166,254,150,249,109,250,163,214,156,201,52,86,32,27,227,200,251,24,7,89,151,68,180,164,254,114,140,220,46,145,219,76,205,104,122,50,47,51,230,242,227,47,47,11,228,197,126,64,94,46,200,203,38,129,188,188,137,151,51,81,122,153,19,47,3,226,101,117,36,94,98,192,182,104,7,182,125,96,171,0,225,250,103,2,170,227,149,207,95,79,211,118,77,64,53,39,159,68,124,42,183,105,210,8,138,73,72,9,105,27,193,70,222,254,246,124,37,137,145,181,185,106,102,95,237,30,14,231,163,192,170,158,21,191,212,26,184,198,86,249,157,68,134,75,36,86,103,171,232,109,254,202,111,43,221,76,143,50,78,116,117,250,27,5,212,24,48,16,132, -185,132,70,134,52,64,252,212,129,177,126,213,95,173,118,92,129,31,65,130,176,48,229,224,206,76,244,123,4,189,187,7,224,44,152,22,246,215,82,11,154,9,43,95,208,34,140,38,175,192,101,196,252,130,171,2,206,71,161,150,176,19,54,194,102,176,16,87,38,148,132,40,197,137,148,236,129,35,65,136,22,251,29,132,170,120,169,21,13,31,254,56,237,191,111,45,240,136,247,242,198,170,115,8,224,60,238,229,1,60,107,137,80,195,5,1,213,77,8,190,72,146,166,8,227,220,35,240,127,210,251,95,142,255,11,252,217,238,127,137,238,56,93,23,161,152,37,4,92,232,201,9,102,196,178,200,254,117,84,130,102,101,145,250,235,170,132,162,135,34,207,227,170,108,196,164,119,4,133,252,12,155,200,78,106,90,134,135,161,194,193,190,130,72,136,16,174,219,240,120,245,32,82,252,77,156,157,183,138,224,29,193,10,105,177,177,220,156,36,47,186,73,224,235,191,9,213,187,4,161,33,133,71,241,239,94,113,184,49,237,156,9,227,217,233,63,59,29,210,179,211,125,118,90,206,72, -39,207,199,69,11,178,45,56,33,22,70,12,68,134,112,33,223,139,255,109,0,231,193,201,252,122,112,136,30,46,146,127,130,17,198,119,8,98,13,70,180,222,160,176,62,208,211,4,214,189,84,160,183,127,247,236,150,119,143,242,238,73,26,239,30,164,211,243,118,150,61,94,167,167,235,244,162,184,241,134,189,191,192,236,46,79,156,203,151,16,252,185,60,66,241,23,22,52,166,225,245,52,108,240,88,16,130,11,225,61,244,222,31,75,244,43,124,31,132,14,102,26,151,203,181,134,73,167,32,198,90,199,1,244,10,194,150,95,242,37,42,96,7,209,128,250,246,216,83,8,180,65,30,109,209,29,7,105,227,229,132,201,26,7,13,97,13,40,2,37,125,16,17,166,60,81,215,35,25,17,33,231,183,22,10,254,134,4,118,160,61,68,176,91,1,114,208,193,13,49,144,253,46,33,128,66,62,64,138,9,194,5,210,156,187,105,101,31,223,205,241,107,230,30,211,182,239,130,198,7,20,232,191,60,72,205,71,97,142,247,7,216,119,71,97,162,63,27,130,168,234,171,48,114,34,80, -11,119,196,103,28,248,137,68,57,94,26,224,58,137,153,111,2,116,11,1,117,19,49,194,197,4,89,45,18,0,197,93,131,185,11,6,200,242,47,88,57,116,35,150,79,117,244,214,8,96,174,246,27,95,145,32,94,154,120,59,184,107,7,223,197,118,176,223,14,134,48,237,224,227,210,213,63,144,70,138,143,137,23,164,131,48,188,60,140,160,136,12,144,109,62,88,251,235,2,214,139,145,235,97,162,137,124,44,156,208,134,227,183,55,8,226,9,130,180,93,129,96,174,43,108,188,27,155,223,247,38,249,222,44,67,239,77,243,188,41,219,207,155,218,121,19,63,151,54,129,243,134,224,114,194,194,220,102,31,191,50,190,16,213,63,72,234,16,28,127,223,186,220,231,70,211,57,119,169,231,110,108,109,8,58,218,16,131,7,65,20,148,16,111,49,254,213,113,131,223,151,151,147,119,88,192,150,39,55,204,106,251,205,228,187,63,156,26,17,87,118,179,151,104,101,16,66,46,174,25,65,81,73,82,121,125,34,129,80,151,27,117,34,104,138,86,209,193,9,99,39,74,198,11,241,212, -95,19,17,134,39,73,107,109,72,143,216,85,119,131,196,64,219,38,120,6,206,250,12,240,165,34,92,65,180,53,197,69,194,2,124,105,227,52,129,53,244,221,136,121,25,155,202,151,8,123,186,193,214,69,181,1,238,138,83,252,102,154,126,236,192,211,60,210,65,126,135,13,200,130,225,248,185,47,127,94,13,45,138,138,178,115,227,228,242,114,42,214,161,6,125,225,165,65,93,99,72,53,100,131,56,223,15,150,109,130,54,131,179,185,10,11,159,227,183,141,178,59,36,131,165,46,126,183,20,219,55,96,126,95,218,188,167,237,172,125,31,25,188,158,105,181,141,118,48,194,75,19,108,115,247,53,249,24,150,99,18,94,178,242,247,202,87,153,143,182,41,32,146,37,170,123,215,214,248,95,56,123,12,188,236,5,160,119,101,254,197,249,35,172,160,191,207,215,73,224,127,63,163,157,213,214,225,22,60,150,85,223,41,213,241,223,97,134,103,186,250,178,36,173,2,203,18,145,94,222,65,37,95,204,177,46,229,151,141,195,29,222,146,249,146,14,195,189,193,184,123,151,251,246,201,208, -94,158,84,234,39,228,231,69,130,207,222,65,155,95,94,111,188,197,13,127,43,248,247,190,189,185,89,59,216,94,209,252,68,216,58,56,69,105,153,225,180,104,53,153,119,172,176,168,1,82,74,101,67,107,207,113,91,130,134,112,17,191,213,58,42,54,14,41,95,227,100,217,66,34,171,124,244,72,162,69,126,244,104,65,147,25,55,34,26,56,120,214,126,108,4,200,64,48,25,128,172,195,227,194,130,205,82,242,146,20,160,44,231,46,82,58,5,227,178,90,116,72,173,196,212,181,80,102,112,74,61,130,203,165,221,180,29,27,16,44,214,83,226,147,126,242,203,244,160,217,147,174,46,20,165,224,111,177,44,214,215,177,235,30,25,206,33,13,64,185,115,84,95,39,34,82,35,141,199,31,134,177,188,108,65,138,226,47,206,138,61,137,117,203,248,28,83,175,207,151,43,155,253,116,251,157,223,117,54,111,37,58,115,218,200,43,29,98,209,72,245,42,125,167,45,77,156,101,16,191,123,17,172,178,80,218,40,139,76,13,209,40,5,43,67,35,210,70,90,224,16,191,3,12,168,242, -39,180,145,255,190,112,215,6,228,85,105,60,222,243,64,103,182,119,148,111,79,157,195,87,113,48,12,63,163,185,119,252,123,50,176,42,24,249,17,187,153,122,123,191,132,105,101,22,254,58,10,86,45,217,171,225,240,234,56,237,74,243,184,158,171,29,199,122,163,241,21,176,101,11,58,123,71,85,81,169,143,144,88,253,6,95,60,131,246,174,79,222,16,144,116,29,132,190,251,124,127,101,21,233,70,208,82,95,8,113,212,49,175,92,251,249,170,84,64,35,252,175,5,138,230,8,129,50,103,93,187,26,164,197,244,71,119,132,186,209,152,77,3,39,200,36,59,129,28,55,177,16,121,19,241,27,157,65,214,192,144,222,185,134,132,6,241,66,194,117,159,17,116,149,59,38,206,19,183,39,202,32,115,67,74,76,151,178,144,102,128,54,253,42,225,152,159,184,103,26,104,148,229,19,247,105,182,63,146,15,75,72,236,157,73,127,249,85,144,223,72,73,15,41,163,228,234,66,57,17,53,125,123,84,8,179,176,86,98,207,147,128,51,81,161,126,115,66,66,164,220,126,45,200,13,224, -45,83,146,201,74,93,156,233,124,181,232,53,238,25,93,236,195,135,237,189,164,233,108,18,28,213,80,230,71,44,45,55,81,54,70,88,146,145,229,247,166,114,211,131,180,79,32,25,87,55,189,183,215,184,40,187,34,10,201,168,2,123,115,222,197,69,90,99,207,76,65,251,222,71,58,220,147,35,134,120,100,130,157,125,160,90,93,156,109,247,71,6,219,238,88,16,211,147,165,149,209,203,175,232,169,175,35,229,228,166,99,203,151,229,10,93,249,196,28,130,192,155,185,183,199,173,53,99,111,119,92,41,179,118,67,193,174,170,198,50,245,236,10,90,240,101,28,69,53,49,206,13,247,8,51,239,138,43,60,192,127,47,98,218,234,23,179,5,121,80,240,237,201,42,26,65,134,164,160,148,28,163,184,72,185,78,99,127,234,174,12,63,147,32,209,93,158,189,24,252,168,12,149,179,251,167,50,82,168,172,28,32,47,24,38,40,18,44,129,69,255,205,111,69,175,213,218,71,102,146,249,65,144,8,188,184,227,3,4,75,94,230,235,112,36,35,31,151,7,193,96,224,98,198,157,217, -123,16,88,65,158,57,139,56,247,210,40,74,192,109,117,163,22,176,152,59,198,165,163,131,13,24,59,121,9,42,3,215,23,242,224,140,24,35,194,15,212,151,48,138,78,53,193,185,241,62,142,168,34,47,227,98,220,22,101,21,129,67,241,48,113,55,221,128,12,197,238,74,105,115,222,113,45,35,101,184,90,32,56,141,94,180,61,118,154,64,80,246,156,35,138,254,42,77,236,153,91,11,101,167,130,209,34,196,104,98,46,180,80,14,99,31,140,54,133,38,206,238,47,13,101,151,64,209,20,213,111,154,174,211,23,31,103,240,138,50,253,166,229,108,142,189,176,195,62,127,84,104,216,86,170,76,107,151,253,76,75,24,211,158,167,199,246,30,36,152,211,202,35,231,24,254,162,109,204,215,182,217,184,204,160,75,207,214,206,191,114,42,4,101,212,171,222,50,198,179,166,156,237,80,69,209,71,243,22,182,104,138,181,28,70,60,90,23,111,97,236,191,71,218,250,18,146,217,157,11,91,112,103,3,159,83,112,101,11,192,249,224,219,249,9,188,58,232,109,27,68,182,27,146,86,174, -141,212,21,240,252,27,159,244,126,10,236,208,83,140,254,219,10,55,154,177,136,112,149,20,41,150,5,125,113,170,209,137,67,138,214,179,2,17,4,189,199,125,124,184,136,168,74,247,64,93,132,79,123,141,2,236,68,217,11,80,193,67,121,86,106,34,96,55,18,213,151,230,231,236,1,35,200,218,6,72,151,172,59,192,41,223,184,205,48,112,0,19,136,69,110,30,189,249,239,249,175,240,140,170,254,196,181,122,244,254,135,22,32,105,82,146,4,83,251,203,0,39,164,81,61,190,252,29,96,170,78,152,211,236,17,104,104,240,251,243,140,187,121,50,252,11,232,188,209,187,85,6,74,31,202,30,58,30,3,249,167,174,214,193,85,240,85,240,113,212,125,170,166,128,14,62,195,128,110,183,135,208,55,49,228,110,222,185,229,117,179,250,125,141,209,231,102,70,241,157,111,78,131,111,166,33,76,46,179,112,250,137,84,45,8,230,163,35,237,21,172,245,231,194,177,253,245,226,192,245,231,210,81,191,22,60,109,142,87,241,83,95,123,58,191,100,150,83,121,111,3,245,139,168,246,119, -132,179,115,252,198,51,175,94,24,109,71,56,175,206,145,55,154,248,133,82,218,4,138,127,251,183,167,228,220,115,146,123,222,115,137,39,39,247,220,159,159,210,193,249,41,57,63,33,62,245,197,143,47,37,42,250,188,230,71,29,183,85,152,160,81,69,5,166,5,37,34,73,243,159,165,168,34,168,198,143,172,124,151,127,217,210,90,2,108,255,35,144,133,47,60,6,68,87,146,13,223,1,254,103,188,187,62,230,63,8,24,18,149,71,0,193,196,214,162,31,55,163,47,0,88,40,148,172,190,22,109,76,199,70,148,96,83,156,44,192,91,183,44,7,21,125,183,110,96,81,152,168,46,147,98,11,115,75,49,237,252,75,136,235,177,107,204,12,174,92,96,147,149,38,177,205,69,86,37,196,67,155,138,24,153,245,189,83,54,18,121,158,129,189,92,182,31,187,13,217,86,22,103,52,24,178,181,242,127,75,69,185,129,255,177,139,136,221,165,165,214,64,10,42,21,136,205,214,93,142,109,128,14,58,75,129,188,191,69,161,253,207,160,123,94,230,251,215,47,215,223,182,207,13,153,203, -172,180,246,253,82,13,246,169,38,249,185,25,164,151,88,141,10,103,182,145,228,246,118,186,10,255,251,109,124,53,237,129,234,109,250,43,16,56,42,115,221,241,50,135,180,218,191,140,159,251,119,253,167,93,180,77,202,203,60,235,231,30,170,240,41,41,27,98,184,244,213,221,244,88,101,69,180,53,34,211,37,188,224,142,150,245,155,203,140,225,181,237,249,215,95,86,110,105,117,159,222,22,247,201,235,62,217,4,238,147,203,125,58,87,19,75,73,117,9,81,95,94,126,66,41,209,22,42,209,101,77,77,246,11,151,157,42,38,44,45,224,198,3,69,219,63,67,239,73,144,63,178,146,207,128,168,210,249,155,71,7,182,96,98,106,80,32,6,119,166,31,111,133,9,53,215,172,68,40,224,135,92,129,51,228,67,166,27,185,6,160,10,75,76,144,39,190,55,207,224,250,110,211,240,251,5,240,106,196,200,143,134,173,252,5,88,168,170,60,179,85,147,152,196,26,247,71,160,153,1,246,74,240,39,98,178,229,191,53,194,164,180,248,19,81,239,208,66,76,89,118,255,65,137,137,235, -159,239,184,83,29,199,86,97,61,181,96,83,11,253,172,148,73,144,187,33,154,101,141,31,211,129,0,255,100,186,71,73,190,214,34,148,171,129,153,208,241,213,55,232,239,154,212,251,53,19,251,191,186,26,69,246,174,222,119,43,213,12,175,167,46,165,143,104,149,42,107,254,65,201,191,152,217,106,108,58,67,182,162,60,185,38,124,56,230,211,141,231,92,135,191,104,192,207,246,204,240,243,12,67,127,238,202,25,227,231,201,204,252,116,72,63,140,97,240,232,170,63,147,21,1,133,248,19,139,28,69,133,169,55,87,94,147,127,26,123,254,76,151,59,194,21,95,183,76,201,187,80,181,155,135,106,206,173,153,52,91,63,157,230,143,160,249,179,92,183,126,12,173,159,28,189,245,227,119,107,4,174,186,70,240,81,148,45,55,248,242,255,108,104,63,129,245,227,173,18,54,85,212,96,170,134,162,186,147,180,56,248,130,216,197,73,41,219,167,120,82,241,210,32,17,125,173,38,192,207,10,92,252,111,117,84,100,15,173,65,23,162,186,22,171,13,9,153,65,112,128,48,124,76,177,32, -43,89,253,113,47,176,184,180,46,18,145,105,132,141,228,78,219,48,54,31,69,81,214,254,40,52,142,81,188,69,71,97,204,1,141,66,214,20,153,32,81,165,32,41,160,208,248,63,9,13,151,103,198,212,106,33,182,76,85,197,219,223,190,42,9,180,157,182,191,201,209,72,47,136,70,34,195,180,160,242,39,132,240,228,97,156,136,221,25,76,174,140,102,10,75,187,64,24,117,129,209,208,146,175,35,203,149,231,187,198,246,155,103,6,237,243,162,73,249,146,100,67,193,140,164,63,104,87,185,217,28,43,143,89,73,44,184,196,26,171,75,135,81,131,172,79,231,105,219,47,163,57,90,141,122,105,36,233,122,84,107,176,118,149,49,92,149,4,126,166,138,139,250,89,150,49,212,158,131,72,211,26,202,48,90,147,71,174,49,36,146,24,130,120,135,85,122,100,234,9,1,149,148,228,70,160,163,98,215,41,185,230,170,82,243,84,94,125,105,170,130,22,77,179,74,142,206,140,145,88,179,203,254,184,222,3,245,163,175,126,12,151,234,199,90,251,88,106,219,143,149,246,209,170,95,151, -241,194,21,64,191,28,199,193,7,156,168,201,81,188,136,210,128,67,49,19,236,129,31,6,241,170,46,250,95,221,60,199,138,237,127,251,45,239,194,96,21,61,49,50,145,226,58,119,7,93,152,66,44,237,13,10,22,18,163,143,64,8,193,164,254,147,20,169,182,4,64,161,230,142,232,4,56,54,178,100,86,212,5,78,210,182,29,4,158,123,22,193,254,200,130,52,130,6,214,5,112,35,8,49,116,27,41,13,137,149,73,230,25,161,180,234,209,104,1,190,62,5,88,173,77,186,80,100,118,18,203,116,80,79,169,69,198,232,87,128,161,221,147,138,1,22,69,185,134,39,55,238,174,59,223,222,49,236,142,231,8,103,92,105,222,134,107,82,227,219,161,171,6,15,214,56,146,201,29,158,56,149,193,220,121,248,37,190,36,101,57,92,235,112,125,174,52,82,125,245,61,83,93,238,146,26,24,218,59,166,195,51,211,209,8,249,81,79,237,137,232,104,8,213,174,161,246,224,3,244,123,98,103,168,83,95,97,250,29,185,115,196,11,175,12,181,67,26,61,25,145,171,75,241,72,15, -75,175,153,202,127,162,90,5,183,36,161,57,186,239,87,59,222,249,106,119,179,31,165,31,223,74,221,97,31,105,6,119,146,209,204,140,246,217,29,107,114,149,50,38,87,197,228,234,38,199,174,243,216,213,18,91,95,215,248,93,12,191,91,32,202,27,63,87,65,25,232,132,53,53,13,35,155,129,231,188,56,3,63,68,6,232,87,196,40,192,78,73,119,49,114,87,144,168,211,200,194,54,73,247,29,15,80,35,196,244,148,0,165,193,69,86,58,20,84,232,230,122,190,128,48,161,37,227,60,64,232,148,26,74,133,0,34,65,109,210,2,48,238,54,77,50,220,235,32,28,138,166,13,100,193,233,2,25,197,4,69,69,224,169,68,198,203,35,197,119,89,166,157,192,1,229,187,108,196,44,1,226,171,83,138,233,21,243,220,196,199,244,147,145,72,22,68,22,52,70,98,96,173,172,45,140,192,184,129,217,180,218,249,5,53,94,254,34,221,111,157,134,237,226,135,236,216,153,102,170,135,223,145,145,38,183,166,9,84,58,179,40,110,253,126,11,83,251,195,20,159,190,220,82,150,118, -209,234,0,91,71,186,204,45,69,41,151,167,92,53,174,32,219,21,212,214,16,29,158,0,21,137,117,182,52,5,169,12,85,2,229,145,36,211,183,197,7,184,242,72,188,202,244,185,169,77,113,72,36,75,183,158,202,123,158,80,249,174,84,174,41,155,196,86,197,240,121,234,179,105,14,185,159,175,129,250,167,181,163,173,156,201,170,128,39,211,100,139,178,73,117,10,182,28,178,133,219,244,167,240,53,82,62,255,160,202,231,68,249,28,25,106,207,177,225,217,106,223,20,18,239,1,68,123,228,194,177,233,80,163,164,162,131,113,119,133,127,173,166,239,38,243,191,253,169,90,49,149,172,145,215,239,66,7,233,187,47,172,144,84,202,232,135,122,68,211,62,138,249,161,30,42,29,232,191,186,169,62,86,72,162,60,197,140,60,16,33,43,191,193,23,128,131,98,136,255,251,119,116,26,47,94,4,216,186,143,98,195,152,98,166,169,104,5,212,94,115,181,12,90,182,245,5,8,20,51,19,162,217,12,90,92,169,68,210,122,163,0,93,157,132,48,229,80,36,228,187,96,84,82,177,93, -112,128,244,97,253,151,152,177,121,124,183,22,239,109,12,177,188,163,233,13,95,95,30,162,58,194,204,254,87,169,57,64,111,53,200,86,83,132,73,13,15,91,148,94,95,252,86,194,12,246,181,46,123,205,97,44,237,62,246,135,43,145,163,75,229,45,89,77,205,230,191,183,102,103,20,75,143,37,250,200,58,87,252,111,31,218,150,168,28,249,100,104,72,196,36,72,42,79,87,244,218,243,173,229,231,76,141,210,98,183,96,116,92,24,67,235,123,204,88,245,45,231,173,74,161,185,68,126,30,67,181,211,119,160,173,221,232,51,135,247,237,206,246,117,147,234,22,110,185,100,10,30,80,95,217,222,81,13,206,41,122,194,251,238,44,191,125,165,83,159,112,234,159,27,167,126,213,222,159,216,231,253,207,135,254,95,180,246,159,124,111,184,217,148,29,124,94,163,227,124,28,45,188,131,105,53,144,68,209,165,253,78,138,235,172,144,47,110,236,179,180,73,184,152,55,13,125,0,19,100,36,171,161,181,96,158,24,255,132,58,124,194,98,176,66,16,35,65,37,42,3,96,48,138,225,33, -5,112,77,83,26,197,253,168,194,247,34,128,214,154,73,105,174,138,9,108,227,4,11,240,108,7,17,42,40,230,87,8,154,229,185,65,24,85,244,249,70,136,62,12,208,181,113,144,80,154,39,66,10,66,225,87,228,1,3,249,3,136,166,231,13,154,135,157,190,78,72,111,48,66,140,176,236,82,110,252,166,218,131,72,120,171,166,192,204,187,35,154,94,123,193,164,218,137,16,185,118,160,211,149,245,144,231,135,41,65,91,134,229,30,92,157,166,192,186,42,99,130,46,143,135,132,206,194,231,99,73,68,220,131,42,177,20,152,72,154,235,229,75,204,13,117,116,243,194,124,57,81,213,218,186,12,244,7,39,102,210,90,133,230,231,30,77,161,217,20,127,46,43,117,220,179,167,241,191,48,4,14,15,22,203,134,32,147,106,207,103,217,84,11,78,216,82,217,60,80,87,206,25,186,202,133,105,78,161,166,236,222,243,120,55,21,120,251,242,83,113,142,52,160,199,159,230,49,209,60,186,35,205,99,172,123,100,248,191,23,137,109,3,162,101,30,231,127,35,58,238,10,127,220,245,208, -136,85,198,207,195,189,138,56,180,45,39,70,40,210,210,15,76,181,104,113,28,221,0,254,65,77,63,88,225,3,245,220,29,68,48,118,227,226,28,196,32,36,22,47,252,225,135,223,195,142,102,0,22,217,103,255,150,237,127,203,188,130,90,127,0,188,24,101,2,80,17,246,126,13,51,75,16,40,143,156,156,135,175,56,98,30,242,99,52,64,209,80,33,97,56,10,160,165,126,144,167,70,64,61,174,11,17,241,178,123,4,246,141,145,11,73,153,24,175,135,150,220,15,177,79,31,112,58,175,3,229,28,94,251,22,167,3,209,180,31,60,180,195,191,200,24,10,199,154,152,214,17,238,246,158,242,11,159,206,129,89,23,179,63,51,86,32,31,118,41,73,32,220,13,34,250,23,54,78,184,237,36,19,254,195,168,240,15,19,118,194,215,126,221,186,130,218,103,95,135,183,222,79,134,247,214,149,95,245,53,230,180,245,110,212,113,239,236,6,222,149,145,125,236,79,147,23,203,242,142,176,228,239,69,220,127,24,10,78,206,221,153,123,117,227,89,143,229,253,37,247,190,171,45,190,127, -150,235,216,91,35,195,239,110,178,188,78,44,246,199,180,241,162,218,109,111,137,237,173,179,53,222,52,219,91,37,123,123,28,169,23,129,254,64,156,202,155,206,71,158,117,11,33,34,5,198,146,191,91,69,225,15,41,33,11,2,190,184,112,170,197,247,197,60,85,147,26,9,240,39,228,255,22,70,220,225,53,96,20,35,187,4,216,46,128,139,236,219,1,41,136,140,234,65,55,194,70,129,203,113,2,20,212,104,200,13,224,23,36,110,228,248,25,184,22,114,150,194,2,62,246,46,159,205,10,146,83,128,142,26,59,173,1,94,90,5,152,123,128,10,236,114,17,175,96,147,202,175,0,245,223,171,236,48,12,13,116,83,222,45,11,27,27,58,211,57,60,36,239,106,125,57,218,159,32,55,233,14,135,22,101,247,184,142,198,168,238,131,1,77,52,173,97,132,167,134,43,82,90,39,33,186,174,198,216,112,204,65,53,177,36,142,124,119,41,69,86,69,10,103,131,25,70,189,46,83,110,53,40,83,56,219,65,120,229,110,10,221,231,10,143,67,223,140,110,45,151,175,122,214,87,105, -247,65,242,200,117,238,91,217,230,124,226,94,209,44,231,34,233,110,233,197,189,251,33,255,235,111,151,227,186,98,167,102,58,124,95,249,188,231,220,157,239,30,228,90,230,209,108,245,187,171,46,93,26,139,189,57,106,172,196,182,241,185,205,118,15,50,188,134,125,252,178,15,95,198,247,208,103,27,250,204,195,213,231,242,26,103,159,185,2,247,14,160,241,4,206,135,101,136,153,177,197,164,61,192,83,38,114,188,242,229,206,37,129,203,44,30,199,70,72,67,123,72,246,11,233,61,181,17,116,81,140,90,0,151,186,15,236,252,0,226,101,192,164,195,226,248,63,58,192,7,117,163,226,250,199,203,101,17,102,134,13,194,49,154,224,38,140,17,97,145,139,165,84,27,24,146,151,80,130,90,252,31,164,142,195,147,227,106,16,90,9,81,215,97,2,10,132,229,23,107,142,61,178,240,52,130,126,35,41,52,115,253,83,79,45,117,62,110,59,165,106,17,139,155,197,221,37,52,56,173,221,216,161,226,47,32,73,61,196,166,54,185,147,227,106,124,97,78,215,196,22,76,228,4,138,197, -179,16,151,216,61,191,39,178,23,115,137,191,112,81,21,110,148,211,66,153,172,22,78,183,123,156,61,227,191,44,18,253,194,184,208,184,135,73,252,151,121,184,110,213,65,19,123,103,192,90,238,199,119,94,221,195,159,216,27,164,229,174,54,236,184,205,6,110,125,204,192,47,246,247,19,43,235,189,151,249,207,69,110,231,51,79,4,53,243,153,191,172,187,237,11,94,99,127,162,219,238,97,182,23,61,206,180,109,99,67,99,106,97,232,234,123,250,98,193,74,157,172,178,187,197,46,187,67,92,119,157,171,113,151,185,238,42,215,221,227,40,157,8,242,5,2,40,231,253,255,230,69,200,114,74,226,44,181,168,120,196,225,82,97,132,106,160,248,126,66,242,1,20,212,201,114,215,26,145,50,150,81,168,1,34,150,87,161,11,193,146,195,127,93,33,172,76,149,128,10,164,99,226,223,122,6,162,119,138,253,183,160,1,91,47,0,255,91,207,240,13,152,152,38,192,155,87,194,140,186,60,96,243,163,36,224,164,48,240,96,245,92,6,9,164,8,77,156,226,76,44,19,201,196,98,136, -81,40,144,155,92,112,72,71,248,56,118,118,5,85,78,93,100,92,170,131,150,239,145,157,100,182,104,131,227,74,144,205,170,19,101,22,13,212,158,30,86,233,200,180,152,84,223,240,187,123,126,154,171,176,24,230,137,180,211,82,234,34,146,60,214,97,34,111,154,88,219,234,56,77,99,17,143,163,104,147,213,155,68,199,113,22,235,48,110,43,191,44,144,108,218,47,33,148,38,241,195,151,121,189,227,178,248,49,121,131,79,153,154,39,237,186,197,192,89,178,24,167,244,190,225,30,171,116,251,8,253,138,94,164,60,214,17,191,246,178,156,181,44,119,37,157,94,206,199,116,219,62,172,33,187,198,137,166,105,104,212,215,205,140,52,107,79,25,127,94,198,140,125,98,60,217,143,17,165,177,180,81,26,167,74,227,210,111,105,188,150,167,5,184,37,139,160,20,94,184,175,159,148,230,98,112,5,73,226,172,162,20,87,243,134,238,37,4,74,142,244,133,130,138,73,128,7,35,231,81,3,8,86,23,73,249,106,60,24,72,9,194,15,22,0,58,28,144,140,124,32,46,205,128,193,23, -98,209,155,198,53,3,172,168,248,159,76,136,210,232,153,54,192,141,164,3,72,53,180,8,23,34,190,2,240,223,121,204,26,192,149,135,190,244,52,165,1,184,172,224,48,144,148,202,144,36,30,29,242,57,197,157,182,53,192,25,67,248,106,71,230,91,105,69,36,41,107,48,79,237,205,244,3,141,225,141,178,32,78,103,31,141,144,86,81,7,49,186,159,48,220,139,169,1,255,32,174,109,20,147,65,107,234,58,223,42,60,20,63,216,156,78,171,55,70,146,198,63,200,20,77,211,116,59,185,165,89,124,46,76,146,61,24,37,94,210,48,78,248,42,174,121,215,41,40,246,213,225,175,56,22,197,125,57,229,223,253,95,13,254,202,44,235,156,27,69,195,98,202,176,215,15,251,198,141,101,123,134,203,236,87,63,227,55,215,229,130,223,210,89,55,29,223,233,7,94,234,102,231,202,158,37,178,111,149,125,116,44,10,3,179,196,224,164,167,152,241,193,85,74,220,170,165,27,163,116,147,42,74,55,196,224,198,33,15,110,169,193,173,52,200,221,12,209,131,0,59,45,126,194,252,228, -102,237,9,240,80,77,75,247,239,43,97,16,189,22,160,64,81,37,57,32,238,18,160,219,65,44,36,68,70,140,98,96,3,17,144,191,153,200,0,100,61,68,194,226,192,208,240,13,124,136,239,183,151,254,184,89,82,8,177,8,192,161,165,74,23,9,26,75,137,102,144,100,97,20,190,168,252,63,192,78,223,202,172,62,42,27,165,36,202,101,80,180,144,56,41,154,217,20,48,138,197,35,75,218,84,36,114,235,85,129,66,178,11,160,143,201,156,64,88,126,90,6,241,172,223,40,178,12,167,147,126,161,156,200,108,210,130,232,174,69,13,127,91,70,215,78,10,122,115,169,250,54,118,179,25,183,182,184,215,151,181,204,45,65,38,231,169,84,147,217,185,200,98,3,3,124,89,197,148,216,102,113,156,147,95,12,227,203,68,175,173,249,151,243,218,20,240,197,85,245,186,171,115,244,89,206,38,107,215,138,94,123,178,236,208,253,140,50,222,176,93,222,254,45,25,180,57,213,164,82,182,164,102,60,148,236,88,35,223,134,158,132,215,40,93,113,74,246,115,70,229,30,151,117,227,253, -76,238,58,182,168,162,175,89,178,101,151,233,143,172,226,36,163,178,68,215,101,67,244,223,225,203,69,203,231,104,217,33,128,151,25,255,118,190,12,84,126,118,241,157,87,100,125,66,240,223,246,171,174,71,159,206,148,56,152,214,91,199,165,3,97,242,227,116,76,222,10,19,37,11,133,181,66,164,176,144,94,16,30,0,138,43,2,145,25,245,84,17,24,146,216,189,244,191,153,232,47,83,31,138,151,50,173,144,223,15,77,131,164,48,166,13,132,218,42,112,1,32,117,64,26,84,144,95,33,208,51,218,242,166,132,44,16,82,208,2,31,204,137,56,84,71,185,44,128,69,230,19,36,26,21,12,178,116,41,9,126,151,156,200,227,67,210,115,16,79,170,55,225,13,254,80,94,163,109,164,85,111,194,230,224,216,103,89,61,48,58,71,119,9,90,243,255,216,186,170,230,86,122,40,249,215,205,204,204,12,49,198,204,24,51,51,196,56,198,152,153,113,125,191,125,217,135,173,146,74,209,164,198,53,58,234,211,167,91,227,84,96,88,189,121,232,209,56,255,194,227,1,63,193,254,219, -53,216,70,222,78,166,12,194,164,55,231,42,78,248,165,74,145,167,33,202,235,92,228,124,159,9,212,54,108,122,154,187,0,99,97,151,143,238,139,68,103,190,195,255,88,127,7,153,83,147,58,110,87,135,243,212,142,78,144,95,139,148,71,47,225,242,153,101,66,14,53,39,76,39,98,227,97,104,191,223,129,157,215,28,205,19,158,39,59,54,249,154,125,165,216,211,137,121,116,152,174,12,118,38,227,181,64,102,121,214,105,129,85,38,122,91,101,57,54,197,127,98,83,186,92,74,119,226,165,118,39,212,79,92,231,111,117,238,21,20,126,242,29,243,248,39,216,8,241,64,95,203,162,228,80,225,95,178,129,233,166,196,17,98,25,6,30,4,13,70,68,192,199,128,46,194,242,9,48,42,244,112,36,88,56,246,213,3,175,34,192,15,4,173,220,24,142,11,112,26,161,13,244,107,177,116,0,134,243,165,147,160,67,32,6,124,226,10,158,113,74,96,121,30,116,161,238,68,208,34,6,76,205,163,141,36,241,144,244,131,130,13,33,196,75,31,22,149,83,120,134,57,34,177,0,45, -115,125,108,127,225,162,114,129,54,31,85,15,181,208,149,90,127,8,215,186,41,169,108,120,243,97,3,197,152,143,38,56,195,100,214,81,54,254,225,161,167,177,62,198,136,83,42,150,104,244,189,143,109,9,88,102,101,116,25,68,147,13,139,20,238,151,64,129,86,195,205,121,127,29,224,76,236,138,155,246,23,221,73,245,241,242,66,96,144,56,52,41,109,198,111,120,158,234,203,157,91,232,15,239,178,202,122,204,85,165,128,67,37,102,208,227,152,34,28,42,245,125,60,213,54,199,114,12,210,224,150,77,177,226,80,237,92,28,122,142,8,211,67,230,190,73,188,45,144,28,233,117,156,87,81,102,231,43,170,242,128,22,30,209,202,245,17,189,62,160,191,147,7,244,123,66,121,87,16,242,151,40,245,8,192,53,171,127,7,22,225,222,193,72,194,243,209,32,175,138,48,241,164,49,96,96,58,140,131,46,238,83,31,226,11,128,56,232,65,39,29,56,194,250,31,143,140,67,162,163,109,45,115,195,144,128,29,208,250,175,77,228,31,195,25,192,169,39,250,247,181,11,68,9,154,230, -255,196,172,1,104,89,142,178,235,255,85,52,255,151,131,135,73,129,104,160,120,60,141,11,15,91,100,20,105,11,6,168,91,133,160,143,222,131,99,84,113,23,238,94,45,154,124,126,23,194,213,95,16,245,206,57,82,11,168,205,62,108,31,247,13,149,255,61,246,5,176,206,209,223,19,174,23,94,159,152,107,12,8,230,211,197,226,245,193,195,138,229,22,221,124,180,46,12,33,84,90,189,160,226,86,223,2,79,252,29,196,160,213,75,243,179,176,14,101,109,15,223,181,91,109,39,245,192,59,59,131,37,225,204,29,180,199,151,197,124,255,160,59,95,197,56,237,221,195,248,237,145,63,33,167,159,75,111,99,230,232,69,58,120,128,141,179,87,151,229,159,227,186,20,99,120,205,237,219,241,185,237,28,113,177,62,31,61,140,239,149,16,250,69,111,162,176,20,203,77,250,71,229,113,91,114,93,136,119,215,229,236,186,212,26,203,11,179,113,241,91,182,86,255,108,240,206,71,253,114,17,164,244,161,3,76,178,111,172,91,164,28,44,25,244,143,6,0,241,138,180,168,99,225,32,33, -125,20,250,49,34,34,80,200,122,242,97,89,25,11,37,173,11,0,2,160,255,101,80,29,15,22,191,174,1,85,206,97,72,26,5,162,154,193,82,131,232,64,74,19,15,1,236,101,96,226,136,16,106,24,70,5,7,67,226,100,147,2,106,40,154,20,65,20,139,213,68,129,72,219,48,76,80,102,9,55,160,26,127,208,6,181,13,3,204,18,10,210,213,22,212,133,99,0,159,3,25,118,51,194,3,27,233,177,5,91,235,172,246,177,40,175,13,32,74,51,205,193,30,168,50,252,92,99,68,17,164,233,194,182,41,54,83,31,12,76,64,154,195,181,70,163,18,173,177,151,90,196,41,4,174,37,220,105,244,161,213,177,182,203,155,155,99,213,91,198,104,87,212,137,106,85,117,137,57,178,251,222,239,180,145,25,173,99,109,131,133,211,120,74,179,100,247,25,206,107,140,10,242,236,62,17,111,68,34,216,117,111,104,161,23,159,30,49,161,91,78,108,151,255,98,250,249,160,118,52,142,53,174,186,188,189,128,0,250,83,150,233,150,226,237,252,106,244,245,105,239,114,212,87,138,250, -170,235,176,47,31,246,21,194,185,151,26,253,12,82,239,124,16,134,246,143,7,70,168,176,180,46,115,197,4,24,104,190,67,22,105,152,32,152,244,197,32,26,18,98,169,101,115,130,73,69,52,209,111,24,180,7,37,207,72,255,12,146,5,154,147,77,100,25,64,104,61,40,170,213,144,14,132,3,131,40,0,186,125,43,112,31,110,21,127,168,181,12,150,163,85,32,94,28,64,165,49,178,192,2,93,194,128,72,168,22,171,107,226,143,192,250,62,102,55,15,232,53,46,168,141,31,41,232,12,104,27,175,224,59,26,198,40,61,132,190,185,31,216,218,95,41,182,1,4,25,252,15,156,164,1,173,206,53,192,103,11,80,213,252,80,228,240,249,134,112,44,200,146,187,78,51,52,161,46,9,141,123,19,18,203,18,235,114,42,82,168,98,226,87,53,4,127,152,19,71,178,78,255,22,4,3,75,147,181,220,152,162,93,174,244,27,151,43,48,17,19,108,232,128,119,138,111,101,210,179,63,66,249,170,49,225,84,234,35,30,10,247,219,196,139,120,30,8,190,91,147,217,245,202,177,157, -124,228,123,63,149,212,142,133,84,131,61,137,44,15,16,219,237,146,229,122,165,232,151,228,141,126,105,209,47,17,218,246,82,162,95,58,194,203,173,39,188,36,132,87,164,195,127,66,111,93,159,126,254,250,83,3,124,37,149,172,3,214,223,69,50,130,42,38,108,100,113,12,200,226,167,252,60,64,83,20,44,250,143,79,227,34,206,143,9,5,108,133,91,15,148,217,15,241,2,224,235,2,69,53,26,181,1,195,207,96,12,204,54,209,212,191,63,155,65,209,11,48,176,46,47,26,134,241,225,114,0,77,34,195,73,90,40,187,143,142,131,97,61,20,249,28,134,193,86,112,20,104,211,102,17,55,151,54,153,208,199,45,32,1,254,223,144,187,13,219,230,1,133,212,4,174,46,71,100,171,1,83,93,144,69,163,230,16,173,109,72,62,48,181,154,214,248,116,1,252,59,31,70,57,108,167,13,40,49,226,50,249,201,4,102,73,7,227,248,150,229,52,205,8,56,22,69,26,82,44,226,52,118,218,18,233,112,36,80,197,44,238,55,22,255,112,7,22,71,186,198,145,5,3,172,172, -73,154,154,194,157,3,87,242,141,35,51,17,191,113,236,115,232,244,237,234,105,225,85,77,244,20,194,49,193,84,66,60,146,199,72,87,252,217,30,234,55,250,93,140,235,212,225,67,173,114,116,53,145,214,184,22,178,134,19,31,101,160,67,137,98,215,161,58,223,26,244,67,77,120,72,222,132,135,150,240,16,17,108,15,13,225,33,199,60,220,122,204,67,130,121,68,24,244,171,87,189,3,211,121,90,225,199,5,139,112,8,172,17,18,255,226,1,240,171,27,210,19,2,245,135,133,18,240,128,102,27,21,50,17,48,120,80,223,206,5,66,207,160,6,121,19,173,251,7,185,12,36,151,38,81,199,192,102,129,170,100,241,15,130,241,17,88,241,52,214,18,200,0,16,181,8,134,33,42,144,32,147,232,56,160,136,16,1,9,83,1,131,212,88,116,162,35,228,9,192,121,149,48,185,115,132,157,3,122,91,221,132,180,7,17,190,186,29,254,33,84,93,219,3,97,232,122,114,3,106,130,255,6,93,83,151,25,33,221,248,49,51,54,21,11,155,107,66,42,51,189,30,218,176,194,16, -217,196,31,169,98,131,98,217,114,8,36,174,23,28,92,196,58,163,7,192,157,185,248,159,167,168,70,122,13,92,168,51,235,167,125,219,68,152,190,71,67,248,146,175,136,254,50,178,59,249,241,230,142,61,165,107,67,101,180,47,70,253,35,206,189,189,190,240,221,26,98,125,155,134,206,214,94,147,195,222,232,50,23,133,226,129,107,83,125,10,116,183,176,68,126,171,66,204,74,79,185,159,109,126,143,151,26,165,114,97,86,46,202,74,226,130,172,92,154,149,139,76,51,186,236,71,23,234,109,116,249,78,110,214,244,74,143,248,5,12,29,124,217,2,46,206,127,197,49,2,24,241,2,254,150,146,28,253,186,101,115,35,230,181,90,202,22,142,98,32,247,14,182,84,15,44,68,64,136,0,32,109,97,44,230,23,12,103,145,49,230,203,135,69,73,44,129,92,17,66,145,24,19,16,39,180,133,125,16,74,67,129,220,50,164,73,20,105,137,196,104,18,148,220,199,37,209,96,208,134,28,67,245,254,80,91,48,114,209,0,27,249,247,9,119,33,174,217,242,10,157,5,92,77,5,57, -86,11,166,170,141,136,71,97,74,3,130,253,99,228,33,114,11,145,165,13,237,199,121,45,203,40,69,42,200,165,73,146,102,229,88,224,138,128,195,136,178,140,113,120,78,72,42,1,234,44,142,9,134,232,224,197,118,68,30,52,17,214,144,183,131,184,243,228,78,240,190,178,148,120,100,207,127,218,174,252,188,141,157,208,245,135,34,243,230,20,99,189,53,132,96,186,8,229,172,98,101,35,175,29,44,39,98,197,33,112,162,186,190,209,237,18,204,185,154,252,216,43,226,166,121,150,199,31,39,46,23,235,80,225,187,180,152,182,186,8,215,127,253,252,149,51,98,179,58,63,29,77,150,52,211,129,106,58,120,109,166,131,206,116,160,75,154,7,182,228,128,150,28,60,204,200,228,140,201,35,25,229,205,193,193,95,192,85,65,192,0,130,65,94,111,6,49,114,33,230,3,212,102,15,251,79,159,138,211,100,226,230,156,15,14,153,27,19,175,147,206,162,77,96,13,252,183,62,230,195,112,28,16,121,20,104,162,68,31,112,50,182,97,224,95,97,178,43,64,31,237,127,238,153,68,32, -56,69,169,64,72,68,168,3,0,9,32,61,238,80,212,138,116,2,76,163,5,126,14,124,160,9,87,216,117,117,68,221,142,16,215,72,169,13,93,91,199,66,82,64,130,215,130,69,177,99,192,211,199,100,107,108,136,25,136,210,120,30,27,92,137,171,203,140,60,7,56,138,15,26,67,253,77,153,196,3,135,16,37,128,228,115,124,17,125,101,56,244,6,248,125,117,190,18,123,154,65,214,135,68,80,208,54,52,153,139,109,17,209,157,67,191,45,185,32,179,1,96,151,155,136,83,113,73,83,31,234,48,218,87,128,9,231,16,47,209,18,68,206,0,40,226,184,17,124,234,55,31,235,145,18,58,69,248,186,164,134,216,203,193,185,154,13,84,42,27,147,233,162,45,176,61,34,156,160,212,64,228,190,160,74,122,240,84,194,0,57,12,112,110,98,0,59,6,168,237,158,192,223,14,136,237,0,95,119,24,236,166,160,66,65,62,248,223,193,162,116,115,135,242,125,129,131,243,2,177,164,82,18,150,24,55,36,243,15,1,168,188,165,101,50,247,38,30,58,144,229,27,193,154,31,160, -207,0,16,10,88,128,251,143,63,5,82,87,65,4,231,216,21,99,85,128,84,251,192,51,64,8,56,160,38,17,156,18,14,144,63,240,36,73,78,114,16,104,3,38,26,225,82,7,8,122,90,130,249,46,141,13,111,11,40,228,109,3,184,26,228,200,13,141,89,180,26,48,57,13,110,24,11,130,85,4,32,78,22,114,31,13,104,141,60,3,84,129,7,171,160,36,219,20,149,6,109,67,1,32,45,100,193,165,55,106,192,224,51,200,176,184,46,196,238,10,128,244,249,209,55,246,48,133,122,27,248,0,55,47,197,31,230,105,72,155,19,152,103,128,8,93,177,41,82,47,98,3,218,83,67,10,84,80,91,174,2,86,206,2,82,198,17,16,171,55,1,122,202,241,141,105,149,224,171,246,39,126,116,112,51,201,14,100,70,128,203,180,193,101,216,14,9,174,85,205,195,244,106,200,31,29,252,103,198,4,216,17,192,98,243,108,204,158,141,212,211,220,120,61,27,188,103,179,148,107,55,108,237,198,184,211,110,254,126,129,179,201,24,88,87,55,211,231,86,226,234,97,30,6,68,68, -97,102,49,35,199,188,111,75,249,216,209,126,164,197,210,50,127,174,60,45,50,104,144,202,198,208,42,227,15,30,72,107,169,253,173,158,13,6,203,99,45,31,130,159,55,89,244,105,60,173,28,152,122,36,160,29,72,180,7,138,34,112,95,228,86,64,126,68,134,158,228,17,128,182,52,81,48,223,13,196,250,77,68,115,2,80,141,119,91,192,53,248,181,35,170,153,58,70,147,176,227,24,105,95,196,37,181,129,198,120,159,179,22,6,184,214,203,56,208,180,4,237,240,201,147,154,189,117,97,29,59,33,138,57,248,10,252,53,12,103,156,63,66,174,174,136,17,189,107,142,248,201,243,217,106,116,133,209,26,182,3,76,30,94,78,215,30,253,174,201,79,222,234,189,195,86,61,191,43,62,230,236,217,221,211,215,236,228,153,83,30,221,37,59,111,117,116,21,168,30,68,186,239,128,76,126,74,250,90,127,45,126,96,228,214,109,34,237,242,101,245,245,168,85,233,62,13,166,75,119,42,215,148,214,57,184,114,119,190,207,124,250,253,69,95,94,95,228,235,139,113,125,189,104,87,31, -245,234,235,146,175,62,218,205,71,109,223,124,140,219,75,123,28,61,59,183,117,119,252,234,222,161,229,227,203,193,103,109,224,184,80,158,111,81,13,70,5,80,216,195,42,5,119,135,60,142,235,88,212,179,176,48,47,208,1,5,13,54,96,244,75,98,17,7,99,54,136,188,149,13,254,29,159,212,200,174,127,167,84,123,20,6,245,69,70,74,65,59,145,34,180,96,209,226,32,86,208,104,148,136,96,144,48,52,249,129,229,134,140,133,135,192,110,0,105,52,139,155,227,49,118,1,193,171,169,54,66,53,157,86,59,250,195,15,46,201,191,59,8,22,177,8,6,210,70,168,19,106,214,196,198,205,67,218,194,42,154,169,14,215,226,39,134,131,26,135,58,179,122,20,13,24,42,12,118,209,4,229,44,52,58,4,59,111,120,114,10,10,98,193,236,157,141,149,120,206,180,96,110,207,50,138,84,196,83,53,126,171,203,233,212,230,39,226,225,213,76,57,90,186,36,135,239,235,9,79,209,68,252,161,167,161,240,125,55,40,110,149,12,103,122,122,233,112,238,83,217,22,205,140,172,141, -210,86,231,190,82,201,182,24,70,230,48,189,129,179,247,217,40,143,62,51,250,147,236,174,44,61,202,21,199,72,213,158,143,165,93,27,63,15,85,79,226,163,27,132,41,150,255,149,98,117,177,236,174,86,1,204,158,219,15,38,51,30,203,242,216,167,97,161,11,209,4,114,169,175,160,176,112,75,171,220,144,8,177,69,0,113,49,104,240,41,72,122,37,85,0,149,197,166,128,16,253,77,161,60,22,99,82,159,33,229,10,72,146,224,214,129,64,255,220,38,87,209,3,163,201,26,221,7,145,164,128,214,242,81,238,204,234,38,93,215,215,193,77,153,98,145,10,175,33,120,93,56,254,13,181,26,102,104,89,13,87,55,213,33,91,236,237,6,78,207,167,105,167,65,19,26,31,14,130,79,244,10,212,198,2,247,147,34,66,141,120,175,91,45,142,5,12,8,193,185,152,135,206,22,58,142,86,144,47,61,103,46,226,169,80,240,170,111,120,140,110,85,40,180,213,174,212,29,237,173,22,191,105,7,88,74,254,252,73,248,107,169,124,142,118,40,193,159,155,112,208,95,205,19,135,137, -67,200,249,12,100,187,92,106,233,60,58,240,157,142,103,51,218,165,20,236,144,225,225,200,126,102,162,31,160,21,153,242,67,100,163,122,6,147,66,106,17,241,39,59,76,209,207,228,236,231,45,19,191,73,121,111,55,49,249,142,28,152,148,254,173,100,124,158,141,191,207,63,227,51,39,185,201,236,154,250,229,205,203,22,28,16,76,212,132,218,141,80,72,135,27,149,140,236,118,38,158,32,157,53,237,142,14,149,198,96,72,247,80,216,143,241,73,1,251,240,65,203,239,139,44,1,45,62,47,61,37,35,134,34,4,222,151,14,181,16,54,169,97,252,148,236,52,185,31,132,5,64,151,198,24,135,116,128,6,63,152,83,144,80,183,245,155,20,160,20,95,130,142,80,182,13,81,13,98,4,77,113,181,148,2,200,133,130,1,235,154,9,210,224,95,135,206,10,85,88,203,52,40,171,156,167,2,173,80,16,47,158,205,202,25,188,17,212,179,90,101,10,68,191,82,111,210,173,34,9,255,22,20,82,102,149,162,107,77,43,19,41,51,68,171,141,153,89,33,55,121,66,212,81,127,49, -49,179,189,147,119,83,40,5,73,167,74,185,155,25,121,55,142,236,51,249,66,154,214,51,31,206,165,148,174,206,201,175,102,113,198,160,201,93,42,249,42,174,154,119,138,51,53,205,37,17,47,244,137,47,44,101,230,185,194,92,26,113,22,165,242,150,250,51,26,235,150,224,164,159,34,133,143,94,24,119,177,95,223,225,178,178,42,153,173,37,179,46,204,89,246,99,85,93,109,0,123,248,36,241,6,46,203,39,40,124,216,180,231,68,253,234,137,227,161,211,21,107,201,248,35,104,53,12,254,87,156,129,157,224,102,52,225,80,208,178,153,116,8,204,253,18,240,44,36,50,241,11,144,8,146,74,167,65,217,36,9,3,82,252,161,124,244,142,226,23,254,9,30,10,61,128,129,245,128,40,186,99,166,22,160,101,56,176,2,239,50,134,158,168,118,172,131,56,117,184,198,181,96,35,180,211,120,36,156,210,131,65,87,157,19,57,182,18,235,56,4,15,81,226,208,118,69,124,6,180,181,18,156,136,175,120,129,238,244,74,36,200,32,9,195,187,148,251,107,250,16,68,33,47,144,79, -140,169,22,164,251,10,36,175,168,25,92,157,18,137,218,110,71,239,241,30,42,101,55,158,128,255,153,118,236,139,90,186,22,198,227,49,211,142,92,160,61,68,242,117,42,225,185,23,119,122,154,71,26,23,175,83,241,38,101,167,68,192,60,122,241,119,226,30,215,244,119,38,150,199,33,83,124,163,18,251,126,110,167,69,61,42,225,23,75,34,201,161,227,194,72,106,120,150,236,154,226,171,146,78,122,252,196,95,161,93,252,213,142,191,176,32,246,227,15,124,229,210,39,199,206,71,143,235,3,131,161,216,245,169,196,253,232,155,23,8,154,220,132,58,164,94,37,40,123,224,113,144,129,222,2,81,96,130,54,80,111,162,193,148,188,227,42,192,51,70,18,195,80,129,33,114,59,96,2,51,104,70,234,71,119,7,37,4,170,24,6,9,124,72,11,70,220,128,149,203,80,96,1,225,27,240,169,9,250,159,65,12,80,93,132,58,84,3,192,225,5,74,10,64,107,103,61,52,28,111,35,142,3,76,45,135,5,46,205,250,56,76,90,109,64,211,141,28,66,180,28,254,162,112,97,5, -74,8,136,39,112,81,53,202,14,4,130,135,190,6,229,11,103,15,201,4,218,190,147,32,15,169,4,90,207,222,54,162,30,50,133,252,61,10,99,195,135,164,135,73,201,201,194,225,146,106,27,78,122,24,73,10,81,22,14,161,183,218,192,79,139,73,58,203,130,225,54,122,219,76,183,88,20,170,61,18,254,192,122,219,78,183,232,228,26,36,28,30,145,183,133,240,87,139,68,254,11,135,217,2,241,86,67,186,68,226,193,135,86,246,162,81,186,20,44,106,13,15,215,32,137,254,30,188,37,130,183,67,187,111,251,253,232,11,161,215,240,186,10,60,223,35,94,214,1,177,167,63,249,234,50,32,83,157,158,233,208,172,87,25,145,109,47,140,75,243,79,118,242,97,4,76,151,44,130,28,6,231,204,201,214,252,81,93,111,37,69,64,130,172,51,55,163,20,8,26,45,161,154,195,129,73,24,22,214,250,0,182,65,15,76,65,109,175,13,106,11,194,25,132,38,140,11,240,137,5,215,199,174,212,131,24,203,106,100,128,49,200,108,235,61,184,20,32,247,113,128,81,112,254,149,87, -134,169,1,174,160,175,208,13,131,254,64,4,23,224,164,59,12,167,105,133,128,126,126,245,194,34,134,43,219,203,233,38,146,157,247,159,209,202,110,58,19,39,126,134,203,45,91,213,138,248,179,70,117,151,95,196,173,173,159,233,16,38,90,178,156,124,165,164,156,7,93,244,157,92,127,230,23,147,151,232,212,101,186,215,92,116,251,28,89,185,37,222,243,146,124,103,196,159,136,210,208,167,223,117,169,119,215,55,166,205,132,175,14,169,159,115,68,124,247,160,243,207,44,224,147,110,228,66,134,227,77,118,188,111,159,97,232,246,255,189,221,254,158,219,223,119,119,252,127,238,119,240,252,62,227,255,94,76,193,93,216,185,190,79,234,253,123,172,143,69,238,131,195,15,189,238,104,235,211,211,157,193,187,208,114,7,40,250,136,16,92,176,216,35,72,148,220,36,67,83,196,186,145,241,79,191,48,164,179,166,104,102,112,211,2,65,54,69,170,96,226,228,112,1,37,140,66,131,81,40,128,12,85,128,30,129,210,102,208,98,32,23,51,131,250,131,61,27,73,55,151,81,23,160,99,120, -208,232,255,3,95,193,205,0,7,41,117,24,86,189,56,117,70,28,168,25,85,228,125,104,143,174,87,25,168,170,128,130,166,223,26,248,138,13,62,105,36,27,0,237,25,47,54,213,68,169,244,177,58,230,128,158,7,83,77,72,155,211,93,133,78,188,253,201,219,126,108,70,113,116,82,173,239,103,32,133,158,195,235,71,72,107,113,83,156,188,244,179,91,128,106,19,35,122,79,76,178,16,199,143,129,210,208,245,189,107,211,157,206,21,170,109,135,235,155,183,159,90,70,60,71,228,113,199,54,224,82,111,218,16,178,67,143,109,49,225,83,61,22,82,187,250,230,85,109,247,168,233,30,57,214,181,43,114,126,134,247,212,103,96,255,140,237,159,137,208,167,239,159,217,206,254,9,157,223,184,181,235,241,187,85,91,59,244,205,174,86,116,249,95,29,67,96,241,71,33,251,130,69,31,77,13,78,213,71,253,165,38,17,156,72,235,77,253,57,37,112,58,135,96,14,101,138,224,176,188,255,67,211,58,73,55,54,49,14,150,133,0,208,127,50,250,150,22,128,46,32,228,196,160,55,3, -160,118,120,94,239,81,150,80,29,222,134,182,89,3,46,201,73,11,174,48,13,144,47,222,39,115,127,180,16,184,252,147,184,102,26,225,55,220,99,129,157,37,32,217,99,209,6,241,79,209,88,177,160,82,148,105,17,30,179,16,33,132,41,38,162,125,180,95,3,7,122,169,164,185,126,97,2,95,203,8,130,252,68,119,58,160,249,223,17,47,161,6,200,235,219,31,240,240,162,223,121,168,206,146,0,162,148,196,6,226,239,1,57,191,205,79,46,50,209,161,197,116,173,208,113,222,25,78,112,67,98,130,37,120,192,8,108,67,74,192,145,61,183,6,110,179,126,199,175,93,8,169,198,35,22,241,13,32,185,234,150,240,231,72,237,31,203,228,254,241,179,231,245,101,174,87,223,245,2,92,77,223,192,229,27,187,124,137,161,203,55,112,248,122,39,199,43,186,125,160,7,237,11,63,182,229,210,195,214,238,127,252,183,130,218,155,36,238,120,244,59,172,143,231,100,106,10,85,175,27,160,121,243,97,204,147,54,24,138,208,176,134,130,210,83,104,150,17,62,32,153,135,136,116,146,66, -0,25,95,40,20,202,93,63,156,192,128,249,130,50,87,179,112,94,85,143,136,52,193,77,0,91,104,6,236,191,159,236,45,252,14,254,203,94,218,201,244,47,123,131,16,72,144,139,220,3,213,149,176,15,46,1,152,116,114,113,161,2,60,92,98,33,21,21,23,48,92,106,25,50,163,194,190,47,163,31,14,64,41,119,191,196,118,126,163,151,94,0,95,239,52,164,182,51,214,160,39,127,63,173,241,23,198,243,81,99,93,212,50,7,63,209,254,126,238,165,77,24,144,189,181,6,63,165,46,52,97,22,68,216,233,14,209,221,189,190,167,190,251,122,34,215,254,140,189,219,207,52,215,187,165,253,114,178,206,61,247,138,224,137,57,230,94,236,63,127,216,188,234,2,141,220,126,249,87,114,156,204,173,251,84,191,124,50,9,207,63,194,211,22,35,60,239,132,103,211,77,120,206,9,207,84,59,115,255,115,159,114,167,229,234,221,182,190,167,181,151,220,205,191,175,171,164,103,242,253,143,0,53,105,227,143,73,202,72,135,77,114,19,110,44,189,49,8,14,99,175,193,64,200,109,27, -65,1,60,66,6,213,12,32,1,198,21,6,69,56,3,134,58,198,194,129,191,186,216,138,1,9,35,134,144,165,170,7,12,167,62,217,122,68,46,204,54,9,137,126,252,151,178,134,240,180,61,208,65,232,160,112,175,141,248,40,21,132,54,110,188,26,144,227,254,168,202,54,224,21,129,165,140,198,37,53,98,65,45,75,98,36,36,181,210,11,192,194,161,117,80,160,164,171,187,64,183,72,149,227,203,107,76,62,176,151,38,153,219,73,115,74,163,213,197,234,190,3,41,48,241,8,15,220,90,192,115,134,16,96,180,185,75,213,26,123,204,165,190,163,248,220,189,129,214,222,156,221,221,25,252,174,119,218,115,245,82,109,122,230,58,65,229,168,168,221,160,115,175,38,107,237,12,26,223,187,140,174,230,168,166,120,243,106,132,112,132,196,110,4,207,192,155,50,10,122,117,74,110,221,200,45,27,239,239,142,245,229,152,63,95,254,218,109,169,63,206,249,191,115,166,187,154,59,105,155,194,69,253,237,26,60,207,37,219,241,220,172,118,191,181,162,199,63,229,210,130,51,176,145,86,207, -198,102,213,163,140,224,33,28,202,21,143,44,93,131,1,253,196,142,247,9,29,19,217,145,0,137,95,83,58,252,71,54,201,180,198,52,131,106,132,241,57,216,31,208,230,215,19,94,246,64,16,194,156,89,248,61,65,234,255,96,215,176,5,131,136,57,191,80,175,146,63,176,3,167,118,11,20,90,123,138,107,177,192,161,51,102,127,248,174,156,54,65,21,65,154,196,216,79,67,208,6,189,17,23,22,247,83,95,44,112,8,209,79,145,80,92,218,175,180,3,1,135,39,83,166,171,113,11,124,231,119,8,244,1,165,109,67,82,76,220,69,103,240,80,234,157,210,206,200,124,164,246,190,223,17,251,146,52,123,122,229,95,193,94,75,188,48,42,72,79,10,10,155,59,191,115,214,214,160,177,218,181,116,103,7,163,217,74,85,117,132,145,34,182,131,234,7,206,172,177,53,170,39,244,27,45,243,172,99,138,78,186,207,240,119,134,232,254,78,255,218,222,191,170,191,126,141,188,239,134,241,97,25,92,123,254,216,174,109,27,113,151,186,84,173,201,248,182,233,182,194,85,211,215,177,61, -86,199,212,78,169,75,173,71,54,173,255,55,184,127,194,254,153,143,180,65,218,76,129,88,196,201,175,235,70,128,38,82,69,67,185,124,75,71,138,38,154,139,38,221,49,112,133,126,17,38,234,161,201,120,5,132,242,195,8,60,97,196,75,128,175,166,50,55,117,183,16,85,180,132,26,136,102,23,245,99,73,52,64,115,36,170,101,65,84,127,53,118,84,218,130,99,4,36,201,58,169,191,7,8,105,73,210,240,15,119,36,178,113,74,73,131,182,225,175,33,135,202,142,6,81,90,86,20,166,16,139,167,73,146,135,206,65,144,192,35,149,240,128,78,123,129,55,62,80,14,197,92,215,140,66,191,225,172,111,145,190,217,11,251,190,40,254,146,158,146,25,54,191,37,113,86,111,143,35,216,103,214,68,135,2,137,138,29,150,160,129,43,103,108,15,66,172,213,46,125,118,40,206,77,183,226,211,184,247,79,119,43,230,238,246,167,43,52,110,197,240,211,83,110,5,214,244,233,110,197,222,189,86,152,155,255,26,179,212,84,116,109,25,255,108,205,125,53,108,79,195,109,116,91,165,14, -25,70,106,170,209,149,152,77,69,63,103,79,11,215,156,215,209,53,189,77,74,7,183,53,243,190,139,55,126,127,39,254,62,254,43,192,97,58,11,31,133,246,3,133,143,189,72,105,252,18,72,79,229,62,68,233,169,223,68,113,66,140,255,154,56,4,124,33,73,1,25,67,146,104,88,43,38,125,81,9,31,252,5,42,2,102,15,212,38,192,183,200,234,39,119,73,206,45,181,98,5,87,201,236,45,158,108,197,84,73,170,45,155,162,53,50,200,232,45,88,154,134,126,28,90,116,44,15,88,88,148,30,21,216,65,112,210,159,1,43,143,114,96,62,238,86,98,224,17,208,56,40,160,99,141,0,238,61,40,156,140,86,220,238,198,32,16,24,91,220,195,22,247,77,214,243,183,244,218,133,50,127,52,192,130,61,62,231,136,186,149,0,58,118,97,13,76,143,176,209,215,138,8,150,11,206,122,205,89,47,109,156,245,138,179,94,176,40,235,53,107,189,100,173,167,43,214,103,246,189,166,176,190,151,220,239,21,23,252,189,224,126,175,185,223,162,255,102,185,53,133,157,91,178,115,43, -118,227,221,54,9,58,38,129,174,97,122,121,166,143,173,191,116,121,42,182,238,76,102,96,231,70,191,237,120,178,112,205,242,183,13,175,167,167,247,72,33,182,210,31,252,192,191,100,189,205,57,200,251,244,207,0,247,49,7,3,63,133,157,56,62,146,183,45,142,148,81,90,121,74,236,148,252,141,18,174,242,77,69,50,152,195,40,204,39,115,181,120,48,101,96,190,240,49,6,239,63,244,161,120,153,79,189,208,234,194,138,68,119,248,177,103,97,117,186,251,143,245,194,146,120,119,172,3,71,194,218,114,23,180,7,244,33,25,88,8,55,3,156,52,186,96,76,24,192,81,120,93,204,10,248,255,69,238,75,200,133,64,31,207,166,222,16,8,221,174,55,223,60,143,221,28,215,142,219,167,212,102,42,103,49,47,243,161,239,23,253,146,152,23,252,160,220,249,152,107,156,142,185,32,181,253,212,13,218,79,41,255,25,2,111,128,216,251,29,123,131,214,177,247,185,249,254,187,52,223,220,86,163,218,237,182,170,221,122,177,219,93,22,187,205,98,183,93,180,117,59,197,110,163,216,189, -183,202,221,122,89,216,125,151,133,237,178,240,183,76,124,187,84,239,81,232,253,152,133,222,37,196,43,198,192,63,207,220,219,218,222,62,116,191,231,254,86,237,245,246,233,223,49,215,203,191,158,223,252,218,185,223,215,40,189,75,156,151,93,175,185,172,255,149,222,165,62,160,41,77,173,44,240,184,91,56,79,14,234,51,131,34,15,148,89,60,142,124,158,159,202,180,232,159,20,238,203,72,78,197,13,148,47,131,15,91,19,27,107,219,95,158,161,41,22,150,150,6,91,144,33,137,68,108,31,198,107,67,184,58,227,199,215,178,154,195,127,97,35,219,2,104,14,114,143,202,219,177,197,113,192,34,201,103,192,142,127,97,187,214,89,32,22,92,138,202,217,113,102,68,64,116,73,85,240,94,208,43,31,171,28,119,94,131,93,132,148,206,17,175,182,219,85,3,42,122,246,74,126,49,74,239,4,161,96,57,249,72,19,247,218,21,107,254,107,111,36,16,180,173,94,182,247,170,195,88,173,24,171,23,193,225,149,187,173,242,183,219,169,114,27,85,238,183,79,229,182,169,220,174,183,202, -109,82,185,61,98,191,219,34,118,27,196,238,166,95,236,182,139,221,238,165,216,109,22,187,189,250,235,125,212,62,239,93,171,163,242,216,38,206,93,107,111,245,216,213,79,125,29,126,233,233,84,220,23,25,238,153,104,109,119,107,199,195,251,183,242,180,168,239,114,101,165,189,174,110,252,98,159,63,171,108,129,163,116,105,225,237,47,115,232,63,169,68,81,164,78,103,191,41,70,89,82,74,121,247,35,184,47,139,132,65,226,200,73,194,222,7,104,90,19,158,25,233,45,37,166,98,134,48,231,90,229,224,160,237,35,76,218,143,244,16,175,53,85,195,117,145,105,142,214,98,140,112,121,213,195,162,2,102,192,139,176,102,98,138,128,12,205,10,92,56,91,3,2,242,225,56,38,23,17,162,1,164,222,164,179,179,204,160,34,225,65,236,230,84,58,237,12,55,15,117,93,206,150,54,112,36,140,97,244,11,122,49,239,44,118,115,193,122,46,0,43,205,77,142,178,89,31,232,52,25,169,46,19,218,0,160,212,254,93,218,175,75,143,61,179,245,91,110,117,222,229,86,35,223,106,229, -237,173,122,190,213,205,183,184,205,124,171,157,111,253,38,106,173,78,173,213,168,13,91,173,90,171,94,227,217,186,53,94,187,196,251,253,220,233,82,56,189,138,172,211,170,184,94,51,251,239,129,122,140,172,100,206,33,13,103,93,181,118,117,179,153,175,94,121,216,36,191,215,97,100,127,166,103,122,194,154,229,221,42,60,254,74,152,177,93,115,17,210,255,87,231,193,251,165,151,6,19,70,39,14,191,38,70,121,251,166,252,25,194,40,222,39,49,109,90,240,2,37,140,132,150,50,22,51,2,118,163,118,176,102,111,105,182,133,85,117,197,92,26,146,53,104,200,185,182,98,144,120,62,250,134,225,130,169,35,118,67,128,19,187,168,157,10,67,138,19,188,168,167,147,143,13,11,194,126,34,161,104,144,197,138,56,212,23,178,1,135,8,0,250,237,76,199,2,61,227,132,140,154,120,128,216,221,234,137,96,216,172,224,93,182,85,229,59,168,89,86,82,38,221,2,126,241,201,111,75,196,66,45,88,169,5,179,207,0,141,113,213,127,72,174,26,201,173,63,25,248,138,23,95,105,111, -64,127,237,227,189,125,156,131,218,199,125,251,56,104,131,142,207,246,113,217,62,130,142,153,227,40,115,188,130,50,199,105,230,184,205,128,142,189,204,241,85,57,130,86,149,227,169,114,28,111,42,199,91,229,152,82,119,103,101,204,76,73,175,100,136,26,245,186,86,238,198,244,95,190,223,194,211,186,215,222,250,191,199,169,201,61,163,142,42,93,70,37,254,238,84,159,219,196,209,147,251,220,163,5,222,229,231,127,2,15,110,42,170,242,60,178,121,168,229,239,228,52,249,181,102,14,155,164,18,134,33,132,87,211,12,23,173,64,2,13,58,180,132,121,237,65,24,34,173,109,113,113,85,1,103,170,81,100,222,201,206,54,160,26,20,168,105,3,167,180,114,24,81,231,132,192,13,196,141,193,105,251,23,55,71,114,42,250,196,205,237,72,162,121,6,66,52,48,209,219,108,16,68,144,100,146,242,14,176,117,16,52,233,70,183,31,25,114,49,235,22,177,223,31,87,144,121,241,122,229,15,43,218,219,42,47,125,160,28,25,63,50,39,241,163,210,102,24,186,194,46,161,43,234,183,230, -219,180,106,62,208,185,70,183,159,171,244,207,112,102,86,13,205,121,178,57,79,37,185,243,127,237,60,215,36,231,192,76,253,222,37,213,187,157,122,247,46,98,118,125,204,238,231,141,217,181,48,187,5,166,187,75,99,118,53,250,104,57,29,141,84,163,81,78,152,74,10,25,116,191,182,175,241,119,171,47,183,236,250,184,37,174,35,202,78,183,151,143,148,169,100,78,202,160,189,155,229,215,181,90,184,198,34,163,183,213,122,89,191,21,243,174,48,39,123,63,255,213,133,6,102,184,115,106,67,136,175,196,47,133,193,34,11,198,228,143,124,163,56,65,242,200,223,150,100,140,142,210,219,186,91,34,117,107,143,75,130,248,129,181,38,208,141,0,172,238,154,227,141,90,201,99,1,183,226,192,140,75,140,241,139,5,140,130,251,144,144,134,176,247,89,242,212,16,225,180,224,17,69,192,193,10,157,148,67,169,246,3,181,5,50,133,252,16,26,22,145,178,25,94,121,228,141,28,205,92,185,153,43,113,242,64,180,227,136,199,17,17,124,124,18,180,179,136,187,133,223,131,92,160,116,148, -95,169,155,75,230,133,26,122,90,84,127,157,218,77,34,207,213,209,185,54,18,191,207,247,51,131,91,159,219,86,72,143,128,114,192,56,219,237,138,53,167,199,230,246,158,30,153,120,121,6,160,54,163,17,143,183,227,131,209,177,0,151,137,23,104,145,146,165,53,28,196,238,156,200,213,97,95,28,133,59,134,103,180,68,169,137,215,100,72,18,41,37,83,206,167,235,40,183,236,179,66,31,85,242,149,194,208,226,232,242,239,188,219,188,135,176,65,156,62,143,183,85,230,83,165,69,233,13,94,154,243,111,255,158,133,255,173,66,174,251,55,214,185,199,254,154,177,37,182,25,11,103,249,220,75,150,203,205,242,184,89,163,77,59,254,100,14,124,94,172,177,27,249,90,247,193,225,179,241,113,19,187,19,94,150,199,203,114,120,151,19,191,119,226,245,78,130,219,206,225,254,237,242,234,153,203,14,214,182,142,172,177,103,73,226,94,0,236,206,175,99,203,179,107,149,60,155,150,103,219,106,29,207,173,97,38,40,236,70,83,170,180,42,30,184,127,52,176,242,21,165,133,34,93,76,191, -76,123,66,211,18,99,161,246,165,189,208,25,55,228,207,68,71,70,202,33,19,60,230,33,213,222,240,15,72,188,207,83,241,197,194,237,177,79,27,95,201,72,148,178,21,239,194,121,97,55,236,223,127,156,192,163,228,218,56,164,155,6,134,186,9,139,5,15,20,72,46,88,20,40,138,58,50,2,72,176,208,64,189,32,57,212,13,180,145,23,126,30,178,52,208,143,46,99,226,66,229,96,13,189,156,22,106,221,110,5,117,119,78,11,161,151,246,48,140,86,40,103,84,178,20,44,208,211,138,15,158,84,154,234,11,243,44,223,198,121,42,125,161,200,48,134,101,42,205,87,228,21,57,42,85,137,190,134,167,253,135,197,120,226,152,88,71,69,212,131,238,241,214,253,56,151,116,165,206,161,157,176,223,94,248,51,37,14,55,74,91,16,214,49,149,133,94,194,114,175,82,116,171,176,217,93,88,78,178,101,55,213,186,250,13,107,206,125,184,102,251,29,166,59,214,201,97,166,16,124,191,191,229,38,37,71,68,208,33,124,242,254,72,242,117,67,68,124,94,241,193,138,161,22,102,252, -48,198,216,121,73,49,18,138,29,18,247,128,58,210,157,127,107,61,18,178,32,39,17,85,82,198,177,30,213,58,188,2,126,178,164,224,40,112,2,238,26,19,9,130,53,33,85,212,67,28,151,94,127,73,55,40,48,46,44,90,129,144,1,8,241,212,45,221,3,200,192,9,253,126,32,39,65,189,173,190,139,217,115,170,6,190,14,154,255,109,143,16,182,245,196,232,194,53,140,192,8,251,13,149,119,127,30,5,102,87,148,29,212,146,165,139,135,229,198,43,115,130,232,95,118,128,73,127,91,151,248,220,117,144,163,118,46,48,187,254,140,141,198,188,91,99,238,225,44,83,133,219,48,210,107,220,138,115,173,49,129,168,113,13,160,171,139,223,253,238,204,9,103,199,160,125,92,93,148,154,78,15,211,181,59,251,58,253,197,220,209,116,38,152,154,123,48,182,102,47,154,191,7,252,100,126,133,217,254,53,46,243,151,9,190,31,223,242,172,73,9,52,215,3,8,228,107,192,13,90,24,61,253,3,255,19,182,75,206,158,47,25,42,220,145,136,34,3,252,214,74,15,124,7,201,126, -173,43,246,7,1,157,141,66,87,164,35,57,132,175,32,174,19,101,103,211,168,78,16,31,85,204,219,128,8,163,159,73,203,113,217,128,145,44,74,247,0,20,15,211,137,225,126,3,32,2,168,147,91,86,160,94,153,52,59,112,79,0,228,36,55,104,134,3,191,139,127,175,145,234,237,77,97,238,99,113,180,57,112,165,84,199,228,249,246,143,123,164,244,240,186,250,109,128,237,176,40,233,248,125,176,135,41,109,115,40,58,115,233,99,114,139,13,39,125,237,83,87,245,45,204,173,56,199,162,237,171,209,104,152,17,240,14,65,63,164,175,147,52,182,249,4,131,119,244,159,122,87,93,168,169,206,113,199,47,247,160,157,173,43,205,196,234,10,103,117,14,116,71,66,157,42,173,2,168,66,197,217,183,18,234,244,168,244,212,34,223,251,68,127,219,30,219,41,128,183,198,207,44,178,75,155,12,200,146,124,134,34,172,46,13,43,41,24,6,124,76,128,220,45,173,217,193,67,64,161,197,24,58,212,117,224,203,255,9,71,24,149,218,137,75,195,167,102,7,17,217,69,172,163,88,105, -217,160,58,225,101,28,113,215,66,2,101,72,26,248,9,111,92,55,92,122,242,169,206,55,149,212,4,50,66,247,73,226,169,32,208,110,25,21,112,219,0,21,91,124,51,238,2,156,177,138,156,114,91,224,54,245,148,241,85,79,89,109,39,187,32,101,224,151,218,38,64,176,130,9,36,127,43,73,246,171,89,150,207,111,193,205,171,175,31,62,223,113,42,148,244,19,153,70,255,177,141,201,118,97,27,252,97,243,247,209,24,159,92,32,255,29,234,108,190,99,23,29,101,39,34,233,202,5,160,78,78,137,247,72,152,16,165,141,37,170,124,114,73,248,167,137,123,230,109,204,136,182,166,20,147,57,77,160,222,198,223,18,91,109,74,42,182,201,98,223,60,24,117,55,250,78,199,177,195,223,103,111,142,150,228,65,226,178,157,196,250,129,193,216,147,66,97,98,31,250,144,198,191,61,210,142,8,52,56,98,226,195,216,95,98,45,173,254,197,145,89,180,104,4,139,8,134,47,233,78,12,82,238,96,225,19,16,146,86,107,18,172,9,74,189,251,63,228,145,47,56,127,39,36,22,24, -236,144,98,254,145,7,213,55,171,18,39,1,125,221,41,39,91,128,127,97,248,54,202,193,92,128,191,9,179,203,0,254,67,27,231,86,24,254,1,132,219,36,66,49,90,100,57,235,156,141,140,3,90,141,105,192,151,209,178,113,139,217,132,131,43,248,100,116,44,76,92,161,112,80,99,108,216,43,127,92,91,24,177,20,147,197,247,240,152,136,83,53,164,208,83,220,239,109,23,255,136,135,134,164,93,177,197,153,186,226,20,91,178,52,37,75,91,92,131,177,22,23,120,75,67,138,61,86,227,58,107,113,89,192,151,127,165,57,29,217,30,99,196,107,140,67,196,41,51,43,139,247,115,209,161,222,99,126,122,27,247,111,208,173,134,117,76,144,190,184,192,141,6,54,140,206,135,63,39,60,20,134,155,37,17,249,62,242,213,192,22,72,2,78,50,118,229,68,215,104,208,95,114,36,243,109,146,96,13,194,17,54,155,55,26,248,232,16,33,47,54,80,124,73,15,136,64,122,209,26,72,195,61,30,187,132,220,128,7,57,41,216,144,13,136,145,251,41,76,173,178,11,147,135,90,127, -232,157,163,28,94,3,97,180,80,185,232,239,66,214,130,228,230,137,39,231,248,217,19,54,73,45,107,11,163,3,141,149,64,96,66,42,131,176,135,87,107,71,198,150,61,192,200,181,206,176,196,186,240,39,100,219,144,116,90,174,25,142,212,245,192,115,183,163,203,89,153,17,119,179,174,39,152,59,62,162,118,101,129,185,181,189,211,56,229,168,80,86,70,216,136,171,237,69,83,142,206,141,167,183,34,53,153,222,31,115,188,49,239,47,70,134,243,65,119,242,252,112,240,59,151,28,101,131,95,1,218,77,115,73,193,11,121,110,84,116,153,90,119,55,108,39,255,55,193,245,250,88,84,150,221,9,206,151,36,164,147,156,2,148,66,94,28,188,8,59,71,64,168,58,116,82,217,5,45,218,113,66,167,39,40,8,95,80,140,14,65,200,111,24,179,8,125,90,98,241,203,143,203,130,61,129,34,85,93,3,209,4,168,146,13,220,2,64,181,208,134,181,135,211,129,43,6,16,164,76,152,177,181,206,219,15,22,0,27,144,180,249,41,239,97,65,205,167,90,30,135,47,214,127,74,46, -32,201,248,247,149,156,63,45,173,197,225,216,17,200,104,224,203,106,233,227,55,248,230,79,136,65,74,167,41,28,11,12,161,21,107,95,169,175,28,101,102,205,32,111,105,241,106,255,117,76,241,102,22,100,35,243,43,182,125,38,178,114,224,65,153,185,208,86,94,8,54,203,254,88,149,98,79,77,41,102,198,196,127,205,152,56,22,19,223,99,88,241,67,117,241,23,213,173,61,6,18,4,184,193,33,87,13,234,152,31,224,83,234,111,146,222,112,118,11,99,150,92,123,39,160,254,22,100,47,194,246,194,89,66,31,103,146,114,77,7,138,143,12,103,23,18,110,213,63,252,147,107,190,3,10,23,7,196,132,54,73,176,116,171,188,50,1,212,13,195,54,192,13,163,65,183,65,216,3,10,108,30,132,255,33,183,98,166,153,1,81,93,150,49,171,252,47,52,5,160,13,67,56,51,8,201,55,32,161,61,204,234,64,142,117,199,32,91,4,42,49,0,4,141,101,129,41,181,193,141,147,245,217,255,116,16,40,24,250,4,2,23,74,8,141,69,105,30,207,83,70,19,120,176,123,176, -203,72,24,254,100,245,39,5,188,112,17,78,2,164,251,77,128,46,99,193,234,160,1,164,182,134,171,163,222,154,96,170,92,200,81,193,1,240,170,75,146,246,0,245,48,62,43,92,200,223,193,215,124,248,94,9,224,222,137,143,176,184,240,101,168,252,183,202,63,240,108,19,66,199,224,146,87,41,1,222,206,228,137,63,179,167,4,156,7,17,142,64,129,211,80,154,141,84,89,195,224,248,123,2,227,23,165,212,216,1,70,32,171,10,58,147,8,10,214,140,68,200,251,132,56,229,201,203,250,207,170,127,130,234,37,84,103,80,25,144,147,127,187,46,181,226,135,141,127,47,56,190,180,133,178,169,14,193,2,65,212,143,74,7,190,26,144,164,49,122,15,68,121,249,32,104,186,7,48,105,1,14,166,0,61,100,6,194,52,154,133,72,149,96,50,108,48,187,56,12,7,30,153,196,71,34,136,80,232,8,166,202,175,49,7,118,21,226,85,4,136,170,124,124,249,153,64,248,138,70,224,94,16,45,191,242,160,27,109,226,195,88,248,101,56,135,0,57,198,192,243,70,40,112,236,137, -102,54,195,166,111,216,28,12,165,205,196,176,89,27,72,48,63,252,29,250,32,255,28,188,58,253,83,92,239,70,229,21,148,241,212,166,69,242,145,185,61,10,143,122,227,227,144,38,106,167,71,198,255,178,25,196,184,23,247,201,243,59,5,141,226,163,91,175,208,48,108,67,128,75,111,208,97,210,22,110,46,103,18,97,89,197,44,94,124,81,164,153,4,82,138,6,140,99,89,4,235,207,121,0,95,141,5,212,240,6,88,109,32,224,24,233,178,164,14,218,36,13,239,159,12,248,183,79,125,227,242,164,216,139,62,29,188,105,44,24,117,27,123,57,123,59,34,151,253,24,0,229,161,208,120,190,34,209,210,119,158,44,235,158,134,66,207,142,120,226,93,63,187,77,246,219,207,249,238,126,178,246,37,14,103,254,205,77,124,102,249,200,151,45,244,214,164,10,221,254,193,206,125,178,241,209,55,180,208,253,227,30,106,156,103,37,250,22,210,131,239,22,240,158,253,110,252,150,203,154,253,144,95,75,27,166,138,238,68,193,125,11,37,238,123,251,113,25,134,86,162,35,44,125,176,77, -248,145,154,120,230,69,124,230,251,108,242,24,140,117,5,99,113,146,108,83,140,77,72,108,16,26,57,10,32,227,185,102,93,245,180,32,15,48,40,190,17,113,199,83,117,200,179,57,193,46,41,12,149,16,177,4,29,101,54,82,105,14,208,117,36,101,192,71,175,255,59,23,151,56,78,58,144,156,133,164,237,129,106,56,3,130,183,89,182,171,2,37,237,222,100,44,199,46,17,188,88,201,107,156,227,128,23,240,111,31,214,21,175,81,181,56,206,23,148,174,3,161,201,28,249,140,118,191,177,133,218,224,112,228,62,28,109,68,87,25,172,245,160,27,43,247,177,68,116,153,154,96,109,177,177,242,11,23,14,241,113,68,250,174,46,104,55,3,94,87,222,224,245,8,188,118,118,142,231,240,250,254,117,110,11,43,202,55,86,174,85,137,47,191,159,221,6,51,241,28,101,98,112,52,183,194,56,101,143,225,100,157,58,50,102,45,106,144,96,71,129,4,155,173,156,176,102,27,84,122,242,149,88,1,222,112,116,72,170,123,226,72,156,183,193,172,123,195,247,56,242,4,103,172,25,132, -162,100,105,24,49,226,75,9,190,46,202,126,21,143,50,196,60,108,180,14,49,85,16,70,199,253,50,201,13,40,6,104,23,215,90,136,159,130,198,114,86,14,234,128,133,5,161,238,97,5,119,239,144,12,126,76,145,249,22,67,67,17,231,48,192,71,132,16,200,239,52,192,135,65,145,210,206,11,186,22,78,188,165,205,137,119,113,19,61,150,54,178,147,245,218,67,199,245,178,118,111,30,58,213,170,215,30,89,47,171,139,59,247,236,197,223,59,78,215,115,189,244,217,111,205,238,125,214,189,239,186,203,251,162,123,31,230,238,166,77,238,126,206,113,253,85,184,159,254,17,60,128,107,231,86,49,227,137,141,69,230,108,159,16,248,158,65,206,147,96,67,188,33,227,44,20,13,16,9,128,41,253,20,174,80,188,94,86,65,7,160,169,78,210,120,70,5,69,118,196,45,154,32,167,185,112,115,130,194,46,5,88,203,4,26,250,172,205,250,201,97,57,68,122,198,228,197,35,178,33,204,43,126,168,123,247,21,244,244,100,227,0,68,203,2,99,160,86,124,78,17,144,5,189,224,225, -15,178,236,96,185,55,68,55,132,12,61,27,4,28,105,209,61,2,242,107,129,0,244,188,175,124,207,243,223,218,231,70,30,214,238,183,251,212,230,223,87,132,150,247,124,23,184,151,57,102,219,245,183,250,221,219,133,107,39,247,212,194,223,151,171,27,223,157,253,211,215,10,78,205,113,165,230,127,223,225,217,103,250,239,117,247,204,95,134,185,207,253,61,207,10,33,66,121,153,61,166,57,12,191,108,219,239,93,174,9,81,134,210,123,26,71,141,26,143,20,17,154,47,255,229,33,113,13,105,40,192,82,65,17,69,193,146,170,148,120,101,234,193,66,128,61,145,24,155,37,85,49,195,26,209,48,75,172,140,104,196,102,212,62,169,17,250,48,149,93,133,147,252,123,37,38,65,67,7,96,85,208,67,103,185,69,227,2,238,31,79,121,173,112,69,240,4,35,205,249,131,123,217,240,177,78,210,59,161,247,211,207,25,97,195,59,193,19,52,24,254,38,221,189,253,48,253,234,240,165,177,208,223,4,209,118,197,148,246,108,65,188,183,172,93,215,198,137,175,115,19,24,173,118,108,175, -151,78,107,181,130,99,62,169,31,203,224,165,99,118,230,89,221,191,132,154,155,192,116,19,150,127,110,130,210,77,136,153,220,4,100,35,198,108,96,98,47,218,35,153,28,217,178,224,202,88,170,149,8,176,161,180,169,158,101,129,99,56,106,143,193,55,166,9,236,40,53,133,136,118,193,0,171,40,125,70,89,130,30,101,154,215,15,70,127,113,217,104,33,213,37,67,5,69,209,96,195,69,36,71,89,116,142,40,24,212,245,160,58,8,94,30,216,58,112,196,34,82,170,104,19,65,26,125,90,26,205,0,226,43,96,1,10,57,219,191,3,35,18,24,186,229,91,17,209,35,217,246,239,192,232,164,26,252,234,151,36,220,162,209,190,5,187,4,29,243,16,91,212,93,231,69,91,148,221,199,170,198,193,188,182,110,52,44,182,170,78,119,137,204,231,213,6,199,146,177,69,117,186,224,92,83,235,218,42,203,230,204,214,89,86,154,54,245,178,185,76,45,155,251,101,179,100,91,54,165,186,230,83,215,108,50,155,182,79,41,6,214,197,143,34,75,231,191,62,226,126,60,64,168,192,21, -242,86,235,26,178,180,108,68,73,14,69,248,186,211,184,39,87,31,76,224,168,80,65,63,64,78,93,104,233,132,107,132,219,68,120,9,126,0,213,9,237,168,50,206,106,81,51,183,58,17,189,209,81,50,182,121,73,131,180,96,211,113,128,224,195,186,63,177,196,135,131,56,136,82,24,172,191,82,210,34,39,43,172,60,165,7,0,13,167,1,245,248,123,146,216,186,79,5,68,172,60,231,174,15,118,109,78,230,97,225,230,186,131,53,155,115,191,111,182,130,11,118,211,206,78,47,155,227,170,110,127,78,49,156,215,84,203,18,30,173,90,38,251,130,125,156,219,51,71,238,184,241,200,236,143,138,107,69,177,116,206,74,143,126,233,17,93,148,30,225,193,75,246,50,118,107,44,127,153,181,254,212,92,127,92,149,6,169,12,61,119,242,24,15,240,218,38,19,46,129,100,151,193,161,92,157,201,210,168,188,101,151,12,58,37,50,141,161,60,134,144,230,54,113,186,168,34,144,219,77,243,136,1,191,174,212,252,183,188,186,185,247,111,125,217,34,27,202,248,44,16,148,236,15,152,156, -216,126,194,168,83,140,25,17,156,21,45,105,96,85,11,90,1,226,225,113,212,166,194,104,193,152,162,1,3,171,33,25,74,154,138,160,1,116,11,214,186,10,213,103,121,28,190,43,88,83,124,252,46,108,146,94,114,74,220,73,169,194,106,88,20,99,60,89,149,24,204,90,6,43,98,193,154,217,211,71,238,94,209,192,151,50,8,85,242,22,42,91,123,55,167,172,119,243,173,110,182,85,241,102,90,221,28,43,151,220,191,186,237,188,79,225,23,233,47,17,124,83,138,133,15,247,12,57,226,138,6,28,16,21,205,167,146,115,201,111,21,229,13,186,123,162,226,35,24,198,76,109,129,181,177,184,184,204,188,35,199,71,111,148,172,243,43,58,199,85,100,109,231,0,83,20,143,100,124,240,128,210,8,99,227,9,202,68,117,181,32,199,112,77,51,202,150,5,74,64,13,83,151,124,112,73,73,64,183,125,42,7,42,21,1,48,28,149,51,32,13,72,224,127,235,66,163,240,3,225,4,238,229,234,162,171,188,181,183,104,121,149,174,42,126,41,90,238,219,117,76,163,138,207,120,102, -3,106,163,254,101,203,218,190,240,199,217,128,127,108,212,53,182,234,23,62,83,153,13,52,214,65,229,205,217,70,56,219,43,231,189,157,114,182,91,206,246,187,199,217,126,174,51,109,243,232,7,157,196,226,215,7,157,135,116,51,87,179,50,45,185,105,113,217,85,52,126,221,178,140,213,164,203,23,154,184,76,153,197,233,215,44,193,250,95,226,235,172,215,25,171,84,172,229,70,151,245,181,74,194,114,206,204,75,6,96,142,202,30,222,227,156,22,32,181,40,154,227,96,5,13,206,121,210,56,48,42,41,158,93,228,7,0,46,132,135,144,251,109,63,142,138,0,225,112,16,176,85,94,33,222,2,223,19,176,179,61,47,215,56,62,234,234,160,157,54,131,77,142,220,119,164,207,126,43,246,61,84,81,121,14,212,62,71,175,210,245,171,191,155,185,74,77,63,153,87,15,163,138,230,86,211,220,212,54,250,51,69,127,238,233,205,167,153,254,164,210,159,4,41,253,5,78,190,115,119,249,251,71,158,19,66,212,111,218,167,76,136,6,163,198,135,92,251,103,202,204,86,57,21,9,214, -8,188,158,150,147,39,17,46,23,119,44,207,150,169,57,31,87,137,38,171,114,186,97,224,156,150,236,225,122,126,168,69,89,104,148,76,199,60,206,47,16,19,68,70,28,40,133,93,86,248,73,81,128,5,116,84,105,96,107,65,68,225,115,151,131,108,193,33,72,184,122,165,130,135,128,203,196,155,58,176,198,84,160,174,32,134,57,105,21,142,36,53,169,237,158,148,166,141,96,5,155,172,225,56,101,87,33,58,106,67,191,186,85,122,69,55,159,49,143,86,123,202,53,27,181,53,163,87,187,98,90,141,40,171,119,132,178,250,165,172,166,111,202,106,75,89,21,40,239,85,144,178,234,80,86,170,189,188,253,97,200,251,207,71,219,192,27,147,38,89,187,156,105,42,99,181,4,111,60,78,165,21,151,101,94,210,100,173,209,250,79,166,152,215,224,42,106,214,168,31,178,132,235,195,176,150,52,151,200,7,2,139,49,246,21,49,227,216,21,153,168,26,46,77,48,40,163,170,94,201,138,156,113,78,108,16,198,88,49,146,104,222,192,41,162,135,44,128,132,7,189,70,5,202,63,148, -137,184,135,133,174,192,23,65,45,80,134,45,239,138,91,181,51,62,55,88,146,216,200,22,154,118,54,103,90,143,88,66,121,9,177,141,131,77,183,87,244,180,138,116,141,102,222,215,202,251,234,249,176,175,155,247,149,102,66,223,151,149,72,111,32,147,237,229,83,126,210,23,239,114,103,145,251,145,166,217,86,50,162,0,98,238,74,95,72,131,100,102,205,120,197,160,175,147,84,37,157,81,222,104,231,140,148,100,142,46,83,48,74,58,249,176,33,171,134,177,42,26,27,119,237,31,139,188,193,136,97,52,127,116,21,43,63,78,147,213,5,25,71,1,196,209,163,25,207,200,71,68,11,113,202,132,5,194,139,217,156,22,13,159,17,253,59,134,101,126,169,5,101,188,43,160,12,52,85,83,208,82,132,183,60,33,12,185,130,205,170,69,45,224,232,53,3,253,18,10,107,101,112,227,154,57,103,120,10,142,135,83,162,148,51,211,78,118,218,89,166,167,130,220,84,144,81,76,5,217,207,79,179,162,32,51,19,164,103,62,33,167,210,226,87,30,190,156,38,33,132,188,165,114,181,73, -25,208,85,191,209,153,170,94,167,104,36,204,86,117,85,222,200,26,100,241,58,249,51,143,203,21,101,57,43,103,141,53,178,213,156,130,211,251,162,116,25,229,146,74,193,162,218,18,216,25,26,193,51,254,9,44,34,193,0,39,113,145,163,6,177,12,193,42,155,44,40,196,56,242,108,127,17,143,18,129,83,93,230,30,197,217,124,48,13,85,55,11,220,9,92,55,21,177,45,153,60,94,148,239,69,219,196,89,96,105,199,185,16,249,47,13,61,56,171,97,142,244,139,170,145,247,231,191,132,154,242,50,71,155,41,49,71,170,109,122,148,78,143,161,105,243,248,156,30,189,211,227,31,179,52,235,102,53,251,111,37,176,150,151,199,180,153,86,83,46,239,48,242,40,14,171,149,207,196,116,140,41,228,49,94,166,250,118,104,161,102,195,105,152,100,185,244,185,174,174,100,135,106,180,236,154,204,150,89,127,56,121,166,32,181,226,200,209,77,81,59,99,163,196,33,40,14,220,111,34,102,127,7,113,167,108,9,125,125,173,202,112,151,161,128,52,102,172,80,91,161,140,105,228,247,180, -10,9,198,9,66,191,144,71,190,232,68,81,179,203,21,29,180,70,85,171,55,59,74,241,216,47,30,31,69,229,17,199,202,123,249,121,138,151,157,247,114,242,94,52,47,239,101,229,159,86,174,216,101,23,223,118,63,165,99,10,93,249,36,64,56,245,47,1,146,10,114,230,207,108,23,174,108,137,16,110,78,40,14,89,211,172,33,146,238,112,210,20,3,57,249,97,17,79,162,194,74,137,121,35,156,88,198,25,103,52,72,150,215,84,254,60,166,42,69,125,226,124,209,111,160,168,252,13,77,162,109,92,214,214,135,124,162,248,133,231,90,37,12,231,23,219,18,17,71,243,34,86,173,10,134,186,242,216,89,192,218,186,192,213,81,218,119,144,142,53,142,246,155,69,58,113,61,164,175,195,244,85,118,73,95,39,233,235,6,146,190,2,229,235,187,28,184,174,203,215,243,167,69,190,118,76,105,242,65,81,93,154,255,158,212,141,41,219,248,25,26,192,113,69,134,8,180,165,116,164,121,66,23,132,81,214,72,20,38,8,50,46,244,29,14,203,197,56,83,121,13,133,61,138,1,245, -139,87,126,134,29,95,246,74,159,40,117,79,211,133,136,113,50,60,24,26,232,130,161,192,157,141,44,162,177,50,136,146,160,173,18,132,182,76,156,161,122,106,70,170,12,154,29,48,101,240,155,25,38,245,35,164,126,220,121,65,8,8,42,65,28,167,18,64,99,33,204,8,25,194,124,218,189,104,138,212,76,145,54,123,217,79,177,251,123,118,31,98,102,75,222,24,74,241,242,225,251,97,62,74,141,68,191,241,237,158,165,244,203,122,200,184,189,5,2,77,137,126,39,76,184,241,131,69,194,201,38,185,252,31,83,205,100,101,11,212,160,218,29,98,26,15,42,148,185,130,148,122,19,209,130,213,216,40,89,13,28,48,58,88,160,206,134,150,152,232,38,3,95,249,106,90,196,250,197,241,252,84,136,79,9,19,128,95,8,223,2,176,18,64,23,148,63,239,150,242,13,19,156,158,9,225,33,177,62,39,222,254,25,181,59,255,180,37,245,253,171,124,75,24,185,87,202,119,253,123,14,118,15,21,234,99,221,41,42,210,104,14,173,177,120,36,156,98,238,255,233,166,171,80,83,103, -113,211,191,243,153,153,210,101,154,206,211,10,169,42,87,22,24,197,186,144,70,195,156,17,18,21,158,90,21,26,156,115,114,68,249,136,115,17,202,214,54,115,150,183,122,7,116,41,102,34,233,68,36,204,137,243,134,16,176,37,202,176,114,97,188,148,97,2,8,18,120,41,83,11,77,246,215,187,177,187,74,167,145,114,129,205,166,126,255,248,166,238,33,30,121,69,144,218,55,166,101,248,39,219,92,250,149,152,239,60,202,142,138,121,198,223,104,86,26,110,211,110,238,108,236,21,39,253,86,161,177,140,75,36,85,83,167,241,113,93,56,171,131,61,131,233,152,234,82,211,155,204,211,103,242,130,86,114,35,207,156,3,182,106,160,186,21,31,83,163,250,6,19,72,144,128,239,120,193,180,164,28,215,170,13,249,230,186,124,32,161,199,126,124,154,84,115,230,48,211,22,90,143,207,125,77,161,127,168,242,41,21,63,173,2,240,118,72,115,42,160,125,201,15,74,28,69,5,56,18,52,215,1,117,45,26,174,193,119,240,26,220,210,193,74,208,224,114,193,56,8,255,207,56,145,165, -193,78,13,65,195,203,195,21,128,249,161,138,1,14,34,49,7,142,5,183,180,13,239,255,140,142,231,76,229,216,82,143,158,150,56,249,176,149,149,102,22,164,248,224,64,237,55,116,179,155,122,141,23,111,37,27,114,246,180,251,95,213,56,70,191,181,159,223,250,151,231,79,201,131,116,253,247,156,255,111,69,175,72,138,155,92,196,210,211,56,246,180,13,173,245,122,127,104,254,236,127,26,129,128,7,238,129,211,37,252,9,237,177,66,66,232,26,18,68,184,46,191,189,245,28,248,60,192,100,130,140,156,255,46,94,207,151,136,29,87,120,193,92,48,52,117,172,160,186,120,51,12,176,211,147,220,53,166,187,18,233,20,213,244,55,46,90,107,252,249,72,98,212,144,131,167,122,33,18,253,97,114,150,118,180,161,180,173,167,121,224,246,223,204,231,174,169,253,32,144,190,15,220,94,168,158,37,172,12,53,134,24,62,29,229,8,63,136,59,251,46,61,141,112,180,92,112,73,170,46,48,47,196,53,107,209,195,19,215,200,138,28,181,37,175,220,194,110,252,84,202,251,106,149,224,200, -26,123,224,66,109,191,212,222,196,88,127,195,34,233,143,199,94,8,122,82,94,59,7,103,19,223,111,111,166,159,232,41,58,173,141,233,223,243,40,1,226,189,91,186,190,144,107,56,11,223,115,59,131,157,230,115,70,27,118,168,206,253,215,184,251,251,137,195,248,239,243,208,57,67,238,45,135,153,133,11,20,165,27,86,156,59,23,204,46,77,121,188,184,228,152,218,117,128,251,67,158,247,245,126,212,200,190,117,161,57,100,223,242,147,71,171,132,199,69,21,64,86,107,76,206,29,20,190,95,71,254,3,137,111,33,190,190,224,214,223,71,219,188,26,211,249,58,136,255,229,10,200,179,195,224,248,182,122,168,247,67,90,249,171,95,218,48,79,255,46,63,156,32,179,82,84,164,209,33,125,134,223,31,45,145,172,240,152,167,157,253,108,221,46,227,227,197,27,23,12,229,244,217,109,142,195,179,67,43,2,13,97,3,179,194,223,182,4,251,15,55,23,5,199,232,212,255,131,139,223,2,45,253,12,148,2,146,103,242,131,40,61,45,171,250,58,208,117,26,151,230,133,209,251,54,53, -71,237,200,249,107,155,41,178,41,112,91,47,219,238,231,184,82,60,255,170,93,175,204,231,215,95,180,184,7,176,181,167,69,81,251,78,82,194,71,173,29,173,44,153,60,233,237,135,81,21,6,106,66,170,228,250,148,90,167,106,25,220,105,246,233,123,224,175,201,77,83,115,93,36,37,80,42,199,109,131,125,93,112,185,147,222,47,93,201,68,176,1,43,166,22,179,20,69,224,71,97,244,126,9,246,59,109,131,255,184,246,126,121,91,33,114,82,143,70,57,79,180,183,226,147,201,160,143,61,251,158,244,177,217,36,216,140,104,143,48,38,145,174,168,92,98,138,255,195,188,123,244,182,182,101,105,130,127,229,142,10,153,141,64,86,101,2,221,131,74,20,80,168,73,21,208,131,6,170,128,26,116,34,145,253,34,227,161,50,50,226,197,11,60,19,64,230,136,60,34,37,138,20,157,68,145,148,232,61,41,122,35,122,43,146,34,37,122,239,157,232,61,69,239,217,135,212,85,68,118,85,79,186,209,131,190,128,238,209,229,217,123,237,111,125,235,91,230,240,226,20,71,196,219,49,51, -170,205,228,136,90,245,16,234,221,4,231,243,9,215,77,67,108,242,150,114,55,36,233,215,31,58,190,240,65,121,118,85,242,190,215,25,219,203,135,24,46,127,37,51,208,57,180,48,103,126,96,117,119,177,219,59,64,146,51,152,177,46,140,232,122,147,53,104,11,179,123,89,250,108,133,175,106,162,157,144,228,166,255,208,65,221,121,25,222,226,33,114,6,218,120,57,26,137,65,186,151,193,35,196,217,129,224,232,198,94,240,192,92,101,90,76,28,217,17,81,178,100,14,106,61,56,67,128,16,159,179,61,187,21,79,16,104,36,120,15,182,80,23,34,152,9,61,239,4,248,92,48,61,147,175,94,145,215,221,48,47,197,134,249,136,212,121,2,42,26,46,149,163,67,105,84,217,138,188,90,73,170,65,142,123,13,152,136,40,134,91,112,178,146,212,173,112,239,212,24,82,101,228,248,194,200,238,143,8,178,101,148,199,101,26,206,105,38,178,136,22,78,100,247,47,177,59,220,138,25,173,121,29,143,201,42,254,14,45,9,136,175,111,102,61,103,43,17,176,8,71,6,137,161,124,95, -23,219,60,53,249,246,118,132,106,103,47,207,75,232,53,193,110,156,72,230,196,168,114,227,155,230,153,144,10,18,105,195,181,99,171,193,189,160,27,125,13,82,40,0,21,43,94,49,242,99,158,220,150,38,212,230,180,10,88,9,42,103,75,249,10,121,141,138,40,55,215,216,96,47,152,155,99,40,145,11,63,251,37,88,73,214,165,166,238,14,190,183,225,136,130,189,249,86,79,42,110,139,3,66,171,61,226,5,29,183,221,136,132,183,33,228,51,70,2,165,70,115,15,81,134,140,136,180,65,90,154,116,40,107,168,8,205,163,52,209,187,229,1,222,51,61,236,227,79,13,60,119,214,36,70,104,38,120,219,77,74,80,104,81,180,21,38,194,49,146,52,31,161,55,28,87,177,26,145,208,213,46,10,244,47,189,97,221,210,157,39,207,215,98,80,91,174,216,104,246,54,125,210,236,80,105,202,192,40,199,128,105,73,122,93,51,185,75,67,189,16,153,53,165,248,173,150,84,66,18,188,80,48,192,60,51,169,166,163,89,122,53,220,200,14,139,79,143,194,141,220,139,244,15,100,195, -89,142,23,36,16,86,126,174,5,130,187,45,28,220,164,210,80,159,119,248,241,233,94,104,65,188,7,74,94,60,2,104,51,16,200,225,245,158,30,123,149,130,130,85,218,68,111,200,209,129,116,239,189,6,48,98,137,153,0,167,122,98,246,119,115,252,227,202,131,121,29,74,193,152,199,218,85,218,200,163,194,171,40,155,136,247,234,152,173,131,205,162,105,119,43,7,60,211,8,225,16,123,61,144,0,21,77,68,220,122,237,31,128,230,1,17,147,64,232,159,65,232,39,28,135,78,44,26,29,101,14,114,196,96,130,92,174,93,140,232,226,93,7,223,31,28,90,172,191,132,47,116,8,186,209,12,97,29,188,13,31,94,149,34,125,172,38,88,19,75,165,247,247,27,13,153,130,144,30,243,130,91,152,91,120,239,209,162,46,83,23,218,250,158,250,172,16,139,187,214,246,53,41,3,76,136,140,89,121,141,202,196,162,14,27,109,240,74,3,36,28,255,64,231,167,144,106,166,142,70,95,136,92,188,61,188,76,128,196,206,208,17,107,225,76,6,152,8,34,47,85,154,126,154,19,166, -163,225,90,42,138,218,7,161,93,54,143,51,236,225,84,4,193,100,200,93,240,153,125,123,179,129,180,154,129,235,106,156,241,8,95,161,66,241,200,1,42,194,117,70,200,161,180,203,101,78,112,87,200,144,131,214,11,65,59,43,236,211,32,217,131,54,188,98,179,89,132,123,224,239,43,207,215,68,6,181,130,86,17,14,221,219,149,119,230,200,2,99,170,104,231,231,175,94,140,18,55,182,41,179,141,58,190,248,232,0,218,231,46,159,180,88,135,231,192,159,18,43,102,163,108,68,228,193,239,90,103,161,228,173,237,19,103,78,184,138,136,112,243,209,80,112,59,182,201,188,185,76,104,121,117,189,173,21,146,169,55,20,205,11,215,137,22,157,208,206,78,152,37,200,239,172,221,11,5,216,47,248,211,172,200,187,173,95,9,250,254,24,189,50,126,99,32,176,165,235,139,93,56,179,18,68,161,19,145,200,206,127,217,185,121,76,88,191,172,198,204,88,28,191,188,242,174,139,213,45,243,238,115,138,179,214,31,245,208,22,121,55,11,170,107,161,122,28,83,17,98,81,81,238,45,108, -251,182,99,117,179,5,20,123,184,110,39,111,171,248,85,44,237,234,154,142,64,50,78,159,139,120,181,87,199,202,196,174,64,23,199,98,105,92,82,174,163,160,88,55,246,120,112,121,51,34,39,7,59,24,168,137,128,200,141,196,232,101,170,17,88,194,175,192,26,254,254,167,107,62,156,69,90,41,101,81,153,96,53,40,206,221,216,5,233,193,86,21,149,173,25,161,249,67,136,31,87,156,234,250,158,145,174,110,246,177,183,3,100,202,145,74,135,35,51,188,45,210,183,171,231,49,62,241,17,158,177,89,223,14,239,143,53,15,27,156,51,198,220,50,31,251,22,125,201,141,103,11,127,16,108,243,58,219,126,170,88,34,145,126,199,240,112,182,168,122,36,30,228,96,97,214,170,102,12,1,179,15,33,108,71,120,223,93,23,160,200,229,230,66,200,135,7,66,91,185,240,250,25,108,223,11,219,214,133,1,173,61,119,197,57,211,34,22,179,31,48,66,130,26,174,119,29,60,34,125,10,57,48,130,38,170,160,141,33,114,63,170,108,24,175,15,43,217,181,175,112,51,51,17,198,220, -115,123,182,120,73,19,205,180,11,89,106,71,7,128,98,116,68,137,66,51,248,11,43,205,16,49,26,98,102,102,125,248,154,228,116,159,167,39,3,48,196,45,194,87,193,200,134,114,178,246,194,34,121,164,134,69,194,200,5,124,158,216,144,122,245,236,227,157,78,64,122,216,128,115,133,154,14,175,95,218,67,188,224,206,145,152,108,31,250,249,166,206,220,217,216,204,27,200,113,172,225,5,28,51,168,122,229,148,237,70,168,193,132,80,11,56,198,126,71,246,165,80,73,154,172,245,133,130,196,35,114,230,112,94,75,146,19,249,55,253,110,97,83,41,52,207,69,122,7,33,63,171,45,213,186,215,11,1,68,144,99,226,8,219,54,182,4,39,197,199,186,230,60,68,73,246,163,94,60,112,105,51,17,147,156,26,169,157,75,53,104,48,255,230,38,198,5,225,172,98,35,223,100,193,80,230,69,250,97,59,251,154,4,29,125,52,139,188,121,241,161,234,184,230,192,117,197,92,230,198,200,224,193,19,102,56,24,47,198,193,147,25,36,78,176,74,251,212,178,139,77,99,8,121,196,178, -95,239,90,67,142,203,1,136,226,144,179,66,248,71,71,12,81,233,232,229,81,67,200,47,147,90,223,138,9,246,123,97,140,169,41,46,232,0,28,115,115,148,81,232,252,67,62,13,47,146,62,216,115,97,149,156,122,102,19,176,116,13,49,56,78,94,218,23,135,81,57,54,90,188,111,54,135,220,97,186,26,203,15,135,140,95,30,205,223,173,195,74,212,24,155,82,223,54,42,99,79,15,105,208,105,123,37,242,234,144,146,221,88,237,67,73,171,145,169,111,150,150,98,211,162,235,117,177,143,92,155,18,215,25,250,199,16,164,237,208,2,179,125,20,198,110,219,41,83,225,176,20,52,210,140,22,146,190,207,173,227,23,238,248,66,31,65,172,134,42,194,28,157,128,27,69,53,138,58,62,42,76,43,58,223,250,80,226,157,139,133,169,76,87,232,199,177,30,227,164,249,141,175,184,139,203,14,104,120,208,128,124,58,183,149,223,229,193,169,107,15,29,196,119,214,238,61,224,57,32,139,217,113,94,208,59,156,177,47,194,200,167,127,245,183,127,243,227,95,254,245,191,254,242,55,255, -250,203,255,238,100,253,246,123,183,245,55,223,124,249,219,255,252,31,255,195,241,198,191,249,235,127,241,225,207,223,129,87,55,226,231,127,252,246,203,31,156,150,95,186,40,63,124,249,229,55,63,252,225,159,190,252,254,251,239,190,255,123,167,244,203,79,238,59,240,239,223,127,255,227,207,127,248,157,83,250,27,183,252,203,207,191,114,178,254,240,205,63,58,165,224,237,191,255,135,47,191,63,46,248,238,251,47,255,252,205,143,63,125,255,243,239,191,5,87,29,77,124,11,46,183,128,183,127,60,30,244,237,111,190,252,231,95,124,249,143,191,248,242,31,190,252,153,11,253,237,15,127,0,87,177,126,241,229,159,191,253,237,199,47,223,125,255,171,31,156,172,63,255,139,47,255,235,55,110,235,175,156,150,63,157,247,229,159,191,255,229,15,223,252,243,9,223,183,191,250,237,183,95,126,252,246,151,223,126,249,213,31,190,57,26,254,249,247,127,15,126,240,119,159,167,125,247,229,191,253,240,205,175,126,253,237,239,126,250,246,187,127,251,225,233,175,255,242,127,254,55,127,253,191,129,30, -255,205,255,244,229,183,223,130,30,126,108,251,246,239,255,246,203,247,191,252,241,155,127,56,218,253,220,244,11,240,132,47,191,249,233,219,31,156,162,239,192,99,190,124,243,155,159,126,6,121,250,234,15,120,226,111,190,255,238,151,191,254,221,113,203,143,127,247,131,91,254,207,167,35,255,133,219,223,125,250,45,250,240,250,55,255,244,65,206,143,191,253,217,205,2,63,253,135,239,255,228,215,207,127,253,63,2,252,253,15,223,252,95,16,254,201,245,79,136,95,92,232,95,255,248,19,104,255,51,70,159,214,254,226,107,96,63,46,255,238,203,191,255,247,191,254,238,155,255,246,237,191,253,203,255,229,47,255,234,95,253,213,95,253,229,95,65,206,0,232,27,20,2,57,163,239,33,224,159,165,135,218,167,93,46,227,137,179,194,1,235,32,70,112,162,12,236,106,195,54,245,16,72,192,49,183,224,175,169,215,8,28,14,214,131,117,16,0,2,17,143,39,235,252,89,187,155,19,39,180,217,212,126,215,181,154,15,86,173,54,153,173,207,206,134,221,77,14,119,123,118,5,187,124,185,123, -116,50,219,57,24,206,191,9,230,221,53,149,127,29,82,149,118,6,245,139,33,212,188,27,54,131,119,148,82,112,113,145,159,220,153,38,234,73,55,22,30,185,159,136,135,166,184,128,116,94,169,150,65,74,80,245,246,156,36,58,175,185,177,26,141,215,158,19,103,218,2,159,198,141,229,188,70,84,166,92,229,138,41,247,233,92,228,33,38,188,90,71,165,17,44,175,73,55,140,25,210,232,64,249,158,171,19,83,200,210,203,227,211,192,152,37,230,72,55,110,130,51,185,180,23,80,195,82,77,160,219,50,6,35,181,240,198,166,175,22,251,2,26,105,29,24,116,91,7,102,51,29,118,162,117,150,164,162,93,141,156,191,132,52,254,229,212,32,24,164,168,57,6,105,140,50,58,52,55,76,100,89,83,94,146,217,243,48,172,27,17,176,230,93,50,214,218,150,195,2,13,226,57,37,71,211,21,107,72,54,238,133,177,22,227,34,55,141,42,210,213,147,234,58,154,238,70,203,227,147,158,112,140,49,25,85,237,48,108,87,55,79,110,75,57,194,190,148,246,146,162,137,190,148,16,168, -215,91,165,36,24,68,39,91,123,109,138,102,191,239,72,26,157,105,118,127,233,72,38,61,184,59,18,22,89,27,56,154,181,250,221,139,49,153,148,9,0,199,56,40,158,42,56,89,82,242,177,52,222,67,87,142,129,49,110,223,55,207,156,133,166,46,152,229,24,217,218,121,254,238,221,98,34,8,115,175,182,43,94,33,57,228,208,178,143,112,99,32,110,224,55,163,178,242,147,63,184,26,206,87,143,253,201,67,182,88,143,227,209,137,26,237,189,59,223,61,154,114,233,192,117,36,227,61,191,176,153,235,210,151,249,51,41,122,144,192,149,70,170,255,144,186,118,221,230,181,229,21,195,230,53,222,144,42,114,241,94,221,123,192,251,225,211,219,1,140,177,228,72,236,190,123,67,226,250,18,6,9,96,130,13,248,38,151,120,45,90,20,75,83,236,238,177,17,84,137,240,90,184,37,145,54,101,206,55,24,159,73,165,41,108,47,169,153,228,83,169,210,25,174,151,119,64,108,79,154,70,119,52,177,98,53,220,166,35,13,71,84,249,156,127,114,133,243,173,218,100,70,175,107,158,205, -177,45,5,88,204,178,103,218,23,215,204,206,55,92,116,96,139,220,125,45,48,49,183,181,244,174,48,70,15,172,206,133,27,19,78,160,121,34,236,203,55,140,200,6,254,204,184,53,48,38,147,167,253,94,18,30,145,87,102,248,115,159,73,151,188,46,186,12,117,135,207,125,172,220,219,76,62,107,243,86,237,206,13,227,4,139,52,210,183,177,145,147,100,134,173,243,223,53,145,69,125,108,106,206,214,35,98,1,170,56,159,41,114,74,56,65,146,96,117,240,152,174,223,80,11,37,201,193,67,115,56,151,160,109,188,197,37,82,131,17,201,154,203,219,58,132,118,237,155,28,6,74,173,193,133,34,208,122,138,122,236,241,32,216,189,10,40,59,178,13,135,31,142,138,168,115,219,155,15,232,220,197,128,126,195,20,216,31,80,221,188,168,142,92,245,229,52,10,155,212,23,106,239,45,194,208,45,171,26,240,207,99,50,210,67,245,101,158,244,103,138,74,235,139,221,106,76,105,85,57,174,86,18,51,154,125,70,21,247,172,114,167,137,168,58,194,194,182,106,140,161,83,34,77,233,62, -107,18,89,204,155,167,151,52,119,200,210,218,138,70,190,192,213,144,94,111,124,185,203,118,33,90,8,81,125,75,205,218,186,242,4,151,27,106,209,55,79,4,114,5,29,181,60,44,244,76,122,53,97,49,226,247,164,117,63,82,34,164,221,22,76,194,67,223,31,55,71,157,30,185,56,19,26,235,20,98,188,1,32,5,111,227,230,193,152,212,47,94,249,48,136,218,196,97,22,45,46,57,1,170,71,39,101,82,226,77,245,171,206,95,35,184,121,254,10,55,32,65,79,25,9,213,40,204,226,186,69,77,36,86,141,215,191,1,15,112,167,173,54,161,216,114,216,116,151,189,39,232,130,151,153,86,27,154,98,52,59,189,84,222,251,174,41,13,252,182,49,68,201,179,84,201,214,5,111,255,192,210,50,91,179,87,93,198,212,23,15,116,2,178,185,156,211,132,140,155,71,210,236,25,211,213,244,19,196,156,46,203,31,40,227,126,153,194,95,236,89,175,13,33,51,43,167,225,123,80,69,66,81,203,157,201,226,7,238,141,133,68,59,180,117,61,219,98,171,162,198,165,79,116,220,194, -86,220,12,222,117,33,219,251,161,184,186,216,79,242,133,88,136,46,222,118,242,251,177,188,51,97,200,67,107,109,102,247,236,233,198,24,82,81,104,119,169,174,179,186,205,215,11,154,111,145,202,20,246,139,66,77,154,152,57,181,132,80,126,84,154,244,94,74,187,157,19,57,213,211,115,187,70,221,67,10,89,199,174,186,26,187,76,152,231,58,139,48,44,221,219,173,125,187,172,111,61,16,103,116,116,114,227,139,74,23,130,236,156,191,34,163,82,247,99,82,20,117,149,243,221,8,24,217,160,166,119,86,191,9,204,101,40,180,7,120,103,172,162,57,123,201,100,32,180,66,170,69,183,120,241,42,147,22,22,219,206,6,179,0,85,186,76,109,124,70,75,95,222,126,63,171,22,18,3,67,114,53,84,170,134,106,125,149,94,173,201,242,111,99,57,188,70,220,232,151,183,181,101,76,111,86,17,33,146,101,127,42,189,201,73,197,12,5,207,42,105,149,140,33,237,98,208,237,74,104,201,59,120,210,223,206,73,117,132,52,223,59,208,134,94,116,161,87,171,178,96,190,196,4,36,108, -198,109,209,42,121,236,89,237,209,151,162,15,147,215,170,187,114,119,136,216,30,19,107,230,226,33,190,57,52,25,43,39,156,97,37,204,247,37,84,115,110,205,79,6,57,57,25,209,180,142,247,103,40,220,42,93,220,101,157,51,145,59,248,238,98,24,83,249,38,181,106,19,12,178,149,153,176,137,174,91,72,59,111,233,242,89,133,34,78,80,189,252,197,56,104,93,199,19,107,74,40,190,159,11,48,77,198,80,188,172,9,118,51,86,95,123,49,150,46,240,117,5,190,183,104,100,39,11,110,102,193,187,215,69,5,247,200,100,56,48,137,130,19,170,201,220,139,11,187,177,245,132,237,7,30,206,213,229,81,147,36,229,150,139,138,5,186,195,72,33,50,173,254,170,164,138,212,81,209,37,162,183,9,177,119,65,39,109,174,176,204,228,94,237,217,118,30,219,56,12,161,59,175,3,234,128,203,13,242,91,255,180,188,120,161,29,114,217,116,17,245,178,181,23,43,165,146,57,99,156,22,115,182,241,78,187,50,25,128,97,76,167,92,13,105,212,215,166,197,224,81,201,124,92,179,214, -169,121,8,76,211,177,123,154,85,182,245,86,179,99,135,168,174,188,172,243,118,68,210,2,189,193,228,34,234,122,7,175,221,95,166,246,233,151,198,97,90,29,210,109,163,177,97,74,11,49,196,203,186,225,208,99,128,117,254,238,224,169,174,19,88,99,170,32,29,230,173,182,65,102,239,222,223,95,210,16,141,30,86,66,51,62,174,253,141,235,85,137,119,104,220,232,105,214,252,163,221,216,149,86,41,135,102,113,219,155,190,203,49,113,179,217,185,127,116,2,57,172,74,186,105,199,164,11,94,86,43,199,105,135,185,250,107,105,224,126,45,61,151,56,245,252,91,209,90,121,110,191,198,209,78,241,179,249,189,91,146,21,107,73,39,53,1,200,231,86,59,9,126,176,210,51,227,74,133,195,216,91,87,61,167,211,179,148,66,155,194,97,101,129,101,136,119,229,242,59,195,170,47,173,247,142,183,20,134,52,13,109,122,226,235,209,93,74,195,68,135,167,157,122,33,109,206,81,77,253,9,113,158,35,3,61,156,130,90,87,83,14,201,247,76,53,25,161,72,57,81,63,209,153,186,59, -151,42,209,102,191,210,45,227,239,238,130,47,154,210,67,76,39,185,210,207,11,212,3,193,2,248,18,236,222,53,223,42,111,153,155,171,201,166,4,173,33,97,59,155,169,61,240,245,93,129,68,85,117,211,130,220,50,12,185,114,41,67,111,45,87,22,204,117,105,208,68,198,197,135,74,83,106,138,73,115,215,207,254,213,187,102,131,47,172,245,186,237,238,106,28,47,181,37,150,70,104,72,108,241,66,198,59,205,187,175,13,123,31,6,201,229,220,6,216,51,222,57,78,191,199,185,221,94,155,26,134,139,117,38,60,114,92,160,107,25,57,105,149,102,206,151,121,138,14,107,42,162,21,86,221,104,184,208,57,18,16,6,94,163,122,112,177,9,150,117,99,170,221,245,159,49,27,63,109,222,134,230,122,49,84,239,102,146,236,87,85,61,142,46,107,124,230,103,46,100,234,43,110,182,138,9,104,23,185,100,127,64,169,89,89,145,64,94,23,137,47,18,43,61,250,146,151,10,172,154,226,136,186,241,136,200,121,28,61,154,114,35,31,9,86,93,33,46,14,188,83,218,93,126,79,70, -215,189,64,107,21,232,198,147,143,152,227,233,247,17,173,39,116,51,251,189,104,89,89,184,214,95,136,194,68,85,2,210,149,251,168,7,213,59,246,137,244,110,149,132,75,97,188,18,149,246,81,83,131,76,50,81,15,196,218,143,102,20,182,45,127,204,247,58,173,37,189,79,152,232,162,47,228,4,195,180,195,206,69,17,64,182,59,24,90,86,245,163,105,32,125,238,112,22,231,244,156,241,124,40,241,0,150,220,235,238,222,19,25,134,174,188,43,77,64,44,33,91,3,217,189,143,184,169,109,115,82,88,47,71,246,231,2,198,182,182,210,149,158,197,240,210,179,168,100,151,204,245,6,94,213,60,168,153,230,139,245,246,141,55,207,124,218,145,225,19,155,116,61,147,186,115,1,212,64,244,90,29,2,100,192,112,72,226,243,128,114,53,171,154,181,41,181,46,167,20,163,246,111,3,168,168,137,175,109,72,246,18,162,64,194,84,11,55,178,126,72,125,104,198,52,250,241,163,110,89,76,50,43,124,213,45,185,250,154,66,111,84,251,146,159,162,115,143,217,177,38,106,69,101,236,90, -72,100,21,218,112,60,244,141,43,229,229,65,201,170,152,14,118,15,176,109,98,116,131,210,76,62,111,203,108,35,101,65,4,188,223,143,214,247,3,41,84,32,51,122,120,193,75,169,212,238,12,96,224,126,64,148,235,9,99,168,7,126,79,27,98,248,213,216,92,205,136,123,234,41,208,133,38,77,51,75,222,83,222,218,166,108,63,107,122,201,170,35,217,121,245,150,151,98,243,66,254,135,6,248,164,56,217,223,31,34,67,105,118,240,54,2,235,93,150,49,75,111,12,87,158,78,166,144,120,197,38,5,189,133,172,56,236,82,77,226,193,51,230,96,20,193,31,171,186,120,21,157,205,235,204,114,12,194,98,100,203,7,211,189,105,214,10,76,159,235,50,35,138,88,210,218,141,114,147,211,104,67,149,6,89,239,80,148,151,6,54,243,185,172,172,2,222,157,190,23,34,86,138,98,68,140,236,241,52,37,126,182,205,82,57,52,154,152,143,246,72,57,224,182,190,77,4,228,15,143,47,0,202,138,33,95,164,194,163,158,46,112,69,212,47,61,234,60,187,209,82,71,250,217,44,197, -19,87,136,91,11,139,75,189,72,219,67,156,144,167,231,246,181,15,248,97,201,145,155,151,137,87,65,181,179,68,45,41,219,234,102,189,145,39,193,239,180,248,84,91,203,106,107,29,93,89,79,41,74,82,146,105,197,70,144,219,200,180,5,26,163,214,199,123,93,138,221,236,117,169,237,230,15,124,209,90,26,160,60,103,200,166,110,12,69,109,99,135,41,193,142,144,195,77,31,33,234,138,181,249,182,51,207,38,139,100,32,157,208,235,102,205,130,190,63,227,234,250,82,74,178,92,235,99,49,1,57,69,105,216,174,93,68,67,105,140,125,162,196,171,142,173,129,81,232,180,213,18,83,116,149,186,100,22,218,61,26,180,182,218,92,183,125,128,135,72,101,138,7,236,197,149,87,92,82,234,205,251,86,68,100,122,222,90,122,46,82,46,182,46,104,237,150,57,245,106,117,166,131,180,223,237,247,164,72,10,10,177,30,242,222,0,96,223,198,116,117,93,73,87,18,45,21,40,25,42,188,172,110,83,217,114,114,96,133,22,54,218,172,49,132,54,43,196,221,250,227,118,71,208,56,67, -34,187,205,242,146,131,242,207,110,222,111,162,92,38,234,225,188,39,36,219,40,85,50,174,169,55,136,66,74,150,238,173,199,223,108,90,254,141,23,61,111,178,218,115,71,123,158,158,204,230,148,104,223,146,44,164,55,220,180,73,144,139,152,38,36,73,74,64,48,23,77,205,9,187,249,160,209,160,248,183,73,217,218,99,55,52,88,251,40,194,80,8,108,33,135,126,143,241,110,9,26,22,250,102,105,32,162,24,197,131,252,62,216,244,246,131,172,220,173,30,126,134,164,58,145,247,157,243,218,221,70,50,227,103,202,235,39,168,142,217,153,221,215,115,15,221,224,243,99,210,20,149,154,146,224,92,112,179,42,5,199,122,98,23,73,78,94,169,95,121,104,141,148,218,65,114,25,45,36,35,78,84,52,107,222,40,107,88,138,186,47,72,151,98,150,26,179,212,210,49,105,37,179,185,228,164,210,229,181,158,6,219,163,180,150,157,176,241,88,111,246,213,15,222,117,102,255,110,157,249,104,214,160,100,148,27,76,44,173,240,121,175,32,22,227,151,11,129,198,93,2,153,89,21,56,190, -28,183,245,168,235,236,187,52,142,138,118,83,29,7,67,94,147,37,106,77,41,181,130,183,169,156,143,196,223,221,58,85,10,241,249,112,234,226,27,218,235,193,104,154,109,234,215,214,196,123,225,30,217,37,68,31,100,62,85,97,65,240,100,72,134,195,195,154,81,100,245,249,47,185,78,138,116,96,14,102,88,154,66,100,27,103,70,76,117,96,191,111,94,51,244,205,93,127,17,204,54,169,70,81,202,176,215,77,106,133,151,153,115,62,242,84,117,118,67,21,213,169,170,3,69,11,113,11,42,126,31,247,39,180,107,85,123,130,25,251,104,98,169,41,26,145,44,248,57,173,224,222,167,123,222,244,186,190,177,203,235,123,195,77,158,36,53,131,85,187,117,247,240,115,183,114,232,111,59,80,44,191,132,163,246,25,224,2,39,102,84,133,170,203,253,112,69,246,204,78,93,222,72,124,196,109,115,93,58,199,185,0,90,232,65,153,233,221,70,248,55,7,34,114,70,67,145,48,232,193,58,164,222,54,132,24,125,253,81,23,20,166,80,11,235,250,44,245,102,81,234,236,208,215,21,117, -177,37,210,198,202,202,110,106,232,132,211,185,155,44,178,40,119,91,88,143,227,101,178,62,108,81,95,149,171,219,234,110,252,224,105,140,103,248,12,37,8,214,25,50,85,215,70,4,70,211,194,210,98,76,101,219,221,84,202,60,247,73,123,198,198,180,159,170,121,30,23,225,160,112,130,37,90,194,34,98,180,226,212,107,117,115,135,167,104,132,157,5,181,135,28,88,99,252,192,69,167,77,162,142,130,182,242,85,215,20,90,249,246,205,101,118,55,227,44,226,216,76,221,45,109,229,210,37,93,138,169,13,61,251,102,168,177,173,114,163,55,32,37,81,163,47,25,44,40,137,203,65,182,92,188,182,55,50,182,250,230,218,48,74,232,234,47,140,27,129,108,91,46,165,234,5,139,203,88,25,63,251,182,37,163,164,48,212,77,214,102,93,91,111,44,214,100,183,126,67,194,237,38,135,159,164,45,229,14,53,128,154,124,210,170,98,146,122,164,36,86,75,92,28,250,236,54,209,95,150,146,198,204,209,128,46,144,235,200,224,124,211,91,37,238,45,217,196,69,30,208,77,12,179,71,179, -22,58,231,143,68,7,10,236,208,162,119,30,67,207,218,253,75,164,59,179,36,233,111,52,234,251,188,54,207,188,71,86,77,198,78,234,46,81,172,119,183,22,45,253,214,96,221,249,83,232,166,72,22,176,196,120,171,41,190,105,146,208,26,244,135,228,186,45,209,210,57,42,76,231,109,240,80,24,15,173,133,167,93,30,128,93,120,168,190,225,66,102,45,207,168,11,187,161,11,153,236,146,103,179,234,34,133,29,154,155,249,178,37,15,52,172,185,238,102,32,235,239,232,141,190,170,44,71,47,137,220,148,242,54,90,199,112,94,99,85,255,202,119,231,207,221,248,115,201,162,55,201,60,208,121,77,98,227,177,59,54,176,115,175,227,125,242,118,215,122,163,59,221,186,197,97,177,37,233,159,81,228,30,130,153,185,180,99,144,121,192,100,187,77,246,36,3,149,189,160,146,233,49,200,61,209,231,90,88,102,54,165,232,208,197,188,24,66,45,82,96,201,186,163,46,238,56,218,109,107,169,49,149,102,116,154,49,203,9,49,208,97,161,193,46,26,206,176,72,219,62,187,219,21,181,78, -70,132,210,52,10,226,104,86,58,253,216,139,37,192,71,239,132,85,154,158,106,211,169,70,98,129,78,164,68,252,68,137,150,77,136,234,43,191,7,214,221,24,226,37,162,37,47,69,55,60,118,205,125,14,213,109,114,250,178,220,90,78,122,187,205,236,102,190,193,68,150,52,151,169,27,219,164,145,133,54,165,126,128,17,191,193,166,23,131,50,125,79,164,207,214,253,89,97,210,233,202,95,30,167,212,46,204,72,84,156,189,142,165,181,156,193,48,42,103,178,220,92,59,105,142,21,163,193,190,231,110,66,202,142,121,141,172,170,153,85,15,134,74,1,214,38,121,82,249,186,1,148,113,175,158,220,222,47,60,243,154,155,200,97,84,110,138,183,208,67,73,101,124,1,234,196,125,122,220,226,28,30,130,12,141,193,54,84,78,42,244,173,154,222,208,169,243,43,131,232,194,34,232,163,51,212,141,158,95,222,204,225,94,18,153,219,188,118,38,50,44,199,230,41,100,29,90,48,90,78,126,8,62,122,216,102,44,8,186,8,62,190,145,162,251,124,73,132,98,20,48,219,13,135,40,186, -126,87,106,8,150,217,187,181,251,26,40,77,239,175,28,153,132,115,220,217,174,179,97,129,137,223,228,199,238,187,170,174,236,69,142,109,107,100,124,231,56,113,183,129,109,76,134,210,109,108,39,75,74,159,158,85,230,97,39,0,219,102,239,168,166,78,179,47,234,34,30,181,211,220,122,208,9,84,30,105,81,137,82,119,184,189,13,149,209,205,151,7,143,174,154,51,236,66,82,247,125,216,90,57,191,97,245,7,195,131,251,214,123,55,31,6,239,186,65,140,154,91,11,232,26,126,109,127,68,174,134,104,193,108,215,115,88,178,251,47,186,152,141,42,182,25,30,157,166,107,157,91,147,181,151,137,69,191,110,98,163,61,90,169,236,135,106,41,80,202,101,68,89,220,77,165,197,216,86,218,182,151,215,22,121,222,239,146,155,67,189,97,3,220,52,59,250,140,191,253,162,158,121,31,197,154,134,124,107,221,85,170,164,220,134,140,25,40,218,85,91,228,41,204,191,219,52,196,131,101,111,209,154,202,14,98,27,33,57,144,19,178,11,206,130,193,1,102,241,23,17,140,96,153,84,60, -247,132,108,145,210,217,100,155,73,140,95,118,71,69,198,124,100,66,204,164,168,8,26,246,121,224,208,11,100,41,170,238,186,158,234,204,74,241,212,35,103,126,232,104,140,24,209,99,191,127,211,205,186,83,26,74,97,51,139,28,196,49,20,86,225,232,221,70,213,108,139,120,30,37,102,115,243,67,252,185,255,128,202,213,219,212,213,162,208,55,117,109,252,190,136,98,78,25,122,131,225,14,97,153,157,97,230,169,69,46,115,216,81,42,134,238,184,107,170,109,226,207,220,187,156,219,208,14,226,149,183,218,81,243,150,119,163,94,43,73,110,168,32,25,122,40,29,40,201,0,150,67,169,182,214,26,127,108,221,231,79,219,135,134,230,133,56,171,74,96,221,231,116,18,251,38,183,93,164,161,118,99,249,126,127,159,170,120,9,100,29,223,163,173,186,147,113,77,156,142,33,195,111,172,245,7,226,212,38,204,216,9,211,178,124,88,40,181,204,188,240,222,183,160,233,74,169,150,102,23,245,208,208,237,18,63,105,235,74,88,82,109,105,207,238,86,234,175,219,1,97,209,172,58,141,77, -68,144,173,12,233,67,200,162,37,221,158,205,146,179,238,195,70,144,90,144,124,66,171,82,108,212,114,196,198,67,3,205,25,82,147,51,134,164,83,204,92,63,22,212,93,50,80,48,68,187,38,169,220,210,233,5,2,38,238,131,10,40,89,230,75,85,203,214,45,60,130,15,160,227,105,239,113,173,230,104,105,224,51,223,161,71,144,38,98,58,88,50,144,205,90,218,185,225,12,214,79,84,7,18,61,253,189,25,96,246,31,229,59,109,98,46,17,214,39,114,184,177,30,119,73,204,38,223,155,207,123,133,45,83,164,35,90,24,41,24,205,76,86,219,220,133,68,70,74,252,226,86,181,218,191,182,239,69,188,151,27,225,107,140,79,123,189,11,63,18,205,231,124,52,83,252,122,113,151,156,170,165,109,107,251,190,116,27,28,196,205,70,75,3,69,121,233,38,156,94,14,252,1,225,207,2,179,219,200,45,81,232,101,143,80,99,249,52,239,95,71,118,90,107,202,222,244,1,118,246,178,186,223,62,241,70,68,60,196,244,6,143,44,153,118,69,83,158,64,89,98,15,70,46,51,53, -205,229,222,119,198,177,71,62,187,189,162,95,221,204,122,3,247,98,118,59,73,73,109,187,190,49,86,46,68,67,139,108,183,21,193,141,141,252,246,212,20,134,153,50,217,162,101,223,87,193,249,175,62,78,116,31,154,155,171,53,244,75,67,112,33,17,83,148,21,70,220,171,137,86,40,65,28,218,39,167,92,23,181,86,133,165,247,140,230,91,83,109,62,189,221,24,116,107,129,148,252,177,244,152,149,230,101,172,43,201,118,140,12,63,49,86,176,198,197,129,112,133,226,199,72,251,199,199,41,65,101,17,168,72,155,231,51,212,57,53,79,55,191,149,223,240,23,164,56,218,166,89,166,73,168,247,115,106,81,63,234,194,245,186,189,69,30,194,27,6,22,27,166,59,175,105,25,98,27,40,18,57,127,161,221,108,200,227,181,132,238,48,123,31,178,98,137,188,181,66,152,224,157,84,104,153,112,66,215,174,214,54,61,42,198,224,52,180,221,115,113,64,194,200,207,247,45,106,48,146,110,226,136,213,161,41,189,220,22,76,195,248,13,237,13,155,111,236,60,17,217,165,59,213,227,110, -99,240,152,95,63,55,178,244,177,167,8,70,118,233,145,33,109,197,189,124,21,33,243,60,57,169,221,16,36,18,23,161,101,200,56,122,81,87,23,52,98,12,85,179,52,205,211,182,164,19,127,181,25,139,186,189,99,134,218,71,171,147,10,99,35,221,42,60,239,0,118,35,219,10,155,49,182,109,90,90,190,167,38,112,198,52,179,212,5,7,168,189,163,136,209,217,54,187,155,185,238,112,230,207,108,151,225,167,139,11,148,44,212,220,243,131,143,204,225,162,109,124,229,92,236,137,93,135,48,245,60,223,13,170,111,51,121,168,243,222,237,212,138,242,96,239,189,249,92,163,15,131,131,213,48,201,29,12,131,189,245,166,8,147,13,177,195,109,105,64,198,12,49,157,67,96,31,232,23,239,131,197,29,249,209,187,79,56,242,249,82,114,165,100,198,213,29,187,165,207,136,184,43,207,23,240,236,51,41,174,213,23,227,21,57,201,28,9,86,31,60,248,150,160,22,149,63,228,206,50,36,79,55,191,41,68,54,36,164,167,104,242,22,105,143,239,230,2,103,168,127,159,195,87,193,28, -9,89,52,43,4,77,222,164,58,167,9,120,20,217,131,219,88,219,139,60,252,73,88,231,166,247,80,155,113,104,103,228,143,156,13,139,45,162,1,27,195,197,116,157,23,116,207,96,40,189,76,5,55,222,229,35,59,247,6,192,62,161,222,10,165,112,103,91,127,77,195,231,183,36,95,150,228,24,217,146,175,123,25,124,102,198,153,178,151,86,182,51,212,134,3,184,119,70,89,9,56,61,138,59,119,79,47,183,210,248,67,81,115,201,160,36,147,43,220,99,80,165,165,59,141,201,235,238,74,109,92,163,196,178,150,4,156,125,108,212,138,174,195,201,82,194,80,172,89,82,102,19,196,227,97,33,104,75,15,228,14,22,25,78,237,103,85,196,78,93,182,188,149,69,147,196,49,24,7,102,178,48,234,150,9,5,40,165,235,12,94,35,202,17,122,59,238,108,212,198,54,171,163,65,26,97,33,170,197,219,61,121,39,121,31,184,169,252,56,113,110,170,142,132,205,245,123,213,115,209,143,135,98,74,195,48,134,2,86,23,6,184,12,223,210,144,182,236,129,61,34,213,46,54,142,36, -196,136,32,68,2,166,36,116,52,65,196,67,97,97,19,145,88,211,122,154,89,154,17,2,94,131,47,2,170,86,246,118,201,69,219,137,113,6,254,206,227,197,165,94,102,33,15,15,126,173,189,188,212,216,217,120,162,151,235,142,2,151,174,44,19,207,244,162,184,215,109,168,43,204,150,218,57,107,60,233,54,44,131,225,156,30,102,117,140,39,218,43,147,112,37,141,241,162,166,232,40,244,150,152,151,190,57,184,175,102,195,93,244,194,130,194,113,0,194,72,47,9,75,60,18,255,251,89,143,79,116,186,226,115,100,9,133,126,123,245,66,72,46,41,89,209,33,153,176,21,238,155,95,141,160,178,177,21,216,155,111,185,185,94,234,144,238,44,254,97,69,36,211,244,135,2,35,127,197,80,91,16,52,222,176,162,186,232,44,214,84,88,27,42,156,46,57,72,111,171,226,175,101,203,8,5,158,171,135,235,217,172,139,40,48,47,88,110,137,118,4,76,65,127,69,77,103,73,132,2,149,85,1,44,149,125,25,98,100,245,2,96,14,199,229,13,176,165,119,151,212,216,231,142,11,177, -223,160,121,71,229,99,43,95,248,158,142,2,66,68,134,168,191,54,202,25,52,75,227,202,44,107,110,104,182,39,118,139,185,36,44,116,136,208,52,205,133,59,170,216,115,7,192,52,5,15,141,170,250,50,138,50,235,84,88,3,28,207,131,156,201,192,81,116,180,238,57,156,140,190,148,81,60,156,229,122,195,76,144,131,45,210,67,144,98,174,123,81,19,65,195,7,46,220,184,46,162,20,246,102,122,141,157,78,212,207,218,214,104,173,19,55,134,186,78,175,67,153,204,11,234,18,9,166,35,198,75,250,110,158,70,133,26,203,19,210,57,185,47,107,12,249,8,29,147,52,225,114,250,1,224,80,47,32,40,112,171,169,82,159,200,158,0,75,181,177,156,104,178,42,74,22,144,192,49,135,27,65,84,226,27,9,219,4,56,52,25,164,73,131,128,55,102,167,67,213,246,38,146,147,191,38,46,197,244,178,238,30,51,128,58,83,220,69,73,106,166,192,207,197,45,161,101,117,149,238,45,163,192,12,28,14,105,77,185,69,0,119,118,39,190,33,45,210,159,20,87,41,236,89,17,94, -73,219,222,136,203,229,77,32,91,134,110,115,6,37,29,228,153,29,50,171,88,7,75,20,80,184,176,67,46,254,210,114,213,178,163,168,120,1,160,241,66,60,220,105,56,203,108,138,117,81,128,140,15,83,157,109,168,172,248,138,98,150,93,79,88,78,12,192,120,96,151,97,51,138,11,91,183,124,68,23,137,206,37,78,239,227,212,52,32,219,149,44,68,95,245,237,108,187,159,73,159,177,78,40,87,226,144,144,133,229,51,104,101,147,100,183,207,207,135,219,125,251,128,125,97,162,184,125,48,252,46,2,91,138,243,114,225,215,55,95,133,250,192,5,133,202,245,19,43,184,86,113,138,17,69,164,133,94,132,125,104,144,99,133,24,81,122,158,27,101,44,79,142,209,155,194,188,186,144,217,159,155,54,65,154,137,208,115,113,240,208,92,92,58,99,150,169,231,136,220,40,194,98,46,223,113,228,55,98,158,203,68,156,235,185,76,56,201,129,211,140,130,78,169,158,25,6,112,102,253,149,18,37,43,135,113,48,106,52,12,40,80,160,1,129,198,174,200,50,165,138,60,48,201,35,225, -14,148,19,167,198,151,169,112,135,157,5,39,75,245,23,0,100,114,143,28,64,99,71,187,16,208,174,94,132,0,16,24,81,11,122,3,131,246,155,154,60,144,133,3,168,178,187,130,200,132,125,16,7,110,228,117,160,58,97,240,10,158,40,44,39,133,136,34,245,156,204,134,39,8,48,232,5,129,163,97,222,195,160,77,77,51,15,168,143,71,161,193,179,202,18,184,227,120,150,84,143,2,34,144,201,43,138,11,143,34,1,112,115,92,136,144,28,55,195,111,9,154,227,102,13,243,58,14,110,238,105,225,52,130,179,6,117,130,128,32,239,71,64,66,4,14,56,2,58,131,33,161,77,130,186,60,191,100,223,141,222,90,82,133,152,73,128,201,49,78,63,0,54,177,211,17,38,197,137,166,156,189,156,56,1,83,146,225,73,36,0,113,94,157,35,234,62,64,140,120,5,130,109,61,188,1,39,1,39,135,202,74,254,145,96,155,139,229,234,194,242,68,178,99,4,186,213,134,106,152,173,59,226,116,215,61,187,192,32,162,0,49,109,191,69,34,1,210,5,171,1,133,242,192,245,53, -8,10,98,118,141,50,118,7,14,118,98,33,38,36,159,88,128,215,189,71,22,174,122,80,188,9,33,67,189,218,191,222,79,8,211,31,247,121,136,19,75,102,162,137,0,156,112,170,71,210,83,192,11,46,201,146,8,126,228,192,65,37,204,20,6,56,243,1,195,35,197,152,35,152,59,34,174,45,199,183,40,68,88,167,124,67,224,29,121,181,128,188,50,97,0,115,82,198,65,159,86,8,17,133,0,1,237,189,129,101,139,198,60,115,246,28,69,37,252,228,97,47,51,186,2,205,226,32,70,181,22,252,21,6,62,247,128,1,125,251,244,63,12,241,127,4,148,133,252,8,232,181,158,29,62,74,8,166,68,97,142,18,58,7,53,196,1,93,190,17,84,136,91,94,24,87,57,201,203,202,38,31,105,99,194,75,52,40,120,108,20,104,95,64,53,246,17,10,243,17,15,142,61,115,229,98,196,170,138,207,184,95,29,227,126,63,112,176,224,186,227,185,75,42,139,176,15,113,25,108,38,130,120,180,114,97,255,208,239,82,247,148,60,146,177,205,148,25,27,236,195,129,255,245,254,225, -220,113,105,55,160,117,246,136,208,14,242,248,12,65,61,65,119,21,95,13,196,173,39,128,32,213,25,162,26,214,185,33,72,163,128,67,142,205,189,162,178,55,10,56,175,102,71,216,118,234,131,225,196,47,202,133,129,51,98,224,218,99,82,132,28,184,248,233,60,63,139,9,106,158,252,54,68,189,89,57,39,143,230,112,198,209,163,243,70,110,36,58,110,60,87,184,130,248,221,171,3,114,98,201,10,31,59,142,64,202,12,243,41,143,70,58,171,211,156,91,77,151,2,215,135,252,150,66,1,226,164,48,251,33,117,210,159,101,127,247,36,240,148,68,101,196,81,192,142,82,217,241,33,48,161,61,91,214,195,25,194,242,87,253,66,66,194,211,138,138,67,112,76,216,10,151,184,149,28,3,129,59,178,13,242,192,63,242,192,56,99,234,142,162,25,225,63,120,2,53,99,66,28,163,11,16,175,182,176,99,26,15,98,14,6,225,40,213,43,86,195,193,0,77,146,143,167,50,236,56,96,20,36,166,71,26,46,146,184,61,213,15,61,152,86,91,60,192,36,29,55,111,241,176,14,152, -87,218,50,83,195,180,131,133,2,161,132,67,24,194,19,178,51,63,128,61,34,131,129,102,46,64,100,20,80,7,102,249,167,14,138,31,245,137,9,31,22,62,210,110,148,161,159,232,118,245,36,75,236,17,217,35,64,52,31,11,140,11,140,190,9,228,140,114,44,62,101,26,146,3,230,36,50,59,194,112,65,186,68,82,28,49,237,69,93,233,202,82,120,234,67,151,35,4,241,131,208,240,18,117,44,39,249,8,160,59,249,5,3,253,162,128,57,132,6,171,69,25,141,131,157,81,99,35,84,49,246,153,95,242,114,228,163,238,225,83,118,144,232,70,174,18,110,143,91,146,165,69,242,1,75,130,95,90,78,134,217,210,165,229,120,244,160,229,184,196,229,70,200,207,251,243,37,252,68,232,61,209,12,128,176,95,239,143,197,10,24,101,117,229,93,55,237,27,18,94,63,234,128,3,58,252,136,87,213,49,60,30,164,152,102,236,247,68,236,51,137,64,248,88,192,114,248,190,214,195,50,239,168,80,41,149,184,52,39,67,168,207,250,123,87,134,31,203,18,146,157,29,1,32,142,187, -109,3,101,150,231,230,212,63,225,192,156,112,164,63,232,59,119,151,0,108,119,105,21,195,194,31,5,190,74,231,125,213,107,232,84,72,166,140,19,80,237,180,1,53,140,247,138,153,176,249,1,228,169,225,80,31,129,60,131,116,221,129,64,186,96,174,32,246,27,58,89,35,165,163,109,201,79,222,108,31,117,144,9,191,180,157,131,10,135,75,97,194,182,22,142,177,29,16,242,101,244,179,47,152,95,28,184,83,26,208,97,142,153,221,0,118,204,16,11,182,121,58,222,38,67,192,219,142,99,41,57,222,134,56,236,175,6,30,8,167,13,189,5,203,198,113,197,232,88,199,183,0,32,59,169,117,11,76,79,81,5,60,132,219,15,190,56,142,234,137,175,170,166,252,14,194,140,121,71,168,61,31,244,21,114,116,118,255,252,53,255,246,231,213,147,202,29,156,63,241,24,249,228,81,120,204,60,168,30,142,21,131,202,165,30,147,234,66,132,80,156,210,206,201,188,58,117,193,44,147,122,236,130,160,182,71,31,105,199,248,236,147,27,198,177,126,6,180,102,38,56,215,108,149,127,204, -47,48,21,78,58,140,44,149,167,196,134,192,109,209,99,98,223,28,73,99,127,237,191,54,192,145,57,149,5,199,159,244,203,252,212,47,238,228,105,12,216,220,126,230,229,238,83,191,123,28,140,69,141,129,9,135,35,186,200,3,199,238,143,249,97,69,158,125,228,7,35,254,81,78,54,159,60,221,57,246,95,253,85,48,142,134,171,121,224,184,13,5,63,110,99,192,29,145,227,161,233,139,175,245,182,248,137,71,97,34,125,212,9,81,15,196,5,198,6,15,6,199,161,150,34,160,9,129,112,14,18,166,63,209,81,32,156,130,160,41,235,78,121,217,112,244,138,13,176,55,60,150,73,159,186,132,166,221,167,134,49,69,205,79,117,18,153,83,156,230,6,50,24,222,222,231,60,98,250,90,95,245,49,150,253,84,95,137,121,200,203,71,159,121,25,192,78,21,20,206,12,127,234,134,16,5,67,240,12,198,224,9,188,226,62,232,32,175,7,142,228,177,131,25,143,224,111,1,230,197,17,60,136,253,196,51,211,206,130,124,216,37,124,198,143,12,28,85,51,66,137,198,31,68,49,27, -14,235,49,2,92,184,212,123,1,158,120,13,238,74,129,39,226,142,187,106,81,28,249,180,43,143,107,128,185,9,39,194,26,181,27,194,81,174,26,24,51,247,137,171,22,251,138,171,7,94,95,64,219,42,48,165,62,178,159,8,103,159,162,235,5,174,79,222,48,157,80,214,7,32,123,237,3,144,18,184,58,1,138,162,162,39,64,118,112,151,17,4,116,218,5,2,34,28,229,114,246,228,16,159,88,77,219,191,206,85,90,26,228,163,159,10,78,253,52,41,250,236,15,225,217,71,100,194,101,218,73,17,97,120,247,100,183,6,218,205,130,138,64,128,106,81,16,191,206,107,4,56,32,62,133,29,247,244,213,110,20,103,63,181,247,244,165,244,163,128,64,80,201,163,123,81,79,24,72,28,27,14,180,66,228,62,128,103,249,143,135,185,144,160,126,64,131,56,196,31,231,181,107,112,94,75,139,194,56,232,169,250,36,163,163,15,218,111,201,167,110,69,228,218,63,218,133,255,14,128,157,244,121,159,197,65,142,169,10,198,17,249,199,56,2,95,251,141,4,226,16,157,242,229,238,137, -248,33,171,52,228,249,3,168,137,248,49,80,28,123,36,72,0,241,211,46,11,224,157,8,96,105,202,151,71,2,120,122,56,234,88,225,94,142,225,96,35,1,252,17,175,2,1,187,63,149,21,56,82,246,81,30,202,8,232,71,30,94,165,79,112,6,22,135,249,52,24,101,64,56,199,6,229,3,225,248,207,190,198,3,243,25,15,178,211,254,1,167,241,25,143,143,249,166,33,254,140,71,36,243,25,15,237,41,30,81,184,154,240,25,15,9,200,192,9,14,216,186,208,71,56,119,72,112,68,63,193,57,255,58,39,144,159,161,31,133,172,56,253,156,211,20,180,99,134,178,64,56,71,189,206,65,56,199,4,128,159,170,137,248,171,222,244,183,87,96,210,19,136,94,148,155,11,63,207,41,18,159,121,224,87,126,180,3,56,51,246,49,199,221,144,79,227,195,21,68,137,226,31,3,141,1,131,245,2,46,57,3,131,229,7,231,238,171,83,217,191,17,49,63,230,18,215,135,90,81,252,63,241,125,249,201,247,177,63,137,158,192,164,60,182,104,85,153,122,170,4,80,144,36,15,120, -84,26,36,233,25,12,25,7,108,254,138,103,22,179,124,130,115,197,250,58,31,86,191,234,142,124,201,251,212,221,243,169,67,59,195,64,228,40,29,120,133,120,5,194,41,158,31,225,112,68,31,115,190,195,139,227,159,224,156,255,137,239,202,7,223,184,178,254,52,49,176,62,224,148,51,194,143,194,4,145,144,95,143,33,235,57,80,231,199,134,136,7,225,164,193,156,100,158,224,240,153,146,19,156,51,208,242,9,142,240,179,143,218,207,163,39,37,87,1,232,73,201,0,209,117,76,3,76,3,60,51,13,198,177,124,76,3,20,120,61,6,235,0,7,186,31,99,51,163,240,81,78,167,241,139,83,57,141,74,192,226,81,33,78,19,138,143,199,33,56,100,39,58,49,171,112,148,78,204,2,168,245,137,217,115,208,174,245,107,253,103,98,17,192,237,177,186,91,8,96,142,156,10,139,252,249,148,61,217,112,235,99,236,1,244,244,143,70,199,81,51,47,142,210,209,192,165,173,163,116,226,167,172,4,156,124,105,75,118,116,5,1,250,98,252,156,111,7,76,68,67,47,96,194,5,94, -8,1,151,11,7,62,121,152,114,190,242,80,176,11,79,60,232,147,159,117,11,146,247,157,20,127,141,146,29,27,4,186,169,99,162,142,204,34,193,108,104,61,57,112,138,99,54,24,33,204,212,113,202,11,103,62,117,55,253,156,27,28,180,143,193,22,175,57,13,182,180,207,126,69,118,120,190,246,171,48,254,232,145,32,15,136,143,137,114,121,244,22,124,100,188,63,181,155,7,220,249,41,222,111,132,175,207,89,14,196,213,71,162,188,32,160,167,10,43,128,40,218,72,192,140,176,251,177,79,14,151,247,89,200,71,133,97,6,62,244,138,232,234,179,15,107,23,126,200,174,57,166,178,55,12,209,5,95,222,16,174,195,47,176,211,147,183,31,126,125,122,242,22,18,189,199,39,111,215,241,59,162,227,87,68,48,92,214,254,250,194,141,176,144,65,148,17,174,182,67,216,237,221,241,115,54,248,204,126,220,120,199,253,216,200,108,119,137,228,189,42,40,102,95,40,14,153,7,180,36,91,158,146,108,181,107,115,237,29,182,195,170,251,221,24,112,110,112,141,216,93,15,208,32,240,246, -182,231,90,138,40,93,22,89,166,107,196,147,23,184,97,15,81,198,210,113,18,130,123,61,113,32,59,127,98,11,142,141,87,195,68,244,28,171,203,224,52,13,140,128,171,165,35,203,100,42,169,17,148,191,206,123,117,148,186,234,190,63,138,0,87,77,153,61,168,187,78,84,228,14,45,44,234,60,9,96,213,217,72,247,2,124,72,198,63,218,15,189,251,102,71,106,100,123,216,133,196,189,115,0,117,134,102,45,71,22,247,50,66,228,202,198,96,211,192,104,235,141,108,89,87,60,28,28,191,9,194,114,60,103,198,183,61,101,185,193,141,144,60,41,162,230,146,73,21,250,134,193,148,208,69,26,183,27,148,241,218,16,76,185,178,254,133,98,243,84,138,47,12,119,26,53,51,192,238,64,19,143,161,80,70,138,212,170,11,207,185,248,237,136,142,50,159,49,14,180,61,6,249,236,177,24,192,161,69,245,132,33,146,177,239,171,129,245,192,151,9,187,89,228,6,207,105,161,0,221,82,247,124,191,9,62,129,120,240,136,108,121,18,152,228,56,49,127,83,252,144,45,112,164,145,17, -10,240,111,77,43,164,247,13,163,128,119,136,41,179,142,58,185,184,156,183,200,69,18,108,143,113,215,10,111,5,87,182,197,92,21,243,128,169,238,23,94,106,21,125,178,17,33,33,11,15,29,190,210,75,175,160,36,158,25,176,208,218,115,86,167,192,248,174,97,190,226,31,153,79,136,117,92,48,78,51,165,117,4,17,38,193,237,246,161,123,141,93,0,31,95,242,252,110,44,220,81,194,36,150,121,46,252,30,126,158,89,56,174,9,76,34,204,68,212,54,160,145,208,228,121,28,49,29,227,46,28,125,124,81,195,63,69,189,66,228,249,101,120,162,55,171,58,126,175,8,171,56,52,217,82,70,245,176,97,36,56,180,84,72,29,180,156,111,86,226,59,59,208,216,201,218,242,12,138,195,61,4,155,151,157,189,103,214,52,192,37,136,247,199,182,66,70,132,13,134,2,35,117,140,53,192,35,217,131,48,53,48,11,225,131,20,99,29,187,237,237,31,219,108,134,11,176,99,46,70,158,173,107,118,224,24,39,79,10,162,166,176,198,232,85,244,27,210,109,192,172,45,36,166,233,242, -187,136,183,128,139,165,240,145,199,53,43,29,87,177,137,194,106,138,166,46,180,161,73,67,43,216,85,217,55,29,54,37,82,119,144,215,12,83,130,70,210,218,251,247,157,41,73,58,154,225,141,133,112,182,252,174,245,134,206,48,163,244,162,100,190,247,157,13,16,88,198,226,48,176,138,194,24,4,245,105,97,57,20,119,147,84,78,165,152,150,166,163,217,244,217,186,61,99,60,161,52,20,84,164,157,226,196,110,134,6,93,215,162,165,49,53,112,107,234,108,136,128,108,99,188,17,103,128,178,241,98,83,182,137,109,111,201,150,211,146,105,184,95,27,196,77,246,163,249,240,84,58,147,11,38,21,198,118,139,3,245,55,160,62,19,234,40,89,47,53,235,103,140,225,116,217,74,95,34,211,101,165,217,184,128,13,46,245,173,18,126,127,238,103,219,15,103,65,202,80,122,97,223,45,12,101,186,227,18,152,22,155,212,60,169,124,145,7,250,247,83,108,246,182,165,193,108,204,58,174,19,184,89,31,14,29,135,79,26,38,50,176,209,115,178,23,58,199,103,11,0,196,50,91,225,132, -145,3,125,18,18,192,161,58,222,40,77,211,7,57,68,73,88,230,104,238,149,81,227,99,138,222,103,233,88,246,141,103,137,179,3,2,198,230,41,135,102,248,122,222,96,210,96,131,175,137,62,214,36,205,71,47,213,233,53,163,60,238,50,8,91,75,196,126,198,88,75,80,249,20,109,226,217,209,163,6,221,25,6,206,178,104,236,7,204,136,60,94,5,244,153,102,164,207,44,19,97,203,34,122,77,192,80,198,123,84,22,55,157,192,224,146,214,170,124,193,3,81,191,77,7,173,93,40,56,64,227,231,72,183,144,167,22,114,5,93,205,118,158,107,30,102,182,16,254,92,112,112,108,100,20,219,196,81,133,156,219,250,46,226,210,64,167,17,97,222,174,43,131,155,18,131,143,8,170,4,101,134,91,239,243,24,136,171,95,190,39,61,168,121,123,201,136,88,218,206,74,33,9,82,246,114,176,152,104,105,128,130,13,162,220,14,244,190,133,144,134,229,166,38,26,79,76,117,47,165,240,53,214,190,171,60,155,134,211,201,46,33,185,218,97,59,119,65,84,174,124,120,155,230,30,178, -64,138,223,29,244,77,213,97,147,215,194,24,17,47,162,174,112,112,184,9,211,61,227,38,158,72,130,141,179,211,200,72,114,57,50,108,10,2,39,66,184,112,197,23,182,7,19,76,94,131,218,148,103,40,47,37,136,122,50,243,89,171,2,62,82,56,8,7,151,230,61,128,186,179,167,25,165,132,76,195,156,8,53,18,68,255,6,191,231,197,96,27,205,26,204,143,58,77,135,124,70,221,239,195,7,135,87,130,243,178,93,168,143,130,170,242,126,20,84,8,219,145,102,174,217,186,103,46,108,164,113,199,23,0,120,214,144,192,68,25,238,23,70,93,6,229,228,23,177,194,196,180,40,244,143,136,176,190,127,230,253,196,83,30,18,34,53,71,218,186,107,225,19,160,123,65,34,5,126,1,167,241,111,95,61,42,248,120,237,146,154,76,147,231,202,250,0,39,240,6,12,14,178,133,106,214,102,136,236,162,137,30,63,197,1,246,18,237,86,156,219,74,182,247,180,93,91,0,192,68,88,212,115,1,19,23,227,49,153,48,144,221,98,57,179,230,222,97,252,40,106,51,44,202,43,76, -218,194,160,88,107,179,204,51,198,29,83,74,27,25,158,6,104,199,206,16,33,30,4,109,216,220,6,179,189,84,229,7,168,114,205,7,37,185,145,23,107,208,133,189,3,250,136,217,187,174,31,80,121,101,238,140,129,50,123,74,55,33,12,19,74,34,102,5,229,72,171,239,240,221,186,16,47,135,93,22,167,177,76,160,107,121,12,8,251,209,123,87,244,10,101,214,92,56,108,112,87,138,53,102,182,138,8,51,98,96,69,96,233,23,30,112,220,159,149,10,122,24,45,149,126,230,92,209,176,233,39,198,214,106,119,50,33,155,204,235,230,114,245,98,100,60,210,176,249,195,206,2,103,204,74,57,112,12,41,94,30,100,173,93,243,149,35,47,23,148,193,76,141,181,140,160,66,73,120,9,48,17,23,37,47,192,180,220,147,84,76,205,25,35,210,133,29,118,80,15,103,127,117,119,59,190,153,89,77,61,185,17,63,149,179,58,227,67,89,192,102,12,49,248,89,237,178,3,53,199,68,217,30,202,92,218,46,5,87,6,143,218,95,166,109,34,99,223,155,254,32,107,51,111,94,154, -249,168,225,2,198,61,60,17,151,87,114,73,136,149,84,143,89,208,222,182,118,93,56,60,170,111,82,156,78,129,166,107,33,177,40,96,143,65,4,150,217,39,53,231,105,118,88,0,118,26,182,182,39,128,53,146,115,199,71,241,217,187,216,212,218,159,188,48,174,88,121,80,90,114,80,91,230,8,68,50,69,28,112,184,1,66,136,31,28,226,139,162,16,7,214,209,249,165,247,112,189,122,218,221,91,192,192,139,130,20,248,19,112,201,229,24,113,167,142,142,191,252,232,232,194,211,255,250,188,85,130,14,193,75,20,120,161,188,56,103,104,228,53,56,173,186,219,80,110,128,45,173,227,62,4,8,59,126,11,159,87,222,11,251,189,247,208,32,126,129,199,93,101,204,42,31,74,97,150,40,214,7,88,123,247,222,134,134,228,105,221,163,213,189,201,194,52,204,54,4,254,60,228,45,217,251,66,161,144,3,198,170,235,27,41,189,13,13,162,206,91,171,203,164,31,130,186,191,26,230,210,111,62,20,121,154,14,71,145,151,45,1,244,189,128,10,109,33,231,68,205,123,40,220,34,158, -145,95,125,89,37,84,162,82,152,135,21,212,176,77,129,110,169,120,29,60,208,37,181,134,183,48,149,93,215,178,194,165,86,13,19,42,132,55,178,128,219,132,73,181,139,111,19,154,195,11,65,61,81,130,104,128,129,137,153,151,81,128,150,39,82,61,149,251,91,250,89,183,40,214,3,89,220,251,235,180,226,139,95,45,73,81,128,73,20,166,152,53,151,253,94,54,108,69,18,111,123,20,31,2,103,30,32,157,183,161,108,35,45,121,56,197,220,197,131,149,165,97,170,164,8,44,176,38,42,224,251,134,193,182,153,217,115,235,77,134,200,241,144,192,65,154,73,108,182,168,47,210,149,166,206,121,231,193,29,210,176,76,239,165,140,17,185,196,32,81,200,229,135,17,152,66,3,193,39,45,132,197,218,49,161,247,87,219,54,212,2,37,46,115,234,162,24,169,63,142,161,22,226,48,237,247,48,91,114,234,101,33,183,149,113,16,229,154,3,193,89,113,163,131,242,218,124,63,197,153,193,46,198,5,189,212,195,209,196,170,148,108,39,146,25,5,157,194,77,34,194,22,143,246,77,118, -39,189,92,66,136,228,34,248,81,125,81,113,64,192,103,191,27,230,236,98,129,149,75,201,136,142,3,62,107,137,239,65,167,206,23,210,94,23,196,7,149,142,22,184,67,46,123,3,142,82,122,7,4,149,141,191,85,40,208,202,224,124,242,98,103,102,153,210,48,233,174,112,5,170,66,8,54,118,215,245,71,253,185,247,154,165,45,124,43,154,117,183,166,23,133,51,107,64,233,138,174,203,200,171,195,33,93,0,100,40,236,114,86,218,169,124,81,142,49,21,144,206,33,126,107,187,114,150,100,173,252,243,36,123,0,147,79,227,19,219,236,172,56,163,20,86,60,154,77,216,85,51,238,72,20,82,182,249,216,192,166,103,222,3,135,206,152,30,148,103,211,84,74,125,183,24,176,232,115,196,213,166,141,184,218,222,229,194,77,173,116,15,101,7,81,1,132,120,13,166,228,206,198,212,219,25,235,125,216,179,101,20,227,186,187,208,90,35,95,179,197,143,33,107,165,229,12,49,206,91,155,18,186,101,73,110,25,241,169,65,60,189,178,14,222,149,41,211,155,124,114,75,201,30,156,210, -214,76,99,75,220,122,179,138,195,5,253,76,181,247,252,223,191,133,248,159,254,203,127,253,255,226,45,196,239,127,245,251,239,255,224,148,254,234,235,139,136,223,125,249,253,55,63,124,243,221,183,63,253,224,150,127,247,117,243,31,190,252,254,135,239,127,252,233,251,31,126,254,2,30,250,229,207,254,225,231,111,191,252,31,255,238,248,166,221,247,191,250,241,39,167,244,119,127,251,139,47,63,126,243,211,207,63,124,243,211,175,191,255,221,215,91,63,254,211,79,224,30,240,206,31,190,249,237,31,215,255,227,55,63,254,237,255,207,222,78,252,195,223,253,119,239,39,186,40,95,126,247,205,63,128,171,143,68,125,229,226,147,197,63,190,133,248,237,7,91,255,226,205,193,47,127,246,159,126,241,229,191,252,226,203,239,190,253,229,247,95,254,235,159,127,249,251,111,65,8,95,126,5,114,240,243,239,127,7,254,230,102,253,230,24,166,159,191,252,244,253,63,124,255,211,247,127,52,253,243,95,252,197,255,171,55,24,255,240,79,255,252,187,111,92,232,159,191,2,249,48,255,243,255,248,162, -228,231,49,95,254,236,99,201,55,159,65,3,99,15,46,254,245,151,223,255,246,244,162,229,41,92,191,254,242,205,49,70,63,255,226,203,231,226,143,207,143,158,254,113,237,119,255,221,146,227,191,254,252,47,254,31,189,49,121,177,36,36,212,115,251,197,18,242,230,196,227,249,66,55,215,123,115,222,70,66,152,94,29,14,241,122,205,196,61,93,95,95,51,9,222,8,18,33,116,29,138,116,118,104,183,36,77,47,199,201,90,198,126,137,44,111,16,4,71,228,73,116,30,4,87,93,59,76,210,75,94,223,105,203,28,38,139,39,69,207,87,201,215,66,115,173,161,105,217,236,54,129,34,205,210,51,76,154,251,249,107,144,27,20,90,196,92,27,231,58,113,206,128,115,89,77,8,89,206,37,170,31,10,118,164,94,30,96,70,201,241,200,94,114,141,231,193,171,119,188,203,103,145,203,207,228,63,13,212,86,211,19,127,20,105,94,106,87,102,244,188,91,27,204,52,89,227,115,136,190,187,74,94,190,88,102,0,61,155,219,6,85,60,7,12,122,211,91,136,240,143,216,224,53,93,104, -10,22,96,230,101,55,238,23,9,13,205,134,5,227,158,86,82,119,210,148,47,236,73,69,100,195,72,18,252,41,14,85,235,208,22,245,158,191,144,225,59,205,209,44,47,97,202,125,229,153,213,149,198,135,201,108,236,83,61,114,219,115,134,139,232,171,6,228,249,105,142,190,211,217,97,162,119,31,212,3,127,56,191,127,118,64,31,212,227,110,144,101,130,79,30,216,154,37,235,12,42,155,46,155,152,36,19,126,213,231,216,203,249,76,57,254,146,182,222,98,46,212,219,149,4,27,132,193,91,154,221,3,182,204,132,175,226,103,143,213,193,28,136,46,183,162,5,141,129,6,226,7,166,230,65,232,68,122,101,215,52,116,218,27,147,121,33,248,4,185,113,155,68,153,206,139,56,239,100,152,164,56,161,136,213,61,253,246,121,245,132,28,72,148,27,98,239,117,85,51,192,139,188,215,43,89,206,138,49,19,198,10,221,141,135,236,191,77,119,137,9,142,60,73,201,134,169,82,163,238,149,251,36,170,153,67,247,229,29,149,12,187,8,161,114,252,130,4,198,231,94,88,158,124,225,100, -242,93,70,208,64,160,205,187,40,228,38,202,32,196,77,196,37,13,207,231,182,11,208,249,158,19,80,241,241,101,224,74,253,4,135,246,18,194,23,150,49,21,102,218,89,15,23,120,124,17,125,193,83,44,0,69,131,19,123,63,127,198,89,97,100,114,81,53,226,162,104,118,86,95,56,125,224,68,163,92,82,52,141,151,93,143,237,40,228,84,207,213,62,174,145,162,240,172,25,153,63,164,113,184,252,85,2,141,64,162,220,126,95,202,116,22,213,215,1,74,193,147,180,32,33,25,230,213,101,25,151,99,97,151,202,11,199,126,67,45,209,105,125,228,88,113,161,196,110,236,21,59,195,233,134,72,0,197,18,122,206,32,100,67,83,155,55,136,50,60,42,236,142,65,77,77,132,146,29,214,12,161,17,59,168,123,124,38,155,53,92,42,228,221,125,147,84,181,217,130,216,210,3,174,41,227,145,148,245,241,182,33,45,71,183,124,223,59,229,65,254,60,212,227,108,44,201,5,61,23,98,71,245,46,182,64,100,117,48,38,152,189,118,255,52,75,53,91,237,188,219,191,201,36,46,61, -89,91,197,83,143,103,25,55,244,137,44,194,184,113,50,184,86,233,122,152,234,46,135,99,8,122,3,157,219,188,125,173,18,213,203,238,6,126,224,45,238,7,234,181,220,213,158,115,152,229,69,239,178,119,249,91,143,178,37,213,197,29,147,201,203,184,165,115,118,60,234,190,40,32,109,36,20,239,128,72,218,185,122,227,164,137,60,161,188,52,30,137,120,126,18,207,39,190,220,64,170,147,81,117,162,82,56,57,55,83,44,108,113,243,92,245,158,65,252,111,198,125,59,0,4,93,23,150,155,162,213,232,14,90,175,213,89,42,219,102,56,95,4,110,95,134,183,240,238,142,81,119,93,251,194,24,55,60,100,203,235,71,91,71,165,100,184,42,170,217,119,133,6,1,66,171,2,168,108,80,214,162,175,75,162,13,97,90,109,78,46,202,150,30,100,78,136,217,202,217,21,161,119,59,185,9,200,253,170,32,70,133,117,97,194,158,43,30,94,30,186,17,66,185,102,121,2,119,23,165,120,201,57,55,26,31,54,236,92,185,0,193,17,192,158,79,109,14,194,146,234,42,35,189,91,162, -89,123,134,62,108,230,37,248,142,61,215,132,66,149,135,179,158,180,92,189,202,211,251,72,20,62,67,93,220,59,7,197,178,8,207,32,23,75,27,224,110,25,202,225,14,9,183,117,36,111,162,75,196,250,129,119,191,26,177,99,165,21,156,95,84,7,44,141,251,46,131,94,233,89,11,233,249,99,50,61,187,175,188,24,193,186,114,51,235,115,170,47,213,202,157,20,0,163,78,197,37,135,240,216,35,186,180,156,237,59,211,145,225,114,203,180,109,223,221,183,11,109,113,55,220,84,18,183,165,252,170,93,237,136,213,86,189,106,198,168,185,149,67,130,123,207,177,10,183,82,182,226,214,141,118,28,116,87,133,202,221,102,102,172,167,223,158,154,220,226,67,207,104,145,215,123,222,70,19,87,170,56,131,165,226,1,202,53,136,247,69,171,102,79,243,49,12,182,197,123,0,217,75,80,229,117,119,232,117,221,127,121,88,181,175,86,239,220,90,187,162,111,87,200,109,11,175,92,165,42,207,51,57,206,52,118,129,127,9,85,120,23,51,139,81,95,239,47,246,180,89,38,133,172,232,224, -180,195,66,3,121,239,155,50,183,194,199,242,121,252,140,39,58,20,166,164,121,17,222,28,102,150,55,218,185,88,180,144,7,67,162,77,39,147,69,221,36,134,25,156,36,240,34,73,43,109,153,123,138,208,162,122,35,188,93,211,122,240,167,213,174,154,239,161,112,89,73,122,89,17,233,99,2,97,202,95,45,134,238,135,90,111,254,192,139,169,19,71,246,238,214,254,176,194,114,219,237,89,3,253,112,255,129,229,211,236,121,47,194,40,139,173,238,155,211,13,95,249,138,15,45,183,209,69,253,174,164,126,221,188,217,130,97,9,98,176,23,180,206,134,114,153,96,85,201,82,40,114,25,118,93,123,165,62,166,26,162,61,202,165,191,222,105,203,55,172,183,68,164,69,145,185,29,239,68,165,79,26,115,146,210,231,126,121,207,165,20,203,251,203,198,153,219,97,74,87,36,233,242,187,71,162,144,163,173,102,79,229,44,31,232,202,100,146,29,167,89,112,103,196,232,102,77,74,110,239,251,248,135,246,139,6,81,222,95,243,158,52,182,184,70,238,72,227,116,207,12,19,117,228,66,235, -25,249,234,178,140,234,235,230,93,251,245,59,4,14,73,143,90,67,197,66,2,145,151,133,14,206,30,32,175,135,107,214,117,123,173,108,39,35,237,88,67,217,153,96,82,140,34,58,230,225,222,93,246,174,148,50,86,233,98,45,218,106,43,101,1,145,162,36,209,202,34,205,56,236,110,231,72,215,122,200,124,52,97,80,27,247,115,100,38,59,84,174,236,62,63,212,223,108,60,45,117,51,90,250,109,173,202,166,149,209,126,184,114,109,237,11,247,238,247,112,180,243,212,64,97,223,239,2,158,134,230,46,117,83,12,203,149,115,198,134,81,181,5,9,55,246,26,147,122,208,161,174,14,231,9,144,164,194,161,238,156,95,164,222,82,165,59,193,22,203,86,144,87,7,175,24,185,45,168,214,119,109,247,240,189,130,66,101,152,214,235,30,98,29,16,93,182,172,28,249,206,213,240,113,88,166,12,132,142,247,138,114,229,123,29,253,89,124,224,205,196,178,109,119,223,158,83,212,106,162,7,126,95,162,245,178,184,198,11,149,210,187,66,105,252,123,170,148,209,17,48,214,247,64,206,115, -63,205,55,172,94,249,84,89,192,98,131,67,91,187,253,44,121,249,63,235,122,143,230,102,186,40,61,236,175,204,202,91,141,84,242,194,63,192,63,193,75,45,70,37,149,203,101,149,70,53,210,168,74,90,17,77,52,17,26,68,70,19,36,114,34,2,17,9,128,200,145,32,1,130,36,50,136,72,68,130,200,57,103,223,126,191,145,173,146,237,37,193,115,239,61,231,57,207,57,247,57,253,190,77,32,233,240,237,35,60,41,223,212,62,32,95,58,181,10,241,227,197,169,116,27,190,158,254,172,34,145,134,174,52,89,108,82,107,18,137,232,227,191,239,158,36,211,155,230,244,67,248,16,139,62,159,124,8,162,33,77,65,70,87,220,198,104,237,99,110,183,55,159,226,11,203,0,114,126,94,78,199,184,30,183,219,187,25,13,38,130,222,102,0,121,183,101,251,209,12,166,110,28,233,167,14,140,132,199,241,73,82,127,163,45,74,78,209,217,196,96,249,197,43,254,220,217,146,140,162,234,198,242,3,199,164,181,223,92,31,134,142,91,103,163,55,229,93,231,65,89,146,34,148,105,115, -86,249,190,228,154,119,38,85,98,17,217,136,250,183,172,1,31,189,21,139,156,208,135,240,247,35,184,111,199,6,156,221,237,129,98,105,143,203,45,62,35,163,208,137,231,84,210,153,202,219,91,151,79,163,192,179,207,164,123,142,143,155,131,3,115,96,198,105,151,169,221,39,108,249,152,29,175,4,240,172,117,21,245,21,60,203,193,162,232,188,28,186,30,110,203,36,247,75,226,163,67,99,149,124,245,148,235,173,224,57,252,182,151,66,193,242,67,254,49,95,231,231,109,46,115,30,142,204,93,147,121,139,151,72,55,89,148,79,56,124,123,135,191,189,35,92,220,221,193,92,225,93,51,210,177,188,86,59,139,223,199,231,147,154,182,216,43,116,167,230,37,31,255,197,0,243,227,179,201,143,124,189,232,252,36,212,109,210,137,140,105,139,155,154,220,81,92,72,141,104,119,157,208,175,21,207,16,252,242,199,111,11,26,63,157,89,97,211,216,160,107,126,119,173,113,238,60,84,228,198,84,202,87,187,217,95,145,185,33,68,172,16,45,181,229,126,237,119,88,95,100,9,228,111,99,174, -56,74,229,119,200,47,249,100,209,221,244,58,151,79,57,47,103,80,74,60,36,103,37,6,71,237,182,14,25,60,1,181,109,228,165,87,191,214,87,84,117,155,78,56,27,54,159,59,227,12,150,155,179,175,149,217,108,22,222,185,132,217,165,198,145,254,217,205,247,196,121,83,242,219,69,89,160,79,243,238,112,84,235,19,213,226,101,231,107,61,227,107,190,102,97,153,234,220,9,206,130,39,35,59,17,177,218,207,8,191,210,53,24,158,176,85,23,228,144,239,251,17,54,15,149,232,138,143,18,246,132,210,231,213,248,209,154,240,139,60,92,42,148,183,81,19,204,78,250,96,156,180,78,76,211,5,126,245,249,198,63,47,4,240,129,44,138,115,179,222,227,162,27,102,201,138,227,81,97,138,87,108,239,25,215,91,202,42,60,46,162,42,84,65,249,186,98,81,54,188,46,187,178,246,233,184,59,165,200,156,125,21,169,81,106,239,72,237,142,24,114,43,1,103,168,149,26,167,126,39,58,215,240,243,193,11,104,80,43,93,160,139,54,79,152,245,60,185,74,55,22,109,44,253,232,124, -53,22,108,120,201,111,248,158,192,189,163,217,172,183,125,255,128,221,233,209,107,154,153,237,53,179,182,152,78,31,220,230,115,178,22,232,33,199,227,9,169,246,83,147,47,86,222,216,213,73,147,145,108,238,94,167,133,114,74,156,225,102,107,120,234,80,10,181,174,207,96,172,230,6,64,80,146,133,47,220,74,126,85,172,63,124,169,225,73,175,175,134,171,195,251,95,43,34,165,21,54,5,221,196,213,196,21,187,73,121,186,17,89,201,237,99,233,244,75,252,200,27,212,85,53,42,36,203,20,91,27,15,106,146,254,46,119,170,149,146,96,139,151,82,115,70,3,17,230,163,139,81,64,69,121,82,229,88,3,231,48,96,61,181,121,151,46,226,113,99,250,24,34,179,124,235,150,242,197,96,39,59,102,173,206,60,122,96,40,100,238,23,43,171,58,186,178,94,91,98,213,214,167,226,164,187,166,158,109,179,11,212,237,189,187,91,254,100,6,250,183,52,55,254,154,7,195,251,207,136,245,123,210,102,134,229,3,228,120,51,118,21,146,233,253,85,224,126,247,140,251,37,92,126,44,195, -158,11,226,110,119,106,247,210,235,179,236,164,43,116,21,175,237,54,27,31,46,73,131,85,45,249,120,89,208,211,39,119,47,103,82,139,22,145,6,79,8,121,111,253,124,24,120,149,198,230,107,185,222,52,147,75,175,149,98,45,27,190,71,159,214,66,52,231,76,37,242,148,177,141,99,131,101,143,140,66,130,118,252,178,24,158,185,2,226,206,193,166,78,136,148,41,110,215,61,13,86,205,11,202,137,79,113,14,110,29,135,228,7,195,69,19,136,10,187,12,162,212,217,86,157,67,24,162,108,231,137,19,225,23,39,232,92,92,95,146,150,207,14,191,222,246,104,242,123,230,57,229,121,161,41,170,90,207,181,128,128,65,174,62,158,108,240,211,240,201,220,206,199,100,31,46,65,96,101,50,51,191,2,89,215,225,194,170,46,31,151,165,43,114,185,98,220,158,253,149,221,27,84,190,151,20,164,2,233,220,249,249,182,181,207,162,49,37,119,64,93,36,11,67,233,99,17,207,109,123,80,52,235,182,156,31,222,66,90,2,100,142,247,104,239,26,215,211,195,36,150,248,18,252,66,83, -97,224,188,240,173,92,220,210,89,52,120,129,132,230,31,242,171,239,247,214,6,93,11,216,144,178,89,105,154,171,130,235,237,75,234,124,150,40,214,135,224,104,126,32,187,98,38,11,201,156,113,63,177,10,9,247,87,55,37,125,242,189,200,37,156,186,241,1,254,18,177,67,70,4,218,115,219,84,230,211,231,109,251,142,55,120,225,123,98,198,62,101,255,50,26,68,233,47,184,163,193,78,221,93,60,237,146,102,90,55,108,73,211,58,62,97,189,218,88,24,81,103,73,212,139,48,23,111,56,198,78,193,25,83,107,196,82,98,220,250,70,243,143,6,91,122,28,248,160,169,105,95,130,229,222,250,214,116,164,66,43,135,232,192,104,82,219,168,125,176,254,113,126,55,40,70,157,60,148,157,156,245,138,178,194,59,59,231,134,168,98,230,100,250,76,227,58,201,145,25,42,219,11,254,76,98,78,179,145,120,232,103,97,38,198,70,55,156,239,251,153,212,213,10,173,100,245,154,227,51,56,191,131,127,226,25,17,125,94,155,196,126,47,155,143,34,46,239,88,241,95,108,113,140,91,235, -247,78,64,202,181,84,15,55,234,254,2,242,229,144,221,229,77,233,245,36,202,166,161,156,78,134,22,174,166,222,222,246,100,106,21,94,95,208,17,162,141,187,237,131,174,217,166,122,25,124,175,122,172,91,244,222,84,131,63,165,148,37,97,228,112,12,113,123,121,148,72,27,104,68,191,237,131,201,145,176,239,181,221,23,241,93,179,204,125,166,48,86,165,126,145,155,121,181,223,199,225,128,143,84,15,177,158,63,234,159,49,218,104,118,191,180,57,181,111,99,138,67,189,118,154,197,173,46,227,73,119,129,220,137,218,238,30,229,73,24,113,54,225,192,178,63,13,144,80,197,199,233,60,201,230,101,4,178,209,216,47,40,243,207,166,158,127,232,253,45,32,17,134,192,212,53,8,53,201,47,52,220,237,209,187,84,179,171,113,207,249,14,174,194,93,141,242,178,82,124,249,244,62,111,14,113,13,243,156,13,60,7,110,252,165,151,202,224,230,104,202,61,179,17,129,178,60,160,210,159,239,75,161,239,206,235,45,103,222,9,197,88,218,55,199,117,208,144,161,249,60,147,90,8,89,19, -122,85,173,103,20,28,138,109,124,31,85,190,94,196,171,196,243,143,148,143,119,22,76,207,31,1,63,12,79,79,239,58,227,169,222,245,118,140,53,171,84,242,158,209,93,162,197,157,214,116,114,91,243,179,144,84,138,62,205,145,226,71,19,237,89,238,178,25,213,147,56,86,183,79,113,146,125,225,227,130,26,229,188,86,175,230,164,185,204,69,87,225,108,87,221,147,241,116,61,45,226,174,10,178,49,229,228,233,120,103,33,93,176,156,79,215,144,180,42,76,145,203,238,24,55,119,130,173,210,91,95,233,105,70,121,225,248,153,242,205,63,240,218,152,250,3,186,58,255,4,81,127,250,55,128,150,116,15,164,155,240,51,137,92,190,176,253,122,215,251,108,203,143,55,250,95,189,22,13,207,40,240,68,101,223,113,215,129,57,28,196,8,62,61,244,253,65,181,199,77,173,222,149,173,245,86,225,187,134,90,126,232,156,165,100,206,135,86,88,249,157,25,153,183,216,87,121,36,171,197,254,66,158,12,197,95,118,245,27,33,197,165,205,184,126,82,213,75,3,39,75,118,78,226,145,102, -127,121,10,55,125,30,173,96,209,238,71,14,222,249,10,185,242,166,58,62,74,165,80,59,223,189,140,111,239,90,145,212,251,252,93,183,140,235,173,110,143,165,115,73,122,121,25,162,149,45,101,225,53,139,235,229,100,192,211,133,151,193,79,43,249,106,164,126,18,171,110,126,239,83,199,98,251,106,105,74,198,111,123,220,250,248,147,235,232,81,161,180,200,104,123,245,245,201,238,57,143,26,113,107,76,221,13,251,249,81,94,105,204,151,183,79,158,228,67,30,186,224,60,17,201,176,49,89,11,161,63,166,225,231,166,162,29,34,63,246,223,111,85,219,78,230,205,125,27,25,210,203,251,30,94,171,112,82,243,241,27,97,113,159,18,178,240,40,105,236,219,82,199,158,125,193,121,85,126,142,151,172,194,167,38,92,236,186,40,250,226,247,145,247,29,125,62,252,62,44,89,175,191,79,215,241,225,45,139,179,223,44,244,115,196,35,213,231,104,17,29,171,42,220,231,18,238,253,165,113,222,191,250,214,212,199,54,205,215,57,116,216,185,5,10,51,15,254,245,121,198,15,181,237,13,66, -240,52,131,242,77,253,45,153,104,40,208,192,187,238,120,67,44,236,12,86,55,140,90,221,197,204,46,201,249,69,230,133,109,134,208,70,31,178,84,181,221,144,207,63,203,124,203,210,5,143,173,16,67,220,8,47,163,253,106,30,210,242,217,246,120,205,174,71,201,230,15,193,232,135,159,170,218,29,182,138,122,166,214,26,149,163,51,113,18,188,188,194,89,149,241,133,119,92,34,220,253,106,223,232,239,3,255,123,84,106,124,120,24,151,106,139,246,143,235,185,62,80,14,156,215,123,79,201,182,46,240,150,123,207,155,80,100,182,182,174,93,189,101,254,144,88,30,166,26,147,109,174,9,85,46,229,29,158,236,66,123,153,245,78,148,210,170,245,229,54,249,20,247,14,9,162,3,147,247,74,8,243,123,105,245,120,189,231,68,187,133,209,89,95,252,101,220,127,79,180,211,167,146,254,75,200,171,170,26,90,223,246,167,242,222,121,60,40,81,11,159,95,61,24,52,103,28,241,176,55,7,103,253,88,196,32,204,178,75,159,190,135,232,217,198,154,158,117,116,150,63,31,127,34,199,198, -22,171,79,156,27,64,237,246,77,60,197,108,156,110,115,163,236,181,70,229,5,35,96,210,1,230,84,66,153,195,131,110,5,237,157,213,9,249,156,233,223,136,129,94,149,76,218,99,46,148,28,92,82,146,199,107,214,94,206,149,137,76,159,189,94,134,218,21,113,202,228,162,1,57,217,98,238,197,41,122,244,237,227,238,239,99,184,31,126,64,75,23,23,59,56,254,99,26,199,200,253,53,241,49,63,158,135,163,85,182,78,229,84,43,73,69,121,211,170,98,37,188,205,71,199,43,91,123,151,78,63,222,166,23,214,123,238,45,55,189,200,54,41,197,199,236,239,183,230,233,129,183,9,31,197,151,58,99,99,48,40,94,180,184,5,93,236,23,73,175,92,175,237,176,5,224,50,212,27,83,142,39,231,215,128,85,143,136,162,66,249,169,143,246,215,215,58,149,40,53,157,76,66,1,243,219,214,68,123,189,185,248,148,33,203,187,151,182,77,192,63,199,39,63,16,225,254,230,107,42,42,231,149,26,227,234,82,14,237,159,145,62,158,123,147,65,162,134,71,169,213,21,61,167,167,34, -206,50,250,38,54,247,105,159,196,177,160,144,104,237,2,233,120,1,62,254,114,86,224,246,233,30,83,245,120,247,6,217,131,177,204,217,244,167,166,129,100,127,27,124,249,172,234,123,110,165,185,19,40,228,70,188,34,61,115,76,5,178,23,207,10,142,247,107,30,18,167,164,196,125,57,122,124,242,90,7,108,1,109,192,116,116,77,74,82,255,57,184,63,211,141,149,157,81,184,59,26,133,87,9,253,43,41,35,248,108,22,121,151,188,203,231,17,125,64,252,184,116,140,101,71,141,104,244,245,179,236,243,52,218,183,73,251,208,248,196,229,19,45,253,133,185,86,199,191,64,155,196,197,106,172,243,117,110,221,95,195,221,242,110,250,157,235,189,126,107,77,46,195,38,23,154,141,175,57,178,159,149,203,183,16,44,119,4,229,195,203,42,157,103,244,101,33,133,55,111,254,18,78,75,163,12,229,99,178,175,5,43,151,70,183,237,149,53,19,146,62,250,175,204,219,245,36,228,77,132,84,143,134,250,79,229,104,142,28,156,140,173,216,31,215,25,161,59,22,114,146,63,234,125,81,191, -222,194,228,175,60,177,208,57,41,144,47,186,71,153,222,98,189,221,168,135,153,150,178,165,172,140,158,60,182,253,156,82,214,155,103,206,143,253,71,159,125,147,59,189,244,221,95,134,95,27,237,157,50,118,155,197,149,1,78,48,64,178,124,118,117,105,10,182,186,161,171,76,159,28,54,193,95,215,209,134,146,182,143,83,59,76,167,210,61,116,152,226,247,112,100,249,46,202,121,60,170,167,247,93,94,223,14,175,2,81,98,47,14,21,89,163,228,231,242,153,215,39,244,191,210,52,213,231,238,171,252,113,190,239,153,148,10,248,90,167,104,32,63,140,91,63,180,165,117,70,200,207,15,131,11,167,13,217,91,238,244,249,100,245,166,17,127,0,90,75,237,13,130,75,214,56,197,116,181,96,31,103,24,17,141,92,151,175,254,122,153,24,20,133,129,194,154,22,63,77,216,193,216,145,84,240,123,184,53,169,251,83,111,150,228,246,56,210,205,201,89,255,13,234,106,136,53,220,238,100,68,123,73,207,15,59,53,167,66,202,248,225,44,202,70,121,177,111,99,206,15,243,69,15,163,75, -243,226,21,86,46,61,233,20,252,28,120,137,197,151,36,219,46,93,181,44,196,247,65,7,69,167,17,187,119,85,231,122,43,170,250,233,129,180,219,135,121,39,38,181,163,106,136,36,215,206,112,178,124,62,15,46,158,23,87,173,212,245,17,230,125,133,175,172,158,195,135,71,242,124,20,189,113,243,82,74,61,210,199,75,134,204,217,149,205,233,148,183,76,112,64,71,165,245,86,189,207,132,76,41,28,111,156,169,170,39,125,28,249,190,205,243,74,58,126,108,229,175,219,154,125,241,189,234,121,46,241,21,183,223,147,155,40,188,252,42,22,197,231,44,190,90,225,71,74,120,205,157,41,55,252,230,166,29,238,229,68,113,193,27,137,22,47,245,31,196,42,27,38,235,111,215,5,103,240,247,42,160,182,134,249,222,201,250,39,165,59,135,246,225,67,60,211,144,67,235,225,78,249,181,136,107,234,109,209,225,134,209,126,216,70,20,89,1,154,105,117,196,133,110,162,33,56,167,13,230,138,175,92,175,112,244,142,55,246,57,79,189,119,181,159,4,46,223,106,46,169,250,236,147,220,119, -32,234,234,211,138,201,117,141,67,221,93,158,52,182,77,52,39,8,96,31,149,75,253,68,124,77,41,123,105,132,231,172,176,84,90,183,28,199,212,248,251,179,126,92,203,229,21,226,118,169,74,60,137,127,159,131,109,68,73,59,217,140,195,105,91,208,27,247,14,53,118,238,187,55,234,20,207,167,231,182,147,231,252,42,197,203,214,10,170,95,62,233,151,122,143,39,173,27,167,69,246,118,105,127,87,18,20,191,246,171,169,166,164,45,190,241,132,67,225,146,254,40,249,93,234,17,164,144,226,32,63,225,30,43,50,187,29,200,18,137,65,27,250,160,240,30,141,190,234,15,209,205,157,173,66,132,220,116,19,91,190,212,198,179,235,149,161,76,171,170,78,230,211,254,58,239,178,57,63,151,13,239,83,125,216,7,163,98,127,202,51,24,62,207,139,222,126,251,155,83,168,120,51,102,143,105,202,213,141,55,155,132,118,112,51,169,139,230,245,251,211,146,40,93,73,213,199,159,222,210,40,229,174,69,115,7,235,167,124,1,159,53,180,15,87,223,238,71,98,16,227,75,164,226,76,207, -63,218,146,3,121,231,9,120,181,124,165,223,250,238,89,183,110,186,46,234,38,73,13,162,244,28,63,16,122,3,141,107,119,229,150,208,186,255,209,28,236,126,45,92,173,87,109,20,91,252,230,181,32,159,190,52,40,92,162,166,38,234,245,103,50,183,196,184,123,100,90,14,204,61,187,154,61,80,241,3,163,249,130,244,76,143,157,214,14,177,36,28,245,203,178,4,19,155,191,47,68,108,142,218,250,211,201,229,196,126,234,62,223,197,83,112,116,201,152,234,111,190,16,1,254,174,246,59,113,198,47,155,169,120,243,5,162,68,234,55,23,29,232,56,74,219,28,155,81,215,87,138,232,38,249,223,7,210,244,163,49,109,253,62,207,178,11,227,175,128,88,52,138,113,133,26,135,29,152,6,212,51,10,37,212,58,241,108,95,23,63,136,126,210,213,100,136,244,107,87,196,11,5,189,225,101,198,46,249,93,255,92,41,76,55,99,82,244,211,68,84,146,241,28,124,183,35,211,103,92,133,158,41,64,211,172,81,163,63,225,72,48,80,34,62,8,225,46,252,121,49,157,136,224,241,80, -29,231,23,107,233,13,34,30,230,92,84,30,136,29,55,151,41,223,30,207,211,119,170,209,159,195,209,36,157,23,95,69,162,91,218,115,2,184,181,157,198,161,157,45,202,172,24,250,233,62,57,130,70,142,102,177,119,112,77,126,214,166,59,44,169,245,24,242,48,225,188,103,92,122,175,236,170,239,119,134,116,255,104,145,149,252,165,171,175,208,62,113,15,71,195,72,174,181,15,55,151,59,15,146,101,199,106,199,155,245,123,245,201,64,72,67,179,206,207,74,71,209,87,213,105,92,255,59,227,68,102,150,211,61,100,244,43,251,139,196,238,134,132,24,93,95,239,253,135,252,30,44,156,35,120,56,242,222,81,43,147,138,251,43,93,166,48,64,163,135,244,74,150,185,92,169,23,107,251,49,155,63,42,107,90,193,76,118,96,163,249,165,38,124,163,79,30,59,143,223,151,154,78,63,145,118,19,250,22,63,239,119,84,153,153,149,27,94,116,136,227,49,249,38,111,178,117,210,191,24,156,239,237,61,250,200,151,197,102,190,141,194,240,38,176,192,10,106,123,121,189,113,46,157,154,212, -81,149,184,175,202,87,58,85,19,18,160,52,197,147,127,20,24,15,216,182,254,135,94,177,253,21,124,235,79,210,180,247,110,112,47,136,209,50,159,202,102,155,109,111,147,30,84,213,114,81,119,223,188,65,30,42,233,2,169,28,64,170,38,237,36,227,31,141,138,43,198,250,19,189,125,129,114,28,118,94,35,28,51,20,42,115,8,97,71,37,178,54,13,137,78,146,175,106,109,109,216,214,207,252,49,104,239,148,115,179,110,164,108,64,6,118,132,79,224,52,233,15,249,229,109,203,228,239,202,10,97,221,196,185,225,248,191,33,190,45,28,41,154,187,126,125,123,91,170,105,110,17,119,234,10,252,46,102,165,69,15,189,47,22,231,139,29,81,95,194,142,206,40,103,122,130,245,76,193,77,195,200,161,193,138,85,236,198,12,167,190,235,183,191,186,242,246,91,123,186,87,51,111,120,45,147,120,221,30,213,219,174,11,61,82,116,56,159,22,237,168,110,248,165,111,186,159,12,185,22,91,6,83,207,239,210,174,160,108,237,28,74,144,89,105,0,174,37,244,174,175,63,153,121,2,57, -141,78,11,149,188,73,75,207,177,123,202,199,152,97,157,236,174,38,71,203,95,137,148,44,254,74,228,205,95,230,187,190,7,209,40,225,198,29,63,245,153,237,46,245,26,137,0,118,220,177,36,11,103,56,12,93,215,92,232,69,135,236,66,122,171,55,191,118,90,18,7,211,146,15,24,113,127,19,122,50,57,30,185,155,230,107,203,197,28,134,82,198,238,59,158,246,237,145,107,233,153,71,38,30,134,112,70,191,88,76,255,139,224,184,191,8,222,195,67,179,39,255,172,165,79,20,20,21,189,249,195,42,57,253,108,92,169,71,51,156,211,137,157,203,72,199,63,211,108,37,245,60,127,57,66,167,73,1,158,66,138,84,52,156,151,160,231,248,24,69,28,215,9,139,92,254,97,16,192,240,91,16,20,202,147,118,131,103,146,30,224,100,100,130,22,18,245,48,132,151,223,140,203,183,210,192,48,144,252,213,201,197,91,157,197,149,184,130,121,116,99,177,102,164,145,244,136,243,68,141,208,47,126,60,251,148,74,190,209,109,156,205,251,87,38,253,112,95,236,60,63,67,186,72,94,151, -167,66,248,27,216,179,102,202,163,226,237,252,168,98,30,30,209,178,31,98,86,253,68,100,152,159,92,51,191,118,72,229,21,122,135,188,42,23,9,172,76,136,21,100,188,1,46,197,171,248,48,176,10,35,117,22,136,57,47,190,70,216,39,127,176,23,184,147,223,218,181,92,35,75,140,83,190,29,15,42,102,25,125,147,87,195,82,102,126,146,144,49,191,144,47,89,32,214,10,208,69,68,38,93,115,200,168,176,173,126,75,41,189,4,247,102,152,75,224,39,109,254,26,255,156,133,62,35,147,66,141,177,102,5,32,38,225,202,152,2,142,231,249,43,63,135,20,57,113,116,150,215,122,32,14,28,223,136,169,32,188,215,145,148,31,241,207,166,77,53,19,251,47,39,46,128,135,217,7,161,45,83,77,8,211,10,19,4,28,105,89,73,2,173,0,247,219,143,39,69,132,204,32,227,178,102,173,165,123,12,102,154,238,38,234,236,186,14,142,39,181,126,43,181,116,49,74,68,220,195,192,152,136,109,14,147,244,16,2,173,24,0,81,251,198,254,2,149,32,118,25,97,210,203,16,90, -188,52,214,196,96,91,170,19,219,118,243,141,175,129,109,57,47,140,90,216,90,123,96,35,76,206,165,31,146,129,45,236,240,21,0,150,181,102,249,193,30,31,148,23,40,14,24,11,3,95,99,65,11,200,80,152,161,51,22,233,68,96,146,170,255,1,182,24,181,96,104,240,88,49,4,228,11,238,72,106,215,72,76,92,183,214,196,124,0,98,104,32,193,131,181,183,102,21,147,225,70,7,145,104,24,18,49,219,50,24,64,63,16,107,193,126,74,134,195,88,244,211,107,143,226,73,143,6,112,11,191,176,147,0,183,200,51,68,99,182,49,100,35,228,96,176,135,187,37,233,67,72,99,197,4,62,5,248,14,54,169,130,120,103,31,31,47,16,179,45,229,190,20,180,147,50,135,109,84,99,222,227,241,164,27,56,13,104,33,190,220,186,183,108,210,8,97,196,202,175,32,227,175,82,228,244,160,74,41,126,175,132,182,26,31,3,130,140,157,10,174,82,112,106,92,20,103,156,1,190,72,250,134,145,0,101,0,90,37,39,236,135,230,127,240,32,131,96,205,167,123,10,136,3,70,212, -88,28,135,83,143,201,148,209,15,76,64,71,136,6,225,179,80,41,50,9,21,232,107,51,216,107,99,168,124,48,106,182,26,69,10,208,145,2,139,0,244,33,0,159,63,87,233,24,173,62,190,43,97,0,212,59,58,73,96,196,30,252,116,96,16,20,108,73,112,32,184,235,4,60,8,26,152,127,236,142,223,255,100,135,225,177,25,147,196,124,121,94,209,145,192,98,36,181,196,147,86,217,35,18,98,212,30,107,10,250,17,16,196,123,112,120,177,108,55,11,17,178,127,54,176,128,24,102,32,136,162,177,166,125,161,138,3,171,123,5,249,14,132,49,95,179,228,87,226,45,153,3,16,140,34,95,162,247,32,196,108,180,37,24,130,25,54,248,16,59,255,194,22,101,3,134,162,166,129,18,68,188,217,128,248,125,240,175,92,252,230,184,213,129,196,48,60,119,187,77,110,173,92,16,49,94,74,146,88,221,228,45,34,49,238,225,173,186,185,148,6,250,151,1,101,248,19,172,180,179,138,157,0,212,116,50,192,158,113,134,138,201,45,163,218,19,44,198,233,222,114,122,121,100,82,28, -26,245,1,34,190,164,149,201,96,84,27,73,48,50,0,134,46,73,26,120,109,5,152,85,80,103,206,67,86,67,198,243,90,150,197,129,84,152,40,113,126,82,100,228,71,234,56,153,81,204,70,35,182,103,105,190,166,70,168,125,162,138,249,97,2,203,90,205,192,35,182,236,240,60,180,169,153,35,173,106,236,33,20,73,23,105,81,130,111,18,39,235,186,77,230,57,76,175,189,41,200,69,128,131,225,24,165,27,46,126,198,222,119,198,228,126,140,19,16,141,18,151,67,11,26,67,63,25,36,34,40,63,1,10,40,187,245,98,219,6,146,179,42,198,243,101,175,71,14,145,208,60,249,190,102,189,16,227,222,72,101,44,188,163,19,98,227,229,231,164,52,50,121,45,24,27,23,32,207,44,223,90,248,2,173,75,239,19,209,243,45,192,129,250,97,73,64,240,126,169,194,210,244,45,141,80,38,133,137,237,18,79,138,69,78,167,61,200,131,178,9,89,9,102,122,77,88,61,138,177,186,200,39,156,8,95,40,211,76,217,168,124,27,130,68,137,5,182,48,41,229,130,230,50,89,95, -98,125,246,52,62,167,229,143,27,159,33,191,15,111,49,220,182,22,213,53,19,254,116,15,2,84,129,48,0,9,92,44,21,147,82,70,221,83,94,0,74,51,13,133,103,70,194,199,162,204,26,167,195,222,9,104,233,22,232,44,181,135,192,26,164,187,84,170,255,161,165,246,208,189,6,81,249,118,196,30,200,97,32,236,83,240,65,115,75,39,130,200,15,58,200,49,228,249,73,157,133,217,185,151,7,176,231,144,160,85,208,35,147,210,4,84,210,51,253,192,47,130,138,145,194,65,72,151,55,190,196,254,208,86,78,118,2,156,207,27,129,152,22,240,62,164,0,135,47,116,249,185,24,244,194,180,144,140,2,94,202,10,84,112,94,83,78,78,1,187,241,57,70,79,212,218,23,94,73,100,66,45,78,234,6,117,196,255,61,99,99,192,137,222,250,32,171,238,144,212,142,197,63,26,227,249,32,254,174,146,77,226,87,144,211,241,189,32,119,138,183,5,204,112,46,234,97,134,34,239,159,178,16,157,237,116,0,204,110,201,38,130,30,176,82,202,112,225,55,86,50,136,160,157,237,23, -136,198,198,19,76,212,168,27,48,242,210,130,133,189,167,72,151,32,108,194,158,73,191,188,248,121,235,36,81,228,162,183,226,128,78,160,241,40,97,53,104,25,230,44,132,55,139,233,141,192,85,51,224,163,130,254,130,219,222,84,177,18,190,218,156,219,33,112,20,23,212,122,16,186,198,103,72,191,1,11,25,166,5,225,177,72,14,242,255,106,240,1,186,151,140,183,107,10,160,17,165,72,5,86,159,120,210,47,39,16,4,86,176,136,206,199,172,174,121,25,53,19,116,150,126,188,211,197,10,193,146,104,225,225,18,145,249,1,145,55,127,204,132,27,41,48,51,120,165,78,80,59,147,202,40,141,173,74,119,36,36,8,241,42,34,70,228,203,159,214,110,180,249,57,17,120,246,102,27,74,35,156,73,209,184,203,189,201,201,226,237,27,214,15,156,160,31,220,25,107,231,14,56,59,80,36,195,172,126,181,238,120,58,44,172,68,113,64,31,42,6,69,140,218,83,77,201,138,48,253,51,22,216,22,33,130,110,203,133,171,137,47,45,255,154,222,93,229,103,86,189,231,3,164,54,88, -178,97,55,219,70,214,142,53,129,11,77,38,102,188,162,203,173,249,9,62,75,194,35,95,8,255,164,61,250,8,25,172,106,74,79,160,239,24,224,241,105,195,22,131,188,177,117,209,134,25,167,60,29,13,165,112,151,94,107,78,9,100,184,220,71,248,223,122,242,148,242,234,41,217,210,242,141,95,183,105,131,74,164,19,221,56,93,116,6,191,108,212,90,160,252,181,123,152,35,14,92,73,41,145,134,188,92,172,173,93,26,105,156,138,101,216,214,5,89,176,235,54,213,174,8,120,227,3,117,226,214,77,172,241,178,228,85,103,44,97,157,92,3,63,201,66,83,81,193,177,118,129,122,85,92,150,217,136,176,9,197,105,42,108,245,186,154,52,98,193,236,9,178,16,88,46,235,36,79,33,212,94,104,123,67,244,69,237,252,75,124,129,218,87,252,228,78,6,74,144,112,58,174,177,139,39,124,154,30,235,96,233,168,110,153,144,225,149,109,181,57,178,196,129,211,107,241,141,12,199,215,240,249,29,251,49,118,113,208,251,25,224,70,201,174,125,4,0,26,33,17,124,101,129,246,12, -26,183,180,205,4,204,171,10,26,231,149,18,180,139,241,49,31,192,144,47,21,46,129,3,151,29,201,156,212,4,130,201,40,214,62,22,106,7,126,242,141,3,225,247,205,46,27,225,10,17,239,153,133,245,207,243,129,1,106,84,16,40,85,15,56,188,220,113,190,212,69,211,16,159,156,171,222,240,37,17,163,31,161,128,8,17,175,49,34,6,27,10,92,11,140,87,218,242,73,203,3,249,176,89,84,153,54,194,95,9,244,183,69,113,64,27,185,207,79,162,121,163,4,7,56,243,181,6,164,1,212,74,255,62,93,70,140,243,202,5,86,4,238,149,32,146,212,4,160,194,228,182,216,8,52,3,175,120,168,140,151,87,61,60,105,224,177,31,224,85,207,100,60,36,63,3,117,83,15,200,239,128,89,77,146,7,163,216,36,155,132,240,122,121,213,76,0,126,138,2,85,219,9,220,1,234,51,172,195,131,30,193,172,227,238,181,192,55,188,17,209,99,148,109,229,23,108,112,252,90,54,82,96,101,210,194,251,128,159,190,98,135,20,132,130,244,26,154,176,98,244,231,209,152,20,128, -185,247,200,38,101,42,72,195,54,126,14,34,78,110,94,114,141,60,94,2,205,56,17,32,66,8,121,226,3,1,227,83,201,255,20,210,176,144,174,200,181,60,183,246,18,168,140,46,184,200,173,198,26,8,224,171,25,194,147,250,84,243,11,148,206,65,156,234,48,16,124,218,109,46,57,96,86,92,112,128,62,189,49,213,194,166,90,31,228,169,159,81,135,48,97,115,78,218,166,54,230,23,43,120,145,151,104,49,105,128,3,177,62,2,253,96,120,52,213,76,181,210,84,9,225,151,239,89,50,62,107,128,223,109,131,96,80,178,227,56,190,58,13,50,157,60,187,2,59,94,169,176,178,60,241,197,250,186,199,127,5,240,120,8,244,171,163,80,112,39,113,176,191,38,165,196,13,94,155,111,119,145,152,20,170,91,197,32,12,100,235,117,196,232,244,252,75,0,197,212,139,247,44,103,144,72,223,78,132,67,0,77,147,11,206,245,49,255,156,203,2,113,144,190,55,113,134,8,176,204,26,95,137,239,37,38,81,178,6,63,49,181,27,22,56,87,41,194,204,92,44,252,23,137,116,100, -3,194,156,250,129,199,243,233,2,175,14,157,242,100,78,16,186,2,36,243,243,80,62,166,175,2,12,237,230,74,187,57,225,3,193,70,198,214,22,3,30,24,209,197,113,29,49,122,67,127,244,180,139,249,165,66,168,24,128,52,186,146,196,100,186,146,52,61,152,195,32,133,232,228,33,224,75,66,233,159,115,49,4,247,52,35,56,247,172,36,133,128,85,151,247,2,177,114,80,206,183,189,34,165,86,194,107,140,39,22,175,92,139,30,46,96,28,13,118,197,152,114,185,106,197,43,97,64,15,145,101,137,81,171,58,8,127,110,65,177,214,169,226,193,66,39,212,72,208,64,208,79,141,0,21,156,173,36,50,153,115,151,201,135,29,125,149,59,153,175,73,43,142,157,140,169,48,65,4,15,228,47,4,240,107,172,132,210,72,100,32,10,184,177,238,156,183,24,87,15,76,230,254,198,51,195,216,114,34,224,115,89,8,180,170,252,228,152,86,67,248,208,169,238,190,193,118,131,69,70,192,133,198,217,123,125,247,0,156,180,69,242,25,93,254,26,48,207,101,140,177,228,242,85,92,20, -250,83,71,121,243,7,9,0,250,16,215,98,243,74,9,112,79,67,167,97,102,113,59,102,54,54,170,157,192,236,227,60,121,112,99,171,62,77,65,44,22,58,138,205,45,159,216,220,66,132,128,245,30,236,73,5,93,62,13,26,10,5,169,156,214,175,114,177,96,251,138,9,108,30,198,103,227,53,34,124,69,86,66,9,168,224,132,185,173,2,91,186,149,139,211,13,118,3,212,147,65,30,122,184,194,230,13,63,160,214,134,177,165,128,54,162,188,159,96,93,153,187,54,140,12,160,223,84,197,240,6,76,37,4,32,77,173,49,16,173,113,76,193,99,86,138,164,156,15,172,246,149,118,132,234,159,197,193,245,142,214,14,209,5,216,183,77,87,161,101,116,16,151,107,193,15,63,63,100,252,173,1,158,159,28,66,82,42,226,21,98,133,251,3,186,18,170,221,240,105,29,176,191,132,141,128,73,247,244,6,46,33,217,204,220,198,160,105,125,156,214,105,121,94,105,87,96,194,232,58,116,75,192,203,105,178,252,36,88,152,244,165,224,236,75,165,252,143,226,221,79,135,113,176,131,136, -37,6,186,47,31,92,96,243,129,130,141,120,153,8,19,187,191,173,86,14,38,64,180,103,89,135,94,107,39,19,193,11,4,29,40,157,114,49,103,27,37,195,55,48,193,129,153,29,202,142,63,243,156,185,90,100,32,160,33,33,104,241,221,88,219,75,159,33,230,209,23,55,1,1,96,11,202,49,225,249,46,195,154,154,177,217,10,99,243,22,45,17,204,215,254,164,35,0,253,8,66,4,188,75,46,37,230,129,174,216,51,3,84,0,143,18,220,63,84,29,247,244,122,135,229,227,14,147,21,190,8,67,192,28,224,217,47,55,96,152,244,49,73,204,28,253,112,216,130,179,163,176,233,124,182,49,233,239,135,42,80,229,200,202,206,4,118,9,94,67,7,52,99,224,7,235,127,241,8,86,72,26,227,112,60,150,5,86,210,17,38,63,6,74,46,136,101,75,251,131,31,85,193,146,139,39,219,223,123,140,129,63,234,135,10,112,223,215,34,160,216,196,108,188,240,3,33,42,118,202,53,160,237,97,129,95,18,226,64,117,56,36,53,236,18,106,160,6,10,152,106,12,175,136,174,151, -159,16,146,146,0,147,157,214,90,154,184,74,220,6,174,29,241,206,186,246,49,128,192,149,194,168,95,107,255,192,18,28,197,99,187,132,99,121,108,151,128,159,97,6,102,189,66,9,227,129,13,243,204,40,167,11,0,176,22,218,11,22,104,154,120,207,188,123,20,207,222,52,11,224,174,6,32,241,10,135,73,84,32,249,99,65,0,175,88,2,107,65,211,190,126,37,227,223,12,48,3,201,73,3,53,61,233,25,200,115,35,30,16,30,70,98,12,57,128,131,135,253,13,29,112,104,26,164,140,83,254,193,82,65,151,121,59,215,96,75,158,20,67,141,73,162,206,72,43,199,27,216,178,94,203,131,139,134,201,147,124,98,1,6,81,199,171,12,232,195,100,16,15,96,80,0,204,62,183,48,184,110,181,17,36,250,103,155,71,226,25,6,238,194,69,44,151,25,144,120,22,179,157,212,218,181,246,163,48,10,232,85,40,252,193,233,222,107,137,0,193,232,229,235,44,145,90,192,153,4,154,86,130,96,68,231,219,153,96,28,104,253,36,228,220,141,142,40,116,81,48,158,83,48,158,203, -255,240,60,34,87,97,121,186,38,195,111,55,176,50,14,36,227,131,41,14,99,148,147,52,219,6,224,167,65,28,64,116,121,63,145,10,116,77,108,92,15,180,46,3,234,57,144,9,167,237,84,138,165,211,116,154,34,32,3,72,50,31,100,161,252,156,36,16,211,218,49,255,237,209,5,9,35,120,205,252,129,77,213,112,199,1,228,83,12,136,161,14,202,174,1,234,116,83,22,192,91,223,225,86,138,89,249,7,7,12,255,131,37,129,79,192,106,39,16,100,55,160,191,62,214,62,238,2,220,96,26,165,8,157,52,112,190,151,6,28,39,97,172,1,55,235,75,74,18,208,26,155,1,127,43,208,184,195,234,174,253,251,167,51,92,220,154,9,192,148,64,196,154,112,87,192,204,126,64,160,235,193,93,10,208,36,199,141,240,133,0,156,102,36,167,17,39,24,221,192,113,176,88,185,0,178,50,86,199,1,167,82,206,0,68,96,182,219,160,60,116,241,9,194,5,178,67,228,193,161,64,78,170,168,23,64,78,74,1,162,144,92,201,250,51,158,227,176,240,235,117,95,26,164,1,12, -16,255,212,255,130,73,72,134,249,31,174,98,254,15,182,80,2,47,55,104,129,50,246,23,141,63,13,32,141,197,238,43,204,179,0,69,0,68,239,51,208,37,5,250,76,8,56,150,209,161,24,236,151,211,215,48,200,158,44,129,225,121,184,127,134,82,133,9,2,42,37,140,123,57,120,85,32,199,78,33,21,115,232,230,207,250,239,63,235,119,216,250,52,66,198,250,231,2,207,99,1,96,105,1,46,242,153,159,152,169,36,232,55,176,198,74,255,81,127,9,172,12,229,44,152,61,138,137,246,143,106,3,162,216,88,232,157,63,143,1,238,140,210,154,141,10,66,188,103,2,114,69,222,197,145,87,255,236,33,7,26,222,43,186,152,33,33,136,169,33,72,97,31,172,78,113,211,241,210,68,70,37,165,126,3,59,80,137,1,156,181,143,49,112,23,162,220,194,0,46,248,143,119,4,1,243,249,3,187,127,10,244,163,240,13,0,148,51,36,48,80,59,94,255,5,141,180,218,94,21,59,151,65,104,140,33,127,254,243,248,106,126,59,193,147,62,11,9,199,248,67,44,207,223,48,58, -18,62,9,121,234,1,97,212,208,134,131,46,180,108,175,4,176,130,111,198,249,167,136,49,109,236,72,46,254,168,20,75,221,20,184,199,144,216,98,253,141,30,32,98,125,235,247,19,32,121,7,211,214,125,18,94,238,26,147,48,143,222,63,48,43,149,214,14,1,206,99,252,117,244,81,44,129,104,68,224,148,5,168,206,63,120,107,1,127,43,218,201,51,112,8,218,160,131,219,36,48,104,191,210,158,128,154,179,25,131,0,80,113,90,146,12,188,18,239,64,62,170,47,139,239,137,19,246,54,120,156,201,38,195,124,249,213,6,32,175,208,11,101,130,226,132,248,255,227,249,249,35,241,175,231,143,168,120,34,134,233,81,177,100,146,204,20,19,102,185,27,193,67,100,194,255,251,185,228,19,30,138,254,226,114,113,206,23,41,147,136,85,223,237,217,32,226,62,54,105,116,134,34,20,115,156,29,249,146,67,231,223,123,100,97,226,35,225,14,137,50,44,95,179,163,204,21,29,92,226,70,70,70,135,172,111,32,169,77,176,50,14,30,192,249,171,186,245,226,234,71,174,9,1,142,114, -38,28,187,46,242,145,156,146,200,72,74,113,47,50,2,31,43,132,28,100,63,254,70,73,225,162,81,66,171,0,171,137,128,100,215,137,63,160,205,66,9,207,52,109,157,209,37,147,181,230,0,111,138,218,0,95,245,237,55,162,109,139,116,219,82,167,58,153,41,194,143,237,201,65,11,164,123,30,226,78,90,47,175,189,51,207,240,238,107,221,71,222,91,164,162,234,252,80,240,67,42,133,13,235,249,141,50,17,132,138,186,231,62,46,233,140,73,234,201,215,219,220,147,142,52,11,109,71,12,181,172,89,141,17,115,207,223,221,251,65,16,138,34,6,152,124,223,183,19,194,183,173,209,79,241,41,194,106,57,202,186,201,225,16,159,154,188,201,201,87,0,72,167,192,251,164,84,139,252,54,231,101,186,54,30,73,71,13,248,225,67,30,181,143,15,211,193,98,196,128,141,191,254,247,73,177,246,68,165,206,231,67,6,141,245,248,29,77,43,146,125,212,78,190,221,54,104,145,26,66,178,193,175,125,187,237,94,237,10,110,173,124,42,194,42,143,25,142,39,251,61,157,129,18,23,7, -244,71,127,203,146,51,161,95,28,62,83,72,124,28,250,247,214,137,183,140,114,153,153,107,104,136,147,29,43,162,121,47,8,137,224,28,100,25,164,153,209,208,147,191,145,175,61,76,10,254,61,105,111,173,227,210,72,232,167,99,206,228,19,141,250,229,69,154,142,170,208,77,193,115,21,32,177,59,56,105,91,61,64,55,251,249,85,12,95,196,50,78,104,145,64,242,233,168,229,175,127,117,41,212,19,182,151,188,88,245,113,1,242,2,81,144,131,242,24,67,189,223,190,56,122,99,16,166,248,59,93,160,94,50,227,145,232,122,153,173,168,101,97,89,21,49,111,22,71,239,183,27,244,111,161,215,38,160,142,96,225,254,20,226,52,87,66,155,63,220,95,119,183,141,173,206,232,217,243,117,218,159,238,248,179,45,43,162,246,117,249,242,33,232,83,130,95,54,28,186,165,253,216,119,188,57,63,214,204,108,52,85,225,197,14,107,173,209,149,101,14,223,191,81,183,93,122,112,22,79,34,189,48,7,109,175,189,243,157,75,151,184,147,14,213,17,212,94,25,154,159,109,90,21,97,119, -148,56,55,35,100,48,10,52,214,97,168,109,83,207,73,90,120,69,120,233,125,229,240,223,150,97,222,138,234,236,210,65,101,180,223,147,83,122,78,253,164,30,12,251,107,237,103,214,218,202,39,124,227,246,131,218,123,125,112,85,47,81,149,237,69,150,30,133,149,6,6,58,116,21,247,233,105,81,80,91,20,143,228,137,249,62,83,246,245,120,250,152,50,61,213,19,109,158,250,99,206,215,28,234,53,217,87,51,61,90,241,229,218,67,176,7,216,226,57,131,230,199,46,229,36,188,134,92,165,236,55,47,102,97,161,249,152,171,138,126,230,151,134,40,71,226,136,94,47,31,130,217,156,221,166,246,133,234,205,13,51,149,58,198,92,229,17,73,81,102,27,102,211,137,211,92,109,162,170,181,56,221,26,133,148,236,193,154,185,1,229,145,61,159,161,239,199,146,24,159,206,125,171,40,114,91,159,88,130,164,182,172,243,72,82,159,12,46,147,50,5,173,83,188,188,142,234,110,152,180,80,98,20,104,239,205,206,172,67,227,90,209,74,181,22,136,123,210,196,165,79,203,186,234,42,61, -137,92,191,57,75,180,68,238,253,77,50,43,221,47,54,14,87,118,252,59,121,24,31,78,86,228,42,179,21,218,96,255,174,234,40,13,8,91,206,208,149,122,242,95,6,81,85,149,177,122,214,151,217,202,254,32,170,79,126,64,54,209,131,226,244,19,220,185,79,21,36,58,176,215,245,72,180,178,21,102,109,126,199,173,64,23,221,43,89,67,217,215,138,216,138,62,146,221,179,199,152,166,91,136,245,115,231,192,160,232,93,222,228,29,187,105,227,189,204,151,199,214,106,35,172,7,64,107,219,140,20,177,29,32,201,226,196,25,95,59,247,225,231,170,79,52,241,88,200,147,183,189,15,245,3,50,80,60,103,143,189,87,70,248,182,183,214,150,60,240,74,242,50,215,81,43,237,189,46,1,109,189,115,170,234,230,253,193,178,249,130,172,219,218,113,218,180,187,189,243,165,174,224,200,140,211,183,47,243,82,109,247,187,40,61,22,249,235,251,135,225,56,105,106,182,153,61,242,124,18,81,247,69,122,159,50,20,181,150,221,87,48,34,116,219,4,134,1,178,231,83,43,165,64,45,80, -225,212,211,203,253,98,186,40,163,118,102,218,99,52,181,186,1,199,154,212,222,229,240,241,220,56,253,98,120,8,123,184,35,252,114,46,28,142,144,209,20,127,5,11,143,226,148,72,136,150,149,222,146,47,126,179,28,235,200,58,251,241,172,66,220,13,156,191,86,18,99,245,3,90,47,29,244,94,172,245,146,113,87,176,91,57,243,36,33,66,60,13,74,102,0,106,198,230,127,20,7,23,202,249,187,192,209,136,128,162,145,110,198,184,67,59,224,16,168,87,27,3,121,210,221,29,157,155,199,113,253,25,101,151,104,25,207,193,9,74,161,146,42,229,11,9,243,187,180,139,234,232,107,153,38,127,251,178,71,250,103,67,36,103,114,80,35,105,148,232,216,51,178,131,134,7,6,122,145,217,54,160,106,17,34,18,229,63,197,97,15,233,33,56,178,107,23,55,182,144,201,245,56,79,219,124,223,162,121,49,104,125,160,71,243,190,97,64,177,66,199,150,102,214,34,118,174,188,79,129,39,127,215,73,43,61,161,29,132,201,209,199,210,83,29,49,247,126,25,206,30,71,189,102,220,42, -30,44,231,133,218,101,222,212,43,38,92,213,172,121,19,133,74,171,181,174,4,133,79,57,179,84,42,183,37,95,145,193,93,68,160,83,185,32,161,186,89,85,195,10,116,124,255,120,226,160,27,205,220,154,120,87,107,39,3,252,50,132,70,98,79,56,133,94,15,175,3,46,233,64,35,54,136,16,119,214,231,86,152,9,72,110,39,227,35,228,156,182,117,40,215,208,54,157,103,109,113,133,3,95,161,109,217,172,151,200,3,8,234,20,70,62,163,41,247,46,155,152,150,226,236,94,173,147,111,85,84,143,44,21,69,217,247,69,171,208,99,46,222,250,13,144,56,192,205,2,18,203,177,91,231,114,77,150,83,157,66,219,195,79,91,144,110,108,9,204,221,112,146,57,142,124,68,62,91,40,120,40,160,76,93,141,222,142,190,15,113,205,82,140,246,45,42,29,131,73,123,149,209,242,41,168,178,97,85,51,21,171,249,236,119,205,179,12,4,142,214,114,166,152,171,248,169,136,239,141,155,97,163,20,175,222,145,48,200,105,0,115,1,172,168,112,195,114,7,50,43,48,12,194,157,215, -127,156,22,171,250,170,18,201,61,218,98,186,196,46,187,136,13,113,102,1,69,88,102,120,83,160,167,222,140,117,244,133,86,117,134,167,53,242,205,95,233,30,183,112,117,92,219,71,204,28,9,132,156,122,252,53,190,76,131,4,83,0,151,160,106,16,187,152,233,127,209,74,28,249,139,86,56,146,0,182,186,200,8,254,133,67,237,123,84,41,121,238,190,15,62,142,34,184,63,93,157,136,61,10,2,55,250,36,71,25,103,30,141,223,171,177,240,251,226,135,99,44,173,208,58,78,0,87,42,62,73,139,29,211,77,118,172,210,158,124,19,141,75,241,92,120,164,157,172,138,65,33,173,53,26,81,209,31,230,175,252,107,131,135,53,20,157,248,86,205,225,218,40,232,198,243,52,43,97,215,58,232,80,26,227,207,72,55,57,109,91,230,219,205,72,171,250,201,37,240,42,180,99,78,99,159,107,39,187,97,235,201,181,89,161,196,62,145,95,4,197,129,156,200,36,185,11,113,127,3,237,64,240,26,197,33,132,34,207,192,156,86,89,49,68,186,233,46,165,156,175,21,46,21,172,27, -252,126,26,13,219,54,65,136,131,242,205,47,207,78,205,64,41,72,41,39,147,62,78,121,99,208,151,81,21,27,49,100,180,170,36,180,165,226,67,220,136,109,60,238,228,98,141,61,241,154,135,208,47,208,4,53,23,31,138,10,195,202,146,95,77,35,3,131,54,113,15,183,100,173,11,70,1,202,53,203,237,172,101,239,248,246,216,158,7,136,1,72,56,241,172,40,158,201,111,90,89,193,163,225,143,71,45,54,47,181,227,191,253,174,70,182,39,221,19,45,127,105,55,93,52,235,195,27,107,116,234,92,24,208,227,124,10,195,21,139,63,123,125,183,228,251,159,243,226,141,54,209,196,21,232,20,27,249,177,61,40,53,22,254,187,75,27,186,153,36,101,3,52,178,237,173,123,85,146,160,198,253,148,33,68,131,86,85,128,154,179,21,252,10,112,215,235,36,101,180,154,79,72,225,49,117,221,51,68,236,38,159,191,111,229,148,26,46,154,73,172,54,250,243,9,235,244,166,188,2,103,253,40,138,244,97,84,227,63,219,77,127,44,186,13,4,41,151,106,189,244,249,41,35,7,217, -157,64,54,52,163,49,154,247,254,254,8,109,19,46,24,216,83,29,66,126,245,135,36,178,255,71,247,149,197,19,139,120,196,245,124,104,131,159,140,194,202,248,121,11,122,18,65,53,193,133,70,37,164,71,123,123,209,179,184,95,253,124,74,83,221,41,139,146,229,231,197,18,250,81,9,142,130,118,135,213,163,88,11,124,179,39,105,58,171,145,220,219,246,53,107,118,124,191,14,83,58,107,122,160,24,93,245,104,167,23,235,120,17,127,132,50,237,156,153,215,238,233,71,211,76,111,51,103,101,6,30,179,184,94,67,87,1,70,243,123,40,39,89,181,115,255,55,175,207,211,60,127,242,4,153,150,49,246,61,136,205,13,10,115,56,155,114,233,2,70,65,175,215,209,140,12,149,134,193,154,242,37,91,30,85,34,189,213,236,171,247,67,154,174,205,162,29,174,67,160,80,36,123,182,138,168,49,157,105,138,187,203,126,244,175,23,198,255,230,127,251,63,255,254,223,135,174,255,124,145,236,191,249,63,254,238,223,253,253,255,254,143,255,244,194,248,127,123,71,247,95,254,237,223,254,79, -255,252,111,255,151,127,246,47,254,231,139,203,196,5,122,113,113,113,217,59,255,121,73,87,201,31,210,76,212,103,241,128,142,223,158,105,179,203,43,246,150,110,250,34,55,161,73,35,44,87,193,78,242,52,167,39,163,95,178,169,101,48,191,107,95,189,147,219,148,72,85,185,23,90,215,165,38,111,125,205,85,191,219,232,178,35,205,51,160,55,55,175,126,202,202,254,105,242,171,219,63,141,195,10,143,142,201,77,165,36,189,250,158,116,170,7,133,86,28,37,205,25,134,235,59,223,116,40,115,29,115,200,248,214,77,156,5,133,229,31,228,94,57,150,5,179,46,189,231,88,125,163,62,99,171,87,120,221,213,120,21,234,84,215,222,10,241,214,155,115,208,9,233,13,106,240,140,126,183,23,7,156,162,166,82,99,47,79,255,175,255,254,63,253,219,127,248,87,127,243,143,127,162,255,191,99,255,155,191,251,155,255,240,247,255,233,63,255,3,246,90,247,127,254,47,255,250,31,254,14,123,41,27,123,173,251,127,248,206,215,255,14,156,127,254,255,11,78,139,157,36,63,139,85,20,255, -252,204,27,92,41,247,29,184,167,187,236,242,172,125,106,242,141,204,132,56,174,0,196,123,219,108,240,159,141,206,190,235,53,62,144,47,34,219,123,153,235,170,175,216,59,247,218,145,112,208,255,214,10,83,253,28,153,176,215,199,200,74,229,100,249,229,206,219,252,155,119,66,130,159,67,135,214,50,219,203,98,216,108,223,132,232,56,224,157,182,111,137,242,236,176,69,60,86,56,109,77,41,150,94,215,151,195,219,101,172,189,102,121,108,231,214,190,197,182,165,157,101,111,223,152,163,200,173,142,38,217,67,121,15,152,199,50,174,212,188,17,165,57,15,184,195,247,75,115,8,136,41,79,79,174,95,221,249,53,162,150,109,44,123,111,46,25,113,247,142,233,0,73,44,55,84,12,105,119,240,15,118,255,17,123,103,254,63,252,227,159,87,190,255,9,184,127,253,111,255,235,127,251,107,2,127,33,246,95,254,7,196,254,213,255,5,128,127,113,100, - +TITLE("Výběr barvy") +COMPRESSED +120,156,172,188,231,111,99,89,150,39,248,175,8,216,217,70,247,160,167,58,179,186,178,45,22,24,204,12,176,11,12,118,182,177,189,211,31,166,208,168,85,86,198,76,70,101,100,70,34,51,34,49,153,139,5,232,73,137,70,20,173,68,138,78,18,141,232,73,209,136,222,91,209,123,111,68,138,86,36,37,209,251,125,140,136,204,170,234,233,158,233,15,27,128,116,223,187,239,220,227,126,231,158,115,159,240,78,252,114,239,95,252,139,143,254,248,163,255,233,163,255,193,191,191,250,119,47,254,243,254,219,87,111,254,254,151,159,126,252,209,71,127,189,255,201,71,127,253,239,255,37,176,246,99,96,237,207,255,244,163,95,252,217,71,63,255,228,23,31,127,242,139,191,252,197,199,31,125,252,139,159,255,249,95,254,28,32,251,139,63,255,232,227,79,62,254,228,175,254,102,255,155,253,255,242,205,254,215,159,255,253,47,255,159,95,253,191,255,243,191,253,219,127,245,111,255,211,222,47,191,253,232,175,247,254,221,203,253,87,175,255,203,222,183,175,94,191,117,153,29,146,189,47,126,245,157, +195,244,169,147,254,205,219,189,79,247,191,249,238,251,159,237,253,27,96,120,187,247,155,23,123,159,189,122,177,247,245,235,55,174,211,23,159,126,191,247,229,107,151,249,171,215,123,63,236,127,182,255,102,239,187,95,125,229,164,127,241,250,213,203,47,246,119,171,94,124,247,149,195,244,235,207,247,190,254,230,245,183,111,94,127,243,2,184,252,234,197,167,175,247,190,251,254,211,111,0,234,31,246,190,222,127,245,226,205,247,123,78,236,62,240,28,224,249,78,244,119,251,239,87,189,99,240,179,189,255,232,50,191,252,110,255,205,139,87,223,126,225,184,250,113,5,160,197,7,193,95,237,59,177,14,201,27,128,221,254,222,219,47,94,57,56,59,61,190,218,223,251,236,229,183,95,252,236,15,254,254,151,223,126,252,215,123,127,251,245,235,87,47,156,216,175,118,235,95,191,2,214,125,241,253,238,9,96,245,127,120,241,249,171,23,159,57,233,187,21,251,95,188,121,9,40,44,217,251,193,193,121,71,244,118,239,15,127,52,226,71,19,118,227,222,119,175,95,125,250,193,43,127,180,247,237, +139,189,239,94,236,125,251,245,235,207,118,75,1,93,56,223,190,121,9,72,223,121,243,237,222,15,175,1,75,127,120,11,168,251,213,219,47,95,124,243,242,215,95,56,56,123,159,3,180,175,223,236,191,231,176,247,221,63,225,169,95,254,203,189,255,243,127,253,55,127,191,247,135,78,236,139,111,190,123,241,21,176,112,239,255,254,87,128,217,159,125,3,92,2,87,63,188,120,181,155,253,35,192,112,128,246,127,251,219,191,3,104,95,127,246,237,27,135,228,171,221,227,111,191,127,3,240,218,93,253,102,255,219,63,250,217,222,223,253,234,245,167,175,223,238,125,237,58,117,72,190,222,255,108,39,226,55,59,28,1,107,94,236,44,252,230,245,15,223,238,127,254,65,185,29,199,143,246,126,246,179,189,159,127,242,201,223,239,214,254,184,204,73,255,227,61,151,249,197,222,15,128,228,55,47,246,222,0,66,118,70,75,190,125,241,106,231,222,247,171,191,127,231,166,175,1,31,238,127,246,26,128,243,245,123,111,189,253,227,189,47,93,50,96,53,176,112,39,122,199,242,75,192,157,47,190, +254,22,192,236,179,215,239,103,190,125,245,214,197,121,239,141,23,159,189,124,179,191,195,77,178,115,205,235,87,14,201,95,255,36,1,0,233,187,151,223,190,122,239,53,32,170,191,124,241,230,27,151,108,7,199,254,219,55,175,191,220,127,3,248,250,251,29,199,23,95,191,126,31,33,191,113,72,126,246,1,246,15,195,191,254,215,47,191,220,255,47,47,254,234,47,63,250,131,191,252,232,79,62,254,51,16,148,0,34,128,64,32,104,127,11,252,6,205,100,103,228,227,34,214,193,78,97,96,217,45,180,31,225,32,165,48,95,242,234,160,110,241,33,189,88,62,147,29,224,194,50,252,238,141,105,185,148,223,72,219,74,157,219,187,13,38,106,155,205,133,218,194,130,10,5,171,30,131,196,91,105,104,230,146,15,183,189,152,4,234,190,193,65,60,8,39,92,92,56,172,43,165,88,192,183,212,11,50,249,163,138,183,16,94,101,158,219,248,220,32,122,128,225,197,124,112,174,227,114,4,137,71,161,182,123,227,205,201,140,54,49,37,19,209,231,154,54,112,133,184,35,86,93,46,53,193, +147,38,240,105,122,203,69,111,163,124,64,9,159,133,89,91,187,67,124,232,177,189,7,167,177,41,5,149,90,131,231,249,56,125,239,255,122,245,126,119,124,177,219,39,223,190,217,255,14,8,81,192,207,64,164,191,5,98,124,23,176,239,99,16,64,251,107,32,170,126,248,236,39,168,0,208,255,230,253,12,16,108,187,153,253,189,47,129,43,32,39,252,240,213,254,151,123,175,63,253,238,251,47,128,52,240,221,175,190,125,249,230,237,254,175,119,8,253,241,222,23,159,125,191,247,235,207,127,189,195,247,135,111,0,20,95,2,168,238,32,5,54,200,187,45,255,19,247,247,105,224,235,215,95,188,253,236,199,5,223,125,255,27,96,239,186,78,95,190,121,31,96,0,144,239,4,190,91,247,147,14,191,254,220,193,249,26,8,150,223,236,3,38,125,13,0,190,219,190,192,227,127,2,216,191,248,203,63,248,139,191,252,147,191,248,135,184,242,207,24,199,217,67,187,85,140,135,47,55,218,71,132,115,51,227,100,157,242,235,230,21,18,229,160,177,100,151,252,67,92,240,152,112,152,113,53, +179,233,246,241,49,115,99,12,4,218,51,235,53,89,218,100,231,229,85,123,64,237,116,105,184,121,124,205,170,44,220,115,133,168,130,77,201,243,71,21,209,228,173,178,64,38,129,135,102,234,70,52,57,188,42,60,87,74,228,49,67,122,217,193,97,22,88,100,62,86,80,159,33,228,253,199,57,79,184,1,165,21,77,114,39,181,98,138,107,237,176,176,51,125,212,123,165,196,126,114,13,235,86,2,203,100,65,59,154,86,9,79,34,207,208,2,17,178,2,1,206,54,68,92,10,193,194,209,239,66,250,118,151,2,93,168,119,217,229,221,36,176,221,127,74,88,63,102,130,31,246,94,127,1,36,183,223,188,220,109,207,253,175,119,169,249,215,59,122,32,145,124,245,18,72,53,111,1,160,223,225,240,221,175,62,36,159,183,123,111,126,148,177,191,7,36,179,111,191,248,106,7,208,171,23,223,1,28,222,252,86,252,151,223,3,8,3,201,231,139,183,223,252,0,100,198,31,0,226,215,111,119,169,28,144,244,249,235,189,207,190,1,96,220,133,216,155,215,159,191,6,178,196,239,48,221, +237,202,55,14,206,231,239,248,126,181,255,217,222,171,151,159,238,242,208,78,197,47,119,102,236,176,221,255,245,235,119,217,248,235,87,175,127,253,249,247,63,169,251,199,255,48,122,247,119,161,242,83,116,3,134,189,207,16,31,18,244,222,215,47,255,235,139,87,111,119,243,64,86,0,24,127,241,250,43,128,177,227,234,203,247,146,156,244,15,69,226,79,246,126,249,39,123,255,233,67,230,223,223,251,251,191,217,21,154,253,15,241,244,219,249,223,241,249,239,148,129,189,15,181,242,197,151,123,63,252,234,67,137,2,20,250,234,179,253,111,62,123,159,189,222,5,252,127,183,206,253,205,206,41,251,159,3,186,1,217,79,242,229,222,183,187,156,251,242,71,47,126,249,222,255,159,255,158,31,223,35,240,83,78,253,242,197,15,47,1,103,236,178,252,15,251,95,58,233,46,20,144,124,129,189,242,98,231,143,87,47,191,251,157,242,247,161,142,126,216,54,255,203,79,27,230,227,63,251,248,231,127,240,243,159,127,252,115,16,20,2,190,3,3,91,134,185,249,176,101,122,140,131,81,34,181, +165,9,100,61,16,24,198,73,90,3,242,155,135,10,40,5,61,128,201,43,147,149,92,83,178,185,151,56,16,216,32,174,162,15,66,133,133,114,172,12,94,18,253,163,230,37,99,100,111,110,77,76,159,249,140,217,191,246,181,37,166,53,175,124,204,51,156,162,218,248,90,32,80,123,200,21,53,25,131,212,133,71,149,77,220,195,60,133,75,246,39,185,91,242,229,243,150,53,72,44,162,197,152,207,34,221,224,195,233,88,210,103,50,85,160,16,238,154,172,25,206,140,136,222,26,39,191,160,154,169,9,30,233,9,75,191,239,68,193,7,11,12,79,164,57,135,160,253,106,29,199,136,62,245,118,107,39,225,174,55,34,157,63,31,5,104,72,147,11,209,7,95,168,14,161,243,128,178,173,227,99,250,7,171,132,165,72,72,64,52,173,3,229,12,98,84,31,79,36,147,148,170,111,63,66,178,219,135,219,22,215,244,252,72,100,8,226,166,169,201,103,56,121,74,132,207,154,75,217,29,171,123,176,213,53,195,73,52,12,198,34,166,46,76,119,199,29,132,228,34,46,135,228,108,79,102, +82,162,230,168,80,132,168,54,198,19,198,159,51,80,210,179,6,70,218,227,32,251,55,181,227,200,138,165,59,20,193,154,121,57,164,138,92,233,207,143,54,160,230,37,207,117,50,81,129,13,242,219,45,124,35,39,145,2,48,55,8,79,41,140,73,23,1,126,66,17,95,54,57,194,155,246,227,197,240,10,146,180,170,18,201,218,121,174,59,168,68,152,82,213,177,126,27,177,30,108,109,221,171,160,224,130,35,54,10,201,80,97,94,32,63,46,28,171,113,168,92,62,163,66,143,234,33,103,149,73,194,168,177,172,182,187,115,12,233,156,45,90,72,227,49,41,50,132,248,9,19,114,5,41,113,72,224,201,68,35,129,141,194,146,101,231,161,204,114,26,189,63,186,19,12,80,162,103,182,125,18,34,117,55,133,252,193,148,53,209,144,212,83,194,67,243,226,232,134,123,155,187,92,10,224,121,249,169,228,185,85,211,10,56,138,178,22,114,41,139,244,147,27,250,163,109,123,0,87,66,78,13,86,27,230,17,52,39,144,249,206,120,9,12,170,42,35,157,11,146,246,238,52,30,91,141, +32,156,38,150,183,196,192,196,14,25,253,198,120,245,120,42,70,80,89,49,158,6,206,213,74,206,25,216,58,134,106,206,87,93,135,226,153,232,112,177,57,18,200,71,71,117,80,242,193,230,118,200,48,143,199,45,234,34,155,206,10,143,138,153,172,187,81,181,9,169,135,25,80,18,116,141,62,131,39,31,207,206,7,3,209,208,220,225,115,184,126,102,218,136,96,225,96,151,171,44,58,5,162,38,44,13,123,222,68,60,192,108,57,105,184,49,99,205,59,132,171,24,164,201,174,72,41,100,249,51,175,48,131,217,177,142,213,69,202,82,179,220,112,150,55,183,217,233,113,144,79,199,217,171,72,237,136,85,145,118,211,37,139,116,169,45,78,221,33,122,159,65,223,96,142,68,209,139,226,162,195,1,57,158,177,100,75,91,221,83,173,7,109,33,150,207,21,204,116,99,175,102,217,56,98,229,140,151,166,43,211,157,139,104,107,44,237,226,81,26,41,158,164,183,134,21,203,151,245,172,105,220,224,134,149,145,15,169,151,43,74,107,46,97,139,212,172,232,138,55,85,199,203,113,208,130, +239,225,245,204,246,35,97,14,158,75,222,248,61,5,73,181,149,127,234,29,240,115,212,164,102,35,21,107,66,34,121,128,39,189,14,8,52,97,241,137,34,44,178,159,220,161,23,65,5,220,237,211,33,212,62,221,194,103,24,19,31,148,57,247,101,1,235,219,206,164,19,56,239,230,25,228,238,112,200,178,44,173,128,157,226,140,169,226,104,124,38,234,178,206,124,71,110,131,150,241,252,112,211,96,100,70,118,197,4,85,13,142,57,118,37,116,18,192,18,58,203,130,114,249,112,180,25,223,147,131,84,169,116,122,55,37,16,51,137,233,185,85,210,197,74,194,118,166,194,152,171,235,73,246,123,113,72,147,120,136,139,169,131,8,181,31,163,90,164,46,85,93,226,86,129,154,178,139,186,184,237,79,51,243,55,186,201,202,77,125,238,142,169,114,148,115,3,246,67,218,172,227,5,132,53,62,49,75,207,195,11,162,25,83,14,104,64,217,132,46,217,83,161,93,172,212,198,13,1,67,41,68,147,39,178,234,66,73,137,88,158,189,148,173,123,60,69,55,164,239,250,137,61,138,132,31, +232,30,209,80,105,134,82,118,211,90,116,31,65,237,249,38,30,155,116,226,177,181,219,69,206,186,93,247,136,27,194,186,121,6,105,180,117,233,254,242,246,134,166,174,221,93,210,24,219,241,138,203,235,140,56,51,228,234,97,220,55,82,205,250,249,51,95,27,102,45,210,125,79,105,192,144,206,185,134,78,185,160,34,203,110,252,27,95,50,60,59,19,85,178,233,208,241,246,185,97,185,15,172,101,49,221,90,85,43,94,52,113,220,165,161,89,87,79,196,190,165,204,56,228,115,113,219,71,251,67,152,229,49,108,38,104,237,230,41,246,188,236,134,213,230,109,21,149,76,215,214,231,126,205,51,207,254,172,119,174,12,202,200,74,105,93,121,243,184,246,163,70,193,75,42,35,234,98,89,37,189,114,119,219,115,201,245,134,76,87,57,43,166,164,129,130,16,207,32,93,176,110,114,243,44,146,223,57,181,196,113,72,85,26,118,158,31,203,68,42,146,97,52,62,139,162,238,40,159,238,49,157,77,230,78,31,162,202,55,211,34,213,5,199,67,167,71,142,23,35,193,65,242,34,49,60, +131,95,153,233,23,72,133,149,135,46,245,204,75,118,234,108,1,227,246,214,190,238,36,78,113,198,60,129,46,238,52,157,4,159,164,207,228,150,72,207,156,51,135,111,196,254,19,121,185,159,41,8,89,101,108,65,169,101,223,187,67,71,67,18,70,68,156,20,184,198,101,144,53,146,105,139,113,10,201,82,89,220,207,169,218,242,114,44,225,47,203,166,121,71,210,119,248,100,99,214,74,65,225,12,128,192,62,64,185,194,83,195,51,235,233,190,117,214,110,91,158,251,171,130,174,246,116,83,115,5,155,5,135,157,114,144,55,95,240,155,138,12,228,242,14,124,207,11,204,177,211,82,123,54,221,170,39,90,166,198,180,153,9,199,89,71,138,143,193,229,152,2,165,165,4,199,185,228,198,220,131,249,138,57,48,211,106,226,96,65,155,24,36,168,125,227,150,114,125,103,199,233,6,49,41,221,74,129,72,172,198,10,186,191,61,47,67,142,31,224,230,46,219,204,46,187,77,218,173,172,181,229,167,5,13,163,126,54,174,57,171,104,7,174,218,158,202,162,182,97,93,49,25,22,22,105, +140,96,81,184,229,177,12,131,132,204,190,9,71,165,22,68,78,161,196,87,192,43,152,101,182,102,205,151,23,148,203,248,17,5,235,65,65,68,71,196,187,133,86,38,81,201,216,82,173,68,160,8,201,38,202,64,80,27,240,165,13,225,64,239,84,195,231,18,52,6,29,207,212,190,147,198,214,94,152,165,83,202,13,56,20,8,250,49,220,178,232,159,214,150,173,205,22,188,30,76,89,11,53,203,176,224,246,149,219,231,16,185,226,223,122,210,13,62,49,164,210,55,99,237,35,15,46,94,63,57,56,202,193,68,184,60,149,213,210,97,68,253,131,210,132,158,138,89,125,18,18,188,225,187,88,62,174,203,150,37,115,149,63,10,171,204,67,170,119,113,209,185,173,221,251,26,68,56,239,66,199,195,230,2,53,155,202,145,132,18,56,29,164,206,45,100,230,210,4,173,240,106,73,157,195,25,79,3,203,9,38,72,121,174,192,33,247,55,96,179,172,114,93,217,42,164,154,205,164,26,107,42,202,170,213,132,3,54,142,8,210,99,202,106,100,95,115,203,12,209,118,156,214,81,55,115, +233,166,136,14,72,68,204,45,221,63,151,67,196,39,151,173,82,91,193,42,183,179,91,212,61,216,161,0,210,233,17,248,232,118,82,5,60,35,80,2,249,71,21,244,107,105,161,176,218,217,215,4,198,65,141,179,222,25,56,132,245,22,159,91,52,76,251,77,71,107,188,141,153,242,82,62,224,23,249,58,229,107,250,180,134,48,235,145,123,56,51,177,176,229,192,160,172,148,213,108,7,184,141,63,84,86,74,228,200,36,47,95,50,182,151,186,182,42,101,29,223,111,181,4,138,67,199,131,158,18,17,194,250,58,75,89,99,170,119,183,165,164,68,135,18,61,45,211,3,115,107,27,58,180,208,20,117,186,142,4,103,137,105,246,193,216,182,182,112,47,28,157,6,186,190,32,48,175,11,184,249,100,84,32,216,194,77,95,62,40,70,11,2,209,246,166,102,186,215,60,119,67,214,135,169,10,106,245,231,65,165,216,165,123,26,15,141,231,247,169,36,210,33,22,29,101,211,76,149,70,44,211,136,175,228,226,137,64,17,16,169,2,33,149,54,28,86,187,250,26,155,187,126,202,191,167, +93,244,175,49,83,30,253,34,174,196,70,219,146,41,79,197,197,149,182,219,177,140,62,189,130,87,122,176,48,170,252,164,179,58,250,81,171,79,4,71,79,117,148,158,173,91,136,116,42,89,80,45,140,202,143,213,64,254,52,98,60,224,69,67,107,132,228,199,240,174,2,178,13,102,111,219,147,198,232,30,158,142,83,215,196,64,164,9,30,59,97,18,43,66,210,45,166,179,215,249,240,194,223,230,209,83,89,91,92,50,93,44,54,214,208,53,121,187,234,204,114,170,242,73,121,221,81,87,152,206,209,209,9,217,103,161,221,107,34,216,194,105,166,50,84,54,41,53,240,201,74,7,222,70,214,249,49,47,235,162,144,213,18,17,234,40,199,202,12,138,185,200,125,54,209,56,16,105,202,1,159,54,144,233,154,9,22,143,145,155,87,93,249,226,163,1,98,110,215,195,218,118,90,251,78,63,145,219,44,199,121,252,172,9,46,210,121,139,235,158,174,214,182,54,193,25,240,243,249,118,210,183,21,200,181,184,205,28,90,233,25,215,156,225,52,128,198,220,231,109,143,89,144,14,191,48, +50,10,43,35,136,89,46,175,141,81,22,43,162,108,70,109,27,120,172,161,226,147,221,106,174,100,198,211,81,251,80,228,157,215,158,10,167,136,52,214,116,99,21,0,37,25,239,166,18,121,210,89,222,100,42,163,163,71,240,164,197,112,118,156,157,36,157,230,229,53,79,1,62,103,135,108,113,57,45,15,187,165,210,226,117,101,21,10,127,134,122,32,155,7,155,114,157,186,79,82,37,183,147,44,53,145,75,81,73,122,36,196,120,123,48,42,12,31,152,195,128,79,115,165,143,27,57,14,194,25,185,207,164,54,104,69,86,159,118,130,144,220,24,149,157,245,54,110,170,234,120,90,162,134,221,210,245,211,190,97,209,21,214,123,30,227,1,126,241,138,207,97,228,195,55,196,35,189,60,197,120,22,203,20,178,114,97,112,98,8,43,174,187,49,112,153,145,108,159,28,166,147,58,89,194,162,139,250,122,182,152,5,222,120,136,187,26,113,110,253,201,214,42,197,131,188,226,100,60,19,179,203,224,250,41,35,232,139,211,137,77,53,139,27,90,230,67,115,86,193,172,210,165,33,200,14, +120,46,241,246,120,30,245,185,174,97,70,247,159,176,42,36,84,176,89,27,204,24,244,67,189,123,218,63,214,181,58,117,18,87,29,62,193,138,224,107,18,215,60,235,34,20,88,163,108,49,214,11,158,6,213,77,177,104,131,106,42,155,85,119,112,39,76,205,214,48,151,128,220,71,31,138,175,209,19,113,124,40,81,232,40,166,147,179,161,201,16,36,26,148,129,232,41,69,113,122,223,120,106,103,96,142,89,154,100,57,10,172,6,197,4,157,162,167,167,207,52,219,102,235,108,30,190,121,230,176,120,148,186,177,26,40,205,11,58,224,212,249,52,134,213,146,81,207,179,3,139,131,171,113,58,228,153,249,90,200,152,37,219,73,46,46,187,212,55,201,39,103,124,238,218,140,164,161,117,132,188,247,170,41,83,60,179,130,28,42,4,119,207,169,93,67,106,61,68,149,180,61,20,33,70,237,225,114,100,104,168,30,140,150,7,238,124,161,46,94,155,123,69,69,247,130,76,92,48,37,108,4,244,166,76,236,160,229,184,155,39,116,9,99,194,227,101,116,133,88,138,111,44,215,150,181, +230,252,124,124,251,96,179,160,170,166,1,171,5,190,96,176,117,208,33,115,65,155,154,17,125,66,219,21,155,205,22,84,119,224,28,182,185,91,176,32,107,40,241,217,13,191,194,195,25,241,231,80,174,73,205,83,146,185,58,37,157,163,36,85,33,141,76,29,18,105,66,82,157,42,36,147,187,27,249,69,109,146,27,4,21,56,95,185,199,160,246,24,68,246,61,195,81,144,99,131,135,109,125,115,93,30,89,32,93,174,36,19,173,133,113,75,187,110,121,245,28,197,163,44,193,45,100,53,137,107,198,209,230,157,175,121,212,169,225,238,61,12,180,0,103,104,166,245,124,214,229,37,197,153,50,240,147,149,105,80,164,8,21,250,71,26,235,26,10,185,179,245,66,135,113,155,106,88,141,23,27,64,150,118,24,214,88,117,187,126,125,237,167,75,84,16,68,17,141,201,157,94,99,175,226,88,95,1,248,81,4,175,226,103,210,62,107,18,133,18,21,62,59,129,22,21,222,214,76,14,48,19,125,206,44,48,42,224,101,119,114,183,146,220,204,58,243,199,68,66,118,126,168,143,148,158, +49,99,115,199,195,88,81,206,102,15,77,198,68,15,189,96,242,168,183,23,43,233,163,222,40,241,207,100,215,237,212,253,227,249,82,59,148,153,77,26,221,189,6,78,38,247,208,194,60,37,197,202,52,168,218,144,168,55,102,20,11,250,139,155,241,241,198,158,15,152,37,122,95,88,99,78,107,52,158,153,102,49,237,182,30,82,38,32,106,162,6,154,103,41,222,250,167,60,108,233,44,112,59,205,19,153,67,102,125,227,61,93,31,245,99,104,230,136,151,214,105,39,166,70,225,49,167,107,168,73,195,249,65,211,94,139,135,178,158,66,28,119,92,73,215,112,250,154,176,55,81,184,220,79,249,77,4,214,4,103,227,234,166,244,92,253,112,171,52,157,181,207,245,164,222,230,230,54,49,167,247,141,248,64,46,85,230,137,179,188,81,219,93,37,157,212,158,3,183,33,232,9,58,127,103,46,105,108,56,113,125,124,157,43,170,156,226,147,167,99,12,156,159,129,100,208,78,172,196,215,71,103,215,148,213,96,100,150,61,222,217,56,172,213,234,20,119,132,58,100,200,234,6,177,174,95, +208,159,142,228,147,235,203,103,129,216,115,210,51,145,239,251,228,106,104,250,8,49,92,231,168,96,151,194,205,40,233,93,79,36,35,242,76,125,237,96,74,219,81,83,211,101,209,242,215,13,223,210,98,124,158,204,1,95,77,132,249,102,26,223,206,114,184,189,107,127,111,74,85,231,239,14,31,162,240,30,171,54,204,187,251,192,64,142,155,159,167,121,175,94,156,55,25,70,14,66,58,220,46,117,128,18,119,101,120,218,192,215,241,131,152,199,127,202,151,110,87,25,21,54,255,8,235,230,39,167,77,247,117,8,230,113,49,142,206,38,82,227,125,146,182,46,168,123,2,133,155,173,119,147,139,61,214,73,166,69,51,141,135,177,168,53,203,16,244,16,192,169,89,211,53,155,71,68,212,211,246,80,186,141,247,150,8,5,79,98,153,221,186,137,130,3,214,25,163,177,14,180,27,9,31,175,206,108,173,113,173,129,38,96,91,169,54,170,172,247,220,125,42,177,184,157,153,132,216,43,62,121,148,57,33,208,21,41,83,225,122,212,96,120,194,52,75,130,134,233,165,247,182,12,107,50, +171,14,74,36,82,238,185,121,114,17,181,95,87,199,81,50,69,179,38,41,210,68,169,64,1,70,189,111,83,16,224,145,64,54,167,63,32,249,250,105,161,54,221,22,110,44,45,247,131,242,142,62,20,14,140,83,196,211,193,237,232,105,57,179,207,187,53,180,244,40,96,192,108,194,161,241,113,182,215,115,76,78,17,151,204,180,97,189,66,20,89,215,254,162,158,128,203,104,77,157,152,247,10,56,86,25,171,119,1,225,176,111,170,21,54,143,110,93,3,51,180,73,175,165,112,126,241,58,236,159,148,183,103,25,185,34,152,34,171,195,102,94,217,105,188,139,179,22,18,239,69,199,74,12,250,174,115,55,135,4,12,57,143,65,198,98,24,100,124,73,22,216,114,21,97,185,6,64,103,113,215,125,140,122,41,161,139,90,212,194,77,81,119,18,166,224,90,106,208,1,212,3,203,65,140,130,4,30,45,174,139,175,30,100,15,215,160,195,124,223,166,182,197,11,186,103,255,150,139,108,110,195,179,121,208,26,200,156,130,201,199,39,107,178,67,29,145,231,78,27,97,29,247,86,251,108, +86,165,43,62,8,250,46,180,189,166,84,174,138,241,114,130,97,108,153,91,76,34,182,168,224,202,107,238,54,210,115,246,140,219,160,253,254,1,70,214,63,137,103,102,79,225,77,243,241,12,199,247,138,187,142,120,224,216,114,80,110,149,250,151,134,204,176,179,73,67,213,147,67,172,231,44,207,226,198,138,15,51,0,247,167,102,175,113,29,114,234,155,157,206,117,8,41,135,31,233,164,13,70,135,185,56,43,180,60,140,101,68,173,180,95,110,166,184,118,235,124,73,16,91,161,126,10,35,220,41,20,141,234,121,24,186,92,16,176,8,127,111,4,70,92,167,122,154,36,239,150,230,79,209,111,153,242,75,138,248,129,90,245,100,182,53,222,113,89,98,94,138,136,115,135,207,174,41,9,248,240,240,129,213,156,61,45,54,109,132,131,51,92,136,76,96,117,2,133,109,249,238,38,25,198,228,199,39,152,121,193,81,111,83,110,162,162,16,108,160,195,19,74,107,71,102,44,193,244,133,22,40,103,212,226,40,167,179,123,237,105,132,204,117,173,252,98,75,135,155,4,187,251,74,151,236, +80,179,49,240,93,79,60,9,103,53,77,162,133,122,201,179,68,127,52,192,5,250,189,67,105,235,80,210,62,155,68,75,174,174,205,169,180,72,5,49,105,212,85,196,79,169,35,87,99,130,213,250,58,40,175,2,193,53,109,130,83,75,47,97,247,62,134,221,205,145,68,24,87,202,244,245,242,99,225,34,90,147,184,25,45,38,170,212,97,17,122,135,229,131,41,50,102,157,107,163,27,156,162,54,232,94,200,174,184,146,142,47,15,119,149,30,87,79,229,3,200,189,153,142,189,63,112,43,97,132,184,207,63,140,198,110,33,165,51,117,147,215,159,230,215,158,236,173,38,138,104,142,29,150,229,163,215,67,24,218,151,18,107,5,125,153,202,249,154,77,147,167,228,12,214,181,243,101,14,115,133,182,163,31,142,93,14,30,42,118,221,104,157,170,238,91,220,113,203,156,242,219,185,213,150,249,130,131,141,201,47,237,222,227,232,211,208,225,12,14,142,150,10,57,46,240,152,149,231,156,242,209,41,176,99,236,183,249,80,167,46,77,173,174,207,91,147,48,250,78,67,122,30,166,96,137, +144,47,99,31,177,202,122,67,254,210,108,14,111,202,138,245,89,39,155,94,223,79,2,119,15,186,117,103,158,38,109,149,210,165,255,97,74,209,232,220,84,157,155,164,47,184,41,89,100,211,128,88,54,50,23,74,189,157,160,207,59,8,150,228,154,181,64,170,241,133,211,218,245,218,208,32,103,106,211,60,155,165,175,135,111,58,222,197,77,167,176,70,213,56,135,53,28,217,195,184,13,39,110,168,103,143,65,125,95,114,104,106,208,70,25,245,64,195,91,246,133,105,188,247,124,57,67,40,196,182,220,26,139,18,145,60,147,179,219,116,10,227,65,186,146,105,101,45,63,49,95,94,202,188,17,42,175,133,182,166,232,135,76,37,73,76,144,55,100,234,94,177,34,41,153,110,9,167,232,163,56,242,209,90,41,141,180,98,115,213,235,186,175,178,158,130,184,11,116,54,155,148,27,206,42,232,187,109,0,33,190,25,156,245,192,41,49,136,85,50,108,163,115,140,232,110,59,117,116,7,13,87,170,116,186,16,76,211,105,103,98,128,109,11,150,147,13,75,159,26,57,184,134,232,201,178, +230,18,161,156,151,185,64,214,60,42,179,10,184,192,195,25,3,155,215,113,216,64,250,219,54,235,132,208,9,33,148,94,30,26,228,81,46,35,67,188,213,123,168,35,108,234,170,111,63,196,8,228,102,79,95,93,86,27,68,122,241,5,180,231,244,48,195,229,214,38,233,154,182,183,130,132,230,196,148,110,58,40,165,76,97,92,203,242,55,184,123,164,254,238,200,63,114,179,30,10,137,252,226,116,250,216,20,35,13,151,119,93,3,143,161,242,224,146,249,39,69,164,30,29,165,103,125,44,169,128,33,165,214,169,46,120,105,157,95,149,21,157,103,247,73,64,100,104,110,76,235,167,235,164,248,62,104,160,106,99,247,46,237,189,167,124,59,41,37,206,200,252,240,137,154,27,198,170,31,206,234,190,12,229,62,115,19,179,60,107,148,237,251,89,26,29,143,26,174,35,50,56,41,135,202,64,58,168,22,91,15,39,161,156,16,97,94,236,56,42,240,54,146,48,132,84,201,176,197,16,106,185,1,62,124,60,235,128,32,109,48,5,9,209,221,104,55,161,222,193,92,114,225,83,230,60, +189,54,131,190,234,210,89,249,195,3,251,240,193,21,206,123,234,26,15,174,148,159,132,251,121,25,234,76,227,53,105,56,240,108,175,122,218,171,94,185,83,42,211,125,224,217,226,134,35,38,134,33,90,218,112,247,244,122,93,183,195,87,21,26,217,121,186,81,108,106,131,1,131,230,226,137,61,207,217,134,9,72,185,225,131,35,14,224,136,181,96,85,19,152,16,213,243,37,102,122,79,115,196,60,180,104,99,112,23,223,112,160,36,57,51,114,216,79,209,115,253,149,122,221,15,82,69,23,230,130,97,110,40,240,218,77,77,72,31,212,142,39,58,201,117,152,57,96,60,141,41,109,170,74,19,94,79,134,245,193,131,54,96,188,49,119,242,85,88,148,202,162,109,122,2,232,116,109,186,124,176,92,212,34,203,238,157,207,30,143,61,64,197,168,5,5,214,6,143,137,155,206,77,145,237,134,113,146,218,44,76,122,214,103,48,140,87,8,118,4,155,19,243,37,87,13,49,113,200,178,20,135,67,94,205,30,34,123,61,117,180,99,90,164,29,163,98,219,169,127,122,129,210,142,79,170, +87,227,227,43,45,21,193,83,21,200,43,149,238,188,29,155,77,110,245,213,188,244,34,56,174,109,98,102,201,220,135,157,247,61,134,43,120,98,19,104,204,205,156,90,127,194,42,185,165,203,100,38,104,161,208,181,115,109,77,187,189,212,244,227,205,40,125,235,166,171,239,167,53,205,54,180,169,55,194,158,135,205,176,38,15,110,237,124,199,249,113,215,124,148,159,242,7,170,197,84,113,197,98,172,69,3,209,236,10,170,28,178,239,146,158,165,107,216,221,154,219,125,89,227,104,181,218,250,50,211,59,207,173,233,122,180,50,220,186,13,38,139,170,3,229,70,251,44,247,209,188,238,243,26,195,84,236,236,222,94,189,101,57,177,235,122,223,233,150,53,97,235,27,162,137,97,225,165,22,218,33,121,38,27,207,228,236,3,77,18,180,192,8,58,108,124,223,102,43,117,33,46,112,50,79,154,205,14,208,106,52,45,113,115,62,190,180,92,9,112,112,127,223,99,146,45,76,253,184,65,31,238,15,106,23,23,102,243,224,248,190,134,96,21,207,87,198,217,237,212,38,169,89,124,150,211, +233,136,39,52,61,6,37,117,175,107,122,147,62,49,49,73,215,144,129,111,37,42,245,104,177,7,204,57,149,246,220,199,93,173,30,147,171,203,219,38,252,41,211,175,193,17,15,157,204,217,99,201,170,100,103,215,107,40,183,196,194,168,79,99,211,167,182,229,0,241,52,44,137,146,90,65,247,210,30,104,161,157,135,101,81,156,8,57,144,201,5,80,240,221,250,68,62,215,210,175,226,85,82,60,104,14,245,51,113,248,196,16,173,48,169,224,112,61,235,243,151,24,139,75,94,43,86,234,179,25,105,223,197,248,68,184,62,183,66,238,193,165,99,206,193,170,255,92,163,235,228,193,166,67,75,84,180,150,217,136,86,199,190,155,234,189,189,115,37,94,85,182,26,56,83,91,75,202,4,45,111,67,32,33,50,19,187,156,63,6,121,198,121,230,24,139,173,139,210,236,19,152,57,165,25,169,204,197,50,50,9,97,205,210,197,115,177,120,176,118,45,240,227,158,190,48,4,27,41,15,70,143,248,17,139,182,26,172,104,53,180,12,102,178,158,220,120,144,173,115,24,36,82,8,94,110, +198,149,208,10,4,93,183,147,24,114,73,7,39,207,153,162,89,220,61,12,182,98,71,32,40,76,37,81,66,37,125,107,188,100,211,68,195,96,184,181,2,243,138,65,32,57,8,100,5,65,64,32,52,8,36,174,191,191,133,48,35,246,180,44,46,32,144,80,28,151,225,16,158,129,225,149,21,72,220,136,52,43,4,101,72,245,78,236,141,44,166,118,92,202,67,192,105,96,170,75,208,61,20,156,115,178,41,151,170,236,249,213,224,64,107,133,243,24,161,135,164,43,22,175,24,193,228,62,9,108,22,64,208,245,94,134,251,108,141,191,155,144,197,214,92,230,74,109,101,212,76,146,217,177,144,9,226,233,181,232,199,242,21,146,35,103,171,8,145,230,196,127,220,23,141,65,20,88,203,13,33,0,167,30,209,249,40,146,99,55,36,80,73,251,212,133,142,60,193,106,198,77,81,37,119,138,139,104,150,108,145,72,119,102,54,33,26,6,228,49,34,35,43,72,122,14,73,7,80,43,86,94,34,100,103,146,205,165,117,73,90,82,211,235,22,229,152,242,88,230,195,155,163,113,146,85, +93,248,77,222,103,172,247,182,139,32,150,79,42,158,249,161,216,94,133,173,5,122,135,69,130,175,203,208,243,109,49,133,48,198,205,46,179,176,112,110,38,146,99,248,27,56,36,31,101,167,61,55,241,205,136,175,53,214,214,106,171,136,201,121,28,128,167,136,62,140,111,119,131,45,28,37,145,172,103,179,224,5,137,47,79,64,216,7,199,6,74,12,151,175,136,48,231,196,202,2,46,42,222,24,96,79,219,165,17,148,15,209,30,249,35,97,154,187,236,137,248,99,171,178,146,89,113,71,89,201,99,162,105,83,244,172,113,83,22,65,57,119,178,218,168,128,53,96,65,62,77,16,233,21,13,205,158,209,77,89,182,241,108,93,226,206,142,15,148,179,66,21,44,10,187,242,214,251,94,239,120,112,92,86,232,239,14,35,21,25,8,126,96,36,66,110,193,232,25,74,219,98,187,40,103,232,39,99,72,212,7,203,68,119,178,213,52,123,250,172,185,143,87,107,162,135,134,72,29,112,131,231,43,175,179,96,187,84,128,242,215,5,214,166,202,64,206,99,108,246,61,190,114,188,240,199, +229,43,220,134,95,105,15,78,231,57,126,103,165,138,135,111,100,9,104,130,34,224,94,214,170,241,235,49,241,140,70,17,200,29,100,89,204,238,34,70,170,238,39,87,46,221,1,139,81,216,17,44,113,19,53,78,200,160,5,8,109,191,0,147,73,0,214,59,168,25,0,214,59,168,53,0,214,59,168,245,0,214,219,16,14,172,80,131,41,48,82,204,106,68,159,215,186,38,28,92,136,239,96,92,93,31,127,130,134,148,45,131,109,94,39,42,137,79,58,80,248,241,225,244,2,52,3,103,216,32,80,5,12,2,193,65,32,16,5,4,202,128,42,187,91,152,7,194,169,148,193,20,214,8,41,50,8,177,94,249,35,30,188,145,75,91,20,54,249,14,73,174,50,236,157,203,67,139,67,127,25,58,89,183,5,51,233,138,45,183,42,243,32,56,24,98,133,128,229,214,6,62,3,162,68,189,172,138,13,196,150,59,65,98,252,41,140,2,59,61,135,119,136,64,241,202,119,115,118,70,130,219,179,35,81,53,219,118,113,200,165,166,25,30,244,77,184,187,212,39,192,103,199,126,138,152, +45,43,92,241,51,57,74,2,46,50,186,32,15,136,156,53,102,3,19,226,119,160,27,138,252,176,196,141,143,34,86,225,53,232,224,106,35,22,160,83,243,44,26,214,142,64,244,225,227,36,142,18,225,60,163,31,19,227,155,132,39,32,247,135,242,20,235,241,241,117,173,147,120,0,19,201,40,46,200,200,162,182,110,33,213,234,36,107,171,128,181,23,145,51,184,170,2,246,58,241,153,138,228,129,25,242,162,19,125,176,159,36,128,139,106,147,234,118,232,205,50,25,71,196,17,237,248,64,232,172,96,225,66,11,66,38,232,26,206,15,39,120,238,28,49,191,113,95,218,10,132,64,132,77,17,123,123,206,120,200,223,5,83,14,29,241,227,99,191,149,207,60,66,37,32,119,116,54,58,1,135,160,141,112,80,6,207,70,137,65,232,122,29,1,134,87,192,43,43,0,15,10,130,182,66,32,167,128,26,25,182,114,251,223,245,155,128,225,134,204,36,167,49,118,85,110,205,162,9,82,182,228,170,2,182,179,229,32,154,24,111,177,66,64,54,208,142,201,53,74,76,2,68,28,201,217, +86,252,142,137,23,3,57,4,68,204,129,10,234,197,195,40,32,184,18,74,182,66,228,214,13,64,4,129,237,244,8,156,3,152,169,41,86,237,161,128,4,1,195,15,243,218,8,138,231,93,117,151,32,50,226,157,198,120,128,116,167,49,20,188,122,167,241,142,31,160,177,77,238,205,176,163,106,63,185,136,175,86,56,7,24,114,91,13,2,37,2,17,220,1,42,65,23,12,84,233,66,207,138,0,35,105,238,39,8,243,57,32,138,181,110,203,16,212,21,209,141,21,115,198,246,150,131,12,177,82,80,72,64,67,144,28,80,34,83,65,195,69,84,64,177,10,62,199,150,147,1,47,89,33,201,3,9,59,156,39,139,73,171,198,99,62,50,189,79,216,176,143,57,16,222,32,196,93,69,142,225,198,88,64,80,63,20,138,43,109,56,59,82,61,66,49,209,152,68,124,203,20,87,200,53,35,191,205,149,180,170,103,162,89,201,109,107,130,79,174,19,29,0,79,188,248,154,34,136,66,156,87,197,25,211,236,182,245,192,70,0,227,154,26,132,171,113,187,150,145,184,85,77,116,207,10, +20,129,7,236,214,87,21,86,198,57,172,138,130,67,39,50,104,17,4,73,94,69,144,20,88,208,3,169,186,109,13,48,55,71,18,64,1,253,110,184,226,10,66,57,14,159,195,183,234,243,49,139,90,122,148,161,133,125,255,213,45,31,202,194,230,241,58,60,201,172,142,163,225,29,14,116,43,142,16,193,89,246,35,92,28,57,147,131,132,98,188,1,176,20,36,120,103,229,255,120,148,139,241,3,240,106,193,188,20,159,136,41,42,8,252,224,16,10,224,248,140,68,237,156,7,248,238,159,59,206,128,209,42,27,216,236,0,207,29,235,15,35,164,82,3,199,166,0,84,199,72,158,50,145,2,138,85,228,218,102,56,143,245,168,236,77,13,75,70,212,47,79,102,130,170,216,42,43,173,165,41,182,150,45,20,59,132,240,80,100,158,96,26,121,153,52,114,44,140,192,197,120,140,220,74,16,146,108,64,96,53,8,32,40,26,130,0,166,184,192,28,9,121,0,79,128,55,80,123,251,110,90,63,169,128,47,175,16,202,58,188,171,128,55,185,106,10,104,12,127,134,91,216,152,12,69, +46,147,8,74,173,50,128,158,159,35,192,243,140,20,57,235,121,129,75,134,32,77,87,144,98,151,163,203,220,115,118,248,185,6,238,72,90,134,5,41,205,143,16,234,164,44,133,34,23,22,231,85,187,56,72,145,251,101,45,46,55,76,100,138,35,104,8,126,69,97,99,113,240,74,7,124,11,169,3,105,207,199,100,236,4,31,178,45,231,16,116,230,158,138,28,17,154,7,37,116,130,115,105,5,34,152,199,64,137,35,114,43,196,23,83,193,208,206,60,72,245,120,62,17,75,225,118,59,164,123,31,62,78,212,109,77,186,208,18,59,84,85,108,197,173,66,211,164,176,249,188,86,205,224,190,44,40,193,39,146,72,254,81,18,161,48,30,175,178,21,111,131,4,94,65,237,87,4,168,245,189,249,114,33,96,254,206,35,224,6,225,157,71,18,239,188,68,178,29,190,243,18,20,205,126,79,102,77,190,39,107,128,222,147,225,133,239,201,32,240,247,100,144,8,226,31,247,111,242,61,153,28,242,158,12,33,120,79,70,34,191,39,251,255,93,15,144,27,78,97,143,145,117,208,201,172, +117,238,184,151,224,65,32,53,81,117,113,78,78,34,58,244,96,146,110,218,229,1,132,194,10,110,155,241,135,11,244,57,205,120,21,90,132,209,9,4,186,136,236,0,49,98,199,252,94,220,253,56,146,162,74,80,147,92,184,155,158,156,24,129,188,61,123,98,206,53,160,165,106,48,190,76,212,192,75,250,117,126,123,131,133,38,33,230,144,51,226,146,75,42,20,139,202,239,172,100,34,84,157,235,232,56,0,108,244,10,141,98,140,141,101,126,244,133,96,129,68,67,20,86,17,59,103,82,35,243,16,125,42,43,18,129,252,226,46,27,93,54,81,70,189,176,59,113,14,146,81,30,153,26,161,11,178,41,193,31,208,153,53,103,5,11,196,50,214,94,148,10,247,159,226,208,29,37,40,187,60,176,137,70,54,20,22,61,202,132,119,254,224,179,81,96,116,70,6,134,155,43,96,25,199,53,132,28,186,159,161,76,37,157,124,1,168,73,1,53,225,120,33,142,9,88,185,66,117,16,20,239,217,63,127,63,254,143,70,92,166,18,132,136,90,135,144,12,91,181,75,237,144,225,110,54, +3,130,80,254,121,35,225,221,72,69,83,8,149,45,67,116,206,134,58,172,142,39,52,200,10,13,238,106,60,80,226,129,26,191,43,241,182,15,183,92,24,165,226,2,131,220,168,227,182,237,82,139,6,65,216,163,119,231,214,203,15,231,86,246,238,24,91,145,103,145,236,153,75,111,197,216,170,155,76,7,200,214,163,92,186,194,49,194,36,45,59,43,132,11,161,73,243,160,137,14,243,226,107,96,33,11,237,98,110,161,215,190,19,201,108,120,107,98,159,9,87,202,138,80,102,131,245,166,0,240,17,11,217,156,99,15,204,231,132,131,221,221,161,57,15,141,196,4,132,99,74,193,105,139,151,32,104,144,171,246,148,132,56,110,47,210,168,97,207,120,4,22,131,250,104,21,52,76,105,29,76,224,179,40,113,36,138,149,114,86,253,57,87,103,197,64,212,53,17,220,61,13,50,226,71,9,24,124,45,1,14,70,5,72,169,125,37,1,81,4,167,44,9,91,94,224,141,251,55,129,135,96,36,62,130,13,147,78,118,198,74,99,68,202,183,61,186,51,196,10,112,78,173,239,24,240, +26,83,70,205,115,168,151,222,159,72,18,78,249,17,170,129,175,77,238,33,169,71,252,2,76,1,153,115,21,229,36,173,219,92,178,69,80,98,214,30,132,13,197,200,74,127,219,99,34,224,62,110,72,186,99,113,127,13,119,35,98,77,119,1,209,129,208,120,252,147,91,153,191,7,126,68,107,99,209,236,53,90,110,13,246,102,29,176,171,216,164,240,205,126,15,145,52,138,131,245,209,39,52,76,200,130,226,80,32,158,57,95,41,61,167,117,87,54,226,8,44,178,221,200,240,230,115,232,157,230,145,10,128,73,27,44,250,224,228,232,128,61,71,27,143,220,36,56,36,14,28,19,173,243,21,84,99,93,249,46,159,243,104,171,58,252,20,67,162,53,170,67,25,69,69,147,145,15,96,110,32,110,69,140,89,29,44,179,148,161,94,244,76,2,138,52,81,97,133,181,219,6,13,64,52,184,10,126,216,4,205,68,46,17,60,166,204,136,173,145,133,5,201,209,236,222,83,80,60,32,30,192,31,226,1,172,168,244,46,50,32,140,178,1,156,46,240,14,136,86,82,206,198,226,243,238, +131,126,254,52,123,106,39,107,183,252,134,50,83,41,183,60,203,13,50,24,11,175,178,42,224,213,148,56,13,250,32,7,131,32,255,232,28,30,91,111,206,253,79,106,159,36,210,218,208,66,237,82,26,125,50,101,93,132,73,163,109,105,68,83,220,89,51,79,7,90,24,239,118,152,30,61,155,243,17,255,180,171,171,151,154,245,180,38,22,94,198,219,30,38,36,37,161,156,76,243,96,194,163,163,165,223,6,83,252,129,8,158,88,55,91,24,168,132,77,63,133,5,9,240,130,161,215,186,53,65,216,117,89,187,190,38,106,64,79,71,250,13,58,58,235,199,248,18,184,56,26,63,87,208,33,234,160,24,147,186,72,99,109,11,156,97,56,189,52,247,80,203,170,186,210,8,7,131,139,184,198,230,45,167,67,135,84,226,234,209,80,182,111,208,45,122,52,58,189,24,92,164,80,89,233,164,228,29,153,115,86,131,196,136,231,192,252,174,89,178,161,159,233,3,205,46,2,175,107,97,83,155,66,193,248,112,47,226,225,33,225,178,136,31,122,199,97,86,190,67,23,166,140,139,235,182, +182,82,49,8,150,224,184,175,10,30,230,102,25,113,101,44,243,98,193,70,152,99,133,120,76,144,207,33,243,165,132,222,191,53,43,239,195,249,170,88,61,35,120,75,245,142,55,61,156,19,242,214,50,20,119,101,38,50,24,242,46,87,14,236,133,227,237,22,77,129,104,65,184,82,26,30,57,244,85,232,190,30,88,99,213,24,101,62,146,5,42,154,56,115,108,49,252,172,59,244,82,141,103,148,105,100,202,174,149,48,184,180,255,48,41,213,193,11,66,172,205,110,133,148,122,92,91,18,170,189,212,101,60,158,2,124,145,67,31,139,107,167,197,170,237,182,172,5,246,241,212,124,146,180,16,175,134,92,173,117,157,45,235,120,129,243,59,77,245,86,69,241,182,192,51,59,214,38,212,89,164,41,173,34,54,233,128,173,155,235,100,87,154,126,94,173,137,106,107,247,104,89,183,117,43,12,153,14,62,10,122,90,39,145,37,191,113,65,205,225,80,144,171,115,223,70,154,122,226,5,233,150,167,25,163,253,248,60,165,89,116,179,186,73,138,11,112,25,50,5,156,217,247,8,61,178, +227,162,128,5,55,151,68,2,15,21,61,198,218,185,9,199,9,248,88,90,147,19,59,254,43,62,2,125,82,189,218,42,146,198,75,223,166,160,130,75,86,21,238,32,14,248,39,58,39,228,172,197,41,78,131,54,153,71,104,21,229,30,101,51,31,245,111,186,75,145,36,28,132,224,45,50,32,246,178,144,176,214,114,113,145,152,84,75,163,248,134,201,24,78,111,149,160,62,202,39,205,118,245,184,173,236,84,164,155,235,112,98,252,115,105,148,59,193,160,103,34,106,22,67,152,245,81,193,38,16,64,155,181,210,74,60,177,219,39,136,56,132,61,61,80,97,232,118,32,218,245,115,215,19,10,125,197,22,111,193,49,68,78,30,56,68,223,94,22,143,15,142,14,180,146,171,201,46,114,253,217,104,215,86,222,202,240,7,78,8,40,66,169,128,33,160,247,27,200,186,203,175,207,153,202,117,23,94,240,225,31,149,50,56,239,29,125,135,67,132,111,138,161,177,220,240,240,104,57,199,123,49,165,171,250,53,187,149,86,11,185,101,60,45,84,166,199,125,34,56,66,140,122,202,29,153, +118,59,170,77,76,31,82,224,199,79,228,113,71,3,234,123,72,134,28,240,124,185,165,146,84,74,179,231,178,131,214,85,54,78,14,195,24,203,2,249,229,249,137,138,126,52,49,55,27,59,13,236,63,148,209,33,227,82,3,92,150,60,101,154,19,8,127,126,189,57,27,160,195,115,56,169,178,9,192,76,56,94,56,175,184,203,213,163,189,213,248,92,11,55,210,76,129,135,81,7,205,96,48,165,241,185,138,99,12,145,143,248,43,248,243,208,146,132,88,135,83,31,100,210,247,28,182,143,213,195,187,36,58,65,145,231,225,58,15,164,191,69,103,241,51,175,28,162,2,37,189,85,53,112,194,189,244,177,36,105,136,204,135,174,203,238,99,144,43,125,89,61,75,84,193,90,34,112,178,66,207,16,32,89,222,118,163,95,21,241,226,0,180,230,2,39,230,241,235,219,19,187,177,72,183,121,75,234,62,108,110,4,221,227,173,50,202,29,162,78,237,206,184,68,106,168,188,210,40,167,247,97,53,27,95,119,245,7,144,136,37,38,132,168,175,107,199,73,39,65,144,183,162,199,54,45, +251,81,178,2,128,235,54,204,179,44,187,215,20,29,86,146,44,170,156,230,74,147,198,59,38,196,169,58,141,119,34,19,115,244,96,141,154,133,113,46,49,90,149,70,87,252,87,101,74,229,241,104,147,89,135,114,89,7,106,128,178,14,14,160,142,85,190,132,246,213,159,37,7,24,223,243,212,247,0,73,121,158,39,234,147,26,147,42,159,143,207,37,64,206,120,231,105,181,49,38,23,63,46,76,180,115,39,213,150,197,199,102,235,18,251,204,72,27,170,1,112,59,188,48,132,161,222,210,113,105,115,163,174,240,222,112,0,0,137,60,0,192,83,49,234,118,115,248,110,2,105,217,77,232,196,54,252,196,115,105,190,44,104,121,185,96,25,192,92,1,63,3,178,174,6,100,221,21,93,160,230,194,118,69,23,168,185,49,16,232,222,86,143,201,51,160,147,209,205,192,22,229,163,120,103,112,52,80,182,209,191,91,191,49,45,31,214,70,9,140,211,157,58,218,123,8,235,22,109,231,16,10,220,63,96,177,133,112,25,220,104,81,28,65,77,236,45,5,76,65,165,50,236,81,138,96, +106,57,12,134,161,164,213,54,187,9,207,32,248,185,36,2,214,22,14,170,48,113,4,103,212,178,37,230,12,155,111,135,184,241,238,8,132,126,31,71,135,58,232,12,66,238,181,216,108,249,10,168,213,198,236,232,164,239,232,242,16,221,140,121,156,134,152,243,142,17,242,210,14,188,166,158,231,35,41,150,248,177,115,15,142,150,5,162,145,250,196,223,64,15,84,103,40,76,134,221,203,69,69,231,229,105,103,166,93,84,192,55,40,180,244,22,105,16,166,51,241,194,193,28,175,74,89,253,106,116,142,54,191,85,0,15,211,104,193,200,128,247,131,59,6,19,142,35,130,207,5,90,8,142,226,85,65,18,179,133,206,191,170,155,252,140,50,81,152,68,162,19,109,91,235,145,36,247,61,128,249,119,250,169,74,98,228,243,177,83,132,25,224,144,177,179,69,240,115,145,14,255,152,134,150,215,64,61,132,192,71,216,54,23,169,112,245,39,183,15,85,179,159,136,5,222,162,196,226,97,153,123,19,223,152,104,179,139,14,20,126,152,171,180,15,110,159,249,117,168,24,100,71,59,51,21, +133,198,251,112,184,174,7,30,170,12,48,5,10,70,95,22,212,220,20,45,26,206,202,22,216,30,172,31,187,204,174,181,114,171,1,206,67,224,253,110,47,132,59,68,231,106,0,159,146,164,82,74,138,44,36,188,220,250,116,84,128,104,22,70,74,224,12,12,188,206,69,202,79,200,198,59,130,22,72,93,62,252,93,127,51,1,27,182,121,130,63,187,59,182,129,224,80,188,48,67,17,244,27,114,208,20,2,88,99,133,131,197,6,0,112,82,5,246,254,143,52,20,32,70,210,144,167,54,2,225,135,121,139,41,74,29,223,0,161,76,114,8,122,178,13,171,42,245,20,226,92,113,154,246,60,88,70,242,244,157,9,173,154,28,222,28,205,14,54,10,138,163,109,39,155,157,98,236,96,139,45,220,47,25,70,111,72,123,72,195,78,25,235,85,190,91,226,206,139,201,26,97,227,82,12,234,89,183,245,142,42,107,104,162,188,162,233,206,152,123,204,43,85,227,222,157,205,121,196,245,81,15,81,205,37,143,225,124,164,64,111,180,33,205,49,242,68,251,92,127,204,165,10,15,198,91, +203,45,205,157,200,13,27,108,92,68,161,11,28,79,169,247,216,82,103,99,137,214,147,121,84,123,21,93,203,52,68,79,137,71,36,110,253,78,241,201,86,56,135,129,52,182,192,22,121,113,82,2,219,126,191,3,227,223,191,122,249,197,87,111,223,236,62,92,255,250,155,253,127,226,203,245,223,105,57,248,240,209,252,171,31,118,157,32,223,189,126,181,255,102,239,213,235,47,62,124,230,255,213,254,167,14,201,103,95,188,253,237,215,247,14,201,175,119,141,90,95,58,233,95,189,124,179,247,221,11,64,218,174,217,233,61,151,63,222,123,187,251,202,253,229,135,251,183,63,182,131,237,237,255,182,79,226,195,147,31,222,61,120,251,87,255,68,251,200,39,127,246,7,31,127,244,231,159,28,66,15,118,155,26,4,73,252,216,23,212,99,20,159,186,154,21,222,61,174,32,98,169,182,228,188,87,192,61,227,9,154,152,131,230,117,52,182,9,168,204,195,172,114,175,21,104,174,181,218,188,176,62,201,155,70,18,12,50,191,99,130,9,114,210,74,187,218,150,249,173,167,217,131,209,188,49, +199,157,192,118,216,174,11,137,192,214,64,176,50,19,94,8,205,154,141,92,160,59,117,29,245,148,38,27,234,144,61,78,210,104,190,237,177,59,172,218,60,89,42,162,213,132,97,18,182,228,240,112,235,52,133,181,70,168,53,197,228,229,52,71,239,111,227,154,240,250,190,159,209,132,137,5,40,75,186,192,12,104,149,17,20,229,140,102,12,103,106,91,244,200,84,44,39,177,93,47,142,72,42,192,30,174,203,234,18,93,234,102,22,199,201,243,234,180,209,121,230,119,221,15,66,106,62,222,185,163,105,224,73,146,211,236,44,218,171,129,114,52,62,139,148,242,194,172,134,120,32,201,202,159,240,138,203,160,252,97,32,231,100,105,90,98,89,36,2,35,84,201,161,110,51,203,240,88,53,23,174,186,211,62,27,241,95,220,150,130,44,203,6,4,102,188,51,132,102,195,138,5,199,174,108,44,216,115,28,230,180,15,198,206,73,48,249,32,179,60,175,158,206,242,174,161,179,80,107,101,200,40,90,126,123,0,161,33,144,230,83,14,173,7,131,107,167,6,112,206,191,28,110,197,6,77, +168,56,177,109,117,14,14,201,178,89,171,109,186,162,158,64,172,220,168,251,151,165,254,150,187,166,176,142,206,47,69,108,150,77,125,138,172,250,0,183,119,98,184,233,162,136,93,162,6,211,193,253,227,72,42,234,241,52,24,245,69,87,85,165,21,130,253,128,43,191,22,156,138,121,245,136,159,214,41,128,205,150,172,82,168,206,134,132,13,50,225,92,173,67,182,13,87,250,19,198,189,154,90,17,54,215,185,89,226,228,97,56,178,18,157,88,21,82,173,188,98,187,41,82,44,30,222,80,43,129,43,81,67,114,129,104,16,226,195,144,237,180,248,220,177,194,18,208,119,214,95,160,91,157,250,59,139,235,112,181,18,19,33,46,205,204,167,13,58,16,52,156,90,192,189,100,102,48,167,123,162,183,102,34,83,213,148,74,44,224,97,210,24,96,118,18,103,232,196,185,134,55,103,192,166,84,74,188,80,142,61,78,253,184,167,147,238,99,17,113,149,77,150,147,25,113,75,167,197,164,31,73,183,138,98,144,219,235,98,25,93,164,201,93,38,233,58,15,247,98,10,47,205,140,198,83, +193,94,114,137,112,132,132,76,26,136,250,152,94,13,131,118,101,245,146,243,92,142,8,123,248,161,76,108,43,157,45,13,240,235,66,167,35,208,115,152,110,166,42,57,136,183,169,12,202,40,86,41,96,85,48,192,166,51,55,229,29,128,214,119,168,217,176,110,241,117,130,36,189,145,49,3,195,251,224,179,75,152,152,50,196,143,101,242,201,86,208,144,139,218,182,83,243,237,209,165,181,74,27,46,98,53,205,181,65,236,86,157,168,117,8,36,89,20,140,95,145,41,116,156,226,137,134,230,198,251,28,119,50,56,209,45,123,112,142,143,87,134,228,176,207,190,113,33,121,46,211,14,24,188,19,118,163,205,83,173,7,193,225,18,70,25,129,90,52,124,21,68,219,100,161,120,49,237,6,249,99,220,192,213,241,247,238,94,84,7,52,91,40,120,196,162,9,207,19,228,51,26,62,0,126,7,196,123,191,23,212,91,14,133,252,16,138,14,203,17,155,13,219,73,213,41,51,154,180,215,225,52,122,220,158,132,207,243,246,145,154,206,99,204,25,204,55,245,109,17,34,116,149,117,62,62, +148,238,212,253,50,31,172,171,240,210,71,201,78,213,92,184,44,117,146,55,55,189,7,83,66,168,40,213,33,106,29,118,217,59,141,75,144,207,234,254,236,74,144,172,149,71,195,113,196,199,229,205,93,87,209,26,248,208,26,60,82,247,175,148,233,97,221,78,151,32,38,11,209,85,144,188,41,93,71,151,247,124,233,101,47,42,64,144,172,128,9,167,128,13,59,69,153,132,136,242,81,231,166,196,19,94,101,12,91,92,201,141,15,217,113,58,216,26,75,121,218,148,198,162,213,20,238,148,37,154,168,125,76,102,231,253,54,167,122,236,67,41,187,33,205,147,46,165,108,95,147,148,27,59,145,134,109,68,182,231,200,198,100,180,164,227,249,247,183,204,50,186,115,153,184,190,233,69,47,184,136,168,234,218,138,93,87,75,194,86,175,114,91,66,176,121,12,50,173,37,105,140,32,167,57,59,77,47,161,69,2,160,247,254,114,236,252,229,181,222,58,236,205,93,188,222,158,205,212,79,132,219,216,237,131,226,34,233,236,222,34,253,157,199,115,17,2,33,162,60,13,153,154,98,155,122, +127,78,229,123,0,228,110,86,207,212,56,13,66,123,212,162,107,72,20,189,203,204,158,30,95,184,53,168,17,130,58,154,13,207,208,242,33,27,174,174,37,141,196,163,18,194,104,9,63,161,2,173,98,210,106,81,143,249,196,200,106,170,211,202,105,145,119,26,224,222,135,153,23,103,189,125,167,1,254,226,118,160,150,164,138,103,148,130,169,205,240,139,96,152,118,225,193,38,75,235,163,215,60,71,34,147,28,223,95,90,26,90,232,37,57,124,24,8,114,225,33,36,212,141,150,7,130,74,2,229,1,101,15,146,212,74,91,253,136,206,230,117,81,16,61,117,78,152,166,8,35,227,154,142,40,210,15,42,161,22,252,2,165,190,144,36,0,45,248,196,94,132,18,139,244,146,32,30,100,23,85,202,7,124,199,172,177,98,145,46,250,205,10,114,50,205,110,126,191,10,252,221,135,94,199,223,246,79,237,186,181,254,243,219,175,190,248,245,111,107,210,187,86,228,175,28,156,111,95,189,248,236,67,89,250,253,98,242,242,227,79,62,250,235,255,3,184,253,229,191,220,251,15,239,186,212, +94,190,249,208,98,249,87,239,219,83,29,18,23,231,119,26,36,63,180,104,253,84,18,223,119,38,191,235,120,115,210,255,65,31,229,207,254,91,25,127,251,219,182,179,247,28,246,1,57,175,63,253,234,245,174,59,238,157,9,175,127,248,241,209,219,189,143,255,108,215,72,251,197,171,253,15,109,106,239,122,209,246,254,240,93,123,37,32,248,245,167,187,30,208,47,222,254,209,63,34,232,63,126,168,177,59,90,64,196,251,78,231,93,127,233,251,70,242,119,141,210,239,187,226,118,125,129,159,238,138,252,254,174,249,244,237,143,253,220,187,102,185,247,205,199,187,195,193,143,52,239,74,55,192,230,199,62,223,223,247,254,123,253,126,175,121,237,247,29,252,190,188,255,179,245,1,142,27,255,136,14,187,83,194,155,23,63,54,16,254,83,194,254,247,253,87,14,14,32,233,167,222,195,111,94,0,166,125,249,65,242,139,159,0,248,126,239,23,123,255,21,248,121,215,192,188,247,135,191,126,241,234,11,192,116,192,243,239,140,249,199,92,251,183,187,222,250,29,34,255,44,238,127,1,112,255, +139,247,220,255,240,207,126,241,79,115,253,59,64,240,63,83,97,64,185,255,186,251,245,65,229,159,127,242,223,81,246,239,94,1,236,222,235,250,15,125,254,15,142,107,63,33,255,242,199,255,46,224,195,210,189,93,139,246,139,55,31,196,125,247,171,159,20,250,208,239,239,164,255,213,143,141,138,255,77,195,226,159,254,233,159,255,193,39,127,254,9,4,154,2,21,118,45,190,151,239,143,104,72,224,136,134,125,32,37,105,76,107,51,127,225,194,114,206,98,92,54,138,50,160,222,34,85,43,173,152,68,58,148,68,164,163,238,109,8,205,37,1,111,146,28,34,249,112,177,233,158,214,2,36,95,61,113,189,208,89,157,119,119,56,56,233,130,220,44,246,159,15,120,205,42,6,153,22,67,184,154,173,178,88,204,102,139,148,137,157,211,138,130,77,91,116,94,187,94,78,26,147,249,100,56,225,221,26,87,42,229,124,56,49,151,182,155,205,178,100,60,109,79,142,225,212,21,129,184,181,203,211,143,132,202,115,232,28,154,82,207,5,42,5,247,174,24,224,137,226,174,42,227,170,79,39, +94,61,203,139,244,27,94,12,172,36,231,161,164,169,136,92,34,63,198,170,233,139,85,100,78,67,92,163,28,231,109,243,160,25,146,247,49,1,61,225,246,89,18,144,146,193,103,167,170,91,206,115,129,207,186,54,38,93,55,40,12,214,129,159,202,103,190,49,127,237,11,106,99,204,103,67,113,185,116,214,169,197,112,124,106,136,149,167,220,169,229,222,111,4,69,44,18,108,102,131,43,63,66,10,66,231,221,9,217,245,196,241,194,78,21,2,27,164,139,191,178,224,229,102,208,141,23,52,35,171,186,122,138,215,123,185,117,92,227,37,133,219,204,29,104,77,160,77,198,220,129,233,224,182,66,56,136,151,93,32,164,251,26,96,98,191,107,197,236,216,25,36,116,131,184,101,186,206,171,147,3,244,185,13,100,95,80,110,29,7,86,55,24,208,4,68,231,173,14,137,73,63,166,85,79,173,60,36,218,105,149,48,41,6,181,214,132,185,104,5,97,15,176,233,14,145,142,176,250,26,81,30,253,32,40,5,53,171,86,255,225,19,130,202,235,129,117,7,65,65,41,118,65,242,142,12, +125,33,126,181,168,204,72,181,33,58,234,85,99,46,19,133,91,49,99,16,22,183,227,201,242,221,189,166,212,208,232,248,107,186,204,33,230,95,234,163,105,199,253,17,205,126,192,138,182,219,102,14,76,224,83,203,117,252,147,53,114,154,182,174,136,1,222,48,86,170,220,13,12,208,252,9,138,121,135,199,110,172,23,44,59,231,184,179,80,197,239,240,12,19,170,87,116,2,111,238,76,162,245,226,20,244,76,183,123,23,32,155,90,46,239,128,42,179,203,72,43,118,170,63,25,91,25,45,149,13,65,101,35,203,231,91,121,205,140,48,67,79,49,178,8,191,226,172,248,12,72,191,253,206,195,65,34,165,75,14,92,53,166,70,148,170,137,16,234,226,28,211,216,39,71,18,237,131,195,47,86,15,220,250,12,179,92,228,240,232,185,116,192,161,12,203,29,139,154,215,130,63,186,57,110,174,195,13,215,180,197,95,117,61,86,72,88,143,74,64,208,21,219,19,57,53,14,204,150,28,197,229,130,35,57,45,222,216,146,161,28,231,106,2,210,70,6,201,168,105,16,245,196,151,201,2, +243,66,98,179,122,82,82,69,63,223,46,122,20,126,253,248,180,114,69,14,64,2,247,67,60,247,114,24,68,156,50,68,252,49,83,124,186,85,72,212,158,9,121,40,199,216,252,92,238,218,23,48,96,48,172,179,103,206,9,56,21,237,64,15,198,164,217,217,50,184,193,52,107,204,54,241,38,9,63,184,202,89,25,10,74,135,131,108,167,142,174,244,137,86,112,49,177,184,55,79,80,173,116,61,59,79,13,150,178,233,96,107,8,204,253,23,67,215,98,224,25,170,113,77,77,126,200,42,116,182,74,255,6,150,129,167,11,141,174,120,82,239,166,115,34,42,157,131,57,229,15,249,91,245,217,86,218,53,54,20,143,252,88,249,120,121,193,114,21,214,138,64,231,136,47,86,55,232,168,51,7,239,56,119,164,213,153,224,73,115,9,171,126,52,92,40,18,17,172,51,253,212,176,77,145,129,250,57,14,51,50,6,202,195,118,196,176,70,178,202,221,245,80,100,66,178,152,157,82,250,97,53,167,106,107,174,197,114,168,150,178,57,181,118,111,194,159,106,50,211,84,134,118,184,204,34, +32,93,220,153,20,123,232,146,116,27,43,149,109,192,204,80,79,111,186,210,60,7,220,34,28,247,253,32,209,89,70,139,49,179,54,78,42,187,212,79,47,85,205,164,81,18,207,33,173,173,86,147,82,185,59,120,62,174,28,175,7,58,198,205,244,169,178,65,15,164,150,242,58,199,108,222,18,176,184,230,52,183,77,183,93,166,156,77,77,206,21,38,84,197,120,254,176,62,215,39,100,105,153,54,81,106,208,252,13,45,229,18,196,40,221,32,78,81,84,6,184,82,89,151,23,88,12,140,79,213,46,152,43,152,213,234,173,225,252,246,152,28,207,132,113,158,240,129,22,93,112,211,160,69,89,231,168,113,52,92,177,93,98,104,94,53,121,122,22,154,41,155,193,166,213,34,44,227,182,88,63,77,52,188,41,114,31,76,54,61,229,58,173,31,195,239,135,113,30,247,78,65,42,207,147,158,227,107,197,122,229,187,47,196,187,77,134,207,120,118,116,122,35,79,214,216,198,2,18,2,158,110,136,82,221,105,242,208,237,172,216,205,15,11,34,255,204,197,174,64,21,78,123,120,118,99, +44,64,159,40,237,64,8,131,186,55,219,111,210,129,14,194,208,236,178,49,49,179,190,220,126,216,244,2,199,173,53,234,178,191,70,63,139,243,215,54,203,144,147,93,197,250,82,230,90,109,158,133,174,160,86,107,175,128,128,128,35,132,222,149,185,22,239,48,103,9,86,230,233,80,123,52,63,240,56,136,120,13,222,215,162,173,9,39,60,88,189,12,82,92,71,238,202,157,4,40,113,124,137,173,119,159,135,85,225,209,216,28,78,78,51,44,193,121,51,170,71,72,60,122,215,224,170,140,110,37,7,235,209,176,122,75,187,106,165,174,28,57,248,49,183,102,66,152,31,29,49,62,246,18,65,209,9,166,193,83,111,98,202,203,247,91,156,107,199,100,244,176,48,22,98,14,168,94,81,123,228,94,50,61,60,133,220,70,59,185,174,69,67,6,21,120,110,70,228,202,44,161,198,225,165,242,78,150,218,33,150,235,212,201,110,58,195,78,243,228,14,26,98,213,53,1,53,217,15,176,182,65,61,84,48,198,129,144,182,136,90,63,126,177,192,35,197,66,233,8,127,141,207,20,145,162, +84,20,177,24,5,251,146,117,1,226,60,97,212,39,126,42,222,136,208,30,134,90,156,22,191,158,186,113,251,241,249,41,154,167,68,89,79,150,71,67,239,173,227,36,124,124,196,65,81,50,146,219,170,0,141,48,194,143,6,96,145,53,31,159,28,44,31,23,165,3,57,137,18,212,246,79,30,174,12,55,229,187,147,132,186,10,237,180,199,113,75,86,149,79,193,177,206,96,37,7,165,122,173,145,167,39,122,108,129,70,168,65,161,85,186,142,59,227,173,110,16,71,1,2,70,219,157,220,54,189,93,153,15,161,105,192,100,178,2,105,211,247,178,7,224,185,50,99,207,207,225,155,184,183,204,123,236,51,77,112,51,226,80,60,188,55,128,122,87,242,149,52,197,17,228,169,137,203,202,57,20,56,206,27,208,221,135,32,189,39,159,21,181,215,209,84,6,211,191,93,166,239,143,215,25,236,117,60,67,104,63,84,47,83,231,114,176,58,160,146,133,115,166,107,205,152,8,191,16,68,229,215,225,57,205,150,105,65,227,147,249,9,10,197,58,3,246,200,200,219,189,94,108,152,21,21, +69,23,9,41,233,81,104,59,91,213,141,69,49,17,205,127,116,3,170,115,83,28,232,113,137,228,171,158,89,73,242,229,81,19,179,46,201,5,71,28,92,35,134,161,79,56,171,254,113,172,239,14,159,174,143,47,48,216,92,207,128,49,130,134,110,65,187,240,36,236,173,103,61,122,213,200,173,172,78,101,133,39,86,136,14,199,112,2,74,14,148,207,178,69,122,236,147,27,5,217,100,59,7,33,104,72,108,33,38,188,139,197,28,106,80,144,196,79,142,151,216,130,108,114,45,93,8,77,135,253,222,133,197,120,139,135,193,208,196,25,46,194,242,241,6,172,237,24,213,5,13,47,167,76,184,95,38,144,50,100,72,42,8,229,144,165,17,167,41,134,232,65,127,36,67,78,111,120,4,82,190,118,156,54,210,76,71,161,130,49,215,148,5,131,106,42,174,134,169,137,155,93,247,89,81,183,184,30,142,202,231,208,107,3,126,14,27,234,241,224,233,234,4,124,138,186,246,90,249,241,212,145,70,174,216,88,241,93,70,143,77,70,66,169,237,56,182,28,229,112,155,155,231,145,16,86, +178,123,97,57,66,201,3,214,162,194,84,37,29,114,6,58,53,129,22,109,47,118,160,29,92,174,40,246,180,67,137,130,95,109,133,92,63,43,156,146,40,122,185,1,35,95,108,37,101,27,46,51,125,13,212,72,3,229,97,66,194,169,169,24,205,180,193,85,73,44,195,140,236,33,127,12,22,61,4,106,148,108,151,173,66,120,141,214,233,209,32,117,100,214,223,31,28,109,105,145,71,61,49,204,235,233,251,106,11,222,191,60,99,116,186,180,147,193,124,68,164,82,2,135,233,203,167,52,115,245,52,185,208,129,14,76,158,67,9,153,228,116,212,44,29,16,231,198,178,128,232,132,43,206,120,233,215,244,39,146,227,96,202,66,19,49,243,182,94,64,57,40,151,43,98,218,255,199,199,91,52,75,212,108,87,98,127,69,67,15,58,218,191,193,99,207,61,87,135,52,144,251,201,175,35,100,105,208,163,91,204,204,76,183,152,153,153,153,110,49,51,51,179,239,247,61,201,225,48,141,42,35,243,68,158,147,59,87,237,92,123,101,196,90,81,182,173,66,203,82,18,101,198,173,220,110, +57,38,34,141,49,14,84,156,186,38,22,124,14,250,152,112,234,223,199,25,11,10,5,46,67,86,209,80,194,210,40,242,47,3,155,115,116,186,165,42,104,151,219,38,111,0,76,236,103,228,90,193,173,97,28,173,152,124,56,191,238,97,64,247,204,181,167,78,166,83,9,88,114,173,69,220,97,248,67,223,119,248,85,178,119,132,155,41,152,146,129,60,5,70,104,223,234,19,164,160,149,68,203,52,99,192,82,204,174,58,146,165,54,179,253,145,216,145,74,137,239,166,253,56,111,211,170,145,152,246,172,80,203,64,143,151,201,250,128,208,113,43,4,213,156,55,194,71,129,219,174,162,179,111,228,183,139,198,154,226,223,160,243,23,143,176,101,226,84,201,58,168,253,30,69,196,241,199,166,208,50,149,251,34,84,247,52,130,126,153,216,223,36,93,22,68,219,82,249,248,248,245,51,250,70,80,171,228,80,87,19,242,82,184,160,144,187,45,130,201,237,130,115,16,78,93,227,4,76,142,39,185,129,98,109,74,19,171,101,184,33,204,137,141,180,165,176,150,71,250,18,53,89,85,132,45, +106,6,171,57,174,157,49,69,78,73,76,18,160,160,208,220,194,51,199,42,223,85,6,249,134,224,165,138,55,180,0,60,198,163,83,31,232,23,227,186,65,233,241,86,214,87,213,247,115,55,99,50,248,23,145,229,222,140,85,164,173,253,178,58,68,128,218,188,219,127,52,138,69,250,175,212,29,220,124,124,63,69,115,65,72,180,34,229,99,188,67,228,66,253,164,174,242,171,255,16,209,220,36,152,67,58,114,204,21,107,247,74,141,109,36,234,211,117,67,169,110,99,16,212,244,164,38,222,147,29,34,85,154,152,69,53,73,159,31,254,33,63,252,130,50,170,91,72,28,206,132,246,219,213,138,79,21,18,24,116,239,47,235,151,8,62,102,5,64,98,113,15,45,60,146,164,238,47,193,241,44,212,231,60,208,64,238,5,23,15,181,77,135,77,127,142,236,194,242,73,148,134,89,212,40,117,8,209,106,22,111,234,201,203,154,76,186,145,188,217,109,122,213,114,247,142,243,249,78,90,193,122,72,156,235,190,238,221,167,136,13,118,70,123,77,95,14,167,126,71,170,231,105,57,49,159, +85,55,226,173,248,111,211,128,212,68,247,169,120,107,11,220,187,85,151,51,40,229,53,147,70,241,64,50,146,175,20,48,223,191,167,211,162,99,47,60,198,144,33,77,57,126,218,14,210,80,207,126,121,177,61,175,121,46,210,130,141,177,17,7,155,176,255,22,141,222,211,59,39,58,198,94,185,203,204,138,151,229,190,159,42,245,172,138,14,101,97,210,5,54,211,195,106,63,156,233,83,32,62,167,241,30,61,40,29,242,185,206,105,213,58,200,143,232,80,157,129,32,226,86,0,26,124,28,21,136,99,88,111,60,69,232,166,148,11,112,240,172,44,100,228,50,112,150,219,164,238,109,159,189,16,122,149,187,48,111,40,71,76,99,91,123,112,210,49,99,174,251,110,20,72,7,225,204,122,115,58,81,27,94,34,255,193,84,144,94,254,162,11,130,185,12,54,91,81,138,196,105,78,226,40,71,33,218,51,145,147,41,96,208,121,42,161,227,65,86,135,143,248,42,145,106,150,124,122,72,232,182,160,204,17,34,55,127,66,197,167,220,116,181,77,242,3,191,81,151,124,93,238,202,183,141, +84,20,118,27,39,67,207,12,124,182,135,176,76,14,224,215,214,116,76,85,219,74,133,80,55,133,194,102,63,5,59,226,154,56,134,95,233,250,159,236,70,6,118,167,56,32,57,156,65,213,50,230,89,110,184,6,48,251,165,198,161,190,37,59,232,130,98,62,242,147,244,7,25,134,48,166,84,252,181,43,67,182,191,252,84,41,188,252,35,181,157,21,33,132,180,60,84,153,223,10,194,132,139,146,102,55,188,71,43,231,108,86,107,3,236,180,152,131,51,82,101,164,147,116,135,199,111,173,173,49,23,36,192,1,86,254,12,58,151,1,28,211,164,107,243,74,251,48,98,62,31,138,205,122,165,153,37,8,247,25,181,204,189,254,222,78,198,37,155,224,234,58,70,143,201,228,254,173,0,35,0,81,176,212,175,44,17,195,209,235,236,37,119,58,13,133,222,7,150,150,100,168,69,207,135,191,137,18,203,176,249,19,9,159,75,200,201,43,208,175,25,230,35,185,109,26,32,6,64,193,121,59,180,48,234,150,48,133,70,172,213,35,0,19,90,203,197,44,30,16,106,40,99,191,20,103, +140,241,107,204,103,191,4,168,136,15,15,119,212,148,9,70,76,239,37,130,81,244,24,136,192,164,139,31,27,125,1,10,37,131,29,253,238,86,15,186,13,104,4,133,30,63,25,237,45,248,11,101,213,173,131,131,102,60,205,109,166,251,232,32,65,16,195,49,126,161,35,66,152,24,141,62,150,212,118,76,168,68,22,52,124,31,43,9,104,149,229,232,176,48,38,228,193,196,104,166,109,32,138,198,146,87,144,23,67,182,84,209,197,158,13,1,59,66,79,65,51,249,19,106,16,16,229,123,208,45,79,82,71,18,166,5,65,35,62,54,125,1,31,155,208,168,249,116,129,232,212,201,200,33,4,44,25,186,234,27,16,99,152,99,62,205,55,55,87,252,16,24,100,106,228,120,51,127,40,225,240,124,95,183,196,220,206,213,253,249,134,152,116,223,139,161,175,109,15,249,2,70,88,134,7,56,50,3,23,226,96,154,11,37,125,31,173,52,242,219,65,212,30,215,61,112,230,206,128,39,167,23,229,55,85,139,212,65,21,78,34,98,184,142,163,217,191,171,118,16,145,253,28,20,202,116, +204,175,42,213,136,111,194,20,136,111,40,211,74,161,211,81,97,167,222,192,148,221,13,109,178,89,231,114,234,243,113,6,0,61,44,81,195,21,8,252,140,12,214,203,62,167,154,243,213,26,128,209,248,121,181,74,23,82,218,209,55,245,76,75,161,242,95,73,112,69,14,90,6,145,156,135,35,167,85,2,8,120,238,198,79,87,208,89,206,66,102,205,46,226,232,110,18,226,62,5,246,25,129,223,141,206,225,143,223,196,103,232,58,187,201,88,116,202,3,16,32,209,155,72,40,244,233,213,228,246,12,56,19,254,202,208,33,251,109,136,8,101,230,57,104,68,46,222,217,195,20,0,184,168,31,213,251,6,112,134,236,170,95,130,209,156,95,214,60,74,85,108,215,239,107,181,223,148,28,231,27,136,185,207,100,29,155,213,143,145,128,198,96,236,2,244,207,12,169,85,17,58,83,232,220,33,67,141,249,80,195,244,183,249,103,75,96,248,91,11,246,71,231,111,235,245,231,176,44,90,246,205,42,138,190,54,15,62,85,238,249,85,138,52,209,174,21,134,220,172,42,14,201,16,191,97, +129,189,61,59,90,12,5,36,91,1,28,208,71,175,65,190,127,193,139,95,34,158,86,33,51,231,67,217,141,254,53,131,8,173,171,57,220,29,26,12,64,242,26,151,148,98,115,104,159,230,149,57,164,37,21,138,176,118,130,41,119,11,162,210,189,83,24,147,42,99,0,44,149,88,132,37,232,114,230,221,0,85,59,149,214,188,110,23,151,9,139,11,93,168,226,181,212,43,61,225,4,198,84,115,14,33,226,38,78,144,12,29,246,124,126,175,123,92,192,148,87,225,229,20,80,122,180,218,223,239,240,138,212,220,31,208,135,140,187,48,122,172,9,132,113,195,155,116,23,166,25,85,195,4,100,78,79,2,19,242,30,248,26,88,170,139,139,109,19,176,169,188,25,163,203,138,96,200,110,111,77,102,111,43,30,146,134,43,159,110,63,208,76,14,141,30,227,123,32,59,196,192,152,102,167,250,207,109,38,126,169,193,172,219,201,12,18,103,164,224,102,108,213,197,83,29,225,253,108,88,186,216,147,155,164,227,103,204,191,109,236,44,89,48,231,21,91,130,180,92,209,78,208,181,115,216, +68,129,66,28,59,131,15,211,126,254,96,122,171,114,139,94,167,2,214,224,145,18,157,128,75,95,125,31,168,98,194,128,23,131,101,141,114,152,64,60,53,132,116,18,0,6,36,242,42,166,54,50,164,138,47,51,31,31,110,165,90,41,243,3,230,248,97,57,21,9,122,204,252,187,237,133,191,5,132,231,145,1,144,159,142,221,211,231,111,43,147,62,66,135,0,81,188,22,122,201,218,153,184,30,60,196,20,10,141,172,201,83,40,18,143,249,201,106,155,43,239,158,22,253,93,238,85,15,11,171,238,64,80,233,232,226,200,118,89,194,0,218,75,251,242,32,202,231,5,244,141,169,73,23,136,162,254,180,67,123,212,244,208,104,199,63,167,2,26,157,89,21,230,25,99,110,151,106,87,7,229,144,187,98,6,48,173,18,38,128,73,73,8,95,159,145,201,196,26,66,233,49,244,10,112,69,68,41,198,106,112,216,197,100,152,227,52,15,58,143,28,1,175,241,39,201,29,116,167,34,153,51,18,98,179,83,177,109,238,11,54,220,95,32,129,251,141,212,246,132,202,52,23,157,76,159, +231,193,26,212,230,124,33,194,127,168,214,47,139,73,0,117,40,38,226,111,62,1,170,217,182,188,1,31,99,247,9,64,219,225,151,134,57,159,202,66,148,15,192,45,185,142,254,223,61,201,254,231,191,254,229,175,255,127,142,100,127,83,213,254,230,176,247,127,117,36,251,119,83,184,63,36,206,255,250,215,191,252,253,127,254,187,255,233,191,255,211,63,255,235,159,54,153,255,49,244,207,127,140,252,227,223,253,235,63,4,5,255,22,20,252,159,238,113,127,74,160,255,233,239,254,237,191,255,246,255,229,31,255,183,63,238,88,255,250,15,127,247,47,127,234,147,255,250,219,252,111,127,200,202,191,99,255,238,54,249,79,255,174,153,254,15,255,250,231,197,238,31,79,253,249,198,63,68,242,176,224,31,255,225,159,254,152,251,79,43,180,255,18,84,255,229,63,92,253,254,211,223,164,230,127,251,235,239,148,255,235,191,252,33,129,255,41,117,255,78,25,148,255,187,205,230,127,254,187,255,229,175,127,249,47,127,255,135,149,229,127,88,174,253,203,63,254,161,233,254,78,248,15,127,10,136, +255,252,215,63,36,198,127,249,251,127,254,125,239,223,255,239,127,91,236,127,251,235,191,252,235,31,30,114,255,245,15,73,247,143,107,232,191,254,241,245,255,247,104,252,45,162,255,227,255,83,90,252,255,242,66,139,178,151,108,216,149,29,14,190,116,144,167,47,240,6,126,131,169,177,24,219,97,174,210,155,187,168,59,222,160,170,218,170,246,99,211,112,243,238,27,119,109,109,117,95,218,98,229,69,51,113,27,134,129,29,9,0,245,93,207,199,8,220,122,70,19,244,24,107,246,1,106,26,157,86,171,211,154,63,60,46,227,203,121,243,112,110,222,166,88,140,234,243,72,42,26,190,209,139,205,164,132,119,150,106,198,161,229,215,248,124,32,226,182,70,247,119,186,255,6,100,180,14,134,186,219,112,169,79,66,202,122,71,164,216,245,172,254,9,206,53,249,45,99,92,214,75,108,128,123,196,242,1,235,213,82,178,72,63,98,231,231,28,174,46,179,132,21,113,192,128,209,123,97,87,109,40,202,240,46,237,49,105,147,216,172,117,49,224,39,34,55,42,179,206,247,35,8,156,92,62, +56,242,1,57,142,93,54,145,143,85,227,152,59,243,241,78,90,128,165,25,213,181,148,180,38,191,132,136,189,252,228,168,233,108,243,61,128,21,214,123,77,225,130,48,49,12,6,105,47,1,182,201,231,141,192,199,0,129,5,198,51,188,35,120,255,56,120,212,55,40,215,230,228,195,230,251,6,101,26,55,115,126,107,241,7,31,120,82,9,134,225,26,52,92,240,0,248,145,8,16,105,39,142,49,234,96,25,105,171,187,22,137,41,226,0,96,252,182,193,240,68,216,215,38,1,188,126,197,127,174,40,215,234,162,254,66,67,34,20,134,220,139,70,78,13,198,108,92,53,35,95,243,235,103,106,8,252,138,162,107,82,34,88,196,253,232,220,103,112,171,2,156,210,12,153,142,167,119,5,113,190,134,173,43,39,86,36,171,98,68,222,254,10,209,234,200,177,125,226,198,208,185,198,175,78,148,211,137,91,241,96,198,119,196,246,237,26,223,78,3,73,174,227,238,189,79,8,210,57,137,155,117,72,121,231,91,37,42,125,28,71,131,94,119,19,133,63,70,86,108,218,33,123,145,114,5, +99,178,73,137,193,100,64,154,162,97,212,74,134,34,133,249,209,249,44,63,145,135,114,5,3,199,189,189,132,29,65,0,162,136,161,122,164,9,216,57,3,148,111,168,206,254,29,78,188,42,254,169,144,14,66,5,2,51,185,238,65,192,243,204,140,57,155,34,170,191,66,32,129,75,12,159,24,238,192,128,124,69,60,71,67,84,107,82,53,167,242,48,61,44,123,139,68,62,217,207,250,152,82,234,67,226,17,54,217,171,172,242,195,205,43,200,47,68,219,82,91,16,42,233,213,225,203,211,179,220,150,237,158,216,111,20,155,180,207,241,251,224,91,58,6,124,83,239,252,143,39,227,197,157,183,128,239,158,54,228,250,170,110,29,58,245,16,10,52,1,3,91,148,139,124,249,25,140,198,242,221,73,32,115,86,117,190,52,65,235,203,16,12,49,13,117,150,193,42,140,161,180,220,75,52,59,162,54,222,69,217,122,7,76,61,228,244,149,249,162,61,236,223,227,214,153,38,52,3,121,168,114,245,169,169,159,24,211,209,69,42,164,208,32,149,158,212,18,147,137,228,195,248,74,189,46, +146,81,45,222,224,61,201,84,102,107,83,143,46,105,93,11,234,143,6,238,253,62,196,197,231,78,241,202,93,163,188,222,37,62,223,32,21,239,131,194,231,168,223,85,113,29,170,230,144,97,234,33,155,8,165,147,1,174,23,254,189,111,136,67,190,185,239,253,66,234,246,34,63,0,152,126,150,31,117,127,94,251,35,129,173,128,97,123,212,115,43,115,227,165,15,45,175,174,188,14,196,146,155,195,134,197,125,68,175,201,38,11,234,222,48,206,73,143,70,155,51,166,180,216,9,125,93,251,76,79,148,79,144,84,41,221,226,15,251,194,126,179,84,200,222,197,178,95,135,177,76,221,36,82,159,118,85,154,206,151,186,24,161,253,210,130,74,9,244,160,62,206,103,245,214,101,73,158,234,14,246,101,81,228,132,82,215,29,222,88,190,43,124,88,89,82,185,97,116,56,23,201,225,102,51,158,19,21,73,50,48,9,75,117,134,100,8,249,108,229,159,109,65,97,198,166,189,113,15,208,188,150,12,183,36,77,148,142,14,201,179,143,126,9,234,56,203,18,166,190,31,150,50,114,251,121, +224,250,23,230,4,171,172,20,184,151,219,75,204,7,126,87,1,8,200,102,73,174,68,63,188,23,248,70,160,95,15,245,248,224,176,97,88,124,236,9,113,202,91,111,253,221,39,14,225,32,123,185,58,40,150,142,131,185,46,226,24,125,142,98,134,148,94,214,250,222,182,102,62,174,167,207,126,195,113,221,69,206,67,234,156,29,223,203,162,209,239,152,79,216,165,44,61,201,245,233,169,19,175,193,249,24,9,118,151,109,176,93,186,173,158,45,227,96,147,136,173,180,42,197,235,148,143,228,173,161,115,92,16,184,3,106,230,69,210,118,138,117,196,171,187,98,120,211,211,52,181,78,93,242,158,207,184,219,150,105,237,184,247,82,39,183,108,225,112,18,42,230,224,253,39,176,184,83,193,103,245,209,147,61,35,146,102,125,153,70,235,252,172,153,226,215,15,210,118,77,142,189,1,65,159,38,106,121,181,232,135,91,104,155,25,209,120,148,57,175,153,132,45,19,144,55,149,189,49,184,7,203,103,121,202,45,78,185,21,244,148,95,238,126,156,139,137,243,187,241,20,220,121,23,147,18, +43,231,93,198,119,75,45,223,154,120,61,120,61,245,185,237,151,81,226,208,65,250,134,112,119,110,237,45,174,189,125,92,29,214,123,154,63,194,112,47,201,196,205,252,44,91,201,167,43,91,52,114,49,178,207,118,67,222,169,62,141,132,58,31,145,183,35,45,101,52,98,122,91,140,122,62,236,77,167,97,33,151,75,28,88,226,97,173,254,69,139,184,205,200,183,144,103,32,123,48,182,238,39,169,227,152,177,172,94,202,170,227,226,26,101,109,78,148,113,144,206,98,45,184,217,59,6,39,64,91,143,205,236,236,150,215,110,235,236,200,66,163,150,222,253,217,252,157,47,79,190,100,16,201,174,82,180,62,121,20,253,107,177,45,117,238,183,241,107,70,223,137,235,105,3,63,64,147,232,109,125,2,90,168,93,132,18,205,10,249,36,135,156,54,241,219,57,125,118,158,189,250,213,232,114,116,180,65,76,107,241,201,84,86,159,124,165,165,203,230,197,183,52,101,81,171,142,95,143,42,231,179,239,154,64,36,177,232,65,96,153,0,253,169,199,43,13,38,100,92,55,198,209,49,59,58, +206,11,174,185,56,183,144,111,193,233,25,54,142,82,72,168,118,195,124,22,239,10,2,32,4,8,132,124,202,158,29,8,2,164,5,198,53,208,16,214,23,156,70,170,76,178,90,138,85,165,212,100,245,199,213,171,226,110,223,32,93,91,48,152,22,37,111,179,146,69,232,213,213,131,154,69,202,167,108,26,73,28,36,205,248,64,138,94,179,29,79,94,58,249,169,173,215,48,221,183,166,167,76,249,209,12,45,43,122,32,105,5,62,92,55,156,65,249,65,72,196,179,48,232,36,58,245,92,188,210,226,75,131,181,109,102,39,183,38,111,62,167,212,7,179,248,76,203,140,22,60,206,57,71,246,151,196,242,16,60,128,177,231,60,130,183,168,242,94,141,42,87,113,240,78,43,82,17,29,102,180,89,161,83,132,222,163,35,209,125,240,132,31,158,234,98,166,134,219,125,59,81,135,63,166,206,46,71,230,190,151,108,65,154,10,117,73,45,195,182,125,13,2,226,150,103,152,129,231,135,203,107,189,102,134,14,4,14,83,31,252,212,201,19,253,136,183,78,15,182,233,177,28,255,100,234, +178,51,43,185,63,179,180,196,44,225,232,241,206,10,220,166,198,82,211,20,214,87,38,66,11,129,163,24,57,121,164,239,7,108,219,91,39,42,163,54,153,55,170,101,181,166,45,217,140,134,252,83,1,145,248,217,194,101,217,178,92,42,149,157,118,94,55,16,171,222,165,81,37,170,204,151,12,123,233,55,181,246,204,224,213,207,37,184,88,179,51,52,147,177,125,199,37,145,241,208,47,125,138,26,120,94,222,221,42,235,225,105,103,27,142,201,165,147,155,115,37,237,215,90,107,94,87,126,174,78,241,151,65,171,56,63,211,3,205,78,107,196,162,12,4,60,89,8,22,20,186,110,94,116,77,107,223,250,67,200,123,255,60,155,74,241,82,158,74,243,232,134,2,222,254,1,109,228,6,53,233,81,223,30,244,133,29,43,223,119,34,6,251,223,228,104,154,203,26,173,81,135,48,61,27,220,140,43,149,66,188,197,36,65,86,71,165,179,114,86,96,187,235,34,183,36,254,248,121,245,248,199,229,134,124,242,29,17,151,35,249,65,2,180,90,196,160,252,113,107,189,143,245,226,209,117, +110,130,129,12,75,133,255,177,60,249,173,117,221,101,54,238,44,12,168,180,35,207,7,91,30,225,8,138,116,4,209,211,209,100,195,154,240,120,203,237,27,25,108,220,16,150,73,164,198,149,177,70,247,53,40,120,152,108,22,156,71,84,122,161,98,212,220,222,124,210,113,21,221,15,69,162,86,177,146,179,239,244,108,169,148,36,90,90,217,249,149,62,120,110,191,235,133,27,8,153,4,146,112,143,217,76,34,106,6,178,124,68,47,0,158,169,251,29,54,243,113,106,205,231,55,207,151,72,144,0,99,7,33,128,86,16,248,163,71,166,107,99,77,173,239,121,28,211,225,200,163,2,195,138,217,55,63,204,154,228,216,147,150,250,141,26,159,65,232,34,168,112,185,241,174,5,25,20,199,23,47,211,145,159,14,197,42,238,251,153,124,180,46,31,138,129,145,32,155,220,154,235,60,215,115,103,173,170,235,152,66,227,251,9,118,157,221,102,8,19,175,11,40,107,47,196,102,158,90,106,51,121,204,252,178,140,60,50,123,235,88,108,23,253,10,162,254,93,102,180,193,225,253,12,222,235, +224,224,16,92,99,50,110,229,97,157,254,136,221,159,242,242,37,133,214,179,74,133,251,83,172,173,95,113,249,68,28,134,113,105,20,48,237,90,11,235,186,99,125,254,156,109,250,172,233,131,77,194,190,66,224,72,122,232,109,194,66,130,105,237,171,187,11,213,108,173,119,122,189,33,119,81,142,244,24,49,105,3,250,8,188,54,174,13,178,214,190,55,122,44,34,26,213,201,65,0,135,204,198,188,13,251,240,234,188,245,97,37,20,76,203,249,28,153,54,60,226,212,79,211,63,222,103,116,224,167,124,65,144,160,222,55,248,244,180,118,94,23,158,19,130,131,140,237,233,172,172,69,245,8,138,31,86,81,141,11,227,237,226,46,236,78,103,239,47,57,202,48,235,138,250,168,245,173,215,65,136,0,253,64,125,25,52,137,214,218,244,197,110,253,38,215,110,56,244,61,4,3,174,14,155,233,105,140,45,78,95,105,245,132,75,161,180,105,228,71,199,144,155,191,218,250,73,24,38,254,93,32,4,85,87,191,93,3,155,204,121,57,240,89,96,212,81,164,129,179,34,31,57,239,214,154, +85,127,16,46,205,166,117,182,118,220,27,201,193,204,137,99,43,145,90,155,67,158,157,86,110,212,98,51,99,180,72,237,87,99,217,169,63,198,180,142,181,111,225,25,94,212,216,187,123,246,107,165,111,173,85,112,184,150,110,51,156,58,1,244,85,81,19,128,87,70,211,93,213,153,154,213,225,161,121,91,158,225,107,110,181,95,42,233,123,20,227,65,69,42,157,54,80,188,224,244,107,152,241,230,98,163,62,95,206,94,55,250,93,29,151,94,27,127,24,181,91,49,94,66,116,200,58,224,235,92,31,55,51,63,17,163,151,237,239,247,49,205,88,139,119,150,77,231,221,20,174,95,34,235,102,125,185,128,186,126,111,224,148,249,12,223,61,83,5,66,199,165,30,234,28,215,123,193,174,237,214,163,57,131,41,58,46,204,113,116,211,249,121,116,10,43,213,203,63,106,118,40,15,2,175,66,12,77,223,249,172,231,84,99,72,195,53,243,4,202,220,41,6,165,159,116,158,151,9,157,56,137,173,30,146,0,188,246,102,207,235,224,214,166,143,45,175,165,118,171,219,162,195,5,175,218, +122,84,238,214,58,139,250,10,56,55,55,122,231,209,232,239,27,55,232,164,67,105,93,56,240,161,170,218,20,99,79,94,142,220,157,97,246,81,10,191,198,17,96,248,107,6,231,104,173,188,177,250,194,175,240,37,127,53,38,157,235,78,11,213,153,230,28,87,231,56,223,88,120,251,239,19,12,245,29,244,7,183,171,62,10,204,1,143,66,183,35,14,220,111,8,48,208,218,246,242,30,180,40,181,67,136,72,244,219,129,188,144,109,183,227,117,27,58,217,107,11,245,31,111,208,242,134,213,43,151,136,48,36,167,155,225,189,137,54,154,112,109,185,132,55,148,235,187,123,223,90,0,183,47,149,237,152,5,172,80,162,148,230,61,173,159,119,34,35,138,199,204,181,233,189,227,251,5,202,254,130,133,243,9,94,56,79,29,231,160,85,187,87,159,95,188,107,21,188,229,167,189,122,30,20,147,22,143,228,204,29,42,55,233,249,195,218,37,200,7,77,207,7,196,173,180,10,46,244,40,135,193,181,200,61,130,149,0,244,59,153,215,248,113,74,31,167,44,123,255,188,98,31,204,184,54, +251,209,214,47,30,193,99,100,233,215,37,61,149,177,90,235,90,95,207,35,20,228,69,61,122,115,252,180,197,119,24,112,89,225,239,118,244,212,150,166,185,107,216,201,104,73,244,59,147,76,106,140,147,229,212,234,183,223,186,119,182,146,143,246,180,253,212,174,195,165,160,99,212,209,182,174,149,251,125,167,69,161,24,246,178,202,104,239,69,182,125,62,26,162,13,189,99,94,224,187,177,90,183,128,94,214,113,31,165,177,175,235,192,135,152,42,236,86,145,39,17,230,92,79,252,14,78,113,227,124,147,24,19,240,9,208,135,217,30,97,41,148,234,164,156,46,19,119,231,216,122,243,224,207,114,235,253,40,160,54,46,70,231,233,91,22,113,254,180,135,51,187,239,192,218,56,228,130,209,184,6,243,109,47,13,66,125,202,29,231,149,153,9,87,76,103,173,71,118,218,105,153,84,218,71,248,238,105,231,84,218,91,248,92,107,145,82,78,54,37,163,140,218,80,246,84,162,47,87,70,150,151,70,14,254,37,12,183,75,3,95,181,86,189,243,13,32,219,81,109,60,78,57,247,53,104, +62,34,90,199,217,61,56,190,78,111,216,206,169,173,29,221,199,241,31,154,142,49,171,209,86,63,110,72,95,148,41,73,19,244,53,170,246,205,125,80,184,48,115,123,255,40,113,157,98,99,89,141,218,204,23,220,210,165,127,39,183,189,202,79,221,90,11,107,79,113,119,89,226,220,152,49,3,30,45,68,51,136,139,227,132,179,88,5,90,23,225,1,160,220,245,235,18,122,230,65,126,215,14,95,93,255,167,120,207,162,222,1,32,76,75,38,70,33,12,130,191,200,187,182,203,234,247,29,121,186,174,115,189,50,123,107,39,70,161,226,14,252,34,123,147,27,21,175,243,62,178,155,15,234,166,152,39,99,69,56,13,234,137,198,250,242,6,57,60,134,193,164,65,171,133,165,202,230,35,185,213,26,80,222,202,189,217,215,224,198,172,201,163,123,44,193,242,107,233,197,17,101,59,38,135,251,186,1,161,180,179,14,250,25,222,20,105,39,207,231,181,40,100,223,170,155,182,102,156,243,60,202,187,115,247,33,95,131,41,131,34,223,158,16,3,224,177,142,221,187,159,176,15,179,225,230, +253,37,26,144,116,59,236,7,126,45,80,207,213,253,15,160,29,86,103,214,166,101,45,28,238,96,231,186,210,185,80,27,217,45,114,117,170,168,180,94,143,170,114,160,221,96,225,16,64,117,143,71,118,96,84,79,28,236,129,35,243,67,166,30,71,237,58,243,129,244,89,46,239,96,163,174,149,33,169,221,54,102,115,210,173,208,94,52,233,91,52,219,175,84,143,235,68,75,69,179,98,222,60,148,13,207,112,27,140,5,71,72,248,172,170,44,139,174,24,172,135,4,36,155,42,240,240,155,177,184,252,111,238,187,0,0,108,72,108,98,198,165,41,72,186,85,190,127,191,176,250,72,221,41,39,230,146,183,42,251,114,119,105,197,180,192,128,117,226,169,188,104,227,243,12,99,93,112,35,80,21,107,250,249,18,214,231,175,87,24,163,125,171,149,159,176,51,210,113,109,118,231,240,207,57,171,118,173,251,219,26,234,206,251,148,75,151,195,196,236,253,172,189,233,44,47,255,58,226,113,72,119,54,163,162,209,41,79,125,142,187,97,141,219,140,241,241,4,168,200,204,183,143,30,178,7, +156,95,134,247,235,240,186,159,127,241,147,62,45,88,246,238,229,245,125,57,93,222,46,207,211,202,170,2,179,180,149,198,219,221,157,206,118,78,123,50,94,122,37,61,192,92,220,19,183,148,231,149,166,53,107,141,29,168,76,61,201,51,215,88,123,16,112,108,188,167,22,146,51,243,189,197,76,73,77,98,229,49,106,143,213,111,212,137,231,178,238,0,67,163,85,133,199,71,16,96,0,10,236,247,47,75,254,219,174,42,186,220,174,15,212,119,178,242,2,209,2,28,234,134,83,200,206,61,154,243,120,71,210,242,193,92,35,85,36,210,134,198,219,97,172,0,181,185,228,175,237,88,45,112,190,240,215,70,182,45,30,50,156,228,211,226,158,22,159,154,242,87,230,241,122,165,248,245,199,232,48,167,41,223,242,203,44,45,74,178,54,204,166,195,13,137,20,58,174,233,118,102,119,159,147,31,233,225,134,99,54,104,220,242,235,41,191,17,218,210,113,25,129,212,170,112,166,177,247,168,73,57,117,110,199,111,217,23,80,104,245,100,212,83,171,237,108,87,172,69,197,90,44,121,55,200, +78,231,234,143,0,121,139,205,227,125,59,106,173,187,211,143,183,238,106,126,202,199,57,207,132,125,112,153,53,47,21,46,1,33,231,165,158,120,5,90,123,29,102,73,215,182,80,54,150,61,95,148,51,54,243,26,3,139,49,250,188,38,180,189,235,193,145,19,125,240,189,124,39,107,206,220,44,235,4,207,178,195,94,19,205,216,51,11,8,3,180,4,255,115,242,56,93,168,177,51,92,26,10,222,251,191,25,142,235,33,124,158,100,248,68,154,136,194,59,82,172,228,217,148,180,175,213,215,14,243,72,68,213,159,7,125,68,168,0,13,146,14,50,86,63,94,215,221,175,205,179,87,234,66,133,243,237,120,211,221,146,92,39,90,136,219,72,186,46,66,168,103,252,150,10,215,141,149,115,178,185,8,194,145,15,171,37,8,155,214,202,73,105,162,113,9,31,35,122,239,54,178,166,53,205,242,239,126,99,180,174,238,113,84,213,66,43,239,239,199,136,56,83,43,179,138,246,93,18,120,63,7,70,101,56,22,174,136,33,112,245,205,138,28,83,112,105,109,198,113,182,57,146,171,250,197, +227,53,63,107,247,164,119,203,108,189,10,234,201,78,146,61,163,64,213,135,146,204,72,235,57,106,99,59,61,203,61,117,201,135,65,195,15,152,65,141,48,114,64,79,121,22,134,131,234,177,51,113,131,8,247,189,63,200,204,112,94,237,109,64,197,191,95,209,183,253,9,249,172,185,187,168,67,135,200,174,175,151,29,235,139,10,135,83,83,46,173,247,189,90,70,208,178,34,230,185,244,68,38,68,84,155,91,241,94,193,239,108,136,20,113,3,179,12,30,246,145,88,62,139,84,26,40,68,63,121,71,187,50,7,93,187,144,36,191,36,192,213,123,116,164,203,13,210,213,148,78,117,116,129,111,185,78,16,232,112,227,193,95,131,30,26,71,150,141,184,81,159,219,40,102,33,230,45,230,173,146,54,177,62,137,2,227,254,25,29,78,88,93,239,217,121,179,210,249,241,220,47,160,134,242,99,240,236,55,164,147,18,24,252,61,23,147,143,97,194,139,209,62,91,222,235,188,131,214,186,167,243,231,202,46,90,252,194,184,243,18,101,204,82,211,73,235,17,220,71,250,48,152,198,101,213, +68,245,115,51,93,128,231,232,90,69,179,117,107,108,231,83,101,82,73,98,107,50,7,207,217,146,182,111,144,73,179,36,174,169,120,206,78,139,53,226,222,128,46,139,141,220,217,226,141,239,175,146,51,186,248,152,95,251,236,103,92,225,253,120,239,54,222,190,22,149,156,58,162,111,226,79,129,202,163,213,73,18,143,44,133,116,252,216,34,23,53,7,188,54,209,142,18,129,83,220,184,100,10,214,117,116,114,138,172,142,170,23,191,242,90,185,14,138,32,120,134,215,173,241,199,204,141,84,228,114,84,156,199,245,126,225,234,72,52,225,101,20,217,94,249,85,221,157,94,5,130,188,52,76,149,47,227,191,83,155,7,111,250,188,143,17,202,143,107,116,57,149,138,231,142,103,180,29,176,103,253,184,49,2,138,217,11,159,107,174,116,134,57,214,13,57,8,23,193,45,93,129,53,33,170,207,168,47,184,124,100,195,45,55,236,79,154,58,169,157,209,219,239,210,103,239,69,27,180,222,241,245,182,129,110,43,224,182,222,245,52,144,122,163,63,16,55,153,110,195,185,46,163,165,124,102, +181,238,251,231,71,27,112,73,158,241,72,134,142,126,252,32,168,29,222,244,86,248,5,199,209,44,110,240,188,147,99,56,58,94,119,208,102,135,41,115,231,20,166,139,164,104,165,217,126,166,151,155,237,53,186,88,87,90,180,209,185,151,42,210,37,154,74,139,108,31,4,210,147,246,151,153,158,32,169,126,134,17,159,58,55,213,156,151,255,243,254,60,39,146,154,214,220,137,185,43,138,99,158,181,152,87,207,167,221,74,33,21,53,74,145,139,236,101,172,202,29,236,145,181,230,48,168,26,235,210,26,98,210,30,179,111,234,44,91,179,102,159,174,190,136,193,46,109,18,77,157,79,40,6,118,1,195,200,113,16,67,125,11,225,106,221,39,124,151,47,54,223,217,197,11,69,177,133,129,78,84,104,171,4,73,21,151,44,227,166,211,85,129,209,221,157,111,227,217,212,207,113,93,204,65,101,101,237,43,206,24,129,120,231,173,39,54,191,0,250,80,192,100,18,146,70,101,103,173,235,34,89,200,126,178,139,98,119,98,242,190,234,131,254,137,244,123,220,105,158,51,232,96,63,25,81, +207,238,162,245,10,67,57,188,143,244,217,221,178,208,200,245,206,91,80,63,59,202,147,71,163,206,217,76,77,222,141,184,181,147,172,39,139,143,131,243,41,172,158,176,118,251,146,116,180,180,83,30,251,117,40,172,189,243,32,251,245,81,76,120,36,216,134,204,104,152,83,239,52,204,246,5,1,132,63,73,214,58,235,85,183,174,227,118,60,68,75,72,62,43,209,50,179,24,29,58,103,13,235,147,169,185,172,147,196,196,91,211,111,78,159,132,253,163,96,60,112,53,102,77,91,201,92,5,227,113,157,183,144,190,244,235,241,243,163,164,159,170,44,65,207,160,148,98,73,9,154,240,122,138,82,93,63,120,123,21,24,23,61,65,196,158,207,32,116,141,164,183,82,90,99,107,211,215,156,245,183,175,197,220,29,243,104,233,47,108,46,110,4,193,211,169,142,219,207,71,220,56,154,133,205,221,207,207,244,26,241,188,29,217,253,41,11,151,211,156,87,209,243,85,220,99,28,217,184,245,237,13,167,247,217,152,197,229,209,245,122,122,72,218,112,88,240,42,36,173,62,125,235,131,127,15, +115,98,32,181,191,215,18,44,173,91,122,190,174,106,89,203,235,148,105,79,38,147,245,123,183,206,252,254,46,159,189,53,119,76,27,175,94,235,181,167,63,153,112,175,227,181,159,232,77,217,85,108,172,23,183,139,3,162,30,187,202,100,28,117,116,55,206,72,122,226,49,199,109,82,245,222,101,190,87,198,250,126,164,62,180,149,220,221,178,199,204,127,90,238,251,173,71,25,180,155,246,249,173,107,30,180,171,206,49,100,125,18,241,26,182,121,77,150,230,121,140,163,33,15,111,193,126,230,131,71,54,181,188,93,244,167,77,60,169,98,56,150,207,19,67,50,235,139,157,213,156,71,243,11,163,19,226,149,228,246,67,160,64,137,165,161,198,116,239,8,80,215,113,59,40,241,10,25,45,210,227,28,65,143,252,173,62,119,159,233,173,246,3,183,89,94,202,250,17,163,107,59,239,220,79,179,27,236,243,203,31,245,184,85,65,9,205,29,39,229,105,38,53,111,74,134,104,243,29,135,184,102,119,158,128,206,253,236,191,175,146,176,109,114,101,73,58,183,66,151,229,184,6,72,231,74, +118,55,111,91,211,246,189,241,141,178,95,49,124,31,41,128,164,125,142,237,45,105,12,65,61,120,57,199,46,27,171,66,0,159,221,109,215,203,234,160,159,10,82,123,171,16,23,1,16,195,109,243,29,125,218,25,166,10,9,62,1,35,255,86,234,107,108,63,145,135,242,19,159,233,208,99,90,255,198,99,153,52,49,217,165,23,159,54,105,34,149,108,218,166,240,74,98,45,241,70,1,144,189,120,194,67,216,124,42,110,151,110,8,209,149,172,13,62,85,224,151,31,219,147,181,17,110,151,150,127,158,26,58,224,243,49,224,159,105,200,149,195,211,80,77,168,17,129,237,5,180,112,215,143,142,238,248,132,62,233,76,65,197,69,142,205,222,61,60,166,151,63,96,90,131,243,90,123,162,100,62,211,102,192,104,95,7,135,200,133,29,43,128,43,113,76,31,43,41,119,108,175,216,222,97,229,224,15,86,115,23,123,102,84,129,111,2,20,217,180,169,137,232,62,20,179,199,221,187,155,175,248,177,232,42,184,206,172,110,202,99,33,12,177,200,120,221,44,172,36,185,220,10,236,106,24, +77,62,185,213,201,126,213,180,145,228,14,30,97,64,105,226,169,25,131,124,123,137,83,168,188,170,128,250,126,122,8,117,52,63,140,252,1,202,11,242,111,106,140,32,52,251,196,72,178,28,82,248,142,213,213,120,225,136,86,219,146,15,155,6,125,31,142,156,35,99,128,149,67,238,64,209,94,31,80,0,231,65,159,102,49,53,198,112,100,214,134,46,206,59,242,227,130,124,95,248,141,250,62,10,93,83,255,12,155,204,164,185,239,182,98,75,43,185,189,120,17,125,88,49,92,140,221,186,49,229,237,29,184,97,20,151,152,176,54,229,80,156,37,207,117,45,33,107,207,5,182,26,202,62,223,234,107,183,68,178,209,152,30,25,245,209,210,81,108,143,54,207,66,242,144,126,171,255,133,44,104,238,102,24,220,238,102,214,108,50,228,144,139,221,14,45,160,214,228,30,0,119,206,164,41,183,45,213,252,212,18,84,230,174,224,163,245,109,154,64,255,174,112,187,84,95,58,106,19,151,140,126,104,173,152,58,142,175,111,119,92,224,169,250,110,240,15,175,253,102,230,214,217,118,31,235, +178,32,5,229,198,185,253,101,99,93,19,15,31,149,207,182,178,110,90,143,236,202,65,149,67,126,83,114,163,86,220,180,188,151,182,231,77,11,175,219,221,11,55,126,69,177,206,19,104,111,247,155,242,189,253,109,249,37,92,99,110,15,211,229,5,75,0,80,151,34,144,215,176,196,187,167,70,165,160,105,7,175,157,164,5,231,60,14,56,67,118,115,67,242,251,183,135,147,235,21,213,217,204,92,208,130,121,192,217,97,22,32,109,36,166,62,61,42,155,185,107,221,176,160,151,79,76,236,182,44,115,141,237,225,60,114,69,145,77,83,179,36,39,109,190,99,218,6,226,17,92,251,121,17,107,163,137,99,228,131,75,191,151,211,127,86,244,221,140,123,119,222,69,5,87,84,81,177,59,152,93,73,231,163,101,49,191,105,238,143,41,163,178,93,39,213,247,74,246,59,121,226,114,109,17,30,218,158,27,220,243,180,206,251,134,177,219,123,23,187,253,151,169,107,249,44,46,239,181,123,51,146,72,31,151,15,194,210,145,70,129,188,230,167,75,205,160,123,149,143,187,186,29,42,75,15, +238,211,174,30,150,173,179,243,130,203,106,68,32,157,52,176,113,65,158,26,247,246,131,243,86,237,32,107,147,86,14,249,2,185,2,84,215,183,153,68,126,207,207,139,6,238,230,186,172,53,196,95,100,61,154,193,223,72,190,62,23,255,239,78,157,8,195,250,150,183,144,153,187,15,203,198,83,109,219,237,49,207,239,62,30,48,98,13,181,121,110,193,26,206,130,181,18,157,251,95,154,168,224,7,232,28,93,191,8,238,195,97,244,139,205,228,173,117,32,65,178,184,147,230,3,86,217,164,147,138,79,140,58,222,222,55,54,2,245,62,193,107,252,115,56,145,29,165,145,199,185,211,45,54,251,18,27,34,248,79,24,171,9,120,97,120,14,32,203,201,191,120,143,17,234,252,200,223,224,254,109,163,198,110,87,130,29,135,75,118,247,98,170,11,109,113,95,125,202,27,94,228,49,229,37,235,13,20,31,151,67,130,13,167,247,183,236,30,172,250,237,154,127,224,84,94,47,230,141,230,209,115,159,92,86,238,229,108,217,175,37,237,86,74,224,108,220,162,243,68,54,105,57,72,60,172, +192,247,152,250,220,184,13,186,16,89,175,2,88,137,87,167,24,114,41,94,189,32,2,183,134,78,245,130,77,143,62,49,249,17,136,80,244,118,49,85,29,161,91,241,147,173,132,110,4,109,230,21,186,147,189,98,208,157,79,200,150,70,55,2,182,142,26,221,202,84,57,232,75,45,62,109,161,235,193,80,244,113,219,242,68,151,185,177,255,181,225,13,91,201,160,235,5,182,190,179,252,8,188,115,27,84,62,102,24,94,14,241,170,104,119,40,85,215,70,14,221,227,41,52,106,48,112,113,77,34,131,147,170,254,68,110,98,163,128,132,51,50,96,244,228,183,75,66,211,61,196,112,121,146,238,96,55,103,74,186,5,57,83,126,24,30,234,108,65,247,60,0,51,22,195,131,152,173,27,116,15,101,214,160,31,44,160,153,147,225,64,189,229,78,134,1,22,127,108,232,38,30,2,118,189,226,249,36,172,126,173,27,64,112,186,187,140,199,153,188,134,8,40,111,232,238,248,89,132,2,138,219,77,46,113,170,183,139,20,219,14,241,17,36,157,226,167,143,101,145,176,78,128,69,124,33, +82,153,126,2,89,204,22,233,92,191,180,150,234,197,122,99,174,241,192,160,150,98,203,81,74,51,86,103,144,99,213,112,61,95,140,53,189,181,99,172,73,76,218,145,241,239,14,20,198,227,245,104,109,25,155,214,147,53,118,188,236,203,51,235,241,166,119,110,35,199,171,193,24,48,230,246,135,17,129,199,158,58,210,69,41,119,130,60,72,69,60,153,16,41,101,139,155,109,69,180,61,45,35,214,35,84,195,243,210,5,7,183,37,203,241,237,4,131,99,106,219,99,129,83,125,52,174,149,255,209,70,247,142,163,159,175,1,136,1,197,39,66,91,73,212,144,48,51,103,250,39,49,27,71,127,143,197,58,39,6,107,159,165,210,195,182,197,126,56,212,240,217,0,176,73,165,234,101,244,112,50,77,104,33,150,138,97,197,193,183,82,237,167,216,106,235,91,139,246,44,66,163,1,108,150,135,22,145,149,11,170,113,98,235,192,25,139,67,157,13,83,30,10,118,49,110,191,80,88,131,250,163,59,96,117,23,153,226,128,213,63,108,198,76,93,55,248,230,177,251,245,243,76,66,213,217, +201,8,230,132,158,139,84,247,145,102,73,103,32,94,62,74,102,228,216,216,166,241,66,156,185,107,193,168,106,170,200,173,5,189,112,232,189,90,42,186,70,239,134,174,37,142,244,98,176,99,63,107,188,4,69,39,248,85,223,178,113,84,103,197,222,252,8,85,108,220,83,160,38,5,66,218,167,65,133,127,236,170,76,208,243,5,65,7,200,84,253,208,158,180,148,249,54,100,184,36,19,104,194,51,78,98,145,191,212,225,5,9,217,194,23,155,40,226,149,108,229,91,206,164,72,103,174,137,81,247,185,212,229,32,254,254,38,99,249,91,252,45,168,82,121,82,125,81,140,51,15,158,109,168,140,110,139,255,70,101,244,27,211,161,158,164,183,18,42,99,202,39,27,220,237,69,37,157,218,140,135,20,145,138,62,42,97,226,230,244,124,178,232,244,138,57,224,141,254,224,25,120,131,240,31,224,129,197,172,84,143,87,171,69,191,161,27,3,200,124,225,140,62,13,129,74,18,214,69,159,167,143,157,241,20,172,83,210,237,130,20,31,53,121,127,163,68,181,61,25,181,4,162,72,120,120, +214,47,192,136,25,178,204,88,64,199,20,52,9,229,77,70,22,22,192,243,177,94,145,204,55,16,245,246,252,167,204,247,80,79,193,147,108,227,123,145,230,45,86,190,3,188,91,126,42,86,145,7,116,106,201,0,155,200,10,55,127,228,163,13,216,28,240,131,19,162,247,112,74,80,198,243,167,103,50,100,52,231,202,200,137,36,25,59,244,38,235,81,89,81,35,32,44,244,169,220,222,155,113,72,96,24,69,191,42,49,254,201,232,221,76,185,57,165,200,141,2,156,193,130,81,194,249,224,145,141,214,231,166,109,37,111,158,115,246,162,60,62,208,223,127,36,104,139,81,170,152,46,117,144,191,5,121,12,61,21,132,76,90,210,135,217,159,137,204,179,27,72,164,198,87,150,190,200,62,125,84,232,72,23,3,55,193,40,81,63,7,239,197,93,72,4,91,38,22,177,145,9,199,69,193,144,141,68,92,144,239,206,101,66,166,84,129,218,142,86,143,166,234,174,122,166,160,106,198,179,186,136,170,9,62,64,117,214,38,223,70,159,169,38,107,82,232,230,172,56,211,141,46,244,160,37, +47,186,35,90,155,188,232,143,222,58,19,150,115,192,199,61,83,17,199,223,145,79,3,25,153,23,93,129,21,210,60,213,14,217,207,200,137,220,183,106,20,103,144,19,85,98,19,219,132,160,20,53,75,53,252,156,143,203,186,168,147,202,56,61,11,217,222,207,93,98,214,9,8,55,125,250,249,243,124,205,228,65,208,230,220,105,214,162,139,186,151,27,120,79,192,84,116,138,68,190,102,27,144,95,78,145,31,185,52,4,82,138,62,15,75,11,231,212,113,136,69,29,48,205,90,55,44,236,12,225,160,42,27,29,144,37,195,129,60,50,100,103,82,190,108,63,164,92,50,224,238,67,48,38,147,49,151,232,246,127,201,195,33,159,81,68,165,120,206,104,74,125,136,156,64,55,101,170,182,69,54,152,251,34,215,89,224,222,145,163,85,224,197,50,94,234,233,38,248,185,59,239,206,124,7,242,110,175,143,23,190,23,231,46,190,166,28,223,134,239,96,193,114,110,116,134,112,100,97,5,47,182,88,90,253,190,19,213,197,41,55,114,18,129,79,133,159,12,159,88,135,38,236,9,138,140, +90,50,124,35,33,115,42,189,34,106,4,133,117,106,250,71,175,229,218,49,41,234,114,72,146,72,44,70,154,28,178,83,163,103,35,255,80,228,72,19,27,57,231,185,132,223,59,205,190,96,225,81,188,30,44,65,199,232,22,35,232,231,79,163,42,77,126,73,88,58,111,17,88,43,167,140,19,55,128,132,106,226,15,33,64,27,6,249,144,65,249,24,214,31,6,207,193,115,85,126,26,226,51,112,101,180,48,73,202,103,194,210,61,167,149,58,26,243,201,88,216,139,3,1,209,72,149,174,9,237,237,209,229,68,223,132,20,153,233,218,120,248,234,142,176,116,237,34,120,55,78,89,186,6,15,134,180,162,47,125,195,51,45,226,212,183,65,187,72,27,125,233,61,191,68,53,16,157,19,152,234,160,244,168,206,133,244,235,209,7,172,232,3,116,147,166,37,110,192,10,230,20,76,176,236,47,22,234,163,105,146,42,202,3,238,98,133,162,36,251,17,53,65,253,170,26,121,138,85,68,149,160,79,24,161,154,244,90,28,162,150,78,45,123,247,167,178,88,191,218,56,122,206,234,249,179, +147,97,48,169,64,169,98,121,153,193,246,103,31,245,222,198,234,88,254,108,103,189,45,216,66,145,196,56,231,14,104,77,99,156,33,103,62,133,181,164,42,56,102,26,58,105,98,216,18,179,11,55,249,0,241,66,118,231,206,178,176,249,203,220,253,9,238,242,232,168,146,40,206,115,167,81,1,233,107,77,92,222,229,83,105,15,15,224,247,168,17,59,125,212,19,177,113,113,129,36,169,19,170,35,71,200,88,169,179,52,48,181,122,170,210,107,121,0,7,12,125,19,216,62,81,212,134,190,10,21,132,177,170,115,95,143,226,28,220,244,77,248,201,51,142,31,122,239,87,205,223,75,97,7,103,112,81,132,161,115,131,67,155,68,170,210,121,16,121,57,58,243,61,168,2,253,242,251,68,158,83,6,173,108,14,146,96,82,214,234,144,178,185,197,52,203,42,194,50,44,53,119,39,78,50,139,206,252,77,184,73,134,204,154,245,39,240,44,143,45,250,135,18,147,173,51,234,126,200,119,38,114,209,35,35,49,151,66,3,87,79,95,224,61,252,118,163,166,54,13,234,109,242,22,45,252, +162,203,206,59,2,147,34,112,99,79,56,152,24,102,119,65,145,76,23,36,150,21,113,170,56,0,232,13,148,177,202,18,241,115,195,5,41,185,149,63,249,210,95,44,140,215,4,170,49,147,64,11,156,3,63,138,164,57,92,152,207,13,134,72,104,162,62,17,182,113,102,164,84,202,168,79,134,143,42,222,1,152,66,233,10,178,200,222,78,85,234,45,77,76,137,169,42,247,194,102,238,2,83,221,4,142,119,99,185,161,111,67,197,167,179,234,210,119,163,88,139,86,117,227,191,243,172,229,135,222,243,85,242,11,84,216,222,137,158,20,161,171,220,224,222,70,253,141,135,23,113,147,167,50,224,65,25,56,147,75,38,42,157,38,40,99,139,144,50,180,82,47,11,120,153,250,22,243,56,207,105,70,169,25,135,121,154,154,248,198,50,124,78,74,164,101,60,11,63,23,232,151,135,156,70,53,151,113,97,199,232,139,65,68,154,181,82,13,224,78,199,212,68,125,66,136,224,190,168,107,112,1,129,151,132,250,118,63,190,168,168,168,238,99,58,232,164,186,137,193,40,49,110,7,88,227, +136,33,10,197,158,39,234,156,63,249,18,184,228,73,85,222,224,239,133,1,230,137,169,153,47,29,251,114,109,29,48,69,66,5,52,228,219,6,21,16,232,225,1,27,22,175,3,37,113,186,164,75,245,67,111,80,106,173,58,30,119,25,176,18,160,12,1,87,181,193,177,221,162,76,235,90,144,213,124,89,81,244,173,88,39,166,186,154,133,214,198,115,67,215,73,34,95,231,229,165,235,245,144,30,127,4,228,189,214,158,31,58,231,87,43,224,95,98,123,23,122,131,41,170,114,195,103,186,165,17,213,219,1,167,184,42,150,29,148,128,35,57,181,62,209,201,130,46,182,113,187,79,41,117,234,208,119,2,57,152,163,231,58,25,50,236,197,186,239,71,150,32,183,30,206,72,204,52,123,106,18,149,129,9,37,63,177,82,205,162,30,80,207,142,165,158,13,94,84,213,174,35,73,138,102,198,45,131,56,98,37,3,193,244,236,159,251,181,168,15,221,154,227,98,11,50,242,33,42,210,49,110,179,152,32,29,58,99,81,19,99,161,195,13,43,98,51,97,133,143,18,18,18,99,25,179, +46,88,195,36,164,250,77,51,125,240,23,24,46,149,119,7,208,161,221,111,68,192,6,36,201,82,3,137,14,21,117,17,80,67,178,170,168,79,68,29,164,29,107,185,220,235,211,209,147,6,239,20,46,81,250,72,7,16,76,176,203,131,145,14,26,61,217,52,209,233,78,148,97,109,235,64,119,177,204,182,244,76,32,150,148,99,91,5,102,86,91,230,177,171,195,138,239,17,27,219,61,226,163,193,148,141,235,223,201,176,81,213,214,134,13,34,150,217,107,255,131,116,22,171,148,84,183,129,76,51,150,9,181,78,19,85,0,147,9,135,74,161,211,70,84,208,89,177,158,154,255,246,149,100,128,32,244,200,202,255,44,2,86,198,138,106,42,212,243,203,160,27,83,42,156,201,206,220,50,36,192,163,236,85,240,129,208,68,77,153,241,201,209,33,81,23,61,92,75,222,228,38,125,79,80,1,74,217,26,191,96,4,222,21,10,92,221,88,209,171,75,245,254,36,212,7,57,54,56,146,48,253,140,133,14,24,5,112,147,105,3,59,125,146,71,229,243,161,253,194,15,225,152,55,250,131, +64,245,155,69,173,139,6,104,110,153,117,231,210,239,221,225,13,183,195,75,4,116,200,119,143,139,8,155,168,59,122,85,220,229,128,211,200,145,101,86,29,119,105,16,223,11,139,189,217,200,221,115,21,62,48,176,169,131,145,137,56,41,217,180,254,233,72,173,89,236,106,95,250,133,164,105,29,56,32,148,202,202,182,142,158,96,78,141,115,219,194,44,184,154,230,165,231,224,85,64,43,27,55,116,194,107,96,169,157,29,152,212,55,177,181,193,19,56,33,217,56,201,192,204,132,21,219,168,179,254,22,10,51,44,147,90,189,210,103,33,54,20,158,165,66,175,241,43,168,179,100,93,53,215,105,163,102,21,160,24,65,179,116,229,121,68,7,121,149,143,192,122,126,54,152,57,235,54,206,244,40,44,67,18,22,26,146,255,133,154,213,13,161,201,211,49,206,121,148,164,243,204,148,22,158,174,108,53,47,255,108,7,185,18,96,21,40,89,4,75,177,77,9,24,247,47,125,28,116,180,175,163,130,130,136,105,54,188,129,58,218,135,28,3,119,22,82,125,154,72,17,128,17,255,128,75, +185,162,47,13,195,212,131,166,84,222,18,170,248,168,238,40,186,169,59,138,124,85,22,201,155,2,146,245,184,72,0,60,2,199,202,249,106,180,75,194,93,87,194,115,188,42,237,139,240,216,129,36,83,179,225,70,125,54,46,41,208,212,195,54,234,192,1,180,102,41,54,117,100,165,94,115,22,219,206,215,35,226,178,88,6,122,8,78,125,45,44,163,3,24,215,185,155,52,49,19,174,235,210,79,255,150,84,175,43,59,84,27,224,185,176,157,13,200,121,228,155,184,222,155,237,182,254,6,43,176,50,113,52,191,193,234,239,161,43,154,129,157,220,41,124,35,57,49,154,96,43,116,52,109,68,3,109,212,151,157,63,64,165,0,36,135,17,21,83,183,137,168,144,12,18,21,221,208,47,81,65,62,199,141,61,58,81,185,117,72,137,194,228,154,32,138,131,60,253,225,203,14,122,14,106,202,203,230,27,236,250,36,103,160,52,198,8,19,78,60,27,250,130,102,25,220,92,43,197,142,43,248,45,93,207,153,188,16,3,29,123,155,10,82,146,174,5,82,204,106,116,12,204,206,133,166, +162,251,223,48,1,16,154,240,78,149,124,37,20,11,149,215,235,170,82,176,65,95,182,14,71,181,222,20,5,196,16,36,107,202,173,175,92,252,1,94,146,175,74,4,116,136,160,133,232,20,78,151,131,93,204,167,175,35,164,100,118,97,155,137,255,214,163,21,118,243,160,218,42,125,110,248,101,52,188,170,162,3,49,87,185,218,54,65,149,186,171,140,26,152,1,155,244,117,115,139,60,148,237,198,182,61,192,94,50,207,115,207,232,97,241,220,215,101,112,50,247,182,97,91,15,252,146,233,185,112,221,23,121,67,31,92,57,209,5,184,205,148,238,92,144,201,204,85,79,108,101,225,23,122,173,25,217,40,131,58,96,193,23,107,74,182,202,224,39,14,42,170,177,39,219,207,120,208,249,106,137,44,24,70,213,212,43,161,71,168,53,85,77,183,246,234,88,95,220,25,225,208,207,66,82,7,162,153,130,168,173,38,243,40,207,203,3,176,59,113,133,52,197,243,142,7,190,124,51,165,36,183,53,137,41,201,217,0,80,80,254,7,247,137,133,240,253,70,238,122,130,223,48,219,26,223, +62,116,163,86,89,88,21,27,28,19,203,188,162,158,11,41,53,85,85,90,95,0,131,0,199,23,36,93,222,85,64,17,1,104,164,78,159,13,100,40,20,0,112,151,208,235,232,238,18,132,0,141,53,78,186,115,48,131,80,180,225,50,160,10,30,72,3,96,15,27,38,99,15,182,36,100,212,78,160,13,155,177,226,46,29,85,147,46,215,165,107,191,139,69,141,125,188,118,116,165,12,220,14,224,166,116,85,69,38,79,181,103,177,109,125,109,170,145,167,117,96,133,120,145,171,235,42,186,129,189,59,206,109,3,211,225,62,43,231,190,149,231,5,93,199,156,208,6,255,134,237,198,78,96,71,255,196,13,158,15,96,135,116,101,7,122,19,147,71,124,165,245,143,47,168,214,224,74,236,42,42,159,136,136,83,52,91,202,157,210,111,166,86,142,142,230,124,171,137,202,13,128,104,132,253,139,56,101,68,3,97,149,85,13,181,126,30,52,112,14,88,123,202,161,159,5,108,168,66,48,23,221,10,146,44,95,70,237,48,77,43,34,96,11,98,9,215,41,83,16,65,116,19,164,15,51, +8,59,60,56,50,37,121,137,23,235,192,241,160,126,174,95,230,75,68,148,193,83,108,19,7,246,156,174,5,246,176,101,71,6,215,189,30,91,220,209,1,193,49,123,57,25,72,81,156,140,203,130,172,202,6,34,16,212,12,45,215,171,243,204,64,128,178,123,198,80,61,157,57,232,67,229,148,238,248,92,181,245,103,72,187,25,102,105,87,239,61,34,13,30,132,99,123,182,68,184,203,198,36,85,26,7,194,38,238,113,129,209,46,147,203,184,142,123,20,57,232,194,109,67,174,100,117,175,129,222,236,159,229,69,223,202,252,152,175,90,127,240,227,6,176,16,213,66,200,71,5,90,136,54,18,198,199,1,175,191,183,5,26,224,1,111,38,187,67,15,240,66,186,226,125,185,32,152,43,217,194,1,248,40,194,22,241,237,128,219,12,126,139,252,20,175,13,90,183,131,236,48,158,141,196,86,29,181,2,121,153,132,75,25,186,150,6,129,26,40,170,230,158,108,184,202,160,252,181,16,105,108,105,155,117,240,131,30,52,81,88,117,213,220,107,48,176,105,88,153,83,61,91,250,121,8, +131,14,212,59,90,208,227,188,40,72,150,96,150,85,221,52,203,153,21,17,148,33,141,52,145,146,197,239,228,224,201,188,141,115,94,144,67,254,243,243,78,165,167,10,222,214,205,231,91,248,189,61,222,187,103,233,249,31,216,23,239,66,176,225,130,43,162,99,93,220,113,32,11,151,170,73,237,187,232,19,177,203,38,239,125,35,69,142,33,182,94,93,12,180,40,14,199,99,129,86,233,3,232,10,73,97,148,169,85,122,125,48,195,153,141,22,195,186,122,235,109,80,65,211,87,198,111,131,245,137,61,236,130,188,214,219,162,209,30,1,62,49,180,229,220,171,116,192,65,100,45,29,143,253,58,30,84,224,152,143,225,137,66,84,253,61,159,2,88,33,217,168,32,254,9,188,226,79,73,74,63,11,209,14,108,45,78,160,149,100,32,225,91,65,240,82,50,212,10,30,72,120,45,27,3,4,176,42,226,158,142,23,129,217,76,241,149,238,143,34,60,72,255,54,14,252,173,71,64,76,62,17,152,68,184,116,65,31,3,48,186,86,70,221,14,162,67,241,148,104,215,114,183,136,186,112, +14,237,211,213,220,173,193,127,162,162,117,218,102,30,144,234,192,164,50,179,178,225,204,131,28,246,5,59,139,56,213,99,15,67,237,18,253,52,70,75,114,100,198,139,189,152,211,179,114,168,77,243,162,34,140,114,28,210,10,147,60,111,3,211,160,225,31,237,247,154,171,53,27,101,156,76,250,187,168,136,230,205,123,0,210,192,95,222,195,175,145,192,62,164,53,182,219,166,159,45,96,136,58,193,7,217,221,38,109,153,192,10,26,235,154,116,237,95,184,26,209,53,220,85,66,45,72,200,122,106,154,118,45,100,28,165,209,220,109,172,62,117,136,38,33,176,99,91,181,218,221,64,56,102,203,193,82,117,244,39,64,183,5,134,109,219,110,61,182,0,158,132,175,133,77,145,116,11,143,24,169,218,43,205,69,218,198,253,82,140,187,131,126,26,182,89,129,132,143,251,2,2,81,112,188,74,50,181,251,149,136,239,118,122,203,12,148,9,60,3,55,135,1,175,133,174,35,74,168,134,91,68,135,95,46,40,21,182,224,175,51,222,66,211,189,192,223,28,254,146,223,131,225,241,156,200, +17,156,215,135,70,81,2,199,119,36,230,206,197,95,188,154,192,120,112,33,144,193,55,35,91,160,221,79,1,151,136,85,95,184,107,6,152,193,63,163,126,7,214,113,123,78,156,171,169,91,132,95,72,247,118,250,106,233,230,145,219,7,107,189,178,153,6,197,38,160,40,197,182,170,102,16,167,42,180,229,70,253,176,20,194,25,155,88,179,220,56,197,18,168,239,60,211,180,224,34,75,210,5,102,105,150,19,248,9,228,251,109,62,148,183,124,225,52,91,49,201,153,33,241,4,226,7,125,207,25,1,162,55,74,243,75,101,40,7,44,146,202,248,184,93,77,234,49,11,124,70,237,93,47,244,131,184,166,245,193,13,245,125,216,182,14,240,77,255,73,237,138,80,104,171,162,205,188,206,112,61,49,72,202,229,66,77,87,122,111,13,116,50,126,214,84,91,189,223,199,132,81,234,204,217,102,239,78,166,96,145,50,195,181,101,175,221,57,174,129,95,171,5,87,240,128,130,184,76,209,158,221,85,210,101,49,208,29,197,123,6,30,6,136,244,116,87,227,191,93,193,52,162,11,141,31, +137,192,26,254,145,34,52,59,225,101,162,133,171,195,8,192,43,225,211,216,107,32,17,157,200,21,43,60,103,136,122,20,220,29,90,234,196,125,30,225,129,176,1,99,33,129,16,75,218,69,193,112,81,136,45,234,7,108,61,41,220,27,190,6,102,129,36,92,41,94,210,209,189,17,60,65,40,249,240,245,248,148,34,40,129,193,168,31,252,79,178,59,230,0,78,96,83,183,115,131,119,72,158,223,208,194,186,69,224,69,217,94,113,175,166,65,27,208,144,86,52,28,219,177,7,198,154,187,62,26,135,99,57,18,171,197,94,220,9,89,101,198,38,102,174,31,50,110,1,233,251,111,26,144,57,194,32,232,73,241,35,231,22,157,96,230,47,116,111,223,115,46,197,40,163,51,35,225,80,34,154,179,28,250,21,154,191,58,216,175,28,90,40,62,90,7,226,222,60,16,40,74,116,69,177,221,56,248,21,200,133,150,191,116,76,150,228,31,93,0,36,88,214,213,30,176,94,201,187,126,157,101,251,74,156,86,224,137,88,175,244,254,10,107,21,215,219,229,107,189,59,131,181,96,160,53, +214,102,31,84,230,64,165,83,211,182,161,110,125,194,215,68,215,118,8,93,162,45,34,96,69,82,189,215,39,9,17,91,10,116,24,62,26,104,52,192,51,130,111,92,14,216,15,160,240,20,146,133,141,211,81,192,90,201,19,163,33,44,224,85,95,40,98,19,90,73,118,72,108,229,11,173,164,115,88,222,185,128,215,211,63,92,225,5,75,112,243,166,160,16,79,241,125,199,231,163,112,15,51,241,163,255,141,243,169,2,148,145,66,28,225,158,104,34,136,67,84,226,174,8,133,27,132,9,132,118,205,119,17,117,138,128,2,72,40,225,235,201,41,71,40,56,129,173,248,102,44,148,35,1,210,224,95,188,118,128,29,165,103,117,205,154,6,45,64,5,198,157,113,174,199,30,84,211,101,6,104,70,14,246,232,136,231,122,81,39,102,85,22,155,234,133,126,6,37,55,166,35,38,70,65,150,229,128,52,167,250,207,172,32,86,102,48,72,51,242,135,144,44,138,147,163,167,226,123,92,124,35,70,36,59,212,136,45,116,30,231,239,141,133,127,70,9,134,121,175,153,255,153,124,233,112, +66,2,38,106,130,228,209,204,192,4,239,248,202,217,125,1,50,60,47,12,81,84,93,12,208,12,47,8,132,49,156,15,4,196,32,66,58,177,143,253,73,62,121,234,173,209,159,197,118,166,143,39,123,183,11,52,174,16,109,197,213,220,253,242,206,32,43,235,117,1,197,59,132,223,138,246,198,146,79,17,2,46,210,1,32,252,111,96,17,145,145,142,191,73,191,229,130,29,156,31,145,202,177,171,33,192,161,145,244,192,88,41,212,211,8,230,234,252,2,97,174,199,142,18,161,21,111,53,82,232,171,208,146,239,26,75,245,78,68,43,24,95,182,251,23,194,227,75,90,5,133,184,194,179,78,172,143,194,221,145,229,78,215,207,226,31,68,122,209,25,98,75,36,96,122,1,36,204,226,91,145,31,251,87,158,18,42,17,107,97,221,208,76,48,131,43,68,95,59,90,117,247,48,240,45,19,190,250,254,70,116,3,99,96,3,62,23,235,30,152,47,203,179,177,91,44,124,86,18,79,227,242,161,73,46,31,71,83,113,56,90,211,173,176,69,176,156,31,245,229,212,44,8,51,144,227, +36,51,53,51,77,196,126,250,29,52,63,209,100,69,65,25,197,196,148,20,37,121,65,88,0,132,144,246,4,45,103,129,201,140,191,121,56,16,191,254,100,62,215,5,146,191,212,42,109,231,131,96,72,144,254,198,121,63,29,202,182,66,41,94,79,129,51,250,161,148,184,47,232,161,224,136,78,192,102,232,205,9,224,153,176,142,140,209,204,4,143,32,2,102,226,201,253,8,28,226,47,131,243,13,252,48,137,119,3,242,88,176,131,208,13,124,173,149,239,245,245,214,157,12,16,90,171,199,115,189,142,6,44,112,71,246,238,125,129,67,4,122,48,231,154,248,17,224,111,18,19,74,149,129,116,170,192,30,206,201,138,132,95,49,161,176,136,66,212,51,63,9,97,179,66,114,83,233,167,208,118,201,63,139,244,44,132,185,17,104,90,250,22,146,213,74,186,182,66,27,137,235,173,221,61,224,157,108,248,9,232,227,8,31,186,248,42,10,241,196,111,186,116,23,69,120,253,79,57,160,159,37,85,2,77,249,112,55,129,43,69,22,182,190,138,236,43,16,114,33,205,193,156,50,133,224, +185,19,161,18,25,184,112,168,32,192,66,44,132,42,134,41,143,18,168,193,38,34,161,25,201,57,1,28,112,230,216,239,64,58,52,207,168,11,106,31,111,133,217,221,15,115,174,52,38,103,50,55,14,41,69,234,179,196,212,40,12,131,255,7,9,87,217,156,76,179,5,255,58,14,139,203,226,238,238,238,182,104,112,135,16,18,44,9,26,220,229,242,188,151,174,153,154,217,218,47,187,61,231,116,119,213,22,114,38,64,98,57,56,229,191,88,80,72,115,94,106,191,149,97,16,212,229,117,117,141,172,164,186,1,99,130,87,110,167,218,183,90,97,102,157,169,21,138,95,53,77,250,51,143,178,162,157,226,57,73,74,145,161,239,63,247,152,85,14,156,57,28,104,2,21,101,23,81,89,77,192,177,212,89,154,70,196,148,213,128,154,172,34,229,167,131,50,34,206,162,82,117,193,213,54,102,212,1,118,85,142,69,19,226,100,216,152,16,183,87,49,32,38,213,141,8,226,72,7,69,154,31,17,35,114,119,96,21,15,83,159,48,42,34,129,74,80,5,191,249,180,65,10,224,232,22, +220,155,212,32,92,229,10,50,27,144,83,234,196,11,77,76,198,166,217,5,36,14,19,50,201,14,36,197,122,6,188,23,111,201,251,192,77,179,160,81,70,137,98,174,94,99,1,127,54,211,205,15,68,244,35,133,238,16,43,144,10,33,66,49,161,102,82,105,159,47,91,177,210,201,140,93,19,1,49,20,34,217,218,230,0,148,10,22,125,181,197,160,108,244,255,250,70,136,238,209,13,116,126,192,40,117,177,56,190,239,193,20,88,74,116,52,174,70,37,227,3,191,42,119,0,109,105,196,58,212,132,147,209,137,166,177,209,190,16,181,167,225,30,95,248,20,219,44,12,237,46,132,127,109,25,187,88,154,29,190,202,32,103,103,112,243,100,71,187,252,251,22,68,58,247,172,26,183,10,206,178,36,107,29,83,99,206,202,202,188,146,197,116,79,65,125,73,149,230,126,157,179,236,178,141,82,229,218,61,78,18,67,188,61,12,118,102,57,194,194,254,30,215,197,100,41,69,64,68,199,208,159,234,135,195,184,102,0,226,100,215,32,31,124,51,212,111,130,128,209,154,133,116,116,125,212, +106,96,89,125,208,47,3,28,166,29,214,242,55,84,122,167,142,19,32,137,86,119,65,29,198,36,141,106,217,105,38,148,159,182,148,21,56,234,126,15,119,243,225,246,202,26,133,10,139,196,16,0,89,166,1,165,95,150,152,12,32,69,45,96,170,37,235,103,32,180,130,206,141,214,88,101,148,23,250,161,85,35,115,50,205,154,128,140,234,101,82,185,214,103,90,111,177,147,143,238,166,122,0,8,158,87,44,148,19,126,166,254,158,233,101,54,38,250,231,145,26,96,131,119,133,114,174,30,75,180,216,244,200,155,203,210,42,100,186,107,35,0,25,10,129,130,52,6,51,234,140,73,250,227,5,71,118,5,147,102,169,21,42,104,128,169,64,52,104,173,124,140,4,96,157,80,147,214,44,118,121,72,43,130,4,57,104,210,143,92,141,80,54,66,104,23,173,92,56,249,251,116,33,206,7,44,100,40,35,66,138,51,69,124,8,241,239,78,30,103,31,196,215,78,224,119,175,168,11,33,150,155,247,241,187,81,85,203,52,204,117,186,208,82,236,210,2,190,67,152,250,115,26,151,42,75, +205,90,238,186,157,166,41,203,145,144,118,29,168,43,203,214,197,73,187,144,255,25,181,12,133,220,240,4,145,219,119,158,236,86,48,254,194,154,146,9,49,195,200,140,121,133,193,156,254,195,0,53,111,50,4,144,85,52,53,116,73,52,86,25,184,246,64,83,221,195,157,122,140,65,14,103,151,20,172,248,22,127,176,192,173,85,146,36,192,97,203,62,184,192,65,157,69,106,204,75,89,16,216,41,99,20,20,238,25,67,2,20,89,196,192,41,227,100,52,41,187,143,147,225,8,202,128,92,132,83,200,170,184,44,81,238,99,112,230,131,173,31,200,171,77,212,211,184,15,153,213,125,52,160,255,77,119,227,21,31,189,97,102,4,104,163,188,98,94,146,142,245,218,247,204,199,32,58,53,85,142,12,223,59,214,113,87,44,212,139,8,108,130,205,248,115,157,229,191,151,125,32,58,216,195,151,211,91,128,147,181,58,163,151,58,193,26,217,174,96,209,58,133,172,1,173,101,42,106,180,46,53,191,33,101,156,3,250,126,150,54,168,165,240,83,33,57,224,227,102,42,151,28,221,106,12, +58,192,146,44,215,9,211,100,153,47,11,252,201,12,4,26,10,243,50,117,204,220,15,53,36,132,59,174,213,101,234,131,111,54,246,28,167,178,115,30,101,248,73,38,7,219,87,250,130,130,200,125,242,80,235,148,134,9,39,21,93,255,174,241,74,125,27,228,13,141,125,130,182,45,171,197,40,117,130,6,114,0,34,212,99,175,245,71,60,180,123,93,66,185,134,225,181,125,63,8,18,56,248,89,219,175,113,103,52,202,240,219,148,236,137,90,45,35,195,45,100,231,170,202,55,67,246,134,71,248,51,89,133,158,102,200,100,108,174,140,79,193,165,58,70,16,93,11,124,43,232,29,250,111,30,97,4,202,7,133,135,254,151,11,100,9,235,37,116,166,254,76,51,6,183,53,4,93,100,180,97,49,7,43,71,97,16,150,193,140,141,52,90,154,76,22,3,40,146,134,140,151,246,200,232,56,78,65,229,99,114,118,131,111,59,240,38,13,81,80,40,4,29,159,54,168,38,17,111,70,159,233,229,55,183,78,165,65,179,193,107,136,188,98,169,90,232,39,245,247,244,103,244,82,168,132, +142,180,16,150,24,28,37,230,242,33,140,139,205,140,60,80,178,111,35,211,77,107,34,113,56,18,72,184,67,5,87,157,126,165,184,36,192,85,42,196,82,118,144,184,219,84,244,105,161,94,97,196,215,166,149,221,44,173,85,42,201,163,216,133,206,79,79,21,218,56,0,125,211,81,29,156,224,79,105,34,181,14,3,149,15,183,4,25,245,4,76,1,69,60,31,50,223,52,62,193,73,229,156,195,70,210,65,252,238,213,137,54,229,91,204,11,78,54,106,69,25,137,113,79,63,132,154,173,170,65,227,93,239,186,133,214,166,170,208,35,217,173,46,167,117,203,248,57,152,221,7,78,171,72,89,102,226,44,104,183,211,10,156,97,19,136,139,87,107,91,192,45,244,129,134,192,23,150,225,140,154,68,192,130,10,232,88,187,139,158,106,197,236,0,5,181,168,190,187,38,132,116,134,45,207,195,29,227,138,178,150,174,42,242,252,90,36,88,33,165,157,170,122,25,4,9,21,67,218,250,45,77,144,71,88,186,144,147,62,168,50,76,197,113,66,15,100,118,178,50,22,135,250,164,223,50, +56,73,35,68,61,125,13,98,56,24,65,217,128,230,30,43,140,6,165,232,194,68,173,64,44,175,33,5,157,47,137,117,121,107,46,244,19,167,81,223,6,161,12,218,163,48,202,189,28,144,25,87,24,100,123,210,100,166,73,191,23,47,201,138,155,66,179,162,137,139,209,252,164,222,98,185,254,116,247,146,111,244,108,7,154,51,37,54,32,71,66,217,44,109,105,191,186,123,182,49,93,219,10,212,61,221,176,171,142,132,42,61,202,64,174,188,246,245,228,183,204,203,101,142,26,244,242,87,34,233,228,58,21,77,56,189,151,234,4,39,36,166,194,69,151,149,160,205,202,158,49,42,156,244,150,39,25,243,175,23,208,30,65,109,102,230,108,43,149,74,42,239,18,21,102,148,250,227,17,202,58,241,9,143,32,117,114,26,145,78,0,241,123,80,103,216,201,155,152,23,208,28,21,5,171,176,211,156,10,181,107,172,172,3,215,249,117,11,177,198,34,235,34,108,85,105,129,83,157,70,0,17,95,237,244,42,51,25,39,181,160,217,118,225,195,77,87,240,17,161,181,5,34,119,65,10, +8,60,20,25,21,167,100,55,68,226,24,239,97,69,135,191,133,224,241,174,142,183,229,25,222,52,221,216,217,190,25,222,53,44,231,181,177,169,90,94,78,197,227,242,70,191,111,12,105,10,35,229,38,85,35,14,109,25,245,49,131,19,151,226,157,246,29,89,243,24,19,147,194,71,27,79,163,58,181,182,167,104,158,168,131,148,45,156,1,224,10,44,13,140,85,232,26,64,70,143,167,113,115,181,148,126,210,12,228,118,128,240,210,185,22,42,53,160,227,138,74,169,80,11,229,232,246,76,86,249,237,21,191,238,102,209,194,62,129,131,169,48,170,60,119,35,119,150,110,69,214,223,42,155,155,225,100,2,134,197,104,33,185,170,205,109,127,166,23,47,244,14,155,3,99,11,19,32,181,35,129,234,7,231,77,1,153,96,114,185,222,20,239,212,43,94,80,29,129,25,106,53,91,224,110,178,222,180,86,237,71,204,179,127,54,125,90,167,210,99,218,134,142,109,6,141,106,72,70,57,114,145,79,242,36,197,75,88,99,89,189,71,187,80,184,105,175,99,50,192,2,66,197,142,198,161, +172,169,132,175,88,83,230,16,150,119,80,69,4,43,188,115,22,47,66,28,19,64,234,197,169,34,23,222,125,178,146,71,177,187,203,223,52,160,221,75,182,73,210,148,173,19,104,10,59,73,140,188,225,103,105,6,207,48,170,229,42,249,73,129,107,4,138,212,121,167,87,154,89,59,201,18,237,118,7,164,70,158,183,0,44,110,247,122,132,14,36,163,125,12,23,104,0,196,170,9,196,177,199,243,80,61,62,111,78,113,51,244,23,214,240,252,60,172,0,24,229,212,63,46,162,151,144,166,201,127,0,159,55,59,210,211,140,137,132,139,220,190,140,248,116,212,56,198,226,182,89,163,74,155,49,126,83,5,185,109,242,200,199,152,100,49,175,132,41,26,157,104,75,95,222,103,158,60,20,104,41,149,5,117,44,90,105,92,129,79,147,228,74,129,17,196,209,229,105,178,74,165,197,40,90,244,97,154,75,84,75,105,168,17,125,84,205,100,37,94,194,8,18,84,54,105,163,196,56,195,237,6,149,38,213,202,192,19,157,35,147,124,214,10,182,249,153,94,238,112,99,109,92,52,187,80, +144,18,142,150,178,163,219,219,184,102,222,83,189,199,230,66,166,31,113,129,248,104,39,148,62,57,231,84,166,22,142,62,50,155,34,173,113,228,5,232,155,108,230,203,31,239,113,207,227,17,162,65,125,207,44,153,94,74,125,84,163,86,223,14,223,194,246,126,228,164,214,75,233,239,151,135,25,57,18,84,83,41,219,225,107,249,11,197,142,218,213,170,226,90,2,148,142,172,164,73,61,185,208,242,13,126,249,56,85,16,239,194,117,128,248,4,144,183,161,170,2,151,143,58,48,101,170,45,18,12,239,67,181,11,190,250,18,5,108,125,169,171,249,42,253,156,87,254,55,62,128,237,77,146,151,174,16,178,57,207,34,150,214,198,11,211,117,23,107,25,118,4,245,33,206,102,199,178,87,105,50,146,16,240,88,248,247,106,219,61,166,5,143,9,148,52,199,64,108,182,241,116,124,185,137,62,139,195,179,60,237,126,114,110,147,81,81,213,250,11,157,109,35,45,53,161,206,137,120,231,206,168,57,161,234,83,38,169,183,160,26,241,104,179,12,249,230,244,186,70,45,198,176,147,38,219, +219,166,145,159,192,88,100,92,236,118,136,60,58,211,198,197,111,9,151,27,29,97,168,180,44,27,131,35,174,42,242,116,155,242,234,211,14,78,101,52,200,144,228,78,17,8,67,85,232,153,130,76,27,71,143,28,21,91,38,111,80,57,217,142,91,133,0,100,90,201,228,198,214,252,164,59,121,6,231,200,188,146,255,32,189,252,244,199,37,183,108,188,24,113,139,145,1,225,232,79,245,108,80,206,87,77,171,24,253,130,227,201,229,21,7,209,146,131,2,229,138,131,166,170,53,129,76,95,139,135,21,171,165,88,84,139,62,253,104,52,114,137,0,209,193,111,244,25,179,44,60,227,5,120,155,105,70,79,150,187,69,93,204,134,231,205,76,100,175,12,240,61,182,117,210,115,165,156,164,36,30,42,254,244,76,130,117,50,106,166,138,132,59,163,255,102,21,118,120,193,113,122,145,66,81,26,227,152,134,166,35,155,0,99,137,87,160,162,145,164,8,7,170,36,134,62,36,102,231,163,118,42,15,227,90,39,187,46,170,249,170,227,126,214,107,31,147,5,20,171,186,198,162,207,10,221, +247,77,150,200,80,9,88,150,145,71,148,218,121,144,186,4,205,73,214,110,47,37,56,210,54,23,23,159,161,246,92,152,20,81,140,109,231,46,44,223,189,215,75,126,84,32,199,218,105,63,37,229,147,20,205,200,106,4,217,190,1,255,147,174,106,222,164,8,116,86,7,106,202,146,4,156,12,67,95,64,78,229,43,246,17,226,158,89,163,119,198,232,239,45,20,60,147,71,44,47,227,39,43,242,159,223,69,163,11,99,22,55,233,196,94,248,8,69,103,252,230,10,184,182,204,22,183,166,201,106,61,221,160,41,218,100,25,162,212,78,134,19,79,54,122,186,168,96,5,1,199,168,82,73,183,242,74,167,208,145,171,236,182,233,162,92,14,251,151,23,240,153,78,244,112,211,109,26,84,59,171,27,223,143,22,138,63,251,153,245,210,239,100,244,128,23,28,42,22,66,44,8,34,151,202,149,56,129,213,56,124,233,178,20,79,46,97,118,160,108,8,10,127,140,109,128,37,28,181,39,86,124,86,163,83,254,18,113,137,49,200,172,214,162,168,178,18,93,7,27,85,88,43,30,53,162, +247,32,161,198,48,151,34,61,185,227,156,31,185,24,213,24,84,208,183,23,35,192,33,103,180,163,73,245,228,99,162,136,243,20,47,239,212,127,153,39,186,16,112,196,212,37,86,241,93,96,196,91,29,80,85,144,168,178,20,164,190,3,85,54,147,100,33,148,239,107,138,20,106,1,73,135,162,19,63,116,65,237,74,209,21,42,108,205,130,167,58,77,39,128,160,122,225,29,231,127,51,111,5,206,186,139,242,13,49,255,234,132,204,199,58,61,138,100,116,188,63,232,45,69,86,112,107,108,219,9,31,213,182,115,1,23,62,171,230,55,183,230,209,72,103,204,51,110,41,38,234,16,46,127,140,174,94,148,177,173,13,124,119,214,198,53,240,83,54,93,155,165,181,228,128,177,97,106,168,190,146,152,108,16,196,19,181,54,105,186,77,124,185,46,131,214,129,85,150,224,49,53,254,67,160,217,201,35,72,68,241,130,15,104,87,202,136,88,120,131,109,144,105,138,106,16,6,3,180,115,127,20,75,80,249,153,165,195,75,182,190,140,25,35,85,248,14,180,129,145,154,198,108,229,26,120, +174,118,164,66,210,104,133,36,230,95,59,28,209,185,197,134,84,221,126,75,183,11,133,108,96,211,100,184,49,129,125,116,244,39,121,50,208,124,188,182,155,237,31,240,199,94,201,65,144,125,24,222,183,113,219,221,240,94,180,181,144,160,88,118,178,36,74,41,77,40,187,94,227,57,197,210,141,62,168,130,159,98,149,7,53,168,224,163,197,82,55,185,70,39,130,76,131,126,170,230,141,81,78,176,94,169,165,250,177,32,154,4,186,42,37,13,244,176,159,141,35,0,235,160,191,39,11,126,47,71,56,58,210,235,137,239,26,155,139,203,168,245,164,104,225,213,152,126,139,42,85,16,120,37,166,225,132,15,200,189,44,21,135,183,144,79,136,10,41,226,194,91,77,161,26,166,194,136,228,246,212,58,188,118,201,86,251,111,94,247,88,36,22,172,37,53,18,157,125,42,248,215,89,56,195,245,39,176,124,123,148,169,28,228,153,198,104,113,242,76,176,78,243,145,60,65,73,54,12,211,175,204,150,252,250,182,60,207,121,153,2,87,251,42,34,215,231,41,108,166,229,142,111,121,22,82, +48,225,198,68,5,2,9,213,185,19,152,242,86,214,74,102,50,218,33,228,121,188,109,135,112,227,141,198,208,28,120,121,111,78,85,219,148,223,4,241,36,129,214,37,109,17,7,111,87,188,81,235,82,182,224,146,113,193,176,237,115,249,220,183,64,235,59,97,251,107,227,111,218,141,90,67,141,202,36,248,184,134,168,196,88,136,177,21,94,166,125,199,201,36,60,68,107,243,51,76,83,212,97,120,128,12,109,232,233,188,212,189,101,118,29,155,74,38,3,147,248,171,185,134,171,13,120,71,108,106,21,90,102,173,94,125,250,61,241,8,76,241,141,205,211,123,5,138,34,111,209,241,182,53,135,23,234,59,129,128,54,54,190,92,254,89,167,190,219,123,73,53,37,93,71,86,48,3,114,69,5,52,40,179,138,95,232,47,63,174,40,24,35,27,151,251,157,83,29,77,182,192,81,217,187,254,221,33,222,140,116,252,155,39,25,246,86,128,120,41,105,232,188,106,68,103,88,73,112,49,92,147,75,60,6,139,91,254,102,43,190,126,188,97,68,40,18,146,175,114,25,211,74,67,122,62, +247,182,54,122,235,56,57,77,76,227,240,105,138,5,177,98,44,88,146,21,101,37,88,169,58,43,242,223,94,247,255,125,28,206,74,189,92,26,212,105,197,58,223,250,88,131,89,55,242,232,62,58,134,159,204,195,73,44,254,162,65,247,27,142,237,247,239,189,28,203,20,29,218,189,33,7,96,245,225,65,244,225,231,167,45,28,254,176,22,24,174,175,186,83,77,194,90,121,48,58,211,230,215,57,222,176,38,46,241,165,236,11,39,43,207,82,180,53,82,217,87,92,139,208,239,254,209,31,195,159,56,60,48,220,153,194,76,247,93,114,27,25,176,133,138,75,250,149,252,155,137,165,126,1,161,242,68,130,155,141,171,39,252,15,214,43,26,215,55,226,245,46,248,243,14,79,200,171,190,245,152,33,247,77,206,19,63,217,98,53,197,235,243,237,73,24,221,159,15,38,237,18,126,134,120,231,176,88,158,121,76,219,43,113,233,150,101,224,63,101,39,32,241,138,16,159,169,7,107,243,126,164,62,81,55,198,168,131,165,62,225,55,253,168,245,41,15,227,231,30,91,138,145,14,197,15, +172,54,238,60,98,211,62,146,151,41,115,178,127,25,169,94,55,118,225,27,253,243,15,217,112,22,122,167,180,46,0,110,196,201,12,21,114,40,157,108,11,134,91,65,59,15,184,68,86,107,230,158,4,103,85,67,209,242,29,122,235,8,102,91,131,200,100,241,165,179,116,253,253,205,96,182,217,10,83,142,106,246,110,200,180,154,118,139,116,16,143,171,200,36,0,14,208,140,246,119,124,67,225,82,144,71,133,210,104,57,18,141,122,35,252,99,4,31,69,193,62,12,164,129,101,208,10,194,214,32,0,106,193,9,12,228,130,109,208,11,106,206,32,122,148,24,41,209,163,241,136,57,170,143,210,206,209,94,17,116,180,26,83,91,61,86,73,86,30,125,251,91,210,21,185,4,200,51,191,97,97,197,23,244,150,92,143,126,37,56,231,38,139,189,120,16,72,63,218,62,251,139,160,71,177,204,83,156,137,73,4,106,191,158,14,107,169,184,150,92,58,231,206,28,101,37,142,167,104,186,234,195,147,210,253,176,185,51,237,174,236,206,168,237,233,95,205,76,87,245,160,181,178,103,217,15, +112,75,157,14,10,233,16,69,25,60,109,188,207,230,41,28,217,78,97,71,181,39,20,59,63,68,7,183,37,72,222,151,152,6,115,255,162,76,182,196,21,255,189,104,56,73,154,16,213,144,126,126,106,139,180,39,218,240,91,116,147,180,15,120,189,88,102,7,113,211,163,166,23,207,159,89,217,99,233,129,35,109,24,224,181,44,130,72,103,101,214,92,22,37,70,103,98,34,3,126,74,93,30,194,32,128,39,104,122,38,185,7,63,240,109,248,252,52,150,250,153,124,248,216,103,137,237,154,22,41,36,87,220,156,211,30,146,20,69,42,89,38,76,29,47,160,241,31,51,21,39,122,196,203,16,233,130,182,235,167,37,248,217,50,224,164,196,203,183,127,206,191,239,104,103,189,209,216,180,222,191,62,98,62,80,65,242,242,179,174,122,154,228,152,79,218,54,137,83,39,117,74,236,50,187,252,247,40,57,74,87,242,213,167,108,37,221,201,137,178,11,81,74,148,227,37,248,166,20,47,207,74,178,178,75,86,154,253,183,104,202,178,114,157,196,32,67,24,254,253,55,76,244,165,217,229, +120,47,213,139,212,27,80,35,214,73,118,88,125,61,214,68,95,184,190,143,173,238,120,72,217,43,68,95,36,17,251,208,176,182,62,190,127,128,69,226,238,98,255,22,170,92,121,43,248,54,195,124,59,72,68,45,175,168,41,150,174,134,236,94,144,213,140,213,107,80,84,21,168,86,212,246,13,185,57,102,200,244,186,247,237,226,210,194,233,95,238,76,87,253,96,182,120,99,25,27,16,168,111,72,86,233,136,42,210,61,126,204,83,211,51,175,111,124,224,42,49,221,61,225,107,116,45,117,29,45,161,43,122,236,204,133,227,167,135,12,35,150,63,123,220,240,230,153,66,60,121,184,69,240,105,82,156,200,39,231,108,244,146,132,27,81,154,39,252,246,146,91,236,200,241,39,123,176,247,216,176,230,40,237,81,46,18,235,212,92,126,146,46,56,231,116,168,41,202,30,100,160,206,173,253,148,63,32,197,158,91,175,215,154,229,246,7,228,132,109,92,89,169,95,131,45,147,165,55,2,108,67,195,247,65,121,82,35,146,112,226,33,114,253,213,94,127,210,106,154,34,47,229,39,93,200, +249,148,60,9,84,208,10,130,96,110,180,58,137,35,180,50,163,163,59,93,77,116,206,229,106,183,6,85,12,25,138,178,240,70,82,5,38,180,5,109,242,141,29,182,33,224,249,120,108,22,166,206,186,117,20,157,185,166,11,79,97,83,201,84,103,153,226,166,26,30,167,206,67,241,20,60,144,167,115,240,136,60,3,79,80,231,5,166,136,169,108,170,163,79,109,83,188,78,87,215,241,116,190,44,38,251,80,225,89,176,0,41,160,70,26,8,115,254,132,140,127,247,35,232,65,87,223,139,20,209,14,141,246,199,124,120,100,10,153,46,182,115,98,42,183,21,193,8,107,38,106,8,242,92,30,165,90,83,107,242,149,59,62,57,214,142,215,217,33,2,20,151,56,210,112,110,252,160,121,177,35,108,186,65,164,135,222,166,174,12,14,78,119,3,31,234,203,27,51,61,142,177,1,161,65,125,194,68,142,167,226,98,224,199,28,113,75,243,124,125,7,182,18,242,125,214,58,246,175,212,55,63,133,243,9,237,176,68,51,87,254,132,127,20,31,150,3,225,81,255,176,8,186,201,43,249, +52,27,70,255,182,199,51,127,247,36,46,47,205,223,7,114,121,252,173,247,34,87,114,135,82,58,60,136,7,187,67,44,103,5,81,7,75,71,254,251,78,145,6,225,7,191,35,249,83,18,196,183,180,60,110,236,104,150,187,169,237,133,145,135,241,222,53,127,86,153,8,10,162,46,240,197,52,245,34,136,36,169,92,16,83,98,221,163,251,6,192,98,169,32,19,40,146,94,228,128,149,16,148,241,103,144,144,102,211,44,102,249,103,212,133,159,167,73,19,202,44,237,110,77,58,163,55,4,148,101,193,5,70,101,197,105,51,194,54,194,13,18,207,192,195,8,89,253,43,191,99,97,58,246,212,61,53,243,116,98,30,140,39,233,80,235,29,75,71,211,225,116,116,158,14,202,167,240,57,234,62,162,207,224,19,116,116,129,14,162,35,235,208,235,29,91,7,207,211,241,178,60,158,111,42,226,105,248,60,205,235,126,141,255,162,241,105,92,180,163,5,64,206,217,19,209,59,238,59,221,122,31,253,33,63,230,251,67,163,213,147,251,13,217,31,116,193,182,72,104,58,4,199,207,36,87, +30,138,149,174,248,158,151,205,42,152,63,160,90,67,10,84,5,242,21,234,134,19,122,251,54,74,58,32,225,4,161,41,117,244,65,175,186,1,10,213,159,217,21,124,52,61,202,204,8,76,211,95,130,135,253,20,210,198,175,136,162,181,155,26,173,68,201,53,238,250,99,108,133,226,23,235,55,101,105,9,34,215,164,93,120,202,46,86,175,250,218,211,124,11,226,86,127,99,52,237,25,254,142,134,253,95,222,19,150,24,142,172,232,65,76,179,20,38,63,22,127,187,63,249,19,119,87,27,127,41,146,39,226,222,55,239,62,37,79,214,29,160,236,212,37,113,244,73,230,126,160,119,236,210,71,98,116,20,126,228,119,238,82,249,35,121,100,47,36,157,172,212,65,41,133,98,87,60,103,129,235,148,29,195,198,111,178,156,147,156,49,181,111,252,222,49,229,214,212,118,205,79,217,40,233,168,32,39,106,202,29,227,149,217,58,56,211,52,202,201,185,164,5,153,162,161,58,58,135,207,97,106,112,93,14,221,37,197,8,177,39,165,130,203,18,179,136,103,7,211,129,39,129,228,147,212, +64,54,176,13,138,206,4,51,161,76,196,80,29,17,194,135,200,33,184,46,4,132,208,33,82,104,143,12,17,66,216,16,236,51,132,11,161,66,6,201,83,47,209,203,244,82,99,93,190,144,44,100,19,233,97,34,95,226,94,156,124,184,202,75,73,43,97,141,98,111,20,110,26,125,120,186,90,76,139,61,115,56,96,222,103,187,230,175,33,95,233,73,157,185,45,176,79,202,246,232,233,182,230,250,214,22,74,92,85,32,155,152,112,19,0,126,40,30,165,210,36,186,80,138,221,114,118,242,10,37,61,32,211,56,138,7,187,37,90,200,220,184,174,226,230,23,150,234,8,246,234,51,19,57,146,255,184,1,181,105,37,142,236,141,133,63,163,69,156,60,160,27,200,121,43,148,216,209,146,199,165,53,64,90,238,29,102,64,114,6,234,230,210,67,76,241,252,126,234,104,70,80,121,16,203,31,66,3,91,243,60,126,69,139,150,241,157,144,100,91,66,68,239,250,95,133,157,76,180,36,197,250,64,172,195,214,164,217,242,64,175,249,52,98,202,42,74,157,240,249,225,132,248,99,233,70, +20,43,32,206,36,54,45,140,110,100,69,136,47,136,233,163,149,40,19,199,158,23,216,93,190,163,148,41,86,137,56,17,198,44,181,109,31,176,43,150,242,210,12,63,233,70,30,200,139,78,160,131,118,16,126,89,63,101,131,164,157,176,99,192,139,112,143,153,230,107,28,122,237,93,163,208,92,205,84,41,85,94,146,148,62,165,53,73,77,106,147,92,92,82,151,220,42,179,214,229,123,201,94,186,149,155,183,178,163,148,34,161,104,6,184,62,238,11,55,64,19,251,196,97,110,144,211,244,115,195,220,87,110,128,206,189,22,134,47,131,100,96,232,27,134,154,175,160,102,160,145,154,229,127,9,201,159,108,6,252,190,107,126,253,191,190,95,87,217,253,39,233,37,156,132,205,138,162,212,68,10,34,162,228,67,235,15,206,173,70,187,212,159,249,65,30,124,36,163,147,167,119,52,127,57,134,234,167,194,21,217,191,137,178,130,49,55,91,69,188,138,38,32,15,71,199,175,71,179,218,228,138,85,42,29,84,157,113,208,20,57,136,67,24,160,71,84,110,248,43,99,204,45,193,245,228, +43,244,83,41,184,177,87,130,248,157,151,111,106,5,169,181,32,241,113,32,53,204,150,27,188,114,14,159,150,24,74,249,39,76,56,228,105,239,186,218,103,242,140,192,63,207,205,80,51,250,188,126,178,156,3,127,145,246,201,71,15,159,219,167,153,181,219,119,54,223,207,228,77,159,107,134,163,183,107,238,9,185,111,100,79,53,127,181,176,158,152,179,228,219,108,109,60,73,103,205,247,144,211,42,14,66,164,137,65,181,221,114,76,125,31,98,146,229,169,248,156,101,223,247,70,154,152,84,209,220,209,96,13,69,78,184,225,240,165,206,156,148,149,220,175,220,240,107,68,92,129,129,180,196,42,231,219,154,227,75,197,169,48,238,1,140,239,182,11,115,167,255,253,108,148,140,242,247,136,95,9,52,16,7,2,9,172,147,136,78,129,19,225,140,208,235,148,105,173,83,147,92,28,73,135,202,193,42,59,92,187,195,174,176,131,45,137,34,98,136,248,96,18,225,47,7,208,207,193,104,57,107,110,157,3,234,185,76,78,155,227,230,116,237,156,55,119,206,161,209,185,68,78,153,27,231, +36,204,92,61,231,36,238,225,68,18,60,206,136,19,34,113,254,29,123,103,127,84,92,29,33,60,111,226,45,131,53,137,44,133,10,222,68,224,60,219,166,89,49,70,165,63,145,138,93,245,140,3,198,184,231,205,114,142,134,214,92,122,87,181,125,208,152,182,9,40,65,111,214,14,170,181,57,57,77,172,112,71,15,90,33,215,90,145,43,146,105,65,72,181,198,157,144,131,234,17,248,167,60,191,3,87,244,29,181,252,10,207,48,127,248,222,155,167,184,24,250,8,91,7,249,149,24,40,253,32,126,60,139,175,13,57,172,245,134,217,61,196,62,74,41,128,116,95,40,154,7,101,224,14,166,159,232,221,53,145,48,63,23,122,27,231,243,33,39,159,244,253,104,56,63,157,223,175,134,112,234,146,144,105,76,237,79,246,222,133,158,93,101,30,199,195,143,223,111,13,88,139,8,72,94,80,51,171,65,189,176,220,176,99,34,107,235,105,153,6,94,226,152,215,103,241,91,203,190,151,164,28,155,88,215,214,114,216,120,192,206,180,239,126,142,254,143,30,74,255,161,197,159,17,91,133, +74,171,200,217,95,244,228,251,133,78,196,129,91,3,195,172,45,201,36,206,56,13,142,117,254,213,130,36,81,125,24,221,195,247,48,61,45,185,32,149,212,101,245,187,180,46,47,75,202,210,169,85,226,124,217,51,59,82,230,30,174,190,86,125,112,55,220,13,54,125,188,228,11,63,32,247,201,95,104,242,0,232,103,190,50,146,65,166,159,25,102,190,152,153,255,22,218,210,64,219,215,30,203,209,105,37,209,141,119,83,221,103,164,6,213,98,181,100,184,21,109,37,74,113,215,249,34,220,249,127,15,37,36,66,69,113,94,117,135,25,115,174,105,53,74,204,103,149,89,166,85,122,178,111,165,212,155,25,34,47,49,159,211,57,213,215,216,86,173,161,220,83,56,34,172,53,57,102,56,115,55,154,234,72,157,201,81,31,134,236,148,56,210,0,52,236,171,124,68,180,123,68,57,10,245,175,168,63,58,219,67,122,178,66,252,211,167,185,239,37,94,101,133,250,214,83,248,122,146,223,241,192,250,150,75,89,132,222,228,9,119,255,249,13,17,153,90,225,229,94,251,211,74,111,194,179, +62,221,115,141,102,63,233,199,3,91,99,68,45,146,198,157,252,126,154,245,163,159,131,103,76,123,248,28,62,185,215,158,216,18,6,238,31,243,154,120,240,68,93,31,243,221,231,215,53,219,117,186,6,127,9,246,194,143,94,100,137,174,237,139,26,191,159,184,208,185,102,173,165,98,192,143,28,176,239,65,183,225,248,170,156,151,159,155,89,26,52,131,188,165,79,89,66,9,31,124,159,165,191,129,44,174,193,158,108,125,91,12,95,109,168,106,67,157,185,91,221,55,217,153,155,113,220,150,69,103,64,255,234,196,20,137,139,38,174,73,105,34,18,51,36,137,73,146,102,218,71,105,82,158,148,184,165,42,191,244,110,105,89,58,56,171,207,234,181,156,45,139,171,229,106,69,89,80,71,11,202,154,180,38,45,215,164,85,105,121,97,111,29,91,198,175,49,27,91,153,22,166,149,217,124,77,117,75,221,106,110,88,26,86,151,197,241,103,117,88,28,214,227,75,59,107,9,7,105,141,173,15,77,152,143,221,245,23,21,77,81,8,87,222,97,233,156,107,218,101,171,177,169,208,75,228, +106,163,28,163,84,122,19,241,216,80,207,184,96,156,123,221,44,82,123,213,81,181,35,107,123,210,125,248,77,224,165,183,109,246,145,42,93,244,211,121,146,51,8,113,250,235,242,64,14,97,129,110,64,118,131,149,238,136,197,17,215,141,186,97,199,135,74,52,243,152,7,190,25,113,43,59,108,7,220,93,171,8,200,179,59,163,21,247,78,250,148,94,17,222,197,195,33,150,92,168,230,177,63,253,9,29,176,90,133,89,126,118,242,195,234,251,209,242,37,237,220,95,245,51,251,138,134,163,215,175,27,86,16,142,156,55,116,114,51,81,45,175,7,46,50,101,117,35,14,191,236,2,236,250,6,12,45,51,218,206,71,38,92,143,205,242,43,39,13,60,111,176,33,157,172,247,152,212,67,15,48,132,165,132,159,243,163,229,51,21,66,189,14,254,161,63,151,183,218,226,47,113,252,1,94,101,168,67,102,94,109,125,95,45,249,1,63,238,130,213,22,180,119,122,131,105,248,208,183,154,22,211,240,227,35,162,139,218,208,9,188,46,129,73,144,219,240,182,19,104,163,219,36,45,22,70, +82,25,147,194,100,176,142,17,17,57,57,142,177,206,153,115,4,156,15,14,250,163,21,104,221,90,200,94,11,217,138,181,100,173,63,89,107,216,98,180,24,198,86,181,85,245,216,60,208,198,179,241,224,61,248,150,39,235,201,182,244,45,191,190,53,123,129,127,109,241,238,14,139,203,154,61,88,118,214,249,176,231,160,89,22,131,78,28,119,194,92,160,86,213,174,23,12,155,111,100,204,194,9,251,112,10,153,11,229,2,134,54,122,243,92,146,150,182,55,78,233,58,126,109,252,162,167,220,81,122,12,177,62,16,147,157,209,171,205,118,244,243,42,160,190,72,230,204,12,16,39,106,117,48,132,196,84,174,70,26,200,253,74,163,82,17,226,184,254,140,31,177,247,34,108,201,247,188,30,52,32,19,33,23,136,198,196,222,42,16,90,78,246,135,131,75,150,61,121,139,54,251,151,44,123,16,199,235,148,38,20,57,184,168,37,88,186,55,222,42,27,170,103,180,67,1,59,0,142,5,249,138,180,176,111,67,184,12,128,230,103,191,126,225,154,216,40,216,155,114,207,51,185,215,65,117, +146,71,53,21,215,194,8,106,143,107,246,187,169,21,93,24,223,35,154,71,217,141,184,223,35,202,4,207,167,233,43,128,217,98,10,158,119,207,223,48,64,216,118,168,63,212,2,214,131,53,172,67,201,51,234,135,51,46,172,5,12,143,168,255,198,137,89,73,67,86,170,34,32,163,5,4,15,107,179,50,124,125,38,66,24,232,46,188,170,14,192,1,102,156,87,230,182,249,166,54,199,27,178,6,157,1,49,53,240,12,29,131,15,101,184,228,130,28,11,31,111,229,90,184,214,182,213,255,110,245,88,61,150,203,135,229,98,61,91,209,150,20,214,130,93,67,107,72,182,130,214,138,149,106,21,85,173,191,87,223,235,111,196,107,98,173,88,235,39,235,170,249,50,12,12,205,190,102,248,251,245,59,40,253,246,255,134,127,95,179,46,190,229,182,46,191,218,216,132,13,203,205,221,57,249,182,221,162,255,73,21,159,46,178,137,69,198,144,159,60,23,158,69,87,33,158,24,129,143,200,3,167,191,172,58,192,204,103,103,4,176,161,49,85,90,210,118,24,90,210,230,8,174,200,91,177, +43,84,153,130,149,118,74,222,16,45,15,186,108,141,21,113,65,21,232,201,125,73,31,210,219,29,121,250,123,41,246,204,205,58,45,133,77,203,167,55,122,41,67,234,239,222,76,118,16,98,24,191,20,163,212,143,248,182,76,227,115,13,69,114,170,57,238,127,202,63,235,94,197,55,207,129,201,168,67,48,60,138,196,113,248,218,39,141,247,231,244,213,59,48,195,167,232,39,86,244,132,182,233,183,128,185,127,102,22,187,252,83,47,186,133,139,136,247,211,97,232,213,116,244,116,209,223,74,144,184,103,5,71,109,247,103,37,126,48,162,154,171,205,67,225,127,4,223,207,172,147,130,189,236,33,185,208,93,156,63,34,187,148,85,56,201,188,163,142,154,229,186,27,250,71,18,47,230,212,146,102,172,166,192,132,94,118,95,36,173,140,95,133,110,194,139,217,34,127,52,170,2,80,48,10,42,48,129,77,176,17,100,5,45,157,96,58,231,133,28,31,173,221,11,196,22,156,216,202,35,88,118,22,140,192,226,179,176,13,117,196,229,118,153,15,226,131,14,70,150,144,45,5,92,189,160, +41,120,94,142,91,167,48,129,38,226,210,80,95,10,150,129,37,98,169,147,45,233,75,219,18,95,95,234,76,60,147,207,52,197,152,84,5,86,193,37,134,201,145,114,194,157,143,190,146,93,31,243,107,107,120,180,72,190,190,139,80,213,4,8,229,239,24,151,117,191,219,239,28,14,39,224,112,56,234,142,154,163,8,214,198,181,81,77,137,168,185,52,111,154,69,229,167,43,177,36,31,204,174,13,223,86,218,8,10,54,57,157,167,9,148,214,60,235,134,111,217,101,12,40,145,4,40,244,75,236,107,106,125,164,78,162,175,224,154,242,83,186,125,6,145,153,212,154,112,221,211,24,111,7,186,125,155,200,253,200,44,34,26,122,254,177,182,58,82,229,39,114,250,54,7,177,180,191,148,143,226,52,82,90,55,44,201,221,109,93,153,117,118,235,241,165,124,11,143,96,210,35,59,156,67,191,23,105,207,26,201,112,242,7,194,241,251,21,209,99,175,67,152,224,209,24,248,235,223,211,61,156,61,32,30,6,81,175,231,249,205,93,40,125,87,16,56,58,122,246,83,207,140,235,160,142, +248,222,121,38,11,236,15,136,218,205,127,250,3,82,195,197,38,168,72,157,176,107,162,243,139,155,176,147,127,180,109,209,207,73,181,202,13,223,94,91,236,15,188,168,147,137,148,93,189,167,249,88,155,251,189,72,16,168,188,35,174,4,55,200,214,9,216,8,54,157,141,175,179,121,106,140,154,165,158,146,213,34,53,28,107,133,81,24,7,251,129,112,232,232,93,162,121,75,208,170,124,180,130,158,128,231,182,242,32,61,113,79,204,243,50,53,195,23,24,184,83,229,5,219,41,97,59,109,78,248,19,1,119,122,123,65,119,162,233,78,211,23,120,170,19,207,115,253,237,47,159,195,233,215,116,208,77,154,189,72,57,246,69,212,182,21,197,52,14,134,121,182,211,114,218,135,131,119,124,186,153,78,69,222,139,176,183,212,219,91,53,30,135,229,63,18,249,76,61,250,149,40,180,179,19,130,140,128,138,169,206,164,205,76,48,106,102,12,212,158,172,237,76,111,224,144,96,237,104,15,170,144,26,23,48,201,111,96,201,19,45,223,16,242,19,38,225,158,89,206,18,50,191,25,124,72, +80,62,9,221,54,219,115,115,77,200,88,56,193,189,247,246,78,93,22,129,123,210,189,78,123,113,164,16,199,14,222,119,177,172,120,198,145,142,173,39,193,94,111,182,206,92,37,251,209,58,245,62,70,207,152,19,81,218,122,7,169,113,43,26,150,175,158,200,199,230,229,33,128,167,254,84,254,164,110,121,15,202,170,249,23,15,139,159,209,219,225,179,255,196,60,221,167,65,241,43,172,236,48,31,252,237,201,60,8,191,92,205,254,193,63,45,251,254,79,210,159,201,163,190,7,127,222,47,210,83,45,212,115,32,249,9,55,230,79,91,15,189,120,90,231,135,111,252,168,27,251,39,250,195,203,122,202,128,254,212,124,174,77,253,143,136,31,168,52,17,71,130,153,72,209,9,40,8,10,157,130,175,83,120,20,140,155,229,214,145,221,34,55,220,77,99,178,1,54,151,141,254,81,80,26,2,151,224,16,66,11,60,93,79,208,115,191,123,16,47,196,61,160,252,36,59,13,78,140,236,137,113,170,158,236,39,255,63,158,94,76,29,95,100,101,95,88,234,78,255,49,133,59,241,95,120, +63,173,223,79,190,147,207,227,78,163,187,126,207,97,189,236,247,81,216,160,108,190,15,124,13,155,89,50,122,1,35,124,216,133,12,161,28,182,64,26,131,121,33,9,102,220,147,156,206,58,19,198,84,142,209,99,175,114,192,77,24,241,244,13,95,56,114,165,77,180,182,178,29,140,77,129,145,108,45,57,15,182,208,15,46,231,99,136,20,59,226,87,117,135,24,158,82,235,3,57,193,234,119,41,107,18,240,82,205,7,251,125,97,200,184,161,123,97,71,26,122,198,68,118,89,248,231,118,110,139,82,31,124,243,174,31,125,74,174,248,73,148,172,184,182,187,234,100,92,215,248,236,143,73,172,222,116,188,86,126,63,51,243,19,133,198,206,99,120,197,213,75,163,8,15,214,23,88,4,66,145,213,216,202,181,243,110,132,175,43,202,17,146,173,180,240,34,192,17,200,86,156,8,77,58,110,225,5,138,21,47,2,107,35,216,184,174,108,133,100,70,246,8,55,64,100,224,120,137,47,106,196,124,218,94,35,95,52,143,87,129,44,66,67,2,145,17,229,72,44,153,47,252,211,71,124, +180,111,219,19,123,191,50,247,63,147,97,124,237,73,122,250,30,249,219,148,126,123,63,141,78,163,143,19,248,66,237,196,168,157,28,39,231,105,47,59,237,79,164,23,160,220,41,119,50,156,12,36,207,194,179,64,152,176,48,147,218,196,46,184,77,26,243,50,188,132,137,168,117,145,165,167,233,113,66,58,79,72,17,2,31,142,250,131,248,16,60,2,15,29,2,46,131,211,225,182,58,28,15,215,61,120,15,157,239,129,121,168,30,172,123,200,21,34,195,220,132,218,145,95,36,139,62,186,95,87,132,9,69,19,204,11,222,127,245,244,243,254,76,186,152,38,52,153,251,116,1,44,154,10,142,121,138,124,100,31,139,135,121,234,120,120,188,141,78,15,35,100,2,4,241,198,26,121,129,118,222,54,83,228,155,105,35,189,171,178,26,160,27,188,21,40,183,243,49,59,74,133,43,224,99,127,229,176,137,204,252,211,48,104,19,159,168,127,211,194,134,184,119,73,195,207,105,97,44,159,208,73,40,140,215,119,236,82,47,2,110,89,251,9,168,46,83,5,241,3,106,210,87,136,177,173, +155,96,95,108,23,175,56,230,177,117,33,184,19,77,206,147,219,102,255,113,206,189,132,44,138,152,126,13,189,3,172,253,11,243,188,169,159,102,194,101,19,190,60,149,187,35,74,241,136,254,42,99,102,58,230,130,44,249,7,15,103,202,65,41,61,98,216,132,242,150,252,229,199,62,233,2,159,116,71,144,218,99,245,24,211,151,254,197,75,49,51,25,154,203,147,236,24,216,82,176,28,35,4,117,146,93,90,177,138,210,44,235,39,246,234,62,161,102,209,94,180,113,165,86,113,168,31,160,192,232,74,218,30,104,197,253,194,71,49,78,196,12,229,6,210,26,220,156,70,165,83,25,176,18,181,68,47,209,74,15,70,233,171,217,111,14,117,238,47,247,192,221,119,55,135,246,93,63,241,19,239,205,82,179,200,12,92,165,60,43,207,250,186,186,30,87,167,53,102,141,89,249,18,171,196,58,181,86,3,43,53,160,0,70,56,112,4,124,227,190,1,22,30,96,225,88,64,3,7,54,94,83,3,112,181,112,46,192,113,249,29,62,255,190,254,6,159,73,55,28,249,199,254,163,92,79, +139,136,209,242,51,104,102,56,5,10,217,181,216,45,88,59,131,195,232,48,56,172,121,71,222,65,172,145,226,181,93,109,95,115,128,140,58,88,3,153,32,248,55,26,143,20,35,119,250,245,251,163,119,212,94,67,114,128,62,217,172,202,137,140,0,125,3,69,188,229,175,32,144,6,103,59,50,226,207,131,179,126,200,143,178,213,215,9,117,135,255,106,210,239,203,126,8,121,154,68,28,139,125,179,84,250,160,93,76,251,51,152,252,65,21,154,15,196,132,230,30,160,70,219,87,179,39,219,92,98,230,125,224,232,221,214,194,239,207,47,233,178,254,221,27,76,217,151,192,245,17,68,246,176,183,31,196,254,7,247,151,113,35,14,219,113,244,153,9,143,196,192,141,151,254,139,3,183,232,233,12,245,116,242,13,141,86,4,4,6,201,13,183,234,199,82,22,156,152,17,59,172,38,241,216,15,238,147,26,51,41,87,117,233,24,248,148,237,110,239,14,123,28,137,90,99,113,97,112,28,88,241,113,154,95,84,10,242,172,248,15,213,114,183,114,52,78,130,190,55,70,64,69,216,128,153, +209,145,58,136,201,95,97,9,35,5,224,82,99,172,18,219,196,96,248,88,54,166,139,77,235,136,14,194,135,184,32,116,24,68,18,161,66,124,195,16,44,68,3,225,66,164,15,8,242,45,232,89,63,253,43,255,122,255,21,53,207,18,179,56,63,194,70,67,226,164,88,73,149,215,168,106,142,130,35,227,232,84,160,18,148,131,106,88,77,82,83,116,101,93,152,170,43,237,42,187,242,90,77,253,239,74,77,39,171,169,90,210,150,114,225,201,75,176,194,155,191,120,58,174,224,205,175,34,54,46,226,127,184,253,166,184,75,184,19,238,4,14,254,194,177,120,209,102,116,57,114,181,124,141,88,155,147,106,59,112,15,58,54,224,139,184,17,115,180,3,255,17,167,112,83,211,153,244,146,218,82,183,67,201,57,250,215,70,187,36,214,11,244,55,212,223,246,197,44,154,242,200,61,164,45,221,161,108,250,77,229,208,18,191,239,113,131,45,206,193,38,228,189,147,143,127,55,74,251,149,110,58,113,231,214,209,224,143,157,42,78,94,232,198,97,122,46,234,191,66,17,86,208,10,70,54, +106,195,227,13,138,93,99,169,159,111,1,37,247,100,101,62,237,195,117,80,121,176,63,58,161,45,68,121,67,136,169,137,59,91,102,166,223,209,250,223,25,244,169,186,192,163,229,59,20,150,95,168,250,95,246,192,228,188,24,51,101,198,191,61,134,246,123,150,46,40,61,41,235,66,250,37,201,144,144,243,143,26,76,237,66,191,145,69,82,76,187,27,116,252,247,114,89,54,132,84,25,92,142,62,81,158,130,18,216,177,32,88,4,83,105,126,91,102,139,141,152,202,180,143,70,146,241,33,191,11,151,6,210,56,141,22,167,1,244,56,61,0,206,112,47,0,124,13,142,15,240,95,163,212,198,181,129,215,248,2,188,56,31,224,187,236,86,140,21,117,117,232,179,227,127,41,113,68,44,139,80,165,28,37,71,13,234,36,160,2,84,9,164,104,129,82,32,175,72,42,48,69,69,86,81,85,164,145,138,178,34,175,168,43,58,73,229,117,165,171,114,254,163,175,22,119,25,165,66,132,31,117,196,33,97,97,138,248,218,59,232,131,243,83,235,80,221,207,129,23,89,66,199,188,245,143, +174,154,177,70,251,71,23,169,70,196,190,200,218,129,78,144,95,27,213,71,224,136,25,24,141,20,74,133,43,13,46,233,159,18,87,97,151,174,223,226,125,101,140,240,62,216,16,115,64,171,82,241,163,127,232,71,148,137,188,22,200,101,200,225,53,103,184,208,191,177,119,102,61,27,220,29,75,36,9,59,8,191,240,116,250,1,45,29,127,136,218,92,235,249,166,246,70,147,110,3,249,30,159,178,13,98,240,204,146,18,174,156,43,204,221,118,115,31,194,76,51,200,57,209,214,127,70,3,129,119,168,139,229,15,3,143,181,35,40,214,79,133,241,241,54,8,75,31,215,77,127,203,126,178,91,88,43,20,146,30,96,45,41,230,223,247,106,210,67,14,155,243,36,11,12,255,155,115,142,176,190,65,38,252,7,247,58,103,149,60,201,241,18,207,109,206,113,45,65,124,16,151,229,185,252,28,211,185,108,85,203,223,104,66,30,200,166,230,141,31,148,215,138,94,87,83,135,203,241,174,179,246,104,194,230,117,196,135,20,80,89,9,141,95,96,226,160,250,11,78,8,218,191,64,130,72, +56,40,15,229,32,3,68,51,64,243,23,4,7,72,128,250,120,1,22,68,72,205,82,177,20,30,142,88,34,150,180,5,150,179,196,52,73,77,1,230,201,120,18,138,188,66,242,166,72,57,138,142,72,221,145,118,228,28,49,131,46,107,72,26,10,142,168,209,145,113,212,83,252,180,17,155,102,167,93,125,97,51,230,71,93,90,114,28,61,2,11,134,253,143,195,229,54,63,181,15,165,125,189,180,174,30,202,155,74,111,87,178,84,45,101,55,162,98,47,57,171,214,114,201,85,177,149,106,213,82,147,214,164,86,25,117,218,163,76,103,49,232,52,80,79,167,82,63,193,207,44,107,68,90,233,164,99,218,151,23,195,130,100,99,62,143,89,119,30,65,141,139,229,23,15,56,41,151,14,195,219,176,250,57,138,117,78,6,202,178,210,95,47,146,220,190,17,15,26,115,65,22,70,205,99,207,83,116,239,224,171,219,225,100,125,74,99,81,236,59,220,30,141,204,221,99,115,236,50,23,126,27,137,185,39,78,176,248,140,183,204,103,238,38,152,85,5,139,5,244,89,247,138,199,50,130, +250,129,129,138,153,64,164,61,24,211,205,180,19,65,14,93,21,33,213,154,43,7,138,153,91,102,48,83,247,143,52,79,97,0,102,0,251,160,231,92,211,180,16,147,222,76,119,37,160,53,50,32,3,87,69,125,73,168,15,7,52,64,152,82,136,112,166,231,96,213,117,132,24,12,72,173,7,138,84,49,227,220,19,220,202,168,192,154,185,254,155,165,154,9,57,229,136,16,221,88,107,238,218,11,91,163,95,87,157,107,24,105,109,92,7,173,72,152,85,110,101,88,237,86,24,193,170,183,242,173,126,152,21,91,86,151,217,101,152,187,76,41,155,105,159,22,241,67,6,143,69,67,161,24,42,134,146,163,134,26,136,254,66,21,10,217,33,27,180,129,240,71,8,15,189,189,176,212,67,122,104,6,205,62,32,254,11,239,208,181,3,249,94,112,13,129,37,14,58,0,243,95,90,82,2,245,168,31,55,17,226,31,97,229,240,190,188,174,28,74,7,102,117,83,222,85,86,165,186,187,106,47,59,43,86,88,201,85,181,149,29,149,135,133,218,100,84,233,245,58,181,204,104,208,42,84, +10,200,160,2,127,49,65,15,224,15,232,243,4,129,31,116,104,45,196,39,173,254,137,232,121,187,118,153,185,58,16,64,86,248,2,209,213,148,13,69,75,248,151,21,75,196,145,187,99,181,220,139,111,213,225,58,180,67,38,156,163,38,149,216,3,183,159,252,159,214,33,156,152,174,251,52,187,116,231,36,124,218,158,222,153,93,108,189,91,25,127,215,237,220,40,10,37,91,222,183,192,25,158,250,148,123,82,44,195,138,37,150,107,30,16,235,150,162,135,179,234,179,44,211,76,135,166,209,141,144,46,166,118,127,83,155,112,198,140,58,250,218,27,62,253,147,30,192,75,3,97,250,79,166,215,146,156,51,185,144,202,92,36,172,195,163,133,245,234,165,9,192,205,113,20,183,211,227,138,20,234,166,47,121,77,160,37,243,35,251,185,115,5,52,161,100,84,15,104,16,106,118,218,52,161,118,149,94,19,226,75,51,50,131,61,58,246,11,254,167,76,235,210,154,76,84,147,249,77,255,102,126,37,105,78,154,147,225,164,163,156,76,43,221,202,180,26,233,22,224,199,249,1,243,191,233, +138,187,126,2,103,220,25,64,95,96,56,58,137,70,34,64,53,25,36,131,134,16,227,14,85,94,176,67,152,45,180,85,224,21,89,153,34,171,208,189,0,77,21,83,5,79,193,195,41,58,47,248,20,122,31,116,109,169,66,113,204,156,221,18,149,81,47,7,134,187,246,15,241,249,20,213,38,151,72,165,245,179,186,46,31,42,155,18,98,87,93,149,143,149,173,238,191,42,115,85,224,182,146,173,234,40,91,238,116,55,181,74,43,211,175,13,106,133,49,191,7,47,204,1,7,183,55,65,212,222,92,35,13,72,233,4,85,68,247,96,222,222,186,39,246,42,71,40,200,79,219,164,163,183,40,162,54,188,55,155,9,2,84,6,26,49,254,43,198,195,11,228,188,132,243,83,233,165,147,107,70,123,111,221,46,141,94,232,27,221,40,18,241,159,2,38,195,112,239,234,13,213,239,240,224,224,34,168,142,118,39,229,231,32,94,237,132,201,222,23,45,163,15,60,104,169,240,249,217,51,112,118,160,120,37,127,128,172,93,92,186,216,133,233,15,230,228,243,141,250,8,78,220,153,48,239, +237,34,175,136,241,98,127,107,39,173,96,209,76,221,215,197,51,169,42,138,6,130,94,176,75,244,49,122,122,40,121,193,76,222,205,138,63,106,40,117,9,245,39,216,1,79,113,231,236,119,140,202,80,145,68,71,64,131,83,187,131,105,101,220,50,62,111,196,45,13,165,41,183,134,215,58,45,101,82,102,129,71,89,64,37,179,28,249,115,228,2,218,204,158,156,232,205,152,82,165,82,174,84,143,97,138,177,108,172,26,75,35,19,229,68,62,81,79,116,146,137,98,34,155,168,234,19,233,68,217,151,247,97,106,154,132,166,160,201,234,189,56,231,132,58,129,176,22,197,58,0,6,25,248,32,136,31,165,71,153,232,40,195,74,179,50,44,217,107,170,103,234,233,104,61,227,76,59,51,206,206,107,58,148,164,109,155,210,155,31,96,33,83,98,29,132,115,16,229,131,94,54,79,182,0,187,48,75,255,197,76,80,191,215,216,228,252,123,153,156,52,102,191,214,175,241,106,125,4,77,75,251,174,105,107,3,29,13,39,195,79,115,139,153,233,235,160,205,18,139,79,79,219,15,99,66, +28,80,166,155,43,83,253,24,32,205,151,189,4,195,162,255,30,245,27,124,132,196,18,45,216,122,190,45,134,226,144,15,217,224,103,188,160,202,193,168,7,191,211,248,17,151,71,214,142,178,87,221,173,177,109,163,242,101,101,186,195,173,205,58,99,183,253,169,236,4,205,42,88,79,93,206,143,183,32,250,254,166,174,106,177,199,65,91,12,15,230,143,15,81,32,51,252,220,78,126,221,129,19,243,248,228,119,37,105,75,228,227,194,38,159,172,173,149,123,0,73,27,223,104,155,153,241,10,247,185,247,81,79,45,220,90,185,69,148,116,179,255,126,235,3,252,51,43,147,3,108,159,64,209,193,205,157,109,236,116,151,150,23,73,184,252,17,38,205,237,210,236,86,174,212,150,165,100,136,12,46,141,33,147,114,173,182,87,227,53,49,178,233,28,145,219,166,219,182,49,46,181,77,15,231,203,57,157,134,248,67,117,65,107,139,93,105,163,196,137,2,98,12,194,108,38,78,143,160,26,100,215,226,197,78,164,147,238,232,114,157,88,39,219,73,214,59,133,78,180,147,233,232,18,157,124, +54,158,125,67,103,83,217,162,46,162,139,164,117,144,45,103,171,116,82,32,100,160,120,214,58,20,0,2,142,140,161,158,17,104,3,90,153,86,71,159,216,38,248,137,174,62,225,77,124,19,204,68,167,154,176,38,174,9,25,61,49,105,23,21,63,34,145,249,160,95,21,84,28,215,206,30,186,177,26,63,157,230,146,239,226,187,152,219,129,116,32,28,55,199,252,238,8,212,130,181,110,171,246,81,19,128,66,208,58,7,23,160,97,100,124,27,229,70,164,17,113,128,249,107,203,175,21,185,41,26,233,41,56,117,42,13,195,96,1,211,118,41,102,249,138,239,202,1,253,201,210,88,153,1,37,48,76,138,174,6,170,180,163,38,90,194,241,93,141,56,21,254,166,202,36,9,55,89,191,83,235,84,124,116,52,61,82,201,150,61,35,79,155,205,187,253,5,93,255,254,131,78,125,13,142,57,167,248,107,249,222,151,7,156,123,101,145,188,217,217,239,201,208,119,230,74,12,188,68,166,121,90,217,142,133,207,175,158,152,15,238,191,67,135,220,199,141,124,50,191,217,37,71,198,147,141, +219,132,165,199,237,198,156,167,95,209,115,254,232,51,43,189,194,219,247,209,209,204,184,35,230,205,152,96,238,189,18,231,25,155,218,158,17,41,175,240,249,24,109,107,102,122,234,235,219,236,132,28,253,225,9,40,241,156,202,161,228,67,44,151,28,209,46,219,134,35,132,26,5,133,252,198,154,60,214,246,74,105,111,38,43,253,131,165,131,207,121,245,54,169,172,204,46,105,20,38,157,9,232,50,13,75,166,97,68,140,13,141,55,1,189,141,60,149,109,13,149,45,232,78,102,27,186,100,163,144,140,38,51,245,100,34,153,79,198,147,248,183,100,42,89,84,69,96,170,244,75,183,114,190,90,204,215,73,17,107,2,77,45,38,225,42,184,175,240,40,101,50,193,52,187,155,102,103,192,116,45,29,170,101,106,233,70,198,117,79,187,50,174,215,200,238,210,187,204,156,160,16,28,255,229,45,57,186,151,129,7,81,145,165,128,41,228,188,151,125,101,31,142,230,235,119,164,157,40,141,7,231,61,166,161,169,172,167,19,233,150,89,19,148,45,224,201,248,195,230,215,181,105,172,143,89, +14,29,149,168,98,232,23,154,248,190,175,72,56,29,80,134,137,225,99,54,68,101,95,246,174,255,6,239,145,186,93,85,83,154,198,2,61,161,197,70,33,154,62,47,242,204,171,42,56,149,84,133,34,231,51,145,6,246,52,165,17,73,57,116,131,74,92,241,207,63,88,147,239,34,191,217,246,103,219,211,113,159,234,61,177,204,231,106,78,56,250,230,224,170,169,211,129,201,248,52,89,66,226,242,157,120,27,70,86,254,192,13,121,221,155,87,127,137,229,77,112,135,135,223,2,250,35,23,4,154,125,239,32,213,159,69,159,201,135,56,253,188,210,111,127,233,167,232,214,16,103,194,111,143,248,198,46,166,134,35,15,106,171,194,166,133,179,15,207,121,80,141,153,188,79,242,173,144,216,176,209,31,95,15,29,230,12,223,28,81,31,170,194,35,180,34,102,194,100,217,147,115,99,88,173,90,254,51,251,224,158,181,238,77,117,244,147,41,18,188,137,213,3,184,225,169,20,210,184,137,94,170,204,8,169,59,81,72,22,76,215,44,218,203,212,112,118,23,91,178,247,42,68,66,25,39, +253,161,99,191,77,168,227,238,208,19,250,189,48,172,87,237,101,123,221,48,47,197,107,246,138,189,186,112,27,214,150,180,169,245,182,229,149,22,52,109,4,135,123,18,3,182,76,29,190,195,239,120,59,140,110,71,206,137,114,180,121,29,152,115,231,232,46,83,215,37,117,145,93,70,215,72,232,250,41,100,175,41,209,94,216,252,163,99,102,60,7,20,180,180,149,189,27,185,51,5,196,194,3,139,184,147,234,172,63,6,211,231,236,144,60,29,212,69,242,197,122,42,241,86,111,199,219,249,76,162,156,205,68,163,61,19,78,168,183,226,244,38,246,76,121,187,102,40,34,15,153,163,104,212,18,50,93,44,11,32,54,8,219,131,240,145,150,65,202,229,190,171,191,121,154,168,105,195,5,179,236,123,196,17,71,101,45,21,250,39,21,166,225,44,12,53,98,201,197,64,188,4,71,20,84,49,223,152,7,93,127,22,107,164,51,39,245,241,222,27,55,193,32,196,204,231,165,195,206,87,115,124,133,81,89,213,34,219,31,184,50,146,88,184,197,86,216,192,141,125,150,134,55,127,199,238, +249,70,66,134,71,223,98,165,85,69,53,172,190,197,242,213,195,66,120,172,118,119,237,83,34,112,227,159,208,176,223,4,31,122,22,102,201,234,41,86,34,52,229,19,170,24,98,63,96,136,175,88,57,209,114,176,80,192,125,222,98,92,252,207,4,189,223,244,241,232,153,4,92,86,56,212,208,164,140,142,226,227,49,159,90,97,49,116,227,120,249,32,182,11,88,162,253,10,177,68,102,125,107,114,101,142,136,93,57,199,108,37,10,130,221,208,204,113,240,54,166,79,64,212,112,56,60,12,143,207,150,131,230,223,180,230,87,251,155,32,41,157,236,200,1,241,139,72,208,32,42,250,253,201,217,239,233,71,218,145,113,164,134,143,255,45,40,117,42,133,78,161,81,24,79,202,107,65,160,17,140,140,183,29,77,193,150,33,249,75,121,92,245,166,210,165,92,17,87,218,4,213,77,177,80,54,148,12,233,10,161,104,40,19,74,48,67,249,80,60,244,246,152,241,111,100,239,7,124,190,19,181,211,184,185,178,173,202,219,25,3,117,230,80,71,44,17,5,193,129,168,107,128,223,168,36, +39,185,199,93,168,29,152,78,252,196,83,108,108,58,86,246,198,71,188,221,72,155,103,153,139,110,208,198,202,252,65,182,167,240,113,19,160,50,5,126,33,172,66,161,1,23,219,48,81,92,123,79,107,3,124,143,11,85,172,52,172,136,5,119,134,151,177,206,185,45,231,231,7,146,232,150,244,5,138,99,177,148,72,50,65,244,20,50,228,68,46,12,149,71,180,173,217,78,120,163,243,103,187,9,19,250,24,100,184,45,3,246,31,142,202,151,24,1,42,178,77,249,112,202,63,109,27,239,95,92,188,94,201,49,189,203,112,149,95,222,224,240,197,231,102,219,236,94,237,51,129,255,34,62,79,211,168,96,234,230,223,65,97,154,0,253,124,91,255,128,174,79,201,201,143,55,87,191,110,239,6,170,113,41,111,122,196,131,168,53,162,31,159,72,137,63,173,72,66,58,9,19,118,208,92,114,6,160,181,46,49,3,107,127,229,64,126,109,74,36,163,125,105,227,6,173,217,86,75,89,75,46,11,112,108,23,62,145,177,198,109,239,2,230,16,149,64,159,241,111,32,27,77,12,45,60, +38,16,74,0,84,56,141,57,142,101,170,53,84,165,6,124,79,203,111,243,178,26,63,73,200,53,117,5,152,7,141,50,14,221,212,73,4,202,254,28,231,106,174,90,143,217,51,94,123,209,92,180,24,13,136,209,162,52,40,45,164,209,64,175,9,210,150,20,26,5,122,163,221,184,38,27,110,200,54,218,52,71,155,17,126,244,54,138,190,129,58,112,10,78,113,32,15,228,131,239,96,249,29,244,191,224,42,94,91,82,203,219,131,226,11,140,80,7,219,124,76,105,229,45,140,111,127,2,230,206,168,51,254,168,31,86,208,39,237,89,121,12,22,204,25,33,103,90,153,141,180,139,25,245,227,211,136,72,149,220,71,230,24,188,90,133,31,10,143,118,162,255,138,118,21,217,72,164,28,164,9,251,139,48,249,117,112,204,160,78,71,148,170,187,49,37,45,235,218,166,124,156,128,197,52,62,166,214,44,75,1,0,181,139,187,163,147,233,15,191,164,188,148,23,115,155,0,43,207,251,5,53,234,194,249,72,195,231,120,191,116,189,185,81,209,83,108,80,255,54,89,183,240,73,219,158, +123,164,32,32,169,12,143,119,252,100,104,48,57,73,40,71,187,131,82,140,30,189,91,23,210,44,219,110,143,221,43,92,31,122,178,32,199,145,187,206,94,15,255,218,106,20,44,106,158,132,49,91,235,12,199,206,164,236,95,105,241,136,204,171,198,63,117,240,134,30,199,65,74,105,23,74,158,21,227,42,152,40,150,67,146,70,22,220,155,203,161,232,153,101,153,215,76,159,242,155,120,147,68,102,41,154,48,203,132,159,142,173,217,162,54,60,101,152,100,99,110,214,94,24,88,2,129,244,25,208,111,240,28,131,206,92,189,247,192,216,197,6,218,176,6,179,177,134,239,231,35,175,190,245,150,49,251,70,89,165,92,163,197,199,180,178,250,136,169,196,226,104,134,107,57,145,49,146,221,141,30,161,62,13,246,96,240,108,52,43,205,246,97,89,90,182,156,181,102,127,215,89,0,159,193,107,101,161,10,104,127,225,119,11,94,210,132,17,161,6,102,17,136,132,46,161,227,41,125,74,140,82,85,87,178,148,46,37,89,137,48,41,23,89,63,120,140,105,151,229,136,196,108,153,188,108, +77,170,192,90,232,136,31,142,143,151,127,169,47,20,70,84,222,67,210,113,246,26,39,174,110,17,50,169,99,201,73,120,189,141,140,39,104,95,39,92,135,54,19,173,177,219,48,174,224,71,45,64,103,49,7,223,101,10,145,3,213,174,1,133,82,67,179,233,180,98,186,25,65,201,169,210,111,66,186,128,63,40,78,211,46,204,24,189,181,209,147,9,226,246,247,71,95,46,224,142,188,186,61,15,22,105,20,233,53,214,110,12,21,148,214,41,210,190,220,27,127,214,27,86,171,124,55,116,191,150,188,176,157,205,13,69,70,94,139,170,96,127,208,203,195,12,81,208,63,89,40,225,220,215,111,184,149,186,31,5,72,76,175,255,205,239,14,174,104,189,121,179,46,214,166,178,99,155,122,38,223,79,4,187,196,44,209,39,110,65,230,103,233,245,190,179,250,218,35,61,254,240,232,196,149,51,42,11,119,90,223,221,27,78,182,236,210,165,18,75,111,150,235,180,246,244,27,90,150,41,210,53,53,93,133,45,82,31,147,153,215,88,207,203,222,80,179,22,38,173,175,49,183,184,106,91, +249,136,229,240,100,54,185,32,233,208,17,98,35,169,205,16,81,205,245,179,154,11,106,163,234,99,2,190,134,59,207,245,120,169,197,160,185,107,95,253,20,85,80,157,6,96,190,129,231,226,49,245,90,91,127,208,145,81,58,19,237,167,17,144,53,107,203,4,151,217,115,28,104,138,238,181,30,3,151,114,80,14,14,193,225,7,200,120,161,10,70,171,247,255,113,112,78,91,182,44,81,16,253,245,238,109,219,182,109,219,182,109,219,188,125,238,107,85,62,101,140,53,35,34,71,85,142,100,83,249,56,34,27,63,101,57,213,197,145,151,148,248,37,169,175,108,247,219,227,246,176,61,145,182,7,237,201,59,51,124,192,140,219,9,247,106,147,7,8,124,157,223,246,205,229,116,143,106,153,130,50,157,139,23,51,197,132,56,159,42,196,114,216,226,25,153,71,23,224,176,46,95,25,205,237,139,247,112,113,85,73,14,12,28,252,178,40,109,139,88,130,22,147,169,195,91,17,153,158,56,36,50,241,249,238,28,43,9,54,221,202,183,242,43,144,223,80,134,132,1,190,70,40,94,45,104, +149,109,57,96,52,77,168,254,5,255,6,236,84,249,148,144,199,33,100,38,8,120,102,52,12,140,10,134,0,56,162,91,98,235,236,193,239,152,147,188,214,104,189,247,70,98,172,210,60,1,241,40,172,207,109,94,40,163,80,74,179,103,118,121,25,135,51,153,225,128,208,160,237,9,7,114,15,71,77,91,243,197,255,41,200,222,139,51,95,128,241,235,106,212,171,79,31,77,189,126,179,246,212,169,255,251,200,156,185,242,15,98,225,217,202,63,191,11,102,169,218,21,62,240,229,108,120,75,56,47,168,37,175,228,243,32,45,246,31,69,158,100,44,101,139,110,81,133,180,46,107,139,238,191,142,231,83,49,100,152,2,251,43,120,224,22,186,29,61,69,222,24,135,37,169,172,149,65,88,205,11,85,121,97,255,19,114,45,114,188,82,103,242,194,65,179,148,213,137,7,16,106,80,24,14,138,4,223,166,93,188,101,11,249,2,220,83,209,254,24,8,84,132,77,130,150,242,146,95,107,29,158,176,95,191,144,44,200,52,251,84,219,211,64,66,243,84,30,13,31,90,175,252,70,249,169, +237,178,22,101,192,130,176,64,36,28,101,44,138,172,34,179,200,21,23,25,224,179,199,236,229,82,148,126,32,31,208,138,4,59,65,76,32,23,103,230,2,186,160,46,44,42,223,24,154,208,144,221,234,4,140,84,83,234,155,150,145,213,151,249,93,187,202,109,22,91,181,70,169,7,166,52,167,96,34,148,52,196,210,96,112,149,135,250,95,37,5,20,122,20,146,201,161,177,243,217,87,125,226,7,27,14,221,59,3,51,96,84,253,238,147,120,249,24,24,248,120,53,242,46,134,62,211,175,32,80,191,66,168,202,123,80,36,253,6,190,10,150,82,82,104,20,112,18,189,249,13,166,89,59,109,49,35,252,165,133,44,252,84,71,188,22,174,80,58,79,106,1,10,86,32,53,6,9,249,40,76,32,52,119,252,84,56,235,67,155,1,97,200,159,210,221,66,202,26,99,225,78,251,121,136,103,114,222,37,55,159,140,79,218,109,189,96,203,237,126,252,74,107,62,191,71,239,216,153,210,218,206,82,39,196,236,198,162,26,197,44,126,246,189,83,94,208,197,119,147,122,87,75,93,201,167, +195,56,91,101,222,236,59,50,92,112,243,222,216,251,146,92,116,115,95,202,35,2,95,116,243,222,228,251,1,56,39,75,90,68,58,113,60,55,75,219,162,23,165,180,104,75,220,220,119,18,122,235,119,28,45,86,150,255,38,222,244,115,156,186,40,6,142,106,75,150,179,198,55,8,59,22,126,157,17,254,141,99,120,4,187,167,21,17,204,18,193,211,223,203,69,100,253,141,74,75,73,81,51,208,140,38,226,184,101,85,224,174,201,25,145,147,101,90,156,80,108,205,88,153,167,146,122,9,142,42,112,120,199,106,35,145,55,33,133,252,138,238,182,111,229,185,83,14,136,204,36,179,201,172,64,153,85,102,150,217,21,46,3,202,3,174,88,129,24,255,38,192,137,114,238,203,107,240,26,162,138,224,91,145,84,248,21,177,69,149,94,67,27,154,178,187,173,200,205,133,169,14,93,223,38,56,195,22,228,105,132,60,29,78,7,147,177,108,50,0,192,104,210,25,42,186,221,221,154,202,96,61,88,44,194,179,176,14,22,171,63,236,79,141,47,107,201,2,72,81,211,227,69,208,228,31, +152,58,28,216,0,41,20,35,138,163,88,255,241,203,162,111,135,248,163,194,55,82,85,187,129,92,27,15,22,13,133,212,239,130,207,217,193,134,177,43,152,195,211,130,29,123,91,204,8,104,17,203,19,126,162,19,164,129,29,227,249,134,43,177,245,59,71,68,17,192,214,190,107,150,238,78,159,212,18,173,202,184,39,239,147,168,206,163,55,82,5,187,251,29,9,20,236,26,110,232,107,216,59,234,241,172,222,161,241,17,109,221,185,200,237,99,255,49,103,92,41,57,169,123,124,101,151,73,176,11,169,146,79,97,94,87,6,249,129,68,178,115,215,192,55,188,154,58,194,253,197,130,190,206,87,66,253,144,27,241,51,186,249,91,16,18,209,51,164,115,86,90,178,167,68,192,12,106,58,140,40,68,208,12,107,58,68,113,68,220,140,171,111,238,194,53,107,12,44,242,137,148,69,102,46,114,134,146,10,192,238,17,27,106,103,153,128,241,253,97,146,30,65,160,205,253,144,182,88,19,233,197,40,90,141,113,96,32,62,42,205,79,3,53,48,159,76,40,75,0,214,213,229,117,48,146, +122,18,148,128,108,104,163,52,39,48,181,4,120,104,121,7,111,188,132,60,110,2,143,198,197,194,76,67,126,161,199,35,79,152,235,160,131,172,109,221,24,197,124,65,95,212,23,246,242,226,190,0,47,194,11,180,216,147,40,41,222,165,174,188,44,43,203,205,114,173,85,102,149,95,101,87,187,124,91,236,242,61,201,213,59,203,131,248,200,238,2,194,73,190,36,86,84,1,200,17,118,128,27,247,80,195,206,168,51,232,251,148,241,57,90,182,67,100,40,8,150,124,192,19,122,138,226,112,126,193,90,185,60,233,96,252,20,60,249,246,32,105,3,111,132,147,135,104,129,35,248,116,228,42,15,252,19,71,165,111,57,212,237,52,96,101,80,87,138,66,167,4,141,127,12,101,196,61,105,203,211,50,214,156,150,223,196,99,30,239,69,152,116,12,196,69,101,11,240,132,136,27,53,22,46,34,141,85,102,209,33,1,73,28,85,185,32,189,143,167,70,177,190,137,204,120,51,213,194,33,123,231,168,214,120,248,237,211,141,46,215,31,250,33,99,236,254,202,132,120,6,238,137,95,179,157, +38,60,29,141,39,123,183,218,143,12,134,244,19,221,83,109,196,135,244,57,117,99,93,38,189,148,43,252,28,84,231,91,147,225,21,222,185,157,217,7,51,89,154,186,73,201,253,55,253,54,93,179,197,23,96,82,53,97,231,57,87,228,40,74,23,55,166,108,222,21,59,26,178,181,112,211,229,63,254,180,39,108,198,245,193,156,35,56,57,150,196,46,176,128,13,166,232,60,3,139,102,63,19,146,110,184,201,164,243,45,158,61,118,180,143,182,9,91,228,8,148,68,66,180,131,105,108,26,7,76,100,83,121,32,176,254,25,189,156,250,87,213,100,195,175,38,28,40,38,228,69,205,137,158,150,226,246,99,147,59,64,205,157,172,249,83,17,133,112,188,106,70,85,130,152,150,165,41,180,52,8,150,126,238,141,112,88,198,48,40,175,202,151,78,206,149,6,160,1,2,116,129,59,102,144,15,140,178,103,81,90,150,34,204,18,211,212,48,53,30,38,135,201,250,151,85,229,250,228,16,11,41,129,193,151,197,170,2,190,40,60,43,234,156,50,35,205,98,212,57,57,148,157,141,4,160, +254,195,154,53,83,135,0,113,168,32,48,28,151,52,89,117,44,28,5,130,2,44,159,241,248,228,235,131,204,3,60,147,79,92,20,131,15,6,212,181,31,178,16,144,242,73,225,62,121,84,206,126,182,153,62,3,71,67,19,144,132,0,138,168,138,88,73,69,28,240,7,186,95,144,214,37,97,55,234,144,175,209,64,200,228,150,46,42,174,106,158,225,27,80,222,235,107,224,217,28,4,238,235,79,188,205,197,83,188,210,168,174,96,232,103,104,165,85,221,145,216,24,162,61,196,119,172,160,148,238,138,235,219,195,191,196,51,169,94,90,79,128,242,105,183,17,177,71,238,110,178,206,104,221,153,125,119,127,242,50,246,183,44,21,14,66,114,82,240,127,99,137,20,125,2,203,238,204,29,203,47,201,141,109,238,1,45,87,160,38,15,255,252,67,174,80,77,152,162,35,208,94,210,212,68,83,166,88,114,68,151,2,181,210,52,212,156,171,69,108,206,193,18,86,136,22,200,204,205,23,153,85,149,163,57,162,153,163,139,12,156,82,206,105,20,3,108,175,89,122,84,209,155,201,0,219, +18,54,43,84,240,38,51,176,100,171,197,255,78,78,9,184,141,72,109,214,205,68,179,121,248,180,73,250,196,201,80,82,53,49,53,68,22,126,110,107,7,57,140,198,49,5,96,166,84,193,50,34,40,194,143,41,105,162,71,73,45,147,229,170,150,129,32,82,76,32,26,38,51,85,114,29,144,108,149,10,171,168,118,221,90,197,166,251,106,14,41,23,41,101,64,153,48,86,10,81,246,36,200,139,254,46,38,204,9,180,66,173,28,44,106,118,195,105,186,152,102,130,92,79,11,117,248,157,230,63,69,171,243,75,101,70,154,83,67,220,96,227,101,173,229,82,48,223,96,237,137,104,20,15,199,141,142,155,243,114,87,134,232,45,114,133,92,129,30,144,185,199,95,96,123,37,236,7,237,5,115,233,103,109,60,85,112,158,2,157,182,79,227,151,80,52,63,198,9,88,66,143,200,63,15,184,78,86,82,253,33,60,108,71,13,224,117,6,160,96,215,247,251,71,32,227,28,175,72,107,244,213,116,78,2,227,39,208,53,253,29,59,225,136,87,116,8,50,223,255,70,182,41,195,1,221, +87,186,92,193,88,206,14,201,30,175,42,17,48,106,187,131,150,80,168,253,0,166,98,119,230,15,49,243,242,201,175,3,219,7,18,237,246,119,107,36,235,81,28,11,58,55,104,36,181,255,83,240,228,66,126,132,107,110,241,243,129,95,148,166,46,15,252,198,172,177,243,111,160,252,252,89,7,77,216,98,201,147,120,218,214,69,83,49,155,243,100,159,130,117,71,105,250,107,30,242,138,214,100,221,22,56,34,119,231,47,250,88,160,115,172,62,199,33,47,29,13,34,222,36,157,103,145,102,50,123,125,239,151,186,29,2,197,146,94,151,251,37,229,157,229,16,155,196,1,249,86,173,158,49,203,114,112,174,24,111,74,83,140,198,42,162,151,55,45,69,139,30,17,87,235,181,99,82,100,240,182,52,101,230,38,207,195,175,44,161,160,2,157,207,166,164,27,151,146,246,164,108,236,63,113,143,66,188,48,187,95,102,42,80,101,61,10,58,115,234,52,132,111,63,199,77,183,130,106,13,56,19,206,136,210,217,137,2,47,196,74,15,171,110,172,253,191,151,135,101,253,79,191,107,14,212, +128,153,234,75,131,186,217,147,102,46,236,141,24,189,33,103,194,175,59,206,61,48,63,169,41,191,59,212,114,143,132,12,242,175,253,102,79,203,197,53,44,14,139,236,180,45,9,158,68,96,98,7,90,36,22,238,224,165,105,181,63,157,43,18,15,195,21,83,194,248,125,61,152,148,150,226,200,58,48,38,85,24,180,11,219,130,214,181,12,50,165,94,14,98,114,59,96,68,6,48,41,218,40,48,101,53,175,226,53,9,179,38,91,116,92,101,16,180,181,119,176,46,131,146,245,225,64,56,104,193,140,252,96,202,75,106,10,165,44,8,221,155,156,253,8,89,86,186,39,18,84,162,68,237,209,206,117,205,232,58,59,4,51,106,191,144,40,74,168,253,6,59,66,23,182,35,92,234,25,221,108,78,214,29,24,212,30,224,51,49,230,53,223,207,223,91,32,22,173,159,194,236,127,51,249,225,108,180,202,153,39,116,45,59,190,74,209,83,211,198,206,63,137,196,245,167,29,60,121,215,146,39,105,179,119,72,173,51,14,255,201,217,136,203,142,234,172,35,125,18,211,155,159,182,243,4, +157,11,48,103,106,21,91,124,183,2,87,149,215,182,7,56,55,162,90,171,204,38,163,154,77,7,114,176,15,175,174,97,27,229,90,5,247,246,199,106,160,218,184,142,55,165,92,25,190,181,204,53,21,218,245,116,14,24,157,162,37,1,184,108,107,149,180,246,218,49,115,16,159,195,38,199,209,225,107,187,219,7,248,98,100,66,8,7,243,38,36,187,177,29,251,188,103,45,9,199,215,157,210,206,120,50,250,223,136,140,246,173,70,20,107,226,235,229,218,105,85,50,102,44,131,237,96,35,32,108,9,187,194,93,243,28,108,71,219,209,60,125,46,179,85,161,46,4,82,124,76,55,197,169,190,32,25,43,211,7,137,124,148,190,17,108,202,221,20,243,234,20,127,69,219,199,217,227,215,76,73,144,160,163,18,243,188,80,38,10,251,171,14,166,148,72,102,128,37,37,218,40,54,107,143,135,31,129,71,208,249,108,116,56,228,79,49,5,31,34,232,115,229,6,169,219,23,119,140,253,12,156,102,19,202,205,107,167,8,71,41,19,253,184,34,44,68,225,47,237,196,153,180,4,199,42, +56,13,191,78,18,49,63,149,105,157,61,145,140,9,98,56,133,99,160,88,35,43,162,94,254,192,31,248,196,32,10,107,248,60,168,248,47,213,126,109,109,54,199,68,229,181,93,72,237,103,229,36,35,191,211,137,155,102,49,190,81,94,106,11,107,177,121,136,147,198,117,138,56,73,145,170,88,242,84,156,36,91,35,72,64,218,49,67,39,128,240,70,223,15,207,255,3,0,249,126,64,62,193,4,55,191,250,53,21,165,191,88,156,62,54,101,103,58,155,175,175,27,223,88,155,66,132,185,59,215,109,214,204,157,94,75,185,235,249,103,58,46,117,249,139,15,5,155,148,217,18,192,70,178,229,204,178,141,173,141,43,124,30,182,238,20,69,18,106,191,138,165,222,226,112,20,125,93,53,93,175,39,92,213,190,101,154,125,238,214,29,188,73,27,202,115,108,224,93,145,7,170,22,223,140,110,220,7,14,23,255,68,181,252,135,33,52,206,22,95,89,45,218,191,223,75,217,210,171,16,222,42,31,198,163,141,19,239,12,106,88,45,160,229,128,141,149,9,74,1,173,170,134,111,236,143, +67,57,43,246,91,171,1,141,44,13,223,175,68,213,244,175,166,10,215,51,120,214,152,136,79,177,231,15,67,251,72,2,30,176,152,120,62,102,189,233,240,32,118,53,121,215,2,13,197,98,178,148,138,137,103,100,146,226,133,21,126,185,236,206,35,205,118,200,236,245,163,97,107,84,33,201,143,138,231,172,118,88,34,72,209,67,52,163,173,218,237,63,195,212,254,216,52,36,82,167,240,136,33,148,214,11,119,186,69,227,164,183,48,3,213,184,53,247,75,99,77,113,124,66,106,8,153,8,49,83,200,148,54,121,170,170,40,137,84,108,242,234,84,46,134,203,38,189,120,124,58,1,36,119,36,90,131,18,145,228,11,79,220,70,7,158,120,201,57,19,137,37,124,137,109,102,28,1,19,244,6,189,4,177,1,193,204,173,138,52,76,193,185,227,95,82,176,202,156,130,136,5,90,219,149,87,33,73,241,67,106,120,52,34,25,193,214,149,99,148,126,72,120,144,123,25,169,249,40,155,214,25,41,124,232,26,16,29,135,64,66,135,167,151,4,83,41,148,174,147,157,105,131,248,54,225, +99,203,249,187,51,166,91,77,192,180,239,65,214,229,209,88,206,53,90,137,30,1,73,44,56,205,253,234,183,60,118,217,139,193,97,179,68,218,127,9,138,171,102,255,116,89,197,217,221,155,84,197,28,197,123,217,20,115,124,240,90,82,239,208,137,181,29,40,28,232,101,223,51,123,246,119,101,21,34,238,170,63,69,173,59,244,128,59,175,61,47,225,11,126,45,173,163,43,254,139,125,125,164,7,46,222,27,251,232,168,119,225,40,139,243,134,203,31,212,29,57,210,18,219,222,132,7,245,82,31,50,215,56,149,248,245,125,20,248,123,226,80,30,45,187,177,42,65,75,149,93,71,47,226,157,18,63,166,53,87,220,150,96,138,190,28,218,251,231,0,36,76,248,36,46,223,43,249,165,160,239,113,240,220,43,244,117,167,47,87,192,84,198,147,186,2,45,94,210,236,168,180,62,174,43,79,147,92,238,72,192,89,135,148,10,172,91,82,176,218,81,75,57,20,87,20,148,190,195,181,51,199,145,41,88,54,147,207,112,17,135,77,236,205,155,79,210,94,71,204,99,53,163,87,77,100, +115,11,122,139,73,173,93,143,150,137,236,233,110,144,150,70,227,105,114,249,196,42,94,148,23,166,37,71,12,71,200,132,63,163,160,17,197,58,233,151,122,74,33,18,29,142,120,93,122,200,170,25,178,56,104,73,41,153,150,241,77,97,197,121,250,118,42,18,2,251,75,211,90,252,1,9,211,106,117,254,137,67,176,233,68,136,78,224,53,172,247,37,237,33,194,226,34,195,1,126,148,61,35,136,51,172,144,88,132,186,86,119,177,152,102,84,210,101,1,24,47,238,254,131,54,163,211,232,194,45,81,136,154,98,99,227,132,108,8,55,180,2,81,23,99,43,217,131,89,129,237,211,57,38,56,155,66,66,107,254,195,26,87,30,140,229,92,197,175,242,17,142,4,199,61,112,207,129,28,210,241,166,185,144,173,182,110,196,173,196,182,60,169,52,178,229,29,6,201,197,150,203,111,111,10,89,158,212,21,122,119,111,140,152,213,52,247,188,176,106,81,169,246,40,173,122,5,114,229,123,179,118,22,22,73,21,215,133,52,32,180,185,27,59,224,81,32,182,249,90,182,127,204,33,160,114, +150,100,71,154,7,224,8,169,140,37,150,236,126,3,99,68,85,86,38,229,109,225,190,6,204,59,32,176,114,151,32,151,136,247,229,96,6,194,108,32,45,228,46,105,78,20,213,111,192,22,196,31,229,86,205,89,37,144,126,90,196,117,141,78,4,122,194,209,121,154,84,23,239,103,26,177,15,216,142,56,218,0,87,141,12,180,170,151,115,185,28,162,158,190,161,54,146,223,39,73,69,234,173,0,87,153,45,212,77,117,118,112,123,94,133,185,112,246,86,146,11,17,242,124,129,0,108,64,18,227,183,16,126,4,31,111,91,144,2,7,111,185,38,97,224,136,120,41,234,118,185,200,86,9,138,23,71,8,181,51,115,124,183,49,80,130,11,129,108,62,166,108,148,121,57,209,79,137,83,27,116,62,210,146,192,78,115,223,135,36,75,230,160,70,197,18,242,70,36,233,129,211,45,9,115,208,66,212,195,90,9,164,79,104,18,13,196,185,159,158,228,241,203,157,57,222,203,27,214,53,56,239,31,181,166,160,95,86,79,102,86,226,47,53,104,163,103,152,23,23,210,98,212,133,82,144, +83,234,129,106,244,213,139,124,105,86,66,64,159,156,125,216,30,159,227,84,4,77,92,18,165,179,136,177,160,85,207,143,219,88,155,88,117,176,117,138,193,14,168,20,168,177,56,26,51,203,82,112,182,167,207,38,98,165,144,11,182,139,11,148,226,254,128,73,177,247,79,43,19,116,182,188,97,125,219,176,233,14,35,227,180,166,221,75,212,53,156,225,160,5,255,216,18,215,57,212,126,193,9,185,199,115,249,227,185,97,177,215,238,222,191,116,189,133,14,134,111,124,135,159,137,215,189,223,155,123,145,7,75,3,233,154,127,113,7,31,33,130,91,116,197,246,58,96,88,72,202,230,92,97,240,94,21,70,146,180,197,182,43,162,71,13,212,136,208,85,78,41,190,98,251,4,62,156,64,100,229,21,73,78,37,174,101,247,118,113,88,130,80,147,154,34,235,192,93,11,235,161,131,176,54,196,162,64,197,99,191,222,38,192,119,9,39,156,89,46,215,134,233,226,252,108,208,145,77,195,228,234,15,7,201,64,52,16,141,7,2,194,119,193,151,236,180,128,199,21,180,251,110,182,10,153, +119,207,40,118,237,118,79,30,48,110,81,55,98,73,178,134,102,137,86,139,164,158,234,101,212,88,219,34,131,200,35,212,177,195,74,35,214,191,46,61,127,152,25,104,12,231,125,60,126,241,154,170,123,60,59,59,239,18,137,62,114,87,149,83,21,70,157,48,249,163,42,81,14,92,68,44,129,145,159,78,209,152,104,44,82,11,197,180,246,229,58,178,240,255,98,34,135,216,156,173,101,204,188,110,70,10,240,195,122,51,3,135,191,74,184,214,47,228,246,172,184,111,253,106,173,73,198,154,162,80,116,19,188,172,219,244,34,64,202,0,15,164,22,227,200,42,48,194,69,20,205,29,196,28,232,84,148,162,156,218,96,211,222,69,160,163,49,149,50,186,229,58,253,134,56,68,161,117,23,67,104,199,3,190,79,208,107,161,26,204,82,219,44,246,201,148,175,4,146,32,98,58,123,239,100,223,10,181,217,92,114,141,231,52,113,150,179,159,241,177,207,164,253,75,117,90,109,147,118,4,189,108,57,83,250,49,178,101,75,214,139,224,215,14,64,252,11,96,118,218,22,115,40,79,95,94, +61,23,219,157,190,223,197,87,255,252,249,86,53,105,108,210,251,92,237,199,10,113,37,219,1,187,16,74,109,144,219,123,215,176,65,110,208,111,67,69,251,24,16,11,96,220,253,106,224,65,179,12,216,220,81,137,137,62,223,5,72,220,116,8,115,14,121,222,177,154,12,30,184,193,3,58,12,162,77,59,208,125,138,199,251,170,224,27,37,229,224,209,189,248,186,105,16,194,88,209,99,214,129,187,77,57,248,190,101,155,54,26,252,14,226,90,17,229,102,65,63,183,65,218,144,17,65,152,52,224,222,43,157,51,104,57,124,93,150,153,42,44,19,113,30,23,135,248,15,20,255,123,162,180,5,31,36,98,227,47,189,176,123,251,149,208,212,194,218,244,119,226,199,164,238,69,187,246,159,41,185,141,203,118,238,191,36,134,111,255,145,157,131,115,51,14,153,77,106,228,167,129,172,192,102,27,233,116,145,248,84,16,17,15,113,157,209,22,20,240,169,89,61,141,216,108,10,18,136,80,168,175,98,32,240,40,4,252,167,127,44,186,220,76,230,101,112,58,61,194,87,87,222,161,208,161, +172,205,218,68,151,76,218,88,181,181,52,144,53,214,116,76,253,147,14,210,171,170,194,50,85,144,231,85,132,133,120,68,21,127,185,142,199,84,61,21,59,53,71,162,225,245,79,180,184,107,189,251,232,128,255,190,214,106,254,36,179,216,118,251,116,2,230,42,145,36,50,157,238,185,190,153,183,219,108,222,150,74,187,147,156,76,126,185,30,161,32,148,68,69,28,175,26,235,38,95,57,70,204,203,63,164,130,27,72,150,59,41,47,178,50,54,127,254,31,82,151,126,224,235,99,127,94,187,199,207,243,213,199,186,218,31,135,246,115,214,200,94,245,147,55,244,144,59,163,188,152,50,220,209,26,170,218,216,51,124,161,222,173,174,152,95,0,69,178,88,234,131,32,38,23,76,247,200,150,236,96,143,153,121,130,113,120,67,182,55,183,34,87,236,175,163,35,116,37,202,189,33,146,196,44,107,252,67,144,69,154,102,228,185,188,80,17,9,85,177,42,158,35,112,135,163,15,36,225,215,91,34,81,104,43,189,96,24,150,252,34,83,74,250,237,24,102,78,144,4,160,72,145,248,64,32, +18,152,5,230,241,201,68,167,98,94,103,211,83,4,22,48,112,38,211,27,90,36,2,197,41,235,232,120,101,1,142,231,18,133,245,193,45,41,12,135,219,235,34,158,173,31,176,132,45,8,1,4,67,193,133,225,84,37,130,38,131,229,71,81,59,42,67,9,197,201,99,15,175,72,58,245,115,22,217,180,95,152,244,121,38,186,226,115,143,149,121,95,130,150,77,186,31,15,179,78,146,80,255,37,246,23,138,180,65,12,191,174,156,78,209,37,148,250,226,145,70,182,208,177,82,51,202,106,24,95,247,91,163,2,252,22,224,224,179,108,238,144,213,186,115,163,169,124,203,230,190,63,108,115,3,162,141,75,255,86,163,28,56,105,76,88,8,169,43,78,125,32,188,236,254,85,115,208,24,243,4,66,102,132,201,71,164,49,149,54,26,163,39,20,148,88,68,101,13,22,126,0,158,13,10,9,183,206,143,55,182,245,186,255,230,241,156,203,135,155,80,245,107,109,50,239,92,240,199,116,90,170,20,139,201,34,139,161,224,30,102,112,236,139,155,255,224,156,87,251,230,76,53,52,91,78, +191,125,188,108,217,82,117,36,154,229,72,194,185,182,71,21,16,140,218,110,104,174,228,27,254,104,111,223,225,246,226,206,46,183,199,69,112,251,93,80,75,90,155,171,51,120,151,166,0,128,93,75,186,185,125,30,128,121,75,174,117,123,71,64,239,79,83,205,206,228,35,195,1,82,4,75,189,171,242,125,99,64,21,65,90,144,109,229,222,230,247,240,3,192,34,93,138,92,93,221,155,255,50,0,102,112,126,129,116,105,115,37,30,93,236,107,254,98,0,109,5,216,129,60,81,102,218,152,174,214,147,241,238,59,214,16,12,15,113,84,49,4,103,145,250,181,139,177,157,173,254,71,241,211,136,35,129,121,74,142,42,34,132,125,37,95,11,39,50,65,213,63,110,94,41,55,109,248,113,187,13,32,167,135,185,192,126,193,13,25,72,130,107,50,152,254,99,148,240,52,177,158,31,213,7,53,193,1,176,30,178,226,81,67,52,134,22,39,155,195,116,51,43,207,26,64,202,1,45,212,24,97,144,144,201,242,156,159,242,186,203,19,219,159,1,23,251,0,23,104,226,110,108,242,25,255, +48,226,132,14,209,232,52,143,26,26,198,213,78,16,93,224,91,24,203,183,117,102,68,146,9,152,168,150,221,174,128,62,96,197,255,19,117,219,169,121,72,78,111,53,218,128,56,56,90,30,190,165,12,128,96,71,7,152,57,239,98,40,8,69,88,51,91,151,137,100,32,221,29,31,224,162,166,71,124,152,159,207,106,37,163,87,4,7,195,140,200,84,86,111,87,50,229,153,33,17,149,210,93,76,145,158,236,29,60,1,48,5,183,175,202,101,51,220,166,115,190,224,47,46,152,217,166,124,43,177,48,241,12,8,167,146,175,71,131,66,169,235,21,184,55,134,27,207,168,242,78,144,55,135,181,133,186,221,201,251,140,169,118,183,16,32,164,153,253,9,138,249,14,179,254,225,235,3,122,151,161,183,45,242,242,78,181,151,220,93,162,249,117,79,144,19,234,95,49,41,109,218,184,41,217,165,157,110,235,212,169,219,245,60,90,94,148,105,143,19,188,55,49,19,59,126,90,226,220,140,119,205,200,206,154,94,22,28,131,203,122,104,169,211,69,206,212,207,137,158,238,138,99,105,44,143, +91,138,76,169,39,123,116,221,210,247,198,193,52,158,99,99,69,178,212,153,221,46,57,31,23,240,14,57,36,81,35,122,50,105,121,173,70,157,129,126,122,72,73,39,244,108,210,37,82,244,179,5,78,186,51,192,235,79,119,212,29,30,213,253,40,87,167,37,231,217,185,238,108,25,151,198,213,35,225,171,135,0,172,89,28,239,124,203,59,95,116,139,30,110,199,1,22,51,81,135,249,118,50,149,88,227,137,178,38,173,228,183,6,234,144,4,206,123,30,134,17,31,5,56,89,217,17,208,82,71,207,123,125,222,179,143,99,165,92,38,196,14,123,177,176,145,59,255,93,16,11,93,82,6,31,77,36,206,7,131,144,161,20,178,73,123,145,190,253,155,31,71,137,131,34,172,26,13,217,40,8,2,138,133,131,33,189,93,42,169,219,10,63,36,185,110,133,240,10,0,155,123,4,95,153,53,43,82,37,104,243,34,11,84,198,253,4,147,191,166,173,9,118,129,53,44,52,243,245,9,21,51,147,136,2,40,119,179,241,144,76,169,18,132,227,8,195,26,26,81,105,163,97,25,206,129, +128,195,19,22,94,112,166,174,188,54,16,115,58,229,43,193,36,245,144,102,187,182,82,15,57,223,152,44,24,242,5,111,105,192,68,179,183,29,201,124,144,182,222,41,53,66,153,216,28,207,28,234,182,112,236,75,166,154,227,34,135,144,106,14,39,22,116,148,61,238,158,158,39,70,254,142,222,182,184,39,230,185,123,72,93,7,169,183,222,0,103,167,44,173,126,243,89,60,1,44,111,108,188,111,96,222,246,78,50,189,207,99,178,7,86,74,181,183,69,243,172,232,209,200,74,236,37,209,59,107,78,61,180,210,121,202,144,80,193,56,237,137,163,107,24,219,203,162,99,140,98,192,42,219,23,199,210,52,114,227,8,229,209,36,230,215,194,98,219,29,199,19,119,58,75,231,185,67,158,58,154,195,224,89,66,59,61,114,76,77,104,133,192,220,48,61,18,136,46,28,38,72,38,202,98,105,204,110,141,121,103,4,4,20,199,30,143,235,70,34,69,214,199,9,226,137,165,19,209,16,128,183,227,112,197,104,111,134,90,165,38,21,27,205,242,176,114,5,75,239,8,58,12,200,157,132, +28,222,52,16,132,12,226,175,53,165,138,182,242,201,226,118,20,82,83,75,165,88,224,208,84,149,230,73,79,177,241,161,102,252,247,218,184,87,122,29,207,191,148,21,109,196,176,243,208,137,226,3,74,168,227,91,242,245,40,38,10,35,217,132,36,194,204,119,4,69,33,191,45,83,73,189,82,228,95,25,19,255,234,247,251,238,21,8,252,30,181,81,36,14,39,42,189,197,216,214,42,205,159,41,251,35,179,102,187,214,174,81,96,122,167,190,33,62,71,11,91,178,204,130,142,19,110,240,242,3,174,100,87,83,137,199,49,69,40,34,117,41,141,206,19,157,169,0,194,34,42,173,215,249,211,95,155,91,120,194,22,67,246,80,244,103,253,54,117,79,185,82,250,152,89,60,155,242,181,216,65,87,244,34,10,230,173,20,5,22,166,164,234,113,10,183,218,56,197,138,191,252,108,125,29,209,123,147,101,143,63,229,75,150,55,144,255,51,68,79,212,95,124,93,186,4,172,103,232,22,174,12,206,208,18,122,11,75,17,95,51,82,49,97,107,245,250,207,96,98,110,177,99,211,187,58, +217,172,119,156,233,67,158,146,53,188,148,244,241,142,178,53,178,234,217,131,34,73,87,77,193,198,86,226,96,78,214,227,148,102,125,51,146,103,245,7,94,50,76,73,168,84,229,186,194,232,74,22,152,212,241,157,34,81,169,87,245,134,241,223,197,67,209,2,91,108,77,126,41,253,95,85,176,30,49,160,72,127,115,105,192,143,21,251,100,170,98,24,78,141,60,213,40,63,174,39,18,133,149,194,162,164,223,33,59,85,68,108,140,19,194,81,6,185,134,138,86,104,202,121,178,238,143,104,101,217,84,174,172,234,17,221,41,132,49,73,37,175,114,165,73,37,38,247,171,248,89,21,109,26,124,14,56,200,86,135,56,77,189,178,43,61,118,5,191,57,76,73,10,241,137,56,196,228,211,130,198,123,2,100,54,243,120,202,228,149,30,139,222,1,87,139,25,191,114,233,134,75,76,170,198,228,172,239,197,144,240,138,133,129,11,168,150,64,45,242,189,246,94,189,21,135,66,11,46,10,95,163,120,144,5,47,96,155,204,117,59,67,158,143,87,181,130,209,70,199,128,216,187,24,168,201, +41,35,55,90,115,224,17,138,222,166,83,39,71,68,146,95,99,7,53,148,63,11,100,82,82,138,196,41,43,78,85,175,28,71,140,233,18,129,136,68,105,83,58,71,52,166,10,22,69,168,84,222,235,223,218,136,109,225,9,83,244,132,250,203,31,245,219,116,222,89,93,76,71,134,99,46,234,219,137,178,145,140,46,117,76,59,30,230,48,109,13,229,147,10,121,140,181,95,26,126,49,148,229,141,190,233,78,150,35,190,95,190,94,79,112,144,122,59,124,88,92,246,68,72,116,225,159,236,237,59,185,236,118,191,52,231,80,65,127,78,254,218,166,63,74,234,183,173,244,78,98,183,129,216,176,198,23,163,159,68,153,186,211,155,37,184,71,165,164,70,86,124,231,9,230,197,168,170,145,52,182,33,233,253,12,228,73,231,88,70,178,88,142,206,87,136,130,103,200,148,190,48,220,76,163,89,42,199,226,215,204,193,39,36,131,106,199,232,15,227,105,76,139,21,116,164,190,45,56,131,224,247,40,34,93,98,72,81,166,180,180,142,218,231,139,132,242,67,146,94,162,227,77,244,120,190, +60,21,97,2,89,18,158,164,95,242,32,205,72,97,196,162,239,226,248,221,24,36,216,252,198,97,225,171,90,72,10,230,207,40,38,253,55,46,90,79,64,2,82,10,198,139,141,149,66,205,35,150,137,160,66,77,250,30,63,14,27,13,159,100,246,160,105,139,9,137,187,181,68,157,155,82,126,35,253,32,160,219,5,202,17,73,46,92,112,199,161,3,69,3,103,139,47,223,234,31,147,197,194,196,215,177,54,9,108,100,97,92,191,217,226,215,184,4,172,40,198,77,136,33,188,86,209,114,158,207,106,23,191,2,80,49,32,187,213,224,130,52,242,62,247,118,129,180,90,46,9,202,225,57,86,32,21,227,224,61,221,77,100,59,216,234,244,129,78,85,9,84,140,154,206,32,157,98,42,81,19,69,110,38,254,25,141,214,224,240,237,68,172,160,17,149,42,90,27,225,45,168,61,60,97,228,133,191,172,138,75,3,49,166,75,62,151,108,91,207,89,135,124,35,85,144,251,137,137,130,113,207,249,200,110,199,198,53,156,152,117,227,242,31,119,197,136,116,198,219,75,185,51,157,103,255, +150,246,184,51,213,75,245,126,32,112,57,211,115,208,232,122,18,172,24,224,177,185,253,166,168,174,47,221,226,14,61,154,14,99,47,93,160,162,94,211,131,89,60,255,16,39,233,141,105,43,186,235,210,210,213,28,35,186,59,210,214,193,220,147,60,26,210,115,136,105,90,104,165,142,98,227,95,231,181,22,91,113,212,81,155,6,154,200,243,6,71,122,39,72,28,105,190,209,116,158,51,10,38,187,100,158,41,50,36,110,84,122,202,208,152,220,115,228,163,128,18,209,83,198,57,107,98,74,215,24,240,155,169,56,151,20,83,146,52,61,105,196,77,244,232,129,2,237,80,239,27,142,139,233,97,18,41,24,5,44,173,72,144,77,147,73,34,139,32,84,195,13,26,159,56,211,19,171,67,231,86,25,44,117,114,40,130,176,76,139,246,170,115,118,130,143,209,107,240,2,205,220,156,159,8,21,6,138,136,86,93,175,53,246,164,189,120,212,213,74,0,164,50,234,69,136,219,161,177,136,76,32,88,53,54,112,230,17,113,146,221,166,241,180,28,69,14,77,115,56,199,17,92,203,25,14, +11,132,252,92,158,119,25,241,0,220,60,80,202,101,66,109,15,131,115,91,134,128,164,131,168,129,193,32,229,95,167,184,183,202,230,108,201,253,38,13,79,239,30,137,157,106,120,29,52,137,96,154,217,24,45,64,209,27,13,92,80,182,231,107,129,124,51,87,175,155,140,174,222,32,19,83,113,230,58,118,177,33,41,161,212,26,189,35,182,3,0,143,18,84,170,96,77,103,73,180,54,241,223,124,38,194,75,93,58,104,194,228,246,185,104,91,251,167,105,113,51,138,59,177,77,121,97,54,241,11,175,12,219,164,24,77,79,91,218,137,47,65,166,42,237,85,63,123,14,101,185,162,215,107,241,118,145,116,169,251,222,67,193,237,12,130,71,215,225,8,177,102,15,204,161,193,43,65,42,164,42,173,89,255,121,104,110,83,146,216,155,217,123,139,47,189,49,204,45,188,8,3,159,29,17,148,99,68,55,77,49,124,149,103,164,54,234,120,48,64,40,229,26,41,213,70,31,92,16,79,121,117,35,149,197,246,182,240,158,72,202,22,75,34,25,38,153,199,9,244,225,35,16,81,33,173, +229,142,194,229,36,158,197,243,84,1,195,27,238,253,187,87,208,32,143,20,82,34,90,170,160,103,15,36,225,22,34,124,39,33,229,37,121,233,35,143,147,171,146,156,244,37,106,212,104,1,22,65,53,139,43,9,202,73,76,18,55,21,14,137,194,88,87,41,16,212,58,6,33,233,112,88,195,143,68,14,43,248,144,114,100,160,60,12,144,243,151,107,57,178,80,154,17,226,225,54,87,73,114,191,230,45,102,14,183,152,86,39,223,120,56,209,99,103,16,54,1,115,86,0,69,16,39,13,47,17,83,116,107,200,81,132,204,200,69,82,98,227,133,57,71,241,43,47,247,221,25,37,49,86,95,47,210,105,1,255,174,208,58,10,137,98,113,73,67,137,92,152,112,164,88,197,177,68,88,207,207,47,42,90,74,196,12,111,153,30,34,232,163,190,13,56,81,17,184,183,129,73,68,4,228,123,206,120,148,76,80,169,229,31,107,244,252,113,42,157,142,17,130,72,148,38,39,242,70,187,42,119,241,84,72,231,245,254,166,77,29,23,154,176,69,91,40,120,251,57,191,75,167,191,228,200, +148,178,93,27,169,64,75,126,166,91,203,209,197,5,180,46,109,31,148,50,93,110,169,6,45,177,244,162,188,125,126,187,237,33,61,198,198,180,71,62,250,153,219,26,103,169,183,97,228,254,153,210,63,239,133,58,122,242,15,227,201,100,85,197,245,32,255,54,209,171,37,184,240,35,108,188,228,137,29,226,4,45,65,199,74,28,68,113,189,200,220,149,222,249,113,187,40,64,37,182,226,7,117,156,141,22,89,137,173,244,193,226,141,7,69,88,130,107,16,63,152,226,105,66,3,33,58,199,57,210,121,34,90,32,136,212,241,40,161,175,17,185,227,15,226,9,39,165,167,12,164,209,223,179,26,97,47,34,198,169,18,66,74,68,79,27,228,220,17,31,174,136,23,126,8,105,194,154,208,38,196,130,133,129,37,29,143,15,106,102,137,120,82,224,120,73,40,253,88,20,82,81,237,68,130,105,24,79,8,83,63,215,106,111,201,100,59,3,141,243,22,177,178,153,114,13,178,211,96,153,91,47,227,32,161,78,166,190,159,150,194,192,84,89,40,244,194,106,215,137,112,23,121,106,152,250, +122,185,199,21,128,197,75,3,251,168,17,8,247,4,92,70,164,52,172,1,152,110,25,173,149,211,53,223,188,234,198,41,202,147,71,126,182,53,117,242,111,60,205,86,191,224,253,207,38,84,131,119,41,156,87,35,20,16,5,42,22,145,49,74,22,141,236,63,71,162,19,107,110,66,42,103,56,203,124,87,247,91,97,29,32,67,69,87,192,19,186,24,186,83,56,145,150,137,58,5,100,208,245,250,241,168,0,205,218,48,122,181,112,81,132,80,104,45,209,247,119,223,177,63,38,115,134,68,50,68,88,224,141,200,188,194,24,223,117,231,96,169,133,201,21,163,197,14,231,115,58,202,136,208,117,171,176,29,111,140,86,166,189,154,247,153,29,26,215,240,53,48,79,21,55,62,161,190,85,218,46,63,194,241,132,229,8,82,173,119,81,27,133,213,28,162,73,23,99,207,233,178,239,249,182,77,215,255,192,207,197,235,219,255,109,142,169,206,87,229,67,181,94,239,61,170,25,123,189,15,168,218,203,249,62,161,14,157,172,26,115,12,109,103,54,135,254,149,154,116,182,154,227,72,67,99, +189,216,157,201,123,78,243,183,208,148,28,219,52,217,171,188,46,190,60,169,143,54,103,91,48,29,146,73,205,218,105,218,42,11,246,224,21,227,118,58,79,91,157,46,152,195,172,132,78,212,70,231,9,242,67,152,162,51,181,213,65,157,193,22,6,233,84,101,55,58,19,240,1,77,35,48,14,246,201,73,187,48,116,235,216,194,50,142,150,4,213,181,147,224,152,95,91,248,146,251,138,17,253,104,238,23,209,121,178,142,64,183,24,16,118,181,82,193,206,13,175,112,169,15,234,132,57,234,117,148,29,113,50,49,158,84,81,186,93,2,251,118,116,188,249,177,226,169,254,92,65,63,236,136,174,33,141,195,170,17,46,230,172,129,92,94,19,133,110,123,239,42,106,57,188,45,109,92,125,217,51,69,69,202,233,182,16,131,183,114,152,249,253,61,90,73,196,192,228,247,78,70,131,150,251,120,176,246,219,156,152,21,118,187,82,209,111,53,9,130,25,42,147,208,72,218,90,189,17,77,65,167,150,4,239,230,84,11,110,253,86,64,68,139,110,132,11,6,36,198,67,89,165,234,52,179, +193,181,158,36,66,32,252,62,224,22,58,34,38,148,220,68,175,9,190,248,14,184,235,152,206,88,226,55,195,111,145,55,36,51,198,148,125,151,253,169,138,201,67,140,190,162,71,241,188,95,75,233,96,38,209,180,67,155,9,245,100,99,58,68,213,191,201,115,235,22,161,215,23,31,217,32,36,78,71,21,183,201,111,151,108,60,134,217,30,79,28,218,24,187,222,228,110,119,0,164,78,255,217,38,227,99,253,179,205,185,179,199,226,18,92,140,222,21,174,253,224,122,111,208,147,104,121,113,122,61,64,16,94,199,72,108,248,94,9,112,50,194,255,48,75,234,85,22,0,3,200,74,104,173,226,57,78,207,15,64,32,64,100,184,130,80,146,70,110,20,158,198,31,4,132,35,160,52,188,65,52,57,164,127,113,136,205,147,170,252,93,192,47,8,8,7,67,136,40,9,45,169,155,227,123,6,255,9,64,135,129,142,240,9,81,37,201,229,196,57,105,78,148,3,252,49,86,39,210,73,92,162,79,135,128,187,173,107,205,0,1,198,134,195,241,220,147,88,244,187,21,247,127,165,124,120, +170,3,34,137,118,36,10,79,203,215,102,135,133,136,136,87,58,206,125,10,80,196,150,34,25,132,9,48,21,87,51,146,16,114,201,139,93,32,8,67,97,25,187,242,178,1,159,112,125,30,6,131,57,53,142,82,160,117,250,137,105,113,164,3,150,61,41,107,6,130,59,61,120,64,120,246,89,204,224,183,70,109,231,26,56,241,248,182,46,45,194,133,47,130,100,213,236,115,156,53,252,39,117,140,138,188,187,187,37,233,240,113,112,168,49,93,217,21,68,211,76,218,189,170,191,229,181,130,179,156,87,247,175,35,227,1,54,31,119,1,237,78,163,193,34,81,167,24,116,221,78,63,233,149,178,58,204,206,143,6,46,30,148,89,163,46,122,254,102,236,141,213,116,206,150,220,17,145,21,156,17,145,51,199,245,128,174,28,44,161,115,245,92,52,140,197,58,228,91,248,40,227,180,54,228,75,248,100,33,164,50,108,93,103,148,62,101,41,38,161,30,57,170,180,183,252,254,26,244,213,201,124,156,174,199,151,232,37,237,157,202,180,235,49,255,67,109,88,73,219,139,43,217,46,216,252, +21,103,180,3,23,197,57,85,219,182,145,187,204,158,153,238,61,168,227,153,204,218,14,89,216,163,161,153,161,219,166,195,22,34,117,52,103,206,54,235,208,216,130,31,181,25,160,45,70,222,115,162,119,130,20,226,200,24,109,231,61,195,60,48,69,230,152,34,67,47,117,103,162,44,141,205,229,222,63,6,167,40,221,142,50,178,166,223,199,149,245,77,133,233,112,35,51,52,245,100,2,172,50,171,44,182,45,108,13,155,67,97,123,216,34,54,137,205,60,177,81,108,22,91,168,180,119,14,108,67,66,152,184,64,36,25,92,169,164,159,92,171,37,217,238,217,79,91,69,94,122,112,88,198,41,206,74,122,122,87,10,177,140,11,74,85,233,32,122,108,125,130,154,229,7,22,184,146,130,31,3,68,34,161,159,82,174,81,233,169,55,232,247,162,209,128,60,9,249,253,58,151,222,135,199,203,19,236,19,165,102,167,32,199,35,137,75,89,91,162,88,241,100,110,74,232,22,44,99,49,233,90,144,75,171,157,147,202,159,114,248,200,120,222,166,62,165,140,20,77,32,191,6,168,89,244, +79,125,252,174,219,240,186,81,171,29,114,33,155,161,98,114,174,180,161,180,82,78,250,238,172,27,78,19,17,209,47,120,111,28,74,34,168,7,106,73,47,229,181,124,86,54,141,69,104,194,142,21,101,198,21,158,41,19,211,156,33,157,209,120,27,49,106,42,44,97,143,163,35,44,10,44,157,246,60,55,244,217,110,205,71,147,135,179,218,180,55,82,226,67,36,99,221,73,48,68,122,214,214,73,91,203,175,73,59,78,37,191,46,63,73,108,226,126,197,108,219,195,145,217,240,217,159,163,149,147,63,152,127,39,85,66,174,13,217,121,129,190,82,244,158,73,219,70,110,18,105,4,170,247,160,247,23,94,164,170,199,132,110,21,77,36,78,147,14,89,117,228,94,31,33,211,170,147,97,11,182,119,70,220,6,218,117,232,66,237,109,195,8,145,150,29,150,66,69,25,58,207,29,222,81,120,9,77,173,111,12,78,218,208,12,145,103,11,173,168,200,23,245,75,11,234,173,115,64,158,54,76,104,237,146,65,42,74,67,235,99,212,33,63,50,64,149,11,150,197,218,212,156,89,239,249, +237,176,22,177,161,73,119,102,210,82,89,175,156,77,66,106,91,163,212,44,131,234,159,95,105,86,191,73,226,245,220,180,240,210,157,117,29,187,149,9,113,137,111,137,255,231,99,52,195,185,228,39,68,72,41,195,80,30,8,9,3,196,41,66,185,163,176,193,148,12,190,37,49,171,45,221,4,106,160,206,42,100,124,248,171,132,11,133,191,76,168,132,8,39,228,146,231,35,34,209,176,11,106,209,22,145,7,236,54,10,145,109,133,92,76,204,145,184,202,195,123,39,105,212,239,183,214,33,32,136,255,56,62,236,6,40,1,198,59,68,240,185,224,121,108,209,15,253,0,213,212,52,128,177,40,151,56,148,234,173,182,51,90,83,42,98,111,14,45,94,36,42,148,175,249,23,108,7,131,152,212,247,195,249,168,221,140,166,163,124,146,207,106,34,202,154,67,177,51,38,183,146,39,253,22,153,137,37,37,106,127,34,73,131,174,11,103,212,255,185,62,109,208,106,112,189,217,156,14,73,55,91,169,110,173,38,161,150,80,202,180,213,163,134,107,214,86,72,87,203,24,150,108,84,68,120, +94,101,159,243,122,59,98,188,72,251,93,88,63,97,163,165,147,86,255,161,104,110,237,169,204,139,57,68,72,37,111,228,94,36,101,5,164,23,126,156,35,9,243,100,76,248,238,73,96,243,229,76,196,142,27,31,72,185,101,126,19,178,147,199,146,13,233,32,195,10,93,112,68,129,46,86,36,210,74,82,67,118,206,115,162,148,57,162,192,18,155,19,148,39,41,35,107,231,31,68,193,41,76,135,25,104,143,178,131,151,160,29,144,227,184,172,152,159,8,82,152,48,29,107,192,133,201,165,177,28,225,64,88,16,10,13,194,131,208,35,228,101,132,29,33,70,152,17,3,55,66,168,144,159,147,176,124,189,187,145,41,241,229,250,91,27,25,233,22,112,116,44,81,140,132,10,149,197,43,161,214,228,26,224,32,66,236,72,205,146,70,19,183,15,46,217,216,62,202,212,231,18,116,244,183,54,184,132,71,32,196,49,15,145,44,156,88,4,128,91,153,4,170,242,85,139,192,154,74,43,228,23,19,184,199,193,59,160,211,104,22,97,175,151,94,201,127,101,149,94,123,20,15,168,86,183, +77,38,38,231,77,231,68,227,214,15,10,80,189,248,219,142,130,158,10,218,146,66,193,77,120,100,201,79,36,125,250,156,240,98,77,45,186,30,207,5,232,178,2,201,153,84,239,180,163,222,152,50,17,119,113,40,209,18,249,211,177,65,179,24,103,35,159,196,199,229,112,212,109,70,198,81,54,41,103,109,145,229,206,145,216,57,217,28,200,155,94,255,211,145,142,206,219,19,194,62,135,134,41,120,124,109,207,70,125,222,9,145,75,118,107,176,153,6,148,83,230,61,202,199,111,153,182,74,212,142,255,135,85,164,98,229,185,167,184,138,219,240,3,236,216,162,218,237,43,31,211,220,116,170,55,124,121,54,158,252,95,228,142,228,21,188,60,1,174,64,239,226,246,191,160,172,208,194,66,237,210,32,33,62,151,9,217,200,253,20,40,135,196,107,194,54,6,63,162,10,168,97,87,1,9,22,189,225,248,130,192,88,9,82,192,202,120,78,152,42,67,230,112,124,125,128,114,4,85,96,107,188,195,246,167,223,12,158,99,134,249,222,64,47,68,249,42,98,32,253,152,74,196,235,37,130, +127,115,168,131,81,251,252,192,0,84,254,1,157,65,105,208,26,244,243,6,5,65,67,80,113,7,58,206,241,96,61,248,53,54,147,57,170,140,238,103,101,74,56,55,215,90,5,195,227,232,148,125,58,43,253,176,142,2,139,161,32,185,217,38,197,112,182,132,159,183,129,73,253,99,64,22,171,196,80,250,124,71,189,135,134,131,162,0,105,192,238,160,137,40,164,174,32,96,83,186,159,78,158,182,170,189,152,119,176,44,217,128,193,183,125,112,219,208,16,41,9,19,158,32,70,125,217,197,251,249,38,171,217,184,230,244,38,91,163,16,42,201,109,251,209,71,205,104,197,106,230,204,40,217,106,11,215,134,66,112,248,77,53,105,1,2,13,72,3,20,192,141,7,151,129,46,45,101,174,143,74,163,215,37,88,208,83,221,90,212,72,40,244,211,201,176,233,165,34,176,57,153,143,4,74,30,232,247,137,49,203,23,197,226,82,48,248,36,168,21,140,21,117,206,146,246,49,142,0,157,147,46,186,227,101,3,136,60,44,161,118,189,38,237,224,223,156,142,202,36,214,192,209,92,246,114, +53,17,185,102,205,199,37,157,81,202,176,55,124,214,219,153,245,138,76,203,171,175,118,240,142,190,248,128,115,215,219,251,182,158,248,92,123,247,141,29,9,203,135,55,15,254,194,95,128,137,78,11,186,187,83,30,141,110,11,190,203,82,83,69,255,159,43,210,182,253,224,63,87,76,209,33,186,105,176,133,56,138,141,169,179,206,250,23,53,81,71,109,234,173,35,247,11,28,232,157,48,153,211,204,12,157,185,191,8,186,16,216,34,73,34,78,53,159,52,140,142,221,255,174,71,170,220,99,104,75,205,158,223,61,117,106,161,117,97,131,62,178,76,73,54,173,50,107,110,195,111,6,180,94,48,223,180,179,140,210,247,154,101,52,95,52,167,132,52,120,152,188,52,204,226,160,84,41,18,93,231,208,145,206,203,32,156,88,137,45,236,204,131,221,11,34,183,92,150,103,127,162,63,51,54,240,87,239,143,173,228,63,203,89,12,101,15,232,193,61,90,141,224,71,133,14,73,90,100,62,83,131,123,122,241,200,110,91,197,86,169,59,238,198,172,33,16,134,119,248,181,254,149,217,223,224, +252,174,182,150,25,36,103,85,71,226,182,199,59,233,164,89,30,73,16,174,26,13,219,97,143,56,201,68,148,251,35,97,218,11,204,148,32,100,58,202,145,40,255,201,244,123,98,206,222,178,247,72,181,230,53,166,254,164,253,197,56,42,83,42,29,123,61,41,132,67,134,97,41,19,89,163,154,52,195,202,208,227,103,67,90,252,104,3,100,59,28,38,211,108,62,171,11,226,225,163,7,188,152,202,217,194,201,21,34,45,186,232,163,253,204,70,30,182,184,253,206,67,103,133,218,235,217,243,197,163,57,237,228,200,99,130,205,154,79,71,202,104,151,121,183,224,181,204,27,215,128,201,114,246,121,115,124,235,238,119,135,29,109,177,71,134,122,13,200,132,2,90,254,31,164,236,219,215,114,171,170,63,87,103,152,217,116,25,195,126,40,255,207,13,121,33,63,31,23,13,188,168,3,242,19,39,13,178,144,251,138,62,68,198,85,3,173,218,159,27,134,218,184,177,136,207,129,220,72,2,131,42,84,134,45,112,102,126,124,17,52,129,102,168,252,128,37,48,135,158,176,12,26,167,186,113, +112,111,62,252,17,68,65,104,24,253,140,48,80,133,110,176,56,10,87,76,116,117,204,65,67,19,10,192,194,56,133,2,183,192,49,112,13,28,219,129,123,20,140,70,17,103,41,53,145,117,160,177,108,186,70,38,252,69,252,148,100,79,30,114,144,189,101,51,134,84,8,40,160,69,208,217,43,204,30,249,14,48,141,31,14,200,189,97,92,212,110,98,56,192,225,136,149,233,150,107,30,238,167,68,64,164,246,214,93,200,32,114,105,77,129,1,183,141,84,184,144,60,74,237,113,252,213,159,40,245,47,107,12,212,202,204,176,60,46,174,180,74,7,66,137,217,29,15,83,110,232,157,105,67,106,205,85,206,109,162,84,197,227,132,119,183,90,34,101,20,40,244,76,235,161,4,235,55,229,120,180,0,206,67,114,159,149,224,34,60,232,109,64,127,192,113,236,76,170,79,250,69,103,14,136,152,180,61,117,152,68,217,104,245,63,138,10,187,9,174,159,206,33,182,35,142,243,211,180,156,149,11,42,73,97,15,135,144,207,200,82,62,83,116,39,203,40,114,171,232,98,140,250,182,49,99, +216,98,247,47,58,43,7,98,175,100,201,29,13,251,178,211,32,139,236,87,178,27,185,170,89,243,201,46,39,132,50,110,38,140,6,203,221,103,138,157,23,61,176,229,30,181,100,239,216,128,220,160,85,238,208,247,95,185,8,75,111,101,41,207,139,56,68,112,70,43,240,133,27,13,121,164,46,232,174,136,89,253,121,12,216,142,31,149,112,121,163,95,3,178,179,70,151,5,206,192,179,2,90,51,120,129,51,242,227,16,18,30,22,88,2,203,49,250,131,42,214,198,65,120,108,180,159,1,48,129,230,10,100,1,79,10,119,216,122,145,53,246,197,253,242,88,65,63,4,136,130,208,121,72,3,126,84,184,51,43,19,64,10,66,195,234,96,184,158,222,87,248,57,31,230,104,208,72,76,226,100,25,226,53,80,207,115,238,230,71,31,134,90,249,81,167,26,43,166,225,231,138,217,36,212,170,101,49,36,66,40,17,135,117,89,203,196,107,150,8,199,183,45,148,163,209,175,132,174,200,246,105,39,55,117,26,30,176,192,54,8,135,88,210,255,121,19,127,251,204,205,13,18,83,236,218, +166,192,83,208,41,230,86,246,52,228,139,92,201,100,249,204,75,59,72,135,58,70,13,202,198,170,28,18,132,131,128,146,229,40,233,248,107,211,86,56,4,215,169,1,176,70,78,98,154,128,165,142,149,76,97,238,98,34,47,51,127,78,97,73,102,87,83,234,51,120,175,216,92,156,166,188,85,55,90,187,219,171,36,83,140,98,92,153,122,208,106,253,20,52,45,67,246,165,65,204,7,178,58,53,103,230,156,101,45,73,134,160,120,75,205,173,118,48,76,38,5,105,94,19,108,240,83,164,161,148,45,154,147,67,186,64,33,185,233,226,119,155,228,26,177,153,3,117,156,171,10,181,183,178,224,14,51,115,217,41,144,68,182,138,181,28,50,41,158,197,112,128,140,120,54,61,224,199,209,209,244,209,210,87,117,17,199,206,127,191,203,51,224,83,78,170,184,74,6,242,163,247,41,127,63,53,106,175,251,115,5,172,24,216,93,253,7,248,139,97,64,111,22,223,254,71,58,0,178,224,59,143,79,252,243,83,5,180,176,59,163,210,183,254,91,214,194,162,119,58,223,240,39,11,192,185, +208,57,34,207,226,163,188,127,166,191,12,203,252,217,17,157,137,151,180,87,216,122,161,54,134,211,55,250,10,207,211,19,43,29,221,28,121,76,50,75,222,178,78,44,114,84,11,42,201,52,236,115,219,193,174,157,172,133,71,84,185,48,31,214,6,175,204,238,70,204,99,33,92,211,186,244,180,48,91,179,33,38,7,132,22,247,159,65,148,102,220,57,203,207,226,81,150,238,229,143,96,188,172,79,38,239,139,71,194,197,84,210,236,187,164,22,176,241,233,112,202,107,237,146,100,2,176,31,147,26,63,7,215,205,69,237,220,157,198,133,96,34,226,247,44,254,151,58,56,55,149,49,2,217,22,197,63,180,163,61,116,11,111,108,237,234,130,12,27,37,60,53,150,182,92,229,60,244,251,152,225,22,17,247,37,113,228,162,30,163,81,49,61,5,36,104,43,135,41,120,220,219,178,147,109,201,145,21,122,251,98,48,71,66,138,161,143,19,169,210,246,70,19,52,197,35,126,160,239,75,225,161,58,213,103,166,162,101,35,40,251,140,28,137,131,157,53,151,148,242,118,90,48,193,75,145, +46,186,113,184,87,97,165,118,47,49,236,134,111,176,199,227,144,180,20,182,232,131,194,229,103,250,180,23,147,241,196,6,115,221,175,161,208,116,211,86,11,76,211,171,199,55,243,60,175,148,99,215,213,236,122,156,162,87,174,191,237,1,83,107,222,85,146,234,186,241,190,90,43,183,251,184,23,179,78,215,199,115,58,202,185,64,211,7,115,183,15,166,78,143,183,251,188,251,179,245,146,151,250,106,93,142,233,123,22,237,181,190,90,103,78,113,51,253,229,70,63,15,197,187,116,151,255,189,72,101,217,92,136,23,221,249,48,222,166,219,252,184,45,246,165,201,172,149,139,232,120,85,159,95,111,240,158,208,70,222,168,59,253,188,51,206,167,137,44,234,151,91,231,30,61,119,13,67,243,24,49,117,37,199,197,249,24,129,228,71,190,243,26,31,229,103,68,63,223,121,15,110,186,106,102,73,16,209,109,97,150,40,217,174,1,164,171,142,13,89,92,113,13,118,141,242,48,133,89,46,7,223,246,239,14,65,28,28,219,140,4,223,196,167,103,251,92,197,168,179,122,138,142,188,246,134, +184,122,98,178,52,177,55,206,237,101,139,158,205,111,103,125,39,173,168,33,66,151,82,29,168,145,231,175,102,83,99,113,57,75,64,237,211,178,183,16,251,213,243,254,231,87,152,177,73,198,93,197,255,196,59,28,215,153,152,25,106,210,75,136,221,183,5,229,247,38,164,223,116,45,195,241,42,120,174,59,37,209,124,107,95,55,58,90,114,173,208,79,6,125,164,150,80,8,57,144,100,187,39,26,244,232,30,169,27,179,119,172,79,245,185,46,103,153,72,194,49,227,111,4,230,70,59,22,38,87,209,82,84,11,22,248,4,216,194,73,239,123,148,195,60,191,201,236,151,0,230,48,213,98,142,15,48,42,164,100,115,250,176,239,87,215,156,188,182,89,243,81,206,5,133,54,110,38,48,118,204,188,77,237,219,202,17,217,108,112,235,0,45,133,155,101,119,238,127,250,181,134,212,23,17,219,189,103,110,193,104,211,227,217,69,247,122,172,246,245,26,247,135,76,110,244,205,218,73,246,137,40,157,59,125,47,90,135,125,57,74,199,190,153,158,205,237,175,217,19,61,88,4,23,251,118, +89,247,251,82,20,141,109,52,184,103,15,231,57,59,104,243,43,97,57,250,132,232,217,204,211,58,103,228,43,145,222,47,208,63,166,142,132,204,127,231,108,254,112,8,66,100,166,182,177,143,130,214,198,169,253,1,43,100,69,42,39,110,33,179,81,83,12,181,29,173,151,158,94,25,71,202,38,152,6,0,66,86,75,115,137,69,11,51,177,17,7,218,183,46,167,14,54,45,75,62,49,196,111,157,215,33,249,108,230,3,239,228,239,46,217,115,140,190,224,114,85,252,149,59,248,119,133,85,143,30,48,1,109,100,183,142,251,156,15,193,182,96,94,88,6,190,173,78,147,122,243,176,170,253,3,87,13,7,72,108,10,165,233,7,170,247,105,101,62,77,174,218,81,249,146,129,58,235,105,35,241,109,62,181,90,225,75,18,142,112,13,204,143,130,163,246,241,147,254,212,52,128,43,160,80,14,58,198,229,28,63,96,53,104,44,172,61,42,120,10,7,80,244,220,73,254,148,202,184,25,159,144,104,124,25,82,161,157,168,197,173,96,75,231,72,113,237,139,227,175,224,206,157,230,220,74, +18,143,29,13,192,243,99,97,46,205,62,55,197,4,142,136,34,11,165,212,241,139,121,26,177,45,250,100,66,26,19,87,45,246,176,32,155,66,83,118,99,72,254,155,57,93,246,38,234,214,113,87,184,137,218,198,221,134,198,174,26,55,39,220,202,57,102,149,15,175,28,185,185,110,83,238,208,131,238,236,233,184,127,209,20,88,181,70,107,86,255,147,249,50,237,253,83,230,203,158,169,178,151,47,103,102,127,206,200,53,199,7,251,184,108,93,90,211,132,163,90,177,91,245,25,245,121,163,41,74,61,153,224,153,163,46,154,237,153,178,163,188,116,49,154,210,13,27,114,102,204,171,243,142,116,204,182,168,206,142,202,188,37,125,198,218,148,111,215,1,76,68,180,144,42,189,62,85,73,79,108,173,49,223,128,233,110,99,167,110,72,54,10,7,174,106,68,130,236,20,41,46,67,186,122,27,167,14,113,43,228,147,22,29,172,17,115,94,64,175,14,66,180,121,155,108,246,136,222,229,148,18,131,181,21,24,84,247,96,119,86,219,123,29,252,37,184,64,164,150,156,10,153,183,251,38, +20,204,101,32,141,82,203,224,41,235,138,108,57,149,75,202,95,224,254,28,55,118,107,249,0,157,208,113,245,251,82,114,66,21,255,197,44,47,233,221,237,94,17,47,61,165,48,25,172,4,247,35,176,31,13,128,153,68,8,75,120,162,179,143,123,103,89,248,138,105,29,235,167,17,130,156,45,160,20,200,222,129,77,8,108,214,219,73,165,104,221,137,208,209,40,252,218,43,8,179,243,140,191,9,102,49,80,96,238,3,210,236,16,92,192,142,71,232,254,174,12,113,163,84,185,169,82,82,13,95,13,108,204,198,177,50,213,103,250,130,101,197,207,135,128,120,199,0,152,61,149,150,242,2,36,103,15,9,201,88,170,70,206,157,110,88,214,137,218,166,79,155,227,154,148,105,183,71,29,133,44,206,114,50,226,69,255,60,235,137,213,62,111,6,102,182,227,184,203,216,215,70,253,90,13,44,211,174,199,203,178,93,0,154,109,163,86,172,255,104,52,183,125,253,250,103,127,91,151,107,190,31,179,181,223,195,1,222,167,2,59,152,251,61,178,79,234,181,82,215,171,7,29,171,168,200, +142,230,201,181,47,196,169,100,90,171,185,186,90,199,67,55,73,5,83,163,29,206,237,110,93,136,35,73,53,245,1,209,102,221,166,199,188,147,22,158,209,23,179,163,194,158,53,158,93,12,48,72,20,111,239,105,206,125,72,89,162,180,122,187,196,89,28,204,205,19,242,189,143,125,41,80,89,106,181,110,105,144,153,229,180,2,134,66,159,148,2,143,241,214,8,17,86,7,88,160,75,52,0,206,96,102,225,146,180,210,30,236,132,218,9,2,189,6,23,56,116,6,90,135,123,59,38,167,127,17,63,200,185,81,79,129,221,137,172,21,209,136,71,118,72,232,76,189,25,62,26,252,137,165,137,109,238,140,144,80,68,90,85,128,41,69,136,142,100,148,179,112,91,86,11,163,170,192,179,138,77,167,1,227,244,67,21,130,225,195,83,27,75,89,90,31,169,95,195,186,81,136,221,79,192,43,166,138,78,185,240,177,53,2,92,33,148,143,214,252,141,137,94,65,21,29,49,253,137,133,134,214,179,87,35,133,111,36,25,138,55,107,1,54,127,134,184,245,164,143,15,168,60,61,215,179, +54,63,154,166,34,69,24,233,26,211,88,155,218,205,153,233,208,74,185,251,240,134,208,252,224,44,60,55,193,88,207,64,136,189,27,165,205,234,99,223,13,155,76,193,18,44,207,117,154,236,161,15,48,14,213,47,93,0,222,199,160,155,135,244,15,244,97,203,185,131,210,246,75,78,188,182,27,119,35,185,107,250,194,111,148,155,254,176,185,108,211,174,208,227,238,236,101,189,218,125,210,252,241,142,35,220,202,237,139,126,179,150,47,79,196,111,198,80,181,251,53,35,90,181,91,237,137,121,57,163,62,36,246,100,165,178,213,29,155,35,10,107,213,238,76,252,145,10,91,189,155,18,243,177,162,172,44,105,15,144,21,217,81,102,84,238,99,79,162,168,80,43,77,85,117,193,147,152,42,218,90,229,73,85,168,62,54,93,242,180,133,131,226,177,224,213,55,234,74,221,70,39,147,97,220,143,4,85,153,168,6,59,113,171,84,116,94,3,15,71,63,194,33,210,180,65,198,247,22,215,182,32,97,117,132,69,175,65,133,133,20,27,28,113,157,252,4,45,216,89,1,27,91,229,220,107, +141,247,1,193,32,168,166,29,169,230,142,255,33,91,200,219,159,29,14,170,198,142,122,171,144,139,224,52,186,103,10,121,106,255,31,71,87,213,156,60,187,69,255,122,113,119,13,238,238,238,133,224,16,156,82,188,184,187,195,75,233,225,59,51,204,176,135,139,103,146,181,178,100,231,134,175,52,246,175,185,183,44,105,92,106,131,153,228,238,1,214,165,88,67,50,12,220,170,123,79,149,17,76,17,100,223,84,205,72,195,131,21,74,177,186,91,211,45,91,157,113,137,169,166,153,30,52,39,84,64,113,204,77,16,92,146,76,248,194,147,45,225,203,35,105,230,137,60,123,45,246,22,132,228,126,224,109,64,111,80,201,31,50,242,80,134,31,151,6,222,28,158,204,105,138,94,159,140,94,241,66,211,177,201,153,31,203,3,73,52,157,63,234,73,236,133,20,10,216,75,107,73,38,81,80,146,147,77,145,206,160,253,25,108,100,110,206,218,99,45,156,27,255,215,29,254,200,16,136,244,211,17,55,153,188,93,174,220,40,66,176,154,30,201,161,203,117,247,226,252,253,205,70,215,245,211, +118,14,109,55,240,188,150,83,79,125,110,57,79,14,229,243,103,183,227,97,220,129,0,99,217,143,82,196,15,79,161,215,167,98,228,34,114,254,126,235,70,41,162,252,235,225,233,245,109,24,125,83,148,9,180,79,187,36,46,26,164,92,131,213,91,232,182,234,227,48,106,145,97,17,168,154,138,110,112,28,197,147,244,14,115,81,233,3,91,120,161,114,251,60,196,67,133,178,221,88,223,198,187,103,132,222,54,63,10,27,180,125,202,243,203,199,185,137,105,117,123,10,121,198,232,115,62,247,21,104,49,157,4,19,187,222,150,5,107,158,24,110,108,174,172,26,104,37,209,156,229,10,6,3,183,199,108,101,103,96,57,105,23,239,93,193,97,71,111,99,176,31,52,216,69,211,119,70,217,158,137,179,150,197,7,204,29,81,26,158,203,85,220,198,145,233,233,156,39,208,162,165,194,49,60,105,20,95,155,82,221,60,39,99,28,41,61,40,32,250,57,165,143,46,27,128,242,180,129,132,19,222,214,44,80,251,74,27,203,202,102,35,57,253,52,193,41,14,51,227,30,140,84,14,99,123, +127,241,157,76,155,206,224,117,104,100,179,18,93,39,18,22,139,87,75,137,148,219,105,19,16,218,172,211,241,116,140,186,239,126,188,3,253,6,28,182,233,134,214,177,95,29,253,101,191,170,64,46,83,252,166,104,142,79,168,141,229,60,161,195,55,179,148,46,83,101,13,36,1,106,155,74,196,189,25,212,160,55,249,75,186,86,219,141,232,96,34,27,19,218,66,196,240,96,224,76,60,254,113,156,194,120,126,230,173,42,43,153,184,155,97,17,191,136,103,179,128,9,6,142,173,104,171,19,168,69,54,230,230,171,102,242,148,22,214,59,125,57,93,193,87,28,241,84,252,125,251,18,224,183,134,221,5,47,118,27,222,15,128,216,188,147,23,115,125,119,178,35,128,174,199,114,110,238,158,90,219,237,211,49,158,115,66,110,119,187,125,56,126,39,114,94,62,102,163,107,123,2,151,202,88,213,204,85,72,252,166,251,188,17,221,253,243,67,101,165,250,186,228,252,124,50,39,80,23,250,59,182,194,250,104,13,246,6,197,184,133,64,43,112,136,137,100,7,242,72,185,237,201,163,161,112, +112,236,89,153,129,255,51,193,246,223,202,208,169,179,240,124,53,191,31,207,133,168,153,96,38,228,10,192,216,222,210,64,45,6,46,54,110,158,89,68,39,172,4,92,86,49,213,219,110,67,84,83,210,231,113,100,73,253,103,50,4,254,108,107,190,9,199,193,249,234,213,67,250,214,141,25,27,242,116,107,51,216,224,180,186,188,71,225,127,125,43,75,251,146,150,51,31,167,51,249,186,158,85,193,30,242,94,76,15,65,184,160,102,194,57,66,95,102,203,208,84,38,116,135,240,17,66,148,26,255,84,171,22,212,117,83,112,90,40,178,75,191,230,18,79,90,169,14,42,109,221,38,54,214,84,90,41,151,228,18,237,66,171,146,131,149,71,18,69,56,113,107,155,77,195,143,228,15,58,168,172,48,135,28,211,151,47,224,48,27,83,20,107,35,94,177,125,22,132,213,150,214,89,186,12,149,77,144,5,36,139,9,29,49,80,172,152,146,99,19,186,181,216,104,10,30,87,138,133,50,229,159,251,13,187,82,17,8,24,131,27,50,153,244,6,134,153,8,45,36,30,12,219,145,208,108, +186,238,118,17,179,201,119,231,175,66,128,5,234,174,241,154,97,102,89,95,23,211,13,195,225,155,61,183,78,188,101,18,118,207,123,41,161,208,225,10,118,251,84,156,198,1,146,237,231,118,128,225,244,166,157,246,110,159,142,247,190,56,99,211,198,231,249,92,15,68,132,127,217,128,171,61,41,217,88,217,106,219,88,9,66,246,241,34,205,158,215,85,251,70,136,226,102,151,179,207,70,119,58,23,102,79,198,138,29,13,153,25,47,53,34,47,71,11,14,78,199,128,105,14,134,61,12,156,90,131,159,169,132,144,39,54,120,4,166,212,248,47,28,225,139,251,61,86,246,106,32,131,170,154,205,89,72,186,6,225,71,45,171,132,175,164,225,13,173,30,229,71,179,48,172,49,127,195,175,235,47,181,181,193,187,59,248,234,187,140,130,248,3,166,195,233,93,99,112,213,187,216,74,130,211,102,8,149,6,173,108,140,173,28,101,92,86,131,23,238,255,200,167,43,89,175,50,185,80,15,123,133,72,205,148,149,140,214,163,53,211,112,96,26,241,201,50,81,162,61,65,113,34,74,170,125, +2,135,153,125,118,41,138,55,210,52,86,250,208,18,149,27,95,188,99,101,6,115,106,46,129,192,188,176,85,137,147,139,81,82,185,100,68,12,208,162,251,17,231,190,36,10,67,187,204,243,107,197,31,41,248,82,157,174,239,123,20,109,84,38,210,113,92,164,37,17,77,60,65,213,123,155,240,213,205,4,139,149,177,247,41,80,192,113,248,9,7,130,66,183,179,93,45,86,92,177,47,22,135,237,157,88,10,13,239,139,219,143,255,155,147,115,251,17,220,22,29,10,184,227,74,127,21,18,12,58,176,238,194,62,61,119,187,243,23,37,116,138,156,107,123,78,189,254,246,203,192,45,246,247,61,24,125,231,187,187,195,210,197,160,8,158,171,17,246,168,198,8,5,151,195,176,154,222,171,213,66,1,241,114,200,167,227,234,111,171,224,93,79,162,105,35,164,190,10,152,254,123,47,169,0,211,67,117,65,80,15,156,203,67,69,237,142,123,95,231,1,190,189,24,83,47,87,46,130,137,198,18,194,14,249,33,56,29,188,35,223,44,156,167,246,58,35,184,252,146,88,109,137,45,192,98, +215,206,188,111,209,67,205,216,67,227,220,14,35,58,118,155,207,98,41,245,69,158,163,201,126,103,40,4,119,250,108,92,43,79,1,169,144,134,137,52,226,55,192,37,201,107,67,105,141,14,211,140,15,192,220,41,199,209,174,213,77,72,247,0,225,29,245,148,162,238,235,182,72,76,11,156,91,121,228,128,140,251,122,107,237,84,57,126,71,202,210,24,66,215,80,214,116,195,225,184,160,74,203,188,122,56,131,229,198,54,252,179,90,210,162,75,148,223,117,147,164,54,75,178,132,70,90,201,143,219,213,35,146,18,66,153,44,92,250,116,94,120,154,184,203,9,99,224,54,112,241,86,111,46,22,101,238,177,195,126,194,245,17,107,219,152,35,73,24,246,167,250,125,61,158,167,230,54,181,51,70,179,173,45,79,96,230,5,109,241,231,106,151,61,42,79,81,161,113,191,171,230,25,252,52,197,88,229,222,123,178,74,59,37,12,186,79,109,160,120,200,69,89,74,147,80,247,174,43,243,123,222,155,223,63,209,242,138,224,42,26,245,144,98,202,222,186,215,136,137,199,11,245,185,37,238, +150,161,79,39,132,234,26,128,165,81,238,50,91,95,34,95,79,76,22,6,22,189,51,102,43,240,222,190,35,24,114,136,120,222,133,35,82,76,210,34,16,28,119,96,132,50,33,231,235,222,237,148,238,23,234,47,166,150,119,190,157,186,132,254,75,102,189,9,56,142,169,188,82,56,208,249,159,159,78,37,199,235,234,116,59,133,181,227,162,67,144,106,124,232,126,243,173,108,151,141,171,228,26,202,11,170,242,7,172,23,55,187,86,172,251,72,207,101,237,245,154,165,26,103,132,26,177,189,115,216,237,231,193,0,10,101,79,81,121,25,165,13,231,189,37,215,116,42,171,134,197,153,170,104,216,47,143,168,2,63,92,92,20,118,83,119,167,51,9,27,224,158,163,88,4,125,173,102,112,209,13,238,62,195,241,37,252,204,129,24,196,5,188,92,210,74,74,11,87,55,227,154,13,23,195,158,29,199,110,160,138,102,247,163,93,184,58,212,72,183,34,172,167,150,240,143,109,227,78,210,64,154,143,180,134,127,28,248,113,139,26,205,60,138,172,18,11,105,165,168,211,210,60,110,156,22, +58,213,18,32,238,32,44,180,214,122,65,9,52,92,44,243,188,10,79,123,136,12,107,194,29,159,133,184,244,190,7,42,178,17,43,41,141,119,66,205,26,24,38,33,145,23,11,249,69,219,114,243,149,88,147,214,250,192,53,149,176,215,84,241,156,45,176,212,9,142,135,225,107,52,150,162,168,7,251,53,215,118,237,100,149,194,89,248,237,108,99,203,199,23,206,174,123,177,235,189,88,32,57,241,38,108,81,169,150,12,29,188,115,143,152,188,223,96,13,91,210,241,33,49,147,183,207,164,175,183,56,166,54,89,195,39,198,116,251,52,173,159,4,210,79,235,54,141,38,90,174,144,197,170,254,73,76,93,228,166,167,188,26,182,248,201,181,128,228,216,55,19,94,62,167,186,106,187,246,185,4,224,39,241,93,155,186,103,26,28,191,230,45,75,230,58,42,207,89,156,179,147,197,157,214,188,209,175,214,120,169,40,141,148,13,239,110,51,183,167,126,167,106,84,113,67,8,178,31,134,211,71,43,102,243,142,216,66,249,47,182,177,82,14,39,60,21,4,241,98,15,127,125,77,87,63, +12,165,29,79,113,76,72,207,6,158,165,8,212,109,146,90,182,60,63,205,206,179,211,12,121,230,158,233,216,158,51,144,10,161,163,216,138,226,62,239,111,236,200,185,177,216,84,244,207,29,25,12,23,13,233,249,53,120,109,15,175,129,53,151,1,201,50,198,12,49,227,170,133,194,53,112,45,229,230,137,73,130,166,56,125,90,241,177,113,124,136,219,176,247,180,251,74,34,221,78,107,248,138,141,84,179,252,249,208,26,225,194,26,167,248,59,69,185,213,25,27,87,48,238,83,238,196,240,212,50,169,128,2,110,151,85,168,156,21,3,191,144,98,177,243,134,35,126,95,83,143,210,208,224,105,139,27,110,44,234,212,245,35,127,200,121,175,219,99,201,23,150,126,155,115,93,192,231,253,250,55,218,236,12,167,224,227,144,174,217,203,218,107,65,136,113,221,75,63,36,251,46,9,229,228,227,23,218,52,247,26,134,112,24,250,184,200,155,247,135,33,109,72,120,250,147,253,118,131,156,223,221,153,255,124,234,123,79,224,78,222,202,67,228,15,229,104,70,180,254,172,38,79,217,241,228, +189,91,200,22,206,17,27,23,98,67,96,48,118,238,244,219,198,237,27,196,56,216,33,235,46,12,126,187,254,251,134,64,92,147,160,54,8,172,187,110,4,140,19,190,13,109,187,104,23,5,141,101,119,241,227,193,107,220,138,15,239,173,117,91,77,112,128,90,53,209,229,2,246,108,128,111,142,24,134,107,149,61,108,156,52,89,82,8,163,73,159,250,29,21,45,141,185,0,51,183,181,55,42,164,82,22,26,77,46,87,37,18,68,136,203,117,120,44,227,94,51,76,236,22,177,193,227,99,194,66,218,250,90,246,89,227,48,168,230,168,83,91,103,76,32,193,15,162,15,242,25,62,30,171,71,154,120,228,141,20,225,194,122,20,143,1,186,52,136,14,78,210,159,162,43,176,231,55,28,60,134,133,106,179,140,165,225,149,116,32,93,244,91,58,16,130,218,16,104,224,120,135,254,9,174,155,63,104,89,174,204,169,39,66,71,202,223,135,135,242,81,76,38,35,234,18,1,14,136,190,229,167,181,18,229,10,7,184,156,199,8,244,179,239,65,41,37,55,73,115,211,132,143,137,46,93, +25,153,62,176,9,58,209,153,0,112,214,64,174,216,97,194,226,136,18,71,133,158,18,54,212,78,196,119,130,203,162,139,115,201,86,139,84,124,237,176,195,16,76,19,31,0,102,193,242,139,124,247,193,96,111,187,177,200,34,102,55,166,228,169,105,95,33,52,95,117,54,1,222,65,79,38,26,31,155,249,153,71,57,89,34,241,111,194,236,97,207,247,241,157,95,140,185,233,191,252,194,117,121,199,169,179,212,189,103,49,140,29,229,199,194,225,99,70,63,131,223,224,41,66,72,22,206,133,201,107,60,57,95,39,93,215,49,4,236,127,39,33,251,81,9,28,205,57,129,245,40,196,157,183,185,103,111,96,192,213,9,42,19,224,89,12,204,62,28,95,249,109,77,187,186,169,177,170,33,174,221,185,183,213,0,71,83,51,19,11,226,193,90,153,126,49,255,229,19,242,246,191,146,155,59,119,150,55,18,103,52,204,137,156,14,193,5,250,65,60,233,69,224,32,18,172,175,146,167,1,211,35,174,224,208,35,240,164,174,138,180,70,73,211,53,113,64,11,110,197,210,55,247,35,198,211, +52,254,161,172,102,13,198,52,92,137,206,147,34,242,126,202,51,49,214,132,200,137,183,112,162,43,22,182,148,133,97,73,74,188,173,174,156,182,76,184,160,27,180,250,226,97,185,88,30,22,128,213,109,52,23,205,74,131,59,173,107,217,68,182,241,200,250,163,100,202,84,58,210,83,21,116,90,194,250,32,230,131,255,124,105,25,14,154,43,209,153,193,173,85,165,199,64,58,61,97,181,212,153,244,43,28,206,150,139,178,56,220,97,242,81,232,61,43,115,169,181,158,211,88,120,214,78,159,183,39,42,98,196,32,151,56,236,241,95,154,95,26,253,241,86,89,137,69,183,88,55,255,194,39,172,81,241,162,201,29,155,212,47,249,41,228,52,157,139,26,114,44,250,29,197,19,7,144,149,61,136,244,215,84,139,125,186,204,141,171,49,201,215,8,209,179,9,19,196,245,232,135,24,227,79,102,121,219,224,228,186,144,170,59,202,222,67,252,161,243,143,184,45,28,47,76,204,167,184,247,253,119,87,253,251,229,215,178,74,52,76,202,169,255,125,118,118,63,91,210,19,76,109,73,1,112, +62,18,202,255,108,135,172,149,102,38,62,199,35,142,133,38,79,144,249,222,252,124,228,160,29,209,119,106,250,199,181,251,146,152,253,125,62,186,193,232,218,197,41,201,64,10,75,162,103,58,146,45,241,210,113,16,254,92,51,120,126,240,174,39,217,223,162,92,145,173,213,95,165,212,117,54,43,148,75,70,121,50,41,142,229,87,78,68,19,237,148,16,231,168,160,77,215,175,65,81,79,98,183,98,128,11,41,43,175,199,182,114,141,178,150,91,177,154,37,131,126,169,108,102,179,53,74,124,218,175,72,247,122,9,231,132,196,38,41,166,234,166,147,174,10,24,48,12,228,157,21,20,5,171,203,71,0,93,35,221,224,196,27,105,245,230,138,250,31,89,117,27,53,229,162,58,45,107,137,234,80,109,135,193,2,89,36,233,4,211,66,173,48,102,176,77,29,171,121,122,1,83,28,22,233,177,222,224,72,43,40,49,58,115,145,130,225,38,92,61,150,101,249,231,82,167,106,115,131,164,242,15,154,32,33,247,93,68,215,85,102,166,15,222,28,125,65,230,172,84,46,103,120,249,113,221, +42,94,191,252,132,154,215,233,169,109,98,73,101,199,69,230,214,76,29,73,118,208,21,231,242,224,254,59,145,30,106,125,213,180,75,229,44,209,113,224,90,72,175,127,48,130,98,198,208,118,150,119,13,67,65,115,84,142,204,233,66,90,152,116,90,4,95,199,27,206,92,13,61,173,225,228,241,57,239,147,175,147,219,145,247,243,118,2,194,167,160,240,82,229,244,227,193,239,95,118,106,248,100,152,110,251,210,245,229,23,253,44,238,194,187,232,247,209,173,28,105,44,81,225,44,40,30,83,141,130,251,65,158,123,165,211,41,83,100,127,228,231,140,113,252,95,60,233,20,238,198,62,32,223,46,165,197,134,77,136,140,241,137,244,243,81,200,158,73,86,52,70,103,179,244,252,90,146,231,197,178,134,213,121,86,8,236,26,105,205,219,207,200,151,69,44,211,146,227,84,223,185,207,230,78,30,71,224,17,139,91,154,202,91,201,179,68,45,247,27,180,74,7,135,146,38,223,169,16,224,23,113,135,106,87,16,202,70,72,222,188,83,29,150,181,12,57,36,2,85,58,119,81,203,46,63, +44,29,68,52,106,91,160,57,108,55,155,194,166,126,9,151,190,218,121,245,55,219,205,247,203,70,213,199,168,50,202,118,165,154,101,80,203,212,186,105,43,156,132,146,237,36,152,100,144,217,29,99,186,60,215,164,230,10,81,64,62,185,21,140,56,39,189,168,149,201,62,53,184,117,28,5,42,69,83,114,90,3,96,141,153,84,244,212,197,86,58,140,134,234,130,44,151,125,108,90,126,156,194,107,251,138,168,159,184,193,30,21,170,79,19,18,46,10,173,125,238,184,174,67,195,73,131,208,146,109,148,246,247,115,7,122,86,87,52,186,102,95,156,71,18,157,77,21,167,234,122,162,212,3,129,118,63,212,154,196,171,87,246,184,250,61,97,81,143,77,150,126,245,101,47,0,222,225,136,25,177,135,116,67,95,168,180,75,164,114,48,101,168,51,50,202,81,93,254,244,199,64,249,228,247,57,127,247,78,246,159,219,196,34,156,131,151,119,31,124,249,122,241,163,250,223,183,240,179,116,248,68,179,221,206,128,121,188,253,100,23,28,79,237,24,187,52,38,29,207,239,7,42,183,24,143, +255,37,244,229,127,133,108,211,52,243,22,76,125,52,186,197,219,108,102,30,53,205,15,97,110,60,209,92,83,197,230,27,250,102,142,196,107,58,241,179,62,191,58,32,205,153,77,250,103,111,73,95,115,179,39,67,201,171,168,107,81,34,86,80,247,168,34,224,34,94,123,52,43,217,53,72,57,1,174,19,114,91,189,167,8,119,87,125,78,1,30,131,39,26,163,39,236,70,35,253,209,58,10,24,225,64,14,174,64,40,22,28,171,105,80,219,245,75,253,22,24,66,186,42,57,27,207,205,99,73,72,34,210,146,23,104,86,106,206,213,236,77,212,87,149,94,164,87,233,101,189,77,169,52,40,101,74,152,110,220,202,66,209,182,32,10,70,201,188,142,211,145,118,106,149,101,101,153,68,43,89,221,169,75,41,94,94,28,9,153,106,159,35,80,56,173,122,100,45,150,227,0,186,84,53,250,26,137,112,130,162,47,73,187,32,235,1,58,187,57,31,23,51,31,191,191,126,202,105,93,228,83,123,185,201,55,49,191,246,201,28,220,248,140,84,177,197,43,146,20,49,75,130,45,220,28, +237,153,208,115,63,162,19,7,129,213,21,25,113,249,213,56,132,249,167,111,183,247,199,108,156,52,54,61,252,158,193,148,78,58,62,107,94,47,203,101,252,49,241,239,249,48,45,248,212,172,127,22,55,40,247,226,177,182,230,195,5,190,221,66,123,254,103,213,252,251,194,212,210,247,166,136,99,169,255,109,59,59,10,47,212,125,119,48,180,219,129,9,200,251,133,69,168,244,115,68,241,16,202,111,253,153,183,253,122,170,39,10,18,79,92,125,75,52,98,48,218,189,250,133,201,172,216,15,113,173,108,187,67,164,91,179,8,165,200,132,218,207,112,25,214,151,78,92,250,252,214,104,190,74,44,51,157,210,27,202,114,114,194,64,184,237,40,114,118,216,242,100,42,58,37,87,143,182,123,127,76,230,86,241,180,215,221,57,162,158,35,184,124,253,53,255,81,10,106,95,217,240,83,81,136,85,178,45,20,139,9,222,117,128,123,183,148,244,29,247,82,167,179,219,226,102,221,184,82,206,40,16,1,14,213,38,129,193,175,200,107,247,223,246,23,134,67,248,111,219,72,23,187,221,6,175, +221,192,215,87,236,119,251,75,9,174,74,195,180,146,6,98,230,239,61,240,55,97,206,175,46,23,171,225,218,89,54,94,163,142,222,158,74,245,197,187,78,44,47,245,110,179,116,193,152,83,164,22,74,68,152,18,197,100,151,186,138,216,216,90,212,220,198,112,156,57,115,175,100,190,54,192,54,163,209,170,93,81,193,227,192,211,205,12,20,137,23,206,206,52,245,161,185,94,33,167,231,51,191,62,221,220,164,80,211,157,221,204,67,55,55,191,115,130,46,205,160,245,128,166,81,67,201,89,196,175,145,165,155,143,121,25,99,58,196,178,118,18,144,246,104,207,234,104,120,78,97,196,33,176,150,28,66,247,206,49,26,62,158,215,76,177,37,187,150,52,109,58,227,55,116,139,78,4,128,208,14,190,54,142,121,153,162,70,66,44,45,67,49,43,96,181,79,122,130,170,36,227,211,75,69,20,84,191,200,179,72,255,112,145,141,62,45,127,78,195,247,146,27,96,86,141,208,79,97,183,141,185,163,55,164,254,219,78,162,212,250,52,155,137,51,17,240,45,91,66,216,37,90,250,12,11, +147,85,31,241,240,16,87,254,44,248,73,168,180,67,70,234,111,60,202,105,255,139,230,133,227,100,109,167,29,11,126,178,158,6,40,237,159,11,182,191,132,128,219,67,42,53,197,127,120,184,147,69,126,21,35,37,60,55,255,189,51,193,245,172,123,91,147,244,10,254,141,147,96,73,249,240,22,50,218,146,54,105,22,68,15,54,40,99,213,39,109,2,96,105,91,101,145,152,250,159,32,131,156,122,219,25,227,78,19,213,19,183,229,73,255,128,249,211,194,148,112,36,139,94,206,204,112,184,190,50,198,164,126,201,80,10,58,206,152,40,27,56,10,46,157,205,40,198,54,3,26,21,109,247,98,1,38,56,66,41,88,120,222,252,159,189,251,125,104,48,107,181,80,177,163,81,183,40,255,189,94,211,64,70,185,71,92,134,103,8,66,148,174,81,192,223,74,199,152,126,208,229,236,92,122,164,142,174,203,106,181,5,165,137,248,176,241,178,129,153,78,237,21,176,15,199,102,102,110,86,203,5,231,60,222,167,155,105,37,110,55,60,132,127,100,129,182,102,106,17,72,15,232,125,22,208, +78,29,68,43,217,150,200,114,53,44,71,185,1,86,113,21,37,52,99,218,91,177,118,233,223,68,55,65,25,152,22,110,204,92,221,51,51,220,9,86,86,221,103,187,178,37,84,210,140,24,222,66,162,43,152,219,21,57,25,63,76,59,220,213,5,28,238,163,205,80,167,184,28,58,230,30,39,201,0,229,165,130,156,245,165,194,92,172,41,233,35,144,23,66,229,232,69,60,112,171,200,103,168,197,205,143,58,184,239,39,70,180,246,56,251,229,128,46,80,154,21,145,235,134,124,103,254,177,137,236,69,31,180,176,26,34,219,158,208,247,21,184,19,30,108,126,159,184,185,239,106,218,59,202,45,58,42,203,151,221,116,126,32,155,196,136,250,249,30,25,8,52,232,47,201,133,135,210,255,26,2,245,196,222,150,55,172,183,96,22,41,156,27,187,229,13,251,32,97,58,53,101,71,166,164,27,207,107,218,135,146,203,198,95,23,234,92,246,125,190,15,142,244,211,5,153,157,238,24,81,198,110,249,142,220,134,52,15,250,47,198,22,109,125,197,145,108,70,85,3,165,104,210,56,146,227, +161,149,20,35,38,222,100,83,168,168,105,41,245,122,176,135,62,230,48,42,142,232,210,138,71,79,233,151,241,211,64,169,6,202,135,18,234,144,0,188,163,201,148,234,52,172,14,54,84,6,175,65,121,193,72,15,69,15,72,51,207,56,140,198,66,5,204,239,133,22,97,198,223,42,177,47,235,117,139,215,106,165,46,100,196,71,231,101,230,6,37,70,203,100,151,155,217,121,87,47,15,18,243,54,223,191,204,204,36,87,19,187,121,219,35,51,51,15,37,4,102,164,140,206,0,38,211,88,193,44,209,19,25,15,215,220,151,113,211,3,140,10,207,237,214,164,118,57,10,98,91,190,195,207,113,168,88,122,115,44,64,234,171,14,150,238,49,185,25,151,105,205,140,109,101,106,152,206,12,159,163,107,241,82,19,148,140,156,78,110,143,77,53,36,21,18,21,47,184,103,175,24,14,99,68,122,16,172,90,142,212,111,237,147,90,188,6,238,65,248,3,85,69,255,189,130,183,75,175,67,242,124,115,68,66,48,64,70,113,92,130,230,126,70,115,138,150,142,13,104,163,221,143,104,104,129, +242,255,211,62,156,1,99,98,41,12,240,190,52,193,113,132,191,221,132,6,181,172,41,68,232,129,246,124,245,240,236,252,190,107,17,153,42,143,124,120,80,139,109,121,151,76,142,59,19,220,39,199,40,169,130,113,186,137,133,63,250,185,172,129,136,185,60,106,184,164,129,3,31,187,55,137,47,107,98,139,16,215,109,102,186,168,151,115,104,65,83,234,230,210,119,180,88,142,172,141,55,238,53,49,61,117,11,34,159,4,148,0,7,67,97,145,44,172,247,8,18,100,216,172,90,246,147,50,203,184,194,2,36,178,222,93,169,3,242,57,42,183,63,164,193,191,1,57,237,205,131,13,54,115,53,106,120,21,19,156,114,93,182,243,211,41,166,78,52,153,202,105,252,248,203,133,242,226,153,211,34,47,123,23,1,172,123,32,59,141,135,172,111,190,58,225,22,120,214,225,181,38,153,10,155,243,201,22,132,185,70,133,209,114,39,131,102,102,38,50,74,131,72,50,221,247,200,206,116,82,63,82,52,163,191,39,189,244,147,143,140,12,208,120,224,197,48,211,100,9,2,87,79,30,4,168, +56,80,69,176,114,117,61,159,24,120,54,39,71,100,110,108,19,179,162,32,185,216,121,106,51,89,106,177,227,66,72,89,225,105,83,166,37,128,174,179,158,121,151,134,11,132,178,161,56,84,244,121,148,57,147,218,105,217,210,243,21,210,58,4,201,223,218,84,73,26,249,169,91,188,210,247,1,106,9,108,242,102,75,32,14,5,77,183,107,239,203,8,237,77,231,101,76,137,80,95,208,125,50,166,163,119,25,215,224,48,52,201,129,140,6,57,65,154,125,227,174,255,110,206,69,81,51,41,213,253,162,170,244,144,240,196,161,235,154,197,249,145,21,78,2,49,135,114,249,206,77,3,247,21,214,122,218,51,222,182,72,133,179,184,155,215,79,140,38,203,103,88,251,37,109,119,94,35,31,82,55,161,164,101,74,55,225,144,46,102,167,150,214,224,137,80,50,199,190,52,31,21,56,68,176,176,13,97,213,135,31,46,24,225,119,25,142,234,211,183,29,15,105,148,105,232,157,105,49,119,33,197,97,236,169,201,162,40,226,69,158,39,116,182,94,81,39,42,33,218,193,148,156,82,91,124, +146,130,239,89,13,16,118,100,217,136,107,40,92,19,58,83,203,180,103,149,233,48,59,191,240,21,129,131,91,46,52,16,15,27,91,58,171,144,16,100,142,85,198,166,205,74,101,78,206,212,27,40,12,199,108,145,249,120,103,20,190,22,176,45,94,163,149,184,16,84,31,200,195,207,13,5,133,22,203,150,53,9,129,153,94,22,196,146,101,23,31,97,102,146,169,177,194,174,236,129,159,153,7,28,9,54,2,190,9,107,155,70,10,106,9,158,8,227,185,230,158,236,167,40,25,137,42,119,104,106,27,50,178,43,242,177,1,17,205,122,194,91,106,246,85,131,62,248,251,181,78,147,213,235,121,83,97,163,22,3,76,250,8,42,245,65,100,67,97,143,21,176,180,115,94,81,137,229,233,129,96,164,234,161,174,60,232,39,209,82,2,147,88,172,136,93,126,161,136,120,255,93,244,252,135,98,186,253,162,224,237,212,171,25,125,208,253,93,196,165,8,192,127,89,53,45,43,214,104,242,203,117,13,171,200,213,11,225,59,207,190,165,151,70,86,206,235,155,62,189,25,255,230,115,252,224, +255,244,117,87,179,217,115,102,193,229,203,74,248,55,77,188,113,111,137,55,85,118,54,252,207,208,75,194,27,100,214,206,247,113,188,47,218,121,206,198,215,77,55,166,221,144,238,30,200,167,146,118,241,250,121,58,254,32,213,223,164,131,37,215,136,6,10,220,214,136,97,209,67,183,115,42,174,205,112,56,239,192,217,23,78,180,195,232,54,237,241,105,136,31,23,172,129,156,192,25,130,92,138,221,111,120,145,83,156,54,41,183,69,113,121,133,170,162,41,104,100,247,31,123,150,151,207,128,190,98,222,170,37,225,70,213,50,91,41,255,234,37,30,186,198,124,164,136,50,56,249,8,58,14,96,153,211,18,47,126,119,241,89,141,64,182,31,39,123,205,135,187,48,219,10,252,232,14,154,188,92,37,206,249,158,139,227,92,35,193,104,63,38,240,38,254,173,43,137,241,131,12,247,61,8,51,157,196,255,33,154,193,223,147,94,242,89,249,128,193,209,71,32,3,77,61,98,90,32,113,180,113,179,195,0,7,215,142,169,142,220,102,205,85,177,55,160,145,149,31,111,211,85,71,192,160, +32,52,103,208,80,123,254,125,23,58,230,216,136,251,218,50,76,108,20,40,198,29,193,233,151,219,211,80,108,179,229,159,56,68,112,22,100,47,21,42,118,237,15,145,37,18,205,150,217,97,97,233,40,146,56,116,43,20,173,191,163,40,108,23,95,137,33,233,47,41,75,201,91,59,158,19,174,242,185,110,250,44,171,100,128,84,73,176,137,60,235,12,116,219,104,107,180,99,137,82,207,36,95,75,239,119,84,104,187,130,140,15,206,207,65,185,33,169,127,142,43,101,249,211,84,192,60,148,125,189,116,203,48,134,215,57,46,190,246,120,20,238,2,4,52,190,153,166,7,239,84,156,101,181,55,19,25,70,144,13,182,171,199,123,69,128,152,144,155,94,144,137,36,35,4,196,131,5,151,163,169,188,205,201,80,206,32,117,92,228,134,39,63,238,211,81,75,246,198,211,184,77,250,66,92,1,82,189,128,219,20,127,103,176,16,54,108,90,226,160,119,52,17,26,45,63,42,242,74,243,152,154,198,80,226,21,44,15,176,183,89,21,90,112,254,19,27,125,210,233,40,221,214,54,10,150, +43,41,38,77,152,81,108,120,247,57,83,85,145,10,34,105,244,24,168,62,70,7,3,97,218,8,68,161,201,217,181,61,104,142,153,126,199,244,229,173,198,39,101,78,246,87,68,18,220,29,227,146,32,153,189,137,214,119,199,180,68,11,39,167,162,206,253,52,69,148,24,201,173,232,247,142,39,142,172,92,253,76,19,229,244,219,137,3,55,7,245,13,252,253,74,101,179,3,208,64,199,152,67,245,137,13,153,83,217,57,165,196,147,71,208,26,50,189,122,166,175,5,216,44,16,137,203,130,180,217,252,235,159,207,179,63,166,38,124,44,192,90,132,227,57,7,33,254,33,83,33,125,60,141,148,129,36,50,28,58,213,8,118,21,71,182,58,174,88,26,192,236,5,132,112,80,252,29,106,63,172,40,133,135,220,169,159,217,253,10,110,140,177,176,8,109,7,73,94,35,54,9,72,109,177,153,155,185,150,7,15,236,235,177,249,90,75,219,209,220,194,20,40,13,159,172,105,247,240,236,57,49,63,90,60,140,181,173,23,143,248,170,228,194,53,160,244,194,223,168,43,241,151,158,196,92, +83,27,9,165,182,152,38,71,123,134,63,54,244,181,231,47,151,161,106,191,209,81,151,38,219,215,0,99,53,121,17,130,236,214,2,147,110,249,171,191,85,3,251,29,160,201,128,103,218,227,149,200,255,124,162,249,77,233,32,120,89,191,149,93,33,37,151,124,105,252,52,129,42,131,37,90,128,190,109,36,43,35,203,231,82,122,30,83,48,248,10,230,17,70,202,42,66,180,57,220,130,195,41,148,116,122,108,214,164,3,233,145,146,250,33,151,23,18,17,93,156,61,103,42,74,188,252,221,134,102,1,129,194,40,126,81,153,109,55,97,188,21,50,232,108,218,188,74,149,229,55,5,139,227,44,69,146,90,49,19,65,243,224,154,229,164,70,206,165,221,246,29,230,25,169,31,179,23,9,30,199,89,86,170,250,196,192,4,104,59,0,100,38,30,62,205,144,136,219,185,217,65,160,82,84,196,208,12,0,82,218,143,194,4,196,179,107,161,223,52,50,167,182,80,33,234,128,158,5,159,81,120,61,37,125,225,60,113,41,81,114,90,5,138,36,71,226,65,78,53,100,19,100,132,183,235, +87,192,136,132,212,195,193,19,56,46,39,151,1,111,100,188,55,194,9,162,247,92,240,183,40,78,225,230,109,202,80,44,191,4,193,188,102,185,81,72,141,228,187,90,37,228,113,157,132,10,120,110,41,75,155,126,218,190,200,245,53,46,188,61,202,92,174,61,141,236,23,175,159,86,166,236,91,79,41,254,243,87,227,164,111,135,112,145,127,38,22,37,23,27,74,165,255,253,173,168,48,182,206,221,203,176,3,109,168,63,90,160,221,118,36,142,206,187,218,139,185,112,240,140,80,207,103,106,57,63,72,142,248,168,187,168,227,32,60,58,12,21,164,226,49,115,205,235,234,1,247,142,63,234,76,90,79,154,179,163,246,149,81,127,92,168,113,246,175,161,143,82,166,103,43,82,244,10,28,169,168,0,233,216,130,162,102,163,105,144,50,6,22,70,163,235,227,244,66,219,38,40,223,232,74,133,66,78,229,133,31,50,32,77,28,169,25,124,232,133,119,162,108,248,49,83,85,182,178,19,113,94,161,124,79,138,242,89,98,119,188,123,169,16,110,32,144,85,92,124,140,166,97,97,211,180, +10,50,43,65,101,224,173,237,179,180,202,201,191,4,86,62,219,28,82,233,143,132,141,225,97,155,229,72,50,51,225,101,64,219,108,0,52,210,48,250,196,84,194,198,205,245,12,66,96,127,82,149,185,208,144,174,99,105,129,138,109,50,40,115,115,19,19,112,255,80,176,233,141,84,207,138,131,41,165,47,41,89,81,206,198,76,116,123,234,212,135,23,5,190,3,121,151,111,128,93,14,150,4,36,216,139,40,42,143,143,255,192,158,9,212,67,211,93,203,111,164,158,21,222,42,91,76,81,16,63,74,138,96,171,127,214,53,163,236,64,54,47,189,46,105,222,226,80,101,73,9,162,227,186,56,90,183,50,254,145,39,232,114,237,45,83,69,78,117,12,211,133,144,227,89,122,91,209,194,151,32,220,252,113,66,210,210,222,91,13,66,176,230,144,153,51,156,238,254,19,89,157,218,219,72,74,135,73,165,216,27,73,173,121,59,7,12,95,58,157,22,172,57,17,106,237,76,45,211,23,25,182,79,32,109,161,41,250,166,168,13,181,100,142,164,13,195,47,158,156,22,120,148,67,58,177, +69,143,108,210,55,21,46,142,81,60,233,40,94,251,133,211,32,21,84,166,164,170,5,73,52,58,175,112,11,208,139,217,160,141,172,193,89,75,244,193,128,22,163,115,205,82,41,121,116,27,17,246,138,116,58,37,209,243,105,2,197,129,174,73,25,85,26,128,206,204,140,56,204,172,6,26,223,117,62,115,249,198,74,44,29,254,174,170,194,202,251,79,237,55,39,57,137,9,209,71,19,121,246,89,70,194,246,50,106,80,211,54,111,21,20,114,70,158,232,219,216,102,121,137,26,209,197,191,183,171,89,97,42,225,11,35,39,116,153,155,55,12,21,164,82,53,81,6,1,142,85,58,180,161,132,218,145,138,1,164,233,42,7,63,213,134,31,203,112,246,160,209,174,9,178,108,58,22,197,197,118,101,232,5,45,133,146,177,177,86,49,7,31,199,64,248,142,243,128,80,161,64,156,246,85,1,141,30,49,142,19,72,238,5,209,95,38,206,77,107,163,247,60,250,228,128,106,81,122,45,138,227,252,201,254,229,94,7,252,50,162,228,166,90,115,103,55,99,77,22,57,164,217,46,126,65, +176,116,158,167,13,195,205,243,214,194,185,248,131,185,120,107,6,209,63,199,171,44,22,125,231,219,72,241,213,174,90,212,83,126,191,55,93,3,98,168,32,42,1,78,101,235,97,131,70,230,70,133,221,125,162,190,152,34,245,85,14,16,47,54,234,51,5,125,2,114,5,68,87,88,178,160,12,167,143,49,87,116,107,54,38,133,245,213,200,54,125,199,26,100,76,241,40,254,59,208,229,236,111,9,130,51,141,64,13,176,76,170,66,234,65,214,52,125,17,251,189,136,19,105,165,88,130,198,250,136,175,28,123,107,106,152,72,211,169,50,169,147,156,62,221,108,202,81,54,93,207,73,62,105,96,12,63,103,104,114,42,3,128,55,49,69,202,93,59,145,213,1,230,81,32,61,94,235,116,219,178,246,93,4,248,36,159,99,81,153,165,114,114,45,105,114,106,150,29,243,156,218,40,188,156,106,190,242,44,35,247,147,26,34,199,163,50,203,202,209,159,44,88,21,93,1,164,116,171,97,24,75,204,98,248,97,54,51,9,0,52,156,226,205,67,102,84,246,193,0,173,189,60,153,14,0, +194,176,11,194,255,33,227,117,54,242,134,49,105,176,72,172,18,228,244,112,45,201,168,171,225,98,69,142,100,207,0,179,235,192,78,251,71,43,157,13,101,223,72,17,195,67,17,14,125,232,172,166,232,198,197,251,92,191,116,133,190,162,2,253,55,17,231,71,191,172,31,229,170,219,30,187,140,89,92,101,141,99,100,120,169,182,60,63,136,76,135,189,121,91,217,61,105,118,201,170,225,244,234,65,54,155,181,230,240,224,86,60,224,106,146,11,21,245,206,147,191,163,141,151,164,123,0,100,153,30,226,48,60,236,152,49,38,100,50,188,98,236,66,22,167,48,74,80,216,15,131,169,113,96,185,30,213,26,84,101,72,1,14,158,119,253,109,53,176,18,146,167,16,57,233,145,214,216,82,61,210,141,19,89,111,217,196,64,72,40,16,67,2,43,152,187,124,204,224,99,57,22,47,83,208,139,112,44,40,195,82,212,182,40,156,155,82,148,82,114,120,154,168,242,162,27,6,239,156,110,27,166,200,114,208,45,10,104,81,101,252,140,174,73,43,12,180,195,73,161,99,220,216,16,65,51, +234,42,143,62,148,27,210,86,149,187,124,130,4,35,54,129,179,141,55,106,58,50,51,122,201,32,39,198,19,124,226,5,16,238,108,190,241,41,61,99,163,74,114,249,119,226,7,63,255,213,18,21,22,46,36,40,218,162,105,162,194,106,231,197,234,178,33,14,10,43,44,90,150,131,85,40,158,4,246,61,148,225,2,132,113,8,125,159,177,149,178,6,113,144,198,254,169,176,24,203,155,6,44,183,161,152,193,194,119,120,97,178,19,199,175,108,113,8,8,168,247,2,112,8,149,53,146,153,207,84,77,83,143,130,248,139,233,135,104,43,180,149,71,207,208,83,92,82,175,108,30,229,233,223,219,241,156,210,108,116,102,151,189,135,241,213,37,111,220,242,182,74,241,83,242,214,192,248,132,25,228,121,26,41,218,99,77,5,123,74,174,200,131,9,232,138,255,80,240,191,143,131,20,38,199,9,152,50,145,98,44,99,234,203,27,40,83,34,79,95,1,157,114,31,32,115,232,145,5,35,190,119,144,131,30,34,85,201,205,90,88,61,209,157,48,54,212,172,245,68,172,39,70,68,137,249, +210,12,36,149,191,53,109,57,127,135,165,47,28,255,146,227,1,3,246,131,124,245,225,72,36,141,155,40,106,136,82,41,18,77,167,37,170,39,143,149,22,75,82,123,212,116,153,169,45,41,16,113,42,45,91,51,120,67,244,195,32,69,145,91,236,162,193,45,163,100,166,149,218,84,175,1,47,48,76,119,32,165,87,116,21,235,189,11,167,123,115,226,212,166,85,46,224,49,42,243,232,239,120,208,2,105,246,168,201,152,103,85,147,32,64,30,249,24,115,94,70,229,7,68,138,199,146,49,203,202,62,113,176,143,255,114,59,211,243,204,97,52,173,188,156,24,216,0,202,244,189,230,123,230,42,5,148,196,243,112,134,190,139,231,213,76,228,178,6,182,183,111,244,13,90,84,68,131,12,23,233,71,24,1,105,232,125,126,244,127,2,161,227,173,48,80,56,229,213,202,85,204,174,102,50,126,104,224,128,161,162,158,203,16,12,122,211,75,154,1,99,21,131,177,19,118,24,33,98,138,252,229,116,46,166,126,181,197,118,76,178,163,185,236,149,159,140,49,121,227,58,82,156,36,130,81, +227,60,254,179,225,228,164,22,38,76,205,40,102,190,135,190,88,248,135,125,163,47,37,67,242,189,128,24,77,131,187,56,238,91,217,102,74,224,134,126,215,64,25,222,65,38,33,65,108,90,103,132,152,132,131,136,56,18,242,18,55,54,100,163,226,88,102,173,84,143,13,56,105,92,20,73,166,121,48,239,116,32,183,184,155,62,251,134,30,176,240,87,44,43,36,189,161,134,226,24,55,76,141,192,222,28,244,68,80,21,107,149,198,250,40,41,73,109,133,51,153,169,178,60,69,145,217,135,188,21,247,48,76,81,188,202,48,72,67,210,61,173,204,64,243,150,137,40,252,223,127,246,222,181,227,226,25,190,165,107,50,61,65,7,254,133,171,170,202,82,78,234,87,70,194,57,18,202,178,32,149,149,25,249,56,135,178,44,74,77,71,178,14,238,164,46,50,36,225,45,252,23,119,202,130,0,213,166,25,107,68,233,254,45,49,224,118,216,13,164,21,55,180,66,49,133,5,136,86,29,149,18,13,138,89,249,233,21,178,123,236,67,24,43,53,131,29,96,179,17,3,42,2,73,144,31, +127,244,23,193,121,51,245,130,148,239,64,71,116,244,20,6,46,68,60,235,200,87,60,249,129,202,130,235,32,93,195,58,139,132,27,179,114,9,75,25,72,204,176,136,136,20,225,194,231,63,155,191,179,191,211,65,131,193,116,218,206,37,232,173,164,140,119,181,83,72,88,107,156,135,127,54,148,60,215,194,191,113,231,206,60,55,221,27,119,194,127,184,163,133,81,171,128,216,95,57,92,28,153,151,151,203,205,172,155,216,222,140,199,148,202,1,60,24,164,171,105,172,89,76,198,135,189,144,80,130,198,69,14,217,100,69,156,203,238,215,49,125,56,31,255,171,33,75,61,4,84,79,64,92,90,54,154,200,13,57,0,176,223,183,143,16,236,246,24,78,117,73,201,231,27,120,148,132,14,196,78,22,58,21,54,136,166,177,114,175,32,220,240,204,105,163,24,189,199,138,231,153,247,210,40,156,172,112,163,123,131,210,111,101,166,53,212,29,100,7,143,158,110,98,175,251,36,127,239,3,36,181,206,46,90,220,22,138,106,134,163,101,148,37,202,82,38,202,96,78,180,198,114,211,175,112, +100,231,212,50,112,43,188,49,218,159,98,210,10,63,249,35,248,221,99,137,41,46,211,162,232,163,61,108,90,61,49,124,251,203,36,192,195,105,34,81,6,13,138,91,132,121,7,228,177,247,33,148,13,46,6,159,22,66,196,176,64,219,20,177,207,27,44,178,165,135,178,55,227,32,233,253,72,6,54,71,15,63,63,8,16,42,68,242,176,82,47,244,253,184,115,13,201,30,130,194,142,253,195,10,37,172,188,200,223,162,174,113,169,237,41,198,5,86,253,119,175,38,163,151,238,230,188,83,243,249,196,78,123,61,2,49,211,223,150,183,145,232,215,214,150,68,79,137,174,174,159,54,166,230,55,25,201,72,160,167,56,221,79,189,200,210,209,10,201,145,121,232,254,8,9,187,65,202,233,252,60,98,87,5,139,148,89,212,78,92,23,69,104,165,76,140,239,99,19,82,26,23,61,20,17,199,212,88,45,82,71,14,56,216,209,239,7,25,230,185,15,221,3,138,94,188,9,221,126,110,131,57,130,227,14,125,119,111,255,232,163,164,230,227,147,6,139,161,232,124,77,172,109,41,247,232, +160,37,133,83,58,137,167,93,254,109,195,100,137,155,62,127,166,240,50,13,94,86,83,240,222,193,57,212,32,136,253,134,193,60,184,131,64,118,137,219,42,2,71,214,46,15,58,145,188,144,103,241,22,130,92,218,34,39,60,188,225,12,103,148,59,201,46,79,83,217,62,165,102,204,162,82,186,107,129,5,67,208,122,202,198,203,226,104,152,136,144,150,136,113,187,32,158,34,51,229,52,98,220,38,106,68,98,30,198,27,232,152,85,152,57,97,237,17,26,132,182,115,98,79,201,141,0,51,220,236,179,36,142,110,190,33,56,55,147,185,111,197,254,147,153,8,110,15,52,116,96,134,134,248,197,94,207,13,237,36,225,23,147,205,224,22,122,23,31,121,207,69,203,103,12,202,238,196,93,247,29,24,12,50,115,92,32,2,235,89,82,73,241,7,219,242,89,63,227,230,248,60,201,86,186,32,20,108,126,118,48,100,13,222,163,145,80,28,184,83,172,173,3,83,204,22,244,48,19,184,73,49,143,60,132,152,89,156,180,77,233,95,176,215,76,212,35,38,46,44,20,4,162,136,5,245, +41,13,193,164,231,96,35,31,137,11,140,123,27,78,40,168,178,152,253,170,255,27,44,17,4,33,133,28,242,60,182,195,21,138,192,49,137,130,158,127,189,62,204,173,150,188,186,200,7,99,16,117,122,204,180,87,236,38,175,227,36,33,106,76,66,39,32,104,40,6,27,76,120,52,141,254,8,73,227,96,243,47,15,138,198,76,126,20,121,233,134,130,85,170,86,19,251,0,143,83,194,4,240,147,179,99,59,196,104,240,253,14,209,105,69,84,19,69,78,244,151,8,144,172,142,120,81,16,61,101,137,198,255,38,137,40,58,37,118,74,39,120,178,194,200,109,29,191,178,210,41,105,165,166,123,31,138,40,141,152,180,208,235,166,153,131,104,181,36,6,81,0,219,183,113,181,228,158,10,193,197,141,84,247,143,198,223,228,201,189,78,198,17,76,124,203,14,128,245,3,146,178,195,124,75,148,109,246,190,27,222,63,68,152,251,106,98,17,166,227,15,116,118,110,80,169,44,252,216,136,46,199,161,137,137,18,159,145,41,186,150,36,137,21,26,74,29,85,140,247,51,220,121,61,54,215, +125,144,146,13,38,5,219,62,228,86,251,84,158,170,215,142,53,220,46,63,185,102,20,214,84,63,152,6,98,92,12,191,183,179,212,36,226,166,196,190,3,164,141,31,53,37,52,55,188,72,238,117,63,66,148,95,20,220,183,120,61,2,251,104,139,163,14,249,103,255,122,51,132,213,61,85,117,185,247,126,31,197,98,169,107,162,250,163,199,153,146,17,124,242,198,35,246,15,6,112,191,190,91,222,220,30,212,94,218,82,229,244,187,177,27,117,93,206,26,196,251,151,226,38,101,48,195,25,137,54,130,82,96,222,123,233,5,75,242,74,71,152,50,53,225,41,113,149,125,38,186,66,21,229,199,200,130,236,150,160,165,179,169,110,252,112,81,209,221,165,0,65,54,241,225,121,154,133,92,211,162,200,164,248,132,134,183,150,205,200,50,39,222,21,210,52,229,51,172,194,190,164,155,82,62,249,28,183,150,184,225,161,221,35,106,1,176,83,11,81,106,137,160,163,0,174,239,64,10,173,189,4,2,192,14,46,50,106,250,67,245,4,114,151,105,130,210,248,153,184,158,220,227,164,75,64, +133,11,236,96,253,208,34,135,255,118,176,233,174,13,142,250,52,63,106,53,181,86,68,209,5,153,208,128,160,55,230,137,27,62,58,72,159,212,55,31,249,18,243,20,18,69,49,43,35,41,125,10,216,186,131,78,67,57,44,63,150,191,109,251,98,216,54,127,158,118,156,0,255,243,180,230,194,51,122,211,183,243,84,145,88,47,102,148,94,190,199,156,254,200,143,35,36,174,228,95,207,69,50,254,99,26,63,14,149,111,141,76,111,31,68,17,219,106,224,62,93,161,84,156,166,104,214,189,201,150,176,16,6,125,222,112,253,195,5,218,91,213,179,77,117,111,111,200,39,26,25,23,178,199,99,30,172,176,124,134,200,100,190,121,6,219,4,213,175,148,138,144,255,232,227,184,149,232,166,139,21,33,197,223,131,182,162,64,98,7,246,195,6,79,227,21,106,62,54,208,59,32,180,68,227,187,226,211,139,25,208,169,197,42,109,196,105,127,28,192,14,191,60,230,104,239,206,200,127,121,182,160,91,75,150,184,224,62,108,99,241,134,85,98,133,167,39,216,38,56,39,169,39,70,193,101, +231,3,231,60,162,92,79,220,88,30,139,247,143,74,51,243,245,65,69,131,92,226,68,131,224,246,37,9,56,64,138,141,12,31,251,63,213,147,15,156,134,111,243,23,111,85,65,96,63,168,49,136,94,202,164,211,216,13,143,17,86,156,195,22,176,211,67,177,32,252,194,181,52,241,21,219,218,12,15,64,209,209,11,77,173,162,116,100,135,254,157,159,212,242,34,16,91,194,115,123,151,136,34,117,101,16,52,71,53,225,177,67,57,105,78,234,219,198,97,175,181,115,122,18,23,133,155,158,183,144,151,89,6,87,140,119,98,194,87,67,170,94,123,28,126,53,48,226,160,202,59,200,165,205,249,71,109,31,33,232,69,237,235,112,228,194,92,131,158,237,62,31,189,138,188,210,77,58,193,248,118,116,110,11,6,92,100,71,231,185,94,83,127,128,213,34,38,100,91,189,57,28,99,72,198,199,229,237,154,253,197,7,11,35,239,230,111,94,134,114,6,98,249,253,77,172,250,160,174,211,6,245,190,222,85,220,24,163,40,254,101,214,134,20,255,104,115,93,193,245,233,133,141,48,31,101, +106,170,68,85,70,96,239,103,89,244,78,46,107,1,188,137,192,44,245,210,69,237,84,76,183,20,94,69,149,133,153,156,70,236,148,190,39,106,102,54,212,228,164,14,76,57,76,207,44,53,107,169,35,138,41,2,224,55,182,67,136,156,144,21,62,244,3,167,254,70,136,72,27,215,155,42,126,68,95,240,132,243,201,61,143,33,206,190,45,86,5,128,211,32,35,101,204,11,147,0,119,63,153,214,72,94,206,68,200,109,236,6,37,90,28,163,102,175,194,239,207,2,143,203,198,33,142,165,131,11,143,68,114,47,113,98,46,241,251,115,71,179,66,15,0,224,47,61,201,32,6,4,211,23,247,154,52,122,131,224,185,111,34,26,246,125,170,29,33,16,88,123,169,207,207,203,218,50,131,235,243,159,219,133,66,22,94,95,241,181,68,140,235,249,185,76,169,126,181,185,125,139,147,142,166,118,226,48,230,17,220,29,143,122,72,196,219,41,130,34,250,56,176,202,121,228,89,211,43,25,82,76,194,199,232,194,173,15,70,8,28,214,57,169,113,91,131,249,17,103,100,145,107,158,186,113, +176,193,112,130,33,178,6,233,161,141,32,13,65,71,51,197,188,180,97,30,38,192,148,41,244,96,154,117,1,39,57,30,5,104,135,70,119,250,48,43,170,137,239,47,230,163,178,146,20,210,31,99,24,19,67,44,3,41,123,184,139,52,238,109,216,239,72,0,231,29,172,169,91,184,134,188,86,169,184,190,222,2,225,152,99,85,86,172,74,82,225,33,102,36,153,17,91,186,72,124,240,57,81,145,208,83,55,31,15,248,140,114,86,23,196,175,63,244,27,207,211,56,197,233,23,197,137,55,178,19,104,78,216,23,18,65,238,78,213,43,11,181,110,85,7,0,246,253,26,224,85,175,39,2,174,123,26,33,7,226,45,182,129,51,20,243,12,17,1,196,182,52,230,177,25,12,113,63,77,229,69,97,116,202,54,2,54,135,234,30,64,53,21,30,138,170,8,244,242,30,151,59,233,113,101,148,52,82,158,116,204,82,213,232,170,215,97,177,29,252,68,78,24,159,252,34,10,153,127,26,243,7,252,139,118,159,203,237,24,161,119,18,59,105,213,76,129,183,151,90,177,48,166,214,177,37, +10,250,47,109,251,80,106,172,46,92,154,150,124,78,106,176,89,62,246,172,41,73,108,201,82,32,49,225,54,184,131,13,222,233,189,204,216,158,70,127,66,82,215,73,161,203,173,197,152,193,195,88,121,63,31,243,137,24,107,120,140,117,115,15,232,237,244,65,29,71,56,170,133,114,48,125,146,49,90,252,246,246,240,212,80,118,210,20,103,240,147,9,254,106,174,114,144,50,237,188,2,215,41,234,211,220,120,222,133,225,214,135,46,12,191,113,194,231,15,39,28,86,69,21,197,225,104,239,35,7,115,96,138,131,67,65,255,185,126,57,254,17,42,253,164,90,220,121,153,78,255,202,195,172,153,50,250,13,157,254,217,123,57,156,132,19,21,17,255,217,166,131,136,198,63,220,16,59,126,107,63,163,32,48,246,121,200,107,93,167,136,34,132,253,2,53,172,91,68,52,224,36,212,12,77,190,197,33,248,83,245,224,187,68,150,107,146,126,98,231,27,184,239,56,203,73,209,94,194,195,176,176,7,146,130,73,151,121,85,123,93,193,200,121,111,34,238,21,125,166,178,148,39,237,106,43, +46,34,234,167,255,169,245,161,208,114,166,14,107,126,157,239,68,203,127,94,91,71,132,16,179,190,29,27,108,187,75,96,239,55,232,206,111,163,103,30,47,10,179,85,131,103,11,35,233,188,20,168,232,142,247,43,72,227,240,68,44,198,156,177,159,15,121,20,226,19,45,182,72,141,153,220,29,219,134,157,59,150,13,227,127,248,240,21,206,165,146,87,69,88,140,76,160,197,157,101,121,64,75,192,225,76,10,191,236,40,175,228,132,196,171,45,144,34,237,21,5,198,211,140,15,6,53,23,85,140,111,123,108,51,191,154,83,31,176,80,204,207,219,60,171,15,253,116,111,135,26,71,247,248,209,253,106,247,202,90,132,227,251,225,61,231,39,140,50,205,153,252,52,159,162,217,89,154,195,92,196,47,95,112,126,80,181,248,55,145,249,17,156,29,21,242,31,6,140,130,238,0,143,38,155,31,53,17,61,38,203,2,228,218,135,121,15,228,177,205,195,204,96,186,114,129,90,182,97,180,97,96,29,217,80,203,194,238,229,101,90,130,202,224,3,96,210,25,98,67,63,248,8,51,163,196, +251,177,126,4,40,147,162,112,124,127,17,117,149,54,48,41,77,152,223,106,175,35,18,244,238,243,196,253,81,131,194,36,111,253,27,135,134,172,239,79,194,223,37,42,184,88,202,122,219,79,33,86,248,59,77,255,24,188,135,73,68,123,100,66,94,91,47,49,174,152,248,59,105,22,57,30,86,137,55,87,15,171,131,81,78,37,235,119,180,194,49,170,3,136,175,72,152,195,248,53,240,136,22,43,24,225,78,55,149,54,180,115,36,147,117,248,159,30,110,192,89,19,210,54,59,229,31,172,180,52,15,117,155,130,203,29,233,188,194,195,88,128,107,31,1,48,141,252,52,229,50,33,242,163,54,76,230,189,184,138,104,49,99,171,168,122,43,207,211,199,155,185,123,219,103,8,223,161,110,96,47,203,16,174,197,110,245,95,105,24,23,14,56,231,174,227,86,154,233,226,12,78,174,235,120,16,202,147,180,95,45,20,25,78,143,226,56,226,246,135,130,155,147,175,52,77,72,63,245,8,19,209,103,153,142,32,11,67,78,38,182,125,182,73,152,27,28,142,46,80,221,54,143,50,241,206, +74,13,170,91,150,246,188,1,56,170,32,126,206,222,139,201,96,217,199,196,48,135,147,103,176,9,154,190,32,4,154,225,115,80,132,57,106,32,105,128,144,53,2,166,194,241,142,194,19,24,154,220,97,145,131,15,135,207,241,202,125,37,195,107,247,187,203,100,84,194,207,172,146,197,135,207,124,186,251,152,33,25,226,239,65,236,15,241,190,253,250,32,60,218,239,43,247,137,220,167,210,43,179,11,10,69,51,233,3,121,73,242,52,75,137,17,231,12,177,19,62,238,114,48,53,98,132,176,60,218,195,227,13,251,112,183,246,21,158,32,235,212,85,154,203,100,209,106,177,6,117,9,102,5,194,178,159,190,214,164,47,225,73,138,39,183,0,249,145,151,49,132,148,38,194,221,196,244,149,191,70,25,28,95,185,97,230,252,165,126,222,126,21,109,253,199,178,240,123,19,72,92,222,39,127,137,2,133,163,36,129,104,82,22,254,182,246,170,142,8,85,147,43,175,51,223,171,191,188,36,151,187,217,153,237,212,202,10,203,196,241,117,132,179,189,234,27,8,169,251,15,33,176,27,21,97, +6,233,63,244,154,107,29,30,171,108,43,63,97,4,114,150,65,153,158,38,168,236,16,215,53,78,32,27,248,225,132,8,184,123,93,24,5,213,97,159,235,244,206,64,92,237,151,232,186,122,54,80,31,117,225,25,241,177,205,27,62,12,223,143,137,215,19,53,87,158,9,91,28,151,38,23,118,159,209,155,41,249,167,251,67,111,23,92,125,241,71,233,64,253,253,173,213,59,53,179,67,94,28,222,166,72,60,123,228,57,175,209,148,8,246,117,42,183,195,243,245,203,29,39,219,149,161,18,166,163,84,239,7,108,175,115,126,183,241,47,112,85,230,183,212,158,217,32,41,163,248,97,221,196,173,204,27,110,65,170,86,154,152,32,249,140,121,132,88,87,210,245,3,99,218,146,144,166,217,76,127,121,205,75,185,213,21,216,10,115,58,8,210,71,69,24,7,129,106,188,80,115,86,33,32,0,63,213,117,110,195,13,72,224,116,125,187,86,19,229,54,5,206,227,160,80,255,101,170,122,202,168,37,40,36,144,76,14,142,175,56,2,237,118,99,43,239,240,85,38,49,255,128,33,204,159, +188,229,245,34,69,65,4,201,167,198,186,178,77,126,8,17,46,27,177,105,25,229,44,172,132,156,253,158,38,121,173,7,96,168,32,158,165,54,134,28,180,10,26,234,204,236,250,108,187,50,81,58,27,197,65,132,17,207,156,217,34,152,46,240,17,254,151,213,152,15,255,104,30,62,161,45,156,150,5,214,233,196,107,143,166,231,17,114,254,184,91,152,87,15,120,205,119,245,177,113,108,248,217,89,182,248,218,219,63,69,250,202,123,42,204,121,107,82,240,136,53,154,206,252,231,168,140,48,185,187,83,52,222,189,61,132,191,129,47,150,67,36,153,202,241,17,57,84,181,186,139,225,7,238,210,244,252,204,123,58,2,70,212,141,62,110,0,125,22,179,80,173,125,85,140,75,95,195,19,6,239,158,157,50,234,210,14,69,3,15,56,185,115,215,168,78,29,103,157,46,163,247,50,106,149,98,179,2,45,168,36,51,171,190,226,38,140,146,23,136,130,251,38,69,72,118,77,222,67,147,230,38,87,201,222,67,158,182,72,46,124,66,237,81,209,165,161,123,73,158,112,126,144,52,26,176, +26,166,185,154,187,213,234,40,57,239,247,173,196,115,151,50,137,238,242,183,15,195,220,61,8,211,145,145,44,218,192,117,77,17,49,98,169,146,200,113,137,246,73,27,139,139,170,212,103,160,60,108,114,128,149,112,226,4,126,65,1,26,125,92,24,2,131,146,157,165,196,24,180,31,182,104,27,205,207,182,59,163,92,25,62,157,122,253,133,160,214,75,206,29,42,68,225,79,97,43,188,253,156,251,203,175,156,28,181,88,138,85,111,119,91,51,95,153,63,177,120,179,79,161,62,135,25,65,8,81,94,155,243,63,163,242,217,212,61,14,243,36,81,123,96,189,217,154,186,89,39,57,147,72,39,139,122,48,145,47,10,147,185,182,99,247,29,73,100,49,63,29,248,137,135,45,171,171,31,187,40,90,70,194,90,19,3,176,31,208,226,38,10,128,225,24,68,116,168,57,123,68,111,210,214,113,178,243,30,175,49,235,197,89,212,42,32,41,93,204,70,121,195,203,42,133,133,213,173,191,79,102,253,221,198,62,113,36,187,47,213,198,62,191,39,243,252,139,181,198,174,150,119,201,232,22, +111,37,122,227,18,71,215,248,247,230,106,230,86,69,121,207,188,222,103,152,185,20,199,36,188,75,120,64,115,200,61,12,51,35,12,180,149,8,184,6,49,106,137,141,72,156,128,239,33,184,231,224,132,42,39,80,70,14,154,12,224,60,17,111,236,234,68,59,58,217,22,236,18,80,102,203,186,249,236,161,216,4,42,61,156,79,100,89,166,230,120,38,161,130,212,251,226,182,54,21,255,135,51,20,60,8,234,63,176,199,66,91,247,103,65,177,233,56,252,34,146,127,38,49,101,254,167,25,158,11,56,249,227,209,68,191,154,100,23,161,122,239,190,61,48,81,63,119,218,141,14,96,46,93,29,253,9,222,173,27,222,173,187,24,200,81,98,23,76,230,67,6,148,16,5,155,249,125,3,228,84,228,155,84,45,13,151,80,240,185,18,187,50,199,36,218,167,54,40,237,82,127,195,123,79,2,222,160,181,41,142,117,122,89,159,49,104,254,44,178,50,126,90,11,184,45,111,73,152,141,239,14,152,107,45,187,141,74,117,157,35,57,157,181,42,189,85,234,197,229,172,92,154,237,104,149, +7,105,189,7,181,102,59,248,149,254,35,207,1,58,170,19,87,91,94,130,98,235,111,194,122,226,219,122,41,9,108,17,125,16,151,214,3,211,80,18,38,28,192,247,128,14,50,210,36,149,200,142,56,99,231,95,19,145,37,244,143,226,245,67,63,253,121,159,77,248,110,4,50,107,58,245,79,130,84,115,200,30,107,170,31,127,181,63,235,252,253,231,34,151,157,45,10,44,205,22,9,39,57,13,207,61,231,21,88,198,251,12,65,32,127,231,86,218,159,132,131,87,116,234,198,134,248,230,119,241,250,137,219,175,33,150,149,93,139,108,66,100,202,126,82,138,255,210,186,148,125,227,75,18,102,72,212,72,230,130,102,138,86,43,131,218,137,54,163,153,147,112,77,40,141,86,112,233,11,94,204,71,3,18,35,96,206,24,130,34,237,93,37,99,242,202,171,4,14,128,198,19,230,251,246,242,79,251,81,196,63,150,5,174,239,73,192,53,125,107,240,107,18,176,171,155,130,118,243,184,128,180,110,57,35,66,76,216,121,208,60,239,82,126,49,93,140,166,159,52,183,168,42,88,147,78, +238,35,205,173,146,239,134,56,20,124,156,185,69,248,120,167,141,250,136,75,180,245,128,164,229,18,78,34,247,31,116,147,171,170,70,224,153,170,254,170,190,180,220,210,100,226,178,187,41,128,63,241,100,177,77,29,219,141,28,183,27,132,81,248,112,199,125,181,155,226,236,27,142,36,129,114,118,48,53,91,60,220,169,50,60,251,20,193,63,154,85,25,109,123,243,235,202,186,253,25,29,254,148,124,140,143,205,152,104,30,60,30,136,108,171,222,141,244,31,166,188,206,211,73,30,219,210,144,238,166,167,221,230,92,234,25,116,96,139,58,197,3,103,109,198,230,11,249,151,116,175,77,251,178,169,83,170,34,143,138,153,16,194,70,74,57,21,246,2,21,46,199,19,53,100,151,172,202,181,13,117,124,162,214,49,1,172,230,20,116,155,131,122,70,183,192,221,213,144,186,161,206,79,210,90,85,53,174,111,50,92,144,102,22,89,26,134,157,68,155,196,185,51,41,201,125,92,126,125,167,235,172,42,207,114,54,106,243,105,86,212,231,196,236,244,111,129,91,28,21,17,35,233,25,45,182, +203,18,125,141,110,72,1,62,11,123,15,158,113,5,2,209,120,213,168,218,90,142,44,117,35,11,117,122,155,239,235,164,96,217,225,227,67,141,65,216,36,255,93,94,252,167,249,177,107,7,73,120,212,130,175,232,25,9,71,245,223,167,233,21,206,121,197,69,47,190,89,152,169,95,112,50,29,61,181,186,189,216,59,203,96,238,159,174,8,117,203,211,141,72,162,192,150,245,220,50,62,119,31,18,12,82,71,251,124,97,83,201,152,70,14,148,36,93,6,82,173,168,205,105,178,184,206,53,167,250,70,1,229,82,235,253,241,141,22,116,115,82,90,23,197,31,204,89,69,87,46,120,67,172,71,160,130,152,122,97,102,226,109,156,14,47,17,93,110,81,121,47,248,127,117,103,109,41,174,174,137,31,65,222,137,253,190,223,119,195,236,136,154,162,242,131,233,18,254,52,157,243,162,172,66,176,110,212,167,101,89,31,105,152,125,191,148,249,95,44,254,193,67,80,128,71,24,182,251,77,84,185,95,147,223,21,121,232,230,122,34,185,145,83,101,178,156,105,234,249,255,136,120,175,30,245, +186,46,79,236,171,60,87,115,101,121,220,125,225,11,143,44,205,55,176,175,61,26,89,79,187,71,227,118,135,183,213,111,119,75,221,87,196,34,84,1,69,42,114,206,80,64,1,69,134,3,20,185,200,57,115,40,114,206,57,29,243,239,119,60,70,130,179,207,58,59,172,189,214,111,175,245,91,8,177,137,43,13,151,231,229,198,99,130,104,39,193,185,124,252,1,3,144,186,179,72,170,61,89,33,160,172,224,139,225,141,76,197,135,82,72,164,82,224,139,78,108,103,197,135,3,233,172,232,203,188,240,158,98,35,150,150,192,83,141,128,114,45,218,27,14,212,91,35,22,148,53,233,227,50,12,184,132,103,145,65,45,9,168,68,183,64,187,99,165,20,200,163,87,185,239,215,255,99,164,34,247,47,56,241,237,84,125,108,56,168,76,24,44,50,7,173,48,74,235,252,50,98,234,101,123,212,249,99,188,38,103,180,172,98,172,142,252,243,104,153,196,140,121,99,189,89,149,147,55,57,79,1,45,219,60,60,127,109,62,168,143,13,231,132,141,31,36,113,231,16,228,118,34,236,220,124, +206,143,110,236,8,136,60,47,76,75,12,201,231,124,81,153,174,32,231,135,243,82,111,109,151,236,78,137,233,9,4,210,39,57,212,27,191,228,56,10,166,61,25,39,247,147,36,99,245,214,56,4,128,162,123,31,211,98,240,163,252,155,138,105,95,58,23,250,7,248,145,206,250,55,255,70,78,8,142,231,22,245,41,108,176,195,131,111,170,247,84,11,210,36,27,131,149,27,27,238,185,56,250,246,133,7,227,160,204,13,241,214,242,243,29,200,52,101,33,116,212,221,134,22,212,37,76,138,145,50,148,20,117,136,205,102,81,73,145,115,60,217,89,107,10,209,146,194,139,20,27,9,120,179,178,32,140,251,168,248,132,218,124,210,137,162,207,137,230,120,93,117,83,173,108,87,65,250,253,131,28,19,198,159,202,2,90,152,228,157,119,108,254,34,183,101,246,195,159,74,77,70,29,226,168,103,164,209,232,232,29,220,28,243,88,70,251,149,106,156,233,207,35,103,2,210,62,205,185,31,71,158,72,243,2,86,251,93,177,100,192,186,212,232,6,211,139,160,221,62,163,168,97,214,25,55, +2,111,150,21,148,174,40,252,58,141,50,45,70,79,10,79,7,251,8,178,110,193,59,106,69,98,242,190,130,99,165,69,177,116,161,27,49,86,157,190,116,97,130,41,244,85,79,62,162,21,175,26,84,67,209,126,122,207,88,113,238,68,157,247,44,253,150,54,101,21,180,150,133,87,29,34,158,212,174,143,52,10,94,55,175,122,23,166,171,201,42,191,13,6,181,108,76,83,103,204,186,16,154,157,202,31,59,186,208,179,185,169,90,181,171,4,235,56,175,90,125,37,233,227,194,163,17,184,69,110,126,54,63,189,56,194,228,151,79,80,178,14,162,139,244,234,60,27,212,197,195,60,199,34,87,220,81,231,156,109,93,177,58,168,111,165,161,39,48,242,162,159,82,6,105,192,183,100,133,146,134,51,66,97,144,252,218,94,184,41,135,62,61,29,168,160,76,40,116,96,70,24,40,227,45,220,46,189,127,62,165,202,87,76,130,84,30,64,168,28,185,78,234,184,86,148,69,238,200,23,189,121,113,194,13,170,41,188,93,197,100,6,14,64,104,187,236,85,41,106,243,201,178,9,202,66, +228,76,216,171,51,227,252,85,22,55,91,140,246,67,212,25,19,193,241,65,53,77,147,222,159,73,198,11,13,148,184,215,252,212,124,213,230,39,245,139,213,152,191,152,247,86,69,180,154,222,84,185,210,55,70,213,153,87,225,115,250,184,159,199,94,204,114,91,78,191,246,217,188,72,103,79,179,210,200,166,14,13,232,14,93,238,230,36,243,159,183,124,73,42,135,187,155,94,184,253,101,87,234,15,179,28,95,203,102,234,229,26,25,30,46,152,93,107,208,33,58,206,157,159,39,132,44,251,113,26,15,245,150,176,167,189,254,30,212,73,237,19,86,192,144,28,5,194,165,84,148,81,224,156,254,64,69,28,184,203,250,220,21,227,85,218,148,254,80,162,140,232,206,254,53,46,100,245,100,224,196,123,159,116,235,66,217,226,233,100,85,185,162,190,76,226,123,158,57,63,219,215,181,124,93,188,126,35,164,22,171,246,155,126,209,89,157,223,22,243,245,190,44,47,88,85,192,35,60,16,198,250,220,129,119,46,79,62,235,178,17,62,81,96,140,236,129,73,176,90,213,165,239,68,34,56, +202,187,98,37,150,35,149,43,110,40,77,234,150,39,19,65,175,72,12,235,106,106,78,102,224,206,151,127,23,130,68,85,163,40,12,156,241,93,193,233,17,118,94,21,87,72,216,18,250,200,24,172,251,235,104,16,31,83,175,55,74,57,23,96,220,16,219,23,220,183,116,0,225,167,220,209,32,154,183,165,250,104,163,158,18,186,144,93,49,90,93,172,93,26,131,12,149,61,158,168,244,190,245,233,19,122,57,40,29,239,44,6,131,123,218,177,74,140,211,166,134,83,199,92,206,200,174,21,28,235,210,23,254,185,177,249,228,74,86,37,118,134,54,4,252,49,253,103,137,47,159,73,103,138,97,222,22,26,144,29,196,204,254,246,202,23,0,213,8,0,14,158,145,138,164,234,248,56,4,130,1,186,80,125,187,98,190,0,69,59,139,17,19,41,27,42,133,234,15,8,100,63,204,232,85,17,57,177,242,84,105,79,32,238,124,86,60,175,244,205,179,125,16,241,196,180,190,10,62,153,125,15,192,85,148,222,119,94,153,241,171,2,38,89,83,185,114,175,223,245,201,117,255,93,189,72, +165,119,207,139,187,83,116,254,52,43,148,206,253,35,33,125,114,133,43,47,51,17,30,1,241,24,59,245,201,147,222,48,142,14,0,201,197,80,227,168,128,78,71,61,158,22,201,249,24,151,174,57,8,89,168,6,143,98,78,138,204,60,146,85,74,10,97,69,83,225,8,18,221,20,159,70,18,249,198,228,74,70,93,158,12,82,162,195,17,165,35,20,53,124,147,184,185,59,23,223,113,57,39,161,77,199,101,11,197,106,18,23,240,205,145,184,242,238,120,65,164,134,196,230,190,62,207,151,206,195,177,49,20,247,31,62,111,3,114,31,132,54,100,15,127,30,135,150,57,3,218,241,45,245,26,154,167,110,39,118,147,156,32,113,139,235,196,123,36,71,231,247,1,80,76,47,223,30,197,110,237,228,223,194,155,69,246,120,82,0,55,13,88,108,118,245,156,1,116,70,222,61,154,135,9,157,172,133,207,240,229,185,190,112,32,1,116,117,35,100,202,172,112,12,70,249,90,119,180,88,171,130,16,234,5,61,240,88,20,202,128,4,119,126,116,23,7,208,56,26,150,34,203,10,241,223, +180,8,92,153,17,171,31,178,95,162,215,135,236,155,134,80,173,203,119,85,70,188,87,133,187,210,150,0,8,194,177,202,12,40,8,224,3,62,28,69,245,42,251,150,126,123,105,74,50,34,35,182,61,100,184,115,81,121,40,239,158,119,226,110,166,158,100,144,175,123,101,217,79,172,112,219,185,214,133,113,73,50,178,55,185,138,119,60,24,102,63,114,18,17,45,88,153,48,0,160,25,237,106,114,161,155,243,154,185,124,215,196,173,249,139,102,22,92,60,20,91,162,47,96,77,6,11,122,89,246,135,38,217,143,53,248,217,195,191,201,123,42,26,151,22,231,30,27,218,167,135,186,141,82,177,169,58,78,178,91,69,74,99,102,120,54,37,50,34,69,70,220,36,218,28,236,238,245,173,39,225,207,51,92,215,86,149,15,193,73,16,140,74,91,250,137,134,72,187,198,46,54,240,116,108,84,202,153,177,64,115,212,208,147,190,167,216,197,27,20,163,47,149,154,220,212,210,231,190,184,208,14,54,238,253,244,78,187,159,205,204,233,244,250,28,110,143,255,251,171,90,74,120,52,30,170, +23,71,155,246,238,51,58,194,227,38,109,46,189,18,93,27,42,84,189,102,205,179,243,20,248,108,178,79,19,236,177,172,100,47,142,6,50,98,81,220,215,100,45,16,12,159,194,235,9,190,40,217,204,4,108,58,154,87,103,92,73,182,27,116,9,239,241,63,206,221,90,148,253,96,68,205,61,252,189,151,197,162,55,16,171,94,41,87,152,205,70,249,50,223,231,6,31,39,54,169,52,159,107,88,232,136,175,89,44,234,84,71,235,97,117,95,184,61,193,251,250,11,95,100,65,245,134,125,66,155,238,41,167,54,153,172,52,251,170,70,52,116,17,12,230,16,231,202,44,130,13,15,124,131,72,144,176,64,179,190,249,33,97,105,88,227,55,232,64,67,157,69,153,138,1,10,111,30,211,248,221,174,60,134,87,58,144,245,176,230,155,234,200,42,225,236,230,6,237,218,140,128,58,140,35,226,91,3,133,162,234,40,128,222,29,34,69,224,6,143,204,124,247,204,155,178,60,38,92,205,100,4,65,245,58,169,53,167,235,244,50,170,201,193,9,156,136,79,93,69,59,231,72,101,106,76, +166,210,148,69,144,141,182,58,221,60,42,199,149,112,75,31,64,225,209,34,162,95,32,123,96,44,248,111,184,75,11,211,159,218,7,66,107,111,217,95,232,171,249,124,231,123,106,106,215,207,64,168,20,138,233,83,182,109,233,140,115,246,107,94,159,103,208,168,94,166,251,195,5,221,28,84,74,251,133,101,210,177,6,224,136,141,33,55,35,161,241,78,40,47,102,116,240,138,150,64,80,245,232,9,160,26,61,159,152,82,90,225,233,164,176,143,246,56,52,199,52,210,121,195,211,201,229,112,49,175,106,242,150,53,239,218,96,154,135,147,247,178,84,123,76,214,198,93,116,109,53,212,50,115,229,173,79,27,98,111,51,8,216,90,238,26,218,123,151,23,187,76,32,121,107,215,19,86,111,9,218,149,57,27,118,160,204,7,242,79,235,199,125,108,238,125,11,61,35,8,148,124,81,245,134,216,41,130,107,151,173,221,88,87,45,115,123,79,193,51,204,39,147,201,128,58,143,146,57,7,75,91,123,19,84,247,134,250,228,224,189,107,137,64,211,21,90,92,91,154,215,13,162,208,221,106, +78,195,109,241,252,185,119,187,236,151,145,37,242,192,35,103,235,108,83,211,149,107,227,98,158,117,24,35,203,216,128,77,132,58,188,155,32,247,152,99,210,195,73,179,122,43,20,67,234,73,163,149,211,115,196,203,91,111,183,166,189,112,211,227,53,247,205,217,190,206,169,60,8,132,57,198,89,60,55,138,4,61,151,104,251,8,141,168,32,89,192,193,23,19,83,168,91,190,30,111,69,75,197,243,3,211,95,38,25,121,40,86,225,141,102,156,43,58,247,193,94,33,231,102,106,67,237,3,39,77,10,18,193,58,137,38,140,171,29,173,153,145,253,7,43,78,154,184,118,62,27,180,105,123,246,196,93,204,168,183,73,59,165,76,226,45,152,54,207,41,176,164,142,51,97,203,252,132,105,84,31,27,42,162,181,53,253,18,15,108,87,1,199,236,203,247,4,208,143,175,4,2,231,75,167,47,106,27,168,251,59,35,180,158,199,138,152,107,152,51,5,165,199,158,224,106,57,57,44,9,164,254,56,199,55,7,188,154,198,172,246,153,247,55,203,236,153,251,8,75,87,98,153,49,94,11, +86,134,57,175,226,20,72,91,212,217,88,161,182,218,241,86,72,67,155,94,215,40,107,192,199,120,34,1,95,170,242,163,208,178,22,53,53,133,89,83,59,84,201,25,70,128,220,253,210,21,103,195,253,83,105,31,243,136,26,172,75,221,51,178,95,67,144,113,236,172,125,254,178,91,95,114,26,22,47,159,142,239,245,69,121,236,210,110,184,75,241,49,128,255,229,135,128,62,233,216,74,192,147,201,76,233,219,19,58,248,30,134,191,244,112,119,49,186,12,137,42,28,98,238,35,121,212,238,6,163,203,19,8,127,0,133,195,187,164,53,183,70,227,36,41,227,187,153,125,3,178,157,62,60,151,137,238,86,33,150,127,33,178,101,68,11,82,33,43,98,180,127,91,231,110,243,74,106,133,169,201,102,59,148,242,75,87,89,76,46,30,196,232,212,180,220,157,74,91,186,59,119,220,62,244,170,242,199,185,244,132,68,220,121,134,199,105,40,133,128,5,14,65,130,219,237,163,15,103,212,71,36,225,174,237,63,61,240,60,142,73,194,87,71,197,202,4,104,230,201,45,177,32,205,7,111, +91,3,163,181,21,125,222,66,85,253,175,197,181,55,204,19,218,83,208,167,177,232,130,56,48,211,63,206,158,144,242,111,1,254,191,159,199,229,12,131,174,185,95,53,219,87,213,35,211,3,22,37,4,114,60,181,170,60,143,7,22,235,249,192,10,122,158,79,88,0,223,249,60,196,106,97,31,177,177,83,21,109,146,189,249,6,94,170,199,70,22,16,103,91,97,249,249,113,192,4,7,243,202,41,219,209,192,171,255,103,229,142,195,83,76,210,112,98,185,91,47,91,224,238,219,178,7,126,236,254,19,221,6,196,2,125,237,49,174,168,218,219,62,130,172,103,232,62,33,143,20,19,224,35,91,4,70,216,221,160,39,176,51,40,131,6,171,33,31,236,245,151,3,71,87,97,102,133,55,209,109,66,80,220,165,43,14,241,221,117,158,88,118,203,131,220,210,225,32,8,225,227,236,59,153,90,27,171,192,158,245,62,143,17,143,229,229,149,26,191,39,166,53,53,250,29,156,67,111,202,227,242,220,234,85,76,90,164,103,61,144,41,241,69,29,120,189,130,203,159,99,172,163,197,34,57, +22,253,3,83,141,111,146,234,184,70,197,105,109,232,137,118,205,242,142,137,41,131,138,8,38,9,119,126,97,144,94,238,126,132,145,148,15,78,112,237,225,130,237,87,127,102,210,16,203,131,83,50,45,19,42,47,37,224,221,251,211,41,133,59,152,23,80,96,170,254,108,16,59,148,101,214,86,145,56,95,250,211,3,125,215,254,62,246,96,160,150,10,36,66,79,193,182,235,170,59,158,5,122,218,28,110,234,216,125,146,33,47,0,30,13,227,249,224,177,252,197,74,9,248,20,90,144,130,54,227,121,87,183,140,231,249,212,151,173,217,59,54,107,61,6,29,4,2,56,238,11,163,32,173,7,245,207,28,49,33,69,236,141,12,49,133,234,85,79,187,127,88,208,2,254,245,157,83,217,236,106,204,4,111,101,239,169,86,197,187,62,69,124,162,112,13,210,65,110,130,189,61,210,107,195,235,154,219,242,235,23,23,34,69,0,57,85,240,144,88,5,174,1,208,186,114,102,30,62,187,174,237,226,41,146,99,230,173,80,226,204,156,49,157,95,155,22,219,47,28,48,118,156,60,250,114, +27,57,8,163,86,141,243,130,223,6,128,140,229,79,0,193,202,241,123,64,130,223,134,3,192,191,73,196,181,42,17,79,115,138,46,20,143,42,173,184,148,112,247,219,236,58,31,57,189,202,87,217,24,138,254,119,190,128,253,197,23,30,20,226,243,193,33,30,162,221,27,237,234,39,63,30,120,64,110,115,32,100,2,177,165,51,254,184,5,201,239,127,234,168,124,253,83,71,5,25,1,125,178,193,50,177,86,59,52,206,176,81,179,84,117,0,207,180,119,158,164,101,189,153,252,179,161,255,81,112,180,161,157,223,92,120,84,248,104,206,62,253,81,107,86,247,22,5,187,113,243,227,223,222,212,3,224,140,163,69,162,105,120,204,4,26,44,162,115,171,52,171,25,230,207,85,90,196,231,219,150,222,243,9,85,249,182,217,203,57,23,78,122,73,240,248,118,134,111,31,200,144,123,142,237,71,24,211,213,44,198,78,3,76,193,143,220,75,6,67,187,190,137,33,147,38,223,167,77,45,51,182,179,120,123,176,143,108,102,169,143,47,52,69,189,163,160,107,152,126,214,251,229,144,138,167, +213,156,244,31,226,244,112,0,244,23,161,24,189,78,127,152,111,204,179,128,62,97,120,234,228,50,48,251,134,139,47,39,107,199,125,126,153,63,215,105,87,10,130,254,130,226,212,68,72,143,204,90,39,88,251,179,201,126,66,213,225,45,42,164,102,214,89,67,186,71,153,60,199,68,5,165,252,33,136,223,31,229,104,39,210,11,90,32,22,130,20,60,133,223,238,86,168,27,6,46,61,81,131,161,122,85,149,139,73,124,247,165,171,63,29,168,49,167,62,187,140,226,3,69,106,86,93,199,20,199,93,103,195,249,152,122,249,152,27,111,145,152,174,19,231,238,103,61,112,43,46,189,199,200,114,48,142,7,250,21,18,195,34,76,61,162,195,67,101,243,114,1,25,237,218,234,208,189,110,58,251,254,158,100,150,150,211,148,31,19,247,228,252,121,30,56,14,31,30,59,86,112,103,127,69,29,143,101,70,248,59,194,114,162,79,76,248,125,173,102,225,77,128,136,175,171,80,29,63,74,80,73,37,77,40,203,187,218,62,247,254,203,192,78,50,128,32,35,244,158,206,36,250,39,245,238, +155,129,39,121,13,86,81,102,68,195,58,11,59,244,237,236,135,29,45,208,212,84,107,115,84,234,149,182,174,84,60,160,178,16,17,176,198,96,163,176,34,196,173,135,118,154,196,212,137,248,197,31,52,255,63,78,70,191,64,6,72,91,41,200,113,40,209,95,239,14,223,9,122,167,46,127,158,30,82,64,43,89,174,62,246,90,52,20,46,120,162,208,198,87,135,238,226,91,27,114,122,128,164,17,67,235,91,210,107,253,254,202,167,1,233,10,107,70,144,166,244,179,109,240,74,130,32,19,129,177,33,63,175,111,83,63,112,119,52,245,214,171,57,197,239,143,209,247,240,9,176,145,224,200,46,116,59,1,85,249,33,13,213,161,86,197,83,18,28,195,83,184,2,1,57,227,71,97,36,155,238,47,158,215,202,13,128,140,30,30,92,84,49,127,140,129,19,88,107,238,99,54,48,85,215,107,237,103,183,136,176,142,166,249,156,187,2,132,234,227,185,254,118,103,244,94,150,248,211,19,56,95,49,128,67,192,136,70,67,214,100,80,216,242,200,113,122,187,56,112,243,159,33,56,150,83, +224,84,255,221,127,254,79,127,252,179,255,240,239,127,251,79,255,254,183,255,195,47,250,155,63,4,129,191,254,253,183,255,252,191,253,229,31,255,209,175,253,187,95,15,255,167,255,240,219,255,30,100,253,213,111,255,252,135,191,249,139,0,231,183,191,248,253,31,254,249,95,126,251,187,223,127,251,87,191,232,175,255,230,247,191,124,136,254,240,167,206,255,244,219,31,255,203,111,255,207,239,127,252,237,247,223,254,248,47,255,248,135,63,254,227,127,235,251,207,255,242,23,126,237,63,248,69,191,253,235,255,249,135,191,248,75,191,234,111,254,206,175,253,235,63,252,179,95,245,219,223,254,254,247,255,242,63,252,127,195,127,141,126,172,225,215,254,246,175,255,252,55,126,81,80,20,148,253,246,247,127,248,219,63,252,95,15,201,31,127,255,219,199,124,191,255,227,223,249,85,255,247,31,30,210,63,254,211,63,255,154,228,159,126,233,241,247,255,240,251,175,185,254,248,143,255,240,251,223,61,148,249,203,191,250,253,111,254,240,95,255,233,127,252,111,170,255,233,242,191,254,246,31,255,227,95, +253,237,239,255,245,191,252,47,127,246,63,255,217,159,255,187,63,255,243,63,251,115,24,18,1,111,195,97,48,36,255,14,123,188,142,12,238,180,129,230,114,122,214,251,113,133,190,123,121,139,67,135,232,39,206,97,73,126,248,103,158,197,7,101,248,188,146,179,59,100,17,7,197,251,238,112,56,24,14,251,155,117,62,7,6,111,172,104,196,5,13,66,39,74,67,103,126,211,21,62,151,214,147,27,188,180,190,251,3,197,207,250,134,239,82,166,150,174,209,227,112,244,204,180,70,54,98,196,117,111,115,24,96,172,244,63,119,125,243,178,23,54,31,250,59,124,215,83,107,102,233,177,9,237,251,125,34,136,76,94,17,131,178,35,63,126,134,74,66,249,253,80,69,67,7,157,207,29,190,95,5,230,216,96,237,211,19,144,195,151,53,137,7,103,100,40,79,29,190,235,169,137,229,194,189,12,228,242,132,124,95,108,253,187,190,90,49,93,166,192,12,199,185,25,142,23,128,129,229,73,161,249,29,38,255,116,78,246,11,146,202,163,230,30,52,107,109,88,161,134,184,217,30,121,206,168, +185,54,27,157,187,103,121,104,203,23,126,57,216,33,194,98,70,255,190,188,219,141,91,233,251,7,147,217,135,197,247,60,54,146,34,68,185,74,177,186,46,213,42,18,69,175,19,175,22,201,116,98,20,72,31,187,32,114,1,200,87,132,214,229,129,196,175,220,96,113,135,54,143,27,117,176,53,54,170,193,120,156,184,217,175,236,78,174,174,224,253,26,51,76,200,99,93,230,44,120,121,200,72,206,219,172,69,154,141,198,51,6,237,34,169,215,37,182,99,83,101,46,70,44,28,242,228,142,190,167,27,129,25,242,88,123,10,43,125,140,147,63,107,37,52,18,176,202,166,53,41,128,95,83,214,244,203,249,84,146,250,68,82,103,95,123,224,76,222,224,35,208,105,152,66,193,125,220,104,178,191,237,98,158,163,214,61,239,88,119,63,243,73,20,170,103,209,169,73,188,63,50,135,65,207,143,47,136,172,83,116,249,36,6,209,186,163,99,213,31,187,226,152,109,225,210,89,234,129,135,147,235,249,187,54,58,66,232,157,102,60,6,252,77,1,53,190,42,98,239,245,185,242,129,213,192, +64,41,218,170,250,78,201,139,63,90,48,120,64,140,241,2,36,67,214,170,60,195,30,213,143,101,231,215,94,185,246,150,203,228,213,84,246,48,151,116,54,118,201,130,6,243,66,163,185,162,251,181,29,130,33,93,90,250,210,133,168,241,1,47,37,117,222,5,2,95,101,190,109,212,232,116,225,43,9,128,251,71,225,236,142,54,108,201,221,246,206,65,169,199,55,57,76,228,9,24,247,45,61,103,253,109,183,234,185,123,117,197,128,153,154,72,48,6,114,39,253,176,11,225,31,87,47,114,53,217,12,0,53,108,241,254,220,144,33,212,140,248,7,80,71,20,35,64,197,154,87,85,103,201,7,95,152,120,8,139,211,79,185,166,212,110,239,247,200,61,10,168,223,191,188,151,17,252,234,246,218,160,131,237,10,41,232,30,100,28,156,251,96,250,20,97,221,71,154,87,125,235,250,114,225,131,122,153,141,20,175,243,102,13,182,134,119,214,142,66,139,5,129,255,195,177,59,22,139,249,212,44,84,181,36,247,123,104,205,227,88,75,193,13,52,198,53,185,151,1,177,231,54,215,57,197, +229,66,91,82,23,188,151,32,94,45,247,76,170,75,76,250,162,128,159,5,9,168,96,24,29,60,154,177,242,124,161,223,52,74,215,157,207,153,114,48,0,95,109,101,67,55,227,199,189,237,153,86,154,78,145,226,140,226,15,217,141,235,193,218,234,52,96,115,47,47,9,119,240,174,9,104,184,184,132,157,139,157,127,230,34,125,46,235,131,92,96,21,121,246,183,20,167,228,224,92,53,113,54,35,179,178,187,147,61,77,180,47,123,150,214,114,126,77,14,93,153,99,251,253,2,173,34,247,92,230,58,199,248,133,14,191,176,244,137,89,122,53,55,219,96,121,94,238,28,79,224,112,53,203,215,202,75,211,82,137,158,230,152,222,122,207,16,28,16,158,9,19,202,157,153,253,6,245,6,125,162,196,104,234,4,23,231,28,26,207,174,240,214,8,155,102,44,173,119,222,120,177,194,155,86,166,98,42,58,86,214,92,100,139,58,226,195,126,192,167,104,168,238,128,15,160,20,213,123,218,136,143,6,254,182,72,79,233,180,176,228,105,207,169,106,170,67,124,163,110,45,143,194,152,119,117, +248,242,194,185,47,74,223,14,94,147,222,93,136,1,166,22,103,102,191,152,89,148,227,248,195,114,244,45,91,129,139,31,177,32,189,184,62,205,194,101,8,242,78,110,55,132,126,183,243,212,115,53,40,75,2,55,141,31,87,234,176,246,52,147,151,221,225,141,120,1,178,85,207,181,176,82,6,147,187,105,200,139,92,71,10,165,204,233,210,126,38,133,8,242,197,51,177,204,227,153,63,223,171,3,81,121,82,3,202,51,93,249,100,105,148,71,111,229,57,70,52,219,109,69,163,252,79,236,176,186,98,36,199,210,249,100,74,109,151,174,172,104,203,116,29,7,2,8,150,33,188,110,66,79,214,68,76,97,213,201,139,201,48,105,240,226,93,99,126,114,147,51,74,190,195,19,22,210,55,110,206,110,147,231,174,203,128,211,155,46,222,63,124,137,219,13,216,238,83,167,116,101,108,238,33,215,10,162,229,26,196,4,139,155,48,130,241,173,211,11,97,192,225,11,87,55,239,171,7,175,116,2,17,56,230,235,234,165,71,234,212,223,15,36,211,253,228,186,236,154,184,55,103,136,169,133, +62,170,92,107,254,24,13,43,55,205,143,78,51,99,243,54,245,29,58,31,64,55,182,152,85,181,51,241,233,243,190,228,58,49,240,249,228,185,175,132,2,213,6,137,132,219,167,120,113,188,191,182,46,72,68,121,65,194,2,21,253,114,26,2,161,201,237,170,247,236,183,238,122,227,114,253,46,165,76,60,87,234,211,181,241,84,191,86,222,82,240,236,113,67,58,200,236,113,170,17,252,77,176,87,193,116,52,164,224,96,42,121,33,52,4,60,135,81,232,88,226,176,162,234,102,202,127,17,77,184,134,78,53,110,104,0,233,43,187,145,30,138,151,81,229,157,62,243,77,77,60,55,233,227,211,6,7,67,8,124,150,253,133,255,162,158,179,120,231,155,193,89,202,78,142,253,215,231,80,219,244,228,104,231,48,79,242,45,174,157,156,226,190,176,132,73,151,205,45,24,108,46,94,26,90,110,64,79,168,9,205,5,182,170,91,123,39,141,89,60,189,7,102,21,34,212,48,47,26,122,87,57,203,240,33,194,53,62,68,238,8,230,212,125,7,41,174,187,218,229,251,246,184,224,234,218, +147,122,193,21,32,146,154,245,147,218,211,42,249,240,231,216,21,127,186,209,4,115,90,118,117,107,34,24,27,224,141,122,181,186,25,234,29,93,219,98,221,99,55,36,40,34,62,155,185,130,115,183,46,141,183,120,240,214,221,138,212,239,136,64,221,196,90,126,89,161,77,227,186,75,109,183,238,70,230,2,46,246,252,112,237,60,182,127,238,61,217,250,169,53,247,119,26,59,93,87,191,218,119,173,136,167,143,25,225,128,96,66,246,75,251,68,181,4,49,239,216,189,180,70,155,25,74,83,84,85,14,93,12,189,188,104,86,233,138,126,142,119,141,127,181,180,83,108,175,46,177,149,118,233,192,46,117,99,41,229,7,185,8,100,170,94,166,106,133,54,87,83,203,132,150,79,246,238,140,18,61,198,69,229,79,227,93,132,115,35,36,206,16,250,201,252,252,50,31,221,5,229,120,73,33,210,203,82,165,165,61,203,32,209,220,188,230,198,114,247,147,26,67,123,99,225,70,189,89,215,111,236,239,34,108,216,100,212,85,8,187,63,125,254,154,57,68,6,65,49,205,249,41,69,80,140, +9,236,121,156,203,160,87,29,230,247,182,252,83,87,109,246,46,119,152,83,146,234,223,45,8,136,124,114,58,149,131,11,102,76,194,122,111,46,35,138,2,195,128,176,210,5,113,34,1,187,180,246,56,29,120,169,123,222,13,26,47,52,57,106,232,80,158,128,18,45,220,13,97,170,71,193,60,215,63,215,36,27,112,76,100,244,245,251,190,21,49,120,250,56,229,127,226,14,211,240,72,248,128,11,174,107,247,101,12,205,233,0,47,254,220,112,145,44,142,123,195,141,240,182,250,1,30,194,16,16,175,132,112,108,166,10,99,188,204,24,119,102,249,171,164,48,88,203,97,228,98,64,114,129,207,174,193,232,64,44,243,249,118,115,184,49,46,132,127,158,75,159,137,102,121,115,105,74,74,186,214,66,177,248,201,136,116,108,192,131,71,17,43,195,125,223,184,91,177,35,219,90,23,176,74,17,83,173,190,186,160,51,234,174,235,15,189,20,86,2,215,177,166,222,217,134,199,189,79,103,114,13,28,80,130,25,220,109,69,160,52,78,212,101,208,138,13,9,119,81,233,140,206,54,135,111, +103,203,102,88,82,17,125,144,153,148,63,143,58,144,148,14,253,28,222,238,143,125,66,197,92,29,74,111,64,127,34,237,130,38,237,91,236,6,138,175,133,251,35,198,124,220,80,77,50,178,132,72,129,98,137,55,85,92,186,218,224,93,6,76,159,209,141,27,35,15,107,146,161,206,9,185,100,129,136,153,196,91,248,86,194,83,11,55,111,130,68,213,181,19,80,89,157,207,239,226,154,228,20,99,135,74,234,144,240,242,130,205,195,222,220,249,240,194,104,217,230,71,196,220,139,189,59,213,196,222,164,70,214,103,89,213,24,132,194,218,132,90,77,185,237,85,37,95,131,244,157,208,0,172,2,67,163,214,71,117,174,43,58,22,46,190,3,235,132,90,121,136,178,205,119,214,117,214,248,81,56,159,154,124,84,198,99,122,189,152,60,251,80,85,144,142,185,191,82,195,29,193,221,48,108,3,223,86,31,100,121,6,170,14,199,114,25,243,130,85,33,74,48,228,31,133,149,69,203,215,23,162,23,200,199,193,35,125,175,75,168,176,122,46,127,234,28,151,74,53,76,154,222,52,83,235, +210,178,46,184,163,129,247,247,163,253,22,145,152,8,5,205,114,55,133,53,17,104,175,226,139,122,121,218,134,119,234,42,88,219,125,82,23,225,51,223,178,184,54,226,194,104,110,46,111,164,236,28,183,112,116,165,214,249,7,1,156,115,26,133,177,131,123,165,71,18,17,209,5,250,167,134,253,162,248,88,70,227,242,213,105,214,241,9,204,111,181,26,59,58,159,96,239,225,216,182,243,186,214,113,142,33,117,129,81,191,108,77,223,147,226,242,99,162,57,110,204,240,14,92,217,218,93,238,101,206,109,89,186,204,219,250,109,168,57,36,190,18,81,188,47,104,44,152,188,231,44,199,200,196,155,247,107,145,164,79,108,115,85,114,29,23,38,239,205,151,64,146,44,72,122,249,215,239,36,62,161,196,135,104,60,71,208,183,44,45,126,207,161,206,140,49,212,7,163,150,164,115,94,24,66,64,160,189,126,114,161,233,2,11,133,132,243,96,238,126,53,221,78,208,193,217,247,29,4,211,132,199,89,195,220,44,206,131,0,70,200,160,9,250,226,107,150,91,147,217,0,206,21,112,92,57, +94,225,91,193,219,33,53,209,245,184,208,186,242,52,8,80,111,238,185,74,77,35,83,53,164,73,205,111,7,129,29,111,111,126,54,237,8,249,252,112,124,151,55,62,140,8,201,145,78,196,120,178,11,140,89,100,68,32,238,174,53,18,157,54,19,10,161,53,69,19,71,198,212,142,250,49,122,100,188,167,169,110,116,233,58,79,53,242,183,4,212,93,79,110,96,23,174,62,14,194,211,158,5,56,106,110,34,198,197,45,194,59,80,252,49,109,119,46,133,211,188,189,168,26,126,208,229,162,252,248,228,213,180,110,90,63,20,159,145,93,86,59,214,87,62,64,212,75,67,64,223,12,244,184,194,44,116,112,99,214,179,53,154,104,242,7,137,166,22,90,43,95,98,19,114,188,128,212,123,247,176,19,30,235,195,14,29,37,244,213,186,143,198,240,43,245,134,90,54,0,104,247,35,152,198,128,67,37,1,45,253,38,150,126,106,16,26,48,196,179,39,124,64,250,107,62,107,6,17,218,163,244,216,171,22,89,59,158,173,246,110,243,201,149,224,239,239,183,1,74,145,241,184,9,16,163, +119,62,71,27,165,20,111,126,185,252,60,211,187,121,18,38,197,67,210,97,79,92,239,215,83,115,43,28,193,4,86,117,209,103,6,100,103,125,182,81,204,119,241,106,27,243,107,30,182,65,117,159,185,87,40,213,148,64,178,112,210,232,146,203,211,155,198,82,235,69,198,30,116,190,155,43,97,28,251,111,148,154,20,247,90,33,225,34,139,142,19,36,188,229,224,66,209,143,118,242,230,60,225,202,211,158,33,192,185,159,150,4,83,85,178,236,113,252,12,119,142,54,233,138,188,253,104,121,123,136,51,109,114,138,101,183,246,227,210,146,63,195,61,150,213,29,36,221,240,87,243,177,128,142,47,72,109,118,130,92,93,199,49,11,60,252,57,65,82,120,65,222,13,72,6,143,195,151,244,129,6,185,67,203,59,90,244,149,203,33,209,16,1,69,207,171,70,10,87,83,191,62,22,173,16,18,20,227,211,159,2,154,23,95,117,243,40,204,242,187,237,51,177,212,149,157,222,87,203,221,71,74,252,44,146,103,168,169,167,195,244,137,103,224,237,158,58,177,239,177,210,49,111,0,59,142, +185,156,100,154,120,174,87,144,67,242,124,17,242,166,190,123,112,250,230,17,189,134,22,208,173,120,212,176,91,93,183,234,211,95,234,34,151,217,56,170,204,26,76,215,66,223,10,159,140,80,125,117,147,225,117,142,43,126,144,134,214,232,37,48,54,245,11,186,91,174,160,208,232,102,227,106,233,30,133,160,24,36,191,242,166,224,204,35,226,143,124,174,52,157,115,85,89,79,109,61,212,62,241,143,166,198,106,160,112,180,83,219,32,164,169,176,142,82,201,42,221,196,180,239,251,0,88,179,145,161,17,18,146,153,107,119,198,155,200,115,157,97,0,13,240,14,241,50,220,157,213,93,20,76,108,34,248,194,158,24,222,120,51,117,75,157,62,26,151,183,32,234,167,179,250,186,124,117,208,214,208,179,158,136,160,241,217,114,0,64,53,239,7,50,252,75,114,187,217,194,142,243,226,214,62,214,123,232,37,249,187,97,95,155,65,240,9,190,136,215,158,158,62,137,247,90,92,253,97,179,67,222,142,37,54,159,120,53,10,68,47,33,56,88,79,1,80,117,36,167,36,225,45,129,207,175, +64,103,247,82,178,222,53,78,59,222,7,34,164,216,46,203,48,181,18,41,121,26,125,122,23,221,239,198,187,16,222,100,92,177,1,180,255,237,123,129,62,164,176,14,252,210,244,190,155,145,105,126,121,213,223,127,231,114,167,146,194,155,97,32,199,107,237,215,107,170,111,204,245,52,224,188,201,230,56,186,182,77,176,156,104,252,180,244,107,206,22,178,86,67,58,253,117,254,168,228,170,25,104,254,30,114,215,168,103,192,90,217,125,45,198,167,230,82,123,205,53,162,10,7,213,4,77,191,93,89,244,241,71,105,58,65,225,181,254,7,76,67,243,112,163,193,120,114,57,233,43,8,36,94,160,37,89,12,185,47,244,6,182,76,72,29,84,109,128,151,176,178,164,38,216,9,195,224,192,241,126,57,22,140,83,0,214,155,52,207,81,186,236,205,250,113,245,126,204,43,87,224,234,231,3,129,121,194,21,73,187,14,127,202,61,234,99,131,193,15,204,218,134,214,236,76,235,101,50,177,14,220,13,207,238,176,48,34,250,158,15,27,26,2,210,166,103,63,104,106,210,247,113,246,0,161, +21,124,146,44,183,176,112,229,239,52,245,124,227,245,218,146,249,74,16,194,186,206,236,63,244,192,243,211,146,242,66,47,46,189,95,101,248,201,134,213,120,91,38,118,45,89,57,29,163,40,152,181,251,17,236,89,45,121,45,12,111,52,10,102,79,21,117,106,81,248,138,189,101,7,158,194,205,172,33,174,231,244,88,17,168,155,243,214,157,153,174,91,109,86,198,198,67,85,72,174,189,54,218,183,217,8,74,238,69,130,177,207,83,27,112,248,110,249,210,142,233,57,178,135,3,17,50,91,114,199,57,241,7,154,236,25,128,134,126,194,232,29,72,43,36,141,131,145,98,105,150,82,56,131,227,34,161,3,48,195,86,22,236,69,51,52,6,135,54,71,229,120,165,44,87,210,201,207,45,250,85,163,6,246,140,240,115,138,128,187,95,55,180,247,150,207,215,14,220,110,246,139,227,105,193,57,111,235,58,68,241,197,97,235,76,143,82,69,46,239,6,23,250,43,146,93,57,98,44,110,166,87,16,37,33,221,32,105,239,60,29,249,25,229,200,239,91,134,72,103,143,39,117,36,255,184, +49,77,151,166,20,128,195,136,216,2,29,182,67,34,222,97,200,48,155,156,156,246,208,149,28,23,197,163,233,246,223,132,218,71,241,62,153,156,180,110,99,199,171,117,11,93,58,93,122,23,141,234,84,235,112,116,61,102,232,5,13,142,250,17,160,43,147,169,251,244,0,208,245,42,107,214,108,213,181,166,177,96,64,196,171,59,115,169,174,77,164,125,159,63,76,38,93,13,170,125,141,110,48,70,23,167,241,176,237,215,238,122,201,37,188,143,135,121,218,175,195,39,174,233,223,147,229,16,181,102,70,153,4,19,230,105,242,202,57,60,234,183,216,234,227,25,175,151,227,193,56,237,11,224,72,175,159,21,37,204,25,61,82,243,31,190,242,117,61,221,26,50,203,254,45,239,33,210,22,243,67,240,166,106,180,136,36,100,218,0,227,166,171,43,79,235,165,99,10,215,103,23,112,189,191,148,75,151,75,76,237,76,130,3,147,220,187,32,33,220,227,39,133,211,141,219,157,87,237,43,22,188,21,160,81,227,193,212,33,199,242,202,115,45,37,2,204,143,119,112,247,195,4,239,186,119, +97,250,7,6,240,198,47,208,60,63,240,157,159,231,218,185,115,211,60,244,191,244,163,69,201,218,161,28,220,77,247,185,104,25,215,46,50,217,98,196,192,172,207,38,57,108,74,100,169,49,141,43,223,48,86,203,213,208,57,56,238,48,110,69,155,249,173,9,36,216,11,143,122,28,214,91,84,26,106,115,58,1,23,139,34,208,100,116,119,116,143,245,125,127,152,68,252,60,177,101,231,48,164,182,47,245,142,1,129,185,4,230,19,7,255,20,43,69,4,14,99,112,62,21,216,221,244,227,166,70,157,190,145,62,23,39,142,253,65,199,248,213,171,178,209,149,1,245,233,197,111,35,133,87,172,158,192,113,59,121,183,164,112,195,94,171,97,230,183,209,146,203,109,17,13,46,227,254,131,120,185,97,234,193,68,115,189,61,146,80,63,94,208,134,160,14,79,37,156,103,16,190,243,119,79,136,70,19,183,63,105,47,249,31,251,123,195,227,227,175,87,199,167,52,3,130,246,5,72,242,163,173,145,15,158,219,68,135,128,125,229,151,196,39,232,240,54,189,132,186,79,16,7,124,4,153, +226,114,194,104,55,44,58,120,205,129,129,95,157,103,212,124,72,104,236,50,12,204,249,50,31,78,38,191,46,139,158,41,229,152,165,207,22,31,218,238,153,35,237,121,204,32,212,167,200,188,5,102,188,0,106,29,26,157,231,222,253,233,113,180,39,185,68,253,6,206,114,12,253,179,235,106,129,116,93,129,135,166,147,92,111,43,15,100,238,207,23,222,155,155,173,57,148,73,17,207,133,187,246,242,248,245,142,27,144,144,246,216,171,27,83,59,88,249,215,155,251,216,191,56,54,135,195,207,157,84,38,123,36,188,67,141,163,137,104,9,171,26,192,201,246,22,63,38,14,188,233,220,220,139,100,133,179,185,210,239,7,77,222,87,162,192,73,150,56,186,252,27,207,231,113,82,160,203,158,6,85,135,63,232,76,170,77,149,4,28,146,96,24,131,193,67,60,218,109,154,19,172,246,186,186,86,167,189,90,243,254,5,185,6,167,57,188,97,89,109,112,57,32,21,65,221,219,78,127,6,78,165,154,170,195,183,110,220,11,133,99,6,36,23,103,135,123,86,91,28,171,45,14,3,81,157, +241,95,204,239,72,190,145,8,71,250,150,57,207,252,52,105,232,160,91,81,122,75,53,16,214,172,18,71,113,114,97,248,166,22,13,167,95,27,153,2,60,18,129,61,10,22,40,179,103,121,180,80,155,232,171,172,156,24,197,156,73,225,93,38,237,41,200,46,221,162,58,207,17,163,67,206,117,142,54,47,123,203,72,142,242,84,132,112,227,23,23,27,189,2,242,174,173,201,183,41,88,53,145,142,219,182,96,254,117,151,24,57,151,136,117,191,104,84,37,94,127,163,140,113,58,13,135,195,115,61,103,142,35,40,54,13,245,48,232,91,235,208,132,106,151,245,209,212,18,214,117,72,143,186,11,170,102,63,18,132,57,20,210,149,122,151,175,157,183,181,224,188,187,71,227,28,36,179,132,249,16,233,137,93,144,29,7,220,7,237,165,107,37,59,86,72,9,137,212,157,79,194,97,248,224,235,176,199,45,234,85,126,114,50,77,226,47,139,128,14,177,245,22,13,192,109,16,83,144,126,202,108,119,103,113,55,146,36,133,73,210,178,176,237,107,238,241,244,166,214,208,119,177,121,49,117, +170,173,93,163,89,53,92,26,86,127,64,198,225,4,216,5,181,139,143,151,60,204,239,5,55,215,186,193,185,2,117,116,229,213,139,174,96,7,1,143,78,200,65,212,222,133,169,43,17,30,77,76,193,137,31,165,211,152,90,85,81,93,119,166,38,232,19,253,169,150,118,123,16,96,7,222,42,125,184,198,225,53,156,120,108,92,180,75,143,53,8,85,21,124,155,199,77,172,99,142,87,164,174,125,248,12,79,160,53,225,4,205,162,12,103,149,124,176,200,230,215,69,162,89,69,184,100,119,220,219,65,54,224,135,104,12,205,50,163,26,56,0,251,252,82,93,145,138,16,49,92,115,10,166,45,254,89,253,40,7,121,245,101,106,187,246,52,163,55,105,89,113,240,56,46,124,104,218,117,234,37,80,10,2,143,247,114,17,130,214,213,243,98,212,78,94,226,241,156,34,186,178,121,25,45,88,86,54,146,228,26,70,189,128,12,108,4,200,45,18,82,2,183,186,103,117,162,226,83,130,44,255,243,104,93,111,20,249,37,129,95,130,246,204,57,218,4,13,129,123,26,28,65,64,195,237, +153,128,158,155,100,158,128,20,103,176,247,134,24,172,247,238,33,136,153,75,89,7,201,30,63,231,20,220,136,169,68,176,28,144,48,21,137,249,139,119,107,51,44,31,145,207,195,214,86,69,148,244,101,130,39,188,58,187,107,205,62,24,221,80,169,7,100,113,69,250,52,53,120,149,50,20,214,39,14,46,179,225,174,194,253,232,110,17,236,213,128,91,37,29,114,185,147,205,132,64,113,39,54,35,36,172,119,249,200,209,123,142,53,7,137,208,133,61,124,210,202,70,2,1,63,49,151,30,94,171,190,81,159,63,106,236,143,7,76,24,58,143,68,172,139,199,185,131,6,77,197,252,182,13,220,4,2,30,160,247,177,46,192,214,121,57,12,6,139,51,114,250,37,0,180,40,61,15,179,184,44,175,90,65,255,173,95,112,215,20,209,59,14,77,158,154,241,169,118,49,61,65,167,70,244,143,48,112,235,79,54,135,198,226,222,211,59,155,238,234,33,60,57,44,142,61,168,217,208,55,172,3,179,245,178,7,206,41,120,73,59,7,142,217,6,6,4,175,126,248,96,110,91,54,226,51, +140,0,232,45,98,158,205,222,3,98,114,105,245,89,219,214,101,225,144,73,141,152,150,106,14,225,199,171,75,185,180,191,157,140,79,82,147,119,35,219,197,122,144,201,20,38,67,160,115,114,151,158,61,69,31,169,187,233,80,78,91,76,238,132,161,182,42,213,140,44,144,188,143,247,96,80,228,94,93,221,171,97,134,211,73,17,72,61,239,46,245,235,123,83,253,11,138,217,23,92,51,87,86,20,231,58,30,170,228,146,221,173,193,130,195,49,255,213,233,166,150,39,35,85,119,176,64,69,16,168,251,28,98,223,50,19,4,51,166,30,190,220,189,170,213,65,209,57,22,60,109,199,122,37,240,41,239,139,146,118,139,27,128,12,245,69,55,38,136,57,119,126,173,185,91,242,192,150,253,147,53,63,3,87,210,110,133,237,129,196,129,249,249,244,5,90,63,9,93,115,146,188,174,226,95,109,57,8,143,36,141,43,250,202,212,84,96,103,78,132,47,194,114,178,119,22,244,40,152,110,21,69,127,160,20,138,171,51,150,162,89,175,7,181,107,103,82,142,65,133,49,114,55,49,150,224, +205,49,28,163,12,94,207,13,22,106,121,144,63,119,53,121,251,163,168,122,112,79,4,174,231,81,21,112,190,155,61,79,151,170,185,150,177,202,180,62,139,233,131,245,224,153,110,140,121,39,165,67,60,237,12,213,5,97,140,81,32,71,154,196,80,16,15,100,188,120,88,26,91,208,214,51,251,111,180,114,124,27,123,142,82,80,232,212,220,75,243,195,73,191,212,204,197,211,184,66,105,92,144,221,239,23,219,134,176,65,222,148,33,207,167,145,44,234,104,171,85,72,178,6,90,107,235,152,189,225,131,228,131,2,156,86,241,227,219,194,170,214,10,139,218,42,190,57,46,252,91,235,244,144,254,106,245,127,9,199,133,51,250,86,92,110,60,142,53,44,151,60,157,78,214,155,37,92,56,71,61,57,60,232,133,53,182,181,180,196,222,168,213,124,11,159,140,72,191,174,6,249,101,238,133,223,192,129,41,4,202,174,22,114,190,8,96,230,198,64,29,107,246,61,71,176,142,188,186,199,147,194,61,157,98,31,134,103,193,119,205,103,182,156,144,247,194,243,188,88,128,234,21,26,126,254, +77,208,1,83,163,245,254,84,191,84,161,254,4,19,1,139,190,68,152,231,7,27,104,235,225,164,94,20,145,37,219,190,80,197,223,55,102,250,53,252,174,185,19,138,222,235,45,244,165,212,182,74,141,137,219,76,207,63,50,229,205,166,43,221,77,253,141,144,65,218,204,208,102,58,182,254,96,7,10,79,211,77,157,164,46,171,17,59,123,200,165,238,19,15,43,214,125,76,100,213,216,134,221,251,157,224,94,82,109,135,73,34,100,235,211,111,215,176,243,240,160,90,150,144,130,113,157,84,131,79,224,69,61,57,14,10,55,207,241,100,134,234,23,72,103,65,8,174,41,87,20,71,175,175,152,171,153,128,236,108,175,5,206,151,111,143,93,160,115,143,60,246,16,183,9,168,98,3,222,189,228,216,131,121,196,37,160,47,250,122,206,3,72,81,61,58,178,207,171,32,189,14,156,24,250,209,117,3,93,7,13,10,95,51,215,196,14,81,66,169,244,254,83,40,21,151,135,156,117,95,82,182,240,224,101,191,190,93,159,247,184,89,170,121,161,47,252,174,132,218,22,66,65,161,164,250, +104,39,49,205,239,214,22,37,39,139,233,143,96,248,54,40,221,57,122,119,139,164,103,223,75,234,184,80,199,49,112,42,62,176,208,39,28,87,202,187,10,113,43,248,241,186,213,101,69,225,108,76,115,185,185,250,184,209,223,44,125,141,45,52,54,67,43,43,187,78,121,168,48,33,45,240,16,128,191,79,80,184,87,79,21,93,114,237,253,117,37,94,61,71,111,53,64,182,105,188,86,237,26,178,85,138,16,184,28,80,78,115,180,31,50,245,25,154,33,240,116,227,2,157,197,245,116,159,220,243,135,43,65,244,30,85,239,205,174,49,184,28,31,115,248,82,161,230,147,221,211,207,247,195,21,185,95,104,83,139,171,3,220,45,158,103,214,190,153,94,103,220,30,62,124,184,80,59,45,120,175,251,135,11,193,135,15,127,185,16,120,248,240,225,208,1,172,177,155,161,31,148,8,53,209,28,11,135,197,108,142,246,248,83,228,194,7,136,224,104,44,136,106,233,84,146,209,235,39,245,74,91,165,231,167,11,61,20,219,229,18,224,194,220,168,185,135,91,211,161,56,139,171,14,103,28, +158,127,113,177,232,245,109,70,93,152,77,24,101,247,45,88,48,0,15,181,180,16,153,240,88,75,253,104,154,181,213,127,107,229,31,210,95,173,204,47,225,163,5,208,243,231,89,236,66,111,38,11,86,72,83,92,54,39,245,99,53,7,77,114,163,42,189,187,158,123,36,143,74,101,138,30,197,249,114,94,82,250,218,117,192,169,17,223,74,250,36,21,155,50,221,80,0,133,130,7,36,117,23,213,87,70,162,112,189,161,244,37,32,52,229,63,253,98,20,150,252,211,126,66,162,226,145,91,4,69,134,189,174,54,193,87,210,106,205,34,181,205,125,163,14,219,125,233,114,185,48,142,193,196,226,192,218,61,227,155,188,19,154,198,183,33,44,115,248,242,2,188,140,190,88,51,27,85,34,18,154,233,153,204,146,37,195,169,34,47,92,100,60,130,141,124,119,165,142,128,28,129,249,94,197,241,44,190,42,104,148,69,16,134,55,21,190,135,247,199,88,136,116,31,241,26,199,113,73,253,36,218,52,112,34,89,38,120,124,228,117,247,105,173,20,119,59,112,36,143,166,240,141,213,49,1, +241,12,216,199,234,45,155,50,195,222,77,112,69,219,62,241,104,186,192,183,169,190,64,97,42,81,73,149,78,114,186,31,236,43,118,147,179,193,226,233,50,241,125,169,175,209,152,4,65,122,101,26,159,174,189,125,139,195,196,225,178,194,59,98,220,17,238,107,147,18,83,136,95,153,165,114,239,159,131,98,217,20,99,207,88,61,75,60,91,115,244,13,102,83,132,93,81,15,19,239,31,253,126,101,104,220,104,89,246,183,248,240,125,211,151,219,55,200,111,59,117,145,188,46,190,3,215,193,119,220,212,147,95,153,38,42,129,133,11,145,227,199,78,159,43,50,109,66,175,172,94,228,37,223,31,60,77,76,254,29,203,178,216,177,124,142,56,172,216,144,11,116,185,48,7,28,201,18,219,116,223,177,29,25,121,102,22,145,93,142,95,18,114,173,35,87,253,230,141,116,201,171,150,252,253,153,237,1,233,94,4,40,244,199,26,211,66,248,120,107,140,122,53,194,152,82,27,119,52,15,124,5,233,188,244,235,222,194,107,12,241,217,17,141,252,250,173,200,141,80,148,16,134,50,98,82, +18,114,120,16,37,21,186,94,83,136,205,106,139,250,233,188,162,168,177,156,247,147,23,10,42,135,108,154,8,225,131,7,63,229,94,145,136,103,68,29,183,176,213,102,84,22,96,78,246,79,12,54,37,109,144,63,159,87,198,244,8,211,30,228,44,176,120,180,198,250,68,27,114,182,17,181,45,205,61,45,137,85,210,240,107,164,69,235,70,202,79,246,183,38,130,138,68,229,244,110,53,41,244,26,197,90,89,150,210,228,170,189,185,222,209,17,120,137,49,196,178,178,35,107,163,233,240,178,103,56,187,229,16,50,129,215,184,86,64,146,167,208,217,65,130,108,130,111,71,208,185,66,243,220,178,2,224,135,155,18,28,100,36,81,152,125,27,73,154,219,159,133,233,252,106,189,165,57,128,187,21,93,28,164,135,211,44,123,105,140,220,243,237,112,126,56,51,156,238,92,152,222,252,249,94,28,100,86,171,61,91,227,141,180,146,228,182,63,56,83,37,160,59,67,110,182,34,250,230,65,90,170,228,38,83,210,168,176,223,170,47,103,158,76,235,254,122,107,206,235,49,189,89,206,40,231, +172,207,218,81,176,184,69,116,99,103,64,230,78,81,84,252,73,50,101,81,12,56,172,156,41,49,18,196,51,163,107,238,236,80,221,236,60,131,187,192,228,183,35,241,148,81,174,96,103,205,29,194,104,245,180,101,6,110,103,26,224,254,18,172,249,186,20,169,32,243,212,10,50,204,40,139,252,12,142,238,213,173,96,230,216,49,228,13,63,117,46,159,70,15,69,169,83,157,19,204,10,35,203,120,171,177,20,28,118,245,205,172,158,53,210,172,251,23,235,62,207,179,116,250,184,71,111,137,120,100,17,143,56,98,243,104,82,37,178,98,194,77,251,48,147,225,83,9,243,202,131,234,136,168,77,3,85,80,98,220,176,205,71,172,234,87,63,170,189,77,235,224,74,46,244,220,199,97,11,148,215,172,45,155,102,193,72,3,15,163,8,99,236,55,5,10,150,155,143,193,180,111,48,164,236,33,131,17,122,148,34,86,65,248,97,194,222,27,176,239,137,242,27,21,65,127,178,225,184,215,17,250,5,65,245,230,178,40,121,9,38,139,25,30,207,41,66,154,14,215,163,40,97,248,98,76, +8,235,105,248,182,142,135,233,141,130,212,51,138,84,104,37,4,209,93,81,222,138,10,182,6,47,170,133,158,111,1,230,161,135,214,109,117,12,129,218,203,106,206,227,11,227,70,140,231,142,18,5,4,174,252,131,152,248,208,18,203,118,92,59,211,9,201,226,71,157,221,236,107,49,239,94,74,115,232,163,131,204,220,38,62,178,87,2,248,248,136,37,47,251,48,135,208,118,219,57,179,123,234,150,81,228,142,190,158,248,48,117,90,17,30,187,52,154,244,195,178,233,39,116,117,43,156,245,208,43,118,29,221,40,140,146,153,241,22,147,134,171,27,182,80,161,2,55,26,17,79,65,7,32,110,48,242,1,97,202,35,14,211,35,174,113,214,7,123,24,208,81,122,141,203,40,209,252,55,2,135,196,229,223,201,112,188,88,252,154,194,97,91,130,212,202,160,68,124,224,12,52,42,122,40,125,127,250,162,49,197,112,81,48,41,180,189,126,29,149,1,167,2,17,129,33,175,245,204,55,38,144,109,70,190,83,72,91,133,246,56,23,17,21,6,89,33,115,120,18,99,86,245,220,150,231, +200,242,143,238,139,226,5,38,161,103,115,42,158,88,134,205,177,141,178,80,62,64,251,142,74,105,88,110,170,18,125,85,241,41,45,149,13,255,94,32,210,208,89,164,76,148,199,101,185,113,38,29,157,67,251,242,240,143,215,72,3,43,77,98,238,217,193,85,101,186,231,251,172,238,167,126,247,205,56,59,70,49,222,82,70,188,94,114,97,151,74,18,137,147,83,227,15,197,46,18,164,58,134,81,222,82,113,217,59,115,151,186,202,45,153,231,249,165,177,85,3,154,99,244,234,40,62,235,47,229,22,103,174,198,37,169,180,196,252,91,120,236,54,73,204,81,114,117,232,74,205,62,20,197,90,206,61,153,170,204,150,60,123,91,27,211,181,230,44,123,89,253,73,104,173,242,183,101,37,23,211,170,130,111,153,188,56,54,22,217,205,10,47,151,61,72,38,204,37,69,159,153,53,197,85,97,150,60,255,210,81,131,2,230,185,201,100,207,227,241,132,73,42,103,103,169,108,130,42,122,206,163,110,226,49,23,48,23,5,236,134,54,70,200,202,66,195,121,214,255,169,18,85,243,216,214, +108,252,106,49,123,15,212,177,34,186,203,72,207,103,117,174,81,80,233,12,227,252,160,160,70,170,11,133,38,125,44,249,54,135,242,114,182,42,151,160,45,84,79,248,60,3,159,239,40,240,249,219,73,253,200,218,187,55,215,14,239,234,236,222,223,11,225,55,53,211,135,238,232,36,156,134,212,103,100,193,40,209,35,86,204,242,139,189,46,21,83,252,229,138,134,133,68,52,14,150,145,114,18,198,52,86,251,245,131,162,80,90,210,47,108,148,219,162,190,48,41,109,170,143,136,103,11,239,145,44,230,40,137,68,73,207,118,50,131,243,190,53,190,34,163,85,248,187,99,36,161,22,3,148,175,36,155,252,8,118,82,56,229,41,144,146,237,164,5,169,140,202,134,69,212,24,156,20,31,81,195,93,24,149,151,186,118,169,144,146,15,41,45,246,253,209,181,161,95,191,223,48,148,158,72,212,85,189,198,223,80,24,106,208,215,205,124,84,178,76,24,30,17,125,134,71,187,39,104,205,93,23,205,2,87,39,198,223,203,228,169,19,69,113,139,82,251,205,161,205,122,138,115,40,174,113, +148,191,146,146,238,23,10,166,30,69,206,71,93,120,215,163,177,167,24,244,250,228,123,190,146,93,15,78,170,147,27,229,73,146,93,226,96,237,148,8,236,9,114,125,28,153,31,87,82,107,141,202,153,146,162,132,125,247,169,182,230,241,180,246,226,91,189,19,138,233,44,242,82,133,106,209,104,163,244,183,238,122,27,91,171,100,246,0,5,86,159,38,117,70,5,3,100,83,55,137,232,73,78,238,214,115,107,139,202,174,136,49,185,163,248,189,85,141,247,57,84,144,67,209,130,44,74,238,37,170,146,156,187,221,219,90,12,228,237,62,1,87,17,35,86,10,178,240,132,34,49,19,30,96,234,126,204,214,25,172,197,94,166,114,149,251,232,190,36,189,168,169,2,119,33,202,31,119,15,197,157,81,163,174,68,233,177,169,240,219,146,147,215,170,74,170,150,30,237,227,203,93,106,208,40,18,159,8,118,241,73,229,170,128,84,254,187,38,5,200,98,62,64,28,3,52,177,98,134,44,159,164,125,135,82,33,67,208,9,201,145,0,156,204,124,77,5,200,100,58,86,134,42,35,194,182, +144,144,141,21,78,63,125,13,236,43,1,133,70,161,209,175,88,159,98,137,66,202,108,1,108,12,69,246,182,81,235,48,5,8,196,80,114,23,150,211,162,232,218,242,159,0,119,251,69,12,151,135,40,243,75,229,203,139,51,121,101,241,252,151,27,203,84,162,248,168,173,183,251,21,147,127,162,164,94,57,69,13,75,41,87,56,20,34,21,129,191,139,224,126,74,246,241,249,165,193,225,211,98,23,77,169,67,34,112,217,150,88,106,96,42,159,16,56,177,23,45,254,120,85,98,165,58,193,81,180,185,7,236,144,169,253,174,95,133,24,182,35,225,72,85,184,112,84,83,51,128,91,180,109,138,183,85,156,106,27,71,185,0,188,142,243,207,3,162,254,161,45,116,174,188,244,88,121,241,61,221,200,246,39,7,229,194,197,53,146,153,128,110,208,86,152,12,36,63,185,60,143,76,55,125,169,165,74,173,77,113,225,196,62,32,191,180,37,68,173,193,247,86,94,196,158,223,77,178,98,149,58,17,188,227,10,197,128,58,230,104,163,101,134,58,165,220,234,71,223,205,138,55,230,157,250, +156,192,161,251,129,8,34,215,6,84,134,20,149,198,236,196,227,22,249,71,159,69,53,189,224,4,226,23,220,213,223,118,136,58,43,30,96,40,8,152,81,113,42,158,85,200,199,99,74,103,135,91,57,2,88,230,172,253,105,49,100,101,28,166,46,241,82,144,142,158,134,20,164,25,7,55,140,3,208,78,172,119,240,50,53,222,80,245,189,157,150,100,14,37,133,71,11,226,136,223,1,103,79,92,32,136,51,89,242,80,46,140,124,102,164,236,111,42,71,16,163,10,34,84,129,225,155,178,235,225,172,221,25,174,36,197,13,100,56,177,35,27,32,168,153,151,39,94,163,133,111,33,86,125,27,100,71,181,237,39,123,74,246,138,222,8,18,9,24,93,244,252,200,101,33,74,75,84,71,112,185,57,232,25,23,80,203,188,237,47,59,138,249,232,43,69,13,135,109,196,207,24,133,75,23,40,66,234,19,217,104,132,139,69,193,214,11,194,198,125,36,72,38,153,22,19,162,122,20,44,226,209,31,241,200,141,106,72,12,131,227,142,148,159,193,245,3,94,134,91,149,85,4,159,233,213, +33,178,7,51,170,110,71,237,93,78,234,195,254,238,228,57,15,151,24,98,228,242,104,228,165,151,31,134,47,208,233,101,10,103,170,28,34,38,109,183,217,144,76,227,53,229,25,28,247,238,139,23,91,201,119,147,63,143,127,227,80,158,227,184,40,90,158,135,27,12,165,24,83,211,146,139,12,254,45,76,115,108,10,152,58,167,254,221,203,96,74,253,75,250,144,218,49,127,32,196,25,33,34,209,182,61,61,21,151,90,135,161,220,192,87,224,234,76,13,173,145,12,229,241,109,230,11,255,3,192,233,74,138,214,180,166,71,168,137,46,78,63,245,162,141,1,133,241,251,9,47,165,211,35,227,44,201,103,156,12,67,165,87,18,41,220,94,13,95,40,83,50,28,27,58,161,158,113,33,137,56,32,126,17,194,3,35,17,63,164,228,215,197,100,196,115,7,251,20,68,137,87,66,10,172,76,178,9,8,151,87,61,117,116,16,206,3,193,48,207,131,69,18,107,254,87,109,150,107,69,228,235,95,65,82,2,139,123,225,144,145,14,86,137,250,74,196,78,184,112,151,206,215,25,7,6, +232,48,189,92,135,71,144,6,219,59,42,234,95,45,163,202,38,25,245,141,140,173,140,45,215,39,140,174,67,181,131,240,35,217,195,110,98,105,199,14,227,186,88,109,128,163,189,251,222,181,222,67,28,207,140,112,18,32,92,43,42,255,24,199,165,174,54,231,61,254,194,243,140,137,2,120,61,181,242,235,142,162,210,117,36,212,220,189,44,112,81,123,89,108,66,7,71,199,117,225,174,26,196,163,238,51,124,85,72,0,63,127,7,206,73,11,83,216,186,169,118,106,211,85,194,146,57,202,107,87,137,25,88,249,216,224,130,160,55,197,66,165,106,123,242,190,10,23,222,142,234,216,85,22,178,3,95,92,112,78,188,234,205,65,6,179,253,204,78,172,130,242,227,87,39,123,5,12,64,138,41,120,155,188,164,12,129,1,75,213,54,17,86,172,243,145,0,0,119,55,0,52,230,2,129,252,57,85,8,2,138,73,155,250,185,194,73,170,199,227,236,250,110,89,2,33,170,64,134,35,129,233,0,70,211,241,23,102,171,69,97,229,27,31,223,97,5,151,64,221,12,55,233,11,217,203, +33,29,50,59,85,157,6,109,149,124,198,31,173,248,163,51,248,236,50,187,154,95,252,197,89,78,178,146,131,30,202,44,232,97,4,61,228,160,206,67,11,77,190,59,11,75,180,163,143,180,83,145,104,123,39,93,177,243,31,218,187,195,225,163,7,218,15,18,34,70,100,152,48,206,18,198,236,4,202,40,229,15,92,20,18,126,190,178,159,55,175,232,87,110,0,187,52,112,125,226,180,178,69,121,70,76,223,97,71,176,194,36,193,93,241,248,4,105,27,69,130,97,238,214,107,235,99,195,83,172,159,128,175,144,159,189,161,89,188,27,71,49,163,204,48,28,182,13,196,195,1,194,167,77,250,240,43,44,245,172,250,96,82,50,168,108,123,157,142,63,69,144,31,6,92,150,252,66,199,120,219,189,200,72,88,108,7,73,244,75,39,24,17,197,245,197,214,115,195,155,188,94,58,3,151,193,212,236,149,89,94,170,115,134,195,240,214,129,228,185,173,0,235,134,206,188,108,232,70,149,154,125,128,238,156,226,240,188,117,144,232,232,240,49,92,195,45,2,132,171,83,189,196,18,38,215, +154,51,210,204,24,222,87,175,29,231,212,48,179,148,135,150,218,84,163,181,4,199,111,181,41,97,102,12,45,45,213,14,231,221,176,147,188,149,29,177,169,86,214,177,132,184,181,25,81,171,254,12,23,153,157,88,130,96,232,201,203,217,220,148,128,83,89,202,204,218,144,245,162,253,8,245,57,109,243,230,197,96,127,42,79,81,254,233,27,96,201,9,78,23,159,32,86,10,3,80,41,8,228,130,242,209,181,157,251,52,68,171,101,108,96,54,69,88,44,201,43,149,163,193,17,138,1,99,72,213,145,228,13,63,212,113,57,189,155,214,10,95,211,87,181,197,75,159,48,20,47,187,76,232,172,122,239,184,105,134,57,190,60,101,4,223,37,226,61,225,203,85,76,242,39,90,18,104,126,13,178,191,219,132,125,207,160,239,26,82,178,153,33,37,53,144,100,6,217,65,106,176,202,12,165,71,102,24,168,219,164,194,41,48,78,251,44,147,225,242,169,4,163,98,191,78,209,148,28,246,228,113,66,6,59,10,101,123,112,247,233,144,239,96,122,123,87,184,31,37,126,132,167,55,70,18, +10,162,152,99,220,40,253,184,251,224,66,228,103,92,250,215,15,8,219,173,187,94,238,13,188,180,2,61,196,49,142,241,70,80,31,74,134,23,251,13,147,195,52,216,95,148,60,173,133,67,58,120,217,12,215,51,96,239,222,75,210,0,55,241,199,56,155,84,84,134,107,246,241,2,149,5,163,58,186,1,122,222,214,190,240,232,184,178,74,35,107,33,113,93,117,248,35,100,41,103,208,111,162,242,83,172,135,232,215,141,8,141,23,45,47,227,63,114,61,116,136,233,21,179,211,112,145,197,11,211,84,152,207,234,116,184,63,17,254,160,77,94,180,163,252,3,232,44,188,188,144,96,76,20,138,69,33,46,81,75,123,241,33,101,71,146,42,24,200,21,124,222,32,23,169,203,173,52,220,152,182,120,43,21,184,184,168,244,195,53,195,119,210,142,67,243,227,171,8,124,23,254,136,98,29,48,218,57,18,188,104,74,25,67,89,214,209,250,82,222,133,176,220,74,25,189,174,69,82,120,222,17,195,252,75,40,128,38,183,201,196,87,241,55,25,69,23,191,144,50,47,17,102,75,76,251, +90,43,51,98,196,15,54,20,130,249,35,175,184,143,140,199,221,70,14,149,12,226,249,227,245,192,92,163,37,73,86,192,23,156,97,9,66,145,164,104,28,251,226,129,90,30,197,196,41,225,152,209,246,152,199,12,13,74,216,83,166,147,41,96,179,225,39,49,62,157,231,163,158,186,62,37,13,27,144,249,224,195,160,176,74,60,210,37,189,251,80,229,169,54,17,71,113,16,24,146,211,250,42,246,40,65,55,89,67,244,98,235,178,158,181,73,36,111,23,72,29,245,98,69,35,147,123,20,187,135,45,74,115,174,211,251,238,62,158,143,230,102,250,146,228,240,103,176,125,237,154,206,105,178,187,133,29,205,15,129,3,124,63,28,54,47,91,146,219,81,115,240,27,189,231,249,103,16,56,148,197,53,109,102,38,41,14,139,147,237,179,89,227,168,80,26,93,220,124,245,25,176,150,197,147,4,33,179,235,15,171,155,45,129,96,119,84,105,255,47,73,87,217,165,60,179,4,255,58,238,238,176,72,112,119,151,197,221,97,113,91,220,221,23,189,60,239,61,103,146,48,51,153,124,232,78, +119,85,205,132,164,61,10,97,116,150,72,149,37,246,165,112,133,15,157,166,88,6,71,163,208,21,39,165,219,83,84,214,30,158,52,103,226,195,169,224,188,145,167,154,246,81,166,115,73,66,204,103,128,249,236,232,190,120,58,124,246,39,42,149,207,197,63,150,66,66,204,153,134,51,71,143,107,235,202,242,120,98,2,193,81,137,197,84,162,80,25,95,232,169,166,164,209,177,103,48,185,242,236,149,254,7,119,254,9,223,21,34,250,55,173,192,223,79,171,140,63,139,217,211,40,240,185,43,61,214,70,143,52,239,9,145,86,82,144,21,227,211,193,236,168,78,88,86,96,201,13,45,185,9,247,146,91,39,114,204,96,22,211,20,189,48,73,138,7,68,122,236,67,228,200,246,197,116,82,222,130,173,169,77,1,255,78,192,69,32,5,6,165,247,115,63,248,21,102,32,89,176,113,0,48,4,119,34,54,152,132,130,77,132,56,122,200,22,39,129,33,184,41,82,54,45,32,175,179,2,21,137,104,161,212,26,151,146,30,15,160,207,32,218,10,138,162,211,180,176,161,44,30,166,246,195, +17,168,8,28,139,240,16,51,99,1,2,133,133,79,241,146,144,153,4,20,254,97,160,128,99,144,164,40,9,80,81,95,133,123,95,109,204,44,165,192,130,90,159,138,141,63,251,228,46,29,251,157,236,131,171,30,208,53,156,57,240,119,220,152,103,209,33,231,28,194,159,245,46,65,107,122,102,148,156,163,26,30,196,141,242,107,169,166,228,239,48,72,94,31,33,28,2,33,79,151,25,187,52,35,207,243,78,223,111,183,6,212,75,51,172,104,219,118,242,76,171,231,162,219,197,77,77,191,50,193,58,34,162,181,13,117,250,210,244,163,102,71,160,161,209,217,177,139,116,95,199,161,58,26,18,157,105,133,86,227,251,24,177,131,220,82,232,204,152,20,158,215,167,64,29,53,64,215,176,160,176,199,254,227,251,234,200,233,179,101,180,25,115,234,107,120,142,31,249,253,5,208,15,214,254,5,211,216,185,241,142,140,88,151,45,163,168,214,190,164,96,117,4,180,132,42,150,49,40,247,89,116,71,242,38,37,148,208,33,122,31,146,255,48,97,37,161,210,195,64,233,253,55,188,214,170, +10,207,12,236,247,8,215,191,56,107,101,221,57,196,64,243,70,253,59,251,175,86,81,217,40,152,12,91,218,255,65,215,106,162,238,75,73,254,138,135,137,38,117,152,168,10,95,84,207,176,61,21,97,166,34,222,73,50,18,75,70,56,150,210,246,246,15,169,130,40,136,2,197,164,162,132,219,79,190,34,168,146,88,16,198,239,132,213,20,34,247,219,0,70,36,165,29,127,232,207,199,242,59,184,13,8,109,42,82,81,199,64,239,241,155,6,41,148,12,16,97,68,241,135,37,223,21,182,31,149,125,139,116,96,224,104,4,131,88,105,160,9,14,255,106,75,96,1,45,229,199,142,230,148,237,231,122,173,126,188,14,147,117,41,57,103,169,11,49,64,228,215,22,163,206,6,65,147,149,109,47,223,209,130,191,104,234,182,95,181,182,140,85,53,204,88,153,246,107,214,166,105,85,214,133,160,53,25,80,165,75,171,178,213,234,181,1,149,50,161,167,145,120,228,182,19,242,203,128,22,138,78,39,42,0,221,63,153,22,224,156,157,139,38,171,6,104,86,71,189,164,205,166,43,0,37, +166,87,133,63,12,77,234,208,5,217,234,110,19,238,104,196,193,42,18,246,57,226,125,242,86,88,103,170,225,2,72,101,173,211,168,195,193,225,71,67,100,131,192,232,37,20,94,149,135,55,63,198,28,209,233,180,55,154,72,47,75,32,16,234,191,201,26,63,22,18,242,239,242,176,158,19,5,10,76,179,168,24,128,9,11,235,40,255,182,226,15,127,100,7,108,38,4,25,175,228,95,214,30,1,39,17,253,232,15,49,67,215,178,148,61,9,194,51,34,200,36,58,73,3,210,101,88,187,0,140,101,140,11,65,232,27,32,153,6,241,16,70,1,6,59,145,64,69,56,124,148,207,195,80,192,159,159,4,126,5,200,115,166,36,14,207,41,200,23,244,40,174,172,42,24,1,204,119,144,28,83,40,194,24,79,16,110,223,158,58,90,110,40,235,130,73,204,186,158,101,159,84,26,185,71,140,156,27,220,193,229,219,52,152,119,66,149,98,220,96,207,189,141,111,117,220,48,161,6,123,210,108,61,65,166,182,160,102,206,53,120,187,210,99,6,203,181,25,253,92,131,185,87,113,27,214, +80,214,56,150,70,236,87,38,40,67,154,13,5,201,210,128,62,45,50,65,23,213,80,217,43,52,70,140,26,31,36,36,161,134,32,160,177,207,81,41,92,176,248,109,152,134,245,154,10,22,123,140,4,131,60,195,175,60,93,255,65,31,172,65,174,150,101,104,170,211,37,140,185,104,9,18,57,189,59,62,111,104,139,31,114,134,76,172,130,43,231,61,83,210,204,82,80,100,10,216,78,162,234,105,138,44,45,45,28,85,194,201,201,30,139,22,100,169,72,222,50,202,14,29,6,65,206,252,47,67,119,252,68,243,40,24,205,177,243,109,217,145,62,198,240,36,65,164,50,175,233,168,44,100,148,86,178,12,30,208,219,19,60,143,87,4,175,166,224,52,15,210,61,90,186,71,94,151,240,84,117,158,186,204,3,106,201,60,63,50,79,229,165,42,1,144,15,197,78,71,171,254,3,151,210,51,0,140,158,131,79,240,67,122,176,190,144,34,172,1,252,9,128,67,23,242,41,210,24,138,242,225,254,82,65,15,19,184,18,251,37,196,191,87,31,103,195,148,192,254,12,49,9,43,84,174, +29,24,115,237,61,50,137,108,236,122,188,176,209,44,232,97,160,246,156,32,160,143,150,192,29,244,82,1,241,180,136,137,71,204,83,202,165,30,121,120,157,168,143,37,61,15,101,130,169,255,120,238,65,54,34,245,97,76,235,1,223,218,223,124,231,164,159,195,186,174,230,248,76,254,102,38,19,130,227,94,14,74,35,223,173,128,224,176,133,197,120,15,178,251,205,178,56,135,19,98,227,10,109,217,94,62,252,239,100,64,191,52,254,190,227,107,181,207,151,10,110,44,91,247,94,243,56,99,125,153,180,101,99,61,52,211,143,113,150,234,75,132,55,150,221,240,43,253,184,137,125,217,69,92,111,221,47,112,15,207,28,234,75,250,245,150,196,86,141,123,236,191,125,141,116,78,95,62,164,142,202,135,136,231,203,199,244,130,252,238,96,125,120,180,15,95,53,149,171,236,205,65,203,35,141,247,133,66,223,147,197,117,83,126,28,227,86,95,38,147,43,239,96,63,165,135,132,238,43,220,35,196,234,126,64,123,24,88,82,95,35,64,44,161,183,226,79,5,238,43,134,179,111,245,4,153, +248,251,3,239,189,2,220,134,35,30,220,19,87,126,81,239,253,162,109,68,35,247,62,241,71,160,120,121,176,225,70,220,107,86,182,153,79,2,215,171,175,209,209,230,193,28,61,38,159,18,27,61,144,163,135,251,60,122,124,141,30,41,169,246,97,150,62,6,210,199,71,84,146,218,49,187,227,5,33,12,156,170,63,226,105,139,163,164,64,112,21,137,2,176,20,76,16,94,52,154,8,100,36,196,62,142,206,111,95,7,52,73,238,252,203,73,253,91,66,65,100,2,115,147,82,80,100,55,214,52,32,194,142,136,164,74,3,168,137,239,143,233,7,185,88,32,159,161,1,241,126,198,51,217,73,89,126,222,75,121,180,78,216,199,61,66,247,128,233,135,51,223,29,250,58,213,213,80,125,3,205,60,237,7,143,40,134,3,43,70,174,129,241,190,225,73,157,246,99,86,102,17,12,163,121,172,63,76,203,63,126,185,33,106,195,78,210,76,211,233,172,63,60,53,154,196,224,30,28,232,183,202,159,211,151,14,106,252,39,89,93,165,174,23,219,72,40,3,35,230,20,213,131,3,96,39, +231,213,179,33,42,134,80,230,253,6,198,135,178,1,178,161,148,30,22,186,166,107,146,42,252,137,92,62,136,129,71,85,87,35,230,69,203,168,186,14,174,64,134,108,209,113,140,29,116,248,56,130,216,42,127,242,66,65,125,216,90,207,157,200,163,224,244,199,23,166,20,128,56,223,167,191,17,124,212,124,196,70,10,72,241,133,196,23,147,152,228,188,248,5,30,255,39,68,20,14,29,165,87,131,5,186,83,6,70,76,11,145,43,40,112,215,2,19,10,183,6,102,24,130,18,64,134,15,218,4,30,207,66,165,142,68,246,163,75,168,165,29,137,203,67,46,81,34,250,68,195,26,70,29,45,42,169,143,67,9,195,213,25,148,164,139,207,192,16,144,28,189,157,135,233,135,46,237,21,239,77,134,68,16,145,250,231,80,138,140,187,143,210,117,50,213,214,195,86,26,71,35,213,219,115,40,178,214,229,51,14,58,72,183,134,96,221,147,77,63,11,206,174,53,25,170,123,48,204,186,157,173,31,194,84,2,117,247,244,93,66,211,57,136,23,52,238,75,56,202,179,237,46,72,18,180, +178,6,209,87,205,205,232,92,119,126,63,24,107,34,188,137,95,178,76,7,119,166,69,48,35,237,237,244,202,188,107,238,51,45,6,213,94,143,27,86,166,253,23,190,133,224,139,237,29,191,214,188,149,44,240,45,14,212,222,152,228,180,197,131,250,212,42,97,190,237,173,152,246,39,190,75,157,90,20,158,61,89,75,105,139,123,172,165,215,122,224,237,185,80,134,92,222,30,44,173,165,21,103,255,201,100,242,7,95,72,225,124,208,237,237,136,238,41,239,203,148,78,229,35,185,54,81,190,20,195,180,76,225,216,97,214,154,21,228,75,220,141,38,156,108,242,126,237,224,126,169,4,3,68,220,17,48,173,237,0,110,161,31,221,18,127,78,111,81,199,132,45,24,194,158,43,241,177,125,66,247,3,191,100,224,85,179,14,178,248,201,90,53,242,9,135,126,248,101,30,46,248,164,67,159,116,228,152,73,7,49,233,36,38,19,206,75,202,105,79,58,87,159,6,121,202,17,235,39,29,156,82,215,67,80,172,143,112,50,10,107,208,104,194,102,178,193,31,22,41,96,97,20,39,72,6, +105,184,104,97,64,226,159,6,94,170,62,52,142,18,49,119,192,90,212,15,146,185,32,254,174,75,118,107,250,80,3,138,142,173,1,164,131,162,31,196,249,13,134,62,42,122,68,233,130,172,2,2,200,0,34,21,226,65,166,251,68,97,27,205,139,226,146,255,68,241,162,94,178,139,170,72,146,125,78,130,83,158,194,182,100,139,220,151,196,121,6,229,49,0,215,197,225,227,234,208,67,117,77,112,9,238,41,154,117,136,228,25,242,15,33,158,184,15,195,176,125,139,239,28,99,231,92,107,132,0,32,181,25,114,168,18,15,44,134,43,144,213,244,75,169,35,155,75,107,248,204,18,187,191,50,228,246,56,158,61,52,134,72,165,169,77,171,147,17,75,107,212,198,18,219,191,240,228,76,52,30,181,132,134,80,161,169,67,106,213,39,40,77,57,86,105,79,197,234,19,185,124,43,196,147,237,33,252,3,216,45,102,93,134,215,20,182,81,198,66,140,181,144,99,112,78,28,146,25,122,183,50,83,142,202,86,19,200,233,74,108,172,20,155,213,101,50,91,21,247,170,66,251,111,149,169, +205,254,227,102,217,108,21,46,93,240,71,101,74,17,149,78,142,162,49,113,71,100,168,241,123,76,13,62,91,74,252,194,145,34,136,148,40,180,31,145,55,35,114,160,88,143,251,103,18,159,165,120,172,82,102,90,244,145,66,10,223,226,162,182,74,20,224,169,69,159,242,155,161,197,26,244,88,131,105,137,53,24,49,14,61,242,195,161,69,56,140,136,183,175,192,63,42,156,63,5,205,82,212,91,246,235,68,110,136,167,196,83,82,50,86,142,21,127,168,243,220,150,7,175,254,5,228,200,160,73,1,22,191,129,210,131,65,166,140,48,138,201,137,128,13,88,161,208,32,137,7,192,152,19,212,37,89,132,60,40,100,55,213,70,97,253,117,121,182,230,34,185,65,70,27,46,98,21,49,72,67,130,49,44,3,226,28,114,136,20,40,67,193,21,102,215,154,67,69,115,42,50,189,107,26,208,189,21,112,252,121,208,164,177,137,111,77,24,157,170,92,129,61,177,25,69,56,234,69,123,19,18,165,185,107,34,102,19,37,161,57,234,216,236,217,163,219,103,3,252,147,97,226,38,253,16, +206,52,222,247,47,154,107,48,199,86,75,144,241,235,78,115,246,71,67,98,179,30,170,156,129,58,253,187,11,62,55,107,142,39,227,172,103,183,7,203,241,229,171,222,6,161,119,237,89,255,194,170,173,184,178,243,23,185,61,31,102,236,172,122,6,113,166,134,192,237,105,215,206,170,213,79,183,51,143,223,86,243,39,213,105,189,236,58,167,232,132,182,114,80,157,154,107,163,198,153,205,104,91,85,159,164,88,255,152,238,76,70,180,21,61,102,127,90,251,155,159,117,28,51,79,60,158,168,107,245,150,234,44,195,60,3,145,239,177,186,190,161,47,47,158,228,153,67,225,169,186,97,185,186,150,192,156,69,59,46,79,63,137,37,234,44,227,254,108,193,241,148,184,65,44,94,235,153,206,85,5,237,89,73,18,40,1,19,84,186,124,163,155,252,106,240,204,48,124,171,127,106,107,250,178,138,177,61,14,206,166,145,251,148,177,185,171,102,214,166,27,120,155,52,99,38,89,147,89,165,203,80,241,140,45,54,207,230,226,89,76,177,73,58,232,251,26,125,143,82,140,247,162,241,126,52, +22,238,53,99,19,138,105,165,170,5,188,14,36,243,203,253,255,240,230,61,253,122,161,13,255,77,84,210,190,130,166,131,0,64,246,30,19,10,80,211,39,193,255,22,232,8,147,253,103,143,168,27,147,121,88,240,67,176,1,238,225,141,69,195,186,143,9,134,178,13,57,97,143,237,236,165,151,117,71,163,142,50,9,243,104,96,96,52,209,241,239,2,219,0,185,14,235,194,179,45,72,192,0,137,233,192,53,176,146,247,189,66,162,253,24,209,114,137,110,234,192,3,66,229,172,176,154,192,88,207,209,240,5,98,183,39,82,196,167,51,189,92,3,63,35,72,244,236,54,154,153,254,10,212,29,201,191,234,96,126,27,208,107,178,254,152,174,80,174,0,160,81,245,31,97,62,127,41,17,109,17,152,174,225,148,204,216,210,242,97,213,170,252,145,108,33,128,97,249,33,102,218,146,152,220,215,2,71,248,157,7,105,242,100,93,57,8,51,12,44,37,78,183,176,9,14,224,120,226,16,61,94,103,145,139,103,22,141,7,89,171,72,6,168,100,9,34,45,225,244,229,6,83,194,5,156, +77,171,167,26,24,221,77,182,21,91,5,128,105,171,74,163,30,64,59,239,51,180,10,96,61,55,118,135,9,34,58,27,205,34,78,137,228,32,188,112,59,184,111,73,165,89,200,33,80,143,35,34,81,226,40,51,12,2,165,65,63,16,133,65,67,36,84,142,255,1,10,92,73,122,116,224,10,226,238,196,186,18,104,192,101,13,252,75,130,31,101,132,179,212,253,48,58,56,6,6,65,220,30,28,39,117,143,32,129,185,240,199,214,138,118,1,218,92,32,14,210,58,81,1,56,254,141,75,67,19,144,111,28,108,107,166,175,133,50,174,242,96,150,234,192,50,152,242,108,140,100,99,138,124,130,6,34,140,213,16,168,115,211,205,130,9,231,177,134,231,28,76,28,89,168,109,76,195,59,29,179,65,182,198,26,84,98,83,22,221,57,31,17,206,53,32,196,24,147,224,91,231,116,76,96,177,159,127,113,47,213,92,13,47,105,70,163,59,147,214,137,165,102,106,189,55,180,125,237,88,43,196,88,13,174,179,250,93,219,130,157,185,117,198,98,126,29,152,84,6,11,214,201,53,214,18, +68,117,241,160,178,96,151,53,141,177,148,81,23,142,34,140,5,107,196,25,43,71,136,186,168,199,80,179,107,145,249,88,200,169,3,132,241,88,205,250,83,141,137,4,12,91,59,28,43,15,255,62,51,137,160,36,44,85,195,175,154,53,195,8,199,110,184,185,156,77,243,200,102,234,40,29,118,114,205,129,40,142,105,28,4,71,105,150,210,156,76,186,113,52,83,72,154,54,40,208,230,112,16,199,48,68,160,42,22,152,158,246,237,49,178,28,252,199,205,141,204,234,217,163,126,226,226,49,204,188,20,139,48,74,166,239,38,217,74,249,67,117,209,102,133,164,69,27,29,113,104,6,124,138,117,212,39,89,57,44,155,216,196,176,111,145,180,59,146,72,127,69,210,169,72,154,247,19,73,139,225,105,188,87,229,215,139,5,127,104,26,166,217,25,188,235,112,148,133,23,85,24,194,34,24,204,95,112,68,6,113,36,10,6,137,131,128,105,223,215,23,79,245,160,159,34,63,140,239,90,176,226,31,30,10,138,42,156,195,103,134,72,27,136,67,88,33,168,69,9,98,147,161,3,65,69, +236,242,105,79,172,0,39,188,18,151,59,231,248,76,74,7,33,25,192,125,202,22,157,126,40,41,73,48,195,132,234,92,145,116,132,41,146,102,93,133,90,130,41,132,19,92,47,144,179,11,228,154,51,209,33,94,119,63,163,8,61,207,86,144,47,143,137,225,215,51,136,225,217,139,177,152,230,88,192,30,195,143,160,192,150,71,166,143,157,192,16,196,238,108,68,196,11,123,250,45,187,17,41,93,201,229,107,214,142,174,111,114,114,167,7,216,251,95,211,21,226,166,6,219,59,34,164,109,49,203,60,110,55,49,161,3,136,99,213,197,244,228,186,105,51,140,142,88,90,93,204,106,229,198,77,138,232,8,177,66,230,98,58,154,223,154,74,78,71,36,99,170,119,179,136,234,38,196,240,125,122,209,68,57,117,38,189,55,2,133,175,149,76,40,202,25,27,115,67,194,55,60,61,224,171,230,127,160,163,163,197,249,93,206,234,114,228,2,117,120,12,111,217,223,129,40,145,90,68,12,164,199,169,242,59,217,73,18,73,249,144,244,200,202,163,191,37,16,126,43,29,32,106,0,100,41, +95,125,38,103,222,209,81,191,223,187,98,236,182,22,39,92,23,163,23,149,216,125,161,21,87,169,153,77,154,60,170,139,174,8,186,13,181,192,214,173,224,187,12,74,191,59,233,119,35,189,170,234,101,11,122,97,195,160,21,244,204,130,158,94,47,230,152,69,34,163,200,183,42,64,94,194,122,107,130,247,12,60,29,231,77,194,252,123,213,106,15,178,149,124,212,189,168,241,72,13,72,76,125,26,148,2,103,124,105,0,230,12,10,157,176,101,64,193,244,43,65,54,241,255,243,217,1,125,157,242,244,31,158,221,105,172,180,105,171,31,250,47,17,126,49,63,228,27,155,125,235,44,96,57,45,3,212,2,6,166,83,69,53,252,48,225,203,127,179,163,147,85,166,76,49,20,229,100,86,19,4,247,34,252,176,52,248,216,51,167,63,226,95,42,34,178,246,232,165,57,83,188,227,233,104,214,148,206,67,176,64,26,127,174,178,249,249,105,154,209,211,213,52,227,74,194,44,71,148,107,165,3,91,57,183,148,21,209,145,6,232,10,173,90,10,36,165,6,16,161,4,72,38,202,2,220, +131,185,49,32,124,165,63,74,143,207,30,206,116,183,229,206,131,113,124,149,248,42,159,168,73,197,129,116,96,128,24,41,55,11,108,200,87,130,233,56,53,128,71,86,242,191,99,181,98,35,191,51,197,152,228,244,216,249,55,43,80,228,1,201,2,92,122,252,162,160,93,101,116,155,91,202,251,211,118,93,148,78,43,60,5,140,194,9,59,189,60,2,112,248,113,1,87,124,67,32,183,2,132,83,34,251,255,169,24,136,138,193,149,41,12,104,18,10,200,6,89,20,17,0,0,100,2,240,226,238,133,134,14,8,123,55,24,190,138,59,56,32,239,163,224,153,85,32,142,168,65,73,32,41,201,38,150,249,134,234,35,18,15,210,107,98,182,163,215,192,216,34,172,161,142,129,83,248,3,164,42,185,6,212,234,57,221,30,77,72,178,54,132,225,252,178,35,56,2,153,91,210,49,238,19,15,132,109,216,88,28,162,152,144,51,101,11,254,126,4,248,222,53,177,22,156,44,123,102,118,156,189,184,90,172,143,45,198,57,67,11,12,176,39,81,28,75,247,196,99,244,150,124,184,26,186, +24,139,192,4,39,114,130,200,117,186,247,4,25,61,185,34,171,179,192,109,140,8,203,229,11,104,35,182,89,90,232,138,244,122,218,130,67,71,70,220,148,145,246,205,52,248,69,206,184,182,138,232,234,10,181,121,58,199,175,142,28,175,47,195,180,213,105,80,109,237,149,197,243,109,242,116,133,187,200,158,22,175,35,195,232,189,101,56,83,17,196,150,241,189,72,114,27,28,93,123,96,147,231,151,205,87,39,81,185,2,108,162,14,126,155,105,61,246,126,139,35,253,57,126,249,175,14,31,204,215,97,223,114,108,238,66,135,203,227,33,170,20,223,75,20,183,176,217,21,236,145,120,42,20,190,56,139,38,50,96,177,10,108,25,43,193,144,101,24,18,201,64,250,180,68,162,138,68,36,106,136,23,61,54,113,209,98,47,58,236,5,166,194,94,20,248,139,26,132,191,40,241,23,21,58,126,81,160,237,106,180,29,166,68,219,85,4,187,30,68,176,107,9,118,29,166,246,46,211,94,30,197,99,56,43,56,94,189,235,211,29,220,186,225,189,42,150,29,212,211,97,2,29,42,238,107, +144,116,1,120,1,250,111,245,206,95,144,144,252,69,88,162,135,66,128,72,37,20,90,4,230,22,246,98,47,110,223,167,73,144,59,36,192,236,195,168,16,154,56,94,39,55,131,32,19,66,129,237,159,91,33,89,120,42,198,161,250,252,194,159,242,3,84,138,226,156,40,9,210,214,252,36,56,222,166,225,182,254,66,145,41,13,168,184,172,146,179,56,150,36,121,227,60,26,170,138,98,150,249,146,176,216,149,235,106,110,224,96,155,115,241,174,243,2,158,173,41,127,64,9,184,107,36,204,54,20,34,106,124,103,62,165,211,32,158,245,39,6,162,158,192,181,48,207,84,64,130,105,226,147,63,190,178,23,229,119,92,169,3,181,34,79,245,21,112,158,41,121,173,219,28,201,111,16,166,59,197,202,53,87,19,26,84,145,216,182,80,102,26,175,185,152,209,0,164,149,254,66,113,226,204,181,8,110,3,170,80,150,231,243,38,157,211,80,202,42,10,179,98,164,154,179,49,13,170,74,196,80,43,35,201,243,92,72,105,0,146,113,95,173,248,195,204,117,16,43,71,44,31,167,148,117, +238,126,142,224,222,2,81,253,40,165,216,140,74,71,128,109,205,36,51,244,34,226,71,82,26,42,173,133,82,48,67,202,15,36,165,64,13,51,79,195,173,170,0,132,83,15,224,245,114,51,130,254,19,74,42,55,230,148,50,48,42,129,76,127,170,55,187,108,167,205,143,237,228,73,35,117,49,81,197,118,74,161,147,150,180,49,202,252,139,162,106,19,140,101,25,107,94,79,107,172,122,145,87,39,226,0,204,194,47,189,32,96,22,139,2,90,241,132,85,142,46,88,197,5,163,168,154,176,10,38,86,33,215,99,242,196,14,48,207,7,180,251,127,108,156,36,33,37,0,135,159,196,162,160,32,91,19,10,70,242,81,162,55,146,190,143,14,52,214,97,58,140,27,40,46,192,159,96,196,27,111,254,4,182,31,77,123,139,59,20,11,164,87,94,40,93,87,24,123,141,227,145,249,146,88,101,151,28,169,67,76,120,45,26,161,74,225,72,146,155,135,23,215,8,32,69,42,34,235,16,104,45,209,119,215,135,114,16,22,252,85,239,138,245,107,96,162,29,58,135,154,0,221,51,144,230, +154,0,247,135,177,151,192,61,189,28,130,240,149,24,140,247,1,5,218,213,23,17,191,156,241,80,116,10,144,61,165,127,120,20,127,198,135,29,168,51,150,91,87,136,84,247,113,248,33,115,250,117,158,220,60,13,109,125,158,179,156,90,23,40,200,47,235,80,230,15,173,169,37,210,151,101,120,195,43,157,217,140,174,76,93,80,75,195,185,213,153,140,72,117,37,178,186,52,220,7,233,206,116,66,87,166,200,82,180,97,95,234,140,199,3,186,18,9,75,27,118,31,112,103,46,155,165,19,169,230,209,80,227,252,232,243,104,150,68,246,197,193,241,7,219,217,78,190,44,114,169,60,145,80,82,8,123,19,140,43,17,202,109,201,248,142,62,116,96,12,251,37,220,233,130,112,135,229,44,65,33,71,50,51,212,80,42,33,28,13,3,93,211,62,207,118,2,84,218,178,154,60,107,165,227,59,147,242,157,138,175,105,210,97,149,98,58,24,125,117,35,235,33,99,45,97,213,180,77,41,106,50,222,228,12,54,174,199,198,43,81,248,176,10,31,66,25,193,61,21,98,122,129,19,127,47, +240,95,22,252,167,189,193,247,17,236,240,167,193,140,199,114,84,171,130,5,28,254,61,113,128,74,64,96,91,145,9,252,240,197,14,196,192,135,146,15,73,162,239,184,14,220,149,71,254,144,104,24,208,138,67,94,142,55,147,186,85,5,156,48,207,246,165,239,200,186,224,131,32,229,87,224,219,105,63,124,68,233,111,41,69,152,172,11,114,232,100,93,228,167,163,231,71,140,168,10,3,197,198,212,124,16,137,52,89,147,88,32,182,7,237,135,193,210,67,227,191,19,37,68,177,1,12,253,83,250,65,212,120,197,80,221,9,82,160,10,160,102,176,65,12,25,73,237,255,89,106,193,167,8,172,162,216,196,203,170,36,134,54,244,239,71,35,56,102,111,28,66,42,6,127,54,203,140,76,40,44,177,120,146,218,197,235,166,18,152,150,70,50,41,191,169,2,156,242,218,115,96,92,138,22,248,130,112,243,100,117,55,141,115,58,93,92,46,90,213,82,136,145,76,114,40,229,201,195,165,67,127,177,21,135,63,147,241,142,84,1,135,244,77,139,221,8,94,138,12,221,34,147,85,1,5, +72,203,74,252,213,230,162,212,87,19,104,153,15,131,212,87,82,105,11,110,60,238,16,85,215,243,119,40,253,113,202,164,120,74,209,250,7,71,92,32,187,229,250,73,36,74,88,10,128,250,200,32,140,8,221,33,80,57,210,94,12,210,1,126,7,25,217,87,94,168,182,48,230,138,146,124,114,22,89,230,79,41,88,100,104,87,120,228,139,130,200,41,216,46,220,57,168,243,240,8,66,211,117,130,224,56,15,134,35,199,33,132,96,31,80,145,242,123,100,97,140,76,174,72,97,116,87,140,89,133,1,114,113,42,197,144,176,162,74,223,211,21,102,235,88,148,153,209,199,117,101,140,236,23,250,39,158,160,138,118,193,48,55,70,96,167,208,226,104,31,181,175,249,227,92,19,9,137,15,123,192,67,31,191,38,151,95,206,115,244,55,136,80,115,106,197,231,25,138,231,106,244,145,140,134,78,106,27,207,208,90,78,31,139,24,212,52,66,219,12,133,215,204,167,80,78,77,47,203,85,148,40,171,170,143,143,96,106,90,81,69,137,174,211,147,125,56,165,166,227,72,24,74,148,20,211, +79,161,33,53,13,192,72,28,208,240,125,31,204,101,121,244,242,113,2,229,52,17,250,4,28,75,43,30,83,146,104,118,177,143,84,214,201,122,169,151,73,250,233,75,195,22,180,209,10,33,179,138,129,180,14,144,93,43,36,106,18,189,27,65,195,181,125,63,237,52,138,93,56,86,61,138,83,68,197,8,250,199,77,232,199,38,133,14,72,195,254,61,69,244,70,23,244,48,244,244,39,120,84,201,110,15,26,181,141,69,235,34,201,240,68,36,26,144,11,98,47,106,218,140,91,116,121,73,131,65,201,96,208,35,61,22,21,133,135,153,52,120,24,138,13,203,153,96,20,81,79,58,233,73,193,141,64,222,113,231,60,243,43,255,58,231,238,166,34,103,95,174,38,29,76,250,255,116,104,204,24,148,192,2,1,9,41,136,125,162,136,59,132,144,136,238,35,32,14,236,14,226,125,181,122,177,21,10,127,223,246,42,225,126,40,211,3,49,237,194,168,31,74,251,242,56,248,5,240,218,214,90,68,173,168,6,28,174,108,57,40,5,135,48,226,164,50,193,132,214,188,231,151,198,225,221, +88,74,184,186,178,139,243,80,74,72,234,127,117,134,112,204,78,123,5,239,3,16,65,35,150,173,111,205,227,7,23,183,111,224,4,166,0,76,158,185,162,169,47,110,199,208,143,225,174,133,33,25,5,246,45,253,68,246,100,11,5,241,125,64,172,122,89,236,158,32,194,175,79,29,186,76,183,109,151,235,193,100,52,148,145,139,108,186,91,113,30,95,8,226,175,42,96,7,205,31,109,51,231,87,18,181,171,200,59,188,234,241,141,249,21,200,131,85,213,214,154,180,60,172,166,36,90,95,74,116,213,180,235,30,238,109,164,193,122,250,32,53,84,94,251,78,111,156,160,167,210,122,216,225,213,195,126,120,171,136,28,185,111,14,73,175,26,165,247,7,35,207,145,186,190,248,246,17,71,123,219,144,119,21,188,206,169,253,242,74,151,234,82,111,19,163,107,120,79,122,4,157,94,29,87,80,105,34,136,202,80,140,254,215,19,167,118,61,233,85,104,40,62,226,202,215,42,140,246,42,96,130,26,68,123,209,7,238,140,193,83,141,217,117,34,87,162,168,238,105,146,59,82,212,198,84, +130,93,20,225,38,211,217,95,97,119,21,248,117,132,133,120,234,224,142,196,0,218,28,193,239,61,164,217,233,66,94,9,248,227,30,58,92,219,135,107,243,119,178,171,102,123,122,126,42,36,112,33,125,183,53,188,104,223,234,5,18,27,75,255,95,30,51,0,56,172,48,0,192,224,97,146,175,143,13,118,194,58,42,168,133,82,131,156,169,39,9,106,132,122,211,117,68,237,201,138,96,217,45,50,181,27,192,241,211,27,208,180,77,34,20,92,16,35,30,91,20,171,152,61,217,49,248,129,32,191,110,136,42,129,19,203,60,235,131,65,177,228,50,95,80,226,213,96,77,205,152,167,171,131,24,109,13,204,129,187,186,129,44,116,108,94,114,217,110,44,215,56,239,201,51,53,229,80,82,67,187,123,48,194,151,17,55,136,46,21,96,87,63,225,39,124,25,66,183,233,31,192,119,3,177,243,162,0,60,93,75,61,161,121,16,71,206,98,183,165,86,202,106,109,33,232,170,154,237,54,73,218,249,18,187,230,52,53,81,155,210,88,192,171,150,80,83,7,110,212,254,244,23,244,26,135, +35,181,53,208,218,98,87,162,166,215,48,112,91,107,4,214,82,7,169,81,173,68,113,218,106,4,45,5,213,195,142,106,16,182,45,251,139,200,80,251,7,105,175,198,85,218,154,152,12,153,210,53,75,107,68,74,67,227,131,220,189,144,47,74,7,252,172,130,51,234,75,76,70,27,80,83,70,66,98,84,11,155,150,143,48,219,166,195,125,53,17,116,188,46,18,165,247,197,222,164,177,39,173,229,41,164,101,28,109,115,192,190,76,37,28,94,17,189,49,185,131,39,214,216,137,212,70,122,145,38,70,174,104,147,168,69,17,117,82,133,167,46,218,199,131,6,27,13,94,83,67,52,17,112,179,178,132,84,62,201,122,181,133,156,71,112,77,224,245,183,28,28,106,200,137,207,232,154,24,236,185,158,92,207,11,117,60,200,239,233,137,113,63,106,206,84,7,61,255,199,94,76,153,136,234,54,229,13,144,49,164,158,223,80,98,251,73,153,131,216,249,71,44,125,133,223,190,113,112,143,190,186,0,183,158,9,42,99,63,144,179,245,203,114,35,9,100,173,80,129,181,216,85,82,218,133, +149,178,73,16,140,155,215,129,221,178,63,107,53,229,71,208,155,143,143,58,10,254,249,88,104,16,92,109,41,201,186,76,196,63,212,130,141,246,84,16,157,101,164,70,209,73,24,174,246,1,36,40,16,35,124,0,137,103,57,131,18,82,0,142,230,14,213,53,105,224,60,151,252,91,103,181,218,50,182,54,27,132,105,72,130,30,186,194,120,74,38,97,16,90,109,14,255,8,43,23,16,171,196,141,163,189,168,4,198,53,69,33,134,48,245,97,45,75,48,173,247,165,143,208,227,134,186,144,210,130,152,85,6,1,73,165,82,43,144,232,180,48,83,201,35,168,44,16,87,165,136,68,25,253,1,144,236,193,197,41,3,25,33,173,109,41,165,128,81,100,115,56,170,1,159,168,174,217,144,53,192,164,71,124,79,86,186,23,55,241,123,120,230,170,237,206,42,243,100,215,202,108,79,104,254,253,99,110,155,51,233,109,173,221,110,167,211,105,226,103,163,47,199,99,10,230,163,89,106,132,31,55,171,174,93,69,94,112,129,51,119,208,166,127,158,238,177,166,228,251,229,150,122,240,78,49, +218,240,154,44,222,141,20,215,123,188,116,245,199,93,186,83,0,204,243,243,193,210,117,25,79,21,112,123,226,166,23,202,175,24,35,250,125,51,126,255,94,131,248,69,0,172,49,193,95,31,157,175,25,3,199,167,32,228,128,156,4,8,65,59,112,249,121,71,229,249,247,185,124,241,189,171,239,233,252,222,241,249,126,23,39,55,0,45,55,218,26,56,39,46,15,252,130,78,249,197,160,204,63,251,32,150,219,40,15,64,230,84,181,237,14,55,146,54,93,39,73,59,168,36,191,5,224,25,135,113,87,157,70,146,6,19,132,169,173,228,228,228,47,136,241,144,230,132,35,47,54,194,218,11,116,189,146,82,145,19,205,5,249,59,26,71,170,222,141,34,134,54,113,22,199,133,2,221,113,26,2,106,83,228,158,101,243,253,94,132,78,175,61,87,189,12,111,107,73,179,116,25,221,179,221,252,77,116,150,110,160,21,233,70,144,56,102,216,94,52,171,254,243,12,185,244,185,139,230,20,87,233,51,39,43,86,249,170,169,124,170,1,73,188,127,215,214,196,132,244,25,80,250,128,147,128, +43,238,191,201,181,183,226,121,22,160,158,247,196,139,254,61,124,175,77,111,121,170,238,211,30,55,232,231,243,43,248,70,228,125,217,223,139,126,247,84,63,222,124,204,175,47,125,210,239,212,79,108,235,13,169,250,124,185,115,206,248,52,47,173,111,92,211,151,57,230,138,166,39,53,253,118,252,60,124,209,11,177,248,12,37,143,111,82,219,23,63,193,136,249,231,179,244,214,47,202,191,161,243,133,252,52,242,134,111,100,253,55,250,117,180,83,158,153,240,187,242,35,242,9,11,191,130,197,84,159,57,86,99,247,139,186,255,164,239,94,166,218,245,157,208,248,20,149,199,47,105,145,195,158,39,175,240,221,44,122,178,11,205,23,46,254,94,196,223,171,84,252,109,142,191,7,182,237,27,186,125,183,183,205,119,38,255,182,230,223,190,141,240,133,21,190,4,84,200,243,23,121,247,225,7,103,65,61,112,111,92,105,180,91,135,126,188,181,137,146,230,2,100,155,158,180,134,177,188,10,58,217,174,21,104,89,82,86,131,12,38,133,213,104,173,171,139,34,124,7,60,12,232,224,132,209, +226,27,62,156,227,106,28,137,234,155,29,207,250,53,71,138,223,159,204,126,123,91,3,80,115,109,49,74,113,8,90,67,44,3,11,207,148,184,145,41,210,159,251,64,99,26,177,249,29,121,236,200,216,85,122,153,160,87,43,135,188,120,156,124,57,214,105,78,127,87,109,147,146,1,57,40,154,213,223,95,148,25,169,110,254,78,201,38,209,68,241,251,199,53,73,95,52,184,184,74,158,59,29,239,74,190,173,252,19,255,158,26,13,170,75,84,210,233,89,4,92,104,127,99,156,213,238,146,51,31,243,173,67,38,58,207,225,166,19,48,93,152,228,219,5,54,234,172,132,151,212,180,93,31,222,237,215,206,201,203,184,224,55,237,209,173,186,112,116,70,186,11,122,97,104,15,239,204,90,231,143,103,187,48,86,188,222,173,42,103,119,148,178,11,229,50,227,1,247,216,172,211,40,184,46,176,57,79,182,190,33,21,157,128,202,30,19,44,87,226,251,61,241,236,172,77,118,236,116,213,146,220,154,232,142,77,244,109,151,22,154,220,233,170,159,62,218,36,183,69,95,240,109,221,117,230, +215,13,99,164,177,139,42,77,6,126,161,69,159,24,145,251,25,43,250,254,43,116,184,241,233,166,34,177,155,139,171,187,172,120,119,181,238,54,81,235,174,105,221,29,169,214,29,40,221,237,37,201,221,92,186,107,75,119,147,179,118,55,214,238,161,139,225,178,240,111,228,224,68,199,172,86,100,190,4,235,96,206,9,89,219,155,26,240,74,242,179,2,203,196,197,181,205,207,43,53,166,53,122,137,52,182,183,244,75,6,8,99,113,69,150,121,255,188,237,137,151,241,238,186,164,82,246,35,236,18,117,155,70,34,39,139,85,213,49,66,10,39,211,109,240,118,164,171,6,173,181,34,19,108,193,20,230,115,102,24,211,22,213,48,25,208,213,248,165,238,150,10,164,196,37,4,208,70,27,4,185,101,39,45,140,183,67,91,64,89,221,2,230,54,113,171,110,51,157,197,19,4,89,180,78,104,134,166,108,145,57,106,189,179,52,119,205,41,182,29,3,140,89,226,186,149,80,85,249,197,234,23,95,126,99,195,181,162,196,35,223,93,33,202,107,58,32,213,107,60,218,46,49,48,194,239, +138,250,19,197,151,232,221,23,248,250,91,120,63,87,167,29,178,203,254,119,90,107,189,119,234,166,243,219,117,87,157,107,171,238,124,167,47,58,61,23,115,81,95,75,109,119,242,202,211,233,186,39,236,181,179,45,187,51,102,252,158,171,42,159,173,149,174,59,229,185,230,203,221,49,197,186,81,80,221,97,115,190,108,229,66,38,214,96,147,187,42,88,174,197,238,59,234,185,94,139,220,216,233,154,22,63,218,229,174,38,149,215,214,162,215,178,235,133,49,240,184,189,157,54,115,178,209,161,79,213,152,235,161,30,180,71,198,117,177,54,189,36,44,110,69,163,213,38,205,178,216,227,164,18,118,153,69,237,77,232,217,222,4,219,250,80,123,172,15,182,115,161,54,177,248,217,130,237,11,116,213,182,67,219,85,104,91,206,132,182,63,197,135,128,185,124,152,227,155,99,190,78,136,127,175,139,240,87,249,243,201,152,7,157,29,248,153,137,86,217,97,11,178,242,188,229,104,203,248,101,120,203,248,111,234,225,57,128,113,88,13,214,57,13,188,126,207,2,181,184,247,204,73,242,171,113, +68,117,125,83,209,165,173,249,37,144,229,163,247,119,157,2,250,13,242,101,192,182,79,69,211,118,47,129,70,150,159,70,177,84,244,101,104,148,163,135,219,23,76,78,137,127,186,20,131,26,21,182,133,179,117,52,177,153,237,119,45,224,46,7,184,84,165,221,2,40,136,41,219,77,192,57,104,165,91,214,251,156,193,234,95,88,81,34,133,149,143,7,225,9,133,127,106,240,146,100,212,174,251,242,2,233,64,139,206,208,197,181,59,20,160,85,103,228,116,87,107,10,208,172,179,31,186,152,44,5,104,109,230,75,229,84,192,37,15,41,214,59,140,10,112,35,63,230,22,82,84,0,209,117,71,173,59,16,149,63,126,188,200,182,240,230,71,119,237,214,140,235,80,7,55,174,93,255,128,166,108,113,155,26,109,62,58,66,215,16,142,204,232,221,117,16,183,157,228,53,126,185,189,184,13,37,82,98,254,162,207,95,228,96,141,254,160,45,189,130,229,198,123,144,64,252,151,81,210,127,209,43,32,239,203,185,250,90,231,158,57,157,31,112,175,30,152,239,137,13,211,224,101,221,237,89, +29,44,155,90,12,46,69,80,152,201,210,75,126,39,19,76,7,53,54,180,64,16,60,92,212,8,67,50,108,30,83,158,77,64,91,25,40,250,117,71,137,169,40,131,72,138,115,148,20,32,16,29,244,65,153,128,129,78,251,200,79,147,116,74,130,103,33,97,108,157,87,227,99,33,113,157,132,138,16,182,228,168,33,198,13,94,198,136,143,164,49,134,245,36,99,218,99,171,197,78,179,103,14,146,247,24,227,175,107,69,30,66,77,153,127,14,135,130,106,0,137,58,7,164,180,251,6,80,93,13,165,89,76,118,13,80,53,182,159,238,22,247,39,181,37,11,39,117,59,32,195,137,1,148,229,163,121,200,224,105,2,14,94,214,7,222,241,254,152,232,126,157,161,248,191,74,179,53,89,203,170,206,192,73,103,158,241,22,203,137,170,233,36,7,207,58,51,47,149,110,79,68,63,78,255,49,251,243,195,59,28,39,154,54,224,12,93,178,63,188,31,76,105,34,41,127,70,232,9,100,158,120,56,65,5,234,206,244,249,243,123,7,13,79,124,133,58,19,58,93,102,142,103,185,235,233, +166,240,120,187,236,185,118,157,52,61,102,107,135,94,231,46,150,152,147,237,20,118,45,6,60,107,97,144,229,76,39,101,139,185,40,106,212,249,51,13,190,123,100,196,92,216,16,143,248,215,203,182,182,147,115,211,113,104,43,14,43,197,234,144,81,28,202,138,131,45,98,56,204,12,135,66,211,112,120,1,135,44,176,58,140,129,195,28,56,200,77,190,3,243,61,33,190,95,89,253,131,39,184,49,92,57,141,159,111,243,82,225,252,11,124,117,198,234,102,214,47,0,60,207,12,52,149,101,53,32,5,179,233,1,180,210,94,206,91,194,243,21,36,14,109,253,88,121,112,76,188,100,136,91,226,229,198,158,77,253,6,213,130,20,169,13,148,190,210,7,37,27,150,133,18,69,153,77,90,113,154,162,130,20,22,106,220,59,230,229,236,3,128,19,218,139,156,103,22,204,180,138,3,168,97,243,5,63,160,148,43,61,101,118,55,25,86,246,237,168,145,61,182,155,224,229,204,166,133,231,235,63,171,148,106,197,96,24,169,45,91,114,5,141,138,172,167,98,83,110,5,91,139,77,113,127, +208,223,222,75,203,220,93,31,59,128,242,47,205,227,128,175,94,174,231,182,238,137,236,44,126,199,13,59,201,54,127,82,87,191,221,102,85,93,63,91,101,79,250,204,243,219,107,48,217,103,233,200,245,36,175,127,129,102,117,50,59,59,85,79,198,107,46,16,54,228,202,51,38,97,122,66,150,2,185,190,25,139,159,11,162,103,1,54,21,200,26,72,244,224,12,14,223,223,162,239,181,190,208,161,78,55,132,149,253,18,105,186,251,43,226,106,119,182,213,238,169,47,205,183,179,210,97,173,116,27,148,173,26,105,46,124,226,85,153,124,86,197,53,247,136,228,91,83,236,228,41,107,61,193,206,68,188,155,135,208,202,41,60,175,150,249,187,59,127,111,214,186,247,155,225,89,54,172,158,127,134,231,12,120,218,62,2,228,5,60,179,111,224,137,240,61,85,190,220,211,228,123,50,127,239,107,162,247,172,127,172,4,190,91,35,167,1,9,108,50,47,156,127,128,107,43,100,53,154,147,209,16,230,193,184,184,12,167,231,117,165,129,20,16,89,43,198,72,69,5,242,20,87,35,141,159, +161,180,208,72,224,192,108,175,134,15,1,58,194,96,44,37,69,243,20,14,228,233,98,180,12,67,4,164,179,40,252,162,191,32,131,188,145,250,61,191,76,204,200,160,248,184,228,209,35,37,109,16,84,145,132,81,104,125,31,143,116,58,221,132,165,21,119,125,143,146,118,238,140,1,229,39,172,75,37,3,95,51,143,24,145,53,251,163,196,214,108,41,3,60,149,146,25,217,229,12,28,93,162,241,210,166,24,244,61,5,135,130,139,248,20,143,201,104,193,91,214,230,187,175,105,18,255,42,80,239,233,46,8,93,28,49,235,186,184,215,186,151,11,91,211,238,138,216,214,38,237,215,45,189,112,253,184,162,22,169,206,164,85,31,23,166,69,219,21,182,235,138,90,26,182,180,240,148,93,177,148,53,91,212,154,135,139,162,165,254,25,145,165,40,181,212,240,194,81,112,157,163,22,2,73,27,66,171,43,194,240,162,43,58,141,129,66,131,185,89,225,47,246,115,184,233,30,104,137,60,99,133,80,91,220,191,52,86,107,165,65,89,33,86,24,155,45,218,252,114,139,180,39,114,133,19, +215,44,78,18,171,169,216,216,146,215,90,172,157,1,155,55,177,65,45,92,88,33,63,242,139,181,194,234,254,169,113,216,203,12,202,22,144,33,155,191,240,134,32,140,108,8,96,13,193,159,173,185,185,55,55,215,38,231,179,233,111,13,125,253,175,241,222,89,95,155,215,226,153,108,222,148,118,245,41,141,137,207,6,63,232,169,179,154,95,218,190,176,0,193,194,177,230,225,61,186,171,130,144,74,42,164,82,128,76,83,213,248,226,33,41,105,198,210,146,75,243,79,180,8,192,105,112,142,137,148,204,144,11,187,175,4,0,242,214,134,42,16,150,198,73,11,19,37,40,38,97,79,60,168,20,16,154,203,200,89,7,16,128,179,138,250,89,133,8,71,40,101,195,192,210,197,44,215,245,166,127,176,76,201,23,255,248,131,111,97,103,50,51,220,89,204,204,239,170,25,213,168,110,225,45,32,115,201,146,200,28,197,6,84,230,187,86,74,131,87,38,101,194,22,155,248,21,121,46,153,115,29,179,141,249,48,226,111,156,4,253,62,210,118,193,174,153,65,114,207,31,132,113,79,182,188, +181,41,227,118,45,15,182,166,39,98,41,110,32,95,233,131,171,237,244,68,237,250,98,70,205,57,30,76,101,79,216,42,249,84,176,165,131,103,87,247,196,108,57,74,134,102,30,30,44,117,79,164,102,201,145,50,131,240,1,195,42,120,56,83,126,226,106,33,202,57,200,126,134,0,221,141,95,215,195,239,151,199,105,175,180,168,11,243,26,99,189,68,57,110,183,40,179,42,140,43,211,229,225,96,113,42,139,45,13,107,166,35,90,170,145,21,103,17,204,148,123,99,99,114,123,248,115,56,53,224,82,139,50,215,97,172,94,38,140,115,128,100,156,177,192,88,211,253,228,54,156,83,156,231,242,167,175,56,123,250,90,111,94,125,203,230,53,221,120,55,155,166,119,181,240,246,22,222,85,127,225,29,174,94,17,65,243,241,109,255,83,111,114,7,57,127,108,86,163,142,233,47,193,63,234,166,139,138,209,165,47,42,154,90,250,42,27,200,126,124,81,93,150,81,21,54,236,176,43,2,99,248,239,159,205,147,249,1,114,218,246,240,18,72,0,37,75,225,207,202,242,75,76,196,35,126, +163,97,152,15,21,16,161,135,70,149,143,237,151,16,238,28,63,227,43,94,241,7,238,111,142,95,182,103,199,211,50,82,244,206,249,84,84,179,100,6,37,3,236,43,144,28,8,91,181,221,4,68,102,204,207,104,114,74,94,254,37,118,13,195,16,142,208,233,151,165,37,6,28,253,17,217,94,195,86,193,238,173,122,12,218,178,63,228,172,220,25,3,16,215,31,20,253,10,64,74,68,10,144,124,147,64,5,79,166,59,132,101,69,24,74,102,16,67,143,141,176,18,41,214,69,115,31,197,128,198,169,33,82,106,120,21,202,198,189,68,191,154,130,18,41,61,91,19,186,24,27,236,247,107,17,202,88,123,10,8,80,106,177,231,58,226,203,202,68,112,176,208,12,33,18,24,127,218,72,253,105,22,147,46,109,173,114,223,159,84,160,218,90,57,190,163,245,247,16,128,127,117,198,234,78,2,227,169,103,62,10,148,169,218,30,51,255,183,91,242,38,46,232,237,115,0,133,81,89,53,184,100,60,102,21,66,68,138,146,1,227,137,11,71,81,134,130,11,252,4,139,210,40,198,24,87, +201,192,70,148,84,137,197,131,183,112,28,148,176,20,6,134,70,78,126,245,135,96,135,80,164,56,197,214,7,16,162,164,88,5,9,198,101,228,164,229,4,1,72,179,235,15,203,166,111,111,69,74,132,124,87,222,66,171,170,30,45,107,68,182,12,226,98,40,45,179,106,252,34,107,122,222,15,193,112,253,16,201,182,156,130,117,245,60,6,192,227,89,84,142,56,232,29,192,98,136,191,40,9,254,203,26,114,160,160,170,211,111,227,155,174,67,111,181,233,200,89,214,70,252,201,157,30,16,126,28,153,150,101,93,192,127,29,7,58,68,219,65,200,227,23,156,210,64,85,118,4,173,50,29,21,159,26,14,68,63,117,135,223,150,165,226,105,135,240,64,83,112,132,242,150,172,156,35,167,224,245,84,116,20,29,30,212,208,158,157,165,227,160,108,40,92,130,157,16,225,32,93,3,60,212,24,245,214,150,131,141,197,40,111,212,112,188,213,18,103,59,135,111,156,166,24,175,37,71,141,140,248,224,224,48,126,208,173,70,90,107,176,118,117,5,193,81,135,240,229,152,48,138,201,15,254, +12,112,163,165,86,227,46,53,18,156,101,140,252,220,225,120,188,19,28,213,188,7,111,153,111,135,247,237,172,111,223,78,170,223,177,245,239,29,90,191,19,234,119,111,190,125,103,179,239,16,111,251,14,35,223,81,228,127,187,73,110,112,225,71,223,250,22,94,224,122,255,61,82,194,215,157,180,252,255,188,0,0,9,162,125,197,192,119,39,52,199,159,84,10,208,158,174,246,128,233,202,18,22,0,21,246,35,77,85,55,1,239,139,65,19,128,87,156,108,31,12,41,105,176,0,6,13,131,68,161,186,223,248,4,12,157,114,163,35,244,92,2,152,106,162,166,144,40,78,126,127,28,198,249,134,12,231,189,244,247,30,6,153,105,72,186,123,2,172,47,95,32,57,21,118,205,48,50,91,23,72,25,89,178,67,191,74,246,59,134,21,209,124,69,92,30,116,162,130,79,184,192,213,41,220,149,85,44,192,252,168,130,184,59,21,12,130,96,21,233,188,145,170,36,1,12,186,124,26,155,199,24,177,27,178,189,72,237,128,252,194,190,125,203,94,47,166,242,87,184,176,159,2,90,215,139, +170,250,253,5,230,85,229,205,170,26,191,232,154,79,59,115,145,184,73,77,47,178,194,243,233,152,160,111,206,158,232,101,43,248,168,10,169,32,91,202,73,231,114,247,224,68,221,221,118,87,248,179,230,121,89,42,190,6,69,45,32,148,137,145,231,28,41,58,61,11,55,163,119,250,220,88,188,242,91,241,151,174,220,224,74,143,75,120,222,12,158,180,177,222,141,177,125,254,56,122,94,99,233,87,160,210,191,176,229,42,98,174,134,10,78,244,192,13,211,125,34,234,6,175,36,255,203,173,43,244,184,210,4,57,247,30,158,167,250,235,118,249,125,221,236,222,79,217,220,170,222,27,211,123,123,77,58,183,88,231,134,188,119,110,159,210,228,111,110,11,254,77,205,191,189,82,252,155,160,125,250,173,186,23,190,99,245,221,63,169,124,102,72,200,178,59,43,143,190,118,224,253,100,248,84,64,69,93,14,76,164,152,127,76,172,164,40,229,97,112,19,3,137,113,74,74,41,8,124,8,42,105,240,197,121,70,135,234,83,72,228,160,22,29,133,249,39,11,110,151,76,105,225,193,71,93, +84,152,168,115,208,168,165,22,172,82,88,29,40,165,117,202,64,96,65,91,25,35,105,24,4,72,241,234,67,57,73,51,85,127,100,231,152,77,94,172,187,148,69,214,143,62,196,173,110,81,37,188,236,103,48,154,126,230,139,27,78,39,56,198,250,209,140,98,117,20,51,88,140,195,136,89,30,43,220,64,143,23,181,86,48,181,5,127,176,10,97,90,252,221,100,5,219,206,44,237,244,187,63,119,64,100,231,7,40,187,46,88,221,93,26,161,237,206,148,215,133,148,245,171,180,66,148,221,157,108,69,7,86,15,87,52,76,193,157,46,233,200,106,43,54,188,10,138,206,14,111,193,205,84,240,50,151,82,54,188,144,15,172,186,159,93,35,113,93,133,3,154,179,167,226,102,168,43,60,116,153,16,155,35,125,34,43,180,208,0,79,211,171,183,197,166,47,54,249,84,229,138,80,58,71,30,115,119,200,186,234,53,140,182,237,106,161,176,57,147,165,38,77,181,194,149,157,21,228,98,1,177,90,99,129,198,188,187,26,1,66,155,39,223,100,40,180,73,116,137,241,183,192,62,137,214, +191,87,163,245,94,189,109,250,51,79,127,214,190,245,103,188,254,108,181,191,207,112,251,153,109,63,191,141,242,51,88,126,230,191,229,103,134,252,236,114,191,207,24,247,153,226,62,123,38,151,213,69,215,208,175,219,86,129,99,158,211,164,187,195,198,149,118,203,114,233,165,222,39,176,224,93,245,39,176,170,88,160,15,218,75,53,72,147,244,71,37,234,179,73,81,140,182,252,47,176,252,97,37,73,83,130,123,162,208,61,33,81,174,251,135,42,218,145,33,6,161,21,101,81,80,41,243,115,19,37,209,128,61,167,133,139,53,148,163,141,7,119,49,88,183,68,245,234,82,213,29,100,151,172,94,163,15,137,120,89,190,69,149,221,134,2,186,188,160,152,37,106,212,184,75,81,69,187,164,140,234,230,85,65,27,222,152,170,167,30,112,109,73,77,57,230,152,27,176,120,181,177,28,176,185,252,165,189,0,26,75,159,124,30,133,43,89,221,20,203,110,74,233,100,43,127,71,202,149,205,7,47,76,55,222,76,211,17,171,170,232,57,135,46,186,177,21,157,100,188,164,151,169,152,148,178, +254,128,158,59,195,167,101,192,115,147,117,190,121,122,51,31,83,205,69,85,114,111,191,60,48,206,141,53,248,105,106,185,73,26,223,24,174,150,143,169,16,163,11,213,93,92,126,146,231,198,78,252,148,115,184,220,156,86,155,173,91,163,170,122,59,82,213,12,150,181,49,225,124,156,63,253,24,122,46,97,173,45,208,232,44,248,74,21,166,82,67,4,101,58,120,190,247,159,114,74,159,43,252,219,30,158,244,186,109,121,242,167,242,28,158,229,186,119,126,17,116,230,246,206,252,184,73,156,212,155,19,54,119,146,252,228,78,131,220,9,74,201,157,218,151,147,246,50,59,157,46,39,129,110,126,250,109,149,125,110,149,239,122,41,191,103,154,87,184,91,127,142,225,68,25,94,150,19,78,90,1,105,145,173,45,125,20,190,137,255,126,255,60,153,6,249,157,242,81,12,31,220,39,251,83,76,57,85,81,26,181,131,196,179,64,47,11,176,194,16,39,46,149,145,100,252,67,35,26,70,91,14,18,175,29,132,189,76,144,63,135,217,114,6,201,42,151,137,23,116,95,102,17,101,20,146, +138,63,195,153,192,198,57,140,138,38,72,212,182,225,16,18,52,150,113,50,74,87,141,184,190,76,96,157,106,164,162,112,64,212,174,90,12,18,201,253,37,36,155,11,178,235,64,58,175,72,77,60,204,230,208,173,64,213,65,139,101,20,71,168,178,9,81,203,205,28,5,80,77,170,232,4,140,82,27,57,195,67,248,110,254,119,37,159,90,92,21,170,156,139,197,84,242,126,62,96,1,110,158,198,55,3,142,49,137,202,33,50,215,15,78,151,2,14,151,190,213,14,99,209,75,76,249,130,248,83,185,1,176,54,48,23,50,128,108,87,172,2,88,249,54,83,161,195,151,26,85,49,230,81,166,191,102,243,189,79,215,53,234,169,174,184,189,16,224,110,42,39,134,221,245,211,228,45,122,202,236,165,228,219,63,252,240,245,60,182,158,167,145,107,133,191,252,108,115,173,117,176,249,230,150,247,75,221,235,25,94,149,103,240,255,25,212,57,44,42,153,106,41,0,81,244,209,106,144,71,84,81,236,1,44,77,196,0,67,102,146,124,2,204,142,131,254,210,176,132,164,74,30,131,4,234, +109,220,22,132,65,16,121,76,84,73,239,82,72,108,13,184,63,3,37,113,225,128,164,140,174,67,73,168,36,29,180,29,138,139,17,121,217,227,167,137,203,45,209,152,162,6,101,37,245,157,68,125,70,117,83,21,13,100,76,126,168,198,48,61,235,138,241,144,63,59,126,232,8,107,69,82,101,139,198,86,143,86,162,245,36,42,72,40,33,216,73,210,15,27,17,158,38,65,237,191,180,166,202,7,35,75,35,112,177,236,204,125,210,17,221,233,150,156,145,154,150,76,167,182,163,146,25,209,158,4,109,229,74,58,169,234,88,165,210,213,232,228,8,19,30,21,61,123,99,167,237,36,233,185,196,106,182,16,81,77,6,116,179,81,157,156,213,70,37,203,62,111,106,56,201,90,46,49,88,33,68,84,49,49,93,39,38,39,123,241,81,62,224,216,27,90,78,146,142,189,36,86,207,8,213,221,27,164,183,133,73,93,62,61,154,24,76,223,181,58,132,161,89,226,43,54,228,77,245,5,161,227,193,201,191,155,127,196,243,153,162,158,223,250,74,175,57,86,231,149,127,127,19,167,75,7, +222,100,255,119,36,180,223,77,254,38,123,162,77,131,119,149,241,159,202,252,157,161,179,249,201,99,110,36,81,95,70,135,203,232,135,114,25,137,47,35,104,53,49,106,87,71,218,234,232,248,239,75,114,217,228,175,155,75,103,114,233,191,206,190,202,119,44,189,250,138,179,199,12,57,252,68,229,196,252,65,7,180,116,66,183,212,132,193,0,64,159,243,71,10,97,70,154,124,214,47,3,73,3,152,4,152,57,2,192,198,106,150,6,1,111,235,56,168,6,43,162,177,165,105,40,230,39,65,75,248,65,97,87,151,139,52,74,202,132,15,69,35,147,162,195,125,220,160,67,6,64,228,228,107,160,92,66,59,228,3,42,63,178,111,165,169,108,87,23,103,172,80,121,27,26,55,82,27,182,35,179,129,189,27,137,131,116,124,171,91,39,30,151,245,20,163,100,237,226,180,68,83,141,132,250,225,143,147,33,139,197,22,103,34,167,251,65,28,115,15,211,5,197,145,5,89,250,243,162,219,98,109,234,146,216,243,68,143,200,151,226,23,98,167,142,116,95,232,253,41,252,215,32,139,30,214, +130,151,162,63,255,18,152,122,48,214,168,222,195,107,127,15,205,163,171,171,120,191,180,2,244,31,35,23,75,201,69,35,61,149,188,71,199,255,174,96,201,67,83,244,114,116,22,1,154,73,68,166,144,238,208,8,42,220,191,242,233,191,95,133,199,94,234,208,168,154,13,129,113,65,60,83,110,200,104,5,222,27,109,254,191,20,224,113,142,243,157,161,126,179,101,250,170,247,212,226,49,178,14,188,251,249,239,159,84,79,245,4,171,157,177,86,255,179,99,48,239,41,236,55,113,244,199,223,183,114,127,11,130,220,147,250,225,207,110,186,220,150,41,119,167,94,191,174,148,192,157,20,220,93,73,129,51,185,113,167,146,27,87,106,227,76,173,244,206,212,123,203,120,175,198,10,95,87,241,206,118,10,47,233,247,131,122,143,251,222,207,245,91,80,164,147,63,34,242,163,33,195,121,21,189,148,47,25,49,144,184,56,82,36,12,63,119,176,255,67,208,134,221,148,18,128,42,145,104,17,128,30,166,32,93,112,74,78,171,249,65,46,40,166,0,10,23,165,162,182,42,9,114,80,84,17, +127,218,82,198,196,107,44,152,114,88,204,7,33,126,189,146,254,16,141,225,252,33,59,129,111,37,40,84,114,56,73,16,14,145,54,33,100,56,50,98,127,77,226,87,43,17,166,227,252,126,44,253,168,145,13,82,13,54,76,57,99,21,89,63,0,7,46,62,206,88,186,36,30,28,80,89,252,116,10,31,26,27,206,132,117,238,13,180,166,74,239,97,229,76,87,112,133,104,107,157,24,93,212,134,103,99,178,232,40,46,184,248,250,90,27,90,29,72,213,59,117,113,84,155,21,53,199,161,177,226,34,169,121,196,1,35,27,73,77,196,82,157,185,80,156,197,103,37,176,228,104,42,186,200,74,46,143,200,36,192,83,49,119,72,42,238,21,123,121,248,44,175,56,26,74,46,11,73,181,34,210,207,240,71,234,14,145,182,3,69,163,174,59,155,0,22,113,48,223,96,40,86,120,218,221,118,77,125,61,165,248,193,171,136,120,207,190,245,63,150,74,181,49,80,107,7,123,122,229,150,74,125,227,165,163,78,145,178,153,109,200,114,75,254,135,179,81,41,51,39,230,216,157,106,254,58, +83,31,23,253,38,28,159,152,73,254,186,24,201,127,222,114,164,226,2,103,234,227,173,13,224,72,109,92,73,189,211,149,124,111,105,175,177,162,254,221,213,63,179,157,219,68,250,125,164,54,103,236,49,125,201,178,121,225,124,220,1,174,82,49,2,96,148,178,255,47,162,230,14,134,2,160,198,138,64,8,62,44,177,227,254,180,80,245,209,245,157,128,35,225,23,177,233,96,11,64,46,170,208,31,217,211,139,239,72,41,101,129,141,37,130,12,18,132,159,4,51,133,203,196,135,255,171,196,248,246,227,81,170,84,62,197,243,11,21,103,190,89,188,83,209,107,142,50,46,152,230,206,135,70,168,186,58,7,19,10,86,127,72,168,24,88,108,73,181,184,108,113,225,242,115,146,116,72,40,206,65,65,21,17,147,56,145,149,94,24,177,129,58,121,133,29,113,137,237,142,7,191,169,249,13,69,94,106,162,79,227,22,239,27,172,139,149,23,59,244,105,158,254,166,252,232,169,177,82,202,120,234,211,148,110,210,7,92,202,7,8,249,180,12,127,83,11,146,92,172,244,211,59,13,183,181, +111,114,133,136,44,195,6,194,211,52,254,77,73,23,137,200,82,72,120,146,116,243,109,65,233,2,15,149,191,3,167,156,191,77,226,229,47,240,18,15,220,56,185,127,219,227,170,93,126,43,103,94,39,106,206,221,158,254,84,239,165,147,196,123,210,86,219,171,114,184,250,87,166,119,78,206,82,172,61,47,48,175,165,105,132,127,2,55,121,155,78,101,226,42,215,215,167,181,155,121,211,166,158,209,178,244,181,42,250,142,42,171,192,93,206,113,231,49,23,225,244,68,222,8,161,236,243,71,232,29,87,223,225,117,245,61,175,254,26,222,106,159,89,233,51,40,59,62,163,50,167,233,150,191,44,59,229,145,171,86,168,24,229,254,14,121,215,99,187,59,95,251,205,191,31,92,111,238,71,206,63,183,19,163,209,205,6,137,20,152,143,192,199,157,143,145,247,12,151,204,201,72,241,34,218,96,124,215,241,7,48,26,38,241,188,209,32,88,216,138,146,81,226,127,42,175,129,12,2,93,230,62,50,136,232,188,38,96,48,71,25,243,65,246,105,153,250,185,140,120,238,12,132,33,22,149, +80,46,163,2,37,50,102,243,70,137,192,148,205,91,4,6,5,159,255,134,119,113,84,116,184,220,4,85,91,164,31,125,172,180,48,90,209,48,93,184,156,42,76,78,69,42,76,52,255,35,199,135,144,222,233,120,29,155,192,164,155,231,8,205,194,32,115,225,7,178,27,32,21,0,172,177,10,220,29,234,128,180,95,39,158,252,183,221,67,98,30,223,115,134,192,85,71,170,213,181,110,185,122,47,159,174,157,19,94,229,23,235,168,71,133,218,51,55,149,18,224,102,123,89,97,58,75,59,248,161,53,231,50,69,174,38,156,238,40,111,228,220,121,53,219,10,76,110,132,19,21,121,235,81,215,152,229,252,235,172,240,255,202,94,101,153,183,11,61,99,52,31,54,155,211,173,187,227,255,44,200,82,43,104,88,120,208,88,35,238,129,175,24,141,4,11,236,35,150,56,216,73,198,38,252,97,90,159,18,69,129,114,221,127,122,227,72,254,220,213,69,22,152,173,162,0,194,193,14,70,10,73,250,37,85,20,229,103,145,177,66,18,77,141,5,75,198,72,239,176,80,80,119,249,93,6, +198,175,227,31,32,200,170,37,14,253,170,90,68,203,66,59,200,200,248,195,12,188,2,55,238,98,110,48,221,100,62,21,49,166,211,126,133,5,199,23,35,100,152,70,67,160,70,132,38,199,18,133,64,245,7,162,171,31,229,73,211,4,18,76,245,18,248,14,239,214,158,248,85,222,241,224,215,145,25,198,62,136,124,25,251,240,83,109,199,161,104,63,86,97,232,195,88,166,184,29,73,145,251,145,248,46,24,148,92,249,104,102,174,9,199,78,66,17,115,79,221,159,229,119,37,197,21,100,42,121,200,42,62,113,78,39,194,177,49,104,68,39,14,244,123,221,93,30,12,92,13,121,15,73,225,92,99,105,151,27,246,46,120,68,218,175,190,238,221,217,201,245,142,80,181,165,28,171,215,39,186,253,250,198,126,125,71,240,157,254,21,177,217,125,203,29,21,203,79,107,160,212,237,105,182,170,11,171,110,69,70,131,117,159,114,217,25,213,63,142,124,185,213,85,101,143,7,250,196,129,53,115,137,17,118,182,143,155,236,222,46,241,149,46,190,194,223,226,43,91,124,69,127,191,175,194, +239,43,255,251,250,38,124,95,101,218,171,234,160,189,94,154,59,189,109,213,199,86,250,27,109,164,244,91,195,250,140,52,193,173,30,88,252,91,193,250,31,15,103,185,164,76,211,116,235,83,111,220,221,221,221,29,6,151,193,29,6,25,220,7,119,183,143,251,121,99,239,136,110,154,102,130,31,100,86,175,92,87,77,85,62,253,205,224,123,219,247,71,138,65,95,62,176,187,114,81,117,225,208,136,141,147,37,245,16,58,30,40,34,141,36,41,41,29,4,228,158,110,145,137,97,30,130,160,108,143,42,36,185,208,1,0,138,76,213,210,70,117,36,24,137,132,132,34,170,22,26,4,46,48,87,90,65,245,4,194,131,241,202,215,5,103,245,221,3,112,130,234,106,53,176,135,246,121,97,5,211,224,116,16,137,61,4,9,129,195,33,152,234,177,213,76,35,60,154,8,33,153,128,28,19,142,244,136,88,59,17,22,139,139,55,74,104,225,194,84,122,226,212,243,42,102,186,111,67,173,254,165,135,39,107,154,248,8,109,245,253,73,21,140,202,41,44,110,214,141,78,252,235,100,235,154, +40,170,83,31,67,51,2,223,27,88,47,228,220,248,154,206,33,67,207,197,209,178,208,25,90,17,134,149,68,33,90,162,219,139,24,55,30,160,230,164,107,185,56,186,10,15,69,35,32,176,240,25,20,10,6,122,128,191,97,236,116,106,19,195,66,119,100,156,46,104,247,147,0,227,249,66,248,78,111,237,118,24,51,141,218,12,170,91,156,232,246,43,218,202,241,194,112,252,208,151,39,215,211,185,141,209,86,178,54,210,107,15,12,250,143,27,157,106,194,100,122,83,168,95,237,137,44,70,93,167,206,156,104,211,219,0,125,236,66,91,120,48,57,11,31,58,196,122,26,242,189,135,185,247,44,247,68,111,112,239,133,27,61,169,183,209,91,54,122,184,93,163,247,51,239,173,43,184,80,71,7,243,215,49,97,191,141,250,234,169,30,189,90,241,50,134,149,94,15,163,143,246,114,248,33,162,254,187,18,244,9,194,161,221,85,155,15,200,49,168,143,249,138,163,229,32,60,41,49,164,4,128,199,23,123,0,96,164,59,108,80,8,146,13,164,194,225,226,17,10,245,133,112,36,238,170, +68,2,27,179,64,9,14,70,226,8,160,67,137,223,137,190,53,140,207,246,173,163,78,15,198,73,113,121,32,189,253,169,75,30,236,43,112,139,241,26,177,24,11,87,137,49,143,188,122,67,163,99,185,221,197,88,135,47,44,150,156,185,146,160,113,2,229,26,23,25,227,67,4,249,90,138,117,11,226,183,145,239,121,3,171,216,254,220,71,92,221,221,172,246,237,230,208,253,180,76,7,234,240,139,175,115,210,195,22,7,189,102,210,55,172,137,95,78,12,176,61,35,124,213,99,122,143,107,254,213,84,42,223,116,46,106,156,123,33,246,10,240,149,18,196,60,80,221,215,69,248,38,107,137,126,118,92,128,122,14,9,247,61,226,113,141,65,94,15,208,251,229,127,25,252,57,70,103,144,82,172,79,163,243,117,239,230,120,175,188,246,227,180,190,189,52,10,255,55,165,211,88,36,214,187,161,195,185,222,207,91,215,227,234,241,199,62,191,108,26,127,50,67,235,244,146,134,243,200,193,248,218,165,184,215,111,73,246,17,154,188,124,146,151,191,74,18,44,227,185,223,221,112,242,187,183, +44,214,215,233,233,81,61,61,94,12,251,67,97,127,196,58,246,7,194,254,184,87,214,143,70,229,193,169,60,252,154,202,35,69,127,116,118,186,171,191,190,243,219,174,195,119,47,251,174,61,238,185,247,223,226,173,0,251,12,49,69,113,175,19,186,25,169,17,136,252,109,158,9,113,74,23,149,40,40,197,135,82,33,88,74,134,101,81,0,162,137,30,32,75,46,120,222,28,5,245,201,164,29,52,14,56,75,200,239,64,57,253,77,134,126,60,23,84,139,4,143,67,217,220,192,215,29,5,246,124,252,30,194,8,105,198,220,69,22,180,88,72,178,209,110,165,43,218,15,199,93,241,62,10,77,158,88,74,46,255,79,201,133,208,35,214,225,10,43,2,239,36,145,21,20,75,177,184,68,80,59,51,142,211,74,119,4,210,101,85,216,121,206,68,15,114,180,106,197,118,231,64,171,182,50,102,173,103,55,219,13,235,174,162,59,135,216,53,183,144,154,54,41,215,205,86,101,91,168,137,30,177,247,51,66,46,140,168,9,27,110,124,84,55,35,205,27,227,198,89,232,94,1,105,185,74, +160,102,34,176,34,70,132,103,15,209,77,247,198,121,199,9,254,178,119,32,158,174,240,171,25,60,117,86,128,193,209,97,188,27,147,212,242,56,62,53,47,123,183,215,213,106,23,154,217,220,202,173,112,8,50,148,198,44,177,220,142,38,118,247,158,211,114,69,113,171,230,237,188,210,173,52,142,40,173,177,76,126,235,14,163,138,115,159,18,112,93,178,108,179,63,185,173,72,18,71,128,196,169,174,227,153,227,112,220,176,239,59,245,125,231,119,255,178,44,92,83,123,147,241,182,55,39,246,166,194,190,110,198,42,77,68,165,233,187,87,154,13,122,147,243,166,55,53,244,102,138,254,110,98,198,77,65,218,165,233,176,247,126,227,228,245,187,72,122,221,96,217,192,94,154,94,43,196,204,24,76,35,6,169,90,92,81,24,151,107,32,40,228,212,168,253,212,111,218,8,36,68,212,88,3,0,23,215,214,209,68,32,16,89,192,67,233,104,16,155,24,211,36,66,48,178,110,68,38,63,58,25,154,64,2,113,194,163,89,193,120,2,164,76,95,111,159,67,241,125,184,197,82,231,24,139, +4,38,44,203,38,169,231,22,177,57,218,21,154,111,114,114,137,84,215,229,137,160,186,201,152,28,198,200,193,218,70,236,134,194,7,180,58,104,227,228,63,169,223,57,31,182,71,232,215,9,119,211,194,171,60,57,56,108,47,37,211,142,138,91,245,6,105,145,137,159,136,81,233,221,139,109,97,178,19,3,220,82,13,213,99,41,209,66,182,49,81,51,94,98,154,79,24,231,126,97,150,9,164,110,1,21,22,211,141,154,232,157,158,115,252,205,132,112,183,248,99,143,186,228,181,32,141,59,39,163,225,30,103,84,188,127,41,254,102,124,126,221,45,119,79,221,219,46,44,86,185,211,7,56,4,37,74,171,151,88,157,87,19,135,203,210,104,213,99,153,213,66,126,62,73,86,26,119,144,214,154,36,167,250,227,168,234,180,104,4,220,58,45,187,216,77,190,78,44,137,59,66,106,133,23,113,253,97,200,168,173,45,251,69,221,117,90,72,23,247,147,187,113,106,144,27,39,78,227,52,111,36,78,169,249,105,63,63,73,75,243,147,100,126,130,144,83,167,86,234,180,76,37,78,184,212, +137,182,63,73,71,251,211,247,254,148,43,201,23,235,76,189,195,44,152,253,246,145,160,21,36,140,63,46,226,161,201,51,186,113,192,74,46,20,129,0,188,200,166,4,201,200,132,234,67,45,138,1,81,219,37,38,68,32,24,16,39,73,2,224,132,90,184,37,66,10,32,12,18,154,100,66,47,159,231,167,130,84,92,92,223,8,15,27,169,185,0,156,159,230,47,82,226,4,65,10,11,62,82,87,3,104,21,109,27,41,99,130,80,69,172,80,58,22,210,188,121,18,8,77,255,67,142,176,137,144,82,130,26,65,177,177,32,77,100,100,86,225,68,13,115,231,148,123,208,170,44,33,8,81,238,4,77,18,70,125,150,36,121,155,172,91,220,68,43,29,97,82,18,183,241,106,155,24,164,170,26,78,210,54,174,158,178,137,86,51,32,73,11,76,184,243,41,185,24,103,119,2,73,178,128,93,238,215,192,221,105,20,79,91,18,229,223,53,13,220,194,94,21,123,38,73,2,250,174,166,224,238,212,136,187,55,9,50,152,59,26,201,98,175,252,188,231,11,8,230,134,100,177,211,156,220, +173,36,222,97,206,4,117,139,163,170,209,76,242,199,12,115,66,182,216,172,84,115,94,242,75,97,86,84,84,218,147,90,195,245,38,209,8,115,83,164,173,237,149,169,69,178,239,238,152,243,250,180,67,179,159,45,146,92,142,57,37,175,61,38,37,159,77,221,241,213,104,6,93,146,81,105,141,246,152,29,234,251,42,137,139,31,221,66,219,246,208,172,89,180,106,38,121,208,140,71,35,202,78,108,79,92,41,137,171,46,193,185,186,10,87,83,225,122,57,193,16,209,143,178,209,116,66,74,129,120,24,135,118,239,233,55,60,119,70,8,66,131,55,88,33,148,106,60,204,120,32,196,52,78,205,160,130,40,16,113,130,19,158,151,226,206,168,26,223,205,55,180,26,218,124,236,50,158,240,254,111,254,75,59,30,41,156,228,141,133,137,97,165,77,64,133,107,109,191,35,95,96,106,95,182,249,252,17,44,237,131,41,40,34,9,205,79,75,137,121,235,10,245,49,211,208,126,173,27,1,155,70,70,248,57,228,39,5,168,119,38,143,155,22,138,155,152,180,156,73,172,172,16,180,70,143, +198,5,244,66,105,147,64,204,72,55,54,101,19,213,205,202,137,121,61,176,31,230,200,27,205,228,65,177,163,46,84,74,215,73,48,171,55,234,152,39,217,139,24,202,221,2,254,66,245,62,249,202,128,110,177,61,228,228,221,162,221,77,141,46,245,40,180,221,69,75,224,178,35,8,165,106,84,84,68,218,173,82,195,67,37,147,101,80,171,190,146,87,233,191,91,24,102,113,76,134,56,230,142,60,141,252,166,213,104,245,202,72,39,255,97,129,212,70,165,180,211,160,126,2,60,225,41,193,150,29,169,126,117,117,176,52,38,181,154,185,38,53,114,101,64,249,32,20,148,143,40,146,198,12,190,24,106,167,215,71,75,240,215,176,105,90,206,115,100,165,0,86,90,134,2,36,233,40,13,120,196,208,145,51,0,134,147,44,191,86,33,192,138,32,137,197,0,52,205,141,4,168,160,152,248,33,199,134,184,23,58,20,4,205,92,64,18,66,230,66,146,15,64,242,85,87,108,82,240,182,30,192,13,171,43,177,52,104,45,158,78,143,211,72,19,201,4,134,144,10,18,14,10,171,39,21, +192,153,63,177,133,30,139,14,88,127,36,35,55,133,5,5,149,181,177,16,237,197,143,125,124,16,130,148,134,196,109,99,159,147,145,109,194,94,231,16,171,209,75,235,106,196,147,133,234,34,37,255,154,132,145,30,102,210,48,130,105,90,119,188,19,6,246,168,38,118,168,191,172,44,147,39,107,255,74,31,234,239,49,182,159,226,162,78,163,236,213,172,120,102,88,148,118,122,187,30,215,153,142,125,153,227,234,195,50,220,211,16,127,53,91,17,94,22,132,159,126,29,206,99,129,219,82,229,253,175,143,249,232,84,112,153,255,95,31,243,201,152,99,177,8,190,89,255,191,143,185,153,195,101,69,143,248,244,111,108,140,203,122,45,73,126,125,154,227,104,141,19,122,221,156,226,47,89,223,246,180,184,177,27,131,108,150,14,155,133,159,103,210,246,255,250,152,91,116,44,22,61,45,61,164,198,154,253,24,67,222,143,45,251,49,101,159,24,75,74,227,103,105,44,109,149,198,186,210,248,72,30,140,105,131,177,108,112,29,127,15,198,4,120,26,187,198,178,4,28,179,255,96,31,242,91, +65,218,118,240,79,133,226,178,18,74,85,254,229,75,65,5,74,148,28,8,72,173,4,184,51,128,102,66,254,164,16,150,28,64,33,35,113,164,34,192,141,92,180,104,170,24,201,192,67,136,200,163,185,6,100,238,32,130,32,232,9,64,242,83,135,136,119,2,41,66,50,222,40,144,149,45,145,44,187,20,140,97,217,41,76,212,137,137,178,138,64,83,16,94,79,170,68,77,25,15,209,11,143,14,166,36,227,39,59,132,111,83,240,175,118,3,60,120,169,0,52,65,144,14,16,41,215,103,21,100,59,24,197,90,204,16,29,120,249,219,73,73,125,98,154,88,249,26,106,40,85,131,182,238,109,198,20,62,101,68,31,86,223,184,150,24,207,41,230,197,58,92,223,55,46,193,221,154,167,4,91,89,238,254,46,42,60,83,74,251,144,70,173,111,78,199,51,221,130,240,142,82,194,165,104,67,120,167,225,213,33,120,58,223,0,183,183,195,155,183,39,201,245,81,118,62,59,139,238,214,148,151,45,28,240,147,155,219,226,37,100,88,237,89,124,189,173,75,29,238,34,135,59,141,226,240, +135,219,253,198,195,123,189,21,126,123,153,59,27,204,178,234,111,49,197,94,78,71,246,3,121,254,117,51,217,188,121,118,219,211,205,228,44,210,201,111,163,104,209,77,215,218,105,140,53,62,96,247,183,47,187,235,73,115,61,97,170,198,147,165,122,162,84,207,165,72,245,244,153,158,120,187,233,73,55,61,191,76,141,39,90,244,36,139,158,30,70,248,70,128,31,214,157,195,84,48,47,249,43,119,197,167,72,180,182,42,202,7,214,227,178,97,4,200,38,2,208,4,138,2,0,4,39,105,160,48,137,19,88,56,85,44,141,179,63,156,66,248,14,98,73,189,98,129,216,43,246,96,208,12,44,64,132,18,205,242,17,194,215,149,149,192,252,46,92,143,222,131,229,8,150,25,194,49,146,27,76,88,156,5,82,129,140,44,138,10,146,143,149,208,95,66,24,187,54,195,66,176,209,162,36,110,181,49,185,25,28,40,24,159,165,255,165,133,47,234,105,202,225,205,12,228,20,124,101,91,24,217,10,236,142,137,202,75,225,73,195,156,126,177,210,45,164,92,255,133,48,206,65,229,159,0, +103,134,22,184,23,185,22,102,167,208,223,74,140,7,171,118,237,204,184,134,227,188,194,249,26,100,120,39,175,60,11,162,240,203,31,39,60,115,42,142,105,138,248,107,150,229,109,21,248,167,187,132,104,170,32,171,66,25,84,157,249,53,54,67,142,246,59,79,46,183,91,249,201,93,114,115,85,49,94,182,140,143,205,220,62,137,45,67,250,157,197,169,203,147,212,94,47,113,56,75,21,238,84,190,221,191,102,58,157,45,74,255,229,46,83,58,179,172,82,123,253,107,127,45,171,148,255,200,243,153,73,102,203,239,201,236,117,34,99,145,222,199,204,146,37,163,90,115,210,170,245,231,146,94,171,166,242,114,85,94,126,49,228,101,69,180,28,123,71,203,136,104,249,30,125,150,221,240,50,7,94,30,207,225,101,63,86,197,200,29,84,254,191,210,187,252,163,120,73,114,207,38,131,115,51,233,143,11,52,188,243,159,13,14,208,169,35,20,146,76,135,130,163,226,228,67,138,79,36,145,218,46,128,67,154,97,210,120,96,83,3,71,72,246,44,30,164,68,26,107,98,38,148,24,197,131, +129,201,166,100,38,92,64,8,70,168,25,248,78,100,201,196,61,224,14,197,237,221,139,108,136,33,19,51,1,4,149,136,139,55,237,0,244,217,172,136,76,117,206,150,98,235,98,81,73,73,183,112,253,84,237,145,232,15,105,103,146,16,68,99,240,225,212,250,193,132,112,120,7,33,158,252,210,14,27,147,56,147,132,15,197,76,217,129,59,192,187,76,15,120,64,154,132,120,149,242,216,253,108,190,13,29,198,41,193,120,236,190,55,207,160,66,112,78,78,60,163,93,221,240,128,111,227,63,10,239,78,69,120,20,95,18,193,38,30,107,237,208,38,199,163,172,19,4,213,205,93,143,241,136,203,164,130,67,2,209,220,189,170,10,79,78,181,62,38,79,119,238,110,133,240,164,126,69,235,77,188,193,219,101,237,110,207,143,126,109,90,167,56,203,157,220,237,241,22,228,6,71,98,190,104,237,126,57,158,168,218,208,48,39,53,186,29,90,99,241,164,197,6,91,60,245,165,221,137,49,158,188,214,155,115,164,246,233,29,247,219,226,73,73,223,19,242,211,111,75,116,152,67,67,21,183, +99,68,175,123,9,231,161,42,188,106,194,183,253,143,216,177,196,215,204,204,208,113,220,205,111,87,171,224,118,149,121,31,140,6,239,17,227,61,56,188,229,99,207,123,72,116,15,213,2,125,24,148,166,157,134,174,219,113,223,218,228,174,148,36,253,78,51,35,80,73,2,5,209,118,161,168,207,227,18,74,73,133,217,0,56,252,111,69,133,81,75,7,245,160,164,16,81,136,4,91,199,8,31,1,74,254,96,125,98,133,129,82,155,1,20,23,74,28,43,164,28,163,220,8,96,140,10,105,137,107,97,130,195,205,98,204,200,131,228,163,210,12,149,3,33,73,10,83,41,24,23,235,73,69,82,45,14,46,3,127,108,174,214,139,238,65,9,225,34,100,227,87,94,91,144,51,164,200,19,98,15,110,160,133,142,59,196,144,34,206,127,106,25,196,173,125,234,67,100,7,213,183,162,245,73,9,81,102,56,20,52,173,77,178,58,241,22,93,17,9,175,112,140,79,60,197,41,1,125,72,234,120,135,148,130,22,216,58,14,105,25,47,127,76,196,154,197,30,3,124,136,171,120,135,36,194, +205,45,190,20,214,156,74,180,60,198,239,220,226,202,129,176,166,68,75,107,234,228,94,20,79,110,107,38,162,95,218,18,141,69,49,43,231,88,11,242,165,113,149,152,235,138,95,26,171,46,170,214,217,147,26,45,175,152,196,88,155,98,93,221,18,79,101,138,125,75,216,26,215,234,140,169,189,58,83,108,82,172,49,169,41,99,78,88,112,69,172,67,114,192,21,110,191,202,200,115,74,244,57,226,2,58,91,74,192,21,17,55,222,212,235,61,216,219,183,71,201,224,149,83,94,162,55,229,245,185,136,41,142,151,146,246,146,208,94,110,61,237,37,165,241,91,91,208,241,161,126,206,5,96,201,173,170,38,126,155,156,31,252,64,109,129,112,17,74,130,97,133,87,172,26,60,164,112,227,0,20,130,180,212,176,17,82,148,130,5,140,200,66,141,168,133,254,21,8,121,49,225,245,121,86,34,205,0,108,76,20,83,136,188,0,30,41,141,112,140,224,84,147,104,133,80,140,209,8,132,148,135,180,202,101,48,14,207,196,32,37,159,52,135,49,225,222,22,137,133,99,190,65,196,147,83, +234,195,130,9,144,254,39,33,59,101,59,12,238,183,128,191,139,66,216,142,62,250,59,157,255,66,105,110,48,178,234,179,111,219,252,40,124,237,45,138,225,173,201,70,134,75,65,211,222,32,53,147,160,139,112,169,72,188,252,45,70,209,234,171,102,155,162,140,191,65,197,212,173,190,137,113,41,203,60,255,107,43,41,34,41,46,196,45,18,193,109,245,95,8,103,78,180,250,61,34,239,139,254,202,125,119,166,244,43,43,166,241,181,236,219,57,206,31,185,111,101,66,113,116,125,249,68,227,44,168,87,70,244,121,174,237,255,98,156,209,172,88,111,71,106,116,125,60,218,226,108,106,245,150,37,38,149,238,247,41,78,83,94,170,55,162,246,233,159,126,83,226,108,40,179,191,102,180,5,215,199,66,66,206,150,240,53,34,250,219,86,164,96,254,157,59,76,251,177,219,22,226,189,244,248,237,71,67,225,83,61,40,157,18,234,157,71,217,223,37,244,187,128,126,231,242,232,183,136,246,150,71,72,111,41,233,237,76,177,222,109,168,62,96,241,81,104,31,99,150,24,22,195,204,8,134, +137,168,5,76,27,38,78,9,13,199,133,1,225,194,12,234,11,109,112,99,66,137,4,140,22,220,167,156,136,200,32,82,23,225,35,239,193,132,4,235,64,97,98,156,164,175,72,17,180,8,208,227,246,223,1,19,198,36,213,10,69,106,138,13,18,161,57,83,144,158,93,142,26,135,56,38,70,26,11,215,242,113,167,11,11,15,213,2,93,165,11,224,35,40,12,66,32,220,221,129,200,187,120,155,32,93,131,220,165,215,144,247,222,217,157,184,81,174,125,232,57,30,235,196,220,55,180,69,56,20,207,44,211,222,202,13,25,72,138,63,252,206,237,168,96,231,58,203,223,43,206,185,47,202,164,153,40,213,145,154,107,146,230,153,22,147,252,141,140,224,166,248,99,220,132,164,139,180,208,175,53,146,103,24,231,111,14,82,130,147,124,95,226,18,207,211,176,125,223,121,9,94,215,135,155,71,227,212,202,42,59,215,200,182,198,50,177,172,12,43,135,249,14,99,115,213,217,133,230,95,98,101,148,86,63,100,55,215,38,108,244,194,144,189,223,209,92,46,72,145,219,236,101,245,150,172, +140,193,38,167,210,137,232,183,124,24,26,236,124,92,147,43,199,228,14,210,137,172,93,234,183,72,253,27,155,116,194,36,151,142,235,132,225,240,239,152,228,14,137,207,65,32,127,206,67,226,124,156,39,28,199,132,195,154,208,87,109,9,255,156,242,214,149,228,111,109,226,21,44,81,30,132,204,110,194,238,12,9,81,242,219,149,18,188,61,217,155,64,131,212,225,114,178,73,3,4,196,17,4,39,148,81,11,192,1,54,39,0,34,247,140,48,176,52,192,13,246,229,66,116,62,4,133,6,21,200,16,88,8,60,164,137,49,164,13,37,122,2,72,92,19,149,70,113,81,199,32,63,182,8,160,35,72,40,198,24,131,82,200,116,26,54,0,28,72,193,62,194,26,160,208,163,1,162,146,137,66,133,187,74,64,138,21,7,123,128,199,131,71,19,136,192,198,168,20,122,128,51,36,228,165,250,79,85,67,51,248,248,9,45,5,155,148,162,153,134,58,60,161,227,38,19,209,52,143,232,170,167,134,30,17,54,9,73,243,80,198,48,2,87,199,38,27,210,113,143,189,73,51,164,158,50, +54,73,25,247,80,70,43,2,91,197,38,29,16,113,143,200,24,55,148,236,33,54,113,17,215,186,192,32,22,161,151,219,40,38,152,80,247,101,136,239,224,24,27,242,133,25,125,114,235,66,120,141,49,19,81,47,108,232,134,54,148,29,99,140,9,241,194,186,64,114,210,161,155,197,40,203,106,181,38,140,38,195,11,169,41,198,162,84,91,118,160,82,233,80,81,2,49,214,148,90,51,26,163,193,134,30,16,99,85,168,74,155,144,22,108,232,252,117,235,53,188,27,92,155,195,212,51,124,69,84,135,241,7,205,29,66,138,47,94,79,162,219,248,42,151,69,85,227,209,209,218,249,95,180,97,6,245,207,161,50,255,244,223,197,47,195,162,222,38,249,99,225,75,95,10,204,77,24,189,126,229,54,23,63,12,176,190,19,216,127,25,41,130,114,24,100,44,183,82,9,40,204,205,225,173,213,71,205,148,251,4,10,157,51,107,126,220,247,84,1,185,19,242,33,102,90,138,12,244,65,0,69,8,141,10,152,181,119,104,3,137,41,238,4,12,222,72,98,6,176,247,175,183,114,12,66, +127,0,142,132,37,57,254,225,95,8,108,199,96,207,31,242,139,51,225,184,127,27,41,136,84,12,28,124,121,231,200,151,16,55,192,135,201,41,155,223,193,185,247,62,63,66,216,150,224,67,147,224,54,173,39,255,240,168,164,89,216,35,171,94,10,202,57,133,165,86,31,68,12,144,101,220,51,106,2,100,71,1,21,247,132,86,112,237,78,16,5,223,131,134,233,206,21,51,29,208,115,245,240,79,252,131,156,13,46,32,95,56,50,242,174,144,118,106,40,40,70,228,177,161,11,253,107,16,138,5,211,152,176,204,184,87,26,80,160,233,208,47,5,97,140,66,53,181,41,53,93,97,194,70,209,30,11,90,168,129,213,70,36,70,140,11,129,33,101,33,3,49,254,131,213,111,61,121,65,29,80,60,36,20,223,180,130,234,136,209,214,144,117,242,219,163,232,54,162,186,58,32,241,104,72,109,83,17,185,254,19,130,77,215,222,122,16,18,196,132,71,112,161,55,145,132,8,248,232,219,5,126,163,65,14,129,105,240,111,202,42,17,216,122,66,96,120,62,177,128,162,137,216,40,16,133, +34,75,181,69,145,202,10,137,133,88,226,3,25,128,6,1,209,197,191,65,130,214,224,61,224,32,127,79,90,159,114,109,106,151,241,139,0,251,91,27,32,97,35,151,18,212,1,30,67,242,8,83,139,89,237,130,51,72,14,102,43,145,118,165,72,28,226,42,250,149,6,8,96,16,240,246,49,183,123,194,227,17,110,109,128,237,246,252,124,120,188,155,106,172,179,237,35,28,222,135,206,240,166,80,182,27,135,231,113,220,148,50,225,206,113,95,13,48,71,142,119,2,214,58,160,182,140,230,227,202,120,87,179,40,222,113,55,225,110,31,83,197,59,9,226,145,15,27,5,247,177,117,71,223,233,172,0,22,91,152,30,61,206,59,30,21,80,172,91,196,226,241,210,248,253,185,228,218,182,187,239,181,143,149,198,159,10,41,254,53,247,212,62,78,217,127,205,61,215,182,253,248,95,115,79,139,63,145,72,175,173,91,78,250,225,185,81,252,217,136,193,150,219,105,112,15,181,196,239,40,198,13,198,77,10,235,122,20,33,254,72,192,192,54,111,48,199,7,216,251,240,231,114,185,159,189, +37,116,124,104,121,254,82,108,157,203,111,59,127,87,3,195,246,96,252,190,246,159,159,162,130,191,107,225,247,91,217,235,84,55,107,252,115,187,198,109,13,132,237,196,128,223,190,5,131,247,233,43,249,190,82,223,225,47,229,91,32,121,228,162,207,139,0,183,121,123,193,118,1,28,120,35,7,165,212,39,39,129,221,7,165,119,88,161,160,235,68,135,137,64,224,79,15,234,7,114,249,38,54,18,132,82,34,33,33,20,12,165,59,129,151,52,120,5,24,246,75,159,201,113,2,22,26,220,5,240,80,59,123,191,139,219,209,165,33,86,29,132,98,134,153,160,63,77,152,171,135,78,65,240,0,106,55,8,174,168,216,188,16,180,114,6,112,160,122,16,112,116,99,124,72,58,246,90,137,8,247,174,98,176,130,220,219,43,125,204,57,24,173,36,252,85,140,142,112,163,86,23,231,115,190,90,176,57,110,244,222,233,212,232,87,102,12,201,13,213,127,185,48,89,215,202,227,156,12,179,95,40,167,5,191,178,58,71,153,73,246,215,69,57,125,190,225,28,15,240,191,78,174,196,190,50, +226,220,195,196,231,198,5,233,250,27,180,198,164,119,250,117,58,189,244,149,3,214,24,225,122,39,182,139,55,94,157,221,172,198,120,108,103,111,157,58,249,202,130,106,176,135,125,59,219,137,139,142,87,60,82,99,62,172,140,153,174,31,248,138,6,210,54,122,93,58,199,57,90,220,86,42,126,67,59,201,210,167,46,216,109,229,123,227,57,138,193,248,207,9,171,127,173,220,58,71,233,156,202,228,119,37,91,115,84,101,175,82,184,179,43,5,191,151,195,79,79,116,241,116,70,189,254,168,215,110,137,122,109,73,175,175,145,244,154,147,94,79,114,244,60,82,239,61,232,125,244,68,158,5,146,102,174,31,117,10,112,251,220,203,222,16,254,167,63,39,80,216,140,13,23,41,98,37,116,156,248,176,159,60,100,218,38,76,208,225,84,34,4,135,144,65,120,254,3,127,100,166,224,242,3,56,240,87,128,131,162,153,244,93,40,94,57,86,34,236,210,208,47,8,38,97,146,140,115,180,37,250,215,13,132,180,252,63,0,109,143,207,2,76,38,46,208,149,128,78,76,236,53,104,10,250, +221,0,255,158,48,198,124,39,209,165,43,31,173,63,121,56,233,143,253,222,250,82,107,116,59,244,15,72,71,87,78,127,125,142,196,120,199,253,189,1,172,209,159,204,20,146,247,147,135,58,38,91,58,121,32,238,73,55,199,254,170,89,144,60,239,178,57,201,213,235,148,211,169,7,197,185,87,3,66,221,93,147,216,79,72,154,183,134,197,215,235,16,250,73,1,192,90,235,222,185,190,175,121,233,39,2,171,229,92,142,207,172,58,111,156,61,33,80,173,85,223,49,97,213,116,242,19,6,213,107,45,134,14,86,29,135,141,158,32,164,214,186,155,169,178,106,54,248,9,215,3,181,70,221,234,172,94,163,221,78,46,126,75,205,159,48,254,106,223,95,39,13,9,223,18,14,38,243,125,221,245,123,194,211,121,94,217,200,95,50,119,102,219,26,139,125,250,130,63,201,201,240,203,20,125,217,19,209,215,87,244,245,201,199,203,152,244,57,146,62,187,37,233,115,37,125,190,70,200,103,14,249,60,161,209,235,8,125,246,152,79,221,211,120,159,247,78,19,65,120,65,128,215,39,126,171, +65,137,255,95,61,200,24,173,153,60,69,24,15,228,255,241,30,157,140,249,240,30,177,22,253,240,30,148,2,5,161,19,47,231,167,52,75,143,209,11,192,113,138,153,86,138,19,240,130,235,226,58,150,86,11,49,89,76,17,145,56,128,194,133,4,170,249,31,136,3,118,38,60,10,73,35,5,28,35,60,252,26,231,17,56,14,16,243,141,73,140,123,13,201,191,176,238,252,197,153,143,112,97,86,78,214,187,241,25,126,174,143,238,51,57,250,241,151,115,156,236,235,191,76,154,236,120,109,166,184,160,78,38,166,136,31,127,28,83,55,235,175,179,44,93,44,207,117,89,14,178,117,38,165,43,129,226,92,171,17,190,46,96,125,220,18,205,181,168,245,240,117,38,132,62,158,0,176,250,122,124,2,185,188,227,49,129,85,95,114,251,39,22,147,39,31,43,16,168,250,106,104,103,237,89,186,232,24,67,170,27,23,159,27,38,14,30,29,67,64,245,117,183,50,152,177,108,183,177,141,111,174,203,38,149,25,139,166,253,26,179,240,117,245,32,70,255,99,126,255,142,69,63,244,186,112, +52,158,178,174,46,246,216,14,103,201,226,189,241,140,185,182,165,23,142,65,250,96,26,107,236,166,49,198,52,182,20,26,99,74,97,44,41,140,151,144,194,216,75,26,243,236,164,113,134,52,62,146,26,99,90,111,60,234,141,207,134,112,26,19,78,175,37,8,102,135,96,122,251,206,145,71,131,184,95,84,29,72,245,127,117,131,28,40,88,163,5,169,144,31,0,71,250,148,62,146,24,140,5,161,80,74,173,137,132,10,144,37,80,23,141,240,49,199,48,190,84,158,116,131,62,246,21,9,90,2,167,46,102,80,81,118,131,33,43,139,25,170,91,73,76,48,147,255,71,35,2,186,79,30,188,49,248,101,90,48,130,225,224,231,129,200,132,66,218,193,155,233,2,229,223,254,110,136,174,207,57,145,175,167,96,247,234,102,239,139,95,107,215,31,167,11,199,172,125,171,136,222,53,213,248,187,104,136,111,33,52,112,64,24,252,13,204,115,251,214,138,92,125,106,177,43,22,88,156,111,41,201,113,69,149,155,148,230,235,205,101,132,198,116,128,132,45,124,51,17,161,246,23,206,210,111, +68,150,239,79,62,38,0,207,241,77,128,122,182,231,226,51,243,175,213,148,223,24,168,246,84,154,62,51,167,203,232,141,211,32,181,103,66,7,243,207,149,129,223,40,160,246,31,79,232,248,155,30,111,183,59,143,223,214,40,170,127,150,191,159,175,155,12,223,22,136,36,255,26,211,253,218,111,42,122,91,43,99,140,167,83,24,251,230,131,175,249,10,209,228,239,175,46,31,28,180,166,219,152,185,240,14,176,175,49,246,101,191,81,95,59,234,171,223,160,190,22,212,215,16,170,123,253,65,95,93,232,139,188,134,190,238,204,215,62,193,124,45,153,175,17,83,250,186,34,95,91,228,107,213,67,190,158,196,231,156,30,188,117,16,211,55,7,33,21,60,95,193,253,99,168,246,118,208,113,116,8,28,71,3,40,162,66,14,138,4,168,137,60,137,136,135,139,46,80,33,82,88,52,37,255,173,227,249,22,123,2,184,38,41,141,74,115,227,204,127,19,83,86,177,40,9,78,7,168,132,200,199,167,66,149,94,83,30,166,212,245,21,86,110,23,139,189,25,73,130,136,13,11,39,26,108, +127,52,25,60,48,136,132,189,170,93,158,16,132,68,50,245,214,185,116,14,180,34,230,239,214,182,224,8,234,184,140,99,9,213,218,20,33,213,160,13,113,164,53,185,219,60,99,89,147,185,67,199,66,182,21,88,148,149,87,206,49,27,229,193,224,19,109,121,170,57,162,37,92,107,81,161,45,111,193,155,116,232,95,43,45,72,186,220,179,28,145,92,162,181,128,72,151,95,20,140,45,23,89,218,10,247,6,182,188,50,166,226,75,162,53,239,198,150,79,16,136,45,19,88,218,242,13,202,161,60,246,218,18,57,241,178,92,226,28,202,55,51,207,86,137,233,10,5,153,230,88,86,235,108,197,83,74,151,47,166,108,229,72,17,103,139,132,117,21,116,30,99,253,224,170,77,254,198,178,221,209,12,203,38,25,19,10,29,92,241,96,137,169,88,146,242,193,94,152,205,73,179,20,169,49,219,147,102,37,210,108,57,32,205,36,189,217,211,222,155,181,122,179,101,175,49,203,136,102,54,209,108,40,8,151,83,225,50,198,13,41,99,32,229,53,130,164,234,16,138,111,95,224,254,108,0, +199,197,25,207,190,255,123,44,218,79,116,142,44,5,17,135,96,80,36,136,77,116,11,68,114,176,63,100,66,229,176,218,160,6,92,72,202,169,20,210,238,6,197,82,78,233,83,179,61,65,208,98,28,71,90,65,115,164,85,42,12,22,177,233,0,19,20,192,6,8,135,87,122,131,177,190,118,105,4,78,6,38,69,82,120,136,168,108,112,33,47,113,208,70,201,244,236,40,159,76,108,28,87,193,150,116,14,116,91,140,43,98,75,118,4,131,58,197,149,178,37,74,29,220,225,7,27,130,230,182,109,80,93,12,71,230,77,34,218,182,146,24,219,192,149,115,205,162,121,13,27,121,162,29,78,35,217,16,223,76,84,232,134,76,20,230,218,196,242,44,56,74,44,51,36,89,174,148,26,148,103,38,33,50,245,33,136,226,234,196,87,105,200,29,55,228,75,92,180,70,96,101,38,186,113,168,33,30,226,106,229,86,156,18,165,113,28,210,189,38,87,61,183,42,146,56,228,227,16,206,115,181,99,14,125,137,60,183,13,217,59,157,235,55,165,47,146,165,26,235,112,135,115,165,23,97, +253,15,49,21,141,167,191,7,195,144,105,23,100,50,93,107,44,215,157,220,102,89,178,9,142,220,17,124,78,60,209,18,77,197,167,146,97,85,50,124,51,194,195,73,120,168,120,135,135,177,240,16,17,110,12,239,225,161,59,60,148,53,194,67,78,120,56,183,64,134,126,120,130,1,79,36,24,136,132,31,71,12,250,57,194,183,55,240,178,221,129,235,154,144,152,172,170,155,247,191,2,14,52,64,65,34,74,26,20,69,130,139,162,21,255,29,9,48,81,36,17,145,91,164,34,251,175,46,164,221,71,142,65,43,41,214,85,0,40,206,16,147,87,3,17,133,61,24,189,139,15,116,229,93,40,220,47,103,157,41,95,194,99,143,157,52,194,47,168,130,177,15,150,193,73,4,19,20,238,8,2,136,203,34,202,55,128,16,72,204,165,43,190,127,236,19,146,226,156,175,164,43,160,145,237,211,199,16,247,84,184,2,230,237,211,130,205,115,162,245,213,26,50,101,239,147,157,198,63,137,190,102,218,87,10,125,110,95,148,253,69,66,45,244,254,199,62,201,79,89,54,138,210,117,178,62, +246,73,140,103,35,37,136,174,17,229,28,74,241,59,54,234,227,158,72,53,234,68,120,98,35,189,112,126,223,1,170,201,20,167,253,12,197,235,186,249,53,158,92,98,159,33,117,95,252,190,5,95,147,202,236,253,25,10,247,219,247,210,103,53,133,172,242,135,252,209,178,251,52,120,77,37,250,170,96,73,169,24,114,36,31,68,200,166,254,150,249,109,250,163,214,156,201,52,86,32,27,227,200,251,24,7,89,151,68,180,164,254,114,140,220,46,145,219,76,205,104,122,50,47,51,230,242,227,47,47,11,228,197,126,64,94,46,200,203,38,129,188,188,137,151,51,81,122,153,19,47,3,226,101,117,36,94,98,192,182,104,7,182,125,96,171,0,225,250,103,2,170,227,149,207,95,79,211,118,77,64,53,39,159,68,124,42,183,105,210,8,138,73,72,9,105,27,193,70,222,254,246,124,37,137,145,181,185,106,102,95,237,30,14,231,163,192,170,158,21,191,212,26,184,198,86,249,157,68,134,75,36,86,103,171,232,109,254,202,111,43,221,76,143,50,78,116,117,250,27,5,212,24,48,16,132, +185,132,70,134,52,64,252,212,129,177,126,213,95,173,118,92,129,31,65,130,176,48,229,224,206,76,244,123,4,189,187,7,224,44,152,22,246,215,82,11,154,9,43,95,208,34,140,38,175,192,101,196,252,130,171,2,206,71,161,150,176,19,54,194,102,176,16,87,38,148,132,40,197,137,148,236,129,35,65,136,22,251,29,132,170,120,169,21,13,31,254,56,237,191,111,45,240,136,247,242,198,170,115,8,224,60,238,229,1,60,107,137,80,195,5,1,213,77,8,190,72,146,166,8,227,220,35,240,127,210,251,95,142,255,11,252,217,238,127,137,238,56,93,23,161,152,37,4,92,232,201,9,102,196,178,200,254,117,84,130,102,101,145,250,235,170,132,162,135,34,207,227,170,108,196,164,119,4,133,252,12,155,200,78,106,90,134,135,161,194,193,190,130,72,136,16,174,219,240,120,245,32,82,252,77,156,157,183,138,224,29,193,10,105,177,177,220,156,36,47,186,73,224,235,191,9,213,187,4,161,33,133,71,241,239,94,113,184,49,237,156,9,227,217,233,63,59,29,210,179,211,125,118,90,206,72, +39,207,199,69,11,178,45,56,33,22,70,12,68,134,112,33,223,139,255,109,0,231,193,201,252,122,112,136,30,46,146,127,130,17,198,119,8,98,13,70,180,222,160,176,62,208,211,4,214,189,84,160,183,127,247,236,150,119,143,242,238,73,26,239,30,164,211,243,118,150,61,94,167,167,235,244,162,184,241,134,189,191,192,236,46,79,156,203,151,16,252,185,60,66,241,23,22,52,166,225,245,52,108,240,88,16,130,11,225,61,244,222,31,75,244,43,124,31,132,14,102,26,151,203,181,134,73,167,32,198,90,199,1,244,10,194,150,95,242,37,42,96,7,209,128,250,246,216,83,8,180,65,30,109,209,29,7,105,227,229,132,201,26,7,13,97,13,40,2,37,125,16,17,166,60,81,215,35,25,17,33,231,183,22,10,254,134,4,118,160,61,68,176,91,1,114,208,193,13,49,144,253,46,33,128,66,62,64,138,9,194,5,210,156,187,105,101,31,223,205,241,107,230,30,211,182,239,130,198,7,20,232,191,60,72,205,71,97,142,247,7,216,119,71,97,162,63,27,130,168,234,171,48,114,34,80, +11,119,196,103,28,248,137,68,57,94,26,224,58,137,153,111,2,116,11,1,117,19,49,194,197,4,89,45,18,0,197,93,131,185,11,6,200,242,47,88,57,116,35,150,79,117,244,214,8,96,174,246,27,95,145,32,94,154,120,59,184,107,7,223,197,118,176,223,14,134,48,237,224,227,210,213,63,144,70,138,143,137,23,164,131,48,188,60,140,160,136,12,144,109,62,88,251,235,2,214,139,145,235,97,162,137,124,44,156,208,134,227,183,55,8,226,9,130,180,93,129,96,174,43,108,188,27,155,223,247,38,249,222,44,67,239,77,243,188,41,219,207,155,218,121,19,63,151,54,129,243,134,224,114,194,194,220,102,31,191,50,190,16,213,63,72,234,16,28,127,223,186,220,231,70,211,57,119,169,231,110,108,109,8,58,218,16,131,7,65,20,148,16,111,49,254,213,113,131,223,151,151,147,119,88,192,150,39,55,204,106,251,205,228,187,63,156,26,17,87,118,179,151,104,101,16,66,46,174,25,65,81,73,82,121,125,34,129,80,151,27,117,34,104,138,86,209,193,9,99,39,74,198,11,241,212, +95,19,17,134,39,73,107,109,72,143,216,85,119,131,196,64,219,38,120,6,206,250,12,240,165,34,92,65,180,53,197,69,194,2,124,105,227,52,129,53,244,221,136,121,25,155,202,151,8,123,186,193,214,69,181,1,238,138,83,252,102,154,126,236,192,211,60,210,65,126,135,13,200,130,225,248,185,47,127,94,13,45,138,138,178,115,227,228,242,114,42,214,161,6,125,225,165,65,93,99,72,53,100,131,56,223,15,150,109,130,54,131,179,185,10,11,159,227,183,141,178,59,36,131,165,46,126,183,20,219,55,96,126,95,218,188,167,237,172,125,31,25,188,158,105,181,141,118,48,194,75,19,108,115,247,53,249,24,150,99,18,94,178,242,247,202,87,153,143,182,41,32,146,37,170,123,215,214,248,95,56,123,12,188,236,5,160,119,101,254,197,249,35,172,160,191,207,215,73,224,127,63,163,157,213,214,225,22,60,150,85,223,41,213,241,223,97,134,103,186,250,178,36,173,2,203,18,145,94,222,65,37,95,204,177,46,229,151,141,195,29,222,146,249,146,14,195,189,193,184,123,151,251,246,201,208, +94,158,84,234,39,228,231,69,130,207,222,65,155,95,94,111,188,197,13,127,43,248,247,190,189,185,89,59,216,94,209,252,68,216,58,56,69,105,153,225,180,104,53,153,119,172,176,168,1,82,74,101,67,107,207,113,91,130,134,112,17,191,213,58,42,54,14,41,95,227,100,217,66,34,171,124,244,72,162,69,126,244,104,65,147,25,55,34,26,56,120,214,126,108,4,200,64,48,25,128,172,195,227,194,130,205,82,242,146,20,160,44,231,46,82,58,5,227,178,90,116,72,173,196,212,181,80,102,112,74,61,130,203,165,221,180,29,27,16,44,214,83,226,147,126,242,203,244,160,217,147,174,46,20,165,224,111,177,44,214,215,177,235,30,25,206,33,13,64,185,115,84,95,39,34,82,35,141,199,31,134,177,188,108,65,138,226,47,206,138,61,137,117,203,248,28,83,175,207,151,43,155,253,116,251,157,223,117,54,111,37,58,115,218,200,43,29,98,209,72,245,42,125,167,45,77,156,101,16,191,123,17,172,178,80,218,40,139,76,13,209,40,5,43,67,35,210,70,90,224,16,191,3,12,168,242, +39,180,145,255,190,112,215,6,228,85,105,60,222,243,64,103,182,119,148,111,79,157,195,87,113,48,12,63,163,185,119,252,123,50,176,42,24,249,17,187,153,122,123,191,132,105,101,22,254,58,10,86,45,217,171,225,240,234,56,237,74,243,184,158,171,29,199,122,163,241,21,176,101,11,58,123,71,85,81,169,143,144,88,253,6,95,60,131,246,174,79,222,16,144,116,29,132,190,251,124,127,101,21,233,70,208,82,95,8,113,212,49,175,92,251,249,170,84,64,35,252,175,5,138,230,8,129,50,103,93,187,26,164,197,244,71,119,132,186,209,152,77,3,39,200,36,59,129,28,55,177,16,121,19,241,27,157,65,214,192,144,222,185,134,132,6,241,66,194,117,159,17,116,149,59,38,206,19,183,39,202,32,115,67,74,76,151,178,144,102,128,54,253,42,225,152,159,184,103,26,104,148,229,19,247,105,182,63,146,15,75,72,236,157,73,127,249,85,144,223,72,73,15,41,163,228,234,66,57,17,53,125,123,84,8,179,176,86,98,207,147,128,51,81,161,126,115,66,66,164,220,126,45,200,13,224, +45,83,146,201,74,93,156,233,124,181,232,53,238,25,93,236,195,135,237,189,164,233,108,18,28,213,80,230,71,44,45,55,81,54,70,88,146,145,229,247,166,114,211,131,180,79,32,25,87,55,189,183,215,184,40,187,34,10,201,168,2,123,115,222,197,69,90,99,207,76,65,251,222,71,58,220,147,35,134,120,100,130,157,125,160,90,93,156,109,247,71,6,219,238,88,16,211,147,165,149,209,203,175,232,169,175,35,229,228,166,99,203,151,229,10,93,249,196,28,130,192,155,185,183,199,173,53,99,111,119,92,41,179,118,67,193,174,170,198,50,245,236,10,90,240,101,28,69,53,49,206,13,247,8,51,239,138,43,60,192,127,47,98,218,234,23,179,5,121,80,240,237,201,42,26,65,134,164,160,148,28,163,184,72,185,78,99,127,234,174,12,63,147,32,209,93,158,189,24,252,168,12,149,179,251,167,50,82,168,172,28,32,47,24,38,40,18,44,129,69,255,205,111,69,175,213,218,71,102,146,249,65,144,8,188,184,227,3,4,75,94,230,235,112,36,35,31,151,7,193,96,224,98,198,157,217, +123,16,88,65,158,57,139,56,247,210,40,74,192,109,117,163,22,176,152,59,198,165,163,131,13,24,59,121,9,42,3,215,23,242,224,140,24,35,194,15,212,151,48,138,78,53,193,185,241,62,142,168,34,47,227,98,220,22,101,21,129,67,241,48,113,55,221,128,12,197,238,74,105,115,222,113,45,35,101,184,90,32,56,141,94,180,61,118,154,64,80,246,156,35,138,254,42,77,236,153,91,11,101,167,130,209,34,196,104,98,46,180,80,14,99,31,140,54,133,38,206,238,47,13,101,151,64,209,20,213,111,154,174,211,23,31,103,240,138,50,253,166,229,108,142,189,176,195,62,127,84,104,216,86,170,76,107,151,253,76,75,24,211,158,167,199,246,30,36,152,211,202,35,231,24,254,162,109,204,215,182,217,184,204,160,75,207,214,206,191,114,42,4,101,212,171,222,50,198,179,166,156,237,80,69,209,71,243,22,182,104,138,181,28,70,60,90,23,111,97,236,191,71,218,250,18,146,217,157,11,91,112,103,3,159,83,112,101,11,192,249,224,219,249,9,188,58,232,109,27,68,182,27,146,86,174, +141,212,21,240,252,27,159,244,126,10,236,208,83,140,254,219,10,55,154,177,136,112,149,20,41,150,5,125,113,170,209,137,67,138,214,179,2,17,4,189,199,125,124,184,136,168,74,247,64,93,132,79,123,141,2,236,68,217,11,80,193,67,121,86,106,34,96,55,18,213,151,230,231,236,1,35,200,218,6,72,151,172,59,192,41,223,184,205,48,112,0,19,136,69,110,30,189,249,239,249,175,240,140,170,254,196,181,122,244,254,135,22,32,105,82,146,4,83,251,203,0,39,164,81,61,190,252,29,96,170,78,152,211,236,17,104,104,240,251,243,140,187,121,50,252,11,232,188,209,187,85,6,74,31,202,30,58,30,3,249,167,174,214,193,85,240,85,240,113,212,125,170,166,128,14,62,195,128,110,183,135,208,55,49,228,110,222,185,229,117,179,250,125,141,209,231,102,70,241,157,111,78,131,111,166,33,76,46,179,112,250,137,84,45,8,230,163,35,237,21,172,245,231,194,177,253,245,226,192,245,231,210,81,191,22,60,109,142,87,241,83,95,123,58,191,100,150,83,121,111,3,245,139,168,246,119, +132,179,115,252,198,51,175,94,24,109,71,56,175,206,145,55,154,248,133,82,218,4,138,127,251,183,167,228,220,115,146,123,222,115,137,39,39,247,220,159,159,210,193,249,41,57,63,33,62,245,197,143,47,37,42,250,188,230,71,29,183,85,152,160,81,69,5,166,5,37,34,73,243,159,165,168,34,168,198,143,172,124,151,127,217,210,90,2,108,255,35,144,133,47,60,6,68,87,146,13,223,1,254,103,188,187,62,230,63,8,24,18,149,71,0,193,196,214,162,31,55,163,47,0,88,40,148,172,190,22,109,76,199,70,148,96,83,156,44,192,91,183,44,7,21,125,183,110,96,81,152,168,46,147,98,11,115,75,49,237,252,75,136,235,177,107,204,12,174,92,96,147,149,38,177,205,69,86,37,196,67,155,138,24,153,245,189,83,54,18,121,158,129,189,92,182,31,187,13,217,86,22,103,52,24,178,181,242,127,75,69,185,129,255,177,139,136,221,165,165,214,64,10,42,21,136,205,214,93,142,109,128,14,58,75,129,188,191,69,161,253,207,160,123,94,230,251,215,47,215,223,182,207,13,153,203, +172,180,246,253,82,13,246,169,38,249,185,25,164,151,88,141,10,103,182,145,228,246,118,186,10,255,251,109,124,53,237,129,234,109,250,43,16,56,42,115,221,241,50,135,180,218,191,140,159,251,119,253,167,93,180,77,202,203,60,235,231,30,170,240,41,41,27,98,184,244,213,221,244,88,101,69,180,53,34,211,37,188,224,142,150,245,155,203,140,225,181,237,249,215,95,86,110,105,117,159,222,22,247,201,235,62,217,4,238,147,203,125,58,87,19,75,73,117,9,81,95,94,126,66,41,209,22,42,209,101,77,77,246,11,151,157,42,38,44,45,224,198,3,69,219,63,67,239,73,144,63,178,146,207,128,168,210,249,155,71,7,182,96,98,106,80,32,6,119,166,31,111,133,9,53,215,172,68,40,224,135,92,129,51,228,67,166,27,185,6,160,10,75,76,144,39,190,55,207,224,250,110,211,240,251,5,240,106,196,200,143,134,173,252,5,88,168,170,60,179,85,147,152,196,26,247,71,160,153,1,246,74,240,39,98,178,229,191,53,194,164,180,248,19,81,239,208,66,76,89,118,255,65,137,137,235, +159,239,184,83,29,199,86,97,61,181,96,83,11,253,172,148,73,144,187,33,154,101,141,31,211,129,0,255,100,186,71,73,190,214,34,148,171,129,153,208,241,213,55,232,239,154,212,251,53,19,251,191,186,26,69,246,174,222,119,43,213,12,175,167,46,165,143,104,149,42,107,254,65,201,191,152,217,106,108,58,67,182,162,60,185,38,124,56,230,211,141,231,92,135,191,104,192,207,246,204,240,243,12,67,127,238,202,25,227,231,201,204,252,116,72,63,140,97,240,232,170,63,147,21,1,133,248,19,139,28,69,133,169,55,87,94,147,127,26,123,254,76,151,59,194,21,95,183,76,201,187,80,181,155,135,106,206,173,153,52,91,63,157,230,143,160,249,179,92,183,126,12,173,159,28,189,245,227,119,107,4,174,186,70,240,81,148,45,55,248,242,255,108,104,63,129,245,227,173,18,54,85,212,96,170,134,162,186,147,180,56,248,130,216,197,73,41,219,167,120,82,241,210,32,17,125,173,38,192,207,10,92,252,111,117,84,100,15,173,65,23,162,186,22,171,13,9,153,65,112,128,48,124,76,177,32, +43,89,253,113,47,176,184,180,46,18,145,105,132,141,228,78,219,48,54,31,69,81,214,254,40,52,142,81,188,69,71,97,204,1,141,66,214,20,153,32,81,165,32,41,160,208,248,63,9,13,151,103,198,212,106,33,182,76,85,197,219,223,190,42,9,180,157,182,191,201,209,72,47,136,70,34,195,180,160,242,39,132,240,228,97,156,136,221,25,76,174,140,102,10,75,187,64,24,117,129,209,208,146,175,35,203,149,231,187,198,246,155,103,6,237,243,162,73,249,146,100,67,193,140,164,63,104,87,185,217,28,43,143,89,73,44,184,196,26,171,75,135,81,131,172,79,231,105,219,47,163,57,90,141,122,105,36,233,122,84,107,176,118,149,49,92,149,4,126,166,138,139,250,89,150,49,212,158,131,72,211,26,202,48,90,147,71,174,49,36,146,24,130,120,135,85,122,100,234,9,1,149,148,228,70,160,163,98,215,41,185,230,170,82,243,84,94,125,105,170,130,22,77,179,74,142,206,140,145,88,179,203,254,184,222,3,245,163,175,126,12,151,234,199,90,251,88,106,219,143,149,246,209,170,95,151, +241,194,21,64,191,28,199,193,7,156,168,201,81,188,136,210,128,67,49,19,236,129,31,6,241,170,46,250,95,221,60,199,138,237,127,251,45,239,194,96,21,61,49,50,145,226,58,119,7,93,152,66,44,237,13,10,22,18,163,143,64,8,193,164,254,147,20,169,182,4,64,161,230,142,232,4,56,54,178,100,86,212,5,78,210,182,29,4,158,123,22,193,254,200,130,52,130,6,214,5,112,35,8,49,116,27,41,13,137,149,73,230,25,161,180,234,209,104,1,190,62,5,88,173,77,186,80,100,118,18,203,116,80,79,169,69,198,232,87,128,161,221,147,138,1,22,69,185,134,39,55,238,174,59,223,222,49,236,142,231,8,103,92,105,222,134,107,82,227,219,161,171,6,15,214,56,146,201,29,158,56,149,193,220,121,248,37,190,36,101,57,92,235,112,125,174,52,82,125,245,61,83,93,238,146,26,24,218,59,166,195,51,211,209,8,249,81,79,237,137,232,104,8,213,174,161,246,224,3,244,123,98,103,168,83,95,97,250,29,185,115,196,11,175,12,181,67,26,61,25,145,171,75,241,72,15, +75,175,153,202,127,162,90,5,183,36,161,57,186,239,87,59,222,249,106,119,179,31,165,31,223,74,221,97,31,105,6,119,146,209,204,140,246,217,29,107,114,149,50,38,87,197,228,234,38,199,174,243,216,213,18,91,95,215,248,93,12,191,91,32,202,27,63,87,65,25,232,132,53,53,13,35,155,129,231,188,56,3,63,68,6,232,87,196,40,192,78,73,119,49,114,87,144,168,211,200,194,54,73,247,29,15,80,35,196,244,148,0,165,193,69,86,58,20,84,232,230,122,190,128,48,161,37,227,60,64,232,148,26,74,133,0,34,65,109,210,2,48,238,54,77,50,220,235,32,28,138,166,13,100,193,233,2,25,197,4,69,69,224,169,68,198,203,35,197,119,89,166,157,192,1,229,187,108,196,44,1,226,171,83,138,233,21,243,220,196,199,244,147,145,72,22,68,22,52,70,98,96,173,172,45,140,192,184,129,217,180,218,249,5,53,94,254,34,221,111,157,134,237,226,135,236,216,153,102,170,135,223,145,145,38,183,166,9,84,58,179,40,110,253,126,11,83,251,195,20,159,190,220,82,150,118, +209,234,0,91,71,186,204,45,69,41,151,167,92,53,174,32,219,21,212,214,16,29,158,0,21,137,117,182,52,5,169,12,85,2,229,145,36,211,183,197,7,184,242,72,188,202,244,185,169,77,113,72,36,75,183,158,202,123,158,80,249,174,84,174,41,155,196,86,197,240,121,234,179,105,14,185,159,175,129,250,167,181,163,173,156,201,170,128,39,211,100,139,178,73,117,10,182,28,178,133,219,244,167,240,53,82,62,255,160,202,231,68,249,28,25,106,207,177,225,217,106,223,20,18,239,1,68,123,228,194,177,233,80,163,164,162,131,113,119,133,127,173,166,239,38,243,191,253,169,90,49,149,172,145,215,239,66,7,233,187,47,172,144,84,202,232,135,122,68,211,62,138,249,161,30,42,29,232,191,186,169,62,86,72,162,60,197,140,60,16,33,43,191,193,23,128,131,98,136,255,251,119,116,26,47,94,4,216,186,143,98,195,152,98,166,169,104,5,212,94,115,181,12,90,182,245,5,8,20,51,19,162,217,12,90,92,169,68,210,122,163,0,93,157,132,48,229,80,36,228,187,96,84,82,177,93, +112,128,244,97,253,151,152,177,121,124,183,22,239,109,12,177,188,163,233,13,95,95,30,162,58,194,204,254,87,169,57,64,111,53,200,86,83,132,73,13,15,91,148,94,95,252,86,194,12,246,181,46,123,205,97,44,237,62,246,135,43,145,163,75,229,45,89,77,205,230,191,183,102,103,20,75,143,37,250,200,58,87,252,111,31,218,150,168,28,249,100,104,72,196,36,72,42,79,87,244,218,243,173,229,231,76,141,210,98,183,96,116,92,24,67,235,123,204,88,245,45,231,173,74,161,185,68,126,30,67,181,211,119,160,173,221,232,51,135,247,237,206,246,117,147,234,22,110,185,100,10,30,80,95,217,222,81,13,206,41,122,194,251,238,44,191,125,165,83,159,112,234,159,27,167,126,213,222,159,216,231,253,207,135,254,95,180,246,159,124,111,184,217,148,29,124,94,163,227,124,28,45,188,131,105,53,144,68,209,165,253,78,138,235,172,144,47,110,236,179,180,73,184,152,55,13,125,0,19,100,36,171,161,181,96,158,24,255,132,58,124,194,98,176,66,16,35,65,37,42,3,96,48,138,225,33, +5,112,77,83,26,197,253,168,194,247,34,128,214,154,73,105,174,138,9,108,227,4,11,240,108,7,17,42,40,230,87,8,154,229,185,65,24,85,244,249,70,136,62,12,208,181,113,144,80,154,39,66,10,66,225,87,228,1,3,249,3,136,166,231,13,154,135,157,190,78,72,111,48,66,140,176,236,82,110,252,166,218,131,72,120,171,166,192,204,187,35,154,94,123,193,164,218,137,16,185,118,160,211,149,245,144,231,135,41,65,91,134,229,30,92,157,166,192,186,42,99,130,46,143,135,132,206,194,231,99,73,68,220,131,42,177,20,152,72,154,235,229,75,204,13,117,116,243,194,124,57,81,213,218,186,12,244,7,39,102,210,90,133,230,231,30,77,161,217,20,127,46,43,117,220,179,167,241,191,48,4,14,15,22,203,134,32,147,106,207,103,217,84,11,78,216,82,217,60,80,87,206,25,186,202,133,105,78,161,166,236,222,243,120,55,21,120,251,242,83,113,142,52,160,199,159,230,49,209,60,186,35,205,99,172,123,100,248,191,23,137,109,3,162,101,30,231,127,35,58,238,10,127,220,245,208, +136,85,198,207,195,189,138,56,180,45,39,70,40,210,210,15,76,181,104,113,28,221,0,254,65,77,63,88,225,3,245,220,29,68,48,118,227,226,28,196,32,36,22,47,252,225,135,223,195,142,102,0,22,217,103,255,150,237,127,203,188,130,90,127,0,188,24,101,2,80,17,246,126,13,51,75,16,40,143,156,156,135,175,56,98,30,242,99,52,64,209,80,33,97,56,10,160,165,126,144,167,70,64,61,174,11,17,241,178,123,4,246,141,145,11,73,153,24,175,135,150,220,15,177,79,31,112,58,175,3,229,28,94,251,22,167,3,209,180,31,60,180,195,191,200,24,10,199,154,152,214,17,238,246,158,242,11,159,206,129,89,23,179,63,51,86,32,31,118,41,73,32,220,13,34,250,23,54,78,184,237,36,19,254,195,168,240,15,19,118,194,215,126,221,186,130,218,103,95,135,183,222,79,134,247,214,149,95,245,53,230,180,245,110,212,113,239,236,6,222,149,145,125,236,79,147,23,203,242,142,176,228,239,69,220,127,24,10,78,206,221,153,123,117,227,89,143,229,253,37,247,190,171,45,190,127, +150,235,216,91,35,195,239,110,178,188,78,44,246,199,180,241,162,218,109,111,137,237,173,179,53,222,52,219,91,37,123,123,28,169,23,129,254,64,156,202,155,206,71,158,117,11,33,34,5,198,146,191,91,69,225,15,41,33,11,2,190,184,112,170,197,247,197,60,85,147,26,9,240,39,228,255,22,70,220,225,53,96,20,35,187,4,216,46,128,139,236,219,1,41,136,140,234,65,55,194,70,129,203,113,2,20,212,104,200,13,224,23,36,110,228,248,25,184,22,114,150,194,2,62,246,46,159,205,10,146,83,128,142,26,59,173,1,94,90,5,152,123,128,10,236,114,17,175,96,147,202,175,0,245,223,171,236,48,12,13,116,83,222,45,11,27,27,58,211,57,60,36,239,106,125,57,218,159,32,55,233,14,135,22,101,247,184,142,198,168,238,131,1,77,52,173,97,132,167,134,43,82,90,39,33,186,174,198,216,112,204,65,53,177,36,142,124,119,41,69,86,69,10,103,131,25,70,189,46,83,110,53,40,83,56,219,65,120,229,110,10,221,231,10,143,67,223,140,110,45,151,175,122,214,87,105, +247,65,242,200,117,238,91,217,230,124,226,94,209,44,231,34,233,110,233,197,189,251,33,255,235,111,151,227,186,98,167,102,58,124,95,249,188,231,220,157,239,30,228,90,230,209,108,245,187,171,46,93,26,139,189,57,106,172,196,182,241,185,205,118,15,50,188,134,125,252,178,15,95,198,247,208,103,27,250,204,195,213,231,242,26,103,159,185,2,247,14,160,241,4,206,135,101,136,153,177,197,164,61,192,83,38,114,188,242,229,206,37,129,203,44,30,199,70,72,67,123,72,246,11,233,61,181,17,116,81,140,90,0,151,186,15,236,252,0,226,101,192,164,195,226,248,63,58,192,7,117,163,226,250,199,203,101,17,102,134,13,194,49,154,224,38,140,17,97,145,139,165,84,27,24,146,151,80,130,90,252,31,164,142,195,147,227,106,16,90,9,81,215,97,2,10,132,229,23,107,142,61,178,240,52,130,126,35,41,52,115,253,83,79,45,117,62,110,59,165,106,17,139,155,197,221,37,52,56,173,221,216,161,226,47,32,73,61,196,166,54,185,147,227,106,124,97,78,215,196,22,76,228,4,138,197, +179,16,151,216,61,191,39,178,23,115,137,191,112,81,21,110,148,211,66,153,172,22,78,183,123,156,61,227,191,44,18,253,194,184,208,184,135,73,252,151,121,184,110,213,65,19,123,103,192,90,238,199,119,94,221,195,159,216,27,164,229,174,54,236,184,205,6,110,125,204,192,47,246,247,19,43,235,189,151,249,207,69,110,231,51,79,4,53,243,153,191,172,187,237,11,94,99,127,162,219,238,97,182,23,61,206,180,109,99,67,99,106,97,232,234,123,250,98,193,74,157,172,178,187,197,46,187,67,92,119,157,171,113,151,185,238,42,215,221,227,40,157,8,242,5,2,40,231,253,255,230,69,200,114,74,226,44,181,168,120,196,225,82,97,132,106,160,248,126,66,242,1,20,212,201,114,215,26,145,50,150,81,168,1,34,150,87,161,11,193,146,195,127,93,33,172,76,149,128,10,164,99,226,223,122,6,162,119,138,253,183,160,1,91,47,0,255,91,207,240,13,152,152,38,192,155,87,194,140,186,60,96,243,163,36,224,164,48,240,96,245,92,6,9,164,8,77,156,226,76,44,19,201,196,98,136, +81,40,144,155,92,112,72,71,248,56,118,118,5,85,78,93,100,92,170,131,150,239,145,157,100,182,104,131,227,74,144,205,170,19,101,22,13,212,158,30,86,233,200,180,152,84,223,240,187,123,126,154,171,176,24,230,137,180,211,82,234,34,146,60,214,97,34,111,154,88,219,234,56,77,99,17,143,163,104,147,213,155,68,199,113,22,235,48,110,43,191,44,144,108,218,47,33,148,38,241,195,151,121,189,227,178,248,49,121,131,79,153,154,39,237,186,197,192,89,178,24,167,244,190,225,30,171,116,251,8,253,138,94,164,60,214,17,191,246,178,156,181,44,119,37,157,94,206,199,116,219,62,172,33,187,198,137,166,105,104,212,215,205,140,52,107,79,25,127,94,198,140,125,98,60,217,143,17,165,177,180,81,26,167,74,227,210,111,105,188,150,167,5,184,37,139,160,20,94,184,175,159,148,230,98,112,5,73,226,172,162,20,87,243,134,238,37,4,74,142,244,133,130,138,73,128,7,35,231,81,3,8,86,23,73,249,106,60,24,72,9,194,15,22,0,58,28,144,140,124,32,46,205,128,193,23, +98,209,155,198,53,3,172,168,248,159,76,136,210,232,153,54,192,141,164,3,72,53,180,8,23,34,190,2,240,223,121,204,26,192,149,135,190,244,52,165,1,184,172,224,48,144,148,202,144,36,30,29,242,57,197,157,182,53,192,25,67,248,106,71,230,91,105,69,36,41,107,48,79,237,205,244,3,141,225,141,178,32,78,103,31,141,144,86,81,7,49,186,159,48,220,139,169,1,255,32,174,109,20,147,65,107,234,58,223,42,60,20,63,216,156,78,171,55,70,146,198,63,200,20,77,211,116,59,185,165,89,124,46,76,146,61,24,37,94,210,48,78,248,42,174,121,215,41,40,246,213,225,175,56,22,197,125,57,229,223,253,95,13,254,202,44,235,156,27,69,195,98,202,176,215,15,251,198,141,101,123,134,203,236,87,63,227,55,215,229,130,223,210,89,55,29,223,233,7,94,234,102,231,202,158,37,178,111,149,125,116,44,10,3,179,196,224,164,167,152,241,193,85,74,220,170,165,27,163,116,147,42,74,55,196,224,198,33,15,110,169,193,173,52,200,221,12,209,131,0,59,45,126,194,252,228, +102,237,9,240,80,77,75,247,239,43,97,16,189,22,160,64,81,37,57,32,238,18,160,219,65,44,36,68,70,140,98,96,3,17,144,191,153,200,0,100,61,68,194,226,192,208,240,13,124,136,239,183,151,254,184,89,82,8,177,8,192,161,165,74,23,9,26,75,137,102,144,100,97,20,190,168,252,63,192,78,223,202,172,62,42,27,165,36,202,101,80,180,144,56,41,154,217,20,48,138,197,35,75,218,84,36,114,235,85,129,66,178,11,160,143,201,156,64,88,126,90,6,241,172,223,40,178,12,167,147,126,161,156,200,108,210,130,232,174,69,13,127,91,70,215,78,10,122,115,169,250,54,118,179,25,183,182,184,215,151,181,204,45,65,38,231,169,84,147,217,185,200,98,3,3,124,89,197,148,216,102,113,156,147,95,12,227,203,68,175,173,249,151,243,218,20,240,197,85,245,186,171,115,244,89,206,38,107,215,138,94,123,178,236,208,253,140,50,222,176,93,222,254,45,25,180,57,213,164,82,182,164,102,60,148,236,88,35,223,134,158,132,215,40,93,113,74,246,115,70,229,30,151,117,227,253, +76,238,58,182,168,162,175,89,178,101,151,233,143,172,226,36,163,178,68,215,101,67,244,223,225,203,69,203,231,104,217,33,128,151,25,255,118,190,12,84,126,118,241,157,87,100,125,66,240,223,246,171,174,71,159,206,148,56,152,214,91,199,165,3,97,242,227,116,76,222,10,19,37,11,133,181,66,164,176,144,94,16,30,0,138,43,2,145,25,245,84,17,24,146,216,189,244,191,153,232,47,83,31,138,151,50,173,144,223,15,77,131,164,48,166,13,132,218,42,112,1,32,117,64,26,84,144,95,33,208,51,218,242,166,132,44,16,82,208,2,31,204,137,56,84,71,185,44,128,69,230,19,36,26,21,12,178,116,41,9,126,151,156,200,227,67,210,115,16,79,170,55,225,13,254,80,94,163,109,164,85,111,194,230,224,216,103,89,61,48,58,71,119,9,90,243,255,216,186,170,230,86,122,40,249,215,205,204,204,12,49,198,204,24,51,51,196,56,198,152,153,113,125,191,125,217,135,173,146,74,209,164,198,53,58,234,211,167,91,227,84,96,88,189,121,232,209,56,255,194,227,1,63,193,254,219, +53,216,70,222,78,166,12,194,164,55,231,42,78,248,165,74,145,167,33,202,235,92,228,124,159,9,212,54,108,122,154,187,0,99,97,151,143,238,139,68,103,190,195,255,88,127,7,153,83,147,58,110,87,135,243,212,142,78,144,95,139,148,71,47,225,242,153,101,66,14,53,39,76,39,98,227,97,104,191,223,129,157,215,28,205,19,158,39,59,54,249,154,125,165,216,211,137,121,116,152,174,12,118,38,227,181,64,102,121,214,105,129,85,38,122,91,101,57,54,197,127,98,83,186,92,74,119,226,165,118,39,212,79,92,231,111,117,238,21,20,126,242,29,243,248,39,216,8,241,64,95,203,162,228,80,225,95,178,129,233,166,196,17,98,25,6,30,4,13,70,68,192,199,128,46,194,242,9,48,42,244,112,36,88,56,246,213,3,175,34,192,15,4,173,220,24,142,11,112,26,161,13,244,107,177,116,0,134,243,165,147,160,67,32,6,124,226,10,158,113,74,96,121,30,116,161,238,68,208,34,6,76,205,163,141,36,241,144,244,131,130,13,33,196,75,31,22,149,83,120,134,57,34,177,0,45, +115,125,108,127,225,162,114,129,54,31,85,15,181,208,149,90,127,8,215,186,41,169,108,120,243,97,3,197,152,143,38,56,195,100,214,81,54,254,225,161,167,177,62,198,136,83,42,150,104,244,189,143,109,9,88,102,101,116,25,68,147,13,139,20,238,151,64,129,86,195,205,121,127,29,224,76,236,138,155,246,23,221,73,245,241,242,66,96,144,56,52,41,109,198,111,120,158,234,203,157,91,232,15,239,178,202,122,204,85,165,128,67,37,102,208,227,152,34,28,42,245,125,60,213,54,199,114,12,210,224,150,77,177,226,80,237,92,28,122,142,8,211,67,230,190,73,188,45,144,28,233,117,156,87,81,102,231,43,170,242,128,22,30,209,202,245,17,189,62,160,191,147,7,244,123,66,121,87,16,242,151,40,245,8,192,53,171,127,7,22,225,222,193,72,194,243,209,32,175,138,48,241,164,49,96,96,58,140,131,46,238,83,31,226,11,128,56,232,65,39,29,56,194,250,31,143,140,67,162,163,109,45,115,195,144,128,29,208,250,175,77,228,31,195,25,192,169,39,250,247,181,11,68,9,154,230, +255,196,172,1,104,89,142,178,235,255,85,52,255,151,131,135,73,129,104,160,120,60,141,11,15,91,100,20,105,11,6,168,91,133,160,143,222,131,99,84,113,23,238,94,45,154,124,126,23,194,213,95,16,245,206,57,82,11,168,205,62,108,31,247,13,149,255,61,246,5,176,206,209,223,19,174,23,94,159,152,107,12,8,230,211,197,226,245,193,195,138,229,22,221,124,180,46,12,33,84,90,189,160,226,86,223,2,79,252,29,196,160,213,75,243,179,176,14,101,109,15,223,181,91,109,39,245,192,59,59,131,37,225,204,29,180,199,151,197,124,255,160,59,95,197,56,237,221,195,248,237,145,63,33,167,159,75,111,99,230,232,69,58,120,128,141,179,87,151,229,159,227,186,20,99,120,205,237,219,241,185,237,28,113,177,62,31,61,140,239,149,16,250,69,111,162,176,20,203,77,250,71,229,113,91,114,93,136,119,215,229,236,186,212,26,203,11,179,113,241,91,182,86,255,108,240,206,71,253,114,17,164,244,161,3,76,178,111,172,91,164,28,44,25,244,143,6,0,241,138,180,168,99,225,32,33, +125,20,250,49,34,34,80,200,122,242,97,89,25,11,37,173,11,0,2,160,255,101,80,29,15,22,191,174,1,85,206,97,72,26,5,162,154,193,82,131,232,64,74,19,15,1,236,101,96,226,136,16,106,24,70,5,7,67,226,100,147,2,106,40,154,20,65,20,139,213,68,129,72,219,48,76,80,102,9,55,160,26,127,208,6,181,13,3,204,18,10,210,213,22,212,133,99,0,159,3,25,118,51,194,3,27,233,177,5,91,235,172,246,177,40,175,13,32,74,51,205,193,30,168,50,252,92,99,68,17,164,233,194,182,41,54,83,31,12,76,64,154,195,181,70,163,18,173,177,151,90,196,41,4,174,37,220,105,244,161,213,177,182,203,155,155,99,213,91,198,104,87,212,137,106,85,117,137,57,178,251,222,239,180,145,25,173,99,109,131,133,211,120,74,179,100,247,25,206,107,140,10,242,236,62,17,111,68,34,216,117,111,104,161,23,159,30,49,161,91,78,108,151,255,98,250,249,160,118,52,142,53,174,186,188,189,128,0,250,83,150,233,150,226,237,252,106,244,245,105,239,114,212,87,138,250, +170,235,176,47,31,246,21,194,185,151,26,253,12,82,239,124,16,134,246,143,7,70,168,176,180,46,115,197,4,24,104,190,67,22,105,152,32,152,244,197,32,26,18,98,169,101,115,130,73,69,52,209,111,24,180,7,37,207,72,255,12,146,5,154,147,77,100,25,64,104,61,40,170,213,144,14,132,3,131,40,0,186,125,43,112,31,110,21,127,168,181,12,150,163,85,32,94,28,64,165,49,178,192,2,93,194,128,72,168,22,171,107,226,143,192,250,62,102,55,15,232,53,46,168,141,31,41,232,12,104,27,175,224,59,26,198,40,61,132,190,185,31,216,218,95,41,182,1,4,25,252,15,156,164,1,173,206,53,192,103,11,80,213,252,80,228,240,249,134,112,44,200,146,187,78,51,52,161,46,9,141,123,19,18,203,18,235,114,42,82,168,98,226,87,53,4,127,152,19,71,178,78,255,22,4,3,75,147,181,220,152,162,93,174,244,27,151,43,48,17,19,108,232,128,119,138,111,101,210,179,63,66,249,170,49,225,84,234,35,30,10,247,219,196,139,120,30,8,190,91,147,217,245,202,177,157, +124,228,123,63,149,212,142,133,84,131,61,137,44,15,16,219,237,146,229,122,165,232,151,228,141,126,105,209,47,17,218,246,82,162,95,58,194,203,173,39,188,36,132,87,164,195,127,66,111,93,159,126,254,250,83,3,124,37,149,172,3,214,223,69,50,130,42,38,108,100,113,12,200,226,167,252,60,64,83,20,44,250,143,79,227,34,206,143,9,5,108,133,91,15,148,217,15,241,2,224,235,2,69,53,26,181,1,195,207,96,12,204,54,209,212,191,63,155,65,209,11,48,176,46,47,26,134,241,225,114,0,77,34,195,73,90,40,187,143,142,131,97,61,20,249,28,134,193,86,112,20,104,211,102,17,55,151,54,153,208,199,45,32,1,254,223,144,187,13,219,230,1,133,212,4,174,46,71,100,171,1,83,93,144,69,163,230,16,173,109,72,62,48,181,154,214,248,116,1,252,59,31,70,57,108,167,13,40,49,226,50,249,201,4,102,73,7,227,248,150,229,52,205,8,56,22,69,26,82,44,226,52,118,218,18,233,112,36,80,197,44,238,55,22,255,112,7,22,71,186,198,145,5,3,172,172, +73,154,154,194,157,3,87,242,141,35,51,17,191,113,236,115,232,244,237,234,105,225,85,77,244,20,194,49,193,84,66,60,146,199,72,87,252,217,30,234,55,250,93,140,235,212,225,67,173,114,116,53,145,214,184,22,178,134,19,31,101,160,67,137,98,215,161,58,223,26,244,67,77,120,72,222,132,135,150,240,16,17,108,15,13,225,33,199,60,220,122,204,67,130,121,68,24,244,171,87,189,3,211,121,90,225,199,5,139,112,8,172,17,18,255,226,1,240,171,27,210,19,2,245,135,133,18,240,128,102,27,21,50,17,48,120,80,223,206,5,66,207,160,6,121,19,173,251,7,185,12,36,151,38,81,199,192,102,129,170,100,241,15,130,241,17,88,241,52,214,18,200,0,16,181,8,134,33,42,144,32,147,232,56,160,136,16,1,9,83,1,131,212,88,116,162,35,228,9,192,121,149,48,185,115,132,157,3,122,91,221,132,180,7,17,190,186,29,254,33,84,93,219,3,97,232,122,114,3,106,130,255,6,93,83,151,25,33,221,248,49,51,54,21,11,155,107,66,42,51,189,30,218,176,194,16, +217,196,31,169,98,131,98,217,114,8,36,174,23,28,92,196,58,163,7,192,157,185,248,159,167,168,70,122,13,92,168,51,235,167,125,219,68,152,190,71,67,248,146,175,136,254,50,178,59,249,241,230,142,61,165,107,67,101,180,47,70,253,35,206,189,189,190,240,221,26,98,125,155,134,206,214,94,147,195,222,232,50,23,133,226,129,107,83,125,10,116,183,176,68,126,171,66,204,74,79,185,159,109,126,143,151,26,165,114,97,86,46,202,74,226,130,172,92,154,149,139,76,51,186,236,71,23,234,109,116,249,78,110,214,244,74,143,248,5,12,29,124,217,2,46,206,127,197,49,2,24,241,2,254,150,146,28,253,186,101,115,35,230,181,90,202,22,142,98,32,247,14,182,84,15,44,68,64,136,0,32,109,97,44,230,23,12,103,145,49,230,203,135,69,73,44,129,92,17,66,145,24,19,16,39,180,133,125,16,74,67,129,220,50,164,73,20,105,137,196,104,18,148,220,199,37,209,96,208,134,28,67,245,254,80,91,48,114,209,0,27,249,247,9,119,33,174,217,242,10,157,5,92,77,5,57, +86,11,166,170,141,136,71,97,74,3,130,253,99,228,33,114,11,145,165,13,237,199,121,45,203,40,69,42,200,165,73,146,102,229,88,224,138,128,195,136,178,140,113,120,78,72,42,1,234,44,142,9,134,232,224,197,118,68,30,52,17,214,144,183,131,184,243,228,78,240,190,178,148,120,100,207,127,218,174,252,188,141,157,208,245,135,34,243,230,20,99,189,53,132,96,186,8,229,172,98,101,35,175,29,44,39,98,197,33,112,162,186,190,209,237,18,204,185,154,252,216,43,226,166,121,150,199,31,39,46,23,235,80,225,187,180,152,182,186,8,215,127,253,252,149,51,98,179,58,63,29,77,150,52,211,129,106,58,120,109,166,131,206,116,160,75,154,7,182,228,128,150,28,60,204,200,228,140,201,35,25,229,205,193,193,95,192,85,65,192,0,130,65,94,111,6,49,114,33,230,3,212,102,15,251,79,159,138,211,100,226,230,156,15,14,153,27,19,175,147,206,162,77,96,13,252,183,62,230,195,112,28,16,121,20,104,162,68,31,112,50,182,97,224,95,97,178,43,64,31,237,127,238,153,68,32, +56,69,169,64,72,68,168,3,0,9,32,61,238,80,212,138,116,2,76,163,5,126,14,124,160,9,87,216,117,117,68,221,142,16,215,72,169,13,93,91,199,66,82,64,130,215,130,69,177,99,192,211,199,100,107,108,136,25,136,210,120,30,27,92,137,171,203,140,60,7,56,138,15,26,67,253,77,153,196,3,135,16,37,128,228,115,124,17,125,101,56,244,6,248,125,117,190,18,123,154,65,214,135,68,80,208,54,52,153,139,109,17,209,157,67,191,45,185,32,179,1,96,151,155,136,83,113,73,83,31,234,48,218,87,128,9,231,16,47,209,18,68,206,0,40,226,184,17,124,234,55,31,235,145,18,58,69,248,186,164,134,216,203,193,185,154,13,84,42,27,147,233,162,45,176,61,34,156,160,212,64,228,190,160,74,122,240,84,194,0,57,12,112,110,98,0,59,6,168,237,158,192,223,14,136,237,0,95,119,24,236,166,160,66,65,62,248,223,193,162,116,115,135,242,125,129,131,243,2,177,164,82,18,150,24,55,36,243,15,1,168,188,165,101,50,247,38,30,58,144,229,27,193,154,31,160, +207,0,16,10,88,128,251,143,63,5,82,87,65,4,231,216,21,99,85,128,84,251,192,51,64,8,56,160,38,17,156,18,14,144,63,240,36,73,78,114,16,104,3,38,26,225,82,7,8,122,90,130,249,46,141,13,111,11,40,228,109,3,184,26,228,200,13,141,89,180,26,48,57,13,110,24,11,130,85,4,32,78,22,114,31,13,104,141,60,3,84,129,7,171,160,36,219,20,149,6,109,67,1,32,45,100,193,165,55,106,192,224,51,200,176,184,46,196,238,10,128,244,249,209,55,246,48,133,122,27,248,0,55,47,197,31,230,105,72,155,19,152,103,128,8,93,177,41,82,47,98,3,218,83,67,10,84,80,91,174,2,86,206,2,82,198,17,16,171,55,1,122,202,241,141,105,149,224,171,246,39,126,116,112,51,201,14,100,70,128,203,180,193,101,216,14,9,174,85,205,195,244,106,200,31,29,252,103,198,4,216,17,192,98,243,108,204,158,141,212,211,220,120,61,27,188,103,179,148,107,55,108,237,198,184,211,110,254,126,129,179,201,24,88,87,55,211,231,86,226,234,97,30,6,68,68, +97,102,49,35,199,188,111,75,249,216,209,126,164,197,210,50,127,174,60,45,50,104,144,202,198,208,42,227,15,30,72,107,169,253,173,158,13,6,203,99,45,31,130,159,55,89,244,105,60,173,28,152,122,36,160,29,72,180,7,138,34,112,95,228,86,64,126,68,134,158,228,17,128,182,52,81,48,223,13,196,250,77,68,115,2,80,141,119,91,192,53,248,181,35,170,153,58,70,147,176,227,24,105,95,196,37,181,129,198,120,159,179,22,6,184,214,203,56,208,180,4,237,240,201,147,154,189,117,97,29,59,33,138,57,248,10,252,53,12,103,156,63,66,174,174,136,17,189,107,142,248,201,243,217,106,116,133,209,26,182,3,76,30,94,78,215,30,253,174,201,79,222,234,189,195,86,61,191,43,62,230,236,217,221,211,215,236,228,153,83,30,221,37,59,111,117,116,21,168,30,68,186,239,128,76,126,74,250,90,127,45,126,96,228,214,109,34,237,242,101,245,245,168,85,233,62,13,166,75,119,42,215,148,214,57,184,114,119,190,207,124,250,253,69,95,94,95,228,235,139,113,125,189,104,87,31, +245,234,235,146,175,62,218,205,71,109,223,124,140,219,75,123,28,61,59,183,117,119,252,234,222,161,229,227,203,193,103,109,224,184,80,158,111,81,13,70,5,80,216,195,42,5,119,135,60,142,235,88,212,179,176,48,47,208,1,5,13,54,96,244,75,98,17,7,99,54,136,188,149,13,254,29,159,212,200,174,127,167,84,123,20,6,245,69,70,74,65,59,145,34,180,96,209,226,32,86,208,104,148,136,96,144,48,52,249,129,229,134,140,133,135,192,110,0,105,52,139,155,227,49,118,1,193,171,169,54,66,53,157,86,59,250,195,15,46,201,191,59,8,22,177,8,6,210,70,168,19,106,214,196,198,205,67,218,194,42,154,169,14,215,226,39,134,131,26,135,58,179,122,20,13,24,42,12,118,209,4,229,44,52,58,4,59,111,120,114,10,10,98,193,236,157,141,149,120,206,180,96,110,207,50,138,84,196,83,53,126,171,203,233,212,230,39,226,225,213,76,57,90,186,36,135,239,235,9,79,209,68,252,161,167,161,240,125,55,40,110,149,12,103,122,122,233,112,238,83,217,22,205,140,172,141, +210,86,231,190,82,201,182,24,70,230,48,189,129,179,247,217,40,143,62,51,250,147,236,174,44,61,202,21,199,72,213,158,143,165,93,27,63,15,85,79,226,163,27,132,41,150,255,149,98,117,177,236,174,86,1,204,158,219,15,38,51,30,203,242,216,167,97,161,11,209,4,114,169,175,160,176,112,75,171,220,144,8,177,69,0,113,49,104,240,41,72,122,37,85,0,149,197,166,128,16,253,77,161,60,22,99,82,159,33,229,10,72,146,224,214,129,64,255,220,38,87,209,3,163,201,26,221,7,145,164,128,214,242,81,238,204,234,38,93,215,215,193,77,153,98,145,10,175,33,120,93,56,254,13,181,26,102,104,89,13,87,55,213,33,91,236,237,6,78,207,167,105,167,65,19,26,31,14,130,79,244,10,212,198,2,247,147,34,66,141,120,175,91,45,142,5,12,8,193,185,152,135,206,22,58,142,86,144,47,61,103,46,226,169,80,240,170,111,120,140,110,85,40,180,213,174,212,29,237,173,22,191,105,7,88,74,254,252,73,248,107,169,124,142,118,40,193,159,155,112,208,95,205,19,135,137, +67,200,249,12,100,187,92,106,233,60,58,240,157,142,103,51,218,165,20,236,144,225,225,200,126,102,162,31,160,21,153,242,67,100,163,122,6,147,66,106,17,241,39,59,76,209,207,228,236,231,45,19,191,73,121,111,55,49,249,142,28,152,148,254,173,100,124,158,141,191,207,63,227,51,39,185,201,236,154,250,229,205,203,22,28,16,76,212,132,218,141,80,72,135,27,149,140,236,118,38,158,32,157,53,237,142,14,149,198,96,72,247,80,216,143,241,73,1,251,240,65,203,239,139,44,1,45,62,47,61,37,35,134,34,4,222,151,14,181,16,54,169,97,252,148,236,52,185,31,132,5,64,151,198,24,135,116,128,6,63,152,83,144,80,183,245,155,20,160,20,95,130,142,80,182,13,81,13,98,4,77,113,181,148,2,200,133,130,1,235,154,9,210,224,95,135,206,10,85,88,203,52,40,171,156,167,2,173,80,16,47,158,205,202,25,188,17,212,179,90,101,10,68,191,82,111,210,173,34,9,255,22,20,82,102,149,162,107,77,43,19,41,51,68,171,141,153,89,33,55,121,66,212,81,127,49, +49,179,189,147,119,83,40,5,73,167,74,185,155,25,121,55,142,236,51,249,66,154,214,51,31,206,165,148,174,206,201,175,102,113,198,160,201,93,42,249,42,174,154,119,138,51,53,205,37,17,47,244,137,47,44,101,230,185,194,92,26,113,22,165,242,150,250,51,26,235,150,224,164,159,34,133,143,94,24,119,177,95,223,225,178,178,42,153,173,37,179,46,204,89,246,99,85,93,109,0,123,248,36,241,6,46,203,39,40,124,216,180,231,68,253,234,137,227,161,211,21,107,201,248,35,104,53,12,254,87,156,129,157,224,102,52,225,80,208,178,153,116,8,204,253,18,240,44,36,50,241,11,144,8,146,74,167,65,217,36,9,3,82,252,161,124,244,142,226,23,254,9,30,10,61,128,129,245,128,40,186,99,166,22,160,101,56,176,2,239,50,134,158,168,118,172,131,56,117,184,198,181,96,35,180,211,120,36,156,210,131,65,87,157,19,57,182,18,235,56,4,15,81,226,208,118,69,124,6,180,181,18,156,136,175,120,129,238,244,74,36,200,32,9,195,187,148,251,107,250,16,68,33,47,144,79, +140,169,22,164,251,10,36,175,168,25,92,157,18,137,218,110,71,239,241,30,42,101,55,158,128,255,153,118,236,139,90,186,22,198,227,49,211,142,92,160,61,68,242,117,42,225,185,23,119,122,154,71,26,23,175,83,241,38,101,167,68,192,60,122,241,119,226,30,215,244,119,38,150,199,33,83,124,163,18,251,126,110,167,69,61,42,225,23,75,34,201,161,227,194,72,106,120,150,236,154,226,171,146,78,122,252,196,95,161,93,252,213,142,191,176,32,246,227,15,124,229,210,39,199,206,71,143,235,3,131,161,216,245,169,196,253,232,155,23,8,154,220,132,58,164,94,37,40,123,224,113,144,129,222,2,81,96,130,54,80,111,162,193,148,188,227,42,192,51,70,18,195,80,129,33,114,59,96,2,51,104,70,234,71,119,7,37,4,170,24,6,9,124,72,11,70,220,128,149,203,80,96,1,225,27,240,169,9,250,159,65,12,80,93,132,58,84,3,192,225,5,74,10,64,107,103,61,52,28,111,35,142,3,76,45,135,5,46,205,250,56,76,90,109,64,211,141,28,66,180,28,254,162,112,97,5, +74,8,136,39,112,81,53,202,14,4,130,135,190,6,229,11,103,15,201,4,218,190,147,32,15,169,4,90,207,222,54,162,30,50,133,252,61,10,99,195,135,164,135,73,201,201,194,225,146,106,27,78,122,24,73,10,81,22,14,161,183,218,192,79,139,73,58,203,130,225,54,122,219,76,183,88,20,170,61,18,254,192,122,219,78,183,232,228,26,36,28,30,145,183,133,240,87,139,68,254,11,135,217,2,241,86,67,186,68,226,193,135,86,246,162,81,186,20,44,106,13,15,215,32,137,254,30,188,37,130,183,67,187,111,251,253,232,11,161,215,240,186,10,60,223,35,94,214,1,177,167,63,249,234,50,32,83,157,158,233,208,172,87,25,145,109,47,140,75,243,79,118,242,97,4,76,151,44,130,28,6,231,204,201,214,252,81,93,111,37,69,64,130,172,51,55,163,20,8,26,45,161,154,195,129,73,24,22,214,250,0,182,65,15,76,65,109,175,13,106,11,194,25,132,38,140,11,240,137,5,215,199,174,212,131,24,203,106,100,128,49,200,108,235,61,184,20,32,247,113,128,81,112,254,149,87, +134,169,1,174,160,175,208,13,131,254,64,4,23,224,164,59,12,167,105,133,128,126,126,245,194,34,134,43,219,203,233,38,146,157,247,159,209,202,110,58,19,39,126,134,203,45,91,213,138,248,179,70,117,151,95,196,173,173,159,233,16,38,90,178,156,124,165,164,156,7,93,244,157,92,127,230,23,147,151,232,212,101,186,215,92,116,251,28,89,185,37,222,243,146,124,103,196,159,136,210,208,167,223,117,169,119,215,55,166,205,132,175,14,169,159,115,68,124,247,160,243,207,44,224,147,110,228,66,134,227,77,118,188,111,159,97,232,246,255,189,221,254,158,219,223,119,119,252,127,238,119,240,252,62,227,255,94,76,193,93,216,185,190,79,234,253,123,172,143,69,238,131,195,15,189,238,104,235,211,211,157,193,187,208,114,7,40,250,136,16,92,176,216,35,72,148,220,36,67,83,196,186,145,241,79,191,48,164,179,166,104,102,112,211,2,65,54,69,170,96,226,228,112,1,37,140,66,131,81,40,128,12,85,128,30,129,210,102,208,98,32,23,51,131,250,131,61,27,73,55,151,81,23,160,99,120, +208,232,255,3,95,193,205,0,7,41,117,24,86,189,56,117,70,28,168,25,85,228,125,104,143,174,87,25,168,170,128,130,166,223,26,248,138,13,62,105,36,27,0,237,25,47,54,213,68,169,244,177,58,230,128,158,7,83,77,72,155,211,93,133,78,188,253,201,219,126,108,70,113,116,82,173,239,103,32,133,158,195,235,71,72,107,113,83,156,188,244,179,91,128,106,19,35,122,79,76,178,16,199,143,129,210,208,245,189,107,211,157,206,21,170,109,135,235,155,183,159,90,70,60,71,228,113,199,54,224,82,111,218,16,178,67,143,109,49,225,83,61,22,82,187,250,230,85,109,247,168,233,30,57,214,181,43,114,126,134,247,212,103,96,255,140,237,159,137,208,167,239,159,217,206,254,9,157,223,184,181,235,241,187,85,91,59,244,205,174,86,116,249,95,29,67,96,241,71,33,251,130,69,31,77,13,78,213,71,253,165,38,17,156,72,235,77,253,57,37,112,58,135,96,14,101,138,224,176,188,255,67,211,58,73,55,54,49,14,150,133,0,208,127,50,250,150,22,128,46,32,228,196,160,55,3, +160,118,120,94,239,81,150,80,29,222,134,182,89,3,46,201,73,11,174,48,13,144,47,222,39,115,127,180,16,184,252,147,184,102,26,225,55,220,99,129,157,37,32,217,99,209,6,241,79,209,88,177,160,82,148,105,17,30,179,16,33,132,41,38,162,125,180,95,3,7,122,169,164,185,126,97,2,95,203,8,130,252,68,119,58,160,249,223,17,47,161,6,200,235,219,31,240,240,162,223,121,168,206,146,0,162,148,196,6,226,239,1,57,191,205,79,46,50,209,161,197,116,173,208,113,222,25,78,112,67,98,130,37,120,192,8,108,67,74,192,145,61,183,6,110,179,126,199,175,93,8,169,198,35,22,241,13,32,185,234,150,240,231,72,237,31,203,228,254,241,179,231,245,101,174,87,223,245,2,92,77,223,192,229,27,187,124,137,161,203,55,112,248,122,39,199,43,186,125,160,7,237,11,63,182,229,210,195,214,238,127,252,183,130,218,155,36,238,120,244,59,172,143,231,100,106,10,85,175,27,160,121,243,97,204,147,54,24,138,208,176,134,130,210,83,104,150,17,62,32,153,135,136,116,146,66, +0,25,95,40,20,202,93,63,156,192,128,249,130,50,87,179,112,94,85,143,136,52,193,77,0,91,104,6,236,191,159,236,45,252,14,254,203,94,218,201,244,47,123,131,16,72,144,139,220,3,213,149,176,15,46,1,152,116,114,113,161,2,60,92,98,33,21,21,23,48,92,106,25,50,163,194,190,47,163,31,14,64,41,119,191,196,118,126,163,151,94,0,95,239,52,164,182,51,214,160,39,127,63,173,241,23,198,243,81,99,93,212,50,7,63,209,254,126,238,165,77,24,144,189,181,6,63,165,46,52,97,22,68,216,233,14,209,221,189,190,167,190,251,122,34,215,254,140,189,219,207,52,215,187,165,253,114,178,206,61,247,138,224,137,57,230,94,236,63,127,216,188,234,2,141,220,126,249,87,114,156,204,173,251,84,191,124,50,9,207,63,194,211,22,35,60,239,132,103,211,77,120,206,9,207,84,59,115,255,115,159,114,167,229,234,221,182,190,167,181,151,220,205,191,175,171,164,103,242,253,143,0,53,105,227,143,73,202,72,135,77,114,19,110,44,189,49,8,14,99,175,193,64,200,109,27, +65,1,60,66,6,213,12,32,1,198,21,6,69,56,3,134,58,198,194,129,191,186,216,138,1,9,35,134,144,165,170,7,12,167,62,217,122,68,46,204,54,9,137,126,252,151,178,134,240,180,61,208,65,232,160,112,175,141,248,40,21,132,54,110,188,26,144,227,254,168,202,54,224,21,129,165,140,198,37,53,98,65,45,75,98,36,36,181,210,11,192,194,161,117,80,160,164,171,187,64,183,72,149,227,203,107,76,62,176,151,38,153,219,73,115,74,163,213,197,234,190,3,41,48,241,8,15,220,90,192,115,134,16,96,180,185,75,213,26,123,204,165,190,163,248,220,189,129,214,222,156,221,221,25,252,174,119,218,115,245,82,109,122,230,58,65,229,168,168,221,160,115,175,38,107,237,12,26,223,187,140,174,230,168,166,120,243,106,132,112,132,196,110,4,207,192,155,50,10,122,117,74,110,221,200,45,27,239,239,142,245,229,152,63,95,254,218,109,169,63,206,249,191,115,166,187,154,59,105,155,194,69,253,237,26,60,207,37,219,241,220,172,118,191,181,162,199,63,229,210,130,51,176,145,86,207, +198,102,213,163,140,224,33,28,202,21,143,44,93,131,1,253,196,142,247,9,29,19,217,145,0,137,95,83,58,252,71,54,201,180,198,52,131,106,132,241,57,216,31,208,230,215,19,94,246,64,16,194,156,89,248,61,65,234,255,96,215,176,5,131,136,57,191,80,175,146,63,176,3,167,118,11,20,90,123,138,107,177,192,161,51,102,127,248,174,156,54,65,21,65,154,196,216,79,67,208,6,189,17,23,22,247,83,95,44,112,8,209,79,145,80,92,218,175,180,3,1,135,39,83,166,171,113,11,124,231,119,8,244,1,165,109,67,82,76,220,69,103,240,80,234,157,210,206,200,124,164,246,190,223,17,251,146,52,123,122,229,95,193,94,75,188,48,42,72,79,10,10,155,59,191,115,214,214,160,177,218,181,116,103,7,163,217,74,85,117,132,145,34,182,131,234,7,206,172,177,53,170,39,244,27,45,243,172,99,138,78,186,207,240,119,134,232,254,78,255,218,222,191,170,191,126,141,188,239,134,241,97,25,92,123,254,216,174,109,27,113,151,186,84,173,201,248,182,233,182,194,85,211,215,177,61, +86,199,212,78,169,75,173,71,54,173,255,55,184,127,194,254,153,143,180,65,218,76,129,88,196,201,175,235,70,128,38,82,69,67,185,124,75,71,138,38,154,139,38,221,49,112,133,126,17,38,234,161,201,120,5,132,242,195,8,60,97,196,75,128,175,166,50,55,117,183,16,85,180,132,26,136,102,23,245,99,73,52,64,115,36,170,101,65,84,127,53,118,84,218,130,99,4,36,201,58,169,191,7,8,105,73,210,240,15,119,36,178,113,74,73,131,182,225,175,33,135,202,142,6,81,90,86,20,166,16,139,167,73,146,135,206,65,144,192,35,149,240,128,78,123,129,55,62,80,14,197,92,215,140,66,191,225,172,111,145,190,217,11,251,190,40,254,146,158,146,25,54,191,37,113,86,111,143,35,216,103,214,68,135,2,137,138,29,150,160,129,43,103,108,15,66,172,213,46,125,118,40,206,77,183,226,211,184,247,79,119,43,230,238,246,167,43,52,110,197,240,211,83,110,5,214,244,233,110,197,222,189,86,152,155,255,26,179,212,84,116,109,25,255,108,205,125,53,108,79,195,109,116,91,165,14, +25,70,106,170,209,149,152,77,69,63,103,79,11,215,156,215,209,53,189,77,74,7,183,53,243,190,139,55,126,127,39,254,62,254,43,192,97,58,11,31,133,246,3,133,143,189,72,105,252,18,72,79,229,62,68,233,169,223,68,113,66,140,255,154,56,4,124,33,73,1,25,67,146,104,88,43,38,125,81,9,31,252,5,42,2,102,15,212,38,192,183,200,234,39,119,73,206,45,181,98,5,87,201,236,45,158,108,197,84,73,170,45,155,162,53,50,200,232,45,88,154,134,126,28,90,116,44,15,88,88,148,30,21,216,65,112,210,159,1,43,143,114,96,62,238,86,98,224,17,208,56,40,160,99,141,0,238,61,40,156,140,86,220,238,198,32,16,24,91,220,195,22,247,77,214,243,183,244,218,133,50,127,52,192,130,61,62,231,136,186,149,0,58,118,97,13,76,143,176,209,215,138,8,150,11,206,122,205,89,47,109,156,245,138,179,94,176,40,235,53,107,189,100,173,167,43,214,103,246,189,166,176,190,151,220,239,21,23,252,189,224,126,175,185,223,162,255,102,185,53,133,157,91,178,115,43, +118,227,221,54,9,58,38,129,174,97,122,121,166,143,173,191,116,121,42,182,238,76,102,96,231,70,191,237,120,178,112,205,242,183,13,175,167,167,247,72,33,182,210,31,252,192,191,100,189,205,57,200,251,244,207,0,247,49,7,3,63,133,157,56,62,146,183,45,142,148,81,90,121,74,236,148,252,141,18,174,242,77,69,50,152,195,40,204,39,115,181,120,48,101,96,190,240,49,6,239,63,244,161,120,153,79,189,208,234,194,138,68,119,248,177,103,97,117,186,251,143,245,194,146,120,119,172,3,71,194,218,114,23,180,7,244,33,25,88,8,55,3,156,52,186,96,76,24,192,81,120,93,204,10,248,255,69,238,75,200,133,64,31,207,166,222,16,8,221,174,55,223,60,143,221,28,215,142,219,167,212,102,42,103,49,47,243,161,239,23,253,146,152,23,252,160,220,249,152,107,156,142,185,32,181,253,212,13,218,79,41,255,25,2,111,128,216,251,29,123,131,214,177,247,185,249,254,187,52,223,220,86,163,218,237,182,170,221,122,177,219,93,22,187,205,98,183,93,180,117,59,197,110,163,216,189, +183,202,221,122,89,216,125,151,133,237,178,240,183,76,124,187,84,239,81,232,253,152,133,222,37,196,43,198,192,63,207,220,219,218,222,62,116,191,231,254,86,237,245,246,233,223,49,215,203,191,158,223,252,218,185,223,215,40,189,75,156,151,93,175,185,172,255,149,222,165,62,160,41,77,173,44,240,184,91,56,79,14,234,51,131,34,15,148,89,60,142,124,158,159,202,180,232,159,20,238,203,72,78,197,13,148,47,131,15,91,19,27,107,219,95,158,161,41,22,150,150,6,91,144,33,137,68,108,31,198,107,67,184,58,227,199,215,178,154,195,127,97,35,219,2,104,14,114,143,202,219,177,197,113,192,34,201,103,192,142,127,97,187,214,89,32,22,92,138,202,217,113,102,68,64,116,73,85,240,94,208,43,31,171,28,119,94,131,93,132,148,206,17,175,182,219,85,3,42,122,246,74,126,49,74,239,4,161,96,57,249,72,19,247,218,21,107,254,107,111,36,16,180,173,94,182,247,170,195,88,173,24,171,23,193,225,149,187,173,242,183,219,169,114,27,85,238,183,79,229,182,169,220,174,183,202, +109,82,185,61,98,191,219,34,118,27,196,238,166,95,236,182,139,221,238,165,216,109,22,187,189,250,235,125,212,62,239,93,171,163,242,216,38,206,93,107,111,245,216,213,79,125,29,126,233,233,84,220,23,25,238,153,104,109,119,107,199,195,251,183,242,180,168,239,114,101,165,189,174,110,252,98,159,63,171,108,129,163,116,105,225,237,47,115,232,63,169,68,81,164,78,103,191,41,70,89,82,74,121,247,35,184,47,139,132,65,226,200,73,194,222,7,104,90,19,158,25,233,45,37,166,98,134,48,231,90,229,224,160,237,35,76,218,143,244,16,175,53,85,195,117,145,105,142,214,98,140,112,121,213,195,162,2,102,192,139,176,102,98,138,128,12,205,10,92,56,91,3,2,242,225,56,38,23,17,162,1,164,222,164,179,179,204,160,34,225,65,236,230,84,58,237,12,55,15,117,93,206,150,54,112,36,140,97,244,11,122,49,239,44,118,115,193,122,46,0,43,205,77,142,178,89,31,232,52,25,169,46,19,218,0,160,212,254,93,218,175,75,143,61,179,245,91,110,117,222,229,86,35,223,106,229, +237,173,122,190,213,205,183,184,205,124,171,157,111,253,38,106,173,78,173,213,168,13,91,173,90,171,94,227,217,186,53,94,187,196,251,253,220,233,82,56,189,138,172,211,170,184,94,51,251,239,129,122,140,172,100,206,33,13,103,93,181,118,117,179,153,175,94,121,216,36,191,215,97,100,127,166,103,122,194,154,229,221,42,60,254,74,152,177,93,115,17,210,255,87,231,193,251,165,151,6,19,70,39,14,191,38,70,121,251,166,252,25,194,40,222,39,49,109,90,240,2,37,140,132,150,50,22,51,2,118,163,118,176,102,111,105,182,133,85,117,197,92,26,146,53,104,200,185,182,98,144,120,62,250,134,225,130,169,35,118,67,128,19,187,168,157,10,67,138,19,188,168,167,147,143,13,11,194,126,34,161,104,144,197,138,56,212,23,178,1,135,8,0,250,237,76,199,2,61,227,132,140,154,120,128,216,221,234,137,96,216,172,224,93,182,85,229,59,168,89,86,82,38,221,2,126,241,201,111,75,196,66,45,88,169,5,179,207,0,141,113,213,127,72,174,26,201,173,63,25,248,138,23,95,105,111, +64,127,237,227,189,125,156,131,218,199,125,251,56,104,131,142,207,246,113,217,62,130,142,153,227,40,115,188,130,50,199,105,230,184,205,128,142,189,204,241,85,57,130,86,149,227,169,114,28,111,42,199,91,229,152,82,119,103,101,204,76,73,175,100,136,26,245,186,86,238,198,244,95,190,223,194,211,186,215,222,250,191,199,169,201,61,163,142,42,93,70,37,254,238,84,159,219,196,209,147,251,220,163,5,222,229,231,127,2,15,110,42,170,242,60,178,121,168,229,239,228,52,249,181,102,14,155,164,18,134,33,132,87,211,12,23,173,64,2,13,58,180,132,121,237,65,24,34,173,109,113,113,85,1,103,170,81,100,222,201,206,54,160,26,20,168,105,3,167,180,114,24,81,231,132,192,13,196,141,193,105,251,23,55,71,114,42,250,196,205,237,72,162,121,6,66,52,48,209,219,108,16,68,144,100,146,242,14,176,117,16,52,233,70,183,31,25,114,49,235,22,177,223,31,87,144,121,241,122,229,15,43,218,219,42,47,125,160,28,25,63,50,39,241,163,210,102,24,186,194,46,161,43,234,183,230, +219,180,106,62,208,185,70,183,159,171,244,207,112,102,86,13,205,121,178,57,79,37,185,243,127,237,60,215,36,231,192,76,253,222,37,213,187,157,122,247,46,98,118,125,204,238,231,141,217,181,48,187,5,166,187,75,99,118,53,250,104,57,29,141,84,163,81,78,152,74,10,25,116,191,182,175,241,119,171,47,183,236,250,184,37,174,35,202,78,183,151,143,148,169,100,78,202,160,189,155,229,215,181,90,184,198,34,163,183,213,122,89,191,21,243,174,48,39,123,63,255,213,133,6,102,184,115,106,67,136,175,196,47,133,193,34,11,198,228,143,124,163,56,65,242,200,223,150,100,140,142,210,219,186,91,34,117,107,143,75,130,248,129,181,38,208,141,0,172,238,154,227,141,90,201,99,1,183,226,192,140,75,140,241,139,5,140,130,251,144,144,134,176,247,89,242,212,16,225,180,224,17,69,192,193,10,157,148,67,169,246,3,181,5,50,133,252,16,26,22,145,178,25,94,121,228,141,28,205,92,185,153,43,113,242,64,180,227,136,199,17,17,124,124,18,180,179,136,187,133,223,131,92,160,116,148, +95,169,155,75,230,133,26,122,90,84,127,157,218,77,34,207,213,209,185,54,18,191,207,247,51,131,91,159,219,86,72,143,128,114,192,56,219,237,138,53,167,199,230,246,158,30,153,120,121,6,160,54,163,17,143,183,227,131,209,177,0,151,137,23,104,145,146,165,53,28,196,238,156,200,213,97,95,28,133,59,134,103,180,68,169,137,215,100,72,18,41,37,83,206,167,235,40,183,236,179,66,31,85,242,149,194,208,226,232,242,239,188,219,188,135,176,65,156,62,143,183,85,230,83,165,69,233,13,94,154,243,111,255,158,133,255,173,66,174,251,55,214,185,199,254,154,177,37,182,25,11,103,249,220,75,150,203,205,242,184,89,163,77,59,254,100,14,124,94,172,177,27,249,90,247,193,225,179,241,113,19,187,19,94,150,199,203,114,120,151,19,191,119,226,245,78,130,219,206,225,254,237,242,234,153,203,14,214,182,142,172,177,103,73,226,94,0,236,206,175,99,203,179,107,149,60,155,150,103,219,106,29,207,173,97,38,40,236,70,83,170,180,42,30,184,127,52,176,242,21,165,133,34,93,76,191, +76,123,66,211,18,99,161,246,165,189,208,25,55,228,207,68,71,70,202,33,19,60,230,33,213,222,240,15,72,188,207,83,241,197,194,237,177,79,27,95,201,72,148,178,21,239,194,121,97,55,236,223,127,156,192,163,228,218,56,164,155,6,134,186,9,139,5,15,20,72,46,88,20,40,138,58,50,2,72,176,208,64,189,32,57,212,13,180,145,23,126,30,178,52,208,143,46,99,226,66,229,96,13,189,156,22,106,221,110,5,117,119,78,11,161,151,246,48,140,86,40,103,84,178,20,44,208,211,138,15,158,84,154,234,11,243,44,223,198,121,42,125,161,200,48,134,101,42,205,87,228,21,57,42,85,137,190,134,167,253,135,197,120,226,152,88,71,69,212,131,238,241,214,253,56,151,116,165,206,161,157,176,223,94,248,51,37,14,55,74,91,16,214,49,149,133,94,194,114,175,82,116,171,176,217,93,88,78,178,101,55,213,186,250,13,107,206,125,184,102,251,29,166,59,214,201,97,166,16,124,191,191,229,38,37,71,68,208,33,124,242,254,72,242,117,67,68,124,94,241,193,138,161,22,102,252, +48,198,216,121,73,49,18,138,29,18,247,128,58,210,157,127,107,61,18,178,32,39,17,85,82,198,177,30,213,58,188,2,126,178,164,224,40,112,2,238,26,19,9,130,53,33,85,212,67,28,151,94,127,73,55,40,48,46,44,90,129,144,1,8,241,212,45,221,3,200,192,9,253,126,32,39,65,189,173,190,139,217,115,170,6,190,14,154,255,109,143,16,182,245,196,232,194,53,140,192,8,251,13,149,119,127,30,5,102,87,148,29,212,146,165,139,135,229,198,43,115,130,232,95,118,128,73,127,91,151,248,220,117,144,163,118,46,48,187,254,140,141,198,188,91,99,238,225,44,83,133,219,48,210,107,220,138,115,173,49,129,168,113,13,160,171,139,223,253,238,204,9,103,199,160,125,92,93,148,154,78,15,211,181,59,251,58,253,197,220,209,116,38,152,154,123,48,182,102,47,154,191,7,252,100,126,133,217,254,53,46,243,151,9,190,31,223,242,172,73,9,52,215,3,8,228,107,192,13,90,24,61,253,3,255,19,182,75,206,158,47,25,42,220,145,136,34,3,252,214,74,15,124,7,201,126, +173,43,246,7,1,157,141,66,87,164,35,57,132,175,32,174,19,101,103,211,168,78,16,31,85,204,219,128,8,163,159,73,203,113,217,128,145,44,74,247,0,20,15,211,137,225,126,3,32,2,168,147,91,86,160,94,153,52,59,112,79,0,228,36,55,104,134,3,191,139,127,175,145,234,237,77,97,238,99,113,180,57,112,165,84,199,228,249,246,143,123,164,244,240,186,250,109,128,237,176,40,233,248,125,176,135,41,109,115,40,58,115,233,99,114,139,13,39,125,237,83,87,245,45,204,173,56,199,162,237,171,209,104,152,17,240,14,65,63,164,175,147,52,182,249,4,131,119,244,159,122,87,93,168,169,206,113,199,47,247,160,157,173,43,205,196,234,10,103,117,14,116,71,66,157,42,173,2,168,66,197,217,183,18,234,244,168,244,212,34,223,251,68,127,219,30,219,41,128,183,198,207,44,178,75,155,12,200,146,124,134,34,172,46,13,43,41,24,6,124,76,128,220,45,173,217,193,67,64,161,197,24,58,212,117,224,203,255,9,71,24,149,218,137,75,195,167,102,7,17,217,69,172,163,88,105, +217,160,58,225,101,28,113,215,66,2,101,72,26,248,9,111,92,55,92,122,242,169,206,55,149,212,4,50,66,247,73,226,169,32,208,110,25,21,112,219,0,21,91,124,51,238,2,156,177,138,156,114,91,224,54,245,148,241,85,79,89,109,39,187,32,101,224,151,218,38,64,176,130,9,36,127,43,73,246,171,89,150,207,111,193,205,171,175,31,62,223,113,42,148,244,19,153,70,255,177,141,201,118,97,27,252,97,243,247,209,24,159,92,32,255,29,234,108,190,99,23,29,101,39,34,233,202,5,160,78,78,137,247,72,152,16,165,141,37,170,124,114,73,248,167,137,123,230,109,204,136,182,166,20,147,57,77,160,222,198,223,18,91,109,74,42,182,201,98,223,60,24,117,55,250,78,199,177,195,223,103,111,142,150,228,65,226,178,157,196,250,129,193,216,147,66,97,98,31,250,144,198,191,61,210,142,8,52,56,98,226,195,216,95,98,45,173,254,197,145,89,180,104,4,139,8,134,47,233,78,12,82,238,96,225,19,16,146,86,107,18,172,9,74,189,251,63,228,145,47,56,127,39,36,22,24, +236,144,98,254,145,7,213,55,171,18,39,1,125,221,41,39,91,128,127,97,248,54,202,193,92,128,191,9,179,203,0,254,67,27,231,86,24,254,1,132,219,36,66,49,90,100,57,235,156,141,140,3,90,141,105,192,151,209,178,113,139,217,132,131,43,248,100,116,44,76,92,161,112,80,99,108,216,43,127,92,91,24,177,20,147,197,247,240,152,136,83,53,164,208,83,220,239,109,23,255,136,135,134,164,93,177,197,153,186,226,20,91,178,52,37,75,91,92,131,177,22,23,120,75,67,138,61,86,227,58,107,113,89,192,151,127,165,57,29,217,30,99,196,107,140,67,196,41,51,43,139,247,115,209,161,222,99,126,122,27,247,111,208,173,134,117,76,144,190,184,192,141,6,54,140,206,135,63,39,60,20,134,155,37,17,249,62,242,213,192,22,72,2,78,50,118,229,68,215,104,208,95,114,36,243,109,146,96,13,194,17,54,155,55,26,248,232,16,33,47,54,80,124,73,15,136,64,122,209,26,72,195,61,30,187,132,220,128,7,57,41,216,144,13,136,145,251,41,76,173,178,11,147,135,90,127, +232,157,163,28,94,3,97,180,80,185,232,239,66,214,130,228,230,137,39,231,248,217,19,54,73,45,107,11,163,3,141,149,64,96,66,42,131,176,135,87,107,71,198,150,61,192,200,181,206,176,196,186,240,39,100,219,144,116,90,174,25,142,212,245,192,115,183,163,203,89,153,17,119,179,174,39,152,59,62,162,118,101,129,185,181,189,211,56,229,168,80,86,70,216,136,171,237,69,83,142,206,141,167,183,34,53,153,222,31,115,188,49,239,47,70,134,243,65,119,242,252,112,240,59,151,28,101,131,95,1,218,77,115,73,193,11,121,110,84,116,153,90,119,55,108,39,255,55,193,245,250,88,84,150,221,9,206,151,36,164,147,156,2,148,66,94,28,188,8,59,71,64,168,58,116,82,217,5,45,218,113,66,167,39,40,8,95,80,140,14,65,200,111,24,179,8,125,90,98,241,203,143,203,130,61,129,34,85,93,3,209,4,168,146,13,220,2,64,181,208,134,181,135,211,129,43,6,16,164,76,152,177,181,206,219,15,22,0,27,144,180,249,41,239,97,65,205,167,90,30,135,47,214,127,74,46, +32,201,248,247,149,156,63,45,173,197,225,216,17,200,104,224,203,106,233,227,55,248,230,79,136,65,74,167,41,28,11,12,161,21,107,95,169,175,28,101,102,205,32,111,105,241,106,255,117,76,241,102,22,100,35,243,43,182,125,38,178,114,224,65,153,185,208,86,94,8,54,203,254,88,149,98,79,77,41,102,198,196,127,205,152,56,22,19,223,99,88,241,67,117,241,23,213,173,61,6,18,4,184,193,33,87,13,234,152,31,224,83,234,111,146,222,112,118,11,99,150,92,123,39,160,254,22,100,47,194,246,194,89,66,31,103,146,114,77,7,138,143,12,103,23,18,110,213,63,252,147,107,190,3,10,23,7,196,132,54,73,176,116,171,188,50,1,212,13,195,54,192,13,163,65,183,65,216,3,10,108,30,132,255,33,183,98,166,153,1,81,93,150,49,171,252,47,52,5,160,13,67,56,51,8,201,55,32,161,61,204,234,64,142,117,199,32,91,4,42,49,0,4,141,101,129,41,181,193,141,147,245,217,255,116,16,40,24,250,4,2,23,74,8,141,69,105,30,207,83,70,19,120,176,123,176, +203,72,24,254,100,245,39,5,188,112,17,78,2,164,251,77,128,46,99,193,234,160,1,164,182,134,171,163,222,154,96,170,92,200,81,193,1,240,170,75,146,246,0,245,48,62,43,92,200,223,193,215,124,248,94,9,224,222,137,143,176,184,240,101,168,252,183,202,63,240,108,19,66,199,224,146,87,41,1,222,206,228,137,63,179,167,4,156,7,17,142,64,129,211,80,154,141,84,89,195,224,248,123,2,227,23,165,212,216,1,70,32,171,10,58,147,8,10,214,140,68,200,251,132,56,229,201,203,250,207,170,127,130,234,37,84,103,80,25,144,147,127,187,46,181,226,135,141,127,47,56,190,180,133,178,169,14,193,2,65,212,143,74,7,190,26,144,164,49,122,15,68,121,249,32,104,186,7,48,105,1,14,166,0,61,100,6,194,52,154,133,72,149,96,50,108,48,187,56,12,7,30,153,196,71,34,136,80,232,8,166,202,175,49,7,118,21,226,85,4,136,170,124,124,249,153,64,248,138,70,224,94,16,45,191,242,160,27,109,226,195,88,248,101,56,135,0,57,198,192,243,70,40,112,236,137, +102,54,195,166,111,216,28,12,165,205,196,176,89,27,72,48,63,252,29,250,32,255,28,188,58,253,83,92,239,70,229,21,148,241,212,166,69,242,145,185,61,10,143,122,227,227,144,38,106,167,71,198,255,178,25,196,184,23,247,201,243,59,5,141,226,163,91,175,208,48,108,67,128,75,111,208,97,210,22,110,46,103,18,97,89,197,44,94,124,81,164,153,4,82,138,6,140,99,89,4,235,207,121,0,95,141,5,212,240,6,88,109,32,224,24,233,178,164,14,218,36,13,239,159,12,248,183,79,125,227,242,164,216,139,62,29,188,105,44,24,117,27,123,57,123,59,34,151,253,24,0,229,161,208,120,190,34,209,210,119,158,44,235,158,134,66,207,142,120,226,93,63,187,77,246,219,207,249,238,126,178,246,37,14,103,254,205,77,124,102,249,200,151,45,244,214,164,10,221,254,193,206,125,178,241,209,55,180,208,253,227,30,106,156,103,37,250,22,210,131,239,22,240,158,253,110,252,150,203,154,253,144,95,75,27,166,138,238,68,193,125,11,37,238,123,251,113,25,134,86,162,35,44,125,176,77, +248,145,154,120,230,69,124,230,251,108,242,24,140,117,5,99,113,146,108,83,140,77,72,108,16,26,57,10,32,227,185,102,93,245,180,32,15,48,40,190,17,113,199,83,117,200,179,57,193,46,41,12,149,16,177,4,29,101,54,82,105,14,208,117,36,101,192,71,175,255,59,23,151,56,78,58,144,156,133,164,237,129,106,56,3,130,183,89,182,171,2,37,237,222,100,44,199,46,17,188,88,201,107,156,227,128,23,240,111,31,214,21,175,81,181,56,206,23,148,174,3,161,201,28,249,140,118,191,177,133,218,224,112,228,62,28,109,68,87,25,172,245,160,27,43,247,177,68,116,153,154,96,109,177,177,242,11,23,14,241,113,68,250,174,46,104,55,3,94,87,222,224,245,8,188,118,118,142,231,240,250,254,117,110,11,43,202,55,86,174,85,137,47,191,159,221,6,51,241,28,101,98,112,52,183,194,56,101,143,225,100,157,58,50,102,45,106,144,96,71,129,4,155,173,156,176,102,27,84,122,242,149,88,1,222,112,116,72,170,123,226,72,156,183,193,172,123,195,247,56,242,4,103,172,25,132, +162,100,105,24,49,226,75,9,190,46,202,126,21,143,50,196,60,108,180,14,49,85,16,70,199,253,50,201,13,40,6,104,23,215,90,136,159,130,198,114,86,14,234,128,133,5,161,238,97,5,119,239,144,12,126,76,145,249,22,67,67,17,231,48,192,71,132,16,200,239,52,192,135,65,145,210,206,11,186,22,78,188,165,205,137,119,113,19,61,150,54,178,147,245,218,67,199,245,178,118,111,30,58,213,170,215,30,89,47,171,139,59,247,236,197,223,59,78,215,115,189,244,217,111,205,238,125,214,189,239,186,203,251,162,123,31,230,238,166,77,238,126,206,113,253,85,184,159,254,17,60,128,107,231,86,49,227,137,141,69,230,108,159,16,248,158,65,206,147,96,67,188,33,227,44,20,13,16,9,128,41,253,20,174,80,188,94,86,65,7,160,169,78,210,120,70,5,69,118,196,45,154,32,167,185,112,115,130,194,46,5,88,203,4,26,250,172,205,250,201,97,57,68,122,198,228,197,35,178,33,204,43,126,168,123,247,21,244,244,100,227,0,68,203,2,99,160,86,124,78,17,144,5,189,224,225, +15,178,236,96,185,55,68,55,132,12,61,27,4,28,105,209,61,2,242,107,129,0,244,188,175,124,207,243,223,218,231,70,30,214,238,183,251,212,230,223,87,132,150,247,124,23,184,151,57,102,219,245,183,250,221,219,133,107,39,247,212,194,223,151,171,27,223,157,253,211,215,10,78,205,113,165,230,127,223,225,217,103,250,239,117,247,204,95,134,185,207,253,61,207,10,33,66,121,153,61,166,57,12,191,108,219,239,93,174,9,81,134,210,123,26,71,141,26,143,20,17,154,47,255,229,33,113,13,105,40,192,82,65,17,69,193,146,170,148,120,101,234,193,66,128,61,145,24,155,37,85,49,195,26,209,48,75,172,140,104,196,102,212,62,169,17,250,48,149,93,133,147,252,123,37,38,65,67,7,96,85,208,67,103,185,69,227,2,238,31,79,121,173,112,69,240,4,35,205,249,131,123,217,240,177,78,210,59,161,247,211,207,25,97,195,59,193,19,52,24,254,38,221,189,253,48,253,234,240,165,177,208,223,4,209,118,197,148,246,108,65,188,183,172,93,215,198,137,175,115,19,24,173,118,108,175, +151,78,107,181,130,99,62,169,31,203,224,165,99,118,230,89,221,191,132,154,155,192,116,19,150,127,110,130,210,77,136,153,220,4,100,35,198,108,96,98,47,218,35,153,28,217,178,224,202,88,170,149,8,176,161,180,169,158,101,129,99,56,106,143,193,55,166,9,236,40,53,133,136,118,193,0,171,40,125,70,89,130,30,101,154,215,15,70,127,113,217,104,33,213,37,67,5,69,209,96,195,69,36,71,89,116,142,40,24,212,245,160,58,8,94,30,216,58,112,196,34,82,170,104,19,65,26,125,90,26,205,0,226,43,96,1,10,57,219,191,3,35,18,24,186,229,91,17,209,35,217,246,239,192,232,164,26,252,234,151,36,220,162,209,190,5,187,4,29,243,16,91,212,93,231,69,91,148,221,199,170,198,193,188,182,110,52,44,182,170,78,119,137,204,231,213,6,199,146,177,69,117,186,224,92,83,235,218,42,203,230,204,214,89,86,154,54,245,178,185,76,45,155,251,101,179,100,91,54,165,186,230,83,215,108,50,155,182,79,41,6,214,197,143,34,75,231,191,62,226,126,60,64,168,192,21, +242,86,235,26,178,180,108,68,73,14,69,248,186,211,184,39,87,31,76,224,168,80,65,63,64,78,93,104,233,132,107,132,219,68,120,9,126,0,213,9,237,168,50,206,106,81,51,183,58,17,189,209,81,50,182,121,73,131,180,96,211,113,128,224,195,186,63,177,196,135,131,56,136,82,24,172,191,82,210,34,39,43,172,60,165,7,0,13,167,1,245,248,123,146,216,186,79,5,68,172,60,231,174,15,118,109,78,230,97,225,230,186,131,53,155,115,191,111,182,130,11,118,211,206,78,47,155,227,170,110,127,78,49,156,215,84,203,18,30,173,90,38,251,130,125,156,219,51,71,238,184,241,200,236,143,138,107,69,177,116,206,74,143,126,233,17,93,148,30,225,193,75,246,50,118,107,44,127,153,181,254,212,92,127,92,149,6,169,12,61,119,242,24,15,240,218,38,19,46,129,100,151,193,161,92,157,201,210,168,188,101,151,12,58,37,50,141,161,60,134,144,230,54,113,186,168,34,144,219,77,243,136,1,191,174,212,252,183,188,186,185,247,111,125,217,34,27,202,248,44,16,148,236,15,152,156, +216,126,194,168,83,140,25,17,156,21,45,105,96,85,11,90,1,226,225,113,212,166,194,104,193,152,162,1,3,171,33,25,74,154,138,160,1,116,11,214,186,10,213,103,121,28,190,43,88,83,124,252,46,108,146,94,114,74,220,73,169,194,106,88,20,99,60,89,149,24,204,90,6,43,98,193,154,217,211,71,238,94,209,192,151,50,8,85,242,22,42,91,123,55,167,172,119,243,173,110,182,85,241,102,90,221,28,43,151,220,191,186,237,188,79,225,23,233,47,17,124,83,138,133,15,247,12,57,226,138,6,28,16,21,205,167,146,115,201,111,21,229,13,186,123,162,226,35,24,198,76,109,129,181,177,184,184,204,188,35,199,71,111,148,172,243,43,58,199,85,100,109,231,0,83,20,143,100,124,240,128,210,8,99,227,9,202,68,117,181,32,199,112,77,51,202,150,5,74,64,13,83,151,124,112,73,73,64,183,125,42,7,42,21,1,48,28,149,51,32,13,72,224,127,235,66,163,240,3,225,4,238,229,234,162,171,188,181,183,104,121,149,174,42,126,41,90,238,219,117,76,163,138,207,120,102, +3,106,163,254,101,203,218,190,240,199,217,128,127,108,212,53,182,234,23,62,83,153,13,52,214,65,229,205,217,70,56,219,43,231,189,157,114,182,91,206,246,187,199,217,126,174,51,109,243,232,7,157,196,226,215,7,157,135,116,51,87,179,50,45,185,105,113,217,85,52,126,221,178,140,213,164,203,23,154,184,76,153,197,233,215,44,193,250,95,226,235,172,215,25,171,84,172,229,70,151,245,181,74,194,114,206,204,75,6,96,142,202,30,222,227,156,22,32,181,40,154,227,96,5,13,206,121,210,56,48,42,41,158,93,228,7,0,46,132,135,144,251,109,63,142,138,0,225,112,16,176,85,94,33,222,2,223,19,176,179,61,47,215,56,62,234,234,160,157,54,131,77,142,220,119,164,207,126,43,246,61,84,81,121,14,212,62,71,175,210,245,171,191,155,185,74,77,63,153,87,15,163,138,230,86,211,220,212,54,250,51,69,127,238,233,205,167,153,254,164,210,159,4,41,253,5,78,190,115,119,249,251,71,158,19,66,212,111,218,167,76,136,6,163,198,135,92,251,103,202,204,86,57,21,9,214, +8,188,158,150,147,39,17,46,23,119,44,207,150,169,57,31,87,137,38,171,114,186,97,224,156,150,236,225,122,126,168,69,89,104,148,76,199,60,206,47,16,19,68,70,28,40,133,93,86,248,73,81,128,5,116,84,105,96,107,65,68,225,115,151,131,108,193,33,72,184,122,165,130,135,128,203,196,155,58,176,198,84,160,174,32,134,57,105,21,142,36,53,169,237,158,148,166,141,96,5,155,172,225,56,101,87,33,58,106,67,191,186,85,122,69,55,159,49,143,86,123,202,53,27,181,53,163,87,187,98,90,141,40,171,119,132,178,250,165,172,166,111,202,106,75,89,21,40,239,85,144,178,234,80,86,170,189,188,253,97,200,251,207,71,219,192,27,147,38,89,187,156,105,42,99,181,4,111,60,78,165,21,151,101,94,210,100,173,209,250,79,166,152,215,224,42,106,214,168,31,178,132,235,195,176,150,52,151,200,7,2,139,49,246,21,49,227,216,21,153,168,26,46,77,48,40,163,170,94,201,138,156,113,78,108,16,198,88,49,146,104,222,192,41,162,135,44,128,132,7,189,70,5,202,63,148, +137,184,135,133,174,192,23,65,45,80,134,45,239,138,91,181,51,62,55,88,146,216,200,22,154,118,54,103,90,143,88,66,121,9,177,141,131,77,183,87,244,180,138,116,141,102,222,215,202,251,234,249,176,175,155,247,149,102,66,223,151,149,72,111,32,147,237,229,83,126,210,23,239,114,103,145,251,145,166,217,86,50,162,0,98,238,74,95,72,131,100,102,205,120,197,160,175,147,84,37,157,81,222,104,231,140,148,100,142,46,83,48,74,58,249,176,33,171,134,177,42,26,27,119,237,31,139,188,193,136,97,52,127,116,21,43,63,78,147,213,5,25,71,1,196,209,163,25,207,200,71,68,11,113,202,132,5,194,139,217,156,22,13,159,17,253,59,134,101,126,169,5,101,188,43,160,12,52,85,83,208,82,132,183,60,33,12,185,130,205,170,69,45,224,232,53,3,253,18,10,107,101,112,227,154,57,103,120,10,142,135,83,162,148,51,211,78,118,218,89,166,167,130,220,84,144,81,76,5,217,207,79,179,162,32,51,19,164,103,62,33,167,210,226,87,30,190,156,38,33,132,188,165,114,181,73, +25,208,85,191,209,153,170,94,167,104,36,204,86,117,85,222,200,26,100,241,58,249,51,143,203,21,101,57,43,103,141,53,178,213,156,130,211,251,162,116,25,229,146,74,193,162,218,18,216,25,26,193,51,254,9,44,34,193,0,39,113,145,163,6,177,12,193,42,155,44,40,196,56,242,108,127,17,143,18,129,83,93,230,30,197,217,124,48,13,85,55,11,220,9,92,55,21,177,45,153,60,94,148,239,69,219,196,89,96,105,199,185,16,249,47,13,61,56,171,97,142,244,139,170,145,247,231,191,132,154,242,50,71,155,41,49,71,170,109,122,148,78,143,161,105,243,248,156,30,189,211,227,31,179,52,235,102,53,251,111,37,176,150,151,199,180,153,86,83,46,239,48,242,40,14,171,149,207,196,116,140,41,228,49,94,166,250,118,104,161,102,195,105,152,100,185,244,185,174,174,100,135,106,180,236,154,204,150,89,127,56,121,166,32,181,226,200,209,77,81,59,99,163,196,33,40,14,220,111,34,102,127,7,113,167,108,9,125,125,173,202,112,151,161,128,52,102,172,80,91,161,140,105,228,247,180, +10,9,198,9,66,191,144,71,190,232,68,81,179,203,21,29,180,70,85,171,55,59,74,241,216,47,30,31,69,229,17,199,202,123,249,121,138,151,157,247,114,242,94,52,47,239,101,229,159,86,174,216,101,23,223,118,63,165,99,10,93,249,36,64,56,245,47,1,146,10,114,230,207,108,23,174,108,137,16,110,78,40,14,89,211,172,33,146,238,112,210,20,3,57,249,97,17,79,162,194,74,137,121,35,156,88,198,25,103,52,72,150,215,84,254,60,166,42,69,125,226,124,209,111,160,168,252,13,77,162,109,92,214,214,135,124,162,248,133,231,90,37,12,231,23,219,18,17,71,243,34,86,173,10,134,186,242,216,89,192,218,186,192,213,81,218,119,144,142,53,142,246,155,69,58,113,61,164,175,195,244,85,118,73,95,39,233,235,6,146,190,2,229,235,187,28,184,174,203,215,243,167,69,190,118,76,105,242,65,81,93,154,255,158,212,141,41,219,248,25,26,192,113,69,134,8,180,165,116,164,121,66,23,132,81,214,72,20,38,8,50,46,244,29,14,203,197,56,83,121,13,133,61,138,1,245, +139,87,126,134,29,95,246,74,159,40,117,79,211,133,136,113,50,60,24,26,232,130,161,192,157,141,44,162,177,50,136,146,160,173,18,132,182,76,156,161,122,106,70,170,12,154,29,48,101,240,155,25,38,245,35,164,126,220,121,65,8,8,42,65,28,167,18,64,99,33,204,8,25,194,124,218,189,104,138,212,76,145,54,123,217,79,177,251,123,118,31,98,102,75,222,24,74,241,242,225,251,97,62,74,141,68,191,241,237,158,165,244,203,122,200,184,189,5,2,77,137,126,39,76,184,241,131,69,194,201,38,185,252,31,83,205,100,101,11,212,160,218,29,98,26,15,42,148,185,130,148,122,19,209,130,213,216,40,89,13,28,48,58,88,160,206,134,150,152,232,38,3,95,249,106,90,196,250,197,241,252,84,136,79,9,19,128,95,8,223,2,176,18,64,23,148,63,239,150,242,13,19,156,158,9,225,33,177,62,39,222,254,25,181,59,255,180,37,245,253,171,124,75,24,185,87,202,119,253,123,14,118,15,21,234,99,221,41,42,210,104,14,173,177,120,36,156,98,238,255,233,166,171,80,83,103, +113,211,191,243,153,153,210,101,154,206,211,10,169,42,87,22,24,197,186,144,70,195,156,17,18,21,158,90,21,26,156,115,114,68,249,136,115,17,202,214,54,115,150,183,122,7,116,41,102,34,233,68,36,204,137,243,134,16,176,37,202,176,114,97,188,148,97,2,8,18,120,41,83,11,77,246,215,187,177,187,74,167,145,114,129,205,166,126,255,248,166,238,33,30,121,69,144,218,55,166,101,248,39,219,92,250,149,152,239,60,202,142,138,121,198,223,104,86,26,110,211,110,238,108,236,21,39,253,86,161,177,140,75,36,85,83,167,241,113,93,56,171,131,61,131,233,152,234,82,211,155,204,211,103,242,130,86,114,35,207,156,3,182,106,160,186,21,31,83,163,250,6,19,72,144,128,239,120,193,180,164,28,215,170,13,249,230,186,124,32,161,199,126,124,154,84,115,230,48,211,22,90,143,207,125,77,161,127,168,242,41,21,63,173,2,240,118,72,115,42,160,125,201,15,74,28,69,5,56,18,52,215,1,117,45,26,174,193,119,240,26,220,210,193,74,208,224,114,193,56,8,255,207,56,145,165, +193,78,13,65,195,203,195,21,128,249,161,138,1,14,34,49,7,142,5,183,180,13,239,255,140,142,231,76,229,216,82,143,158,150,56,249,176,149,149,102,22,164,248,224,64,237,55,116,179,155,122,141,23,111,37,27,114,246,180,251,95,213,56,70,191,181,159,223,250,151,231,79,201,131,116,253,247,156,255,111,69,175,72,138,155,92,196,210,211,56,246,180,13,173,245,122,127,104,254,236,127,26,129,128,7,238,129,211,37,252,9,237,177,66,66,232,26,18,68,184,46,191,189,245,28,248,60,192,100,130,140,156,255,46,94,207,151,136,29,87,120,193,92,48,52,117,172,160,186,120,51,12,176,211,147,220,53,166,187,18,233,20,213,244,55,46,90,107,252,249,72,98,212,144,131,167,122,33,18,253,97,114,150,118,180,161,180,173,167,121,224,246,223,204,231,174,169,253,32,144,190,15,220,94,168,158,37,172,12,53,134,24,62,29,229,8,63,136,59,251,46,61,141,112,180,92,112,73,170,46,48,47,196,53,107,209,195,19,215,200,138,28,181,37,175,220,194,110,252,84,202,251,106,149,224,200, +26,123,224,66,109,191,212,222,196,88,127,195,34,233,143,199,94,8,122,82,94,59,7,103,19,223,111,111,166,159,232,41,58,173,141,233,223,243,40,1,226,189,91,186,190,144,107,56,11,223,115,59,131,157,230,115,70,27,118,168,206,253,215,184,251,251,137,195,248,239,243,208,57,67,238,45,135,153,133,11,20,165,27,86,156,59,23,204,46,77,121,188,184,228,152,218,117,128,251,67,158,247,245,126,212,200,190,117,161,57,100,223,242,147,71,171,132,199,69,21,64,86,107,76,206,29,20,190,95,71,254,3,137,111,33,190,190,224,214,223,71,219,188,26,211,249,58,136,255,229,10,200,179,195,224,248,182,122,168,247,67,90,249,171,95,218,48,79,255,46,63,156,32,179,82,84,164,209,33,125,134,223,31,45,145,172,240,152,167,157,253,108,221,46,227,227,197,27,23,12,229,244,217,109,142,195,179,67,43,2,13,97,3,179,194,223,182,4,251,15,55,23,5,199,232,212,255,131,139,223,2,45,253,12,148,2,146,103,242,131,40,61,45,171,250,58,208,117,26,151,230,133,209,251,54,53, +71,237,200,249,107,155,41,178,41,112,91,47,219,238,231,184,82,60,255,170,93,175,204,231,215,95,180,184,7,176,181,167,69,81,251,78,82,194,71,173,29,173,44,153,60,233,237,135,81,21,6,106,66,170,228,250,148,90,167,106,25,220,105,246,233,123,224,175,201,77,83,115,93,36,37,80,42,199,109,131,125,93,112,185,147,222,47,93,201,68,176,1,43,166,22,179,20,69,224,71,97,244,126,9,246,59,109,131,255,184,246,126,121,91,33,114,82,143,70,57,79,180,183,226,147,201,160,143,61,251,158,244,177,217,36,216,140,104,143,48,38,145,174,168,92,98,138,255,195,188,123,244,182,182,101,105,130,127,229,142,10,153,141,64,86,101,2,221,131,74,20,80,168,73,21,208,131,6,170,128,26,116,34,145,253,34,227,161,50,50,226,197,11,60,19,64,230,136,60,34,37,138,20,157,68,145,148,232,61,41,122,35,122,43,146,34,37,122,239,157,232,61,69,239,217,135,212,85,68,118,85,79,186,209,131,190,128,238,209,229,217,123,237,111,125,235,91,230,240,226,20,71,196,219,49,51, +170,205,228,136,90,245,16,234,221,4,231,243,9,215,77,67,108,242,150,114,55,36,233,215,31,58,190,240,65,121,118,85,242,190,215,25,219,203,135,24,46,127,37,51,208,57,180,48,103,126,96,117,119,177,219,59,64,146,51,152,177,46,140,232,122,147,53,104,11,179,123,89,250,108,133,175,106,162,157,144,228,166,255,208,65,221,121,25,222,226,33,114,6,218,120,57,26,137,65,186,151,193,35,196,217,129,224,232,198,94,240,192,92,101,90,76,28,217,17,81,178,100,14,106,61,56,67,128,16,159,179,61,187,21,79,16,104,36,120,15,182,80,23,34,152,9,61,239,4,248,92,48,61,147,175,94,145,215,221,48,47,197,134,249,136,212,121,2,42,26,46,149,163,67,105,84,217,138,188,90,73,170,65,142,123,13,152,136,40,134,91,112,178,146,212,173,112,239,212,24,82,101,228,248,194,200,238,143,8,178,101,148,199,101,26,206,105,38,178,136,22,78,100,247,47,177,59,220,138,25,173,121,29,143,201,42,254,14,45,9,136,175,111,102,61,103,43,17,176,8,71,6,137,161,124,95, +23,219,60,53,249,246,118,132,106,103,47,207,75,232,53,193,110,156,72,230,196,168,114,227,155,230,153,144,10,18,105,195,181,99,171,193,189,160,27,125,13,82,40,0,21,43,94,49,242,99,158,220,150,38,212,230,180,10,88,9,42,103,75,249,10,121,141,138,40,55,215,216,96,47,152,155,99,40,145,11,63,251,37,88,73,214,165,166,238,14,190,183,225,136,130,189,249,86,79,42,110,139,3,66,171,61,226,5,29,183,221,136,132,183,33,228,51,70,2,165,70,115,15,81,134,140,136,180,65,90,154,116,40,107,168,8,205,163,52,209,187,229,1,222,51,61,236,227,79,13,60,119,214,36,70,104,38,120,219,77,74,80,104,81,180,21,38,194,49,146,52,31,161,55,28,87,177,26,145,208,213,46,10,244,47,189,97,221,210,157,39,207,215,98,80,91,174,216,104,246,54,125,210,236,80,105,202,192,40,199,128,105,73,122,93,51,185,75,67,189,16,153,53,165,248,173,150,84,66,18,188,80,48,192,60,51,169,166,163,89,122,53,220,200,14,139,79,143,194,141,220,139,244,15,100,195, +89,142,23,36,16,86,126,174,5,130,187,45,28,220,164,210,80,159,119,248,241,233,94,104,65,188,7,74,94,60,2,104,51,16,200,225,245,158,30,123,149,130,130,85,218,68,111,200,209,129,116,239,189,6,48,98,137,153,0,167,122,98,246,119,115,252,227,202,131,121,29,74,193,152,199,218,85,218,200,163,194,171,40,155,136,247,234,152,173,131,205,162,105,119,43,7,60,211,8,225,16,123,61,144,0,21,77,68,220,122,237,31,128,230,1,17,147,64,232,159,65,232,39,28,135,78,44,26,29,101,14,114,196,96,130,92,174,93,140,232,226,93,7,223,31,28,90,172,191,132,47,116,8,186,209,12,97,29,188,13,31,94,149,34,125,172,38,88,19,75,165,247,247,27,13,153,130,144,30,243,130,91,152,91,120,239,209,162,46,83,23,218,250,158,250,172,16,139,187,214,246,53,41,3,76,136,140,89,121,141,202,196,162,14,27,109,240,74,3,36,28,255,64,231,167,144,106,166,142,70,95,136,92,188,61,188,76,128,196,206,208,17,107,225,76,6,152,8,34,47,85,154,126,154,19,166, +163,225,90,42,138,218,7,161,93,54,143,51,236,225,84,4,193,100,200,93,240,153,125,123,179,129,180,154,129,235,106,156,241,8,95,161,66,241,200,1,42,194,117,70,200,161,180,203,101,78,112,87,200,144,131,214,11,65,59,43,236,211,32,217,131,54,188,98,179,89,132,123,224,239,43,207,215,68,6,181,130,86,17,14,221,219,149,119,230,200,2,99,170,104,231,231,175,94,140,18,55,182,41,179,141,58,190,248,232,0,218,231,46,159,180,88,135,231,192,159,18,43,102,163,108,68,228,193,239,90,103,161,228,173,237,19,103,78,184,138,136,112,243,209,80,112,59,182,201,188,185,76,104,121,117,189,173,21,146,169,55,20,205,11,215,137,22,157,208,206,78,152,37,200,239,172,221,11,5,216,47,248,211,172,200,187,173,95,9,250,254,24,189,50,126,99,32,176,165,235,139,93,56,179,18,68,161,19,145,200,206,127,217,185,121,76,88,191,172,198,204,88,28,191,188,242,174,139,213,45,243,238,115,138,179,214,31,245,208,22,121,55,11,170,107,161,122,28,83,17,98,81,81,238,45,108, +251,182,99,117,179,5,20,123,184,110,39,111,171,248,85,44,237,234,154,142,64,50,78,159,139,120,181,87,199,202,196,174,64,23,199,98,105,92,82,174,163,160,88,55,246,120,112,121,51,34,39,7,59,24,168,137,128,200,141,196,232,101,170,17,88,194,175,192,26,254,254,167,107,62,156,69,90,41,101,81,153,96,53,40,206,221,216,5,233,193,86,21,149,173,25,161,249,67,136,31,87,156,234,250,158,145,174,110,246,177,183,3,100,202,145,74,135,35,51,188,45,210,183,171,231,49,62,241,17,158,177,89,223,14,239,143,53,15,27,156,51,198,220,50,31,251,22,125,201,141,103,11,127,16,108,243,58,219,126,170,88,34,145,126,199,240,112,182,168,122,36,30,228,96,97,214,170,102,12,1,179,15,33,108,71,120,223,93,23,160,200,229,230,66,200,135,7,66,91,185,240,250,25,108,223,11,219,214,133,1,173,61,119,197,57,211,34,22,179,31,48,66,130,26,174,119,29,60,34,125,10,57,48,130,38,170,160,141,33,114,63,170,108,24,175,15,43,217,181,175,112,51,51,17,198,220, +115,123,182,120,73,19,205,180,11,89,106,71,7,128,98,116,68,137,66,51,248,11,43,205,16,49,26,98,102,102,125,248,154,228,116,159,167,39,3,48,196,45,194,87,193,200,134,114,178,246,194,34,121,164,134,69,194,200,5,124,158,216,144,122,245,236,227,157,78,64,122,216,128,115,133,154,14,175,95,218,67,188,224,206,145,152,108,31,250,249,166,206,220,217,216,204,27,200,113,172,225,5,28,51,168,122,229,148,237,70,168,193,132,80,11,56,198,126,71,246,165,80,73,154,172,245,133,130,196,35,114,230,112,94,75,146,19,249,55,253,110,97,83,41,52,207,69,122,7,33,63,171,45,213,186,215,11,1,68,144,99,226,8,219,54,182,4,39,197,199,186,230,60,68,73,246,163,94,60,112,105,51,17,147,156,26,169,157,75,53,104,48,255,230,38,198,5,225,172,98,35,223,100,193,80,230,69,250,97,59,251,154,4,29,125,52,139,188,121,241,161,234,184,230,192,117,197,92,230,198,200,224,193,19,102,56,24,47,198,193,147,25,36,78,176,74,251,212,178,139,77,99,8,121,196,178, +95,239,90,67,142,203,1,136,226,144,179,66,248,71,71,12,81,233,232,229,81,67,200,47,147,90,223,138,9,246,123,97,140,169,41,46,232,0,28,115,115,148,81,232,252,67,62,13,47,146,62,216,115,97,149,156,122,102,19,176,116,13,49,56,78,94,218,23,135,81,57,54,90,188,111,54,135,220,97,186,26,203,15,135,140,95,30,205,223,173,195,74,212,24,155,82,223,54,42,99,79,15,105,208,105,123,37,242,234,144,146,221,88,237,67,73,171,145,169,111,150,150,98,211,162,235,117,177,143,92,155,18,215,25,250,199,16,164,237,208,2,179,125,20,198,110,219,41,83,225,176,20,52,210,140,22,146,190,207,173,227,23,238,248,66,31,65,172,134,42,194,28,157,128,27,69,53,138,58,62,42,76,43,58,223,250,80,226,157,139,133,169,76,87,232,199,177,30,227,164,249,141,175,184,139,203,14,104,120,208,128,124,58,183,149,223,229,193,169,107,15,29,196,119,214,238,61,224,57,32,139,217,113,94,208,59,156,177,47,194,200,167,127,245,183,127,243,227,95,254,245,191,254,242,55,255, +250,203,255,238,100,253,246,123,183,245,55,223,124,249,219,255,252,31,255,195,241,198,191,249,235,127,241,225,207,223,129,87,55,226,231,127,252,246,203,31,156,150,95,186,40,63,124,249,229,55,63,252,225,159,190,252,254,251,239,190,255,123,167,244,203,79,238,59,240,239,223,127,255,227,207,127,248,157,83,250,27,183,252,203,207,191,114,178,254,240,205,63,58,165,224,237,191,255,135,47,191,63,46,248,238,251,47,255,252,205,143,63,125,255,243,239,191,5,87,29,77,124,11,46,183,128,183,127,60,30,244,237,111,190,252,231,95,124,249,143,191,248,242,31,190,252,153,11,253,237,15,127,0,87,177,126,241,229,159,191,253,237,199,47,223,125,255,171,31,156,172,63,255,139,47,255,235,55,110,235,175,156,150,63,157,247,229,159,191,255,229,15,223,252,243,9,223,183,191,250,237,183,95,126,252,246,151,223,126,249,213,31,190,57,26,254,249,247,127,15,126,240,119,159,167,125,247,229,191,253,240,205,175,126,253,237,239,126,250,246,187,127,251,225,233,175,255,242,127,254,55,127,253,191,129,30, +255,205,255,244,229,183,223,130,30,126,108,251,246,239,255,246,203,247,191,252,241,155,127,56,218,253,220,244,11,240,132,47,191,249,233,219,31,156,162,239,192,99,190,124,243,155,159,126,6,121,250,234,15,120,226,111,190,255,238,151,191,254,221,113,203,143,127,247,131,91,254,207,167,35,255,133,219,223,125,250,45,250,240,250,55,255,244,65,206,143,191,253,217,205,2,63,253,135,239,255,228,215,207,127,253,63,2,252,253,15,223,252,95,16,254,201,245,79,136,95,92,232,95,255,248,19,104,255,51,70,159,214,254,226,107,96,63,46,255,238,203,191,255,247,191,254,238,155,255,246,237,191,253,203,255,229,47,255,234,95,253,213,95,253,229,95,65,206,0,232,27,20,2,57,163,239,33,224,159,165,135,218,167,93,46,227,137,179,194,1,235,32,70,112,162,12,236,106,195,54,245,16,72,192,49,183,224,175,169,215,8,28,14,214,131,117,16,0,2,17,143,39,235,252,89,187,155,19,39,180,217,212,126,215,181,154,15,86,173,54,153,173,207,206,134,221,77,14,119,123,118,5,187,124,185,123, +116,50,219,57,24,206,191,9,230,221,53,149,127,29,82,149,118,6,245,139,33,212,188,27,54,131,119,148,82,112,113,145,159,220,153,38,234,73,55,22,30,185,159,136,135,166,184,128,116,94,169,150,65,74,80,245,246,156,36,58,175,185,177,26,141,215,158,19,103,218,2,159,198,141,229,188,70,84,166,92,229,138,41,247,233,92,228,33,38,188,90,71,165,17,44,175,73,55,140,25,210,232,64,249,158,171,19,83,200,210,203,227,211,192,152,37,230,72,55,110,130,51,185,180,23,80,195,82,77,160,219,50,6,35,181,240,198,166,175,22,251,2,26,105,29,24,116,91,7,102,51,29,118,162,117,150,164,162,93,141,156,191,132,52,254,229,212,32,24,164,168,57,6,105,140,50,58,52,55,76,100,89,83,94,146,217,243,48,172,27,17,176,230,93,50,214,218,150,195,2,13,226,57,37,71,211,21,107,72,54,238,133,177,22,227,34,55,141,42,210,213,147,234,58,154,238,70,203,227,147,158,112,140,49,25,85,237,48,108,87,55,79,110,75,57,194,190,148,246,146,162,137,190,148,16,168, +215,91,165,36,24,68,39,91,123,109,138,102,191,239,72,26,157,105,118,127,233,72,38,61,184,59,18,22,89,27,56,154,181,250,221,139,49,153,148,9,0,199,56,40,158,42,56,89,82,242,177,52,222,67,87,142,129,49,110,223,55,207,156,133,166,46,152,229,24,217,218,121,254,238,221,98,34,8,115,175,182,43,94,33,57,228,208,178,143,112,99,32,110,224,55,163,178,242,147,63,184,26,206,87,143,253,201,67,182,88,143,227,209,137,26,237,189,59,223,61,154,114,233,192,117,36,227,61,191,176,153,235,210,151,249,51,41,122,144,192,149,70,170,255,144,186,118,221,230,181,229,21,195,230,53,222,144,42,114,241,94,221,123,192,251,225,211,219,1,140,177,228,72,236,190,123,67,226,250,18,6,9,96,130,13,248,38,151,120,45,90,20,75,83,236,238,177,17,84,137,240,90,184,37,145,54,101,206,55,24,159,73,165,41,108,47,169,153,228,83,169,210,25,174,151,119,64,108,79,154,70,119,52,177,98,53,220,166,35,13,71,84,249,156,127,114,133,243,173,218,100,70,175,107,158,205, +177,45,5,88,204,178,103,218,23,215,204,206,55,92,116,96,139,220,125,45,48,49,183,181,244,174,48,70,15,172,206,133,27,19,78,160,121,34,236,203,55,140,200,6,254,204,184,53,48,38,147,167,253,94,18,30,145,87,102,248,115,159,73,151,188,46,186,12,117,135,207,125,172,220,219,76,62,107,243,86,237,206,13,227,4,139,52,210,183,177,145,147,100,134,173,243,223,53,145,69,125,108,106,206,214,35,98,1,170,56,159,41,114,74,56,65,146,96,117,240,152,174,223,80,11,37,201,193,67,115,56,151,160,109,188,197,37,82,131,17,201,154,203,219,58,132,118,237,155,28,6,74,173,193,133,34,208,122,138,122,236,241,32,216,189,10,40,59,178,13,135,31,142,138,168,115,219,155,15,232,220,197,128,126,195,20,216,31,80,221,188,168,142,92,245,229,52,10,155,212,23,106,239,45,194,208,45,171,26,240,207,99,50,210,67,245,101,158,244,103,138,74,235,139,221,106,76,105,85,57,174,86,18,51,154,125,70,21,247,172,114,167,137,168,58,194,194,182,106,140,161,83,34,77,233,62, +107,18,89,204,155,167,151,52,119,200,210,218,138,70,190,192,213,144,94,111,124,185,203,118,33,90,8,81,125,75,205,218,186,242,4,151,27,106,209,55,79,4,114,5,29,181,60,44,244,76,122,53,97,49,226,247,164,117,63,82,34,164,221,22,76,194,67,223,31,55,71,157,30,185,56,19,26,235,20,98,188,1,32,5,111,227,230,193,152,212,47,94,249,48,136,218,196,97,22,45,46,57,1,170,71,39,101,82,226,77,245,171,206,95,35,184,121,254,10,55,32,65,79,25,9,213,40,204,226,186,69,77,36,86,141,215,191,1,15,112,167,173,54,161,216,114,216,116,151,189,39,232,130,151,153,86,27,154,98,52,59,189,84,222,251,174,41,13,252,182,49,68,201,179,84,201,214,5,111,255,192,210,50,91,179,87,93,198,212,23,15,116,2,178,185,156,211,132,140,155,71,210,236,25,211,213,244,19,196,156,46,203,31,40,227,126,153,194,95,236,89,175,13,33,51,43,167,225,123,80,69,66,81,203,157,201,226,7,238,141,133,68,59,180,117,61,219,98,171,162,198,165,79,116,220,194, +86,220,12,222,117,33,219,251,161,184,186,216,79,242,133,88,136,46,222,118,242,251,177,188,51,97,200,67,107,109,102,247,236,233,198,24,82,81,104,119,169,174,179,186,205,215,11,154,111,145,202,20,246,139,66,77,154,152,57,181,132,80,126,84,154,244,94,74,187,157,19,57,213,211,115,187,70,221,67,10,89,199,174,186,26,187,76,152,231,58,139,48,44,221,219,173,125,187,172,111,61,16,103,116,116,114,227,139,74,23,130,236,156,191,34,163,82,247,99,82,20,117,149,243,221,8,24,217,160,166,119,86,191,9,204,101,40,180,7,120,103,172,162,57,123,201,100,32,180,66,170,69,183,120,241,42,147,22,22,219,206,6,179,0,85,186,76,109,124,70,75,95,222,126,63,171,22,18,3,67,114,53,84,170,134,106,125,149,94,173,201,242,111,99,57,188,70,220,232,151,183,181,101,76,111,86,17,33,146,101,127,42,189,201,73,197,12,5,207,42,105,149,140,33,237,98,208,237,74,104,201,59,120,210,223,206,73,117,132,52,223,59,208,134,94,116,161,87,171,178,96,190,196,4,36,108, +198,109,209,42,121,236,89,237,209,151,162,15,147,215,170,187,114,119,136,216,30,19,107,230,226,33,190,57,52,25,43,39,156,97,37,204,247,37,84,115,110,205,79,6,57,57,25,209,180,142,247,103,40,220,42,93,220,101,157,51,145,59,248,238,98,24,83,249,38,181,106,19,12,178,149,153,176,137,174,91,72,59,111,233,242,89,133,34,78,80,189,252,197,56,104,93,199,19,107,74,40,190,159,11,48,77,198,80,188,172,9,118,51,86,95,123,49,150,46,240,117,5,190,183,104,100,39,11,110,102,193,187,215,69,5,247,200,100,56,48,137,130,19,170,201,220,139,11,187,177,245,132,237,7,30,206,213,229,81,147,36,229,150,139,138,5,186,195,72,33,50,173,254,170,164,138,212,81,209,37,162,183,9,177,119,65,39,109,174,176,204,228,94,237,217,118,30,219,56,12,161,59,175,3,234,128,203,13,242,91,255,180,188,120,161,29,114,217,116,17,245,178,181,23,43,165,146,57,99,156,22,115,182,241,78,187,50,25,128,97,76,167,92,13,105,212,215,166,197,224,81,201,124,92,179,214, +169,121,8,76,211,177,123,154,85,182,245,86,179,99,135,168,174,188,172,243,118,68,210,2,189,193,228,34,234,122,7,175,221,95,166,246,233,151,198,97,90,29,210,109,163,177,97,74,11,49,196,203,186,225,208,99,128,117,254,238,224,169,174,19,88,99,170,32,29,230,173,182,65,102,239,222,223,95,210,16,141,30,86,66,51,62,174,253,141,235,85,137,119,104,220,232,105,214,252,163,221,216,149,86,41,135,102,113,219,155,190,203,49,113,179,217,185,127,116,2,57,172,74,186,105,199,164,11,94,86,43,199,105,135,185,250,107,105,224,126,45,61,151,56,245,252,91,209,90,121,110,191,198,209,78,241,179,249,189,91,146,21,107,73,39,53,1,200,231,86,59,9,126,176,210,51,227,74,133,195,216,91,87,61,167,211,179,148,66,155,194,97,101,129,101,136,119,229,242,59,195,170,47,173,247,142,183,20,134,52,13,109,122,226,235,209,93,74,195,68,135,167,157,122,33,109,206,81,77,253,9,113,158,35,3,61,156,130,90,87,83,14,201,247,76,53,25,161,72,57,81,63,209,153,186,59, +151,42,209,102,191,210,45,227,239,238,130,47,154,210,67,76,39,185,210,207,11,212,3,193,2,248,18,236,222,53,223,42,111,153,155,171,201,166,4,173,33,97,59,155,169,61,240,245,93,129,68,85,117,211,130,220,50,12,185,114,41,67,111,45,87,22,204,117,105,208,68,198,197,135,74,83,106,138,73,115,215,207,254,213,187,102,131,47,172,245,186,237,238,106,28,47,181,37,150,70,104,72,108,241,66,198,59,205,187,175,13,123,31,6,201,229,220,6,216,51,222,57,78,191,199,185,221,94,155,26,134,139,117,38,60,114,92,160,107,25,57,105,149,102,206,151,121,138,14,107,42,162,21,86,221,104,184,208,57,18,16,6,94,163,122,112,177,9,150,117,99,170,221,245,159,49,27,63,109,222,134,230,122,49,84,239,102,146,236,87,85,61,142,46,107,124,230,103,46,100,234,43,110,182,138,9,104,23,185,100,127,64,169,89,89,145,64,94,23,137,47,18,43,61,250,146,151,10,172,154,226,136,186,241,136,200,121,28,61,154,114,35,31,9,86,93,33,46,14,188,83,218,93,126,79,70, +215,189,64,107,21,232,198,147,143,152,227,233,247,17,173,39,116,51,251,189,104,89,89,184,214,95,136,194,68,85,2,210,149,251,168,7,213,59,246,137,244,110,149,132,75,97,188,18,149,246,81,83,131,76,50,81,15,196,218,143,102,20,182,45,127,204,247,58,173,37,189,79,152,232,162,47,228,4,195,180,195,206,69,17,64,182,59,24,90,86,245,163,105,32,125,238,112,22,231,244,156,241,124,40,241,0,150,220,235,238,222,19,25,134,174,188,43,77,64,44,33,91,3,217,189,143,184,169,109,115,82,88,47,71,246,231,2,198,182,182,210,149,158,197,240,210,179,168,100,151,204,245,6,94,213,60,168,153,230,139,245,246,141,55,207,124,218,145,225,19,155,116,61,147,186,115,1,212,64,244,90,29,2,100,192,112,72,226,243,128,114,53,171,154,181,41,181,46,167,20,163,246,111,3,168,168,137,175,109,72,246,18,162,64,194,84,11,55,178,126,72,125,104,198,52,250,241,163,110,89,76,50,43,124,213,45,185,250,154,66,111,84,251,146,159,162,115,143,217,177,38,106,69,101,236,90, +72,100,21,218,112,60,244,141,43,229,229,65,201,170,152,14,118,15,176,109,98,116,131,210,76,62,111,203,108,35,101,65,4,188,223,143,214,247,3,41,84,32,51,122,120,193,75,169,212,238,12,96,224,126,64,148,235,9,99,168,7,126,79,27,98,248,213,216,92,205,136,123,234,41,208,133,38,77,51,75,222,83,222,218,166,108,63,107,122,201,170,35,217,121,245,150,151,98,243,66,254,135,6,248,164,56,217,223,31,34,67,105,118,240,54,2,235,93,150,49,75,111,12,87,158,78,166,144,120,197,38,5,189,133,172,56,236,82,77,226,193,51,230,96,20,193,31,171,186,120,21,157,205,235,204,114,12,194,98,100,203,7,211,189,105,214,10,76,159,235,50,35,138,88,210,218,141,114,147,211,104,67,149,6,89,239,80,148,151,6,54,243,185,172,172,2,222,157,190,23,34,86,138,98,68,140,236,241,52,37,126,182,205,82,57,52,154,152,143,246,72,57,224,182,190,77,4,228,15,143,47,0,202,138,33,95,164,194,163,158,46,112,69,212,47,61,234,60,187,209,82,71,250,217,44,197, +19,87,136,91,11,139,75,189,72,219,67,156,144,167,231,246,181,15,248,97,201,145,155,151,137,87,65,181,179,68,45,41,219,234,102,189,145,39,193,239,180,248,84,91,203,106,107,29,93,89,79,41,74,82,146,105,197,70,144,219,200,180,5,26,163,214,199,123,93,138,221,236,117,169,237,230,15,124,209,90,26,160,60,103,200,166,110,12,69,109,99,135,41,193,142,144,195,77,31,33,234,138,181,249,182,51,207,38,139,100,32,157,208,235,102,205,130,190,63,227,234,250,82,74,178,92,235,99,49,1,57,69,105,216,174,93,68,67,105,140,125,162,196,171,142,173,129,81,232,180,213,18,83,116,149,186,100,22,218,61,26,180,182,218,92,183,125,128,135,72,101,138,7,236,197,149,87,92,82,234,205,251,86,68,100,122,222,90,122,46,82,46,182,46,104,237,150,57,245,106,117,166,131,180,223,237,247,164,72,10,10,177,30,242,222,0,96,223,198,116,117,93,73,87,18,45,21,40,25,42,188,172,110,83,217,114,114,96,133,22,54,218,172,49,132,54,43,196,221,250,227,118,71,208,56,67, +34,187,205,242,146,131,242,207,110,222,111,162,92,38,234,225,188,39,36,219,40,85,50,174,169,55,136,66,74,150,238,173,199,223,108,90,254,141,23,61,111,178,218,115,71,123,158,158,204,230,148,104,223,146,44,164,55,220,180,73,144,139,152,38,36,73,74,64,48,23,77,205,9,187,249,160,209,160,248,183,73,217,218,99,55,52,88,251,40,194,80,8,108,33,135,126,143,241,110,9,26,22,250,102,105,32,162,24,197,131,252,62,216,244,246,131,172,220,173,30,126,134,164,58,145,247,157,243,218,221,70,50,227,103,202,235,39,168,142,217,153,221,215,115,15,221,224,243,99,210,20,149,154,146,224,92,112,179,42,5,199,122,98,23,73,78,94,169,95,121,104,141,148,218,65,114,25,45,36,35,78,84,52,107,222,40,107,88,138,186,47,72,151,98,150,26,179,212,210,49,105,37,179,185,228,164,210,229,181,158,6,219,163,180,150,157,176,241,88,111,246,213,15,222,117,102,255,110,157,249,104,214,160,100,148,27,76,44,173,240,121,175,32,22,227,151,11,129,198,93,2,153,89,21,56,190, +28,183,245,168,235,236,187,52,142,138,118,83,29,7,67,94,147,37,106,77,41,181,130,183,169,156,143,196,223,221,58,85,10,241,249,112,234,226,27,218,235,193,104,154,109,234,215,214,196,123,225,30,217,37,68,31,100,62,85,97,65,240,100,72,134,195,195,154,81,100,245,249,47,185,78,138,116,96,14,102,88,154,66,100,27,103,70,76,117,96,191,111,94,51,244,205,93,127,17,204,54,169,70,81,202,176,215,77,106,133,151,153,115,62,242,84,117,118,67,21,213,169,170,3,69,11,113,11,42,126,31,247,39,180,107,85,123,130,25,251,104,98,169,41,26,145,44,248,57,173,224,222,167,123,222,244,186,190,177,203,235,123,195,77,158,36,53,131,85,187,117,247,240,115,183,114,232,111,59,80,44,191,132,163,246,25,224,2,39,102,84,133,170,203,253,112,69,246,204,78,93,222,72,124,196,109,115,93,58,199,185,0,90,232,65,153,233,221,70,248,55,7,34,114,70,67,145,48,232,193,58,164,222,54,132,24,125,253,81,23,20,166,80,11,235,250,44,245,102,81,234,236,208,215,21,117, +177,37,210,198,202,202,110,106,232,132,211,185,155,44,178,40,119,91,88,143,227,101,178,62,108,81,95,149,171,219,234,110,252,224,105,140,103,248,12,37,8,214,25,50,85,215,70,4,70,211,194,210,98,76,101,219,221,84,202,60,247,73,123,198,198,180,159,170,121,30,23,225,160,112,130,37,90,194,34,98,180,226,212,107,117,115,135,167,104,132,157,5,181,135,28,88,99,252,192,69,167,77,162,142,130,182,242,85,215,20,90,249,246,205,101,118,55,227,44,226,216,76,221,45,109,229,210,37,93,138,169,13,61,251,102,168,177,173,114,163,55,32,37,81,163,47,25,44,40,137,203,65,182,92,188,182,55,50,182,250,230,218,48,74,232,234,47,140,27,129,108,91,46,165,234,5,139,203,88,25,63,251,182,37,163,164,48,212,77,214,102,93,91,111,44,214,100,183,126,67,194,237,38,135,159,164,45,229,14,53,128,154,124,210,170,98,146,122,164,36,86,75,92,28,250,236,54,209,95,150,146,198,204,209,128,46,144,235,200,224,124,211,91,37,238,45,217,196,69,30,208,77,12,179,71,179, +22,58,231,143,68,7,10,236,208,162,119,30,67,207,218,253,75,164,59,179,36,233,111,52,234,251,188,54,207,188,71,86,77,198,78,234,46,81,172,119,183,22,45,253,214,96,221,249,83,232,166,72,22,176,196,120,171,41,190,105,146,208,26,244,135,228,186,45,209,210,57,42,76,231,109,240,80,24,15,173,133,167,93,30,128,93,120,168,190,225,66,102,45,207,168,11,187,161,11,153,236,146,103,179,234,34,133,29,154,155,249,178,37,15,52,172,185,238,102,32,235,239,232,141,190,170,44,71,47,137,220,148,242,54,90,199,112,94,99,85,255,202,119,231,207,221,248,115,201,162,55,201,60,208,121,77,98,227,177,59,54,176,115,175,227,125,242,118,215,122,163,59,221,186,197,97,177,37,233,159,81,228,30,130,153,185,180,99,144,121,192,100,187,77,246,36,3,149,189,160,146,233,49,200,61,209,231,90,88,102,54,165,232,208,197,188,24,66,45,82,96,201,186,163,46,238,56,218,109,107,169,49,149,102,116,154,49,203,9,49,208,97,161,193,46,26,206,176,72,219,62,187,219,21,181,78, +70,132,210,52,10,226,104,86,58,253,216,139,37,192,71,239,132,85,154,158,106,211,169,70,98,129,78,164,68,252,68,137,150,77,136,234,43,191,7,214,221,24,226,37,162,37,47,69,55,60,118,205,125,14,213,109,114,250,178,220,90,78,122,187,205,236,102,190,193,68,150,52,151,169,27,219,164,145,133,54,165,126,128,17,191,193,166,23,131,50,125,79,164,207,214,253,89,97,210,233,202,95,30,167,212,46,204,72,84,156,189,142,165,181,156,193,48,42,103,178,220,92,59,105,142,21,163,193,190,231,110,66,202,142,121,141,172,170,153,85,15,134,74,1,214,38,121,82,249,186,1,148,113,175,158,220,222,47,60,243,154,155,200,97,84,110,138,183,208,67,73,101,124,1,234,196,125,122,220,226,28,30,130,12,141,193,54,84,78,42,244,173,154,222,208,169,243,43,131,232,194,34,232,163,51,212,141,158,95,222,204,225,94,18,153,219,188,118,38,50,44,199,230,41,100,29,90,48,90,78,126,8,62,122,216,102,44,8,186,8,62,190,145,162,251,124,73,132,98,20,48,219,13,135,40,186, +126,87,106,8,150,217,187,181,251,26,40,77,239,175,28,153,132,115,220,217,174,179,97,129,137,223,228,199,238,187,170,174,236,69,142,109,107,100,124,231,56,113,183,129,109,76,134,210,109,108,39,75,74,159,158,85,230,97,39,0,219,102,239,168,166,78,179,47,234,34,30,181,211,220,122,208,9,84,30,105,81,137,82,119,184,189,13,149,209,205,151,7,143,174,154,51,236,66,82,247,125,216,90,57,191,97,245,7,195,131,251,214,123,55,31,6,239,186,65,140,154,91,11,232,26,126,109,127,68,174,134,104,193,108,215,115,88,178,251,47,186,152,141,42,182,25,30,157,166,107,157,91,147,181,151,137,69,191,110,98,163,61,90,169,236,135,106,41,80,202,101,68,89,220,77,165,197,216,86,218,182,151,215,22,121,222,239,146,155,67,189,97,3,220,52,59,250,140,191,253,162,158,121,31,197,154,134,124,107,221,85,170,164,220,134,140,25,40,218,85,91,228,41,204,191,219,52,196,131,101,111,209,154,202,14,98,27,33,57,144,19,178,11,206,130,193,1,102,241,23,17,140,96,153,84,60, +247,132,108,145,210,217,100,155,73,140,95,118,71,69,198,124,100,66,204,164,168,8,26,246,121,224,208,11,100,41,170,238,186,158,234,204,74,241,212,35,103,126,232,104,140,24,209,99,191,127,211,205,186,83,26,74,97,51,139,28,196,49,20,86,225,232,221,70,213,108,139,120,30,37,102,115,243,67,252,185,255,128,202,213,219,212,213,162,208,55,117,109,252,190,136,98,78,25,122,131,225,14,97,153,157,97,230,169,69,46,115,216,81,42,134,238,184,107,170,109,226,207,220,187,156,219,208,14,226,149,183,218,81,243,150,119,163,94,43,73,110,168,32,25,122,40,29,40,201,0,150,67,169,182,214,26,127,108,221,231,79,219,135,134,230,133,56,171,74,96,221,231,116,18,251,38,183,93,164,161,118,99,249,126,127,159,170,120,9,100,29,223,163,173,186,147,113,77,156,142,33,195,111,172,245,7,226,212,38,204,216,9,211,178,124,88,40,181,204,188,240,222,183,160,233,74,169,150,102,23,245,208,208,237,18,63,105,235,74,88,82,109,105,207,238,86,234,175,219,1,97,209,172,58,141,77, +68,144,173,12,233,67,200,162,37,221,158,205,146,179,238,195,70,144,90,144,124,66,171,82,108,212,114,196,198,67,3,205,25,82,147,51,134,164,83,204,92,63,22,212,93,50,80,48,68,187,38,169,220,210,233,5,2,38,238,131,10,40,89,230,75,85,203,214,45,60,130,15,160,227,105,239,113,173,230,104,105,224,51,223,161,71,144,38,98,58,88,50,144,205,90,218,185,225,12,214,79,84,7,18,61,253,189,25,96,246,31,229,59,109,98,46,17,214,39,114,184,177,30,119,73,204,38,223,155,207,123,133,45,83,164,35,90,24,41,24,205,76,86,219,220,133,68,70,74,252,226,86,181,218,191,182,239,69,188,151,27,225,107,140,79,123,189,11,63,18,205,231,124,52,83,252,122,113,151,156,170,165,109,107,251,190,116,27,28,196,205,70,75,3,69,121,233,38,156,94,14,252,1,225,207,2,179,219,200,45,81,232,101,143,80,99,249,52,239,95,71,118,90,107,202,222,244,1,118,246,178,186,223,62,241,70,68,60,196,244,6,143,44,153,118,69,83,158,64,89,98,15,70,46,51,53, +205,229,222,119,198,177,71,62,187,189,162,95,221,204,122,3,247,98,118,59,73,73,109,187,190,49,86,46,68,67,139,108,183,21,193,141,141,252,246,212,20,134,153,50,217,162,101,223,87,193,249,175,62,78,116,31,154,155,171,53,244,75,67,112,33,17,83,148,21,70,220,171,137,86,40,65,28,218,39,167,92,23,181,86,133,165,247,140,230,91,83,109,62,189,221,24,116,107,129,148,252,177,244,152,149,230,101,172,43,201,118,140,12,63,49,86,176,198,197,129,112,133,226,199,72,251,199,199,41,65,101,17,168,72,155,231,51,212,57,53,79,55,191,149,223,240,23,164,56,218,166,89,166,73,168,247,115,106,81,63,234,194,245,186,189,69,30,194,27,6,22,27,166,59,175,105,25,98,27,40,18,57,127,161,221,108,200,227,181,132,238,48,123,31,178,98,137,188,181,66,152,224,157,84,104,153,112,66,215,174,214,54,61,42,198,224,52,180,221,115,113,64,194,200,207,247,45,106,48,146,110,226,136,213,161,41,189,220,22,76,195,248,13,237,13,155,111,236,60,17,217,165,59,213,227,110, +99,240,152,95,63,55,178,244,177,167,8,70,118,233,145,33,109,197,189,124,21,33,243,60,57,169,221,16,36,18,23,161,101,200,56,122,81,87,23,52,98,12,85,179,52,205,211,182,164,19,127,181,25,139,186,189,99,134,218,71,171,147,10,99,35,221,42,60,239,0,118,35,219,10,155,49,182,109,90,90,190,167,38,112,198,52,179,212,5,7,168,189,163,136,209,217,54,187,155,185,238,112,230,207,108,151,225,167,139,11,148,44,212,220,243,131,143,204,225,162,109,124,229,92,236,137,93,135,48,245,60,223,13,170,111,51,121,168,243,222,237,212,138,242,96,239,189,249,92,163,15,131,131,213,48,201,29,12,131,189,245,166,8,147,13,177,195,109,105,64,198,12,49,157,67,96,31,232,23,239,131,197,29,249,209,187,79,56,242,249,82,114,165,100,198,213,29,187,165,207,136,184,43,207,23,240,236,51,41,174,213,23,227,21,57,201,28,9,86,31,60,248,150,160,22,149,63,228,206,50,36,79,55,191,41,68,54,36,164,167,104,242,22,105,143,239,230,2,103,168,127,159,195,87,193,28, +9,89,52,43,4,77,222,164,58,167,9,120,20,217,131,219,88,219,139,60,252,73,88,231,166,247,80,155,113,104,103,228,143,156,13,139,45,162,1,27,195,197,116,157,23,116,207,96,40,189,76,5,55,222,229,35,59,247,6,192,62,161,222,10,165,112,103,91,127,77,195,231,183,36,95,150,228,24,217,146,175,123,25,124,102,198,153,178,151,86,182,51,212,134,3,184,119,70,89,9,56,61,138,59,119,79,47,183,210,248,67,81,115,201,160,36,147,43,220,99,80,165,165,59,141,201,235,238,74,109,92,163,196,178,150,4,156,125,108,212,138,174,195,201,82,194,80,172,89,82,102,19,196,227,97,33,104,75,15,228,14,22,25,78,237,103,85,196,78,93,182,188,149,69,147,196,49,24,7,102,178,48,234,150,9,5,40,165,235,12,94,35,202,17,122,59,238,108,212,198,54,171,163,65,26,97,33,170,197,219,61,121,39,121,31,184,169,252,56,113,110,170,142,132,205,245,123,213,115,209,143,135,98,74,195,48,134,2,86,23,6,184,12,223,210,144,182,236,129,61,34,213,46,54,142,36, +196,136,32,68,2,166,36,116,52,65,196,67,97,97,19,145,88,211,122,154,89,154,17,2,94,131,47,2,170,86,246,118,201,69,219,137,113,6,254,206,227,197,165,94,102,33,15,15,126,173,189,188,212,216,217,120,162,151,235,142,2,151,174,44,19,207,244,162,184,215,109,168,43,204,150,218,57,107,60,233,54,44,131,225,156,30,102,117,140,39,218,43,147,112,37,141,241,162,166,232,40,244,150,152,151,190,57,184,175,102,195,93,244,194,130,194,113,0,194,72,47,9,75,60,18,255,251,89,143,79,116,186,226,115,100,9,133,126,123,245,66,72,46,41,89,209,33,153,176,21,238,155,95,141,160,178,177,21,216,155,111,185,185,94,234,144,238,44,254,97,69,36,211,244,135,2,35,127,197,80,91,16,52,222,176,162,186,232,44,214,84,88,27,42,156,46,57,72,111,171,226,175,101,203,8,5,158,171,135,235,217,172,139,40,48,47,88,110,137,118,4,76,65,127,69,77,103,73,132,2,149,85,1,44,149,125,25,98,100,245,2,96,14,199,229,13,176,165,119,151,212,216,231,142,11,177, +223,160,121,71,229,99,43,95,248,158,142,2,66,68,134,168,191,54,202,25,52,75,227,202,44,107,110,104,182,39,118,139,185,36,44,116,136,208,52,205,133,59,170,216,115,7,192,52,5,15,141,170,250,50,138,50,235,84,88,3,28,207,131,156,201,192,81,116,180,238,57,156,140,190,148,81,60,156,229,122,195,76,144,131,45,210,67,144,98,174,123,81,19,65,195,7,46,220,184,46,162,20,246,102,122,141,157,78,212,207,218,214,104,173,19,55,134,186,78,175,67,153,204,11,234,18,9,166,35,198,75,250,110,158,70,133,26,203,19,210,57,185,47,107,12,249,8,29,147,52,225,114,250,1,224,80,47,32,40,112,171,169,82,159,200,158,0,75,181,177,156,104,178,42,74,22,144,192,49,135,27,65,84,226,27,9,219,4,56,52,25,164,73,131,128,55,102,167,67,213,246,38,146,147,191,38,46,197,244,178,238,30,51,128,58,83,220,69,73,106,166,192,207,197,45,161,101,117,149,238,45,163,192,12,28,14,105,77,185,69,0,119,118,39,190,33,45,210,159,20,87,41,236,89,17,94, +73,219,222,136,203,229,77,32,91,134,110,115,6,37,29,228,153,29,50,171,88,7,75,20,80,184,176,67,46,254,210,114,213,178,163,168,120,1,160,241,66,60,220,105,56,203,108,138,117,81,128,140,15,83,157,109,168,172,248,138,98,150,93,79,88,78,12,192,120,96,151,97,51,138,11,91,183,124,68,23,137,206,37,78,239,227,212,52,32,219,149,44,68,95,245,237,108,187,159,73,159,177,78,40,87,226,144,144,133,229,51,104,101,147,100,183,207,207,135,219,125,251,128,125,97,162,184,125,48,252,46,2,91,138,243,114,225,215,55,95,133,250,192,5,133,202,245,19,43,184,86,113,138,17,69,164,133,94,132,125,104,144,99,133,24,81,122,158,27,101,44,79,142,209,155,194,188,186,144,217,159,155,54,65,154,137,208,115,113,240,208,92,92,58,99,150,169,231,136,220,40,194,98,46,223,113,228,55,98,158,203,68,156,235,185,76,56,201,129,211,140,130,78,169,158,25,6,112,102,253,149,18,37,43,135,113,48,106,52,12,40,80,160,1,129,198,174,200,50,165,138,60,48,201,35,225, +14,148,19,167,198,151,169,112,135,157,5,39,75,245,23,0,100,114,143,28,64,99,71,187,16,208,174,94,132,0,16,24,81,11,122,3,131,246,155,154,60,144,133,3,168,178,187,130,200,132,125,16,7,110,228,117,160,58,97,240,10,158,40,44,39,133,136,34,245,156,204,134,39,8,48,232,5,129,163,97,222,195,160,77,77,51,15,168,143,71,161,193,179,202,18,184,227,120,150,84,143,2,34,144,201,43,138,11,143,34,1,112,115,92,136,144,28,55,195,111,9,154,227,102,13,243,58,14,110,238,105,225,52,130,179,6,117,130,128,32,239,71,64,66,4,14,56,2,58,131,33,161,77,130,186,60,191,100,223,141,222,90,82,133,152,73,128,201,49,78,63,0,54,177,211,17,38,197,137,166,156,189,156,56,1,83,146,225,73,36,0,113,94,157,35,234,62,64,140,120,5,130,109,61,188,1,39,1,39,135,202,74,254,145,96,155,139,229,234,194,242,68,178,99,4,186,213,134,106,152,173,59,226,116,215,61,187,192,32,162,0,49,109,191,69,34,1,210,5,171,1,133,242,192,245,53, +8,10,98,118,141,50,118,7,14,118,98,33,38,36,159,88,128,215,189,71,22,174,122,80,188,9,33,67,189,218,191,222,79,8,211,31,247,121,136,19,75,102,162,137,0,156,112,170,71,210,83,192,11,46,201,146,8,126,228,192,65,37,204,20,6,56,243,1,195,35,197,152,35,152,59,34,174,45,199,183,40,68,88,167,124,67,224,29,121,181,128,188,50,97,0,115,82,198,65,159,86,8,17,133,0,1,237,189,129,101,139,198,60,115,246,28,69,37,252,228,97,47,51,186,2,205,226,32,70,181,22,252,21,6,62,247,128,1,125,251,244,63,12,241,127,4,148,133,252,8,232,181,158,29,62,74,8,166,68,97,142,18,58,7,53,196,1,93,190,17,84,136,91,94,24,87,57,201,203,202,38,31,105,99,194,75,52,40,120,108,20,104,95,64,53,246,17,10,243,17,15,142,61,115,229,98,196,170,138,207,184,95,29,227,126,63,112,176,224,186,227,185,75,42,139,176,15,113,25,108,38,130,120,180,114,97,255,208,239,82,247,148,60,146,177,205,148,25,27,236,195,129,255,245,254,225, +220,113,105,55,160,117,246,136,208,14,242,248,12,65,61,65,119,21,95,13,196,173,39,128,32,213,25,162,26,214,185,33,72,163,128,67,142,205,189,162,178,55,10,56,175,102,71,216,118,234,131,225,196,47,202,133,129,51,98,224,218,99,82,132,28,184,248,233,60,63,139,9,106,158,252,54,68,189,89,57,39,143,230,112,198,209,163,243,70,110,36,58,110,60,87,184,130,248,221,171,3,114,98,201,10,31,59,142,64,202,12,243,41,143,70,58,171,211,156,91,77,151,2,215,135,252,150,66,1,226,164,48,251,33,117,210,159,101,127,247,36,240,148,68,101,196,81,192,142,82,217,241,33,48,161,61,91,214,195,25,194,242,87,253,66,66,194,211,138,138,67,112,76,216,10,151,184,149,28,3,129,59,178,13,242,192,63,242,192,56,99,234,142,162,25,225,63,120,2,53,99,66,28,163,11,16,175,182,176,99,26,15,98,14,6,225,40,213,43,86,195,193,0,77,146,143,167,50,236,56,96,20,36,166,71,26,46,146,184,61,213,15,61,152,86,91,60,192,36,29,55,111,241,176,14,152, +87,218,50,83,195,180,131,133,2,161,132,67,24,194,19,178,51,63,128,61,34,131,129,102,46,64,100,20,80,7,102,249,167,14,138,31,245,137,9,31,22,62,210,110,148,161,159,232,118,245,36,75,236,17,217,35,64,52,31,11,140,11,140,190,9,228,140,114,44,62,101,26,146,3,230,36,50,59,194,112,65,186,68,82,28,49,237,69,93,233,202,82,120,234,67,151,35,4,241,131,208,240,18,117,44,39,249,8,160,59,249,5,3,253,162,128,57,132,6,171,69,25,141,131,157,81,99,35,84,49,246,153,95,242,114,228,163,238,225,83,118,144,232,70,174,18,110,143,91,146,165,69,242,1,75,130,95,90,78,134,217,210,165,229,120,244,160,229,184,196,229,70,200,207,251,243,37,252,68,232,61,209,12,128,176,95,239,143,197,10,24,101,117,229,93,55,237,27,18,94,63,234,128,3,58,252,136,87,213,49,60,30,164,152,102,236,247,68,236,51,137,64,248,88,192,114,248,190,214,195,50,239,168,80,41,149,184,52,39,67,168,207,250,123,87,134,31,203,18,146,157,29,1,32,142,187, +109,3,101,150,231,230,212,63,225,192,156,112,164,63,232,59,119,151,0,108,119,105,21,195,194,31,5,190,74,231,125,213,107,232,84,72,166,140,19,80,237,180,1,53,140,247,138,153,176,249,1,228,169,225,80,31,129,60,131,116,221,129,64,186,96,174,32,246,27,58,89,35,165,163,109,201,79,222,108,31,117,144,9,191,180,157,131,10,135,75,97,194,182,22,142,177,29,16,242,101,244,179,47,152,95,28,184,83,26,208,97,142,153,221,0,118,204,16,11,182,121,58,222,38,67,192,219,142,99,41,57,222,134,56,236,175,6,30,8,167,13,189,5,203,198,113,197,232,88,199,183,0,32,59,169,117,11,76,79,81,5,60,132,219,15,190,56,142,234,137,175,170,166,252,14,194,140,121,71,168,61,31,244,21,114,116,118,255,252,53,255,246,231,213,147,202,29,156,63,241,24,249,228,81,120,204,60,168,30,142,21,131,202,165,30,147,234,66,132,80,156,210,206,201,188,58,117,193,44,147,122,236,130,160,182,71,31,105,199,248,236,147,27,198,177,126,6,180,102,38,56,215,108,149,127,204, +47,48,21,78,58,140,44,149,167,196,134,192,109,209,99,98,223,28,73,99,127,237,191,54,192,145,57,149,5,199,159,244,203,252,212,47,238,228,105,12,216,220,126,230,229,238,83,191,123,28,140,69,141,129,9,135,35,186,200,3,199,238,143,249,97,69,158,125,228,7,35,254,81,78,54,159,60,221,57,246,95,253,85,48,142,134,171,121,224,184,13,5,63,110,99,192,29,145,227,161,233,139,175,245,182,248,137,71,97,34,125,212,9,81,15,196,5,198,6,15,6,199,161,150,34,160,9,129,112,14,18,166,63,209,81,32,156,130,160,41,235,78,121,217,112,244,138,13,176,55,60,150,73,159,186,132,166,221,167,134,49,69,205,79,117,18,153,83,156,230,6,50,24,222,222,231,60,98,250,90,95,245,49,150,253,84,95,137,121,200,203,71,159,121,25,192,78,21,20,206,12,127,234,134,16,5,67,240,12,198,224,9,188,226,62,232,32,175,7,142,228,177,131,25,143,224,111,1,230,197,17,60,136,253,196,51,211,206,130,124,216,37,124,198,143,12,28,85,51,66,137,198,31,68,49,27, +14,235,49,2,92,184,212,123,1,158,120,13,238,74,129,39,226,142,187,106,81,28,249,180,43,143,107,128,185,9,39,194,26,181,27,194,81,174,26,24,51,247,137,171,22,251,138,171,7,94,95,64,219,42,48,165,62,178,159,8,103,159,162,235,5,174,79,222,48,157,80,214,7,32,123,237,3,144,18,184,58,1,138,162,162,39,64,118,112,151,17,4,116,218,5,2,34,28,229,114,246,228,16,159,88,77,219,191,206,85,90,26,228,163,159,10,78,253,52,41,250,236,15,225,217,71,100,194,101,218,73,17,97,120,247,100,183,6,218,205,130,138,64,128,106,81,16,191,206,107,4,56,32,62,133,29,247,244,213,110,20,103,63,181,247,244,165,244,163,128,64,80,201,163,123,81,79,24,72,28,27,14,180,66,228,62,128,103,249,143,135,185,144,160,126,64,131,56,196,31,231,181,107,112,94,75,139,194,56,232,169,250,36,163,163,15,218,111,201,167,110,69,228,218,63,218,133,255,14,128,157,244,121,159,197,65,142,169,10,198,17,249,199,56,2,95,251,141,4,226,16,157,242,229,238,137, +248,33,171,52,228,249,3,168,137,248,49,80,28,123,36,72,0,241,211,46,11,224,157,8,96,105,202,151,71,2,120,122,56,234,88,225,94,142,225,96,35,1,252,17,175,2,1,187,63,149,21,56,82,246,81,30,202,8,232,71,30,94,165,79,112,6,22,135,249,52,24,101,64,56,199,6,229,3,225,248,207,190,198,3,243,25,15,178,211,254,1,167,241,25,143,143,249,166,33,254,140,71,36,243,25,15,237,41,30,81,184,154,240,25,15,9,200,192,9,14,216,186,208,71,56,119,72,112,68,63,193,57,255,58,39,144,159,161,31,133,172,56,253,156,211,20,180,99,134,178,64,56,71,189,206,65,56,199,4,128,159,170,137,248,171,222,244,183,87,96,210,19,136,94,148,155,11,63,207,41,18,159,121,224,87,126,180,3,56,51,246,49,199,221,144,79,227,195,21,68,137,226,31,3,141,1,131,245,2,46,57,3,131,229,7,231,238,171,83,217,191,17,49,63,230,18,215,135,90,81,252,63,241,125,249,201,247,177,63,137,158,192,164,60,182,104,85,153,122,170,4,80,144,36,15,120, +84,26,36,233,25,12,25,7,108,254,138,103,22,179,124,130,115,197,250,58,31,86,191,234,142,124,201,251,212,221,243,169,67,59,195,64,228,40,29,120,133,120,5,194,41,158,31,225,112,68,31,115,190,195,139,227,159,224,156,255,137,239,202,7,223,184,178,254,52,49,176,62,224,148,51,194,143,194,4,145,144,95,143,33,235,57,80,231,199,134,136,7,225,164,193,156,100,158,224,240,153,146,19,156,51,208,242,9,142,240,179,143,218,207,163,39,37,87,1,232,73,201,0,209,117,76,3,76,3,60,51,13,198,177,124,76,3,20,120,61,6,235,0,7,186,31,99,51,163,240,81,78,167,241,139,83,57,141,74,192,226,81,33,78,19,138,143,199,33,56,100,39,58,49,171,112,148,78,204,2,168,245,137,217,115,208,174,245,107,253,103,98,17,192,237,177,186,91,8,96,142,156,10,139,252,249,148,61,217,112,235,99,236,1,244,244,143,70,199,81,51,47,142,210,209,192,165,173,163,116,226,167,172,4,156,124,105,75,118,116,5,1,250,98,252,156,111,7,76,68,67,47,96,194,5,94, +8,1,151,11,7,62,121,152,114,190,242,80,176,11,79,60,232,147,159,117,11,146,247,157,20,127,141,146,29,27,4,186,169,99,162,142,204,34,193,108,104,61,57,112,138,99,54,24,33,204,212,113,202,11,103,62,117,55,253,156,27,28,180,143,193,22,175,57,13,182,180,207,126,69,118,120,190,246,171,48,254,232,145,32,15,136,143,137,114,121,244,22,124,100,188,63,181,155,7,220,249,41,222,111,132,175,207,89,14,196,213,71,162,188,32,160,167,10,43,128,40,218,72,192,140,176,251,177,79,14,151,247,89,200,71,133,97,6,62,244,138,232,234,179,15,107,23,126,200,174,57,166,178,55,12,209,5,95,222,16,174,195,47,176,211,147,183,31,126,125,122,242,22,18,189,199,39,111,215,241,59,162,227,87,68,48,92,214,254,250,194,141,176,144,65,148,17,174,182,67,216,237,221,241,115,54,248,204,126,220,120,199,253,216,200,108,119,137,228,189,42,40,102,95,40,14,153,7,180,36,91,158,146,108,181,107,115,237,29,182,195,170,251,221,24,112,110,112,141,216,93,15,208,32,240,246, +182,231,90,138,40,93,22,89,166,107,196,147,23,184,97,15,81,198,210,113,18,130,123,61,113,32,59,127,98,11,142,141,87,195,68,244,28,171,203,224,52,13,140,128,171,165,35,203,100,42,169,17,148,191,206,123,117,148,186,234,190,63,138,0,87,77,153,61,168,187,78,84,228,14,45,44,234,60,9,96,213,217,72,247,2,124,72,198,63,218,15,189,251,102,71,106,100,123,216,133,196,189,115,0,117,134,102,45,71,22,247,50,66,228,202,198,96,211,192,104,235,141,108,89,87,60,28,28,191,9,194,114,60,103,198,183,61,101,185,193,141,144,60,41,162,230,146,73,21,250,134,193,148,208,69,26,183,27,148,241,218,16,76,185,178,254,133,98,243,84,138,47,12,119,26,53,51,192,238,64,19,143,161,80,70,138,212,170,11,207,185,248,237,136,142,50,159,49,14,180,61,6,249,236,177,24,192,161,69,245,132,33,146,177,239,171,129,245,192,151,9,187,89,228,6,207,105,161,0,221,82,247,124,191,9,62,129,120,240,136,108,121,18,152,228,56,49,127,83,252,144,45,112,164,145,17, +10,240,111,77,43,164,247,13,163,128,119,136,41,179,142,58,185,184,156,183,200,69,18,108,143,113,215,10,111,5,87,182,197,92,21,243,128,169,238,23,94,106,21,125,178,17,33,33,11,15,29,190,210,75,175,160,36,158,25,176,208,218,115,86,167,192,248,174,97,190,226,31,153,79,136,117,92,48,78,51,165,117,4,17,38,193,237,246,161,123,141,93,0,31,95,242,252,110,44,220,81,194,36,150,121,46,252,30,126,158,89,56,174,9,76,34,204,68,212,54,160,145,208,228,121,28,49,29,227,46,28,125,124,81,195,63,69,189,66,228,249,101,120,162,55,171,58,126,175,8,171,56,52,217,82,70,245,176,97,36,56,180,84,72,29,180,156,111,86,226,59,59,208,216,201,218,242,12,138,195,61,4,155,151,157,189,103,214,52,192,37,136,247,199,182,66,70,132,13,134,2,35,117,140,53,192,35,217,131,48,53,48,11,225,131,20,99,29,187,237,237,31,219,108,134,11,176,99,46,70,158,173,107,118,224,24,39,79,10,162,166,176,198,232,85,244,27,210,109,192,172,45,36,166,233,242, +187,136,183,128,139,165,240,145,199,53,43,29,87,177,137,194,106,138,166,46,180,161,73,67,43,216,85,217,55,29,54,37,82,119,144,215,12,83,130,70,210,218,251,247,157,41,73,58,154,225,141,133,112,182,252,174,245,134,206,48,163,244,162,100,190,247,157,13,16,88,198,226,48,176,138,194,24,4,245,105,97,57,20,119,147,84,78,165,152,150,166,163,217,244,217,186,61,99,60,161,52,20,84,164,157,226,196,110,134,6,93,215,162,165,49,53,112,107,234,108,136,128,108,99,188,17,103,128,178,241,98,83,182,137,109,111,201,150,211,146,105,184,95,27,196,77,246,163,249,240,84,58,147,11,38,21,198,118,139,3,245,55,160,62,19,234,40,89,47,53,235,103,140,225,116,217,74,95,34,211,101,165,217,184,128,13,46,245,173,18,126,127,238,103,219,15,103,65,202,80,122,97,223,45,12,101,186,227,18,152,22,155,212,60,169,124,145,7,250,247,83,108,246,182,165,193,108,204,58,174,19,184,89,31,14,29,135,79,26,38,50,176,209,115,178,23,58,199,103,11,0,196,50,91,225,132, +145,3,125,18,18,192,161,58,222,40,77,211,7,57,68,73,88,230,104,238,149,81,227,99,138,222,103,233,88,246,141,103,137,179,3,2,198,230,41,135,102,248,122,222,96,210,96,131,175,137,62,214,36,205,71,47,213,233,53,163,60,238,50,8,91,75,196,126,198,88,75,80,249,20,109,226,217,209,163,6,221,25,6,206,178,104,236,7,204,136,60,94,5,244,153,102,164,207,44,19,97,203,34,122,77,192,80,198,123,84,22,55,157,192,224,146,214,170,124,193,3,81,191,77,7,173,93,40,56,64,227,231,72,183,144,167,22,114,5,93,205,118,158,107,30,102,182,16,254,92,112,112,108,100,20,219,196,81,133,156,219,250,46,226,210,64,167,17,97,222,174,43,131,155,18,131,143,8,170,4,101,134,91,239,243,24,136,171,95,190,39,61,168,121,123,201,136,88,218,206,74,33,9,82,246,114,176,152,104,105,128,130,13,162,220,14,244,190,133,144,134,229,166,38,26,79,76,117,47,165,240,53,214,190,171,60,155,134,211,201,46,33,185,218,97,59,119,65,84,174,124,120,155,230,30,178, +64,138,223,29,244,77,213,97,147,215,194,24,17,47,162,174,112,112,184,9,211,61,227,38,158,72,130,141,179,211,200,72,114,57,50,108,10,2,39,66,184,112,197,23,182,7,19,76,94,131,218,148,103,40,47,37,136,122,50,243,89,171,2,62,82,56,8,7,151,230,61,128,186,179,167,25,165,132,76,195,156,8,53,18,68,255,6,191,231,197,96,27,205,26,204,143,58,77,135,124,70,221,239,195,7,135,87,130,243,178,93,168,143,130,170,242,126,20,84,8,219,145,102,174,217,186,103,46,108,164,113,199,23,0,120,214,144,192,68,25,238,23,70,93,6,229,228,23,177,194,196,180,40,244,143,136,176,190,127,230,253,196,83,30,18,34,53,71,218,186,107,225,19,160,123,65,34,5,126,1,167,241,111,95,61,42,248,120,237,146,154,76,147,231,202,250,0,39,240,6,12,14,178,133,106,214,102,136,236,162,137,30,63,197,1,246,18,237,86,156,219,74,182,247,180,93,91,0,192,68,88,212,115,1,19,23,227,49,153,48,144,221,98,57,179,230,222,97,252,40,106,51,44,202,43,76, +218,194,160,88,107,179,204,51,198,29,83,74,27,25,158,6,104,199,206,16,33,30,4,109,216,220,6,179,189,84,229,7,168,114,205,7,37,185,145,23,107,208,133,189,3,250,136,217,187,174,31,80,121,101,238,140,129,50,123,74,55,33,12,19,74,34,102,5,229,72,171,239,240,221,186,16,47,135,93,22,167,177,76,160,107,121,12,8,251,209,123,87,244,10,101,214,92,56,108,112,87,138,53,102,182,138,8,51,98,96,69,96,233,23,30,112,220,159,149,10,122,24,45,149,126,230,92,209,176,233,39,198,214,106,119,50,33,155,204,235,230,114,245,98,100,60,210,176,249,195,206,2,103,204,74,57,112,12,41,94,30,100,173,93,243,149,35,47,23,148,193,76,141,181,140,160,66,73,120,9,48,17,23,37,47,192,180,220,147,84,76,205,25,35,210,133,29,118,80,15,103,127,117,119,59,190,153,89,77,61,185,17,63,149,179,58,227,67,89,192,102,12,49,248,89,237,178,3,53,199,68,217,30,202,92,218,46,5,87,6,143,218,95,166,109,34,99,223,155,254,32,107,51,111,94,154, +249,168,225,2,198,61,60,17,151,87,114,73,136,149,84,143,89,208,222,182,118,93,56,60,170,111,82,156,78,129,166,107,33,177,40,96,143,65,4,150,217,39,53,231,105,118,88,0,118,26,182,182,39,128,53,146,115,199,71,241,217,187,216,212,218,159,188,48,174,88,121,80,90,114,80,91,230,8,68,50,69,28,112,184,1,66,136,31,28,226,139,162,16,7,214,209,249,165,247,112,189,122,218,221,91,192,192,139,130,20,248,19,112,201,229,24,113,167,142,142,191,252,232,232,194,211,255,250,188,85,130,14,193,75,20,120,161,188,56,103,104,228,53,56,173,186,219,80,110,128,45,173,227,62,4,8,59,126,11,159,87,222,11,251,189,247,208,32,126,129,199,93,101,204,42,31,74,97,150,40,214,7,88,123,247,222,134,134,228,105,221,163,213,189,201,194,52,204,54,4,254,60,228,45,217,251,66,161,144,3,198,170,235,27,41,189,13,13,162,206,91,171,203,164,31,130,186,191,26,230,210,111,62,20,121,154,14,71,145,151,45,1,244,189,128,10,109,33,231,68,205,123,40,220,34,158, +145,95,125,89,37,84,162,82,152,135,21,212,176,77,129,110,169,120,29,60,208,37,181,134,183,48,149,93,215,178,194,165,86,13,19,42,132,55,178,128,219,132,73,181,139,111,19,154,195,11,65,61,81,130,104,128,129,137,153,151,81,128,150,39,82,61,149,251,91,250,89,183,40,214,3,89,220,251,235,180,226,139,95,45,73,81,128,73,20,166,152,53,151,253,94,54,108,69,18,111,123,20,31,2,103,30,32,157,183,161,108,35,45,121,56,197,220,197,131,149,165,97,170,164,8,44,176,38,42,224,251,134,193,182,153,217,115,235,77,134,200,241,144,192,65,154,73,108,182,168,47,210,149,166,206,121,231,193,29,210,176,76,239,165,140,17,185,196,32,81,200,229,135,17,152,66,3,193,39,45,132,197,218,49,161,247,87,219,54,212,2,37,46,115,234,162,24,169,63,142,161,22,226,48,237,247,48,91,114,234,101,33,183,149,113,16,229,154,3,193,89,113,163,131,242,218,124,63,197,153,193,46,198,5,189,212,195,209,196,170,148,108,39,146,25,5,157,194,77,34,194,22,143,246,77,118, +39,189,92,66,136,228,34,248,81,125,81,113,64,192,103,191,27,230,236,98,129,149,75,201,136,142,3,62,107,137,239,65,167,206,23,210,94,23,196,7,149,142,22,184,67,46,123,3,142,82,122,7,4,149,141,191,85,40,208,202,224,124,242,98,103,102,153,210,48,233,174,112,5,170,66,8,54,118,215,245,71,253,185,247,154,165,45,124,43,154,117,183,166,23,133,51,107,64,233,138,174,203,200,171,195,33,93,0,100,40,236,114,86,218,169,124,81,142,49,21,144,206,33,126,107,187,114,150,100,173,252,243,36,123,0,147,79,227,19,219,236,172,56,163,20,86,60,154,77,216,85,51,238,72,20,82,182,249,216,192,166,103,222,3,135,206,152,30,148,103,211,84,74,125,183,24,176,232,115,196,213,166,141,184,218,222,229,194,77,173,116,15,101,7,81,1,132,120,13,166,228,206,198,212,219,25,235,125,216,179,101,20,227,186,187,208,90,35,95,179,197,143,33,107,165,229,12,49,206,91,155,18,186,101,73,110,25,241,169,65,60,189,178,14,222,149,41,211,155,124,114,75,201,30,156,210, +214,76,99,75,220,122,179,138,195,5,253,76,181,247,252,223,191,133,248,159,254,203,127,253,255,226,45,196,239,127,245,251,239,255,224,148,254,234,235,139,136,223,125,249,253,55,63,124,243,221,183,63,253,224,150,127,247,117,243,31,190,252,254,135,239,127,252,233,251,31,126,254,2,30,250,229,207,254,225,231,111,191,252,31,255,238,248,166,221,247,191,250,241,39,167,244,119,127,251,139,47,63,126,243,211,207,63,124,243,211,175,191,255,221,215,91,63,254,211,79,224,30,240,206,31,190,249,237,31,215,255,227,55,63,254,237,255,207,222,78,252,195,223,253,119,239,39,186,40,95,126,247,205,63,128,171,143,68,125,229,226,147,197,63,190,133,248,237,7,91,255,226,205,193,47,127,246,159,126,241,229,191,252,226,203,239,190,253,229,247,95,254,235,159,127,249,251,111,65,8,95,126,5,114,240,243,239,127,7,254,230,102,253,230,24,166,159,191,252,244,253,63,124,255,211,247,127,52,253,243,95,252,197,255,171,55,24,255,240,79,255,252,187,111,92,232,159,191,2,249,48,255,243,255,248,162, +228,231,49,95,254,236,99,201,55,159,65,3,99,15,46,254,245,151,223,255,246,244,162,229,41,92,191,254,242,205,49,70,63,255,226,203,231,226,143,207,143,158,254,113,237,119,255,221,146,227,191,254,252,47,254,31,189,49,121,177,36,36,212,115,251,197,18,242,230,196,227,249,66,55,215,123,115,222,70,66,152,94,29,14,241,122,205,196,61,93,95,95,51,9,222,8,18,33,116,29,138,116,118,104,183,36,77,47,199,201,90,198,126,137,44,111,16,4,71,228,73,116,30,4,87,93,59,76,210,75,94,223,105,203,28,38,139,39,69,207,87,201,215,66,115,173,161,105,217,236,54,129,34,205,210,51,76,154,251,249,107,144,27,20,90,196,92,27,231,58,113,206,128,115,89,77,8,89,206,37,170,31,10,118,164,94,30,96,70,201,241,200,94,114,141,231,193,171,119,188,203,103,145,203,207,228,63,13,212,86,211,19,127,20,105,94,106,87,102,244,188,91,27,204,52,89,227,115,136,190,187,74,94,190,88,102,0,61,155,219,6,85,60,7,12,122,211,91,136,240,143,216,224,53,93,104, +10,22,96,230,101,55,238,23,9,13,205,134,5,227,158,86,82,119,210,148,47,236,73,69,100,195,72,18,252,41,14,85,235,208,22,245,158,191,144,225,59,205,209,44,47,97,202,125,229,153,213,149,198,135,201,108,236,83,61,114,219,115,134,139,232,171,6,228,249,105,142,190,211,217,97,162,119,31,212,3,127,56,191,127,118,64,31,212,227,110,144,101,130,79,30,216,154,37,235,12,42,155,46,155,152,36,19,126,213,231,216,203,249,76,57,254,146,182,222,98,46,212,219,149,4,27,132,193,91,154,221,3,182,204,132,175,226,103,143,213,193,28,136,46,183,162,5,141,129,6,226,7,166,230,65,232,68,122,101,215,52,116,218,27,147,121,33,248,4,185,113,155,68,153,206,139,56,239,100,152,164,56,161,136,213,61,253,246,121,245,132,28,72,148,27,98,239,117,85,51,192,139,188,215,43,89,206,138,49,19,198,10,221,141,135,236,191,77,119,137,9,142,60,73,201,134,169,82,163,238,149,251,36,170,153,67,247,229,29,149,12,187,8,161,114,252,130,4,198,231,94,88,158,124,225,100, +242,93,70,208,64,160,205,187,40,228,38,202,32,196,77,196,37,13,207,231,182,11,208,249,158,19,80,241,241,101,224,74,253,4,135,246,18,194,23,150,49,21,102,218,89,15,23,120,124,17,125,193,83,44,0,69,131,19,123,63,127,198,89,97,100,114,81,53,226,162,104,118,86,95,56,125,224,68,163,92,82,52,141,151,93,143,237,40,228,84,207,213,62,174,145,162,240,172,25,153,63,164,113,184,252,85,2,141,64,162,220,126,95,202,116,22,213,215,1,74,193,147,180,32,33,25,230,213,101,25,151,99,97,151,202,11,199,126,67,45,209,105,125,228,88,113,161,196,110,236,21,59,195,233,134,72,0,197,18,122,206,32,100,67,83,155,55,136,50,60,42,236,142,65,77,77,132,146,29,214,12,161,17,59,168,123,124,38,155,53,92,42,228,221,125,147,84,181,217,130,216,210,3,174,41,227,145,148,245,241,182,33,45,71,183,124,223,59,229,65,254,60,212,227,108,44,201,5,61,23,98,71,245,46,182,64,100,117,48,38,152,189,118,255,52,75,53,91,237,188,219,191,201,36,46,61, +89,91,197,83,143,103,25,55,244,137,44,194,184,113,50,184,86,233,122,152,234,46,135,99,8,122,3,157,219,188,125,173,18,213,203,238,6,126,224,45,238,7,234,181,220,213,158,115,152,229,69,239,178,119,249,91,143,178,37,213,197,29,147,201,203,184,165,115,118,60,234,190,40,32,109,36,20,239,128,72,218,185,122,227,164,137,60,161,188,52,30,137,120,126,18,207,39,190,220,64,170,147,81,117,162,82,56,57,55,83,44,108,113,243,92,245,158,65,252,111,198,125,59,0,4,93,23,150,155,162,213,232,14,90,175,213,89,42,219,102,56,95,4,110,95,134,183,240,238,142,81,119,93,251,194,24,55,60,100,203,235,71,91,71,165,100,184,42,170,217,119,133,6,1,66,171,2,168,108,80,214,162,175,75,162,13,97,90,109,78,46,202,150,30,100,78,136,217,202,217,21,161,119,59,185,9,200,253,170,32,70,133,117,97,194,158,43,30,94,30,186,17,66,185,102,121,2,119,23,165,120,201,57,55,26,31,54,236,92,185,0,193,17,192,158,79,109,14,194,146,234,42,35,189,91,162, +89,123,134,62,108,230,37,248,142,61,215,132,66,149,135,179,158,180,92,189,202,211,251,72,20,62,67,93,220,59,7,197,178,8,207,32,23,75,27,224,110,25,202,225,14,9,183,117,36,111,162,75,196,250,129,119,191,26,177,99,165,21,156,95,84,7,44,141,251,46,131,94,233,89,11,233,249,99,50,61,187,175,188,24,193,186,114,51,235,115,170,47,213,202,157,20,0,163,78,197,37,135,240,216,35,186,180,156,237,59,211,145,225,114,203,180,109,223,221,183,11,109,113,55,220,84,18,183,165,252,170,93,237,136,213,86,189,106,198,168,185,149,67,130,123,207,177,10,183,82,182,226,214,141,118,28,116,87,133,202,221,102,102,172,167,223,158,154,220,226,67,207,104,145,215,123,222,70,19,87,170,56,131,165,226,1,202,53,136,247,69,171,102,79,243,49,12,182,197,123,0,217,75,80,229,117,119,232,117,221,127,121,88,181,175,86,239,220,90,187,162,111,87,200,109,11,175,92,165,42,207,51,57,206,52,118,129,127,9,85,120,23,51,139,81,95,239,47,246,180,89,38,133,172,232,224, +180,195,66,3,121,239,155,50,183,194,199,242,121,252,140,39,58,20,166,164,121,17,222,28,102,150,55,218,185,88,180,144,7,67,162,77,39,147,69,221,36,134,25,156,36,240,34,73,43,109,153,123,138,208,162,122,35,188,93,211,122,240,167,213,174,154,239,161,112,89,73,122,89,17,233,99,2,97,202,95,45,134,238,135,90,111,254,192,139,169,19,71,246,238,214,254,176,194,114,219,237,89,3,253,112,255,129,229,211,236,121,47,194,40,139,173,238,155,211,13,95,249,138,15,45,183,209,69,253,174,164,126,221,188,217,130,97,9,98,176,23,180,206,134,114,153,96,85,201,82,40,114,25,118,93,123,165,62,166,26,162,61,202,165,191,222,105,203,55,172,183,68,164,69,145,185,29,239,68,165,79,26,115,146,210,231,126,121,207,165,20,203,251,203,198,153,219,97,74,87,36,233,242,187,71,162,144,163,173,102,79,229,44,31,232,202,100,146,29,167,89,112,103,196,232,102,77,74,110,239,251,248,135,246,139,6,81,222,95,243,158,52,182,184,70,238,72,227,116,207,12,19,117,228,66,235, +25,249,234,178,140,234,235,230,93,251,245,59,4,14,73,143,90,67,197,66,2,145,151,133,14,206,30,32,175,135,107,214,117,123,173,108,39,35,237,88,67,217,153,96,82,140,34,58,230,225,222,93,246,174,148,50,86,233,98,45,218,106,43,101,1,145,162,36,209,202,34,205,56,236,110,231,72,215,122,200,124,52,97,80,27,247,115,100,38,59,84,174,236,62,63,212,223,108,60,45,117,51,90,250,109,173,202,166,149,209,126,184,114,109,237,11,247,238,247,112,180,243,212,64,97,223,239,2,158,134,230,46,117,83,12,203,149,115,198,134,81,181,5,9,55,246,26,147,122,208,161,174,14,231,9,144,164,194,161,238,156,95,164,222,82,165,59,193,22,203,86,144,87,7,175,24,185,45,168,214,119,109,247,240,189,130,66,101,152,214,235,30,98,29,16,93,182,172,28,249,206,213,240,113,88,166,12,132,142,247,138,114,229,123,29,253,89,124,224,205,196,178,109,119,223,158,83,212,106,162,7,126,95,162,245,178,184,198,11,149,210,187,66,105,252,123,170,148,209,17,48,214,247,64,206,115, +63,205,55,172,94,249,84,89,192,98,131,67,91,187,253,44,121,249,63,235,122,143,230,102,186,40,61,236,175,204,202,91,141,84,242,194,63,192,63,193,75,45,70,37,149,203,101,149,70,53,210,168,74,90,17,77,52,17,26,68,70,19,36,114,34,2,17,9,128,200,145,32,1,130,36,50,136,72,68,130,200,57,103,223,126,191,145,173,146,237,37,193,115,239,61,231,57,207,57,247,57,253,190,77,32,233,240,237,35,60,41,223,212,62,32,95,58,181,10,241,227,197,169,116,27,190,158,254,172,34,145,134,174,52,89,108,82,107,18,137,232,227,191,239,158,36,211,155,230,244,67,248,16,139,62,159,124,8,162,33,77,65,70,87,220,198,104,237,99,110,183,55,159,226,11,203,0,114,126,94,78,199,184,30,183,219,187,25,13,38,130,222,102,0,121,183,101,251,209,12,166,110,28,233,167,14,140,132,199,241,73,82,127,163,45,74,78,209,217,196,96,249,197,43,254,220,217,146,140,162,234,198,242,3,199,164,181,223,92,31,134,142,91,103,163,55,229,93,231,65,89,146,34,148,105,115, +86,249,190,228,154,119,38,85,98,17,217,136,250,183,172,1,31,189,21,139,156,208,135,240,247,35,184,111,199,6,156,221,237,129,98,105,143,203,45,62,35,163,208,137,231,84,210,153,202,219,91,151,79,163,192,179,207,164,123,142,143,155,131,3,115,96,198,105,151,169,221,39,108,249,152,29,175,4,240,172,117,21,245,21,60,203,193,162,232,188,28,186,30,110,203,36,247,75,226,163,67,99,149,124,245,148,235,173,224,57,252,182,151,66,193,242,67,254,49,95,231,231,109,46,115,30,142,204,93,147,121,139,151,72,55,89,148,79,56,124,123,135,191,189,35,92,220,221,193,92,225,93,51,210,177,188,86,59,139,223,199,231,147,154,182,216,43,116,167,230,37,31,255,197,0,243,227,179,201,143,124,189,232,252,36,212,109,210,137,140,105,139,155,154,220,81,92,72,141,104,119,157,208,175,21,207,16,252,242,199,111,11,26,63,157,89,97,211,216,160,107,126,119,173,113,238,60,84,228,198,84,202,87,187,217,95,145,185,33,68,172,16,45,181,229,126,237,119,88,95,100,9,228,111,99,174, +56,74,229,119,200,47,249,100,209,221,244,58,151,79,57,47,103,80,74,60,36,103,37,6,71,237,182,14,25,60,1,181,109,228,165,87,191,214,87,84,117,155,78,56,27,54,159,59,227,12,150,155,179,175,149,217,108,22,222,185,132,217,165,198,145,254,217,205,247,196,121,83,242,219,69,89,160,79,243,238,112,84,235,19,213,226,101,231,107,61,227,107,190,102,97,153,234,220,9,206,130,39,35,59,17,177,218,207,8,191,210,53,24,158,176,85,23,228,144,239,251,17,54,15,149,232,138,143,18,246,132,210,231,213,248,209,154,240,139,60,92,42,148,183,81,19,204,78,250,96,156,180,78,76,211,5,126,245,249,198,63,47,4,240,129,44,138,115,179,222,227,162,27,102,201,138,227,81,97,138,87,108,239,25,215,91,202,42,60,46,162,42,84,65,249,186,98,81,54,188,46,187,178,246,233,184,59,165,200,156,125,21,169,81,106,239,72,237,142,24,114,43,1,103,168,149,26,167,126,39,58,215,240,243,193,11,104,80,43,93,160,139,54,79,152,245,60,185,74,55,22,109,44,253,232,124, +53,22,108,120,201,111,248,158,192,189,163,217,172,183,125,255,128,221,233,209,107,154,153,237,53,179,182,152,78,31,220,230,115,178,22,232,33,199,227,9,169,246,83,147,47,86,222,216,213,73,147,145,108,238,94,167,133,114,74,156,225,102,107,120,234,80,10,181,174,207,96,172,230,6,64,80,146,133,47,220,74,126,85,172,63,124,169,225,73,175,175,134,171,195,251,95,43,34,165,21,54,5,221,196,213,196,21,187,73,121,186,17,89,201,237,99,233,244,75,252,200,27,212,85,53,42,36,203,20,91,27,15,106,146,254,46,119,170,149,146,96,139,151,82,115,70,3,17,230,163,139,81,64,69,121,82,229,88,3,231,48,96,61,181,121,151,46,226,113,99,250,24,34,179,124,235,150,242,197,96,39,59,102,173,206,60,122,96,40,100,238,23,43,171,58,186,178,94,91,98,213,214,167,226,164,187,166,158,109,179,11,212,237,189,187,91,254,100,6,250,183,52,55,254,154,7,195,251,207,136,245,123,210,102,134,229,3,228,120,51,118,21,146,233,253,85,224,126,247,140,251,37,92,126,44,195, +158,11,226,110,119,106,247,210,235,179,236,164,43,116,21,175,237,54,27,31,46,73,131,85,45,249,120,89,208,211,39,119,47,103,82,139,22,145,6,79,8,121,111,253,124,24,120,149,198,230,107,185,222,52,147,75,175,149,98,45,27,190,71,159,214,66,52,231,76,37,242,148,177,141,99,131,101,143,140,66,130,118,252,178,24,158,185,2,226,206,193,166,78,136,148,41,110,215,61,13,86,205,11,202,137,79,113,14,110,29,135,228,7,195,69,19,136,10,187,12,162,212,217,86,157,67,24,162,108,231,137,19,225,23,39,232,92,92,95,146,150,207,14,191,222,246,104,242,123,230,57,229,121,161,41,170,90,207,181,128,128,65,174,62,158,108,240,211,240,201,220,206,199,100,31,46,65,96,101,50,51,191,2,89,215,225,194,170,46,31,151,165,43,114,185,98,220,158,253,149,221,27,84,190,151,20,164,2,233,220,249,249,182,181,207,162,49,37,119,64,93,36,11,67,233,99,17,207,109,123,80,52,235,182,156,31,222,66,90,2,100,142,247,104,239,26,215,211,195,36,150,248,18,252,66,83, +97,224,188,240,173,92,220,210,89,52,120,129,132,230,31,242,171,239,247,214,6,93,11,216,144,178,89,105,154,171,130,235,237,75,234,124,150,40,214,135,224,104,126,32,187,98,38,11,201,156,113,63,177,10,9,247,87,55,37,125,242,189,200,37,156,186,241,1,254,18,177,67,70,4,218,115,219,84,230,211,231,109,251,142,55,120,225,123,98,198,62,101,255,50,26,68,233,47,184,163,193,78,221,93,60,237,146,102,90,55,108,73,211,58,62,97,189,218,88,24,81,103,73,212,139,48,23,111,56,198,78,193,25,83,107,196,82,98,220,250,70,243,143,6,91,122,28,248,160,169,105,95,130,229,222,250,214,116,164,66,43,135,232,192,104,82,219,168,125,176,254,113,126,55,40,70,157,60,148,157,156,245,138,178,194,59,59,231,134,168,98,230,100,250,76,227,58,201,145,25,42,219,11,254,76,98,78,179,145,120,232,103,97,38,198,70,55,156,239,251,153,212,213,10,173,100,245,154,227,51,56,191,131,127,226,25,17,125,94,155,196,126,47,155,143,34,46,239,88,241,95,108,113,140,91,235, +247,78,64,202,181,84,15,55,234,254,2,242,229,144,221,229,77,233,245,36,202,166,161,156,78,134,22,174,166,222,222,246,100,106,21,94,95,208,17,162,141,187,237,131,174,217,166,122,25,124,175,122,172,91,244,222,84,131,63,165,148,37,97,228,112,12,113,123,121,148,72,27,104,68,191,237,131,201,145,176,239,181,221,23,241,93,179,204,125,166,48,86,165,126,145,155,121,181,223,199,225,128,143,84,15,177,158,63,234,159,49,218,104,118,191,180,57,181,111,99,138,67,189,118,154,197,173,46,227,73,119,129,220,137,218,238,30,229,73,24,113,54,225,192,178,63,13,144,80,197,199,233,60,201,230,101,4,178,209,216,47,40,243,207,166,158,127,232,253,45,32,17,134,192,212,53,8,53,201,47,52,220,237,209,187,84,179,171,113,207,249,14,174,194,93,141,242,178,82,124,249,244,62,111,14,113,13,243,156,13,60,7,110,252,165,151,202,224,230,104,202,61,179,17,129,178,60,160,210,159,239,75,161,239,206,235,45,103,222,9,197,88,218,55,199,117,208,144,161,249,60,147,90,8,89,19, +122,85,173,103,20,28,138,109,124,31,85,190,94,196,171,196,243,143,148,143,119,22,76,207,31,1,63,12,79,79,239,58,227,169,222,245,118,140,53,171,84,242,158,209,93,162,197,157,214,116,114,91,243,179,144,84,138,62,205,145,226,71,19,237,89,238,178,25,213,147,56,86,183,79,113,146,125,225,227,130,26,229,188,86,175,230,164,185,204,69,87,225,108,87,221,147,241,116,61,45,226,174,10,178,49,229,228,233,120,103,33,93,176,156,79,215,144,180,42,76,145,203,238,24,55,119,130,173,210,91,95,233,105,70,121,225,248,153,242,205,63,240,218,152,250,3,186,58,255,4,81,127,250,55,128,150,116,15,164,155,240,51,137,92,190,176,253,122,215,251,108,203,143,55,250,95,189,22,13,207,40,240,68,101,223,113,215,129,57,28,196,8,62,61,244,253,65,181,199,77,173,222,149,173,245,86,225,187,134,90,126,232,156,165,100,206,135,86,88,249,157,25,153,183,216,87,121,36,171,197,254,66,158,12,197,95,118,245,27,33,197,165,205,184,126,82,213,75,3,39,75,118,78,226,145,102, +127,121,10,55,125,30,173,96,209,238,71,14,222,249,10,185,242,166,58,62,74,165,80,59,223,189,140,111,239,90,145,212,251,252,93,183,140,235,173,110,143,165,115,73,122,121,25,162,149,45,101,225,53,139,235,229,100,192,211,133,151,193,79,43,249,106,164,126,18,171,110,126,239,83,199,98,251,106,105,74,198,111,123,220,250,248,147,235,232,81,161,180,200,104,123,245,245,201,238,57,143,26,113,107,76,221,13,251,249,81,94,105,204,151,183,79,158,228,67,30,186,224,60,17,201,176,49,89,11,161,63,166,225,231,166,162,29,34,63,246,223,111,85,219,78,230,205,125,27,25,210,203,251,30,94,171,112,82,243,241,27,97,113,159,18,178,240,40,105,236,219,82,199,158,125,193,121,85,126,142,151,172,194,167,38,92,236,186,40,250,226,247,145,247,29,125,62,252,62,44,89,175,191,79,215,241,225,45,139,179,223,44,244,115,196,35,213,231,104,17,29,171,42,220,231,18,238,253,165,113,222,191,250,214,212,199,54,205,215,57,116,216,185,5,10,51,15,254,245,121,198,15,181,237,13,66, +240,52,131,242,77,253,45,153,104,40,208,192,187,238,120,67,44,236,12,86,55,140,90,221,197,204,46,201,249,69,230,133,109,134,208,70,31,178,84,181,221,144,207,63,203,124,203,210,5,143,173,16,67,220,8,47,163,253,106,30,210,242,217,246,120,205,174,71,201,230,15,193,232,135,159,170,218,29,182,138,122,166,214,26,149,163,51,113,18,188,188,194,89,149,241,133,119,92,34,220,253,106,223,232,239,3,255,123,84,106,124,120,24,151,106,139,246,143,235,185,62,80,14,156,215,123,79,201,182,46,240,150,123,207,155,80,100,182,182,174,93,189,101,254,144,88,30,166,26,147,109,174,9,85,46,229,29,158,236,66,123,153,245,78,148,210,170,245,229,54,249,20,247,14,9,162,3,147,247,74,8,243,123,105,245,120,189,231,68,187,133,209,89,95,252,101,220,127,79,180,211,167,146,254,75,200,171,170,26,90,223,246,167,242,222,121,60,40,81,11,159,95,61,24,52,103,28,241,176,55,7,103,253,88,196,32,204,178,75,159,190,135,232,217,198,154,158,117,116,150,63,31,127,34,199,198, +22,171,79,156,27,64,237,246,77,60,197,108,156,110,115,163,236,181,70,229,5,35,96,210,1,230,84,66,153,195,131,110,5,237,157,213,9,249,156,233,223,136,129,94,149,76,218,99,46,148,28,92,82,146,199,107,214,94,206,149,137,76,159,189,94,134,218,21,113,202,228,162,1,57,217,98,238,197,41,122,244,237,227,238,239,99,184,31,126,64,75,23,23,59,56,254,99,26,199,200,253,53,241,49,63,158,135,163,85,182,78,229,84,43,73,69,121,211,170,98,37,188,205,71,199,43,91,123,151,78,63,222,166,23,214,123,238,45,55,189,200,54,41,197,199,236,239,183,230,233,129,183,9,31,197,151,58,99,99,48,40,94,180,184,5,93,236,23,73,175,92,175,237,176,5,224,50,212,27,83,142,39,231,215,128,85,143,136,162,66,249,169,143,246,215,215,58,149,40,53,157,76,66,1,243,219,214,68,123,189,185,248,148,33,203,187,151,182,77,192,63,199,39,63,16,225,254,230,107,42,42,231,149,26,227,234,82,14,237,159,145,62,158,123,147,65,162,134,71,169,213,21,61,167,167,34, +206,50,250,38,54,247,105,159,196,177,160,144,104,237,2,233,120,1,62,254,114,86,224,246,233,30,83,245,120,247,6,217,131,177,204,217,244,167,166,129,100,127,27,124,249,172,234,123,110,165,185,19,40,228,70,188,34,61,115,76,5,178,23,207,10,142,247,107,30,18,167,164,196,125,57,122,124,242,90,7,108,1,109,192,116,116,77,74,82,255,57,184,63,211,141,149,157,81,184,59,26,133,87,9,253,43,41,35,248,108,22,121,151,188,203,231,17,125,64,252,184,116,140,101,71,141,104,244,245,179,236,243,52,218,183,73,251,208,248,196,229,19,45,253,133,185,86,199,191,64,155,196,197,106,172,243,117,110,221,95,195,221,242,110,250,157,235,189,126,107,77,46,195,38,23,154,141,175,57,178,159,149,203,183,16,44,119,4,229,195,203,42,157,103,244,101,33,133,55,111,254,18,78,75,163,12,229,99,178,175,5,43,151,70,183,237,149,53,19,146,62,250,175,204,219,245,36,228,77,132,84,143,134,250,79,229,104,142,28,156,140,173,216,31,215,25,161,59,22,114,146,63,234,125,81,191, +222,194,228,175,60,177,208,57,41,144,47,186,71,153,222,98,189,221,168,135,153,150,178,165,172,140,158,60,182,253,156,82,214,155,103,206,143,253,71,159,125,147,59,189,244,221,95,134,95,27,237,157,50,118,155,197,149,1,78,48,64,178,124,118,117,105,10,182,186,161,171,76,159,28,54,193,95,215,209,134,146,182,143,83,59,76,167,210,61,116,152,226,247,112,100,249,46,202,121,60,170,167,247,93,94,223,14,175,2,81,98,47,14,21,89,163,228,231,242,153,215,39,244,191,210,52,213,231,238,171,252,113,190,239,153,148,10,248,90,167,104,32,63,140,91,63,180,165,117,70,200,207,15,131,11,167,13,217,91,238,244,249,100,245,166,17,127,0,90,75,237,13,130,75,214,56,197,116,181,96,31,103,24,17,141,92,151,175,254,122,153,24,20,133,129,194,154,22,63,77,216,193,216,145,84,240,123,184,53,169,251,83,111,150,228,246,56,210,205,201,89,255,13,234,106,136,53,220,238,100,68,123,73,207,15,59,53,167,66,202,248,225,44,202,70,121,177,111,99,206,15,243,69,15,163,75, +243,226,21,86,46,61,233,20,252,28,120,137,197,151,36,219,46,93,181,44,196,247,65,7,69,167,17,187,119,85,231,122,43,170,250,233,129,180,219,135,121,39,38,181,163,106,136,36,215,206,112,178,124,62,15,46,158,23,87,173,212,245,17,230,125,133,175,172,158,195,135,71,242,124,20,189,113,243,82,74,61,210,199,75,134,204,217,149,205,233,148,183,76,112,64,71,165,245,86,189,207,132,76,41,28,111,156,169,170,39,125,28,249,190,205,243,74,58,126,108,229,175,219,154,125,241,189,234,121,46,241,21,183,223,147,155,40,188,252,42,22,197,231,44,190,90,225,71,74,120,205,157,41,55,252,230,166,29,238,229,68,113,193,27,137,22,47,245,31,196,42,27,38,235,111,215,5,103,240,247,42,160,182,134,249,222,201,250,39,165,59,135,246,225,67,60,211,144,67,235,225,78,249,181,136,107,234,109,209,225,134,209,126,216,70,20,89,1,154,105,117,196,133,110,162,33,56,167,13,230,138,175,92,175,112,244,142,55,246,57,79,189,119,181,159,4,46,223,106,46,169,250,236,147,220,119, +32,234,234,211,138,201,117,141,67,221,93,158,52,182,77,52,39,8,96,31,149,75,253,68,124,77,41,123,105,132,231,172,176,84,90,183,28,199,212,248,251,179,126,92,203,229,21,226,118,169,74,60,137,127,159,131,109,68,73,59,217,140,195,105,91,208,27,247,14,53,118,238,187,55,234,20,207,167,231,182,147,231,252,42,197,203,214,10,170,95,62,233,151,122,143,39,173,27,167,69,246,118,105,127,87,18,20,191,246,171,169,166,164,45,190,241,132,67,225,146,254,40,249,93,234,17,164,144,226,32,63,225,30,43,50,187,29,200,18,137,65,27,250,160,240,30,141,190,234,15,209,205,157,173,66,132,220,116,19,91,190,212,198,179,235,149,161,76,171,170,78,230,211,254,58,239,178,57,63,151,13,239,83,125,216,7,163,98,127,202,51,24,62,207,139,222,126,251,155,83,168,120,51,102,143,105,202,213,141,55,155,132,118,112,51,169,139,230,245,251,211,146,40,93,73,213,199,159,222,210,40,229,174,69,115,7,235,167,124,1,159,53,180,15,87,223,238,71,98,16,227,75,164,226,76,207, +63,218,146,3,121,231,9,120,181,124,165,223,250,238,89,183,110,186,46,234,38,73,13,162,244,28,63,16,122,3,141,107,119,229,150,208,186,255,209,28,236,126,45,92,173,87,109,20,91,252,230,181,32,159,190,52,40,92,162,166,38,234,245,103,50,183,196,184,123,100,90,14,204,61,187,154,61,80,241,3,163,249,130,244,76,143,157,214,14,177,36,28,245,203,178,4,19,155,191,47,68,108,142,218,250,211,201,229,196,126,234,62,223,197,83,112,116,201,152,234,111,190,16,1,254,174,246,59,113,198,47,155,169,120,243,5,162,68,234,55,23,29,232,56,74,219,28,155,81,215,87,138,232,38,249,223,7,210,244,163,49,109,253,62,207,178,11,227,175,128,88,52,138,113,133,26,135,29,152,6,212,51,10,37,212,58,241,108,95,23,63,136,126,210,213,100,136,244,107,87,196,11,5,189,225,101,198,46,249,93,255,92,41,76,55,99,82,244,211,68,84,146,241,28,124,183,35,211,103,92,133,158,41,64,211,172,81,163,63,225,72,48,80,34,62,8,225,46,252,121,49,157,136,224,241,80, +29,231,23,107,233,13,34,30,230,92,84,30,136,29,55,151,41,223,30,207,211,119,170,209,159,195,209,36,157,23,95,69,162,91,218,115,2,184,181,157,198,161,157,45,202,172,24,250,233,62,57,130,70,142,102,177,119,112,77,126,214,166,59,44,169,245,24,242,48,225,188,103,92,122,175,236,170,239,119,134,116,255,104,145,149,252,165,171,175,208,62,113,15,71,195,72,174,181,15,55,151,59,15,146,101,199,106,199,155,245,123,245,201,64,72,67,179,206,207,74,71,209,87,213,105,92,255,59,227,68,102,150,211,61,100,244,43,251,139,196,238,134,132,24,93,95,239,253,135,252,30,44,156,35,120,56,242,222,81,43,147,138,251,43,93,166,48,64,163,135,244,74,150,185,92,169,23,107,251,49,155,63,42,107,90,193,76,118,96,163,249,165,38,124,163,79,30,59,143,223,151,154,78,63,145,118,19,250,22,63,239,119,84,153,153,149,27,94,116,136,227,49,249,38,111,178,117,210,191,24,156,239,237,61,250,200,151,197,102,190,141,194,240,38,176,192,10,106,123,121,189,113,46,157,154,212, +81,149,184,175,202,87,58,85,19,18,160,52,197,147,127,20,24,15,216,182,254,135,94,177,253,21,124,235,79,210,180,247,110,112,47,136,209,50,159,202,102,155,109,111,147,30,84,213,114,81,119,223,188,65,30,42,233,2,169,28,64,170,38,237,36,227,31,141,138,43,198,250,19,189,125,129,114,28,118,94,35,28,51,20,42,115,8,97,71,37,178,54,13,137,78,146,175,106,109,109,216,214,207,252,49,104,239,148,115,179,110,164,108,64,6,118,132,79,224,52,233,15,249,229,109,203,228,239,202,10,97,221,196,185,225,248,191,33,190,45,28,41,154,187,126,125,123,91,170,105,110,17,119,234,10,252,46,102,165,69,15,189,47,22,231,139,29,81,95,194,142,206,40,103,122,130,245,76,193,77,195,200,161,193,138,85,236,198,12,167,190,235,183,191,186,242,246,91,123,186,87,51,111,120,45,147,120,221,30,213,219,174,11,61,82,116,56,159,22,237,168,110,248,165,111,186,159,12,185,22,91,6,83,207,239,210,174,160,108,237,28,74,144,89,105,0,174,37,244,174,175,63,153,121,2,57, +141,78,11,149,188,73,75,207,177,123,202,199,152,97,157,236,174,38,71,203,95,137,148,44,254,74,228,205,95,230,187,190,7,209,40,225,198,29,63,245,153,237,46,245,26,137,0,118,220,177,36,11,103,56,12,93,215,92,232,69,135,236,66,122,171,55,191,118,90,18,7,211,146,15,24,113,127,19,122,50,57,30,185,155,230,107,203,197,28,134,82,198,238,59,158,246,237,145,107,233,153,71,38,30,134,112,70,191,88,76,255,139,224,184,191,8,222,195,67,179,39,255,172,165,79,20,20,21,189,249,195,42,57,253,108,92,169,71,51,156,211,137,157,203,72,199,63,211,108,37,245,60,127,57,66,167,73,1,158,66,138,84,52,156,151,160,231,248,24,69,28,215,9,139,92,254,97,16,192,240,91,16,20,202,147,118,131,103,146,30,224,100,100,130,22,18,245,48,132,151,223,140,203,183,210,192,48,144,252,213,201,197,91,157,197,149,184,130,121,116,99,177,102,164,145,244,136,243,68,141,208,47,126,60,251,148,74,190,209,109,156,205,251,87,38,253,112,95,236,60,63,67,186,72,94,151, +167,66,248,27,216,179,102,202,163,226,237,252,168,98,30,30,209,178,31,98,86,253,68,100,152,159,92,51,191,118,72,229,21,122,135,188,42,23,9,172,76,136,21,100,188,1,46,197,171,248,48,176,10,35,117,22,136,57,47,190,70,216,39,127,176,23,184,147,223,218,181,92,35,75,140,83,190,29,15,42,102,25,125,147,87,195,82,102,126,146,144,49,191,144,47,89,32,214,10,208,69,68,38,93,115,200,168,176,173,126,75,41,189,4,247,102,152,75,224,39,109,254,26,255,156,133,62,35,147,66,141,177,102,5,32,38,225,202,152,2,142,231,249,43,63,135,20,57,113,116,150,215,122,32,14,28,223,136,169,32,188,215,145,148,31,241,207,166,77,53,19,251,47,39,46,128,135,217,7,161,45,83,77,8,211,10,19,4,28,105,89,73,2,173,0,247,219,143,39,69,132,204,32,227,178,102,173,165,123,12,102,154,238,38,234,236,186,14,142,39,181,126,43,181,116,49,74,68,220,195,192,152,136,109,14,147,244,16,2,173,24,0,81,251,198,254,2,149,32,118,25,97,210,203,16,90, +188,52,214,196,96,91,170,19,219,118,243,141,175,129,109,57,47,140,90,216,90,123,96,35,76,206,165,31,146,129,45,236,240,21,0,150,181,102,249,193,30,31,148,23,40,14,24,11,3,95,99,65,11,200,80,152,161,51,22,233,68,96,146,170,255,1,182,24,181,96,104,240,88,49,4,228,11,238,72,106,215,72,76,92,183,214,196,124,0,98,104,32,193,131,181,183,102,21,147,225,70,7,145,104,24,18,49,219,50,24,64,63,16,107,193,126,74,134,195,88,244,211,107,143,226,73,143,6,112,11,191,176,147,0,183,200,51,68,99,182,49,100,35,228,96,176,135,187,37,233,67,72,99,197,4,62,5,248,14,54,169,130,120,103,31,31,47,16,179,45,229,190,20,180,147,50,135,109,84,99,222,227,241,164,27,56,13,104,33,190,220,186,183,108,210,8,97,196,202,175,32,227,175,82,228,244,160,74,41,126,175,132,182,26,31,3,130,140,157,10,174,82,112,106,92,20,103,156,1,190,72,250,134,145,0,101,0,90,37,39,236,135,230,127,240,32,131,96,205,167,123,10,136,3,70,212, +88,28,135,83,143,201,148,209,15,76,64,71,136,6,225,179,80,41,50,9,21,232,107,51,216,107,99,168,124,48,106,182,26,69,10,208,145,2,139,0,244,33,0,159,63,87,233,24,173,62,190,43,97,0,212,59,58,73,96,196,30,252,116,96,16,20,108,73,112,32,184,235,4,60,8,26,152,127,236,142,223,255,100,135,225,177,25,147,196,124,121,94,209,145,192,98,36,181,196,147,86,217,35,18,98,212,30,107,10,250,17,16,196,123,112,120,177,108,55,11,17,178,127,54,176,128,24,102,32,136,162,177,166,125,161,138,3,171,123,5,249,14,132,49,95,179,228,87,226,45,153,3,16,140,34,95,162,247,32,196,108,180,37,24,130,25,54,248,16,59,255,194,22,101,3,134,162,166,129,18,68,188,217,128,248,125,240,175,92,252,230,184,213,129,196,48,60,119,187,77,110,173,92,16,49,94,74,146,88,221,228,45,34,49,238,225,173,186,185,148,6,250,151,1,101,248,19,172,180,179,138,157,0,212,116,50,192,158,113,134,138,201,45,163,218,19,44,198,233,222,114,122,121,100,82,28, +26,245,1,34,190,164,149,201,96,84,27,73,48,50,0,134,46,73,26,120,109,5,152,85,80,103,206,67,86,67,198,243,90,150,197,129,84,152,40,113,126,82,100,228,71,234,56,153,81,204,70,35,182,103,105,190,166,70,168,125,162,138,249,97,2,203,90,205,192,35,182,236,240,60,180,169,153,35,173,106,236,33,20,73,23,105,81,130,111,18,39,235,186,77,230,57,76,175,189,41,200,69,128,131,225,24,165,27,46,126,198,222,119,198,228,126,140,19,16,141,18,151,67,11,26,67,63,25,36,34,40,63,1,10,40,187,245,98,219,6,146,179,42,198,243,101,175,71,14,145,208,60,249,190,102,189,16,227,222,72,101,44,188,163,19,98,227,229,231,164,52,50,121,45,24,27,23,32,207,44,223,90,248,2,173,75,239,19,209,243,45,192,129,250,97,73,64,240,126,169,194,210,244,45,141,80,38,133,137,237,18,79,138,69,78,167,61,200,131,178,9,89,9,102,122,77,88,61,138,177,186,200,39,156,8,95,40,211,76,217,168,124,27,130,68,137,5,182,48,41,229,130,230,50,89,95, +98,125,246,52,62,167,229,143,27,159,33,191,15,111,49,220,182,22,213,53,19,254,116,15,2,84,129,48,0,9,92,44,21,147,82,70,221,83,94,0,74,51,13,133,103,70,194,199,162,204,26,167,195,222,9,104,233,22,232,44,181,135,192,26,164,187,84,170,255,161,165,246,208,189,6,81,249,118,196,30,200,97,32,236,83,240,65,115,75,39,130,200,15,58,200,49,228,249,73,157,133,217,185,151,7,176,231,144,160,85,208,35,147,210,4,84,210,51,253,192,47,130,138,145,194,65,72,151,55,190,196,254,208,86,78,118,2,156,207,27,129,152,22,240,62,164,0,135,47,116,249,185,24,244,194,180,144,140,2,94,202,10,84,112,94,83,78,78,1,187,241,57,70,79,212,218,23,94,73,100,66,45,78,234,6,117,196,255,61,99,99,192,137,222,250,32,171,238,144,212,142,197,63,26,227,249,32,254,174,146,77,226,87,144,211,241,189,32,119,138,183,5,204,112,46,234,97,134,34,239,159,178,16,157,237,116,0,204,110,201,38,130,30,176,82,202,112,225,55,86,50,136,160,157,237,23, +136,198,198,19,76,212,168,27,48,242,210,130,133,189,167,72,151,32,108,194,158,73,191,188,248,121,235,36,81,228,162,183,226,128,78,160,241,40,97,53,104,25,230,44,132,55,139,233,141,192,85,51,224,163,130,254,130,219,222,84,177,18,190,218,156,219,33,112,20,23,212,122,16,186,198,103,72,191,1,11,25,166,5,225,177,72,14,242,255,106,240,1,186,151,140,183,107,10,160,17,165,72,5,86,159,120,210,47,39,16,4,86,176,136,206,199,172,174,121,25,53,19,116,150,126,188,211,197,10,193,146,104,225,225,18,145,249,1,145,55,127,204,132,27,41,48,51,120,165,78,80,59,147,202,40,141,173,74,119,36,36,8,241,42,34,70,228,203,159,214,110,180,249,57,17,120,246,102,27,74,35,156,73,209,184,203,189,201,201,226,237,27,214,15,156,160,31,220,25,107,231,14,56,59,80,36,195,172,126,181,238,120,58,44,172,68,113,64,31,42,6,69,140,218,83,77,201,138,48,253,51,22,216,22,33,130,110,203,133,171,137,47,45,255,154,222,93,229,103,86,189,231,3,164,54,88, +178,97,55,219,70,214,142,53,129,11,77,38,102,188,162,203,173,249,9,62,75,194,35,95,8,255,164,61,250,8,25,172,106,74,79,160,239,24,224,241,105,195,22,131,188,177,117,209,134,25,167,60,29,13,165,112,151,94,107,78,9,100,184,220,71,248,223,122,242,148,242,234,41,217,210,242,141,95,183,105,131,74,164,19,221,56,93,116,6,191,108,212,90,160,252,181,123,152,35,14,92,73,41,145,134,188,92,172,173,93,26,105,156,138,101,216,214,5,89,176,235,54,213,174,8,120,227,3,117,226,214,77,172,241,178,228,85,103,44,97,157,92,3,63,201,66,83,81,193,177,118,129,122,85,92,150,217,136,176,9,197,105,42,108,245,186,154,52,98,193,236,9,178,16,88,46,235,36,79,33,212,94,104,123,67,244,69,237,252,75,124,129,218,87,252,228,78,6,74,144,112,58,174,177,139,39,124,154,30,235,96,233,168,110,153,144,225,149,109,181,57,178,196,129,211,107,241,141,12,199,215,240,249,29,251,49,118,113,208,251,25,224,70,201,174,125,4,0,26,33,17,124,101,129,246,12, +26,183,180,205,4,204,171,10,26,231,149,18,180,139,241,49,31,192,144,47,21,46,129,3,151,29,201,156,212,4,130,201,40,214,62,22,106,7,126,242,141,3,225,247,205,46,27,225,10,17,239,153,133,245,207,243,129,1,106,84,16,40,85,15,56,188,220,113,190,212,69,211,16,159,156,171,222,240,37,17,163,31,161,128,8,17,175,49,34,6,27,10,92,11,140,87,218,242,73,203,3,249,176,89,84,153,54,194,95,9,244,183,69,113,64,27,185,207,79,162,121,163,4,7,56,243,181,6,164,1,212,74,255,62,93,70,140,243,202,5,86,4,238,149,32,146,212,4,160,194,228,182,216,8,52,3,175,120,168,140,151,87,61,60,105,224,177,31,224,85,207,100,60,36,63,3,117,83,15,200,239,128,89,77,146,7,163,216,36,155,132,240,122,121,213,76,0,126,138,2,85,219,9,220,1,234,51,172,195,131,30,193,172,227,238,181,192,55,188,17,209,99,148,109,229,23,108,112,252,90,54,82,96,101,210,194,251,128,159,190,98,135,20,132,130,244,26,154,176,98,244,231,209,152,20,128, +185,247,200,38,101,42,72,195,54,126,14,34,78,110,94,114,141,60,94,2,205,56,17,32,66,8,121,226,3,1,227,83,201,255,20,210,176,144,174,200,181,60,183,246,18,168,140,46,184,200,173,198,26,8,224,171,25,194,147,250,84,243,11,148,206,65,156,234,48,16,124,218,109,46,57,96,86,92,112,128,62,189,49,213,194,166,90,31,228,169,159,81,135,48,97,115,78,218,166,54,230,23,43,120,145,151,104,49,105,128,3,177,62,2,253,96,120,52,213,76,181,210,84,9,225,151,239,89,50,62,107,128,223,109,131,96,80,178,227,56,190,58,13,50,157,60,187,2,59,94,169,176,178,60,241,197,250,186,199,127,5,240,120,8,244,171,163,80,112,39,113,176,191,38,165,196,13,94,155,111,119,145,152,20,170,91,197,32,12,100,235,117,196,232,244,252,75,0,197,212,139,247,44,103,144,72,223,78,132,67,0,77,147,11,206,245,49,255,156,203,2,113,144,190,55,113,134,8,176,204,26,95,137,239,37,38,81,178,6,63,49,181,27,22,56,87,41,194,204,92,44,252,23,137,116,100, +3,194,156,250,129,199,243,233,2,175,14,157,242,100,78,16,186,2,36,243,243,80,62,166,175,2,12,237,230,74,187,57,225,3,193,70,198,214,22,3,30,24,209,197,113,29,49,122,67,127,244,180,139,249,165,66,168,24,128,52,186,146,196,100,186,146,52,61,152,195,32,133,232,228,33,224,75,66,233,159,115,49,4,247,52,35,56,247,172,36,133,128,85,151,247,2,177,114,80,206,183,189,34,165,86,194,107,140,39,22,175,92,139,30,46,96,28,13,118,197,152,114,185,106,197,43,97,64,15,145,101,137,81,171,58,8,127,110,65,177,214,169,226,193,66,39,212,72,208,64,208,79,141,0,21,156,173,36,50,153,115,151,201,135,29,125,149,59,153,175,73,43,142,157,140,169,48,65,4,15,228,47,4,240,107,172,132,210,72,100,32,10,184,177,238,156,183,24,87,15,76,230,254,198,51,195,216,114,34,224,115,89,8,180,170,252,228,152,86,67,248,208,169,238,190,193,118,131,69,70,192,133,198,217,123,125,247,0,156,180,69,242,25,93,254,26,48,207,101,140,177,228,242,85,92,20, +250,83,71,121,243,7,9,0,250,16,215,98,243,74,9,112,79,67,167,97,102,113,59,102,54,54,170,157,192,236,227,60,121,112,99,171,62,77,65,44,22,58,138,205,45,159,216,220,66,132,128,245,30,236,73,5,93,62,13,26,10,5,169,156,214,175,114,177,96,251,138,9,108,30,198,103,227,53,34,124,69,86,66,9,168,224,132,185,173,2,91,186,149,139,211,13,118,3,212,147,65,30,122,184,194,230,13,63,160,214,134,177,165,128,54,162,188,159,96,93,153,187,54,140,12,160,223,84,197,240,6,76,37,4,32,77,173,49,16,173,113,76,193,99,86,138,164,156,15,172,246,149,118,132,234,159,197,193,245,142,214,14,209,5,216,183,77,87,161,101,116,16,151,107,193,15,63,63,100,252,173,1,158,159,28,66,82,42,226,21,98,133,251,3,186,18,170,221,240,105,29,176,191,132,141,128,73,247,244,6,46,33,217,204,220,198,160,105,125,156,214,105,121,94,105,87,96,194,232,58,116,75,192,203,105,178,252,36,88,152,244,165,224,236,75,165,252,143,226,221,79,135,113,176,131,136, +37,6,186,47,31,92,96,243,129,130,141,120,153,8,19,187,191,173,86,14,38,64,180,103,89,135,94,107,39,19,193,11,4,29,40,157,114,49,103,27,37,195,55,48,193,129,153,29,202,142,63,243,156,185,90,100,32,160,33,33,104,241,221,88,219,75,159,33,230,209,23,55,1,1,96,11,202,49,225,249,46,195,154,154,177,217,10,99,243,22,45,17,204,215,254,164,35,0,253,8,66,4,188,75,46,37,230,129,174,216,51,3,84,0,143,18,220,63,84,29,247,244,122,135,229,227,14,147,21,190,8,67,192,28,224,217,47,55,96,152,244,49,73,204,28,253,112,216,130,179,163,176,233,124,182,49,233,239,135,42,80,229,200,202,206,4,118,9,94,67,7,52,99,224,7,235,127,241,8,86,72,26,227,112,60,150,5,86,210,17,38,63,6,74,46,136,101,75,251,131,31,85,193,146,139,39,219,223,123,140,129,63,234,135,10,112,223,215,34,160,216,196,108,188,240,3,33,42,118,202,53,160,237,97,129,95,18,226,64,117,56,36,53,236,18,106,160,6,10,152,106,12,175,136,174,151, +159,16,146,146,0,147,157,214,90,154,184,74,220,6,174,29,241,206,186,246,49,128,192,149,194,168,95,107,255,192,18,28,197,99,187,132,99,121,108,151,128,159,97,6,102,189,66,9,227,129,13,243,204,40,167,11,0,176,22,218,11,22,104,154,120,207,188,123,20,207,222,52,11,224,174,6,32,241,10,135,73,84,32,249,99,65,0,175,88,2,107,65,211,190,126,37,227,223,12,48,3,201,73,3,53,61,233,25,200,115,35,30,16,30,70,98,12,57,128,131,135,253,13,29,112,104,26,164,140,83,254,193,82,65,151,121,59,215,96,75,158,20,67,141,73,162,206,72,43,199,27,216,178,94,203,131,139,134,201,147,124,98,1,6,81,199,171,12,232,195,100,16,15,96,80,0,204,62,183,48,184,110,181,17,36,250,103,155,71,226,25,6,238,194,69,44,151,25,144,120,22,179,157,212,218,181,246,163,48,10,232,85,40,252,193,233,222,107,137,0,193,232,229,235,44,145,90,192,153,4,154,86,130,96,68,231,219,153,96,28,104,253,36,228,220,141,142,40,116,81,48,158,83,48,158,203, +255,240,60,34,87,97,121,186,38,195,111,55,176,50,14,36,227,131,41,14,99,148,147,52,219,6,224,167,65,28,64,116,121,63,145,10,116,77,108,92,15,180,46,3,234,57,144,9,167,237,84,138,165,211,116,154,34,32,3,72,50,31,100,161,252,156,36,16,211,218,49,255,237,209,5,9,35,120,205,252,129,77,213,112,199,1,228,83,12,136,161,14,202,174,1,234,116,83,22,192,91,223,225,86,138,89,249,7,7,12,255,131,37,129,79,192,106,39,16,100,55,160,191,62,214,62,238,2,220,96,26,165,8,157,52,112,190,151,6,28,39,97,172,1,55,235,75,74,18,208,26,155,1,127,43,208,184,195,234,174,253,251,167,51,92,220,154,9,192,148,64,196,154,112,87,192,204,126,64,160,235,193,93,10,208,36,199,141,240,133,0,156,102,36,167,17,39,24,221,192,113,176,88,185,0,178,50,86,199,1,167,82,206,0,68,96,182,219,160,60,116,241,9,194,5,178,67,228,193,161,64,78,170,168,23,64,78,74,1,162,144,92,201,250,51,158,227,176,240,235,117,95,26,164,1,12, +16,255,212,255,130,73,72,134,249,31,174,98,254,15,182,80,2,47,55,104,129,50,246,23,141,63,13,32,141,197,238,43,204,179,0,69,0,68,239,51,208,37,5,250,76,8,56,150,209,161,24,236,151,211,215,48,200,158,44,129,225,121,184,127,134,82,133,9,2,42,37,140,123,57,120,85,32,199,78,33,21,115,232,230,207,250,239,63,235,119,216,250,52,66,198,250,231,2,207,99,1,96,105,1,46,242,153,159,152,169,36,232,55,176,198,74,255,81,127,9,172,12,229,44,152,61,138,137,246,143,106,3,162,216,88,232,157,63,143,1,238,140,210,154,141,10,66,188,103,2,114,69,222,197,145,87,255,236,33,7,26,222,43,186,152,33,33,136,169,33,72,97,31,172,78,113,211,241,210,68,70,37,165,126,3,59,80,137,1,156,181,143,49,112,23,162,220,194,0,46,248,143,119,4,1,243,249,3,187,127,10,244,163,240,13,0,148,51,36,48,80,59,94,255,5,141,180,218,94,21,59,151,65,104,140,33,127,254,243,248,106,126,59,193,147,62,11,9,199,248,67,44,207,223,48,58, +18,62,9,121,234,1,97,212,208,134,131,46,180,108,175,4,176,130,111,198,249,167,136,49,109,236,72,46,254,168,20,75,221,20,184,199,144,216,98,253,141,30,32,98,125,235,247,19,32,121,7,211,214,125,18,94,238,26,147,48,143,222,63,48,43,149,214,14,1,206,99,252,117,244,81,44,129,104,68,224,148,5,168,206,63,120,107,1,127,43,218,201,51,112,8,218,160,131,219,36,48,104,191,210,158,128,154,179,25,131,0,80,113,90,146,12,188,18,239,64,62,170,47,139,239,137,19,246,54,120,156,201,38,195,124,249,213,6,32,175,208,11,101,130,226,132,248,255,227,249,249,35,241,175,231,143,168,120,34,134,233,81,177,100,146,204,20,19,102,185,27,193,67,100,194,255,251,185,228,19,30,138,254,226,114,113,206,23,41,147,136,85,223,237,217,32,226,62,54,105,116,134,34,20,115,156,29,249,146,67,231,223,123,100,97,226,35,225,14,137,50,44,95,179,163,204,21,29,92,226,70,70,70,135,172,111,32,169,77,176,50,14,30,192,249,171,186,245,226,234,71,174,9,1,142,114, +38,28,187,46,242,145,156,146,200,72,74,113,47,50,2,31,43,132,28,100,63,254,70,73,225,162,81,66,171,0,171,137,128,100,215,137,63,160,205,66,9,207,52,109,157,209,37,147,181,230,0,111,138,218,0,95,245,237,55,162,109,139,116,219,82,167,58,153,41,194,143,237,201,65,11,164,123,30,226,78,90,47,175,189,51,207,240,238,107,221,71,222,91,164,162,234,252,80,240,67,42,133,13,235,249,141,50,17,132,138,186,231,62,46,233,140,73,234,201,215,219,220,147,142,52,11,109,71,12,181,172,89,141,17,115,207,223,221,251,65,16,138,34,6,152,124,223,183,19,194,183,173,209,79,241,41,194,106,57,202,186,201,225,16,159,154,188,201,201,87,0,72,167,192,251,164,84,139,252,54,231,101,186,54,30,73,71,13,248,225,67,30,181,143,15,211,193,98,196,128,141,191,254,247,73,177,246,68,165,206,231,67,6,141,245,248,29,77,43,146,125,212,78,190,221,54,104,145,26,66,178,193,175,125,187,237,94,237,10,110,173,124,42,194,42,143,25,142,39,251,61,157,129,18,23,7, +244,71,127,203,146,51,161,95,28,62,83,72,124,28,250,247,214,137,183,140,114,153,153,107,104,136,147,29,43,162,121,47,8,137,224,28,100,25,164,153,209,208,147,191,145,175,61,76,10,254,61,105,111,173,227,210,72,232,167,99,206,228,19,141,250,229,69,154,142,170,208,77,193,115,21,32,177,59,56,105,91,61,64,55,251,249,85,12,95,196,50,78,104,145,64,242,233,168,229,175,127,117,41,212,19,182,151,188,88,245,113,1,242,2,81,144,131,242,24,67,189,223,190,56,122,99,16,166,248,59,93,160,94,50,227,145,232,122,153,173,168,101,97,89,21,49,111,22,71,239,183,27,244,111,161,215,38,160,142,96,225,254,20,226,52,87,66,155,63,220,95,119,183,141,173,206,232,217,243,117,218,159,238,248,179,45,43,162,246,117,249,242,33,232,83,130,95,54,28,186,165,253,216,119,188,57,63,214,204,108,52,85,225,197,14,107,173,209,149,101,14,223,191,81,183,93,122,112,22,79,34,189,48,7,109,175,189,243,157,75,151,184,147,14,213,17,212,94,25,154,159,109,90,21,97,119, +148,56,55,35,100,48,10,52,214,97,168,109,83,207,73,90,120,69,120,233,125,229,240,223,150,97,222,138,234,236,210,65,101,180,223,147,83,122,78,253,164,30,12,251,107,237,103,214,218,202,39,124,227,246,131,218,123,125,112,85,47,81,149,237,69,150,30,133,149,6,6,58,116,21,247,233,105,81,80,91,20,143,228,137,249,62,83,246,245,120,250,152,50,61,213,19,109,158,250,99,206,215,28,234,53,217,87,51,61,90,241,229,218,67,176,7,216,226,57,131,230,199,46,229,36,188,134,92,165,236,55,47,102,97,161,249,152,171,138,126,230,151,134,40,71,226,136,94,47,31,130,217,156,221,166,246,133,234,205,13,51,149,58,198,92,229,17,73,81,102,27,102,211,137,211,92,109,162,170,181,56,221,26,133,148,236,193,154,185,1,229,145,61,159,161,239,199,146,24,159,206,125,171,40,114,91,159,88,130,164,182,172,243,72,82,159,12,46,147,50,5,173,83,188,188,142,234,110,152,180,80,98,20,104,239,205,206,172,67,227,90,209,74,181,22,136,123,210,196,165,79,203,186,234,42,61, +137,92,191,57,75,180,68,238,253,77,50,43,221,47,54,14,87,118,252,59,121,24,31,78,86,228,42,179,21,218,96,255,174,234,40,13,8,91,206,208,149,122,242,95,6,81,85,149,177,122,214,151,217,202,254,32,170,79,126,64,54,209,131,226,244,19,220,185,79,21,36,58,176,215,245,72,180,178,21,102,109,126,199,173,64,23,221,43,89,67,217,215,138,216,138,62,146,221,179,199,152,166,91,136,245,115,231,192,160,232,93,222,228,29,187,105,227,189,204,151,199,214,106,35,172,7,64,107,219,140,20,177,29,32,201,226,196,25,95,59,247,225,231,170,79,52,241,88,200,147,183,189,15,245,3,50,80,60,103,143,189,87,70,248,182,183,214,150,60,240,74,242,50,215,81,43,237,189,46,1,109,189,115,170,234,230,253,193,178,249,130,172,219,218,113,218,180,187,189,243,165,174,224,200,140,211,183,47,243,82,109,247,187,40,61,22,249,235,251,135,225,56,105,106,182,153,61,242,124,18,81,247,69,122,159,50,20,181,150,221,87,48,34,116,219,4,134,1,178,231,83,43,165,64,45,80, +225,212,211,203,253,98,186,40,163,118,102,218,99,52,181,186,1,199,154,212,222,229,240,241,220,56,253,98,120,8,123,184,35,252,114,46,28,142,144,209,20,127,5,11,143,226,148,72,136,150,149,222,146,47,126,179,28,235,200,58,251,241,172,66,220,13,156,191,86,18,99,245,3,90,47,29,244,94,172,245,146,113,87,176,91,57,243,36,33,66,60,13,74,102,0,106,198,230,127,20,7,23,202,249,187,192,209,136,128,162,145,110,198,184,67,59,224,16,168,87,27,3,121,210,221,29,157,155,199,113,253,25,101,151,104,25,207,193,9,74,161,146,42,229,11,9,243,187,180,139,234,232,107,153,38,127,251,178,71,250,103,67,36,103,114,80,35,105,148,232,216,51,178,131,134,7,6,122,145,217,54,160,106,17,34,18,229,63,197,97,15,233,33,56,178,107,23,55,182,144,201,245,56,79,219,124,223,162,121,49,104,125,160,71,243,190,97,64,177,66,199,150,102,214,34,118,174,188,79,129,39,127,215,73,43,61,161,29,132,201,209,199,210,83,29,49,247,126,25,206,30,71,189,102,220,42, +30,44,231,133,218,101,222,212,43,38,92,213,172,121,19,133,74,171,181,174,4,133,79,57,179,84,42,183,37,95,145,193,93,68,160,83,185,32,161,186,89,85,195,10,116,124,255,120,226,160,27,205,220,154,120,87,107,39,3,252,50,132,70,98,79,56,133,94,15,175,3,46,233,64,35,54,136,16,119,214,231,86,152,9,72,110,39,227,35,228,156,182,117,40,215,208,54,157,103,109,113,133,3,95,161,109,217,172,151,200,3,8,234,20,70,62,163,41,247,46,155,152,150,226,236,94,173,147,111,85,84,143,44,21,69,217,247,69,171,208,99,46,222,250,13,144,56,192,205,2,18,203,177,91,231,114,77,150,83,157,66,219,195,79,91,144,110,108,9,204,221,112,146,57,142,124,68,62,91,40,120,40,160,76,93,141,222,142,190,15,113,205,82,140,246,45,42,29,131,73,123,149,209,242,41,168,178,97,85,51,21,171,249,236,119,205,179,12,4,142,214,114,166,152,171,248,169,136,239,141,155,97,163,20,175,222,145,48,200,105,0,115,1,172,168,112,195,114,7,50,43,48,12,194,157,215, +127,156,22,171,250,170,18,201,61,218,98,186,196,46,187,136,13,113,102,1,69,88,102,120,83,160,167,222,140,117,244,133,86,117,134,167,53,242,205,95,233,30,183,112,117,92,219,71,204,28,9,132,156,122,252,53,190,76,131,4,83,0,151,160,106,16,187,152,233,127,209,74,28,249,139,86,56,146,0,182,186,200,8,254,133,67,237,123,84,41,121,238,190,15,62,142,34,184,63,93,157,136,61,10,2,55,250,36,71,25,103,30,141,223,171,177,240,251,226,135,99,44,173,208,58,78,0,87,42,62,73,139,29,211,77,118,172,210,158,124,19,141,75,241,92,120,164,157,172,138,65,33,173,53,26,81,209,31,230,175,252,107,131,135,53,20,157,248,86,205,225,218,40,232,198,243,52,43,97,215,58,232,80,26,227,207,72,55,57,109,91,230,219,205,72,171,250,201,37,240,42,180,99,78,99,159,107,39,187,97,235,201,181,89,161,196,62,145,95,4,197,129,156,200,36,185,11,113,127,3,237,64,240,26,197,33,132,34,207,192,156,86,89,49,68,186,233,46,165,156,175,21,46,21,172,27, +252,126,26,13,219,54,65,136,131,242,205,47,207,78,205,64,41,72,41,39,147,62,78,121,99,208,151,81,21,27,49,100,180,170,36,180,165,226,67,220,136,109,60,238,228,98,141,61,241,154,135,208,47,208,4,53,23,31,138,10,195,202,146,95,77,35,3,131,54,113,15,183,100,173,11,70,1,202,53,203,237,172,101,239,248,246,216,158,7,136,1,72,56,241,172,40,158,201,111,90,89,193,163,225,143,71,45,54,47,181,227,191,253,174,70,182,39,221,19,45,127,105,55,93,52,235,195,27,107,116,234,92,24,208,227,124,10,195,21,139,63,123,125,183,228,251,159,243,226,141,54,209,196,21,232,20,27,249,177,61,40,53,22,254,187,75,27,186,153,36,101,3,52,178,237,173,123,85,146,160,198,253,148,33,68,131,86,85,128,154,179,21,252,10,112,215,235,36,101,180,154,79,72,225,49,117,221,51,68,236,38,159,191,111,229,148,26,46,154,73,172,54,250,243,9,235,244,166,188,2,103,253,40,138,244,97,84,227,63,219,77,127,44,186,13,4,41,151,106,189,244,249,41,35,7,217, +157,64,54,52,163,49,154,247,254,254,8,109,19,46,24,216,83,29,66,126,245,135,36,178,255,71,247,149,197,19,139,120,196,245,124,104,131,159,140,194,202,248,121,11,122,18,65,53,193,133,70,37,164,71,123,123,209,179,184,95,253,124,74,83,221,41,139,146,229,231,197,18,250,81,9,142,130,118,135,213,163,88,11,124,179,39,105,58,171,145,220,219,246,53,107,118,124,191,14,83,58,107,122,160,24,93,245,104,167,23,235,120,17,127,132,50,237,156,153,215,238,233,71,211,76,111,51,103,101,6,30,179,184,94,67,87,1,70,243,123,40,39,89,181,115,255,55,175,207,211,60,127,242,4,153,150,49,246,61,136,205,13,10,115,56,155,114,233,2,70,65,175,215,209,140,12,149,134,193,154,242,37,91,30,85,34,189,213,236,171,247,67,154,174,205,162,29,174,67,160,80,36,123,182,138,168,49,157,105,138,187,203,126,244,175,23,198,255,230,127,251,63,255,254,223,135,174,255,124,145,236,191,249,63,254,238,223,253,253,255,254,143,255,244,194,248,127,123,71,247,95,254,237,223,254,79, +255,252,111,255,151,127,246,47,254,231,139,203,196,5,122,113,113,113,217,59,255,121,73,87,201,31,210,76,212,103,241,128,142,223,158,105,179,203,43,246,150,110,250,34,55,161,73,35,44,87,193,78,242,52,167,39,163,95,178,169,101,48,191,107,95,189,147,219,148,72,85,185,23,90,215,165,38,111,125,205,85,191,219,232,178,35,205,51,160,55,55,175,126,202,202,254,105,242,171,219,63,141,195,10,143,142,201,77,165,36,189,250,158,116,170,7,133,86,28,37,205,25,134,235,59,223,116,40,115,29,115,200,248,214,77,156,5,133,229,31,228,94,57,150,5,179,46,189,231,88,125,163,62,99,171,87,120,221,213,120,21,234,84,215,222,10,241,214,155,115,208,9,233,13,106,240,140,126,183,23,7,156,162,166,82,99,47,79,255,175,255,254,63,253,219,127,248,87,127,243,143,127,162,255,191,99,255,155,191,251,155,255,240,247,255,233,63,255,3,246,90,247,127,254,47,255,250,31,254,14,123,41,27,123,173,251,127,248,206,215,255,14,156,127,254,255,11,78,139,157,36,63,139,85,20,255, +252,204,27,92,41,247,29,184,167,187,236,242,172,125,106,242,141,204,132,56,174,0,196,123,219,108,240,159,141,206,190,235,53,62,144,47,34,219,123,153,235,170,175,216,59,247,218,145,112,208,255,214,10,83,253,28,153,176,215,199,200,74,229,100,249,229,206,219,252,155,119,66,130,159,67,135,214,50,219,203,98,216,108,223,132,232,56,224,157,182,111,137,242,236,176,69,60,86,56,109,77,41,150,94,215,151,195,219,101,172,189,102,121,108,231,214,190,197,182,165,157,101,111,223,152,163,200,173,142,38,217,67,121,15,152,199,50,174,212,188,17,165,57,15,184,195,247,75,115,8,136,41,79,79,174,95,221,249,53,162,150,109,44,123,111,46,25,113,247,142,233,0,73,44,55,84,12,105,119,240,15,118,255,17,123,103,254,63,252,227,159,87,190,255,9,184,127,253,111,255,235,127,251,107,2,127,33,246,95,254,7,196,254,213,255,5,128,127,113,100, + diff --git a/uppsrc/CtrlLib/src.tpp/ArrayCtrl$en-us.tpp b/uppsrc/CtrlLib/src.tpp/ArrayCtrl_en-us.tpp similarity index 98% rename from uppsrc/CtrlLib/src.tpp/ArrayCtrl$en-us.tpp rename to uppsrc/CtrlLib/src.tpp/ArrayCtrl_en-us.tpp index 51635342e..dd0e39af5 100644 --- a/uppsrc/CtrlLib/src.tpp/ArrayCtrl$en-us.tpp +++ b/uppsrc/CtrlLib/src.tpp/ArrayCtrl_en-us.tpp @@ -1,3034 +1,3034 @@ -topic "ArrayCtrl"; -[2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,2#27521748481378242620020725143825:desc] -[0 $$3,0#96390100711032703541132217272105:end] -[H6;0 $$4,0#05600065144404261032431302351956:begin] -[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] -[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] -[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] -[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] -[b42;2 $$9,9#13035079074754324216151401829390:normal] -[{_}%EN-US -[ {{10000t/25b/25@3 [s0; [*@(229)4 ArrayCtrl]]}}&] -[s5;K &] -[s0; -@@image:2362&1443 -(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) -&] -[s0;*@3;3 &] -[s1;:ArrayCtrl`:`:class: [@(0.0.255)3 class][3 _][*3 ArrayCtrl][3 _:_][@(0.0.255)3 public][3 _][*@3;3 C -trl]&] -[s1; &] -[s0; [* -@@image:1843&731 -(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) -]&] -[s0;* &] -[s0; [* ArrayCtrl] implements basic grid functionality. It is typically -used for display and editing of arrays of values or (heterogeneous) -records. The records correspond to rows in the array, the individual -fields within each record can be either bound to columns or to -any generic [* Ctrl]`'s, thus supporting basic master`-detail functionality -with practically no additional cost.&] -[s0; &] -[s0; The standard derived classes extend various aspects of the ArrayCtrl -functionality. [* SqlArray] adds the nuts and bolts needed for -editing SQL`-based tables, whereas [* PopupTable] couples the ArrayCtrl -functionality with the drop`-down mechanism very similar to the -one used in popup menus. This opens the door for implementing -drop`-down controls like [* DropList] (aka [/ combo box]) or [* DropChoice] -(usually used together with a control of the [* EditField ]or [* DataPusher] -family to support coupling native data editing with drop`-down -selection, widely used for history or commonly used predefined -values. The [* ArrayPair] is, as its name implies, a pair of [* ArrayCtrl]`'s -with arrow buttons between them allowing to visually select subsets -of a certain set by moving its elements between the two lists.&] -[s0; &] -[s0; [*+117 The array data organization: indices and columns]&] -[s0; &] -[s0; There is a great deal of genericity supported by the ArrayCtrl -with respect both to its source data and its visual presentation. -Conceptually, the source array data is a matrix of [* Value]`'s. -There is a series of methods for accessing this source data, -the basic ones being [* Set] and [* Get]. The rows are addressed -by integer indices (zero based), the columns can be addressed -either by integer indices as well, or alternatively any source -column can be assigned an [* Id] identifier and addressed by it. -This is especially helpful in SQL`-based tables, where the table -column names can be used for the [* Id]`'s. A pair of methods, -[* GetPos] and [* GetId], can be used to translate these two column -addressing modes. In the code terminology, the columns in the -source data matrix are called [/ indices] whereas the visual (output) -columns are called simply [/ columns].&] -[s0; &] -[s0; The visual ArrayCtrl structure can be entirely independent of -the source data structure (although it`'s seldom helpful to make -the mapping completely arbitrary). Basically, each column can -have an arbitrary number of indices defining its source data. -Of course, the most common case is one index per column. This -is also simplest to address, because the column indices are equal -to the source data indices. However, many other combinations -are possible, each of which can be handy in certain situations:&] -[s0; &] -[s0;i150;O0; Index without a column: the most common of the `"special`" -cases is used mainly for row id`'s or other internally important -data without visual representation. The same behaviour can be -obtained by making a column invisible.&] -[s0;i150;O0; Column without an index (a [/ rownum column]): this less -common case can be used to display external data (not stored -in the table). &] -[s0;i150;O0; Multiple columns sharing the same index: this can be -used to display various aspects of a complex data object or to -display the same source data in multiple ways (e.g., a temperature -reading in Celsius and Fahrenheit degrees).&] -[s0;i150;O0; Column with multiple indices: can be used to display -information gathered from multiple source data columns. This -is used for instance in IconDes in TheIDE to display image identifiers -together with their sizes in the list. This is the most complicated -case because you have to implement a specific [* Display] for such -a multi`-index column.&] -[s0; &] -[s0; [* Note:] in the current U`+`+ version, the implementation of index`-less -columns (arrays with external data not stored in the source matrix) -is rather awkward. It is planned to enhance this feature in the -future by adding support for access to external data via a data -accessor interface object. &] -[s0; &] -[s0; [*+117 ArrayCtrl GUI: selection, editing, and local menu]&] -[s0; &] -[s0; Array rows can be selected using the mouse or keyboard. ArrayCtrl`'s -support both single`-selection (plain cursor) and multiselection -model. Of course, row selection can be controlled via the programmatic -array interface as well. The selection and cursor always spans -entire rows, it is not possible (without substantial patchwork) -to select only certain columns or individual cells.&] -[s0; &] -[s0; The ArrayCtrl rows can be inserted, edited and deleted either -programmatically, or via common GUI elements (mouse and keyboard -selection, local menu). It is possible to alter the standard -ArrayCtrl local menu using the [* WhenBar] callback.&] -[s0; &] -[s0; [* Note:] it is worth noting that the standard editing keys ([* Insert] -`= row insertion, [* Ctrl`+Enter] `= editing and [* Ctrl`+Delete] -`= deletion) are not hardcoded in the ArrayCtrl`'s [* Key] method, -they are mere hotkeys for the relevant local menu items. When -you change the ArrayCtrl`'s local menu, the editing hotkeys change -accordingly.&] -[s0; &] -[s0; A special but rather important case of array editing is [/ sorting]: -there is no specific standard GUI for that. If you aren`'t content -with programmatic sorting (e.g. after opening a dialog or after -loading the array data), you have to implement some GUI for that -as well. In certain cases, it is cool to use the [* HeaderCtrl] -[* WhenAction] method to allow sorting the array by clicking on -the header columns; alternatively you can add a sort function -to the array local menu or possibly somewhere else (like a standalone -button in the dialog).&] -[s0; &] -[s0; [* Insertion tricks: before, after, and the secrets of the AppendLine]&] -[s0; &] -[s0; In todays text editors, when you type a new letter, it is trivial -to see where in the text will the new letter go. This is so because -the caret is always positioned between a pair of successive letters -and thus is well defines the insertion spot. Additionally, the -caret can be placed in front of the first letter or after the -last letter, which naturally allows typing some text at the very -beginning or end.&] -[s0; &] -[s0; When inserting new rows into the array controls, things are -a bit more tricky. This is so because, unlike in the text editor, -the cursor is not placed [/ between] two successive rows, but [/ over] -a certain row. This is of course necessary to make row editing -possible (note that in the aforementioned text editor analogy, -a single letter is an atomic object whereas in the array it is -a potentially complex structure consisting of many columns and -data items). However, when it comes to row insertion, it has -two main troubles as its implication:&] -[s0; &] -[s0;i150;O9; [* 1.]-|It is necessary to decide somehow whether the new -row will go [/ above] or [/ below] the cursor row.&] -[s0;i150;O9; [* 2.]-|In an array with [/ n] rows, there are [/ n`+1] possible -locations for a new row (before the row #0, #1 ... #([/ n`-1]) -and after the last row), but only [/ n] distinct cursor locations.&] -[s0; &] -[s0; Over the years, during the development of U`+`+, we experimented -with multiple ways to overcome these logical problems. As a result -of this, the ArrayCtrl supports a few methods allowing to fine`-tune -the row insertion mechanism. It is also worth noting that there -are cases, like in the case of SQL`-based tables, where the row -ordering is arbitrary or implicit and the exact `'location`' -of a new row doesn`'t make any sense. In such cases, it is possible -to replace array [/ insertion] function with the [/ append] function -emphasizing the fact that the visual row order is unimportant -and that insertion means merely adding a new record to the record -set.&] -[s0; &] -[s0; For arrays in which the order is important, there are two ways -to solve the [/ n`+1] row positions dilemma:&] -[s0; &] -[s0;i150;O9; [* 1.]-|Replacing the Insert function with a pair of functions -for inserting a new row [/ before] / [/ after] the current row.&] -[s0;i150;O9; [* 2.]-|Visually extending the array by adding a pseudo`-row -with no real data at its end; this creates the [/ n`+1]`-th cursor -position necessary to denote all the available row insertion -locations.&] -[s0; &] -[s0; In the first case, it is also possible to select which of the -insertion functions (before / after) takes precedence (which -of the two actions should be bound to the standard [* Insert] hotkey). -This corresponds to the [* BeforeAfterInserting] and [* AfterBeforeInserting] -methods. The second case is called the [* AppendLine] and is activated -by setting the property with the same name.&] -[s0; &] -[s0; To make all this even more interesting, a special mechanism -called [* InsertAppend] is available to make array filling as easy -as possible. When activated and the user appends a new row at -the table end, after pressing [* Enter] (to commit the inserted -row) another row is automatically added after it and opened for -editing. This mechanism is turned on by default, but it can be -disable by setting the [* NoInsertAppend] property to true.&] -[s3; &] -[s0; &] -[s0; &] -[ {{10000t/25b/25@3 [s0; [*@(229)4 Categorized method summary]]}}&] -[s9; The following table summarizes ArrayCtrl methods according to -the aspect of functionality they support together with a very -brief description. For more thorough documentation of the individual -methods see below.&] -[s0; &] -[ {{2337:7663-1 [s0; [* Initialization and configuration]] -:: [s0;%- ] -:: [s0; Reset] -:: [s0; clears column `& index definition and restores all ArrayCtrl -default properties] -:: [s0; IsEdit] -:: [s0; true `= array state automaton is currently in row editing mode] -:: [s0; IsInsert] -:: [s0; true `= array state automaton is currently in row insertion -mode] -:: [s0; SetLineCy] -:: [s0; sets array row height (global or individual for a single row)] -:: [s0; GetLineCy] -:: [s0; returns logical array row height (value set by preceding SetLineCy)] -:: [s0; GetLineY] -:: [s0; returns [/ y] position of given row (relative to table beginning)] -:: [s0; `[No`]AppendLine] -:: [s0; `[do not`] display an additional pseudo`-row used for row insertion] -:: [s0; IsAppendLine] -:: [s0; returns actual value of the [* AppendLine] property] -:: [s0; ShowAppendLine] -:: [s0; scrolls the table view to display the appending line] -:: [s0; `[No`]Inserting] -:: [s0; `[do not`] allow inserting new rows] -:: [s0; IsInserting] -:: [s0; returns actual value of the [* Inserting] property] -:: [s0; BeforeAfterInserting] -:: [s0; allow inserting rows before / after current row (default `= -before)] -:: [s0; AfterBeforeInserting] -:: [s0; allow inserting rows before / after current row (default `= -after)] -:: [s0; NoInsertAppend] -:: [s0; do not autoinsert another row after committing last row insertion] -:: [s0; IsEditing] -:: [s0; true `= (at least one column of the) ArrayCtrl supports editing] -:: [s0; `[No`]Duplicating] -:: [s0; `[do not`] allow row duplication] -:: [s0; IsDuplicating] -:: [s0; returns actual value of the [* Duplicating] property] -:: [s0; Appending] -:: [s0; allow appending new row at the table end] -:: [s0; IsAppending] -:: [s0; returns actual state of the [* Appending] property] -:: [s0; AutoAppending] -:: [s0; allow appending new row at the table end, Enter appends another -one] -:: [s0; IsAutoAppending] -:: [s0; returns actual state of [* AutoAppending] property] -:: [s0; `[No`]Removing] -:: [s0; `[do not`] allow table row removing] -:: [s0; IsRemoving] -:: [s0; returns actual state of the [* Removing] property] -:: [s0; `[No`]AskRemove] -:: [s0; `[do not`] prompt user to confirm row removal] -:: [s0; IsAskRemove] -:: [s0; returns actual state of the [* AskRemove] property] -:: [s0; Moving] -:: [s0; allow row swapping (moving a row before / after neighbouring -row)] -:: [s0; IsMoving] -:: [s0; returns actual state of the [* Moving] property] -:: [s0; `[No`]Header] -:: [s0; `[do not`] display table header] -:: [s0; `[No`]Track] -:: [s0; `[do not`] animate tracking table column widths] -:: [s0; `[No`]VertGrid] -:: [s0; `[do not`] display column breaks] -:: [s0; `[No`]HorzGrid] -:: [s0; `[do not`] display row breaks] -:: [s0; `[No`]Grid] -:: [s0; `[do not`] display both grids (VertGrid `+ HorzGrid)] -:: [s0; GridColor] -:: [s0; set grid line color] -:: [s0; EvenRowColor] -:: [s0; background color for even rows] -:: [s0; OddRowColor] -:: [s0; background color for odd rows] -:: [s0; RowFormat] -:: [s0; formats menu items substituting given word for the term `'row`'] -:: [s0; RowName] -:: [s0; sets the context`-relevant word to substitute for `'row`' in -the local menu texts] -:: [s0; NoCursor] -:: [s0; do not highlight cursor row] -:: [s0; `[No`]MouseMoveCursor] -:: [s0; automatically move cursor as the mouse moves (used e.g. in PopupTable)] -:: [s0; `[No`]AutoHideSb] -:: [s0; `[do not`] display scroll bar only when necessary] -:: [s0; MultiSelect] -:: [s0; enable selecting multiple rows at the same time] -:: [s0; ColumnWidths] -:: [s0; sets logical column widths using a formatted string, e.g. `"1 -5 10 10 5 1`"]}}&] -[s0; &] -[ {{2337:7663-1 [s0; [* Array index `& column structure management]] -:: [s0;%- ] -:: [s0; IndexInfo] -:: [s0; returns the [* IdInfo] structure describing an index (see below)] -:: [s0; AddIndex] -:: [s0; adds a new index to the source data matrix] -:: [s0; GetIndexCount] -:: [s0; returns number of index columns (columns in the source data -matrix)] -:: [s0; GetId] -:: [s0; returns identifier of a given index (given by its integral index)] -:: [s0; GetPos] -:: [s0; returns integral index of source matrix column ([/ index]) identified -by an [* Id]] -:: [s0; SetId] -:: [s0; sets the [* Id] identifier for a given index (column of the source -matrix)] -:: [s0; AddKey] -:: [s0; sets up the first index to act as primary key (often used for -SQL tables)] -:: [s0; GetKeyId] -:: [s0; returns primary key identifier (equal to [* GetId(0)])] -:: [s0; AddColumn] -:: [s0; adds a column`-index pair to the table (one data column, one -output column)] -:: [s0; AddColumnAt] -:: [s0; adds a column bound to a given index] -:: [s0; AddRowNumColumn] -:: [s0; adds a column without an index (used for external data)] -:: [s0; GetColumnCount] -:: [s0; returns number of (visual) columns in the table] -:: [s0; FindColumnWithPos] -:: [s0; locates table column according to given index number] -:: [s0; FindColumnWithId] -:: [s0; locates table column according to index identifier] -:: [s0; ColumnAt] -:: [s0; returns the [* ArrayCtrl`::Column] structure describing given column] -:: [s0; HeaderTab] -:: [s0; returns the [* HeaderCtrl`::Column] structure for the given column] -:: [s0; HeaderObject] -:: [s0; returns a reference to the [* HeaderCtrl] object for this table] -:: [s0; SerializeHeader] -:: [s0; serialize header layout information (column widths etc.)] -:: [s0; AddCtrl] -:: [s0; adds an outer control`-index pair to the table (one data column, -one outer Ctrl)] -:: [s0; AddCtrlAt] -:: [s0; adds an outer control bound to a given index] -:: [s0; AddRowNumCtrl] -:: [s0; adds an outer control without an index `- used ([/ seldom]) for -external data] -:: [s0; SetDisplay] -:: [s0; sets display for a given table column or cell] -:: [s0; GetDisplay] -:: [s0; returns column / cell display] -:: [s0; SetCtrl] -:: [s0; sets a [* Ctrl] object for custom editing of a given cell] -:: [s0; GetTotalCy] -:: [s0; returns total row height] -:: [s0; GetLineAt] -:: [s0; locate table row when given an [/ y] position (relative to table -top)] -:: [s0; GetClickColumn] -:: [s0; returns column number of last clicked column (Null if clicked -outside existing rows)] -:: [s0; GetClickRow] -:: [s0; returns row number of last clicked row (Null if clicked outside -existing rows)] -:: [s0; GetClickPos] -:: [s0; returns Point(GetClickColumn(), GetClickRow())]}}&] -[s0; &] -[ {{2337:7663-1 [s0; [* Data setting `& retrieval]] -:: [s0;%- ] -:: [s0; SetCount] -:: [s0; sets number of rows in the array] -:: [s0; SetVirtualCount] -:: [s0; sets number of rows in the array with external data] -:: [s0; GetCount] -:: [s0; returns number of rows] -:: [s0; Clear] -:: [s0; clears array data, identical to [* SetCount(0)]] -:: [s0; Shrink] -:: [s0; shrinks source data matrix to the minimum necessary size] -:: [s0; Get] -:: [s0; returns given Value element of the source data matrix] -:: [s0; GetOriginal] -:: [s0; returns given element of source data matrix before editing] -:: [s0; Set] -:: [s0; sets given element of the source data matrix] -:: [s0; GetKey] -:: [s0; returns given primary key (column #0 in the data matrix)] -:: [s0; GetOriginalKey] -:: [s0; returns `'old`' value of primary key before editing] -:: [s0; GetColumn] -:: [s0; returns value of a given output column (according to its index -mapping)] -:: [s0; GetConvertedColumn] -:: [s0; returns value of a given output column after applying its [* Convert]] -:: [s0; ReadRow] -:: [s0; returns a row of the source data matrix] -:: [s0; Add] -:: [s0; adds a new row at the end of table] -:: [s0; Insert] -:: [s0; inserts a new row into the table] -:: [s0; Remove] -:: [s0; removes a given table row] -:: [s0; SwapUp] -:: [s0; exchanges a table row with the preceding row] -:: [s0; SwapDown] -:: [s0; exchanges a table row with the next row] -:: [s0; Sort] -:: [s0; sorts table rows using a given predicate] -:: [s0; ClearCache] -:: [s0; clears data conversion cache] -:: [s0; InvalidateCache] -:: [s0; invalidates given table row in the conversion cache]}}&] -[s0; &] -[ {{2337:7663-1 [s0; [* Cursor `& selection management]] -:: [s0;%- ] -:: [s0; GetSelectCount] -:: [s0; returns number of currently selected rows] -:: [s0; IsSelection] -:: [s0; checks whether any rows are selected (identical to [* GetSelectCount() -> 0])] -:: [s0; Select] -:: [s0; selects / unselects given row or a series of rows] -:: [s0; IsSelected] -:: [s0; checks whether given row is selected] -:: [s0; ClearSelection] -:: [s0; clears the current selection] -:: [s0; SetCursor] -:: [s0; moves array cursor to a new row] -:: [s0; KillCursor] -:: [s0; removes the cursor away from the table] -:: [s0; CancelCursor] -:: [s0; cancels editing of current row] -:: [s0; IsCursor] -:: [s0; checks whether cursor is in the table (identical to [* GetCursor() ->`= 0])] -:: [s0; GetCursor] -:: [s0; returns current cursor row, `-1 when none] -:: [s0; GoBegin] -:: [s0; moves the cursor to the first table row] -:: [s0; GoEnd] -:: [s0; moves the cursor to the last table row] -:: [s0; GetCursorSc] -:: [s0; returns the location of the cursor row within the table view -area] -:: [s0; ScCursor] -:: [s0; scrolls the table to move the cursor row to given location within -the table view] -:: [s0; CenterCursor] -:: [s0; scrolls the table to move cursor into the middle of the current -view] -:: [s0; ScrollInto] -:: [s0; scrolls the table by minimum amount necessary to make given -row visible] -:: [s0; ScrollIntoCursor] -:: [s0; scrolls the table by minimum amount necessary to make cursor -row visible] -:: [s0; GetScroll] -:: [s0; returns current table scrollbar location] -:: [s0; ScrollTo] -:: [s0; sets table scrollbar location] -:: [s0; Find] -:: [s0; locates table row containing a given element] -:: [s0; FindSetCursor] -:: [s0; moves the cursor to table row containing a given element]}}&] -[s0;3 &] -[s0; &] -[s0; &] -[ {{2337:7663-1 [s0; [* GUI elements]] -:: [s0;%- ] -:: [s0; StdBar] -:: [s0; the default array local menu] -:: [s0; IsModified] -:: [s0; checks modification state of given array cell] -:: [s0; StartEdit] -:: [s0; open current array row for editing] -:: [s0; GetEditColumn] -:: [s0; returns the column being currently edited] -:: [s0; DoEdit] -:: [s0; corresponds to the local menu `'Edit`' function] -:: [s0; DoInsert] -:: [s0; corresponds to the local menu `'Insert`' function] -:: [s0; DoInsertBefore] -:: [s0; corresponds to the local menu `'Insert before`' function] -:: [s0; DoInsertAfter] -:: [s0; corresponds to the local menu `'Insert after`' function] -:: [s0; DoAppend] -:: [s0; corresponds to the local menu `'Append`' function] -:: [s0; DoRemove] -:: [s0; corresponds to the local menu `'Remove`' function] -:: [s0; DoDuplicate] -:: [s0; corresponds to the local menu `'Duplicate`' function] -:: [s0; DoSelectAll] -:: [s0; selects the entire array] -:: [s0; AcceptEnter] -:: [s0; commits the currently edited row and possibly begins insertion -of another row]}}&] -[s0; &] -[ {{2337:7663-1 [s0; [* Notification callbacks]] -:: [s0;%- ] -:: [s0; WhenLeftClick] -:: [s0; left mouse click within the array] -:: [s0; WhenLeftDouble] -:: [s0; left mouse doubleclick within the array] -:: [s0; WhenSel] -:: [s0; called when cursor or selection status of widget changes] -:: [s0; WhenCursor] -:: [s0; called whenever the cursor location changes [/ (deprecated, use -WhenSel)]] -:: [s0; WhenKillCursor] -:: [s0; called when the cursor moves away from the table [/ (deprecated, -use WhenSel)]] -:: [s0; WhenSelection] -:: [s0; called whenever current selection changes [/ (deprecated, use -WhenSel)]] -:: [s0; WhenEnterRow] -:: [s0; called whenever the cursor moves to a new row [/ (deprecated, -use WhenSel)]] -:: [s0; WhenUpdateRow] -:: [s0; called after updating a row] -:: [s0; WhenAcceptRow] -:: [s0; additional row validation callback] -:: [s0; WhenStartEdit] -:: [s0; called after initiating row editing] -:: [s0; WhenAcceptEdit] -:: [s0; called after accepting changes to a given row] -:: [s0; WhenArrayAction] -:: [s0; called whenever array source data changes (after insert / delete -/ edit)] -:: [s0; WhenBar] -:: [s0; can be used to supply custom local menu for the array] -:: [s0; WhenCtrlsAction] -:: [s0; called by [* WhenAction] callbacks of internally created controls]}}&] -[s3; &] -[s0; &] -[s0; &] -[s0; &] -[ {{10000t/25b/25@3 [s0; [*@(229)4 Detailed method description]]}}&] -[s0; &] -[s0; [* Initialization and configuration]&] -[s3; &] -[s0; &] -[s5;:ArrayCtrl`:`:Reset`(`): [@(0.0.255) void]_[* Reset]()&] -[s2; Clears table rows and resets all array properties to their default -values.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:ShowAppendLine`(`): [@(0.0.255) void]_[* ShowAppendLine]()&] -[s2; Show an additional pseudo`-row at the table end. When clicked, -a new row is appended to the array.&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:ArrayCtrl`:`:AcceptRow`(`):%- [@(0.0.255) bool]_[* AcceptRow]()&] -[s2; When there are slave widgets (connected using AddCtrl), the -visible content of ArrayCtrl line is normally updated when cursor -moves to another line (and the move is prevented if any slave -widget has invalid value). This method tries to check for invalid -values and updates the row immediately. Returns true if there -were no invalid values in slave widgets.&] -[s3;%- &] -[s4; &] -[s5;:ArrayCtrl`:`:IsEdit`(`)const: [@(0.0.255) bool]_[* IsEdit]()_[@(0.0.255) const]&] -[s2; Checks whether the array is currently being edited.&] -[s7; [*/ Return value]-|[* true] `= a row is currently open for editing, -[* false] `= array is in normal browsing mode&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:IsInsert`(`)const: [@(0.0.255) bool]_[* IsInsert]()_[@(0.0.255) const]&] -[s2; Checks whether a new row is currently being inserted.&] -[s7; [*/ Return value]-|[* true] `= newly inserted row is currently being -edited, [* false] when not&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:SetLineCy`(int`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* SetLineCy]([@(0.0.255) i -nt]_[*@3 cy])&] -[s2; Sets the (default) array row height. For certain rows, this -can be overriden by the two`-parameter version of this method.&] -[s7; [*C@3 cy]-|row height in pixels&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:SetLineCy`(int`,int`): [@(0.0.255) void]_[* SetLineCy]([@(0.0.255) int]_[*@3 i -], [@(0.0.255) int]_[*@3 cy])&] -[s2; Sets row height for a given row. This overrides the default -value set by the one`-parameter version of this method.&] -[s7; [*C@3 i]-|row index (zero based)&] -[s7; [*C@3 cy]-|row height in pixels, [* Null] `= use default row height&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:GetLineCy`(`)const: [@(0.0.255) int]_[* GetLineCy]()_[@(0.0.255) const]&] -[s2; Returns default array row height.&] -[s7; [*/ Return value]-|row height in pixels&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:GetLineY`(int`)const: [@(0.0.255) int]_[* GetLineY]([@(0.0.255) int]_[*@3 i -])_[@(0.0.255) const]&] -[s2; Returns [/ y] position of given array row (the pixel distance -between the top of first array row and [/ i]`-th row, i.e. sum -of heights of all rows above this row).&] -[s7; [*C@3 i]-|row index (zero based)&] -[s7; [*/ Return value]-|Vertical position of row top in pixels (relative -to array beginning)&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:GetLineCy`(int`)const: [@(0.0.255) int]_[* GetLineCy]([@(0.0.255) int]_[*@3 i -])_[@(0.0.255) const]&] -[s2; Returns the height of a given row (either the row`-specific -row height, or, when Null, the default row height).&] -[s7; [*C@3 i]-|row index (zero based)&] -[s7; [*/ Return value]-|row height in pixels&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:AppendLine`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* AppendLine -]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2; The AppendLine property controls whether the array displays -an additional `'append`' row after its last (real) row. &] -[s7; [*C@3 b]-|[* true] `= display appending row, [* false] `= hide it&] -[s7; [*/ Return value]-|[* `*this]&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:NoAppendLine`(`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoAppendLine -]()&] -[s2; Hide the appending line (identical to [* AppendLine(false)]).&] -[s7; [*/ Return value]-|[* `*this]&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:IsAppendLine`(`)const: [@(0.0.255) bool]_[* IsAppendLine]()_[@(0.0.255) c -onst]&] -[s2; Returns current state of the [* AppendLine] property.&] -[s7; [*/ Return value]-|[* true] `= display appending pseudo`-row at the -end of the array&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:Inserting`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* Inserting]( -[@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2; Enable / disable inserting new rows in the array (no matter -which insertion mechanism is selected).&] -[s7; [*C@3 b]-|[* true] `= enable insertion, [* false] `= disable it&] -[s7; [*/ Return value]-|[* `*this]&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:NoInserting`(`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoInserting]( -)&] -[s2; Disables row insertion (identical to [* Inserting(false)]).&] -[s7; [*/ Return value]-|[* `*this]&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:IsInserting`(`)const: [@(0.0.255) bool]_[* IsInserting]()_[@(0.0.255) con -st]&] -[s2; Returns current state of the [* Inserting] property.&] -[s7; [*/ Return value]-|[* true] `= row insertion is enabled, [* false] -when not&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:Appending`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* Appending]( -[@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2; Enable / disable adding new rows at the table end.&] -[s7; [*C@3 b]-|[* true] `= enable row appending, [* false] `= disable it&] -[s7; [*/ Return value]-|[* `*this]&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:IsAppending`(`)const: [@(0.0.255) bool]_[* IsAppending]()_[@(0.0.255) con -st]&] -[s2; Returns current state of the [* Appending] property.&] -[s7; [*/ Return value]-|[* true] `= appending rows is enabled, [* false] -when not.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:AutoAppending`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* AutoApp -ending]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2; Same as [* Appending] but Enter pressed when editing a new row -accepts it and adds another one at the table end.&] -[s7; [*C@3 b]-|[* true ]to enable the mode&] -[s7; [*/ Return value]-|[* `*this]&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:IsAutoAppending`(`)const: [@(0.0.255) bool]_[* IsAutoAppending]()_[@(0.0.255) c -onst]&] -[s2; Returns current state of [* AutoAppending] property.&] -[s7; [*/ Return value]-|[* true] `= [* AutoAppending ]is active&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:BeforeAfterInserting`(int`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* B -eforeAfterInserting]([@(0.0.255) int]_[*@3 q]_`=_[@3 1])&] -[s2; Activate before / after row insertion mechanism ([* Insert] hotkey -`= before).&] -[s7; [*/ Return value]-|[* `*this]&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:AfterBeforeInserting`(int`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* A -fterBeforeInserting]([@(0.0.255) int]_[*@3 q]_`=_[@3 2])&] -[s2; Activate before / after row insertion mechanism ([* Insert] hotkey -`= after)&] -[s7; [*/ Return value]-|[* `*this]&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:Duplicating`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* Duplicati -ng]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2; Enable / disable row duplication. Note that this property only -controls whether the `'Duplicate`' item should be present in -the array local menu. Of course, nothing can prevent you from -supporting duplication in some other way, or from calling the -[* DoDuplicate] method as you see fit.&] -[s7; [*C@3 b]-|[* true] `= enable duplication, [* false] `= disable it&] -[s7; [*/ Return value]-|[* `*this]&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:NoDuplicating`(`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoDuplicati -ng]()&] -[s2; Disable row duplication (identical to [* Duplicating(false)]).&] -[s7; [*/ Return value]-|[* `*this]&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:IsDuplicating`(`)const: [@(0.0.255) bool]_[* IsDuplicating]()_[@(0.0.255) c -onst]&] -[s2; Returns the state of the [* Duplicating] property.&] -[s7; [*/ Return value]-|[* true] `= local menu offers row duplication, -[* false] when not&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:NoInsertAppend`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoInse -rtAppend]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2; Enables / disables the auto`-append mechanism (see above section -on inserting rows).&] -[s7; [*C@3 b]-|[* true] `= disable InsertAppend mechanism, [* false] `= -enable it (the default)&] -[s7; [*/ Return value]-|[* `*this]&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:IsEditing`(`)const: [@(0.0.255) bool]_[* IsEditing]()_[@(0.0.255) const]&] -[s2; Checks whether at least one array column supports editing (whether -it is possible to [/ open] a row for editing).&] -[s7; [*/ Return value]-|[* true] `= row editing is possible, [* false] when -not&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:Removing`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* Removing]([@(0.0.255) b -ool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2; Enable / disable deleting rows from the table.&] -[s7; [*C@3 b]-|[* true] `= enable deletion, [* false] `= disable it&] -[s7; [*/ Return value]-|[* `*this]&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:NoRemoving`(`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoRemoving]()&] -[s2; Disable deleting table rows (identical to [* Removing(false)]).&] -[s7; [*/ Return value]-|[* `*this]&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:IsRemoving`(`)const: [@(0.0.255) bool]_[* IsRemoving]()_[@(0.0.255) const -]&] -[s2; Returns current state of the [* Removing] property.&] -[s7; [*/ Return value]-|[* true] `= row deletion is enabled, [* false ]when -not&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:AskRemove`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* AskRemove]( -[@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2; Sets whether the user must manually confirm array row deletion. -When set to [* true], every time a row is to be deleted, a confirmation -dialog pops up. When set to [* false], rows are deleted automatically -without any further confirmation.&] -[s7; [*C@3 b]-|[* true] `= prompt user to confirm row deletion, [* false] -`= delete rows instantly&] -[s7; [*/ Return value]-|[* `*this]&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:NoAskRemove`(`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoAskRemove]( -)&] -[s2; Disables user confirmation of row deletion (equivalent to [* AskRemove(false)]).&] -[s7; [*/ Return value]-|[* `*this]&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:IsAskRemove`(`)const: [@(0.0.255) bool]_[* IsAskRemove]()_[@(0.0.255) con -st]&] -[s2; Returns current state of the [* AskRemove] property.&] -[s7; [*/ Return value]-|[* true] `= user confirmation is needed to delete -rows, [* false] `= rows are deleted immediately&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:Moving`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* Moving]([@(0.0.255) b -ool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2; Enable / disable row swapping. When set to [* true], it is possible -to move an array row up and down by swapping it with the previous -/ next row. This can be used to reorder array rows in a visually -straightforward manner.&] -[s7; [*C@3 b]-|[* true] `= offer row moving in the local menu, [* false] -`= don`'t&] -[s7; [*/ Return value]-|[* `*this]&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:IsMoving`(`)const: [@(0.0.255) bool]_[* IsMoving]()_[@(0.0.255) const]&] -[s2; Returns current state of the [* Moving] property.&] -[s7; [*/ Return value]-|[* true] `= local menu supports row swapping, -[* false] `= it doesn`'t&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:Header`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* Header]([@(0.0.255) b -ool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2; Show / hide the [*^topic`:`/`/CtrlLib`/src`/HeaderCtrl`$en`-us^ HeaderCtrl] -object for this table.&] -[s7; [*C@3 b]-|[* true] `= show table header, [* false] `= hide it&] -[s7; [*/ Return value]-|[* `*this]&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:NoHeader`(`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoHeader]()&] -[s2; Hide table header (equivalent to [* Header(false)]).&] -[s7; [*/ Return value]-|[* `*this]&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:Track`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* Track]([@(0.0.255) b -ool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2; Animate array column resizing. This is equivalent to setting -the [*^topic`:`/`/CtrlLib`/src`/HeaderCtrl`$en`-us`#`:`:HeaderCtrl`:`:Track`(bool`)^ T -rack] property in the array HeaderCtrl.&] -[s7; [*C@3 b]-|[* true] `= repaint the array repeatedly while dragging -column widths, [* false] `= regenerate everything only after drag -`& drop is finished.&] -[s7; [*/ Return value]-|[* `*this]&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:NoTrack`(`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoTrack]()&] -[s2; Do not animate array column resizing (equivalent to [* Track(false)]).&] -[s7; [*/ Return value]-|[* `*this]&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:VertGrid`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* VertGrid]([@(0.0.255) b -ool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2; Show / hide vertical array grid lines (separating array columns).&] -[s7; [*C@3 b]-|[* true] `= show vertical grid lines, [* false] `= hide them&] -[s7; [*/ Return value]-|[* `*this]&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:NoVertGrid`(`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoVertGrid]()&] -[s2; Hide vertical grid lines (equivalent to [* VertGrid(false)]).&] -[s7; [*/ Return value]-|[* `*this]&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:HorzGrid`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* HorzGrid]([@(0.0.255) b -ool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2; Show / hide horizontal grid lines (separating array rows).&] -[s7; [*C@3 b]-|[* true] `= show horizontal grid lines, [* false] `= hide -them&] -[s7; [*/ Return value]-|[* `*this]&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:NoHorzGrid`(`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoHorzGrid]()&] -[s2; Hide horizontal grid lines (equivalent to [* HorzGrid(false)]).&] -[s7; [*/ Return value]-|[* `*this]&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:Grid`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* Grid]([@(0.0.255) b -ool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2; Show / hide both horizontal and vertical grid lines (equivalent -to [* HorzGrid(b).VertGrid(b)]).&] -[s7; [*C@3 b]-|[* true] `= show grid line matrix, [* false] `= hide all -grid lines&] -[s7; [*/ Return value]-|[* `*this]&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:NoGrid`(`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoGrid]()&] -[s2; Hide horizontal and vertical grid lines (equivalent to [* Grid(false)]).&] -[s7; [*/ Return value]-|[* `*this]&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:GridColor`(Color`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* GridColor]( -[_^Color^ Color]_[*@3 c])&] -[s2; Sets the color for grid lines.&] -[s7; [*C@3 c]-|new grid line color&] -[s7; [*/ Return value]-|[* `*this]&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:EvenRowColor`(Color`,Color`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* E -venRowColor]([_^Color^ Color]_[*@3 paper]_`=_Blend(SColorMark, SColorPaper, -[@3 220]), [_^Color^ Color]_[*@3 ink]_`=_SColorText)&] -[s2; Sets the paper and ink (background and foreground) color for -even array rows. In certain cases setting a different background -color for odd and even rows helps to simplify visual orientation -in the arrays (especially when the array has many columns).&] -[s2; [* Note:] the even / odd row terminology refers to the natural -array row numbering, so first array row is [/ odd] and the second -is [/ even]. This is in contrast to the zero`-baesd integral row -indexing, where the first array row has index 0.&] -[s7; [*C@3 paper]-|background color to use for second, fourth, sixth -etc. array row&] -[s7; [*C@3 ink]-|foreground color for even rows&] -[s7; [*/ Return value]-|[* `*this]&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:OddRowColor`(Color`,Color`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* O -ddRowColor]([_^Color^ Color]_[*@3 paper]_`=_SColorInfo, [_^Color^ Color]_[*@3 ink]_`=_SCo -lorText)&] -[s2; Sets the paper and ink (background and foreground) color for -odd array rows.&] -[s7; [*C@3 paper]-|background color to use for first, third, fifth etc. -array row&] -[s7; [*C@3 ink]-|foreground color for odd rows&] -[s7; [*/ Return value]-|[* `*this]&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:NoCursor`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoCursor]([@(0.0.255) b -ool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2; Turns on / off highlighting cursor row.&] -[s7; [*C@3 b]-|[* true] `= do not highlight cursor row, [* false] `= default -behaviour (cursor row is shown in inverse colors)&] -[s7; [*/ Return value]-|[* `*this]&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:MouseMoveCursor`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* Mouse -MoveCursor]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2; Enables / disables automatical cursor row switching as the mouse -cursor moves over the array rows.&] -[s7; [*C@3 b]-|[* true] `= automatically switch cursor row, [* false] `= -only upon clicks and keyboard navigation&] -[s7; [*/ Return value]-|[* `*this]&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:NoMouseMoveCursor`(`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoMouse -MoveCursor]()&] -[s2; Disable automatical cursor row switching (equivalent to [* MouseMoveCursor(false)]) -.&] -[s7; [*/ Return value]-|[* `*this]&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:AutoHideSb`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* AutoHideSb -]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2; When set to [* true], the vertical scrollbar at the right array -edge is displayed only when the total row height exceeds the -array view height. When set to [* false], the scrollbar is shown -all the time.&] -[s7; [*C@3 b]-|[* true] `= show / hide the scrollbar as necessary, [* false] -`= display it unconditionally&] -[s7; [*/ Return value]-|[* `*this]&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:NoAutoHideSb`(`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoAutoHideSb -]()&] -[s2; Display vertical scrollbar all the time (equivalent to [* AutoHideSb(false)]).&] -[s7; [*/ Return value]-|[* `*this]&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:HideSb`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* HideSb]([@(0.0.255) b -ool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2; Hides vertical scrollbar (even if it would be needed).&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:AutoHideHorzSb`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* AutoHi -deHorzSb]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2; Makes horizontal scroll bar (active if HeaderCtrl is in absolute -mode only) to autohide. Default is on.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:NoAutoHideHorzSb`(`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoAutoHi -deHorzSb]()&] -[s2; Same as AutoHideHorzSb(false).&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:HideHorzSb`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* HideHorzSb -]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2; Unconditionally hides horizontal scrollbar (active if HeaderCtrl -is in absolute mode only).&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:MultiSelect`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* MultiSele -ct]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2; Enable / disable multiple row selection. &] -[s7; [*C@3 b]-|[* true] `= allow selecting multiple rows at the same time, -[* false] `= only one row at a time&] -[s7; [*/ Return value]-|[* `*this]&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:IsMultiSelect`(`)const: [@(0.0.255) bool]_[* IsMultiSelect]()_[@(0.0.255) c -onst]&] -[s2; Returns true if ArrayCtrl is in multiselect mode.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:NoBackground`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoBackgr -ound]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2; Sets the widget into transparent mode `- background is not painted -and Transparent is activated `- a result, anything painted behind -the widget is visible, allowing client code to provide any background -it needs.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:PopUpEx`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* PopUpEx]([@(0.0.255) b -ool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2; Activates showing small popup windows with cell content when -mouse is over and cell is to big to fit current dimensions. Default -is activated.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:NoPopUpEx`(`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoPopUpEx]()&] -[s2; Same as PopUpEx(false).&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:NoFocusSetCursor`(`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoFocusS -etCursor]()&] -[s2; Normally, when ArrayCtrl gets a focus and no cursor is set (and -cursor is allowed and there is at least one line), ArrayCtrl -a sets the cursor to the first line. This modifier deactivates -this feature.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:MovingHeader`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* MovingHe -ader]([@(0.0.255) bool]_[*@3 b])&] -[s2; Activates dragging columns in header. Default is active.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:NoMovingHeader`(`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoMovingHe -ader]()&] -[s2; Same as MovingHeader(false).&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:ColumnSortFindKey`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* Col -umnSortFindKey]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2; Before ColumnSort orders the ArrayCtrl, the key of current row -(with cursor) is stored and after sorting, it is restored.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:AllSorting`(`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* AllSorting]()&] -[s2; If set, Sorting() is invoked for all columns (added either before -or after this modifier is called).&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:ColumnSortSecondary`(const ArrayCtrl`:`:Order`&`): [_^ArrayCtrl^ Arra -yCtrl][@(0.0.255) `&]_[* ColumnSortSecondary]([@(0.0.255) const]_[_^ArrayCtrl`:`:Order^ O -rder][@(0.0.255) `&]_[*@3 order])&] -[s2; Sets secondary sorting predicate for column sorts (see ColumnSort, -Sorting) `- if two cells are equal when performing sort by column, -they are ordered by this predicate.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:NoColumnSortSecondary`(`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoC -olumnSortSecondary]()&] -[s2; Removes secondary sorting predicate..&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:ArrayCtrl`:`:SortingFrom`(int`):%- [_^Upp`:`:ArrayCtrl^ ArrayCtrl][@(0.0.255) `& -]_[* SortingFrom]([@(0.0.255) int]_[*@3 from])&] -[s2; When ArrayCtrl is sorted (without specifying the range of lines), -specifies the first column sorted. This allows for easy header -or summation line.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:ColumnWidths`(const char`*`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* C -olumnWidths]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 s])&] -[s2; Initializes column widths based on a text string containing -blank`-separated decimal numbers, e.g. `"1 4 6 4 1`".&] -[s7; [*C@3 s]-|control string defining column widths&] -[s7; [*/ Return value]-|[* `*this]&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:GetColumnWidths`(`): [_^String^ String]_[* GetColumnWidths]()&] -[s2; Returns current column widths in format compatible with ColumnWidths.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:CursorOverride`(const Image`&`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `& -]_[* CursorOverride]([@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 arrow])&] -[s2; Overrides mouse cursor to [*@3 arrow]. Setting Null ends override.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:NoCursorOverride`(`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoCursor -Override]()&] -[s2; Same as CursorOverride(Null).&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:ArrayCtrl`:`:SpanWideCells`(bool`):%- [_^Upp`:`:ArrayCtrl^ ArrayCtrl][@(0.0.255) `& -]_[* SpanWideCells]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2; In this mode, if cell content (as defined by Display`::GetStdSize) -is wider than cell width and next cell is Null (empty), the cell -width is extended to span over the next cell (just like in common -spreadsheet applications). ArrayCtrl header must no be in Moving -mode for correct operation. Returns `*this.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:RowFormat`(const char`*`): [_^String^ String]_[* RowFormat]([@(0.0.255) c -onst]_[@(0.0.255) char]_`*[*@3 s])&] -[s2; Formats a text by substituting [* %s] with the array`-specific -term for `'row`' (as set by the [* RowName] property). This is -used for array local menu items. Returns `*this.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:RowName`(const char`*`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* RowNa -me]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 s])&] -[s2; Sets the array`-specific term for `'row`'. This can be used -to customize the local menu terminology according to the logical -content of the array. For instance, when you have an array with -the list of employees, you can call [* RowName(`"employee`")] and -the menu items will then read [/ `'Insert new employee`', `'Delete -employee`'] etc.&] -[s7; [*C@3 s]-|the term to substitute for `'array row`' in menu items&] -[s7; [*/ Return value]-|[* `*this]&] -[s3; &] -[s0;* &] -[s0; [* Column structure programming]&] -[s3; &] -[s0; &] -[s5;:ArrayCtrl`:`:IndexInfo`(int`): [_^ArrayCtrl`:`:IdInfo^ IdInfo][@(0.0.255) `&]_[* Index -Info]([@(0.0.255) int]_[*@3 ii])&] -[s2; Returns a reference to the [* IdInfo] structure describing a given -array index (column in the source data matrix).&] -[s7; [*C@3 ii]-|zero`-based ordinal number of the array index&] -[s7; [*/ Return value]-|IdInfo reference for the given index&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:IndexInfo`(const Id`&`): [_^ArrayCtrl`:`:IdInfo^ IdInfo][@(0.0.255) `&]_ -[* IndexInfo]([@(0.0.255) const ][_^Id^ Id]`&_[*@3 id])&] -[s2; Returns a reference to the [* IdInfo] structure describing a given -array index.&] -[s7; [*C@3 id]-|the [* Id] index identifier&] -[s7; [*/ Return value]-|IdInfo reference for the given index&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:AddIndex`(const Id`&`): [_^ArrayCtrl`:`:IdInfo^ IdInfo][@(0.0.255) `&]_ -[* AddIndex]([@(0.0.255) const] [_^Id^ Id]`&_[*@3 id])&] -[s2; Adds a new index to the array and assign it a given [* Id] identifier.&] -[s7; [*C@3 id]-|new index identifier&] -[s7; [*/ Return value]-|A reference to the [* IdInfo ]structure describing -the newly added index. The reference can be used to set additional -index properties.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:AddIndex`(`): [_^ArrayCtrl`:`:IdInfo^ IdInfo][@(0.0.255) `&]_[* AddIndex]( -)&] -[s2; Adds a new index (without an identifier) to the array.&] -[s7; [*/ Return value]-|A reference to the [* IdInfo] structure describing -the newly added index.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:GetIndexCount`(`)const: [@(0.0.255) int]_[* GetIndexCount]()_[@(0.0.255) c -onst]&] -[s2; Returns number of indices in the array.&] -[s7; [*/ Return value]-|index count&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:GetId`(int`)const: [_^Id^ Id]_[* GetId]([@(0.0.255) int]_[*@3 ii])_[@(0.0.255) c -onst]&] -[s2; Returns the identifier of a given index (addresses by its zero`-based -ordinal number).&] -[s7; [*C@3 ii]-|zero`-based ordinal number of the queried index&] -[s7; [*/ Return value]-|index identifier or [* Null] if the index has -no identifier&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:GetPos`(const Id`&`)const: [@(0.0.255) int]_[* GetPos]([@(0.0.255) const -][_^Id^ Id]`&_[*@3 id])_[@(0.0.255) const]&] -[s2; Returns the zero`-based positional number of the array index -with a given identifier.&] -[s7; [*C@3 id]-|array index identifier&] -[s7; [*/ Return value]-|zero`-based index number, `-1 when not found&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:SetId`(int`,const Id`&`): [_^ArrayCtrl`:`:IdInfo^ IdInfo][@(0.0.255) `& -]_[* SetId]([@(0.0.255) int]_[*@3 ii], [@(0.0.255) const ][_^Id^ Id]`&_[*@3 id])&] -[s2; Sets the identifier for a given array index. This can be used -to set or modify the identifier for a previously added index.&] -[s7; [*C@3 ii]-|zero`-based ordinal number of the index to set the identifier -for&] -[s7; [*C@3 id]-|new index identifier ([* Null] when none)&] -[s7; [*/ Return value]-|A reference to the [* IdInfo] descriptive structure -for the [/ ii]`-th index. The reference can be used to set additional -properties of the altered index.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:AddKey`(const Id`&`): [_^ArrayCtrl`:`:IdInfo^ IdInfo][@(0.0.255) `&]_[* A -ddKey]([@(0.0.255) const ][_^Id^ Id]`&_[*@3 id])&] -[s2; Adds a [/ primary key] index to the table. The [/ primary key] is -just another name for the first index (index with ordinal number -0). This is just a handy convention often used for SQL`-based -tables. [* AddKey] must be called only once after array initialization -or [* Reset] and before calling any other functions adding indices -(like [* AddIndex], [* AddColumn] or [* AddCtrl]). When [* GetIndexCount() -> 0 ]before the call to this function, this method fails with -an [* ASSERT].&] -[s7; [*C@3 id]-|primary key identifier&] -[s7; [*/ Return value]-|A reference to the descriptive [* IdInfo] structure -for the primary key index.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:AddKey`(`): [_^ArrayCtrl`:`:IdInfo^ IdInfo][@(0.0.255) `&]_[* AddKey]()&] -[s2; Adds a primary key index without an identifier to the table. -This is equivalent to [* AddKey(Null)].&] -[s7; [*/ Return value]-|A reference to the [* IdInfo] structure describing -the primary key index.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:GetKeyId`(`)const: [_^Id^ Id]_[* GetKeyId]()_[@(0.0.255) const]&] -[s2; Returns primary key identifier for this table. This is equivalent -to calling [* GetId(0)].&] -[s7; [*/ Return value]-|primary key index identifier&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:AddColumn`(const char`*`,int`): [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `& -]_[* AddColumn]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text]_`=_NULL, -[@(0.0.255) int]_[*@3 w]_`=_[@3 0])&] -[s2; Add a new column`-index pair to the table. The function adds -a (source) index and an (output) column and sets the index as -the data source for the column. This is the most common method -for adding columns to the array.&] -[s7; [*C@3 text]-|column name (displayed in the array header)&] -[s7; [*C@3 w]-|logical relative column width&] -[s7; [*/ Return value]-|A reference to the [* Column] structure describing -the newly added column. This can be used to set additional properties -for the newly added column and the corresponding header tab.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:AddColumn`(const Id`&`,const char`*`,int`): [_^ArrayCtrl`:`:Column^ C -olumn][@(0.0.255) `&]_[* AddColumn]([@(0.0.255) const ][_^Id^ Id]`&_[*@3 id], -[@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text], [@(0.0.255) int]_[*@3 w]_`=_[@3 0])&] -[s2; Adds a new column`-index pair to the table. This is equivalent -to the above two`-parameter version but, in addition, the method -sets the [* Id] identifier for the newly created index.&] -[s7; [*C@3 id]-|new index identifier&] -[s7; [*C@3 text]-|column name (displayed in the header)&] -[s7; [*C@3 w]-|logical relative column width&] -[s7; [*/ Return value]-|A reference to the [* Column] structure describing -the newly added array column.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:AddColumnAt`(int`,const char`*`,int`): [_^ArrayCtrl`:`:Column^ Column -][@(0.0.255) `&]_[* AddColumnAt]([@(0.0.255) int]_[*@3 ii], [@(0.0.255) const]_[@(0.0.255) ch -ar]_`*[*@3 text], [@(0.0.255) int]_[*@3 w]_`=_[@3 0])&] -[s2; Adds a new column to the table and binds it to a given source -data index.&] -[s7; [*C@3 ii]-|zero`-based ordinal number of the index to use as source -for this column&] -[s7; [*C@3 text]-|column name (displayed in the header)&] -[s7; [*C@3 w]-|logical relative column width&] -[s7; [*/ Return value]-|A reference to the [* Column] structure describing -the newly added array column.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:AddColumnAt`(const Id`&`,const char`*`,int`): [_^ArrayCtrl`:`:Column^ C -olumn][@(0.0.255) `&]_[* AddColumnAt]([@(0.0.255) const ][_^Id^ Id]`&_[*@3 id], -[@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text], [@(0.0.255) int]_[*@3 w]_`=_[@3 0])&] -[s2; Adds a new column to the table and binds it to a given source -data index.&] -[s7; [*C@3 id]-|identifier of the index to use as source for the newly -added column&] -[s7; [*C@3 text]-|column name (displayed in the header)&] -[s7; [*C@3 w]-|logical relative column width&] -[s7; [*/ Return value]-|A reference to the [* Column] structure describing -the newly added array column.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:AddRowNumColumn`(const char`*`,int`): [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `& -]_[* AddRowNumColumn]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text], -[@(0.0.255) int]_[*@3 w]_`=_[@3 0])&] -[s2; Adds a new column to the table. The newly added column has no -source index, it is assumed to have an external data source. -Instead of the source data [* Value] object, the current zero`-based -row number is passed to the column`'s [* Convert] / [* Display]. -This allows the host application to decode somehow the external -data based on the row number. In the current U`+`+ version, the -[/ RowNum columns] cannot be edited (using the standard array inline -editing mechanism).&] -[s7; [*C@3 text]-|column name (displayed in the header)&] -[s7; [*C@3 w]-|logical relative column width&] -[s7; [*/ Return value]-|A reference to the [* Column] structure describing -the newly added array column.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:AddCtrl`(Ctrl`&`): [_^ArrayCtrl`:`:IdInfo^ IdInfo][@(0.0.255) `&]_[* AddC -trl]([_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 ctrl])&] -[s2; Adds a new index`-control pair to the table; the index keeps -the source data and the external control is used to edit it. -The ArrayCtrl handles data transfer between the source data matrix -and the external control. The method returns a reference the -[* IdInfo] descriptive structure for the newly added index.&] -[s2; [* Note:] it is good to keep in mind that there are a few differences -between the ordinary array cell editors and the freestanding -edit controls. In contrast with the cell editors, which appear -only when the row is opened for editing, the freestanding controls -are present all the time. For instance, the ArrayCtrl automatically -disables the controls when the cursor moves away from the table -(using [* KillCursor]) and re`-enables them after it comes back. -This is important e.g. if you want to implement an additional -logic enabling some of the controls only depending on the circumstances; -in such case, you have to use one of the notification callbacks -(like [* WhenEnterRow]) to force your additional behaviour on -the controls.&] -[s7; [*C@3 ctrl]-|control to attach to the given index&] -[s7; [*/ Return value]-|a reference to the IdInfo structure describing -the newly added index&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:AddCtrl`(const Id`&`,Ctrl`&`): [_^ArrayCtrl`:`:IdInfo^ IdInfo][@(0.0.255) `& -]_[* AddCtrl]([@(0.0.255) const ][_^Id^ Id]`&_[*@3 id], [_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 ctrl -])&] -[s2; Adds a new index`-control pair to the table. This is identical -to the above version with the only difference that the newly -added index is assigned an [* Id] identifier at the same time.&] -[s7; [*C@3 id]-|the identifier to assign to the newly created index&] -[s7; [*C@3 ctrl]-|freestanding control used to edit the given index&] -[s7; [*/ Return value]-|a reference to the IdInfo structure describing -the newly added index&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:AddIdCtrl`(Ctrl`&`): [_^ArrayCtrl`:`:IdInfo^ IdInfo][@(0.0.255) `&]_[* Ad -dIdCtrl]([_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 ctrl])&] -[s2; Same as AddCtrl(ctrl.GetLayoutId(), ctrl). Helpful when adding -dialog widgets whose id is the same as widget`'s variable id.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:AddCtrlAt`(int`,Ctrl`&`): [@(0.0.255) void]_[* AddCtrlAt]([@(0.0.255) int -]_[*@3 ii], [_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 ctrl])&] -[s2; Adds a new control to the table and binds it to the index with -given ordinal number. You can use this method to create the binding -between the control and an arbitrary source index.&] -[s7; [*C@3 ii]-|zero`-based ordinal number of the index to bind to this -control&] -[s7; [*C@3 ctrl]-|freestanding control used to edit the [/ ii]`-th data -index&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:AddCtrlAt`(const Id`&`,Ctrl`&`): [@(0.0.255) void]_[* AddCtrlAt]([@(0.0.255) c -onst ][_^Id^ Id]`&_[*@3 id], [_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 ctrl])&] -[s2; Adds a new control to the table and binds it to the index with -given identifier.&] -[s7; [*C@3 id]-|identifier of the index to bind to this control&] -[s7; [*C@3 ctrl]-|freestanding control used to edit the index with identifier -[/ id]&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:AddRowNumCtrl`(Ctrl`&`): [@(0.0.255) void]_[* AddRowNumCtrl]([_^Ctrl^ Ctr -l][@(0.0.255) `&]_[*@3 ctrl])&] -[s2; Adds a new freestanding control to the table. The control is -not bound to any source data index. During cursor movement in -the array, array uses the control`'s [* SetData] method to set -it to the current row number. The control must be ready for that -and it can use the row number value to decode some externally -located data for display. In the current U`+`+ version, such -controls cannot be used for editing (there is currently no clean -way to store the edited data back to its external storage).&] -[s7; [*C@3 ctrl]-|[/ RowNum]`-based freestanding editor control&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:GetColumnCount`(`)const: [@(0.0.255) int]_[* GetColumnCount]()_[@(0.0.255) c -onst]&] -[s2; Returns the current number of (output) columns in the array.&] -[s7; [*/ Return value]-|number of columns&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:FindColumnWithPos`(int`)const: [@(0.0.255) int]_[* FindColumnWithPos]([@(0.0.255) i -nt]_[*@3 pos])_[@(0.0.255) const]&] -[s2; Returns the zero`-based index of a column based on its source -data index.&] -[s7; [*C@3 pos]-|ordinal number of the source index&] -[s7; [*/ Return value]-|ordinal number of the column having the given -index as its source, `-1 when not found&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:FindColumnWithId`(const Id`&`)const: [@(0.0.255) int]_[* FindColumnWith -Id]([@(0.0.255) const ][_^Id^ Id]`&_[*@3 id])_[@(0.0.255) const]&] -[s2; Returns the zero`-based index of a column based on its source -data index.&] -[s7; [*C@3 id]-|source index identifier&] -[s7; [*/ Return value]-|ordinal number of the column having the given -index as its source, `-1 when not found&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:ColumnAt`(int`): [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `&]_[* Column -At]([@(0.0.255) int]_[*@3 i])&] -[s2; Returns the [* Column] structure describing a given column.&] -[s7; [*C@3 i]-|zero`-based column index&] -[s7; [*/ Return value]-|a reference to the [* Column] structure describing -the given column&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:ColumnAt`(const Id`&`): [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `&]_ -[* ColumnAt]([@(0.0.255) const ][_^Id^ Id]`&_[*@3 id])&] -[s2; Returns the [* Column] structure describing a given column.&] -[s7; [*C@3 i]-|zero`-based column index&] -[s7; [*/ Return value]-|a constant reference to the [* Column] structure -describing the given column&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:ColumnAt`(int`)const: [@(0.0.255) const]_[_^ArrayCtrl`:`:Column^ Column -][@(0.0.255) `&]_[* ColumnAt]([@(0.0.255) int]_[*@3 i])_[@(0.0.255) const]&] -[s2; Returns the [* Column] structure describing a column with given -source index. This is merely the const version of the above method; -it can be used to query properties for the column.&] -[s7; [*C@3 id]-|identifier of the index used as source for the column&] -[s7; [*/ Return value]-|a reference to the [* Column] structure describing -the given column&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:ColumnAt`(const Id`&`)const: [@(0.0.255) const]_[_^ArrayCtrl`:`:Column^ C -olumn][@(0.0.255) `&]_[* ColumnAt]([@(0.0.255) const ][_^Id^ Id]`&_[*@3 id])_[@(0.0.255) cons -t]&] -[s2; Returns a constant reference to the [* Column] structure describing -a column with given source index. This is the constant version -of the above method; it can be used to query properties for the -column.&] -[s7; [*C@3 id]-|identifier of the index used as source for the column&] -[s7; [*/ Return value]-|a constant reference to the [* Column] structure -describing the given column&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:HeaderTab`(int`): [_^HeaderCtrl`:`:Column^ HeaderCtrl`::Column][@(0.0.255) `& -]_[* HeaderTab]([@(0.0.255) int]_[*@3 i])&] -[s2; Returns the [*^topic`:`/`/CtrlLib`/src`/HeaderCtrl`$en`-us`#`:`:HeaderCtrl`:`:Column`:`:Min`(int`)^ H -eaderCtrl`::Column] descriptive structure for the given column. -The correspondence between the array columns and the header tabs -is 1:1, so that the indices of both are always the same ([* array.GetColumnCount() -`=`= array.HeaderObject().GetCount()] holds all the time).&] -[s7; [*C@3 i]-|zero`-based column index&] -[s7; [*/ Return value]-|a reference to the [* HeaderCtrl`::Column] structure. -This can be used to set additional properties of the header column -(e.g. column width constraints, font and icon for the column -title etc.)&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:HeaderTab`(int`)const: [@(0.0.255) const]_[_^HeaderCtrl`:`:Column^ Head -erCtrl`::Column][@(0.0.255) `&]_[* HeaderTab]([@(0.0.255) int]_[*@3 i])_[@(0.0.255) const]&] -[s2; Returns a constant reference to the [* HeaderCtrl`::Column] structure -for the given column.&] -[s7; [*C@3 i]-|zero`-based column index&] -[s7; [*/ Return value]-|a reference to the [* HeaderCtrl`::Column] structure. -This can be used to set additional properties of the header column -(e.g. column width constraints, font and icon for the column -title etc.)&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:HeaderTab`(const Id`&`): [_^HeaderCtrl`:`:Column^ HeaderCtrl`::Column][@(0.0.255) `& -]_[* HeaderTab]([@(0.0.255) const ][_^Id^ Id]`&_[*@3 id])&] -[s2; Returns the [* HeaderCtrl`::Column] descriptive structure for the -column bound to a given source index.&] -[s7; [*C@3 id]-|identifier of the index used as source for the column&] -[s7; [*/ Return value]-|a reference to the [* HeaderCtrl`::Column] structure&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:HeaderTab`(const Id`&`)const: [@(0.0.255) const]_[_^HeaderCtrl`:`:Column^ H -eaderCtrl`::Column][@(0.0.255) `&]_[* HeaderTab]([@(0.0.255) const ][_^Id^ Id]`&_[*@3 id])_[@(0.0.255) c -onst]&] -[s2; Returns a constant reference to the [* HeaderCtrl`::Column] descriptive -structure for the column bound to a given source index.&] -[s7; [*C@3 id]-|identifier of the index used as source for the column&] -[s7; [*/ Return value]-|a constant reference to the [* HeaderCtrl`::Column] -structure&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:HeaderObject`(`)const: [@(0.0.255) const]_[_^HeaderCtrl^ HeaderCtrl][@(0.0.255) `& -]_[* HeaderObject]()_[@(0.0.255) const]&] -[s2; Returns a non`-constant reference to the [* HeaderCtrl] object -for this table. The reference can be further used to alter properties -of the table header (tab visibility, header visual mode and so -on).&] -[s7; [*/ Return value]-|A non`-constant reference to the table HeaderCtrl -object.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:HeaderObject`(`): [_^HeaderCtrl^ HeaderCtrl][@(0.0.255) `&]_[* HeaderObje -ct]()&] -[s2; This is just the constant version of the above method; when -called on a constant [* ArrayCtrl] reference, it returns a constant -reference to its underlying HeaderCtrl object which can be then -used to query additional header information.&] -[s7; [*/ Return value]-|A constant reference to the table HeaderCtrl -object.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:SerializeHeader`(Stream`&`): [@(0.0.255) void]_[* SerializeHeader]([_^Stream^ S -tream][@(0.0.255) `&]_[*@3 s])&] -[s2; Serializes all information pertaining to the array header (mainly -the user`-set column widths). This is equivalent to calling [* HeaderObject().Seria -lize(s)]. The main purpose of this function is to allow storing -header configuration to be restored upon opening the dialog or -the application for the next time. This function is now deprecated -in favor of SerializeSettings.&] -[s7; [*C@3 s]-|the [*^topic`:`/`/Core`/src`/Stream`$en`-us^ Stream] object -to serialize the header to/from&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:SerializeSettings`(Stream`&`): [@(0.0.255) void]_[* SerializeSettings]( -[_^Stream^ Stream][@(0.0.255) `&]_[*@3 s])&] -[s2; Serializes all information pertaining to the array header (mainly -the user`-set column widths) and the setting of sort column. -The main purpose of this function is to allow storing configuration -to be restored upon opening the dialog or the application for -the next time.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:SetDisplay`(int`,int`,const Display`&`): [@(0.0.255) void]_[* SetDispla -y]([@(0.0.255) int]_[*@3 i], [@(0.0.255) int]_[*@3 col], [@(0.0.255) const]_[_^Display^ Displ -ay][@(0.0.255) `&]_[*@3 d])&] -[s2; Sets the [* Display] object for a given array cell.&] -[s2;* &] -[s2; [* Note:] the ownership to the Display object is not transferred -by this call. The ArrayCtrl stores a mere pointer to it and it -is the responsibility of the programmer to keep the Display object -alive as long as necessary (until the array is shut down or the -cell display changed via another call to SetDisplay). In fact, -most Display`-based objects don`'t support data copying at all. -In any case, copying Displays is not a very good practice and -is very prone to slicing (as most actual Displays are actually -derived classes with additional data members).&] -[s2; &] -[s2; In many cases it would be relatively safe to assume that the -Display is not used unless the array is actually painted (e.g., -when the control is not bound to a parent or when its view has -zero size), but it is not a very wise practice and it can fail -in very weird ways under special circumstances (like making screenshots -or graphical exports from the array control).&] -[s2; &] -[s7; [*C@3 i]-|zero`-based row index&] -[s7; [*C@3 j]-|zero`-based column index&] -[s7; [*C@3 d]-|display to use&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:ArrayCtrl`:`:SetRowDisplay`(int`,const Upp`:`:Display`&`):%- [@(0.0.255) vo -id]_[* SetRowDisplay]([@(0.0.255) int]_[*@3 i], [@(0.0.255) const]_[_^Upp`:`:Display^ Displ -ay][@(0.0.255) `&]_[*@3 d])&] -[s2; Sets Display [%-*@3 d] for each cell of line [%-*@3 i].&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:ArrayCtrl`:`:SetColumnDisplay`(int`,const Upp`:`:Display`&`):%- [@(0.0.255) v -oid]_[* SetColumnDisplay]([@(0.0.255) int]_[*@3 j], [@(0.0.255) const]_[_^Upp`:`:Display^ D -isplay][@(0.0.255) `&]_[*@3 d])&] -[s2; Sets Display [%-*@3 d] for each cell of column j.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:GetDisplay`(int`,int`): [@(0.0.255) const]_[_^Display^ Display][@(0.0.255) `& -]_[* GetDisplay]([@(0.0.255) int]_[*@3 row], [@(0.0.255) int]_[*@3 col])&] -[s2; Returns a reference to the Display object for the given array -cell.&] -[s7; [*C@3 row]-|zero`-based row index&] -[s7; [*C@3 col]-|zero`-based column index&] -[s7; [*/ Return value]-|a reference to the Display object.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:GetDisplay`(int`): [@(0.0.255) const]_[_^Display^ Display][@(0.0.255) `&]_ -[* GetDisplay]([@(0.0.255) int]_[*@3 col])&] -[s2; Returns a reference to the Display object for the given array -column.&] -[s7; [*C@3 col]-|zero`-based column index&] -[s7; [*/ Return value]-|constant reference to the column Display&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:SetCtrl`(int`,int`,Ctrl`&`,bool`): [@(0.0.255) void]_[* SetCtrl]([@(0.0.255) i -nt]_[*@3 i], [@(0.0.255) int]_[*@3 col], [_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 ctrl], -[@(0.0.255) bool]_[*@3 value]_`=_[@(0.0.255) true])&] -[s2; Sets an external control to use as the editor for a single array -cell. Naturally, the same Ctrl object cannot be used as the editor -for multiple array cells. If the position of Ctrl is equivalent -to `'SetRect(0, 0, 0, 0)`', which is the default value, Ctrl -is resized to fit the ArrayCtrl cell accurately, spanning the -whole width and using STDSIZE for height, otherwise the position -represents the position within the cell. If [*@3 value] is true, -then the Ctrl represents the value of the cell, otherwise it -is independent of it.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:GetCtrl`(int`,int`): [_^Ctrl^ Ctrl]_`*[* GetCtrl]([@(0.0.255) int]_[*@3 i], - [@(0.0.255) int]_[*@3 col])&] -[s2; Returns a pointer to ctrl if there is any, NULL otherwise.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:CreateCtrl`(int`,int`,bool`): [@(0.0.255) template]_<[@(0.0.255) class]_ -[*@4 T]>_[*@4 T][@(0.0.255) `&]_[* CreateCtrl]([@(0.0.255) int]_[*@3 i], -[@(0.0.255) int]_[*@3 col], [@(0.0.255) bool]_[*@3 value]_`=_[@(0.0.255) true])&] -[s2; Creates an control (owned by ArrayCtrl) for a single array cell. -If [*@3 value] is true, then the Ctrl represents the value of the -cell, otherwise it is independent of it. If the position of Ctrl -is equivalent to `'SetRect(0, 0, 0, 0)`', which is the default -value, Ctrl is resized to fit the ArrayCtrl cell accurately, -spanning the whole width and using STDSIZE for height, otherwise -the position represents the position within the cell. &] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:GetTotalCy`(`)const: [@(0.0.255) int]_[* GetTotalCy]()_[@(0.0.255) const]&] -[s2; Returns total height of the array (sum of the individual line -heights for all array rows)&] -[s7; [*/ Return value]-|array height in pixels&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:GetLineAt`(int`)const: [@(0.0.255) int]_[* GetLineAt]([@(0.0.255) int]_[*@3 y -])_[@(0.0.255) const]&] -[s2; Locates the array row according to given [/ y] coordinate (such -array row [/ r] for which [* GetLineY(r) <`= y `&`& GetLineY(r) `+ -GetLineCy(r) > y]).&] -[s7; [*C@3 y]-|vertical pixel coordinate to locate&] -[s7; [*/ Return value]-|zero`-based row number or `-1 when not found&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:ArrayCtrl`:`:SetLineColor`(int`,Upp`:`:Color`):%- [@(0.0.255) void]_[* SetLin -eColor]([@(0.0.255) int]_[*@3 i], [_^Upp`:`:Color^ Color]_[*@3 c])&] -[s2; Sets the background color of line [%-*@3 i] to [%-*@3 c].&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:ArrayCtrl`:`:GetCellRect`(int`,int`)const:%- [_^Upp`:`:Rect^ Rect]_[* GetCell -Rect]([@(0.0.255) int]_[*@3 i], [@(0.0.255) int]_[*@3 col])_[@(0.0.255) const]&] -[s2; Returns rectangle of cell at [%-*@3 i],[%-*@3 col] in view coordinates. -Cell left and right margins are included in rectangle.&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:ArrayCtrl`:`:GetCellRectM`(int`,int`)const:%- [_^Upp`:`:Rect^ Rect]_[* GetCel -lRectM]([@(0.0.255) int]_[*@3 i], [@(0.0.255) int]_[*@3 col])_[@(0.0.255) const]&] -[s2; Returns rectangle of cell at [%-*@3 i],[%-*@3 col] in view coordinates. -Cell left and right margins are not included in rectangle.&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:ArrayCtrl`:`:GetScreenCellRect`(int`,int`)const:%- [_^Upp`:`:Rect^ Rect]_[* G -etScreenCellRect]([@(0.0.255) int]_[*@3 i], [@(0.0.255) int]_[*@3 col])_[@(0.0.255) const]&] -[s2; Returns rectangle of cell at [%-*@3 i],[%-*@3 col] in screen coordinates. -Cell left and right margins are included in rectangle.&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:ArrayCtrl`:`:GetScreenCellRectM`(int`,int`)const:%- [_^Upp`:`:Rect^ Rect]_[* G -etScreenCellRectM]([@(0.0.255) int]_[*@3 i], [@(0.0.255) int]_[*@3 col])_[@(0.0.255) const]&] -[s2; Returns rectangle of cell at [%-*@3 i],[%-*@3 col] in screen coordinates. -Cell left and right margins are not included in rectangle.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:GetClickColumn`(`)const: [@(0.0.255) int]_[* GetClickColumn]()_[@(0.0.255) c -onst]&] -[s2; Returns column index of the last clicked column in the array. -If the click happens past the last row of array, returns Null.&] -[s7; [*/ Return value]-|zero`-based index of the relevant column&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:GetClickRow`(`)const: [@(0.0.255) int]_[* GetClickRow]()_[@(0.0.255) cons -t]&] -[s2; Returns column index of the last clicked row in the array. If -the click happens past the last row of array, returns Null.&] -[s7; [*/ Return value]-|zero`-based index of the relevant column&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:GetClickPos`(`)const: [_^Point^ Point]_[* GetClickPos]()_[@(0.0.255) cons -t]&] -[s7; [*/ Return value]-|[* Point(GetClickColumn(), GetClickRow())].&] -[s3; &] -[s0;* &] -[s0; [* Data setting and retrieval]&] -[s3; &] -[s0; &] -[s5;:ArrayCtrl`:`:SetCount`(int`): [@(0.0.255) void]_[* SetCount]([@(0.0.255) int]_[*@3 c])&] -[s2; Sets the number of rows in the array. This extends or trims -the source matrix as necessary. When using the Ctrl`-based individual -cell editors, as a side`-effect of this call some controls can -be constructed or destroyed.&] -[s7; [*C@3 c]-|new row count&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:SetVirtualCount`(int`): [@(0.0.255) void]_[* SetVirtualCount]([@(0.0.255) i -nt]_[*@3 c])&] -[s2; Sets the number of rows in an array with external data. This -makes sense only when all the [/ Column`'s] and [/ Ctrl`'s] of the -array are [/ rownum]`-based. The function doesn`'t physically allocate -any source data matrix space, it just makes the array `'think`' -it has [/ c] rows (this is of course necessary for the Paint routine, -for cursor / selection management and so on).&] -[s2; [* Note:] in the current implementation, selection flags for the -individual rows are kept in the row objects. Therefore it is -not very wise to use multiselection for arrays with external -data, because as soon as the last row is selected, all row storage -structures are allocated as a side effect to keep the selection -flags.&] -[s7; [*C@3 c]-|new `'virtual`' number of rows&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:GetCount`(`)const: [@(0.0.255) int]_[* GetCount]()_[@(0.0.255) const]&] -[s2; Returns the number of rows in the array. In fact, this returns -the maximum of the number of `'real`' source matrix rows (as -set by the SetCount / Add / Insert methods) and the `'virtual`' -row count (as se by SetVirtualCount). By checking the implementation -of this method, you can easily find that, simply,&] -[s2; &] -[s2; [C int ArrayCtrl`::GetCount() const `{]&] -[s2; [C -|-|return max(virtualcount, array.GetCount());]&] -[s2; [C `}]&] -[s2; &] -[s7; [*/ Return value]-|Number of rows in the array.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:Clear`(`): [@(0.0.255) void]_[* Clear]()&] -[s2; Clears the array source data matrix and sets the virtual row -count to 0.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:Shrink`(`): [@(0.0.255) void]_[* Shrink]()&] -[s2; Shrinks the source data array, i.e. reallocates the data to -the minimum required memory space.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:Get`(int`,int`)const: [_^Value^ Value]_[* Get]([@(0.0.255) int]_[*@3 i], -[@(0.0.255) int]_[*@3 ii])_[@(0.0.255) const]&] -[s2; Returns the value at a given location in the source data matrix.&] -[s7; [*C@3 i]-|zero`-based row number&] -[s7; [*C@3 ii]-|zero`-based index ordinal number&] -[s7; [*/ Return value]-|value at the given location in the source data -matrix&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:Get`(int`,const Id`&`)const: [_^Value^ Value]_[* Get]([@(0.0.255) int]_[*@3 i -], [@(0.0.255) const ][_^Id^ Id]`&_[*@3 id])_[@(0.0.255) const]&] -[s2; Returns the value at a given location in the source data matrix. -In this version, the source indices are addressed by their identifiers.&] -[s7; [*C@3 i]-|zero`-based row number&] -[s7; [*C@3 id]-|source index identifier&] -[s7; [*/ Return value]-|value at the given location in the source data -matrix&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:Get`(int`)const: [_^Value^ Value]_[* Get]([@(0.0.255) int]_[*@3 ii])_[@(0.0.255) c -onst]&] -[s2; Returns the value of a given source index at the currently active -cursor row. This is equivalent to [* Get(GetCursor(), ii)]. When -the row is currently being edited, the function returns the `'new`' -value (the current value of the respective editor control, i.e. -potentially edited).&] -[s2; [* Note:] when the cursor row is not set (when [* !IsCursor()]), -the function fails with an [* ASSERT].&] -[s7; [*C@3 ii]-|zero`-based index ordinal number&] -[s7; [*/ Return value]-|value at a given location in the cursor row&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:Get`(const Id`&`)const: [_^Value^ Value]_[* Get]([@(0.0.255) const -][_^Id^ Id]`&_[*@3 id])_[@(0.0.255) const]&] -[s2; Returns the value of a given source index at the currently active -cursor row. This is equivalent to [* Get(GetCursor(), id)].&] -[s7; [*C@3 id]-|source index identifier&] -[s7; [*/ Return value]-|value at the given location in the cursor row&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:GetOriginal`(int`)const: [_^Value^ Value]_[* GetOriginal]([@(0.0.255) int -]_[*@3 ii])_[@(0.0.255) const]&] -[s2; Returns the `'original`' value of a given source index at the -currently active cursor row. When the row is open for editing, -this function returns the `'old`' value before any editing took -place.&] -[s7; [*C@3 ii]-|zero`-based index ordinal number&] -[s7; [*/ Return value]-|value at the given location in the cursor row&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:GetOriginal`(const Id`&`)const: [_^Value^ Value]_[* GetOriginal]([@(0.0.255) c -onst ][_^Id^ Id]`&_[*@3 id])_[@(0.0.255) const]&] -[s2; Returns the `'original`' value (i.e., without any editing changed -applied) of a given source index at the currently active cursor -row.&] -[s7; [*C@3 id]-|source index identifier&] -[s7; [*/ Return value]-|value at the given location in the cursor row&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:GetKey`(`)const: [_^Value^ Value]_[* GetKey]()_[@(0.0.255) const]&] -[s2; Returns the value of the current row`'s primary key. This is -equivalent to [* Get(0)].&] -[s7; [*/ Return value]-|value at the index #0 in the cursor row&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:GetOriginalKey`(`)const: [_^Value^ Value]_[* GetOriginalKey]()_[@(0.0.255) c -onst]&] -[s2; Returns the original value of the current row`'s primary key. -During editing, the function returns the value at the time of -opening the row for editing, i.e. without any editing changes -applied. This is equivalent to [* GetOriginal(0)].&] -[s7; [*/ Return value]-|value at the index #0 in the cursor row&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:Set`(int`,int`,const Value`&`): [@(0.0.255) void]_[* Set]([@(0.0.255) int -]_[*@3 i], [@(0.0.255) int]_[*@3 ii], [@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_[*@3 v -])&] -[s2; Sets the value at a given location in the source data matrix.&] -[s7; [*C@3 i]-|zero`-based row number&] -[s7; [*C@3 ii]-|zero`-based index ordinal number&] -[s7; [*C@3 v]-|value to set to the given cell&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:Set`(int`,const Id`&`,const Value`&`): [@(0.0.255) void]_[* Set]([@(0.0.255) i -nt]_[*@3 i], [@(0.0.255) const ][_^Id^ Id]`&_[*@3 id], [@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `& -]_[*@3 v])&] -[s2; Sets the value at a given location in the source data matrix. -&] -[s7; [*C@3 i]-|zero`-based row number&] -[s7; [*C@3 id]-|source index identifier&] -[s7; [*C@3 v]-|value to set to the given cell&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:Set`(int`,const Value`&`): [@(0.0.255) void]_[* Set]([@(0.0.255) int]_[*@3 i -i], [@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_[*@3 v])&] -[s2; Modifies the value at a given location in the cursor row. When -the row is open for editing, the function immediately changes -the value in the appropriate editor control.&] -[s7; [*C@3 ii]-|zero`-based index ordinal number&] -[s7; [*C@3 v]-|value to set&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:Set`(const Id`&`,const Value`&`): [@(0.0.255) void]_[* Set]([@(0.0.255) c -onst ][_^Id^ Id]`&_[*@3 id], [@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_[*@3 v])&] -[s2; Modifies the value at a given location in the cursor row. This -overloaded version uses the [* Id] identifier to address the relevant -index.&] -[s7; [*C@3 id]-|index identifier&] -[s7; [*C@3 v]-|value to set&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:GetColumn`(int`,int`)const: [_^Value^ Value]_[* GetColumn]([@(0.0.255) in -t]_[*@3 row], [@(0.0.255) int]_[*@3 col])_[@(0.0.255) const]&] -[s2; Returns the value of a given column. This depends on the column`-index -mapping established when adding columns to the table. When the -column is a [/ rownum] type (it is bound to no source indices), -the function just returns the [/ row] parameter. For columns with -a single source index, the function returns the value of the -mapped source index. For columns with multiple source indices, -the function returns a [* ValueArray ]containing the values of -its source indices.&] -[s7; [*C@3 row]-|zero`-based row index&] -[s7; [*C@3 col]-|zero`-based column index&] -[s7; [*/ Return value]-|value of the given column&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:GetConvertedColumn`(int`,int`): [_^Value^ Value]_[* GetConvertedColumn]( -[@(0.0.255) int]_[*@3 row], [@(0.0.255) int]_[*@3 col])&] -[s2; Returns the value of a given column after application of its -[* Convert]. For performance reasons, the values obtained by calls -to the [* Convert`::Format] methods are cached internally within -the ArrayCtrl object. You can manipulate the conversion cache -using the methods [*^topic`:`/`/CtrlLib`/src`/ArrayCtrl`$en`-us`#`:`:ArrayCtrl`:`:ClearCache`(`)^ C -learCache] and[* ][*^topic`:`/`/CtrlLib`/src`/ArrayCtrl`$en`-us`#`:`:ArrayCtrl`:`:InvalidateCache`(int`)^ I -nvalidateCache].&] -[s7; [*C@3 row]-|zero`-based row index&] -[s7; [*C@3 col]-|zero`-based column index&] -[s7; [*/ Return value]-|the converted cell value&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:ReadRow`(int`)const: [_^Vector^ Vector]<[_^Value^ Value]>_[* ReadRow]([@(0.0.255) i -nt]_[*@3 i])_[@(0.0.255) const]&] -[s2; Returns a [* Vector] containing the values of all source indices -in the given row. Invariantly, the [* GetCount()] of the returned -array is equal to the [* GetIndexCount()] of the source ArrayCtrl.&] -[s7; [*C@3 i]-|zero`-based row index&] -[s7; [*/ Return value]-|an array of all source values in the given row&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:Set`(int`,const Vector``&`): [@(0.0.255) void]_[* Set]([@(0.0.255) i -nt]_[*@3 i], [@(0.0.255) const]_[_^Vector^ Vector]<[_^Value^ Value]>`&_[*@3 v])&] -[s2; Modifies a given row by setting all source index values to values -passed in the parameter [/ v].&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:SetArray`(int`,const ValueArray`&`): [@(0.0.255) void]_[* SetArray]([@(0.0.255) i -nt]_[*@3 i], [@(0.0.255) const]_[_^ValueArray^ ValueArray][@(0.0.255) `&]_[*@3 va])&] -[s2; Sets the row [*@3 i] to [*@3 va].&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:Add`(`): [@(0.0.255) void]_[* Add]()&] -[s2; Adds an empty row to the source data matrix.&] -[s2; [* Note:] the [* InsertValue] property of the [* IdInfo] structure -defines a method to generate / retrieve default values for newly -inserted rows. However, these values are only used during the -GUI`-based [* DoInsert] method and do not apply to the [* Add] method. -If you need to set the newly added source matrix row to some -non`-null defaults, you have to modify the relevant cells manually.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:Add`(const Vector``&`): [@(0.0.255) void]_[* Add]([@(0.0.255) con -st]_[_^Vector^ Vector]<[_^Value^ Value]>`&_[*@3 v])&] -[s2; Adds a new row at the end of the source data matrix. The [*^topic`:`/`/Core`/src`/Vector`$en`-us^ V -ector] parameter contains the values to be used to initialize -the new row of the matrix.&] -[s7; [*C@3 v]-|new matrix row&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:AddArray`(const ValueArray`&`): [@(0.0.255) void]_[* AddArray]([@(0.0.255) c -onst]_[_^ValueArray^ ValueArray][@(0.0.255) `&]_[*@3 va])&] -[s2; Adds a new row at the end of source with value [*@3 va].&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:GetArray`(int`)const: [_^ValueArray^ ValueArray]_[* GetArray]([@(0.0.255) i -nt]_[*@3 i])_[@(0.0.255) const]&] -[s2; Returns a row as ValueArray.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:Set`(int`,const VectorMap``&`): [@(0.0.255) void]_[* Se -t]([@(0.0.255) int]_[*@3 i], [@(0.0.255) const]_[_^VectorMap^ VectorMap]<[_^String^ String], - [_^Value^ Value]>`&_[*@3 m])&] -[s2; Sets the row based on map. Keys are matched to row Ids, keys -that are not found are ignored, those found are assigned correspoding -map values.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:Add`(const VectorMap``&`): [@(0.0.255) void]_[* Add]([@(0.0.255) c -onst]_[_^VectorMap^ VectorMap]<[_^String^ String], [_^Value^ Value]>`&_[*@3 m])&] -[s2; Adds the row based on map. Keys are matched to row Ids, keys -that are not found are ignored, those found are assigned correspoding -map values.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:SetMap`(int`,const ValueMap`&`): [@(0.0.255) void]_[* SetMap]([@(0.0.255) i -nt]_[*@3 i], [@(0.0.255) const]_[_^ValueMap^ ValueMap][@(0.0.255) `&]_[*@3 m])&] -[s2; Sets the row based on map. Keys are matched to row Ids, keys -that are not found are ignored, those found are assigned correspoding -map values.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:AddMap`(const ValueMap`&`): [@(0.0.255) void]_[* AddMap]([@(0.0.255) cons -t]_[_^ValueMap^ ValueMap][@(0.0.255) `&]_[*@3 m])&] -[s2; Adds the row based on map. Keys are matched to row Ids, keys -that are not found are ignored, those found are assigned correspoding -map values.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:GetMap`(int`)const: [_^ValueMap^ ValueMap]_[* GetMap]([@(0.0.255) int]_[*@3 i -])_[@(0.0.255) const]&] -[s2; Returns row as map of row Ids to row values. Only non`-empty -row Ids are added.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:Add`(const Value`&`[`,const Value`&`]`.`.`.`): [@(0.0.255) void]_[* Add -]([@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_`[, [@(0.0.255) const]_[_^Value^ Value -][@(0.0.255) `&]_`]...)&] -[s2; Adds a new row at the bottom of the source data matrix. This -is in fact a series of functions (generated automatically using -the [* Expand] macro) which takes an arbitrary number of arguments. -Its arguments are used to initialize the source indices in the -newly added row.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:Add`(const Nuller`&`): [@(0.0.255) void]_[* Add]([@(0.0.255) const]_[_^Nuller^ N -uller][@(0.0.255) `&]_[*@3 null])&] -[s2; This is helper method required for correct overloading resolution -of Add(Null).&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:Insert`(int`): [@(0.0.255) void]_[* Insert]([@(0.0.255) int]_[*@3 i])&] -[s2; Inserts a new row into the source array. All indices are initialized -to [* Null] values. The [* InsertValue] property doesn`'t apply; -if you need to set the newly created row to some non`-trivial -values, you have to do so manually.&] -[s7; [*C@3 i]-|zero`-based position of the newly created row&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:Insert`(int`,const Vector``&`): [@(0.0.255) void]_[* Insert]([@(0.0.255) i -nt]_[*@3 i], [@(0.0.255) const]_[_^Vector^ Vector]<[_^Value^ Value]>`&_[*@3 v])&] -[s2; Inserts a new row into the array at a given position. The second -parameter, [/ v], is used to initialize the source indices of the -newly created row.&] -[s7; [*C@3 i]-|zero`-based row index&] -[s7; [*C@3 v]-|a vector of values used to initialize the source indices -of the given row&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:Remove`(int`): [@(0.0.255) void]_[* Remove]([@(0.0.255) int]_[*@3 i])&] -[s2; Removes the given source data row.&] -[s2; [* Note:] the [* AskRemove] property of the [* ArrayCtrl] object tells -whether a confirmation dialog should pop up every time the user -wants to remove a row. However, this method applies only to the -GUI`-based row removal; the [* Remove] method always removes the -requested row unconditionally without popping up any confirmation -dialog.&] -[s7; [*C@3 i]-|zero`-based index of the row to remove&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:SwapUp`(`): [@(0.0.255) void]_[* SwapUp]()&] -[s2; Exchanges the cursor row with the preceding row, effectively -moving it up.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:SwapDown`(`): [@(0.0.255) void]_[* SwapDown]()&] -[s2; Exchanges the cursor row with following row, effectively moving -it down.&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:ArrayCtrl`:`:ReArrange`(const Upp`:`:Vector``&`):%- [@(0.0.255) void]_ -[* ReArrange]([@(0.0.255) const]_[_^Upp`:`:Vector^ Vector]<[@(0.0.255) int]>`&_[*@3 order]) -&] -[s2; Rearranges lines of array by [%-*@3 order] of former line indices. -The count of items in [%-*@3 order] must be the same as GetCount -of ArrayCtrl and it must contain all indices from zero to GetCount() -`- 1. [%-*@3 order] establishes a new order expressed in former -indices of lines.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:Sort`(Gate2``): [@(0.0.255) void]_[* Sort]([_^Gate2^ Gate2]<[@(0.0.255) i -nt], [@(0.0.255) int]>_[*@3 order])&] -[s5;:ArrayCtrl`:`:Sort`(int`,int`,Gate2``): [@(0.0.255) void]_[* Sort]([@(0.0.255) i -nt]_[*@3 from], [@(0.0.255) int]_[*@3 count], [_^Gate2^ Gate2]<[@(0.0.255) int], -[@(0.0.255) int]>_[*@3 order])&] -[s2; Sorts the array rows according to a given ordering predicate. -The [*@3 order] object defines the ordering predicate; two parameters -are indicies of ArrayCtrl lines; it should returns true if they -are in required ordering.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:Sort`(const ArrayCtrl`:`:Order`&`): [@(0.0.255) void]_[* Sort]([@(0.0.255) c -onst]_[_^ArrayCtrl`:`:Order^ ArrayCtrl`::Order][@(0.0.255) `&]_[*@3 order])&] -[s2; Sorts the array rows according to a given ordering predicate. -The [* ArrayCtrl`::Order] object defines the ordering predicate; -its [* operator ()] should return [* true] whenever its first parameter -(a vector containing the values of all source indices in a row) -is less than its second parameter.&] -[s7; &] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:Sort`(int`,int`,const ArrayCtrl`:`:Order`&`): [@(0.0.255) void]_[* Sort -]([@(0.0.255) int]_[*@3 from], [@(0.0.255) int]_[*@3 count], [@(0.0.255) const]_[_^ArrayCtrl`:`:Order^ A -rrayCtrl`::Order][@(0.0.255) `&]_[*@3 order])&] -[s2; Sorts a portion of the array using a given ordering predicate.&] -[s7; [*C@3 from]-|zero`-based index of the first row to sort&] -[s7; [*C@3 count]-|number of rows to be sorted&] -[s7; [*C@3 order]-|the ordering predicate object. The object should -be derived from [* ArrayCtrl`::Order] and should override the [* operator -()] method. This method should return [* true ]whenever its first -parameter (a vector containing all source index values for a -certain row) is less than its second parameter.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:Sort`(int`(`*`)`(const Vector``&v1`,const Vector``&v2`)`): [@(0.0.255) v -oid]_[* Sort]([@(0.0.255) int]_(`*[*@3 compare])([@(0.0.255) const]_Vector`&_v1, -[@(0.0.255) const]_Vector`&_v2))&] -[s2; Sorts the array rows according to the order defined by the specified -ordering predicate [/ compare]. This is supposed to be a global -function returning [* true] whenever its first parameter ([/ v1], -an array consisting of all source indices within a row) is less -than the second parameter [/ v2] (according to the desired ordering).&] -[s7; [*C@3 compare]-|the ordering predicate; _the function is supposed -to return [* true] whenever its first parameter ([/ v1]) is less -than the second parameter ([/ v2]) according to the desired ordering.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:Sort`(int`,int`(`*`)`(const Value`&v1`,const Value`&v2`)`): [@(0.0.255) v -oid]_[* Sort]([@(0.0.255) int]_[*@3 ii], [@(0.0.255) int]_(`*[*@3 compare])([@(0.0.255) const -]_Value[@(0.0.255) `&]_v1, [@(0.0.255) const]_Value[@(0.0.255) `&]_v2)_`=_StdValueCompa -re)&] -[s2; Sorts the array rows according to the given ordering predicate -for the source index with a given ordinal number. When not explicitly -specified, the [* StdValueCompare] function is used as the default -comparison predicate.&] -[s7; [*C@3 ii]-|zero`-based ordinal number of the source index used -for sorting&] -[s7; [*C@3 compare]-|the sorting predicate function: the function is -supposed to return [* true] whenever its first parameter ([/ v1]) -is less than the second parameter ([/ v2]) according to the desired -ordering.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:Sort`(const Id`&`,int`(`*`)`(const Value`&v1`,const Value`&v2`)`): [@(0.0.255) v -oid]_[* Sort]([@(0.0.255) const ][_^Id^ Id]`&_[*@3 id], [@(0.0.255) int]_(`*[*@3 compare])([@(0.0.255) c -onst]_Value[@(0.0.255) `&]_v1, [@(0.0.255) const]_Value[@(0.0.255) `&]_v2)_`=_StdValueC -ompare)&] -[s2; Sorts the array rows according to the given ordering predicate -for the source index with a given identifier. When not explicitly -specified, the [* StdValueCompare] function is used as the default -comparison predicate.&] -[s7; [*C@3 id]-|identifier of the source index used for sorting&] -[s7; [*C@3 compare]-|the sorting predicate function: the function is -supposed to return [* true] whenever its first parameter ([/ v1]) -is less than the second parameter ([/ v2]) according to the desired -ordering .&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:Sort`(`): [@(0.0.255) void]_[* Sort]()&] -[s2; Sorts the array according to the default ordering predicate -for the first source index. This is equivalent to calling [* Sort(0)].&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:ColumnSort`(int`,Gate2``): [@(0.0.255) void]_[* ColumnSort]( -[@(0.0.255) int]_[*@3 column], [_^Gate2^ Gate2]<[@(0.0.255) int], [@(0.0.255) int]>_[*@3 orde -r])&] -[s2; Sorts by the column using ordering based on line indicies. This -is almost the same as the plain Sort, except that it respects -ColumnSortSecondary and ColumnSortFindKey flags.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:ColumnSort`(int`,const ValueOrder`&`): [@(0.0.255) void]_[* ColumnSort]( -[@(0.0.255) int]_[*@3 column], [@(0.0.255) const]_[_^ValueOrder^ ValueOrder][@(0.0.255) `&]_ -[*@3 order])&] -[s2; Sorts by the column. Note that this is different from Sort, -because the final converted value of column is used (which can -even be combination of more indexes).&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:ArrayCtrl`:`:ColumnSort`(int`,int`(`*`)`(const Valua`&a`,const Upp`:`:Value`&b`)`):%- [@(0.0.255) v -oid]_[* ColumnSort]([@(0.0.255) int]_[*@3 column], [@(0.0.255) int]_(`*[*@3 compare])([@(0.0.255) c -onst]_Valua[@(0.0.255) `&]_a, [@(0.0.255) const]_Value[@(0.0.255) `&]_b))&] -[s2; Sorts by the column. Note that this is different from Sort, -because the final converted value of column is used (which can -even be combination of more indexes).&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:SetSortColumn`(int`,bool`): [@(0.0.255) void]_[* SetSortColumn]([@(0.0.255) i -nt]_[*@3 ii], [@(0.0.255) bool]_[*@3 descending]_`=_[@(0.0.255) false])&] -[s2; Sets the `"sorting`" column and calls DoColumnSort. This setting -is used by DoColumnSort.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:ToggleSortColumn`(int`): [@(0.0.255) void]_[* ToggleSortColumn]([@(0.0.255) i -nt]_[*@3 ii])&] -[s2; Similar to SetSortColumn, but if the column is already set, -descending flag is inverted; otherwise descending flag is set -to false (indicating ascending sort).&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:DoColumnSort`(`): [@(0.0.255) void]_[* DoColumnSort]()&] -[s2; Sorts the array by sorting column and indicates it by setting -an image in the header.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:GetSortColumn`(`)const: [@(0.0.255) int]_[* GetSortColumn]()_[@(0.0.255) c -onst]&] -[s2; Returns the column that is sorting the ArrayCtrl (user clicked -on it and it has up or down arrow displayed).&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:IsSortDescending`(`)const: [@(0.0.255) bool]_[* IsSortDescending]()_[@(0.0.255) c -onst]&] -[s2; Returns true if current column`-sort is descending.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:ClearCache`(`): [@(0.0.255) void]_[* ClearCache]()&] -[s2; Invalidates the whole [/ convert cache]. The convert cache keeps -the results of the [* Convert`::Format] method applied to individual -array data cells for performance reasons. Whenever you call the -[* ClearCache] method, all cache entries are marked as obsolete -and the [* Convert]`'s [* Format] method will be called as soon as -the converted value of a table cell is required (usually during -the next [* Paint]).&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:InvalidateCache`(int`): [@(0.0.255) void]_[* InvalidateCache]([@(0.0.255) i -nt]_[*@3 i])&] -[s2; Invalidates a given row in the [/ convert cache]. For performance -reasons, the results of the [* Convert`::Format] method applied -to the individual data cells are kept in a cache. This function -marks a given row of the cache as obsolete; this means the next -time the converted values are to be used (usually within the -[* Paint] routine or when setting up the row editor controls), -the [* Convert] objects are used again to generate the actualized -output values.&] -[s7; [*C@3 i]-|zero`-based row index&] -[s3; &] -[s0; &] -[s0; [* Cursor and selection management]&] -[s3; &] -[s0; &] -[s5;:ArrayCtrl`:`:ScrollUp`(`): [@(0.0.255) void]_[* ScrollUp]()&] -[s5;:ArrayCtrl`:`:ScrollDown`(`): [@(0.0.255) void]_[* ScrollDown]()&] -[s5;:ArrayCtrl`:`:ScrollPageUp`(`): [@(0.0.255) void]_[* ScrollPageUp]()&] -[s5;:ArrayCtrl`:`:ScrollPageDown`(`): [@(0.0.255) void]_[* ScrollPageDown]()&] -[s5;:ArrayCtrl`:`:ScrollEnd`(`): [@(0.0.255) void]_[* ScrollEnd]()&] -[s5;:ArrayCtrl`:`:ScrollBegin`(`): [@(0.0.255) void]_[* ScrollBegin]()&] -[s2; Scrolls the content of ArrayCtrl.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:GetSelectCount`(`)const: [@(0.0.255) int]_[* GetSelectCount]()_[@(0.0.255) c -onst]&] -[s2; Returns the number of selected row within the table.&] -[s7; [*/ Return value]-|number of selected records (in the range [/ `[0 -.. GetCount()`]])&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:IsSelection`(`)const: [@(0.0.255) bool]_[* IsSelection]()_[@(0.0.255) con -st]&] -[s2; Checks whether any rows are selected. Equivalent to [* GetSelectCount() -> 0].&] -[s7; [*/ Return value]-|[* true] `= there is at least one selected row, -[* false] `= there is none.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:Select`(int`,bool`): [@(0.0.255) void]_[* Select]([@(0.0.255) int]_[*@3 i], - [@(0.0.255) bool]_[*@3 sel]_`=_[@(0.0.255) true])&] -[s2; Selects / unselects a given row.&] -[s7; [*C@3 i]-|zero`-based row index&] -[s7; [*C@3 sel]-|[* true] `= add row to the current selection, [* false] -`= remove row from selection&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:Select`(int`,int`,bool`): [@(0.0.255) void]_[* Select]([@(0.0.255) int]_[*@3 i -], [@(0.0.255) int]_[*@3 count], [@(0.0.255) bool]_[*@3 sel]_`=_[@(0.0.255) true])&] -[s2; Selects / unselects a given row range.&] -[s7; [*C@3 i]-|zero`-based index of the first row to select / unselect&] -[s7; [*C@3 count]-|number of rows to select / unselect&] -[s7; [*C@3 sel]-|[* true] `= select the rows, [* false] `= unselect the -rows&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:IsSelected`(int`)const: [@(0.0.255) bool]_[* IsSelected]([@(0.0.255) int]_ -[*@3 i])_[@(0.0.255) const]&] -[s7; Checks whether a given row is selected.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:IsSel`(int`)const: [@(0.0.255) bool]_[* IsSel]([@(0.0.255) int]_[*@3 i])_[@(0.0.255) c -onst]&] -[s2; If there is selection in the widget, returns true if [*@3 i] is -selected, otherwise returns true if cursor is at [*@3 i].&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:ArrayCtrl`:`:GetSelKeys`(`)const:%- [_^Upp`:`:Vector^ Vector]<[@(0.0.255) int -]>_[* GetSelKeys]()_[@(0.0.255) const]&] -[s2; Returns keys (elements with index 0) of all selected lines (ordered -by line order).&] -[s3;%- &] -[s4; &] -[s5;:Upp`:`:ArrayCtrl`:`:EnableLine`(int`,bool`): [@(0.0.255) void]_[* EnableLine]([@(0.0.255) i -nt]_[*@3 i], [@(0.0.255) bool]_[*@3 e])&] -[s2; Enables line to be selected by cursor. Lines are enabled by -default.&] -[s3; &] -[s4; &] -[s5;:Upp`:`:ArrayCtrl`:`:DisableLine`(int`): [@(0.0.255) void]_[* DisableLine]([@(0.0.255) i -nt]_[*@3 i])&] -[s2; Same as EnableLine(false).&] -[s3; &] -[s4; &] -[s5;:Upp`:`:ArrayCtrl`:`:IsLineEnabled`(int`)const: [@(0.0.255) bool]_[* IsLineEnabled]([@(0.0.255) i -nt]_[*@3 i])_[@(0.0.255) const]&] -[s2; Returns true if line is enabled. Not that in addition to EnableLine -method, callback WhenLineEnabled affects the status too.&] -[s3; &] -[s4; &] -[s5;:Upp`:`:ArrayCtrl`:`:IsLineDisabled`(int`)const: [@(0.0.255) bool]_[* IsLineDisabled]( -[@(0.0.255) int]_[*@3 i])_[@(0.0.255) const]&] -[s2; Same as !IsLineEnabled([*@3 i]).&] -[s3; &] -[s4; &] -[s5;:Upp`:`:ArrayCtrl`:`:ShowLine`(int`,bool`): [@(0.0.255) void]_[* ShowLine]([@(0.0.255) i -nt]_[*@3 i], [@(0.0.255) bool]_[*@3 visible])&] -[s2; Sets the visibility of line. Hidden lines are omitted from the -list.&] -[s3; &] -[s4; &] -[s5;:Upp`:`:ArrayCtrl`:`:HideLine`(int`): [@(0.0.255) void]_[* HideLine]([@(0.0.255) int]_[*@3 i -])&] -[s2; Same as ShowLine([*@3 i], false).&] -[s3; &] -[s4; &] -[s5;:Upp`:`:ArrayCtrl`:`:IsLineVisible`(int`)const: [@(0.0.255) bool]_[* IsLineVisible]([@(0.0.255) i -nt]_[*@3 i])_[@(0.0.255) const]&] -[s2; Returns true if line is visible. Not that in addition to EnableLine -method, callback WhenLineVisible affects the visibility too.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:ClearSelection`(`): [@(0.0.255) void]_[* ClearSelection]()&] -[s2; Clears the current selection (unselects all selected rows).&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:IsCursor`(`)const: [@(0.0.255) bool]_[* IsCursor]()_[@(0.0.255) const]&] -[s2; Checks whether the cursor is within the table. This is equivalent -to [* GetCursor()_>`=_0].&] -[s7; [*/ Return value]-|&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:SetCursor`(int`): [@(0.0.255) bool]_[* SetCursor]([@(0.0.255) int]_[*@3 i]) -&] -[s2; Sets the current cursor row. When an array row is open for editing, -the function first commits the edited row, then moved the cursor -to the new row. When the edited row cannot be commited, the function -returns [* false] and doesn`'t change the cursor location.&] -[s7; [*C@3 i]-|zero`-based row index&] -[s7; [*/ Return value]-|[* true] `= cursor has been moved, [* false ]when -not (when committing the previously edited row failed)&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:KillCursor`(`): [@(0.0.255) bool]_[* KillCursor]()&] -[s2; Moves the cursor away from the array. When an array row is open -for editing, the function first commits the edited row, then -moved the cursor away from the array. When the edited row cannot -be commited, the function returns [* false] and doesn`'t change -the cursor location.&] -[s7; [*/ Return value]-|[* true] `= cursor has been moved away from the -array, [* false] when not (when committing the previously edited -row failed)&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:CancelCursor`(`): [@(0.0.255) void]_[* CancelCursor]()&] -[s2; Cancels editing of the row being currently edited. All changes -made in the individual column editors are rejected.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:GetCursor`(`)const: [@(0.0.255) int]_[* GetCursor]()_[@(0.0.255) const]&] -[s2; Returns the current cursor row, `-1 when none.&] -[s7; [*/ Return value]-|zero`-based cursor row index, `-1 `= cursor -is not in the array&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:GoBegin`(`): [@(0.0.255) void]_[* GoBegin]()&] -[s2; Moves the cursor to the first row in the array (equivalent to -[* SetCursor(0)]).&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:GoEnd`(`): [@(0.0.255) void]_[* GoEnd]()&] -[s2; Moves the cursor to the last array row (equivalent to [* SetCursor(GetCount() -`- 1)]).&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:GetCursorSc`(`)const: [@(0.0.255) int]_[* GetCursorSc]()_[@(0.0.255) cons -t]&] -[s2; Returns the visual vertical position of the cursor row relative -to the current view. This method, in combination with [* ScCursor], -can be used to reposition the cursor row while maintaining the -same visual position of the row within the array view.&] -[s7; [*/ Return value]-|an integer describing the vertical position -of the cursor row relative to the array view&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:ScCursor`(int`): [@(0.0.255) void]_[* ScCursor]([@(0.0.255) int]_[*@3 a])&] -[s2; Modifies the scrollbar position so that the current cursor row -appears at a given vertical position relative to the array view. -By doing the following sequence of operations: [* GetCursorSc], -then reposition the cursor row, then [* ScCursor], you can achieve -cursor relocation while maintaining its visual location within -the array view.&] -[s7; [*C@3 a]-|an integer describing the vertical position of the cursor -row (typically a number returned by a previous call to [* GetCursorSc])&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:CenterCursor`(`): [@(0.0.255) void]_[* CenterCursor]()&] -[s2; Modifies the scrollbar position so that the current cursor row -appears in the middle of the array view.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:ScrollInto`(int`): [@(0.0.255) void]_[* ScrollInto]([@(0.0.255) int]_[*@3 l -ine])&] -[s2; Moves the scrollbar by the least possible amount in order to -make the given array row visible. When the given array row is -already visible, the function does nothing.&] -[s7; [*C@3 line]-|zero`-based row index of the array row to make visible&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:ScrollIntoCursor`(`): [@(0.0.255) void]_[* ScrollIntoCursor]()&] -[s2; Moves the scrollbar by the least possible amount in order to -make the cursor row visible. This is equivalent to [* ScrollInto(GetCursor())].&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:GetCursor`(`)const: [@(0.0.255) int]_[* GetCursor]()_[@(0.0.255) const]&] -[s2; Returns the current vertical scrollbar position.&] -[s7; [*/ Return value]-|Pixel position of the vertical scrollbar. Position -0 is at the very top (the top row of the array is fully visible).&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:ScrollTo`(int`): [@(0.0.255) void]_[* ScrollTo]([@(0.0.255) int]_[*@3 sc])&] -[s2; Moves the vertical array scrollbar to a given position.&] -[s7; [*C@3 sc]-|Pixel position of the scrollbar. The visible portion -of the array can be obtained conceptually by taking the stack -of array rows with its top aligned at the top of the view and -moving it [/ sc] pixels upwards.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:Find`(const Value`&`,int`,int`)const: [@(0.0.255) int]_[* Find]([@(0.0.255) c -onst]_[_^Value^ Value][@(0.0.255) `&]_[*@3 v], [@(0.0.255) int]_[*@3 ii]_`=_[@3 0], -[@(0.0.255) int]_[*@3 from]_`=_[@3 0])_[@(0.0.255) const]&] -[s2; [*C@3 v]-|value to look for in the given source index&] -[s7; [*C@3 ii]-|zero`-based ordinal number of the source index to search&] -[s7; [*C@3 from]-|zero`-based row index to start the search from&] -[s7; [*/ Return value]-|zero`-based number of the matched row, `-1 when -none&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:Find`(const Value`&`,const Id`&`,int`)const: [@(0.0.255) int]_[* Find]( -[@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_[*@3 v], [@(0.0.255) const -][_^Id^ Id]`&_[*@3 id], [@(0.0.255) int]_[*@3 from]_`=_[@3 0])_[@(0.0.255) const]&] -[s2; Locates the row (using linear search beginning at the row [/ from]) -in which the source index value identified by [/ id] equals [/ val]. -If such a row is found, the function returns its zero`-based -index. When not matched, the function returns `-1.&] -[s7; [*C@3 v]-|value to look for in the given source index&] -[s7; [*C@3 id]-|source index identifier&] -[s7; [*C@3 from]-|zero`-based row index to start the search from&] -[s7; [*/ Return value]-|zero`-based number of the matched row, `-1 when -none&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:FindSetCursor`(const Value`&`,int`,int`): [@(0.0.255) bool]_[* FindSetC -ursor]([@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_[*@3 val], -[@(0.0.255) int]_[*@3 ii]_`=_[@3 0], [@(0.0.255) int]_[*@3 from]_`=_[@3 0])&] -[s2; Locates the row (using linear search beginning at the row [/ from]) -in which the source index value identified by its ordinal number -[/ ii] equals [/ val]. If such a row is found, the [* SetCursor] is -called automatically to move the cursor to such a row.&] -[s7; [*C@3 val]-|value to look for in the given source index&] -[s7; [*C@3 ii]-|zero`-based ordinal number of the source index to search&] -[s7; [*C@3 from]-|zero`-based row index to start the search from&] -[s7; [*/ Return value]-|zero`-based number of the matched row, `-1 when -none&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:FindSetCursor`(const Value`&`,const Id`&`,int`): [@(0.0.255) bool]_[* F -indSetCursor]([@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_[*@3 val], -[@(0.0.255) const ][_^Id^ Id]`&_[*@3 id], [@(0.0.255) int]_[*@3 from]_`=_[@3 0])&] -[s2; Locates the row (using linear search beginning at the row [/ from]) -in which the source index value identified by [/ id] equals [/ val]. -If such a row is found, the [* SetCursor] is called automatically -to move the cursor to such a row.&] -[s7; [*C@3 val]-|value to look for in the given source index&] -[s7; [*C@3 id]-|source index identifier&] -[s7; [*C@3 from]-|zero`-based row index to start the search from&] -[s7; [*/ Return value]-|[* true] `= the desired row was found (and the -cursor set), [* false] when not&] -[s3; &] -[s0;* &] -[s0; [* User interface elements]&] -[s3; &] -[s0; &] -[s5;:ArrayCtrl`:`:StdBar`(Bar`&`): [@(0.0.255) void]_[* StdBar]([_^Bar^ Bar][@(0.0.255) `&]_[*@3 m -enu])&] -[s2; The default array local menu. The default local menu consists -of the standard editing actions (inserting / appending / duplicating -a row, editing a row, removing a row, moving a row, select all -rows) filtered by the array properties enabling / disabling the -various GUI elements (item insertion / deletion etc.). &] -[s7; [*C@3 menu]-|the [* Bar] object representing the menu being generated&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:IsModified`(int`)const: [@(0.0.255) bool]_[* IsModified]([@(0.0.255) int]_ -[*@3 ii])_[@(0.0.255) const]&] -[s2; Checks a source index in the currently edited row for changes.&] -[s7; [*C@3 ii]-|zero`-based row index&] -[s7; [*/ Return value]-|[* true] `= the index has been modified, [* false] -`= the index is in its original state&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:IsModified`(const Id`&`)const: [@(0.0.255) bool]_[* IsModified]([@(0.0.255) c -onst ][_^Id^ Id]`&_[*@3 id])_[@(0.0.255) const]&] -[s2; Checks a source index in the currently edited array row for -changes.&] -[s7; [*C@3 id]-|source index identifier&] -[s7; [*/ Return value]-|[* true] `= the source index has been modified, -[* false ]when not&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:StartEdit`(int`): [@(0.0.255) bool]_[* StartEdit]([@(0.0.255) int]_[*@3 d]_ -`=_[@3 0])&] -[s2; Opens the current cursor row for editing and sets focus to the -[/ d]`-th column.&] -[s7; [*C@3 d]-|zero`-based column index&] -[s7; [*/ Return value]-|[* true] `= editing successfully initiated, [* false] -when not (when the array is in [* ReadOnly] mode or it has no editable -columns)&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:GetEditColumn`(`)const: [@(0.0.255) int]_[* GetEditColumn]()_[@(0.0.255) c -onst]&] -[s2; Returns the column being currently edited.&] -[s7; [*/ Return value]-|zero`-based index of the column being edited, -`-1 `= none&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:DoEdit`(`): [@(0.0.255) void]_[* DoEdit]()&] -[s2; Opens the current cursor row for editing.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:DoInsert`(int`): [@(0.0.255) void]_[* DoInsert]([@(0.0.255) int]_[*@3 curso -r])&] -[s2; Begins the GUI insertion of a new row at a given location.&] -[s7; [*C@3 cursor]-|zero`-based location of the new row&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:DoInsertBefore`(`): [@(0.0.255) void]_[* DoInsertBefore]()&] -[s2; Begins the GUI insertion of a new row above the current row.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:DoInsertAfter`(`): [@(0.0.255) void]_[* DoInsertAfter]()&] -[s2; Begins the GUI insertion of a new row below the current row.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:DoAppend`(`): [@(0.0.255) void]_[* DoAppend]()&] -[s2; Begins the GUI insertion of a new row at the end of the array.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:DoRemove`(`): [@(0.0.255) virtual] [@(0.0.255) bool]_[* DoRemove]()&] -[s2; Performs the GUI`-based removal of the current cursor row. When -the [* AskRemove] property is set to [* true] and the user cancels -the confirmation dialog, the function returns [* false] and the -current row is not removed.&] -[s7; [*/ Return value]-|[* true] `= row has been removed successfully, -[* false] `= user has canceled the row removal&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:DoDuplicate`(`): [@(0.0.255) void]_[* DoDuplicate]()&] -[s2; Duplicates the current row and opens it for editing.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:DoSelectAll`(`): [@(0.0.255) void]_[* DoSelectAll]()&] -[s2; Marks all array row as selected.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:AcceptEnter`(`): [@(0.0.255) bool]_[* AcceptEnter]()&] -[s2; Performs all necessary GUI actions equivalent to when the user -presses the [* Enter] key. The row being currently edited is committed -and, in the case it was a newly appended line and the [* NoInsertAppend] -property is not set, an additional row is added to the array -and opened for editing.&] -[s7; [*/ Return value]-|[* true] `= the current row has been successfully -committed, [* false] when not&] -[s3; &] -[s0; &] -[s0; &] -[s0; [* Content export]&] -[s0;* &] -[s3; &] -[s5;:ArrayCtrl`:`:AsText`(String`(`*`)`(const Value`&`)`,bool`,const char`*`,const char`*`,const char`*`,const char`*`)const: [_^String^ S -tring]_[* AsText]([_^String^ String]_(`*[*@3 format])([@(0.0.255) const]_Value[@(0.0.255) `& -]), [@(0.0.255) bool]_[*@3 sel]_`=_[@(0.0.255) false], [@(0.0.255) const]_[@(0.0.255) char]_ -`*[*@3 tab]_`=_`"`\t`", [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 row]_`=_`"`\r`\n`", -[@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 hdrtab]_`=_`"`\t`", [@(0.0.255) const]_[@(0.0.255) c -har]_`*[*@3 hdrrow]_`=_`"`\r`\n`")_[@(0.0.255) const]&] -[s2; Generic function for conversion of ArrayCtrl content to text. -The content visible on screen is exported (means, it exports -columns defined using AddColumn, not indicies). Cells are converted -to output format using [*@3 format] function. If [*@3 sel] is true, -only rows with IsSel true are exported. [*@3 tab] represents a -separator text between cells in a row, [*@3 row] separator of rows. -[*@3 hdrtab] is separator of header cells (those are texts of ArrayCtrl -header) `- if NULL, no header is exported. [*@3 hdrrow].is separator -of header and data rows.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:SetClipboard`(bool`,bool`)const: [@(0.0.255) void]_[* SetClipboard]([@(0.0.255) b -ool]_[*@3 sel]_`=_[@(0.0.255) false], [@(0.0.255) bool]_[*@3 hdr]_`=_[@(0.0.255) true])_[@(0.0.255) c -onst]&] -[s2; Puts ArrayCtrl content to clipboard in text format, `"`\t`" -and `"`\r`\n`" as separators. If [*@3 sel] is true, only rows with -IsSel true are exported, [*@3 hdr] controls whether header is exported.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:AsQtf`(bool`,bool`): [_^String^ String]_[* AsQtf]([@(0.0.255) bool]_[*@3 se -l]_`=_[@(0.0.255) false], [@(0.0.255) bool]_[*@3 hdr]_`=_[@(0.0.255) true])&] -[s2; Returns ArrayCtrl content in QTF format. If [*@3 sel] is true, -only rows with IsSel true are exported, [*@3 hdr] controls whether -header is exported.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:AsCsv`(bool`,int`,bool`): [_^String^ String]_[* AsCsv]([@(0.0.255) bool]_ -[*@3 sel]_`=_[@(0.0.255) false], [@(0.0.255) int]_[*@3 sep]_`=_`';`', -[@(0.0.255) bool]_[*@3 hdr]_`=_[@(0.0.255) true])&] -[s2; Returns ArrayCtrl content in csv format, using [*@3 sep] as separator. -If [*@3 sel] is true, only rows with IsSel true are exported, [*@3 hdr] -controls whether header is exported.&] -[s0; &] -[s0; &] -[s0; [* Notification callbacks]&] -[s3; &] -[s3; &] -[s5;:ArrayCtrl`:`:WhenSel: [_^Callback^ Callback]_[* WhenSel]&] -[s2; Called whenever cursor or selection changes. This probably the -most common ArrayCtrl callback. We recommend to start with this -one first and use others only if necessary.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:WhenLeftClick: [_^Callback^ Callback]_[* WhenLeftClick]&] -[s2; This callback is called whenever the user clicks an array cell.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:WhenLeftDouble: [_^Callback^ Callback]_[* WhenLeftDouble]&] -[s2; This callback is called whenever the user doubleclicks an array -cell.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:WhenMouseMove: [_^Callback1^ Callback1]<[_^Point^ Point]>_[* WhenMouseMov -e]&] -[s2; Called when mouse moves over the ArrayCtrl or moves out of ArrayCtrl. -The Point`::y is the line number, Point`::x column index. If mouse -moves out of ArrayCtrl, parameter is Null.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:WhenEnterKey: [_^Callback^ Callback]_[* WhenEnterKey]&] -[s2; Called when user presses Enter key while focus is in ArrayCtrl, -some line of ArrayCtrl has cursor and Enter key is not `'eaten`' -by another action like accepting the input. When this Callback -is not empty, Enter key is never passed to parent.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:WhenBar: [_^Callback1^ Callback1]_[* WhenBar]&] -[s2; This callback is called whenever the local array menu has to -be regenerated. By setting this callback to a different function -/ method you can supply a custom local menu for the array. The -[* Bar`&] argument is a reference to the menu to be generated.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:WhenEnterRow: [_^Callback^ Callback]_[* WhenEnterRow]&] -[s2; This callback is called every time the cursor location changes -to a different row of the array.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:WhenAcceptRow: [_^Gate^ Gate]_[* WhenAcceptRow]&] -[s2; This gate is called every time an array row (open for editing) -needs to be validated. When the gate returns [* false], the validation -process is assumed to have failed, when it returns [* true], it -is assumed to have succeeded. You can use this callback to add -your own validation algorithms relevant to the array context -within your application.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:WhenUpdateRow: [_^Callback^ Callback]_[* WhenUpdateRow]&] -[s2; This callback is called whenever an array row has been updated. -You can use this callback e.g. to project the changes to a database -or generally to an external data source.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:WhenKillCursor: [_^Callback^ Callback]_[* WhenKillCursor]&] -[s2; This callback is called whenever the cursor is moved away from -the table.&] -[s2; [* Note:] internally, when moving the cursor (e.g. by calling the -[* SetCursor ]method), after committing the previous row the cursor -is removed from the table using [* KillCursor] and placed to the -new location afterwards. Therefore every time the cursor is moved, -the [* WhenKillCursor] callback is called as a by`-product.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:WhenCursor: [_^Callback^ Callback]_[* WhenCursor]&] -[s2; This callback is called every time the cursor row number changes -(either when the cursor is removed from the table, or when it -has been moved to a different row).&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:WhenArrayAction: [_^Callback^ Callback]_[* WhenArrayAction]&] -[s2; This callback is called every time the source array data changes -(typically after accepting changes to a certain row or after -deleting a row).&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:WhenStartEdit: [_^Callback^ Callback]_[* WhenStartEdit]&] -[s2; This callback is called whenever the array row editing process -is initiated. It can be used e.g. to set up some additional properties -of the column editor objects, to fill in drop`-down lists pertaining -to certain column editors etc.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:WhenAcceptEdit: [_^Callback^ Callback]_[* WhenAcceptEdit]&] -[s2; This callback is called whenever the currently edited line has -been committed.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:WhenSelection: [_^Callback^ Callback]_[* WhenSelection]&] -[s2; This callback is called whenever the current array selection -changes. This includes changes to the cursor location as the -cursor is automatically considered part of the selection.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:WhenCtrlsAction: [_^Callback^ Callback]_[* WhenCtrlsAction]&] -[s2; This callback is called whenever some of the editor controls -constructed automatically via the column editing [/ factory] calls -its [* WhenAction] method. It can be used to watch out for changes -in the cell editors and react to specific situations accordingly.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:WhenScroll: [_^Callback^ Callback]_[* WhenScroll]&] -[s2; Called when scrolling of ArrayCtrl content happened.&] -[s3; &] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:WhenHeaderLayout: [_^Callback^ Callback]_[* WhenHeaderLayout]&] -[s2; Called when header changes.&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:ArrayCtrl`:`:WhenColumnSorted:%- [_^Upp`:`:Event^ Event]<>_[* WhenColumnSorte -d]&] -[s2; Invoked at the end of DoColumnSort. This allows to react to -user sorting ArrayCtrl by clicking on column header marked as -Sorting.&] -[s3;%- &] -[s4; &] -[s5;:ArrayCtrl`:`:WhenLineEnabled: [_^Callback2^ Callback2]<[@(0.0.255) int], -[@(0.0.255) bool`&]>_[* WhenLineEnabled]&] -[s2; Provides additional means to enable/disable lines in addition -to `"EnableLine`" interface. This is especially useful when using -SetVirtualCount. First parameter is the line number, second is -reference to enable status.&] -[s3; &] -[s4; &] -[s5;:Upp`:`:ArrayCtrl`:`:WhenLineVisible: [_^Upp`:`:Callback2^ Callback2]<[@(0.0.255) int -], [@(0.0.255) bool`&]>_[* WhenLineVisible]&] -[s2; Provides additional means to show/hide lines in addition to -`"ShowLine`" interface. This is especially useful when using -SetVirtualCount. First parameter is the line number, second is -reference to visibility status.&] -[s3; &] -[s0; &] -[ {{10000t/25b/25@3 [s0; [*@(229)4 ArrayCtrl`::IdInfo]]}}&] -[s3; &] -[s1;:ArrayCtrl`:`:IdInfo`:`:struct: [@(0.0.255)3 struct][3 _][*3 IdInfo]&] -[s9; The [* IdInfo] structure contains properties of all source array -indices. It can be used to set additional properties pertaining -to source array data.&] -[s3; &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] -[s3; &] -[s5;:ArrayCtrl`:`:IdInfo`:`:InsertValue`(const Value`&`): [_^ArrayCtrl`:`:IdInfo^ IdInf -o][@(0.0.255) `&]_[* InsertValue]([@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_[*@3 v]) -&] -[s2; The method sets up the default source index value for newly -created rows. This is used only when the row insertion is GUI`-based -(like using the [* DoInsert] method for instance). When a row is -added to the array programmatically (e.g. using [* Add] or [* Insert]), -these default values are not used.&] -[s7; [*C@3 v]-|default source index value&] -[s7; [*/ Return value]-|[* `*this]&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:IdInfo`:`:InsertValue`(ValueGen`&`): [_^ArrayCtrl`:`:IdInfo^ IdInfo][@(0.0.255) `& -]_[* InsertValue]([_^ValueGen^ ValueGen][@(0.0.255) `&]_[*@3 g])&] -[s2; The method sets up a factory for generating default index values -for newly created rows. This is used only when the row insertion -is GUI`-based (like using the [* DoInsert] method for instance). -When a row is added to the array programmatically (e.g. using -[* Add] or [* Insert]), the [* InserValue] property is not consulted.&] -[s7; [*C@3 g]-|a reference to the value generation factory. The ownership -to the factory is not passed by this call; the caller must insure -the existence of the factory object throughout the array duration.&] -[s7; [*/ Return value]-|[* `*this]&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:IdInfo`:`:Accel`(int`(`*`)`(int`)`): [_^ArrayCtrl`:`:IdInfo^ IdInfo][@(0.0.255) `& -]_[* Accel]([@(0.0.255) int]_(`*[*@3 filter])([@(0.0.255) int]))&] -[s2; This method sets up the source index accelerator function. The -accelerator is used to quickly locate rows using the keyboard -key presses.&] -[s7; [*C@3 filter]-|a [* CharFilter ]function for keypress filtering&] -[s7; [*/ Return value]-|[* `*this]&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:IdInfo`:`:Accel`(`): [_^ArrayCtrl`:`:IdInfo^ IdInfo][@(0.0.255) `&]_[* Ac -cel]()&] -[s2; This method sets up keyboard acceleration for the given source -index. The `'trivial`' [/ CharConvert] is used for character translation.&] -[s7; [*/ Return value]-|[* `*this]&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:IdInfo`:`:GetInsertValue`(`): [_^Value^ Value]_[* GetInsertValue]()&] -[s2; Uses the [* InsertValue] property to generate a new source index -value (either using a fixed default value or the value creation -factory).&] -[s7; [*/ Return value]-|the generated value to be used as the default -for the newly inserted row.&] -[s3; &] -[s0; &] -[s0; &] -[s0; &] -[ {{10000t/25b/25@3 [s0; [*@(229)4 ArrayCtrl`::Column]]}}&] -[s3; &] -[s1;:ArrayCtrl`:`:Column`:`:class: [@(0.0.255)3 class][3 _][*3 Column][3 _:_][@(0.0.255)3 privat -e][3 _][*@3;3 FormatConvert]&] -[s2; &] -[s0; [/ Derived from] FormatConvert&] -[s0;3 &] -[s0; The [* ArrayCtrl`::Column] structure describes an output array -column. Its methods can be used to set or query its properties, -some of which are also settable via ArrayCtrl methods.&] -[s3; &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] -[s3; &] -[s5;:ArrayCtrl`:`:Column`:`:Add`(int`): [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `&]_[* A -dd]([@(0.0.255) int]_[*@3 `_pos])&] -[s2; Adds another source data index to the list of source indices -used as the data for the given output column.&] -[s7; [*C@3 `_pos]-|zero`-based ordinal number of the source index&] -[s7; [*/ Return value]-|[* `*this].&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:Column`:`:Add`(const Id`&`): [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `& -]_[* Add](const [_^Id^ Id]`&_[*@3 id])&] -[s2; Adds another source data index to the list of source indices -used as the data for the given output column.&] -[s7; [*C@3 id]-|the [* Id] identifier of the source index&] -[s7; [*/ Return value]-|[* `*this]&] -[s3; &] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:Column`:`:AddIndex`(const Id`&`): [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `& -]_[* AddIndex]([@(0.0.255) const]_[_^Id^ Id][@(0.0.255) `&]_[*@3 id])&] -[s2; Adds another source index to the array and adds it to the list -of source indices bound to this output column. The newly created -index is assigned the given identifier.&] -[s7; [*C@3 id]-|the identifier for the newly created index&] -[s7; [*/ Return value]-|[* `*this]&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:Column`:`:AddIndex`(`): [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `&]_ -[* AddIndex]()&] -[s2; Adds another source index to the array and adds it to the list -of source indices bound to this output column.&] -[s7; [*/ Return value]-|[* `*this]&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:Column`:`:SetConvert`(const Convert`&`): [_^ArrayCtrl`:`:Column^ Colu -mn][@(0.0.255) `&]_[* SetConvert]([@(0.0.255) const]_[_^Convert^ Convert][@(0.0.255) `&]_[*@3 c -])&] -[s2; Sets the [* Convert] object for the given column. This object -is used to convert the source values (obtained from the source -data matrix) to the values displayable and/or editable by the -respective column display / editor object.&] -[s2; [* Note:] the ownership of the [* Convert] object is not transferred -by this function. The array merely stores a pointer to the Convert -object. It is up to the host application to keep the Convert -object alive as long as necessary (until the ArrayCtrl object -is destroyed or all references to the Convert object obliterated -by new calls to the [* SetConvert] method). In any case, most Convert`-based -object do not support copying at all; moreover, as the Convert`-based -objects are mostly derived from the basic class, their copying -is normally prone to slicing.&] -[s7; [*C@3 c]-|a constant reference to the Convert object to use for -the given column&] -[s7; [*/ Return value]-|[* `*this]&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:ArrayCtrl`:`:Column`:`:ConvertBy`(Upp`:`:Function``):%- [_^Upp`:`:ArrayCtrl`:`:Column^ A -rrayCtrl`::Column][@(0.0.255) `&]_[* ConvertBy]([_^Upp`:`:Function^ Function]_[*@3 cv])&] -[s2; Similar to SetConvert, but using [%-*@3 cv] instead of class for -conversion.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:Column`:`:SetFormat`(const char`*`): [@(0.0.255) virtual] -[_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `&]_[* SetFormat]([@(0.0.255) const]_[@(0.0.255) c -har]_`*[*@3 fmt])&] -[s2; Sets the format string to use for the default value formatting. -When no Convert object is set for the column, the source value -is normally passed to the [* NFormat] function where the [/ fmt] -argument defines the desired formatting pattern.&] -[s7; [*C@3 fmt]-|a [* NFormat]`-compatible formatting pattern&] -[s7; [*/ Return value]-|[* `*this]&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:Column`:`:SetDisplay`(const Display`&`): [_^ArrayCtrl`:`:Column^ Colu -mn][@(0.0.255) `&]_[* SetDisplay]([@(0.0.255) const]_[_^Display^ Display][@(0.0.255) `&]_[*@3 d -])&] -[s2; Sets the default Display to use for this column. The column -Display can be overridden for certain array cells by calls to -the [*^topic`:`/`/CtrlLib`/src`/ArrayCtrl`$en`-us`#`:`:ArrayCtrl`:`:SetDisplay`(int`,int`,const Display`&`)^ A -rrayCtrl`::SetDisplay] method.&] -[s2; [* Note:] the ownership to the Display object is not transferred -by this function. The array merely stores a pointer to the Display; -it is up to the host application to keep the Display object alive -as long as necessary.&] -[s7; [*C@3 d]-|a reference to the Display object&] -[s7; [*/ Return value]-|[* `*this]&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:Column`:`:Edit`(Ctrl`&`): [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `& -]_[* Edit]([_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 e])&] -[s2; Sets up the Ctrl`-based object to use for inline array column -editing.&] -[s7; [*C@3 e]-|a reference to the editor control object&] -[s7; [*/ Return value]-|[* `*this]&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:Column`:`:Ctrls`(void`(`*`)`(One``&`)`): [_^ArrayCtrl`:`:Column^ C -olumn][@(0.0.255) `&]_[* Ctrls]([@(0.0.255) void]_(`*[*@3 factory])(One`&))&] -[s2; The methods sets up a factory which the ArrayCtrl uses as necessary -to create new Ctrl`'s for editing a given column. The argument -of this function is a function pointer, which, upon execution, -should allocate (normally using the One`::Create method) the desired -editor object and set it to its argument. If the position of -Ctrl is equivalent to `'SetRect(0, 0, 0, 0)`', which is the default -value, Ctrl is resized to fit the ArrayCtrl cell accurately, -spanning the whole width and using STDSIZE for height, otherwise -the position represents the position within the cell.&] -[s7; [*C@3 factory]-|a global function used for editor control creation&] -[s7; [*/ Return value]-|[* `*this]&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:Column`:`:Ctrls`(`): [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 T]>_[_^ArrayCtrl`:`:Column^ C -olumn][@(0.0.255) `&]_[* Ctrls]()&] -[s2; This member template sets up a default factory for creating -editor controls of a given type. Every time the ArrayCtrl needs -to create a new editor control, an object of the type [* T] is -created automatically (using the [* new] operator). If the position -of Ctrl is equivalent to `'SetRect(0, 0, 0, 0)`', which is the -default value, Ctrl is resized to fit the ArrayCtrl cell accurately, -spanning the whole width and using STDSIZE for height, otherwise -the position represents the position within the cell.&] -[s7; [*C@4 T]-|the desired object editor type &] -[s7; [*/ Return value]-|[* `*this]&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:ArrayCtrl`:`:Column`:`:WithLined`(Upp`:`:Event``&`>`):%- [_^Upp`:`:ArrayCtrl`:`:Column^ A -rrayCtrl`::Column][@(0.0.255) `&]_[* WithLined]([_^Upp`:`:Event^ Event]<[@(0.0.255) int], -[_^Upp`:`:One^ One]<[_^Upp`:`:Ctrl^ Ctrl]>`&>_[*@3 factory])&] -[s2; This method sets up a factory which the ArrayCtrl uses to create -new Ctrl`'s for editing a given column. The argument, a global -function, is supposed to create a new editor control in the second -argument (usually using the One`::Create method). The first argument -of Event is the line index. If the position of Ctrl is equivalent -to `'SetRect(0, 0, 0, 0)`', which is the default value, Ctrl -is resized to fit the ArrayCtrl cell accurately, spanning the -whole width and using STDSIZE for height, otherwise the position -represents the position within the cell.&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:ArrayCtrl`:`:Column`:`:With`(Upp`:`:Event``&`>`):%- [_^Upp`:`:ArrayCtrl`:`:Column^ A -rrayCtrl`::Column][@(0.0.255) `&]_[* With]([_^Upp`:`:Event^ Event]<[_^Upp`:`:One^ One]<[_^Upp`:`:Ctrl^ C -trl]>`&>_[*@3 factory])&] -[s2; This method sets up a factory which the ArrayCtrl uses to create -new Ctrl`'s for editing a given column. The argument, a global -function, is supposed to create a new editor control in the argument -(usually using the One`::Create method). If the position of Ctrl -is equivalent to `'SetRect(0, 0, 0, 0)`', which is the default -value, Ctrl is resized to fit the ArrayCtrl cell accurately, -spanning the whole width and using STDSIZE for height, otherwise -the position represents the position within the cell.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:Column`:`:InsertValue`(const Value`&`): [_^ArrayCtrl`:`:Column^ Colum -n][@(0.0.255) `&]_[* InsertValue]([@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_[*@3 v]) -&] -[s2; Instructs the ArrayCtrl object to initialize this column in -newly created rows to the given value [/ v]. (This applies only -to GUI`-based row insertion using methods like [* DoInsert] etc., -the low`-level, programmer`-controlled row insertion methods -like [* Add] or [* Insert] always initialize the source data matrix -with [* Null]`'s).&] -[s7; [*C@3 v]-|the value to use as the default for newly inserted rows&] -[s7; [*/ Return value]-|[* `*this]&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:Column`:`:InsertValue`(ValueGen`&`): [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `& -]_[* InsertValue]([_^ValueGen^ ValueGen][@(0.0.255) `&]_[*@3 g])&] -[s2; Programs the ArrayCtrl object to use the given [* ValueGen] factory -for default value generation for newly created rows. This can -be used e.g. to generate unique UUID`'s or primary keys using -an Oracle SEQUENCE object for a primary key column.&] -[s7; [*C@3 g]-|a reference to the ValueGen object used for default value -generation&] -[s7; [*/ Return value]-|[* `*this]&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:Column`:`:NoClickEdit`(`): [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `& -]_[* NoClickEdit]()&] -[s2; Disables entering the editing mode when clicking the respective -column.&] -[s7; [*/ Return value]-|[* `*this]&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:Column`:`:Cache`(`): [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `&]_[* Ca -che]()&] -[s2; Enables using the cache to store the converted values of this -column. By default, converted value caching is turned off to -make cell value conversion entirely dynamic; however, very often -it is advisable to enable using the cache, especially when the -conversion is relatively slow (for instance, when the conversion -queries a database connection to convert the value).&] -[s7; [*/ Return value]-|[* `*this]&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:Column`:`:Accel`(int`(`*`)`(int`)`): [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `& -]_[* Accel]([@(0.0.255) int]_(`*[*@3 filter])([@(0.0.255) int]))&] -[s2; Sets up the accelerator for the given column. A given filtering -function is used to convert keystrokes before acceleration.&] -[s7; [*C@3 filter]-|a [* CharConvert]`-style function to use for keystroke -conversion&] -[s7; [*/ Return value]-|[* `*this]&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:Column`:`:Accel`(`): [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `&]_[* Ac -cel]()&] -[s2; Sets up the accelerator for the given column. No keystroke conversion -is performed.&] -[s7; [*/ Return value]-|[* `*this]&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:Column`:`:Margin`(int`): [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `&]_ -[* Margin]([@(0.0.255) int]_[*@3 m])&] -[s2; Sets up the margin width for the given column. This is equivalent -to calling the [*^topic`:`/`/CtrlLib`/src`/HeaderCtrl`$en`-us`#`:`:HeaderCtrl`:`:Column`:`:SetMargin`(int`)^ S -etMargin] method of the underlying [* HeaderTab].&] -[s7; [*C@3 m]-|&] -[s7; [*/ Return value]-|[* `*this]&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:Column`:`:Sorting`(const ValueOrder`&`): [_^ArrayCtrl`:`:Column^ Colu -mn][@(0.0.255) `&]_[* Sorting]([@(0.0.255) const]_[_^ValueOrder^ ValueOrder][@(0.0.255) `&]_ -[*@3 o])&] -[s5;:ArrayCtrl`:`:Column`:`:Sorting`(`): [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `&]_[* S -orting]()&] -[s2; Activates sorting of ArrayCtrl column by clicking on its header -tab. Parameterless version uses default Value ordering using -StdValueCompare.&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:ArrayCtrl`:`:Column`:`:SortingLined`(Upp`:`:Gate``):%- [_^Upp`:`:ArrayCtrl`:`:Column^ A -rrayCtrl`::Column][@(0.0.255) `&]_[* SortingLined]([_^Upp`:`:Gate^ Gate]<[@(0.0.255) int], - [@(0.0.255) int]>_[*@3 aorder])&] -[s2; Activates sorting of ArrayCtrl column by clicking on its header -tab. This variant uses a Gate2 predicate that is supposed to -compare two lines (it has indicies as parameters). Note that -this variant ignores ascending/descending order, it has to be -implemented in predicate, using ArrayCtrl`::IsSortDescending to -determine the order.&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:ArrayCtrl`:`:Column`:`:SortingBy`(Upp`:`:Function``):%- [_^Upp`:`:ArrayCtrl`:`:Column^ A -rrayCtrl`::Column][@(0.0.255) `&]_[* SortingBy]([_^Upp`:`:Function^ Function]<[@(0.0.255) i -nt]_([@(0.0.255) const]_Value[@(0.0.255) `&]_a, [@(0.0.255) const]_Value[@(0.0.255) `&]_b -)>_[*@3 c])&] -[s2; Activates sorting of ArrayCtrl column by clicking on its header -tab, using [%-*@3 c] to compare values of column. [%-*@3 c] should -return `-1, 0, 1 for <, `=, >.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:Column`:`:SortDefault`(`): [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `& -]_[* SortDefault]()&] -[s2; Sets this column to be initial sorting column (calls SetSortColumn -of ArrayCtrl). If none of Sorting/SortingBy/SortingLines methods -was called on this column yet, calls default Sorting for the -column too.&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:Column`:`:HeaderTab`(`): [_^HeaderCtrl`:`:Column^ HeaderCtrl`::Column][@(0.0.255) `& -]_[* HeaderTab]()&] -[s5;:ArrayCtrl`:`:Column`:`:HeaderTab`(`)const: [@(0.0.255) const]_[_^HeaderCtrl`:`:Column^ H -eaderCtrl`::Column][@(0.0.255) `&]_[* HeaderTab]()_[@(0.0.255) const]&] -[s2; Returns the [* HeaderCtrl`::Column] object describing the given -column. This object can be used to set up additional column properties -(like column width constraints or the [*^topic`:`/`/CtrlLib`/src`/HeaderCtrl`$en`-us`#`:`:HeaderCtrl`:`:Column`:`:Callback WhenAction^ W -henAction] callback).&] -[s3; &] -[s4; &] -[s5;:ArrayCtrl`:`:Column`:`:Tip`(const char`*`): [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `& -]_[* Tip]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 tip])&] -[s2; Assigns a [*@3 tip] to header tab column.&] -[s3; &] -[s0; &] -[ {{10000t/25b/25@3 [s0; [*@(229)4 ArrayCtrl`::Order]]}}&] -[s3; &] -[s1;:ArrayCtrl`:`:Order`:`:struct: [@(0.0.255)3 struct][3 _][*3 Order]&] -[s9; The [* Order] object is used for array row sorting. The overloaded -[* operator ()] acts as the sorting predicate, which is consulted -within the sorting method to determine which of a given pair -of row is `'less`' according to the desired sorting.&] -[s3; &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] -[s3; &] -[s5;:ArrayCtrl`:`:Order`:`:operator`(`)`(const Vector``&`,const Vector``&`)const: [@(0.0.255) v -irtual] [@(0.0.255) bool]_[* operator()]([@(0.0.255) const]_[_^Vector^ Vector]<[_^Value^ Va -lue]>`&_[*@3 row1], [@(0.0.255) const]_[_^Vector^ Vector]<[_^Value^ Value]>`&_[*@3 row2])_[@(0.0.255) c -onst]_`=_[@3 0]&] -[s2; The sorting predicate. This method should return [* true] when -its first argument ([/ row1]) is less than the second argument -([/ row2]) according to the desired ordering.&] -[s7; [*C@3 row1]-|an array of source data index values for the first -of the rows to compare&] -[s7; [*C@3 row2]-|an array of source data index values for the other -row to compare&] -[s7; [*/ Return value]-|[* true] `= row1 < row2, [* false] `= row1 >`= row2&] -[s3; &] +topic "ArrayCtrl"; +[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,2#27521748481378242620020725143825:desc] +[0 $$3,0#96390100711032703541132217272105:end] +[H6;0 $$4,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] +[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] +[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] +[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] +[b42;2 $$9,9#13035079074754324216151401829390:normal] +[{_}%EN-US +[ {{10000t/25b/25@3 [s0; [*@(229)4 ArrayCtrl]]}}&] +[s5;K &] +[s0; +@@image:2362&1443 +(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) +&] +[s0;*@3;3 &] +[s1;:ArrayCtrl`:`:class: [@(0.0.255)3 class][3 _][*3 ArrayCtrl][3 _:_][@(0.0.255)3 public][3 _][*@3;3 C +trl]&] +[s1; &] +[s0; [* +@@image:1843&731 +(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) +]&] +[s0;* &] +[s0; [* ArrayCtrl] implements basic grid functionality. It is typically +used for display and editing of arrays of values or (heterogeneous) +records. The records correspond to rows in the array, the individual +fields within each record can be either bound to columns or to +any generic [* Ctrl]`'s, thus supporting basic master`-detail functionality +with practically no additional cost.&] +[s0; &] +[s0; The standard derived classes extend various aspects of the ArrayCtrl +functionality. [* SqlArray] adds the nuts and bolts needed for +editing SQL`-based tables, whereas [* PopupTable] couples the ArrayCtrl +functionality with the drop`-down mechanism very similar to the +one used in popup menus. This opens the door for implementing +drop`-down controls like [* DropList] (aka [/ combo box]) or [* DropChoice] +(usually used together with a control of the [* EditField ]or [* DataPusher] +family to support coupling native data editing with drop`-down +selection, widely used for history or commonly used predefined +values. The [* ArrayPair] is, as its name implies, a pair of [* ArrayCtrl]`'s +with arrow buttons between them allowing to visually select subsets +of a certain set by moving its elements between the two lists.&] +[s0; &] +[s0; [*+117 The array data organization: indices and columns]&] +[s0; &] +[s0; There is a great deal of genericity supported by the ArrayCtrl +with respect both to its source data and its visual presentation. +Conceptually, the source array data is a matrix of [* Value]`'s. +There is a series of methods for accessing this source data, +the basic ones being [* Set] and [* Get]. The rows are addressed +by integer indices (zero based), the columns can be addressed +either by integer indices as well, or alternatively any source +column can be assigned an [* Id] identifier and addressed by it. +This is especially helpful in SQL`-based tables, where the table +column names can be used for the [* Id]`'s. A pair of methods, +[* GetPos] and [* GetId], can be used to translate these two column +addressing modes. In the code terminology, the columns in the +source data matrix are called [/ indices] whereas the visual (output) +columns are called simply [/ columns].&] +[s0; &] +[s0; The visual ArrayCtrl structure can be entirely independent of +the source data structure (although it`'s seldom helpful to make +the mapping completely arbitrary). Basically, each column can +have an arbitrary number of indices defining its source data. +Of course, the most common case is one index per column. This +is also simplest to address, because the column indices are equal +to the source data indices. However, many other combinations +are possible, each of which can be handy in certain situations:&] +[s0; &] +[s0;i150;O0; Index without a column: the most common of the `"special`" +cases is used mainly for row id`'s or other internally important +data without visual representation. The same behaviour can be +obtained by making a column invisible.&] +[s0;i150;O0; Column without an index (a [/ rownum column]): this less +common case can be used to display external data (not stored +in the table). &] +[s0;i150;O0; Multiple columns sharing the same index: this can be +used to display various aspects of a complex data object or to +display the same source data in multiple ways (e.g., a temperature +reading in Celsius and Fahrenheit degrees).&] +[s0;i150;O0; Column with multiple indices: can be used to display +information gathered from multiple source data columns. This +is used for instance in IconDes in TheIDE to display image identifiers +together with their sizes in the list. This is the most complicated +case because you have to implement a specific [* Display] for such +a multi`-index column.&] +[s0; &] +[s0; [* Note:] in the current U`+`+ version, the implementation of index`-less +columns (arrays with external data not stored in the source matrix) +is rather awkward. It is planned to enhance this feature in the +future by adding support for access to external data via a data +accessor interface object. &] +[s0; &] +[s0; [*+117 ArrayCtrl GUI: selection, editing, and local menu]&] +[s0; &] +[s0; Array rows can be selected using the mouse or keyboard. ArrayCtrl`'s +support both single`-selection (plain cursor) and multiselection +model. Of course, row selection can be controlled via the programmatic +array interface as well. The selection and cursor always spans +entire rows, it is not possible (without substantial patchwork) +to select only certain columns or individual cells.&] +[s0; &] +[s0; The ArrayCtrl rows can be inserted, edited and deleted either +programmatically, or via common GUI elements (mouse and keyboard +selection, local menu). It is possible to alter the standard +ArrayCtrl local menu using the [* WhenBar] callback.&] +[s0; &] +[s0; [* Note:] it is worth noting that the standard editing keys ([* Insert] +`= row insertion, [* Ctrl`+Enter] `= editing and [* Ctrl`+Delete] +`= deletion) are not hardcoded in the ArrayCtrl`'s [* Key] method, +they are mere hotkeys for the relevant local menu items. When +you change the ArrayCtrl`'s local menu, the editing hotkeys change +accordingly.&] +[s0; &] +[s0; A special but rather important case of array editing is [/ sorting]: +there is no specific standard GUI for that. If you aren`'t content +with programmatic sorting (e.g. after opening a dialog or after +loading the array data), you have to implement some GUI for that +as well. In certain cases, it is cool to use the [* HeaderCtrl] +[* WhenAction] method to allow sorting the array by clicking on +the header columns; alternatively you can add a sort function +to the array local menu or possibly somewhere else (like a standalone +button in the dialog).&] +[s0; &] +[s0; [* Insertion tricks: before, after, and the secrets of the AppendLine]&] +[s0; &] +[s0; In todays text editors, when you type a new letter, it is trivial +to see where in the text will the new letter go. This is so because +the caret is always positioned between a pair of successive letters +and thus is well defines the insertion spot. Additionally, the +caret can be placed in front of the first letter or after the +last letter, which naturally allows typing some text at the very +beginning or end.&] +[s0; &] +[s0; When inserting new rows into the array controls, things are +a bit more tricky. This is so because, unlike in the text editor, +the cursor is not placed [/ between] two successive rows, but [/ over] +a certain row. This is of course necessary to make row editing +possible (note that in the aforementioned text editor analogy, +a single letter is an atomic object whereas in the array it is +a potentially complex structure consisting of many columns and +data items). However, when it comes to row insertion, it has +two main troubles as its implication:&] +[s0; &] +[s0;i150;O9; [* 1.]-|It is necessary to decide somehow whether the new +row will go [/ above] or [/ below] the cursor row.&] +[s0;i150;O9; [* 2.]-|In an array with [/ n] rows, there are [/ n`+1] possible +locations for a new row (before the row #0, #1 ... #([/ n`-1]) +and after the last row), but only [/ n] distinct cursor locations.&] +[s0; &] +[s0; Over the years, during the development of U`+`+, we experimented +with multiple ways to overcome these logical problems. As a result +of this, the ArrayCtrl supports a few methods allowing to fine`-tune +the row insertion mechanism. It is also worth noting that there +are cases, like in the case of SQL`-based tables, where the row +ordering is arbitrary or implicit and the exact `'location`' +of a new row doesn`'t make any sense. In such cases, it is possible +to replace array [/ insertion] function with the [/ append] function +emphasizing the fact that the visual row order is unimportant +and that insertion means merely adding a new record to the record +set.&] +[s0; &] +[s0; For arrays in which the order is important, there are two ways +to solve the [/ n`+1] row positions dilemma:&] +[s0; &] +[s0;i150;O9; [* 1.]-|Replacing the Insert function with a pair of functions +for inserting a new row [/ before] / [/ after] the current row.&] +[s0;i150;O9; [* 2.]-|Visually extending the array by adding a pseudo`-row +with no real data at its end; this creates the [/ n`+1]`-th cursor +position necessary to denote all the available row insertion +locations.&] +[s0; &] +[s0; In the first case, it is also possible to select which of the +insertion functions (before / after) takes precedence (which +of the two actions should be bound to the standard [* Insert] hotkey). +This corresponds to the [* BeforeAfterInserting] and [* AfterBeforeInserting] +methods. The second case is called the [* AppendLine] and is activated +by setting the property with the same name.&] +[s0; &] +[s0; To make all this even more interesting, a special mechanism +called [* InsertAppend] is available to make array filling as easy +as possible. When activated and the user appends a new row at +the table end, after pressing [* Enter] (to commit the inserted +row) another row is automatically added after it and opened for +editing. This mechanism is turned on by default, but it can be +disable by setting the [* NoInsertAppend] property to true.&] +[s3; &] +[s0; &] +[s0; &] +[ {{10000t/25b/25@3 [s0; [*@(229)4 Categorized method summary]]}}&] +[s9; The following table summarizes ArrayCtrl methods according to +the aspect of functionality they support together with a very +brief description. For more thorough documentation of the individual +methods see below.&] +[s0; &] +[ {{2337:7663-1 [s0; [* Initialization and configuration]] +:: [s0;%- ] +:: [s0; Reset] +:: [s0; clears column `& index definition and restores all ArrayCtrl +default properties] +:: [s0; IsEdit] +:: [s0; true `= array state automaton is currently in row editing mode] +:: [s0; IsInsert] +:: [s0; true `= array state automaton is currently in row insertion +mode] +:: [s0; SetLineCy] +:: [s0; sets array row height (global or individual for a single row)] +:: [s0; GetLineCy] +:: [s0; returns logical array row height (value set by preceding SetLineCy)] +:: [s0; GetLineY] +:: [s0; returns [/ y] position of given row (relative to table beginning)] +:: [s0; `[No`]AppendLine] +:: [s0; `[do not`] display an additional pseudo`-row used for row insertion] +:: [s0; IsAppendLine] +:: [s0; returns actual value of the [* AppendLine] property] +:: [s0; ShowAppendLine] +:: [s0; scrolls the table view to display the appending line] +:: [s0; `[No`]Inserting] +:: [s0; `[do not`] allow inserting new rows] +:: [s0; IsInserting] +:: [s0; returns actual value of the [* Inserting] property] +:: [s0; BeforeAfterInserting] +:: [s0; allow inserting rows before / after current row (default `= +before)] +:: [s0; AfterBeforeInserting] +:: [s0; allow inserting rows before / after current row (default `= +after)] +:: [s0; NoInsertAppend] +:: [s0; do not autoinsert another row after committing last row insertion] +:: [s0; IsEditing] +:: [s0; true `= (at least one column of the) ArrayCtrl supports editing] +:: [s0; `[No`]Duplicating] +:: [s0; `[do not`] allow row duplication] +:: [s0; IsDuplicating] +:: [s0; returns actual value of the [* Duplicating] property] +:: [s0; Appending] +:: [s0; allow appending new row at the table end] +:: [s0; IsAppending] +:: [s0; returns actual state of the [* Appending] property] +:: [s0; AutoAppending] +:: [s0; allow appending new row at the table end, Enter appends another +one] +:: [s0; IsAutoAppending] +:: [s0; returns actual state of [* AutoAppending] property] +:: [s0; `[No`]Removing] +:: [s0; `[do not`] allow table row removing] +:: [s0; IsRemoving] +:: [s0; returns actual state of the [* Removing] property] +:: [s0; `[No`]AskRemove] +:: [s0; `[do not`] prompt user to confirm row removal] +:: [s0; IsAskRemove] +:: [s0; returns actual state of the [* AskRemove] property] +:: [s0; Moving] +:: [s0; allow row swapping (moving a row before / after neighbouring +row)] +:: [s0; IsMoving] +:: [s0; returns actual state of the [* Moving] property] +:: [s0; `[No`]Header] +:: [s0; `[do not`] display table header] +:: [s0; `[No`]Track] +:: [s0; `[do not`] animate tracking table column widths] +:: [s0; `[No`]VertGrid] +:: [s0; `[do not`] display column breaks] +:: [s0; `[No`]HorzGrid] +:: [s0; `[do not`] display row breaks] +:: [s0; `[No`]Grid] +:: [s0; `[do not`] display both grids (VertGrid `+ HorzGrid)] +:: [s0; GridColor] +:: [s0; set grid line color] +:: [s0; EvenRowColor] +:: [s0; background color for even rows] +:: [s0; OddRowColor] +:: [s0; background color for odd rows] +:: [s0; RowFormat] +:: [s0; formats menu items substituting given word for the term `'row`'] +:: [s0; RowName] +:: [s0; sets the context`-relevant word to substitute for `'row`' in +the local menu texts] +:: [s0; NoCursor] +:: [s0; do not highlight cursor row] +:: [s0; `[No`]MouseMoveCursor] +:: [s0; automatically move cursor as the mouse moves (used e.g. in PopupTable)] +:: [s0; `[No`]AutoHideSb] +:: [s0; `[do not`] display scroll bar only when necessary] +:: [s0; MultiSelect] +:: [s0; enable selecting multiple rows at the same time] +:: [s0; ColumnWidths] +:: [s0; sets logical column widths using a formatted string, e.g. `"1 +5 10 10 5 1`"]}}&] +[s0; &] +[ {{2337:7663-1 [s0; [* Array index `& column structure management]] +:: [s0;%- ] +:: [s0; IndexInfo] +:: [s0; returns the [* IdInfo] structure describing an index (see below)] +:: [s0; AddIndex] +:: [s0; adds a new index to the source data matrix] +:: [s0; GetIndexCount] +:: [s0; returns number of index columns (columns in the source data +matrix)] +:: [s0; GetId] +:: [s0; returns identifier of a given index (given by its integral index)] +:: [s0; GetPos] +:: [s0; returns integral index of source matrix column ([/ index]) identified +by an [* Id]] +:: [s0; SetId] +:: [s0; sets the [* Id] identifier for a given index (column of the source +matrix)] +:: [s0; AddKey] +:: [s0; sets up the first index to act as primary key (often used for +SQL tables)] +:: [s0; GetKeyId] +:: [s0; returns primary key identifier (equal to [* GetId(0)])] +:: [s0; AddColumn] +:: [s0; adds a column`-index pair to the table (one data column, one +output column)] +:: [s0; AddColumnAt] +:: [s0; adds a column bound to a given index] +:: [s0; AddRowNumColumn] +:: [s0; adds a column without an index (used for external data)] +:: [s0; GetColumnCount] +:: [s0; returns number of (visual) columns in the table] +:: [s0; FindColumnWithPos] +:: [s0; locates table column according to given index number] +:: [s0; FindColumnWithId] +:: [s0; locates table column according to index identifier] +:: [s0; ColumnAt] +:: [s0; returns the [* ArrayCtrl`::Column] structure describing given column] +:: [s0; HeaderTab] +:: [s0; returns the [* HeaderCtrl`::Column] structure for the given column] +:: [s0; HeaderObject] +:: [s0; returns a reference to the [* HeaderCtrl] object for this table] +:: [s0; SerializeHeader] +:: [s0; serialize header layout information (column widths etc.)] +:: [s0; AddCtrl] +:: [s0; adds an outer control`-index pair to the table (one data column, +one outer Ctrl)] +:: [s0; AddCtrlAt] +:: [s0; adds an outer control bound to a given index] +:: [s0; AddRowNumCtrl] +:: [s0; adds an outer control without an index `- used ([/ seldom]) for +external data] +:: [s0; SetDisplay] +:: [s0; sets display for a given table column or cell] +:: [s0; GetDisplay] +:: [s0; returns column / cell display] +:: [s0; SetCtrl] +:: [s0; sets a [* Ctrl] object for custom editing of a given cell] +:: [s0; GetTotalCy] +:: [s0; returns total row height] +:: [s0; GetLineAt] +:: [s0; locate table row when given an [/ y] position (relative to table +top)] +:: [s0; GetClickColumn] +:: [s0; returns column number of last clicked column (Null if clicked +outside existing rows)] +:: [s0; GetClickRow] +:: [s0; returns row number of last clicked row (Null if clicked outside +existing rows)] +:: [s0; GetClickPos] +:: [s0; returns Point(GetClickColumn(), GetClickRow())]}}&] +[s0; &] +[ {{2337:7663-1 [s0; [* Data setting `& retrieval]] +:: [s0;%- ] +:: [s0; SetCount] +:: [s0; sets number of rows in the array] +:: [s0; SetVirtualCount] +:: [s0; sets number of rows in the array with external data] +:: [s0; GetCount] +:: [s0; returns number of rows] +:: [s0; Clear] +:: [s0; clears array data, identical to [* SetCount(0)]] +:: [s0; Shrink] +:: [s0; shrinks source data matrix to the minimum necessary size] +:: [s0; Get] +:: [s0; returns given Value element of the source data matrix] +:: [s0; GetOriginal] +:: [s0; returns given element of source data matrix before editing] +:: [s0; Set] +:: [s0; sets given element of the source data matrix] +:: [s0; GetKey] +:: [s0; returns given primary key (column #0 in the data matrix)] +:: [s0; GetOriginalKey] +:: [s0; returns `'old`' value of primary key before editing] +:: [s0; GetColumn] +:: [s0; returns value of a given output column (according to its index +mapping)] +:: [s0; GetConvertedColumn] +:: [s0; returns value of a given output column after applying its [* Convert]] +:: [s0; ReadRow] +:: [s0; returns a row of the source data matrix] +:: [s0; Add] +:: [s0; adds a new row at the end of table] +:: [s0; Insert] +:: [s0; inserts a new row into the table] +:: [s0; Remove] +:: [s0; removes a given table row] +:: [s0; SwapUp] +:: [s0; exchanges a table row with the preceding row] +:: [s0; SwapDown] +:: [s0; exchanges a table row with the next row] +:: [s0; Sort] +:: [s0; sorts table rows using a given predicate] +:: [s0; ClearCache] +:: [s0; clears data conversion cache] +:: [s0; InvalidateCache] +:: [s0; invalidates given table row in the conversion cache]}}&] +[s0; &] +[ {{2337:7663-1 [s0; [* Cursor `& selection management]] +:: [s0;%- ] +:: [s0; GetSelectCount] +:: [s0; returns number of currently selected rows] +:: [s0; IsSelection] +:: [s0; checks whether any rows are selected (identical to [* GetSelectCount() +> 0])] +:: [s0; Select] +:: [s0; selects / unselects given row or a series of rows] +:: [s0; IsSelected] +:: [s0; checks whether given row is selected] +:: [s0; ClearSelection] +:: [s0; clears the current selection] +:: [s0; SetCursor] +:: [s0; moves array cursor to a new row] +:: [s0; KillCursor] +:: [s0; removes the cursor away from the table] +:: [s0; CancelCursor] +:: [s0; cancels editing of current row] +:: [s0; IsCursor] +:: [s0; checks whether cursor is in the table (identical to [* GetCursor() +>`= 0])] +:: [s0; GetCursor] +:: [s0; returns current cursor row, `-1 when none] +:: [s0; GoBegin] +:: [s0; moves the cursor to the first table row] +:: [s0; GoEnd] +:: [s0; moves the cursor to the last table row] +:: [s0; GetCursorSc] +:: [s0; returns the location of the cursor row within the table view +area] +:: [s0; ScCursor] +:: [s0; scrolls the table to move the cursor row to given location within +the table view] +:: [s0; CenterCursor] +:: [s0; scrolls the table to move cursor into the middle of the current +view] +:: [s0; ScrollInto] +:: [s0; scrolls the table by minimum amount necessary to make given +row visible] +:: [s0; ScrollIntoCursor] +:: [s0; scrolls the table by minimum amount necessary to make cursor +row visible] +:: [s0; GetScroll] +:: [s0; returns current table scrollbar location] +:: [s0; ScrollTo] +:: [s0; sets table scrollbar location] +:: [s0; Find] +:: [s0; locates table row containing a given element] +:: [s0; FindSetCursor] +:: [s0; moves the cursor to table row containing a given element]}}&] +[s0;3 &] +[s0; &] +[s0; &] +[ {{2337:7663-1 [s0; [* GUI elements]] +:: [s0;%- ] +:: [s0; StdBar] +:: [s0; the default array local menu] +:: [s0; IsModified] +:: [s0; checks modification state of given array cell] +:: [s0; StartEdit] +:: [s0; open current array row for editing] +:: [s0; GetEditColumn] +:: [s0; returns the column being currently edited] +:: [s0; DoEdit] +:: [s0; corresponds to the local menu `'Edit`' function] +:: [s0; DoInsert] +:: [s0; corresponds to the local menu `'Insert`' function] +:: [s0; DoInsertBefore] +:: [s0; corresponds to the local menu `'Insert before`' function] +:: [s0; DoInsertAfter] +:: [s0; corresponds to the local menu `'Insert after`' function] +:: [s0; DoAppend] +:: [s0; corresponds to the local menu `'Append`' function] +:: [s0; DoRemove] +:: [s0; corresponds to the local menu `'Remove`' function] +:: [s0; DoDuplicate] +:: [s0; corresponds to the local menu `'Duplicate`' function] +:: [s0; DoSelectAll] +:: [s0; selects the entire array] +:: [s0; AcceptEnter] +:: [s0; commits the currently edited row and possibly begins insertion +of another row]}}&] +[s0; &] +[ {{2337:7663-1 [s0; [* Notification callbacks]] +:: [s0;%- ] +:: [s0; WhenLeftClick] +:: [s0; left mouse click within the array] +:: [s0; WhenLeftDouble] +:: [s0; left mouse doubleclick within the array] +:: [s0; WhenSel] +:: [s0; called when cursor or selection status of widget changes] +:: [s0; WhenCursor] +:: [s0; called whenever the cursor location changes [/ (deprecated, use +WhenSel)]] +:: [s0; WhenKillCursor] +:: [s0; called when the cursor moves away from the table [/ (deprecated, +use WhenSel)]] +:: [s0; WhenSelection] +:: [s0; called whenever current selection changes [/ (deprecated, use +WhenSel)]] +:: [s0; WhenEnterRow] +:: [s0; called whenever the cursor moves to a new row [/ (deprecated, +use WhenSel)]] +:: [s0; WhenUpdateRow] +:: [s0; called after updating a row] +:: [s0; WhenAcceptRow] +:: [s0; additional row validation callback] +:: [s0; WhenStartEdit] +:: [s0; called after initiating row editing] +:: [s0; WhenAcceptEdit] +:: [s0; called after accepting changes to a given row] +:: [s0; WhenArrayAction] +:: [s0; called whenever array source data changes (after insert / delete +/ edit)] +:: [s0; WhenBar] +:: [s0; can be used to supply custom local menu for the array] +:: [s0; WhenCtrlsAction] +:: [s0; called by [* WhenAction] callbacks of internally created controls]}}&] +[s3; &] +[s0; &] +[s0; &] +[s0; &] +[ {{10000t/25b/25@3 [s0; [*@(229)4 Detailed method description]]}}&] +[s0; &] +[s0; [* Initialization and configuration]&] +[s3; &] +[s0; &] +[s5;:ArrayCtrl`:`:Reset`(`): [@(0.0.255) void]_[* Reset]()&] +[s2; Clears table rows and resets all array properties to their default +values.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:ShowAppendLine`(`): [@(0.0.255) void]_[* ShowAppendLine]()&] +[s2; Show an additional pseudo`-row at the table end. When clicked, +a new row is appended to the array.&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:ArrayCtrl`:`:AcceptRow`(`):%- [@(0.0.255) bool]_[* AcceptRow]()&] +[s2; When there are slave widgets (connected using AddCtrl), the +visible content of ArrayCtrl line is normally updated when cursor +moves to another line (and the move is prevented if any slave +widget has invalid value). This method tries to check for invalid +values and updates the row immediately. Returns true if there +were no invalid values in slave widgets.&] +[s3;%- &] +[s4; &] +[s5;:ArrayCtrl`:`:IsEdit`(`)const: [@(0.0.255) bool]_[* IsEdit]()_[@(0.0.255) const]&] +[s2; Checks whether the array is currently being edited.&] +[s7; [*/ Return value]-|[* true] `= a row is currently open for editing, +[* false] `= array is in normal browsing mode&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:IsInsert`(`)const: [@(0.0.255) bool]_[* IsInsert]()_[@(0.0.255) const]&] +[s2; Checks whether a new row is currently being inserted.&] +[s7; [*/ Return value]-|[* true] `= newly inserted row is currently being +edited, [* false] when not&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:SetLineCy`(int`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* SetLineCy]([@(0.0.255) i +nt]_[*@3 cy])&] +[s2; Sets the (default) array row height. For certain rows, this +can be overriden by the two`-parameter version of this method.&] +[s7; [*C@3 cy]-|row height in pixels&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:SetLineCy`(int`,int`): [@(0.0.255) void]_[* SetLineCy]([@(0.0.255) int]_[*@3 i +], [@(0.0.255) int]_[*@3 cy])&] +[s2; Sets row height for a given row. This overrides the default +value set by the one`-parameter version of this method.&] +[s7; [*C@3 i]-|row index (zero based)&] +[s7; [*C@3 cy]-|row height in pixels, [* Null] `= use default row height&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:GetLineCy`(`)const: [@(0.0.255) int]_[* GetLineCy]()_[@(0.0.255) const]&] +[s2; Returns default array row height.&] +[s7; [*/ Return value]-|row height in pixels&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:GetLineY`(int`)const: [@(0.0.255) int]_[* GetLineY]([@(0.0.255) int]_[*@3 i +])_[@(0.0.255) const]&] +[s2; Returns [/ y] position of given array row (the pixel distance +between the top of first array row and [/ i]`-th row, i.e. sum +of heights of all rows above this row).&] +[s7; [*C@3 i]-|row index (zero based)&] +[s7; [*/ Return value]-|Vertical position of row top in pixels (relative +to array beginning)&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:GetLineCy`(int`)const: [@(0.0.255) int]_[* GetLineCy]([@(0.0.255) int]_[*@3 i +])_[@(0.0.255) const]&] +[s2; Returns the height of a given row (either the row`-specific +row height, or, when Null, the default row height).&] +[s7; [*C@3 i]-|row index (zero based)&] +[s7; [*/ Return value]-|row height in pixels&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:AppendLine`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* AppendLine +]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2; The AppendLine property controls whether the array displays +an additional `'append`' row after its last (real) row. &] +[s7; [*C@3 b]-|[* true] `= display appending row, [* false] `= hide it&] +[s7; [*/ Return value]-|[* `*this]&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:NoAppendLine`(`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoAppendLine +]()&] +[s2; Hide the appending line (identical to [* AppendLine(false)]).&] +[s7; [*/ Return value]-|[* `*this]&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:IsAppendLine`(`)const: [@(0.0.255) bool]_[* IsAppendLine]()_[@(0.0.255) c +onst]&] +[s2; Returns current state of the [* AppendLine] property.&] +[s7; [*/ Return value]-|[* true] `= display appending pseudo`-row at the +end of the array&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:Inserting`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* Inserting]( +[@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2; Enable / disable inserting new rows in the array (no matter +which insertion mechanism is selected).&] +[s7; [*C@3 b]-|[* true] `= enable insertion, [* false] `= disable it&] +[s7; [*/ Return value]-|[* `*this]&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:NoInserting`(`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoInserting]( +)&] +[s2; Disables row insertion (identical to [* Inserting(false)]).&] +[s7; [*/ Return value]-|[* `*this]&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:IsInserting`(`)const: [@(0.0.255) bool]_[* IsInserting]()_[@(0.0.255) con +st]&] +[s2; Returns current state of the [* Inserting] property.&] +[s7; [*/ Return value]-|[* true] `= row insertion is enabled, [* false] +when not&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:Appending`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* Appending]( +[@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2; Enable / disable adding new rows at the table end.&] +[s7; [*C@3 b]-|[* true] `= enable row appending, [* false] `= disable it&] +[s7; [*/ Return value]-|[* `*this]&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:IsAppending`(`)const: [@(0.0.255) bool]_[* IsAppending]()_[@(0.0.255) con +st]&] +[s2; Returns current state of the [* Appending] property.&] +[s7; [*/ Return value]-|[* true] `= appending rows is enabled, [* false] +when not.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:AutoAppending`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* AutoApp +ending]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2; Same as [* Appending] but Enter pressed when editing a new row +accepts it and adds another one at the table end.&] +[s7; [*C@3 b]-|[* true ]to enable the mode&] +[s7; [*/ Return value]-|[* `*this]&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:IsAutoAppending`(`)const: [@(0.0.255) bool]_[* IsAutoAppending]()_[@(0.0.255) c +onst]&] +[s2; Returns current state of [* AutoAppending] property.&] +[s7; [*/ Return value]-|[* true] `= [* AutoAppending ]is active&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:BeforeAfterInserting`(int`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* B +eforeAfterInserting]([@(0.0.255) int]_[*@3 q]_`=_[@3 1])&] +[s2; Activate before / after row insertion mechanism ([* Insert] hotkey +`= before).&] +[s7; [*/ Return value]-|[* `*this]&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:AfterBeforeInserting`(int`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* A +fterBeforeInserting]([@(0.0.255) int]_[*@3 q]_`=_[@3 2])&] +[s2; Activate before / after row insertion mechanism ([* Insert] hotkey +`= after)&] +[s7; [*/ Return value]-|[* `*this]&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:Duplicating`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* Duplicati +ng]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2; Enable / disable row duplication. Note that this property only +controls whether the `'Duplicate`' item should be present in +the array local menu. Of course, nothing can prevent you from +supporting duplication in some other way, or from calling the +[* DoDuplicate] method as you see fit.&] +[s7; [*C@3 b]-|[* true] `= enable duplication, [* false] `= disable it&] +[s7; [*/ Return value]-|[* `*this]&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:NoDuplicating`(`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoDuplicati +ng]()&] +[s2; Disable row duplication (identical to [* Duplicating(false)]).&] +[s7; [*/ Return value]-|[* `*this]&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:IsDuplicating`(`)const: [@(0.0.255) bool]_[* IsDuplicating]()_[@(0.0.255) c +onst]&] +[s2; Returns the state of the [* Duplicating] property.&] +[s7; [*/ Return value]-|[* true] `= local menu offers row duplication, +[* false] when not&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:NoInsertAppend`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoInse +rtAppend]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2; Enables / disables the auto`-append mechanism (see above section +on inserting rows).&] +[s7; [*C@3 b]-|[* true] `= disable InsertAppend mechanism, [* false] `= +enable it (the default)&] +[s7; [*/ Return value]-|[* `*this]&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:IsEditing`(`)const: [@(0.0.255) bool]_[* IsEditing]()_[@(0.0.255) const]&] +[s2; Checks whether at least one array column supports editing (whether +it is possible to [/ open] a row for editing).&] +[s7; [*/ Return value]-|[* true] `= row editing is possible, [* false] when +not&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:Removing`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* Removing]([@(0.0.255) b +ool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2; Enable / disable deleting rows from the table.&] +[s7; [*C@3 b]-|[* true] `= enable deletion, [* false] `= disable it&] +[s7; [*/ Return value]-|[* `*this]&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:NoRemoving`(`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoRemoving]()&] +[s2; Disable deleting table rows (identical to [* Removing(false)]).&] +[s7; [*/ Return value]-|[* `*this]&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:IsRemoving`(`)const: [@(0.0.255) bool]_[* IsRemoving]()_[@(0.0.255) const +]&] +[s2; Returns current state of the [* Removing] property.&] +[s7; [*/ Return value]-|[* true] `= row deletion is enabled, [* false ]when +not&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:AskRemove`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* AskRemove]( +[@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2; Sets whether the user must manually confirm array row deletion. +When set to [* true], every time a row is to be deleted, a confirmation +dialog pops up. When set to [* false], rows are deleted automatically +without any further confirmation.&] +[s7; [*C@3 b]-|[* true] `= prompt user to confirm row deletion, [* false] +`= delete rows instantly&] +[s7; [*/ Return value]-|[* `*this]&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:NoAskRemove`(`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoAskRemove]( +)&] +[s2; Disables user confirmation of row deletion (equivalent to [* AskRemove(false)]).&] +[s7; [*/ Return value]-|[* `*this]&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:IsAskRemove`(`)const: [@(0.0.255) bool]_[* IsAskRemove]()_[@(0.0.255) con +st]&] +[s2; Returns current state of the [* AskRemove] property.&] +[s7; [*/ Return value]-|[* true] `= user confirmation is needed to delete +rows, [* false] `= rows are deleted immediately&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:Moving`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* Moving]([@(0.0.255) b +ool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2; Enable / disable row swapping. When set to [* true], it is possible +to move an array row up and down by swapping it with the previous +/ next row. This can be used to reorder array rows in a visually +straightforward manner.&] +[s7; [*C@3 b]-|[* true] `= offer row moving in the local menu, [* false] +`= don`'t&] +[s7; [*/ Return value]-|[* `*this]&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:IsMoving`(`)const: [@(0.0.255) bool]_[* IsMoving]()_[@(0.0.255) const]&] +[s2; Returns current state of the [* Moving] property.&] +[s7; [*/ Return value]-|[* true] `= local menu supports row swapping, +[* false] `= it doesn`'t&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:Header`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* Header]([@(0.0.255) b +ool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2; Show / hide the [*^topic`:`/`/CtrlLib`/src`/HeaderCtrl`$en`-us^ HeaderCtrl] +object for this table.&] +[s7; [*C@3 b]-|[* true] `= show table header, [* false] `= hide it&] +[s7; [*/ Return value]-|[* `*this]&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:NoHeader`(`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoHeader]()&] +[s2; Hide table header (equivalent to [* Header(false)]).&] +[s7; [*/ Return value]-|[* `*this]&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:Track`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* Track]([@(0.0.255) b +ool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2; Animate array column resizing. This is equivalent to setting +the [*^topic`:`/`/CtrlLib`/src`/HeaderCtrl`$en`-us`#`:`:HeaderCtrl`:`:Track`(bool`)^ T +rack] property in the array HeaderCtrl.&] +[s7; [*C@3 b]-|[* true] `= repaint the array repeatedly while dragging +column widths, [* false] `= regenerate everything only after drag +`& drop is finished.&] +[s7; [*/ Return value]-|[* `*this]&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:NoTrack`(`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoTrack]()&] +[s2; Do not animate array column resizing (equivalent to [* Track(false)]).&] +[s7; [*/ Return value]-|[* `*this]&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:VertGrid`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* VertGrid]([@(0.0.255) b +ool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2; Show / hide vertical array grid lines (separating array columns).&] +[s7; [*C@3 b]-|[* true] `= show vertical grid lines, [* false] `= hide them&] +[s7; [*/ Return value]-|[* `*this]&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:NoVertGrid`(`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoVertGrid]()&] +[s2; Hide vertical grid lines (equivalent to [* VertGrid(false)]).&] +[s7; [*/ Return value]-|[* `*this]&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:HorzGrid`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* HorzGrid]([@(0.0.255) b +ool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2; Show / hide horizontal grid lines (separating array rows).&] +[s7; [*C@3 b]-|[* true] `= show horizontal grid lines, [* false] `= hide +them&] +[s7; [*/ Return value]-|[* `*this]&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:NoHorzGrid`(`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoHorzGrid]()&] +[s2; Hide horizontal grid lines (equivalent to [* HorzGrid(false)]).&] +[s7; [*/ Return value]-|[* `*this]&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:Grid`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* Grid]([@(0.0.255) b +ool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2; Show / hide both horizontal and vertical grid lines (equivalent +to [* HorzGrid(b).VertGrid(b)]).&] +[s7; [*C@3 b]-|[* true] `= show grid line matrix, [* false] `= hide all +grid lines&] +[s7; [*/ Return value]-|[* `*this]&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:NoGrid`(`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoGrid]()&] +[s2; Hide horizontal and vertical grid lines (equivalent to [* Grid(false)]).&] +[s7; [*/ Return value]-|[* `*this]&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:GridColor`(Color`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* GridColor]( +[_^Color^ Color]_[*@3 c])&] +[s2; Sets the color for grid lines.&] +[s7; [*C@3 c]-|new grid line color&] +[s7; [*/ Return value]-|[* `*this]&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:EvenRowColor`(Color`,Color`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* E +venRowColor]([_^Color^ Color]_[*@3 paper]_`=_Blend(SColorMark, SColorPaper, +[@3 220]), [_^Color^ Color]_[*@3 ink]_`=_SColorText)&] +[s2; Sets the paper and ink (background and foreground) color for +even array rows. In certain cases setting a different background +color for odd and even rows helps to simplify visual orientation +in the arrays (especially when the array has many columns).&] +[s2; [* Note:] the even / odd row terminology refers to the natural +array row numbering, so first array row is [/ odd] and the second +is [/ even]. This is in contrast to the zero`-baesd integral row +indexing, where the first array row has index 0.&] +[s7; [*C@3 paper]-|background color to use for second, fourth, sixth +etc. array row&] +[s7; [*C@3 ink]-|foreground color for even rows&] +[s7; [*/ Return value]-|[* `*this]&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:OddRowColor`(Color`,Color`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* O +ddRowColor]([_^Color^ Color]_[*@3 paper]_`=_SColorInfo, [_^Color^ Color]_[*@3 ink]_`=_SCo +lorText)&] +[s2; Sets the paper and ink (background and foreground) color for +odd array rows.&] +[s7; [*C@3 paper]-|background color to use for first, third, fifth etc. +array row&] +[s7; [*C@3 ink]-|foreground color for odd rows&] +[s7; [*/ Return value]-|[* `*this]&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:NoCursor`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoCursor]([@(0.0.255) b +ool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2; Turns on / off highlighting cursor row.&] +[s7; [*C@3 b]-|[* true] `= do not highlight cursor row, [* false] `= default +behaviour (cursor row is shown in inverse colors)&] +[s7; [*/ Return value]-|[* `*this]&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:MouseMoveCursor`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* Mouse +MoveCursor]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2; Enables / disables automatical cursor row switching as the mouse +cursor moves over the array rows.&] +[s7; [*C@3 b]-|[* true] `= automatically switch cursor row, [* false] `= +only upon clicks and keyboard navigation&] +[s7; [*/ Return value]-|[* `*this]&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:NoMouseMoveCursor`(`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoMouse +MoveCursor]()&] +[s2; Disable automatical cursor row switching (equivalent to [* MouseMoveCursor(false)]) +.&] +[s7; [*/ Return value]-|[* `*this]&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:AutoHideSb`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* AutoHideSb +]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2; When set to [* true], the vertical scrollbar at the right array +edge is displayed only when the total row height exceeds the +array view height. When set to [* false], the scrollbar is shown +all the time.&] +[s7; [*C@3 b]-|[* true] `= show / hide the scrollbar as necessary, [* false] +`= display it unconditionally&] +[s7; [*/ Return value]-|[* `*this]&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:NoAutoHideSb`(`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoAutoHideSb +]()&] +[s2; Display vertical scrollbar all the time (equivalent to [* AutoHideSb(false)]).&] +[s7; [*/ Return value]-|[* `*this]&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:HideSb`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* HideSb]([@(0.0.255) b +ool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2; Hides vertical scrollbar (even if it would be needed).&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:AutoHideHorzSb`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* AutoHi +deHorzSb]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2; Makes horizontal scroll bar (active if HeaderCtrl is in absolute +mode only) to autohide. Default is on.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:NoAutoHideHorzSb`(`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoAutoHi +deHorzSb]()&] +[s2; Same as AutoHideHorzSb(false).&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:HideHorzSb`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* HideHorzSb +]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2; Unconditionally hides horizontal scrollbar (active if HeaderCtrl +is in absolute mode only).&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:MultiSelect`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* MultiSele +ct]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2; Enable / disable multiple row selection. &] +[s7; [*C@3 b]-|[* true] `= allow selecting multiple rows at the same time, +[* false] `= only one row at a time&] +[s7; [*/ Return value]-|[* `*this]&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:IsMultiSelect`(`)const: [@(0.0.255) bool]_[* IsMultiSelect]()_[@(0.0.255) c +onst]&] +[s2; Returns true if ArrayCtrl is in multiselect mode.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:NoBackground`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoBackgr +ound]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2; Sets the widget into transparent mode `- background is not painted +and Transparent is activated `- a result, anything painted behind +the widget is visible, allowing client code to provide any background +it needs.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:PopUpEx`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* PopUpEx]([@(0.0.255) b +ool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2; Activates showing small popup windows with cell content when +mouse is over and cell is to big to fit current dimensions. Default +is activated.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:NoPopUpEx`(`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoPopUpEx]()&] +[s2; Same as PopUpEx(false).&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:NoFocusSetCursor`(`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoFocusS +etCursor]()&] +[s2; Normally, when ArrayCtrl gets a focus and no cursor is set (and +cursor is allowed and there is at least one line), ArrayCtrl +a sets the cursor to the first line. This modifier deactivates +this feature.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:MovingHeader`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* MovingHe +ader]([@(0.0.255) bool]_[*@3 b])&] +[s2; Activates dragging columns in header. Default is active.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:NoMovingHeader`(`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoMovingHe +ader]()&] +[s2; Same as MovingHeader(false).&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:ColumnSortFindKey`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* Col +umnSortFindKey]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2; Before ColumnSort orders the ArrayCtrl, the key of current row +(with cursor) is stored and after sorting, it is restored.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:AllSorting`(`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* AllSorting]()&] +[s2; If set, Sorting() is invoked for all columns (added either before +or after this modifier is called).&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:ColumnSortSecondary`(const ArrayCtrl`:`:Order`&`): [_^ArrayCtrl^ Arra +yCtrl][@(0.0.255) `&]_[* ColumnSortSecondary]([@(0.0.255) const]_[_^ArrayCtrl`:`:Order^ O +rder][@(0.0.255) `&]_[*@3 order])&] +[s2; Sets secondary sorting predicate for column sorts (see ColumnSort, +Sorting) `- if two cells are equal when performing sort by column, +they are ordered by this predicate.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:NoColumnSortSecondary`(`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoC +olumnSortSecondary]()&] +[s2; Removes secondary sorting predicate..&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:ArrayCtrl`:`:SortingFrom`(int`):%- [_^Upp`:`:ArrayCtrl^ ArrayCtrl][@(0.0.255) `& +]_[* SortingFrom]([@(0.0.255) int]_[*@3 from])&] +[s2; When ArrayCtrl is sorted (without specifying the range of lines), +specifies the first column sorted. This allows for easy header +or summation line.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:ColumnWidths`(const char`*`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* C +olumnWidths]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 s])&] +[s2; Initializes column widths based on a text string containing +blank`-separated decimal numbers, e.g. `"1 4 6 4 1`".&] +[s7; [*C@3 s]-|control string defining column widths&] +[s7; [*/ Return value]-|[* `*this]&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:GetColumnWidths`(`): [_^String^ String]_[* GetColumnWidths]()&] +[s2; Returns current column widths in format compatible with ColumnWidths.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:CursorOverride`(const Image`&`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `& +]_[* CursorOverride]([@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 arrow])&] +[s2; Overrides mouse cursor to [*@3 arrow]. Setting Null ends override.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:NoCursorOverride`(`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoCursor +Override]()&] +[s2; Same as CursorOverride(Null).&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:ArrayCtrl`:`:SpanWideCells`(bool`):%- [_^Upp`:`:ArrayCtrl^ ArrayCtrl][@(0.0.255) `& +]_[* SpanWideCells]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2; In this mode, if cell content (as defined by Display`::GetStdSize) +is wider than cell width and next cell is Null (empty), the cell +width is extended to span over the next cell (just like in common +spreadsheet applications). ArrayCtrl header must no be in Moving +mode for correct operation. Returns `*this.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:RowFormat`(const char`*`): [_^String^ String]_[* RowFormat]([@(0.0.255) c +onst]_[@(0.0.255) char]_`*[*@3 s])&] +[s2; Formats a text by substituting [* %s] with the array`-specific +term for `'row`' (as set by the [* RowName] property). This is +used for array local menu items. Returns `*this.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:RowName`(const char`*`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* RowNa +me]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 s])&] +[s2; Sets the array`-specific term for `'row`'. This can be used +to customize the local menu terminology according to the logical +content of the array. For instance, when you have an array with +the list of employees, you can call [* RowName(`"employee`")] and +the menu items will then read [/ `'Insert new employee`', `'Delete +employee`'] etc.&] +[s7; [*C@3 s]-|the term to substitute for `'array row`' in menu items&] +[s7; [*/ Return value]-|[* `*this]&] +[s3; &] +[s0;* &] +[s0; [* Column structure programming]&] +[s3; &] +[s0; &] +[s5;:ArrayCtrl`:`:IndexInfo`(int`): [_^ArrayCtrl`:`:IdInfo^ IdInfo][@(0.0.255) `&]_[* Index +Info]([@(0.0.255) int]_[*@3 ii])&] +[s2; Returns a reference to the [* IdInfo] structure describing a given +array index (column in the source data matrix).&] +[s7; [*C@3 ii]-|zero`-based ordinal number of the array index&] +[s7; [*/ Return value]-|IdInfo reference for the given index&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:IndexInfo`(const Id`&`): [_^ArrayCtrl`:`:IdInfo^ IdInfo][@(0.0.255) `&]_ +[* IndexInfo]([@(0.0.255) const ][_^Id^ Id]`&_[*@3 id])&] +[s2; Returns a reference to the [* IdInfo] structure describing a given +array index.&] +[s7; [*C@3 id]-|the [* Id] index identifier&] +[s7; [*/ Return value]-|IdInfo reference for the given index&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:AddIndex`(const Id`&`): [_^ArrayCtrl`:`:IdInfo^ IdInfo][@(0.0.255) `&]_ +[* AddIndex]([@(0.0.255) const] [_^Id^ Id]`&_[*@3 id])&] +[s2; Adds a new index to the array and assign it a given [* Id] identifier.&] +[s7; [*C@3 id]-|new index identifier&] +[s7; [*/ Return value]-|A reference to the [* IdInfo ]structure describing +the newly added index. The reference can be used to set additional +index properties.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:AddIndex`(`): [_^ArrayCtrl`:`:IdInfo^ IdInfo][@(0.0.255) `&]_[* AddIndex]( +)&] +[s2; Adds a new index (without an identifier) to the array.&] +[s7; [*/ Return value]-|A reference to the [* IdInfo] structure describing +the newly added index.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:GetIndexCount`(`)const: [@(0.0.255) int]_[* GetIndexCount]()_[@(0.0.255) c +onst]&] +[s2; Returns number of indices in the array.&] +[s7; [*/ Return value]-|index count&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:GetId`(int`)const: [_^Id^ Id]_[* GetId]([@(0.0.255) int]_[*@3 ii])_[@(0.0.255) c +onst]&] +[s2; Returns the identifier of a given index (addresses by its zero`-based +ordinal number).&] +[s7; [*C@3 ii]-|zero`-based ordinal number of the queried index&] +[s7; [*/ Return value]-|index identifier or [* Null] if the index has +no identifier&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:GetPos`(const Id`&`)const: [@(0.0.255) int]_[* GetPos]([@(0.0.255) const +][_^Id^ Id]`&_[*@3 id])_[@(0.0.255) const]&] +[s2; Returns the zero`-based positional number of the array index +with a given identifier.&] +[s7; [*C@3 id]-|array index identifier&] +[s7; [*/ Return value]-|zero`-based index number, `-1 when not found&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:SetId`(int`,const Id`&`): [_^ArrayCtrl`:`:IdInfo^ IdInfo][@(0.0.255) `& +]_[* SetId]([@(0.0.255) int]_[*@3 ii], [@(0.0.255) const ][_^Id^ Id]`&_[*@3 id])&] +[s2; Sets the identifier for a given array index. This can be used +to set or modify the identifier for a previously added index.&] +[s7; [*C@3 ii]-|zero`-based ordinal number of the index to set the identifier +for&] +[s7; [*C@3 id]-|new index identifier ([* Null] when none)&] +[s7; [*/ Return value]-|A reference to the [* IdInfo] descriptive structure +for the [/ ii]`-th index. The reference can be used to set additional +properties of the altered index.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:AddKey`(const Id`&`): [_^ArrayCtrl`:`:IdInfo^ IdInfo][@(0.0.255) `&]_[* A +ddKey]([@(0.0.255) const ][_^Id^ Id]`&_[*@3 id])&] +[s2; Adds a [/ primary key] index to the table. The [/ primary key] is +just another name for the first index (index with ordinal number +0). This is just a handy convention often used for SQL`-based +tables. [* AddKey] must be called only once after array initialization +or [* Reset] and before calling any other functions adding indices +(like [* AddIndex], [* AddColumn] or [* AddCtrl]). When [* GetIndexCount() +> 0 ]before the call to this function, this method fails with +an [* ASSERT].&] +[s7; [*C@3 id]-|primary key identifier&] +[s7; [*/ Return value]-|A reference to the descriptive [* IdInfo] structure +for the primary key index.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:AddKey`(`): [_^ArrayCtrl`:`:IdInfo^ IdInfo][@(0.0.255) `&]_[* AddKey]()&] +[s2; Adds a primary key index without an identifier to the table. +This is equivalent to [* AddKey(Null)].&] +[s7; [*/ Return value]-|A reference to the [* IdInfo] structure describing +the primary key index.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:GetKeyId`(`)const: [_^Id^ Id]_[* GetKeyId]()_[@(0.0.255) const]&] +[s2; Returns primary key identifier for this table. This is equivalent +to calling [* GetId(0)].&] +[s7; [*/ Return value]-|primary key index identifier&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:AddColumn`(const char`*`,int`): [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `& +]_[* AddColumn]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text]_`=_NULL, +[@(0.0.255) int]_[*@3 w]_`=_[@3 0])&] +[s2; Add a new column`-index pair to the table. The function adds +a (source) index and an (output) column and sets the index as +the data source for the column. This is the most common method +for adding columns to the array.&] +[s7; [*C@3 text]-|column name (displayed in the array header)&] +[s7; [*C@3 w]-|logical relative column width&] +[s7; [*/ Return value]-|A reference to the [* Column] structure describing +the newly added column. This can be used to set additional properties +for the newly added column and the corresponding header tab.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:AddColumn`(const Id`&`,const char`*`,int`): [_^ArrayCtrl`:`:Column^ C +olumn][@(0.0.255) `&]_[* AddColumn]([@(0.0.255) const ][_^Id^ Id]`&_[*@3 id], +[@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text], [@(0.0.255) int]_[*@3 w]_`=_[@3 0])&] +[s2; Adds a new column`-index pair to the table. This is equivalent +to the above two`-parameter version but, in addition, the method +sets the [* Id] identifier for the newly created index.&] +[s7; [*C@3 id]-|new index identifier&] +[s7; [*C@3 text]-|column name (displayed in the header)&] +[s7; [*C@3 w]-|logical relative column width&] +[s7; [*/ Return value]-|A reference to the [* Column] structure describing +the newly added array column.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:AddColumnAt`(int`,const char`*`,int`): [_^ArrayCtrl`:`:Column^ Column +][@(0.0.255) `&]_[* AddColumnAt]([@(0.0.255) int]_[*@3 ii], [@(0.0.255) const]_[@(0.0.255) ch +ar]_`*[*@3 text], [@(0.0.255) int]_[*@3 w]_`=_[@3 0])&] +[s2; Adds a new column to the table and binds it to a given source +data index.&] +[s7; [*C@3 ii]-|zero`-based ordinal number of the index to use as source +for this column&] +[s7; [*C@3 text]-|column name (displayed in the header)&] +[s7; [*C@3 w]-|logical relative column width&] +[s7; [*/ Return value]-|A reference to the [* Column] structure describing +the newly added array column.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:AddColumnAt`(const Id`&`,const char`*`,int`): [_^ArrayCtrl`:`:Column^ C +olumn][@(0.0.255) `&]_[* AddColumnAt]([@(0.0.255) const ][_^Id^ Id]`&_[*@3 id], +[@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text], [@(0.0.255) int]_[*@3 w]_`=_[@3 0])&] +[s2; Adds a new column to the table and binds it to a given source +data index.&] +[s7; [*C@3 id]-|identifier of the index to use as source for the newly +added column&] +[s7; [*C@3 text]-|column name (displayed in the header)&] +[s7; [*C@3 w]-|logical relative column width&] +[s7; [*/ Return value]-|A reference to the [* Column] structure describing +the newly added array column.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:AddRowNumColumn`(const char`*`,int`): [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `& +]_[* AddRowNumColumn]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text], +[@(0.0.255) int]_[*@3 w]_`=_[@3 0])&] +[s2; Adds a new column to the table. The newly added column has no +source index, it is assumed to have an external data source. +Instead of the source data [* Value] object, the current zero`-based +row number is passed to the column`'s [* Convert] / [* Display]. +This allows the host application to decode somehow the external +data based on the row number. In the current U`+`+ version, the +[/ RowNum columns] cannot be edited (using the standard array inline +editing mechanism).&] +[s7; [*C@3 text]-|column name (displayed in the header)&] +[s7; [*C@3 w]-|logical relative column width&] +[s7; [*/ Return value]-|A reference to the [* Column] structure describing +the newly added array column.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:AddCtrl`(Ctrl`&`): [_^ArrayCtrl`:`:IdInfo^ IdInfo][@(0.0.255) `&]_[* AddC +trl]([_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 ctrl])&] +[s2; Adds a new index`-control pair to the table; the index keeps +the source data and the external control is used to edit it. +The ArrayCtrl handles data transfer between the source data matrix +and the external control. The method returns a reference the +[* IdInfo] descriptive structure for the newly added index.&] +[s2; [* Note:] it is good to keep in mind that there are a few differences +between the ordinary array cell editors and the freestanding +edit controls. In contrast with the cell editors, which appear +only when the row is opened for editing, the freestanding controls +are present all the time. For instance, the ArrayCtrl automatically +disables the controls when the cursor moves away from the table +(using [* KillCursor]) and re`-enables them after it comes back. +This is important e.g. if you want to implement an additional +logic enabling some of the controls only depending on the circumstances; +in such case, you have to use one of the notification callbacks +(like [* WhenEnterRow]) to force your additional behaviour on +the controls.&] +[s7; [*C@3 ctrl]-|control to attach to the given index&] +[s7; [*/ Return value]-|a reference to the IdInfo structure describing +the newly added index&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:AddCtrl`(const Id`&`,Ctrl`&`): [_^ArrayCtrl`:`:IdInfo^ IdInfo][@(0.0.255) `& +]_[* AddCtrl]([@(0.0.255) const ][_^Id^ Id]`&_[*@3 id], [_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 ctrl +])&] +[s2; Adds a new index`-control pair to the table. This is identical +to the above version with the only difference that the newly +added index is assigned an [* Id] identifier at the same time.&] +[s7; [*C@3 id]-|the identifier to assign to the newly created index&] +[s7; [*C@3 ctrl]-|freestanding control used to edit the given index&] +[s7; [*/ Return value]-|a reference to the IdInfo structure describing +the newly added index&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:AddIdCtrl`(Ctrl`&`): [_^ArrayCtrl`:`:IdInfo^ IdInfo][@(0.0.255) `&]_[* Ad +dIdCtrl]([_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 ctrl])&] +[s2; Same as AddCtrl(ctrl.GetLayoutId(), ctrl). Helpful when adding +dialog widgets whose id is the same as widget`'s variable id.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:AddCtrlAt`(int`,Ctrl`&`): [@(0.0.255) void]_[* AddCtrlAt]([@(0.0.255) int +]_[*@3 ii], [_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 ctrl])&] +[s2; Adds a new control to the table and binds it to the index with +given ordinal number. You can use this method to create the binding +between the control and an arbitrary source index.&] +[s7; [*C@3 ii]-|zero`-based ordinal number of the index to bind to this +control&] +[s7; [*C@3 ctrl]-|freestanding control used to edit the [/ ii]`-th data +index&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:AddCtrlAt`(const Id`&`,Ctrl`&`): [@(0.0.255) void]_[* AddCtrlAt]([@(0.0.255) c +onst ][_^Id^ Id]`&_[*@3 id], [_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 ctrl])&] +[s2; Adds a new control to the table and binds it to the index with +given identifier.&] +[s7; [*C@3 id]-|identifier of the index to bind to this control&] +[s7; [*C@3 ctrl]-|freestanding control used to edit the index with identifier +[/ id]&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:AddRowNumCtrl`(Ctrl`&`): [@(0.0.255) void]_[* AddRowNumCtrl]([_^Ctrl^ Ctr +l][@(0.0.255) `&]_[*@3 ctrl])&] +[s2; Adds a new freestanding control to the table. The control is +not bound to any source data index. During cursor movement in +the array, array uses the control`'s [* SetData] method to set +it to the current row number. The control must be ready for that +and it can use the row number value to decode some externally +located data for display. In the current U`+`+ version, such +controls cannot be used for editing (there is currently no clean +way to store the edited data back to its external storage).&] +[s7; [*C@3 ctrl]-|[/ RowNum]`-based freestanding editor control&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:GetColumnCount`(`)const: [@(0.0.255) int]_[* GetColumnCount]()_[@(0.0.255) c +onst]&] +[s2; Returns the current number of (output) columns in the array.&] +[s7; [*/ Return value]-|number of columns&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:FindColumnWithPos`(int`)const: [@(0.0.255) int]_[* FindColumnWithPos]([@(0.0.255) i +nt]_[*@3 pos])_[@(0.0.255) const]&] +[s2; Returns the zero`-based index of a column based on its source +data index.&] +[s7; [*C@3 pos]-|ordinal number of the source index&] +[s7; [*/ Return value]-|ordinal number of the column having the given +index as its source, `-1 when not found&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:FindColumnWithId`(const Id`&`)const: [@(0.0.255) int]_[* FindColumnWith +Id]([@(0.0.255) const ][_^Id^ Id]`&_[*@3 id])_[@(0.0.255) const]&] +[s2; Returns the zero`-based index of a column based on its source +data index.&] +[s7; [*C@3 id]-|source index identifier&] +[s7; [*/ Return value]-|ordinal number of the column having the given +index as its source, `-1 when not found&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:ColumnAt`(int`): [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `&]_[* Column +At]([@(0.0.255) int]_[*@3 i])&] +[s2; Returns the [* Column] structure describing a given column.&] +[s7; [*C@3 i]-|zero`-based column index&] +[s7; [*/ Return value]-|a reference to the [* Column] structure describing +the given column&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:ColumnAt`(const Id`&`): [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `&]_ +[* ColumnAt]([@(0.0.255) const ][_^Id^ Id]`&_[*@3 id])&] +[s2; Returns the [* Column] structure describing a given column.&] +[s7; [*C@3 i]-|zero`-based column index&] +[s7; [*/ Return value]-|a constant reference to the [* Column] structure +describing the given column&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:ColumnAt`(int`)const: [@(0.0.255) const]_[_^ArrayCtrl`:`:Column^ Column +][@(0.0.255) `&]_[* ColumnAt]([@(0.0.255) int]_[*@3 i])_[@(0.0.255) const]&] +[s2; Returns the [* Column] structure describing a column with given +source index. This is merely the const version of the above method; +it can be used to query properties for the column.&] +[s7; [*C@3 id]-|identifier of the index used as source for the column&] +[s7; [*/ Return value]-|a reference to the [* Column] structure describing +the given column&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:ColumnAt`(const Id`&`)const: [@(0.0.255) const]_[_^ArrayCtrl`:`:Column^ C +olumn][@(0.0.255) `&]_[* ColumnAt]([@(0.0.255) const ][_^Id^ Id]`&_[*@3 id])_[@(0.0.255) cons +t]&] +[s2; Returns a constant reference to the [* Column] structure describing +a column with given source index. This is the constant version +of the above method; it can be used to query properties for the +column.&] +[s7; [*C@3 id]-|identifier of the index used as source for the column&] +[s7; [*/ Return value]-|a constant reference to the [* Column] structure +describing the given column&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:HeaderTab`(int`): [_^HeaderCtrl`:`:Column^ HeaderCtrl`::Column][@(0.0.255) `& +]_[* HeaderTab]([@(0.0.255) int]_[*@3 i])&] +[s2; Returns the [*^topic`:`/`/CtrlLib`/src`/HeaderCtrl`$en`-us`#`:`:HeaderCtrl`:`:Column`:`:Min`(int`)^ H +eaderCtrl`::Column] descriptive structure for the given column. +The correspondence between the array columns and the header tabs +is 1:1, so that the indices of both are always the same ([* array.GetColumnCount() +`=`= array.HeaderObject().GetCount()] holds all the time).&] +[s7; [*C@3 i]-|zero`-based column index&] +[s7; [*/ Return value]-|a reference to the [* HeaderCtrl`::Column] structure. +This can be used to set additional properties of the header column +(e.g. column width constraints, font and icon for the column +title etc.)&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:HeaderTab`(int`)const: [@(0.0.255) const]_[_^HeaderCtrl`:`:Column^ Head +erCtrl`::Column][@(0.0.255) `&]_[* HeaderTab]([@(0.0.255) int]_[*@3 i])_[@(0.0.255) const]&] +[s2; Returns a constant reference to the [* HeaderCtrl`::Column] structure +for the given column.&] +[s7; [*C@3 i]-|zero`-based column index&] +[s7; [*/ Return value]-|a reference to the [* HeaderCtrl`::Column] structure. +This can be used to set additional properties of the header column +(e.g. column width constraints, font and icon for the column +title etc.)&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:HeaderTab`(const Id`&`): [_^HeaderCtrl`:`:Column^ HeaderCtrl`::Column][@(0.0.255) `& +]_[* HeaderTab]([@(0.0.255) const ][_^Id^ Id]`&_[*@3 id])&] +[s2; Returns the [* HeaderCtrl`::Column] descriptive structure for the +column bound to a given source index.&] +[s7; [*C@3 id]-|identifier of the index used as source for the column&] +[s7; [*/ Return value]-|a reference to the [* HeaderCtrl`::Column] structure&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:HeaderTab`(const Id`&`)const: [@(0.0.255) const]_[_^HeaderCtrl`:`:Column^ H +eaderCtrl`::Column][@(0.0.255) `&]_[* HeaderTab]([@(0.0.255) const ][_^Id^ Id]`&_[*@3 id])_[@(0.0.255) c +onst]&] +[s2; Returns a constant reference to the [* HeaderCtrl`::Column] descriptive +structure for the column bound to a given source index.&] +[s7; [*C@3 id]-|identifier of the index used as source for the column&] +[s7; [*/ Return value]-|a constant reference to the [* HeaderCtrl`::Column] +structure&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:HeaderObject`(`)const: [@(0.0.255) const]_[_^HeaderCtrl^ HeaderCtrl][@(0.0.255) `& +]_[* HeaderObject]()_[@(0.0.255) const]&] +[s2; Returns a non`-constant reference to the [* HeaderCtrl] object +for this table. The reference can be further used to alter properties +of the table header (tab visibility, header visual mode and so +on).&] +[s7; [*/ Return value]-|A non`-constant reference to the table HeaderCtrl +object.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:HeaderObject`(`): [_^HeaderCtrl^ HeaderCtrl][@(0.0.255) `&]_[* HeaderObje +ct]()&] +[s2; This is just the constant version of the above method; when +called on a constant [* ArrayCtrl] reference, it returns a constant +reference to its underlying HeaderCtrl object which can be then +used to query additional header information.&] +[s7; [*/ Return value]-|A constant reference to the table HeaderCtrl +object.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:SerializeHeader`(Stream`&`): [@(0.0.255) void]_[* SerializeHeader]([_^Stream^ S +tream][@(0.0.255) `&]_[*@3 s])&] +[s2; Serializes all information pertaining to the array header (mainly +the user`-set column widths). This is equivalent to calling [* HeaderObject().Seria +lize(s)]. The main purpose of this function is to allow storing +header configuration to be restored upon opening the dialog or +the application for the next time. This function is now deprecated +in favor of SerializeSettings.&] +[s7; [*C@3 s]-|the [*^topic`:`/`/Core`/src`/Stream`$en`-us^ Stream] object +to serialize the header to/from&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:SerializeSettings`(Stream`&`): [@(0.0.255) void]_[* SerializeSettings]( +[_^Stream^ Stream][@(0.0.255) `&]_[*@3 s])&] +[s2; Serializes all information pertaining to the array header (mainly +the user`-set column widths) and the setting of sort column. +The main purpose of this function is to allow storing configuration +to be restored upon opening the dialog or the application for +the next time.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:SetDisplay`(int`,int`,const Display`&`): [@(0.0.255) void]_[* SetDispla +y]([@(0.0.255) int]_[*@3 i], [@(0.0.255) int]_[*@3 col], [@(0.0.255) const]_[_^Display^ Displ +ay][@(0.0.255) `&]_[*@3 d])&] +[s2; Sets the [* Display] object for a given array cell.&] +[s2;* &] +[s2; [* Note:] the ownership to the Display object is not transferred +by this call. The ArrayCtrl stores a mere pointer to it and it +is the responsibility of the programmer to keep the Display object +alive as long as necessary (until the array is shut down or the +cell display changed via another call to SetDisplay). In fact, +most Display`-based objects don`'t support data copying at all. +In any case, copying Displays is not a very good practice and +is very prone to slicing (as most actual Displays are actually +derived classes with additional data members).&] +[s2; &] +[s2; In many cases it would be relatively safe to assume that the +Display is not used unless the array is actually painted (e.g., +when the control is not bound to a parent or when its view has +zero size), but it is not a very wise practice and it can fail +in very weird ways under special circumstances (like making screenshots +or graphical exports from the array control).&] +[s2; &] +[s7; [*C@3 i]-|zero`-based row index&] +[s7; [*C@3 j]-|zero`-based column index&] +[s7; [*C@3 d]-|display to use&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:ArrayCtrl`:`:SetRowDisplay`(int`,const Upp`:`:Display`&`):%- [@(0.0.255) vo +id]_[* SetRowDisplay]([@(0.0.255) int]_[*@3 i], [@(0.0.255) const]_[_^Upp`:`:Display^ Displ +ay][@(0.0.255) `&]_[*@3 d])&] +[s2; Sets Display [%-*@3 d] for each cell of line [%-*@3 i].&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:ArrayCtrl`:`:SetColumnDisplay`(int`,const Upp`:`:Display`&`):%- [@(0.0.255) v +oid]_[* SetColumnDisplay]([@(0.0.255) int]_[*@3 j], [@(0.0.255) const]_[_^Upp`:`:Display^ D +isplay][@(0.0.255) `&]_[*@3 d])&] +[s2; Sets Display [%-*@3 d] for each cell of column j.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:GetDisplay`(int`,int`): [@(0.0.255) const]_[_^Display^ Display][@(0.0.255) `& +]_[* GetDisplay]([@(0.0.255) int]_[*@3 row], [@(0.0.255) int]_[*@3 col])&] +[s2; Returns a reference to the Display object for the given array +cell.&] +[s7; [*C@3 row]-|zero`-based row index&] +[s7; [*C@3 col]-|zero`-based column index&] +[s7; [*/ Return value]-|a reference to the Display object.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:GetDisplay`(int`): [@(0.0.255) const]_[_^Display^ Display][@(0.0.255) `&]_ +[* GetDisplay]([@(0.0.255) int]_[*@3 col])&] +[s2; Returns a reference to the Display object for the given array +column.&] +[s7; [*C@3 col]-|zero`-based column index&] +[s7; [*/ Return value]-|constant reference to the column Display&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:SetCtrl`(int`,int`,Ctrl`&`,bool`): [@(0.0.255) void]_[* SetCtrl]([@(0.0.255) i +nt]_[*@3 i], [@(0.0.255) int]_[*@3 col], [_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 ctrl], +[@(0.0.255) bool]_[*@3 value]_`=_[@(0.0.255) true])&] +[s2; Sets an external control to use as the editor for a single array +cell. Naturally, the same Ctrl object cannot be used as the editor +for multiple array cells. If the position of Ctrl is equivalent +to `'SetRect(0, 0, 0, 0)`', which is the default value, Ctrl +is resized to fit the ArrayCtrl cell accurately, spanning the +whole width and using STDSIZE for height, otherwise the position +represents the position within the cell. If [*@3 value] is true, +then the Ctrl represents the value of the cell, otherwise it +is independent of it.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:GetCtrl`(int`,int`): [_^Ctrl^ Ctrl]_`*[* GetCtrl]([@(0.0.255) int]_[*@3 i], + [@(0.0.255) int]_[*@3 col])&] +[s2; Returns a pointer to ctrl if there is any, NULL otherwise.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:CreateCtrl`(int`,int`,bool`): [@(0.0.255) template]_<[@(0.0.255) class]_ +[*@4 T]>_[*@4 T][@(0.0.255) `&]_[* CreateCtrl]([@(0.0.255) int]_[*@3 i], +[@(0.0.255) int]_[*@3 col], [@(0.0.255) bool]_[*@3 value]_`=_[@(0.0.255) true])&] +[s2; Creates an control (owned by ArrayCtrl) for a single array cell. +If [*@3 value] is true, then the Ctrl represents the value of the +cell, otherwise it is independent of it. If the position of Ctrl +is equivalent to `'SetRect(0, 0, 0, 0)`', which is the default +value, Ctrl is resized to fit the ArrayCtrl cell accurately, +spanning the whole width and using STDSIZE for height, otherwise +the position represents the position within the cell. &] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:GetTotalCy`(`)const: [@(0.0.255) int]_[* GetTotalCy]()_[@(0.0.255) const]&] +[s2; Returns total height of the array (sum of the individual line +heights for all array rows)&] +[s7; [*/ Return value]-|array height in pixels&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:GetLineAt`(int`)const: [@(0.0.255) int]_[* GetLineAt]([@(0.0.255) int]_[*@3 y +])_[@(0.0.255) const]&] +[s2; Locates the array row according to given [/ y] coordinate (such +array row [/ r] for which [* GetLineY(r) <`= y `&`& GetLineY(r) `+ +GetLineCy(r) > y]).&] +[s7; [*C@3 y]-|vertical pixel coordinate to locate&] +[s7; [*/ Return value]-|zero`-based row number or `-1 when not found&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:ArrayCtrl`:`:SetLineColor`(int`,Upp`:`:Color`):%- [@(0.0.255) void]_[* SetLin +eColor]([@(0.0.255) int]_[*@3 i], [_^Upp`:`:Color^ Color]_[*@3 c])&] +[s2; Sets the background color of line [%-*@3 i] to [%-*@3 c].&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:ArrayCtrl`:`:GetCellRect`(int`,int`)const:%- [_^Upp`:`:Rect^ Rect]_[* GetCell +Rect]([@(0.0.255) int]_[*@3 i], [@(0.0.255) int]_[*@3 col])_[@(0.0.255) const]&] +[s2; Returns rectangle of cell at [%-*@3 i],[%-*@3 col] in view coordinates. +Cell left and right margins are included in rectangle.&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:ArrayCtrl`:`:GetCellRectM`(int`,int`)const:%- [_^Upp`:`:Rect^ Rect]_[* GetCel +lRectM]([@(0.0.255) int]_[*@3 i], [@(0.0.255) int]_[*@3 col])_[@(0.0.255) const]&] +[s2; Returns rectangle of cell at [%-*@3 i],[%-*@3 col] in view coordinates. +Cell left and right margins are not included in rectangle.&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:ArrayCtrl`:`:GetScreenCellRect`(int`,int`)const:%- [_^Upp`:`:Rect^ Rect]_[* G +etScreenCellRect]([@(0.0.255) int]_[*@3 i], [@(0.0.255) int]_[*@3 col])_[@(0.0.255) const]&] +[s2; Returns rectangle of cell at [%-*@3 i],[%-*@3 col] in screen coordinates. +Cell left and right margins are included in rectangle.&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:ArrayCtrl`:`:GetScreenCellRectM`(int`,int`)const:%- [_^Upp`:`:Rect^ Rect]_[* G +etScreenCellRectM]([@(0.0.255) int]_[*@3 i], [@(0.0.255) int]_[*@3 col])_[@(0.0.255) const]&] +[s2; Returns rectangle of cell at [%-*@3 i],[%-*@3 col] in screen coordinates. +Cell left and right margins are not included in rectangle.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:GetClickColumn`(`)const: [@(0.0.255) int]_[* GetClickColumn]()_[@(0.0.255) c +onst]&] +[s2; Returns column index of the last clicked column in the array. +If the click happens past the last row of array, returns Null.&] +[s7; [*/ Return value]-|zero`-based index of the relevant column&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:GetClickRow`(`)const: [@(0.0.255) int]_[* GetClickRow]()_[@(0.0.255) cons +t]&] +[s2; Returns column index of the last clicked row in the array. If +the click happens past the last row of array, returns Null.&] +[s7; [*/ Return value]-|zero`-based index of the relevant column&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:GetClickPos`(`)const: [_^Point^ Point]_[* GetClickPos]()_[@(0.0.255) cons +t]&] +[s7; [*/ Return value]-|[* Point(GetClickColumn(), GetClickRow())].&] +[s3; &] +[s0;* &] +[s0; [* Data setting and retrieval]&] +[s3; &] +[s0; &] +[s5;:ArrayCtrl`:`:SetCount`(int`): [@(0.0.255) void]_[* SetCount]([@(0.0.255) int]_[*@3 c])&] +[s2; Sets the number of rows in the array. This extends or trims +the source matrix as necessary. When using the Ctrl`-based individual +cell editors, as a side`-effect of this call some controls can +be constructed or destroyed.&] +[s7; [*C@3 c]-|new row count&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:SetVirtualCount`(int`): [@(0.0.255) void]_[* SetVirtualCount]([@(0.0.255) i +nt]_[*@3 c])&] +[s2; Sets the number of rows in an array with external data. This +makes sense only when all the [/ Column`'s] and [/ Ctrl`'s] of the +array are [/ rownum]`-based. The function doesn`'t physically allocate +any source data matrix space, it just makes the array `'think`' +it has [/ c] rows (this is of course necessary for the Paint routine, +for cursor / selection management and so on).&] +[s2; [* Note:] in the current implementation, selection flags for the +individual rows are kept in the row objects. Therefore it is +not very wise to use multiselection for arrays with external +data, because as soon as the last row is selected, all row storage +structures are allocated as a side effect to keep the selection +flags.&] +[s7; [*C@3 c]-|new `'virtual`' number of rows&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:GetCount`(`)const: [@(0.0.255) int]_[* GetCount]()_[@(0.0.255) const]&] +[s2; Returns the number of rows in the array. In fact, this returns +the maximum of the number of `'real`' source matrix rows (as +set by the SetCount / Add / Insert methods) and the `'virtual`' +row count (as se by SetVirtualCount). By checking the implementation +of this method, you can easily find that, simply,&] +[s2; &] +[s2; [C int ArrayCtrl`::GetCount() const `{]&] +[s2; [C -|-|return max(virtualcount, array.GetCount());]&] +[s2; [C `}]&] +[s2; &] +[s7; [*/ Return value]-|Number of rows in the array.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:Clear`(`): [@(0.0.255) void]_[* Clear]()&] +[s2; Clears the array source data matrix and sets the virtual row +count to 0.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:Shrink`(`): [@(0.0.255) void]_[* Shrink]()&] +[s2; Shrinks the source data array, i.e. reallocates the data to +the minimum required memory space.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:Get`(int`,int`)const: [_^Value^ Value]_[* Get]([@(0.0.255) int]_[*@3 i], +[@(0.0.255) int]_[*@3 ii])_[@(0.0.255) const]&] +[s2; Returns the value at a given location in the source data matrix.&] +[s7; [*C@3 i]-|zero`-based row number&] +[s7; [*C@3 ii]-|zero`-based index ordinal number&] +[s7; [*/ Return value]-|value at the given location in the source data +matrix&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:Get`(int`,const Id`&`)const: [_^Value^ Value]_[* Get]([@(0.0.255) int]_[*@3 i +], [@(0.0.255) const ][_^Id^ Id]`&_[*@3 id])_[@(0.0.255) const]&] +[s2; Returns the value at a given location in the source data matrix. +In this version, the source indices are addressed by their identifiers.&] +[s7; [*C@3 i]-|zero`-based row number&] +[s7; [*C@3 id]-|source index identifier&] +[s7; [*/ Return value]-|value at the given location in the source data +matrix&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:Get`(int`)const: [_^Value^ Value]_[* Get]([@(0.0.255) int]_[*@3 ii])_[@(0.0.255) c +onst]&] +[s2; Returns the value of a given source index at the currently active +cursor row. This is equivalent to [* Get(GetCursor(), ii)]. When +the row is currently being edited, the function returns the `'new`' +value (the current value of the respective editor control, i.e. +potentially edited).&] +[s2; [* Note:] when the cursor row is not set (when [* !IsCursor()]), +the function fails with an [* ASSERT].&] +[s7; [*C@3 ii]-|zero`-based index ordinal number&] +[s7; [*/ Return value]-|value at a given location in the cursor row&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:Get`(const Id`&`)const: [_^Value^ Value]_[* Get]([@(0.0.255) const +][_^Id^ Id]`&_[*@3 id])_[@(0.0.255) const]&] +[s2; Returns the value of a given source index at the currently active +cursor row. This is equivalent to [* Get(GetCursor(), id)].&] +[s7; [*C@3 id]-|source index identifier&] +[s7; [*/ Return value]-|value at the given location in the cursor row&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:GetOriginal`(int`)const: [_^Value^ Value]_[* GetOriginal]([@(0.0.255) int +]_[*@3 ii])_[@(0.0.255) const]&] +[s2; Returns the `'original`' value of a given source index at the +currently active cursor row. When the row is open for editing, +this function returns the `'old`' value before any editing took +place.&] +[s7; [*C@3 ii]-|zero`-based index ordinal number&] +[s7; [*/ Return value]-|value at the given location in the cursor row&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:GetOriginal`(const Id`&`)const: [_^Value^ Value]_[* GetOriginal]([@(0.0.255) c +onst ][_^Id^ Id]`&_[*@3 id])_[@(0.0.255) const]&] +[s2; Returns the `'original`' value (i.e., without any editing changed +applied) of a given source index at the currently active cursor +row.&] +[s7; [*C@3 id]-|source index identifier&] +[s7; [*/ Return value]-|value at the given location in the cursor row&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:GetKey`(`)const: [_^Value^ Value]_[* GetKey]()_[@(0.0.255) const]&] +[s2; Returns the value of the current row`'s primary key. This is +equivalent to [* Get(0)].&] +[s7; [*/ Return value]-|value at the index #0 in the cursor row&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:GetOriginalKey`(`)const: [_^Value^ Value]_[* GetOriginalKey]()_[@(0.0.255) c +onst]&] +[s2; Returns the original value of the current row`'s primary key. +During editing, the function returns the value at the time of +opening the row for editing, i.e. without any editing changes +applied. This is equivalent to [* GetOriginal(0)].&] +[s7; [*/ Return value]-|value at the index #0 in the cursor row&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:Set`(int`,int`,const Value`&`): [@(0.0.255) void]_[* Set]([@(0.0.255) int +]_[*@3 i], [@(0.0.255) int]_[*@3 ii], [@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_[*@3 v +])&] +[s2; Sets the value at a given location in the source data matrix.&] +[s7; [*C@3 i]-|zero`-based row number&] +[s7; [*C@3 ii]-|zero`-based index ordinal number&] +[s7; [*C@3 v]-|value to set to the given cell&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:Set`(int`,const Id`&`,const Value`&`): [@(0.0.255) void]_[* Set]([@(0.0.255) i +nt]_[*@3 i], [@(0.0.255) const ][_^Id^ Id]`&_[*@3 id], [@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `& +]_[*@3 v])&] +[s2; Sets the value at a given location in the source data matrix. +&] +[s7; [*C@3 i]-|zero`-based row number&] +[s7; [*C@3 id]-|source index identifier&] +[s7; [*C@3 v]-|value to set to the given cell&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:Set`(int`,const Value`&`): [@(0.0.255) void]_[* Set]([@(0.0.255) int]_[*@3 i +i], [@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_[*@3 v])&] +[s2; Modifies the value at a given location in the cursor row. When +the row is open for editing, the function immediately changes +the value in the appropriate editor control.&] +[s7; [*C@3 ii]-|zero`-based index ordinal number&] +[s7; [*C@3 v]-|value to set&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:Set`(const Id`&`,const Value`&`): [@(0.0.255) void]_[* Set]([@(0.0.255) c +onst ][_^Id^ Id]`&_[*@3 id], [@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_[*@3 v])&] +[s2; Modifies the value at a given location in the cursor row. This +overloaded version uses the [* Id] identifier to address the relevant +index.&] +[s7; [*C@3 id]-|index identifier&] +[s7; [*C@3 v]-|value to set&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:GetColumn`(int`,int`)const: [_^Value^ Value]_[* GetColumn]([@(0.0.255) in +t]_[*@3 row], [@(0.0.255) int]_[*@3 col])_[@(0.0.255) const]&] +[s2; Returns the value of a given column. This depends on the column`-index +mapping established when adding columns to the table. When the +column is a [/ rownum] type (it is bound to no source indices), +the function just returns the [/ row] parameter. For columns with +a single source index, the function returns the value of the +mapped source index. For columns with multiple source indices, +the function returns a [* ValueArray ]containing the values of +its source indices.&] +[s7; [*C@3 row]-|zero`-based row index&] +[s7; [*C@3 col]-|zero`-based column index&] +[s7; [*/ Return value]-|value of the given column&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:GetConvertedColumn`(int`,int`): [_^Value^ Value]_[* GetConvertedColumn]( +[@(0.0.255) int]_[*@3 row], [@(0.0.255) int]_[*@3 col])&] +[s2; Returns the value of a given column after application of its +[* Convert]. For performance reasons, the values obtained by calls +to the [* Convert`::Format] methods are cached internally within +the ArrayCtrl object. You can manipulate the conversion cache +using the methods [*^topic`:`/`/CtrlLib`/src`/ArrayCtrl`$en`-us`#`:`:ArrayCtrl`:`:ClearCache`(`)^ C +learCache] and[* ][*^topic`:`/`/CtrlLib`/src`/ArrayCtrl`$en`-us`#`:`:ArrayCtrl`:`:InvalidateCache`(int`)^ I +nvalidateCache].&] +[s7; [*C@3 row]-|zero`-based row index&] +[s7; [*C@3 col]-|zero`-based column index&] +[s7; [*/ Return value]-|the converted cell value&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:ReadRow`(int`)const: [_^Vector^ Vector]<[_^Value^ Value]>_[* ReadRow]([@(0.0.255) i +nt]_[*@3 i])_[@(0.0.255) const]&] +[s2; Returns a [* Vector] containing the values of all source indices +in the given row. Invariantly, the [* GetCount()] of the returned +array is equal to the [* GetIndexCount()] of the source ArrayCtrl.&] +[s7; [*C@3 i]-|zero`-based row index&] +[s7; [*/ Return value]-|an array of all source values in the given row&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:Set`(int`,const Vector``&`): [@(0.0.255) void]_[* Set]([@(0.0.255) i +nt]_[*@3 i], [@(0.0.255) const]_[_^Vector^ Vector]<[_^Value^ Value]>`&_[*@3 v])&] +[s2; Modifies a given row by setting all source index values to values +passed in the parameter [/ v].&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:SetArray`(int`,const ValueArray`&`): [@(0.0.255) void]_[* SetArray]([@(0.0.255) i +nt]_[*@3 i], [@(0.0.255) const]_[_^ValueArray^ ValueArray][@(0.0.255) `&]_[*@3 va])&] +[s2; Sets the row [*@3 i] to [*@3 va].&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:Add`(`): [@(0.0.255) void]_[* Add]()&] +[s2; Adds an empty row to the source data matrix.&] +[s2; [* Note:] the [* InsertValue] property of the [* IdInfo] structure +defines a method to generate / retrieve default values for newly +inserted rows. However, these values are only used during the +GUI`-based [* DoInsert] method and do not apply to the [* Add] method. +If you need to set the newly added source matrix row to some +non`-null defaults, you have to modify the relevant cells manually.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:Add`(const Vector``&`): [@(0.0.255) void]_[* Add]([@(0.0.255) con +st]_[_^Vector^ Vector]<[_^Value^ Value]>`&_[*@3 v])&] +[s2; Adds a new row at the end of the source data matrix. The [*^topic`:`/`/Core`/src`/Vector`$en`-us^ V +ector] parameter contains the values to be used to initialize +the new row of the matrix.&] +[s7; [*C@3 v]-|new matrix row&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:AddArray`(const ValueArray`&`): [@(0.0.255) void]_[* AddArray]([@(0.0.255) c +onst]_[_^ValueArray^ ValueArray][@(0.0.255) `&]_[*@3 va])&] +[s2; Adds a new row at the end of source with value [*@3 va].&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:GetArray`(int`)const: [_^ValueArray^ ValueArray]_[* GetArray]([@(0.0.255) i +nt]_[*@3 i])_[@(0.0.255) const]&] +[s2; Returns a row as ValueArray.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:Set`(int`,const VectorMap``&`): [@(0.0.255) void]_[* Se +t]([@(0.0.255) int]_[*@3 i], [@(0.0.255) const]_[_^VectorMap^ VectorMap]<[_^String^ String], + [_^Value^ Value]>`&_[*@3 m])&] +[s2; Sets the row based on map. Keys are matched to row Ids, keys +that are not found are ignored, those found are assigned correspoding +map values.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:Add`(const VectorMap``&`): [@(0.0.255) void]_[* Add]([@(0.0.255) c +onst]_[_^VectorMap^ VectorMap]<[_^String^ String], [_^Value^ Value]>`&_[*@3 m])&] +[s2; Adds the row based on map. Keys are matched to row Ids, keys +that are not found are ignored, those found are assigned correspoding +map values.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:SetMap`(int`,const ValueMap`&`): [@(0.0.255) void]_[* SetMap]([@(0.0.255) i +nt]_[*@3 i], [@(0.0.255) const]_[_^ValueMap^ ValueMap][@(0.0.255) `&]_[*@3 m])&] +[s2; Sets the row based on map. Keys are matched to row Ids, keys +that are not found are ignored, those found are assigned correspoding +map values.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:AddMap`(const ValueMap`&`): [@(0.0.255) void]_[* AddMap]([@(0.0.255) cons +t]_[_^ValueMap^ ValueMap][@(0.0.255) `&]_[*@3 m])&] +[s2; Adds the row based on map. Keys are matched to row Ids, keys +that are not found are ignored, those found are assigned correspoding +map values.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:GetMap`(int`)const: [_^ValueMap^ ValueMap]_[* GetMap]([@(0.0.255) int]_[*@3 i +])_[@(0.0.255) const]&] +[s2; Returns row as map of row Ids to row values. Only non`-empty +row Ids are added.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:Add`(const Value`&`[`,const Value`&`]`.`.`.`): [@(0.0.255) void]_[* Add +]([@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_`[, [@(0.0.255) const]_[_^Value^ Value +][@(0.0.255) `&]_`]...)&] +[s2; Adds a new row at the bottom of the source data matrix. This +is in fact a series of functions (generated automatically using +the [* Expand] macro) which takes an arbitrary number of arguments. +Its arguments are used to initialize the source indices in the +newly added row.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:Add`(const Nuller`&`): [@(0.0.255) void]_[* Add]([@(0.0.255) const]_[_^Nuller^ N +uller][@(0.0.255) `&]_[*@3 null])&] +[s2; This is helper method required for correct overloading resolution +of Add(Null).&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:Insert`(int`): [@(0.0.255) void]_[* Insert]([@(0.0.255) int]_[*@3 i])&] +[s2; Inserts a new row into the source array. All indices are initialized +to [* Null] values. The [* InsertValue] property doesn`'t apply; +if you need to set the newly created row to some non`-trivial +values, you have to do so manually.&] +[s7; [*C@3 i]-|zero`-based position of the newly created row&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:Insert`(int`,const Vector``&`): [@(0.0.255) void]_[* Insert]([@(0.0.255) i +nt]_[*@3 i], [@(0.0.255) const]_[_^Vector^ Vector]<[_^Value^ Value]>`&_[*@3 v])&] +[s2; Inserts a new row into the array at a given position. The second +parameter, [/ v], is used to initialize the source indices of the +newly created row.&] +[s7; [*C@3 i]-|zero`-based row index&] +[s7; [*C@3 v]-|a vector of values used to initialize the source indices +of the given row&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:Remove`(int`): [@(0.0.255) void]_[* Remove]([@(0.0.255) int]_[*@3 i])&] +[s2; Removes the given source data row.&] +[s2; [* Note:] the [* AskRemove] property of the [* ArrayCtrl] object tells +whether a confirmation dialog should pop up every time the user +wants to remove a row. However, this method applies only to the +GUI`-based row removal; the [* Remove] method always removes the +requested row unconditionally without popping up any confirmation +dialog.&] +[s7; [*C@3 i]-|zero`-based index of the row to remove&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:SwapUp`(`): [@(0.0.255) void]_[* SwapUp]()&] +[s2; Exchanges the cursor row with the preceding row, effectively +moving it up.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:SwapDown`(`): [@(0.0.255) void]_[* SwapDown]()&] +[s2; Exchanges the cursor row with following row, effectively moving +it down.&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:ArrayCtrl`:`:ReArrange`(const Upp`:`:Vector``&`):%- [@(0.0.255) void]_ +[* ReArrange]([@(0.0.255) const]_[_^Upp`:`:Vector^ Vector]<[@(0.0.255) int]>`&_[*@3 order]) +&] +[s2; Rearranges lines of array by [%-*@3 order] of former line indices. +The count of items in [%-*@3 order] must be the same as GetCount +of ArrayCtrl and it must contain all indices from zero to GetCount() +`- 1. [%-*@3 order] establishes a new order expressed in former +indices of lines.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:Sort`(Gate2``): [@(0.0.255) void]_[* Sort]([_^Gate2^ Gate2]<[@(0.0.255) i +nt], [@(0.0.255) int]>_[*@3 order])&] +[s5;:ArrayCtrl`:`:Sort`(int`,int`,Gate2``): [@(0.0.255) void]_[* Sort]([@(0.0.255) i +nt]_[*@3 from], [@(0.0.255) int]_[*@3 count], [_^Gate2^ Gate2]<[@(0.0.255) int], +[@(0.0.255) int]>_[*@3 order])&] +[s2; Sorts the array rows according to a given ordering predicate. +The [*@3 order] object defines the ordering predicate; two parameters +are indicies of ArrayCtrl lines; it should returns true if they +are in required ordering.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:Sort`(const ArrayCtrl`:`:Order`&`): [@(0.0.255) void]_[* Sort]([@(0.0.255) c +onst]_[_^ArrayCtrl`:`:Order^ ArrayCtrl`::Order][@(0.0.255) `&]_[*@3 order])&] +[s2; Sorts the array rows according to a given ordering predicate. +The [* ArrayCtrl`::Order] object defines the ordering predicate; +its [* operator ()] should return [* true] whenever its first parameter +(a vector containing the values of all source indices in a row) +is less than its second parameter.&] +[s7; &] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:Sort`(int`,int`,const ArrayCtrl`:`:Order`&`): [@(0.0.255) void]_[* Sort +]([@(0.0.255) int]_[*@3 from], [@(0.0.255) int]_[*@3 count], [@(0.0.255) const]_[_^ArrayCtrl`:`:Order^ A +rrayCtrl`::Order][@(0.0.255) `&]_[*@3 order])&] +[s2; Sorts a portion of the array using a given ordering predicate.&] +[s7; [*C@3 from]-|zero`-based index of the first row to sort&] +[s7; [*C@3 count]-|number of rows to be sorted&] +[s7; [*C@3 order]-|the ordering predicate object. The object should +be derived from [* ArrayCtrl`::Order] and should override the [* operator +()] method. This method should return [* true ]whenever its first +parameter (a vector containing all source index values for a +certain row) is less than its second parameter.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:Sort`(int`(`*`)`(const Vector``&v1`,const Vector``&v2`)`): [@(0.0.255) v +oid]_[* Sort]([@(0.0.255) int]_(`*[*@3 compare])([@(0.0.255) const]_Vector`&_v1, +[@(0.0.255) const]_Vector`&_v2))&] +[s2; Sorts the array rows according to the order defined by the specified +ordering predicate [/ compare]. This is supposed to be a global +function returning [* true] whenever its first parameter ([/ v1], +an array consisting of all source indices within a row) is less +than the second parameter [/ v2] (according to the desired ordering).&] +[s7; [*C@3 compare]-|the ordering predicate; _the function is supposed +to return [* true] whenever its first parameter ([/ v1]) is less +than the second parameter ([/ v2]) according to the desired ordering.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:Sort`(int`,int`(`*`)`(const Value`&v1`,const Value`&v2`)`): [@(0.0.255) v +oid]_[* Sort]([@(0.0.255) int]_[*@3 ii], [@(0.0.255) int]_(`*[*@3 compare])([@(0.0.255) const +]_Value[@(0.0.255) `&]_v1, [@(0.0.255) const]_Value[@(0.0.255) `&]_v2)_`=_StdValueCompa +re)&] +[s2; Sorts the array rows according to the given ordering predicate +for the source index with a given ordinal number. When not explicitly +specified, the [* StdValueCompare] function is used as the default +comparison predicate.&] +[s7; [*C@3 ii]-|zero`-based ordinal number of the source index used +for sorting&] +[s7; [*C@3 compare]-|the sorting predicate function: the function is +supposed to return [* true] whenever its first parameter ([/ v1]) +is less than the second parameter ([/ v2]) according to the desired +ordering.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:Sort`(const Id`&`,int`(`*`)`(const Value`&v1`,const Value`&v2`)`): [@(0.0.255) v +oid]_[* Sort]([@(0.0.255) const ][_^Id^ Id]`&_[*@3 id], [@(0.0.255) int]_(`*[*@3 compare])([@(0.0.255) c +onst]_Value[@(0.0.255) `&]_v1, [@(0.0.255) const]_Value[@(0.0.255) `&]_v2)_`=_StdValueC +ompare)&] +[s2; Sorts the array rows according to the given ordering predicate +for the source index with a given identifier. When not explicitly +specified, the [* StdValueCompare] function is used as the default +comparison predicate.&] +[s7; [*C@3 id]-|identifier of the source index used for sorting&] +[s7; [*C@3 compare]-|the sorting predicate function: the function is +supposed to return [* true] whenever its first parameter ([/ v1]) +is less than the second parameter ([/ v2]) according to the desired +ordering .&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:Sort`(`): [@(0.0.255) void]_[* Sort]()&] +[s2; Sorts the array according to the default ordering predicate +for the first source index. This is equivalent to calling [* Sort(0)].&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:ColumnSort`(int`,Gate2``): [@(0.0.255) void]_[* ColumnSort]( +[@(0.0.255) int]_[*@3 column], [_^Gate2^ Gate2]<[@(0.0.255) int], [@(0.0.255) int]>_[*@3 orde +r])&] +[s2; Sorts by the column using ordering based on line indicies. This +is almost the same as the plain Sort, except that it respects +ColumnSortSecondary and ColumnSortFindKey flags.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:ColumnSort`(int`,const ValueOrder`&`): [@(0.0.255) void]_[* ColumnSort]( +[@(0.0.255) int]_[*@3 column], [@(0.0.255) const]_[_^ValueOrder^ ValueOrder][@(0.0.255) `&]_ +[*@3 order])&] +[s2; Sorts by the column. Note that this is different from Sort, +because the final converted value of column is used (which can +even be combination of more indexes).&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:ArrayCtrl`:`:ColumnSort`(int`,int`(`*`)`(const Valua`&a`,const Upp`:`:Value`&b`)`):%- [@(0.0.255) v +oid]_[* ColumnSort]([@(0.0.255) int]_[*@3 column], [@(0.0.255) int]_(`*[*@3 compare])([@(0.0.255) c +onst]_Valua[@(0.0.255) `&]_a, [@(0.0.255) const]_Value[@(0.0.255) `&]_b))&] +[s2; Sorts by the column. Note that this is different from Sort, +because the final converted value of column is used (which can +even be combination of more indexes).&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:SetSortColumn`(int`,bool`): [@(0.0.255) void]_[* SetSortColumn]([@(0.0.255) i +nt]_[*@3 ii], [@(0.0.255) bool]_[*@3 descending]_`=_[@(0.0.255) false])&] +[s2; Sets the `"sorting`" column and calls DoColumnSort. This setting +is used by DoColumnSort.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:ToggleSortColumn`(int`): [@(0.0.255) void]_[* ToggleSortColumn]([@(0.0.255) i +nt]_[*@3 ii])&] +[s2; Similar to SetSortColumn, but if the column is already set, +descending flag is inverted; otherwise descending flag is set +to false (indicating ascending sort).&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:DoColumnSort`(`): [@(0.0.255) void]_[* DoColumnSort]()&] +[s2; Sorts the array by sorting column and indicates it by setting +an image in the header.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:GetSortColumn`(`)const: [@(0.0.255) int]_[* GetSortColumn]()_[@(0.0.255) c +onst]&] +[s2; Returns the column that is sorting the ArrayCtrl (user clicked +on it and it has up or down arrow displayed).&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:IsSortDescending`(`)const: [@(0.0.255) bool]_[* IsSortDescending]()_[@(0.0.255) c +onst]&] +[s2; Returns true if current column`-sort is descending.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:ClearCache`(`): [@(0.0.255) void]_[* ClearCache]()&] +[s2; Invalidates the whole [/ convert cache]. The convert cache keeps +the results of the [* Convert`::Format] method applied to individual +array data cells for performance reasons. Whenever you call the +[* ClearCache] method, all cache entries are marked as obsolete +and the [* Convert]`'s [* Format] method will be called as soon as +the converted value of a table cell is required (usually during +the next [* Paint]).&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:InvalidateCache`(int`): [@(0.0.255) void]_[* InvalidateCache]([@(0.0.255) i +nt]_[*@3 i])&] +[s2; Invalidates a given row in the [/ convert cache]. For performance +reasons, the results of the [* Convert`::Format] method applied +to the individual data cells are kept in a cache. This function +marks a given row of the cache as obsolete; this means the next +time the converted values are to be used (usually within the +[* Paint] routine or when setting up the row editor controls), +the [* Convert] objects are used again to generate the actualized +output values.&] +[s7; [*C@3 i]-|zero`-based row index&] +[s3; &] +[s0; &] +[s0; [* Cursor and selection management]&] +[s3; &] +[s0; &] +[s5;:ArrayCtrl`:`:ScrollUp`(`): [@(0.0.255) void]_[* ScrollUp]()&] +[s5;:ArrayCtrl`:`:ScrollDown`(`): [@(0.0.255) void]_[* ScrollDown]()&] +[s5;:ArrayCtrl`:`:ScrollPageUp`(`): [@(0.0.255) void]_[* ScrollPageUp]()&] +[s5;:ArrayCtrl`:`:ScrollPageDown`(`): [@(0.0.255) void]_[* ScrollPageDown]()&] +[s5;:ArrayCtrl`:`:ScrollEnd`(`): [@(0.0.255) void]_[* ScrollEnd]()&] +[s5;:ArrayCtrl`:`:ScrollBegin`(`): [@(0.0.255) void]_[* ScrollBegin]()&] +[s2; Scrolls the content of ArrayCtrl.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:GetSelectCount`(`)const: [@(0.0.255) int]_[* GetSelectCount]()_[@(0.0.255) c +onst]&] +[s2; Returns the number of selected row within the table.&] +[s7; [*/ Return value]-|number of selected records (in the range [/ `[0 +.. GetCount()`]])&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:IsSelection`(`)const: [@(0.0.255) bool]_[* IsSelection]()_[@(0.0.255) con +st]&] +[s2; Checks whether any rows are selected. Equivalent to [* GetSelectCount() +> 0].&] +[s7; [*/ Return value]-|[* true] `= there is at least one selected row, +[* false] `= there is none.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:Select`(int`,bool`): [@(0.0.255) void]_[* Select]([@(0.0.255) int]_[*@3 i], + [@(0.0.255) bool]_[*@3 sel]_`=_[@(0.0.255) true])&] +[s2; Selects / unselects a given row.&] +[s7; [*C@3 i]-|zero`-based row index&] +[s7; [*C@3 sel]-|[* true] `= add row to the current selection, [* false] +`= remove row from selection&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:Select`(int`,int`,bool`): [@(0.0.255) void]_[* Select]([@(0.0.255) int]_[*@3 i +], [@(0.0.255) int]_[*@3 count], [@(0.0.255) bool]_[*@3 sel]_`=_[@(0.0.255) true])&] +[s2; Selects / unselects a given row range.&] +[s7; [*C@3 i]-|zero`-based index of the first row to select / unselect&] +[s7; [*C@3 count]-|number of rows to select / unselect&] +[s7; [*C@3 sel]-|[* true] `= select the rows, [* false] `= unselect the +rows&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:IsSelected`(int`)const: [@(0.0.255) bool]_[* IsSelected]([@(0.0.255) int]_ +[*@3 i])_[@(0.0.255) const]&] +[s7; Checks whether a given row is selected.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:IsSel`(int`)const: [@(0.0.255) bool]_[* IsSel]([@(0.0.255) int]_[*@3 i])_[@(0.0.255) c +onst]&] +[s2; If there is selection in the widget, returns true if [*@3 i] is +selected, otherwise returns true if cursor is at [*@3 i].&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:ArrayCtrl`:`:GetSelKeys`(`)const:%- [_^Upp`:`:Vector^ Vector]<[@(0.0.255) int +]>_[* GetSelKeys]()_[@(0.0.255) const]&] +[s2; Returns keys (elements with index 0) of all selected lines (ordered +by line order).&] +[s3;%- &] +[s4; &] +[s5;:Upp`:`:ArrayCtrl`:`:EnableLine`(int`,bool`): [@(0.0.255) void]_[* EnableLine]([@(0.0.255) i +nt]_[*@3 i], [@(0.0.255) bool]_[*@3 e])&] +[s2; Enables line to be selected by cursor. Lines are enabled by +default.&] +[s3; &] +[s4; &] +[s5;:Upp`:`:ArrayCtrl`:`:DisableLine`(int`): [@(0.0.255) void]_[* DisableLine]([@(0.0.255) i +nt]_[*@3 i])&] +[s2; Same as EnableLine(false).&] +[s3; &] +[s4; &] +[s5;:Upp`:`:ArrayCtrl`:`:IsLineEnabled`(int`)const: [@(0.0.255) bool]_[* IsLineEnabled]([@(0.0.255) i +nt]_[*@3 i])_[@(0.0.255) const]&] +[s2; Returns true if line is enabled. Not that in addition to EnableLine +method, callback WhenLineEnabled affects the status too.&] +[s3; &] +[s4; &] +[s5;:Upp`:`:ArrayCtrl`:`:IsLineDisabled`(int`)const: [@(0.0.255) bool]_[* IsLineDisabled]( +[@(0.0.255) int]_[*@3 i])_[@(0.0.255) const]&] +[s2; Same as !IsLineEnabled([*@3 i]).&] +[s3; &] +[s4; &] +[s5;:Upp`:`:ArrayCtrl`:`:ShowLine`(int`,bool`): [@(0.0.255) void]_[* ShowLine]([@(0.0.255) i +nt]_[*@3 i], [@(0.0.255) bool]_[*@3 visible])&] +[s2; Sets the visibility of line. Hidden lines are omitted from the +list.&] +[s3; &] +[s4; &] +[s5;:Upp`:`:ArrayCtrl`:`:HideLine`(int`): [@(0.0.255) void]_[* HideLine]([@(0.0.255) int]_[*@3 i +])&] +[s2; Same as ShowLine([*@3 i], false).&] +[s3; &] +[s4; &] +[s5;:Upp`:`:ArrayCtrl`:`:IsLineVisible`(int`)const: [@(0.0.255) bool]_[* IsLineVisible]([@(0.0.255) i +nt]_[*@3 i])_[@(0.0.255) const]&] +[s2; Returns true if line is visible. Not that in addition to EnableLine +method, callback WhenLineVisible affects the visibility too.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:ClearSelection`(`): [@(0.0.255) void]_[* ClearSelection]()&] +[s2; Clears the current selection (unselects all selected rows).&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:IsCursor`(`)const: [@(0.0.255) bool]_[* IsCursor]()_[@(0.0.255) const]&] +[s2; Checks whether the cursor is within the table. This is equivalent +to [* GetCursor()_>`=_0].&] +[s7; [*/ Return value]-|&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:SetCursor`(int`): [@(0.0.255) bool]_[* SetCursor]([@(0.0.255) int]_[*@3 i]) +&] +[s2; Sets the current cursor row. When an array row is open for editing, +the function first commits the edited row, then moved the cursor +to the new row. When the edited row cannot be commited, the function +returns [* false] and doesn`'t change the cursor location.&] +[s7; [*C@3 i]-|zero`-based row index&] +[s7; [*/ Return value]-|[* true] `= cursor has been moved, [* false ]when +not (when committing the previously edited row failed)&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:KillCursor`(`): [@(0.0.255) bool]_[* KillCursor]()&] +[s2; Moves the cursor away from the array. When an array row is open +for editing, the function first commits the edited row, then +moved the cursor away from the array. When the edited row cannot +be commited, the function returns [* false] and doesn`'t change +the cursor location.&] +[s7; [*/ Return value]-|[* true] `= cursor has been moved away from the +array, [* false] when not (when committing the previously edited +row failed)&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:CancelCursor`(`): [@(0.0.255) void]_[* CancelCursor]()&] +[s2; Cancels editing of the row being currently edited. All changes +made in the individual column editors are rejected.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:GetCursor`(`)const: [@(0.0.255) int]_[* GetCursor]()_[@(0.0.255) const]&] +[s2; Returns the current cursor row, `-1 when none.&] +[s7; [*/ Return value]-|zero`-based cursor row index, `-1 `= cursor +is not in the array&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:GoBegin`(`): [@(0.0.255) void]_[* GoBegin]()&] +[s2; Moves the cursor to the first row in the array (equivalent to +[* SetCursor(0)]).&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:GoEnd`(`): [@(0.0.255) void]_[* GoEnd]()&] +[s2; Moves the cursor to the last array row (equivalent to [* SetCursor(GetCount() +`- 1)]).&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:GetCursorSc`(`)const: [@(0.0.255) int]_[* GetCursorSc]()_[@(0.0.255) cons +t]&] +[s2; Returns the visual vertical position of the cursor row relative +to the current view. This method, in combination with [* ScCursor], +can be used to reposition the cursor row while maintaining the +same visual position of the row within the array view.&] +[s7; [*/ Return value]-|an integer describing the vertical position +of the cursor row relative to the array view&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:ScCursor`(int`): [@(0.0.255) void]_[* ScCursor]([@(0.0.255) int]_[*@3 a])&] +[s2; Modifies the scrollbar position so that the current cursor row +appears at a given vertical position relative to the array view. +By doing the following sequence of operations: [* GetCursorSc], +then reposition the cursor row, then [* ScCursor], you can achieve +cursor relocation while maintaining its visual location within +the array view.&] +[s7; [*C@3 a]-|an integer describing the vertical position of the cursor +row (typically a number returned by a previous call to [* GetCursorSc])&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:CenterCursor`(`): [@(0.0.255) void]_[* CenterCursor]()&] +[s2; Modifies the scrollbar position so that the current cursor row +appears in the middle of the array view.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:ScrollInto`(int`): [@(0.0.255) void]_[* ScrollInto]([@(0.0.255) int]_[*@3 l +ine])&] +[s2; Moves the scrollbar by the least possible amount in order to +make the given array row visible. When the given array row is +already visible, the function does nothing.&] +[s7; [*C@3 line]-|zero`-based row index of the array row to make visible&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:ScrollIntoCursor`(`): [@(0.0.255) void]_[* ScrollIntoCursor]()&] +[s2; Moves the scrollbar by the least possible amount in order to +make the cursor row visible. This is equivalent to [* ScrollInto(GetCursor())].&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:GetCursor`(`)const: [@(0.0.255) int]_[* GetCursor]()_[@(0.0.255) const]&] +[s2; Returns the current vertical scrollbar position.&] +[s7; [*/ Return value]-|Pixel position of the vertical scrollbar. Position +0 is at the very top (the top row of the array is fully visible).&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:ScrollTo`(int`): [@(0.0.255) void]_[* ScrollTo]([@(0.0.255) int]_[*@3 sc])&] +[s2; Moves the vertical array scrollbar to a given position.&] +[s7; [*C@3 sc]-|Pixel position of the scrollbar. The visible portion +of the array can be obtained conceptually by taking the stack +of array rows with its top aligned at the top of the view and +moving it [/ sc] pixels upwards.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:Find`(const Value`&`,int`,int`)const: [@(0.0.255) int]_[* Find]([@(0.0.255) c +onst]_[_^Value^ Value][@(0.0.255) `&]_[*@3 v], [@(0.0.255) int]_[*@3 ii]_`=_[@3 0], +[@(0.0.255) int]_[*@3 from]_`=_[@3 0])_[@(0.0.255) const]&] +[s2; [*C@3 v]-|value to look for in the given source index&] +[s7; [*C@3 ii]-|zero`-based ordinal number of the source index to search&] +[s7; [*C@3 from]-|zero`-based row index to start the search from&] +[s7; [*/ Return value]-|zero`-based number of the matched row, `-1 when +none&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:Find`(const Value`&`,const Id`&`,int`)const: [@(0.0.255) int]_[* Find]( +[@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_[*@3 v], [@(0.0.255) const +][_^Id^ Id]`&_[*@3 id], [@(0.0.255) int]_[*@3 from]_`=_[@3 0])_[@(0.0.255) const]&] +[s2; Locates the row (using linear search beginning at the row [/ from]) +in which the source index value identified by [/ id] equals [/ val]. +If such a row is found, the function returns its zero`-based +index. When not matched, the function returns `-1.&] +[s7; [*C@3 v]-|value to look for in the given source index&] +[s7; [*C@3 id]-|source index identifier&] +[s7; [*C@3 from]-|zero`-based row index to start the search from&] +[s7; [*/ Return value]-|zero`-based number of the matched row, `-1 when +none&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:FindSetCursor`(const Value`&`,int`,int`): [@(0.0.255) bool]_[* FindSetC +ursor]([@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_[*@3 val], +[@(0.0.255) int]_[*@3 ii]_`=_[@3 0], [@(0.0.255) int]_[*@3 from]_`=_[@3 0])&] +[s2; Locates the row (using linear search beginning at the row [/ from]) +in which the source index value identified by its ordinal number +[/ ii] equals [/ val]. If such a row is found, the [* SetCursor] is +called automatically to move the cursor to such a row.&] +[s7; [*C@3 val]-|value to look for in the given source index&] +[s7; [*C@3 ii]-|zero`-based ordinal number of the source index to search&] +[s7; [*C@3 from]-|zero`-based row index to start the search from&] +[s7; [*/ Return value]-|zero`-based number of the matched row, `-1 when +none&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:FindSetCursor`(const Value`&`,const Id`&`,int`): [@(0.0.255) bool]_[* F +indSetCursor]([@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_[*@3 val], +[@(0.0.255) const ][_^Id^ Id]`&_[*@3 id], [@(0.0.255) int]_[*@3 from]_`=_[@3 0])&] +[s2; Locates the row (using linear search beginning at the row [/ from]) +in which the source index value identified by [/ id] equals [/ val]. +If such a row is found, the [* SetCursor] is called automatically +to move the cursor to such a row.&] +[s7; [*C@3 val]-|value to look for in the given source index&] +[s7; [*C@3 id]-|source index identifier&] +[s7; [*C@3 from]-|zero`-based row index to start the search from&] +[s7; [*/ Return value]-|[* true] `= the desired row was found (and the +cursor set), [* false] when not&] +[s3; &] +[s0;* &] +[s0; [* User interface elements]&] +[s3; &] +[s0; &] +[s5;:ArrayCtrl`:`:StdBar`(Bar`&`): [@(0.0.255) void]_[* StdBar]([_^Bar^ Bar][@(0.0.255) `&]_[*@3 m +enu])&] +[s2; The default array local menu. The default local menu consists +of the standard editing actions (inserting / appending / duplicating +a row, editing a row, removing a row, moving a row, select all +rows) filtered by the array properties enabling / disabling the +various GUI elements (item insertion / deletion etc.). &] +[s7; [*C@3 menu]-|the [* Bar] object representing the menu being generated&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:IsModified`(int`)const: [@(0.0.255) bool]_[* IsModified]([@(0.0.255) int]_ +[*@3 ii])_[@(0.0.255) const]&] +[s2; Checks a source index in the currently edited row for changes.&] +[s7; [*C@3 ii]-|zero`-based row index&] +[s7; [*/ Return value]-|[* true] `= the index has been modified, [* false] +`= the index is in its original state&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:IsModified`(const Id`&`)const: [@(0.0.255) bool]_[* IsModified]([@(0.0.255) c +onst ][_^Id^ Id]`&_[*@3 id])_[@(0.0.255) const]&] +[s2; Checks a source index in the currently edited array row for +changes.&] +[s7; [*C@3 id]-|source index identifier&] +[s7; [*/ Return value]-|[* true] `= the source index has been modified, +[* false ]when not&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:StartEdit`(int`): [@(0.0.255) bool]_[* StartEdit]([@(0.0.255) int]_[*@3 d]_ +`=_[@3 0])&] +[s2; Opens the current cursor row for editing and sets focus to the +[/ d]`-th column.&] +[s7; [*C@3 d]-|zero`-based column index&] +[s7; [*/ Return value]-|[* true] `= editing successfully initiated, [* false] +when not (when the array is in [* ReadOnly] mode or it has no editable +columns)&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:GetEditColumn`(`)const: [@(0.0.255) int]_[* GetEditColumn]()_[@(0.0.255) c +onst]&] +[s2; Returns the column being currently edited.&] +[s7; [*/ Return value]-|zero`-based index of the column being edited, +`-1 `= none&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:DoEdit`(`): [@(0.0.255) void]_[* DoEdit]()&] +[s2; Opens the current cursor row for editing.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:DoInsert`(int`): [@(0.0.255) void]_[* DoInsert]([@(0.0.255) int]_[*@3 curso +r])&] +[s2; Begins the GUI insertion of a new row at a given location.&] +[s7; [*C@3 cursor]-|zero`-based location of the new row&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:DoInsertBefore`(`): [@(0.0.255) void]_[* DoInsertBefore]()&] +[s2; Begins the GUI insertion of a new row above the current row.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:DoInsertAfter`(`): [@(0.0.255) void]_[* DoInsertAfter]()&] +[s2; Begins the GUI insertion of a new row below the current row.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:DoAppend`(`): [@(0.0.255) void]_[* DoAppend]()&] +[s2; Begins the GUI insertion of a new row at the end of the array.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:DoRemove`(`): [@(0.0.255) virtual] [@(0.0.255) bool]_[* DoRemove]()&] +[s2; Performs the GUI`-based removal of the current cursor row. When +the [* AskRemove] property is set to [* true] and the user cancels +the confirmation dialog, the function returns [* false] and the +current row is not removed.&] +[s7; [*/ Return value]-|[* true] `= row has been removed successfully, +[* false] `= user has canceled the row removal&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:DoDuplicate`(`): [@(0.0.255) void]_[* DoDuplicate]()&] +[s2; Duplicates the current row and opens it for editing.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:DoSelectAll`(`): [@(0.0.255) void]_[* DoSelectAll]()&] +[s2; Marks all array row as selected.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:AcceptEnter`(`): [@(0.0.255) bool]_[* AcceptEnter]()&] +[s2; Performs all necessary GUI actions equivalent to when the user +presses the [* Enter] key. The row being currently edited is committed +and, in the case it was a newly appended line and the [* NoInsertAppend] +property is not set, an additional row is added to the array +and opened for editing.&] +[s7; [*/ Return value]-|[* true] `= the current row has been successfully +committed, [* false] when not&] +[s3; &] +[s0; &] +[s0; &] +[s0; [* Content export]&] +[s0;* &] +[s3; &] +[s5;:ArrayCtrl`:`:AsText`(String`(`*`)`(const Value`&`)`,bool`,const char`*`,const char`*`,const char`*`,const char`*`)const: [_^String^ S +tring]_[* AsText]([_^String^ String]_(`*[*@3 format])([@(0.0.255) const]_Value[@(0.0.255) `& +]), [@(0.0.255) bool]_[*@3 sel]_`=_[@(0.0.255) false], [@(0.0.255) const]_[@(0.0.255) char]_ +`*[*@3 tab]_`=_`"`\t`", [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 row]_`=_`"`\r`\n`", +[@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 hdrtab]_`=_`"`\t`", [@(0.0.255) const]_[@(0.0.255) c +har]_`*[*@3 hdrrow]_`=_`"`\r`\n`")_[@(0.0.255) const]&] +[s2; Generic function for conversion of ArrayCtrl content to text. +The content visible on screen is exported (means, it exports +columns defined using AddColumn, not indicies). Cells are converted +to output format using [*@3 format] function. If [*@3 sel] is true, +only rows with IsSel true are exported. [*@3 tab] represents a +separator text between cells in a row, [*@3 row] separator of rows. +[*@3 hdrtab] is separator of header cells (those are texts of ArrayCtrl +header) `- if NULL, no header is exported. [*@3 hdrrow].is separator +of header and data rows.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:SetClipboard`(bool`,bool`)const: [@(0.0.255) void]_[* SetClipboard]([@(0.0.255) b +ool]_[*@3 sel]_`=_[@(0.0.255) false], [@(0.0.255) bool]_[*@3 hdr]_`=_[@(0.0.255) true])_[@(0.0.255) c +onst]&] +[s2; Puts ArrayCtrl content to clipboard in text format, `"`\t`" +and `"`\r`\n`" as separators. If [*@3 sel] is true, only rows with +IsSel true are exported, [*@3 hdr] controls whether header is exported.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:AsQtf`(bool`,bool`): [_^String^ String]_[* AsQtf]([@(0.0.255) bool]_[*@3 se +l]_`=_[@(0.0.255) false], [@(0.0.255) bool]_[*@3 hdr]_`=_[@(0.0.255) true])&] +[s2; Returns ArrayCtrl content in QTF format. If [*@3 sel] is true, +only rows with IsSel true are exported, [*@3 hdr] controls whether +header is exported.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:AsCsv`(bool`,int`,bool`): [_^String^ String]_[* AsCsv]([@(0.0.255) bool]_ +[*@3 sel]_`=_[@(0.0.255) false], [@(0.0.255) int]_[*@3 sep]_`=_`';`', +[@(0.0.255) bool]_[*@3 hdr]_`=_[@(0.0.255) true])&] +[s2; Returns ArrayCtrl content in csv format, using [*@3 sep] as separator. +If [*@3 sel] is true, only rows with IsSel true are exported, [*@3 hdr] +controls whether header is exported.&] +[s0; &] +[s0; &] +[s0; [* Notification callbacks]&] +[s3; &] +[s3; &] +[s5;:ArrayCtrl`:`:WhenSel: [_^Callback^ Callback]_[* WhenSel]&] +[s2; Called whenever cursor or selection changes. This probably the +most common ArrayCtrl callback. We recommend to start with this +one first and use others only if necessary.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:WhenLeftClick: [_^Callback^ Callback]_[* WhenLeftClick]&] +[s2; This callback is called whenever the user clicks an array cell.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:WhenLeftDouble: [_^Callback^ Callback]_[* WhenLeftDouble]&] +[s2; This callback is called whenever the user doubleclicks an array +cell.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:WhenMouseMove: [_^Callback1^ Callback1]<[_^Point^ Point]>_[* WhenMouseMov +e]&] +[s2; Called when mouse moves over the ArrayCtrl or moves out of ArrayCtrl. +The Point`::y is the line number, Point`::x column index. If mouse +moves out of ArrayCtrl, parameter is Null.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:WhenEnterKey: [_^Callback^ Callback]_[* WhenEnterKey]&] +[s2; Called when user presses Enter key while focus is in ArrayCtrl, +some line of ArrayCtrl has cursor and Enter key is not `'eaten`' +by another action like accepting the input. When this Callback +is not empty, Enter key is never passed to parent.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:WhenBar: [_^Callback1^ Callback1]_[* WhenBar]&] +[s2; This callback is called whenever the local array menu has to +be regenerated. By setting this callback to a different function +/ method you can supply a custom local menu for the array. The +[* Bar`&] argument is a reference to the menu to be generated.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:WhenEnterRow: [_^Callback^ Callback]_[* WhenEnterRow]&] +[s2; This callback is called every time the cursor location changes +to a different row of the array.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:WhenAcceptRow: [_^Gate^ Gate]_[* WhenAcceptRow]&] +[s2; This gate is called every time an array row (open for editing) +needs to be validated. When the gate returns [* false], the validation +process is assumed to have failed, when it returns [* true], it +is assumed to have succeeded. You can use this callback to add +your own validation algorithms relevant to the array context +within your application.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:WhenUpdateRow: [_^Callback^ Callback]_[* WhenUpdateRow]&] +[s2; This callback is called whenever an array row has been updated. +You can use this callback e.g. to project the changes to a database +or generally to an external data source.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:WhenKillCursor: [_^Callback^ Callback]_[* WhenKillCursor]&] +[s2; This callback is called whenever the cursor is moved away from +the table.&] +[s2; [* Note:] internally, when moving the cursor (e.g. by calling the +[* SetCursor ]method), after committing the previous row the cursor +is removed from the table using [* KillCursor] and placed to the +new location afterwards. Therefore every time the cursor is moved, +the [* WhenKillCursor] callback is called as a by`-product.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:WhenCursor: [_^Callback^ Callback]_[* WhenCursor]&] +[s2; This callback is called every time the cursor row number changes +(either when the cursor is removed from the table, or when it +has been moved to a different row).&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:WhenArrayAction: [_^Callback^ Callback]_[* WhenArrayAction]&] +[s2; This callback is called every time the source array data changes +(typically after accepting changes to a certain row or after +deleting a row).&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:WhenStartEdit: [_^Callback^ Callback]_[* WhenStartEdit]&] +[s2; This callback is called whenever the array row editing process +is initiated. It can be used e.g. to set up some additional properties +of the column editor objects, to fill in drop`-down lists pertaining +to certain column editors etc.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:WhenAcceptEdit: [_^Callback^ Callback]_[* WhenAcceptEdit]&] +[s2; This callback is called whenever the currently edited line has +been committed.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:WhenSelection: [_^Callback^ Callback]_[* WhenSelection]&] +[s2; This callback is called whenever the current array selection +changes. This includes changes to the cursor location as the +cursor is automatically considered part of the selection.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:WhenCtrlsAction: [_^Callback^ Callback]_[* WhenCtrlsAction]&] +[s2; This callback is called whenever some of the editor controls +constructed automatically via the column editing [/ factory] calls +its [* WhenAction] method. It can be used to watch out for changes +in the cell editors and react to specific situations accordingly.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:WhenScroll: [_^Callback^ Callback]_[* WhenScroll]&] +[s2; Called when scrolling of ArrayCtrl content happened.&] +[s3; &] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:WhenHeaderLayout: [_^Callback^ Callback]_[* WhenHeaderLayout]&] +[s2; Called when header changes.&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:ArrayCtrl`:`:WhenColumnSorted:%- [_^Upp`:`:Event^ Event]<>_[* WhenColumnSorte +d]&] +[s2; Invoked at the end of DoColumnSort. This allows to react to +user sorting ArrayCtrl by clicking on column header marked as +Sorting.&] +[s3;%- &] +[s4; &] +[s5;:ArrayCtrl`:`:WhenLineEnabled: [_^Callback2^ Callback2]<[@(0.0.255) int], +[@(0.0.255) bool`&]>_[* WhenLineEnabled]&] +[s2; Provides additional means to enable/disable lines in addition +to `"EnableLine`" interface. This is especially useful when using +SetVirtualCount. First parameter is the line number, second is +reference to enable status.&] +[s3; &] +[s4; &] +[s5;:Upp`:`:ArrayCtrl`:`:WhenLineVisible: [_^Upp`:`:Callback2^ Callback2]<[@(0.0.255) int +], [@(0.0.255) bool`&]>_[* WhenLineVisible]&] +[s2; Provides additional means to show/hide lines in addition to +`"ShowLine`" interface. This is especially useful when using +SetVirtualCount. First parameter is the line number, second is +reference to visibility status.&] +[s3; &] +[s0; &] +[ {{10000t/25b/25@3 [s0; [*@(229)4 ArrayCtrl`::IdInfo]]}}&] +[s3; &] +[s1;:ArrayCtrl`:`:IdInfo`:`:struct: [@(0.0.255)3 struct][3 _][*3 IdInfo]&] +[s9; The [* IdInfo] structure contains properties of all source array +indices. It can be used to set additional properties pertaining +to source array data.&] +[s3; &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] +[s3; &] +[s5;:ArrayCtrl`:`:IdInfo`:`:InsertValue`(const Value`&`): [_^ArrayCtrl`:`:IdInfo^ IdInf +o][@(0.0.255) `&]_[* InsertValue]([@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_[*@3 v]) +&] +[s2; The method sets up the default source index value for newly +created rows. This is used only when the row insertion is GUI`-based +(like using the [* DoInsert] method for instance). When a row is +added to the array programmatically (e.g. using [* Add] or [* Insert]), +these default values are not used.&] +[s7; [*C@3 v]-|default source index value&] +[s7; [*/ Return value]-|[* `*this]&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:IdInfo`:`:InsertValue`(ValueGen`&`): [_^ArrayCtrl`:`:IdInfo^ IdInfo][@(0.0.255) `& +]_[* InsertValue]([_^ValueGen^ ValueGen][@(0.0.255) `&]_[*@3 g])&] +[s2; The method sets up a factory for generating default index values +for newly created rows. This is used only when the row insertion +is GUI`-based (like using the [* DoInsert] method for instance). +When a row is added to the array programmatically (e.g. using +[* Add] or [* Insert]), the [* InserValue] property is not consulted.&] +[s7; [*C@3 g]-|a reference to the value generation factory. The ownership +to the factory is not passed by this call; the caller must insure +the existence of the factory object throughout the array duration.&] +[s7; [*/ Return value]-|[* `*this]&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:IdInfo`:`:Accel`(int`(`*`)`(int`)`): [_^ArrayCtrl`:`:IdInfo^ IdInfo][@(0.0.255) `& +]_[* Accel]([@(0.0.255) int]_(`*[*@3 filter])([@(0.0.255) int]))&] +[s2; This method sets up the source index accelerator function. The +accelerator is used to quickly locate rows using the keyboard +key presses.&] +[s7; [*C@3 filter]-|a [* CharFilter ]function for keypress filtering&] +[s7; [*/ Return value]-|[* `*this]&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:IdInfo`:`:Accel`(`): [_^ArrayCtrl`:`:IdInfo^ IdInfo][@(0.0.255) `&]_[* Ac +cel]()&] +[s2; This method sets up keyboard acceleration for the given source +index. The `'trivial`' [/ CharConvert] is used for character translation.&] +[s7; [*/ Return value]-|[* `*this]&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:IdInfo`:`:GetInsertValue`(`): [_^Value^ Value]_[* GetInsertValue]()&] +[s2; Uses the [* InsertValue] property to generate a new source index +value (either using a fixed default value or the value creation +factory).&] +[s7; [*/ Return value]-|the generated value to be used as the default +for the newly inserted row.&] +[s3; &] +[s0; &] +[s0; &] +[s0; &] +[ {{10000t/25b/25@3 [s0; [*@(229)4 ArrayCtrl`::Column]]}}&] +[s3; &] +[s1;:ArrayCtrl`:`:Column`:`:class: [@(0.0.255)3 class][3 _][*3 Column][3 _:_][@(0.0.255)3 privat +e][3 _][*@3;3 FormatConvert]&] +[s2; &] +[s0; [/ Derived from] FormatConvert&] +[s0;3 &] +[s0; The [* ArrayCtrl`::Column] structure describes an output array +column. Its methods can be used to set or query its properties, +some of which are also settable via ArrayCtrl methods.&] +[s3; &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] +[s3; &] +[s5;:ArrayCtrl`:`:Column`:`:Add`(int`): [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `&]_[* A +dd]([@(0.0.255) int]_[*@3 `_pos])&] +[s2; Adds another source data index to the list of source indices +used as the data for the given output column.&] +[s7; [*C@3 `_pos]-|zero`-based ordinal number of the source index&] +[s7; [*/ Return value]-|[* `*this].&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:Column`:`:Add`(const Id`&`): [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `& +]_[* Add](const [_^Id^ Id]`&_[*@3 id])&] +[s2; Adds another source data index to the list of source indices +used as the data for the given output column.&] +[s7; [*C@3 id]-|the [* Id] identifier of the source index&] +[s7; [*/ Return value]-|[* `*this]&] +[s3; &] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:Column`:`:AddIndex`(const Id`&`): [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `& +]_[* AddIndex]([@(0.0.255) const]_[_^Id^ Id][@(0.0.255) `&]_[*@3 id])&] +[s2; Adds another source index to the array and adds it to the list +of source indices bound to this output column. The newly created +index is assigned the given identifier.&] +[s7; [*C@3 id]-|the identifier for the newly created index&] +[s7; [*/ Return value]-|[* `*this]&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:Column`:`:AddIndex`(`): [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `&]_ +[* AddIndex]()&] +[s2; Adds another source index to the array and adds it to the list +of source indices bound to this output column.&] +[s7; [*/ Return value]-|[* `*this]&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:Column`:`:SetConvert`(const Convert`&`): [_^ArrayCtrl`:`:Column^ Colu +mn][@(0.0.255) `&]_[* SetConvert]([@(0.0.255) const]_[_^Convert^ Convert][@(0.0.255) `&]_[*@3 c +])&] +[s2; Sets the [* Convert] object for the given column. This object +is used to convert the source values (obtained from the source +data matrix) to the values displayable and/or editable by the +respective column display / editor object.&] +[s2; [* Note:] the ownership of the [* Convert] object is not transferred +by this function. The array merely stores a pointer to the Convert +object. It is up to the host application to keep the Convert +object alive as long as necessary (until the ArrayCtrl object +is destroyed or all references to the Convert object obliterated +by new calls to the [* SetConvert] method). In any case, most Convert`-based +object do not support copying at all; moreover, as the Convert`-based +objects are mostly derived from the basic class, their copying +is normally prone to slicing.&] +[s7; [*C@3 c]-|a constant reference to the Convert object to use for +the given column&] +[s7; [*/ Return value]-|[* `*this]&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:ArrayCtrl`:`:Column`:`:ConvertBy`(Upp`:`:Function``):%- [_^Upp`:`:ArrayCtrl`:`:Column^ A +rrayCtrl`::Column][@(0.0.255) `&]_[* ConvertBy]([_^Upp`:`:Function^ Function]_[*@3 cv])&] +[s2; Similar to SetConvert, but using [%-*@3 cv] instead of class for +conversion.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:Column`:`:SetFormat`(const char`*`): [@(0.0.255) virtual] +[_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `&]_[* SetFormat]([@(0.0.255) const]_[@(0.0.255) c +har]_`*[*@3 fmt])&] +[s2; Sets the format string to use for the default value formatting. +When no Convert object is set for the column, the source value +is normally passed to the [* NFormat] function where the [/ fmt] +argument defines the desired formatting pattern.&] +[s7; [*C@3 fmt]-|a [* NFormat]`-compatible formatting pattern&] +[s7; [*/ Return value]-|[* `*this]&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:Column`:`:SetDisplay`(const Display`&`): [_^ArrayCtrl`:`:Column^ Colu +mn][@(0.0.255) `&]_[* SetDisplay]([@(0.0.255) const]_[_^Display^ Display][@(0.0.255) `&]_[*@3 d +])&] +[s2; Sets the default Display to use for this column. The column +Display can be overridden for certain array cells by calls to +the [*^topic`:`/`/CtrlLib`/src`/ArrayCtrl`$en`-us`#`:`:ArrayCtrl`:`:SetDisplay`(int`,int`,const Display`&`)^ A +rrayCtrl`::SetDisplay] method.&] +[s2; [* Note:] the ownership to the Display object is not transferred +by this function. The array merely stores a pointer to the Display; +it is up to the host application to keep the Display object alive +as long as necessary.&] +[s7; [*C@3 d]-|a reference to the Display object&] +[s7; [*/ Return value]-|[* `*this]&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:Column`:`:Edit`(Ctrl`&`): [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `& +]_[* Edit]([_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 e])&] +[s2; Sets up the Ctrl`-based object to use for inline array column +editing.&] +[s7; [*C@3 e]-|a reference to the editor control object&] +[s7; [*/ Return value]-|[* `*this]&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:Column`:`:Ctrls`(void`(`*`)`(One``&`)`): [_^ArrayCtrl`:`:Column^ C +olumn][@(0.0.255) `&]_[* Ctrls]([@(0.0.255) void]_(`*[*@3 factory])(One`&))&] +[s2; The methods sets up a factory which the ArrayCtrl uses as necessary +to create new Ctrl`'s for editing a given column. The argument +of this function is a function pointer, which, upon execution, +should allocate (normally using the One`::Create method) the desired +editor object and set it to its argument. If the position of +Ctrl is equivalent to `'SetRect(0, 0, 0, 0)`', which is the default +value, Ctrl is resized to fit the ArrayCtrl cell accurately, +spanning the whole width and using STDSIZE for height, otherwise +the position represents the position within the cell.&] +[s7; [*C@3 factory]-|a global function used for editor control creation&] +[s7; [*/ Return value]-|[* `*this]&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:Column`:`:Ctrls`(`): [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 T]>_[_^ArrayCtrl`:`:Column^ C +olumn][@(0.0.255) `&]_[* Ctrls]()&] +[s2; This member template sets up a default factory for creating +editor controls of a given type. Every time the ArrayCtrl needs +to create a new editor control, an object of the type [* T] is +created automatically (using the [* new] operator). If the position +of Ctrl is equivalent to `'SetRect(0, 0, 0, 0)`', which is the +default value, Ctrl is resized to fit the ArrayCtrl cell accurately, +spanning the whole width and using STDSIZE for height, otherwise +the position represents the position within the cell.&] +[s7; [*C@4 T]-|the desired object editor type &] +[s7; [*/ Return value]-|[* `*this]&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:ArrayCtrl`:`:Column`:`:WithLined`(Upp`:`:Event``&`>`):%- [_^Upp`:`:ArrayCtrl`:`:Column^ A +rrayCtrl`::Column][@(0.0.255) `&]_[* WithLined]([_^Upp`:`:Event^ Event]<[@(0.0.255) int], +[_^Upp`:`:One^ One]<[_^Upp`:`:Ctrl^ Ctrl]>`&>_[*@3 factory])&] +[s2; This method sets up a factory which the ArrayCtrl uses to create +new Ctrl`'s for editing a given column. The argument, a global +function, is supposed to create a new editor control in the second +argument (usually using the One`::Create method). The first argument +of Event is the line index. If the position of Ctrl is equivalent +to `'SetRect(0, 0, 0, 0)`', which is the default value, Ctrl +is resized to fit the ArrayCtrl cell accurately, spanning the +whole width and using STDSIZE for height, otherwise the position +represents the position within the cell.&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:ArrayCtrl`:`:Column`:`:With`(Upp`:`:Event``&`>`):%- [_^Upp`:`:ArrayCtrl`:`:Column^ A +rrayCtrl`::Column][@(0.0.255) `&]_[* With]([_^Upp`:`:Event^ Event]<[_^Upp`:`:One^ One]<[_^Upp`:`:Ctrl^ C +trl]>`&>_[*@3 factory])&] +[s2; This method sets up a factory which the ArrayCtrl uses to create +new Ctrl`'s for editing a given column. The argument, a global +function, is supposed to create a new editor control in the argument +(usually using the One`::Create method). If the position of Ctrl +is equivalent to `'SetRect(0, 0, 0, 0)`', which is the default +value, Ctrl is resized to fit the ArrayCtrl cell accurately, +spanning the whole width and using STDSIZE for height, otherwise +the position represents the position within the cell.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:Column`:`:InsertValue`(const Value`&`): [_^ArrayCtrl`:`:Column^ Colum +n][@(0.0.255) `&]_[* InsertValue]([@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_[*@3 v]) +&] +[s2; Instructs the ArrayCtrl object to initialize this column in +newly created rows to the given value [/ v]. (This applies only +to GUI`-based row insertion using methods like [* DoInsert] etc., +the low`-level, programmer`-controlled row insertion methods +like [* Add] or [* Insert] always initialize the source data matrix +with [* Null]`'s).&] +[s7; [*C@3 v]-|the value to use as the default for newly inserted rows&] +[s7; [*/ Return value]-|[* `*this]&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:Column`:`:InsertValue`(ValueGen`&`): [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `& +]_[* InsertValue]([_^ValueGen^ ValueGen][@(0.0.255) `&]_[*@3 g])&] +[s2; Programs the ArrayCtrl object to use the given [* ValueGen] factory +for default value generation for newly created rows. This can +be used e.g. to generate unique UUID`'s or primary keys using +an Oracle SEQUENCE object for a primary key column.&] +[s7; [*C@3 g]-|a reference to the ValueGen object used for default value +generation&] +[s7; [*/ Return value]-|[* `*this]&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:Column`:`:NoClickEdit`(`): [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `& +]_[* NoClickEdit]()&] +[s2; Disables entering the editing mode when clicking the respective +column.&] +[s7; [*/ Return value]-|[* `*this]&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:Column`:`:Cache`(`): [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `&]_[* Ca +che]()&] +[s2; Enables using the cache to store the converted values of this +column. By default, converted value caching is turned off to +make cell value conversion entirely dynamic; however, very often +it is advisable to enable using the cache, especially when the +conversion is relatively slow (for instance, when the conversion +queries a database connection to convert the value).&] +[s7; [*/ Return value]-|[* `*this]&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:Column`:`:Accel`(int`(`*`)`(int`)`): [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `& +]_[* Accel]([@(0.0.255) int]_(`*[*@3 filter])([@(0.0.255) int]))&] +[s2; Sets up the accelerator for the given column. A given filtering +function is used to convert keystrokes before acceleration.&] +[s7; [*C@3 filter]-|a [* CharConvert]`-style function to use for keystroke +conversion&] +[s7; [*/ Return value]-|[* `*this]&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:Column`:`:Accel`(`): [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `&]_[* Ac +cel]()&] +[s2; Sets up the accelerator for the given column. No keystroke conversion +is performed.&] +[s7; [*/ Return value]-|[* `*this]&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:Column`:`:Margin`(int`): [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `&]_ +[* Margin]([@(0.0.255) int]_[*@3 m])&] +[s2; Sets up the margin width for the given column. This is equivalent +to calling the [*^topic`:`/`/CtrlLib`/src`/HeaderCtrl`$en`-us`#`:`:HeaderCtrl`:`:Column`:`:SetMargin`(int`)^ S +etMargin] method of the underlying [* HeaderTab].&] +[s7; [*C@3 m]-|&] +[s7; [*/ Return value]-|[* `*this]&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:Column`:`:Sorting`(const ValueOrder`&`): [_^ArrayCtrl`:`:Column^ Colu +mn][@(0.0.255) `&]_[* Sorting]([@(0.0.255) const]_[_^ValueOrder^ ValueOrder][@(0.0.255) `&]_ +[*@3 o])&] +[s5;:ArrayCtrl`:`:Column`:`:Sorting`(`): [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `&]_[* S +orting]()&] +[s2; Activates sorting of ArrayCtrl column by clicking on its header +tab. Parameterless version uses default Value ordering using +StdValueCompare.&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:ArrayCtrl`:`:Column`:`:SortingLined`(Upp`:`:Gate``):%- [_^Upp`:`:ArrayCtrl`:`:Column^ A +rrayCtrl`::Column][@(0.0.255) `&]_[* SortingLined]([_^Upp`:`:Gate^ Gate]<[@(0.0.255) int], + [@(0.0.255) int]>_[*@3 aorder])&] +[s2; Activates sorting of ArrayCtrl column by clicking on its header +tab. This variant uses a Gate2 predicate that is supposed to +compare two lines (it has indicies as parameters). Note that +this variant ignores ascending/descending order, it has to be +implemented in predicate, using ArrayCtrl`::IsSortDescending to +determine the order.&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:ArrayCtrl`:`:Column`:`:SortingBy`(Upp`:`:Function``):%- [_^Upp`:`:ArrayCtrl`:`:Column^ A +rrayCtrl`::Column][@(0.0.255) `&]_[* SortingBy]([_^Upp`:`:Function^ Function]<[@(0.0.255) i +nt]_([@(0.0.255) const]_Value[@(0.0.255) `&]_a, [@(0.0.255) const]_Value[@(0.0.255) `&]_b +)>_[*@3 c])&] +[s2; Activates sorting of ArrayCtrl column by clicking on its header +tab, using [%-*@3 c] to compare values of column. [%-*@3 c] should +return `-1, 0, 1 for <, `=, >.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:Column`:`:SortDefault`(`): [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `& +]_[* SortDefault]()&] +[s2; Sets this column to be initial sorting column (calls SetSortColumn +of ArrayCtrl). If none of Sorting/SortingBy/SortingLines methods +was called on this column yet, calls default Sorting for the +column too.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:Column`:`:HeaderTab`(`): [_^HeaderCtrl`:`:Column^ HeaderCtrl`::Column][@(0.0.255) `& +]_[* HeaderTab]()&] +[s5;:ArrayCtrl`:`:Column`:`:HeaderTab`(`)const: [@(0.0.255) const]_[_^HeaderCtrl`:`:Column^ H +eaderCtrl`::Column][@(0.0.255) `&]_[* HeaderTab]()_[@(0.0.255) const]&] +[s2; Returns the [* HeaderCtrl`::Column] object describing the given +column. This object can be used to set up additional column properties +(like column width constraints or the [*^topic`:`/`/CtrlLib`/src`/HeaderCtrl`$en`-us`#`:`:HeaderCtrl`:`:Column`:`:Callback WhenAction^ W +henAction] callback).&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:Column`:`:Tip`(const char`*`): [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `& +]_[* Tip]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 tip])&] +[s2; Assigns a [*@3 tip] to header tab column.&] +[s3; &] +[s0; &] +[ {{10000t/25b/25@3 [s0; [*@(229)4 ArrayCtrl`::Order]]}}&] +[s3; &] +[s1;:ArrayCtrl`:`:Order`:`:struct: [@(0.0.255)3 struct][3 _][*3 Order]&] +[s9; The [* Order] object is used for array row sorting. The overloaded +[* operator ()] acts as the sorting predicate, which is consulted +within the sorting method to determine which of a given pair +of row is `'less`' according to the desired sorting.&] +[s3; &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] +[s3; &] +[s5;:ArrayCtrl`:`:Order`:`:operator`(`)`(const Vector``&`,const Vector``&`)const: [@(0.0.255) v +irtual] [@(0.0.255) bool]_[* operator()]([@(0.0.255) const]_[_^Vector^ Vector]<[_^Value^ Va +lue]>`&_[*@3 row1], [@(0.0.255) const]_[_^Vector^ Vector]<[_^Value^ Value]>`&_[*@3 row2])_[@(0.0.255) c +onst]_`=_[@3 0]&] +[s2; The sorting predicate. This method should return [* true] when +its first argument ([/ row1]) is less than the second argument +([/ row2]) according to the desired ordering.&] +[s7; [*C@3 row1]-|an array of source data index values for the first +of the rows to compare&] +[s7; [*C@3 row2]-|an array of source data index values for the other +row to compare&] +[s7; [*/ Return value]-|[* true] `= row1 < row2, [* false] `= row1 >`= row2&] +[s3; &] [s0; ]] \ No newline at end of file diff --git a/uppsrc/CtrlLib/src.tpp/BarCtrl$en-us.tpp b/uppsrc/CtrlLib/src.tpp/BarCtrl_en-us.tpp similarity index 97% rename from uppsrc/CtrlLib/src.tpp/BarCtrl$en-us.tpp rename to uppsrc/CtrlLib/src.tpp/BarCtrl_en-us.tpp index 841396c03..864b54734 100644 --- a/uppsrc/CtrlLib/src.tpp/BarCtrl$en-us.tpp +++ b/uppsrc/CtrlLib/src.tpp/BarCtrl_en-us.tpp @@ -1,92 +1,92 @@ -topic "BarCtrl"; -[2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,0#27521748481378242620020725143825:desc] -[0 $$3,0#96390100711032703541132217272105:end] -[H6;0 $$4,0#05600065144404261032431302351956:begin] -[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] -[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] -[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] -[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] -[b42;2 $$9,9#13035079074754324216151401829390:normal] -[{_} -[ {{10000t/25b/25@3 [s0; [*@(229)4 BarCtrl]]}}&] -[s3; &] -[s1;:BarCtrl`:`:class: [@(0.0.255)3 class][3 _][*3 BarCtrl][3 _:_][@(0.0.255)3 public][3 _][*@3;3 Ba -r][3 , ][@(0.0.255)3 public][3 _][*@3;3 CtrlFrame]&] -[s9;%% This class provides common methods for MenuBar and ToolBar. -Derived from Bar, it adds support for widget placement as [^topic`:`/`/CtrlCore`/srcdoc`/AboutFrames`$en`-us^ f -rame] and status help line.&] -[s3;%% &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0;%% [* Public Member List]]}}&] -[s3; &] -[s5;:BarCtrl`:`:WhenHelp: [_^Callback1^ Callback1][@(0.0.255) -]_[* WhenHelp]&] -[s2;%% This callback is called when SendHelpLine or ClearHelpLine -static methods request displaying the status help line. Thanks -to operator overload, this callback can be directly assigned -the StatusBar instance.&] -[s3;%% &] -[s4; &] -[s5;:BarCtrl`:`:WhenLeftClick: [_^Callback^ Callback]_[* WhenLeftClick]&] -[s2;%% Called when user clicks on bar area.&] -[s3;%% &] -[s4; &] -[s5;:BarCtrl`:`:GetBarCtrlParent`(Ctrl`*`): [@(0.0.255) static] [_^BarCtrl^ BarCtrl]_`*[* G -etBarCtrlParent]([_^Ctrl^ Ctrl]_`*[*@3 child])&] -[s2;%% Returns the first parent of BarCtrl type for [%-*@3 child].&] -[s3;%% &] -[s4; &] -[s5;:BarCtrl`:`:SendHelpLine`(Ctrl`*`): [@(0.0.255) static] [@(0.0.255) void]_[* SendHelpLi -ne]([_^Ctrl^ Ctrl]_`*[*@3 q])&] -[s2;%% If [%-*@3 q] has help line defined (using Ctrl`::HelpLine method), -sends it to the CtrlBar obtained by calling GetBarCtrlParent -(if any) WhenHelp callback.&] -[s3;%% &] -[s4; &] -[s5;:BarCtrl`:`:ClearHelpLine`(Ctrl`*`): [@(0.0.255) static] [@(0.0.255) void]_[* ClearHelp -Line]([_^Ctrl^ Ctrl]_`*[*@3 q])&] -[s2;%% Sends empty String to the CtrlBar obtained by calling GetBarCtrlParent -(if any) WhenHelp callback.&] -[s3;%% &] -[s4; &] -[s5;:BarCtrl`:`:Align`(int`): [_^BarCtrl^ BarCtrl][@(0.0.255) `&]_[* Align]([@(0.0.255) int]_ -[*@3 align])&] -[s2; [%% Sets the placement of bar when used as frame, ][*@3 align][%% -can be one of BarCtrl`::][* BAR`_BOTTOM], [%% BarCtrl`::][* BAR`_TOP], -[%% BarCtrl`::][* BAR`_RIGHT], [%% BarCtrl`::][* BAR`_LEFT]. Default value -is BAR`_TOP.&] -[s3;%% &] -[s4; &] -[s5;:BarCtrl`:`:Top`(`): [_^BarCtrl^ BarCtrl][@(0.0.255) `&]_[* Top]()&] -[s2;%% Same as Align(BAR`_TOP).&] -[s3;%% &] -[s4; &] -[s5;:BarCtrl`:`:Bottom`(`): [_^BarCtrl^ BarCtrl][@(0.0.255) `&]_[* Bottom]()&] -[s2;%% Same as Align(BAR`_BOTTOM).&] -[s3;%% &] -[s4; &] -[s5;:BarCtrl`:`:Left`(`): [_^BarCtrl^ BarCtrl][@(0.0.255) `&]_[* Left]()&] -[s2;%% Same as Align(BAR`_LEFT).&] -[s3;%% &] -[s4; &] -[s5;:BarCtrl`:`:Right`(`): [_^BarCtrl^ BarCtrl][@(0.0.255) `&]_[* Right]()&] -[s2;%% Same as Align(BAR`_RIGHT).&] -[s3;%% &] -[s4; &] -[s5;:BarCtrl`:`:GetAlign`(`)const: [@(0.0.255) int]_[* GetAlign]()_[@(0.0.255) const]&] -[s2;%% Returns current Align setting.&] -[s3;%% &] -[s4; &] -[s5;:BarCtrl`:`:Wrap`(int`): [_^BarCtrl^ BarCtrl][@(0.0.255) `&]_[* Wrap]([@(0.0.255) int]_[*@3 q -]_`=_[@3 1])&] -[s2;%% Sets the line (or column for vertical bars) wrap mode. 1 `- -wrap mode is active, 0 `- wrap is active for frame BarCtrl, `-1 -`- wrap mode is not active. Default is 0 (active in frame).&] -[s3;%% &] -[s4; &] -[s5;:BarCtrl`:`:NoWrap`(`): [_^BarCtrl^ BarCtrl][@(0.0.255) `&]_[* NoWrap]()&] -[s2;%% Same as Wrap(`-1).&] -[s3;%% &] +topic "BarCtrl"; +[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,0#27521748481378242620020725143825:desc] +[0 $$3,0#96390100711032703541132217272105:end] +[H6;0 $$4,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] +[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] +[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] +[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] +[b42;2 $$9,9#13035079074754324216151401829390:normal] +[{_} +[ {{10000t/25b/25@3 [s0; [*@(229)4 BarCtrl]]}}&] +[s3; &] +[s1;:BarCtrl`:`:class: [@(0.0.255)3 class][3 _][*3 BarCtrl][3 _:_][@(0.0.255)3 public][3 _][*@3;3 Ba +r][3 , ][@(0.0.255)3 public][3 _][*@3;3 CtrlFrame]&] +[s9;%% This class provides common methods for MenuBar and ToolBar. +Derived from Bar, it adds support for widget placement as [^topic`:`/`/CtrlCore`/srcdoc`/AboutFrames`$en`-us^ f +rame] and status help line.&] +[s3;%% &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0;%% [* Public Member List]]}}&] +[s3; &] +[s5;:BarCtrl`:`:WhenHelp: [_^Callback1^ Callback1][@(0.0.255) +]_[* WhenHelp]&] +[s2;%% This callback is called when SendHelpLine or ClearHelpLine +static methods request displaying the status help line. Thanks +to operator overload, this callback can be directly assigned +the StatusBar instance.&] +[s3;%% &] +[s4; &] +[s5;:BarCtrl`:`:WhenLeftClick: [_^Callback^ Callback]_[* WhenLeftClick]&] +[s2;%% Called when user clicks on bar area.&] +[s3;%% &] +[s4; &] +[s5;:BarCtrl`:`:GetBarCtrlParent`(Ctrl`*`): [@(0.0.255) static] [_^BarCtrl^ BarCtrl]_`*[* G +etBarCtrlParent]([_^Ctrl^ Ctrl]_`*[*@3 child])&] +[s2;%% Returns the first parent of BarCtrl type for [%-*@3 child].&] +[s3;%% &] +[s4; &] +[s5;:BarCtrl`:`:SendHelpLine`(Ctrl`*`): [@(0.0.255) static] [@(0.0.255) void]_[* SendHelpLi +ne]([_^Ctrl^ Ctrl]_`*[*@3 q])&] +[s2;%% If [%-*@3 q] has help line defined (using Ctrl`::HelpLine method), +sends it to the CtrlBar obtained by calling GetBarCtrlParent +(if any) WhenHelp callback.&] +[s3;%% &] +[s4; &] +[s5;:BarCtrl`:`:ClearHelpLine`(Ctrl`*`): [@(0.0.255) static] [@(0.0.255) void]_[* ClearHelp +Line]([_^Ctrl^ Ctrl]_`*[*@3 q])&] +[s2;%% Sends empty String to the CtrlBar obtained by calling GetBarCtrlParent +(if any) WhenHelp callback.&] +[s3;%% &] +[s4; &] +[s5;:BarCtrl`:`:Align`(int`): [_^BarCtrl^ BarCtrl][@(0.0.255) `&]_[* Align]([@(0.0.255) int]_ +[*@3 align])&] +[s2; [%% Sets the placement of bar when used as frame, ][*@3 align][%% +can be one of BarCtrl`::][* BAR`_BOTTOM], [%% BarCtrl`::][* BAR`_TOP], +[%% BarCtrl`::][* BAR`_RIGHT], [%% BarCtrl`::][* BAR`_LEFT]. Default value +is BAR`_TOP.&] +[s3;%% &] +[s4; &] +[s5;:BarCtrl`:`:Top`(`): [_^BarCtrl^ BarCtrl][@(0.0.255) `&]_[* Top]()&] +[s2;%% Same as Align(BAR`_TOP).&] +[s3;%% &] +[s4; &] +[s5;:BarCtrl`:`:Bottom`(`): [_^BarCtrl^ BarCtrl][@(0.0.255) `&]_[* Bottom]()&] +[s2;%% Same as Align(BAR`_BOTTOM).&] +[s3;%% &] +[s4; &] +[s5;:BarCtrl`:`:Left`(`): [_^BarCtrl^ BarCtrl][@(0.0.255) `&]_[* Left]()&] +[s2;%% Same as Align(BAR`_LEFT).&] +[s3;%% &] +[s4; &] +[s5;:BarCtrl`:`:Right`(`): [_^BarCtrl^ BarCtrl][@(0.0.255) `&]_[* Right]()&] +[s2;%% Same as Align(BAR`_RIGHT).&] +[s3;%% &] +[s4; &] +[s5;:BarCtrl`:`:GetAlign`(`)const: [@(0.0.255) int]_[* GetAlign]()_[@(0.0.255) const]&] +[s2;%% Returns current Align setting.&] +[s3;%% &] +[s4; &] +[s5;:BarCtrl`:`:Wrap`(int`): [_^BarCtrl^ BarCtrl][@(0.0.255) `&]_[* Wrap]([@(0.0.255) int]_[*@3 q +]_`=_[@3 1])&] +[s2;%% Sets the line (or column for vertical bars) wrap mode. 1 `- +wrap mode is active, 0 `- wrap is active for frame BarCtrl, `-1 +`- wrap mode is not active. Default is 0 (active in frame).&] +[s3;%% &] +[s4; &] +[s5;:BarCtrl`:`:NoWrap`(`): [_^BarCtrl^ BarCtrl][@(0.0.255) `&]_[* NoWrap]()&] +[s2;%% Same as Wrap(`-1).&] +[s3;%% &] [s0; ] \ No newline at end of file diff --git a/uppsrc/CtrlLib/src.tpp/Bar$en-us.tpp b/uppsrc/CtrlLib/src.tpp/Bar_en-us.tpp similarity index 98% rename from uppsrc/CtrlLib/src.tpp/Bar$en-us.tpp rename to uppsrc/CtrlLib/src.tpp/Bar_en-us.tpp index e9103f916..8cc574112 100644 --- a/uppsrc/CtrlLib/src.tpp/Bar$en-us.tpp +++ b/uppsrc/CtrlLib/src.tpp/Bar_en-us.tpp @@ -1,364 +1,364 @@ -topic "Bar"; -[2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,0#27521748481378242620020725143825:desc] -[0 $$3,0#96390100711032703541132217272105:end] -[H6;0 $$4,0#05600065144404261032431302351956:begin] -[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] -[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] -[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] -[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] -[b42;2 $$9,9#13035079074754324216151401829390:normal] -[{_}%EN-US -[ {{10000t/25b/25@3 [s0;%- [*@(229)4 Bar]]}}&] -[s3;%- &] -[s1;:Bar`:`:class:%- [@(0.0.255)3 class][3 _][*3 Bar][3 _:_][@(0.0.255)3 public][3 _][*@3;3 Ctrl]&] -[s9; The abstract base class for MenuBar and ToolBar, also providing -means to read keyboard accelerator keys from the Bar routines.&] -[s9; &] -[s0; [/ Derived from] [^topic`:`/`/CtrlCore`/src`/Ctrl`$en`-us`#`:`:Ctrl`:`:class Ctrl^ C -trl]&] -[s3; &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] -[s3;%- &] -[s5;:Bar`:`:IsEmpty`(`)const:%- [@(0.0.255) virtual] [@(0.0.255) bool]_[* IsEmpty]()_[@(0.0.255) c -onst]_`=_[@3 0]&] -[s2; Returns true if Bar is empty.&] -[s3; &] -[s4;%- &] -[s5;:Bar`:`:Separator`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Separator]()_`=_[@3 0]&] -[s2; Adds a visual separator to the Bar.&] -[s3; &] -[s4;%- &] -[s5;:Bar`:`:NilItem`(`):%- [@(0.0.255) static] [_^Bar`:`:Item^ Item][@(0.0.255) `&]_[* NilIte -m]()&] -[s2; Returns a reference to dummy item `- all method calls on this -item are ignored.&] -[s3; &] -[s4;%- &] -[s5;:Bar`:`:Scan`(Callback1``,dword`):%- [@(0.0.255) static] -[@(0.0.255) bool]_[* Scan]([_^Callback1^ Callback1][@(0.0.255) <]Bar[@(0.0.255) `&>]_[*@3 pro -c], [_^dword^ dword]_[*@3 key])&] -[s2; Scans bar routines hierarchy testing for[* ][%-*@3 key] accelerator. -If any Item has this accelerator, associated action Callback -of item is invoked and method returns true.&] -[s3; &] -[s4;%- &] -[s5;:Bar`:`:Break`(`):%- [@(0.0.255) void]_[* Break]()&] -[s2; This method breaks current bar line (or column) and starts a -new one.&] -[s3; &] -[s4;%- &] -[s5;:Bar`:`:Gap`(int`):%- [@(0.0.255) void]_[* Gap]([@(0.0.255) int]_[*@3 size]_`=_[@3 8])&] -[s2; Adds a visual gap of [%-*@3 size] pixels to the Bar.&] -[s3; &] -[s4;%- &] -[s5;:Bar`:`:GapRight`(`):%- [@(0.0.255) void]_[* GapRight]()&] -[s2; Adds a gap that aligns the rest of items of the Bar line to -the right size.&] -[s3; &] -[s4;%- &] -[s5;:Bar`:`:Add`(Ctrl`&`):%- [@(0.0.255) void]_[* Add]([_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 ctrl]) -&] -[s5;:Bar`:`:Add`(Ctrl`&`,Size`):%- [@(0.0.255) void]_[* Add]([_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 c -trl], [_^Size^ Size]_[*@3 sz])&] -[s5;:Bar`:`:Add`(Ctrl`&`,int`,int`):%- [@(0.0.255) void]_[* Add]([_^Ctrl^ Ctrl][@(0.0.255) `& -]_[*@3 ctrl], [@(0.0.255) int]_[*@3 cx], [@(0.0.255) int]_[*@3 cy]_`=_[@3 0])&] -[s5;:Bar`:`:Add`(bool`,Ctrl`&`):%- [@(0.0.255) void]_[* Add]([@(0.0.255) bool]_[*@3 en], -[_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 ctrl])&] -[s5;:Bar`:`:Add`(bool`,Ctrl`&`,Size`):%- [@(0.0.255) void]_[* Add]([@(0.0.255) bool]_[*@3 en], - [_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 ctrl], [_^Size^ Size]_[*@3 sz])&] -[s5;:Bar`:`:Add`(bool`,Ctrl`&`,int`,int`):%- [@(0.0.255) void]_[* Add]([@(0.0.255) bool]_[*@3 e -n], [_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 ctrl], [@(0.0.255) int]_[*@3 cx], -[@(0.0.255) int]_[*@3 cy]_`=_[@3 0])&] -[s2; Adds a [%-*@3 ctrl] widget to the bar.&] -[s2; &] -[s2; If the [%-*@3 ctrl] has defined horizontal/vertical logical position -using LeftPos/TopPos, the non`-zero size of logical position -is used to define the size of widget in the Bar. (in other words, -you can set the size by calling SetRect(0, 0, width, height).&] -[s2; &] -[s2; If either horizontal or vertical size of logical position is -empty, non`-zero [%-*@3 cx] [%-*@3 cy] method parameters are used.&] -[s2; &] -[s2; If even any of them is zero (or not present in method declaration), -GetMinSize() for [%-*@3 ctrl] is used. Enable([%-*@3 en]) is called -for the widget to enable or disable it.&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:Bar`:`:Add`(bool`,const char`*`,const Upp`:`:Image`&`,const Upp`:`:Callback`&`):%- [_^Upp`:`:Bar`:`:Item^ I -tem][@(0.0.255) `&]_[* Add]([@(0.0.255) bool]_[*@3 enable], [@(0.0.255) const]_[@(0.0.255) ch -ar]_`*[*@3 text], [@(0.0.255) const]_[_^Upp`:`:Image^ Upp`::Image][@(0.0.255) `&]_[*@3 image -], [@(0.0.255) const]_[_^Upp`:`:Callback^ Callback][@(0.0.255) `&]_[*@3 callback])&] -[s5;:Upp`:`:Bar`:`:Add`(bool`,Upp`:`:KeyInfo`&`(`*`)`(`)`,const Upp`:`:Image`&`,const Upp`:`:Callback`&`):%- [_^Upp`:`:Bar`:`:Item^ I -tem][@(0.0.255) `&]_[* Add]([@(0.0.255) bool]_[*@3 enable], [_^Upp`:`:KeyInfo^ KeyInfo][@(0.0.255) `& -]_(`*[*@3 key])(), [@(0.0.255) const]_Upp`::Image[@(0.0.255) `&]_[*@3 image], -[@(0.0.255) const]_Callback[@(0.0.255) `&]_[*@3 callback])&] -[s5;:Upp`:`:Bar`:`:Add`(const char`*`,const Upp`:`:Image`&`,const Upp`:`:Callback`&`):%- [_^Upp`:`:Bar`:`:Item^ I -tem][@(0.0.255) `&]_[* Add]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text], -[@(0.0.255) const]_[_^Upp`:`:Image^ Upp`::Image][@(0.0.255) `&]_[*@3 image], -[@(0.0.255) const]_[_^Upp`:`:Callback^ Callback][@(0.0.255) `&]_[*@3 callback])&] -[s5;:Upp`:`:Bar`:`:Add`(Upp`:`:KeyInfo`&`(`*`)`(`)`,const Upp`:`:Image`&`,const Upp`:`:Callback`&`):%- [_^Upp`:`:Bar`:`:Item^ I -tem][@(0.0.255) `&]_[* Add]([_^Upp`:`:KeyInfo^ KeyInfo][@(0.0.255) `&]_(`*[*@3 key])(), -[@(0.0.255) const]_Upp`::Image[@(0.0.255) `&]_[*@3 image], [@(0.0.255) const]_Callback[@(0.0.255) `& -]_[*@3 callback])&] -[s5;:Upp`:`:Bar`:`:Add`(bool`,const char`*`,const Upp`:`:Callback`&`):%- [_^Upp`:`:Bar`:`:Item^ I -tem][@(0.0.255) `&]_[* Add]([@(0.0.255) bool]_[*@3 enable], [@(0.0.255) const]_[@(0.0.255) ch -ar]_`*[*@3 text], [@(0.0.255) const]_[_^Upp`:`:Callback^ Callback][@(0.0.255) `&]_[*@3 call -back])&] -[s5;:Upp`:`:Bar`:`:Add`(bool`,Upp`:`:KeyInfo`&`(`*`)`(`)`,const Upp`:`:Callback`&`):%- [_^Upp`:`:Bar`:`:Item^ I -tem][@(0.0.255) `&]_[* Add]([@(0.0.255) bool]_[*@3 enable], [_^Upp`:`:KeyInfo^ KeyInfo][@(0.0.255) `& -]_(`*[*@3 key])(), [@(0.0.255) const]_Callback[@(0.0.255) `&]_[*@3 callback])&] -[s5;:Upp`:`:Bar`:`:Add`(const char`*`,const Upp`:`:Callback`&`):%- [_^Upp`:`:Bar`:`:Item^ I -tem][@(0.0.255) `&]_[* Add]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text], -[@(0.0.255) const]_[_^Upp`:`:Callback^ Callback][@(0.0.255) `&]_[*@3 callback])&] -[s5;:Upp`:`:Bar`:`:Add`(Upp`:`:KeyInfo`&`(`*`)`(`)`,const Upp`:`:Callback`&`):%- [_^Upp`:`:Bar`:`:Item^ I -tem][@(0.0.255) `&]_[* Add]([_^Upp`:`:KeyInfo^ KeyInfo][@(0.0.255) `&]_(`*[*@3 key])(), -[@(0.0.255) const]_Callback[@(0.0.255) `&]_[*@3 callback])&] -[s5;:Upp`:`:Bar`:`:Add`(bool`,const char`*`,const Upp`:`:Image`&`,const Upp`:`:Function``&`):%- [_^Upp`:`:Bar`:`:Item^ I -tem][@(0.0.255) `&]_[* Add]([@(0.0.255) bool]_[*@3 enable], [@(0.0.255) const]_[@(0.0.255) ch -ar]_`*[*@3 text], [@(0.0.255) const]_[_^Upp`:`:Image^ Upp`::Image][@(0.0.255) `&]_[*@3 image -], [@(0.0.255) const]_[_^Upp`:`:Function^ Function]<[@(0.0.255) void]_()>`&_[*@3 fn])&] -[s5;:Upp`:`:Bar`:`:Add`(bool`,Upp`:`:KeyInfo`&`(`*`)`(`)`,const Upp`:`:Image`&`,const Upp`:`:Function``&`):%- [_^Upp`:`:Bar`:`:Item^ I -tem][@(0.0.255) `&]_[* Add]([@(0.0.255) bool]_[*@3 enable], [_^Upp`:`:KeyInfo^ KeyInfo][@(0.0.255) `& -]_(`*[*@3 key])(), [@(0.0.255) const]_Upp`::Image[@(0.0.255) `&]_[*@3 image], -[@(0.0.255) const]_Function<[@(0.0.255) void]_()>`&_[*@3 fn])&] -[s5;:Upp`:`:Bar`:`:Add`(const char`*`,const Upp`:`:Image`&`,const Upp`:`:Function``&`):%- [_^Upp`:`:Bar`:`:Item^ I -tem][@(0.0.255) `&]_[* Add]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text], -[@(0.0.255) const]_[_^Upp`:`:Image^ Upp`::Image][@(0.0.255) `&]_[*@3 image], -[@(0.0.255) const]_[_^Upp`:`:Function^ Function]<[@(0.0.255) void]_()>`&_[*@3 fn])&] -[s5;:Upp`:`:Bar`:`:Add`(Upp`:`:KeyInfo`&`(`*`)`(`)`,const Upp`:`:Image`&`,const Upp`:`:Function``&`):%- [_^Upp`:`:Bar`:`:Item^ I -tem][@(0.0.255) `&]_[* Add]([_^Upp`:`:KeyInfo^ KeyInfo][@(0.0.255) `&]_(`*[*@3 key])(), -[@(0.0.255) const]_Upp`::Image[@(0.0.255) `&]_[*@3 image], [@(0.0.255) const]_Function<[@(0.0.255) v -oid]_()>`&_[*@3 fn])&] -[s5;:Upp`:`:Bar`:`:Add`(bool`,const char`*`,const Upp`:`:Function``&`):%- [_^Upp`:`:Bar`:`:Item^ I -tem][@(0.0.255) `&]_[* Add]([@(0.0.255) bool]_[*@3 enable], [@(0.0.255) const]_[@(0.0.255) ch -ar]_`*[*@3 text], [@(0.0.255) const]_[_^Upp`:`:Function^ Function]<[@(0.0.255) void]_()>`& -_[*@3 fn])&] -[s5;:Upp`:`:Bar`:`:Add`(bool`,Upp`:`:KeyInfo`&`(`*`)`(`)`,const Upp`:`:Function``&`):%- [_^Upp`:`:Bar`:`:Item^ I -tem][@(0.0.255) `&]_[* Add]([@(0.0.255) bool]_[*@3 enable], [_^Upp`:`:KeyInfo^ KeyInfo][@(0.0.255) `& -]_(`*[*@3 key])(), [@(0.0.255) const]_Function<[@(0.0.255) void]_()>`&_[*@3 fn])&] -[s5;:Upp`:`:Bar`:`:Add`(const char`*`,const Upp`:`:Function``&`):%- [_^Upp`:`:Bar`:`:Item^ I -tem][@(0.0.255) `&]_[* Add]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text], -[@(0.0.255) const]_[_^Upp`:`:Function^ Function]<[@(0.0.255) void]_()>`&_[*@3 fn])&] -[s5;:Upp`:`:Bar`:`:Add`(Upp`:`:KeyInfo`&`(`*`)`(`)`,const Upp`:`:Function``&`):%- [_^Upp`:`:Bar`:`:Item^ I -tem][@(0.0.255) `&]_[* Add]([_^Upp`:`:KeyInfo^ KeyInfo][@(0.0.255) `&]_(`*[*@3 key])(), -[@(0.0.255) const]_Function<[@(0.0.255) void]_()>`&_[*@3 fn])&] -[s2; Adds an item to menu or toolbar. If [%-*@3 text] is present, item -is added to menu; if [%-*@3 image] is present, it is added to toolbar. -If both are present, [%-*@3 image] is used as icon in menu too -and [%-*@3 text] is used as toolbar button tooltip. When menu item -is selected or toolbar button pushed, [%-*@3 callback] or [%-*@3 fn] -is invoked. [%-*@3 enable] sets the item status and [%-*@3 key] is -an accelerator key or adjustable accelerator info. All variants -return a reference to Item which can be used to further adjust -the item.&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:Bar`:`:Add`(bool`,const char`*`,const Upp`:`:Event``&`):%- [_^Upp`:`:Bar`:`:Item^ I -tem][@(0.0.255) `&]_[* Add]([@(0.0.255) bool]_[*@3 enable], [@(0.0.255) const]_[@(0.0.255) ch -ar]_`*[*@3 text], [@(0.0.255) const]_[_^Upp`:`:Event^ Event]`&_[*@3 pro -c])&] -[s5;:Upp`:`:Bar`:`:Add`(const char`*`,const Upp`:`:Event``&`):%- [_^Upp`:`:Bar`:`:Item^ I -tem][@(0.0.255) `&]_[* Add]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text], -[@(0.0.255) const]_[_^Upp`:`:Event^ Event]`&_[*@3 proc])&] -[s5;:Upp`:`:Bar`:`:Add`(bool`,const char`*`,const Upp`:`:Image`&`,const Upp`:`:Event``&`):%- [_^Upp`:`:Bar`:`:Item^ I -tem][@(0.0.255) `&]_[* Add]([@(0.0.255) bool]_[*@3 enable], [@(0.0.255) const]_[@(0.0.255) ch -ar]_`*[*@3 text], [@(0.0.255) const]_[_^Upp`:`:Image^ Upp`::Image][@(0.0.255) `&]_[*@3 image -], [@(0.0.255) const]_[_^Upp`:`:Event^ Event]`&_[*@3 proc])&] -[s5;:Upp`:`:Bar`:`:Add`(const char`*`,const Upp`:`:Image`&`,const Upp`:`:Event``&`):%- [_^Upp`:`:Bar`:`:Item^ I -tem][@(0.0.255) `&]_[* Add]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text], -[@(0.0.255) const]_[_^Upp`:`:Image^ Upp`::Image][@(0.0.255) `&]_[*@3 image], -[@(0.0.255) const]_[_^Upp`:`:Event^ Event]`&_[*@3 proc])&] -[s5;:Upp`:`:Bar`:`:Sub`(bool`,const char`*`,const Upp`:`:Function``&`):%- [_^Upp`:`:Bar`:`:Item^ I -tem][@(0.0.255) `&]_[* Sub]([@(0.0.255) bool]_[*@3 enable], [@(0.0.255) const]_[@(0.0.255) ch -ar]_`*[*@3 text], [@(0.0.255) const]_[_^Upp`:`:Function^ Function]<[@(0.0.255) void]_(Bar -[@(0.0.255) `&])>`&_[*@3 submenu])&] -[s5;:Upp`:`:Bar`:`:Sub`(const char`*`,const Upp`:`:Function``&`):%- [_^Upp`:`:Bar`:`:Item^ I -tem][@(0.0.255) `&]_[* Sub]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text], -[@(0.0.255) const]_[_^Upp`:`:Function^ Function]<[@(0.0.255) void]_(Bar[@(0.0.255) `&])>`& -_[*@3 submenu])&] -[s5;:Upp`:`:Bar`:`:Sub`(bool`,const char`*`,const Upp`:`:Image`&`,const Upp`:`:Function``&`):%- [_^Upp`:`:Bar`:`:Item^ I -tem][@(0.0.255) `&]_[* Sub]([@(0.0.255) bool]_[*@3 enable], [@(0.0.255) const]_[@(0.0.255) ch -ar]_`*[*@3 text], [@(0.0.255) const]_[_^Upp`:`:Image^ Upp`::Image][@(0.0.255) `&]_[*@3 image -], [@(0.0.255) const]_[_^Upp`:`:Function^ Function]<[@(0.0.255) void]_(Bar[@(0.0.255) `&]) ->`&_[*@3 submenu])&] -[s5;:Upp`:`:Bar`:`:Sub`(const char`*`,const Upp`:`:Image`&`,const Upp`:`:Function``&`):%- [_^Upp`:`:Bar`:`:Item^ I -tem][@(0.0.255) `&]_[* Sub]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text], -[@(0.0.255) const]_[_^Upp`:`:Image^ Upp`::Image][@(0.0.255) `&]_[*@3 image], -[@(0.0.255) const]_[_^Upp`:`:Function^ Function]<[@(0.0.255) void]_(Bar[@(0.0.255) `&])>`& -_[*@3 submenu])&] -[s2; Adds a submenu. For toolbar, simply adds all items of [%-*@3 submenu]. -[%-*@3 enable] sets the item status. Note that lambda variants -(with Function) have to be named differently because of overloading -issues.&] -[s3; &] -[s4;%- &] -[s5;:Bar`:`:MenuSeparator`(`):%- [@(0.0.255) void]_[* MenuSeparator]()&] -[s5;:Bar`:`:MenuBreak`(`):%- [@(0.0.255) void]_[* MenuBreak]()&] -[s5;:Bar`:`:MenuGap`(int`):%- [@(0.0.255) void]_[* MenuGap]([@(0.0.255) int]_[*@3 size]_`=_[@3 8 -])&] -[s5;:Bar`:`:MenuGapRight`(`):%- [@(0.0.255) void]_[* MenuGapRight]()&] -[s5;:Bar`:`:AddMenu`(Ctrl`&`):%- [@(0.0.255) void]_[* AddMenu]([_^Ctrl^ Ctrl][@(0.0.255) `&]_ -[*@3 ctrl])&] -[s5;:Bar`:`:AddMenu`(Ctrl`&`,Size`):%- [@(0.0.255) void]_[* AddMenu]([_^Ctrl^ Ctrl][@(0.0.255) `& -]_[*@3 ctrl], [_^Size^ Size]_[*@3 sz])&] -[s5;:Bar`:`:AddMenu`(Ctrl`&`,int`,int`):%- [@(0.0.255) void]_[* AddMenu]([_^Ctrl^ Ctrl][@(0.0.255) `& -]_[*@3 ctrl], [@(0.0.255) int]_[*@3 cx], [@(0.0.255) int]_[*@3 cy]_`=_[@3 0])&] -[s5;:Upp`:`:Bar`:`:AddMenu`(bool`,const char`*`,const Upp`:`:Image`&`,const Upp`:`:Callback`&`):%- [_^Upp`:`:Bar`:`:Item^ I -tem][@(0.0.255) `&]_[* AddMenu]([@(0.0.255) bool]_[*@3 enable], [@(0.0.255) const]_[@(0.0.255) c -har]_`*[*@3 text], [@(0.0.255) const]_[_^Upp`:`:Image^ Upp`::Image][@(0.0.255) `&]_[*@3 imag -e], [@(0.0.255) const]_[_^Upp`:`:Callback^ Callback][@(0.0.255) `&]_[*@3 callback])&] -[s5;:Upp`:`:Bar`:`:AddMenu`(bool`,Upp`:`:KeyInfo`&`(`*`)`(`)`,const Upp`:`:Image`&`,const Upp`:`:Callback`&`):%- [_^Upp`:`:Bar`:`:Item^ I -tem][@(0.0.255) `&]_[* AddMenu]([@(0.0.255) bool]_[*@3 enable], [_^Upp`:`:KeyInfo^ KeyInfo][@(0.0.255) `& -]_(`*[*@3 key])(), [@(0.0.255) const]_Upp`::Image[@(0.0.255) `&]_[*@3 image], -[@(0.0.255) const]_Callback[@(0.0.255) `&]_[*@3 callback])&] -[s5;:Upp`:`:Bar`:`:AddMenu`(const char`*`,const Upp`:`:Image`&`,const Upp`:`:Callback`&`):%- [_^Upp`:`:Bar`:`:Item^ I -tem][@(0.0.255) `&]_[* AddMenu]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text], -[@(0.0.255) const]_[_^Upp`:`:Image^ Upp`::Image][@(0.0.255) `&]_[*@3 image], -[@(0.0.255) const]_[_^Upp`:`:Callback^ Callback][@(0.0.255) `&]_[*@3 callback])&] -[s5;:Upp`:`:Bar`:`:AddMenu`(const Upp`:`:String`&`,const Upp`:`:Image`&`,const Upp`:`:Callback`&`):%- [_^Upp`:`:Bar`:`:Item^ I -tem][@(0.0.255) `&]_[* AddMenu]([@(0.0.255) const]_[_^Upp`:`:String^ String][@(0.0.255) `&]_ -[*@3 t], [@(0.0.255) const]_[_^Upp`:`:Image^ Upp`::Image][@(0.0.255) `&]_[*@3 m], -[@(0.0.255) const]_[_^Upp`:`:Callback^ Callback][@(0.0.255) `&]_[*@3 c])&] -[s5;:Upp`:`:Bar`:`:AddMenu`(Upp`:`:KeyInfo`&`(`*`)`(`)`,const Upp`:`:Image`&`,const Upp`:`:Callback`&`):%- [_^Upp`:`:Bar`:`:Item^ I -tem][@(0.0.255) `&]_[* AddMenu]([_^Upp`:`:KeyInfo^ KeyInfo][@(0.0.255) `&]_(`*[*@3 key])(), - [@(0.0.255) const]_Upp`::Image[@(0.0.255) `&]_[*@3 m], [@(0.0.255) const]_Callback[@(0.0.255) `& -]_[*@3 c])&] -[s5;:Upp`:`:Bar`:`:AddMenu`(bool`,const char`*`,const Upp`:`:Image`&`,const Upp`:`:Function``&`):%- [_^Upp`:`:Bar`:`:Item^ I -tem][@(0.0.255) `&]_[* AddMenu]([@(0.0.255) bool]_[*@3 enable], [@(0.0.255) const]_[@(0.0.255) c -har]_`*[*@3 text], [@(0.0.255) const]_[_^Upp`:`:Image^ Upp`::Image][@(0.0.255) `&]_[*@3 imag -e], [@(0.0.255) const]_[_^Upp`:`:Function^ Function]<[@(0.0.255) void]_()>`&_[*@3 fn])&] -[s5;:Upp`:`:Bar`:`:AddMenu`(bool`,Upp`:`:KeyInfo`&`(`*`)`(`)`,const Upp`:`:Image`&`,const Upp`:`:Function``&`):%- [_^Upp`:`:Bar`:`:Item^ I -tem][@(0.0.255) `&]_[* AddMenu]([@(0.0.255) bool]_[*@3 enable], [_^Upp`:`:KeyInfo^ KeyInfo][@(0.0.255) `& -]_(`*[*@3 key])(), [@(0.0.255) const]_Upp`::Image[@(0.0.255) `&]_[*@3 image], -[@(0.0.255) const]_Function<[@(0.0.255) void]_()>`&_[*@3 fn])&] -[s5;:Upp`:`:Bar`:`:AddMenu`(const char`*`,const Upp`:`:Image`&`,const Upp`:`:Function``&`):%- [_^Upp`:`:Bar`:`:Item^ I -tem][@(0.0.255) `&]_[* AddMenu]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text], -[@(0.0.255) const]_[_^Upp`:`:Image^ Upp`::Image][@(0.0.255) `&]_[*@3 image], -[@(0.0.255) const]_[_^Upp`:`:Function^ Function]<[@(0.0.255) void]_()>`&_[*@3 fn])&] -[s5;:Upp`:`:Bar`:`:AddMenu`(const Upp`:`:String`&`,const Upp`:`:Image`&`,const Upp`:`:Function``&`):%- [_^Upp`:`:Bar`:`:Item^ I -tem][@(0.0.255) `&]_[* AddMenu]([@(0.0.255) const]_[_^Upp`:`:String^ String][@(0.0.255) `&]_ -[*@3 t], [@(0.0.255) const]_[_^Upp`:`:Image^ Upp`::Image][@(0.0.255) `&]_[*@3 m], -[@(0.0.255) const]_[_^Upp`:`:Function^ Function]<[@(0.0.255) void]_()>`&_[*@3 fn])&] -[s5;:Upp`:`:Bar`:`:AddMenu`(Upp`:`:KeyInfo`&`(`*`)`(`)`,const Upp`:`:Image`&`,const Upp`:`:Function``&`):%- [_^Upp`:`:Bar`:`:Item^ I -tem][@(0.0.255) `&]_[* AddMenu]([_^Upp`:`:KeyInfo^ KeyInfo][@(0.0.255) `&]_(`*[*@3 key])(), - [@(0.0.255) const]_Upp`::Image[@(0.0.255) `&]_[*@3 m], [@(0.0.255) const]_Function<[@(0.0.255) v -oid]_()>`&_[*@3 fn])&] -[s2; These methods are equivalents to methods without [* Menu][*/ ]in -the name, but perform respective operations only if Bar is menu.&] -[s3; &] -[s4;%- &] -[s5;:Bar`:`:ToolSeparator`(`):%- [@(0.0.255) void]_[* ToolSeparator]()&] -[s5;:Bar`:`:ToolBreak`(`):%- [@(0.0.255) void]_[* ToolBreak]()&] -[s5;:Bar`:`:ToolGap`(int`):%- [@(0.0.255) void]_[* ToolGap]([@(0.0.255) int]_[*@3 size]_`=_[@3 8 -])&] -[s5;:Bar`:`:ToolGapRight`(`):%- [@(0.0.255) void]_[* ToolGapRight]()&] -[s5;:Bar`:`:AddTool`(Ctrl`&`):%- [@(0.0.255) void]_[* AddTool]([_^Ctrl^ Ctrl][@(0.0.255) `&]_ -[*@3 ctrl])&] -[s5;:Bar`:`:AddTool`(Ctrl`&`,Size`):%- [@(0.0.255) void]_[* AddTool]([_^Ctrl^ Ctrl][@(0.0.255) `& -]_[*@3 ctrl], [_^Size^ Size]_[*@3 sz])&] -[s5;:Bar`:`:AddTool`(Ctrl`&`,int`,int`):%- [@(0.0.255) void]_[* AddTool]([_^Ctrl^ Ctrl][@(0.0.255) `& -]_[*@3 ctrl], [@(0.0.255) int]_[*@3 cx], [@(0.0.255) int]_[*@3 cy]_`=_[@3 0])&] -[s2; These methods are equivalents to methods without [* Tool][*/ ]in -the name, but perform respective operations only if Bar is toolbar.&] -[s3; &] -[s4;%- &] -[s5;:Bar`:`:AddKey`(dword`,Callback`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* AddKey]( -[_^dword^ dword]_[*@3 key], [_^Callback^ Callback]_[*@3 cb])&] -[s5;:Bar`:`:AddKey`(KeyInfo`&`(`*`)`(`)`,Callback`):%- [@(0.0.255) void]_[* AddKey]([_^KeyInfo^ K -eyInfo][@(0.0.255) `&]_(`*[*@3 key])(), Callback_[*@3 cb])&] -[s2; These variants do not add items to neither menu or toolbar, -but do add accelerator keys.&] -[s3; &] -[s4;%- &] -[s5;:Bar`:`:IsMenuBar`(`)const:%- [@(0.0.255) virtual] [@(0.0.255) bool]_[* IsMenuBar]()_[@(0.0.255) c -onst]&] -[s2; Returns true if Bar is menubar.&] -[s3; &] -[s4;%- &] -[s5;:Bar`:`:IsToolBar`(`)const:%- [@(0.0.255) virtual] [@(0.0.255) bool]_[* IsToolBar]()_[@(0.0.255) c -onst]&] -[s2; Returns true if Bar is toolbar.&] -[s3; &] -[s4;%- &] -[s5;:Bar`:`:IsScanKeys`(`)const:%- [@(0.0.255) virtual] [@(0.0.255) bool]_[* IsScanKeys]()_ -[@(0.0.255) const]&] -[s2; Returns true if Bar is only scanning the accelerator keys.&] -[s3; &] -[s0; &] -[s0; &] -[s0;%- &] -[ {{10000@3 [s0; [*@(229)4 Bar`::Item]]}}&] -[s3; &] -[s1;:Bar`:`:Item`:`:struct:%- [@(0.0.255)3 struct][3 _][*3 Item]&] -[s9; This structure is used to describe additional properties of -individual bar items. Methods return `*this to allow chaining -of calls.&] -[s3; &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] -[s3; &] -[s5;:Bar`:`:Item`:`:Image`(const Image`&`):%- [_^Bar`:`:Item^ Bar`::Item][@(0.0.255) `&]_[* I -mage]([@(0.0.255) const]_[_^Image^ UPP`::Image][@(0.0.255) `&]_[*@3 img])&] -[s2; Sets the image used with the item.&] -[s3; &] -[s4;%- &] -[s5;:Bar`:`:Item`:`:Text`(const char`*`):%- [@(0.0.255) virtual] [_^Bar`:`:Item^ Item][@(0.0.255) `& -]_[* Text]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text])&] -[s5;:Upp`:`:Bar`:`:Item`:`:Text`(const Upp`:`:String`&`):%- [@(0.0.255) virtual] -[_^Upp`:`:Bar`:`:Item^ Item][@(0.0.255) `&]_[* Text]([@(0.0.255) const]_[_^Upp`:`:String^ S -tring][@(0.0.255) `&]_[*@3 text])&] -[s2; Sets the [%-*@3 text] of item.&] -[s3; &] -[s4;%- &] -[s5;:Bar`:`:Item`:`:Key`(dword`):%- [@(0.0.255) virtual] [_^Bar`:`:Item^ Item][@(0.0.255) `& -]_[* Key]([_^dword^ dword]_[*@3 key])&] -[s2; Sets the accelerator [%-*@3 key]. Items can have more than single -accelerator key (only the last one is displayed but all are active).&] -[s3; &] -[s4;%- &] -[s5;:Bar`:`:Item`:`:Repeat`(bool`):%- [@(0.0.255) virtual] [_^Bar`:`:Item^ Item][@(0.0.255) `& -]_[* Repeat]([@(0.0.255) bool]_[*@3 repeat]_`=_[@(0.0.255) true])&] -[s2; In repeat mode, action from ToolBar buttons is called repeatedly -when mouse is hold down over them.&] -[s3; &] -[s4;%- &] -[s5;:Bar`:`:Item`:`:Check`(bool`):%- [@(0.0.255) virtual] [_^Bar`:`:Item^ Item][@(0.0.255) `& -]_[* Check]([@(0.0.255) bool]_[*@3 check])&] -[s2; Makes the item `"checked`". Use with on/off option buttons or -menu items.&] -[s3; &] -[s4;%- &] -[s5;:Bar`:`:Item`:`:Radio`(bool`):%- [@(0.0.255) virtual] [_^Bar`:`:Item^ Item][@(0.0.255) `& -]_[* Radio]([@(0.0.255) bool]_[*@3 check])&] -[s2; Makes the item `"choosen`". Similar to check, with visual style -resembling Switch.&] -[s3; &] -[s4;%- &] -[s5;:Bar`:`:Item`:`:Enable`(bool`):%- [@(0.0.255) virtual] [_^Bar`:`:Item^ Item][@(0.0.255) `& -]_[* Enable]([@(0.0.255) bool]_[*@3 `_enable]_`=_[@(0.0.255) true])&] -[s2; Enables the item (default is enabled).&] -[s3; &] -[s4;%- &] -[s5;:Bar`:`:Item`:`:Bold`(bool`):%- [@(0.0.255) virtual] [_^Bar`:`:Item^ Item][@(0.0.255) `& -]_[* Bold]([@(0.0.255) bool]_[*@3 bold]_`=_[@(0.0.255) true])&] -[s2; Sets bold text to menu item [%-*@3 bold].&] -[s3; &] -[s4;%- &] -[s5;:Bar`:`:Item`:`:Tip`(const char`*`):%- [@(0.0.255) virtual] [_^Bar`:`:Item^ Item][@(0.0.255) `& -]_[* Tip]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 tip])&] -[s2; Adds a tooltip to the ToolBar item.&] -[s3; &] -[s4;%- &] -[s5;:Bar`:`:Item`:`:Help`(const char`*`):%- [@(0.0.255) virtual] [_^Bar`:`:Item^ Item][@(0.0.255) `& -]_[* Help]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 help])&] -[s2; Adds a [%-*@3 help] line to the the item.&] -[s3; &] -[s4;%- &] -[s5;:Bar`:`:Item`:`:Key`(KeyInfo`&`(`*`)`(`)`):%- [_^Bar`:`:Item^ Item][@(0.0.255) `&]_[* K -ey]([_^KeyInfo^ KeyInfo][@(0.0.255) `&]_(`*[*@3 key])())&] -[s2; Adds all keys from configurable accelerator info.&] -[s3; &] +topic "Bar"; +[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,0#27521748481378242620020725143825:desc] +[0 $$3,0#96390100711032703541132217272105:end] +[H6;0 $$4,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] +[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] +[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] +[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] +[b42;2 $$9,9#13035079074754324216151401829390:normal] +[{_}%EN-US +[ {{10000t/25b/25@3 [s0;%- [*@(229)4 Bar]]}}&] +[s3;%- &] +[s1;:Bar`:`:class:%- [@(0.0.255)3 class][3 _][*3 Bar][3 _:_][@(0.0.255)3 public][3 _][*@3;3 Ctrl]&] +[s9; The abstract base class for MenuBar and ToolBar, also providing +means to read keyboard accelerator keys from the Bar routines.&] +[s9; &] +[s0; [/ Derived from] [^topic`:`/`/CtrlCore`/src`/Ctrl`$en`-us`#`:`:Ctrl`:`:class Ctrl^ C +trl]&] +[s3; &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] +[s3;%- &] +[s5;:Bar`:`:IsEmpty`(`)const:%- [@(0.0.255) virtual] [@(0.0.255) bool]_[* IsEmpty]()_[@(0.0.255) c +onst]_`=_[@3 0]&] +[s2; Returns true if Bar is empty.&] +[s3; &] +[s4;%- &] +[s5;:Bar`:`:Separator`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Separator]()_`=_[@3 0]&] +[s2; Adds a visual separator to the Bar.&] +[s3; &] +[s4;%- &] +[s5;:Bar`:`:NilItem`(`):%- [@(0.0.255) static] [_^Bar`:`:Item^ Item][@(0.0.255) `&]_[* NilIte +m]()&] +[s2; Returns a reference to dummy item `- all method calls on this +item are ignored.&] +[s3; &] +[s4;%- &] +[s5;:Bar`:`:Scan`(Callback1``,dword`):%- [@(0.0.255) static] +[@(0.0.255) bool]_[* Scan]([_^Callback1^ Callback1][@(0.0.255) <]Bar[@(0.0.255) `&>]_[*@3 pro +c], [_^dword^ dword]_[*@3 key])&] +[s2; Scans bar routines hierarchy testing for[* ][%-*@3 key] accelerator. +If any Item has this accelerator, associated action Callback +of item is invoked and method returns true.&] +[s3; &] +[s4;%- &] +[s5;:Bar`:`:Break`(`):%- [@(0.0.255) void]_[* Break]()&] +[s2; This method breaks current bar line (or column) and starts a +new one.&] +[s3; &] +[s4;%- &] +[s5;:Bar`:`:Gap`(int`):%- [@(0.0.255) void]_[* Gap]([@(0.0.255) int]_[*@3 size]_`=_[@3 8])&] +[s2; Adds a visual gap of [%-*@3 size] pixels to the Bar.&] +[s3; &] +[s4;%- &] +[s5;:Bar`:`:GapRight`(`):%- [@(0.0.255) void]_[* GapRight]()&] +[s2; Adds a gap that aligns the rest of items of the Bar line to +the right size.&] +[s3; &] +[s4;%- &] +[s5;:Bar`:`:Add`(Ctrl`&`):%- [@(0.0.255) void]_[* Add]([_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 ctrl]) +&] +[s5;:Bar`:`:Add`(Ctrl`&`,Size`):%- [@(0.0.255) void]_[* Add]([_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 c +trl], [_^Size^ Size]_[*@3 sz])&] +[s5;:Bar`:`:Add`(Ctrl`&`,int`,int`):%- [@(0.0.255) void]_[* Add]([_^Ctrl^ Ctrl][@(0.0.255) `& +]_[*@3 ctrl], [@(0.0.255) int]_[*@3 cx], [@(0.0.255) int]_[*@3 cy]_`=_[@3 0])&] +[s5;:Bar`:`:Add`(bool`,Ctrl`&`):%- [@(0.0.255) void]_[* Add]([@(0.0.255) bool]_[*@3 en], +[_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 ctrl])&] +[s5;:Bar`:`:Add`(bool`,Ctrl`&`,Size`):%- [@(0.0.255) void]_[* Add]([@(0.0.255) bool]_[*@3 en], + [_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 ctrl], [_^Size^ Size]_[*@3 sz])&] +[s5;:Bar`:`:Add`(bool`,Ctrl`&`,int`,int`):%- [@(0.0.255) void]_[* Add]([@(0.0.255) bool]_[*@3 e +n], [_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 ctrl], [@(0.0.255) int]_[*@3 cx], +[@(0.0.255) int]_[*@3 cy]_`=_[@3 0])&] +[s2; Adds a [%-*@3 ctrl] widget to the bar.&] +[s2; &] +[s2; If the [%-*@3 ctrl] has defined horizontal/vertical logical position +using LeftPos/TopPos, the non`-zero size of logical position +is used to define the size of widget in the Bar. (in other words, +you can set the size by calling SetRect(0, 0, width, height).&] +[s2; &] +[s2; If either horizontal or vertical size of logical position is +empty, non`-zero [%-*@3 cx] [%-*@3 cy] method parameters are used.&] +[s2; &] +[s2; If even any of them is zero (or not present in method declaration), +GetMinSize() for [%-*@3 ctrl] is used. Enable([%-*@3 en]) is called +for the widget to enable or disable it.&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:Bar`:`:Add`(bool`,const char`*`,const Upp`:`:Image`&`,const Upp`:`:Callback`&`):%- [_^Upp`:`:Bar`:`:Item^ I +tem][@(0.0.255) `&]_[* Add]([@(0.0.255) bool]_[*@3 enable], [@(0.0.255) const]_[@(0.0.255) ch +ar]_`*[*@3 text], [@(0.0.255) const]_[_^Upp`:`:Image^ Upp`::Image][@(0.0.255) `&]_[*@3 image +], [@(0.0.255) const]_[_^Upp`:`:Callback^ Callback][@(0.0.255) `&]_[*@3 callback])&] +[s5;:Upp`:`:Bar`:`:Add`(bool`,Upp`:`:KeyInfo`&`(`*`)`(`)`,const Upp`:`:Image`&`,const Upp`:`:Callback`&`):%- [_^Upp`:`:Bar`:`:Item^ I +tem][@(0.0.255) `&]_[* Add]([@(0.0.255) bool]_[*@3 enable], [_^Upp`:`:KeyInfo^ KeyInfo][@(0.0.255) `& +]_(`*[*@3 key])(), [@(0.0.255) const]_Upp`::Image[@(0.0.255) `&]_[*@3 image], +[@(0.0.255) const]_Callback[@(0.0.255) `&]_[*@3 callback])&] +[s5;:Upp`:`:Bar`:`:Add`(const char`*`,const Upp`:`:Image`&`,const Upp`:`:Callback`&`):%- [_^Upp`:`:Bar`:`:Item^ I +tem][@(0.0.255) `&]_[* Add]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text], +[@(0.0.255) const]_[_^Upp`:`:Image^ Upp`::Image][@(0.0.255) `&]_[*@3 image], +[@(0.0.255) const]_[_^Upp`:`:Callback^ Callback][@(0.0.255) `&]_[*@3 callback])&] +[s5;:Upp`:`:Bar`:`:Add`(Upp`:`:KeyInfo`&`(`*`)`(`)`,const Upp`:`:Image`&`,const Upp`:`:Callback`&`):%- [_^Upp`:`:Bar`:`:Item^ I +tem][@(0.0.255) `&]_[* Add]([_^Upp`:`:KeyInfo^ KeyInfo][@(0.0.255) `&]_(`*[*@3 key])(), +[@(0.0.255) const]_Upp`::Image[@(0.0.255) `&]_[*@3 image], [@(0.0.255) const]_Callback[@(0.0.255) `& +]_[*@3 callback])&] +[s5;:Upp`:`:Bar`:`:Add`(bool`,const char`*`,const Upp`:`:Callback`&`):%- [_^Upp`:`:Bar`:`:Item^ I +tem][@(0.0.255) `&]_[* Add]([@(0.0.255) bool]_[*@3 enable], [@(0.0.255) const]_[@(0.0.255) ch +ar]_`*[*@3 text], [@(0.0.255) const]_[_^Upp`:`:Callback^ Callback][@(0.0.255) `&]_[*@3 call +back])&] +[s5;:Upp`:`:Bar`:`:Add`(bool`,Upp`:`:KeyInfo`&`(`*`)`(`)`,const Upp`:`:Callback`&`):%- [_^Upp`:`:Bar`:`:Item^ I +tem][@(0.0.255) `&]_[* Add]([@(0.0.255) bool]_[*@3 enable], [_^Upp`:`:KeyInfo^ KeyInfo][@(0.0.255) `& +]_(`*[*@3 key])(), [@(0.0.255) const]_Callback[@(0.0.255) `&]_[*@3 callback])&] +[s5;:Upp`:`:Bar`:`:Add`(const char`*`,const Upp`:`:Callback`&`):%- [_^Upp`:`:Bar`:`:Item^ I +tem][@(0.0.255) `&]_[* Add]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text], +[@(0.0.255) const]_[_^Upp`:`:Callback^ Callback][@(0.0.255) `&]_[*@3 callback])&] +[s5;:Upp`:`:Bar`:`:Add`(Upp`:`:KeyInfo`&`(`*`)`(`)`,const Upp`:`:Callback`&`):%- [_^Upp`:`:Bar`:`:Item^ I +tem][@(0.0.255) `&]_[* Add]([_^Upp`:`:KeyInfo^ KeyInfo][@(0.0.255) `&]_(`*[*@3 key])(), +[@(0.0.255) const]_Callback[@(0.0.255) `&]_[*@3 callback])&] +[s5;:Upp`:`:Bar`:`:Add`(bool`,const char`*`,const Upp`:`:Image`&`,const Upp`:`:Function``&`):%- [_^Upp`:`:Bar`:`:Item^ I +tem][@(0.0.255) `&]_[* Add]([@(0.0.255) bool]_[*@3 enable], [@(0.0.255) const]_[@(0.0.255) ch +ar]_`*[*@3 text], [@(0.0.255) const]_[_^Upp`:`:Image^ Upp`::Image][@(0.0.255) `&]_[*@3 image +], [@(0.0.255) const]_[_^Upp`:`:Function^ Function]<[@(0.0.255) void]_()>`&_[*@3 fn])&] +[s5;:Upp`:`:Bar`:`:Add`(bool`,Upp`:`:KeyInfo`&`(`*`)`(`)`,const Upp`:`:Image`&`,const Upp`:`:Function``&`):%- [_^Upp`:`:Bar`:`:Item^ I +tem][@(0.0.255) `&]_[* Add]([@(0.0.255) bool]_[*@3 enable], [_^Upp`:`:KeyInfo^ KeyInfo][@(0.0.255) `& +]_(`*[*@3 key])(), [@(0.0.255) const]_Upp`::Image[@(0.0.255) `&]_[*@3 image], +[@(0.0.255) const]_Function<[@(0.0.255) void]_()>`&_[*@3 fn])&] +[s5;:Upp`:`:Bar`:`:Add`(const char`*`,const Upp`:`:Image`&`,const Upp`:`:Function``&`):%- [_^Upp`:`:Bar`:`:Item^ I +tem][@(0.0.255) `&]_[* Add]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text], +[@(0.0.255) const]_[_^Upp`:`:Image^ Upp`::Image][@(0.0.255) `&]_[*@3 image], +[@(0.0.255) const]_[_^Upp`:`:Function^ Function]<[@(0.0.255) void]_()>`&_[*@3 fn])&] +[s5;:Upp`:`:Bar`:`:Add`(Upp`:`:KeyInfo`&`(`*`)`(`)`,const Upp`:`:Image`&`,const Upp`:`:Function``&`):%- [_^Upp`:`:Bar`:`:Item^ I +tem][@(0.0.255) `&]_[* Add]([_^Upp`:`:KeyInfo^ KeyInfo][@(0.0.255) `&]_(`*[*@3 key])(), +[@(0.0.255) const]_Upp`::Image[@(0.0.255) `&]_[*@3 image], [@(0.0.255) const]_Function<[@(0.0.255) v +oid]_()>`&_[*@3 fn])&] +[s5;:Upp`:`:Bar`:`:Add`(bool`,const char`*`,const Upp`:`:Function``&`):%- [_^Upp`:`:Bar`:`:Item^ I +tem][@(0.0.255) `&]_[* Add]([@(0.0.255) bool]_[*@3 enable], [@(0.0.255) const]_[@(0.0.255) ch +ar]_`*[*@3 text], [@(0.0.255) const]_[_^Upp`:`:Function^ Function]<[@(0.0.255) void]_()>`& +_[*@3 fn])&] +[s5;:Upp`:`:Bar`:`:Add`(bool`,Upp`:`:KeyInfo`&`(`*`)`(`)`,const Upp`:`:Function``&`):%- [_^Upp`:`:Bar`:`:Item^ I +tem][@(0.0.255) `&]_[* Add]([@(0.0.255) bool]_[*@3 enable], [_^Upp`:`:KeyInfo^ KeyInfo][@(0.0.255) `& +]_(`*[*@3 key])(), [@(0.0.255) const]_Function<[@(0.0.255) void]_()>`&_[*@3 fn])&] +[s5;:Upp`:`:Bar`:`:Add`(const char`*`,const Upp`:`:Function``&`):%- [_^Upp`:`:Bar`:`:Item^ I +tem][@(0.0.255) `&]_[* Add]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text], +[@(0.0.255) const]_[_^Upp`:`:Function^ Function]<[@(0.0.255) void]_()>`&_[*@3 fn])&] +[s5;:Upp`:`:Bar`:`:Add`(Upp`:`:KeyInfo`&`(`*`)`(`)`,const Upp`:`:Function``&`):%- [_^Upp`:`:Bar`:`:Item^ I +tem][@(0.0.255) `&]_[* Add]([_^Upp`:`:KeyInfo^ KeyInfo][@(0.0.255) `&]_(`*[*@3 key])(), +[@(0.0.255) const]_Function<[@(0.0.255) void]_()>`&_[*@3 fn])&] +[s2; Adds an item to menu or toolbar. If [%-*@3 text] is present, item +is added to menu; if [%-*@3 image] is present, it is added to toolbar. +If both are present, [%-*@3 image] is used as icon in menu too +and [%-*@3 text] is used as toolbar button tooltip. When menu item +is selected or toolbar button pushed, [%-*@3 callback] or [%-*@3 fn] +is invoked. [%-*@3 enable] sets the item status and [%-*@3 key] is +an accelerator key or adjustable accelerator info. All variants +return a reference to Item which can be used to further adjust +the item.&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:Bar`:`:Add`(bool`,const char`*`,const Upp`:`:Event``&`):%- [_^Upp`:`:Bar`:`:Item^ I +tem][@(0.0.255) `&]_[* Add]([@(0.0.255) bool]_[*@3 enable], [@(0.0.255) const]_[@(0.0.255) ch +ar]_`*[*@3 text], [@(0.0.255) const]_[_^Upp`:`:Event^ Event]`&_[*@3 pro +c])&] +[s5;:Upp`:`:Bar`:`:Add`(const char`*`,const Upp`:`:Event``&`):%- [_^Upp`:`:Bar`:`:Item^ I +tem][@(0.0.255) `&]_[* Add]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text], +[@(0.0.255) const]_[_^Upp`:`:Event^ Event]`&_[*@3 proc])&] +[s5;:Upp`:`:Bar`:`:Add`(bool`,const char`*`,const Upp`:`:Image`&`,const Upp`:`:Event``&`):%- [_^Upp`:`:Bar`:`:Item^ I +tem][@(0.0.255) `&]_[* Add]([@(0.0.255) bool]_[*@3 enable], [@(0.0.255) const]_[@(0.0.255) ch +ar]_`*[*@3 text], [@(0.0.255) const]_[_^Upp`:`:Image^ Upp`::Image][@(0.0.255) `&]_[*@3 image +], [@(0.0.255) const]_[_^Upp`:`:Event^ Event]`&_[*@3 proc])&] +[s5;:Upp`:`:Bar`:`:Add`(const char`*`,const Upp`:`:Image`&`,const Upp`:`:Event``&`):%- [_^Upp`:`:Bar`:`:Item^ I +tem][@(0.0.255) `&]_[* Add]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text], +[@(0.0.255) const]_[_^Upp`:`:Image^ Upp`::Image][@(0.0.255) `&]_[*@3 image], +[@(0.0.255) const]_[_^Upp`:`:Event^ Event]`&_[*@3 proc])&] +[s5;:Upp`:`:Bar`:`:Sub`(bool`,const char`*`,const Upp`:`:Function``&`):%- [_^Upp`:`:Bar`:`:Item^ I +tem][@(0.0.255) `&]_[* Sub]([@(0.0.255) bool]_[*@3 enable], [@(0.0.255) const]_[@(0.0.255) ch +ar]_`*[*@3 text], [@(0.0.255) const]_[_^Upp`:`:Function^ Function]<[@(0.0.255) void]_(Bar +[@(0.0.255) `&])>`&_[*@3 submenu])&] +[s5;:Upp`:`:Bar`:`:Sub`(const char`*`,const Upp`:`:Function``&`):%- [_^Upp`:`:Bar`:`:Item^ I +tem][@(0.0.255) `&]_[* Sub]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text], +[@(0.0.255) const]_[_^Upp`:`:Function^ Function]<[@(0.0.255) void]_(Bar[@(0.0.255) `&])>`& +_[*@3 submenu])&] +[s5;:Upp`:`:Bar`:`:Sub`(bool`,const char`*`,const Upp`:`:Image`&`,const Upp`:`:Function``&`):%- [_^Upp`:`:Bar`:`:Item^ I +tem][@(0.0.255) `&]_[* Sub]([@(0.0.255) bool]_[*@3 enable], [@(0.0.255) const]_[@(0.0.255) ch +ar]_`*[*@3 text], [@(0.0.255) const]_[_^Upp`:`:Image^ Upp`::Image][@(0.0.255) `&]_[*@3 image +], [@(0.0.255) const]_[_^Upp`:`:Function^ Function]<[@(0.0.255) void]_(Bar[@(0.0.255) `&]) +>`&_[*@3 submenu])&] +[s5;:Upp`:`:Bar`:`:Sub`(const char`*`,const Upp`:`:Image`&`,const Upp`:`:Function``&`):%- [_^Upp`:`:Bar`:`:Item^ I +tem][@(0.0.255) `&]_[* Sub]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text], +[@(0.0.255) const]_[_^Upp`:`:Image^ Upp`::Image][@(0.0.255) `&]_[*@3 image], +[@(0.0.255) const]_[_^Upp`:`:Function^ Function]<[@(0.0.255) void]_(Bar[@(0.0.255) `&])>`& +_[*@3 submenu])&] +[s2; Adds a submenu. For toolbar, simply adds all items of [%-*@3 submenu]. +[%-*@3 enable] sets the item status. Note that lambda variants +(with Function) have to be named differently because of overloading +issues.&] +[s3; &] +[s4;%- &] +[s5;:Bar`:`:MenuSeparator`(`):%- [@(0.0.255) void]_[* MenuSeparator]()&] +[s5;:Bar`:`:MenuBreak`(`):%- [@(0.0.255) void]_[* MenuBreak]()&] +[s5;:Bar`:`:MenuGap`(int`):%- [@(0.0.255) void]_[* MenuGap]([@(0.0.255) int]_[*@3 size]_`=_[@3 8 +])&] +[s5;:Bar`:`:MenuGapRight`(`):%- [@(0.0.255) void]_[* MenuGapRight]()&] +[s5;:Bar`:`:AddMenu`(Ctrl`&`):%- [@(0.0.255) void]_[* AddMenu]([_^Ctrl^ Ctrl][@(0.0.255) `&]_ +[*@3 ctrl])&] +[s5;:Bar`:`:AddMenu`(Ctrl`&`,Size`):%- [@(0.0.255) void]_[* AddMenu]([_^Ctrl^ Ctrl][@(0.0.255) `& +]_[*@3 ctrl], [_^Size^ Size]_[*@3 sz])&] +[s5;:Bar`:`:AddMenu`(Ctrl`&`,int`,int`):%- [@(0.0.255) void]_[* AddMenu]([_^Ctrl^ Ctrl][@(0.0.255) `& +]_[*@3 ctrl], [@(0.0.255) int]_[*@3 cx], [@(0.0.255) int]_[*@3 cy]_`=_[@3 0])&] +[s5;:Upp`:`:Bar`:`:AddMenu`(bool`,const char`*`,const Upp`:`:Image`&`,const Upp`:`:Callback`&`):%- [_^Upp`:`:Bar`:`:Item^ I +tem][@(0.0.255) `&]_[* AddMenu]([@(0.0.255) bool]_[*@3 enable], [@(0.0.255) const]_[@(0.0.255) c +har]_`*[*@3 text], [@(0.0.255) const]_[_^Upp`:`:Image^ Upp`::Image][@(0.0.255) `&]_[*@3 imag +e], [@(0.0.255) const]_[_^Upp`:`:Callback^ Callback][@(0.0.255) `&]_[*@3 callback])&] +[s5;:Upp`:`:Bar`:`:AddMenu`(bool`,Upp`:`:KeyInfo`&`(`*`)`(`)`,const Upp`:`:Image`&`,const Upp`:`:Callback`&`):%- [_^Upp`:`:Bar`:`:Item^ I +tem][@(0.0.255) `&]_[* AddMenu]([@(0.0.255) bool]_[*@3 enable], [_^Upp`:`:KeyInfo^ KeyInfo][@(0.0.255) `& +]_(`*[*@3 key])(), [@(0.0.255) const]_Upp`::Image[@(0.0.255) `&]_[*@3 image], +[@(0.0.255) const]_Callback[@(0.0.255) `&]_[*@3 callback])&] +[s5;:Upp`:`:Bar`:`:AddMenu`(const char`*`,const Upp`:`:Image`&`,const Upp`:`:Callback`&`):%- [_^Upp`:`:Bar`:`:Item^ I +tem][@(0.0.255) `&]_[* AddMenu]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text], +[@(0.0.255) const]_[_^Upp`:`:Image^ Upp`::Image][@(0.0.255) `&]_[*@3 image], +[@(0.0.255) const]_[_^Upp`:`:Callback^ Callback][@(0.0.255) `&]_[*@3 callback])&] +[s5;:Upp`:`:Bar`:`:AddMenu`(const Upp`:`:String`&`,const Upp`:`:Image`&`,const Upp`:`:Callback`&`):%- [_^Upp`:`:Bar`:`:Item^ I +tem][@(0.0.255) `&]_[* AddMenu]([@(0.0.255) const]_[_^Upp`:`:String^ String][@(0.0.255) `&]_ +[*@3 t], [@(0.0.255) const]_[_^Upp`:`:Image^ Upp`::Image][@(0.0.255) `&]_[*@3 m], +[@(0.0.255) const]_[_^Upp`:`:Callback^ Callback][@(0.0.255) `&]_[*@3 c])&] +[s5;:Upp`:`:Bar`:`:AddMenu`(Upp`:`:KeyInfo`&`(`*`)`(`)`,const Upp`:`:Image`&`,const Upp`:`:Callback`&`):%- [_^Upp`:`:Bar`:`:Item^ I +tem][@(0.0.255) `&]_[* AddMenu]([_^Upp`:`:KeyInfo^ KeyInfo][@(0.0.255) `&]_(`*[*@3 key])(), + [@(0.0.255) const]_Upp`::Image[@(0.0.255) `&]_[*@3 m], [@(0.0.255) const]_Callback[@(0.0.255) `& +]_[*@3 c])&] +[s5;:Upp`:`:Bar`:`:AddMenu`(bool`,const char`*`,const Upp`:`:Image`&`,const Upp`:`:Function``&`):%- [_^Upp`:`:Bar`:`:Item^ I +tem][@(0.0.255) `&]_[* AddMenu]([@(0.0.255) bool]_[*@3 enable], [@(0.0.255) const]_[@(0.0.255) c +har]_`*[*@3 text], [@(0.0.255) const]_[_^Upp`:`:Image^ Upp`::Image][@(0.0.255) `&]_[*@3 imag +e], [@(0.0.255) const]_[_^Upp`:`:Function^ Function]<[@(0.0.255) void]_()>`&_[*@3 fn])&] +[s5;:Upp`:`:Bar`:`:AddMenu`(bool`,Upp`:`:KeyInfo`&`(`*`)`(`)`,const Upp`:`:Image`&`,const Upp`:`:Function``&`):%- [_^Upp`:`:Bar`:`:Item^ I +tem][@(0.0.255) `&]_[* AddMenu]([@(0.0.255) bool]_[*@3 enable], [_^Upp`:`:KeyInfo^ KeyInfo][@(0.0.255) `& +]_(`*[*@3 key])(), [@(0.0.255) const]_Upp`::Image[@(0.0.255) `&]_[*@3 image], +[@(0.0.255) const]_Function<[@(0.0.255) void]_()>`&_[*@3 fn])&] +[s5;:Upp`:`:Bar`:`:AddMenu`(const char`*`,const Upp`:`:Image`&`,const Upp`:`:Function``&`):%- [_^Upp`:`:Bar`:`:Item^ I +tem][@(0.0.255) `&]_[* AddMenu]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text], +[@(0.0.255) const]_[_^Upp`:`:Image^ Upp`::Image][@(0.0.255) `&]_[*@3 image], +[@(0.0.255) const]_[_^Upp`:`:Function^ Function]<[@(0.0.255) void]_()>`&_[*@3 fn])&] +[s5;:Upp`:`:Bar`:`:AddMenu`(const Upp`:`:String`&`,const Upp`:`:Image`&`,const Upp`:`:Function``&`):%- [_^Upp`:`:Bar`:`:Item^ I +tem][@(0.0.255) `&]_[* AddMenu]([@(0.0.255) const]_[_^Upp`:`:String^ String][@(0.0.255) `&]_ +[*@3 t], [@(0.0.255) const]_[_^Upp`:`:Image^ Upp`::Image][@(0.0.255) `&]_[*@3 m], +[@(0.0.255) const]_[_^Upp`:`:Function^ Function]<[@(0.0.255) void]_()>`&_[*@3 fn])&] +[s5;:Upp`:`:Bar`:`:AddMenu`(Upp`:`:KeyInfo`&`(`*`)`(`)`,const Upp`:`:Image`&`,const Upp`:`:Function``&`):%- [_^Upp`:`:Bar`:`:Item^ I +tem][@(0.0.255) `&]_[* AddMenu]([_^Upp`:`:KeyInfo^ KeyInfo][@(0.0.255) `&]_(`*[*@3 key])(), + [@(0.0.255) const]_Upp`::Image[@(0.0.255) `&]_[*@3 m], [@(0.0.255) const]_Function<[@(0.0.255) v +oid]_()>`&_[*@3 fn])&] +[s2; These methods are equivalents to methods without [* Menu][*/ ]in +the name, but perform respective operations only if Bar is menu.&] +[s3; &] +[s4;%- &] +[s5;:Bar`:`:ToolSeparator`(`):%- [@(0.0.255) void]_[* ToolSeparator]()&] +[s5;:Bar`:`:ToolBreak`(`):%- [@(0.0.255) void]_[* ToolBreak]()&] +[s5;:Bar`:`:ToolGap`(int`):%- [@(0.0.255) void]_[* ToolGap]([@(0.0.255) int]_[*@3 size]_`=_[@3 8 +])&] +[s5;:Bar`:`:ToolGapRight`(`):%- [@(0.0.255) void]_[* ToolGapRight]()&] +[s5;:Bar`:`:AddTool`(Ctrl`&`):%- [@(0.0.255) void]_[* AddTool]([_^Ctrl^ Ctrl][@(0.0.255) `&]_ +[*@3 ctrl])&] +[s5;:Bar`:`:AddTool`(Ctrl`&`,Size`):%- [@(0.0.255) void]_[* AddTool]([_^Ctrl^ Ctrl][@(0.0.255) `& +]_[*@3 ctrl], [_^Size^ Size]_[*@3 sz])&] +[s5;:Bar`:`:AddTool`(Ctrl`&`,int`,int`):%- [@(0.0.255) void]_[* AddTool]([_^Ctrl^ Ctrl][@(0.0.255) `& +]_[*@3 ctrl], [@(0.0.255) int]_[*@3 cx], [@(0.0.255) int]_[*@3 cy]_`=_[@3 0])&] +[s2; These methods are equivalents to methods without [* Tool][*/ ]in +the name, but perform respective operations only if Bar is toolbar.&] +[s3; &] +[s4;%- &] +[s5;:Bar`:`:AddKey`(dword`,Callback`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* AddKey]( +[_^dword^ dword]_[*@3 key], [_^Callback^ Callback]_[*@3 cb])&] +[s5;:Bar`:`:AddKey`(KeyInfo`&`(`*`)`(`)`,Callback`):%- [@(0.0.255) void]_[* AddKey]([_^KeyInfo^ K +eyInfo][@(0.0.255) `&]_(`*[*@3 key])(), Callback_[*@3 cb])&] +[s2; These variants do not add items to neither menu or toolbar, +but do add accelerator keys.&] +[s3; &] +[s4;%- &] +[s5;:Bar`:`:IsMenuBar`(`)const:%- [@(0.0.255) virtual] [@(0.0.255) bool]_[* IsMenuBar]()_[@(0.0.255) c +onst]&] +[s2; Returns true if Bar is menubar.&] +[s3; &] +[s4;%- &] +[s5;:Bar`:`:IsToolBar`(`)const:%- [@(0.0.255) virtual] [@(0.0.255) bool]_[* IsToolBar]()_[@(0.0.255) c +onst]&] +[s2; Returns true if Bar is toolbar.&] +[s3; &] +[s4;%- &] +[s5;:Bar`:`:IsScanKeys`(`)const:%- [@(0.0.255) virtual] [@(0.0.255) bool]_[* IsScanKeys]()_ +[@(0.0.255) const]&] +[s2; Returns true if Bar is only scanning the accelerator keys.&] +[s3; &] +[s0; &] +[s0; &] +[s0;%- &] +[ {{10000@3 [s0; [*@(229)4 Bar`::Item]]}}&] +[s3; &] +[s1;:Bar`:`:Item`:`:struct:%- [@(0.0.255)3 struct][3 _][*3 Item]&] +[s9; This structure is used to describe additional properties of +individual bar items. Methods return `*this to allow chaining +of calls.&] +[s3; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] +[s3; &] +[s5;:Bar`:`:Item`:`:Image`(const Image`&`):%- [_^Bar`:`:Item^ Bar`::Item][@(0.0.255) `&]_[* I +mage]([@(0.0.255) const]_[_^Image^ UPP`::Image][@(0.0.255) `&]_[*@3 img])&] +[s2; Sets the image used with the item.&] +[s3; &] +[s4;%- &] +[s5;:Bar`:`:Item`:`:Text`(const char`*`):%- [@(0.0.255) virtual] [_^Bar`:`:Item^ Item][@(0.0.255) `& +]_[* Text]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text])&] +[s5;:Upp`:`:Bar`:`:Item`:`:Text`(const Upp`:`:String`&`):%- [@(0.0.255) virtual] +[_^Upp`:`:Bar`:`:Item^ Item][@(0.0.255) `&]_[* Text]([@(0.0.255) const]_[_^Upp`:`:String^ S +tring][@(0.0.255) `&]_[*@3 text])&] +[s2; Sets the [%-*@3 text] of item.&] +[s3; &] +[s4;%- &] +[s5;:Bar`:`:Item`:`:Key`(dword`):%- [@(0.0.255) virtual] [_^Bar`:`:Item^ Item][@(0.0.255) `& +]_[* Key]([_^dword^ dword]_[*@3 key])&] +[s2; Sets the accelerator [%-*@3 key]. Items can have more than single +accelerator key (only the last one is displayed but all are active).&] +[s3; &] +[s4;%- &] +[s5;:Bar`:`:Item`:`:Repeat`(bool`):%- [@(0.0.255) virtual] [_^Bar`:`:Item^ Item][@(0.0.255) `& +]_[* Repeat]([@(0.0.255) bool]_[*@3 repeat]_`=_[@(0.0.255) true])&] +[s2; In repeat mode, action from ToolBar buttons is called repeatedly +when mouse is hold down over them.&] +[s3; &] +[s4;%- &] +[s5;:Bar`:`:Item`:`:Check`(bool`):%- [@(0.0.255) virtual] [_^Bar`:`:Item^ Item][@(0.0.255) `& +]_[* Check]([@(0.0.255) bool]_[*@3 check])&] +[s2; Makes the item `"checked`". Use with on/off option buttons or +menu items.&] +[s3; &] +[s4;%- &] +[s5;:Bar`:`:Item`:`:Radio`(bool`):%- [@(0.0.255) virtual] [_^Bar`:`:Item^ Item][@(0.0.255) `& +]_[* Radio]([@(0.0.255) bool]_[*@3 check])&] +[s2; Makes the item `"choosen`". Similar to check, with visual style +resembling Switch.&] +[s3; &] +[s4;%- &] +[s5;:Bar`:`:Item`:`:Enable`(bool`):%- [@(0.0.255) virtual] [_^Bar`:`:Item^ Item][@(0.0.255) `& +]_[* Enable]([@(0.0.255) bool]_[*@3 `_enable]_`=_[@(0.0.255) true])&] +[s2; Enables the item (default is enabled).&] +[s3; &] +[s4;%- &] +[s5;:Bar`:`:Item`:`:Bold`(bool`):%- [@(0.0.255) virtual] [_^Bar`:`:Item^ Item][@(0.0.255) `& +]_[* Bold]([@(0.0.255) bool]_[*@3 bold]_`=_[@(0.0.255) true])&] +[s2; Sets bold text to menu item [%-*@3 bold].&] +[s3; &] +[s4;%- &] +[s5;:Bar`:`:Item`:`:Tip`(const char`*`):%- [@(0.0.255) virtual] [_^Bar`:`:Item^ Item][@(0.0.255) `& +]_[* Tip]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 tip])&] +[s2; Adds a tooltip to the ToolBar item.&] +[s3; &] +[s4;%- &] +[s5;:Bar`:`:Item`:`:Help`(const char`*`):%- [@(0.0.255) virtual] [_^Bar`:`:Item^ Item][@(0.0.255) `& +]_[* Help]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 help])&] +[s2; Adds a [%-*@3 help] line to the the item.&] +[s3; &] +[s4;%- &] +[s5;:Bar`:`:Item`:`:Key`(KeyInfo`&`(`*`)`(`)`):%- [_^Bar`:`:Item^ Item][@(0.0.255) `&]_[* K +ey]([_^KeyInfo^ KeyInfo][@(0.0.255) `&]_(`*[*@3 key])())&] +[s2; Adds all keys from configurable accelerator info.&] +[s3; &] [s0; ]] \ No newline at end of file diff --git a/uppsrc/CtrlLib/src.tpp/ButtonOption$en-us.tpp b/uppsrc/CtrlLib/src.tpp/ButtonOption_en-us.tpp similarity index 97% rename from uppsrc/CtrlLib/src.tpp/ButtonOption$en-us.tpp rename to uppsrc/CtrlLib/src.tpp/ButtonOption_en-us.tpp index 0ea142df3..f32b28f35 100644 --- a/uppsrc/CtrlLib/src.tpp/ButtonOption$en-us.tpp +++ b/uppsrc/CtrlLib/src.tpp/ButtonOption_en-us.tpp @@ -1,115 +1,115 @@ -topic "ButtonOption"; -[2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,0#27521748481378242620020725143825:desc] -[0 $$3,0#96390100711032703541132217272105:end] -[H6;0 $$4,0#05600065144404261032431302351956:begin] -[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] -[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] -[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] -[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] -[b42;2 $$9,9#13035079074754324216151401829390:normal] -[{_}%EN-US -[ {{10000@3 [s0; [*@(229)4 ButtonOption]]}}&] -[s3; &] -[s1;:ButtonOption`:`:class:%- [@(0.0.255)3 class][3 _][*3 ButtonOption][3 _:_][@(0.0.255)3 publi -c][3 _][*@3;3 Ctrl]&] -[s2; &] -[s2; -@@image:225&125 -€ƒ¤€”€€€ƒìÿ€€€€ø¯œÝ•ËÊÃÀ¦”†ó˜¾ˆ«²Áð•„Á ±¸ò£ˆº© ò®ŠîĤ¶±›Ä¥‚î”Á’—Š’…Åë¤Õ •¡è›Þ¬ -•÷ÛŠÙÔŸŽŽÃæ²±¥«×‡Ÿá¤œÿ¾è¹‡òÒèüÛÍõнºô¬ûÆäëøàíää “ù­Øˆ…‚˜ê›Êöô¿·µ÷‡©³çøôàäºìæ¼ -“¯—–¬Ä‚šª®Èº´ï‹•âéí÷îõÿÈ‘ò¿½æ™úË­¦™¥œÓÑ“æîøúåÙèœÔŠë¼”ÙíÙôœÃ®Ê¬€É©¼‘€£‹ã¡ÞÔ -Ïäû¾¦éþø’²ŒŒ²™…•–é¿‹¿ŸÿĤõäáÙˆÓµ¯ûüžÐòâå–牧Ëß„‰±¾¿ÞÉôÛòŠØž¯ëíõ£™ÄâŠèäÈÉÛšÆúú¬ -‘¤±š¥†êþÖí¾ÌïÇĘٕÒéØœÉ”ó»ÈŠ´Ãíï½ô‹ùµ¤õÅÊäá²éÜÜߨåšóܼ‹ßޱö¦çÖÔ‚•àáӹƈòÎ÷ÔÊ -‘éú×ï‚Ù°Ô“Ö¶íµ¦ôîͲÐÂð£©Ý…‘„ɀƉ€ÂÅ€¦²õÍò€‡ê¤Á­ÃÅ€±‹±ê°±ËÅœŒ¸‰ªâèãúðá–âÓœïÖ¬ -‘üܳ´â¡®‡™ôÿêÖ’™™ïúÿäÿý -&] -[s2; &] -[s9; Simple 2`-state Ctrl `- similar to Option, but with visual appearance -of Button. Pushed state is persistent (until next click) and -represents true. Value of ButtonOption is either 1 or 0.&] -[s0; &] -[s0;%- [%%/ Derived from][%% ][^topic`:`/`/CtrlCore`/src`/Ctrl`$en`-us`#`:`:Ctrl`:`:class Ctrl^ C -trl]&] -[s3; &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Public Method List]]}}&] -[s3; &] -[s5;:ButtonOption`:`:SetImage`(const Image`&`):%- [_^ButtonOption^ ButtonOption][@(0.0.255) `& -]_[* SetImage]([@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img])&] -[s2; Sets the image [%-*C@3 img] to be displayed in ButtonOption. Returns -`*this.&] -[s3; &] -[s4;%- &] -[s5;:ButtonOption`:`:SetImage`(const Image`&`,const Image`&`):%- [_^ButtonOption^ Butto -nOption][@(0.0.255) `&]_[* SetImage]([@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 m -], [@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 m1])&] -[s2; Sets the image [%-*C@3 m] to be displayed for the `"false`" state -and [%-*C@3 m1 ]to be displayed for the `"true`" state.&] -[s3; &] -[s4;%- &] -[s5;:ButtonOption`:`:operator`=`(const Image`&`):%- [@(0.0.255) void]_[* operator`=]([@(0.0.255) c -onst]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img])&] -[s2; Equivalent to SetImage([*C@3 img]).&] -[s3; &] -[s4;%- &] -[s5;:ButtonOption`:`:Set`(bool`):%- [@(0.0.255) void]_[* Set]([@(0.0.255) bool]_[*@3 b])&] -[s2; Sets the ButtonOption to [%-*C@3 b].&] -[s3; &] -[s4;%- &] -[s5;:ButtonOption`:`:Get`(`)const:%- [@(0.0.255) bool]_[* Get]()_[@(0.0.255) const]&] -[s2; Returns the state of ButtonOption.&] -[s3; &] -[s4;%- &] -[s5;:ButtonOption`:`:operator`=`(bool`):%- [@(0.0.255) void]_[* operator`=]([@(0.0.255) boo -l]_[*@3 b])&] -[s2; Equivalent to Set([*C@3 b]).&] -[s3; &] -[s4;%- &] -[s5;:ButtonOption`:`:operator bool`(`)const:%- [* operator_bool]()_[@(0.0.255) const]&] -[s2; Equivalent to Get().&] -[s3; &] -[s4;%- &] -[s5;:ButtonOption`:`:SetLabel`(const String`&`):%- [_^ButtonOption^ ButtonOption][@(0.0.255) `& -]_[* SetLabel]([@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 text])&] -[s2; Sets the label of the button to [%-*@3 text].&] -[s3; &] -[s4;%- &] -[s5;:ButtonOption`:`:GetLabel`(`)const:%- [_^String^ String]_[* GetLabel]()_[@(0.0.255) con -st]&] -[s2; Returns the label of the button.&] -[s3;%- &] -[s4;%- &] -[s5;:ButtonOption`:`:StyleDefault`(`):%- [@(0.0.255) static] [@(0.0.255) const]_[_^ButtonOption`:`:Style^ S -tyle][@(0.0.255) `&]_[* StyleDefault]()&] -[s2; Returns the default style used to draw a `"normal`" ButtonOption.&] -[s0; &] -[s4;%- &] -[s5;:ButtonOption`:`:StyleFlat`(`):%- [@(0.0.255) static] [@(0.0.255) const]_[_^ButtonOption`:`:Style^ S -tyle][@(0.0.255) `&]_[* StyleFlat]()&] -[s2; Returns the default style used to draw a `"flat`" ButtonOption.&] -[s3;%- &] -[s4;%- &] -[s5;:ButtonOption`:`:SetStyle`(const ButtonOption`:`:Style`&`):%- [_^ButtonOption^ Butt -onOption][@(0.0.255) `&]_[* SetStyle]([@(0.0.255) const]_[_^ButtonOption`:`:Style^ Style][@(0.0.255) `& -]_[*@3 s])&] -[s2; Sets the style of the button to [%-*@3 s]. Returns `*this for -chaining.&] -[s3; &] -[s4;%- &] -[s5;:ButtonOption`:`:AutoStyle`(`):%- [_^ButtonOption^ ButtonOption][@(0.0.255) `&]_[* Auto -Style]()&] -[s2; Clears all style information, reverting to the default look. -Returns `*this for chaining.&] -[s3;%- &] -[s0; &] -[s0;%- &] -[s0;%- &] -[ {{10000@3 [s0; [*@(229)4 ButtonOption`::Style]]}}&] -[s3; &] -[s1;:ButtonOption`:`:Style`:`:struct:%- [@(0.0.255)3 struct][3 _][*3 Style][3 _:_][@(0.0.255)3 p -ublic][3 _][*@3;3 ChStyle][@(0.0.255)3 <][*3 Style][@(0.0.255)3 >][3 _]&] -[s9; This structure defines the look of a ButtonOption.&] -[s3;%- &] +topic "ButtonOption"; +[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,0#27521748481378242620020725143825:desc] +[0 $$3,0#96390100711032703541132217272105:end] +[H6;0 $$4,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] +[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] +[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] +[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] +[b42;2 $$9,9#13035079074754324216151401829390:normal] +[{_}%EN-US +[ {{10000@3 [s0; [*@(229)4 ButtonOption]]}}&] +[s3; &] +[s1;:ButtonOption`:`:class:%- [@(0.0.255)3 class][3 _][*3 ButtonOption][3 _:_][@(0.0.255)3 publi +c][3 _][*@3;3 Ctrl]&] +[s2; &] +[s2; +@@image:225&125 +€ƒ¤€”€€€ƒìÿ€€€€ø¯œÝ•ËÊÃÀ¦”†ó˜¾ˆ«²Áð•„Á ±¸ò£ˆº© ò®ŠîĤ¶±›Ä¥‚î”Á’—Š’…Åë¤Õ •¡è›Þ¬ +•÷ÛŠÙÔŸŽŽÃæ²±¥«×‡Ÿá¤œÿ¾è¹‡òÒèüÛÍõнºô¬ûÆäëøàíää “ù­Øˆ…‚˜ê›Êöô¿·µ÷‡©³çøôàäºìæ¼ +“¯—–¬Ä‚šª®Èº´ï‹•âéí÷îõÿÈ‘ò¿½æ™úË­¦™¥œÓÑ“æîøúåÙèœÔŠë¼”ÙíÙôœÃ®Ê¬€É©¼‘€£‹ã¡ÞÔ +Ïäû¾¦éþø’²ŒŒ²™…•–é¿‹¿ŸÿĤõäáÙˆÓµ¯ûüžÐòâå–牧Ëß„‰±¾¿ÞÉôÛòŠØž¯ëíõ£™ÄâŠèäÈÉÛšÆúú¬ +‘¤±š¥†êþÖí¾ÌïÇĘٕÒéØœÉ”ó»ÈŠ´Ãíï½ô‹ùµ¤õÅÊäá²éÜÜߨåšóܼ‹ßޱö¦çÖÔ‚•àáӹƈòÎ÷ÔÊ +‘éú×ï‚Ù°Ô“Ö¶íµ¦ôîͲÐÂð£©Ý…‘„ɀƉ€ÂÅ€¦²õÍò€‡ê¤Á­ÃÅ€±‹±ê°±ËÅœŒ¸‰ªâèãúðá–âÓœïÖ¬ +‘üܳ´â¡®‡™ôÿêÖ’™™ïúÿäÿý +&] +[s2; &] +[s9; Simple 2`-state Ctrl `- similar to Option, but with visual appearance +of Button. Pushed state is persistent (until next click) and +represents true. Value of ButtonOption is either 1 or 0.&] +[s0; &] +[s0;%- [%%/ Derived from][%% ][^topic`:`/`/CtrlCore`/src`/Ctrl`$en`-us`#`:`:Ctrl`:`:class Ctrl^ C +trl]&] +[s3; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Public Method List]]}}&] +[s3; &] +[s5;:ButtonOption`:`:SetImage`(const Image`&`):%- [_^ButtonOption^ ButtonOption][@(0.0.255) `& +]_[* SetImage]([@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img])&] +[s2; Sets the image [%-*C@3 img] to be displayed in ButtonOption. Returns +`*this.&] +[s3; &] +[s4;%- &] +[s5;:ButtonOption`:`:SetImage`(const Image`&`,const Image`&`):%- [_^ButtonOption^ Butto +nOption][@(0.0.255) `&]_[* SetImage]([@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 m +], [@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 m1])&] +[s2; Sets the image [%-*C@3 m] to be displayed for the `"false`" state +and [%-*C@3 m1 ]to be displayed for the `"true`" state.&] +[s3; &] +[s4;%- &] +[s5;:ButtonOption`:`:operator`=`(const Image`&`):%- [@(0.0.255) void]_[* operator`=]([@(0.0.255) c +onst]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img])&] +[s2; Equivalent to SetImage([*C@3 img]).&] +[s3; &] +[s4;%- &] +[s5;:ButtonOption`:`:Set`(bool`):%- [@(0.0.255) void]_[* Set]([@(0.0.255) bool]_[*@3 b])&] +[s2; Sets the ButtonOption to [%-*C@3 b].&] +[s3; &] +[s4;%- &] +[s5;:ButtonOption`:`:Get`(`)const:%- [@(0.0.255) bool]_[* Get]()_[@(0.0.255) const]&] +[s2; Returns the state of ButtonOption.&] +[s3; &] +[s4;%- &] +[s5;:ButtonOption`:`:operator`=`(bool`):%- [@(0.0.255) void]_[* operator`=]([@(0.0.255) boo +l]_[*@3 b])&] +[s2; Equivalent to Set([*C@3 b]).&] +[s3; &] +[s4;%- &] +[s5;:ButtonOption`:`:operator bool`(`)const:%- [* operator_bool]()_[@(0.0.255) const]&] +[s2; Equivalent to Get().&] +[s3; &] +[s4;%- &] +[s5;:ButtonOption`:`:SetLabel`(const String`&`):%- [_^ButtonOption^ ButtonOption][@(0.0.255) `& +]_[* SetLabel]([@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 text])&] +[s2; Sets the label of the button to [%-*@3 text].&] +[s3; &] +[s4;%- &] +[s5;:ButtonOption`:`:GetLabel`(`)const:%- [_^String^ String]_[* GetLabel]()_[@(0.0.255) con +st]&] +[s2; Returns the label of the button.&] +[s3;%- &] +[s4;%- &] +[s5;:ButtonOption`:`:StyleDefault`(`):%- [@(0.0.255) static] [@(0.0.255) const]_[_^ButtonOption`:`:Style^ S +tyle][@(0.0.255) `&]_[* StyleDefault]()&] +[s2; Returns the default style used to draw a `"normal`" ButtonOption.&] +[s0; &] +[s4;%- &] +[s5;:ButtonOption`:`:StyleFlat`(`):%- [@(0.0.255) static] [@(0.0.255) const]_[_^ButtonOption`:`:Style^ S +tyle][@(0.0.255) `&]_[* StyleFlat]()&] +[s2; Returns the default style used to draw a `"flat`" ButtonOption.&] +[s3;%- &] +[s4;%- &] +[s5;:ButtonOption`:`:SetStyle`(const ButtonOption`:`:Style`&`):%- [_^ButtonOption^ Butt +onOption][@(0.0.255) `&]_[* SetStyle]([@(0.0.255) const]_[_^ButtonOption`:`:Style^ Style][@(0.0.255) `& +]_[*@3 s])&] +[s2; Sets the style of the button to [%-*@3 s]. Returns `*this for +chaining.&] +[s3; &] +[s4;%- &] +[s5;:ButtonOption`:`:AutoStyle`(`):%- [_^ButtonOption^ ButtonOption][@(0.0.255) `&]_[* Auto +Style]()&] +[s2; Clears all style information, reverting to the default look. +Returns `*this for chaining.&] +[s3;%- &] +[s0; &] +[s0;%- &] +[s0;%- &] +[ {{10000@3 [s0; [*@(229)4 ButtonOption`::Style]]}}&] +[s3; &] +[s1;:ButtonOption`:`:Style`:`:struct:%- [@(0.0.255)3 struct][3 _][*3 Style][3 _:_][@(0.0.255)3 p +ublic][3 _][*@3;3 ChStyle][@(0.0.255)3 <][*3 Style][@(0.0.255)3 >][3 _]&] +[s9; This structure defines the look of a ButtonOption.&] +[s3;%- &] [s0; ] \ No newline at end of file diff --git a/uppsrc/CtrlLib/src.tpp/Button$en-us.tpp b/uppsrc/CtrlLib/src.tpp/Button_en-us.tpp similarity index 97% rename from uppsrc/CtrlLib/src.tpp/Button$en-us.tpp rename to uppsrc/CtrlLib/src.tpp/Button_en-us.tpp index 5b118cce8..9fa535684 100644 --- a/uppsrc/CtrlLib/src.tpp/Button$en-us.tpp +++ b/uppsrc/CtrlLib/src.tpp/Button_en-us.tpp @@ -1,187 +1,187 @@ -topic "Button"; -[2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,0#27521748481378242620020725143825:desc] -[0 $$3,0#96390100711032703541132217272105:end] -[H6;0 $$4,0#05600065144404261032431302351956:begin] -[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] -[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] -[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] -[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] -[b42;2 $$9,9#13035079074754324216151401829390:normal] -[{_} -[ {{10000@3 [s0;%% [*@(229)4 Button]]}}&] -[s3;%% &] -[s1;:Button`:`:class: [@(0.0.255)3 class][3 _][*3 Button][3 _:_][@(0.0.255)3 public][3 _][*@3;3 Push -er]&] -[s0;%% &] -[s2;%% -@@image:456&175 -€ƒÉ€œ€€€ƒäÿ€€€€ø‡œí˜Á˂ѦÇû˜ýÎ’ÁÐ׈‚îÁ³Ð©ËÔÅÛÚ ‘ᗨĘÈÁÝŒº„ÁÒˆ¯Á©˜ŠÊŠ¡ÄÚâí© -šå®Ù°ýᯯõ±êŒ”ƒ¼¾þ‡™·ÏõÚþŒ óÌÊΤœ¢ŸìºžÊìÄï¯Ï…‚àÑöׯ°»è¢ŸŸÚš›“ßÁÄôÊüòЖ¨ç­æÍà -ûúð‚»á‹ÈÀÉ¢–«Œ¸Çï§É½ý˨ÿï¶å¡†æ¢šßðŠ…’Òˆ¿¬Ÿ­®…Ñ»ßÛ¶½ÕÐâô¬‹Ÿ±…¬¨í¸„Ñ¶Ýƒš„šµŸ¡‹ê -ýÛÛ‘¾ÔÚíȯ‘ÔÚ­‹Éˆ²ÔÍí̆ ÖüìðÀ‡ÙÚ´³àÂДëüÔ¹ òíê„®§œˆê£ïõª‡”¯Í›ß§ó媄¯µê›Éõë -ÌÓÇùò•‚ûÚ«Ùá€úµÍ©“¸žò ¨¡½¼›œÐ¼¶•팘ԪÆù‰ƒª×¦ê¾™ëŒ‚šÑþþà¢þ¯©›®²³Ì•Ÿ©‹¢ ¨•î³ -Œ¢ ¨å²·¢éèËóÔîÉ’×¢€Úð󩨗µÌô˜ÛøñÞþÀÁ䳌ÏÛ­•ˆº•øæÖÌ÷è×ô€ƒþÁëÁå·ƒ¼¯²éáøÓ©µôî -ãßïóú„ý‚§—Õ¬ùßû€Îœ€þŸßƒ°Œ–ŠîêµÄ„¿¹¨¢ö - -@@image:431&187 -€ƒÅ€ž€€€ƒâÿ€€€€øœí˜ÏË‚Á–”Çû³úú„…ÁÿÂô‹Ù‚ÎÝ‚ ®žô»öˆÊë¢×¢Žýݺ„„É…•˜ŠŠÑ˜ã®¿ØÓ“ÝÔ -÷¤¾°ËÌÎñ¼×麰Ã烰ûü³ï¾¼”¯ïíêÖŽˆéø÷²©øòîâöúÜ ðáÖÜÛ×…¬îî¹Î¯íÍέ™¿ÁÂòÎúöÞ»Ùʹݦ ƒ -ŽÍ¸€øÍ²ßé¬üÎýú±ªò׉”ôÀ ïЈºèœú‚—äÉßóçëÿèü½Âƒ¬ƒö¡¯Ãá‡ÁÄñ£áÜÛ¥ƒøºàзˆ³Ó“ͽί÷î¤ -›Žãô™Ìø–Äÿ—ó俦©÷Óé´¹ ¢æÇõðÏ£õÚÁí–‡ÔäæþÞ‚þá¤ÎÛ«Á•Õñ÷ùãÓ¼‘¹Çµ‹–ƒ©ÓìØœÐç‘“àÞÒˆÈ -湚ˆžÒçµþÞ《ªø÷Þ’Ò䈼ŕ£‚Ա땎û¨¨ºÏúˆê¨ßÃý¡õäêÕ‹ƒªÊ¯ÇÞਢúȞʹÀÄûÑÎ……Ÿ„œù— -ùÉÂꔬ¼²ÁºÖáÙ ÞȧǴÁèÐõ°“åÓ‰ƒçˆÅŽÕº˜ƒÊ°ß½ÜߚĬÁ¤²¸’’õ¬°Ü»ƒªæ»ùÌÄè┃¾¡À壔†òð -•ÉÅËÅœô×У‰ÿÓà‚¯¾ÀÅé¶åÏП€ÁèŽÿ¾ŽŸåÂ…ýÝ‚ö‚ÆÍ—òª€§ - -@@image:150&162 -€ƒ˜€š€€€ƒæÿ€€€€ø½œûóòƛѵ„›åõ®£„¥ÁùÏÀåƒÎéÛŸæìý˜ÄŒ‚ªÄãŽÐıˆ¨’¿ˆ¹§ï¼£†‘®´çÄõ·Ä  -»‚朿úš˜ŽÄМ£×Þ±÷ܹœ©–ÂМ£—߀à‘Ћ„Á¸˜¤¢„͹üñ™Ú„Áµ¢±¡ˆ¡ ¹‡¯¼£‘¸öˆÂ–¢èÛÎó‘‘Ü -¸´ñ‚æì¿¡ûÁ”̤èξ³ˆ–Á„ýõú†±ˆð¼Ÿ¾ÈŒÙÂò»©²€Ùœê•‡ƒ†Þ°Óˆ€ò‡ÓþÉ - -@@image:118&125 -€ƒ“€”€€€ƒìÿ€€€€ø§œ½“¿ŠÂ°Ê”‡è¼‚©«—ðñˆŠ‡ðð¨îŽþ©ŽžŽÚ¨´Ð‘Ó´ÕÊÀð‚ñ§Ïž±Í‚ö˜°üÃøåýÉ -¼ ¯²ØÉßѤʅýÎ…ÔûÌÔ»‘ÅÞ¶ÓºÃÆûà‚«Á¨±Ä¤ ¹æÛòþжœ«®Ô¦‹Øù즣ýˆ¸Â¥®åâ¦Ø³Üßü¤éüªü–± -‹™ŠÂ§Öïš‹É爋øåàä‘úè’§Ñ…®à‹àÜ¥Ž×¢¹àúãŽÜâù¦Õ愞¸ÄÃÑòŒÐӆʓ·øòã•ñ‰ŽóñðÓþÇ÷êœÅöï§Ü -þ¹Ô„ȱ§õ”» Çê¹×«ÛÿŽÿþǧ’ÿµ -&] -[s0;%% &] -[s9;%% The famous foundation of any GUI. It has no Value.&] -[s0;%% &] -[s0; [%%/ Derived from][%% ][^topic`:`/`/CtrlLib`/src`/Pusher`$en`-us^ Pusher]&] -[s3;%% &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0;%% [* Constructor Detail]]}}&] -[s3; &] -[s5;:Button`:`:Button`(`): [* Button]()&] -[s2;%% Initializes the button.&] -[s3; &] -[s4; &] -[s5;:Button`:`:`~Button`(`): [@(0.0.255) `~][* Button]()&] -[s2;%% Default destructor.&] -[s3; &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0;%% [* Public Member List]]}}&] -[s3; &] -[s5;:Button`:`:SetImage`(const Image`&`): [_^Button^ Button][@(0.0.255) `&]_[* SetImage]([@(0.0.255) c -onst]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img])&] -[s2;%% Sets the image of the button.&] -[s7;%% [%-*C@3 img]-|Image.&] -[s7;%% [*/ Return value]-|`*this for chaining.&] -[s3;%% &] -[s4; &] -[s5;:Button`:`:SetMonoImage`(const Image`&`): [_^Button^ Button][@(0.0.255) `&]_[* SetMonoI -mage]([@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img])&] -[s2;%% Sets the monochromatic image. Image is colored according to -current GUI look`&feel.&] -[s7;%% [%-*C@3 img]-|Image.&] -[s7;%% [*/ Return value]-|`*this for chaining.&] -[s3;%% &] -[s4; &] -[s5;:Button`:`:EdgeStyle`(`): [_^Button^ Button][@(0.0.255) `&]_[* EdgeStyle]()&] -[s2;%% Activates visual style suitable for buttons used inside frame -of other Ctrls, like drop`-down buttons in droplists.&] -[s2;%% -@@image:362&150 -€ƒº€˜€€€ƒèÿ€€€€ø§œíÖ͊°ž†áÞÏ»øŽ„·žÁ›øŠ„÷îµâÅ¥ªÔ–•ƒ«ÿ‹†Á¼††ÂÍæè™ØÂ¿¡á¤Ý¤Ó®žºè -½«’©êê¾ë¬õú€åèßàõ«Ú­¸¼ºý³§ýçåÚââðÒ÷¢èçòÃÉé‡í„Ö©‘Ö‘í쯸°ùéÝØÖÞ×»ݽ¸•ü¶˜åé§Û„ê´ -åÛæïÎÀ´Ñ÷æ®Ó°ŠŽîè„Ä»Žï”á€ÙûŠÄ»Úߨ͆ɥ¯è›ÃÕ¥¡Úó²íðù²ÒÔÌ÷ˆò¾¬ŽõœÀ¾å¡œŽÀ´‘ˆ¹¡è -«ÿëŸÌ÷åë¾ËÒÖ•Û‡ˆ«°„­ -&] -[s7;%% [*/ Return value]-|`*this for chaining.&] -[s3;%% &] -[s4; &] -[s5;:Button`:`:ScrollStyle`(`): [_^Button^ Button][@(0.0.255) `&]_[* ScrollStyle]()&] -[s2;%% Activates visual style suitable for buttons used in Scrollbars.&] -[s2;%% -@@image:125&325 -€ƒ”€´€€€ƒÌÿ€€€€ø§œí“½Ž‚ÀÈÆè¼‚­—°ñˆš”àÁì¬üÁË„‹…•ÊͰ¦Òˆ‚¡±ñ‚øËÉèæ³¬ãÔÅŠäÉ«¶³ó -ö–ÂÌØýŽõö“Ùûɓݷ¬¨îϲÛÝá¡£½¨ƒÙÔ”ìÝ„Áᔥ·âû¦ûÇ–Êà”—÷¢µÛ¤Î¼®ç Òññ†É¸ÙÞßùüÁßûÖ–Üœ¦ -èî¢Ó«·•Èë­ú·–À¤•ä ãΜ‹¡äÄÂÄ™÷¼Š¥€Ð”³àÝÐ𪎉¹Â¸£å™ ŒŽ‚‘žáÝ€§ÌÅÿ×çî‘ÇÛßš»«ÅöÏ£« -”šÔ¤ð³öñðÇÖ»ÏÿìöÑ¥÷—‹–¯ÞÌŒéÍç°Ì¹§¢ÀƒÊþ³¿õ÷£ËìïÇë—™Éãš×¸¥Æµ®ñ«ç¾Š€Íýû— -&] -[s7;%% [*/ Return value]-|`*this for chaining.&] -[s3;%% &] -[s4; &] -[s5;:Button`:`:NormalStyle`(`): [_^Button^ Button][@(0.0.255) `&]_[* NormalStyle]()&] -[s2;%% Activates the visual style suitable for a standard button.&] -[s7;%% [*/ Return value]-|`*this for chaining.&] -[s3; &] -[s4; &] -[s5;:Button`:`:LeftEdgeStyle`(`): [_^Button^ Button][@(0.0.255) `&]_[* LeftEdgeStyle]()&] -[s2;%% Activates visual style suitable for buttons used inside frame -of other Ctrls, on the left side, like in MultiButton.&] -[s7;%% [*/ Return value]-|`*this for chaining.&] -[s3; &] -[s4; &] -[s5;:Button`:`:AutoStyle`(`): [_^Button^ Button][@(0.0.255) `&]_[* AutoStyle]()&] -[s2;%% Sets the button to automatic look, clearing all style information.&] -[s7;%% [*/ Return value]-|`*this for chaining.&] -[s0; &] -[s4; &] -[s5;:Button`:`:Ok`(`): [_^Button^ Button][@(0.0.255) `&]_[* Ok]()&] -[s2;%% Makes button `"default accept`" `- it might have different -visual representation and it is activated by Enter hotkey.&] -[s7;%% [*/ Return value]-|`*this for chaining.&] -[s3;%% &] -[s4; &] -[s5;:Button`:`:Cancel`(`): [_^Button^ Button][@(0.0.255) `&]_[* Cancel]()&] -[s2;%% Makes button `"default cancel`" `- it might have different -visual representation and it is activated by Esc hotkey.&] -[s7;%% [*/ Return value]-|`*this for chaining.&] -[s3;%% &] -[s4; &] -[s5;:Button`:`:Exit`(`): [_^Button^ Button][@(0.0.255) `&]_[* Exit]()&] -[s2;%% Makes button `"default exit`" `- it might have different visual -representation and it is activated by both Esc or Enter hotkey.&] -[s7;%% [*/ Return value]-|`*this for chaining.&] -[s3;%% &] -[s4; &] -[s5;:Button`:`:Normal`(`): [_^Button^ Button][@(0.0.255) `&]_[* Normal]()&] -[s2;%% Makes button (previously modifies with Ok, Cancel or Exit) -`"normal`".&] -[s7;%% [*/ Return value]-|`*this for chaining.&] -[s3;%% &] -[s4; &] -[s5;:Button`:`:SetStyle`(const Button`:`:Style`&`): [_^Button^ Button][@(0.0.255) `&]_[* Se -tStyle]([@(0.0.255) const]_[_^Button`:`:Style^ Style][@(0.0.255) `&]_[*@3 s])&] -[s2;%% Sets the style of to button to [^topic`:`/`/CtrlLib`/src`/Button`$en`-us`#Button`:`:Style`:`:struct^ B -utton`::Style] [%-*@3 s].&] -[s3;%% &] -[s4; &] -[s5;:Button`:`:StyleNormal`(`): [@(0.0.255) static] [@(0.0.255) const]_[_^Button`:`:Style^ S -tyle][@(0.0.255) `&]_[* StyleNormal]()&] -[s2;%% Returns the style used when painting `"normal`" buttons.&] -[s3; &] -[s4; &] -[s5;:Button`:`:StyleOk`(`): [@(0.0.255) static] [@(0.0.255) const]_[_^Button`:`:Style^ Styl -e][@(0.0.255) `&]_[* StyleOk]()&] -[s2;%% Returns the style used when painting `"default accept`" buttons.&] -[s3; &] -[s4; &] -[s5;:Button`:`:StyleEdge`(`): [@(0.0.255) static] [@(0.0.255) const]_[_^Button`:`:Style^ St -yle][@(0.0.255) `&]_[* StyleEdge]()&] -[s2;%% Returns the style used when painting buttons on the inside -of a frame.&] -[s3; &] -[s4; &] -[s5;:Button`:`:StyleLeftEdge`(`): [@(0.0.255) static] [@(0.0.255) const]_[_^Button`:`:Style^ S -tyle][@(0.0.255) `&]_[* StyleLeftEdge]()&] -[s2;%% Returns the style used when painting buttons on the inside -of a frame, on the left side.&] -[s3; &] -[s4; &] -[s5;:Button`:`:StyleScroll`(`): [@(0.0.255) static] [@(0.0.255) const]_[_^Button`:`:Style^ S -tyle][@(0.0.255) `&]_[* StyleScroll]()&] -[s2;%% Returns the style used when painting scrollbar buttons.&] -[s3; &] -[s0; &] -[s0;3%% &] -[s0; &] -[ {{10000@3 [s0;%% [*@(229)4 Button`::Style]]}}&] -[s3; &] -[s1;:Button`:`:Style`:`:struct: [@(0.0.255)3 struct][3 _][*3 Style][3 _:_][@(0.0.255)3 public][3 _ -][*@3;3 ChStyle][@(0.0.255)3 <][*3 Style][@(0.0.255)3 >][3 _]&] -[s9;%% This structure defines the look of a Button.&] -[s3; &] +topic "Button"; +[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,0#27521748481378242620020725143825:desc] +[0 $$3,0#96390100711032703541132217272105:end] +[H6;0 $$4,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] +[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] +[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] +[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] +[b42;2 $$9,9#13035079074754324216151401829390:normal] +[{_} +[ {{10000@3 [s0;%% [*@(229)4 Button]]}}&] +[s3;%% &] +[s1;:Button`:`:class: [@(0.0.255)3 class][3 _][*3 Button][3 _:_][@(0.0.255)3 public][3 _][*@3;3 Push +er]&] +[s0;%% &] +[s2;%% +@@image:456&175 +€ƒÉ€œ€€€ƒäÿ€€€€ø‡œí˜Á˂ѦÇû˜ýÎ’ÁÐ׈‚îÁ³Ð©ËÔÅÛÚ ‘ᗨĘÈÁÝŒº„ÁÒˆ¯Á©˜ŠÊŠ¡ÄÚâí© +šå®Ù°ýᯯõ±êŒ”ƒ¼¾þ‡™·ÏõÚþŒ óÌÊΤœ¢ŸìºžÊìÄï¯Ï…‚àÑöׯ°»è¢ŸŸÚš›“ßÁÄôÊüòЖ¨ç­æÍà +ûúð‚»á‹ÈÀÉ¢–«Œ¸Çï§É½ý˨ÿï¶å¡†æ¢šßðŠ…’Òˆ¿¬Ÿ­®…Ñ»ßÛ¶½ÕÐâô¬‹Ÿ±…¬¨í¸„Ñ¶Ýƒš„šµŸ¡‹ê +ýÛÛ‘¾ÔÚíȯ‘ÔÚ­‹Éˆ²ÔÍí̆ ÖüìðÀ‡ÙÚ´³àÂДëüÔ¹ òíê„®§œˆê£ïõª‡”¯Í›ß§ó媄¯µê›Éõë +ÌÓÇùò•‚ûÚ«Ùá€úµÍ©“¸žò ¨¡½¼›œÐ¼¶•팘ԪÆù‰ƒª×¦ê¾™ëŒ‚šÑþþà¢þ¯©›®²³Ì•Ÿ©‹¢ ¨•î³ +Œ¢ ¨å²·¢éèËóÔîÉ’×¢€Úð󩨗µÌô˜ÛøñÞþÀÁ䳌ÏÛ­•ˆº•øæÖÌ÷è×ô€ƒþÁëÁå·ƒ¼¯²éáøÓ©µôî +ãßïóú„ý‚§—Õ¬ùßû€Îœ€þŸßƒ°Œ–ŠîêµÄ„¿¹¨¢ö + +@@image:431&187 +€ƒÅ€ž€€€ƒâÿ€€€€øœí˜ÏË‚Á–”Çû³úú„…ÁÿÂô‹Ù‚ÎÝ‚ ®žô»öˆÊë¢×¢Žýݺ„„É…•˜ŠŠÑ˜ã®¿ØÓ“ÝÔ +÷¤¾°ËÌÎñ¼×麰Ã烰ûü³ï¾¼”¯ïíêÖŽˆéø÷²©øòîâöúÜ ðáÖÜÛ×…¬îî¹Î¯íÍέ™¿ÁÂòÎúöÞ»Ùʹݦ ƒ +ŽÍ¸€øÍ²ßé¬üÎýú±ªò׉”ôÀ ïЈºèœú‚—äÉßóçëÿèü½Âƒ¬ƒö¡¯Ãá‡ÁÄñ£áÜÛ¥ƒøºàзˆ³Ó“ͽί÷î¤ +›Žãô™Ìø–Äÿ—ó俦©÷Óé´¹ ¢æÇõðÏ£õÚÁí–‡ÔäæþÞ‚þá¤ÎÛ«Á•Õñ÷ùãÓ¼‘¹Çµ‹–ƒ©ÓìØœÐç‘“àÞÒˆÈ +湚ˆžÒçµþÞ《ªø÷Þ’Ò䈼ŕ£‚Ա땎û¨¨ºÏúˆê¨ßÃý¡õäêÕ‹ƒªÊ¯ÇÞਢúȞʹÀÄûÑÎ……Ÿ„œù— +ùÉÂꔬ¼²ÁºÖáÙ ÞȧǴÁèÐõ°“åÓ‰ƒçˆÅŽÕº˜ƒÊ°ß½ÜߚĬÁ¤²¸’’õ¬°Ü»ƒªæ»ùÌÄè┃¾¡À壔†òð +•ÉÅËÅœô×У‰ÿÓà‚¯¾ÀÅé¶åÏП€ÁèŽÿ¾ŽŸåÂ…ýÝ‚ö‚ÆÍ—òª€§ + +@@image:150&162 +€ƒ˜€š€€€ƒæÿ€€€€ø½œûóòƛѵ„›åõ®£„¥ÁùÏÀåƒÎéÛŸæìý˜ÄŒ‚ªÄãŽÐıˆ¨’¿ˆ¹§ï¼£†‘®´çÄõ·Ä  +»‚朿úš˜ŽÄМ£×Þ±÷ܹœ©–ÂМ£—߀à‘Ћ„Á¸˜¤¢„͹üñ™Ú„Áµ¢±¡ˆ¡ ¹‡¯¼£‘¸öˆÂ–¢èÛÎó‘‘Ü +¸´ñ‚æì¿¡ûÁ”̤èξ³ˆ–Á„ýõú†±ˆð¼Ÿ¾ÈŒÙÂò»©²€Ùœê•‡ƒ†Þ°Óˆ€ò‡ÓþÉ + +@@image:118&125 +€ƒ“€”€€€ƒìÿ€€€€ø§œ½“¿ŠÂ°Ê”‡è¼‚©«—ðñˆŠ‡ðð¨îŽþ©ŽžŽÚ¨´Ð‘Ó´ÕÊÀð‚ñ§Ïž±Í‚ö˜°üÃøåýÉ +¼ ¯²ØÉßѤʅýÎ…ÔûÌÔ»‘ÅÞ¶ÓºÃÆûà‚«Á¨±Ä¤ ¹æÛòþжœ«®Ô¦‹Øù즣ýˆ¸Â¥®åâ¦Ø³Üßü¤éüªü–± +‹™ŠÂ§Öïš‹É爋øåàä‘úè’§Ñ…®à‹àÜ¥Ž×¢¹àúãŽÜâù¦Õ愞¸ÄÃÑòŒÐӆʓ·øòã•ñ‰ŽóñðÓþÇ÷êœÅöï§Ü +þ¹Ô„ȱ§õ”» Çê¹×«ÛÿŽÿþǧ’ÿµ +&] +[s0;%% &] +[s9;%% The famous foundation of any GUI. It has no Value.&] +[s0;%% &] +[s0; [%%/ Derived from][%% ][^topic`:`/`/CtrlLib`/src`/Pusher`$en`-us^ Pusher]&] +[s3;%% &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0;%% [* Constructor Detail]]}}&] +[s3; &] +[s5;:Button`:`:Button`(`): [* Button]()&] +[s2;%% Initializes the button.&] +[s3; &] +[s4; &] +[s5;:Button`:`:`~Button`(`): [@(0.0.255) `~][* Button]()&] +[s2;%% Default destructor.&] +[s3; &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0;%% [* Public Member List]]}}&] +[s3; &] +[s5;:Button`:`:SetImage`(const Image`&`): [_^Button^ Button][@(0.0.255) `&]_[* SetImage]([@(0.0.255) c +onst]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img])&] +[s2;%% Sets the image of the button.&] +[s7;%% [%-*C@3 img]-|Image.&] +[s7;%% [*/ Return value]-|`*this for chaining.&] +[s3;%% &] +[s4; &] +[s5;:Button`:`:SetMonoImage`(const Image`&`): [_^Button^ Button][@(0.0.255) `&]_[* SetMonoI +mage]([@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img])&] +[s2;%% Sets the monochromatic image. Image is colored according to +current GUI look`&feel.&] +[s7;%% [%-*C@3 img]-|Image.&] +[s7;%% [*/ Return value]-|`*this for chaining.&] +[s3;%% &] +[s4; &] +[s5;:Button`:`:EdgeStyle`(`): [_^Button^ Button][@(0.0.255) `&]_[* EdgeStyle]()&] +[s2;%% Activates visual style suitable for buttons used inside frame +of other Ctrls, like drop`-down buttons in droplists.&] +[s2;%% +@@image:362&150 +€ƒº€˜€€€ƒèÿ€€€€ø§œíÖ͊°ž†áÞÏ»øŽ„·žÁ›øŠ„÷îµâÅ¥ªÔ–•ƒ«ÿ‹†Á¼††ÂÍæè™ØÂ¿¡á¤Ý¤Ó®žºè +½«’©êê¾ë¬õú€åèßàõ«Ú­¸¼ºý³§ýçåÚââðÒ÷¢èçòÃÉé‡í„Ö©‘Ö‘í쯸°ùéÝØÖÞ×»ݽ¸•ü¶˜åé§Û„ê´ +åÛæïÎÀ´Ñ÷æ®Ó°ŠŽîè„Ä»Žï”á€ÙûŠÄ»Úߨ͆ɥ¯è›ÃÕ¥¡Úó²íðù²ÒÔÌ÷ˆò¾¬ŽõœÀ¾å¡œŽÀ´‘ˆ¹¡è +«ÿëŸÌ÷åë¾ËÒÖ•Û‡ˆ«°„­ +&] +[s7;%% [*/ Return value]-|`*this for chaining.&] +[s3;%% &] +[s4; &] +[s5;:Button`:`:ScrollStyle`(`): [_^Button^ Button][@(0.0.255) `&]_[* ScrollStyle]()&] +[s2;%% Activates visual style suitable for buttons used in Scrollbars.&] +[s2;%% +@@image:125&325 +€ƒ”€´€€€ƒÌÿ€€€€ø§œí“½Ž‚ÀÈÆè¼‚­—°ñˆš”àÁì¬üÁË„‹…•ÊͰ¦Òˆ‚¡±ñ‚øËÉèæ³¬ãÔÅŠäÉ«¶³ó +ö–ÂÌØýŽõö“Ùûɓݷ¬¨îϲÛÝá¡£½¨ƒÙÔ”ìÝ„Áᔥ·âû¦ûÇ–Êà”—÷¢µÛ¤Î¼®ç Òññ†É¸ÙÞßùüÁßûÖ–Üœ¦ +èî¢Ó«·•Èë­ú·–À¤•ä ãΜ‹¡äÄÂÄ™÷¼Š¥€Ð”³àÝÐ𪎉¹Â¸£å™ ŒŽ‚‘žáÝ€§ÌÅÿ×çî‘ÇÛßš»«ÅöÏ£« +”šÔ¤ð³öñðÇÖ»ÏÿìöÑ¥÷—‹–¯ÞÌŒéÍç°Ì¹§¢ÀƒÊþ³¿õ÷£ËìïÇë—™Éãš×¸¥Æµ®ñ«ç¾Š€Íýû— +&] +[s7;%% [*/ Return value]-|`*this for chaining.&] +[s3;%% &] +[s4; &] +[s5;:Button`:`:NormalStyle`(`): [_^Button^ Button][@(0.0.255) `&]_[* NormalStyle]()&] +[s2;%% Activates the visual style suitable for a standard button.&] +[s7;%% [*/ Return value]-|`*this for chaining.&] +[s3; &] +[s4; &] +[s5;:Button`:`:LeftEdgeStyle`(`): [_^Button^ Button][@(0.0.255) `&]_[* LeftEdgeStyle]()&] +[s2;%% Activates visual style suitable for buttons used inside frame +of other Ctrls, on the left side, like in MultiButton.&] +[s7;%% [*/ Return value]-|`*this for chaining.&] +[s3; &] +[s4; &] +[s5;:Button`:`:AutoStyle`(`): [_^Button^ Button][@(0.0.255) `&]_[* AutoStyle]()&] +[s2;%% Sets the button to automatic look, clearing all style information.&] +[s7;%% [*/ Return value]-|`*this for chaining.&] +[s0; &] +[s4; &] +[s5;:Button`:`:Ok`(`): [_^Button^ Button][@(0.0.255) `&]_[* Ok]()&] +[s2;%% Makes button `"default accept`" `- it might have different +visual representation and it is activated by Enter hotkey.&] +[s7;%% [*/ Return value]-|`*this for chaining.&] +[s3;%% &] +[s4; &] +[s5;:Button`:`:Cancel`(`): [_^Button^ Button][@(0.0.255) `&]_[* Cancel]()&] +[s2;%% Makes button `"default cancel`" `- it might have different +visual representation and it is activated by Esc hotkey.&] +[s7;%% [*/ Return value]-|`*this for chaining.&] +[s3;%% &] +[s4; &] +[s5;:Button`:`:Exit`(`): [_^Button^ Button][@(0.0.255) `&]_[* Exit]()&] +[s2;%% Makes button `"default exit`" `- it might have different visual +representation and it is activated by both Esc or Enter hotkey.&] +[s7;%% [*/ Return value]-|`*this for chaining.&] +[s3;%% &] +[s4; &] +[s5;:Button`:`:Normal`(`): [_^Button^ Button][@(0.0.255) `&]_[* Normal]()&] +[s2;%% Makes button (previously modifies with Ok, Cancel or Exit) +`"normal`".&] +[s7;%% [*/ Return value]-|`*this for chaining.&] +[s3;%% &] +[s4; &] +[s5;:Button`:`:SetStyle`(const Button`:`:Style`&`): [_^Button^ Button][@(0.0.255) `&]_[* Se +tStyle]([@(0.0.255) const]_[_^Button`:`:Style^ Style][@(0.0.255) `&]_[*@3 s])&] +[s2;%% Sets the style of to button to [^topic`:`/`/CtrlLib`/src`/Button`$en`-us`#Button`:`:Style`:`:struct^ B +utton`::Style] [%-*@3 s].&] +[s3;%% &] +[s4; &] +[s5;:Button`:`:StyleNormal`(`): [@(0.0.255) static] [@(0.0.255) const]_[_^Button`:`:Style^ S +tyle][@(0.0.255) `&]_[* StyleNormal]()&] +[s2;%% Returns the style used when painting `"normal`" buttons.&] +[s3; &] +[s4; &] +[s5;:Button`:`:StyleOk`(`): [@(0.0.255) static] [@(0.0.255) const]_[_^Button`:`:Style^ Styl +e][@(0.0.255) `&]_[* StyleOk]()&] +[s2;%% Returns the style used when painting `"default accept`" buttons.&] +[s3; &] +[s4; &] +[s5;:Button`:`:StyleEdge`(`): [@(0.0.255) static] [@(0.0.255) const]_[_^Button`:`:Style^ St +yle][@(0.0.255) `&]_[* StyleEdge]()&] +[s2;%% Returns the style used when painting buttons on the inside +of a frame.&] +[s3; &] +[s4; &] +[s5;:Button`:`:StyleLeftEdge`(`): [@(0.0.255) static] [@(0.0.255) const]_[_^Button`:`:Style^ S +tyle][@(0.0.255) `&]_[* StyleLeftEdge]()&] +[s2;%% Returns the style used when painting buttons on the inside +of a frame, on the left side.&] +[s3; &] +[s4; &] +[s5;:Button`:`:StyleScroll`(`): [@(0.0.255) static] [@(0.0.255) const]_[_^Button`:`:Style^ S +tyle][@(0.0.255) `&]_[* StyleScroll]()&] +[s2;%% Returns the style used when painting scrollbar buttons.&] +[s3; &] +[s0; &] +[s0;3%% &] +[s0; &] +[ {{10000@3 [s0;%% [*@(229)4 Button`::Style]]}}&] +[s3; &] +[s1;:Button`:`:Style`:`:struct: [@(0.0.255)3 struct][3 _][*3 Style][3 _:_][@(0.0.255)3 public][3 _ +][*@3;3 ChStyle][@(0.0.255)3 <][*3 Style][@(0.0.255)3 >][3 _]&] +[s9;%% This structure defines the look of a Button.&] +[s3; &] [s0; ] \ No newline at end of file diff --git a/uppsrc/CtrlLib/src.tpp/ColorPopUp$en-us.tpp b/uppsrc/CtrlLib/src.tpp/ColorPopUp_en-us.tpp similarity index 99% rename from uppsrc/CtrlLib/src.tpp/ColorPopUp$en-us.tpp rename to uppsrc/CtrlLib/src.tpp/ColorPopUp_en-us.tpp index bbc0abeac..9f4bb6243 100644 --- a/uppsrc/CtrlLib/src.tpp/ColorPopUp$en-us.tpp +++ b/uppsrc/CtrlLib/src.tpp/ColorPopUp_en-us.tpp @@ -1,223 +1,223 @@ -topic "Color widgets"; -[2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,0#27521748481378242620020725143825:desc] -[0 $$3,0#96390100711032703541132217272105:end] -[H6;0 $$4,0#05600065144404261032431302351956:begin] -[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] -[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] -[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] -[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] -[b42;2 $$9,9#13035079074754324216151401829390:normal] -[{_}%EN-US -[ {{10000@3 [s0; [*@(229)4 ColorPopUp]]}}&] -[s3;%- &] -[s1;:ColorPopUp`:`:class:%- [@(0.0.255)3 class][3 _][*3 ColorPopUp][3 _:_][@(0.0.255)3 public][3 _ -][*@3;3 Ctrl]&] -[s9; This class implements pop`-up window for color`-selection.&] -[s0; &] -[s2; -@@image:1100&1399 -(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) -&] -[s0; &] -[s9; ColorPopUp calls [* WhenAction] Ctrl callback and sets modify -flag whenever selected color changes (that is [*/ during] selection). -&] -[s0; &] -[s0;%- [%%/ Derived from][%% ][^topic`:`/`/CtrlCore`/src`/Ctrl`$en`-us`#`:`:Ctrl`:`:class Ctrl^ C -trl]&] -[s3; &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] -[s3;%- &] -[s5;:ColorPopUp`:`:PopUp`(Ctrl`*`,Color`):%- [@(0.0.255) void]_[* PopUp]([_^Ctrl^ Ctrl]_`*[*@3 o -wner], [_^Color^ Color]_[*@3 c]_`=_White)&] -[s2; Opens ColorPopUp as pop`-up window.&] -[s7; [%-*C@3 owner]-|Owner Ctrl. ColorPopUp appears bellow or above -this Ctrl.&] -[s7; [%-*C@3 c]-|Initial color for wheel and ramp selectors.&] -[s3; &] -[s4;%- &] -[s5;:ColorPopUp`:`:Get`(`)const:%- [_^Color^ Color]_[* Get]()_[@(0.0.255) const]&] -[s7; [*/ Return value]-|Returns current color selected.&] -[s3; &] -[s4;%- &] -[s5;:ColorPopUp`:`:NotNull`(bool`):%- [_^ColorPopUp^ ColorPopUp][@(0.0.255) `&]_[* NotNull]( -[@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2; Setups whether Null (that is transparent) color choice is enabled. -Constructor setting is NotNull(false).&] -[s7; [%-*C@3 b]-|true disables Null color choice. &] -[s7; [*/ Return value]-|`*this.&] -[s3; &] -[s4;%- &] -[s5;:ColorPopUp`:`:SColors`(bool`):%- [_^ColorPopUp^ ColorPopUp][@(0.0.255) `&]_[* SColors]( -[@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2; Setups whether choice of system colors is allowed. Constructor -setting is SColors(false).&] -[s7; [%-*C@3 b]-|true enables choice of system colors.&] -[s7; [*/ Return value]-|`*this.&] -[s3; &] -[s4;%- &] -[s5;:ColorPopUp`:`:NullText`(const char`*`):%- [_^ColorPopUp^ ColorPopUp][@(0.0.255) `&]_ -[* NullText]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 s])&] -[s2; Setups text for Null color choice. Constructor setting for en`-us -is `"(transparent)`".&] -[s7; [%-*C@3 s]-|New text for Null color choice.&] -[s7; [*/ Return value]-|`*this.&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:ColorPopUp`:`:WithVoid`(bool`):%- [_^Upp`:`:ColorPopUp^ ColorPopUp][@(0.0.255) `& -]_[* WithVoid]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2; Enables special VoidColor() (labeled `"(None)`", unless the -name is changed by VoidText).&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:ColorPopUp`:`:VoidText`(const char`*`):%- [_^Upp`:`:ColorPopUp^ ColorPopUp][@(0.0.255) `& -]_[* VoidText]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 s])&] -[s2; Changes the label of VoidColor().&] -[s3; &] -[s4;%- &] -[s5;:ColorPopUp`:`:WhenCancel:%- [_^Callback^ Callback]_[* WhenCancel]&] -[s2; This callback is invoked when ColorPopUp is canceled (e.g. by -clicking outside).&] -[s3; &] -[s4;%- &] -[s5;:ColorPopUp`:`:WhenSelect:%- [_^Callback^ Callback]_[* WhenSelect]&] -[s2; This callback is invoked when color is chosen. Resulting color -can be obtained by Get().&] -[s0; &] -[s0;%- &] -[ {{10000@3 [s0; [*@(229)4 ColorPusher]]}}&] -[s3; &] -[s1;:ColorPusher`:`:class:%- [@(0.0.255)3 class][3 _][*3 ColorPusher][3 _:_][@(0.0.255)3 public][3 _ -][*@3;3 Ctrl]&] -[s9; This class represents Ctrl with Color value. It uses ColorPopUp -to edit this value.&] -[s0; &] -[s2; -@@image:398&199 -(AzAAGAAAAOj/AAAAAHice/PyxptRRAitWTFzYNH////R3MMwcADoAKzu+T9AAI976B84RLjnPx3RqHtG3TPqnlH3jLpn1D3Ucg9dAX73DAjA6p4BaZfCEZp7BipkkMHABshQQQCO3pjh) - -@@image:1021&189 -(A30AFwAAAOn/AAAAAHic7Zg9DsIwDIW5v8SKxA0YOBBbZiTuYJhQ5Z8Xu03apvVTBpK6jv0lNoJSUqlz6fm451hhEBHDfkl11uf9UrFTqqcAdufBbZ3BkMLYr3TDI7HPU3PsnkLwHNbURrVni1WfLCpZs/4qZrHJt+SUeWiL3YnCg0iNnyWLbawd/9lFo1L3wn4s8l2xg+BDBhh7aGtahl1a7hm7VXRqbUo/6nQ5dqszhG6F6kdaro/dKnBQ+P2wAzj4Dlt7Of2Mjt15NKpAMTotPX6Oil3tBqHOUH00NHaMd3aT8duAp0dqMmR8MbGV6Qdr3UrTWqxOZWDVOP1bR/3s81fqQretomqYXQi7R60Cw3EOLZlL/gO5iVTsv8UcvQfDvvE9OJNKKnUyfQHnsr1w) -&] -[s0; &] -[s9; As is U`+`+ standard, Color value is set and get using SetData -and GetData virtual method.&] -[s9; WhenAction callback and modify set behaviour depends on track -mode. When track mode is enabled (Track(true)), WhenAction is -called and modify set upon any change of color (including moving -mouse through ColorPopUp). When track mode is off, it is called -and set only after new Color is selected.&] -[s9; &] -[s0;%- [%%/ Derived from][%% ][^topic`:`/`/CtrlCore`/src`/Ctrl`$en`-us`#`:`:Ctrl`:`:class Ctrl^ C -trl]&] -[s3; &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] -[s3;%- &] -[s5;:ColorPusher`:`:NullText`(const char`*`):%- [_^ColorPusher^ ColorPusher][@(0.0.255) `& -]_[* NullText]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 s])&] -[s2; Sets a text to be displayed if Color value is Null. Constructor -setting for en`-us is `"(transparent)`".&] -[s7; [%-*C@3 s]-|Text.&] -[s7; [*/ Return value]-|`*this.&] -[s3; &] -[s4;%- &] -[s5;:ColorPusher`:`:NotNull`(bool`):%- [_^ColorPusher^ ColorPusher][@(0.0.255) `&]_[* NotNu -ll]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2; Setups whether Null (that is transparent) color choice is enabled. -Constructor setting is NotNull(false).&] -[s7; [%-*C@3 b]-|true disables Null color choice. &] -[s7; [*/ Return value]-|`*this.&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:ColorPusher`:`:WithVoid`(bool`):%- [_^Upp`:`:ColorPusher^ ColorPusher][@(0.0.255) `& -]_[* WithVoid]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2; Enables special VoidColor() (labeled `"(None)`", unless the -name is changed by VoidText).&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:ColorPusher`:`:VoidText`(const char`*`):%- [_^Upp`:`:ColorPusher^ ColorPush -er][@(0.0.255) `&]_[* VoidText]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 s])&] -[s2; Changes the label of VoidColor().&] -[s3; &] -[s4;%- &] -[s5;:ColorPusher`:`:SColors`(bool`):%- [_^ColorPusher^ ColorPusher][@(0.0.255) `&]_[* SColo -rs]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2; Setups whether choice of system colors is allowed. Constructor -setting is SColors(false).&] -[s7; [%-*C@3 b]-|true enables choice of system colors.&] -[s7; [*/ Return value]-|`*this.&] -[s3; &] -[s4;%- &] -[s5;:ColorPusher`:`:WithText`(`):%- [_^ColorPusher^ ColorPusher][@(0.0.255) `&]_[* WithText -]()&] -[s2; Setups displaying of text representation of color.&] -[s7; [*/ Return value]-|`*this.&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:ColorPusher`:`:WithHex`(`):%- [_^Upp`:`:ColorPusher^ ColorPusher][@(0.0.255) `& -]_[* WithHex]()&] -[s2; Setups displaying of text representation of color in HTML hexadecimal -format.&] -[s3;%- &] -[s4;%- &] -[s5;:ColorPusher`:`:Track`(bool`):%- [_^ColorPusher^ ColorPusher][@(0.0.255) `&]_[* Track]( -[@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2; Setups track mode. Constructor setting is Track(false).&] -[s7; [%-*C@3 b]-|true enables track mode.&] -[s7; [*/ Return value]-|`*this&] -[s3; &] -[s4;%- &] -[s5;:ColorPusher`:`:NoTrack`(`):%- [_^ColorPusher^ ColorPusher][@(0.0.255) `&]_[* NoTrack]( -)&] -[s2; Same as Track(false).&] -[s7; [*/ Return value]-|`*this.&] -[s3; &] -[s0; &] -[s0; &] -[s0;%- &] -[ {{10000@3 [s0; [*@(229)4 ColorButton]]}}&] -[s3; &] -[s1;:ColorButton`:`:class:%- [@(0.0.255)3 class][3 _][*3 ColorButton][3 _:_][@(0.0.255)3 public][3 _ -][*@3;3 ColorPusher]&] -[s0; &] -[s2; -@@image:150&137 -(AxgAFgAAAOr/AAAAAHice/PyxpshhRgYGKhiyKP6aZQbRRVzIIZAECVGUcUcuCHIjIEyB00v2UZRxRxkXciAVKOQowkTEWkOfkOINwqXp0jyGkGVRBpFRXMggEI1owgTAQBQI8Hg) -&] -[s0;* &] -[s9; This class is similar to ColorPusher, but intended to be used -in ToolBar. It supports displaying color using Image too.&] -[s0; &] -[s0;%- [%%/ Derived from][%% ][^topic`:`/`/CtrlLib`/src`/ColorPopUp`$en`-us`#`:`:ColorPusher`:`:class ColorPusher^ C -olorPusher]&] -[s3; &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] -[s3;%- &] -[s5;:ColorButton`:`:ColorImage`(const Image`&`):%- [_^ColorButton^ ColorButton][@(0.0.255) `& -]_[* ColorImage]([@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img])&] -[s2; Sets image to display color. This image is drawn (in the center -of ColorButton) with selected color.&] -[s7; [%-*C@3 img]-|Image.&] -[s7; [*/ Return value]-|`*this.&] -[s3; &] -[s4;%- &] -[s5;:ColorButton`:`:NullImage`(const Image`&`):%- [_^ColorButton^ ColorButton][@(0.0.255) `& -]_[* NullImage]([@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img])&] -[s2; Sets image to display null color.&] -[s7; [%-*C@3 img]-|Image.&] -[s7; [*/ Return value]-|`*this.&] -[s3; &] -[s4;%- &] -[s5;:ColorButton`:`:StaticImage`(const Image`&`):%- [_^ColorButton^ ColorButton][@(0.0.255) `& -]_[* StaticImage]([@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img])&] -[s2; Sets static image that is always displayed with ColorImage and -NullImage.&] -[s7; [%-*C@3 img]-|Image.&] -[s7; [*/ Return value]-|`*this.&] -[s3; &] +topic "Color widgets"; +[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,0#27521748481378242620020725143825:desc] +[0 $$3,0#96390100711032703541132217272105:end] +[H6;0 $$4,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] +[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] +[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] +[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] +[b42;2 $$9,9#13035079074754324216151401829390:normal] +[{_}%EN-US +[ {{10000@3 [s0; [*@(229)4 ColorPopUp]]}}&] +[s3;%- &] +[s1;:ColorPopUp`:`:class:%- [@(0.0.255)3 class][3 _][*3 ColorPopUp][3 _:_][@(0.0.255)3 public][3 _ +][*@3;3 Ctrl]&] +[s9; This class implements pop`-up window for color`-selection.&] +[s0; &] +[s2; +@@image:1100&1399 +(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) +&] +[s0; &] +[s9; ColorPopUp calls [* WhenAction] Ctrl callback and sets modify +flag whenever selected color changes (that is [*/ during] selection). +&] +[s0; &] +[s0;%- [%%/ Derived from][%% ][^topic`:`/`/CtrlCore`/src`/Ctrl`$en`-us`#`:`:Ctrl`:`:class Ctrl^ C +trl]&] +[s3; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] +[s3;%- &] +[s5;:ColorPopUp`:`:PopUp`(Ctrl`*`,Color`):%- [@(0.0.255) void]_[* PopUp]([_^Ctrl^ Ctrl]_`*[*@3 o +wner], [_^Color^ Color]_[*@3 c]_`=_White)&] +[s2; Opens ColorPopUp as pop`-up window.&] +[s7; [%-*C@3 owner]-|Owner Ctrl. ColorPopUp appears bellow or above +this Ctrl.&] +[s7; [%-*C@3 c]-|Initial color for wheel and ramp selectors.&] +[s3; &] +[s4;%- &] +[s5;:ColorPopUp`:`:Get`(`)const:%- [_^Color^ Color]_[* Get]()_[@(0.0.255) const]&] +[s7; [*/ Return value]-|Returns current color selected.&] +[s3; &] +[s4;%- &] +[s5;:ColorPopUp`:`:NotNull`(bool`):%- [_^ColorPopUp^ ColorPopUp][@(0.0.255) `&]_[* NotNull]( +[@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2; Setups whether Null (that is transparent) color choice is enabled. +Constructor setting is NotNull(false).&] +[s7; [%-*C@3 b]-|true disables Null color choice. &] +[s7; [*/ Return value]-|`*this.&] +[s3; &] +[s4;%- &] +[s5;:ColorPopUp`:`:SColors`(bool`):%- [_^ColorPopUp^ ColorPopUp][@(0.0.255) `&]_[* SColors]( +[@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2; Setups whether choice of system colors is allowed. Constructor +setting is SColors(false).&] +[s7; [%-*C@3 b]-|true enables choice of system colors.&] +[s7; [*/ Return value]-|`*this.&] +[s3; &] +[s4;%- &] +[s5;:ColorPopUp`:`:NullText`(const char`*`):%- [_^ColorPopUp^ ColorPopUp][@(0.0.255) `&]_ +[* NullText]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 s])&] +[s2; Setups text for Null color choice. Constructor setting for en`-us +is `"(transparent)`".&] +[s7; [%-*C@3 s]-|New text for Null color choice.&] +[s7; [*/ Return value]-|`*this.&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:ColorPopUp`:`:WithVoid`(bool`):%- [_^Upp`:`:ColorPopUp^ ColorPopUp][@(0.0.255) `& +]_[* WithVoid]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2; Enables special VoidColor() (labeled `"(None)`", unless the +name is changed by VoidText).&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:ColorPopUp`:`:VoidText`(const char`*`):%- [_^Upp`:`:ColorPopUp^ ColorPopUp][@(0.0.255) `& +]_[* VoidText]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 s])&] +[s2; Changes the label of VoidColor().&] +[s3; &] +[s4;%- &] +[s5;:ColorPopUp`:`:WhenCancel:%- [_^Callback^ Callback]_[* WhenCancel]&] +[s2; This callback is invoked when ColorPopUp is canceled (e.g. by +clicking outside).&] +[s3; &] +[s4;%- &] +[s5;:ColorPopUp`:`:WhenSelect:%- [_^Callback^ Callback]_[* WhenSelect]&] +[s2; This callback is invoked when color is chosen. Resulting color +can be obtained by Get().&] +[s0; &] +[s0;%- &] +[ {{10000@3 [s0; [*@(229)4 ColorPusher]]}}&] +[s3; &] +[s1;:ColorPusher`:`:class:%- [@(0.0.255)3 class][3 _][*3 ColorPusher][3 _:_][@(0.0.255)3 public][3 _ +][*@3;3 Ctrl]&] +[s9; This class represents Ctrl with Color value. It uses ColorPopUp +to edit this value.&] +[s0; &] +[s2; +@@image:398&199 +(AzAAGAAAAOj/AAAAAHice/PyxptRRAitWTFzYNH////R3MMwcADoAKzu+T9AAI976B84RLjnPx3RqHtG3TPqnlH3jLpn1D3Ucg9dAX73DAjA6p4BaZfCEZp7BipkkMHABshQQQCO3pjh) + +@@image:1021&189 +(A30AFwAAAOn/AAAAAHic7Zg9DsIwDIW5v8SKxA0YOBBbZiTuYJhQ5Z8Xu03apvVTBpK6jv0lNoJSUqlz6fm451hhEBHDfkl11uf9UrFTqqcAdufBbZ3BkMLYr3TDI7HPU3PsnkLwHNbURrVni1WfLCpZs/4qZrHJt+SUeWiL3YnCg0iNnyWLbawd/9lFo1L3wn4s8l2xg+BDBhh7aGtahl1a7hm7VXRqbUo/6nQ5dqszhG6F6kdaro/dKnBQ+P2wAzj4Dlt7Of2Mjt15NKpAMTotPX6Oil3tBqHOUH00NHaMd3aT8duAp0dqMmR8MbGV6Qdr3UrTWqxOZWDVOP1bR/3s81fqQretomqYXQi7R60Cw3EOLZlL/gO5iVTsv8UcvQfDvvE9OJNKKnUyfQHnsr1w) +&] +[s0; &] +[s9; As is U`+`+ standard, Color value is set and get using SetData +and GetData virtual method.&] +[s9; WhenAction callback and modify set behaviour depends on track +mode. When track mode is enabled (Track(true)), WhenAction is +called and modify set upon any change of color (including moving +mouse through ColorPopUp). When track mode is off, it is called +and set only after new Color is selected.&] +[s9; &] +[s0;%- [%%/ Derived from][%% ][^topic`:`/`/CtrlCore`/src`/Ctrl`$en`-us`#`:`:Ctrl`:`:class Ctrl^ C +trl]&] +[s3; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] +[s3;%- &] +[s5;:ColorPusher`:`:NullText`(const char`*`):%- [_^ColorPusher^ ColorPusher][@(0.0.255) `& +]_[* NullText]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 s])&] +[s2; Sets a text to be displayed if Color value is Null. Constructor +setting for en`-us is `"(transparent)`".&] +[s7; [%-*C@3 s]-|Text.&] +[s7; [*/ Return value]-|`*this.&] +[s3; &] +[s4;%- &] +[s5;:ColorPusher`:`:NotNull`(bool`):%- [_^ColorPusher^ ColorPusher][@(0.0.255) `&]_[* NotNu +ll]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2; Setups whether Null (that is transparent) color choice is enabled. +Constructor setting is NotNull(false).&] +[s7; [%-*C@3 b]-|true disables Null color choice. &] +[s7; [*/ Return value]-|`*this.&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:ColorPusher`:`:WithVoid`(bool`):%- [_^Upp`:`:ColorPusher^ ColorPusher][@(0.0.255) `& +]_[* WithVoid]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2; Enables special VoidColor() (labeled `"(None)`", unless the +name is changed by VoidText).&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:ColorPusher`:`:VoidText`(const char`*`):%- [_^Upp`:`:ColorPusher^ ColorPush +er][@(0.0.255) `&]_[* VoidText]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 s])&] +[s2; Changes the label of VoidColor().&] +[s3; &] +[s4;%- &] +[s5;:ColorPusher`:`:SColors`(bool`):%- [_^ColorPusher^ ColorPusher][@(0.0.255) `&]_[* SColo +rs]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2; Setups whether choice of system colors is allowed. Constructor +setting is SColors(false).&] +[s7; [%-*C@3 b]-|true enables choice of system colors.&] +[s7; [*/ Return value]-|`*this.&] +[s3; &] +[s4;%- &] +[s5;:ColorPusher`:`:WithText`(`):%- [_^ColorPusher^ ColorPusher][@(0.0.255) `&]_[* WithText +]()&] +[s2; Setups displaying of text representation of color.&] +[s7; [*/ Return value]-|`*this.&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:ColorPusher`:`:WithHex`(`):%- [_^Upp`:`:ColorPusher^ ColorPusher][@(0.0.255) `& +]_[* WithHex]()&] +[s2; Setups displaying of text representation of color in HTML hexadecimal +format.&] +[s3;%- &] +[s4;%- &] +[s5;:ColorPusher`:`:Track`(bool`):%- [_^ColorPusher^ ColorPusher][@(0.0.255) `&]_[* Track]( +[@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2; Setups track mode. Constructor setting is Track(false).&] +[s7; [%-*C@3 b]-|true enables track mode.&] +[s7; [*/ Return value]-|`*this&] +[s3; &] +[s4;%- &] +[s5;:ColorPusher`:`:NoTrack`(`):%- [_^ColorPusher^ ColorPusher][@(0.0.255) `&]_[* NoTrack]( +)&] +[s2; Same as Track(false).&] +[s7; [*/ Return value]-|`*this.&] +[s3; &] +[s0; &] +[s0; &] +[s0;%- &] +[ {{10000@3 [s0; [*@(229)4 ColorButton]]}}&] +[s3; &] +[s1;:ColorButton`:`:class:%- [@(0.0.255)3 class][3 _][*3 ColorButton][3 _:_][@(0.0.255)3 public][3 _ +][*@3;3 ColorPusher]&] +[s0; &] +[s2; +@@image:150&137 +(AxgAFgAAAOr/AAAAAHice/PyxpshhRgYGKhiyKP6aZQbRRVzIIZAECVGUcUcuCHIjIEyB00v2UZRxRxkXciAVKOQowkTEWkOfkOINwqXp0jyGkGVRBpFRXMggEI1owgTAQBQI8Hg) +&] +[s0;* &] +[s9; This class is similar to ColorPusher, but intended to be used +in ToolBar. It supports displaying color using Image too.&] +[s0; &] +[s0;%- [%%/ Derived from][%% ][^topic`:`/`/CtrlLib`/src`/ColorPopUp`$en`-us`#`:`:ColorPusher`:`:class ColorPusher^ C +olorPusher]&] +[s3; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] +[s3;%- &] +[s5;:ColorButton`:`:ColorImage`(const Image`&`):%- [_^ColorButton^ ColorButton][@(0.0.255) `& +]_[* ColorImage]([@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img])&] +[s2; Sets image to display color. This image is drawn (in the center +of ColorButton) with selected color.&] +[s7; [%-*C@3 img]-|Image.&] +[s7; [*/ Return value]-|`*this.&] +[s3; &] +[s4;%- &] +[s5;:ColorButton`:`:NullImage`(const Image`&`):%- [_^ColorButton^ ColorButton][@(0.0.255) `& +]_[* NullImage]([@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img])&] +[s2; Sets image to display null color.&] +[s7; [%-*C@3 img]-|Image.&] +[s7; [*/ Return value]-|`*this.&] +[s3; &] +[s4;%- &] +[s5;:ColorButton`:`:StaticImage`(const Image`&`):%- [_^ColorButton^ ColorButton][@(0.0.255) `& +]_[* StaticImage]([@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img])&] +[s2; Sets static image that is always displayed with ColorImage and +NullImage.&] +[s7; [%-*C@3 img]-|Image.&] +[s7; [*/ Return value]-|`*this.&] +[s3; &] [s0; ]] \ No newline at end of file diff --git a/uppsrc/CtrlLib/src.tpp/ColumnList$en-us.tpp b/uppsrc/CtrlLib/src.tpp/ColumnList_en-us.tpp similarity index 99% rename from uppsrc/CtrlLib/src.tpp/ColumnList$en-us.tpp rename to uppsrc/CtrlLib/src.tpp/ColumnList_en-us.tpp index 6ad6c492b..f0f89eb3d 100644 --- a/uppsrc/CtrlLib/src.tpp/ColumnList$en-us.tpp +++ b/uppsrc/CtrlLib/src.tpp/ColumnList_en-us.tpp @@ -1,24 +1,24 @@ -TITLE("ColumnList") -COMPRESSED -120,156,229,59,249,83,218,89,158,255,202,183,166,167,187,180,215,56,128,103,204,118,87,207,164,123,119,187,122,118,186,171,211,189,251,67,202,180,8,95,13,213,8,14,96,142,217,218,46,64,190,70,131,26,79,32,94,193,24,53,81,84,60,162,38,42,34,36,241,138,71,212,24,240,132,196,11,69,165,189,53,168,251,222,247,203,105,60,240,232,217,169,221,36,165,240,142,207,251,220,215,123,185,76,65,126,255,123,146,15,233,35,210,17,127,66,190,68,35,168,49,76,94,232,101,134,191,127,240,5,42,37,224,194,207,223,124,123,254,194,167,95,120,5,250,123,67,40,100,0,197,47,136,236,23,28,224,71,246,167,4,130,31,100,63,50,37,128,226,231,79,14,166,156,247,15,246,243,11,38,133,208,152,84,46,55,244,50,147,18,28,124,1,110,162,248,80,62,162,4,5,80,200,65,254,193,254,193,100,191,160,96,10,216,75,33,145,40,164,32,74,0,217,223,47,152,18,16,66,71,185,180,208,203,212,96,191,11,159,126,31,8,54,249,193,147,0,112,18,57,144,226,31,228,79,33, -249,145,40,254,224,40,114,112,176,63,57,40,32,216,239,124,96,96,8,141,26,205,99,176,89,182,179,24,100,50,133,124,33,156,28,116,1,224,252,203,47,191,248,146,253,73,4,6,254,0,24,153,228,15,80,37,131,49,146,63,37,136,28,112,158,116,62,32,152,28,76,242,3,192,3,130,72,1,33,209,84,14,53,234,96,210,3,142,36,61,136,20,194,224,161,0,196,167,255,68,38,7,129,45,129,62,129,31,145,253,131,0,161,193,126,254,1,193,65,36,112,56,133,66,241,243,163,144,253,40,231,207,83,2,2,3,130,66,174,162,84,58,202,9,189,252,95,63,253,247,199,95,253,229,220,143,151,144,203,92,242,133,111,66,194,192,223,139,108,102,76,20,235,207,12,46,15,126,195,249,26,114,5,159,224,113,152,87,144,203,31,147,72,231,72,164,43,87,190,240,34,249,146,124,41,1,1,222,136,141,249,246,25,228,39,231,231,47,72,136,19,160,235,146,16,215,69,78,80,209,49,225,76,6,109,63,88,8,60,63,244,147,208,203,92,202,5,196,246,235,139,47,24,81,212,72, -52,132,28,72,10,252,36,136,20,200,143,21,8,126,229,243,249,177,119,118,193,79,254,70,93,206,124,174,49,109,162,104,33,17,123,255,236,137,118,71,223,149,186,20,107,109,155,159,189,59,37,123,162,41,153,202,73,158,40,209,21,202,30,108,138,148,26,93,217,122,102,213,220,96,87,236,154,118,203,176,208,115,103,72,181,251,222,184,158,158,93,107,214,41,215,140,218,184,178,137,181,214,201,123,205,149,70,113,253,107,181,164,141,47,138,149,180,189,177,46,175,143,23,247,24,173,137,70,172,120,124,104,85,39,217,216,110,157,171,201,149,165,220,23,104,198,251,54,86,251,244,252,100,77,107,107,70,107,255,194,238,84,195,76,34,28,30,219,232,147,12,243,23,118,147,218,239,182,229,60,149,75,23,115,155,176,14,213,250,253,172,132,21,217,120,133,117,109,70,149,53,168,31,196,250,87,210,68,197,226,114,179,17,107,194,68,99,227,187,69,75,61,109,175,42,238,53,239,212,183,203,176,121,75,173,42,59,161,191,66,163,55,232,183,186,139,230,21,226,98,133,248,73,117,28,214, -183,56,220,82,35,110,126,144,106,41,154,24,154,126,220,98,78,95,5,160,222,141,189,16,86,104,222,230,73,18,245,213,153,121,233,51,250,233,174,244,218,97,227,173,59,133,162,133,185,214,119,207,235,234,45,85,235,37,29,121,194,29,172,112,125,100,51,165,97,68,84,55,57,41,210,155,203,86,39,167,138,135,31,36,20,111,231,38,97,170,146,241,142,87,203,59,111,146,140,85,115,197,235,195,41,239,90,122,31,166,198,181,232,243,231,13,173,218,244,4,169,168,51,77,48,210,80,151,244,98,179,243,153,46,173,201,58,108,236,95,42,204,152,237,171,126,163,125,246,250,126,135,184,70,115,175,211,144,81,183,166,87,151,46,40,215,151,141,115,119,170,243,83,149,165,214,44,108,123,165,73,185,221,22,43,127,222,50,184,49,41,142,111,202,93,29,43,47,168,84,223,189,155,84,21,255,232,105,241,132,172,91,175,46,175,149,37,60,149,138,238,85,242,139,238,37,222,29,54,190,87,24,242,94,239,154,140,235,130,241,230,181,156,212,247,61,253,181,235,139,125,214,184,222,154,12, -109,79,193,173,169,84,157,164,252,78,115,242,86,233,200,189,231,75,205,113,230,55,121,26,83,82,251,72,195,140,25,211,166,148,91,11,6,198,211,167,42,155,83,103,95,220,73,46,206,217,158,43,209,174,52,25,18,116,69,194,37,105,65,150,214,216,20,159,218,253,186,64,248,106,97,183,62,94,187,166,142,95,44,47,44,51,117,84,99,165,131,37,43,47,214,178,176,66,108,169,245,254,182,162,42,35,79,88,163,155,45,209,223,122,161,41,50,246,155,71,214,106,242,86,141,111,52,221,230,100,129,197,40,28,126,86,247,94,147,85,186,24,175,20,62,94,106,20,104,51,141,29,51,249,35,10,165,161,116,100,247,237,66,65,113,173,168,127,98,86,211,45,153,17,151,54,118,13,27,154,148,9,13,211,245,10,139,72,46,182,22,155,31,136,50,167,198,212,177,189,69,230,229,1,190,130,111,21,188,212,169,76,203,74,245,246,50,54,101,85,118,73,13,217,253,226,173,142,188,90,161,184,81,89,56,110,168,171,221,20,190,94,41,124,62,59,35,185,165,204,146,108,116,168,212,11, -203,214,101,204,32,200,182,52,101,88,5,163,230,78,105,193,140,105,235,245,238,150,180,96,203,244,56,99,75,38,148,17,203,94,46,22,117,85,47,164,172,244,181,60,236,174,214,182,190,87,153,249,10,11,220,178,108,238,150,26,22,231,181,233,219,3,191,14,246,168,164,243,124,44,47,173,66,153,93,48,186,41,44,149,200,167,117,98,177,108,9,44,44,29,213,117,103,247,220,199,202,39,10,183,242,171,159,152,76,106,97,79,187,84,151,212,217,94,179,185,54,217,35,173,236,19,106,180,181,165,250,9,131,96,66,60,177,112,183,175,194,128,83,84,247,114,116,9,27,225,99,241,202,174,242,88,211,146,49,179,101,194,244,82,215,22,127,191,180,145,47,158,208,188,16,105,116,70,172,49,126,50,213,34,207,144,128,157,175,82,42,82,36,117,86,193,212,216,203,153,247,51,89,186,228,56,163,126,21,75,22,190,16,203,166,197,53,133,218,137,13,217,154,188,174,242,54,86,215,160,168,176,136,116,237,234,198,113,195,104,89,138,118,173,2,126,85,91,27,199,229,235,85,99,143,166, -134,51,139,179,134,170,243,235,159,220,159,175,215,12,90,101,2,125,67,195,187,56,69,137,33,175,162,87,156,246,244,246,66,118,218,96,178,121,185,97,40,243,245,203,13,69,69,170,186,67,54,56,118,91,161,1,243,242,86,97,83,195,179,170,174,184,215,107,250,77,245,224,134,190,98,116,180,224,189,41,1,168,99,69,139,37,79,162,148,170,50,18,249,226,28,77,227,184,218,178,40,232,74,24,46,139,109,196,36,88,245,251,45,77,91,143,65,176,108,21,116,77,119,41,147,239,213,214,234,219,148,115,183,245,121,229,213,252,197,109,65,139,112,123,253,233,104,155,66,169,126,100,93,23,52,8,172,2,101,78,102,135,180,62,187,77,26,31,39,46,106,159,4,60,186,173,144,41,114,19,178,19,250,140,152,212,0,244,1,176,10,112,234,86,254,72,98,158,72,35,180,10,182,18,151,48,205,219,102,149,84,61,247,254,205,219,186,4,113,201,170,85,176,146,93,150,213,175,22,238,108,10,11,183,151,76,88,108,234,187,230,57,149,186,139,143,89,151,101,152,72,172,92,221,86,86, -246,72,55,110,43,249,211,122,149,122,180,121,44,117,86,89,55,111,202,93,147,75,179,148,61,82,121,83,210,170,46,87,32,177,180,75,31,78,206,213,164,86,232,248,121,11,243,21,101,79,176,193,229,26,108,38,95,110,149,139,23,12,2,160,17,53,150,87,66,44,171,103,117,167,60,11,240,66,93,50,35,74,93,83,245,54,10,176,181,174,105,113,175,70,47,94,105,26,90,120,204,111,182,244,119,169,133,13,203,96,239,163,165,77,117,185,97,39,195,84,105,218,22,136,53,185,38,176,118,90,60,48,89,190,58,49,144,170,76,124,56,48,52,93,138,245,21,26,205,77,101,75,119,251,141,221,153,106,97,155,180,77,62,158,33,87,224,191,107,228,10,89,145,20,56,188,39,74,67,213,74,145,57,13,216,204,152,92,242,80,93,161,157,55,22,228,43,214,45,194,49,97,215,178,186,243,87,249,106,53,63,79,180,58,150,173,23,174,204,246,151,61,170,106,45,88,191,133,245,213,104,238,140,148,37,169,117,66,173,56,35,107,178,185,253,110,109,143,182,253,93,202,188,85,82,214, -91,186,94,87,168,238,221,176,152,87,107,181,166,215,43,202,44,133,124,185,146,223,56,159,151,100,156,127,222,219,156,128,21,45,137,176,135,115,130,68,113,253,128,114,78,240,108,167,173,68,156,48,86,167,228,103,170,226,115,134,117,134,212,120,137,101,35,181,111,122,168,241,197,136,176,112,106,206,32,85,188,172,180,102,12,77,11,154,42,45,91,15,76,155,165,213,247,187,226,7,23,118,170,186,146,38,180,109,175,69,6,193,99,189,176,195,180,188,213,243,68,48,213,170,228,47,23,99,194,121,21,63,201,60,180,220,61,104,126,155,93,54,34,172,25,168,239,230,75,100,41,67,234,234,249,157,178,178,116,101,90,133,69,47,212,200,22,251,71,95,109,53,25,102,5,56,128,197,23,211,130,231,86,129,206,48,208,50,178,49,202,239,206,206,145,42,122,69,43,253,10,189,60,99,236,206,132,82,41,236,76,215,139,227,51,13,93,130,213,34,85,234,219,226,55,93,213,235,214,217,228,193,33,241,64,71,205,72,254,142,168,185,117,60,254,81,122,161,46,107,46,190,101,124,96,48, -109,88,190,30,159,191,124,183,94,103,152,17,24,107,54,71,239,165,172,214,169,205,170,66,126,209,216,195,254,178,41,229,29,129,120,70,150,37,159,108,233,206,110,206,107,202,174,87,40,51,198,18,31,168,118,84,197,11,125,213,183,100,237,243,57,18,117,205,147,193,21,225,227,36,75,171,248,93,142,64,193,111,239,211,138,31,53,214,1,77,78,169,202,79,7,74,13,62,229,166,212,223,109,137,237,213,165,43,85,234,184,77,161,209,82,57,62,46,55,189,157,152,93,53,117,154,183,21,211,43,226,198,129,12,37,191,167,112,75,216,52,107,158,44,232,148,1,187,206,48,8,58,71,231,196,43,183,223,15,78,212,99,131,210,248,206,133,166,85,108,182,60,43,119,172,103,242,233,110,209,147,237,206,193,219,90,48,178,158,61,59,91,147,63,63,159,174,30,203,83,170,147,87,177,153,181,87,179,115,195,139,109,153,102,211,227,45,73,102,220,166,70,168,233,238,215,247,118,44,215,14,9,20,134,70,85,129,250,41,182,85,103,124,254,52,113,25,155,200,157,170,206,20,150,140,62, -80,222,82,236,130,57,190,177,152,63,85,6,176,204,170,204,170,79,187,7,44,96,78,188,189,242,86,214,244,86,171,78,149,47,234,141,178,10,67,239,164,192,122,123,195,160,122,173,82,191,221,121,222,121,127,77,170,235,88,77,176,72,50,50,139,192,190,220,146,212,178,55,111,75,1,188,106,254,42,86,213,250,70,170,168,127,156,166,228,15,74,95,181,229,232,199,13,201,218,182,120,177,33,107,36,174,127,119,66,35,108,239,187,171,20,164,166,12,110,8,36,252,216,22,1,166,182,24,4,252,148,28,29,95,116,75,18,199,39,6,248,2,98,224,129,132,223,98,82,240,147,186,135,213,243,27,187,83,241,150,36,152,198,44,40,115,183,239,200,223,149,63,118,79,162,126,184,202,224,34,215,25,244,72,148,135,208,25,220,104,38,245,38,23,225,93,69,17,46,53,10,69,120,55,163,81,132,29,129,192,44,19,97,176,16,46,122,13,229,80,153,8,13,207,234,184,190,96,59,138,176,98,162,194,81,14,92,102,27,70,104,84,22,18,142,34,84,38,15,229,160,116,36,252,38,18, -195,5,43,168,52,152,59,131,77,55,163,25,52,0,5,12,34,224,116,30,219,126,50,126,48,19,228,138,16,88,4,131,137,114,125,33,154,36,2,219,128,125,115,212,255,188,138,178,190,98,129,131,190,6,56,134,128,140,211,158,61,226,75,169,76,102,56,149,246,243,21,60,169,70,236,95,237,89,37,49,234,76,50,221,96,217,178,205,63,32,151,255,128,92,140,225,112,217,28,4,101,17,4,81,17,22,122,29,103,138,47,18,234,69,71,163,57,40,141,202,67,233,62,56,73,16,202,37,148,233,237,17,234,223,48,152,76,2,250,25,224,238,4,182,15,242,76,52,130,135,0,193,156,9,218,127,6,192,46,130,92,253,231,51,192,218,1,203,158,223,255,8,149,133,6,71,0,175,161,74,216,244,243,58,131,119,149,80,17,72,74,20,27,98,29,30,195,227,177,89,62,142,229,184,166,94,165,18,58,76,195,41,247,76,135,28,88,124,199,230,30,68,20,121,15,85,100,119,178,254,57,212,117,211,119,108,6,139,103,219,128,127,118,95,252,249,1,76,0,199,219,249,112,137,17,197, -96,82,57,208,64,220,150,64,162,129,113,113,217,72,52,135,125,141,1,10,89,96,121,108,14,157,193,2,210,228,226,108,2,182,138,115,132,193,138,36,4,238,49,15,190,100,131,34,12,61,35,177,18,192,220,228,74,199,135,194,206,29,75,190,158,161,255,39,234,129,70,116,148,228,192,214,176,79,246,136,4,140,217,49,183,111,131,162,176,241,156,80,48,54,240,8,55,120,192,47,178,184,12,30,227,26,138,68,161,172,24,196,43,38,154,205,194,23,112,24,145,87,221,73,33,228,226,237,139,0,81,2,127,2,64,0,88,208,97,114,1,7,120,208,27,211,236,135,57,248,1,129,122,198,2,96,192,40,238,101,207,64,128,14,88,174,206,196,49,136,112,121,84,94,12,23,122,106,155,248,160,213,209,174,82,89,145,40,253,212,254,5,44,60,27,10,28,18,36,156,32,248,199,245,140,130,35,209,252,87,148,71,12,192,96,193,13,243,10,243,6,218,192,229,133,184,244,51,236,184,124,96,252,14,52,1,141,238,112,220,215,121,121,59,9,194,161,219,201,249,30,229,197,112,8,21, -115,134,95,104,232,208,241,81,121,32,120,242,236,126,0,15,230,192,15,48,81,91,124,70,192,60,240,140,28,168,125,92,198,223,80,95,4,241,156,216,139,55,194,188,0,57,167,38,246,226,141,61,148,134,122,176,223,15,97,236,153,10,251,204,117,150,228,62,235,1,243,236,124,0,10,0,108,205,145,194,120,36,253,239,168,145,232,233,101,239,128,114,44,201,115,15,23,61,56,148,237,70,223,53,6,72,88,112,97,123,66,25,196,7,16,101,15,98,97,222,33,136,3,57,7,129,46,132,237,165,9,79,159,236,115,94,251,68,69,247,128,232,38,225,104,199,168,247,126,36,219,50,81,58,122,3,137,0,198,12,135,34,129,223,101,33,209,16,34,100,5,78,42,149,131,82,17,47,42,141,198,142,97,241,184,248,82,46,141,195,134,46,131,3,150,66,103,13,61,52,155,237,237,49,67,190,7,94,227,8,221,199,41,132,235,108,62,10,126,60,84,248,118,184,103,97,11,158,40,12,206,61,156,65,192,53,243,168,208,41,120,230,232,112,239,121,58,31,71,228,165,199,87,114,187,10, -19,201,156,67,120,190,200,215,17,112,158,131,215,16,44,182,109,222,7,80,70,236,101,161,145,84,60,36,95,163,50,99,60,32,243,146,147,204,3,117,254,26,155,65,223,87,233,47,237,37,208,41,196,35,77,198,15,161,125,168,243,0,224,209,228,219,118,125,138,131,128,108,96,199,224,38,192,129,33,204,7,129,142,128,139,132,253,46,130,113,3,165,135,253,14,241,114,176,36,28,165,177,163,64,170,72,242,65,62,199,93,50,176,18,47,111,199,176,203,80,216,57,132,236,129,141,56,43,15,168,36,199,98,157,75,209,226,224,157,183,51,241,98,209,80,230,241,178,249,175,185,30,168,107,56,155,205,60,88,95,237,32,60,84,215,31,80,46,144,214,245,171,40,212,71,187,164,0,235,169,176,224,186,105,171,184,46,193,130,154,202,117,218,2,224,238,231,97,159,33,36,143,44,240,82,56,40,12,78,101,128,56,132,19,216,223,135,126,211,35,91,178,33,124,34,83,114,67,245,88,150,116,243,16,75,58,33,33,255,194,1,130,35,162,33,188,132,34,190,126,114,124,162,240,141,7, -68,69,7,224,43,136,227,163,99,105,216,39,174,20,134,253,20,225,54,251,33,157,116,96,197,28,194,206,241,165,208,35,56,169,242,37,90,62,224,31,7,253,107,12,3,239,207,128,52,29,102,232,206,69,120,38,204,141,70,105,12,42,19,249,27,202,97,219,66,174,151,19,182,183,13,184,75,69,244,61,240,25,244,75,32,201,64,216,209,132,143,250,114,47,42,176,200,9,191,73,212,57,81,192,92,216,116,136,9,56,156,238,24,182,31,203,129,208,96,253,138,239,60,90,84,23,153,40,245,248,222,7,223,181,143,227,249,42,10,144,128,18,12,117,97,158,11,22,135,251,32,22,168,117,109,233,130,15,110,90,112,244,63,96,36,2,186,227,3,189,207,49,17,37,32,158,200,40,24,142,76,1,241,65,246,217,71,152,254,7,59,175,56,80,190,130,224,191,14,208,72,16,95,15,135,239,234,107,221,227,30,149,69,84,99,123,180,249,68,60,117,140,124,73,52,19,255,255,241,249,48,248,54,166,92,65,108,31,14,56,131,190,103,246,108,228,9,236,137,96,171,189,255,8,35,163, -35,11,119,201,98,0,7,125,247,228,53,14,144,208,81,68,80,153,92,60,177,1,32,192,12,139,205,131,125,102,98,1,236,58,128,189,184,251,136,96,192,174,131,11,24,59,93,14,111,179,167,233,140,67,244,98,195,248,125,157,193,133,149,114,84,20,64,205,190,4,122,67,194,115,1,47,107,227,160,29,148,7,217,209,247,104,20,251,26,122,146,96,72,236,60,173,54,186,84,82,16,28,215,19,49,28,73,212,31,233,244,48,175,51,113,109,0,210,161,20,254,3,249,39,4,36,108,60,78,12,122,152,159,58,128,49,103,228,159,254,183,153,245,143,236,100,0,111,156,186,109,235,128,184,102,62,255,7,93,139,189,84,59,101,255,49,102,239,138,99,149,230,123,251,80,182,174,35,115,79,198,116,32,5,71,181,20,221,116,110,15,5,46,138,77,204,184,105,55,49,228,170,126,56,193,123,104,13,245,128,81,158,245,91,246,39,145,29,141,130,44,24,84,164,151,195,66,255,190,180,186,158,252,155,17,189,95,147,9,191,187,32,138,6,215,192,226,216,237,27,234,65,29,239,184,108, -56,85,41,239,188,199,240,76,195,97,53,239,40,230,237,245,59,23,182,20,157,238,192,179,106,196,13,255,227,151,37,31,32,238,218,24,129,11,136,178,214,190,202,147,106,22,46,253,150,101,75,69,78,18,126,28,32,78,150,147,156,208,231,3,26,15,41,120,63,184,209,129,237,222,67,243,27,15,210,27,187,222,160,244,163,44,214,51,253,67,233,127,47,251,251,128,29,167,229,194,25,48,224,183,164,221,181,15,236,164,221,22,131,136,155,61,103,87,24,38,111,8,35,194,157,15,206,157,48,182,59,67,245,222,77,110,157,189,99,114,242,18,27,214,174,238,105,225,183,28,58,202,57,126,47,137,125,68,125,122,100,10,136,159,107,203,3,241,207,7,36,106,108,183,57,167,225,1,4,184,132,87,244,192,17,18,111,130,246,22,63,87,220,87,94,217,231,161,248,158,80,102,3,116,34,191,19,246,19,235,16,255,241,193,3,38,95,196,235,71,231,131,37,252,118,158,184,22,222,127,57,76,222,232,28,106,100,36,236,86,17,207,2,240,123,214,112,216,193,162,114,110,18,247,76,14, -27,13,251,20,246,185,60,176,61,192,224,127,67,225,3,130,211,51,207,9,235,132,252,163,29,214,89,37,30,221,224,224,161,221,69,51,110,160,76,238,241,9,182,93,136,217,105,62,69,66,251,33,185,199,200,106,241,251,34,123,82,238,132,228,65,153,111,239,127,134,121,237,137,172,199,23,152,3,214,161,242,58,48,96,134,59,71,195,62,251,201,89,177,218,95,252,69,193,87,39,215,24,220,24,42,147,121,211,166,220,158,116,143,17,46,155,184,101,38,60,46,204,137,88,108,4,141,138,230,221,196,239,92,113,207,8,193,132,179,121,60,118,148,227,62,214,11,94,64,0,106,188,188,125,105,55,145,143,221,101,228,229,237,13,91,197,248,255,4,194,111,177,34,34,142,175,60,127,97,187,176,255,84,172,119,129,180,79,226,101,191,198,113,172,241,194,43,199,19,216,55,254,150,11,222,126,157,129,186,56,96,157,185,186,124,205,178,117,235,129,198,248,192,32,24,227,120,157,7,36,197,114,185,110,199,245,130,206,70,225,109,44,15,127,26,69,5,206,192,145,64,251,184,132,79,26, -126,173,7,203,234,211,139,221,133,141,167,20,251,62,76,252,64,236,142,53,39,22,187,179,204,119,73,7,156,61,161,211,144,224,4,125,226,252,192,211,22,206,33,209,192,222,217,176,103,225,64,242,49,44,38,202,37,82,134,176,115,182,54,10,205,177,208,126,233,3,91,43,48,126,252,145,78,135,15,181,136,150,241,241,25,252,239,64,159,24,103,96,83,56,156,51,183,39,7,155,112,23,124,29,119,163,81,240,164,104,38,106,171,52,109,207,167,157,189,167,227,27,197,159,168,180,159,35,241,27,180,51,96,132,43,184,223,142,31,182,55,120,196,211,37,14,149,197,141,166,226,205,37,156,79,97,231,144,112,7,14,196,131,15,80,212,0,255,194,131,207,177,193,208,15,46,59,96,126,14,50,183,107,240,237,33,220,73,5,137,60,23,176,216,7,58,35,248,38,46,210,177,53,28,5,95,221,30,161,130,205,32,46,50,194,153,192,219,129,224,200,190,14,151,211,92,222,106,186,92,120,66,223,230,138,22,15,97,161,40,221,147,212,142,107,83,210,83,84,85,110,234,121,156,251,124, -199,171,71,28,2,206,95,59,198,161,255,3,161,66,228,135, - +TITLE("ColumnList") +COMPRESSED +120,156,229,59,249,83,218,89,158,255,202,183,166,167,187,180,215,56,128,103,204,118,87,207,164,123,119,187,122,118,186,171,211,189,251,67,202,180,8,95,13,213,8,14,96,142,217,218,46,64,190,70,131,26,79,32,94,193,24,53,81,84,60,162,38,42,34,36,241,138,71,212,24,240,132,196,11,69,165,189,53,168,251,222,247,203,105,60,240,232,217,169,221,36,165,240,142,207,251,220,215,123,185,76,65,126,255,123,146,15,233,35,210,17,127,66,190,68,35,168,49,76,94,232,101,134,191,127,240,5,42,37,224,194,207,223,124,123,254,194,167,95,120,5,250,123,67,40,100,0,197,47,136,236,23,28,224,71,246,167,4,130,31,100,63,50,37,128,226,231,79,14,166,156,247,15,246,243,11,38,133,208,152,84,46,55,244,50,147,18,28,124,1,110,162,248,80,62,162,4,5,80,200,65,254,193,254,193,100,191,160,96,10,216,75,33,145,40,164,32,74,0,217,223,47,152,18,16,66,71,185,180,208,203,212,96,191,11,159,126,31,8,54,249,193,147,0,112,18,57,144,226,31,228,79,33, +249,145,40,254,224,40,114,112,176,63,57,40,32,216,239,124,96,96,8,141,26,205,99,176,89,182,179,24,100,50,133,124,33,156,28,116,1,224,252,203,47,191,248,146,253,73,4,6,254,0,24,153,228,15,80,37,131,49,146,63,37,136,28,112,158,116,62,32,152,28,76,242,3,192,3,130,72,1,33,209,84,14,53,234,96,210,3,142,36,61,136,20,194,224,161,0,196,167,255,68,38,7,129,45,129,62,129,31,145,253,131,0,161,193,126,254,1,193,65,36,112,56,133,66,241,243,163,144,253,40,231,207,83,2,2,3,130,66,174,162,84,58,202,9,189,252,95,63,253,247,199,95,253,229,220,143,151,144,203,92,242,133,111,66,194,192,223,139,108,102,76,20,235,207,12,46,15,126,195,249,26,114,5,159,224,113,152,87,144,203,31,147,72,231,72,164,43,87,190,240,34,249,146,124,41,1,1,222,136,141,249,246,25,228,39,231,231,47,72,136,19,160,235,146,16,215,69,78,80,209,49,225,76,6,109,63,88,8,60,63,244,147,208,203,92,202,5,196,246,235,139,47,24,81,212,72, +52,132,28,72,10,252,36,136,20,200,143,21,8,126,229,243,249,177,119,118,193,79,254,70,93,206,124,174,49,109,162,104,33,17,123,255,236,137,118,71,223,149,186,20,107,109,155,159,189,59,37,123,162,41,153,202,73,158,40,209,21,202,30,108,138,148,26,93,217,122,102,213,220,96,87,236,154,118,203,176,208,115,103,72,181,251,222,184,158,158,93,107,214,41,215,140,218,184,178,137,181,214,201,123,205,149,70,113,253,107,181,164,141,47,138,149,180,189,177,46,175,143,23,247,24,173,137,70,172,120,124,104,85,39,217,216,110,157,171,201,149,165,220,23,104,198,251,54,86,251,244,252,100,77,107,107,70,107,255,194,238,84,195,76,34,28,30,219,232,147,12,243,23,118,147,218,239,182,229,60,149,75,23,115,155,176,14,213,250,253,172,132,21,217,120,133,117,109,70,149,53,168,31,196,250,87,210,68,197,226,114,179,17,107,194,68,99,227,187,69,75,61,109,175,42,238,53,239,212,183,203,176,121,75,173,42,59,161,191,66,163,55,232,183,186,139,230,21,226,98,133,248,73,117,28,214, +183,56,220,82,35,110,126,144,106,41,154,24,154,126,220,98,78,95,5,160,222,141,189,16,86,104,222,230,73,18,245,213,153,121,233,51,250,233,174,244,218,97,227,173,59,133,162,133,185,214,119,207,235,234,45,85,235,37,29,121,194,29,172,112,125,100,51,165,97,68,84,55,57,41,210,155,203,86,39,167,138,135,31,36,20,111,231,38,97,170,146,241,142,87,203,59,111,146,140,85,115,197,235,195,41,239,90,122,31,166,198,181,232,243,231,13,173,218,244,4,169,168,51,77,48,210,80,151,244,98,179,243,153,46,173,201,58,108,236,95,42,204,152,237,171,126,163,125,246,250,126,135,184,70,115,175,211,144,81,183,166,87,151,46,40,215,151,141,115,119,170,243,83,149,165,214,44,108,123,165,73,185,221,22,43,127,222,50,184,49,41,142,111,202,93,29,43,47,168,84,223,189,155,84,21,255,232,105,241,132,172,91,175,46,175,149,37,60,149,138,238,85,242,139,238,37,222,29,54,190,87,24,242,94,239,154,140,235,130,241,230,181,156,212,247,61,253,181,235,139,125,214,184,222,154,12, +109,79,193,173,169,84,157,164,252,78,115,242,86,233,200,189,231,75,205,113,230,55,121,26,83,82,251,72,195,140,25,211,166,148,91,11,6,198,211,167,42,155,83,103,95,220,73,46,206,217,158,43,209,174,52,25,18,116,69,194,37,105,65,150,214,216,20,159,218,253,186,64,248,106,97,183,62,94,187,166,142,95,44,47,44,51,117,84,99,165,131,37,43,47,214,178,176,66,108,169,245,254,182,162,42,35,79,88,163,155,45,209,223,122,161,41,50,246,155,71,214,106,242,86,141,111,52,221,230,100,129,197,40,28,126,86,247,94,147,85,186,24,175,20,62,94,106,20,104,51,141,29,51,249,35,10,165,161,116,100,247,237,66,65,113,173,168,127,98,86,211,45,153,17,151,54,118,13,27,154,148,9,13,211,245,10,139,72,46,182,22,155,31,136,50,167,198,212,177,189,69,230,229,1,190,130,111,21,188,212,169,76,203,74,245,246,50,54,101,85,118,73,13,217,253,226,173,142,188,90,161,184,81,89,56,110,168,171,221,20,190,94,41,124,62,59,35,185,165,204,146,108,116,168,212,11, +203,214,101,204,32,200,182,52,101,88,5,163,230,78,105,193,140,105,235,245,238,150,180,96,203,244,56,99,75,38,148,17,203,94,46,22,117,85,47,164,172,244,181,60,236,174,214,182,190,87,153,249,10,11,220,178,108,238,150,26,22,231,181,233,219,3,191,14,246,168,164,243,124,44,47,173,66,153,93,48,186,41,44,149,200,167,117,98,177,108,9,44,44,29,213,117,103,247,220,199,202,39,10,183,242,171,159,152,76,106,97,79,187,84,151,212,217,94,179,185,54,217,35,173,236,19,106,180,181,165,250,9,131,96,66,60,177,112,183,175,194,128,83,84,247,114,116,9,27,225,99,241,202,174,242,88,211,146,49,179,101,194,244,82,215,22,127,191,180,145,47,158,208,188,16,105,116,70,172,49,126,50,213,34,207,144,128,157,175,82,42,82,36,117,86,193,212,216,203,153,247,51,89,186,228,56,163,126,21,75,22,190,16,203,166,197,53,133,218,137,13,217,154,188,174,242,54,86,215,160,168,176,136,116,237,234,198,113,195,104,89,138,118,173,2,126,85,91,27,199,229,235,85,99,143,166, +134,51,139,179,134,170,243,235,159,220,159,175,215,12,90,101,2,125,67,195,187,56,69,137,33,175,162,87,156,246,244,246,66,118,218,96,178,121,185,97,40,243,245,203,13,69,69,170,186,67,54,56,118,91,161,1,243,242,86,97,83,195,179,170,174,184,215,107,250,77,245,224,134,190,98,116,180,224,189,41,1,168,99,69,139,37,79,162,148,170,50,18,249,226,28,77,227,184,218,178,40,232,74,24,46,139,109,196,36,88,245,251,45,77,91,143,65,176,108,21,116,77,119,41,147,239,213,214,234,219,148,115,183,245,121,229,213,252,197,109,65,139,112,123,253,233,104,155,66,169,126,100,93,23,52,8,172,2,101,78,102,135,180,62,187,77,26,31,39,46,106,159,4,60,186,173,144,41,114,19,178,19,250,140,152,212,0,244,1,176,10,112,234,86,254,72,98,158,72,35,180,10,182,18,151,48,205,219,102,149,84,61,247,254,205,219,186,4,113,201,170,85,176,146,93,150,213,175,22,238,108,10,11,183,151,76,88,108,234,187,230,57,149,186,139,143,89,151,101,152,72,172,92,221,86,86, +246,72,55,110,43,249,211,122,149,122,180,121,44,117,86,89,55,111,202,93,147,75,179,148,61,82,121,83,210,170,46,87,32,177,180,75,31,78,206,213,164,86,232,248,121,11,243,21,101,79,176,193,229,26,108,38,95,110,149,139,23,12,2,160,17,53,150,87,66,44,171,103,117,167,60,11,240,66,93,50,35,74,93,83,245,54,10,176,181,174,105,113,175,70,47,94,105,26,90,120,204,111,182,244,119,169,133,13,203,96,239,163,165,77,117,185,97,39,195,84,105,218,22,136,53,185,38,176,118,90,60,48,89,190,58,49,144,170,76,124,56,48,52,93,138,245,21,26,205,77,101,75,119,251,141,221,153,106,97,155,180,77,62,158,33,87,224,191,107,228,10,89,145,20,56,188,39,74,67,213,74,145,57,13,216,204,152,92,242,80,93,161,157,55,22,228,43,214,45,194,49,97,215,178,186,243,87,249,106,53,63,79,180,58,150,173,23,174,204,246,151,61,170,106,45,88,191,133,245,213,104,238,140,148,37,169,117,66,173,56,35,107,178,185,253,110,109,143,182,253,93,202,188,85,82,214, +91,186,94,87,168,238,221,176,152,87,107,181,166,215,43,202,44,133,124,185,146,223,56,159,151,100,156,127,222,219,156,128,21,45,137,176,135,115,130,68,113,253,128,114,78,240,108,167,173,68,156,48,86,167,228,103,170,226,115,134,117,134,212,120,137,101,35,181,111,122,168,241,197,136,176,112,106,206,32,85,188,172,180,102,12,77,11,154,42,45,91,15,76,155,165,213,247,187,226,7,23,118,170,186,146,38,180,109,175,69,6,193,99,189,176,195,180,188,213,243,68,48,213,170,228,47,23,99,194,121,21,63,201,60,180,220,61,104,126,155,93,54,34,172,25,168,239,230,75,100,41,67,234,234,249,157,178,178,116,101,90,133,69,47,212,200,22,251,71,95,109,53,25,102,5,56,128,197,23,211,130,231,86,129,206,48,208,50,178,49,202,239,206,206,145,42,122,69,43,253,10,189,60,99,236,206,132,82,41,236,76,215,139,227,51,13,93,130,213,34,85,234,219,226,55,93,213,235,214,217,228,193,33,241,64,71,205,72,254,142,168,185,117,60,254,81,122,161,46,107,46,190,101,124,96,48, +109,88,190,30,159,191,124,183,94,103,152,17,24,107,54,71,239,165,172,214,169,205,170,66,126,209,216,195,254,178,41,229,29,129,120,70,150,37,159,108,233,206,110,206,107,202,174,87,40,51,198,18,31,168,118,84,197,11,125,213,183,100,237,243,57,18,117,205,147,193,21,225,227,36,75,171,248,93,142,64,193,111,239,211,138,31,53,214,1,77,78,169,202,79,7,74,13,62,229,166,212,223,109,137,237,213,165,43,85,234,184,77,161,209,82,57,62,46,55,189,157,152,93,53,117,154,183,21,211,43,226,198,129,12,37,191,167,112,75,216,52,107,158,44,232,148,1,187,206,48,8,58,71,231,196,43,183,223,15,78,212,99,131,210,248,206,133,166,85,108,182,60,43,119,172,103,242,233,110,209,147,237,206,193,219,90,48,178,158,61,59,91,147,63,63,159,174,30,203,83,170,147,87,177,153,181,87,179,115,195,139,109,153,102,211,227,45,73,102,220,166,70,168,233,238,215,247,118,44,215,14,9,20,134,70,85,129,250,41,182,85,103,124,254,52,113,25,155,200,157,170,206,20,150,140,62, +80,222,82,236,130,57,190,177,152,63,85,6,176,204,170,204,170,79,187,7,44,96,78,188,189,242,86,214,244,86,171,78,149,47,234,141,178,10,67,239,164,192,122,123,195,160,122,173,82,191,221,121,222,121,127,77,170,235,88,77,176,72,50,50,139,192,190,220,146,212,178,55,111,75,1,188,106,254,42,86,213,250,70,170,168,127,156,166,228,15,74,95,181,229,232,199,13,201,218,182,120,177,33,107,36,174,127,119,66,35,108,239,187,171,20,164,166,12,110,8,36,252,216,22,1,166,182,24,4,252,148,28,29,95,116,75,18,199,39,6,248,2,98,224,129,132,223,98,82,240,147,186,135,213,243,27,187,83,241,150,36,152,198,44,40,115,183,239,200,223,149,63,118,79,162,126,184,202,224,34,215,25,244,72,148,135,208,25,220,104,38,245,38,23,225,93,69,17,46,53,10,69,120,55,163,81,132,29,129,192,44,19,97,176,16,46,122,13,229,80,153,8,13,207,234,184,190,96,59,138,176,98,162,194,81,14,92,102,27,70,104,84,22,18,142,34,84,38,15,229,160,116,36,252,38,18, +195,5,43,168,52,152,59,131,77,55,163,25,52,0,5,12,34,224,116,30,219,126,50,126,48,19,228,138,16,88,4,131,137,114,125,33,154,36,2,219,128,125,115,212,255,188,138,178,190,98,129,131,190,6,56,134,128,140,211,158,61,226,75,169,76,102,56,149,246,243,21,60,169,70,236,95,237,89,37,49,234,76,50,221,96,217,178,205,63,32,151,255,128,92,140,225,112,217,28,4,101,17,4,81,17,22,122,29,103,138,47,18,234,69,71,163,57,40,141,202,67,233,62,56,73,16,202,37,148,233,237,17,234,223,48,152,76,2,250,25,224,238,4,182,15,242,76,52,130,135,0,193,156,9,218,127,6,192,46,130,92,253,231,51,192,218,1,203,158,223,255,8,149,133,6,71,0,175,161,74,216,244,243,58,131,119,149,80,17,72,74,20,27,98,29,30,195,227,177,89,62,142,229,184,166,94,165,18,58,76,195,41,247,76,135,28,88,124,199,230,30,68,20,121,15,85,100,119,178,254,57,212,117,211,119,108,6,139,103,219,128,127,118,95,252,249,1,76,0,199,219,249,112,137,17,197, +96,82,57,208,64,220,150,64,162,129,113,113,217,72,52,135,125,141,1,10,89,96,121,108,14,157,193,2,210,228,226,108,2,182,138,115,132,193,138,36,4,238,49,15,190,100,131,34,12,61,35,177,18,192,220,228,74,199,135,194,206,29,75,190,158,161,255,39,234,129,70,116,148,228,192,214,176,79,246,136,4,140,217,49,183,111,131,162,176,241,156,80,48,54,240,8,55,120,192,47,178,184,12,30,227,26,138,68,161,172,24,196,43,38,154,205,194,23,112,24,145,87,221,73,33,228,226,237,139,0,81,2,127,2,64,0,88,208,97,114,1,7,120,208,27,211,236,135,57,248,1,129,122,198,2,96,192,40,238,101,207,64,128,14,88,174,206,196,49,136,112,121,84,94,12,23,122,106,155,248,160,213,209,174,82,89,145,40,253,212,254,5,44,60,27,10,28,18,36,156,32,248,199,245,140,130,35,209,252,87,148,71,12,192,96,193,13,243,10,243,6,218,192,229,133,184,244,51,236,184,124,96,252,14,52,1,141,238,112,220,215,121,121,59,9,194,161,219,201,249,30,229,197,112,8,21, +115,134,95,104,232,208,241,81,121,32,120,242,236,126,0,15,230,192,15,48,81,91,124,70,192,60,240,140,28,168,125,92,198,223,80,95,4,241,156,216,139,55,194,188,0,57,167,38,246,226,141,61,148,134,122,176,223,15,97,236,153,10,251,204,117,150,228,62,235,1,243,236,124,0,10,0,108,205,145,194,120,36,253,239,168,145,232,233,101,239,128,114,44,201,115,15,23,61,56,148,237,70,223,53,6,72,88,112,97,123,66,25,196,7,16,101,15,98,97,222,33,136,3,57,7,129,46,132,237,165,9,79,159,236,115,94,251,68,69,247,128,232,38,225,104,199,168,247,126,36,219,50,81,58,122,3,137,0,198,12,135,34,129,223,101,33,209,16,34,100,5,78,42,149,131,82,17,47,42,141,198,142,97,241,184,248,82,46,141,195,134,46,131,3,150,66,103,13,61,52,155,237,237,49,67,190,7,94,227,8,221,199,41,132,235,108,62,10,126,60,84,248,118,184,103,97,11,158,40,12,206,61,156,65,192,53,243,168,208,41,120,230,232,112,239,121,58,31,71,228,165,199,87,114,187,10, +19,201,156,67,120,190,200,215,17,112,158,131,215,16,44,182,109,222,7,80,70,236,101,161,145,84,60,36,95,163,50,99,60,32,243,146,147,204,3,117,254,26,155,65,223,87,233,47,237,37,208,41,196,35,77,198,15,161,125,168,243,0,224,209,228,219,118,125,138,131,128,108,96,199,224,38,192,129,33,204,7,129,142,128,139,132,253,46,130,113,3,165,135,253,14,241,114,176,36,28,165,177,163,64,170,72,242,65,62,199,93,50,176,18,47,111,199,176,203,80,216,57,132,236,129,141,56,43,15,168,36,199,98,157,75,209,226,224,157,183,51,241,98,209,80,230,241,178,249,175,185,30,168,107,56,155,205,60,88,95,237,32,60,84,215,31,80,46,144,214,245,171,40,212,71,187,164,0,235,169,176,224,186,105,171,184,46,193,130,154,202,117,218,2,224,238,231,97,159,33,36,143,44,240,82,56,40,12,78,101,128,56,132,19,216,223,135,126,211,35,91,178,33,124,34,83,114,67,245,88,150,116,243,16,75,58,33,33,255,194,1,130,35,162,33,188,132,34,190,126,114,124,162,240,141,7, +68,69,7,224,43,136,227,163,99,105,216,39,174,20,134,253,20,225,54,251,33,157,116,96,197,28,194,206,241,165,208,35,56,169,242,37,90,62,224,31,7,253,107,12,3,239,207,128,52,29,102,232,206,69,120,38,204,141,70,105,12,42,19,249,27,202,97,219,66,174,151,19,182,183,13,184,75,69,244,61,240,25,244,75,32,201,64,216,209,132,143,250,114,47,42,176,200,9,191,73,212,57,81,192,92,216,116,136,9,56,156,238,24,182,31,203,129,208,96,253,138,239,60,90,84,23,153,40,245,248,222,7,223,181,143,227,249,42,10,144,128,18,12,117,97,158,11,22,135,251,32,22,168,117,109,233,130,15,110,90,112,244,63,96,36,2,186,227,3,189,207,49,17,37,32,158,200,40,24,142,76,1,241,65,246,217,71,152,254,7,59,175,56,80,190,130,224,191,14,208,72,16,95,15,135,239,234,107,221,227,30,149,69,84,99,123,180,249,68,60,117,140,124,73,52,19,255,255,241,249,48,248,54,166,92,65,108,31,14,56,131,190,103,246,108,228,9,236,137,96,171,189,255,8,35,163, +35,11,119,201,98,0,7,125,247,228,53,14,144,208,81,68,80,153,92,60,177,1,32,192,12,139,205,131,125,102,98,1,236,58,128,189,184,251,136,96,192,174,131,11,24,59,93,14,111,179,167,233,140,67,244,98,195,248,125,157,193,133,149,114,84,20,64,205,190,4,122,67,194,115,1,47,107,227,160,29,148,7,217,209,247,104,20,251,26,122,146,96,72,236,60,173,54,186,84,82,16,28,215,19,49,28,73,212,31,233,244,48,175,51,113,109,0,210,161,20,254,3,249,39,4,36,108,60,78,12,122,152,159,58,128,49,103,228,159,254,183,153,245,143,236,100,0,111,156,186,109,235,128,184,102,62,255,7,93,139,189,84,59,101,255,49,102,239,138,99,149,230,123,251,80,182,174,35,115,79,198,116,32,5,71,181,20,221,116,110,15,5,46,138,77,204,184,105,55,49,228,170,126,56,193,123,104,13,245,128,81,158,245,91,246,39,145,29,141,130,44,24,84,164,151,195,66,255,190,180,186,158,252,155,17,189,95,147,9,191,187,32,138,6,215,192,226,216,237,27,234,65,29,239,184,108, +56,85,41,239,188,199,240,76,195,97,53,239,40,230,237,245,59,23,182,20,157,238,192,179,106,196,13,255,227,151,37,31,32,238,218,24,129,11,136,178,214,190,202,147,106,22,46,253,150,101,75,69,78,18,126,28,32,78,150,147,156,208,231,3,26,15,41,120,63,184,209,129,237,222,67,243,27,15,210,27,187,222,160,244,163,44,214,51,253,67,233,127,47,251,251,128,29,167,229,194,25,48,224,183,164,221,181,15,236,164,221,22,131,136,155,61,103,87,24,38,111,8,35,194,157,15,206,157,48,182,59,67,245,222,77,110,157,189,99,114,242,18,27,214,174,238,105,225,183,28,58,202,57,126,47,137,125,68,125,122,100,10,136,159,107,203,3,241,207,7,36,106,108,183,57,167,225,1,4,184,132,87,244,192,17,18,111,130,246,22,63,87,220,87,94,217,231,161,248,158,80,102,3,116,34,191,19,246,19,235,16,255,241,193,3,38,95,196,235,71,231,131,37,252,118,158,184,22,222,127,57,76,222,232,28,106,100,36,236,86,17,207,2,240,123,214,112,216,193,162,114,110,18,247,76,14, +27,13,251,20,246,185,60,176,61,192,224,127,67,225,3,130,211,51,207,9,235,132,252,163,29,214,89,37,30,221,224,224,161,221,69,51,110,160,76,238,241,9,182,93,136,217,105,62,69,66,251,33,185,199,200,106,241,251,34,123,82,238,132,228,65,153,111,239,127,134,121,237,137,172,199,23,152,3,214,161,242,58,48,96,134,59,71,195,62,251,201,89,177,218,95,252,69,193,87,39,215,24,220,24,42,147,121,211,166,220,158,116,143,17,46,155,184,101,38,60,46,204,137,88,108,4,141,138,230,221,196,239,92,113,207,8,193,132,179,121,60,118,148,227,62,214,11,94,64,0,106,188,188,125,105,55,145,143,221,101,228,229,237,13,91,197,248,255,4,194,111,177,34,34,142,175,60,127,97,187,176,255,84,172,119,129,180,79,226,101,191,198,113,172,241,194,43,199,19,216,55,254,150,11,222,126,157,129,186,56,96,157,185,186,124,205,178,117,235,129,198,248,192,32,24,227,120,157,7,36,197,114,185,110,199,245,130,206,70,225,109,44,15,127,26,69,5,206,192,145,64,251,184,132,79,26, +126,173,7,203,234,211,139,221,133,141,167,20,251,62,76,252,64,236,142,53,39,22,187,179,204,119,73,7,156,61,161,211,144,224,4,125,226,252,192,211,22,206,33,209,192,222,217,176,103,225,64,242,49,44,38,202,37,82,134,176,115,182,54,10,205,177,208,126,233,3,91,43,48,126,252,145,78,135,15,181,136,150,241,241,25,252,239,64,159,24,103,96,83,56,156,51,183,39,7,155,112,23,124,29,119,163,81,240,164,104,38,106,171,52,109,207,167,157,189,167,227,27,197,159,168,180,159,35,241,27,180,51,96,132,43,184,223,142,31,182,55,120,196,211,37,14,149,197,141,166,226,205,37,156,79,97,231,144,112,7,14,196,131,15,80,212,0,255,194,131,207,177,193,208,15,46,59,96,126,14,50,183,107,240,237,33,220,73,5,137,60,23,176,216,7,58,35,248,38,46,210,177,53,28,5,95,221,30,161,130,205,32,46,50,194,153,192,219,129,224,200,190,14,151,211,92,222,106,186,92,120,66,223,230,138,22,15,97,161,40,221,147,212,142,107,83,210,83,84,85,110,234,121,156,251,124, +199,171,71,28,2,206,95,59,198,161,255,3,161,66,228,135, + diff --git a/uppsrc/CtrlLib/src.tpp/CtrlRetriever$en-us.tpp b/uppsrc/CtrlLib/src.tpp/CtrlRetriever_en-us.tpp similarity index 100% rename from uppsrc/CtrlLib/src.tpp/CtrlRetriever$en-us.tpp rename to uppsrc/CtrlLib/src.tpp/CtrlRetriever_en-us.tpp diff --git a/uppsrc/CtrlLib/src.tpp/DataPusher$en-us.tpp b/uppsrc/CtrlLib/src.tpp/DataPusher_en-us.tpp similarity index 97% rename from uppsrc/CtrlLib/src.tpp/DataPusher$en-us.tpp rename to uppsrc/CtrlLib/src.tpp/DataPusher_en-us.tpp index ebf291957..729a485e3 100644 --- a/uppsrc/CtrlLib/src.tpp/DataPusher$en-us.tpp +++ b/uppsrc/CtrlLib/src.tpp/DataPusher_en-us.tpp @@ -1,143 +1,143 @@ -topic "DataPusher"; -[2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,0#27521748481378242620020725143825:desc] -[0 $$3,0#96390100711032703541132217272105:end] -[H6;0 $$4,0#05600065144404261032431302351956:begin] -[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] -[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] -[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] -[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] -[b42;2 $$9,9#13035079074754324216151401829390:normal] -[{_}%EN-US -[ {{10000@3 [s0; [*@(229)4 DataPusher]]}}&] -[s3; &] -[s1;:DataPusher`:`:class:%- [@(0.0.255)3 class][3 _][*3 DataPusher][3 _:_][@(0.0.255)3 public][3 _ -][*@3;3 Pusher]&] -[s0; &] -[s2; -@@image:1906&143 -€ƒ±—€€€ƒéÿ€€€€ø¿œíœÑ­Â° ŒÅ»±û¼åÛ˜‡•žÄŽåôűýã¶”«šöœÝ’¦Á¶›òé¤Ï“ÿÇ“¡„Âñ±îÿ÷„Ð -ײ–œà °ˆ¤À©°¤À©Á°¤À©¾ëÉÎéšÖü·§´†½×Žˆú×¹”—ÅΔ·½‹éêºá„Œ­ç¹Óöð­™éÚ”ýîä䥠¨¯¹÷ѮŠ-·–‡“ÑÙ’Ñ”§¶ä›ˆ×öÞ“Œ¥í©²Úë¶½ÑÈ®¦ÛÛŒ¬Ùž›çîøÇÚãå”ÔëÞ…Û¶®Ï–†‘Åìúì¢ýªëîâºÏÒáì±ÐŸüÓÒ¾ -íÝÑ»±Ü˜ö¢…¸º´¤›°è˜§³ÑúÝ®¬‹õŽÞ·¶›‹¨¤Êž©†§ê³·¥­ÃÝÖ”ßâÉÌÒ£á§ÇþÀÆÓ¯­µÝÇâûº†šÜ™´ÿßÐ -Ñ–ëÚÒ„•ÕÄ®šÜ··²ØÞÌÑÒ°˜¨ëÏ—®«šÛ˜­™å‰â§ÞÆÑÜ€ùõ›•½åÌÌÏ—ƒƒõÉü¯éѲÝÓõÍÔïÆ¬îûº¹ó¼ï -§»Á¶ßç±×³õÄè×»û߀¸Ý§òïÿ˜¨°ÙŒÔçËÏô…ø£÷‚…½è²Ø’ ”üÆ¢• ”Ø’ ”ᮥ‘‡êûÅÿ¥‚ˆý™œÞ‚˜¦ú - -&] -[s0; &] -[s9; DataPusher is a class that is able to Convert and Display some -Value and also allows user to click this value (usually in order -to change it). Note that both Convert and Display lifetime must -exceed the lifetime of DataPusher (DataPusher stores just the -reference to them).&] -[s2; &] -[s9; Usual usage pattern is that DataPusher displays some data that -can be changed by some complex dialog. This pattern can be implemented -either by deriving new class from DataPusher, overriding DoAction -method and using SetDataAction at the end of it to both change -the value of DataPusher and invoke repainting and WhenAction, -or it can use default DoAction implementation and WhenAction -callback (do not call SetDataAction in this case).&] -[s2; &] -[s0;%- [%%/ Derived from][%% ][^topic`:`/`/CtrlLib`/src`/Pusher`$en`-us^ Pusher]&] -[s3; &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] -[s3;%- &] -[s5;:DataPusher`:`:DataPusher`(`):%- [* DataPusher]()&] -[s2; Initializes the data pusher.&] -[s3; &] -[s4; &] -[s5;:DataPusher`:`:DataPusher`(const Convert`&`,const Display`&`):%- [* DataPusher]([@(0.0.255) c -onst]_[_^Convert^ Convert][@(0.0.255) `&]_[*@3 convert], [@(0.0.255) const]_[_^Display^ Dis -play][@(0.0.255) `&]_[*@3 display]_`=_StdDisplay())&] -[s2; Creates DataPusher with specified Convert and Display used to -Convert a then Display the Value of DataPusher. Note that both -convert and display lifetime must exceed the lifetime of DataPusher -(DataPusher stores just the reference to them).&] -[s7; [%-*C@3 convert]-|Convert.&] -[s7; [%-*C@3 display]-|Display.&] -[s3; &] -[s4;%- &] -[s5;:DataPusher`:`:DataPusher`(const Display`&`):%- [* DataPusher]([@(0.0.255) const]_[_^Display^ D -isplay][@(0.0.255) `&]_[*@3 display])&] -[s2; Creates DataPusher with specified Display.&] -[s7; [%-*C@3 display]-|Display.&] -[s3; &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0; [* Protected Method List]]}}&] -[s3;%- &] -[s5;:DataPusher`:`:DoAction`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* DoAction]()&] -[s2; This virtual method is invoked when user clicks DataPusher. -Default action is to call WhenAction callback.&] -[s3; &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] -[s3;%- &] -[s5;:DataPusher`:`:SetConvert`(const Convert`&`):%- [_^DataPusher^ DataPusher][@(0.0.255) `& -]_[* SetConvert]([@(0.0.255) const]_[_^Convert^ Convert][@(0.0.255) `&]_[*@3 `_convert])&] -[s2; Sets the new Convert.&] -[s7; [%-*C@3 `_convert]-|New Convert.&] -[s7; [*/ Return value]-|`*this for chaining.&] -[s3; &] -[s4;%- &] -[s5;:DataPusher`:`:GetConvert`(`)const:%- [@(0.0.255) const]_[_^Convert^ Convert][@(0.0.255) `& -]_[* GetConvert]()_[@(0.0.255) const]&] -[s2; Returns current Convert.&] -[s7; [*/ Return value]-|Current Convert.&] -[s3; &] -[s4;%- &] -[s5;:DataPusher`:`:SetDisplay`(const Display`&`):%- [_^DataPusher^ DataPusher][@(0.0.255) `& -]_[* SetDisplay]([@(0.0.255) const]_[_^Display^ Display][@(0.0.255) `&]_[*@3 `_display])&] -[s2; Sets the new Display.&] -[s7; [%-*C@3 `_display]-|New Display.&] -[s7; [*/ Return value]-|`*this for chaining.&] -[s3; &] -[s4;%- &] -[s5;:DataPusher`:`:GetDisplay`(`)const:%- [@(0.0.255) const]_[_^Display^ Display][@(0.0.255) `& -]_[* GetDisplay]()_[@(0.0.255) const]&] -[s2; Returns current Display.&] -[s7; [*/ Return value]-|Current Display.&] -[s3; &] -[s4;%- &] -[s5;:DataPusher`:`:SetDataAction`(const Value`&`):%- [@(0.0.255) void]_[* SetDataAction]( -[@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_[*@3 value])&] -[s2; Invokes SetData([%-*C@3 value]) and then UpdateActionRefresh(). -Useful when building DataPusher derived class.&] -[s3; &] -[s4;%- &] -[s5;:DataPusher`:`:Set`(const Value`&`):%- [@(0.0.255) void]_[* Set]([@(0.0.255) const]_[_^Value^ V -alue][@(0.0.255) `&]_[*@3 value])&] -[s2; Alternative way to set data, decoupled from SetData interface. -Sets the data to be displayed. Intended to be used by derived -classes that implement own SetData/GetData.&] -[s3; &] -[s4;%- &] -[s5;:DataPusher`:`:SetData`(const Value`&`):%- [@(0.0.255) virtual] -[@(0.0.255) void]_[* SetData]([@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_[*@3 value]) -&] -[s2; Sets the control`'s data to [%-*@3 value].&] -[s3; &] -[s4;%- &] -[s5;:DataPusher`:`:GetData`(`)const:%- [@(0.0.255) virtual] [_^Value^ Value]_[* GetData]()_ -[@(0.0.255) const]&] -[s2; Returns the control`'s data.&] -[s3;%- &] -[s4;%- &] -[s5;:DataPusher`:`:NullText`(const char`*`,Color`):%- [_^DataPusher^ DataPusher][@(0.0.255) `& -]_[* NullText]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text]_`=_t`_(`"([@(0.0.255) defa -ult])`"), [_^Color^ Color]_[*@3 ink]_`=_Brown)&] -[s5;:DataPusher`:`:NullText`(const char`*`,Font`,Color`):%- [_^DataPusher^ DataPusher][@(0.0.255) `& -]_[* NullText]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text], [_^Font^ Font]_[*@3 fnt], -[_^Color^ Color]_[*@3 ink])&] -[s2; Sets the default text that will be displayed if no data is supplied.&] -[s7;%- [*@3 text]-|default text&] -[s7;%- [*@3 ink]-|color of the text&] -[s7;%- [*@3 fnt]-|font of the text&] -[s3; &] -[s4;%- &] -[s5;:DataPusher`:`:WhenPreAction:%- [_^Callback^ Callback]_[* WhenPreAction]&] -[s2; This callback is invoked before DoAction.&] -[s3; &] +topic "DataPusher"; +[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,0#27521748481378242620020725143825:desc] +[0 $$3,0#96390100711032703541132217272105:end] +[H6;0 $$4,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] +[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] +[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] +[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] +[b42;2 $$9,9#13035079074754324216151401829390:normal] +[{_}%EN-US +[ {{10000@3 [s0; [*@(229)4 DataPusher]]}}&] +[s3; &] +[s1;:DataPusher`:`:class:%- [@(0.0.255)3 class][3 _][*3 DataPusher][3 _:_][@(0.0.255)3 public][3 _ +][*@3;3 Pusher]&] +[s0; &] +[s2; +@@image:1906&143 +€ƒ±—€€€ƒéÿ€€€€ø¿œíœÑ­Â° ŒÅ»±û¼åÛ˜‡•žÄŽåôűýã¶”«šöœÝ’¦Á¶›òé¤Ï“ÿÇ“¡„Âñ±îÿ÷„Ð +ײ–œà °ˆ¤À©°¤À©Á°¤À©¾ëÉÎéšÖü·§´†½×Žˆú×¹”—ÅΔ·½‹éêºá„Œ­ç¹Óöð­™éÚ”ýîä䥠¨¯¹÷ѮŠ+·–‡“ÑÙ’Ñ”§¶ä›ˆ×öÞ“Œ¥í©²Úë¶½ÑÈ®¦ÛÛŒ¬Ùž›çîøÇÚãå”ÔëÞ…Û¶®Ï–†‘Åìúì¢ýªëîâºÏÒáì±ÐŸüÓÒ¾ +íÝÑ»±Ü˜ö¢…¸º´¤›°è˜§³ÑúÝ®¬‹õŽÞ·¶›‹¨¤Êž©†§ê³·¥­ÃÝÖ”ßâÉÌÒ£á§ÇþÀÆÓ¯­µÝÇâûº†šÜ™´ÿßÐ +Ñ–ëÚÒ„•ÕÄ®šÜ··²ØÞÌÑÒ°˜¨ëÏ—®«šÛ˜­™å‰â§ÞÆÑÜ€ùõ›•½åÌÌÏ—ƒƒõÉü¯éѲÝÓõÍÔïÆ¬îûº¹ó¼ï +§»Á¶ßç±×³õÄè×»û߀¸Ý§òïÿ˜¨°ÙŒÔçËÏô…ø£÷‚…½è²Ø’ ”üÆ¢• ”Ø’ ”ᮥ‘‡êûÅÿ¥‚ˆý™œÞ‚˜¦ú + +&] +[s0; &] +[s9; DataPusher is a class that is able to Convert and Display some +Value and also allows user to click this value (usually in order +to change it). Note that both Convert and Display lifetime must +exceed the lifetime of DataPusher (DataPusher stores just the +reference to them).&] +[s2; &] +[s9; Usual usage pattern is that DataPusher displays some data that +can be changed by some complex dialog. This pattern can be implemented +either by deriving new class from DataPusher, overriding DoAction +method and using SetDataAction at the end of it to both change +the value of DataPusher and invoke repainting and WhenAction, +or it can use default DoAction implementation and WhenAction +callback (do not call SetDataAction in this case).&] +[s2; &] +[s0;%- [%%/ Derived from][%% ][^topic`:`/`/CtrlLib`/src`/Pusher`$en`-us^ Pusher]&] +[s3; &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] +[s3;%- &] +[s5;:DataPusher`:`:DataPusher`(`):%- [* DataPusher]()&] +[s2; Initializes the data pusher.&] +[s3; &] +[s4; &] +[s5;:DataPusher`:`:DataPusher`(const Convert`&`,const Display`&`):%- [* DataPusher]([@(0.0.255) c +onst]_[_^Convert^ Convert][@(0.0.255) `&]_[*@3 convert], [@(0.0.255) const]_[_^Display^ Dis +play][@(0.0.255) `&]_[*@3 display]_`=_StdDisplay())&] +[s2; Creates DataPusher with specified Convert and Display used to +Convert a then Display the Value of DataPusher. Note that both +convert and display lifetime must exceed the lifetime of DataPusher +(DataPusher stores just the reference to them).&] +[s7; [%-*C@3 convert]-|Convert.&] +[s7; [%-*C@3 display]-|Display.&] +[s3; &] +[s4;%- &] +[s5;:DataPusher`:`:DataPusher`(const Display`&`):%- [* DataPusher]([@(0.0.255) const]_[_^Display^ D +isplay][@(0.0.255) `&]_[*@3 display])&] +[s2; Creates DataPusher with specified Display.&] +[s7; [%-*C@3 display]-|Display.&] +[s3; &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0; [* Protected Method List]]}}&] +[s3;%- &] +[s5;:DataPusher`:`:DoAction`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* DoAction]()&] +[s2; This virtual method is invoked when user clicks DataPusher. +Default action is to call WhenAction callback.&] +[s3; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] +[s3;%- &] +[s5;:DataPusher`:`:SetConvert`(const Convert`&`):%- [_^DataPusher^ DataPusher][@(0.0.255) `& +]_[* SetConvert]([@(0.0.255) const]_[_^Convert^ Convert][@(0.0.255) `&]_[*@3 `_convert])&] +[s2; Sets the new Convert.&] +[s7; [%-*C@3 `_convert]-|New Convert.&] +[s7; [*/ Return value]-|`*this for chaining.&] +[s3; &] +[s4;%- &] +[s5;:DataPusher`:`:GetConvert`(`)const:%- [@(0.0.255) const]_[_^Convert^ Convert][@(0.0.255) `& +]_[* GetConvert]()_[@(0.0.255) const]&] +[s2; Returns current Convert.&] +[s7; [*/ Return value]-|Current Convert.&] +[s3; &] +[s4;%- &] +[s5;:DataPusher`:`:SetDisplay`(const Display`&`):%- [_^DataPusher^ DataPusher][@(0.0.255) `& +]_[* SetDisplay]([@(0.0.255) const]_[_^Display^ Display][@(0.0.255) `&]_[*@3 `_display])&] +[s2; Sets the new Display.&] +[s7; [%-*C@3 `_display]-|New Display.&] +[s7; [*/ Return value]-|`*this for chaining.&] +[s3; &] +[s4;%- &] +[s5;:DataPusher`:`:GetDisplay`(`)const:%- [@(0.0.255) const]_[_^Display^ Display][@(0.0.255) `& +]_[* GetDisplay]()_[@(0.0.255) const]&] +[s2; Returns current Display.&] +[s7; [*/ Return value]-|Current Display.&] +[s3; &] +[s4;%- &] +[s5;:DataPusher`:`:SetDataAction`(const Value`&`):%- [@(0.0.255) void]_[* SetDataAction]( +[@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_[*@3 value])&] +[s2; Invokes SetData([%-*C@3 value]) and then UpdateActionRefresh(). +Useful when building DataPusher derived class.&] +[s3; &] +[s4;%- &] +[s5;:DataPusher`:`:Set`(const Value`&`):%- [@(0.0.255) void]_[* Set]([@(0.0.255) const]_[_^Value^ V +alue][@(0.0.255) `&]_[*@3 value])&] +[s2; Alternative way to set data, decoupled from SetData interface. +Sets the data to be displayed. Intended to be used by derived +classes that implement own SetData/GetData.&] +[s3; &] +[s4;%- &] +[s5;:DataPusher`:`:SetData`(const Value`&`):%- [@(0.0.255) virtual] +[@(0.0.255) void]_[* SetData]([@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_[*@3 value]) +&] +[s2; Sets the control`'s data to [%-*@3 value].&] +[s3; &] +[s4;%- &] +[s5;:DataPusher`:`:GetData`(`)const:%- [@(0.0.255) virtual] [_^Value^ Value]_[* GetData]()_ +[@(0.0.255) const]&] +[s2; Returns the control`'s data.&] +[s3;%- &] +[s4;%- &] +[s5;:DataPusher`:`:NullText`(const char`*`,Color`):%- [_^DataPusher^ DataPusher][@(0.0.255) `& +]_[* NullText]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text]_`=_t`_(`"([@(0.0.255) defa +ult])`"), [_^Color^ Color]_[*@3 ink]_`=_Brown)&] +[s5;:DataPusher`:`:NullText`(const char`*`,Font`,Color`):%- [_^DataPusher^ DataPusher][@(0.0.255) `& +]_[* NullText]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text], [_^Font^ Font]_[*@3 fnt], +[_^Color^ Color]_[*@3 ink])&] +[s2; Sets the default text that will be displayed if no data is supplied.&] +[s7;%- [*@3 text]-|default text&] +[s7;%- [*@3 ink]-|color of the text&] +[s7;%- [*@3 fnt]-|font of the text&] +[s3; &] +[s4;%- &] +[s5;:DataPusher`:`:WhenPreAction:%- [_^Callback^ Callback]_[* WhenPreAction]&] +[s2; This callback is invoked before DoAction.&] +[s3; &] [s0; ] \ No newline at end of file diff --git a/uppsrc/CtrlLib/src.tpp/DocEdit$en-us.tpp b/uppsrc/CtrlLib/src.tpp/DocEdit_en-us.tpp similarity index 98% rename from uppsrc/CtrlLib/src.tpp/DocEdit$en-us.tpp rename to uppsrc/CtrlLib/src.tpp/DocEdit_en-us.tpp index 9e63a2da4..761a4e5e1 100644 --- a/uppsrc/CtrlLib/src.tpp/DocEdit$en-us.tpp +++ b/uppsrc/CtrlLib/src.tpp/DocEdit_en-us.tpp @@ -1,98 +1,98 @@ -topic "DocEdit"; -[2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,0#27521748481378242620020725143825:desc] -[0 $$3,0#96390100711032703541132217272105:end] -[H6;0 $$4,0#05600065144404261032431302351956:begin] -[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] -[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] -[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] -[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] -[b42;2 $$9,9#13035079074754324216151401829390:normal] -[{_}%EN-US -[ {{10000@3 [s0; [*@(229)4 DocEdit]]}}&] -[s3; &] -[s1;:DocEdit`:`:class:%- [@(0.0.255)3 class][3 _][*3 DocEdit][3 _:_][@(0.0.255)3 public][3 _][*@3;3 T -extCtrl]&] -[s9; DocEdit is form of raw text editor that interprets lines as -paragraphs (wraps them).&] -[s0; &] -[s2; -@@image:875&475 -(A4wATAAAALT/AAAAAHic7V1bjtswDMyJ9x49Qm/Qj6JXdIF+GIrmIcqWbW7DgREkEjkiOZISawHv148/X3Wlv7ZCYpRG+VEa5UdplB+dRq937I2dF7bEe78dlqRzhoSuo44wf83jER7OxczYM4iwlUazjpk1ortf24jutBfbcWvdP3pLSqg2akqIBmiJH/1YpiaKwWcX1AjDoNmhjepFM+OoLBWnYfMzKuLoxxrWZEiLvrN7na+/ycITevI2QTrZcCqauUqDUa8+qm6s4SwKVnKtRiZr1du1H1tHEba29yKNVBjY+5RGw3Xt2eJhB2dphE2JaKgiGmVeR+0UpWkOJ/b+0RQBtxfKOctmEoy/UYs0qFEkuzpnyI/SKD9Ko/wojfJDaUS/lxVeDWYDeL1DRTJkzhDDRcBz7+5NBOb3zJTvGfIMMVyE5Rqd9PUGQY2eiuEi0L8fbc3q7sKju4GpD7qYe4qOpLWk8SSJAXnQEkdUUWEYZh3hiJGC0JgNiYqWOqpiPhuD0UjFaaJCr8heh4ks0UiFZByXa7QkBuylQrSlo5NBZTelEWXArtLILA2jkYrkmEZmHUW2C9UydAxqdH8Mfl1MxTDc6wzJ1ixYjHDYpVpe71CcXQoZYsCiYbkMlRpuA9Q5wyOgWiiURo+gNPrPUBrlx5Iz1SVQX9yFK87rjlkGSe6UL8lUKY2SjGWw6kwV7zX2j+0bs4/RdvTyY6nYIu7HjIcBD2uict+x9kwVbQwJZufrQAk9+TAems7UWFiKYd0WaoTMtIydF9rQKYSgXT7BbiyvUTxUJFTGwYApLb4qrD1TVWFfpNGQwWt0ZqwDJLT9Oo06zohXXGjVaOoWWUdT7nFjVQpDqxoVlpypGpvIm85RrTvKMFyknrBLxwSgjFUdhr70PcVT5wzDwAo76iwoP0qj/CiN8iOVRvUlRVEa5UdplB/mOSfY2H6kXchgjNXNCL3v+GSoc4aNzeq9hsiDXceM6c3mhyOiES6N1sZ0nTReleN3x1Aj03Kd8VYaNSiN8mPqN8Nw+5oypr6t8VZK/YNZRycxpKr6B7FWI7oMjfGZsT4Hqe5hCxSlUX7U81QP4OYE/49ndd6M0ig/0mpEdz/6Ey7Sq27BkEGFhD8g6Z0a7UIGY6w2/+DP1/N45HmqlM37mqVtpgHmOxwxaKwCuwL3P09VpdzNavpqSDoetDFdJ40xx7W4/3mqkTl8QKPgRFprTINfjgefp4qWymtW6NJoe8/IFND3oqXKnZJQF7NHdfZxY+qrCnIFvuk5w8KaDKluWCken6kRXYYXjXUerUa/f/2sK9WFGhVyojTKj9IoP0qj/CiN8qM0yo+vp//Fc12R6y/AZWMf) -&] -[s0; &] -[s0; [/ Derived from] [^topic`:`/`/CtrlLib`/src`/TextCtrl`$en`-us`#TextCtrl`:`:class^ Tex -tCtrl]&] -[s3; &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] -[s3;%- &] -[s5;:DocEdit`:`:SetFont`(Font`):%- [_^DocEdit^ DocEdit][@(0.0.255) `&]_[* SetFont]([_^Font^ F -ont]_[*@3 f])&] -[s2; Sets the font to be used by widget to [%-*@3 f].&] -[s3; &] -[s4;%- &] -[s5;:DocEdit`:`:After`(int`):%- [_^DocEdit^ DocEdit][@(0.0.255) `&]_[* After]([@(0.0.255) int -]_[*@3 a])&] -[s2; The height of empty block after the paragraph in pixels. Default -is 0.&] -[s3; &] -[s4;%- &] -[s5;:DocEdit`:`:SetFilter`(int`(`*`)`(int c`)`):%- [_^DocEdit^ DocEdit][@(0.0.255) `&]_[* S -etFilter]([@(0.0.255) int]_(`*[*@3 f])([@(0.0.255) int]_c))&] -[s2; [%- Sets the character filter] [%-*@3 f]. All characters keystrokes -are first altered by this function and used only if the result -is not zero.&] -[s3; &] -[s4;%- &] -[s5;:DocEdit`:`:AutoHideSb`(bool`):%- [_^DocEdit^ DocEdit][@(0.0.255) `&]_[* AutoHideSb]([@(0.0.255) b -ool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2; In AutoHideSb mode, scrollbar is only visible when it is needed -(text height is bigger than the height of the window). This mode -is active by default.&] -[s3; &] -[s4;%- &] -[s5;:DocEdit`:`:IsAutoHideSb`(`)const:%- [@(0.0.255) bool]_[* IsAutoHideSb]()_[@(0.0.255) c -onst]&] -[s2; Returns true if AutoHideSb is active.&] -[s3;%- &] -[s4;%- &] -[s5;:DocEdit`:`:UpDownLeave`(bool`):%- [_^DocEdit^ DocEdit][@(0.0.255) `&]_[* UpDownLeave]( -[@(0.0.255) bool]_[*@3 u]_`=_[@(0.0.255) true])&] -[s2; In UpDownLeave mode, Up key at the top of text or Down key at -the bottom is not processed by DocEdit, which in turn means that -it can be processed by parent Ctrl. In TopWindow, this will move -the focus to previous / next Ctrl that IsWantFocus.&] -[s3; &] -[s4;%- &] -[s5;:DocEdit`:`:NoUpDownLeave`(`):%- [_^DocEdit^ DocEdit][@(0.0.255) `&]_[* NoUpDownLeave]( -)&] -[s2; Same as UpDownLeave(false).&] -[s3; &] -[s4;%- &] -[s5;:DocEdit`:`:IsUpDownLeave`(`)const:%- [@(0.0.255) bool]_[* IsUpDownLeave]()_[@(0.0.255) c -onst]&] -[s2; Tests UpDownLeave mode.&] -[s3; &] -[s4;%- &] -[s5;:DocEdit`:`:SetScrollBarStyle`(const ScrollBar`:`:Style`&`):%- [_^DocEdit^ DocEdit][@(0.0.255) `& -]_[* SetScrollBarStyle]([@(0.0.255) const]_[_^ScrollBar`:`:Style^ ScrollBar`::Style][@(0.0.255) `& -]_[*@3 s])&] -[s2; Sets the chameleon style of scrollbar.&] -[s3; &] -[s4;%- &] -[s5;:DocEdit`:`:EofLine`(bool`):%- [_^DocEdit^ DocEdit][@(0.0.255) `&]_[* EofLine]([@(0.0.255) b -ool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2; If active, paints faint line at the end of text. Default is -active.&] -[s3; &] -[s4;%- &] -[s5;:DocEdit`:`:NoEofLine`(`):%- [_^DocEdit^ DocEdit][@(0.0.255) `&]_[* NoEofLine]()&] -[s2; Same as EofFile(false).&] -[s3;%- &] -[s4;%- &] -[s5;:DocEdit`:`:IsEofLine`(`)const:%- [@(0.0.255) bool]_[* IsEofLine]()_[@(0.0.255) const]&] -[s2; Returns true if EofLine is active.&] -[s3;%- &] +topic "DocEdit"; +[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,0#27521748481378242620020725143825:desc] +[0 $$3,0#96390100711032703541132217272105:end] +[H6;0 $$4,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] +[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] +[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] +[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] +[b42;2 $$9,9#13035079074754324216151401829390:normal] +[{_}%EN-US +[ {{10000@3 [s0; [*@(229)4 DocEdit]]}}&] +[s3; &] +[s1;:DocEdit`:`:class:%- [@(0.0.255)3 class][3 _][*3 DocEdit][3 _:_][@(0.0.255)3 public][3 _][*@3;3 T +extCtrl]&] +[s9; DocEdit is form of raw text editor that interprets lines as +paragraphs (wraps them).&] +[s0; &] +[s2; +@@image:875&475 +(A4wATAAAALT/AAAAAHic7V1bjtswDMyJ9x49Qm/Qj6JXdIF+GIrmIcqWbW7DgREkEjkiOZISawHv148/X3Wlv7ZCYpRG+VEa5UdplB+dRq937I2dF7bEe78dlqRzhoSuo44wf83jER7OxczYM4iwlUazjpk1ortf24jutBfbcWvdP3pLSqg2akqIBmiJH/1YpiaKwWcX1AjDoNmhjepFM+OoLBWnYfMzKuLoxxrWZEiLvrN7na+/ycITevI2QTrZcCqauUqDUa8+qm6s4SwKVnKtRiZr1du1H1tHEba29yKNVBjY+5RGw3Xt2eJhB2dphE2JaKgiGmVeR+0UpWkOJ/b+0RQBtxfKOctmEoy/UYs0qFEkuzpnyI/SKD9Ko/wojfJDaUS/lxVeDWYDeL1DRTJkzhDDRcBz7+5NBOb3zJTvGfIMMVyE5Rqd9PUGQY2eiuEi0L8fbc3q7sKju4GpD7qYe4qOpLWk8SSJAXnQEkdUUWEYZh3hiJGC0JgNiYqWOqpiPhuD0UjFaaJCr8heh4ks0UiFZByXa7QkBuylQrSlo5NBZTelEWXArtLILA2jkYrkmEZmHUW2C9UydAxqdH8Mfl1MxTDc6wzJ1ixYjHDYpVpe71CcXQoZYsCiYbkMlRpuA9Q5wyOgWiiURo+gNPrPUBrlx5Iz1SVQX9yFK87rjlkGSe6UL8lUKY2SjGWw6kwV7zX2j+0bs4/RdvTyY6nYIu7HjIcBD2uict+x9kwVbQwJZufrQAk9+TAems7UWFiKYd0WaoTMtIydF9rQKYSgXT7BbiyvUTxUJFTGwYApLb4qrD1TVWFfpNGQwWt0ZqwDJLT9Oo06zohXXGjVaOoWWUdT7nFjVQpDqxoVlpypGpvIm85RrTvKMFyknrBLxwSgjFUdhr70PcVT5wzDwAo76iwoP0qj/CiN8iOVRvUlRVEa5UdplB/mOSfY2H6kXchgjNXNCL3v+GSoc4aNzeq9hsiDXceM6c3mhyOiES6N1sZ0nTReleN3x1Aj03Kd8VYaNSiN8mPqN8Nw+5oypr6t8VZK/YNZRycxpKr6B7FWI7oMjfGZsT4Hqe5hCxSlUX7U81QP4OYE/49ndd6M0ig/0mpEdz/6Ey7Sq27BkEGFhD8g6Z0a7UIGY6w2/+DP1/N45HmqlM37mqVtpgHmOxwxaKwCuwL3P09VpdzNavpqSDoetDFdJ40xx7W4/3mqkTl8QKPgRFprTINfjgefp4qWymtW6NJoe8/IFND3oqXKnZJQF7NHdfZxY+qrCnIFvuk5w8KaDKluWCken6kRXYYXjXUerUa/f/2sK9WFGhVyojTKj9IoP0qj/CiN8qM0yo+vp//Fc12R6y/AZWMf) +&] +[s0; &] +[s0; [/ Derived from] [^topic`:`/`/CtrlLib`/src`/TextCtrl`$en`-us`#TextCtrl`:`:class^ Tex +tCtrl]&] +[s3; &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] +[s3;%- &] +[s5;:DocEdit`:`:SetFont`(Font`):%- [_^DocEdit^ DocEdit][@(0.0.255) `&]_[* SetFont]([_^Font^ F +ont]_[*@3 f])&] +[s2; Sets the font to be used by widget to [%-*@3 f].&] +[s3; &] +[s4;%- &] +[s5;:DocEdit`:`:After`(int`):%- [_^DocEdit^ DocEdit][@(0.0.255) `&]_[* After]([@(0.0.255) int +]_[*@3 a])&] +[s2; The height of empty block after the paragraph in pixels. Default +is 0.&] +[s3; &] +[s4;%- &] +[s5;:DocEdit`:`:SetFilter`(int`(`*`)`(int c`)`):%- [_^DocEdit^ DocEdit][@(0.0.255) `&]_[* S +etFilter]([@(0.0.255) int]_(`*[*@3 f])([@(0.0.255) int]_c))&] +[s2; [%- Sets the character filter] [%-*@3 f]. All characters keystrokes +are first altered by this function and used only if the result +is not zero.&] +[s3; &] +[s4;%- &] +[s5;:DocEdit`:`:AutoHideSb`(bool`):%- [_^DocEdit^ DocEdit][@(0.0.255) `&]_[* AutoHideSb]([@(0.0.255) b +ool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2; In AutoHideSb mode, scrollbar is only visible when it is needed +(text height is bigger than the height of the window). This mode +is active by default.&] +[s3; &] +[s4;%- &] +[s5;:DocEdit`:`:IsAutoHideSb`(`)const:%- [@(0.0.255) bool]_[* IsAutoHideSb]()_[@(0.0.255) c +onst]&] +[s2; Returns true if AutoHideSb is active.&] +[s3;%- &] +[s4;%- &] +[s5;:DocEdit`:`:UpDownLeave`(bool`):%- [_^DocEdit^ DocEdit][@(0.0.255) `&]_[* UpDownLeave]( +[@(0.0.255) bool]_[*@3 u]_`=_[@(0.0.255) true])&] +[s2; In UpDownLeave mode, Up key at the top of text or Down key at +the bottom is not processed by DocEdit, which in turn means that +it can be processed by parent Ctrl. In TopWindow, this will move +the focus to previous / next Ctrl that IsWantFocus.&] +[s3; &] +[s4;%- &] +[s5;:DocEdit`:`:NoUpDownLeave`(`):%- [_^DocEdit^ DocEdit][@(0.0.255) `&]_[* NoUpDownLeave]( +)&] +[s2; Same as UpDownLeave(false).&] +[s3; &] +[s4;%- &] +[s5;:DocEdit`:`:IsUpDownLeave`(`)const:%- [@(0.0.255) bool]_[* IsUpDownLeave]()_[@(0.0.255) c +onst]&] +[s2; Tests UpDownLeave mode.&] +[s3; &] +[s4;%- &] +[s5;:DocEdit`:`:SetScrollBarStyle`(const ScrollBar`:`:Style`&`):%- [_^DocEdit^ DocEdit][@(0.0.255) `& +]_[* SetScrollBarStyle]([@(0.0.255) const]_[_^ScrollBar`:`:Style^ ScrollBar`::Style][@(0.0.255) `& +]_[*@3 s])&] +[s2; Sets the chameleon style of scrollbar.&] +[s3; &] +[s4;%- &] +[s5;:DocEdit`:`:EofLine`(bool`):%- [_^DocEdit^ DocEdit][@(0.0.255) `&]_[* EofLine]([@(0.0.255) b +ool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2; If active, paints faint line at the end of text. Default is +active.&] +[s3; &] +[s4;%- &] +[s5;:DocEdit`:`:NoEofLine`(`):%- [_^DocEdit^ DocEdit][@(0.0.255) `&]_[* NoEofLine]()&] +[s2; Same as EofFile(false).&] +[s3;%- &] +[s4;%- &] +[s5;:DocEdit`:`:IsEofLine`(`)const:%- [@(0.0.255) bool]_[* IsEofLine]()_[@(0.0.255) const]&] +[s2; Returns true if EofLine is active.&] +[s3;%- &] [s0; ]] \ No newline at end of file diff --git a/uppsrc/CtrlLib/src.tpp/DropList$en-us.tpp b/uppsrc/CtrlLib/src.tpp/DropList_en-us.tpp similarity index 97% rename from uppsrc/CtrlLib/src.tpp/DropList$en-us.tpp rename to uppsrc/CtrlLib/src.tpp/DropList_en-us.tpp index d5411efd4..2a5a47d91 100644 --- a/uppsrc/CtrlLib/src.tpp/DropList$en-us.tpp +++ b/uppsrc/CtrlLib/src.tpp/DropList_en-us.tpp @@ -1,380 +1,380 @@ -topic "DropList"; -[2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,0#27521748481378242620020725143825:desc] -[0 $$3,0#96390100711032703541132217272105:end] -[H6;0 $$4,0#05600065144404261032431302351956:begin] -[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] -[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] -[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] -[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] -[b42;2 $$9,9#13035079074754324216151401829390:normal] -[{_} -[ {{10000@3 [s0;%% [*@(229)4 DropList]]}}&] -[s3; &] -[s1;:DropList`:`:class: [@(0.0.255)3 class][3 _][*3 DropList][3 _:_][@(0.0.255)3 public][3 _][*@3;3 M -ultiButton][3 , ][@(0.0.255)3 public][3 _][*@3;3 Convert]&] -[s0;%% &] -[s2;%% -@@image:337&143 -(AzYAFwAAAOn/AAAAAHic7dfPCcIwGIfh7OcOjuDVGdzAKbx51YqVKlGxqBg8qRWxGMQNNPBBKAniVy3+ghjeQ5IW+tBD/+hc6X9V1Gh1AswR3gMb3xfK7a3dPXAyZ0KEdGlO5kyUcKKunJhCIYSzpPGJcLzRnF4KfcyzeVlhsr5weuMeViUcrXKqVm/aub8DFMbLs8lgKFr6O0DhMD1RluTMKaBwsDjaLIwqHgIKo3lWzPKcfaCwP9s7GZ6/CXwe9qY7TsB3SiQVJ6AwliknlDD8b5uywxcGGPzX42d6AOPWczE=) -&] -[s0;%% &] -[s9;%% This widget provides the selection of values from the drop`-down - list. List is organized in key`-value pairs; when item is selected, -the key of items becomes the new DropList value (as used by SetData/GetData -interface). The value of DropList does not necessarily have to -be in the list as key, you can e.g. assign a value to DropList -with empty list and fill the list later.&] -[s9;%% Both key and value are of generic Value type. You can associate -specific Display and Convert with the list and that way use DropList -to represent any type of value (colors, line width, fonts etc..).&] -[s9;%% DropList also implements the single`-direction Convert interface, -where Format is defined as key`->value translation. When DisplayAll() -mode is on, Format returns key values for keys missing in the -key / value table; when DisplayAll() mode is off, such values -are considered invalid and Format returns Value().&] -[s9;%% Note: DropBox is implementation helper class used to share -some code between DropList and similar classes. DropBox is derived -from Ctrl.&] -[s3;%% &] -[s0;%% &] -[ {{10000F(128)G(128)@1 [s0;%% [* DropList Public Members]]}}&] -[s3; &] -[s5;:DropList`:`:Style`:`:typedef: [@(0.0.255) typedef]_[_^MultiButton`:`:Style^ MultiBut -ton`::Style]_[* Style]&] -[s2;%% The chameleon style of DropList is in fact the Style of MultiButton -base class.&] -[s3; &] -[s4; &] -[s5;:DropList`:`:WhenDrop: [_^Callback^ Callback]_[* WhenDrop]&] -[s2;%% This callback is called [* before] the list is displayed. Client -code can (re)create the list in the callback.&] -[s3; &] -[s4; &] -[s5;:Upp`:`:DropList`:`:Add`(const Upp`:`:Value`&`,const Upp`:`:Value`&`,bool`): [_^Upp`:`:DropList^ D -ropList][@(0.0.255) `&]_[* Add]([@(0.0.255) const]_[_^Upp`:`:Value^ Value][@(0.0.255) `&]_[*@3 k -ey], [@(0.0.255) const]_[_^Upp`:`:Value^ Value][@(0.0.255) `&]_[*@3 value], -[@(0.0.255) bool]_[*@3 enable] `= [@(0.0.255) true])&] -[s2;%% Adds a new item to the list, [%-*@3 key] determines the value -of item, [%-*@3 value] is displayed in the value area and in the -list. If [%-*@3 enable] is false, DropList can be assigned this -[%-*@3 key]and displays corresponding [%-*@3 value], but does not -include it in drop list popup.&] -[s3; &] -[s4; &] -[s5;:DropList`:`:Add`(const Value`&`): [_^DropList^ DropList][@(0.0.255) `&]_[* Add]([@(0.0.255) c -onst]_[_^Value^ Value][@(0.0.255) `&]_[*@3 value])&] -[s2;%% Same as Add(value, value).&] -[s3; &] -[s4; &] -[s5;:DropList`:`:Remove`(int`): [@(0.0.255) void]_[* Remove]([@(0.0.255) int]_[*@3 i])&] -[s2;%% Removes drop list item [%-*@3 i].&] -[s3;%% &] -[s4; &] -[s5;:DropList`:`:ClearList`(`): [@(0.0.255) void]_[* ClearList]()&] -[s2;%% Clears the list.&] -[s3; &] -[s4; &] -[s5;:DropList`:`:Clear`(`): [@(0.0.255) void]_[* Clear]()&] -[s2;%% Clears the list and sets DropList to Null.&] -[s3; &] -[s4; &] -[s5;:DropList`:`:AddSeparator`(`): [_^DropList^ DropList][@(0.0.255) `&]_[* AddSeparator]() -&] -[s2;%% Adds horizontal ruler separator item. This item cannot be -selected.&] -[s3; &] -[s4; &] -[s5;:DropList`:`:Drop`(`): [@(0.0.255) void]_[* Drop]()&] -[s2;%% Forces the list to `"drop`".&] -[s3;%% &] -[s4; &] -[s5;:DropList`:`:SetIndex`(int`): [@(0.0.255) void]_[* SetIndex]([@(0.0.255) int]_[*@3 i])&] -[s2;%% Sets the value of list item [%-*@3 i] to be the current value.&] -[s3; &] -[s4; &] -[s5;:DropList`:`:GetIndex`(`)const: [@(0.0.255) int]_[* GetIndex]()_[@(0.0.255) const]&] -[s2;%% Returns the index of current value of DropList in the list. -Note that the current value is not required to be in the list, -in that case `-1 is returned.&] -[s3; &] -[s4; &] -[s5;:DropList`:`:GoBegin`(`): [@(0.0.255) void]_[* GoBegin]()&] -[s2;%% If there are any items, selects the first one.&] -[s3; &] -[s4; &] -[s5;:DropList`:`:GoEnd`(`): [@(0.0.255) void]_[* GoEnd]()&] -[s2;%% If there are any items, selects the last one.&] -[s3; &] -[s4; &] -[s5;:DropList`:`:HasKey`(const Value`&`)const: [@(0.0.255) bool]_[* HasKey]([@(0.0.255) con -st]_[_^Value^ Value][@(0.0.255) `&]_[*@3 k])_[@(0.0.255) const]&] -[s2;%% Tests whether key [%-*@3 k] is in the list. The search is fast -([^topic`:`/`/Core`/src`/Indext`$en`-us`#`:`:Index`:`:Index`(`)^ Index] -based).&] -[s3; &] -[s4; &] -[s5;:DropList`:`:FindKey`(const Value`&`)const: [@(0.0.255) int]_[* FindKey]([@(0.0.255) co -nst]_[_^Value^ Value][@(0.0.255) `&]_[*@3 k])_[@(0.0.255) const]&] -[s2;%% Returns the index of key [%-*@3 k] in the list; returns `-1 -if not found. The search is fast ([^topic`:`/`/Core`/src`/Indext`$en`-us`#`:`:Index`:`:Index`(`)^ I -ndex] based).&] -[s3; &] -[s4; &] -[s5;:DropList`:`:Find`(const Value`&`)const: [@(0.0.255) int]_[* Find]([@(0.0.255) const]_[_^Value^ V -alue][@(0.0.255) `&]_[*@3 k])_[@(0.0.255) const]&] -[s2;%% Same as FindKey(k).&] -[s3; &] -[s4; &] -[s5;:DropList`:`:FindValue`(const Value`&`)const: [@(0.0.255) int]_[* FindValue]([@(0.0.255) c -onst]_[_^Value^ Value][@(0.0.255) `&]_[*@3 v])_[@(0.0.255) const]&] -[s2;%% Finds the index of item with value [%-*@3 v]. If there is none, -returns `-1.&] -[s3;%% &] -[s4; &] -[s5;:DropList`:`:GetCount`(`)const: [@(0.0.255) int]_[* GetCount]()_[@(0.0.255) const]&] -[s2;%% Returns the count of items in the list.&] -[s3; &] -[s4; &] -[s5;:DropList`:`:Trim`(int`): [@(0.0.255) void]_[* Trim]([@(0.0.255) int]_[*@3 n])&] -[s2;%% Trims the count of items in the list to [%-*@3 n].&] -[s3; &] -[s4; &] -[s5;:DropList`:`:GetKey`(int`)const: [@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_[* Ge -tKey]([@(0.0.255) int]_[*@3 i])_[@(0.0.255) const]&] -[s2;%% Returns the key at index [%-*@3 i].&] -[s3; &] -[s4; &] -[s5;:DropList`:`:GetValue`(int`)const: [_^Value^ Value]_[* GetValue]([@(0.0.255) int]_[*@3 i]) -_[@(0.0.255) const]&] -[s2;%% Returns the value at index [%-*@3 i].&] -[s3; &] -[s4; &] -[s5;:DropList`:`:GetValue`(`)const: [_^Value^ Value]_[* GetValue]()_[@(0.0.255) const]&] -[s2;%% Returns the first value from the list that has the key equal -to the current value of DropList. (Note that the GetData/SetData -interface of DropList uses the key).&] -[s3; &] -[s4; &] -[s5;:DropList`:`:SetValue`(int`,const Value`&`): [@(0.0.255) void]_[* SetValue]([@(0.0.255) i -nt]_[*@3 i], [@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_[*@3 v])&] -[s2;%% Replaces the value at index [%-*@3 i].&] -[s3; &] -[s4; &] -[s5;:DropList`:`:SetValue`(const Value`&`): [@(0.0.255) void]_[* SetValue]([@(0.0.255) cons -t]_[_^Value^ Value][@(0.0.255) `&]_[*@3 v])&] -[s2;%% Sets the first value in the list that has the key equal to -the current value of DropList.&] -[s3; &] -[s4; &] -[s5;:DropList`:`:operator`[`]`(int`)const: [_^Value^ Value]_[* operator`[`]]([@(0.0.255) in -t]_[*@3 i])_[@(0.0.255) const]&] -[s2;%% Same as GetValue(i).&] -[s3; &] -[s4; &] -[s5;:DropList`:`:Adjust`(`): [@(0.0.255) void]_[* Adjust]()&] -[s2;%% Checks whether the current DropList value is present as key -in the list. If it is not and list is not empty, first list item -is selected.&] -[s3; &] -[s4; &] -[s5;:DropList`:`:Adjust`(const Value`&`): [@(0.0.255) void]_[* Adjust]([@(0.0.255) const]_[_^Value^ V -alue][@(0.0.255) `&]_[*@3 k])&] -[s2;%% Checks whether the current DropList value is present as key -in the list. If it is not and list is not empty, DropList is -assigned [%-*@3 k].&] -[s3; &] -[s4; &] -[s5;:DropList`:`:GetList`(`)const: [@(0.0.255) const]_[_^PopUpTable^ PopUpTable][@(0.0.255) `& -]_[* GetList]()_[@(0.0.255) const]&] -[s2;%% Returns the ArrayCtrl derived object representing the dropdown -list. &] -[s3; &] -[s4; &] -[s5;:DropList`:`:ListObject`(`): [_^PopUpTable^ PopUpTable][@(0.0.255) `&]_[* ListObject]() -&] -[s2;%% Returns a reference to internal PopUpTable that is used to -show items.&] -[s3; &] -[s4; &] -[s5;:DropList`:`:SetDropLines`(int`): [_^DropList^ DropList][@(0.0.255) `&]_[* SetDropLines -]([@(0.0.255) int]_[*@3 d])&] -[s2;%% Sets the number of lines in dropped list.&] -[s3; &] -[s4; &] -[s5;:DropList`:`:SetValueConvert`(const Convert`&`): [_^DropList^ DropList][@(0.0.255) `& -]_[* SetValueConvert]([@(0.0.255) const]_[_^Convert^ Convert][@(0.0.255) `&]_[*@3 cv])&] -[s2;%% Sets the converting object for the value in view area.&] -[s3; &] -[s4; &] -[s5;:DropList`:`:SetConvert`(const Convert`&`): [_^DropList^ DropList][@(0.0.255) `&]_[* Se -tConvert]([@(0.0.255) const]_[_^Convert^ Convert][@(0.0.255) `&]_[*@3 cv])&] -[s2;%% Sets the converting object for list values `- list values -are converted first before being displayed in either view area -of DropList or in list. Returns `*this.&] -[s3; &] -[s4; &] -[s5;:DropList`:`:SetDisplay`(int`,const Display`&`): [_^DropList^ DropList][@(0.0.255) `& -]_[* SetDisplay]([@(0.0.255) int]_[*@3 i], [@(0.0.255) const]_[_^Display^ Display][@(0.0.255) `& -]_[*@3 d])&] -[s2;%% Sets the display for item [%-*@3 i] in the list. Returns `*this.&] -[s3; &] -[s4; &] -[s5;:DropList`:`:SetDisplay`(const Display`&`): [_^DropList^ DropList][@(0.0.255) `&]_[* Se -tDisplay]([@(0.0.255) const]_[_^Display^ Display][@(0.0.255) `&]_[*@3 d])&] -[s2; [%% Sets the common display ][*@3 d][%% for items in the list and -view area. Returns `*this. If specific displays for list items -(]SetDisplay[@(64) (][@(0.0.255) int][@(64) _][@3 i][@(64) , ][@(0.0.255) const][@(64) _][^`:`:Display^@(64) D -isplay][@(64) `&_][@3 d][@(64) )]) or view area (ValueDisplay[@(64) (][@(0.0.255) const][@(64) _ -][^`:`:Display^@(64) Display][@(64) `&_][@3 d][@(64) )]) are defined, -they take the precedence.&] -[s3; &] -[s4; &] -[s5;:DropList`:`:SetLineCy`(int`): [_^DropList^ DropList][@(0.0.255) `&]_[* SetLineCy]([@(0.0.255) i -nt]_[*@3 lcy])&] -[s2;%% Sets the line height of the list item in pixels. Returns `*this.&] -[s3; &] -[s4; &] -[s5;:DropList`:`:SetDisplay`(const Display`&`,int`): [_^DropList^ DropList][@(0.0.255) `& -]_[* SetDisplay]([@(0.0.255) const]_[_^Display^ Display][@(0.0.255) `&]_[*@3 d], -[@(0.0.255) int]_[*@3 lcy])&] -[s2;%% Same as SetDisplay(d), SetLineCy(lcy). Returns `*this.&] -[s3; &] -[s4; &] -[s5;:DropList`:`:ValueDisplay`(const Display`&`): [_^DropList^ DropList][@(0.0.255) `&]_[* V -alueDisplay]([@(0.0.255) const]_[_^Display^ Display][@(0.0.255) `&]_[*@3 d])&] -[s2;%% Sets the display object to be used in view area of DropList. -Returns `*this.&] -[s3; &] -[s4; &] -[s5;:DropList`:`:DisplayAll`(bool`): [_^DropList^ DropList][@(0.0.255) `&]_[* DisplayAll]([@(0.0.255) b -ool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2;%% In this mode, if the current value of DropList is not present -as the key in the list, the value itself is used to be displayed -in the view area. Default is off. Returns `*this. When DisplayAll() -mode is on, Convert`::Format returns key value when a given key -is missing in the key / value table; when DisplayAll() mode is -off, Convert`::Format returns Value() for unknown key values.&] -[s0;%% &] -[s4; &] -[s5;:DropList`:`:DropFocus`(bool`): [_^DropList^ DropList][@(0.0.255) `&]_[* DropFocus]([@(0.0.255) b -ool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2;%% In this mode, dropping down the list and closing it (either -by selecting the item or canceling the selection) brings the -keyboard focus to the widget. Default is on. Returns `*this.&] -[s3; &] -[s4; &] -[s5;:DropList`:`:NoDropFocus`(`): [_^DropList^ DropList][@(0.0.255) `&]_[* NoDropFocus]()&] -[s2;%% Same as DropFocus(false).&] -[s3; &] -[s4; &] -[s5;:DropList`:`:AlwaysDrop`(bool`): [_^DropList^ DropList][@(0.0.255) `&]_[* AlwaysDrop]([@(0.0.255) b -ool]_[*@3 e]_`=_[@(0.0.255) true])&] -[s2;%% If this mode is active, drop button is enabled even when the -list is empty, allowing the client code to deffer the list creation -until the WhenDrop callback.&] -[s3; &] -[s4; &] -[s5;:DropList`:`:SetStyle`(const DropList`:`:Style`&`): [_^DropList^ DropList][@(0.0.255) `& -]_[* SetStyle]([@(0.0.255) const]_[_^DropList`:`:Style^ Style][@(0.0.255) `&]_[*@3 s])&] -[s2;%% Sets the chameleon style of DropList.&] -[s3;%% &] -[s4; &] -[s5;:DropList`:`:NotNull`(bool`): [_^DropList^ DropList][@(0.0.255) `&]_[* NotNull]([@(0.0.255) b -ool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2;%% Specifies that Null value is illegal for DropList. If active, -Null value is not [^Ctrl`:`:Accept^ accepted].&] -[s3;%% &] -[s4; &] -[s5;:DropList`:`:DropWidth`(int`): [_^DropList^ DropList][@(0.0.255) `&]_[* DropWidth]([@(0.0.255) i -nt]_[*@3 w])&] -[s2;%% Override the with of dropped PopUpTable drop`-down list (which -by default is the same as the width of DropList).&] -[s3;%% &] -[s4; &] -[s5;:DropList`:`:DropWidthZ`(int`): [_^DropList^ DropList][@(0.0.255) `&]_[* DropWidthZ]([@(0.0.255) i -nt]_[*@3 w])&] -[s2;%% Same as DropWidth(HorzLayoutZoom([%-*@3 w])) `- this adjusts -the width according to current standard GUI font zooming.&] -[s3;%% &] -[s4; &] -[s5;:DropList`:`:Wheel`(bool`): [_^DropList^ DropList][@(0.0.255) `&]_[* Wheel]([@(0.0.255) b -ool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2;%% If active, the value of DropList can be changed by the mouse -wheel. Default is active.&] -[s3;%% &] -[s4; &] -[s5;:DropList`:`:NoWheel`(`): [_^DropList^ DropList][@(0.0.255) `&]_[* NoWheel]()&] -[s2;%% Same as Wheel(false).&] -[s3; &] -[s4; &] -[s5;:DropList`:`:SetScrollBarStyle`(const ScrollBar`:`:Style`&`): [_^DropList^ DropList -][@(0.0.255) `&]_[* SetScrollBarStyle]([@(0.0.255) const]_[_^ScrollBar`:`:Style^ ScrollBa -r`::Style][@(0.0.255) `&]_[*@3 s])&] -[s2;%% Sets the chameleon style of Scrollbar of PopUpTable drop`-down -list.&] -[s3;%% &] -[s4; &] -[s5;:DropList`:`:operator`=`(const Value`&`): [@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `& -]_[* operator`=]([@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_[*@3 v])&] -[s5;:DropList`:`:operator Value`(`)const: [@(0.0.255) operator]_Value()_[@(0.0.255) const -]&] -[s2;%% These methods are deprecated in favor of operator`~ and operator<<`=.&] -[s3; &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0;%% [* DropList Related Global Functions]]}}&] -[s9;%% These are simple utility function for filling DropList`'s -list and MapConvert.&] -[s3;%% &] -[s3;%% &] -[s5;:Append`(DropList`&`,const VectorMap``&`): [@(0.0.255) void]_[* Append -]([_^DropList^ DropList][@(0.0.255) `&]_[*@3 list], [@(0.0.255) const]_[_^VectorMap^ Vector -Map]<[_^Value^ Value], [_^Value^ Value]>`&_[*@3 values])&] -[s5;:Append`(DropList`&`,const VectorMap``&`): [@(0.0.255) void]_[* Append]( -[_^DropList^ DropList][@(0.0.255) `&]_[*@3 list], [@(0.0.255) const]_[_^VectorMap^ VectorMa -p]<[@(0.0.255) int], [_^String^ String]>`&_[*@3 values])&] -[s2;%% Fills the DropList from VectorMap.&] -[s3;%% &] -[s4; &] -[s5;:Append`(MapConvert`&`,const VectorMap``&`): [@(0.0.255) void]_[* Appe -nd]([_^MapConvert^ MapConvert][@(0.0.255) `&]_[*@3 convert], [@(0.0.255) const]_[_^VectorMap^ V -ectorMap]<[_^Value^ Value], [_^Value^ Value]>`&_[*@3 values])&] -[s5;:Append`(MapConvert`&`,const VectorMap``&`): [@(0.0.255) void]_[* Appen -d]([_^MapConvert^ MapConvert][@(0.0.255) `&]_[*@3 convert], [@(0.0.255) const]_[_^VectorMap^ V -ectorMap]<[@(0.0.255) int], [_^String^ String]>`&_[*@3 values])&] -[s2;%% Fills the MapConvert from VectorMap.&] -[s3;%% &] -[s4; &] -[s5;:Append`(DropList`&`,const MapConvert`&`): [@(0.0.255) void]_[* Append]([_^DropList^ Dr -opList][@(0.0.255) `&]_[*@3 list], [@(0.0.255) const]_[_^MapConvert^ MapConvert][@(0.0.255) `& -]_[*@3 convert])&] -[s2;%% Fills the DropList from MapConvert.&] -[s3;%% &] -[s4; &] -[s5;:operator`*`=`(DropList`&`,const VectorMap``&`): [@(0.0.255) void]_[* o -perator`*`=]([_^DropList^ DropList][@(0.0.255) `&]_[*@3 list], [@(0.0.255) const]_[_^VectorMap^ V -ectorMap]<[_^Value^ Value], [_^Value^ Value]>`&_[*@3 values])&] -[s5;:operator`*`=`(DropList`&`,const VectorMap``&`): [@(0.0.255) void]_[* o -perator`*`=]([_^DropList^ DropList][@(0.0.255) `&]_[*@3 list], [@(0.0.255) const]_[_^VectorMap^ V -ectorMap]<[@(0.0.255) int], [_^String^ String]>`&_[*@3 values])&] -[s2;%% Clears and fills the DropList from VectorMap.&] -[s3;%% &] -[s4; &] -[s5;:operator`*`=`(MapConvert`&`,const VectorMap``&`): [@(0.0.255) void]_ -[* operator`*`=]([_^MapConvert^ MapConvert][@(0.0.255) `&]_[*@3 convert], -[@(0.0.255) const]_[_^VectorMap^ VectorMap]<[_^Value^ Value], [_^Value^ Value]>`&_[*@3 valu -es])&] -[s5;:operator`*`=`(MapConvert`&`,const VectorMap``&`): [@(0.0.255) void]_ -[* operator`*`=]([_^MapConvert^ MapConvert][@(0.0.255) `&]_[*@3 convert], -[@(0.0.255) const]_[_^VectorMap^ VectorMap]<[@(0.0.255) int], [_^String^ String]>`&_[*@3 va -lues])&] -[s2;%% Clears and fills the MapConvert from VectorMap.&] -[s3;%% &] -[s4; &] -[s5;:operator`*`=`(DropList`&`,const MapConvert`&`): [@(0.0.255) void]_[* operator`*`=]([_^DropList^ D -ropList][@(0.0.255) `&]_[*@3 list], [@(0.0.255) const]_[_^MapConvert^ MapConvert][@(0.0.255) `& -]_[*@3 convert])&] -[s2;%% Clears and fills the DropList from MapConvert.&] -[s3;%% &] +topic "DropList"; +[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,0#27521748481378242620020725143825:desc] +[0 $$3,0#96390100711032703541132217272105:end] +[H6;0 $$4,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] +[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] +[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] +[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] +[b42;2 $$9,9#13035079074754324216151401829390:normal] +[{_} +[ {{10000@3 [s0;%% [*@(229)4 DropList]]}}&] +[s3; &] +[s1;:DropList`:`:class: [@(0.0.255)3 class][3 _][*3 DropList][3 _:_][@(0.0.255)3 public][3 _][*@3;3 M +ultiButton][3 , ][@(0.0.255)3 public][3 _][*@3;3 Convert]&] +[s0;%% &] +[s2;%% +@@image:337&143 +(AzYAFwAAAOn/AAAAAHic7dfPCcIwGIfh7OcOjuDVGdzAKbx51YqVKlGxqBg8qRWxGMQNNPBBKAniVy3+ghjeQ5IW+tBD/+hc6X9V1Gh1AswR3gMb3xfK7a3dPXAyZ0KEdGlO5kyUcKKunJhCIYSzpPGJcLzRnF4KfcyzeVlhsr5weuMeViUcrXKqVm/aub8DFMbLs8lgKFr6O0DhMD1RluTMKaBwsDjaLIwqHgIKo3lWzPKcfaCwP9s7GZ6/CXwe9qY7TsB3SiQVJ6AwliknlDD8b5uywxcGGPzX42d6AOPWczE=) +&] +[s0;%% &] +[s9;%% This widget provides the selection of values from the drop`-down + list. List is organized in key`-value pairs; when item is selected, +the key of items becomes the new DropList value (as used by SetData/GetData +interface). The value of DropList does not necessarily have to +be in the list as key, you can e.g. assign a value to DropList +with empty list and fill the list later.&] +[s9;%% Both key and value are of generic Value type. You can associate +specific Display and Convert with the list and that way use DropList +to represent any type of value (colors, line width, fonts etc..).&] +[s9;%% DropList also implements the single`-direction Convert interface, +where Format is defined as key`->value translation. When DisplayAll() +mode is on, Format returns key values for keys missing in the +key / value table; when DisplayAll() mode is off, such values +are considered invalid and Format returns Value().&] +[s9;%% Note: DropBox is implementation helper class used to share +some code between DropList and similar classes. DropBox is derived +from Ctrl.&] +[s3;%% &] +[s0;%% &] +[ {{10000F(128)G(128)@1 [s0;%% [* DropList Public Members]]}}&] +[s3; &] +[s5;:DropList`:`:Style`:`:typedef: [@(0.0.255) typedef]_[_^MultiButton`:`:Style^ MultiBut +ton`::Style]_[* Style]&] +[s2;%% The chameleon style of DropList is in fact the Style of MultiButton +base class.&] +[s3; &] +[s4; &] +[s5;:DropList`:`:WhenDrop: [_^Callback^ Callback]_[* WhenDrop]&] +[s2;%% This callback is called [* before] the list is displayed. Client +code can (re)create the list in the callback.&] +[s3; &] +[s4; &] +[s5;:Upp`:`:DropList`:`:Add`(const Upp`:`:Value`&`,const Upp`:`:Value`&`,bool`): [_^Upp`:`:DropList^ D +ropList][@(0.0.255) `&]_[* Add]([@(0.0.255) const]_[_^Upp`:`:Value^ Value][@(0.0.255) `&]_[*@3 k +ey], [@(0.0.255) const]_[_^Upp`:`:Value^ Value][@(0.0.255) `&]_[*@3 value], +[@(0.0.255) bool]_[*@3 enable] `= [@(0.0.255) true])&] +[s2;%% Adds a new item to the list, [%-*@3 key] determines the value +of item, [%-*@3 value] is displayed in the value area and in the +list. If [%-*@3 enable] is false, DropList can be assigned this +[%-*@3 key]and displays corresponding [%-*@3 value], but does not +include it in drop list popup.&] +[s3; &] +[s4; &] +[s5;:DropList`:`:Add`(const Value`&`): [_^DropList^ DropList][@(0.0.255) `&]_[* Add]([@(0.0.255) c +onst]_[_^Value^ Value][@(0.0.255) `&]_[*@3 value])&] +[s2;%% Same as Add(value, value).&] +[s3; &] +[s4; &] +[s5;:DropList`:`:Remove`(int`): [@(0.0.255) void]_[* Remove]([@(0.0.255) int]_[*@3 i])&] +[s2;%% Removes drop list item [%-*@3 i].&] +[s3;%% &] +[s4; &] +[s5;:DropList`:`:ClearList`(`): [@(0.0.255) void]_[* ClearList]()&] +[s2;%% Clears the list.&] +[s3; &] +[s4; &] +[s5;:DropList`:`:Clear`(`): [@(0.0.255) void]_[* Clear]()&] +[s2;%% Clears the list and sets DropList to Null.&] +[s3; &] +[s4; &] +[s5;:DropList`:`:AddSeparator`(`): [_^DropList^ DropList][@(0.0.255) `&]_[* AddSeparator]() +&] +[s2;%% Adds horizontal ruler separator item. This item cannot be +selected.&] +[s3; &] +[s4; &] +[s5;:DropList`:`:Drop`(`): [@(0.0.255) void]_[* Drop]()&] +[s2;%% Forces the list to `"drop`".&] +[s3;%% &] +[s4; &] +[s5;:DropList`:`:SetIndex`(int`): [@(0.0.255) void]_[* SetIndex]([@(0.0.255) int]_[*@3 i])&] +[s2;%% Sets the value of list item [%-*@3 i] to be the current value.&] +[s3; &] +[s4; &] +[s5;:DropList`:`:GetIndex`(`)const: [@(0.0.255) int]_[* GetIndex]()_[@(0.0.255) const]&] +[s2;%% Returns the index of current value of DropList in the list. +Note that the current value is not required to be in the list, +in that case `-1 is returned.&] +[s3; &] +[s4; &] +[s5;:DropList`:`:GoBegin`(`): [@(0.0.255) void]_[* GoBegin]()&] +[s2;%% If there are any items, selects the first one.&] +[s3; &] +[s4; &] +[s5;:DropList`:`:GoEnd`(`): [@(0.0.255) void]_[* GoEnd]()&] +[s2;%% If there are any items, selects the last one.&] +[s3; &] +[s4; &] +[s5;:DropList`:`:HasKey`(const Value`&`)const: [@(0.0.255) bool]_[* HasKey]([@(0.0.255) con +st]_[_^Value^ Value][@(0.0.255) `&]_[*@3 k])_[@(0.0.255) const]&] +[s2;%% Tests whether key [%-*@3 k] is in the list. The search is fast +([^topic`:`/`/Core`/src`/Indext`$en`-us`#`:`:Index`:`:Index`(`)^ Index] +based).&] +[s3; &] +[s4; &] +[s5;:DropList`:`:FindKey`(const Value`&`)const: [@(0.0.255) int]_[* FindKey]([@(0.0.255) co +nst]_[_^Value^ Value][@(0.0.255) `&]_[*@3 k])_[@(0.0.255) const]&] +[s2;%% Returns the index of key [%-*@3 k] in the list; returns `-1 +if not found. The search is fast ([^topic`:`/`/Core`/src`/Indext`$en`-us`#`:`:Index`:`:Index`(`)^ I +ndex] based).&] +[s3; &] +[s4; &] +[s5;:DropList`:`:Find`(const Value`&`)const: [@(0.0.255) int]_[* Find]([@(0.0.255) const]_[_^Value^ V +alue][@(0.0.255) `&]_[*@3 k])_[@(0.0.255) const]&] +[s2;%% Same as FindKey(k).&] +[s3; &] +[s4; &] +[s5;:DropList`:`:FindValue`(const Value`&`)const: [@(0.0.255) int]_[* FindValue]([@(0.0.255) c +onst]_[_^Value^ Value][@(0.0.255) `&]_[*@3 v])_[@(0.0.255) const]&] +[s2;%% Finds the index of item with value [%-*@3 v]. If there is none, +returns `-1.&] +[s3;%% &] +[s4; &] +[s5;:DropList`:`:GetCount`(`)const: [@(0.0.255) int]_[* GetCount]()_[@(0.0.255) const]&] +[s2;%% Returns the count of items in the list.&] +[s3; &] +[s4; &] +[s5;:DropList`:`:Trim`(int`): [@(0.0.255) void]_[* Trim]([@(0.0.255) int]_[*@3 n])&] +[s2;%% Trims the count of items in the list to [%-*@3 n].&] +[s3; &] +[s4; &] +[s5;:DropList`:`:GetKey`(int`)const: [@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_[* Ge +tKey]([@(0.0.255) int]_[*@3 i])_[@(0.0.255) const]&] +[s2;%% Returns the key at index [%-*@3 i].&] +[s3; &] +[s4; &] +[s5;:DropList`:`:GetValue`(int`)const: [_^Value^ Value]_[* GetValue]([@(0.0.255) int]_[*@3 i]) +_[@(0.0.255) const]&] +[s2;%% Returns the value at index [%-*@3 i].&] +[s3; &] +[s4; &] +[s5;:DropList`:`:GetValue`(`)const: [_^Value^ Value]_[* GetValue]()_[@(0.0.255) const]&] +[s2;%% Returns the first value from the list that has the key equal +to the current value of DropList. (Note that the GetData/SetData +interface of DropList uses the key).&] +[s3; &] +[s4; &] +[s5;:DropList`:`:SetValue`(int`,const Value`&`): [@(0.0.255) void]_[* SetValue]([@(0.0.255) i +nt]_[*@3 i], [@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_[*@3 v])&] +[s2;%% Replaces the value at index [%-*@3 i].&] +[s3; &] +[s4; &] +[s5;:DropList`:`:SetValue`(const Value`&`): [@(0.0.255) void]_[* SetValue]([@(0.0.255) cons +t]_[_^Value^ Value][@(0.0.255) `&]_[*@3 v])&] +[s2;%% Sets the first value in the list that has the key equal to +the current value of DropList.&] +[s3; &] +[s4; &] +[s5;:DropList`:`:operator`[`]`(int`)const: [_^Value^ Value]_[* operator`[`]]([@(0.0.255) in +t]_[*@3 i])_[@(0.0.255) const]&] +[s2;%% Same as GetValue(i).&] +[s3; &] +[s4; &] +[s5;:DropList`:`:Adjust`(`): [@(0.0.255) void]_[* Adjust]()&] +[s2;%% Checks whether the current DropList value is present as key +in the list. If it is not and list is not empty, first list item +is selected.&] +[s3; &] +[s4; &] +[s5;:DropList`:`:Adjust`(const Value`&`): [@(0.0.255) void]_[* Adjust]([@(0.0.255) const]_[_^Value^ V +alue][@(0.0.255) `&]_[*@3 k])&] +[s2;%% Checks whether the current DropList value is present as key +in the list. If it is not and list is not empty, DropList is +assigned [%-*@3 k].&] +[s3; &] +[s4; &] +[s5;:DropList`:`:GetList`(`)const: [@(0.0.255) const]_[_^PopUpTable^ PopUpTable][@(0.0.255) `& +]_[* GetList]()_[@(0.0.255) const]&] +[s2;%% Returns the ArrayCtrl derived object representing the dropdown +list. &] +[s3; &] +[s4; &] +[s5;:DropList`:`:ListObject`(`): [_^PopUpTable^ PopUpTable][@(0.0.255) `&]_[* ListObject]() +&] +[s2;%% Returns a reference to internal PopUpTable that is used to +show items.&] +[s3; &] +[s4; &] +[s5;:DropList`:`:SetDropLines`(int`): [_^DropList^ DropList][@(0.0.255) `&]_[* SetDropLines +]([@(0.0.255) int]_[*@3 d])&] +[s2;%% Sets the number of lines in dropped list.&] +[s3; &] +[s4; &] +[s5;:DropList`:`:SetValueConvert`(const Convert`&`): [_^DropList^ DropList][@(0.0.255) `& +]_[* SetValueConvert]([@(0.0.255) const]_[_^Convert^ Convert][@(0.0.255) `&]_[*@3 cv])&] +[s2;%% Sets the converting object for the value in view area.&] +[s3; &] +[s4; &] +[s5;:DropList`:`:SetConvert`(const Convert`&`): [_^DropList^ DropList][@(0.0.255) `&]_[* Se +tConvert]([@(0.0.255) const]_[_^Convert^ Convert][@(0.0.255) `&]_[*@3 cv])&] +[s2;%% Sets the converting object for list values `- list values +are converted first before being displayed in either view area +of DropList or in list. Returns `*this.&] +[s3; &] +[s4; &] +[s5;:DropList`:`:SetDisplay`(int`,const Display`&`): [_^DropList^ DropList][@(0.0.255) `& +]_[* SetDisplay]([@(0.0.255) int]_[*@3 i], [@(0.0.255) const]_[_^Display^ Display][@(0.0.255) `& +]_[*@3 d])&] +[s2;%% Sets the display for item [%-*@3 i] in the list. Returns `*this.&] +[s3; &] +[s4; &] +[s5;:DropList`:`:SetDisplay`(const Display`&`): [_^DropList^ DropList][@(0.0.255) `&]_[* Se +tDisplay]([@(0.0.255) const]_[_^Display^ Display][@(0.0.255) `&]_[*@3 d])&] +[s2; [%% Sets the common display ][*@3 d][%% for items in the list and +view area. Returns `*this. If specific displays for list items +(]SetDisplay[@(64) (][@(0.0.255) int][@(64) _][@3 i][@(64) , ][@(0.0.255) const][@(64) _][^`:`:Display^@(64) D +isplay][@(64) `&_][@3 d][@(64) )]) or view area (ValueDisplay[@(64) (][@(0.0.255) const][@(64) _ +][^`:`:Display^@(64) Display][@(64) `&_][@3 d][@(64) )]) are defined, +they take the precedence.&] +[s3; &] +[s4; &] +[s5;:DropList`:`:SetLineCy`(int`): [_^DropList^ DropList][@(0.0.255) `&]_[* SetLineCy]([@(0.0.255) i +nt]_[*@3 lcy])&] +[s2;%% Sets the line height of the list item in pixels. Returns `*this.&] +[s3; &] +[s4; &] +[s5;:DropList`:`:SetDisplay`(const Display`&`,int`): [_^DropList^ DropList][@(0.0.255) `& +]_[* SetDisplay]([@(0.0.255) const]_[_^Display^ Display][@(0.0.255) `&]_[*@3 d], +[@(0.0.255) int]_[*@3 lcy])&] +[s2;%% Same as SetDisplay(d), SetLineCy(lcy). Returns `*this.&] +[s3; &] +[s4; &] +[s5;:DropList`:`:ValueDisplay`(const Display`&`): [_^DropList^ DropList][@(0.0.255) `&]_[* V +alueDisplay]([@(0.0.255) const]_[_^Display^ Display][@(0.0.255) `&]_[*@3 d])&] +[s2;%% Sets the display object to be used in view area of DropList. +Returns `*this.&] +[s3; &] +[s4; &] +[s5;:DropList`:`:DisplayAll`(bool`): [_^DropList^ DropList][@(0.0.255) `&]_[* DisplayAll]([@(0.0.255) b +ool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2;%% In this mode, if the current value of DropList is not present +as the key in the list, the value itself is used to be displayed +in the view area. Default is off. Returns `*this. When DisplayAll() +mode is on, Convert`::Format returns key value when a given key +is missing in the key / value table; when DisplayAll() mode is +off, Convert`::Format returns Value() for unknown key values.&] +[s0;%% &] +[s4; &] +[s5;:DropList`:`:DropFocus`(bool`): [_^DropList^ DropList][@(0.0.255) `&]_[* DropFocus]([@(0.0.255) b +ool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2;%% In this mode, dropping down the list and closing it (either +by selecting the item or canceling the selection) brings the +keyboard focus to the widget. Default is on. Returns `*this.&] +[s3; &] +[s4; &] +[s5;:DropList`:`:NoDropFocus`(`): [_^DropList^ DropList][@(0.0.255) `&]_[* NoDropFocus]()&] +[s2;%% Same as DropFocus(false).&] +[s3; &] +[s4; &] +[s5;:DropList`:`:AlwaysDrop`(bool`): [_^DropList^ DropList][@(0.0.255) `&]_[* AlwaysDrop]([@(0.0.255) b +ool]_[*@3 e]_`=_[@(0.0.255) true])&] +[s2;%% If this mode is active, drop button is enabled even when the +list is empty, allowing the client code to deffer the list creation +until the WhenDrop callback.&] +[s3; &] +[s4; &] +[s5;:DropList`:`:SetStyle`(const DropList`:`:Style`&`): [_^DropList^ DropList][@(0.0.255) `& +]_[* SetStyle]([@(0.0.255) const]_[_^DropList`:`:Style^ Style][@(0.0.255) `&]_[*@3 s])&] +[s2;%% Sets the chameleon style of DropList.&] +[s3;%% &] +[s4; &] +[s5;:DropList`:`:NotNull`(bool`): [_^DropList^ DropList][@(0.0.255) `&]_[* NotNull]([@(0.0.255) b +ool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2;%% Specifies that Null value is illegal for DropList. If active, +Null value is not [^Ctrl`:`:Accept^ accepted].&] +[s3;%% &] +[s4; &] +[s5;:DropList`:`:DropWidth`(int`): [_^DropList^ DropList][@(0.0.255) `&]_[* DropWidth]([@(0.0.255) i +nt]_[*@3 w])&] +[s2;%% Override the with of dropped PopUpTable drop`-down list (which +by default is the same as the width of DropList).&] +[s3;%% &] +[s4; &] +[s5;:DropList`:`:DropWidthZ`(int`): [_^DropList^ DropList][@(0.0.255) `&]_[* DropWidthZ]([@(0.0.255) i +nt]_[*@3 w])&] +[s2;%% Same as DropWidth(HorzLayoutZoom([%-*@3 w])) `- this adjusts +the width according to current standard GUI font zooming.&] +[s3;%% &] +[s4; &] +[s5;:DropList`:`:Wheel`(bool`): [_^DropList^ DropList][@(0.0.255) `&]_[* Wheel]([@(0.0.255) b +ool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2;%% If active, the value of DropList can be changed by the mouse +wheel. Default is active.&] +[s3;%% &] +[s4; &] +[s5;:DropList`:`:NoWheel`(`): [_^DropList^ DropList][@(0.0.255) `&]_[* NoWheel]()&] +[s2;%% Same as Wheel(false).&] +[s3; &] +[s4; &] +[s5;:DropList`:`:SetScrollBarStyle`(const ScrollBar`:`:Style`&`): [_^DropList^ DropList +][@(0.0.255) `&]_[* SetScrollBarStyle]([@(0.0.255) const]_[_^ScrollBar`:`:Style^ ScrollBa +r`::Style][@(0.0.255) `&]_[*@3 s])&] +[s2;%% Sets the chameleon style of Scrollbar of PopUpTable drop`-down +list.&] +[s3;%% &] +[s4; &] +[s5;:DropList`:`:operator`=`(const Value`&`): [@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `& +]_[* operator`=]([@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_[*@3 v])&] +[s5;:DropList`:`:operator Value`(`)const: [@(0.0.255) operator]_Value()_[@(0.0.255) const +]&] +[s2;%% These methods are deprecated in favor of operator`~ and operator<<`=.&] +[s3; &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0;%% [* DropList Related Global Functions]]}}&] +[s9;%% These are simple utility function for filling DropList`'s +list and MapConvert.&] +[s3;%% &] +[s3;%% &] +[s5;:Append`(DropList`&`,const VectorMap``&`): [@(0.0.255) void]_[* Append +]([_^DropList^ DropList][@(0.0.255) `&]_[*@3 list], [@(0.0.255) const]_[_^VectorMap^ Vector +Map]<[_^Value^ Value], [_^Value^ Value]>`&_[*@3 values])&] +[s5;:Append`(DropList`&`,const VectorMap``&`): [@(0.0.255) void]_[* Append]( +[_^DropList^ DropList][@(0.0.255) `&]_[*@3 list], [@(0.0.255) const]_[_^VectorMap^ VectorMa +p]<[@(0.0.255) int], [_^String^ String]>`&_[*@3 values])&] +[s2;%% Fills the DropList from VectorMap.&] +[s3;%% &] +[s4; &] +[s5;:Append`(MapConvert`&`,const VectorMap``&`): [@(0.0.255) void]_[* Appe +nd]([_^MapConvert^ MapConvert][@(0.0.255) `&]_[*@3 convert], [@(0.0.255) const]_[_^VectorMap^ V +ectorMap]<[_^Value^ Value], [_^Value^ Value]>`&_[*@3 values])&] +[s5;:Append`(MapConvert`&`,const VectorMap``&`): [@(0.0.255) void]_[* Appen +d]([_^MapConvert^ MapConvert][@(0.0.255) `&]_[*@3 convert], [@(0.0.255) const]_[_^VectorMap^ V +ectorMap]<[@(0.0.255) int], [_^String^ String]>`&_[*@3 values])&] +[s2;%% Fills the MapConvert from VectorMap.&] +[s3;%% &] +[s4; &] +[s5;:Append`(DropList`&`,const MapConvert`&`): [@(0.0.255) void]_[* Append]([_^DropList^ Dr +opList][@(0.0.255) `&]_[*@3 list], [@(0.0.255) const]_[_^MapConvert^ MapConvert][@(0.0.255) `& +]_[*@3 convert])&] +[s2;%% Fills the DropList from MapConvert.&] +[s3;%% &] +[s4; &] +[s5;:operator`*`=`(DropList`&`,const VectorMap``&`): [@(0.0.255) void]_[* o +perator`*`=]([_^DropList^ DropList][@(0.0.255) `&]_[*@3 list], [@(0.0.255) const]_[_^VectorMap^ V +ectorMap]<[_^Value^ Value], [_^Value^ Value]>`&_[*@3 values])&] +[s5;:operator`*`=`(DropList`&`,const VectorMap``&`): [@(0.0.255) void]_[* o +perator`*`=]([_^DropList^ DropList][@(0.0.255) `&]_[*@3 list], [@(0.0.255) const]_[_^VectorMap^ V +ectorMap]<[@(0.0.255) int], [_^String^ String]>`&_[*@3 values])&] +[s2;%% Clears and fills the DropList from VectorMap.&] +[s3;%% &] +[s4; &] +[s5;:operator`*`=`(MapConvert`&`,const VectorMap``&`): [@(0.0.255) void]_ +[* operator`*`=]([_^MapConvert^ MapConvert][@(0.0.255) `&]_[*@3 convert], +[@(0.0.255) const]_[_^VectorMap^ VectorMap]<[_^Value^ Value], [_^Value^ Value]>`&_[*@3 valu +es])&] +[s5;:operator`*`=`(MapConvert`&`,const VectorMap``&`): [@(0.0.255) void]_ +[* operator`*`=]([_^MapConvert^ MapConvert][@(0.0.255) `&]_[*@3 convert], +[@(0.0.255) const]_[_^VectorMap^ VectorMap]<[@(0.0.255) int], [_^String^ String]>`&_[*@3 va +lues])&] +[s2;%% Clears and fills the MapConvert from VectorMap.&] +[s3;%% &] +[s4; &] +[s5;:operator`*`=`(DropList`&`,const MapConvert`&`): [@(0.0.255) void]_[* operator`*`=]([_^DropList^ D +ropList][@(0.0.255) `&]_[*@3 list], [@(0.0.255) const]_[_^MapConvert^ MapConvert][@(0.0.255) `& +]_[*@3 convert])&] +[s2;%% Clears and fills the DropList from MapConvert.&] +[s3;%% &] [s0;%% ]] \ No newline at end of file diff --git a/uppsrc/CtrlLib/src.tpp/EditDlgs$en-us.tpp b/uppsrc/CtrlLib/src.tpp/EditDlgs_en-us.tpp similarity index 100% rename from uppsrc/CtrlLib/src.tpp/EditDlgs$en-us.tpp rename to uppsrc/CtrlLib/src.tpp/EditDlgs_en-us.tpp diff --git a/uppsrc/CtrlLib/src.tpp/EditField$en-us.tpp b/uppsrc/CtrlLib/src.tpp/EditField_en-us.tpp similarity index 97% rename from uppsrc/CtrlLib/src.tpp/EditField$en-us.tpp rename to uppsrc/CtrlLib/src.tpp/EditField_en-us.tpp index 1b7ff84a0..e75b19c4c 100644 --- a/uppsrc/CtrlLib/src.tpp/EditField$en-us.tpp +++ b/uppsrc/CtrlLib/src.tpp/EditField_en-us.tpp @@ -1,421 +1,421 @@ -topic "EditField"; -[2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,0#27521748481378242620020725143825:desc] -[0 $$3,0#96390100711032703541132217272105:end] -[H6;0 $$4,0#05600065144404261032431302351956:begin] -[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] -[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] -[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] -[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] -[b42;2 $$9,9#13035079074754324216151401829390:normal] -[{_} -[ {{10000@3 [s0;%% [*@(229)4 EditField]]}}&] -[s3; &] -[s1;:EditField`:`:class: [@(0.0.255)3 class][3 _][*3 EditField][3 _:_][@(0.0.255)3 public][3 _][*@3;3 C -trl][3 , ][@(0.0.255)3 private][3 _][*@3;3 TextArrayOps]&] -[s0;%% &] -[s2;%% -@@image:406&143 -(A0EAFwAAAAAAAAAAAHic7ZfBCYAwEASvcyuxEDuxBSE96MtH7uJhgoZd2GEfIeSxwwUx5diLgpFl3egSFU4qpOAwsw+7vUQKDkwF18pumjuACrGtW0eXKa0reqeQ7HMpNG/X0+G/GVBI5kKhkJSkUMgngqngPqFWE88AKvQihTH0p4pAU4Eu89+2SpILMkWx/w==) -&] -[s0; &] -[s9;%% This widget is used whenever there is a type of value that -can be edited in its textual representation. Of course, the most -evident type of value is (W)String, but EditField can be used -to edit any other type like Date, int, double. Adaptation of -EditField is achieved by using [^`:`:Convert^ Convert] based object -to transform Value to text and back.&] -[s3; &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0;%% [* Public Member List]]}}&] -[s3; &] -[s5;:EditField`:`:GetViewHeight`(Font`): [@(0.0.255) static] [@(0.0.255) int]_[* GetViewHei -ght]([_^Font^ Font]_[*@3 font]_`=_StdFont())&] -[s2; Returns the correct height for EditField view with [*@3 font][%% -used for edited text].&] -[s3; &] -[s4; &] -[s5;:EditField`:`:GetStdHeight`(Font`): [@(0.0.255) static] [@(0.0.255) int]_[* GetStdHeigh -t]([_^Font^ Font]_[*@3 font]_`=_StdFont())&] -[s2;%% [%- Returns the correct height for EditField with ][%-*@3 font] -used for edited text, including the standard static frame.&] -[s3; &] -[s4; &] -[s5;:EditField`:`:HighlightText`(Vector``&`): [@(0.0.255) virt -ual] [@(0.0.255) void]_[* HighlightText]([_^Vector^ Vector]<[_^EditField`:`:Highlight^ Hi -ghlight]>`&_[*@3 hl])&] -[s2;%% Provides a chance to change the text color and background -for individual characters.&] -[s3; &] -[s4; &] -[s5;:EditField`:`:WhenBar: [_^Callback1^ Callback1]_[* WhenBar]&] -[s2;%% This callback represents the context menu of EditField. The -default is StdBar.&] -[s3; &] -[s4; &] -[s5;:EditField`:`:WhenEnter: [_^Callback^ Callback]_[* WhenEnter]&] -[s2;%% This callback is invoked if user presses Enter key while in -EditField. If not empty, EditField also consumes Enter key (so -that it is not passed up in Ctrl hierarchy). Default is empty.&] -[s3; &] -[s4; &] -[s5;:EditField`:`:WhenPasteFilter: [_^Callback1^ Callback1]_[* When -PasteFilter]&] -[s2;%% This callback is invoked when Paste operation is performed -and can be used to alter the text to be pasted. Default is no -change to the text.&] -[s3; &] -[s4; &] -[s5;:EditField`:`:WhenHighlight: [_^Callback1^ Callback1]<[_^Vector^ Vector]<[_^EditField`:`:Highlight^ H -ighlight]>`&>_[* WhenHighlight]&] -[s2;%% Called by default implementation of HighlightText. Provides -a chance to change the text color and background for individual -characters.&] -[s3; &] -[s4; &] -[s5;:EditField`:`:Insert`(int`,const WString`&`): [@(0.0.255) int]_[* Insert]([@(0.0.255) i -nt]_[*@3 pos], [@(0.0.255) const]_[_^WString^ WString][@(0.0.255) `&]_[*@3 text])&] -[s2;%% [%- Inserts ][%-*@3 text] at [%-*@3 pos].&] -[s3; &] -[s4; &] -[s5;:EditField`:`:Insert`(int`,const String`&`): [@(0.0.255) int]_[* Insert]([@(0.0.255) in -t]_[*@3 pos], [@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 text])&] -[s5;:EditField`:`:Insert`(int`,const char`*`): [@(0.0.255) int]_[* Insert]([@(0.0.255) int]_ -[*@3 pos], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text])&] -[s2;%% [%- Inserts ][%-*@3 text] at [%-*@3 pos]. Text is converted to unicode -using the default charset.&] -[s3; &] -[s4; &] -[s5;:EditField`:`:Remove`(int`,int`): [@(0.0.255) void]_[* Remove]([@(0.0.255) int]_[*@3 pos], - [@(0.0.255) int]_[*@3 n])&] -[s2;%% [%- Removes ][%-*@3 n] characters at [%-*@3 pos].&] -[s3; &] -[s4; &] -[s5;:EditField`:`:Insert`(const WString`&`): [@(0.0.255) void]_[* Insert]([@(0.0.255) const -]_[_^WString^ WString][@(0.0.255) `&]_[*@3 text])&] -[s2;%% [%- Inserts] [%-*@3 text] at cursor position.&] -[s3; &] -[s4; &] -[s5;:EditField`:`:Insert`(const String`&`): [@(0.0.255) void]_[* Insert]([@(0.0.255) const]_ -[_^String^ String][@(0.0.255) `&]_[*@3 text])&] -[s5;:EditField`:`:Insert`(const char`*`): [@(0.0.255) void]_[* Insert]([@(0.0.255) const]_[@(0.0.255) c -har]_`*[*@3 text])&] -[s2;%% [%- Inserts] [%-*@3 text] at cursor position. Text is converted -to unicode using the default charset.&] -[s3; &] -[s4; &] -[s5;:EditField`:`:Insert`(int`): [@(0.0.255) void]_[* Insert]([@(0.0.255) int]_[*@3 chr])&] -[s2;%% [%- Inserts a single unicode ][%-*@3 chr] at cursor position.&] -[s3; &] -[s4; &] -[s5;:EditField`:`:Move`(int`,bool`): [@(0.0.255) void]_[* Move]([@(0.0.255) int]_[*@3 newpos], - [@(0.0.255) bool]_[*@3 select]_`=_[@(0.0.255) false])&] -[s2;%% [%- Moves the cursor to] [%-*@3 newpos]. If [%-*@3 select] is true, -selection is set between recent cursor position and [%-*@3 newpos].&] -[s3; &] -[s4; &] -[s5;:EditField`:`:SetSelection`(int`,int`): [@(0.0.255) void]_[* SetSelection]([@(0.0.255) i -nt]_[*@3 l]_`=_[@3 0], [@(0.0.255) int]_[*@3 h]_`=_INT`_MAX)&] -[s2;%% [%- Sets the selection if ][%-*@3 l] < [%-*@3 h][%- . If ][%-*@3 l] -or [%-*@3 h ]exceed the available range (that is zero to length -of text), they are bound to it. I[%- f ][%-*@3 l] >`= [%-*@3 h], selection -is canceled and [%-*@3 l] is the new cursor position.&] -[s3; &] -[s4; &] -[s5;:EditField`:`:GetSelection`(int`&`,int`&`)const: [@(0.0.255) bool]_[* GetSelection]([@(0.0.255) i -nt`&]_[*@3 l], [@(0.0.255) int`&]_[*@3 h])_[@(0.0.255) const]&] -[s2;%% [%- Returns the current selection. If there is no selection, -both] [%-*@3 l] [%-*@3 h] return the current cursor position.&] -[s3; &] -[s4; &] -[s5;:EditField`:`:IsSelection`(`)const: [@(0.0.255) bool]_[* IsSelection]()_[@(0.0.255) con -st]&] -[s2;%% [%- Returns true if there is a selection. ] &] -[s3; &] -[s4; &] -[s5;:EditField`:`:RemoveSelection`(`): [@(0.0.255) bool]_[* RemoveSelection]()&] -[s2; If there is no selection, returns false, otherwise it removes -selected text and returns true.&] -[s3; &] -[s4; &] -[s5;:EditField`:`:CancelSelection`(`): [@(0.0.255) void]_[* CancelSelection]()&] -[s2;%% Any selection is canceled (no characters are selected after -this operation).&] -[s3; &] -[s4; &] -[s5;:EditField`:`:Copy`(`): [@(0.0.255) void]_[* Copy]()&] -[s2; Copies selected text to clipboard.&] -[s3; &] -[s4; &] -[s5;:EditField`:`:Undo`(`): [@(0.0.255) void]_[* Undo]()&] -[s2;%% Performs undo operation.&] -[s3; &] -[s4; &] -[s5;:EditField`:`:Cut`(`): [@(0.0.255) void]_[* Cut]()&] -[s2;%% Cuts the selection.&] -[s3; &] -[s4; &] -[s5;:EditField`:`:Paste`(`): [@(0.0.255) void]_[* Paste]()&] -[s2;%% Pastes the content of clipboard, if compatible, into the EditField.&] -[s3; &] -[s4; &] -[s5;:EditField`:`:Erase`(`): [@(0.0.255) void]_[* Erase]()&] -[s2;%% Removes the content of EditField.&] -[s3; &] -[s4; &] -[s5;:EditField`:`:SelectAll`(`): [@(0.0.255) void]_[* SelectAll]()&] -[s2;%% Selects the whole text in EditField.&] -[s3; &] -[s4; &] -[s5;:EditField`:`:StdBar`(Bar`&`): [@(0.0.255) void]_[* StdBar]([_^Bar^ Bar][@(0.0.255) `&]_[*@3 m -enu])&] -[s2;%% Standard menu of EditField.&] -[s3;%% &] -[s4; &] -[s5;:EditField`:`:SetText`(const WString`&`): [@(0.0.255) void]_[* SetText]([@(0.0.255) con -st]_[_^WString^ WString][@(0.0.255) `&]_[*@3 text])&] -[s2;%% [%- Sets the] [%-*@3 text].&] -[s3; &] -[s4; &] -[s5;:EditField`:`:SetText`(const String`&`): [@(0.0.255) void]_[* SetText]([@(0.0.255) cons -t]_[_^String^ String][@(0.0.255) `&]_[*@3 t])&] -[s5;:EditField`:`:SetText`(const char`*`): [@(0.0.255) void]_[* SetText]([@(0.0.255) const]_ -[@(0.0.255) char]_`*[*@3 t])&] -[s2;%% [%- Sets the text. ]Text is converted to unicode using the default -charset.&] -[s3; &] -[s4; &] -[s5;:EditField`:`:GetText`(`)const: [@(0.0.255) const]_[_^WString^ WString][@(0.0.255) `&]_ -[* GetText]()_[@(0.0.255) const]&] -[s2; Returns the text.&] -[s3; &] -[s4; &] -[s5;:EditField`:`:GetLength`(`)const: [@(0.0.255) virtual] [@(0.0.255) int]_[* GetLength]() -_[@(0.0.255) const]&] -[s2; Returns the length of text.&] -[s3; &] -[s4; &] -[s5;:EditField`:`:Clear`(`): [@(0.0.255) void]_[* Clear]()&] -[s2; Sets the empty text.&] -[s3; &] -[s4; &] -[s5;:EditField`:`:Reset`(`): [@(0.0.255) void]_[* Reset]()&] -[s2; Resets EditField to default state.&] -[s3; &] -[s4; &] -[s5;:EditField`:`:Error`(bool`): [@(0.0.255) void]_[* Error]([@(0.0.255) bool]_[*@3 error])&] -[s2;%% If [%-*@3 error] is true, paints the content as if it was invalid -(the same way as when assigned Convert returns ErrorValue).&] -[s3;%% &] -[s4; &] -[s5;:EditField`:`:Password`(bool`): [_^EditField^ EditField][@(0.0.255) `&]_[* Password]([@(0.0.255) b -ool]_[*@3 pwd]_`=_[@(0.0.255) true])&] -[s2;%% Sets the password mode. In password mode all characters are -displayed as asterisk. Returns `*this.&] -[s3; &] -[s4; &] -[s5;:EditField`:`:IsPassword`(`)const: [@(0.0.255) bool]_[* IsPassword]()_[@(0.0.255) const -]&] -[s2;%% Returns true if password mode is active.&] -[s3; &] -[s4; &] -[s5;:EditField`:`:SetFilter`(int`(`*`)`(int`)`): [_^EditField^ EditField][@(0.0.255) `&]_ -[* SetFilter]([@(0.0.255) int]_(`*[*@3 f])([@(0.0.255) int]))&] -[s2;%% [%- Sets the character filter] [%-*@3 f]. All characters keystrokes -are first altered by this function and used only if the result -is not zero. Returns `*this.&] -[s3; &] -[s4; &] -[s5;:EditField`:`:SetConvert`(const Convert`&`): [_^EditField^ EditField][@(0.0.255) `&]_ -[* SetConvert]([@(0.0.255) const]_[_^Convert^ Convert][@(0.0.255) `&]_[*@3 c])&] -[s2;%% Sets the Value converter. By using the specific converters, -EditField can be adapted for editing any type of values with -text representation. Note that EditField stores just reference -to [%-@3 c], therefore its lifetime must exceed the lifetime of -EditField. Returns `*this.&] -[s3; &] -[s4; &] -[s5;:EditField`:`:SetInactiveConvert`(const Convert`&`): [_^EditField^ EditField][@(0.0.255) `& -]_[* SetInactiveConvert]([@(0.0.255) const]_[_^Convert^ Convert][@(0.0.255) `&]_[*@3 c])&] -[s2;%% Sets the inactive Value converter. Such converter is used -to format displayed value when edit control does not own the -focus. Returns `*this.&] -[s3; &] -[s4; &] -[s5;:EditField`:`:SetCharset`(byte`): [_^EditField^ EditField][@(0.0.255) `&]_[* SetCharset -]([_^byte^ byte]_[*@3 cs])&] -[s2;%% Sets the encoding to [%-*@3 cs] `- only characters representable -in given encoding are allowed in EditField. Note that this does -not impact encoding of String values returned from EditField, -only acts as another filter.&] -[s3; &] -[s4; &] -[s5;:EditField`:`:AutoFormat`(bool`): [_^EditField^ EditField][@(0.0.255) `&]_[* AutoFormat -]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2;%% [%- In AutoFormat mode, when focus goes out of editfield, text -representation of value is reformated by current Convert `- text -is converted to Value and back. This mode is active by default.] -Returns `*this.&] -[s3; &] -[s4; &] -[s5;:EditField`:`:NoAutoFormat`(`): [_^EditField^ EditField][@(0.0.255) `&]_[* NoAutoFormat -]()&] -[s2; Same as AutoFormat(false).&] -[s3; &] -[s4; &] -[s5;:EditField`:`:IsAutoFormat`(`)const: [@(0.0.255) bool]_[* IsAutoFormat]()_[@(0.0.255) c -onst]&] -[s2;%% Returns true is AutoFormat is active.&] -[s3; &] -[s4; &] -[s5;:EditField`:`:SetFont`(Font`): [_^EditField^ EditField][@(0.0.255) `&]_[* SetFont]([_^Font^ F -ont]_[*@3 `_font])&] -[s2;%% [%- Sets the ][%-*@3 font] of displayed text. Returns `*this.&] -[s3; &] -[s4; &] -[s5;:EditField`:`:SetColor`(Color`): [_^EditField^ EditField][@(0.0.255) `&]_[* SetColor]([_^Color^ C -olor]_[*@3 c])&] -[s2;%% [%- Sets the color] of displayed text. Returns `*this.&] -[s3;%% &] -[s4; &] -[s5;:EditField`:`:ClickSelect`(bool`): [_^EditField^ EditField][@(0.0.255) `&]_[* ClickSele -ct]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2; In ClickSelect mode, all the text of EditField is select when -clicked by mouse. Returns `*this.&] -[s3; &] -[s4; &] -[s5;:EditField`:`:IsClickSelect`(`)const: [@(0.0.255) bool]_[* IsClickSelect]()_[@(0.0.255) c -onst]&] -[s2;%% Returns true if ClickSelect is active.&] -[s3; &] -[s4; &] -[s5;:EditField`:`:InitCaps`(bool`): [_^EditField^ EditField][@(0.0.255) `&]_[* InitCaps]([@(0.0.255) b -ool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2; In InitCaps mode, initial letters of entered text are uppercased. -Returns `*this.&] -[s3; &] -[s4; &] -[s5;:EditField`:`:IsInitCaps`(`)const: [@(0.0.255) bool]_[* IsInitCaps]()_[@(0.0.255) const -]&] -[s2;%% Returns true if InitCaps is active.&] -[s3; &] -[s4; &] -[s5;:EditField`:`:NullText`(const Image`&`,const char`*`,Color`): [_^EditField^ EditFie -ld][@(0.0.255) `&]_[* NullText]([@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 icon], - [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text]_`=_t`_(`"([@(0.0.255) default])`"), -[_^Color^ Color]_[*@3 ink]_`=_SColorDisabled)&] -[s5;:EditField`:`:NullText`(const Image`&`,const char`*`,Font`,Color`): [_^EditField^ E -ditField][@(0.0.255) `&]_[* NullText]([@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 i -con], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text], [_^Font^ Font]_[*@3 fnt], -[_^Color^ Color]_[*@3 ink])&] -[s5;:EditField`:`:NullText`(const char`*`,Color`): [_^EditField^ EditField][@(0.0.255) `& -]_[* NullText]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text]_`=_t`_(`"([@(0.0.255) defa -ult])`"), [_^Color^ Color]_[*@3 ink]_`=_SColorDisabled)&] -[s5;:EditField`:`:NullText`(const char`*`,Font`,Color`): [_^EditField^ EditField][@(0.0.255) `& -]_[* NullText]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text], [_^Font^ Font]_[*@3 fnt], -[_^Color^ Color]_[*@3 ink])&] -[s2; In NullText mode, empty EditField displays[%% ][*@3 text][%% using -][*@3 ink][%% color and ][%%*@3 fnt][%% as a font, with ][*@3 icon][%% .] -Returns `*this.&] -[s3; &] -[s4; &] -[s5;:EditField`:`:MaxChars`(int`): [_^EditField^ EditField][@(0.0.255) `&]_[* MaxChars]([@(0.0.255) i -nt]_[*@3 mc])&] -[s2; Limits maximum number of characters to[%% ][*@3 mc][%% .] Returns -`*this.&] -[s3; &] -[s4; &] -[s5;:EditField`:`:GetMaxChars`(`)const: [@(0.0.255) int]_[* GetMaxChars]()_[@(0.0.255) cons -t]&] -[s2;%% Returns the maximum number of characters limit set by MaxChars.&] -[s3; &] -[s4; &] -[s5;:EditField`:`:AutoSize`(int`): [_^EditField^ EditField][@(0.0.255) `&]_[* AutoSize]([@(0.0.255) i -nt]_[*@3 maxcx]_`=_INT`_MAX)&] -[s2;%% [%- Resizes the width of EditField according to the length of -text up to] [%-*@3 maxcx] width.&] -[s3; &] -[s4; &] -[s5;:EditField`:`:NoBackground`(bool`): [_^EditField^ EditField][@(0.0.255) `&]_[* NoBackgr -ound]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2;%% Sets the widget into transparent mode `- background is not -painted and Transparent is activated `- a result, anything painted -behind the widget is visible, allowing client code to provide -any background it needs.&] -[s3; &] -[s4; &] -[s5;:EditField`:`:GetFilter`(`)const: [_^CharFilter^ CharFilter]_[* GetFilter]()_[@(0.0.255) c -onst]&] -[s2;%% Returns current character filter.&] -[s3; &] -[s4; &] -[s5;:EditField`:`:GetConvert`(`)const: [@(0.0.255) const]_[_^Convert^ Convert][@(0.0.255) `& -]_[* GetConvert]()_[@(0.0.255) const]&] -[s2; Returns current converter.&] -[s3; &] -[s4; &] -[s5;:EditField`:`:GetFont`(`)const: [_^Font^ Font]_[* GetFont]()_[@(0.0.255) const]&] -[s2; Returns current font.&] -[s3; &] -[s4; &] -[s5;:EditField`:`:AlignRight`(bool`): [_^EditField^ EditField][@(0.0.255) `&]_[* AlignRight -]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2;%% If [%-*@3 b].is true, the text will be displayed aligned to -the right. Left alignment is default.&] -[s3;%% &] -[s4; &] -[s5;:EditField`:`:IsNoBackground`(`)const: [@(0.0.255) bool]_[* IsNoBackground]()_[@(0.0.255) c -onst]&] -[s2;%% Returns true if NoBackground is active.&] -[s3; &] -[s4; &] -[s5;:EditField`:`:IsAlignRight`(`)const: [@(0.0.255) bool]_[* IsAlignRight]()_[@(0.0.255) c -onst]&] -[s2;%% Returns true if AlignRight is active.&] -[s3; &] -[s4; &] -[s5;:EditField`:`:ShowSpaces`(bool`): [@(0.0.255) bool]_[* ShowSpaces]([@(0.0.255) bool]_[*@3 b -]_`=_[@(0.0.255) true])&] -[s2;%% When active, EditField paints blue dots to show spaces.&] -[s3;%% &] -[s4; &] -[s5;:EditField`:`:NoInternalMargin`(bool`): [_^EditField^ EditField][@(0.0.255) `&]_[* NoIn -ternalMargin]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2;%% Normally, EditField has small internal margin between frame -and edited text. Calling this method with [%-@(0.0.255) true] removes -it.&] -[s3;%% &] -[s4; &] -[s5;:EditField`:`:GetChar`(int`)const: [@(0.0.255) virtual] [@(0.0.255) int]_[* GetChar]([@(0.0.255) i -nt]_[*@3 i])_[@(0.0.255) const]&] -[s2;%% Returns the character at [%-*@3 i] index.&] -[s3;%% &] -[s4; &] -[s5;:EditField`:`:GetCaretRect`(int`)const: [_^Rect^ Rect]_[* GetCaretRect]([@(0.0.255) int -]_[*@3 pos])_[@(0.0.255) const]&] -[s2;%% Returns the caret placement for character [%-*@3 pos] in EditField -view coordinates.&] -[s3;%% &] -[s4; &] -[s5;:EditField`:`:GetCaretRect`(`)const: [_^Rect^ Rect]_[* GetCaretRect]()_[@(0.0.255) cons -t]&] -[s2;%% Same as GetCaretRect(cursor).&] -[s3; &] -[s4; &] -[s5;:EditField`:`:StyleDefault`(`): [@(0.0.255) static] [@(0.0.255) const]_[_^EditField`:`:Style^ S -tyle][@(0.0.255) `&]_[* StyleDefault]()&] -[s2;%% Returns the default style used to draw edit fields.&] -[s3; &] -[s4; &] -[s5;:EditField`:`:SetStyle`(const EditField`:`:Style`&`): [_^EditField^ EditField][@(0.0.255) `& -]_[* SetStyle]([@(0.0.255) const]_[_^EditField`:`:Style^ Style][@(0.0.255) `&]_[*@3 s])&] -[s2;%% Sets the style to an EditField`::Style [%-*@3 s].&] -[s3;%% &] -[s0; &] -[ {{10000@3 [s0;%% [*@(229)4 EditField`::Style]]}}&] -[s3; &] -[s1;:EditField`:`:Style`:`:struct: [@(0.0.255)3 struct][3 _][*3 Style][3 _:_][@(0.0.255)3 public -][3 _][*@3;3 ChStyle][@(0.0.255)3 <][*3 Style][@(0.0.255)3 >][3 _]&] -[s9;%% This structure defines the visual style of an EditField.&] +topic "EditField"; +[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,0#27521748481378242620020725143825:desc] +[0 $$3,0#96390100711032703541132217272105:end] +[H6;0 $$4,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] +[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] +[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] +[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] +[b42;2 $$9,9#13035079074754324216151401829390:normal] +[{_} +[ {{10000@3 [s0;%% [*@(229)4 EditField]]}}&] +[s3; &] +[s1;:EditField`:`:class: [@(0.0.255)3 class][3 _][*3 EditField][3 _:_][@(0.0.255)3 public][3 _][*@3;3 C +trl][3 , ][@(0.0.255)3 private][3 _][*@3;3 TextArrayOps]&] +[s0;%% &] +[s2;%% +@@image:406&143 +(A0EAFwAAAAAAAAAAAHic7ZfBCYAwEASvcyuxEDuxBSE96MtH7uJhgoZd2GEfIeSxwwUx5diLgpFl3egSFU4qpOAwsw+7vUQKDkwF18pumjuACrGtW0eXKa0reqeQ7HMpNG/X0+G/GVBI5kKhkJSkUMgngqngPqFWE88AKvQihTH0p4pAU4Eu89+2SpILMkWx/w==) +&] +[s0; &] +[s9;%% This widget is used whenever there is a type of value that +can be edited in its textual representation. Of course, the most +evident type of value is (W)String, but EditField can be used +to edit any other type like Date, int, double. Adaptation of +EditField is achieved by using [^`:`:Convert^ Convert] based object +to transform Value to text and back.&] +[s3; &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0;%% [* Public Member List]]}}&] +[s3; &] +[s5;:EditField`:`:GetViewHeight`(Font`): [@(0.0.255) static] [@(0.0.255) int]_[* GetViewHei +ght]([_^Font^ Font]_[*@3 font]_`=_StdFont())&] +[s2; Returns the correct height for EditField view with [*@3 font][%% +used for edited text].&] +[s3; &] +[s4; &] +[s5;:EditField`:`:GetStdHeight`(Font`): [@(0.0.255) static] [@(0.0.255) int]_[* GetStdHeigh +t]([_^Font^ Font]_[*@3 font]_`=_StdFont())&] +[s2;%% [%- Returns the correct height for EditField with ][%-*@3 font] +used for edited text, including the standard static frame.&] +[s3; &] +[s4; &] +[s5;:EditField`:`:HighlightText`(Vector``&`): [@(0.0.255) virt +ual] [@(0.0.255) void]_[* HighlightText]([_^Vector^ Vector]<[_^EditField`:`:Highlight^ Hi +ghlight]>`&_[*@3 hl])&] +[s2;%% Provides a chance to change the text color and background +for individual characters.&] +[s3; &] +[s4; &] +[s5;:EditField`:`:WhenBar: [_^Callback1^ Callback1]_[* WhenBar]&] +[s2;%% This callback represents the context menu of EditField. The +default is StdBar.&] +[s3; &] +[s4; &] +[s5;:EditField`:`:WhenEnter: [_^Callback^ Callback]_[* WhenEnter]&] +[s2;%% This callback is invoked if user presses Enter key while in +EditField. If not empty, EditField also consumes Enter key (so +that it is not passed up in Ctrl hierarchy). Default is empty.&] +[s3; &] +[s4; &] +[s5;:EditField`:`:WhenPasteFilter: [_^Callback1^ Callback1]_[* When +PasteFilter]&] +[s2;%% This callback is invoked when Paste operation is performed +and can be used to alter the text to be pasted. Default is no +change to the text.&] +[s3; &] +[s4; &] +[s5;:EditField`:`:WhenHighlight: [_^Callback1^ Callback1]<[_^Vector^ Vector]<[_^EditField`:`:Highlight^ H +ighlight]>`&>_[* WhenHighlight]&] +[s2;%% Called by default implementation of HighlightText. Provides +a chance to change the text color and background for individual +characters.&] +[s3; &] +[s4; &] +[s5;:EditField`:`:Insert`(int`,const WString`&`): [@(0.0.255) int]_[* Insert]([@(0.0.255) i +nt]_[*@3 pos], [@(0.0.255) const]_[_^WString^ WString][@(0.0.255) `&]_[*@3 text])&] +[s2;%% [%- Inserts ][%-*@3 text] at [%-*@3 pos].&] +[s3; &] +[s4; &] +[s5;:EditField`:`:Insert`(int`,const String`&`): [@(0.0.255) int]_[* Insert]([@(0.0.255) in +t]_[*@3 pos], [@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 text])&] +[s5;:EditField`:`:Insert`(int`,const char`*`): [@(0.0.255) int]_[* Insert]([@(0.0.255) int]_ +[*@3 pos], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text])&] +[s2;%% [%- Inserts ][%-*@3 text] at [%-*@3 pos]. Text is converted to unicode +using the default charset.&] +[s3; &] +[s4; &] +[s5;:EditField`:`:Remove`(int`,int`): [@(0.0.255) void]_[* Remove]([@(0.0.255) int]_[*@3 pos], + [@(0.0.255) int]_[*@3 n])&] +[s2;%% [%- Removes ][%-*@3 n] characters at [%-*@3 pos].&] +[s3; &] +[s4; &] +[s5;:EditField`:`:Insert`(const WString`&`): [@(0.0.255) void]_[* Insert]([@(0.0.255) const +]_[_^WString^ WString][@(0.0.255) `&]_[*@3 text])&] +[s2;%% [%- Inserts] [%-*@3 text] at cursor position.&] +[s3; &] +[s4; &] +[s5;:EditField`:`:Insert`(const String`&`): [@(0.0.255) void]_[* Insert]([@(0.0.255) const]_ +[_^String^ String][@(0.0.255) `&]_[*@3 text])&] +[s5;:EditField`:`:Insert`(const char`*`): [@(0.0.255) void]_[* Insert]([@(0.0.255) const]_[@(0.0.255) c +har]_`*[*@3 text])&] +[s2;%% [%- Inserts] [%-*@3 text] at cursor position. Text is converted +to unicode using the default charset.&] +[s3; &] +[s4; &] +[s5;:EditField`:`:Insert`(int`): [@(0.0.255) void]_[* Insert]([@(0.0.255) int]_[*@3 chr])&] +[s2;%% [%- Inserts a single unicode ][%-*@3 chr] at cursor position.&] +[s3; &] +[s4; &] +[s5;:EditField`:`:Move`(int`,bool`): [@(0.0.255) void]_[* Move]([@(0.0.255) int]_[*@3 newpos], + [@(0.0.255) bool]_[*@3 select]_`=_[@(0.0.255) false])&] +[s2;%% [%- Moves the cursor to] [%-*@3 newpos]. If [%-*@3 select] is true, +selection is set between recent cursor position and [%-*@3 newpos].&] +[s3; &] +[s4; &] +[s5;:EditField`:`:SetSelection`(int`,int`): [@(0.0.255) void]_[* SetSelection]([@(0.0.255) i +nt]_[*@3 l]_`=_[@3 0], [@(0.0.255) int]_[*@3 h]_`=_INT`_MAX)&] +[s2;%% [%- Sets the selection if ][%-*@3 l] < [%-*@3 h][%- . If ][%-*@3 l] +or [%-*@3 h ]exceed the available range (that is zero to length +of text), they are bound to it. I[%- f ][%-*@3 l] >`= [%-*@3 h], selection +is canceled and [%-*@3 l] is the new cursor position.&] +[s3; &] +[s4; &] +[s5;:EditField`:`:GetSelection`(int`&`,int`&`)const: [@(0.0.255) bool]_[* GetSelection]([@(0.0.255) i +nt`&]_[*@3 l], [@(0.0.255) int`&]_[*@3 h])_[@(0.0.255) const]&] +[s2;%% [%- Returns the current selection. If there is no selection, +both] [%-*@3 l] [%-*@3 h] return the current cursor position.&] +[s3; &] +[s4; &] +[s5;:EditField`:`:IsSelection`(`)const: [@(0.0.255) bool]_[* IsSelection]()_[@(0.0.255) con +st]&] +[s2;%% [%- Returns true if there is a selection. ] &] +[s3; &] +[s4; &] +[s5;:EditField`:`:RemoveSelection`(`): [@(0.0.255) bool]_[* RemoveSelection]()&] +[s2; If there is no selection, returns false, otherwise it removes +selected text and returns true.&] +[s3; &] +[s4; &] +[s5;:EditField`:`:CancelSelection`(`): [@(0.0.255) void]_[* CancelSelection]()&] +[s2;%% Any selection is canceled (no characters are selected after +this operation).&] +[s3; &] +[s4; &] +[s5;:EditField`:`:Copy`(`): [@(0.0.255) void]_[* Copy]()&] +[s2; Copies selected text to clipboard.&] +[s3; &] +[s4; &] +[s5;:EditField`:`:Undo`(`): [@(0.0.255) void]_[* Undo]()&] +[s2;%% Performs undo operation.&] +[s3; &] +[s4; &] +[s5;:EditField`:`:Cut`(`): [@(0.0.255) void]_[* Cut]()&] +[s2;%% Cuts the selection.&] +[s3; &] +[s4; &] +[s5;:EditField`:`:Paste`(`): [@(0.0.255) void]_[* Paste]()&] +[s2;%% Pastes the content of clipboard, if compatible, into the EditField.&] +[s3; &] +[s4; &] +[s5;:EditField`:`:Erase`(`): [@(0.0.255) void]_[* Erase]()&] +[s2;%% Removes the content of EditField.&] +[s3; &] +[s4; &] +[s5;:EditField`:`:SelectAll`(`): [@(0.0.255) void]_[* SelectAll]()&] +[s2;%% Selects the whole text in EditField.&] +[s3; &] +[s4; &] +[s5;:EditField`:`:StdBar`(Bar`&`): [@(0.0.255) void]_[* StdBar]([_^Bar^ Bar][@(0.0.255) `&]_[*@3 m +enu])&] +[s2;%% Standard menu of EditField.&] +[s3;%% &] +[s4; &] +[s5;:EditField`:`:SetText`(const WString`&`): [@(0.0.255) void]_[* SetText]([@(0.0.255) con +st]_[_^WString^ WString][@(0.0.255) `&]_[*@3 text])&] +[s2;%% [%- Sets the] [%-*@3 text].&] +[s3; &] +[s4; &] +[s5;:EditField`:`:SetText`(const String`&`): [@(0.0.255) void]_[* SetText]([@(0.0.255) cons +t]_[_^String^ String][@(0.0.255) `&]_[*@3 t])&] +[s5;:EditField`:`:SetText`(const char`*`): [@(0.0.255) void]_[* SetText]([@(0.0.255) const]_ +[@(0.0.255) char]_`*[*@3 t])&] +[s2;%% [%- Sets the text. ]Text is converted to unicode using the default +charset.&] +[s3; &] +[s4; &] +[s5;:EditField`:`:GetText`(`)const: [@(0.0.255) const]_[_^WString^ WString][@(0.0.255) `&]_ +[* GetText]()_[@(0.0.255) const]&] +[s2; Returns the text.&] +[s3; &] +[s4; &] +[s5;:EditField`:`:GetLength`(`)const: [@(0.0.255) virtual] [@(0.0.255) int]_[* GetLength]() +_[@(0.0.255) const]&] +[s2; Returns the length of text.&] +[s3; &] +[s4; &] +[s5;:EditField`:`:Clear`(`): [@(0.0.255) void]_[* Clear]()&] +[s2; Sets the empty text.&] +[s3; &] +[s4; &] +[s5;:EditField`:`:Reset`(`): [@(0.0.255) void]_[* Reset]()&] +[s2; Resets EditField to default state.&] +[s3; &] +[s4; &] +[s5;:EditField`:`:Error`(bool`): [@(0.0.255) void]_[* Error]([@(0.0.255) bool]_[*@3 error])&] +[s2;%% If [%-*@3 error] is true, paints the content as if it was invalid +(the same way as when assigned Convert returns ErrorValue).&] +[s3;%% &] +[s4; &] +[s5;:EditField`:`:Password`(bool`): [_^EditField^ EditField][@(0.0.255) `&]_[* Password]([@(0.0.255) b +ool]_[*@3 pwd]_`=_[@(0.0.255) true])&] +[s2;%% Sets the password mode. In password mode all characters are +displayed as asterisk. Returns `*this.&] +[s3; &] +[s4; &] +[s5;:EditField`:`:IsPassword`(`)const: [@(0.0.255) bool]_[* IsPassword]()_[@(0.0.255) const +]&] +[s2;%% Returns true if password mode is active.&] +[s3; &] +[s4; &] +[s5;:EditField`:`:SetFilter`(int`(`*`)`(int`)`): [_^EditField^ EditField][@(0.0.255) `&]_ +[* SetFilter]([@(0.0.255) int]_(`*[*@3 f])([@(0.0.255) int]))&] +[s2;%% [%- Sets the character filter] [%-*@3 f]. All characters keystrokes +are first altered by this function and used only if the result +is not zero. Returns `*this.&] +[s3; &] +[s4; &] +[s5;:EditField`:`:SetConvert`(const Convert`&`): [_^EditField^ EditField][@(0.0.255) `&]_ +[* SetConvert]([@(0.0.255) const]_[_^Convert^ Convert][@(0.0.255) `&]_[*@3 c])&] +[s2;%% Sets the Value converter. By using the specific converters, +EditField can be adapted for editing any type of values with +text representation. Note that EditField stores just reference +to [%-@3 c], therefore its lifetime must exceed the lifetime of +EditField. Returns `*this.&] +[s3; &] +[s4; &] +[s5;:EditField`:`:SetInactiveConvert`(const Convert`&`): [_^EditField^ EditField][@(0.0.255) `& +]_[* SetInactiveConvert]([@(0.0.255) const]_[_^Convert^ Convert][@(0.0.255) `&]_[*@3 c])&] +[s2;%% Sets the inactive Value converter. Such converter is used +to format displayed value when edit control does not own the +focus. Returns `*this.&] +[s3; &] +[s4; &] +[s5;:EditField`:`:SetCharset`(byte`): [_^EditField^ EditField][@(0.0.255) `&]_[* SetCharset +]([_^byte^ byte]_[*@3 cs])&] +[s2;%% Sets the encoding to [%-*@3 cs] `- only characters representable +in given encoding are allowed in EditField. Note that this does +not impact encoding of String values returned from EditField, +only acts as another filter.&] +[s3; &] +[s4; &] +[s5;:EditField`:`:AutoFormat`(bool`): [_^EditField^ EditField][@(0.0.255) `&]_[* AutoFormat +]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2;%% [%- In AutoFormat mode, when focus goes out of editfield, text +representation of value is reformated by current Convert `- text +is converted to Value and back. This mode is active by default.] +Returns `*this.&] +[s3; &] +[s4; &] +[s5;:EditField`:`:NoAutoFormat`(`): [_^EditField^ EditField][@(0.0.255) `&]_[* NoAutoFormat +]()&] +[s2; Same as AutoFormat(false).&] +[s3; &] +[s4; &] +[s5;:EditField`:`:IsAutoFormat`(`)const: [@(0.0.255) bool]_[* IsAutoFormat]()_[@(0.0.255) c +onst]&] +[s2;%% Returns true is AutoFormat is active.&] +[s3; &] +[s4; &] +[s5;:EditField`:`:SetFont`(Font`): [_^EditField^ EditField][@(0.0.255) `&]_[* SetFont]([_^Font^ F +ont]_[*@3 `_font])&] +[s2;%% [%- Sets the ][%-*@3 font] of displayed text. Returns `*this.&] +[s3; &] +[s4; &] +[s5;:EditField`:`:SetColor`(Color`): [_^EditField^ EditField][@(0.0.255) `&]_[* SetColor]([_^Color^ C +olor]_[*@3 c])&] +[s2;%% [%- Sets the color] of displayed text. Returns `*this.&] +[s3;%% &] +[s4; &] +[s5;:EditField`:`:ClickSelect`(bool`): [_^EditField^ EditField][@(0.0.255) `&]_[* ClickSele +ct]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2; In ClickSelect mode, all the text of EditField is select when +clicked by mouse. Returns `*this.&] +[s3; &] +[s4; &] +[s5;:EditField`:`:IsClickSelect`(`)const: [@(0.0.255) bool]_[* IsClickSelect]()_[@(0.0.255) c +onst]&] +[s2;%% Returns true if ClickSelect is active.&] +[s3; &] +[s4; &] +[s5;:EditField`:`:InitCaps`(bool`): [_^EditField^ EditField][@(0.0.255) `&]_[* InitCaps]([@(0.0.255) b +ool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2; In InitCaps mode, initial letters of entered text are uppercased. +Returns `*this.&] +[s3; &] +[s4; &] +[s5;:EditField`:`:IsInitCaps`(`)const: [@(0.0.255) bool]_[* IsInitCaps]()_[@(0.0.255) const +]&] +[s2;%% Returns true if InitCaps is active.&] +[s3; &] +[s4; &] +[s5;:EditField`:`:NullText`(const Image`&`,const char`*`,Color`): [_^EditField^ EditFie +ld][@(0.0.255) `&]_[* NullText]([@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 icon], + [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text]_`=_t`_(`"([@(0.0.255) default])`"), +[_^Color^ Color]_[*@3 ink]_`=_SColorDisabled)&] +[s5;:EditField`:`:NullText`(const Image`&`,const char`*`,Font`,Color`): [_^EditField^ E +ditField][@(0.0.255) `&]_[* NullText]([@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 i +con], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text], [_^Font^ Font]_[*@3 fnt], +[_^Color^ Color]_[*@3 ink])&] +[s5;:EditField`:`:NullText`(const char`*`,Color`): [_^EditField^ EditField][@(0.0.255) `& +]_[* NullText]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text]_`=_t`_(`"([@(0.0.255) defa +ult])`"), [_^Color^ Color]_[*@3 ink]_`=_SColorDisabled)&] +[s5;:EditField`:`:NullText`(const char`*`,Font`,Color`): [_^EditField^ EditField][@(0.0.255) `& +]_[* NullText]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text], [_^Font^ Font]_[*@3 fnt], +[_^Color^ Color]_[*@3 ink])&] +[s2; In NullText mode, empty EditField displays[%% ][*@3 text][%% using +][*@3 ink][%% color and ][%%*@3 fnt][%% as a font, with ][*@3 icon][%% .] +Returns `*this.&] +[s3; &] +[s4; &] +[s5;:EditField`:`:MaxChars`(int`): [_^EditField^ EditField][@(0.0.255) `&]_[* MaxChars]([@(0.0.255) i +nt]_[*@3 mc])&] +[s2; Limits maximum number of characters to[%% ][*@3 mc][%% .] Returns +`*this.&] +[s3; &] +[s4; &] +[s5;:EditField`:`:GetMaxChars`(`)const: [@(0.0.255) int]_[* GetMaxChars]()_[@(0.0.255) cons +t]&] +[s2;%% Returns the maximum number of characters limit set by MaxChars.&] +[s3; &] +[s4; &] +[s5;:EditField`:`:AutoSize`(int`): [_^EditField^ EditField][@(0.0.255) `&]_[* AutoSize]([@(0.0.255) i +nt]_[*@3 maxcx]_`=_INT`_MAX)&] +[s2;%% [%- Resizes the width of EditField according to the length of +text up to] [%-*@3 maxcx] width.&] +[s3; &] +[s4; &] +[s5;:EditField`:`:NoBackground`(bool`): [_^EditField^ EditField][@(0.0.255) `&]_[* NoBackgr +ound]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2;%% Sets the widget into transparent mode `- background is not +painted and Transparent is activated `- a result, anything painted +behind the widget is visible, allowing client code to provide +any background it needs.&] +[s3; &] +[s4; &] +[s5;:EditField`:`:GetFilter`(`)const: [_^CharFilter^ CharFilter]_[* GetFilter]()_[@(0.0.255) c +onst]&] +[s2;%% Returns current character filter.&] +[s3; &] +[s4; &] +[s5;:EditField`:`:GetConvert`(`)const: [@(0.0.255) const]_[_^Convert^ Convert][@(0.0.255) `& +]_[* GetConvert]()_[@(0.0.255) const]&] +[s2; Returns current converter.&] +[s3; &] +[s4; &] +[s5;:EditField`:`:GetFont`(`)const: [_^Font^ Font]_[* GetFont]()_[@(0.0.255) const]&] +[s2; Returns current font.&] +[s3; &] +[s4; &] +[s5;:EditField`:`:AlignRight`(bool`): [_^EditField^ EditField][@(0.0.255) `&]_[* AlignRight +]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2;%% If [%-*@3 b].is true, the text will be displayed aligned to +the right. Left alignment is default.&] +[s3;%% &] +[s4; &] +[s5;:EditField`:`:IsNoBackground`(`)const: [@(0.0.255) bool]_[* IsNoBackground]()_[@(0.0.255) c +onst]&] +[s2;%% Returns true if NoBackground is active.&] +[s3; &] +[s4; &] +[s5;:EditField`:`:IsAlignRight`(`)const: [@(0.0.255) bool]_[* IsAlignRight]()_[@(0.0.255) c +onst]&] +[s2;%% Returns true if AlignRight is active.&] +[s3; &] +[s4; &] +[s5;:EditField`:`:ShowSpaces`(bool`): [@(0.0.255) bool]_[* ShowSpaces]([@(0.0.255) bool]_[*@3 b +]_`=_[@(0.0.255) true])&] +[s2;%% When active, EditField paints blue dots to show spaces.&] +[s3;%% &] +[s4; &] +[s5;:EditField`:`:NoInternalMargin`(bool`): [_^EditField^ EditField][@(0.0.255) `&]_[* NoIn +ternalMargin]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2;%% Normally, EditField has small internal margin between frame +and edited text. Calling this method with [%-@(0.0.255) true] removes +it.&] +[s3;%% &] +[s4; &] +[s5;:EditField`:`:GetChar`(int`)const: [@(0.0.255) virtual] [@(0.0.255) int]_[* GetChar]([@(0.0.255) i +nt]_[*@3 i])_[@(0.0.255) const]&] +[s2;%% Returns the character at [%-*@3 i] index.&] +[s3;%% &] +[s4; &] +[s5;:EditField`:`:GetCaretRect`(int`)const: [_^Rect^ Rect]_[* GetCaretRect]([@(0.0.255) int +]_[*@3 pos])_[@(0.0.255) const]&] +[s2;%% Returns the caret placement for character [%-*@3 pos] in EditField +view coordinates.&] +[s3;%% &] +[s4; &] +[s5;:EditField`:`:GetCaretRect`(`)const: [_^Rect^ Rect]_[* GetCaretRect]()_[@(0.0.255) cons +t]&] +[s2;%% Same as GetCaretRect(cursor).&] +[s3; &] +[s4; &] +[s5;:EditField`:`:StyleDefault`(`): [@(0.0.255) static] [@(0.0.255) const]_[_^EditField`:`:Style^ S +tyle][@(0.0.255) `&]_[* StyleDefault]()&] +[s2;%% Returns the default style used to draw edit fields.&] +[s3; &] +[s4; &] +[s5;:EditField`:`:SetStyle`(const EditField`:`:Style`&`): [_^EditField^ EditField][@(0.0.255) `& +]_[* SetStyle]([@(0.0.255) const]_[_^EditField`:`:Style^ Style][@(0.0.255) `&]_[*@3 s])&] +[s2;%% Sets the style to an EditField`::Style [%-*@3 s].&] +[s3;%% &] +[s0; &] +[ {{10000@3 [s0;%% [*@(229)4 EditField`::Style]]}}&] +[s3; &] +[s1;:EditField`:`:Style`:`:struct: [@(0.0.255)3 struct][3 _][*3 Style][3 _:_][@(0.0.255)3 public +][3 _][*@3;3 ChStyle][@(0.0.255)3 <][*3 Style][@(0.0.255)3 >][3 _]&] +[s9;%% This structure defines the visual style of an EditField.&] [s0; ]] \ No newline at end of file diff --git a/uppsrc/CtrlLib/src.tpp/FileList$en-us.tpp b/uppsrc/CtrlLib/src.tpp/FileList_en-us.tpp similarity index 98% rename from uppsrc/CtrlLib/src.tpp/FileList$en-us.tpp rename to uppsrc/CtrlLib/src.tpp/FileList_en-us.tpp index 3bf70c938..35106d337 100644 --- a/uppsrc/CtrlLib/src.tpp/FileList$en-us.tpp +++ b/uppsrc/CtrlLib/src.tpp/FileList_en-us.tpp @@ -1,417 +1,417 @@ -topic "FileList"; -[2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,0#27521748481378242620020725143825:desc] -[0 $$3,0#96390100711032703541132217272105:end] -[H6;0 $$4,0#05600065144404261032431302351956:begin] -[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] -[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] -[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] -[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] -[b42;2 $$9,9#13035079074754324216151401829390:normal] -[{_} -[ {{10000@3 [s0;%% [*@(229)4 FileList]]}}&] -[s3; &] -[s1;:FileList`:`:class: [@(0.0.255)3 class][3 _][*3 FileList][3 _:_][@(0.0.255)3 public][3 _][*@3;3 C -olumnList][3 , ][@(0.0.255)3 private][3 _][*@3;3 Display]&] -[s2;%% &] -[s2;%% -@@image:2240&1320 -‚ƒÀˆ€€ƒøþ€€€€ø·œí¿³åƇ™Æõ…ˆœÑúÅèï°å¯àá„¢¦¥ô°Á§¦Þð†¤û‘ã†âƒì͹œš‘Àà¸É–Õö€Ž–×ŽË -–ؘãæà¼ÛÀÂÀõêÞëÛçÕ¿ÿÔúÓÒ¿êç×݆÷ú´ÚººúÅô¾ê¾ÇúçŸóßþç稨€¨¨¨¨¨¨¨¶¨û–ÿù·÷€ÑÐÐÐÐ²Ë -ƒâŸ€€À†ýðϧ¼óޅ°äòÜÁ¯Ó‚Ùú€Úÿº…é‚Èßä‚èŸßþ穽ïþë»Æìý½ßÚ÷É÷Ï‚îÌ‘ŸŽˆ˜í‰½êÁ”© -‡—¥ëîøœïÅàŸ½±öåù£ßþòù‹—Žâ·¾½ßºôÓËñÏž€ˆÉøÊƒóæææÒªÐýäÂÅÞ…þé‚Á¿ûé±åï¿øé™çöùúá‡ý -íÏÌÿÌÁÛ«¢Í‚—Ž Âƒ•³·ÏËí¾¦òé¹®š“£àÓ䞬›î¶¢µéÊÿ”­ýè¶Ñ”îê‹’Œþù熯Þÿ¾÷“Ïìòì÷Ù‡ƒí†¬ñ -³çä‘ÔÅ‚ÿ›–ƒ‡æå¨½æ˜æç¾ø§ ø€ó²ӿÞçõŸÛÓµ‰ÞÌôšÆëœñÉØæúãšÍéúŽ·ÀôϾþßý§¿¥åëßèø»é¹¸íŒ -Ùùûç”û©ãñõ¨¿ûöìõÕ×ßïÛÞþûðíêýï½õÖç𲯌­ÏŸì¿ÿóÍ·û–…¾ÿ¿–ýßñð£Ãå艫ˆÕ­À‚óêž÷···ÃãÍý -êüþÆòÏû’‘ÇÃÕì§ÿùúûæ–’ÎÚ»‘Œ÷²ÐáŸàÝí¹Š¦ÓŽÑøêÉçÏŽ¸ˆÞ™®µü×Ó²îåïá²Ç²¨ãÿü´Ë–Þ¼‡Â›‹ -»úçà‰ïß“ÝÕ™Ìóñ½Ñþ¿þõ¯÷õ»Þñ†ë£ï«üîä¨Äƾ«ÖØ‚‚ÿšÓ‰õ„±Ö´§”ÙÛù¼Úý§·Úà÷¡‹ÒúŽ—žÅúù»ÿ -žé»¨±…üÍÛÇ»ú­Ÿ•êٟϾøÍТèùŽ¥¶—õϤ¤®Äà±ôÚÙ³‘ãƒçÃóϸø´ÙŸë…´¥¢í§°õÏ´ø¥›ÒöÒöê‰þéôß“ -âüÓì‘·°¤èõ¹þ²¨ÿ–þïýÏú’í–³©÷…þù‚ú´ÿŒãùûÝößé°ì럓³Ûá¯óâ÷üßþÙ­øþ³Ì”‘ÅÜ‚üÓã³ìŸŸ“Ãüø -Ψ´¥¨ÿ޳åò§÷ÄÃËœï¿ÇþâÆ†Êݣdž©úß°Çëìù÷£Òâ¡——íæü¦þ´¹ÿÒí²±ßËë¡‹Òúýççþ¾æûÏãäÒ£Ž›¶Ò -픬’맃úùç÷ÿüë¾ôÐÖ¹Ô≭•üþÔ÷Ìþ¿£Šý§ÿ¿ê×Ûä¿ŸÅÆ–°™ý³©ù÷¯¥„­Éšñªîªùî–Œ¾ãîöÙž©êö¤ -ÛèýËÚåé½»¦ñå“þù«ï»ÌôÏ»‡´¹‹˜Á›“œ•°Æã‹¨Ù¥þ®ÚÂñ៯ýžÏ¼Ïýó§»—¸´ôþÏŸö¾ý…Ýòïÿڌ㫠ƾŸ -ú‘þÉÁó›‘¶¶ý³µ•‹ÂŸ¿úÑÏþüçÀµ Ò±…‹ “‹è—óï½½ö£ÌÚ±áÒßÞ¯ÍÂÿþÔ‹‚Ó¶…É…åò¯±ºÁàºàª -ÇÓ—¿ôמø›ì«÷å—ߑ¹«„ÌÉ÷†ñù¿Ûƒþé‚îéÿ”Ì“þ¹î³ÈÿÙšøý©È…Ѧ¨ÇÐÏéÍ󢎷ÏÛ—ï¸Áþ‹ÏÖÀþÏ—Ð -‹™¨–ÔËÇÖúó„ÿîÎ’Ïÿó½ŸüöŸæêéÓ§Ÿüæÿþ™ÍïïœÛÿÕŸþâÖÃïï¹·¯í«Ÿõûï¿ßÎŽ½µÔ“ÿÓ¦Ñÿ’üÊÓÈÆ -»ŸÜ¿éß‹ùš’ÿ”£Ì¾Ð©Ûêê÷½â·ôþÏÉÿÜ­ãÿç‚°Þʤ—žüŸ¶ùÛ¸‡¥îÔ¿ƒû⩈¶ÆçÌü³îÊìÌØÇÓϲ©­¶ô°ô -ëù£Éÿ¬úüÓæ“§ÏÞøã·áŒÈž²ü×ãž çþÌ®Á¶Ã…‰¿ÅöÏÌÿÉ£ò”ø÷ãþâ–Ä·æœÚ˃—ǵæÅøøÓ¾€ÑļõÿŒÌ޾ -ÀµñŸ´Å¦µþŽäð†ñ´†¸®½õøç럯½Ö¿ìòÈŒ²˜æ Ó¨¿·Ÿú˜™¿˜ù°¢á§È¥½ù¿èÓ‚ú¾ÎÏ´žã¥ÕîÁýó£û¨‘ -üÞÛæû§æ¢Ð‰‹´¯þù¾Ë”¶Ÿƒúƒü“޾Ÿ½Êàÿü”ߦïȢό°¾ÉÄŽù­ÑÉþÏÅþ¾™¤³‚õäûØÖùËÕðÿùäÜíÓœ¿‡ -ÄìÑøª«Ö¿§þ啊ø²—êñÏðÿ›Ð¿¿ž’¨¥‰ÛéâæáŸ«©Ö¤ÿçšÿ”·ì°ÞÄ÷°­»ÛóÏס‹¥ú»çÐÁüýˆîªþÙˆúüó -ì˜ÿÆïªûéàüàÆçäþäïöˆ„Ÿ¢‡äãÿ¤²¥›™ë©Ÿù½ÓúçüÏþþêþŽæô¹Ô’™½áŸ£Ú¡Î¦é×ÿÌ¡žÿüþûüùàÝý— -ÉŸÉâÏ£óŸçãLJïвû‡œš‘ðÓ¿äüŸÅÚ‰ŽÿÒø¶íŸÍèÎôûѲøíŒÃЫíμŠÿ‰ŸÒ°ßÓÉÞÎß¿×ûõçáù¿“ÓÀ -Ôèì¶óÿòíÒù‡“ÇŸ¬‘áü¹È²³ØÉüˆ…ü³°»ñÃú­óÿÞš´ùü¦÷ÿ¾´¾ÿœË‰Õ«ÞŸòþ‰ê„ùùÃÜÀŸßä‹¿¼Ÿ¸ûà€ -ËþÙšðÏ—ˆÈßÓãÜØ›ð—ÏÖ€ÿº€²¹€þÙšˆÌð—À¦—ìöûåÑŸÈì󬟻‚•Йîù²¹ð‡Û¤ðÃýŸÖ‹¸„øÙ§‹’ÿÔïÑ -ý½–øçþ”óçÏýïßÚ¼Íõ¦ò‡î⟓’Š®—·ÿ’¬ýõÜùæÇ“ø©çí†Ô¿Å¨•³ÅÙÖÓ“ÈýÃÑûç§Þ°üã‹ÝìŸÍ®ýÃÀžÿ¿¾ -†ìÄ뢹¡Ù•¿óûžÀÌ¯îŸÆ´ÝôÏŽÞÏôÆÍ´½ù„¹Ôóüæß²üŸýߡ߳ÈðàæÜàÛšï½µ¼ì«Ãä‹ò‡Ž°ÿ¼ˆ±Šß݈®ú -§üãÁÌÖ¤‡‚¹é¯îÁüë®×Ò¹òç³ÔóýÓì¹éןÉÁžï²Ì×’•™ÔºÝŒŸØìØã³—¼î”úüóÙÇþÏÁ’ãÖϦჃù¾¾§ -èÚ¨ò‡Ž¬œ—¿‹±æø¤ï³ç±ìì¿ËàÞϹà±áÉø³¨¢ð­øŽªÆêéºÞ‡ýú×îñͽëþ¹¬ÿ§·¾»œÆ„±ÿä†åò¸ÿ¦«Ì -ëõÏ •üãùˆõǬÿþ“ðî­Ó”¾ÊŠ£Õ¯•ñˆêÔË—„úü³¬Êýÿ‰ÿœËÊïÄ¿ëðÏñ‹É­‡’ëŽý³¬™óò—ñ•ÊÑüÓ”‚þ™ª -«Éÿ¹´¼¹§®öΜ¿›öø·âÜ¡«¿ÿŒÈÓ‘¤Æš½ÔÉÆæúçÞÏ˹îˆÍ¿é…Ÿ¿Œ«ð£”ôžÑÄþÛúçòйöªŠ§žÿ¶Ü–ÿ³ÿ÷£ -¡äލôÿÒëÒ¢¹ç¬ÿ¤¡ðíš¾ð‚Фݿþ”µ¢Ë샻쳴åíéô¥÷ΓˆÂ̹åþϵ¤§×Ñè”Ü¿ïÇ‚•ßÿæòÔÄÙý–àºçþ -µÏµÀ¿áŸµÞÐîùÍÃðò¬‘ô‡ò‡´È†’Ó¸€²¹†€þÙšˆÌ—ˆÀ¦—À¿ÛƒÛé‚È䂸Àçë °Ý€™ÞÜ€üŸ­áü÷ÿ›‘…¿ä‚ -œíéó¿ùó‡ýòÿ¶†æŸñ†¶˜¡Ž‹½–®Ñ¦›ûûþ®ê¯º“þ·Óî娧ÿ§Í™ìÿÖœþö£ÍÿÉñϾŶÐúÇ¿…”ò®æ¿—éªÇ—¦ -âÎæÊ­ž£Ú£ÓÆÎù©Ù—êÉÿÉõÚ™«›ðσÌÿŒ»º…¦ª­ÜŸŸø§ˆøÿïŽåÿŒ†ù§ÍƒÎÿÚÓ½ÙÇØïî¼­ô§ ’•ç·“ËÞЙ -»ž—üíµ×ž¿þ¼ô‹Ïå­Æ§Ð㪓‚òºþèýÃòüóò„¢î¡á¹‚†¦ëÒž”ìÐ쩾©ÿº’ØËµâºÝ¾Ùš‚ë‡ë𵚚ïîçó -à·™²é‡™·ïˆúÒÀŒ’¬ï¤çèȧºˆ®­®©Ä¿ƒ´ýþüòäÉîâãÈ¥²¸á³’ûºñæÎà¦Ð‚ÍÖéœÉÿµ¤äú§÷º¤¡âø»í‘·  -ЮúèÏëâ„¥ºÆðÏ媮†¢ú§¨“ïÉå챉Êñ݇ˆŽé½ÇËÝÓù³ÿ¦õŽÁ—·æ¬Ò¸»ùçòȎáͦåßíÒºÝâ‘Í®¿ãàÓæÿ -ñŠ«šëÙþÉ´Û´¥Üãοÿ“ýÏñÏ­™ïªõÏñï«áŸƒÑ¿ÃøÕþþ÷׉‹þ¶’þ¹¹ŽüóÈî÷èÑ£ñþ®¦‚•×é·œ•þ™¦Âð -áÒ¿ÅǕǜý“ñÚ¿ð¤¾Ë½Ç¦üû‘±Ð‹‹ö³þÚ¿š¥œ¸ú¾äÿšº¤­®©ñÇ¿ù’θ©ÒØ¿†ñ»È¦ÿ¿‚ùެ÷÷ÏððØùå -ÆÏ³Í°Žº­ç§Ø®ìí䓤â캎ÏÛ¿«“’ÿÿÒŽðÄüÝѹ•‘³æ¼Ó»º‘äÿÊìÍüó±…„”¿ßùä¼¦ÆÆ“»äÕØú³ú“€üŸ­ -ç‘óüæ¹àߟ™œãùÍøÎ§ò‡œŒ¤¦àðäòü³”µ˜®€Ì®¥€ÿ¶†‚Ó…»É…ðÏÖÀÒ຀²¹€ùˆ¿Ûƒù¿Ýð§ŽßÎòÿ -Õ¶†òÿº€ù°¿ÝÐçþÏüöðþÌå“üŸãëê¶Çåÿä¤ÛÉÙ໯âÖ™ÿ“”ãÊýþϰƒÇå·ÿœÜŽ‚”ÒÏÉó›üò™Ÿ»»ì«´Ïðø -ÿæë¯¿þìÙù³ÀÜ÷ùóç¬ÃŠ»¸è¼§âüßšååþÏÏýð¦¶è¡äᨾÑüÙ²„Ò¥òÿ¦Çõ‘–êüÓ“§€Èï—ÛÈ¢ÿÏìþÖâŸá¬È -žàžï‰–º²ôˆ™¾Åü¡îÞÞÂÙž©ðýë”ó¯¶ñ—ÓâÐðÏÈíëÚ”µÂ¡×üŸö•ÍиöÞ¯®´‡éÒ½Ç˧Îÿ¢”ëö£·î -÷ŒØÒ ›ç¯ñËŒ“îùëê¶È¾ù¿í¥©šÿ殨žªÌÚ€ò·’Õ©èÿˆ‰ÿŠýçœúçøÏ¬–릀ÿºàŸü—ŸöÒ’þ©ÿçÚ³øç¿þü -å§ÿþÞê™é¿¿úô蘿ÆÿŸÑÜ‹ó¹÷ÌŽ™¿ÏÚÒ·¾ìÙ©ýòÞÿÒº¨ÚÜ›ÛÕüóò⨺äåìÔÚŽ§ž­ñ§Íÿ™¦þì¿úóÍ·“ß -Ÿú—âïÇ ¾á“üɉ¹¥à­¼žéû҇ʯ«Â¿©ÔÖ¿“’ùÿ’—ì£ÓµÉ‹¢ÖâçòÔ™÷Îò¿Ì®îß¶›œÿîœÿ“«‹Ê–°ÃþÏí­ -ñ¹ÛëÙîýóšÿÖö´í™ý°¥”šÿ†ñ•œÐã֮¿·Þá‡üŸâڙݛÚùÖ§áÿÑç·ë»àžý–ó«ñ§¨–¤Á¦ðäòÁ¹¥ñ§¨“„¦‹ -’ “‹°þìÒ„¦‹ “‹Óÿ³µ˜®€ìÌ®ØÇ¿ñ£˜À½ ÿ§‹”“™îîÖâõð†”¥ý“™‹ë¢ƒù¿Ý€ÿô¼ÁÑÿœ•±°¯’¸«ý’Ìå -¯“üŸâì‚·Ùòù‡—¯ÓžøØÉÞÚó—œø·’·›óÖ‡ó°Ò¿·œñåܟغÊü÷™‘½ãµÐÔ¿»×òÀÀäÆÂº€Ê’¸â¬ã’ýþÏё͚ -»¹ý𫨻´Ý÷„ÓÞú¨Ø¯óïס‡¯ó‹¶ú¬ù‡ö¥ìÇŸï…”ýÿ£†ÿÂÞÆÂÓºÖä…ų•×ö£á»¼åœ¬Ìÿ¹”éß´åÿê -ѹïç¯åï÷˜øÖ‡Âüóƨüõž¬ÁûúŒ¼‚´˜â›ÊŽ¡¸¢¿ÿ‹ôóêò÷較¿²þÙͺÌÕ¹Æé­ÝþÒíˆàýÃøÞâ—㜾´µ -Ù¼ÿ’ØèËö°ËÄò¬ìôýþ¹ÐÍ™¿óך·ê˵­ÍîâÁ´ÚÆÚŸíÚ÷ÂŽþ®ù›—±°˜ãæÈ¾”Â×áÝ•¤·²Ú¢ÿšïýý²³ÿêã -Ôõ€”̰Ե¶¦žŒÆ›êå§Í¾é—¥ÒÿŠòìîÁ«Š¶ÌÜ¿ÅúåìàŸ¡¯ãÐá°Ý±©›Êëæ„¼ü³¡œÜÿ껱̿“Û¥ñ¼ÉßÏí -Ö„«Ü¿»•ßäÿ†éÃ埧ÊÇõšîÅÿð¿¢–ú›±»¶ÌúçÜúÂÐܲ¶ê­ç¶à“üõ¼žÿÉ™“—‰ÚÏÊôí´Î½Á´·ú¾Š¿ÿÌŒ -Þšñ€ÏµÙ㱚»àŸÓãþ™”±ã¡ØÀ¢†Ú˜¿´Óð¾äõ¬Ï—Ô®ïþÙ¤ÿöðµ£­îë¿´Ô”ßÑÚø£îŒÖ§çÝ­¡Äý˶ -ŠÞÜÅîÉÝÝë£îƒ¸×ðÌÏñû—ãÅŠÔ‘…ëÙ¼å¾Ñž£‘ç±Ãþþϰžý¹Ö‹¸Óó›ëœ¶ŽÿÔØÿ¢Á€ÿºùÃÄÚƒ‰©Ü€™ -ÄÜ€ÿ섦ô‹ “‹àŸ­äñ̯ÿé®ö¼ðÙ×ïʅ⯾ò׈˜ÜííŒüÓ…ðÏ×Ö˜öÏɼáÉŸ»ƒÿôÁù“ßß‹þã–üƒ“ÞØÓÓ -×›çŤ¹ù¾ìü—þ¹³ûÿñÿñàðÏÖó ¹ùûßÅ®¼áŸ»£ú§÷²éÖÆ…þ™­œöËå´üõÆ¥ãÏîŸôëïż™ÿŠëš¦°Õ¬½êÙ -ü‘‘²é˜î²ÆåëêÛ¦ëÖÃ˾ÿþç•—×µèüÒЖÞßëêߪÁý³ŒçñÉŒãôÎÄ¿ù½ÁÇ¿íÚÖÄ„ùûçÇžˆ›Ì»¦»ÉÔ䯈 -ýÿŒÛûçͬ¨§öŸÖÒý³ÿˆÄ›Å˰ܹ“³ÔÙàÕãÏÁ¹©ùŽñýÓŒÕÍ„Ç‘ÝÆÿã¡ËÁÅ„½ÿþ½ð·Ò™Ùôù°„¦‹˜ÁÚÌ¥­ -ë‰èÚ”ñ‰íä–÷Ô¶ÿ×ü„³‘Èž‚™¦ÆÌöäÚïŠêõŸŸÝÃôÚÿ’ퟅ•Ø ³‰–žÄ€¢ãø§²Õ—ÑüðÓÔÇÛªù§Èëíé½Ç -êËÝÑ•ÿŠŽ“—Œíè£ö¦Íº‰û¥ÖÛ«€û§çê›ìýþ¾éŸ¼ñáûåõ¯¯´¦Â⤚ÿææÓÕÕüÓì°Ç•…ž‹¥Ò“ïÒÚð¿Á˜Öõý§ -›áŠÉ݈âÃÒôºïâ½…¸¢ÿ¾ŠÝ¬Ñ¿í‡Žü÷£øçô¾èþ™ò²é¯–öÏä¥ü³–œýýçþäÁÎë̬‡Óˆ·ó˜Ä¿ßÝÛäòàžÃ¥™Ñó -—ßßÀƒÿî÷…üû‘±Ðü–캙ÑÇ­¥ù¡™³Äé°ÿ¯¹ÿÏ‘«ÝŒÏ†Ž¹üÍ¥¸Ñ€ÿ†â±ŸÉ™ýÿ™ý¯ÿÒäÅŽþ¹Ú‹Û¿“’ùÿ -¯Ò¤ˆÈ™ìɄߨœàÜ‚§Ë³»ýÂÚŽ¿õøç¦ð“̆‰âø³¢Œæ¿¥ë”¨‘úæºç†Ò”¯–؞ѻåÌëþ‰˜Ï¡ÿû¨Ïð û¿¿‰ -¹ÿÜ€ò‡´†Üÿþ“ÿòþà‹îäñ«ü³µÄ¯Ö°Úɯø§‹àŸ­ÀôäÌòü³µ˜â®€Ì®¸ÓïÐÇ ‡š˜·Ùöœ¸Ãí‚üŸ -ꮀÿ¶ÆâŸíúׂͅÿÜæŸäÿôÁÍþ“™œ˜¹ç‰Îé¥É’ÿ”ÿÛý÷„ãöìø’•¿‘“ïëÏòœêªÉÿ¹à£òÍùùÕÏ¿³ú­À¿·‡û§ -رí—ý“ŠÑÎÉψñîҿ̤¶üŸù›™ÿž•ÿÓ›£Õä߇ÏðÄÈØéÄÿ”ûŠõþ©†ê”†ÿ–¥Ý®•þŸÑ¯·Îíù¿¹÷¦ùÛ±ú°Ý -ږλåØêÓ™¿ëâ‰êꛑƒ“ÄÖŽŽ¿í¡¦–ýÁâúÎÝ롾§üŸ³Úò¶£¹šçÒÏñÒãéǿƒ›çòŽËØäÇÁ°Îï²òûÏÉÿÔ -†úòñ§©¤ÿ§¸îÌêÆœòí裕Ϡ€õßí÷ëùþó«ñ§¨Ø‡‘Ñ¿“±à§ÿ™×ÙéŸå¢ÀðÏÎýùֿŷذÒÞèµ´çŸ·Ë -áòÿ¦—©øç¥¶èþÉ«ü¥óÝ‚‘ ùþ™àÜÆ¡ÖÂÍù ¿ƒ‹Òí­üÌ玘¿ËôóÛçïÁ‰Êäš›À×ðÏŒÖ¹Ž¿‡ø´Î˜­á¤ÒÄ€Ø -Þ†•äÿ仯½µ–·“Ô¾™ãîÙžÙ©ó¯Øý©Ê¿ÁŽœìòÿçæÔ’ºŽõð¾üŸ‹µ°çôµàѿֻÆúí¶Ã…ñÏïÂÀÎùòˆÿ®€þ‰êƒ -‘‰©Ü€™Ü€‘ÿ섦‹ ý“‹àŸ­Ààôäòü³”µ˜®€Ì®‹ØÇ¿ñÛϽ쨿ìⶉº±€Ì®¨íŸ·ÈØØ™ˆÌ—ðÀ¦—”õÏë -ý¯™÷üƶœ÷×ûÞÝÂï¤Ú­›„æþ¡—å‹´öº³à…¥ÌöþÔ‚Œþ«ûÜàéÙŸ¯èŸŸ¿ø¹ÏéŸÏžý¸Ë¼¿»ò´Àå¶ÜÂò߯¸¿“ -ÉÁµ—þ´„ü“¾¤×´Þ—±™õÈí¡•ÅÿÓŸâô¬”ÉξŸ¹‚Úþìé³øç·¿õ»þùɤÿÞ¾ýðƒ¾çö»óï×óÌÉØ¦È×ÒôÌ–š -‰×Êãð“×±¿®Âœ±ñåÒìÔÚÜÀ‚ó”æÙš‚ÚâœïÒÉÁøäƒµÃƒ»­›Ë”Ø£—É€õñÿ°´¬×àŸßþþç½¾ôöØõ°©«ÆÒ· -¥÷ˇî³üó–êªÎ‘ý³±¦ÌÚÓØ«èç÷‘½µ°¾¤ææ¸§£³çýĽÐèä‡ÔðÏóãàû¼°Û²÷ùüëÄÛÅÙí¤ëñž­ëöµøçà¡ýØ -›²·Á­ôˇŸóœëŸ™™‹¥ƒ²•›ãËþú†„ù§„¾’å¾ÖÚç­®ö¨íŸÉ£áŸÕÚ¶žØíÙèܦ͚탥–µ½¢ÿΪ὎ÿ†¼Œ…Á -¡ºè†Ý¸ÃìÓំ¥¾Øƒ¬ÿîÎæ²Á¿Ü˰øçï¿ûÿèùïþëÅïûÿûÏÿç̯þýÅŸ¿ùÿß—Ÿþé‹ßûýùÏ¿ÿËŸïÿð×ÿûù· -ÿ¿þéÕßþòï÷¿ÿíŸÿøÛû°âîïÇIJÂó³–Ò–œŸÏ´Ç¨Ú†çÙ’ü’âôÚï²ò‹µ°óêš²šóÁ±ÞÜ”¥¾¦Ž•Ñš¿ÅºüÓæ· -ÿÌŠ˜±Ðìë±½ñ²Ïì¦õ¿ÉÚ¤’å˙ڀ ÚŠÝ‹¿¤Òî̘é˪ÞûÚŽÇÎȉû—²¥˜¨›¬­ëÕÔ¿ŒÃ¼þ¤¤úížÎ¡ó­º½ -ÈÕðã¶‹ “¬‹Êû瀿”¾–¢ÜöáŸà´Ï “‹öñÏÐÐÈÌá‚È…ä‚øçë °¤Ý€™Ü€ÿ줄¦‹ “‹ŸàŸ­ÀôøäòÁùßßñ -Ù÷ÝìÿŸ“¡…À¦—À¿ðÛÌ̚¦µ§ëë÷¯‘ž‡„²©Ó¾÷ƒ‚õ›Šýóóó™ß’¼ù¦§¾ˆ¥ùàÆç™®ÝÎÉŠ–û¥ÿãòÅÚ»é -ÍõÁÎ¡ÓæµÓ¨Æ°•ßÅÖ¯®¢é¤í°öÁÊù§•—×䵦ƒë®ü¹Š‰øçÒò¹¬Â†ùíôê˜ØÍžÒü˜„””ͦè˜ö¶†Ýûðò…§× -ݱ·Þ¬š¥ýóæîƒÕÁÿöæÓ¾âÒžÚÊöøªâ¶ŸºžÝþžï¼àÄÖßͳ§Íë±Üú¹ø‘º€Ü«Ô‚®Ê벟õ™ÌÁ„úþÓžíΆ -³š¹î“ÚÕ¶üÿ—ý“ëÅûºÌ¶¤‹Œ­…îÉèÓÀƒÓžµª§Ì½¤†ÿˆš‡¿ŒûÎëôÞ¦¸òÌâÙ½›“ôÓã¦é¨è¬¸þó÷´þÖíªò -ÎÏ®”Ö˜ßÚيφ»¾å¹Øþ‚´ÿÌÌÓ¶º÷šþ©íó“û§í×úœŠÞ¦äðéãŒÂ¦ÃØ‚£Øè㕎Ûñæøðñ–³é×Õ÷Ÿ®Ü© Ë䘭 -ÛüÓÀóÏäþºž”´­ðÏýëÐü³äåÓÝùÖ¿§ÛះÂÿÿ¹×¦íúïÀǨچáŸöƒ‰…Žá¹ìÛ÷£Ùþ©Å®´–ßÝÉ瀢«òïÇÄ—å -­ÓäȯðÏ®íÅÉð¹«öçõÌß—Ýæº­É¾±›öþ¤ ë½¬šý„³þáûçâû—Œ²Ø£„–ƒÒªéñåÖÜõúŒÅƯ¶ÿ¦¥óéþ¥Û‚ÉËå -ÖÎË×¥•¦´»«Ç¿·‚Ÿ†“€¢¤ÆëҗٕƵÇÂ÷§Å²Ü’æêÅœ•ʤòÖí¶Î柮Υã‹ñûààÙãУį̢çÕŽ‘ùÃÚƒ‰©Ü -’€™Ü€ÿìÒ„¦‹ “‹à“Ÿ­‘ƒ³³¹Øö§üÓ…ðÿÏÖ þÙÿùÿÚ¿†Ëßñ¯Ö’‡î£€ÿúæàŸÿÿ³’ùñô™¨‡õÏÞ̶ã¡À¿ç -Ú俟•üóö¡Ž‹½ò–Œ¿Ý€üŸ¶®ØÙ¿û–µŠ–ÊïÓ…ó™Íù§‰ÁÙß„”¦ËÅîù×˶¡ ´…òÖÿڇݓ©§ÞçËìïŸá… -‹…¿׳žÿ°ÞªÓøëð´ô¨†±Òú¬³ÿä›á‹ò¾ÛÉ©©”ÿó½ä«¢ô¨»û§â½°±ÆµÚÅÒÔìÃ×§¯øÕ»ˆãÏÄ ¶ã½§°µÁ -®ÎÎø“«’¼û÷׬›çÿ´·ÃÁØÂ¢¯˜úļ­ÉÙÓ¬¿©¶â¼ôÄÁõ§»ëÖ¼ÿš¸‡ñþ¥êƒžÔÂó‚³ä÷ë’´ëÁ۶ؾ—¶ÌÿùÝ -ÐÂÆä™íúÏ¿´žã¥ç ž…ÿŒÊ ³®Š•ã¸Õ–‰­áœ°­£ÎŒãòèÓ öæÛ̉ÔÅë‡ÿòŠÇåÿ¤—¯­Ö©’­¤ãû§¶ï‰þéô÷Ë -ʽþ¹Ë’—øÔ§ß±Í”¯Ö®®£Í䯦ñ¡ŸÑåò©üóæ…òÿκ¥õÖ✀ðϪ³ü“ߓŖäƒÅœ–Þïíü¹œæþ¯è½ìãÔ—ù§– -Õ’íëó¡Ðþ¿ÏüÁÆœžé¶ó÷ƒçïÁØ÷Îñº‘ôÖí£ò´´ÙäüýŸˆ·Ó‡©Ýƒéè҉〰̔ùè¼Õш­ãýþϱ¡Åˆ–Ѧ­ç -áò®þ¿ªÀª¿ÁŽØ¶Ü™ýóœ¡Ðëç®Üçÿ´çôç–âç緓뜛؟œÿ䣜ûèµ³®Ÿß„èÿ¢ÿÈÙ™ôäÏñ†Øí¨žâ•äñü³ -µ²‡¶˜¯œö‹üÓ…ðÏÖ¤À຀²¹€ƒþÙšˆÌ—À¼¦—ì㟘†ÏÖƒõÿï¾€þœƒ‡ãú÷£œö¨íŸÈØØª›šÿÒÛËî÷‘¦õèÿÓ -¤…ÅýóåÆÂŠÐ‚œÿŒÓ¹ô†“™Ä½ºìð‡Û€ççüŸÐ¡ï؋ՒŠéúçÇžº˜›¡±Ê•¢Ó¿…ƒî¡Ôš£ªï퀅¾¶Çæ»ÿ„ê™”óÏ -¾ª÷íüŒ…ôöìǺÒ꨾Á¶—œÿ´é†¢â‹¸Èɰ™ÿªï‘Ö›þÔóðüŸ™Ý¾š»²þ©Ìð®ÄºÆÐŸ§Îæë¦õœÍÛÚäÒ¿óÓäñ -ÓÆ¼«Ýª£»¶ô¦õ†Õܹåÿç¢ËŒ¾žñ‡´ÞšÒ»ÿøçí¢Œ…üÖ©ÅãôÑÉÆ°Úÿö¨ííŸÉãäÀˆ÷ïÉÑîôêîœÃÿ“ö“ÃïÒ -à¿ùË‹ÊíàÉŸáÑÆÂãüÑÉ¿…ô̇þÏé‚óÿš»Í¢îŠÿþ¼ÄÄ¿“±°¸Ñ°ÿüÙæ¼Î¢Ÿ•þ™Ì“ÏœåŸâÚ¡Œ¨äêÖÍãóÿ -Øæ÷Ëë­©µñ›ÿ¦¥ÿþ¥©Ä¹Å¡Ã¸î⻾ŒÓê¶É¢úÿŒÄ¬ú²è¨‘§Î¹‹²†¦æˆéßö‹Ôܹÿ瘫­Å›“͢öÉßǵ΄ -誄ÿ‡ÓÊ·…€ÍüóçšÔ½ÓéþÏÖ”º¿ëó›­é˜ÏßÎó›ûëåÓ› šÎŸßìÍ©ä餦àðäòü³”µ˜®€Ì®¥€ÿ¶†‚Ó… -»É…ðÏÖÀò຀²¹ ü«ïï÷·×ðºê¸Š…ÿÿÇž¹»‡†”ŸùÈÍõÿìÍ’¿Ó»ãÈ­²’»ï¡ˆðϧ—ÔãŸëƼˆ½ñüÔû—’û -ˆŠÍ­’ÅÚŸÆñ‘ÖŽ¨«ýÑ“«¸ùØó¢À¯Ù„˾ÿ˜þý¼‚׹̕š™ÚÀÇüò—üÓÞ‚íàÄÍ¥°ðÏ›ö÷üûªèšÛžÅÝÍÿ€íÐÒ -œ¿ïŒÂ÷ÄÓìМꈺžõÚ™±í™öÏÓîÂÅñ¤¸Èɬ™ÿŠ£ÚÀ˜ŸƒÌôå­ç‚ùçªèŠÌËŽœ™Ää·Ä†Ýµó÷žýöÃÄÑÀƒ†Ùþ -•©Û¨±ÔŒãœõ¦ýÓŽÊÚáÏé¹™›ÎߤãËÄ‘µË’–‰«†ÄÝååþ©¾´œ•¾©‹Ø‡œ™¿ŸÁ™Ö©¶ÎƜؾéŸò–ίòúÿ”Û -³èÅ«±ØØÍ”Œ½Í¿Åú»†Ôþýçμ†½è¸‡‰û—êßõÏäåéÕÞ“üûÏíü©â´ëÇ÷ʬ·ÃÛåßÿòÉ…üœó¥öÙ£‹·Í˜Âó™´Å -¼ÝÜ«ÈãΟÌß·ýþóÒÓ¦ìîò½ª·š¿‹óŠÄ¹Š•¡Çø¶âó”©ÿ¤ëÛÑ—Á‰¸ÄÖ¡ä¯ß¥ÈΙ¢÷‹ôÎÛÎÄãÑùûàŠ†± -ªÒ¼±Ù¬âîÕ žÿ„û øšçÊ›ñÐõ¸ÿÞ…ðÏÖᘞÿö°Ïã•ÿº€ùÃÚ¢ƒ‰©Ü€™Ü¢€ÿ섦‹ú “‹Šøç—ñ¿ôמøì« -¦÷å—߹«à„Ì•÷†é®‚Èä‚ÝýÓœ²ÏøçΠ°¤Ý€™Üп“骽½ùÞÞÌ’›çË÷៻ãô¿¦ë®Èä‚Âßÿ½òûÆ„ûÊú -Ûó„ÿ˜ ···×¡ºšÿãÜր̮ܨ·þäþÉÿþÞÌ“øçâÓÀާׂ̾ª¯µö“õèõјí¶ê©¤ß”´ŠýèÀØ­“øØç -›’¿Öþùð²ÒŠùçО›ººœå‡çÜÄ¿ŠíΨڪøàÚöñÑŸûȼ֋ÆëÍô“¨à˜àŽÿò÷‚•²íéŸÏ³Î‡“Ñôü ©¸§µÏÉ¿ -•…é¾²”¥ý¼Æÿ“ÇúΨ½ÚªøýóÿŽý¹½½šï¥î§Š·™™ÁÆšéÿùç£ìψ²ˆöËÉÁØÖ¦šÁöˆÌ…’ƒÚÚÓÚÞÙçø§û• -¶‹ùçÇ÷Ðàï¹¶èþéø¤Ë讋®ÿ©Ã‘ÒöÀ‘‚Ó›œª§ðãŸØ“ ÑƱ󮇈´ž“å§ã¡½Ì‰áê ¨æú¦Ö§Ñ¿šû²‘Þóœª -Ú—õÏÎÕ¶Ííù»¿ðé—°©Àü’þ飅¬æœÕØÌÆËÇÒ¸Ò¿ù‹—Ãõ”’ï«“õˆ½šÐÁŒ±íˆ­±ÔÅ÷·ú½žÃå¢þùªÊô±ÄÿœºØ -忟åܮɢ¹ëßÞ©ó°ŸÅˆ–˜á¼±¼µûË¢ìÔŸçÿÜœíåÒÂÌçÙÐÁ¿£åÏüóս͎椹Ԓ™½÷ÏÚ­¬°þÜùù‡‰’›—ðì -›–üþ´¹ÿêÅó¸Þò²ÖÊδ韓¡æÎȵ÷š¼ŸÈ÷Ë´îÑå¢þÿ™”Ñ÷ŸÊøõ³›ŸŒ‰ˆÊÐÙ‘ÂŽ³üúÓĎ̤äß÷¿¤Åší¬õ -£çá–÷¡¾ŒâÓñõ²ÖʤðÙܢĴÓèÚÄ×ÔºØçýÃÃŽʥǹŸ‘áüɤ„î» þÿñãé¬Êš¾£ÕìØÚ©¼Ê´’ŒªŸòý§¸ -ñ†úŒ¬•‚ø”饞ծûúü¦ÿåýˆ¡ˆÆ ±…‹º “‹Šæÿ¼‡ë…ÒµˆÌ—€À¦— ÿòë °Ý€™Ü€‘ÿ섦‹ Í“‹öñÏÌä -•ëÿ±™‹ ‰“‹Êû§²–éÖ†‚Ó…Éä…ÅýóîÆÂɜᪿ‹—ÌÆâ“ÀÌä’µ£è¬ÇžòŸ¿¶ê–•²‰‡ýÚ®ùëåŸäû傽ªŽÒ¿ -¿ÿ„í²–é¿×ž¬¾’ÞÓøÝ„žùÅÑ€ÅÆ£Ýª¥°Ò¦½ýóãÖùÀޮأê¨çŸÔ¼—Øç¬Ì¤á¤‹ìøÏþ‘ÏðÔÑØšØàÞ˜… -á¯®Š—µöé—÷¶ûÜþž›òøç²­ÌÚ©¤˜­ÆÚ†ö’áêü Ý®ÿêÝ«ÜÖ¿•©¿ºˆè‰¬áé¬éÒáý‚¢öš­çøé™ØÄö☴êÑ– -÷ôœêóæãŸ…Éú™æÅ“﫱ג£¯éæí÷¼‡Ê»øç×ÊŒ…ÚËúÿõä­Ñ¿þÞÖ©íŸÉã²ÿ²”ëÍÑâûÏÃî¨ÉãДœÿ죽û¬‘Œ -ÜÇöðÏ°ÑÆæÂøç¦ìûźÚÒˆÿÜŠ’•ßÿÚÁ—³Æ×ÕÖÒºÀ¿×ÁþþĬôÍÆôÂþíÛïŸÑ‚­“ù„﹓‚«¿Ø‹ù—µ·¾ÈèÿÊÈÚ -¦É‰ï¿íá¦ÆÛÄíÌîÖß¾¥¹î‹Ýü³Æ©ù÷¯¥ºÒֶꤒßå™Ú•Ý»…‰îß²®ÜÜÖ鮩Ý圑µå’Â÷¯ÍÆ—½Ñ¢Æ—ÖÁ¾ -ŸÂÙÔ®ýÿ»üåÈ’’È÷ð¸üßêÚ»í—ÁÙ®€Ì®ÿÀó›ðÏ€À­¬Èä‚äˆé¤¦ðäÌòü³µ˜¢®€Ì®˜üó”î‰ðÏ· ° -äÝ€™ÜýóŸÛï¼÷ÍïýÛ§·Á­ôËûоðÏï °Ý’€™Ü°øçlýùè—Ÿüßþâ¥Ø­ïïÕ—ŽÝ–øç͵¿ŸµÆƒÿ±É™Ç “‹†ÿ -ïìÇ–½½þà¿§ŸÛå釟©ô½çù§òÿ»Ö†˜˜©¶² “‹†ÿ¼³¹Ã—¯ßûÉç¼öùöìÃÁ¶ŽÃüŸ§ŽÎ‰œ³…—èüƒž˜‹Ó´Ò -²Æã·Ñ´µ›ÖË伜쇽™ÄÿìëßÿÕúۻܜ¶ÛÔ¿»ò¤ÏäþñϰÖóâùáݠ¼°çÉ„¤žÛÌïÄ”·ç³¡Ìüåäú»Èä쟟ö -ååëßøû¨Ä¨’Ûæù§•ûŠÁþÏÚÎǯÿ´ÂÛéßÌþᢉ¤ÛÓÜþþÒâËØ¨µÔÔ€û°ú•ÌÉîÇŠ‹‘¬Üµ×Óñê®éü¬ÊÈ”¦¢ -ÍæÌçù¾Ðÿ¦üòÁïú«œàÊߟŠí™í“ŸæÔÝèï¶ÝÚŽ™ã„öÿùüí†ééÝœšó¬†„ÀÜ¡¹“¨Êâ¢Æ–ùòµ¥‹Òº—Ì£¿‹õ²¥„ -µ¼‘ÂéÎóýß þù½÷¿é¼Ë´Ì¤Þ—åËþ¹¬ÿ§ïœÝŒµÚ¢ðò· ¶—ü׉Ӻ舘°ë×§éµ ¸……ūۭµŸÉùÙ”’ÉôÔ -îÓžçû°öϳ‡’íóÁ¼Î¯íËü³¬ÊÓÿÉ›çùçæžöæ¶—ü×ÝÓúç•–˜åËä‚ÿ–¢œ´ÌöûéÎóý¯ þùÝŸÿºí–èž´ñÉï -ÐÇÄô»ÿç˜ãé›øç²º…¥¯µ¾ä£éٽ󲯑ÿ˜³È–ɼÎÚú”ûïèŸ¾Ž‰ü¬¶”©äœßùóçû°öåÏßÑòý–µþ™”üû -§—’–¤È¸¯µ·ÌÏœúÒ–»»Æ»õ®‹Ñ–š°ƒóÒ‹¦Ž°Ú‚ٚ嘜ëµþíü¬Öˤ¾Ô­¢ œî¼ß‡öúÿçŸþÂŒ®óïÿŒÑ” -ŒÒ’™Ž¢çŸêæí§ïÛÁ§È”Ð’£í¬Óñž’û¹ò³ØîǦ¸Ù¹§æÛÚ¾ÿô£§ŸýÜ®‹ž¿Ðš‡­Ç‚ÿï䬔騕½úœùÙìùüæ -ö©Ïóý Ï¿ï÷öذńèËýû¿ôñó»ï ž˜Â…»É…ȿԚ€ˆÌ—À¦— Ñÿ§€€ìŒ÷àÏ”””””Ìý²ààŠ‚‚‚ÿ‚‚‚‚‚‚² -Û²ü¿£Îàó -&] -[s2;%% &] -[s9;%% This class is the ColumnList specialization for displaying -lists of files or similar items. List consists of File structures -with elements appropriate to describe and display individual -files.&] -[s3;%% &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0;%% [* Public Member List]]}}&] -[s3;%% &] -[s5;:FileList`:`:WhenRename: [_^Callback2^ Callback2][@(0.0.255) ]_[* WhenRename]&] -[s2;%% This callback is called when filename was renamed by user. -First argument is the original filename, second one is the new -filename.&] -[s3; &] -[s4; &] -[s5;:FileList`:`:StartEdit`(`): [@(0.0.255) void]_[* StartEdit]()&] -[s2;%% Starts the editation of the current item for rename.&] -[s3; &] -[s4; &] -[s5;:FileList`:`:EndEdit`(`): [@(0.0.255) void]_[* EndEdit]()&] -[s2;%% Ends the editation of item.&] -[s3; &] -[s4; &] -[s5;:FileList`:`:IsEdit`(`)const: [@(0.0.255) bool]_[* IsEdit]()_[@(0.0.255) const]&] -[s2;%% True if editation is active.&] -[s3; &] -[s4; &] -[s5;:FileList`:`:OkEdit`(`): [@(0.0.255) void]_[* OkEdit]()&] -[s2;%% Ends the editation and calls WhenRename to actually rename -the filename.&] -[s2;%% &] -[s3;%% &] -[s4; &] -[s5;:FileList`:`:SetIcon`(int`,const Image`&`): [@(0.0.255) void]_[* SetIcon]([@(0.0.255) i -nt]_[*@3 ii], [@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 icon])&] -[s2;%% Replaces an icon of file item.&] -[s3;%% &] -[s4; &] -[s5;:FileList`:`:Add`(const String`&`,const Image`&`,Font`,Color`,bool`,int64`,Time`,Color`,const String`&`,Font`,Value`,Color`,bool`,bool`): [@(0.0.255) v -oid]_[* Add]([@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 name], -[@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 icon]_`=_Null, -[_^Font^ Font]_[*@3 font]_`=_StdFont(), [_^Color^ Color]_[*@3 ink]_`=_SColorText(), -[@(0.0.255) bool]_[*@3 isdir]_`=_[@(0.0.255) false], [_^int64^ int64]_[*@3 length]_`=_[@3 0], - [_^Time^ Time]_[*@3 time]_`=_Null, [_^Color^ Color]_[*@3 extink]_`=_Null, -[@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 desc]_`=_Null, -[_^Font^ Font]_[*@3 descfont]_`=_Null, [_^Value^ Value]_[*@3 data]_`=_Null, -[_^Color^ Color]_[*@3 underline]_`=_Null, [@(0.0.255) bool]_[*@3 unixexe]_`=_[@(0.0.255) fa -lse], [@(0.0.255) bool]_[*@3 hidden]_`=_[@(0.0.255) false])&] -[s2;%% Adds a new file item at the end of list.&] -[s3;%% &] -[s4; &] -[s5;:FileList`:`:Get`(int`)const: [@(0.0.255) const]_[_^FileList`:`:File^ File][@(0.0.255) `& -]_[* Get]([@(0.0.255) int]_[*@3 i])_[@(0.0.255) const]&] -[s2;%% Returns the file item structure at specified index.&] -[s3; &] -[s4; &] -[s5;:FileList`:`:operator`[`]`(int`)const: [@(0.0.255) const]_[_^FileList`:`:File^ File][@(0.0.255) `& -]_[* operator`[`]]([@(0.0.255) int]_[*@3 i])_[@(0.0.255) const]&] -[s2;%% Same as Get([%-*@3 i]).&] -[s3; &] -[s4; &] -[s5;:FileList`:`:Insert`(int`,const String`&`,const Image`&`,Font`,Color`,bool`,int64`,Time`,Color`,const String`&`,Font`,Value`,Color`,bool`,bool`): [@(0.0.255) v -oid]_[* Insert]([@(0.0.255) int]_[*@3 ii], [@(0.0.255) const]_[_^String^ String][@(0.0.255) `& -]_[*@3 name], [@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 icon]_`=_Null, -[_^Font^ Font]_[*@3 font]_`=_StdFont(), [_^Color^ Color]_[*@3 ink]_`=_SColorText(), -[@(0.0.255) bool]_[*@3 isdir]_`=_[@(0.0.255) false], [_^int64^ int64]_[*@3 length]_`=_[@3 0], - [_^Time^ Time]_[*@3 time]_`=_Null, [_^Color^ Color]_[*@3 extink]_`=_Null, -[@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 desc]_`=_Null, -[_^Font^ Font]_[*@3 descfont]_`=_Null, [_^Value^ Value]_[*@3 data]_`=_Null, -[_^Color^ Color]_[*@3 underline]_`=_Null, [@(0.0.255) bool]_[*@3 unixexe]_`=_[@(0.0.255) fa -lse], [@(0.0.255) bool]_[*@3 hidden]_`=_[@(0.0.255) false])&] -[s2;%% Inserts a new file item at specified position.&] -[s3;%% &] -[s4; &] -[s5;:FileList`:`:Set`(int`,const String`&`,const Image`&`,Font`,Color`,bool`,int64`,Time`,Color`,const String`&`,Font`,Value`,Color`,bool`,bool`): [@(0.0.255) v -oid]_[* Set]([@(0.0.255) int]_[*@3 ii], [@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_ -[*@3 name], [@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 icon]_`=_Null, -[_^Font^ Font]_[*@3 font]_`=_StdFont(), [_^Color^ Color]_[*@3 ink]_`=_SColorText(), -[@(0.0.255) bool]_[*@3 isdir]_`=_[@(0.0.255) false], [_^int64^ int64]_[*@3 length]_`=_[@3 0], - [_^Time^ Time]_[*@3 time]_`=_Null, [_^Color^ Color]_[*@3 extink]_`=_Null, -[@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 desc]_`=_Null, -[_^Font^ Font]_[*@3 descfont]_`=_Null, [_^Value^ Value]_[*@3 data]_`=_Null, -[_^Color^ Color]_[*@3 underline]_`=_Null, [@(0.0.255) bool]_[*@3 unixexe]_`=_[@(0.0.255) fa -lse], [@(0.0.255) bool]_[*@3 hidden]_`=_[@(0.0.255) false])&] -[s2;%% Replaces an information about a file item at specified position.&] -[s3;%% &] -[s4; &] -[s5;:FileList`:`:Set`(int`,const FileList`:`:File`&`): [@(0.0.255) void]_[* Set]([@(0.0.255) i -nt]_[*@3 ii], [@(0.0.255) const]_[_^FileList`:`:File^ File][@(0.0.255) `&]_[*@3 f])&] -[s2;%% Replaces an information about a file item at specified position.&] -[s3;%% &] -[s4; &] -[s5;:FileList`:`:GetCurrentName`(`)const: [_^String^ String]_[* GetCurrentName]()_[@(0.0.255) c -onst]&] -[s2;%% Returns the filename of item with cursor. If there is no cursor, -returns empty String.&] -[s3; &] -[s4; &] -[s5;:FileList`:`:Find`(const char`*`): [@(0.0.255) int]_[* Find]([@(0.0.255) const]_[@(0.0.255) c -har]_`*[*@3 name])&] -[s2;%% The index of the item with specified [%-*@3 name] or negative -value if not in the list. Search is linear.&] -[s3; &] -[s4; &] -[s5;:FileList`:`:FindSetCursor`(const char`*`): [@(0.0.255) bool]_[* FindSetCursor]([@(0.0.255) c -onst]_[@(0.0.255) char]_`*[*@3 name])&] -[s2;%% If item with [%-*@3 name].is in the list, sets the cursor to -it and returns true, otherwise returns false.&] -[s3; &] -[s4; &] -[s5;:FileList`:`:Sort`(const FileList`:`:Order`&`): [@(0.0.255) void]_[* Sort]([@(0.0.255) c -onst]_[_^FileList`:`:Order^ Order][@(0.0.255) `&]_[*@3 order])&] -[s2;%% Sorts the list. Order contains single virtual method for ordering -File structures.&] -[s3; &] -[s4; &] -[s5;:FileList`:`:IconWidth`(int`): [_^FileList^ FileList][@(0.0.255) `&]_[* IconWidth]([@(0.0.255) i -nt]_[*@3 w])&] -[s2;%% Sets the space reserved for painting the file icon.&] -[s3; &] -[s4; &] -[s5;:FileList`:`:GetIconWidth`(`)const: [@(0.0.255) int]_[* GetIconWidth]()_[@(0.0.255) con -st]&] -[s2;%% Returns the value set by IconWidth.&] -[s3; &] -[s4; &] -[s5;:FileList`:`:Renaming`(bool`): [_^FileList^ FileList][@(0.0.255) `&]_[* Renaming]([@(0.0.255) b -ool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2;%% In renaming mode, user is allowed to edit the name of item -(by holding mouse button over the item). WhenRename callback -is called when user accepts the new name.&] -[s3; &] -[s4; &] -[s5;:FileList`:`:JustName`(bool`): [_^FileList^ FileList][@(0.0.255) `&]_[* JustName]([@(0.0.255) b -ool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2;%% In JustName mode, if filename contains [* `\] or [* /] characters, -only the part after last such character is displayed as filename.&] -[s3;%% &] -[s4; &] -[s5;:FileList`:`:AccelKey`(bool`): [_^FileList^ FileList][@(0.0.255) `&]_[* AccelKey]([@(0.0.255) b -ool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2;%% AccelKey activates searching for file starting on key press -(first letter of filename is matched).&] -[s3;%% &] -[s4; &] -[s5;:FileList`:`:SelectDir`(bool`): [@(0.0.255) void]_[* SelectDir]([@(0.0.255) bool]_[*@3 b]_ -`=_[@(0.0.255) true])&] -[s2;%% In SelectDir mode, directories can be selected (important -for multiselecting directories in FileSel).&] -[s0;%% &] -[s0;%% &] -[s0; &] -[ {{10000@3 [s0;%% [*@(229)4 FileList`::File]]}}&] -[s3;%% &] -[s1;:FileList`:`:File`:`:struct: [@(0.0.255)3 struct][3 _][*3 File]&] -[s9;%% Structure used to hold information about the item. Some items, -like file length, are in fact not directly used by FileList and -are only provided to make FileList usage simpler for its primary -applications (e.g. file selectors).&] -[s3;%% &] -[s0;%% &] -[ {{10000F(128)G(128)@1 [s0;%% [* Public Member List]]}}&] -[s3; &] -[s5;:FileList`:`:File`:`:isdir: [@(0.0.255) bool]_[* isdir]&] -[s2;%% If true, item contains directory.&] -[s3;%% &] -[s4; &] -[s5;:FileList`:`:File`:`:unixexe: [@(0.0.255) bool]_[* unixexe]&] -[s2;%% If true, item in POSIX has executable rights.&] -[s3; &] -[s4; &] -[s5;:FileList`:`:File`:`:hidden: [@(0.0.255) bool]_[* hidden]&] -[s2;%% If true, item is hidden.&] -[s3; &] -[s4; &] -[s5;:FileList`:`:File`:`:icon: [_^Image^ Image]_[* icon]&] -[s2;%% File icon.&] -[s3;%% &] -[s4; &] -[s5;:FileList`:`:File`:`:name: [_^String^ String]_[* name]&] -[s2;%% Filename.&] -[s3;%% &] -[s4; &] -[s5;:FileList`:`:File`:`:font: [_^Font^ Font]_[* font]&] -[s2;%% Font used to display the filename.&] -[s3;%% &] -[s4; &] -[s5;:FileList`:`:File`:`:ink: [_^Color^ Color]_[* ink]&] -[s2;%% Color used to display the filename.&] -[s3;%% &] -[s4; &] -[s5;:FileList`:`:File`:`:length: [_^int64^ int64]_[* length]&] -[s2;%% Length of file.&] -[s3;%% &] -[s4; &] -[s5;:FileList`:`:File`:`:time: [_^Time^ Time]_[* time]&] -[s2;%% Last write time.&] -[s3;%% &] -[s4; &] -[s5;:FileList`:`:File`:`:extink: [_^Color^ Color]_[* extink]&] -[s2;%% Color used to display the file extension.&] -[s3;%% &] -[s4; &] -[s5;:FileList`:`:File`:`:desc: [_^String^ String]_[* desc]&] -[s2;%% Additional description of file, displayed after the filename.&] -[s3;%% &] -[s4; &] -[s5;:FileList`:`:File`:`:descfont: [_^Font^ Font]_[* descfont]&] -[s2;%% Font used for additional description.&] -[s3;%% &] -[s4; &] -[s5;:FileList`:`:File`:`:operator const String`&`(`)const: [* operator_const_String`&]( -)_[@(0.0.255) const]&] -[s2;%% Returns name.&] -[s3;%% &] -[s0;%% &] -[s0;%% &] -[s0;%% &] -[s0; [+150 FileList routines]&] -[s3; &] -[s5;:Load`(FileList`&`,const String`&`,const char`*`,bool`,Callback3``,FileSystemInfo`&`,const String`&`,bool`): [@(0.0.255) b -ool]_[* Load]([_^FileList^ FileList][@(0.0.255) `&]_[*@3 list], [@(0.0.255) const]_[_^String^ S -tring][@(0.0.255) `&]_[*@3 dir], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 patterns], -[@(0.0.255) bool]_[*@3 dirs]_`=_[@(0.0.255) false], [_^Callback3^ Callback3][@(0.0.255) ]_[*@3 WhenI -con]_`=_CNULL, [_^FileSystemInfo^ FileSystemInfo][@(0.0.255) `&]_[*@3 filesystem]_`=_St -dFileSystemInfo(), [@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 search]_`=_[_^String^ S -tring](), [@(0.0.255) bool]_[*@3 hidden]_`=_[@(0.0.255) true])&] -[s2;%% This function loads [%-*@3 list] with file items in [%-*@3 dir]. -[%-*@3 patterns] contain allowed file masks separated by semicolon -(e.g. `"`*.cpp;`*.h`"). If [%-*@3 dirs] is false, files in the -list are displayed with `"disabled`" color (useful for directory -selection). [%-*@3 WhenIcon] specifies icon assignment for individual -filenames (first bool paremeter is true for directories). [%-*@3 filesystem] -specifies the file system interface.&] -[s3;%% &] -[s4; &] -[s5;:SortByName`(FileList`&`): [@(0.0.255) void]_[* SortByName]([_^FileList^ FileList][@(0.0.255) `& -]_[*@3 list])&] -[s2;%% Sorts the list by names.&] -[s3;%% &] -[s4; &] -[s5;:SortByExt`(FileList`&`): [@(0.0.255) void]_[* SortByExt]([_^FileList^ FileList][@(0.0.255) `& -]_[*@3 list])&] -[s2;%% Sorts the list by extensions.&] -[s3;%% &] -[s4; &] -[s5;:GetDriveImage`(char`): [_^Image^ Image]_[* GetDriveImage]([@(0.0.255) char]_[*@3 drive`_ -style])&] -[s2;%% Returns the OS dependent icon of [%-*@3 drive`_style].&] -[s3;%% &] +topic "FileList"; +[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,0#27521748481378242620020725143825:desc] +[0 $$3,0#96390100711032703541132217272105:end] +[H6;0 $$4,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] +[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] +[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] +[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] +[b42;2 $$9,9#13035079074754324216151401829390:normal] +[{_} +[ {{10000@3 [s0;%% [*@(229)4 FileList]]}}&] +[s3; &] +[s1;:FileList`:`:class: [@(0.0.255)3 class][3 _][*3 FileList][3 _:_][@(0.0.255)3 public][3 _][*@3;3 C +olumnList][3 , ][@(0.0.255)3 private][3 _][*@3;3 Display]&] +[s2;%% &] +[s2;%% +@@image:2240&1320 +‚ƒÀˆ€€ƒøþ€€€€ø·œí¿³åƇ™Æõ…ˆœÑúÅèï°å¯àá„¢¦¥ô°Á§¦Þð†¤û‘ã†âƒì͹œš‘Àà¸É–Õö€Ž–×ŽË +–ؘãæà¼ÛÀÂÀõêÞëÛçÕ¿ÿÔúÓÒ¿êç×݆÷ú´ÚººúÅô¾ê¾ÇúçŸóßþç稨€¨¨¨¨¨¨¨¶¨û–ÿù·÷€ÑÐÐÐÐ²Ë +ƒâŸ€€À†ýðϧ¼óޅ°äòÜÁ¯Ó‚Ùú€Úÿº…é‚Èßä‚èŸßþ穽ïþë»Æìý½ßÚ÷É÷Ï‚îÌ‘ŸŽˆ˜í‰½êÁ”© +‡—¥ëîøœïÅàŸ½±öåù£ßþòù‹—Žâ·¾½ßºôÓËñÏž€ˆÉøÊƒóæææÒªÐýäÂÅÞ…þé‚Á¿ûé±åï¿øé™çöùúá‡ý +íÏÌÿÌÁÛ«¢Í‚—Ž Âƒ•³·ÏËí¾¦òé¹®š“£àÓ䞬›î¶¢µéÊÿ”­ýè¶Ñ”îê‹’Œþù熯Þÿ¾÷“Ïìòì÷Ù‡ƒí†¬ñ +³çä‘ÔÅ‚ÿ›–ƒ‡æå¨½æ˜æç¾ø§ ø€ó²ӿÞçõŸÛÓµ‰ÞÌôšÆëœñÉØæúãšÍéúŽ·ÀôϾþßý§¿¥åëßèø»é¹¸íŒ +Ùùûç”û©ãñõ¨¿ûöìõÕ×ßïÛÞþûðíêýï½õÖç𲯌­ÏŸì¿ÿóÍ·û–…¾ÿ¿–ýßñð£Ãå艫ˆÕ­À‚óêž÷···ÃãÍý +êüþÆòÏû’‘ÇÃÕì§ÿùúûæ–’ÎÚ»‘Œ÷²ÐáŸàÝí¹Š¦ÓŽÑøêÉçÏŽ¸ˆÞ™®µü×Ó²îåïá²Ç²¨ãÿü´Ë–Þ¼‡Â›‹ +»úçà‰ïß“ÝÕ™Ìóñ½Ñþ¿þõ¯÷õ»Þñ†ë£ï«üîä¨Äƾ«ÖØ‚‚ÿšÓ‰õ„±Ö´§”ÙÛù¼Úý§·Úà÷¡‹ÒúŽ—žÅúù»ÿ +žé»¨±…üÍÛÇ»ú­Ÿ•êٟϾøÍТèùŽ¥¶—õϤ¤®Äà±ôÚÙ³‘ãƒçÃóϸø´ÙŸë…´¥¢í§°õÏ´ø¥›ÒöÒöê‰þéôß“ +âüÓì‘·°¤èõ¹þ²¨ÿ–þïýÏú’í–³©÷…þù‚ú´ÿŒãùûÝößé°ì럓³Ûá¯óâ÷üßþÙ­øþ³Ì”‘ÅÜ‚üÓã³ìŸŸ“Ãüø +Ψ´¥¨ÿ޳åò§÷ÄÃËœï¿ÇþâÆ†Êݣdž©úß°Çëìù÷£Òâ¡——íæü¦þ´¹ÿÒí²±ßËë¡‹Òúýççþ¾æûÏãäÒ£Ž›¶Ò +픬’맃úùç÷ÿüë¾ôÐÖ¹Ô≭•üþÔ÷Ìþ¿£Šý§ÿ¿ê×Ûä¿ŸÅÆ–°™ý³©ù÷¯¥„­Éšñªîªùî–Œ¾ãîöÙž©êö¤ +ÛèýËÚåé½»¦ñå“þù«ï»ÌôÏ»‡´¹‹˜Á›“œ•°Æã‹¨Ù¥þ®ÚÂñ៯ýžÏ¼Ïýó§»—¸´ôþÏŸö¾ý…Ýòïÿڌ㫠ƾŸ +ú‘þÉÁó›‘¶¶ý³µ•‹ÂŸ¿úÑÏþüçÀµ Ò±…‹ “‹è—óï½½ö£ÌÚ±áÒßÞ¯ÍÂÿþÔ‹‚Ó¶…É…åò¯±ºÁàºàª +ÇÓ—¿ôמø›ì«÷å—ߑ¹«„ÌÉ÷†ñù¿Ûƒþé‚îéÿ”Ì“þ¹î³ÈÿÙšøý©È…Ѧ¨ÇÐÏéÍ󢎷ÏÛ—ï¸Áþ‹ÏÖÀþÏ—Ð +‹™¨–ÔËÇÖúó„ÿîÎ’Ïÿó½ŸüöŸæêéÓ§Ÿüæÿþ™ÍïïœÛÿÕŸþâÖÃïï¹·¯í«Ÿõûï¿ßÎŽ½µÔ“ÿÓ¦Ñÿ’üÊÓÈÆ +»ŸÜ¿éß‹ùš’ÿ”£Ì¾Ð©Ûêê÷½â·ôþÏÉÿÜ­ãÿç‚°Þʤ—žüŸ¶ùÛ¸‡¥îÔ¿ƒû⩈¶ÆçÌü³îÊìÌØÇÓϲ©­¶ô°ô +ëù£Éÿ¬úüÓæ“§ÏÞøã·áŒÈž²ü×ãž çþÌ®Á¶Ã…‰¿ÅöÏÌÿÉ£ò”ø÷ãþâ–Ä·æœÚ˃—ǵæÅøøÓ¾€ÑļõÿŒÌ޾ +ÀµñŸ´Å¦µþŽäð†ñ´†¸®½õøç럯½Ö¿ìòÈŒ²˜æ Ó¨¿·Ÿú˜™¿˜ù°¢á§È¥½ù¿èÓ‚ú¾ÎÏ´žã¥ÕîÁýó£û¨‘ +üÞÛæû§æ¢Ð‰‹´¯þù¾Ë”¶Ÿƒúƒü“޾Ÿ½Êàÿü”ߦïȢό°¾ÉÄŽù­ÑÉþÏÅþ¾™¤³‚õäûØÖùËÕðÿùäÜíÓœ¿‡ +ÄìÑøª«Ö¿§þ啊ø²—êñÏðÿ›Ð¿¿ž’¨¥‰ÛéâæáŸ«©Ö¤ÿçšÿ”·ì°ÞÄ÷°­»ÛóÏס‹¥ú»çÐÁüýˆîªþÙˆúüó +ì˜ÿÆïªûéàüàÆçäþäïöˆ„Ÿ¢‡äãÿ¤²¥›™ë©Ÿù½ÓúçüÏþþêþŽæô¹Ô’™½áŸ£Ú¡Î¦é×ÿÌ¡žÿüþûüùàÝý— +ÉŸÉâÏ£óŸçãLJïвû‡œš‘ðÓ¿äüŸÅÚ‰ŽÿÒø¶íŸÍèÎôûѲøíŒÃЫíμŠÿ‰ŸÒ°ßÓÉÞÎß¿×ûõçáù¿“ÓÀ +Ôèì¶óÿòíÒù‡“ÇŸ¬‘áü¹È²³ØÉüˆ…ü³°»ñÃú­óÿÞš´ùü¦÷ÿ¾´¾ÿœË‰Õ«ÞŸòþ‰ê„ùùÃÜÀŸßä‹¿¼Ÿ¸ûà€ +ËþÙšðÏ—ˆÈßÓãÜØ›ð—ÏÖ€ÿº€²¹€þÙšˆÌð—À¦—ìöûåÑŸÈì󬟻‚•Йîù²¹ð‡Û¤ðÃýŸÖ‹¸„øÙ§‹’ÿÔïÑ +ý½–øçþ”óçÏýïßÚ¼Íõ¦ò‡î⟓’Š®—·ÿ’¬ýõÜùæÇ“ø©çí†Ô¿Å¨•³ÅÙÖÓ“ÈýÃÑûç§Þ°üã‹ÝìŸÍ®ýÃÀžÿ¿¾ +†ìÄ뢹¡Ù•¿óûžÀÌ¯îŸÆ´ÝôÏŽÞÏôÆÍ´½ù„¹Ôóüæß²üŸýߡ߳ÈðàæÜàÛšï½µ¼ì«Ãä‹ò‡Ž°ÿ¼ˆ±Šß݈®ú +§üãÁÌÖ¤‡‚¹é¯îÁüë®×Ò¹òç³ÔóýÓì¹éןÉÁžï²Ì×’•™ÔºÝŒŸØìØã³—¼î”úüóÙÇþÏÁ’ãÖϦჃù¾¾§ +èÚ¨ò‡Ž¬œ—¿‹±æø¤ï³ç±ìì¿ËàÞϹà±áÉø³¨¢ð­øŽªÆêéºÞ‡ýú×îñͽëþ¹¬ÿ§·¾»œÆ„±ÿä†åò¸ÿ¦«Ì +ëõÏ •üãùˆõǬÿþ“ðî­Ó”¾ÊŠ£Õ¯•ñˆêÔË—„úü³¬Êýÿ‰ÿœËÊïÄ¿ëðÏñ‹É­‡’ëŽý³¬™óò—ñ•ÊÑüÓ”‚þ™ª +«Éÿ¹´¼¹§®öΜ¿›öø·âÜ¡«¿ÿŒÈÓ‘¤Æš½ÔÉÆæúçÞÏ˹îˆÍ¿é…Ÿ¿Œ«ð£”ôžÑÄþÛúçòйöªŠ§žÿ¶Ü–ÿ³ÿ÷£ +¡äލôÿÒëÒ¢¹ç¬ÿ¤¡ðíš¾ð‚Фݿþ”µ¢Ë샻쳴åíéô¥÷ΓˆÂ̹åþϵ¤§×Ñè”Ü¿ïÇ‚•ßÿæòÔÄÙý–àºçþ +µÏµÀ¿áŸµÞÐîùÍÃðò¬‘ô‡ò‡´È†’Ó¸€²¹†€þÙšˆÌ—ˆÀ¦—À¿ÛƒÛé‚È䂸Àçë °Ý€™ÞÜ€üŸ­áü÷ÿ›‘…¿ä‚ +œíéó¿ùó‡ýòÿ¶†æŸñ†¶˜¡Ž‹½–®Ñ¦›ûûþ®ê¯º“þ·Óî娧ÿ§Í™ìÿÖœþö£ÍÿÉñϾŶÐúÇ¿…”ò®æ¿—éªÇ—¦ +âÎæÊ­ž£Ú£ÓÆÎù©Ù—êÉÿÉõÚ™«›ðσÌÿŒ»º…¦ª­ÜŸŸø§ˆøÿïŽåÿŒ†ù§ÍƒÎÿÚÓ½ÙÇØïî¼­ô§ ’•ç·“ËÞЙ +»ž—üíµ×ž¿þ¼ô‹Ïå­Æ§Ð㪓‚òºþèýÃòüóò„¢î¡á¹‚†¦ëÒž”ìÐ쩾©ÿº’ØËµâºÝ¾Ùš‚ë‡ë𵚚ïîçó +à·™²é‡™·ïˆúÒÀŒ’¬ï¤çèȧºˆ®­®©Ä¿ƒ´ýþüòäÉîâãÈ¥²¸á³’ûºñæÎà¦Ð‚ÍÖéœÉÿµ¤äú§÷º¤¡âø»í‘·  +ЮúèÏëâ„¥ºÆðÏ媮†¢ú§¨“ïÉå챉Êñ݇ˆŽé½ÇËÝÓù³ÿ¦õŽÁ—·æ¬Ò¸»ùçòȎáͦåßíÒºÝâ‘Í®¿ãàÓæÿ +ñŠ«šëÙþÉ´Û´¥Üãοÿ“ýÏñÏ­™ïªõÏñï«áŸƒÑ¿ÃøÕþþ÷׉‹þ¶’þ¹¹ŽüóÈî÷èÑ£ñþ®¦‚•×é·œ•þ™¦Âð +áÒ¿ÅǕǜý“ñÚ¿ð¤¾Ë½Ç¦üû‘±Ð‹‹ö³þÚ¿š¥œ¸ú¾äÿšº¤­®©ñÇ¿ù’θ©ÒØ¿†ñ»È¦ÿ¿‚ùެ÷÷ÏððØùå +ÆÏ³Í°Žº­ç§Ø®ìí䓤â캎ÏÛ¿«“’ÿÿÒŽðÄüÝѹ•‘³æ¼Ó»º‘äÿÊìÍüó±…„”¿ßùä¼¦ÆÆ“»äÕØú³ú“€üŸ­ +ç‘óüæ¹àߟ™œãùÍøÎ§ò‡œŒ¤¦àðäòü³”µ˜®€Ì®¥€ÿ¶†‚Ó…»É…ðÏÖÀÒ຀²¹€ùˆ¿Ûƒù¿Ýð§ŽßÎòÿ +Õ¶†òÿº€ù°¿ÝÐçþÏüöðþÌå“üŸãëê¶Çåÿä¤ÛÉÙ໯âÖ™ÿ“”ãÊýþϰƒÇå·ÿœÜŽ‚”ÒÏÉó›üò™Ÿ»»ì«´Ïðø +ÿæë¯¿þìÙù³ÀÜ÷ùóç¬ÃŠ»¸è¼§âüßšååþÏÏýð¦¶è¡äᨾÑüÙ²„Ò¥òÿ¦Çõ‘–êüÓ“§€Èï—ÛÈ¢ÿÏìþÖâŸá¬È +žàžï‰–º²ôˆ™¾Åü¡îÞÞÂÙž©ðýë”ó¯¶ñ—ÓâÐðÏÈíëÚ”µÂ¡×üŸö•ÍиöÞ¯®´‡éÒ½Ç˧Îÿ¢”ëö£·î +÷ŒØÒ ›ç¯ñËŒ“îùëê¶È¾ù¿í¥©šÿ殨žªÌÚ€ò·’Õ©èÿˆ‰ÿŠýçœúçøÏ¬–릀ÿºàŸü—ŸöÒ’þ©ÿçÚ³øç¿þü +å§ÿþÞê™é¿¿úô蘿ÆÿŸÑÜ‹ó¹÷ÌŽ™¿ÏÚÒ·¾ìÙ©ýòÞÿÒº¨ÚÜ›ÛÕüóò⨺äåìÔÚŽ§ž­ñ§Íÿ™¦þì¿úóÍ·“ß +Ÿú—âïÇ ¾á“üɉ¹¥à­¼žéû҇ʯ«Â¿©ÔÖ¿“’ùÿ’—ì£ÓµÉ‹¢ÖâçòÔ™÷Îò¿Ì®îß¶›œÿîœÿ“«‹Ê–°ÃþÏí­ +ñ¹ÛëÙîýóšÿÖö´í™ý°¥”šÿ†ñ•œÐã֮¿·Þá‡üŸâڙݛÚùÖ§áÿÑç·ë»àžý–ó«ñ§¨–¤Á¦ðäòÁ¹¥ñ§¨“„¦‹ +’ “‹°þìÒ„¦‹ “‹Óÿ³µ˜®€ìÌ®ØÇ¿ñ£˜À½ ÿ§‹”“™îîÖâõð†”¥ý“™‹ë¢ƒù¿Ý€ÿô¼ÁÑÿœ•±°¯’¸«ý’Ìå +¯“üŸâì‚·Ùòù‡—¯ÓžøØÉÞÚó—œø·’·›óÖ‡ó°Ò¿·œñåܟغÊü÷™‘½ãµÐÔ¿»×òÀÀäÆÂº€Ê’¸â¬ã’ýþÏё͚ +»¹ý𫨻´Ý÷„ÓÞú¨Ø¯óïס‡¯ó‹¶ú¬ù‡ö¥ìÇŸï…”ýÿ£†ÿÂÞÆÂÓºÖä…ų•×ö£á»¼åœ¬Ìÿ¹”éß´åÿê +ѹïç¯åï÷˜øÖ‡Âüóƨüõž¬ÁûúŒ¼‚´˜â›ÊŽ¡¸¢¿ÿ‹ôóêò÷較¿²þÙͺÌÕ¹Æé­ÝþÒíˆàýÃøÞâ—㜾´µ +Ù¼ÿ’ØèËö°ËÄò¬ìôýþ¹ÐÍ™¿óך·ê˵­ÍîâÁ´ÚÆÚŸíÚ÷ÂŽþ®ù›—±°˜ãæÈ¾”Â×áÝ•¤·²Ú¢ÿšïýý²³ÿêã +Ôõ€”̰Ե¶¦žŒÆ›êå§Í¾é—¥ÒÿŠòìîÁ«Š¶ÌÜ¿ÅúåìàŸ¡¯ãÐá°Ý±©›Êëæ„¼ü³¡œÜÿ껱̿“Û¥ñ¼ÉßÏí +Ö„«Ü¿»•ßäÿ†éÃ埧ÊÇõšîÅÿð¿¢–ú›±»¶ÌúçÜúÂÐܲ¶ê­ç¶à“üõ¼žÿÉ™“—‰ÚÏÊôí´Î½Á´·ú¾Š¿ÿÌŒ +Þšñ€ÏµÙ㱚»àŸÓãþ™”±ã¡ØÀ¢†Ú˜¿´Óð¾äõ¬Ï—Ô®ïþÙ¤ÿöðµ£­îë¿´Ô”ßÑÚø£îŒÖ§çÝ­¡Äý˶ +ŠÞÜÅîÉÝÝë£îƒ¸×ðÌÏñû—ãÅŠÔ‘…ëÙ¼å¾Ñž£‘ç±Ãþþϰžý¹Ö‹¸Óó›ëœ¶ŽÿÔØÿ¢Á€ÿºùÃÄÚƒ‰©Ü€™ +ÄÜ€ÿ섦ô‹ “‹àŸ­äñ̯ÿé®ö¼ðÙ×ïʅ⯾ò׈˜ÜííŒüÓ…ðÏ×Ö˜öÏɼáÉŸ»ƒÿôÁù“ßß‹þã–üƒ“ÞØÓÓ +×›çŤ¹ù¾ìü—þ¹³ûÿñÿñàðÏÖó ¹ùûßÅ®¼áŸ»£ú§÷²éÖÆ…þ™­œöËå´üõÆ¥ãÏîŸôëïż™ÿŠëš¦°Õ¬½êÙ +ü‘‘²é˜î²ÆåëêÛ¦ëÖÃ˾ÿþç•—×µèüÒЖÞßëêߪÁý³ŒçñÉŒãôÎÄ¿ù½ÁÇ¿íÚÖÄ„ùûçÇžˆ›Ì»¦»ÉÔ䯈 +ýÿŒÛûçͬ¨§öŸÖÒý³ÿˆÄ›Å˰ܹ“³ÔÙàÕãÏÁ¹©ùŽñýÓŒÕÍ„Ç‘ÝÆÿã¡ËÁÅ„½ÿþ½ð·Ò™Ùôù°„¦‹˜ÁÚÌ¥­ +ë‰èÚ”ñ‰íä–÷Ô¶ÿ×ü„³‘Èž‚™¦ÆÌöäÚïŠêõŸŸÝÃôÚÿ’ퟅ•Ø ³‰–žÄ€¢ãø§²Õ—ÑüðÓÔÇÛªù§Èëíé½Ç +êËÝÑ•ÿŠŽ“—Œíè£ö¦Íº‰û¥ÖÛ«€û§çê›ìýþ¾éŸ¼ñáûåõ¯¯´¦Â⤚ÿææÓÕÕüÓì°Ç•…ž‹¥Ò“ïÒÚð¿Á˜Öõý§ +›áŠÉ݈âÃÒôºïâ½…¸¢ÿ¾ŠÝ¬Ñ¿í‡Žü÷£øçô¾èþ™ò²é¯–öÏä¥ü³–œýýçþäÁÎë̬‡Óˆ·ó˜Ä¿ßÝÛäòàžÃ¥™Ñó +—ßßÀƒÿî÷…üû‘±Ðü–캙ÑÇ­¥ù¡™³Äé°ÿ¯¹ÿÏ‘«ÝŒÏ†Ž¹üÍ¥¸Ñ€ÿ†â±ŸÉ™ýÿ™ý¯ÿÒäÅŽþ¹Ú‹Û¿“’ùÿ +¯Ò¤ˆÈ™ìɄߨœàÜ‚§Ë³»ýÂÚŽ¿õøç¦ð“̆‰âø³¢Œæ¿¥ë”¨‘úæºç†Ò”¯–؞ѻåÌëþ‰˜Ï¡ÿû¨Ïð û¿¿‰ +¹ÿÜ€ò‡´†Üÿþ“ÿòþà‹îäñ«ü³µÄ¯Ö°Úɯø§‹àŸ­ÀôäÌòü³µ˜â®€Ì®¸ÓïÐÇ ‡š˜·Ùöœ¸Ãí‚üŸ +ꮀÿ¶ÆâŸíúׂͅÿÜæŸäÿôÁÍþ“™œ˜¹ç‰Îé¥É’ÿ”ÿÛý÷„ãöìø’•¿‘“ïëÏòœêªÉÿ¹à£òÍùùÕÏ¿³ú­À¿·‡û§ +رí—ý“ŠÑÎÉψñîҿ̤¶üŸù›™ÿž•ÿÓ›£Õä߇ÏðÄÈØéÄÿ”ûŠõþ©†ê”†ÿ–¥Ý®•þŸÑ¯·Îíù¿¹÷¦ùÛ±ú°Ý +ږλåØêÓ™¿ëâ‰êꛑƒ“ÄÖŽŽ¿í¡¦–ýÁâúÎÝ롾§üŸ³Úò¶£¹šçÒÏñÒãéǿƒ›çòŽËØäÇÁ°Îï²òûÏÉÿÔ +†úòñ§©¤ÿ§¸îÌêÆœòí裕Ϡ€õßí÷ëùþó«ñ§¨Ø‡‘Ñ¿“±à§ÿ™×ÙéŸå¢ÀðÏÎýùֿŷذÒÞèµ´çŸ·Ë +áòÿ¦—©øç¥¶èþÉ«ü¥óÝ‚‘ ùþ™àÜÆ¡ÖÂÍù ¿ƒ‹Òí­üÌ玘¿ËôóÛçïÁ‰Êäš›À×ðÏŒÖ¹Ž¿‡ø´Î˜­á¤ÒÄ€Ø +Þ†•äÿ仯½µ–·“Ô¾™ãîÙžÙ©ó¯Øý©Ê¿ÁŽœìòÿçæÔ’ºŽõð¾üŸ‹µ°çôµàѿֻÆúí¶Ã…ñÏïÂÀÎùòˆÿ®€þ‰êƒ +‘‰©Ü€™Ü€‘ÿ섦‹ ý“‹àŸ­Ààôäòü³”µ˜®€Ì®‹ØÇ¿ñÛϽ쨿ìⶉº±€Ì®¨íŸ·ÈØØ™ˆÌ—ðÀ¦—”õÏë +ý¯™÷üƶœ÷×ûÞÝÂï¤Ú­›„æþ¡—å‹´öº³à…¥ÌöþÔ‚Œþ«ûÜàéÙŸ¯èŸŸ¿ø¹ÏéŸÏžý¸Ë¼¿»ò´Àå¶ÜÂò߯¸¿“ +ÉÁµ—þ´„ü“¾¤×´Þ—±™õÈí¡•ÅÿÓŸâô¬”ÉξŸ¹‚Úþìé³øç·¿õ»þùɤÿÞ¾ýðƒ¾çö»óï×óÌÉØ¦È×ÒôÌ–š +‰×Êãð“×±¿®Âœ±ñåÒìÔÚÜÀ‚ó”æÙš‚ÚâœïÒÉÁøäƒµÃƒ»­›Ë”Ø£—É€õñÿ°´¬×àŸßþþç½¾ôöØõ°©«ÆÒ· +¥÷ˇî³üó–êªÎ‘ý³±¦ÌÚÓØ«èç÷‘½µ°¾¤ææ¸§£³çýĽÐèä‡ÔðÏóãàû¼°Û²÷ùüëÄÛÅÙí¤ëñž­ëöµøçà¡ýØ +›²·Á­ôˇŸóœëŸ™™‹¥ƒ²•›ãËþú†„ù§„¾’å¾ÖÚç­®ö¨íŸÉ£áŸÕÚ¶žØíÙèܦ͚탥–µ½¢ÿΪ὎ÿ†¼Œ…Á +¡ºè†Ý¸ÃìÓំ¥¾Øƒ¬ÿîÎæ²Á¿Ü˰øçï¿ûÿèùïþëÅïûÿûÏÿç̯þýÅŸ¿ùÿß—Ÿþé‹ßûýùÏ¿ÿËŸïÿð×ÿûù· +ÿ¿þéÕßþòï÷¿ÿíŸÿøÛû°âîïÇIJÂó³–Ò–œŸÏ´Ç¨Ú†çÙ’ü’âôÚï²ò‹µ°óêš²šóÁ±ÞÜ”¥¾¦Ž•Ñš¿ÅºüÓæ· +ÿÌŠ˜±Ðìë±½ñ²Ïì¦õ¿ÉÚ¤’å˙ڀ ÚŠÝ‹¿¤Òî̘é˪ÞûÚŽÇÎȉû—²¥˜¨›¬­ëÕÔ¿ŒÃ¼þ¤¤úížÎ¡ó­º½ +ÈÕðã¶‹ “¬‹Êû瀿”¾–¢ÜöáŸà´Ï “‹öñÏÐÐÈÌá‚È…ä‚øçë °¤Ý€™Ü€ÿ줄¦‹ “‹ŸàŸ­ÀôøäòÁùßßñ +Ù÷ÝìÿŸ“¡…À¦—À¿ðÛÌ̚¦µ§ëë÷¯‘ž‡„²©Ó¾÷ƒ‚õ›Šýóóó™ß’¼ù¦§¾ˆ¥ùàÆç™®ÝÎÉŠ–û¥ÿãòÅÚ»é +ÍõÁÎ¡ÓæµÓ¨Æ°•ßÅÖ¯®¢é¤í°öÁÊù§•—×䵦ƒë®ü¹Š‰øçÒò¹¬Â†ùíôê˜ØÍžÒü˜„””ͦè˜ö¶†Ýûðò…§× +ݱ·Þ¬š¥ýóæîƒÕÁÿöæÓ¾âÒžÚÊöøªâ¶ŸºžÝþžï¼àÄÖßͳ§Íë±Üú¹ø‘º€Ü«Ô‚®Ê벟õ™ÌÁ„úþÓžíΆ +³š¹î“ÚÕ¶üÿ—ý“ëÅûºÌ¶¤‹Œ­…îÉèÓÀƒÓžµª§Ì½¤†ÿˆš‡¿ŒûÎëôÞ¦¸òÌâÙ½›“ôÓã¦é¨è¬¸þó÷´þÖíªò +ÎÏ®”Ö˜ßÚيφ»¾å¹Øþ‚´ÿÌÌÓ¶º÷šþ©íó“û§í×úœŠÞ¦äðéãŒÂ¦ÃØ‚£Øè㕎Ûñæøðñ–³é×Õ÷Ÿ®Ü© Ë䘭 +ÛüÓÀóÏäþºž”´­ðÏýëÐü³äåÓÝùÖ¿§ÛះÂÿÿ¹×¦íúïÀǨچáŸöƒ‰…Žá¹ìÛ÷£Ùþ©Å®´–ßÝÉ瀢«òïÇÄ—å +­ÓäȯðÏ®íÅÉð¹«öçõÌß—Ýæº­É¾±›öþ¤ ë½¬šý„³þáûçâû—Œ²Ø£„–ƒÒªéñåÖÜõúŒÅƯ¶ÿ¦¥óéþ¥Û‚ÉËå +ÖÎË×¥•¦´»«Ç¿·‚Ÿ†“€¢¤ÆëҗٕƵÇÂ÷§Å²Ü’æêÅœ•ʤòÖí¶Î柮Υã‹ñûààÙãУį̢çÕŽ‘ùÃÚƒ‰©Ü +’€™Ü€ÿìÒ„¦‹ “‹à“Ÿ­‘ƒ³³¹Øö§üÓ…ðÿÏÖ þÙÿùÿÚ¿†Ëßñ¯Ö’‡î£€ÿúæàŸÿÿ³’ùñô™¨‡õÏÞ̶ã¡À¿ç +Ú俟•üóö¡Ž‹½ò–Œ¿Ý€üŸ¶®ØÙ¿û–µŠ–ÊïÓ…ó™Íù§‰ÁÙß„”¦ËÅîù×˶¡ ´…òÖÿڇݓ©§ÞçËìïŸá… +‹…¿׳žÿ°ÞªÓøëð´ô¨†±Òú¬³ÿä›á‹ò¾ÛÉ©©”ÿó½ä«¢ô¨»û§â½°±ÆµÚÅÒÔìÃ×§¯øÕ»ˆãÏÄ ¶ã½§°µÁ +®ÎÎø“«’¼û÷׬›çÿ´·ÃÁØÂ¢¯˜úļ­ÉÙÓ¬¿©¶â¼ôÄÁõ§»ëÖ¼ÿš¸‡ñþ¥êƒžÔÂó‚³ä÷ë’´ëÁ۶ؾ—¶ÌÿùÝ +ÐÂÆä™íúÏ¿´žã¥ç ž…ÿŒÊ ³®Š•ã¸Õ–‰­áœ°­£ÎŒãòèÓ öæÛ̉ÔÅë‡ÿòŠÇåÿ¤—¯­Ö©’­¤ãû§¶ï‰þéô÷Ë +ʽþ¹Ë’—øÔ§ß±Í”¯Ö®®£Í䯦ñ¡ŸÑåò©üóæ…òÿκ¥õÖ✀ðϪ³ü“ߓŖäƒÅœ–Þïíü¹œæþ¯è½ìãÔ—ù§– +Õ’íëó¡Ðþ¿ÏüÁÆœžé¶ó÷ƒçïÁØ÷Îñº‘ôÖí£ò´´ÙäüýŸˆ·Ó‡©Ýƒéè҉〰̔ùè¼Õш­ãýþϱ¡Åˆ–Ѧ­ç +áò®þ¿ªÀª¿ÁŽØ¶Ü™ýóœ¡Ðëç®Üçÿ´çôç–âç緓뜛؟œÿ䣜ûèµ³®Ÿß„èÿ¢ÿÈÙ™ôäÏñ†Øí¨žâ•äñü³ +µ²‡¶˜¯œö‹üÓ…ðÏÖ¤À຀²¹€ƒþÙšˆÌ—À¼¦—ì㟘†ÏÖƒõÿï¾€þœƒ‡ãú÷£œö¨íŸÈØØª›šÿÒÛËî÷‘¦õèÿÓ +¤…ÅýóåÆÂŠÐ‚œÿŒÓ¹ô†“™Ä½ºìð‡Û€ççüŸÐ¡ï؋ՒŠéúçÇžº˜›¡±Ê•¢Ó¿…ƒî¡Ôš£ªï퀅¾¶Çæ»ÿ„ê™”óÏ +¾ª÷íüŒ…ôöìǺÒ꨾Á¶—œÿ´é†¢â‹¸Èɰ™ÿªï‘Ö›þÔóðüŸ™Ý¾š»²þ©Ìð®ÄºÆÐŸ§Îæë¦õœÍÛÚäÒ¿óÓäñ +ÓÆ¼«Ýª£»¶ô¦õ†Õܹåÿç¢ËŒ¾žñ‡´ÞšÒ»ÿøçí¢Œ…üÖ©ÅãôÑÉÆ°Úÿö¨ííŸÉãäÀˆ÷ïÉÑîôêîœÃÿ“ö“ÃïÒ +à¿ùË‹ÊíàÉŸáÑÆÂãüÑÉ¿…ô̇þÏé‚óÿš»Í¢îŠÿþ¼ÄÄ¿“±°¸Ñ°ÿüÙæ¼Î¢Ÿ•þ™Ì“ÏœåŸâÚ¡Œ¨äêÖÍãóÿ +Øæ÷Ëë­©µñ›ÿ¦¥ÿþ¥©Ä¹Å¡Ã¸î⻾ŒÓê¶É¢úÿŒÄ¬ú²è¨‘§Î¹‹²†¦æˆéßö‹Ôܹÿ瘫­Å›“͢öÉßǵ΄ +誄ÿ‡ÓÊ·…€ÍüóçšÔ½ÓéþÏÖ”º¿ëó›­é˜ÏßÎó›ûëåÓ› šÎŸßìÍ©ä餦àðäòü³”µ˜®€Ì®¥€ÿ¶†‚Ó… +»É…ðÏÖÀò຀²¹ ü«ïï÷·×ðºê¸Š…ÿÿÇž¹»‡†”ŸùÈÍõÿìÍ’¿Ó»ãÈ­²’»ï¡ˆðϧ—ÔãŸëƼˆ½ñüÔû—’û +ˆŠÍ­’ÅÚŸÆñ‘ÖŽ¨«ýÑ“«¸ùØó¢À¯Ù„˾ÿ˜þý¼‚׹̕š™ÚÀÇüò—üÓÞ‚íàÄÍ¥°ðÏ›ö÷üûªèšÛžÅÝÍÿ€íÐÒ +œ¿ïŒÂ÷ÄÓìМꈺžõÚ™±í™öÏÓîÂÅñ¤¸Èɬ™ÿŠ£ÚÀ˜ŸƒÌôå­ç‚ùçªèŠÌËŽœ™Ää·Ä†Ýµó÷žýöÃÄÑÀƒ†Ùþ +•©Û¨±ÔŒãœõ¦ýÓŽÊÚáÏé¹™›ÎߤãËÄ‘µË’–‰«†ÄÝååþ©¾´œ•¾©‹Ø‡œ™¿ŸÁ™Ö©¶ÎƜؾéŸò–ίòúÿ”Û +³èÅ«±ØØÍ”Œ½Í¿Åú»†Ôþýçμ†½è¸‡‰û—êßõÏäåéÕÞ“üûÏíü©â´ëÇ÷ʬ·ÃÛåßÿòÉ…üœó¥öÙ£‹·Í˜Âó™´Å +¼ÝÜ«ÈãΟÌß·ýþóÒÓ¦ìîò½ª·š¿‹óŠÄ¹Š•¡Çø¶âó”©ÿ¤ëÛÑ—Á‰¸ÄÖ¡ä¯ß¥ÈΙ¢÷‹ôÎÛÎÄãÑùûàŠ†± +ªÒ¼±Ù¬âîÕ žÿ„û øšçÊ›ñÐõ¸ÿÞ…ðÏÖᘞÿö°Ïã•ÿº€ùÃÚ¢ƒ‰©Ü€™Ü¢€ÿ섦‹ú “‹Šøç—ñ¿ôמøì« +¦÷å—߹«à„Ì•÷†é®‚Èä‚ÝýÓœ²ÏøçΠ°¤Ý€™Üп“骽½ùÞÞÌ’›çË÷៻ãô¿¦ë®Èä‚Âßÿ½òûÆ„ûÊú +Ûó„ÿ˜ ···×¡ºšÿãÜր̮ܨ·þäþÉÿþÞÌ“øçâÓÀާׂ̾ª¯µö“õèõјí¶ê©¤ß”´ŠýèÀØ­“øØç +›’¿Öþùð²ÒŠùçО›ººœå‡çÜÄ¿ŠíΨڪøàÚöñÑŸûȼ֋ÆëÍô“¨à˜àŽÿò÷‚•²íéŸÏ³Î‡“Ñôü ©¸§µÏÉ¿ +•…é¾²”¥ý¼Æÿ“ÇúΨ½ÚªøýóÿŽý¹½½šï¥î§Š·™™ÁÆšéÿùç£ìψ²ˆöËÉÁØÖ¦šÁöˆÌ…’ƒÚÚÓÚÞÙçø§û• +¶‹ùçÇ÷Ðàï¹¶èþéø¤Ë讋®ÿ©Ã‘ÒöÀ‘‚Ó›œª§ðãŸØ“ ÑƱ󮇈´ž“å§ã¡½Ì‰áê ¨æú¦Ö§Ñ¿šû²‘Þóœª +Ú—õÏÎÕ¶Ííù»¿ðé—°©Àü’þ飅¬æœÕØÌÆËÇÒ¸Ò¿ù‹—Ãõ”’ï«“õˆ½šÐÁŒ±íˆ­±ÔÅ÷·ú½žÃå¢þùªÊô±ÄÿœºØ +忟åܮɢ¹ëßÞ©ó°ŸÅˆ–˜á¼±¼µûË¢ìÔŸçÿÜœíåÒÂÌçÙÐÁ¿£åÏüóս͎椹Ԓ™½÷ÏÚ­¬°þÜùù‡‰’›—ðì +›–üþ´¹ÿêÅó¸Þò²ÖÊδ韓¡æÎȵ÷š¼ŸÈ÷Ë´îÑå¢þÿ™”Ñ÷ŸÊøõ³›ŸŒ‰ˆÊÐÙ‘ÂŽ³üúÓĎ̤äß÷¿¤Åší¬õ +£çá–÷¡¾ŒâÓñõ²ÖʤðÙܢĴÓèÚÄ×ÔºØçýÃÃŽʥǹŸ‘áüɤ„î» þÿñãé¬Êš¾£ÕìØÚ©¼Ê´’ŒªŸòý§¸ +ñ†úŒ¬•‚ø”饞ծûúü¦ÿåýˆ¡ˆÆ ±…‹º “‹Šæÿ¼‡ë…ÒµˆÌ—€À¦— ÿòë °Ý€™Ü€‘ÿ섦‹ Í“‹öñÏÌä +•ëÿ±™‹ ‰“‹Êû§²–éÖ†‚Ó…Éä…ÅýóîÆÂɜᪿ‹—ÌÆâ“ÀÌä’µ£è¬ÇžòŸ¿¶ê–•²‰‡ýÚ®ùëåŸäû傽ªŽÒ¿ +¿ÿ„í²–é¿×ž¬¾’ÞÓøÝ„žùÅÑ€ÅÆ£Ýª¥°Ò¦½ýóãÖùÀޮأê¨çŸÔ¼—Øç¬Ì¤á¤‹ìøÏþ‘ÏðÔÑØšØàÞ˜… +á¯®Š—µöé—÷¶ûÜþž›òøç²­ÌÚ©¤˜­ÆÚ†ö’áêü Ý®ÿêÝ«ÜÖ¿•©¿ºˆè‰¬áé¬éÒáý‚¢öš­çøé™ØÄö☴êÑ– +÷ôœêóæãŸ…Éú™æÅ“﫱ג£¯éæí÷¼‡Ê»øç×ÊŒ…ÚËúÿõä­Ñ¿þÞÖ©íŸÉã²ÿ²”ëÍÑâûÏÃî¨ÉãДœÿ죽û¬‘Œ +ÜÇöðÏ°ÑÆæÂøç¦ìûźÚÒˆÿÜŠ’•ßÿÚÁ—³Æ×ÕÖÒºÀ¿×ÁþþĬôÍÆôÂþíÛïŸÑ‚­“ù„﹓‚«¿Ø‹ù—µ·¾ÈèÿÊÈÚ +¦É‰ï¿íá¦ÆÛÄíÌîÖß¾¥¹î‹Ýü³Æ©ù÷¯¥ºÒֶꤒßå™Ú•Ý»…‰îß²®ÜÜÖ鮩Ý圑µå’Â÷¯ÍÆ—½Ñ¢Æ—ÖÁ¾ +ŸÂÙÔ®ýÿ»üåÈ’’È÷ð¸üßêÚ»í—ÁÙ®€Ì®ÿÀó›ðÏ€À­¬Èä‚äˆé¤¦ðäÌòü³µ˜¢®€Ì®˜üó”î‰ðÏ· ° +äÝ€™ÜýóŸÛï¼÷ÍïýÛ§·Á­ôËûоðÏï °Ý’€™Ü°øçlýùè—Ÿüßþâ¥Ø­ïïÕ—ŽÝ–øç͵¿ŸµÆƒÿ±É™Ç “‹†ÿ +ïìÇ–½½þà¿§ŸÛå釟©ô½çù§òÿ»Ö†˜˜©¶² “‹†ÿ¼³¹Ã—¯ßûÉç¼öùöìÃÁ¶ŽÃüŸ§ŽÎ‰œ³…—èüƒž˜‹Ó´Ò +²Æã·Ñ´µ›ÖË伜쇽™ÄÿìëßÿÕúۻܜ¶ÛÔ¿»ò¤ÏäþñϰÖóâùáݠ¼°çÉ„¤žÛÌïÄ”·ç³¡Ìüåäú»Èä쟟ö +ååëßøû¨Ä¨’Ûæù§•ûŠÁþÏÚÎǯÿ´ÂÛéßÌþᢉ¤ÛÓÜþþÒâËØ¨µÔÔ€û°ú•ÌÉîÇŠ‹‘¬Üµ×Óñê®éü¬ÊÈ”¦¢ +ÍæÌçù¾Ðÿ¦üòÁïú«œàÊߟŠí™í“ŸæÔÝèï¶ÝÚŽ™ã„öÿùüí†ééÝœšó¬†„ÀÜ¡¹“¨Êâ¢Æ–ùòµ¥‹Òº—Ì£¿‹õ²¥„ +µ¼‘ÂéÎóýß þù½÷¿é¼Ë´Ì¤Þ—åËþ¹¬ÿ§ïœÝŒµÚ¢ðò· ¶—ü׉Ӻ舘°ë×§éµ ¸……ūۭµŸÉùÙ”’ÉôÔ +îÓžçû°öϳ‡’íóÁ¼Î¯íËü³¬ÊÓÿÉ›çùçæžöæ¶—ü×ÝÓúç•–˜åËä‚ÿ–¢œ´ÌöûéÎóý¯ þùÝŸÿºí–èž´ñÉï +ÐÇÄô»ÿç˜ãé›øç²º…¥¯µ¾ä£éٽ󲯑ÿ˜³È–ɼÎÚú”ûïèŸ¾Ž‰ü¬¶”©äœßùóçû°öåÏßÑòý–µþ™”üû +§—’–¤È¸¯µ·ÌÏœúÒ–»»Æ»õ®‹Ñ–š°ƒóÒ‹¦Ž°Ú‚ٚ嘜ëµþíü¬Öˤ¾Ô­¢ œî¼ß‡öúÿçŸþÂŒ®óïÿŒÑ” +ŒÒ’™Ž¢çŸêæí§ïÛÁ§È”Ð’£í¬Óñž’û¹ò³ØîǦ¸Ù¹§æÛÚ¾ÿô£§ŸýÜ®‹ž¿Ðš‡­Ç‚ÿï䬔騕½úœùÙìùüæ +ö©Ïóý Ï¿ï÷öذńèËýû¿ôñó»ï ž˜Â…»É…ȿԚ€ˆÌ—À¦— Ñÿ§€€ìŒ÷àÏ”””””Ìý²ààŠ‚‚‚ÿ‚‚‚‚‚‚² +Û²ü¿£Îàó +&] +[s2;%% &] +[s9;%% This class is the ColumnList specialization for displaying +lists of files or similar items. List consists of File structures +with elements appropriate to describe and display individual +files.&] +[s3;%% &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0;%% [* Public Member List]]}}&] +[s3;%% &] +[s5;:FileList`:`:WhenRename: [_^Callback2^ Callback2][@(0.0.255) ]_[* WhenRename]&] +[s2;%% This callback is called when filename was renamed by user. +First argument is the original filename, second one is the new +filename.&] +[s3; &] +[s4; &] +[s5;:FileList`:`:StartEdit`(`): [@(0.0.255) void]_[* StartEdit]()&] +[s2;%% Starts the editation of the current item for rename.&] +[s3; &] +[s4; &] +[s5;:FileList`:`:EndEdit`(`): [@(0.0.255) void]_[* EndEdit]()&] +[s2;%% Ends the editation of item.&] +[s3; &] +[s4; &] +[s5;:FileList`:`:IsEdit`(`)const: [@(0.0.255) bool]_[* IsEdit]()_[@(0.0.255) const]&] +[s2;%% True if editation is active.&] +[s3; &] +[s4; &] +[s5;:FileList`:`:OkEdit`(`): [@(0.0.255) void]_[* OkEdit]()&] +[s2;%% Ends the editation and calls WhenRename to actually rename +the filename.&] +[s2;%% &] +[s3;%% &] +[s4; &] +[s5;:FileList`:`:SetIcon`(int`,const Image`&`): [@(0.0.255) void]_[* SetIcon]([@(0.0.255) i +nt]_[*@3 ii], [@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 icon])&] +[s2;%% Replaces an icon of file item.&] +[s3;%% &] +[s4; &] +[s5;:FileList`:`:Add`(const String`&`,const Image`&`,Font`,Color`,bool`,int64`,Time`,Color`,const String`&`,Font`,Value`,Color`,bool`,bool`): [@(0.0.255) v +oid]_[* Add]([@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 name], +[@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 icon]_`=_Null, +[_^Font^ Font]_[*@3 font]_`=_StdFont(), [_^Color^ Color]_[*@3 ink]_`=_SColorText(), +[@(0.0.255) bool]_[*@3 isdir]_`=_[@(0.0.255) false], [_^int64^ int64]_[*@3 length]_`=_[@3 0], + [_^Time^ Time]_[*@3 time]_`=_Null, [_^Color^ Color]_[*@3 extink]_`=_Null, +[@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 desc]_`=_Null, +[_^Font^ Font]_[*@3 descfont]_`=_Null, [_^Value^ Value]_[*@3 data]_`=_Null, +[_^Color^ Color]_[*@3 underline]_`=_Null, [@(0.0.255) bool]_[*@3 unixexe]_`=_[@(0.0.255) fa +lse], [@(0.0.255) bool]_[*@3 hidden]_`=_[@(0.0.255) false])&] +[s2;%% Adds a new file item at the end of list.&] +[s3;%% &] +[s4; &] +[s5;:FileList`:`:Get`(int`)const: [@(0.0.255) const]_[_^FileList`:`:File^ File][@(0.0.255) `& +]_[* Get]([@(0.0.255) int]_[*@3 i])_[@(0.0.255) const]&] +[s2;%% Returns the file item structure at specified index.&] +[s3; &] +[s4; &] +[s5;:FileList`:`:operator`[`]`(int`)const: [@(0.0.255) const]_[_^FileList`:`:File^ File][@(0.0.255) `& +]_[* operator`[`]]([@(0.0.255) int]_[*@3 i])_[@(0.0.255) const]&] +[s2;%% Same as Get([%-*@3 i]).&] +[s3; &] +[s4; &] +[s5;:FileList`:`:Insert`(int`,const String`&`,const Image`&`,Font`,Color`,bool`,int64`,Time`,Color`,const String`&`,Font`,Value`,Color`,bool`,bool`): [@(0.0.255) v +oid]_[* Insert]([@(0.0.255) int]_[*@3 ii], [@(0.0.255) const]_[_^String^ String][@(0.0.255) `& +]_[*@3 name], [@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 icon]_`=_Null, +[_^Font^ Font]_[*@3 font]_`=_StdFont(), [_^Color^ Color]_[*@3 ink]_`=_SColorText(), +[@(0.0.255) bool]_[*@3 isdir]_`=_[@(0.0.255) false], [_^int64^ int64]_[*@3 length]_`=_[@3 0], + [_^Time^ Time]_[*@3 time]_`=_Null, [_^Color^ Color]_[*@3 extink]_`=_Null, +[@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 desc]_`=_Null, +[_^Font^ Font]_[*@3 descfont]_`=_Null, [_^Value^ Value]_[*@3 data]_`=_Null, +[_^Color^ Color]_[*@3 underline]_`=_Null, [@(0.0.255) bool]_[*@3 unixexe]_`=_[@(0.0.255) fa +lse], [@(0.0.255) bool]_[*@3 hidden]_`=_[@(0.0.255) false])&] +[s2;%% Inserts a new file item at specified position.&] +[s3;%% &] +[s4; &] +[s5;:FileList`:`:Set`(int`,const String`&`,const Image`&`,Font`,Color`,bool`,int64`,Time`,Color`,const String`&`,Font`,Value`,Color`,bool`,bool`): [@(0.0.255) v +oid]_[* Set]([@(0.0.255) int]_[*@3 ii], [@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_ +[*@3 name], [@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 icon]_`=_Null, +[_^Font^ Font]_[*@3 font]_`=_StdFont(), [_^Color^ Color]_[*@3 ink]_`=_SColorText(), +[@(0.0.255) bool]_[*@3 isdir]_`=_[@(0.0.255) false], [_^int64^ int64]_[*@3 length]_`=_[@3 0], + [_^Time^ Time]_[*@3 time]_`=_Null, [_^Color^ Color]_[*@3 extink]_`=_Null, +[@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 desc]_`=_Null, +[_^Font^ Font]_[*@3 descfont]_`=_Null, [_^Value^ Value]_[*@3 data]_`=_Null, +[_^Color^ Color]_[*@3 underline]_`=_Null, [@(0.0.255) bool]_[*@3 unixexe]_`=_[@(0.0.255) fa +lse], [@(0.0.255) bool]_[*@3 hidden]_`=_[@(0.0.255) false])&] +[s2;%% Replaces an information about a file item at specified position.&] +[s3;%% &] +[s4; &] +[s5;:FileList`:`:Set`(int`,const FileList`:`:File`&`): [@(0.0.255) void]_[* Set]([@(0.0.255) i +nt]_[*@3 ii], [@(0.0.255) const]_[_^FileList`:`:File^ File][@(0.0.255) `&]_[*@3 f])&] +[s2;%% Replaces an information about a file item at specified position.&] +[s3;%% &] +[s4; &] +[s5;:FileList`:`:GetCurrentName`(`)const: [_^String^ String]_[* GetCurrentName]()_[@(0.0.255) c +onst]&] +[s2;%% Returns the filename of item with cursor. If there is no cursor, +returns empty String.&] +[s3; &] +[s4; &] +[s5;:FileList`:`:Find`(const char`*`): [@(0.0.255) int]_[* Find]([@(0.0.255) const]_[@(0.0.255) c +har]_`*[*@3 name])&] +[s2;%% The index of the item with specified [%-*@3 name] or negative +value if not in the list. Search is linear.&] +[s3; &] +[s4; &] +[s5;:FileList`:`:FindSetCursor`(const char`*`): [@(0.0.255) bool]_[* FindSetCursor]([@(0.0.255) c +onst]_[@(0.0.255) char]_`*[*@3 name])&] +[s2;%% If item with [%-*@3 name].is in the list, sets the cursor to +it and returns true, otherwise returns false.&] +[s3; &] +[s4; &] +[s5;:FileList`:`:Sort`(const FileList`:`:Order`&`): [@(0.0.255) void]_[* Sort]([@(0.0.255) c +onst]_[_^FileList`:`:Order^ Order][@(0.0.255) `&]_[*@3 order])&] +[s2;%% Sorts the list. Order contains single virtual method for ordering +File structures.&] +[s3; &] +[s4; &] +[s5;:FileList`:`:IconWidth`(int`): [_^FileList^ FileList][@(0.0.255) `&]_[* IconWidth]([@(0.0.255) i +nt]_[*@3 w])&] +[s2;%% Sets the space reserved for painting the file icon.&] +[s3; &] +[s4; &] +[s5;:FileList`:`:GetIconWidth`(`)const: [@(0.0.255) int]_[* GetIconWidth]()_[@(0.0.255) con +st]&] +[s2;%% Returns the value set by IconWidth.&] +[s3; &] +[s4; &] +[s5;:FileList`:`:Renaming`(bool`): [_^FileList^ FileList][@(0.0.255) `&]_[* Renaming]([@(0.0.255) b +ool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2;%% In renaming mode, user is allowed to edit the name of item +(by holding mouse button over the item). WhenRename callback +is called when user accepts the new name.&] +[s3; &] +[s4; &] +[s5;:FileList`:`:JustName`(bool`): [_^FileList^ FileList][@(0.0.255) `&]_[* JustName]([@(0.0.255) b +ool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2;%% In JustName mode, if filename contains [* `\] or [* /] characters, +only the part after last such character is displayed as filename.&] +[s3;%% &] +[s4; &] +[s5;:FileList`:`:AccelKey`(bool`): [_^FileList^ FileList][@(0.0.255) `&]_[* AccelKey]([@(0.0.255) b +ool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2;%% AccelKey activates searching for file starting on key press +(first letter of filename is matched).&] +[s3;%% &] +[s4; &] +[s5;:FileList`:`:SelectDir`(bool`): [@(0.0.255) void]_[* SelectDir]([@(0.0.255) bool]_[*@3 b]_ +`=_[@(0.0.255) true])&] +[s2;%% In SelectDir mode, directories can be selected (important +for multiselecting directories in FileSel).&] +[s0;%% &] +[s0;%% &] +[s0; &] +[ {{10000@3 [s0;%% [*@(229)4 FileList`::File]]}}&] +[s3;%% &] +[s1;:FileList`:`:File`:`:struct: [@(0.0.255)3 struct][3 _][*3 File]&] +[s9;%% Structure used to hold information about the item. Some items, +like file length, are in fact not directly used by FileList and +are only provided to make FileList usage simpler for its primary +applications (e.g. file selectors).&] +[s3;%% &] +[s0;%% &] +[ {{10000F(128)G(128)@1 [s0;%% [* Public Member List]]}}&] +[s3; &] +[s5;:FileList`:`:File`:`:isdir: [@(0.0.255) bool]_[* isdir]&] +[s2;%% If true, item contains directory.&] +[s3;%% &] +[s4; &] +[s5;:FileList`:`:File`:`:unixexe: [@(0.0.255) bool]_[* unixexe]&] +[s2;%% If true, item in POSIX has executable rights.&] +[s3; &] +[s4; &] +[s5;:FileList`:`:File`:`:hidden: [@(0.0.255) bool]_[* hidden]&] +[s2;%% If true, item is hidden.&] +[s3; &] +[s4; &] +[s5;:FileList`:`:File`:`:icon: [_^Image^ Image]_[* icon]&] +[s2;%% File icon.&] +[s3;%% &] +[s4; &] +[s5;:FileList`:`:File`:`:name: [_^String^ String]_[* name]&] +[s2;%% Filename.&] +[s3;%% &] +[s4; &] +[s5;:FileList`:`:File`:`:font: [_^Font^ Font]_[* font]&] +[s2;%% Font used to display the filename.&] +[s3;%% &] +[s4; &] +[s5;:FileList`:`:File`:`:ink: [_^Color^ Color]_[* ink]&] +[s2;%% Color used to display the filename.&] +[s3;%% &] +[s4; &] +[s5;:FileList`:`:File`:`:length: [_^int64^ int64]_[* length]&] +[s2;%% Length of file.&] +[s3;%% &] +[s4; &] +[s5;:FileList`:`:File`:`:time: [_^Time^ Time]_[* time]&] +[s2;%% Last write time.&] +[s3;%% &] +[s4; &] +[s5;:FileList`:`:File`:`:extink: [_^Color^ Color]_[* extink]&] +[s2;%% Color used to display the file extension.&] +[s3;%% &] +[s4; &] +[s5;:FileList`:`:File`:`:desc: [_^String^ String]_[* desc]&] +[s2;%% Additional description of file, displayed after the filename.&] +[s3;%% &] +[s4; &] +[s5;:FileList`:`:File`:`:descfont: [_^Font^ Font]_[* descfont]&] +[s2;%% Font used for additional description.&] +[s3;%% &] +[s4; &] +[s5;:FileList`:`:File`:`:operator const String`&`(`)const: [* operator_const_String`&]( +)_[@(0.0.255) const]&] +[s2;%% Returns name.&] +[s3;%% &] +[s0;%% &] +[s0;%% &] +[s0;%% &] +[s0; [+150 FileList routines]&] +[s3; &] +[s5;:Load`(FileList`&`,const String`&`,const char`*`,bool`,Callback3``,FileSystemInfo`&`,const String`&`,bool`): [@(0.0.255) b +ool]_[* Load]([_^FileList^ FileList][@(0.0.255) `&]_[*@3 list], [@(0.0.255) const]_[_^String^ S +tring][@(0.0.255) `&]_[*@3 dir], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 patterns], +[@(0.0.255) bool]_[*@3 dirs]_`=_[@(0.0.255) false], [_^Callback3^ Callback3][@(0.0.255) ]_[*@3 WhenI +con]_`=_CNULL, [_^FileSystemInfo^ FileSystemInfo][@(0.0.255) `&]_[*@3 filesystem]_`=_St +dFileSystemInfo(), [@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 search]_`=_[_^String^ S +tring](), [@(0.0.255) bool]_[*@3 hidden]_`=_[@(0.0.255) true])&] +[s2;%% This function loads [%-*@3 list] with file items in [%-*@3 dir]. +[%-*@3 patterns] contain allowed file masks separated by semicolon +(e.g. `"`*.cpp;`*.h`"). If [%-*@3 dirs] is false, files in the +list are displayed with `"disabled`" color (useful for directory +selection). [%-*@3 WhenIcon] specifies icon assignment for individual +filenames (first bool paremeter is true for directories). [%-*@3 filesystem] +specifies the file system interface.&] +[s3;%% &] +[s4; &] +[s5;:SortByName`(FileList`&`): [@(0.0.255) void]_[* SortByName]([_^FileList^ FileList][@(0.0.255) `& +]_[*@3 list])&] +[s2;%% Sorts the list by names.&] +[s3;%% &] +[s4; &] +[s5;:SortByExt`(FileList`&`): [@(0.0.255) void]_[* SortByExt]([_^FileList^ FileList][@(0.0.255) `& +]_[*@3 list])&] +[s2;%% Sorts the list by extensions.&] +[s3;%% &] +[s4; &] +[s5;:GetDriveImage`(char`): [_^Image^ Image]_[* GetDriveImage]([@(0.0.255) char]_[*@3 drive`_ +style])&] +[s2;%% Returns the OS dependent icon of [%-*@3 drive`_style].&] +[s3;%% &] [s0; ]] \ No newline at end of file diff --git a/uppsrc/CtrlLib/src.tpp/FileSelUtil$en-us.tpp b/uppsrc/CtrlLib/src.tpp/FileSelUtil_en-us.tpp similarity index 100% rename from uppsrc/CtrlLib/src.tpp/FileSelUtil$en-us.tpp rename to uppsrc/CtrlLib/src.tpp/FileSelUtil_en-us.tpp diff --git a/uppsrc/CtrlLib/src.tpp/FileSel$en-us.tpp b/uppsrc/CtrlLib/src.tpp/FileSel_en-us.tpp similarity index 99% rename from uppsrc/CtrlLib/src.tpp/FileSel$en-us.tpp rename to uppsrc/CtrlLib/src.tpp/FileSel_en-us.tpp index 57b10324b..be3223003 100644 --- a/uppsrc/CtrlLib/src.tpp/FileSel$en-us.tpp +++ b/uppsrc/CtrlLib/src.tpp/FileSel_en-us.tpp @@ -1,308 +1,308 @@ -topic "FileSel"; -[2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,0#27521748481378242620020725143825:desc] -[0 $$3,0#96390100711032703541132217272105:end] -[H6;0 $$4,0#05600065144404261032431302351956:begin] -[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] -[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] -[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] -[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] -[b42;2 $$9,9#13035079074754324216151401829390:normal] -[{_} -[ {{10000@3 [s0;%% [*@(229)4 FileSel]]}}&] -[s3; &] -[s1;:FileSel`:`:class: [@(0.0.255) class]_[* FileSel]_:_[@(0.0.255) public]_[*@3 WithFileSelec -torLayout][@(0.0.255) <][_^TopWindow^ TopWindow][@(0.0.255) >]_&] -[s0; &] -[s2;%% -@@rawimage:2842&1871 -(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) -&] -[s2;%% &] -[s9;%% Dialog for selecting files or directories.&] -[s3; &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0;%% [* Public Method List]]}}&] -[s3;%% &] -[s5;:FileSel`:`:WhenIcon: [_^Callback3^ Callback3][@(0.0.255) ]_[* WhenIcon]&] -[s2;%% This callback can be used to alter icons for files. First -parameter designates directory, second is the filename. Client -code can alter Image passed as third parameter.&] -[s3; &] -[s4; &] -[s5;:FileSel`:`:WhenIconLazy: [@(0.0.255) void]_(`*[* WhenIconLazy])([@(0.0.255) const]_Str -ing[@(0.0.255) `&]_path, Image[@(0.0.255) `&]_result)&] -[s2;%% When not NULL, this function is called in separate thread -for additional resolving of file icon. Note that FileSel, when -closed/destroyed, does not wait for this function to finish, -so it should not rely on any data outside of function. Only available -when MT is active. &] -[s3; &] -[s4; &] -[s5;:FileSel`:`:Serialize`(Stream`&`): [@(0.0.255) void]_[* Serialize]([_^Stream^ Stream][@(0.0.255) `& -]_[*@3 s])&] -[s2;%% Serializes current settings of FileSel. That includes current -directory, currently selected file type, size of FileSel window, -LRU list of visited directories and `"Sort by`" switch state.&] -[s3; &] -[s4; &] -[s5;:FileSel`:`:ExecuteOpen`(const char`*`): [@(0.0.255) bool]_[* ExecuteOpen]([@(0.0.255) c -onst]_[@(0.0.255) char]_`*[*@3 title]_`=_NULL)&] -[s2;%% Executes `"Open file`" dialog. [%-*@3 title] can specify alternate -caption of dialog. If user selects a file to open, returns true.&] -[s3; &] -[s4; &] -[s5;:FileSel`:`:ExecuteSaveAs`(const char`*`): [@(0.0.255) bool]_[* ExecuteSaveAs]([@(0.0.255) c -onst]_[@(0.0.255) char]_`*[*@3 title]_`=_NULL)&] -[s2;%% Executes `"Save as`" dialog. [%-*@3 title] can specify alternate -caption of dialog. If user selects a destination file, returns -true.&] -[s3; &] -[s4; &] -[s5;:FileSel`:`:ExecuteSelectDir`(const char`*`): [@(0.0.255) bool]_[* ExecuteSelectDir]( -[@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 title]_`=_NULL)&] -[s2;%% Executes directory selection dialog. [%-*@3 title] can specify -alternate caption of dialog. If user selects a file to open, -returns true.&] -[s3; &] -[s4; &] -[s5;:FileSel`:`:Get`(`)const: [_^String^ String]_[* Get]()_[@(0.0.255) const]&] -[s2;%% Returns the path of the first chosen file. If there is none, -returns empty String.&] -[s3; &] -[s4; &] -[s5;:FileSel`:`:Set`(const String`&`): [@(0.0.255) void]_[* Set]([@(0.0.255) const]_[_^String^ S -tring][@(0.0.255) `&]_[*@3 s])&] -[s2;%% Sets [%-*@3 s] to be the chosen file: if it contains a full path, -file selector goes to the directory, filename is put into the -file name editor of file selector.&] -[s3; &] -[s4; &] -[s5;:FileSel`:`:Set`(const Vector``&`): [@(0.0.255) void]_[* Set]([@(0.0.255) cons -t]_[_^Vector^ Vector][@(0.0.255) <][_^String^ String][@(0.0.255) >`&]_[*@3 s])&] -[s2;%% Sets a group of files to be chosen.&] -[s3; &] -[s4; &] -[s5;:FileSel`:`:operator String`(`)const: [* operator_String]()_[@(0.0.255) const]&] -[s2;%% Same as Get().&] -[s3; &] -[s4; &] -[s5;:FileSel`:`:operator`=`(const String`&`): [@(0.0.255) void]_[* operator`=]([@(0.0.255) c -onst]_[_^String^ String][@(0.0.255) `&]_[*@3 s])&] -[s2;%% Same as Set([%-*@3 s]).&] -[s3; &] -[s4; &] -[s5;:FileSel`:`:operator`~`(`)const: [_^String^ String]_[* operator`~]()_[@(0.0.255) const]&] -[s2;%% Same as Get().&] -[s3; &] -[s4; &] -[s5;:FileSel`:`:operator`<`<`=`(const String`&`): [@(0.0.255) void]_[* operator<<`=]([@(0.0.255) c -onst]_[_^String^ String][@(0.0.255) `&]_[*@3 s])&] -[s2;%% Same as Set([%-*@3 s]).&] -[s3; &] -[s4; &] -[s5;:FileSel`:`:GetCount`(`)const: [@(0.0.255) int]_[* GetCount]()_[@(0.0.255) const]&] -[s2;%% Returns a count of chosen files.&] -[s3; &] -[s4; &] -[s5;:FileSel`:`:GetFile`(int`)const: [_^String^ String]_[* GetFile]([@(0.0.255) int]_[*@3 i]) -_[@(0.0.255) const]&] -[s2;%% Returns a chosen file [%-*@3 i].&] -[s3; &] -[s4; &] -[s5;:FileSel`:`:operator`[`]`(int`)const: [_^String^ String]_[* operator`[`]]([@(0.0.255) i -nt]_[*@3 i])_[@(0.0.255) const]&] -[s2;%% Same as GetFile([%-*@3 i]).&] -[s3; &] -[s4; &] -[s5;:FileSel`:`:ClearFiles`(`): [@(0.0.255) void]_[* ClearFiles]()&] -[s2;%% Clear the selection of files.&] -[s3; &] -[s4; &] -[s5;:FileSel`:`:GetReadOnly`(`)const: [@(0.0.255) bool]_[* GetReadOnly]()_[@(0.0.255) const -]&] -[s2;%% Returns the status of read`-only option. (Usually this option -is used to open files in read only mode).&] -[s3; &] -[s4; &] -[s5;:FileSel`:`:GetActiveDir`(`)const: [_^String^ String]_[* GetActiveDir]()_[@(0.0.255) co -nst]&] -[s2;%% Returns the active directory of file selector.&] -[s3; &] -[s4; &] -[s5;:FileSel`:`:GetActiveType`(`)const: [@(0.0.255) int]_[* GetActiveType]()_[@(0.0.255) co -nst]&] -[s2;%% Returns the active file type index of file selector.&] -[s3; &] -[s4; &] -[s5;:FileSel`:`:Filesystem`(FileSystemInfo`&`): [@(0.0.255) void]_[* Filesystem]([_^FileSystemInfo^ F -ileSystemInfo][@(0.0.255) `&]_[*@3 fsys])&] -[s2;%% Sets the file system to browse. Default is normal local file -system.&] -[s3; &] -[s4; &] -[s5;:FileSel`:`:GetFilesystem`(`)const: [_^FileSystemInfo^ FileSystemInfo][@(0.0.255) `&]_ -[* GetFilesystem]()_[@(0.0.255) const]&] -[s2;%% Returns the file system used in file selector.&] -[s3; &] -[s4; &] -[s5;:FileSel`:`:Type`(const char`*`,const char`*`): [_^FileSel^ FileSel][@(0.0.255) `&]_[* T -ype]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 name], [@(0.0.255) const]_[@(0.0.255) char -]_`*[*@3 ext])&] -[s2;%% Adds a file type displayed as [%-*@3 name]. [%-*@3 ext] contains -a set of file masks separated by spaces. Example: Type(`"Source -files`", `"`*.c `*.h`").&] -[s3; &] -[s4; &] -[s5;:FileSel`:`:Types`(const char`*`): [_^FileSel^ FileSel][@(0.0.255) `&]_[* Types]([@(0.0.255) c -onst]_[@(0.0.255) char]_`*[*@3 d])&] -[s2;%% Adds a number of file types using simple text format: `'`\n`' -is used to separate types, `'`\t`' is used to separate file type -description and file mask. If there is no `'`\t`', text is used -for both file description and the file mask.&] -[s2;%% Examples: Types(`"All files`\t`*.`*`\nText files`\t`*.txt`\nImage -files`\t`*.bmp `*.png `*.jpg `*.gif`")).&] -[s3;%% &] -[s4; &] -[s5;:FileSel`:`:AllFilesType`(`): [_^FileSel^ FileSel][@(0.0.255) `&]_[* AllFilesType]()&] -[s2;%% Same as Type(`"All files`", `"`*.`*`").&] -[s3; &] -[s4; &] -[s5;:FileSel`:`:ClearTypes`(`): [_^FileSel^ FileSel][@(0.0.255) `&]_[* ClearTypes]()&] -[s2;%% Removes all file types from FileSel.&] -[s3; &] -[s4; &] -[s5;:FileSel`:`:ActiveDir`(const String`&`): [_^FileSel^ FileSel][@(0.0.255) `&]_[* ActiveD -ir]([@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 d])&] -[s2;%% Sets the active directory of file selector (directory where -file selector starts).&] -[s3; &] -[s4; &] -[s5;:FileSel`:`:ActiveType`(int`): [_^FileSel^ FileSel][@(0.0.255) `&]_[* ActiveType]([@(0.0.255) i -nt]_[*@3 i])&] -[s2;%% Sets the active file type.&] -[s3; &] -[s4; &] -[s5;:FileSel`:`:PreSelect`(const String`&`): [_^FileSel^ FileSel][@(0.0.255) `&]_[* PreSele -ct]([@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 path])&] -[s2;%% Preselects the file [%-*@3 path].&] -[s3;%% &] -[s4; &] -[s5;:FileSel`:`:DefaultExt`(const char`*`): [_^FileSel^ FileSel][@(0.0.255) `&]_[* DefaultE -xt]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 ext])&] -[s2;%% Sets the file extension to add for `"Save as`" dialog if none -is specified.&] -[s3; &] -[s4; &] -[s5;:FileSel`:`:Multi`(bool`): [_^FileSel^ FileSel][@(0.0.255) `&]_[* Multi]([@(0.0.255) bool -]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2;%% In this mode, more than single file can be selected. Default -is false.&] -[s3; &] -[s4; &] -[s5;:FileSel`:`:ReadOnlyOption`(bool`): [_^FileSel^ FileSel][@(0.0.255) `&]_[* ReadOnlyOpti -on]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2;%% Makes `"Read only`" option visible. Default is false.&] -[s3; &] -[s4; &] -[s5;:FileSel`:`:MkDirOption`(bool`): [_^FileSel^ FileSel][@(0.0.255) `&]_[* MkDirOption]([@(0.0.255) b -ool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2;%% Makes `"Make directory`" button visible. Default is true.&] -[s3; &] -[s4; &] -[s5;:FileSel`:`:NoMkDirOption`(`): [_^FileSel^ FileSel][@(0.0.255) `&]_[* NoMkDirOption]()&] -[s2;%% Same as MkDirOption(false).&] -[s3; &] -[s4; &] -[s5;:FileSel`:`:BaseDir`(const char`*`): [_^FileSel^ FileSel][@(0.0.255) `&]_[* BaseDir]([@(0.0.255) c -onst]_[@(0.0.255) char]_`*[*@3 dir])&] -[s2;%% Sets [%-*@3 dir] to be the base directory. If used, files can -be selected only inside this base directory (or its subdirectories) -and selected file paths are relative to it.&] -[s3; &] -[s4; &] -[s5;:FileSel`:`:Asking`(bool`): [_^FileSel^ FileSel][@(0.0.255) `&]_[* Asking]([@(0.0.255) bo -ol]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2;%% If active, file selector asks before returning the path of -existing file in `"Save as`" dialog. Default is active.&] -[s3; &] -[s4; &] -[s5;:FileSel`:`:NoAsking`(`): [_^FileSel^ FileSel][@(0.0.255) `&]_[* NoAsking]()&] -[s2;%% Same as Asking(false).&] -[s3; &] -[s4; &] -[s5;:FileSel`:`:EditFileName`(bool`): [_^FileSel^ FileSel][@(0.0.255) `&]_[* EditFileName]( -[@(0.0.255) bool]_[*@3 b])&] -[s2;%% If active, user can type files into filename edit field. Default -is active.&] -[s3; &] -[s4; &] -[s5;:FileSel`:`:NoEditFileName`(`): [_^FileSel^ FileSel][@(0.0.255) `&]_[* NoEditFileName]( -)&] -[s2;%% Same as EditFileName(false).&] -[s3; &] -[s4; &] -[s5;:FileSel`:`:AppModal`(bool`): [_^FileSel^ FileSel][@(0.0.255) `&]_[* AppModal]([@(0.0.255) b -ool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s3; &] -[s4; &] -[s5;:FileSel`:`:NoAppModal`(`): [_^FileSel^ FileSel][@(0.0.255) `&]_[* NoAppModal]()&] -[s2;%% If active (default), dialog is run as application modal.&] -[s3; &] -[s4; &] -[s5;:FileSel`:`:Preview`(Ctrl`&`): [_^FileSel^ FileSel][@(0.0.255) `&]_[* Preview]([_^Ctrl^ C -trl][@(0.0.255) `&]_[*@3 ctrl])&] -[s2;%% Sets [%-*@3 ctrl ]to be provide a preview of currently selected -file. This widget is placed into FileSel and receives the path -of file via SetData to be previewed or Null if there is nothing -to preview.&] -[s3;%% &] -[s4; &] -[s5;:FileSel`:`:Preview`(const Display`&`): [_^FileSel^ FileSel][@(0.0.255) `&]_[* Preview]( -[@(0.0.255) const]_[_^Display^ Display][@(0.0.255) `&]_[*@3 d])&] -[s2;%% Sets [%-*@3 d] to be provide a preview of currently selected -file. This Display is by FileSel to show the preview, the Value -in Paint method is either the path of file or Null if there is -nothing to preview.&] -[s3;%% &] -[s4; &] -[s5;:FileSel`:`:ClearPlaces`(`): [_^FileSel^ FileSel][@(0.0.255) `&]_[* ClearPlaces]()&] -[s2;%% Empties the list of special folders (platform specific, usually -folders like Video, Pictures, Downloads are in the default list). -The list, if not empty, is displayed in the left part of dialog.&] -[s3; &] -[s4; &] -[s5;:FileSel`:`:AddPlace`(const String`&`,const Image`&`,const String`&`,const char`*`,int`): [_^FileSel^ F -ileSel][@(0.0.255) `&]_[* AddPlace]([@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 p -ath], [@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 m], [@(0.0.255) const]_[_^String^ S -tring][@(0.0.255) `&]_[*@3 name], [@(0.0.255) const]_[@(0.0.255) char`*]_[*@3 group]_`=_NUL -L, [@(0.0.255) int]_[*@3 row]_`=_`-[@3 1])&] -[s5;:FileSel`:`:AddPlace`(const String`&`,const String`&`,const char`*`,int`): [_^FileSel^ F -ileSel][@(0.0.255) `&]_[* AddPlace]([@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 p -ath], [@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 name], -[@(0.0.255) const]_[@(0.0.255) char`*]_[*@3 group]_`=_NULL, [@(0.0.255) int]_[*@3 row]_`=_`- -[@3 1])&] -[s5;:FileSel`:`:AddPlace`(const String`&`,const char`*`,int`): [_^FileSel^ FileSel][@(0.0.255) `& -]_[* AddPlace]([@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 path], -[@(0.0.255) const]_[@(0.0.255) char`*]_[*@3 group]_`=_NULL, [@(0.0.255) int]_[*@3 row]_`=_`- -[@3 1])&] -[s2;%% Adds a folder [%-*@3 path] to the list of special folders with -[%-*@3 name] and icon [%-*@3 m]. [%-*@3 group] and [%-*@3 row] must at -the moment be left to its default values (they are only used -internally). If [%-*@3 name] or icon [%-*@3 m] is not specified, -they are created based on [%-*@3 path].&] -[s3;%% &] -[s4; &] -[s5;:FileSel`:`:AddPlaceSeparator`(`): [_^FileSel^ FileSel][@(0.0.255) `&]_[* AddPlaceSepar -ator]()&] -[s2;%% Adds horizontal separator line to the list of special folders.&] -[s3; &] -[s4; &] -[s5;:FileSel`:`:AddStandardPlaces`(`): [_^FileSel^ FileSel][@(0.0.255) `&]_[* AddStandardPl -aces]()&] -[s2;%% Adds default special folders to the list. Called by FileSel -constructor.&] -[s3; &] +topic "FileSel"; +[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,0#27521748481378242620020725143825:desc] +[0 $$3,0#96390100711032703541132217272105:end] +[H6;0 $$4,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] +[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] +[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] +[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] +[b42;2 $$9,9#13035079074754324216151401829390:normal] +[{_} +[ {{10000@3 [s0;%% [*@(229)4 FileSel]]}}&] +[s3; &] +[s1;:FileSel`:`:class: [@(0.0.255) class]_[* FileSel]_:_[@(0.0.255) public]_[*@3 WithFileSelec +torLayout][@(0.0.255) <][_^TopWindow^ TopWindow][@(0.0.255) >]_&] +[s0; &] +[s2;%% +@@rawimage:2842&1871 +(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) +&] +[s2;%% &] +[s9;%% Dialog for selecting files or directories.&] +[s3; &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0;%% [* Public Method List]]}}&] +[s3;%% &] +[s5;:FileSel`:`:WhenIcon: [_^Callback3^ Callback3][@(0.0.255) ]_[* WhenIcon]&] +[s2;%% This callback can be used to alter icons for files. First +parameter designates directory, second is the filename. Client +code can alter Image passed as third parameter.&] +[s3; &] +[s4; &] +[s5;:FileSel`:`:WhenIconLazy: [@(0.0.255) void]_(`*[* WhenIconLazy])([@(0.0.255) const]_Str +ing[@(0.0.255) `&]_path, Image[@(0.0.255) `&]_result)&] +[s2;%% When not NULL, this function is called in separate thread +for additional resolving of file icon. Note that FileSel, when +closed/destroyed, does not wait for this function to finish, +so it should not rely on any data outside of function. Only available +when MT is active. &] +[s3; &] +[s4; &] +[s5;:FileSel`:`:Serialize`(Stream`&`): [@(0.0.255) void]_[* Serialize]([_^Stream^ Stream][@(0.0.255) `& +]_[*@3 s])&] +[s2;%% Serializes current settings of FileSel. That includes current +directory, currently selected file type, size of FileSel window, +LRU list of visited directories and `"Sort by`" switch state.&] +[s3; &] +[s4; &] +[s5;:FileSel`:`:ExecuteOpen`(const char`*`): [@(0.0.255) bool]_[* ExecuteOpen]([@(0.0.255) c +onst]_[@(0.0.255) char]_`*[*@3 title]_`=_NULL)&] +[s2;%% Executes `"Open file`" dialog. [%-*@3 title] can specify alternate +caption of dialog. If user selects a file to open, returns true.&] +[s3; &] +[s4; &] +[s5;:FileSel`:`:ExecuteSaveAs`(const char`*`): [@(0.0.255) bool]_[* ExecuteSaveAs]([@(0.0.255) c +onst]_[@(0.0.255) char]_`*[*@3 title]_`=_NULL)&] +[s2;%% Executes `"Save as`" dialog. [%-*@3 title] can specify alternate +caption of dialog. If user selects a destination file, returns +true.&] +[s3; &] +[s4; &] +[s5;:FileSel`:`:ExecuteSelectDir`(const char`*`): [@(0.0.255) bool]_[* ExecuteSelectDir]( +[@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 title]_`=_NULL)&] +[s2;%% Executes directory selection dialog. [%-*@3 title] can specify +alternate caption of dialog. If user selects a file to open, +returns true.&] +[s3; &] +[s4; &] +[s5;:FileSel`:`:Get`(`)const: [_^String^ String]_[* Get]()_[@(0.0.255) const]&] +[s2;%% Returns the path of the first chosen file. If there is none, +returns empty String.&] +[s3; &] +[s4; &] +[s5;:FileSel`:`:Set`(const String`&`): [@(0.0.255) void]_[* Set]([@(0.0.255) const]_[_^String^ S +tring][@(0.0.255) `&]_[*@3 s])&] +[s2;%% Sets [%-*@3 s] to be the chosen file: if it contains a full path, +file selector goes to the directory, filename is put into the +file name editor of file selector.&] +[s3; &] +[s4; &] +[s5;:FileSel`:`:Set`(const Vector``&`): [@(0.0.255) void]_[* Set]([@(0.0.255) cons +t]_[_^Vector^ Vector][@(0.0.255) <][_^String^ String][@(0.0.255) >`&]_[*@3 s])&] +[s2;%% Sets a group of files to be chosen.&] +[s3; &] +[s4; &] +[s5;:FileSel`:`:operator String`(`)const: [* operator_String]()_[@(0.0.255) const]&] +[s2;%% Same as Get().&] +[s3; &] +[s4; &] +[s5;:FileSel`:`:operator`=`(const String`&`): [@(0.0.255) void]_[* operator`=]([@(0.0.255) c +onst]_[_^String^ String][@(0.0.255) `&]_[*@3 s])&] +[s2;%% Same as Set([%-*@3 s]).&] +[s3; &] +[s4; &] +[s5;:FileSel`:`:operator`~`(`)const: [_^String^ String]_[* operator`~]()_[@(0.0.255) const]&] +[s2;%% Same as Get().&] +[s3; &] +[s4; &] +[s5;:FileSel`:`:operator`<`<`=`(const String`&`): [@(0.0.255) void]_[* operator<<`=]([@(0.0.255) c +onst]_[_^String^ String][@(0.0.255) `&]_[*@3 s])&] +[s2;%% Same as Set([%-*@3 s]).&] +[s3; &] +[s4; &] +[s5;:FileSel`:`:GetCount`(`)const: [@(0.0.255) int]_[* GetCount]()_[@(0.0.255) const]&] +[s2;%% Returns a count of chosen files.&] +[s3; &] +[s4; &] +[s5;:FileSel`:`:GetFile`(int`)const: [_^String^ String]_[* GetFile]([@(0.0.255) int]_[*@3 i]) +_[@(0.0.255) const]&] +[s2;%% Returns a chosen file [%-*@3 i].&] +[s3; &] +[s4; &] +[s5;:FileSel`:`:operator`[`]`(int`)const: [_^String^ String]_[* operator`[`]]([@(0.0.255) i +nt]_[*@3 i])_[@(0.0.255) const]&] +[s2;%% Same as GetFile([%-*@3 i]).&] +[s3; &] +[s4; &] +[s5;:FileSel`:`:ClearFiles`(`): [@(0.0.255) void]_[* ClearFiles]()&] +[s2;%% Clear the selection of files.&] +[s3; &] +[s4; &] +[s5;:FileSel`:`:GetReadOnly`(`)const: [@(0.0.255) bool]_[* GetReadOnly]()_[@(0.0.255) const +]&] +[s2;%% Returns the status of read`-only option. (Usually this option +is used to open files in read only mode).&] +[s3; &] +[s4; &] +[s5;:FileSel`:`:GetActiveDir`(`)const: [_^String^ String]_[* GetActiveDir]()_[@(0.0.255) co +nst]&] +[s2;%% Returns the active directory of file selector.&] +[s3; &] +[s4; &] +[s5;:FileSel`:`:GetActiveType`(`)const: [@(0.0.255) int]_[* GetActiveType]()_[@(0.0.255) co +nst]&] +[s2;%% Returns the active file type index of file selector.&] +[s3; &] +[s4; &] +[s5;:FileSel`:`:Filesystem`(FileSystemInfo`&`): [@(0.0.255) void]_[* Filesystem]([_^FileSystemInfo^ F +ileSystemInfo][@(0.0.255) `&]_[*@3 fsys])&] +[s2;%% Sets the file system to browse. Default is normal local file +system.&] +[s3; &] +[s4; &] +[s5;:FileSel`:`:GetFilesystem`(`)const: [_^FileSystemInfo^ FileSystemInfo][@(0.0.255) `&]_ +[* GetFilesystem]()_[@(0.0.255) const]&] +[s2;%% Returns the file system used in file selector.&] +[s3; &] +[s4; &] +[s5;:FileSel`:`:Type`(const char`*`,const char`*`): [_^FileSel^ FileSel][@(0.0.255) `&]_[* T +ype]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 name], [@(0.0.255) const]_[@(0.0.255) char +]_`*[*@3 ext])&] +[s2;%% Adds a file type displayed as [%-*@3 name]. [%-*@3 ext] contains +a set of file masks separated by spaces. Example: Type(`"Source +files`", `"`*.c `*.h`").&] +[s3; &] +[s4; &] +[s5;:FileSel`:`:Types`(const char`*`): [_^FileSel^ FileSel][@(0.0.255) `&]_[* Types]([@(0.0.255) c +onst]_[@(0.0.255) char]_`*[*@3 d])&] +[s2;%% Adds a number of file types using simple text format: `'`\n`' +is used to separate types, `'`\t`' is used to separate file type +description and file mask. If there is no `'`\t`', text is used +for both file description and the file mask.&] +[s2;%% Examples: Types(`"All files`\t`*.`*`\nText files`\t`*.txt`\nImage +files`\t`*.bmp `*.png `*.jpg `*.gif`")).&] +[s3;%% &] +[s4; &] +[s5;:FileSel`:`:AllFilesType`(`): [_^FileSel^ FileSel][@(0.0.255) `&]_[* AllFilesType]()&] +[s2;%% Same as Type(`"All files`", `"`*.`*`").&] +[s3; &] +[s4; &] +[s5;:FileSel`:`:ClearTypes`(`): [_^FileSel^ FileSel][@(0.0.255) `&]_[* ClearTypes]()&] +[s2;%% Removes all file types from FileSel.&] +[s3; &] +[s4; &] +[s5;:FileSel`:`:ActiveDir`(const String`&`): [_^FileSel^ FileSel][@(0.0.255) `&]_[* ActiveD +ir]([@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 d])&] +[s2;%% Sets the active directory of file selector (directory where +file selector starts).&] +[s3; &] +[s4; &] +[s5;:FileSel`:`:ActiveType`(int`): [_^FileSel^ FileSel][@(0.0.255) `&]_[* ActiveType]([@(0.0.255) i +nt]_[*@3 i])&] +[s2;%% Sets the active file type.&] +[s3; &] +[s4; &] +[s5;:FileSel`:`:PreSelect`(const String`&`): [_^FileSel^ FileSel][@(0.0.255) `&]_[* PreSele +ct]([@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 path])&] +[s2;%% Preselects the file [%-*@3 path].&] +[s3;%% &] +[s4; &] +[s5;:FileSel`:`:DefaultExt`(const char`*`): [_^FileSel^ FileSel][@(0.0.255) `&]_[* DefaultE +xt]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 ext])&] +[s2;%% Sets the file extension to add for `"Save as`" dialog if none +is specified.&] +[s3; &] +[s4; &] +[s5;:FileSel`:`:Multi`(bool`): [_^FileSel^ FileSel][@(0.0.255) `&]_[* Multi]([@(0.0.255) bool +]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2;%% In this mode, more than single file can be selected. Default +is false.&] +[s3; &] +[s4; &] +[s5;:FileSel`:`:ReadOnlyOption`(bool`): [_^FileSel^ FileSel][@(0.0.255) `&]_[* ReadOnlyOpti +on]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2;%% Makes `"Read only`" option visible. Default is false.&] +[s3; &] +[s4; &] +[s5;:FileSel`:`:MkDirOption`(bool`): [_^FileSel^ FileSel][@(0.0.255) `&]_[* MkDirOption]([@(0.0.255) b +ool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2;%% Makes `"Make directory`" button visible. Default is true.&] +[s3; &] +[s4; &] +[s5;:FileSel`:`:NoMkDirOption`(`): [_^FileSel^ FileSel][@(0.0.255) `&]_[* NoMkDirOption]()&] +[s2;%% Same as MkDirOption(false).&] +[s3; &] +[s4; &] +[s5;:FileSel`:`:BaseDir`(const char`*`): [_^FileSel^ FileSel][@(0.0.255) `&]_[* BaseDir]([@(0.0.255) c +onst]_[@(0.0.255) char]_`*[*@3 dir])&] +[s2;%% Sets [%-*@3 dir] to be the base directory. If used, files can +be selected only inside this base directory (or its subdirectories) +and selected file paths are relative to it.&] +[s3; &] +[s4; &] +[s5;:FileSel`:`:Asking`(bool`): [_^FileSel^ FileSel][@(0.0.255) `&]_[* Asking]([@(0.0.255) bo +ol]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2;%% If active, file selector asks before returning the path of +existing file in `"Save as`" dialog. Default is active.&] +[s3; &] +[s4; &] +[s5;:FileSel`:`:NoAsking`(`): [_^FileSel^ FileSel][@(0.0.255) `&]_[* NoAsking]()&] +[s2;%% Same as Asking(false).&] +[s3; &] +[s4; &] +[s5;:FileSel`:`:EditFileName`(bool`): [_^FileSel^ FileSel][@(0.0.255) `&]_[* EditFileName]( +[@(0.0.255) bool]_[*@3 b])&] +[s2;%% If active, user can type files into filename edit field. Default +is active.&] +[s3; &] +[s4; &] +[s5;:FileSel`:`:NoEditFileName`(`): [_^FileSel^ FileSel][@(0.0.255) `&]_[* NoEditFileName]( +)&] +[s2;%% Same as EditFileName(false).&] +[s3; &] +[s4; &] +[s5;:FileSel`:`:AppModal`(bool`): [_^FileSel^ FileSel][@(0.0.255) `&]_[* AppModal]([@(0.0.255) b +ool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s3; &] +[s4; &] +[s5;:FileSel`:`:NoAppModal`(`): [_^FileSel^ FileSel][@(0.0.255) `&]_[* NoAppModal]()&] +[s2;%% If active (default), dialog is run as application modal.&] +[s3; &] +[s4; &] +[s5;:FileSel`:`:Preview`(Ctrl`&`): [_^FileSel^ FileSel][@(0.0.255) `&]_[* Preview]([_^Ctrl^ C +trl][@(0.0.255) `&]_[*@3 ctrl])&] +[s2;%% Sets [%-*@3 ctrl ]to be provide a preview of currently selected +file. This widget is placed into FileSel and receives the path +of file via SetData to be previewed or Null if there is nothing +to preview.&] +[s3;%% &] +[s4; &] +[s5;:FileSel`:`:Preview`(const Display`&`): [_^FileSel^ FileSel][@(0.0.255) `&]_[* Preview]( +[@(0.0.255) const]_[_^Display^ Display][@(0.0.255) `&]_[*@3 d])&] +[s2;%% Sets [%-*@3 d] to be provide a preview of currently selected +file. This Display is by FileSel to show the preview, the Value +in Paint method is either the path of file or Null if there is +nothing to preview.&] +[s3;%% &] +[s4; &] +[s5;:FileSel`:`:ClearPlaces`(`): [_^FileSel^ FileSel][@(0.0.255) `&]_[* ClearPlaces]()&] +[s2;%% Empties the list of special folders (platform specific, usually +folders like Video, Pictures, Downloads are in the default list). +The list, if not empty, is displayed in the left part of dialog.&] +[s3; &] +[s4; &] +[s5;:FileSel`:`:AddPlace`(const String`&`,const Image`&`,const String`&`,const char`*`,int`): [_^FileSel^ F +ileSel][@(0.0.255) `&]_[* AddPlace]([@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 p +ath], [@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 m], [@(0.0.255) const]_[_^String^ S +tring][@(0.0.255) `&]_[*@3 name], [@(0.0.255) const]_[@(0.0.255) char`*]_[*@3 group]_`=_NUL +L, [@(0.0.255) int]_[*@3 row]_`=_`-[@3 1])&] +[s5;:FileSel`:`:AddPlace`(const String`&`,const String`&`,const char`*`,int`): [_^FileSel^ F +ileSel][@(0.0.255) `&]_[* AddPlace]([@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 p +ath], [@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 name], +[@(0.0.255) const]_[@(0.0.255) char`*]_[*@3 group]_`=_NULL, [@(0.0.255) int]_[*@3 row]_`=_`- +[@3 1])&] +[s5;:FileSel`:`:AddPlace`(const String`&`,const char`*`,int`): [_^FileSel^ FileSel][@(0.0.255) `& +]_[* AddPlace]([@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 path], +[@(0.0.255) const]_[@(0.0.255) char`*]_[*@3 group]_`=_NULL, [@(0.0.255) int]_[*@3 row]_`=_`- +[@3 1])&] +[s2;%% Adds a folder [%-*@3 path] to the list of special folders with +[%-*@3 name] and icon [%-*@3 m]. [%-*@3 group] and [%-*@3 row] must at +the moment be left to its default values (they are only used +internally). If [%-*@3 name] or icon [%-*@3 m] is not specified, +they are created based on [%-*@3 path].&] +[s3;%% &] +[s4; &] +[s5;:FileSel`:`:AddPlaceSeparator`(`): [_^FileSel^ FileSel][@(0.0.255) `&]_[* AddPlaceSepar +ator]()&] +[s2;%% Adds horizontal separator line to the list of special folders.&] +[s3; &] +[s4; &] +[s5;:FileSel`:`:AddStandardPlaces`(`): [_^FileSel^ FileSel][@(0.0.255) `&]_[* AddStandardPl +aces]()&] +[s2;%% Adds default special folders to the list. Called by FileSel +constructor.&] +[s3; &] [s0; ]] \ No newline at end of file diff --git a/uppsrc/CtrlLib/src.tpp/HeaderCtrl$en-us.tpp b/uppsrc/CtrlLib/src.tpp/HeaderCtrl_en-us.tpp similarity index 98% rename from uppsrc/CtrlLib/src.tpp/HeaderCtrl$en-us.tpp rename to uppsrc/CtrlLib/src.tpp/HeaderCtrl_en-us.tpp index 8993c9198..c5b7e3a16 100644 --- a/uppsrc/CtrlLib/src.tpp/HeaderCtrl$en-us.tpp +++ b/uppsrc/CtrlLib/src.tpp/HeaderCtrl_en-us.tpp @@ -1,424 +1,424 @@ -topic "HeaderCtrl"; -[2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;*@(64)2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,0#27521748481378242620020725143825:desc] -[a83;*R6 $$3,0#31310162474203024125188417583966:caption] -[l288;i1121;b17;O9;~~~.1408;2 $$4,0#10431211400427159095818037425705:param] -[i448;a25;kKO9;*@(64)2 $$5,0#37138531426314131252341829483370:item] -[*+117 $$6,6#14700283458701402223321329925657:header] -[{_}%EN-US -[s3;%- HeaderCtrl&] -[s0; &] -[s0; class_[* HeaderCtrl]&] -[s2; &] -[s2; -@@image:1350&150 -‚ƒØ€˜€€€ƒèÿ€€€€ø¯œí™Á°̌ř˜½˜€úÀÜÁ⤎ŒÀŠÈݬÎÔàÄîÒº›Ž“þë‰Ãšýêþþ—ƒÔñÁõœ€€üÙ -òŸÎ€Ôäðõ™——Ãêï“ÙžÓð„ð†ÚݑçöìøÖ¸òèÊŽÍþŠÏÍáåÛŠ—–Àî¦âûóÄ»’…·®ËºððÓ«û­î¼œíÞ© -ž›÷å±Ðå‚öåáœää°Š––ÏÐ…¾ò¨ÈŽ¬áˆ‹Þ•âֈ䢽ì†Ê¾¨èÇÔø÷´õ¬´Ÿ¤çð‰ó¹ü¼Î¨»áó请ȂÖÈžÅ»ä­ -Á³Â”­«ÄÊõÿÃÁ”•îŠùóÐ¥‡ò¶¢‡¦«ç°º¤ÛÒÁ¼ÌŠÄú®æÎå¶ò¨â½“ȡ⹬‰üú«íÌÉï™áŠ–•¢ƒøœÎöüžËÜ -¼á”½Ä­ö¤á å˜¨Ú¡Ë›’¥Í§­æÔðÎÉý­ÏÐÐÄӕޢܻò¸ÀŽðÊ–¹—¦¥¼Ü÷ѼßöâÇæ…Ø‹¹üܯ€˜‡Áåðö™€° -¤Ã¸—ѨË€ŽÑžŠ¹ÄùŨ©‡Ÿ°œÙ€¸ -&] -[s2; &] -[s0; [/ Derived from] Ctrl, [@(0.0.255) CtrlFrame]&] -[s0; &] -[s0; HeaderCtrl is used mainly for table headers. It can be set up -to a certain column structure (in the code terminology, the individual -header columns are called [/ tabs]) including the tabs`' visual -characteristics (tab title names, icons etc.) and behavioral -constraints (tab width limits, the ability to show / hide individual -tabs).&] -[s0; &] -[s0; The individual tab widths are defined by three basic properties: -the [/ logical tab width], its [/ minimum] and [/ maximum pixel width]. -The minimum and maximum tab width are final pixel values defining -constraints for physical (final) column widths. On the other -hand, the logical tab widths are given in arbitrary units, which -are multiplied by a certain scaling factor whenever the header -control is laid out to fit the view size. Therefore normally -their absolute magnitudes don`'t matter, just their ratios.&] -[s0; &] -[s0; The header control can operate in four different visual modes. -Each mode effectively defines how the logical relative tab widths -are fitted to the current view size:&] -[s0; &] -[s0;i150;O0; [* Proportional]: the tab widths are proportionally adjusted -with respect to preset width constraints to fill the current -view width;&] -[s0;i150;O0; [* ReduceLast]: every time a tab width is set and the total -tab width exceeds the view size, the following tab widths (tabs -to the right) are reduced in right`-to`-left order (beginning -with the rightmost tab) to fit the view size.&] -[s0;i150;O0; [* ReduceNext]: every time a tab width is set and the total -tab width exceeds the view size, the following tab widths (tabs -to the right) are reduced in left`-to`-right order (beginning -with the tab just after the tab being adjusted) to fit the view -size.&] -[s0;i150;O0; [* Absolute]: the tab widths are never modified automatically, -the logical header width can be smaller or greater than the actual -view size. Whenever the total tab width exceeds the view size, -the header can be scrolled to the left or right to pan its visible -portion within the parent view.&] -[s0; &] -[s0; From the programmer`'s point of view, the HeaderCtrl takes complete -control over the distribution of tabs and the user interface -needed to adjust them. The host control can use the header control -(typically during [/ Layout] or [/ Paint]) to obtain horizontal pixel -positions of the individual tab breaks and use them to position -and paint the column data.&] -[s0; &] -[s0; If Moving modifier is used, HeaderCtrl allows to reorder tabs -using drag `& drop operation. Client code can identify the order -using GetTabIndex method, which returns the `"original`" index -for the tab.&] -[s0; &] -[s0; The HeaderCtrl implements the [/ frame interface]; when attached -to a parent control using the [/ AddFrame] method, it positions -itself automatically at the top of the control rectangle (above -its view).&] -[s0; &] -[s0; In addition to the standard tab title functionality, the rectangular -areas corresponding to the individual tabs can act as pseudo`-buttons -invoking a certain functionality when clicked. Each header tab -has a [/ WhenAction] callback; when set to a non`-null value, the -header control starts to check for mouse clicks and executes -the callback whenever the corresponding tab is clicked. When -used to invoke popups, you can use the [/ GetTabRect] method to -determine the actual location of a certain header tab and align -the dropdown control with respect to the tab rectangle location.&] -[s0; &] -[s5;K%- [^`:`:Rect^ Rect]_[@0 GetTabRect]([@(0.0.255) int]_[@3 i])&] -[s2; Returns the bounding box of a certain tab (in coordinates relative -to the HeaderCtrl view). This can be used by controls using the -header (like ArrayCtrl) to determine column break locations or -by host applications for positioning dropdown controls (activated -upon clicking a tab) relative to the tab box within the header.&] -[s4; [*C@3 i]-|Tab index (zero based).&] -[s4; [*/ Return value]-|rectangular tab bounding box within the HeaderCtrl.&] -[s0;* &] -[s0; [* Hint:] to locate drop`-down controls (e.g. popup menus) relative -to the tab rectangle, you have to transform the returned rectangle -to screen coordinates. This can be done for example using the -following code snippet:&] -[s0; &] -[s0; [C -|Rect tab2`_scr`_rect `= tab.GetTabRect(2) `+ tab.GetScreenView().TopLeft();]&] -[s0;3 &] -[s5;:`:`:HeaderCtrl`:`:Tab`(int`)const: [@(0.0.255) const]_[^`:`:Column^ Column]`&_[@0 Tab]( -[@(0.0.255) int]_[@3 i][@0 )_const]&] -[s2; Returns the descriptive [* HeaderCtrl`::Column] structure of a -given header tab. This constant version can be used to retrieve -individual tab properties. For a thorough description of the -[* Column] structure, see below.&] -[s4; [*C@3 i]-|Tab index within the header (zero based).&] -[s4; [*/ Return value]-|a (constant) reference to the [* Column] structure -describing the tab.&] -[s0;3 &] -[s5;:`:`:HeaderCtrl`:`:Tab`(int`): [^`:`:Column^ Column][%- `&]_[@0 Tab]([@(0.0.255) int]_[@3 i -][@0 )]&] -[s2; Returns a (non`-constant) reference to the descriptive [* HeaderCtrl`::Column] -structure of a given header tab. This can be used to set and -retrieve individual tab properties (see below for a full description -of the [* Column] structure).&] -[s4; [*C@3 i]-|Tab index (zero based).&] -[s4; [*/ Return value]-|a non`-constant reference to the [* Column] structure -for the given tab.&] -[s0;3 &] -[s5;K%- [^`:`:HeaderCtrl`:`:Column^ Column]`&_[@0 Add]([@(0.0.255) const]_[@(0.0.255) char]_`* -[@3 text], [@(0.0.255) double]_[@3 ratio]_`=_[@3 0])&] -[s2; Adds a new tab after (to the right of) all existing header tabs. -The function returns a (non`-constant) reference to the [* HeaderCtrl`::Column] -structure which can be further used to set up additional tab -properties.&] -[s4; [*C@3 text]-|Tab (title) name.&] -[s4; [*C@3 ratio]-|Logical tab width.&] -[s4; [*/ Return value]-|a non`-constant reference to the [* Column] structure -describing the newly added tab.&] -[s0;3 &] -[s5;K%- [^`:`:HeaderCtrl`:`:Column^ Column]`&_[@0 Add]()&] -[s2; Adds a new tab after (to the right of) all existing header tabs. -This is identical to the above version with the [/ text] argument -set to an empty string and [/ ratio] set to 0.&] -[s4; [*/ Return value]-|a non`-constant reference to the [* Column] structure -describing the newly added tab.&] -[s0;3 &] -[s5;K%- [@(0.0.255) const]_[^`:`:HeaderCtrl`:`:Column^ Column]`&_[@0 operator`[`]]([@(0.0.255) i -nt]_[@3 i])_[@(0.0.255) const]&] -[s2; Returns a (constant) reference to a given header tab. This is -identical to the [/ const] version of the [* Tab] method.&] -[s4; [*C@3 i]-|Tab index (zero based).&] -[s4; [*/ Return value]-|a constant reference to the given header tab.&] -[s0;3 &] -[s5;K%- [@(0.0.255) int]_[@0 GetCount]()_[@(0.0.255) const]&] -[s2; Returns the current number of header tabs. Each [* Add] increases -this value by one and [* Reset] sets it to 0 (the initial value).&] -[s4; [*/ Return value]-|Number of tabs.&] -[s0;3 &] -[s5;K%- [@(0.0.255) void]_[@0 Reset]()&] -[s2; Resets the header tab to its initial state (removes all tabs).&] -[s0;3 &] -[s5;K%- [@(0.0.255) void]_[@0 ShowTab]([@(0.0.255) int]_[@3 i], [@(0.0.255) bool]_[@3 show]_`=_tr -ue)&] -[s2; Shows or hides a certain header tab.&] -[s4; [*C@3 i]-|tab index (zero based)&] -[s4; [*C@3 show]-|flag indicating whether the tab should be shown ([* true]) -or hidden ([* false]).&] -[s0;3 &] -[s5;K%- [@(0.0.255) void]_[@0 HideTab]([@(0.0.255) int]_[@3 i])&] -[s2; Hides a certain header tab. This is identical to [* ShowTab(i, -false)].&] -[s4; [*C@3 i]-|tab index (zero based)&] -[s0;3 &] -[s5;K%- [@(0.0.255) bool]_[@0 IsTabVisible]([@(0.0.255) int]_[@3 i])&] -[s2; Checks for visibility of a certain tab.&] -[s4; [*C@3 i]-|tab index (zero based).&] -[s4; [*/ Return value]-|[* false] `= hidden, [* true] `= shown.&] -[s0;3 &] -[s5;K%- [@(0.0.255) void]_[@0 SetTabRatio]([@(0.0.255) int]_[@3 i], [@(0.0.255) double]_[@3 ratio -])&] -[s2; Sets the logical tab width (ratio) of a given tab.&] -[s4; [*C@3 i]-|tab index&] -[s4; [*C@3 ratio]-|logical tab width.&] -[s0;3 &] -[s5;K%- [@(0.0.255) double]_[@0 GetTabRatio]([@(0.0.255) int]_[@3 i])_[@(0.0.255) const]&] -[s2; Retrieves the current logical width of a certain tab. The logical -tab width can be set using the [* SetTabRatio] method (or using -the [* SetRatio] method for an individual [* HeaderCtrl`::Column] -object) or by dragging the tab breaks using the mouse.&] -[s4; [*C@3 i]-|tab index (zero based)&] -[s4; [*/ Return value]-|current logical tab width&] -[s0;3 &] -[s5;K%- [@(0.0.255) void]_[@0 SetTabWidth]([@(0.0.255) int]_[@3 i], [@(0.0.255) int]_[@3 cx])&] -[s2; Sets the given header tab to a physical (pixel) size. This also -modifies the logical (relative) tab width accordingly.&] -[s4; [*C@3 i]-|tab index (zero based)&] -[s4; [*C@3 cx]-|tab pixel size&] -[s0;3 &] -[s5;K%- [@(0.0.255) int]_[@0 GetTabWidth]([@(0.0.255) int]_[@3 i])&] -[s2; Returns the physical (pixel) width of a given header tab. Remember -that (unless the HeaderCtrl is in the [* Scroll] mode) the physical -tab widths can change with the parent view size. Algorithms for -long`-term manipulation of tab sizes (typically serialization) -should always count on the logical tab widths.&] -[s4; [*C@3 i]-|tab index (zero based)&] -[s4; [*/ Return value]-|physical (pixel) tab width. Note that this function -isn`'t [/ const], because the header control uses a lazy algorithm -to lay out the header control, and during the call to [* GetTabWidth] -it may show that the tabs need to be newly laid out.&] -[s0;3 &] -[s5;K:`:`:HeaderCtrl`:`:SwapTabs`(int`,int`):%- [@(0.0.255) void]_[@0 SwapTabs]([@(0.0.255) i -nt]_[@3 first], [@(0.0.255) int]_[@3 second])&] -[s2; Swaps tabs [%-*@3 first] and [%-*@3 second].&] -[s0; &] -[s5;K:`:`:HeaderCtrl`:`:MoveTab`(int`,int`):%- [@(0.0.255) void]_[@0 MoveTab]([@(0.0.255) i -nt]_[@3 from], [@(0.0.255) int]_[@3 to])&] -[s2; Moves tab to another position.&] -[s0; &] -[s5;K:`:`:HeaderCtrl`:`:GetTabIndex`(int`):%- [@(0.0.255) int]_[@0 GetTabIndex]([@(0.0.255) i -nt]_[@3 i])&] -[s2; Returns `"original`" index of Tab.&] -[s0; &] -[s5;K:`:`:HeaderCtrl`:`:FindIndexTab`(int`):%- [@(0.0.255) int]_[@0 FindIndexTab]([@(0.0.255) i -nt]_[@3 ndx])&] -[s2; Finds a current position of tab with original index [%-*@3 ndx].&] -[s0; &] -[s5;K%- [@(0.0.255) void]_[@0 StartSplitDrag]([@(0.0.255) int]_[@3 s])&] -[s2; Starts the header tab drag `& drop for a given tab break.&] -[s4; [*C@3 s]-|break index (zero `= left side of tab 0).&] -[s0;3 &] -[s5;K%- [@(0.0.255) int]_[@0 GetSplit]([@(0.0.255) int]_[@3 x])&] -[s2; Locates the header tab break corresponding to a given [/ x] coordinate -(relative to the header control). This can be used by the parent -controls to check whether the mouse cursor hovers above a tab -break (e.g. [* ArrayCtrl] uses this function to check whether to -display the horizontal resizing cursor).&] -[s4; [*C@3 x]-|horizontal pixel coordinate (relative to the header control -bounding box).&] -[s4; [*/ Return value]-|Index of tab break (in the range `[0..GetCount()`]) -or `-1 when there is no tab break in the vicinity of a given -point.&] -[s0;3 &] -[s5;K%- [@(0.0.255) int]_[@0 GetScroll]()_[@(0.0.255) const]&] -[s2; [* Absolute] mode only: returns pixel offset defining the current -origin of the (potentially scrolled) header. For non`-scrolling -visual modes, this function always returns 0 (in non`-scrolling -modes the left side of first tab always aligns with the left -side of parent view).&] -[s4; [*/ Return value]-|Number of pixels by which the header control -is currently scrolled in the horizontal direction. The physical -[/ x] coordinate of a tab edge (relative to parent view) can be -calculated by subtracting this value from its logical coordinate -(relative to leftmost header edge).&] -[s0;3 &] -[s5;K%- [@(0.0.255) bool]_[@0 IsScroll]()_[@(0.0.255) const]&] -[s2; Checks whether the header control is currently in scrolling -mode (i.e., whether it is in the [* Absolute] visual mode and its -total tab width exceeds current view size). When [* IsScroll] returns -[* true], the [* GetScroll] method can be used to retrieve the current -horizontal scrollbar position.&] -[s4; [*/ Return value]-|[* true] `= scrolling header, [* false ]`= non`-scrolling -header.&] -[s0;3 &] -[s5;K%- [@(0.0.255) int]_[@0 GetHeight]()_[@(0.0.255) const]&] -[s2; Determines the pixel height of the header control. This is equal -to the maximum of all the individual tab heights (depending on -the tab title font and icon sizes).&] -[s4; [*/ Return value]-|HeaderCtrl pixel height.&] -[s0;3 &] -[s5;K%- [^`:`:HeaderCtrl^ HeaderCtrl]`&_[@0 Invisible]([@(0.0.255) bool]_[@3 inv])&] -[s2; When called with a [* true] argument, makes the header zero height -in frame mode (the tab placement routines still work but the -header itself remains hidden).&] -[s4; [*C@3 inv]-|[* true] `= hide the header, [* false] `= show it.&] -[s4; [*/ Return value]-|[* `*this]&] -[s0;3 &] -[s5;K%- [^`:`:HeaderCtrl^ HeaderCtrl]`&_[@0 Track]([@(0.0.255) bool]_[@3 `_track]_`=_true)&] -[s2; Sets whether the HeaderCtrl and its parent view contents should -be `'animated`' during repositioning the tab breaks using mouse -drag `& drop. When [* `_track] is set to [* true], the header and -its parents repaint is requested every time the mouse moves during -the drag `& drop. When set to [* false], the header and the parent -control get repainted only after the drag `& drop is finished. -It is wise to set this value depending on the complexity of the -data shown `'beneath`' the header (usually in an ArrayCtrl) and -on the expected target hardware because the track mode is much -more demanding with respect to computational time spent during -the necessary multiple repaints.&] -[s4; [*C@3 `_track]-|[* true] `= regenerate header and its parent dynamically -during drag `& drop, [* false] `= only after it`'s finished.&] -[s4; [*/ Return value]-|[* `*this]&] -[s0;3 &] -[s5;K%- [^`:`:HeaderCtrl^ HeaderCtrl]`&_[@0 NoTrack]()&] -[s2; Turns off track mode. This is identical to [* Track(false)].&] -[s4; [*/ Return value]-|[* `*this]&] -[s0;3 &] -[s5;K%- [^`:`:HeaderCtrl^ HeaderCtrl]`&_[@0 Proportional]()&] -[s2; Switches the HeaderCtrl to the [/ proportional] mode. In proportional -mode, the individual logical tab widths are always recalculated -to physical (pixel) widths by scaling them using a common multiplication -factor in order to fit the whole header into the view width.&] -[s4; [*/ Return value]-|[* `*this]&] -[s0;3 &] -[s5;K%- [^`:`:HeaderCtrl^ HeaderCtrl]`&_[@0 ReduceNext]()&] -[s2; Switches the HeaderCtrl to the [/ reduce next] mode. Every time -a tab width is set in this mode and the total tab width exceeds -the view size, the following tab widths (tabs to the right) are -reduced in left`-to`-right order (beginning with the tab just -after the tab being adjusted) to fit the view size.&] -[s4; [*/ Return value]-|[* `*this]&] -[s0;3 &] -[s5;K%- [^`:`:HeaderCtrl^ HeaderCtrl]`&_[@0 ReduceLast]()&] -[s2; Switches the HeaderCtrl to the [/ reduce last] mode. Every time -a tab width is set in this mode and the total tab width exceeds -the view size, the following tab widths (tabs to the right) are -reduced in right`-to`-left order (beginning with the rightmost -tab) to fit the view size.&] -[s4; [*/ Return value]-|[* `*this]&] -[s0;3 &] -[s5;K%- [^`:`:HeaderCtrl^ HeaderCtrl]`&_[@0 Absolute]()&] -[s2; Switches the HeaderCtrl to the [/ absolute] (scroll) mode. In -this mode the tab widths are never modified automatically, the -logical header width can be smaller or greater than the actual -view size. Whenever the total tab width exceeds the view size, -the header can be scrolled to the left or right to pan its visible -portion within the parent view.&] -[s4; [*/ Return value]-|[* `*this]&] -[s0;3 &] -[s5;K:`:`:HeaderCtrl`:`:Moving`(bool`):%- [^`:`:HeaderCtrl^ HeaderCtrl]`&_[@0 Moving]([@(0.0.255) b -ool]_[@3 b]_`=_true)&] -[s2; Activates mode when tabs can be rearranged by dragging them. -Default is inactive.&] -[s0;3 &] -[s0;3 &] -[s5;K%- static static_[@(0.0.255) int]_[@0 GetStdHeight]()&] -[s2; Returns the standard header control height (when there are no -icons and the standard font is used in all tabs).&] -[s4; [*/ Return value]-|&] -[s0;3 &] -[s5;K%- [^`:`:Callback^ Callback]_[@0 WhenLayout]&] -[s2; This callback is executed whenever the header control gets laid -out (whenever the tab positions and/or widths change).&] -[s0;3 &] -[s5;K%- [^`:`:Callback^ Callback]_[@0 WhenScroll]&] -[s2; This callback is executed whenever the header control gets scrolled -([/ absolute] mode only).&] -[s0;3 &] -[s5;K%- [^`:`:Callback^ Callback]_[@0 WhenScrollVisibility]&] -[s2; This callback is executes whenever its scrollbar appears or -disappears (whenever the return value of the [* IsScroll] method -changes).&] -[s0; &] -[s0; &] -[s0; [*+117 HeaderCtrl`::Column (nested class)]&] -[s2; &] -[s0;%- [%%/ Derived from][%% ]LabelBase&] -[s0; &] -[s0; The [* HeaderCtrl`::Column] structure represents an individual -header tab. HeaderCtrl methods for tab insertion and editation -typically return a reference to this [/ Column] class which can -be used afterwards to program the various tab properties.&] -[s0; &] -[s0; The set methods return a reference to [* `*this] ; this allows -multiple tab properties to be set using a single C`+`+ statement -with repeated use of the dot operator, e.g.:&] -[s0; &] -[s0; [C -|headerctrl.Add().Min(10).Max(20).Margin(3);]&] -[s0;3 &] -[s5;K%- [^`:`:HeaderCtrl`:`:Column^ Column]`&_[@0 Min]([@(0.0.255) int]_[@3 `_min])&] -[s2; Sets minimum tab pixel size. The default value is 0 (the tab -can be shrunk arbitrarily and can disappear altogether at a certain -moment).&] -[s4; [%-*C@3 `_min]-|Minimum tab width in pixels.&] -[s4; [*/ Return value]-|[* `*this]&] -[s0;3 &] -[s5;K%- [^`:`:HeaderCtrl`:`:Column^ Column]`&_[@0 Max]([@(0.0.255) int]_[@3 `_max])&] -[s2; Sets maximum tab pixel size. The default value is [/ INT`_MAX] -(unlimited).&] -[s4; [%-*C@3 `_max]-|Maximum tab width in pixels.&] -[s4; [*/ Return value]-|[* `*this]&] -[s0;3 &] -[s5;K%- [^`:`:HeaderCtrl`:`:Column^ Column]`&_[@0 MinMax]([@(0.0.255) int]_[@3 m], -[@(0.0.255) int]_[@3 n])&] -[s2; Sets both minimum and maximum tab pixel size at the same time. -This has the same effect as [* .Min(m).Max(n)].&] -[s4; [%-*C@3 m]-|Minimum tab width in pixels.&] -[s4; [%-*C@3 n]-|Maximum tab width in pixels.&] -[s4; [*/ Return value]-|[* `*this]&] -[s0;3 &] -[s5;K%- [^`:`:HeaderCtrl`:`:Column^ Column]`&_[@0 Fixed]([@(0.0.255) int]_[@3 f])&] -[s2; Sets both minimum and maximum tab pixel size to the same value, -effectively making the tab width constant. Equal to [* .MinMax(f, -f)].&] -[s4; [%-*C@3 f]-|Fixed tab width in pixels.&] -[s4; [*/ Return value]-|[* `*this]&] -[s0;3 &] -[s5;K%- [^`:`:HeaderCtrl`:`:Column^ Column]`&_[@0 SetRatio]([@(0.0.255) double]_[@3 ratio])&] -[s2; Sets logical (relative) tab width. The logical tab width (together -with logical widths of other tabs and the minimum / maximum width -constraints) is used to calculate the final pixel size of each -tab according to the current header visual mode.&] -[s4; [%-*C@3 ratio]-|relative tab width (a generic floating`-point value)&] -[s4; [*/ Return value]-|[* `*this]&] -[s0;3 &] -[s5;K%- [^`:`:HeaderCtrl`:`:Column^ Column]`&_[@0 SetMargin]([@(0.0.255) int]_[@3 m])&] -[s2; Sets horizontal tab margin size, the number of pixels to deflate -the tab rectangle horizontally to obtain the final `"column data`" -rectangle. In [/ ArrayCtrl], the tab margin areas are used to paint -the grid lines and the inverted selection rectangle outside of -the table cells.&] -[s4; [%-*C@3 m]-|Horizontal tab margin size in pixels.&] -[s4; [*/ Return value]-|[* `*this]&] -[s0;3 &] -[s5;K%- [@(0.0.255) int]_[@0 GetMargin]()_[@(0.0.255) const]&] -[s2; Returns current tab margin width in pixels.&] -[s4; [*/ Return value]-|[* `*this]&] -[s0;3 &] -[s5;K%- [^`:`:Callback^ Callback]_[@0 WhenAction]&] -[s2; The tab action callback. When set to a non`-null value, the -header control starts to check for mouse clicks within this tab -and calls this callback whenever the corresponding tab is clicked.&] -[s0; &] -[s5;K:`:`:HeaderCtrl`:`:Column`:`:WhenBar:%- [^`:`:Callback1^ Callback1]_[@0 WhenB -ar]&] -[s2; Provides am optional context menu for header tab. &] +topic "HeaderCtrl"; +[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;*@(64)2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,0#27521748481378242620020725143825:desc] +[a83;*R6 $$3,0#31310162474203024125188417583966:caption] +[l288;i1121;b17;O9;~~~.1408;2 $$4,0#10431211400427159095818037425705:param] +[i448;a25;kKO9;*@(64)2 $$5,0#37138531426314131252341829483370:item] +[*+117 $$6,6#14700283458701402223321329925657:header] +[{_}%EN-US +[s3;%- HeaderCtrl&] +[s0; &] +[s0; class_[* HeaderCtrl]&] +[s2; &] +[s2; +@@image:1350&150 +‚ƒØ€˜€€€ƒèÿ€€€€ø¯œí™Á°̌ř˜½˜€úÀÜÁ⤎ŒÀŠÈݬÎÔàÄîÒº›Ž“þë‰Ãšýêþþ—ƒÔñÁõœ€€üÙ +òŸÎ€Ôäðõ™——Ãêï“ÙžÓð„ð†ÚݑçöìøÖ¸òèÊŽÍþŠÏÍáåÛŠ—–Àî¦âûóÄ»’…·®ËºððÓ«û­î¼œíÞ© +ž›÷å±Ðå‚öåáœää°Š––ÏÐ…¾ò¨ÈŽ¬áˆ‹Þ•âֈ䢽ì†Ê¾¨èÇÔø÷´õ¬´Ÿ¤çð‰ó¹ü¼Î¨»áó请ȂÖÈžÅ»ä­ +Á³Â”­«ÄÊõÿÃÁ”•îŠùóÐ¥‡ò¶¢‡¦«ç°º¤ÛÒÁ¼ÌŠÄú®æÎå¶ò¨â½“ȡ⹬‰üú«íÌÉï™áŠ–•¢ƒøœÎöüžËÜ +¼á”½Ä­ö¤á å˜¨Ú¡Ë›’¥Í§­æÔðÎÉý­ÏÐÐÄӕޢܻò¸ÀŽðÊ–¹—¦¥¼Ü÷ѼßöâÇæ…Ø‹¹üܯ€˜‡Áåðö™€° +¤Ã¸—ѨË€ŽÑžŠ¹ÄùŨ©‡Ÿ°œÙ€¸ +&] +[s2; &] +[s0; [/ Derived from] Ctrl, [@(0.0.255) CtrlFrame]&] +[s0; &] +[s0; HeaderCtrl is used mainly for table headers. It can be set up +to a certain column structure (in the code terminology, the individual +header columns are called [/ tabs]) including the tabs`' visual +characteristics (tab title names, icons etc.) and behavioral +constraints (tab width limits, the ability to show / hide individual +tabs).&] +[s0; &] +[s0; The individual tab widths are defined by three basic properties: +the [/ logical tab width], its [/ minimum] and [/ maximum pixel width]. +The minimum and maximum tab width are final pixel values defining +constraints for physical (final) column widths. On the other +hand, the logical tab widths are given in arbitrary units, which +are multiplied by a certain scaling factor whenever the header +control is laid out to fit the view size. Therefore normally +their absolute magnitudes don`'t matter, just their ratios.&] +[s0; &] +[s0; The header control can operate in four different visual modes. +Each mode effectively defines how the logical relative tab widths +are fitted to the current view size:&] +[s0; &] +[s0;i150;O0; [* Proportional]: the tab widths are proportionally adjusted +with respect to preset width constraints to fill the current +view width;&] +[s0;i150;O0; [* ReduceLast]: every time a tab width is set and the total +tab width exceeds the view size, the following tab widths (tabs +to the right) are reduced in right`-to`-left order (beginning +with the rightmost tab) to fit the view size.&] +[s0;i150;O0; [* ReduceNext]: every time a tab width is set and the total +tab width exceeds the view size, the following tab widths (tabs +to the right) are reduced in left`-to`-right order (beginning +with the tab just after the tab being adjusted) to fit the view +size.&] +[s0;i150;O0; [* Absolute]: the tab widths are never modified automatically, +the logical header width can be smaller or greater than the actual +view size. Whenever the total tab width exceeds the view size, +the header can be scrolled to the left or right to pan its visible +portion within the parent view.&] +[s0; &] +[s0; From the programmer`'s point of view, the HeaderCtrl takes complete +control over the distribution of tabs and the user interface +needed to adjust them. The host control can use the header control +(typically during [/ Layout] or [/ Paint]) to obtain horizontal pixel +positions of the individual tab breaks and use them to position +and paint the column data.&] +[s0; &] +[s0; If Moving modifier is used, HeaderCtrl allows to reorder tabs +using drag `& drop operation. Client code can identify the order +using GetTabIndex method, which returns the `"original`" index +for the tab.&] +[s0; &] +[s0; The HeaderCtrl implements the [/ frame interface]; when attached +to a parent control using the [/ AddFrame] method, it positions +itself automatically at the top of the control rectangle (above +its view).&] +[s0; &] +[s0; In addition to the standard tab title functionality, the rectangular +areas corresponding to the individual tabs can act as pseudo`-buttons +invoking a certain functionality when clicked. Each header tab +has a [/ WhenAction] callback; when set to a non`-null value, the +header control starts to check for mouse clicks and executes +the callback whenever the corresponding tab is clicked. When +used to invoke popups, you can use the [/ GetTabRect] method to +determine the actual location of a certain header tab and align +the dropdown control with respect to the tab rectangle location.&] +[s0; &] +[s5;K%- [^`:`:Rect^ Rect]_[@0 GetTabRect]([@(0.0.255) int]_[@3 i])&] +[s2; Returns the bounding box of a certain tab (in coordinates relative +to the HeaderCtrl view). This can be used by controls using the +header (like ArrayCtrl) to determine column break locations or +by host applications for positioning dropdown controls (activated +upon clicking a tab) relative to the tab box within the header.&] +[s4; [*C@3 i]-|Tab index (zero based).&] +[s4; [*/ Return value]-|rectangular tab bounding box within the HeaderCtrl.&] +[s0;* &] +[s0; [* Hint:] to locate drop`-down controls (e.g. popup menus) relative +to the tab rectangle, you have to transform the returned rectangle +to screen coordinates. This can be done for example using the +following code snippet:&] +[s0; &] +[s0; [C -|Rect tab2`_scr`_rect `= tab.GetTabRect(2) `+ tab.GetScreenView().TopLeft();]&] +[s0;3 &] +[s5;:`:`:HeaderCtrl`:`:Tab`(int`)const: [@(0.0.255) const]_[^`:`:Column^ Column]`&_[@0 Tab]( +[@(0.0.255) int]_[@3 i][@0 )_const]&] +[s2; Returns the descriptive [* HeaderCtrl`::Column] structure of a +given header tab. This constant version can be used to retrieve +individual tab properties. For a thorough description of the +[* Column] structure, see below.&] +[s4; [*C@3 i]-|Tab index within the header (zero based).&] +[s4; [*/ Return value]-|a (constant) reference to the [* Column] structure +describing the tab.&] +[s0;3 &] +[s5;:`:`:HeaderCtrl`:`:Tab`(int`): [^`:`:Column^ Column][%- `&]_[@0 Tab]([@(0.0.255) int]_[@3 i +][@0 )]&] +[s2; Returns a (non`-constant) reference to the descriptive [* HeaderCtrl`::Column] +structure of a given header tab. This can be used to set and +retrieve individual tab properties (see below for a full description +of the [* Column] structure).&] +[s4; [*C@3 i]-|Tab index (zero based).&] +[s4; [*/ Return value]-|a non`-constant reference to the [* Column] structure +for the given tab.&] +[s0;3 &] +[s5;K%- [^`:`:HeaderCtrl`:`:Column^ Column]`&_[@0 Add]([@(0.0.255) const]_[@(0.0.255) char]_`* +[@3 text], [@(0.0.255) double]_[@3 ratio]_`=_[@3 0])&] +[s2; Adds a new tab after (to the right of) all existing header tabs. +The function returns a (non`-constant) reference to the [* HeaderCtrl`::Column] +structure which can be further used to set up additional tab +properties.&] +[s4; [*C@3 text]-|Tab (title) name.&] +[s4; [*C@3 ratio]-|Logical tab width.&] +[s4; [*/ Return value]-|a non`-constant reference to the [* Column] structure +describing the newly added tab.&] +[s0;3 &] +[s5;K%- [^`:`:HeaderCtrl`:`:Column^ Column]`&_[@0 Add]()&] +[s2; Adds a new tab after (to the right of) all existing header tabs. +This is identical to the above version with the [/ text] argument +set to an empty string and [/ ratio] set to 0.&] +[s4; [*/ Return value]-|a non`-constant reference to the [* Column] structure +describing the newly added tab.&] +[s0;3 &] +[s5;K%- [@(0.0.255) const]_[^`:`:HeaderCtrl`:`:Column^ Column]`&_[@0 operator`[`]]([@(0.0.255) i +nt]_[@3 i])_[@(0.0.255) const]&] +[s2; Returns a (constant) reference to a given header tab. This is +identical to the [/ const] version of the [* Tab] method.&] +[s4; [*C@3 i]-|Tab index (zero based).&] +[s4; [*/ Return value]-|a constant reference to the given header tab.&] +[s0;3 &] +[s5;K%- [@(0.0.255) int]_[@0 GetCount]()_[@(0.0.255) const]&] +[s2; Returns the current number of header tabs. Each [* Add] increases +this value by one and [* Reset] sets it to 0 (the initial value).&] +[s4; [*/ Return value]-|Number of tabs.&] +[s0;3 &] +[s5;K%- [@(0.0.255) void]_[@0 Reset]()&] +[s2; Resets the header tab to its initial state (removes all tabs).&] +[s0;3 &] +[s5;K%- [@(0.0.255) void]_[@0 ShowTab]([@(0.0.255) int]_[@3 i], [@(0.0.255) bool]_[@3 show]_`=_tr +ue)&] +[s2; Shows or hides a certain header tab.&] +[s4; [*C@3 i]-|tab index (zero based)&] +[s4; [*C@3 show]-|flag indicating whether the tab should be shown ([* true]) +or hidden ([* false]).&] +[s0;3 &] +[s5;K%- [@(0.0.255) void]_[@0 HideTab]([@(0.0.255) int]_[@3 i])&] +[s2; Hides a certain header tab. This is identical to [* ShowTab(i, +false)].&] +[s4; [*C@3 i]-|tab index (zero based)&] +[s0;3 &] +[s5;K%- [@(0.0.255) bool]_[@0 IsTabVisible]([@(0.0.255) int]_[@3 i])&] +[s2; Checks for visibility of a certain tab.&] +[s4; [*C@3 i]-|tab index (zero based).&] +[s4; [*/ Return value]-|[* false] `= hidden, [* true] `= shown.&] +[s0;3 &] +[s5;K%- [@(0.0.255) void]_[@0 SetTabRatio]([@(0.0.255) int]_[@3 i], [@(0.0.255) double]_[@3 ratio +])&] +[s2; Sets the logical tab width (ratio) of a given tab.&] +[s4; [*C@3 i]-|tab index&] +[s4; [*C@3 ratio]-|logical tab width.&] +[s0;3 &] +[s5;K%- [@(0.0.255) double]_[@0 GetTabRatio]([@(0.0.255) int]_[@3 i])_[@(0.0.255) const]&] +[s2; Retrieves the current logical width of a certain tab. The logical +tab width can be set using the [* SetTabRatio] method (or using +the [* SetRatio] method for an individual [* HeaderCtrl`::Column] +object) or by dragging the tab breaks using the mouse.&] +[s4; [*C@3 i]-|tab index (zero based)&] +[s4; [*/ Return value]-|current logical tab width&] +[s0;3 &] +[s5;K%- [@(0.0.255) void]_[@0 SetTabWidth]([@(0.0.255) int]_[@3 i], [@(0.0.255) int]_[@3 cx])&] +[s2; Sets the given header tab to a physical (pixel) size. This also +modifies the logical (relative) tab width accordingly.&] +[s4; [*C@3 i]-|tab index (zero based)&] +[s4; [*C@3 cx]-|tab pixel size&] +[s0;3 &] +[s5;K%- [@(0.0.255) int]_[@0 GetTabWidth]([@(0.0.255) int]_[@3 i])&] +[s2; Returns the physical (pixel) width of a given header tab. Remember +that (unless the HeaderCtrl is in the [* Scroll] mode) the physical +tab widths can change with the parent view size. Algorithms for +long`-term manipulation of tab sizes (typically serialization) +should always count on the logical tab widths.&] +[s4; [*C@3 i]-|tab index (zero based)&] +[s4; [*/ Return value]-|physical (pixel) tab width. Note that this function +isn`'t [/ const], because the header control uses a lazy algorithm +to lay out the header control, and during the call to [* GetTabWidth] +it may show that the tabs need to be newly laid out.&] +[s0;3 &] +[s5;K:`:`:HeaderCtrl`:`:SwapTabs`(int`,int`):%- [@(0.0.255) void]_[@0 SwapTabs]([@(0.0.255) i +nt]_[@3 first], [@(0.0.255) int]_[@3 second])&] +[s2; Swaps tabs [%-*@3 first] and [%-*@3 second].&] +[s0; &] +[s5;K:`:`:HeaderCtrl`:`:MoveTab`(int`,int`):%- [@(0.0.255) void]_[@0 MoveTab]([@(0.0.255) i +nt]_[@3 from], [@(0.0.255) int]_[@3 to])&] +[s2; Moves tab to another position.&] +[s0; &] +[s5;K:`:`:HeaderCtrl`:`:GetTabIndex`(int`):%- [@(0.0.255) int]_[@0 GetTabIndex]([@(0.0.255) i +nt]_[@3 i])&] +[s2; Returns `"original`" index of Tab.&] +[s0; &] +[s5;K:`:`:HeaderCtrl`:`:FindIndexTab`(int`):%- [@(0.0.255) int]_[@0 FindIndexTab]([@(0.0.255) i +nt]_[@3 ndx])&] +[s2; Finds a current position of tab with original index [%-*@3 ndx].&] +[s0; &] +[s5;K%- [@(0.0.255) void]_[@0 StartSplitDrag]([@(0.0.255) int]_[@3 s])&] +[s2; Starts the header tab drag `& drop for a given tab break.&] +[s4; [*C@3 s]-|break index (zero `= left side of tab 0).&] +[s0;3 &] +[s5;K%- [@(0.0.255) int]_[@0 GetSplit]([@(0.0.255) int]_[@3 x])&] +[s2; Locates the header tab break corresponding to a given [/ x] coordinate +(relative to the header control). This can be used by the parent +controls to check whether the mouse cursor hovers above a tab +break (e.g. [* ArrayCtrl] uses this function to check whether to +display the horizontal resizing cursor).&] +[s4; [*C@3 x]-|horizontal pixel coordinate (relative to the header control +bounding box).&] +[s4; [*/ Return value]-|Index of tab break (in the range `[0..GetCount()`]) +or `-1 when there is no tab break in the vicinity of a given +point.&] +[s0;3 &] +[s5;K%- [@(0.0.255) int]_[@0 GetScroll]()_[@(0.0.255) const]&] +[s2; [* Absolute] mode only: returns pixel offset defining the current +origin of the (potentially scrolled) header. For non`-scrolling +visual modes, this function always returns 0 (in non`-scrolling +modes the left side of first tab always aligns with the left +side of parent view).&] +[s4; [*/ Return value]-|Number of pixels by which the header control +is currently scrolled in the horizontal direction. The physical +[/ x] coordinate of a tab edge (relative to parent view) can be +calculated by subtracting this value from its logical coordinate +(relative to leftmost header edge).&] +[s0;3 &] +[s5;K%- [@(0.0.255) bool]_[@0 IsScroll]()_[@(0.0.255) const]&] +[s2; Checks whether the header control is currently in scrolling +mode (i.e., whether it is in the [* Absolute] visual mode and its +total tab width exceeds current view size). When [* IsScroll] returns +[* true], the [* GetScroll] method can be used to retrieve the current +horizontal scrollbar position.&] +[s4; [*/ Return value]-|[* true] `= scrolling header, [* false ]`= non`-scrolling +header.&] +[s0;3 &] +[s5;K%- [@(0.0.255) int]_[@0 GetHeight]()_[@(0.0.255) const]&] +[s2; Determines the pixel height of the header control. This is equal +to the maximum of all the individual tab heights (depending on +the tab title font and icon sizes).&] +[s4; [*/ Return value]-|HeaderCtrl pixel height.&] +[s0;3 &] +[s5;K%- [^`:`:HeaderCtrl^ HeaderCtrl]`&_[@0 Invisible]([@(0.0.255) bool]_[@3 inv])&] +[s2; When called with a [* true] argument, makes the header zero height +in frame mode (the tab placement routines still work but the +header itself remains hidden).&] +[s4; [*C@3 inv]-|[* true] `= hide the header, [* false] `= show it.&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;K%- [^`:`:HeaderCtrl^ HeaderCtrl]`&_[@0 Track]([@(0.0.255) bool]_[@3 `_track]_`=_true)&] +[s2; Sets whether the HeaderCtrl and its parent view contents should +be `'animated`' during repositioning the tab breaks using mouse +drag `& drop. When [* `_track] is set to [* true], the header and +its parents repaint is requested every time the mouse moves during +the drag `& drop. When set to [* false], the header and the parent +control get repainted only after the drag `& drop is finished. +It is wise to set this value depending on the complexity of the +data shown `'beneath`' the header (usually in an ArrayCtrl) and +on the expected target hardware because the track mode is much +more demanding with respect to computational time spent during +the necessary multiple repaints.&] +[s4; [*C@3 `_track]-|[* true] `= regenerate header and its parent dynamically +during drag `& drop, [* false] `= only after it`'s finished.&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;K%- [^`:`:HeaderCtrl^ HeaderCtrl]`&_[@0 NoTrack]()&] +[s2; Turns off track mode. This is identical to [* Track(false)].&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;K%- [^`:`:HeaderCtrl^ HeaderCtrl]`&_[@0 Proportional]()&] +[s2; Switches the HeaderCtrl to the [/ proportional] mode. In proportional +mode, the individual logical tab widths are always recalculated +to physical (pixel) widths by scaling them using a common multiplication +factor in order to fit the whole header into the view width.&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;K%- [^`:`:HeaderCtrl^ HeaderCtrl]`&_[@0 ReduceNext]()&] +[s2; Switches the HeaderCtrl to the [/ reduce next] mode. Every time +a tab width is set in this mode and the total tab width exceeds +the view size, the following tab widths (tabs to the right) are +reduced in left`-to`-right order (beginning with the tab just +after the tab being adjusted) to fit the view size.&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;K%- [^`:`:HeaderCtrl^ HeaderCtrl]`&_[@0 ReduceLast]()&] +[s2; Switches the HeaderCtrl to the [/ reduce last] mode. Every time +a tab width is set in this mode and the total tab width exceeds +the view size, the following tab widths (tabs to the right) are +reduced in right`-to`-left order (beginning with the rightmost +tab) to fit the view size.&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;K%- [^`:`:HeaderCtrl^ HeaderCtrl]`&_[@0 Absolute]()&] +[s2; Switches the HeaderCtrl to the [/ absolute] (scroll) mode. In +this mode the tab widths are never modified automatically, the +logical header width can be smaller or greater than the actual +view size. Whenever the total tab width exceeds the view size, +the header can be scrolled to the left or right to pan its visible +portion within the parent view.&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;K:`:`:HeaderCtrl`:`:Moving`(bool`):%- [^`:`:HeaderCtrl^ HeaderCtrl]`&_[@0 Moving]([@(0.0.255) b +ool]_[@3 b]_`=_true)&] +[s2; Activates mode when tabs can be rearranged by dragging them. +Default is inactive.&] +[s0;3 &] +[s0;3 &] +[s5;K%- static static_[@(0.0.255) int]_[@0 GetStdHeight]()&] +[s2; Returns the standard header control height (when there are no +icons and the standard font is used in all tabs).&] +[s4; [*/ Return value]-|&] +[s0;3 &] +[s5;K%- [^`:`:Callback^ Callback]_[@0 WhenLayout]&] +[s2; This callback is executed whenever the header control gets laid +out (whenever the tab positions and/or widths change).&] +[s0;3 &] +[s5;K%- [^`:`:Callback^ Callback]_[@0 WhenScroll]&] +[s2; This callback is executed whenever the header control gets scrolled +([/ absolute] mode only).&] +[s0;3 &] +[s5;K%- [^`:`:Callback^ Callback]_[@0 WhenScrollVisibility]&] +[s2; This callback is executes whenever its scrollbar appears or +disappears (whenever the return value of the [* IsScroll] method +changes).&] +[s0; &] +[s0; &] +[s0; [*+117 HeaderCtrl`::Column (nested class)]&] +[s2; &] +[s0;%- [%%/ Derived from][%% ]LabelBase&] +[s0; &] +[s0; The [* HeaderCtrl`::Column] structure represents an individual +header tab. HeaderCtrl methods for tab insertion and editation +typically return a reference to this [/ Column] class which can +be used afterwards to program the various tab properties.&] +[s0; &] +[s0; The set methods return a reference to [* `*this] ; this allows +multiple tab properties to be set using a single C`+`+ statement +with repeated use of the dot operator, e.g.:&] +[s0; &] +[s0; [C -|headerctrl.Add().Min(10).Max(20).Margin(3);]&] +[s0;3 &] +[s5;K%- [^`:`:HeaderCtrl`:`:Column^ Column]`&_[@0 Min]([@(0.0.255) int]_[@3 `_min])&] +[s2; Sets minimum tab pixel size. The default value is 0 (the tab +can be shrunk arbitrarily and can disappear altogether at a certain +moment).&] +[s4; [%-*C@3 `_min]-|Minimum tab width in pixels.&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;K%- [^`:`:HeaderCtrl`:`:Column^ Column]`&_[@0 Max]([@(0.0.255) int]_[@3 `_max])&] +[s2; Sets maximum tab pixel size. The default value is [/ INT`_MAX] +(unlimited).&] +[s4; [%-*C@3 `_max]-|Maximum tab width in pixels.&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;K%- [^`:`:HeaderCtrl`:`:Column^ Column]`&_[@0 MinMax]([@(0.0.255) int]_[@3 m], +[@(0.0.255) int]_[@3 n])&] +[s2; Sets both minimum and maximum tab pixel size at the same time. +This has the same effect as [* .Min(m).Max(n)].&] +[s4; [%-*C@3 m]-|Minimum tab width in pixels.&] +[s4; [%-*C@3 n]-|Maximum tab width in pixels.&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;K%- [^`:`:HeaderCtrl`:`:Column^ Column]`&_[@0 Fixed]([@(0.0.255) int]_[@3 f])&] +[s2; Sets both minimum and maximum tab pixel size to the same value, +effectively making the tab width constant. Equal to [* .MinMax(f, +f)].&] +[s4; [%-*C@3 f]-|Fixed tab width in pixels.&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;K%- [^`:`:HeaderCtrl`:`:Column^ Column]`&_[@0 SetRatio]([@(0.0.255) double]_[@3 ratio])&] +[s2; Sets logical (relative) tab width. The logical tab width (together +with logical widths of other tabs and the minimum / maximum width +constraints) is used to calculate the final pixel size of each +tab according to the current header visual mode.&] +[s4; [%-*C@3 ratio]-|relative tab width (a generic floating`-point value)&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;K%- [^`:`:HeaderCtrl`:`:Column^ Column]`&_[@0 SetMargin]([@(0.0.255) int]_[@3 m])&] +[s2; Sets horizontal tab margin size, the number of pixels to deflate +the tab rectangle horizontally to obtain the final `"column data`" +rectangle. In [/ ArrayCtrl], the tab margin areas are used to paint +the grid lines and the inverted selection rectangle outside of +the table cells.&] +[s4; [%-*C@3 m]-|Horizontal tab margin size in pixels.&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;K%- [@(0.0.255) int]_[@0 GetMargin]()_[@(0.0.255) const]&] +[s2; Returns current tab margin width in pixels.&] +[s4; [*/ Return value]-|[* `*this]&] +[s0;3 &] +[s5;K%- [^`:`:Callback^ Callback]_[@0 WhenAction]&] +[s2; The tab action callback. When set to a non`-null value, the +header control starts to check for mouse clicks within this tab +and calls this callback whenever the corresponding tab is clicked.&] +[s0; &] +[s5;K:`:`:HeaderCtrl`:`:Column`:`:WhenBar:%- [^`:`:Callback1^ Callback1]_[@0 WhenB +ar]&] +[s2; Provides am optional context menu for header tab. &] [s0; ] \ No newline at end of file diff --git a/uppsrc/CtrlLib/src.tpp/IdCtrls$en-us.tpp b/uppsrc/CtrlLib/src.tpp/IdCtrls_en-us.tpp similarity index 100% rename from uppsrc/CtrlLib/src.tpp/IdCtrls$en-us.tpp rename to uppsrc/CtrlLib/src.tpp/IdCtrls_en-us.tpp diff --git a/uppsrc/CtrlLib/src.tpp/InformativeDialogs$en-us.tpp b/uppsrc/CtrlLib/src.tpp/InformativeDialogs_en-us.tpp similarity index 100% rename from uppsrc/CtrlLib/src.tpp/InformativeDialogs$en-us.tpp rename to uppsrc/CtrlLib/src.tpp/InformativeDialogs_en-us.tpp diff --git a/uppsrc/CtrlLib/src.tpp/LabelBase$en-us.tpp b/uppsrc/CtrlLib/src.tpp/LabelBase_en-us.tpp similarity index 97% rename from uppsrc/CtrlLib/src.tpp/LabelBase$en-us.tpp rename to uppsrc/CtrlLib/src.tpp/LabelBase_en-us.tpp index 507cdfbaf..314fabb33 100644 --- a/uppsrc/CtrlLib/src.tpp/LabelBase$en-us.tpp +++ b/uppsrc/CtrlLib/src.tpp/LabelBase_en-us.tpp @@ -1,409 +1,409 @@ -topic "LabelBase - basic label routines"; -[2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,0#27521748481378242620020725143825:desc] -[0 $$3,0#96390100711032703541132217272105:end] -[H6;0 $$4,0#05600065144404261032431302351956:begin] -[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] -[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] -[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] -[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] -[b42;2 $$9,9#13035079074754324216151401829390:normal] -[{_}%EN-US -[s0; [*+150 Label routines]&] -[s3; &] -[s0; LabelBase.h contains functions and simple helper classes used -to implement Ctrls with text, images and accelerator keys.&] -[s0; Generally, format of text used by LabelBase facilities is either -simple multi`-line or [^topic`:`/`/RichText`/srcdoc`/QTF`$en`-us^ QTF]:&] -[s0;i150;O2; If first character of text is `'`\1`', text is QTF (starting -with next character).&] -[s0;i150;O2; If first character is NOT `'`\1`', text is simple multi`-line -text with `'`\n`' used as line separator.&] -[s0; In both cases, `'`&`' or `'`\b`' are used as access`-key flags. -If `'`&`' should be the part of text, it must be escaped as `"`&`&`". -This format is formally named `"SmartText`".&] -[s0; Note also that U`+`+ normally distributes access`-keys automatically. -Providing access`-key is thus usually unnecessary.&] -[s3; &] -[s0; &] -[s5;:DeAmp`(const char`*`):%- [_^String^ String]_[* DeAmp]([@(0.0.255) const]_[@(0.0.255) cha -r]_`*[*@3 s])&] -[s2; This routine escapes all occurrences of `'`&`' character in -source string with `"`&`&`" string to avoid using it as access`-key -flag.&] -[s7; [%-*C@3 s]-|Input string.&] -[s7; [*/ Return value]-|Escaped string.&] -[s3; &] -[s4;%- &] -[s5;:GetSmartTextSize`(const char`*`,Font`,int`):%- [_^Size^ Size]_[* GetSmartTextSize]([@(0.0.255) c -onst]_[@(0.0.255) char]_`*[*@3 text], [_^Font^ Font]_[*@3 font]_`=_StdFont(), -[@(0.0.255) int]_[*@3 cx]_`=_INT`_MAX)&] -[s2; Returns the minimal size of SmartText. If text is multi`-paragraph -QTF text, width of text is the width of widest paragraph without -doing any line breaks (paragraphs are formatted for infinite -width).&] -[s7; [%-*C@3 w]-|Draw.&] -[s7; [%-*C@3 text]-|SmartText string.&] -[s7; [%-*C@3 font]-|Font for non`-QTF text.&] -[s7; [*/ Return value]-|Size of SmartText.&] -[s3; &] -[s4;%- &] -[s5;:GetSmartTextHeight`(const char`*`,int`,Font`):%- [@(0.0.255) int]_[* GetSmartTextHei -ght]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 s], [@(0.0.255) int]_[*@3 cx], -[_^Font^ Font]_[*@3 font]_`=_StdFont())&] -[s2; Returns the height of given SmartText for given width. QTF paragraphs -are formatted for this width.&] -[s7; [%-*C@3 w]-|Draw.&] -[s7; [%-*C@3 s]-|SmartText string.&] -[s7; [%-*C@3 cx]-|Required width.&] -[s7; [%-*C@3 font]-|Font for non`-QTF text.&] -[s7; [*/ Return value]-|Height of SmartText.&] -[s3; &] -[s4;%- &] -[s5;:DrawSmartText`(Draw`&`,int`,int`,int`,const char`*`,Font`,Color`,int`):%- [@(0.0.255) v -oid]_[* DrawSmartText]([_^Draw^ Draw][@(0.0.255) `&]_[*@3 w], [@(0.0.255) int]_[*@3 x], -[@(0.0.255) int]_[*@3 y], [@(0.0.255) int]_[*@3 cx], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 t -ext], [_^Font^ Font]_[*@3 font]_`=_StdFont(), [_^Color^ Color]_[*@3 ink]_`=_DefaultInk, -[@(0.0.255) int]_[*@3 accesskey]_`=_[@3 0])&] -[s2; Paints SmartText to target Draw.&] -[s7; [%-*C@3 w]-|Draw.&] -[s7; [%-*C@3 x, y]-|Position.&] -[s7; [%-*C@3 cx]-|Required width.&] -[s7; [%-*C@3 text]-|SmartText.&] -[s7; [%-*C@3 font]-|Font for non`-QTF SmartText.&] -[s7; [%-*C@3 ink]-|Text color for non`-QTF SmartText.&] -[s7; [%-*C@3 accesskey]-|Access`-key `- first corresponding character -will be painted with underline.&] -[s3; &] -[s4;%- &] -[s5;:ExtractAccessKey`(const char`*`,String`&`):%- [_^byte^ byte]_[* ExtractAccessKey]([@(0.0.255) c -onst]_[@(0.0.255) char]_`*[*@3 s], [_^String^ String][@(0.0.255) `&]_[*@3 label])&] -[s2; Scans input string for access`-key.&] -[s7; [%-*C@3 s]-|Input string.&] -[s7; [%-*C@3 label]-|Output string `- with access`-key removed.&] -[s7; [*/ Return value]-|Access`-key.&] -[s3; &] -[s4;%- &] -[s5;:CompareAccessKey`(byte`,dword`):%- [@(0.0.255) bool]_[* CompareAccessKey]([_^byte^ byt -e]_[*@3 accesskey], [_^dword^ dword]_[*@3 key])&] -[s2; Compares access key to U`+`+ event key value as received by -Key virtual method.&] -[s7; [%-*C@3 accesskey]-|Access`-key.&] -[s7; [%-*C@3 key]-|U`+`+ event key value.&] -[s7; [*/ Return value]-|True if values match.&] -[s3; &] -[s4;%- &] -[s5;:ChooseAccessKey`(const char`*`,dword`):%- [_^byte^ byte]_[* ChooseAccessKey]([@(0.0.255) c -onst]_[@(0.0.255) char]_`*[*@3 s], [_^dword^ dword]_[*@3 used])&] -[s2; Scans input string for suitable access`-key.&] -[s7; [%-*C@3 s]-|Input string.&] -[s7; [%-*C@3 used]-|Bit`-set of already used access`-keys. Bit`-mask -of specific access`-key is defined by [^topic`:`/`/CtrlCore`/src`/Ctrl`$en`-us`#`:`:Ctrl`:`:AccessKeyBit`(byte`)^ C -trl`::AccessKeyBit] class method.&] -[s7; [*/ Return value]-|Access`-key or 0 if no suitable access`-key -found.&] -[s3; &] -[s0; &] -[s0; &] -[s0;%- &] -[ {{10000@3 [s0; [*@(229)4 DrawLabel]]}}&] -[s3; &] -[s1;:DrawLabel`:`:struct:%- [@(0.0.255)3 struct][3 _][*3 DrawLabel]&] -[s9; This structure in fact just encapsulates generic label painting -routine that otherwise would have way too much parameters.&] -[s3; &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] -[s3;%- &] -[s5;:DrawLabel`:`:DrawLabel`(`):%- [* DrawLabel]()&] -[s2; Default constructor. Default values are documented in attributes -descriptions.&] -[s3; &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] -[s3;%- &] -[s5;:DrawLabel`:`:GetSize`(int`)const:%- [_^Size^ Size]_[* GetSize]([@(0.0.255) int]_[*@3 txt -cx]_`=_INT`_MAX)_[@(0.0.255) const]&] -[s2; Returns the size of label based on current set of attributes. -[%-*@3 txtcx] specifies the maximum width of text.&] -[s3; &] -[s4;%- &] -[s5;:DrawLabel`:`:Paint`(Draw`&`,const Rect`&`,bool`)const:%- [_^Size^ Size]_[* Paint]([_^Draw^ D -raw][@(0.0.255) `&]_[*@3 w], [@(0.0.255) const]_[_^Rect^ Rect][@(0.0.255) `&]_[*@3 r], -[@(0.0.255) bool]_[*@3 visibleaccesskey]_`=_[@(0.0.255) true])_[@(0.0.255) const]&] -[s2; Paints the label in given rectangle.&] -[s7; [%-*C@3 w]-|Draw.&] -[s7; [%-*C@3 r]-|Rectangle.&] -[s7; [%-*C@3 visibleacckey]-|Access`-keys should be graphically highlighted -(underlined).&] -[s7; [*/ Return value]-|Size of label.&] -[s3; &] -[s4;%- &] -[s5;:DrawLabel`:`:Paint`(Draw`&`,int`,int`,int`,int`,bool`)const:%- [_^Size^ Size]_[* Pai -nt]([_^Draw^ Draw][@(0.0.255) `&]_[*@3 w], [@(0.0.255) int]_[*@3 x], [@(0.0.255) int]_[*@3 y], -[@(0.0.255) int]_[*@3 cx], [@(0.0.255) int]_[*@3 cy], [@(0.0.255) bool]_[*@3 visibleaccesskey -]_`=_[@(0.0.255) true])_[@(0.0.255) const]&] -[s2; Paints the label in given rectangle.&] -[s7; [%-*C@3 w]-|Draw.&] -[s7; [%-*C@3 x, y, cx, cy]-|Position and size of rectangle.&] -[s7; [%-*C@3 visibleacckey]-|Access`-keys should be graphically highlighted -(underlined).&] -[s7; [*/ Return value]-|Size of label.&] -[s3; &] -[s4;%- &] -[s5;:DrawLabel`:`:push:%- [@(0.0.255) bool]_[* push]&] -[s2; Label should be painted as `"pushed`" (means paint offset one -pixel right and down). Default is false.&] -[s3; &] -[s4;%- &] -[s5;:DrawLabel`:`:focus:%- [@(0.0.255) bool]_[* focus]&] -[s2; Label should be painted as `"with input focus`" (light blue -rectangle is drawn around label). Default is false.&] -[s3; &] -[s4;%- &] -[s5;:DrawLabel`:`:disabled:%- [@(0.0.255) bool]_[* disabled]&] -[s2; Label should be painted as `"disable`" (affects the way how -images and text are painted, disabled mean they are gray).&] -[s3; &] -[s4;%- &] -[s5;:DrawLabel`:`:paintrect:%- [_^PaintRect^ PaintRect]_[* paintrect]&] -[s2; This paintrect is painted behind the label text. If label text -is empty, size of text area is determined as paintrect.GetSize().&] -[s3; &] -[s4;%- &] -[s5;:DrawLabel`:`:limg:%- [_^Image^ Image]_[* limg]&] -[s2; Left image.&] -[s3; &] -[s4;%- &] -[s5;:DrawLabel`:`:lcolor:%- [_^Color^ Color]_[* lcolor]&] -[s2; Color of left monochromatic image. Null means that the image -is color.&] -[s3; &] -[s4;%- &] -[s5;:DrawLabel`:`:lspc:%- [@(0.0.255) int]_[* lspc]&] -[s2; Space between left image and text. If Null, image is placed -at left edge of Label.&] -[s3; &] -[s4;%- &] -[s5;:DrawLabel`:`:text:%- [_^String^ String]_[* text]&] -[s2; Text of label.&] -[s3; &] -[s4;%- &] -[s5;:DrawLabel`:`:font:%- [_^Font^ Font]_[* font]&] -[s2; Font used to paint non`-QTF text.&] -[s3; &] -[s4;%- &] -[s5;:DrawLabel`:`:ink:%- [_^Color^ Color]_[* ink]&] -[s2; Color used to paint non`-QTF text.&] -[s3; &] -[s4;%- &] -[s5;:DrawLabel`:`:rimg:%- [_^Image^ Image]_[* rimg]&] -[s2; Right image.&] -[s3; &] -[s4;%- &] -[s5;:DrawLabel`:`:rcolor:%- [_^Color^ Color]_[* rcolor]&] -[s2; Color of monochromatic right image. Null means that the image -is color.&] -[s3; &] -[s4;%- &] -[s5;:DrawLabel`:`:rspc:%- [@(0.0.255) int]_[* rspc]&] -[s2; Space between the right image and text. If Null, image is placed -at the right size of Label.&] -[s3; &] -[s4;%- &] -[s5;:DrawLabel`:`:align:%- [@(0.0.255) int]_[* align]&] -[s2; Horizontal alignment. Can be ALIGN`_LEFT, ALIGN`_RIGHT or ALIGN`_CENTER.&] -[s3; &] -[s4;%- &] -[s5;:DrawLabel`:`:valign:%- [@(0.0.255) int]_[* valign]&] -[s2; Vertical alignment. Can be ALIGN`_TOP, ALIGN`_BOTTOM or ALIGN`_CENTER.&] -[s3; &] -[s4;%- &] -[s5;:DrawLabel`:`:nowrap:%- [@(0.0.255) bool]_[* nowrap]&] -[s2; When true (default false), now text wrapping is performed.&] -[s3;%- &] -[s4;%- &] -[s5;:DrawLabel`:`:accesskey:%- [@(0.0.255) int]_[* accesskey]&] -[s2; Access`-key.&] -[s3; &] -[s0; &] -[s0;3 &] -[s0;%- &] -[ {{10000@3 [s0; [*@(229)4 LabelBase]]}}&] -[s3; &] -[s1;:LabelBase`:`:class:%- [@(0.0.255)3 class][3 _][*3 LabelBase]&] -[s9; This class encapsulates basic DrawLabel struct into form suitable -to play a role of base class of GUI elements.&] -[s3; &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Public Method List]]}}&] -[s3;%- &] -[s5;:LabelBase`:`:LabelUpdate`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* LabelUpdate]( -)&] -[s2; This virtual method is called each time when any of attributes -changes.&] -[s3; &] -[s4;%- &] -[s5;:LabelBase`:`:SetLeftImage`(const Image`&`,int`):%- [_^LabelBase^ LabelBase][@(0.0.255) `& -]_[* SetLeftImage]([@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 bmp1], -[@(0.0.255) int]_[*@3 spc]_`=_[@3 0])&] -[s2; Sets the left image.&] -[s7; [%-*C@3 bmp1]-|Image.&] -[s7; [%-*C@3 spc]-|Space between left image and text. If Null, image -is placed at left size of Label.&] -[s7; [*/ Return value]-|`*this for chaining.&] -[s3; &] -[s4;%- &] -[s5;:LabelBase`:`:SetPaintRect`(const PaintRect`&`):%- [_^LabelBase^ LabelBase][@(0.0.255) `& -]_[* SetPaintRect]([@(0.0.255) const]_[_^PaintRect^ PaintRect][@(0.0.255) `&]_[*@3 pr])&] -[s2; Sets PaintRect to be drawn behind or instead of label text.&] -[s7; [%-*C@3 pr]-|PaintRect&] -[s7; [*/ Return value]-|`*this for chaining.&] -[s3; &] -[s4;%- &] -[s5;:LabelBase`:`:SetText`(const char`*`):%- [_^LabelBase^ LabelBase][@(0.0.255) `&]_[* Set -Text]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text])&] -[s2; Sets text of the label.&] -[s7; [%-*C@3 text]-|Text.&] -[s7; [*/ Return value]-|`*this for chaining.&] -[s3; &] -[s4;%- &] -[s5;:LabelBase`:`:SetFont`(Font`):%- [_^LabelBase^ LabelBase][@(0.0.255) `&]_[* SetFont]([_^Font^ F -ont]_[*@3 font])&] -[s2; Sets font of non`-QTF text.&] -[s7; [%-*C@3 font]-|Font.&] -[s7; [*/ Return value]-|`*this for chaining.&] -[s3; &] -[s4;%- &] -[s5;:LabelBase`:`:SetInk`(Color`):%- [_^LabelBase^ LabelBase][@(0.0.255) `&]_[* SetInk]([_^Color^ C -olor]_[*@3 color])&] -[s2; Sets the color of non`-QTF text .&] -[s7; [%-*C@3 color]-|Color.&] -[s7; [*/ Return value]-|`*this for chaining.&] -[s3; &] -[s4;%- &] -[s5;:LabelBase`:`:SetRightImage`(const Image`&`,int`):%- [_^LabelBase^ LabelBase][@(0.0.255) `& -]_[* SetRightImage]([@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 bmp2], -[@(0.0.255) int]_[*@3 spc]_`=_[@3 0])&] -[s2; Sets the right image.&] -[s7; [%-*C@3 bmp2]-|Image.&] -[s7; [%-*C@3 spc]-|Space between left image and text. If Null, image -is placed at left size of Label.&] -[s7; [*/ Return value]-|`*this for chaining.&] -[s3; &] -[s4;%- &] -[s5;:LabelBase`:`:SetAlign`(int`):%- [_^LabelBase^ LabelBase][@(0.0.255) `&]_[* SetAlign]([@(0.0.255) i -nt]_[*@3 align])&] -[s2; Sets horizontal alignment.&] -[s7; [%-*C@3 align]-|One of ALIGN`_LEFT, ALIGN`_RIGHT or ALIGN`_CENTER.&] -[s7; [*/ Return value]-|`*this for chaining.&] -[s3; &] -[s4;%- &] -[s5;:LabelBase`:`:AlignLeft`(`):%- [_^LabelBase^ LabelBase][@(0.0.255) `&]_[* AlignLeft]()&] -[s2; Same as SetAlign(ALIGN`_LEFT).&] -[s3;%- &] -[s4;%- &] -[s5;:LabelBase`:`:AlignCenter`(`):%- [_^LabelBase^ LabelBase][@(0.0.255) `&]_[* AlignCenter -]()&] -[s2; Same as SetAlign(ALIGN`_CENTER).&] -[s3;%- &] -[s4;%- &] -[s5;:LabelBase`:`:AlignRight`(`):%- [_^LabelBase^ LabelBase][@(0.0.255) `&]_[* AlignRight]( -)&] -[s2; Same as SetAlign(ALIGN`_RIGHT).&] -[s3;%- &] -[s4;%- &] -[s5;:LabelBase`:`:SetVAlign`(int`):%- [_^LabelBase^ LabelBase][@(0.0.255) `&]_[* SetVAlign]( -[@(0.0.255) int]_[*@3 align])&] -[s2; Sets vertical alignment.&] -[s7; [%-*C@3 align]-|One of ALIGN`_TOP, ALIGN`_BOTTOM or ALIGN`_CENTER.&] -[s7; [*/ Return value]-|`*this for chaining.&] -[s5; &] -[s4;%- &] -[s5;:LabelBase`:`:AlignTop`(`):%- [_^LabelBase^ LabelBase][@(0.0.255) `&]_[* AlignTop]()&] -[s2; Same as SetVAlign(ALIGN`_TOP).&] -[s3;%- &] -[s4;%- &] -[s5;:LabelBase`:`:AlignVCenter`(`):%- [_^LabelBase^ LabelBase][@(0.0.255) `&]_[* AlignVCent -er]()&] -[s2; Same as SetVAlign(ALIGN`_CENTER).&] -[s3;%- &] -[s4;%- &] -[s5;:LabelBase`:`:AlignBottom`(`):%- [_^LabelBase^ LabelBase][@(0.0.255) `&]_[* AlignBottom -]()&] -[s2; Same as SetVAlign(ALIGN`_BOTTOM).&] -[s3;%- &] -[s4;%- &] -[s5;:LabelBase`:`:NoWrap`(bool`):%- [_^LabelBase^ LabelBase][@(0.0.255) `&]_[* NoWrap]([@(0.0.255) b -ool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2; When active (default false), now text wrapping is performed.&] -[s3; &] -[s4;%- &] -[s5;:LabelBase`:`:SetImage`(const Image`&`,int`):%- [_^LabelBase^ LabelBase][@(0.0.255) `& -]_[* SetImage]([@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 bmp], -[@(0.0.255) int]_[*@3 spc]_`=_[@3 0])&] -[s2; Same as SetLeftImage(bmp, spc).&] -[s3; &] -[s4;%- &] -[s5;:LabelBase`:`:GetAlign`(`)const:%- [@(0.0.255) int]_[* GetAlign]()_[@(0.0.255) const]&] -[s7; [*/ Return value]-|Current horizontal alignment.&] -[s3; &] -[s4;%- &] -[s5;:LabelBase`:`:GetVAlign`(`)const:%- [@(0.0.255) int]_[* GetVAlign]()_[@(0.0.255) const]&] -[s7; [*/ Return value]-|Current vertical alignment.&] -[s3; &] -[s4;%- &] -[s5;:LabelBase`:`:GetPaintRect`(`)const:%- [_^PaintRect^ PaintRect]_[* GetPaintRect]()_[@(0.0.255) c -onst]&] -[s7; [*/ Return value]-|Current PaintRect.&] -[s3; &] -[s4;%- &] -[s5;:LabelBase`:`:GetText`(`)const:%- [_^String^ String]_[* GetText]()_[@(0.0.255) const]&] -[s7; [*/ Return value]-|Current label text.&] -[s3; &] -[s4;%- &] -[s5;:LabelBase`:`:GetFont`(`)const:%- [_^Font^ Font]_[* GetFont]()_[@(0.0.255) const]&] -[s7; [*/ Return value]-|Current font.&] -[s3; &] -[s4;%- &] -[s5;:LabelBase`:`:GetInk`(`)const:%- [_^Color^ Color]_[* GetInk]()_[@(0.0.255) const]&] -[s7; [*/ Return value]-|Current text color.&] -[s3; &] -[s4;%- &] -[s5;:LabelBase`:`:PaintLabel`(Draw`&`,const Rect`&`,bool`,bool`,bool`,bool`):%- [_^Size^ S -ize]_[* PaintLabel]([_^Draw^ Draw][@(0.0.255) `&]_[*@3 w], [@(0.0.255) const]_[_^Rect^ Rect][@(0.0.255) `& -]_[*@3 r], [@(0.0.255) bool]_[*@3 disabled]_`=_[@(0.0.255) false], [@(0.0.255) bool]_[*@3 pus -h]_`=_[@(0.0.255) false], [@(0.0.255) bool]_[*@3 focus]_`=_[@(0.0.255) false], -[@(0.0.255) bool]_[*@3 vak]_`=_[@(0.0.255) true])&] -[s2; Paints label in the given rectangle.&] -[s7; [%-*C@3 w]-|Draw.&] -[s7; [%-*C@3 r]-|Rectangle.&] -[s7; [%-*C@3 disabled]-|Disable flag.&] -[s7; [%-*C@3 push]-|Push flag.&] -[s7; [%-*C@3 focus]-|Focus flag.&] -[s7; [%-*C@3 vak]-|If true, accelerator should be highlighted.&] -[s7; [*/ Return value]-|Size of label.&] -[s3; &] -[s4;%- &] -[s5;:LabelBase`:`:PaintLabel`(Draw`&`,int`,int`,int`,int`,bool`,bool`,bool`,bool`):%- [_^Size^ S -ize]_[* PaintLabel]([_^Draw^ Draw][@(0.0.255) `&]_[*@3 w], [@(0.0.255) int]_[*@3 x], -[@(0.0.255) int]_[*@3 y], [@(0.0.255) int]_[*@3 cx], [@(0.0.255) int]_[*@3 cy], -[@(0.0.255) bool]_[*@3 disabled]_`=_[@(0.0.255) false], [@(0.0.255) bool]_[*@3 push]_`=_[@(0.0.255) f -alse], [@(0.0.255) bool]_[*@3 focus]_`=_[@(0.0.255) false], [@(0.0.255) bool]_[*@3 vak]_`=_ -[@(0.0.255) true])&] -[s2; Paints label in the given rectangle.&] -[s7; [%-*C@3 w]-|Draw.&] -[s7; [%-*C@3 x, y, cx, cy]-|Rectangle.&] -[s7; [%-*C@3 disabled]-|Disable flag.&] -[s7; [%-*C@3 push]-|Push flag.&] -[s7; [%-*C@3 focus]-|Focus flag.&] -[s7; [%-*C@3 vak]-|If true, accelerator should be highlighted.&] -[s7; [*/ Return value]-|Size of label.&] -[s3; &] -[s4;%- &] -[s5;:LabelBase`:`:GetLabelSize`(`)const:%- [_^Size^ Size]_[* GetLabelSize]()_[@(0.0.255) co -nst]&] -[s7; [*/ Return value]-|Size of label.&] -[s3; &] +topic "LabelBase - basic label routines"; +[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,0#27521748481378242620020725143825:desc] +[0 $$3,0#96390100711032703541132217272105:end] +[H6;0 $$4,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] +[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] +[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] +[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] +[b42;2 $$9,9#13035079074754324216151401829390:normal] +[{_}%EN-US +[s0; [*+150 Label routines]&] +[s3; &] +[s0; LabelBase.h contains functions and simple helper classes used +to implement Ctrls with text, images and accelerator keys.&] +[s0; Generally, format of text used by LabelBase facilities is either +simple multi`-line or [^topic`:`/`/RichText`/srcdoc`/QTF`$en`-us^ QTF]:&] +[s0;i150;O2; If first character of text is `'`\1`', text is QTF (starting +with next character).&] +[s0;i150;O2; If first character is NOT `'`\1`', text is simple multi`-line +text with `'`\n`' used as line separator.&] +[s0; In both cases, `'`&`' or `'`\b`' are used as access`-key flags. +If `'`&`' should be the part of text, it must be escaped as `"`&`&`". +This format is formally named `"SmartText`".&] +[s0; Note also that U`+`+ normally distributes access`-keys automatically. +Providing access`-key is thus usually unnecessary.&] +[s3; &] +[s0; &] +[s5;:DeAmp`(const char`*`):%- [_^String^ String]_[* DeAmp]([@(0.0.255) const]_[@(0.0.255) cha +r]_`*[*@3 s])&] +[s2; This routine escapes all occurrences of `'`&`' character in +source string with `"`&`&`" string to avoid using it as access`-key +flag.&] +[s7; [%-*C@3 s]-|Input string.&] +[s7; [*/ Return value]-|Escaped string.&] +[s3; &] +[s4;%- &] +[s5;:GetSmartTextSize`(const char`*`,Font`,int`):%- [_^Size^ Size]_[* GetSmartTextSize]([@(0.0.255) c +onst]_[@(0.0.255) char]_`*[*@3 text], [_^Font^ Font]_[*@3 font]_`=_StdFont(), +[@(0.0.255) int]_[*@3 cx]_`=_INT`_MAX)&] +[s2; Returns the minimal size of SmartText. If text is multi`-paragraph +QTF text, width of text is the width of widest paragraph without +doing any line breaks (paragraphs are formatted for infinite +width).&] +[s7; [%-*C@3 w]-|Draw.&] +[s7; [%-*C@3 text]-|SmartText string.&] +[s7; [%-*C@3 font]-|Font for non`-QTF text.&] +[s7; [*/ Return value]-|Size of SmartText.&] +[s3; &] +[s4;%- &] +[s5;:GetSmartTextHeight`(const char`*`,int`,Font`):%- [@(0.0.255) int]_[* GetSmartTextHei +ght]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 s], [@(0.0.255) int]_[*@3 cx], +[_^Font^ Font]_[*@3 font]_`=_StdFont())&] +[s2; Returns the height of given SmartText for given width. QTF paragraphs +are formatted for this width.&] +[s7; [%-*C@3 w]-|Draw.&] +[s7; [%-*C@3 s]-|SmartText string.&] +[s7; [%-*C@3 cx]-|Required width.&] +[s7; [%-*C@3 font]-|Font for non`-QTF text.&] +[s7; [*/ Return value]-|Height of SmartText.&] +[s3; &] +[s4;%- &] +[s5;:DrawSmartText`(Draw`&`,int`,int`,int`,const char`*`,Font`,Color`,int`):%- [@(0.0.255) v +oid]_[* DrawSmartText]([_^Draw^ Draw][@(0.0.255) `&]_[*@3 w], [@(0.0.255) int]_[*@3 x], +[@(0.0.255) int]_[*@3 y], [@(0.0.255) int]_[*@3 cx], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 t +ext], [_^Font^ Font]_[*@3 font]_`=_StdFont(), [_^Color^ Color]_[*@3 ink]_`=_DefaultInk, +[@(0.0.255) int]_[*@3 accesskey]_`=_[@3 0])&] +[s2; Paints SmartText to target Draw.&] +[s7; [%-*C@3 w]-|Draw.&] +[s7; [%-*C@3 x, y]-|Position.&] +[s7; [%-*C@3 cx]-|Required width.&] +[s7; [%-*C@3 text]-|SmartText.&] +[s7; [%-*C@3 font]-|Font for non`-QTF SmartText.&] +[s7; [%-*C@3 ink]-|Text color for non`-QTF SmartText.&] +[s7; [%-*C@3 accesskey]-|Access`-key `- first corresponding character +will be painted with underline.&] +[s3; &] +[s4;%- &] +[s5;:ExtractAccessKey`(const char`*`,String`&`):%- [_^byte^ byte]_[* ExtractAccessKey]([@(0.0.255) c +onst]_[@(0.0.255) char]_`*[*@3 s], [_^String^ String][@(0.0.255) `&]_[*@3 label])&] +[s2; Scans input string for access`-key.&] +[s7; [%-*C@3 s]-|Input string.&] +[s7; [%-*C@3 label]-|Output string `- with access`-key removed.&] +[s7; [*/ Return value]-|Access`-key.&] +[s3; &] +[s4;%- &] +[s5;:CompareAccessKey`(byte`,dword`):%- [@(0.0.255) bool]_[* CompareAccessKey]([_^byte^ byt +e]_[*@3 accesskey], [_^dword^ dword]_[*@3 key])&] +[s2; Compares access key to U`+`+ event key value as received by +Key virtual method.&] +[s7; [%-*C@3 accesskey]-|Access`-key.&] +[s7; [%-*C@3 key]-|U`+`+ event key value.&] +[s7; [*/ Return value]-|True if values match.&] +[s3; &] +[s4;%- &] +[s5;:ChooseAccessKey`(const char`*`,dword`):%- [_^byte^ byte]_[* ChooseAccessKey]([@(0.0.255) c +onst]_[@(0.0.255) char]_`*[*@3 s], [_^dword^ dword]_[*@3 used])&] +[s2; Scans input string for suitable access`-key.&] +[s7; [%-*C@3 s]-|Input string.&] +[s7; [%-*C@3 used]-|Bit`-set of already used access`-keys. Bit`-mask +of specific access`-key is defined by [^topic`:`/`/CtrlCore`/src`/Ctrl`$en`-us`#`:`:Ctrl`:`:AccessKeyBit`(byte`)^ C +trl`::AccessKeyBit] class method.&] +[s7; [*/ Return value]-|Access`-key or 0 if no suitable access`-key +found.&] +[s3; &] +[s0; &] +[s0; &] +[s0;%- &] +[ {{10000@3 [s0; [*@(229)4 DrawLabel]]}}&] +[s3; &] +[s1;:DrawLabel`:`:struct:%- [@(0.0.255)3 struct][3 _][*3 DrawLabel]&] +[s9; This structure in fact just encapsulates generic label painting +routine that otherwise would have way too much parameters.&] +[s3; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] +[s3;%- &] +[s5;:DrawLabel`:`:DrawLabel`(`):%- [* DrawLabel]()&] +[s2; Default constructor. Default values are documented in attributes +descriptions.&] +[s3; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] +[s3;%- &] +[s5;:DrawLabel`:`:GetSize`(int`)const:%- [_^Size^ Size]_[* GetSize]([@(0.0.255) int]_[*@3 txt +cx]_`=_INT`_MAX)_[@(0.0.255) const]&] +[s2; Returns the size of label based on current set of attributes. +[%-*@3 txtcx] specifies the maximum width of text.&] +[s3; &] +[s4;%- &] +[s5;:DrawLabel`:`:Paint`(Draw`&`,const Rect`&`,bool`)const:%- [_^Size^ Size]_[* Paint]([_^Draw^ D +raw][@(0.0.255) `&]_[*@3 w], [@(0.0.255) const]_[_^Rect^ Rect][@(0.0.255) `&]_[*@3 r], +[@(0.0.255) bool]_[*@3 visibleaccesskey]_`=_[@(0.0.255) true])_[@(0.0.255) const]&] +[s2; Paints the label in given rectangle.&] +[s7; [%-*C@3 w]-|Draw.&] +[s7; [%-*C@3 r]-|Rectangle.&] +[s7; [%-*C@3 visibleacckey]-|Access`-keys should be graphically highlighted +(underlined).&] +[s7; [*/ Return value]-|Size of label.&] +[s3; &] +[s4;%- &] +[s5;:DrawLabel`:`:Paint`(Draw`&`,int`,int`,int`,int`,bool`)const:%- [_^Size^ Size]_[* Pai +nt]([_^Draw^ Draw][@(0.0.255) `&]_[*@3 w], [@(0.0.255) int]_[*@3 x], [@(0.0.255) int]_[*@3 y], +[@(0.0.255) int]_[*@3 cx], [@(0.0.255) int]_[*@3 cy], [@(0.0.255) bool]_[*@3 visibleaccesskey +]_`=_[@(0.0.255) true])_[@(0.0.255) const]&] +[s2; Paints the label in given rectangle.&] +[s7; [%-*C@3 w]-|Draw.&] +[s7; [%-*C@3 x, y, cx, cy]-|Position and size of rectangle.&] +[s7; [%-*C@3 visibleacckey]-|Access`-keys should be graphically highlighted +(underlined).&] +[s7; [*/ Return value]-|Size of label.&] +[s3; &] +[s4;%- &] +[s5;:DrawLabel`:`:push:%- [@(0.0.255) bool]_[* push]&] +[s2; Label should be painted as `"pushed`" (means paint offset one +pixel right and down). Default is false.&] +[s3; &] +[s4;%- &] +[s5;:DrawLabel`:`:focus:%- [@(0.0.255) bool]_[* focus]&] +[s2; Label should be painted as `"with input focus`" (light blue +rectangle is drawn around label). Default is false.&] +[s3; &] +[s4;%- &] +[s5;:DrawLabel`:`:disabled:%- [@(0.0.255) bool]_[* disabled]&] +[s2; Label should be painted as `"disable`" (affects the way how +images and text are painted, disabled mean they are gray).&] +[s3; &] +[s4;%- &] +[s5;:DrawLabel`:`:paintrect:%- [_^PaintRect^ PaintRect]_[* paintrect]&] +[s2; This paintrect is painted behind the label text. If label text +is empty, size of text area is determined as paintrect.GetSize().&] +[s3; &] +[s4;%- &] +[s5;:DrawLabel`:`:limg:%- [_^Image^ Image]_[* limg]&] +[s2; Left image.&] +[s3; &] +[s4;%- &] +[s5;:DrawLabel`:`:lcolor:%- [_^Color^ Color]_[* lcolor]&] +[s2; Color of left monochromatic image. Null means that the image +is color.&] +[s3; &] +[s4;%- &] +[s5;:DrawLabel`:`:lspc:%- [@(0.0.255) int]_[* lspc]&] +[s2; Space between left image and text. If Null, image is placed +at left edge of Label.&] +[s3; &] +[s4;%- &] +[s5;:DrawLabel`:`:text:%- [_^String^ String]_[* text]&] +[s2; Text of label.&] +[s3; &] +[s4;%- &] +[s5;:DrawLabel`:`:font:%- [_^Font^ Font]_[* font]&] +[s2; Font used to paint non`-QTF text.&] +[s3; &] +[s4;%- &] +[s5;:DrawLabel`:`:ink:%- [_^Color^ Color]_[* ink]&] +[s2; Color used to paint non`-QTF text.&] +[s3; &] +[s4;%- &] +[s5;:DrawLabel`:`:rimg:%- [_^Image^ Image]_[* rimg]&] +[s2; Right image.&] +[s3; &] +[s4;%- &] +[s5;:DrawLabel`:`:rcolor:%- [_^Color^ Color]_[* rcolor]&] +[s2; Color of monochromatic right image. Null means that the image +is color.&] +[s3; &] +[s4;%- &] +[s5;:DrawLabel`:`:rspc:%- [@(0.0.255) int]_[* rspc]&] +[s2; Space between the right image and text. If Null, image is placed +at the right size of Label.&] +[s3; &] +[s4;%- &] +[s5;:DrawLabel`:`:align:%- [@(0.0.255) int]_[* align]&] +[s2; Horizontal alignment. Can be ALIGN`_LEFT, ALIGN`_RIGHT or ALIGN`_CENTER.&] +[s3; &] +[s4;%- &] +[s5;:DrawLabel`:`:valign:%- [@(0.0.255) int]_[* valign]&] +[s2; Vertical alignment. Can be ALIGN`_TOP, ALIGN`_BOTTOM or ALIGN`_CENTER.&] +[s3; &] +[s4;%- &] +[s5;:DrawLabel`:`:nowrap:%- [@(0.0.255) bool]_[* nowrap]&] +[s2; When true (default false), now text wrapping is performed.&] +[s3;%- &] +[s4;%- &] +[s5;:DrawLabel`:`:accesskey:%- [@(0.0.255) int]_[* accesskey]&] +[s2; Access`-key.&] +[s3; &] +[s0; &] +[s0;3 &] +[s0;%- &] +[ {{10000@3 [s0; [*@(229)4 LabelBase]]}}&] +[s3; &] +[s1;:LabelBase`:`:class:%- [@(0.0.255)3 class][3 _][*3 LabelBase]&] +[s9; This class encapsulates basic DrawLabel struct into form suitable +to play a role of base class of GUI elements.&] +[s3; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Public Method List]]}}&] +[s3;%- &] +[s5;:LabelBase`:`:LabelUpdate`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* LabelUpdate]( +)&] +[s2; This virtual method is called each time when any of attributes +changes.&] +[s3; &] +[s4;%- &] +[s5;:LabelBase`:`:SetLeftImage`(const Image`&`,int`):%- [_^LabelBase^ LabelBase][@(0.0.255) `& +]_[* SetLeftImage]([@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 bmp1], +[@(0.0.255) int]_[*@3 spc]_`=_[@3 0])&] +[s2; Sets the left image.&] +[s7; [%-*C@3 bmp1]-|Image.&] +[s7; [%-*C@3 spc]-|Space between left image and text. If Null, image +is placed at left size of Label.&] +[s7; [*/ Return value]-|`*this for chaining.&] +[s3; &] +[s4;%- &] +[s5;:LabelBase`:`:SetPaintRect`(const PaintRect`&`):%- [_^LabelBase^ LabelBase][@(0.0.255) `& +]_[* SetPaintRect]([@(0.0.255) const]_[_^PaintRect^ PaintRect][@(0.0.255) `&]_[*@3 pr])&] +[s2; Sets PaintRect to be drawn behind or instead of label text.&] +[s7; [%-*C@3 pr]-|PaintRect&] +[s7; [*/ Return value]-|`*this for chaining.&] +[s3; &] +[s4;%- &] +[s5;:LabelBase`:`:SetText`(const char`*`):%- [_^LabelBase^ LabelBase][@(0.0.255) `&]_[* Set +Text]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text])&] +[s2; Sets text of the label.&] +[s7; [%-*C@3 text]-|Text.&] +[s7; [*/ Return value]-|`*this for chaining.&] +[s3; &] +[s4;%- &] +[s5;:LabelBase`:`:SetFont`(Font`):%- [_^LabelBase^ LabelBase][@(0.0.255) `&]_[* SetFont]([_^Font^ F +ont]_[*@3 font])&] +[s2; Sets font of non`-QTF text.&] +[s7; [%-*C@3 font]-|Font.&] +[s7; [*/ Return value]-|`*this for chaining.&] +[s3; &] +[s4;%- &] +[s5;:LabelBase`:`:SetInk`(Color`):%- [_^LabelBase^ LabelBase][@(0.0.255) `&]_[* SetInk]([_^Color^ C +olor]_[*@3 color])&] +[s2; Sets the color of non`-QTF text .&] +[s7; [%-*C@3 color]-|Color.&] +[s7; [*/ Return value]-|`*this for chaining.&] +[s3; &] +[s4;%- &] +[s5;:LabelBase`:`:SetRightImage`(const Image`&`,int`):%- [_^LabelBase^ LabelBase][@(0.0.255) `& +]_[* SetRightImage]([@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 bmp2], +[@(0.0.255) int]_[*@3 spc]_`=_[@3 0])&] +[s2; Sets the right image.&] +[s7; [%-*C@3 bmp2]-|Image.&] +[s7; [%-*C@3 spc]-|Space between left image and text. If Null, image +is placed at left size of Label.&] +[s7; [*/ Return value]-|`*this for chaining.&] +[s3; &] +[s4;%- &] +[s5;:LabelBase`:`:SetAlign`(int`):%- [_^LabelBase^ LabelBase][@(0.0.255) `&]_[* SetAlign]([@(0.0.255) i +nt]_[*@3 align])&] +[s2; Sets horizontal alignment.&] +[s7; [%-*C@3 align]-|One of ALIGN`_LEFT, ALIGN`_RIGHT or ALIGN`_CENTER.&] +[s7; [*/ Return value]-|`*this for chaining.&] +[s3; &] +[s4;%- &] +[s5;:LabelBase`:`:AlignLeft`(`):%- [_^LabelBase^ LabelBase][@(0.0.255) `&]_[* AlignLeft]()&] +[s2; Same as SetAlign(ALIGN`_LEFT).&] +[s3;%- &] +[s4;%- &] +[s5;:LabelBase`:`:AlignCenter`(`):%- [_^LabelBase^ LabelBase][@(0.0.255) `&]_[* AlignCenter +]()&] +[s2; Same as SetAlign(ALIGN`_CENTER).&] +[s3;%- &] +[s4;%- &] +[s5;:LabelBase`:`:AlignRight`(`):%- [_^LabelBase^ LabelBase][@(0.0.255) `&]_[* AlignRight]( +)&] +[s2; Same as SetAlign(ALIGN`_RIGHT).&] +[s3;%- &] +[s4;%- &] +[s5;:LabelBase`:`:SetVAlign`(int`):%- [_^LabelBase^ LabelBase][@(0.0.255) `&]_[* SetVAlign]( +[@(0.0.255) int]_[*@3 align])&] +[s2; Sets vertical alignment.&] +[s7; [%-*C@3 align]-|One of ALIGN`_TOP, ALIGN`_BOTTOM or ALIGN`_CENTER.&] +[s7; [*/ Return value]-|`*this for chaining.&] +[s5; &] +[s4;%- &] +[s5;:LabelBase`:`:AlignTop`(`):%- [_^LabelBase^ LabelBase][@(0.0.255) `&]_[* AlignTop]()&] +[s2; Same as SetVAlign(ALIGN`_TOP).&] +[s3;%- &] +[s4;%- &] +[s5;:LabelBase`:`:AlignVCenter`(`):%- [_^LabelBase^ LabelBase][@(0.0.255) `&]_[* AlignVCent +er]()&] +[s2; Same as SetVAlign(ALIGN`_CENTER).&] +[s3;%- &] +[s4;%- &] +[s5;:LabelBase`:`:AlignBottom`(`):%- [_^LabelBase^ LabelBase][@(0.0.255) `&]_[* AlignBottom +]()&] +[s2; Same as SetVAlign(ALIGN`_BOTTOM).&] +[s3;%- &] +[s4;%- &] +[s5;:LabelBase`:`:NoWrap`(bool`):%- [_^LabelBase^ LabelBase][@(0.0.255) `&]_[* NoWrap]([@(0.0.255) b +ool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2; When active (default false), now text wrapping is performed.&] +[s3; &] +[s4;%- &] +[s5;:LabelBase`:`:SetImage`(const Image`&`,int`):%- [_^LabelBase^ LabelBase][@(0.0.255) `& +]_[* SetImage]([@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 bmp], +[@(0.0.255) int]_[*@3 spc]_`=_[@3 0])&] +[s2; Same as SetLeftImage(bmp, spc).&] +[s3; &] +[s4;%- &] +[s5;:LabelBase`:`:GetAlign`(`)const:%- [@(0.0.255) int]_[* GetAlign]()_[@(0.0.255) const]&] +[s7; [*/ Return value]-|Current horizontal alignment.&] +[s3; &] +[s4;%- &] +[s5;:LabelBase`:`:GetVAlign`(`)const:%- [@(0.0.255) int]_[* GetVAlign]()_[@(0.0.255) const]&] +[s7; [*/ Return value]-|Current vertical alignment.&] +[s3; &] +[s4;%- &] +[s5;:LabelBase`:`:GetPaintRect`(`)const:%- [_^PaintRect^ PaintRect]_[* GetPaintRect]()_[@(0.0.255) c +onst]&] +[s7; [*/ Return value]-|Current PaintRect.&] +[s3; &] +[s4;%- &] +[s5;:LabelBase`:`:GetText`(`)const:%- [_^String^ String]_[* GetText]()_[@(0.0.255) const]&] +[s7; [*/ Return value]-|Current label text.&] +[s3; &] +[s4;%- &] +[s5;:LabelBase`:`:GetFont`(`)const:%- [_^Font^ Font]_[* GetFont]()_[@(0.0.255) const]&] +[s7; [*/ Return value]-|Current font.&] +[s3; &] +[s4;%- &] +[s5;:LabelBase`:`:GetInk`(`)const:%- [_^Color^ Color]_[* GetInk]()_[@(0.0.255) const]&] +[s7; [*/ Return value]-|Current text color.&] +[s3; &] +[s4;%- &] +[s5;:LabelBase`:`:PaintLabel`(Draw`&`,const Rect`&`,bool`,bool`,bool`,bool`):%- [_^Size^ S +ize]_[* PaintLabel]([_^Draw^ Draw][@(0.0.255) `&]_[*@3 w], [@(0.0.255) const]_[_^Rect^ Rect][@(0.0.255) `& +]_[*@3 r], [@(0.0.255) bool]_[*@3 disabled]_`=_[@(0.0.255) false], [@(0.0.255) bool]_[*@3 pus +h]_`=_[@(0.0.255) false], [@(0.0.255) bool]_[*@3 focus]_`=_[@(0.0.255) false], +[@(0.0.255) bool]_[*@3 vak]_`=_[@(0.0.255) true])&] +[s2; Paints label in the given rectangle.&] +[s7; [%-*C@3 w]-|Draw.&] +[s7; [%-*C@3 r]-|Rectangle.&] +[s7; [%-*C@3 disabled]-|Disable flag.&] +[s7; [%-*C@3 push]-|Push flag.&] +[s7; [%-*C@3 focus]-|Focus flag.&] +[s7; [%-*C@3 vak]-|If true, accelerator should be highlighted.&] +[s7; [*/ Return value]-|Size of label.&] +[s3; &] +[s4;%- &] +[s5;:LabelBase`:`:PaintLabel`(Draw`&`,int`,int`,int`,int`,bool`,bool`,bool`,bool`):%- [_^Size^ S +ize]_[* PaintLabel]([_^Draw^ Draw][@(0.0.255) `&]_[*@3 w], [@(0.0.255) int]_[*@3 x], +[@(0.0.255) int]_[*@3 y], [@(0.0.255) int]_[*@3 cx], [@(0.0.255) int]_[*@3 cy], +[@(0.0.255) bool]_[*@3 disabled]_`=_[@(0.0.255) false], [@(0.0.255) bool]_[*@3 push]_`=_[@(0.0.255) f +alse], [@(0.0.255) bool]_[*@3 focus]_`=_[@(0.0.255) false], [@(0.0.255) bool]_[*@3 vak]_`=_ +[@(0.0.255) true])&] +[s2; Paints label in the given rectangle.&] +[s7; [%-*C@3 w]-|Draw.&] +[s7; [%-*C@3 x, y, cx, cy]-|Rectangle.&] +[s7; [%-*C@3 disabled]-|Disable flag.&] +[s7; [%-*C@3 push]-|Push flag.&] +[s7; [%-*C@3 focus]-|Focus flag.&] +[s7; [%-*C@3 vak]-|If true, accelerator should be highlighted.&] +[s7; [*/ Return value]-|Size of label.&] +[s3; &] +[s4;%- &] +[s5;:LabelBase`:`:GetLabelSize`(`)const:%- [_^Size^ Size]_[* GetLabelSize]()_[@(0.0.255) co +nst]&] +[s7; [*/ Return value]-|Size of label.&] +[s3; &] [s0; ]] \ No newline at end of file diff --git a/uppsrc/CtrlLib/src.tpp/LineEdit$en-us.tpp b/uppsrc/CtrlLib/src.tpp/LineEdit_en-us.tpp similarity index 97% rename from uppsrc/CtrlLib/src.tpp/LineEdit$en-us.tpp rename to uppsrc/CtrlLib/src.tpp/LineEdit_en-us.tpp index 0cc92a2a3..dd5d94797 100644 --- a/uppsrc/CtrlLib/src.tpp/LineEdit$en-us.tpp +++ b/uppsrc/CtrlLib/src.tpp/LineEdit_en-us.tpp @@ -1,432 +1,432 @@ -topic "LineEdit"; -[2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,0#27521748481378242620020725143825:desc] -[0 $$3,0#96390100711032703541132217272105:end] -[H6;0 $$4,0#05600065144404261032431302351956:begin] -[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] -[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] -[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] -[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] -[b42;2 $$9,9#13035079074754324216151401829390:normal] -[{_} -[ {{10000@3 [s0;%% [*@(229)4 LineEdit]]}}&] -[s3; &] -[s1;:LineEdit`:`:class: [@(0.0.255)3 class][3 _][*3 LineEdit][3 _:_][@(0.0.255)3 public][3 _][*@3;3 T -extCtrl]&] -[s9;%% A widget used to edit a line of a document one at a time.&] -[s3; &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0;%% [* Protected Method List]]}}&] -[s3; &] -[s5;:LineEdit`:`:HighlightLine`(int`,Vector``&`,int`): [@(0.0.255) v -irtual] [@(0.0.255) void]_[* HighlightLine]([@(0.0.255) int]_[*@3 line], -[_^Vector^ Vector][@(0.0.255) <][_^LineEdit`:`:Highlight^ Highlight][@(0.0.255) >`&]_[*@3 h -], [@(0.0.255) int]_[*@3 pos])&] -[s2;%% This method can be overridden to add syntax highlighting to -the LineEdit. It is called once for each line painted on the -screen. [%-*@3 line] is the line index (first line is 0), [%-*@3 h] -represents character cells in the line; client code should change -this array to achieve the highlighting, [%-*@3 pos] is the index -of character from the beginning of text. [%-*@3 h] initially contains -one more space character than is the count of characters in the -line; this additional character can be used to set the appearance -of the rest of line after the last character. You also add more -characters to the [%-*@3 h]. Default implementation is empty.&] -[s3;%% &] -[s4; &] -[s5;:LineEdit`:`:NewScrollPos`(`): [@(0.0.255) virtual] [@(0.0.255) void]_[* NewScrollPos]( -)&] -[s2;%% Called when scrollbar gets new position. Default implementation -is empty.&] -[s3; &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0;%% [* Public Method List]]}}&] -[s3; &] -[s5;:LineEdit`:`:GetFontSize`(`)const: [_^Size^ Size]_[* GetFontSize]()_[@(0.0.255) const]&] -[s2;%% Returns the size of font character cell (LineEdit expects -monospace glyphs `- the width of character is constant).&] -[s3; &] -[s4; &] -[s5;:LineEdit`:`:GetGPos`(int`,int`)const: [@(0.0.255) int]_[* GetGPos]([@(0.0.255) int]_[*@3 l -n], [@(0.0.255) int]_[*@3 cl])_[@(0.0.255) const]&] -[s2;%% Returns `"graphical`" position of [%-*@3 ln] line and [%-*@3 cl] -column. This takes into account any tabulator characters in the -line.&] -[s3; &] -[s4; &] -[s5;:LineEdit`:`:GetMousePos`(Point`)const: [@(0.0.255) int]_[* GetMousePos]([_^Point^ Poin -t]_[*@3 p])_[@(0.0.255) const]&] -[s2;%% Get the the offset of character placed at [%-*@3 p].&] -[s3; &] -[s4; &] -[s5;:LineEdit`:`:GetColumnLine`(int`)const: [_^Point^ Point]_[* GetColumnLine]([@(0.0.255) i -nt]_[*@3 pos])_[@(0.0.255) const]&] -[s2;%% Returns the line and column for the character at [%-*@3 pos] -accounting for any tabulators. Column is x member of resulting -Point, line is y.&] -[s3; &] -[s4; &] -[s5;:LineEdit`:`:GetColumnLinePos`(Point`)const: [@(0.0.255) int]_[* GetColumnLinePos]([_^Point^ P -oint]_[*@3 pos])_[@(0.0.255) const]&] -[s2;%% Returns the position for given column and line [%-*@3 pos]. -Does account for tabulators.&] -[s3; &] -[s4; &] -[s5;:LineEdit`:`:GetIndexLine`(int`)const: [_^Point^ Point]_[* GetIndexLine]([@(0.0.255) in -t]_[*@3 pos])_[@(0.0.255) const]&] -[s2;%% Returns the line and index of character in the line for the -given [%-*@3 pos]. Does not account for tabulators.&] -[s3; &] -[s4; &] -[s5;:LineEdit`:`:GetIndexLinePos`(Point`)const: [@(0.0.255) int]_[* GetIndexLinePos]([_^Point^ P -oint]_[*@3 pos])_[@(0.0.255) const]&] -[s2;%% Returns the position for given column and line [%-*@3 pos]. -Does not account for tabulators.&] -[s3; &] -[s4; &] -[s5;:LineEdit`:`:SetRectSelection`(int`,int`): [@(0.0.255) void]_[* SetRectSelection]([@(0.0.255) i -nt]_[*@3 l], [@(0.0.255) int]_[*@3 h])&] -[s2;%% Sets rectangular selection.&] -[s3;%% &] -[s4; &] -[s5;:LineEdit`:`:SetRectSelection`(const Rect`&`): [@(0.0.255) void]_[* SetRectSelection]( -[@(0.0.255) const]_[_^Rect^ Rect][@(0.0.255) `&]_[*@3 rect])&] -[s2;%% Same as SetRectSelection(GetGPos(rect.top, rect.left), GetGPos(rect.bottom, -rect.right));&] -[s3;%% &] -[s4; &] -[s5;:LineEdit`:`:GetRectSelection`(`)const: [_^Rect^ Rect]_[* GetRectSelection]()_[@(0.0.255) c -onst]&] -[s2;%% Returns rectangular selection (as `"graphical`").&] -[s3; &] -[s4; &] -[s5;:LineEdit`:`:GetRectSelection`(const Rect`&`,int`,int`&`,int`&`): [@(0.0.255) bool]_ -[* GetRectSelection]([@(0.0.255) const]_[_^Rect^ Rect][@(0.0.255) `&]_[*@3 rect], -[@(0.0.255) int]_[*@3 line], [@(0.0.255) int`&]_[*@3 l], [@(0.0.255) int]_`&[*@3 h])&] -[s2;%% Returns lower and upper limits [%-*@3 l] [%-*@3 h] of characters -of [%-*@3 line] that are in rectangular selection [%-*@3 rect]. Returns -false when line is not in selection.&] -[s3;%% &] -[s4; &] -[s5;:LineEdit`:`:ScrollUp`(`): [@(0.0.255) void]_[* ScrollUp]()&] -[s2;%% Scrolls the text single line up.&] -[s3; &] -[s4; &] -[s5;:LineEdit`:`:ScrollDown`(`): [@(0.0.255) void]_[* ScrollDown]()&] -[s2;%% Scrolls the text single line down.&] -[s3; &] -[s4; &] -[s5;:LineEdit`:`:ScrollPageUp`(`): [@(0.0.255) void]_[* ScrollPageUp]()&] -[s2;%% Scrolls the text one page up.&] -[s3; &] -[s4; &] -[s5;:LineEdit`:`:ScrollPageDown`(`): [@(0.0.255) void]_[* ScrollPageDown]()&] -[s2;%% Scrolls the text one page down.&] -[s3; &] -[s4; &] -[s5;:LineEdit`:`:ScrollBegin`(`): [@(0.0.255) void]_[* ScrollBegin]()&] -[s2;%% Scrolls the text to the begin.&] -[s3; &] -[s4; &] -[s5;:LineEdit`:`:ScrollEnd`(`): [@(0.0.255) void]_[* ScrollEnd]()&] -[s2;%% Scrolls the text to the end.&] -[s3; &] -[s4; &] -[s5;:LineEdit`:`:GetLineScreenRect`(int`)const: [_^Rect^ Rect]_[* GetLineScreenRect]([@(0.0.255) i -nt]_[*@3 line])_[@(0.0.255) const]&] -[s2;%% Gets the absolute screen rectangle position of [%-*@3 line].&] -[s5;K:`:`:LineEdit`:`:TopCursor`(`): [@(0.0.255) void][@(64) _]TopCursor[@(64) ()]&] -[s2;%% Scrolls the text to place the line with cursor is first in -the view.&] -[s3; &] -[s4; &] -[s5;:LineEdit`:`:TopCursor`(int`): [@(0.0.255) void]_[* TopCursor]([@(0.0.255) int]_[*@3 line -s]_`=_[@3 0])&] -[s2;%% Scrolls the text to place the line with cursor placed [%-*@3 lines] -from the top.&] -[s3;%% &] -[s4; &] -[s5;:LineEdit`:`:CenterCursor`(`): [@(0.0.255) void]_[* CenterCursor]()&] -[s2;%% Scrolls the text to place the line with cursor at the center -of the view.&] -[s3; &] -[s4; &] -[s5;:LineEdit`:`:MoveUpDown`(int`,bool`): [@(0.0.255) void]_[* MoveUpDown]([@(0.0.255) int]_ -[*@3 n], [@(0.0.255) bool]_[*@3 sel]_`=_[@(0.0.255) false])&] -[s2;%% Moves the cursor [%-*@3 n] lines up ([%-*@3 n] is negative) or -down. If [%-*@3 sel] is true, selects characters between starting -and ending cursor position.&] -[s3; &] -[s4; &] -[s5;:LineEdit`:`:MoveLeft`(bool`): [@(0.0.255) void]_[* MoveLeft]([@(0.0.255) bool]_[*@3 sel]_ -`=_[@(0.0.255) false])&] -[s5;:LineEdit`:`:MoveRight`(bool`): [@(0.0.255) void]_[* MoveRight]([@(0.0.255) bool]_[*@3 se -l]_`=_[@(0.0.255) false])&] -[s5;:LineEdit`:`:MoveUp`(bool`): [@(0.0.255) void]_[* MoveUp]([@(0.0.255) bool]_[*@3 sel]_`=_ -[@(0.0.255) false])&] -[s5;:LineEdit`:`:MoveDown`(bool`): [@(0.0.255) void]_[* MoveDown]([@(0.0.255) bool]_[*@3 sel]_ -`=_[@(0.0.255) false])&] -[s5;:LineEdit`:`:MovePageUp`(bool`): [@(0.0.255) void]_[* MovePageUp]([@(0.0.255) bool]_[*@3 s -el]_`=_[@(0.0.255) false])&] -[s5;:LineEdit`:`:MovePageDown`(bool`): [@(0.0.255) void]_[* MovePageDown]([@(0.0.255) bool]_ -[*@3 sel]_`=_[@(0.0.255) false])&] -[s5;:LineEdit`:`:MoveHome`(bool`): [@(0.0.255) void]_[* MoveHome]([@(0.0.255) bool]_[*@3 sel]_ -`=_[@(0.0.255) false])&] -[s5;:LineEdit`:`:MoveEnd`(bool`): [@(0.0.255) void]_[* MoveEnd]([@(0.0.255) bool]_[*@3 sel]_`= -_[@(0.0.255) false])&] -[s5;:LineEdit`:`:MoveTextBegin`(bool`): [@(0.0.255) void]_[* MoveTextBegin]([@(0.0.255) boo -l]_[*@3 sel]_`=_[@(0.0.255) false])&] -[s5;:LineEdit`:`:MoveTextEnd`(bool`): [@(0.0.255) void]_[* MoveTextEnd]([@(0.0.255) bool]_[*@3 s -el]_`=_[@(0.0.255) false])&] -[s2;%% [%- Moves the cursor in specified direction (Home/End are beginning/end -of line). ]If [%-*@3 sel] is true, selects characters between starting -and ending cursor position.&] -[s3; &] -[s4; &] -[s5;:LineEdit`:`:InsertChar`(dword`,int`,bool`): [@(0.0.255) bool]_[* InsertChar]([_^dword^ d -word]_[*@3 key], [@(0.0.255) int]_[*@3 count]_`=_[@3 1], [@(0.0.255) bool]_[*@3 canoverwrite]_ -`=_[@(0.0.255) false])&] -[s2;%% Inserts [%-*@3 count ]characters [%-*@3 key] at cursor position. -If [%-*@3 canoverwrite] is true, overwrite mode (as set by user -pressing Insert key) can be used.&] -[s3; &] -[s4; &] -[s5;:LineEdit`:`:DeleteChar`(`): [@(0.0.255) void]_[* DeleteChar]()&] -[s2;%% Deletes character at cursor position.&] -[s3; &] -[s4; &] -[s5;:LineEdit`:`:Backspace`(`): [@(0.0.255) void]_[* Backspace]()&] -[s2;%% If character is not first in the text, deletes it and moves -cursor one position back.&] -[s3; &] -[s4; &] -[s5;:LineEdit`:`:DeleteLine`(`): [@(0.0.255) void]_[* DeleteLine]()&] -[s2;%% Deletes a line with cursor (if it is not the only line in -the text).&] -[s3; &] -[s4; &] -[s5;:LineEdit`:`:CutLine`(`): [@(0.0.255) void]_[* CutLine]()&] -[s2;%% Stores a line to clipboard and calls DeleteLine.&] -[s3; &] -[s4; &] -[s5;:LineEdit`:`:PasteColumn`(const WString`&`): [@(0.0.255) void]_[* PasteColumn]([@(0.0.255) c -onst]_[_^WString^ WString][@(0.0.255) `&]_[*@3 text])&] -[s2;%% Pastes lines of [%-*@3 text] into actual graphical column of -text.&] -[s3;%% &] -[s4; &] -[s5;:LineEdit`:`:PasteColumn`(`): [@(0.0.255) void]_[* PasteColumn]()&] -[s2;%% PasteColumn with clipboard text.&] -[s3; &] -[s4; &] -[s5;:LineEdit`:`:Sort`(`): [@(0.0.255) void]_[* Sort]()&] -[s2;%% Sorts lines based on rectangular selection.&] -[s3; &] -[s4; &] -[s5;:LineEdit`:`:GetScrollPos`(`)const: [_^Point^ Point]_[* GetScrollPos]()_[@(0.0.255) con -st]&] -[s2;%% Returns the actual scroll position.&] -[s3; &] -[s4; &] -[s5;:LineEdit`:`:GetPageSize`(`): [_^Size^ Size]_[* GetPageSize]()&] -[s2;%% Returns the current view size in character cells.&] -[s3; &] -[s4; &] -[s5;:LineEdit`:`:SetScrollPos`(Point`): [@(0.0.255) void]_[* SetScrollPos]([_^Point^ Point]_ -[*@3 p])&] -[s2;%% Sets the scroll position of view, e.g. to the value obtained -by GetScrollPos.&] -[s3; &] -[s4; &] -[s5;:LineEdit`:`:GetEditPos`(`)const: [_^LineEdit`:`:EditPos^ EditPos]_[* GetEditPos]()_[@(0.0.255) c -onst]&] -[s2;%% Returns the edit position in the text to be restored later. -Edit position comprises cursor and scrollbar positions.&] -[s3; &] -[s4; &] -[s5;:LineEdit`:`:SetEditPos`(const LineEdit`:`:EditPos`&`): [@(0.0.255) void]_[* SetEditP -os]([@(0.0.255) const]_[_^LineEdit`:`:EditPos^ LineEdit`::EditPos][@(0.0.255) `&]_[*@3 pos -])&] -[s2;%% Sets the edit position obtained by calling GetEditPos. If -cursor is not in the view after restoring, view is scrolled so -that it is by calling ScrollIntoCursor.&] -[s3; &] -[s4; &] -[s5;:LineEdit`:`:SetEditPosSb`(const LineEdit`:`:EditPos`&`): [@(0.0.255) void]_[* SetEdi -tPosSb]([@(0.0.255) const]_[_^LineEdit`:`:EditPos^ LineEdit`::EditPos][@(0.0.255) `&]_[*@3 p -os])&] -[s2;%% Sets the edit position obtained by calling GetEditPos. Unlike -SetEditPos, no scrolls are performed to get cursor into the view.&] -[s3; &] -[s4; &] -[s5;:LineEdit`:`:ScrollIntoCursor`(`): [@(0.0.255) void]_[* ScrollIntoCursor]()&] -[s2;%% Performs minimal scroll to get the cursor into the view. `"Minimal`" -means that if cursor is `"before`" the view, view is scrolled -to move cursor to the first line, if it is `"after`", it is moved -to the last line.&] -[s3; &] -[s4; &] -[s5;:LineEdit`:`:GetCaretPoint`(`)const: [_^Point^ Point]_[* GetCaretPoint]()_[@(0.0.255) c -onst]&] -[s2;%% Returns the current caret position.&] -[s3; &] -[s4; &] -[s5;:LineEdit`:`:Clear`(`): [@(0.0.255) void]_[* Clear]()&] -[s2;%% Sets the text empty.&] -[s3; &] -[s4; &] -[s5;:LineEdit`:`:OverWriteMode`(bool`): [@(0.0.255) void]_[* OverWriteMode]([@(0.0.255) boo -l]_[*@3 o]_`=_[@(0.0.255) true])&] -[s3; &] -[s4; &] -[s5;:LineEdit`:`:IsOverWriteMode`(`)const: [@(0.0.255) bool]_[* IsOverWriteMode]()_[@(0.0.255) c -onst]&] -[s2;%% In OverWriteMode mode, input characters replace the content -instead of being inserted.&] -[s3; &] -[s4; &] -[s5;:LineEdit`:`:RefreshChars`(bool`(`*`)`(int c`)`): [@(0.0.255) void]_[* RefreshChars]( -[@(0.0.255) bool]_(`*[*@3 predicate])([@(0.0.255) int]_c))&] -[s2;%% Calls [%-*@3 predicate] for all characters in current view and -when it returns true refreshes (schedules for repainting) character -cell. It is useful for advanced code editors (e.g. refreshing -color of braces in TheIDE editor).&] -[s3; &] -[s4; &] -[s5;:LineEdit`:`:TabSize`(int`): [_^LineEdit^ LineEdit][@(0.0.255) `&]_[* TabSize]([@(0.0.255) i -nt]_[*@3 n])&] -[s2;%% Sets the tabulator size.&] -[s3; &] -[s4; &] -[s5;:LineEdit`:`:GetTabSize`(`)const: [@(0.0.255) int]_[* GetTabSize]()_[@(0.0.255) const]&] -[s2;%% Returns current tabulator size.&] -[s3; &] -[s4; &] -[s5;:LineEdit`:`:BorderColumn`(int`,Color`): [_^LineEdit^ LineEdit][@(0.0.255) `&]_[* Borde -rColumn]([@(0.0.255) int]_[*@3 col], [_^Color^ Color]_[*@3 c]_`=_SColorFace())&] -[s2;%% Displays a border column of width [%-*@3 col] and color [%-*@3 c].&] -[s3; &] -[s4; &] -[s5;:Upp`:`:LineEdit`:`:GetBorderColumn`(`)const: [@(0.0.255) int]_[* GetBorderColumn]()_ -[@(0.0.255) const]&] -[s2;%% Return border column position.&] -[s3; &] -[s4; &] -[s5;:LineEdit`:`:SetFont`(Font`): [_^LineEdit^ LineEdit][@(0.0.255) `&]_[* SetFont]([_^Font^ F -ont]_[*@3 f])&] -[s2;%% Sets the font. HighlightLine can replace this font, however, -the size of character cell is determined by this font (note that -CJK ideograms are two character cells wide). Font should be monospaced. -Returns `*this. Default font is Courier(16).&] -[s3; &] -[s4; &] -[s5;:LineEdit`:`:GetFont`(`)const: [_^Font^ Font]_[* GetFont]()_[@(0.0.255) const]&] -[s2;%% Returns the font.&] -[s3; &] -[s4; &] -[s5;:LineEdit`:`:NoHorzScrollbar`(bool`): [_^LineEdit^ LineEdit][@(0.0.255) `&]_[* NoHorzSc -rollbar]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2;%% In this mode horizontal scrollbar is never shown. Default -is off.&] -[s3; &] -[s4; &] -[s5;:LineEdit`:`:IsNoHorzScrollbar`(`)const: [@(0.0.255) bool]_[* IsNoHorzScrollbar]()_[@(0.0.255) c -onst]&] -[s2;%% Returns status of NoHrozScrollbar.&] -[s3; &] -[s4; &] -[s5;:LineEdit`:`:ShowTabs`(bool`): [_^LineEdit^ LineEdit][@(0.0.255) `&]_[* ShowTabs]([@(0.0.255) b -ool]_[*@3 st]_`=_[@(0.0.255) true])&] -[s2;%% In this mode widget displays tabulators with faint graphics. -Default is off.&] -[s3; &] -[s4; &] -[s5;:LineEdit`:`:IsShowTabs`(`)const: [@(0.0.255) bool]_[* IsShowTabs]()_[@(0.0.255) const]&] -[s2;%% Returns status of ShowTabs..&] -[s3; &] -[s4; &] -[s5;:LineEdit`:`:ShowSpaces`(bool`): [_^LineEdit^ LineEdit][@(0.0.255) `&]_[* ShowSpaces]([@(0.0.255) b -ool]_[*@3 ss]_`=_[@(0.0.255) true])&] -[s2;%% In this mode widget displays spaces with faint dots. Default -is off.&] -[s3;%% &] -[s4; &] -[s5;:LineEdit`:`:IsShowSpaces`(`)const: [@(0.0.255) bool]_[* IsShowSpaces]()_[@(0.0.255) co -nst]&] -[s2;%% Returns status of ShowSpaces.&] -[s3; &] -[s4; &] -[s5;:Upp`:`:LineEdit`:`:ShowLineEndings`(bool`): [_^Upp`:`:LineEdit^ LineEdit][@(0.0.255) `& -]_[* ShowLineEndings]([@(0.0.255) bool]_[*@3 sl]_`=_[@(0.0.255) true])&] -[s2;%% In this mode widget displays line endings with faint dots. -Default is off.&] -[s3;%% &] -[s4; &] -[s5;:Upp`:`:LineEdit`:`:IsShowLineEndings`(`)const: [@(0.0.255) bool]_[* IsShowLineEnding -s]()_[@(0.0.255) const]&] -[s2;%% Returns status of ShowLineEndings.&] -[s3; &] -[s4; &] -[s5;:Upp`:`:LineEdit`:`:WarnWhiteSpace`(bool`): [_^Upp`:`:LineEdit^ LineEdit][@(0.0.255) `& -]_[* WarnWhiteSpace]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2;%% In this mode widget shows whitespaces that seem to be misplaced, -like tabs after spaces or if line ends with spaces. Default is -off.&] -[s3;%% &] -[s4; &] -[s5;:Upp`:`:LineEdit`:`:IsWantWhiteSpace`(`)const: [@(0.0.255) bool]_[* IsWantWhiteSpace]( -)_[@(0.0.255) const]&] -[s2;%% Returns status of WarnWhiteSpace.&] -[s3; &] -[s4; &] -[s5;:LineEdit`:`:WithCutLine`(bool`): [_^LineEdit^ LineEdit][@(0.0.255) `&]_[* WithCutLine]( -[@(0.0.255) bool]_[*@3 b])&] -[s2;%% In this mode widget calls CutLine when user presses Ctrl`+Y -or Ctrl`+L. Default is on.&] -[s0; &] -[s4; &] -[s5;:LineEdit`:`:NoCutLine`(`): [_^LineEdit^ LineEdit][@(0.0.255) `&]_[* NoCutLine]()&] -[s2;%% Switches WithCutLine off.&] -[s3;%% &] -[s4; &] -[s5;:LineEdit`:`:IsWithCutLine`(`)const: [@(0.0.255) bool]_[* IsWithCutLine]()_[@(0.0.255) c -onst]&] -[s2;%% Returns status of WithCutLine.&] -[s3; &] -[s4; &] -[s5;:LineEdit`:`:SetFilter`(int`(`*`)`(int c`)`): [_^LineEdit^ LineEdit][@(0.0.255) `&]_[* S -etFilter]([@(0.0.255) int]_(`*[*@3 f])([@(0.0.255) int]_c))&] -[s2;%% Sets the filter of characters processed. Filter function can -alter characters before they are inserted into the text. If filter -function returns zero, character is rejected.&] -[s0; &] -[s0; &] -[ {{10000@3 [s0;%% [*@(229)4 LineEdit`::Highlight]]}}&] -[s3; &] -[s1;:LineEdit`:`:Highlight`:`:struct: [@(0.0.255)3 struct][3 _][*3 Highlight][3 _:_][@(0.0.255)3 p -ublic][3 _][*@3;3 Moveable][@(0.0.255)3 <][*3 Highlight][@(0.0.255)3 >][3 _]&] -[s9; This structure defines syntax highlighting properties of single -character cell. &] -[s3;%% &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0;%% [* Public Member List]]}}&] -[s3; &] -[s5;:LineEdit`:`:Highlight`:`:paper: [_^Color^ Color]_[* paper]&] -[s3;%% &] -[s4; &] -[s5;:LineEdit`:`:Highlight`:`:ink: [_^Color^ Color]_[* ink]&] -[s3; &] -[s4; &] -[s5;:LineEdit`:`:Highlight`:`:font: [_^Font^ Font]_[* font]&] -[s3; &] -[s4; &] -[s5;:LineEdit`:`:Highlight`:`:chr: [_^wchar^ wchar]_[* chr]&] -[s3;%% &] -[s4; &] -[s5;:LineEdit`:`:Highlight`:`:operator`=`=`(const LineEdit`:`:Highlight`&`)const: [@(0.0.255) b -ool]_[* operator`=`=]([@(0.0.255) const]_[_^LineEdit`:`:Highlight^ Highlight][@(0.0.255) `& -]_[*@3 h])_[@(0.0.255) const]&] -[s2;%% Equality comparison.&] -[s3; &] +topic "LineEdit"; +[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,0#27521748481378242620020725143825:desc] +[0 $$3,0#96390100711032703541132217272105:end] +[H6;0 $$4,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] +[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] +[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] +[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] +[b42;2 $$9,9#13035079074754324216151401829390:normal] +[{_} +[ {{10000@3 [s0;%% [*@(229)4 LineEdit]]}}&] +[s3; &] +[s1;:LineEdit`:`:class: [@(0.0.255)3 class][3 _][*3 LineEdit][3 _:_][@(0.0.255)3 public][3 _][*@3;3 T +extCtrl]&] +[s9;%% A widget used to edit a line of a document one at a time.&] +[s3; &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0;%% [* Protected Method List]]}}&] +[s3; &] +[s5;:LineEdit`:`:HighlightLine`(int`,Vector``&`,int`): [@(0.0.255) v +irtual] [@(0.0.255) void]_[* HighlightLine]([@(0.0.255) int]_[*@3 line], +[_^Vector^ Vector][@(0.0.255) <][_^LineEdit`:`:Highlight^ Highlight][@(0.0.255) >`&]_[*@3 h +], [@(0.0.255) int]_[*@3 pos])&] +[s2;%% This method can be overridden to add syntax highlighting to +the LineEdit. It is called once for each line painted on the +screen. [%-*@3 line] is the line index (first line is 0), [%-*@3 h] +represents character cells in the line; client code should change +this array to achieve the highlighting, [%-*@3 pos] is the index +of character from the beginning of text. [%-*@3 h] initially contains +one more space character than is the count of characters in the +line; this additional character can be used to set the appearance +of the rest of line after the last character. You also add more +characters to the [%-*@3 h]. Default implementation is empty.&] +[s3;%% &] +[s4; &] +[s5;:LineEdit`:`:NewScrollPos`(`): [@(0.0.255) virtual] [@(0.0.255) void]_[* NewScrollPos]( +)&] +[s2;%% Called when scrollbar gets new position. Default implementation +is empty.&] +[s3; &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0;%% [* Public Method List]]}}&] +[s3; &] +[s5;:LineEdit`:`:GetFontSize`(`)const: [_^Size^ Size]_[* GetFontSize]()_[@(0.0.255) const]&] +[s2;%% Returns the size of font character cell (LineEdit expects +monospace glyphs `- the width of character is constant).&] +[s3; &] +[s4; &] +[s5;:LineEdit`:`:GetGPos`(int`,int`)const: [@(0.0.255) int]_[* GetGPos]([@(0.0.255) int]_[*@3 l +n], [@(0.0.255) int]_[*@3 cl])_[@(0.0.255) const]&] +[s2;%% Returns `"graphical`" position of [%-*@3 ln] line and [%-*@3 cl] +column. This takes into account any tabulator characters in the +line.&] +[s3; &] +[s4; &] +[s5;:LineEdit`:`:GetMousePos`(Point`)const: [@(0.0.255) int]_[* GetMousePos]([_^Point^ Poin +t]_[*@3 p])_[@(0.0.255) const]&] +[s2;%% Get the the offset of character placed at [%-*@3 p].&] +[s3; &] +[s4; &] +[s5;:LineEdit`:`:GetColumnLine`(int`)const: [_^Point^ Point]_[* GetColumnLine]([@(0.0.255) i +nt]_[*@3 pos])_[@(0.0.255) const]&] +[s2;%% Returns the line and column for the character at [%-*@3 pos] +accounting for any tabulators. Column is x member of resulting +Point, line is y.&] +[s3; &] +[s4; &] +[s5;:LineEdit`:`:GetColumnLinePos`(Point`)const: [@(0.0.255) int]_[* GetColumnLinePos]([_^Point^ P +oint]_[*@3 pos])_[@(0.0.255) const]&] +[s2;%% Returns the position for given column and line [%-*@3 pos]. +Does account for tabulators.&] +[s3; &] +[s4; &] +[s5;:LineEdit`:`:GetIndexLine`(int`)const: [_^Point^ Point]_[* GetIndexLine]([@(0.0.255) in +t]_[*@3 pos])_[@(0.0.255) const]&] +[s2;%% Returns the line and index of character in the line for the +given [%-*@3 pos]. Does not account for tabulators.&] +[s3; &] +[s4; &] +[s5;:LineEdit`:`:GetIndexLinePos`(Point`)const: [@(0.0.255) int]_[* GetIndexLinePos]([_^Point^ P +oint]_[*@3 pos])_[@(0.0.255) const]&] +[s2;%% Returns the position for given column and line [%-*@3 pos]. +Does not account for tabulators.&] +[s3; &] +[s4; &] +[s5;:LineEdit`:`:SetRectSelection`(int`,int`): [@(0.0.255) void]_[* SetRectSelection]([@(0.0.255) i +nt]_[*@3 l], [@(0.0.255) int]_[*@3 h])&] +[s2;%% Sets rectangular selection.&] +[s3;%% &] +[s4; &] +[s5;:LineEdit`:`:SetRectSelection`(const Rect`&`): [@(0.0.255) void]_[* SetRectSelection]( +[@(0.0.255) const]_[_^Rect^ Rect][@(0.0.255) `&]_[*@3 rect])&] +[s2;%% Same as SetRectSelection(GetGPos(rect.top, rect.left), GetGPos(rect.bottom, +rect.right));&] +[s3;%% &] +[s4; &] +[s5;:LineEdit`:`:GetRectSelection`(`)const: [_^Rect^ Rect]_[* GetRectSelection]()_[@(0.0.255) c +onst]&] +[s2;%% Returns rectangular selection (as `"graphical`").&] +[s3; &] +[s4; &] +[s5;:LineEdit`:`:GetRectSelection`(const Rect`&`,int`,int`&`,int`&`): [@(0.0.255) bool]_ +[* GetRectSelection]([@(0.0.255) const]_[_^Rect^ Rect][@(0.0.255) `&]_[*@3 rect], +[@(0.0.255) int]_[*@3 line], [@(0.0.255) int`&]_[*@3 l], [@(0.0.255) int]_`&[*@3 h])&] +[s2;%% Returns lower and upper limits [%-*@3 l] [%-*@3 h] of characters +of [%-*@3 line] that are in rectangular selection [%-*@3 rect]. Returns +false when line is not in selection.&] +[s3;%% &] +[s4; &] +[s5;:LineEdit`:`:ScrollUp`(`): [@(0.0.255) void]_[* ScrollUp]()&] +[s2;%% Scrolls the text single line up.&] +[s3; &] +[s4; &] +[s5;:LineEdit`:`:ScrollDown`(`): [@(0.0.255) void]_[* ScrollDown]()&] +[s2;%% Scrolls the text single line down.&] +[s3; &] +[s4; &] +[s5;:LineEdit`:`:ScrollPageUp`(`): [@(0.0.255) void]_[* ScrollPageUp]()&] +[s2;%% Scrolls the text one page up.&] +[s3; &] +[s4; &] +[s5;:LineEdit`:`:ScrollPageDown`(`): [@(0.0.255) void]_[* ScrollPageDown]()&] +[s2;%% Scrolls the text one page down.&] +[s3; &] +[s4; &] +[s5;:LineEdit`:`:ScrollBegin`(`): [@(0.0.255) void]_[* ScrollBegin]()&] +[s2;%% Scrolls the text to the begin.&] +[s3; &] +[s4; &] +[s5;:LineEdit`:`:ScrollEnd`(`): [@(0.0.255) void]_[* ScrollEnd]()&] +[s2;%% Scrolls the text to the end.&] +[s3; &] +[s4; &] +[s5;:LineEdit`:`:GetLineScreenRect`(int`)const: [_^Rect^ Rect]_[* GetLineScreenRect]([@(0.0.255) i +nt]_[*@3 line])_[@(0.0.255) const]&] +[s2;%% Gets the absolute screen rectangle position of [%-*@3 line].&] +[s5;K:`:`:LineEdit`:`:TopCursor`(`): [@(0.0.255) void][@(64) _]TopCursor[@(64) ()]&] +[s2;%% Scrolls the text to place the line with cursor is first in +the view.&] +[s3; &] +[s4; &] +[s5;:LineEdit`:`:TopCursor`(int`): [@(0.0.255) void]_[* TopCursor]([@(0.0.255) int]_[*@3 line +s]_`=_[@3 0])&] +[s2;%% Scrolls the text to place the line with cursor placed [%-*@3 lines] +from the top.&] +[s3;%% &] +[s4; &] +[s5;:LineEdit`:`:CenterCursor`(`): [@(0.0.255) void]_[* CenterCursor]()&] +[s2;%% Scrolls the text to place the line with cursor at the center +of the view.&] +[s3; &] +[s4; &] +[s5;:LineEdit`:`:MoveUpDown`(int`,bool`): [@(0.0.255) void]_[* MoveUpDown]([@(0.0.255) int]_ +[*@3 n], [@(0.0.255) bool]_[*@3 sel]_`=_[@(0.0.255) false])&] +[s2;%% Moves the cursor [%-*@3 n] lines up ([%-*@3 n] is negative) or +down. If [%-*@3 sel] is true, selects characters between starting +and ending cursor position.&] +[s3; &] +[s4; &] +[s5;:LineEdit`:`:MoveLeft`(bool`): [@(0.0.255) void]_[* MoveLeft]([@(0.0.255) bool]_[*@3 sel]_ +`=_[@(0.0.255) false])&] +[s5;:LineEdit`:`:MoveRight`(bool`): [@(0.0.255) void]_[* MoveRight]([@(0.0.255) bool]_[*@3 se +l]_`=_[@(0.0.255) false])&] +[s5;:LineEdit`:`:MoveUp`(bool`): [@(0.0.255) void]_[* MoveUp]([@(0.0.255) bool]_[*@3 sel]_`=_ +[@(0.0.255) false])&] +[s5;:LineEdit`:`:MoveDown`(bool`): [@(0.0.255) void]_[* MoveDown]([@(0.0.255) bool]_[*@3 sel]_ +`=_[@(0.0.255) false])&] +[s5;:LineEdit`:`:MovePageUp`(bool`): [@(0.0.255) void]_[* MovePageUp]([@(0.0.255) bool]_[*@3 s +el]_`=_[@(0.0.255) false])&] +[s5;:LineEdit`:`:MovePageDown`(bool`): [@(0.0.255) void]_[* MovePageDown]([@(0.0.255) bool]_ +[*@3 sel]_`=_[@(0.0.255) false])&] +[s5;:LineEdit`:`:MoveHome`(bool`): [@(0.0.255) void]_[* MoveHome]([@(0.0.255) bool]_[*@3 sel]_ +`=_[@(0.0.255) false])&] +[s5;:LineEdit`:`:MoveEnd`(bool`): [@(0.0.255) void]_[* MoveEnd]([@(0.0.255) bool]_[*@3 sel]_`= +_[@(0.0.255) false])&] +[s5;:LineEdit`:`:MoveTextBegin`(bool`): [@(0.0.255) void]_[* MoveTextBegin]([@(0.0.255) boo +l]_[*@3 sel]_`=_[@(0.0.255) false])&] +[s5;:LineEdit`:`:MoveTextEnd`(bool`): [@(0.0.255) void]_[* MoveTextEnd]([@(0.0.255) bool]_[*@3 s +el]_`=_[@(0.0.255) false])&] +[s2;%% [%- Moves the cursor in specified direction (Home/End are beginning/end +of line). ]If [%-*@3 sel] is true, selects characters between starting +and ending cursor position.&] +[s3; &] +[s4; &] +[s5;:LineEdit`:`:InsertChar`(dword`,int`,bool`): [@(0.0.255) bool]_[* InsertChar]([_^dword^ d +word]_[*@3 key], [@(0.0.255) int]_[*@3 count]_`=_[@3 1], [@(0.0.255) bool]_[*@3 canoverwrite]_ +`=_[@(0.0.255) false])&] +[s2;%% Inserts [%-*@3 count ]characters [%-*@3 key] at cursor position. +If [%-*@3 canoverwrite] is true, overwrite mode (as set by user +pressing Insert key) can be used.&] +[s3; &] +[s4; &] +[s5;:LineEdit`:`:DeleteChar`(`): [@(0.0.255) void]_[* DeleteChar]()&] +[s2;%% Deletes character at cursor position.&] +[s3; &] +[s4; &] +[s5;:LineEdit`:`:Backspace`(`): [@(0.0.255) void]_[* Backspace]()&] +[s2;%% If character is not first in the text, deletes it and moves +cursor one position back.&] +[s3; &] +[s4; &] +[s5;:LineEdit`:`:DeleteLine`(`): [@(0.0.255) void]_[* DeleteLine]()&] +[s2;%% Deletes a line with cursor (if it is not the only line in +the text).&] +[s3; &] +[s4; &] +[s5;:LineEdit`:`:CutLine`(`): [@(0.0.255) void]_[* CutLine]()&] +[s2;%% Stores a line to clipboard and calls DeleteLine.&] +[s3; &] +[s4; &] +[s5;:LineEdit`:`:PasteColumn`(const WString`&`): [@(0.0.255) void]_[* PasteColumn]([@(0.0.255) c +onst]_[_^WString^ WString][@(0.0.255) `&]_[*@3 text])&] +[s2;%% Pastes lines of [%-*@3 text] into actual graphical column of +text.&] +[s3;%% &] +[s4; &] +[s5;:LineEdit`:`:PasteColumn`(`): [@(0.0.255) void]_[* PasteColumn]()&] +[s2;%% PasteColumn with clipboard text.&] +[s3; &] +[s4; &] +[s5;:LineEdit`:`:Sort`(`): [@(0.0.255) void]_[* Sort]()&] +[s2;%% Sorts lines based on rectangular selection.&] +[s3; &] +[s4; &] +[s5;:LineEdit`:`:GetScrollPos`(`)const: [_^Point^ Point]_[* GetScrollPos]()_[@(0.0.255) con +st]&] +[s2;%% Returns the actual scroll position.&] +[s3; &] +[s4; &] +[s5;:LineEdit`:`:GetPageSize`(`): [_^Size^ Size]_[* GetPageSize]()&] +[s2;%% Returns the current view size in character cells.&] +[s3; &] +[s4; &] +[s5;:LineEdit`:`:SetScrollPos`(Point`): [@(0.0.255) void]_[* SetScrollPos]([_^Point^ Point]_ +[*@3 p])&] +[s2;%% Sets the scroll position of view, e.g. to the value obtained +by GetScrollPos.&] +[s3; &] +[s4; &] +[s5;:LineEdit`:`:GetEditPos`(`)const: [_^LineEdit`:`:EditPos^ EditPos]_[* GetEditPos]()_[@(0.0.255) c +onst]&] +[s2;%% Returns the edit position in the text to be restored later. +Edit position comprises cursor and scrollbar positions.&] +[s3; &] +[s4; &] +[s5;:LineEdit`:`:SetEditPos`(const LineEdit`:`:EditPos`&`): [@(0.0.255) void]_[* SetEditP +os]([@(0.0.255) const]_[_^LineEdit`:`:EditPos^ LineEdit`::EditPos][@(0.0.255) `&]_[*@3 pos +])&] +[s2;%% Sets the edit position obtained by calling GetEditPos. If +cursor is not in the view after restoring, view is scrolled so +that it is by calling ScrollIntoCursor.&] +[s3; &] +[s4; &] +[s5;:LineEdit`:`:SetEditPosSb`(const LineEdit`:`:EditPos`&`): [@(0.0.255) void]_[* SetEdi +tPosSb]([@(0.0.255) const]_[_^LineEdit`:`:EditPos^ LineEdit`::EditPos][@(0.0.255) `&]_[*@3 p +os])&] +[s2;%% Sets the edit position obtained by calling GetEditPos. Unlike +SetEditPos, no scrolls are performed to get cursor into the view.&] +[s3; &] +[s4; &] +[s5;:LineEdit`:`:ScrollIntoCursor`(`): [@(0.0.255) void]_[* ScrollIntoCursor]()&] +[s2;%% Performs minimal scroll to get the cursor into the view. `"Minimal`" +means that if cursor is `"before`" the view, view is scrolled +to move cursor to the first line, if it is `"after`", it is moved +to the last line.&] +[s3; &] +[s4; &] +[s5;:LineEdit`:`:GetCaretPoint`(`)const: [_^Point^ Point]_[* GetCaretPoint]()_[@(0.0.255) c +onst]&] +[s2;%% Returns the current caret position.&] +[s3; &] +[s4; &] +[s5;:LineEdit`:`:Clear`(`): [@(0.0.255) void]_[* Clear]()&] +[s2;%% Sets the text empty.&] +[s3; &] +[s4; &] +[s5;:LineEdit`:`:OverWriteMode`(bool`): [@(0.0.255) void]_[* OverWriteMode]([@(0.0.255) boo +l]_[*@3 o]_`=_[@(0.0.255) true])&] +[s3; &] +[s4; &] +[s5;:LineEdit`:`:IsOverWriteMode`(`)const: [@(0.0.255) bool]_[* IsOverWriteMode]()_[@(0.0.255) c +onst]&] +[s2;%% In OverWriteMode mode, input characters replace the content +instead of being inserted.&] +[s3; &] +[s4; &] +[s5;:LineEdit`:`:RefreshChars`(bool`(`*`)`(int c`)`): [@(0.0.255) void]_[* RefreshChars]( +[@(0.0.255) bool]_(`*[*@3 predicate])([@(0.0.255) int]_c))&] +[s2;%% Calls [%-*@3 predicate] for all characters in current view and +when it returns true refreshes (schedules for repainting) character +cell. It is useful for advanced code editors (e.g. refreshing +color of braces in TheIDE editor).&] +[s3; &] +[s4; &] +[s5;:LineEdit`:`:TabSize`(int`): [_^LineEdit^ LineEdit][@(0.0.255) `&]_[* TabSize]([@(0.0.255) i +nt]_[*@3 n])&] +[s2;%% Sets the tabulator size.&] +[s3; &] +[s4; &] +[s5;:LineEdit`:`:GetTabSize`(`)const: [@(0.0.255) int]_[* GetTabSize]()_[@(0.0.255) const]&] +[s2;%% Returns current tabulator size.&] +[s3; &] +[s4; &] +[s5;:LineEdit`:`:BorderColumn`(int`,Color`): [_^LineEdit^ LineEdit][@(0.0.255) `&]_[* Borde +rColumn]([@(0.0.255) int]_[*@3 col], [_^Color^ Color]_[*@3 c]_`=_SColorFace())&] +[s2;%% Displays a border column of width [%-*@3 col] and color [%-*@3 c].&] +[s3; &] +[s4; &] +[s5;:Upp`:`:LineEdit`:`:GetBorderColumn`(`)const: [@(0.0.255) int]_[* GetBorderColumn]()_ +[@(0.0.255) const]&] +[s2;%% Return border column position.&] +[s3; &] +[s4; &] +[s5;:LineEdit`:`:SetFont`(Font`): [_^LineEdit^ LineEdit][@(0.0.255) `&]_[* SetFont]([_^Font^ F +ont]_[*@3 f])&] +[s2;%% Sets the font. HighlightLine can replace this font, however, +the size of character cell is determined by this font (note that +CJK ideograms are two character cells wide). Font should be monospaced. +Returns `*this. Default font is Courier(16).&] +[s3; &] +[s4; &] +[s5;:LineEdit`:`:GetFont`(`)const: [_^Font^ Font]_[* GetFont]()_[@(0.0.255) const]&] +[s2;%% Returns the font.&] +[s3; &] +[s4; &] +[s5;:LineEdit`:`:NoHorzScrollbar`(bool`): [_^LineEdit^ LineEdit][@(0.0.255) `&]_[* NoHorzSc +rollbar]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2;%% In this mode horizontal scrollbar is never shown. Default +is off.&] +[s3; &] +[s4; &] +[s5;:LineEdit`:`:IsNoHorzScrollbar`(`)const: [@(0.0.255) bool]_[* IsNoHorzScrollbar]()_[@(0.0.255) c +onst]&] +[s2;%% Returns status of NoHrozScrollbar.&] +[s3; &] +[s4; &] +[s5;:LineEdit`:`:ShowTabs`(bool`): [_^LineEdit^ LineEdit][@(0.0.255) `&]_[* ShowTabs]([@(0.0.255) b +ool]_[*@3 st]_`=_[@(0.0.255) true])&] +[s2;%% In this mode widget displays tabulators with faint graphics. +Default is off.&] +[s3; &] +[s4; &] +[s5;:LineEdit`:`:IsShowTabs`(`)const: [@(0.0.255) bool]_[* IsShowTabs]()_[@(0.0.255) const]&] +[s2;%% Returns status of ShowTabs..&] +[s3; &] +[s4; &] +[s5;:LineEdit`:`:ShowSpaces`(bool`): [_^LineEdit^ LineEdit][@(0.0.255) `&]_[* ShowSpaces]([@(0.0.255) b +ool]_[*@3 ss]_`=_[@(0.0.255) true])&] +[s2;%% In this mode widget displays spaces with faint dots. Default +is off.&] +[s3;%% &] +[s4; &] +[s5;:LineEdit`:`:IsShowSpaces`(`)const: [@(0.0.255) bool]_[* IsShowSpaces]()_[@(0.0.255) co +nst]&] +[s2;%% Returns status of ShowSpaces.&] +[s3; &] +[s4; &] +[s5;:Upp`:`:LineEdit`:`:ShowLineEndings`(bool`): [_^Upp`:`:LineEdit^ LineEdit][@(0.0.255) `& +]_[* ShowLineEndings]([@(0.0.255) bool]_[*@3 sl]_`=_[@(0.0.255) true])&] +[s2;%% In this mode widget displays line endings with faint dots. +Default is off.&] +[s3;%% &] +[s4; &] +[s5;:Upp`:`:LineEdit`:`:IsShowLineEndings`(`)const: [@(0.0.255) bool]_[* IsShowLineEnding +s]()_[@(0.0.255) const]&] +[s2;%% Returns status of ShowLineEndings.&] +[s3; &] +[s4; &] +[s5;:Upp`:`:LineEdit`:`:WarnWhiteSpace`(bool`): [_^Upp`:`:LineEdit^ LineEdit][@(0.0.255) `& +]_[* WarnWhiteSpace]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2;%% In this mode widget shows whitespaces that seem to be misplaced, +like tabs after spaces or if line ends with spaces. Default is +off.&] +[s3;%% &] +[s4; &] +[s5;:Upp`:`:LineEdit`:`:IsWantWhiteSpace`(`)const: [@(0.0.255) bool]_[* IsWantWhiteSpace]( +)_[@(0.0.255) const]&] +[s2;%% Returns status of WarnWhiteSpace.&] +[s3; &] +[s4; &] +[s5;:LineEdit`:`:WithCutLine`(bool`): [_^LineEdit^ LineEdit][@(0.0.255) `&]_[* WithCutLine]( +[@(0.0.255) bool]_[*@3 b])&] +[s2;%% In this mode widget calls CutLine when user presses Ctrl`+Y +or Ctrl`+L. Default is on.&] +[s0; &] +[s4; &] +[s5;:LineEdit`:`:NoCutLine`(`): [_^LineEdit^ LineEdit][@(0.0.255) `&]_[* NoCutLine]()&] +[s2;%% Switches WithCutLine off.&] +[s3;%% &] +[s4; &] +[s5;:LineEdit`:`:IsWithCutLine`(`)const: [@(0.0.255) bool]_[* IsWithCutLine]()_[@(0.0.255) c +onst]&] +[s2;%% Returns status of WithCutLine.&] +[s3; &] +[s4; &] +[s5;:LineEdit`:`:SetFilter`(int`(`*`)`(int c`)`): [_^LineEdit^ LineEdit][@(0.0.255) `&]_[* S +etFilter]([@(0.0.255) int]_(`*[*@3 f])([@(0.0.255) int]_c))&] +[s2;%% Sets the filter of characters processed. Filter function can +alter characters before they are inserted into the text. If filter +function returns zero, character is rejected.&] +[s0; &] +[s0; &] +[ {{10000@3 [s0;%% [*@(229)4 LineEdit`::Highlight]]}}&] +[s3; &] +[s1;:LineEdit`:`:Highlight`:`:struct: [@(0.0.255)3 struct][3 _][*3 Highlight][3 _:_][@(0.0.255)3 p +ublic][3 _][*@3;3 Moveable][@(0.0.255)3 <][*3 Highlight][@(0.0.255)3 >][3 _]&] +[s9; This structure defines syntax highlighting properties of single +character cell. &] +[s3;%% &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0;%% [* Public Member List]]}}&] +[s3; &] +[s5;:LineEdit`:`:Highlight`:`:paper: [_^Color^ Color]_[* paper]&] +[s3;%% &] +[s4; &] +[s5;:LineEdit`:`:Highlight`:`:ink: [_^Color^ Color]_[* ink]&] +[s3; &] +[s4; &] +[s5;:LineEdit`:`:Highlight`:`:font: [_^Font^ Font]_[* font]&] +[s3; &] +[s4; &] +[s5;:LineEdit`:`:Highlight`:`:chr: [_^wchar^ wchar]_[* chr]&] +[s3;%% &] +[s4; &] +[s5;:LineEdit`:`:Highlight`:`:operator`=`=`(const LineEdit`:`:Highlight`&`)const: [@(0.0.255) b +ool]_[* operator`=`=]([@(0.0.255) const]_[_^LineEdit`:`:Highlight^ Highlight][@(0.0.255) `& +]_[*@3 h])_[@(0.0.255) const]&] +[s2;%% Equality comparison.&] +[s3; &] [s0; ]] \ No newline at end of file diff --git a/uppsrc/CtrlLib/src.tpp/MenuBar$en-us.tpp b/uppsrc/CtrlLib/src.tpp/MenuBar_en-us.tpp similarity index 97% rename from uppsrc/CtrlLib/src.tpp/MenuBar$en-us.tpp rename to uppsrc/CtrlLib/src.tpp/MenuBar_en-us.tpp index c02364484..3897ee5e8 100644 --- a/uppsrc/CtrlLib/src.tpp/MenuBar$en-us.tpp +++ b/uppsrc/CtrlLib/src.tpp/MenuBar_en-us.tpp @@ -1,149 +1,149 @@ -topic "MenuBar"; -[2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,0#27521748481378242620020725143825:desc] -[0 $$3,0#96390100711032703541132217272105:end] -[H6;0 $$4,0#05600065144404261032431302351956:begin] -[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] -[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] -[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] -[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] -[b42;2 $$9,9#13035079074754324216151401829390:normal] -[{_}%EN-US -[ {{10000@3 [s0; [*@(229)4 MenuBar]]}}&] -[s3;%- &] -[s1;:MenuBar`:`:class:%- [@(0.0.255)3 class][3 _][*3 MenuBar][3 _:_][@(0.0.255)3 public][3 _][*@3;3 B -arCtrl]&] -[s2; &] -[s2; -@@image:831&643 -‚ƒ…€ç€€€ƒ™ÿ€€€€øœíÏë“Áþ”Ç·õßðŸýðªÞ¬Ø‹½Èù•ï‚ÂÁ¼îø“ꥅ‰íÈѪúð¢¤ôƒ”ƒÇÑ둬¼­’Ä€’–” -ۊ⥅öÚù®Ã¢ëìüÚßÉþ˜÷’ü¿ž¼Â²™ù﮾ûÞ˜äêöúº¸Ž£‹Û“ÑåÎô¥³óŒã¿ºº£ìæ·îŸÍŽìµýÕæçþ·• -ŠåŽË÷·ú«²¿¿¾Ãü ¸Ø™ð°²¹ààåÀÁÊœî¸â´Œ’רÑñÄ’ÂÆ›½¥µÒ…¥ŒÛÞ„‡ûΗ›ØÖšû„–˜Èø®‘åá’㣠-Äœð„·Âœî“¹ð¨•¬ù¢µ¶Ÿé¶äôúÖ²Û¿ÁŠ”¢»ý’ý¸›ƒ¬å•º¤“¹ç¯ÏµÃ‘‘î•ÇÄ힣äýòî³Ï䞟ÿá„òªÃ´Æ½ -¼êö”‹ÃᘌÿœùÌ‘¬ðÊ€‡žìȸô’Ë…ÃÿÐ÷ÿ’ƒÊñ¹Ã¸”Ûˆ¸¼´Å®åƆƑϤܷ¨í¸½æóý­ÑÇÔ¯éÒ»ŸßÏåÅ -ùë†ÕçŽá€íƒ–‡’²ã‹€ã¢¸Ø™ðû°²¡ŽÆ›çü°’³áˆ¡àž’Ó¾¸²¡›ˆðÊŸö…Ç¢õ‹ˆÌ¶ààŽåÀÁÊ’œÇ Çǧ§§ýþ -¿ÿìììüüœ€¸èñÄé‡ú­Žæ³¹µµ ¥ÀœŸŸ‹„¡©ˆÇҌɃ½·¹æðÍýÖð©ñ¥¸Ö××ä…‘ÃÔ­Š†ðÄÚï¢ÌÌÌñ¦¶üÒãó -ç¹Ä¸’œ««ó«ÆÃàèõ®ú§§§ÕãàÜåÆÇòá¨îÕÉðÚëµÚ½ìÞ§Á¡äºñžæ«´ÊÙð¤¦é¢çËÅ™žü’Çæ¬Ú¢®ßºÊ¹³ÃýŸ -×øÄÅ–‡±œ–Ø’‘œ–­ÒŽ·³…ݣLjá«Í¶¶ÕØãñì˜ÇœŽ™áÏ÷Ü‘ŽÛÍâÀ½…Ç«Õ⊿ö˜óßÖ©¦ô–™¾ø¤”éÙî…Æã -õ‚£ŠâÝÈÃ…çæÈŽÖ†œ‘¬Œ¸Ø™§Žî¨¤äÏÆß–» Ò²ƒ¸Îè剃ü³Ø€„ÛŽœÐ˜µ††¿•ƒ‡“€‡«‡«‡à«‡«µð© -ÿœ“€ƒ•€ƒ×•Âàж—áØóñ·ìŽ‘±øœŒÇ‰½™Ò»ô™ÂŸðå»¤í¸˜€Ãø¯Ò³ÃÒňò‰ÜØ™Œ…Åð¾ÐÚš¯²¹Š±Í¸ŒÓ­Ÿ -éèï¹Î¸¦ÚðÑðì뇭Ÿ¡À‹ÇÌݬìéÓÒŽÌߦؤ»ìçÖ•ü¥‰¸ Ý»”·ÂãðÜ›’ÆÁð¸Šö²ßÕÆõÅÁÊö¨Æ«œ—ØÆ -‡Íìßïî‹•è¿Òœ¾Š¢¹›¹©€Žãã¦ÐÓ³àÈóþƒ‚¨¤€ƒ‡•𮫇€«‡«‡«Êùâ ß¹¹Áá–ƒ‡”ÆÀÁ¶ÊÀÁÊÀÁÊ -ÛÀÁÊÀÁÊ™ôžÝà •ðå°’Š•«…É®Žã³ú›’ØÇœÓ…ÉŽÿ³©žò¨ÀÁÊÅ„¸Œ›ûœÕÐìš”Œ‡ñÓ½Žü ï­šÂÑ–«ý•ð -€€‡Ÿ±Ü»Ê¤œ÷ì”þíðèìŠÕÎÏ¡ðÀ¥‰«ÑýÉ’ñ¹Çôº…ï¬ÐØ©©ÖÃÍ¡¢‘þ“ŒÒɸöèÿ €Šµì€€ŽÚ‡«¹šðÀÈ̈ãñ -Ôåü¦éÞƒû¹­š¬¯¯ø¯¬¬ÌÏÏ‹Îãñï±ûƒ‰Ûã냉ƒ§ÜŸÎ€Ý¾õ³”¦ÉÄ¥ÂÌâÀ´†ÞËË¿ãë£áÕÇյÅÛíùÁõŠŽ -ûƒýÝå“õÒçÒ’€¨Þå“ԯ߬̀½¸ªÿ§®É§ðúÚÚú™›ôΆµñìö»òã蜕œ‡‡­Îѯß÷ÞýþåôöóÃÓñð÷ãûæ¤Ù³§ -ñÚ–©Ûš–•‘È‹ÁÂÔªþ¿Ÿ¼óÖßÁñûð› ÒÃÝÛ•ÕËð™”ìûýê­Ç§…å‘ÀÿÞ€ˆÅ -&] -[s0; &] -[s9; This class provides the menu hierarchy. It can be used either -as Frame or as regular Ctrl (in that case it represents top`-level -menu), or be pop`-up as local menu (PopUp or Execute).&] -[s3; &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Public Method List]]}}&] -[s3;%- &] -[s5;:MenuBar`:`:GetStdHeight`(Font`):%- [@(0.0.255) static] [@(0.0.255) int]_[* GetStdHeigh -t]([_^Font^ Font]_[*@3 font]_`=_StdFont())&] -[s2; The height of top`-level menu using the [%-*@3 font].&] -[s3; &] -[s4;%- &] -[s5;:MenuBar`:`:CloseMenu`(`):%- [@(0.0.255) void]_[* CloseMenu]()&] -[s2; Forces closing any open sub`-menus.&] -[s3; &] -[s4;%- &] -[s5;:MenuBar`:`:Set`(Callback1``):%- [@(0.0.255) void]_[* Set]([_^Callback1^ Callba -ck1][@(0.0.255) <]Bar[@(0.0.255) `&>]_[*@3 menu])&] -[s2; Sets the top`-level [%-*@3 menu]. Use for top`-level menu bars -only.&] -[s3; &] -[s4;%- &] -[s5;:MenuBar`:`:Post`(Callback1``):%- [@(0.0.255) void]_[* Post]([_^Callback1^ Call -back1][@(0.0.255) <]Bar[@(0.0.255) `&>]_[*@3 bar])&] -[s2; Deprecated `- do not use.&] -[s3; &] -[s4;%- &] -[s5;:MenuBar`:`:PopUp`(Ctrl`*`,Point`,Size`):%- [@(0.0.255) void]_[* PopUp]([_^Ctrl^ Ctrl]_ -`*[*@3 owner], [_^Point^ Point]_[*@3 p], [_^Size^ Size]_[*@3 rsz]_`=_[_^Size^ Size]([@3 0], -[@3 0]))&] -[s2; Pop`-ups the menu at [%-*@3 p ]in the [%-*@3 owner] view area. [%-*@3 sz] -is the size of menu, if zero, needed size is computed. Menu can -be defined by issuing individual Add methods before calling PopUp.&] -[s3; &] -[s4;%- &] -[s5;:MenuBar`:`:PopUp`(Point`):%- [@(0.0.255) void]_[* PopUp]([_^Point^ Point]_[*@3 p])&] -[s2; Same as PopUp(GetActiveWindow(), p).&] -[s3; &] -[s4;%- &] -[s5;:MenuBar`:`:PopUp`(`):%- [@(0.0.255) void]_[* PopUp]()&] -[s2; Same as previous method, with p set to the current mouse position.&] -[s3; &] -[s4;%- &] -[s5;:MenuBar`:`:Execute`(Ctrl`*`,Point`):%- [@(0.0.255) void]_[* Execute]([_^Ctrl^ Ctrl]_`* -[*@3 owner], [_^Point^ Point]_[*@3 p])&] -[s2; Pop`-ups the menu at [%-*@3 p ]in the [%-*@3 owner] view area and -performs the modal loop for it.&] -[s3; &] -[s4;%- &] -[s5;:MenuBar`:`:Execute`(Point`):%- [@(0.0.255) void]_[* Execute]([_^Point^ Point]_[*@3 p])&] -[s2; Same as Execute(GetActiveWindow(), [%-*@3 p]).&] -[s3; &] -[s4;%- &] -[s5;:MenuBar`:`:Execute`(`):%- [@(0.0.255) void]_[* Execute]()&] -[s2; Same as previous method, with p set to the current mouse position.&] -[s3; &] -[s4;%- &] -[s5;:MenuBar`:`:Execute`(Ctrl`*`,Callback1``,Point`):%- [@(0.0.255) static] -[@(0.0.255) void]_[* Execute]([_^Ctrl^ Ctrl]_`*[*@3 owner], [_^Callback1^ Callback1][@(0.0.255) < -]Bar[@(0.0.255) `&>]_[*@3 proc], [_^Point^ Point]_[*@3 p])&] -[s2; Pop`-ups the menu based on [%-*@3 proc].&] -[s3; &] -[s4;%- &] -[s5;:MenuBar`:`:Execute`(Callback1``,Point`):%- [@(0.0.255) static] -[@(0.0.255) void]_[* Execute]([_^Callback1^ Callback1][@(0.0.255) <]Bar[@(0.0.255) `&>]_[*@3 p -roc], [_^Point^ Point]_[*@3 p])&] -[s2; Same as previous method, using GetActiveWindow() as owner.&] -[s3; &] -[s4;%- &] -[s5;:MenuBar`:`:Execute`(Callback1``):%- [@(0.0.255) static] -[@(0.0.255) void]_[* Execute]([_^Callback1^ Callback1][@(0.0.255) <]Bar[@(0.0.255) `&>]_[*@3 p -roc])&] -[s2; Same as previous method, using current mouse position.&] -[s3; &] -[s4;%- &] -[s5;:MenuBar`:`:IsEmpty`(`):%- [@(0.0.255) bool]_[* IsEmpty]()&] -[s2; Returns true if MenuBar has no items.&] -[s3; &] -[s4;%- &] -[s5;:MenuBar`:`:Clear`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Clear]()&] -[s2; Removes all items from MenuBar.&] -[s3; &] -[s4;%- &] -[s5;:MenuBar`:`:LeftGap`(int`):%- [_^MenuBar^ MenuBar][@(0.0.255) `&]_[* LeftGap]([@(0.0.255) i -nt]_[*@3 cx])&] -[s2; Minimum size reserved on the left side of menu items for icons -in pixels. Default value is 16. Returns `*this.&] -[s3; &] -[s4;%- &] -[s5;:MenuBar`:`:SetFont`(Font`):%- [_^MenuBar^ MenuBar][@(0.0.255) `&]_[* SetFont]([_^Font^ F -ont]_[*@3 f])&] -[s2; Sets the font to be used in MenuBar. Default is standard GUI -font. Returns `*this.&] -[s3; &] -[s4;%- &] -[s5;:MenuBar`:`:GetFont`(`)const:%- [_^Font^ Font]_[* GetFont]()_[@(0.0.255) const]&] -[s2; Returns the font used in MenuBar.&] -[s3; &] -[s4;%- &] -[s5;:MenuBar`:`:MaxIconSize`(Size`):%- [_^MenuBar^ MenuBar][@(0.0.255) `&]_[* MaxIconSize]( -[_^Size^ Size]_[*@3 sz])&] -[s2; Sets the maximum size of an iconn displaye inside a menu item -to [%-*@3 sz].&] -[s3; &] -[s4;%- &] -[s5;:MenuBar`:`:GetMaxIconSize`(`)const:%- [_^Size^ Size]_[* GetMaxIconSize]()_[@(0.0.255) c -onst]&] -[s2; Returns the maximum icons size.&] -[s3;%- &] +topic "MenuBar"; +[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,0#27521748481378242620020725143825:desc] +[0 $$3,0#96390100711032703541132217272105:end] +[H6;0 $$4,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] +[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] +[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] +[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] +[b42;2 $$9,9#13035079074754324216151401829390:normal] +[{_}%EN-US +[ {{10000@3 [s0; [*@(229)4 MenuBar]]}}&] +[s3;%- &] +[s1;:MenuBar`:`:class:%- [@(0.0.255)3 class][3 _][*3 MenuBar][3 _:_][@(0.0.255)3 public][3 _][*@3;3 B +arCtrl]&] +[s2; &] +[s2; +@@image:831&643 +‚ƒ…€ç€€€ƒ™ÿ€€€€øœíÏë“Áþ”Ç·õßðŸýðªÞ¬Ø‹½Èù•ï‚ÂÁ¼îø“ꥅ‰íÈѪúð¢¤ôƒ”ƒÇÑ둬¼­’Ä€’–” +ۊ⥅öÚù®Ã¢ëìüÚßÉþ˜÷’ü¿ž¼Â²™ù﮾ûÞ˜äêöúº¸Ž£‹Û“ÑåÎô¥³óŒã¿ºº£ìæ·îŸÍŽìµýÕæçþ·• +ŠåŽË÷·ú«²¿¿¾Ãü ¸Ø™ð°²¹ààåÀÁÊœî¸â´Œ’רÑñÄ’ÂÆ›½¥µÒ…¥ŒÛÞ„‡ûΗ›ØÖšû„–˜Èø®‘åá’㣠+Äœð„·Âœî“¹ð¨•¬ù¢µ¶Ÿé¶äôúÖ²Û¿ÁŠ”¢»ý’ý¸›ƒ¬å•º¤“¹ç¯ÏµÃ‘‘î•ÇÄ힣äýòî³Ï䞟ÿá„òªÃ´Æ½ +¼êö”‹ÃᘌÿœùÌ‘¬ðÊ€‡žìȸô’Ë…ÃÿÐ÷ÿ’ƒÊñ¹Ã¸”Ûˆ¸¼´Å®åƆƑϤܷ¨í¸½æóý­ÑÇÔ¯éÒ»ŸßÏåÅ +ùë†ÕçŽá€íƒ–‡’²ã‹€ã¢¸Ø™ðû°²¡ŽÆ›çü°’³áˆ¡àž’Ó¾¸²¡›ˆðÊŸö…Ç¢õ‹ˆÌ¶ààŽåÀÁÊ’œÇ Çǧ§§ýþ +¿ÿìììüüœ€¸èñÄé‡ú­Žæ³¹µµ ¥ÀœŸŸ‹„¡©ˆÇҌɃ½·¹æðÍýÖð©ñ¥¸Ö××ä…‘ÃÔ­Š†ðÄÚï¢ÌÌÌñ¦¶üÒãó +ç¹Ä¸’œ««ó«ÆÃàèõ®ú§§§ÕãàÜåÆÇòá¨îÕÉðÚëµÚ½ìÞ§Á¡äºñžæ«´ÊÙð¤¦é¢çËÅ™žü’Çæ¬Ú¢®ßºÊ¹³ÃýŸ +×øÄÅ–‡±œ–Ø’‘œ–­ÒŽ·³…ݣLjá«Í¶¶ÕØãñì˜ÇœŽ™áÏ÷Ü‘ŽÛÍâÀ½…Ç«Õ⊿ö˜óßÖ©¦ô–™¾ø¤”éÙî…Æã +õ‚£ŠâÝÈÃ…çæÈŽÖ†œ‘¬Œ¸Ø™§Žî¨¤äÏÆß–» Ò²ƒ¸Îè剃ü³Ø€„ÛŽœÐ˜µ††¿•ƒ‡“€‡«‡«‡à«‡«µð© +ÿœ“€ƒ•€ƒ×•Âàж—áØóñ·ìŽ‘±øœŒÇ‰½™Ò»ô™ÂŸðå»¤í¸˜€Ãø¯Ò³ÃÒňò‰ÜØ™Œ…Åð¾ÐÚš¯²¹Š±Í¸ŒÓ­Ÿ +éèï¹Î¸¦ÚðÑðì뇭Ÿ¡À‹ÇÌݬìéÓÒŽÌߦؤ»ìçÖ•ü¥‰¸ Ý»”·ÂãðÜ›’ÆÁð¸Šö²ßÕÆõÅÁÊö¨Æ«œ—ØÆ +‡Íìßïî‹•è¿Òœ¾Š¢¹›¹©€Žãã¦ÐÓ³àÈóþƒ‚¨¤€ƒ‡•𮫇€«‡«‡«Êùâ ß¹¹Áá–ƒ‡”ÆÀÁ¶ÊÀÁÊÀÁÊ +ÛÀÁÊÀÁÊ™ôžÝà •ðå°’Š•«…É®Žã³ú›’ØÇœÓ…ÉŽÿ³©žò¨ÀÁÊÅ„¸Œ›ûœÕÐìš”Œ‡ñÓ½Žü ï­šÂÑ–«ý•ð +€€‡Ÿ±Ü»Ê¤œ÷ì”þíðèìŠÕÎÏ¡ðÀ¥‰«ÑýÉ’ñ¹Çôº…ï¬ÐØ©©ÖÃÍ¡¢‘þ“ŒÒɸöèÿ €Šµì€€ŽÚ‡«¹šðÀÈ̈ãñ +Ôåü¦éÞƒû¹­š¬¯¯ø¯¬¬ÌÏÏ‹Îãñï±ûƒ‰Ûã냉ƒ§ÜŸÎ€Ý¾õ³”¦ÉÄ¥ÂÌâÀ´†ÞËË¿ãë£áÕÇյÅÛíùÁõŠŽ +ûƒýÝå“õÒçÒ’€¨Þå“ԯ߬̀½¸ªÿ§®É§ðúÚÚú™›ôΆµñìö»òã蜕œ‡‡­Îѯß÷ÞýþåôöóÃÓñð÷ãûæ¤Ù³§ +ñÚ–©Ûš–•‘È‹ÁÂÔªþ¿Ÿ¼óÖßÁñûð› ÒÃÝÛ•ÕËð™”ìûýê­Ç§…å‘ÀÿÞ€ˆÅ +&] +[s0; &] +[s9; This class provides the menu hierarchy. It can be used either +as Frame or as regular Ctrl (in that case it represents top`-level +menu), or be pop`-up as local menu (PopUp or Execute).&] +[s3; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Public Method List]]}}&] +[s3;%- &] +[s5;:MenuBar`:`:GetStdHeight`(Font`):%- [@(0.0.255) static] [@(0.0.255) int]_[* GetStdHeigh +t]([_^Font^ Font]_[*@3 font]_`=_StdFont())&] +[s2; The height of top`-level menu using the [%-*@3 font].&] +[s3; &] +[s4;%- &] +[s5;:MenuBar`:`:CloseMenu`(`):%- [@(0.0.255) void]_[* CloseMenu]()&] +[s2; Forces closing any open sub`-menus.&] +[s3; &] +[s4;%- &] +[s5;:MenuBar`:`:Set`(Callback1``):%- [@(0.0.255) void]_[* Set]([_^Callback1^ Callba +ck1][@(0.0.255) <]Bar[@(0.0.255) `&>]_[*@3 menu])&] +[s2; Sets the top`-level [%-*@3 menu]. Use for top`-level menu bars +only.&] +[s3; &] +[s4;%- &] +[s5;:MenuBar`:`:Post`(Callback1``):%- [@(0.0.255) void]_[* Post]([_^Callback1^ Call +back1][@(0.0.255) <]Bar[@(0.0.255) `&>]_[*@3 bar])&] +[s2; Deprecated `- do not use.&] +[s3; &] +[s4;%- &] +[s5;:MenuBar`:`:PopUp`(Ctrl`*`,Point`,Size`):%- [@(0.0.255) void]_[* PopUp]([_^Ctrl^ Ctrl]_ +`*[*@3 owner], [_^Point^ Point]_[*@3 p], [_^Size^ Size]_[*@3 rsz]_`=_[_^Size^ Size]([@3 0], +[@3 0]))&] +[s2; Pop`-ups the menu at [%-*@3 p ]in the [%-*@3 owner] view area. [%-*@3 sz] +is the size of menu, if zero, needed size is computed. Menu can +be defined by issuing individual Add methods before calling PopUp.&] +[s3; &] +[s4;%- &] +[s5;:MenuBar`:`:PopUp`(Point`):%- [@(0.0.255) void]_[* PopUp]([_^Point^ Point]_[*@3 p])&] +[s2; Same as PopUp(GetActiveWindow(), p).&] +[s3; &] +[s4;%- &] +[s5;:MenuBar`:`:PopUp`(`):%- [@(0.0.255) void]_[* PopUp]()&] +[s2; Same as previous method, with p set to the current mouse position.&] +[s3; &] +[s4;%- &] +[s5;:MenuBar`:`:Execute`(Ctrl`*`,Point`):%- [@(0.0.255) void]_[* Execute]([_^Ctrl^ Ctrl]_`* +[*@3 owner], [_^Point^ Point]_[*@3 p])&] +[s2; Pop`-ups the menu at [%-*@3 p ]in the [%-*@3 owner] view area and +performs the modal loop for it.&] +[s3; &] +[s4;%- &] +[s5;:MenuBar`:`:Execute`(Point`):%- [@(0.0.255) void]_[* Execute]([_^Point^ Point]_[*@3 p])&] +[s2; Same as Execute(GetActiveWindow(), [%-*@3 p]).&] +[s3; &] +[s4;%- &] +[s5;:MenuBar`:`:Execute`(`):%- [@(0.0.255) void]_[* Execute]()&] +[s2; Same as previous method, with p set to the current mouse position.&] +[s3; &] +[s4;%- &] +[s5;:MenuBar`:`:Execute`(Ctrl`*`,Callback1``,Point`):%- [@(0.0.255) static] +[@(0.0.255) void]_[* Execute]([_^Ctrl^ Ctrl]_`*[*@3 owner], [_^Callback1^ Callback1][@(0.0.255) < +]Bar[@(0.0.255) `&>]_[*@3 proc], [_^Point^ Point]_[*@3 p])&] +[s2; Pop`-ups the menu based on [%-*@3 proc].&] +[s3; &] +[s4;%- &] +[s5;:MenuBar`:`:Execute`(Callback1``,Point`):%- [@(0.0.255) static] +[@(0.0.255) void]_[* Execute]([_^Callback1^ Callback1][@(0.0.255) <]Bar[@(0.0.255) `&>]_[*@3 p +roc], [_^Point^ Point]_[*@3 p])&] +[s2; Same as previous method, using GetActiveWindow() as owner.&] +[s3; &] +[s4;%- &] +[s5;:MenuBar`:`:Execute`(Callback1``):%- [@(0.0.255) static] +[@(0.0.255) void]_[* Execute]([_^Callback1^ Callback1][@(0.0.255) <]Bar[@(0.0.255) `&>]_[*@3 p +roc])&] +[s2; Same as previous method, using current mouse position.&] +[s3; &] +[s4;%- &] +[s5;:MenuBar`:`:IsEmpty`(`):%- [@(0.0.255) bool]_[* IsEmpty]()&] +[s2; Returns true if MenuBar has no items.&] +[s3; &] +[s4;%- &] +[s5;:MenuBar`:`:Clear`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Clear]()&] +[s2; Removes all items from MenuBar.&] +[s3; &] +[s4;%- &] +[s5;:MenuBar`:`:LeftGap`(int`):%- [_^MenuBar^ MenuBar][@(0.0.255) `&]_[* LeftGap]([@(0.0.255) i +nt]_[*@3 cx])&] +[s2; Minimum size reserved on the left side of menu items for icons +in pixels. Default value is 16. Returns `*this.&] +[s3; &] +[s4;%- &] +[s5;:MenuBar`:`:SetFont`(Font`):%- [_^MenuBar^ MenuBar][@(0.0.255) `&]_[* SetFont]([_^Font^ F +ont]_[*@3 f])&] +[s2; Sets the font to be used in MenuBar. Default is standard GUI +font. Returns `*this.&] +[s3; &] +[s4;%- &] +[s5;:MenuBar`:`:GetFont`(`)const:%- [_^Font^ Font]_[* GetFont]()_[@(0.0.255) const]&] +[s2; Returns the font used in MenuBar.&] +[s3; &] +[s4;%- &] +[s5;:MenuBar`:`:MaxIconSize`(Size`):%- [_^MenuBar^ MenuBar][@(0.0.255) `&]_[* MaxIconSize]( +[_^Size^ Size]_[*@3 sz])&] +[s2; Sets the maximum size of an iconn displaye inside a menu item +to [%-*@3 sz].&] +[s3; &] +[s4;%- &] +[s5;:MenuBar`:`:GetMaxIconSize`(`)const:%- [_^Size^ Size]_[* GetMaxIconSize]()_[@(0.0.255) c +onst]&] +[s2; Returns the maximum icons size.&] +[s3;%- &] [s0; ]] \ No newline at end of file diff --git a/uppsrc/CtrlLib/src.tpp/OptionTree$en-us.tpp b/uppsrc/CtrlLib/src.tpp/OptionTree_en-us.tpp similarity index 98% rename from uppsrc/CtrlLib/src.tpp/OptionTree$en-us.tpp rename to uppsrc/CtrlLib/src.tpp/OptionTree_en-us.tpp index 564c5196d..c47cdafd5 100644 --- a/uppsrc/CtrlLib/src.tpp/OptionTree$en-us.tpp +++ b/uppsrc/CtrlLib/src.tpp/OptionTree_en-us.tpp @@ -1,127 +1,127 @@ -topic "OptionTree"; -[2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,0#27521748481378242620020725143825:desc] -[0 $$3,0#96390100711032703541132217272105:end] -[H6;0 $$4,0#05600065144404261032431302351956:begin] -[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] -[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] -[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] -[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] -[b42;2 $$9,9#13035079074754324216151401829390:normal] -[{_} -[ {{10000@3 [s0;%% [*@(229)4 OptionTree]]}}&] -[s3;%% &] -[s1;:OptionTree`:`:class: [@(0.0.255)3 class][3 _][*3 OptionTree][3 _:_][@(0.0.255)3 public][3 _][*@3;3 T -reeCtrl]&] -[s2;%% &] -[s2;%% -@@image:700&1000 -ˆƒð€ €€€‚àÿ€€€€ø§œíáêÛ°ú˜†ó§œ¤—ÑØ¹†»Åî°„Ÿ»Ïˆ£”ÊÀ‰¡”Ê™ã챟¦¬¦„õÙ«–ä×–¬½ÝùÑ«©í¼• -ØåÉï„•¢„Í•Îçϱ¯ûÚ§ÙŸ“„ÿ¾¶íêÇÄåòýù¹ñüüüò¿òòúŸÇãÁ«Ÿ¢º±¼àÓßïûúôÜÏïéƒìÌ’ßÏËÄÓ—§ÿ -ãµÏûÖØõóÉò骥è¢ÓËüûû£Ïèóâþã©ú¼þÞ¯ÚÛ’ÏÑç¬Íö›÷ì–ÎÞ³»ª÷¼ýÍ·ä„Ö¾ûô›ÔÅž‘¨Ÿß¿ýµ -”¯Ó¢Ý醳ÓէﯩÄÔ³¥âÌ®í¼´¥‘í»öåî¾Ó¢Ïß“¢Ï¿ÚúˆòÄ«£ðÞ§³³ÿç•®¦Þ§é—‰¾¼ÿÏ„ëç¬Ðñ”³«¹¢ÏÈ -݃šŸ·ÛÍôéùç¢æúùÕÙïýæïìܵ§øô™ÚÕýýâ±¡ïæºÁÿÔ׸®–Úäß߉˜û‘û¸ó¥÷„¤„½‰’ÿè·¸û¾‹œëÓËüÿÿ -ÛôÙô¬êí¸ê»™ã÷“ÇÑÒ‘¡µªÖ妤„€öèIJ Ð§–úÄ’£öÉü¤’¿×å¹´Þ羲ʶүدÏÎÇó†êþ§ùÌÈÐÇêÍß -ÐçÆ¾²¦Ï¿‘ñ”ýæä£ãÕú”Ë‹å£ÝãÿÌ¥ûûÞä¾’ÞíÿÄû×ܘŒâÓÕ•ÈǺçé¶ä“Áæ££Ðæ¾ðòܸþÇÂùÜ¥¬ô‰…¾± -ï¤ú¤ÿ°ô‰¥…¾±àý²ÿâ…÷¹ø¾²›ÕÏÁò‘¸Ï“ýè“×ëÕ­½œöÜÚ÷ü‰ïܧ©–Ʀ½»ÌÝÉ€ðõαŸ®¶ŸÑø²¢ƒëǬƒú” -†ßæ·¶ŸùõÄø¸„ýžÝ¦¸ªÐ¿Ý»¹¿”ñªæ£†Žä‘ª‚¾Å™š³Ôëªæ£ª—™ßªŒÏÛíæï̘üäèÉÀýæä£Û¾ëŸßšåüŽ™ -½ðüŽ…óËÂØè“‹ýâ¡ÜϬô‰…¾±×°¿„¥Ò§×©ƒÄ’㓵žÈÄï²ïÐÙëþÁü¼ãôù´ä󴼣㽭ȬïвÏáæªý½ˆö -צíÍäê—óäŽÃêúãÓè¨õå†ýŽÓ®þª”õ‹æú¥·šÍ«¦ïˆëìöÀÀýú—ôùÌÞ‘Þí—ˆïϧ­‡±ªÓʳ™£¬‡ ÉšŸñ½Èª -Ë©ãÍ®‡‰ƒ¿ßàøóÅ‚Øè“‹ýâ©íó´ÿ—ýâá¡Ï¬õýö×ß¿ªî³³ü¤ÿ„ÏøïËåå £­ÿŸîÓÛœ‰ŠÌŸìÌüÇÚ£¨ÏÕ‰ -«£¼ü„¾ÅÍç•›´û±«Ìâ¾—š¸›‘÷˜Í¼ü¤åùßÒêõ³³ü¤ÆúûÙÙ¾ÒýãþÞÙ¾Ò½ÿÁÙÙ¾ÒýüÔèÙ¾ÒݧÇï–Íí¿µè“‹ -äýâ¡Ï¬ô‰ý…¾±°¿„¥õºÏæ«”Îú»ÔÈãÍó·ŽÖ”ÖŸ¯ã™Þ‘柼ƒûéÎÀŽš÷ŒÙÔþ–Ê»ØþªÓåö³£ï˜ÖÙ§­áÞ±…æ -úµàÞ…ã´÷’†¾±Ð§Ö–úÄŸØè‚“ËèùÄéÆ‘Ë£ÊÓèùœª½‘õ¾”úœžÇ›ƒë¨™÷¼Žúô¹ïŒøžÇ°¾‹½ùãØŸßž -á‡ÿžÇª…ž÷Ç¡èÓâœõÐ¼Žƒýúäç²‘Š¾¥úË£¦ÊÃñ»–ίòá¡Ï¬ô‰…澱Ч–úÄÓÂþ’–æÛ–Á­¿ˆçꑌ¡§êýÅ  -ÅïØÝíÏÀÖäßÄæ£ûô¾·Õ†¼Ã®Êʨð‰Ú¢ãýÔÅÆÞ±šÏÿ˜çÿÓåæö„¿£ûÜÝÿ‘Ÿ÷Ä÷ŸºàŸËú‹¤¼Ã¼¾Ö—ì°þž -§¨ÀéŸ˜æØ¸þ§„Â䈡„²ùˆ‡¾¿ªô -&] -[s3;%% &] -[s9;%% Specialized TreeCtrl representing a tree of options. Parent -node option status is 3 state, representing all child items off, -child items mixed and all child items on. Option tree allows -external Option widgets to be used as nodes or provides internal -Option widgets if no external Option is specified.&] -[s3;%% &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0;%% [* Public Member List]]}}&] -[s3;%% &] -[s5;:OptionTree`:`:WhenOption: [_^Callback^ Callback]_[* WhenOption]&] -[s2;%% Some option has changed.&] -[s3;%% &] -[s4; &] -[s5;:OptionTree`:`:SetRoot`(const Image`&`,Option`&`,const char`*`): [@(0.0.255) void]_ -[* SetRoot]([@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img], -[_^Option^ Option][@(0.0.255) `&]_[*@3 option], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 t -ext]_`=_NULL)&] -[s5;:OptionTree`:`:SetRoot`(Option`&`,const char`*`): [@(0.0.255) void]_[* SetRoot]([_^Option^ O -ption][@(0.0.255) `&]_[*@3 option], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text]_`=_NU -LL)&] -[s5;:OptionTree`:`:SetRoot`(const Image`&`,const char`*`): [@(0.0.255) void]_[* SetRoot]( -[@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img], [@(0.0.255) const]_[@(0.0.255) c -har]_`*[*@3 text])&] -[s5;:OptionTree`:`:SetRoot`(const char`*`): [@(0.0.255) void]_[* SetRoot]([@(0.0.255) const -]_[@(0.0.255) char]_`*[*@3 text])&] -[s2;%% Sets the root item.&] -[s3;%% &] -[s4; &] -[s5;:OptionTree`:`:Add`(int`,const Image`&`,Option`&`,const char`*`): [@(0.0.255) int]_ -[* Add]([@(0.0.255) int]_[*@3 parent], [@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 i -mg], [_^Option^ Option][@(0.0.255) `&]_[*@3 option], [@(0.0.255) const]_[@(0.0.255) char]_`* -[*@3 text]_`=_NULL)&] -[s5;:OptionTree`:`:Add`(int`,Option`&`,const char`*`): [@(0.0.255) int]_[* Add]([@(0.0.255) i -nt]_[*@3 parent], [_^Option^ Option][@(0.0.255) `&]_[*@3 option], [@(0.0.255) const]_[@(0.0.255) c -har]_`*[*@3 text]_`=_NULL)&] -[s5;:OptionTree`:`:Add`(int`,const Image`&`,const char`*`): [@(0.0.255) int]_[* Add]([@(0.0.255) i -nt]_[*@3 parent], [@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img], -[@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text])&] -[s5;:OptionTree`:`:Add`(int`,const char`*`): [@(0.0.255) int]_[* Add]([@(0.0.255) int]_[*@3 p -arent], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text])&] -[s2;%% Adds an item. &] -[s3;%% &] -[s4; &] -[s5;:OptionTree`:`:Insert`(int`,int`,const Image`&`,Option`&`,const char`*`): [@(0.0.255) i -nt]_[* Insert]([@(0.0.255) int]_[*@3 parent], [@(0.0.255) int]_[*@3 i], -[@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img], [_^Option^ Option][@(0.0.255) `& -]_[*@3 option], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text]_`=_NULL)&] -[s4; &] -[s5;:OptionTree`:`:Insert`(int`,int`,Option`&`,const char`*`): [@(0.0.255) int]_[* Insert -]([@(0.0.255) int]_[*@3 parent], [@(0.0.255) int]_[*@3 i], [_^Option^ Option][@(0.0.255) `&]_ -[*@3 option], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text]_`=_NULL)&] -[s4; &] -[s5;:OptionTree`:`:Insert`(int`,int`,const Image`&`,const char`*`): [@(0.0.255) int]_[* I -nsert]([@(0.0.255) int]_[*@3 parent], [@(0.0.255) int]_[*@3 i], [@(0.0.255) const]_[_^Image^ I -mage][@(0.0.255) `&]_[*@3 img], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text])&] -[s4; &] -[s5;:OptionTree`:`:Insert`(int`,int`,const char`*`): [@(0.0.255) int]_[* Insert]([@(0.0.255) i -nt]_[*@3 parent], [@(0.0.255) int]_[*@3 i], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text]) -&] -[s2; [%% Insert an item at position ][*@3 i][%% into ][*@3 parent.]&] -[s3;%% &] -[s4; &] -[s5;:OptionTree`:`:Get`(int`)const: [@(0.0.255) virtual] [@(0.0.255) int]_[* Get]([@(0.0.255) i -nt]_[*@3 id])_[@(0.0.255) const]&] -[s2;%% Returns the option setting for the item with id. Returns 1, -0 or Null if node is mixed.&] -[s3;%% &] -[s4; &] -[s5;:OptionTree`:`:Clear`(`): [@(0.0.255) void]_[* Clear]()&] -[s2;%% Removes all items.&] -[s3;%% &] -[s4; &] -[s5;:OptionTree`:`:ManualMode`(`): [_^OptionTree^ OptionTree][@(0.0.255) `&]_[* ManualMode]( -)&] -[s2;%% Switches the OptionTree to manual mode: checking an item does -not affect the checked/unchecked status of child items.&] -[s3; &] -[s4; &] -[s5;:OptionTree`:`:SetLabel`(int`,const char`*`): [@(0.0.255) void]_[* SetLabel]([@(0.0.255) i -nt]_[*@3 id], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text])&] -[s2;%% Sets the label of node [%-*@3 id] to [%-*@3 text].&] -[s3;%% &] -[s4; &] -[s5;:OptionTree`:`:GetLabel`(int`)const: [_^String^ String]_[* GetLabel]([@(0.0.255) int]_[*@3 i -d])_[@(0.0.255) const]&] -[s2;%% Returns the label of node [%-*@3 id].&] -[s3;%% &] +topic "OptionTree"; +[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,0#27521748481378242620020725143825:desc] +[0 $$3,0#96390100711032703541132217272105:end] +[H6;0 $$4,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] +[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] +[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] +[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] +[b42;2 $$9,9#13035079074754324216151401829390:normal] +[{_} +[ {{10000@3 [s0;%% [*@(229)4 OptionTree]]}}&] +[s3;%% &] +[s1;:OptionTree`:`:class: [@(0.0.255)3 class][3 _][*3 OptionTree][3 _:_][@(0.0.255)3 public][3 _][*@3;3 T +reeCtrl]&] +[s2;%% &] +[s2;%% +@@image:700&1000 +ˆƒð€ €€€‚àÿ€€€€ø§œíáêÛ°ú˜†ó§œ¤—ÑØ¹†»Åî°„Ÿ»Ïˆ£”ÊÀ‰¡”Ê™ã챟¦¬¦„õÙ«–ä×–¬½ÝùÑ«©í¼• +ØåÉï„•¢„Í•Îçϱ¯ûÚ§ÙŸ“„ÿ¾¶íêÇÄåòýù¹ñüüüò¿òòúŸÇãÁ«Ÿ¢º±¼àÓßïûúôÜÏïéƒìÌ’ßÏËÄÓ—§ÿ +ãµÏûÖØõóÉò骥è¢ÓËüûû£Ïèóâþã©ú¼þÞ¯ÚÛ’ÏÑç¬Íö›÷ì–ÎÞ³»ª÷¼ýÍ·ä„Ö¾ûô›ÔÅž‘¨Ÿß¿ýµ +”¯Ó¢Ý醳ÓէﯩÄÔ³¥âÌ®í¼´¥‘í»öåî¾Ó¢Ïß“¢Ï¿ÚúˆòÄ«£ðÞ§³³ÿç•®¦Þ§é—‰¾¼ÿÏ„ëç¬Ðñ”³«¹¢ÏÈ +݃šŸ·ÛÍôéùç¢æúùÕÙïýæïìܵ§øô™ÚÕýýâ±¡ïæºÁÿÔ׸®–Úäß߉˜û‘û¸ó¥÷„¤„½‰’ÿè·¸û¾‹œëÓËüÿÿ +ÛôÙô¬êí¸ê»™ã÷“ÇÑÒ‘¡µªÖ妤„€öèIJ Ð§–úÄ’£öÉü¤’¿×å¹´Þ羲ʶүدÏÎÇó†êþ§ùÌÈÐÇêÍß +ÐçÆ¾²¦Ï¿‘ñ”ýæä£ãÕú”Ë‹å£ÝãÿÌ¥ûûÞä¾’ÞíÿÄû×ܘŒâÓÕ•ÈǺçé¶ä“Áæ££Ðæ¾ðòܸþÇÂùÜ¥¬ô‰…¾± +ï¤ú¤ÿ°ô‰¥…¾±àý²ÿâ…÷¹ø¾²›ÕÏÁò‘¸Ï“ýè“×ëÕ­½œöÜÚ÷ü‰ïܧ©–Ʀ½»ÌÝÉ€ðõαŸ®¶ŸÑø²¢ƒëǬƒú” +†ßæ·¶ŸùõÄø¸„ýžÝ¦¸ªÐ¿Ý»¹¿”ñªæ£†Žä‘ª‚¾Å™š³Ôëªæ£ª—™ßªŒÏÛíæï̘üäèÉÀýæä£Û¾ëŸßšåüŽ™ +½ðüŽ…óËÂØè“‹ýâ¡ÜϬô‰…¾±×°¿„¥Ò§×©ƒÄ’㓵žÈÄï²ïÐÙëþÁü¼ãôù´ä󴼣㽭ȬïвÏáæªý½ˆö +צíÍäê—óäŽÃêúãÓè¨õå†ýŽÓ®þª”õ‹æú¥·šÍ«¦ïˆëìöÀÀýú—ôùÌÞ‘Þí—ˆïϧ­‡±ªÓʳ™£¬‡ ÉšŸñ½Èª +Ë©ãÍ®‡‰ƒ¿ßàøóÅ‚Øè“‹ýâ©íó´ÿ—ýâá¡Ï¬õýö×ß¿ªî³³ü¤ÿ„ÏøïËåå £­ÿŸîÓÛœ‰ŠÌŸìÌüÇÚ£¨ÏÕ‰ +«£¼ü„¾ÅÍç•›´û±«Ìâ¾—š¸›‘÷˜Í¼ü¤åùßÒêõ³³ü¤ÆúûÙÙ¾ÒýãþÞÙ¾Ò½ÿÁÙÙ¾ÒýüÔèÙ¾ÒݧÇï–Íí¿µè“‹ +äýâ¡Ï¬ô‰ý…¾±°¿„¥õºÏæ«”Îú»ÔÈãÍó·ŽÖ”ÖŸ¯ã™Þ‘柼ƒûéÎÀŽš÷ŒÙÔþ–Ê»ØþªÓåö³£ï˜ÖÙ§­áÞ±…æ +úµàÞ…ã´÷’†¾±Ð§Ö–úÄŸØè‚“ËèùÄéÆ‘Ë£ÊÓèùœª½‘õ¾”úœžÇ›ƒë¨™÷¼Žúô¹ïŒøžÇ°¾‹½ùãØŸßž +á‡ÿžÇª…ž÷Ç¡èÓâœõÐ¼Žƒýúäç²‘Š¾¥úË£¦ÊÃñ»–ίòá¡Ï¬ô‰…澱Ч–úÄÓÂþ’–æÛ–Á­¿ˆçꑌ¡§êýÅ  +ÅïØÝíÏÀÖäßÄæ£ûô¾·Õ†¼Ã®Êʨð‰Ú¢ãýÔÅÆÞ±šÏÿ˜çÿÓåæö„¿£ûÜÝÿ‘Ÿ÷Ä÷ŸºàŸËú‹¤¼Ã¼¾Ö—ì°þž +§¨ÀéŸ˜æØ¸þ§„Â䈡„²ùˆ‡¾¿ªô +&] +[s3;%% &] +[s9;%% Specialized TreeCtrl representing a tree of options. Parent +node option status is 3 state, representing all child items off, +child items mixed and all child items on. Option tree allows +external Option widgets to be used as nodes or provides internal +Option widgets if no external Option is specified.&] +[s3;%% &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0;%% [* Public Member List]]}}&] +[s3;%% &] +[s5;:OptionTree`:`:WhenOption: [_^Callback^ Callback]_[* WhenOption]&] +[s2;%% Some option has changed.&] +[s3;%% &] +[s4; &] +[s5;:OptionTree`:`:SetRoot`(const Image`&`,Option`&`,const char`*`): [@(0.0.255) void]_ +[* SetRoot]([@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img], +[_^Option^ Option][@(0.0.255) `&]_[*@3 option], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 t +ext]_`=_NULL)&] +[s5;:OptionTree`:`:SetRoot`(Option`&`,const char`*`): [@(0.0.255) void]_[* SetRoot]([_^Option^ O +ption][@(0.0.255) `&]_[*@3 option], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text]_`=_NU +LL)&] +[s5;:OptionTree`:`:SetRoot`(const Image`&`,const char`*`): [@(0.0.255) void]_[* SetRoot]( +[@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img], [@(0.0.255) const]_[@(0.0.255) c +har]_`*[*@3 text])&] +[s5;:OptionTree`:`:SetRoot`(const char`*`): [@(0.0.255) void]_[* SetRoot]([@(0.0.255) const +]_[@(0.0.255) char]_`*[*@3 text])&] +[s2;%% Sets the root item.&] +[s3;%% &] +[s4; &] +[s5;:OptionTree`:`:Add`(int`,const Image`&`,Option`&`,const char`*`): [@(0.0.255) int]_ +[* Add]([@(0.0.255) int]_[*@3 parent], [@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 i +mg], [_^Option^ Option][@(0.0.255) `&]_[*@3 option], [@(0.0.255) const]_[@(0.0.255) char]_`* +[*@3 text]_`=_NULL)&] +[s5;:OptionTree`:`:Add`(int`,Option`&`,const char`*`): [@(0.0.255) int]_[* Add]([@(0.0.255) i +nt]_[*@3 parent], [_^Option^ Option][@(0.0.255) `&]_[*@3 option], [@(0.0.255) const]_[@(0.0.255) c +har]_`*[*@3 text]_`=_NULL)&] +[s5;:OptionTree`:`:Add`(int`,const Image`&`,const char`*`): [@(0.0.255) int]_[* Add]([@(0.0.255) i +nt]_[*@3 parent], [@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img], +[@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text])&] +[s5;:OptionTree`:`:Add`(int`,const char`*`): [@(0.0.255) int]_[* Add]([@(0.0.255) int]_[*@3 p +arent], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text])&] +[s2;%% Adds an item. &] +[s3;%% &] +[s4; &] +[s5;:OptionTree`:`:Insert`(int`,int`,const Image`&`,Option`&`,const char`*`): [@(0.0.255) i +nt]_[* Insert]([@(0.0.255) int]_[*@3 parent], [@(0.0.255) int]_[*@3 i], +[@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img], [_^Option^ Option][@(0.0.255) `& +]_[*@3 option], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text]_`=_NULL)&] +[s4; &] +[s5;:OptionTree`:`:Insert`(int`,int`,Option`&`,const char`*`): [@(0.0.255) int]_[* Insert +]([@(0.0.255) int]_[*@3 parent], [@(0.0.255) int]_[*@3 i], [_^Option^ Option][@(0.0.255) `&]_ +[*@3 option], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text]_`=_NULL)&] +[s4; &] +[s5;:OptionTree`:`:Insert`(int`,int`,const Image`&`,const char`*`): [@(0.0.255) int]_[* I +nsert]([@(0.0.255) int]_[*@3 parent], [@(0.0.255) int]_[*@3 i], [@(0.0.255) const]_[_^Image^ I +mage][@(0.0.255) `&]_[*@3 img], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text])&] +[s4; &] +[s5;:OptionTree`:`:Insert`(int`,int`,const char`*`): [@(0.0.255) int]_[* Insert]([@(0.0.255) i +nt]_[*@3 parent], [@(0.0.255) int]_[*@3 i], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text]) +&] +[s2; [%% Insert an item at position ][*@3 i][%% into ][*@3 parent.]&] +[s3;%% &] +[s4; &] +[s5;:OptionTree`:`:Get`(int`)const: [@(0.0.255) virtual] [@(0.0.255) int]_[* Get]([@(0.0.255) i +nt]_[*@3 id])_[@(0.0.255) const]&] +[s2;%% Returns the option setting for the item with id. Returns 1, +0 or Null if node is mixed.&] +[s3;%% &] +[s4; &] +[s5;:OptionTree`:`:Clear`(`): [@(0.0.255) void]_[* Clear]()&] +[s2;%% Removes all items.&] +[s3;%% &] +[s4; &] +[s5;:OptionTree`:`:ManualMode`(`): [_^OptionTree^ OptionTree][@(0.0.255) `&]_[* ManualMode]( +)&] +[s2;%% Switches the OptionTree to manual mode: checking an item does +not affect the checked/unchecked status of child items.&] +[s3; &] +[s4; &] +[s5;:OptionTree`:`:SetLabel`(int`,const char`*`): [@(0.0.255) void]_[* SetLabel]([@(0.0.255) i +nt]_[*@3 id], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text])&] +[s2;%% Sets the label of node [%-*@3 id] to [%-*@3 text].&] +[s3;%% &] +[s4; &] +[s5;:OptionTree`:`:GetLabel`(int`)const: [_^String^ String]_[* GetLabel]([@(0.0.255) int]_[*@3 i +d])_[@(0.0.255) const]&] +[s2;%% Returns the label of node [%-*@3 id].&] +[s3;%% &] [s0; ] \ No newline at end of file diff --git a/uppsrc/CtrlLib/src.tpp/Option$en-us.tpp b/uppsrc/CtrlLib/src.tpp/Option_en-us.tpp similarity index 97% rename from uppsrc/CtrlLib/src.tpp/Option$en-us.tpp rename to uppsrc/CtrlLib/src.tpp/Option_en-us.tpp index 7c72959f3..fe6db24cd 100644 --- a/uppsrc/CtrlLib/src.tpp/Option$en-us.tpp +++ b/uppsrc/CtrlLib/src.tpp/Option_en-us.tpp @@ -1,134 +1,134 @@ -topic "Option"; -[2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,0#27521748481378242620020725143825:desc] -[0 $$3,0#96390100711032703541132217272105:end] -[H6;0 $$4,0#05600065144404261032431302351956:begin] -[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] -[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] -[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] -[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] -[b42;2 $$9,9#13035079074754324216151401829390:normal] -[{_} -[ {{10000@3 [s0;%% [*@(229)4 Option]]}}&] -[s3; &] -[s1;:Option`:`:class: [@(0.0.255)3 class][3 _][*3 Option][3 _:_][@(0.0.255)3 public][3 _][*@3;3 Push -er]&] -[s0; &] -[s2;%% -@@image:712&131 -(A3IAFQAAAOv/AAAAAHic7ZhtioNADIa9U++059hTLsMigiwiYhFZytKfDQkVm8xk4li7FBJeZD7UZB6T/PA8hLPL5XK5DtDp9GHRv8f5XgJiX2ghhG+0pmnatv252zAMTvWJVIEnTKNUq0c7Ljx6+fr6AklHW10DsYAGAOu6Xidq9VmlqJb52nmWl1Hdf1IgRilKSJfCB6REdRxHp1pAFXgCPWDIkIIgUed5tlNlPUGOoyvyZrbCOoDSeeQ7ZbQpv8ydJWaFKqQoUSWwa6RbqbIt5XT6iuSgPBidWrykgrQ/q1ClDrDAJEHhA89ftIJctVBN3ZylKlMo5SWKLhukQjXlWlKVhT+iAc8LmpGqJQ2iMSvfKEo1dRYjVd2LTlUhKal2Xdf3PdQ7Q/qHdjTVrblqD8AyLqOazdUejbroUviE9Iq2vwPIrfVKllKqiqMhyS05ZWEog2zMWaqAdJomO9Uy2evofXXcfwCWtMav7HK5XC7XohsrJCxc) -&] -[s0;%% &] -[s9;%% Widget providing the selection of 2 or alternatively 3 states -(true, false, Null). Value of Option is either 0, 1, or Null. -When setting Value to Option, string `"1`" is interpreted as -true state, other non`-Null strings as false. Depending on whether -Option is in NotNull mode, Null is interpreted as false or Null -state. 0 is always interpreted as false, Null number as either -Null (NotNull mode) or false (NoNotNull mode), other numbers -as true.&] -[s0;%% &] -[s0; [%%/ Derived from][%% ]Pusher&] -[s3;%% &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0;%% [* Constructor Detail]]}}&] -[s3; &] -[s5;:Option`:`:Option`(`): [* Option]()&] -[s2;%% Initializes Option into NotNull, 2`-state mode, false value -and standard appearance.&] -[s3;%% &] -[s4; &] -[s5;:Option`:`:`~Option`(`): [@(0.0.255) `~][* Option]()&] -[s2;%% Default destructor.&] -[s3; &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0;%% [* Public Method List]]}}&] -[s3; &] -[s5;:Option`:`:Set`(int`): [_^Option^ Option][@(0.0.255) `&]_[* Set]([@(0.0.255) int]_[*@3 b])&] -[s2;%% Sets Option to the specified state (0, 1 or Null).&] -[s7;%% [%-*C@3 b]-|State.&] -[s3;%% &] -[s4; &] -[s5;:Option`:`:Get`(`)const: [@(0.0.255) int]_[* Get]()_[@(0.0.255) const]&] -[s7;%% [*/ Return value]-|Current state of Option.&] -[s3;%% &] -[s4; &] -[s5;:Option`:`:operator int`(`)const: [* operator_int]()_[@(0.0.255) const]&] -[s7;%% [*/ Return value]-|[^topic`:`/`/CtrlLib`/src`/Option`$en`-us`#Option`:`:Get`(`)const^ G -et]()&] -[s3;%% &] -[s4; &] -[s5;:Option`:`:operator`=`(int`): [@(0.0.255) void]_[* operator`=]([@(0.0.255) int]_[*@3 b])&] -[s2;%% Same as [^topic`:`/`/CtrlLib`/src`/Option`$en`-us`#Option`:`:Set`(int`)^ Set](b) -.&] -[s7;%% [%-*C@3 b]-|State.&] -[s3;%% &] -[s4; &] -[s5;:Option`:`:BlackEdge`(bool`): [_^Option^ Option][@(0.0.255) `&]_[* BlackEdge]([@(0.0.255) b -ool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2;%% Activates visual appearance suitable for placing Option on -white background (SColorPaper), like in list, as opposed to default -representation suitable for placing it on dialog (SColorFace).&] -[s7;%% [%-*C@3 b]-|true to activate.&] -[s7;%% [*/ Return value]-|`*this for chaining.&] -[s3;%% &] -[s4; &] -[s5;:Upp`:`:Option`:`:IsBlackEdge`(`)const: [@(0.0.255) bool]_[* IsBlackEdge]()_[@(0.0.255) c -onst]&] -[s2;%% Returns true if BlackEdge is active.&] -[s3; &] -[s4; &] -[s5;:Option`:`:SwitchImage`(bool`): [_^Option^ Option][@(0.0.255) `&]_[* SwitchImage]([@(0.0.255) b -ool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2;%% Activates visual representation that paints the Option with -the Switch appearance.&] -[s3;%% &] -[s4; &] -[s5;:Upp`:`:Option`:`:IsSwitchImage`(`)const: [@(0.0.255) bool]_[* IsSwitchImage]()_[@(0.0.255) c -onst]&] -[s2;%% Returns true if SwitchImage is active.&] -[s3; &] -[s4; &] -[s5;:Option`:`:ThreeState`(bool`): [_^Option^ Option][@(0.0.255) `&]_[* ThreeState]([@(0.0.255) b -ool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2;%% Activates three`-state mode. Also activates NoNotNull mode.&] -[s3;%% &] -[s4; &] -[s5;:Upp`:`:Option`:`:IsThreeState`(`)const: [@(0.0.255) bool]_[* IsThreeState]()_[@(0.0.255) c -onst]&] -[s2;%% Returns true if ThreeState is active.&] -[s3; &] -[s4; &] -[s5;:Option`:`:NotNull`(bool`): [_^Option^ Option][@(0.0.255) `&]_[* NotNull]([@(0.0.255) boo -l]_[*@3 nn]_`=_[@(0.0.255) true])&] -[s2;%% Activates NotNull mode `- Null Value assigned to Option (via -SetData) is interpreted as false.&] -[s3;%% &] -[s4; &] -[s5;:Option`:`:NoNotNull`(`): [_^Option^ Option][@(0.0.255) `&]_[* NoNotNull]()&] -[s2;%% Activates NoNotNull mode `- Null Value assigned to Option -is interpreted as Null.&] -[s7;%% [*/ Return value]-|`*this for chaining.&] -[s3;%% &] -[s4; &] -[s5;:Upp`:`:Option`:`:IsNotNull`(`)const: [@(0.0.255) bool]_[* IsNotNull]()_[@(0.0.255) con -st]&] -[s2;%% Returns true if NotNull is active.&] -[s3; &] -[s4; &] -[s5;:Upp`:`:Option`:`:SetColor`(Upp`:`:Color`): [_^Upp`:`:Option^ Option][@(0.0.255) `&]_ -[* SetColor]([_^Upp`:`:Color^ Color]_[*@3 c])&] -[s2;%% Sets the color of text of Option label. Setting Null restores -the default color.&] -[s3;%% &] -[s4; &] -[s5;:Option`:`:ShowLabel`(bool`): [_^Option^ Option][@(0.0.255) `&]_[* ShowLabel]([@(0.0.255) b -ool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2;%% Toggles the display of the option`'s label.&] -[s3;%% &] -[s4; &] -[s5;:Upp`:`:Option`:`:IsShowLabel`(`)const: [@(0.0.255) bool]_[* IsShowLabel]()_[@(0.0.255) c -onst]&] -[s2;%% Returns true if ShowLabel is active.&] +topic "Option"; +[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,0#27521748481378242620020725143825:desc] +[0 $$3,0#96390100711032703541132217272105:end] +[H6;0 $$4,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] +[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] +[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] +[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] +[b42;2 $$9,9#13035079074754324216151401829390:normal] +[{_} +[ {{10000@3 [s0;%% [*@(229)4 Option]]}}&] +[s3; &] +[s1;:Option`:`:class: [@(0.0.255)3 class][3 _][*3 Option][3 _:_][@(0.0.255)3 public][3 _][*@3;3 Push +er]&] +[s0; &] +[s2;%% +@@image:712&131 +(A3IAFQAAAOv/AAAAAHic7ZhtioNADIa9U++059hTLsMigiwiYhFZytKfDQkVm8xk4li7FBJeZD7UZB6T/PA8hLPL5XK5DtDp9GHRv8f5XgJiX2ghhG+0pmnatv252zAMTvWJVIEnTKNUq0c7Ljx6+fr6AklHW10DsYAGAOu6Xidq9VmlqJb52nmWl1Hdf1IgRilKSJfCB6REdRxHp1pAFXgCPWDIkIIgUed5tlNlPUGOoyvyZrbCOoDSeeQ7ZbQpv8ydJWaFKqQoUSWwa6RbqbIt5XT6iuSgPBidWrykgrQ/q1ClDrDAJEHhA89ftIJctVBN3ZylKlMo5SWKLhukQjXlWlKVhT+iAc8LmpGqJQ2iMSvfKEo1dRYjVd2LTlUhKal2Xdf3PdQ7Q/qHdjTVrblqD8AyLqOazdUejbroUviE9Iq2vwPIrfVKllKqiqMhyS05ZWEog2zMWaqAdJomO9Uy2evofXXcfwCWtMav7HK5XC7XohsrJCxc) +&] +[s0;%% &] +[s9;%% Widget providing the selection of 2 or alternatively 3 states +(true, false, Null). Value of Option is either 0, 1, or Null. +When setting Value to Option, string `"1`" is interpreted as +true state, other non`-Null strings as false. Depending on whether +Option is in NotNull mode, Null is interpreted as false or Null +state. 0 is always interpreted as false, Null number as either +Null (NotNull mode) or false (NoNotNull mode), other numbers +as true.&] +[s0;%% &] +[s0; [%%/ Derived from][%% ]Pusher&] +[s3;%% &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0;%% [* Constructor Detail]]}}&] +[s3; &] +[s5;:Option`:`:Option`(`): [* Option]()&] +[s2;%% Initializes Option into NotNull, 2`-state mode, false value +and standard appearance.&] +[s3;%% &] +[s4; &] +[s5;:Option`:`:`~Option`(`): [@(0.0.255) `~][* Option]()&] +[s2;%% Default destructor.&] +[s3; &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0;%% [* Public Method List]]}}&] +[s3; &] +[s5;:Option`:`:Set`(int`): [_^Option^ Option][@(0.0.255) `&]_[* Set]([@(0.0.255) int]_[*@3 b])&] +[s2;%% Sets Option to the specified state (0, 1 or Null).&] +[s7;%% [%-*C@3 b]-|State.&] +[s3;%% &] +[s4; &] +[s5;:Option`:`:Get`(`)const: [@(0.0.255) int]_[* Get]()_[@(0.0.255) const]&] +[s7;%% [*/ Return value]-|Current state of Option.&] +[s3;%% &] +[s4; &] +[s5;:Option`:`:operator int`(`)const: [* operator_int]()_[@(0.0.255) const]&] +[s7;%% [*/ Return value]-|[^topic`:`/`/CtrlLib`/src`/Option`$en`-us`#Option`:`:Get`(`)const^ G +et]()&] +[s3;%% &] +[s4; &] +[s5;:Option`:`:operator`=`(int`): [@(0.0.255) void]_[* operator`=]([@(0.0.255) int]_[*@3 b])&] +[s2;%% Same as [^topic`:`/`/CtrlLib`/src`/Option`$en`-us`#Option`:`:Set`(int`)^ Set](b) +.&] +[s7;%% [%-*C@3 b]-|State.&] +[s3;%% &] +[s4; &] +[s5;:Option`:`:BlackEdge`(bool`): [_^Option^ Option][@(0.0.255) `&]_[* BlackEdge]([@(0.0.255) b +ool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2;%% Activates visual appearance suitable for placing Option on +white background (SColorPaper), like in list, as opposed to default +representation suitable for placing it on dialog (SColorFace).&] +[s7;%% [%-*C@3 b]-|true to activate.&] +[s7;%% [*/ Return value]-|`*this for chaining.&] +[s3;%% &] +[s4; &] +[s5;:Upp`:`:Option`:`:IsBlackEdge`(`)const: [@(0.0.255) bool]_[* IsBlackEdge]()_[@(0.0.255) c +onst]&] +[s2;%% Returns true if BlackEdge is active.&] +[s3; &] +[s4; &] +[s5;:Option`:`:SwitchImage`(bool`): [_^Option^ Option][@(0.0.255) `&]_[* SwitchImage]([@(0.0.255) b +ool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2;%% Activates visual representation that paints the Option with +the Switch appearance.&] +[s3;%% &] +[s4; &] +[s5;:Upp`:`:Option`:`:IsSwitchImage`(`)const: [@(0.0.255) bool]_[* IsSwitchImage]()_[@(0.0.255) c +onst]&] +[s2;%% Returns true if SwitchImage is active.&] +[s3; &] +[s4; &] +[s5;:Option`:`:ThreeState`(bool`): [_^Option^ Option][@(0.0.255) `&]_[* ThreeState]([@(0.0.255) b +ool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2;%% Activates three`-state mode. Also activates NoNotNull mode.&] +[s3;%% &] +[s4; &] +[s5;:Upp`:`:Option`:`:IsThreeState`(`)const: [@(0.0.255) bool]_[* IsThreeState]()_[@(0.0.255) c +onst]&] +[s2;%% Returns true if ThreeState is active.&] +[s3; &] +[s4; &] +[s5;:Option`:`:NotNull`(bool`): [_^Option^ Option][@(0.0.255) `&]_[* NotNull]([@(0.0.255) boo +l]_[*@3 nn]_`=_[@(0.0.255) true])&] +[s2;%% Activates NotNull mode `- Null Value assigned to Option (via +SetData) is interpreted as false.&] +[s3;%% &] +[s4; &] +[s5;:Option`:`:NoNotNull`(`): [_^Option^ Option][@(0.0.255) `&]_[* NoNotNull]()&] +[s2;%% Activates NoNotNull mode `- Null Value assigned to Option +is interpreted as Null.&] +[s7;%% [*/ Return value]-|`*this for chaining.&] +[s3;%% &] +[s4; &] +[s5;:Upp`:`:Option`:`:IsNotNull`(`)const: [@(0.0.255) bool]_[* IsNotNull]()_[@(0.0.255) con +st]&] +[s2;%% Returns true if NotNull is active.&] +[s3; &] +[s4; &] +[s5;:Upp`:`:Option`:`:SetColor`(Upp`:`:Color`): [_^Upp`:`:Option^ Option][@(0.0.255) `&]_ +[* SetColor]([_^Upp`:`:Color^ Color]_[*@3 c])&] +[s2;%% Sets the color of text of Option label. Setting Null restores +the default color.&] +[s3;%% &] +[s4; &] +[s5;:Option`:`:ShowLabel`(bool`): [_^Option^ Option][@(0.0.255) `&]_[* ShowLabel]([@(0.0.255) b +ool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2;%% Toggles the display of the option`'s label.&] +[s3;%% &] +[s4; &] +[s5;:Upp`:`:Option`:`:IsShowLabel`(`)const: [@(0.0.255) bool]_[* IsShowLabel]()_[@(0.0.255) c +onst]&] +[s2;%% Returns true if ShowLabel is active.&] [s0; ]] \ No newline at end of file diff --git a/uppsrc/CtrlLib/src.tpp/ProgressInd$en-us.tpp b/uppsrc/CtrlLib/src.tpp/ProgressInd_en-us.tpp similarity index 97% rename from uppsrc/CtrlLib/src.tpp/ProgressInd$en-us.tpp rename to uppsrc/CtrlLib/src.tpp/ProgressInd_en-us.tpp index 6fb3c2e08..e2a706f6c 100644 --- a/uppsrc/CtrlLib/src.tpp/ProgressInd$en-us.tpp +++ b/uppsrc/CtrlLib/src.tpp/ProgressInd_en-us.tpp @@ -1,95 +1,95 @@ -topic "ProgressIndicator"; -[2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,0#27521748481378242620020725143825:desc] -[0 $$3,0#96390100711032703541132217272105:end] -[H6;0 $$4,0#05600065144404261032431302351956:begin] -[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] -[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] -[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] -[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] -[b42;2 $$9,9#13035079074754324216151401829390:normal] -[{_}%EN-US -[ {{10000@3 [s0; [*@(229)4 ProgressIndicator]]}}&] -[s3; &] -[s1;:ProgressIndicator`:`:class:%- [@(0.0.255)3 class][3 _][*3 ProgressIndicator][3 _:_][@(0.0.255)3 p -ublic][3 _][*@3;3 Ctrl]&] -[s9; ProgressIndicator is a static widget used to display the progress -of lengthy operation.&] -[s0; &] -[s2; -@@image:2006&125 -€ƒÁ”€€€€€€€€€€ø§œíšÁÊÃÀš”†ï¤è½”ß÷¥®½Á¬´Ö­¹€úŠô‘÷ì²÷’݈аՅ­Ô²ÐÀÎ¤Âø˜‡±òÔƒ§ƒßÇ -öǘðç‘Åû¸ÉÈæ·½ß¡À¢¢¢¢¢¢þÖË­µé²ÜÌ ç—€°îò¼Àï׸ÍâãÌÔ€Œ›©ð–šåíŠËóׯÉÈàÄÈɣШêרªÝ÷ -зùÉ»ýð†šÚˆŸí¨—´õ›ŠËå×¥óñò³ÓÅ÷í»ƒ´ÐÔ÷ûôÁЪª²®ùÅ¿Öøäáì™´áýúæ ê´õ½€°”þ€•¾Øµ½Ü -ŽëâÕÁšèêû€á¨åÙùÚþ•ž¬§““õ¹»Î›ëýÐÉ£´õ½€¦°”¢¨ì¿Šß¼ßŠ×Ï߃ê©þª¡´Åõ½€°”ù¿ë²û«¬¿•ô -¦û—ï»…€î¿´¡ÒÖ®­´ËãÌßýÚ‚¡€ß¢½Í“ø­Ï†Ë˜–€€ãÆšªÏÛéû«÷­Ùˆˆˆ¿ˆˆˆˆ¾ü„‰ç†‘ -&] -[s0; &] -[s0; [/ Derived from] [^topic`:`/`/CtrlCore`/src`/Ctrl`$en`-us`#`:`:Ctrl`:`:class Ctrl^ C -trl]&] -[s3; &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] -[s3;%- &] -[s5;:ProgressIndicator`:`:Set`(int`,int`):%- [@(0.0.255) void]_[* Set]([@(0.0.255) int]_[*@3 a -ctual], [@(0.0.255) int]_[*@3 total])&] -[s2;%- [%% Sets the progress to ][*@3 actual][%% steps of ][*@3 total][%% -steps. If ][*@3 total][@2 ]is zero, ProgressIndicator displays a -bar starting at pixel position [*@3 actual] with reasonable size.&] -[s3; &] -[s4;%- &] -[s5;:ProgressIndicator`:`:Set`(int`):%- [@(0.0.255) void]_[* Set]([@(0.0.255) int]_[*@3 `_act -ual])&] -[s2;%- [%% Sets the progress to ][%%*@3 `_][*@3 actual][%% steps. Total -number of steps is defined by previous call to ][%%* Set][%% or -][%%* SetTotal][%% . If ][*@3 total][@2 ]is zero, ProgressIndicator -displays a bar starting at pixel position [*@3 actual] with reasonable -size.&] -[s3; &] -[s4;%- &] -[s5;:ProgressIndicator`:`:operator`=`(int`):%- [@(0.0.255) void]_[* operator`=]([@(0.0.255) i -nt]_[*@3 i])&] -[s2; Same as [^topic`:`/`/CtrlLib`/src`/ProgressInd`$en`-us`#ProgressIndicator`:`:Set`(int`)^ S -et]([%-*@3 i]).&] -[s3; &] -[s4;%- &] -[s5;:ProgressIndicator`:`:operator`+`+`(`):%- [@(0.0.255) int]_[* operator`+`+]()&] -[s2; Increments actual number of steps by one.&] -[s3; &] -[s4;%- &] -[s5;:ProgressIndicator`:`:operator`+`+`(int`):%- [@(0.0.255) int]_[* operator`+`+]([@(0.0.255) i -nt])&] -[s2; Post`-increment version.&] -[s3; &] -[s4;%- &] -[s5;:ProgressIndicator`:`:operator`+`=`(int`):%- [@(0.0.255) int]_[* operator`+`=]([@(0.0.255) i -nt]_[*@3 i])&] -[s2; Adds [%-*@3 i] steps to actual position.&] -[s3; &] -[s4;%- &] -[s5;:ProgressIndicator`:`:Get`(`)const:%- [@(0.0.255) int]_[* Get]()_[@(0.0.255) const]&] -[s2; Returns the current actual position. &] -[s3;%- &] -[s4;%- &] -[s5;:ProgressIndicator`:`:GetTotal`(`)const:%- [@(0.0.255) int]_[* GetTotal]()_[@(0.0.255) c -onst]&] -[s2; Returns the total number of steps (set by SetTotal).&] -[s3;%- &] -[s4;%- &] -[s5;:ProgressIndicator`:`:operator int`(`):%- [* operator_int]()&] -[s2; Returns the current actual position. &] -[s3; &] -[s4;%- &] -[s5;:ProgressIndicator`:`:SetTotal`(int`):%- [_^ProgressIndicator^ ProgressIndicator][@(0.0.255) `& -]_[* SetTotal]([@(0.0.255) int]_[*@3 `_total])&] -[s2; Sets the total number of steps to [%-*@3 `_total].&] -[s3; &] -[s4;%- &] -[s5;:ProgressIndicator`:`:Percent`(bool`):%- [_^ProgressIndicator^ ProgressIndicator][@(0.0.255) `& -]_[* Percent]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s5;:ProgressIndicator`:`:NoPercent`(`):%- [_^ProgressIndicator^ ProgressIndicator][@(0.0.255) `& -]_[* NoPercent]()&] -[s2; In [* Percent] mode, number of percent is displayed in ProgressIndicator.&] -[s3; &] +topic "ProgressIndicator"; +[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,0#27521748481378242620020725143825:desc] +[0 $$3,0#96390100711032703541132217272105:end] +[H6;0 $$4,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] +[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] +[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] +[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] +[b42;2 $$9,9#13035079074754324216151401829390:normal] +[{_}%EN-US +[ {{10000@3 [s0; [*@(229)4 ProgressIndicator]]}}&] +[s3; &] +[s1;:ProgressIndicator`:`:class:%- [@(0.0.255)3 class][3 _][*3 ProgressIndicator][3 _:_][@(0.0.255)3 p +ublic][3 _][*@3;3 Ctrl]&] +[s9; ProgressIndicator is a static widget used to display the progress +of lengthy operation.&] +[s0; &] +[s2; +@@image:2006&125 +€ƒÁ”€€€€€€€€€€ø§œíšÁÊÃÀš”†ï¤è½”ß÷¥®½Á¬´Ö­¹€úŠô‘÷ì²÷’݈аՅ­Ô²ÐÀÎ¤Âø˜‡±òÔƒ§ƒßÇ +öǘðç‘Åû¸ÉÈæ·½ß¡À¢¢¢¢¢¢þÖË­µé²ÜÌ ç—€°îò¼Àï׸ÍâãÌÔ€Œ›©ð–šåíŠËóׯÉÈàÄÈɣШêרªÝ÷ +зùÉ»ýð†šÚˆŸí¨—´õ›ŠËå×¥óñò³ÓÅ÷í»ƒ´ÐÔ÷ûôÁЪª²®ùÅ¿Öøäáì™´áýúæ ê´õ½€°”þ€•¾Øµ½Ü +ŽëâÕÁšèêû€á¨åÙùÚþ•ž¬§““õ¹»Î›ëýÐÉ£´õ½€¦°”¢¨ì¿Šß¼ßŠ×Ï߃ê©þª¡´Åõ½€°”ù¿ë²û«¬¿•ô +¦û—ï»…€î¿´¡ÒÖ®­´ËãÌßýÚ‚¡€ß¢½Í“ø­Ï†Ë˜–€€ãÆšªÏÛéû«÷­Ùˆˆˆ¿ˆˆˆˆ¾ü„‰ç†‘ +&] +[s0; &] +[s0; [/ Derived from] [^topic`:`/`/CtrlCore`/src`/Ctrl`$en`-us`#`:`:Ctrl`:`:class Ctrl^ C +trl]&] +[s3; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] +[s3;%- &] +[s5;:ProgressIndicator`:`:Set`(int`,int`):%- [@(0.0.255) void]_[* Set]([@(0.0.255) int]_[*@3 a +ctual], [@(0.0.255) int]_[*@3 total])&] +[s2;%- [%% Sets the progress to ][*@3 actual][%% steps of ][*@3 total][%% +steps. If ][*@3 total][@2 ]is zero, ProgressIndicator displays a +bar starting at pixel position [*@3 actual] with reasonable size.&] +[s3; &] +[s4;%- &] +[s5;:ProgressIndicator`:`:Set`(int`):%- [@(0.0.255) void]_[* Set]([@(0.0.255) int]_[*@3 `_act +ual])&] +[s2;%- [%% Sets the progress to ][%%*@3 `_][*@3 actual][%% steps. Total +number of steps is defined by previous call to ][%%* Set][%% or +][%%* SetTotal][%% . If ][*@3 total][@2 ]is zero, ProgressIndicator +displays a bar starting at pixel position [*@3 actual] with reasonable +size.&] +[s3; &] +[s4;%- &] +[s5;:ProgressIndicator`:`:operator`=`(int`):%- [@(0.0.255) void]_[* operator`=]([@(0.0.255) i +nt]_[*@3 i])&] +[s2; Same as [^topic`:`/`/CtrlLib`/src`/ProgressInd`$en`-us`#ProgressIndicator`:`:Set`(int`)^ S +et]([%-*@3 i]).&] +[s3; &] +[s4;%- &] +[s5;:ProgressIndicator`:`:operator`+`+`(`):%- [@(0.0.255) int]_[* operator`+`+]()&] +[s2; Increments actual number of steps by one.&] +[s3; &] +[s4;%- &] +[s5;:ProgressIndicator`:`:operator`+`+`(int`):%- [@(0.0.255) int]_[* operator`+`+]([@(0.0.255) i +nt])&] +[s2; Post`-increment version.&] +[s3; &] +[s4;%- &] +[s5;:ProgressIndicator`:`:operator`+`=`(int`):%- [@(0.0.255) int]_[* operator`+`=]([@(0.0.255) i +nt]_[*@3 i])&] +[s2; Adds [%-*@3 i] steps to actual position.&] +[s3; &] +[s4;%- &] +[s5;:ProgressIndicator`:`:Get`(`)const:%- [@(0.0.255) int]_[* Get]()_[@(0.0.255) const]&] +[s2; Returns the current actual position. &] +[s3;%- &] +[s4;%- &] +[s5;:ProgressIndicator`:`:GetTotal`(`)const:%- [@(0.0.255) int]_[* GetTotal]()_[@(0.0.255) c +onst]&] +[s2; Returns the total number of steps (set by SetTotal).&] +[s3;%- &] +[s4;%- &] +[s5;:ProgressIndicator`:`:operator int`(`):%- [* operator_int]()&] +[s2; Returns the current actual position. &] +[s3; &] +[s4;%- &] +[s5;:ProgressIndicator`:`:SetTotal`(int`):%- [_^ProgressIndicator^ ProgressIndicator][@(0.0.255) `& +]_[* SetTotal]([@(0.0.255) int]_[*@3 `_total])&] +[s2; Sets the total number of steps to [%-*@3 `_total].&] +[s3; &] +[s4;%- &] +[s5;:ProgressIndicator`:`:Percent`(bool`):%- [_^ProgressIndicator^ ProgressIndicator][@(0.0.255) `& +]_[* Percent]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s5;:ProgressIndicator`:`:NoPercent`(`):%- [_^ProgressIndicator^ ProgressIndicator][@(0.0.255) `& +]_[* NoPercent]()&] +[s2; In [* Percent] mode, number of percent is displayed in ProgressIndicator.&] +[s3; &] [s0; ] \ No newline at end of file diff --git a/uppsrc/CtrlLib/src.tpp/Progress$en-us.tpp b/uppsrc/CtrlLib/src.tpp/Progress_en-us.tpp similarity index 98% rename from uppsrc/CtrlLib/src.tpp/Progress$en-us.tpp rename to uppsrc/CtrlLib/src.tpp/Progress_en-us.tpp index c9cce46eb..c0c79f2d5 100644 --- a/uppsrc/CtrlLib/src.tpp/Progress$en-us.tpp +++ b/uppsrc/CtrlLib/src.tpp/Progress_en-us.tpp @@ -1,144 +1,144 @@ -topic "Progress"; -[2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,0#27521748481378242620020725143825:desc] -[0 $$3,0#96390100711032703541132217272105:end] -[H6;0 $$4,0#05600065144404261032431302351956:begin] -[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] -[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] -[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] -[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] -[b42;2 $$9,9#13035079074754324216151401829390:normal] -[{_}%EN-US -[ {{10000@3 [s0; [*@(229)4 Progress]]}}&] -[s3; &] -[s1;:Progress`:`:class:%- [@(0.0.255)3 class][3 _][*3 Progress][3 _:_][@(0.0.255)3 public][3 _][*@3;3 W -ithProgressLayout][@(0.0.255)3 <][_^TopWindow^3 TopWindow][@(0.0.255)3 >][3 _]&] -[s9; Progress is simple helper dialog that can be used to show a -progress of long operation and to cancel it.&] -[s2; &] -[s2; -@@image:1644&520 -(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) -&] -[s3; &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] -[s3; &] -[s5;:Progress`:`:Progress`(`):%- [* Progress]()&] -[s2; Default constructor.&] -[s3; &] -[s4;%- &] -[s5;:Progress`:`:Progress`(Ctrl`*`):%- [* Progress]([_^Ctrl^ Ctrl]_`*[*@3 `_owner])&] -[s5;:Progress`:`:Progress`(const char`*`,int`):%- [* Progress]([@(0.0.255) const]_[@(0.0.255) c -har]_`*[*@3 txt], [@(0.0.255) int]_[*@3 total]_`=_[@3 0])&] -[s5;:Progress`:`:Progress`(Ctrl`*`,const char`*`,int`):%- [* Progress]([_^Ctrl^ Ctrl]_`*[*@3 `_ -owner], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 txt], [@(0.0.255) int]_[*@3 total]_`=_[@3 0 -])&] -[s2; Convenience constructor variants can set owner, text and total -number of steps.&] -[s3; &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] -[s3;%- &] -[s5;:Progress`:`:SetOwner`(Ctrl`*`):%- [@(0.0.255) void]_[* SetOwner]([_^Ctrl^ Ctrl]_`*[*@3 `_ -owner])&] -[s2; Sets the owner window of progress. [%-*@3 `_owner] can be child -of owner window too. Note that if owner is not specified, current -active window is used as owner.&] -[s3; &] -[s4;%- &] -[s5;:Progress`:`:Create`(`):%- [@(0.0.255) void]_[* Create]()&] -[s2; Forces dialog to appear on the screen.&] -[s3; &] -[s4;%- &] -[s5;:Progress`:`:Cancel`(`):%- [@(0.0.255) void]_[* Cancel]()&] -[s2; Closes the dialog and sets it to canceled mode.&] -[s3; &] -[s4;%- &] -[s5;:Progress`:`:Set`(int`,int`):%- [@(0.0.255) void]_[* Set]([@(0.0.255) int]_[*@3 pos], -[@(0.0.255) int]_[*@3 total])&] -[s2; Sets the current progress position and total.&] -[s3; &] -[s4;%- &] -[s5;:Progress`:`:SetPos`(int`):%- [@(0.0.255) void]_[* SetPos]([@(0.0.255) int]_[*@3 pos])&] -[s2; Sets the current progress position.&] -[s3; &] -[s4;%- &] -[s5;:Progress`:`:SetText`(const char`*`):%- [@(0.0.255) void]_[* SetText]([@(0.0.255) const -]_[@(0.0.255) char]_`*[*@3 s])&] -[s5;:Progress`:`:SetText`(const String`&`):%- [@(0.0.255) void]_[* SetText]([@(0.0.255) con -st]_[_^String^ String][@(0.0.255) `&]_[*@3 s])&] -[s2; Sets the text to be displayed in dialog.&] -[s3; &] -[s4;%- &] -[s5;:Progress`:`:SetTotal`(int`):%- [@(0.0.255) void]_[* SetTotal]([@(0.0.255) int]_[*@3 tota -l])&] -[s2; Sets the [%-*@3 total] number of progress steps.&] -[s3; &] -[s4;%- &] -[s5;:Progress`:`:Step`(int`):%- [@(0.0.255) void]_[* Step]([@(0.0.255) int]_[*@3 steps]_`=_[@3 1 -])&] -[s2; Advances progress by [%-*@3 steps]. If total number of steps is -zero, `"running bar`" is displayed.&] -[s3; &] -[s4;%- &] -[s5;:Progress`:`:GetPos`(`)const:%- [@(0.0.255) int]_[* GetPos]()_[@(0.0.255) const]&] -[s2; Returns the current number of progress steps.&] -[s3; &] -[s4;%- &] -[s5;:Progress`:`:GetTotal`(`)const:%- [@(0.0.255) int]_[* GetTotal]()_[@(0.0.255) const]&] -[s2; Returns the total number of steps (as set by [* Set ]or [* SetTotal]).&] -[s3; &] -[s4;%- &] -[s5;:Progress`:`:GetText`(`)const:%- [_^String^ String]_[* GetText]()_[@(0.0.255) const]&] -[s2; Returns the text of Progress.&] -[s3; &] -[s4;%- &] -[s5;:Progress`:`:Canceled`(`):%- [@(0.0.255) bool]_[* Canceled]()&] -[s2; Shows a Cancel button if not shown yet. If this button is pressed, -sets dialog to canceled mode. Returns true if dialog was canceled.&] -[s3; &] -[s4;%- &] -[s5;:Progress`:`:SetCanceled`(int`,int`):%- [@(0.0.255) bool]_[* SetCanceled]([@(0.0.255) i -nt]_[*@3 pos], [@(0.0.255) int]_[*@3 total])&] -[s2; Same as Set([%-*@3 pos], [%-*@3 total]), Canceled().&] -[s3; &] -[s4;%- &] -[s5;:Progress`:`:SetPosCanceled`(int`):%- [@(0.0.255) bool]_[* SetPosCanceled]([@(0.0.255) i -nt]_[*@3 pos])&] -[s2; Same as SetPos([%-*@3 pos]), Canceled().&] -[s3; &] -[s4;%- &] -[s5;:Progress`:`:StepCanceled`(int`):%- [@(0.0.255) bool]_[* StepCanceled]([@(0.0.255) int]_ -[*@3 steps]_`=_[@3 1])&] -[s2; Same as Set([%-*@3 steps]), Canceled().&] -[s3; &] -[s4;%- &] -[s5;:Progress`:`:Reset`(`):%- [@(0.0.255) void]_[* Reset]()&] -[s2; Resets dialog to default settings.&] -[s3; &] -[s4;%- &] -[s5;:Progress`:`:Granularity`(int`):%- [@(0.0.255) void]_[* Granularity]([@(0.0.255) int]_[*@3 m -s])&] -[s2; Sets how much often should dialog refresh. Default is 50ms.&] -[s3; &] -[s4;%- &] -[s5;:Progress`:`:AlignText`(int`):%- [@(0.0.255) void]_[* AlignText]([@(0.0.255) int]_[*@3 al -ign])&] -[s2; Sets text alignment. Allowed values are ALIGN`_LEFT, ALIGN`_CENTER -and ALIGN`_RIGHT.&] -[s3; &] -[s4;%- &] -[s5;:Progress`:`:operator Gate2``(`):%- [* operator_Gate2]()&] -[s2; Returns a callback to dialog`'s SetCanceled method.&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:Progress`:`:Delay`(int`):%- [@(0.0.255) void]_[* Delay]([@(0.0.255) int]_[*@3 ms]) -&] -[s2; Sets the delay before the dialog is shown for the first time -(in order not to show it when operation proceeds fast). Default -is 250ms.&] -[s3; &] +topic "Progress"; +[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,0#27521748481378242620020725143825:desc] +[0 $$3,0#96390100711032703541132217272105:end] +[H6;0 $$4,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] +[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] +[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] +[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] +[b42;2 $$9,9#13035079074754324216151401829390:normal] +[{_}%EN-US +[ {{10000@3 [s0; [*@(229)4 Progress]]}}&] +[s3; &] +[s1;:Progress`:`:class:%- [@(0.0.255)3 class][3 _][*3 Progress][3 _:_][@(0.0.255)3 public][3 _][*@3;3 W +ithProgressLayout][@(0.0.255)3 <][_^TopWindow^3 TopWindow][@(0.0.255)3 >][3 _]&] +[s9; Progress is simple helper dialog that can be used to show a +progress of long operation and to cancel it.&] +[s2; &] +[s2; +@@image:1644&520 +(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) +&] +[s3; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] +[s3; &] +[s5;:Progress`:`:Progress`(`):%- [* Progress]()&] +[s2; Default constructor.&] +[s3; &] +[s4;%- &] +[s5;:Progress`:`:Progress`(Ctrl`*`):%- [* Progress]([_^Ctrl^ Ctrl]_`*[*@3 `_owner])&] +[s5;:Progress`:`:Progress`(const char`*`,int`):%- [* Progress]([@(0.0.255) const]_[@(0.0.255) c +har]_`*[*@3 txt], [@(0.0.255) int]_[*@3 total]_`=_[@3 0])&] +[s5;:Progress`:`:Progress`(Ctrl`*`,const char`*`,int`):%- [* Progress]([_^Ctrl^ Ctrl]_`*[*@3 `_ +owner], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 txt], [@(0.0.255) int]_[*@3 total]_`=_[@3 0 +])&] +[s2; Convenience constructor variants can set owner, text and total +number of steps.&] +[s3; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] +[s3;%- &] +[s5;:Progress`:`:SetOwner`(Ctrl`*`):%- [@(0.0.255) void]_[* SetOwner]([_^Ctrl^ Ctrl]_`*[*@3 `_ +owner])&] +[s2; Sets the owner window of progress. [%-*@3 `_owner] can be child +of owner window too. Note that if owner is not specified, current +active window is used as owner.&] +[s3; &] +[s4;%- &] +[s5;:Progress`:`:Create`(`):%- [@(0.0.255) void]_[* Create]()&] +[s2; Forces dialog to appear on the screen.&] +[s3; &] +[s4;%- &] +[s5;:Progress`:`:Cancel`(`):%- [@(0.0.255) void]_[* Cancel]()&] +[s2; Closes the dialog and sets it to canceled mode.&] +[s3; &] +[s4;%- &] +[s5;:Progress`:`:Set`(int`,int`):%- [@(0.0.255) void]_[* Set]([@(0.0.255) int]_[*@3 pos], +[@(0.0.255) int]_[*@3 total])&] +[s2; Sets the current progress position and total.&] +[s3; &] +[s4;%- &] +[s5;:Progress`:`:SetPos`(int`):%- [@(0.0.255) void]_[* SetPos]([@(0.0.255) int]_[*@3 pos])&] +[s2; Sets the current progress position.&] +[s3; &] +[s4;%- &] +[s5;:Progress`:`:SetText`(const char`*`):%- [@(0.0.255) void]_[* SetText]([@(0.0.255) const +]_[@(0.0.255) char]_`*[*@3 s])&] +[s5;:Progress`:`:SetText`(const String`&`):%- [@(0.0.255) void]_[* SetText]([@(0.0.255) con +st]_[_^String^ String][@(0.0.255) `&]_[*@3 s])&] +[s2; Sets the text to be displayed in dialog.&] +[s3; &] +[s4;%- &] +[s5;:Progress`:`:SetTotal`(int`):%- [@(0.0.255) void]_[* SetTotal]([@(0.0.255) int]_[*@3 tota +l])&] +[s2; Sets the [%-*@3 total] number of progress steps.&] +[s3; &] +[s4;%- &] +[s5;:Progress`:`:Step`(int`):%- [@(0.0.255) void]_[* Step]([@(0.0.255) int]_[*@3 steps]_`=_[@3 1 +])&] +[s2; Advances progress by [%-*@3 steps]. If total number of steps is +zero, `"running bar`" is displayed.&] +[s3; &] +[s4;%- &] +[s5;:Progress`:`:GetPos`(`)const:%- [@(0.0.255) int]_[* GetPos]()_[@(0.0.255) const]&] +[s2; Returns the current number of progress steps.&] +[s3; &] +[s4;%- &] +[s5;:Progress`:`:GetTotal`(`)const:%- [@(0.0.255) int]_[* GetTotal]()_[@(0.0.255) const]&] +[s2; Returns the total number of steps (as set by [* Set ]or [* SetTotal]).&] +[s3; &] +[s4;%- &] +[s5;:Progress`:`:GetText`(`)const:%- [_^String^ String]_[* GetText]()_[@(0.0.255) const]&] +[s2; Returns the text of Progress.&] +[s3; &] +[s4;%- &] +[s5;:Progress`:`:Canceled`(`):%- [@(0.0.255) bool]_[* Canceled]()&] +[s2; Shows a Cancel button if not shown yet. If this button is pressed, +sets dialog to canceled mode. Returns true if dialog was canceled.&] +[s3; &] +[s4;%- &] +[s5;:Progress`:`:SetCanceled`(int`,int`):%- [@(0.0.255) bool]_[* SetCanceled]([@(0.0.255) i +nt]_[*@3 pos], [@(0.0.255) int]_[*@3 total])&] +[s2; Same as Set([%-*@3 pos], [%-*@3 total]), Canceled().&] +[s3; &] +[s4;%- &] +[s5;:Progress`:`:SetPosCanceled`(int`):%- [@(0.0.255) bool]_[* SetPosCanceled]([@(0.0.255) i +nt]_[*@3 pos])&] +[s2; Same as SetPos([%-*@3 pos]), Canceled().&] +[s3; &] +[s4;%- &] +[s5;:Progress`:`:StepCanceled`(int`):%- [@(0.0.255) bool]_[* StepCanceled]([@(0.0.255) int]_ +[*@3 steps]_`=_[@3 1])&] +[s2; Same as Set([%-*@3 steps]), Canceled().&] +[s3; &] +[s4;%- &] +[s5;:Progress`:`:Reset`(`):%- [@(0.0.255) void]_[* Reset]()&] +[s2; Resets dialog to default settings.&] +[s3; &] +[s4;%- &] +[s5;:Progress`:`:Granularity`(int`):%- [@(0.0.255) void]_[* Granularity]([@(0.0.255) int]_[*@3 m +s])&] +[s2; Sets how much often should dialog refresh. Default is 50ms.&] +[s3; &] +[s4;%- &] +[s5;:Progress`:`:AlignText`(int`):%- [@(0.0.255) void]_[* AlignText]([@(0.0.255) int]_[*@3 al +ign])&] +[s2; Sets text alignment. Allowed values are ALIGN`_LEFT, ALIGN`_CENTER +and ALIGN`_RIGHT.&] +[s3; &] +[s4;%- &] +[s5;:Progress`:`:operator Gate2``(`):%- [* operator_Gate2]()&] +[s2; Returns a callback to dialog`'s SetCanceled method.&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:Progress`:`:Delay`(int`):%- [@(0.0.255) void]_[* Delay]([@(0.0.255) int]_[*@3 ms]) +&] +[s2; Sets the delay before the dialog is shown for the first time +(in order not to show it when operation proceeds fast). Default +is 250ms.&] +[s3; &] [s0; ]] \ No newline at end of file diff --git a/uppsrc/CtrlLib/src.tpp/Pusher$en-us.tpp b/uppsrc/CtrlLib/src.tpp/Pusher_en-us.tpp similarity index 97% rename from uppsrc/CtrlLib/src.tpp/Pusher$en-us.tpp rename to uppsrc/CtrlLib/src.tpp/Pusher_en-us.tpp index 5a1ade18e..f504190ed 100644 --- a/uppsrc/CtrlLib/src.tpp/Pusher$en-us.tpp +++ b/uppsrc/CtrlLib/src.tpp/Pusher_en-us.tpp @@ -1,174 +1,174 @@ -topic "Pusher"; -[2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,0#27521748481378242620020725143825:desc] -[0 $$3,0#96390100711032703541132217272105:end] -[H6;0 $$4,0#05600065144404261032431302351956:begin] -[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] -[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] -[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] -[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] -[b42;2 $$9,9#13035079074754324216151401829390:normal] -[{_} -[ {{10000@3 [s0;%% [*@(229)4 Pusher]]}}&] -[s3; &] -[s1;:Pusher`:`:class: [@(0.0.255)3 class][3 _][*3 Pusher][3 _:_][@(0.0.255)3 public][3 _][*@3;3 Ctrl -]&] -[s9;%% Pusher is a base class for classes that perform simple action -when clicked by mouse or by some keyboard interface (usually -access key). Pusher handles all mouse input and checks whether -keyboard events match Pusher`'s access key, however keyboard -input can be also processed by derived classes and projected -into Pusher`'s state by its methods (KeyPush, FinishPush). Accelerator -key for Pusher is assigned either through the label (using `'`&`' -or `'`\b`', see [^topic`:`/`/CtrlLib`/src`/LabelBase`$en`-us^ LabelBase]).&] -[s9;%% When Pusher is pushed and mouse is then released while hovering -over pusher, PerformAction virtual method is invoked and its -standard implementation invokes in turn WhenAction callback. -Other than that, WhenPush and WhenRepeat callbacks are available.&] -[s0;%% &] -[s5;K%% [/ Derived from] [^topic`:`/`/CtrlCore`/src`/Ctrl`$en`-us`#`:`:Ctrl`:`:class Ctrl^ C -trl]&] -[s3;%% &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0;%% [* Constructor Detail]]}}&] -[s3; &] -[s5;:Pusher`:`:Pusher`(`): [* Pusher]()&] -[s2;%% Initializes Pusher. Font is sent to standard GUI font, accelerator -key is cleared.&] -[s3;%% &] -[s4; &] -[s5;:Pusher`:`:`~Pusher`(`): [@(0.0.255) `~][* Pusher]()&] -[s2;%% Default destructor.&] -[s3;%% &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0;%% [* Protected Field List]]}}&] -[s3; &] -[s5;:Pusher`:`:accesskey: [_^byte^ byte]_[* accesskey]&] -[s2;%% Access key assigned to the Pusher.&] -[s3;%% &] -[s4; &] -[s5;:Pusher`:`:label: [_^String^ String]_[* label]&] -[s2;%% Text assigned to the Pusher.&] -[s3;%% &] -[s4; &] -[s5;:Pusher`:`:font: [_^Font^ Font]_[* font]&] -[s2;%% Font assigned to the Pusher.&] -[s3;%% &] -[s0;%% &] -[ {{10000F(128)G(128)@1 [s0;%% [* Protected Member List]]}}&] -[s3; &] -[s5;:Pusher`:`:KeyPush`(`): [@(0.0.255) void]_[* KeyPush]()&] -[s2;%% This method puts Pusher into `"pushed by keyboard`" state. -It should be used as reaction to accelerator key by derived class.&] -[s3;%% &] -[s4; &] -[s5;:Pusher`:`:IsPush`(`)const: [@(0.0.255) bool]_[* IsPush]()_[@(0.0.255) const]&] -[s7;%% [*/ Return value]-|true when in pushed state.&] -[s3;%% &] -[s4; &] -[s5;:Pusher`:`:IsKeyPush`(`): [@(0.0.255) bool]_[* IsKeyPush]()&] -[s7;%% [*/ Return value]-|true when in pushed state initiated by keyboard.&] -[s3;%% &] -[s4; &] -[s5;:Pusher`:`:FinishPush`(`): [@(0.0.255) bool]_[* FinishPush]()&] -[s2;%% Forces end of pushed state and invokes PerformAction method -(default implementation invokes standard WhenAction callback).&] -[s3;%% &] -[s4;%% &] -[s5;:Pusher`:`:RefreshPush`(`): [@(0.0.255) virtual] [@(0.0.255) void]_[* RefreshPush]()&] -[s2;%% This method should refresh part of concrete derived Pusher -class that is being graphically changed as reaction to push state. -Default implementation calls Refresh, however some classes (like -Option) overload this to minimize repaint area size.&] -[s3;%% &] -[s4; &] -[s5;:Pusher`:`:RefreshFocus`(`): [@(0.0.255) virtual] [@(0.0.255) void]_[* RefreshFocus]()&] -[s2;%% This method should refresh part of concrete derived Pusher -class that is being graphically changed as reaction to change -of input focus. Default implementation calls Refresh, however -some classes (like Option) overload this to minimize repaint -area size.&] -[s3;%% &] -[s4; &] -[s5;:Pusher`:`:PerformAction`(`): [@(0.0.255) virtual] [@(0.0.255) void]_[* PerformAction]( -)&] -[s2;%% This method is called when `"push`" is finished. Default implementation -invokes WhenAction.&] -[s3;%% &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0;%% [* Public Member List]]}}&] -[s3; &] -[s5;:Pusher`:`:SetFont`(Font`): [_^Pusher^ Pusher][@(0.0.255) `&]_[* SetFont]([_^Font^ Font]_ -[*@3 fnt])&] -[s2;%% Sets the font that should be used in painting the concrete -derived Pusher class. Pusher itself does not use this font anywhere, -but most derived classes do.&] -[s7;%% [*C@3 fnt]-|Font.&] -[s7;%% [*/ Return value]-|`*this for method chaining.&] -[s3;%% &] -[s4; &] -[s5;:Pusher`:`:SetLabel`(const char`*`): [_^Pusher^ Pusher][@(0.0.255) `&]_[* SetLabel]([@(0.0.255) c -onst]_[@(0.0.255) char]_`*[*@3 text])&] -[s2;%% Sets the text of pusher. Pusher itself does not use this font -anywhere, but most derived classes do. Text can contain `'`&`' -or `'`\b`' characters to define access keys.&] -[s7;%% [*C@3 text]-|new text&] -[s7;%% [*/ Return value]-|`*this for method chaining.&] -[s3;%% &] -[s4; &] -[s5;:Pusher`:`:PseudoPush`(`): [@(0.0.255) void]_[* PseudoPush]()&] -[s2;%% Invokes `"push emulation`". Pusher will animate through states -as if it would be pushed by the user, including calls to PerformAction -(WhenAction), WhenPush and WhenRepeat.&] -[s3;%% &] -[s4; &] -[s5;:Pusher`:`:WhenPush: [_^Callback^ Callback]_[* WhenPush]&] -[s2;%% This callback is invoked when pusher goes from `"unpushed`" -to `"pushed`" state.&] -[s3;%% &] -[s4; &] -[s5;:Pusher`:`:WhenRepeat: [_^Callback^ Callback]_[* WhenRepeat]&] -[s2;%% `"Pusher autorepeat`" `- this callback is periodically invoked -when user holds mouse button over Pusher `- it emulates keyboard -autorepeat (e.g. arrow buttons in scrollbar).&] -[s3; &] -[s4; &] -[s5;:Pusher`:`:ClickFocus`(bool`): [@(0.0.255) virtual] [_^Pusher^ Pusher][@(0.0.255) `&]_[* C -lickFocus]([@(0.0.255) bool]_[*@3 cf]_`=_[@(0.0.255) true])&] -[s2;%% If [%-*@3 cf] is true, Pusher will get focused on a mouse click.&] -[s7;%% [*@3 cf]-|click focusing&] -[s7;%% [*/ Return value]-|`*this for method chaining.&] -[s3;%% &] -[s4; &] -[s5;:Pusher`:`:NoClickFocus`(`): [_^Pusher^ Pusher][@(0.0.255) `&]_[* NoClickFocus]()&] -[s2;%% Same as [^topic`:`/`/CtrlLib`/src`/Pusher`$en`-us`#Pusher`:`:ClickFocus`(bool`)^ C -lickFocus](false).&] -[s3; &] -[s4; &] -[s5;:Pusher`:`:IsClickFocus`(`)const: [@(0.0.255) bool]_[* IsClickFocus]()_[@(0.0.255) cons -t]&] -[s2;%% Retrieves the value of ClickFocus.&] -[s3; &] -[s4; &] -[s5;:Pusher`:`:GetFont`(`)const: [_^Font^ Font]_[* GetFont]()_[@(0.0.255) const]&] -[s2;%% Returns the font that should be used in painting the concrete -derived Pusher class. Pusher itself does not use this font anywhere, -but most derived classes do.&] -[s3; &] -[s4; &] -[s5;:Pusher`:`:GetLabel`(`)const: [_^String^ String]_[* GetLabel]()_[@(0.0.255) const]&] -[s2;%% Returns the text of pusher. Pusher itself does not use this -font anywhere, but most derived classes do. Text can contain -`'`&`' or `'`\b`' characters to define access keys.&] -[s3;%% &] -[s4; &] -[s5;:Pusher`:`:GetVisualState`(`)const: [@(0.0.255) int]_[* GetVisualState]()_[@(0.0.255) c -onst]&] -[s2;%% Returns the current visual state of the current pusher:&] -[s7;%% CTRL`_NORMAL-|pusher is enabled and not interacting with mouse&] -[s7;%% CTRL`_HOT-|pusher is enabled and under the mouse cursor&] -[s7;%% CTRL`_PRESSED-|pusher is enabled and pressed&] -[s7;%% CTRL`_DISABLED-|pusher is disabled&] -[s3; &] +topic "Pusher"; +[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,0#27521748481378242620020725143825:desc] +[0 $$3,0#96390100711032703541132217272105:end] +[H6;0 $$4,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] +[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] +[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] +[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] +[b42;2 $$9,9#13035079074754324216151401829390:normal] +[{_} +[ {{10000@3 [s0;%% [*@(229)4 Pusher]]}}&] +[s3; &] +[s1;:Pusher`:`:class: [@(0.0.255)3 class][3 _][*3 Pusher][3 _:_][@(0.0.255)3 public][3 _][*@3;3 Ctrl +]&] +[s9;%% Pusher is a base class for classes that perform simple action +when clicked by mouse or by some keyboard interface (usually +access key). Pusher handles all mouse input and checks whether +keyboard events match Pusher`'s access key, however keyboard +input can be also processed by derived classes and projected +into Pusher`'s state by its methods (KeyPush, FinishPush). Accelerator +key for Pusher is assigned either through the label (using `'`&`' +or `'`\b`', see [^topic`:`/`/CtrlLib`/src`/LabelBase`$en`-us^ LabelBase]).&] +[s9;%% When Pusher is pushed and mouse is then released while hovering +over pusher, PerformAction virtual method is invoked and its +standard implementation invokes in turn WhenAction callback. +Other than that, WhenPush and WhenRepeat callbacks are available.&] +[s0;%% &] +[s5;K%% [/ Derived from] [^topic`:`/`/CtrlCore`/src`/Ctrl`$en`-us`#`:`:Ctrl`:`:class Ctrl^ C +trl]&] +[s3;%% &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0;%% [* Constructor Detail]]}}&] +[s3; &] +[s5;:Pusher`:`:Pusher`(`): [* Pusher]()&] +[s2;%% Initializes Pusher. Font is sent to standard GUI font, accelerator +key is cleared.&] +[s3;%% &] +[s4; &] +[s5;:Pusher`:`:`~Pusher`(`): [@(0.0.255) `~][* Pusher]()&] +[s2;%% Default destructor.&] +[s3;%% &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0;%% [* Protected Field List]]}}&] +[s3; &] +[s5;:Pusher`:`:accesskey: [_^byte^ byte]_[* accesskey]&] +[s2;%% Access key assigned to the Pusher.&] +[s3;%% &] +[s4; &] +[s5;:Pusher`:`:label: [_^String^ String]_[* label]&] +[s2;%% Text assigned to the Pusher.&] +[s3;%% &] +[s4; &] +[s5;:Pusher`:`:font: [_^Font^ Font]_[* font]&] +[s2;%% Font assigned to the Pusher.&] +[s3;%% &] +[s0;%% &] +[ {{10000F(128)G(128)@1 [s0;%% [* Protected Member List]]}}&] +[s3; &] +[s5;:Pusher`:`:KeyPush`(`): [@(0.0.255) void]_[* KeyPush]()&] +[s2;%% This method puts Pusher into `"pushed by keyboard`" state. +It should be used as reaction to accelerator key by derived class.&] +[s3;%% &] +[s4; &] +[s5;:Pusher`:`:IsPush`(`)const: [@(0.0.255) bool]_[* IsPush]()_[@(0.0.255) const]&] +[s7;%% [*/ Return value]-|true when in pushed state.&] +[s3;%% &] +[s4; &] +[s5;:Pusher`:`:IsKeyPush`(`): [@(0.0.255) bool]_[* IsKeyPush]()&] +[s7;%% [*/ Return value]-|true when in pushed state initiated by keyboard.&] +[s3;%% &] +[s4; &] +[s5;:Pusher`:`:FinishPush`(`): [@(0.0.255) bool]_[* FinishPush]()&] +[s2;%% Forces end of pushed state and invokes PerformAction method +(default implementation invokes standard WhenAction callback).&] +[s3;%% &] +[s4;%% &] +[s5;:Pusher`:`:RefreshPush`(`): [@(0.0.255) virtual] [@(0.0.255) void]_[* RefreshPush]()&] +[s2;%% This method should refresh part of concrete derived Pusher +class that is being graphically changed as reaction to push state. +Default implementation calls Refresh, however some classes (like +Option) overload this to minimize repaint area size.&] +[s3;%% &] +[s4; &] +[s5;:Pusher`:`:RefreshFocus`(`): [@(0.0.255) virtual] [@(0.0.255) void]_[* RefreshFocus]()&] +[s2;%% This method should refresh part of concrete derived Pusher +class that is being graphically changed as reaction to change +of input focus. Default implementation calls Refresh, however +some classes (like Option) overload this to minimize repaint +area size.&] +[s3;%% &] +[s4; &] +[s5;:Pusher`:`:PerformAction`(`): [@(0.0.255) virtual] [@(0.0.255) void]_[* PerformAction]( +)&] +[s2;%% This method is called when `"push`" is finished. Default implementation +invokes WhenAction.&] +[s3;%% &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0;%% [* Public Member List]]}}&] +[s3; &] +[s5;:Pusher`:`:SetFont`(Font`): [_^Pusher^ Pusher][@(0.0.255) `&]_[* SetFont]([_^Font^ Font]_ +[*@3 fnt])&] +[s2;%% Sets the font that should be used in painting the concrete +derived Pusher class. Pusher itself does not use this font anywhere, +but most derived classes do.&] +[s7;%% [*C@3 fnt]-|Font.&] +[s7;%% [*/ Return value]-|`*this for method chaining.&] +[s3;%% &] +[s4; &] +[s5;:Pusher`:`:SetLabel`(const char`*`): [_^Pusher^ Pusher][@(0.0.255) `&]_[* SetLabel]([@(0.0.255) c +onst]_[@(0.0.255) char]_`*[*@3 text])&] +[s2;%% Sets the text of pusher. Pusher itself does not use this font +anywhere, but most derived classes do. Text can contain `'`&`' +or `'`\b`' characters to define access keys.&] +[s7;%% [*C@3 text]-|new text&] +[s7;%% [*/ Return value]-|`*this for method chaining.&] +[s3;%% &] +[s4; &] +[s5;:Pusher`:`:PseudoPush`(`): [@(0.0.255) void]_[* PseudoPush]()&] +[s2;%% Invokes `"push emulation`". Pusher will animate through states +as if it would be pushed by the user, including calls to PerformAction +(WhenAction), WhenPush and WhenRepeat.&] +[s3;%% &] +[s4; &] +[s5;:Pusher`:`:WhenPush: [_^Callback^ Callback]_[* WhenPush]&] +[s2;%% This callback is invoked when pusher goes from `"unpushed`" +to `"pushed`" state.&] +[s3;%% &] +[s4; &] +[s5;:Pusher`:`:WhenRepeat: [_^Callback^ Callback]_[* WhenRepeat]&] +[s2;%% `"Pusher autorepeat`" `- this callback is periodically invoked +when user holds mouse button over Pusher `- it emulates keyboard +autorepeat (e.g. arrow buttons in scrollbar).&] +[s3; &] +[s4; &] +[s5;:Pusher`:`:ClickFocus`(bool`): [@(0.0.255) virtual] [_^Pusher^ Pusher][@(0.0.255) `&]_[* C +lickFocus]([@(0.0.255) bool]_[*@3 cf]_`=_[@(0.0.255) true])&] +[s2;%% If [%-*@3 cf] is true, Pusher will get focused on a mouse click.&] +[s7;%% [*@3 cf]-|click focusing&] +[s7;%% [*/ Return value]-|`*this for method chaining.&] +[s3;%% &] +[s4; &] +[s5;:Pusher`:`:NoClickFocus`(`): [_^Pusher^ Pusher][@(0.0.255) `&]_[* NoClickFocus]()&] +[s2;%% Same as [^topic`:`/`/CtrlLib`/src`/Pusher`$en`-us`#Pusher`:`:ClickFocus`(bool`)^ C +lickFocus](false).&] +[s3; &] +[s4; &] +[s5;:Pusher`:`:IsClickFocus`(`)const: [@(0.0.255) bool]_[* IsClickFocus]()_[@(0.0.255) cons +t]&] +[s2;%% Retrieves the value of ClickFocus.&] +[s3; &] +[s4; &] +[s5;:Pusher`:`:GetFont`(`)const: [_^Font^ Font]_[* GetFont]()_[@(0.0.255) const]&] +[s2;%% Returns the font that should be used in painting the concrete +derived Pusher class. Pusher itself does not use this font anywhere, +but most derived classes do.&] +[s3; &] +[s4; &] +[s5;:Pusher`:`:GetLabel`(`)const: [_^String^ String]_[* GetLabel]()_[@(0.0.255) const]&] +[s2;%% Returns the text of pusher. Pusher itself does not use this +font anywhere, but most derived classes do. Text can contain +`'`&`' or `'`\b`' characters to define access keys.&] +[s3;%% &] +[s4; &] +[s5;:Pusher`:`:GetVisualState`(`)const: [@(0.0.255) int]_[* GetVisualState]()_[@(0.0.255) c +onst]&] +[s2;%% Returns the current visual state of the current pusher:&] +[s7;%% CTRL`_NORMAL-|pusher is enabled and not interacting with mouse&] +[s7;%% CTRL`_HOT-|pusher is enabled and under the mouse cursor&] +[s7;%% CTRL`_PRESSED-|pusher is enabled and pressed&] +[s7;%% CTRL`_DISABLED-|pusher is disabled&] +[s3; &] [s0; ]] \ No newline at end of file diff --git a/uppsrc/CtrlLib/src.tpp/Slider$en-us.tpp b/uppsrc/CtrlLib/src.tpp/Slider_en-us.tpp similarity index 97% rename from uppsrc/CtrlLib/src.tpp/Slider$en-us.tpp rename to uppsrc/CtrlLib/src.tpp/Slider_en-us.tpp index af916d372..7d2f97453 100644 --- a/uppsrc/CtrlLib/src.tpp/Slider$en-us.tpp +++ b/uppsrc/CtrlLib/src.tpp/Slider_en-us.tpp @@ -1,75 +1,75 @@ -topic "Slider"; -[2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,0#27521748481378242620020725143825:desc] -[0 $$3,0#96390100711032703541132217272105:end] -[H6;0 $$4,0#05600065144404261032431302351956:begin] -[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] -[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] -[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] -[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] -[b42;2 $$9,9#13035079074754324216151401829390:normal] -[{_}%EN-US -[ {{10000@3 [s0; [*@(229)4 SliderCtrl]]}}&] -[s3; &] -[s1;:SliderCtrl`:`:class:%- [@(0.0.255)3 class][3 _][*3 SliderCtrl][3 _:_][@(0.0.255)3 public][3 _ -][*@3;3 Ctrl]&] -[s9; SliderCtrl is a widget that allows entering an integer value -by dragging a thumb.&] -[s0; &] -[s2;%- -@@image:681&143 -€ƒí€—€€€€€€€€€€ø¯œí˜½‰À ¨ÆÝµ²Á‡Šìàš©Ü úà•…Ì„üà –š¸ïãò•–ŸÏ¯ðÂÁ¶†€€˜‡ûÅŒúŸ‘‘ïÞ -ùûøÆÎ˜¬ÓΨöœÛ“¼È¦ÆÆš´¢‘›Õ¬óÔ‰Ùïê­îȽ‚ªÆÓDzšµË°Ý‘×åê“¢±ÊЗ´Æî×’Õ¨Ýêõ‡«üÁ뜂´ -Ë¢±ŸøŒþ¥ò±­£Øò´›‰Ä¡€¨ð€§ƒÌœ -&] -[s0;%- &] -[s0; [/ Derived from] [^topic`:`/`/CtrlCore`/src`/Ctrl`$en`-us`#`:`:Ctrl`:`:class Ctrl^ C -trl]&] -[s3; &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] -[s3;%- &] -[s5;:SliderCtrl`:`:Inc`(`):%- [@(0.0.255) void]_[* Inc]()&] -[s2; Increments slider value by [* Step].&] -[s3; &] -[s4;%- &] -[s5;:SliderCtrl`:`:Dec`(`):%- [@(0.0.255) void]_[* Dec]()&] -[s2; Decrements slider value by [* Step].&] -[s3; &] -[s4;%- &] -[s5;:SliderCtrl`:`:MinMax`(int`,int`):%- [_^SliderCtrl^ SliderCtrl][@(0.0.255) `&]_[* MinMa -x]([@(0.0.255) int]_[*@3 `_min], [@(0.0.255) int]_[*@3 `_max])&] -[s2; Sets the minimum (thumb in leftmost position) and maximum (thumb -in rightmost position) values. Returns `*this.&] -[s3; &] -[s4;%- &] -[s5;:SliderCtrl`:`:Range`(int`):%- [_^SliderCtrl^ SliderCtrl][@(0.0.255) `&]_[* Range]([@(0.0.255) i -nt]_[*@3 max])&] -[s2; Same as [^topic`:`/`/CtrlLib`/src`/Slider`$en`-us`#SliderCtrl`:`:MinMax`(int`,int`)^ M -inMax](0, [%-*@3 max]).&] -[s3; &] -[s4;%- &] -[s5;:SliderCtrl`:`:GetMin`(`)const:%- [@(0.0.255) int]_[* GetMin]()_[@(0.0.255) const]&] -[s2; Returns minimum value.&] -[s3; &] -[s4;%- &] -[s5;:SliderCtrl`:`:GetMax`(`)const:%- [@(0.0.255) int]_[* GetMax]()_[@(0.0.255) const]&] -[s2; Returns maximum value.&] -[s3; &] -[s4;%- &] -[s5;:SliderCtrl`:`:IsVert`(`)const:%- [@(0.0.255) bool]_[* IsVert]()_[@(0.0.255) const]&] -[s2; Sets the step used in Inc and Dec methods. If [%-*@3 r] is true, -SliderCtrl rounds the value to step multiplies even when dragging -the thumb by mouse.&] -[s3; &] -[s4;%- &] -[s5;:SliderCtrl`:`:GetStep`(`)const:%- [@(0.0.255) int]_[* GetStep]()_[@(0.0.255) const]&] -[s2; Returns current step.&] -[s3; &] -[s4;%- &] -[s5;:SliderCtrl`:`:IsRoundStep`(`)const:%- [@(0.0.255) bool]_[* IsRoundStep]()_[@(0.0.255) c -onst]&] -[s2; Tests whether step rounding is active.&] -[s3; &] +topic "Slider"; +[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,0#27521748481378242620020725143825:desc] +[0 $$3,0#96390100711032703541132217272105:end] +[H6;0 $$4,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] +[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] +[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] +[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] +[b42;2 $$9,9#13035079074754324216151401829390:normal] +[{_}%EN-US +[ {{10000@3 [s0; [*@(229)4 SliderCtrl]]}}&] +[s3; &] +[s1;:SliderCtrl`:`:class:%- [@(0.0.255)3 class][3 _][*3 SliderCtrl][3 _:_][@(0.0.255)3 public][3 _ +][*@3;3 Ctrl]&] +[s9; SliderCtrl is a widget that allows entering an integer value +by dragging a thumb.&] +[s0; &] +[s2;%- +@@image:681&143 +€ƒí€—€€€€€€€€€€ø¯œí˜½‰À ¨ÆÝµ²Á‡Šìàš©Ü úà•…Ì„üà –š¸ïãò•–ŸÏ¯ðÂÁ¶†€€˜‡ûÅŒúŸ‘‘ïÞ +ùûøÆÎ˜¬ÓΨöœÛ“¼È¦ÆÆš´¢‘›Õ¬óÔ‰Ùïê­îȽ‚ªÆÓDzšµË°Ý‘×åê“¢±ÊЗ´Æî×’Õ¨Ýêõ‡«üÁ뜂´ +Ë¢±ŸøŒþ¥ò±­£Øò´›‰Ä¡€¨ð€§ƒÌœ +&] +[s0;%- &] +[s0; [/ Derived from] [^topic`:`/`/CtrlCore`/src`/Ctrl`$en`-us`#`:`:Ctrl`:`:class Ctrl^ C +trl]&] +[s3; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] +[s3;%- &] +[s5;:SliderCtrl`:`:Inc`(`):%- [@(0.0.255) void]_[* Inc]()&] +[s2; Increments slider value by [* Step].&] +[s3; &] +[s4;%- &] +[s5;:SliderCtrl`:`:Dec`(`):%- [@(0.0.255) void]_[* Dec]()&] +[s2; Decrements slider value by [* Step].&] +[s3; &] +[s4;%- &] +[s5;:SliderCtrl`:`:MinMax`(int`,int`):%- [_^SliderCtrl^ SliderCtrl][@(0.0.255) `&]_[* MinMa +x]([@(0.0.255) int]_[*@3 `_min], [@(0.0.255) int]_[*@3 `_max])&] +[s2; Sets the minimum (thumb in leftmost position) and maximum (thumb +in rightmost position) values. Returns `*this.&] +[s3; &] +[s4;%- &] +[s5;:SliderCtrl`:`:Range`(int`):%- [_^SliderCtrl^ SliderCtrl][@(0.0.255) `&]_[* Range]([@(0.0.255) i +nt]_[*@3 max])&] +[s2; Same as [^topic`:`/`/CtrlLib`/src`/Slider`$en`-us`#SliderCtrl`:`:MinMax`(int`,int`)^ M +inMax](0, [%-*@3 max]).&] +[s3; &] +[s4;%- &] +[s5;:SliderCtrl`:`:GetMin`(`)const:%- [@(0.0.255) int]_[* GetMin]()_[@(0.0.255) const]&] +[s2; Returns minimum value.&] +[s3; &] +[s4;%- &] +[s5;:SliderCtrl`:`:GetMax`(`)const:%- [@(0.0.255) int]_[* GetMax]()_[@(0.0.255) const]&] +[s2; Returns maximum value.&] +[s3; &] +[s4;%- &] +[s5;:SliderCtrl`:`:IsVert`(`)const:%- [@(0.0.255) bool]_[* IsVert]()_[@(0.0.255) const]&] +[s2; Sets the step used in Inc and Dec methods. If [%-*@3 r] is true, +SliderCtrl rounds the value to step multiplies even when dragging +the thumb by mouse.&] +[s3; &] +[s4;%- &] +[s5;:SliderCtrl`:`:GetStep`(`)const:%- [@(0.0.255) int]_[* GetStep]()_[@(0.0.255) const]&] +[s2; Returns current step.&] +[s3; &] +[s4;%- &] +[s5;:SliderCtrl`:`:IsRoundStep`(`)const:%- [@(0.0.255) bool]_[* IsRoundStep]()_[@(0.0.255) c +onst]&] +[s2; Tests whether step rounding is active.&] +[s3; &] [s0; ] \ No newline at end of file diff --git a/uppsrc/CtrlLib/src.tpp/SpinButtons$en-us.tpp b/uppsrc/CtrlLib/src.tpp/SpinButtons_en-us.tpp similarity index 100% rename from uppsrc/CtrlLib/src.tpp/SpinButtons$en-us.tpp rename to uppsrc/CtrlLib/src.tpp/SpinButtons_en-us.tpp diff --git a/uppsrc/CtrlLib/src.tpp/SplitterFrame$en-us.tpp b/uppsrc/CtrlLib/src.tpp/SplitterFrame_en-us.tpp similarity index 97% rename from uppsrc/CtrlLib/src.tpp/SplitterFrame$en-us.tpp rename to uppsrc/CtrlLib/src.tpp/SplitterFrame_en-us.tpp index 7ead648d2..50d4bcda9 100644 --- a/uppsrc/CtrlLib/src.tpp/SplitterFrame$en-us.tpp +++ b/uppsrc/CtrlLib/src.tpp/SplitterFrame_en-us.tpp @@ -1,81 +1,81 @@ -topic "SplitterFrame"; -[2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,0#27521748481378242620020725143825:desc] -[0 $$3,0#96390100711032703541132217272105:end] -[H6;0 $$4,0#05600065144404261032431302351956:begin] -[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] -[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] -[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] -[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] -[b42;2 $$9,9#13035079074754324216151401829390:normal] -[{_}%EN-US -[ {{10000@3 [s0; [*@(229)4 SplitterFrame]]}}&] -[s3; &] -[s1;:SplitterFrame`:`:class:%- [@(0.0.255)3 class][3 _][*3 SplitterFrame][3 _:_][@(0.0.255)3 pub -lic][3 _][*@3;3 CtrlFrame][3 , ][@(0.0.255)3 private][3 _][*@3;3 Ctrl]&] -[s9; This class acts as an resizable frame area.&] -[s3; &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0; [* Public Method List]]}}&] -[s3;%- &] -[s5;:SplitterFrame`:`:Serialize`(Stream`&`):%- [@(0.0.255) virtual] -[@(0.0.255) void]_[* Serialize]([_^Stream^ Stream][@(0.0.255) `&]_[*@3 s])&] -[s2; Serializes actual SplitterFrame size.&] -[s3; &] -[s4;%- &] -[s5;:SplitterFrame`:`:Set`(Ctrl`&`,int`,int`):%- [_^SplitterFrame^ SplitterFrame][@(0.0.255) `& -]_[* Set]([_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 c], [@(0.0.255) int]_[*@3 size], -[@(0.0.255) int]_[*@3 type])&] -[s2; Sets SplitterFrame to contain [%-*@3 c] widget, with initial [%-*@3 size -](in pixels).[%-*@3 type] determines the position `- it can be -SplitterFrame`::[* LEFT], SplitterFrame`::[* RIGHT], SplitterFrame`::[* TOP -]or SplitterFrame`::[* BOTTOM].&] -[s3; &] -[s4;%- &] -[s5;:SplitterFrame`:`:Left`(Ctrl`&`,int`):%- [_^SplitterFrame^ SplitterFrame][@(0.0.255) `& -]_[* Left]([_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 c], [@(0.0.255) int]_[*@3 size])&] -[s2; Same as Set([%-*@3 c] , [%-*@3 size], SplitterFrame`::LEFT).&] -[s3; &] -[s4;%- &] -[s5;:SplitterFrame`:`:Top`(Ctrl`&`,int`):%- [_^SplitterFrame^ SplitterFrame][@(0.0.255) `& -]_[* Top]([_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 c], [@(0.0.255) int]_[*@3 size])&] -[s2; Same as Set([%-*@3 c] , [%-*@3 size], SplitterFrame`::TOP).&] -[s3; &] -[s4;%- &] -[s5;:SplitterFrame`:`:Right`(Ctrl`&`,int`):%- [_^SplitterFrame^ SplitterFrame][@(0.0.255) `& -]_[* Right]([_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 c], [@(0.0.255) int]_[*@3 size])&] -[s2; Same as Set([%-*@3 c] , [%-*@3 size], SplitterFrame`::RIGHT).&] -[s3; &] -[s4;%- &] -[s5;:SplitterFrame`:`:Bottom`(Ctrl`&`,int`):%- [_^SplitterFrame^ SplitterFrame][@(0.0.255) `& -]_[* Bottom]([_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 c], [@(0.0.255) int]_[*@3 size])&] -[s2; Same as Set([%-*@3 c] , [%-*@3 size], SplitterFrame`::BOTTOM).&] -[s3; &] -[s4;%- &] -[s5;:SplitterFrame`:`:MinSize`(int`):%- [_^SplitterFrame^ SplitterFrame][@(0.0.255) `&]_[* M -inSize]([@(0.0.255) int]_[*@3 sz])&] -[s2; Sets the minimal size.&] -[s3; &] -[s4;%- &] -[s5;:SplitterFrame`:`:SizeMin`(int`):%- [_^SplitterFrame^ SplitterFrame][@(0.0.255) `&]_[* S -izeMin]([@(0.0.255) int]_[*@3 sz])&] -[s2; Sets the minimal size of next frame in the list or final view -if there is none `- this in fact determines the maximum size -of SplitterFrame.&] -[s3; &] -[s4;%- &] -[s5;:SplitterFrame`:`:GetType`(`)const:%- [@(0.0.255) int]_[* GetType]()_[@(0.0.255) const]&] -[s2; Returns the type (in pixels).&] -[s3; &] -[s4;%- &] -[s5;:SplitterFrame`:`:GetSize`(`)const:%- [@(0.0.255) virtual] [@(0.0.255) int]_[* GetSize]( -)_[@(0.0.255) const]&] -[s2; Returns the current size.&] -[s3; &] -[s4;%- &] -[s5;:SplitterFrame`:`:SetSize`(int`):%- [@(0.0.255) void]_[* SetSize]([@(0.0.255) int]_[*@3 s -z])&] -[s2; Sets the size (in pixels).&] -[s3; &] +topic "SplitterFrame"; +[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,0#27521748481378242620020725143825:desc] +[0 $$3,0#96390100711032703541132217272105:end] +[H6;0 $$4,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] +[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] +[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] +[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] +[b42;2 $$9,9#13035079074754324216151401829390:normal] +[{_}%EN-US +[ {{10000@3 [s0; [*@(229)4 SplitterFrame]]}}&] +[s3; &] +[s1;:SplitterFrame`:`:class:%- [@(0.0.255)3 class][3 _][*3 SplitterFrame][3 _:_][@(0.0.255)3 pub +lic][3 _][*@3;3 CtrlFrame][3 , ][@(0.0.255)3 private][3 _][*@3;3 Ctrl]&] +[s9; This class acts as an resizable frame area.&] +[s3; &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0; [* Public Method List]]}}&] +[s3;%- &] +[s5;:SplitterFrame`:`:Serialize`(Stream`&`):%- [@(0.0.255) virtual] +[@(0.0.255) void]_[* Serialize]([_^Stream^ Stream][@(0.0.255) `&]_[*@3 s])&] +[s2; Serializes actual SplitterFrame size.&] +[s3; &] +[s4;%- &] +[s5;:SplitterFrame`:`:Set`(Ctrl`&`,int`,int`):%- [_^SplitterFrame^ SplitterFrame][@(0.0.255) `& +]_[* Set]([_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 c], [@(0.0.255) int]_[*@3 size], +[@(0.0.255) int]_[*@3 type])&] +[s2; Sets SplitterFrame to contain [%-*@3 c] widget, with initial [%-*@3 size +](in pixels).[%-*@3 type] determines the position `- it can be +SplitterFrame`::[* LEFT], SplitterFrame`::[* RIGHT], SplitterFrame`::[* TOP +]or SplitterFrame`::[* BOTTOM].&] +[s3; &] +[s4;%- &] +[s5;:SplitterFrame`:`:Left`(Ctrl`&`,int`):%- [_^SplitterFrame^ SplitterFrame][@(0.0.255) `& +]_[* Left]([_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 c], [@(0.0.255) int]_[*@3 size])&] +[s2; Same as Set([%-*@3 c] , [%-*@3 size], SplitterFrame`::LEFT).&] +[s3; &] +[s4;%- &] +[s5;:SplitterFrame`:`:Top`(Ctrl`&`,int`):%- [_^SplitterFrame^ SplitterFrame][@(0.0.255) `& +]_[* Top]([_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 c], [@(0.0.255) int]_[*@3 size])&] +[s2; Same as Set([%-*@3 c] , [%-*@3 size], SplitterFrame`::TOP).&] +[s3; &] +[s4;%- &] +[s5;:SplitterFrame`:`:Right`(Ctrl`&`,int`):%- [_^SplitterFrame^ SplitterFrame][@(0.0.255) `& +]_[* Right]([_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 c], [@(0.0.255) int]_[*@3 size])&] +[s2; Same as Set([%-*@3 c] , [%-*@3 size], SplitterFrame`::RIGHT).&] +[s3; &] +[s4;%- &] +[s5;:SplitterFrame`:`:Bottom`(Ctrl`&`,int`):%- [_^SplitterFrame^ SplitterFrame][@(0.0.255) `& +]_[* Bottom]([_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 c], [@(0.0.255) int]_[*@3 size])&] +[s2; Same as Set([%-*@3 c] , [%-*@3 size], SplitterFrame`::BOTTOM).&] +[s3; &] +[s4;%- &] +[s5;:SplitterFrame`:`:MinSize`(int`):%- [_^SplitterFrame^ SplitterFrame][@(0.0.255) `&]_[* M +inSize]([@(0.0.255) int]_[*@3 sz])&] +[s2; Sets the minimal size.&] +[s3; &] +[s4;%- &] +[s5;:SplitterFrame`:`:SizeMin`(int`):%- [_^SplitterFrame^ SplitterFrame][@(0.0.255) `&]_[* S +izeMin]([@(0.0.255) int]_[*@3 sz])&] +[s2; Sets the minimal size of next frame in the list or final view +if there is none `- this in fact determines the maximum size +of SplitterFrame.&] +[s3; &] +[s4;%- &] +[s5;:SplitterFrame`:`:GetType`(`)const:%- [@(0.0.255) int]_[* GetType]()_[@(0.0.255) const]&] +[s2; Returns the type (in pixels).&] +[s3; &] +[s4;%- &] +[s5;:SplitterFrame`:`:GetSize`(`)const:%- [@(0.0.255) virtual] [@(0.0.255) int]_[* GetSize]( +)_[@(0.0.255) const]&] +[s2; Returns the current size.&] +[s3; &] +[s4;%- &] +[s5;:SplitterFrame`:`:SetSize`(int`):%- [@(0.0.255) void]_[* SetSize]([@(0.0.255) int]_[*@3 s +z])&] +[s2; Sets the size (in pixels).&] +[s3; &] [s0; ]] \ No newline at end of file diff --git a/uppsrc/CtrlLib/src.tpp/Splitter$en-us.tpp b/uppsrc/CtrlLib/src.tpp/Splitter_en-us.tpp similarity index 97% rename from uppsrc/CtrlLib/src.tpp/Splitter$en-us.tpp rename to uppsrc/CtrlLib/src.tpp/Splitter_en-us.tpp index f5af2b1d0..01f99a2d8 100644 --- a/uppsrc/CtrlLib/src.tpp/Splitter$en-us.tpp +++ b/uppsrc/CtrlLib/src.tpp/Splitter_en-us.tpp @@ -1,152 +1,152 @@ -topic "Splitter"; -[2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,0#27521748481378242620020725143825:desc] -[0 $$3,0#96390100711032703541132217272105:end] -[H6;0 $$4,0#05600065144404261032431302351956:begin] -[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] -[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] -[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] -[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] -[b42;2 $$9,9#13035079074754324216151401829390:normal] -[{_} -[ {{10000@3 [s0;%% [*@(229)4 Splitter]]}}&] -[s3;%% &] -[s1;:Splitter`:`:class: [@(0.0.255)3 class][3 _][*3 Splitter][3 _:_][@(0.0.255)3 public][3 _][*@3;3 C -trl]&] -[s9;%% Splitter is a widget that contains two or more child widgets -arranged either horizontally or vertically. User can then alter -the distribution of area between individual widgets by dragging -separator bars.&] -[s3;%% &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0;%% [* Public Method List]]}}&] -[s3; &] -[s5;:Splitter`:`:WhenSplitFinish: [_^Callback^ Callback]_[* WhenSplitFinish]&] -[s2;%% Invoked after use has finished moving the split.&] -[s3; &] -[s4; &] -[s5;:Splitter`:`:Set`(Ctrl`&`,Ctrl`&`): [@(0.0.255) void]_[* Set]([_^Ctrl^ Ctrl][@(0.0.255) `& -]_[*@3 l], [_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 r])&] -[s2;%% Sets t splitter to contain two child widgets.&] -[s3; &] -[s4; &] -[s5;:Splitter`:`:SetPos`(int`,int`): [_^Splitter^ Splitter][@(0.0.255) `&]_[* SetPos]([@(0.0.255) i -nt]_[*@3 newpos], [@(0.0.255) int]_[*@3 index]_`=_[@3 0])&] -[s2; [%% Sets the position of separator between widgets at ][*@3 index][%% -and ][*@3 index][%% `+ 1. Units of ][*@3 newpos] express ratio, 10000 -is the full width or height.&] -[s3;%% &] -[s4; &] -[s5;:Splitter`:`:GetPos`(int`)const: [@(0.0.255) int]_[* GetPos]([@(0.0.255) int]_[*@3 index]_ -`=_[@3 0])_[@(0.0.255) const]&] -[s2;%% Returns the position of separator between widgets at [%-*@3 index] -and [%-*@3 index] `+ 1.&] -[s3;%% &] -[s4; &] -[s5;:Splitter`:`:GetCount`(`)const: [@(0.0.255) int]_[* GetCount]()_[@(0.0.255) const]&] -[s2;%% Returns the number of child widgets.&] -[s3;%% &] -[s4; &] -[s5;:Splitter`:`:PosToClient`(int`)const: [@(0.0.255) int]_[* PosToClient]([@(0.0.255) int]_ -[*@3 pos])_[@(0.0.255) const]&] -[s2;%% Converts position (where full width or height is 10000) into -view coordinate.&] -[s3;%% &] -[s4; &] -[s5;:Splitter`:`:ClientToPos`(Point`)const: [@(0.0.255) int]_[* ClientToPos]([_^Point^ Poin -t]_[*@3 client])_[@(0.0.255) const]&] -[s2;%% Converts view coordinate (either x or y, based on orientaion) -into position (where full width or height is 10000).&] -[s3;%% &] -[s4; &] -[s5;:Splitter`:`:Zoom`(int`): [@(0.0.255) void]_[* Zoom]([@(0.0.255) int]_[*@3 i])&] -[s2;%% Makes widget [%-*@3 i] to cover whole splitter area (other widgets -are hidden).&] -[s3;%% &] -[s4; &] -[s5;:Splitter`:`:NoZoom`(`): [@(0.0.255) void]_[* NoZoom]()&] -[s2;%% Reverts to normal operation after Zoom.&] -[s3;%% &] -[s4; &] -[s5;:Splitter`:`:GetZoom`(`)const: [@(0.0.255) int]_[* GetZoom]()_[@(0.0.255) const]&] -[s2;%% Returns the index of zoomed widget or negative value if none. - &] -[s3;%% &] -[s4; &] -[s5;:Splitter`:`:SetMin`(int`,int`): [@(0.0.255) void]_[* SetMin]([@(0.0.255) int]_[*@3 i], -[@(0.0.255) int]_[*@3 w])&] -[s2;%% Sets the minimal width of widget [%-*@3 i] to [%-*@3 w] `* total -width / 10000.&] -[s3;%% &] -[s4; &] -[s5;:Splitter`:`:SetMinPixels`(int`,int`): [@(0.0.255) void]_[* SetMinPixels]([@(0.0.255) i -nt]_[*@3 i], [@(0.0.255) int]_[*@3 w])&] -[s2;%% Sets the minimal width of widget [%-*@3 i] to [%-*@3 w] pixels.&] -[s3;%% &] -[s4; &] -[s5;:Splitter`:`:GetSplitWidth`(`)const: [@(0.0.255) int]_[* GetSplitWidth]()_[@(0.0.255) c -onst]&] -[s2;%% Width of spllitter handle in pixels.&] -[s3; &] -[s4; &] -[s5;:Splitter`:`:Vert`(`): [_^Splitter^ Splitter][@(0.0.255) `&]_[* Vert]()&] -[s2;%% Sets splitter to vertical mode `- separator bars in this mode -are horizontal. Returns `*this.&] -[s3;%% &] -[s4; &] -[s5;:Splitter`:`:Horz`(`): [_^Splitter^ Splitter][@(0.0.255) `&]_[* Horz]()&] -[s2;%% Sets splitter to horizontal mode `- separator bars in this -mode are vertical. Returns `*this.&] -[s3;%% &] -[s4; &] -[s5;:Splitter`:`:Add`(Ctrl`&`): [@(0.0.255) virtual] [@(0.0.255) void]_[* Add]([_^Ctrl^ Ctrl][@(0.0.255) `& -]_[*@3 pane])&] -[s5;:Splitter`:`:operator`<`<`(Ctrl`&`): [@(0.0.255) virtual] [_^Splitter^ Splitter][@(0.0.255) `& -]_[* operator<<]([_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 pane])&] -[s2;%% Adds the new [%-*@3 pane].&] -[s3;%% &] -[s4; &] -[s5;:Splitter`:`:Insert`(int`,Ctrl`&`): [@(0.0.255) void]_[* Insert]([@(0.0.255) int]_[*@3 po -s], [_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 pane])&] -[s2;%% Inserts a new [%-*@3 pane] at [%-*@3 pos].&] -[s3;%% &] -[s4; &] -[s5;:Splitter`:`:Remove`(Ctrl`&`): [@(0.0.255) void]_[* Remove]([_^Ctrl^ Ctrl][@(0.0.255) `&]_ -[*@3 pane])&] -[s2;%% Removes [%-*@3 pane] from splitter.&] -[s3;%% &] -[s4; &] -[s5;:Splitter`:`:Swap`(Ctrl`&`,Ctrl`&`): [@(0.0.255) void]_[* Swap]([_^Ctrl^ Ctrl][@(0.0.255) `& -]_[*@3 pane], [_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 newpane])&] -[s2;%% Replaces [%-*@3 pane] with [%-*@3 newpane] .&] -[s3;%% &] -[s4; &] -[s5;:Splitter`:`:Horz`(Ctrl`&`,Ctrl`&`): [_^Splitter^ Splitter][@(0.0.255) `&]_[* Horz]([_^Ctrl^ C -trl][@(0.0.255) `&]_[*@3 left], [_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 right])&] -[s2;%% Same as Set([%-*@3 left], [%-*@3 right]); return Vert();&] -[s3;%% &] -[s4; &] -[s5;:Splitter`:`:Vert`(Ctrl`&`,Ctrl`&`): [_^Splitter^ Splitter][@(0.0.255) `&]_[* Vert]([_^Ctrl^ C -trl][@(0.0.255) `&]_[*@3 top], [_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 bottom])&] -[s2;%% Same as Set([%-*@3 top] [%-*@3 bottom]); return Horz();&] -[s3;%% &] -[s4; &] -[s5;:Splitter`:`:BarWidth`(int`): [_^Splitter^ Splitter][@(0.0.255) `&]_[* BarWidth]([@(0.0.255) i -nt]_[*@3 w])&] -[s2;%% Sets the width of separator bar to [%-*@3 w].&] -[s3;%% &] -[s4; &] -[s5;:Splitter`:`:IsHorz`(`)const: [@(0.0.255) bool]_[* IsHorz]()_[@(0.0.255) const]&] -[s5;:Splitter`:`:IsVert`(`)const: [@(0.0.255) bool]_[* IsVert]()_[@(0.0.255) const]&] -[s2;%% Tests whether Splitter is horizontal or vertical.&] -[s3;%% &] -[s4; &] -[s5;:Splitter`:`:Clear`(`): [@(0.0.255) void]_[* Clear]()&] -[s2;%% Removes panes from Splitter.&] -[s3; &] -[s4; &] -[s5;:Splitter`:`:Reset`(`): [@(0.0.255) void]_[* Reset]()&] -[s2;%% Resets Splitter to default state.&] -[s3;%% &] +topic "Splitter"; +[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,0#27521748481378242620020725143825:desc] +[0 $$3,0#96390100711032703541132217272105:end] +[H6;0 $$4,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] +[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] +[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] +[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] +[b42;2 $$9,9#13035079074754324216151401829390:normal] +[{_} +[ {{10000@3 [s0;%% [*@(229)4 Splitter]]}}&] +[s3;%% &] +[s1;:Splitter`:`:class: [@(0.0.255)3 class][3 _][*3 Splitter][3 _:_][@(0.0.255)3 public][3 _][*@3;3 C +trl]&] +[s9;%% Splitter is a widget that contains two or more child widgets +arranged either horizontally or vertically. User can then alter +the distribution of area between individual widgets by dragging +separator bars.&] +[s3;%% &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0;%% [* Public Method List]]}}&] +[s3; &] +[s5;:Splitter`:`:WhenSplitFinish: [_^Callback^ Callback]_[* WhenSplitFinish]&] +[s2;%% Invoked after use has finished moving the split.&] +[s3; &] +[s4; &] +[s5;:Splitter`:`:Set`(Ctrl`&`,Ctrl`&`): [@(0.0.255) void]_[* Set]([_^Ctrl^ Ctrl][@(0.0.255) `& +]_[*@3 l], [_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 r])&] +[s2;%% Sets t splitter to contain two child widgets.&] +[s3; &] +[s4; &] +[s5;:Splitter`:`:SetPos`(int`,int`): [_^Splitter^ Splitter][@(0.0.255) `&]_[* SetPos]([@(0.0.255) i +nt]_[*@3 newpos], [@(0.0.255) int]_[*@3 index]_`=_[@3 0])&] +[s2; [%% Sets the position of separator between widgets at ][*@3 index][%% +and ][*@3 index][%% `+ 1. Units of ][*@3 newpos] express ratio, 10000 +is the full width or height.&] +[s3;%% &] +[s4; &] +[s5;:Splitter`:`:GetPos`(int`)const: [@(0.0.255) int]_[* GetPos]([@(0.0.255) int]_[*@3 index]_ +`=_[@3 0])_[@(0.0.255) const]&] +[s2;%% Returns the position of separator between widgets at [%-*@3 index] +and [%-*@3 index] `+ 1.&] +[s3;%% &] +[s4; &] +[s5;:Splitter`:`:GetCount`(`)const: [@(0.0.255) int]_[* GetCount]()_[@(0.0.255) const]&] +[s2;%% Returns the number of child widgets.&] +[s3;%% &] +[s4; &] +[s5;:Splitter`:`:PosToClient`(int`)const: [@(0.0.255) int]_[* PosToClient]([@(0.0.255) int]_ +[*@3 pos])_[@(0.0.255) const]&] +[s2;%% Converts position (where full width or height is 10000) into +view coordinate.&] +[s3;%% &] +[s4; &] +[s5;:Splitter`:`:ClientToPos`(Point`)const: [@(0.0.255) int]_[* ClientToPos]([_^Point^ Poin +t]_[*@3 client])_[@(0.0.255) const]&] +[s2;%% Converts view coordinate (either x or y, based on orientaion) +into position (where full width or height is 10000).&] +[s3;%% &] +[s4; &] +[s5;:Splitter`:`:Zoom`(int`): [@(0.0.255) void]_[* Zoom]([@(0.0.255) int]_[*@3 i])&] +[s2;%% Makes widget [%-*@3 i] to cover whole splitter area (other widgets +are hidden).&] +[s3;%% &] +[s4; &] +[s5;:Splitter`:`:NoZoom`(`): [@(0.0.255) void]_[* NoZoom]()&] +[s2;%% Reverts to normal operation after Zoom.&] +[s3;%% &] +[s4; &] +[s5;:Splitter`:`:GetZoom`(`)const: [@(0.0.255) int]_[* GetZoom]()_[@(0.0.255) const]&] +[s2;%% Returns the index of zoomed widget or negative value if none. + &] +[s3;%% &] +[s4; &] +[s5;:Splitter`:`:SetMin`(int`,int`): [@(0.0.255) void]_[* SetMin]([@(0.0.255) int]_[*@3 i], +[@(0.0.255) int]_[*@3 w])&] +[s2;%% Sets the minimal width of widget [%-*@3 i] to [%-*@3 w] `* total +width / 10000.&] +[s3;%% &] +[s4; &] +[s5;:Splitter`:`:SetMinPixels`(int`,int`): [@(0.0.255) void]_[* SetMinPixels]([@(0.0.255) i +nt]_[*@3 i], [@(0.0.255) int]_[*@3 w])&] +[s2;%% Sets the minimal width of widget [%-*@3 i] to [%-*@3 w] pixels.&] +[s3;%% &] +[s4; &] +[s5;:Splitter`:`:GetSplitWidth`(`)const: [@(0.0.255) int]_[* GetSplitWidth]()_[@(0.0.255) c +onst]&] +[s2;%% Width of spllitter handle in pixels.&] +[s3; &] +[s4; &] +[s5;:Splitter`:`:Vert`(`): [_^Splitter^ Splitter][@(0.0.255) `&]_[* Vert]()&] +[s2;%% Sets splitter to vertical mode `- separator bars in this mode +are horizontal. Returns `*this.&] +[s3;%% &] +[s4; &] +[s5;:Splitter`:`:Horz`(`): [_^Splitter^ Splitter][@(0.0.255) `&]_[* Horz]()&] +[s2;%% Sets splitter to horizontal mode `- separator bars in this +mode are vertical. Returns `*this.&] +[s3;%% &] +[s4; &] +[s5;:Splitter`:`:Add`(Ctrl`&`): [@(0.0.255) virtual] [@(0.0.255) void]_[* Add]([_^Ctrl^ Ctrl][@(0.0.255) `& +]_[*@3 pane])&] +[s5;:Splitter`:`:operator`<`<`(Ctrl`&`): [@(0.0.255) virtual] [_^Splitter^ Splitter][@(0.0.255) `& +]_[* operator<<]([_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 pane])&] +[s2;%% Adds the new [%-*@3 pane].&] +[s3;%% &] +[s4; &] +[s5;:Splitter`:`:Insert`(int`,Ctrl`&`): [@(0.0.255) void]_[* Insert]([@(0.0.255) int]_[*@3 po +s], [_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 pane])&] +[s2;%% Inserts a new [%-*@3 pane] at [%-*@3 pos].&] +[s3;%% &] +[s4; &] +[s5;:Splitter`:`:Remove`(Ctrl`&`): [@(0.0.255) void]_[* Remove]([_^Ctrl^ Ctrl][@(0.0.255) `&]_ +[*@3 pane])&] +[s2;%% Removes [%-*@3 pane] from splitter.&] +[s3;%% &] +[s4; &] +[s5;:Splitter`:`:Swap`(Ctrl`&`,Ctrl`&`): [@(0.0.255) void]_[* Swap]([_^Ctrl^ Ctrl][@(0.0.255) `& +]_[*@3 pane], [_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 newpane])&] +[s2;%% Replaces [%-*@3 pane] with [%-*@3 newpane] .&] +[s3;%% &] +[s4; &] +[s5;:Splitter`:`:Horz`(Ctrl`&`,Ctrl`&`): [_^Splitter^ Splitter][@(0.0.255) `&]_[* Horz]([_^Ctrl^ C +trl][@(0.0.255) `&]_[*@3 left], [_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 right])&] +[s2;%% Same as Set([%-*@3 left], [%-*@3 right]); return Vert();&] +[s3;%% &] +[s4; &] +[s5;:Splitter`:`:Vert`(Ctrl`&`,Ctrl`&`): [_^Splitter^ Splitter][@(0.0.255) `&]_[* Vert]([_^Ctrl^ C +trl][@(0.0.255) `&]_[*@3 top], [_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 bottom])&] +[s2;%% Same as Set([%-*@3 top] [%-*@3 bottom]); return Horz();&] +[s3;%% &] +[s4; &] +[s5;:Splitter`:`:BarWidth`(int`): [_^Splitter^ Splitter][@(0.0.255) `&]_[* BarWidth]([@(0.0.255) i +nt]_[*@3 w])&] +[s2;%% Sets the width of separator bar to [%-*@3 w].&] +[s3;%% &] +[s4; &] +[s5;:Splitter`:`:IsHorz`(`)const: [@(0.0.255) bool]_[* IsHorz]()_[@(0.0.255) const]&] +[s5;:Splitter`:`:IsVert`(`)const: [@(0.0.255) bool]_[* IsVert]()_[@(0.0.255) const]&] +[s2;%% Tests whether Splitter is horizontal or vertical.&] +[s3;%% &] +[s4; &] +[s5;:Splitter`:`:Clear`(`): [@(0.0.255) void]_[* Clear]()&] +[s2;%% Removes panes from Splitter.&] +[s3; &] +[s4; &] +[s5;:Splitter`:`:Reset`(`): [@(0.0.255) void]_[* Reset]()&] +[s2;%% Resets Splitter to default state.&] +[s3;%% &] [s0;%% ]] \ No newline at end of file diff --git a/uppsrc/CtrlLib/src.tpp/Static$en-us.tpp b/uppsrc/CtrlLib/src.tpp/Static_en-us.tpp similarity index 97% rename from uppsrc/CtrlLib/src.tpp/Static$en-us.tpp rename to uppsrc/CtrlLib/src.tpp/Static_en-us.tpp index ee2da41ff..a80ad5749 100644 --- a/uppsrc/CtrlLib/src.tpp/Static$en-us.tpp +++ b/uppsrc/CtrlLib/src.tpp/Static_en-us.tpp @@ -1,226 +1,226 @@ -topic "Static widgets"; -[2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,0#27521748481378242620020725143825:desc] -[0 $$3,0#96390100711032703541132217272105:end] -[H6;0 $$4,0#05600065144404261032431302351956:begin] -[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] -[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] -[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] -[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] -[b42;2 $$9,9#13035079074754324216151401829390:normal] -[{_}%EN-US -[s0; [*+150 Static widgets]&] -[s3; &] -[ {{10000@3 [s0; [*@(229)4 StaticText]]}}&] -[s3; &] -[s1;:StaticText`:`:class:%- [@(0.0.255)3 class][3 _][*3 StaticText][3 _:_][@(0.0.255)3 public][3 _ -][*@3;3 Ctrl][3 , ][@(0.0.255)3 public][3 _][*@3;3 LabelBase]&] -[s9; Static text.&] -[s3;%- &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Public Method List]]}}&] -[s3;%- &] -[s5;:StaticText`:`:SetFont`(Font`):%- [@(0.0.255) virtual] [_^StaticText^ StaticText][@(0.0.255) `& -]_[* SetFont]([_^Font^ Font]_[*@3 font])&] -[s2; Sets the [%-*@3 font] of text.&] -[s3; &] -[s4;%- &] -[s5;:StaticText`:`:SetInk`(Color`):%- [@(0.0.255) virtual] [_^StaticText^ StaticText][@(0.0.255) `& -]_[* SetInk]([_^Color^ Color]_[*@3 color])&] -[s2; Sets the [%-*@3 color] of text.&] -[s3; &] -[s4;%- &] -[s5;:StaticText`:`:SetAlign`(int`):%- [@(0.0.255) virtual] [_^StaticText^ StaticText][@(0.0.255) `& -]_[* SetAlign]([@(0.0.255) int]_[*@3 align])&] -[s2; Sets alignment [%-*@3 align]. Allowed values are ALIGN`_LEFT, -ALIGN`_CENTER, ALIGN`_RIGHT.&] -[s3; &] -[s4;%- &] -[s5;:StaticText`:`:SetImage`(const Image`&`,int`):%- [@(0.0.255) virtual] -[_^StaticText^ StaticText][@(0.0.255) `&]_[* SetImage]([@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `& -]_[*@3 img], [@(0.0.255) int]_[*@3 spc]_`=_[@3 0])&] -[s2; Sets the Image to be displayed before the text. [%-*@3 spc] is -space between the text and Image.&] -[s3; &] -[s4;%- &] -[s5;:StaticText`:`:SetText`(const char`*`):%- [@(0.0.255) virtual] -[_^StaticText^ StaticText][@(0.0.255) `&]_[* SetText]([@(0.0.255) const]_[@(0.0.255) char]_ -`*[*@3 text])&] -[s5;:StaticText`:`:operator`=`(const char`*`):%- [_^StaticText^ StaticText][@(0.0.255) `& -]_[* operator`=]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 s])&] -[s2; Sets [%-*@3 text]. `"`\1`" at the beginning of text activates -QTF.&] -[s3; &] -[s0; &] -[s0; &] -[s0;%- &] -[ {{10000@3 [s0; [*@(229)4 Label]]}}&] -[s3; &] -[s1;:Label`:`:class:%- [@(0.0.255)3 class][3 _][*3 Label][3 _:_][@(0.0.255)3 public][3 _][*@3;3 Stat -icText]&] -[s9; Generally used to label other widgets. Differs from StaticText -by implementing hotkey processing. Hotkeys are assigned automatically -by U`+`+ library, however they can also by preassigned using -`'`&`' character.&] -[s3;%- &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Public Method List]]}}&] -[s3;%- &] -[s5;:Label`:`:SetText`(const char`*`):%- [@(0.0.255) virtual] [_^Label^ Label][@(0.0.255) `& -]_[* SetText]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text])&] -[s5;:Label`:`:operator`=`(const char`*`):%- [@(0.0.255) virtual] [_^Label^ Label][@(0.0.255) `& -]_[* operator`=]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 s])&] -[s2; Sets the text. Ignores `'`&`' used to mark hotkeys.&] -[s3; &] -[s4;%- &] -[s5;:Label`:`:SetLabel`(const char`*`):%- [_^Label^ Label][@(0.0.255) `&]_[* SetLabel]([@(0.0.255) c -onst]_[@(0.0.255) char]_`*[*@3 lbl])&] -[s2; Sets the text, `'`&`' marks hotkeys.&] -[s3; &] -[s0; &] -[s0; &] -[s0;%- &] -[ {{10000@3 [s0; [*@(229)4 LabelBox]]}}&] -[s3; &] -[s1;:LabelBox`:`:class:%- [@(0.0.255)3 class][3 _][*3 LabelBox][3 _:_][@(0.0.255)3 public][3 _][*@3;3 L -abel]&] -[s9; Rectangular static widget used to visually group other widgets.&] -[s3;%- &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Public Method List]]}}&] -[s3;%- &] -[s5;:LabelBox`:`:operator`=`(const char`*`):%- [@(0.0.255) virtual] -[_^LabelBox^ LabelBox][@(0.0.255) `&]_[* operator`=]([@(0.0.255) const]_[@(0.0.255) char]_`* -[*@3 s])&] -[s2; Assigns the text of LabelBox.&] -[s3; &] -[s3; &] -[s4;%- &] -[s5;:LabelBox`:`:SetColor`(Color`):%- [_^LabelBox^ LabelBox][@(0.0.255) `&]_[* SetColor]([_^Color^ C -olor]_[*@3 c])&] -[s2; Sets the color of LabelBox.&] -[s0; &] -[s0; &] -[s0;%- &] -[ {{10000@3 [s0; [*@(229)4 ParentCtrl]]}}&] -[s3; &] -[s1;:ParentCtrl`:`:class:%- [@(0.0.255)3 class][3 _][*3 ParentCtrl][3 _:_][@(0.0.255)3 public][3 _ -][*@3;3 Ctrl]&] -[s9; This class is supposed to be used as logical parent in situation -when more widgets are to be grouped together. The only difference -from Ctrl is that ParentCtrl activates Transparent in constructor.&] -[s3; &] -[s0; &] -[s0; &] -[s0;%- &] -[ {{10000@3 [s0; [*@(229)4 StaticRect]]}}&] -[s3; &] -[s1;:StaticRect`:`:class:%- [@(0.0.255)3 class][3 _][*3 StaticRect][3 _:_][@(0.0.255)3 public][3 _ -][*@3;3 Ctrl]&] -[s9; Widget completely filled with single color.&] -[s3;%- &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Public Method List]]}}&] -[s3;%- &] -[s5;:StaticRect`:`:Color`(class Color`):%- [_^StaticRect^ StaticRect][@(0.0.255) `&]_[* Col -or]([@(0.0.255) class]_[* Color]_[*@3 c])&] -[s2; The color. Default is SColorFace.&] -[s3; &] -[s0; &] -[s0; &] -[s0;%- &] -[ {{10000@3 [s0; [*@(229)4 ImageCtrl]]}}&] -[s3; &] -[s1;:ImageCtrl`:`:class:%- [@(0.0.255)3 class][3 _][*3 ImageCtrl][3 _:_][@(0.0.255)3 public][3 _][*@3;3 C -trl]&] -[s9; Display raster Image. Image is centered in the widget rectangle.&] -[s3;%- &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Public Method List]]}}&] -[s3;%- &] -[s5;:ImageCtrl`:`:SetImage`(const Image`&`):%- [_^ImageCtrl^ ImageCtrl][@(0.0.255) `&]_[* S -etImage]([@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 `_img])&] -[s2; Sets the image.&] -[s3; &] -[s0; &] -[s0; &] -[s0;%- &] -[ {{10000@3 [s0; [*@(229)4 Picture]]}}&] -[s3; &] -[s1;:Picture`:`:class:%- [@(0.0.255)3 class][3 _][*3 Picture][3 _:_][@(0.0.255)3 public][3 _][*@3;3 C -trl]&] -[s9; Displays Drawing.&] -[s3;%- &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Public Method List]]}}&] -[s3;%- &] -[s5;:Picture`:`:Background`(Color`):%- [_^Picture^ Picture][@(0.0.255) `&]_[* Background]([_^Color^ C -olor]_[*@3 color])&] -[s2; Sets background [%-*@3 color]. Default is white.&] -[s3; &] -[s4;%- &] -[s5;:Picture`:`:Get`(`)const:%- [_^Drawing^ Drawing]_[* Get]()_[@(0.0.255) const]&] -[s2; Returns Drawing assigned to Picture.&] -[s3;%- &] -[s4;%- &] -[s5;:Picture`:`:KeepRatio`(bool`):%- [_^Picture^ Picture][@(0.0.255) `&]_[* KeepRatio]([@(0.0.255) b -ool]_[*@3 keep]_`=_[@(0.0.255) true])&] -[s2; If active, Picture keeps the aspect ratio of Drawing. Default -is on.&] -[s3; &] -[s4;%- &] -[s5;:Picture`:`:NoKeepRatio`(`):%- [_^Picture^ Picture][@(0.0.255) `&]_[* NoKeepRatio]()&] -[s2; Do not keep aspect ratio.&] -[s3; &] -[s4;%- &] -[s5;:Picture`:`:Set`(const Drawing`&`):%- [_^Picture^ Picture][@(0.0.255) `&]_[* Set]([@(0.0.255) c -onst]_[_^Drawing^ Drawing][@(0.0.255) `&]_[*@3 `_picture])&] -[s5;:Picture`:`:operator`=`(const Drawing`&`):%- [_^Picture^ Picture][@(0.0.255) `&]_[* ope -rator`=]([@(0.0.255) const]_[_^Drawing^ Drawing][@(0.0.255) `&]_[*@3 `_picture])&] -[s2; Assigns the Drawing.&] -[s3; &] -[s4;%- &] -[s5;:Picture`:`:operator`=`(const Painting`&`):%- [_^Picture^ Picture][@(0.0.255) `&]_[* op -erator`=]([@(0.0.255) const]_[_^Painting^ Painting][@(0.0.255) `&]_[*@3 `_picture])&] -[s2; Assigns [%-*@3 `_picture], converted to Drawing.&] -[s0; &] -[s0; &] -[s0;%- &] -[ {{10000@3 [s0; [*@(229)4 SeparatorCtrl]]}}&] -[s3; &] -[s1;:SeparatorCtrl`:`:class:%- [@(0.0.255)3 class][3 _][*3 SeparatorCtrl][3 _:_][@(0.0.255)3 pub -lic][3 _][*@3;3 Ctrl]&] -[s9; Horizontal or vertical separator line. Direction depends on -aspect ratio.&] -[s3;%- &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Public Method List]]}}&] -[s3;%- &] -[s5;:SeparatorCtrl`:`:Margin`(int`):%- [_^SeparatorCtrl^ SeparatorCtrl][@(0.0.255) `&]_[* M -argin]([@(0.0.255) int]_[*@3 w])&] -[s2; Sets the left`-right (for horizontal separator) or top`-bottom -margin. Default value is 2.&] -[s3; &] -[s4;%- &] -[s5;:SeparatorCtrl`:`:Margin`(int`,int`):%- [_^SeparatorCtrl^ SeparatorCtrl][@(0.0.255) `& -]_[* Margin]([@(0.0.255) int]_[*@3 l], [@(0.0.255) int]_[*@3 r])&] -[s2; Sets the top`-right (for horizontal separator) or top`-bottom -to [%-*@3 l] and [%-*@3 r], in that order. Default value is 2.&] -[s3; &] -[s4;%- &] -[s5;:SeparatorCtrl`:`:SetSize`(int`):%- [_^SeparatorCtrl^ SeparatorCtrl][@(0.0.255) `&]_[* S -etSize]([@(0.0.255) int]_[*@3 w])&] -[s2; Sets the size returned by GetMinSize `- included to affect the -way how widget is treated in BarCtrl. Default value is 7.&] -[s3; &] -[s4;%- &] -[s5;:SeparatorCtrl`:`:SetStyle`(const SeparatorCtrl`:`:Style`&`):%- [_^SeparatorCtrl^ S -eparatorCtrl][@(0.0.255) `&]_[* SetStyle]([@(0.0.255) const]_[_^SeparatorCtrl`:`:Style^ S -tyle][@(0.0.255) `&]_[*@3 s])&] -[s2; Sets the visual style to SeparatorCtrl`::Style [%-*@3 s]. The style -is a simple structure with two fields:&] -[s7; [*@5 l1]-|the first margin&] -[s7;%- [*@5 l2]-|the second margin&] -[s3; &] +topic "Static widgets"; +[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,0#27521748481378242620020725143825:desc] +[0 $$3,0#96390100711032703541132217272105:end] +[H6;0 $$4,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] +[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] +[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] +[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] +[b42;2 $$9,9#13035079074754324216151401829390:normal] +[{_}%EN-US +[s0; [*+150 Static widgets]&] +[s3; &] +[ {{10000@3 [s0; [*@(229)4 StaticText]]}}&] +[s3; &] +[s1;:StaticText`:`:class:%- [@(0.0.255)3 class][3 _][*3 StaticText][3 _:_][@(0.0.255)3 public][3 _ +][*@3;3 Ctrl][3 , ][@(0.0.255)3 public][3 _][*@3;3 LabelBase]&] +[s9; Static text.&] +[s3;%- &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Public Method List]]}}&] +[s3;%- &] +[s5;:StaticText`:`:SetFont`(Font`):%- [@(0.0.255) virtual] [_^StaticText^ StaticText][@(0.0.255) `& +]_[* SetFont]([_^Font^ Font]_[*@3 font])&] +[s2; Sets the [%-*@3 font] of text.&] +[s3; &] +[s4;%- &] +[s5;:StaticText`:`:SetInk`(Color`):%- [@(0.0.255) virtual] [_^StaticText^ StaticText][@(0.0.255) `& +]_[* SetInk]([_^Color^ Color]_[*@3 color])&] +[s2; Sets the [%-*@3 color] of text.&] +[s3; &] +[s4;%- &] +[s5;:StaticText`:`:SetAlign`(int`):%- [@(0.0.255) virtual] [_^StaticText^ StaticText][@(0.0.255) `& +]_[* SetAlign]([@(0.0.255) int]_[*@3 align])&] +[s2; Sets alignment [%-*@3 align]. Allowed values are ALIGN`_LEFT, +ALIGN`_CENTER, ALIGN`_RIGHT.&] +[s3; &] +[s4;%- &] +[s5;:StaticText`:`:SetImage`(const Image`&`,int`):%- [@(0.0.255) virtual] +[_^StaticText^ StaticText][@(0.0.255) `&]_[* SetImage]([@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `& +]_[*@3 img], [@(0.0.255) int]_[*@3 spc]_`=_[@3 0])&] +[s2; Sets the Image to be displayed before the text. [%-*@3 spc] is +space between the text and Image.&] +[s3; &] +[s4;%- &] +[s5;:StaticText`:`:SetText`(const char`*`):%- [@(0.0.255) virtual] +[_^StaticText^ StaticText][@(0.0.255) `&]_[* SetText]([@(0.0.255) const]_[@(0.0.255) char]_ +`*[*@3 text])&] +[s5;:StaticText`:`:operator`=`(const char`*`):%- [_^StaticText^ StaticText][@(0.0.255) `& +]_[* operator`=]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 s])&] +[s2; Sets [%-*@3 text]. `"`\1`" at the beginning of text activates +QTF.&] +[s3; &] +[s0; &] +[s0; &] +[s0;%- &] +[ {{10000@3 [s0; [*@(229)4 Label]]}}&] +[s3; &] +[s1;:Label`:`:class:%- [@(0.0.255)3 class][3 _][*3 Label][3 _:_][@(0.0.255)3 public][3 _][*@3;3 Stat +icText]&] +[s9; Generally used to label other widgets. Differs from StaticText +by implementing hotkey processing. Hotkeys are assigned automatically +by U`+`+ library, however they can also by preassigned using +`'`&`' character.&] +[s3;%- &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Public Method List]]}}&] +[s3;%- &] +[s5;:Label`:`:SetText`(const char`*`):%- [@(0.0.255) virtual] [_^Label^ Label][@(0.0.255) `& +]_[* SetText]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text])&] +[s5;:Label`:`:operator`=`(const char`*`):%- [@(0.0.255) virtual] [_^Label^ Label][@(0.0.255) `& +]_[* operator`=]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 s])&] +[s2; Sets the text. Ignores `'`&`' used to mark hotkeys.&] +[s3; &] +[s4;%- &] +[s5;:Label`:`:SetLabel`(const char`*`):%- [_^Label^ Label][@(0.0.255) `&]_[* SetLabel]([@(0.0.255) c +onst]_[@(0.0.255) char]_`*[*@3 lbl])&] +[s2; Sets the text, `'`&`' marks hotkeys.&] +[s3; &] +[s0; &] +[s0; &] +[s0;%- &] +[ {{10000@3 [s0; [*@(229)4 LabelBox]]}}&] +[s3; &] +[s1;:LabelBox`:`:class:%- [@(0.0.255)3 class][3 _][*3 LabelBox][3 _:_][@(0.0.255)3 public][3 _][*@3;3 L +abel]&] +[s9; Rectangular static widget used to visually group other widgets.&] +[s3;%- &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Public Method List]]}}&] +[s3;%- &] +[s5;:LabelBox`:`:operator`=`(const char`*`):%- [@(0.0.255) virtual] +[_^LabelBox^ LabelBox][@(0.0.255) `&]_[* operator`=]([@(0.0.255) const]_[@(0.0.255) char]_`* +[*@3 s])&] +[s2; Assigns the text of LabelBox.&] +[s3; &] +[s3; &] +[s4;%- &] +[s5;:LabelBox`:`:SetColor`(Color`):%- [_^LabelBox^ LabelBox][@(0.0.255) `&]_[* SetColor]([_^Color^ C +olor]_[*@3 c])&] +[s2; Sets the color of LabelBox.&] +[s0; &] +[s0; &] +[s0;%- &] +[ {{10000@3 [s0; [*@(229)4 ParentCtrl]]}}&] +[s3; &] +[s1;:ParentCtrl`:`:class:%- [@(0.0.255)3 class][3 _][*3 ParentCtrl][3 _:_][@(0.0.255)3 public][3 _ +][*@3;3 Ctrl]&] +[s9; This class is supposed to be used as logical parent in situation +when more widgets are to be grouped together. The only difference +from Ctrl is that ParentCtrl activates Transparent in constructor.&] +[s3; &] +[s0; &] +[s0; &] +[s0;%- &] +[ {{10000@3 [s0; [*@(229)4 StaticRect]]}}&] +[s3; &] +[s1;:StaticRect`:`:class:%- [@(0.0.255)3 class][3 _][*3 StaticRect][3 _:_][@(0.0.255)3 public][3 _ +][*@3;3 Ctrl]&] +[s9; Widget completely filled with single color.&] +[s3;%- &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Public Method List]]}}&] +[s3;%- &] +[s5;:StaticRect`:`:Color`(class Color`):%- [_^StaticRect^ StaticRect][@(0.0.255) `&]_[* Col +or]([@(0.0.255) class]_[* Color]_[*@3 c])&] +[s2; The color. Default is SColorFace.&] +[s3; &] +[s0; &] +[s0; &] +[s0;%- &] +[ {{10000@3 [s0; [*@(229)4 ImageCtrl]]}}&] +[s3; &] +[s1;:ImageCtrl`:`:class:%- [@(0.0.255)3 class][3 _][*3 ImageCtrl][3 _:_][@(0.0.255)3 public][3 _][*@3;3 C +trl]&] +[s9; Display raster Image. Image is centered in the widget rectangle.&] +[s3;%- &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Public Method List]]}}&] +[s3;%- &] +[s5;:ImageCtrl`:`:SetImage`(const Image`&`):%- [_^ImageCtrl^ ImageCtrl][@(0.0.255) `&]_[* S +etImage]([@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 `_img])&] +[s2; Sets the image.&] +[s3; &] +[s0; &] +[s0; &] +[s0;%- &] +[ {{10000@3 [s0; [*@(229)4 Picture]]}}&] +[s3; &] +[s1;:Picture`:`:class:%- [@(0.0.255)3 class][3 _][*3 Picture][3 _:_][@(0.0.255)3 public][3 _][*@3;3 C +trl]&] +[s9; Displays Drawing.&] +[s3;%- &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Public Method List]]}}&] +[s3;%- &] +[s5;:Picture`:`:Background`(Color`):%- [_^Picture^ Picture][@(0.0.255) `&]_[* Background]([_^Color^ C +olor]_[*@3 color])&] +[s2; Sets background [%-*@3 color]. Default is white.&] +[s3; &] +[s4;%- &] +[s5;:Picture`:`:Get`(`)const:%- [_^Drawing^ Drawing]_[* Get]()_[@(0.0.255) const]&] +[s2; Returns Drawing assigned to Picture.&] +[s3;%- &] +[s4;%- &] +[s5;:Picture`:`:KeepRatio`(bool`):%- [_^Picture^ Picture][@(0.0.255) `&]_[* KeepRatio]([@(0.0.255) b +ool]_[*@3 keep]_`=_[@(0.0.255) true])&] +[s2; If active, Picture keeps the aspect ratio of Drawing. Default +is on.&] +[s3; &] +[s4;%- &] +[s5;:Picture`:`:NoKeepRatio`(`):%- [_^Picture^ Picture][@(0.0.255) `&]_[* NoKeepRatio]()&] +[s2; Do not keep aspect ratio.&] +[s3; &] +[s4;%- &] +[s5;:Picture`:`:Set`(const Drawing`&`):%- [_^Picture^ Picture][@(0.0.255) `&]_[* Set]([@(0.0.255) c +onst]_[_^Drawing^ Drawing][@(0.0.255) `&]_[*@3 `_picture])&] +[s5;:Picture`:`:operator`=`(const Drawing`&`):%- [_^Picture^ Picture][@(0.0.255) `&]_[* ope +rator`=]([@(0.0.255) const]_[_^Drawing^ Drawing][@(0.0.255) `&]_[*@3 `_picture])&] +[s2; Assigns the Drawing.&] +[s3; &] +[s4;%- &] +[s5;:Picture`:`:operator`=`(const Painting`&`):%- [_^Picture^ Picture][@(0.0.255) `&]_[* op +erator`=]([@(0.0.255) const]_[_^Painting^ Painting][@(0.0.255) `&]_[*@3 `_picture])&] +[s2; Assigns [%-*@3 `_picture], converted to Drawing.&] +[s0; &] +[s0; &] +[s0;%- &] +[ {{10000@3 [s0; [*@(229)4 SeparatorCtrl]]}}&] +[s3; &] +[s1;:SeparatorCtrl`:`:class:%- [@(0.0.255)3 class][3 _][*3 SeparatorCtrl][3 _:_][@(0.0.255)3 pub +lic][3 _][*@3;3 Ctrl]&] +[s9; Horizontal or vertical separator line. Direction depends on +aspect ratio.&] +[s3;%- &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Public Method List]]}}&] +[s3;%- &] +[s5;:SeparatorCtrl`:`:Margin`(int`):%- [_^SeparatorCtrl^ SeparatorCtrl][@(0.0.255) `&]_[* M +argin]([@(0.0.255) int]_[*@3 w])&] +[s2; Sets the left`-right (for horizontal separator) or top`-bottom +margin. Default value is 2.&] +[s3; &] +[s4;%- &] +[s5;:SeparatorCtrl`:`:Margin`(int`,int`):%- [_^SeparatorCtrl^ SeparatorCtrl][@(0.0.255) `& +]_[* Margin]([@(0.0.255) int]_[*@3 l], [@(0.0.255) int]_[*@3 r])&] +[s2; Sets the top`-right (for horizontal separator) or top`-bottom +to [%-*@3 l] and [%-*@3 r], in that order. Default value is 2.&] +[s3; &] +[s4;%- &] +[s5;:SeparatorCtrl`:`:SetSize`(int`):%- [_^SeparatorCtrl^ SeparatorCtrl][@(0.0.255) `&]_[* S +etSize]([@(0.0.255) int]_[*@3 w])&] +[s2; Sets the size returned by GetMinSize `- included to affect the +way how widget is treated in BarCtrl. Default value is 7.&] +[s3; &] +[s4;%- &] +[s5;:SeparatorCtrl`:`:SetStyle`(const SeparatorCtrl`:`:Style`&`):%- [_^SeparatorCtrl^ S +eparatorCtrl][@(0.0.255) `&]_[* SetStyle]([@(0.0.255) const]_[_^SeparatorCtrl`:`:Style^ S +tyle][@(0.0.255) `&]_[*@3 s])&] +[s2; Sets the visual style to SeparatorCtrl`::Style [%-*@3 s]. The style +is a simple structure with two fields:&] +[s7; [*@5 l1]-|the first margin&] +[s7;%- [*@5 l2]-|the second margin&] +[s3; &] [s0; ]] \ No newline at end of file diff --git a/uppsrc/CtrlLib/src.tpp/StatusBar$en-us.tpp b/uppsrc/CtrlLib/src.tpp/StatusBar_en-us.tpp similarity index 97% rename from uppsrc/CtrlLib/src.tpp/StatusBar$en-us.tpp rename to uppsrc/CtrlLib/src.tpp/StatusBar_en-us.tpp index d8dcad622..64f4ebdfc 100644 --- a/uppsrc/CtrlLib/src.tpp/StatusBar$en-us.tpp +++ b/uppsrc/CtrlLib/src.tpp/StatusBar_en-us.tpp @@ -1,288 +1,288 @@ -topic "StatusBar and related widgets"; -[2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,0#27521748481378242620020725143825:desc] -[0 $$3,0#96390100711032703541132217272105:end] -[H6;0 $$4,0#05600065144404261032431302351956:begin] -[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] -[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] -[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] -[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] -[b42;2 $$9,9#13035079074754324216151401829390:normal] -[{_}%EN-US -[s0; [*+150 StatusBar related classes and routines]&] -[s3;%- &] -[ {{10000@3 [s0; [*@(229)4 InfoCtrl]]}}&] -[s3; &] -[s1;:InfoCtrl`:`:class:%- [@(0.0.255)3 class][3 _][*3 InfoCtrl][3 _:_][@(0.0.255)3 public][3 _][*@3;3 F -rameLR][@(0.0.255)3 <][_^Ctrl^3 Ctrl][@(0.0.255)3 >][3 _]&] -[s0; &] -[s2; -@@image:643&143 -(A2cAFwAAAOn/AAAAAHic7dXNCYAwDAVgJ3YPR3ADD+I8riB0hwoeBJO2pjZtI7zwDhJKfz6pumN3CNIq6zIj6XjvOVr3F2c8QAMa0MwGaDXQhqtIhw8gzcLwOSUdI2h8S3znicGfxcizpGMELbaZ2mixteSdvmjBK9AGLXj1LIi9oklwYrZadNbEVNCqHuGe046YIpriEdKf/e5iaTSX8+vX3RVZZXhWsGMHDQEa0ID2r3A0jxIUuEpqnDYkNye2qVgt) -&] -[s0; &] -[s9; InfoCtrl is a simple static Ctrl that represents information -field. It is supposed to be used as Frame of StatusBar `- multiple -InfoCtrls can be added as Frames to the StatusBar, filling it -from the left or right.&] -[s9; InfoCtrl is capable of displaying several sections with defined -width, defined either as Value or as PaintRect. It is also able -to display temporary content for the defined amount of time.&] -[s0; &] -[s0;%- [%%/ Derived from][%% ]FrameLR&] -[s3; &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] -[s3;%- &] -[s5;:InfoCtrl`:`:InfoCtrl`(`):%- [* InfoCtrl]()&] -[s2; Constructor. Sets ThinInsetFrame as Frame 0 and `"Ready`" as -the default text.&] -[s3; &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0; [* Public Method List]]}}&] -[s3;%- &] -[s5;:InfoCtrl`:`:Set`(int`,const PaintRect`&`,int`):%- [@(0.0.255) void]_[* Set]([@(0.0.255) i -nt]_[*@3 tab], [@(0.0.255) const]_[_^PaintRect^ PaintRect][@(0.0.255) `&]_[*@3 info], -[@(0.0.255) int]_[*@3 width])&] -[s5;:InfoCtrl`:`:Set`(int`,const Value`&`,int`):%- [@(0.0.255) void]_[* Set]([@(0.0.255) in -t]_[*@3 tab], [@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_[*@3 info], -[@(0.0.255) int]_[*@3 width])&] -[s2; Sets (creates if needed) the section of the InfoCtrl.&] -[s7; [%-*C@3 tab]-|Index of section.&] -[s7; [%-*C@3 info]-|Content of section. Value content is converted to -the text using AsString, unless it is Image, which is displayed -as is.&] -[s7; [%-*C@3 width]-|Width of section in pixels. Negative value indicates -that section should be placed given number of pixels from the -right border of the InfoCtrl.&] -[s3; &] -[s4;%- &] -[s5;:InfoCtrl`:`:Set`(const PaintRect`&`):%- [@(0.0.255) void]_[* Set]([@(0.0.255) const]_[_^PaintRect^ P -aintRect][@(0.0.255) `&]_[*@3 info])&] -[s5;:InfoCtrl`:`:Set`(const Value`&`):%- [@(0.0.255) void]_[* Set]([@(0.0.255) const]_[_^Value^ V -alue][@(0.0.255) `&]_[*@3 info])&] -[s2; Sets the single section that covers the whole InfoCtrl.&] -[s7; [%-*C@3 info]-|Content of section.&] -[s3; &] -[s4;%- &] -[s5;:InfoCtrl`:`:Temporary`(const PaintRect`&`,int`):%- [@(0.0.255) void]_[* Temporary]([@(0.0.255) c -onst]_[_^PaintRect^ PaintRect][@(0.0.255) `&]_[*@3 info], [@(0.0.255) int]_[*@3 timeoout]_`= -_[@3 2000])&] -[s5;:InfoCtrl`:`:Temporary`(const Value`&`,int`):%- [@(0.0.255) void]_[* Temporary]([@(0.0.255) c -onst]_[_^Value^ Value][@(0.0.255) `&]_[*@3 info], [@(0.0.255) int]_[*@3 timeout]_`=_[@3 2000]) -&] -[s2; Sets the temporary content, displayed instead of defined sections.&] -[s7; [%-*C@3 info]-|Content.&] -[s7; [%-*C@3 timeoout]-|Timespan of temporary content.&] -[s3; &] -[s4;%- &] -[s5;:InfoCtrl`:`:EndTemporary`(`):%- [@(0.0.255) void]_[* EndTemporary]()&] -[s2; Immediately stops displaying temporary content.&] -[s3; &] -[s4;%- &] -[s5;:InfoCtrl`:`:GetTabCount`(`)const:%- [@(0.0.255) int]_[* GetTabCount]()_[@(0.0.255) con -st]&] -[s7; [*/ Return value]-|The number of sections.&] -[s3; &] -[s4;%- &] -[s5;:InfoCtrl`:`:operator`=`(const String`&`):%- [@(0.0.255) void]_[* operator`=]([@(0.0.255) c -onst]_[_^String^ String][@(0.0.255) `&]_[*@3 s])&] -[s2; Same as Set(s).&] -[s7; [%-*C@3 s]-|Content of single section covering the whole InfoCtrl.&] -[s3; &] -[s4;%- &] -[s5;:InfoCtrl`:`:SetDefault`(const String`&`):%- [_^InfoCtrl^ InfoCtrl][@(0.0.255) `&]_[* S -etDefault]([@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 d])&] -[s2; Sets the default text `- this value is used instead of Null -values passed to the Set method.&] -[s7; [%-*C@3 d]-|Default text.&] -[s7; [*/ Return value]-|`*this for chaining.&] -[s3; &] -[s4;%- &] -[s5;:InfoCtrl`:`:Left`(int`):%- [_^InfoCtrl^ InfoCtrl][@(0.0.255) `&]_[* Left]([@(0.0.255) in -t]_[*@3 w])&] -[s2; Sets up InfoCtrl to be placed [* left] when added as Frame with -defined width.&] -[s7; [%-*C@3 w]-|Width of InfoCtrl.&] -[s7; [*/ Return value]-|`*this for chaining.&] -[s3; &] -[s4;%- &] -[s5;:InfoCtrl`:`:Right`(int`):%- [_^InfoCtrl^ InfoCtrl][@(0.0.255) `&]_[* Right]([@(0.0.255) i -nt]_[*@3 w])&] -[s2; Sets up InfoCtrl to be placed [* right] when added as Frame with -defined width.&] -[s7; [%-*C@3 w]-|Width of InfoCtrl.&] -[s7; [*/ Return value]-|`*this for chaining.&] -[s3; &] -[s0; &] -[s0; &] -[s0;%- &] -[ {{10000@3 [s0; [*@(229)4 StatusBar]]}}&] -[s3; &] -[s1;:StatusBar`:`:class:%- [@(0.0.255)3 class][3 _][*3 StatusBar][3 _:_][@(0.0.255)3 public][3 _][*@3;3 I -nfoCtrl]&] -[s0; &] -[s2; -@@image:1268&131 -(A8sAFQAAAOv/AAAAAHic7Zk9jsMgEEZ9/xtsGaXZYstEylG22CbpVuIOThHJIgzzEzAMWB96RWRbBr48YJSE/98AQBvWdXUfw1D8fH8BmY+cgWBUMPcxDA4EqwGCqUCwGiCYCgSrAYKpuAu2LIt7CMVAMJUawZaoFQ/gMIJlo0iu1MdlyZD20qhfC5WCcXMsDmcuNsGyUdDvvcWsqUvJ50b9GmkhmGUFJbufbwjFZI9IOiM5rnq4t8lj6INFsNvlfLuc6MPqsuUmONoqK4YKFueQLKvOgsmHdTesgl3zgslbE5e2YOZEdgUimNdRZd+pxtzBtse4Hcyya6lRzy6YWnF1E0x4+bCCZR82HpH2qOeyKzBFvj2Hvfh0gfeEE2yru4KtBgvvjgnnJnfFZfqVxIIJc6Q57DgGIVhhJN2QBLueXne5GmxfprMr4IdWA4Iz8a1sDbYvEOyQuP9VNDUQTCV2Jlt3Bb4GAxBMJRXsve7qWYPNyIpmaMYwH/c/75GiHb89Ac30xxw=) -&] -[s0; &] -[s9; StatusBar is a Frame Ctrl intended to be used as informational -bar at the bottom of the main application window.&] -[s9; StatusBar is inherited from InfoCtrl and retains all the functionality -of the base class. It adds `"size`-grip`" for resizing of the -window (if supported by the platform) and changes its Frame behaviour -to be placed at the bottom of its parent window. To add more -fields to the StatusBar, use InfoCtrl widgets.&] -[s0; &] -[s0;%- [%%/ Derived from][%% ][^topic`:`/`/CtrlLib`/src`/StatusBar`$en`-us`#InfoCtrl`:`:class^ I -nfoCtrl]&] -[s3; &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] -[s3;%- &] -[s5;:StatusBar`:`:StatusBar`(`):%- [* StatusBar]()&] -[s2; Constructor. Sets the height based on the current system default -font. If there is no global WhenHelpDefault() callback defined -for the Bar, defines it so that Bar will use StatusBar to display -Menu and ToolBar informational texts.&] -[s3; &] -[s4;%- &] -[s5;:StatusBar`:`:`~StatusBar`(`):%- [@(0.0.255) `~][* StatusBar]()&] -[s2; Default destructor.&] -[s3;%- &] -[s0; &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Public Method List]]}}&] -[s3;%- &] -[s5;:StatusBar`:`:operator`=`(const String`&`):%- [@(0.0.255) virtual] -[@(0.0.255) void]_[* operator`=]([@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 s]) -&] -[s2; Same as Set(s).&] -[s7; [%-*C@3 s]-|Content of StatusBar.&] -[s3; &] -[s4;%- &] -[s5;:StatusBar`:`:operator Callback1``(`):%- [* operator_Callback1]()&] -[s7; [*/ Return value]-|A callback that, when invoked, calls Set for -the StatusBar.&] -[s3; &] -[s4;%- &] -[s5;:StatusBar`:`:Height`(int`):%- [_^StatusBar^ StatusBar][@(0.0.255) `&]_[* Height]([@(0.0.255) i -nt]_[*@3 `_cy])&] -[s2; Sets the height of the StatusBar.&] -[s7; [%-*C@3 `_cy]-|The height.&] -[s7; [*/ Return value]-|`*this for chaining.&] -[s3; &] -[s4;%- &] -[s5;:StatusBar`:`:NoSizeGrip`(`):%- [_^StatusBar^ StatusBar][@(0.0.255) `&]_[* NoSizeGrip]( -)&] -[s2; Do not display `"size grip`".&] -[s7; [*/ Return value]-|`*this for chaining.&] -[s3; &] -[s0; &] -[s0; &] -[s0;%- &] -[ {{10000@3 [s0; [*@(229)4 ProgressInfo]]}}&] -[s3; &] -[s1;:ProgressInfo`:`:class:%- [@(0.0.255)3 class][3 _][*3 ProgressInfo]&] -[s9; This class provides simple tool for displaying progress information -in the StatusBar (or generally, in InfoCtrl). It connects to -InfoCtrl object and replaces its content with progress indicator.&] -[s3; &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] -[s3;%- &] -[s5;:ProgressInfo`:`:ProgressInfo`(`):%- [* ProgressInfo]()&] -[s2; Constructor.&] -[s3; &] -[s4;%- &] -[s5;:ProgressInfo`:`:ProgressInfo`(InfoCtrl`&`):%- [* ProgressInfo]([_^InfoCtrl^ InfoCtrl -][@(0.0.255) `&]_[*@3 f])&] -[s2; Constructor.&] -[s7; [%-*C@3 f]-|Target InfoCtrl.&] -[s3; &] -[s4;%- &] -[s5;:ProgressInfo`:`:`~ProgressInfo`(`):%- [@(0.0.255) `~][* ProgressInfo]()&] -[s2; Destructor. Sets the Null to target InfoCtrl.&] -[s3; &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Public Method List]]}}&] -[s3;%- &] -[s5;:ProgressInfo`:`:Text`(const String`&`):%- [_^ProgressInfo^ ProgressInfo][@(0.0.255) `& -]_[* Text]([@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 s])&] -[s2; Sets the text to be displayed as the label of progress indicator.&] -[s7; [%-*C@3 s]-|Text.&] -[s7; [*/ Return value]-|`*this for chaining.&] -[s3; &] -[s4;%- &] -[s5;:ProgressInfo`:`:TextWidth`(int`):%- [_^ProgressInfo^ ProgressInfo][@(0.0.255) `&]_[* T -extWidth]([@(0.0.255) int]_[*@3 cx])&] -[s2; Sets the width of text. Zero means that the width has to be -determined based on text.&] -[s7; [%-*C@3 cx]-|Width in pixels.&] -[s7; [*/ Return value]-|`*this for chaining.&] -[s3; &] -[s4;%- &] -[s5;:ProgressInfo`:`:Width`(int`):%- [_^ProgressInfo^ ProgressInfo][@(0.0.255) `&]_[* Width -]([@(0.0.255) int]_[*@3 `_cx])&] -[s2; Sets the width of progress indicator. Default is 200.&] -[s7; [%-*C@3 `_cx]-|Width in pixels.&] -[s7; [*/ Return value]-|`*this for chaining.&] -[s3; &] -[s4;%- &] -[s5;:ProgressInfo`:`:Placement`(int`):%- [_^ProgressInfo^ ProgressInfo][@(0.0.255) `&]_[* P -lacement]([@(0.0.255) int]_[*@3 `_tabi])&] -[s2; Can be used to place progress indicator to specific section -of InfoCtrl.&] -[s7; [%-*C@3 `_tabi]-|Section index. Progress label is placed at [@3 `_tabi], -progress indicator at [@3 `_tabi] `+ 1.&] -[s7; [*/ Return value]-|`*this for chaining.&] -[s3; &] -[s4;%- &] -[s5;:ProgressInfo`:`:Info`(InfoCtrl`&`):%- [_^ProgressInfo^ ProgressInfo][@(0.0.255) `&]_ -[* Info]([_^InfoCtrl^ InfoCtrl][@(0.0.255) `&]_[*@3 `_info])&] -[s2; Specifies the target InfoCtrl.&] -[s7; [%-*C@3 `_info]-|InfoCtrl. Must exists during the lifetime of ProgressInfo.&] -[s7; [*/ Return value]-|`*this for chaining.&] -[s3; &] -[s4;%- &] -[s5;:ProgressInfo`:`:Total`(int`):%- [_^ProgressInfo^ ProgressInfo][@(0.0.255) `&]_[* Total -]([@(0.0.255) int]_[*@3 `_total])&] -[s2; Sets the total number of progress steps.&] -[s7; [%-*C@3 `_total]-|Total number.&] -[s7; [*/ Return value]-|`*this for chaining.&] -[s3; &] -[s4;%- &] -[s5;:ProgressInfo`:`:Set`(int`,int`):%- [_^ProgressInfo^ ProgressInfo][@(0.0.255) `&]_[* Se -t]([@(0.0.255) int]_[*@3 `_pos], [@(0.0.255) int]_[*@3 `_total])&] -[s2; Sets the new progress information.&] -[s7; [%-*C@3 `_pos]-|Current progress.&] -[s7; [%-*C@3 `_total]-|Total number of progress steps.&] -[s7; [*/ Return value]-|`*this for chaining.&] -[s3; &] -[s4;%- &] -[s5;:ProgressInfo`:`:Set`(int`):%- [@(0.0.255) void]_[* Set]([@(0.0.255) int]_[*@3 `_pos])&] -[s2; Sets the new progress information.&] -[s7; [%-*C@3 `_pos]-|Current progress. Total number of steps is set -by Total method.&] -[s3; &] -[s4;%- &] -[s5;:ProgressInfo`:`:Get`(`)const:%- [@(0.0.255) int]_[* Get]()_[@(0.0.255) const]&] -[s7; [*/ Return value]-|Current progress.&] -[s3; &] -[s4;%- &] -[s5;:ProgressInfo`:`:operator`=`(int`):%- [@(0.0.255) void]_[* operator`=]([@(0.0.255) int]_ -[*@3 p])&] -[s2; Same as Set(p).&] -[s3; &] -[s4;%- &] -[s5;:ProgressInfo`:`:operator`+`+`(`):%- [@(0.0.255) void]_[* operator`+`+]()&] -[s2; Same as Set(Get() `+ 1)&] -[s3; &] -[s4;%- &] -[s5;:ProgressInfo`:`:operator int`(`):%- [* operator_int]()&] -[s7; [*/ Return value]-|Get().&] -[s3; &] +topic "StatusBar and related widgets"; +[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,0#27521748481378242620020725143825:desc] +[0 $$3,0#96390100711032703541132217272105:end] +[H6;0 $$4,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] +[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] +[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] +[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] +[b42;2 $$9,9#13035079074754324216151401829390:normal] +[{_}%EN-US +[s0; [*+150 StatusBar related classes and routines]&] +[s3;%- &] +[ {{10000@3 [s0; [*@(229)4 InfoCtrl]]}}&] +[s3; &] +[s1;:InfoCtrl`:`:class:%- [@(0.0.255)3 class][3 _][*3 InfoCtrl][3 _:_][@(0.0.255)3 public][3 _][*@3;3 F +rameLR][@(0.0.255)3 <][_^Ctrl^3 Ctrl][@(0.0.255)3 >][3 _]&] +[s0; &] +[s2; +@@image:643&143 +(A2cAFwAAAOn/AAAAAHic7dXNCYAwDAVgJ3YPR3ADD+I8riB0hwoeBJO2pjZtI7zwDhJKfz6pumN3CNIq6zIj6XjvOVr3F2c8QAMa0MwGaDXQhqtIhw8gzcLwOSUdI2h8S3znicGfxcizpGMELbaZ2mixteSdvmjBK9AGLXj1LIi9oklwYrZadNbEVNCqHuGe046YIpriEdKf/e5iaTSX8+vX3RVZZXhWsGMHDQEa0ID2r3A0jxIUuEpqnDYkNye2qVgt) +&] +[s0; &] +[s9; InfoCtrl is a simple static Ctrl that represents information +field. It is supposed to be used as Frame of StatusBar `- multiple +InfoCtrls can be added as Frames to the StatusBar, filling it +from the left or right.&] +[s9; InfoCtrl is capable of displaying several sections with defined +width, defined either as Value or as PaintRect. It is also able +to display temporary content for the defined amount of time.&] +[s0; &] +[s0;%- [%%/ Derived from][%% ]FrameLR&] +[s3; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] +[s3;%- &] +[s5;:InfoCtrl`:`:InfoCtrl`(`):%- [* InfoCtrl]()&] +[s2; Constructor. Sets ThinInsetFrame as Frame 0 and `"Ready`" as +the default text.&] +[s3; &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0; [* Public Method List]]}}&] +[s3;%- &] +[s5;:InfoCtrl`:`:Set`(int`,const PaintRect`&`,int`):%- [@(0.0.255) void]_[* Set]([@(0.0.255) i +nt]_[*@3 tab], [@(0.0.255) const]_[_^PaintRect^ PaintRect][@(0.0.255) `&]_[*@3 info], +[@(0.0.255) int]_[*@3 width])&] +[s5;:InfoCtrl`:`:Set`(int`,const Value`&`,int`):%- [@(0.0.255) void]_[* Set]([@(0.0.255) in +t]_[*@3 tab], [@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_[*@3 info], +[@(0.0.255) int]_[*@3 width])&] +[s2; Sets (creates if needed) the section of the InfoCtrl.&] +[s7; [%-*C@3 tab]-|Index of section.&] +[s7; [%-*C@3 info]-|Content of section. Value content is converted to +the text using AsString, unless it is Image, which is displayed +as is.&] +[s7; [%-*C@3 width]-|Width of section in pixels. Negative value indicates +that section should be placed given number of pixels from the +right border of the InfoCtrl.&] +[s3; &] +[s4;%- &] +[s5;:InfoCtrl`:`:Set`(const PaintRect`&`):%- [@(0.0.255) void]_[* Set]([@(0.0.255) const]_[_^PaintRect^ P +aintRect][@(0.0.255) `&]_[*@3 info])&] +[s5;:InfoCtrl`:`:Set`(const Value`&`):%- [@(0.0.255) void]_[* Set]([@(0.0.255) const]_[_^Value^ V +alue][@(0.0.255) `&]_[*@3 info])&] +[s2; Sets the single section that covers the whole InfoCtrl.&] +[s7; [%-*C@3 info]-|Content of section.&] +[s3; &] +[s4;%- &] +[s5;:InfoCtrl`:`:Temporary`(const PaintRect`&`,int`):%- [@(0.0.255) void]_[* Temporary]([@(0.0.255) c +onst]_[_^PaintRect^ PaintRect][@(0.0.255) `&]_[*@3 info], [@(0.0.255) int]_[*@3 timeoout]_`= +_[@3 2000])&] +[s5;:InfoCtrl`:`:Temporary`(const Value`&`,int`):%- [@(0.0.255) void]_[* Temporary]([@(0.0.255) c +onst]_[_^Value^ Value][@(0.0.255) `&]_[*@3 info], [@(0.0.255) int]_[*@3 timeout]_`=_[@3 2000]) +&] +[s2; Sets the temporary content, displayed instead of defined sections.&] +[s7; [%-*C@3 info]-|Content.&] +[s7; [%-*C@3 timeoout]-|Timespan of temporary content.&] +[s3; &] +[s4;%- &] +[s5;:InfoCtrl`:`:EndTemporary`(`):%- [@(0.0.255) void]_[* EndTemporary]()&] +[s2; Immediately stops displaying temporary content.&] +[s3; &] +[s4;%- &] +[s5;:InfoCtrl`:`:GetTabCount`(`)const:%- [@(0.0.255) int]_[* GetTabCount]()_[@(0.0.255) con +st]&] +[s7; [*/ Return value]-|The number of sections.&] +[s3; &] +[s4;%- &] +[s5;:InfoCtrl`:`:operator`=`(const String`&`):%- [@(0.0.255) void]_[* operator`=]([@(0.0.255) c +onst]_[_^String^ String][@(0.0.255) `&]_[*@3 s])&] +[s2; Same as Set(s).&] +[s7; [%-*C@3 s]-|Content of single section covering the whole InfoCtrl.&] +[s3; &] +[s4;%- &] +[s5;:InfoCtrl`:`:SetDefault`(const String`&`):%- [_^InfoCtrl^ InfoCtrl][@(0.0.255) `&]_[* S +etDefault]([@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 d])&] +[s2; Sets the default text `- this value is used instead of Null +values passed to the Set method.&] +[s7; [%-*C@3 d]-|Default text.&] +[s7; [*/ Return value]-|`*this for chaining.&] +[s3; &] +[s4;%- &] +[s5;:InfoCtrl`:`:Left`(int`):%- [_^InfoCtrl^ InfoCtrl][@(0.0.255) `&]_[* Left]([@(0.0.255) in +t]_[*@3 w])&] +[s2; Sets up InfoCtrl to be placed [* left] when added as Frame with +defined width.&] +[s7; [%-*C@3 w]-|Width of InfoCtrl.&] +[s7; [*/ Return value]-|`*this for chaining.&] +[s3; &] +[s4;%- &] +[s5;:InfoCtrl`:`:Right`(int`):%- [_^InfoCtrl^ InfoCtrl][@(0.0.255) `&]_[* Right]([@(0.0.255) i +nt]_[*@3 w])&] +[s2; Sets up InfoCtrl to be placed [* right] when added as Frame with +defined width.&] +[s7; [%-*C@3 w]-|Width of InfoCtrl.&] +[s7; [*/ Return value]-|`*this for chaining.&] +[s3; &] +[s0; &] +[s0; &] +[s0;%- &] +[ {{10000@3 [s0; [*@(229)4 StatusBar]]}}&] +[s3; &] +[s1;:StatusBar`:`:class:%- [@(0.0.255)3 class][3 _][*3 StatusBar][3 _:_][@(0.0.255)3 public][3 _][*@3;3 I +nfoCtrl]&] +[s0; &] +[s2; +@@image:1268&131 +(A8sAFQAAAOv/AAAAAHic7Zk9jsMgEEZ9/xtsGaXZYstEylG22CbpVuIOThHJIgzzEzAMWB96RWRbBr48YJSE/98AQBvWdXUfw1D8fH8BmY+cgWBUMPcxDA4EqwGCqUCwGiCYCgSrAYKpuAu2LIt7CMVAMJUawZaoFQ/gMIJlo0iu1MdlyZD20qhfC5WCcXMsDmcuNsGyUdDvvcWsqUvJ50b9GmkhmGUFJbufbwjFZI9IOiM5rnq4t8lj6INFsNvlfLuc6MPqsuUmONoqK4YKFueQLKvOgsmHdTesgl3zgslbE5e2YOZEdgUimNdRZd+pxtzBtse4Hcyya6lRzy6YWnF1E0x4+bCCZR82HpH2qOeyKzBFvj2Hvfh0gfeEE2yru4KtBgvvjgnnJnfFZfqVxIIJc6Q57DgGIVhhJN2QBLueXne5GmxfprMr4IdWA4Iz8a1sDbYvEOyQuP9VNDUQTCV2Jlt3Bb4GAxBMJRXsve7qWYPNyIpmaMYwH/c/75GiHb89Ac30xxw=) +&] +[s0; &] +[s9; StatusBar is a Frame Ctrl intended to be used as informational +bar at the bottom of the main application window.&] +[s9; StatusBar is inherited from InfoCtrl and retains all the functionality +of the base class. It adds `"size`-grip`" for resizing of the +window (if supported by the platform) and changes its Frame behaviour +to be placed at the bottom of its parent window. To add more +fields to the StatusBar, use InfoCtrl widgets.&] +[s0; &] +[s0;%- [%%/ Derived from][%% ][^topic`:`/`/CtrlLib`/src`/StatusBar`$en`-us`#InfoCtrl`:`:class^ I +nfoCtrl]&] +[s3; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] +[s3;%- &] +[s5;:StatusBar`:`:StatusBar`(`):%- [* StatusBar]()&] +[s2; Constructor. Sets the height based on the current system default +font. If there is no global WhenHelpDefault() callback defined +for the Bar, defines it so that Bar will use StatusBar to display +Menu and ToolBar informational texts.&] +[s3; &] +[s4;%- &] +[s5;:StatusBar`:`:`~StatusBar`(`):%- [@(0.0.255) `~][* StatusBar]()&] +[s2; Default destructor.&] +[s3;%- &] +[s0; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Public Method List]]}}&] +[s3;%- &] +[s5;:StatusBar`:`:operator`=`(const String`&`):%- [@(0.0.255) virtual] +[@(0.0.255) void]_[* operator`=]([@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 s]) +&] +[s2; Same as Set(s).&] +[s7; [%-*C@3 s]-|Content of StatusBar.&] +[s3; &] +[s4;%- &] +[s5;:StatusBar`:`:operator Callback1``(`):%- [* operator_Callback1]()&] +[s7; [*/ Return value]-|A callback that, when invoked, calls Set for +the StatusBar.&] +[s3; &] +[s4;%- &] +[s5;:StatusBar`:`:Height`(int`):%- [_^StatusBar^ StatusBar][@(0.0.255) `&]_[* Height]([@(0.0.255) i +nt]_[*@3 `_cy])&] +[s2; Sets the height of the StatusBar.&] +[s7; [%-*C@3 `_cy]-|The height.&] +[s7; [*/ Return value]-|`*this for chaining.&] +[s3; &] +[s4;%- &] +[s5;:StatusBar`:`:NoSizeGrip`(`):%- [_^StatusBar^ StatusBar][@(0.0.255) `&]_[* NoSizeGrip]( +)&] +[s2; Do not display `"size grip`".&] +[s7; [*/ Return value]-|`*this for chaining.&] +[s3; &] +[s0; &] +[s0; &] +[s0;%- &] +[ {{10000@3 [s0; [*@(229)4 ProgressInfo]]}}&] +[s3; &] +[s1;:ProgressInfo`:`:class:%- [@(0.0.255)3 class][3 _][*3 ProgressInfo]&] +[s9; This class provides simple tool for displaying progress information +in the StatusBar (or generally, in InfoCtrl). It connects to +InfoCtrl object and replaces its content with progress indicator.&] +[s3; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] +[s3;%- &] +[s5;:ProgressInfo`:`:ProgressInfo`(`):%- [* ProgressInfo]()&] +[s2; Constructor.&] +[s3; &] +[s4;%- &] +[s5;:ProgressInfo`:`:ProgressInfo`(InfoCtrl`&`):%- [* ProgressInfo]([_^InfoCtrl^ InfoCtrl +][@(0.0.255) `&]_[*@3 f])&] +[s2; Constructor.&] +[s7; [%-*C@3 f]-|Target InfoCtrl.&] +[s3; &] +[s4;%- &] +[s5;:ProgressInfo`:`:`~ProgressInfo`(`):%- [@(0.0.255) `~][* ProgressInfo]()&] +[s2; Destructor. Sets the Null to target InfoCtrl.&] +[s3; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Public Method List]]}}&] +[s3;%- &] +[s5;:ProgressInfo`:`:Text`(const String`&`):%- [_^ProgressInfo^ ProgressInfo][@(0.0.255) `& +]_[* Text]([@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 s])&] +[s2; Sets the text to be displayed as the label of progress indicator.&] +[s7; [%-*C@3 s]-|Text.&] +[s7; [*/ Return value]-|`*this for chaining.&] +[s3; &] +[s4;%- &] +[s5;:ProgressInfo`:`:TextWidth`(int`):%- [_^ProgressInfo^ ProgressInfo][@(0.0.255) `&]_[* T +extWidth]([@(0.0.255) int]_[*@3 cx])&] +[s2; Sets the width of text. Zero means that the width has to be +determined based on text.&] +[s7; [%-*C@3 cx]-|Width in pixels.&] +[s7; [*/ Return value]-|`*this for chaining.&] +[s3; &] +[s4;%- &] +[s5;:ProgressInfo`:`:Width`(int`):%- [_^ProgressInfo^ ProgressInfo][@(0.0.255) `&]_[* Width +]([@(0.0.255) int]_[*@3 `_cx])&] +[s2; Sets the width of progress indicator. Default is 200.&] +[s7; [%-*C@3 `_cx]-|Width in pixels.&] +[s7; [*/ Return value]-|`*this for chaining.&] +[s3; &] +[s4;%- &] +[s5;:ProgressInfo`:`:Placement`(int`):%- [_^ProgressInfo^ ProgressInfo][@(0.0.255) `&]_[* P +lacement]([@(0.0.255) int]_[*@3 `_tabi])&] +[s2; Can be used to place progress indicator to specific section +of InfoCtrl.&] +[s7; [%-*C@3 `_tabi]-|Section index. Progress label is placed at [@3 `_tabi], +progress indicator at [@3 `_tabi] `+ 1.&] +[s7; [*/ Return value]-|`*this for chaining.&] +[s3; &] +[s4;%- &] +[s5;:ProgressInfo`:`:Info`(InfoCtrl`&`):%- [_^ProgressInfo^ ProgressInfo][@(0.0.255) `&]_ +[* Info]([_^InfoCtrl^ InfoCtrl][@(0.0.255) `&]_[*@3 `_info])&] +[s2; Specifies the target InfoCtrl.&] +[s7; [%-*C@3 `_info]-|InfoCtrl. Must exists during the lifetime of ProgressInfo.&] +[s7; [*/ Return value]-|`*this for chaining.&] +[s3; &] +[s4;%- &] +[s5;:ProgressInfo`:`:Total`(int`):%- [_^ProgressInfo^ ProgressInfo][@(0.0.255) `&]_[* Total +]([@(0.0.255) int]_[*@3 `_total])&] +[s2; Sets the total number of progress steps.&] +[s7; [%-*C@3 `_total]-|Total number.&] +[s7; [*/ Return value]-|`*this for chaining.&] +[s3; &] +[s4;%- &] +[s5;:ProgressInfo`:`:Set`(int`,int`):%- [_^ProgressInfo^ ProgressInfo][@(0.0.255) `&]_[* Se +t]([@(0.0.255) int]_[*@3 `_pos], [@(0.0.255) int]_[*@3 `_total])&] +[s2; Sets the new progress information.&] +[s7; [%-*C@3 `_pos]-|Current progress.&] +[s7; [%-*C@3 `_total]-|Total number of progress steps.&] +[s7; [*/ Return value]-|`*this for chaining.&] +[s3; &] +[s4;%- &] +[s5;:ProgressInfo`:`:Set`(int`):%- [@(0.0.255) void]_[* Set]([@(0.0.255) int]_[*@3 `_pos])&] +[s2; Sets the new progress information.&] +[s7; [%-*C@3 `_pos]-|Current progress. Total number of steps is set +by Total method.&] +[s3; &] +[s4;%- &] +[s5;:ProgressInfo`:`:Get`(`)const:%- [@(0.0.255) int]_[* Get]()_[@(0.0.255) const]&] +[s7; [*/ Return value]-|Current progress.&] +[s3; &] +[s4;%- &] +[s5;:ProgressInfo`:`:operator`=`(int`):%- [@(0.0.255) void]_[* operator`=]([@(0.0.255) int]_ +[*@3 p])&] +[s2; Same as Set(p).&] +[s3; &] +[s4;%- &] +[s5;:ProgressInfo`:`:operator`+`+`(`):%- [@(0.0.255) void]_[* operator`+`+]()&] +[s2; Same as Set(Get() `+ 1)&] +[s3; &] +[s4;%- &] +[s5;:ProgressInfo`:`:operator int`(`):%- [* operator_int]()&] +[s7; [*/ Return value]-|Get().&] +[s3; &] [s0; ]] \ No newline at end of file diff --git a/uppsrc/CtrlLib/src.tpp/SuggestCtrl$en-us.tpp b/uppsrc/CtrlLib/src.tpp/SuggestCtrl_en-us.tpp similarity index 100% rename from uppsrc/CtrlLib/src.tpp/SuggestCtrl$en-us.tpp rename to uppsrc/CtrlLib/src.tpp/SuggestCtrl_en-us.tpp diff --git a/uppsrc/CtrlLib/src.tpp/Switch$en-us.tpp b/uppsrc/CtrlLib/src.tpp/Switch_en-us.tpp similarity index 98% rename from uppsrc/CtrlLib/src.tpp/Switch$en-us.tpp rename to uppsrc/CtrlLib/src.tpp/Switch_en-us.tpp index 68d31de82..8a14becfe 100644 --- a/uppsrc/CtrlLib/src.tpp/Switch$en-us.tpp +++ b/uppsrc/CtrlLib/src.tpp/Switch_en-us.tpp @@ -1,225 +1,225 @@ -topic "Switch"; -[2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,0#27521748481378242620020725143825:desc] -[0 $$3,0#96390100711032703541132217272105:end] -[H6;0 $$4,0#05600065144404261032431302351956:begin] -[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] -[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] -[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] -[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] -[b42;2 $$9,9#13035079074754324216151401829390:normal] -[{_}%EN-US -[ {{10000@3 [s0; [*@(229)4 Switch]]}}&] -[s3;%- &] -[s1;:Switch`:`:class:%- [@(0.0.255)3 class][3 _][*3 Switch][3 _:_][@(0.0.255)3 public][3 _][*@3;3 Ct -rl]&] -[s0; Switch provides selection of mutually exclusive options (cases).&] -[s0; &] -[s2; -@@image:1287&131 -(A84AFQAAAOv/AAAAAHic7ZfNaxpBGMb9f3II5BSiJIdcvATPuaaHYFQ8BjEeJCTQQOhJaLCFtlBCckkRDGKw+cJDmhYlNMGP1FjBiGURQbz3wYVl2dmdHWdHo2SGh2Bmv377vs/Mu6/SLilSUlJSUlJSUlJTpVTq+/r628XFwNzcm6Wl4MbGXjp9+aoApppzMqlIbW4mPJ5gPJ5MpXJXVzfp9MX29ke3O7C1dfBKAKaaczKpTDl9vkg+/6NcLler1VqtVq/XG41GofAb87GYCa3L5WK5M+NpHADqzbUxyYEy5bRi5ngXvujxPUu7hONa7LpYDhrnQ+UhW8w+Pj02m81Wq3V3V8LRTOaaA5KRygBQH4xhAdhfnNuW4+EkTxhF9BwGjS+GKO7YdVXO5GVy9dtq6CLkPfYe3R61221FUXZ2PoVC+xyQjE7TA6iBag5GezCcADgM7yg4hTuNj2rYUAhxGr4hUdzV3Qw2O2meJP4kovfR+a/zrX+tTqeTy90sL4dZIA01QvtNL3B6AEOghgUwZTAAkL9ND42Ik1x9htpKBxZFZQVDgpGpJP9l9B5aFXxDorhnC1nsZqrN1n6tzR7PFuvFbrdbLJYWFvy2iSZpGTE0AC1QaqwQqO5gMAJYMZCuswUWy2nwktUTbYEFUtk6jR400/Vi6zR0xGhVwFl9qqJoqjbz5r0zn2eUjtLr9c7Pf7JsKWRIGTE0AH2UtECxA9AZTKNEOXlEnBQXscyIorJ1Gn2Sz2l+/x46YrQq4Dy8PUTRxG4Gm53en4Kz3+/v7n4Jh9+xOI3lRegAhvU4FIAtla3/x8Ap3GkcVHSf0F3nxGlYEW53AB0xWhVwPrefC/WCupuBs1L5i6NnZ3mxOaUAYOgDxQjAkbhhcyqQU6DTOKgoPrGqR3RsFpupikbf+3wRdMRoVfANqedcWYnE4x/IS8jSo5+0SqVAAAMDOUlhYAEWGCjbLOsx6MBi02c6Q7qO9Bh7ZknFYgceTxAdMVoVfEOiuGPXxXKwyrJwvTjAi3MOm7IJiR4HdiZzHQrt4+sRrQr+oriTtUC7ueme5lBOAEQxjIHTdAd2zs9Nxf3EMYddSkpKSkpKSkpKiP4DpnWuPQ==) -&] -[s2; -@@image:406&312 -(A0EAMgAAAM7/AAAAAHic7VnPSxtBGM3/40HwJCp68JKLePZqDxI15CgSPQRRqFA8BVrSQlsoohdLICKR1F/kYG3ZRVRM1sZtYF0sSygNge6tjyxdlv0xTman2YXO8AibzW7y3jff9+28jPn7lykQYxSLn+bmno+PLwwNPZuYWJyf3yyVTiJnRY+lpfzY2GIuVygWK6en56XS8dram9HRhZWVV5Fzo+Q/Pb1crX6u1WqKojQaDVVVm82mJF3h/Oqqj4pEIkF422cgfxB/m7/aHXf3d5qm6bp+eXmLTw8OzrwSnLSjlYD8R/44+Wvd8dgdhmGsr79Np1/EWQLqF/kP/jf1Gxd//YfearUqlfPJyYxXgpO5S45ToH0l4ZqQQP9B/Vr5r/0dFv+f3SHLtyMjKUoJ3qnxlcN3+tA/0X+c8Qd5m3+73T46+hI0C09OB0EUx4lIpTbRP9F/vPEH/06ns7HxPpPZCpLgG+cnJXDJHxuYAvR/9E/0H6sEnPzr9e/49PCw+o8k8JKTzb5E/0f/RP9B/Tr5T00t53KvvbcQngu+5ew65lvOFvD8Qv9H/0T/Qf0i/5E/iL8v/9gCzy/0f1Qu+g9ekf/e/HHFkHthCgjEAcIvRM6/V79ghuvtfNuXyy9gvVqWyzR+IQwfvhKcfqFwUpj5OJM+Tid3kzsXOwS/EJIPXwlOvwD+e9pe/ls+e50d/jBM8AtkPt4cC1p1eM/7HpNh+4WyVEb8Lf6zX2cHdwdlVQ7yC2T+ruOgM4QrfZdYQbD9gnKvIH8s/slqcuDdgNEygvwC4fvpRfFaxDr9wvbFNvIH8Qf//et9gl8g/AQvCfQqXH7h4fFBUiUr/pR+IfJEMln9AmGNGqacXbdQ5pL5//mFnpDwjMiVCgiQIfxC5PwZ9hfCNBm+fYl5fyHMj/KVwLy/EB8JzPsLhCwKs8DwPSYjzP6Cb0j7v8xj218gZIXvqq9XCZTkLbDtL/RBAr0KLvsL0SaSyeQXTOL/SGHK2XULZS6Zwi9wAvOzXkCAAX8A/IJmnw==) -&] -[s9; Options can be visually aligned horizontally or vertically `- -U`+`+ choses alignment based on size of options and Ctrl rectangle. -Each option represents a case with associated text and value. -Switch can be assigned any Value (not only Values associated -with current cases); if there is no case with Value equal to -the Value of Switch, no case is highlighted.&] -[s0;* &] -[s0;%- [%%/ Derived from][%% ][^topic`:`/`/CtrlCore`/src`/Ctrl`$en`-us^ Ctrl]&] -[s3; &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] -[s3;%- &] -[s5;:Switch`:`:Switch`(`):%- [* Switch]()&] -[s2; Initializes the switch.&] -[s3; &] -[s4;%- &] -[s5;:Switch`:`:`~Switch`(`):%- [@(0.0.255) `~][* Switch]()&] -[s2; Default destructor.&] -[s3; &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Public Method List]]}}&] -[s3;%- &] -[s5;:Switch`:`:SetLabel`(int`,const char`*`):%- [_^Switch^ Switch][@(0.0.255) `&]_[* SetLab -el]([@(0.0.255) int]_[*@3 i], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text])&] -[s2; Sets text of case with specified index [*@3 i]. Text can contain -`'`\b`' for access`-key assignment. Value of case is set to [*@3 i]. -If [*@3 i] is greater than current number of cases, empty cases -are added to Switch with values equivalent to their indexes.&] -[s7; [%-*C@3 i]-|Index of the case.&] -[s7; [%-*C@3 text]-|Text of the case.&] -[s7; [*/ Return value]-|`*this for chaining.&] -[s3; &] -[s4;%- &] -[s5;:Switch`:`:SetLabel`(const char`*`):%- [_^Switch^ Switch][@(0.0.255) `&]_[* SetLabel]([@(0.0.255) c -onst]_[@(0.0.255) char]_`*[*@3 text])&] -[s2; Sets content of Switch. Each line of [*@3 text ]represents one -case with value equivalent to the index of line.&] -[s7; [%-*C@3 text]-|Content of the Switch.&] -[s7; [*/ Return value]-|`*this for chaining.&] -[s3; &] -[s4;%- &] -[s5;:Switch`:`:GetLabel`(int`)const:%- [_^String^ String]_[* GetLabel]([@(0.0.255) int]_[*@3 i -])_[@(0.0.255) const]&] -[s2; Returns the text of case with specified index [*@3 i].&] -[s3; &] -[s4;%- &] -[s5;:Switch`:`:GetLabel`(`)const:%- [_^String^ String]_[* GetLabel]()_[@(0.0.255) const]&] -[s2; Returns the context of the Switch.&] -[s3;%- &] -[s4;%- &] -[s5;:Switch`:`:Set`(int`,const Value`&`,const char`*`):%- [_^Switch^ Switch][@(0.0.255) `& -]_[* Set]([@(0.0.255) int]_[*@3 i], [@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_[*@3 val -], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text])&] -[s2; Sets text of case with specified index [*@3 i]. Text can contain -`'`\b`' for access`-key assignment. Value of case is set to [*@3 val]. -If [*@3 i] is greater than current number of cases, empty cases -are added to Switch with values equivalent to their indexes.&] -[s7; [%-*C@3 i]-|Index of the case.&] -[s7; [%-*C@3 val]-|Value of the case.&] -[s7; [%-*C@3 text]-|Text of the case.&] -[s7; [*/ Return value]-|`*this for chaining.&] -[s3; &] -[s4;%- &] -[s5;:Switch`:`:Set`(int`,const Value`&`):%- [_^Switch^ Switch][@(0.0.255) `&]_[* Set]([@(0.0.255) i -nt]_[*@3 i], [@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_[*@3 val])&] -[s2; Sets the Value of of case with specified index [*@3 i]. The text -of case is unaltered.&] -[s7; [%-*C@3 i]-|Index of the case.&] -[s7; [%-*C@3 val]-|Value of the case.&] -[s7; [*/ Return value]-|`*this for chaining.&] -[s3; &] -[s4;%- &] -[s5;:Switch`:`:Add`(const Value`&`,const char`*`):%- [_^Switch^ Switch][@(0.0.255) `&]_[* A -dd]([@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_[*@3 val], [@(0.0.255) const]_[@(0.0.255) c -har]_`*[*@3 text])&] -[s2; Adds a new case to the Switch.&] -[s7; [%-*C@3 val]-|Value of the case.&] -[s7; [%-*C@3 text]-|Text of the case.&] -[s7; [*/ Return value]-|`*this for chaining.&] -[s3; &] -[s4;%- &] -[s5;:Switch`:`:Add`(const char`*`):%- [_^Switch^ Switch][@(0.0.255) `&]_[* Add]([@(0.0.255) c -onst]_[@(0.0.255) char]_`*[*@3 text])&] -[s2; Adds a new case to the Switch. Value of the case is equal to -its index.&] -[s7; [%-*C@3 text]-|Text of the case.&] -[s7; [*/ Return value]-|`*this for chaining&] -[s3; &] -[s4;%- &] -[s5;:Switch`:`:EnableCase`(int`,bool`):%- [@(0.0.255) void]_[* EnableCase]([@(0.0.255) int]_ -[*@3 i], [@(0.0.255) bool]_[*@3 enable]_`=_[@(0.0.255) true])&] -[s2; Enables or disables case with the specified index [*@3 i].&] -[s7; [%-*C@3 i]-|Index of the case to be enabled or disabled.&] -[s7; [%-*C@3 enable]-|Enable flag (true if case is to be enabled).&] -[s3; &] -[s4;%- &] -[s5;:Switch`:`:DisableCase`(int`):%- [@(0.0.255) void]_[* DisableCase]([@(0.0.255) int]_[*@3 i -])&] -[s2; Same as [^topic`:`/`/CtrlLib`/src`/Switch`$en`-us`#Switch`:`:EnableCase`(int`,bool`)^ E -nableCase](i, false).&] -[s3; &] -[s4;%- &] -[s5;:Switch`:`:EnableValue`(const Value`&`,bool`):%- [@(0.0.255) void]_[* EnableValue]([@(0.0.255) c -onst]_[_^Value^ Value][@(0.0.255) `&]_[*@3 val], [@(0.0.255) bool]_[*@3 enable]_`=_[@(0.0.255) t -rue])&] -[s2; Enables or disables case based on its value.&] -[s7; [%-*C@3 val]-|Value of the case to be enabled / disabled.&] -[s7; [%-*C@3 enable]-|Enable flag (true if case is to be enabled).&] -[s3; &] -[s4;%- &] -[s5;:Switch`:`:DisableValue`(const Value`&`):%- [@(0.0.255) void]_[* DisableValue]([@(0.0.255) c -onst]_[_^Value^ Value][@(0.0.255) `&]_[*@3 val])&] -[s2; Same as [^topic`:`/`/CtrlLib`/src`/Switch`$en`-us`#Switch`:`:EnableValue`(const Value`&`,bool`)^ E -nableValue](val, false).&] -[s3; &] -[s4;%- &] -[s5;:Switch`:`:Reset`(`):%- [@(0.0.255) void]_[* Reset]()&] -[s2; Removes content of the Switch.&] -[s3; &] -[s4;%- &] -[s5;:Switch`:`:GetCases`(`)const:%- [@(0.0.255) const]_[_^Array^ Array][@(0.0.255) <][_^Switch`:`:Case^ C -ase][@(0.0.255) >`&]_[* GetCases]()_[@(0.0.255) const]&] -[s2;%- Retrieves information of all cases in the Switch.&] -[s7; [*/ Return value]-|Array of [^topic`:`/`/CtrlLib`/src`/Switch`$en`-us`#Switch`:`:Case`:`:struct^ S -witch`::Case] structures.&] -[s3; &] -[s4;%- &] -[s5;:Switch`:`:operator int`(`)const:%- [* operator_int]()_[@(0.0.255) const]&] -[s2; Simplified access to Switch Value. Equivalent to (int)GetData().&] -[s6; Switch must be assigned an integer value.&] -[s7; [*/ Return value]-|Integer Value of Switch.&] -[s3; &] -[s4;%- &] -[s5;:Switch`:`:operator`=`(const Value`&`):%- [@(0.0.255) void]_[* operator`=]([@(0.0.255) c -onst]_[_^Value^ Value][@(0.0.255) `&]_[*@3 v])&] -[s2; Equivalent to SetData([%-*@3 v]).&] -[s3; &] -[s4;%- &] -[s5;:Switch`:`:SetFont`(Font`):%- [_^Switch^ Switch][@(0.0.255) `&]_[* SetFont]([_^Font^ Font -]_[*@3 f])&] -[s2; Alters the font to be used in the Switch.&] -[s7; [%-*C@3 f]-|Font to be used.&] -[s7; [*/ Return value]-|`*this for chaining.&] -[s3; &] -[s4;%- &] -[s5;:Switch`:`:GetFont`(`)const:%- [_^Font^ Font]_[* GetFont]()_[@(0.0.255) const]&] -[s2; Retrieves the font used in the Switch.&] -[s7; [*/ Return value]-|`*this for chaining.&] -[s3; &] -[s4;%- &] -[s5;:Switch`:`:MinCaseHeight`(int`):%- [_^Switch^ Switch][@(0.0.255) `&]_[* MinCaseHeight]( -[@(0.0.255) int]_[*@3 cy])&] -[s2; Sets the minimal height of a case in the switch.&] -[s7; [%-*C@3 f]-|Font to be used.&] -[s7; [*/ Return value]-|`*this for chaining.&] -[s3; &] -[s4;%- &] -[s5;:Switch`:`:SetAutoDirection`(`):%- [_^Switch^ Switch][@(0.0.255) `&]_[* SetAutoDirectio -n]()&] -[s2; Sets Switch layout to automatic mode, where items are layed -out depending on the available area for switch (vertically is -the are is high enough, horizontally otherwise).&] -[s3;%- &] -[s4;%- &] -[s5;:Switch`:`:SetHorizontal`(`):%- [_^Switch^ Switch][@(0.0.255) `&]_[* SetHorizontal]()&] -[s2; Forces horizontal layout.&] -[s3;%- &] -[s4;%- &] -[s5;:Switch`:`:SetVertical`(`):%- [_^Switch^ Switch][@(0.0.255) `&]_[* SetVertical]()&] -[s2; Forces vertical layout.&] -[s3; &] -[s0; &] -[s0;%- &] -[ {{10000@3 [s0; [*@(229)4 Switch`::Case]]}}&] -[s3; &] -[s1;:Switch`:`:Case`:`:struct:%- [@(0.0.255)3 struct][3 _][*3 Case][3 _:_][@(0.0.255)3 public][3 _ -][*@3;3 Moveable][@(0.0.255)3 <][*3 Case][@(0.0.255)3 >][3 _]&] -[s9; This structure is returned by the [^topic`:`/`/CtrlLib`/src`/Switch`$en`-us`#Switch`:`:GetCases`(`)const^ S -witch`::GetCases] method.&] -[s3; &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Public Field List]]}}&] -[s3;%- &] -[s5;:Switch`:`:Case`:`:label:%- [_^String^ String]_[* label]&] -[s2; Text of the case.&] -[s3;%- &] -[s4;%- &] -[s5;:Switch`:`:Case`:`:value:%- [_^Value^ Value]_[* value]&] -[s2; Value of the case.&] -[s3; &] -[s4;%- &] -[s5;:Switch`:`:Case`:`:accesskey:%- [@(0.0.255) int]_[* accesskey]&] -[s2; Access key.&] -[s5; &] -[s4;%- &] -[s5;:Switch`:`:Case`:`:enabled:%- [@(0.0.255) bool]_[* enabled]&] -[s2; Enable flag.&] -[s3; &] +topic "Switch"; +[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,0#27521748481378242620020725143825:desc] +[0 $$3,0#96390100711032703541132217272105:end] +[H6;0 $$4,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] +[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] +[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] +[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] +[b42;2 $$9,9#13035079074754324216151401829390:normal] +[{_}%EN-US +[ {{10000@3 [s0; [*@(229)4 Switch]]}}&] +[s3;%- &] +[s1;:Switch`:`:class:%- [@(0.0.255)3 class][3 _][*3 Switch][3 _:_][@(0.0.255)3 public][3 _][*@3;3 Ct +rl]&] +[s0; Switch provides selection of mutually exclusive options (cases).&] +[s0; &] +[s2; +@@image:1287&131 +(A84AFQAAAOv/AAAAAHic7ZfNaxpBGMb9f3II5BSiJIdcvATPuaaHYFQ8BjEeJCTQQOhJaLCFtlBCckkRDGKw+cJDmhYlNMGP1FjBiGURQbz3wYVl2dmdHWdHo2SGh2Bmv377vs/Mu6/SLilSUlJSUlJSUlJTpVTq+/r628XFwNzcm6Wl4MbGXjp9+aoApppzMqlIbW4mPJ5gPJ5MpXJXVzfp9MX29ke3O7C1dfBKAKaaczKpTDl9vkg+/6NcLler1VqtVq/XG41GofAb87GYCa3L5WK5M+NpHADqzbUxyYEy5bRi5ngXvujxPUu7hONa7LpYDhrnQ+UhW8w+Pj02m81Wq3V3V8LRTOaaA5KRygBQH4xhAdhfnNuW4+EkTxhF9BwGjS+GKO7YdVXO5GVy9dtq6CLkPfYe3R61221FUXZ2PoVC+xyQjE7TA6iBag5GezCcADgM7yg4hTuNj2rYUAhxGr4hUdzV3Qw2O2meJP4kovfR+a/zrX+tTqeTy90sL4dZIA01QvtNL3B6AEOghgUwZTAAkL9ND42Ik1x9htpKBxZFZQVDgpGpJP9l9B5aFXxDorhnC1nsZqrN1n6tzR7PFuvFbrdbLJYWFvy2iSZpGTE0AC1QaqwQqO5gMAJYMZCuswUWy2nwktUTbYEFUtk6jR400/Vi6zR0xGhVwFl9qqJoqjbz5r0zn2eUjtLr9c7Pf7JsKWRIGTE0AH2UtECxA9AZTKNEOXlEnBQXscyIorJ1Gn2Sz2l+/x46YrQq4Dy8PUTRxG4Gm53en4Kz3+/v7n4Jh9+xOI3lRegAhvU4FIAtla3/x8Ap3GkcVHSf0F3nxGlYEW53AB0xWhVwPrefC/WCupuBs1L5i6NnZ3mxOaUAYOgDxQjAkbhhcyqQU6DTOKgoPrGqR3RsFpupikbf+3wRdMRoVfANqedcWYnE4x/IS8jSo5+0SqVAAAMDOUlhYAEWGCjbLOsx6MBi02c6Q7qO9Bh7ZknFYgceTxAdMVoVfEOiuGPXxXKwyrJwvTjAi3MOm7IJiR4HdiZzHQrt4+sRrQr+oriTtUC7ueme5lBOAEQxjIHTdAd2zs9Nxf3EMYddSkpKSkpKSkpKiP4DpnWuPQ==) +&] +[s2; +@@image:406&312 +(A0EAMgAAAM7/AAAAAHic7VnPSxtBGM3/40HwJCp68JKLePZqDxI15CgSPQRRqFA8BVrSQlsoohdLICKR1F/kYG3ZRVRM1sZtYF0sSygNge6tjyxdlv0xTman2YXO8AibzW7y3jff9+28jPn7lykQYxSLn+bmno+PLwwNPZuYWJyf3yyVTiJnRY+lpfzY2GIuVygWK6en56XS8dram9HRhZWVV5Fzo+Q/Pb1crX6u1WqKojQaDVVVm82mJF3h/Oqqj4pEIkF422cgfxB/m7/aHXf3d5qm6bp+eXmLTw8OzrwSnLSjlYD8R/44+Wvd8dgdhmGsr79Np1/EWQLqF/kP/jf1Gxd//YfearUqlfPJyYxXgpO5S45ToH0l4ZqQQP9B/Vr5r/0dFv+f3SHLtyMjKUoJ3qnxlcN3+tA/0X+c8Qd5m3+73T46+hI0C09OB0EUx4lIpTbRP9F/vPEH/06ns7HxPpPZCpLgG+cnJXDJHxuYAvR/9E/0H6sEnPzr9e/49PCw+o8k8JKTzb5E/0f/RP9B/Tr5T00t53KvvbcQngu+5ew65lvOFvD8Qv9H/0T/Qf0i/5E/iL8v/9gCzy/0f1Qu+g9ekf/e/HHFkHthCgjEAcIvRM6/V79ghuvtfNuXyy9gvVqWyzR+IQwfvhKcfqFwUpj5OJM+Tid3kzsXOwS/EJIPXwlOvwD+e9pe/ls+e50d/jBM8AtkPt4cC1p1eM/7HpNh+4WyVEb8Lf6zX2cHdwdlVQ7yC2T+ruOgM4QrfZdYQbD9gnKvIH8s/slqcuDdgNEygvwC4fvpRfFaxDr9wvbFNvIH8Qf//et9gl8g/AQvCfQqXH7h4fFBUiUr/pR+IfJEMln9AmGNGqacXbdQ5pL5//mFnpDwjMiVCgiQIfxC5PwZ9hfCNBm+fYl5fyHMj/KVwLy/EB8JzPsLhCwKs8DwPSYjzP6Cb0j7v8xj218gZIXvqq9XCZTkLbDtL/RBAr0KLvsL0SaSyeQXTOL/SGHK2XULZS6Zwi9wAvOzXkCAAX8A/IJmnw==) +&] +[s9; Options can be visually aligned horizontally or vertically `- +U`+`+ choses alignment based on size of options and Ctrl rectangle. +Each option represents a case with associated text and value. +Switch can be assigned any Value (not only Values associated +with current cases); if there is no case with Value equal to +the Value of Switch, no case is highlighted.&] +[s0;* &] +[s0;%- [%%/ Derived from][%% ][^topic`:`/`/CtrlCore`/src`/Ctrl`$en`-us^ Ctrl]&] +[s3; &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] +[s3;%- &] +[s5;:Switch`:`:Switch`(`):%- [* Switch]()&] +[s2; Initializes the switch.&] +[s3; &] +[s4;%- &] +[s5;:Switch`:`:`~Switch`(`):%- [@(0.0.255) `~][* Switch]()&] +[s2; Default destructor.&] +[s3; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Public Method List]]}}&] +[s3;%- &] +[s5;:Switch`:`:SetLabel`(int`,const char`*`):%- [_^Switch^ Switch][@(0.0.255) `&]_[* SetLab +el]([@(0.0.255) int]_[*@3 i], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text])&] +[s2; Sets text of case with specified index [*@3 i]. Text can contain +`'`\b`' for access`-key assignment. Value of case is set to [*@3 i]. +If [*@3 i] is greater than current number of cases, empty cases +are added to Switch with values equivalent to their indexes.&] +[s7; [%-*C@3 i]-|Index of the case.&] +[s7; [%-*C@3 text]-|Text of the case.&] +[s7; [*/ Return value]-|`*this for chaining.&] +[s3; &] +[s4;%- &] +[s5;:Switch`:`:SetLabel`(const char`*`):%- [_^Switch^ Switch][@(0.0.255) `&]_[* SetLabel]([@(0.0.255) c +onst]_[@(0.0.255) char]_`*[*@3 text])&] +[s2; Sets content of Switch. Each line of [*@3 text ]represents one +case with value equivalent to the index of line.&] +[s7; [%-*C@3 text]-|Content of the Switch.&] +[s7; [*/ Return value]-|`*this for chaining.&] +[s3; &] +[s4;%- &] +[s5;:Switch`:`:GetLabel`(int`)const:%- [_^String^ String]_[* GetLabel]([@(0.0.255) int]_[*@3 i +])_[@(0.0.255) const]&] +[s2; Returns the text of case with specified index [*@3 i].&] +[s3; &] +[s4;%- &] +[s5;:Switch`:`:GetLabel`(`)const:%- [_^String^ String]_[* GetLabel]()_[@(0.0.255) const]&] +[s2; Returns the context of the Switch.&] +[s3;%- &] +[s4;%- &] +[s5;:Switch`:`:Set`(int`,const Value`&`,const char`*`):%- [_^Switch^ Switch][@(0.0.255) `& +]_[* Set]([@(0.0.255) int]_[*@3 i], [@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_[*@3 val +], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text])&] +[s2; Sets text of case with specified index [*@3 i]. Text can contain +`'`\b`' for access`-key assignment. Value of case is set to [*@3 val]. +If [*@3 i] is greater than current number of cases, empty cases +are added to Switch with values equivalent to their indexes.&] +[s7; [%-*C@3 i]-|Index of the case.&] +[s7; [%-*C@3 val]-|Value of the case.&] +[s7; [%-*C@3 text]-|Text of the case.&] +[s7; [*/ Return value]-|`*this for chaining.&] +[s3; &] +[s4;%- &] +[s5;:Switch`:`:Set`(int`,const Value`&`):%- [_^Switch^ Switch][@(0.0.255) `&]_[* Set]([@(0.0.255) i +nt]_[*@3 i], [@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_[*@3 val])&] +[s2; Sets the Value of of case with specified index [*@3 i]. The text +of case is unaltered.&] +[s7; [%-*C@3 i]-|Index of the case.&] +[s7; [%-*C@3 val]-|Value of the case.&] +[s7; [*/ Return value]-|`*this for chaining.&] +[s3; &] +[s4;%- &] +[s5;:Switch`:`:Add`(const Value`&`,const char`*`):%- [_^Switch^ Switch][@(0.0.255) `&]_[* A +dd]([@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_[*@3 val], [@(0.0.255) const]_[@(0.0.255) c +har]_`*[*@3 text])&] +[s2; Adds a new case to the Switch.&] +[s7; [%-*C@3 val]-|Value of the case.&] +[s7; [%-*C@3 text]-|Text of the case.&] +[s7; [*/ Return value]-|`*this for chaining.&] +[s3; &] +[s4;%- &] +[s5;:Switch`:`:Add`(const char`*`):%- [_^Switch^ Switch][@(0.0.255) `&]_[* Add]([@(0.0.255) c +onst]_[@(0.0.255) char]_`*[*@3 text])&] +[s2; Adds a new case to the Switch. Value of the case is equal to +its index.&] +[s7; [%-*C@3 text]-|Text of the case.&] +[s7; [*/ Return value]-|`*this for chaining&] +[s3; &] +[s4;%- &] +[s5;:Switch`:`:EnableCase`(int`,bool`):%- [@(0.0.255) void]_[* EnableCase]([@(0.0.255) int]_ +[*@3 i], [@(0.0.255) bool]_[*@3 enable]_`=_[@(0.0.255) true])&] +[s2; Enables or disables case with the specified index [*@3 i].&] +[s7; [%-*C@3 i]-|Index of the case to be enabled or disabled.&] +[s7; [%-*C@3 enable]-|Enable flag (true if case is to be enabled).&] +[s3; &] +[s4;%- &] +[s5;:Switch`:`:DisableCase`(int`):%- [@(0.0.255) void]_[* DisableCase]([@(0.0.255) int]_[*@3 i +])&] +[s2; Same as [^topic`:`/`/CtrlLib`/src`/Switch`$en`-us`#Switch`:`:EnableCase`(int`,bool`)^ E +nableCase](i, false).&] +[s3; &] +[s4;%- &] +[s5;:Switch`:`:EnableValue`(const Value`&`,bool`):%- [@(0.0.255) void]_[* EnableValue]([@(0.0.255) c +onst]_[_^Value^ Value][@(0.0.255) `&]_[*@3 val], [@(0.0.255) bool]_[*@3 enable]_`=_[@(0.0.255) t +rue])&] +[s2; Enables or disables case based on its value.&] +[s7; [%-*C@3 val]-|Value of the case to be enabled / disabled.&] +[s7; [%-*C@3 enable]-|Enable flag (true if case is to be enabled).&] +[s3; &] +[s4;%- &] +[s5;:Switch`:`:DisableValue`(const Value`&`):%- [@(0.0.255) void]_[* DisableValue]([@(0.0.255) c +onst]_[_^Value^ Value][@(0.0.255) `&]_[*@3 val])&] +[s2; Same as [^topic`:`/`/CtrlLib`/src`/Switch`$en`-us`#Switch`:`:EnableValue`(const Value`&`,bool`)^ E +nableValue](val, false).&] +[s3; &] +[s4;%- &] +[s5;:Switch`:`:Reset`(`):%- [@(0.0.255) void]_[* Reset]()&] +[s2; Removes content of the Switch.&] +[s3; &] +[s4;%- &] +[s5;:Switch`:`:GetCases`(`)const:%- [@(0.0.255) const]_[_^Array^ Array][@(0.0.255) <][_^Switch`:`:Case^ C +ase][@(0.0.255) >`&]_[* GetCases]()_[@(0.0.255) const]&] +[s2;%- Retrieves information of all cases in the Switch.&] +[s7; [*/ Return value]-|Array of [^topic`:`/`/CtrlLib`/src`/Switch`$en`-us`#Switch`:`:Case`:`:struct^ S +witch`::Case] structures.&] +[s3; &] +[s4;%- &] +[s5;:Switch`:`:operator int`(`)const:%- [* operator_int]()_[@(0.0.255) const]&] +[s2; Simplified access to Switch Value. Equivalent to (int)GetData().&] +[s6; Switch must be assigned an integer value.&] +[s7; [*/ Return value]-|Integer Value of Switch.&] +[s3; &] +[s4;%- &] +[s5;:Switch`:`:operator`=`(const Value`&`):%- [@(0.0.255) void]_[* operator`=]([@(0.0.255) c +onst]_[_^Value^ Value][@(0.0.255) `&]_[*@3 v])&] +[s2; Equivalent to SetData([%-*@3 v]).&] +[s3; &] +[s4;%- &] +[s5;:Switch`:`:SetFont`(Font`):%- [_^Switch^ Switch][@(0.0.255) `&]_[* SetFont]([_^Font^ Font +]_[*@3 f])&] +[s2; Alters the font to be used in the Switch.&] +[s7; [%-*C@3 f]-|Font to be used.&] +[s7; [*/ Return value]-|`*this for chaining.&] +[s3; &] +[s4;%- &] +[s5;:Switch`:`:GetFont`(`)const:%- [_^Font^ Font]_[* GetFont]()_[@(0.0.255) const]&] +[s2; Retrieves the font used in the Switch.&] +[s7; [*/ Return value]-|`*this for chaining.&] +[s3; &] +[s4;%- &] +[s5;:Switch`:`:MinCaseHeight`(int`):%- [_^Switch^ Switch][@(0.0.255) `&]_[* MinCaseHeight]( +[@(0.0.255) int]_[*@3 cy])&] +[s2; Sets the minimal height of a case in the switch.&] +[s7; [%-*C@3 f]-|Font to be used.&] +[s7; [*/ Return value]-|`*this for chaining.&] +[s3; &] +[s4;%- &] +[s5;:Switch`:`:SetAutoDirection`(`):%- [_^Switch^ Switch][@(0.0.255) `&]_[* SetAutoDirectio +n]()&] +[s2; Sets Switch layout to automatic mode, where items are layed +out depending on the available area for switch (vertically is +the are is high enough, horizontally otherwise).&] +[s3;%- &] +[s4;%- &] +[s5;:Switch`:`:SetHorizontal`(`):%- [_^Switch^ Switch][@(0.0.255) `&]_[* SetHorizontal]()&] +[s2; Forces horizontal layout.&] +[s3;%- &] +[s4;%- &] +[s5;:Switch`:`:SetVertical`(`):%- [_^Switch^ Switch][@(0.0.255) `&]_[* SetVertical]()&] +[s2; Forces vertical layout.&] +[s3; &] +[s0; &] +[s0;%- &] +[ {{10000@3 [s0; [*@(229)4 Switch`::Case]]}}&] +[s3; &] +[s1;:Switch`:`:Case`:`:struct:%- [@(0.0.255)3 struct][3 _][*3 Case][3 _:_][@(0.0.255)3 public][3 _ +][*@3;3 Moveable][@(0.0.255)3 <][*3 Case][@(0.0.255)3 >][3 _]&] +[s9; This structure is returned by the [^topic`:`/`/CtrlLib`/src`/Switch`$en`-us`#Switch`:`:GetCases`(`)const^ S +witch`::GetCases] method.&] +[s3; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Public Field List]]}}&] +[s3;%- &] +[s5;:Switch`:`:Case`:`:label:%- [_^String^ String]_[* label]&] +[s2; Text of the case.&] +[s3;%- &] +[s4;%- &] +[s5;:Switch`:`:Case`:`:value:%- [_^Value^ Value]_[* value]&] +[s2; Value of the case.&] +[s3; &] +[s4;%- &] +[s5;:Switch`:`:Case`:`:accesskey:%- [@(0.0.255) int]_[* accesskey]&] +[s2; Access key.&] +[s5; &] +[s4;%- &] +[s5;:Switch`:`:Case`:`:enabled:%- [@(0.0.255) bool]_[* enabled]&] +[s2; Enable flag.&] +[s3; &] [s0; ]] \ No newline at end of file diff --git a/uppsrc/CtrlLib/src.tpp/TabCtrl$en-us.tpp b/uppsrc/CtrlLib/src.tpp/TabCtrl_en-us.tpp similarity index 99% rename from uppsrc/CtrlLib/src.tpp/TabCtrl$en-us.tpp rename to uppsrc/CtrlLib/src.tpp/TabCtrl_en-us.tpp index 5fb180457..0d733b788 100644 --- a/uppsrc/CtrlLib/src.tpp/TabCtrl$en-us.tpp +++ b/uppsrc/CtrlLib/src.tpp/TabCtrl_en-us.tpp @@ -1,320 +1,320 @@ -topic "TabCtrl"; -[2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,0#27521748481378242620020725143825:desc] -[0 $$3,0#96390100711032703541132217272105:end] -[H6;0 $$4,0#05600065144404261032431302351956:begin] -[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] -[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] -[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] -[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] -[b42;2 $$9,9#13035079074754324216151401829390:normal] -[{_}%EN-US -[ {{10000@3 [s0;%- [*@(229)4 TabCtrl]]}}&] -[s3; &] -[s1;:TabCtrl`:`:class:%- [@(0.0.255)3 class][3 _][*3 TabCtrl][3 _:_][@(0.0.255)3 public][3 _][*@3;3 C -trl]&] -[s9; This widget can be used to organize the dialog content into -separate pages switched by clicking header tabs.&] -[s0; &] -[s2; -@@image:2155&1443 -(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) -&] -[s0; &] -[s9; Each tab of TabCtrl can but does not need to contain a slave -widget (usually slave dialog pane).&] -[s9; Value of TabCtrl (accessed by GetData() / SetData() or respective -shortcut operators) is the index of active tab.&] -[s9; TabCtrl responds to SetReadOnly / SetEditable method calls by -locking / unlocking itself in currently active tab w.r.t. user -actions.&] -[s3; &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] -[s3;%- &] -[s5;:TabCtrl`:`:WhenSet:%- [_^Callback^ Callback]_[* WhenSet]&] -[s2; This callback is invoked when active tab changes.&] -[s3; &] -[s4;%- &] -[s5;:TabCtrl`:`:Add`(`):%- [_^TabCtrl`:`:Item^ TabCtrl`::Item][@(0.0.255) `&]_[* Add]()&] -[s2; Add a new tab to TabCtrl. Returns a reference to [^`:`:TabCtrl`:`:Item^ TabCtrl`::I -tem] which can be used to setup tab`'s properties.&] -[s3; &] -[s4;%- &] -[s5;:TabCtrl`:`:Add`(const char`*`):%- [_^TabCtrl`:`:Item^ TabCtrl`::Item][@(0.0.255) `&]_ -[* Add]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text])&] -[s2; Same as Add(), but also sets the [%-*@3 text] of tab.&] -[s3; &] -[s4;%- &] -[s5;:TabCtrl`:`:Add`(const Image`&`,const char`*`):%- [_^TabCtrl`:`:Item^ TabCtrl`::Item -][@(0.0.255) `&]_[* Add]([@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 m], -[@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text])&] -[s2; Adds a tab and sets its image and label.&] -[s3; &] -[s4;%- &] -[s5;:TabCtrl`:`:Add`(Ctrl`&`,const char`*`):%- [_^TabCtrl`:`:Item^ TabCtrl`::Item][@(0.0.255) `& -]_[* Add]([_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 slave], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 t -ext])&] -[s2; Adds a tab with the [%-*@3 slave] widget and [%-*@3 text] label.&] -[s3; &] -[s4;%- &] -[s5;:TabCtrl`:`:Add`(Ctrl`&`,const Image`&`,const char`*`):%- [_^TabCtrl`:`:Item^ TabCt -rl`::Item][@(0.0.255) `&]_[* Add]([_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 slave], -[@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 m], [@(0.0.255) const]_[@(0.0.255) ch -ar]_`*[*@3 text])&] -[s2; Adds a tab with the [%-*@3 slave] widget, image and [%-*@3 text].&] -[s3; &] -[s4;%- &] -[s5;:TabCtrl`:`:Insert`(int`):%- [_^TabCtrl`:`:Item^ TabCtrl`::Item][@(0.0.255) `&]_[* Inser -t]([@(0.0.255) int]_[*@3 i])&] -[s2;%- Inserts a new tab to TabCtrl at position [*@3 i]. Returns a -reference to TabCtrl`::Item which can be used to setup tab`'s -properties.&] -[s3; &] -[s4;%- &] -[s5;:TabCtrl`:`:Insert`(int`,const char`*`):%- [_^TabCtrl`:`:Item^ TabCtrl`::Item][@(0.0.255) `& -]_[* Insert]([@(0.0.255) int]_[*@3 i], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text])&] -[s2;%- Inserts a new tab to TabCtrl at position [*@3 i] and also sets -the text of tab to [*@3 text].&] -[s3; &] -[s4;%- &] -[s5;:TabCtrl`:`:Insert`(int`,const Image`&`,const char`*`):%- [_^TabCtrl`:`:Item^ TabCt -rl`::Item][@(0.0.255) `&]_[* Insert]([@(0.0.255) int]_[*@3 i], [@(0.0.255) const]_[_^Image^ Im -age][@(0.0.255) `&]_[*@3 m], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text])&] -[s2;%- Inserts a new tab to TabCtrl at position [*@3 i] and also sets -the text of tab to [*@3 text] and the image to [*@3 m].&] -[s3; &] -[s4;%- &] -[s5;:TabCtrl`:`:Insert`(int`,Ctrl`&`,const char`*`):%- [_^TabCtrl`:`:Item^ TabCtrl`::Ite -m][@(0.0.255) `&]_[* Insert]([@(0.0.255) int]_[*@3 i], [_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 slave -], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text])&] -[s2;%- Inserts a new tab to TabCtrl at position [*@3 i] and also sets -it`'s slave widget to [*@3 slave ]and the text to [*@3 text].&] -[s3; &] -[s4;%- &] -[s5;:TabCtrl`:`:Insert`(int`,Ctrl`&`,const Image`&`,const char`*`):%- [_^TabCtrl`:`:Item^ T -abCtrl`::Item][@(0.0.255) `&]_[* Insert]([@(0.0.255) int]_[*@3 i], [_^Ctrl^ Ctrl][@(0.0.255) `& -]_[*@3 slave], [@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 m], -[@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text])&] -[s2; Inserts a new tab at position [%-*@3 i]. [%-*@3 slave] is the slave -dialog, [%-*@3 m] is image to be shown in tab and [%-*@3 text] is -tab label.&] -[s3; &] -[s4;%- &] -[s5;:TabCtrl`:`:Remove`(int`):%- [@(0.0.255) void]_[* Remove]([@(0.0.255) int]_[*@3 i])&] -[s2; Removes the tab with the index [%-*@3 i].&] -[s3; &] -[s4;%- &] -[s5;:TabCtrl`:`:GetCount`(`)const:%- [@(0.0.255) int]_[* GetCount]()_[@(0.0.255) const]&] -[s2; Returns the number of tabs in TabCtrl.&] -[s3; &] -[s4;%- &] -[s5;:TabCtrl`:`:GetTab`(Point`)const:%- [@(0.0.255) int]_[* GetTab]([_^Point^ Point]_[*@3 p]) -_[@(0.0.255) const]&] -[s2; Returns the index of the tab that can be found at the psoition -[%-*@3 p].&] -[s3; &] -[s4;%- &] -[s5;:TabCtrl`:`:GetItem`(int`):%- [_^TabCtrl`:`:Item^ Item][@(0.0.255) `&]_[* GetItem]([@(0.0.255) i -nt]_[*@3 i])&] -[s2; Returns a reference to tab [%-*@3 i].&] -[s3; &] -[s4;%- &] -[s5;:TabCtrl`:`:GetItem`(int`)const:%- [@(0.0.255) const]_[_^TabCtrl`:`:Item^ Item][@(0.0.255) `& -]_[* GetItem]([@(0.0.255) int]_[*@3 i])_[@(0.0.255) const]&] -[s2; Return a constant reference to tab [%-*@3 i].&] -[s3; &] -[s4;%- &] -[s5;:TabCtrl`:`:Set`(int`):%- [@(0.0.255) void]_[* Set]([@(0.0.255) int]_[*@3 i])&] -[s2; Sets tab [*@3 i ]as active. You can also use SetData (or operator<<`=).&] -[s3; &] -[s4;%- &] -[s5;:TabCtrl`:`:Get`(`)const:%- [@(0.0.255) int]_[* Get]()_[@(0.0.255) const]&] -[s2; Returns the index of active tab. You can also use GetData (or -operator`~).&] -[s3; &] -[s4;%- &] -[s5;:TabCtrl`:`:Find`(const Ctrl`&`)const:%- [@(0.0.255) int]_[* Find]([@(0.0.255) const]_[_^Ctrl^ C -trl][@(0.0.255) `&]_[*@3 slave])_[@(0.0.255) const]&] -[s2; Finds the tab index of [%-*@3 slave]. If [%-*@3 slave] is not present -in TabCtrl, returns `-1.&] -[s3; &] -[s4;%- &] -[s5;:TabCtrl`:`:Set`(Ctrl`&`):%- [@(0.0.255) void]_[* Set]([_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 s -lave])&] -[s2;%- [%% Sets tab with ][*@3 slave][%% widget as active. ]If [*@3 slave] -is not present in TabCtrl, nothing happens.&] -[s3; &] -[s4;%- &] -[s5;:TabCtrl`:`:IsAt`(Ctrl`&`):%- [@(0.0.255) bool]_[* IsAt]([_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 s -lave])&] -[s2; Returns true if [%-*@3 slave] represents the active tab.&] -[s3; &] -[s4;%- &] -[s5;:TabCtrl`:`:Insert`(Ctrl`&`):%- [_^TabCtrl`:`:Item^ TabCtrl`::Item][@(0.0.255) `&]_[* In -sert]([_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 before`_slave])&] -[s5;:TabCtrl`:`:Insert`(Ctrl`&`,const char`*`):%- [_^TabCtrl`:`:Item^ TabCtrl`::Item][@(0.0.255) `& -]_[* Insert]([_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 before`_slave], [@(0.0.255) const]_[@(0.0.255) c -har]_`*[*@3 text])&] -[s5;:TabCtrl`:`:Insert`(Ctrl`&`,const Image`&`,const char`*`):%- [_^TabCtrl`:`:Item^ Ta -bCtrl`::Item][@(0.0.255) `&]_[* Insert]([_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 before`_slave], -[@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 m], [@(0.0.255) const]_[@(0.0.255) ch -ar]_`*[*@3 text])&] -[s5;:TabCtrl`:`:Insert`(Ctrl`&`,Ctrl`&`,const char`*`):%- [_^TabCtrl`:`:Item^ TabCtrl`: -:Item][@(0.0.255) `&]_[* Insert]([_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 before`_slave], -[_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 slave], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text]) -&] -[s5;:TabCtrl`:`:Insert`(Ctrl`&`,Ctrl`&`,const Image`&`,const char`*`):%- [_^TabCtrl`:`:Item^ T -abCtrl`::Item][@(0.0.255) `&]_[* Insert]([_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 before`_slave], -[_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 slave], [@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_ -[*@3 m], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text])&] -[s2; Inserts a new tab before tab that contains [%-*@3 before`_slave]. -If [%-*@3 before`_slave] is not present in TabCtrl, new tab is -appended at the end.&] -[s3; &] -[s4;%- &] -[s5;:TabCtrl`:`:Remove`(Ctrl`&`):%- [@(0.0.255) void]_[* Remove]([_^Ctrl^ Ctrl][@(0.0.255) `& -]_[*@3 slave])&] -[s2;%- [%% Removes a tab with ][*@3 slave][%% . ]If [*@3 slave] is not present -in TabCtrl, nothing happens.&] -[s3; &] -[s4;%- &] -[s5;:TabCtrl`:`:GoNext`(`):%- [@(0.0.255) void]_[* GoNext]()&] -[s2; Sets the next tab as active. If the tab is last, sets the first -one.&] -[s3; &] -[s4;%- &] -[s5;:TabCtrl`:`:GoPrev`(`):%- [@(0.0.255) void]_[* GoPrev]()&] -[s2; Sets the previous tab as active. If the tab is first, sets the -last one.&] -[s3; &] -[s4;%- &] -[s5;:TabCtrl`:`:ComputeSize`(Size`):%- [_^Size^ Size]_[* ComputeSize]([_^Size^ Size]_[*@3 pan -e])&] -[s2; Computes required smallest size of TabCtrl is big enough to -have client area of [%-*@3 pane] size.&] -[s3; &] -[s4;%- &] -[s5;:TabCtrl`:`:Add`(Ctrl`&`):%- [@(0.0.255) void]_[* Add]([_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 c -])&] -[s2; Adds widget [%-*@3 c] to client area. Note that in this case, -widget does not belong to any of tabs and is not affect by switching -them.&] -[s3; &] -[s4;%- &] -[s5;:TabCtrl`:`:NoAccept`(bool`):%- [_^TabCtrl^ TabCtrl][@(0.0.255) `&]_[* NoAccept]([@(0.0.255) b -ool]_[*@3 ac]_`=_[@(0.0.255) true])&] -[s2; If active, TabCtrl Accept method does not call any of slave -widgets Accept.&] -[s3; &] -[s4;%- &] -[s5;:TabCtrl`:`:AcceptCurrent`(bool`):%- [_^TabCtrl^ TabCtrl][@(0.0.255) `&]_[* AcceptCurre -nt]([@(0.0.255) bool]_[*@3 ac]_`=_[@(0.0.255) true])&] -[s2; If AcceptCurrent is active (default is not active), TabCtrl -Accept method accepts only the current slave widget instead of -all of them. Returns `*this.&] -[s3; &] -[s4;%- &] -[s5;:TabCtrl`:`:AcceptAll`(`):%- [_^TabCtrl^ TabCtrl][@(0.0.255) `&]_[* AcceptAll]()&] -[s2; Same as AcceptCurrent(false).&] -[s3; &] -[s4;%- &] -[s5;:TabCtrl`:`:SetStyle`(const TabCtrl`:`:Style`&`):%- [_^TabCtrl^ TabCtrl][@(0.0.255) `& -]_[* SetStyle]([@(0.0.255) const]_[_^TabCtrl`:`:Style^ Style][@(0.0.255) `&]_[*@3 s])&] -[s2; Sets the style of the tab control to TabCtrl`::Style [%-*@3 s].&] -[s3; &] -[s4;%- &] -[s5;:TabCtrl`:`:Reset`(`):%- [@(0.0.255) void]_[* Reset]()&] -[s2; Resets TabCtrl to default settings.&] -[s3; &] -[s4;%- &] -[s5;:TabCtrl`:`:StyleDefault`(`):%- [@(0.0.255) static] [@(0.0.255) const]_[_^TabCtrl`:`:Style^ S -tyle][@(0.0.255) `&]_[* StyleDefault]()&] -[s2; Returns the default style of a tab control.&] -[s3;%- &] -[s0; &] -[s0; &] -[s0;%- &] -[ {{10000@3 [s0;%- [*@(229)4 TabCtrl`::Item]]}}&] -[s3; &] -[s1;:TabCtrl`:`:Item`:`:class:%- [@(0.0.255)3 class][3 _][*3 Item]&] -[s9; This nested class represents properties of individual tabs in -TabCtrl.&] -[s3; &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0; [* Public Method List]]}}&] -[s3;%- &] -[s5;:TabCtrl`:`:Item`:`:Text`(const String`&`):%- [_^TabCtrl`:`:Item^ Item][@(0.0.255) `& -]_[* Text]([@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 `_text])&] -[s2; Sets the label of tab to [%-*@3 `_text]. Returns `*this.&] -[s3; &] -[s4;%- &] -[s5;:TabCtrl`:`:Item`:`:Picture`(PaintRect`):%- [_^TabCtrl`:`:Item^ Item][@(0.0.255) `&]_ -[* Picture]([_^PaintRect^ PaintRect]_[*@3 d])&] -[s2; Sets the [%-*@3 d] as visual content of tab. Returns `*this.&] -[s3; &] -[s4;%- &] -[s5;:TabCtrl`:`:Item`:`:SetImage`(const Image`&`):%- [_^TabCtrl`:`:Item^ Item][@(0.0.255) `& -]_[* SetImage]([@(0.0.255) const]_[_^Image^ UPP`::Image][@(0.0.255) `&]_[*@3 `_im])&] -[s2; Sets the image to appear on the left side of tab`'s label[%- .] -Returns `*this.&] -[s3; &] -[s4;%- &] -[s5;:TabCtrl`:`:Item`:`:SetCtrl`(Ctrl`*`):%- [_^TabCtrl`:`:Item^ Item][@(0.0.255) `&]_[* Se -tCtrl]([_^Ctrl^ Ctrl]_`*[*@3 `_ctrl])&] -[s2; Sets the [%-*@3 ctrl ]to appear inside header tab. Returns `*this.&] -[s3; &] -[s4;%- &] -[s5;:TabCtrl`:`:Item`:`:SetCtrl`(Ctrl`&`):%- [_^TabCtrl`:`:Item^ Item][@(0.0.255) `&]_[* Se -tCtrl]([_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 c])&] -[s2; Same as SetCtrl(`&[%-*@3 c]). Returns `*this.&] -[s3; &] -[s4;%- &] -[s5;:TabCtrl`:`:Item`:`:Slave`(Ctrl`*`):%- [_^TabCtrl`:`:Item^ Item][@(0.0.255) `&]_[* Slav -e]([_^Ctrl^ Ctrl]_`*[*@3 `_slave])&] -[s2; Sets the [%-*@3 slave] widget. Returns `*this.&] -[s3; &] -[s4;%- &] -[s5;:TabCtrl`:`:Item`:`:Key`(dword`):%- [_^TabCtrl`:`:Item^ Item][@(0.0.255) `&]_[* Key]([_^dword^ d -word]_[*@3 `_key])&] -[s2; Sets a [%-*@3 key] that activates tab. Returns `*this.&] -[s3; &] -[s4;%- &] -[s5;:TabCtrl`:`:Item`:`:Enable`(bool`):%- [_^TabCtrl`:`:Item^ Item][@(0.0.255) `&]_[* Enabl -e]([@(0.0.255) bool]_[*@3 `_en]_`=_[@(0.0.255) true])&] -[s2; Enables/disables tab. Returns `*this.&] -[s3; &] -[s4;%- &] -[s5;:TabCtrl`:`:Item`:`:Disable`(`):%- [_^TabCtrl`:`:Item^ Item][@(0.0.255) `&]_[* Disable]( -)&] -[s2; Same as Enable(false).&] -[s3; &] -[s4;%- &] -[s5;:TabCtrl`:`:Item`:`:IsEnabled`(`)const:%- [@(0.0.255) bool]_[* IsEnabled]()_[@(0.0.255) c -onst]&] -[s2; Returns true if tab is enabled.&] -[s3; &] -[s4;%- &] -[s5;:TabCtrl`:`:Item`:`:GetSlave`(`):%- [_^Ctrl^ Ctrl]_`*[* GetSlave]()&] -[s5;:TabCtrl`:`:Item`:`:GetSlave`(`)const:%- [@(0.0.255) const]_[_^Ctrl^ Ctrl]_`*[* GetSlav -e]()_[@(0.0.255) const]&] -[s2; Returns the slave widget.&] -[s3;%- &] -[s4;%- &] -[s5;:TabCtrl`:`:Item`:`:GetCtrl`(`):%- [_^Ctrl^ Ctrl]_`*[* GetCtrl]()&] -[s5;:TabCtrl`:`:Item`:`:GetCtrl`(`)const:%- [@(0.0.255) const]_[_^Ctrl^ Ctrl]_`*[* GetCtrl]( -)_[@(0.0.255) const]&] -[s2; Returns the control that appears inside the header tab.&] -[s3;%- &] -[s4;%- &] -[s5;:Upp`:`:TabCtrl`:`:Item`:`:GetText`(`)const:%- [_^Upp`:`:String^ String]_[* GetText]( -)_[@(0.0.255) const]&] -[s2; Returns the text set by Text.&] -[s3;%- &] -[s4;%- &] -[s5;:Upp`:`:TabCtrl`:`:Item`:`:GetPicture`(`)const:%- [_^Upp`:`:PaintRect^ PaintRect]_[* G -etPicture]()_[@(0.0.255) const]&] -[s2; Returns the PaintRect set by Picture or SetImage.&] -[s3;%- &] +topic "TabCtrl"; +[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,0#27521748481378242620020725143825:desc] +[0 $$3,0#96390100711032703541132217272105:end] +[H6;0 $$4,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] +[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] +[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] +[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] +[b42;2 $$9,9#13035079074754324216151401829390:normal] +[{_}%EN-US +[ {{10000@3 [s0;%- [*@(229)4 TabCtrl]]}}&] +[s3; &] +[s1;:TabCtrl`:`:class:%- [@(0.0.255)3 class][3 _][*3 TabCtrl][3 _:_][@(0.0.255)3 public][3 _][*@3;3 C +trl]&] +[s9; This widget can be used to organize the dialog content into +separate pages switched by clicking header tabs.&] +[s0; &] +[s2; +@@image:2155&1443 +(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) +&] +[s0; &] +[s9; Each tab of TabCtrl can but does not need to contain a slave +widget (usually slave dialog pane).&] +[s9; Value of TabCtrl (accessed by GetData() / SetData() or respective +shortcut operators) is the index of active tab.&] +[s9; TabCtrl responds to SetReadOnly / SetEditable method calls by +locking / unlocking itself in currently active tab w.r.t. user +actions.&] +[s3; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] +[s3;%- &] +[s5;:TabCtrl`:`:WhenSet:%- [_^Callback^ Callback]_[* WhenSet]&] +[s2; This callback is invoked when active tab changes.&] +[s3; &] +[s4;%- &] +[s5;:TabCtrl`:`:Add`(`):%- [_^TabCtrl`:`:Item^ TabCtrl`::Item][@(0.0.255) `&]_[* Add]()&] +[s2; Add a new tab to TabCtrl. Returns a reference to [^`:`:TabCtrl`:`:Item^ TabCtrl`::I +tem] which can be used to setup tab`'s properties.&] +[s3; &] +[s4;%- &] +[s5;:TabCtrl`:`:Add`(const char`*`):%- [_^TabCtrl`:`:Item^ TabCtrl`::Item][@(0.0.255) `&]_ +[* Add]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text])&] +[s2; Same as Add(), but also sets the [%-*@3 text] of tab.&] +[s3; &] +[s4;%- &] +[s5;:TabCtrl`:`:Add`(const Image`&`,const char`*`):%- [_^TabCtrl`:`:Item^ TabCtrl`::Item +][@(0.0.255) `&]_[* Add]([@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 m], +[@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text])&] +[s2; Adds a tab and sets its image and label.&] +[s3; &] +[s4;%- &] +[s5;:TabCtrl`:`:Add`(Ctrl`&`,const char`*`):%- [_^TabCtrl`:`:Item^ TabCtrl`::Item][@(0.0.255) `& +]_[* Add]([_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 slave], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 t +ext])&] +[s2; Adds a tab with the [%-*@3 slave] widget and [%-*@3 text] label.&] +[s3; &] +[s4;%- &] +[s5;:TabCtrl`:`:Add`(Ctrl`&`,const Image`&`,const char`*`):%- [_^TabCtrl`:`:Item^ TabCt +rl`::Item][@(0.0.255) `&]_[* Add]([_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 slave], +[@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 m], [@(0.0.255) const]_[@(0.0.255) ch +ar]_`*[*@3 text])&] +[s2; Adds a tab with the [%-*@3 slave] widget, image and [%-*@3 text].&] +[s3; &] +[s4;%- &] +[s5;:TabCtrl`:`:Insert`(int`):%- [_^TabCtrl`:`:Item^ TabCtrl`::Item][@(0.0.255) `&]_[* Inser +t]([@(0.0.255) int]_[*@3 i])&] +[s2;%- Inserts a new tab to TabCtrl at position [*@3 i]. Returns a +reference to TabCtrl`::Item which can be used to setup tab`'s +properties.&] +[s3; &] +[s4;%- &] +[s5;:TabCtrl`:`:Insert`(int`,const char`*`):%- [_^TabCtrl`:`:Item^ TabCtrl`::Item][@(0.0.255) `& +]_[* Insert]([@(0.0.255) int]_[*@3 i], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text])&] +[s2;%- Inserts a new tab to TabCtrl at position [*@3 i] and also sets +the text of tab to [*@3 text].&] +[s3; &] +[s4;%- &] +[s5;:TabCtrl`:`:Insert`(int`,const Image`&`,const char`*`):%- [_^TabCtrl`:`:Item^ TabCt +rl`::Item][@(0.0.255) `&]_[* Insert]([@(0.0.255) int]_[*@3 i], [@(0.0.255) const]_[_^Image^ Im +age][@(0.0.255) `&]_[*@3 m], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text])&] +[s2;%- Inserts a new tab to TabCtrl at position [*@3 i] and also sets +the text of tab to [*@3 text] and the image to [*@3 m].&] +[s3; &] +[s4;%- &] +[s5;:TabCtrl`:`:Insert`(int`,Ctrl`&`,const char`*`):%- [_^TabCtrl`:`:Item^ TabCtrl`::Ite +m][@(0.0.255) `&]_[* Insert]([@(0.0.255) int]_[*@3 i], [_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 slave +], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text])&] +[s2;%- Inserts a new tab to TabCtrl at position [*@3 i] and also sets +it`'s slave widget to [*@3 slave ]and the text to [*@3 text].&] +[s3; &] +[s4;%- &] +[s5;:TabCtrl`:`:Insert`(int`,Ctrl`&`,const Image`&`,const char`*`):%- [_^TabCtrl`:`:Item^ T +abCtrl`::Item][@(0.0.255) `&]_[* Insert]([@(0.0.255) int]_[*@3 i], [_^Ctrl^ Ctrl][@(0.0.255) `& +]_[*@3 slave], [@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 m], +[@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text])&] +[s2; Inserts a new tab at position [%-*@3 i]. [%-*@3 slave] is the slave +dialog, [%-*@3 m] is image to be shown in tab and [%-*@3 text] is +tab label.&] +[s3; &] +[s4;%- &] +[s5;:TabCtrl`:`:Remove`(int`):%- [@(0.0.255) void]_[* Remove]([@(0.0.255) int]_[*@3 i])&] +[s2; Removes the tab with the index [%-*@3 i].&] +[s3; &] +[s4;%- &] +[s5;:TabCtrl`:`:GetCount`(`)const:%- [@(0.0.255) int]_[* GetCount]()_[@(0.0.255) const]&] +[s2; Returns the number of tabs in TabCtrl.&] +[s3; &] +[s4;%- &] +[s5;:TabCtrl`:`:GetTab`(Point`)const:%- [@(0.0.255) int]_[* GetTab]([_^Point^ Point]_[*@3 p]) +_[@(0.0.255) const]&] +[s2; Returns the index of the tab that can be found at the psoition +[%-*@3 p].&] +[s3; &] +[s4;%- &] +[s5;:TabCtrl`:`:GetItem`(int`):%- [_^TabCtrl`:`:Item^ Item][@(0.0.255) `&]_[* GetItem]([@(0.0.255) i +nt]_[*@3 i])&] +[s2; Returns a reference to tab [%-*@3 i].&] +[s3; &] +[s4;%- &] +[s5;:TabCtrl`:`:GetItem`(int`)const:%- [@(0.0.255) const]_[_^TabCtrl`:`:Item^ Item][@(0.0.255) `& +]_[* GetItem]([@(0.0.255) int]_[*@3 i])_[@(0.0.255) const]&] +[s2; Return a constant reference to tab [%-*@3 i].&] +[s3; &] +[s4;%- &] +[s5;:TabCtrl`:`:Set`(int`):%- [@(0.0.255) void]_[* Set]([@(0.0.255) int]_[*@3 i])&] +[s2; Sets tab [*@3 i ]as active. You can also use SetData (or operator<<`=).&] +[s3; &] +[s4;%- &] +[s5;:TabCtrl`:`:Get`(`)const:%- [@(0.0.255) int]_[* Get]()_[@(0.0.255) const]&] +[s2; Returns the index of active tab. You can also use GetData (or +operator`~).&] +[s3; &] +[s4;%- &] +[s5;:TabCtrl`:`:Find`(const Ctrl`&`)const:%- [@(0.0.255) int]_[* Find]([@(0.0.255) const]_[_^Ctrl^ C +trl][@(0.0.255) `&]_[*@3 slave])_[@(0.0.255) const]&] +[s2; Finds the tab index of [%-*@3 slave]. If [%-*@3 slave] is not present +in TabCtrl, returns `-1.&] +[s3; &] +[s4;%- &] +[s5;:TabCtrl`:`:Set`(Ctrl`&`):%- [@(0.0.255) void]_[* Set]([_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 s +lave])&] +[s2;%- [%% Sets tab with ][*@3 slave][%% widget as active. ]If [*@3 slave] +is not present in TabCtrl, nothing happens.&] +[s3; &] +[s4;%- &] +[s5;:TabCtrl`:`:IsAt`(Ctrl`&`):%- [@(0.0.255) bool]_[* IsAt]([_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 s +lave])&] +[s2; Returns true if [%-*@3 slave] represents the active tab.&] +[s3; &] +[s4;%- &] +[s5;:TabCtrl`:`:Insert`(Ctrl`&`):%- [_^TabCtrl`:`:Item^ TabCtrl`::Item][@(0.0.255) `&]_[* In +sert]([_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 before`_slave])&] +[s5;:TabCtrl`:`:Insert`(Ctrl`&`,const char`*`):%- [_^TabCtrl`:`:Item^ TabCtrl`::Item][@(0.0.255) `& +]_[* Insert]([_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 before`_slave], [@(0.0.255) const]_[@(0.0.255) c +har]_`*[*@3 text])&] +[s5;:TabCtrl`:`:Insert`(Ctrl`&`,const Image`&`,const char`*`):%- [_^TabCtrl`:`:Item^ Ta +bCtrl`::Item][@(0.0.255) `&]_[* Insert]([_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 before`_slave], +[@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 m], [@(0.0.255) const]_[@(0.0.255) ch +ar]_`*[*@3 text])&] +[s5;:TabCtrl`:`:Insert`(Ctrl`&`,Ctrl`&`,const char`*`):%- [_^TabCtrl`:`:Item^ TabCtrl`: +:Item][@(0.0.255) `&]_[* Insert]([_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 before`_slave], +[_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 slave], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text]) +&] +[s5;:TabCtrl`:`:Insert`(Ctrl`&`,Ctrl`&`,const Image`&`,const char`*`):%- [_^TabCtrl`:`:Item^ T +abCtrl`::Item][@(0.0.255) `&]_[* Insert]([_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 before`_slave], +[_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 slave], [@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_ +[*@3 m], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text])&] +[s2; Inserts a new tab before tab that contains [%-*@3 before`_slave]. +If [%-*@3 before`_slave] is not present in TabCtrl, new tab is +appended at the end.&] +[s3; &] +[s4;%- &] +[s5;:TabCtrl`:`:Remove`(Ctrl`&`):%- [@(0.0.255) void]_[* Remove]([_^Ctrl^ Ctrl][@(0.0.255) `& +]_[*@3 slave])&] +[s2;%- [%% Removes a tab with ][*@3 slave][%% . ]If [*@3 slave] is not present +in TabCtrl, nothing happens.&] +[s3; &] +[s4;%- &] +[s5;:TabCtrl`:`:GoNext`(`):%- [@(0.0.255) void]_[* GoNext]()&] +[s2; Sets the next tab as active. If the tab is last, sets the first +one.&] +[s3; &] +[s4;%- &] +[s5;:TabCtrl`:`:GoPrev`(`):%- [@(0.0.255) void]_[* GoPrev]()&] +[s2; Sets the previous tab as active. If the tab is first, sets the +last one.&] +[s3; &] +[s4;%- &] +[s5;:TabCtrl`:`:ComputeSize`(Size`):%- [_^Size^ Size]_[* ComputeSize]([_^Size^ Size]_[*@3 pan +e])&] +[s2; Computes required smallest size of TabCtrl is big enough to +have client area of [%-*@3 pane] size.&] +[s3; &] +[s4;%- &] +[s5;:TabCtrl`:`:Add`(Ctrl`&`):%- [@(0.0.255) void]_[* Add]([_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 c +])&] +[s2; Adds widget [%-*@3 c] to client area. Note that in this case, +widget does not belong to any of tabs and is not affect by switching +them.&] +[s3; &] +[s4;%- &] +[s5;:TabCtrl`:`:NoAccept`(bool`):%- [_^TabCtrl^ TabCtrl][@(0.0.255) `&]_[* NoAccept]([@(0.0.255) b +ool]_[*@3 ac]_`=_[@(0.0.255) true])&] +[s2; If active, TabCtrl Accept method does not call any of slave +widgets Accept.&] +[s3; &] +[s4;%- &] +[s5;:TabCtrl`:`:AcceptCurrent`(bool`):%- [_^TabCtrl^ TabCtrl][@(0.0.255) `&]_[* AcceptCurre +nt]([@(0.0.255) bool]_[*@3 ac]_`=_[@(0.0.255) true])&] +[s2; If AcceptCurrent is active (default is not active), TabCtrl +Accept method accepts only the current slave widget instead of +all of them. Returns `*this.&] +[s3; &] +[s4;%- &] +[s5;:TabCtrl`:`:AcceptAll`(`):%- [_^TabCtrl^ TabCtrl][@(0.0.255) `&]_[* AcceptAll]()&] +[s2; Same as AcceptCurrent(false).&] +[s3; &] +[s4;%- &] +[s5;:TabCtrl`:`:SetStyle`(const TabCtrl`:`:Style`&`):%- [_^TabCtrl^ TabCtrl][@(0.0.255) `& +]_[* SetStyle]([@(0.0.255) const]_[_^TabCtrl`:`:Style^ Style][@(0.0.255) `&]_[*@3 s])&] +[s2; Sets the style of the tab control to TabCtrl`::Style [%-*@3 s].&] +[s3; &] +[s4;%- &] +[s5;:TabCtrl`:`:Reset`(`):%- [@(0.0.255) void]_[* Reset]()&] +[s2; Resets TabCtrl to default settings.&] +[s3; &] +[s4;%- &] +[s5;:TabCtrl`:`:StyleDefault`(`):%- [@(0.0.255) static] [@(0.0.255) const]_[_^TabCtrl`:`:Style^ S +tyle][@(0.0.255) `&]_[* StyleDefault]()&] +[s2; Returns the default style of a tab control.&] +[s3;%- &] +[s0; &] +[s0; &] +[s0;%- &] +[ {{10000@3 [s0;%- [*@(229)4 TabCtrl`::Item]]}}&] +[s3; &] +[s1;:TabCtrl`:`:Item`:`:class:%- [@(0.0.255)3 class][3 _][*3 Item]&] +[s9; This nested class represents properties of individual tabs in +TabCtrl.&] +[s3; &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0; [* Public Method List]]}}&] +[s3;%- &] +[s5;:TabCtrl`:`:Item`:`:Text`(const String`&`):%- [_^TabCtrl`:`:Item^ Item][@(0.0.255) `& +]_[* Text]([@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 `_text])&] +[s2; Sets the label of tab to [%-*@3 `_text]. Returns `*this.&] +[s3; &] +[s4;%- &] +[s5;:TabCtrl`:`:Item`:`:Picture`(PaintRect`):%- [_^TabCtrl`:`:Item^ Item][@(0.0.255) `&]_ +[* Picture]([_^PaintRect^ PaintRect]_[*@3 d])&] +[s2; Sets the [%-*@3 d] as visual content of tab. Returns `*this.&] +[s3; &] +[s4;%- &] +[s5;:TabCtrl`:`:Item`:`:SetImage`(const Image`&`):%- [_^TabCtrl`:`:Item^ Item][@(0.0.255) `& +]_[* SetImage]([@(0.0.255) const]_[_^Image^ UPP`::Image][@(0.0.255) `&]_[*@3 `_im])&] +[s2; Sets the image to appear on the left side of tab`'s label[%- .] +Returns `*this.&] +[s3; &] +[s4;%- &] +[s5;:TabCtrl`:`:Item`:`:SetCtrl`(Ctrl`*`):%- [_^TabCtrl`:`:Item^ Item][@(0.0.255) `&]_[* Se +tCtrl]([_^Ctrl^ Ctrl]_`*[*@3 `_ctrl])&] +[s2; Sets the [%-*@3 ctrl ]to appear inside header tab. Returns `*this.&] +[s3; &] +[s4;%- &] +[s5;:TabCtrl`:`:Item`:`:SetCtrl`(Ctrl`&`):%- [_^TabCtrl`:`:Item^ Item][@(0.0.255) `&]_[* Se +tCtrl]([_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 c])&] +[s2; Same as SetCtrl(`&[%-*@3 c]). Returns `*this.&] +[s3; &] +[s4;%- &] +[s5;:TabCtrl`:`:Item`:`:Slave`(Ctrl`*`):%- [_^TabCtrl`:`:Item^ Item][@(0.0.255) `&]_[* Slav +e]([_^Ctrl^ Ctrl]_`*[*@3 `_slave])&] +[s2; Sets the [%-*@3 slave] widget. Returns `*this.&] +[s3; &] +[s4;%- &] +[s5;:TabCtrl`:`:Item`:`:Key`(dword`):%- [_^TabCtrl`:`:Item^ Item][@(0.0.255) `&]_[* Key]([_^dword^ d +word]_[*@3 `_key])&] +[s2; Sets a [%-*@3 key] that activates tab. Returns `*this.&] +[s3; &] +[s4;%- &] +[s5;:TabCtrl`:`:Item`:`:Enable`(bool`):%- [_^TabCtrl`:`:Item^ Item][@(0.0.255) `&]_[* Enabl +e]([@(0.0.255) bool]_[*@3 `_en]_`=_[@(0.0.255) true])&] +[s2; Enables/disables tab. Returns `*this.&] +[s3; &] +[s4;%- &] +[s5;:TabCtrl`:`:Item`:`:Disable`(`):%- [_^TabCtrl`:`:Item^ Item][@(0.0.255) `&]_[* Disable]( +)&] +[s2; Same as Enable(false).&] +[s3; &] +[s4;%- &] +[s5;:TabCtrl`:`:Item`:`:IsEnabled`(`)const:%- [@(0.0.255) bool]_[* IsEnabled]()_[@(0.0.255) c +onst]&] +[s2; Returns true if tab is enabled.&] +[s3; &] +[s4;%- &] +[s5;:TabCtrl`:`:Item`:`:GetSlave`(`):%- [_^Ctrl^ Ctrl]_`*[* GetSlave]()&] +[s5;:TabCtrl`:`:Item`:`:GetSlave`(`)const:%- [@(0.0.255) const]_[_^Ctrl^ Ctrl]_`*[* GetSlav +e]()_[@(0.0.255) const]&] +[s2; Returns the slave widget.&] +[s3;%- &] +[s4;%- &] +[s5;:TabCtrl`:`:Item`:`:GetCtrl`(`):%- [_^Ctrl^ Ctrl]_`*[* GetCtrl]()&] +[s5;:TabCtrl`:`:Item`:`:GetCtrl`(`)const:%- [@(0.0.255) const]_[_^Ctrl^ Ctrl]_`*[* GetCtrl]( +)_[@(0.0.255) const]&] +[s2; Returns the control that appears inside the header tab.&] +[s3;%- &] +[s4;%- &] +[s5;:Upp`:`:TabCtrl`:`:Item`:`:GetText`(`)const:%- [_^Upp`:`:String^ String]_[* GetText]( +)_[@(0.0.255) const]&] +[s2; Returns the text set by Text.&] +[s3;%- &] +[s4;%- &] +[s5;:Upp`:`:TabCtrl`:`:Item`:`:GetPicture`(`)const:%- [_^Upp`:`:PaintRect^ PaintRect]_[* G +etPicture]()_[@(0.0.255) const]&] +[s2; Returns the PaintRect set by Picture or SetImage.&] +[s3;%- &] [s0; ]] \ No newline at end of file diff --git a/uppsrc/CtrlLib/src.tpp/TabDlg$en-us.tpp b/uppsrc/CtrlLib/src.tpp/TabDlg_en-us.tpp similarity index 98% rename from uppsrc/CtrlLib/src.tpp/TabDlg$en-us.tpp rename to uppsrc/CtrlLib/src.tpp/TabDlg_en-us.tpp index 9f3db9a9b..e388f221a 100644 --- a/uppsrc/CtrlLib/src.tpp/TabDlg$en-us.tpp +++ b/uppsrc/CtrlLib/src.tpp/TabDlg_en-us.tpp @@ -1,69 +1,69 @@ -topic "TabDlg"; -[2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,0#27521748481378242620020725143825:desc] -[0 $$3,0#96390100711032703541132217272105:end] -[H6;0 $$4,0#05600065144404261032431302351956:begin] -[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] -[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] -[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] -[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] -[b42;2 $$9,9#13035079074754324216151401829390:normal] -[{_} -[ {{10000@3 [s0; [*@(229)4 TabDlg]]}}&] -[s3; &] -[s1;:TabDlg`:`:class: [@(0.0.255)3 class][3 _][*3 TabDlg][3 _:_][@(0.0.255)3 public][3 _][*@3;3 TopW -indow]&] -[s9;%% TabDlg is a class intended to simplify creation of standard -multi`-tabbed dialogs `- dialogs with at most 4 predefined buttons -and TabCtrl.&] -[s3; &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0;%% [* Public Field List]]}}&] -[s3; &] -[s5;:TabDlg`:`:tabctrl: [_^TabCtrl^ TabCtrl]_[* tabctrl]&] -[s2;%% TabCtrl used in dialog. Presented in interface to allow modification -of properties.&] -[s3; &] -[s4; &] -[s5;:TabDlg`:`:ok: [_^Button^ Button]_[* ok]&] -[s5;:TabDlg`:`:cancel: [_^Button^ Button]_[* cancel]&] -[s5;:TabDlg`:`:exit: [_^Button^ Button]_[* exit]&] -[s5;:TabDlg`:`:apply: [_^Button^ Button]_[* apply]&] -[s2;%% Dialog buttons. Presented in interface to allow modification -of properties.&] -[s3; &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0;%% [* Public Method List]]}}&] -[s3; &] -[s5;:TabDlg`:`:Add`(T`&`,const char`*`): [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 T][@(0.0.255) > -]_[_^TabCtrl`:`:Item^ TabCtrl`::Item][@(0.0.255) `&]_[* Add]([*@4 T][@(0.0.255) `&]_[*@3 tab], - [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text])&] -[s5;:TabDlg`:`:Add`(T`&`,const Image`&`,const char`*`): [@(0.0.255) template]_<[@(0.0.255) c -lass]_[*@4 T][@(0.0.255) >]_[_^TabCtrl`:`:Item^ TabCtrl`::Item][@(0.0.255) `&]_[* Add]([*@4 T][@(0.0.255) `& -]_[*@3 tab], [@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img], -[@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 name])&] -[s2;%% Adds [*@3 tab] dialog pane to the TabCtrl tab named [*@3 text], -optionally with [%-*@3 img]. The size of dialog window is determined -by calling GetRect() for individual [*@3 tab]s (note that CtrlLayout -functions set this to the designed size).&] -[s3; &] -[s4; &] -[s5;:TabDlg`:`:operator`(`)`(T`&`,const char`*`): [@(0.0.255) template]_<[@(0.0.255) clas -s]_[*@4 T][@(0.0.255) >]_[_^TabDlg^ TabDlg][@(0.0.255) `&]_[* operator()]([*@4 T][@(0.0.255) `& -]_[*@3 tab], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text])&] -[s5;:TabDlg`:`:operator`(`)`(T`&`,const Image`&`,const char`*`): [@(0.0.255) template]_ -<[@(0.0.255) class]_[*@4 T][@(0.0.255) >]_[_^TabDlg^ TabDlg][@(0.0.255) `&]_[* operator()]([*@4 T -][@(0.0.255) `&]_[*@3 tab], [@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img], -[@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 txt])&] -[s2; Operator versions of [* Add] for more compact code.&] -[s3; &] -[s4; &] -[s5;:TabDlg`:`:OK`(`): [_^TabDlg^ TabDlg][@(0.0.255) `&]_[* OK]()&] -[s5;:TabDlg`:`:Cancel`(`): [_^TabDlg^ TabDlg][@(0.0.255) `&]_[* Cancel]()&] -[s5;:TabDlg`:`:OKCancel`(`): [_^TabDlg^ TabDlg][@(0.0.255) `&]_[* OKCancel]()&] -[s5;:TabDlg`:`:Exit`(`): [_^TabDlg^ TabDlg][@(0.0.255) `&]_[* Exit]()&] -[s5;:TabDlg`:`:Apply`(`): [_^TabDlg^ TabDlg][@(0.0.255) `&]_[* Apply]()&] -[s2; These methods add buttons to dialog.&] -[s3; &] +topic "TabDlg"; +[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,0#27521748481378242620020725143825:desc] +[0 $$3,0#96390100711032703541132217272105:end] +[H6;0 $$4,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] +[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] +[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] +[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] +[b42;2 $$9,9#13035079074754324216151401829390:normal] +[{_} +[ {{10000@3 [s0; [*@(229)4 TabDlg]]}}&] +[s3; &] +[s1;:TabDlg`:`:class: [@(0.0.255)3 class][3 _][*3 TabDlg][3 _:_][@(0.0.255)3 public][3 _][*@3;3 TopW +indow]&] +[s9;%% TabDlg is a class intended to simplify creation of standard +multi`-tabbed dialogs `- dialogs with at most 4 predefined buttons +and TabCtrl.&] +[s3; &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0;%% [* Public Field List]]}}&] +[s3; &] +[s5;:TabDlg`:`:tabctrl: [_^TabCtrl^ TabCtrl]_[* tabctrl]&] +[s2;%% TabCtrl used in dialog. Presented in interface to allow modification +of properties.&] +[s3; &] +[s4; &] +[s5;:TabDlg`:`:ok: [_^Button^ Button]_[* ok]&] +[s5;:TabDlg`:`:cancel: [_^Button^ Button]_[* cancel]&] +[s5;:TabDlg`:`:exit: [_^Button^ Button]_[* exit]&] +[s5;:TabDlg`:`:apply: [_^Button^ Button]_[* apply]&] +[s2;%% Dialog buttons. Presented in interface to allow modification +of properties.&] +[s3; &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0;%% [* Public Method List]]}}&] +[s3; &] +[s5;:TabDlg`:`:Add`(T`&`,const char`*`): [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 T][@(0.0.255) > +]_[_^TabCtrl`:`:Item^ TabCtrl`::Item][@(0.0.255) `&]_[* Add]([*@4 T][@(0.0.255) `&]_[*@3 tab], + [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text])&] +[s5;:TabDlg`:`:Add`(T`&`,const Image`&`,const char`*`): [@(0.0.255) template]_<[@(0.0.255) c +lass]_[*@4 T][@(0.0.255) >]_[_^TabCtrl`:`:Item^ TabCtrl`::Item][@(0.0.255) `&]_[* Add]([*@4 T][@(0.0.255) `& +]_[*@3 tab], [@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img], +[@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 name])&] +[s2;%% Adds [*@3 tab] dialog pane to the TabCtrl tab named [*@3 text], +optionally with [%-*@3 img]. The size of dialog window is determined +by calling GetRect() for individual [*@3 tab]s (note that CtrlLayout +functions set this to the designed size).&] +[s3; &] +[s4; &] +[s5;:TabDlg`:`:operator`(`)`(T`&`,const char`*`): [@(0.0.255) template]_<[@(0.0.255) clas +s]_[*@4 T][@(0.0.255) >]_[_^TabDlg^ TabDlg][@(0.0.255) `&]_[* operator()]([*@4 T][@(0.0.255) `& +]_[*@3 tab], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text])&] +[s5;:TabDlg`:`:operator`(`)`(T`&`,const Image`&`,const char`*`): [@(0.0.255) template]_ +<[@(0.0.255) class]_[*@4 T][@(0.0.255) >]_[_^TabDlg^ TabDlg][@(0.0.255) `&]_[* operator()]([*@4 T +][@(0.0.255) `&]_[*@3 tab], [@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img], +[@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 txt])&] +[s2; Operator versions of [* Add] for more compact code.&] +[s3; &] +[s4; &] +[s5;:TabDlg`:`:OK`(`): [_^TabDlg^ TabDlg][@(0.0.255) `&]_[* OK]()&] +[s5;:TabDlg`:`:Cancel`(`): [_^TabDlg^ TabDlg][@(0.0.255) `&]_[* Cancel]()&] +[s5;:TabDlg`:`:OKCancel`(`): [_^TabDlg^ TabDlg][@(0.0.255) `&]_[* OKCancel]()&] +[s5;:TabDlg`:`:Exit`(`): [_^TabDlg^ TabDlg][@(0.0.255) `&]_[* Exit]()&] +[s5;:TabDlg`:`:Apply`(`): [_^TabDlg^ TabDlg][@(0.0.255) `&]_[* Apply]()&] +[s2; These methods add buttons to dialog.&] +[s3; &] [s0; ] \ No newline at end of file diff --git a/uppsrc/CtrlLib/src.tpp/TextCtrl$en-us.tpp b/uppsrc/CtrlLib/src.tpp/TextCtrl_en-us.tpp similarity index 97% rename from uppsrc/CtrlLib/src.tpp/TextCtrl$en-us.tpp rename to uppsrc/CtrlLib/src.tpp/TextCtrl_en-us.tpp index 857031e70..979f211de 100644 --- a/uppsrc/CtrlLib/src.tpp/TextCtrl$en-us.tpp +++ b/uppsrc/CtrlLib/src.tpp/TextCtrl_en-us.tpp @@ -1,519 +1,519 @@ -topic "TextCtrl"; -[2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,0#27521748481378242620020725143825:desc] -[0 $$3,0#96390100711032703541132217272105:end] -[H6;0 $$4,0#05600065144404261032431302351956:begin] -[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] -[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] -[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] -[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] -[b42;2 $$9,9#13035079074754324216151401829390:normal] -[{_} -[ {{10000@3 [s0; [*@(229)4 TextCtrl]]}}&] -[s3; &] -[s1;:TextCtrl`:`:class: [@(0.0.255)3 class][3 _][*3 TextCtrl][3 _:_][@(0.0.255)3 public][3 _][*@3;3 C -trl][3 , ][@(0.0.255)3 protected][3 _][*@3;3 TextArrayOps]&] -[s9;%% A base class that implements operations common for [^`:`:DocEdit^ DocEdit] -(raw text editor where lines `- LF delimited sections `- are -displayed as paragraphs `- wrapped when they do not fit the width) -and [^`:`:LineEdit^ LineEdit].(where lines are simply lines and -are never wrapped). TextCtrl works in UNICODE, but is able performing -conversions to any of predefined charsets. The Value of TextCtrl -is contained text; setting it is the same as using Set method, -reading is equivalent to Get method.&] -[s3;%% &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0;%% [* Protected Method List]]}}&] -[s3; &] -[s5;:TextCtrl`:`:SelectionChanged`(`): [@(0.0.255) virtual] [@(0.0.255) void]_[* SelectionC -hanged]()&] -[s2;%% Selection anchor or cursor has changed. (called even when -there is no selection, just cursor). If you override this, you -should call base`-class version in the body.&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:ClearLines`(`): [@(0.0.255) virtual] [@(0.0.255) void]_[* ClearLines]()&] -[s2;%% The content was removed (e.g. Clear or Load operations). If -you override this, you should call base`-class version in the -body.&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:InsertLines`(int`,int`): [@(0.0.255) virtual] [@(0.0.255) void]_[* InsertL -ines]([@(0.0.255) int]_[*@3 line], [@(0.0.255) int]_[*@3 count])&] -[s2;%% [%-*@3 count] lines at [%-*@3 line] position were inserted. If -you override this, you should call base`-class version in the -body.&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:RemoveLines`(int`,int`): [@(0.0.255) virtual] [@(0.0.255) void]_[* RemoveL -ines]([@(0.0.255) int]_[*@3 line], [@(0.0.255) int]_[*@3 count])&] -[s2;%% [%-*@3 count] lines at [%-*@3 line] position were removed. If -you override this, you should call base`-class version in the -body.&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:PreInsert`(int`,const WString`&`): [@(0.0.255) virtual] -[@(0.0.255) void]_[* PreInsert]([@(0.0.255) int]_[*@3 pos], [@(0.0.255) const]_[_^WString^ WS -tring][@(0.0.255) `&]_[*@3 text])&] -[s2;%% Called before any [%-*@3 text] gets inserted at [%-*@3 pos.] If -you override this, you should call base`-class version in the -body.&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:PostInsert`(int`,const WString`&`): [@(0.0.255) virtual] -[@(0.0.255) void]_[* PostInsert]([@(0.0.255) int]_[*@3 pos], [@(0.0.255) const]_[_^WString^ W -String][@(0.0.255) `&]_[*@3 text])&] -[s2;%% Called after [%-*@3 text] was inserted at [%-*@3 pos.] If you -override this, you should call base`-class version in the body.&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:PreRemove`(int`,int`): [@(0.0.255) virtual] [@(0.0.255) void]_[* PreRemove -]([@(0.0.255) int]_[*@3 pos], [@(0.0.255) int]_[*@3 size])&] -[s2;%% Called before [%-*@3 size] characters get removed from the [%-*@3 pos]. -If you override this, you should call base`-class version in -the body.&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:PostRemove`(int`,int`): [@(0.0.255) virtual] [@(0.0.255) void]_[* PostRemo -ve]([@(0.0.255) int]_[*@3 pos], [@(0.0.255) int]_[*@3 size])&] -[s2;%% Called after [%-*@3 size] characters was removed from the [%-*@3 pos]. - If you override this, you should call base`-class version in -the body.&] -[s3;%% &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0;%% [* Public Method List]]}}&] -[s3; &] -[s5;:TextCtrl`:`:RefreshLine`(int`): [@(0.0.255) virtual] [@(0.0.255) void]_[* RefreshLine]( -[@(0.0.255) int]_[*@3 i])&] -[s2;%% This virtual method is called by TextCtrl when the content -of line [%-*@3 i] is changed. If you override this, you should -call base`-class version in the body.&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:WhenBar: [_^Callback1^ Callback1][@(0.0.255) <]Bar[@(0.0.255) `&>]_[* WhenBa -r]&] -[s2;%% This callback is invoked when user right`-clicks the widget -and should specify local menu. It is initialized by the constructor -to the StdBar method. &] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:WhenState: [_^Callback^ Callback]_[* WhenState]&] -[s2;%% This callback is invoked when the status of widget changes -from not`-modified to modified (`"dirty`") or back.&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:WhenSel: [_^Callback^ Callback]_[* WhenSel]&] -[s2;%% Called when cursor or selection changes.&] -[s3; &] -[s4; &] -[s5;:TextCtrl`:`:CachePos`(int`): [@(0.0.255) void]_[* CachePos]([@(0.0.255) int]_[*@3 pos])&] -[s2;%% This is specific optimization hint to the widget saying that -following operations will be performed near [%-*@3 pos]. Unlikely -to be used in the client code.&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:CacheLinePos`(int`): [@(0.0.255) void]_[* CacheLinePos]([@(0.0.255) int]_[*@3 l -inei])&] -[s2;%% This is specific optimization hint to the widget saying that -following operations will be performed near line [%-*@3 linei]. -Unlikely to be used in the client code.&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:Load`(Stream`&`,byte`): [@(0.0.255) int]_[* Load]([_^Stream^ Stream][@(0.0.255) `& -]_[*@3 s], [_^byte^ byte]_[*@3 charset]_`=_CHARSET`_DEFAULT)&] -[s2;%% Loads the text from the stream with defined [%-*@3 charset]. -Function returns the detected line endings mode `- LE`_CRLF, -LE`_LF or LE`_DEFAULT if there were no line endings in the file. -If file is bigger then the limit set by MaxLength, editor is -put into `'truncated`' and read`-only mode.&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:IsTruncated`(`)const: [@(0.0.255) bool]_[* IsTruncated]()_[@(0.0.255) cons -t]&] -[s2;%% Indicates that last Load had to truncate the size because -of MaxLength limit.&] -[s3; &] -[s4; &] -[s5;:TextCtrl`:`:Save`(Stream`&`,byte`,int`)const: [@(0.0.255) void]_[* Save]([_^Stream^ St -ream][@(0.0.255) `&]_[*@3 s], [_^byte^ byte]_[*@3 charset]_`=_CHARSET`_DEFAULT, -[@(0.0.255) int]_[*@3 line`_endings]_`=_LE`_DEFAULT)_[@(0.0.255) const]&] -[s2;%% Saves the text to the stream with defined [%-*@3 charset]. Characters -that cannot be represented in suggested [%-*@3 charset] are saved -as `'?`'. [%-*@3 line`_endings] parameter sets the line ending -mode. LE`_DEFAULT uses platform specific line endings (CRLF in -Windows, LF in POSIX), LE`_CRLF sets CRLF line endings, LE`_LF -sets LF line endings). If IsTruncated is true, Save is blocked.&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:GetInvalidCharPos`(byte`)const: [@(0.0.255) int]_[* GetInvalidCharPos]([_^byte^ b -yte]_[*@3 charset]_`=_CHARSET`_DEFAULT)_[@(0.0.255) const]&] -[s2;%% Returns the position of the first character that cannot be -represented [%-*@3 charset]. If there is none, returns negative -value.&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:CheckCharset`(byte`)const: [@(0.0.255) bool]_[* CheckCharset]([_^byte^ byt -e]_[*@3 charset]_`=_CHARSET`_DEFAULT)_[@(0.0.255) const]&] -[s2; [%% Same as GetInvalidCharPos(]charset) < 0.&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:Set`(const WString`&`): [@(0.0.255) void]_[* Set]([@(0.0.255) const]_[_^WString^ W -String][@(0.0.255) `&]_[*@3 s])&] -[s5;:TextCtrl`:`:Set`(const String`&`,byte`): [@(0.0.255) void]_[* Set]([@(0.0.255) const]_ -[_^String^ String][@(0.0.255) `&]_[*@3 s], [_^byte^ byte]_[*@3 charset]_`=_CHARSET`_DEFAULT -)&] -[s2;%% Sets the text in the widget.&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:Get`(byte`)const: [_^String^ String]_[* Get]([_^byte^ byte]_[*@3 charset]_`= -_CHARSET`_DEFAULT)_[@(0.0.255) const]&] -[s2;%% Gets the text in the widget.&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:Get`(int`,int`,byte`)const: [_^String^ String]_[* Get]([@(0.0.255) int]_[*@3 p -os], [@(0.0.255) int]_[*@3 size], [_^byte^ byte]_[*@3 charset]_`=_CHARSET`_DEFAULT)_[@(0.0.255) c -onst]&] -[s2;%% Gets the part of text in the widget.&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:GetW`(int`,int`)const: [_^WString^ WString]_[* GetW]([@(0.0.255) int]_[*@3 p -os], [@(0.0.255) int]_[*@3 size])_[@(0.0.255) const]&] -[s2;%% Gets the part of text in the widget in UNICODE.&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:GetW`(`)const: [_^WString^ WString]_[* GetW]()_[@(0.0.255) const]&] -[s2;%% Gets the text in the widget in UNICODE.&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:ClearDirty`(`): [@(0.0.255) void]_[* ClearDirty]()&] -[s2;%% Clears dirty flag. Note that the difference between `"dirty`" -flag and `"modified`" flag of Ctrl interface is that `"dirty`" -flag can get cleared by undo operation, when the text is restored -to the original state (one after setting it or at ClearDirty).&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:IsDirty`(`)const: [@(0.0.255) bool]_[* IsDirty]()_[@(0.0.255) const]&] -[s2;%% Tests if text is different from `"original`" state (one after -setting it or at ClearDirty).&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:Clear`(`): [@(0.0.255) void]_[* Clear]()&] -[s2;%% Empties the text.&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:GetLinePos`(int`&`)const: [@(0.0.255) int]_[* GetLinePos]([@(0.0.255) int`& -]_[*@3 pos])_[@(0.0.255) const]&] -[s2;%% Returns the line where character at offset [%-*@3 pos] resides; -[%-*@3 pos] is altered to contain the position withing the line.&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:GetPos`(int`,int`)const: [@(0.0.255) int]_[* GetPos]([@(0.0.255) int]_[*@3 l -ine], [@(0.0.255) int]_[*@3 column])_[@(0.0.255) const]&] -[s2;%% Returns the offset of character at [%-*@3 line] and [%-*@3 column] -index within the line.&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:GetPos`(int`)const: [@(0.0.255) int]_[* GetPos]([@(0.0.255) int]_[*@3 line]) -_[@(0.0.255) const]&] -[s2;%% Same as GetPos([%-*@3 line], 0).&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:GetLine`(int`)const: [@(0.0.255) int]_[* GetLine]([@(0.0.255) int]_[*@3 pos]) -_[@(0.0.255) const]&] -[s2;%% Similar to GetLinePos, but does not alter [%-*@3 pos] parameter.&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:GetUtf8Line`(int`)const: [@(0.0.255) const]_[_^String^ String][@(0.0.255) `& -]_[* GetUtf8Line]([@(0.0.255) int]_[*@3 i])_[@(0.0.255) const]&] -[s2;%% Returns the line [%-*@3 i] in UTF`-8 encoding.&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:GetWLine`(int`)const: [_^WString^ WString]_[* GetWLine]([@(0.0.255) int]_[*@3 i -])_[@(0.0.255) const]&] -[s2;%% Returns the line [%-*@3 i] in UNICODE.&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:GetEncodedLine`(int`,byte`)const: [_^String^ String]_[* GetEncodedLine]( -[@(0.0.255) int]_[*@3 i], [_^byte^ byte]_[*@3 charset]_`=_CHARSET`_DEFAULT)_[@(0.0.255) con -st]&] -[s2;%% Returns the line [%-*@3 i] required encoding.&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:GetLineLength`(int`)const: [@(0.0.255) int]_[* GetLineLength]([@(0.0.255) i -nt]_[*@3 i])_[@(0.0.255) const]&] -[s2;%% Returns the length of line [%-*@3 i].&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:GetLineCount`(`)const: [@(0.0.255) int]_[* GetLineCount]()_[@(0.0.255) con -st]&] -[s2;%% Returns the number of lines.&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:GetChar`(int`)const: [@(0.0.255) virtual] [@(0.0.255) int]_[* GetChar]([@(0.0.255) i -nt]_[*@3 pos])_[@(0.0.255) const]&] -[s5;:TextCtrl`:`:operator`[`]`(int`)const: [@(0.0.255) int]_[* operator`[`]]([@(0.0.255) in -t]_[*@3 pos])_[@(0.0.255) const]&] -[s2;%% Returns the UNICODE character at [%-*@3 pos] offset.&] -[s3;%% &] -[s4; &] -[s5;:Upp`:`:TextCtrl`:`:GetChar`(`)const: [@(0.0.255) int]_[* GetChar]()_[@(0.0.255) const]&] -[s2;%% Returns UNICODE character at cursor, or 0 if cursor is behind -the last character.&] -[s3; &] -[s4; &] -[s5;:TextCtrl`:`:GetLength`(`)const: [@(0.0.255) virtual] [@(0.0.255) int]_[* GetLength]()_ -[@(0.0.255) const]&] -[s2;%% Returns the total number of characters in the text.&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:GetCursor`(`)const: [@(0.0.255) int]_[* GetCursor]()_[@(0.0.255) const]&] -[s2;%% Returns the position of cursor.&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:GetCursorLine`(`): [@(0.0.255) int]_[* GetCursorLine]()&] -[s2;%% Same as GetLine(GetCursor).&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:SetSelection`(int`,int`): [@(0.0.255) void]_[* SetSelection]([@(0.0.255) i -nt]_[*@3 anchor]_`=_[@3 0], [@(0.0.255) int]_[*@3 cursor]_`=_INT`_MAX)&] -[s2;%% Sets the selection. If [%-*@3 anchor] or [%-*@3 cursor] are out -of range, they are `"fixed`". If they are equal, method changes -the position of cursor.&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:IsSelection`(`)const: [@(0.0.255) bool]_[* IsSelection]()_[@(0.0.255) cons -t]&] -[s2;%% Tests whether there is non`-empty normal selection.&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:IsRectSelection`(`)const: [@(0.0.255) bool]_[* IsRectSelection]()_[@(0.0.255) c -onst]&] -[s2;%% Returns true if there is rectangular selection.&] -[s3; &] -[s4; &] -[s5;:TextCtrl`:`:IsAnySelection`(`)const: [@(0.0.255) bool]_[* IsAnySelection]()_[@(0.0.255) c -onst]&] -[s2;%% Returns true if there is either rectangular or normal selection.&] -[s3; &] -[s4; &] -[s5;:TextCtrl`:`:GetSelection`(int`&`,int`&`)const: [@(0.0.255) bool]_[* GetSelection]([@(0.0.255) i -nt`&]_[*@3 l], [@(0.0.255) int`&]_[*@3 h])_[@(0.0.255) const]&] -[s2;%% Returns the selection lower and upper bounds.&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:GetSelection`(byte`)const: [_^String^ String]_[* GetSelection]([_^byte^ by -te]_[*@3 charset]_`=_CHARSET`_DEFAULT)_[@(0.0.255) const]&] -[s2;%% Returns the selected text in given [%-*@3 charset].&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:GetSelectionW`(`)const: [_^WString^ WString]_[* GetSelectionW]()_[@(0.0.255) c -onst]&] -[s2;%% Returns the selected text in UNICODE.&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:ClearSelection`(`): [@(0.0.255) void]_[* ClearSelection]()&] -[s2;%% Cancels the selection.&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:RemoveSelection`(`): [@(0.0.255) bool]_[* RemoveSelection]()&] -[s2;%% Deletes the selection text.&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:SetCursor`(int`): [@(0.0.255) void]_[* SetCursor]([@(0.0.255) int]_[*@3 curs -or])&] -[s2;%% Places cursor at new position.&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:Paste`(const WString`&`): [@(0.0.255) int]_[* Paste]([@(0.0.255) const]_[_^WString^ W -String][@(0.0.255) `&]_[*@3 text])&] -[s2;%% Pastes [%-*@3 text] at current cursor position.&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:Insert`(int`,const WString`&`): [@(0.0.255) int]_[* Insert]([@(0.0.255) in -t]_[*@3 pos], [@(0.0.255) const]_[_^WString^ WString][@(0.0.255) `&]_[*@3 txt])&] -[s2;%% Inserts [%-*@3 txt] at [%-*@3 pos].&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:Insert`(int`,const String`&`,byte`): [@(0.0.255) int]_[* Insert]([@(0.0.255) i -nt]_[*@3 pos], [@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 txt], -[_^byte^ byte]_[*@3 charset]_`=_CHARSET`_DEFAULT)&] -[s2;%% Inserts [%-*@3 txt] encoded with [%-*@3 charset ]at [%-*@3 pos].&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:Insert`(int`,const char`*`): [@(0.0.255) int]_[* Insert]([@(0.0.255) int]_ -[*@3 pos], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 txt])&] -[s2;%% Inserts [%-*@3 txt] at [%-*@3 pos] using default charset.&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:Remove`(int`,int`): [@(0.0.255) void]_[* Remove]([@(0.0.255) int]_[*@3 pos], - [@(0.0.255) int]_[*@3 size])&] -[s2;%% Removes the text.&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:NextUndo`(`): [@(0.0.255) void]_[* NextUndo]()&] -[s2;%% Marks the beginning of next undo block. All text altering -operations (inserts and removes) are recorded into undo buffer -in sections where each sections represents single user action. -NextUndo tells TextCtrl that the next altering operation belongs -to the new section. Note that NextUndo does not create a new -section (yet); calling it twice without any altering operation -in between is the same as calling it once.&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:Undo`(`): [@(0.0.255) void]_[* Undo]()&] -[s2;%% Performs undo.&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:Redo`(`): [@(0.0.255) void]_[* Redo]()&] -[s2;%% Performs redo.&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:IsUndo`(`)const: [@(0.0.255) bool]_[* IsUndo]()_[@(0.0.255) const]&] -[s2;%% Tests whether there are some undo records.&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:IsRedo`(`)const: [@(0.0.255) bool]_[* IsRedo]()_[@(0.0.255) const]&] -[s2;%% Tests whether there are some redo records.&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:ClearUndo`(`): [@(0.0.255) void]_[* ClearUndo]()&] -[s2;%% Clears all undo and redo records.&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:ClearRedo`(`): [@(0.0.255) void]_[* ClearRedo]()&] -[s2;%% Clears redo records.&] -[s3; &] -[s4; &] -[s5;:TextCtrl`:`:PickUndoData`(`): [_^TextCtrl`:`:UndoData^ UndoData]_[* PickUndoData]()&] -[s2;%% Picks undo and redo record. This is useful when single widget -is used to edit various text, this allows to change undo/redo -records with the text. Must be followed by either SetPickUndoData -or ClearUndo before performing any text altering operation.&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:SetPickUndoData`(pick`_ TextCtrl`:`:UndoData`&`): [@(0.0.255) void]_[* S -etPickUndoData]([@(0.128.128) pick`_]_[_^TextCtrl`:`:UndoData^ UndoData][@(0.0.255) `&]_ -[*@3 data])&] -[s2;%% Sets the undo/redo records. [%-@3 data] is picked (destroyed) -during the operation.&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:Cut`(`): [@(0.0.255) void]_[* Cut]()&] -[s2;%% Performs Cut.&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:Copy`(`): [@(0.0.255) void]_[* Copy]()&] -[s2;%% Performs Copy.&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:Paste`(`): [@(0.0.255) void]_[* Paste]()&] -[s2;%% Performs Paste.&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:SelectAll`(`): [@(0.0.255) void]_[* SelectAll]()&] -[s2;%% Selects the whole text.&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:StdBar`(Bar`&`): [@(0.0.255) void]_[* StdBar]([_^Bar^ Bar][@(0.0.255) `&]_[*@3 m -enu])&] -[s2;%% Provides the standard local [%-*@3 menu].&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:SetCharset`(byte`): [@(0.0.255) void]_[* SetCharset]([_^byte^ byte]_[*@3 cs]) -&] -[s2;%% Sets the input character encoding of widget. This character -set is used to decide which characters can be entered by the -user into the text.&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:GetCharset`(`)const: [_^byte^ byte]_[* GetCharset]()_[@(0.0.255) const]&] -[s2;%% Returns the value set by SetCharset.&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:SetColor`(int`,Color`): [@(0.0.255) void]_[* SetColor]([@(0.0.255) int]_[*@3 i -], [_^Color^ Color]_[*@3 c])&] -[s2;%% Sets one of colors used to display the text.&] -[s3;%% &] -[ {{4443:5557<288;>864; [s0; [+75 TextCtrl`::][*+75 INK`_NORMAL]] -:: [s0;%% [+75 Normal text color.]] -:: [s0; [+75 TextCtrl`::][*+75 INK`_DISABLED]] -:: [s0;%% [+75 Text color when widget is disabled. ]] -:: [s0; [+75 TextCtrl`::][*+75 INK`_SELECTED]] -:: [s0;%% [+75 Selected text color.]] -:: [s0; [+75 TextCtrl`::][*+75 PAPER`_NORMAL]] -:: [s0;%% [+75 Normal paper color.]] -:: [s0; [+75 TextCtrl`::][*+75 PAPER`_READONLY]] -:: [s0;%% [+75 Paper color when widget is read`-only.]] -:: [s0; [+75 TextCtrl`::][*+75 PAPER`_SELECTED]] -:: [s0;%% [+75 Selected paper color.]] -:: [s0; [+75 TextCtrl`::][*+75 COLOR`_COUNT]] -:: [s0;%% [+75 Total number of color indexes.]]}}&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:GetColor`(int`)const: [_^Color^ Color]_[* GetColor]([@(0.0.255) int]_[*@3 i]) -_[@(0.0.255) const]&] -[s2;%% Gets the color used to display the text.&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:UndoSteps`(int`): [_^TextCtrl^ TextCtrl][@(0.0.255) `&]_[* UndoSteps]([@(0.0.255) i -nt]_[*@3 n])&] -[s2;%% Sets the maximum number of undo steps.&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:ProcessTab`(bool`): [_^TextCtrl^ TextCtrl][@(0.0.255) `&]_[* ProcessTab]([@(0.0.255) b -ool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2;%% If active (default), widget accepts K`_TAB keystrokes (inserts -`'`\t`').&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:NoProcessTab`(`): [_^TextCtrl^ TextCtrl][@(0.0.255) `&]_[* NoProcessTab]() -&] -[s2;%% Same as ProcessTab(false).&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:ProcessEnter`(bool`): [_^TextCtrl^ TextCtrl][@(0.0.255) `&]_[* ProcessEnte -r]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2;%% If active (non`-default), widget accepts K`_ENTER keystrokes -(inserts a new line).&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:NoProcessEnter`(`): [_^TextCtrl^ TextCtrl][@(0.0.255) `&]_[* NoProcessEnte -r]()&] -[s2;%% Same as ProcessEnter(false).&] -[s3; &] -[s4; &] -[s5;:TextCtrl`:`:NoBackground`(bool`): [_^TextCtrl^ TextCtrl][@(0.0.255) `&]_[* NoBackgroun -d]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2;%% Sets the widget into transparent mode `- background is not -painted and Transparent is activated `- a result, anything painted -behind the widget is visible, allowing client code to provide -any background it needs.&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:MaxLength`(int`): [_^TextCtrl^ TextCtrl][@(0.0.255) `&]_[* MaxLength]([@(0.0.255) i -nt]_[*@3 len])&] -[s2;%% Sets the maximum size of text in unicode characters. Has to -be less than 1Gchars. The default is 400Mchars.&] -[s3;%% &] -[s4; &] -[s5;:TextCtrl`:`:IsProcessTab`(`): [@(0.0.255) bool]_[* IsProcessTab]()&] -[s2;%% Tests whether ProcessTab mode is active.&] -[s3;%% &] -[s0;%% &] -[s0;%% &] -[s0;%% &] -[ {{10000@3 [s0; [*@(229)4 TextCtrl`::UndoData]]}}&] -[s3; &] -[s1;:TextCtrl`:`:UndoData`:`:struct: [@(0.0.255)3 struct][3 _][*3 UndoData]&] -[s9;%% This structure contains informations about undo/redo state -of the widget. It can be with PickUndoData and SetPickUndoDate -to store and restore undo/redo state.&] -[s3;%% &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0;%% [* Public Method List]]}}&] -[s3; &] -[s5;:TextCtrl`:`:UndoData`:`:Clear`(`): [@(0.0.255) void]_[* Clear]()&] -[s2;%% Clears the undo/redo state&] -[s3;%% &] +topic "TextCtrl"; +[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,0#27521748481378242620020725143825:desc] +[0 $$3,0#96390100711032703541132217272105:end] +[H6;0 $$4,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] +[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] +[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] +[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] +[b42;2 $$9,9#13035079074754324216151401829390:normal] +[{_} +[ {{10000@3 [s0; [*@(229)4 TextCtrl]]}}&] +[s3; &] +[s1;:TextCtrl`:`:class: [@(0.0.255)3 class][3 _][*3 TextCtrl][3 _:_][@(0.0.255)3 public][3 _][*@3;3 C +trl][3 , ][@(0.0.255)3 protected][3 _][*@3;3 TextArrayOps]&] +[s9;%% A base class that implements operations common for [^`:`:DocEdit^ DocEdit] +(raw text editor where lines `- LF delimited sections `- are +displayed as paragraphs `- wrapped when they do not fit the width) +and [^`:`:LineEdit^ LineEdit].(where lines are simply lines and +are never wrapped). TextCtrl works in UNICODE, but is able performing +conversions to any of predefined charsets. The Value of TextCtrl +is contained text; setting it is the same as using Set method, +reading is equivalent to Get method.&] +[s3;%% &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0;%% [* Protected Method List]]}}&] +[s3; &] +[s5;:TextCtrl`:`:SelectionChanged`(`): [@(0.0.255) virtual] [@(0.0.255) void]_[* SelectionC +hanged]()&] +[s2;%% Selection anchor or cursor has changed. (called even when +there is no selection, just cursor). If you override this, you +should call base`-class version in the body.&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:ClearLines`(`): [@(0.0.255) virtual] [@(0.0.255) void]_[* ClearLines]()&] +[s2;%% The content was removed (e.g. Clear or Load operations). If +you override this, you should call base`-class version in the +body.&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:InsertLines`(int`,int`): [@(0.0.255) virtual] [@(0.0.255) void]_[* InsertL +ines]([@(0.0.255) int]_[*@3 line], [@(0.0.255) int]_[*@3 count])&] +[s2;%% [%-*@3 count] lines at [%-*@3 line] position were inserted. If +you override this, you should call base`-class version in the +body.&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:RemoveLines`(int`,int`): [@(0.0.255) virtual] [@(0.0.255) void]_[* RemoveL +ines]([@(0.0.255) int]_[*@3 line], [@(0.0.255) int]_[*@3 count])&] +[s2;%% [%-*@3 count] lines at [%-*@3 line] position were removed. If +you override this, you should call base`-class version in the +body.&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:PreInsert`(int`,const WString`&`): [@(0.0.255) virtual] +[@(0.0.255) void]_[* PreInsert]([@(0.0.255) int]_[*@3 pos], [@(0.0.255) const]_[_^WString^ WS +tring][@(0.0.255) `&]_[*@3 text])&] +[s2;%% Called before any [%-*@3 text] gets inserted at [%-*@3 pos.] If +you override this, you should call base`-class version in the +body.&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:PostInsert`(int`,const WString`&`): [@(0.0.255) virtual] +[@(0.0.255) void]_[* PostInsert]([@(0.0.255) int]_[*@3 pos], [@(0.0.255) const]_[_^WString^ W +String][@(0.0.255) `&]_[*@3 text])&] +[s2;%% Called after [%-*@3 text] was inserted at [%-*@3 pos.] If you +override this, you should call base`-class version in the body.&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:PreRemove`(int`,int`): [@(0.0.255) virtual] [@(0.0.255) void]_[* PreRemove +]([@(0.0.255) int]_[*@3 pos], [@(0.0.255) int]_[*@3 size])&] +[s2;%% Called before [%-*@3 size] characters get removed from the [%-*@3 pos]. +If you override this, you should call base`-class version in +the body.&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:PostRemove`(int`,int`): [@(0.0.255) virtual] [@(0.0.255) void]_[* PostRemo +ve]([@(0.0.255) int]_[*@3 pos], [@(0.0.255) int]_[*@3 size])&] +[s2;%% Called after [%-*@3 size] characters was removed from the [%-*@3 pos]. + If you override this, you should call base`-class version in +the body.&] +[s3;%% &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0;%% [* Public Method List]]}}&] +[s3; &] +[s5;:TextCtrl`:`:RefreshLine`(int`): [@(0.0.255) virtual] [@(0.0.255) void]_[* RefreshLine]( +[@(0.0.255) int]_[*@3 i])&] +[s2;%% This virtual method is called by TextCtrl when the content +of line [%-*@3 i] is changed. If you override this, you should +call base`-class version in the body.&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:WhenBar: [_^Callback1^ Callback1][@(0.0.255) <]Bar[@(0.0.255) `&>]_[* WhenBa +r]&] +[s2;%% This callback is invoked when user right`-clicks the widget +and should specify local menu. It is initialized by the constructor +to the StdBar method. &] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:WhenState: [_^Callback^ Callback]_[* WhenState]&] +[s2;%% This callback is invoked when the status of widget changes +from not`-modified to modified (`"dirty`") or back.&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:WhenSel: [_^Callback^ Callback]_[* WhenSel]&] +[s2;%% Called when cursor or selection changes.&] +[s3; &] +[s4; &] +[s5;:TextCtrl`:`:CachePos`(int`): [@(0.0.255) void]_[* CachePos]([@(0.0.255) int]_[*@3 pos])&] +[s2;%% This is specific optimization hint to the widget saying that +following operations will be performed near [%-*@3 pos]. Unlikely +to be used in the client code.&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:CacheLinePos`(int`): [@(0.0.255) void]_[* CacheLinePos]([@(0.0.255) int]_[*@3 l +inei])&] +[s2;%% This is specific optimization hint to the widget saying that +following operations will be performed near line [%-*@3 linei]. +Unlikely to be used in the client code.&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:Load`(Stream`&`,byte`): [@(0.0.255) int]_[* Load]([_^Stream^ Stream][@(0.0.255) `& +]_[*@3 s], [_^byte^ byte]_[*@3 charset]_`=_CHARSET`_DEFAULT)&] +[s2;%% Loads the text from the stream with defined [%-*@3 charset]. +Function returns the detected line endings mode `- LE`_CRLF, +LE`_LF or LE`_DEFAULT if there were no line endings in the file. +If file is bigger then the limit set by MaxLength, editor is +put into `'truncated`' and read`-only mode.&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:IsTruncated`(`)const: [@(0.0.255) bool]_[* IsTruncated]()_[@(0.0.255) cons +t]&] +[s2;%% Indicates that last Load had to truncate the size because +of MaxLength limit.&] +[s3; &] +[s4; &] +[s5;:TextCtrl`:`:Save`(Stream`&`,byte`,int`)const: [@(0.0.255) void]_[* Save]([_^Stream^ St +ream][@(0.0.255) `&]_[*@3 s], [_^byte^ byte]_[*@3 charset]_`=_CHARSET`_DEFAULT, +[@(0.0.255) int]_[*@3 line`_endings]_`=_LE`_DEFAULT)_[@(0.0.255) const]&] +[s2;%% Saves the text to the stream with defined [%-*@3 charset]. Characters +that cannot be represented in suggested [%-*@3 charset] are saved +as `'?`'. [%-*@3 line`_endings] parameter sets the line ending +mode. LE`_DEFAULT uses platform specific line endings (CRLF in +Windows, LF in POSIX), LE`_CRLF sets CRLF line endings, LE`_LF +sets LF line endings). If IsTruncated is true, Save is blocked.&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:GetInvalidCharPos`(byte`)const: [@(0.0.255) int]_[* GetInvalidCharPos]([_^byte^ b +yte]_[*@3 charset]_`=_CHARSET`_DEFAULT)_[@(0.0.255) const]&] +[s2;%% Returns the position of the first character that cannot be +represented [%-*@3 charset]. If there is none, returns negative +value.&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:CheckCharset`(byte`)const: [@(0.0.255) bool]_[* CheckCharset]([_^byte^ byt +e]_[*@3 charset]_`=_CHARSET`_DEFAULT)_[@(0.0.255) const]&] +[s2; [%% Same as GetInvalidCharPos(]charset) < 0.&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:Set`(const WString`&`): [@(0.0.255) void]_[* Set]([@(0.0.255) const]_[_^WString^ W +String][@(0.0.255) `&]_[*@3 s])&] +[s5;:TextCtrl`:`:Set`(const String`&`,byte`): [@(0.0.255) void]_[* Set]([@(0.0.255) const]_ +[_^String^ String][@(0.0.255) `&]_[*@3 s], [_^byte^ byte]_[*@3 charset]_`=_CHARSET`_DEFAULT +)&] +[s2;%% Sets the text in the widget.&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:Get`(byte`)const: [_^String^ String]_[* Get]([_^byte^ byte]_[*@3 charset]_`= +_CHARSET`_DEFAULT)_[@(0.0.255) const]&] +[s2;%% Gets the text in the widget.&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:Get`(int`,int`,byte`)const: [_^String^ String]_[* Get]([@(0.0.255) int]_[*@3 p +os], [@(0.0.255) int]_[*@3 size], [_^byte^ byte]_[*@3 charset]_`=_CHARSET`_DEFAULT)_[@(0.0.255) c +onst]&] +[s2;%% Gets the part of text in the widget.&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:GetW`(int`,int`)const: [_^WString^ WString]_[* GetW]([@(0.0.255) int]_[*@3 p +os], [@(0.0.255) int]_[*@3 size])_[@(0.0.255) const]&] +[s2;%% Gets the part of text in the widget in UNICODE.&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:GetW`(`)const: [_^WString^ WString]_[* GetW]()_[@(0.0.255) const]&] +[s2;%% Gets the text in the widget in UNICODE.&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:ClearDirty`(`): [@(0.0.255) void]_[* ClearDirty]()&] +[s2;%% Clears dirty flag. Note that the difference between `"dirty`" +flag and `"modified`" flag of Ctrl interface is that `"dirty`" +flag can get cleared by undo operation, when the text is restored +to the original state (one after setting it or at ClearDirty).&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:IsDirty`(`)const: [@(0.0.255) bool]_[* IsDirty]()_[@(0.0.255) const]&] +[s2;%% Tests if text is different from `"original`" state (one after +setting it or at ClearDirty).&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:Clear`(`): [@(0.0.255) void]_[* Clear]()&] +[s2;%% Empties the text.&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:GetLinePos`(int`&`)const: [@(0.0.255) int]_[* GetLinePos]([@(0.0.255) int`& +]_[*@3 pos])_[@(0.0.255) const]&] +[s2;%% Returns the line where character at offset [%-*@3 pos] resides; +[%-*@3 pos] is altered to contain the position withing the line.&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:GetPos`(int`,int`)const: [@(0.0.255) int]_[* GetPos]([@(0.0.255) int]_[*@3 l +ine], [@(0.0.255) int]_[*@3 column])_[@(0.0.255) const]&] +[s2;%% Returns the offset of character at [%-*@3 line] and [%-*@3 column] +index within the line.&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:GetPos`(int`)const: [@(0.0.255) int]_[* GetPos]([@(0.0.255) int]_[*@3 line]) +_[@(0.0.255) const]&] +[s2;%% Same as GetPos([%-*@3 line], 0).&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:GetLine`(int`)const: [@(0.0.255) int]_[* GetLine]([@(0.0.255) int]_[*@3 pos]) +_[@(0.0.255) const]&] +[s2;%% Similar to GetLinePos, but does not alter [%-*@3 pos] parameter.&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:GetUtf8Line`(int`)const: [@(0.0.255) const]_[_^String^ String][@(0.0.255) `& +]_[* GetUtf8Line]([@(0.0.255) int]_[*@3 i])_[@(0.0.255) const]&] +[s2;%% Returns the line [%-*@3 i] in UTF`-8 encoding.&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:GetWLine`(int`)const: [_^WString^ WString]_[* GetWLine]([@(0.0.255) int]_[*@3 i +])_[@(0.0.255) const]&] +[s2;%% Returns the line [%-*@3 i] in UNICODE.&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:GetEncodedLine`(int`,byte`)const: [_^String^ String]_[* GetEncodedLine]( +[@(0.0.255) int]_[*@3 i], [_^byte^ byte]_[*@3 charset]_`=_CHARSET`_DEFAULT)_[@(0.0.255) con +st]&] +[s2;%% Returns the line [%-*@3 i] required encoding.&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:GetLineLength`(int`)const: [@(0.0.255) int]_[* GetLineLength]([@(0.0.255) i +nt]_[*@3 i])_[@(0.0.255) const]&] +[s2;%% Returns the length of line [%-*@3 i].&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:GetLineCount`(`)const: [@(0.0.255) int]_[* GetLineCount]()_[@(0.0.255) con +st]&] +[s2;%% Returns the number of lines.&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:GetChar`(int`)const: [@(0.0.255) virtual] [@(0.0.255) int]_[* GetChar]([@(0.0.255) i +nt]_[*@3 pos])_[@(0.0.255) const]&] +[s5;:TextCtrl`:`:operator`[`]`(int`)const: [@(0.0.255) int]_[* operator`[`]]([@(0.0.255) in +t]_[*@3 pos])_[@(0.0.255) const]&] +[s2;%% Returns the UNICODE character at [%-*@3 pos] offset.&] +[s3;%% &] +[s4; &] +[s5;:Upp`:`:TextCtrl`:`:GetChar`(`)const: [@(0.0.255) int]_[* GetChar]()_[@(0.0.255) const]&] +[s2;%% Returns UNICODE character at cursor, or 0 if cursor is behind +the last character.&] +[s3; &] +[s4; &] +[s5;:TextCtrl`:`:GetLength`(`)const: [@(0.0.255) virtual] [@(0.0.255) int]_[* GetLength]()_ +[@(0.0.255) const]&] +[s2;%% Returns the total number of characters in the text.&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:GetCursor`(`)const: [@(0.0.255) int]_[* GetCursor]()_[@(0.0.255) const]&] +[s2;%% Returns the position of cursor.&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:GetCursorLine`(`): [@(0.0.255) int]_[* GetCursorLine]()&] +[s2;%% Same as GetLine(GetCursor).&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:SetSelection`(int`,int`): [@(0.0.255) void]_[* SetSelection]([@(0.0.255) i +nt]_[*@3 anchor]_`=_[@3 0], [@(0.0.255) int]_[*@3 cursor]_`=_INT`_MAX)&] +[s2;%% Sets the selection. If [%-*@3 anchor] or [%-*@3 cursor] are out +of range, they are `"fixed`". If they are equal, method changes +the position of cursor.&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:IsSelection`(`)const: [@(0.0.255) bool]_[* IsSelection]()_[@(0.0.255) cons +t]&] +[s2;%% Tests whether there is non`-empty normal selection.&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:IsRectSelection`(`)const: [@(0.0.255) bool]_[* IsRectSelection]()_[@(0.0.255) c +onst]&] +[s2;%% Returns true if there is rectangular selection.&] +[s3; &] +[s4; &] +[s5;:TextCtrl`:`:IsAnySelection`(`)const: [@(0.0.255) bool]_[* IsAnySelection]()_[@(0.0.255) c +onst]&] +[s2;%% Returns true if there is either rectangular or normal selection.&] +[s3; &] +[s4; &] +[s5;:TextCtrl`:`:GetSelection`(int`&`,int`&`)const: [@(0.0.255) bool]_[* GetSelection]([@(0.0.255) i +nt`&]_[*@3 l], [@(0.0.255) int`&]_[*@3 h])_[@(0.0.255) const]&] +[s2;%% Returns the selection lower and upper bounds.&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:GetSelection`(byte`)const: [_^String^ String]_[* GetSelection]([_^byte^ by +te]_[*@3 charset]_`=_CHARSET`_DEFAULT)_[@(0.0.255) const]&] +[s2;%% Returns the selected text in given [%-*@3 charset].&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:GetSelectionW`(`)const: [_^WString^ WString]_[* GetSelectionW]()_[@(0.0.255) c +onst]&] +[s2;%% Returns the selected text in UNICODE.&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:ClearSelection`(`): [@(0.0.255) void]_[* ClearSelection]()&] +[s2;%% Cancels the selection.&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:RemoveSelection`(`): [@(0.0.255) bool]_[* RemoveSelection]()&] +[s2;%% Deletes the selection text.&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:SetCursor`(int`): [@(0.0.255) void]_[* SetCursor]([@(0.0.255) int]_[*@3 curs +or])&] +[s2;%% Places cursor at new position.&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:Paste`(const WString`&`): [@(0.0.255) int]_[* Paste]([@(0.0.255) const]_[_^WString^ W +String][@(0.0.255) `&]_[*@3 text])&] +[s2;%% Pastes [%-*@3 text] at current cursor position.&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:Insert`(int`,const WString`&`): [@(0.0.255) int]_[* Insert]([@(0.0.255) in +t]_[*@3 pos], [@(0.0.255) const]_[_^WString^ WString][@(0.0.255) `&]_[*@3 txt])&] +[s2;%% Inserts [%-*@3 txt] at [%-*@3 pos].&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:Insert`(int`,const String`&`,byte`): [@(0.0.255) int]_[* Insert]([@(0.0.255) i +nt]_[*@3 pos], [@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 txt], +[_^byte^ byte]_[*@3 charset]_`=_CHARSET`_DEFAULT)&] +[s2;%% Inserts [%-*@3 txt] encoded with [%-*@3 charset ]at [%-*@3 pos].&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:Insert`(int`,const char`*`): [@(0.0.255) int]_[* Insert]([@(0.0.255) int]_ +[*@3 pos], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 txt])&] +[s2;%% Inserts [%-*@3 txt] at [%-*@3 pos] using default charset.&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:Remove`(int`,int`): [@(0.0.255) void]_[* Remove]([@(0.0.255) int]_[*@3 pos], + [@(0.0.255) int]_[*@3 size])&] +[s2;%% Removes the text.&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:NextUndo`(`): [@(0.0.255) void]_[* NextUndo]()&] +[s2;%% Marks the beginning of next undo block. All text altering +operations (inserts and removes) are recorded into undo buffer +in sections where each sections represents single user action. +NextUndo tells TextCtrl that the next altering operation belongs +to the new section. Note that NextUndo does not create a new +section (yet); calling it twice without any altering operation +in between is the same as calling it once.&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:Undo`(`): [@(0.0.255) void]_[* Undo]()&] +[s2;%% Performs undo.&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:Redo`(`): [@(0.0.255) void]_[* Redo]()&] +[s2;%% Performs redo.&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:IsUndo`(`)const: [@(0.0.255) bool]_[* IsUndo]()_[@(0.0.255) const]&] +[s2;%% Tests whether there are some undo records.&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:IsRedo`(`)const: [@(0.0.255) bool]_[* IsRedo]()_[@(0.0.255) const]&] +[s2;%% Tests whether there are some redo records.&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:ClearUndo`(`): [@(0.0.255) void]_[* ClearUndo]()&] +[s2;%% Clears all undo and redo records.&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:ClearRedo`(`): [@(0.0.255) void]_[* ClearRedo]()&] +[s2;%% Clears redo records.&] +[s3; &] +[s4; &] +[s5;:TextCtrl`:`:PickUndoData`(`): [_^TextCtrl`:`:UndoData^ UndoData]_[* PickUndoData]()&] +[s2;%% Picks undo and redo record. This is useful when single widget +is used to edit various text, this allows to change undo/redo +records with the text. Must be followed by either SetPickUndoData +or ClearUndo before performing any text altering operation.&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:SetPickUndoData`(pick`_ TextCtrl`:`:UndoData`&`): [@(0.0.255) void]_[* S +etPickUndoData]([@(0.128.128) pick`_]_[_^TextCtrl`:`:UndoData^ UndoData][@(0.0.255) `&]_ +[*@3 data])&] +[s2;%% Sets the undo/redo records. [%-@3 data] is picked (destroyed) +during the operation.&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:Cut`(`): [@(0.0.255) void]_[* Cut]()&] +[s2;%% Performs Cut.&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:Copy`(`): [@(0.0.255) void]_[* Copy]()&] +[s2;%% Performs Copy.&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:Paste`(`): [@(0.0.255) void]_[* Paste]()&] +[s2;%% Performs Paste.&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:SelectAll`(`): [@(0.0.255) void]_[* SelectAll]()&] +[s2;%% Selects the whole text.&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:StdBar`(Bar`&`): [@(0.0.255) void]_[* StdBar]([_^Bar^ Bar][@(0.0.255) `&]_[*@3 m +enu])&] +[s2;%% Provides the standard local [%-*@3 menu].&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:SetCharset`(byte`): [@(0.0.255) void]_[* SetCharset]([_^byte^ byte]_[*@3 cs]) +&] +[s2;%% Sets the input character encoding of widget. This character +set is used to decide which characters can be entered by the +user into the text.&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:GetCharset`(`)const: [_^byte^ byte]_[* GetCharset]()_[@(0.0.255) const]&] +[s2;%% Returns the value set by SetCharset.&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:SetColor`(int`,Color`): [@(0.0.255) void]_[* SetColor]([@(0.0.255) int]_[*@3 i +], [_^Color^ Color]_[*@3 c])&] +[s2;%% Sets one of colors used to display the text.&] +[s3;%% &] +[ {{4443:5557<288;>864; [s0; [+75 TextCtrl`::][*+75 INK`_NORMAL]] +:: [s0;%% [+75 Normal text color.]] +:: [s0; [+75 TextCtrl`::][*+75 INK`_DISABLED]] +:: [s0;%% [+75 Text color when widget is disabled. ]] +:: [s0; [+75 TextCtrl`::][*+75 INK`_SELECTED]] +:: [s0;%% [+75 Selected text color.]] +:: [s0; [+75 TextCtrl`::][*+75 PAPER`_NORMAL]] +:: [s0;%% [+75 Normal paper color.]] +:: [s0; [+75 TextCtrl`::][*+75 PAPER`_READONLY]] +:: [s0;%% [+75 Paper color when widget is read`-only.]] +:: [s0; [+75 TextCtrl`::][*+75 PAPER`_SELECTED]] +:: [s0;%% [+75 Selected paper color.]] +:: [s0; [+75 TextCtrl`::][*+75 COLOR`_COUNT]] +:: [s0;%% [+75 Total number of color indexes.]]}}&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:GetColor`(int`)const: [_^Color^ Color]_[* GetColor]([@(0.0.255) int]_[*@3 i]) +_[@(0.0.255) const]&] +[s2;%% Gets the color used to display the text.&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:UndoSteps`(int`): [_^TextCtrl^ TextCtrl][@(0.0.255) `&]_[* UndoSteps]([@(0.0.255) i +nt]_[*@3 n])&] +[s2;%% Sets the maximum number of undo steps.&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:ProcessTab`(bool`): [_^TextCtrl^ TextCtrl][@(0.0.255) `&]_[* ProcessTab]([@(0.0.255) b +ool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2;%% If active (default), widget accepts K`_TAB keystrokes (inserts +`'`\t`').&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:NoProcessTab`(`): [_^TextCtrl^ TextCtrl][@(0.0.255) `&]_[* NoProcessTab]() +&] +[s2;%% Same as ProcessTab(false).&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:ProcessEnter`(bool`): [_^TextCtrl^ TextCtrl][@(0.0.255) `&]_[* ProcessEnte +r]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2;%% If active (non`-default), widget accepts K`_ENTER keystrokes +(inserts a new line).&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:NoProcessEnter`(`): [_^TextCtrl^ TextCtrl][@(0.0.255) `&]_[* NoProcessEnte +r]()&] +[s2;%% Same as ProcessEnter(false).&] +[s3; &] +[s4; &] +[s5;:TextCtrl`:`:NoBackground`(bool`): [_^TextCtrl^ TextCtrl][@(0.0.255) `&]_[* NoBackgroun +d]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2;%% Sets the widget into transparent mode `- background is not +painted and Transparent is activated `- a result, anything painted +behind the widget is visible, allowing client code to provide +any background it needs.&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:MaxLength`(int`): [_^TextCtrl^ TextCtrl][@(0.0.255) `&]_[* MaxLength]([@(0.0.255) i +nt]_[*@3 len])&] +[s2;%% Sets the maximum size of text in unicode characters. Has to +be less than 1Gchars. The default is 400Mchars.&] +[s3;%% &] +[s4; &] +[s5;:TextCtrl`:`:IsProcessTab`(`): [@(0.0.255) bool]_[* IsProcessTab]()&] +[s2;%% Tests whether ProcessTab mode is active.&] +[s3;%% &] +[s0;%% &] +[s0;%% &] +[s0;%% &] +[ {{10000@3 [s0; [*@(229)4 TextCtrl`::UndoData]]}}&] +[s3; &] +[s1;:TextCtrl`:`:UndoData`:`:struct: [@(0.0.255)3 struct][3 _][*3 UndoData]&] +[s9;%% This structure contains informations about undo/redo state +of the widget. It can be with PickUndoData and SetPickUndoDate +to store and restore undo/redo state.&] +[s3;%% &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0;%% [* Public Method List]]}}&] +[s3; &] +[s5;:TextCtrl`:`:UndoData`:`:Clear`(`): [@(0.0.255) void]_[* Clear]()&] +[s2;%% Clears the undo/redo state&] +[s3;%% &] [s3;%% .]] \ No newline at end of file diff --git a/uppsrc/CtrlLib/src.tpp/ToolBar$en-us.tpp b/uppsrc/CtrlLib/src.tpp/ToolBar_en-us.tpp similarity index 98% rename from uppsrc/CtrlLib/src.tpp/ToolBar$en-us.tpp rename to uppsrc/CtrlLib/src.tpp/ToolBar_en-us.tpp index 973902e74..d4694cb2d 100644 --- a/uppsrc/CtrlLib/src.tpp/ToolBar$en-us.tpp +++ b/uppsrc/CtrlLib/src.tpp/ToolBar_en-us.tpp @@ -1,74 +1,74 @@ -topic "ToolBar"; -[2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,0#27521748481378242620020725143825:desc] -[0 $$3,0#96390100711032703541132217272105:end] -[H6;0 $$4,0#05600065144404261032431302351956:begin] -[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] -[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] -[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] -[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] -[b42;2 $$9,9#13035079074754324216151401829390:normal] -[{_} -[ {{10000@3 [s0;%% [*@(229)4 ToolBar]]}}&] -[s3; &] -[s1;:ToolBar`:`:class: [@(0.0.255)3 class][3 _][*3 ToolBar][3 _:_][@(0.0.255)3 public][3 _][*@3;3 Ba -rCtrl]&] -[s0;%% &] -[s2;%% -@@image:2300&162 -(A3ABGgAAAOb/AAAAAHic7Z3NbhMxEID9frwDj8CV6155A7hz4IAQEkLcIKhFgAKoFSAiThQQtCJCkSpAVJWMqYlx/Tsee9eTdKxP0Wa7ntjenS+Ou02XR4slwzAMwzAMlp3Z3Qf3bt6+daMIVUVV7N54hmHooJygOPx6cHy8kuCiDlZVdN10/CvX7hCk+7AzTJbuaYJATTOUGeAmsYuqqKpnxwQXfLzCPmE2AoK5ky6qweqTS9HMxC6qoqrefUzm71fX73+EoI6U7BMaiHXp3pJg28qrDM6jHSf40yzdfYLILCWEmlek4BPdHQjqSMk+IYCdsNSU0kp0OkJNnO4+QWSW7ZNBCLNhtu39fiHik+eL7xDYJwTZGp84kxDjE39yApyiUPBJaWYZn2hppB/9gvCJOB/KnL6aXj97t4SA8ImIl5prtSiCX6WyGdPkFzD42O2f4ASl+4WOE8wdu8QSKptxwOxDZFbMJ4M1V/F7ZJ4W+cRvfGy7qKi+PH37DQJufpJIZ/QVW18LHifd8nScJnkBCU4EtE9iKyfLyBQFQva9OJiScJ9ksw+RWbZPjEZij3/HZRjsV6ycn7TyyZM3R5pLl6+abX9Pc580MQOuFjCO3ebs00T1xDE4SqOpK0/TsA3BQUYrJTbm6KGb0ietMis7P5FxmUgyPtl9fahQHdTop/6e7vOTmkt0VJ9kq9tVnJeGtMSxQWnO2hoZTymVPnFWTpzRbrJ+EvOJTFqixielmQX8/U5QJpKMT3b2v2hMN51tTb1PcFeaE6pJxY4+STwNB2lqg5F84pxZ9IlGjE+M9PqJkzgIn9gBW2UWxCcxmUgyPnm899lgOquxf9R3foKWSbAu3CfBNAFe5OJ8SeQLtCNYG5gZDk2fhO45cYdrvPUTe8N+6uyBBKnMrKxPhrMS+ykRn8xefbIxXXb2910/md4norAEIzjb/lCA2l9ng+AMB3EK0AMFjxMMWDRWhlKfSG8tJVgrG6QmsxyfOO1RJhHxyYkk45NHLw8cVJf9nR19Unnl+9WBAUX87RJyhQd9UhRh2eLzzn+HrI3kN6yGJj6xV07irzLW+onZhvskm32IzPLnJ3aT0jKRZO4/efjiA4SOn3eI+yQWCu6TRGN8G2BGwJjEi1Dpk6xMSoe68hhDq/tPnIrw7ENkVvDzjtaInpykc5nI/bGz+QJCl/vZ0BWbxBFe+jt106FEyCdFEf4dE7dBJejxhJxi+Gg7v9aJVT/bxK+fTFwQmRX0iTaJyE1OJBmf7M73IfD99ltGW5ngDnBakohT2mYKPinNrNh6rB7A7CtS8MnW/31xzfvmFtOk7w19sl4b0bO4wXssnqJ090nbvy/eFJ+Ulo3zCePTSqpgV0x0jA3B3EkX45PT0xMf1fHgfoOE+YQg3dOBYbJ0TxME+vuUTn7/QAD5PiWGYS4O+vsef/1cIYB83yPDMBeHsb+PmmGYCwX/vwyGYSjzB9cMmN8=) -&] -[s0;%% &] -[s9;%% This class provides tool`-bars.&] -[s3;%% &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0;%% [* Public Method List]]}}&] -[s3; &] -[s5;:ToolBar`:`:Set`(Callback1``): [@(0.0.255) void]_[* Set]([_^topic`:`/`/Core`/src`/Callbacks`$en`-us`#Callback1`:`:class^ C -allback1][@(0.0.255) <]Bar[@(0.0.255) `&>]_[*@3 bar])&] -[s2;%% This method sets the new content to the ToolBar. Content should -always be provided as Bar routine `- items should never be Add -directly. You should call this each time status of any ToolBar -button changes. ToolBar contains smart refresh logic so that -only items actually changed are repainted.&] -[s3;%% &] -[s4; &] -[s5;:ToolBar`:`:Post`(Callback1``): [@(0.0.255) void]_[* Post]([_^topic`:`/`/Core`/src`/Callbacks`$en`-us`#Callback1`:`:class^ C -allback1][@(0.0.255) <]Bar[@(0.0.255) `&>]_[*@3 bar])&] -[s2;%% Deprecated `- do not use.&] -[s3;%% &] -[s4; &] -[s5;:ToolBar`:`:ButtonMinSize`(Size`): [_^ToolBar^ ToolBar][@(0.0.255) `&]_[* ButtonMinSize -]([_^Size^ Size]_[*@3 sz])&] -[s2;%% Sets the minimal size of standard ToolBar button.&] -[s3;%% &] -[s4; &] -[s5;:ToolBar`:`:MaxIconSize`(Size`): [_^ToolBar^ ToolBar][@(0.0.255) `&]_[* MaxIconSize]([_^Size^ S -ize]_[*@3 sz])&] -[s2;%% Sets the maximum size of an icon displayed in a button from -the toolbar to [%-*@3 sz].&] -[s3;%% &] -[s4; &] -[s5;:ToolBar`:`:StyleDefault`(`): [@(0.0.255) static] [@(0.0.255) const]_[_^ToolBar`:`:Style^ S -tyle][@(0.0.255) `&]_[* StyleDefault]()&] -[s2;%% Returns the default style used to paint a ToolBar.&] -[s3; &] -[s4; &] -[s5;:ToolBar`:`:SetStyle`(const ToolBar`:`:Style`&`): [_^ToolBar^ ToolBar][@(0.0.255) `&]_ -[* SetStyle]([@(0.0.255) const]_[_^ToolBar`:`:Style^ Style][@(0.0.255) `&]_[*@3 s])&] -[s2;%% Sets the visual style to ToolBar`::Style [%-*@3 s].&] -[s3;%% &] -[s4; &] -[s5;:ToolBar`:`:GetStdHeight`(`): [@(0.0.255) static] [@(0.0.255) int]_[* GetStdHeight]()&] -[s2;%% Returns the standard height of a toolbar when used as a frame. -Not that this is only valid for toolbar with normal sized icons.&] -[s3; &] -[s0; &] -[ {{10000@3 [s0;%% [*@(229)4 ToolBar`::Style]]}}&] -[s3;%% &] -[s1;:ToolBar`:`:Style`:`:struct: [@(0.0.255)3 struct][3 _][*3 Style][3 _:_][@(0.0.255)3 public][3 _ -][*@3;3 ChStyle][@(0.0.255)3 <][*3 Style][@(0.0.255)3 >][3 _]&] -[s9;%% This structure defines the visual style of a ToolBar.&] -[s3; &] +topic "ToolBar"; +[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,0#27521748481378242620020725143825:desc] +[0 $$3,0#96390100711032703541132217272105:end] +[H6;0 $$4,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] +[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] +[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] +[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] +[b42;2 $$9,9#13035079074754324216151401829390:normal] +[{_} +[ {{10000@3 [s0;%% [*@(229)4 ToolBar]]}}&] +[s3; &] +[s1;:ToolBar`:`:class: [@(0.0.255)3 class][3 _][*3 ToolBar][3 _:_][@(0.0.255)3 public][3 _][*@3;3 Ba +rCtrl]&] +[s0;%% &] +[s2;%% +@@image:2300&162 +(A3ABGgAAAOb/AAAAAHic7Z3NbhMxEID9frwDj8CV6155A7hz4IAQEkLcIKhFgAKoFSAiThQQtCJCkSpAVJWMqYlx/Tsee9eTdKxP0Wa7ntjenS+Ou02XR4slwzAMwzAMlp3Z3Qf3bt6+daMIVUVV7N54hmHooJygOPx6cHy8kuCiDlZVdN10/CvX7hCk+7AzTJbuaYJATTOUGeAmsYuqqKpnxwQXfLzCPmE2AoK5ky6qweqTS9HMxC6qoqrefUzm71fX73+EoI6U7BMaiHXp3pJg28qrDM6jHSf40yzdfYLILCWEmlek4BPdHQjqSMk+IYCdsNSU0kp0OkJNnO4+QWSW7ZNBCLNhtu39fiHik+eL7xDYJwTZGp84kxDjE39yApyiUPBJaWYZn2hppB/9gvCJOB/KnL6aXj97t4SA8ImIl5prtSiCX6WyGdPkFzD42O2f4ASl+4WOE8wdu8QSKptxwOxDZFbMJ4M1V/F7ZJ4W+cRvfGy7qKi+PH37DQJufpJIZ/QVW18LHifd8nScJnkBCU4EtE9iKyfLyBQFQva9OJiScJ9ksw+RWbZPjEZij3/HZRjsV6ycn7TyyZM3R5pLl6+abX9Pc580MQOuFjCO3ebs00T1xDE4SqOpK0/TsA3BQUYrJTbm6KGb0ietMis7P5FxmUgyPtl9fahQHdTop/6e7vOTmkt0VJ9kq9tVnJeGtMSxQWnO2hoZTymVPnFWTpzRbrJ+EvOJTFqixielmQX8/U5QJpKMT3b2v2hMN51tTb1PcFeaE6pJxY4+STwNB2lqg5F84pxZ9IlGjE+M9PqJkzgIn9gBW2UWxCcxmUgyPnm899lgOquxf9R3foKWSbAu3CfBNAFe5OJ8SeQLtCNYG5gZDk2fhO45cYdrvPUTe8N+6uyBBKnMrKxPhrMS+ykRn8xefbIxXXb2910/md4norAEIzjb/lCA2l9ng+AMB3EK0AMFjxMMWDRWhlKfSG8tJVgrG6QmsxyfOO1RJhHxyYkk45NHLw8cVJf9nR19Unnl+9WBAUX87RJyhQd9UhRh2eLzzn+HrI3kN6yGJj6xV07irzLW+onZhvskm32IzPLnJ3aT0jKRZO4/efjiA4SOn3eI+yQWCu6TRGN8G2BGwJjEi1Dpk6xMSoe68hhDq/tPnIrw7ENkVvDzjtaInpykc5nI/bGz+QJCl/vZ0BWbxBFe+jt106FEyCdFEf4dE7dBJejxhJxi+Gg7v9aJVT/bxK+fTFwQmRX0iTaJyE1OJBmf7M73IfD99ltGW5ngDnBakohT2mYKPinNrNh6rB7A7CtS8MnW/31xzfvmFtOk7w19sl4b0bO4wXssnqJ090nbvy/eFJ+Ulo3zCePTSqpgV0x0jA3B3EkX45PT0xMf1fHgfoOE+YQg3dOBYbJ0TxME+vuUTn7/QAD5PiWGYS4O+vsef/1cIYB83yPDMBeHsb+PmmGYCwX/vwyGYSjzB9cMmN8=) +&] +[s0;%% &] +[s9;%% This class provides tool`-bars.&] +[s3;%% &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0;%% [* Public Method List]]}}&] +[s3; &] +[s5;:ToolBar`:`:Set`(Callback1``): [@(0.0.255) void]_[* Set]([_^topic`:`/`/Core`/src`/Callbacks`$en`-us`#Callback1`:`:class^ C +allback1][@(0.0.255) <]Bar[@(0.0.255) `&>]_[*@3 bar])&] +[s2;%% This method sets the new content to the ToolBar. Content should +always be provided as Bar routine `- items should never be Add +directly. You should call this each time status of any ToolBar +button changes. ToolBar contains smart refresh logic so that +only items actually changed are repainted.&] +[s3;%% &] +[s4; &] +[s5;:ToolBar`:`:Post`(Callback1``): [@(0.0.255) void]_[* Post]([_^topic`:`/`/Core`/src`/Callbacks`$en`-us`#Callback1`:`:class^ C +allback1][@(0.0.255) <]Bar[@(0.0.255) `&>]_[*@3 bar])&] +[s2;%% Deprecated `- do not use.&] +[s3;%% &] +[s4; &] +[s5;:ToolBar`:`:ButtonMinSize`(Size`): [_^ToolBar^ ToolBar][@(0.0.255) `&]_[* ButtonMinSize +]([_^Size^ Size]_[*@3 sz])&] +[s2;%% Sets the minimal size of standard ToolBar button.&] +[s3;%% &] +[s4; &] +[s5;:ToolBar`:`:MaxIconSize`(Size`): [_^ToolBar^ ToolBar][@(0.0.255) `&]_[* MaxIconSize]([_^Size^ S +ize]_[*@3 sz])&] +[s2;%% Sets the maximum size of an icon displayed in a button from +the toolbar to [%-*@3 sz].&] +[s3;%% &] +[s4; &] +[s5;:ToolBar`:`:StyleDefault`(`): [@(0.0.255) static] [@(0.0.255) const]_[_^ToolBar`:`:Style^ S +tyle][@(0.0.255) `&]_[* StyleDefault]()&] +[s2;%% Returns the default style used to paint a ToolBar.&] +[s3; &] +[s4; &] +[s5;:ToolBar`:`:SetStyle`(const ToolBar`:`:Style`&`): [_^ToolBar^ ToolBar][@(0.0.255) `&]_ +[* SetStyle]([@(0.0.255) const]_[_^ToolBar`:`:Style^ Style][@(0.0.255) `&]_[*@3 s])&] +[s2;%% Sets the visual style to ToolBar`::Style [%-*@3 s].&] +[s3;%% &] +[s4; &] +[s5;:ToolBar`:`:GetStdHeight`(`): [@(0.0.255) static] [@(0.0.255) int]_[* GetStdHeight]()&] +[s2;%% Returns the standard height of a toolbar when used as a frame. +Not that this is only valid for toolbar with normal sized icons.&] +[s3; &] +[s0; &] +[ {{10000@3 [s0;%% [*@(229)4 ToolBar`::Style]]}}&] +[s3;%% &] +[s1;:ToolBar`:`:Style`:`:struct: [@(0.0.255)3 struct][3 _][*3 Style][3 _:_][@(0.0.255)3 public][3 _ +][*@3;3 ChStyle][@(0.0.255)3 <][*3 Style][@(0.0.255)3 >][3 _]&] +[s9;%% This structure defines the visual style of a ToolBar.&] +[s3; &] [s0; ]] \ No newline at end of file diff --git a/uppsrc/CtrlLib/src.tpp/TreeCtrl$en-us.tpp b/uppsrc/CtrlLib/src.tpp/TreeCtrl_en-us.tpp similarity index 97% rename from uppsrc/CtrlLib/src.tpp/TreeCtrl$en-us.tpp rename to uppsrc/CtrlLib/src.tpp/TreeCtrl_en-us.tpp index 9c441f696..5aeda0784 100644 --- a/uppsrc/CtrlLib/src.tpp/TreeCtrl$en-us.tpp +++ b/uppsrc/CtrlLib/src.tpp/TreeCtrl_en-us.tpp @@ -1,741 +1,741 @@ -topic "TreeCtrl"; -[2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,0#27521748481378242620020725143825:desc] -[0 $$3,0#96390100711032703541132217272105:end] -[H6;0 $$4,0#05600065144404261032431302351956:begin] -[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] -[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] -[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] -[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] -[b42;2 $$9,9#13035079074754324216151401829390:normal] -[{_} -[ {{10000@3 [s0; [*@(229)4 TreeCtrl]]}}&] -[s3;%% &] -[s1;:TreeCtrl`:`:class: [@(0.0.255)3 class][3 _][*3 TreeCtrl][3 _:_][@(0.0.255)3 public][3 _][*@3;3 C -trl]&] -[s2;%% &] -[s2;%% -@@image:1212&1156 -(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) -&] -[s0;%% &] -[s9;%% TreeCtrl hierarchy management is based on integer id numbers. -Each node in tree (item) has associated integer id unique for -the tree. Child nodes of item are organized as an array. TreeCtrl -provides operation to insert child nodes at specified array position -and to query child and parent nodes. Root item has fixed id 0.&] -[s3;%% &] -[s0;%% &] -[ {{10000F(128)G(128)@1 [s0;%% [* Public Member List]]}}&] -[s3; &] -[s5;:TreeCtrl`:`:WhenOpen: [_^Callback1^ Callback1][@(0.0.255) ]_[* WhenOpen]&] -[s2;%% Tree item was opened, parameter is the item id. &] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:WhenClose: [_^Callback1^ Callback1][@(0.0.255) ]_[* WhenClose]&] -[s2;%% Tree item was closed, parameter is the item id. &] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:WhenLeftClick: [_^Callback^ Callback]_[* WhenLeftClick]&] -[s2;%% Tree item was clicked. Cursor identifies clicked item. You -can get the click position within the item using GetItemClickPos -method.&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:WhenLeftDouble: [_^Callback^ Callback]_[* WhenLeftDouble]&] -[s2;%% Tree item was double`-clicked. Cursor identifies clicked item. -You can get the click position within the item using GetItemClickPos -method.&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:WhenBar: [_^Callback1^ Callback1][@(0.0.255) <]Bar[@(0.0.255) `&>]_[* WhenBa -r]&] -[s2;%% Use to supply context menu.&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:WhenSel: [_^Callback^ Callback]_[* WhenSel]&] -[s2;%% Cursor or selection has changed (including KillCursor).&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:WhenDrag: [_^Callback^ Callback]_[* WhenDrag]&] -[s2;%% Triggered when user attempts dragging an item.&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:WhenDropItem: [_^Callback2^ Callback2][@(0.0.255) ]_[* WhenDropItem]&] -[s2;%% This callback manages drag`&drop into TreeCtrl items. The -first parameter is an id of item. See [^PasteClip^ PasteClip] for -more details.&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:WhenDropInsert: [_^Callback3^ Callback3][@(0.0.255) ]_[* WhenDropInsert]&] -[s2;%% This callback manages drag`&drop into insert positions between -TreeCtrl items. The first parameter is an id of parent item, -the second parameter is insert index within parent`'s child list. -See [^PasteClip^ PasteClip] for more details.&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:WhenDrop: [_^Callback1^ Callback1][@(0.0.255) <]PasteClip[@(0.0.255) `&>]_ -[* WhenDrop]&] -[s2;%% This callback manages drag`&drop when WhenDropItem and WhenDropInsert -do not apply `- drop into empty area. See [^PasteClip^ PasteClip] -for more details.&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:WhenCursor: [_^Callback^ Callback]_[* WhenCursor]&] -[s2;%% Cursor has changed (including KillCursor). Deprecated.&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:WhenSelection: [_^Callback^ Callback]_[* WhenSelection]&] -[s2;%% Selection has changed. Deprecated.&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:SetRoot`(const TreeCtrl`:`:Node`&`): [@(0.0.255) void]_[* SetRoot]([@(0.0.255) c -onst]_[_^TreeCtrl`:`:Node^ TreeCtrl`::Node][@(0.0.255) `&]_[*@3 n])&] -[s2;%% Sets the content of root item to [%-*@3 n]. Full deep copy of -[%-*@3 n] is performed.&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:SetRoot`(const Image`&`,Value`): [@(0.0.255) void]_[* SetRoot]([@(0.0.255) c -onst]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img], [_^Value^ Value]_[*@3 v])&] -[s2;%% Sets image, key and value of root item. [%-*@3 v] is used both -for key and value.&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:SetRoot`(const Image`&`,Value`,Value`): [@(0.0.255) void]_[* SetRoot]([@(0.0.255) c -onst]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img], [_^Value^ Value]_[*@3 key], -[_^Value^ Value]_[*@3 text])&] -[s2;%% Sets the image, key and value of root item.&] -[s3;%% &] -[s4; &] -[s5;:TreeCtrl`:`:SetRoot`(const Image`&`,Ctrl`&`,int`,int`): [@(0.0.255) void]_[* SetRoot -]([@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img], [_^Ctrl^ Ctrl][@(0.0.255) `&]_ -[*@3 ctrl], [@(0.0.255) int]_[*@3 cx]_`=_[@3 0], [@(0.0.255) int]_[*@3 cy]_`=_[@3 0])&] -[s2;%% Sets widget to be at root item. Only reference to [%-*@3 ctrl] -is stored `-> widget object lifetime must exceed TreeCtrl`'s -lifetime. Dimensions of widget should be [%-*@3 cx], [%-*@3 cy]. -If either [%-*@3 cx] or [%-*@3 cy] are zero, GetMinSize dimension -is used.&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:Insert`(int`,int`,const TreeCtrl`:`:Node`&`): [@(0.0.255) int]_[* Insert -]([@(0.0.255) int]_[*@3 parentid], [@(0.0.255) int]_[*@3 i], [@(0.0.255) const]_[_^TreeCtrl`:`:Node^ T -reeCtrl`::Node][@(0.0.255) `&]_[*@3 n])&] -[s5;:TreeCtrl`:`:Insert`(int`,int`): [@(0.0.255) int]_[* Insert]([@(0.0.255) int]_[*@3 parent -id], [@(0.0.255) int]_[*@3 i])&] -[s5;:TreeCtrl`:`:Insert`(int`,int`,const Image`&`,Value`,bool`): [@(0.0.255) int]_[* Inse -rt]([@(0.0.255) int]_[*@3 parentid], [@(0.0.255) int]_[*@3 i], [@(0.0.255) const]_[_^Image^ I -mage][@(0.0.255) `&]_[*@3 img], [_^Value^ Value]_[*@3 value], [@(0.0.255) bool]_[*@3 withopen -]_`=_[@(0.0.255) false])&] -[s5;:TreeCtrl`:`:Insert`(int`,int`,const Image`&`,Value`,Value`,bool`): [@(0.0.255) int -]_[* Insert]([@(0.0.255) int]_[*@3 parentid], [@(0.0.255) int]_[*@3 i], -[@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img], [_^Value^ Value]_[*@3 key], -[_^Value^ Value]_[*@3 value], [@(0.0.255) bool]_[*@3 withopen]_`=_[@(0.0.255) false])&] -[s5;:TreeCtrl`:`:Insert`(int`,int`,const Image`&`,Ctrl`&`,int`,int`,bool`): [@(0.0.255) i -nt]_[* Insert]([@(0.0.255) int]_[*@3 parentid], [@(0.0.255) int]_[*@3 i], -[@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img], [_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 c -], [@(0.0.255) int]_[*@3 cx]_`=_[@3 0], [@(0.0.255) int]_[*@3 cy]_`=_[@3 0], -[@(0.0.255) bool]_[*@3 wo]_`=_[@(0.0.255) false])&] -[s5;:TreeCtrl`:`:Insert`(int`,int`,const Image`&`,Value`,const String`&`,bool`): [@(0.0.255) i -nt]_[* Insert]([@(0.0.255) int]_[*@3 parentid], [@(0.0.255) int]_[*@3 i], -[@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img], [_^Value^ Value]_[*@3 key], -[@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 value], [@(0.0.255) bool]_[*@3 with -open]_`=_[@(0.0.255) false])&] -[s5;:TreeCtrl`:`:Insert`(int`,int`,const Image`&`,Value`,const char`*`,bool`): [@(0.0.255) i -nt]_[* Insert]([@(0.0.255) int]_[*@3 parentid], [@(0.0.255) int]_[*@3 i], -[@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img], [_^Value^ Value]_[*@3 key], -[@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 value], [@(0.0.255) bool]_[*@3 withopen]_`=_[@(0.0.255) f -alse])&] -[s2; Inserts child item to parent specified by id. Distinct variants -set various attributes to TreeCtrl`::Node of insterted item. Returns -id of new item. Note: Last two overloads are to avoid overloading -ambiguity.&] -[s3;%% &] -[s4; &] -[s5;:TreeCtrl`:`:Add`(int`,const TreeCtrl`:`:Node`&`): [@(0.0.255) int]_[* Add]([@(0.0.255) i -nt]_[*@3 parentid], [@(0.0.255) const]_[_^TreeCtrl`:`:Node^ TreeCtrl`::Node][@(0.0.255) `& -]_[*@3 n])&] -[s5;:TreeCtrl`:`:Add`(int`): [@(0.0.255) int]_[* Add]([@(0.0.255) int]_[*@3 parentid])&] -[s5;:TreeCtrl`:`:Add`(int`,const Image`&`,Value`,bool`): [@(0.0.255) int]_[* Add]([@(0.0.255) i -nt]_[*@3 parentid], [@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img], -[_^Value^ Value]_[*@3 value], [@(0.0.255) bool]_[*@3 withopen]_`=_[@(0.0.255) false])&] -[s5;:TreeCtrl`:`:Add`(int`,const Image`&`,Value`,Value`,bool`): [@(0.0.255) int]_[* Add]( -[@(0.0.255) int]_[*@3 parentid], [@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img], - [_^Value^ Value]_[*@3 key], [_^Value^ Value]_[*@3 value], [@(0.0.255) bool]_[*@3 withopen]_`= -_[@(0.0.255) false])&] -[s5;:TreeCtrl`:`:Add`(int`,const Image`&`,Ctrl`&`,int`,int`,bool`): [@(0.0.255) int]_[* A -dd]([@(0.0.255) int]_[*@3 parentid], [@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 i -mg], [_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 ctrl], [@(0.0.255) int]_[*@3 cx]_`=_[@3 0], -[@(0.0.255) int]_[*@3 cy]_`=_[@3 0], [@(0.0.255) bool]_[*@3 withopen]_`=_[@(0.0.255) false])&] -[s5;:TreeCtrl`:`:Add`(int`,const Image`&`,Value`,const String`&`,bool`): [@(0.0.255) in -t]_[* Add]([@(0.0.255) int]_[*@3 parentid], [@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `& -]_[*@3 img], [_^Value^ Value]_[*@3 key], [@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_ -[*@3 value], [@(0.0.255) bool]_[*@3 withopen]_`=_[@(0.0.255) false])&] -[s5;:TreeCtrl`:`:Add`(int`,const Image`&`,Value`,const char`*`,bool`): [@(0.0.255) int]_ -[* Add]([@(0.0.255) int]_[*@3 parentid], [@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 i -mg], [_^Value^ Value]_[*@3 key], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 value], -[@(0.0.255) bool]_[*@3 withopen]_`=_[@(0.0.255) false])&] -[s2; Inserts child item at the end of list of parent`'s child items. -Parent is specified by id. Distinct variants set various attributes -to TreeCtrl`::Node of insterted item. Returns id of new item. -Note: Last two overloads are to avoid overloading ambiguity.&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:Remove`(int`): [@(0.0.255) void]_[* Remove]([@(0.0.255) int]_[*@3 id])&] -[s2;%% Removes item with [%-*@3 id] from the tree.&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:RemoveChildren`(int`): [@(0.0.255) void]_[* RemoveChildren]([@(0.0.255) in -t]_[*@3 id])&] -[s2;%% Removes all child items from parent item with [%-*@3 id].&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:Swap`(int`,int`): [@(0.0.255) void]_[* Swap]([@(0.0.255) int]_[*@3 id1], -[@(0.0.255) int]_[*@3 id2])&] -[s2;%% Swaps two tree items.&] -[s3;%% &] -[s4; &] -[s5;:TreeCtrl`:`:SwapChildren`(int`,int`,int`): [@(0.0.255) void]_[* SwapChildren]([@(0.0.255) i -nt]_[*@3 parentid], [@(0.0.255) int]_[*@3 i1], [@(0.0.255) int]_[*@3 i2])&] -[s2;%% Swaps [%-*@3 parentid] children with indices [%-*@3 i1] and [%-*@3 i2].&] -[s3;%% &] -[s4; &] -[s5;:TreeCtrl`:`:GetChildCount`(int`)const: [@(0.0.255) int]_[* GetChildCount]([@(0.0.255) i -nt]_[*@3 id])_[@(0.0.255) const]&] -[s2;%% Returns the number of child items of parent item with [%-*@3 id].&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:GetChild`(int`,int`)const: [@(0.0.255) int]_[* GetChild]([@(0.0.255) int]_ -[*@3 id], [@(0.0.255) int]_[*@3 i])_[@(0.0.255) const]&] -[s2;%% Returns the identifier of child at index [%-*@3 i] of parent -item with [%-*@3 id].&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:GetChildIndex`(int`,int`)const: [@(0.0.255) int]_[* GetChildIndex]([@(0.0.255) i -nt]_[*@3 parentid], [@(0.0.255) int]_[*@3 childid])_[@(0.0.255) const]&] -[s2;%% Returns an index of child item of [%-*@3 parentid] with id [%-*@3 childid].&] -[s3;%% &] -[s4; &] -[s5;:TreeCtrl`:`:GetParent`(int`)const: [@(0.0.255) int]_[* GetParent]([@(0.0.255) int]_[*@3 i -d])_[@(0.0.255) const]&] -[s2;%% Returns the parent identifier of child with [%-*@3 id].&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:Get`(int`)const: [_^Value^ Value]_[* Get]([@(0.0.255) int]_[*@3 id])_[@(0.0.255) c -onst]&] -[s3;^Value^ &] -[s4;^Value^ &] -[s5;:TreeCtrl`:`:GetValue`(int`)const: [_^Value^ Value]_[* GetValue]([@(0.0.255) int]_[*@3 id -])_[@(0.0.255) const]&] -[s2;%% Returns the value of item with [%-*@3 id].&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:operator`[`]`(int`)const: [_^Value^ Value]_[* operator`[`]]([@(0.0.255) in -t]_[*@3 id])_[@(0.0.255) const]&] -[s2;%% Returns the key of item with [%-*@3 id].&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:Set`(int`,Value`): [@(0.0.255) void]_[* Set]([@(0.0.255) int]_[*@3 id], -[_^Value^ Value]_[*@3 v])&] -[s2;%% Sets the value [/ and] key of item with [%-*@3 id].&] -[s3;%% &] -[s4; &] -[s5;:TreeCtrl`:`:Set`(int`,Value`,Value`): [@(0.0.255) void]_[* Set]([@(0.0.255) int]_[*@3 id -], [_^Value^ Value]_[*@3 key], [_^Value^ Value]_[*@3 value])&] -[s2;%% Sets the value and key of item with [%-*@3 id].&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:SetValue`(const Value`&`): [@(0.0.255) void]_[* SetValue]([@(0.0.255) cons -t]_[_^Value^ Value][@(0.0.255) `&]_[*@3 v])&] -[s2;%% Sets the value of item with cursor, key is unchanged.&] -[s3;%% &] -[s4; &] -[s5;:TreeCtrl`:`:SetDisplay`(int`,const Display`&`): [@(0.0.255) void]_[* SetDisplay]([@(0.0.255) i -nt]_[*@3 id], [@(0.0.255) const]_[_^Display^ Display][@(0.0.255) `&]_[*@3 display])&] -[s2;%% Sets the display of [%-*@3 id] item.&] -[s3;%% &] -[s4; &] -[s5;:TreeCtrl`:`:RefreshItem`(int`): [@(0.0.255) void]_[* RefreshItem]([@(0.0.255) int]_[*@3 i -d])&] -[s2;%% Forces the repainting of item (e.g. when its appearance changes -in a way that cannot be detected by TreeCtrl widget).&] -[s3;%% &] -[s4; &] -[s5;:TreeCtrl`:`:GetLineCount`(`): [@(0.0.255) int]_[* GetLineCount]()&] -[s2;%% Gets the current number of lines `- visible items `- in TreeCtrl.&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:GetItemAtLine`(int`): [@(0.0.255) int]_[* GetItemAtLine]([@(0.0.255) int]_ -[*@3 i])&] -[s2;%% Gets the id of item at line i.&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:GetLineAtItem`(int`): [@(0.0.255) int]_[* GetLineAtItem]([@(0.0.255) int]_ -[*@3 id])&] -[s2;%% Gets the line of item with [%-*@3 id]. If item is not visible, -returns negative value.&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:GetNode`(int`)const: [_^TreeCtrl`:`:Node^ Node]_[* GetNode]([@(0.0.255) in -t]_[*@3 id])_[@(0.0.255) const]&] -[s2;%% Returns attributes of item with [%-*@3 id].&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:SetNode`(int`,const TreeCtrl`:`:Node`&`): [@(0.0.255) void]_[* SetNode]( -[@(0.0.255) int]_[*@3 id], [@(0.0.255) const]_[_^TreeCtrl`:`:Node^ TreeCtrl`::Node][@(0.0.255) `& -]_[*@3 n])&] -[s2;%% Sets attributes.&] -[s3; &] -[s4; &] -[s5;:Upp`:`:TreeCtrl`:`:IsValid`(int`)const: [@(0.0.255) bool]_[* IsValid]([@(0.0.255) int]_ -[*@3 id])_[@(0.0.255) const]&] -[s2;%% Returns true if [%-*@3 id] represents a valid node id.&] -[s3;%% &] -[s4; &] -[s5;:TreeCtrl`:`:IsOpen`(int`)const: [@(0.0.255) bool]_[* IsOpen]([@(0.0.255) int]_[*@3 id])_ -[@(0.0.255) const]&] -[s2;%% Tests whether item is opened.&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:Open`(int`,bool`): [@(0.0.255) void]_[* Open]([@(0.0.255) int]_[*@3 id], -[@(0.0.255) bool]_[*@3 open]_`=_[@(0.0.255) true])&] -[s2;%% Opens or closes (if [%-*@3 open] is false) item with id `- makes -all child items visible.&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:Close`(int`): [@(0.0.255) void]_[* Close]([@(0.0.255) int]_[*@3 id])&] -[s2;%% Same as Open(id, false).&] -[s3; &] -[s4; &] -[s5;:Upp`:`:TreeCtrl`:`:GetOpenIds`(`)const: [_^Upp`:`:Vector^ Vector]<[@(0.0.255) int]>_ -[* GetOpenIds]()_[@(0.0.255) const]&] -[s2;%% Returns all open node ids.&] -[s3; &] -[s4; &] -[s5;:Upp`:`:TreeCtrl`:`:OpenIds`(const Upp`:`:Vector``&`): [@(0.0.255) void]_[* Ope -nIds]([@(0.0.255) const]_[_^Upp`:`:Vector^ Vector]<[@(0.0.255) int]>`&_[*@3 ids])&] -[s2;%% Opens all valid [%-*@3 ids].&] -[s3;%% &] -[s4; &] -[s5;:TreeCtrl`:`:OpenDeep`(int`,bool`): [@(0.0.255) void]_[* OpenDeep]([@(0.0.255) int]_[*@3 i -d], [@(0.0.255) bool]_[*@3 open]_`=_[@(0.0.255) true])&] -[s2;%% Opens/closes item with [%-*@3 id] and all of its child items.&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:CloseDeep`(int`): [@(0.0.255) void]_[* CloseDeep]([@(0.0.255) int]_[*@3 id]) -&] -[s2;%% Same as OpenDeep([%-*@3 id], false).&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:MakeVisible`(int`): [@(0.0.255) void]_[* MakeVisible]([@(0.0.255) int]_[*@3 i -d])&] -[s2;%% Opens all parent items of item with [%-*@3 id] to make it visible.&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:SetCursorLine`(int`): [@(0.0.255) void]_[* SetCursorLine]([@(0.0.255) int]_ -[*@3 i])&] -[s2;%% Sets cursor in the tree to be at visible item line [%-*@3 i].&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:GetCursorLine`(`)const: [@(0.0.255) int]_[* GetCursorLine]()_[@(0.0.255) c -onst]&] -[s2;%% Returns visible item line.&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:KillCursor`(`): [@(0.0.255) void]_[* KillCursor]()&] -[s2;%% Removes cursor from tree.&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:SetCursor`(int`): [@(0.0.255) void]_[* SetCursor]([@(0.0.255) int]_[*@3 id]) -&] -[s2;%% Sets cursor to item with [%-*@3 id]. If item is not visible, -MakeVisible(id) is called first.&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:GetCursor`(`)const: [@(0.0.255) int]_[* GetCursor]()_[@(0.0.255) const]&] -[s2;%% Returns id of item that currently has cursor or negative value -if there is none.&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:IsCursor`(`)const: [@(0.0.255) bool]_[* IsCursor]()_[@(0.0.255) const]&] -[s2;%% Returns true if there is cursor in the tree.&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:GetItemClickPos`(`)const: [_^Point^ Point]_[* GetItemClickPos]()_[@(0.0.255) c -onst]&] -[s2;%% Returns current mouse position within item Display rectangle -when clicked.&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:GetScroll`(`)const: [_^Point^ Point]_[* GetScroll]()_[@(0.0.255) const]&] -[s2;%% Returns the scroll position of tree.&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:ScrollTo`(Point`): [@(0.0.255) void]_[* ScrollTo]([_^Point^ Point]_[*@3 sc]) -&] -[s2;%% Scrolls tree back to value previously returned by GetScroll.&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:Get`(`)const: [_^Value^ Value]_[* Get]()_[@(0.0.255) const]&] -[s2;%% Returns key of item with cursor or Null if there is none.&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:GetValue`(`)const: [_^Value^ Value]_[* GetValue]()_[@(0.0.255) const]&] -[s2;%% Returns value of item with cursor or Null if there is none.&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:Find`(Value`): [@(0.0.255) int]_[* Find]([_^Value^ Value]_[*@3 key])&] -[s2;%% Returns id of item with [%-*@3 key] or negative value if not -found.&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:FindSetCursor`(Value`): [@(0.0.255) bool]_[* FindSetCursor]([_^Value^ Valu -e]_[*@3 key])&] -[s2;%% Places cursor to first item with [%-*@3 key], returns true if -found.&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:Sort`(int`,const ValueOrder`&`,bool`): [@(0.0.255) void]_[* Sort]([@(0.0.255) i -nt]_[*@3 id], [@(0.0.255) const]_[_^ValueOrder^ ValueOrder][@(0.0.255) `&]_[*@3 order], -[@(0.0.255) bool]_[*@3 byvalue]_`=_[@(0.0.255) false])&] -[s2;%% Sorts child items of item with [%-*@3 id] using [%-*@3 order] -sorting predicate. If [%-*@3 byvalue] is false, items are sorted -by keys, if true, by values.&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:SortDeep`(int`,const ValueOrder`&`,bool`): [@(0.0.255) void]_[* SortDeep -]([@(0.0.255) int]_[*@3 id], [@(0.0.255) const]_[_^ValueOrder^ ValueOrder][@(0.0.255) `&]_[*@3 o -rder], [@(0.0.255) bool]_[*@3 byvalue]_`=_[@(0.0.255) false])&] -[s2;%% Sorts child items of item with [%-*@3 id] using [%-*@3 order] -sorting predicate. If [%-*@3 byvalue] is false, items are sorted -by keys, if true, by values. After sorting, it recursively calls -SortDeep for all child items.&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:Sort`(int`,int`(`*`)`(const Value`&v1`,const Value`&v2`)`,bool`): [@(0.0.255) v -oid]_[* Sort]([@(0.0.255) int]_[*@3 id], [@(0.0.255) int]_(`*[*@3 compare])([@(0.0.255) const -]_Value[@(0.0.255) `&]_v1, [@(0.0.255) const]_Value[@(0.0.255) `&]_v2)_`=_StdValueCompa -re, [@(0.0.255) bool]_[*@3 byvalue]_`=_[@(0.0.255) false])&] -[s2;%% Sort with simplified predicate [%-*@3 compare].&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:SortDeep`(int`,int`(`*`)`(const Value`&v1`,const Value`&v2`)`,bool`): [@(0.0.255) v -oid]_[* SortDeep]([@(0.0.255) int]_[*@3 id], [@(0.0.255) int]_(`*[*@3 compare])([@(0.0.255) c -onst]_Value[@(0.0.255) `&]_v1, [@(0.0.255) const]_Value[@(0.0.255) `&]_v2)_`=_StdValueC -ompare, [@(0.0.255) bool]_[*@3 byvalue]_`=_[@(0.0.255) false])&] -[s2;%% SortDeep with simplified predicate [%-*@3 compare].&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:SortByValue`(int`,const ValueOrder`&`): [@(0.0.255) void]_[* SortByValue -]([@(0.0.255) int]_[*@3 id], [@(0.0.255) const]_[_^ValueOrder^ ValueOrder][@(0.0.255) `&]_[*@3 o -rder])&] -[s5;:TreeCtrl`:`:SortDeepByValue`(int`,const ValueOrder`&`): [@(0.0.255) void]_[* SortDee -pByValue]([@(0.0.255) int]_[*@3 id], [@(0.0.255) const]_[_^ValueOrder^ ValueOrder][@(0.0.255) `& -]_[*@3 order])&] -[s5;:TreeCtrl`:`:SortByValue`(int`,int`(`*`)`(const Value`&v1`,const Value`&v2`)`): [@(0.0.255) v -oid]_[* SortByValue]([@(0.0.255) int]_[*@3 id], [@(0.0.255) int]_(`*[*@3 compare])([@(0.0.255) c -onst]_Value[@(0.0.255) `&]_v1, [@(0.0.255) const]_Value[@(0.0.255) `&]_v2)_`=_StdValueC -ompare)&] -[s5;:TreeCtrl`:`:SortDeepByValue`(int`,int`(`*`)`(const Value`&v1`,const Value`&v2`)`): [@(0.0.255) v -oid]_[* SortDeepByValue]([@(0.0.255) int]_[*@3 id], [@(0.0.255) int]_(`*[*@3 compare])([@(0.0.255) c -onst]_Value[@(0.0.255) `&]_v1, [@(0.0.255) const]_Value[@(0.0.255) `&]_v2)_`=_StdValueC -ompare)&] -[s2;%% Convenience variants call their basic counterparts with byvalue -equal to true.&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:Sort`(int`,const ValuePairOrder`&`): [@(0.0.255) void]_[* Sort]([@(0.0.255) i -nt]_[*@3 id], [@(0.0.255) const]_[_^ValuePairOrder^ ValuePairOrder][@(0.0.255) `&]_[*@3 ord -er])&] -[s5;:TreeCtrl`:`:Sort`(int`,int`(`*`)`(const Value`&k1`,const Value`&v1`,const Value`&k2`,const Value`&v2`)`): [@(0.0.255) v -oid]_[* Sort]([@(0.0.255) int]_[*@3 id], [@(0.0.255) int]_(`*[*@3 compare])([@(0.0.255) const -]_Value[@(0.0.255) `&]_k1, [@(0.0.255) const]_Value[@(0.0.255) `&]_v1, -[@(0.0.255) const]_Value[@(0.0.255) `&]_k2, [@(0.0.255) const]_Value[@(0.0.255) `&]_v2))&] -[s2;%% Sorts the children list of parent [%-*@3 id]. Note that if [%-*@3 id] -is 0, the whole tree is sorted. The grandchildren are left intact.&] -[s3;%% &] -[s4; &] -[s5;:TreeCtrl`:`:SortDeep`(int`,const ValuePairOrder`&`): [@(0.0.255) void]_[* SortDeep]( -[@(0.0.255) int]_[*@3 id], [@(0.0.255) const]_[_^ValuePairOrder^ ValuePairOrder][@(0.0.255) `& -]_[*@3 order])&] -[s5;:TreeCtrl`:`:SortDeep`(int`,int`(`*`)`(const Value`&k1`,const Value`&v1`,const Value`&k2`,const Value`&v2`)`): [@(0.0.255) v -oid]_[* SortDeep]([@(0.0.255) int]_[*@3 id], [@(0.0.255) int]_(`*[*@3 compare])([@(0.0.255) c -onst]_Value[@(0.0.255) `&]_k1, [@(0.0.255) const]_Value[@(0.0.255) `&]_v1, -[@(0.0.255) const]_Value[@(0.0.255) `&]_k2, [@(0.0.255) const]_Value[@(0.0.255) `&]_v2))&] -[s2;%% Sorts the subtree of parent [%-*@3 id]. Note that if [%-*@3 id] -is 0, the whole tree is sorted. The grandchildren are sorted -as well.&] -[s3;%% &] -[s4; &] -[s5;:TreeCtrl`:`:Clear`(`): [@(0.0.255) void]_[* Clear]()&] -[s2;%% Removes all items from the tree.&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:ClearSelection`(`): [@(0.0.255) void]_[* ClearSelection]()&] -[s2;%% Clears any selection.&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:SelectOne`(int`,bool`): [@(0.0.255) void]_[* SelectOne]([@(0.0.255) int]_[*@3 i -d], [@(0.0.255) bool]_[*@3 sel])&] -[s2;%% Selects/unselects single item with id.&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:IsSelected`(int`)const: [@(0.0.255) bool]_[* IsSelected]([@(0.0.255) int]_ -[*@3 id])_[@(0.0.255) const]&] -[s2;%% Returns true if item with [%-*@3 id] is selected.&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:IsSel`(int`)const: [@(0.0.255) bool]_[* IsSel]([@(0.0.255) int]_[*@3 id])_[@(0.0.255) c -onst]&] -[s2;%% Returns true if item with [%-*@3 id] is selected [*/ or has cursor][/ .]&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:GetSelectCount`(`)const: [@(0.0.255) int]_[* GetSelectCount]()_[@(0.0.255) c -onst]&] -[s2;%% The number of selected items.&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:IsSelDeep`(int`)const: [@(0.0.255) bool]_[* IsSelDeep]([@(0.0.255) int]_[*@3 i -d])_[@(0.0.255) const]&] -[s2;%% True, if IsSel is true for the item or if IsSelDeep is true -for its parent (if any item in parenthood chain is selected).&] -[s3;%% &] -[s4; &] -[s5;:TreeCtrl`:`:GetSel`(`)const: [_^Vector^ Vector][@(0.0.255) ]_[* GetSel]()_[@(0.0.255) c -onst]&] -[s2;%% Returns ids of all items with IsSel is true (note that it -includes cursor item if there is no selection).&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:Remove`(const Vector``&`): [@(0.0.255) void]_[* Remove]([@(0.0.255) c -onst]_[_^Vector^ Vector][@(0.0.255) `&]_[*@3 id])&] -[s2;%% Removes a set of items, [%-*@3 id ]is a list of item ids to -remove.&] -[s3;%% &] -[s4; &] -[s5;:TreeCtrl`:`:RemoveSelection`(`): [@(0.0.255) void]_[* RemoveSelection]()&] -[s2;%% Same as Remove(GetSel()) `- removes all selected items.&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:Dump`(`): [@(0.0.255) void]_[* Dump]()&] -[s2;%% Diagnostic dump of tree content to standard log. Exists in -debug mode only.&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:NoCursor`(bool`): [_^TreeCtrl^ TreeCtrl][@(0.0.255) `&]_[* NoCursor]([@(0.0.255) b -ool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2;%% Tree does not allow cursor.&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:NoRoot`(bool`): [_^TreeCtrl^ TreeCtrl][@(0.0.255) `&]_[* NoRoot]([@(0.0.255) b -ool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2;%% Root item is not shown.&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:LevelCx`(int`): [_^TreeCtrl^ TreeCtrl][@(0.0.255) `&]_[* LevelCx]([@(0.0.255) i -nt]_[*@3 cx])&] -[s2;%% Indentation per single hierarchy level. Default value is 16 -pixels.&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:MultiSelect`(bool`): [_^TreeCtrl^ TreeCtrl][@(0.0.255) `&]_[* MultiSelect]( -[@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2;%% Allows selection of items.&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:NoBackground`(bool`): [_^TreeCtrl^ TreeCtrl][@(0.0.255) `&]_[* NoBackgroun -d]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2;%% White background of tree is not painted.&] -[s0;%% &] -[s4; &] -[s5;:TreeCtrl`:`:PopUpEx`(bool`): [_^TreeCtrl^ TreeCtrl][@(0.0.255) `&]_[* PopUpEx]([@(0.0.255) b -ool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2;%% In case that the display size of node value is greater than -currently available area, attempts to show the complete value -when cursor hovers over the node.&] -[s3;%% &] -[s4; &] -[s5;:TreeCtrl`:`:NoPopUpEx`(`): [_^TreeCtrl^ TreeCtrl][@(0.0.255) `&]_[* NoPopUpEx]()&] -[s2;%% Same as PopUpEx(false).&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:MouseMoveCursor`(bool`): [_^TreeCtrl^ TreeCtrl][@(0.0.255) `&]_[* MouseMov -eCursor]([@(0.0.255) bool]_[*@3 m]_`=_[@(0.0.255) true])&] -[s2;%% Mouse cursor moves tree cursor without clicking, just by moving -the mouse over the tree.&] -[s3;%% &] -[s4; &] -[s5;:TreeCtrl`:`:Accel`(bool`): [_^TreeCtrl^ TreeCtrl][@(0.0.255) `&]_[* Accel]([@(0.0.255) b -ool]_[*@3 a]_`=_[@(0.0.255) true])&] -[s2;%% Activates simple keyboard accelerator. Node values are converted -using StdFormat to text and then the first letter is used to -find the appropriate item.&] -[s3;%% &] -[s4; &] -[s5;:TreeCtrl`:`:SetDisplay`(const Display`&`): [_^TreeCtrl^ TreeCtrl][@(0.0.255) `&]_[* Se -tDisplay]([@(0.0.255) const]_[_^Display^ Display][@(0.0.255) `&]_[*@3 d])&] -[s2;%% Sets the universal Display used for all node values. This -can be overridden for particular node by assigning node specific -Display.&] -[s3;%% &] -[s4; &] -[s5;:TreeCtrl`:`:HighlightCtrl`(bool`): [_^TreeCtrl^ TreeCtrl][@(0.0.255) `&]_[* HighlightC -trl]([@(0.0.255) bool]_[*@3 a]_`=_[@(0.0.255) true])&] -[s2;%% Paints the background area of embedded widgets with the same -color as that used to paint regular values `- respects selection, -cursor position etc.&] -[s3;%% &] -[s4; &] -[s5;:Upp`:`:TreeCtrl`:`:RenderMultiRoot`(bool`): [_^Upp`:`:TreeCtrl^ TreeCtrl][@(0.0.255) `& -]_[* RenderMultiRoot]([@(0.0.255) bool]_[*@3 a]_`=_[@(0.0.255) true])&] -[s2;%% When active, no lines are drawn connecting zero level nodes -(so it looks like there are multiple roots).&] -[s3;%% &] -[s4; &] -[s5;:Upp`:`:TreeCtrl`:`:EmptyNodeIcon`(const Upp`:`:Image`&`): [_^Upp`:`:TreeCtrl^ Tree -Ctrl][@(0.0.255) `&]_[* EmptyNodeIcon]([@(0.0.255) const]_[_^Upp`:`:Image^ Image][@(0.0.255) `& -]_[*@3 a])&] -[s2;%% When RenderMultiRoot is active and there the node is zero -level and has not elements, [%-*@3 a] is drawn on the left side -to indicate it is empty.&] -[s3;%% &] -[s4; &] -[s5;:TreeCtrl`:`:SetScrollBarStyle`(const ScrollBar`:`:Style`&`): [_^TreeCtrl^ TreeCtrl -][@(0.0.255) `&]_[* SetScrollBarStyle]([@(0.0.255) const]_[_^ScrollBar`:`:Style^ ScrollBa -r`::Style][@(0.0.255) `&]_[*@3 s])&] -[s2;%% Assigns a chameleon visual style of scrollbar of TreeCtrl.&] -[s3;%% &] -[s0;%% &] -[s0; &] -[s0; &] -[ {{10000@3 [s0; [*@(229)4 TreeCtrl`::Node]]}}&] -[s3; &] -[s1;:TreeCtrl`:`:Node`:`:class: [@(0.0.255)3 class][3 _][*3 Node]&] -[s9;%% This class represents the content and appearance of single -TreeCtrl node`-item.&] -[s3; &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0;%% [* Constructor Detail]]}}&] -[s3; &] -[s5;:TreeCtrl`:`:Node`:`:Node`(`): [* Node]()&] -[s2;%% Default constructor.&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:Node`:`:Node`(const Image`&`,const Value`&`): [* Node]([@(0.0.255) const -]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img], [@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `& -]_[*@3 v])&] -[s2;%% Assigns icon, key and value.&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:Node`:`:Node`(const Image`&`,const Value`&`,const Value`&`): [* Node]( -[@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img], [@(0.0.255) const]_[_^Value^ Va -lue][@(0.0.255) `&]_[*@3 v], [@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_[*@3 t])&] -[s2;%% Assigns icon, key and value.&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:Node`:`:Node`(const Value`&`): [* Node]([@(0.0.255) const]_[_^Value^ Value -][@(0.0.255) `&]_[*@3 v])&] -[s2;%% Assigns key and value.&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:Node`:`:Node`(const Value`&`,const Value`&`): [* Node]([@(0.0.255) const -]_[_^Value^ Value][@(0.0.255) `&]_[*@3 v], [@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_ -[*@3 t])&] -[s2;%% Assigns key and value.&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:Node`:`:Node`(Ctrl`&`): [* Node]([_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 ctrl])&] -[s2;%% Assigns widget.&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:Node`:`:Node`(const Image`&`,Ctrl`&`,int`,int`): [* Node]([@(0.0.255) co -nst]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img], [_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 ctrl], -[@(0.0.255) int]_[*@3 cx]_`=_[@3 0], [@(0.0.255) int]_[*@3 cy]_`=_[@3 0])&] -[s2;%% Assigns icon, widget and its dimensions.&] -[s3;%% &] -[s0;%% &] -[ {{10000F(128)G(128)@1 [s0;%% [* Public Member List]]}}&] -[s3; &] -[s5;:TreeCtrl`:`:Node`:`:image: [_^Image^ Image]_[* image]&] -[s2;%% Node icon.&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:Node`:`:margin: [@(0.0.255) int]_[* margin]&] -[s2;%% Space between icon and value of the item, or item`'s widget. -Defaults to 2.&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:Node`:`:key: [_^Value^ Value]_[* key]&] -[s2;%% Item key. This is not displayed.&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:Node`:`:value: [_^Value^ Value]_[* value]&] -[s2;%% Item value.&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:Node`:`:display: [@(0.0.255) const]_[_^Display^ Display]_`*[* display]&] -[s2;%% Display used to render value. Defaults to NULL, which means -StdDisplay is to be used.&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:Node`:`:size: [_^Size^ Size]_[* size]&] -[s2;%% Size of value area. Defaults to Null `- in that case, value -area size is determined by display`->GetStdSize(value) or ctrl`->GetMinSize() -if widget for item is used.&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:Node`:`:ctrl: [_^Ptr^ Ptr][@(0.0.255) <][_^Ctrl^ Ctrl][@(0.0.255) >]_[* ctrl]&] -[s2;%% Widget associated with item.&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:Node`:`:canopen: [@(0.0.255) bool]_[* canopen]&] -[s2;%% Item can be opened.&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:Node`:`:canselect: [@(0.0.255) bool]_[* canselect]&] -[s2;%% Item can be selected.&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:Node`:`:SetImage`(const Image`&`): [_^TreeCtrl`:`:Node^ Node][@(0.0.255) `& -]_[* SetImage]([@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img])&] -[s2;%% Sets image.&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:Node`:`:Set`(const Value`&`): [_^TreeCtrl`:`:Node^ Node][@(0.0.255) `&]_ -[* Set]([@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_[*@3 v])&] -[s2;%% Sets both key and value to [%-*@3 v].&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:Node`:`:Set`(const Value`&`,const Value`&`): [_^TreeCtrl`:`:Node^ Node -][@(0.0.255) `&]_[* Set]([@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_[*@3 v], -[@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_[*@3 t])&] -[s2;%% Sets key and value.&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:Node`:`:SetDisplay`(const Display`&`): [_^TreeCtrl`:`:Node^ Node][@(0.0.255) `& -]_[* SetDisplay]([@(0.0.255) const]_[_^Display^ Display][@(0.0.255) `&]_[*@3 d])&] -[s2;%% Sets display.&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:Node`:`:SetSize`(Size`): [_^TreeCtrl`:`:Node^ Node][@(0.0.255) `&]_[* SetS -ize]([_^Size^ Size]_[*@3 sz])&] -[s2;%% Sets size.&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:Node`:`:SetCtrl`(Ctrl`&`): [_^TreeCtrl`:`:Node^ Node][@(0.0.255) `&]_[* Se -tCtrl]([_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 `_ctrl])&] -[s2;%% Sets widget.&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:Node`:`:CanOpen`(bool`): [_^TreeCtrl`:`:Node^ Node][@(0.0.255) `&]_[* CanO -pen]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2;%% Sets canopen flag.&] -[s3; &] -[s4; &] -[s5;:TreeCtrl`:`:Node`:`:CanSelect`(bool`): [_^TreeCtrl`:`:Node^ Node][@(0.0.255) `&]_[* Ca -nSelect]([@(0.0.255) bool]_[*@3 b])&] -[s2;%% Sets canselect flag.&] -[s3; &] +topic "TreeCtrl"; +[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,0#27521748481378242620020725143825:desc] +[0 $$3,0#96390100711032703541132217272105:end] +[H6;0 $$4,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] +[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] +[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] +[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] +[b42;2 $$9,9#13035079074754324216151401829390:normal] +[{_} +[ {{10000@3 [s0; [*@(229)4 TreeCtrl]]}}&] +[s3;%% &] +[s1;:TreeCtrl`:`:class: [@(0.0.255)3 class][3 _][*3 TreeCtrl][3 _:_][@(0.0.255)3 public][3 _][*@3;3 C +trl]&] +[s2;%% &] +[s2;%% +@@image:1212&1156 +(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) +&] +[s0;%% &] +[s9;%% TreeCtrl hierarchy management is based on integer id numbers. +Each node in tree (item) has associated integer id unique for +the tree. Child nodes of item are organized as an array. TreeCtrl +provides operation to insert child nodes at specified array position +and to query child and parent nodes. Root item has fixed id 0.&] +[s3;%% &] +[s0;%% &] +[ {{10000F(128)G(128)@1 [s0;%% [* Public Member List]]}}&] +[s3; &] +[s5;:TreeCtrl`:`:WhenOpen: [_^Callback1^ Callback1][@(0.0.255) ]_[* WhenOpen]&] +[s2;%% Tree item was opened, parameter is the item id. &] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:WhenClose: [_^Callback1^ Callback1][@(0.0.255) ]_[* WhenClose]&] +[s2;%% Tree item was closed, parameter is the item id. &] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:WhenLeftClick: [_^Callback^ Callback]_[* WhenLeftClick]&] +[s2;%% Tree item was clicked. Cursor identifies clicked item. You +can get the click position within the item using GetItemClickPos +method.&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:WhenLeftDouble: [_^Callback^ Callback]_[* WhenLeftDouble]&] +[s2;%% Tree item was double`-clicked. Cursor identifies clicked item. +You can get the click position within the item using GetItemClickPos +method.&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:WhenBar: [_^Callback1^ Callback1][@(0.0.255) <]Bar[@(0.0.255) `&>]_[* WhenBa +r]&] +[s2;%% Use to supply context menu.&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:WhenSel: [_^Callback^ Callback]_[* WhenSel]&] +[s2;%% Cursor or selection has changed (including KillCursor).&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:WhenDrag: [_^Callback^ Callback]_[* WhenDrag]&] +[s2;%% Triggered when user attempts dragging an item.&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:WhenDropItem: [_^Callback2^ Callback2][@(0.0.255) ]_[* WhenDropItem]&] +[s2;%% This callback manages drag`&drop into TreeCtrl items. The +first parameter is an id of item. See [^PasteClip^ PasteClip] for +more details.&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:WhenDropInsert: [_^Callback3^ Callback3][@(0.0.255) ]_[* WhenDropInsert]&] +[s2;%% This callback manages drag`&drop into insert positions between +TreeCtrl items. The first parameter is an id of parent item, +the second parameter is insert index within parent`'s child list. +See [^PasteClip^ PasteClip] for more details.&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:WhenDrop: [_^Callback1^ Callback1][@(0.0.255) <]PasteClip[@(0.0.255) `&>]_ +[* WhenDrop]&] +[s2;%% This callback manages drag`&drop when WhenDropItem and WhenDropInsert +do not apply `- drop into empty area. See [^PasteClip^ PasteClip] +for more details.&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:WhenCursor: [_^Callback^ Callback]_[* WhenCursor]&] +[s2;%% Cursor has changed (including KillCursor). Deprecated.&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:WhenSelection: [_^Callback^ Callback]_[* WhenSelection]&] +[s2;%% Selection has changed. Deprecated.&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:SetRoot`(const TreeCtrl`:`:Node`&`): [@(0.0.255) void]_[* SetRoot]([@(0.0.255) c +onst]_[_^TreeCtrl`:`:Node^ TreeCtrl`::Node][@(0.0.255) `&]_[*@3 n])&] +[s2;%% Sets the content of root item to [%-*@3 n]. Full deep copy of +[%-*@3 n] is performed.&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:SetRoot`(const Image`&`,Value`): [@(0.0.255) void]_[* SetRoot]([@(0.0.255) c +onst]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img], [_^Value^ Value]_[*@3 v])&] +[s2;%% Sets image, key and value of root item. [%-*@3 v] is used both +for key and value.&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:SetRoot`(const Image`&`,Value`,Value`): [@(0.0.255) void]_[* SetRoot]([@(0.0.255) c +onst]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img], [_^Value^ Value]_[*@3 key], +[_^Value^ Value]_[*@3 text])&] +[s2;%% Sets the image, key and value of root item.&] +[s3;%% &] +[s4; &] +[s5;:TreeCtrl`:`:SetRoot`(const Image`&`,Ctrl`&`,int`,int`): [@(0.0.255) void]_[* SetRoot +]([@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img], [_^Ctrl^ Ctrl][@(0.0.255) `&]_ +[*@3 ctrl], [@(0.0.255) int]_[*@3 cx]_`=_[@3 0], [@(0.0.255) int]_[*@3 cy]_`=_[@3 0])&] +[s2;%% Sets widget to be at root item. Only reference to [%-*@3 ctrl] +is stored `-> widget object lifetime must exceed TreeCtrl`'s +lifetime. Dimensions of widget should be [%-*@3 cx], [%-*@3 cy]. +If either [%-*@3 cx] or [%-*@3 cy] are zero, GetMinSize dimension +is used.&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:Insert`(int`,int`,const TreeCtrl`:`:Node`&`): [@(0.0.255) int]_[* Insert +]([@(0.0.255) int]_[*@3 parentid], [@(0.0.255) int]_[*@3 i], [@(0.0.255) const]_[_^TreeCtrl`:`:Node^ T +reeCtrl`::Node][@(0.0.255) `&]_[*@3 n])&] +[s5;:TreeCtrl`:`:Insert`(int`,int`): [@(0.0.255) int]_[* Insert]([@(0.0.255) int]_[*@3 parent +id], [@(0.0.255) int]_[*@3 i])&] +[s5;:TreeCtrl`:`:Insert`(int`,int`,const Image`&`,Value`,bool`): [@(0.0.255) int]_[* Inse +rt]([@(0.0.255) int]_[*@3 parentid], [@(0.0.255) int]_[*@3 i], [@(0.0.255) const]_[_^Image^ I +mage][@(0.0.255) `&]_[*@3 img], [_^Value^ Value]_[*@3 value], [@(0.0.255) bool]_[*@3 withopen +]_`=_[@(0.0.255) false])&] +[s5;:TreeCtrl`:`:Insert`(int`,int`,const Image`&`,Value`,Value`,bool`): [@(0.0.255) int +]_[* Insert]([@(0.0.255) int]_[*@3 parentid], [@(0.0.255) int]_[*@3 i], +[@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img], [_^Value^ Value]_[*@3 key], +[_^Value^ Value]_[*@3 value], [@(0.0.255) bool]_[*@3 withopen]_`=_[@(0.0.255) false])&] +[s5;:TreeCtrl`:`:Insert`(int`,int`,const Image`&`,Ctrl`&`,int`,int`,bool`): [@(0.0.255) i +nt]_[* Insert]([@(0.0.255) int]_[*@3 parentid], [@(0.0.255) int]_[*@3 i], +[@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img], [_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 c +], [@(0.0.255) int]_[*@3 cx]_`=_[@3 0], [@(0.0.255) int]_[*@3 cy]_`=_[@3 0], +[@(0.0.255) bool]_[*@3 wo]_`=_[@(0.0.255) false])&] +[s5;:TreeCtrl`:`:Insert`(int`,int`,const Image`&`,Value`,const String`&`,bool`): [@(0.0.255) i +nt]_[* Insert]([@(0.0.255) int]_[*@3 parentid], [@(0.0.255) int]_[*@3 i], +[@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img], [_^Value^ Value]_[*@3 key], +[@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 value], [@(0.0.255) bool]_[*@3 with +open]_`=_[@(0.0.255) false])&] +[s5;:TreeCtrl`:`:Insert`(int`,int`,const Image`&`,Value`,const char`*`,bool`): [@(0.0.255) i +nt]_[* Insert]([@(0.0.255) int]_[*@3 parentid], [@(0.0.255) int]_[*@3 i], +[@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img], [_^Value^ Value]_[*@3 key], +[@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 value], [@(0.0.255) bool]_[*@3 withopen]_`=_[@(0.0.255) f +alse])&] +[s2; Inserts child item to parent specified by id. Distinct variants +set various attributes to TreeCtrl`::Node of insterted item. Returns +id of new item. Note: Last two overloads are to avoid overloading +ambiguity.&] +[s3;%% &] +[s4; &] +[s5;:TreeCtrl`:`:Add`(int`,const TreeCtrl`:`:Node`&`): [@(0.0.255) int]_[* Add]([@(0.0.255) i +nt]_[*@3 parentid], [@(0.0.255) const]_[_^TreeCtrl`:`:Node^ TreeCtrl`::Node][@(0.0.255) `& +]_[*@3 n])&] +[s5;:TreeCtrl`:`:Add`(int`): [@(0.0.255) int]_[* Add]([@(0.0.255) int]_[*@3 parentid])&] +[s5;:TreeCtrl`:`:Add`(int`,const Image`&`,Value`,bool`): [@(0.0.255) int]_[* Add]([@(0.0.255) i +nt]_[*@3 parentid], [@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img], +[_^Value^ Value]_[*@3 value], [@(0.0.255) bool]_[*@3 withopen]_`=_[@(0.0.255) false])&] +[s5;:TreeCtrl`:`:Add`(int`,const Image`&`,Value`,Value`,bool`): [@(0.0.255) int]_[* Add]( +[@(0.0.255) int]_[*@3 parentid], [@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img], + [_^Value^ Value]_[*@3 key], [_^Value^ Value]_[*@3 value], [@(0.0.255) bool]_[*@3 withopen]_`= +_[@(0.0.255) false])&] +[s5;:TreeCtrl`:`:Add`(int`,const Image`&`,Ctrl`&`,int`,int`,bool`): [@(0.0.255) int]_[* A +dd]([@(0.0.255) int]_[*@3 parentid], [@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 i +mg], [_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 ctrl], [@(0.0.255) int]_[*@3 cx]_`=_[@3 0], +[@(0.0.255) int]_[*@3 cy]_`=_[@3 0], [@(0.0.255) bool]_[*@3 withopen]_`=_[@(0.0.255) false])&] +[s5;:TreeCtrl`:`:Add`(int`,const Image`&`,Value`,const String`&`,bool`): [@(0.0.255) in +t]_[* Add]([@(0.0.255) int]_[*@3 parentid], [@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `& +]_[*@3 img], [_^Value^ Value]_[*@3 key], [@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_ +[*@3 value], [@(0.0.255) bool]_[*@3 withopen]_`=_[@(0.0.255) false])&] +[s5;:TreeCtrl`:`:Add`(int`,const Image`&`,Value`,const char`*`,bool`): [@(0.0.255) int]_ +[* Add]([@(0.0.255) int]_[*@3 parentid], [@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 i +mg], [_^Value^ Value]_[*@3 key], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 value], +[@(0.0.255) bool]_[*@3 withopen]_`=_[@(0.0.255) false])&] +[s2; Inserts child item at the end of list of parent`'s child items. +Parent is specified by id. Distinct variants set various attributes +to TreeCtrl`::Node of insterted item. Returns id of new item. +Note: Last two overloads are to avoid overloading ambiguity.&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:Remove`(int`): [@(0.0.255) void]_[* Remove]([@(0.0.255) int]_[*@3 id])&] +[s2;%% Removes item with [%-*@3 id] from the tree.&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:RemoveChildren`(int`): [@(0.0.255) void]_[* RemoveChildren]([@(0.0.255) in +t]_[*@3 id])&] +[s2;%% Removes all child items from parent item with [%-*@3 id].&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:Swap`(int`,int`): [@(0.0.255) void]_[* Swap]([@(0.0.255) int]_[*@3 id1], +[@(0.0.255) int]_[*@3 id2])&] +[s2;%% Swaps two tree items.&] +[s3;%% &] +[s4; &] +[s5;:TreeCtrl`:`:SwapChildren`(int`,int`,int`): [@(0.0.255) void]_[* SwapChildren]([@(0.0.255) i +nt]_[*@3 parentid], [@(0.0.255) int]_[*@3 i1], [@(0.0.255) int]_[*@3 i2])&] +[s2;%% Swaps [%-*@3 parentid] children with indices [%-*@3 i1] and [%-*@3 i2].&] +[s3;%% &] +[s4; &] +[s5;:TreeCtrl`:`:GetChildCount`(int`)const: [@(0.0.255) int]_[* GetChildCount]([@(0.0.255) i +nt]_[*@3 id])_[@(0.0.255) const]&] +[s2;%% Returns the number of child items of parent item with [%-*@3 id].&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:GetChild`(int`,int`)const: [@(0.0.255) int]_[* GetChild]([@(0.0.255) int]_ +[*@3 id], [@(0.0.255) int]_[*@3 i])_[@(0.0.255) const]&] +[s2;%% Returns the identifier of child at index [%-*@3 i] of parent +item with [%-*@3 id].&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:GetChildIndex`(int`,int`)const: [@(0.0.255) int]_[* GetChildIndex]([@(0.0.255) i +nt]_[*@3 parentid], [@(0.0.255) int]_[*@3 childid])_[@(0.0.255) const]&] +[s2;%% Returns an index of child item of [%-*@3 parentid] with id [%-*@3 childid].&] +[s3;%% &] +[s4; &] +[s5;:TreeCtrl`:`:GetParent`(int`)const: [@(0.0.255) int]_[* GetParent]([@(0.0.255) int]_[*@3 i +d])_[@(0.0.255) const]&] +[s2;%% Returns the parent identifier of child with [%-*@3 id].&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:Get`(int`)const: [_^Value^ Value]_[* Get]([@(0.0.255) int]_[*@3 id])_[@(0.0.255) c +onst]&] +[s3;^Value^ &] +[s4;^Value^ &] +[s5;:TreeCtrl`:`:GetValue`(int`)const: [_^Value^ Value]_[* GetValue]([@(0.0.255) int]_[*@3 id +])_[@(0.0.255) const]&] +[s2;%% Returns the value of item with [%-*@3 id].&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:operator`[`]`(int`)const: [_^Value^ Value]_[* operator`[`]]([@(0.0.255) in +t]_[*@3 id])_[@(0.0.255) const]&] +[s2;%% Returns the key of item with [%-*@3 id].&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:Set`(int`,Value`): [@(0.0.255) void]_[* Set]([@(0.0.255) int]_[*@3 id], +[_^Value^ Value]_[*@3 v])&] +[s2;%% Sets the value [/ and] key of item with [%-*@3 id].&] +[s3;%% &] +[s4; &] +[s5;:TreeCtrl`:`:Set`(int`,Value`,Value`): [@(0.0.255) void]_[* Set]([@(0.0.255) int]_[*@3 id +], [_^Value^ Value]_[*@3 key], [_^Value^ Value]_[*@3 value])&] +[s2;%% Sets the value and key of item with [%-*@3 id].&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:SetValue`(const Value`&`): [@(0.0.255) void]_[* SetValue]([@(0.0.255) cons +t]_[_^Value^ Value][@(0.0.255) `&]_[*@3 v])&] +[s2;%% Sets the value of item with cursor, key is unchanged.&] +[s3;%% &] +[s4; &] +[s5;:TreeCtrl`:`:SetDisplay`(int`,const Display`&`): [@(0.0.255) void]_[* SetDisplay]([@(0.0.255) i +nt]_[*@3 id], [@(0.0.255) const]_[_^Display^ Display][@(0.0.255) `&]_[*@3 display])&] +[s2;%% Sets the display of [%-*@3 id] item.&] +[s3;%% &] +[s4; &] +[s5;:TreeCtrl`:`:RefreshItem`(int`): [@(0.0.255) void]_[* RefreshItem]([@(0.0.255) int]_[*@3 i +d])&] +[s2;%% Forces the repainting of item (e.g. when its appearance changes +in a way that cannot be detected by TreeCtrl widget).&] +[s3;%% &] +[s4; &] +[s5;:TreeCtrl`:`:GetLineCount`(`): [@(0.0.255) int]_[* GetLineCount]()&] +[s2;%% Gets the current number of lines `- visible items `- in TreeCtrl.&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:GetItemAtLine`(int`): [@(0.0.255) int]_[* GetItemAtLine]([@(0.0.255) int]_ +[*@3 i])&] +[s2;%% Gets the id of item at line i.&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:GetLineAtItem`(int`): [@(0.0.255) int]_[* GetLineAtItem]([@(0.0.255) int]_ +[*@3 id])&] +[s2;%% Gets the line of item with [%-*@3 id]. If item is not visible, +returns negative value.&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:GetNode`(int`)const: [_^TreeCtrl`:`:Node^ Node]_[* GetNode]([@(0.0.255) in +t]_[*@3 id])_[@(0.0.255) const]&] +[s2;%% Returns attributes of item with [%-*@3 id].&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:SetNode`(int`,const TreeCtrl`:`:Node`&`): [@(0.0.255) void]_[* SetNode]( +[@(0.0.255) int]_[*@3 id], [@(0.0.255) const]_[_^TreeCtrl`:`:Node^ TreeCtrl`::Node][@(0.0.255) `& +]_[*@3 n])&] +[s2;%% Sets attributes.&] +[s3; &] +[s4; &] +[s5;:Upp`:`:TreeCtrl`:`:IsValid`(int`)const: [@(0.0.255) bool]_[* IsValid]([@(0.0.255) int]_ +[*@3 id])_[@(0.0.255) const]&] +[s2;%% Returns true if [%-*@3 id] represents a valid node id.&] +[s3;%% &] +[s4; &] +[s5;:TreeCtrl`:`:IsOpen`(int`)const: [@(0.0.255) bool]_[* IsOpen]([@(0.0.255) int]_[*@3 id])_ +[@(0.0.255) const]&] +[s2;%% Tests whether item is opened.&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:Open`(int`,bool`): [@(0.0.255) void]_[* Open]([@(0.0.255) int]_[*@3 id], +[@(0.0.255) bool]_[*@3 open]_`=_[@(0.0.255) true])&] +[s2;%% Opens or closes (if [%-*@3 open] is false) item with id `- makes +all child items visible.&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:Close`(int`): [@(0.0.255) void]_[* Close]([@(0.0.255) int]_[*@3 id])&] +[s2;%% Same as Open(id, false).&] +[s3; &] +[s4; &] +[s5;:Upp`:`:TreeCtrl`:`:GetOpenIds`(`)const: [_^Upp`:`:Vector^ Vector]<[@(0.0.255) int]>_ +[* GetOpenIds]()_[@(0.0.255) const]&] +[s2;%% Returns all open node ids.&] +[s3; &] +[s4; &] +[s5;:Upp`:`:TreeCtrl`:`:OpenIds`(const Upp`:`:Vector``&`): [@(0.0.255) void]_[* Ope +nIds]([@(0.0.255) const]_[_^Upp`:`:Vector^ Vector]<[@(0.0.255) int]>`&_[*@3 ids])&] +[s2;%% Opens all valid [%-*@3 ids].&] +[s3;%% &] +[s4; &] +[s5;:TreeCtrl`:`:OpenDeep`(int`,bool`): [@(0.0.255) void]_[* OpenDeep]([@(0.0.255) int]_[*@3 i +d], [@(0.0.255) bool]_[*@3 open]_`=_[@(0.0.255) true])&] +[s2;%% Opens/closes item with [%-*@3 id] and all of its child items.&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:CloseDeep`(int`): [@(0.0.255) void]_[* CloseDeep]([@(0.0.255) int]_[*@3 id]) +&] +[s2;%% Same as OpenDeep([%-*@3 id], false).&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:MakeVisible`(int`): [@(0.0.255) void]_[* MakeVisible]([@(0.0.255) int]_[*@3 i +d])&] +[s2;%% Opens all parent items of item with [%-*@3 id] to make it visible.&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:SetCursorLine`(int`): [@(0.0.255) void]_[* SetCursorLine]([@(0.0.255) int]_ +[*@3 i])&] +[s2;%% Sets cursor in the tree to be at visible item line [%-*@3 i].&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:GetCursorLine`(`)const: [@(0.0.255) int]_[* GetCursorLine]()_[@(0.0.255) c +onst]&] +[s2;%% Returns visible item line.&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:KillCursor`(`): [@(0.0.255) void]_[* KillCursor]()&] +[s2;%% Removes cursor from tree.&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:SetCursor`(int`): [@(0.0.255) void]_[* SetCursor]([@(0.0.255) int]_[*@3 id]) +&] +[s2;%% Sets cursor to item with [%-*@3 id]. If item is not visible, +MakeVisible(id) is called first.&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:GetCursor`(`)const: [@(0.0.255) int]_[* GetCursor]()_[@(0.0.255) const]&] +[s2;%% Returns id of item that currently has cursor or negative value +if there is none.&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:IsCursor`(`)const: [@(0.0.255) bool]_[* IsCursor]()_[@(0.0.255) const]&] +[s2;%% Returns true if there is cursor in the tree.&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:GetItemClickPos`(`)const: [_^Point^ Point]_[* GetItemClickPos]()_[@(0.0.255) c +onst]&] +[s2;%% Returns current mouse position within item Display rectangle +when clicked.&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:GetScroll`(`)const: [_^Point^ Point]_[* GetScroll]()_[@(0.0.255) const]&] +[s2;%% Returns the scroll position of tree.&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:ScrollTo`(Point`): [@(0.0.255) void]_[* ScrollTo]([_^Point^ Point]_[*@3 sc]) +&] +[s2;%% Scrolls tree back to value previously returned by GetScroll.&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:Get`(`)const: [_^Value^ Value]_[* Get]()_[@(0.0.255) const]&] +[s2;%% Returns key of item with cursor or Null if there is none.&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:GetValue`(`)const: [_^Value^ Value]_[* GetValue]()_[@(0.0.255) const]&] +[s2;%% Returns value of item with cursor or Null if there is none.&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:Find`(Value`): [@(0.0.255) int]_[* Find]([_^Value^ Value]_[*@3 key])&] +[s2;%% Returns id of item with [%-*@3 key] or negative value if not +found.&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:FindSetCursor`(Value`): [@(0.0.255) bool]_[* FindSetCursor]([_^Value^ Valu +e]_[*@3 key])&] +[s2;%% Places cursor to first item with [%-*@3 key], returns true if +found.&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:Sort`(int`,const ValueOrder`&`,bool`): [@(0.0.255) void]_[* Sort]([@(0.0.255) i +nt]_[*@3 id], [@(0.0.255) const]_[_^ValueOrder^ ValueOrder][@(0.0.255) `&]_[*@3 order], +[@(0.0.255) bool]_[*@3 byvalue]_`=_[@(0.0.255) false])&] +[s2;%% Sorts child items of item with [%-*@3 id] using [%-*@3 order] +sorting predicate. If [%-*@3 byvalue] is false, items are sorted +by keys, if true, by values.&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:SortDeep`(int`,const ValueOrder`&`,bool`): [@(0.0.255) void]_[* SortDeep +]([@(0.0.255) int]_[*@3 id], [@(0.0.255) const]_[_^ValueOrder^ ValueOrder][@(0.0.255) `&]_[*@3 o +rder], [@(0.0.255) bool]_[*@3 byvalue]_`=_[@(0.0.255) false])&] +[s2;%% Sorts child items of item with [%-*@3 id] using [%-*@3 order] +sorting predicate. If [%-*@3 byvalue] is false, items are sorted +by keys, if true, by values. After sorting, it recursively calls +SortDeep for all child items.&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:Sort`(int`,int`(`*`)`(const Value`&v1`,const Value`&v2`)`,bool`): [@(0.0.255) v +oid]_[* Sort]([@(0.0.255) int]_[*@3 id], [@(0.0.255) int]_(`*[*@3 compare])([@(0.0.255) const +]_Value[@(0.0.255) `&]_v1, [@(0.0.255) const]_Value[@(0.0.255) `&]_v2)_`=_StdValueCompa +re, [@(0.0.255) bool]_[*@3 byvalue]_`=_[@(0.0.255) false])&] +[s2;%% Sort with simplified predicate [%-*@3 compare].&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:SortDeep`(int`,int`(`*`)`(const Value`&v1`,const Value`&v2`)`,bool`): [@(0.0.255) v +oid]_[* SortDeep]([@(0.0.255) int]_[*@3 id], [@(0.0.255) int]_(`*[*@3 compare])([@(0.0.255) c +onst]_Value[@(0.0.255) `&]_v1, [@(0.0.255) const]_Value[@(0.0.255) `&]_v2)_`=_StdValueC +ompare, [@(0.0.255) bool]_[*@3 byvalue]_`=_[@(0.0.255) false])&] +[s2;%% SortDeep with simplified predicate [%-*@3 compare].&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:SortByValue`(int`,const ValueOrder`&`): [@(0.0.255) void]_[* SortByValue +]([@(0.0.255) int]_[*@3 id], [@(0.0.255) const]_[_^ValueOrder^ ValueOrder][@(0.0.255) `&]_[*@3 o +rder])&] +[s5;:TreeCtrl`:`:SortDeepByValue`(int`,const ValueOrder`&`): [@(0.0.255) void]_[* SortDee +pByValue]([@(0.0.255) int]_[*@3 id], [@(0.0.255) const]_[_^ValueOrder^ ValueOrder][@(0.0.255) `& +]_[*@3 order])&] +[s5;:TreeCtrl`:`:SortByValue`(int`,int`(`*`)`(const Value`&v1`,const Value`&v2`)`): [@(0.0.255) v +oid]_[* SortByValue]([@(0.0.255) int]_[*@3 id], [@(0.0.255) int]_(`*[*@3 compare])([@(0.0.255) c +onst]_Value[@(0.0.255) `&]_v1, [@(0.0.255) const]_Value[@(0.0.255) `&]_v2)_`=_StdValueC +ompare)&] +[s5;:TreeCtrl`:`:SortDeepByValue`(int`,int`(`*`)`(const Value`&v1`,const Value`&v2`)`): [@(0.0.255) v +oid]_[* SortDeepByValue]([@(0.0.255) int]_[*@3 id], [@(0.0.255) int]_(`*[*@3 compare])([@(0.0.255) c +onst]_Value[@(0.0.255) `&]_v1, [@(0.0.255) const]_Value[@(0.0.255) `&]_v2)_`=_StdValueC +ompare)&] +[s2;%% Convenience variants call their basic counterparts with byvalue +equal to true.&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:Sort`(int`,const ValuePairOrder`&`): [@(0.0.255) void]_[* Sort]([@(0.0.255) i +nt]_[*@3 id], [@(0.0.255) const]_[_^ValuePairOrder^ ValuePairOrder][@(0.0.255) `&]_[*@3 ord +er])&] +[s5;:TreeCtrl`:`:Sort`(int`,int`(`*`)`(const Value`&k1`,const Value`&v1`,const Value`&k2`,const Value`&v2`)`): [@(0.0.255) v +oid]_[* Sort]([@(0.0.255) int]_[*@3 id], [@(0.0.255) int]_(`*[*@3 compare])([@(0.0.255) const +]_Value[@(0.0.255) `&]_k1, [@(0.0.255) const]_Value[@(0.0.255) `&]_v1, +[@(0.0.255) const]_Value[@(0.0.255) `&]_k2, [@(0.0.255) const]_Value[@(0.0.255) `&]_v2))&] +[s2;%% Sorts the children list of parent [%-*@3 id]. Note that if [%-*@3 id] +is 0, the whole tree is sorted. The grandchildren are left intact.&] +[s3;%% &] +[s4; &] +[s5;:TreeCtrl`:`:SortDeep`(int`,const ValuePairOrder`&`): [@(0.0.255) void]_[* SortDeep]( +[@(0.0.255) int]_[*@3 id], [@(0.0.255) const]_[_^ValuePairOrder^ ValuePairOrder][@(0.0.255) `& +]_[*@3 order])&] +[s5;:TreeCtrl`:`:SortDeep`(int`,int`(`*`)`(const Value`&k1`,const Value`&v1`,const Value`&k2`,const Value`&v2`)`): [@(0.0.255) v +oid]_[* SortDeep]([@(0.0.255) int]_[*@3 id], [@(0.0.255) int]_(`*[*@3 compare])([@(0.0.255) c +onst]_Value[@(0.0.255) `&]_k1, [@(0.0.255) const]_Value[@(0.0.255) `&]_v1, +[@(0.0.255) const]_Value[@(0.0.255) `&]_k2, [@(0.0.255) const]_Value[@(0.0.255) `&]_v2))&] +[s2;%% Sorts the subtree of parent [%-*@3 id]. Note that if [%-*@3 id] +is 0, the whole tree is sorted. The grandchildren are sorted +as well.&] +[s3;%% &] +[s4; &] +[s5;:TreeCtrl`:`:Clear`(`): [@(0.0.255) void]_[* Clear]()&] +[s2;%% Removes all items from the tree.&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:ClearSelection`(`): [@(0.0.255) void]_[* ClearSelection]()&] +[s2;%% Clears any selection.&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:SelectOne`(int`,bool`): [@(0.0.255) void]_[* SelectOne]([@(0.0.255) int]_[*@3 i +d], [@(0.0.255) bool]_[*@3 sel])&] +[s2;%% Selects/unselects single item with id.&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:IsSelected`(int`)const: [@(0.0.255) bool]_[* IsSelected]([@(0.0.255) int]_ +[*@3 id])_[@(0.0.255) const]&] +[s2;%% Returns true if item with [%-*@3 id] is selected.&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:IsSel`(int`)const: [@(0.0.255) bool]_[* IsSel]([@(0.0.255) int]_[*@3 id])_[@(0.0.255) c +onst]&] +[s2;%% Returns true if item with [%-*@3 id] is selected [*/ or has cursor][/ .]&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:GetSelectCount`(`)const: [@(0.0.255) int]_[* GetSelectCount]()_[@(0.0.255) c +onst]&] +[s2;%% The number of selected items.&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:IsSelDeep`(int`)const: [@(0.0.255) bool]_[* IsSelDeep]([@(0.0.255) int]_[*@3 i +d])_[@(0.0.255) const]&] +[s2;%% True, if IsSel is true for the item or if IsSelDeep is true +for its parent (if any item in parenthood chain is selected).&] +[s3;%% &] +[s4; &] +[s5;:TreeCtrl`:`:GetSel`(`)const: [_^Vector^ Vector][@(0.0.255) ]_[* GetSel]()_[@(0.0.255) c +onst]&] +[s2;%% Returns ids of all items with IsSel is true (note that it +includes cursor item if there is no selection).&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:Remove`(const Vector``&`): [@(0.0.255) void]_[* Remove]([@(0.0.255) c +onst]_[_^Vector^ Vector][@(0.0.255) `&]_[*@3 id])&] +[s2;%% Removes a set of items, [%-*@3 id ]is a list of item ids to +remove.&] +[s3;%% &] +[s4; &] +[s5;:TreeCtrl`:`:RemoveSelection`(`): [@(0.0.255) void]_[* RemoveSelection]()&] +[s2;%% Same as Remove(GetSel()) `- removes all selected items.&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:Dump`(`): [@(0.0.255) void]_[* Dump]()&] +[s2;%% Diagnostic dump of tree content to standard log. Exists in +debug mode only.&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:NoCursor`(bool`): [_^TreeCtrl^ TreeCtrl][@(0.0.255) `&]_[* NoCursor]([@(0.0.255) b +ool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2;%% Tree does not allow cursor.&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:NoRoot`(bool`): [_^TreeCtrl^ TreeCtrl][@(0.0.255) `&]_[* NoRoot]([@(0.0.255) b +ool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2;%% Root item is not shown.&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:LevelCx`(int`): [_^TreeCtrl^ TreeCtrl][@(0.0.255) `&]_[* LevelCx]([@(0.0.255) i +nt]_[*@3 cx])&] +[s2;%% Indentation per single hierarchy level. Default value is 16 +pixels.&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:MultiSelect`(bool`): [_^TreeCtrl^ TreeCtrl][@(0.0.255) `&]_[* MultiSelect]( +[@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2;%% Allows selection of items.&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:NoBackground`(bool`): [_^TreeCtrl^ TreeCtrl][@(0.0.255) `&]_[* NoBackgroun +d]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2;%% White background of tree is not painted.&] +[s0;%% &] +[s4; &] +[s5;:TreeCtrl`:`:PopUpEx`(bool`): [_^TreeCtrl^ TreeCtrl][@(0.0.255) `&]_[* PopUpEx]([@(0.0.255) b +ool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2;%% In case that the display size of node value is greater than +currently available area, attempts to show the complete value +when cursor hovers over the node.&] +[s3;%% &] +[s4; &] +[s5;:TreeCtrl`:`:NoPopUpEx`(`): [_^TreeCtrl^ TreeCtrl][@(0.0.255) `&]_[* NoPopUpEx]()&] +[s2;%% Same as PopUpEx(false).&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:MouseMoveCursor`(bool`): [_^TreeCtrl^ TreeCtrl][@(0.0.255) `&]_[* MouseMov +eCursor]([@(0.0.255) bool]_[*@3 m]_`=_[@(0.0.255) true])&] +[s2;%% Mouse cursor moves tree cursor without clicking, just by moving +the mouse over the tree.&] +[s3;%% &] +[s4; &] +[s5;:TreeCtrl`:`:Accel`(bool`): [_^TreeCtrl^ TreeCtrl][@(0.0.255) `&]_[* Accel]([@(0.0.255) b +ool]_[*@3 a]_`=_[@(0.0.255) true])&] +[s2;%% Activates simple keyboard accelerator. Node values are converted +using StdFormat to text and then the first letter is used to +find the appropriate item.&] +[s3;%% &] +[s4; &] +[s5;:TreeCtrl`:`:SetDisplay`(const Display`&`): [_^TreeCtrl^ TreeCtrl][@(0.0.255) `&]_[* Se +tDisplay]([@(0.0.255) const]_[_^Display^ Display][@(0.0.255) `&]_[*@3 d])&] +[s2;%% Sets the universal Display used for all node values. This +can be overridden for particular node by assigning node specific +Display.&] +[s3;%% &] +[s4; &] +[s5;:TreeCtrl`:`:HighlightCtrl`(bool`): [_^TreeCtrl^ TreeCtrl][@(0.0.255) `&]_[* HighlightC +trl]([@(0.0.255) bool]_[*@3 a]_`=_[@(0.0.255) true])&] +[s2;%% Paints the background area of embedded widgets with the same +color as that used to paint regular values `- respects selection, +cursor position etc.&] +[s3;%% &] +[s4; &] +[s5;:Upp`:`:TreeCtrl`:`:RenderMultiRoot`(bool`): [_^Upp`:`:TreeCtrl^ TreeCtrl][@(0.0.255) `& +]_[* RenderMultiRoot]([@(0.0.255) bool]_[*@3 a]_`=_[@(0.0.255) true])&] +[s2;%% When active, no lines are drawn connecting zero level nodes +(so it looks like there are multiple roots).&] +[s3;%% &] +[s4; &] +[s5;:Upp`:`:TreeCtrl`:`:EmptyNodeIcon`(const Upp`:`:Image`&`): [_^Upp`:`:TreeCtrl^ Tree +Ctrl][@(0.0.255) `&]_[* EmptyNodeIcon]([@(0.0.255) const]_[_^Upp`:`:Image^ Image][@(0.0.255) `& +]_[*@3 a])&] +[s2;%% When RenderMultiRoot is active and there the node is zero +level and has not elements, [%-*@3 a] is drawn on the left side +to indicate it is empty.&] +[s3;%% &] +[s4; &] +[s5;:TreeCtrl`:`:SetScrollBarStyle`(const ScrollBar`:`:Style`&`): [_^TreeCtrl^ TreeCtrl +][@(0.0.255) `&]_[* SetScrollBarStyle]([@(0.0.255) const]_[_^ScrollBar`:`:Style^ ScrollBa +r`::Style][@(0.0.255) `&]_[*@3 s])&] +[s2;%% Assigns a chameleon visual style of scrollbar of TreeCtrl.&] +[s3;%% &] +[s0;%% &] +[s0; &] +[s0; &] +[ {{10000@3 [s0; [*@(229)4 TreeCtrl`::Node]]}}&] +[s3; &] +[s1;:TreeCtrl`:`:Node`:`:class: [@(0.0.255)3 class][3 _][*3 Node]&] +[s9;%% This class represents the content and appearance of single +TreeCtrl node`-item.&] +[s3; &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0;%% [* Constructor Detail]]}}&] +[s3; &] +[s5;:TreeCtrl`:`:Node`:`:Node`(`): [* Node]()&] +[s2;%% Default constructor.&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:Node`:`:Node`(const Image`&`,const Value`&`): [* Node]([@(0.0.255) const +]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img], [@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `& +]_[*@3 v])&] +[s2;%% Assigns icon, key and value.&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:Node`:`:Node`(const Image`&`,const Value`&`,const Value`&`): [* Node]( +[@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img], [@(0.0.255) const]_[_^Value^ Va +lue][@(0.0.255) `&]_[*@3 v], [@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_[*@3 t])&] +[s2;%% Assigns icon, key and value.&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:Node`:`:Node`(const Value`&`): [* Node]([@(0.0.255) const]_[_^Value^ Value +][@(0.0.255) `&]_[*@3 v])&] +[s2;%% Assigns key and value.&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:Node`:`:Node`(const Value`&`,const Value`&`): [* Node]([@(0.0.255) const +]_[_^Value^ Value][@(0.0.255) `&]_[*@3 v], [@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_ +[*@3 t])&] +[s2;%% Assigns key and value.&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:Node`:`:Node`(Ctrl`&`): [* Node]([_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 ctrl])&] +[s2;%% Assigns widget.&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:Node`:`:Node`(const Image`&`,Ctrl`&`,int`,int`): [* Node]([@(0.0.255) co +nst]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img], [_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 ctrl], +[@(0.0.255) int]_[*@3 cx]_`=_[@3 0], [@(0.0.255) int]_[*@3 cy]_`=_[@3 0])&] +[s2;%% Assigns icon, widget and its dimensions.&] +[s3;%% &] +[s0;%% &] +[ {{10000F(128)G(128)@1 [s0;%% [* Public Member List]]}}&] +[s3; &] +[s5;:TreeCtrl`:`:Node`:`:image: [_^Image^ Image]_[* image]&] +[s2;%% Node icon.&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:Node`:`:margin: [@(0.0.255) int]_[* margin]&] +[s2;%% Space between icon and value of the item, or item`'s widget. +Defaults to 2.&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:Node`:`:key: [_^Value^ Value]_[* key]&] +[s2;%% Item key. This is not displayed.&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:Node`:`:value: [_^Value^ Value]_[* value]&] +[s2;%% Item value.&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:Node`:`:display: [@(0.0.255) const]_[_^Display^ Display]_`*[* display]&] +[s2;%% Display used to render value. Defaults to NULL, which means +StdDisplay is to be used.&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:Node`:`:size: [_^Size^ Size]_[* size]&] +[s2;%% Size of value area. Defaults to Null `- in that case, value +area size is determined by display`->GetStdSize(value) or ctrl`->GetMinSize() +if widget for item is used.&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:Node`:`:ctrl: [_^Ptr^ Ptr][@(0.0.255) <][_^Ctrl^ Ctrl][@(0.0.255) >]_[* ctrl]&] +[s2;%% Widget associated with item.&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:Node`:`:canopen: [@(0.0.255) bool]_[* canopen]&] +[s2;%% Item can be opened.&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:Node`:`:canselect: [@(0.0.255) bool]_[* canselect]&] +[s2;%% Item can be selected.&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:Node`:`:SetImage`(const Image`&`): [_^TreeCtrl`:`:Node^ Node][@(0.0.255) `& +]_[* SetImage]([@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img])&] +[s2;%% Sets image.&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:Node`:`:Set`(const Value`&`): [_^TreeCtrl`:`:Node^ Node][@(0.0.255) `&]_ +[* Set]([@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_[*@3 v])&] +[s2;%% Sets both key and value to [%-*@3 v].&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:Node`:`:Set`(const Value`&`,const Value`&`): [_^TreeCtrl`:`:Node^ Node +][@(0.0.255) `&]_[* Set]([@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_[*@3 v], +[@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_[*@3 t])&] +[s2;%% Sets key and value.&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:Node`:`:SetDisplay`(const Display`&`): [_^TreeCtrl`:`:Node^ Node][@(0.0.255) `& +]_[* SetDisplay]([@(0.0.255) const]_[_^Display^ Display][@(0.0.255) `&]_[*@3 d])&] +[s2;%% Sets display.&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:Node`:`:SetSize`(Size`): [_^TreeCtrl`:`:Node^ Node][@(0.0.255) `&]_[* SetS +ize]([_^Size^ Size]_[*@3 sz])&] +[s2;%% Sets size.&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:Node`:`:SetCtrl`(Ctrl`&`): [_^TreeCtrl`:`:Node^ Node][@(0.0.255) `&]_[* Se +tCtrl]([_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 `_ctrl])&] +[s2;%% Sets widget.&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:Node`:`:CanOpen`(bool`): [_^TreeCtrl`:`:Node^ Node][@(0.0.255) `&]_[* CanO +pen]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2;%% Sets canopen flag.&] +[s3; &] +[s4; &] +[s5;:TreeCtrl`:`:Node`:`:CanSelect`(bool`): [_^TreeCtrl`:`:Node^ Node][@(0.0.255) `&]_[* Ca +nSelect]([@(0.0.255) bool]_[*@3 b])&] +[s2;%% Sets canselect flag.&] +[s3; &] [s0; ]] \ No newline at end of file diff --git a/uppsrc/CtrlLib/src.tpp/ValueEditors$en-us.tpp b/uppsrc/CtrlLib/src.tpp/ValueEditors_en-us.tpp similarity index 97% rename from uppsrc/CtrlLib/src.tpp/ValueEditors$en-us.tpp rename to uppsrc/CtrlLib/src.tpp/ValueEditors_en-us.tpp index 747d6bd45..dc84a3bc3 100644 --- a/uppsrc/CtrlLib/src.tpp/ValueEditors$en-us.tpp +++ b/uppsrc/CtrlLib/src.tpp/ValueEditors_en-us.tpp @@ -1,338 +1,338 @@ -topic "EditField derived classes"; -[2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,0#27521748481378242620020725143825:desc] -[0 $$3,0#96390100711032703541132217272105:end] -[H6;0 $$4,0#05600065144404261032431302351956:begin] -[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] -[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] -[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] -[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] -[b42;2 $$9,9#13035079074754324216151401829390:normal] -[{_}%EN-US -[s0; [*@3+150 EditField derived classes]&] -[s9; Widgets editing values in text representation are based on EditField -and appropriate [^`:`:Convert^ Convert] class. Majority of them -are defined using simple EditValue, EditMinMax and EditMinMaxNotNull -template classes:&] -[s3; &] -[s0;%- &] -[ {{10000@3 [s0;%- [*@(229)4 EditValue]]}}&] -[s3; &] -[s1;:noref:%- [@(0.0.255)3 template][3 _<][@(0.0.255)3 class][3 _][*@4;3 DataType][3 , -][@(0.0.255)3 class][3 _][*@3;3 Cv][@(0.0.255)3 >]&] -[s1;:EditValue`:`:class:%- [@(0.0.255) class]_[* EditValue]_:_[@(0.0.255) public]_[*@3 EditFie -ld], [@(0.0.255) public]_[*@3 Cv]&] -[s9; This class provides composition of EditField and specific [^topic`:`/`/Core`/src`/Convert`$en`-us`#Convert`:`:class^ C -onvert] class. The advantage of deriving from Convert is that -all Convert setup methods (like setting min/max value) are directly -available without using further glue code.&] -[s3; &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] -[s3;%- &] -[s5;:EditValue`:`:EditValue`(`):%- [* EditValue]()&] -[s2; Constructor assigns [^`:`:Convert^ Convert] class (in fact, `*this) -as the EditField converter.&] -[s3; &] -[s3; &] -[s0;%- &] -[ {{10000@3 [s0;%- [*@(229)4 EditMinMax]]}}&] -[s3; &] -[s1;:noref:%- [@(0.0.255)3 template][3 _<][@(0.0.255)3 class][3 _][*@4;3 DataType][3 , -][@(0.0.255)3 class][3 _][*@4;3 Cv][@(0.0.255)3 >]&] -[s1;:EditMinMax`:`:class:%- [@(0.0.255) class]_[* EditMinMax]_:_[@(0.0.255) public]_[*@3 EditV -alue][@(0.0.255) <][*@4 DataType], [*@4 Cv][@(0.0.255) >]_&] -[s9; Wrapper class for converters providing Min, Max and NotNull -properties.&] -[s3; &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] -[s3;%- &] -[s5;:EditMinMax`:`:EditMinMax`(`):%- [* EditMinMax]()&] -[s2; Default constructor.&] -[s3; &] -[s4;%- &] -[s5;:EditMinMax`:`:EditMinMax`(DataType`,DataType`):%- [* EditMinMax]([*@4 DataType]_[*@3 m -in], [*@4 DataType]_[*@3 max])&] -[s2; This constructor sets [* Min] and [* Max] properties.&] -[s3; &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Public Method List]]}}&] -[s3;%- &] -[s5;:EditMinMax`:`:Min`(DataType`):%- [_^EditMinMax^ EditMinMax][@(0.0.255) `&]_[* Min]([*@4 D -ataType]_[*@3 min])&] -[s5;:EditMinMax`:`:Max`(DataType`):%- [_^EditMinMax^ EditMinMax][@(0.0.255) `&]_[* Max]([*@4 D -ataType]_[*@3 max])&] -[s5;:EditMinMax`:`:NotNull`(bool`):%- [_^EditMinMax^ EditMinMax][@(0.0.255) `&]_[* NotNull]( -[@(0.0.255) bool]_[*@3 nn]_`=_[@(0.0.255) true])&] -[s2; Sets [* Min], [* Max] and [* NotNull] properties. In fact, the only -purpose of these methods is to change the returns value to the -correctly typed `*this.&] -[s3; &] -[s0; &] -[s0; &] -[s0;%- &] -[ {{10000@3 [s0;%- [*@(229)4 EditMinMaxNotNull]]}}&] -[s3; &] -[s1;:noref:%- [@(0.0.255)3 template][3 _<][@(0.0.255)3 class][3 _][*@4;3 DataType][3 , -][@(0.0.255)3 class][3 _][*@4;3 Cv][@(0.0.255)3 >]&] -[s1;:EditMinMaxNotNull`:`:class:%- [@(0.0.255) class]_[* EditMinMaxNotNull]_:_[@(0.0.255) pu -blic]_[*@3 EditValue][@(0.0.255) <][*@4 DataType], [*@4 Cv][@(0.0.255) >]_&] -[s9; Similar to EditMinMax template class, but constructs activate -[* NotNull] property.&] -[s3; &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] -[s3;%- &] -[s5;:EditMinMaxNotNull`:`:EditMinMaxNotNull`(`):%- [* EditMinMaxNotNull]()&] -[s2; Default constructor.&] -[s3; &] -[s4;%- &] -[s5;:EditMinMaxNotNull`:`:EditMinMaxNotNull`(DataType`,DataType`):%- [* EditMinMaxNotNu -ll]([*@4 DataType]_[*@3 min], [*@4 DataType]_[*@3 max])&] -[s2; This constructor sets [* Min] and [* Max] properties.&] -[s3; &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Public Method List]]}}&] -[s3;%- &] -[s5;:EditMinMaxNotNull`:`:Min`(DataType`):%- [_^EditMinMaxNotNull^ EditMinMaxNotNull][@(0.0.255) `& -]_[* Min]([*@4 DataType]_[*@3 min])&] -[s5;:EditMinMaxNotNull`:`:Max`(DataType`):%- [_^EditMinMaxNotNull^ EditMinMaxNotNull][@(0.0.255) `& -]_[* Max]([*@4 DataType]_[*@3 max])&] -[s5;:EditMinMaxNotNull`:`:NotNull`(bool`):%- [_^EditMinMaxNotNull^ EditMinMaxNotNull][@(0.0.255) `& -]_[* NotNull]([@(0.0.255) bool]_[*@3 nn]_`=_[@(0.0.255) true])&] -[s2; Sets [* Min], [* Max] and [* NotNull] properties. In fact, the only -purpose of these methods is to change the returns value to the -correctly typed `*this.&] -[s3; &] -[s0; &] -[s0; &] -[s0; &] -[s0; Based on EditMinMax and EditMinMaxNotNull, basic value editors -are defined as typedefs:&] -[s3; &] -[s5;:EditDate`:`:typedef:%- [@(0.0.255) typedef]_[_^EditMinMax^ EditMinMax][@(0.0.255) <][_^Date^ D -ate], [_^ConvertDate^ ConvertDate][@(0.0.255) >]_[* EditDate]&] -[s2; Edit field for date values.&] -[s3;%- &] -[s4;%- &] -[s5;:EditDateNotNull`:`:typedef:%- [@(0.0.255) typedef]_[_^EditMinMaxNotNull^ EditMinMaxN -otNull][@(0.0.255) <][_^Date^ Date], [_^ConvertDate^ ConvertDate][@(0.0.255) >]_[* EditDate -NotNull]&] -[s2; Edit field for not null date values.&] -[s3;%- &] -[s4;%- &] -[s5;:EditDouble`:`:typedef:%- [@(0.0.255) typedef]_[_^EditMinMax^ EditMinMax][@(0.0.255) ]_[* EditDouble]&] -[s2; Edit field for double values.&] -[s3;%- &] -[s4;%- &] -[s5;:EditDoubleNotNull`:`:typedef:%- [@(0.0.255) typedef]_[_^EditMinMaxNotNull^ EditMinMa -xNotNull][@(0.0.255) ]_[* EditDoub -leNotNull]&] -[s2; Edit field for not null double values.&] -[s3;%- &] -[s4;%- &] -[s5;:EditInt`:`:typedef:%- [@(0.0.255) typedef]_[_^EditMinMax^ EditMinMax][@(0.0.255) ]_[* EditInt]&] -[s2; Edit field for integer values.&] -[s3;%- &] -[s4;%- &] -[s5;:EditIntNotNull`:`:typedef:%- [@(0.0.255) typedef]_[_^EditMinMaxNotNull^ EditMinMaxNo -tNull][@(0.0.255) ]_[* EditIntNotNull]&] -[s2; Edit field for not null integer values.&] -[s3;%- &] -[s4;%- &] -[s5;:EditInt64`:`:typedef:%- [@(0.0.255) typedef]_[_^EditMinMax^ EditMinMax][@(0.0.255) <][_^int64^ i -nt64], [_^ConvertInt64^ ConvertInt64][@(0.0.255) >]_[* EditInt64]&] -[s2; Edit field for 64 bit integer values.&] -[s3;%- &] -[s4;%- &] -[s5;:EditTime`:`:typedef:%- [@(0.0.255) typedef]_[_^EditMinMax^ EditMinMax][@(0.0.255) <][_^Time^ T -ime], [_^ConvertTime^ ConvertTime][@(0.0.255) >]_[* EditTime]&] -[s2; Edit field for time values.&] -[s3;%- &] -[s4;%- &] -[s5;:EditTimeNotNull`:`:typedef:%- [@(0.0.255) typedef]_[_^EditMinMaxNotNull^ EditMinMaxN -otNull][@(0.0.255) <][_^Time^ Time], [_^ConvertTime^ ConvertTime][@(0.0.255) >]_[* EditTime -NotNull]&] -[s2; Edit field for not null time values.&] -[s3;%- &] -[s0;%- &] -[s0; &] -[s0; &] -[s0; Some value editors are not based on EditMinMax and EditMinMaxNotNull:&] -[s3; &] -[s0;%- &] -[ {{10000@3 [s0;%- [*@(229)4 EditString]]}}&] -[s3; &] -[s1;:EditString`:`:class:%- [@(0.0.255)3 class][3 _][*3 EditString][3 _:_][@(0.0.255)3 public][3 _ -][*@3;3 EditValue][@(0.0.255)3 <][_^WString^3 WString][3 , ][_^ConvertString^3 ConvertStrin -g][@(0.0.255)3 >][3 _]&] -[s9; EditString is not based on EditMinMax because instead of minimal -and maximal values, it implements `"maximum number of characters`" -constraint.&] -[s3; &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] -[s3;%- &] -[s5;:EditString`:`:EditString`(`):%- [* EditString]()&] -[s2; Default constructor.&] -[s3; &] -[s4;%- &] -[s5;:EditString`:`:EditString`(int`):%- [* EditString]([@(0.0.255) int]_[*@3 maxlen])&] -[s2; This constructor sets [%-*@3 maxlen] as maximum length of contained -text.&] -[s3; &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Public Method List]]}}&] -[s3;%- &] -[s5;:EditString`:`:MaxLen`(int`):%- [_^EditString^ EditString][@(0.0.255) `&]_[* MaxLen]([@(0.0.255) i -nt]_[*@3 maxlen])&] -[s2; Sets [%-*@3 maxlen] as maximum length of contained text.[%-*@3 maxlen] -Returns `*this.&] -[s3; &] -[s4;%- &] -[s5;:EditString`:`:NotNull`(bool`):%- [_^EditString^ EditString][@(0.0.255) `&]_[* NotNull]( -[@(0.0.255) bool]_[*@3 nn]_`=_[@(0.0.255) true])&] -[s2;%- [%% Sets ][* NotNull] property.&] -[s3; &] -[s4;%- &] -[s5;:Upp`:`:EditString`:`:TrimLeft`(bool`):%- [_^Upp`:`:EditString^ EditString][@(0.0.255) `& -]_[* TrimLeft]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s5;:Upp`:`:EditString`:`:TrimRight`(bool`):%- [_^Upp`:`:EditString^ EditString][@(0.0.255) `& -]_[* TrimRight]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s5;:Upp`:`:EditString`:`:TrimBoth`(bool`):%- [_^Upp`:`:EditString^ EditString][@(0.0.255) `& -]_[* TrimBoth]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2; Whitechars on the left/right/both side(s) are removed.&] -[s0; &] -[s0; &] -[s0;%- &] -[ {{10000@3 [s0;%- [*@(229)4 EditStringNotNull]]}}&] -[s3; &] -[s1;:EditStringNotNull`:`:class:%- [@(0.0.255)3 class][3 _][*3 EditStringNotNull][3 _:_][@(0.0.255)3 p -ublic][3 _][*@3;3 EditString]&] -[s9; This class sets the NotNull property in the constructors.&] -[s3; &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] -[s3;%- &] -[s5;:EditStringNotNull`:`:EditStringNotNull`(`):%- [* EditStringNotNull]()&] -[s2; Default constructor.&] -[s3; &] -[s4;%- &] -[s5;:EditStringNotNull`:`:EditStringNotNull`(int`):%- [* EditStringNotNull]([@(0.0.255) i -nt]_[*@3 maxlen])&] -[s2; This constructor sets [%-*@3 maxlen] as maximum length of contained -text.&] -[s3; &] -[s0; &] -[s0; &] -[s0;%- &] -[ {{10000@3 [s0;%- [*@(229)4 EditIntSpin]]}}&] -[s3; &] -[s1;:EditIntSpin`:`:class:%- [@(0.0.255)3 class][3 _][*3 EditIntSpin][3 _:_][@(0.0.255)3 public][3 _ -][*@3;3 EditInt]&] -[s9; This editor adds spin buttons to the EditInt class.&] -[s3; &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] -[s3;%- &] -[s5;:EditIntSpin`:`:EditIntSpin`(`):%- [* EditIntSpin]()&] -[s2; Default constructor. Spin buttons are on.&] -[s3; &] -[s4;%- &] -[s5;:EditIntSpin`:`:EditIntSpin`(int`,int`):%- [* EditIntSpin]([@(0.0.255) int]_[*@3 min], -[@(0.0.255) int]_[*@3 max])&] -[s2; This constructor sets the [%-*@3 min] and [%-*@3 max] values. Spin -buttons are on.&] -[s3; &] -[s4;%- &] -[s5;:EditIntSpin`:`:`~EditIntSpin`(`):%- [@(0.0.255) `~][* EditIntSpin]()&] -[s2; Default destructor.&] -[s3;%- &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Public Method List]]}}&] -[s3;%- &] -[s5;:EditIntSpin`:`:ShowSpin`(bool`):%- [_^EditIntSpin^ EditIntSpin][@(0.0.255) `&]_[* Show -Spin]([@(0.0.255) bool]_[*@3 s]_`=_[@(0.0.255) true])&] -[s2; Shows/hides spin buttons.&] -[s3; &] -[s4;%- &] -[s5;:EditIntSpin`:`:SetInc`(int`):%- [_^EditIntSpin^ EditIntSpin][@(0.0.255) `&]_[* SetInc]( -[@(0.0.255) int]_[*@3 `_inc])&] -[s2; Set the increment factor to [%-*@3 `_inc].&] -[s3; &] -[s4;%- &] -[s5;:EditIntSpin`:`:GetInc`(`)const:%- [@(0.0.255) int]_[* GetInc]()_[@(0.0.255) const]&] -[s2; Returns the increment factor.&] -[s3;%- &] -[s0; &] -[s0; &] -[s0;%- &] -[ {{10000@3 [s0;%- [*@(229)4 EditDoubleSpin]]}}&] -[s3; &] -[s1;:EditDoubleSpin`:`:class:%- [@(0.0.255)3 class][3 _][*3 EditDoubleSpin][3 _:_][@(0.0.255)3 p -ublic][3 _][*@3;3 EditDouble]&] -[s9; This editor adds spin buttons to the EditDouble class.&] -[s3; &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] -[s3;%- &] -[s5;:EditDoubleSpin`:`:EditDoubleSpin`(double`):%- [* EditDoubleSpin]([@(0.0.255) double]_ -[*@3 inc]_`=_[@3 0][@(0.0.255) .][@3 1])&] -[s2; Sets the spin increment to [%-*@3 inc]. Spin buttons are on.&] -[s3; &] -[s4;%- &] -[s5;:EditDoubleSpin`:`:EditDoubleSpin`(double`,double`,double`):%- [* EditDoubleSpin]([@(0.0.255) d -ouble]_[*@3 min], [@(0.0.255) double]_[*@3 max], [@(0.0.255) double]_[*@3 inc]_`=_[@3 0][@(0.0.255) . -][@3 1])&] -[s2; This constructor sets [%-*@3 min], [%-*@3 max] and [%-*@3 inc] values. -Spin buttons are on.&] -[s3; &] -[s4;%- &] -[s5;:EditDoubleSpin`:`:`~EditDoubleSpin`(`):%- [@(0.0.255) `~][* EditDoubleSpin]()&] -[s2; Default destructor.&] -[s3;%- &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0; [* Public Method List]]}}&] -[s3;%- &] -[s5;:EditDoubleSpin`:`:SetInc`(double`):%- [_^EditDoubleSpin^ EditDoubleSpin][@(0.0.255) `& -]_[* SetInc]([@(0.0.255) double]_[*@3 `_inc]_`=_[@3 0][@(0.0.255) .][@3 1])&] -[s2; Set the spin increment to [%-*@3 `_inc].&] -[s3; &] -[s4;%- &] -[s5;:EditDoubleSpin`:`:GetInc`(`)const:%- [@(0.0.255) double]_[* GetInc]()_[@(0.0.255) cons -t]&] -[s2; Returns current spin increment.&] -[s3; &] -[s4;%- &] -[s5;:EditDoubleSpin`:`:ShowSpin`(bool`):%- [_^EditDoubleSpin^ EditDoubleSpin][@(0.0.255) `& -]_[* ShowSpin]([@(0.0.255) bool]_[*@3 s]_`=_[@(0.0.255) true])&] -[s2; Shows/hides spin buttons.&] -[s3; &] -[s0; &] -[s0; &] -[s0;%- &] -[ {{10000@3 [s0;%- [*@(229)4 EditDoubleNotNullSpin]]}}&] -[s3; &] -[s1;:EditDoubleNotNullSpin`:`:class:%- [@(0.0.255)3 class][3 _][*3 EditDoubleNotNullSpin][3 _ -:_][@(0.0.255)3 public][3 _][*@3;3 EditDoubleSpin]&] -[s9; This editor adds spin buttons to the EditDoubleNotNull class.&] -[s3;%- &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] -[s3; &] -[s5;:EditDoubleNotNullSpin`:`:EditDoubleNotNullSpin`(double`):%- [* EditDoubleNotNullSp -in]([@(0.0.255) double]_[*@3 inc]_`=_[@3 0][@(0.0.255) .][@3 1])&] -[s2; Sets the spin increment to [%-*@3 inc]. Spin buttons are on.&] -[s3; &] -[s4;%- &] -[s5;:EditDoubleNotNullSpin`:`:EditDoubleNotNullSpin`(double`,double`,double`):%- [* Edi -tDoubleNotNullSpin]([@(0.0.255) double]_[*@3 min], [@(0.0.255) double]_[*@3 max], -[@(0.0.255) double]_[*@3 inc]_`=_[@3 0][@(0.0.255) .][@3 1])&] -[s2; This constructor sets [%-*@3 min], [%-*@3 max] and [%-*@3 inc] values. -Spin buttons are on.&] -[s3; &] +topic "EditField derived classes"; +[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,0#27521748481378242620020725143825:desc] +[0 $$3,0#96390100711032703541132217272105:end] +[H6;0 $$4,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] +[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] +[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] +[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] +[b42;2 $$9,9#13035079074754324216151401829390:normal] +[{_}%EN-US +[s0; [*@3+150 EditField derived classes]&] +[s9; Widgets editing values in text representation are based on EditField +and appropriate [^`:`:Convert^ Convert] class. Majority of them +are defined using simple EditValue, EditMinMax and EditMinMaxNotNull +template classes:&] +[s3; &] +[s0;%- &] +[ {{10000@3 [s0;%- [*@(229)4 EditValue]]}}&] +[s3; &] +[s1;:noref:%- [@(0.0.255)3 template][3 _<][@(0.0.255)3 class][3 _][*@4;3 DataType][3 , +][@(0.0.255)3 class][3 _][*@3;3 Cv][@(0.0.255)3 >]&] +[s1;:EditValue`:`:class:%- [@(0.0.255) class]_[* EditValue]_:_[@(0.0.255) public]_[*@3 EditFie +ld], [@(0.0.255) public]_[*@3 Cv]&] +[s9; This class provides composition of EditField and specific [^topic`:`/`/Core`/src`/Convert`$en`-us`#Convert`:`:class^ C +onvert] class. The advantage of deriving from Convert is that +all Convert setup methods (like setting min/max value) are directly +available without using further glue code.&] +[s3; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] +[s3;%- &] +[s5;:EditValue`:`:EditValue`(`):%- [* EditValue]()&] +[s2; Constructor assigns [^`:`:Convert^ Convert] class (in fact, `*this) +as the EditField converter.&] +[s3; &] +[s3; &] +[s0;%- &] +[ {{10000@3 [s0;%- [*@(229)4 EditMinMax]]}}&] +[s3; &] +[s1;:noref:%- [@(0.0.255)3 template][3 _<][@(0.0.255)3 class][3 _][*@4;3 DataType][3 , +][@(0.0.255)3 class][3 _][*@4;3 Cv][@(0.0.255)3 >]&] +[s1;:EditMinMax`:`:class:%- [@(0.0.255) class]_[* EditMinMax]_:_[@(0.0.255) public]_[*@3 EditV +alue][@(0.0.255) <][*@4 DataType], [*@4 Cv][@(0.0.255) >]_&] +[s9; Wrapper class for converters providing Min, Max and NotNull +properties.&] +[s3; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] +[s3;%- &] +[s5;:EditMinMax`:`:EditMinMax`(`):%- [* EditMinMax]()&] +[s2; Default constructor.&] +[s3; &] +[s4;%- &] +[s5;:EditMinMax`:`:EditMinMax`(DataType`,DataType`):%- [* EditMinMax]([*@4 DataType]_[*@3 m +in], [*@4 DataType]_[*@3 max])&] +[s2; This constructor sets [* Min] and [* Max] properties.&] +[s3; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Public Method List]]}}&] +[s3;%- &] +[s5;:EditMinMax`:`:Min`(DataType`):%- [_^EditMinMax^ EditMinMax][@(0.0.255) `&]_[* Min]([*@4 D +ataType]_[*@3 min])&] +[s5;:EditMinMax`:`:Max`(DataType`):%- [_^EditMinMax^ EditMinMax][@(0.0.255) `&]_[* Max]([*@4 D +ataType]_[*@3 max])&] +[s5;:EditMinMax`:`:NotNull`(bool`):%- [_^EditMinMax^ EditMinMax][@(0.0.255) `&]_[* NotNull]( +[@(0.0.255) bool]_[*@3 nn]_`=_[@(0.0.255) true])&] +[s2; Sets [* Min], [* Max] and [* NotNull] properties. In fact, the only +purpose of these methods is to change the returns value to the +correctly typed `*this.&] +[s3; &] +[s0; &] +[s0; &] +[s0;%- &] +[ {{10000@3 [s0;%- [*@(229)4 EditMinMaxNotNull]]}}&] +[s3; &] +[s1;:noref:%- [@(0.0.255)3 template][3 _<][@(0.0.255)3 class][3 _][*@4;3 DataType][3 , +][@(0.0.255)3 class][3 _][*@4;3 Cv][@(0.0.255)3 >]&] +[s1;:EditMinMaxNotNull`:`:class:%- [@(0.0.255) class]_[* EditMinMaxNotNull]_:_[@(0.0.255) pu +blic]_[*@3 EditValue][@(0.0.255) <][*@4 DataType], [*@4 Cv][@(0.0.255) >]_&] +[s9; Similar to EditMinMax template class, but constructs activate +[* NotNull] property.&] +[s3; &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] +[s3;%- &] +[s5;:EditMinMaxNotNull`:`:EditMinMaxNotNull`(`):%- [* EditMinMaxNotNull]()&] +[s2; Default constructor.&] +[s3; &] +[s4;%- &] +[s5;:EditMinMaxNotNull`:`:EditMinMaxNotNull`(DataType`,DataType`):%- [* EditMinMaxNotNu +ll]([*@4 DataType]_[*@3 min], [*@4 DataType]_[*@3 max])&] +[s2; This constructor sets [* Min] and [* Max] properties.&] +[s3; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Public Method List]]}}&] +[s3;%- &] +[s5;:EditMinMaxNotNull`:`:Min`(DataType`):%- [_^EditMinMaxNotNull^ EditMinMaxNotNull][@(0.0.255) `& +]_[* Min]([*@4 DataType]_[*@3 min])&] +[s5;:EditMinMaxNotNull`:`:Max`(DataType`):%- [_^EditMinMaxNotNull^ EditMinMaxNotNull][@(0.0.255) `& +]_[* Max]([*@4 DataType]_[*@3 max])&] +[s5;:EditMinMaxNotNull`:`:NotNull`(bool`):%- [_^EditMinMaxNotNull^ EditMinMaxNotNull][@(0.0.255) `& +]_[* NotNull]([@(0.0.255) bool]_[*@3 nn]_`=_[@(0.0.255) true])&] +[s2; Sets [* Min], [* Max] and [* NotNull] properties. In fact, the only +purpose of these methods is to change the returns value to the +correctly typed `*this.&] +[s3; &] +[s0; &] +[s0; &] +[s0; &] +[s0; Based on EditMinMax and EditMinMaxNotNull, basic value editors +are defined as typedefs:&] +[s3; &] +[s5;:EditDate`:`:typedef:%- [@(0.0.255) typedef]_[_^EditMinMax^ EditMinMax][@(0.0.255) <][_^Date^ D +ate], [_^ConvertDate^ ConvertDate][@(0.0.255) >]_[* EditDate]&] +[s2; Edit field for date values.&] +[s3;%- &] +[s4;%- &] +[s5;:EditDateNotNull`:`:typedef:%- [@(0.0.255) typedef]_[_^EditMinMaxNotNull^ EditMinMaxN +otNull][@(0.0.255) <][_^Date^ Date], [_^ConvertDate^ ConvertDate][@(0.0.255) >]_[* EditDate +NotNull]&] +[s2; Edit field for not null date values.&] +[s3;%- &] +[s4;%- &] +[s5;:EditDouble`:`:typedef:%- [@(0.0.255) typedef]_[_^EditMinMax^ EditMinMax][@(0.0.255) ]_[* EditDouble]&] +[s2; Edit field for double values.&] +[s3;%- &] +[s4;%- &] +[s5;:EditDoubleNotNull`:`:typedef:%- [@(0.0.255) typedef]_[_^EditMinMaxNotNull^ EditMinMa +xNotNull][@(0.0.255) ]_[* EditDoub +leNotNull]&] +[s2; Edit field for not null double values.&] +[s3;%- &] +[s4;%- &] +[s5;:EditInt`:`:typedef:%- [@(0.0.255) typedef]_[_^EditMinMax^ EditMinMax][@(0.0.255) ]_[* EditInt]&] +[s2; Edit field for integer values.&] +[s3;%- &] +[s4;%- &] +[s5;:EditIntNotNull`:`:typedef:%- [@(0.0.255) typedef]_[_^EditMinMaxNotNull^ EditMinMaxNo +tNull][@(0.0.255) ]_[* EditIntNotNull]&] +[s2; Edit field for not null integer values.&] +[s3;%- &] +[s4;%- &] +[s5;:EditInt64`:`:typedef:%- [@(0.0.255) typedef]_[_^EditMinMax^ EditMinMax][@(0.0.255) <][_^int64^ i +nt64], [_^ConvertInt64^ ConvertInt64][@(0.0.255) >]_[* EditInt64]&] +[s2; Edit field for 64 bit integer values.&] +[s3;%- &] +[s4;%- &] +[s5;:EditTime`:`:typedef:%- [@(0.0.255) typedef]_[_^EditMinMax^ EditMinMax][@(0.0.255) <][_^Time^ T +ime], [_^ConvertTime^ ConvertTime][@(0.0.255) >]_[* EditTime]&] +[s2; Edit field for time values.&] +[s3;%- &] +[s4;%- &] +[s5;:EditTimeNotNull`:`:typedef:%- [@(0.0.255) typedef]_[_^EditMinMaxNotNull^ EditMinMaxN +otNull][@(0.0.255) <][_^Time^ Time], [_^ConvertTime^ ConvertTime][@(0.0.255) >]_[* EditTime +NotNull]&] +[s2; Edit field for not null time values.&] +[s3;%- &] +[s0;%- &] +[s0; &] +[s0; &] +[s0; Some value editors are not based on EditMinMax and EditMinMaxNotNull:&] +[s3; &] +[s0;%- &] +[ {{10000@3 [s0;%- [*@(229)4 EditString]]}}&] +[s3; &] +[s1;:EditString`:`:class:%- [@(0.0.255)3 class][3 _][*3 EditString][3 _:_][@(0.0.255)3 public][3 _ +][*@3;3 EditValue][@(0.0.255)3 <][_^WString^3 WString][3 , ][_^ConvertString^3 ConvertStrin +g][@(0.0.255)3 >][3 _]&] +[s9; EditString is not based on EditMinMax because instead of minimal +and maximal values, it implements `"maximum number of characters`" +constraint.&] +[s3; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] +[s3;%- &] +[s5;:EditString`:`:EditString`(`):%- [* EditString]()&] +[s2; Default constructor.&] +[s3; &] +[s4;%- &] +[s5;:EditString`:`:EditString`(int`):%- [* EditString]([@(0.0.255) int]_[*@3 maxlen])&] +[s2; This constructor sets [%-*@3 maxlen] as maximum length of contained +text.&] +[s3; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Public Method List]]}}&] +[s3;%- &] +[s5;:EditString`:`:MaxLen`(int`):%- [_^EditString^ EditString][@(0.0.255) `&]_[* MaxLen]([@(0.0.255) i +nt]_[*@3 maxlen])&] +[s2; Sets [%-*@3 maxlen] as maximum length of contained text.[%-*@3 maxlen] +Returns `*this.&] +[s3; &] +[s4;%- &] +[s5;:EditString`:`:NotNull`(bool`):%- [_^EditString^ EditString][@(0.0.255) `&]_[* NotNull]( +[@(0.0.255) bool]_[*@3 nn]_`=_[@(0.0.255) true])&] +[s2;%- [%% Sets ][* NotNull] property.&] +[s3; &] +[s4;%- &] +[s5;:Upp`:`:EditString`:`:TrimLeft`(bool`):%- [_^Upp`:`:EditString^ EditString][@(0.0.255) `& +]_[* TrimLeft]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s5;:Upp`:`:EditString`:`:TrimRight`(bool`):%- [_^Upp`:`:EditString^ EditString][@(0.0.255) `& +]_[* TrimRight]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s5;:Upp`:`:EditString`:`:TrimBoth`(bool`):%- [_^Upp`:`:EditString^ EditString][@(0.0.255) `& +]_[* TrimBoth]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2; Whitechars on the left/right/both side(s) are removed.&] +[s0; &] +[s0; &] +[s0;%- &] +[ {{10000@3 [s0;%- [*@(229)4 EditStringNotNull]]}}&] +[s3; &] +[s1;:EditStringNotNull`:`:class:%- [@(0.0.255)3 class][3 _][*3 EditStringNotNull][3 _:_][@(0.0.255)3 p +ublic][3 _][*@3;3 EditString]&] +[s9; This class sets the NotNull property in the constructors.&] +[s3; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] +[s3;%- &] +[s5;:EditStringNotNull`:`:EditStringNotNull`(`):%- [* EditStringNotNull]()&] +[s2; Default constructor.&] +[s3; &] +[s4;%- &] +[s5;:EditStringNotNull`:`:EditStringNotNull`(int`):%- [* EditStringNotNull]([@(0.0.255) i +nt]_[*@3 maxlen])&] +[s2; This constructor sets [%-*@3 maxlen] as maximum length of contained +text.&] +[s3; &] +[s0; &] +[s0; &] +[s0;%- &] +[ {{10000@3 [s0;%- [*@(229)4 EditIntSpin]]}}&] +[s3; &] +[s1;:EditIntSpin`:`:class:%- [@(0.0.255)3 class][3 _][*3 EditIntSpin][3 _:_][@(0.0.255)3 public][3 _ +][*@3;3 EditInt]&] +[s9; This editor adds spin buttons to the EditInt class.&] +[s3; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] +[s3;%- &] +[s5;:EditIntSpin`:`:EditIntSpin`(`):%- [* EditIntSpin]()&] +[s2; Default constructor. Spin buttons are on.&] +[s3; &] +[s4;%- &] +[s5;:EditIntSpin`:`:EditIntSpin`(int`,int`):%- [* EditIntSpin]([@(0.0.255) int]_[*@3 min], +[@(0.0.255) int]_[*@3 max])&] +[s2; This constructor sets the [%-*@3 min] and [%-*@3 max] values. Spin +buttons are on.&] +[s3; &] +[s4;%- &] +[s5;:EditIntSpin`:`:`~EditIntSpin`(`):%- [@(0.0.255) `~][* EditIntSpin]()&] +[s2; Default destructor.&] +[s3;%- &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Public Method List]]}}&] +[s3;%- &] +[s5;:EditIntSpin`:`:ShowSpin`(bool`):%- [_^EditIntSpin^ EditIntSpin][@(0.0.255) `&]_[* Show +Spin]([@(0.0.255) bool]_[*@3 s]_`=_[@(0.0.255) true])&] +[s2; Shows/hides spin buttons.&] +[s3; &] +[s4;%- &] +[s5;:EditIntSpin`:`:SetInc`(int`):%- [_^EditIntSpin^ EditIntSpin][@(0.0.255) `&]_[* SetInc]( +[@(0.0.255) int]_[*@3 `_inc])&] +[s2; Set the increment factor to [%-*@3 `_inc].&] +[s3; &] +[s4;%- &] +[s5;:EditIntSpin`:`:GetInc`(`)const:%- [@(0.0.255) int]_[* GetInc]()_[@(0.0.255) const]&] +[s2; Returns the increment factor.&] +[s3;%- &] +[s0; &] +[s0; &] +[s0;%- &] +[ {{10000@3 [s0;%- [*@(229)4 EditDoubleSpin]]}}&] +[s3; &] +[s1;:EditDoubleSpin`:`:class:%- [@(0.0.255)3 class][3 _][*3 EditDoubleSpin][3 _:_][@(0.0.255)3 p +ublic][3 _][*@3;3 EditDouble]&] +[s9; This editor adds spin buttons to the EditDouble class.&] +[s3; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] +[s3;%- &] +[s5;:EditDoubleSpin`:`:EditDoubleSpin`(double`):%- [* EditDoubleSpin]([@(0.0.255) double]_ +[*@3 inc]_`=_[@3 0][@(0.0.255) .][@3 1])&] +[s2; Sets the spin increment to [%-*@3 inc]. Spin buttons are on.&] +[s3; &] +[s4;%- &] +[s5;:EditDoubleSpin`:`:EditDoubleSpin`(double`,double`,double`):%- [* EditDoubleSpin]([@(0.0.255) d +ouble]_[*@3 min], [@(0.0.255) double]_[*@3 max], [@(0.0.255) double]_[*@3 inc]_`=_[@3 0][@(0.0.255) . +][@3 1])&] +[s2; This constructor sets [%-*@3 min], [%-*@3 max] and [%-*@3 inc] values. +Spin buttons are on.&] +[s3; &] +[s4;%- &] +[s5;:EditDoubleSpin`:`:`~EditDoubleSpin`(`):%- [@(0.0.255) `~][* EditDoubleSpin]()&] +[s2; Default destructor.&] +[s3;%- &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0; [* Public Method List]]}}&] +[s3;%- &] +[s5;:EditDoubleSpin`:`:SetInc`(double`):%- [_^EditDoubleSpin^ EditDoubleSpin][@(0.0.255) `& +]_[* SetInc]([@(0.0.255) double]_[*@3 `_inc]_`=_[@3 0][@(0.0.255) .][@3 1])&] +[s2; Set the spin increment to [%-*@3 `_inc].&] +[s3; &] +[s4;%- &] +[s5;:EditDoubleSpin`:`:GetInc`(`)const:%- [@(0.0.255) double]_[* GetInc]()_[@(0.0.255) cons +t]&] +[s2; Returns current spin increment.&] +[s3; &] +[s4;%- &] +[s5;:EditDoubleSpin`:`:ShowSpin`(bool`):%- [_^EditDoubleSpin^ EditDoubleSpin][@(0.0.255) `& +]_[* ShowSpin]([@(0.0.255) bool]_[*@3 s]_`=_[@(0.0.255) true])&] +[s2; Shows/hides spin buttons.&] +[s3; &] +[s0; &] +[s0; &] +[s0;%- &] +[ {{10000@3 [s0;%- [*@(229)4 EditDoubleNotNullSpin]]}}&] +[s3; &] +[s1;:EditDoubleNotNullSpin`:`:class:%- [@(0.0.255)3 class][3 _][*3 EditDoubleNotNullSpin][3 _ +:_][@(0.0.255)3 public][3 _][*@3;3 EditDoubleSpin]&] +[s9; This editor adds spin buttons to the EditDoubleNotNull class.&] +[s3;%- &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] +[s3; &] +[s5;:EditDoubleNotNullSpin`:`:EditDoubleNotNullSpin`(double`):%- [* EditDoubleNotNullSp +in]([@(0.0.255) double]_[*@3 inc]_`=_[@3 0][@(0.0.255) .][@3 1])&] +[s2; Sets the spin increment to [%-*@3 inc]. Spin buttons are on.&] +[s3; &] +[s4;%- &] +[s5;:EditDoubleNotNullSpin`:`:EditDoubleNotNullSpin`(double`,double`,double`):%- [* Edi +tDoubleNotNullSpin]([@(0.0.255) double]_[*@3 min], [@(0.0.255) double]_[*@3 max], +[@(0.0.255) double]_[*@3 inc]_`=_[@3 0][@(0.0.255) .][@3 1])&] +[s2; This constructor sets [%-*@3 min], [%-*@3 max] and [%-*@3 inc] values. +Spin buttons are on.&] +[s3; &] [s0; ]] \ No newline at end of file diff --git a/uppsrc/CtrlLib/src.tpp/WithDropChoice$en-us.tpp b/uppsrc/CtrlLib/src.tpp/WithDropChoice_en-us.tpp similarity index 97% rename from uppsrc/CtrlLib/src.tpp/WithDropChoice$en-us.tpp rename to uppsrc/CtrlLib/src.tpp/WithDropChoice_en-us.tpp index 02edf4c22..39c10b3f2 100644 --- a/uppsrc/CtrlLib/src.tpp/WithDropChoice$en-us.tpp +++ b/uppsrc/CtrlLib/src.tpp/WithDropChoice_en-us.tpp @@ -1,201 +1,201 @@ -topic "WithDropChoice"; -[2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,0#27521748481378242620020725143825:desc] -[0 $$3,0#96390100711032703541132217272105:end] -[H6;0 $$4,0#05600065144404261032431302351956:begin] -[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] -[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] -[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] -[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] -[b42;2 $$9,9#13035079074754324216151401829390:normal] -[{_} -[ {{10000@3 [s0; [*@(229)4 WithDropChoice]]}}&] -[s3; &] -[s1;:noref: [@(0.0.255)3 template][3 _<][@(0.0.255)3 class][3 _][*@3;3 T][@(0.0.255)3 >]&] -[s1;:WithDropChoice`:`:class: [@(0.0.255) class]_[* WithDropChoice]_:_[@(0.0.255) public]_[*@3 T -]&] -[s0;%% &] -[s2;%% -@@image:1350&331 -(A9gANQAAAMv/AAAAAHic7ZyxTttAGIDzSjxH36EP0KFrK8YGhi6gMmUoZUFCLJ0oyogKQUItIkIIVVUpDjE1hEilhbaj+0MU1707J2fHds7o+/QNtrGTIH3c5SCmf/mpj4iIQ5++fItYssYOQ4ASoUMogg+frxvvzmyUM0M6hGKQwM77f2yUM0M6hGKQuvyr3zbad1gbMqXvCaqH1NXt/bLRssN4fvmmaP9o/AhUDqnr7PLWxgwd5gsdPmDuO7wZ+Ojxs2hbPzJhh8pkHd9VJvGkaT3p8viTGh8Q3Efq6lzciJLcwMGufmSS94f69oiEjFcZL0l6NCKsHFKXF/wcGIWnbA/MsF62Lyf8fygzDon6YKiPkPrTQSW47/BHZJTfMMJ/Xyqtw6SXOjozOqw0Utfpt+u4UYTK8UnWy8zLMBqp6+v5d0WJUD844e8PR68slI2khYblOiUkxaph7NAof0+B4rjrsHthIx1Ccdx16Hk20iEUB5+3gSqS1CFiyeod1gBKx9jhzJMWYmnSIbrg2A6V95NTf8H4ILUcD9MWSLGYSjpEF5TkvJN9v9MO/KNecGzfoTJTKxtM4phKSW5vt3l4sHX65aOkaNlhfDcKz7iLaKMkt7baaG6uS4pdr23fob54MQ6PiDZKcosLdUlRRkWZoDOMh/GDdIjZlOTm52ZXlpda2xsyNTMv41SU5Oovnr95/WrnfYoOZ8atU4yXICZp2SFiodIhumBSh+k/QQaQHToEF6BDcAE6BBegQ3CBsR3WuJMdiofxEFyADsEF6BBcgA7BBVingAswHoIL0CG4QFKHACWjd6jonezv7TbXVhuLC/X5uVk5HzF39ftTFP1O+/Bgq7m5LqetLC9JtIi5q9+vpxj4RzJUygnSamt7Q0ZOxNzV719W7AXH8iWpVAZMOQ2xCOP/z+EvcWfmOg==) -&] -[s0;%% &] -[s9;%% This template class adds a list of choices, with drop down -button placed at right side of the frame, to any widget with -associated value accessible via SetData/GetData interface.&] -[s3;%% &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0;%% [* Public Member List]]}}&] -[s3; &] -[s5;:WithDropChoice`:`:WhenDrop: [_^Callback^ Callback]_[* WhenDrop]&] -[s2;%% This callback is invoked when the drop button is pushed (before -drop down list appears). Client code can use it to create or -alter the list.&] -[s3;%% &] -[s4; &] -[s5;:WithDropChoice`:`:WhenSelect: [_^Callback^ Callback]_[* WhenSelect]&] -[s2;%% This callback is called after user selected an item from drop`-down -list and this value was assigned to the base widget.&] -[s3;%% &] -[s4; &] -[s5;:WithDropChoice`:`:ClearList`(`): [@(0.0.255) void]_[* ClearList]()&] -[s2;%% Clears the drop`-down list.&] -[s3;%% &] -[s4; &] -[s5;:WithDropChoice`:`:AddList`(const Value`&`): [@(0.0.255) void]_[* AddList]([@(0.0.255) c -onst]_[_^Value^ Value][@(0.0.255) `&]_[*@3 data])&] -[s2;%% Adds [%-*@3 data] to the drop`-down list.&] -[s3;%% &] -[s4; &] -[s5;:Upp`:`:WithDropChoice`:`:Set`(int`,const Upp`:`:Value`&`): [@(0.0.255) void]_[* Set]( -[@(0.0.255) int]_[*@3 i], [@(0.0.255) const]_[_^Upp`:`:Value^ Value][@(0.0.255) `&]_[*@3 data -])&] -[s2;%% Sets entry [%-*@3 i] in drop`-down list to [%-*@3 data] .&] -[s3;%% &] -[s4; &] -[s5;:Upp`:`:WithDropChoice`:`:Remove`(int`): [@(0.0.255) void]_[* Remove]([@(0.0.255) int]_ -[*@3 i])&] -[s2;%% Removes entry [%-*@3 i] in drop`-down list.&] -[s3;%% &] -[s4; &] -[s5;:WithDropChoice`:`:SerializeList`(Stream`&`): [@(0.0.255) void]_[* SerializeList]([_^Stream^ S -tream][@(0.0.255) `&]_[*@3 s])&] -[s2;%% Serializes the drop`-down list content.&] -[s3;%% &] -[s4; &] -[s5;:WithDropChoice`:`:AddHistory`(int`): [@(0.0.255) void]_[* AddHistory]([@(0.0.255) int]_ -[*@3 max]_`=_[@3 12])&] -[s2;%% This method puts the value to the begin of drop`-down list. -If value is already in the list, it is removed first (values -in the list are unique). If there is more than [%-*@3 max] items -in the list, list is trimmed. This method is ideal when you want -to keep the history of previous values.&] -[s3;%% &] -[s4; &] -[s5;:WithDropChoice`:`:Dropping`(bool`): [_^WithDropChoice^ WithDropChoice][@(0.0.255) `& -]_[* Dropping]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2;%% In this mode, drop button is visible. Can be used to temporarily -remove the drop`-down list capability. Default is on.&] -[s3;%% &] -[s4; &] -[s5;:WithDropChoice`:`:NoDropping`(`): [_^WithDropChoice^ WithDropChoice][@(0.0.255) `&]_ -[* NoDropping]()&] -[s2;%% Same as Dropping(false).&] -[s3;%% &] -[s4; &] -[s5;:WithDropChoice`:`:NoDropFocus`(`): [_^WithDropChoice^ WithDropChoice][@(0.0.255) `&]_ -[* NoDropFocus]()&] -[s2;%% If NoDropFocus is active, focus is not moved to base widget -when drop button is pushed. Default is to move the focus.&] -[s3;%% &] -[s4; &] -[s5;:WithDropChoice`:`:Appending`(const String`&`,`"`): [_^WithDropChoice^ WithDropChoi -ce][@(0.0.255) `&]_[* Appending]([@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 s]_ -`=_`", `")&] -[s2; [*@3 s]&] -[s3;%% &] -[s4; &] -[s5;:WithDropChoice`:`:SetDropLines`(int`): [_^WithDropChoice^ WithDropChoice][@(0.0.255) `& -]_[* SetDropLines]([@(0.0.255) int]_[*@3 n])&] -[s2;%% Sets the maximum height of drop`-down list to accommodate -[%-*@3 n] lines (scrollbar appears if there is more than that).&] -[s3;%% &] -[s4; &] -[s5;:WithDropChoice`:`:SetDisplay`(int`,const Display`&`): [_^WithDropChoice^ WithDropC -hoice][@(0.0.255) `&]_[* SetDisplay]([@(0.0.255) int]_[*@3 i], [@(0.0.255) const]_[_^Display^ D -isplay][@(0.0.255) `&]_[*@3 d])&] -[s2;%% Sets the Display to be used with drop`-down list item [%-*@3 i].&] -[s3;%% &] -[s4; &] -[s5;:WithDropChoice`:`:SetDisplay`(const Display`&`): [_^WithDropChoice^ WithDropChoice -][@(0.0.255) `&]_[* SetDisplay]([@(0.0.255) const]_[_^Display^ Display][@(0.0.255) `&]_[*@3 d -])&] -[s2;%% Sets the Display to be used with drop`-down list, unless item`-specific -Display is assigned.&] -[s3;%% &] -[s4; &] -[s5;:WithDropChoice`:`:SetLineCy`(int`): [_^WithDropChoice^ WithDropChoice][@(0.0.255) `& -]_[* SetLineCy]([@(0.0.255) int]_[*@3 lcy])&] -[s2;%% Sets the line height of drop`-down display.&] -[s3;%% &] -[s4; &] -[s5;:WithDropChoice`:`:SetDisplay`(const Display`&`,int`): [_^WithDropChoice^ WithDropC -hoice][@(0.0.255) `&]_[* SetDisplay]([@(0.0.255) const]_[_^Display^ Display][@(0.0.255) `&]_ -[*@3 d], [@(0.0.255) int]_[*@3 lcy])&] -[s2;%% Same as SetDisplay(d).SetLineCy(lcy).&] -[s3;%% &] -[s4; &] -[s5;:WithDropChoice`:`:SetConvert`(const Convert`&`): [_^WithDropChoice^ WithDropChoice -][@(0.0.255) `&]_[* SetConvert]([@(0.0.255) const]_[_^Convert^ Convert][@(0.0.255) `&]_[*@3 d -])&] -[s2;%% Sets the Convert to be used with drop`-down list item [%-*@3 i].&] -[s3;%% &] -[s4; &] -[s5;:WithDropChoice`:`:AlwaysDrop`(bool`): [_^WithDropChoice^ WithDropChoice][@(0.0.255) `& -]_[* AlwaysDrop]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2;%% If active, drop button is visible even if the list is empty -(client code can fill it using WhenDrop callback).&] -[s3; &] -[s4; &] -[s5;:WithDropChoice`:`:RdOnlyDrop`(bool`): [_^WithDropChoice^ WithDropChoice][@(0.0.255) `& -]_[* RdOnlyDrop]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2;%% If active, allows changing value even by drop even if ReadOnly.&] -[s3;%% &] -[s4; &] -[s5;:WithDropChoice`:`:WithWheel`(bool`): [_^WithDropChoice^ WithDropChoice][@(0.0.255) `& -]_[* WithWheel]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2;%% Widget reacts to mousewheel. This is active by default.&] -[s3;%% &] -[s4; &] -[s5;:WithDropChoice`:`:NoWithWheel`(`): [_^WithDropChoice^ WithDropChoice][@(0.0.255) `&]_ -[* NoWithWheel]()&] -[s2;%% Same as WithWheel(false).&] -[s3; &] -[s4; &] -[s5;:WithDropChoice`:`:DropWidth`(int`): [_^WithDropChoice^ WithDropChoice][@(0.0.255) `& -]_[* DropWidth]([@(0.0.255) int]_[*@3 w])&] -[s2;%% Set the width of the drop down list to [%-*@3 w].&] -[s3;%% &] -[s4; &] -[s5;:WithDropChoice`:`:DropWidthZ`(int`): [_^WithDropChoice^ WithDropChoice][@(0.0.255) `& -]_[* DropWidthZ]([@(0.0.255) int]_[*@3 w])&] -[s2;%% Set the width of the drop down list to a value obtained by -zooming [%-*@3 w] in accordance with font scaling.&] -[s3;%% &] -[s4; &] -[s5;:WithDropChoice`:`:UpDownKeys`(bool`): [_^WithDropChoice^ WithDropChoice][@(0.0.255) `& -]_[* UpDownKeys]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] -[s2;%% If active, Up and Down keys cycle through the history. Default -is active..&] -[s3;%% &] -[s4; &] -[s5;:WithDropChoice`:`:NoUpDownKeys`(`): [_^WithDropChoice^ WithDropChoice][@(0.0.255) `& -]_[* NoUpDownKeys]()&] -[s2;%% Same as UpDownKeys(false).&] -[s3;%% &] -[s4; &] -[s5;:WithDropChoice`:`:GetCount`(`)const: [@(0.0.255) int]_[* GetCount]()_[@(0.0.255) const -]&] -[s2;%% Returns the number of items in the drop down list.&] -[s3;%% &] -[s4; &] -[s5;:WithDropChoice`:`:Get`(int`)const: [_^Value^ Value]_[* Get]([@(0.0.255) int]_[*@3 i])_[@(0.0.255) c -onst]&] -[s2;%% Returns the item with the index [%-*@3 i ]from the drop down -list.&] -[s3;%% &] -[s4; &] -[s5;:WithDropChoice`:`:StyleDefault`(`): [@(0.0.255) const]_[_^MultiButton`:`:Style^ Mult -iButton`::Style][@(0.0.255) `&]_[* StyleDefault]()&] -[s2;%% Returns the default style of the drop down frame added to -the widget.&] -[s3; &] -[s4; &] -[s5;:WithDropChoice`:`:SetStyle`(const MultiButton`:`:Style`&`): [_^WithDropChoice^ Wit -hDropChoice][@(0.0.255) `&]_[* SetStyle]([@(0.0.255) const]_[_^MultiButton`:`:Style^ Mult -iButton`::Style][@(0.0.255) `&]_[*@3 s])&] -[s2;%% Sets the frame style to [%-_^MultiButton`:`:Style^ MultiButton`::Style] -[%-*@3 s].&] -[s3;%% &] +topic "WithDropChoice"; +[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,0#27521748481378242620020725143825:desc] +[0 $$3,0#96390100711032703541132217272105:end] +[H6;0 $$4,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] +[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] +[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] +[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] +[b42;2 $$9,9#13035079074754324216151401829390:normal] +[{_} +[ {{10000@3 [s0; [*@(229)4 WithDropChoice]]}}&] +[s3; &] +[s1;:noref: [@(0.0.255)3 template][3 _<][@(0.0.255)3 class][3 _][*@3;3 T][@(0.0.255)3 >]&] +[s1;:WithDropChoice`:`:class: [@(0.0.255) class]_[* WithDropChoice]_:_[@(0.0.255) public]_[*@3 T +]&] +[s0;%% &] +[s2;%% +@@image:1350&331 +(A9gANQAAAMv/AAAAAHic7ZyxTttAGIDzSjxH36EP0KFrK8YGhi6gMmUoZUFCLJ0oyogKQUItIkIIVVUpDjE1hEilhbaj+0MU1707J2fHds7o+/QNtrGTIH3c5SCmf/mpj4iIQ5++fItYssYOQ4ASoUMogg+frxvvzmyUM0M6hGKQwM77f2yUM0M6hGKQuvyr3zbad1gbMqXvCaqH1NXt/bLRssN4fvmmaP9o/AhUDqnr7PLWxgwd5gsdPmDuO7wZ+Ojxs2hbPzJhh8pkHd9VJvGkaT3p8viTGh8Q3Efq6lzciJLcwMGufmSS94f69oiEjFcZL0l6NCKsHFKXF/wcGIWnbA/MsF62Lyf8fygzDon6YKiPkPrTQSW47/BHZJTfMMJ/Xyqtw6SXOjozOqw0Utfpt+u4UYTK8UnWy8zLMBqp6+v5d0WJUD844e8PR68slI2khYblOiUkxaph7NAof0+B4rjrsHthIx1Ccdx16Hk20iEUB5+3gSqS1CFiyeod1gBKx9jhzJMWYmnSIbrg2A6V95NTf8H4ILUcD9MWSLGYSjpEF5TkvJN9v9MO/KNecGzfoTJTKxtM4phKSW5vt3l4sHX65aOkaNlhfDcKz7iLaKMkt7baaG6uS4pdr23fob54MQ6PiDZKcosLdUlRRkWZoDOMh/GDdIjZlOTm52ZXlpda2xsyNTMv41SU5Oovnr95/WrnfYoOZ8atU4yXICZp2SFiodIhumBSh+k/QQaQHToEF6BDcAE6BBegQ3CBsR3WuJMdiofxEFyADsEF6BBcgA7BBVingAswHoIL0CG4QFKHACWjd6jonezv7TbXVhuLC/X5uVk5HzF39ftTFP1O+/Bgq7m5LqetLC9JtIi5q9+vpxj4RzJUygnSamt7Q0ZOxNzV719W7AXH8iWpVAZMOQ2xCOP/z+EvcWfmOg==) +&] +[s0;%% &] +[s9;%% This template class adds a list of choices, with drop down +button placed at right side of the frame, to any widget with +associated value accessible via SetData/GetData interface.&] +[s3;%% &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0;%% [* Public Member List]]}}&] +[s3; &] +[s5;:WithDropChoice`:`:WhenDrop: [_^Callback^ Callback]_[* WhenDrop]&] +[s2;%% This callback is invoked when the drop button is pushed (before +drop down list appears). Client code can use it to create or +alter the list.&] +[s3;%% &] +[s4; &] +[s5;:WithDropChoice`:`:WhenSelect: [_^Callback^ Callback]_[* WhenSelect]&] +[s2;%% This callback is called after user selected an item from drop`-down +list and this value was assigned to the base widget.&] +[s3;%% &] +[s4; &] +[s5;:WithDropChoice`:`:ClearList`(`): [@(0.0.255) void]_[* ClearList]()&] +[s2;%% Clears the drop`-down list.&] +[s3;%% &] +[s4; &] +[s5;:WithDropChoice`:`:AddList`(const Value`&`): [@(0.0.255) void]_[* AddList]([@(0.0.255) c +onst]_[_^Value^ Value][@(0.0.255) `&]_[*@3 data])&] +[s2;%% Adds [%-*@3 data] to the drop`-down list.&] +[s3;%% &] +[s4; &] +[s5;:Upp`:`:WithDropChoice`:`:Set`(int`,const Upp`:`:Value`&`): [@(0.0.255) void]_[* Set]( +[@(0.0.255) int]_[*@3 i], [@(0.0.255) const]_[_^Upp`:`:Value^ Value][@(0.0.255) `&]_[*@3 data +])&] +[s2;%% Sets entry [%-*@3 i] in drop`-down list to [%-*@3 data] .&] +[s3;%% &] +[s4; &] +[s5;:Upp`:`:WithDropChoice`:`:Remove`(int`): [@(0.0.255) void]_[* Remove]([@(0.0.255) int]_ +[*@3 i])&] +[s2;%% Removes entry [%-*@3 i] in drop`-down list.&] +[s3;%% &] +[s4; &] +[s5;:WithDropChoice`:`:SerializeList`(Stream`&`): [@(0.0.255) void]_[* SerializeList]([_^Stream^ S +tream][@(0.0.255) `&]_[*@3 s])&] +[s2;%% Serializes the drop`-down list content.&] +[s3;%% &] +[s4; &] +[s5;:WithDropChoice`:`:AddHistory`(int`): [@(0.0.255) void]_[* AddHistory]([@(0.0.255) int]_ +[*@3 max]_`=_[@3 12])&] +[s2;%% This method puts the value to the begin of drop`-down list. +If value is already in the list, it is removed first (values +in the list are unique). If there is more than [%-*@3 max] items +in the list, list is trimmed. This method is ideal when you want +to keep the history of previous values.&] +[s3;%% &] +[s4; &] +[s5;:WithDropChoice`:`:Dropping`(bool`): [_^WithDropChoice^ WithDropChoice][@(0.0.255) `& +]_[* Dropping]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2;%% In this mode, drop button is visible. Can be used to temporarily +remove the drop`-down list capability. Default is on.&] +[s3;%% &] +[s4; &] +[s5;:WithDropChoice`:`:NoDropping`(`): [_^WithDropChoice^ WithDropChoice][@(0.0.255) `&]_ +[* NoDropping]()&] +[s2;%% Same as Dropping(false).&] +[s3;%% &] +[s4; &] +[s5;:WithDropChoice`:`:NoDropFocus`(`): [_^WithDropChoice^ WithDropChoice][@(0.0.255) `&]_ +[* NoDropFocus]()&] +[s2;%% If NoDropFocus is active, focus is not moved to base widget +when drop button is pushed. Default is to move the focus.&] +[s3;%% &] +[s4; &] +[s5;:WithDropChoice`:`:Appending`(const String`&`,`"`): [_^WithDropChoice^ WithDropChoi +ce][@(0.0.255) `&]_[* Appending]([@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 s]_ +`=_`", `")&] +[s2; [*@3 s]&] +[s3;%% &] +[s4; &] +[s5;:WithDropChoice`:`:SetDropLines`(int`): [_^WithDropChoice^ WithDropChoice][@(0.0.255) `& +]_[* SetDropLines]([@(0.0.255) int]_[*@3 n])&] +[s2;%% Sets the maximum height of drop`-down list to accommodate +[%-*@3 n] lines (scrollbar appears if there is more than that).&] +[s3;%% &] +[s4; &] +[s5;:WithDropChoice`:`:SetDisplay`(int`,const Display`&`): [_^WithDropChoice^ WithDropC +hoice][@(0.0.255) `&]_[* SetDisplay]([@(0.0.255) int]_[*@3 i], [@(0.0.255) const]_[_^Display^ D +isplay][@(0.0.255) `&]_[*@3 d])&] +[s2;%% Sets the Display to be used with drop`-down list item [%-*@3 i].&] +[s3;%% &] +[s4; &] +[s5;:WithDropChoice`:`:SetDisplay`(const Display`&`): [_^WithDropChoice^ WithDropChoice +][@(0.0.255) `&]_[* SetDisplay]([@(0.0.255) const]_[_^Display^ Display][@(0.0.255) `&]_[*@3 d +])&] +[s2;%% Sets the Display to be used with drop`-down list, unless item`-specific +Display is assigned.&] +[s3;%% &] +[s4; &] +[s5;:WithDropChoice`:`:SetLineCy`(int`): [_^WithDropChoice^ WithDropChoice][@(0.0.255) `& +]_[* SetLineCy]([@(0.0.255) int]_[*@3 lcy])&] +[s2;%% Sets the line height of drop`-down display.&] +[s3;%% &] +[s4; &] +[s5;:WithDropChoice`:`:SetDisplay`(const Display`&`,int`): [_^WithDropChoice^ WithDropC +hoice][@(0.0.255) `&]_[* SetDisplay]([@(0.0.255) const]_[_^Display^ Display][@(0.0.255) `&]_ +[*@3 d], [@(0.0.255) int]_[*@3 lcy])&] +[s2;%% Same as SetDisplay(d).SetLineCy(lcy).&] +[s3;%% &] +[s4; &] +[s5;:WithDropChoice`:`:SetConvert`(const Convert`&`): [_^WithDropChoice^ WithDropChoice +][@(0.0.255) `&]_[* SetConvert]([@(0.0.255) const]_[_^Convert^ Convert][@(0.0.255) `&]_[*@3 d +])&] +[s2;%% Sets the Convert to be used with drop`-down list item [%-*@3 i].&] +[s3;%% &] +[s4; &] +[s5;:WithDropChoice`:`:AlwaysDrop`(bool`): [_^WithDropChoice^ WithDropChoice][@(0.0.255) `& +]_[* AlwaysDrop]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2;%% If active, drop button is visible even if the list is empty +(client code can fill it using WhenDrop callback).&] +[s3; &] +[s4; &] +[s5;:WithDropChoice`:`:RdOnlyDrop`(bool`): [_^WithDropChoice^ WithDropChoice][@(0.0.255) `& +]_[* RdOnlyDrop]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2;%% If active, allows changing value even by drop even if ReadOnly.&] +[s3;%% &] +[s4; &] +[s5;:WithDropChoice`:`:WithWheel`(bool`): [_^WithDropChoice^ WithDropChoice][@(0.0.255) `& +]_[* WithWheel]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2;%% Widget reacts to mousewheel. This is active by default.&] +[s3;%% &] +[s4; &] +[s5;:WithDropChoice`:`:NoWithWheel`(`): [_^WithDropChoice^ WithDropChoice][@(0.0.255) `&]_ +[* NoWithWheel]()&] +[s2;%% Same as WithWheel(false).&] +[s3; &] +[s4; &] +[s5;:WithDropChoice`:`:DropWidth`(int`): [_^WithDropChoice^ WithDropChoice][@(0.0.255) `& +]_[* DropWidth]([@(0.0.255) int]_[*@3 w])&] +[s2;%% Set the width of the drop down list to [%-*@3 w].&] +[s3;%% &] +[s4; &] +[s5;:WithDropChoice`:`:DropWidthZ`(int`): [_^WithDropChoice^ WithDropChoice][@(0.0.255) `& +]_[* DropWidthZ]([@(0.0.255) int]_[*@3 w])&] +[s2;%% Set the width of the drop down list to a value obtained by +zooming [%-*@3 w] in accordance with font scaling.&] +[s3;%% &] +[s4; &] +[s5;:WithDropChoice`:`:UpDownKeys`(bool`): [_^WithDropChoice^ WithDropChoice][@(0.0.255) `& +]_[* UpDownKeys]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s2;%% If active, Up and Down keys cycle through the history. Default +is active..&] +[s3;%% &] +[s4; &] +[s5;:WithDropChoice`:`:NoUpDownKeys`(`): [_^WithDropChoice^ WithDropChoice][@(0.0.255) `& +]_[* NoUpDownKeys]()&] +[s2;%% Same as UpDownKeys(false).&] +[s3;%% &] +[s4; &] +[s5;:WithDropChoice`:`:GetCount`(`)const: [@(0.0.255) int]_[* GetCount]()_[@(0.0.255) const +]&] +[s2;%% Returns the number of items in the drop down list.&] +[s3;%% &] +[s4; &] +[s5;:WithDropChoice`:`:Get`(int`)const: [_^Value^ Value]_[* Get]([@(0.0.255) int]_[*@3 i])_[@(0.0.255) c +onst]&] +[s2;%% Returns the item with the index [%-*@3 i ]from the drop down +list.&] +[s3;%% &] +[s4; &] +[s5;:WithDropChoice`:`:StyleDefault`(`): [@(0.0.255) const]_[_^MultiButton`:`:Style^ Mult +iButton`::Style][@(0.0.255) `&]_[* StyleDefault]()&] +[s2;%% Returns the default style of the drop down frame added to +the widget.&] +[s3; &] +[s4; &] +[s5;:WithDropChoice`:`:SetStyle`(const MultiButton`:`:Style`&`): [_^WithDropChoice^ Wit +hDropChoice][@(0.0.255) `&]_[* SetStyle]([@(0.0.255) const]_[_^MultiButton`:`:Style^ Mult +iButton`::Style][@(0.0.255) `&]_[*@3 s])&] +[s2;%% Sets the frame style to [%-_^MultiButton`:`:Style^ MultiButton`::Style] +[%-*@3 s].&] +[s3;%% &] [s0; ]] \ No newline at end of file diff --git a/uppsrc/CtrlLib/src.tpp/WithSpin$en-us.tpp b/uppsrc/CtrlLib/src.tpp/WithSpin_en-us.tpp similarity index 100% rename from uppsrc/CtrlLib/src.tpp/WithSpin$en-us.tpp rename to uppsrc/CtrlLib/src.tpp/WithSpin_en-us.tpp diff --git a/uppsrc/CtrlLib/src.tpp/index$en-us.tpp b/uppsrc/CtrlLib/src.tpp/index_en-us.tpp similarity index 98% rename from uppsrc/CtrlLib/src.tpp/index$en-us.tpp rename to uppsrc/CtrlLib/src.tpp/index_en-us.tpp index b338e47d9..2890e6f38 100644 --- a/uppsrc/CtrlLib/src.tpp/index$en-us.tpp +++ b/uppsrc/CtrlLib/src.tpp/index_en-us.tpp @@ -1,3429 +1,3429 @@ -topic "CtrlLib widgets"; -[2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;*@(64)2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,0#27521748481378242620020725143825:desc] -[a83;*R6 $$3,0#31310162474203024125188417583966:caption] -[l288;i1121;b17;O9;~~~.1408;2 $$4,0#10431211400427159095818037425705:param] -[i448;a25;kKO9;*@(64)2 $$5,0#37138531426314131252341829483370:item] -[*+117 $$6,6#14700283458701402223321329925657:header] -[{_}%EN-US -[s3; Alphabetical list of CtrlLib widgets&] -[ {{2416:3247:4337^@(204) [s0; Widget class] -::= [s0;= Visual appearance] -::^ [s0; Short description] -::@2 [s0; [^topic`:`/`/CtrlLib`/src`/ArrayCtrl`$en`-us^ ArrayCtrl]] -::= [s0;= -@@image:1122&442 -€ƒ§õ€€€ƒ‹ÿ€€€€ø¿œíÏŽÜÄŽÆç•О£„§Þ€£‡ŽÜÉó€ðá€ñˆ€¹ÄÜÿ¤ȉˆÊ²¡ÍüÝ¢°¢‰›ÅÍæ­Åˆ¸ -……æ¬õÌ×÷›»ªûºË®ÿ±ŸÊ«ï­Ý³‹ý¹ÿÛ½³öŒÍ÷¼ß¡ˆì„‚±Žøó°‘ˆÄ¥ˆÁí÷‚‚ Šš„ÄÎýÎí—Îÿ¿·’žÂ™Ý -Óš“ñ” ›ÜØÛÉÏáÌîÍéé·¾¸ðéí¡÷¿Ê¬¦Ýßݾý΀îð¨ï¥½…³»µ»§Û’çâîï˺¿ž‡—“þ®ïþÚïÖåžÂ·ù¿øÏÒ -É´óã÷¦ûº÷Юµô¦ß¶ôêÅМ÷ÓÍö⎩¯¾íÒ—±÷Ý­·ç×ì€Ýâ×ÄÌöôô¤†–óÉϹ¶ë­áÛåì£úèþ£èãç—î¿Éǯ -­¿þ׳†è†±÷ŠûºÛ®µÔð†Ð¹‹¾ß¼»žÇÙ×Îùµ™þÏî×Ð…õ×›ãÌììÄíŽÊ´¼ó÷¤ÇÐÅžáú„æâ­Ë•£ƒºáÁçøãÁÝ–™ -ßÓ½„îñŽÝ¸¾ÆÉ®˜ºó´“ôíࣦ¢çú›·îÉÿ½ä¼ñí¥Î„Ù¯é¬è‡—Ò呹ÁÝ©©—ïõ¼±×ÇïöæºÓÅÎÄÐö -زø”ý×¹‚Ÿè¸Ïû²³Íÿ¨™é’ÎÚÙˆ±ôŸÝüä¬âàÍÛöÑÕÉ€®½ÆâùéÖØ­çÞöÌ—·×‘¥ŒÂÀ÷·”Îæ˜Ó½“„îðÄÙ០-…ãÌלº¯Óý¸Î«ážèÝÈËéç—»ŽËñ¡ÛÊÏóÌé¼ÎÉùôÆï®ÌœßýÆÃ¦¦ë²¼œçÒçØªöÔ¬šî¬É¿§›üÎÝúˆ·ÄƒóŒ’ -·Ïé†ß—ÕåÕ‘¹ÝË螦£«ƒ®Ù´»®Íí¯»ØÊˆáÄ•©éóºÓëÏé®ï¤£ýð󺪡ò·±ÍÐÚâÿüªÀ—¶§»½¢ûå뻿¤£ð -™Š”û¡…ç·òÌéί½ôö̹¹¬¸›Ë¿»¿ò¯½¼ù¡ý“„‚‘‹žç–ÝÞåðñãÁ󈄢–™óè£çù¹†õ‹Ê¨ˆŠÎ¤Ôïâþºµ¨¸´Ô -ÕË訄Ǚ¨¾×½ûéÖ ˜Þô퟉®€–ÈÞýô—î¿ûÙÞÐðøâ­÷£í¥ß‡ÛéÅŸÞÞ»¾òû¹†Ù…îÆµÝçïþô€“êîÏ—€Î¨ñ -Ýçô“Љ¾§öÛƒ¬Â×ÓƉ·ç‹¶ôçμΉ–½Ô¯ÕøŠ”ÉèºÑÉ•©ëá苾Ùÿʉ©ôœ¿íµ¿¿ÿ÷ÿ«ƒƒƒû÷ïÜ¿¼Õññ±  -™Û­ô›Íæ²ù³¬™†îúÏð§ö…ÃíëèèˆÐµ˜éê€Ý¼åÐúúñÇ“ÎÈ¡Ûß×êÕ·Þ¥èø€Ç†¡»öÃñŸçß»·ÖìÓŒ”ºþ‚ -Œ‹Â爻¹¹¼ô•–—㫪ø½ÌýžïÒŸ†¡»úýã—ŸÃÝ”ý¯´£Ï…îÞ½ûŽ®Œ˜ôÏž½ƒôªµ ›“•ˬþņ¡ûêΣܾ†Ê¼í¾¤ -“й—ñ€î¦‡ÐѹŒ¯Ý—ßþ¾„×ijçü§©ôý™Û¦Áèžï…·èÚÏôË’á§è®ì½œÇÀ—œ——Â×ÿ´ž„îÏ­€ó–—陆îò -“­ûÞ¸â貞ƒºÃÃàô˜ÿí…èðÆÊ¾Ú†¡ûâæïóœÂ÷´ÕñÐÖ§§§îÅœôÛÒº‰ÎáöåÏÖ€Ž×¤¤¤å˜º«·ö¹õ‘£îéÓ -‹§€ŽÐÉå˜Ëº«·îð‚×¸ÞæˆÐ•Ȫžô¸Ë ª€Ý£‰¬Â§• “¦‰Ð•ˆ÷Ž©Áñ†ê…èÊÓ„¡•“œÉ¨ø’ôžü½†–ðî©¿‡ù† -՜ɛƒèÊÜ£Éõ•žÊð©œÁŒæ€º’¡÷èòÕ‹ìÞÁ€Îºì€Ý‰ðû´é€ºŒ„Œ¸Î †ó€Â݉û´é€º£ŒÂĜ瘟¯Ž«ŸÖ†Ã† -×Е¸Ç“¶ ©“–¦â¸Ã¬Â̤þÚ›Œ›²æÐí¶›ÉÌúâÏÁê¦Ý‰£É›ÐÉ‹“‚ñœá–¦Ò¿Ý­†âÌÇ„®ý«®û´À郺éᢎ -ö³ÌÂÄê§µ£Á°Ùœôó‰ÃÃÐÉ‹“ñœ á–¦Ò¿­†Íûå¥Ý«“Ò¥ãìÛë°áÖˆ§Ÿìî…“ö¦íÀ§Ô­ÌÄñ†Ù˜œÈŠÚÑžº -¬ÊÓ¯Éè’íЈÒù‡¡•ܸܙ†ÎÚטˆãŒ³°‘¤º”µã¦Ð…Ùß§ÉÿÊЪ…ÛϸǓ¶Ó “–¦â¸Ãä¬Ì¤ŽÅ혌‰ô‰ý㻀 -¥ºúʨÌÄñå†Ù˜ÈŠÚܱ·è¼¡ž¤âò²ÀרŒñÂĜ瘅‰—Ô¡¨³ý£Òåòú””ºàċִ„°‘Ç™æá¢õ¨ê‡®È© -‚ô¦íÀ§­ªÌÄñ†Ù˜Èãý´¶˜¶€®íĽ𴴄°‘Ç™Üû¹µ˜ƒèÊÜ£ÉöƒÐᮃÚî†Ð•¸Ç“†« “ŠÐɇ頫ñ¦Ëï -‘ÂÞâðœÁŒõ怺’÷ÔŸùüƒÎ¤Í©šÝÊ„š×±§Á™„€Ý‰Ð‰÷òˆŽ³Ð¯ À×¢Ôøî…¡èÄ‚ô¥²Šž¾Ë ª€Ýë‰¬Â—Ñ˜È -ÜëßÚ“ ú«‘á褅‰‰¼–âÐñŠ“ïµè¡ªÔ¾‰ªµ‘‰æã»¥‚´¾ÀÚú¬ß§†¡“–¦òÚá·®ÌÔ¢¿‡ªÒéªÂð×ò¸Ó†¡“ -Ô–¦òÚˆÁǼ©ÌÔ¢‡ªÚ€ƒôù­ð䘰ºé᢯…˜ÆôœÂÄ­ú¨æª•å¥Ýûч¥àäÔÅÛ˜„鸞‹¾ÖžÏ•†¡“–¦òÊÚˆÁÇ©ÌÔ -Ç¢‡ªê¥¢©È—ÿýèµÛ’†®ñè™Ü²™†ÎÚ˜ÈëÈ¡†§°Ñ‹Òžªê¦Ð…ßí÷Èãà‡̮¸ÏÊÜ»•¾á褅‰¼–ââÐñŠ“µè -áªæ‚ÝâÿÅàŽ““–ç¦í‹µÈ—á褧…‰¼–âÐñüŠ“µè¡ªæ€†Ý–Žô¯¿þÿÒŒóò‡Ë˘²Š“ùÌ­¤ ›¬ÌÔŸ¢‡ªší›© -±ãÃâëÂÄªŠ±¸Þ½Öð‚·ŽŒÃ§­ÌÛ䵃ŽÓ˜á¨ÅÕå銗”ì—æÙ²Œ»´°‘פÆô‰ÂÄ­ú¨Äª›ÐåÏՅ첌´°‘× -–‚®½ÌȆôÒÚ²Šî²¨°ªÀ×¢«ÐÉÂ…èÄ‚ô¥Â³ãÃðœú¢º’áèÅ„ðç’µ°Â²–ÎêÏážç«Ò怺’÷èŒÒý¥§’œç -ºƒ¹€®Ä½ÕšÜÕ‚»— ¡“Ž›À×➔͚€ŽßåЪûØ€º’÷è±Ò€ô™…‰¸ƒÎàÛû†ó€‚݉û´éƒºèéᢎ³Ì¾Äê§µÁ°é -ê†Ý¦þÅ«éüì·æŒ¯þƒÞ¹û´éƒºèéᢎ³ÌÂâĺĴˆÝ™é®™ô»êŠºšÇ“¶ “–¦¥â¸Ã¬Ì¤‚âÂËØ›ôå­îùîÑ¤è¤ -‹…‰¸Î°‹“穀вԖ—ªô½Ç—ÿ‰íÿº§×Ô¤‡¬³Ûã»Ç“¶Ó “–¦â¸Ã¤¬Ì¤ŽÅí蔥©È—³²™ÌЀéÓÈÏ·ÆäΰôÒ -ñÂĜ瘅‰§Ô¡¨³®¡øÞ‡Å ýÖøŒ‡ê¯µàœ„«ò¦íÀ§Ô­ÌÄñ†Ù˜ÌÈŠÚ±“èÒ’û‡·è¾üÝö§ùÂò²£„°‘Ç™æá¢ -¸õ¨êÇÜ ‹à‚¢ÝÞ²ÛÇò²¦ŒÂÄœþ瘅‰Ô¡¨¢³ý£¥ÈžðÏÄú®ßþéûÁÖøîѽ¤è¤…‰¸‘ΰ‹“©ÃÑ»ðÅÊ¡û´ -À郺éᢎö³ÌÂÄê§µãÁ°ô¥îѽ¤è¤…‰¸ŸÎàÚËÁœÀ¢×âžÍš€Žä÷™Ôž¶€®¥Ä½š´€ÔÁ€Îºì€Ý‰ û´Ùþ—ö’ -ƒƒãŒâ°çŒÖÝðÿ˜ Ë¸‹§þœæ™ð¦ú펷ӽòÆ„µš¨†–”ê¢Þń璪´‹Ó­Ä¨û¹„¥Ç™¨—溒ƒ¡Âó¯À§’Òæº’Ù…Žß -˜åÐÕ˜éÊ䎕ºŒÂÄÞ‹ïøÖž„°Ó•™È°ôÒÂÄÞ´‹±è¸…‰Ú¡ôÐÕ­çºÍµòÛŒ“ùñ•çˉ¾ì˜ß•ɼۙ†ÎÚ˜±ÈëÁŠÝ¸° -ªÑ‹žªÊ÷‹æÄøÐÍž’ØêÐɕјÈ롆§°Ñõ‹žªŠÐ•ÈŒ°ôÒÂÄދڱ踅‰ÚôˆÐÕ­¡›†¿¼Ý®ÒÕãä¶ÜÍúËËÉlj -Îí‹Ü£É›ÐàÉ‹“ù­Ä ‘㔦êÑÃÕ“µ‡®†Ë¸Ã™“œªƒèñ²ÍÁ‡åȰôÒ¡ÂÄÞ‹±è¸‹…‰ÚôÐÕ³Õ®ÕÆÌÇÌù”Ѫµ¨Ã -ÁÐÉ‹“ù­Ä£ ã”¦êÑÊÕ턺ÿ燄¾¹ -] -::^ [s0; Complex tabular widget.] -:: [s0; [^topic`:`/`/CtrlLib`/src`/Bar`$en`-us^ Bar]] -::= [s0;= ] -::^ [s0; Common base class for MenuBar and ToolBar.] -:: [s0; [^topic`:`/`/CtrlLib`/src`/Button`$en`-us^ Button]] -::= [s0;= -@@image:456&175 -€ƒÉ€œ€€€ƒäÿ€€€€ø‡œí˜Á˂ѦÇû˜ýÎ’ÁÐ׈‚îÁ³Ð©ËÔÅÛÚ ‘ᗨĘÈÁÝŒº„ÁÒˆ¯Á©˜ŠÊŠ¡ÄÚâí© -šå®Ù°ýᯯõ±êŒ”ƒ¼¾þ‡™·ÏõÚþŒ óÌÊΤœ¢ŸìºžÊìÄï¯Ï…‚àÑöׯ°»è¢ŸŸÚš›“ßÁÄôÊüòЖ¨ç­æÍà -ûúð‚»á‹ÈÀÉ¢–«Œ¸Çï§É½ý˨ÿï¶å¡†æ¢šßðŠ…’Òˆ¿¬Ÿ­®…Ñ»ßÛ¶½ÕÐâô¬‹Ÿ±…¬¨í¸„Ñ¶Ýƒš„šµŸ¡‹ê -ýÛÛ‘¾ÔÚíȯ‘ÔÚ­‹Éˆ²ÔÍí̆ ÖüìðÀ‡ÙÚ´³àÂДëüÔ¹ òíê„®§œˆê£ïõª‡”¯Í›ß§ó媄¯µê›Éõë -ÌÓÇùò•‚ûÚ«Ùá€úµÍ©“¸žò ¨¡½¼›œÐ¼¶•팘ԪÆù‰ƒª×¦ê¾™ëŒ‚šÑþþà¢þ¯©›®²³Ì•Ÿ©‹¢ ¨•î³ -Œ¢ ¨å²·¢éèËóÔîÉ’×¢€Úð󩨗µÌô˜ÛøñÞþÀÁ䳌ÏÛ­•ˆº•øæÖÌ÷è×ô€ƒþÁëÁå·ƒ¼¯²éáøÓ©µôî -ãßïóú„ý‚§—Õ¬ùßû€Îœ€þŸßƒ°Œ–ŠîêµÄ„¿¹¨¢ö -] -::^ [s0; Basic button.] -:: [s0; [^topic`:`/`/CtrlLib`/src`/ButtonOption`$en`-us^ ButtonOption]] -::= [s0;= -@@image:225&125 -€ƒ¤€”€€€ƒìÿ€€€€ø¯œÝ•ËÊÃÀ¦”†ó˜¾ˆ«²Áð•„Á ±¸ò£ˆº© ò®ŠîĤ¶±›Ä¥‚î”Á’—Š’…Åë¤Õ •¡è›Þ¬ -•÷ÛŠÙÔŸŽŽÃæ²±¥«×‡Ÿá¤œÿ¾è¹‡òÒèüÛÍõнºô¬ûÆäëøàíää “ù­Øˆ…‚˜ê›Êöô¿·µ÷‡©³çøôàäºìæ¼ -“¯—–¬Ä‚šª®Èº´ï‹•âéí÷îõÿÈ‘ò¿½æ™úË­¦™¥œÓÑ“æîøúåÙèœÔŠë¼”ÙíÙôœÃ®Ê¬€É©¼‘€£‹ã¡ÞÔ -Ïäû¾¦éþø’²ŒŒ²™…•–é¿‹¿ŸÿĤõäáÙˆÓµ¯ûüžÐòâå–牧Ëß„‰±¾¿ÞÉôÛòŠØž¯ëíõ£™ÄâŠèäÈÉÛšÆúú¬ -‘¤±š¥†êþÖí¾ÌïÇĘٕÒéØœÉ”ó»ÈŠ´Ãíï½ô‹ùµ¤õÅÊäá²éÜÜߨåšóܼ‹ßޱö¦çÖÔ‚•àáӹƈòÎ÷ÔÊ -‘éú×ï‚Ù°Ô“Ö¶íµ¦ôîͲÐÂð£©Ý…‘„ɀƉ€ÂÅ€¦²õÍò€‡ê¤Á­ÃÅ€±‹±ê°±ËÅœŒ¸‰ªâèãúðá–âÓœïÖ¬ -‘üܳ´â¡®‡™ôÿêÖ’™™ïúÿäÿý -] -::^ [s0; Simple 2`-state Ctrl `- similar to Option, but with visual appearance -of Button.] -:: [s0; [^topic`:`/`/CtrlLib`/src`/ColorPopUp`$en`-us`#ColorButton`:`:class^ ColorButton]] -::= [s0;= -@@image:150&137 -€ƒ˜€–€€€ƒêÿ€€€€ø½œûóòÆ›¡Ñ…˜˜˜¨âÈ‹£ú锛ŕ„ó †À¥ÆêÑÅœ¸¡ÈŒ¡²‡Í¯ÙÆâÑÅœäÝÈ€ŽÔ££‰“‘ -éŽþÈ·ŠË—§ÈòšÁ•ÀÄšÅÅ󠀄µ£ˆ“€ŒÐ£Áà -] -::^ [s0; Color value and selection using ColorPopUp, supports displaying -color using Image.] -:: [s0; ColorCtrl] -::= [s0;= -@@image:300&150 -€ƒ°€˜€€€ƒèÿ€€€€ø½œûóòƛфĈ­Ù±óàÿÑÿÿÿÑÜÃè°ð€è€¬îÑù¿À€û蘟¸Ä¸ç¿ÓѨûÆÝ³êÝžÑ÷ŒºçÔ -‚½ÔòÝþ¹÷ŒˆÀêž–é—‘šû†ÜªäÁÀ†ÈøÐÁ€ŽÞ˜á -] -::^ [s0; Color value and selection using modal dialog.] -:: [s0; [^topic`:`/`/CtrlLib`/src`/ColorPopUp`$en`-us`#ColorPopUp`:`:class^ ColorPopUp]] -::= [s0;= -@@image:618&786 -€ƒ¤ò€€ƒŽþ€€€€ø¯œìÝçó”÷ûžïýžÜÏî¥ó‡ÜÕþ¶ûöö·¼Õëñبó†ûÆž›±­Œ“ŒÁ–Æ„Á“³ˆ„¢ˆ„ऄ’‚Å„Ô -ØÈ¹«•óÎÓ©•óŽÝý©µ“ºªóîÏížæÎñé¶µÜü½Éë™úþê¬ÝÛ³ö‡úÒ«÷õšš†íªç×ç•”Åý«Û¶íÛ÷ÿ“îôèÐùûž’ -ÿÂäï­ý·«›§¨ÿâȚŸíÍ¿¶¶Ž˜ºÿÓóŠëÇÿíÿÀÑÿú´‘µŠÚš¼Ó´öƒ÷¯àø¡ÇÿÅΩê‡Ôùïí•ôþüš“’µŠúÁä -¯¢¶¦¿ë½ÿä÷ÿäÇÿá㛲ÆÑ¿ˆ½¬ÑÔÖôçþ®¶ò§Ð©ÉšžÅ½²¿àóÈï÷ß»‘µŠò¿²¿•µïÿ¡öÙ£¨ÍûëÿàüíÓåä¢ -ìþý½‘ŠÚÚȚÅíͯõ¶Æ‡Ž¿áµùÓÖ¨ŠúûÁôƒëÿ®ÕÚ×ÓžöÞî·³à†¯òÿ¬ÚÓÏžöìû¿áí¯Õç‡Õ²íÝÛ«ÚäÚŠ· -û½ªŸÿü…ÛÎÞÑ÷ïÞèôýÅ›Ýÿ«Ú×ìú“ßÕ¦×ןüŠþ¼ÿõÊÛ‘ŸïÙÞæèŸß¿ËøÑ÷Ïù×ô×ß©«øå›Ýÿ«çÛäúß¹ÿÑ -ÿžÿʳÙÏÿªÃÖÈšÙ£Üë䬑µ²†ÆÖÈšÙ£ë®ä¬‘µ²ÆƒÖÈšÙ£ëä׬‘µ²ÆÖÁÈšÙ£ëä÷¬ý£Ùû󞾫ÚÓžö¬û -ÿú»Ç´§ýÖƒìéûê¨ê먢딵µÑû¦ÈÚÓþëöÿ³½µ¯ò¸¶½ïþÀÿýùߨóüÚ½ú€ó·ë‡ëž×ï¥Õ…¹Ý¿ûñ±ß÷øñÜ÷Þ -ÿýÎÜýú½ûŽÿ÷çLJ뿞ÏÿŸ÷Ù‚×Û§Šÿü¨ÒÏýú½ø‘ž×ŸïÍüÿî…ÞžœÏŸŸýì£Üë䬑µ²žÆÖÈÚÿ¹äϬ‘µíä -»¬‘µ²æõØ ëä¬íóîüí¼£ÃÖÈàšÙ£ë䬵‘µ²ÆÖÈš°Ù£ëä¬ù¹õ€ä¬‘µ½²ÆÖÈšûñàûîéÏûÚ³ƒïéûê¨êë -¨¢ë”µµÑû¦ÈÚÓþëö¿§¶öÿúñÜŸÿëÿóâ¸ïÿïÍ‹ã¾ÿË‹¯ã¾ÿ—Çýëÿ¹—Çýÿò—ÇýÿƋ㯾¿æÅñ߇ŒûñÜ÷ÑÞœ -Õ÷ý²—ÇýŸ‹çÅñß×ùñçÜ÷íÞœ÷ýå°—Çý¿ïÅÎñß‹½¸ä묑µ²ÆÖÈàšÙ£ë䬵‘µ²ÆÖÈšðÙ£ë䬑𵲯ÖÈšÙ -¸£ë䬑µ²ÆÖÈšÙ£Üë䬑µ²þÆÖ¶Þš—ç×ûÇ¢½íéïÿÍž¾§†¢¶Â¦²ÆÑÛ“½Û‡¤½í·æÿüã믽Ξûèãíÿ½÷½ -¿Ïëì¹ïýÞ’çÏýŸýºûýîûîëì¹ïéûÞçÏýϼ÷Ξûž¯³ç¹ç°æù½œÅÖ¼¿ÞŽëžõϧ‡µÏ׋ßÚçýÀáÍóþã°æù¿ -¸óØóß¿öºµ‡µ²ÆÖÈšðÙ£ë䬑𵲯ÖÈšÙ¸£ë䬑µ²ÆÖÈšÙ£Üë䬑µ²†ÆÖÈšÙ£ë®ä¬‘µ²ÆƒÖÈšÙ£ëÛ -ÞïÍËóýãÑÏžö´÷æÏßÀÓÃÑۓ٣鶴‰ÞÃÒž½öÛ³ß䳑¦ŸöÜŸë»âûîûŸŸöÜù÷þ¾ì¹ï£ÊýØóßóýØþóß÷ù°ç¾ -ôçüØóßÇê½Ï½‡µÏëŸá°æùõòØÑóü¾¹¬ù¾”ޜּÖëž÷›‡µÏ¿û™ÃšûþµðŸŽë䬑𵲯ÖÈšÙ¸£ë䬑µ -²ÆÖÈšÙ£Üë䬑µ²†ÆÖÈšÙ£ë®ä¬‘µ²ÆƒÖÈšÙ£ëä׬‘µ²ÆÖÿ¶Þš—çûÇõ¢½íéïÍžß¾§†¢¶¦²ðÆÑÛ“½‡¤ -¶½í·æ¿Éçî£Á칿ÖöîàöÜ÷¾Áìß¹ïý‚Ùó߼LJ³ç¾ç†Ï³ç¾ï‹æÏºýÏ„³ç¾ÇİûžûŽëžû×ÃáÍóëåǰæùüòØó -ªü½¸¬ùÞŠœÖ¼ï·Žëëž÷³‡µ÷ýšëÁœÖÈšÙ¸£ë䬑µ²ÆÖÈšÙ£Üë䬑µ²†ÆÖÈšÙ£ë®ä¬‘µ²ÆƒÖÈšÙ£ëä -׬‘µ²ÆÖÁÈšÙ£ëäå¬í½µ¯Ï÷ùÅûÚÓÞ›€½ýÏÅí͎䢶¦úÔÉûÚïÍþ“ÝÏÆ¸ì¹¿Öˆö®ûîûŸ®Âûîû¿®ûî -‘ûè®ûîû®¥—½÷ýŸ—½•÷½ÃåÏýÄ®ûžûŽëžû×ÃáÍóëåǰæùüòØóªü½¸¬ùÞŠœÖ¼ï·Žëëž÷³‡µ÷ýàëÜŽëä¬ -µ‘µ²ÆÖÈšðÙ£ë䬑𵲯ÖÈšÙ¸£ë䬑µ²ÆÖÈšÙ£Üë䬑µ²†ÆÖÈšÙ£ë®ä¬‘µ²ÆÿÖ¶Þš—çûëÇ¢½íéïÍ -¿ž¾§†¢¶¦á²ÆÑÛ“½‡í¤½í·æ¿ÉÜç£Ó칿ÖÝöéöÜ÷¾Ó¿ì¹ïý¦ÙóùßÇϳç¾ç¾Î³ç¾ï›æõÏýÏ̳羉ǴûžûŽë -÷ž×ÃáÍóëå°æùüòØÕóü½¸¬ùÞ”œÖ¼ï·ŽÖëž÷³‡µ÷µýëÓœÖÈšðÙ£ë䬑𵲯ÖÈšÙ¸£ë䬑µ²ÆÖÈšÙ£ -Üë䬑µ²†ÆÖÈšÙ£ë®ä¬‘µ²ÆƒÖÈšÙ£ëäË¬í½µ¯Ïó÷ÅûÚÓÞ›½ýÏÅíœÍ䢶¦ú¨ÉûÚïÍþ»“ÏÆÀžûã -Èí‡ûîûŸ°çç¾÷ƒûîû¾è°ç¾ç‚½©÷ýŸØóß³òàÏý°ç¹Çç°æù½œÖ⼿ގëžÏú§‡µÏ׋ÃïšçýÀáÍóŽþã°æù¿ó -ŒØóß¿†Žë®ä¬‘µ²ÆƒÖÈšÙ£ëä׬‘µ²ÆÖÁÈšÙ£ëä묑µ²ÆÖÈàšÙ£ë䬵‘µ²ÆÖÈšðÙ£ë䬑úµ²ÆÖ¶Þš -ß—çûÇ¢½íþéïÍž¾§†‹¢¶¦²ÆÑÛ‡¤½í·Ææ¿Ù磼ÖáÜŸë»ø¬¹ÕïýÀãÍýïØ‡žëîûèðÔØóßóÁãÍ¢ý߇žëîû -܆¼ÖÜ÷€ºµÏ½ûñ¼žß°æùõ‚µÏ•瓬ù¾ÞàãÍóþ€ëž÷ü›Øó¼ŸÁš«ûþµ€µ²ÆƒÖÈšÙ£ëä׬‘µ²ÆÖÁÈšÙ£ëä -묑µ²ÆÖÈàšÙ£ë䬵‘µ²ÆÖÈšðÙ£ë䬑𵲯ÖÈšÙð£ëÛïÍËóýýãÑžö´÷„æÏßÓÃÑÛü“Ù£¨­‰ÞîÃÒžöÛ³ß -Óìÿ·½µ÷«ÇÚ¾ÍãÍýÕï³ÍãÍýÍãÍýŸ½õÍãÍýÏæÿ±æ¾ï›æ±ëæ¾ç¦ù¬¹•ï±ÍãÍó•Ö¼¯‡¬ùþ½àÍóù„ë -³ž¯—Øó¼Ÿ¯Àšçý†Ö¼ïç°æ¾ÿíÖš¬‘µ²ÆÖÁÈšÙ£ëä묑µ²ÆÖÈàšÙ£ë䬵‘µ²ÆÖÈšðÙ£ë䬑𵲯ÖÈšÙ -¸£ë䬑µÍ²ÆÖÈšÙÛØúëޞÏö´§½·ûú½žšŠÚšÈšèÅíÍôž’öï´ßšý¦Ÿ¬ðù¬¹¿ÖöÚ®µ÷½—¿ÇšûÞËã -ùÍýŸÍ屿ó¾çòù¬¹ï»û¸¼ÖÜ÷Œ—ÇšûžÜžšëžûöÿ㺫ž×ƒÖ¼¿Þ×°æùü‚µÏ•׋¬ùÞàãÍóþƒëž÷¸³Øó߿ƅ -Üë䬑µ²†ÆÖÈšÙ£ë®ä¬‘µ²ÆƒÖÈšÙ£ëä׬‘µ²ÆÖÁÈšÙ£ëä묑µ²ÆÖÈàšÙ£ëä¬õ‘µ²ÆÖ¶Þ¿š—çûÇ¢½ -ýíéïÍž¾§—†¢¶¦²ÆÑÜÛ“½‡¤½íÍ·æ¿Éç£Á†¼ÖÜŸëû°Íµ÷½Ï°¦µ÷½ß°µÑ÷ýô°µ÷ü½·˜Çšû¾¾¯˜Çšûž‰ -Ïæ±æ¾Ç°²µÏ½Øó¼žß°æùõ‚µÏ•瓬ù¾ÞàãÍóþ€ëž÷ü›Øó¼ŸÁš×ûþµà°ÆÖÁÈšÙ£ëä묑µ²ÆÖÈàšÙ£ëä¬ -µ‘µ²ÆÖÈšðÙ£ë䬑𵲯ÖÈšÙ¸£ë䬑µ²ÆÖÈšÙ£˜ëäíë­ùùù¾ÿ¬ÚÓžö‡Þìéûê¨êÐë¢ë”µµÑÌûÈÚÓþëö -Ù›ü¶âÃãÍŸý±¶ûðØóÏßûøðØóß§ûùðØóßÇ“ûðØóßóýžø¬¹ïûüø‡¬¹ï™ŸžëíîûøðØóÜ̓µÏëëžÈ߯Øóü¾Á -ךçë…ּﶇ°æù¿µ»Ïû™¬¹ïßñóë䬑𵲯ÖÈšÙ¸£ë䬑µ²ÆÖÈšÙ£Üë䬑µ²†ÆÖÈšÙ£ë®ä¬‘µ²Æ -ƒÖÈšÙ£ëä׬‘µ²ÆÖÿ¶Þš—çûÇõ¢½íéïÍžß¾§†¢¶¦²ðÆÑÛ“½‡¤¶½í·æ¿ÉçÆ£¯óØóÿ¬çí¯óØóßûë¼ÎãÍýï÷ -꺵÷ýôë¾¼ÖÜ÷Ü×ùיּïûÞç±óæ¾çÞç±æ×¾Çë¼Ö¼÷öàÍóúÀšçÕ׋ּŸÏ°ëæùúµÏûʬùÞïàÍñóþ†ëîû× -ðÞ‡ë䬑𵲯ÖÈšÙ¸£ë䬑µ²ÆÖÈšÙ£Üë䬑µ²†ÆÖÈšÙ£ë®ä¬‘µ²ÆƒÖÈšÙ£ëä׬‘µ²ÆÖÿ¶Þš—çûÇ -õ¢½íéïÍÞãÝÚþžŠ¢ÿþ†ýøû×È„šÅý½¢ë”¡ååÿ¥²ÆžÑÞô×ÿŽëÈÓë¿þ½ õÚ—¿´ÞÿÆ›½ú©÷ÝËô¿¿Úñƒ×ëÏú -¯•ÿâÏ¡éìÞû¥‘ïþ­¶ýý¿ÞôêŸç¿Ÿ¸¿æéýïÿ¹Úï¬ý€ÛË×Ù»³í³Üë®§Óåð¸½ìö—Íöòÿ±µØÜæ³Ëäôò™®ƒÁ¥ -Ó×»ôº—ÖëÛÚØð©Õ®•ËÊ¥Ôº”Š—¢ÜîÚß÷É䦮‰Ä¥–»Äž¢×Úš‹áÜî‚‹Ï÷­®ÁºÖÖÜËË®ÅÅׂëî¹Îµ»ëš™ñ -„Í͹¦§Ý“ö“®±±×訤ëäĵ´äš´œôñø®þþü×ﯫ§ÇÕïÕåêìôµ·Ç»ÚÚÜ­­®ñ¦¦×㣫¾¹ÞÕÛ목ñ„ÕÕ¹ªªÜå -Æå®ÒÒ×ñ±ç«¨ÈÕÐàÊýËóå串²ØÜ™™®´´×í‹—®ää×óÇ箄„×ü¼ä«®Î•íŠñŒôÅĸˆܞ¸ÂÂÜß÷î¹îÜñÝ -Ϻåò÷÷ݽëêºüÙõþ¼ûëôé×ñã®ãÃ‡Ý‡Ž¸öÙíóýþ¹ë×Þ®×ûï»þñÚ‹×ÿü‡—Öß¾ô¦ŸÚÍõã÷»×ÿðªñÔÆÞìÂÛ­ -ºø»ƒ¿èƯ×úð‹¼½„í·Æñæ„ÞøÞÉéûÞš»·Õ—À¼»›ÚûíÁñšÍΓɠ鴺†§Þ¯ïÔéœÚ­óŽãéѸժ¥§ÒéÔ¨œò -©¹óýÝ©“¹Õ¥Ò§Øì”‰‘œëëΆñŠù…ξ߹ºê€ÜÙñ®¯»—²—‹‹Îùù§çÜœóæÆ¹Ž½íœšòÎÌθÇÇããΑ‘çð°óð -¹Ð¹°àìï÷ãöõ¹ûúœÝÇÝÎÎÎçLJ¿³­ÍÙÚêì€îö¶µ¹›š™œõõÎÚÚçžõµ³²ÒÙѱᬫ󖔸‘¹Üçᡳ¿¿ß™›ëÌÎö -øææºÓөǩΔ”çҒÓÃñ¦¤¸Ÿì¾õÆÆº££ÅÏž¸£¢œŒááÎÐÐçðé°³°ÐùçŽûóæÍçõëÎͫח®¹Ï•Ÿ÷ž¾í¼ö -ýÌùø°óë¯çûö¹¿ÿÜý¹ë—óý÷Ï¿ø…Ó«ë—¿½éŸÛÚ÷·üÒšÞÈÂÛù¯ØÎůËñþœ¥¾¬ÅކüÿÔŒíØÕ…ÞݽØÕ݃ -­Øµ‚ãøèÜ’»¦ñáœÞžßÀ¯—°ý•œï‹Üôý·ÚçûÁ¯ëÎïΟŸ²æ°ÙœÖ³«Ãâñ˜ÍŽƒ“Éá´ºŒ†‡ÞïÐéœÚ¹­ããáѸ -•Ôê‡ÒéШ¤œò¹ãýݡՓ¹¤Ò‡Ä≜ë뎆ôñˆ…ŽÀ±ƒºêØÙñ¬¯ö»––œ‹‹ŽùùÇÜœãö¹Ö±½í˜šò˜ÌκÆÇã -öãŽÑÑÇð°äãèȱ°àà½ñœýýŽÞÞüÇÏ£«ËÑãÙéèï÷´µÀ¹ÚÚœÍÍŽñÆÆÇý½£®¹ÎÑÓ㨪òØÔÖºÊ˥ǥŽââÇÑ‘ -ÿ£°Ð‘ŸïÈÍõä绲³žééŽÔÔÇŽÊŠãùóÇâ÷¢ãÙ³Çӧ㎘˜ÇÔ”ãíɓǣǎ‡¼¡¡Žàà¤Çà £ Àñïó¦ãúõÇ• -꫎˗œçÎĹÎòœ»æü¸üØñõ׎êýûœŸÿîØÿ¹ÓñþûŽ·áßöøå­Ä›Ÿþù¬¹ÿ÷õšœÞÎÄ»©ø°¿ƒ»ò°³€ìŸ—ã³òì® -óÆžºüÑ„½ï­Ø×ýÝØ“ׇ¯‡°ï˜ÅûƱï‚û§ÛðŬöÌã÷Ø¢¾ÛÁÇüìÔ”âÇšÞ—ãÜÝ©ÞÞúßìß¶ý‰ß¯¹¼Ü»ÿÊšÝêµ -˜Û¬ö³Ùî²ÛÙÆ»Áà×ëëíºÝ«µ¤ïìØµš»Ú¬íש슅ݞ®·¯¯Û岩»Ôê—Èì⩱ݤ²³ŒÝ¨´‹„ö¾ß£¾ºêßÞ¶¯ -’­Ù——í‹‹»ö¹¹ûì¬ýâæÆ¾µåŸœù´ÏÌØÇÇíö‘‘ûЉýðо°à¿ïï·÷õÙû¾úìÝÝöÎÎüûLJ½­ÍÞ‘Úêïî¶·µ -ÉÙ›šìõõöñÚÚûõµ½ªÁÊÞÑᯫ³¿—”Ø‹‹íÅÆÅö‚‚ûޞܽ§Çž•åÏßȰ§¥Ùß¼Ù°§§ÛŸ¿·¼§¦ÚããíñÆñö˜˜ûä¤ -ãýñãûø¸ýýáÃûýûö ¾ ûÝ»ö€€ëû›öë×ìæ×®Ø¯Þ´ŸÐ»ç¿õÊþì÷˜ýСûþý›ö½ûíŸýæßß¹ÓþÞûö¿·ß¶ÿû¿û -üá­Î›þ™¬×ýñþ‰Àÿ†‹àíðüªŠŸåÄãçóü’Š¯Ï³ðû¼ì«­Â×¥Øß‰ƒ§µø¦‡›ñ­¨‡»ð¸—Çø¸²ˆ££œ¸¼ŽÃ“¸´ -‹ƒƒóøæ‡Ã–±ÿ•߉°×ÁïÅøÜ‚ÖÏÖ±Ó”£ø•šïïà¿·ÆÜ¦´ßâÇñîü©ë¶‹ÉÅæ¶Û̦›ÁÑ賘ìú½öͧ³éµ¶ -¢›Æãӫ횪•Í©´©”˶õõ›Ìæ“ÈÊ풉ͬ¶­‰Ä¶µµ›Ð è“ˆìü¾íŽõÕ¶²âÛÚ‰²­®Ú––ìïóó¶ÙÙÛ̉ŒíúÚ¶µå -ÿ›˜°ÛƱÆì££¶ááçÛÐíàÀÆïãÙúú콽㶞žÛ×—­³ÓÖÞîë뿳µ´Øššì¶úúÛÝ­¦ÆÖÕå¿«¬´•—ÛÊ -ÀËí¥¥¶®×øÖØèËÏ·åïæÚ²³í™™£¶ôôÛꪭ®¥Å–”äãð˜ì‰‰¶øøÛ’Üœ­ºÚ–™þ鋈°…‡Ûœž¼°Ý¿ï‹®Š²Ý½ë»ý -½Ûöã†íڵߛ¯¯íâÅÛÙ³¶“§íÇóÚŽ²íß¾ïÛ»×öÙç³¶»íï½çêûûí›×ÖÒß½éŸÃÚŸï뜋øÃŸÛïÝâ·¡Øù˜Ÿ -ÑÄâÏ‚ö¦ã¹«ôüƒƒ…Ը܌ïËñ´–šÇë𢉧´Ûñªƒ§»ñ…º§‡ðú˜á§Çñú‚§§ñê–§çñⲉÇ×ð”ïÉ…¸¬ÂÁ‰¾ -Ӗ᫹öª±òÇϴةŖïôØîü¿ïö¯ÿÞßãÿωͻóƒëßï˵šÍÖ“É ê´Ú†«Þ®ïÕé¬Ú­õ®ãÃªÑØÕê¡«ÊåÕª­Š -™…Õ®·ÊäÖ«©Ôª‘ØÅâ¡«ÈäÝÛ³²ùŒÕ °òùÖÕÕëÊŠõùÇÙº¸èÝØ°ûÎÏÛçæ¬³÷³ÖééëÔ”„õòÒº¾îî›³ŽŽÚ‡‡ -™­ÃÃÖÁÁ«ýçíï·öõøÙûú¬ÝÝÖñÎÎëLJµ­ÇÍÚÚêíî¶à¶µÙ›š¬õÇõÖÚÚëõµ‡µªÊÚÑá­î«³––Ú‹‹™­ÅÅÖ‚‚ë -òÞžµ·×š¾íÍÌ´¦§ÛäÓÓ­©©Ö¤ä¤«‡ãýö̧úô©µ¶Öš˜íýòÄš‘ˆá‹³¾øà܉±Þ»ç½úóÇúë–Õß÷ßêççõõµ -¢Þ¸à½ûÖúïò¤õèÑëÁ߃Öýû­û÷¼Ú¿ûÌúÑÇÿÖ÷Þ³¾ý¶¡Õ«ëÜïúÇ×·öÇû曼¼ùšïúâÃÛáøÝ¾ÃÞŠÈø¼ÅŽŽ -ï½À·™¸–‡Ð“ŸՊ³•ì¸×ƒó¸Ð¿Œ‹í¸Ô…ËŸ½¸ÌÃå¡ÜæžÁåñܞĹ¥™ÜšÃÅŬܨÆùÕœ““à̚Ήñ­ŠãëøÖà -쪜ÐÀÇ‹½ØºüîÀïÌøÃЂ÷íøó‹”ÿ·÷’‹÷çåÓß׬æ³Åê䲘–ƒÁ£¢×Ûôº‹ÖŽëÙØ°è´–§µÚ¢ÒÙ”ÊÙ‹Âá‘Ë­ë -­ë–©Ô¢‘Ø…Äâ‹ÈäÙÛå³°ŒÅ¨´ð÷ù–ÕÕËÊŠœåùÙ²´äÙîÜ´ÌÏÛææÞ¬³³–™™Ë“Ô”åòÒ²±¸á™Ÿ·ŒŽÚøÆÆ¬ÃÖÁ -þÁËÀ€¥¿ß»Ò×çéíµôŒ÷Ûºº¬ã–ööËë«¥¥ÅÒÔäéì·´Ô×Ûêꬌµµ–êêË奥¼ÜÒÖæô©©±ð¹–ÂÈÂËÁ¥¯Ï -»’“ãÉʲäŒäØÒÒ¬¯Þ¶Ø’“­ÏŸÛØ’“­ÏžÙžî¾µÄÄØ¢¢Ä¬ÏžØž½²Ã„…ÙÂíÁËÁ–û÷¬÷î¼ØîݲøûÛ‹üü¬—¯Û® -†Ü°œ¹ã¹ù¿Òòí·–ƒ‡è­¾¾–¯¾°¾üö™å£¬Óï½çùûí‹Ú×Öê¼éŸ×ùÚŸïì÷ðÆä—ø÷ˆöœÃÕÇþØ“€ý÷óñõ£œŒÆ· -±Ï𼉧Ò𤦛çŠð¡˜——ÊáÛ«õ˸ڄ¿ÖÜëóÀõîÜïƒÿ΀ü‡á¿†ÿÚ‰øÏãú¬®–¯àÚ’üÖðÂÕ€«ŒüŸ²¤Á…™ÎÉñ -âÆ‰ÓêœßÀ™·ºœÔãë£ÿö™±ÇŠíߨáÀ»®­ùöµîûçÀâÝÙÔšÙä²›ýæƒÁ¬×›äõº³ÖëÞØð°ë´æµÚ¬–Ò™•ʳÂá -ß–ËÍëëæ™Ý̬‘˜Åâ³ÀÈäÞÛ³³Œ€Ù¨´‹„澇߼²âÞÞ¶¤¯­™——Í‹ö‹æ¹¹óì¬ÄùæÆ¼½ížñœ´Ï̘ÇÇÙÍããæ‘‘ó -“ð°ùèȼ°þàæñÌýýæñÞÞóϹ«·ËÜÙéîè°ç·µ™ÛÛÍÍÇÍæ¦¦óÃǹ¾ÞÜÛ뮑®¶×Õ™«ªŸÌååæÒÒóžñ±¹¨ÈÜØ -öèÎÏ·çæšÿ³³Í™™æôÈôóꪹ¥Å«œ”äæðÌ‰Æ‰æøøóÜœ„¹¦Æœ™éþÿüØüè‘ùáÈÃó訹¸ØÀœ˜èŽˆ°ßÕ¼é¾þÝüõ -·ªùòåó…‹Éæ³ç̧Θ÷¿ýÖüð Ù¯ÇÇüÅ—æÏø¿µÿô‘ù×½¿¶¿õ–Ù«ÜëíÞôèíÕ·óÿâ÷Û“±ã£üø•¾²¾Ž½—ñ¥¿ -ŒŽ„âðƒœýó‚“ñ¸“ˆóþ©¸˜Ë¹¸äÒˆ¿Òܯ€ÿî¶àÖ³Êî·£ ‹½¯¸ÃáܙûÁñܙ–™Ü™ÇÀ¢‚Í–ñ›ÛÂÜ -ö܃¿˜×¥ð¢ÛÇ•…®«ðöуóÚœÑãÁ¤‘Ç͸ìÁ¤›¾ôà“ØŸƒŸÂµŽË­øýÜ˯ÞÝÍ­™ŒÆ“ÍÁàÒëͺ¢É«µí옴 -¢š“ÚíÒ©Ìêʥɡ°Éå˦õõ“Ìæ’ˆÊÍâ±É¤²—­­™˜Æ¤”‘š„‚“ŸïÚðݵ­¯›––ÞÌ‹‹¦……Ó“ü¼éöÖ´³Æãšž¶ÍÍ™ -ø¦§Íã㦱αÓè¨éøØÀ´´äšœ´ñÆø¦þþÓߟߩ§ÇÔÝíêñê²õô˜Ú۞ͭ­¦––ÓžÓ“©±ÑÔßö磌³ÕÔ˜ûª«Í••¦ò -øòÓÙ™©¤ÄŸÄ嚊ŠÌ…Æ…¦¼¼ÓÎŽœ©«Ë”™éʜϷ¥¦šÒÒàÌÉɦŽÇ”íàŠ·ÅÆ÷š¢£Í‘‘¦ñˆˆÓø¸éá¾ÃÓýû¦   -¤Óà © Àôïó¦éúõÓÕ﫦˗ÌçÏ•›ÎŸ¶¸áëúöÛӷߘÀüüÌßüáú¥ôÓÓÇŸ™þåýëÓÛ²Æó¦ÿ¸ë½ßÝð¿àðÛ -“øæýü½‹ß³îÆ—‡°ï”ŽŽøâ𭜋ûÆ©ðœÂ…øøÜþŽ«©¸õ–…ÿüÜäâ¨ö™‚ªð·Ž¿¸×Š Žˆ„÷£¸¡ƒˆˆ™ÆÈ˜Â¦ -¬²Ù„¬˜ ø‰Á«ˆ’¥àžƒÀ‘îÊ„ Ãí¹îªÏá¯ÆµÜՃᲗ̸ëÙÆ©«ŽÙñØÉ‰ƒ®ìƒöù‹ö÷áû‹­–ÿù»¾½¯ -‘½ø÷¶µæ´ª˜Œú½Ñ§³®êµÆ£Æ¬ãÔ«ª•Ñá©´ª”ƹܻ¸¾î”ÉŒÒѩѬ¶ŠÄÆ©µµ£Ã˜…Âù£Ààäó«÷«Æ••ãÒ’ -ÜññѸ°àœŸ·ÎÍ™ççßÓÓÆ©©ã“ä¤ñ⸶°æœµŽŒ˜ÿ‡‡ƒƒÆ´£çìë³£ööšûúŒÝÆÝÆÎÎãû»Ÿ±­ÍØÒâì -€î¶¶µ™›š™ŒõõÆÚÚãžõµ±ªÊØÑ°á¬¯·––š÷‹‹Ü®±°·Ð˜ŸïÌ͵»æä˜³²Œ™¶™Æ´´ã‹—ûÆääãóçÆíÄÄã³çƧ -¾Ï±±Æ¨¨›ã“§ÆˆˆãŽØ˜ñÁƒãÈ鈱¨Èø÷®Ûñöíã›Æ–ë׌׮˜¯„ݲž¿ï¼ý½Úøü¸ñÈ‘õã·ß˜¿úÊçøûß›¿ýÔ -§øÛßšÿýëñãÛï™ÿíß«¼°¶îÍÿØ¿ÖþðËÙù÷àðö‡ÎÿŠ“Ðûñ쿾½Œ¨Ãçņ̃‚¢ðî¾®ÆÀ·è†þ‰ðÏÆÍžôÜÎÁ„ -•– ¨‚ÁµˆàéÀ賞´áèá—žö¢Œ‡°¡„ üœ©áÓˆŸÁø¼¹Â–‘¶‚‡ü̼”âÁšÂÅ‚ˆ‘¢øÁв„ªðǃÛÚÜÔÃ߈¿³ -”ü­¸èù‡ÂÎ¹ðŒ¸„×Üþ¸öÂö©¬ð»àþ‡Æÿü•û½Ã¯½ø÷𶵿Ð뺅Á«µìì˜Ä´šƒÚíЩԌʥÁ¡°È—å†õõƒÌæ -‘Ê’‰Á¤¦²¬­™˜Æ  ”š„‚ƒŸïØØÝµ¬¬˜–½—‹‹†……§Ãü¼áîΰŒ»ë˜™±ÌÍÀ™¦§““†ññÃè¨áäݼ옚² -€ŒŒ˜ø¼Ãÿ¿¿¡·×ÐÓãƒèî¶ôöšº°ºŒíí†ÖÖüÃË‹¡©ÉÐíØè¨¯·ÔÕð™êêŒÕÕ†ñÊÊÃù¹¡¬ÌÐÒ⨮¶€”•™ŠŠŒù -Æù†ÜÜÃö¶œ¡³ÓžîÈì͵¤¤˜’’¤ŒœŽ¡¡ÁìŸïˆ‹³ÄĦ˜¢¢ŒÏž˜˜ž½²„…™ÂÐᡆû÷¤Œ÷ïšîß¶«Ü¸á¸öÍð -ïåŠáҥùîó†Ó§Ç‚›Žœ±œ¸à›øê«Ãïÿï‹øä“Ãïÿë§øõ¯ï½å¯ðÊÚ¼·ýƒÆÙûîÒÿ†ÿñ÷ðý—üöàÅÊ׸ü— -ûâüÉœ¹ˆ³Óþ¸˜ˆß‡¸õö„þñ¸ÅÁ‰—ˆÌÄО’Šچ‡Õˆ«Ãø£žµú¢¢ƒ»ñ¤àφ¹ŒÈÀ±Ä΢òš‘ÒóˆÜÀä’ž -—¬â‰€™ÄÛˆðÈ‚ðõ„Š©ðÀ‰ÐµÂ”¶¤Ã ÷Ú̸忕׋ìðõâ¢ð–Ô¸‰çÑØÂ¡ú•¬ûàÚ…ýÃûÐýìïôþ¤¿ôâÝÙÔ -íšÞ§Óëµúսƣ׫µõª•Þ©Ô«ô”ú¹Ü¿¾®——ÉôÒ©Þ¢›Ñ‹Äúµµ½×Ãè…½À ÿçóõ««ú•Ž•ýò²þéÉÿ¿° ŸŸ×Ï -“Íéççõ³³»úééýä¤þ⿾®Ÿ›ÿӌ臇õÌÃÃúÁÁ½ÿ§ïï×÷õéüûúôÝÝú®¸®ýLJ¾½Ý§ßÖ¦ïéÑ·’·ë››õ -ãúººýí­¾ñºÚßÕ¥¯¨ÏЗ—ëËËõƒÅÅú®×ߨÿ¨ÏÏ×çåéäóòôÙÙúŒˆŒýÚš¾µÕ§Ÿ’¢ÏÊÒóƸú„„ýü¼à¾®ÎŸ­ -ӌԿþ¬ÿôŽÈÿ𡾴ԌŸœ¬¿÷ÏÿïçŽþÖ­½¿÷¿ÞÏÏïë«ñ¿øÑÿîœþíÔ©ý±ãúÃó‡õ‡Žè¿üºÒ¿çþ“Ïßô¿ý­þ׿ -ïÒÿüçú¯¬¶‰¼éŸÅÚ÷ë×ù¶îý€ÀÄÏð÷‹„üëÛ‡ñó¸üÏóàÚ…Üõ…ïÊÍø…Á¿œ·±¢ð§ž÷’Ïœ†ûÙøÐ€°â¼ªÇĵ -‹žÔ£²™Ñ탈îÂ̯âùéˆÂܨâÆì‘·…¸ÙÄÍà£î‘ñ«ˆåŒ£Öˆ˜µÄËȥäœÏ”íˆÐãÑ†Â´æø Çý£‚Í…¸çÅ›î¹ -×àà‹×Ì…¸ÎÀöœ–Ñðÿã—Ðôÿ‚í‡Ð¼ýå÷øžßúñî¸ìêͧÕê¶è¶ôšÎ­Ö©©Ôº¥Ò§Ð»èäòÝúºÎª¦ÓÉ¥º‰Ä -œ§–ëÖÖôŒá£“Šõ‚ŽŸÏ×­®êÖÖÞôË˺¥¥Ýƒâ¢îþÞ··ÿ§›ÕÍÌè㦧õÓÓº‰Ž‰Ýø¸îì̤·ºª›™Ñ‚醇õƒƒ -ãºþþÝߟ®ý·××Ó£ëê‰Òõö꺺ôŒííºÖÖÝó÷³®©É×Р¿«¯×ÕÕéê¼êôÕÕºÊÊœÝù¹®¬Ì×’Ò¢«®Ö••ñ銊ôùùº -‘ÜÜÝö¶®³ÎÓ—‘¡ËËÓ¥½ø¡ËÎÖ½’ÿ®ËÌÔ½ûŦûúÔ—›«§‹ŽÖÅÆê¢¼¢ôáẇ¾õ÷ï낃õﺀ€Ý­ðÛºÿÿŸŸ -óÎ××÷ñ¢î­ìÙݩӺã•Çô‡ëŽœ­Ðýù¥îÏžíݧŸèöìлýê׺ŸÿÜë畵©·ýô—­ýñÆߢ´ü‡Â¾ÃƒýÚˆý†÷¢ä -Þ”‚ÎáÞ¥ÜӽЀÿÜŠÀ—­û¸“û±€ˆÉÀ芞怠¼—‘ÅøÒÓŠ¨ÊÄ×¢¶ð‘ñ­øÚøœî¼ëó¤°Œ£áŒ‰“ÈÅœÆâœ’— -ǸŒ„Õ¤ˆð³ŒÁ³±â¥øÃºŽ¸…âÕˆ‰Ö Ê‹§ºÄˆ˜î˜툱㞓÷™€ÛðùÃù•½ö˰žƒù”¨ÌÇáø†ºýËØøŒêÐþ -•òïþéÉ˯‹ÞÍ­é·¶õ´šÖ­Öª”ÔÚ¥Ò«ÐèåòíúºÖ¦•Óʥډīܒé×Ö´Œ£ô•е‚–ÏÇ×®®ê×Ö´ïËËÚ¥¥íâ -Á¢öáÁ»·§ßÕÎÌè§³§µÓÓÚÉÉ‡íø¸öìÌ»’ºª™ÑŽˆë‡‡µƒƒÚüžÏÛ߯íí÷Õöôè»»µÚŽŽíû÷»¶µÕÛÒ¢ -„íêÒ¶¶ê›²š´õõÚÚÚœíõµ¶ªÊÛòÑ¡­¯×––îê‹‹µÜ®¶ñ°ÐÛРÍË÷Óæäè³²´™™Úôôíêñª¶¥Å›”¤ååð´‰‰Úø -ˆøíÜœ¶¦Æ”›•¥ýòÄ›’‘¡‹Ó¾øÃ ½ÿß›”¤„ŒÔ†„èï»ÞÔÞ¿®½ú¼Õûù²öÂ…ßíÙ³Ú“§µ¢ÇêÒþ¯ýµö˯µû -©öè¿þØ»ãû‡ö׿ÒþüýçÚ¯¬©½é¼§îí»Ëû÷éÄìÇôLjڟȯðäžäŸÃÄ鼺€˜ðß¼¼†‡·˜ñ¿€Áˆú“€à§ˆÃ˜ -ʇÒñ¸‹‘—ùˆæ¢¶œñŸÕˆ¯Ç³¦¤•´¡±“œÞ¼¡ç¡éˆÉ£ÈÔžÇò”’瑦¼ä¥¤¯ ƒ™¤†É¢¼“—€£Ã¢œ‰€Ê¼Ó£þƒñ -ºĚíĤƙ­øäǘ¢ƒ¡®„ƒðÒ†Àñ“¶ë°óøÂôÆÓІŸƒö´ßÁ½µ›Š°¾ºÒ–µþܧ¾ÇëÝÙԚƧ­Ö¨Ôš¥Ò -å£Ð¼Ì®×¬Ñ¯ëä²Ô¢’‘‹µ¢‘æí’Íðš¡Ð£ôèøüÍꪸæåų¼¬Ù‚ÚÒ¬®ê––Þ´óóšÙÙ̓̌æúÚ³µ¥™œÔÌÌè -ûÆÆ´££š‘Ž‘Íð°æèÈܳ° áñ´ýÇýš¾¾ÍÏû¦»ÛÓÕ¥éïèд·ëÚÚ˜´­­šææÍŽÓ“¦¡ÁÓß¿¯©­ÕÔÔèûªª´••šò -¸òÍÙ™¦¤Ä¤Óܬ©ªÒ”ì”èòóµ¹¹£šììÍÖ–¦Ü£Ã“–¦ùñΓœ¬ÉÊҌ𸚄„ÍüÁ¼¦®Î““£§‰ŒÔ¼þ¬ù‘ôÈ“–¦‰ -·Õ„„è‚‚´ò÷ïêîßÖÜǼ©¹þÝóõ·ªæòåÍ…‹š³ç´§Ïê厞՜º¤ùíúë;ýšÝñ»µŸÿ¬Ù±ÆÃó«÷µ¿ÿùƫëÆïú -¼©ÛûîÚþƒâ‰ï á§žíÊÁ¼žžÆÜ–‰ÄžÅÌ¥ÄÄßÅ”¿¢ïã±ÉÝÄ„áÑýÇ„…áᔞÅÙãñ’¢Ò‘“»ƒ¸ÂÄ—àÙˆ…’ëÀéÀÒ -¾‹’Û‘Ò—Øýø±€Ôᤡ¡í’éÓÈõŸÃú‚Ò—‘ó¶Š´¡ÒÖ¢ªÆ‹©Þ¬£ÒÅä•’´àÎ葨dz£â¶Íˆ³ Æ†¨ˆ‡ž»ñˆøˆ -©×ý¸‚à¿‹­ëí˜ýἊ­Ã¥èÎâㄟԇ¡ôüÀ仡ù‡¢–‡¿Ëú罿šßïΦÖÔª•ÂÚ©Ô«”ê¹þܽ¾®–ÉÔâҩڢыŠ-ºê‘Ƚ¶¦æÊ˜µÐ¨–ˆÔâü¾úõÕ½²Á¢ÞÞÖ¯­©ä——Õ‹‹êùŽùõÜœúæÆœ½½­žšÒÏòΪ§¦Ôãã»ê±±õȈúøØ½´¤žœ -šÔóøêþþõîߟº·×ÝÝÇ­îêÒ÷öªä»ºÔííêÖ¸Öõ󳺩ÉßÝØ¨®¯××óÕ©ëêÔÕÕãꪪõÅ…º‘¼ÜÝÚª®®œÖó¹êÂÂõ -âÁº¯Ï“Ç£ÎÎÖçæª¿ÓÓÕ©©ê—þ¯ÔÉÉêçÏïÕ‰‰êçÏÔæÏŸªããÕÑ÷ÑêÈÈõãÇûêððõÇêñÐÐõð°úÞö½õ»êÛ· -™Õ·î¨¯ÝÓŽß¹¢¾ôÉýïþ¼úÌ™õ‰¶“ê£ÇÕ‡Ž÷©÷ï×ïÛ§ûÞ½ÛýñÇêø¿Ô¿û®úÍ·Õÿóÿú†áÍîÍ¿ÙëÒÿø•­å¤ -¥ìÄòž¤íǡґ¼¿‰Î¹è¤ÞÆ‚ŸžÝ˜Àü€žÞÃÜ€ˆâŸ ¦œÑÓñ¤†‘‰ˆÐÉÁ܆âó‘ðЄΙ’ª‚܇—ÍÈíÅ´Ú§ÒûÁà -Ñæ²Ç‘µŽ‰¬©äÏ¢ûž…ÙËÈÞÁ¶Ÿ´ÙŒ²ÄÈ” ²Ó†Œ¹Ò•È€Ó£õƒ¯ôÈ”¶ É„Ž™‰ÖÖÄÛ‘çÄŒ¦‹‘Àã¸Ãá ÿ€Ûˆ¬÷à -ÆŠ€á†ôþÐÆÞ†æœÔ§¡þ¸‚õýî¼ø§ÖÞðïçó«Û˯ޮͭ©”ʕ·¡’ËÕë몙™Ì¥•ª¤’••ج’‰Ôë¤ëª†Ñ‰…ª -ÀÅç«Öרի«ªååÕãÒ’êñѵ°÷ šŸ×ÍÍ©øæçÕÓÓª©Ž©Õä¤êâÂĵ¾®š›ÓŽª†‡ÕÃÃûªÁÁÕÀ€ŠïׯêëÓõö -ÁªúúÔÝݪñÎÎÕLJª½ŽÝÕÚªêéÑ„µ·«š›ÕƪººÕí­ãª¦ÆÕÕ¥ªý¬Ô•—«Êʘԥ¥ªââÕîÑ‘ª À•Ÿ÷¯ÊÍÕåä¨ -ã²²Ô™™ª´ˆ´Õꪪ¥Å•”¤âðԉƉªøøÕÜœ ª¦Æ••¥ú‘òÄ•‘¡Š˜×½ü ºÿßÄ•œ¬ŠŒÔÝç¹£ºõËåï㯺öÍõåŠ -ûêÒ¥ÕùóªãӧէΨ¾ÙýÖõð êÿöþÕ¾ýªÝ»¾Õ¿ûêîÕᆱúóͽ•—ÖœÛà͸¿åëÛ‘±“¬™û¾ŸéÇùö’©ç‘ê -Í‹—×ò“Éú÷”„ç¡à¡„¡±‚‰‘ø¶–§ñˆã °¾•‰Ùà䣩©˜©åÈ­ÁøÚƒ²š‘ÙŽ‰¬®ä÷¡ç€§¹ÃÈÃÞ¤·ò¦‘¿‡üÅ -¡ä¯£ÿ•ù“䭡όܩ®òב£À¶Š°Ùšäê‘¡ÇÕš‘©æ¤ØÌäƒÇ„—âý¸¸¢áˆ„”­‚Ö°˜ÃáÖŒ‚þŽ´·± ñêߨÏà -ôþ’²£ì‡Üè˜àïÿÀÛÙÓù÷¶µ©¦Ô¨”ò¹ò¨ýÝ©“©¥Òµ¥Ä¢”‹•¢‘‘òíÍɰʡ¡Ð©¨ùüÇåêªòåŹƒ¼¬ÜÚÒ®® -øª—–”óóʹ¹åì¬òú¸Ú¹µ¥œœÔ¸Į̂ÇÇ•ãöãÊÑÑåȈ òèȹ¸¨œ´˜ÐòøÊþþÜåﯲ§ÇÙÝ­ìêÒöôΨÛÛ•ííÊ -ñ––å󳲩¾ÉÙР¬¯×ãÖÕ©ëê”ÕÇÕÊÊÊåÅ…£²¬ÌÙÚª¬¸®Öò¹ÊÂÂÄåÁ²¯Ï™“£ÌÎÖææÎªÓÓ•ééÊü—¯”ÉÉÊç -¿Ï•‰‰Ê„„„åü¼²®Î™Ž“£ŒŠÒ¾þŬüôÈ™–¦²üðÀùÿ¾²¨È™˜¨Œˆ¾ÐÞº¥ô÷×£úù©ýý•—¬¯ªÏÓž¾ñ­¼þÜùí· -»Êƒ‡•û÷«ó÷îÕþþ¹òò÷¿Óþø¡òõÝ÷•ᄅôóšù›¼é§²éퟆäýû„ܽÈÝœú£È¹‰ìóÈ¥òÅÖõäÞ¡ÆÝä„£ý -ÏÒ‘ú˜¯¢Ý’‹ä§øžÐ€Î’¸éÈÊ ÁÊ¡ÒË‘ÞÉÌÚäµ¢»ž•¹ÈëÁþ࿊†Ñ°‚ˆñ”Í¡è–ÅÛóà®»‚®È€ÅŒŠÄ¨’ -ŠІ‚¹Š”¡Èףº¤ä›å¦…½éÖ¤Ú‘âÄ’’À’àüŠÔû¬¬Ñ°¼†”©œ†‡Ð…ã½ã®Ô· ¼Ž…¯ÖÏÃú’©¢£àöð‡ -Ù«Ÿáù—ÿý¶³ÿòçðîìèêÍ¡—«Öׄ•²™ÂªÕÈ„¤Š±Ø¡’©“ÖÖ”Œ£ŠÜ•‚‚Ï׬᮪ÖÖ”ËË»Š¥¥Åâ¢âðáÁ±¿¯˜› -†ÓÌÎªææ”ìÓÓŠÉÉÅÄÁ„âüܱ¶¦Ø˜ÕŒŒ¨†½‡•ƒƒŠÞ…§èï×ôáõ©úú”ÝÝ㊮®Åç§¢½ÝÑÖ¦èí°Õ´·«šš” -ŠúúÅÝÇ¢¶ÖÑݭèªÒÔԨʽ˕¥¥Š’’†…—«¨ªÒ”씨òó•¹¹£ŠœœÅÖ–¢œ£Ã‘ž®ÈͶդ¤¨’’”ÃÏŸ«’“•Ï -åž©ž¾ÕÄÆöª¢£•‘‘Š‹Ç•ž©žŒ¾Ô„†ªÂ˜”ÁÁŠ»÷•ÌŠ›·•×í¯«üü”¾¾³Š‹—•çΩ¢ÎÒœ¿®¸ŒòÄñÍ·ŠŸ -¾ŸÅÞ½ŠÏ¿º×üî—⃮”ï¼£øóÍõ…—Ö¶¶Á›¾þ‚Öþðñþ©ÑŽ”íÆ‘ÎŠ ð¤ŠÎ»£À—ùבÿÌ›ùÈÁî’ƒä¼Âö“ä -àÅ£³Ž™Ï·žˆ´¤¤¦ „¥ƒ©ùȯÂÜæ™²«‘Ó½¼æä·¡ ‹ÖÅ½àŽ€»Œ•ⱔ̢䚡¥ó¨ÝÄé²’Êù¨•¢ô…¥â”ÈÑ¢Ç -‘±’ܵ¸›¨ËÒ¢Àü£ò·Ìȱ¢ÛŽÌ‡ÒÝÈ…ÒàÒÊ‚£‘¶ç°ÓÄÁœã“èÔŸÁû€š¨þ‚¡¸õëúÂüžë§¡„¼‚¾Ööã -œé‡æÿÚ¿ˆ¾øéÅ»³©µ§ùúºÜ¦“ËÅ¥ò‰Ä®–˼ŢùÚšœáåä¡ܠó÷ùòÕÕùÊŠ˜üùÙ¾´¤ßòÜ”¯¬ÈççÙåóóòÙÙù -ƒÌŒüêʾ¹þ©Ÿ˜ËÿÇÆä££ò‘Ž‘ùð°üèÈø¾° çñäýÇýò¾¾ùï¯Û¼»ÛÞÕ¥ïóì”÷ôÈÛÚŸä­­ò––ùîÓ“¼±ÑÞÐ -þ ¯«“×ÖÊäëêäÕÕòʸÊùÅ…¼¬Ì ÞÚª¯®–óǹòÂÂùÁؼ¯Ïž“£ÏóΖçæÊÓÓÉåééò—¯äÏÉÉò¤¤¹‡ø£ÏÈÇÇË -çãâä±±ò¨¶¨ù“§òˆˆœùø¸üáÃùÂ証¸Øþï÷žüÎùíÛùò›·äׯËÕ¯Þ•ß¾¬¿øðÁþö¬üÔ–©ù±ãò£Çóäßü£÷ñ‘ -þÿñ…ü³ÏäÕ»öÉ¿øÀþÝλòŸýÌµù¶øÓÏûÍÚŸþÀºìºƒ”ý†Ò¯Ð„ú˜¥§Ñòžú¥¾¨¾ŽâÛõà†‚›‚¢‡‚¨ŒÀᤊâ -£ÿ”ù‰Èý“ŽÜää¿ÀÖüº²³™ì’âäÖ ¯†…Ш췃ÅÕݨéÇé Ê˜ÆÐ¾Žò©ÔÓ̢➕˨”ÜÁ¥€•ŒªÎŨ¢âå -ÖŠ”«Ð¦Á© –¥ú”›Àµ§¡Ð‚‚›òœ±Èõ¢›È„«êΗ°§Ãúºœæ„˜žÂ ƒÝ¤¶¢ þøˆåˆäÝÓ†äºÄ¾àÎøÃ𒫇±ô -Ø•–¾Ã܇˜ÿù«þ˜ûå«ÿìÝÙԚ컦£•ʤ’™Ø„¬“‰äë벫†‘‰…²À‡ÆçËÖ×å«ö«²ååÙÒ’ØìñѶ° ›ŸŸ—ÍÍÉæç -Øå³³²é©Ùƒä¤ìâ¶¾ø®››“ŽÊøÆÆäÃò¡þ¡ÙÀ€ŒÇ“ßõ÷Ëúúä½Ç½²žžÙ×—›¬³ÓÖÑ¡ëžï—µ¶ÊÚÚžäÍͲ¦¦Ù -ŽÃƒ¬¾ÞÖ×Χ«©‘Õ×Ëફ啕²ò¸òÙ马¤ÄŸÆåÊŠŠä…Æ…²üüÙî®Ø¬§Ç–•¥ËŸÈ¥§ËÒÓØå©©²ääÙïóç²ÄÄÙ³ -æç²§Ïå±±ã²èèÙÔ”ìíñã٣Dz°ö°Ùƒ‡²û÷ÞåÁÁ²ÀÀÙ•»²Û·ä·ÖîȮݓݹ⢻üÙöá‚ûììÙÙÉ“²ªãÇä‡ËŽ -úœýõ•ì‹ä¯äŸý¦ÛµÖËöÁ‡²÷Þבýìç²ÿýÈ×Öë̶øÓ–ÏÊÚŸþŠÖÍÕû¨ú„ÕûˆÐùˆ•§ÐùüŽ•¾¨¸ŽŠÁÛ¨ÄùˆÊ -²ž¢¬‚¥‘¨Ñ‰ÅɼГÁ°ÍÂÑŠŠÒз˜‚¬äå ©·ù¥¨¨Ä„Ѹͨéäé§ÊûÑÁÃÍåªÆÐµ‰™êéÔÏ¡æ‘ÞµË¨á£Æˆ -…šµÔÈУ嵜ÕÊԩуµÊªŒ¨Î·¢ÔŒ’«¸ö”¹ÑàžÁƒç–œ™°Ç¥Á’‚Ó’Œ‡‰ÐÇÛ‹Í ¤Ô‘мÄúöˆ¤ßÆÚ -èõˆýÁ¿‡åؓؼ„ùý˜©ý„Óïá⯹ÿËÜÿÛ‹—çÓë҉Īø–ËÅ¢—­­€É™Æª”Ê…Ä‚©Ÿ¯ÝÝ•»®¬È——¥ËöËÒÅÅé‚ -ÀôþÞº·§ï•ÎÌȧ¦ß¤““Ò‰‰éƒø¸ôì̺ºˆª™‘ŽËŸ‡†¤ƒƒÒžöÏÚ߯íë“ãööÊûú¤ÝÇÝÒÎÎéLJ›´½ÝÚÖ¦í -âé‘¶·Ë›šŸ¤ÒúúéŽÝ´¶ÖÚÝŽ­­ª’ÖÖÊçËË¥ååÒ’¸’éñ±´¨ÈøÚبÍÏ—æñåÉóò¤ÙÙ£ÒÌÌ鯆´œ­Íúâ…´¥ -ÖÅš”¤åð¤ì‰‰ÒøøéÓÇ§ÒØØéô´ø´²Òúø±ô‘Ñ£éØ˜´´ÀÔš’¢Š’à††Êƒ‚¤·üîÉýý¥×®ªÉ¯Ü‘Þº¤ð½ÿÞúæŒô -ýäÉéÑ£ÒÃ㇥‡ŽÈ¿ú¶ÊúÅ—ÒϾ·“îÜ©ýÍï÷¤ï¼£ýÙÏ‘¤ÞØÛÚ†ï›úéØûÃߪѮû‡õ»Ð÷Ö…ê¾Áí±Ô•žÅíåÔÞà -•Í­Ô„¢º„±ÕÑ•ª¨ÆÔÆ¢²ž•‰é¨ÈÂù‹”¥Ñ£´“¥Ù¨É‚ƒ·€ÅŨªÐÃñµÊêÑÖãŒòöÔö£ªÎÕƒ¨™Áíæ¸ê¦Ð·‹ú -ŠùÔ¯¡á• ‚´°è£ÁËŠúõԫЧꆵÚÔè¨ÑíÄ•‰•–«”ÛÐæÀ‰‹ÁÅÀ‘Ü…ðäãÁžë¦Ì馰¾€¾‰ºÄ‚ìÄÃ‹å” -•䑽„¤„ù¢À°·À¿†³•ËØº‹…㋘ý†ÓßàòÞ—ÆÞÁÈßø²×”ßúñîì€êÍ¢–ËÄ¢ÉÚš„á¤Â¹¡Ä ðù¯ÜÛÝ•¬¬È– -±—¥ËË’ÅŇÉ‚äþÞ²œ·§™•ÌÏö˦¦¤““’‰‰Éø¸äìÀ̲ºª™™‘،ˆ†¤ƒÇƒ’Éÿ¿Û¤¯ÏÒÛ«éãé‘ô÷˺º -˜¤’ööÉîÛ›¤µÕÒ܈¬éê’´¶Êàšš¤õõ’Ú¸ÚÉͤªÊøÒÙ©©¨”á•ÉÊË¥ÅÅ€’®×ÒÔ¤©Ž¨äçËòóž¥ÙÙ’¬¬É -âÆ†¤½Ý’šˆªÉÉ‘¤§ËÅž¿—¤¦Êžî½“ÄÇËââØ¤±±’¨¨É“§’ˆˆÉøÇ¸äáÃÉè¨ð¤¤ÄòïžäñîÝÉÀ€äæ¾Í‰¿¿ÄÏÏ -‹â뫹øÑòïþ¼äôéɉ¦“’£Ç¥‡ŽèÉŽœüù¥ïä÷¿—üú©ŠäçÎÉïþ£»Ù¾Ýò³ŸÉë¼°¶µÞôד²ö–šö ¬éš¾ÆãÑ -Ê´žÆã¥´ú³¡á¦šî¢¡â„õÑŸúž¨ÔÅ¢î™ê¹¨ÍÆÍªªÓÑ…ªœÔ׿£¢åÜ”‡• ´‚嵨ïÀ嫪»Ð³ÓƒÚžê†Ð -Æ¿Š†‰´Î£ˆéŽÍ‹èÞÆä³ŸÍ´‹Ð”¬Á³ŒÍò´–©Ñ¤Æã†šºô¨· Î„Úü‹ê¬¨¶£Ò™‰ò—Ê€’¸›¹°—–ËÐŽÌÙ°¤Ã— -ƒŠäè¸Ð½©ƒ¢–ëÑÆ‚Àü̈„÷ɱú“ËþؼӘ¹Š©•¯±¾‡£»°ãôÖßìÍâÝÇÙԚؤ’¯Ã­‰™Æ¬”Šˆ…‚±Ÿ¯ÞÝ -þ•¯¬ˆ——ÅìËËâÅÅñ‚øþÞ¼·§ûž•Ï̈§³§ÅÓÓâÉɇñÄ„øüܼඦž•ŒÏˆ‡‡ÅÃÃâýÁÁñÀ€˜ÇΓ÷õ‰ûûÅ -Œ½½âîîñ×·—¸³ÓÜÞ®¸îë“·¶ŠÛ²ÚÄÍÍâÆÆœñø¾Þ܌۫®©‘××É‹««Å••âñòòñ驸¤€ÄÜܬ®ª’¼—–ŠóóÅù -Æù✜ñö¶˜¸³Óœž®Î„Ë“¿ø¡ÎɈ‘§¥‰¹œñî‚øÙ³ñÓÇ§âØØñô´ø¸²Òüø±øñÑ£ñؘøÁ¾ƒñýûâààËñ½ûâ»÷Ä -•·ï‹ïÞ”ßå¿®¾úÕìë⫾øÑüîœÛøôéñ‰“âÂï¿•Ÿº¤þ­úëñ—ߊÿ½ÿûñ§ŸŠ÷íî”ÿæ·âíëÛÅAöÂÓÚà¶øÓÏÄ -õÚŸÞ½¶½¶ÏÑö•Úã£õ”Ú¯ õ˜ªÚî åŽÚ—‚Ñò€Í‘èñŽÄ󬚞¡ç‰ƒÆä´¦¢¸¡ƒÙ¨ÏÅÌÝêŠÐÛŒ¹šÒÔ—£ª’ -‡•µ¨îÂÍ›»êºÐß‹†¤´Ž£éœÍÓÊè™Åë¼Ú—§Ð¶Š¶Ú˜§´‰Ñ¦ÅÛºÑÚ”èաՃ̖­šõè²¢ÓÑŒ†«êí¨®ó Æ…ê ’ -Á®ò¸Ê᫆ŵˆæ‚˜ó¡Óφ¶ƒšÔ¨×’¡äÀþŒ²Ê؈£±–ᎃðƒ±ò‡Ë·°ÿ•³—°¨ýŠ“‡±ö•ý†¿ÅÀûèÿúËÞɾôâÝ -ÇÙÔšèíÍÄİ¢¡Ð¤ˆøüÑêªèå†Å´¼¬ÚÚ’Ä­®Š––Äó÷ó¢¹¹Ñì¬ÀèæÆ´½­š‘š’ÍΊ¦¦ÞÄã㢱±Ñƒè¨èäÄ´¼ -À¬šš’ŽŠð††Ä¼ž¨¯¶ÏÔÛ«êé‘Üõ÷‹ººÄÇ¢ŽŽÑÛ››¨µÕÔÒ¢êî–µµ‰ššžÄõõ¢ººÑŽÍ¨ºÚÔÕö¥ª¨•—‹ -ãÊÊÄ¥¥¢â„â‘—«ª¬”Ü•”ˆòòĹǹ¢ììÑÖ–˜¨£Ã”ž®ÊüÍ•¥¤ˆ’“ŽÅÏŸ‹’“ÅŒ‰‰¢øøÑÜœ¨¦Æ”•¥ƒŠŒ”½þ¬ú -ÁôÈ”–¦úð€À”’¢ŠŠ’Ü…†Šîܑݟ¥ºñÃôí÷šèêÕÑåËᢋ—ÄçÏŠÂÎ’¿®úýöÛÑÁƒ¢¯Ù¿–ýù¥èÏޞѧŸŠ¾ú -þÈôþû¢íÛ´ÅAòÂÚéç¶øÓÏÇÚ”öôîÂçÞô¤žÄçñôžÃÙ‡¯ºüÑ‘€¡Ž ô¼Àû£Å´Ç¢½–íñæèã ­™­©ÂèÍÀ˶Úò -¥ÐÜ€æ®šÊ­ÐØ††ŠÔ׳¡¾†õõ¨ëðÆý»š»ÑÔ»æÁ´Ž¢íÔ‚íÓèŸÃÇÜ¢º—ÑÉǧ¢¢ôÉЩÊçœÊôª§Ñ±öÚŒ -œè³¡Õ‚æ›Óšìèô¢ž¨¼ƒêଂ½‚áÖ²ØÊàâÂàЀݞ¶²¡Ó΀²•òäȆ¸ÄÔ‹¦â’‚ÇØý€¥ ¬„àΟ³»¾˜¼‡ñ㘠-¾¹ˆÁ½àíÂÅïßò§î¯½˜ø÷¶µÆü÷¡„ÂÆ àøüÄæõ•ÙÙá–Ç—™¥¥æñ‘øÙØàæç™¹¸¹æö–™™á¦§™©©æò÷’™˜àÆÇ™ -‘±±æô”™™žá†‡™¡¡æ‚ð™˜àø¼Ÿ¦¿Ÿéíåúöú˜î‹ãéì人˜öŽö¦µ•ééáïš›™¦¦¦±÷‘©¯çêê˜ýÚÚ¦ºš©ª -Øâª«™ŠŠ¦ã¬Œ©­åŠ‹„™®—©ªâŠÆŠ˜üü¦·—ûÉÉá²²˜ÌˆÌ¦½ÉËãâÞ¼àÒÒ˜¤Æ¤†Ãá’“™îçϘ§Ï™Ø¸Ø¦¦†‰Šâ -ូᢢ˜ðÆðæáæ´”ø‰‰á‚‚˜»¶÷™€€æÖ­ïÆßŸ¹ö¹¶ò…¹ü™¹ðɹû–¹õФ¹þœ¹ò„¹þøÙ¿ŸÙ·¿Ù³‡ùä“ -¿æ£˜÷ßçÚþùËæ·˜øÿåù‡ÿÝ¿’íØ†ïú©ØëûîšÞÀèÝžýè¹ûŠž³è¹„žÞëè¹îûèðŽÅ÷¸ºŸ ˜»†ÝñèÊÄ -ðײºÓÑ™¹Îìôä¡£€½íÜ´— ­œ‹­•è­ÆË­¿šëÑԈƖ¬´õ¢¥‡­¼å´£ãŒ“ëèšÁ×¼º—ÇÐ³ŠžúÖéЫƯ”½ë -•èÑ Çžÿºµèңˈèγº¬è³£³Õ–—š€Æ¿¸êᨅ­šÍ–ʘËᬞ‹í´ùМåÑõÔÈÉ“¡ÎÄÚ¼„бà¿Áò¸– - Ã±ÿ³·±ˆõ“—°ú†ÈÃDZ°Ÿý»³Ñý¡ºßøóþß‹ÿíÅ‹³å©µ¡À äó‡…««¯ÛÙ‘ø®¯‹—–„‹÷‹Â……áü¼Àðîθ»«œ -ᙑÎÏ‹§¦ß„““‰‰áƒø¸ðì̸º€ªœ™‘Ž‹ÿ‡†„ƒƒÂ´¡§ìï—ãööŠûú„ÝÇÝ®®áç§›°£ÃØÞ®ììí•¶´ˆ›› -™…ÍÍÂÆÆáŽÃ½°®ÎØÛ†«¬©‘ÖՉ䫫…••Âò¸òáé©°¤Ä€ØÜ¬¬ª’–œ–Šóó…ùù£ÂÜœáö¶°Œ«Ë˜‘¡ÌÏÆ—¦¦ŠÓÒ„ -ÿÉÉÂçÏ…œˆÄá‚°¾Þ˜˜—§Œ•ưNj££…Ÿ°‹Ÿ½’†…‰˜Ÿ¼Þ¿¯Œ¬Ž–Þ»§¼û¼×øû¶ðæÍŸ¡¿¿ÐÏÏøïåŠðÒ¥áù -“óÂ³ç„§Ï‚Š“ž¹¢ûüæ›áþýÂŽýû„»÷‹¿íùÄøÑÇÂ÷½ß—þò—·õÞþ‹»µÒ¾í𦟈µ÷«Áû˜¼ýàê‚ï¤ú¯ ÿ -Úªúï¢ÿ®úúÃП†¾ÇèÕ‹ÆßÓô¥¢¼·‰½©èÍÀØï¶úòÐÓˆÔËÑÕŽ¹®ªôÖ ³Ž€èïÂÛ³¾ÚÛÐÚ…ö¾ÄôŒ ó„Ýã -‹è™ÂÏœú—çзŒþ¾ú……藧φ՞œýªôëÐկşž½†ôÓ˜ÐãÁ—èŽô¸ÑŽ´ÂÑÕŒç“ì°ƒÖÁ܃㕌—åЕ⃋õ -Ê¡”ùçրɪÄÉà’ÁÿŠ•è¬½ÆÂ˜æÃ°ýÀ—“·±ö•Ü—°øÝ×úˆî½ûÐõ±ÚßÕý‹¬‰½»›¼Ú“ðù‚ÕÕÇÁÊŠàùÙ° -á´¤ØÜüÙ‚àþÞ°·§Û˜•Ì̈¦±§…ÓÓ‚ÉɇÁÄ„àüܰඦ˜•ŒŒÆˆ†‡…ÃÂýÁÁÁÀ€€Ç†“ô÷‹úû…Œ½½‚îîÁ× -·— ³ÓÐÑ¡˜èï—´µ‰Ú¼Ú„ÍÍ‚¦¦œÁ㣠¡ÁÐì×§¨­•ÔÔÆˆª«…ÕÕ‚ñŠŠÁù¹ ¬€ÌÐÒ¢¨®–Žð¹‚ÂÂÁÁ± ¯Ï›« -ƒÈÉ‘ä割¼³…éé‚´´›Á‹—‚””ÁŽÒ’€Ã‘¤¦‚Šž½“¼ýªÛˆ‹“ÄĈ¢‰¢„Ïžˆ¢¢ž„áႇ…¡¡‚ÁÐá °ÐðçŽ -ÛàöíÁ›‚ƒë×…þþ‚ßþßÁÅ‹‚ó礅çΈΞ”Àœ»¦¸üØðáÍ·‚ŸŸÁÞ½‚Ý»…Ÿÿæ¬øíï…ï½æ§øå¯…ÿõÈß‚¯¬åïƒ -¶·ý·Ûûî‚çÞÄÐŽŒíÁ±ÐŒÃÐÙªŒùâПƒŒ˜ŒÂàƒŒÆˆà°Šƒñ˜ÈÀÀ’†Þà º¼ìðòÀ«¸À¿—ý¥è¯¨Çß•úêÐÛ -뇞†ô´¡»˜…ÝíèìÀçì·ºûѽ„žÊÑô΢ï†ýƒóà­áà…ƒ¤‚Œ®áÐŒÁ†©†ä˜ÔâГÁŒè°àæ€Ïˆþ³ú¬Ÿèµ£Ç‰î— -²ºŽ¸Ûàèë­‰–†˜ê®à¨¾ŠÚòÌèÊ¡âÂÑ€Éõ¼È³¡ÎÇùÚ‹ˆ’°š€å¸¬Æá®‚°³°™„ñ€Œø¿üªùçéÑûŒÝ‡Ð± -ú‡­»ÐôæŸýõò¼ôâÝÙñÔšÿõ•¿²ÉÂßÞæ¯­ñä——ù‹‹üùÆùþÜœÿööØå³³üééþ‘Ô”ÿò’¿±ùÁŸŸçñäÇÇù££üá -ÆáþÐÿ𼿰Àçñøý†ýüÞÞþÏÿ¿»›ßÕÅïóìä÷ôðÛÛ™ùííüÖÖþü󳿩‰ßØùÈïèà××óäëëùµµüêðêþÕ•¿²’ -äßÞί«ã—Ÿ–ò‹‹ùܮ翨ˆßÐÀÏŸÏççåñóòŸøÙÙüÌÌþðÆ†¿­ŸšÉÊÏÉ᧧󥟿秦ò“¾’øññü¸¸ þ쬿ºšŸ -š™Éÿü˜Ÿ‘ÉÁç¿üÈüå‡„ðƒ¿‚øü€€Ëþ­Ûü›·ø¯×®ñ¯Þåß׾̿ø‘ÿî¶œÿôéþ‰“Ûü£Çù‡óüœàûøð÷ -ÿîåïÞÍÿøÒãþïÿËÿïî½þÿúßüÿÕú¯¾—Ö’·óÁ›þŠÖÞÅëèǘý’£‡È±úŠ£—±êã‡ÑÛ˜‰ÄȆýŒ„㤒£¹±˜ù†‘ç˜ -²ÎÁ𺆳°‡œ‹¡‚Œñ±†ÔŠÁòŒÖተ†ƒõ˜è„õ¯™¼Öô·£±¯“ýÝèíÁœ½Ã蟃È³˜ÜÀв†ù˜–â‚Ä„‘‰Æä˜ -ˆÑàÄ…‘Ƶ´˜ÖãØˆ¡ð³†­˜°çŠÀ¿‹½ÀܘÝðôÂގ놫ÌͰ¶Âß°í¶ª ®ƒ‡²”ò®ä…£äâ­‹ÂôíðÓ°òœ‹Ï -̰Ÿ‹ÙÈÌ…‚ãâ¾Æƒ±üø‹ƒþ軈žÚÓ輌¶¯ÿ®ÿâÞû»ôóëó½ÿÈ̼œ³óלܧõÑ÷¹ýº·ÏÛÝíî»ÝιÛâò–í…Û–¬ -…œóιç¤Â¥„¨Ñ¤ €Ñ‚Ô ‚ò岒˜ãɘ½ïõõš»Ö»Øóýïóþð¯·÷úü ³´ÐÿÉ賞ªýììçïû¡ü´­í¬¯Å» -´Ýó¼»Ýáõ³¹¬ÖÇÔ”ÙÃâñ˜ÍކÀñÌκ̦‡ƒÑè°˜œ““ÚŽšöèõ¬ã½ãŽÎ¡ÕºÔ´š‡ÚíЩöœ££Ž¥Ò¡Ôиäò‡Ìæ -ÁÊ££Ž‰Ùı¼ì ¨‡ÒØì É‡Èäð˜œôˆ…ŽŠ‡Àà ˆ‡¯ŸïèëóðøüŽ®×ÑÓãà¼ðœÝÝŽÎÎüÇLJ£½ÝуÚêèéñ´· -À»š›ŽñººÇí­£º¹ÚÑÕå¨¨ðƒ”—»ÊË¥Æ¥Ž¢¢ÇÁü£¿ß‘›ëÈÎöäæº²²˜œé鎔”Ç’Ò’£¡Á‘—Ç爉ñ¼ýê -£ˆŒô¼þ숌÷„†ºž¼°ð„‡»îÜñ‡Ü¼éˆŠòÜ×½ê¸ôÉñî÷œãôéÇñ㇎LJºûöï÷ìÙãøýâ‹ÇßÿîøóÓŸœ¸–ú -ì«„Âûõí熧µ‰ï°ñˆÂ“§±ñ™“·ð°ñŸ“ᘈ€‚‡º™ô†•èœÐ… ËÀÞ×€®¾žú¾¦èÛ ïÄø²·Æû±Þ‡ñª‚ºè†¡¥ -Ï¡¥ ‘À£Å±˜Œê…Ô£ÐÇ©¡ÒÁ½ ‰Ú³ôÖŒ»¨°¾‹ý¼è¥ÍЫ ×Àï€ÕÞ‚½ú¹ôô¯°þ’㯠ÇÛöµ´ï Ô†ÔÀ¨Þ¨ð -ÂچݩÞÉðӒ‹’χ±‚½€­‚›ýØÓëÅê·–»±·Ø†ù¦ÌÖã庆¶ŠÌ•ÀÀÜ€ÓŽŒ™Ðاׇ±¨Œ‘†ÃñŸÒÛ˜¾Œ¡Ó˜¼„ -ÍÁ·èû¼µÑýÏß‚ˆ÷ºÎæ·ÙìÖ«Ë÷Ô”Ýⱛͦö†±ÏÎÚÍÆ¦»Ñè·˜ìø““öš¶ëõËöññ»Îç×ÊêíšýìÌå®ÖÛÕªûè -¨Ý©´«”ö»¹Ü®“Ù¥Ò§ûȈݢ±ÊÛ©Ê®–Û—‡†ì¢‘ýðÉЮ”Ú‡†ìþ‚½¿ßÎçïÛûú켞ŸËµ÷öÚ¹œüû÷·½«ËÞ -ñÑáïï··µùÙÛÚìÍÍöñ¦¦ûý¾ñÞÞÛ믩±ä×ÕÙ««íåÇåö²²ûɉ‡½¸ØÞØè¯ž¨°çåÙóò™ìÙÙöÌÌûòúº½µÕžœ -øìÏÌ´ÇÇÛüããíÑÑö¨ö¨û“§öÇÙíááöûµƒ‡öû÷ì÷ÛîØïÞ´ß¿êî¿òÅþñ¢Ûýܹû©Óö¯ãÇí‡ÛÚž´ÿ÷ýÏ -þžûçŸÛÿþ®÷ûŸþäÿ¿«þû¯º–þ«Ò„Âû÷퓘羃é¨ÌçÙ¦¼¸é®Ì¡°ÂÅÀ˜ƒã¢Œ¤é°¾ÝŒòá–¬†±œÆª˜Ùëàè„¡•† -´Ž˜ºáèÅÄ Ÿ¦ˆÌŒ€ž˜„½„š‚Þ‚Õ½”ãòŒ«¡ÌÓÁ«†ÖƒÍЏ´†è¦±îƒÞ†úš“󬰬°Œã³º˜×á܄щ£‹†·ŒžÌ -´øÁïÀ¿‹ñÀŸôþèüŠêøÔØÕâÇ¢Ž¯”ž‰Ü”€ÜÃðŽâó€­ë„žõᥗšËÝØèÀÜ«¸æšá¯ƒµŠ±–òÌ–³¿‡Ç…ñ´è’¡ -“в‚²ÐÈ·î²û›¢ó˜¤¸Šâ»ðÿƒü‰ÉÖ—Àâ÷®Ù¬ÖÛÔ”ÝÍⱙͶ†žá™œ´™Ì¶“£Ñæ°Ø¦¦Øì´íÓëíãýã¶Î¦ÕÚ -Ü´šÛؘͭ۶©Ô¶ÑÑ›ÀÒéÓ¨ìò¹ôͦ³É¥¶‘‘›Ä⛞¶’єͬ¶¹ÙÄ¢Ûà Í’¨´ŒØ„‚ŒÛÿ¿ ìýøý¶žÏÆåÚ -ðúû휎­»÷ÛÖÕåëì´ßµ·ÛÚÚì­Ç­¶ææÛÓ“Ç­±ÑÖßï«ÿ«³ÕÔØª«˜íÕÕ¶ŠŠÛžù¹­´ÔÖÜÈ쫪²•”Øûòóí¹¹¶ì -ÈìÛÖ–­£Ã£––æËɱ¥â¥Ù’’ìññû¶ØØÛÓ§¶ñÈÈÛÄ„íѸ£ÛؘíáÃÛýû¶û÷íµ·ïÛîܰÝÕ»æ»òÅöá·‚íìÙÛ©Ó -¥¶ãÇì¿ýäÜ»ðÀöÝ÷¶È½ûìŸÿîûåøãÛ‡ŸØþ•û¯»öá׈Ÿ„÷èÚÏûê£æ¯à¾ˆó©¥˜¯Áü“Ìýš°áà¢Ø¤‚Á“‚¦ƒÌ®˜ -ä°¥àªÁԪⲓ­˜ìÁÇä—¦û°É§ƒ‰€É€Ó ”̤Œ”Œ’˜…¥°ÈáÐâ«…‰±ÐÚèõ—Ðë¡·‚æ°–á…Áã¬ÌÁó°­áò…“ -èëà¶ÀìÙóÆäó̾€éô¥Ì¯àÜ…á쵦ހ†ôðÛëðÆ‹×ãØŽÑÁ«Ä˹ފÈñÜ‚íŠÛ¨¤¶†±¦ÀªÁåž–û°ßƒ…™ö¸Úàë -€¥–½öÓ©œ¦Š¡Ï…¶ƒéê”¶å£ÂŒÈ¸¨û ïÂÜø‰ý§À»ˆ—ž¯Ð™èÞ›éëËàñÎ׬˜ÓÓÖ‹Å궄ۙƺ¹éµ›™¬Æ£Õàà -ß™˜°Ò´Õ¯Ç·ŽÛõº«”ÖëÕè¬ããŽÖµÚªÒÙÇêÇ­Ê¥Õ¡°ÛÊå̪֙•¨ÚÇÆ¬’‰õâøØÊÑÖ±Øðº´ä•‰¬ƒƒÖ¡Ðº°à -Ü•ˆ¬ýýÖ‚‡°öõÙù¼«ý—ëííµöôÎØ»»­ÝÝÖñÎÎëLJµ­ÇÍÚÚêíé± ¶µÙ››­ÆÖººëí­Çµ¦ÆÚÕå­ï¬´–—ÛËÊ -™¬¥¥Öââëòᡵ¿ßš—ŽçÍɱæåÙü³³­ééÖÔÈÔëò²µ©Éûšà‹³Æ•ÄØŸ¾µÆÆøÚ£¢¬ááÖýÐÐëÇÖàÞàëÝ»ÖÛ· -Ѭ·îدݳªÞ¾ì½ðÁúïö¬õäÉë±–ãÖŸþ²ž¸¾àÝ·ÏúÍ·ëÖÏ¿·þü±ëõƒ¬¸öóñ¯ˆï×µ…°µ—Óǰˆõ–Ó×°õ‡ -œÓ¡˜ŠÀÔŒ¹¦’±•†©ìÊÌå㪘Ó寘ª†¥ž–¦ºØÚàé„…ƒÐ‹—–¾Ì‚˜……°“°Ó°Ë½ÀÈÁÈÁŒâ¶Òɱ˜´°Ã¨‡á‚“ -¦˜¬°Ù°¹èæŽÌ‚ÌË¥°¼ƒå–ÍÎØœ°¸àñÃÇâÙ‹æ‡Ì´ëÌúàòÀÖÌàž¾ñìâêñꌯÕðˌ­‡ËЧЄ›”Öɼ“ -äâÅ€¥¾æ¹«˜åຓö¶´ÌµÁÜÉê֘ʡ¯†®Ÿ®ÍóŒ¦Á‘ˆÄ錆£°”‚¡Á»ÜÃßÙ©ôžÁ×Þ´‡ÎÚÿÏú’ؼ½Óµ‹Ṵ̀ -›–ÉÉ‹Éä±Èš­†ƒåâšÂÓ–½Þ²¾ÖîÑéØ´Ú‹ðÆã™›³¨Õ†–•ʲºêÑȪ­Š…Å®·™Èä–©Ô²²²â‘ȬÃÖˆÅ–’´ -­ˆÄ–ÁÁ‹ÐÈ虘°ˆ„–¡þþ‹ÁØøüÊ‹çáò­½§½–žž‹‡ã‡éê²ôöÚº¼º¬íí–ÖÖüËË‹¥¹ÙÒñØèéè°Ô×ÀÛêë­µµ– -ñêêË奥¢ÁÂÒÖæ©­µ˜”—ÛŠŠ¬…Æ…–üüËî®Ü¥»Û’•åÉȰ¤¥ÙÒÒž¬ÉÉ–ÄÄË’ü¼¥¶Ö’Ží‰Š²¼ùâ†ùüØ’žî‰ -‚‰±¼øà‰Ž×¶Ü¹ã¹õ˨’”ä¹úÕòïé’åüù˙Ƴ–“§­ÇøÚ޲üðƒªåß¾Ë·ßØþ¾ûÌòñÇ–ô¾°„àÚ¯Ùö¡ Þ«ëŸ -ËÁþ½ì§à¿šˆû؃á釽Šö¸Ø“¦áÏ€½—ö¹ØÊá«„­–¶ÆØÞ®•°õÃÖ‹ÛŸÆìý°Šá•Á’ª†Õ‚«”ÓÄòÌâÊ‹ -І–¬ã°ÓøàŒàŒ˜œÄÑ䔘»Ì³°‘Ìãê‰Ö•ØÍ×àۀ틶ÞíØžÃö‚ÖŸ—°¾ÂÔ®¬Î¾˜ß€¦áŠ·ÂçÀëš»ÿãðêàÑÀ­ -³ÆóÑì˱¥ãņ„ë⬊尤Ä¿æú¢°Ó‹Ç·¬Ë°¼Ý„›á¬Œ…݉ñÒèŠÃ¡Êå÷°äɃÄÁœ…Ѹ®†‚Á¿îŬðΠãû´ü -ú–¸ë–Àâ‹®™™Æ¼¹éæ¶™ÌÆ£‹Á¶àž˜°Ó´Ù¯·›õº©³ÖëÖèÌãÜãæµÚ¬Ò™®Õ£æÑѳҨéÖ¨Ìò¹Ù¸¦³Ë¥æ‘‘ -Á³Äâžž¶‹ÇÅæ¡¡³ÉšœÅ¢óà Ù¨ˆ´Œ˜…‚óÖÿ¿™ Ìü¾ó™Ç³ó¹æÞ¸Þóϙñ¤÷÷›»»ÍÆæööóÛ›Ÿ¹¥ÅÜÜìî -ðê²·´˜ëë™Íõõæššóžõµ¹ªÊÜÑðᮯ·—–šäËÊÌÅÅæÂÈÂóþ¾¹¯Ï›œ“ãÎʲçþæšÓÓÍ©©£æ””óÒ’¹â¡Áœ—玉 -°±¿ýꎌ´ÄÇĘŸ½²‡ó…™ÃÂÌ÷ï·›ïݳ߹ãõ¾ùÓüýºùíêÕó¥ËæóÛçÍçΘϜÀ°Ÿ½ê¾ôÈÛüÃæ½ûÍÙßüãþì³ó -µÇŸ™¿øÀœÑˆëÁˆˆÿ÷®¾¿úÿ¬Þù©…ŸàæëÌœëÂÌéÌÜÁôÀí̿䈧£±€éÔ̸çẟ͘Ïõ—㺚Óõ˜²îÆô›¦»° -ƒÝƒéžœ„œ¬ƒðˆà˜‚ãà˜Ž©œòØ•û°«á×À¦ƒ”ÍÛ„¬†Øâ͘â°å†Å²Š‹ƒÓ³°®ËÀ¶Œûªœë¼ðìÂá„Ã…Ç‹¸¼ðøá -—ßíµ¬ï°ÇåÇÛ¿Î³ÞØ°øí®¯Š¦ðÒ—º¼Ñ×àÛ§’›êò¬É±ºŒå䡬а¿€ÙŸ·×Ń­‡Ó¤ÝàÚàêÆÄþ½ôÕЖ³» -Ž–£ùçá¤è•Ô‚Èè¶Ø©“øˆÞíôÜÊÁçé´žÂӧרû ÝØ´ß‚‹÷ºÆÌ€Î²¦“ã´²°†ƒ³±Áд‹ÞÏŒ³º†£Õ²š³ -޶ƨՌÊÅ£ŒŽ²Ê¥£Ð°ò¹£“±ÒÈ©³²ÂȤÌÑð°ÃÑŒØÌ°Œ±¤ÉˆÄƒÌà £”²ƒºƒŒÀÀô÷³Ž„ÁðùÌߟ›Ãå²½½ÌÏ -¶Ãá°ÝÝÌü×—ÓÑÁ´·À³ííÌë«ÓãÜÌ´µ±àÌý½Ó×ÇÔÖ²ÕÕÌÕ•œÓÙÉ”—³åÀåÌɉÓÜÌ€”–²……ÌÞŽž“›Ëäç³ -àÙÙÌÆ†“–·Æ¤¦²ÉÉÌð⢓ŸÏÄÆ†²ÑÑÌÔ”“ò™É¼þÌ„‡þ³¡¡ÌÇÌÿýûÌÝ»Ìí÷ÛÌ›ÌõëûÌ•«ÌÅ‹Ìý¹óÌéÓ̉ -¶“Ì‘£Ì¿ú²ßÿÏìÝËÚüýµóÙçÌÐÇŸ±ÿü£ó·ßþÛ¯»ö”îñ¿º–àüëåÿÐü¿¹öÖ‘æöâîˆæµÎáîºæîâÀ®”óϰ—Ë -–Υ㮇–󅘫ÅÜ¥•›½ŸëÄÜ‹¸æ»°ÛÙÞ³Ìò±«Àì ÔæÉÌÒ˜Á±¬Œ³Ę̂°ò³†™¦õ˜‡žÀ´‘Ž“œÚŒì–اೠ-ÉÁ¶ûœœ‹˜ÞÁÌšæ¶Æ°»…Ù—æÝ»˜õàÖ‹™×˜ÙÅ´Ž¿«ì€þ©ø¬µØå°ã‚׈•Ï„Üú¸ôðÉŽáÓ…õ¥ž‹É°²‚¥Š‹ -â¤æ†±­€øë¯ÌݘìÀ¡…ô£ôµÆ˜«Äè©”…Óæà¸­ð꜌Åÿ“ô…û¢÷®º®£íΜš þ¯ª†ƒºäý‰¬ÞéšÉèä± - ˜Ì““¦š¶¯éõ¦ññ“ÎÂçÒêÙ´šÓ«Ø˜É­¶©Ô‹¦ÑÑ“ÒéÒˆ¨Ìò¹É¦³®É¥¦‘‘“Ä âšž¶Ñ”ÉЬ¶™ÈÒ„¤’™†‡Í -É¡éàÀ¤˜ãúûÍ„áâóàÍýý¦®×ÔÛëêé±ñ¸ã¦îîÓ×—©£ÃÔÞîê뎳µ¶šÚÚÌŒÍÍ¦ÆÆÓé®ÎÔÛ룪©±ÕÕ™ª -°«Í••¦²²¼Óé©©¸ØÔàÔ䪬´åçÁ›òó͹¹¦‘¬¬Ó榩½‡Ý”šêÊɱ„¥¥™’’ÌñÆñ¦ØØÓô´ü©ªÊôä‰é‘ñãÓø¸©¤ -ÏÄô੸ØÞô÷®éÖ­ÓÕ›¦ë×Ì—¢¯›®Þ´»èçºýÚôü¸Ûéȑӿšï¾ÿÞ´÷¯éËë¯ÍŸþêú•è£ÓŸÿ芳ĵ¬„Äûó -ñíÓ¬þ…ãŽØ¸ˆ…›Øˆ±ÆÂ¸–¢°ƒ…”¬äâ¡ ‹ÅبÇÂüµ–ê±Ð„…¶¬ô⡇‹à¼¬Ø˜À‚ˆˆ‹âÌ˰¯ëż‚óªÌ -¬áÞ‹ùñÌÍ®àΈ¹É̲›˜µàÖŠ™›¼æœ˜žÁô¼ºæ–°»Š¹õùÌïâÞ‰ù罘ÿù—˜ÿû…ù̽Æìš›Ì€Ó€ƒïØìøíÅŽ…¯ -Θ¼œÄ‹£ž€ÏàûœÛÚìÉŒáÍ…Õ…–¥¥Ø”àÎŒ™†‘»ØÚ‰Øø®ìòÆØ‰ºÍãÍÐÔÃÕÍïּȊ Éƒä¸“ƒ©ÄƒðŸ…ƒÑ -þƒ­—Ñ𜶵ߣ¼ ¶¿Ö—Àâ®™ü†ãÄ„‘¦ºÙôúãø¸Ñé§³êµÆÆ°¸¶æÔ«ª©•ñô”Å©´Øª”ƹܨ“º™¥ÒãÈˆÑ -À¢±Ž›©Ê¸¨–›‡†Œ¤¼é”‰ŒƒƒÆƒ¡Ð¸°à”ˆ×ŒýýÆ‚°ò¹ùÆžÏÈåš„ûû½½ÆŽ·ÇØÝíì겸ööšÛÛíÆíÆÖÖãË‹ -Ÿ±¹ÙØØèìŒè°Ö×›ë뙵µÆêêãžå¥±¢ÂØÞ°î¬­µ–”˜ÿ‹‹……ƂȂãÞž±·×›˜íÌÌ´æüä˜ÓÒŒ©©£Æääã⢱ -â¾Þ˜—猉°±¾ýꌌ´ÀÆÄ˜Ÿ½²†‘…™ÃÂŒž¶˜ïݳ޹ãżõ˘”ä¼úöÍøù²ñÂÞ…ãÙ³ÆÓ§‡ŒÇ›Ÿ¶øž¼èÜ¿ßø -Ÿí·Æ¯¾²þ¿ú©ñ£Œÿ“ü£±×ªþïõ·¯üÒŽËßâù –”Ïáù²–ïá…ù–Ÿã¹š“ˉØÎÃò¶·–ó±Ü‚努¬×à¹Ë­ -¤ØîÇò·–úÍÙ„Ä’€ËƒìØšÂÒ°–Þ®ªò¬âɹ¥­–ƱȆãрœ–™´¬Ø°àÅ‚óŽÌÏàî–µ³‹˜ÛÆü³ ¬ìàñ‹‹® -¾¬¹±äÁ’—¹‹»ØÜÅ‚õóþ̳ðÏïÀçÀ®¯¬ÕðÚàáà¶ÁÞå€“Ææ¸Öµø¦ÆÊ¨–›å˜ÿ»´ŽãÄúˆ¶Á̉ÀÍðáêÅÄ·ô -—íжÀÝ€åØä•”ÀœÑ¶†ÒÀ¤‰‚›Îãô¼ÂÀë­´ÞÆí°©ÔžÄÉ—¨»øÝ¯êÆú’öؼӵÃÄ„“¦ú½áü—Ü Ó™´Ú– -ÃÆ°¶æÐ«äª•áôÔ Ôš”ŠƒÜîãɌҩËȈÁ¢±Œ›â¨Ê –›††ÐŒ¤é‰Œƒƒ†¡Ð°°à؈Œýý†‚†°ôõ™ø¼ƒ -í—ëèíµôôà˜¸œÃ÷·¡«ËÐÙéè´µ™ÚÛŒ­­†ææÃ㣡¡ÁÐßïÛ¨«³ÔÔ˜ª±«ÕÕ†ŠŠ¼Ãù¹¡¬ÌЀÒ⨮¶”• -𙊊Œùù†‘ÜÜÃÎŽ¡«‡Ë™éÈÏ·ƒ¤¦šÒÒŒÉÆÉ†„„Ãü¼Ä¡¶ÖíˆÁв¼ùâøü؞¨¼üè¸ÿßðïïžáöíÃÍ -Ï›†ë×ׯš®Ý²œ¿ïô¸óÆðò¤áýرÃáÆƒì‡û÷›¾ý×ÖðÕ׆ÿþßÓðᇆ¿üÕÁˆë­ˆˆ¿÷äÚŸ±º‡É«¿áõ¬Ö¯ -¢âõŽÖÃØæ¦«±ØÍÂêèºÖó°ÚÈÖûʯֱŅ«‰ØíÅê§Öü¹Øå±¹õÕè¶™±ªÆª‚„«²öéÙÑÄáŃ•Öô˜Ø±àÅ„•† -Ы–¬Û±ìÇÕò´–æ°´‡Åù¬®âñ…¸ËëØÞIJ“Ž«Ï±ò‚«¯“±òŠ«»ØþÃå·Ø‚–á÷ŸÇ›¹¼žÁ¥Î´¼öø¬ø’áÁó†Û¦ì -þ™°¡ÇšŽý™Ëª¬¨°§ãô„ö±›ª¸±à’€‡´½‡ºÎŒµâÕ´‘òºŒÔ±Äç”ȈóÐÁŸŽÞ’úâÑáù„í¡èºƒ÷º«¨º‹ÒŸ -òи‡¹¿¼©³Íú’ؼӵ¢Ú¯ç™Ÿ§õŒºÚ«¥µšúêìŒÖ«é•ŠÄåô”Öªé…÷‚–Ë陌–ÆÊé‘‘Ú¢¡»‡‡éŠ¢Åâ„ú舦ÉÚ¤ -˜â™œ¤…ÂÚî  ûûé‚ ýùüº¯æñ¼è®—îí¥ûøú莇îî¦ï»ºèÎκ½Éîë£ÛÛé––º¹™îêÙ¢›šèúúºÿ®Ž®­¥«« -»éªªº²’®¾¯§ËÊèÒÒ§º¸˜®ª¢‹Æ‹éüüº¯ÿÎÉ¡³³éÌÈ̺£ƒÎË£ŒÓÒèä亱ÿ‘ާãâ蘘úéÓº²Ï’Žˆ Ÿ½¢ -ïÃÂèúÁ؃º¸˜¾û—í¾ý›¾ñƒ¾¶þ¾ò…¾ôɉ¾ÿž¾ó†ä¾ù’¾öŒþÍé§úÀúÿúþúßÿ¢¿ü—’þç¿é¿Ç¤ÿð‡º× -¼øˆˆ÷äÚÇžØß‹õ£Ø¿÷õëØ¿‡µ‚°¬Å⭎댩ØËÄÚžû¤€ì­œëÕØó«ÇÚ³ÖÚ°³ÖÅÖæ¬õá±­Ÿë¬‘ØË£°¶‚µ¹Ö -žÆ±¦Æš–ëÜï…˜Àš‘ÏΘ¼ýÃúæÅ´³»žÍãÙ¬¾Öç°º€•ÅÁ¬¬ãù•«ëŽØÝ³í¼ó¦ã̓µ¯Ööûð쵞ù°êíÇŠ°Œ·‹ð -Эà÷ޝæñÈòš¯ìøîÅá¶…ÛŒ¶Œì¥ÏÙÕãÙ‹Å¢µæÆ±£‡ã „ÖŠ–’“š˜ûÁ÷±Õ­¥š®¶ìÓÑŒÌ齆«±ÔŽÁ¢ö´ëߦ -´úÓЕ‡¶Èî´‡¡þžª¯›£ì¼ŠŽ¢÷ø¯²þù‘õꥰø§ëúñÚñ½Î§×êõÜšËØ˜Þ­ÛÖ«ÔúÑѽ’ҩרôò¹­‹Ì¦—Êõ£ -Ä£ú‰Ä¿¼¬•§¨½Ø¬Ÿš§Ò“¤Þ¤ÒöŽê…ÂýÀ€¼Þ Ð÷÷ë‰þÂÏçëûúôþ¼žžËÕ÷öéêûúôœŽ¾ý»ÛßÕ¥ïìÿÔ··ëÛÚô -­­ú––ýó÷³¾©Éߨ¨¿¯¯××Õéë²ëõµµúªªœý奾¢ÂßòÖ¦¯­Õ—”ÿ苊ô……ú‘‚‚ýÞž¾·þן­ÏÊÒüçäèÓÓõ© -Ç©ú””ýҒྡÁŸŸ¯óÕÇÇ룢ÍôϞ裢ô½žéÃÂô¡ò¡ú‡ô÷îÿéïÜÑߺ¥ñ¿ñÃÿíšþ½Ê•ýÅ‹úó×çô§ÏëÏœ -¹ÐŸ½ªÿé§ûýƒúï¾Óëÿëßú¯¿ÔïÿóŸúÿ¦ûÿßôÿõ¿£þ²ë¤‚â½Ó¹ö‰¶÷ã󸶯âó†¶Ñï㳜›Ï±†™ÍÔìæá -ü³Ÿ›Åì©Ë¡Íšì¶à³…›ØìƦ—Ñ›ü슰¹ˆ´Í±›íßâÂÕ¶´Ø½ÐáƒÆÆÛ¥€ç’›æìÌáÓÆ‡Öç°–¾‡õ…¬¯á -¨í™ë«øöŒ½Ï¶°æÄúóϬ¿ÀÆËì¼‹ÂÆ®ÖýØÿõƒµà™ü«ðÆ­ãõ’ö–àƒƒç†î‡Ü춸§°éÆú†¤ž½Ý¼é¬Ýé°¯Á¬ŠÓ -¾ŠØ¤˜’€‘å³Ûë“‚Œó‹¡åÂÝ凄䭴À܃øÑ…„Åàçƒ÷›…îÔ´Ç£ù婚ÂÙΗÁå·Ðü‘ùÇ“‘¹Ÿ©¿ÜÀ³Âú’ؼӵ -ÇÝÛÐêõš¨îì̧ÖëÔÖªÝ訋ҩӨôò¹Î¦ÝÓÉ¥º‘‘²Ä²¼¬£¨åج›šÒ‘ɤΤҎê„ÂÝÀ€Î ÏÐõ÷ëˆÂÇ -Ïçëúúô¼ž¿ŽËÕõöêú¸úôœŽ®»Ûÿ×Õ¥ëìÔµï·ëÚÚô­­ãº––Ýó³®ý©Éר¨«¯×ÕÕéêëõŒµµºêêÝåÇ¥®¢Â×Þ® -ü«­Õ•”芽‹õ……º‚‚ÄÝþ¾®·×—Ÿ“£ËÊÒåæÇêÒÓõé麑””Ýò²®±øÑ—Ÿ¯‹‹Ó¯ÅÄèž¾ÕÅ–Æêž¼Ñ½þù¬‹×…†ê -üž¾ÔÝ¿¯»ø÷Ï÷û¶îæ¸ÍÝÐîêÕÝå˺‹—ô÷çÎéΟÖ¸¡»òÄ÷è§î‡Ÿôßý÷§Û³Ç÷å—¹ºÏ¾Ñýí梁¿üÁ—ˆë -¤Š„Äûòíó¤¸Àù’Îˈìëà烸Ÿ¡Ã™ç¢œé„ðæÃـ牻œ•ðÖÂÙˆÌ竜쥽ѓ‡§ç€œà¢¸©¸Çà”‹³™÷§šÎ­ -“œãðÎÀéâ¾—ž­·ËˆÛŽìÍà뎴ۋØÚÂæŠ¼¶×±¹†õ ììâã››î¼ìù°åÅ֎ɶÞãë¶ýÍØ€Öñ毎ױ»‚×Ëø -ù€—óø¾ƒÌí‡û®›–¬€±Øµáé‚‹çã˜ÓâÚÍîä¶ÌÉញ©‚Á„ý€´„µÔ¼ö”‚¼“棭 š¡ªÅÄÀ¥ˆ’ð‹ÀÁÉÆÇšÚ’Ñ -ޚǨø€ý’ÛÈ¿„¬“œÈ½€„σñØÍ—ؼӵ­òÆ£›ÓªÕĬª•öôÔ«ÐÔꕊ­ÜÎꢓé¥ÒíȉˆÖ¢ÑŽëà©Ê«–뇆 -•´¤©•‰Ø†Š‡µÂ¡öàÀ¸«èûûµ„¡åóµýýÚŒžÏËåêûûÁµ½½ÚŽÇÛŸÝ­íêÒöôÎèÛÛµííÚñÖÖíË‹¶¹ÎÙÛÔ¤íìÔ -ûÖ×ëë괵ǵښšíõµ£¶²ÒÛÑ¡­Ž¯×–•éËÊŸ´ÅÅÚ¢¢íâÁ¶¿ß›—§ÍÉÑæçëä³³µ™™Ú´ˆ´íꪶ¹Ùç›”¤ÍÈÐÆ -ñÅéããµÑÑ£Ú¨¨í䤶œ¢Âûè‘¶¬¨Ì›’¢ýðÀŒ›œ¬½û×ûïû¶öÆíõ·ëÚ«×µ—®Øé¯ÜО½«ð½õÊûü¸ö­È‘í¡ÃÚŸ -þþÐîۧݳ–ÇûÅ—ÚϾ÷ÑþíïÚßÿÄÞ›ˆëº„ÄÔûòí˸þ„±ë´Ü×ີ×ø¢àŠáýûªºÒáÊõ«®Ò¸ªØÕ¶‚®¦öœ¦ -õ«“®ž¸úàƒê‡Ëˆ—‰—ÛÅÖí¸äð•ÂµÆæáÝú¼¶íᚄˌñ×”Üö¸¦áךÅö¼¶—±§½ŒíÕì¯áäûÎ͸·°—å‚ó…¶ßâ -¹û•Ü»Øöá©Û§°…ÿ¦¶üëØÝÃΪ׼Ëð¬Â½ÏÓ¾“óš›ö¬œÍáÕŒåɶ„³§ç÷˜œî㰎¢Ǥ ”†Š´‰ºãý˜íƒ¼‡ -Σ ÚÀ¶±œ›ú«À«ÅðÏ¡ºóÐšŽÆ¤ÔÆ ²‚¡¥Ñð›Ù×Éöš‰¿¢úÉËÀÜÓ†–ïÐôͳ¶¦Ñ«Äµª•æôÔ£¢Ô²¨”š¹Ü -꣓é¤ÒÍÈÁˆÆ¢á™žÖ’ДƬ֌€éÈÒ£’醈‡µÂ¡æàÀ˜£èúûµ„‡¡áóµýý¬þ¼ž†ËÕôöà긜Í÷·¦ý«ËÓÙ©éè -·Ð´·ëÚÚ´­­š––Íó÷³¦©ÉÓØ¨Ÿ©¯×ÔÕéê°ëµµµšêêœÍÕ•¦¢ÂÓòÞ®©«Ó”–ÆêŠ‹µÅÅš‘ÂÂÍþ¾¦¯þÏ“›«ÉÎÖ -Àäåé²²´éÇéšÔÔÍÊŠø¦©É“˜¨‰×ÄÅéâ┴ϟꢢµâϞ螿ք‡ëÂõŸþêîß×Ü»§ñ¹óÇóë–æ­ÆÍµëš« -ä×´—®éΟ‹×œ¹£¹ùÒÞóì˜æðáÍÙ¿ê¾ÿÞ³ŽïŸæ›ï´ß®ü¡ùä“Íßßÿªùýïµ³¸Æ  Þ“ë“ßÀýˆî³ð–ß…ûŽÜ¡ð -Ò¿»–îä¸Þ³àÎ…»ˆîþ²¸«à®‡»ú™î¶¸»àîŽåй…ð©Â½„÷°ÜÒù¸•ð«àÖÀ½Ž··‘îè†î‹ÜÖöžÏÏýöÎïŽî -Û·ª¬Ã½Š÷Þšž¯ãù¦ž²»ñü›®çð‹ýû½÷·øŽë¸€í¼ñâõ¬¦öÖá݃笕¯–áÚ„óÊŽ›ïïÆìÞÓàŠ…ÍñÎÈ›±ËÃ±Ž› -À†–•˜…ÛŒ ÉãüˆšÁ™¨„Ðô±çØ»‡»°Ô†Áæô×£¯Š½åèªâûÛ¶å‘ ®™Õ±¨ýÛ‚ÂäÜÁú”ÕöæÕÌ¡Äôü“ˆëšÀâ -箩ժõèʨ‹Ò©Ö¨ÔÂò¹Ú¦ÓË¥¬££ê‰Ä½Ö¼¬¦¨µØ¬¨žšÒ“¤‹ÈᤞœÔ‹…êõµÀ îïÜד„šÏ×÷ãõ©ù¼µ—« -»îíÕ÷ô¨¹¸œõ÷·º«ËßÝÙ©îèзÿ·«ÛÚÔ­­ãê––õó³ºý©ÉÝØ¨®¯Î××Õ©ëëÕŒµµêêêõÕÇ•º¢ÂÝÞ®¸®«Ó—–ªË -²ÊÔÅÅêÂÂÄõÁº¯Ï›«ÎÉÑçåù©³³Õééê‘´´õÊŠº¹ŽÙ˜¨ÎÈÐçÇÅ©ããÕÑÇÑꨨõ䤸º¢Âý葺Ь̒¢þð -˜Àœ¬¾ûמýû¶úæÍõîÐúÚµõå÷Ëê‹—ÕçÎשϜџ¼©ð¾öÌýø°úýàÁõ÷ß«÷ùîÕÿóúóÿÏÕÿø‡ú¯¼ÿÕÿþ÷êÿ -óû·ßöÍ€ÿøÿݵŸ“¥ž½ì ÀÏÙ¦ø®Áó—žÐÜø¢á‰ƒ§™¼íœìɃ§ˆ¹žòøªá©ç›ûæøÚÙÆƒÙžÞøøðˆà²‘Á£æëì½ -ü²ø”ð¨áх³Îî³ṳ̂ìÞÞ³…ñžéøæá™‡ä牞•øžÁ…³ŽÏ¦¼Îøç¶ñâ¹Þ¸ÁÑÎü…Ï®Øé‘½þ¼€ÜðÒ¿‡ï›»Î¼ -×ÚÄËõ¼ø†µç«ØÞÂÖ¼”¶æ±¶•›ï–¦°ÀàÖÄ®î˜ÛƱ¥…Ë£†É‰‰™ÆŽ¥Ðˆ¡–Á©ã€ŒÉ¯†ºâ±ØŽÁ³úê­ÑÛ®ò´— -¹¡¹õ™¨Ê€ÆÙœ»†¤·È”™÷‘ô±€ç‘ñ˜¡ûðÙç—Ò‘¬¯ñÅ»ÝÓŽªõ”ʕ¡’˨Ù䲕Ԫš°™Ñɤªááü•űˆÅª¡ -È¡•ɪĢՃà Ê¨ÔŒ™¨„‚–þþ•ÆÁ¨øüÕߟóŠÇÓñ¹ªÞ¸ÞÕÏŠÃÑÜõ÷«ººÔÇªŽŽÕû»»ª­ÍÕÚªêðéѵ·«šš -žÔªúúՎݪ¶ÖÕÓÇ£ª®ÖÕÕ©øª«Õå媲¸²Õ驪¤Ä„ÕÔ¤ª¬Ô•òóÕ¹¹£ªœœÕö¶ªœ³Ó•‘¡Ê˾ӥ¦ª’“Õ -ŒÉɪ„„ÕüÁ¼ª¶Ö•“£¢úúÔ•™©úòÄõø±ª¼ˆÜ•šªŠ‰ÑĽø ŠŽÖÝǽ«ºýÛõã÷†êúõÕիǪ˗՗®¨«ÎÓ¾­º -øñÂõô¨ê§ñŸÔ‡ªöï¾×íÝ«úúë¿Õ矫þñýÕßÿªúÝï¾Ô¸¶„€øÖŸ®ý•Þïἂï¹ö¨ Õ÷ž¼áðÆÂð›‡ïм™ð -ûæ±Í„½åðÇÖÀۀúðöÃË…—Ê¢øÅ—ðŽÀ«‡÷”äÞµ¼ÚøõðêšàµÁë†×Êæè½³ìÒûÀÞ…ú×­Ù¥Ê»ï– -·¼Ûð¾‡×¯‡ìÜöø¾ßÃûó¯ÿ’¼þÞ¸ñú¹Þö¶Ùïõì°“‹¡ë•ÎåìЮà펫³ì†žÂ‚•óæÌÁ›à·àʳ𖦵Œ£ÐË -¥¡ÚŒ¥ˆÉ²ÈøóÙ՞ÂŽðÛÐ÷ۀ—£µ¹˜õù¨ÎÄÜùŠŠâ›‰©Œ°¤ßÃìõì¼¹‡Ð£¸ûέ®ý±íÖŸ—À⮩• -ªŠ¥Ü΢“©¥ÒåȈҢ á™žÖÒ”Ò€¬ÖŽ©ÉÒÄ©’±ŒŽª…ŽÂåÀ€Ò Ðãö÷«‰ÂÉçî«ûú”¼ž’íËåéíÕöôਹœå÷·² -ý«ËÙÙ©ìèöж·«ÛÚ”­­Ê––åó÷³²±ÑÙР›¬¯×ÖÕ©ë²ë•µµÊêêœåÕ•²²ÒÙâÞ®¬«Ó––øªËÊ”ÅÅÊ‘ÂÂåÁ²¿ -¾ß™›«ÌÉѸæç«³²”™Æ™Êôôåꪸ²¥Å™”¤ÌìÌÔÆÇ«ãâ™”±±Êèèå‚Ô”²²Ò™‘Å¡üôÈ™–¦àŒÕ¾ü¨¼øÿßùïžòÎ -–å­ÛÊ›·—”ׯ«¯Üц޺¤¼ÿÞùïö¬òÔ©å‰Ö“ʣǕ¿ýѤ¼ðÀ¹ÿ¿ËòÛï•ßÿ­ûüì³åßÿ®ûüËß”¿ûIJ׶ï -Ûõ±»—»ÒDZûž»ÁØ×½‡Ý°ìƱò“•öÓ°›…åÝüì–ã·‚¼í¨¼Û€Ý–™ìöà—ƒÝ®äö‰ìŽà—Äö®…Ý‘ìʱö»ŠÝ±ìê° -ªÃ³…‹»“ìÇ…ÇŽ•»ŽìáÌàçž»‹Ø¶ÙÆÎ³öŽð‹çíý¡“»®¿ì¸±ãÁŽ—Ä»ï¯ç—»¾³Ÿ¿€Þá—µ¯½Øõã•‹ê¯ø±‰×Û -ëÇ»çØÜÆúÆ¢žÍãù†‹¢ŽÌÙ±ããõ’­·´Ó˜Ô©Á°†ý¨´òûŒà”‚œÄ…ȀĄÄÜŒÖðÀ…ݘìûæ–Š´’”£¦ŸåÙ¨ -àÎÁÞ¼²£–’†¸ûˆŒÂµØùܽŠëûêñî—úƲ¾Ä„–ïôÍ¡—¨«ä²…Ôª˜ä™á‘È”ÃÃúŠŠÒˆÅŠ¡Ô¡–’ԈĊ•ÁÁ…Ш˜˜ -°Ðˆ„¬ýýн‚Ððùо¾Î…§àò•½ç½Šžž…‡£ƒèîÖôõ©º°»•ŠööÜÅÛ›¢µÕуҢèîÖ´µÀ©š›•ŠñúúÅÝ¢¶ -¸ÖÑÓ£¨®ÖÀÔÕ©ª«•åÇ劲²Åé©£¢¤ÄÑܬ¨à¬Ô””¨òó˜•ùùŠœœÅâö¶¢«Ë‘‘±¡ÈÏפ¥©øÒÒ”ÉɊĈÄÅ‚¢¾Þ -œ‘›«ˆŽÖ¼ŽýªˆŒÔ¼ùÅ¢øüØ‘ž®˜ˆÕ„„¨žà¼Ð„‡«îÞžÕܾ­¸ùÓŒ‘”¤¸öÍñïåŠââÅÅù£óŠ³ç”§ÎÂ©ŽŸ×œ¹¢ -ð¸ôÈñà€âë»ï”ßþ«øÕê«Å矩þõþ÷Åßþ¢ø»Ýï”¸æÆªÀ¼×¾‚üÇá»ß¼üÁð…×°…ß¼ü©ìô°¥ß¾»ŽÂ× -ðßüðµçÂ×ÁöãôñÕà£à“ÂÇÂÆÇ±ÍˆüòøŠÆá›ƒÏ‡ŸªŸ‘¾É¶øÉÑç㫽ü³¯ðÍ÷ˆßŠ–üÏØä‡ï‹¯¯·ñú×ÿë -·¼Æë·ÿ·—×ñòí½æ¶žžï±©”­çضßÁ³Å¬Ìãöñ–­À™±Á‚áõ’–£¦¸é˜ô Ç ›«Å˜œ££Ó€˜¡Á‰Á’˜Ó౫¹à -‡´¢£‘­µèá¨À͉ªòÙ¸ÉÖù©ÈŒÇÌÊ”âÑ•Œµ° Ü»ëǸñü–қëËàñÎפäÒ©ìä„Å’¢‘˨ʤ¦–³ŒÉÈ -ˆÒ¦’Ɇ‡åœÂ¡ËÀ€Ì Ïõ÷ËˆÂÆçËúú伞ú‹—«ëí•õÃôȸœÙ÷·Û¬«ËÖÙ©ëÿèµ·ËÚÚžä­­²––Ùî󳬩ÉÖØ -ø¨ëèÕ×Ëûêêäµµ²š¸šÙõµ¬ªÊàÖÑ¡«¯—•ƒ•ÉÊË奥ã²ââÙÑ‘¬í À–Ÿ¯ËË¿“åæÊ²³åŒÙÙ²ÌÌÙú±º¬­Í–šª -¤ËΖ¥¥É’¼’äññ²¸¸œÙÌŒìéÓÙŽÔ”ìÉ“ÙÄÇ„ìÑ£ÙØ˜ø¬´Ôöð¡ì­þýÙ½û²»Ô÷ä·îÉîܕݿ®»úÕÞöù²ìÂ…Ù -…¹ó²³çä§–ÏÊŽ“¾–¬ûñÇÙ¿·È¾ûÎö¯ÿ÷ɾúÊöé§»²¿–ýå¯×²ßþÖöïÿËå—ÝÛÁÀ¼Ê×¾†ÿŸüÆÇá¿€ÿü -ÇÁì¨éÿ”üŸñð§ÂŸ…ÿê¾ü¥ð×°£þ©üð·Âß ‰¿‡þžü„ýü¶••Ÿ‚Ðÿ„þ…üªø¯ÇØ“œþš½»úâçà·Àï˃ßÿ¬Ûù -¥áß‚ÿ…þµø·àß‚ÿ›¿þ·×àß‹½ÿŽÞ¼Æ›·öøãÇ›¼åíí¿Þï¼ÝîØ­ÿŠ›ÍŸì€ïáëƒ›ëø§¶‚•¥¬ÍãÄþ–³Ž¸ì° -àÙàá°é„‘††­ƒîŒãªÑŒª ŸÁˆÅжñ¢…’ šøàñÀéÄÇè«Ú›ÑØ‹šÌŠÔ” ¤ŸùÂÙÈÊÅê¼â™£•Žðà„Ô‡¡è‚ΟŠ-ÑýØûñ¯þ¿Ê²Àâ®É”ÇÆ¤’‰ôø ØÊѬâ±ôèèÈÊ’Ò‘ˆ€åðЪ”ʇº†¤‚´¿ßðʬü¾´¯–ÏÊãɹÜéîﯴ§ÇÊá -ŽÈ»»¥ÝݬҎŽéû·»´­ÍÚÚªÄíé‘¶·Ë›¿š¤Ò††œéý½´®Îڜ۫­©‘Ö×ÈË««¥••ÒñòòéÙ™´´ÀÔÚÒ¢­®– -à–•É‹Š¤ùÇùÒ¼¼éî®Ø´»Ûš•¥ÍãÌ”æäÈÓÒŸ¤©©Ò””é‚Ò’´±ÑšŸ¾¯‹“ÆÆÊ磣¥ÑÑÒȸÈéÄ„ôñã„éø¸´´Ôš -ˆ’¢ýðÀšœâ¬½û×úû¶ãôæÍéÐô­Úµé•«ÒËã—¤—®ÈÏžƒ•ž¾­½ñÂÞúì˜ôðáéÑ¿ÊÿøÁºêïŸôÏžé—èßÊ¿ýÔúñ -ëÇÒ¿ÿÙúÛåßÊÿË€®½¹ý£„÷ãšöÇ€‹À¼Œ„ƒïž¾¤‚Ó™¡”€•À­ØùÒ°­À§ÀáÛŠƒ€„€‰ÐÉ€”ìÃ•Û -ùž€º°Ç§¶àÏ›ÙØêü²¸ØòÆÌƒ­é·Ú»¿½ÁöæóÙ¼ãÏ®ÕÁ‹ì€¯ÙÇÞþŽ·Î½þã·Ïï¿»æžöÃåÂÖ–¶ž¶°¶†••¬ -°­áþž³³ð‚¸Ø“ƒ–‹˜€†Æ£èšº„´š¨ÔШ —•‚¢À’ŠüÁàñÀá ³“­­èìÄÀí­ªªÐÒ‚üüä塵•ññˆŠÂø¸ -“‚ƒ‘”„‹—úðì˜öíÃÇ׿운°ø§Æë’áá‰Å±ˆÅ’¡¡‰ÉØÊÄ¢–ÁÁ‰Ð¨™˜ˆ„ö¬ýý’‚ð§ù’¾¾‰§áòÙúû¥½ -°½’ŽÇÒÝ­‡éê’ôöʺ¼º¤íí’¶¶ÜÉ뫤¥Åґܬéê’´¶ðÊšš¤õõ’ñººÉí­¤¦ðÆÒÝ­©ª’ÀÔÖʪª¤åÇå’²²Éé© -ƒ¤¤ÄÒܬ©âª’””Èòó˜¥ùù’ÜÜÉâÎŽ¤«Ë’™¾©ÉȤ§ËàÒÓ¥©©’äˆäÉ⢤¡Á¸’—§‰•Ä”ÇËž¾•ÄÅŠÉž¼‘¼þ¬ -‚ùôÈ’–¦‰¢‰‘¼ü¨¹ÿ¼ßòïžäΟÉíÛ’›·¥ÔÁÁ’ëפ—°¯Ë®Þ”œ¿à¯¹ûÖòê”ûäĉÉÑ£’ÅŸþ’œ¼¨ù­þûɾý’½ -àû¤ßþ©ùôæÓÉÇŸËþüÂçÉïÿ«‰Èçµ€ø¯®ùϱϣþÜðæ£Èà¿Âý›ˆò£ÞÔ¿ÿ²üÈ÷£ÄøŠ¿»ä¬ÑøÖ¿ºýàøÁ -Ûó³½¾…þøþÐþŒø¡ð¾ÃåǘŸí‰úÂûáôƒñÃïâ‡ÍÏž‰™Ëõ³µÄËþ¬Ÿø±æÇ†ŸÛ¨þö‹íÿ»Ýüü«™ÿÍÿþâ¢Üžì¿ÇÖ -ü¶¶¶°¶•˜çØÚÁü’æßçᘅ͋ªŒ…ÆÉÐÆÝèèŒé šƒ€â”£òУ  ©ˆÉÂðˆ¼ðøèä µƒ‡­¨íÄŴʪ߂¬ü -Á¤æ¡¾•ÑñâˆÂ𸂂Ðñ¡ˆÇÏãߌÑü¼÷—¿åôÉàñÎר·€¡–ÓÃÔɘҢ‘ËࠥД҃ƒ”ÀÀãÒßÏ‘„ÅçÀÓýý¬¼žÅ -åÒ½½ÔÏ›ÅáÐÝÝÔ×°—Ëç§ÕÑÁƒµ·ÓííÔ놫ÕÒµ·ÓàÍÍÔã£ÕІÀÕ×ÓõõÔ€í­ÕÓÃÕ×€ÓÕÕÔå¥ÕŒÑÁ•—Óåå -€Ôé©ÕÒ•Œ—Ó……ÔÁÛ•ŸÏååѹ±¹ÔÎŽ••Å€åæÒ™™Ôú¶º•šÊ¥¤ÐãÉÉÔ⢕¶ÀÅÇÓ±±ÔŒÌŒõô©••ÀÅÅÆÒ‘‘Ô -£ÇÔø¸•š†Ê…„ОÐÿÁÁÔݻԶ»Ô­ÛÔ›ÿÔõëÔÕ«ÔïåËÔ…‹Ô¹öóÔ™³ÔÉ“ßÔñãÔ‘£Ôí¡ÃÔƒÔþßýÔÞ½Ô·ß -ðÐßüÁýóŸ¡ÔÇŸÑÿú“çõ›ßйæþŽˆ÷ò¼æÃ쾟ŽúðÞ‡¤ Ÿ‚ýˆ÷¡ÃʇøŸÒýÈò¡ß‡’Ÿª¾ü¨ñ¡Ñ‡ÖøŸºüàøÀó -«ðÁèƒéƒ™å㛤Êý˜Õõá̇´øÆŸÛ¶À⫃͇‡³¾ÿÌû°èʸ­óÜ÷±¥¡ÏÛ¯ñüµÞ¼÷ÆË×øõš½ÿ¼·«Ù›Ÿ¿ -ËÀ®Ÿ¯üø¹Ý‹—¯ðü¥¶ôßàë¹Ö·ñÊì‹­ŸÜü†•ù•̮±©ÛŒûêôÒŠÅ£…ô¤ô†Œ¥Ñ˜ÕÁ¾ÆöÇ£¤ä Ç ¤ÖÀà€Ã  -ƒƒ‹ÖŽš»Ð·Ó‚І”Ô û¿‚‰ø¬Ä¥ ¼ž±ÁшŠÃùûø¸úûÎã£æ£¿ø©ÓÅ »Ý“‰ÉÈÒ¬’±ŒŽŠ­…ÂñÀ€‹À -æ îï—“„˜­Ïçéë“óøØâ®×ÜÛ«îáé‘ó¸¬ÝÝãâ®®ñ秸£ÃÜÞ®î뎓·¶ŠÛÚØçš›ÅÍÍâÆ¸Æñø¾ÞØÜ×§®­•× -ŸÔˆ««ÅÕÕãâÊÊñÅ…¸¼ÜÜÖ¦®­þ•—”ˆ‹ŠÄ……â‚‚ñþ±¾¸¯Ïœ›«£ÎÉ‘ç剳²³Å™™âôôÄñÚš¸¥Åœœ¬ÎÊ’§¤ -ψããÅññ⑘˜ñô´¸ª°Êœ™©ŽˆÀ¿þ¬Ž—‡“…‰ÃÂÄŸ·Šïß—ß»§ñ¾óÇüû¶øñæÍñÐøÚÖµñ•«âË—¹Ä—®ˆÏž• -Ÿ¾­¾ùÒüïì˜øÈ‘ñ¡òÃ⃇Äû÷·‹¿ýÖüÍ·õ⯾ÿóŸ³â¾’ÿéÏ÷âßüÆüŸÿ¤ó€®í„ÄûÕÉÃîâﮎ—îâü®‚öñ -¸ï—ỈÚÅñü®Òö‘µ‹™üÝ”ï¢â—ªµ»èØÅË®ŒºöÁÙ…÷—¹Ä®»Ä‚Ü…—µ‹‘ÝÈ÷±—º‹±ÝèöÁŸï°ƒÉØŒöàÝㇳ -š»ìé´Å¬×ïàÙŽÖ÷°…¹ƒçŽÜ»ðïïÀóöîñçÖ§ÖÝøþþÞÞÙ¾íçµÜ»ð½‚áó¥¶ßàÝ…´çÎöÌÀâºûçæ™½é -¦êƒå†“Žî˜¬ Í샮챃ÛҮŕȘ¨ÑòŒ‹Œ€ƒ«‚çЀ„Ú¸èèàÆÍ‡ªÚØ‹ÞùµÈªÇÊö±â󕉰Ɣ܋ÃФΠ-÷‡áèÝ콎žÏýâ§¬ŽÆ¬Þéš©’±„ŒŽ’¡¹°¹À¢ýý¤‚Áü¾ËߟçÉã‘Ü®ÙÛ‡ËÒÓÃò¸äŒ÷·ÙÕÅöö±’¬ííä -ìÛ›ÙÚʶ´ÇÍÍäÓ“ÙñØÈ¶´õõÀäÝÙÛËÖÔÕÕäÕ•àÙÙÉÖÔååäÙ™ÙÚÊŸ–”ÅÅäÑÀ‘ÙØÈ–”ãùùäÞž™› -ŽËæäÙÙäìæ¦™‘Á¦§Á“ééäÊŠ™ñœÌ¦¥‘‰‰Àäü¼™—ÇÆÿÆ’ÑÑäÓ§Øää¤ùä‰ùø±ùè‘™–ÎÆ††’Ÿ’üžÁÁäÝ -·»ä»ä­Ûûä›äõëäÿÕ«äåËäÅÿ‹äùóäÙ³Ûä©Ó䉓äÿÑ£äáÃäÊ¿’¿üÀþ÷¾ùí·ä×ߣ“ŸÿÎþò‰¿ùá‡äŸþÄ -£þæ·äÀ®­ê…ÄûÙßóâäÛ¯Žøñ΋íëÞÜó¢Ì‹¬È¯â¼Èñ¢³Ó‹¼¯Š½¨÷¢Æ‹†¯»Îº·Ã‹î¯¸ÖÞð½˜ðÂä¿…ØË¶Ú—û -§ÙÞÄ꯴Þãè½°øáò²õ­ù¬Þؽ˜Íñâ΋…¯–½½Øõ²¥ü›öÞ¶öñÛ‹çžÞ¸½ð¼ä¯¾ïÇ‹×ޟݨû‰øüð¿á–×¾íöÛ· -°¼ØóãÕÅž¾ÙØÄÜšæÐÖáßæ›¨˜ÝçàšÁŽýâ”ÛõÒí¨Ðò½Æ´«Ð¡ÒâÀÆÎ£§âŠÑ­â‡®¿¶ðÑЋšîÏ”·£¸™ùõ -ãȬÆÊ¹âŠ®™‹°ŒÜË«ÆõØœû‚£×¡øö®þúíЗ¿å²°ø§–ë¢ÁÁ‘ШÀš˜‰„¬ýµý¢‚ñù¬àýý¢žÏÄåŠúûÙúúÄ -¨»ÛÔÕ¶¥êìäéèßµ·‹ÚÚÄ­Ç­¢––Ñ󳛨¹ÉÔÔ¤êð씵´ˆêë˜Åõõ¢ÚÚюͨºÚÔÕÆ¥ª¬”ÕÔˆãÊËÅåå¢Ò -¸ÒÑɉ¨¸Ø€ÔÔ¤ª¬”•Ž”ˆòóÅùù£¢ÜÜÑö¶¨ì«Ë”™©ÊȾ¥§‹ÒÒÄŒ©©¢ääÑÒ’¨±Ñ”Ÿ¯ûŠ‹“ÅÆŠ¢ù£ÅÏŸŠ¢¢ -ŒÄÏžˆ¢¢ÄÝž‰ÂÃÅ¡·¡¢Ñƒ‡÷¢û÷Å÷î‰Ûîܑݾ­º ùÓ””¤ºö¼ÍôåŠèÒ¥«Ñ…‹¢óçÄ–çΈΒ࿮ºúÔôÓ -ÆÏ¢ƒ‡Å¿ü¶ Ú·Ïô¯ÿ÷‰¾þÚôùçá¢Ï¾‘ýø¡óèƒÄ¿þµä¨ ×œñžæê´öøð؃¹³žÜóஇ¡¡žÄúçÁ•²‡™žäùÐ -ÕäÁ¹‡ÕžÔÖûÐìÁ»‡ÝÔžöº§ßƒÕ‡Ô¤öÀâ‹Ìƒ¥‡ê›Û§øÜƒ‰€Ìž°žÌùàÝóàÚÃöµ˜ƒ÷°‡Á×¼ø—æÁº‡›ž¸ -ž½ìíáó—ì·þãß¿£ùÿ„®›Áó¿ÛšïéÜÅæ«¬¿ëij—ì‘·¥ÂíÌïáöƒÓþë°­°˜¢…˜æ±±ñ›´ÓìÃå¥Ò‰²‰ÈÆ¡Ö -¦À¤†À‰¾Œ‘½’ô¡ý½Í‚Ô÷¡º—åݨêÇÞ³¶²ë‘Ü…¸²€Ä–¡´—÷³€ð­‰çãñ¸Ø‚ûÂþß¿âÓÿéËàñÎ×ñ„ƒƒÂ€¥ -Á¿ßȾŸÛ¥¯ÏÈ㉹ÀÜáï¯ËÏÃÑö÷‹»‘ºØº»…ãÂööáÛ›°ïµ•¥¥ÅØÜ€¬ìê’¶¶Šü›š„õõºøºáí­°¦† -Ã¥ºÚØÕ¥¬á¬”ÖÔˆËË™…ååÂÒÒáŽÉ‰°¸ØØÔ€¤¬¬”–”ˆÿó󅹹œˆœáö¶°«ËÛ˜™©ÌȦ§‹ÓÒ„©©£ÂääáÒ’° -ì±Ñ˜ Œ‹Æ“ÆÆŠãâ„úÏŸŠ£¢„‘÷‘ˆˆáãÇ£ÂððáØ˜°ü¤Äøð¡ðþ¸ýáð°ðîÝïáíÛÂÛ·„ˆ·îˆ¯ß—ÞŽª¼üÙøñ -÷¢ðüùáÙ³ÂÓ§…§ÏŠ“ž¹¢¼øôÈøð ðûïï…ûö‰ÿõ¯á×߉¿ûæÌøÿˆÿö·ᇟˆÿýÈëáÀ®±ñë¾ê¡Ý¸äÆ -ì™·®ºñǬ·ž¸‘ëÆ±²›™îäºÑÅ䯙›ÕîÔ§»ÑìæçÃ÷—¹ÑëÆŸ›‚Ä·†Ý˜òãØ·ÍΒѸ¡ò®ÃãÆ¸›´›ÐÆ·˜·ÛûÎ -Ïê†Ã™·æñÜØôãùíê×äÆÚóö”Íéæó¸ŸãÛ…Ñç®øþ® Ùæñãµ›ïþ¯¨òȸßàóµÆûÓùö­ÜõÒàù…–ŸãÎ뉙Ͷ›õ -À™¬«à–áœä‡½Ë¶ÑÖØË ²ÀÁÀêư¡ñŒê ÊСÏÞ©ºÛ†Ñ¶„æÁÔ‡÷£ªå½¨áêÂš†Ü‡Øª¼©ÅœÈ¡îäàêº -åΤâÐŒ¾‰¢ˆÄµáàñÎׄýý¬„¡ƒàó…ýý¬¼÷ž€Ë•ôö²ƒôôˆ¸œÁ÷¿· «‹¥³ÓÃÐÑ¡èï—´µ±´¶ŠÚÚž„ÍÍ‚¦¦Á -þ㣠¡¥¾°ÞÐ×§¨­•›ÔÔˆª«…ÕÆÕ‚ÊÊÁÅ…ƒ ¼ÜÐÖ¦¨ì­•””ˆŠ‹˜…ÅÅ‚ÂÂÁâÁ ¿ß—¶§ÈÍ•ääˆã²³…ÙÙ‚Ì -ˆÌÁƆ ½Ýƒ–¦ÈÉ‘¤ì§‹’’„‰‰£‚„„ÁÜœ à¶Ö“£ˆŽ€–Äʼn¢£…‚Ïžˆž¿–¼àú¤ˆ‹“„†€Šž¾”¼ø ØˆŽ–Ü»§¸ -øóÇðë–àæ¸ÍÁÐàÚµ«Á•«‚Ë—„Ø—®ˆÎ“œÀ¹£¸õÊðâ÷„àØ±ÁáÃ…‚Ç„‡ŽˆÛöï—ìÝ«Øí³ÇðÕׂÏ쾓ü㟂¿ -ýÍðÇ¿Šþ•ýëÁÿúÏÛ¸¦‹ˆ÷Õç×ﮜö᥊‹·ÝøèÂá„‹±®¤¹ÕîÂŽ‹…®”•ºÐå‹ÍÞ®´¹ÐéÂð‹ý®ö°®Ð -ª…Ò…Ê…©‹àò—»×æÌÅŽ¶â×»àðáÅÒ…³‹Ó®Øòݘöáö튇´Åí¬ïãˆõ›ëÛØ÷âÓɦóÝÎöÇ¿úå¶Û¤²“»ÍÖÁúÿ® -ùóçÖ¬û°—¶‹Õö†ôñíêèæ»€¸Í»áßÄÔš‡Ì«˜Üæ›§¿ëç ›Á˜ƒµ£Öȭ켩íÊ€’†Ð‡þî±ô¢ÇŽÎ‚‘´Ñè¢Ñ§ -ÀÄÕ¿Êù¨ìèÁΧÒÛ‘Ô£ˆ˜ÚÄÔâሩî—àʶ·§áÇÄü™ýˆë‚Àâ®ì‘ïƒÏ§úú˜Øø¼‚Ë¥úÀûÙúúˆŽ‡›èºØº -ö»‰ŽŽ¢½€èëãéí¥ÚöÚˆææ¢©‰Àèìäéè ê÷뉺º¢¶–û¨©¡ª«‰ªöª–ÊÊ¢¢‚ø¨¯§ÊʈҎҢ¤„¨®¦ïŠŠˆÂ¢  -÷€ÈϧòòˆñÜÜ¢§‡ÈΞ¦²²ˆÌÌ¢‚£ƒÈϧÒÓ£‰””¢¹™È°Ê¢’“‰„„œ¢®Žˆ¥âÆâˆèè¢ªŠ‹ˆŒ¤ž¼¡žà¿¦ž½¢Âà -£‰ÐТ¤„ø·ð€¸ÿŸ¸÷Û¸û—¸ý›í¸ù“¸ñƒ¸¶þ¸ú•¸üÛ™¸ô‰¸ð¤¸÷ޏ󆏒ù’¸þœ¸ú¹”¸ü˜øñÇû⇟ˆýû‰ -Õ½û‰ï¾¡¾ïü’øôÓâïìÿ§þú×âœÿ¤þÇÿ ‚ðòÍ‘ïëüéš“‡œ¸éÄð¥§î¹ñÀ‰±ÇÎÄ»‘èÄ…š“ÙΔ¸Ñ•âÄ¥“µÎ´ -–ºÑêħ“œ€§øÎÎŒ¸ä¡ò‚òâÄÉŽËÓº¡öÂÇëĸ““Θ۶خƖ­¶Ãí£ã‹³Û˜×Û––¶±ç²‰ÕͶ…¿Ç¾Íìï -å½…Ï–Ûù¸ç³…×Ûø³ÉÁîùãØûƒ³Õ×ìÓ„¥×¬Øø‰¹—˜ùºŽÇ¶û¦–ˆ°ë°­â≥ã‹ìˆŽõ´»ãʾ…‘³°»ÊÑäÀ€ž -á„–¼µ¸£è“”£õ„”ê¢Å¨œÀ‰‚’®²¹ÈëÀâš‹¢›ð¸†´ªð«„—òñ²‹‡Òñùš ®‘Å»Ýã÷õñù¼–þ®—ßÛËïé -úááðøÝÝü®®–ÎÎþÇþ‡¿½ßÖÆ§ÒÚÊïéá·Ž·ó›šØš›™ùüúúþüÝ¿¶–¥¦ù†ßÝͯªâä×Öò«ªøå‡åü²²þé© -§¿¤„ßÜÌÒ’Ôį¬ä—”ÏðóóùùùüÜÜþÎŽ¿»ÿ›Ÿ•ÅÏÈàÿ§§óÓÒø©‡©ü””þò²¼¿©‰Ÿ˜ÈÏžÈàÇÅñãã™ù±±üèèþ -ðÔ”¿²’ÿ三¿¢‚ÿ葤¿¼œŸ–Ʋ‰á¿üÈ¿ÿÙŸŸœÌ¿û—ÚÿçŽÿÖ­þí›ü  þµ²ëü«×ø—®Ùñ¯Þ䟿ÏÔ¿û–ÿú´ÿ -­äÉþ±ãü£šÇø¿ýÄ¿ø÷ÿÃüÿ“ź»ÿʳÍ÷ë…ÿ—œéïÝß½»ª««ª•ˆÊÕåž“ãâ–âœçùÀ•€••••ÅÑÔ€ÄєѤ¢¢ -‰†¤ˆ„ˆ´Éªó¼ÏóàÇæÁĘ“³Ï÷Ó÷ÍÕ•³Ïöù×ÊÚÅîݶýºúÚŸßýמ‡õáþîÿûºüý×øøõ¬Ù¸ð‡ÇÔš÷÷µ³æ­ -™™ºõÍ„‰ë«ÆŒÙãÒÖ¶ƒ»äŸõ®û„¤£ˆ™Áʈ¡²ÆÐ°‚þˆªÇ žô„‘ò‘¨Çб‚툖Œ ç„‘½£Ø¾‚•£„ص‚µ£´¹ -úþ㈶ÞÇŽãûØõŸûïãùÀýœ¾£÷œé†Æ©û¸ûžŸçïãÂýêç´úñ¿ý×î®ÑϬû¿´Ì™™ÆÐݺ˜°ýÿ˜ïÑ™›ç÷ñâ¾Þ -÷ÝÇ›û´‘ëÝý¯Ç²©‘Âõà»Üþ‹×ë´Âòí¹ý—¿ôÒÇïˇ¸®¿‚³÷ðꮣݸú›‡ï»âÀõ콊Ý÷—°ã‚¶ž£¦ñÜëÎâͱ -¥¬º‚•‡±üÈŸú÷£ç‡–¢ì…ö“ºÖÁõ¹†òÕ®€—Ø‚ÊÞðûРÃÖ—Òº×Ó†€æ¸µ¸Û’µµ®Õç³ÍæÜµŠ¸œÎÅ•«ö»Ù± -ÕÂé³¹­Ö²æü¹Óâñöõ¾‘³ÙÙÛë´ï™œË–‘£Ñ§ÙÓã´˜œËÕ—ºõú²ä‰âÓ§ó®Þìì¹îöêµÎ®®£¢Ñ¸»»êŸµ³£Ã©Ò¹ -ÏÛÛ‹–¹•¨Êçۛӡ𣶶ºÛÚœò¯¹³¹Ù©“¹ß›šœÎ©¿ÔÙÐଯ÷¬Ê¤Îºº§Ø×쬩ñŠÄΑêêçÕ•Ó¨ðôÖÔ¸ËË -þ‚³´ÔÉçè»ËÊœ¼ž³³¨ÈÙØèäòŸùùÎÜܧï‡ãÌÎö²Ù£ÎÌÌçúº³ž­Í™šêä²™ÉÉ΄„ç’ü¼³¶Ö™·íŒˆð†…¹ -ŸƒƒÎ¿þ¿§··ÓÓÓ¯éáᜳǹêó¦óÊ”çø“ñα㜮åçÍé’ÿÔ¿‘žû𽇨ûÈ—¾‡ÌûÈŸÆÉɰª†Ñ³Œ‘†á´£í˜ -ªáô÷ŒÙðÌÃ蛆Ô혎ᬞÆÇÏÃØ°ÌÓäÝ·ÓØÝ½ÃØ¿ŒƒÃ¸²ÇŒãø¹Ìó®°ÎÝ¥†âŸ¸ÿÚݾ‹«÷°ÿéÑ·„» -ƒÔÖçðÃ÷Ìðïˆö¹¾º¬Ë›ùŸÓ±Û€×÷ñö®ÞÆÑ¦®Œ‚·‰ÞÓË­›ïð½ý•®¾Àå绸ø„ýèÛëóôýú³Ç‡àðä‡ïÑÈ -ÝÄ½×°óŠ¶ÆÝÄæþ츋ɟÏãõ‰¸ŽÁÁö˜ý‡àÚº‹Ã®è¶£ë؋ԛѶŽÍ—«ÑàÀ•°ý¨±¡ß€Ìª’µˆÒÁ×±™²×²æô -õ­¾›µÇÊ•‰Äî÷¬ØÁìÕêØ¾œìØ¬Ž¾¾‡Ù Ìúû¦“ãٲⴺúúÔœ†ƒãéÒ¢¥×»–¬ñèô·ŽÅ‹ÝÝÄ«õôõ¹´š -”Çç§Ã­öô€ô¸ÔªÇû»ÎٴȡԺÚùÚœŠ…£µÕßÑÒâËÍýÍŽ™ÌÑÔäðèìôÈ¥Ž†ø†Çý½£®Î”ÑÛë‹µÌµŽ‘ÈÑÝí -ó¨ªòˆ…ŽŠˆŠÇù¹Ã ð‹”•¹øüÇÉω£¸ØÑÔäð¨¬ôð¹Žü¸üÇÞžƒÃñÛä串²œ™ç™ŽŒŒ‡‹åØÈÍõ¤¤¸’Í“‰‰Ž†Ã -œ‘—爉ñÄàŹ¢¢œ¡¡ãŽààÇÀ€Ãß××áííØ°éÀ±ïžãŽ›ÚãÆŒÇ”©Žëñãßÿïø»óŸÝÈšÙ¥£ÿ¨¾ÚÃðš²Âø’‡¾ -›„Ü¡ð†Ð¾‚„ѤÃ蚺ÂëڇйÄÅÃØº„ãªÌðŽÁ¾Ê„çÖŽáý¶áëö´Œá÷à½äð‡‡¿þÏ܃Áñ»¸õ‡ç -×îàÜôâ©â ­Ò߽͸͡ïÜÂÍÛ­ÔÈëίǬƆñðŽÎðûö‡¯îàÕÚ¼™ÄÛÁ¼ïÿ¥Ö¯ë‡ÞãÚÛÜýÍ¡¯®¾Çÿ³ -Õœû‚³ðêÊŽÿüž¦”¿ùà¶öŽàý÷츊­—û±é¢ÖŸÇÚݳðž‚ý¸¬Çᾄãþ¬·ÝƒÅ»Ñ¹í›ÑºÍ¿æÃâ„è¥Ê­ -ãàõ¡÷™Ò—è¢ñ±Â»áÕïŽÉ­®äÍáðÚý¶ëöµÆâ…Ýæ£Ö«Úýùò»ÅÂúûúìæ³½·—µ˜ÌöåËìÆÎ£éé±›ŒöÅ¥Ëíú½Ù² -ÏÄ®ÓÙ—¯¶ø÷÷“­ÖÞÕºå×èìöµÚÞÑÁÔªÔûû»ýÑ¢»Òéï볫”£öÖÖûˋݒ®···Ûå²¼ûÓ“½±Ñ®ó•Ú›šìõõ -Æö‰ÄÞ×篿­µ‹Åöšš¹»È䯮¶×ÆÕÙ…ÂûŅ罼ܮØËûÊìü¾½¤Ä ÞÜ쯪²—ò–Ú‹ŠìùùÓö¼¼»‡ãϳɱçåÙÙì -äûƆ½½ÝžÑ–æÏɱ³™£ö¤¤û‚½â¾Þž›ëŽù¶ÇÆÚÃÃíì¡¡ö  »¿¿¿Ý××îååæß°À¾ïžÝÓÍ;ã†ýòöäû¸ñöï¿ -×·»”µ­ËþŠñ½Øç¢äÆñƒÈ›ÄÎà Š‡Ñ¶ˆªŠÁÔ¢ñ­ÁƒÐŽÂ½ˆíÊ –Œ¢ç½“ƒ°ŒâÅí¸ôîãÍí¬»ï·±å¶¶ß -ÏÆÎÛØó›ûæïãàíœùø²“ê–ÎÜ¢õ¥‹³·èá¾ÿ׀ކݾÉÛ¾½®Ý ýŒƒ€·°ø“÷‡ðùÿ–žÜÂãÛôøú›Ž”¾¼èŧðÞŒÐñ -ý€¿´‡ÄµÚ´åò›êÏñßÿ’Þ§œÄùÊ믧¾þŒ¸œÁ‘û¸øÖ—ûïàϭ쿼‰íױ媌¶Þº‹ØóÂŽŽ³Øñ’–»ã轂žƒØ -í²ÚÝÐï€ò«Ú¶¡ñ½çêÖ¢ê•Êìä¨ÜŽœ³ÒŒëˆ×£¤›óÕ¿™´ÿ“——Ëê³Ù³ý¬«“Õ¶ü¹±ØìôýýÄì¶õöéÚ̦²ì™Í -îè´õôƒÁ•¶ô©Í¯§Ëó–ØôºÛâÅû¶îî¢ÕÚºùºìš­³Ó­¦Ö“ŽŽ›Êˆåëï·­ÚäÀÓªííí¶…‚´¶ÚÚÚìÞò¹­¹Ù¦“ -·Ùššì¶ï©ÔÖÐ૯™·É¤¶ººÛòí­Í¬¶ÕÔáØÄ¢ÛÕ•­“²Ò¦”Úªª¶ìåå¶ÀÖŒÖæãóí¥¥“¶ââ›ç«²¬´•”Ø¸Ü -äÛÞž­·×–ý“ãËζ±Ùã¶ÌÌÛúº¿Å²¥¦Ú˜ÌäÛò²­±ÑÆŽàØââì±±£¶¨¨ÛÄ„­‚¬Ì–’⋌´ùûÛüüìü‹—ÚæÏ·Í -•뛽۶ýµºíòäÛ¸ñ‡¶Ñ£í®åͳî’ÿÜÖÜï€¡ð€±ƒÈ™ªÀÖ€¸ƒàˆÀ¸€ñ€š†­Ð¼€¶¨†‰Ðµ€Ý€ŒƒŒØ¶€¾Ø‡ -©°ò€Î¬ãÀúìšÀÖÎ츉ݷ±Ÿ÷ãϦ›¸ôØ“ÇîâØšõ¯öú†ÎÞÀÿ¹ë迎‹×¼èßÕ•«¸öý•Ú²Þþ¥‡÷ݽ›˜¹‰‡ -ö·ñ䦞ÝÄ£‹›øõ“¯ïûàíõ¼¿ö©ùí±®½ÇÅ·­´™åÜ«œý×ÓÏðò‰Žæ½Â‘‡´õ÷¥À°öŽá× ®öÜÂÖ›Øô–ë¯àíŸ -÷û±ò¬¬§Ñœ÷‚ËŽÁ𘭺ƒèÚ‹Õî‹´íÀóÖ´ì©„ø„ëÀßâ…îŠäÙÒ£‹˜ž„®ûÛ—‹Ù³¹ÖŸëÍšõùò«ÅîÂúú¬æ³µ -×·—˜ÌÖåË»ˆÑèí鱚”ŒäéÒ«Þïîݲ„èôÖÅï‹­ÝÝÄ«µ€öõÙµšëç…§Õ­¦ÖÏ•ÊÚÞîÝ´ÛȪԒ¶¶«ðÂáííµ¶´ -¢Øåòëó³Õ‚¦³¶µÙ››½­Ò©µ¡ÁÚ”ßï•ȬõõËÖÚÚ«Øì­·©±ŠÄÖêê¼ëÕ•µ²Òªð”Ú«ª¬ååÆÖÀÚÚêå³ó­¥¥Öââ -¢«ç­¬´–ĔعÜëޞܵ·×ÊáØ³³³­ÙÙÖÌÌüëÆ†•Ų¦ñ¥ÙÓÒ¬ÉÉ£Ö¤¤ë‚µâ¾Þš›ëŽñ¶ÆÆÚÃí¡¡ÖààëÀ -¿€ÕÏÏêííÇõô´úøØÝ§Ý­³çÛ§ÏŷΚä»Öœºú´õ˯Ý÷ȚХÿÿ¬Ïýê³×¸ãІüï ò†’Ôî ó†òî …ø†ÊïÀôƒ -¹’›èºÖ›îè¿Î›è¾âý˜ï ÷ºº–ßÇŠëðŽÜÇšëØ÷Ê›¯ãóõì»ßŽ×±ûšö†ÝÃë¸ôÎǯâøÕúÏêüúŠÎÜ¡á -–´ý—ñá’íãÏ¿ú™·®à½ÖÕܹ†áëÏÔÕàÁõêÛƒóôºõÌøùž¯®áÍÕºïÿöá—öþ¿ŠŒÐø‡óïðùæµÎ¿¤÷å—ÇŸÒ‹†Ã -Øñà„ûîá÷îÝì¼ƒí·± ù€›ïàÝÕ«¬¹ŒÇŬ¸ËåçÑûŠÆ’“ПÅ÷¡ôµîÇûÞ´î©ÓöȶÀ´‘¥å¿£øµòœ«È´¡©‘¦ -Ñøš°ÃçâÖ׬®Õç³æéÿ볘ͤ·×”ⲑåˬÆÏ£¥§‡˜Œ–ťˉÞïÙ²¿Ä¢Ó‘Å‹­›ÝÝ–­–ôõ Ù´šËç§Åá­¦–•Ê -³ÒÞîÙ´ˆ¨—•–¶¶‹ÂáÜéíµ´´Øä°òËó³‘ɬ¬ÍÍ–ÆÆ‹Ô¸êéè°Ô×Ûð¤’ËÝ¥¶Ö¢–Ûê꬞¢‘¥ºÚÒÕî婬´ˆ…– -ñŠŠËù¹¥¬±ÌÒÚêáó­Ì¥¥–â⋈穬´””Ø‘¸ÜËÞž¥··×ÂáØ²³­ðÙÙ–¶Û’‘¸áÉÏ·¤¥ÙÒӭ̦¥©‡É’˜èá°¬ -Œññ–˜˜ËÔ‰”¥¢Â’–愉‰±„…Ù‚Œ‚¬¾¾–¯¯ÿ‹§§ÅÃÃâ•î˲íõšåÒ¤ËØ±Ç–Ñ£­®åñí’—¾Ó¿“íÿÚóšÂ® -¹ñ¬«àÜÊÅÑÕ”ÝÅÕÚÕÔÞ…ôªäþס¼ŠŽ«è床ÝÕ˜®Âàô•ý×Ị½•×áüøíñㅾöÝÁ–²«Øþ…»®àÁÏåÚú¿ø™ -‰Þ­Ÿ½ÄƒÄöé´áÅœ¹€Èó—𾟗ûÒñ債÷Ÿ¸ÚÄŒ†®Ð«Ãž‘«øø…ٯг çרæûÂëßÚø¿‰¿Àçá𞸹÷žçÞâÔ› -Íœü…ã¯ðôØ™Ž¿ÁÁÇô…²áψöã¥û¶ŒâÓ­ÿ¬¿‰µ×éâìÖÞ‚í‚úιÁô††“ТÇבôœ„òò¿äû Ý‰Úží¨ÚŒ²¨ -´Ú‹Ž“¬•à˜Ø‘æ†ç²—쿔ʋëõÙ“¬™ûûͦ“æÙ¶Ìì´’ž–ž³ÁÀ–®µ§ëõæ¥ËˆÎÌçÞ¼˜ô÷›¡µÚó×—Ñè÷ÌæµÚÜ -ÁÑÁÔªóû»ÊùÑ¢³ÒÉÚûÚÌŠ…¹µÕ›ÜÒâ–ËÉóÁ³Ù¦³·µ™ô››ÍÒ©¹¡ÑÁÜßï–È̬õõæÚÚ³ØèÌêêÌ¢‘¹ƒªÊÜÙé–Š -ÙÍ••æòò³àÀ஫³—–ãšùüóɉ¹ƒ¸ØÜÔ䮬˜´—”˜¹ÜóòÞž¹·×ÌቘóòÌÙÙæŽ¶Ûœ‘áÎÏš·³ØæÔÔ³“éÎ槦 -ùš“’Ìññæ‘ØØóô´¹²Òœžî޵䇇›ƒƒÍþñþ柟³——ÚùÁ‚ó¼ùæä¹ó̳皧èͳϜèþéÚ§ó÷ß™ÝÊÛšŸËþ¡Ù› -Œû™—‘û™æ©—‘õ™ÜËà߆ð²ê®ó£þ²ä—¡¸ûŒöË輄îšËÐß‚ñ’ú´¯áù¥¬¸„½Ç¥¬¾„Ÿ¯²âÃÅÚØú‘»®â×…ú -çǵÿ‚Žöã¼ð¿ŽöãØù¨š¦úêœý„¹û–ÆÃݾâÏÝ‹îÞÀíó‹¸ó‘ר†áëƒËøô‰ìÏ®áÙż¸Ùˆ×—ð¦Ÿïøþ™†…³ ³ -žº§ÞáÄÛœ¦û£¯ñø¹ì޾Åþ§Øóúˆ»žÐ‹‡­›Ã´Ò³á¶þÆžÀê›ðÜÃካØþ‘½ý®°ž…þ´ºÏ‹ ó˜ÚÃñú€²ý¨ßš -Àî…ÿ“¸§ë‘µ†©«´ëÇàòÌíõ¸½ëæ×ê³Ù€³­Ûæ²šÉÆÏÉà Ë—«šôú²ä‰Éõ§£‹—›º»˜ÍÚ­éê²éÞ´¤³Ó¤Ö› -€ººÌª•é­ÚäÒªÉêۛɡ°µ¶šÚÚÌò¹é´î¶É䦦¦„Óã£Éªµµ–´úú“Äâûª«³Õ֚ĈâÓÍɤ²ÜÕ×›ªªÌ• -•¦¡ÐÔÑáય·‰„¦²¸²Ó驉Ϸ‡•”˜ø¼ÓÑ‘©°ÐÔÐàáâòÍùù¦Ü´Ü“‡ãÊɱŒå器ìÓæÙ¦©½ÝÄâ™àÒÓÍ©©¦ä -ÈäÓÒ’©¡ÁÄà˜ââ̱Ʊ¦¨¨ÓÄ„„©¬Ì”’âŠðв…„˜üüžÌÞÞ¦…‹Íßóç›æÎµ¹Ë¹™æÎ´Íºêš¸ÑôÓÏ÷¦ï¾³¹µ -…™ðÉ¿¶ë³†®À÷‚¢¯ ¡ñ‚²® ÷‚¸ø— ¸€ê‹Ï¨»€Æ‹è¹Â€å…ôÜÀ×ö…èúáèDzžþôõÃÚûÔ¿ÖõãÍù¬º»ç±ù¼ -¯¶ÇŽóØõ”ŽûÎáÿÙœ¢¼‹Ãçð䌎ÆñÓ¸ù˜’çΡÿŒ®—ÅÕó¸ñŽêƒç±ØÏÈËïõ㤟ûŸñ¸ŸºÝ½¿ß—çðúœÞ -÷žÅ»³øðËàØÑœÿÏ£³Ï¼Á¡×¸øÖ‚ûŸãÏÓÚ·¶²ã¡¶à™ó½ì¸‹õ÷êèÕæÕÍØ¯×Ãúñ»ø²–ÆÝ€á¼ôçÑØõŠÇ¡¼Š -ù–Ãèܺ½ë¨Þ…Áöð¶ ÷£²Ö¡ñص¢ðµá†ïÅõ¬™Ü«ÏŽæÍØÓã´˜·Èҥƽž¬üÙâÔéÈâÅÛÆîî¢Õš»³ºˆÆãìì´ -¿ªÕ¤£Ã¨Òž™ÛÛɢů¥ÒØÖÆ”Š¼ã뫱¥Å¨——“ææ£ÌæÀìê²¶¶š¥¶ÒÒÐଯ·ŒÊ¤Æººãí±­Ñ¬¶ÖÔ˜ðÅ¢ãõµ±ª -ÁÊØÙ锊‘ŠãŹѠư–•™ËËžü¾±¤ÄØÜÎìäñŒÅÅÆñÂÂãÁ‘ËÆµæå™óóòœŽ±§Ç˜•üåä³™™Æ‰ôô£‹åÌË -–³¦¤˜™Ìã²Ò’±±ÑÈàþ˜ã⌱±Æ‘èèã䤱¼Ü˜šêŒŽ¶ø††šýý¾ñ¾Æï§çÑÃø÷®ÑÓÍ͸ã†ñÊ–”ㄉƟÿ -ò´Žšåüâ‹£ßÌš“®ù‡Žæí×ëÜðžâ¡ç‘ÿž©ç±‘ýŽ…çÀ¿ú‡á¹ˆÏ¡áìœäç ¸‡öÚó輇îóПÃÏÇŸÀçˆá¹‹ÛÙÚû -ŽðžÁÚ³Ø÷£†Þžï¾íç§±ã´öÂ…žÓØ÷’‡Î×Ò©²£Çñôĸ̾ý‚ç’þ™ýøå´õó›»ù†·Ïâ¥ÎÙêáüÿœÁõÊþô–ÏÎ -«âÙ™¼¸ƒ×»§©ÕÐÛ“øÏÿ˸ì߆ԯ¿Ç¡·¸ðš©ûÞâÏ‹ìú™†Ï°í‘¶Ž¿ÀÆûط̯¢œƒØù‹§¶›°ÜÃôüü¾î§Ë -#ö“МÇ숚ŽÂ¼ÚŸÂ½àïÄÁжäïÆê†Ä£ÿŒ§–¬ôÝý“¡¼¸ÖŸ«ÍšáéÒƒÞ’Ï–¬±èôä¡ñâÃ÷·ÑêÝÝÄ£±ô -¼ö’µÚÐÑÁÐÔªÃû»áѲ¢¢ÔšÚÚŒàŠ…éíµ´´Â˜äòÃ󳑱ɌÍÍ†ÆÆÁƒÔÊššŒõõ†‰ÄÐ×çû¨­µˆÅ†š°š¢’™ª« -¬ÕÕ†Êʃж訨°”—›ð„‚ÃÙ™¡´‡ÔÀç›ÊÊŒ“ÅņžÏÐÔà䨬´ð¹†‘üüÃÞž¡·‡×Àá˜òòŒðÙÙ†¶Û™ÐéÈÏ·°Ø† -ñ´´ÃÊŠÉ€´¤§›’“Œ‰‰†øøÃ쉬¡¦Æ•囈ˆ°„…™Â¼ÂŒÁÁ†€€ÿƒŸŸÁÇÇàùå娰Ààá°áð÷·Ìží¥˜±Ã°åŠá -Â„Ã¿šÆ²¸µ¾ÜÝòÏšÛ™ø¥ŸÁÔ™¤ŸÁ­æ™äÁñ™¬ˆÎ£ú´êλ£ñ´ä§¡¼ïŽÓèºÅ·§±ô”Œ§à¾¾…å§°â” -윧±ú¤Öž‹Äú“Øø‚ÛÔÎàÛñ츎®Ýǰç˜öãÅ£¸ø„úÀ“œ»ÂøÎ„žÃÿñܺÁøí¾Å냧ñ÷´îƒÆÈé¼¼Íý -¯“Ÿž¢Æ“¯–Ïàõñ¼¹Æò탾œù¥ÏÓÂÁ¸ðŽû•ÞàÏëìúÉõÇŒ¶½Å–ÇëØøëǰöÜžÖ߅㎽‘–ؾ€ó˜å¯áé嬾ˆ -ù®þôœ¥Û•ŸÀã±ÔÆ™õˆö¡ø·¡òö ó«’·¸¡ê½ü×ÂíáÕÿªë†×êå³Ùӯ٢׿éÈâÅúîî¿¢Õ껺ˆÆç£ïì¤êµ¾ -·£ƒ¨Ôúööõ²è‘Þ©Ô·õµ‘…ÂßÚªðïé¡ò¹¾¹œÙ¯“‘¦¦ý’ã£ÞªÕ·´ëúú½Ä¢¯¿«Ó×ÖêÅâôÒÓ£—‰ôÕÇÕúªªýå¥ -äÞ¨Ô×ÔèË»Ëõ‚¾¬Ì¼ßÚªçóõ¥æ¥úââ½§¤¯ªÒ—–ꋊŠôÜ®¾¿ß¿Ÿ—§ÏÍÕóƸúììýÖ–çžÍÖçæêÓ‹Óõ¬–¾­Í -矚ªç²õÉÇÉúÄÄý‚྾ޟ—§“‰ÑÇÇ룣ŸõááúÐÐý‚𰾨ȟϠ÷õÕûûëü—®ÔÏŸ¯ŸÐ·Ï¿çŽþÖþ¬ýôéúÉ“ -¯õãÇëÿøÁ¼¿ê”Þ…¬ÉÓá’ÿìÖþ½ÃÔ…§‘ö’Œ¹“È»‰œ“¨Ä¸‰þɈϠ…æ„êÏÀö‚­­§°è„Ô§• ½¥Çá¸ÍŽåÇÑ÷œÖ -ØãØñŒ¶æ¬¶¾†µÇ±þ¨¬¶žÁæ£ØöИ»Žãס춾ˆ½‡±ÿ€œŽžÀу¸ùí˜æÕŸ¿Š‹ûǨ×ñõã¸Ôù‚·ÏЄŒ±á“´õãÁ‰ -ô¼º§Çñ츘ޜë£øðý„ïãýÁîßÚšì‡ö¾ŸÇî·Øõ†»ÄÞáÛ‹ìþ†­Ï°þ‘Ö¾ßÀêû´©åž¬ƒè»…å̷Ḏ¥×¡ -Ž„õ…¬º­Ö³ÂýñíÔœ…ðøûòѰ—¹»¶òŒ­ˆÛˆ…ãëþÓŸ‡åÅ«µúìÖô‹—ï뺻‰Ö«ëùꢚ®³“¯¨ÕºŽŽ¢Ò -ŸéÚÛɢźŸ¥’´µé”ŠàÝë«ééÑÉç夹٧“铚šÈã£ÎªùÕµ´èêë‰þÄ¢««ÓÕÖ£êÄâÒÓ£“½‰ôÕÕºªª¤Ýå¥Î¨ÔÕ -ÖÔòòÀ ü««Ó•–êø¸üÝɉ®¸ØßÇã銊ô…ç…º‚‚—«¿ËÏ×åå鸈œÝÎŽ®»Û×—•¥ã³õ™ç™ºôô‹¥üËËÓ¥¦ê˜ -ˆÌÝò²®©É‡— ã°ôñÆñºØØÝô´ ®²Ò—‘¡‹þ‹Ó…„è‚‚ÆôºÿÿïÎËËçé雿߷÷®£ÎÍÍ·ó¦îýÚ´Ýäɺñ -ùãõ¿ü ûö¾ÛÝŸþô›ÙúÓÃ¥¿‡¬¹„ŸÃÀ±ÄŸÃ¡ò±äžÃÞ±ƒðŽÁð”ÕǸÑû”Ò£ŸšÅÛѨŽÂóê„ÝÇ ¿‚ž£°ÆßáØ -’ÃþˆŽÃØ ýˆëâýÁ¬ì¼€Í‡°õÞ¿¶ïÃÎýعµ—ûöàÀÞΜÙã‡ðúú Î…ø¼ü„׎àÆÑܺŠÁ£˜ºŠûDZò” -‡âñ‘¼½Âóóçߞ«ƒÜøó€úâýØâ‹ìöý Î–‹Ûßâëëì¾þ‰Ï±þ©Ö¾ÆêÇ𼻀ý¾¬Ãè›á‚齃ô¢ã¢ûš´× º -›„¶þÈÏÁúòšµ§Ñõñö㎀÷ùû¥¹‡É»‘½Þ›á¾á¿›ºµëõ٬騿Ö×—Ö£¡›Ä­Ööôš•ÊÛÞΖº­Òª•¤­Í -«ÐÖÖí˾‹‘˵ÍÍÚƒ™Œ´µé››áµÒ©éèÐÖÁ×륒Ò×§ÿ­­ÕŠÅښ𚢒髫µ¬ÕÕÚÊʭз¨­¨ ååÚ‘ÀÛÖ¦­­ -ŸÕòùÚ’’ížñ±–ÇÓ–•ˆé‹‹µ……Úü®×›Ÿ¯ÍË‡Óææê¹œíâÎŽ¶»Û›•ͥ峵™™Ú™ôô­‹¥ÍË—Ó¦¦ê™Ìíâò²¶©É› -É å°´ññÚ‘ØØíô´¶ªÈÊ›‘¡×û††êƒƒµ÷Ú€€­ŸŸ«ÖÇÇ»ð¡öýÁ‚­‡‡ÖÝžÝëæ¦¹ÓÔ»õªöÒ¤íå¸ñÚ±ã´ß -Âþ«õ¡ëƸí䟞µß¯Ö•ë°ÂŽƒñ˜†é‡‘ý˜…Ÿ›ÿÕ¿„ŠÃÖ‚äšŽÑ§Š‚ò ­™÷ÞÄâƒÐŸ€‘ñ€ú ï¿“¬û髽㟠-ÞÖïÃڽط”—›öàÓîì›Ù…í»°ã§ÞöïÄþݸ¼Þ‡ÇöâÔ¾œÍÝÏ­÷¯ÄÇ•ƒ¸þˆƒ‡¢ðûͬ¼û…ˆÆò¾¸Ä³›çŸœÄ³ƒø -¹¾Ÿ¯÷áõÞ¿¼Ýƒ÷»©ÇØžö€ÛÞãËè»ìúƒ¯°•î…Ö¾£³õÓŽÇôˆÁº‚­¾û轋ãéèïãñ€º®©ÓË‹åå´Ü’ÄÓùÈÎÂô -芕§À¿Š‚÷ú€éûÁ÷ذðÚúóŸý¬¾åÅ…åúìÖ´Ÿ«³ÚÓ£Ö“ŽŽ¼ÊÅÚÛÉ¢Åžš¥’´µé”ŽŠÒÚªéé¡Îò¹¦¹Ù£“ -Ѧ¦Í㣑°ÊµšúúÚ¢‘èêê´µ¹µÄ¬ÖÔÔèðÄ¢ÒÝ­©ª‘ÒÔÖê„ÂÍÅ…©¯×ˆ„ãš²²Í驆ïÏ×””芋 µ¼ž©ªÒ” -À–ꊊ´Ü®ø¦¿ß“—§É³ÍÕ𸚜œ¼ÍÖ–†ÍÖäàæê²²´é鸚–Ë“–¦ÉºÉѰ™šääÄÍÒ’¦¡ÁÃìàèâãµ±±£š˜˜ÍÔ”¦ -²Ò“ž®‰‹·Ó„„è‚‚´àš¿¿¯÷¯ÆÛÛãé©¡™¿ß³ïžæ½ÎœÍìÙš™ˆ³´Ó§ê¦Î‹ÔŒ«™³Æ£óÍ·š—²æ‡Ëþ§Ùó¿ -뀀ƒˆº€¤¾ƒÈØÜý¨¿Ú²ý¨ÜÏ髈û虼˜õŸ–íƒú¯þí¾ÐíÅÒ½Š°îÁïžØö‹Ãº›öÝô¨ºóõά݉õ»°á»¶íà -ïæ­Ø¶•»¶òãߎœÜ‰£á»ðâÎïÁïù½¸°—÷ËãÚþšÒøë€†àè€Íü̜هûñ¬øŸÍäø¶‡î¯öàÕ®ê°Éüî‡Þ -¡‚úøíúöï±îµÖ¾Ä³êçð¼ƒý‰ó¬àù€Þû¤°ŽÓŽÎÝ áºîÁý“‹®³£õŠä—ÐðñÖüªÏ ì–”ŠŽ£÷ˆ²°Ž¡é¿¢ö  -œà—Ü·ÿ•ÙûÓ¸ÖŸÍšº·£ƒ¨Ôêöö¡²è‘ѪÕíôíġз¶’å––µÜΚ›Õ²™éêÒ·´¶’©ÔÝÐÀ÷êëÕ’‰º®ŸŽÔÖªÅâÒ -úÓ£–‰ÔÕգꪪÒÙ©–²ŠÕ••êòòü¢¨ËÊÔ¥Á¥ê¾ßÝҢ𮮦¼žº¨ˆÈÝØ¨®¨ÐŽó¹êüüõÞñžº·×Íá¨üóòÔÙÙê¬ -¼¬µ›­ÎÌÔ¼çä¨ÓÓÕ¬ñ–ºµÕ’¢üæ²ÕÉÉꤸ¤õ‚šÁЧÇÇ«ããձƱꨨõ䤠º¢Â–¦Ž‰Ñ‡‡«ƒƒÇÕþþêßßµ -¯ÚË˽àÇÚÃý÷®£ÚÍͽë–úíúôõ”©ê‰ú“ÕãǪ¿ÿÖÞýÍ·êÿÿï÷ßÌÚ†¸äÇ÷µß¯øáÖÞ„îÅÜž¤µîÁÖžäïÁ -­ñž”ïÆõî§Ôí†ô·š÷úñ‹í» ÞÊ…íÎèöâéÈΘ÷ ÷‡úç¶Ãº«¶Á­±•έس…ì¿ïÆúÍØ¸Ð‘Û¶áç–ì‹ÙŠƒÛðä‡ -ÏŽïĩݴ¸ñ©ÿ·®íÁÕ¾‡†ðÞƒÞ‹»ûñ÷ÏîíÁÈž¼ÜþÍ㦞îÂóõø¹ƒ¯·áÝíÖ¼Û‚›ï€ÀúøùžÖ¼ó•œ -𝩻ƒõ©Òçíýˆãˆ–×ރ÷ Ç¾ö¨î ùš¤—Ñ÷‘óÕý¨¿‹âÓÈ¿‰¬ãȽ÷Œ¸ƒˆÝ‡…÷»ÿŠ‚òâ°Úý¶ëªöö -“Õ¢ÅÄ©¤íüíª…‚´¶ªäÚÚˆÜΚ›€Õ²™éêÒµ´¶’©ÔÕÐÀãêëÕ’‰©«žÓÕÖªÄâÒÊÓ£’‰Èõµ£ªªÊÕÙ©’¸ŠÉÅ…ª¼Ü -Œ¥²²Õé÷©ŠÏו”¨›Š‹‰§ªªˆÒ•–ªŠŠÔâÜ®ª¿ß•—ǧÊÍÕñ¸ª‘œœÕö¶ª«ŠËÅæ«²³ÕÌ™™ªôô•‹ñ¥ÊËÓ¥¦ª -ÒÒÔ̦ª¹ŽÙ•˜¨ÊÈÐŒ±˜ªøøÕìÁ¬ª¦Æ•­ãŠŒÔÅĨ½ÂÔ¡¡ªààÄÕЪ Àåç§òñÑùùñ©–®ÔÍŸ¯¹š·Ïåî®ò -¼óÓÍœ©š¶¨Íµù²ê„¹ÕÏ¿©¾ÿÞçõõת—²¶¬‹®ùýäÍí‚§üö¢ò§’†÷‚µ“¹»Ðµ°ƒü¨Ø™ÑŽÈ¶£ñ»ïäÛѶíÛ -†è³¼ö«ôÛé±ô‹ŒÛл´™ý›áÝ„•â›±òƒÖ­ÇëêõØ»Žë×òáóúì߈ÝÛ°ÿ³ŽíÅÉ±í¸¹ç¶óãüŽÜ܉Ëà»ñí§îìÄ -ù­Ý˜Ü‰¡Ì´’øþμØÍÇÛñ䛞®íË­øµ™¬ï¶áíÆ¼ßî¬û¥¡ìê…÷Øõ–«ßã±Å«Øß ï™ŽúŸÀøˆËŸÈÀ÷ŸÚẢ -íоˆ¶Ûß’ÄãõÈ®Âô艕—À¿‚“³È¹…Ö‰¤ÔžÅ䡸€ÇÛÞ¿®ëª×ãê³ÙÓþ¬¶‚¶¥ÂÁÚÛÉâˋҮ§ÍÍàĦӶµ‘Æ -ÂÆ¥ÔÊšš”ãõõÄ¢ÑÖÕ‹‘ÚÚ¥ØÌê²ê”¢‘©®Ö ÖÕ©««‰Ð§¨¬¨ÐÖ”«÷ËË•‚²¬ÌÙÚÊøüåîɉ²¸ØÉãã‘¢¢åᡲ -í ÀÉåªóóÙ•ùùÊÜÜÂñá¨óò”ÙÙóʬ¬¥›­ÌáÌÔæä¨ÓÓÅ•¬–²­Í™óšªä²•Éɣʤ¤å⢲ä¡ÁÉà¨ã⟔±±Ê˜˜å -‚ô´²²Ò™‘±¡Œ‹Ó††ªçƒƒ•ÁÁÊ€¾€¥¿¿Ò×××éí­Ü¸Ð¹ŽàÒÃù÷õ®òΜåìÙ©Ê™³”Ó§ªè§ÍÒŽŸ¯üýñÇåèÑʯ -ý¿Öþñ¿™›µÃðÉï¤ëÍ¿ÞóüíˆÚ—†˜­ÈÞÊ‹Óá¹ÛÑ´…¥ÜÛ Ü‚š­ÔìÆÓæÈ·£¸í“ԛй‘·ÚÐí ¾‚—ÆõÔ¸§ï -ë–ÿŒÛÚØ×ïÀ±šúÿ¼Ö†›ÖâÛºì†Ú½›ðð£õŽì¢¹„§·ÿРÝþ­¸´Ü×·áú¶Ü܆ÛÛðç›îîý­´ž»øá–š§øô -š“žïÄËøÙ½žïÖѸøëþé¿ìøàÀ«íï°üÒµúÞÒû¡ãŽÓê× ûȇüÜ»ïÓé»¶ê¡Èï£é€öš÷Ö܃ðŠÊö¯¡¨Ÿ¹çè -•õÆòÉĜǵБ̿ô×ýŽŠŸòâÂý¶öëŠÖÖÒÒ¢ãËÉó³‘ɸ”Íͤ±‘ÈÇ¥Š††Ò߯áÈÈÝ©­žÕˆÅ¤¦Æ¡Æ’‘êêÅÕ• -÷¢²’ˆ…ŠŠˆŠÒÞ®ˆ”ìå头ÔÁçà«ÊÊÈñ±‚ÇÓ”•©Š‹ÜÉÁ‚ËÕäíç«òò”¹¹Û„ÃÑä䨲³•ÙÙŠ¶Ûß‘™©ÈÈФ -Á§«Ø¬ÅÚš¸¢µÕ‘’¢à¼²•ÉÉŠ¤¤„Å⢢¡Á‘ˆ‹ÓÄÆÀªââ”ÑÑŠ‘ÈÈÅÄ„¢¬ˆÌ‘šªˆ‰ÑÀ„…©‚ƒ•þñþŠßß… -ûÂËËá驘ð¿ß±ïžÂÝžÝáæ¦˜µËÔ±ýºâêÔÅ•¤ÉŠñ㔿¯þ¨øî»Åßãþ¢ð¡ë§áÛ’ßÕ֦צ„íÂü¦¡¤î„û£ò· -‚·öŒÖî¹€ø½ê×£é̽ÚÖÑÑËÕ÷Ïèü™ÚµÐƒ­þúÖã•™“æÕ°¸àÒ݉•ö¬Ú‰¡µŽìðâëšåìØ‹½¿Óì‡ÁÃëñìƒÎ -¦îę͸¿‰Ì—·ãòæÜÛ…Œ››ñ볆зã賆·á™þ¦¼ØˆÇ›ùð佞­Ã‹ãŸñê­Þ¯Á”Û§Þ»ð᥽°‚°¾‡å­Ìï°ì•úÞ -ªÀÿŒº§Ð¾ªÆçèÆÐöÈ­÷Ñô‡õ×·éèÂåõÚ¿ëÉ»Œü‹àµŸÇêÙÄŸÆñ؉øÃôôÿõÖ”®Õçµ³¦ÿØÍÍIJ¦“·µ‘ÆÆ -†¢•Ê›šÈýʽ‘Èäõõ¤¿¶–ˆÅòššœ¢’É««ÉÕ²’ˆ…òŠŠÒÞ®—ˆÜÈÙ™¼´ÔÎÇç“’’ùñ±ãœÇ£ÅÅò¸ÂùÁœË¥ -ùùò¼¼ùîÇ®œÃ¡¹¹òñììùÖ–œÍÉ–çæÊ³²äãééò–Ëž–ø¦ÏÍ•§¤È‘™Ìùò²¼©ÆÉž˜¨ÏÈŒ³˜òøøùÜœ¼¶Öž­ -§Š’ÇÆÊ£²¢äááòÐЄùȈ¼¨Èžü˜¨÷÷—ûùùÉýüäÞÞò¥…‹å‹–Ƚú¼äóçÊçÌ—‘Ïž­Ÿ¹ÓÔ¾íšüÊ”ù·Ä‰òñãä¿ -­ü ÿî»ùßáþ¢÷¡ë—àë’ßÏÖþ½ìιëà·Ž‘ëËð³ÒþÆö¿ÏàþŒâµõ¬ÅÕšˆ× ôþšÖ£Å‰¤¶§Ú×Á½Š ÝŽ¬Þ‰½ -©†•°®À¯•Æý˱ü¹ÖÚ¹°æ…Ö¯ÄæÊ‡¶»±ûµö¯­Á¡µ¸ú³ÎάÃéõ¸·Æžýëñ郮¶îÀõ¸¹­··àÎúÜÝ•ûë°²Ž -®ÿÆãµøº†­Ï×ã…“¯œêø³’ïÖàƒÈØŽôýÀïÜ»˜ßÂðšúÅ—ØüœÝÏ¡Æþ‚öÇèû€£–ûèšÆý¯Äƒ¨º…Áͨ”߃÷в¯ -ҡ킒ΡâòŒüÎáÎñ¿Íú£ø”——êå³Ù“µµ‘ƂƙÔÊššÈ„ý½‘Èäõõÿ¤¶–ˆÅ²š˜š¢’‘êêÙÜÕ•©¬”‰…ƒ¤¢ÂÖÞ΄ -À‚ÙÙ™©­•ñù¤¤ÄÖÜæ¬ãñÈÑ‘¬³°””ȸÜäÙþ¾¬¯äÃæÊ¸œÙΎ䬻›äåÉØˆìÙæ¦¬£Ã“–ž®ã±äé¶é²ÔÔ’’¢ -øã²åÉɲ¤ˆ¤Ù⢬¡ÁÝÆàÈââä±Ç±²˜˜Ùô´À¬ªÊ–™©‹Ÿˆ……ÉÂØ塡²  Ùâà ¬ ÀæçΧóõ•ùûËä–®”ùúÊæ -Ï—Í›§ó÷ï—¹¹ÉæÍ’‹Í˜¡›ºÕ¶êù²ìÂ„ÙØ£±²±ã䣯·É¾úÊö‡¿ÕüæÖîÂ¥¿×«¬ýúåž«ò‘¸šÑ«‘äÒĺ“¹«Ð° -ÔŠ¥«ÐîÀ•®ƒâ•¨ß‰¦Ú»ä«Ð¶‚í­èÚŽîÙåØâÁÒ¾ôÕô♉–ÞØËûàÜŽõÖšÞ´¸ÍŽŽìÂÝ…ƒÎœÞãã«ñêά -ßÁùµ¸¸–—××âÚÚÜØ‹³µ˜Ü‹¡µ¼˜Þƒû«ñàȵž¹ñ䕞–¹ðÜÎÓ–ßòÛñö¹Þ÷áÔï°Œèù§¥ï¨»ó÷«îô½€ú¹ÚŸ -«¢í±äÑ´Ó‚úûßÅÕ–”߯ɀДî çšÒ¯£é¢¢ú‘øŽöž§ÿ«ÏŸòáâÚý¶ëÒ†€†ÒßϤ’Ò×Çêë¥â±ã©©¡¢‘©® -Ù–ÖÕ‘ÊÊ©ÀÐȪªÈù¹àÔ  ååÒÒ†ÒÂçËËÊÈŽñ±”Ç£ÅÅÃÒÂÂÒРåŽò¥ùù¤¯Ï‹š›«åðÈÎ±Ž´»Ûš•¥’å³É榴£ -æÃšž®å±¤ìééÒÔÔ’’ø¢å²¥ÉÉÒ‘¤¤é⢴¡òÁÊàÈã㥌ññÒØØéÌŒ´ºÚš™©ßˆ†‡Ëÿ¤¡¡Òàà„éд°Ðš -ü õó“úúŽÊ½½¥ÞÞÒœÏÏéüùÒžéܹҹó㤳çËçΔŠÎŸ®²Åºªé’ôüøéϼ¿ÉÇŒ‘Žš–¥ýê«©‹Ù›†ËþïÙû -ãõâ½×¢ØŽœ˜»’íÈØÉΊ”ØÐâ£ðîÕÖˆ—£“Þ‚¦‹äýП˜±¨—ºˆëšÌК±¸‡ú ƒúŒ´üÉæ÷¢é‚ëû°ÁÙ‚­Öì°á÷ -žŠì·ãÐÊœÖõà„ƒ§×áåܪô»ñɉ°«ÎÜ÷⦓­·ÖáΪÜõãàžƒ£«ñУŽÇ«èÖ÷³¸«ÞØðª¦š¯¾³á½‘°Á€æû¬þí -°ÛèÞÓ§æÅ’¯ ø†ù“´ô½Âýƒˆï£Ò꘺»”Œ¢‘à–¸·‘ñ¡Éבó‰Á—½àùþ¿øð©Ö¯®Õ糦ùøØõõ¤¶–ˆÇÅ’šš¢’‘ -êêÒÕŪ«Ø¥Â¡©¨ åýå’€”•‘‰ÒÒ‰ŸÏÊʾ¤ÅńǓ”†•‘ÂÂÉÁ™áò¥ùù¤¯–Ï’›«áðÈâÎŽ¤»Û’•¢ÅØìÉæ¦¤ -Ž£ƒ¤§ËجÄÉÚš¤µÕ’Á’¢á²Éò²˜¤©É’˜¨É²È°˜’øø„ÉÜœ¤¶Ö’œ“£‰Ž–ÄÅÀÉ¢£¥‘‘’‘ððÉØ˜¤¤ÀÄ’œ¬‰Š’ -˜„†Êüý¥þðþ’ß߉··›ÄËËâé©Ù­°Àâá¡™·ÆÏâî®ñó“‹Ìš¥™±Ã²êíšäòäÉÄˉ’ñ㤿þö¨ùþûÉ·ßöÊþüçÉ¿ý -ÉÛïæí±Üòþ»ÌÚ¯×ïµÆœ¡Ë‘ëÓ“‚Œ¾ðúÐàºÆ‰™å½¨²ÄÁì‚䙚êèîÁ«Ê¥¢ÐééžÅ—Ž«ÝÝØªÃ¯ž±ËØéÄšå -ÎØß‹Íæìë¯Ã®åØëÅÁ†«ŽØðü…γ­À™»ÎÛñçÑŽËöܳãцƒöÜÞ»«°ìÃý«ÄžØñ蹞÷«á©™Ïûñò¸™Þ›ñÖ€÷ -ÔúüÐÝÀ×·šó¡úƒåþ«´¾¤®ÍÞϩͥø¡ª€ÆÐþ¥÷Ñœð‡œÛȘ€©ó†â¯¡ôŠý¼®ýןü§û¼¸ÐŸÍšø¶ãÕÔ‘ˆÔ -†×“ªªÒÙÉ„ÂñÅ…©¯À§‚©«“—ù–’¾Ÿ””ˆë‹‹‰ÇŠŠßÄ……¤ À̇å’üüñÞžƒÉ͕󸤧¶Çœ­ÎÊ¢’춸³“ää -¯ˆÓÓŬ–¸ž­¤¦ŠÓÒÅÄ̦¸¹Ùœ‘”Ä’“ʼn‰Àâ†ÃœŸ¯Ž‹“ÇÆŠãâŸÄÑÑ⨨ñ‚䤸¢Âœžð®Ž‹“‡†ŠüÃÂÄÁÁâ  -¸ ñÀ€Øßß›ìç§öõ•ûþû‹½¼ÄžžÉâ…‹ÄžžâžùóÄîîâ·¾·ñìÙ♳ŸÅÓ§‹§Î•ŠÏš¤ž°Á¼îö¬ø‡ŸÄ£îÇ‹¿ùÆüå -™—â—²ö’®Ùùýæí×Û𜱡̄¸åà”®Ã†‘œž”—ô Ä€ÁÒÔԮŞ’¥Ùê ÛŒ–î´šé±ÈƒŽÎôìõÂß…åݰíèà×ÃéÀÏ -нØèÄÖ“öµôâ™ûûð¡¨Ç­¸±œ¯§—ãÜòôÛ†ñÉŠ«ÖÜ߇ޛËñ빆̭˜êÃðŸî—›ñ —ÌøÖâijž¼°à啞¯õøÛ -‘÷ÝÀ§Ð¬Žú¶·èù¡Ù«ÈßÀòŒ¨µÏÐùˆ‚‡î¨¹‚ûàÜÂÅÆ°ï¡îþ¦Â®ÃçêßÛä±ÿÊ‹‹õŸÙ¬‰ª«ÅÕîÕ¤²’ˆ…¤ -”—“€Ï”•‘ÒÒ‘ŸÀÏÊÊÈñ±áññÄÅŤ°ì””ˆ¸Ü’Ÿö¯ÊË£¹¹„½Ã‘åäììÐÑÖ–á³Å™·™¢ŒŒ’ž®’â±ÈÚš¨µ -†Õ”’¢â²Éâò²¨©É”˜ ¨ÊÈ Œ†¨à¾Þ”—§Š¾•ÅĈ¢£ÅŒÑÑ¢ÈÈÑÄ„¨¼Ü”–¦øŠ•…„ˆ‚±ƒÅÁÁ¢ÀÀÜÑÀ€Èßßä -ë«òñ‘ùû÷‹¼¼Äžž¢ø…‹Äóç‹æýÍ“¹»‹æÌ–‘Íž­š¹ÓÔ´ã†èÚ´ÑÍ”©¢‰“ÅãëÇ‹þúÉôÃ΢モýýçµè˯Åÿú -߯¿™µ÷ðÉáï¹ëîËỸ”áúÄéÁÜ‚Œ¸º”¬˜Æñ·Ê´öÂÁ¤ÁݧšÔ¶èê€Ü…ÖŬ´¿°³ºŽôôÂÜ…Û·”œº¬Ý‚Ë -¯±Ù€í½Øå£Ä¾å¸è‘ΓŽ÷âԯΘñÞŒ‹æÜ†¶ãª™·ú±×Ћۦܱá¥î²Ü³â¤‡Èø¼”Ï—ó๎¯»ñª˜‹ïºñ®ƒŸ -ýÚÿ™ËØú¨†Ùµ½ÁÃë¯Ô½„蹄ÏÚÑö˜ÅÐðŽ€œûȘ†óÔˆñƒˆ»…ßý›ð»ö·Êš·ÈµúìÖ„Ÿß«¢‚”—“߀”•‘ÒÒ -‡ç“’’ÒÜÌ€ø¼ÒÔ¤¬¬Ø¤……„Ë¥ù·ù¼¼’›ËผáÎŽÉÎÀ–æå‘¶Û˜ñ™É²²„ééû„Å’¦¥‘Ô¸ÔáʊɤÉɤ¤áâ -À¢ÉȲ˜ÂáøøáÜœ‰ö•ÆÄˆ££…ŒÑÑÂÈÈáÄ„°¼Ü˜–¦ØŒ•†„ˆƒ³ƒ…ÁÁÂÀÀÜáÀ€Ðßßèíç§ôõ•úøŽˆ½½…‹—Š -„½½…‹–ˆ½î¼„óæ‰çΆ•Ι£ôó“‹Îš¥œ±Ã¸êíšðÊ”á¤òɉ“„ãÆÄ‰ÿüѸ挚ðÔ¨á×ß‹ë¿øÂèÂÖð½Ö¥¿Û¬ýú -œ—óºá«ÅØÞ—âºÀÔ £¡“úƒó»ÀÓÓ¡´•‹Ð­£¤‘Ê’…¤­ßÉ¡£Ãü¶ÃÔ»åØÙ…ÕÚ…¬ÛŒÍºìÝ«‚úìÙŠƒ -ˆ†œ¶àØÎ÷ôà´‘çŒèæ·â’‘׌¸×Öƒ›½¸åÀá Ã˱¬Çùý¥ø Ã£Åîø¢Å³®¼è«ÄËŽ¼îÇÛ’¥Þ«èä°äÀô½¤ïé¨ -ÒÕõ«Ô¼Àé¾³ðž€û˜úŒºçŒ€ùñ°÷‘ö‡¾·±ÚçàïõÌ¿å—Å…úìÖ„ŸŸ«¬Œ”–’¾ßŸ””ââ‡㑢¢ÒØÈ芊ˆ—Ëòó - …ùù¤·—𰸤§ÇÍë²²ˆ›­ÈÌØ¤™™‚ôô†⑴´ÁêªðÉÉ‘°™‚ä†ä’”¤È̤€‰‰‚†ÃŸöÏâℱ±‚ᘘÁô´‰Š -€’ÄÆŠ¢¢„áá‚°°Á訠¤ÄœÌû‚‚„‚€¾€ŸŸÀ××›àã£ðö–ø€ù‰–®”øú†ŠæÏ—øøˆÛæÍ“¸»‹æÍÌ‘¸¹‰æÍ -–’̘¡˜¾ÝÔ°õªàòäÁŸÄ‰‚ñã…ãéÇŠþøÁðýË÷‚Ñ£„ÿùç‹à‹¯„ÿòÞ¯¿µç®ùÔ½çíÓܺà«Âػ◡ÆÙ‰ô¶ä« -·ßŠ¢–ðå¨àïÆå“ĨÀíÀýښѮÃ׋ôЬÎÓÂÒŽ•ª¬€Òãí§¶ôá‹–Û»±û±¥ö­ÆÁެ“Áñ¥¸µ„çô¸¯Ç…½® -¶¯ÁÕ¥¸¾„ÔƒºÜÞŒ»‹Úñ·›÷´˜éãÂÃμÖã©®ŠÏÛñ‰×ÊŠ¼éÁ»™ÞÔ·‚õÀ퇈×Þ¡ò­Ê߃¹ÿ’ÅÏ‘ÿŒ­ÙÏþˆÉ -°ûŸáÃðßœÁ¿áƒÿÙ”——ê³Ùã†ÿ¬’’ÒÜÌ€ø¼ÒÔÄŠ‹ˆÉÁáòÉþö¾ÉË£¹¹„±Ã¡¹¹üììë’•ÅØì’™÷ÉÏÈ éé„ -¿Åâ§¥‘ÔÔ‡’’Âç²ÉòȲ¿©‰¤¦òø“’ˆƒÁŸçÇÅ‘ØØþÌŒ¿ºšÄÅÉñ££ù‘‘ü‘ðð’–Æÿ凄ðƒƒùŒÁÁüÀÀþÀ -þ€ñ÷çûùñ„ýýù¾¾ü¯Ž¯þÂ…üÏÏûþ‚…üùóùôžžüùóøî“îü¹óøîîÍüÙ³ø³çòõ§ÏçÏʟ²…¿é’ÿ¶„þ¸ñüŸþ -Ëâ™ÃŸ½šÿÿí·ü¯¾âãÿéÏüײöýÀ¥¿ó¬Ýÿ‡ßݽüÚªˆÇ̳’äÈëÊ‚»‘¹Ò”Ôͣ؂²ÚÔÔá Ê„Éšë ìÀç£ô² -³ôÈáî…µ¬Ž¥Ö´ã½Šõ›º°ÍÏØ«Á®œî±­ÎèñÚ‰‹óÚôëñÉñ‹«ÚÜë–®ÜÒఓØêŒ÷ྊ‹Úñȉ§íø -÷ÖŠçò¼”á”õ£Þ¶àÝ¢¾Ô€ÕÀÅûË”½Ãñ›”¼ÚÂî‹°Ÿ£í’©’ž£æ¡ÂÚÇàóï×›ùéÛ¾™¾ëõÙ¬ñŠŠÈá¡à©¨ Ü®ÉÏ -¹ÿ¤¯äæ’¾Ž‡ääììàÞö–¯«‹Ç¶æ“ÌÌ’‘ÁëÒÓ‰‹ÅÒÒ¦ø©©¤¥…°·™¼ää’”Äà’“ù‰‰„ÁŸàÅÇ“¸¸Þœì¬‰‰áÅÇ -‡ó¢¢È䤯’¢‚—‘΋煅ñÂÃù¡¡¤¸˜—”ÉÄ‹Œä…„ðƒüýùþþ¼ßößžñöæ¤ùùñ–®ä­öØÀ›¿Ÿçá‹Á›··÷® -ÿÏÝçæÆ›Â½›·ë–ïÆÞŒÞôé¼éÓÌøÓ¦ð¦Íâ¦ÍœÈ›¿ž·Ìö¬ïÇŸùß®ÿÏûî»Þ·ïßðþüçÞ¿õÿ»ïÿý¯ßûÎÚ—üþ³ -¹öŸ÷äՀஉ¢êЋԘ±Í…Ì©Æþª¥ŠªÀ— Â¹€Ú¡šª¡›££ŽÝõت›…©‰Ë›áïÓ³•¿·á£€’Û–áÇ»ö›«°Ï…ƒ¸ -×ÒãêœÒãýŒšçÕ¸ Æ™åŽÜíÀõ•Šîªð»÷–Ûá®’÷Ú°Ò³Š‡­øÜŒ§ØÍø¦Å‹ú¼ÓªÃ›±ÞÖ㉽€æþ—õ½ÇþÛ伦 -¶‰Ž©¯ðŒˆÑÏüˆÞ½þžÏ™òâÚøý¶ëÜ•Ÿ¦ÏòòÈîî§ìœŽÉÉ¡ÙÙœ¤«‹°Ù¤³Ù“ääôô¶⑴´’šÊ„ÒҸ̦ÉÎ -à¦Éɤ±‘›ÁÀ˜Œ’ŸÏ›‹£±±¤¦ñ†›Í¢¢¸“‘‘¤¢‚›žñ΋£¡¡Üî𰉊Áↆòƒ‚ˆý¿¿×ÏëëËõñáúûó -‡½¼¸‹—ò½â½¹‹–ðçÏñçúøðçÍãçÎËõ÷çÎó™ÃõóãΞ‹Í¹“»ã†ú÷úôîÔ©ÜŒ©Ó¸“¦ñ§–Î䎟ϻŸ–ûãܱã -㸣ÇóÇâÚþýµ÷˯¹ºÿü£×•¬ÝÒ÷É¿ËÖþ½Â©Ïª„Ö¢¢Æ‚ñåÈ®ƒ‹ë¬âä–¡ ¸€å¼ˆøŠ¡Ð¢Äûµºê£°¤–Ɖúš -Ìàë„£‰ëší±ÞŽÍ­ØÖéŠÝŠìíØ¶œÖ☒§Í”¸­Ä¹¥úŸ•¸¨Ä•¶Ü‚ëÃ…†Ú±³Ø‚¡¹†›ñ±¿‰šñ¨±¥øÚ‹çµ -¬øÙ×¼‘àŸŸøÀ³ûÙïÀú˃ä׈ÿÉÓüœƒŸÂóñßÙé¡ÿÊ‹‹õ³Ù¬ñþ­œœÛ’Ͳ²ˆ›±ýÉæ¦ÉÈ éé„Å¢éé -œ¤µ•¤¤¦Ù“¤§“¤¤’¡˜È’’ˆƒÁƒâã¹ññ¤¶·–ÄÄð¢£ÉœÔ”‰ŒäÄăððÎØ˜‰¾å„„àà ÎЉŒä„¼„ðüý‰ŸŸ -ÿÇ×—ããÃñ±ö¦ÞÞœ…‹Ž¹žžœ…‹¸Ãóç󼼸óýæñæÎ帻¾óæÌḹñþæÏæÌšÅ™Â¹“³ã†çÚž´ÎÔ©œ©Ó¸“¦ñ¦Îä -匟ϙ·Žó¥ÓÏœŸþàüÝÿ½ç»ï¸ßŽüÃùË߸ßÎþÉù㟹ÿµóÿþöÖúÝíòÏ”µßïË‘£„þ¼„•¢×†‹Ä¼¤ò·‘…ÜìðóÐ -°Õ€É±šùКŠÐ©Ä⪘‚Äè•ãùÖöʰºë¤Ø×؈­ÍءÕîæìëÆÁ¹“ŽÈñÜŽÓòÏœ‘㼜—俸Ԍ«Í¸®ëÃͦÜêÄ  -è”ø§Áý˜º¼ã‘ˆÏ˪ð̈—‚¼Óâãõ±Þ–àÄýžä€©§ï‘ø–±¯‘ñöŠþ¯àñìï÷„ÿÏÞþõ«¾›µö¯•Á™É²²Èúú -À§¬–ÉË£©Ï©Ÿ¤¤¦“줧“¤¤’˜ÐÈ’’ˆƒÁâ±ãÉÜœ‰¥±±¤ºšÄű££ÉÄ„‰°§ááìÐЄ’’ÂŽŽ¦ÁˆÁ¤°À -‡üýÙþþìß¾ßâãÃööæìûù‘…‹Ùžóžì…‹ØóçØ“ö¼ùì½¹óÙîîì¹òóØîîìÙ³«Ù³æ±çÎä¯Ï˜Áž¾½èíšûÊ”öä -›Éìɓؓ§×²Çç›ÇËþé§ö¿°«ÇŒážÍžþµŠýõ×쯩¾âÿñ…ûœÿà»’µ“®¿ùçÊÚ¯·¶€§›Þì„å €²ñ©ÈΠ-¸ö𸙍ÈÁôížšŠ à¡±ƒí™ô娆¦„¥Š«ÄØæÕƒµâì¨ÃŒæ‰¶Õã×½…ö¶àÀƒŽËäñÔŠ“Òœ–ë⬔ý¸Ø­€«õ¸Ö› -œ’ŒÔᶘ÷ˆêðׄûÕ˜â‘âṞ—áÄ©ŸÏùøÙ€Ø×ùø“ƒ÷™ƒø†¤ñŸâùŽÁïáõÈšóÞþÝŸï×ÿÉËïÕç³ãÆúØé韤 -¯¦’””Ϙ̛’œÌ’’¾Éð̤‰‰„Áøü¤¾žÄőذؒ“â£ÉŒÔ”‰Œ¤‘‘ü¤¼œ„…‘ЀÐÖȈ‰Ž¦ÁÁ¤°•ÆÀüýÙþþÄ -ÿ×—øø°¼½Ó‰——ëá–™§§Ù°€µÿþ¾ËÃ̛Çýš»—åîΚγ‡åæÆæÏÞæÍšÅš¹“еã†ëúôִ鬩ÓÙÓæ°¦ÍâÍœ -‹Èš°µþ¼ÊëìØÖÏ¿±†þøµæŒë­ôè֨Ѭﭾáý寬¯­¿äýéϬÿÝû·ÖÿøŸ¿óµƒ®ù§ËÚýÿ½Ú²¿”žþш€£ -Š™Œ”¤Ãó†šÌȳђ¡‹ö®´ÅЕ㣇ó™¬åœØÙÕ•Ø×ï…ÕØªÂŽŽšì®Á¾±ŽÙŠñÄŒãâœö”㌘çĸÒЃ˵¸ªÂ -½õêܬ­ʨŒÖਜÃå¸Ïǃ⼪¹Â“®žåâÅÈ¶ÞæâõšÞâ¦ã½ƒŸ¢€öÐÀï½æ¿û×›¯„üö¹°öÜ«Ïæ™œÁüÉÒ’ÉÌü -䤡°˜ŸÄÇ“¸¸Ïâã¸ÉÌŒ‰Žþ¤²ªŠÄÆ’ˆˆ˜’žÎÂÂÈè°¨‰‰¡ÁÁ¤²¨ˆ„†’€€ûâïÏüüˆ¯Ž¯ÓLJøû“ü¯¯æÂ…ÄÓ -Ó“¹à™¿ŸÛéáÁæÍãÎÝËÜÝ™óæþ°ÝÜÈìÙ̆ٳ˜³ç²ç¹ÌàΟΜ¶¡¹õªóÊ”ïæäÉÌÉ“˜À“§²§ÌàŽ’ŸÏœ·Ž¹ö -Ö¬óÇŸ™¿ü‰Àœ³†¹ú´ºóÔ¨æ·ß²ß¿þšùÕ×Ìú¯¾àþñÌêÿý׿ÿÿï§¿µí®ùçïÌÚÿ¸Ÿ…Áˆ‰€«Œùщà³Ð•ŒÉª -ýš³ Ì‚šƒ™î¼¬åÂÔˆ´‹ö’¬âã°í™¶ˆ°¹œÍÛ«°«‚û…¤¸ Äá¡ŽŠ¬ñˆÓœ•â¿‚—«ð¹ªœ×„¸Ñ†Œ¾î—àŽ÷ -œ‹ñ‹‘¼¼Óäàñ–žæàùªÞ¤ã•ƒ¦ï¢ñ®Œïƒ÷€…øÿ²ÿ¸ø‚Ì×ê³ÙŒãü¬øø’—‰÷Éìì§±±¼¤ºú“¨¨Ï€¢£ÉÄ„‰ -¹ÿ¤¬Œ„†þ˜’’‚ƒÉÐÀ‰Œ¤Ÿãøû“¿¿âëØËüüˆ··ÃƒË‹¬Üȼ½ÓÉ‚…äþü†õ‡‡™·Ì¡Ëð÷§óæ°¿ÜÜÈìٌ٠-‘³˜³ç’™³–˜Ó§³¦ÍãŠÌʦÌáÌ—žÌ˜´‰±ñô¢ãÂ„Æøñ¥Œñã˜ãDzþþú‰ñ㌨±ã˜ßÿϘ⽚±ê”ãÛðï™ßÿÍøê -æ«Æ—ß²þôú§ÆŸþÀø—üÿáü·ÿöÛìÙÛë’ÿÞ¬‡ý߉ãú¡§¢€¼°ÔÄ¡¶æž‰èÍŠ³…®Ì¬É‚±¼‡ý¹°åÃÑ¥€µ…Ø×„Í -Ø¼ì­ÆŽ’ì¢®Á¾¾Žòñ÷„ãüœäãœÌ‰Î•౪®ñð¥ˆ×‹Úñ³€·ò±˜£‹¡œŒçáþŒ¦ž°ð¨…Ïò’ñ´žÏ£ðô²Œ¯ƒðÖë -½ÿÝÊþãÞ™‹®Õç³–•‰õÉää§‘‘¿Ÿ„‡“°°ÏÀÂÿ‰‰¡ÁƒÁŸ„…ý’˜°È‚‚¾ñ÷§œþþÄ×÷“ŸöŸâíͼ¼ÈŸÂ…ÄÓ“¬Ø -†ÀæÏ§žžäÞ¼²÷®ñ÷ô§óæÄ»¹‘¯Ù³É¬Ùѳ²ç’™³¢§Ï¦§Ó¦ÅÏʦ̉ž¼¹úáÒ¤²ñâô„®‰ÑãÇÇ›—½öìôÏ¿ -–Åÿøãô¿òÄ™“ýý÷£Ñ£ÇÇÿ÷Ý›ô¨ÑÑßü“ýõ×Ñßý•ýå—Ñßü‘ÏýÇÿ¯»‹ï‰êŠã¸î£ †Á†˜à†Ùݘýßç²ó -…¹€ðцԘ„ÄÅÆ¸Àß÷ûФéšô¡¥é״횶˶±ÆšãŒ­Õ˜Áè´ê—Ôª­Ë­ëëòííæìš¾þÕÊ¿œð§°‰¿×¥Šæþóù -¯˜—É̹çþ‚óïÌñÏÑѽÆÓ£¤µ¯Ô”ùÞÛˬ¼ÜŠ×»©ñÆ·ÞÚ‚÷ÇûðÁ€¾žÂ¦ç«°å˜ÛÆñ°ã­ö­Ã—Ãë±ïƒŽìÄ -¹ø¨Žâè˜ÏŽáä˜Îûáì˜ÎâÂØ¨®íÄ•¸½ºž××áæÚýü¸‚Ÿ†ñóʪÜÂïƒø£÷–àþ·ÿþêÄß­øç¾©Þ˦­ºÇ -ñÙäíÍêìäÀººä‹—òí±íÜÛ›×ÚÊö˜ã’É®¥…èë„×ԙĵ¶’††¢±ŠÜý½©«£ÿµµ¤¦†«®¸¦ÕÕ¤²’Ô˜ÔÁâñ’ -‹‹‘è”Ä¢Ò€¸Ì¡’ŒÊ­€ñû¥ŸÏíòú‰Ç£¹Ýó’Ë¥¹’ÃêÁìöÉæ“¬ÚÖÉâ‘ÌæÉÖä’ŒÆÉà™ôúɧ“ÊÊ⤭֪¨ò -ïó¥ùóŸÜÚØ¦Åތֲ‹ªû¥¯§ñæþ»ÞîÂûÝø¨—›–áó¿É¶Žâûö®ïÄîÕØ»Œý°ëðð„‡Ò¸§’Ʊ´Î¤ñÒª³éœËã -ñÛ‘Ü܃ËÃùøþµ®­ÄÚ¡ÜšÄíþÜ’Ù†ßúñë·þþïÂŸí¸—çÄý†çÓÙÔ˜ú¥å“µµ¶š¹É¤×Ò¢ëòîæ’‰®©‰„ëìäšš¸Ñ -ßäê빺º®ï¶–«©¡ÕÕ€ÜÕ•×ÙɪҪˆ ðñ¸‰ÅÈ´Ê¢‘’ªŽ“Ј„ƒ¤ð þ¿ñùˆ“×˼žâö³»—‹¸Ìá üö»³Ù˜ÕÊ -°¬–ÒÞÎÌæ˜æ²±£‘™Œ‚̯纫­ÖåÅÅ̫充…Ì£áùù¬¤§§óüçžµ‡µöŽ¢¯Òë‹™ÅÍÎûÉü³ØŽÏºñù¢€ìÉáÛ¯ö¬ -«Å®¾ìÙŽý™ý¸°€ñÁœ¦žÄÑ•¸¾‚¬§×àô ÎŽóâü€®ôãÒœòüׇ«Ëñ‘½—·Óøá‘¤î÷âλ‘ù‘Ïö¥ÌñÙäíÍœšú -øúÙݬ¶–‡«©‘Õ×óÕöÕ²ÊÊ®¢‚“„®žçⱄ®šå¢‘®œÁæÂ¡’Œò¶€ñû¹Ÿø‡½Äã¡î·ñ‡¹ˆÓÉœŽâÕ·“›Í´Ú‰ -­ÅÂÊËųَ´™ˆÑ¨šŒÜâÙ™¨×“°Î¬©‘‹‹Å­Ö¬ª’‹ŠÒįܰÀÌÝÍ•çÍ›ºåû¬‡Î­½¦È›‹×ÚÖî¾Íðàó’ÛÛ°½ -øƒ»¥ìîÂÞŸÅØßƒ©œ’ÊáÈŠÇúðÒ¢…Ó©œÉá´Ü·¾ÙŒ‹Ý帬áʇ®µ©áÆ’·’˜ØýÍÛ¨ì²Á¶¦Ìμ®‹“Åþ£š•Å¢ -á²ðØ–ŠÉ‚°ÁÙ  óû¹ŸÏæõòž¡çöó®—çôÐòŽ‡ç·“›û³Ú‰Å•ݗ“³™˜ÌĀ褆ƒ©«“½ôú¢Ó‘ÒÒƒ¡¤Ä¨®¦Ú -­ÐÔ¤”–Šä……‚Æ£äçà‹ùùÂ“£Ì›ÙÚ‡îøô§™êíÖÌ‘Ùóå¼£è¦æÏ‚ûÚ´ð ‰ñ†ÃŒ¤Ç™¾â¸ÉðÆº‰¯Ûð¾ -ù™ïù櫘¹„¨ÁÙäíͭ峵ᓭÍÅËíâ…ú”™Ú³û®¡§ö¡®ªÙÞÙìâËﺕ͜™­©äžíçÛË̅푚ս÷žÿê”Õ֞Ȇ -ïϼ¯©ÔÓ¨Õ­½¾¹Ùþ¯©ÔÓ¨­½¾ùõÑÐ¥„ÚÚî“¡†¦ú ©éÖ¦Þ¨Ôªÿ½ÕÃý—¢Žº­ê¼Îü‹‡ý‚…Ü -] -::^ [s0; Pop`-up color selection dialog.] -:: [s0; [^topic`:`/`/CtrlLib`/src`/ColorPopUp`$en`-us`#ColorPusher`:`:class^ ColorPusher]] -::= [s0;= -@@image:300&150 -€ƒ°€˜€€€ƒèÿ€€€€ø½œûóòƛфĈ­Ù±óàÿÑÿÿÿÑÜÃè°ð€è€¬îÑù¿À€û蘟¸Ä¸ç¿ÓѨûÆÝ³êÝžÑ÷ŒºçÔ -‚½ÔòÝþ¹÷ŒˆÀêž–é—‘šû†ÜªäÁÀ†ÈøÐÁ€ŽÞ˜á -] -::^ [s0; Color value and selection using ColorPopUp.] -:: [s0; ColorRampCtrl] -::= [s0;= -@@image:729&618 -‚ƒƒ€ï€€€ƒ‘ÿ€€€€øÏœìÕçóšë›¢çû¿™¿ã‡æÌ̹óöÞ¾ùí½‚í•쬯¯çœó–ì´ÙÖιçœó Ä’ ²è€µÍˆˆ -’ ‚ˆ¢™èò•Æ÷«îÝÛÓð÷Ê糯ÎÜ¿ªó«Ï‹î—²ÝõÔýë©öù¼×üüøñÈÕÿ³ÇûÅÿø÷÷ò÷ÿ÷Þÿ„ø÷õŸ¡¥þñŸ¡þ -ýñ¿‡øŸ÷ïîþ°ÿŸºò¿û³ÿµÄÿÖç³ÿ±ÿ»ÄÇ£Áÿ©•ÇŽ‰‘ŒÌ¤’ñø²–´ËÆ£‡¯á𰲔ʆƒÉÀæ é÷§ý¾¤—×›ôø’Ÿ¾ -¼¤Ý®¤Ó™ô’¸’öûÒæË­¾ÿŸ´Ú“æâóÒäÊšÉÿýý¤ÁÔéÁ’ÚíòﯩÙѤժ¤Ò™ÛÜÝÍÊåəެ¹³“”È’€âñòû»©” -Φ·¶’‚Á’ÁÇËîœ›äÆÆ’Åʲñ™É˜ÎÒéÉãõõ¤ˆ¦×Ö­’€¤Ð’¤²Ò’ÀÈâñÉŒ¬¶‰Á¤×Ö‘’¨Ô’‰Ì®¸®¦‘ˆäÜÜ -àò榹µ•œ˜ÈŽ¥ÇÆ¹’ÃÃÉäìïï²»»ÙÙ±™ìë˶´¤ä››“õõÉš±šäå岬¬ÄÙÜœ¬¨Èææ¦ß½Ëæä¾¤ÓÒ’ÏŸ§ -øŸ¿ÎÞ»—¼èõ«ùåÊòÜ÷¹ä©ÓÉãÇù“ßÿüýïàÓˆñµ•‡…Ãøÿ¬‘Š¥‚¹ÁÄ ðû“Œ¾ßÂëÍø¼Á‰Ÿ’î÷¡é̸œ‰»½ -šá³¥Þ¿ÏØ…­‰‹¥á²¥¯ŒÆÄþþÂàÖÈèõ‰­¶±‡·—Ðè’êõšÂ©Ìì»Š„ÜžØÙÉêÈ¥‰‰¤±½…‰’ÂáÂü Èðù‰ÍÍ -Þ„—›ØØÈ°‘Ù‰¦³Áःèô„„¥À°šÁ£¥¨Ô„€¶¤Èä„‘˜ €’¸ÜâõµÃÁ¤Ö֒˿ˉ¥¥ÄÂÂàâþ¾±»›˜ážÎÌΦÆÇ -þ“££‰ááÄíàࢿ¿ÑÛ‡›èêÊôô¤ûÚÚ’Í͉ƱÆÄÝÝ¢ºº„ÑÑ‘¨­Í”Œ—§òó“¹¹¥‰÷ï’ïÞ¤›ÒÒ’ÏŸ§ž¼½ÊÜ»—¸ù -ô³ñåÊâܹ»Ä©Ó‰ãÇ“„ßÿÈ©ÄÆ–ªþñè´žž‰ÄÃáø¨Ø”†ãÀܧïûüñ¯·çîñÄ¿üˆ»ÕÝñ—«îðÄÏíö¸Í–ÿÿ -ì¾îµÆ­–¸ñÙœ·šãûûºñƒ¡®×ÇõçºøÞÞÜ£‰««Õñ•ª®ÔÍÆ•Š¸Üž—ÃÉâÒéÜ¢‰‹‹Åñ‘¨®”ÏÆ·¶âüþœ‹Ç‹ó¹ñާ -³¾±‘ç±â̌朆ãôúüøý½Ž‚ñµµÔ¸€Ä©”¸‰ˆ”§’ãøüœÿ‹¯®ÆÑèช•Ǣ㋿‹ñ……øüüÀüö¶¾½ŸŸœŒÇÇÇ -¿ãÃÃñøìßß¼§§ÞÕø•ïï·¶Æç››ãñÚ±Úøõõ¼¢¢àÞÚš¯ªŠçóçÇóòâ™™Ùñ·ïâ¯ÞÅÅŸ½‹¿ú”¿è÷¯þóæüÊ -·•ø¹óñ“§¿ãÇÇ¿úª­žÒˆÊÔü›Ä¡â‘ȬœŽ……±ఖˆßÄüþ˜Ï—óðúãžÏìÇ“˜Ûó¹âÎÚçÌîÙì±£÷ïãÖëÌâ -—‰™Í±“©æš´ÆŒ†˜ÞŸƒÓéâÚíìïꯦÖÇÔª˜üÒ™ÛÝÉåÚ±™¬¶³““€Èââñìû»œ¦’Ŷ¶â‚ÎÁŒÇ‹íîÆï¸ÜØÆÆŒÍ -…ޱ™±†£Æ£§Ç ¨†‚±˜š­Æ¥Æ€ ÜƦLjʆÃáâØìŒÿƒ‰­¬Ä–—ÀãÈäìñ±†ŽÀÄææâ³³Ÿ±©©ØÄÄì€ì¬¶²’›š -¹ŠŒÄúúâŸÝݱÎÎØû¶û¬¥¥ÖÔ”ÿ«¯ÕÖÆªýªâåå±’’ÀØÑѬ¯¯–½ËÌŒ½þ´ûõªöìÙÿìÑ£ØÝ»±è›·â—¯ÇÎ -‡ž¼™»öö¬öÕ×±ßýº®…©ø·ŒÂÄÃá訔솣ÀÔïÓúüѯ·êññÄ¿üˆºÝŠÑ—«êôÆ§Ž¨Ýžýÿ¾òêµÆ­–¨Ù -Œœµ™¢ÆãôÌÿ¿ª×Çõº¹¨Ö›ÝÛ‹ê”´Ñ•ªªÔÆ„÷÷£ŠÅÔ¦÷‹îìÄ¥Ò¨¼Ä’ÝÞŽŠÄÂÑ¡°ªÄùÕü¨—åò£¼œÎ”ÍŽ²Ø -Ѧ³ŠÃѺ潺¾ž…Áè‘ÚÚ”€¢”Ê•”ÄŠ’‰Ñ¼Æ¾ŠÅÆ××£˜èô”…Š®¯ÎÇ—–¢‹‹ÑùùèììôúÀºº¹™ŸûŽŽÆ‡‡£ƒ -ƒÑþþèïï›´»»ÚÙ™íŽë‹¶´Ä››¿£õõÑššèŒÕÕ´¼¼ÚÒ¸’­¬ŒæåÅ—³³£ï߯ßÇ¿Ž¾ü™ýúö´úðáôîÝûè›ÑË—£ -²çÏÆÏžŒžœ»–ýê«èÊú¡ÆÓñ¿†øŠÿÿ‹‘Ш’¸ŒÆ‚ˆßŸãñù¢ÞïÄ㥉üøñ»£œ®×Ä錸œÒ‘»½â³Å¬§ÖˆÅ’±›£ -ô¦ÓÄèŒìïÌÇŒ†ˆÎ—Ñ ê£ûû‘¦ù¢ÖÇ”ÊÈî¼îÄ¡ˆÈå‘É™¬¢•Ƥ’‘ˆØœ‘‰¢Â°áäë«ÂçÇîø¼Èææ„ñ‰ììÄØìˆ -“™á°¢ôúâ„‚¢ ˜¡Ñ€¢Ôê„€¢äŠò„ÄŠˆ‘Ìœ®‚ÅÆ°˜³ÈÊÊ„…Š ‘‘Åň‚‘ß™›‹ÌÎÆ¦ý§£““‘ññƒÈèèäø¸² -ü¸˜éïôôÆÄºº¢‘ã¶¶Èóó¤±ð±Ò×—©©‰ØÔÖÆÊÊ¢ÅÅ‘‚‚Èî««òöí¤ì½½òòåäéŸÓÈÇ‘»÷À¢·îĮߎ -œ½›¹ñ¢òìØä«¯¢©‰…ØÊÅá·¢œœŠ…ƒÁð ÎöûÃ¾ßØ‘ëû¼áŸ™Âî÷ØåŠ»åᇣ췇Þí¶ðû÷á‹è¥ì¶‡Í¦° -јÞß›Œúá½¾¬Õ†÷£öÂšÍØ­Ž©«Ôᥲ¬ÐÏ„åò°Ì–ޡىˤᱸ³¼½–‰ÂÛôÛá Ì燄··ÃÜîøãª£Ìæ‡Ù¬° -̓‘†á°„…‡××Ã´Úøí€­Œ€áŠ¥ÌŽ¢…‰Ä°žŸŸÆá««á´†º¼²’ÞÞŽ¤¯­…—–ˆ€Äøî®¼³“ãžšŠÏÌ„ÇóÆÂ££á¡¡ -ÛðÀÀ¸¯¯ÜíÓ“îꊷ·ù‡ÛÛÃÍÍáㆆðÝݸº€ºÜÑ‘®«‹ä——‡‹ŠÂ¹¹á¬¬ðÆÆØ¸½½üâÅø¯éÓðƒ‡á»ž÷Âׯ‡¯Ý -‚ŠŸ½›¾ñ¢úüìØø«¯Â¾©…À§â°á¡à°”ˆ„ü—þÏ—òúÃüžÏèÇÛÄò¹ÂÎçÈ­áˆÙí¡›­ËôþýÈê™ÅÍ¡“©ä´† -Ãö÷ÆÃȯÒéô¡­¶¤ŸÑ„ÔêÊ•ØÒªÃ»»¡¹Œ¼¤“…öö€ÒéȬŽíï‡Ä¢Ð˜’°ˆÂüþˆÇ‹âñ¹¡Ž§´±„‘â±ÂÌæˆ -¡†Ãôúˆ‚ÂŒ ˜¢ÑÂÔê ˆ€ÂäòˆÄÀŠ‘ˆ¡œ®„‹Å†°˜š‚¡ÂÈäèñ¶±´°šŸßÍΆ¦§Ã“¿“¡ññÐèèÀèø¸´¸˜ê -ýïõö†º»¾Ã¡ööÐìË˨©©ÔÐÆª­ÕׇøªªÂ¥¥¡¢¢Ðþþ¨§§Ãôîݨ££”éžžúñ¢ôä¾ÉèÁƒÐ»×¡ë××®… -‹Îœ‰¸‘ºüú´ôå—¡”†Â€©¸¬Ä°¬ˆúýÁŸ¯óèõ†½žà‡”Á·»èò…ïΠÑ´Ûùƒ¶Ûðýû •Õš´Ø‚¦Ó™ÐèŒîï‡ -ó† ÞŸÔé‚ ÚíðﯨÖ̇ժ Ò™Ü¡Ýª”Á™¬«¸³“”ʃ’ÉÐ¬ŽŠÄÁí¡°¸µ•äóÁƒ¼Þðó³È‘á„·¶‚ìöƒÉŒ²˜Á˜ -€ŽÂÐðý½È£…×Ö‚€¥¤Ð‚¤ÒÈÆŒâñÁœ®¸™ºšÄ£ƒ««ŸÁååàÒÒðäñ±ˆÀ„çæù‚³³Á©©àääðü¼¸º€šœžŽŽŽ† -ÿûûƒ½½Áî±îàÇǰ­­ÃØÒ’ììŒÖ‘ׇëëƒÕÕÇÁòòàéé°í¨¨˜ŸŸÌÉ’‰¾û—Ìø“€ÌË‹¾ÿžüíò¤øàÁðößíàõëÁË— -¥‚ç΄Ϝˆ¸ž½šüòËàˆÊ¡¸©¸¬ÄËÀïøü¯†·àñ„¾üˆ«¸Ý—«àô܆œŽ€Ýž°íÙ‚ï߇¬Ö“€Å’°™‚Æ€ãàÿ¿à°„ -§ôú€Î—ÐêЃûû¦ ¼Ò…”ÊÀîîÚÀ¡ˆÈå™ä¬ •†¤’€ÌØœØÞŽˆ…Ï­­€Àà󃛛®·ÛÀá„Øì€‹À•ಃ°œ  -Óƒë댛¬­…¨Ô€€–„È䀑˜  ‚¸Ü€‹ à°´º€Âž…ÈÀÒÒààá¡°¿Ÿ˜¶ÌÌ„¦¦‚ü““±±ÀÈ€Èà訰° -Ûèë‹ôô„ºñº‚ÖÖ˜Àó󠱱Ќח¨©‰ÔÖÆ†Ê˃¥¥ƒÂÂÀÞÞ »¦»™™øó¦Ó––øþ¼ðýøñàþýÀí‹Ûëׂ—¯ -¶†Îœ‰üòËŸàèÑÀ—߆ƒþõßÓˆ¡ÊéÅá¡ü¾Ÿß“ëõû¼þŸ½üî·ßåò»íþ‡Ãï·ûÜí¶ÿû÷þ«ÝÕï±øÍæ¿ŸÑèßß÷›Œ -þþ½Þ¯ÓùµîÚÿޞߣñû«Õþ¥Ò¿»©ëרüò¹ßž¦óïìø¥’ý¿ØìßÞö‹ÖÄþ­­¿Àà÷çóý¼žŸË™õó¸þ¿Ó‹åç²ýŒ† -•ŸÎ÷ß„¥ý´šÿíÍÈ€þŠÅÏ¢ùñ‰Ä¿žïÇáçü««þ´Ú¿Ó²âßÞö£‘ãþÅÅ¿‚áŸÿ›óÏÎú§§ßý““þññÿ“è¨ÿøØ¿¸ -ÿèïï÷÷öúÿ»»ýþöøöÿë«¿¹Ù¿ßÐ௫ó×’×û««ýåå£þ’’ÿá¡¿þ¯ÏŸíÏÌëô¿ùãÿõÊßÿü¹ÿñãÿ÷ýûþÛ·ü× -ó®ù¯Þôÿö×›ÿ—ßüÇŸú¿üÒŸÒˆ°ÅªŽ‹áóúÜýžïÇŸËÛíó¹üΧßÏáðÙí¾›ßÍ÷þ½Ïêõ˜Ù¬¾³Ùç´§úö÷ý†ƒÏ -ç¯÷éô¾­Ö··çÓèüêýµÏ¥òíîúô”ŠŸÜî“ɰü»»¾©Ô§Î–û¶·ý¢‘„Ϩô‰„¾¾ßÇãù¶·ý²œŽïãÃÇæóû˜ÌŸƒáƒ -¸áŸ„ùÖ×ýÒ èÛÛóѩ侊ÅǦûˆ¼ÄŸàÃáüúجƒñ¡Ñ쾔ʇÄú–±–ü‹‹¾ùù§ßÜœïæÆ·þµå›˜ðñùÆÇýÃþ -ñÁÁßÿ¿¯·ÿ××Ýíëìô‡µµùÚÚüÍÆÍ¾††ßí­§¯ºÚ×Ñá«’«ó•—ûŠŠÞü¹¹¾¬¬ßßÛ·¾×¯ý¯–Þùž½ó½úëä»÷Ï÷ë– -ÛïêÕß…‹¾ýßþóýò‹ï£ûïýßüáËò©„®•‡…ð¤ú¼ÞŸ¼î¯·×åòºÞ‹‡Ãë·ûí¶·ïû÷Þ«Õëõ±øÍæ¯ÉäÇÝß÷šŒÞ½ -×Þ«ÓùµÚïûÞž×£ñªÕŽÞ•Ê«Ôú•úНÜî•ɼػ»Þ©Ô«‘®ø··½¢‘ׂ¨ôîíù…‚¾¯çÝÜôòç¹Þ¯›íÖ屼̦—† -µ½ôº—‚¼ ¯è¥Ñ¼Ôª—Ú€¼ä²—Äòò’‰Þ¼Þ‹Ã¨ù××½è´÷žåÅ»¼ìÅ¢§½‹‹Þ„»ž¿ïõÎÏÈû§§½““Þ±±ïȈ÷è -ùÈ»°àíëó»öôø»º¼ÆÞ¶¶ïˋ緱ÑÛßï­ƒ­õÖÕù«ªŸ¼¥¥Þ¢¢ïòÁ··×›•ýåýûÖûúµÛ÷åËï³çޞǼ÷îùï -»ÝòÞ½ê½ð·ÁûÛïÞŸÿ½öþÿ½÷‹¯ý¼©…°¤â°ÂžŸ¼î·×Çåò¸ž‡ÅÃã·ûì¶ÏÛû÷ž«Õã±úøÌæÑèÙãß÷˜Œž½Þ -ë£Óù´ÚÏÞ½žÇ£ñ¨Õž‡•Ê£Ôúö÷ä½ò¹Ç¦óìÕìø¤ÒÄâ’‘‹½¢‘Ǩôìíù„‚ߟïÙÜô𹼞ŽÇ³±ááù±¼Ì¦‡Áð -óÐ鞈ò¬¯¸ûè´ÏÚš‡Ø€¼”ЇÌöò‰ž‚ÁƒÃ¢ù°Ø†ãÁ飽¨”‡‰ô€¬­ù––¼ˆÉ„çîγ³ãÇ™šòÌÎúƽǽ££žáá -ÿÏà §¿ßÓŸÛëéîöôööúÚÛ½­­žñææÏ㣧®ùÎÓÓ㩪òƒ”—ûÊË½ÅÆÅžüüÏÎŽ£çÝ»ÏÆ†§þ½Ýóò¥çé¾ÓÏÇž»÷ -н·ïú®ÞõæÜ¸à¹ýÚó¿óÏžï¿÷ü«ñ…§¥®Ô윖Âíò¹¾Î·Ãá¶Û½Øìî÷ïÝÖ“«Ûâö›Ìѽ¿ï¶˜•Üú½Û§óë -׵·ÆãÖ֫ݪ•Û©Îôïîº•Š·ÎÌæÞÙñË¥æî‰Ä­–»·Ë·Ý¡ûëËÌ­¸ùü·«çæòÝœŽû¶ãÃÍæ»™ÌŽ·ƒá†á·„ -¯¹××Ý èÞˆÛóÓ©î€ð““Éî’ÉÍ £¸ñø·–ëÞ¼Ýõ£Ñî••—÷ò²›‰ô¯ò®º‘ˆ÷ü¼äûöÖ½½ížñšòÏÌ¸ÇÆÙÜ££î¡¡÷ -ÿà »¿ßÝÛÇëîîö÷öºçÛÛÝ­­î¦ø¦÷û®ÎÜÝÝí®¬ô—ó—»ËÊÜ……ãîüü÷ÎŽû‘Ý»÷Ɔ»½¿Ýýâ…ûéÓß÷Çî»÷Ý -̷ﺯÜñŸò¿ï¾ýÚýóÏÏîï¿óÿñ•…»¥Ôœ––ÂåôºœŽß—Ýî²ÙÜï÷ß»¬Ö—Åâ²²›Ý¦“ËèÎôíﻌ†—ÎÞïÒéÜÚ­ -üëïϥѸԊê—ÊåÒªÝÛ»»®…Â¥—¡»ööÜҩ˼¢ñ‰Å®íí…—È䒊݂׋Ï÷ñø®ùÍÍ—‡ãÚØæð±Ù®–ËÅêà¸àØÅ§» -Ê È…‚®šÍÖÅ¥º€ÀÅ¡ñ¸È¤—‘è©ãݸœ‹‹õ°á°®´Ú…»¹È×Ò’ëöáÁ…À¸ææØÜ³³®ééדä¤ëüܵºÁêš™ñ¹ -à††Üýý®žøž××—«£Ã‡ÕÖæêéñµîµ¹êëݵµã®êê×Å…«“¬ÌÕÜ쪬¾ôåå¹²³Ý‡™™®·ïÜéÂé®—¯ÜÏžñ¸ž¾ôݽë -õºñÃõåŠëýüù×éÓ®Ÿøþòý÷ëó­ÏÝÿãÿ¤Ž¢–ŠÃ¸þާÝî´Ùœëïß»­Ö§Åíâ´›¦“ÓŒèôîﻆ½§ÞïÔéœÚ -¹­óïϩѸ•Õê§ÊåÔª·»»Î…©ї»å²§ÔꕔȜâ±óûÑÛ©’¹…Âç¯Ö–“Ï÷òøóÎÍͧ—ëääì¸Ùì§‹åôä²°ì¤Ó -ÅäÜß÷Òæèεµ§•굤М䲓Èàô’ˆÎ¼Þ‰Ñź××è´¼óåŹ¼ìÄ΢‹‹Î„Âܹ¿ïœõÎ̸§¦œ““»Î±±çè¨ó -òøØ¹¸èìïö÷ööº»»Îööçëÿ«³¹ÙÙØèÛ¬¯÷ÖÖ¸«³ªœ••ÎÒÒüçñ±³ À™›ëÌÎöææ¶ºß¼ñ¦¥¹¡Ÿ¿÷¾ùâü -ûðÀùçŽóÆöç•«Îóç¿¿þêüé§åç÷ß¹¿ÿÜý™ÂˆÄ‘©Ì¸¬„Ãî÷ØÎìŽ÷ïÖ«ÙÃâñ˜ÍŽ“±Éá´ºö÷ª†ƒÃ¯÷èô -þŽ­Ö±·çШèœêµÃ¥ò®¨•ŽÝ݇§á˲™ÃàªõÈ¤Ž±Ø—±½í‰œÂ‰¡ãëË¡¸üø¼Ç榃˘õ𸎇Ëåಌ† -’ƒ†äØß¦÷€ ãíÍÁ‰¥º€ÀÁ¦»øÈ¤‡‘èÀã东ãõÕÁÁ¸ÖÖœ¨”‚ƒ‰ô¬­¹–È–œˆ„ãîΜ±³ã˜žö̌κÆÇãã -»Ž‘‘ÇÐãþàÀÑ×çèí€õô÷»º»ííŽÖÖÇÓÏ“£¡ÁÑ×çè©ñÔչʽ˥¥Ž¢¢äÇÁ£·×‘û•åøûÖñú÷µãÕ«Çóç -‡ŽÇž¸ûîÜñܸá¸úüÙñîœã×øß¿ýäøîŽ»Ç矻҈䑺ò±•‡…û°Ûìö÷ïíöÖ«Ýâ±›Íæö“Éî´Ú÷ë÷톃ݯ· -ùëôö­Ö¾·ªç×èìêµÝ»¥²«•öÝݹ»Âá—Ëí²é™ýçÇ®‘ØÅâûö¶Ý¤Ý²‹…ö­­»üÀàçóí››¼ö®×ÎáØ·ú¶ìì¶É´ -ð³˜ö˜¶Óé£öõõ»ˆÚé„´»•ꇀ»Ù…â§‘ìÄ¢À°ãðö¬ŸÖŽÁØÑ車åßÞ¶¯­©Ù——툄ýâþÞ¾»ëŸ™É±ÏÍÙ§¦ì -ïããöÑÑûð‰°ýðо°àÿïë³÷ôØ»³ºìö¶¶üûË‹½©ÉÞÐ௭µ××ùÛ««íååö‘’’ûÑ‘½¿÷ßž“ãÏʲñ¿ýëÿýÚþ -ïê•ýÙ³ûã¿Çöû÷í·ï«Û¯ß·ß¾ìÜ¿÷Îþë©ûý¿Ú¿ýÖþ‡ùçö”Âü¸ùò±•‡…°½Äÿï³Úí–‹ÍÍ춙̶£‡Ñ¶¿ï³˜ì -Úú½Í§³éµ‹¶½½›ÆãÓé«íª•Í©´§íîÚ”Š›Ü†î“Éì»»¶ó‰Ä¦–Û¶·¤í¢‘ͨ´í¢íÙ„‚›ŸïóãñìܮÙ±íìØØì› -‹åã°ì°ìƒ£ÓíäƒÁ¢›æÛÛ³»€Â±‘ɶ²¢ÑÆ Øðø ›–ëÛݵᆰ¶••›ŠåàâíË˶…ð…›‚á››³ßÍÌØ¦§í“ -÷“¶ññÛØ˜„íäĶ´ä›žœ´õ÷ÛúûžíÝݶÎÎÛþû»­µÕÖÜøìëì´Õ×ÛøêëíÕÕ¶ŠøŠÛÙ™­¸ØøÖØèË˳åŸäØÞ½³åä -ÇØÒÓí¯ßÚÅž½³½úä»úÿßöû¶íú¶õۥ˶³çêí§ÎÙþüÑßöí·¶Ï¾³•¥Âöäãª˜Ž‹áýû¬–³«Ùìµ™¬Æ‰£õÿßê°Ø -¥õú«ÎçÕêñ­ûûÖÆªÖÛÕª«ÒéÇÝݵª”Ö¹Åܪ“Ù÷ö¬’Ò‰Õ¬¶îïÈÛÅ¢«ÐèÝÃÚ²Š„Ö¾ßËÊãٹܫ‡¾ãÝØ°²ÙÖ -Æ–ËÊäÚáØòʧۡȺ¾Žî¥Ñ¬ëëÖªՊ€Ö²ÙˆÊ¢Ù‰Ä«ž¾ïÅᬫ«Ö†ŒÆŠÆÛѨçëò²õéɺñ¸èÅ ¬óó»ÖÙÙëÌŒõ -‚êʺ±áŸ÷·ŽŽÚ‡‡­ŒÃÃÖëß¿Ÿµ§ÇÚÕåŸíè°¶µÙÛ²Û­ÍÍÖ††¼ëݵ¦ÆÚüÕå­¨°––ÎÚ‹‹­……Ö‘¼¼ëö¶µ³ -ÇÓš‘áÍÏ·ñ¾üéýúÔúïè‘õ޽뭺ÛÖë׬—®žÙÏžµžºå»ýñÇë·ßÚî¿ûÌú¯ÿòÈØŽüÌŰᡬæ³Åäµ²˜‡ö÷­ -º†ƒÅ¯·èôÞ–­Ö²·çÑèè¬êµÅ¥²®¨•–Ý݋¦á‘Ë­²™åªçÇ¢‘ØÄâ§Ëö¶Å¤²ˆ—…–­­‹Àà“á󭼞åó‡ÓÂáØ¶¶¬ -Þ춅Ų°™”–†Ã§۠ÇȲ¾îÁË×Úš…ʵ€€…±Ȗ¢Ñ Øð¸‹ð–ëÙݵ Ñ»–••Ëò²…ƒ‰´¬®Ú––Þ¬óó–¹¹Ë -“ÌŒåúÚ²¹¾é™˜°ŒÙøÆÆ¬ÃÖÁøÁËÿ¿¥·×»ÒÝíéê²ôŒôØÚÚ¬­­ã–¦¦ËÃ¥ã®ÎÒÝí©¬‡´”—ÛÊË­ŒÅÅ–‚‚Ëî -¹®¥»Û’™éžùóÆ’–æùÿñÂòô©åáÖÃ˽û–۷Ƭ׮ٮݲ᜽ë¹ùÒòµÃ–￵ü«ö™¥…ª£àŸÓñ؈³É¸ä¶šÍûûæ -ŸƒÁ¬×›õºá³ÖûàïϬ—јÕê³ÊåÜ֪ͻ»æ…ͬ—›å²³ÔÔê–ÈÌâ±äùûÛ¬’™…ŽÂóÖ–Ù °óóùæžÏ¼¹ŠéæòÍ››æ -¶¶ÛÌ♙̊³ƒá†á³„Ï™××Í è¦ËÑÌÔª™€ÌÆ”Š™Ì¶“‰üæ‚ÁŒÇ›±®Øóꪙƒ±‡¯¬˜Ñ¨³’ÀéÞÚ²¯®šœ‘ˆóü¼ùö -±Ö¼½ížš²üÏ̘ÇÇÍ£÷£æááóÐÜùàÀÜ×çî‘é±÷÷›»»ŸÍííæÖÖóžó³¹±ÑÜßÆï®­µ×כ䫫Íååæ’È’óÑ‘¹¿ß -Ûœ›ëÎʲ¿øýëþýÚœ–üæþþÜüä‰ûùáÃóÝ»æ¶Û·Ìׯš¯„Þ´Ÿ¹ã¾ù×ÒüÃæï¾¬±ÿö™¹…’£ŸÓñ؈›“ÑèÚß·™ -üŒ¦½Þ¤Ó™Ý´ÚÓޞɣö±©Õ¦•ʤÂÔšö÷ÍŠ…èÉ®·É䦒“Ôê’ÈÌ’â±éûÛ¤’»™„ÂÓÖ–ÉÌ °ñù¦žÏ‹´¹éâòÍœ -—Ž‰Í¶±Ø¦Ö¦ÓÄà˜à؞ħ›Ö×Í †è¢ÑÌëë¦À€°Ñ¨¦²Ù„Ä¢™ˆ„“ž¶ïÂáÌ««¦–ŒÆ„ƛШ—Óò²‰‰´­â®š––Ìóó -»¦¹¹ÓÌŒé‚úÚ´¹éšŸŽ·™ÆÆÌÃæÁÁÓÿ¿¿©·×ÔÓããêê²õô˜Ú±ÚÌ­­¦¦¦¼Óé®ÎÔŒÓ㪪²ÕÔ÷˜ÊÊÌÅŦ -‘ÂÂÓþ¾©§¿ÇôîéíÛ¯ÓëצׯÌÏŸ›ž¼±½Ôøàºû×ôó÷¦éêÕÓÅ‹Á¦³ç̧ϚÞþøÁôÍ·¦ÈÏ¿µ¥âóãÈÇÔœ–¸ -ѿﴘŒú½òѧ³êµÆ½â½£Æãԫꪕѩ´îîÈš•Š£Üî”ãÉŒ»»Æ©Ôꨑ˜Åâãöá¶Ñ¤²Š…Æå­­£Ààäó弞ñóÓÈ -¡åš¹œ£›íö䱌̦‘ÁŽ°Â°‘η©‘„´šñÊíÍÈ¥šÀÀȦ›É¤£‘®èÄ㸜‘Á‹µâ°Æ´Úƒ¸²âÜÞ¶¢÷‘Æ¥¥ã‚ -š‘°ÎÍ™ç¾çÓÓÆ©©§ãÄ„ñüܸ€ºêœž¶ŽÈ™‡†ŒýýÆñÞÞã÷·±³‡ÓØÞîìíµ»¶´˜›šŒÆÆººã͇±²ÒØÞî¬ -€­µ–—›‹ŠÙŒùùÆììã»÷ÆŒŒãú·ºñåËã³çÆÇž˜Ûïܱ޼é¼úúÕøá‚ñÌö™ã‰“ÆãdzßüãüôÓÈ㊡èǾ¦ -Ûâ°†¿Ï¯ò·èô†­Ö°Å·çÐèŒêµòÁ¥²¨•†Ý²ÝƒÂáËÒ²™áçÇ •Èš¤’ƒØìØåÞ¶ˆÄ†¡Ðƒ°µåˆŒü‡¾Ç³ìîš -é¸Üƒ‡ãØØâ°°Ø†¦ÓÀ¨à˜àØÀ§›î È°¾î Ñ Œë놪Հˆ€†ŠÅÀ¢™éˆÄƒàÀáäŒØ¬áõÕ€ÁÁ˜ÖÖŒ¨”‚‰´¬­™– -È—ˆ„áþÞ˜°»ë˜™±ÌàÍ™¦§ã㻆±±ÃȈáâøØ°¸èèôõ™úúŒŒÝÝ†ŽŽÃû¿»¡µÕÐÜì˜èì´Ô×›ê¼ëÕÕ†ÊÊ -¼Ãù¹¡¤ÄÐàÔ䨨°äæöš²³™™†ñŒŒÃúºáåöËóç†Ç¶÷ï›îܱ«Ü¸á¸òÅðŸá‚á·ßŒ§äÎ˜ŽŸ·üíâï†Ï¿µüË -–¿ÿÃ䣟ÐÓñ؈½Î§…×êõûû‡´êš½Ú­×©ô¢Ê¥þ÷ׯÐëèåò½Ì¦ß«ÙÑË¥ú‰Ä¼¯–ë··õ¢É‘Þ¨Ôïíéø…‚½Ÿ¯çñ -Çô››ú®×ÏÓáè·¶ô¬–‡žÉÔ³˜ú˜çÖÓéúˆÒ¯ó¯ëé´ýÚšµžÊÕƒ€žÂƒÑ“Éú¢ÑÏÆ èñø½–«„ßÝÕã°ú´úÚÂé——õ -âȤþñÑ¿°ÿ ŸŸ×ÏÍéüççôÓÓú©Ž©ýÄ„þüܤ¿ºªŸžÖ²é‡†ôýýãúÞÞý÷·¾³ÓßÑ¡ïëÿÓ·´è›šôŒúººýÍ -ǾªÊßÑ¡¼¯«Ó—”苾‹õùùúÜÜÄýÖ–¾³Óÿãæ¾­Íÿâ·…þéÓý£Çßúû÷õ·ïë¶ïÜÐß¹¢¿¬ÿÞÿÛïú“þ§ôÇëÿö -þ·ý§ŸêÿùòŸ‡Àù˜ŠíÃÂè´ÚÝÞ½žÎ£Ñ©Õºå•ʧԞØÝ‘Õ©”º¹Ü§Ã“éööôÒ©ü΢щźíŠíȤ“ŠõèÛÛºÀÇç -ùëø¼Ýæ¦Ž³ËÕñ¸º†‹¥ã²õŒ¥†Ž†õôºŽÍ‚ôëëºÔ­­é¨Ô€±è¨”™¬£è’õ„‚Ž×ááðº¬Ö‡Á»èÐèÝÊŠî -ôùÙ‡Äê––€ô‹‹º„·þ·§›ÕÍÌ÷覦ô““ºññÝØ˜îäÈÄ·¼¬›œÔŸõ÷ëúúô½Æ½º®®Ýç§»®½Ý×ÚªëòîÖµ¶êêë -žõµµºêêݎ奮¼Ü×Úɪ«®Ö•–êãòòô¹¹º¬þ¬ÝÛ·º×¯ˆõé麗¯ôæÏŸêž½ÒÝÇ»§»ýÛ÷ý÷ºîòåÝùó÷ºÓ§õ¿ü¢ -ø»öÌ÷·¿éê¾ùėˆéÀ£ŸÓñ؈íûޞ֣ѪՊڕʫÔê÷Ê÷µŠ…֮סÊä‡öö´Òù©Ö¢ÑŠÅÚ•íí­È¤•ŠÑµÛÛÚÀË -ñçëù¼í榇–ËÕò¸Ú¶’ÛËâé™Ì­çƒ¡…á­®… íúº–„­µ´š–ÊÕ‚»€–ÂÑ’ÉÚ ’ÉË èñøì­Ž§Å⵫ñ«Ú´Ú»²¢ -–Å¡´È¤öéÎÉ»¸¨Å ´ïóóÚ¹¹íÌÁŒöúÚ»¹©Ÿ˜ÐŽéǾǵÃÃÚ¡¡ßíÀ€¶¯ÏÛŸÛ«íîÖööÈ껺´ííÚñ––íÓ“¶± -øÑÛ߯­­ÕàÖ×ë««µåÇåÚÒÒíÑ‘û¶ À›—§Í÷ÎÖ¾û§Íȫоþ­ýõÊßûü¹öÉ“í÷ÇÚû÷´·Ôîé¯ß×޾ᬽÿÞûú´ -»ö—ß´ÇŽé«ÿú×í§Ÿè”ÓˆÑ÷äãª¼Ž‹¡ùûÔêÅʥѪµ»¥»š…£—ëœä²ÍΎƪÑÕÈ¤š±Ø³Ë½­‘‰´Âáë­­À á -ù󵼞†ËÕÌ𸚛å­á±´Ì¦†ßÁÐÀ°†Î×ÂÀæý݃‚ššÍåꀔÀáèÈäɤ¡’µø¼ö†‡ÓౚÕÈÕ†£ÙÙÑ -í ÐšååÍÒñ’æñѳ° Ÿ™Ÿ×ÌÍéæ¼çµÓÓš©©‡ÍÄ„æüܳ’ºª™™ÑŒð醇µýýšñ¾¾ÍϦ«ÎËÓÙ©éï×›´¶êš›µÍ -ÆÍš††ÍÝ㦦ÆÓÕ¥©¨Ð”•éÊʘ´ÅÅšüüÍâ»Û“™¿©ÉÈФ§ë¦Þ¾Ô¼ÿ®ùýòÄóð¡æîÖÝÍ­Ûšë×ò´—®éÎÓ -Ýœ¾­ùùçÍݱ㚿þÕó¥É§š”ÂÔŸ¯ù˜ŠÃ¨ՂªµÒùà÷×­­Ð¨åòµÌ§¦ÞÙÑË¥êñ‰Ä­–«··…Õ¢‘Ú¨Ôïâí©…‚µŸ¯ -ŸæñÔ››ê®Î×Íᨷ¶ÔÎì¶šÅÒ³™ê†ÃÃ꺘ÝÁêõõµòˆªé´õÚš´š€Ô”ŠšÌ‚Ö“Èê¢ÑÍ ¨ñ¸µ–«€ÞÝÕã°ê´ -úÚ©——ÕâȤúñѽ°É Æ ÔóóêÙÙõÌŒúêˆÊ½¹©žŸ×ç©ÇÆÔÃ÷ÃêÁÁõÀ€ûº¯ÏÝÛ«î‘îÖ÷õ©»º™Ôííê––õ -Žó³º±ÑÝßǯ®­Õ×׫ü««ÕååêÒ¸Òõñ±º°ÐŸŸ¯ÎÉÑçÒ婳³ÕïÞϨÓÓկߪ¡Ÿ½Ó¿þ¬þùðÀý÷®úæÖÍõµëêË— -¯ÔçΩÿýÕßýóÏê£ÇÕÞÿý«ú“ÏÔïÿüßÿáˆÜÀ£ŸÓñ؈•ŽÒ©ÚÝÕ©”Òª¹Ü¥“Ø©ÙÑÉ¥ª‰Äœ¥–«¶·Õ¢Á‘ʨÔíí© -ø„‚•Ÿ¯âñÆÔ››ª®×ÅÃᨶ¶Ôì¶“ŠÅÒ±™ª†„ÅêºÝ…ÆÁªõõ•ˆªœè´ÕÚšŠ€ÌÔ”ŠŠÌÖ‘ÀȪ¢ÑÅ ¨‘ðø•–«ÚÝ -ÀÕá°ª´Ú…Ω–—ÕȤ¸êéɵ° Â¼ ÔóóªÙÙ‡ÕÌŒêúڵš˜ÐÁ©ÆÇÕ££ªý¡¡Õà ª¿¾ßÕÛ«êéÑÄõõ©º»Õí -ÇíªÖÖÕË‹ûª©ÉÕРªý«ÓÕÔ¨ªªžÔ••ªòòՎɉª¨ÈÕÐ÷ ÊËÓå䨫޽ӽý«úÝóÚ•–¦úñ¾Âõô©êñãÕýûª»÷Ô -Œ·ïª®ÞÕÝ㼨ºûÖõ뇯ªŸÿֽתúúëÕßþï¢úïÿ¸ÄýÀ£ŸÓñ؈åëî®Ò¡ÐÊåúʙ̹³£”ŠÊ•’‰Ò¬¾·°½­”‰” -¡òëË©¨ùùü¥§ÜÜÄÔò¹ÊŽÇ¹Û±¡ä³•¬–ƒ’ÉÔ²˜Ê˜ÆÖÒéʈҮ¡¯«ÁÐÉ£©·×Ö”€ ¤Ð”ä²’ÄÒ’±‰Ê‚Á‰Ç« -ݱØåꪒƒÞÑ¢ÑÊ••å‹ò²’‰Ô®­¨©——•ˆ„òðþÞ¹·§œ™ðÑÎÏ«§¦”ì““ÊññåØÁ˜òäĹ¼¬ÀœœÔŽŒ¨û¿ú”½½Êîî -Üåç§²£ÃÙƒÖ¦ìéѶ·ø«››•õõÊñÚÚåͲªˆÊÙÑ¡¬«Ó»–”¨‹Š”…Æ…ÊÜÜåö¶ãòÝ»åÆ†ò­õëå«×Ê—Š¯”ÏŸªŸ½ -žÒÞ¿¯¼óÇÞùã†òêÕåïŋʳ畧ÈΩÿúÉùôߨò믕ÿùÅ‹²…ߟù瘊èäò„ƒ²™âçǡѕª¤’…Ø¬ËØÞֈĊ¡ -ŽÐ±µ¥ˆŽãðùŠžÏ±¹£©àò•œŽâ„ãÃÁæ«Ø¬†…“©à°”°§¬ Ó•¤Øœß×€ ‚ÆÓ‚Ð©Š€ÐШÀвÙÁ¢©ˆ¼Ä… Àã• -⸜âõÕÁº¨ÐèÅÊŠ‚¹…Ò ‘Š¥¥‡Åâ¢âáÁ±î¿¯˜›ÓÌÎÆª¦§•ÓÓŠÉÉÅø¸âìˆÌ±ºª˜žÖÀŒ©††”ýÇýŠÞÞÅÏ -»¢«ËÑÙ©èŒï×´¶ªÚÚ˜”ÍÍŠ††ÅŽÝ¢¶ÖÑÝ·­¨¬Ô”—«øÊË•ÅŊˆÂÅþ¾¢·×Ÿ‘•¥ÈÌÔä¬ä¨ÒÓ•¯Þ©ž¿×¼ù¢ -òøøÐñïžâ­öíśЫà×”—®¨ÎœºÑœº¥øé§·Å÷ß«¾þÚ‡ñ—¿¨ÒˆñäÔÇ”œ’¦®“É÷öäÒÁ©Ü¢¹ –Ë—··å¢‘ܨ -‰”ïíÉ…‚¹ýŸ¯çñä››¸ò®×Îáȹ¦›ò¹›­öç±ä̦œÁ¯Ã°œÎ—ÃáüýÝΣɗ×ÖäÔªœ€í䔊œÌ–“ÀÈò¢ÑÎ È -ñø¹Ž§ßÝÁ•ã°ò´Ú¾ù²¢Ç¡äËË»ò¥¥ùâ¢üôáÁŽÀÈçæßä³³ò™™ùƒÔ”üòÒ¾±ø¡Ÿ›“ŽÊäÇÆäÃÃòÁ¸Áùÿ¿¼¯Ï -»ÞÓ£ïî–÷’öÊ»ºäííãò––ùó³¼á±ÑÞ߯¯«ÿ“×ÔÈ«ªäŒ••ò²²ùɇ‰¼¨ÈÞРÿÏË“çäȳû²äïßÊ߼§Ëß¾” -пû¦ÿòÄþïð¡üÞ½ùíßÛòë×å×®™È¯ÜŸ¹£Ø¿ùÒþÓÏò÷ï¿—ÿý•üì¯ÿ‘§’âùãÇ”œ’¶³¢£“Êå’‰ÌÒ¬–íïËÄ¢ -„ƒÂ¡ìë˦¦Èøü™§—ÛÜ”ñ¹²Ž¦Ç¶±¡ã³åž¬–ŒÉ”±˜œ²˜–Ñ鲈’­¯ËÀÐÆÏ£ÉÖÖäÔª°Œ€ä”ŠŒÌƒ–‘Ȳ¢ÑÆ -† Èðø™Ž§ÑÃâ嘌ŒÏ–­¬ÈШٛò²Œ‰”­®¡Ê––䈄ìàþÞ¶»«›™‰‘ÍÏ˦§åì““²ññÙè¨ìäͼ¬ä›œ”ŒÈú -½úä½½²îîÜÙ×—¬£ÃÖñÞ®ë핵´ÇÈššä²ñúúÙí­¬ºÀÚÖÙ©«¯—Ÿ•–ÊŠ‹åůŲüüÙî®ø¬»ÛöîìýíÛÙëײ´ -Ö´Ù‹—²çÏÊäŸËž¼‹Ý½«»õËöïýºìòåÙù·ó²ßþ“¼ö©ûñÇÙ÷߷˾úÊöç¿·ËþÛÿûÇ¡œÊ¾¦äÒç‰ä€Ø¬ÝÞ -Ó–ŠÄҡкѵ¥•ˆ¤üþ؞Ϻ¹©åŠò¥œŽôãÃÁÊæËÙ¬©“ȩ尤°¬¥ÃÓ¥¤Ýß—÷‚ ”Æ“®­‚ɩԩ€È©ä”©™¬¥‘¤ -öÄ¢”Àâñ˜ÒœÎŠÅʱÀ˜©š­ÝÙ‘¢ÐÒåå©’ˆ©ÝÜ”®¬Èœ‘ˆéü¼ôîðκ³£ž–àÎÍɧ¦¤ã÷ãÒ±±éȈ€ôøØº´¤ -Ž˜ö÷Ëûû™¥½½Òîîéîç§´½ÝÚÖˆ¦íé‘¶·Ëü››¥õõÒº¸ºéÍ´ªÊàÚÑ¡­¯—–ý–Ê‹‹¥……£Òüüéî®´ì«Ëš™©ÍÈ -£¾þ­ýõÊßúâ…ôéÓ饣ÇÒ‡¤÷ÙïÊïݒ޻⦽üÙúþ¼ô·ß¤§ÏÊÚÿüÑúÝ÷Òÿ¯¾’þùÏÒ¤Ô´üÌÉ¡ˆ¡¤â±äûÛ -€¢’Š¥Û´Û’ÀÂçËüø¼É榄˹•𸒃Þì¶„Å’°™’†Ã‚Ã’º˜Ý‚Á’õõ‰ðˆÊè´ÉÚšµ„Ê•€€„‡‘É’’É -€¤Êˆ„‰ž¯›Áᤫ«’Œ‚Æ‚ÆËÖÖ¤¢¨”äùقĆʖ–¤‹‹’à„²¿¯™›·“ÌÎʦ§¥ìÓÓ’ÉÉÉø¸äì̲ºª„™ž–ŒÉ† -¼‡¥ýý’¾¾ÜÉﯤ»ÛÒýÕ¥éè´·ðËÚÛ¥ÍÍ’ñ¦¦Éä¾ðÞÒÛ«©®–€ÔÖʪª¤åÆå’’’Éёۤ À’—§ÉƒÉ‘äåɲ³ -´¥ïÞÈÒÓ¥©¯ÞÉž¿—¼ÈýªùôÈòÿ÷¾äÎÉÍ›•’ëפ—®ÉΓœ¾­¹ìñÂòÃ’ïû¾“üõ•äϦÿ–¤’âèã°Êމ¡ÞÞ– -é‹Äâ¡Ð¼µ¨¥–ˆÄüþ¬žÏ¼¹©æòÅÅœŽøãÃÌ¢æ‹Ù¬±“©¤æ°Ä°ü€Î„—ÃøýÝŒ±‚âšÍ¼¶¦¥¦ÒÅ€ ¦ÐÄ䲘Ē“ -ñ‰â‚ÁŒÇ‹Ý±Øñꪘƒž‘£Ñâ••±ÀŠ¥ÞÞ–£‘»â¥¥ñ‚˜ýÏÏ‹çæßij³âééñƒÔ”øòÒ¼±ð¡ž›“ŽŠäÇÆÄÃÃâÁ -¾ÁñÀ€¸¯Ï›ÜÛ«îé‘÷òõ‰»»Åííãâ¶¶ñË‹¸í¹ÙÜØ¨®¯Î—×Õ‰ëêÄŒÕÕâÊÊñù‡¹¸´ÔÜܬ¸®¬”çç‹óÞóÅÙÙâ÷ï -½Äïߊ߼‘—§¥‰ß¾”¿èû¦þòÄüð÷¡øÞ½ñíÛéâ›·Ä×¯Šˆ¯Ý’Ÿ»§¾øýÚüâ„ø‡æŸÄßþ«þòŽËñŸþ¤Î¥ÄüÇ”œ’ -˜¤”žØÚ’‰ð„¢¾ßÄã‰ð¶·ÅÜ®ˆÃ¦¹°±¡â³Åެ–ˆÉ”±˜˜¢˜–Ñé¢ˆŽ’­¯‹ÀÐÄÏ£‰ÖÖÄÔª€ˆ€ŽÐ¨¢²ˆÙÄ¤Šˆ„‘ -Ìž¯ÂáÄØ¬øèõÕ„ÁˆÐ®èÑÊŠˆ…’ì­¯‹ÈÑÒÑ’èáÁ„ÀˆãæçÅóó¢ÙŽÙÑÌŒèêÊØ´¹©š˜ƒ‹ÆÇÅ££»¢ááÑà è -ìàÀÔ߯êí¾•õôˆº»Å¢ŽŽÑÛ·›¨µÕÔܬàêê’µ´ˆê½êĵµ¢êêœÑ奨¢ÂÔ€Ö¦ª©‘••Á‰ŠŠÄùù¢‘œœÑÖ–¨³ -¦Ó”‘¡úýÚÓ”–¦úñÂôïì™èñãÑ뇢û÷ķ屢îÜݽªñºøÑôö¬èõôéѯ¿ˆŽøŸ—ýû­èËØ¯Åÿú“¨•‚«ŸÓòȈ -Çá֖РòùùžïÀæ¦ãË•ò¸Âä¡›­ä±„ÂÌæ†ÃˆÃàº݈ÁÂõÀõ¡ˆŠé´áÇښʕ‚€™Â‘’ÉÂ’€ÉÈ¤Š‰„¡ -Üž¯Äá„Ø¬ØðõÕˆÁˆÑ®èáÊŠ…’讯‹‘ÈáÒ‘’ðáÁˆÀˆççç…óóÂÙŽÙáÌŒðúÚØ¸¹©œ˜Ž‹ÇÆ„££»ÂáááÐð -ìàÀØß¯ìëö“öôˆ»»…ŒÝÝÂŽŽáû·»°µÕØÒ¢Àìê’¶¶Šë³ë…õõššœáÕ•°²ÒØ€Þ®¬­•–—È‹‹‹………‘¼¼áÎŽ°« -¦Ë˜™©üóÆÓ˜ž®üõÊøïâ…ðéÓáãÓLJ„÷金ïÝ’Þ¿®ñ¼òÅøñ¢ðìÙ᯿ŠÿùùÅøü¸ðÛâï…ßþ¡üÓÿŸ„ÿõ¿þã -ÆÔ©¹¤„Ïàïã󅼞˜àóÓÀåŠ¸ŽœÁÆÆ¶ÛÉÀ≘̃ҡ€á®€ ƒëë‚”ÍÐ肵µ•ª€€…¢ ™“…¤’€È” -àˆ‚¼Þ€Ãº‰°ØÁꪀ½ƒ‘ Ñ‚••€Š¥ØÞ– ÷‘‚¥¥Á‚ڀÌÏ‹æ½æ„³³‚™™‡Áô´àòҰౡ˜Ÿ—Œð‰ÆÇ…à-ý¡¡Áà  ¿¶ßÐ×§èí•Øô÷‹ºº„Ç‚ööÁÛ›› ¥ÅÐܬèàì”´´ˆêêž„µµ‚êêÁŽå¥ ¢ÂÐÖ€¦¨©‘”•‰øŠ‹…ùù‚Ü -¸ÜÁö¶àÝ»ÁÛ·‚·ï„Ìéé‚—¯…Ï…Ÿ‹ž¼‘¼ú⤸ÿßð÷®ûàÖ­Áõë‚ÃË—…—®ˆÎýœ‘üú«àçퟅNj¾ùÖÆðÅ—‚¿ý -òÉʈÖÇ”¼œ’‚Ïãñ·Ê·ùÜ·¿±Áç³ù¬Ö–ŸÉ¼ÀàðÚá˜Ï§ó¡ˆÇ¿¾Î‡Á¾©ÆßÛãÓ©ü¸€¸À¡ðÉ䦾‰Ä§’ù„ -œ‚Ÿçãðü¾¬–¿ºÊÇàáøè´ÿå…žÂñ——ùȤ¼ÿñ‘¿°ÀǾ øóóü¹¹£þì¬ÿ憿ž½ÍŸœäÏÌÏðÇÇùããüÑÑþð°ÿè -Ɉ¿¸ÈŸ˜à§÷õñûûù½†½ü®®þç§¿¿£ƒßÖÆïòí巷󛚙øüúúþœí­¿¦†ßÕÿů¨à——óüËËùÅÅü¢À¢þÁ¿¯ -¿Ÿ“ÃÏÊâç²æò³²ø¯ßÏóÓÒø¯Þ𥟽ã¿ùÂÿëøÿÿ¾ÿÎÞþÍ›üë×Ëø—¯ó¯Üà培ÿõŠÿ÷óÏüãÇøß®üÃÿâ‹þŸ -³ÿÈÏ¥„àãøÊމÁÛÜäòñ¹¼Ž‡·±•Á㳰ؼ֦“Çàðà˜öǧó èÀú€º„ù´šïÚíÇ¥ò€€ÎÇ¡ðÈ䞉ģ’ù„‚ -Ççáð¼¬öóÀꪃá¡ùѼ”Š·¼ÌàâùËË¼ÅæÅÞ‚àßÍÏóææø³·³¼™™Þô´¤ïò’·±Á›žŸçñÆÇØù££¼¡¡Þ -ñà ïà€×ßÿÏëíåõôðûº»ù¼ŽðŽÞû»¯µ•§×ÒÂëêⵎ¶òêëùõõüššÞõµ¯“²’×ÑÁ««¿ã•”ðŠ‹ø……¼üüÞî -¸®¯»›÷îÛïíÛÞ›·¼­ôôÞ«×¼—˜¯øÏŸòž¿Ùæ½üÈ»÷Ú÷û¶ïÆÞ×Õ«¼Ë—øçÛÏóþû÷êî”ï§ŸøÇŽÿñ¾ù†÷ùç -¼¿þ‘—ʈçÙÇ”œ’‚Ëááð·¶Ž°ÙŒÜ–‹Ëäò™ðŒ®ŒŸ Ó¹²ÄÝßç‚ Ý—Æã®­ñ©ÙÔƒ€À¥Ð¸Ôä²—Äâ’‰œÜ‚‹Çóñ -ȸ®–ËÝÝåðâ°Ü´š»²½ÂÅ¡¸ËËÜž¤’»´ÄÝÜÁ䮬ð‘ˆî‘ü¼÷»Ë™áÎÏóä§§¹““ÜñÆñîØ˜÷ô”¤»²ÂšâŽ -ðŽò‡†¸ýýÃܾ¾îÏ·ÿ»›ÛÕÅíè÷à¶·óÛÚ¸Œ­­ÜææîãΣ·¡Û×ÇÇ­­åÖ×󫳪¸••Üòò¸îé©·¸˜ÛòÔÄ­¨àæå -Èñóò¸ÙÙÜáÌÌîÆ†÷õ°ëîÚš÷åËßîóçܧϹážñŸ¼àÞ׽˽ý›û㶆÷êÕî¥ËýÜó縿ýÆÜ½ù’ûÓÏÜգǹÿû›÷ -×óϹÿü£÷·Ÿþ韇Ðü‚ÌÉ¡¡¸››Ìœ¶›Ãâñ˜¡ÌƒŒ†‡†¹èôº‡‚¸ëëМ¼À£ñÖÖ¸Ôª‡€¸´”Š‡ÌæÈôœ¢ñ€ÀÁ -á㹸œ‡‹åƒ¬®ò°˜ŽšÙÍÙÙá Ðœ‘å厒ÉÙÚ⬮ò––¸ˆ„çþž³·¿Ç™åÌÌðû¦§¹““œ‰Æ‰Îø¸ç쌤³ºÊ™™áŒ -€ó†‡¹ƒƒÃœþþÎߟ§ÿ§‡ÓÝÍéê±âôöòÚÛ¹ŒííœÖÖÎóþ³§©‰ÓÐÀŸ©¯çÔÖòê°ê¸ÕÕœÊʸÎù¹§¬ŒÓ’Ò©ªâ”– -öòòó¹¹¹œììÎÖ–§³ï““‘Áùýš÷“–Æùñ‚óíì™çɓΣÎÇœû÷¹÷ïìòîÝâÜ¿ÎÕ¹ò…óñ¢çýܹÎéÓœ“˜§¹¿þȹú -Ï”ó·¿ñ¾ÿ‡œó‡¿ðÒ‰Îáú˜’ðèÙ¬¶“ù€ÁŠàð›ÎçÃÇÐõõ¶ˆ²¬é´öÚš›Ê¤åƒÀŠ…Í⦳ɤ¶‘ÈÄ¦Øø¼›‡ -œãã±ìÕÕ¶è†ó€æ¯¬™°Ñ¨öò²›‘‰ä¯­±——¡Ù‹‹ì„‚½î¿Ïž›ãÏÎϲ§§ÙÓÓìÉÉöÄ„ûü‰œ½¶ÆžåÿŒ°‡‡Ùƒ -‡ƒìöÿ¿ÿ»¯ÝÛËî‘îæ÷õ±»»ŸÙííì¶¶öüë«»¥…ÝÔñÄîìä×׳çëêØµµìêðêö奻¢‚„ÝÖÆ®­å—ž—³‹ŠØ…… -ƒì¼¼öÎŽ»î»›ýîûí¶Ûö›·ìôôËö«×엯؇Ϟ±Ÿ¿æ¿ÖüȾ÷ýçöŽûæÍöõëÉì«×Ø—¯²«ÏžåŸ¾Í¾þñ‚ýãìï -ý¿çÿõ¯ìϬ¾ãÿáìԸ¸¾¦ä¬¬¦“Åà°à՘ŧŸ€ Öúº‹„Ù´š´ëí퀕ʂ¬€–…¢“Ù„¤’‹È¼À ã°ðø–ŽÇ -ÌâÙ««¬Œ†……ƳÖÖØ¨Ø”ëù™…IJû––Ø‹‹¬…¸…–‚ÁšŸç‡ÍͱæçÙ³¶³¬ééÖÔ”¤ëò’µ±ÁšœŸç±ÆÇØÙ££¬ááÖ -ñà ëà€Õß÷Ïêëãõö²ãº»ÙÝݬÎðÎÖLJ«­‡ÕÚÊêéᵂµ±š›Ù캺Öí­«óºšÕÕŪ¬Žä•—³ÊËÙŒ¥¥¬¢¢Öá -ø¡«¿Ÿ•›Ë£ÊÎæåå±²ð³Ù™™¬×¯˜Ùé鬗¯ÙÏŸ³ž¾å½ÚþÌúð€õïöžëöíÖ͛լëר—¯³è®Üà½Ëú­õ×Ö‰“¬Ÿ -èþàýÿ½ë¯¨ÿåýö™ë´ÿ॒Â÷±Ö¥‡„àÀ°ƒ°Î¿€ÁŒõõ†ˆ²è´ƒëˆëŒª•€ŒÂŠ…Á¦Ÿ ‘ȘĢƒÀàà¹ñŒœŽÅ² -€Ö×à°Œ´¯š±²ÂÀ¡˜óËËŒ¤’±´ÄØÜ䬬°ŒˆÆü¼ã±»Ë˜™áØÌϳ¦¦˜“·“Œ‰‰Æø¸¤ã쌱ºÊ˜€™áŒ±†‡ -˜™ƒƒŒþþÆüߟ£·—ÑÓ‡Ãèêâôö²øºº˜ííŒÖðÖÆË‹£¹™ÇÑØÈèèàÔ׳ê뙵µÃŒªªÆå¥£“¢‚ÑÖÆ¨©€á”—³Š‹™ -Œ……Œ¼¼ÆÎ¸Ž£»›ñîÛãíÛÆ›·Œ­ôôƫ׌—¬¯˜Ïž±ž¼Øá¼úĸÿŸÚñ÷®ãöíÆÍ›Œ«×™—¬®±ÎŸçœ¹×Ãøõׯ¯¿ -¼°þøñÝ÷§Œ¯¿æüö™·ã÷¿çüÓÿƒùÇ¡¢ŸÓò”Ȉ˜Î‡¡ˆÔÞ߇Áð€Ž†¯­ÁÔªŒÐ€‡¨”˜Ì†”ɤ˜È„‰„º˜¿€ÃÁØ -†¬¼ºŠã°°œš¯¬À¨”Ó¼¼Œ£‘‡–‡–àÅÅøáŒÆ àùùøîÎŽž…çæàáééøêŠžœ™„§¦àññøð쌞…‡‡ƒá¡¡øðž -¾˜€ûûá¾¾û¸·—îé»·ºàÎ裃äîï‡ÛÛá–Æ–¸¹™îê‚웚àúú¸®þŽ®©««áÊʸ¢‚®¯Ù‡ËËáââ¸ñ¨ˆ®¨€óó -ÃáÜܸ»›Î³Ê‚³³áŒŒƒøõ븭þÉù’þþœþú¤”þü˜þøÉ¾ÿŸ¾ó‡¾¤õ‹¾þ¾ú‚•¾ô‰¾ÿžÀ¾ó†¾õŠþíùçøøñø» -ßï௿†¿ýþ”þýïáÿ’†ÂˆŸÓòÈ ˆèý‚ÁƒÌ´š´¶†Ñ©ˆ€œ Ð ²¤™¢‘ ¢ñ€€áñއîá±ÐꪄÁœœÀ£¡••ˆ -…‚–—¡¤’äÚÚ‚–—¡…ü…ˆ€æç¡á¹¹èö–š™Ÿ¦§¡©©èüò’š˜€ÆÇƒ¡±±èô”𾙆‡¡¡¡àè𚘀ú·û¡¾¾¨·— -ÿê麺 ÎÆÎ¨£ƒêï‡ïÚÚ ––¨¹È™êꂚ›¡íúú¨®Žª­ß…ª«¡ªª¨‘¢‚ª¯‡ÊË›¡’’¨¸˜ª¾¬„òó¡¼¼ø¨§‡ÊÊ‚Þ -ÿ½ƒÞ¾…Þ¼ßÒÓ¡´´èíåËèùóèé¶ÓèÑ£èÁƒÛèÞ½èÎèíæÍèúõèʶ•èâÅèܹïè·ß Ó§ íŸÿ†ŽŸ‡¾íûŽúúëèÓ -ŽÏ¡ßÿžÊ©ØÄ¤¥‡„€ÿÀ¾šÜÛƒ©€Ô€ŽÐ¨ ¥™Œ’È ‘øÉ€À€ñø‡¶ƒ±Øƒ«« ¼†ƒ¢ÑàÊŠˆÂËË ’€ùàé‰ÜÜ„ -à—–À„‚œŸž‡çæÀÙÙðìæ†œž†§¦ƒÀÉÉðₜ¼Ÿ‡ÇÆÀÑÑÀð䄜ž†‡‡†ÀÁÁðà€ûìï‡ûúÀÞ¶Þ°»›ìê‚ì»»ÁŽŽ°½ -ÀìëƒÛÚÀææ°©‰ììÞ„ëëÁºº°í¶–¬®†«ª›ÀÊʰ¼œ¬°«ƒËÊÀââ𨈬¨€ó‡òÀÜܰ»›ãÌÊ‚³³ÁŒ†Œðõë°½ -’üõŠüñ‚üÉöŒüò„üô’ˆ¼ÿŸ¼û—ɼý›¼ñƒ¼¤ö¼ü™¼ð€¼û–¼ýšØ¼ù’üé§ðíØ±ðÛïÁ¯é¾‚¿ù„üÝ—ïÀ”ÂøÒò -¬ÈˆÚښʥ¥ÀŠ…ÆŠ¦ÓȤƒÄ¢À áñ´œÁËÛÝ¥ðá°´´š¶²ÄÂÃ¡Ž¬¯ÓÈÚÒ’íñ‡‘¶°Ààèßóó´¹¹ƒ³ -·³´™™Úô´Äíꊶ¹É›ÿ˜ ÓÆÆÞ裣´‘‘Ú‘ð°í舶¸øÈ›˜ õ÷Óãúúè½½´îðîÚ×—­³“ãÖÑÁëï§µãµÑÚÚèÍÍ -ô¦¦Ú㣭ã¡Ö×Ç«­¿¥ÕÔЪªè••´ŠŠÚÙŽ™­´”ÖÜÌ䫪¢•”Ðò½óé¹¹´œœØÚÖ–íÝ»ÚÇÛ·´·ïèé÷é´´´ÚË— -ç´çÏéÏŸÒÄž¿¦½üÈ»êÿŸöçŽíÖ¶­Ú›´«×Ê闯Ӯܠ¡½Ë»ýšöÝâ„í§ŸèÇÿŽÑ¾ý–öÕò״Ͼ¡ýîž÷´ÿüŸÓˆ -¥áÈÉ¡¡¨€ºð€Â¡’ÉÔŠ’逑ȥѨø¼•‡»€‘ÅÒ×ש˜Œš•¾°²ÂÅÏ¡¨ËËÔ¤’ú´ÄÝܼ°ñ°ÀÅ ¨óó›Ô¹¹êì¬õ -âæ†º½ÍšÁ¢ÎÎÒ§¦¨ïããÔ±±ê舨õ䄺¼Ì„š¢ŽŽÒ‡¾†¨ýýÔ¾¾øêﯵ§‡ÚÝÍíê¢ööøÒ»º¨ííÔá¶¶êË‹µ¹ -Ç™ÚÔÄíì¤ø¶´Ðëꨵ‡µÔššêõµ‡µ²’ÚÑÁ­Ž¯§––ÒËÊ™¨ÅÅÔÂÂêðþ¾µ¯š“žÃÍΦ¾ûLJÍ̤æäÐßÏ¿¦¦§Óß½ -㢾øÁýöŒÛúä‰õѣ굃‡Ôû÷¨÷ÙîÐïÞ¤Þ¿ªÎ½ò…úé’Ûõüù꙳ÔÌßÿ¥ž¸Áý½ñÇêÑ£Ôï뾡þù¥õ“ÎϨ¿ûµ¥ -Ʀ”œ’‚  Ð€²™ ‘€ê¢ñ€€àñ€Ž÷€‹…֠׌†À£ã¬¬€¨”°¼üŒ ‘ÀÒÒÅÅàáÀ Ã€ùùà±…æç€™™ -˜àúš˜š‚¦†§‰‰àüœà˜›ƒÆÇ‘€‘àø˜˜š‚솇 ¿ÆŸèëƒúûížž »›èêØ‚º»ŽŽ ½èí…ÚÚ›€ææ ©‰è -°ì„šš€ººÛ ¶–¨©ª·«ÊÊ ¢‚ਯ‡ÊË’†’ ¸˜¨¬„ŒŠŠ€¼¼ ·ö—ÈΆ²²€íÌÌàíÛàÍ€› ½È˃ÊÞ¾„ž¿‡ž -€¾…ž¿†ž¾¶„î߇îÞ…Òî߆îÞ„®„݃®Ü®Þ¶„΃ΜÒ΂þù…øíñÇàèÑà›ê¿„þòŠ—àßÿ•ȩل¦¥‡„ “ -¨Èä¢ñ€À—Æãɸܬז¼ºÊÆàÈŽèô••²Š ÅÞÞ¦£‘‡ÿ––È‹‹ä…°…²‚ÁžŸ¿Ø°·Çž¥ÏŸÌ§§ÉÓÓ›äÉÉòÄ„ù -‚üœ¼¶öàôñ”¼²Âþ¿Ú×£“ØÄ÷µ¿ßã½ìÖíó綠ÃÕ¹Õ§¦»—çùijñˆÆÌ†ã°˜°™ƒ³˜Éàƒÿ¯í×ØØØ¯”ß›¿¶Æ˜› -ÆãŠ¢¨ŠŽ‡“Ã…ÆÈ‘’©ÒÒ¤ÈѤȑբÈÙÄÙÄÊ€¢Ò–Ñ–ÑÔÕ©Ç—ôÝôǪªÔý¥ìÎÏËŸÅÿõß¼ßã››Ò¨Ôº¾¼®…ƒ¥««Ò -ì Ðº¼¬ùýߥ‹‹Òùù‰ð Ê¾ßéô´øôòÒÂñÒñÄñ‰ÃÊÇÇ¥ÃÃÒÁÁéÿ¿¿äñ”ööÊß»»¥’Š·–¶·Ë››¥ä„©¹Ü¥‡£ -›´±Ñ²Û˶‚ÛÉê­Ù¬¥Ó“©ä´–Œ†‰’Î×ÒêËš¤ÍÉ¥ª©•¥¯¹¼´´Ô’ȶʋ‹¥¡°¤ª”ø¼’—Û‚â³ËÌæéæ¦Ä¥–¦§Ë -Ÿ££¥¡¡Ò߾ߩ««ÔÚÚ㪫«Õ”âßöÕäÅ¿ùð›Ð¨”óùⲟþ€ò¹â¯õ¿”³ÙðóÏÝÅ̦øÓÏÅ”ôš¤ÒÅŸÛŠÉäñýû -ìȔ߽«ÆãÛŷØñéÍ›–ïﻋ‘Èñî®˜Ž—ïï‹··…ÅШøý݌҆‹××ÅÀ ¸øùÙôû‹—Ž—Åóó¢Á”çÏΊ¾ßñô -ñ´øòÒÄñâ™ññ‘ÊÇÇŸÅÃÃâÁÁñîÿ¿èñ”÷ö¿Š»»Å¢Š–··‹ÛÛÈÅ„©ºÜŧ‡³¸±ÑÜ߯ýÚìŵµ¢ÅŒÒ´›‹Æãñ -îõµ¨×—µÚ“âÊÊÑ­®®˜¯—•Š¢ÌÖ…”Ê‹âñѤ°ª®¬”ùü¢•×äðŠìö‹‘Á¨ÒèÅŠ¥¸±Ñœ­¸Ž•ûúŠÝŽÝÅ––âÝÝ -çñÙ³ŠÂüëÙŠ¼¢ðéù¢üáÿ€¹ÜÓá—ߊ٬øãùçÂ¦Óøéá§ÂºÒ©Âõ‡…ä²ðþ°½È¤ŠïÞ•¿âñÂÛ·…Ø’Œ¼ùӈƋ -—÷÷…Ȥð÷ô׈‡‹··àãæ¦Š•®¯º‹Áàáꪀˆ”®¯‹þÿ‡áâ¢ðþÞ ·ˆÂÙÙÁ竃œž–ÎΊ¸ÀÞ¸¾®àØáè¨àõ–ŽŽ -öŠûû…§°í·×ØÝ­ììܔд°½Ýرڪ ÈÁåªþ¸…Âú²úÁ­•ϬւÙܰ™öŠ««…ƒ¡ Ó•ÖÖŠšÍÒÁ¥ª¨•…¹ -õ¼ “•¤Ò‚ˆØÜ‰Š‚ÁÄáþ¾°·×àðЬÖί‘Ðè…Š¥°¾ôÞ “‹ƒƒ…ãÞÞÂç硥ѥÐÛÛ¨¨Ä§¿¨Èƒ¡òÿéøÃ¾—ƒ¿ü -«’Ïæó¿ÿŒæ²™üÏ¿åÓÊéÊå¿üÈž§“ù÷ïÁ¢å‘ÿ÷®Ÿçëß¾…±ØþÍù›ü´š¿¿ÏŒÇ¢àŽÉçïïó··ùШÿý† -‰ó××ùÀ ÿ¼ù‰üþüÅÅãþü¼Ïù³Ï³¼Ï—¿½Í§Ÿœäñ¼áßù££üááÞóëÍŸœä÷÷ÁóžÏþﯿ¿»›ßÙÉ£è¸þû»¿µ•Ç -ϼ˕÷ºóÀŽÇþý½ï·ýçí¶¼Õš·ÒØò¦ÓÞèÌ蛌ù½¾¯Õ­æµš¼ÚߢÞΫ”ù™¬ï¿´”—Èò‹Å‹ù¡°¯äúù¼¼—›Ÿ -…ͳ™ùº½¿þ½ŸšÊùçÇÆòƒƒùãÞÞüç羥إßÛ›¯¨ÄÆ¿©Èƒ¡ò¿½ü‚²ÙÜÏ¿Ùç²™ðÓϹ”ôº—ÊŸÚòÉäîýû -þÈäÞ½ËÅ㣹·ïÁ¬–ûùó¦—æîïú󑈸»Ë…¿Ã¹ÛÛÜÍͤ®”ÊÝßƒàˆ°÷õ•‹„ò‹——¹¿¿÷ñÉ‘»¿Ï‘Äîì¬çóåÎÏ - ó§§¹œÏŸ簬÷ô”ô»¼Ìù½¹ƒ÷ƒÜþþÎãÉÿííåÜîÜÎðÎŽÅóÛÛ¹Û­­œ‚äܮǜәó¸òëåë¹»½ç³å߬֜Œ³› -ÀóÆãîõµ§»×çôºÜÊÊÎέΩԹ¥ì²§—ç䲜ŠÔš“‹ó¢Ñ¸îá¡Çççø­¼œ‡“ã³óÀŒÆîæ¦Ç¥Á榧óã㹯‘‘ÜÀÀŽÄ -¹Êõô䚛󯵵¹ŠÂäªÝòÀˆìÏ¿ƒÌ̦ûÓÏ ‹Î¦ÒÙŸÀª²™ýÿ¾›ÈÝ€÷ï²ñøöéíÛ‹å߼ɯ£Ùûû½‰äïî²áð -ƒöö¶ûóƒÂÇ¡ìõõ¶˜ÌðÞÝåƒìåÎåÖïÏÞÜ€ãóó¬ÁäÏΙ²¾ßöô´û¾ò’Åñìññæ–òÇÇÙÃÏìכ½¸Èûîïç÷ö²» -õ»Ù·»»³“ŽÅÑìöööëÒ«‹ Ù—«ë¸ôæŽìÆÆíÖîÏÚìٵﵬŒµ›³€Æãöõµë°ìäõº¬Ö›Õ‚貪Õöù¹ñ«Ðäå²ìÒ -ˆÒ֢ɮ®æ÷…¬ÀŸ§ÏÎÍ幜¬“‹•å°²´Ú…–ÂÉÎÎæÇþdzÃÃÙþØìÏ϶££ÛÿÜœ­©Éþø€ã…¡’•ù ÖÄæÓþú©“ -²ÎƒÔªóáÚ¦™„ïßç’lj̻÷ žÏý¼ý›‰ÅÀ›Â·™è´óÿŸ‰ÄÀÝݦœ‡ÎÜÞæîîÀÞ¨”¹¾Î„ƒç™««Ì ¹±¼„þÿæâ¢ -ôóþž¡ˆÌÙ¾ÙÆçËœžæÎβ¸ž¹¾™ÎàØæè¨ó†ø˜ñú³‡‡ÿ™ýýŒÇ“ÙïÛËìîæÜîÃÌÎΆųۯۙ­­Œ‚äžÜ®ŒÓ™ñ¸ -²››™»½ã³åÖÖ²–ËíÆìΘ̙տՌÁÑé²øÚíÆ£É¨Õï™ååŒÒ™‘¡Ë³ËË™©´ð£–çĢ̞†ÏÏðø™®·³»›á² -€³ôúæúºÃá¡ä¦¦²££Ç™ááÌÿÿ¦§§ÓÞžéê‡ÊÔÔ䪊‘óªÈƒ¡ÒŸ–¢Ê¥¿ü€ÉäëúýûȤßý½ËÇãàíÛ”ô¬–þó†Ä -£éûûô¤‚ïîîÒáðúöà¶ýóƒÂ¡ôõõº˜ÌßÝ᥃ðù™öóûÓ——éóó¼´Á¤ÏÎҾ🸽͟œ¤ðñ¼ýüœÆ°ÛôÑÑúð°í -óõ¦ŽÒûûúé§½·—ÞýÝÍ»Ýéþ´Š¦·¶Ò›‘›é„É»Üé•§³í𤷶ÉÒöûÚæË¯ÿ­¥­Ö´Ùœ¦¶™ÒÆãÚàÖÈëõé­¶½ -›²’Ö«ÓªÕÂÚ©Ì«”é™ì¬­•¦¥’ôââڨ̋„ßéùùôÜÜšÃɳÙ馳œ½³“žžÎϞͥÇÇÓäòøúè¨Ý×—îýîη·§›š -ßÒÕÕéŠÂàð•ù ÄêǘԲ‰Þ¿Ï¥Ê’©÷ïÀ¼žªúû–Äâ©·´ïÒѨ¸¿ÏŒÅ¢©»»Ž§îïÓ·· ð”ÊÝß§‚ÁÃÔÕÕª€— -Å—©¿¿õñ‘€º¿Ï‘„¸»úËùü©ÓÓÔéÉÉŠÇÓÇÇ ©ŒË¥Ž°ÓÞïêà µ¿ŸòøÒûþû©ÝݔۋÚÙÉ¡èêû¾»µµ•ÚÜÌ -Ì¡ÈÊåʹú©‡£µ¾ž²ÛÓ¶Ûêí­þåµ¦Ìæ”É”²šÓ†ÃÊõ¯Ïéô©••ՔƓҩÒËåË©…¢¥—§ƒ––Ò’ÉʬºÎ‰Ä©……” -ŸŸâñÒÜî¨êö¶Å⥘Œ”–¢ÒÓÿ““©±±ÔÈðÈêð°Õ×—»êîεµ¥š¼›ÓÕÕ©§Ï´«ˆÔäŸÉ÷„ø¹÷®™ƒ·ï -›“±Øò͛ͦïïÁ¤’û¼»Ë†Ãàöè¶ù󓌅Àõõ²˜ÌÞÝृðù™ô³û“——ÉóóüÀɳ³¤Ï±—¼½Ížœ¤€ñ¼ùüŒ°¬ -„ùô”¼¼Ìú¿½Éƒƒäþþ›ÒãÉîí¥÷‚÷“î÷òç§ÿ‰¢ÉííäÖÖò󳉠Ʌ—«éô¦·¶—’ëëÉ»½é³¥×Ö’ÖëÉÒìΚÌÉ£ -ð±é°¤õú¤‚ΗÜÙÉ괺ɵº¹¼œÔ‚ª“òùÒ¦Ëêʥɱ¸¹¸‰˜”Š“‚Áò°þ¾¹·—äðÙ’ìö’ÉÌÒ¡éÉš­É¡¤ä§¦’ããÉ‘ -·‘äàಷ·‡ÙÕ•ìë˶ܶ¦««“•…¬Ð×ä‰÷¥ï’ñ¸øû¶Æ‘‹·ï’ÑÆ¨¸¿ÏÄ¢‰»»Ž§îïƒÁÍÍ¢”ÊÜÂ߃à°ñõ• -øˆ„’——Àï°ÏÜܤÎÏ“Œ„ÎÎ’¾ßãâô´ñò’ÀøñðüœÀ°ÄíÑÑâð°áõ°¦ŽŽ’ûû‰ý§±·—ØÝÆÍ¸Ýàç§¿¢‰­­Äææ -à‚Á’®×ÂéøÌ¸œ‰Ä¥úúÂîÏØì¿‰µµ„Å’°‘›“¦ÓÂèÌ蘌‰½¾¡Ó®¥´Ú„ƓЭ«“Ëˉ¥²±¡Ð¤ä²„Ô³šÈ’‹‹‰ -ý‘¨±°àóØ“¼Þ‚ËÍÌéΦج„ƒ‘Ø™ÉÌϧ¦ñ¦’““‰ÑуÄððâà Á좥ºº’­­ÿ‰††Äë׉ъÂЫòÀˆÏøÛ·ñØŒ¼ -´ù“ÆÁýý ¼’÷÷ñðΘÜÞÆïîâÝ¡¸¾Ž‡ƒ£àꪞˆÄ¯ò¯ãþ¿¸¸ˆçŸŸÇ‰‚œÝÅý¾øééü½ä¤Žãàø¸ýŽáñ££øá -ÎáÜ럜€ïýý¸Ç“ßÛÿ‹ïîÆÝîøñÎΜÅãÛÛŸñ­­øææœòÁâ®×ÜéŒü»œñøúšúÜîÛìñù«µî±ÄÍæ£¸É”·šã† -œÃܯëôñý­¶®ÑÄÕ꡸ʕתãŠÈÅܦ‹¯­ÅÆ¥’¸Øœ—‰áâÂáÜ ˆÏŸÏÇçæâœÎ—œÍ޳™ñºü½Î£Å©Ôøääüü¼Î¦ -¿Ç‡†âýýñŒ’©ÞÙ™ïíé·´Äß¿Žœ×‚ô±¢§…ˆ½ù“‹ÆƒÁýý¬’÷ò÷±ð˜ÜÞÆàîîÀ¨”»¾š†Áàìꪖ¾ˆ€Ë˘ߟ -Û»¸€ç籂—ˆŸ¯ö°ú𻹉á¸ä¸¾ŽáØìèШöø˜óúÁáÁÁìÿ¿æñ·Äööâ»»±Í·»¶³“ÃÑÃØööì뫶鹙Ø⊠-빜±‡£¶±¸‘ÛßÙí±­›­¶¶–³Úèã–ËÌ쎙Ä̱£±æ°Ä§ôú˜Î—ÓêðãšÍÌ­Ž©ÔÔ±¥²¦ÐÄäòØÒÒ̪ÿ‰Å±ÅŘ -€Ð˜“ˆâüþ÷ŒÇ‹ñ¹±Ù…Ù˜‹•ã°âܳ³±é阅þ’›œŒÅàÆÆâÃñþ±þØÏϬ££»ÖÒ’«¯Õ–ÕÅž¼ù∇éÇŠ¼”¢ú -´ÿŸÄÀÝÝø´œ†··Ñ›°›ŠÅ¯¯Á¬°˜½º‚Àûôò’øýÑ‹ç‹èù¹ ˆèíÙÙÔ烧§×Ñ““¨ŽÇõ†ÅŽ¢‹‡‡Ñ¯—œœ -ŽÄ÷÷£žÏôÌﯺ»›õ»á£»»€Å£Û¿ÛÑ­­èææä”Á¢®×ÔéùŒºœÑèµúúÔîÚìßѵµ¨ÕšµÒØ¢æóÔ茳®®Æ†¨Þ -ŽŸÕé¢ÚíÔ¯£‰ªÕÑ•ª±ªÔÆ•Š¨Ü¨žÝÚŠÊ¥Ñ͉¤º¸˜•‰¢‹‹Ñ¾¿ºœ¿Ÿ›‹ò¸ˆÑ¶»ÊäÆ™ÕŒ¨–¥Ò£üÓÓщ‰èè -€èô䤺¸˜Ÿíë‹öôÄ»òº¢­­ÑúúØèÕÕ´‚öá•ù¨Ääîø®’ŽƒÛÛÈé͈…¢×פ ˜ŒÜÝÀð òù‰üþȑҏ¿Ä -ëäìŒøü‘Ó÷ÓÈɉÀñȹññ„ÃÀÑÑ›äð°âõÆŽöŽÀþþÄ㉃ìíÅö÷£îž·ØÙ‰ èäìû»²µ•ÙܹŒ ÈÄ劸µ‘‡£²±‘ -ÜÙßØí‘›–­²¶–±Ú£´–ËÄ쎘̚‘£±²ºš±à˜¢úýħ‹³¬¬Ä´šˆÚ„Ñ©¢Êåį¡ˆÈå‘™¬ò¢•Ƥ’ÈâˆâĤЬ¬Ä -î„‚Èüü„ǽ‹ð¹‘ÙÙˆ‹•á°¢ôú儯‹Ð¨‘É×ÉÈøø„ÌŽÀŒÇ††¢½½‘îîÈûûä¹¹Ò×—©óªŠÔÂû±ô¢…ˆßÞ† -àïîÀ¨”¾¾š†ÁàøêŠ„ö‚áËËà÷‡¬¯®Àùù˜ ÛÀÙÙØç‹Ÿïž‚““°Žƒûãã°†…Ž›ÀááØëŸ¾œ„÷÷Ç“ûÞÛ‹ïî†Ý -æî°³“ÆÑðáööøë«¼¹Ü™Æ°Ë…œ·Î°Ã‘ÞØˆÿ¯¯‡íö°Í –ÞÛ‹Û­áÑ‹¥ì¶‡Í¦ƒ°Ñ˜ÞÝ›ôŒá®¬Õ†Ä×ÖÂšÍØ­ -ÒŽ«Ôᥲ¬žÐ„åò°Ì–…–ÊÃ’ÉØ¬’Ž‹Äá¡°¬®„ùü°—åæòÃœÎ˜Í„Ž³™áº½¼Œ³“žžŽÏ͉…§¦Âããáಹ¼´”îï -º“Èá®®ðŒûû¸¹¹Ü×´—þõªüÃèߌ‘øØ‘‡šÂ„¾íúº”ÆŒ‚««ˆ„쮯ߟº¸–€çç¡‚€çô硟œž†øÎÎ€Ž‡Ž -ØÃ˜†ŽŽÂ‡Å‡¡¯—œœ„ãö÷ÞØÛþ‹íî†ÜîйΎÀÑÐöö˜èë«´¹™Â÷Ë…œÎíÃ‘ÚØˆ­¯Ÿ‡ìöÍ–Ú¨Û‹Ù­¡‹¥ -ô䶇̦р˜ÚÝ™Œ¡ý½¾¤Ó…´ÚÓÐÊÊÈ£‰©ŸÕ¡ååÒ™€Ò¨ÂòùȦ”‹É¥¡‰¤¤š–‡Ä¢Ð˜à’ˆÂüþˆÇî‹ÍÍ…¸œÐ -ììˆÅб˜×¡™™–¢ðÒÃÓÓ¡ññƒÐèèè䤴¬¸˜êï‘ÈÇ¡ÎÎÐÛÛ¨Á©©ÔÛ›úõøªÔÁˆØÇŠˆ¼”¢øé××ÁÁÀ€ÜÞ†ý -ðþðñÎσœ„Î΂¾Ÿ˜¸½žœ€œ€žŸ‡±Œœ°…כؼ¸ˆî§¸·—ÜÝ…àî÷ð秈¢Øàû»¸µ•ܱ܌¢ÈÐå‚ -ŒÎçÐáˆîì΄×׃öûЬ拮­…­Öúà±„Íæ É¸”´šƒ««Á̓¡¨×‡õº© Ö›Ôè‚ê„õÐ¥Š®¯‡ç•ʠ‘”Ë‘ƒËËÁ©´¨ -‘„Åâ È”„”Šƒ‹‹Á¾°¿¸¿Ÿœ›‹Þò¹ÁÙÙ ›È䲃ôúˆÆ‹Ò©ÁŠ¥À¸¹™œ›‹’¿ÉÁááàÀÀÛ°¯¯ØÓ“ì쌶¶†›› -߃µµÁ—¯ƒ¶•„Èü¬Èü¡‚——ÀïŒÜÜ€óóÀ›³³àó…ÎæÏÁÉÉ€ÇÁ¹ññ€ÃÀÑÑóàðø½ƒ–ƒ°¿Ÿðø‚ ûûà÷·àö -׃€Š†¶·ƒÛÛà󳩀 —«àôš‚‡£°±‘Ø¬ßØí›­û°¶†¬Ö€ÅÄ’°›ƒ¦ÓÀÌ茬®†Œ†™€ÞŸÐé‚Ú°íà奠ф -‡Ôê€Ê•ØÞ”ލ•…¢ “…––‚ÒéØÀ¢‰ˆÅ‘€¨ ”†––‚€üþàþ¾°·Â—àòƒœÎ€‰Íް™†£˜°³“˜žŽÐ¾¨©©ÀÄÄ -€àô´°²’˜ŒšŠô÷‡úû¾ƒÝÝŽŽÀŒëë ±±ÐÓô“øù²ðý÷èߌÑúØ‘‡òÂø¯®üççý€ ÀÙ™ßçÞƒ§§þ““€ßãàøØáà -£èÈÿøˆ¼Þ»ÿÁØß÷ûø¼àïÏ¿»ëž÷»ÁÎŽŸÅçÁö¶ÿë˿ӹéÇàòùοö¶·üëëþ»Ýïÿ³ù×Ö€Õêµ·Øüæ³ßä -Ýò›þÕÕ¿ßÁà×ëýº¾ß«õ¯¬øµêš¿Úíשü»ËËþ¥Ò¯Ð«øåò¿ÌæßêÚòË¥þ‰Ä·¿¸è—‰üÂù¡ÿáÁÏçû÷ççý¼žŸË -áõó¸þ¶ÛÏââù™Œ¿î—§ÑüÔªÿêÉÊ¿±áŸŸ÷ï“ÉþááÿàÏ ¿¿ßÏ¢ùÿ»ºüííþ–ø–ÿÿ¦Æßÿâ…¿‚ÿüãÅžŠÁü -ûÚÙ™áóÓÓðòÂุÀ¾†˜ÆœÃÃÂë…‡‡ëÄþ¾ðøˆ½¶½°»Ë¸Ýà²ç‡ÀѰ½Í˜ìí‘››€Áƈ—‹ð¹‰§™“ð¸ˆâ -¼ýØí„ÍÆ£¬­‘Ö«°ØÖˆ³™°™ˆ£‘ØÝ¥Œ†Â±¯‡º¡Õ’ä««„ÆÃ¨Õ„ÊŬ¯“Ê‚¥¡Ðò¹¡¡“‘Ò©¡‘¬â±±¸ÈˆÄ -Á„ÐȈ„„ŸÆÏÌÏ“¼žÁ‘å’œŽÁæ“„¬–ÁàôºÚÁ£‘ÓÓ„…ðÂÌÎ’ããÄ許²ÂŒÀ‘ƒƒÄߟÑÓÃôö’íí€Äó³ÑßÏÔ - ×“¯ÞŸÜÿ±Ä¿úØ‘å‡ÂøÎÏÁÉ݉ÇÁñ±À†°ßÑ‘¸¼„îÞ¯ïà€ìï™û¼ž°·‡öð÷ýî·ØÙñ¡¨ØÞöíí±ù¶·‚øÜ -Ê®àôúœŽßñƆØß÷Ùíú¾›¬­ù¬îÖŸÅâ³›ãÉ䳚ý««Þ¾ƒÁ§×ƒÎ§ÕúÖÖüºšÏ­ö©Ô«¾ååŸÒéÓȨüò¹Ï¦ó -¬­­ù¤ÒŸÄµâ“‹ý‹‹¾Ÿ‘È·°à“ˆ¤üü¾ïþÞ·Æ·çãòýœŽÍö±Ø¾¦Óǧûææü“ÓÓ¾ŠÅ·µÿ囘ðùÈäßð°ïð -ÿÐ×ßïëíõ„õ÷ûº»ýíÆí¾¦¦ßý½ûïõëßó羜ŠÂüÛ•ù´¨„þéÇÇ€‡Ãð££ðøˆí¼Þüà€ìïÚƒ‡ßÛƒ»»ÀíÆ÷ö€ -ŠâÛÛà닳ßÜ„ˆ‚»ÜçÀéÄŽ°±Ï¯¯ãö»°—ÙðµµÜê…–‹î¶ã¦“¬î´‚ÕÕÜà“ÀõúܧƒÚέ¾²‚ë´¸¶Ú«Ôøò² -Å®Ô⊅®—¹ã²™¾´„Ëû¥¸Ä‚‹Åø‘⢮’á¡Ǿ°€‹„¸ŸÛóøøÜœÎÓåâœŽÎæã”¬–Îäâôº¤¾³ƒÏÏãÔȪ¾µ…ÏÎâ -ããøè¨¾²‰‚ჃøßŸÎ¢áÝݸøÇ‡ÞÚŠ·òµáõõøë×Çøóçø…¡þ‡ÃÇŠ¼”‚»¼º‚‡‡˜×‹¬ŽŽÀþ¾ðøÛ°½½°»‹Ü -Ðîì燠¨Ø¿Þƶ¶À榽† ÀåœÎàðà››àýþ³Û͆­‘­áÖ«°Ø°õ³™˜Ì˜Ñˆã­®â†ƒÐë걎Ó걕ƕ Ñà굦 -ÜÒáˢ҉´©”˜ÜŽÉäÈà鉓ʱ‰œ„“‹±ÅÅÌÆ¤Â„ÂÌ Àáøüìþžãñ»°¹¹ŒËŸΜŒÍÆØ¬Œ‡ÉÄèôìæ†££Ñ°ª•£Ð -ƒ°ÉÉìüœ›†›ÃÈäìø˜ü›œÄúû±ÞöÞ¬§‡ëìÄïÚÛ±––¬±þ‘«­Åªª°¶çϰǾ˜™â¿ý¬Èἇ‡àÿŸø°¼àïìîú -Ýî°³ƒÐ”øìïû·¶ÀæÙ¦—Á€Ë…œÆÎ¯Ã¶¶¼·ëëÀî÷ÚìÔàíÍ뵂‹±Å붃“Éëð´ú××Áà§Õ뽺Ðêñ½««ÞÆ« -üÖƒ•Ê»¼ì”Õª½Š…×®£÷Êäàéɫѕú¥’¯ØìÌÝÜôŠÄÞ¡Ïл°à•ˆ¼òü¾÷þÞËãòù¹Ü¯‡ãÏõ²ÙÞ–ËéËàøéôïÌ -«Œ—ÆóÒ©ÞòŠÅ»¹é˜×ðŽùÉäï“Ȉ÷èÈ»°ßàíëó’ÈÞñîîïLJ·­ÏÍÛÜìíèðûÖÖú«ª¼Ï‘žù«ˆñß¾ÖÖ䡞ÏÛ -ýÛƒ»»Àíöãì쀔…ÛÛ€àë‹ìîúº„¸ÜÀéô¸°œàレ¯ûéìöà³ùÖÖï€Õê±Ø€Ù½ì±™€ÑèÙèÝ…†ƒÇ¯÷ùèôÀ«õ¬¬ -ˆø´š ÖûÔ†ªÏò²Ðª½²Š…Ç®÷È䋞¥¥ÔŠ¤Ê’ØìÙÜôùˆÄž¡Ð³°¡à‘ˆ¼ü¾çîþÞÃãùææü¼Ü®‡ÃñÌåÎúØì“é -á°¼ôºçæ™Æ³½í¡Ò½’”ŠçòÒ³±¹á™›óŒŽúøÆÆ¼ÃÞÁøÁÏÿ¿§·×ÿÓÓãéêò´·ûÚÛ½ÍÍãžúúÏÍçÍÕ«Ï¿ú¾ -÷ûî‹¡þÛÇ™Š¼”Âý黨»€ÅÁö¶ØÍÚ‚››€Áܰ®—ðºÃ¼¶¶ÜëëÀ¶›ûíØó­Àâñ›ÍÀÈäò›àõÕøí°€½Þ­Ó -þ­Ö½²âÖêè€ÚíÖ©À‹ò²Û©ô«”êÈäî¥Ú¥·Ôê–ÈÜ â±ØÜô‹Ä¾î¡Ð½°à–ʈÜü¾ûþÞ¿Íã¹çæÜÜ÷®›ÃñÏκ -™Ùì·‹åæ²ÍÝŒ†›Î÷Óæèîéé·•êý¦ÐÜ““î‰Î‰÷ؘûôÔ„½²âžžöžŽºûûÝýýüî’ÉÝÝíîìô·µ¹ÛÚŸÜ÷ -îõµûåË÷Óó§îŠÂüð•ù¨„º½¬îíÍÍ€ ƒÀå‚Χð¸ÃÀƆØßÇíœöà³µµàãµ¢–‹°›‹É„šàõ•„µ˜€Þôº -¢Ô«…««¨ÆÒƒÔêԥ—‹—Ò‰ª”À€®Çå²ôé‰õ•ÊÄ‚ŠÅÃè⢪’¡ÀÝØÀ…‚”ÏÇççÑžë›Ã¹Ü”ÀÁççѶ›å -±Ð¦“å°ÐŒº™Áé´èôúš¥ÐЩ°©ôò’˜À¯ÇÆÐÑє̞Ƈ‡ÑÁÁôŒà€íëÃɤ›´§‡íê»¶ºÐÖÖ´¹™øíèÀëêÐ× -³¯Ñ—¯Ð§ÏíÑï¿ýâˆÿ“õ±¢…À¾ƒÍå‚Χð¸ƒÀƆØß‡öÞ»°ÙÀÚš°þÚÅ‚˜ÍÀ€ä‚Æ£ØÝŬŒ† ×ƒŽíÑêÁÊŠ¢Ñ -ò€µšÑ©ÀòÒ²¢Ô‚…‚‘‹Ë̆¬­¡¤Ò©È±˜€ÙÜ„¢‘¢”È¢‹‹ˆÀ€øðüäþžáñ¹¹„ËŸœäö–᳑–À‹á²‘†ƒ¡ -—Ó‘™™„ÆÃ£¦§‘ª•¡Ðƒ©©äò’™¼ŸÇÆÆÑÑÀää„™žÆ†·†¤¿ŸãéíÅúú®†®¤£ƒéëÃìÚÚ¦¦¤¾öž©­Åªª -¤—¯§ÏŠŒÂüüŸ•ù¨ç„ãÓ¶¶ÀúÞº°Û͆ևրՊ¬–शƒ“‰˜à¢õÕá°€½žéèôÀ«õ¬¬Ú€†¨ÕŽ•ÐŠ¬¯»”Ê  -ìЀ¹Ü¡“µ¥¥‡ÔêÈ…€ØìØÜ„¢‘èô¬¬€ïÀÁç»æç˜¼ž˜›óðÉ¹ŽŽÇ±»ëò೬–ƒÉÈô°˜€Î÷Ìá̸贇•ê -á ÐœÓÓŽÉÎÉÇÄ„ãüÜ”±¶æ “£ö£ŽááÇà üãàÀÑßïèííõôô¸º»žŽööÇþë«£¹ÙÑØ·è¨«óÔÔ¸ÛªªœÏŸ»ž -¸¼ñüóÍ—Ãçü÷м”Âþ€é¶›ØÛƒÖš«°Ø€ÙŒÌ˜¦à´‚ÕÕà”°€½žèôÀ¯«µ¯¬€†›¨ÕÀ¥²¯¯Âƒ¥’¨”ö¹¢œÈäàéÉ® -Í•‚‰Ä®–ƒ¥ÅŻȄ„‡û‚ݠ€üù¾ýþÞÎ㩹¹»—ëçðÿì³³€Í¶³ØØö¦ÓÎàØ½éôû̌ƦƒÓÓöªÕΟ¡Ø§¦ì““ -»öññûؘý’ôÔΦÛÇÆßìÃÃöÁÁûÿÀ€½¿ßÞÛüë§‘ìÝÝöñÎÎûLJ½­ÇÍÞÒâïê²ä·´ØëëíÕûÕöׯìÏžÍÙÿøÁÞɈ -ÿÚ‘‡ÂØ­–ඃ“‰˜™àõµÌà€œú½Ðé€Ö‹¤ÖÖ¬«š«ÆÌãÕ«Ê…–ƒ—Ò‰”Š ±—Ûå²°´„¥¤Ò«Ä‚Äâ³°¸è•‰€Ð -àèÝØ€‚•ÍχóóÖžÏȺ·‡¸Ü«‡ÆãåÌÚçç­Þ축Ų²™ÿ€Á°ÒéÖ™ô™«æž¶’ҩ֊źµÈ…¦§­““Ö½ññëè¨•Ì -÷¶ŽŒØ‡‡­ŒÃÃÖÁÁëÿ¿¿µ¯ÏÚÛëÇíé±ö÷Û»³º¬Ö¶¶üë뫵¹ÙÚýØè­¯·ÖÔœØß¿¶¾üé»ýñÇë÷ßÛ¯¿þúË¡þó -ðÅžŠáü´Õ°Õà°€½¾Ì§ƒÚ­ØÙ˜šÐ«Ê…‡–—Ò‰”ŠŠ —ƒ™Œ¬­Ò™¥Ò ‘€±€˜¬®šÅ¢ –”‚……£À€áøü°¿ïäñ -ŸÀÜœ‘Ë…œ™ŽñöÖÈæƒ†–ËÈäš™Œ¢À§›ç挴¦š˜ž¶Ò©ÆâŠÅ¸µåœœð´Î̘ÇÇÌããÆÑÑ£™€ìœ™±Ž›ÿ‡†ŒƒƒÆ -øãÿ¿±¯ÏàÈ¢™ûúŒÝÇÝÆÎÎãLJŸ±­ÍØÚêìàî¶¶¶šë럵µÆêêãîÕ•ñÅ‹ãÓÿ§ÆÇ•„ãø•ù¨„îÛÓêÁÊŠÐ -Òè€Úݦҥåå Ô‚…‚ƒÈåÀ¦ƒËËÀÀª…’‰‹³Á⢉€ÐÀˆ––ô‚à¿óÁü¼ŽÇƒœóó€ËÕñ¸ˆàöÖÇæƒ–‚ËÇ䂆ÃÇ -秃™™¦³›ž†ÔªŽÂÉÑÍÍ馧ÁƒÄ„îüÜ·¶ù¦›Õ‘ɺ‘‘Ýð°îèÈÈ·¸¨›˜Ðßõ÷ëúúô½ñ½º’É×Ó£§ëêÒõöêº -°ºôííºÖÖÜÝ󳮩É×ÿР««ÓÕÔÝèÞ¿Ö½ü©úûþÜ÷ô©îíñãÝïÿÿå¦ÿ¾¢…Ðÿñª•ØÞ†¤Êå™ÂäòÆ “•­­© -À”ȤÀ¬†‹‹À¤‚¡ØðØ€‚àóÁýü¼àñÀÜœãšË…œŽ˜œ…춚łÌǦšÁ€ôº˜…™ÑÓèàúچͥª©”°µÇ¥žœÔÏÌ€ -ññõؘúôØÔͦƒ‘‘õƒð°úèȽ¸ñ¨ž˜Ð÷÷«ŸûúÔ½½ê’¾ÉÝÓ£îîÖä÷õ©»ºÔíÇíê¶¶õë«»º¹ÙÝÔ¤îœèÐ×Õ©ëë -ßÕÕÕꪪõµ‹—êçÏÔσž¨Ÿ½Ò×’ÛâßÔ䡊ÎÏ“ËËä²°©´Ô¦•‚‰„›ˆÅå‹‹À¤˜‚ÂáÙ‚´ˆ€Ÿæç­‡ææ€—‹ - ¸œ°»‹Øì©À⩘ÌÀà˜€ºĮ̀蘴°½­ Òí…‚¦¦”““ àâ±¾®˜Œ›ƒ££Š²Ù˜±²‚†‡•ÃöÊÁÁÅÀ€›¢¿Ÿôõ©ú -¸û•¤’¢§ÇŸÑÝ­èêÒô€öªºº”ííãŠÖÖÅË‹¢¹ÙÑØ¨èè†ÐÔÕ©êë•ïÕÕŠªªÅËÏ—Šçϕϟ´ªþøÁñÝ÷ߊßýîË¡þ - åÅžŠ¡•È›ÊÄⰸئŒ’¡°ìáàˆ„åü¾˜ŸØ‡¼ÞÙÜœà„ò‡ƒæç‘›Ø¬À䂌†ƒÐéàæ†ÁÐèàúšÐ©å€Â‘ÎÍÉ -€É°±¡Ÿ‡ŒããÒÑÑÀ¦¸ËÇÆÀð°ô€èˆŒŽÊ‡†ß¤ýý ¯ÏÚ™Û«¥‘¤½½ãÒîîé×—´³ÓÚÑ¡íïÇ—¶µÉÛÛ¥Œ­­ÒææéÓ -‡“´±ÑÚ߯߭«“ÖÖʫӫ¥ÕÕÒׯѤ¯ÞÈŸ½“оù¢ýüØúÿí·ÒßþöË‚¡þéÅžŠ¡Çü´…… ”ûñùåóó€Ç–«››«ãò -±‡ƒæçËØìõÀ╱™€Á˜€ôº˜™´–ÚÙô´ Òý…‚¦¦À䤸ð₌ƒ±Ð±°ºŠÈäáȈ˜ž†ÃÃÃÂÁÁ°° ì±ï‡ýýÂÞÞ -⡉„úú„݇Ý®®áç§Ûèè¶·‹Û¿Ú„­­Â––Üáó³°©ÉØáØ¨ìèÖ×È‹ëë…µµÂñêêáÕ•ðÕÖ«á‹—ÂçÏ¥„ÏŸŠÿøÁ -ßøè‘ð›ï„ìßýõ兊··×Æãå–ñ¸å³³ó€Í®ã±Ê˜ºÌÀà”Ñéåä³³€Æ«›žè†Ôª Ðʦ·¦À䤘˜€ãããàìŒŒŽ -ø‚²™ŒŒ€áÀá°´„†‡ÁíÀ€¯¿Ÿôõ“ÞÞž‰„úüúøÝÝ «‹Ã×Ù‰ººøí÷í¼¶¶ÐÚÊäëéᵷ󚽚ø¼††¸Þý½¯®Ž× -žÛË«©áÕ×ÍóÞ¿æÕÕñ®Þ¾ä½øÁûïöŒ÷ô©ïÉþ“ÞãǼᄉãýýµ¯’³©Š¼”‚Åä¹–±˜ŸÑéåà³³å´ÚÙôê´ Ò˨”² -©©²Éɰ±€Ñ¶¾Þ¶¶†ˆÆÇ™Ü¶²ž‚†‡ÁÐ˜àœ¬›˜€ýý› ¯ôö‚’·‰ÕÓƒº»ÁŒ×—èìäõô»€ööÐÖÆê°í…­­¬ææ -€ÖÓ“èì䵎´°êëÙõõã¬ÚÚÐÓêõ®æ½þͪªêâ½üÉúñ‚Ûõü¹ëÙ³ÖÇÓ§¬§ÏØßúÿÏúôˆõÍþ·¬ßÿžõ×¶ÿý告¼ -Ž”‚úÇѨå¤ÓÓŸÍΖÍþÌ”—¿•Ž–‘É嘣£åÃÃåÃÌÃ僃àà ß¬¿¿¬¯ô¹ö‚’©¬§‡ìô÷ƒ®®ÐÙ€‰ººÀû»è -¼ëƒ­­ ¥…Œ´·ƒ¦¦êãø£èè Ö׃Ẻêí­¨©á¡Ö×Óß¿¦´ÖÕׯ¨¯˜ßÒß¼ ¾ÿ¼ÎýöŒúô©‹õÉ“ê¿ÐÄŸ¿¦¾úÄý -öÛê×ßÓÿåûÛêïþ󧆇üûÑ „Ñ›‘‡Âÿö£‚£Ÿÿ¶´¸Ô¶¸øÙÀÀ„Ùÿÿçýý僽½å¤ÒÙÏ€ÏÙ÷÷Ù××€ÙççÙÇÇÙ -€û»èë«ëíð…­­åÍÍ ±©‰´¶‚††˜ÐßêêÀíö­¨©ÕÕäÃׯÁÕ•øõ·Šüò¥ùÅ‹Ûðü¹ùÙ³ò¿’Ÿ¾…Ïÿž¿ÿžüø -Ö±ùÑ£ò÷ßÿ‘¿ù†üõ׿äßýŽüÕ×ßä¿ú«¿½àÞßüŸýÝîùм”‚ôÇõÝôüÖÝýÿéÿêú¬³ó³ŽŽÏÚÛ¿ëëÿû¬µõ³–– -ÿ²ææÏššÊ䚛˚šÊêŸëËêêÊêëÁËêêÀõõÙÿë× ªªìÕ¦«ðò¥øñ‚ˆ¼ÿŽž½ƒ¿‰þÈúú”¼ùü‚þøôý÷ߤÇÁ£Ç¤ -Óï¾£ýû­éÁ›ïÈßÿÍúÛýïÉ¿ý­éÛ«¯È¿ù鯝ÿòÏÃüõÍϾþ–ÂöØ‘‡ÂüºÊ«÷§¡þ΋Ïÿ¼ŠüÅÿ®«Ä¯þþ¶ -ÏÄŸ¶ø‡„ýöµÄŸ«Äß¿íê¿À¯¡þ‘¡þ¬•þñ½Œñçªð멈ÿü‹¿××ø¿¥Ã¿úÿî¸ÿƒÑû©§ -] -::^ [s0; Color selection tool.] -:: [s0; ColorSelector] -::= [s0;= ] -::^ [s0; ] -:: [s0; ColorWheelCtrl] -::= [s0;= -@@image:721&610 -‚ƒ€í€€€ƒ“ÿ€€€€øïœì¼ùÓÛ÷·½ïßÿàþ•û÷‡ûÓáÛ麧ÍÛ´óñÄîòš¸±Ý›¦Ží¬Þâêø‹—Ž—â…‰Ø†¯Ø†ã  -èàƒ†ÌâöÕɬ旋À‚û„ÚÑ‚àˆ¡¡ô¸¬ú»÷œ¹ß¶ÒíÔ´íÏ÷æ²¼‡á„úè£÷éýüüÞ¯íåùú¹—´îÿËúù‡ýÔ¿É -ÓýÁþðÿž˜ÿ¿þù«—ûð¿¨øë×ÿ’ëü—…ÿÀбþÛÿÀµþ’ü§¤àÛª¿ó¿ü“þ±Ô…ÿÀÂìñáῃ…ÿ¼ÂÎÍü°…Ÿõð -™ã®Þè姃ü䈟Èùጟó£ÉþïøŸŠ”ÿ§àª¿²ûéÿÀŠþýõò±ùᑯ”ñ✥¿¯áå†Þ¦ùÊ–¶ÞíäÜëÛúÙ¶È -ݶᶲÍÎéÖ‰Þ⋊°×æøÙËÏõ•¼èà…Óÿ ©åŸÈÁŸÜ…¯›ñáïÌÁÿå¼îÓù¡‹—–žðò£¶¼æ´ë¹¯Õñ›ºÞìâû‹ïõ -¿°£‹½ìœºàç¿“²Ó£ÆÎñöβÉÉÛê¶ëøó·–ßèùÍÈÖ¬³Û¬¼ì㥬‡¯üýü‰Û‰ÿü·Š¾þ„çùѧ¤ÞÈáç· -ñùÕ†Û¿âõú¼Þ¨â·¥ì—¬àíšÞéà…×ÓÞëã÷§¼ûúØÛÏÞÁíÞŸáýÑÞ—­³×ÁÞ©öÌý³û†÷´ìš±ãƒï›Øéïá·ó¼áçõ -Š…¶®ò«·¿öÛâ…åþéï¢ÃÄ·²žûó䣾ü¨øúíãᇉ¼øþ…¿¼ÂÖ›¼çžÆöÌöäò„öï¾æ÷¹Þû«ø Ž›çø¸…ϺØ× -ƒÅþÞŽŒðà‘ˆƒÒŽÈ¸°óÎÉŽ¨Ø¯ÆæŸ†Ïôü¬±ç㟘ٻÉÏî»ïºùÛÙÅŽ·Û—øÝ¹ËÖŸ¿ôóâŸàßö¨¿µ‹æÿüŸðüø› -¦Òðõ÷ÿŸÞà¥ã¼ò–Ìßßâäö¤ÛòûûìÊæÏ˜Ã¾¨ä£Ò¾©àÿ‡›¸ãÔÌçíœîäÈÈÇû¹ºÈͱ‘ŽñÌÎ̱…Ǧ¸ºÍ -ÍÑ™ŽÌòøŽáÏŒœ²ñÐÊÔþ›Ÿ¸øèì–Ùãá——ßßûر›«•üú×Öù©ßÌþΖ¢öîÞ¡øð·¢à§ëïû‹þø–®¯½Ï–üö -ß’íçÙù¥ïäÞç÷¾¸ÏǹìÏçà±³‡Ê¹ÜÅѺ…Ž·ñù‹§ºŽ¸ÙÅ©Þ΄ðúˆ„©‰²È’¦È˜¤Áż鵧µœÒñ’Òω“ŸÛ¸ -²¾ÏÑ»‡œœòñÐÍþ¥¾¦Þ惕öûùÖ·ÀΠÛüǶÁ–ˆ¯Åÿ¼®÷Ä¿¯Àú¶üøÞ©øú»Õþ“¿þ‘­¯ßòÊÛ¼ö±Û‡ð»„öÝà -¹ïÕ¾¼Å¾ô¬ŽæñÙƒŽ¼©â؉Ÿ¿á䦧ëÉèæÌð›ç»¹×ÃùÊþÎ’¸Âₘ‰ò’•¤ª²Éœ¦ÑÃùÙ›ÎÏñÎÈÙ³ê笤ظíà -å䂟¯òÌ쑯Ÿù¸èçú߀ר»ÎÝ®°¿‹°ý“Ë×à•¢¯’ùþû؈Øùƒñçáû¥ öžÿûÎÞŸóÞ˼߻߽ÉÛ»·Ø¹ŸÝÇÙû -«–®³¿…ψïó¸ƒãßñ¢¢ÓŤ”ñÛ¦’óµœïäé‹–®´ó±‹²Ë½ÜžàòÄÉÒ’ä¤ÍŒ´É’ФµÉìÚ®ë¸ìà’󉋖®Ìó… -ÛóÎι¸ã´¦á‰ÓËœØ»áØª‡×ø´£ÈþŸí°÷±“ÝÑö›ì”îããå¿æ¯ý¿ÿ­­àÚÂüøž©øþñòÿöÓ¾ÝÂÄÿáߎ¾ú‡ -Žö²çÓ¾º·Éþóœú’£¸·¸þ—“™¤­äò¦€óɦüÂ…ê®Õó—¹™¤¶®ôò‹µ›ëýÜ›¤æù„ä±Òä¤È¨ÈÑ’²ÍŠ›†äÙ’õܳ -†òÍÌÕ«×켤¹¸¼À¥Åè®øÈôòÎÇ€™¿‰Î†¹×¾Î‘°‡¢ì«ò‘ì¡ú޽‘„ÿ…Ж‰‚¿¥ðÏÿ»ð–âçŽÄ‡ï—‹‚Ø™þ‰ -Ç¿àô¶Îîç›ó·¹¶›£ŸãòÙ¾ŽžáÓš„ŽÜàøÕιݢ¡³Ù¤’¾ä¡—ÊɃªàÊ­×›ÉÜî¡¥ëÝÜ÷è忀·†¸Ð¥¥ÕÆê„© -–Ó¤ªÈ¡ÕÆËªŽÛ†î™í¸éáÆ¼×í¤¬¼ÈÕ·²×–ÈÚæÒŠ°—ÖÉÜãìºÀ‰¡Îíðü“ª£ð©ìãóÃð¶ö“ú›õíé¬íãõ—¬ü -—Ÿ¿«²šŸÁ¾—Šâ¯ÿß‹¿âÂëüñÞ–çßåÜÞÎÄüÌÂÁÎæ½ÄñŽŸá䥰’Ò¸û›ÄŒÒ®æð¹Ÿ¯‹á¹ÚÎò•×ë¸ÑÄ­ÖÒ» -¯¹ÝÍþîŽé’¶ÂÚ˜é㱤«È×’®¦ÔÝÃú¬éúÒ™¹ë厣ÛÎÒÝÜòÜóã‰ëˤûï¸êçË€—ƒÔÜŒ‘˜æì„鄨§á¸Ñà -øÄŽ’þ˜õ½ê„ߥð–þ׋ñýŠï‹ÿ‹ü–âçôLJ¿ß’‚¯íÚ¿“²…äßðõ§Î×ÞãËÉڣϥÃܼʗü§¸ŸÀÙóœ§ý’Ä›Ü¼Ë - Ò¦×žð표©¥Ü¨àÖ½·›¸ó”´ö»ÒŸñ¯—ŒáîñßʦŒÝ̉²¦ÈÒ‘œµÃ––¬¹²ì䚸ïᾉŒ‡÷–Èߦ¤Íï·ý -ÜÚáÆª©ë´ÜÛçʘ¤¤®î’ˆç‰¦½°ù‚£„Žþ‘ÜÏÚ‡¬¾ëÇÊΖÿÃÒÞ–Üÿü½›è›ØÙÖâÃßúÁìÕÿƒ»¯ÒòçÕî¿Éê -ÿÛÜÚÃ͸Îñ€ë‡É¹ÎñµÓܽ×祹üË×¹ü…‹«é¤çó½Û›Å¤–ñ§»’´ºÒ›ÈèÙåþ‡™Ýäõ命Èף䌙‘³Î®‚Ü¥ -ñ¹êòµäêÈÓÕ“ë¤ÇÂÎì¼ßÙÉö’å΢ÓÍý¥²–Éߡ핻ÆÒƒÜŒñýƒ©äˆ×¢Ü†‹²ìž§ò†ð©·Ö³ö˜À½üŸáÛƒ÷í -Œ¼ï²øª‹¯ÛâøŸß¯ç轋ߙ‚ØË…þ§™¿¥ó«ï÷·“ñûîíê¥ý“Ò¾åîÎÑîœàö‚©‡ç¸õ…·®ñÝýË’“¹ö›ë™ÜÌáö -¼÷Ÿ“þ„ŒêîדÕÌö›¾¹ÏÈíáÁ€‚‡ø¨¥ÏƵþ„ùÓ䫨Ә¡ÀËÁœùî†òÍäÛɳñÐÁÃ…ž¬ë’ë¡Ç˶䬿÷ƒä¬‘ -×¾Îݰ·£Ü£ÜäºÜ£ú¥¡‘ËìüÁèœÁÁ„‚§Ø½Ê³Ê§¬ÿÂÒޯܿǵçÖÉì¿åþÿþƒÎ¡·¾ü·Šåžßÿþʃ“­äî§çò -‡Þç«ý䟢õ똙§¹ÿ¯îäœçÞÅÒ“ÎÈ»ÊÝ”îßãäÖÝÒ³¹û³€ôÇä”ÙðÁö­¹ä¶ï𰃼®òû¶¨ð脱âŠÇ©ÒФ¤ -ÌØÍ±†âÅÆúŠ”Ù¨š›§ÐΡ“Ç®öŠÜ䯑·Ì‘Õò×ÉÙ£Ø»ÈæˆŒÒ·¹›¥•î²×™ÂÆÕÂɬôßäí¼«ÿÊÙÊÉüÇðžÂ -³Å÷Ùø‡±ÇöìÛ±þ”Óó÷ó¯ÄβĔŸ¾³…¯ò¬è«¶ÓðŽþ…ï“¿¼ÏÈ»ÎÃÓ¼¸ðÃ—øê–ŠÙÉäÝ ³›•û÷¸—Îú - ¶™ù䖑ݰÆÎ•êÈëÖ¦¿Ç”öêÐÔÏñ¥Û”Ȩ™ ôŠ°Ò•å³”ÍÒ̶Ǚ²³¥ˆÖÊ픸¨Ùëàñ¢ÅžŠ¼Š”úøä§¿À -úÞ‡ëä„É㎙¥ƒÒ‰ÕÞ¡’Êø†¡âä‚׈ÜŸ›ˆïŒË§ØºÓŽû³Üûð¾Ûýæ·ãÙŸŠñÅï‹‚ÏâüøŽ”¼·¿»¥¯Ò²’÷ -Úøü¾÷ÑüÄ™ÅÇ©ºÍá¸ÙžýÁ£Ë”¸Ü¥¿…¼›¼ç¼Íƒ´òïñÄÕ¦Ù¹ä—óó˜‡ÏÈ«¡¯ Â§”µÓÑÜÅÉŸ¥’Ê©†©Ÿ¥ÜΓ -…•ʪÔÔ軨ÔÑ©§Òħ……Šùªì¼ÜñÒî¢ÜÍÙÞ’¥Ë”¬Ð¼ÚÊÑš…딄ÏÈÛàÁ¦¹Ê™ìÞã£õÐíÖﲖ±êÕÖ®³ü… -¨ËçñŸæñ¸þ‹ŸáØÇüûîØÞÁ´Ã«ÿÌýó÷⥻ÓãÃßÊÁóÿÁ³â‹•ïÒñÞûž¼Ï“ý””ÿÆùñÊÎÓ–öŽÒ‹”¤Ñ®ò•Çש¾Å -ÉÑŠÓùôŸÕ‚¬òóÈûÀƒÇä•ÒÐÁÄá­Åͼî¥÷´“²îÊû©ò˜¤ÒÊ¥ŒªŽ‰ª§¨Öѳ¢ÃͬµóÔ˜±©±Óã¥ÆÆƒµƒê—Õîª -Û—¨Ü¦Âǹ˟²€¥Áž‡Æ¨Þ °ÂÁ”¼øÀ´‡È–¯áû¬§“¼Ãýà–þëø®âšÍÂóÅ󬓜ÆñœÛçØñ÷áþŸãïÑó¿‰î‹š¿Ö -ÆÓ½ü±¾ü˜Å”¼¿êÿêÅíï¨ù›šß½Ôì£ú³ª™ÓõšªóÔšÞ ²‰Šë¼·¹Á“ÔÊïÒæöÒÌʾ¢Ž¤—⇔•ÐÐØÄá™ÅÕ” -…ÔÓÚÌù›ÏÕžÑÙËÕ€Õ§ÃԌҫ§Î¦Á’úµõšÈšô´èé°ÑÊà¡ážú‡õò‹Ô­Òç¡ÖÆËê¿Õ«¶Ô®ñäò°¡¥‘ʶ©†Â -Á¢…ì¾ä£—áÐׄ³Ù»ÇáêÝÖÒÙ¾ÁÕÒµÜɸ®àö¼‡ý´óDZòü†éŸ†½èÅÞÆû›æþÅÙôß•µÅÞëÕŠñÓð¼ÿ£Ðø‹šß§ñ -ð§ûèø„†ÚÃÔŸ§þ´õÇ稻ÀÝ’µÇר½ÁͪÕéÔçЕÅåøŽ•¨ÈçÉÆ£Ê‹¨ýÌÉà“Êë¨ï ¢û…ÊŽª»©éÍ£îú‘šÆ -–蜠ñЦ•˜Í³´ÏÒ¼ÇÓ³‘æ³ÍÖšáí´»éòÑä¦ñ‰ÆåšÖŨߥ®ÀÍ…ê•›ÔìÒ’ž¥”ž³ÙÄÕä‘áüÖŸ°Á–à‹ÿ†¾ -¦´¼©øî°øã…¤œ—°éÃúšóñŒ‡˜û„Ù½èöé¢þ寘üí؋ñ¸¡ÎŠžçßÚäþÊ˶ÚÞ¢µå½žþÄÓÏœùúŒ§§è¾ -ÚËó…š’èºâÆãšïÓèÆÃ†õÙÔçŽÐ÷ڂꊽ©®¦º”Êòüªª¨¨¥ª‰ñêÖê»©ë¡–á€Æ¡šÆé³–óÔÁ‹’–¢µ­šÚõ´™ -´è³Ñæ¡ÍƇ›ƒÖ…Ú—é¿ñÐâ婿¿Íš×èØ±§®Ìí„ꨘÕÐÁ´œÈ©†›Å„Љ–Úøˆ¿‡•¬–ȳØÊÃý›×Žœ×°§±ÿ -ºËÙŒ§ÐŸÚÃ÷©Úпۇꭦ¶±ñ–Óäß±›—ûé•£¾ÄÏÁËéØÂÇöºÞ«¥ýÃÚÐþÿ”ö“´¡íÖ‹Ú’è½ÆëØÚïÓ’ÆË -êýžæó´—æâ¼šŠèª¢ñè±åÔ¿¡®³’Úêêê©í¯¦®†®šú¶é–ðô„–±šÚÇ雤ÝÅéÇŒ³ôÎÑÖé¤ÓÌç¼´öºôºèð -‹Ó±Äû²í«¿´®Ò²ÆÓõ±šÃ´íаÉêݔڨ泒ͧ„ËØÿÌôÚ‘«…¬ä±“œ‹·›Ïý–ÝÓØ¸ã†¶äëØ’°ýáèŒó§™½ÊÌ -Ò¦¿Äù®ŠóíŒïáìÇßñ™‚ûüˆ‡‚ÙçÛÐ÷Ëôÿú‹ÝïÓµ—®Ùýô¦ë„Ïëþ•牼»ÌÛ³«ôÞ ³•¹Î´ºîÓ‘ÍÔû®íù´½¢ -§­˜Ö’ÚÊé“©àé•͵´×ÕÑØÀÃÓšüºèŸÖ¾ÁÚ¤´ËèПЩ䙚®äݺºô›èÛ¶Ðí£ÛÁ÷æ‚Ý‹ôùèò»òÌǧŸŽ€ -µíÁÚ´†éˉМ¥‰šˆÅÖ‘©¡ÜŨé‚๒üÅýøžáÍÓ‹Ô»›×ýœéØÎÒ±ÞÀü•ãÞåô‰èþ•Í–‰Ô‡ÑíçòЯ“ï£û—¤ -ô¯³üݶ£Ø„Ëìñ¡ÎŠÞá¤ï›ý»èÛîÍßÇô¢÷ú¸½‰ôž§÷š’½×é¹ÎÏઽéôçЀÍ÷®Ýùô½©âÙ±ÏÊ鬯§³’ŽêÚë -¾é«§µ‘ÖæøÚÚé餵‡Ùöº†éœ¥ÖëœîɺÕô“ÌлËßœý¾ÆúÌôÍÓï›§ÏÉŸ‹¾·´ýËô®Ó³Âå÷ªÝëô­Óš™¦ãƒöÍÚ -Í¡…šÙì䣹žÐ­ëÕ¬Õå²ÚÎÊ©ËÅœ¬½Â‡«—ôç¶öŒæÓ°Ý¤âºŽáªºôËèϳ“ÀôÚñ¦Ž¡ø˜ùðîÆ÷°²Á‰ï’©ÄÞ²Ÿ -žŸ¾•‚ØÓ¿Òäð•†ßÄòŠŽ’‘œÄòҔɩ¤ç˜¸ÃÈÀ•†Ò˜¸ëÅÀÝú³èÏ­¢¿—¾¼úžáÑ×Ì墳å…ôÔÒÓÍ÷°Ýôµñì© -û­ô´ÓþŒÕ޾žÉèš¡ÄÛÆï„ýÓôæÏÓ¯áÀ‡Äÿ€Ä„ÄÊ ÄÁ‡ƒ‹È–‘ô¬¡ñ²à£ß¬Ïÿ€¾ ½¡º·èŠð¬Ê⇴“í¥ò” -¤ð“ë„ëˆîÔã¯Ä׎·Ø”ϱ‹ØÈ‡Ã‘‹­‹ë†ã滘ﱗÂÑì•´—™¾‡Åò”“Ç™¿È«Ø‡Èßáèͼ†Þ¡ï‡ß¡ŽúµÄ‡ø¨ø -÷‰‘טÙÉÈäžÆö±ü˜áÔ“ŒŸáø‹†‘“˜Îæè¦ÃÌ÷˜ºÇЖƒô¹Œæ±øˆÁ”⤥Ȟ°Ð©ÉÀýõô·£Ò×Ìß‹½íôôÐÝÉ×· -ÖÝýôŒÑ«¥ÔÏ’ÉšŒƒÚ†æ˜¶²ìæøž‘»€£ÎÆÜŒû˜õö²ìãÈÏàòª’µ¤ëô‡é‹Ð»Éôº‘í䳃¶È­„›‰´² -²ÚÇÊË•¬Ú½ÁÝŠ«˜çÚ£ìùÌçàÉ‰Âøýô·¥Ñ¦£ÎÂõ…µ“瘸찯£±ïº‡Éνúߣç¥ïÀ‰¹¾üùŠâãÿÿ‘ã±›´ -ë±ÝŒýÄØã§Œç´ÑÓóŒÞâôª£Ì·˜½ÍèºÒ‚̤¹ÈŸ¢­Îघ‘ÒÆÊº™®ä¸†áº¡†š™êæ°…äÉ›’ކžÑÁßÍ߯ýƒô -è³°†äœÁÖ©†¦™Ö°¢âêÇêâÔʃ¨Ñ‡ã®Æ³ÝŒ®±ºŒôâ…骣†ƒêŒ…˜ÜÀ²ÉêÀ”¾èå³›õȳ¬·±“ÖÂê³þÆü -¨õøëðԲ؉ΩŽâì…øØŸâÊÁÉüܺ³·™¹ÁÕôÕ¦®¡¸˜¼Áüˑϙ×üˆÝôî§Þ«æ‰üè¯ÍÞ¡˜â÷Òð֒㯱þ»Æ -Ý÷²¾Ÿñ£ŒÕŸäü¬ò‹È¿Äž‚¼•ùÞšòûÈ¿Âöˆ€Ù²¢ä¥“Œ•³ÖÉØå£õŒ¶²ÚŒá´•黣ŒŒô±ÜÃПÙýŒÊŒ°¨ -„ãø‚‘¥ÒµÝ£ÚÆæ™‘—™‘Ï£·£÷¨¢ßÄîÁîÅ…îÃæÇ–à¬‹ÈèºÒ°£‘›†£Œ‚„è¿‘¾¶úˆõ‘ì¤ÐŽ¿•ßö³Ë¬Õá® -ÁÕ‰³œû‰Å֢̅˜Ÿ ¯ÿŠÙûèÒÐÓ§¢ÌáòËÆ˜¯ »‹ô¤ÃÎÇì§ï¯Ý÷¿£óµÚþ²È›¡ö°±¾ü´™ŠžÛÉטÜÎ䮦¿ -ºâò“Ç™ÌÈ಑Åå”×¢ÐÜÄñ‡Å½ ”Ù¨òÑ䳿ÑÈÄã¦Ê™Ý¨ä¼šñºÆð›™ïÆÞм¨Ù§²îÆú¢™ëçô€é ùÒáÆ¤ŒÈ‘ -¤Î²¦Â¶ƒü‰–ñ½ã¦¦¬€¨ì¨œ¨Ü¨¥Ü¨–Ь£Øìáâ•ñµÆ×ç‘‡í°¶‰˜”Æà˜ÍÁ¶¼†ˆ÷³ÞËÚþ·«¬´³Ü‰ÊÒ³îÆÜõ -Ƹ«±×²ßŽå屦ŒùèÂòÑæ±óÕ¦î²ñùÀ寓™Îàð¾¸ý‡èùˆç•»èßÎË«´¡þ…–¡ö¤¾Â¾üùŠÞÄõÐëÔ»Ñ핎 -ëšêˆªÓ¨ÎˆòŠÊ뤨ã—κÊÌÑ”¹¨Ÿ¢üÄ€Ô±ÓåÌÕ°²ÕÍÔ“Ìܶ³ÙŠ¢ÅÔ³”ÝÌô²Ñ¯Ï¸„ñ¡ä£È¤ÈƘ›Ç -ж…üšñ“ꔆ¦ÍÌ͘³åǹ€ò‘µ¥‡¥—¥©¿Ó¦ƒ¨ÂªÌ„™ ¢Åƒ±¢Ò¢£„чˆÉˆö“è¯Åßï™Þöò¼­¬¶³Ðˆ -Ñ£ŽÛµÖŠÌì嘋™ûÄìàô¹ÌçŠï‰¡Èåüºã׎˜¹ÈÐنΑÑûĸàûúéÝÉó¯©ÿ܋ܣؑóñÉáÏÑð¼–˜¡ù¥³ï°ó® -賟²ó©êãá¨“Ð§Š»¥ýŽÙ¯›¨ï¢ÝÎÀúê΂¦‹˜®åúÒ‰ÓÕÌײݣ€ª™Õ‹ªöêÔ¨»Ñö¢ÙìçÊÂÔ“œ£ÌŽ¢±¡ -„ç₉¥Šµ«“³ÌéÑšÐÌÙÐÙ˜ö°íÚÂíÆ½„ú™å镦×Ñ­¡àÚÇ™æêƒÉàÍ”°ÁÔΦÌÑ£„‡žØ“°ÚÏʯÓËݬõâîÇ -ÇÕ‚³™ûƒó…µØª°¾ÁßóŠ®ˆÍøìñªì¦³˜¸‹•ì¦ÒäáåÈÚ’éË û¸çŸÒö¡ÏߥÁáêÿÉå¼Ä±Âì°ÝüøÌ³”¼€ö«Ú -øè÷£Ý‡öö°Ú“èÏ¢½›ˆöŠÚëèÍÇ›‰¶‡ä힚´Ñ産©ÄÓƒ¦àžÍ“³­Ì´Æ±ÓÉÌ·³½ƒ¨ûÑËгЭåú”•ŒÕ -ª¸Ê‰¦¦™Ôê±¥Á¥ãÚ€ßÚŒÚʌ͂‚šÅ´ž´Þ€´¾´þ´æë‚¨Ã¨·˜Ž“ Š²…“ìÎÀ™§¬ãý””µ©áü’üéýøûñô³Ø -‰ÉÂ›Ž–ìͪØê±Õà¨äÅ®œíãæŠ™ÙÎ㪇‰Ìä÷鳘¾Îકú¯Òó–ç§é¿Ì˾š¼÷Ó·ƒª­¼…‰·ƒš»ì¶â¾ü™ŠþÆÜ -ßëÌýž¹˜Ö»Èܱ撘äËäî²óט׻ÉÜÝæ²Ðšå£û€®€Ý؅ծˆšÝºÆôϹ™í㶃ٮŒæû™íÇ«ÁÊ»ŒÖŠæŒ -¢œÍ¸³ŠÔÓ£¨•Ìϳ­Åֽnj‘…­‰Ù‡³®ôîüôËè–Ñ­ ØÛåöÙõ´Àá´‘æ¶ÑÈ´Ñ¥‘©¶”ë„Æ‰Ê‰Œáû—²²Ì²„¥ -žþܽ¸ºðöŒàëÃú”ó£ÝƺôÕÌÖ ‰Ý²Å¨‹Ð˜¼à¼›±ŒÆÑûàš½ë—éʤ£Ö˜ã´¤þƒê¼þÏÅë”þ¬˜þŠ´ñᛩ -¯ˆýù¿±þŠÍãöŒ»°þŒÁ᳌§ÄšÅŒðטҰ¡¤âÈ—®¡÷æØåáˆÙ¶Ô’Œå˜ª°Ô¸âèÀߌ¾•Ôý‡úçèûÐç÷£—°·Äœ -ƒ”¹±ôòô“Í覙âÖ…’Öö†Í¬šˆ½Ú“³Öôö׿œè—ÑûоûÑûЯ¢á ²—·Á¥ì¦Ú¨š˜áÞÓ͆Šð”ë‹“¬Í°ªçå -‰Œå©Þ¡¼’’Üý¸û°¿ãñ¾ƒË«¦Øç˜êÀ׋¶Šõ‚¹ª’¦ãžÄÊž²œáÖ§´£É¥¯…鼠’àͧþèøŒÚ©Ü²ÅÙöžÿŠÇ -ÿ»ÎÄòÌü™øÓ”¼€ù«íæ˜÷àÞµùˆæÓ˜ÏáѾ¤Òªæ›˜ýïàŽÅ–٘쟈÷ÎÜŒ¹ˆ”Ó…¦êÌõ˘š°µàêÇÇÔ‰©›ÓŸ¦ -ŒØǰŽÚâ”ã˜À°‰êÁ‰Þ…ÞÍœ†¹­ººƒŒóæô󘜘Üݘݘ–°ù‚°ù±…°…±ñ®ãŒãˆ ˆ²‡º¢Ú¢š‘Âꪂʂ -û“ø§ðÉñޱâ™áñˆ…œœýغ±öâÎîÇÐÂÜ“³¢õÌÔ³óšÀÊÑ”£¯àôöÃÙŒÆâûæ»ôÜɯöÐ˼½Çã©êݎеŸò½” -Ãì ð«ùñíºÅ±ãÔñáÏšÑð’ó¯ãý‚›ë‡Øâ½¡†µë¢Ö¤Ã¬ÉØïáÍÃÐúŸëŽÖ¼¬¡…ØŸã­ÇÚ£‰µ–ëƒÖ擬­Ø»°öá -ÏéÅÒåˈ–Ѭ²¬ã˜§±«±ÏãôÒãÒàšÅ¨×èÇàÄàÁþèÃäļˆÅ§ƒÅ‹å…˪ɖµ¬ëØÂ˜À·°í℃èÇÙÔ±±ËÈà -纚µéÖ•¬Ú̲¼Î’Œ÷ú¨®‘œƒØû¿™ïÅÜ…±ÃÏÜš³Í蚄翠¬ÄÑÎøÒãÆŠ™É“‘óýÀýúÓ躀Åû²­É´¥ªÒŸÀõ±žœ -Û¤ôƒŠÞ¦ÿÄõòâŠâLJ¨âßÓû¿ü¿°¿Œý«ìïâÿˆû¡³ìŸã¿ƒý‚íö«Ø¯ã¿Ð½û–öÜìŸùØ‹°—âÿ³‚½šÛ°ù -·¶˜åëÇöŒÌÛ¶Ø¥¨Áª¶ŒÍŠÍ†íéœù…óÓÌ«é˜×ãÕàÅúº‡Åňٟ„ÉŠÙŽå׫›ù¥æýØûü؂؂̇©˜ãà‰â -À†“Ñ£‘½á¹Öç‰êˆ¨×ñ«ðÍáÕàØ™çÑÆ‚”ÇҰ󒬱›±’‡Ã³ôíèÛüз¡Š¹ÌÕð̼ÁÖŠ´ˆñ¡ü†òéÍ¢Þ«ŽÛ´Þ§ -•ùŠõ—¨¹Ã·Å產ø£ÎŠÞåÁ›ä½‡Ì½ÿ•ÏúßÜ™Ÿ¾‘‚ŸâÏÜ‚ó·¸÷ã•ü„çᜧÅÓ…Ïù‰ç՜ܷðÞÁ™¡²·Î‡¢á⬠-ÅÆÙ†³–ùÖ¹àìΟ³ÕéØ¿çÌŠöâÈœ—¢ã„Lj˜Ž¹Ž‰œÓȸԸԸ´Ø†ç±Ïá·à³Àâ³³ïáþž€ù‡¶—ööÒ¯Ž•œ«¸Ö -æð¬ãˆãßÀÛ¾‰æ‰ÚØ‚´³á¤ä ¸„Çà–Õ«êñ–Õ¬ÍážÀ¤¥—ïé›Áºˆù€Ã¯óÝ廘é庙‘©†¦êײÒÚÆð±’Çô -ؽ”ÙÞÎŒÚÇîðô†×©Õ½Äå¹ÊÏòµø°¾ááÿËÆ–îü‚ûŒ–»àª¾ðü£…¯°¸•‹Å¬îåñ¿™‹ÇñÆõžÙ×åÜɸîá -ÀÊ“‰÷׎®Ì¼Ü…¸Êð•›ãª’ñ§«–½…¾ÅÕ†«“Ä×·®¾Ü±‹ª¸ŒËŠË†«Ý¶®“¸”¬¨¶Ùа°Ëœ ‹†–̸͸µ­¸æñر» -Äñ¬âÜâá™Ô…¿®€® ®€‹›¬ÄðÆŽñ€Íù¢Ö•ÂæÖͬ™Ø‰ãå–å˪êÜÊñ¾Î‰½ì²æ¥˜‡±öÊÐ÷±Û¦‹“é¶”ÏÑ´ -ëŠØý¬Ê¤²Ô†Ë诤§Ìç¹´ß—Å§ÅÆÛÔ¥Óõ™¿ò󔜦ð¨¦ùûùê¯÷÷°ò÷«·¿ÝœÙÄŽÐć酪àż¯áù›ÑχøŽâ¹Ž -ä§Ï—ø’ð»¤àÉœާÐÓ”¿¼ùøŠßð”â©ÀÓ‘§žÏ“ž–¼÷±ˆ´Ë¸ƒîɘӸˆû„÷à˜î¹î…îØ¤…ºû†·–Í·Ž·žÅ£‹ -Ôæ–­¬ÚðÙàñ¹ÙØàÁ÷ËË⊋«¸­×ð¯ã޳˜€áñ“—¬õ†’±³á£ä¥øè¦àįǧ·Ã«Å³Ãâ´Ò‹±ÛÍÍŽ”åŒÓˆ†Áô -Ò±§¸–šô‰œÈñ²…ñ¦äÕõÈ«™ªà û”Þ¢ºòéÈ­¥¥“¦ôêÓ¥©ÎáÉ’¥ß‚Д ”Ò¹‡ÿÉü€´·¹õ¦šÉßž¦ÇŽë˜ˆßÈÁÏ -‹ñþ†ï»ø¿Ú”‚³ïçøÏïཀ÷ŠÞëœøï㽇·‹å…ø‹ñ—–á­”¹ÈïšƒÞæ¼­ø»ðöãíë‘뮡·æ ÊðߎãÄ«’— -õéÒìâÕ±¤žçÉÈ’™¥«€Ë¶¼Ž¼Î¼î®Ü‹¸½¸—“ñøÙа”䦩Ä҆˛ø‹¢¸á‘Í—›ªÎÂŽÖí¬Ù„Ùµ³âäÙ¯¯ÎêÖàÒãÔ -¶á›Äš³ü²ôŒÒáŽÇ‚’‰™¾ÔÝÌõ°çÑŠ¬™éƒÈéãʪ髣»ã˜Ž‚ڟМ‚Åý½êîÓñÃÒ«”Ý ÿŸ“õˆôøÉý‡”ßð -åÏã¡ÀžŸÿ¾‘‚—ñ½‰Üï—¾ñý†ï„¾³ø®Š×ý»øŠ²ðåãû¨êï¾Ç¢œâ«­Ä׋¯‘ßÓÔüíøºñõ‹ëèÔ—‹Ñ‡ñ -‰Š·Ñ·¡¬‰¥ïšßŒ¾­Á¾¹ü†ü¦–Ì­¬Ï³ìçٯɲ‹åżžù¼Ë¬ùð®²×¼Æòº¾°Ëæ‘–£øá‰¨ƒ‡È¢á—¡§”Á»ùü–ñ -Ц¯Ïœ®­ýΙìÓÂæ›Š§„‹¬Ÿåöéþ¦º Ñô¢ïãô©óÃÈê髤ÿ»œÎÇ¢Êú™ô¡ÙÔæÐÆù‡²›”ߥÙà¢Î’ý‚ -êûŸñûã®ï‡âÊ›Üø¹žŒŠäñᛩøú…ÿöüïáÿê„ÿáü§ñŸ©Ãÿ‰ÿµü·§ñßÅÿŸÿ×ÕøŸâ¯Ä߂ѿœÿ•þº‘ïš÷·àïÇÿ -èŒÿþþüƒ½øÇðÇâÕñÕüŠüÊü±¯ÂŃÿÖìœþ‹ØöáÆŸÛÁÀ»þ§þ—«‹ù¬øØñ²²Œ”ï…¡ºþ÷ìᲂ¾ØæÓˇ†‡Ð¢Á— -Ò§«öüóøÍÈøâÛšÞØ˜‡˜ùÛ–¥¤¦…úñô±ØŒü„õ ÈЩˆú˜ÿÆØ»£ˆ­Œ¶ŠÒÒϦ•ÏÊé¯áéú¡©ýŠªÙûƒõø¦ -÷®ñð’ÙçȾ¸ÉÃܸijˆ÷¯îçì«áñа–Ÿþ€ç‚çîÐà‹èôÿˆì¦°À”‘‚§ˆœ§ðÙÀµ¡Ç‹¤’‘¸Ï ‡ÀžÂÑš¼‘ -“ÕÁÀ¦‚ ­„ºˆô‰ÌŒåà€À©„™ñ‘µ…ÂÔÂñŒè‰èˆˆ˜ˆ˜ˆØˆØˆ¸ˆ¬Øê¤à¡à¥°ÌåꊫþÄûÃʺ°¢›¨Ê -Žªø‰®Ù¦ÝìåÝÃÚ¢«²‹¬¸Ø¶±äõÁíÂåÀ¡Ãƒ¦Åš‹¸Ô¢ÿþÓ£•¡–±¢šâò€ñÞçÆºö°ÔÂäÀ“½õ¼«¦ý‰­¥´–Ò -¡—ÇÕŽÏîÓÅ’Æá­žÞã««Ë¡ü÷”¢·ðõŸ—öâóö­Îîáð鷸űç¥ñ«á©ø‘Áת‰î ¸Çô¢„’¼Íð¼«ÁË„“‰Þ¢ -Õ˜¦¤éÁœ‚Õù„‹ˆ–’¬˜ ØÍ°žà“¥ÁÖ‚„»ˆ…ö‘”œ¦¨À¥¨£¸ÁðŠŒà¬‚¡¸«÷œÈ ÑØÑ ðÕì¥Á§¸ ¥ƒî‚Ë„—‰ -…®ô“Œ ÚÁá„·í‰ù°Æ´À¦Ÿ¼•ÂËâØ€Ûܺ¾§Þ»ž†«®˜×å”Δî¬Ô°ÏàД±·…ö‚™™Èª©ÓÃÌÈõõ¡í⨃ -ÜÖú›èª—²«‚–ŠšÊ©«¥¢ºŸ§¹”äÊÒ˜ÆÞ­ò’½¹ÿ™»ç¹ù¹šëǹ´Ÿóìû¸µƒ£¯²•ïÛŠè±çÇÓâßÓðãÂôۉ祿—ð -ÒÂljŸ¦œî¨¤ááä©£„Ó‰ç’ΕҲµð‘áÒÂ’•„ëˆ×“Üʸ“ð·õá¾Â’ÂÄ„ljˉ©Ä’˜§´­âØÐ¬«šÕ“йô– -ÞÂó„ì„–Ä…¶’Ší®Þ€¾ÂþÂÂÁèÄÛô˜ÐäùЃØç³ÈÆ€ƒ°ŸõŸëÞÖʽøâ¦ããÅù–¬Ø›Ìë±Ç¢íúé‘‚šÑ° -˜­çꔉáäÔ’Æû˜îÆÒÐÉß«ÝÍôÔáÓÚÃÓ…õ¥ˆÔ—‰Ñß鮾ř䧓“Êæ²éÉÜʤ­ù´—òþ€ã§÷òä§û·«²çÛôűç -§‡âßÓð‚¡‘íÄö’ÙËÅ䀑ãÄ’ˆ¤’É¢’¢äûâ‘ô¡”äâ’ɧÒ̤ŒÊÈ…ÐíÄšˆÐ´“é£ÒɤÀÛÔ£’¢ÃÜÄÆ‰È‰¨ˆ -š¨‰Ì‹„ÎÄü§âÚˆ‰ˆ…†È̹÷Ùöµ²ÄƲ›ö¿øÿâƒÍ²¿ú§ë±ê³™•¥á½—–„Øô°‹©â›ÉÄÙÆ¬ú³Óè”Ì -Ž«˜’£˜Å¾Į̈„ᾤÝôõÒÝÆç³‰­ÂÙÔßÁ¸Í™•Å”æÓ±”Ëþ–¹éÂß’Ÿ–­¤’ГÉÊ ñ˜§Ððô¯û÷²Èç›»¾¥´ˆ -𽻘Ÿþ˜‚ÅŸÝÆô§ÑÃ÷‰ž úÌ´ˆéÅ“‰¦‘Í’¡šÊ´è–Ñܡ𖓰­£ÚÉ´†èÊƒÑæ¢íÂÄÊí¦ÚÇôÅèˆÑÑÑЉ -ЪÄ骦ªŠ¡ª£ª§ê’ÕñíÔÆÔÁÔ²ÅÔÍ´æë¬Ö£æó„ˆ†‰ç†ØÜàó“͆¨›ÄþâÿíÙ„â·‡  àЗ–û¹æ·¹²ñ»Øðà°á -ñ³à±áÒ£×§¡Ó Ñ³­Äá©À¡Ç¾ÊèöˆÃƒÈúèëî–òζښ¼éî ¡†šÊòªÊ¨«¦¸€™üÜò³Èʧ¦½•ԔҒȘʤ±„㜠-þ»À÷Ù»“ßÛØú“鹿࠾ü“…ìσßÁûð€Ž„Á‚¢å®‰ÒØÝ«é…¹’Ѐа—Á¥±Ôˆ‘›ÍІûÐýˆšúȨ©¢Ç”· -¯”ˆü¾Æä·ÃÑ‹”–Įܡ–ëÆÂ­·¼ð·…Çóœ‚õ‚‚±ôÏÒ‘£âãƒÐÌü²¼§ÀïÇç ãé‰÷¬†ó©áðà³á±à¾²¡×‹œ«Æ -ÕƒÚ҉†ÜÎØ˜££ŒÆŽÒßÏ÷·Ÿ´µÑÜÌÀƒµµÔÖÒÖàÆñ±……äæã’•Åúº©©¤¤”Ä⢰‰‰œ»ÆƒÛ¼ÿ¾¿ûÛ -·¶ñ“ï§ ¿ ¾üƒ…ѶÅÍÙ™åý¨‡¢¾œ‹Š®ÑĨ˜ÉÑÒ¢¤ÆÉƒ’•¥·ªÄ›üÅÑÊ¢ÔÆç©‰Ò•‚Âõ¶¨Ñº£ô„Å™Œ²’å´ -®ªê»Š¨Ê¨õꨚ¨º¨ÈÖµ›¢¢Ýæ‹âˆâŠÅÜÑ¿–¢Âõÿƒ½Þ§¶öÑÍ¿üЧþ€Ë«¬­ýãÞÂ寱€ÿÍņɂÞÕ„ÎÆ‡Úƒ -´òš…’¹‚Ѥ¹££ŒŽÓ§¯¡»ÎîÚº¼é™š†øªë¨« ¸Œ¹‚âòóÉÊ¥†½‹ÔôÒÒÉØÊ¡±‰„ÄŽ”¥ðà˜ïŸàçÞ¶íä§Û -¿¿•‚Þøð¶ Â¶ˆ»£³ìð Â±ˆ€‰‘’£¤Åȃ‰š¡½ÂÖ«„܈ù‘Š£Í”Å¨ˆÐ“¡Ø¡Â󄶈‘º£Âߥ‰Ð°œá´‚¼‚ -⢂²¢êšªˆºˆúˆ¦ˆÅ–ˆó‘œ‘‘úÙŒˆ€øùÕַØÛèàýìüìÚíßüþ€ð”õЈëáÖ×Ù‰ôÅ쫬­°¸§Ì’ȩͯ -ˆàñàšÇïÁÜç”ÅŸéÙ”œš”Óȧ˜Õ€°¬Ç²ªÔËéÝ’ºûèë¦ç¹“†Öꚩߨ§¬†âŠòâËÉ­¢«ŸôšÜј—’ÆÒ†ª‰É¤¤ñ¬ -‘ƒ§ÙûÔÌŽôض——öüœ«…Ýñ᛼٢°ÛÃ쌳æ·Ì°ÇÜڎ‹¦ê¤°É¼áÒä‡ÉŒÁ“›¦¿ÌјáÒ°•áêÂԇ鎋ýíç -ƒ˜î°ýá¤á¿†ÃŒ†‘‡Ñƒ„™Š±Â“”â¶„¾„±¤—²ÿó¡ì¡–ü¬†ð„ð†ïð…ð‡ˆÄ¶ëœØùðˆÈ¹ó‡±‡ˆà¦¥üáüëø -ß×ð¬²èãÁÞ«²ªó‹¢Ã¾í´‹‚Ϭ™£‘é½Ó³¨‚æ„´ãôʨ©•¤²úÆéž¡¦ÓÂëŸÍ݉Ô÷ÐÓÊų“¥õ”Õ“ßÁªî©è†Ëϧ -¶µ‡äÌ’ÒÈ×¼ÅéäŽÞæ­Àùöžæç‘ï¶îçÇû¾•‚®øðñÁ­×ƒìˆ²§³Èþ ÇƒœŽðò¾¨šÚ“ƒ…ÜŠ’–¤³ÈÆÎü ÅÁÑ -ˆßÔ‘¤ºÈý˦ ­Áº‚Œô……ÜÓ’”኷éÙ‰€ ÓÁÔÁÑýÑŸ²—ĘĪœÄšÄžÄ™â”ÉÐ÷Ð䃗–ƒ¬„ñ‡‰¿¬‰•ù¦› -ËÁ甬Á Š”ÿÓܧˡñ½¨»€ËÓ§ƒ²ÚÖæ—ư§óöÑùœ±±£²²µÇ„Ö÷¨“¤ª†§ÊÌЧ£ËÊÇ­ƒÂÖßߌÅõ‡èµ©í -Ï¢¨ŽüêòžáÙÂÚ¡·òîÈÎáòýÎßËåôÍŽÞãÿ–¥öœãǩގ½Âöý«…÷ñá‡ß” ­Ø’à­€»ƒ®â Ì‘€§‚±œð¹Àµ€ -…·‚¤…Äÿï–΀¼€…ÊÀ‚¼‰Ð½€®ÍÚ‚ÂñÕÞ• ·ÀÀ€í¡€Ò€Ð¿ª‡˜Œ Š ŽÅ  ‹àˆˆÒ⤥ ê±Ž€€‹–ƒø‚ -ˆøƒâÙÙ•ú¦÷¿îÿÑçÑÁ±«Ñ‘®òÿ†ñ¬³¸ÆÂ¹ª¨©Ø–±¬Ðáòãð¡óˆÿâ¿ÚŠÊĤññ²­éÚ©˜˜¤÷œÙ®±º¤´ŒÑ -°´ÀݯÕÏøñÒÎÉ‹…ä›Õ‰ÎÐûÏÈ’«á֡מò½ù«ÎßçÔÝ‹ŽÜäßÕößçâ­³ì¹ùç·×ÿëåìˆåßÈÁ«þ¶ûÆùÏϧþŽû -ž¹é真Ëþÿ®ù¹é箟½ûþ¾òóÐÏ롟’¿è·«ÝòÓç§ÑÏ‹ùŸö¿Ïüôøû…úùÐψŸÄ±¿ãþ”þ”âþÔþ¡Æ™õ«£÷ãôãö³ -ûïÇž»–ý¸¸ÖÄúÚ³‚÷Á…埫¾‚Ï»ã䨍¶áçÃóßÒÄø·ñ¦ìˆ«öç¸êƒØ×™ßÁì³Åè‘…ÿÙ…Œ´ŽÔó¨­¨”Ìš·¦ãÄ -‡Ã šþ¥½Š§žÓ¾ÆËˆ¯ƒÔõÓÕÃéù³ÊÚÅ÷çÃÆ¾ªåþ•®÷˹ùØÌé÷¸ôóٜ̳àð¾¹Áûêרþ‘×ÎÆÃÁÛüøÆŠ -žÞöñ¦Ý¾Ž¾ö‰ùʧü›œõñÑÇÕŸ¼·üÜñ‘á“ãíîý¼òñÍØÇ¹ÊŸµø¾šý¢û¨Í¦Ç§îŸý¾¬¤¾¡„žõ‰Î±è„©ŸÓ -à¾æüèýÌùº°ø°Å®ßå׿—±¯ãÜÆ×µÌ¢—×øõ›¾¯ˆ¿Ö–àŨœÞ–™¡ÛèóÄ©ÈØÇ‹Œ·«Œ³¤öŸ±ùؽä—ņþƒ—¹Ú— -¬³Î¦íÂŽ·àáÆîäÔÏ𔬒Î÷Ï·Ñ© ÍÎÓÑ®š‡©•ÐÙÇäù·»ùÔÆ“çä·Ñ«”æ³Ü¨ãê±Ø—‹¸û€“Ùìüöï³ë -غïÞáå‹ñòÐÐ’Ÿ¾‘‚ÝŸûù—÷¼þüèå—Ͻ›œñòÁË•¯¯×½ÜöòÏË£–—‡Þм”ôû©óÒ饯¦Ëƒ—毭Þòº¼ôûéóŠ -‚怡¯Ò¯²ò¯ãÞ¦½¨–©„¶Î³¤äÁõú¥ŒË˜—°ü®áóàðàôøˆŸóÑÇÍÕ²‡ÿ’¥‘”ŠÅ¢ç¥¶„½¢„ã±–ÈÖìâÜ•ÌÛ -šºÖµÌ«˜×íЯ‹“êܨÖݨœÌÚ˜·ìŠõ°Ô Äòð’­ý³¢ƒ¤–ãŠÖ‰šå´ŠÈ©™¦ÒÂÙæŸÅÝ”ôð êÕÌã¸×Ïí²š®×𥔋 -žÅœÉçóÜŽòåñáºï¤ò‰›”þþå¼”¶´Ç‡ï¤àŲ¯ùøÛÇОŽú¸î¡Á©Ã—ž’¼¤ø®Èõî¡Ó£¥¦¿äû¨òзê¡Âõ‡ú -øÍžÑŒ×Ëͯ›þ·ùƒîÆÜŒ¹‘ó»…¼÷ÊÍ´±›™·Ú·Ðé™ÅöŽã¢Ð˔ؗŸ—ŒÝ¸¤—ÄÙ¬–òúô—ÅòúÕÍšé›õ·áőŠ-¡ØüÞ´“ÕË´û„Û†Ö°ßêÆ€Ø×ô±¿»ËËŒ‡éÅ…¦–„¢ØîãÏ̈‰Áƒý”ºúµô©Å«òÛˤÍãÔË£¨–Ò±Ä逶Žä÷‘ÛÁ -’拘̒ÚÏðʵÉÏø¢”Í„¢Žçñ°‡°²ù»×îÁñâò¼”´Å‡ï¤à…űÅîóç¢û—ÙÓ¿ÈÑ—§Ýœ´÷ñÙŲ‹Ûê®ÒÜÜ÷‘ã -Ú¢ÏÅ¡‹’—æè†¯òÑç¢ÃÑÅÓ—í®Ñ—˜×í’½É’Š—Ã®¤®ä®˜¦Ü̺„Ô×½ ÔбíûìîÃÂóÍŠ²“«ÃÔîíö霎–¢÷³ -©¼ Ò¡—Èˤ†–ØØ â¨”™ì°¿©•Ĕ氦õŒ¶ëÌ­²»‚æÒÙÜãÊ·ø›Ð‰§²»ÒùѸ©¢±Ò§§û‘–ÎíÓ¼Õ·Ò¨ îœª± -ñÊǨ™¤°Ÿ™¼ž±Œäþ»äé­Üê¤¹Ž•ËÕœ¯çô‰üNjٟÇÞ¯ÍØùŸ­÷ùá°æ¼”´Ä‡ïפà‡Î¶¸ùÇ­“ÝξñЛ釧œóò -ãÉÉÕ§·œÜ–ñ’á”ÃèžÜºù䤨əÁ“ʧµÎšœí¢·¸Õɇ“ä®§½Î†œ¢ìÏéÄÁØìª´ô°áàÊªàæ°èâþ£”Ýø‘†› -Ï™ç±Ì‹‰…éãù•ÙãÇë†Õ€Õ‡ëŽíÖ„íìØÙÔü® ø®äÙÇĸ¡¤üÜÕÙ€šÕÔ«¨Ã–™Úâ¢ö×Û¹Äێؘ´ì²à¦×Àל -Ûèãì¡ùš±†©ê¦¨”Ó”¶Êñ°¤¼Ý죻›ŒÎîÅ´ñã©×›¸¦Ô˹ÊÎ–ó¥ø±Ÿ¼â÷ÃŽþ›Í–Œþø¸§žŠêâß–Óðÿ¬²ÝÌ -¿ý×ÎÇöŽÙùÜΙ»—Íìܱ‹áä·¿í¤Ûɲ“ëš§ßΑһúÏìÔÛ¨³Ñ¶ä£ÅÆ»çø¶úìôÙØª˜¶¡µ¡‹í»Ï󍿅©Ô -…Í‹ÏÑã•ÞÓüœÅ„µÆ³›ÈñØÍØ­¬ìØñϳ´Ï«†ß¦êºÁù£‘ÚŽÛÅ‚µÉúÜÆ„±ªÂß칰ЙꂻÂßÕù…É×ÕÄŒ‡Ù¢Ò -ò…†Èæé³Ðãâ™öü­ÚšÔÔ©¨×žäÉ„¥²Š‹¤ä‘»ÀÖº¯éÝÜîàúì«×š¹ÐÏ™Œš¾¯àЙŸÂ•óîï¼àóå¬ïÝÿ¯× -‰°¦¾ü©ŠÞÚçõ«ïÛùíÀª†±ž³’´à¥ÑÊ’•䮫·¬¤Ù¹ïš¥ÇÊž•«·­”Û©´Ò¦ë¥ÁªÚåÛ¹­ôØé²ÒëÇ¡ßÂàì˶ - °êÁæáܬõú‡”æ¦Í¨ˆÍèÌÌšÅÒ¤ÁïÀ芮ÙÛóÑË¢…¦…¯…•‹«–åÖ¬¬Ûˆ™Ù†°±ùïâºôÛ›ÌîˆÛ½‹ÎôšÊÕ¦× -È˜ßÆ¶¤Ú£ ÆÜŒºÅ¿æáï¼Ý溌´ñêÅÏÿƒ†ÚŒéª•”«ø¼¾®¦ïä³ëÈýÒú¹Õ€Åò»É­¤¶‘ÐϱꎾëáƒÒÞ®âõ -üüÞʉ“‚ª§øð§¨øÁ¬õ†ñï°³Ç̘þ³ÇÌœ²óãÎÌ¥³×ÍÜ´°óÇ̆™ì”³Ì”˜©¶ìÓê¢Âĵ‰Àº“ͦÚÌ´»›è´‰Îá¾ -ø“ƒÆ†ŒŒÄ€¼Ä£òƒ“†¸‘¶©õ¨ô–έ™Ã«“‰¢ÎÜæ½ó† œÆÜÆÑŠÜÞ²‰Ê¼ß¤Ê©œÁ£ëÆÂ†´Ñ—”¾Ó×öÆÐ‡Ñ… -¨Ð†Åø·á—Žžð¨—‘ÃÙ‹Œ¬Ðç»ËÖÚÍ´˜¶èš£î–Ꙟª¦ÅÄâ…˜…òžŒ’½ÌïÆ ˜÷£‡ÿ«Ï¸Ôι§åœêäÈû« -­ØÓÎŽ’¶–ÉòÂÞœ”ÔÆÝ‡ï¤àë³ü³ÊÈö£»ŒüŒì³‰Ï˜¸Îãà‚¯¤È˜Èµî£‰âòŒä™¨´ìÐâ ÜÀ•¾Úƒ˜ÜѬ— -Œ×܇žçúúßôôë‘̉ߠк§Â¥¹ÎŸ´ÓˆŽŽÙÔ¢ÚÔÚæ´Ìê½Ðë…ÀÔª“¥åǧÞÔã½Âú¼úüúÑïªèÅɳôܖƺ©•µ‡æ -¶À½‰êƒ©°‹“ë̬¡ßå¼ì…é²ð†¥ŠžúÝô¸ù楧ãžÖ‹Í¦ƒñáêõÔé©ì×Ó¢¢ð’¼€‰òääÊÉŸ€¦ÕÂÊŸßöÒó¡ÓÌ®½Ñ -áÌçüÜË®þʶ—ñ«Çñ—¬ÿ׋ø¤¾áü™Šþ¶ÇëªóüþŽæ¸¦¸Ç±¹’æÈ÷œãòœ×渆¹Çݹ²ôäëø £À§¦Þç•ê¨ÐÑ­ -ù£ÎÇ£Ž§³“´ÍŠƒØµ«žú¹ûµÂ·ŸÕÖ¢Õ°¦Á®ØáüÆ´ÖÌ©ÀÅÒùúÚèÜùçæÄÉÑ¢ÅÒ¶‹ã–—ÎèÓ½–ô¬ëØÑ­±ºËÚ¬ëÚ -©Âš¢ÏÕí̆£’àÓ‘”›‡Œ‡‡™‹ íõ³¼‚ä™þ²¥á™÷¹„óÐæã©•Æ³¬õƪõÔÌÒ‹ª¡øš‚¥ì”䓱ÆÝà‘îŽñí€Ë -ù½¤ö‘ÐÁ±ÈÖŽ¶ñÁ½¿‡¯áõŠþÖš¸¿…åñáÏÐð‚–­Úöè»Ù­åŸ–ÃÚøÎ깫墖´«Ú®ë¹­¥ŒÝ˦–œ­ùÐšŠµ¼ÖЮ -É¡ÒÃÆŒ²¶éš¡å†¶™¨ºã¡ÑŒ½ê‹úÕÈԌϣéæÔ…ÌŸƒ’‰©¦§ÑÍý¡Ñ¡›Æ Æ‹¬ÆºƒÝ£Ô£‹š¼š¼š üš¡ÿ‰Ì -ˆÔ“Ò³±ÍÄÊÅôù““›ã¢íÌ–þÞ…“¹Æð€‰ß„×ç½±ÑÃçè¢í‹´¸„£ÌÐï¡ÆÄå쿎㱖™¯ò¦É™’à·ÓåÜžåú° -¼×†¹ØÏÙž¤Î¾ãð»ûÚ¯ØÝÈŽº¶ÖÏñ“ø©¨‰ÜÿŠ‚¯Ïò½Ë™Þ˜áݙ澜áÓµÇÕò¤¨ÉÔ‹ÉŹÉê«¦ŒÃͶš‡êŠ -ÕԔŶ×éžÐÌÓµ­ÌÝƒÓŠæØ˜¤’Á¦Ð§’ÊÇú§Ì±´ÉßȤÈâ˦Òψ泥‚õ«ó–½ÒÈÏ謪ìÓ¸¦…æ²Î­–мå -äéÖ¦ÙÕ±¦ÈâݩԀ›“àì¾ïµûÞóÇ·É膣¡†ë‚¢©¼ÿ•Þ—éÜ¢ÝšÍ‹ËøÊö¾ê穲ðÄÈ¿©ž¢ØÝ«‘Ÿ½ÛÅÆ¤÷ -§¸©£ÙÊÒÒ°‰’’ú¸Þ÷ͧüØÆ»ìÏù£ßÖÆ‹¹þ߯Þñüûøó”¼¨â×ܪöªØ«â¿ÑŠ£ªÎ©¸«§ä¢’«Ê®«´ÉÕŠÁ®™Ê -’ò”¼Ôò¨æ›Ü¦¨›¢âÊßÌÕª›¤ñ’‘æÉÚ•´«øÓ¦ ûÂŒ¹èŒŸ—ÞÃòƘäÈ墨¸®Œ“µöéñ´“©è”Âþãž’Ì긻’…¥‹ -èʼʼʡÆóωÁÒÐÁŽè‚ð¸Ð†Ä±Ÿ·Ü¢Š–«ä¡°’ýÁŸ‘¨íö‹á¡ÁíÞÚ½´¯Òµ¸ÀÃøÍ•üÖ±å®ØÈ£œ¹žÎ’£¡ó -äÚüÔ…×Ç­¹²ÆÅ‘ÎŽôñꀣ½ìï âÛùõŒ³¯ÖÿÅ””óÆ‡¿ÃÁ×çüùå’í“욃ä£ÉŽÍòü„Ò̱ÏÔðÙ¡Áµ…·•ÜÑ -ˆðÏÁ–ÂŒ•·ÍŸ ð‚Ç“ï”Ç‚žñªÇ¤Å€Ú¸®ÆŒŸµÊŤ•ΙÝÝãôŽÑ¿Ê“€”Á©Ã£ÈÊÇË™œ“í°ÿ³òæÇ…‚•δÅÍ¡ -‹Ä¹®…„¯è©ØÖ°²Áêܸëã¬Ë‰ÉùؘãóßÚŽ‚™ÜäàÃÌÄèÝ—ƒÂº×´éß¡õ™æ¥²šÝ¢ô¯Ž…ÍöÊçùì¡õФ†îæêÄ -’ŒÚû³ÜÑñâóŠë“Ü–“”¸Ê°LJ¹ÓÔÏǽìúÆÑööÞé‰ÿýý¿Þº‚øð­ê”¼´ÎëãüÞãìŸçÉȸ§Ç¹«ç«‚œ¯åâ¨÷ -³ªœ´¹÷åüޥ㌂ؠ²££¤–÷Ñø¹¦¦ÕÒ̸ʳ”֩팣ôŽÐµ¬†ªÏôÑ¿ˆÄ‹ÂÈ ²á¦Æ˜ÐÊÑ¢ãêΆцÙμ -šœ»œ§œÅ¹€ž¹Þ¹¾™þµ™è鋎²®è¥¼¢„²ÑççÍ÷ôÇŹ´Ö烮ÁÚöƒ´úéö‰ñ¸ÝõËÔ¸©ôêÑþÿÛ»ï§ÒªÏõÿ»ç -Á÷½ç¦æ¦ÙŒ‰“ØšÄö¤†Æ‚ÑÁ »´Ð…¤Ã¢É›“Þûï½­ú¢Ó°Ò„‘ŽÍÒû»¶ëÇ‹ñääÎÞ±¦þæÎä™ïçïÿ›÷¾×Ì÷­ -Ý÷ýî뙡åŸõŸÉ—ò¥¦µÊ½‘†ˆ¤œÀѧìò»Øñü½¼îÌž»¸Õʵæô™•üÛÇñê¾·®øµ–Ĩ׋ÿ·…ªÛéô¡ÝŹ®®÷ -úñ£‹Ó׿‘òÎìºñêÄ­’“ïÎù‰…õ‘È·ÝćàÞããÚÉê§µô¶²Ú䳲ſըۥ­”…µÐÑÌÕ“µ»ÔµÒ ¤ÉÉÛ“Ýͼè -Í‘´òÓ¶éÿºœêः±ÎÈÞö²Ù©Á…ÙÎÉ­­öʌ﵃õö‰½¶îµ²ÓÂÞˆ³‡ÍҴéÔгÏծʕۂ‹ªÙ—ö³Œü•ÙÆÍ -´úÅú¼©³¤°Í“·Éôë¿Å–ãòÕ´ŒÝß Þý¸½Åéé‘ö½ØÝÇûôõÒÛ¹ÜÂõ¹¦´›Ð¨ýÖÕú«ô‹Ô¯ïÔ±àãöŽ·ï£ÓÎ…öôÛ -¬°êì붾œÚäÅåѪßñþ­Üí¥µ¬ÅþâÆ´‰ßÂҳЯ³ÓšÈꢷÑÎŽÆŠ””¨©ë¯ ¢žªºªë¿©«¥±žÖ†öº”Ü路™ -ÿÇÍô·ð¬•©á¶ÆÛ¤œ±£ÑÎÔ»³í’Œ”ùÕÆÒ›«›­Ò®¼Þ¬‰»ïíÆéÛÛï«ààˆÄ¢Ý›¨Õ‡ÔìѶÃñɖś䯓™»ª¨ÇŒÅÒ -ì—Èš“Ý­˜š©®‡ó÷²Œÿ‘ü†ðø ¦Ÿ™ŽÏ°þ±„ÙÆÝè÷ªò¡æŽ·…òñý»ØðÏ÷½ú–üû—ÐÂɖδó©™ë͘·ã -³ÑŒí“·›ð–í³‰ß¦‚°š‰î¤¬‘Ș¥±Ê╤µÃÚÀú½Ùõì‚̯½â ÁÕÐÚÍù••û•ÔÔ¡¬¡¹«–öºº›èÑÓò¨ÑºÐ‡š -Ęêæù³ãÍå’ÒšìẅíÙææ›¥Æº©Ô¤ýóëìò¨Ùêà§Ž½æÚᯜžáˆô¨¿¤ôŸâݬ£ÞÝ–œ©æ÷­É©Òê’žåã牙¥ò -Ëš°É‚ß’ð’‚ßѼ‡ñ«äö€¶Ï±ø«Œñî¿àÒð—纸ÙÊç’Í¿Öÿ•èá§ê•š–ü¤Ä²ËÉ©¥ç•ÜÔÑò³Ó†¬šš°ë‘›î -ÝõøÕ£¨§°ëŽàºÙ€•‚òüɵ‰Â¡Í¯¾Â±‚Ö’×ÁÁ¹Å‡å””ÑÞ¦äÛ¨úÊšªè«Ç¦³–‡õ¼¬Õãɽ„õ‡•ÐŒ«™ÕòÂÉ -àÄ£ÓÊæ”’¹›ÚвØÀòº½«õ¬×±Ù­ËöµÀïöªª¹ø‰ÊÅѼ…ûäí³­‡øÌôõÒ×ɘڦþ‘˜…¢åçä“·øŠÀô‰”ãøáö -Úœ§¡ìžáÕ£éÓî¾âÊÖ¯çï󪓭€ö¾êù·‹ÂáÔ«õ¬ÐÝðýÓº¾¬ãôëÊï´ÚùÒ³ªçŬ†Ÿë°¯ëÁ¹†·ê¼«Ðå‚Áà•ÀØ -­Ã«‰¬¤¦ÂœŽƒ“Êåì¼×½ŒÌÒ²ËÈ´­¦¿ÈºØÊû‹©ª¡®ŒÆ°òÚª„”ÓÝ®¥ñ‹Çµ’ƺš¨å¨Žçõù’Ûž¯“Üð´ô³õÌ×Ê -…†ê©Æâ¤ëÜÕ‚¼Ùªà§ƒœÝ²éé½¼ÂÂÓ‰£°÷Ÿáìݲ÷Èß’ÆŽƒ¤µ¹äšÙ’ó¦ð…¹å툜Á±‰÷¦ËÙóòžÅþ償‡°›À¨ -ÆÏ¾¿õŸòº½‡¯»ù´óÑôש–¤Þ©¾ïÁߪШÂ绊³Õܪĕ ’ãÊÌ«äÖŸÅ¡‚—òÜ›Ëñ®Ç¯ÌÎÀ¼Âʉ¯¥²›„˜ââŠÉ¬ -΢¹´‚²ò³ÉÊ£§—‚¼¦Êò©¸‚¥µó”Ðܪ‘‹®¸òžÔð°’§¢Õô×±ØÍðÞµ£Õ¼¨æ¢óš©ê檙«®â¡ŠÅÊ–«¸Ø­ç½ŒÍÒ -å¶Ëة毩ƒüŽ€äÖ±ÇڮɋۂҎۧ曕ȕ—ˆù’Åà¼þ³øÏ™ã¾©›¿Žã³²ÿ後ñ î†¯ÿˆ¾åìêã´ûÑøÀß -¯ºÞÙ‚€õÊÈÍ‹Ô÷¼Ö†œÖ™ß”ñý©•—˹ъɩܖ¥Ø”àØŒÌ˱îÅø—ɖ̈À‚‹ˆØ« ¢Ÿè¼âäòÉÈ¡©‡Ôâ¬Ò³…Ôš— -ÈÍñŽåùÔçàÓßÈÓ‘­Å‡ÂºßÊï™çËè«ç œÅ¡Šž×°ÖÁòø…°¤¦Ë™¤­ç¾Ì¢…ËÁ¥ÂûÚ«–øùÙæ¡Ûùìæï±ŸÃᑦô -Õˆ—»ÿ„ÏÞÌ¡î‹è¢ÖäˆÛ•Á‡‹µø­à½‡ûŒ˜®Ó²’ÈæœÑ‹ÑÌÆ¸±Ä™åçüßÇ·ÏÝÐúıž÷ÓÔߥ—½Òߢ‚Õí¿©âÄ - ‘ºÅܨäêà¡·‹°­öضù¸æã’™‡ûžÞ¹¨ò²ˆÌ¡¸›°¬Ì¢²‰Ê¤¶ƒøô’ÓÉΡ†£•Üôг©ú»â¶Öå¢Ìï§¥€öÂºŠ -Åè©âѱϊ鯑 üð‰Õ£¥¼¨‘Èÿ˜Ô‰³ÅÌ•‹á鱈åÂÖ˜‹„¾·‘«¡‹“¬ö²¹È«çðˆÖËâÏñûÒó§´÷‚ͶˆÞ£ð -Ú…Å’Þ¯ðŸ‰Çå–Çéì§Í±ü‰é‹îŽ´òõ˜‹ƒèŒæð¢Ïž¿³µþª­üÔ«ßþåêΟåñºÕ®Œ¤ÔÍÅ俇Ü̳±ÓÌ–£¾Ç¬™ -Îäž÷†ŠÜô‚Ò¸›ª½Šé÷҈̢ºã‘¸„’“¤‹À¼»Å•¥éˆÔäГÅöð͹’ÿìÌãÌþ¾½ù¼® á¯ÀÀ…Ã…Âñ혫伉 -š‚¦‹˜Íç¾ÑŸ×ù’òÜɧ‘œÛú–›™Êì§Ëàä¿…™ƒ£äµ´ÇÜŸ¹Ç½é×ÿ»»ÉÀºŠ¦Õ¼—ñßÄåòǹ¹Žµœû’ñô†ãè -Ï¡ûœÓÃüõ·ŒÏúÿ‹þªÍ¡¼Õ«ßëûêæš™œÌäÕ»Œô²ÐÏÇä°Ó´¬Ó°ÒÍű…—”ÜË’ñÊ·‘ÿ„™˜‘’§­²‘±ÄÅ‘Ÿ -¨Ãꜙ‰ä¥¢ÑœÌùªÕ騒ùì̤¥‹½Ž¬º³éÉ‘—ª×“Üúó™™Ì帗ÑÜÞÓäò²×¨ÚÓ’¹’³ßÈâ±ã‹å̉ü®¥‡±‘ÊÖ²»É -µì¥°ŸÇᑇ¸ˆÃéÁŽ×Ù•ÉžþÛÒ–‹èµ¦íЮÌ˲ƒËöžËÔÙ̧±œÄÿè¥ú¯øî”“¨£èŒýÆýÕÖª¹©×ïàûêþߤ Â -Ý™äô’ÑÏÂİ‘ÓĬ“°Ó‰Ç¡žç¸ÜÎâñŒÁ§š¿è¨‚£¹ûМð¢Â‰‹ ¹“ŠŒ˜òã¨Ì ´‘ʤêÓŒ„éÚœÆÛºßéÜÏ ·“ -‡Ç™ôåŠáêö¨‹‘¬á¼Œô粑©´‹™ôô‰ü¯¤±˜©ÊòЫɬ§‡²™Àöœ»±¹ìÅñðÓø‚¹îž¸‡ßŽ’¾Û²èÈíÙçÕœ–±ÙÄ -ÄòÓùŒçÑ©ŸÆï‚³ãèÿñÅóß®¿¸Ê¢—õê­éø¨žÍø´ã¤¸“‡Þ¬ú±’˜ÆàšÅ”—Ö‘ØÇàô™×ð¼ÂðŽÅÖ‘‚ÿ݉̈́ -€‡““Êâ¸é°‘äÇÉÀ±¤®Öò¾Õ‰Ô§ƒÒ˜Ä벩ÄÂøìÉ•ÐÍ“´úÓ˜Ì㦸çé‚ÜùÓ™ÊäŠÓ©Ìô¦³Ÿ¤áÿ¥š„É¿¯ÅÊ„ -Ìô«ŠíˆöíÙåð與ÿþ‡Ò‘k…ÇŽ®Û¸íàŸ¿†õŠŒ´ÒÝÄðý¹ôØæ¸³…ö„š™ãü´ú¾¬ð®Ò¯Þ͂գ•ŽÅ¡™‰ö„ -Üç¢Ð»‡þ¸Îôœ™„âžÂßÁØÝåö÷ô†»…à釓‚€…¡Äð…‘Ÿ¬¡ÆÌ²ðò¢¨Š¤¬Ëšª˜Á¨ãÏ„ÆÑž ðšÖ‡‰ô¦ò¸‰ -¹¾¤†’„ùµ³’Äè¢ã‰Ìô¤°• ü‘¹¸–âٌṫšÕÈ֣،…—¸èΰûÁÀœ„È®‹Ÿð²¼ÀíϺóïüïã·Éë˜õ¯â²¢‚ú -߯Лç̬ڱÓèÎòìåûÝÑߥ½úõΖüۅдúÃÐŽ–鹺ÈÁÜ䯀Æ÷þ˜ùá¥ÀÖø—‡ïœ¼¸ãÇ»þÞ„û¢áÇÜ€ÉÁ -ää„““¢„ýñ’𪢨‰¤æ¾Š¦èڣ雈¡»–žØžÛÅò¤Žþ¸žáűœ«Ô˱€ØÁ ÍƳùÍì”󑼊Ԝûʘ¤ÒÆ·‚ٌ⻀ -„Ý¿öý¸¸š·èÄÜöñÓØÃö‡«­Ì˜¶°ÞçÆª×Û—ÑÝä»…´ÿçМáØÔûÙÒߥŽúõ Û¬Ð½ÈÞ‹²þœÔðÚ—‹œ¾ÜöÆÀ‹£ -ìÏÌݱðÃúäŽöθºá棌¯«Áž„ûÇÉ„›Ä…éþ„ä…’ŸÄñ°Éå¡Ô…Ò—†Ö²œ–û´Çж•ÁƒÈŸ¾›Ž¤¯’ÈÁ㊎IJšÁ‹ -¤ˆ¦î±•ÎÌ´˜ó¡¬„°˜ùÌò«¬û›³¡àˇ¯µö¼Ø÷åð衬™ö‡Øï㑱«ó¯¶±‡Øàòš—ָǽÄÉ×ü±¯îÚÈûÒߥŒ -Å•úõ›­øóȸ¾òÃÇוïïðÉÅÂð·ïã쀙ØÖ¶ØÙðÇÖžïÛ„¸êºÊ”»ñž¤ø›“髼Âÿ´Êƒ©Œ¢æ®ŠÁÂÆê‘ -€ÐÜ÷¨½á¼ÒŠãɘýá‚ ôŽ•œÞØ‚ˆã¡Ì†³ýë—Ù ™Åðʲß褫¾¬úï³îɦ»Û®ÿ’”Þ»ÍÁÑœð¿É˙ৼÇ͉®Ü -ÇÚäûõôÖùÜê™Å÷«þ¼›ÍÌÕ«÷âÏꉟ¹òÂåïì¸ë‹®ìµ×¬¸î‘¶™¦¦Ø›ãäÓ…§þö„ßî¦Â™Ø»ÂØšÈ÷ Û‹üï -¡Šý©×ÐíÇÕ¿´„ÒàžÈׂ脒Œë߃ ÁŒ†±’Èè• €×ßú‹˜ìÆ¡€¤…ïÊ–½ØöÒÉ¥ÚµìÝæƒÇžÝ›ÉÍŸ -þž¸Äèë­ûÜÙ•™Èçå·¤ÄòâÏèÖþýÕ‚˜­¨×ïË‚Õ꿱Ęퟌ¸íÂùÛܲâÄÿºÆ·°º£…£©î–øÚè‘äø½ÑŽ -¬¤¸‘ꦫ ùî”ùÐæÉ­¥—µÞ´øˆÏ‹¿Õ—Ž…Ý Šú”¼ÒðĦÁ¿‚犆üîùî˘ãÞ¸Ìø±åÉŒ‡ùó²èÂý²“«Ž¬Û³ -Æéö•»–ì™òðÓ ×®˜ðþÓ»èîɧë¿ã“þªµŒÕ«½÷èê¹Çîý áÀ—úœºïÌ™‹èÞàÆ¦å̯á÷“»³·ð¶¥ÀœÐ -Ü«¢­‰³¥Ù‘žŒÇòœ¨ðç¦Ä…Š×ªÝ¨ó§Ñ–Ú½èò”´ù›¯§ ½Ÿú²çàÁ ‡£îŒÙº‹©ò¥«“ð®Ì»³ëļö£¯ìÙ²•© -°ñëÖ옳å£Êö­öï²ÿ·Ã£ñÇœ¹óäÔ¾ßÏñ­ßÏÿ•¼”†êÕûµàÛá§—ô§çÑÏú–“ßð·ºëç°ÕÅæ²¿Î×𼟑 -¥Á¦Ü³£ÆÂØø×éÖ‚ÿ˳£È²Çª´ïÓ뤠֦èçÚÝèð¡Ûñ…ž—žºðÄœÅÈÍÏœ™ò“湓㷙÷Æä©»çµÍÙ³àÅ¢… -ÝËæ¬š°îÄæá˜ìÜæÆÏ—ƒó‚”ฤèðéþûÎÿùþ¢Ž×Ô›«÷îÁÛÆüÍñ¹§óÅ›‚ÛßâõŽÇÝ­Ü®á«ÏÐõ­ÂŒ‰ºÅ¼‰ -ä©¿áή¥ùШˬ©°¡£Ú–ú»šíèϱ§Ýž®ûîËÛÓëÏãûžÙÚ³àÇ Ãß¶ŒÚðÂÚØ×“–Ì›³ûúƒó¦¼ºÅ’Ô¡«×ÙÓçã -Ö’›ºìŸã÷ÆÛöµ¹¸ŽŸó‡ˆÿƽ›õê÷²àí£Åô´¸ùÜæËÛéðç¬ÞçËñ¿ÈÈ•¢®¼‘û¤›¤›©‘í̾©Å¿¨ÐæÆ•¹µ– -¤´ØÒäÉ«•ÖôÛÑã¥ÛÔþ§–ôÙò£Ì‚¡óÆÌ˜ãûñÓ¦Œ™¤²âæ¦ó×Ù׸Æâ•–¯²îúžµ³ìè°×¥ÍÎñö´þ¾¸ñ߬ýœú -Ûõ»Ú𶑦õŸãóœ¾ÆÝ㔊ï¸ûŽ¡ð‹ÄߤᲭ©×ɼÆîõ¡™Ô×âÈ…‘÷Õ·¨·¦Ñ˜Ô–“ÚÍè´áž‰½¦¼²æ©±ý·˜´â -çØç·™»Î¡ËëÌÞåú²½³—™¿À«ó̬ýÇʩֿòæýŸìþ¿ïüŸ­úÛõêÆ°àí£œþÃŽ«¦¾§ˆÔÚ¦ô”‘§…¿¥šüžôݲ¯ -­’ÿ‰â«”݉¥Êßæ†´˜‰ÐäÀ«†¼ô›ðÀ€‡†ô²Ç¡ÏŸ«¨ŒÝáä’£—îù¡ËÄùÁÚËΜæî”‹Úò¬žàÉ“•¿üÿ˜ñ߬÷¤ -¶úõ‡Ù𶑪ŠÖäÞ‰âý¾¦ñŸ¤êæùšÜ³”ž£ÉôûªÎÓýàúÝšõéÑ£òÝνîëÒ‡«Ë£‹¼½Ï³ÿ÷¼»Ç𙳞ŸæÌ‡ñÿ -â²ñµÓ§˜ÕÉüŸéñ¢þË›•ê©×ÿ°Ò…¿èǼ†ÉÓš¤Ÿ§û«òÄÏÒ¬­Ãœ«”ÎѫÃŽÍÒº´þˇŽÝœº¼Ðáᩞ„ÿß¶ƒ§™ -ßüŠ‘ãŒêòšÂƒ¿ƒì¿ÛïݧêÕ‡´àÌÿûñ¦Êµ¨³ø‚êÍêµè‹Ô¢Å‹¶­º—µ¸¯ÉÏ—¼óÒø¹›çÏ£ïüÛ‹úïõêõÏ຦üÉ -¶…ÿÅ¥ü—úÿõç´àÿÁõŸÿÅï×ß–Æüð믋¾øóõ—…ŸüúË©‚þ©¬ø—…Úæ¼Í -] -::^ [s0; Color selection tool.] -:: [s0; [^topic`:`/`/CtrlLib`/src`/ColumnList`$en`-us^ ColumnList]] -::= [s0;= -@@image:925&401 -€ƒñ€€€ƒÿ€€€€ø·œíá’ä¦îŒ…ûĹÃþÙÍ‘òƒüÈíê™æ˜¹ÂªæœŽäªØ¥˜¤ù„°ÂØ­÷•²ëÖ̓öÃúàîÏÚ¾ÿû -á÷“›¶ìذöáÆ­äöÇ埿±á‹¸ÕÀ–È€„ƒ–È×üó÷ß§ÏáüŒá…§ßÚõØ–øýÇë´˜¢ÂßÒøõÒÙ€ŽÂÇÇ”ÇÓîÿæ»è -Œ¢ÂßÞøÒ–Û€îÿəȜº —eʾ÷¢š‰ô˜ß¯üö辚ÖÙÖ…Óô’„§‹®ìá…½…„Þßÿ¦òÏÈѯŸ¿þ¸É˜…íð¶¾›‰Ó -¯ÂÙàÙúÎ¦í¬‹§¬‹¹³†…ÒïÛÁ´‹¿¤‘ð¦äÚçµÁì“õÖ…ÓãÞÆ‚¯Ââž–ŒÙ³•ž“èÙçÍ“¶Ûᇥ„îëÇãÅ·¸ð²÷ªÊž -‚þ…¥÷Üù»Ü„·åå„Ùì­õåæ§Û¤‰§ý…¾ªßÊÑóþ×á²ë§÷ÛãÁШ‘†ÁÙ¡íàÇÓ‰—„Ë’Ü»·ÆùËÄØ’½üÛá -Óò¥”êÒ³×ÃÄբʋ´ÂŸËà”·öÙÀ«î°÷óá볡‘°«üš…ýô½°ýȃ ÅÁÖøå‹ˆ½õÞ®£±À™™²ˆ©º§ä˜ÎÙÀ®¶˜‰ -º—„Ÿ±€¦ŸŒ™Ûáû¬àžÕÿéá÷ß¿öœ‘ûÏÓ¶÷ïÒü†Ð´”ÃÏ£‡æ‘Ø–®¿Žú«ÜŸÅò¿†ìמÂéÉÜ»èì…îü£Ôß“æ -±¿‘êÆŽ§œýëªÃô½à‰Ø¦‚ò—£šÃὈ‘ÎÕ£‚Ñîÿ¸ˆÃöÀˆï®¥­éʳ…«ÖªôÆöš…¥…òÇ¢ý¬²”ž‚´ØêªÙ‡ÆÂ¦áÓ -ìÜö´žõá×ÂÎìŽðá‚ÛÄ·ûš«ïˆ°‚µò¼Ã•áÊè¡Ü¬°à«Üÿâ¶„ÓäêÂΖ苫¼ÍÛ཰‰»ç¸¬ð„ ‹ü§ì¤„• -æÞÀƒÐ¦ìóÔ€¬€üÌØ¾éó°Àýó…æü°Í—à›Ó‹úÊž¶‚‹¼°¥ßà·¶ù‚Õô¥Åêè–‡°š–øÊ¾Àîóüó…à›ð½”üÝìË— -£èéúÕÿú—£úéµ”ú˜‚˜–øÊ¾ÀîÌï¦Í³îôÒÁ¨Î³ÃÇû¾ì€¬ð”üÝóìΗàïíÓýÔñÖϾ—퀅ž’¯°›£Ýù‚«– ç -Ø‹‹˜ò”ü«ÝØÎ›Ï¢…®ä¥ú¡³¹ééÀ‚ÏÉ—ØËÉ´ùöåÏ—±Ò‚Âö«Ùäàä‹äî™Ò¯à€¬€ü·ÌÝò…Ü€…ˆ°Í®ƒéòá -•ÁäéÌØÈˆ¢«¼€‹äÂÆ„ÂØá…¼ˆå‘ð ”–ä‹äѯ–·üæÞÌèûèšØŽ†áÙõ…Ž‚Æ‹˜ç‹´¥Ãäø˜ö ·±Š…·»¬¯ð„Ø -ÉÀ¼ßàÝ­Ãö¯¯ð„ØÀü¼ß ÷²Þ©æÛ•§šÚ³¡¸¹¢í¸ÂÖü˜Ù»»ã†¬ªàž¯Ð‹’ºŠî›’ÖŽìó»Ú•ÕÌø¬¯‘ÀʘÖÞŠ¬ -Âàž¯ Ç‚½»Ä²Í†ÕöÙùÀÖøÙ¯ÝÝ£ûé‰¬àž¯Áðž–°—¾”Œ€‹œÂ¼ßÀðï͉ۭƒ¼…–…³ûúÂÈÏàóüÍçÍ°ŽŸ¶¶Ù -ȰëŠÙž®³€ïýÁ‚ý÷ºÝȬ°À©ü÷»ü°œ•Ê—¸›È—ˆ†‹¦Éå°Í®Š¬˜¬‰›‰Òá…—àÌØØÈˆ«¼€‡¡ÜŒž„‚ü -úŒò…Â⿾—Àëû×â·‰‹ªõüô›­šÓÀ‚þù‚¥ýòé…ƒ‘ã¿ë¾ÀÍ€…üó˜…„‹°õý°±Ï—øŠ°€çÙ¾Àݿޑ갷íéö — -š°Ï— ½õØ–ðÉ—¨åë´‘¯Ø€žîí¯­¹…Öó´…è¡ ü ‹îàÝù‚´ðÑ‚…šÏõþ®šàž¯Àªè„‘ö¾Ð¼…öÍç‹ÐÂÙ‹ô -½Úîµ€¿ðÓÍÀ‚»ó…è¡©òùÀ®àþ”é±éý‹Âé…öç‹Ôå®õäÔ‘°Œ¨ÔÚç«…Ò¥áì½­ò™ÓáΕÀ‚È—È ß” ¬È—È ß -´ ¬˜¦—Á´‹¹°à²ô¦ì’¤„•Þ –¨À¯Ãíᣡ¬÷ð‚Þ‚ÍóÀËñ õ³€ž„õÞ›Ù‚ôêÓ­©²Ç£÷‡…Ò´ÂÜ­À؂Ë”šå¿ -É™¶ÏÃÉãíü–­Ð«÷·¥ÀÐøðìõ¶ÃéÕô°š¬ ó±€¼ížáíÅп‰…¦ò„…¨ëŒ‹¸Ô°ëÄþȪ‹‰Þ·°€•¾ˆœÛØà‘ˆ– -ðø‘ÒçÚ¼ÆÜ‚¥æëà—¬Ì±ü”Úç½±ðú¤éù«³¢ÍˆÖîþ²ÍäÃÈÕ„àµÙ‚ÊéóúϹæÇ°€ó§…‚í¾€ìÚóÎÖìâ›­Ü -‚´Ô¸Î€–˜ÚÀ³íþ­­“°’¯ðق˜ïÓÝÑú½àêÙ‚ÊéóïÆçÅüØàÔÁÜøÝ€Î›œ—¬Ð„ôÓ¬Ù ”Þä°°‚˓ًˆ•à -Íõ¦¾‘â§×ͳ÷üêŽÖÚ‹ÔÊ´Ü¡þ„¿Ç߈©“¥ØšëˆÁßÔÖ’Û ÷ˆ¡ó™¸Øàèá´ùÝŸõ·Àì¾¥€¦Þ¨Ó­æ°‹è˜š  -åÁΛ¿ž½›¸¬°”ÞŒ¤¾þ¾§îÒ³‡˜É휖À´¹Öô‚µðNj㜬€ÉÒË©¼·á…—²¡“‰›‰á…—¸™ÁƒÐØ“°¾À†ù‚á -ð±ßß éâäêõéËìý¬çô‹¼Ô”°€Ï¥ú‚½êìå£Ë˜¯¯ð”àËÝë‹ôŠûÖ丅֗ˆËî½õ…ꮚÞÏåºÿ¦¹ýËÖŠÃõ…ê÷› -êê´¡íí“ÀÞž°ÀŽõ…èöÑêëÛïÈ•ìéµú–•†ù‚ÂÎÓÙÐÊó¶Ú¬à¼¾£Àº…ú·áźŒó…äæ³•‚ªÝ¤°‡¬ÿ༾€á§€ -æ­†ù‚š±š¸’ŸàÝë‹ýô☽âÃÀ‘ ïÙᘯàÐåüŠøà¾Õ¾ÀâþÅË¢ö—ØÊõ‰ð–”•¦ù‚šª‘­×â«°‡¬³€õ…²Ç×— -¬¸µ’°€Ö—ÑÈœÙßàŽÃȈ‹àšÜ†Óÿä‚ÉÒ™°‘Öø–€ƒÁ…Àðà€œØ€„‡–†€Á…Àðà€œØ€„‡¤–€Á鬀 -ÎÛÀíøÿæˆð›¶ìØî°ý ã®µ -] -::^ [s0; Generic multicolumn list.] -:: [s0; [^topic`:`/`/CtrlLib`/src`/DataPusher`$en`-us^ DataPusher]] -::= [s0;= [^topic`:`/`/CtrlLib`/src`/index`$en`-us^ -@@image:1077&78 -€ƒ±—€€€ƒéÿ€€€€ø§œíœÑîàøÄýâÜ£—ééùò…ʹƒÁó—¡öö ¸Ñ‰¡ùÏóƒ†èå—±ÆÒ£Þ‹þ®·„ˆ¯åºüü¢„Î -ÆÔ´äŽ€§„¥¦‚Ë‚Ìú…–„˜ŠÿµÃä¶í㣟Íï­Àσ²þïôž¼¶ÄÌð¾ðÁ´­ù±¢ã£­ÙÓéíúåäÎÇžáÚןéß¼ð -«Ììɬñ°äÙ‚®„’¼žËƯʪÙùö䣫˜²™’ÙòñôýÉ®«‡Å‹¨ìƪÊäÚ²½ª™³¦•ÙÎä¥È©ýò¦­–Ž…ÀŸºôß’ñ˜ä -ž½òÀȘ打ó´éɹгšÎçÄéšæŽ¬òõ¿¢ô´™ô¬ÇÂò¼Ú’ß‘æéÊÆŸ±¾äϢͷÇÓΆÌîͪøõ³´œâÌÚŸ¿²¬Ç÷ÚÒ„µ -َ܉ըٹ»¯Çææ¯×’Øš·ÿ¸Ž´áÛ²Û¥‹ïð§ž´éܨþ¢ ²„Ó…¬ÈÛÏߥãÇÕÕï”®Éúå䲿§š»ç§ºšöœûýªñ©Ÿ -’蜢—õ» …Ë´‰å¥ÔÄ÷Øœ£¿•àÔ€œ„„ˆ–’„˜Šþ㊰ •ؒત¥¸‘§êýÿË„„¡„ÚÎ÷„¶°ÖÊ -]] -::^ [s0; Displays value and can react on clicks.] -:: [s0; [^topic`:`/`/CtrlLib`/src`/DocEdit`$en`-us^ DocEdit]] -::= [s0;= -@@image:875&475 -‚ƒŒ€Ì€€€ƒ´ÿ€€€€ø³œíÝÛŽÛ°ŽŒÌ‰÷ž½ÂÎïТ×ôìþ˜Šæ¡Ê–ŒíîѤ’ˆ¹¢¹’’ëÇï׿ßõ¥Ó¿¶Ââ”Æù -¤ÑšåÇ锟õƯ÷ìÖ—¶Äû¿–ý¤ó†„®£ŽÌ°ÿÍ㑞Î÷ÅÌØ³ˆ°•îÆ³Ž™µ¢»ÞßۈۄñëÝ¿úËÊ‘¨¶êʈ†è -Õ‰Ÿýئ¦ŠéÁç—ԈàÏÙ¡êų㩨¬•§á󳮪âèÇšÖäîÈ‹¾³û¯§¿É“úò¶äÁºÙ𪚹ªÊƒÑ¯¾ªîìᬊÖò­ -¸Æ¦ëÕÛµŸ¸ÛÇ‘¶¶÷¢¹Ô˜Øû”ÆÃõíÙâá‡Ôçé„͉訠¢šåÞÇí”ñ¥éާöþÑÔ”·—ʹˬ撌¿Ñ‹´É¨Ñ¤»ºçÈ -ãÒ¨¿Ê£üƨòÃéÄ¿—•Þæƒø¡½ÃŲäεÃÅÀóïî;„æ÷̔òŒ±Ü„åšçôõ†Áž›Šá¢Ð¿ŸíÿÍê -í©º˜ûŠŽ¯¤µ¤ñ¤‰‚ùÐ’ÇÔÑáø˜æáˆ‘‚»Ð˜‰Š–º±ªâ¾›ƒÑȵÅé¢Â¯ÈÞ«‡‰¬ÑÈ…äÊœ—ë´¤†ì½¥Â´¥£“Á -äå·¥‘åÀ®óÒȬ£‘ŠÃä˜ÆæÅ¶‚‹Õ²ôŒêô ÿŒþÝÌŰ›ÜëŒÉÖ¬ØÍŒðØ¥ÚÞïÂМ݊™âÀ•¢á¹Œ•šîªƒÔ¹Ã£ Ú -Ú¨”Æ ´ú¹ÏКåÇ’³±Õ¥ÐßÜ…«ÇÎëŽÙ†Éî唯ÉÔ©’ÍŒå°êÌ•ïîµö훳íÑöôòã©Øž¢îÇŒ‡ºë¢òß±öÌ -à•팉æçëÈÀ‰½ù°žšÓÎÔØØŠáÝü–ê„Ì´Œ¶—ÚЩ„ Ý’¾ÁѼ¸Ô¤ÔÆÁ€©Š­¾ª¬½ÓÕ¼áߤÑÁëäô欃¤´ý -šººÎˆ×ÜŠèÕèê–ÙÇ‚ÓîñãՊù«š•–œ©š¯›È›ÎÑ­»¹Ê°Ü¤ž°ËÍÇ„ ŒÕ†«¾ô½ÅÓ猓ÃÀŠ»ê¬¨ì¿Ê£ü¨ò -Š£•Æõ¥ÅÑÒšåÇ锟欹§ØØþ¤ÝÝÈàŒÕ͈½ëïøä¨ó†¿Í꽆ȃݿnjéÍæ‡£¹¢‘®ÖÆôÙ´Þ•ã÷ǴУÓòñÖ -Øšµ¨òãêÚ·Ãðûš²¦ç¾­ñÖÊýƒðÙǧ±¤ªúÒ‡±Ö£ºŒçñ™±¾‡©îÈá‹”¥ÑþÔÙóÔàæ„ÿ¹çõތҨ¿ÒêÄ÷¿ú -ì“®Ò«îÁæÁ…„¿ é¢ší†㬶ßÿàÏ×óøäþùª”Íûš¥Ší¦æ»œ±ªè¬‚»‚÷¿ÜÏÕ¥ÜÍêúêȺž´±Ýú§±Çµ¸ÿ -Æùª‘¹üÀ£¡àÄÚë̃ßýއŸ§Š–ÊÌëÖèÒèûÏýÈ”Ð÷¢¥Ê“’З³Çõ™öñã꫊òö…¾é¹ÃšŒ©îØ©žŸ©©‘݆—õ -êž­Æ¿ÿý¬Æ«Õ…š•ò¢Ž´ÊÒ¨¿Ê»£ü¨ò£´¿Ê¯§ÿÅó–Ý‘ë¯Àå〟 -] -::^ [s0; Raw text editor, proportional font, `'`\n`' is the end of paragraph.] -:: [s0; [^topic`:`/`/CtrlLib`/src`/DropList`$en`-us^ DropList]] -::= [s0;= -@@image:337&143 -€ƒ¶€—€€€ƒéÿ€€€€ø¯œí×ω°ޘ‡áì玎ÛàÕ™ÜÀ©¼ÎùÕŠ•ªÑ±©¨˜¼©•±˜‰Ä´ðÁ¨‰Ùâ×­þ‚˜ÞÚÃ’–úÐÃÿ -¥èÜéÿÕÔè”õ‚̑ރ›½ß—Êí­Ý½ð²ç„ôéêÎæÌ”ð¢®óœ˜Â¡„³¤»ñ‰ð¼ÑœÞŒŠý̳ùÙᓲ¾ðúãžÖ”¥œ­òªÖï -çÚ¹¿ƒ”ÆË£³Éà¨Úú»âÀ᰽іäÕÌ© ð°¸Ú¬Œªž‚Š£ÜùÖÌòœý å°¿Û»™ž¿˜‰üžö¦»ÎÁÀ÷ʤ•§ Ò°–©§”°ü -Žï›²Ã—†˜Çü×ãçú€ãÖó± -] -::^ [s0; Allows selection of the value from the drop`-down list.] -:: [s0; EditDate] -::= [s0;= -@@image:662&156 -€ƒê€™€€€ƒçÿ€€€€ø¯œí˜Û€ Ì”Ã™Ø½ÜÆìùÜÁÄðÃÕĨ—ǡƢ§¶é‡”´á„ß¼èºÌ«¬Ë£¯õ°Î²è¨À½¯’½Æ¢ -õÇÈô˜ôœÀóÁó×æØ¾¿×†ö™ÅÄݧ…Ì÷Þ•éÅ•§½¾šˆ‡äû‹™ôÑÛÚîËåÌÚ‹’¿ÑËÄ“ßɯ¯ã¶õœ½¼‰®¶úç÷Ú -ö¢ÉÃê¦Ç³Û‹ŽÂêÅô™ÈõÕÛü’½ñ²œÄû‘ÁßçØ¹×ÃÖ²ö—ÕÒ³¥ÀÖ„˜¤ùÒúÖऺúŒÄ‘è±æÊÑ“Á³ÿðŒåÙîîì´ -€ å -] -::^ [s0; Date value editor.] -:: [s0; EditDateNotNull] -::= [s0;= -@@image:662&156 -€ƒê€™€€€ƒçÿ€€€€ø¯œí˜Û€ Ì”Ã™Ø½ÜÆìùÜÁÄðÃÕĨ—ǡƢ§¶é‡”´á„ß¼èºÌ«¬Ë£¯õ°Î²è¨À½¯’½Æ¢ -õÇÈô˜ôœÀóÁó×æØ¾¿×†ö™ÅÄݧ…Ì÷Þ•éÅ•§½¾šˆ‡äû‹™ôÑÛÚîËåÌÚ‹’¿ÑËÄ“ßɯ¯ã¶õœ½¼‰®¶úç÷Ú -ö¢ÉÃê¦Ç³Û‹ŽÂêÅô™ÈõÕÛü’½ñ²œÄû‘ÁßçØ¹×ÃÖ²ö—ÕÒ³¥ÀÖ„˜¤ùÒúÖऺúŒÄ‘è±æÊÑ“Á³ÿðŒåÙîîì´ -€ å -] -::^ [s0; Date value editor. Nulls not allowed.] -:: [s0; EditDouble] -::= [s0;= -@@image:631&150 -€ƒå€˜€€€ƒèÿ€€€€ø§œí˜ÁŽÃ ðƒùñÿÑÏÁôñ½µ§ú‹æ¢ÌºÞÊ¢¤‹µåÄàñƬÀЖ×ó±íû̾ݟ¶±ÓâªÖ ãÊÉ -™¸Ò²®”ÄÜ祔õá«ì€šƒ±çÓ¢ëֹ᩸¶©°æž‰¼•‘‘¢˜Ç’ûž—Àï§þ’׳’ªº»ÑÉÌ𨩅±†¾õÄþàêæä™ñ -óݳ…¯‹ïøÁ±³ß¿øí·è¶¼§Â•·í¾ªåþˆÑ¨™È€ò©¦ëà¢ÕØþ¯Ñ±‚×ÁÕû…“™Ïðæ°Êê†Ç«÷ Æ§Þò­¾¥ãÊ -óɸҲ®”ºÝ¸ìâãÿïÛ›ÿæ·ü–¯£ -] -::^ [s0; Floating point value editor.] -:: [s0; EditDoubleNotNull] -::= [s0;= -@@image:631&150 -€ƒå€˜€€€ƒèÿ€€€€ø§œí˜ÁŽÃ ðƒùñÿÑÏÁôñ½µ§ú‹æ¢ÌºÞÊ¢¤‹µåÄàñƬÀЖ×ó±íû̾ݟ¶±ÓâªÖ ãÊÉ -™¸Ò²®”ÄÜ祔õá«ì€šƒ±çÓ¢ëֹ᩸¶©°æž‰¼•‘‘¢˜Ç’ûž—Àï§þ’׳’ªº»ÑÉÌ𨩅±†¾õÄþàêæä™ñ -óݳ…¯‹ïøÁ±³ß¿øí·è¶¼§Â•·í¾ªåþˆÑ¨™È€ò©¦ëà¢ÕØþ¯Ñ±‚×ÁÕû…“™Ïðæ°Êê†Ç«÷ Æ§Þò­¾¥ãÊ -óɸҲ®”ºÝ¸ìâãÿïÛ›ÿæ·ü–¯£ -] -::^ [s0; Floating point value editor. Nulls not allowed.] -:: [s0; EditDoubleNotNullSpin] -::= [s0;= -@@image:456&150 -€ƒÉ€˜€€€ƒèÿ€€€€ø½œûóòƛѲ´Š†ŸÊëܸ·ì¦×þè‹°”½öúÖ‘‡™ÛŸáÁÀÞ…ÿ‡¦× Ž—ǃ€ŠþÙí¯¿ö†Ž¼ -ÏãÊ‘¹ÀļÑט˜˜°ÚÁÀ€ƒøÄ耈®¿òù…„ý…Áð‘ ¢¹ÆëøœŠæ£ý¬¢´óÚÁóŠÏ€ˆâ©ä†À„Ñžëø”ÐíÚëûμÀƒ -φ®×¨ØÂâ¤÷§š¬òšþý¼†§„¡¢‚ßЀ•‹ÿ²¹ÜÏë¯Á‹ýâÈÉçÐ¥ð×ÇŸ¿èíµÊ€‹ÿ¼îæÀ…Þè‚´ó×ÿ¤ÂŸÞ… óÉ -Òªü‡› âế؀Ðå‡Îþßц®×†¶ñËŸÈ€Õë•ÆÑÿŒâ”ÐÑ‹€ãÕú€÷ -] -::^ [s0; Floating point value editor (with spin arrows). Nulls not allowed.] -:: [s0; EditDoubleSpin] -::= [s0;= -@@image:456&150 -€ƒÉ€˜€€€ƒèÿ€€€€ø½œûóòƛѲ´Š†ŸÊëܸ·ì¦×þè‹°”½öúÖ‘‡™ÛŸáÁÀÞ…ÿ‡¦× Ž—ǃ€ŠþÙí¯¿ö†Ž¼ -ÏãÊ‘¹ÀļÑט˜˜°ÚÁÀ€ƒøÄ耈®¿òù…„ý…Áð‘ ¢¹ÆëøœŠæ£ý¬¢´óÚÁóŠÏ€ˆâ©ä†À„Ñžëø”ÐíÚëûμÀƒ -φ®×¨ØÂâ¤÷§š¬òšþý¼†§„¡¢‚ßЀ•‹ÿ²¹ÜÏë¯Á‹ýâÈÉçÐ¥ð×ÇŸ¿èíµÊ€‹ÿ¼îæÀ…Þè‚´ó×ÿ¤ÂŸÞ… óÉ -Òªü‡› âế؀Ðå‡Îþßц®×†¶ñËŸÈ€Õë•ÆÑÿŒâ”ÐÑ‹€ãÕú€÷ -] -::^ [s0; Floating point value editor (with spin arrows).] -:: [s0; [^topic`:`/`/CtrlLib`/src`/EditField`$en`-us^ EditField]] -::= [s0;= -@@image:631&150 -€ƒå€˜€€€ƒèÿ€€€€ø§œí˜ËŠ€°°ŒÄûâïá弜«ÝÕÄ”±Ðü´Ø­Áù•̱ÍÓ¡©áÅùšçˆ‚¾ã¤®Ÿ ÃÜ®˜Œ”à—‹¨ö -Û¥”Ú§°‚»ŽÜœÚ•öÚåÖø¤Ñ¶Ûº®šäÝ„¯ÇÝÛÆ†³«®¿—²«èÐúÚô¯®ÖËÚôº¨Ì˜Â®¬åË¿ŸŠ³Ä©êÚ´ÀÕŹ¾ -›ÁÌŠƒ—‡¯ˆ­Þïâ’íùÁÚ®íݱšýúšÑ®±›ÐŒ…Þû—ý¸—ýÚÁ­Ñ‚Ü‘Ûèð«÷Ù»Üıë£Àô®—¢Ý¡÷ÑÿïÃÿÓ‚Ž -„Åçê -] -::^ [s0; Generic text`-field value editor.] -:: [s0; EditInt] -::= [s0;= -@@image:625&143 -€ƒä€—€€€ƒéÿ€€€€ø§œí˜ËŠ€ ”ÅÝñûè³Ê­®ÑŽì„ÅøùÝ„©žçð‡þÀä ¾À±žû¤äΖ€õ£ÆŠ×‰ºáàʇ׺¸Ò - ùô•¨º—ƒÆˆ×Œ×Í­úÅ»·ë’·çÕʘǕ®îÆøÜµ¯±‰»üü‡ƒ®ô“挅ºØÛŠ×ö«¥£Žæ´ŸÒù…ÅûŠêð㥃«ÜéÔ -ﮈ‘Ï¿®‰¿ãœ±Øùî -] -::^ [s0; Integer value editor.] -:: [s0; EditIntNotNull] -::= [s0;= -@@image:625&143 -€ƒä€—€€€ƒéÿ€€€€ø§œí˜ËŠ€ ”ÅÝñûè³Ê­®ÑŽì„ÅøùÝ„©žçð‡þÀä ¾À±žû¤äΖ€õ£ÆŠ×‰ºáàʇ׺¸Ò - ùô•¨º—ƒÆˆ×Œ×Í­úÅ»·ë’·çÕʘǕ®îÆøÜµ¯±‰»üü‡ƒ®ô“挅ºØÛŠ×ö«¥£Žæ´ŸÒù…ÅûŠêð㥃«ÜéÔ -ﮈ‘Ï¿®‰¿ãœ±Øùî -] -::^ [s0; Integer value editor. Nulls not allowed.] -:: [s0; EditIntSpin] -::= [s0;= -@@image:456&150 -€ƒÉ€˜€€€ƒèÿ€€€€ø½œûóòƛѲ´Š†ŸÊëܸ·ì¦×þè‹°”½öúÖ‘‡™ÛŸáÁÀŠ…ÿ©öšƒƒŠƒÍü€“ÀœÑ‡•üŸ² -ˆÞ»þíœù³Ç•£óˆÈ寱À€Ö‘òڑ˯ ˆ™è¯ˆ‚‹€‘è±ÞÃó‘¦ÈœÀùíàù§Àâ„ñ”²ƒ‚†¯´×öù€‡ôݯѫ„Ä -Ÿ“׆´×°ãð™Œà‚¤¼ÕðŸ´Þƒ—û뒟Π¾ðꟜùª…ÿ»ÿÁÚ¯ÁËùîÈÉÌ¥²ð”§ˆ†îáÏöŒ”׎¾ŠÄ‡ÑÅ냂è -ëÓòŸÌ€«×­†¢ÿ˜Å¨ñ¢–‚€žÐÜ• -] -::^ [s0; Integer value editor (with spin arrows).] -:: [s0; EditString] -::= [s0;= -@@image:631&150 -€ƒå€˜€€€ƒèÿ€€€€ø§œí˜ËŠ€°°ŒÄûâïá弜«ÝÕÄ”±Ðü´Ø­Áù•̱ÍÓ¡©áÅùšçˆ‚¾ã¤®Ÿ ÃÜ®˜Œ”à—‹¨ö -Û¥”Ú§°‚»ŽÜœÚ•öÚåÖø¤Ñ¶Ûº®šäÝ„¯ÇÝÛÆ†³«®¿—²«èÐúÚô¯®ÖËÚôº¨Ì˜Â®¬åË¿ŸŠ³Ä©êÚ´ÀÕŹ¾ -›ÁÌŠƒ—‡¯ˆ­Þïâ’íùÁÚ®íݱšýúšÑ®±›ÐŒ…Þû—ý¸—ýÚÁ­Ñ‚Ü‘Ûèð«÷Ù»Üıë£Àô®—¢Ý¡÷ÑÿïÃÿÓ‚Ž -„Åçê -] -::^ [s0; Text value editor.] -:: [s0; EditStringNotNull] -::= [s0;= -@@image:631&150 -€ƒå€˜€€€ƒèÿ€€€€ø§œí˜ËŠ€°°ŒÄûâïá弜«ÝÕÄ”±Ðü´Ø­Áù•̱ÍÓ¡©áÅùšçˆ‚¾ã¤®Ÿ ÃÜ®˜Œ”à—‹¨ö -Û¥”Ú§°‚»ŽÜœÚ•öÚåÖø¤Ñ¶Ûº®šäÝ„¯ÇÝÛÆ†³«®¿—²«èÐúÚô¯®ÖËÚôº¨Ì˜Â®¬åË¿ŸŠ³Ä©êÚ´ÀÕŹ¾ -›ÁÌŠƒ—‡¯ˆ­Þïâ’íùÁÚ®íݱšýúšÑ®±›ÐŒ…Þû—ý¸—ýÚÁ­Ñ‚Ü‘Ûèð«÷Ù»Üıë£Àô®—¢Ý¡÷ÑÿïÃÿÓ‚Ž -„Åçê -] -::^ [s0; Text value editor. Nulls not allowed.] -:: [s0; EditTime] -::= [s0;= -@@image:662&156 -€ƒê€™€€€ƒçÿ€€€€ø¯œí˜Û€ Ì”Ã™Ø½ÜÆìùÜÁÄðÃÕĨ—ǡƢ§¶é‡”´á„ß¼èºÌ«¬Ë£¯õ°Î²è¨À½¯’½Æ¢ -õÇÈô˜ôœÀóÁó×æØ¾¿×†ö™ÅÄݧ…Ì÷Þ•éÅ•§½¾šˆ‡äû‹™ôÑÛÚîËåÌÚ‹’¿ÑËÄ“ßɯ¯ã¶õœ½¼‰®¶úç÷Ú -ö¢ÉÃê¦Ç³Û‹ŽÂêÅô™ÈõÕÛü’½ñ²œÄû‘ÁßçØ¹×ÃÖ²ö—ÕÒ³¥ÀÖ„˜¤ùÒúÖऺúŒÄ‘è±æÊÑ“Á³ÿðŒåÙîîì´ -€ å -] -::^ [s0; Time value editor.] -:: [s0; EditTimeNotNull] -::= [s0;= -@@image:662&156 -€ƒê€™€€€ƒçÿ€€€€ø¯œí˜Û€ Ì”Ã™Ø½ÜÆìùÜÁÄðÃÕĨ—ǡƢ§¶é‡”´á„ß¼èºÌ«¬Ë£¯õ°Î²è¨À½¯’½Æ¢ -õÇÈô˜ôœÀóÁó×æØ¾¿×†ö™ÅÄݧ…Ì÷Þ•éÅ•§½¾šˆ‡äû‹™ôÑÛÚîËåÌÚ‹’¿ÑËÄ“ßɯ¯ã¶õœ½¼‰®¶úç÷Ú -ö¢ÉÃê¦Ç³Û‹ŽÂêÅô™ÈõÕÛü’½ñ²œÄû‘ÁßçØ¹×ÃÖ²ö—ÕÒ³¥ÀÖ„˜¤ùÒúÖऺúŒÄ‘è±æÊÑ“Á³ÿðŒåÙîîì´ -€ å -] -::^ [s0; Time value editor, Nulls not allowed.] -:: [s0; [^topic`:`/`/CtrlLib`/src`/FileList`$en`-us^ FileList]] -::= [s0;= -@@image:1056&618 -‚ƒÀˆ€€ƒøþ€€€€ø·œí¿³åƇ™Æõ…ˆœÑúÅèï°å¯àá„¢¦¥ô°Á§¦Þð†¤û‘ã†âƒì͹œš‘Àà¸É–Õö€Ž–×ŽË -–ؘãæà¼ÛÀÂÀõêÞëÛçÕ¿ÿÔúÓÒ¿êç×݆÷ú´ÚººúÅô¾ê¾ÇúçŸóßþç稨€¨¨¨¨¨¨¨¶¨û–ÿù·÷€ÑÐÐÐÐ²Ë -ƒâŸ€€À†ýðϧ¼óޅ°äòÜÁ¯Ó‚Ùú€Úÿº…é‚Èßä‚èŸßþ穽ïþë»Æìý½ßÚ÷É÷Ï‚îÌ‘ŸŽˆ˜í‰½êÁ”© -‡—¥ëîøœïÅàŸ½±öåù£ßþòù‹—Žâ·¾½ßºôÓËñÏž€ˆÉøÊƒóæææÒªÐýäÂÅÞ…þé‚Á¿ûé±åï¿øé™çöùúá‡ý -íÏÌÿÌÁÛ«¢Í‚—Ž Âƒ•³·ÏËí¾¦òé¹®š“£àÓ䞬›î¶¢µéÊÿ”­ýè¶Ñ”îê‹’Œþù熯Þÿ¾÷“Ïìòì÷Ù‡ƒí†¬ñ -³çä‘ÔÅ‚ÿ›–ƒ‡æå¨½æ˜æç¾ø§ ø€ó²ӿÞçõŸÛÓµ‰ÞÌôšÆëœñÉØæúãšÍéúŽ·ÀôϾþßý§¿¥åëßèø»é¹¸íŒ -Ùùûç”û©ãñõ¨¿ûöìõÕ×ßïÛÞþûðíêýï½õÖç𲯌­ÏŸì¿ÿóÍ·û–…¾ÿ¿–ýßñð£Ãå艫ˆÕ­À‚óêž÷···ÃãÍý -êüþÆòÏû’‘ÇÃÕì§ÿùúûæ–’ÎÚ»‘Œ÷²ÐáŸàÝí¹Š¦ÓŽÑøêÉçÏŽ¸ˆÞ™®µü×Ó²îåïá²Ç²¨ãÿü´Ë–Þ¼‡Â›‹ -»úçà‰ïß“ÝÕ™Ìóñ½Ñþ¿þõ¯÷õ»Þñ†ë£ï«üîä¨Äƾ«ÖØ‚‚ÿšÓ‰õ„±Ö´§”ÙÛù¼Úý§·Úà÷¡‹ÒúŽ—žÅúù»ÿ -žé»¨±…üÍÛÇ»ú­Ÿ•êٟϾøÍТèùŽ¥¶—õϤ¤®Äà±ôÚÙ³‘ãƒçÃóϸø´ÙŸë…´¥¢í§°õÏ´ø¥›ÒöÒöê‰þéôß“ -âüÓì‘·°¤èõ¹þ²¨ÿ–þïýÏú’í–³©÷…þù‚ú´ÿŒãùûÝößé°ì럓³Ûá¯óâ÷üßþÙ­øþ³Ì”‘ÅÜ‚üÓã³ìŸŸ“Ãüø -Ψ´¥¨ÿ޳åò§÷ÄÃËœï¿ÇþâÆ†Êݣdž©úß°Çëìù÷£Òâ¡——íæü¦þ´¹ÿÒí²±ßËë¡‹Òúýççþ¾æûÏãäÒ£Ž›¶Ò -픬’맃úùç÷ÿüë¾ôÐÖ¹Ô≭•üþÔ÷Ìþ¿£Šý§ÿ¿ê×Ûä¿ŸÅÆ–°™ý³©ù÷¯¥„­Éšñªîªùî–Œ¾ãîöÙž©êö¤ -ÛèýËÚåé½»¦ñå“þù«ï»ÌôÏ»‡´¹‹˜Á›“œ•°Æã‹¨Ù¥þ®ÚÂñ៯ýžÏ¼Ïýó§»—¸´ôþÏŸö¾ý…Ýòïÿڌ㫠ƾŸ -ú‘þÉÁó›‘¶¶ý³µ•‹ÂŸ¿úÑÏþüçÀµ Ò±…‹ “‹è—óï½½ö£ÌÚ±áÒßÞ¯ÍÂÿþÔ‹‚Ó¶…É…åò¯±ºÁàºàª -ÇÓ—¿ôמø›ì«÷å—ߑ¹«„ÌÉ÷†ñù¿Ûƒþé‚îéÿ”Ì“þ¹î³ÈÿÙšøý©È…Ѧ¨ÇÐÏéÍ󢎷ÏÛ—ï¸Áþ‹ÏÖÀþÏ—Ð -‹™¨–ÔËÇÖúó„ÿîÎ’Ïÿó½ŸüöŸæêéÓ§Ÿüæÿþ™ÍïïœÛÿÕŸþâÖÃïï¹·¯í«Ÿõûï¿ßÎŽ½µÔ“ÿÓ¦Ñÿ’üÊÓÈÆ -»ŸÜ¿éß‹ùš’ÿ”£Ì¾Ð©Ûêê÷½â·ôþÏÉÿÜ­ãÿç‚°Þʤ—žüŸ¶ùÛ¸‡¥îÔ¿ƒû⩈¶ÆçÌü³îÊìÌØÇÓϲ©­¶ô°ô -ëù£Éÿ¬úüÓæ“§ÏÞøã·áŒÈž²ü×ãž çþÌ®Á¶Ã…‰¿ÅöÏÌÿÉ£ò”ø÷ãþâ–Ä·æœÚ˃—ǵæÅøøÓ¾€ÑļõÿŒÌ޾ -ÀµñŸ´Å¦µþŽäð†ñ´†¸®½õøç럯½Ö¿ìòÈŒ²˜æ Ó¨¿·Ÿú˜™¿˜ù°¢á§È¥½ù¿èÓ‚ú¾ÎÏ´žã¥ÕîÁýó£û¨‘ -üÞÛæû§æ¢Ð‰‹´¯þù¾Ë”¶Ÿƒúƒü“޾Ÿ½Êàÿü”ߦïȢό°¾ÉÄŽù­ÑÉþÏÅþ¾™¤³‚õäûØÖùËÕðÿùäÜíÓœ¿‡ -ÄìÑøª«Ö¿§þ啊ø²—êñÏðÿ›Ð¿¿ž’¨¥‰ÛéâæáŸ«©Ö¤ÿçšÿ”·ì°ÞÄ÷°­»ÛóÏס‹¥ú»çÐÁüýˆîªþÙˆúüó -ì˜ÿÆïªûéàüàÆçäþäïöˆ„Ÿ¢‡äãÿ¤²¥›™ë©Ÿù½ÓúçüÏþþêþŽæô¹Ô’™½áŸ£Ú¡Î¦é×ÿÌ¡žÿüþûüùàÝý— -ÉŸÉâÏ£óŸçãLJïвû‡œš‘ðÓ¿äüŸÅÚ‰ŽÿÒø¶íŸÍèÎôûѲøíŒÃЫíμŠÿ‰ŸÒ°ßÓÉÞÎß¿×ûõçáù¿“ÓÀ -Ôèì¶óÿòíÒù‡“ÇŸ¬‘áü¹È²³ØÉüˆ…ü³°»ñÃú­óÿÞš´ùü¦÷ÿ¾´¾ÿœË‰Õ«ÞŸòþ‰ê„ùùÃÜÀŸßä‹¿¼Ÿ¸ûà€ -ËþÙšðÏ—ˆÈßÓãÜØ›ð—ÏÖ€ÿº€²¹€þÙšˆÌð—À¦—ìöûåÑŸÈì󬟻‚•Йîù²¹ð‡Û¤ðÃýŸÖ‹¸„øÙ§‹’ÿÔïÑ -ý½–øçþ”óçÏýïßÚ¼Íõ¦ò‡î⟓’Š®—·ÿ’¬ýõÜùæÇ“ø©çí†Ô¿Å¨•³ÅÙÖÓ“ÈýÃÑûç§Þ°üã‹ÝìŸÍ®ýÃÀžÿ¿¾ -†ìÄ뢹¡Ù•¿óûžÀÌ¯îŸÆ´ÝôÏŽÞÏôÆÍ´½ù„¹Ôóüæß²üŸýߡ߳ÈðàæÜàÛšï½µ¼ì«Ãä‹ò‡Ž°ÿ¼ˆ±Šß݈®ú -§üãÁÌÖ¤‡‚¹é¯îÁüë®×Ò¹òç³ÔóýÓì¹éןÉÁžï²Ì×’•™ÔºÝŒŸØìØã³—¼î”úüóÙÇþÏÁ’ãÖϦჃù¾¾§ -èÚ¨ò‡Ž¬œ—¿‹±æø¤ï³ç±ìì¿ËàÞϹà±áÉø³¨¢ð­øŽªÆêéºÞ‡ýú×îñͽëþ¹¬ÿ§·¾»œÆ„±ÿä†åò¸ÿ¦«Ì -ëõÏ •üãùˆõǬÿþ“ðî­Ó”¾ÊŠ£Õ¯•ñˆêÔË—„úü³¬Êýÿ‰ÿœËÊïÄ¿ëðÏñ‹É­‡’ëŽý³¬™óò—ñ•ÊÑüÓ”‚þ™ª -«Éÿ¹´¼¹§®öΜ¿›öø·âÜ¡«¿ÿŒÈÓ‘¤Æš½ÔÉÆæúçÞÏ˹îˆÍ¿é…Ÿ¿Œ«ð£”ôžÑÄþÛúçòйöªŠ§žÿ¶Ü–ÿ³ÿ÷£ -¡äލôÿÒëÒ¢¹ç¬ÿ¤¡ðíš¾ð‚Фݿþ”µ¢Ë샻쳴åíéô¥÷ΓˆÂ̹åþϵ¤§×Ñè”Ü¿ïÇ‚•ßÿæòÔÄÙý–àºçþ -µÏµÀ¿áŸµÞÐîùÍÃðò¬‘ô‡ò‡´È†’Ó¸€²¹†€þÙšˆÌ—ˆÀ¦—À¿ÛƒÛé‚È䂸Àçë °Ý€™ÞÜ€üŸ­áü÷ÿ›‘…¿ä‚ -œíéó¿ùó‡ýòÿ¶†æŸñ†¶˜¡Ž‹½–®Ñ¦›ûûþ®ê¯º“þ·Óî娧ÿ§Í™ìÿÖœþö£ÍÿÉñϾŶÐúÇ¿…”ò®æ¿—éªÇ—¦ -âÎæÊ­ž£Ú£ÓÆÎù©Ù—êÉÿÉõÚ™«›ðσÌÿŒ»º…¦ª­ÜŸŸø§ˆøÿïŽåÿŒ†ù§ÍƒÎÿÚÓ½ÙÇØïî¼­ô§ ’•ç·“ËÞЙ -»ž—üíµ×ž¿þ¼ô‹Ïå­Æ§Ð㪓‚òºþèýÃòüóò„¢î¡á¹‚†¦ëÒž”ìÐ쩾©ÿº’ØËµâºÝ¾Ùš‚ë‡ë𵚚ïîçó -à·™²é‡™·ïˆúÒÀŒ’¬ï¤çèȧºˆ®­®©Ä¿ƒ´ýþüòäÉîâãÈ¥²¸á³’ûºñæÎà¦Ð‚ÍÖéœÉÿµ¤äú§÷º¤¡âø»í‘·  -ЮúèÏëâ„¥ºÆðÏ媮†¢ú§¨“ïÉå챉Êñ݇ˆŽé½ÇËÝÓù³ÿ¦õŽÁ—·æ¬Ò¸»ùçòȎáͦåßíÒºÝâ‘Í®¿ãàÓæÿ -ñŠ«šëÙþÉ´Û´¥Üãοÿ“ýÏñÏ­™ïªõÏñï«áŸƒÑ¿ÃøÕþþ÷׉‹þ¶’þ¹¹ŽüóÈî÷èÑ£ñþ®¦‚•×é·œ•þ™¦Âð -áÒ¿ÅǕǜý“ñÚ¿ð¤¾Ë½Ç¦üû‘±Ð‹‹ö³þÚ¿š¥œ¸ú¾äÿšº¤­®©ñÇ¿ù’θ©ÒØ¿†ñ»È¦ÿ¿‚ùެ÷÷ÏððØùå -ÆÏ³Í°Žº­ç§Ø®ìí䓤â캎ÏÛ¿«“’ÿÿÒŽðÄüÝѹ•‘³æ¼Ó»º‘äÿÊìÍüó±…„”¿ßùä¼¦ÆÆ“»äÕØú³ú“€üŸ­ -ç‘óüæ¹àߟ™œãùÍøÎ§ò‡œŒ¤¦àðäòü³”µ˜®€Ì®¥€ÿ¶†‚Ó…»É…ðÏÖÀÒ຀²¹€ùˆ¿Ûƒù¿Ýð§ŽßÎòÿ -Õ¶†òÿº€ù°¿ÝÐçþÏüöðþÌå“üŸãëê¶Çåÿä¤ÛÉÙ໯âÖ™ÿ“”ãÊýþϰƒÇå·ÿœÜŽ‚”ÒÏÉó›üò™Ÿ»»ì«´Ïðø -ÿæë¯¿þìÙù³ÀÜ÷ùóç¬ÃŠ»¸è¼§âüßšååþÏÏýð¦¶è¡äᨾÑüÙ²„Ò¥òÿ¦Çõ‘–êüÓ“§€Èï—ÛÈ¢ÿÏìþÖâŸá¬È -žàžï‰–º²ôˆ™¾Åü¡îÞÞÂÙž©ðýë”ó¯¶ñ—ÓâÐðÏÈíëÚ”µÂ¡×üŸö•ÍиöÞ¯®´‡éÒ½Ç˧Îÿ¢”ëö£·î -÷ŒØÒ ›ç¯ñËŒ“îùëê¶È¾ù¿í¥©šÿ殨žªÌÚ€ò·’Õ©èÿˆ‰ÿŠýçœúçøÏ¬–릀ÿºàŸü—ŸöÒ’þ©ÿçÚ³øç¿þü -å§ÿþÞê™é¿¿úô蘿ÆÿŸÑÜ‹ó¹÷ÌŽ™¿ÏÚÒ·¾ìÙ©ýòÞÿÒº¨ÚÜ›ÛÕüóò⨺äåìÔÚŽ§ž­ñ§Íÿ™¦þì¿úóÍ·“ß -Ÿú—âïÇ ¾á“üɉ¹¥à­¼žéû҇ʯ«Â¿©ÔÖ¿“’ùÿ’—ì£ÓµÉ‹¢ÖâçòÔ™÷Îò¿Ì®îß¶›œÿîœÿ“«‹Ê–°ÃþÏí­ -ñ¹ÛëÙîýóšÿÖö´í™ý°¥”šÿ†ñ•œÐã֮¿·Þá‡üŸâڙݛÚùÖ§áÿÑç·ë»àžý–ó«ñ§¨–¤Á¦ðäòÁ¹¥ñ§¨“„¦‹ -’ “‹°þìÒ„¦‹ “‹Óÿ³µ˜®€ìÌ®ØÇ¿ñ£˜À½ ÿ§‹”“™îîÖâõð†”¥ý“™‹ë¢ƒù¿Ý€ÿô¼ÁÑÿœ•±°¯’¸«ý’Ìå -¯“üŸâì‚·Ùòù‡—¯ÓžøØÉÞÚó—œø·’·›óÖ‡ó°Ò¿·œñåܟغÊü÷™‘½ãµÐÔ¿»×òÀÀäÆÂº€Ê’¸â¬ã’ýþÏё͚ -»¹ý𫨻´Ý÷„ÓÞú¨Ø¯óïס‡¯ó‹¶ú¬ù‡ö¥ìÇŸï…”ýÿ£†ÿÂÞÆÂÓºÖä…ų•×ö£á»¼åœ¬Ìÿ¹”éß´åÿê -ѹïç¯åï÷˜øÖ‡Âüóƨüõž¬ÁûúŒ¼‚´˜â›ÊŽ¡¸¢¿ÿ‹ôóêò÷較¿²þÙͺÌÕ¹Æé­ÝþÒíˆàýÃøÞâ—㜾´µ -Ù¼ÿ’ØèËö°ËÄò¬ìôýþ¹ÐÍ™¿óך·ê˵­ÍîâÁ´ÚÆÚŸíÚ÷ÂŽþ®ù›—±°˜ãæÈ¾”Â×áÝ•¤·²Ú¢ÿšïýý²³ÿêã -Ôõ€”̰Ե¶¦žŒÆ›êå§Í¾é—¥ÒÿŠòìîÁ«Š¶ÌÜ¿ÅúåìàŸ¡¯ãÐá°Ý±©›Êëæ„¼ü³¡œÜÿ껱̿“Û¥ñ¼ÉßÏí -Ö„«Ü¿»•ßäÿ†éÃ埧ÊÇõšîÅÿð¿¢–ú›±»¶ÌúçÜúÂÐܲ¶ê­ç¶à“üõ¼žÿÉ™“—‰ÚÏÊôí´Î½Á´·ú¾Š¿ÿÌŒ -Þšñ€ÏµÙ㱚»àŸÓãþ™”±ã¡ØÀ¢†Ú˜¿´Óð¾äõ¬Ï—Ô®ïþÙ¤ÿöðµ£­îë¿´Ô”ßÑÚø£îŒÖ§çÝ­¡Äý˶ -ŠÞÜÅîÉÝÝë£îƒ¸×ðÌÏñû—ãÅŠÔ‘…ëÙ¼å¾Ñž£‘ç±Ãþþϰžý¹Ö‹¸Óó›ëœ¶ŽÿÔØÿ¢Á€ÿºùÃÄÚƒ‰©Ü€™ -ÄÜ€ÿ섦ô‹ “‹àŸ­äñ̯ÿé®ö¼ðÙ×ïʅ⯾ò׈˜ÜííŒüÓ…ðÏ×Ö˜öÏɼáÉŸ»ƒÿôÁù“ßß‹þã–üƒ“ÞØÓÓ -×›çŤ¹ù¾ìü—þ¹³ûÿñÿñàðÏÖó ¹ùûßÅ®¼áŸ»£ú§÷²éÖÆ…þ™­œöËå´üõÆ¥ãÏîŸôëïż™ÿŠëš¦°Õ¬½êÙ -ü‘‘²é˜î²ÆåëêÛ¦ëÖÃ˾ÿþç•—×µèüÒЖÞßëêߪÁý³ŒçñÉŒãôÎÄ¿ù½ÁÇ¿íÚÖÄ„ùûçÇžˆ›Ì»¦»ÉÔ䯈 -ýÿŒÛûçͬ¨§öŸÖÒý³ÿˆÄ›Å˰ܹ“³ÔÙàÕãÏÁ¹©ùŽñýÓŒÕÍ„Ç‘ÝÆÿã¡ËÁÅ„½ÿþ½ð·Ò™Ùôù°„¦‹˜ÁÚÌ¥­ -ë‰èÚ”ñ‰íä–÷Ô¶ÿ×ü„³‘Èž‚™¦ÆÌöäÚïŠêõŸŸÝÃôÚÿ’ퟅ•Ø ³‰–žÄ€¢ãø§²Õ—ÑüðÓÔÇÛªù§Èëíé½Ç -êËÝÑ•ÿŠŽ“—Œíè£ö¦Íº‰û¥ÖÛ«€û§çê›ìýþ¾éŸ¼ñáûåõ¯¯´¦Â⤚ÿææÓÕÕüÓì°Ç•…ž‹¥Ò“ïÒÚð¿Á˜Öõý§ -›áŠÉ݈âÃÒôºïâ½…¸¢ÿ¾ŠÝ¬Ñ¿í‡Žü÷£øçô¾èþ™ò²é¯–öÏä¥ü³–œýýçþäÁÎë̬‡Óˆ·ó˜Ä¿ßÝÛäòàžÃ¥™Ñó -—ßßÀƒÿî÷…üû‘±Ðü–캙ÑÇ­¥ù¡™³Äé°ÿ¯¹ÿÏ‘«ÝŒÏ†Ž¹üÍ¥¸Ñ€ÿ†â±ŸÉ™ýÿ™ý¯ÿÒäÅŽþ¹Ú‹Û¿“’ùÿ -¯Ò¤ˆÈ™ìɄߨœàÜ‚§Ë³»ýÂÚŽ¿õøç¦ð“̆‰âø³¢Œæ¿¥ë”¨‘úæºç†Ò”¯–؞ѻåÌëþ‰˜Ï¡ÿû¨Ïð û¿¿‰ -¹ÿÜ€ò‡´†Üÿþ“ÿòþà‹îäñ«ü³µÄ¯Ö°Úɯø§‹àŸ­ÀôäÌòü³µ˜â®€Ì®¸ÓïÐÇ ‡š˜·Ùöœ¸Ãí‚üŸ -ꮀÿ¶ÆâŸíúׂͅÿÜæŸäÿôÁÍþ“™œ˜¹ç‰Îé¥É’ÿ”ÿÛý÷„ãöìø’•¿‘“ïëÏòœêªÉÿ¹à£òÍùùÕÏ¿³ú­À¿·‡û§ -رí—ý“ŠÑÎÉψñîҿ̤¶üŸù›™ÿž•ÿÓ›£Õä߇ÏðÄÈØéÄÿ”ûŠõþ©†ê”†ÿ–¥Ý®•þŸÑ¯·Îíù¿¹÷¦ùÛ±ú°Ý -ږλåØêÓ™¿ëâ‰êꛑƒ“ÄÖŽŽ¿í¡¦–ýÁâúÎÝ롾§üŸ³Úò¶£¹šçÒÏñÒãéǿƒ›çòŽËØäÇÁ°Îï²òûÏÉÿÔ -†úòñ§©¤ÿ§¸îÌêÆœòí裕Ϡ€õßí÷ëùþó«ñ§¨Ø‡‘Ñ¿“±à§ÿ™×ÙéŸå¢ÀðÏÎýùֿŷذÒÞèµ´çŸ·Ë -áòÿ¦—©øç¥¶èþÉ«ü¥óÝ‚‘ ùþ™àÜÆ¡ÖÂÍù ¿ƒ‹Òí­üÌ玘¿ËôóÛçïÁ‰Êäš›À×ðÏŒÖ¹Ž¿‡ø´Î˜­á¤ÒÄ€Ø -Þ†•äÿ仯½µ–·“Ô¾™ãîÙžÙ©ó¯Øý©Ê¿ÁŽœìòÿçæÔ’ºŽõð¾üŸ‹µ°çôµàѿֻÆúí¶Ã…ñÏïÂÀÎùòˆÿ®€þ‰êƒ -‘‰©Ü€™Ü€‘ÿ섦‹ ý“‹àŸ­Ààôäòü³”µ˜®€Ì®‹ØÇ¿ñÛϽ쨿ìⶉº±€Ì®¨íŸ·ÈØØ™ˆÌ—ðÀ¦—”õÏë -ý¯™÷üƶœ÷×ûÞÝÂï¤Ú­›„æþ¡—å‹´öº³à…¥ÌöþÔ‚Œþ«ûÜàéÙŸ¯èŸŸ¿ø¹ÏéŸÏžý¸Ë¼¿»ò´Àå¶ÜÂò߯¸¿“ -ÉÁµ—þ´„ü“¾¤×´Þ—±™õÈí¡•ÅÿÓŸâô¬”ÉξŸ¹‚Úþìé³øç·¿õ»þùɤÿÞ¾ýðƒ¾çö»óï×óÌÉØ¦È×ÒôÌ–š -‰×Êãð“×±¿®Âœ±ñåÒìÔÚÜÀ‚ó”æÙš‚ÚâœïÒÉÁøäƒµÃƒ»­›Ë”Ø£—É€õñÿ°´¬×àŸßþþç½¾ôöØõ°©«ÆÒ· -¥÷ˇî³üó–êªÎ‘ý³±¦ÌÚÓØ«èç÷‘½µ°¾¤ææ¸§£³çýĽÐèä‡ÔðÏóãàû¼°Û²÷ùüëÄÛÅÙí¤ëñž­ëöµøçà¡ýØ -›²·Á­ôˇŸóœëŸ™™‹¥ƒ²•›ãËþú†„ù§„¾’å¾ÖÚç­®ö¨íŸÉ£áŸÕÚ¶žØíÙèܦ͚탥–µ½¢ÿΪ὎ÿ†¼Œ…Á -¡ºè†Ý¸ÃìÓំ¥¾Øƒ¬ÿîÎæ²Á¿Ü˰øçï¿ûÿèùïþëÅïûÿûÏÿç̯þýÅŸ¿ùÿß—Ÿþé‹ßûýùÏ¿ÿËŸïÿð×ÿûù· -ÿ¿þéÕßþòï÷¿ÿíŸÿøÛû°âîïÇIJÂó³–Ò–œŸÏ´Ç¨Ú†çÙ’ü’âôÚï²ò‹µ°óêš²šóÁ±ÞÜ”¥¾¦Ž•Ñš¿ÅºüÓæ· -ÿÌŠ˜±Ðìë±½ñ²Ïì¦õ¿ÉÚ¤’å˙ڀ ÚŠÝ‹¿¤Òî̘é˪ÞûÚŽÇÎȉû—²¥˜¨›¬­ëÕÔ¿ŒÃ¼þ¤¤úížÎ¡ó­º½ -ÈÕðã¶‹ “¬‹Êû瀿”¾–¢ÜöáŸà´Ï “‹öñÏÐÐÈÌá‚È…ä‚øçë °¤Ý€™Ü€ÿ줄¦‹ “‹ŸàŸ­ÀôøäòÁùßßñ -Ù÷ÝìÿŸ“¡…À¦—À¿ðÛÌ̚¦µ§ëë÷¯‘ž‡„²©Ó¾÷ƒ‚õ›Šýóóó™ß’¼ù¦§¾ˆ¥ùàÆç™®ÝÎÉŠ–û¥ÿãòÅÚ»é -ÍõÁÎ¡ÓæµÓ¨Æ°•ßÅÖ¯®¢é¤í°öÁÊù§•—×䵦ƒë®ü¹Š‰øçÒò¹¬Â†ùíôê˜ØÍžÒü˜„””ͦè˜ö¶†Ýûðò…§× -ݱ·Þ¬š¥ýóæîƒÕÁÿöæÓ¾âÒžÚÊöøªâ¶ŸºžÝþžï¼àÄÖßͳ§Íë±Üú¹ø‘º€Ü«Ô‚®Ê벟õ™ÌÁ„úþÓžíΆ -³š¹î“ÚÕ¶üÿ—ý“ëÅûºÌ¶¤‹Œ­…îÉèÓÀƒÓžµª§Ì½¤†ÿˆš‡¿ŒûÎëôÞ¦¸òÌâÙ½›“ôÓã¦é¨è¬¸þó÷´þÖíªò -ÎÏ®”Ö˜ßÚيφ»¾å¹Øþ‚´ÿÌÌÓ¶º÷šþ©íó“û§í×úœŠÞ¦äðéãŒÂ¦ÃØ‚£Øè㕎Ûñæøðñ–³é×Õ÷Ÿ®Ü© Ë䘭 -ÛüÓÀóÏäþºž”´­ðÏýëÐü³äåÓÝùÖ¿§ÛះÂÿÿ¹×¦íúïÀǨچáŸöƒ‰…Žá¹ìÛ÷£Ùþ©Å®´–ßÝÉ瀢«òïÇÄ—å -­ÓäȯðÏ®íÅÉð¹«öçõÌß—Ýæº­É¾±›öþ¤ ë½¬šý„³þáûçâû—Œ²Ø£„–ƒÒªéñåÖÜõúŒÅƯ¶ÿ¦¥óéþ¥Û‚ÉËå -ÖÎË×¥•¦´»«Ç¿·‚Ÿ†“€¢¤ÆëҗٕƵÇÂ÷§Å²Ü’æêÅœ•ʤòÖí¶Î柮Υã‹ñûààÙãУį̢çÕŽ‘ùÃÚƒ‰©Ü -’€™Ü€ÿìÒ„¦‹ “‹à“Ÿ­‘ƒ³³¹Øö§üÓ…ðÿÏÖ þÙÿùÿÚ¿†Ëßñ¯Ö’‡î£€ÿúæàŸÿÿ³’ùñô™¨‡õÏÞ̶ã¡À¿ç -Ú俟•üóö¡Ž‹½ò–Œ¿Ý€üŸ¶®ØÙ¿û–µŠ–ÊïÓ…ó™Íù§‰ÁÙß„”¦ËÅîù×˶¡ ´…òÖÿڇݓ©§ÞçËìïŸá… -‹…¿׳žÿ°ÞªÓøëð´ô¨†±Òú¬³ÿä›á‹ò¾ÛÉ©©”ÿó½ä«¢ô¨»û§â½°±ÆµÚÅÒÔìÃ×§¯øÕ»ˆãÏÄ ¶ã½§°µÁ -®ÎÎø“«’¼û÷׬›çÿ´·ÃÁØÂ¢¯˜úļ­ÉÙÓ¬¿©¶â¼ôÄÁõ§»ëÖ¼ÿš¸‡ñþ¥êƒžÔÂó‚³ä÷ë’´ëÁ۶ؾ—¶ÌÿùÝ -ÐÂÆä™íúÏ¿´žã¥ç ž…ÿŒÊ ³®Š•ã¸Õ–‰­áœ°­£ÎŒãòèÓ öæÛ̉ÔÅë‡ÿòŠÇåÿ¤—¯­Ö©’­¤ãû§¶ï‰þéô÷Ë -ʽþ¹Ë’—øÔ§ß±Í”¯Ö®®£Í䯦ñ¡ŸÑåò©üóæ…òÿκ¥õÖ✀ðϪ³ü“ߓŖäƒÅœ–Þïíü¹œæþ¯è½ìãÔ—ù§– -Õ’íëó¡Ðþ¿ÏüÁÆœžé¶ó÷ƒçïÁØ÷Îñº‘ôÖí£ò´´ÙäüýŸˆ·Ó‡©Ýƒéè҉〰̔ùè¼Õш­ãýþϱ¡Åˆ–Ѧ­ç -áò®þ¿ªÀª¿ÁŽØ¶Ü™ýóœ¡Ðëç®Üçÿ´çôç–âç緓뜛؟œÿ䣜ûèµ³®Ÿß„èÿ¢ÿÈÙ™ôäÏñ†Øí¨žâ•äñü³ -µ²‡¶˜¯œö‹üÓ…ðÏÖ¤À຀²¹€ƒþÙšˆÌ—À¼¦—ì㟘†ÏÖƒõÿï¾€þœƒ‡ãú÷£œö¨íŸÈØØª›šÿÒÛËî÷‘¦õèÿÓ -¤…ÅýóåÆÂŠÐ‚œÿŒÓ¹ô†“™Ä½ºìð‡Û€ççüŸÐ¡ï؋ՒŠéúçÇžº˜›¡±Ê•¢Ó¿…ƒî¡Ôš£ªï퀅¾¶Çæ»ÿ„ê™”óÏ -¾ª÷íüŒ…ôöìǺÒ꨾Á¶—œÿ´é†¢â‹¸Èɰ™ÿªï‘Ö›þÔóðüŸ™Ý¾š»²þ©Ìð®ÄºÆÐŸ§Îæë¦õœÍÛÚäÒ¿óÓäñ -ÓÆ¼«Ýª£»¶ô¦õ†Õܹåÿç¢ËŒ¾žñ‡´ÞšÒ»ÿøçí¢Œ…üÖ©ÅãôÑÉÆ°Úÿö¨ííŸÉãäÀˆ÷ïÉÑîôêîœÃÿ“ö“ÃïÒ -à¿ùË‹ÊíàÉŸáÑÆÂãüÑÉ¿…ô̇þÏé‚óÿš»Í¢îŠÿþ¼ÄÄ¿“±°¸Ñ°ÿüÙæ¼Î¢Ÿ•þ™Ì“ÏœåŸâÚ¡Œ¨äêÖÍãóÿ -Øæ÷Ëë­©µñ›ÿ¦¥ÿþ¥©Ä¹Å¡Ã¸î⻾ŒÓê¶É¢úÿŒÄ¬ú²è¨‘§Î¹‹²†¦æˆéßö‹Ôܹÿ瘫­Å›“͢öÉßǵ΄ -誄ÿ‡ÓÊ·…€ÍüóçšÔ½ÓéþÏÖ”º¿ëó›­é˜ÏßÎó›ûëåÓ› šÎŸßìÍ©ä餦àðäòü³”µ˜®€Ì®¥€ÿ¶†‚Ó… -»É…ðÏÖÀò຀²¹ ü«ïï÷·×ðºê¸Š…ÿÿÇž¹»‡†”ŸùÈÍõÿìÍ’¿Ó»ãÈ­²’»ï¡ˆðϧ—ÔãŸëƼˆ½ñüÔû—’û -ˆŠÍ­’ÅÚŸÆñ‘ÖŽ¨«ýÑ“«¸ùØó¢À¯Ù„˾ÿ˜þý¼‚׹̕š™ÚÀÇüò—üÓÞ‚íàÄÍ¥°ðÏ›ö÷üûªèšÛžÅÝÍÿ€íÐÒ -œ¿ïŒÂ÷ÄÓìМꈺžõÚ™±í™öÏÓîÂÅñ¤¸Èɬ™ÿŠ£ÚÀ˜ŸƒÌôå­ç‚ùçªèŠÌËŽœ™Ää·Ä†Ýµó÷žýöÃÄÑÀƒ†Ùþ -•©Û¨±ÔŒãœõ¦ýÓŽÊÚáÏé¹™›ÎߤãËÄ‘µË’–‰«†ÄÝååþ©¾´œ•¾©‹Ø‡œ™¿ŸÁ™Ö©¶ÎƜؾéŸò–ίòúÿ”Û -³èÅ«±ØØÍ”Œ½Í¿Åú»†Ôþýçμ†½è¸‡‰û—êßõÏäåéÕÞ“üûÏíü©â´ëÇ÷ʬ·ÃÛåßÿòÉ…üœó¥öÙ£‹·Í˜Âó™´Å -¼ÝÜ«ÈãΟÌß·ýþóÒÓ¦ìîò½ª·š¿‹óŠÄ¹Š•¡Çø¶âó”©ÿ¤ëÛÑ—Á‰¸ÄÖ¡ä¯ß¥ÈΙ¢÷‹ôÎÛÎÄãÑùûàŠ†± -ªÒ¼±Ù¬âîÕ žÿ„û øšçÊ›ñÐõ¸ÿÞ…ðÏÖᘞÿö°Ïã•ÿº€ùÃÚ¢ƒ‰©Ü€™Ü¢€ÿ섦‹ú “‹Šøç—ñ¿ôמøì« -¦÷å—߹«à„Ì•÷†é®‚Èä‚ÝýÓœ²ÏøçΠ°¤Ý€™Üп“骽½ùÞÞÌ’›çË÷៻ãô¿¦ë®Èä‚Âßÿ½òûÆ„ûÊú -Ûó„ÿ˜ ···×¡ºšÿãÜր̮ܨ·þäþÉÿþÞÌ“øçâÓÀާׂ̾ª¯µö“õèõјí¶ê©¤ß”´ŠýèÀØ­“øØç -›’¿Öþùð²ÒŠùçО›ººœå‡çÜÄ¿ŠíΨڪøàÚöñÑŸûȼ֋ÆëÍô“¨à˜àŽÿò÷‚•²íéŸÏ³Î‡“Ñôü ©¸§µÏÉ¿ -•…é¾²”¥ý¼Æÿ“ÇúΨ½ÚªøýóÿŽý¹½½šï¥î§Š·™™ÁÆšéÿùç£ìψ²ˆöËÉÁØÖ¦šÁöˆÌ…’ƒÚÚÓÚÞÙçø§û• -¶‹ùçÇ÷Ðàï¹¶èþéø¤Ë讋®ÿ©Ã‘ÒöÀ‘‚Ó›œª§ðãŸØ“ ÑƱ󮇈´ž“å§ã¡½Ì‰áê ¨æú¦Ö§Ñ¿šû²‘Þóœª -Ú—õÏÎÕ¶Ííù»¿ðé—°©Àü’þ飅¬æœÕØÌÆËÇÒ¸Ò¿ù‹—Ãõ”’ï«“õˆ½šÐÁŒ±íˆ­±ÔÅ÷·ú½žÃå¢þùªÊô±ÄÿœºØ -忟åܮɢ¹ëßÞ©ó°ŸÅˆ–˜á¼±¼µûË¢ìÔŸçÿÜœíåÒÂÌçÙÐÁ¿£åÏüóս͎椹Ԓ™½÷ÏÚ­¬°þÜùù‡‰’›—ðì -›–üþ´¹ÿêÅó¸Þò²ÖÊδ韓¡æÎȵ÷š¼ŸÈ÷Ë´îÑå¢þÿ™”Ñ÷ŸÊøõ³›ŸŒ‰ˆÊÐÙ‘ÂŽ³üúÓĎ̤äß÷¿¤Åší¬õ -£çá–÷¡¾ŒâÓñõ²ÖʤðÙܢĴÓèÚÄ×ÔºØçýÃÃŽʥǹŸ‘áüɤ„î» þÿñãé¬Êš¾£ÕìØÚ©¼Ê´’ŒªŸòý§¸ -ñ†úŒ¬•‚ø”饞ծûúü¦ÿåýˆ¡ˆÆ ±…‹º “‹Šæÿ¼‡ë…ÒµˆÌ—€À¦— ÿòë °Ý€™Ü€‘ÿ섦‹ Í“‹öñÏÌä -•ëÿ±™‹ ‰“‹Êû§²–éÖ†‚Ó…Éä…ÅýóîÆÂɜᪿ‹—ÌÆâ“ÀÌä’µ£è¬ÇžòŸ¿¶ê–•²‰‡ýÚ®ùëåŸäû傽ªŽÒ¿ -¿ÿ„í²–é¿×ž¬¾’ÞÓøÝ„žùÅÑ€ÅÆ£Ýª¥°Ò¦½ýóãÖùÀޮأê¨çŸÔ¼—Øç¬Ì¤á¤‹ìøÏþ‘ÏðÔÑØšØàÞ˜… -á¯®Š—µöé—÷¶ûÜþž›òøç²­ÌÚ©¤˜­ÆÚ†ö’áêü Ý®ÿêÝ«ÜÖ¿•©¿ºˆè‰¬áé¬éÒáý‚¢öš­çøé™ØÄö☴êÑ– -÷ôœêóæãŸ…Éú™æÅ“﫱ג£¯éæí÷¼‡Ê»øç×ÊŒ…ÚËúÿõä­Ñ¿þÞÖ©íŸÉã²ÿ²”ëÍÑâûÏÃî¨ÉãДœÿ죽û¬‘Œ -ÜÇöðÏ°ÑÆæÂøç¦ìûźÚÒˆÿÜŠ’•ßÿÚÁ—³Æ×ÕÖÒºÀ¿×ÁþþĬôÍÆôÂþíÛïŸÑ‚­“ù„﹓‚«¿Ø‹ù—µ·¾ÈèÿÊÈÚ -¦É‰ï¿íá¦ÆÛÄíÌîÖß¾¥¹î‹Ýü³Æ©ù÷¯¥ºÒֶꤒßå™Ú•Ý»…‰îß²®ÜÜÖ鮩Ý圑µå’Â÷¯ÍÆ—½Ñ¢Æ—ÖÁ¾ -ŸÂÙÔ®ýÿ»üåÈ’’È÷ð¸üßêÚ»í—ÁÙ®€Ì®ÿÀó›ðÏ€À­¬Èä‚äˆé¤¦ðäÌòü³µ˜¢®€Ì®˜üó”î‰ðÏ· ° -äÝ€™ÜýóŸÛï¼÷ÍïýÛ§·Á­ôËûоðÏï °Ý’€™Ü°øçlýùè—Ÿüßþâ¥Ø­ïïÕ—ŽÝ–øç͵¿ŸµÆƒÿ±É™Ç “‹†ÿ -ïìÇ–½½þà¿§ŸÛå釟©ô½çù§òÿ»Ö†˜˜©¶² “‹†ÿ¼³¹Ã—¯ßûÉç¼öùöìÃÁ¶ŽÃüŸ§ŽÎ‰œ³…—èüƒž˜‹Ó´Ò -²Æã·Ñ´µ›ÖË伜쇽™ÄÿìëßÿÕúۻܜ¶ÛÔ¿»ò¤ÏäþñϰÖóâùáݠ¼°çÉ„¤žÛÌïÄ”·ç³¡Ìüåäú»Èä쟟ö -ååëßøû¨Ä¨’Ûæù§•ûŠÁþÏÚÎǯÿ´ÂÛéßÌþᢉ¤ÛÓÜþþÒâËØ¨µÔÔ€û°ú•ÌÉîÇŠ‹‘¬Üµ×Óñê®éü¬ÊÈ”¦¢ -ÍæÌçù¾Ðÿ¦üòÁïú«œàÊߟŠí™í“ŸæÔÝèï¶ÝÚŽ™ã„öÿùüí†ééÝœšó¬†„ÀÜ¡¹“¨Êâ¢Æ–ùòµ¥‹Òº—Ì£¿‹õ²¥„ -µ¼‘ÂéÎóýß þù½÷¿é¼Ë´Ì¤Þ—åËþ¹¬ÿ§ïœÝŒµÚ¢ðò· ¶—ü׉Ӻ舘°ë×§éµ ¸……ūۭµŸÉùÙ”’ÉôÔ -îÓžçû°öϳ‡’íóÁ¼Î¯íËü³¬ÊÓÿÉ›çùçæžöæ¶—ü×ÝÓúç•–˜åËä‚ÿ–¢œ´ÌöûéÎóý¯ þùÝŸÿºí–èž´ñÉï -ÐÇÄô»ÿç˜ãé›øç²º…¥¯µ¾ä£éٽ󲯑ÿ˜³È–ɼÎÚú”ûïèŸ¾Ž‰ü¬¶”©äœßùóçû°öåÏßÑòý–µþ™”üû -§—’–¤È¸¯µ·ÌÏœúÒ–»»Æ»õ®‹Ñ–š°ƒóÒ‹¦Ž°Ú‚ٚ嘜ëµþíü¬Öˤ¾Ô­¢ œî¼ß‡öúÿçŸþÂŒ®óïÿŒÑ” -ŒÒ’™Ž¢çŸêæí§ïÛÁ§È”Ð’£í¬Óñž’û¹ò³ØîǦ¸Ù¹§æÛÚ¾ÿô£§ŸýÜ®‹ž¿Ðš‡­Ç‚ÿï䬔騕½úœùÙìùüæ -ö©Ïóý Ï¿ï÷öذńèËýû¿ôñó»ï ž˜Â…»É…ȿԚ€ˆÌ—À¦— Ñÿ§€€ìŒ÷àÏ”””””Ìý²ààŠ‚‚‚ÿ‚‚‚‚‚‚² -Û²ü¿£Îàó -] -::^ [s0; Multi`-column list for displaying file`-names (derived from -ColumnList).] -:: [s0; [^topic`:`/`/CtrlLib`/src`/FileSel`$en`-us^ FileSel]] -::= [s0;= -@@image:946&876 -ŠƒÔ²€€‚Îþ€€€€ø—œí‰¸Åƒö»°¬ºŒþ¢Žâ‚Ž¨ê®¸¦ ¢€‘‚ì¡’–ˆÑ‚ˆû¢ÛÆÜ²¦ŽúÍõœÆÑõ‡ç†Ñ”¨ƒ -ò°Î¢±¢òɤŒ’‘ ²Ê¤‚¡‹¬¡¦ðó¾ó÷ÜÜ„„®‰ÁúªÏÛ§ÎíÝýú¹þÕÝïû¼Ï¹þõª««ûô¿åë÷êÖ÷×Ùƒ²…쑜Íß -ö¶éÔ•Ôщ¢ÏľåõÓ³Êû£³×ÇŸë›æŒ±×É—±ŽÆóÆ¢žÅçŽÄ‰ó§êüÎÆØËÃõÞùö°ìåŽÖÓÞŽÎçž…ˆß§µ’ƒ -ù„ýÛÈ™¾Ä¡º¡¿¶ÍÄÎï‡âü“Æ£ãÖí釭·îÃîž—¿»×ìõ¯î÷×äµìÿ“û··éÜȦÿƒ™üôòäͱ§Þ¦œû˜ï™ÍŠ -§À¾Ù’²¸ÛãîúÙ뭆߉¡¿šœ£û²Ý”¡Ô”¨ÜûÞ½‹â·šü¿ªø÷»ïû„‚÷·«ŸÙ‹ëÓÿ¤¥¹þâúÊìÊà·µÿÓË”ÅÌâ -ô¦ŒÃð覬ôã–ß²„²¾Ð¨Ã¢·Í”ßвìò³–Òﺵ÷ÅêèœíåÑÑ­ŽðôÁËÿæöÅç®õ™ôéÆêèòÞÍ̔û߻æý÷¹»©£ -îϽ¸ûõ„šË¥é«Ï䉖ë¹ç§ÿÈ»Íɬ¤ŒÃöϺ‡ú°ïæñáÐðãäãžôå£ÎÝ®ýþ÷«žÝýÒç¦Ýá°½ºÿëô±ÿÆëÇ·Ò·Í -œ‹Æ›¾÷¬êþ¥¹³Æ›ƒÜ•´‡ú¬ÑÞñ¿‹¦®í±Î÷ú²èãÏ·¨¼ç¨ºè„ñõ˜’˜¹æ°ÁµñÒºËÜ—¾‚ƒÃ°Ü‘ß¼ž–û“®œ -·Ýí¼‘êøº×¹ƒ±ç´öÍ¡ÊüæúØ”³û©§ÍØ›«²¶¾ÞƯ͟Ñð¾ÿÉ´‰ÿãðÎù ôÞÊÙû暦â…üò‚·ý‰Ý­­óÌË·Å -ŒåÄàþú„‘†á§Ó´Ê楘ÕкÁ׉©Æò³ØÒÒÒºŸ³ªšº´éÔŠÞŠÜê¿»ÿ­™øàÿÆ÷¬¶˜ØË­ñ¶‹Î¡…Øó‰„ýæßˆ°Œ -¯ÃÁ™÷àÅŽ÷í̾½Î轟즡±—ȼÊÝöå§÷¸ÝªÁÝÉÿ“ÿöÐÿŽÞ¼°îæï›þÃÇÞÀþ­û¹ï…äÄŽµîº›ê£þ®ï‡Ãþ˜Ÿ -ÒѰ¿æ¨ØúÏó˜Í죽¼ÜŠÞë×î·üÚ§Æ®¿à·è“³†¯œ±ÊðÙÉý—þ¨¿ÿâãûÏŸÆ¿½áÜ£¨û¾´úØì³ßÓ»³ã­ë¿ü†• -Ôçž¾ùõªŠÝߘ¼Œ½‡ÿÞ¼¦î˾íÿÿÃøíÔ¥»ÀýØæïÌׯĨÎà‹ÇÛ™ºóÚ»ç귆ŒÃö÷¯°ÇÖñÂߣѣÇÀËÍû°ã -¸·þöó÷ÿé±ËÿüãüÛ·Öì¼ñ³£ß¾ööô‹×Œüõ¬å£Ÿ¿èøó±çÿîÎðç¸æÝ÷ÑÁë çŽÜñòÿ…ÿÇôΚ²â„Þ·þ×ô÷ŒŒ -µîìöûßñÛÿ•½ñè„Øéõ³ÂÈËÌÆ£™ÙÐóëÁλÎÐõŽž¬²õ×¹ƒ«îºôäàÕÍÞŠîï¦ÇìùëžË·Üñ­ç–”þûüß¾²ö -ÙÓßíüÚõ£Ø·Ü³òÅ«†×ÿ凜¿£×¸ß¸¼ï¼áÏõÏžœûÆÀ•ó§ößüÜúÙ‰ïßõÊÛ—œùöçôݘ½Ô›”½ÿþÛ–û–©ÙÕüø -‹žüѵᅯ½âå¾øÞÊŸ¶ßÛõ±À°ŒçñéƒÎíౡöƒ—½ÃŸ¾‡Ò÷óóí·îºù¯Ü·þõ“£ßºêòä‹—Œÿ嫜¡ÏÍžšû -‹Ö൧ܱÖýàŠÓâшö‹ŽÙð¸Ÿ½üÕ©‡®æüßþ±û߷ت¶ãï›—‚ɽ°ŒÃí¶³„÷èî™ã·ýþîì럧àÝÓ±ô×ñÎõ³ -³‡®¹óàŠ™¯ý—œÐÿþ‡ì·üüȳ· ùÛ–ý¨ïïÖä§ÏüÏïÆ¾òŽŸù€¯ž½¯ýÅܓоêÕü„íÒïÓÍ·ØËé“úò«Æîøø -º‡»Ô·àáÆïú̦ÆàŽƒßæýîௌö÷æÓáͨš«°÷ðÊ™›½¿üíÆ¯þ…ÏíñòÛ˜šà޽±ÿüã©ø±û¾ú¸Ïï»ûãÏŸñ®ß -ŸÍб—¹ÐçöÒœã›÷§¯Õ¸­âö°ûë÷îÚöâÒüõÿØëÝÿöÿÒý¿´ð§ÎíÚò‡×Þø·”ÄÞ˜¿­¹Ò¨€ß˜†ƒ·Û™½ƒ—ž°ò -½Å«â¡†ÿûçé𼹜³ý´—ž×ÿÞÔ÷缯…Þ¼ý¥ï桽§¿±ã÷³Žýч¼ÞŸ³÷ˆÕ±þéß¶¢­ßË‘ÙûúãÓ±ûÉǾûÇöÚþ -µ”óþóï·üîë÷‹ÇŽ™·ß™¾ýî¿­ßóýÜñï÷¼š±Ñ±«ß˜¹†«ã‘½ÓÛ­ìþ«‹†¿¼ÿÑüúé¸Ýû–‡í†óõì÷Æ›ú -õ¦ŸÜ·ãÞù™ïûôÔ·Ý÷ù×µÙûÞýÕúöÎ싱½Éº½çŽ­íÙÅËӞ§­Üãâñê½úöÝÓ›öúÓߨûÙ¦ÖæŽÇ·™¯úÝ -ÓóñãÓçì¤ßëÞò‹íìÑâ­÷¾—¿È܈°ýûÇûèꯚ¦îÝù‡›ƒ®šã‹à˜™†ý´ïýΟäℎûÞÑ÷ßžßÌðŸÙ󆮛½¸ -÷Ì«¾¢½ªÉÑÿúÛúÏÖûã†ÓÿüןöÈãý§œòã÷¿¦íÅÞÖõ½ô¿²ãöÒˆÓÌ“ýú›ÞÑæœŒ—Œ³ú¨û¥Ù“ÍûÞþ¬ -ßËÙû ›˜‡‹ÙÒ«ÿò‘ÍÖü玧èÚ·ü¬úަ¯ø›¥§Ìú¾Íü’ûẶ‰„«óüæ“ÿü“¦î£‰ß¼Ô¿ûé´õݞ̶®þîúɌà -ïùô히ٶ»ûýÃל¾¾üÝÙßš½—ôɳ‡¯½£ŽþÂâò“Û㵿ç¿ãàÌ·â̼øàÆüƒ³ÞÐ÷‘ƒìž¿ù Ÿ¿÷øÕ±û§®Ž -þü²Ùõ¥ýÞßý¾ÖÆÞ‰ð²Æçïí±·±½ŽçïÜ“–ËÒ»ßðŒÍŒˆïþî©¿æò½Û¸óÚƒÍÛÌÉ¿ŠÎé²úÒéϳôÞÞï½µûÓÖà -ð°Œë½ë™–¢§ð›¦œµúåà“Ó‡þ⣬¡Ïþôø¯äæÍ½ãðêä™Ò¿÷è֛Ӈθèð£¯îŸœñú§¾óþñ“Þÿ“ÃüÞ‘³÷¨¾è -¨Þ˜½ïü¼›î÷Òö¾áÕÌŒäÊÞٓ줽¿ž’ííÈÖ“¤éÓöî–ùåóìÌÁæŸï…ϱôËÞÿ•¢ˆæÆŸÐïáÜÊÃðݪýζØë·ˆ -—¼…‚ëýéï¿ï¿øøÁ«¾ò©»´÷ÌÁðëÏï¡÷Ò©Þ¬ñÇíÏŒŸÞõÐðÌ×ÍÿØ¿ÿ”ýŸøŸÐ«îšüÿâöþð¸ºöýûŒß÷­Ùû -úçÿœ³—¾íÙ»ÊÀ›³÷·’ç篎ÇûÆÏ™õýŠÞêô“ïÚÉßþæ¿ÿú¥‡ÿ³ñã°§³ëâÒž´ï÷Ц˜ïíõûÛÓ𙎥皅ḕ… -ˆ‚Óðõοä·Ãœ©ƒ—Ÿ´òøõdž¯™Ùâ‚šºô×èá‹Ú÷¹ŒýÌüÍð©¯êü¿ñ¿ÕǼüó§ïü铽ÔÏ´÷ËÙË»Àȱû›ã›Œ¼ -Û´©Þòü«®×ýæçžß¶¼âà÷³Öîþ¹Õ‹Ë׿¸é½Û®Ê̽§­çÚóêÝœ¡—¼ÿ¿¾ÜöÝÿÖÝú’ƒ¾ºïí‡ñúú¯ýâÿÒïíÜ´í -ÖßþÙ‹Ñ…ÏžÓ·úºí阕†áïü®àΕàÙñ¿ûÏÿ·øÀ¾óÞ×ÿ£Ñ‡†®¿™ãÆöðŠÝþëÁ¡ËŽš¾èû½£óÞÙÂﲩûŽž¿Ï“ -¶ÇýéÏß¾ç³ÌÞ“·Ç˜å÷øòÀ‹½Ó‹‡â‡†ø÷ó¿ð¹¶Îð¦éÏíÛ¶òˆÕ³óÃ対úý­·ÓÀ²ß¾àÏ™ëžÞÄß¿’ý÷¨åéžÇ -ÙÜ•ÝúâßΞÿŠöãŃڻÞöäü½Žõú¹Åø«¯Û¯ž†áš»ºà֗쟙„÷µå¡øöŸ¨¸ž¼ºöÿõ§¿ë“ùÇÒüîÿ›à—ž· -¢øé‡‡¯™ºŠôё×̙޹÷ÐÑÙï¢íù»î¹ýä¤Ù—œû’§ÞÛ·ÇÏÞ²Û“ï½Ô”½ÇŒÆèÏØ´ÇœúâòßҼ眱—÷—öõ©÷¼ -–ðãÞïûŽ›î½Øû½‹öºäæûüëÁ×½­È‘º÷›¿žÓƒ÷ƒ¿›ôõÔŸ÷»²öžÇÀ¿È‘¯ºøß뻟¿‰å²òšÔ´Œ×Ù´¡»‚ûíŽäó -Ì›—¼ŽþåïÍôÃÖŸµùÃÅǿпçêÿùÓû眵°‘烃óÞ¿øßÞ”¡¿ãøéìÃÆÎúÃÈ÷Ì×ÐÎïðñ²ÿÚ¿õÇ×ÛíÇïž”³ -›÷ÔíÍ®¯åÿïäÿ‰Ùûڗ圽⧷†ÿïÜ´‹»çÞ§›¿ÂÆþ£¿™³·õãÓÏ×¶ÜõÓš†ÄḋՂÓâÍ­þÿËþÿÜÿë×úÖ§Î -®ø÷Ó³Žë½—ûðÞÙ“û¿´ºùýÇßÕ·çëÐþ³éŸ‡ù†Óß³ð¹ÒþƒÇíÓ¿Æí¯Þ£öÛù•îèÁ›£¦û°™þ©ûÙ˜Ãð»û™þÙõµ -޽¯ÞÅÆ˜âõðšØË±¬Åί웻þ²ÃìðØ–ð»°é©Åå§¿õé‘ýû­öºåÇüÄÖŸ×øæå§¼éÅщïÜùÂÁ«Ä¾üàãŸþÝ -øãŸúÕãÇîï÷ØÔ—½þÍ—¼öÞ¿ÙùåžÉ¿º´úáíÑïˆÙûú³ŽíìÝïë¢ûÆûù­ì岯ëö„·ÙЊޮŸœ±˜†áŒÖ‡ -쟮›¿ýüñ¸•÷ŸÿÖÿø¹û¾‹ß³ï⎩¯¼Å㽯ظ忼ŸÍÙïÎɯ»ÿéûö¹ëÝö¯ýÙ»÷þéý¡ûþô­»ÿÍì­“îüÓ´ -ëðè·Œ¾ºüƒ²¯¿ãàﯸç¯ûÝý‚çªâÇà盄‚æ¾ú—³›¿–Ìö™õ™áßÜý¡³˜Ž½Èí×ÝâËíÖûÌÙñÙ··Ó‘”š˜ÛÅÁ -³»ÇéÛÛÆûæ¥öÎè̤ßÏüù‰Öƒî­àŸÊ–ÿ…þŠ“®”Í÷ø»âê­ì¡»þ¹ù˜ÖÝõ³‚ŒÖüîóñèšÁ÷¶´ï°»û—¹èœ±éâ -óÖ³ñ–½²–„÷éÛ¢Ó·ãǯ쩟à•ʬ±·ÆïïüÕËÁÇ­ŸôüóŠÝ¾œ›ÿÞú±û©äø×¾çöƈ泊·«¿¯¡Îº†÷ðݧôÂÞ -Ë™’𺡴Ƿ­§£žºéáéëšïŽ°Ë¡¯Ç¾™ÏûˆÕÍéœØ¬Üº”´Úöžá·¼æïƒ¿œ•ÀÚ³‚±ùùôáÅØÃ³à˜Þù’쥋Œ -üºû¦˜Ýçð³šåû¾æÕæ×Žï½ëÝØ©ÈꘆḠ Ç§½“µ¦–ºèŽè¿ÿ€Øûᘆ˱ز‹Ã°Ü¾ÁÞŽ˜†áòºûϯýʰŒÃ -´Ú˸øâчÔ×®»ïéïïàñ´­Ì×ɾœîÕÙ›öŽçöˆ‚ê ‰½”Û„ÔóæÞðä÷é×íÿø…‰åžúÖç¯ù̑ÃÏîøîÊË–õÁÞˆ‚ -ǂ֒µÛî¹Ï»ÏÅ´¤ÑØ´Ë»¢”žÔ²¾¼òýÿ°ý€Ûýƒ£­ù¿”ò“ú…»‹²¬‹ö”´˜ÔÝÌË’Ã…½ËÿûíéµÒøºïñ¦ -Ó›¿Áû°´á‘¸î”éÖ…û°¡ˆŠÚ”¨ù¯ž÷±‰½ûøŸþ¡íµîÚ©µ«ê×®ƒî§½õ›ô•Òàà¯ßוŮšÏàëæÈÞñŸÏ¥ü Ù«þ® -†ùóæÉ˾ÿøàñññ¼¶à¥îÑÌäÑÒÕ¥ËéÎÒúèëëºõëè΢¢Å‹øŽÍ³â±—Ýö™ÍÙ÷¡ßý—¬Ø ÖþòüñÇÓ¥ôöÕʧ•²ªø -¼¢íåâçâ¢õù½¢¢ÐÙ¿ÖÿþïÿžýªüªÙ³æ±ƒ„Îàžº¦û“¬ó½“ªªÊ“Ôß¾±æâ‹ÄûÉã ËµÓלϿ¯úáîæ‹ì¥íç -å¶Ø’Ö©½òâõóåïÞ¼ÍÁŽë­û£‡™ÿÖ¢‰ùóç«ßø¥ÈÒª‹©òí蔀´¶”Ї†ÖšÃßñ¥œÊŒš¦ ÕЂ–ᙂ„ÿ¾Ò´¸è°Ã -ʎ㫲Åêåï’Ø¶èÞ‘üÑŽÞ‘Ñèàëóô•ÿ´ú½Ã·¾€ˆµ Žôè…û­¢Äý͘ã›ÝœÈÞ—ŸíØñœÄÞ©¢´¬Œ·ÝÈßÅõ‹âïÆþ -Ê–ÁÞ—Ó÷ñ³âÅê±ñ´×Û“í҂±±ÁÑÜÇÂý·Ó›©Ý¢¶²žÞµÕ·È˜ÐÈùȦ¨ÈÉŠ¨‹˜žÙŽŽëª™Ž‹ß¥Ê¿¾ö×Ù¢ -ѵòííìÓçÞõôòª‡‚“íÿÔøŽ’Ë‚žÖýË¿šÉû¯ÀݺÛ׃ÒÛ×ëÓãí¨¹“¬çÌÅï‰úУ£ÌÓççÌãéµÇ¡‹ß›È‰¸ª -ðûõ¢“ŽÓÛ‡ŸÝÆóÊ㯮˰½á¹âÛúµÇÒ˜§¥úþٻتžžÆžËùÏô­……¶Äµï£•Û¹ÚÐ´Ñ¥Ôæ¢ê·¨¥è£æ”ˆåýÉí–Ù -±óäðû¨ì–­ö¯±Ûç±ó‡µèªšãòŽÝÀÅêáŸÄø¼ âå¢Ä¯å€œÞÞõðÞλ¸Ÿ¼¤«ë–ýŸÁа’ê·î¿…øí–ã›ø‘ ¦ -êÊÔßÿÎâ–™½ÕóܑƜ¢ö¼ÙÂÒòƒšöÚ ¨½‘À²íë–ÿê´ýÞ—äÁŽÞµ˜´¨Õáèí™—öÆôè©õÄ™Ù«Š©÷Ùڽ˦ö -Ÿ‹ÕÃÇ›Åãô±½äí–‘ôÙ‹¢ÈéٚöÈÄ‘ÄùÅ»¸Í–©•‹âôƒŽôµ÷£—è˽â§÷þü£ùÚ˜éæîÐÝû€­µ¹žÆ‰¦’õ–¥ê -Ƀ«‡™¹ì¥ò´³£û¹Ò°ù—èÙÍÁËêËÛ²ù““û§Û®Ž¸­ˆöçŠÒ³ª’½¶™û½ªšØð’߯֝„»«„ûÙç­’º×¦•ùœÕÐ -ó÷‡ÕèúøÒ‡‘Ñîž—§óé¾Ç¯Çúè¾ÛÑÿøåÂõ±ƒè¿—ÛºöÿÌÁ²­ÄÕó¸·é°÷ö•ýÜœ¹ÌâÄ¢—ö¶Þ£ñµãö²ú¸û -ÍÇ·ÒÄ÷Ù´ëßÑÛö²ë¶í¬Ï¦žÿìÛ¸ŠöƒÙœÅ–±ÉЕٚ¿Ý…ÑæêÑ·èïúÚ­²Íëâì•õ»ÅËá¬Çœ¨à½ÿÖ³òÒ€€ -í—ú­ïޱߔ­ÈŽŒÚ¹‹¸óœãÜù½½ÜêáÇŠ•êÐÇöˆîÌ–ï¡öëí´ÒíÚ›–ÚËΙº‹’õñУ›ÄóðÊùÂÅŽ¹íù‘ -Õ½ã£ÃÔųà×ÍÇŽ¸í ú𤃯‰½Œ­®ö™ÎÿÖ’ÁùÍŽâËáþý´õ±†ÏÆÚÜŦÃÇàÕ±«¼¼ÓÝ¢¶ö¡¦Õ­ŠÿéÅóž¦ø›˜Û -è–ýå‘¯ÚæÈפÉ÷˜ÿ©ûÀÇ–Õʾ­äÉñèåÒŽ­„¡µêü®ñ¨ûϾ ú÷¬ø¯ïýŠçÕò½âðŽÌµì•¥®Åµ¶©­¨Ñïß¶Þ -ü²…¯š™Š½Ü“‡¿íµ³ö»²µÆ†û©‹œâ¯—ÊäÈáôæâŽö‘¶Œü‹û‰îôÖžð¹ÊÛç‘›§ª¤òºúˆÂýµÅ‰úË¥½ø®ö篢 -¹±÷è ºˆŸö–ï´ì­ß’èõÙ„ö®ۊǜ–¬ö±™Ë½æ”“ö›ÿØ›¼ÖÀ†§™©ó篩›Ù¬œõí•ûÂÞæˆ‚ŠÖüÙ»’•®¶°·ï -ÌàäíšÕ®ÿºšÓâßûÞ­Œ¢û麮ë±ýóõƒî÷‚½ø„åœÇŒòÊóêÙŸýèÉÿ£®øµ£¿ãþ­ïûöõŸ¤Áގׅûœ¡ˆª•Ô¹¤ -÷Ù¼Ž·ÝüÜÛïýæÂŸÌÇ·˜öÚ©¼¯Ï¼þ›ÔìŽÉ‡Ž×­°ûá˜ó†µ–ÙñÄ£¤Žö¿Éùɺû°®óŸÓÞþ«…çŽç¶°ó¹Ó»Þ·ªì -…á˜ö´¥¡Ÿíˆº÷œéáʎϬëêö©Â°Œ—ï°—å†á¸üËìÝÆûò“ௌÃÂðцûᘆéË÷ÚööýÂ䥌ÃðÀΑŸ½éﳃ ˆ -Ϫ£ÀÞšêá¢æ÷û— äø¡ÌÁˆ†©ƒ˜Ñ…‚öÖÒèÁÔÁˆáŠÂœ³½ßÝøßßþ…ûîˈƒÝÊÇË”ÃÞ骉Àîœ˜È£Ë£ÎÆ¼ü‘¶Ì -ª©¸ûÔ´Ô­ê±öÒ¨Ò¯é̜ۼÕÛŒïæÓ¥¬ØÑìõÕÎÙ×ÐLJÜÒÉÛ¨Û¦óŸøñ©„¬‹Ä‚ûƒã¯ííÓÒ´þòŘÇÝ¬ÚÆË– -‰ÀÞ—™¾Ñ®ÌŸôÐÊíÔ†”¼ÍÔ”ÉîÄ­ê—Ë„“÷ä³îöÍ⚇‘½Úãë¿ôÛ¹ÄÔÜÕºˆù±·†éæ­÷´­ŸµûݺÕÎŒ¹¤ðþïâ -‘Ñ·†šì­ÎÒê£îž¥‰Ø·Æ¼à¯ö€±º´çÇö¦ª»Ÿ¶äВ¤¤þŸªéÕÚã‡ëÈÕ¬±•÷½¸Žâì¥éß°¼²¢úúœù¬ÒΓҥ¹ -æ¤ÿú†ß…ÿǬ˜øËÛäâ釚£á—ÁÆãÇÇÍ¿®¦­½„¥¤ßºÒæ©ÖÁÊ£î÷·ñâŬ“ýð¾Ý޽ö¯Ë›µ™ëóÅ×µ›ß±†©°é« -í»ÉÄØ‰ŸÇݘӭ©áêñ±ØÝÝúìÒŒ‘›†ÚØÜè«íÌ…õ›¯üÝ¿’…ª½¯ÃÜüǺÅÌöïÙËÿÛ‘ýùà£ÛÄÀ» ª¡ŽßíÅÚ -ت቞Éþð¢Ñ›Ù‡éØë¬Þ¤í§¦Šêóն쯽ŸØƒ½Œ°ÈªÎ»ð¸Ûʾ¯æ ¾µ“ØÒéƒûÌÛ÷µ•‹®ªÄö®Ú¶åĬýȽÏ÷ -›–½Ò›Ò¶´æË¬³Ôâ©°Ìú²±—÷úí‹ÊÞÎÅœ®Óü½Ä‰Ž©í‹øÕ™öÒ–ÃÙÈë©ß¦Êà¯à¶ÇÛÃÇ«ëÝÓ•“ÈÞû—ÈŽÒóäÊéê -¿ÎØ»×äÕà€ïµäâ¯éŸ’óˆßõ‡¥ßö¦Ö£¾õéÓûÕãï”á¼Û—¤‰Š¶†°ËפööŽˆ°ðà–óÒ±÷ÀòØËÆ’–êµÄáè¸æÀ -ñËë«á‰ùóçç³á…ÚÆ”Üه鯵‰ø í’¸Êñ­­î÷öбóÜ–°©Çؤ§£ðÆœ²Œ÷Êß‚ÛÚ®ÇÞ±•ö–éÓ•“ÈÞ½Ÿ¯é§¦˜å -̉îžã­ûÝ¿¯µÑ’Òµ¶„Þ¾ñÚ›ÝÑ—½ÖƳ렻Ìû¥»ßã¦å¼ÈÜÒÆµµ÷§­ÁÒ¦½˜˜“ïÍɲÕùè½æ¦¯¶ì²±åïëÉÞ -Öö—Èާߺ¦¯áøÈ甥‘³Ž²´êÈ¢üðŽúùüÇùÄå¼ÛÑùø—­ñþÞûìŸùÊîô÷÷ºöÊÞÒþÍëÔҹLJ악þ犹êÉÞº -úŹЉϵýÖæå“ö§û® ­ƒû¡¿…Éêڂ”„Ä¡ùœ¨ÚéÏÖõ‹ÇšÏ—¦›ýÏ쭜ШՃ”„Šœýnj쭜Ш±ƒÐ«Ì¯Þ§ -óö„ÆÏŽÝÔ׶ׯ–„á„’Õàü½àïÕå„ö†¡äö›êÀ‹ö–¬¿›û½Ý¹¬†¥ŽŠ×Ú‚“ЇËÐð¶£›£‚÷ëˆÜùɪðþÞ¬÷ -Û÷Úò ®ˆó÷†¡±Ì⬴Ď·• à…¤ûË—´ÿïý‘ËǛӖ¯ÔÚ¶ÔøŽø ñÔņûŸù‡ª´ûœÜî°“Ë÷¼ÙºôéÎýæÃÉ¢ÿæ -ÿïµËýë»’ÏÀ‘ú½ªûőצø…öêÛ‹™ýÀå›Óû³ÙÊÄ̼¿·¿‘½åÜßÛˆîÓâñÍ“¿èݧ¹ÊŸùûíÎò¯¡’ñ—ٚ˔§ÑÄÌÎ -Î݉½¼ªí¦¡¤òâªÔ•׌ÍÝ–øÜÛ¢ÒûÇüý¦øÑ…¢Å‡ö˜»Ã›¤§ÿ눽˜çåÙä‚“öêÕæü•½ê‹îƒÆûèùíÚÍ«± -ÉÖ•¦¡¼¾¬•ÚïÕŸÀŽÈÞ³û‰’޵ª¶í¾˜¢’˜ð뢜ÞÒþï—”¸´‚ª†ûó÷Ý÷ßú–Ò­•Í’ÃàËÂ¥¼ôéÒÖÆ²Îó¯Ú±á¯ -ÎÖžÌßë鹤¦ ¤©©§Ý¶¸ì•Äö®é‚Ȅ𫧽ûÌÍ„–ÔÁÌÛÌ×ハ–óë«¡ê°×ìôóΟ¯ßäվ¨žÔ¤ýÚ„Ó–¨›¼™ -«¿·ãö’ÝÙË¡”Ô÷ÐΫ°¹ÞÉ寪–’ò­ãŽÄ¹¨áꪙÖェ ‰øçª†´ûÉãúÙ¼ùóóØÄäÒäÕ¼Ú°·£¼™Ñ¿·‹ûµµ´ -įÒ÷зÇùÞ—ÈÄÍÙËüŠè¯µ‰µÕ½…©šìåýøÞ¾¶»ï¾ûœ’…’–™ûÕµ´âÂÞ­º²òÿ¯˜¦©’´ñìõ«©§£ÀÇœÞèœÂ† -ÆÞ–Æ¡¬ìصê©ÉÈåñÁÞ—Õƒ½ãËã㌭Ñ㰞ך˜—ɲó³ï‚…‹Øˆ±½¥«ËÄ„½Ú´õåþÞ¢´Ó¶—öŠÒ봳е¶©Ó -÷Ë»¾­ä¦¼‰Ç̽¤¤ý̵Õüñ­ØÛÕ©ööíþÞé”õ²äÖÐõœ¿Š×ý¨žÿ¸í»¿—ËÓïí¨ äÕŠñ×ä¡Öû‰ÒïÉþžý¸‹ìµ¨žÏ -–”‡ÎÞËøï¸ÚÕ¸ÊåËÏ¡öÂþŠóé„Ö¡õ™âõއª®îžÄ„ö™î‚ûƒöتžýÕß„ö©î‚ûƒÂ”Ë„ÀÞÈÝèÔÀÁˆáŠÂþ² -Ç·œËêÐÚ•¥óƒ¸ÐƉááêñÖ—÷¸žæª½ûãþÞ…ªˆìÂ’ûëÍ·à·Œö–‡¯¢Ø»ííô»Àí³·üûÍ̺®³ÖóÿæÂÞĈæ -ß®û×·®äÆ÷ß’û—»üÈ䯶•Ùƒ’ïÌ«‚—óùÉÞÒîü½À¤ƒû뵪¢—ÌçÐúˆÍÍÞëåÒœ‹à¯ÂûÉŠ„Óå¯Êå¨ÁËÞµí -£ÈÕÜâÚÛ¸È×ö’ÔÏ€”÷¶ÿ¯ýåÞóï°‡…ù…—Ýö™û˓Ȭ‡óÿ²©ì³í±ØÝÝÒ°÷ÅãϦ´¢Þø¥òÚš´å›Ö㥕öü -°ùá—éÙ«­›™ÈÞ¢„ü€úêáñ­íÄÈ’ãÍÚŸ¢Ží”ǹÕô ªø†û»›¿—áÏ”ÏÊ˪äàêÝÐǯæþÚåʸæ í§Ž–ƪùª‡¬ -¢µ¨Ûñ«©ï‰ì©Çþ¯±¼„Å…ºŠåîõ¢Ä´ýõÖ᫽§èÕƒ½¯Íß«âÓ¥æÓ’¶üâ…Ϫëì•ÖÉËòÞ¢»«Ô£¼Í‡¤ìã½â -âíŽÁÑ×ɰœú«¡íú†š¤—ÉÕà¯éèÕþÞ°·­²ŽÇ÷úÀÞíÒ÷‡Ò¦ƒ’–½ÐÒß×ýË×ñ÷„½ÚÀ€½Ä³öö¶ÿ¯ËÒÙÔ¯ì¸æ -øàÁë…çþÍê¸ÞË’ÚŸ¶—Š‡Úª¤­ÚûÝÊêÓÉùÄÞ±¡¾å«½¨Ç‰˜ƒ¢­¹Ÿ¯û¥¯òÀ·ƒ¢ªšìíìåþÞ÷ëí˜û·—© ṳ̂œ -¨“õÓ±×”Úã§…¡•èæÙ×û½Ú˜‰Ë‰ªòØÓÅÔ͗ߪԭÀÐÔïùÊÞ¨Ûó÷Šæ‘ôúÙ²ƒÆ•ž­ˆÂ™Ç¼ûÕ­³ºªëÉÇö’¥ß -á¢Õ—ŽÖ’À¦Þ°×‡•÷Ì‚ñ×›àÕÚÒ”¬¿Ù‹ù©Ì•Ò’„¦ ÔÈ‚û±Ù儔Ƅ¦ ÔÙØÜºë¢ƒÁ‹Þª‰ºˆ¡øÌÁˆì…Ü… -ÔÆ„¦ äœ§ûý¿¬ÖϼÙþ§˜«ƒ«ÝæÐ¾ªçÏš¸†§Ù«½Õƒ ´ƒ‚Ùäâú¯¿Õ‰¥ß¹îÊ›¦žÆý›™Í·ûÑÀ÷àîÊÏö¦½ -õÇÌœÄ×ýŒóªü­á¹Ë…ݽ´ÇŽßœûð݅Ūôø«´áê…£’§Íô×£ÕñߨþñïêäøÀ­¶÷ò“½¤åü½ê⬳¶ë°×Ä¢Çö’³þ¥ -•¨åÜŸ°×«Ëí¿Œ¶¨ñè¦Øëÿ·ª³Õ‘¶—ηÝô•¯ì¥îÑÏ”Ëßµ¬Á—žáÝ÷ßý—ܬØÀŠñ§…óùŒŠü•ćϋƒž„¡Ç¹ -½°·±ç£­Á£úö¤ÊØ¥üÑ©ÂíÉíÆÕ‘§Ó…¬µ’Áõ³Á™ö£õÁ‚èŒØæÏãŒó¢Ç¡Ì¦ƒ¬Åæèã«¶Ì¢º‹«Ð²íÈËÖñÑæ„­Š° -Ÿ—èú½‹–­ŒâÓß°ùõ˜òÅ×µ”µÏ¬êˬ“ùʫԶ܉ì•åÈÞã•“ÒëÕóÅÈœíÚÅ“ùüòÚÛºƒ–†÷½†á…­´ì»Õ†É͑Ъ -͵Êíº“…äÍ´‹‡ƒÖÕÙÒ«¥£ÅêÒ—œÕê®ÒØ«­Ñ²·ÿÓ˜Œ›“Óöœå➯ïôÚÕû¹µ«ÚÖ²³×áͱŪèՊýÒç÷áïÞ -ÑÇ»ìùËÞí÷Þ‚½Ìœ½¤¢ýÌ¡þµ´‹Ýõ­Ø›»êÂüÞ¶ÃäüùóÙµãŽÚ‰üµÓ«ÔÜ™ÙË’Ñšð¢ûµ´Ö©öõ“ÛøÔ¾ÑÀ«®½Ýë -‹¯µ‰øí’¸äÊñ­­Õà´«»³×’—©¸§èÕƒ½ê¤Ûº¼ªžæ—ηԻђ¯µ¼ÌÙÙË¦Ž‡»úÕé®éžï°¦’ÚüÃüííŒÕ¶ë  -ÿ›¶½’Ýïø±ó‰œº®–Óº† ºñ¶ôýèð•ÀÞúÌùßÛùåÂÞŽŒÕÐÄ«÷žÙøž¿”©«ÒÕâ«ÙÇ¡ª ÂóØ»¶ºà¶º“ÍßÛù¹¼Ó -ŒÜÜŒÀÞÇÕÛã™â°·«ìƒ…ü”¦é‰Â€ˆÓ‚û¡÷‘¡Ñ‡¡„©ˆÿ½»Ð¨ƒÚ”„ÀÞÈ„ÝèÔÁˆáŠôÂþ²——Õüæ”æïÂÕ¸ -ÑÖÖùùÈÞõ›¬Àù≰ÿÜïÂü½ÁÈÞÏö¦½ÇÌœ³¿×ݸ÷Ҫ˗ùû³‹Ñ³ý«Ûó÷ª’êöñ©°¾Áõ“½¤Ãü½Ðñáʾÿ¯Ô‚º -Àµÿïâ½è¤Á¢üå¯ñÿ¦ÞØýšæÏ‚Óń؆½²üðµÁ‡¯Û·Žˆ¡ÄžŸŸçÓȵòÅíû¢îÛêÍ•ñþÞâüŽÀ±©³¤¶áÏí†øÛºÇª -»ˆùû¥£šªèêêÕ‰§€š³¯Í‘–…÷¼ôò…ØËڣɗÀ» ¡ŽßÖ߀ÏЫˇûÍ™Ãñ«ì‰ñºïµÕŽó˜‹©„´µß‹û†Íµ™ÚèÍÔ -Ðü½öïÃËÿÔÄÂÙƒ«ÛüùíÂ᮫¾úìÕ¦í™êþÓڥͩ¡úòŸÃÒ±‰©˜èõß·†ªç…þÞûÒ“ûÖ×Ôžª¦†¨àîÊËãËù® -ÌÈâ¯¶Ìæö𾙜ûÛ÷ÄÙ–Ó«½Á¨«œùûíË‹à÷¯þÓÖ…½´ß»ùʇÔ÷ÛÂÞƒ»ÃÞËÿ˜ÃüùóÙ˜Öƒûýµ¾–ƬœœÕ•±‡Ô -—ëò·õŽÔ¹çó÷ŠéíÔÒž¢ÚÄÞįÖè­éù¦©§ëƪ°ßÛ¢ûÅùùûÉÒµ¶ãÙ¿ÞºÖÆßÖ꯵Á’ò™ø»Ý‚£”£¶Ðå±ßª£®å -®«‚½¢Äöʦö¼Ç̇ã…Ô’¿ÌÍå’îÏ•öÂμ¯ü¾ÖæÇ¿·ÛçùûÕ³‚êŒÀ¥ÌßëÚ«àííõŽ÷ùó»÷úö´í£ÇžÈÃþ¯éÿ -™æµ©ÕÇ„ûØóщó÷ê×Úò¬ªã¦«£ûòŸ©ö퀇ùÈÞŸú½·Â¤­ÁˆáŠÄÂþöû¡¿…ÔÆ„¦ „¤þ¯ä®´ê é„°…¡‚Ÿ­ - €û«§´ê ñ„°…¡ÿÙ‹´‹¨þˆó÷†ì¡Ã˜â›ÊÔÚ´Ô­ùÌÞ̆¸ê›°ÿ"ûƒ·ìÍÊµã¨—Äæû´Û¨­ò™¿×ýûߌš©þ¿ -ƒ£†¯²¼‰¥¿½µÿß䲡ºíµ®›îв­²·Çÿ´Ýû¬¸Êú­¤ÞıŸä­û£á¦Á”Ä™ÇÅÕ¥¤Æ§Íéÿûü½Úˆä’ß©¢Û²Šý— -‹Òžà¦Í÷ËéÊüŽ­î‹šÆÖ•×çñ¿°¾™ÕíãÝ¡ÊÂàïÞÓºù¶ã‚ý¡î³ŽŠð륶ÀÒÑ£÷Ží«“ûãŠèêε”ñþÞæÄô‰¹°× -ה鲹ûÚöÚÓîº‹ÒØ½Û㱺ºÚØëˆî³ª­ÈÔ¯¦Ôª¤ã¨ÝÜѽ‹ÌçÕó“µÛ‡¾Šãßﺬ쒆ø—ÔÙš†é«ÿÜÞšÔò¤ý -®ËÖ…ºáÚöå¾™¶Ó¢ž‚Ô€ôÁà—åÙË”¥™óŽÐßš¸êÚꟊµ¥˜öàÚÂòÚ¿Ú«Š”¼çïⷙljµïª®•¥ë®¢–ÓíÈ– -£ÃÙ멟®Êîæ¯¹Ÿã옰‘ë“¶Õ¦½Ð™¬›µ¶î‘À¯Ô…±×Û•À…•¬è““ÊÞíÚóùÕÎÞâ¶ã¨±’ÕÊÛΊ—ÞÜ€½’Šã¯ -ð鷺㯴”ÍŸ§îûéºÁè¼çï”á¼—Ùè¾Ô·Øëø£¸¡¶·¿ÙË’”ü®öžñÔ‘ÌÉäïÚ´±ë–çšòª¡¶ÜæÔÓîßË‘ÚÅÚØ§† -Û’™ö„³íõºÛÊñ¼×±ÕèøÚÄÛ¢Ž©å‡ˆØÛÀ¤û¥ëçœÕáæè›©éïö©˜ªÑˈ«»ÏñÖÔ¯ˆ×¹ñÌ¡éºø¦£ã­­Áý뉦 -¦ö‹–Åí²Å•ñÙô×ÔÄÔ½æöø©„¶®”“Ò¦²Úý›Ðî•Ø›¯ûĉ¥àË‹ÊÓ®ŽëÖ׋èô„È¥’æï…Dz«üç«ëòŽä³û™´ß -Ó¹«Ëåà¯æÉåï¡ÄÀÞÂÀä¿û¡ÿ„ÔÉڂ”„¥ÀÞÈÝèÔÁÀˆáŠÂà¯äÕ®Ö£þõ¾±ð§´úò즶•½¶¶ üÃÚ§²ÀÞ „ö -©îÊæ¯Ž¼àòïÉ‚ûƒÏíì­ôê€Ôòø£–ï¾¢¢áàí‚Ö…ïÖ®»ÁÞ’Õþïè娄öîȽùµØÛ‰ºñöΦøÁÞÒ¥å¯æ -›Ãö̡ͥÙôžû¥óÉþ¶ö³Õùì•ú½ŒªûÅצø•½öêו¤¬âÃÛ«ºÇÄ«•»½©æÃÎ¥ïû¬®ëª­¶üÿ÷“½â©¡¦üÍ’Û¾˜£¦ -dz¨®çʬ‘뽤ýäÁÊäßÔ•Ø«¦ÝØôë×£¢•ʉÞÈøÒ²ñ¶¹ìÜÚûŠàî¯ñ‹½½©žÚÀŸØËÈÞ÷¿®—˜©ýê—ÍÎâç£Ü•© -áýÞõÅð¶³×ÛÌÍ€ïίÖöÊ­®…‡¸”ùœÚ‡î‹±ÃìØêã¡ôÊÜ´­ÈÔ¦Ù¤œ©è¦Ö¦·†Øž“œü䄯ÓÚ±‡“ûÏ¥àÚ»Þ–€ -”‹ûÒÊ×Ê¢âû×´¤Â¸•‹ãÌÞ¢´ÉíŽÉ©¡©’…¥á¯áøÁ«Œ“ûµÑ±­µï±×ÞÖ¦òåÍ´‹‡ƒÓåØŸ«¥¥Ô§’³¤ÍßÜÒ±íÞ -šéÓõÊÞÕâ­äªãމìØÕ³§Þ¶ÞÕŽÄÝ¢¨“û”çö±×Ûà Ñµß²†›’ê®É銴Ôÿٛ¥ŸïµÕÊÛˆàô¹áÄýÓ¦ë -ö •½¯ˆ›ó³—•Яµ¯½åÈÄÞâ¶ü›öÑì•ނ۽įööäù¡…©â½áìçᑽͪ‘ôŽŽ¥±÷…†â™ÐøÙš…Ðï’ó°´Ò°·¯ -×鯵‰øõŸžÛ±Õ¨ž½÷¦éÒ½‰°ßæà똃ˠÆÉû‰”©ç­úÖûÏ‘ØË¢„öÊî›ïõ۾Ǭñ‹’ìÀÍ¥»û¥»Þ¢ã–˜Ä¢„Ò -½ªÄý’Õž€åíåœø›™ÿŠ‘ößÕàï®°ÒŽÉÒöû•¹´ýÞÝ÷œâÔ´¬ÓýŠÔ±Í±´Å‡Ø¾üŠ‘¨ÀÞ‰úËÃåñòŸïŸ…º¨òŸ©† -¼û»Ïì…ü«“ú̱ú‡Ã—÷âÂܺ¼Áˆì…Ü¥ŽÈÄÀ‚ï‚ûكЉìÅœ’Á•‘šõ˜Ղ؋¹‹ ºˆ¡ÌÁÈç«ö–üŸƒ”¨ -µ±Ñ÷¸«‹»˜ÜÏáþÞ „ÝöÂî’Øë¾šé´å°·üá£þÞ ÔÕöʶ§•˹†Ó° Ñ’û—»Èò‰ë¾ÿ«îȉ¾ßÞŸ¤Òòä³þÞŽª©Õ÷ -‡Ÿì•ϵíí¢°·ˆ©ì‘µŒµèÙ«†’¢Ò½û¨–£ÈˆÍÊù¶ÿ¯èû¥à¯‡ìíØÉ»ÿ¯©·åÛþýÛ§”‹ß––½Ú’Úö²ê›¹úª -È”ë¥Ô‡ËÕ¾ôÍåÛü½êžÌÝë±”Ñö¨ÛóîØóº«®¿ÙËä¾æàÆŠ´ö̰עÒïÔׯþ¯“½‹ëê¹Ä·â‡¢þ͛ߛªÇ¥ž­ -öø¥´‹‡»«Öê°—¨ýÛõ•«³ñР¡§‚ªãøï¢ûͺ¥Õþ¯Ú¬ ¼®ÏæïÕö×ÿ¥´¥ªõ˜âú¼Ä÷‚øÿÂÍí§û£åŒü×̫ʫ߫ -ÍÃÜÚöÊý‚Ýõ­ß¥£û¡µ‚ûÕù¿¢ÿ¯ö“Ô£úäÚòÀÞâÆ¶ûկѰ·ˆ³™Ø«¦Ô·âÞ–ÆåÎÞéü«˜Á’äóüù½Ä餦µÜ -ù©Î°æàÁ˜”ƒ±´èéß›ˆõÝ‚öº¨ãë¿—Éý×ÔÒÛ³’ÂÛ‚ºå‘§ó÷ª»ó¦ÆÚÛ”¶ù”靿ÄÛÈ›ð¿óùªŒûý¡’”Ëý½¹ -¿Ë“¦äª·Øÿï‡²Âøæ Ÿç±«‚½—‘¢ìõÖÇžô¾ÓŒ€ªªÞûü½¨¾ìòÆÙû»æ¬Á˜°É˘Ղ؋¹‹Àºˆ¡ÌÁˆì -§…Ü…Æ„©¦ „öÂîÂÁ£ŽÂˆÓò·Ÿ½¸®æŒ’—Ðñ»ŠßÂÿ˜‚ÏìíÁ—Œ£ž‰ºˆè¡ÌÁÈÛö¶©îÍò¸›œ«œ÷²Ûïë®è -«£Þª—ÆíþŠÈÕŦüñç» Œá²ß„©‰†ÀýÌ¡í㥩ó¼¸ûǶØïÍäïºõ«àÊã祿…ÒɼÍÔ¸§Üû Ù’›æÚ©ÏïÙ€½âÛñû -øÐÍë•êÚ˜ƒíØ”ü©ª»¯Œá²ŸÏêØ„Íé°×®ÆŸÞ¿ýöÝëú¼‡“ÙûȪåé´ä‰ì•Á뾲㨸–éœÛ–Ú¾£­¾®¾ŠåÛŸˆ -ˆç»ÿ˳͹¨ÁÈéԽͅ»¡æØŽéâ©§ËûäÉ€‡¤¶ß垦¢¼ˆŽ¬õŒ»î¬’õŽ—ãï÷—ÉÞÇÍÑÊû¶´Ú¼Òüº”•Ö«‰½É˪ -ç´ì•à«–´µ¬ÅÌç ½¶ëÒþÕîÂÝ€ŸÎºìÿÌÚ²ñÕÃêá¯åੇøàóÕî㌎êŒÔüí½éÒÚêɺNjŸ±—á—öé©Ä†Í¦Ë™øË -þä¯ãŒ£ÄðÛï¶“¿•Ïæ®’þô²×¬®¥§Õœ Ô„´û¥Ì‹ûÍÐõ†úàóÕî´á²…¦ßÆÒ™·øñö¦²©×‹½ÄíÆÑ¢›û²¦æ ÛÀ -’öÚÔÄÀ¢ÇØ›»ò“ØâÛ„˜û·®ö™ß¸öó¦§Ç·Œ¯ÿæóÿٶ熟ݺ¼ÞýÛÆç¶ïÚ¿ñÜ–çÿ°õ·çóÛߨ¹ã÷×®¯¾¸‹ -¿­˜†½Ìã–¦á×ýÆÑ±ÿÇ…·ö¾±©½ÂÔ§“úÕƒ ÿêåœÈ¤ô©©¥¬–ÿ¶áµéÚ©ˆá®ùžÐ²×›†úû튂½’µ’³ŽêóìÜÍ -ž¬Ã‹™Î½éÌ­¡áÄÛÓÇñÃÛ•ô™éÕÆí¢íáÕŒþïÖ¹­ó•¦ñ™ãˆÒ¶­–ºÇËÛö’”ž»ÁÒ¬ó×ÎÁ•«µ†úš—á¦ý „°… -ž¡ŸÙˤþ…Η¤âê‡û¡â²…°…¡ÿÙÒ‹ù£ÌÒ’„Ò¦ „öÂî‚£ŽÂˆÓ‚û¡÷¡Ñ‡ò¡„©ˆ½¯»Ð¨ƒÂ”Ñ„üæ¯®Žø -«¦òÿ„‘êÀ€ˆÓ‚û¡÷”雵¸ÍòÄ—Ó·èÚÝÔÎâ˜Ê¹ã“²«âìÍýÜÒ¨ï—ÏÜè…ÏÚçµÑóçÜšéԕ욇Éý—ª‹Ìù -á§ÒíÙÂ䝸¤’¥û¬¾Šá¡ÝÅ”£Ó…µ”Ÿì•Ï µíÒâÃÌÒ«õùœ°×Êôéž–‰ØöˆñøÍºÖ‰‡Ô˽ý¢ÌáâϰµÏ†í¿¼ -ê„“×±×ÞýÛèúÊÞž´è“…óóÄöœï걤©žõô•í“Åš¯Õ»§”‰‚Ú¥àõ™æ¹í¡ªÍìô銴’œâˆÔ Ô­Ì£ì£ö–¦¢û -¦ØÞËÍìèÁÖõë‘»¿Ù«Ë”öÌÁËÞšµÖê™Äœé‹‘¥¶¢»Éªš£µÑÛ‡—¤•¥½¤–öڎȾé¿ì®­·åòáâ½Þ—ÕÁ£ö‘³°ÕÀ -ÐÚ¢èÙ±ýëžòºª±«ŒûÕÕ¨›²ùÛûãÙ’ˆŠóÍú°ô…äâ¯ã´ùËé©…½¦¼ºÕöŠù¦²ý•“ÔéµË«Ò‰¥í¡°´²–ñÛÒŸã -‰óÑ󪔻¿‘Ù›©ã¼âÚŒ«µÊÄœâ‹ë¨ÁÞ‹Ìì•ÕÆœˆášå°­·œ™ØËÜæ¿ÃΗ½‰ùàݯçìíÉåÆüÑ—ÞÚûƦâŠÁÞ¦‰¿¬ -ˆé÷ö­­•ûîÍ­ÞÔ¶£Šßþߪ•þÚ›×€ßÎæÃ¦ÂŸ‘¦•“‘›ÏÕãç§ûÏ™¢Ì¿òâçÐêâ™ÞÌôî Éëͬêûˆ®Õ’½ßã -¼æé§¢ˆÒþŽõ«ð·Îí¶ò²ÿ§•®ìì›•ìø™½„³‰¸Ö©­®«¨¤ê‘»ê°·¦¯©§¤Ê°à¹á¤“Ø×›Ÿê®ÔÝñ쇃ó”¥Ì¢õ½ -ÒŒ“ÖÕØ„«ì®’‘­ÒõᾬÚÕö«úÕ¸áÒªª±¯ó™½ï¤€­ÁˆáŠÂàү䮴ꠄˆ°…¡°—ò—¶ïÔ‘ÕÝÝɈìÂà¯ä -®®‘½ôåúßë’æëû•œ®Ùö†¡ŸíÙ«õ¦œŸˆ¯„Š“ÈÞŠÜÐîÑàï×Õ±¸ëíÕ•çìݤ¼¡–†þ»«µôûƒæïܱ—æäÁ -‘¯ú‹·”Öíµì•Úïªß¦é©¶Øä½ã™ß’ÁÄ–”°þÿ¯ý°›Âä¶Ò²ÎŠ‹½¤ÜƒþÁÞìêïÑ÷¶““ÃŽ­”î°³…ªâº”•ûÕÊ”Åî -矤ҪèþÞ‰ìÄÅÓ“•ÂûíªËïÊ¥ô¥®­£®®›¾µôäê£í¡¿×®ϻ´üêÓçʥ߫ðÆÄú–µ¶ÊâýþÞûó°ÔÚ Å×Ûˆêò -Ö„±ªÐØ«ÊÎþ¶¨ÍÖûæ ¤–¶á¼ý±ÿ®Ž´÷˜‰à¾•ñëÒ¨‰ó²Ü¤üÓï÷¶üšÊñþÞÖ˜Ž­Ë’ï®‚©§Ý¸ÜÕÿƒ½ÄÐ¹å‹ -àÈû›·­ÒæÇöÆÞçéÿ—™å½Ü‹øáýµÎǸ˜òÁ˜ÞÕ…Íß«þïñ™ÚšÔƒÔ†ðììÕó¸ûæ­åÃյ؛ʊ§°×ݱÁž²Œ¤¶û¹ -«ÒÍæíåÚ’‰ËÁÞ¬ªè›þÞÄÒšò¬ä§€ØÛ™öªÇßÅÚœéÅ—ðœµÝÙú½½ì°«÷úò²É–ôçìµµçþúǧ©‚æïÎõ﨤©©§ -¢±æ–û‰ƒæõµÿ¢É…Íâ­ºíéí¥Ÿ‰¿÷ÂÚÇ­ÈÒÁ´Ä¥ê—„éïÂÒĦ²â«Õ¼»Óöùºûµ¹–Ƣߓ©¤´•ˆ×áÚ‚ç¯Ô‚ì -ü̵ØÛÞºö‘¯’•ôü½ÕöшªÉóö•šÔâ‘‚Úò®á¯Ú³Â¼Ê¶ÖÐÏ”ƒ½¾õ°—ò͉ìÕåþ×ëí³¯ª‚°—΂û¡˜÷¹ö¨ðÿÊ -¤÷…ö†¡°—Àò—šõ˜Ղ؋¹‹ ºˆ¡ÌÁÈÿÃöâß×ÿäûóâ‰ážÏ®ò«èëíõ‘ÏÿìÅŒ£¾ÉľÞñö¿Å˜æß¹ÛÂü½ÁÈ -ŠÛöæœñ”ª¤Â®ì¥ÉóüŒÊáÒÆ«òþðàŠÒÕòü½ÛÄ­»¨ÉòÏ–½‘ð´ËÚø™Ç‘å‚äÈŒÞâÆ¯˜šËó‹¶·öÄ×®ßîÎß‹¨¹Ê -þÏöЧÊâô泎Šýªµ‹Í¥Û½¦Ïµ¦•‹û­Ý í»Ž¶óåÒﵨìÂÎ×°šÝױØÍÛ׿ìµüäžÕ¤ˆ˜ç‡Ð—Ö•Ó®çý -û•ÈÞ÷éæÔâÌ·ïɹŽÊ×®œ®á´Ëïž¿—èÚ–¶Ûõµ—Óõ‹÷”çìÝÜÑŒ›£ê—´©­“ÀÝÌÍý§Óùëú¨èöÊ™‰¬°µŒËìª -ÞŸÍ’çï•‹âé›Þ¢ûÕœôºÄÊóö’Ž¬æœµôûÕ£…€óÀÝàùþÞËá˱µè÷þ²—¨¦§Ìâ´³ŽÊ½Ñ÷ï÷Öóÿ Ÿ÷å䯱‚ -ȶ•ûµë‘Òö–¦ÚƳ»óÙ÷º—“Óõ‹ÜÔì•ìþ‰™ÄÝíÉÂÈ­«îþ–¤‰‰õÔöö’¡ØñâÛâè­ÚÿàÛÕ‚“¥š„ïȯõ‰æÉó -·÷’öÈ©™Òñµè÷ÌÞ²—ƒðƥ؊îÁÚÒ·ÐÉÐ÷ ÊÜØÛ²ê˜Í®Àçï­Û¤ü¬æ¯“ö«µÐ³Õíœð—˳ŸÅåÇË®šÆš³ÐçŠë–© -ËÿÙ‹ù£ÌÒÊ’„¦ „öŠÂˆÀÓ‚û¡÷¡Èч¡„©ˆ¿½»Ð¨ƒÅ”„ü毻…ÆÍÃÝÒ‡™¿™ÔæîÁÌ…†Ë¢èÍþ‰ -§ì…Üåâ¯ü£÷’ð›ÓÉûĈ‘°·Õƒõ½ÙúÚÀƒ»·Œ÷˜É÷ŒÚ°ã¡­²•Ñ®ª²åâ²²×…àâá÷éýíÒ¢ÄÐÏöŠ‡Ý¨éÕÊØ -ºÓĕ瀻܅Øë¯Á¬àé÷ÑöÆŽöÚ¥ïÌ穵¥Íè÷®æþ€õ¯¯ìí±Øý”«¦èë»ØÚ󷠪ϭæ«ä½öÚñ«íÇꈻ׮ýÞí¯ -âË⃫̟͕æÔÉŠû³½µ¦¢„Ãå¿Ã—Äâè÷þ²ÿ—©ãÿ’Ô–¤ëï­â£…¬´ò⯙¿–®Ä®é΢û혭ÚÌ»äÔ̪¹Ž¹ðœ¢‹ -銶öÒ¢íŠö„í®ÂìÕ¾›µÐØÜж¹©Êñ­ÍŠÙ°íæâëÕæ§»²—¨«ÊǨ¹»ûµ¹â—ោçÞÌÛôžÌìզ룿ÍÙ«´ážµ­ -šÊËÞ—¶ÌðÊŽ¤Ñ½æ¾Ñ²×úÛù¨çš¾Þëê÷êå—¸×Úôýñä«ûû²÷›ªÿ½™åÕ¿é¿¿ŽÃ´Žê˜Ì‹ÔüùíÚÄ××Ř -žÃ¾ã½‰áòꮦÏ×Ç…±°÷ÝôÀ÷ï±ã“¨ë¸ÉÚ¶ìˆÙ¤þ ‚¬Ö¤öŠë‰ï‰Ó¡µÊá•ÞÕîÕˆŽºü·„éÂòΕÔè˜ÐƒÑ¢ÈÚ£¥ -œæÊբݱÕóƒ½Ð¹Ò°—ýèÜ϶äð€ìÅ‚û¡÷ò¥÷û£€·ûü‚ûƒÏì…€ü“¦é‰ÂˆÀÓ‚û¡÷¡ˆÑ‡¡„©ˆù‹ÇÞ×ï“û -¥£§ÇîêÛëœã‹Â¿·¥‹ºˆ¡ÌÁ¨î˜öêÀ‹ö–”¬´ê „°…–¡ßØ«ÞÍÄÖÅÁÛ„¬ŠÞÍ­÷‚½¥«Ð¬Ÿá¬›¦ ¹ä›û‰îÎù -•Íýƒ”¼àïûéÒ¶êžžžÀÖ ¢Ÿÿü¼Üïì×ÕÞ­½¶Áî«°·ãÓȾàžÎÌÉ꣦¦­º™ÒîòíÜ­ê—é–û©ûŒºÈÊÔ– -‚Èæ°éûÚ‡¹¯åþ¾ÔÌ–ž²—˜žÇëüÆè‚º¹°×±®ª†¼“ÔÆªñÇÈš­¸†îÈ­‡¬’š•‘…ž®ìÕ«Û„˜²†©ÌöÁ¦ºŸª¦Ù -ˆ«þ¶ÑׄŸ¯Ž½š¡‰Ã˜—Ú¨Óöª½ìêÚÅ€ç’úÔì…ûýøñþâ–ÙÓøç¶Ûǡѓö˜™îÞÕ–²„轃èÏ©˜ò¯“Ø‚ìÍŒˆ -¦íдÖÒììùçÃûÉà£ìÄ¡û×´¤¶´®ÖŽ™½–Æêɼ±¨ùªÂÆØÌ‡ÄéšµèõøÁ’úü‰…ÒÈÅÌ­„Ü;ÌÅ´Ë‹­Ç˜²‡É’Éê - êù몣ÅÖÐݺԉڲ˜šÑ®Š½Ó»œÇŒ“ÖÕ‹Ó¹Ö±‡õ‹×óôÕɔƂ½Òö™šµïÍÙÿ•ØÖ¤ÌŒìÌÕóÔ°Ö²Äóù†É䦨  -¿ˆµ‰™ÖÒ¶¦ÕíÖ­¥«‘ìåïÙû‚‰¸°¹ûÙûµ¶£—¯éáÑëÕêÍø™²®ÊÔõ¨Éû¿³ñ«ÐÂÛÊ«‚ûÄó׾ᲵŸ¹ÎšØËå§ -ðûßè –—ò¥¤Ñˆ•½¦²¦‰þïŽÒߕđÚõ³éÇùÜë˽¦ÿ½ÕœŠ©ãý˜’Ù›ØÄ쬽áÓ¶’χçá­œŽ±ÊÞé²×òÛø¯¡ -­ß›µŸÈÒ‰¤à¸£ˆ¡š˜«½ÚÙ›µä•÷ûÌÌíÔ¬¤ìª¯¶Õ¾‹‘ü­ÉꛕÓÍÆ°™ð¨…‚ÙèâçÊÑ’ÕÂÔÀþ¾Ì¤‚ï²·ì•¥é -å÷ª§Ô‚Œ¿¿•ÙÞœ½Š›º£ÞìÚÑÀŠ±Ì™•â”Õýä¯å¼—ê¡¢ÂüصÄÖ©™Ñ¡†©£ÂËŒ²ï쥓§…‡ú‡Ã·Ž©Ô¦ÌÒ’„ -妠ä¡û™ªùú…´Ð¨ƒšÂ”„¼å¯ßä¡Ð¨ƒÂ–”„ÀÞÈÝèÁÔÁˆáŠÂþ•³—ƒþˆ¿Õ˜„¦ ä˜³û±ã¨ï£ŽÂˆÓª -ó½ûõÄÞ´¶³ŽºôÕ»›´¡ÔÊ¥ÑË–áÒÆ¢²½Ž£ãúÜÛ핱®ÌÚÞÖîëÛ¹ŸÂÛŽö™È»ùËÞÈøä®¥¯™ÇÁތҦŠèýŸ -íªé­Ä£¯…¥§å‘¥Óܥ̨ã˜Êä滋óÁøÛÁžùô§¿Ù«‚·ã¼™Ç¥°ª’–­©¥ÕÃÕ§’™³ÈéÔ½–Ó««ëƒÇµ¡éÕ­ì­Óü -§­äñ÷Ծᒲµ”ËŽå­šËìÈÒù ”Â뾆åÿÙ¨ë˜ÞÐÊËÕûé” í烔òÐËÃÄŴ«¤üÿ™Á•²Í­Ôª™ÞÔ¦ÊÇßÑÙ -×Ôªµ©¹ö‡µ´­Ïªæ¯òÙ¨ûÎÞŒ¶³Žšò²³×ŸÍáìµ”Ýúų×Ê쌽ÕÚô­ÔÄø¯ÈÊã©“˜¢˜îØÆ´õÔ½ ‚å¹ûÉγ -½¹¨ß˜Ä©“ìÍËÅ׌÷Ú›ËßïØ´–©€ØÛáÍëí‚þ³ÌЏªþçæç¯¾§­ô¿šÓ€¥åœÈ¤îßÓˆê¢Ëùʶ³ÊŒªâ¼×ž -ã¸Äœí½‰Õ‰š÷ÉŸŽËÁͰײû½æÒœ¹ ¾•Γû‡Ä…„“ïͽˊÐÕнæ–Èï½µ¬êÌÅæÕªÑª³ª šûÌ’Û—¥Ç³Û¾Ì…ìçƒ -ͩʔ½å¯á¸Ñ¬…¾ëÒß÷ŧ½Ë߸À鿈¡ÌÁÈâçö²é»´ž²ˆì¥èÔþ‰ØáŠÂþ³—ò†Ç˜¤¥ˆ¡Ì¼Áˆì…Ü…Æê„¦ ÄØ -û›Ö„쭥Ы¨ƒÂ”„¸þû¿»ð¾¿ýëöÝ”ƒ¦Ó¥¥´ŒØÛç¡Ñć¡„©ˆ±öšÒ¨Ò¯éœóÛ¼ÕÛŒæÓ§¥¬˜›û×ÅŠ‡ÜÖùëíõ -ˆÓÿ„±Ä¡¼ÌÁˆ±—öéè©Úÿ¹âÌîˆÇÖ­£¥Ë㮯æïõÍÚÆ•°ù¦„©ˆö±öƠݼõ×¾å£ö¯Û·µŠ¡—”ÏÞÔÃó÷Δ̸ -‚ÜδôŒ¬Òì›õÇÓ¬‹™µ–­æ’Óº©¢û˜¬ï“ó¡œÇñöÒô¯žÖ™±»ÉéÒØè›‰Ïˆ¥ÎßÎËÚÏ„¬ç‹Ð»–ê¨µÑ§ŽŠ“öغò• -È„ð׎áÒßʦæÃŽêçïÖ°õô¹óØ‚¯›ç”ÆÞñÔÅéàþÞ±ß삵‰‰µßüõ꬯…ˆÔ›áÛ›¢éþ–çšÄòü²ÑÀ¦ˆ°É‡œŸ«µ -âÒÚéãÚ¾²úǾ•ŠˆÀ“ÉêµÕºÏïË‘ÈÞňԨæ™éšÙÌž©•½Öá…Íœù릮®”ûµ—÷¯“èžàÆ÷¹¿ý¦ˆÑ爓¶¨’ -™­µ¸ÇÔØò¤§Ã¹ò©”ì½Ì’ˆÛ²çù¹’ÙûƒïÒÁêŽÛ©àÍݾû»›¿Ò×ÍÌì§âŽ•©çåÞƒ¶Çžø«îªœÖó¦ü©ÑçŸæ -ÉÙþ€µµô´­º­Ç磟ÊÒ……ÉËãÊžßç娽ƒÌꜹ“àíæ—½ÏÞÒÑü½ê´æªöºÖ“¶üÇø«îªœöó󜴵êκ„ö–¤âÂä -§Ï¯ÌùގăöþüÉ¿·‡Û¯˜Ùöµ¶áÏßËÒðÔ°—öʽâñ÷­©ŒÐ‰œŽÂ‚ùßÌÿ‘Ç̹ÌÚã캀«Úò¹²·¬£™ŸÊ¹†‰¸œ -ÿùêçå¨ñ½›Ä·ÀÛ–åÓ­öÊö¿ÇöÌÊ‘š¸¥éÛëÖϺñ­ëéÌìß§óÖÐÌñÁöÆÂ˜¦ÈÐÛ†Ң„£ûÌɹøÇ¾•²‡É -çûÖÔŠÈåÎÙóò¤Þßûÿô£ÏÙÝæý½©„‡Ô°”âî±ÉåŸÒí§Ú›ÖƒÏ©‘áò§ÂœÃÔæˆÃ¦¹ò©ÔΘø±µéЧçÔÇéâóí¿Ùù¤ -ùÝ¥¿×Ƥíð¬õ×௪ŒÊáê֔ùòµ©Ôæ³Å•¼—ÏË‘¸ŸƒÅÖ«íÙêñÈóßéÒ®Ìç€ùÔ£ÌÒ’„¦ä Ôؼæë¢®ƒÁÞª‰º -ðˆ¡ÌÁ¨°ùòûÁÞˆ‚ ü¡•¯ûᘆá¦ÇçÅÞ˜†á渻ÁÞ˜†áÍòö°Œ—ªï°—†á¸ü³ƒ½°ŒÃ団ì…ᘮßà”¯ŒÃðù†û -ÌᘆË÷Úöæ®üÁü˜®žÜ‰¡Áç¡îŠóݬŨ£û³»þýùÛõåØ×÷©’û¨Ü·§°÷ÚÚ­°—®¹Ã䨳ˆûÜ·ƒ½°Äì÷ˆœ‹ñŸ -µëæ°—†íŽ©‘ã¡îóÝŒö°ݡò¬Äý®›ÁÞ˜ù¶»ÄŽ…¸ÏÔõ³Ø‹Ãö‡›È±÷¹î†ŒûáØî¹–â¾×ÍௌéÛ¢ÇÂÜç -­º™ì…á»ÃÍäØˆûÜ·ƒ‘½°ì÷ˆœ‹ÖñŸëæ°—†¥íŽ‘ã¡îó½ÝŒö°ݡôò¬Äý®›ÁäÞ˜¶»ÄŽ…Ã¸Ïõó’ûלŇÞîÈÞ‚ -ØÁ•Õˆçùˆ™ûÜ·åÅÞ˜™†á¸»ÁÞ˜·†áòö°ªŒ—ï°—†áݸü‡ÎÞë¿øò§ŒÃ°·®Ä°û»ý™“‚¨ È¯°—‚ ¨ü½„Á -å‹ì… ˆªÆßù²·ê—˃á¯à¯„ÁÖÓîìÍ•ö°ÂÔϹ³÷Šï°—‚ ¨§þ¥³÷€Û²°Ðךó‡£ÀôÞˆ‚ê«ÜÙ–«ÑÕ´êÛ‚ -²þÁÞˆ‚¼ÕË™ýÞõʜ؀‹Áнղû‹‹æ­Ø‹ÁÐòê–ûÑï…ž ¨Îµ¶ˆÏ‚ ò•¯û½ò²Ø‹Á·Êב½‘¢°—‚ˆ È«ôû¡ˆ -‹‚Ê—Ø‹ÁÎÔ¾ªÍÞ˜†¼áïíÈÞ½¦Í¯Ž‹½°ŒÃø¡ºæïԵ ¼æà¯ŒÃðáá†ûᘆËʷ؋ðܾ¹ÁÞ˜†áòĺû»þ‘“† -öáØâг·Û¢÷ðÁ„é…áö„å×’øµÛî¹»ÏÅÁ´¤û¡ˆ‚òƒª‹éÉ¢‚ö„å¡öÊԇ׻¸Òˆö†±™Ýî±õ­”©å« -ÈË¡ˆ‚ÄÑ¢Çþö‰±——×óïíºõ³³×…þ–‚ È’¥¹êïžÛèâú‘²×¥­Ø‹ÁèÐöÑ¢¾ôè–ˆóô¹óøÚÕÍÉËÞ÷ùÌ®¤öª¿—¯Ž -ðÊ”±Ì‘‘½™Ú±‡¾Ÿêɦˆ‚ê¬ÊÔßíÿ▙¹½ÕóœÙ›úªŽÉÄöÊ‹Š™úÍ•½ªòìÉÒ¿×´ê«„²¹Ï¨Â”Áš¨ÑŸÜ¹È -¹Ìá«¥™½âØï‘×èŠà¯’¨µÎˆ‚ê«’ÊÔ‡Öôóó䲋‹¼âïÒÞ¼Í䯉žžéû½Ú„ÝÕÖ”¨‹ŸÙÖ šƒ×ʯ‹½¼ç«®­ó -¹ÌÁ¥¤…«˜’ó€ ¨•¨ÑÅïß¶Þ²…¯šÙ²û¥ŽËÅ˹¸”Á‚Þ‚ëí„™¾Ä‰úË¥½®†®Ž½öš—´çÂÈÞˆ‚ Å┹¬Ùí -×âÜÙ›™åïæ•ƒ½„…®…øž³¥«Ý܆濷«†û¡ˆªÍ…Ìㆱö„å¬ê•³—†áØÛד•½°ŒÃ¡š£ì…ᘮߒ¶û÷š‚ö° -üŒ—ÓִƇ܎ö°ªŒ—æ°—†á͸üƒ½°ŒÃå›ì…ᘮÑßௌÃðù°†ûá˜†Ë·ÝØ‹Ã°‡þâÑч׮»ïéêïï‰Ôôçé -ÒǰüÀ°—†îÃôƒ‹ÿòß—ÿïß–þàþæð¦»Í÷Þþý騵¨ç̽ÿáÈÓ¯Ûÿ𞋃óÔ³¾ûÉçøòÑÇóÛÌŸ‘ì×…áàÌÙŽ -ÿöɇûׯè×úΤ²ÝáºÕÛìÿ­Åè§¿‘‚—úÁ‡×»®ïŸîöŒ¸óéÔ·°òÐ’èÇ©û©ßع‹Ãô™ÁÞ˜ŽçδëȉÖõ·ÝèØôçéÇ -½°” ÿ³Óžè¯…ï·¹Ú¹¶îºù›´÷Ëæ“¦ÏØ™öÞ²õׯ¯¿ü«ãӦݵåÊřǜóõ•×þ·õèúÞóù¿ïðˆ¦ÿ¹‡×ã•Í÷ -¡žþ„ËÊÞûúŸ»íñ¾øóâ®Àýë­ß½¤Ÿ¡òì·ÿïæ£¾ú‹æßüÎÝ÷Ý÷ñ«ß½ü÷Ý‹ç¿ô¥ÿ¹ê¨Å«¾ÿùÛü±œï𠶃«ˆ -¿»°—‚ë…—Èö†êúÓ±ª·Äų̀ÜÎâ»íó½ô¿ÜϾùäïÿÿ÷û§žúª····¯¯ïùòÇšéþ—¾ ‰ñúé¿ðÔÙ¾™²þ‰©——öó -žÎ¹û°Ã®óîñ×÷³„ׇ۽Ͽÿ‡Àí‡ÄÞôóÈæ¤žÃŽÍŸþ»Ï²û•œî¯ù›üÞ•÷®ýúÿíÀÀÀÐÐÐݪիéÒûîÇ‘ïôÐÿÀ¹ -ûˆ³ËÚ·Þ†ÎÜö­Ìƒ˜à©×ŸïèõêÙÕ뚢ßåë÷ׯ߰¡‘‘Ž‘°×½†îØ¿‚çïŽÏ§¥²ØïÉ»îîâͩʗÁÞŸ´Ô²ÿšüÆ -ôßþù×è¿óÔŒîßù໳üÿ²ûšÅל·´à¤»–ÜÁžÛâØØØ·¥Üö͵·ª»ÈЂûÅýãàèè褡˾ˆõðÈëà‹ûÇéñ¤ßçÚö -£æõÿćë–î—¦ŒÀä«ó™«ÂÝÁ¯£ûÍ·ïßæîúÀ€­ï³ºííÅß³×Å…²÷Úß´«îºë¾Öÿã¥àýñÀ¸ïÞ÷óõ݆ÿÄ¿Ÿ±´º -´¾¾þßýÔŸ÷ÜÜíŽðÃݸ¬¶ÒñÁ­Êìûó–÷¸Í‚ïâ¾™²ñÕ½Ñ÷Ø´«ÄêÕ‰«úåʳÕÕÑê®Ý»Öìô޵äÌâïâáõñÅ -ÁØ«²ÁúÛŽÖÙ»í۳‡¼Õù«毓½Úêéך³ÚÑâеÅÓ¦Üü«ßü½Ì›á½Ëïñ¥½Þ†Þ‹–ÖÝôî…ïÞÑ»âË–­«Ö -¬¾òÈÏè¿Í‚ý£¦²Ò¾®åŸù¾ñð²åöÒðîéÈ´ÄïªÕÍÛ×ËÌèñª¾õÙÑœ·Ó®²î®ƒø¯Ÿêààݸüñ£Øë¸º–§½Úˆ©‡¥ -Ѳָ²÷릳›Ý͸©±ŸÉ¬¦æ¨å¼Ìë¹»´ñÞ¸íÛ¶©Š¥Ûý̱×ßýÙ÷⊷߿ý»û“–œÄÀûùÒç½ýö·÷íÛ¶í -·þû—Úú–Úž‰ŸÎÂޭ椵û¦Ò—ƒÜ·ñß´ÇÜÝú™ÓŽ›Žª…Ͻ‰ûÐÝÓ®ÆÒê²ÿœÔðþÒÑ£šŠ½ÚïÓØ”£½Õá èóò¿ªÅ -‰±×šˆÇ§’¤ê本ðä·ï–Íãî¦ÇûØ¥€‹‘”£ß–±ä¸¸ öùªçò·Øû‰äÏüõËßú—³¾¾¾Š·ÿÜÛòŸÇüû‘´íÇËÁûßý -þ—…ÛöíÛÿ·îïþõîÜÿë´ïÀªÏ¡’íÊåߤž¯ã½¾Éù¦±Ÿ÷ÛÄýˆ½´½»«‚—ôòÿ™Ø«å§ý󨦞“íÔžÇäàØ«æÊ -ꃳœ†âµžðœ¿‚çïø¦äÑ÷Ó£ìÊç×’Š©¹êª¦¸²öמ½´ãÂùÔÑ×­ßþ–¨ëüŒŽŒ®•ïÝÎú¼”îŽëÖ¬§Ë—­¦úȾƒ™Ùë -‰Úçéߘœ¸¬øÝöÍôœÝâöØÔ¸èöŠÜ÷µð£ºñãèÆúÔ·¶äÞÓïÕ²ÙÊÉ˸ÞíÎè앞•×ÒË”ñ‘¸šûÇÆ‡ÝŸáë¦ËÛóÌ -øÕé«·¸´ûôœ²²÷¬½©üýõ·œö‹ÚçÖ­Ú½¶ ¶¶¾¾®Âí÷ÆŒÏýñ‹ßáµÿ„õÿ´­úÏ›ÈÜçÎöšÍË„ÇÝȼû¶©ÖôÊ”« -ÒÚðÒÑê¾ÛäЪöÚÊ‚½ü¢ûÅ–ÌÞÓÑ‘÷Ó£¬™¾•³óÊññß™÷÷º·å•Œ­™Ï̯üá£þÑÇßýÛ·Ý÷ßëÖÿ¬¾ÿþ¥ôß -¾ùÚ«Ô­äóû¼ïá™±—ýÝÍ©ËÁûœÜñ׎ψû½®«§þÇݧõî÷÷ê¯ÅµÉ™ã“㼂å²÷øèêá‹ì±åÊ‹¤‚²êÚÒÉÇ— -î½æ£³žœï÷Üóàµ×ÜÒøÜñó¼òš“ôõîÜÿÔ÷ÿç›Òª¸û–ñßÊ…óŸ¦Ü•¯¬ñÉ¡††Þ¿´”³×µ¶‰›ÚÀͨ¥¥­è—å -âÜîÈ•Ç’êøµê¦Ø’¿ˆ•—•ñ‘¸ûô‡‡Ö‡êÜÙàÛ„œÀ˜ØÅ¢û©øÙ˜Îø¢ûý°ŸìÕüÖÛÚ¾ŽìÖØðô Ž¨Åß‹Ãö÷°Ÿ -ŽÃùÿãÈ®èšóމæ›û•ŸÚûØ †ûÚá¸ú®Éœ’ˆýƒ£«ŸÛ’憎÷½ÛœØôû€Ø‹ÃÁ¸äŽó§Ï½ë³­ùôÕ£Ö„ê¯ÿëÛÇ -©žý½Ø‹ÃÕðòþ³ˆýæ±ÎÍ·ÿãÖÛç¿éò³ðþ˜ñöø©ø¯¼þç›Ôêï†Ýóÿ³ïßó³ÛÇñÀÞ˜ŽÓ•ÿ­ÌÁþ§©ûÎéï·ë¿üÙ -Ýé—‚÷ÇüóÛÔßÊŒÙôû·Ø‹Ã°§Ï¦Ô¢Æ’¬·èΛþ¤˜´ä†¢ÀÞ˜†áòö°Œ—´ê¾Æ»†ñÞ¾˜†á²ÌÆø‰ÙЃÆûᘠ-¡†Ë³ÑžÄ†Øûᘆ˷غ‹Ã°œ»µã™¼ã˜ï…ᘦ®Ò꘯Æûüᘆ»ë¾õ¼ëÕö¾âŒ‡†ß½Î›Íô鼺ŒÃ°œÖþ”¼ïü¥ÈÞ -øýÎÜóò³ž¶þéÉÏþɇØ×§ºš¶®Á§´þÒ¼­ÉÓÙ×¹¸¯ýÉÚÎÐâÞÆÎº¼¬ùá¼¶”Ï ½®áª­”¹úíÈ¥Üþœœœåž½òŽÌÞ -½Ÿº§“óý«å¢÷ü¢ºðûÀ±ûßõç¼™¦äìÛ§’Ùý›»ƒóÚÖù¢¸¯¥þêÜàªñ¼ú‡ÜžûàÜÂéàÄøññ®Ÿú€œ¨¾Ñù¥ÀÖ -—™‹½ºó»â羟§Þ÷¯œŸ¿Â´°ŒÃ¥úÿƒ™ÒšÜ -] -::^ [s0; File selector dialog.] -:: [s0; [^topic`:`/`/CtrlLib`/src`/HeaderCtrl`$en`-us^ HeaderCtrl]] -::= [s0;= -@@image:690&57 -€ƒ”—€€€ƒéÿ€€€€ø‡œí›ËÊ„±Ú†½±§ðãð‘”°‹Á‚¨ˆû—žÀÜÕ¹’„‚Á‹ø¼ŠŒ±»ª’ÊŒ÷žÕó—¿Ã†Ï˜îÉýÓÿ -‹’釽¿“„øÁ„õÐéùص„Á™šøçê‹Àä…ë‘î³àƒí÷—ÚÇ’©È¬‹‡Òí‡÷ É¸‰›×û‡¸ãÞÀ¦‰‡þÿŒ“ï“ÿ‘ -åÿݦ·†ãÌÔéê­É„÷í­¢àáü¼ýžÝÞ¼¼¾Åûíº÷”·Š†ã¥ªÔÈæç‡ÊÍ­¥™üÜÛîÐðÎïɶ‹Ï¸Þ±åºØìêÈÀ»ù -ÏçÙ¤Šâ§ñµ¸Å‚¬í¥œùõˆÖïȽµÔ‹©ì­ÛÑÚ…Þ¹¼Æ›Ž”Ò¶Á¡»÷ôÚ óõ۬“ý¯ù϶®Ò„ë¨ÑÐíÝÃòñÿù‚ -ØÞÒ¶Á¡åóÏŽÄ“¥§µ²êû͇®ñ¼“›ÓíäËøÚ²ù﨤·¡µ¼Ï£—ŠÔî­¹¼úŠç²Ä÷¼ÔÒªÞñ’¸ìœªïÉÇËÂÅψ¦ -õóìÖäý–ÓšòïøÉ´ŒŽÕٳŭºð„é¯é¸µ Ø«¯ï¤û̜뭔ƒŽ©¥×÷¨Žïý¥ì‚ÃâÆï´Ó³Úí£¯žû©¤Ü×û Ã¡ãõª -Ùê²Ìµ©Ü£°¼£Ã¡ã„ý…Û“ª„äçÊàü¿ÛÓ±ã„Á’‚ÙžØïÜßî ˆç’ÄÎÇÇõÜ”èØ™ æ²¬Ê¤Ÿß¹†àÖ«¤û£ðÝ” -ðÆ‘¢þ¿óžƒÖ̽ -] -::^ [s0; ] -:: [s0; HelpWindow] -::= [s0;= -@@image:983&590 -Šƒ–ô€€€‚Œÿ€€€€ø‡œí‹ø”ÕÓš÷«°€º½®‘ÇÕ‘Ëœ…‘ÁáæŒ—ˆ„‹ÀÛÒ„Âňá–ä±¢Á儼¬øÓÛÕñ朸î -Ûî¸þÏì§âÍ̸Ÿ³³Î¼›Íº³»Ïš„£™ÑÁ§½„¤¥‹„€¡Ý–ÒßÛýöξÎêÖÕÝÕÝ¿ÝÉÿÿüŸþ¥ªÏºõªªÓõËûÎºÝ -”Ðÿ¨Á²²ýÆßÆŒƒäåÊàßÔÏ»”ö¬´Šåî‘åÞꦥ¿–¿³–ŸÎÕòë•û땟ÅõêÂ⶯˜¸†§Æð³¼°ŽöÞÚ¿»ÝŽÿ̳ÙÞ -¡õóúíèÁ›¾Ú ¯¡”éÕ»ÊäêÕ´ þÅ­ÕÓ§ŸÕÆœŸ”°Úûÿ˨äö±¸ú®î÷îµùü‰ßþÌõµÏ†ñ¯û¾¸â¹à¹ˆŸ„Ǽ¨º -Ÿû‡ªÇ¿ìê‘΀»î‹óŽÍÇãׯìçµñþ¼³Àħ™²Õàô´ˆÌŽÜê¹þœÁ̲™ñÇÁˆÝ÷Ý–Ô“¾º­¢¿Õëë«å”ì›ð´êâØ -ü¯´›€Æ–˜“ᘆÙÄŒ—¶ü•ÁÄñ‘µƒÅ˜’富ðŸá¦’¹×ÆÉóäåÁéåì°ÁÁ°åÂÿªÍ³ª•¹ß嬀ºÆÖ֟瓛ͺ—ùºï¼ -øËÌÓ¶œï¾Ô¹Èæåú”‰§¼À‰½·µÒˆǹḭœ“±¾•öÜüâ䙑̇öÆÚÛ³ÝÖéÞØÜýÕ©Œå¾¤åé“òïèóÑ“ý§¬ë -˜ŒûñƒúÉ©ŒùÇÃÍÏÊ¡ÓϫҦþÉÉØ®ï§ØôýÊgÛß«¬µ¨çš‘ÇØªÍ̬®¥ª‰é¯º…ðÜÁ…÷µ¨Þþ¬ã¹ùÑêñ‘ÕÞ -¹ô…µªó¼áö“šØó¨žÌÕÁÎȭצߕ«½ñ¢óžµðõ˧ʕøšùûõ­„‘ìî×áËÀ“œ‹ûÍÓ»ŽÅâêãêž™á›ðÂÜÃé -Œä‚”ÆŒ«‹ Ú˜ÕƪáìÆ–ñмþ ñ’Ý–¶á‹À–ÅþÖÏË“‰þ×ýþè°ìáµÔ”ÊÀŒ¥ó¥º³×ðá˜Î÷¸×¶Ûð£ãÞãß -⇣”íÅÛÆºÛÈŽõ˜Ÿ³Š¬æÕö˜ÓÚÑðâ­·¡úÊžºÜãìˆÌÝ£þ¨¢ëÈ¢ï”ÁûՂ݉û³£‚Õ›’€ÌÐË‚×íèàüÅí‡ö‰˜ -ôöТÀ†šµÇƒÚ…¯ËÕ—ûÏïù¥ÚåÙó¼§üï¹ú§¾ì»éóÁßζ߸†­ªÇîÒ½êøý³ùøÚæÁ†«›û¯¹±úîõÅÁ¿¶Ñ¶ -™Î”²«’¢®÷Â×Ù£åÇž½ÝÒÿȲÚÍùµëó½…Ó‡«—ßÙýßλõÒñäªÅã·É•óÇ©ž»ñ¼¢÷ðù¤þ¦‡æŽ¾ñè ÄÁÌÅ—“¬ë -êݕݗüÚß’ê×ì²î“ᴄәŰÒÂËàËŽ”…ðþÝÿƒ„á¨ì”¶Þ’àŠážîüµå…ßœù·Á¯Î¼ùï­–¼ÚÒôò˃á÷ƒ…¯„Ö -éüãàéóü°çƒ‹÷ûç¿ÿéŸõ˜ÿ®í«¾ñøÆ®ë¹ºæñÕðÅÿ øÉ™ÂÂíœÆª¤áù‡Ïÿ¼þÂÉŸý ëñ•§½ÿÀßÑ§ŠŽîª¬ -ÉßÑпýÅÝ´ÃËëžÊ¯ûœàáíæùµÅ‡³¼…÷Õ¯›ºß‘·òÀäëõþãúðïѳ¹á˜ìèÿ艋¦¶·å€¬¿ŸÌ®ãÁÏ´ŽÞó̬åèú¬ -½ÒÙíúÞÙ©í¶Þ’ðհ¯„ÞþçÌ«¿¹ûôž³‹ÿ´åó«­›¤þÈüéÙõÏĪÿ–¿ŸØòÔÌàáÓþ¹Ùûç¼êŸØì÷»¥¨éðÒª -ØïÍþ—¶õ¦Ô¢Øô•àõ´»ÖüãåÓ¸ûßéüç§›üÞüøØ³›Æ¾¹¡þ×áݳ£«ˆâõ¬‘¯«ÞÒ·õáÛÍÆ¹Þµ³ª“ï›øäá­‡ -•§Þ³êÛꠡݲ‘ì»ãÿÓΰâÚøƒá÷ôÁùÛ˜½‘»´œÓÇà®ßæ°ŒÝëÌ÷þ‚ÿðô“öžÿëÌŽ¹×Û¶•´¬ý¥©å忆ò‰ -º¸ÿ˜÷˜ÿ½öÎÿôí¾é“ÛÕ¦¡ÅÎã”¶·Þß´ä†ùÕ•ÓËÕîÀ¸ÒÈî•“¬òîë‚â׉×íž¿þÃÇžýÙôôñµõßÔÛÙ·­¿öË -ÏÂÚóê¶Ì‰ö–Î÷–ÎÓÛ•ËÆ×­ž˜Ó±ÿôÁ™ÃëöÞü¥ÚÈͨ‡Õ³Á†íµ¥ØÇüÉ­Èíºˆ†Ã©ï׺÷ç¼æÿè¼ßÛ¶¿¦’ç -ûõ‹­Ë¨Å÷¤äàî®ÿî£þÉž‰ÛüÈã¶¶ßÚÄÌìéž¹¾ùĺƒæáëÎÝÑåÝ÷Æû²ÁäŒÂ¢ö½ë‹éŒ£Øíƹ¯®¾ÔðÒöÂ× -» ì¿Õ”Í‹¬ë·Ìõ–æÖ˯œÜ½ôÂÕᢱՋï¥ô³Ó¥ïÕæ¸Œ¼÷øŸæŽýÐëÌßã‚ýû€½µª›ûÐý¥ŽÉ±¢Õµ£ÏÁôÔ² ˜× -Ûœ÷â®ã´“üÆŸü®ß¾Þ˜¶òìÎïºè“óŸõ—½Ü òÿ¨ðÚñÜË¢Ššö†ˆŒßÓŠý÷ì¦ÂüùÆïèž¾½®ùØšæ¡ëÎüÃÖøîÜÓ -‚´ô¾ï˜¾Æ¹…Ĥ˜¶¶¯‚լͽöԻѱçî§èËääŽáëÊõÒØ»ˆß•óÇ‹ëôʹÎϹ¥ñϹƄãÖÔ¤‘ŒÒĠ€Œ®¨å -ÃûÑ Œëÿ—̰ܳ‹®üœùʹþúÜñ¦Ÿ³´Üó†ÿóûÿ¯”†»°éÿ®œü¯ðûȪùÖýÓËþ£ÓûžÌúµÔ¿í¡ÿć†üÙ›ü·—µ -Üÿ÷¾ëÁ«ýוø†Î”ú†®éš²¿¢ºÏŒ÷å˜ðÌ®¤¢Á´…Í´‘Ì»êòýý®ÂµñøèªÛºâü‘¿úù‹Äê¥ÙÕ‹îžîÇ×Ìëªç -Ö©˜½ôϹÞÃÞº­ÚÈí‡ÔÞÝÿ €ÃŒ¦ˆ¶»ôû¼æ„Ó¯¢”‰î˃­ÃÜ“„£Ð‹–¦¶­ø÷‹ûìöÇýòÁð—·ÃêçÙó•Ï« -£íÇÅÏ…æ½Î–˜¹Ý¿å›ÚÿÂÖߘ;½ÑÅÍÃÖù†»¯ñݻڗÕà›¸Ú÷ýá‡Óõ÷Õ߽ݠ˰шýµ¨³„Öê‹™ÞΟ°º‡—Õíß -¡þîÝÔÛ´´Ï «êñ˜öÂüåÞÛ¹½«ø²÷àŬëÿž¼ãúŸßöõÁ˜à·²¦Ø…¬Êµ¥È ²Ö¡˜ÙóÉÁššÔ×–Úˆ¶ª­ïõúüó· -æ•„²î¹Ÿªõï´åýñï§ü¼––¸å÷󟩘Ÿ°®–é“–¿©¿ô»ñ׉ú¤åÇòÚ¯ù•ŒÃšñšî¨Û··ü¯üÊ¿ä™Àÿ’§ÕŽ÷¹» -Éü³ŸõÏùØÔ·á›ïÌÖßÏè;¡›ý×û­÷ݳÖÿ¶µþ¬ÂßÀµÈ̓×ÔܵýåƒÁŒŠ¡¯†–…ÐÚí¡”›ƒåÖ©˜ÚòÞûÝÖ…êƒÇ -Ƈ—ÔîÞØ³Êñ®÷ÝÌÍüüÖ½ûºê»¯ÿ©šñªÜ¬è£÷üüÚÀ¢ßÜòÕ»Á¸ÔŒ›ò›•à„IJʜ܊À‚Â¯ÏÆÏ°ê±Þû㉵þ -üã¦ý¤çÐÿ›Ãïãþ¸ÔÍü©ü¬ŒáöÊ Þ¥Îüâ„ü­¿÷ýÿʸÇÛóÔ¯Õè¯ïÛòÎñ“ê™ûùûÑÿ¼ï€æ÷í¶ÒÚåö±¬Ü©ã·ï‚ -˜¸ýÍ÷ԭśͳ÷ùïùҹŗýÎÙ¥Ž®ÉòˆÿÂßþ±Å¾ÑÛý¤Ã·û‡íôçöíð÷Ûçï¿™Ö¿àíé«îꮸ«ƒÁä¦Âè«Å¡´Ö - ÛÈè°•ଋï©Ý°»î¡ó½õÛ–Öî׺§¦èŽº®ªõõ”¯ï½‚ýó‡ùçå¤ùóûùóû×ΜðÅ݃þâñÓ•ê¡ÙåËʘ¯Ãá˜Å -Žà½ŸíÀ°þÇõÛ„ÔæØëϾ씲Èýµ”ÜÙШêÀ©óœ¾ž±í˜Ï¢÷üôùîèÝöŸ÷±¯íâ±â­Ê¯÷¶’жž·½ÓÞ®÷ŽÒ¯šôÌ -ôùõ˜þÊÜšðÞƒÿÌùÝŸœ†ÓÜôÏÕÜ×¼ýû¾Îùûç¿‘ÈÈû¼°ç±ÿîþÎÿÔïùïÜ·î¿ýáÿèí‰þáú‡í‰úŒØ”è³Ñß -¾çƒ¿ÏÚæ¾ùËë®›ú¡Êڣ‚¡Ç“Ææ…ÐÚí¡¡üÙÕæá¼‘µÞµÓëïŸ×Ù»éþÝýùµþ›çÔ¬ÏÕĪàµùƒê猯¨™Ù§¦·Ï -ãÕŒ¾ßÌîóýËÑ—©…Œ­êÔÆÖ¨„»æ°‹µ†£‚õ¿•¨âˆ–—«ÏÁ–ûÕ¹±îòÕÍûÿäñ÷Ψš¢…çÿôº‰Ã­¨Ó…ý瞦ôù¯ª› -Ô¬Üóëúüï­ã£„¸ë›ð¼•êìöÆÇ„Íƒî¿æ£„Œ§Î‹Î÷úÁÓõÃÁóÎæ¶ßÌþÂÎÏÜÇý³‰¾»è‚Ó÷ø§îð¬ç¿ê¿é»ÿ -·ØÃÁÅ€Ûƒ×ïŠÜÙ’”¸òíó•ËÊëÿîÊÇ¡‚À™”Âß­Š¡ËµÚÂòΩ³ÞÏÒ‘»ï¨•¾¯§æÝÌâÎ×íÆ¹µÅ³—ÛÁµª›—Ú -îý§ê樛øõõíî•ÕÓ¯®üË×üê¯Äß©…̨ӵÂìÆò•àßú¾Ê°ûúª’쨊¯…¥Íª£ç•­øÒ§úÙîçª“Çøï„¢ž -㾬­ÓÁôÏó²ÿ¢ô‘ƒ¯Éæé€¼Þ€ºïµèå›½îµø©¥ô›ïݯûÚõ÷üä°‹­ó¶˜ÿÇÙÀðŒ¦»éà·ŠÓÙÛš§¾¿â›¹Ó¯¨ -ÆÈö‡†½ÔòâÀÕÛ‚¨×ìŒôÞÓüÏé’º‹òÂáá“É¡³÷ù§»ïôÏÙá¿ó·‡ÿöþ›÷ˆ„Ä¡´ÖÛˆ„‘¬ï”­ÔÌœŸØ•Ÿíݽ -ݵæýÌš³ãÚñÕøçíªëÛëÖ´¿‹¬ÙŸõÕÝŒ«ªó§ô¾´þÒ·¡‡Ý”¦˜™¢Ð±Á°ŠÆÔ‚èÕã¼¾ÔŸ›Å虣ñ€¦Ö¨Î×ÆÎØ -Á©ÚÌÙöæ‹Òµ­„ ê°šæÌ¾òà›ß¬óì¶êßÏžŽ¿ÝúÔ»ßÓ¼†¶¯â­ºÏ£ùì÷ÿ¾Çë߃¡Ææ…ýž°‘¹á˜ŽÍôò·õÛòúæ¢ -ù滟ôÝõˆ‹Ï˜àß‹Œü³¸¥ßñËßïöéÉܸ¸ ƒù›‹ëûΈ‰…Ϧ…Ìû´Ú°õÑÿ¤þ¤‰»ýã÷øïÆ¢‚µ•Âëµ™…Р—×Ì‹ -‡§õ«Üðó»õŠ»½«ï’ªû¯©œÔ»úŽÂíʱõ«îʺš¿¬âÓð²ëò®þËØâï¾ýÃϵ ©§ÔØ±ÄÆ×þ¾àÓëÕ€¦äˆß”Í‘ -·‘ì¼ÕÔ½¨ÁØíí«¹ãížÙ²²ê¼à‘ȃ­ç·šùî¹ýÿÿ¡å‡þãìážþŠº®ôŸÓÒã컜ô§óƒú°¯þ¸Û™ï•÷òÙþ®ä“Ãç‡Ü -·üÒ…ýŸáì²°œ «ËÎõòúÓõåÂÓ¸·–¶ÙÔüšç±±Á†ìöᖾŭ÷ßÚÒòÉú–ê‹ïë¶«ÛøÐøä»’ÙÚ–ŸÑ– -ýª·ûßî¸ò«È웫–¡Ûˆùþ¯ö ÕˬšØ³êÂÍ·ÊìÚ•·Ö­ô›Ù¿øÈÑ…ù×Òú෯նϽÄûÇ…ÿ·¹¹Ç¯¯ë–¤¦˜™ˆöëÑ -ÈõÜ븕٩þŽÈ‚Æ¦Ø¼èŽØ³Ý×ýÒíýæ÷ÏÍ꣜҄±²Ï«ÅË´ã–¢¯“»»Ï«§¯½Æ…¾É˽ò¾¦Ö¢Ñ׋²Þêã¾ô¸ç˜ý” -óʽéù¯÷¼¹õÎùÆÌ¿”󡽆ÿÄ仃ᄙþóöòúÓ­öùüÓìƒ×¨¯‹Ý¶É©¹û«¯û«Úÿ샾۞ôµÝÒ웹ͿàôÛààñ ÿ -ǃ«¶‡²‹òھ٘豬ÿ¹ÛÜšŒìЀãÄÇŠ¡Œ®¸Öƒ¹Ïí—ÓÎÃòȼ‘Õ‹Þî«ÎϮޚÚݿ֛ÿ›Ž·ÿ–š¥£ëÌ—­»çàý -ß¼þÔ„¤€¬Þ®ç›ÕÙ½¾Ö˜Õí—ƒ²Ô”ÂæœŽ‡áÄá°‘ÿÔ‰öíÃý‚ࢀんõÜøÖÔß‚§ž¤¿Ì°±ùßøÑ»íÿñÞ°«Ëë¾Ö› -×óÊÝÿㆡáÎéµ¢šõ·¼Ï¢“ƒï»ÿùÝ“£Ö¾š½þÔˆõ͸£¶´Ý¸±éÓÈý̓ï¿ÝÎÿãé«¶´÷ÒÞÛÌÍ¿Þ˼Î÷»÷¤’Û -Û©ŒÑ§•ð¤ô‘Ⱥå’Ý¿Îìã™±ø„ïó¾û¸ïԕŽ£«òÆÔñÌŸñäþ•ìùê玬žëÕß»ãªïÔçÞÞ‰—×ëøÕñë·Ï¾« -£ì¹Æ‰“Œ¡ÄÆ„ãÖäÇ‚ê±ÄÔ‚•ží˹þœÿ²È¯­Í¡‡À¥Û‚ìâ¶­¶±ßþ¥œÚ‹—ÜóÒ’Œ›÷©»þ—óÀéëïãùÁëù‡ûßýøê -ۼÃ¸§øÈ ¥•×®ð¾òÍþå€üÍÊþù•ׯõþÞ‘ïí½¤æ¥’ÅÞ‹—Ôü˜ãÞÍÆÌÊå¿ÒŸúÏü­ þØœ…¨Ü²¾óÞãç÷ݵ -ï¸ìÖÞåã®óÞŸ³àÿ”ëû§ŒÚ¿ùÚìƒÓ®ùìò€çƒ“úý¾éêŸÏï¼â‹»úªÿžýÉ—·Ý›øùÍßøìøñÆÿŽÑÞ¼½¿ÚÈìæŽ„ -‡ëý¬Ì°åÑÀû¿˜Çâ½×“žÑòìóù†í—™¾¢½·ÜÑÆÄ둆“ç÷Õÿâ¿ðÕ©«Áó¿¾øüÿöäæ¼ÿÙ¤Òå˧½ûÙÎ»í½§½×ûòû -—ÎúàâÉŸ¬Ý´é÷—äüµÜóÂÇÝÇÿ¥”±þãå쇽ýç¾»ÿÐñÅÚ¶þŠþâÚã‚•”øš¿Þ¸ðëœÁ¿»¯áâ½Ã³ßœ‚ñÙ›£¯ÿã -‘øåûÇöþëþäôíýá—ÿêÆ‹ÞÌ™öÁÛÃú¾Ö½¸û»×åüùüÚåïíý©þùÿÁ˧ÌðˆÖ¡ˆÆŸÝË—Ò­†ã͞ᎱןãÓ -à›Óï¾ÌŽßÆàÇíúߊœ‹¾îÑ𵱤Æâ߻Ɣ¯ÑúÖ´í¼…”œ«î±¼ ¾Ðܲü¦Çþ àÇÛ§£®¤áœáç«ÇÝÍúÁ”´„ËÍ×™ -ýžêõ˜ø¥¶ÉöŸË’ÿÏ­Ñð¬¿ÿ”ÍÇãØöð‡Î„Ýöÿ¤ÕÉíú•óíŒÞü†»î«•…­êð²…û§•ûüÊ‚€¤êÚÈëÖ£©Ûþä…áÙ§• -„™§ÔÏÞ«º¥¾´Ö̅ؽ…º×ôÄý™„¹‡ºÍÒ­þ£óˆÿŽÉýű¤Ù•ªèÔ™ÕûÞû¤ý™ðúù“†ÓÉÉ“«àçͼ™°îòî§–«Ó -îɳۼî«Ûð×»ÚÌ©ôš¹æËÕ·žŠÅ¿ŽÉïö“¯ÐŒ‰¶ñ¿Ê°ªÄ„nj͙žÔ‹üÒ†ð¢‘ÌׇöÜ™ðžâœÀ«Æï•¿ñ³È«ö÷š -ÃýՕ뛯ȓóðÏøÃ°Œÿ§²•©§”±ˆß©ƒÞÐú¿–‡‚Á°œÞ†¡Áà˜ÎßƒàŒ°Œ§¯Á°˜×†Ó×ÝŠàŠ×²ÓõºÀ°ì± §˜¿ñí -ѶöçÈ£²“ß¡¦òõ÷ºÂð×´†äà—ÆÁ°¾‘¦¿úè£ë‚…ƒƒÁ¤ð̃«£¯ø ÆÇåãö¦ƒˆ†Ã®ðØ¥Øö¹Ò÷û§ñŒÙÅ÷ -’²¡©¢Áè¡Á¡œ£Æý”’„†Öñ‡àŒ«²ÙÀ—Œ»è¸”‰¦³Ë¡Û¹ƒ¨Ø¤˜»Áœ´Ë„Á€Á𸊺æ‚éÙ•îƒÁØÎòŒñÛ¥Øü­È‹ -à€ŒÝá°ì–”ã ˜™»â¦Ê˜Û©Ž™’¬Ö¡¾žü뀌‡»þ¬»€á˜Ö΄£¢˜µ»¡â¤˜»ÎމÈüµ˜µ¥ãÆ“—…äüà°õœäÇœƒ…á -Õà¨Á„»˜’•±œŽ¥Á⪄°ü¤æÂŒ†‘îÚð‹Æ°ü™Õ¿˜žã±‘¬þöµÈ³ø’§Ä¬ƒ°¹’ƒÁืùŽ™àáÍõöœ‹–àŽ°« -é­²»Í£¥Øú‰¦¯í‰Çž´àë°ׯ¦¨Œ÷µÇɰ𬡒Çì“ÌÁäöµ˜„àñ‡‚ᆄÓûÃÀ–„瘌»€âLj–®ª¤ˆ»„ó–Ýíû -ß鈩ø‰æÙ³•‰‚Áðòí ÁÂ…ÚÆâ£‰à×ÃÇöû£æå¢øÛ’¥†á˜Ô¦ð…×îÙñ‚Å´ó³ìŠŸ…É€´Õý‹²Öò£×ÈõëˆÃÝÓ -¦š‚õšñ¨“‹Ï®ƒÃð§óŘàýÀ°˜†ãÓÏ ˜ŒÃé¸ëŒ†áôµ”ˆ†Ãðúš„Áƒá¸ýíÆ°Ó¢§ÿŽÃ°œ»â¶ ˜ÙŒØˆ„Á© Œ -ã‚ ÔÐŒíÇÀ ˆ†ÁÐꈿ¡ôêÞ÷Ÿøƒå×–íÆÚËùÀ°ˆ‚ÒÊ…Œ¯òוµÞ§šŒóœè¢“µœ„ƒ ¨¸õÄÄ¢øŠ€‡õÁ†ëÿú -”ðŸå„Á ˆ˜Ê‘‘ˆ¹”¾å½¿ÿ¨µ½ÃžƒêÎŒ‚Ó ”‘“Œ–Þ»û´ÞöôüâÄÍʘõ¦„»ä€„ƒ ¨é’ÐˆÖ§ÌøâËቆ„›×®ô -¨ý„ƒ È­ž‰‚•î«å‹‚ü±Åºˆ†Á’ЪÉì÷åµä®Í²™ô„Ë‚ìή¯ÿ‘á¶É¬˜ñšçæææääø”””ìÙ³ÇÿÁêÚΞ - “¨•¤‘̫ΡËË–ÓÀ°º¤ˆï´¼¼¼÷Ç£ÉÔ܃”áÔ¨Ñò¢…¥¤úî­©©Ñ‘÷Áß­³ˆ¿ô²²²Ý»÷º“Ä„ÍôÛÆÊ¬„Ňɘ´ -âù˜É¸§»˜’„û÷“겋ÁŠ—„ÅŠˆõ–„ÑÝ–••ɥϴ»‡©³¯œ˜„»µâ®™¬³œÅÚŠ…ÉâÞ‹…ò¶¸“„ëÜ’ˆÀÖåí¬‰¢ -½»ÌßȲ¸‡¼¹Ü±“ÓÁš‰ÆÃ°’ˆÉ‘´œÛ¡Á¶˜ÑÆßᨭ¥Æ½ƒýøé߬íఞ̢˜Æƒ¼¹¢Ã»Ìâž ìììÌ»‚éÜÚöÔº´ßˆ -Ïüµ´´”„ƒ¿Ä˜üÿþìËÜë›É÷¨ýÞÀ°„Ëþ½˜Ð–„£ÑûÑäÉÌÌ´ÙÈÙªÙ™…Ð⮰˔֒ïÅ’ ú¨Ê²œŒ‚Ò–é­Ñû‘ Ø -ˆ²”³Á¨Â“óÞ„ù递ÆÔô•»Ú¦°Œ‹ìÖÆÎ€í£¾‘°¬ÄµÓ䶩âäÁ„ª¦½ò–çõ„Ùª—¯¥œ­†»¥ó¯º²éå¡«ñ -¦ª¾¹©À°ą̈¶‚Ѩž‘ý‰™ÂŒïç›ÊÌëù¶­®Æ®Ž­²öꫲ¡€ž †…èÌžÛØ”Ùý˜œ³ôÔ†£»¢õž“ñ¨¥é—Уÿ´­Õ -ù˜–¸…ÊáË×Á»£³ ù”žŒÅ¦øæ‡ƒÏÁ’¡ØˆÆ÷š‹Ý¦ÁޥŀšÍĦäâŒîߢ‰»þ¯ªÊج­¦ÇªÖ…ÐÍÄôøâý†ìׇ» -ôñåóœÈ‡±–þˆßòÿá†õɺ¬Äà©¯Øˆäæ¸¢Ìó£É˱¾¿á˜–戂éóªæ²Ì¾ƒöëÓœ’ؾÿÔç„‘Äù’ùÅ ÓŒŠ -æ‘Ùäè­È­ø•ßüàí„ýÃèŠÄÉþý–ë–Ó¬Ýìèʨ§˜öŽÅ¬ÇŒÍÚÚóɳØÊ¿ü×¾Œ÷챕ÙÀލ¿Î‰Ü–”‘ÅàÓÄ÷òµÌ -³š®ÐŒ’燜ûÿÿÑ䔆õ¥ûêÃï’ÐùÃãÙ«¾üéôï¦Ï¢Ë•—¾˜›¢áÊœóÁäŸßþòÓ˜꫹£í”ÂýÈ–å“Ú¬µ« -••í¹‘»›’‰Œ¢Ñ“Í†Ž£ËúÙŠäÓÐâ¼ØÄ‚™Ï¤†‚¥Þ‰£¡˜’É±ÔÆÎèíµÃÂìöäÈÓà“ñŒÄ¬Í ‰ÙëÍÑÕž“¹·Œ„ -ظÆûÑ—¬³£‘…à¬þ‰±©ùİÌ‚àïÆóƒà‰—˜¦ØçŒ¶½ÇžÊØ©ÓôŒ¯›ÁİÃÞÆ£ÃÇæÅɯƒ½âûԂὉղ¯¯ -€Ï„ãšéÆñƒ°Ì²Ãö¤“åŒâ°‘ëÿ ¼·ˆæ®ìßӣђÊîÙìýÑĬŒÚʾͪ¨Úªú²þ­†®é‹’ûõÓ”£§³Á˜ãΉü¸Ô¦þ -‰ÍÖÙúѮ愽ò¡†Ë„ý¥ŽàòÈà°±ÙÄÔ•±ÓºÛù–Žê­¢Í¨ˆ²ø½Üᰨ̓Ö߈Ÿ‹áœðÀŒ¡Û³¡ô²ä·Üè£ÞÖȈÁ -”Ò߉£˜¼ÔÌ“¹ÐÓ¦ÁÕÏ¢¹»‹•ÏÇ›ÝÁí¢âÔÂß”üÔâÌéªÐŒç¤Ø‘äÈæÓžž§Çß‘Åã…¨¢¯œ‹Á¾„Á’³¤Ä‘¬Ø±û -…™øÂ÷ŸÅ¦½”îØ†Š“à̲Ÿâ™Ý§Ø–†¨Ú‘¢ÑöŽ´ô”öœÂ„¥Ñä–ÌÖËÓ’·‰øˆ¿…âÁúॉÕÄ׈…´Éí£ñ³èÞá -ËÑÜÄâí—æŒŸ‘Żá㜃˜Î׌â×·®ÄóƒÓµáÐܥꬉ´ì잓ͣ„¿Í£Ã¨Î‰âŸÙž®ŠÞ•‡Ã‡‰Î° ¸•‚¥ -òÌú»È–üËÖéÂü‚¸ß¯³ô©™¡Öæºå¬³°¸Ñç‡ñèÍΡšÙ¾“ÌìØÍŽ¢Õªó¢‘îµ­¨‰¿Ê­Š¥íŒ£úŠßˆÁÒ È‘‘ÁŒ‡ -‘Á‰Õ¼£Ú°Á°ˆŠ‰â´³ë€Ê„âýù«ˆ„ƒº¤Ä°®þ˜êçܪ‡”ˆÅ·Ã¡Ðˆ†õÑÉÝýÁз¾‚°×Ö”ßìºí„븵’„ƒº´ -€¯¹¢€óËñ‰Ïðˆ‚ÁÝÑšžÇÌãêçä¾” ‘‘ŽîŸýªñØù‰ƒã‡Ï¶ž¹õÿ¢úô©šæ¦æºßéãþßñÿ€ÿä™–¦³¨çüߟœ» -®÷öüù󼕀ˆ†ÁЪˆ„¡ƒ ¨ý…‚Á–”¾‚Á ˆÄÊßà„¥ã¯œ¢˜æ×Ü ¨ùŠà倠˜„Á®Š„¡ƒ ¨ý…‚Á–”¾‚Á ˆ -ÄÊßà„¥±¯À°ˆ‚ÒטΑŒãÁ ˆâʾÀ°ˆ‚Ò × ˜„Á髜Œ‚ ô•ˆÈ†ÁÐúŠ„ƒ˜ ¨ý…Ñ”®„¥¯â¢Ø¸Ê¢ØëÖ„³û -Ý©å±Êñ£²Ð¨¶Áû„ Èâ­à„¥¯…’ð䞑ˆ€†ÁÝÇ®’ÌöÞåñøø‡«ÅÄÚþÅÑÊ矯¥¥¥ü‹ý¥ôÉËò¹šÕÖ¶÷¸çÏžÞ -ó£õ®´µ’ëãÆË………ü•Œ¾éÙì¼ÃÕ”ˆ¥ˆÁÈÅëÅÅÊÛï¸óòîÝ»ùÕÙ†Ù™¦‘ªþŸîÙ¿ÊΞõø²²Û…Á‰–©Í¿¨„·åØñ -”¯†Ê‚Ä ¨…™ò¥ŸÌÞ¥úçæ¨¤¤„ä¾Çš¥ÒóÃòò„Ò˜µ”ª¢¯’ÜààØ¢“Œ‘¤ãÐâÒ—¼Ì•ÓÔ’øóò¹ÁÈЈç±ëˆ‚ -„’¡çˆæ¼žü¬ª‚Ɉˎ‚í­¶Ù¢ˆå§³„Ä‹‘®‰Æ’¡ä½‹À™ÙÜÃÁ×ѷꤠюӠ̈ʎ’ðôݛ®â’ÈØ°ÊŒÚ¡˜ -ïÅŽÁ¬öÁ¥Ù¥­¤ãЖÍÀŠ°Ë“ÓÅ‚ã”Ì¥¾”Á¸ýȒѨàш³¨ª˜ýŒÚšÜÌɇɱ³‹Ñ¦‡–àúŽýâ˜Ñ‡Žá¦ß‹ÁÐ -ƒâ”Ò„ãœñö·¾Œ‚¹³‹£»›Ä›°†þü°Þ–Û†Ö»Àë…€µ…ò©ƒËþœê¶ëšˆ‚’¡Ô¡˜ÿÇùÀÄàçÕ’Á£‡…â´ÔÃìÏ¢ƒí˜ -¬’á˜Å®‚Òž¯½Ò±ƒÎ¦ƒ›žï„¥Ú ©Â°ýƒÍ센˜¥ÓãÓ®ö§¶ñàÁ¶±Ø¢Œ³ØÅ°”­æÓôÐ…±¤žŒ‚ÜÕ¢‰ýÖ¹ÔØØÈ˜ -°Âǽ„¥”Àã°ˆ’­ÄôÒ¤ÃЪ‰„‹¨ª±ÀÃȨ•„‚Á”…¾‚Á ˆÊß±à„¥¯ÀŒ°ˆ‚Ò× ˜Ä„Á髌‚ƒ ô•ˆ†ÁÐ -‰úŠ„ƒ ¨ý²…‚Á”¾‚¡Á ˆÊßàŒ„¥¯À°ˆƒ‚Ò× ˜„Áñ髌‚ ô •ˆ†ÁÐúªõ‰æ¸¾„°Áéªçù– „‹†ÿ„»ë -ÔÜ…Ø‘ƒà°Š«ÆÕ€±ˆ¢†»â܅ؑՃఫÆÕ€±ˆ†»âÜê…Ø‘ƒàäÝï»ÿ˜•õ’’‘ÉùùÿõøÞ§Ä²²½¹¹•¦§­˜ºí -šæ§´¨±õÎû×ÿ†ÜûÓþ¯Á¬¬¬ËùéÑÒÞÞÈç¹±è˳ƒÄ½àûÖææÞ¤¨‚¿­¾ØìâóðÛ¸µ‚íÙáóÛ†—­—–µ¾ÍËij ¥ -ÞÞìÇ©¼ÓÕòÕ °°¸†Â— ÈÑÿ­“ýòè˳áÃì ØÚ›„¬›µªž’ˆÝ¨ÏˇˆŠ—¨¨§¹¨£¡±…´ù¨®ã°ð¯³³ÀÌ”ó -Ä”—ïãìòìÑ×Ŭ߅ѣ“úÑ×â—¦ñ§ó¼ÆŸŠú棛ýš›ŸãÂˆŠ¨§Âµ™˜Â……·‹ØÎñ³Çé„Ñô¶‹†ÛÒ­¸šâœ¹Å›œÂ‰ -ඈ斈ÉéÕ¼ÌíÊÃÍì¨Ì€Š¡¦©±–Ì‹æÖΊéùª˜ÅÁœÑ›•—ϦåúѤåÊ¡¶°ÖÙäÐÍ”Àˆ¢ÿµœ˜£Ù©·Ø‘žà†Ûò -ç«“°©êú«©ƒåƒàö‰¹¦ßåÑߥÉÈéìü•â­Ž÷Œ‹íê­Ê軄‹†€Â˜ñ¢ÏڶˬÁµ‘¦Ü²Ü‘Ù¦°¦ÙÖŽÀʺÊîõý¼Áš -姘Á¼Êß”ˆèņí‘Ìü쵺±Ú˜ŒÃØ­ÌúÓ—ãÀ¸•™ŒõðŠóèÅŸ”£…•í‘Ìâ§‘‰¦ßª¬ì›Å—€ü ¡ÚŽºŠ¸Ñ†ÁÊʾ -çŒØ“Ÿ¿Áø˜«µ¤õÅ҅ɘì܇®âùøªÐ죘ôä¢ÓóÍÄĴ̆©Ö­ÈÞË…×ÆÐŠ´ÜÖ£…îÔÚÀԒβÁ°àèºñ¤èßåäÔ -‚ò‡•¥ææ†Å˜°Ö„³¹±öòð“Ï‚‚ú¿ë‰†žüÐéùÙéÖáÎÝšÓ‚Å´ÊæÏ‰¾†ßÁÈ„³Ü–°ÉäÓÂàŒ·¬õ¾Œ‚Á®ØþÕ -°àÞÑÓÎõºÁéèŒöÅ‚ö®‚Ç»”ëöÑ„æú…áÔˆ´ˆ†»âÜ…ÕØ‘ƒà°«Æ‚Õ€ñꑬ ›ïö÷•ãªÇÀŽ¸ë’Œ‚± Î£çù– -ä„óýŸ‡Œ«À€»âŒöÅ¥¸Š°£†Áàæ×Œ«€»â”¥Ø¯¬Ó›È×öÄ ˜ìÁŠñ•àÇŒ‚Ú©ö愆“ð‰‡—Þöøž“ܯÅò»‡¢ -ÂÓ ëìüÎÌžâ­¯‰áÞìóîÝþ¥Ëʶ‹‰×­å帞‰ƒà€—ûÿø™áåæ‹˜Úк¿ãÄüÞ³çÉ¥øëÛþÞ¥˜œÓÁÃëâ†Á̈ÖÚ -ûú¶æÂŠÆÆÔ×顋Σ‘­°¿¼öå¥í€†›Íž¥´Ç­«’šÖƼ´©ØÄ³†±©œƒÿåÉÄø¶ÄÂÊáù‘é«Óõ…ʰ¡ºÈ°Î¹È·› -¡¹ÚÓÉùºŒ´Í¥µã˜ÚäðöÄ¢¢åªîýÞ½‹§ÈÏ™ƒÅ…Ä莋Óâäê­­ŽŒ‚™µ¢ùê’¢–ÏêÅ´ÿËËû«˜ã‹½çƒãûË -Þ¯‹ÛŠî¦™˜ãüç•––ñ¸ì¦Ø¤„æ¼ó”§½Œ†¦°¯ààïúžŽšÒ¸±Æ‹âɪ±Í²ÉÄȼ˜ä‘îçæê걉¯µ¬¤‰¼£½¾Œ³Ó -ÊÕåêó²×Û±º‚‚åšÃ´š¼™æ‡––†ƒÁÌâ°¹€«Æ©ùТ§œë´ŸÞû׺û¸ŠÞ¢ôŠ·Äžéý­ïƞ͕§È”÷«Çâ܉–íš -⌲´‡â³Ìµˆ»Š¶³ÅÚ°ºäºðÑ»˜ÏÛ¡¥…•ÌáœËååûŠ‹›÷ñ„Ñ⇥šÝ¿äÃæ·ÞËÌ·¶Ì®Ñ¨àÔÂÍÉî„‹‹¶ÀÃŒ¶« -Üœ³”¢Êì±Ç–›ò¤™Ãß¡¥…•Ô¢˜ŽÇéûÓ”¡˜¥ÇàòŒ¡•£éôŸÞøÙÎÂϾضëÅŠåÖ–·ŸÅøÁ¿Ñ¾ËËð®»æ¾¦‚¡àá -¿ÐÞÌÕ´–ñ“Á½Éε¢­Ã΃õ…¸Ñž–ÑÖ°ÃÃ˦¯¬àæýà·¯²²¸“ãŒÀÅÆÏ¾£¤ÿøá廣©Ÿô·¼Ò±§¿·ØöËè܇¯ -£Â°àÛ§˜ÙÙòâÄžü³Û™«£ö䇥ìߌç°Ð®­¼ÙϾõ²¾‚Ââ‚îÃë‚™žšˆ–Þ„¹ƒÝ±®‚ƒç…²«ŸÌŒöóÅ¸ŠŽžÉ® -Ðü²Á°Ø•㦪ÀŽ˜„ƒÝ𱮂ìˆÁ°µØ•ãªÀޏÅåˆÖ¯™„ƒÎ ¨ÓÈÙ¾¤¦…Áœ­ŠÁ¥¸Š£‚Á †×„«€¹¢¨ŒòŏУ -²‚Á ×„«€À¹¢ŒòÅòšÕÐÜ‘¨®Á®æ——ˆÆÚ³½»µ««•ß—ÌËëõøÚΩ±¬¬µ§§ßÕ¤„ ÅéÓ•¼è‰»ÌР֘äˆÒ‹àã -‹Ê“ϰ½ûÚ¤™Ü´ÜÚÚš¤úñ»µè‰©›ÜâÒ¸äÈ‚£›„³û许ÒÄú‚ž­ÃЩ®ìÔ¨•Œ³Ä›ŽùºÄðÐí³Ô´’ƒþº‚™ÂÌÌ -ÞÖ²³•ï´²Üϰý²†ÚÖ¥¥ÁÛ ˜Ù¬À¥§ó²µ«˜·±ÜœÂ¯€½˜¡¡Çˆ¦Å–Á°®«Ìþ¾Áô«Ìú»…ÐþŒ¨Œò„Ä ˜á«²è -àâ«Æè¿˜Æ”Ú‘£‚±ÁÊÊ¢÷äÇÌŰÃö£º™ìµ²ì™·ì±¼·Û¶Ó“óËÞé…‚…ã¹’ÓÔߦ ÄŠ£‚¨…‘çÁ°Ý -…ù†­Ẹ̈՜ȑ¥˜ÁÞ¼Éú­¢ä˃ãñäåå¥ÿ¿©«Œòĸ Øò”““ÓüÖÖ–üý¦¬ÔÀ°È‘àŠ«ÂÕ€œ‘ˆ¢†¹¢Ü…È‘ -Õà«ÂÕ€”œÑʒ사Ӌ×òĬ©Ç°¶ßúȶ²ÁÄèŠÆÆÓí«Ã–“ÔÈÞ¹Ù™™­ûöŒÄ½–ÕúøÆ§”ˆ†¹¢‚¬¨Žõ蕈 -Ž’üѼºäÙîà‡±¯±ŒÆ¢‡Á ¨¶àߤââð°üùœåÆÃ©âÕåǂ锿ñ½˜Ø±ŠØÈ³Ÿ‰ØŒòІ¦žùÏÃçå’þøªŸ‚‚ÖÒ -ºÒƒÁ¶ü•뜫¶×ïÂ쯦ԬҶ‡š“¨§²®à£–‚Á‚í¯±² ÿĄ呃™ª’ŒÍÄíÐÕ’€ˆ¨™¹ÉŒÑŸ¿¾¤Ê³øâªñ“–ó -·Ê³úЫ–¬žÐ©ß…áÞ˜þߔ‰Öí∤ˆ„ƒœ‘ˆƒÆïÂÒà“ì…ëãÙôŒ‰Ì昕‰å—Ë‚¡ØˆÊ–Ñ®ÔФÁ¨—ÙÂÒÒޓƧ -¦˜ÖÄð—†û±ˆ©Ý‘ˆ†Ø¹¢ŒÃ•٢̳èã°ýò °” ±’í“ŒÂ¤Š¢„€Ô髪‰—àñƒ²¹þ—æõΔ©æ€à£Ê†Ù‚õšñ¨é -ç󃉦•·ãÌ´“±Ú§˜·Ãùóù•øÒâ´ìņÛÚÚú„£Ž©´Í´Ã‘¤±¯¸»šË¿‹Ã½ðŠòí‹Ö¤Ô™”ÔÚ„Ë®—Æ´ò¦ƒà¼ïÄî -ëÝíàÊۘЊ„ù’Š“ü‚»ôƒ‰žó“ Ô³¯·´­æúò¹ÉËù©°‚¢¸¤šéû£òå¹´´»°ïÛ‹È㺾‚Ü ˜äº¸Á­Ò˩֒ŒÇ -™éû• ”’ˆ‰–Æ‚Á È£ÐŒòŸŠä£‚Á ×„«€€¹¢ŒòÅŏУÊÙ‚À¥ô¼˜„ÁæÆÎò¡î‚¹¨³·…”ä᪒ÀŽˆ„ƒÜ‘ -Í®‚äˆÀ°È’•áªÀŽˆ„éƒÜ‘®‚䈔À°È•Éס“žŽÙÜÍ®®¶Ìã韚ƛ¼˜´œÄ¢º¨½¬™“ÓšøñšêÒîÝáìÙ¦øìÞ‹ -¿Å†ÖÃïå·º±Óô ¾†àææ«¢ª‡ê‚¬ÊÙ‚õš™¤Ù‚±ØÄÔÿúñù¢ÌбšÊøÆ£þùš§’½à÷·õ³åØÁ”ï¡®­•æŠÜÖö‰æ˜ -»›‰”‘ž ç•ëЊ«µˆ¶­®ÜéûÚ’‰Ì¦æ§Ñå럘ˆÂÌà¬þ¨Œƒ¡ÍÉ嘅裯ß쨭‚ÀÍܾ†…žŠñì²Ñÿ’êÈæ«Òô -ôšê™åƒº‚Ä’Á°èô•‚à‚Ñ……¦…Æá†ö¸¶Å“çèŠö¤ŒÄ¾ÞÒÿµ¼Í¡úÂøúØý¦†›óô»š°ï¦‹¬Ñ¤¯Ò¥ÃÍ¿­ˆÖå -ý• ‚½º÷ýô§ÞùµÁÇÌï´–ò¤‚Á‚Ë¡þ¨žŸÕ‘Á抳äÔÄ‚¨™Æåö‰¦ßìå–æ¥ïû‘‚åÆœ»ýâ Ô˜¤”ˆ‚‘š©ÈßÕÔ´œè -º²Îó¢‰Öòù¶Ô ˜´ÊŠÂˆ‹Á£ÀÙ€éÅÚ—’±†ÆËßö£«†‚Ù¡•‰é•ˆ‚¸ÑüÅ€úàÀ³ƒµ¿½¸ò¡ºÎ°»½ùñú’Œç‚µîÉ -ûŠà†íÇôƒêÇÎÎÏþ𡍶¥‚à½ÄœŠ²ÞßÿËÔÚžÏÁµ§¢‰ÁÒê´…µÑÁ¢ÎÃÍùôƒ¿ÿ¨ïèͰéÝ¡˜´®Ó—ˆà”³’İ -ÌÚøïÓúë‡ÀÙ§“Œ£Úã¿ÇãÉÊÊò©»–öÕÙ¯‚ɔ䥒àõäéùż ¬Ò¸À°ç•““ÓäÖÖæö­ìª‘³Þ…¨ÉÊœíÁÊ÷Õ’¬Ø -ç´Ì–ÓÀ°®È¬Ü…È‘¥ŽŠà¿««¡‹ä†é–É Ø×–®‚䈒ɰ̯ۀ«ßá„ô¬«‹×ôòĉ£Ø»Ÿ°Ô‹‹üɉ èØ×–®‚äˆ -”’ɰªÙ¡üõÈÉ‘‚¥çšîŠàÛ¸Ö¥ßôƒàšÒ¢–„ œ¯éÆ–¥ëá™É—ˆÜ†¹¢Ä‡û—ðÓ¿ÙÛà¼Ô˜‘¬ï²‰–‹„¹©‚¡ÎŠ -Ô„‰þ˜Ž®³³³»˜ÆãƒàúЧÔâÆäÿ‘÷çßÚÛà̾›„Ó’¿·ŽÅ°íýñžË¨¯Þæ´ß‚Ø¢Ëñ›‡þœÎÙÕæ‚Ë™åÁ¡ŒÌãýÈÉ -òÓý””´––œšŒ²•Úì°îÿ¯Ô¬Ò¶ ‡ÚÔׂâŽÓâÞ‹¤ÀÑá”帙…¥Ó–Úƒ÷¢“°’ˆ‚ ³Åµ·ð…ˆ†Á«Šàëþ°Œ‚  -Ê´”µÁà˜†ÊÓÜú‚ݶǕËëõ÷Ñ‹¥«›Â°Œ»ë§Â×°ä‚ÝÖ¼å«Ëç¾ë讯¿±áÃ…•ñž«Ó±ƒ‰ó¸Ëçû¬®Ï®­ËöÄ -¨ØâÎØ¼¥èÛâ‘Îå‰Û×¢­ÿ„‘⩹Òቼ丯ôüÿÂù·œÐ†¾§ôˆûݥؕ¿×—‡¶ªþ­í¡Úæ¿æéøŠï¦›‡ã©¹ÂÁ -½–ßæÖ•û³ÍÊñÝ‹ˆ‡Ö•‡ãº¨¸Ýšÿ½‰¼¯âﺧÜûƒ‹÷¦ª¿®®Üý“½•à——¨Ÿ°šŒÃéèÿç€èš -] -::^ [s0; Window for displaying QTF content.] -:: [s0; HScrollBar] -::= [s0;= -@@image:850&106 -‚ƒˆ€‘€€€ƒïÿ€€€€ø‡œí˜ËÎÂÁìÅ×äºÜƒŒ‹ðàÔ¸ñ‹ƥ˜çŽüÅ £ãÀÁ夎Äü„üžÿŒÁˆ–¶©«äÕÝØéŠ -¸¯§¯éêÛ÷ðïÈøÔïù’ÿ–•íÔ¿ÆÖÞÚæ®†Ã삦ܟˆµ’íÔò։ޙíȽ–“Ö÷Ý“÷Àœö¬ÄêŸø°Ûæý΀ª‘¡ƒÐ“Ì -¯Ž¯’ùä²é¦Ð†ëƒÁÛÖÃãÁª‘¡ƒðÖ‹‚²Ò—µÆóòÊºÝæóÙæÏ¥®÷ÀõÞ·†Ú¶›ÏÖÏñ†Æâåé¸Ô£ÝѦʜӎœÌÌ•½ -ø‚ÛË«§ò­éѶӪÚÅ¥†¦ãå飮•„œúžŠÞÔªÞôÞüú´•íõÊÖ‰ˆ™íœ¦Ÿ¨ÇωƒõÂö‘­ì—Ͷ¯ÝŠöÕ´ÐäÔ²— -냋²€Ê·¤ý°Þ¤À¡õ¢ŸéѶ߫Ûå€Îè¬ð߯¥ô‡Ñ–¨¢—’Š—½—¿ží‡Ûý†Õ´ÐäÔ¯²—ýó¢‚úìºä½Ð­ŠÖ»‹¦ÇÛá í -ß•ˆÉ‘‚…ÜšÍį…¯–¼ï¯è»ÒúíÚņ¦ãôåéàßë“̨½ƒÎÑ¥ûþË‘ú¸Ðö¼êòÛÅ›š‹—¥÷Ÿ¢ç×·ó–áßû¿êƒÁ -Û·ñЪ‘¡ÓãÕÌ ¬ïõ­¦Ìá—ÝËÍчÂì§“ñ±Õ¢Â޾êŸüóûäéôâ·•¸—„ßܴͯø“‘Ƈ‹Œ†ùþ -] -::^ [s0; Horizontal scrollbar.] -:: [s0; ImageCtrl] -::= [s0;= ] -::^ [s0; Static widget displaying image.] -:: [s0; InfoCtrl] -::= [s0;= -@@image:768&156 -€ƒû€™€€€ƒçÿ€€€€ø§œí•ÝŠ€ °†»ñ÷è²³§«„ÞÁž³„¨öÝÃü‹áæãžò“ÁÑҶ¤ØæŽå…–¸ýƒ€ €€€ˆÌ÷ü -¦Ù§ûÞþÁÊԶ·„£üÌ®Œá²Ï˜•Ðì¼ßáß®ö¯ðØóµ¢ç “üðõ¨žÄ™ì¾£¼ˆð㦦«ŠÏêõßâÓ辯áÉûéÆšŒÜ -¾êƒð–ª±†€Ð†ƒþ©¬€¬ -] -::^ [s0; Informational field of StatusBar.] -:: [s0; KeyCtrl] -::= [s0;= -@@image:1179&139 -‚ƒÈ€˜€€€ƒèÿ€€€€ø§œíšÑŽ„ øŒ…½±÷ØË•ìùöŠ›ø‡©ü³Ê¡Å¡ÁÕÈÌÞ—ÒÆãݤÆãöÿí„ø²ÎÖϗ榉¼Š€Õà -”•ø€×àÞµ‡¦×ˉ܂“ýÐÔ«·ŸŒ«ÊŸä†ó¿…ôÂ÷ªùŸ•Ò±”õÓž’»¡ðê”îù•Û†¬ñªü³ÞÍÀ³¯ŽÁ¥§·˜þÈ‹§¡— -퉤ۚñêÿµÔ̫䄑±·Þú¢Êõ³›—Ü¢ô •¡×Ë•³ªØÆÞɆøµŠÞµóÊ©ŠÌ«ùÑ©ùŸ´½²ßÒ‡ñêÖžý¿éÒÍȖǵ² -ÞÏÉÐË¼Ž¾·ƒ‡ø…Òžà•ø€×à”އҫ·š¤ûÏõ„ò«»¡·– -] -::^ [s0; Widget for defining accelerator keys.] -:: [s0; Label] -::= [s0;= -@@image:375&156 -€ƒ¼€™€€€ƒçÿ€€€€ø¯œí—Ñ€ ÌŒÄ™Ø½ÜƬùÜÁ„ô×Éíñ”¨‚É›©û°Òðñ½Ÿ‹ã±Ç—ë’­ÏëÆÕ²ŸÓ´º“ºó”Ì -¡áÙÅŸªí·Æä®Æðæ“æ˜×àä„äÒ꬯¼­…™æÙоó·úθƓŸå݈‰é‡äΘ³Ã¥Ã³Þÿ¢óæÎ®Öš¢ïü¾ä”†€äÃî… -¹§Õ³ë•ô̡ѣ³Ù£çþùºÕÿ”× º€Ú…‘÷¢ -] -::^ [s0; Static text, capable of accelerator key processing.] -:: [s0; LabelBox] -::= [s0;= -@@image:1102&242 -€ƒ˜¿€€€ƒÁÿ€€€€øœí›Ïë›Çž”ÇõÿäðŠ®Á¶ñ¡—ß÷‚Ϲ¦ÐàØ£ÂÇàœÃñ¿ Ð“¡Á‡¤…’¦”ÒŒþŠÆÁ“àƒ -©›–™“˜ÙÖ”•ÙÅ‘ª—¡ÏêºôÖ¾ö¨ÿØÌ·£™•Ë´«ü‡ÁÞ€ßú³ï¾»ïˆ¥¥è”‚€€è€€€ðéËõý›…¿²ïÑĺÄœìÿ -Ëôô¤“é†ä¤²ëúœ³ÛÑÁŽ—Éψ€í´ì¯’ž˜‘€éƒñȪëö¢¯¤¢Ð´‰…¹ÀÝîùÍ€©¤Ó¹šû°á¿ËšµÂØ€²˜Œ¶¿üÿ -„ß þ´½Ÿ±èóÉûŒú¤Íè©ÚÉ™÷ïôDz–§ÛžìŠˆÖšØõ¬¥²Í¹é†ÈþîÅïɦ۽éû–®ÕÕߣØá˲‡³«Û½„Œ†±ªé -ÞˆØÒ®Ó²öæµ³å’Ú±âÃâ¶ÿ¢¯ÆÖ°Èðªôé÷ÙøÄß“½™­™¨ëøÝáöõ˜¤’òÒ¨ˆÔ»Ò®µÑ”²Õú¦Ë©¶ïçó®ÚÉœ -Úû°åüŒÁÎè€éÔ£€€ˆŠ¼‚ÀŸø„Å€¿ðˆ€ÿàÌ‘€þÀ£€ü©Ç€øƒ€‘ð‡žà¼’‚ÀŸ‡®ÜÏøÌ†¾÷€¯žáæÑÞØÊ -ë¥ÒÁت•Ê¿ÑÑÑïÿ·ÆÍ£À§Å²úž‘Áô§Ö£ŒÜ®Çüéî¿Ò˜ë´·ä¾Šîê–éÒ€¸£ãæÑ©ì¤Ìå¹ÜŽ®Æ¹Ï¤óÝõÈýÍø -ÊäóÆðˆ¤‚Á›Çâ™’’µ…˹’ÈøôòŠò’‰ ‘È슷Ƞò…ƒ¬‘¤¢è±ê±µÚù¤–ê“ÚŠ«Ù ‘ˆÈ·è™’Ìž‰•¢’õê -÷‘ô‚ùöéô‹ùÈô€é£€‡ÎøÔõíý„æÔΑÁÿ†­»Óõ¨úÚô¡ÄÀÒ둤‚‰÷ãæ‘Ú΄¥Œú«ì¾ÀŸ±ÞèÏñöôˆ’îàìÑ -«ñññ½Þ§ªÞÎ’èï°õ©™®ãÎï謀ï’ÅÍ£úØÄÍÓлœ“’ýÜ“¶í÷°ÌÁºæù¹ƒöùÈûÚÎû¤¶¾§¨€Œ€žž‘ÄÍæÓÒ£€† -¯•Þü¾Î»Àà­€ƒƒþ¿ðˆ€ÿðü¼ÚÝý鯑¯®Ýšššáº¾¶¶ýóæ•ÝÂáåßûäæÉ¦ƒÇŸÓ†å³Ç·î­Ž¸Î¯¬¬¬®î -…¼úµÝ¨ì®°®¾˜™™ºý´»ƒ«Ø¦ƒÇìŸÓˆ›Ç”£ÿ‰‰Ù­­Ÿ÷Ã÷÷«•ÚʵڭÕêÅ…âÛÚ¾¿ï¼žÑû¡´ÿ‡Ž¤ÝÁ­øíÇ -ÉîÉå™–·š÷é傺·ŽÖ™ÂÁ£ª–èþÆ×ÎÑÞÁÞ‹úÎúùýÙü¶³»»Û¢½ëªë¯û¦‡á—‚¯†­¶øï˯€Éö»Âã·¾ö£Áž -ã㡜¼¢’û›ª…‘£•—ø«×ÿ¼šß̱¿™ÿüæñˣш‚àééÈá¾ÿÏ´Êêö¤é¥ÇÑàÅØ„»Ž›øÎÙöÒ둬۟»‘ Ïñ -‘ÈŽžÑó«ã•Ü⥢‰žÈž¿ÝþíùîïÝÜÅï®Öÿý¨·›ÍíÓË—çüÒ”­¯ Ô×ê®Ó¦üðÒ„ã‚çô¼Ò‹½Ëà£ÎÛøºÎôâ² -²ýôÉЗơÀøø´´ôÍžÛ©äÞ¯®ñÓʤ¤ºö뛵óÏÎïÔ÷ŽÚ­ÖÎÎéø´øÒ›£éµ¶ªÍüÞí®Ó„Âà‚ïϰ±ÇÞ肵¦ž -ŸÉ¾éí´‘ÚÀÆ«ùäóÍÿê¾ú¤¨Ëã ¡œ¼š››®°”¶©Ç‡ïÓ©œ“’ï—ŸûæÜÐŒÎøÏÏß¼ø…¿Ç¥ÇšâšÛééÆå㜩øè -áìêϰÓðÚÁØÌ½²ÅèÚ¥¥ÆÎû”ÛÓÙ·¾¦• „Ç€¡Ã¸ø´¹ùÔ÷ññÁ­Ö£¸œ½úóˆÊ¹êډȢçïžþÑŽÎÎÎîÜÉùöææËõä -¹¥äÒ¤¦Òâ»àŽžÅƒ—ËîÒÌðüàÚÞ€˜û°éôíÓ¹±³¶©¾ú”§¨ññȎƞѽîääªðØü«þªú¡óñ¡Ø­Š•ˆÀòôððÄûŸ -Ú¿ß²•º¼­ÚÙħ Ö£üÓÆ¤àÅÿÞ°íϰí𦫚»ÏŸÏõ¨ö„Õòè㢉ʸüœ²„Û÷ÇàóóßÍÌÌîçî–‚ ¿÷þîçèʕم -—…¯µÉ±ÌÓåðñÉ­å¿ áÊû“‰Þôªå›ˆ¥ãÔ«”胖†Çôâå‚ýôÉÐ÷Ƙ¡Ã¸ÿžáþÿþþèèôÒÒÇÃíúî¥÷’›ª…ºÑ™ -íæáªÈôðèìãŠñùýÝÚËÚëüþž½±˜ŽÏÒ¿Ôò™«•ÑÏÈ©­ÞÃÁ›ºãù‘û”÷ñÀï½¢ð‡žàļ‚ÀŸø„€¢¿ðˆ€ÿà‘ -æ€þÀ£€üÌÇ€øÃû„•ª€ˆ¥Ö”¨„–€¥£â°€€‰¾»Œ€€†€¨ü‡¥Û¹ž -] -::^ [s0; Static Ctrl for visually grouping other Ctrls.] -:: [s0; [^topic`:`/`/CtrlLib`/src`/LineEdit`$en`-us^ LineEdit]] -::= [s0;= -@@image:875&475 -‚ƒŒ€Ì€€€ƒ´ÿ€€€€øƒœíÜÉîÔ±êý×âœÜȖ‹°á‚Šˆ£ ö¬˜„‚«Ä‚’ «•ˆˆƒ²ù¤€‰Éºê̺˜œÓå—‡ïö¿ -øÈ½½µúÛõ﫞ëſݎ󔩻¦”𬜪€¡žáÃö½Â‡ú„êÀžõÝ×±Û›Ó̘õ­Ò½êÊ®’ÖÛÔ»³ÌÝï´®›…Çף··øâ -ÊêÇ„ðõ‘ÜÂï¼—ÿÀµ×ÕàÑèù Ü¿·ÈÞÌêËÕø²ÛŒ¹õݨòòÌÙ€ûŠï®ÇîÈÈØòô°ÌùãÌѪٹ›ÑÆ¥×ÁôþæÔÅà -‰Ò‡óѸóôÖ¶Ë”ô¼²™ÇÃö¤Ñ±ðä³Ç놮ü»ŸÒÅ»šøùÔ–†¹Êâ¾ê£æÒϺš±ý¾ª˜¹º¨«÷£¥×‰•í‰ÇÂö¤ƒ¡ -ŽËïíÅ›ŸªÕ³÷Öûɳ¤›«â‰õ¼ŽŸÉꑾԣü¨ºÇøÐð¡žÙáý‡ú„ÂõˆŸÙÿ‡µ•ÑðíúŸÆŸ³õò³ â™ÿêјî‘Ý -‚Ö¹ÇÛ¼¬´ø•‹ÔõÊŒŽå–Ëù×ÔÊë½ÞÁœ¡Ç¢ä±ò¡áàÆ¢ÛÈ’Í̦ÅÊ™åÕò‚Ëכ•Ì œÊûËõ³´Ç—’¯ß® å®á -ùä嫵ÞÜŸ•æî£ô˲•ý¸ÌÄ£Ù¸ÕôÖ¨˜•Ù¿ÖŸõ™¡â¾Îª‹©›¹ëׯð‘žë͟ݟǹ†–ù”’ª½™Â“©çºÒ¯óמ -¯þýˆŒÄ·°•¯¥Ìæíý¹Ý³ ©ªáÀ·¦‚̃¼º¬½çÀ‡ú„ÉõˆŸê‘¾ÔÔ£ü¨ÇøÐËð¡žáý•‡ú„õˆŸÉꑾԣü¨ -ºÇøÐð¡žÙáý‡ú„’õˆŸê‘¾©Ô£ü¨ÇøÐ“ðá½ÚÜûù¯„¤÷èÞýãéÛ÷ŸŠÿ­—ÝÌš˜›¡š¹Æ×ÿÖúüÈã–´™øäÆ -î翬ìîìäû·™·³£ã°”ø´ýÛø›Ÿ›³ Éù¿½²ö™Ùçøï·åÎÎ͘£Èôø´Úý»úÛŸ›³ ÉÄ®£óƘ¸ýæïðúÛîå -ŸÂÂܯÈðüбŒïëÝÚçý»Ûß›ÓÛ’´ÒÞ¢’ûä…Þ¼Ýóé²ÁŒèÇ®‹…â«ûÐä»öó…úÿ­ØÂÕ¿·ï³Ô˜¼é¼½ŒÄäÀ£Õ˧ -›ÃŸÁæÑê­µ†½ªÖÂÕÿϰ·Ò˜…ÍöúúôäæÛˆöðÞ»²¢ñˆÌöáÈ£Š¥ÜÇýß÷×›³Ôú´Þê٣ǯÔ׌íݣ˗±Ä£žÐÌÇ -Œ•˸ú¶ÀšÓèšéøÌ»£å‘»–ݦ²–ë±ìÑýµ’®þ£Ã­ÙÆŒµ·ÚöÇèÑ«¥Ëû¯»È¼ò§ú²õäÑÅ’®þãÇ£ÝÆ¬èòÀ -µ£Å—Î†Ë‘ÃæÑâÅÞ¸âúù­È«ÿäǼþãò¦ñö’—‘ÞïÇÏ翪‘šŒî¥ùþ÷ÄãÁéõŸžìœ¶¦·é¤½þĤ÷œá廄²É¹Ã´ž -ÖÿÙéñ㨖´ù軯³«³ÆÄ™®·³ä¼ÎˆÇ’£Ñ¿˜œ¶æöÁ“‡×ûÜûÍüüИ…Íæ¨žÝ©ÆÊë̤ͣõÈ‹©‰¿ü”©ü‰ -Œöô -] -::^ [s0; Highly customizable raw text editor, LF is the end of line, -fixed width font.] -:: [s0; LNGCtrl] -::= [s0;= -@@image:400&162 -€ƒÀ€š€€€ƒæÿ€€€€ø¯œí—ÝŠ‚°º”€û¿Þ¡Çëè¶çèê¾ù‹®¢‚ˆîÊ×Ш°¢©ÈºÛêÈ’èÖ»àÀØ›ÊÑ•þîàá»ØŽÛ -ëü”íº°ðœ°­ž«×ÕëÝã˜öۼ迱ª¨ð§Ý×ÔÇß½¾›ƒ„‹†ÚÒÃÿùÃÀÛêé¿ð¼ß˜þ¥ïà®É¡Ü«®ªŒŒ¥ûÏ¡† -ü¿ü—Á€ï«ŸÜ‹üçû§—†Üý£ƒÚ͘÷Ð®ÔØÙåΨú§Û©øš»Û‡…ª‚й•³™æ¿º¿šÁÌÿÛ»ƒÌØØ¨ƒêï¿ò¢Á„ŒæÁÿ -«²¹±˜¶Àß›ú‰¿‘ÖÂäý¯ÔþÖúÊÃóä…ü®þ˜ý‚缺‹Ðù¹Ÿù×ýŸÄ¬œß‚˜ÿ£å‰ƒ›¶ßßËõ±èÇë︞†½ýæÍÿÿÌ›²¿ -¶ñðþ¦ÂŸŸŠÍ„¿¿—”ä‰àƒÁ¯Ïˆ -] -::^ [s0; Language selection Ctrl.] -:: [s0; [^topic`:`/`/CtrlLib`/src`/MenuBar`$en`-us^ MenuBar]] -::= [s0;= -@@image:753&581 -‚ƒ…€ç€€€ƒ™ÿ€€€€øœíÏë“Áþ”Ç·õßðŸýðªÞ¬Ø‹½Èù•ï‚ÂÁ¼îø“ꥅ‰íÈѪúð¢¤ôƒ”ƒÇÑ둬¼­’Ä€’–” -ۊ⥅öÚù®Ã¢ëìüÚßÉþ˜÷’ü¿ž¼Â²™ù﮾ûÞ˜äêöúº¸Ž£‹Û“ÑåÎô¥³óŒã¿ºº£ìæ·îŸÍŽìµýÕæçþ·• -ŠåŽË÷·ú«²¿¿¾Ãü ¸Ø™ð°²¹ààåÀÁÊœî¸â´Œ’רÑñÄ’ÂÆ›½¥µÒ…¥ŒÛÞ„‡ûΗ›ØÖšû„–˜Èø®‘åá’㣠-Äœð„·Âœî“¹ð¨•¬ù¢µ¶Ÿé¶äôúÖ²Û¿ÁŠ”¢»ý’ý¸›ƒ¬å•º¤“¹ç¯ÏµÃ‘‘î•ÇÄ힣äýòî³Ï䞟ÿá„òªÃ´Æ½ -¼êö”‹ÃᘌÿœùÌ‘¬ðÊ€‡žìȸô’Ë…ÃÿÐ÷ÿ’ƒÊñ¹Ã¸”Ûˆ¸¼´Å®åƆƑϤܷ¨í¸½æóý­ÑÇÔ¯éÒ»ŸßÏåÅ -ùë†ÕçŽá€íƒ–‡’²ã‹€ã¢¸Ø™ðû°²¡ŽÆ›çü°’³áˆ¡àž’Ó¾¸²¡›ˆðÊŸö…Ç¢õ‹ˆÌ¶ààŽåÀÁÊ’œÇ Çǧ§§ýþ -¿ÿìììüüœ€¸èñÄé‡ú­Žæ³¹µµ ¥ÀœŸŸ‹„¡©ˆÇҌɃ½·¹æðÍýÖð©ñ¥¸Ö××ä…‘ÃÔ­Š†ðÄÚï¢ÌÌÌñ¦¶üÒãó -ç¹Ä¸’œ««ó«ÆÃàèõ®ú§§§ÕãàÜåÆÇòá¨îÕÉðÚëµÚ½ìÞ§Á¡äºñžæ«´ÊÙð¤¦é¢çËÅ™žü’Çæ¬Ú¢®ßºÊ¹³ÃýŸ -×øÄÅ–‡±œ–Ø’‘œ–­ÒŽ·³…ݣLjá«Í¶¶ÕØãñì˜ÇœŽ™áÏ÷Ü‘ŽÛÍâÀ½…Ç«Õ⊿ö˜óßÖ©¦ô–™¾ø¤”éÙî…Æã -õ‚£ŠâÝÈÃ…çæÈŽÖ†œ‘¬Œ¸Ø™§Žî¨¤äÏÆß–» Ò²ƒ¸Îè剃ü³Ø€„ÛŽœÐ˜µ††¿•ƒ‡“€‡«‡«‡à«‡«µð© -ÿœ“€ƒ•€ƒ×•Âàж—áØóñ·ìŽ‘±øœŒÇ‰½™Ò»ô™ÂŸðå»¤í¸˜€Ãø¯Ò³ÃÒňò‰ÜØ™Œ…Åð¾ÐÚš¯²¹Š±Í¸ŒÓ­Ÿ -éèï¹Î¸¦ÚðÑðì뇭Ÿ¡À‹ÇÌݬìéÓÒŽÌߦؤ»ìçÖ•ü¥‰¸ Ý»”·ÂãðÜ›’ÆÁð¸Šö²ßÕÆõÅÁÊö¨Æ«œ—ØÆ -‡Íìßïî‹•è¿Òœ¾Š¢¹›¹©€Žãã¦ÐÓ³àÈóþƒ‚¨¤€ƒ‡•𮫇€«‡«‡«Êùâ ß¹¹Áá–ƒ‡”ÆÀÁ¶ÊÀÁÊÀÁÊ -ÛÀÁÊÀÁÊ™ôžÝà •ðå°’Š•«…É®Žã³ú›’ØÇœÓ…ÉŽÿ³©žò¨ÀÁÊÅ„¸Œ›ûœÕÐìš”Œ‡ñÓ½Žü ï­šÂÑ–«ý•ð -€€‡Ÿ±Ü»Ê¤œ÷ì”þíðèìŠÕÎÏ¡ðÀ¥‰«ÑýÉ’ñ¹Çôº…ï¬ÐØ©©ÖÃÍ¡¢‘þ“ŒÒɸöèÿ €Šµì€€ŽÚ‡«¹šðÀÈ̈ãñ -Ôåü¦éÞƒû¹­š¬¯¯ø¯¬¬ÌÏÏ‹Îãñï±ûƒ‰Ûã냉ƒ§ÜŸÎ€Ý¾õ³”¦ÉÄ¥ÂÌâÀ´†ÞËË¿ãë£áÕÇյÅÛíùÁõŠŽ -ûƒýÝå“õÒçÒ’€¨Þå“ԯ߬̀½¸ªÿ§®É§ðúÚÚú™›ôΆµñìö»òã蜕œ‡‡­Îѯß÷ÞýþåôöóÃÓñð÷ãûæ¤Ù³§ -ñÚ–©Ûš–•‘È‹ÁÂÔªþ¿Ÿ¼óÖßÁñûð› ÒÃÝÛ•ÕËð™”ìûýê­Ç§…å‘ÀÿÞ€ˆÅ -] -::^ [s0; Menu.] -:: [s0; [^topic`:`/`/CtrlLib`/src`/Option`$en`-us^ Option]] -::= [s0;= -@@image:618&143 -€ƒã€—€€€ƒéÿ€€€€ø§œí—á‹‚À¶Œ†ýÏý§þÄòȈ ¡¢‚½ˆÄÔ·Æ¤ã†ø»×éÒЛ×ï—ôöÛ½¾†÷Ú㾾ܮǗËõúœŽ -¼–ý½Ï¯‹ Åœ¸ò¼¿ó”˜åÙÕÕå•í‘Ûº¨ŒŠµÞÍ£‚ʲŒü§´Èž¢ÇªõÌ·ÔßÐÁÈ ¹ˆÑÑ”ÒÎÐÇŠ”èÿ—«ÆÔï¿ ÷ -¨ÀÍÆš¨…—¨õÝ·»¨í‹“â»ñÖ‡¬Á‘¢–£¦Äð±ŒÃêë…ÉÊçÍËŒá伿ÀõŠÌÔ«€¼ùæ¥Õº©«€–Ðä¤Ééºõ¬‚µ¸ö -õ”¥À°œ¥š¸á­á££ä»„®˜‰öœ¡šš¹ÀᎭåï¦ûĈª¶ÇµÊ¼ÛÀ©”¨¶ˆÑ•ƒ¿õÀÂãÀãøÅªˆÔ–ÞµÚ‚ŒÏà꺎Ƿ -í¤ôãØ‘Ôâ„¶Éù„äÙæÀ°¾ÄŒÊžÝÚáÇ͔‹¾£–ÍƒóÒ¢¨Ùº…°ùö×ͱ€¢äÊýßÛÀý¡ßü¿žËåò¹¸þÛÏýõøò - -] -::^ [s0; On`-off (or on`-off`-null) option.] -:: [s0; [^topic`:`/`/CtrlLib`/src`/OptionTree`$en`-us^ OptionTree]] -::= [s0;= -@@image:700&1000 -ˆƒð€ €€€‚àÿ€€€€ø§œíáêÛ°ú˜†ó§œ¤—ÑØ¹†»Åî°„Ÿ»Ïˆ£”ÊÀ‰¡”Ê™ã챟¦¬¦„õÙ«–ä×–¬½ÝùÑ«©í¼• -ØåÉï„•¢„Í•Îçϱ¯ûÚ§ÙŸ“„ÿ¾¶íêÇÄåòýù¹ñüüüò¿òòúŸÇãÁ«Ÿ¢º±¼àÓßïûúôÜÏïéƒìÌ’ßÏËÄÓ—§ÿ -ãµÏûÖØõóÉò骥è¢ÓËüûû£Ïèóâþã©ú¼þÞ¯ÚÛ’ÏÑç¬Íö›÷ì–ÎÞ³»ª÷¼ýÍ·ä„Ö¾ûô›ÔÅž‘¨Ÿß¿ýµ -”¯Ó¢Ý醳ÓէﯩÄÔ³¥âÌ®í¼´¥‘í»öåî¾Ó¢Ïß“¢Ï¿ÚúˆòÄ«£ðÞ§³³ÿç•®¦Þ§é—‰¾¼ÿÏ„ëç¬Ðñ”³«¹¢ÏÈ -݃šŸ·ÛÍôéùç¢æúùÕÙïýæïìܵ§øô™ÚÕýýâ±¡ïæºÁÿÔ׸®–Úäß߉˜û‘û¸ó¥÷„¤„½‰’ÿè·¸û¾‹œëÓËüÿÿ -ÛôÙô¬êí¸ê»™ã÷“ÇÑÒ‘¡µªÖ妤„€öèIJ Ð§–úÄ’£öÉü¤’¿×å¹´Þ羲ʶүدÏÎÇó†êþ§ùÌÈÐÇêÍß -ÐçÆ¾²¦Ï¿‘ñ”ýæä£ãÕú”Ë‹å£ÝãÿÌ¥ûûÞä¾’ÞíÿÄû×ܘŒâÓÕ•ÈǺçé¶ä“Áæ££Ðæ¾ðòܸþÇÂùÜ¥¬ô‰…¾± -ï¤ú¤ÿ°ô‰¥…¾±àý²ÿâ…÷¹ø¾²›ÕÏÁò‘¸Ï“ýè“×ëÕ­½œöÜÚ÷ü‰ïܧ©–Ʀ½»ÌÝÉ€ðõαŸ®¶ŸÑø²¢ƒëǬƒú” -†ßæ·¶ŸùõÄø¸„ýžÝ¦¸ªÐ¿Ý»¹¿”ñªæ£†Žä‘ª‚¾Å™š³Ôëªæ£ª—™ßªŒÏÛíæï̘üäèÉÀýæä£Û¾ëŸßšåüŽ™ -½ðüŽ…óËÂØè“‹ýâ¡ÜϬô‰…¾±×°¿„¥Ò§×©ƒÄ’㓵žÈÄï²ïÐÙëþÁü¼ãôù´ä󴼣㽭ȬïвÏáæªý½ˆö -צíÍäê—óäŽÃêúãÓè¨õå†ýŽÓ®þª”õ‹æú¥·šÍ«¦ïˆëìöÀÀýú—ôùÌÞ‘Þí—ˆïϧ­‡±ªÓʳ™£¬‡ ÉšŸñ½Èª -Ë©ãÍ®‡‰ƒ¿ßàøóÅ‚Øè“‹ýâ©íó´ÿ—ýâá¡Ï¬õýö×ß¿ªî³³ü¤ÿ„ÏøïËåå £­ÿŸîÓÛœ‰ŠÌŸìÌüÇÚ£¨ÏÕ‰ -«£¼ü„¾ÅÍç•›´û±«Ìâ¾—š¸›‘÷˜Í¼ü¤åùßÒêõ³³ü¤ÆúûÙÙ¾ÒýãþÞÙ¾Ò½ÿÁÙÙ¾ÒýüÔèÙ¾ÒݧÇï–Íí¿µè“‹ -äýâ¡Ï¬ô‰ý…¾±°¿„¥õºÏæ«”Îú»ÔÈãÍó·ŽÖ”ÖŸ¯ã™Þ‘柼ƒûéÎÀŽš÷ŒÙÔþ–Ê»ØþªÓåö³£ï˜ÖÙ§­áÞ±…æ -úµàÞ…ã´÷’†¾±Ð§Ö–úÄŸØè‚“ËèùÄéÆ‘Ë£ÊÓèùœª½‘õ¾”úœžÇ›ƒë¨™÷¼Žúô¹ïŒøžÇ°¾‹½ùãØŸßž -á‡ÿžÇª…ž÷Ç¡èÓâœõÐ¼Žƒýúäç²‘Š¾¥úË£¦ÊÃñ»–ίòá¡Ï¬ô‰…澱Ч–úÄÓÂþ’–æÛ–Á­¿ˆçꑌ¡§êýÅ  -ÅïØÝíÏÀÖäßÄæ£ûô¾·Õ†¼Ã®Êʨð‰Ú¢ãýÔÅÆÞ±šÏÿ˜çÿÓåæö„¿£ûÜÝÿ‘Ÿ÷Ä÷ŸºàŸËú‹¤¼Ã¼¾Ö—ì°þž -§¨ÀéŸ˜æØ¸þ§„Â䈡„²ùˆ‡¾¿ªô -] -::^ [s0; Tree of options.] -:: [s0; ParentCtrl] -::= [s0;= ] -::^ [s0; Parent for grouping widgets in TabCtrl and similar situations.] -:: [s0; Picture] -::= [s0;= ] -::^ [s0; Static widget displaying Drawing.] -:: [s0; PopUpTable] -::= [s0;= -@@image:737&377 -‚ƒŠ€Ç€€€ƒ¹ÿ€€€€øœíœÏë“ÁÖ”Ç÷ßêŸà ¿ Þ½©¢§×Ń ¢ˆ—ÑÍêÁ´©¢‘ Øƒ¶šÃÄÓ ¬¹–ë‹¥ÊîËÉÁˆ¿¢© -½¨Ðö˜Ëº³¡¸Ìææ½ù÷³ÙÌÎÚ÷åðÑö§ïæ½™çÏÎìö³¤ÿíûÃÿ¿Ýº÷ª–”ÅѼª‡ƒ’¤Ü¾Èäá¬øäÕúýýãË¿”“žÂ -¤ß èËÄú°öÖøšÒéýÝ¢˜Óñ¯¡²î—âÌÇ¿¶Ê¿þ•ÃαἙ³°…ÓáƒËÝ º‘«€ð¡ôæ®®±å€ȩ̀äãº¡Š›Ó‰Ù”º¯ -Ð߼ʌ¢£ž§ô¬ÍÒüèîÚÇÖ„‚¥Êñ‹ùÓ‡õ盯µ’ü°í¤óê°žÙªÓ±“Òéôº½Þï€ïïï°˜Ø×®¶¦ã™Î­Ú”ê­×÷¶Öú -×ÝíÔô’òļ¡‘Ó¡Ó™«ñÌŠÀ›ë­îÃç÷¸äàñúá‡Î™Ž•Αݻ·ª‹‹ëÿ«Í¯ŸÞÉïäÜ齙ޒ“ã§Î¿¾ýíÔ•â…Û -ÆÕü© ¥ÒÜžåÌÇʧÐШ´šö»à­žŒºÆ—¨ôØÆ¨Ì§€ÃºÊÝ¢Þ٘Ρ´¢µä¾âʇﻖÁÑ™™½ç¡µØÒÑá㺠-øìÌ犌é„ü츘•«˜âÎÈ⺡‹é„¬Šä¯Ü¤¼Éˆò”½Ðåÿę̀™¶™û•ˆôôÂØ×é䲯ɼ´ÿ þÑ´•ôôÀº“¥³‰öÓÉ -ã¡£ü·êô÷ûŸ¡ž÷èБɿ›Õö•˜ýÓ¡’䘕›–Ùâ̬„Ú·¦ï¡´ Ü–ÇÂÈ¿ ‡£Á×çþ굉ŸÙ§Ûן¼®¾ýʳÜ×àʇê -½¸òŒŒ€ñÓØ¨¢ý±µºèŒÑ¨ìŒ—ÀÌ»î¯Þ˘ŒÜÀ뜺ø²Ð¼Ü³´ÆÂ›¥“Ò±öω˜ÁÉŒÊʧ𨇤ÏãàÐÔ‡Üÿë‚á -°ÐΩô’®åôÂÇÙÇ÷µۼ™ëÕ­Á—Ì…ú¡’“ÕÙ³§¯Þ¾ì¿÷ÿæÒ¥ˆÐä…•æ•­ÐŽ¥Öì»ßã–ÑÆœ¯úÁ겺ò“µ²²Å -ñ£²–¦—¨ñØØ¿µ–à‘‹ý‚š¡Œ…”…òŠ÷×øŒÝŒ”›Óý‡åÓ̧ä©ôÃ¬ïŠØ¾•¡ßû¨óÊŠõ ‡ˆ¿ß‰ØÌ§œä±Åô -’–Ó‰ÙÓ§½¨ä¼‰é„¬Ì§ºú›¢ÿ‰œú”ôÎÍÿÿéôôÓÃʧڶõ®—Β阘ó³ò‚朞ôª”¤¸î‘ò‡¼åÄúâ€Õ¬¤”äÒÝÌ -§ãС»Û¯Ã‚Š‚”ñ©­£Í¢§ø¨¯ºº®¸¬þ”íÄöÒ­ÈòŒïÓÛÁ£°¤ÚЗëËÖðÆþù„Ç•«èÕ‡Ò˜êºø­¹¢Þ˺ÊÁ -×սѱ¶ÏŸÂú…‡¸ÀùÂÒʧ±÷℣ܾóÇÎ’üÙÃŒåú§Šê›¾Äàëˆâ³ã”°¤Ýßµäî¼ö§©èï´šåÓ‘ãä¾ê–Ïżë -¸£à±ÅôÜÂÖ„î˜âåü®èÇ”¢ýýÍýΧÓì¶ËïåòüüüåüÅâ´Å˜‹‘ú—ãýê¾°ÅÝïÛ»Û«­•åú­Úª¬®ßˆéÆ–¹¡“ -ÒÈù½êÅþîǶÅÒ§€í¬‹·ÖÖ›â¥äûËÜ„…ö¨Ä¬‘ÿŠò±£þÿ€ÌóÓ -] -::^ [s0; ArrayCtrl derived table suitable for displaying drop`-down lists.] -:: [s0; [^topic`:`/`/CtrlLib`/src`/Progress`$en`-us^ Progress]] -::= [s0;= -@@image:1155&364 -€ƒÆè€€€ƒ˜ÿ€€€€ø‡œí‰Ð”×ãÞÀû °š­Ðä“ɬ׼ž«øƒ¨ž‰ˆ‘ÆÎÁÄ´€„¢Ñ³Æä³û¥ÒٶͬҘïýÌ -ÇÜÔ—Ú£¹ÌźǢîý¦«•ë—ñ“ðÂ÷ ˆ°³½—‡ ê ‚ ûÿ󆺷ÍÜÌàѳÿãÿÕ¯ºÞûãÏë·½Íÿ扽þô÷ôôô„ÉÜÔ…Éô‘ -ÀÅÞ£¬ªµ„‘ÛÁ¥ÔòËÕܺ–®¥«ìŒÜºžÛªå›Òô¤“ÖÉòò•Òɭ¥辂åÑõЧ‰£ð䙥µ°æøã†ŠÆÈË”ŠÛ ¦À† -ú”µ¤¾ÀÀÍþ®é°“¨Èþ«š¥ùíïöö¼ðß„áï®õŒÞÞ‘ôá†ÇÐÇ¡»‰úỉ³÷Ú…¸ÖÀœï¥Ç‡ûÑÿŠîƒõží¡Â±¥½ˆ€ -°Ý±ðÔÿèÍ›ÈÍ…µËÖÙ癞ôöˆÙÓ¯Ýðêæ²©‡î¥€×Ôã÷˜Á©Âª ‚ ö€ƒ¨¹Â¢•“ö›Ôˆ´†„…Ū£±ƒšŠÈóÚ -Æ®¹‹µ÷ÖÏÜœŸ¸Ø¥—ÄðÃ’Õ…ð«¸ê¨à·ïº¦Óß¼Öðœû½•Ý·¿ƒ ùØý² ÍРÿúžûÐÅÓšˆ‚¦ÈÖÜÀº«Õ¨²Ô—Ф· -íÕ§«Å·§Ñº·«Þ’ÑÄ­ƒ¿Å­µ®ÓïÚÁєɨµ‘”ÖÍ–‘›Ì•Ãõˆ€‰ªîÞ¥®ÌᶺÝê‚·´ÜŒœ¶¬¯ÔÓ»ÁëÖŠ±ÛŽäÕØ -ФÆÖ½‚ Ý¡ðʵáÅ•äé…ÆÈ€™•šÊÖ伉г•’ÐɈ­€ˆ¤²…·ÈÁæÓ·Øä—è¼íÖ¼×ï¨Ñ¹ø¨´ù•ŒÎ¸áøÂ µóÚÄ« -Ÿ·Ì°àªšÒºÇøµ‚˜Ð£éˆ™Ö‚£¼ÌþɪìÝú¾‡ú®½¹®û©”ûÛ…ßø…®Ç¬èŒ¢ƒÏüÿêÊÌù‰ÌŠïÛ±šáá±±‰À…ºé® -•Øæú½ƒ ˆßƒõ¶ÂΗΈö㫲÷êÛð«•ÕŸ¼®ßó’¡Ý¯×äÊÏøì…ê•óÕÓ¯ÌׯŸ…¨‘ÒÂåÒ¤ÂËÂÄŠÙ˜ÅÄ¢„É·ËË -»²ß¯ç‚Î’…ƒÿƪ ¾ÆøÜ–ÑꉛƳ‹…¢ëÏÿÏÒöñ™Ñ™žóØŸñÂñ†Ž—‘†ÛÄ­Æáˆ½ÆíõöÍ·¿ÛÞÑ÷ùǵ‡Þ -¿«Ú¾ÑðþºÛÃïòôïäëÝßکۼܷä¹Ý·±Å›Ÿù¤Ù—Ë缬ƒÎ˜Ý¡®Ú†°ü¯Ñ“ùÃ׋Éèáß‘—¹Ÿþ›ÆÞ¤˜‚Öè“áé´ñ -–šË¼Þá°æ‡Ó»Ž¤¬¿‘‹¤‘–ÀÏ΂•®«ÙÈɱ˜­ÿ§«ßîÈÞú‚ƒµ·ÿ½µúç›ÕêŸä›ÞÛ«ÿÆÝŽî·Ù µªþËŠÝ›Ëô -›Ò´ùñüî×´ú•ù•©ÓìÊ–ùâÒóËäÄ™Œž÷ÎéÚèòŠ­ì ‡ÓõÔߊ½ÿï§§ðæá¶Í·‘¶è½£û ÝºÍî€èž¹Œ‰¦‹…ÔðÑ -Š„°Ò·¡™Ü±¾ùøûÍî÷÷ª¶­·¼›«Øÿ»Ó÷ëôííë©Ú¼ÄÍÚ˜¸¾§ŠÏÙÄ‹Æá™³Õé¡”•ɓˢƒ‹“¦ö£ÆÃÉ´ö˜ýâ¹³Ñà -Ûøì’Ó…áð¬§à—‰¤†Ç£…“òäÞÎÈæŸ­ºÄˆâçžÄñÝô–©òˆÆëóâ«Ü÷î®Þõ–èõÜÜøƒ‰ä§Šèצð¹²õíæ‚õò¹ªÔ -ÔÕÊôˆ·œÁøÒ©ªÏ˜Œøéñ¸¯Ã†þ‘£§–˜Œ†ùóè°ú…“ÄÓñÐ’²ãß–¤ðÖ˵ŠÑ™öû¦‡˜ý‰ìêƒäƒÖ“á£á‰ùøÕì - õ÷ÆÿßÜÜ£ÓÐæ¿¯è¾ÄßÏÈæòŽéŠõ¹«ÑùšÜÙÕûëªë¶½†½³›ÊŠ¶êœ©ÞžŽ´º«“¦³¸²˜þüùü„˲‚«£éŸÆÃ -֤ܸŸ®Äã´ÄÜŠîß©¦Û¨¹Èþ™ïš´ªâÛÍ‹üŸþØØëÅæû©Í×®ÚšüîÃï¿·ˆçƒÎ…¥ú鈢½âŸòˆòˆØðè´Ÿµ€Î -ËšÉàû·ÙºÞ·Ò™¼ê•ó×ÔËÂÔÉÓÍØº¯ž­Œ¬áˆ›÷É–øåËŒ¦£ßªê¹Òdz£ãŒï‹¢ËÜٵ뷼ûÒ§ºøÑ×Ç›éÞ¿¦ -ÂøóÑâúêæòÑÿÉ…¾ËªÄ™äøíÇ꺴™Ïöû×ú³“‚Îè´òø¡¼´ºª‹Ñº·¨³ôﭤˋ©Úõ‰Ìá¸äë¶ë¬›¡Œ¾š¦”¬ˆý -¥éòôËß͘¦ÀŒžÒêÛèΘۃŒàåš×þ™ìê¨ùê–ÿËüçºñŸ¹…æ¥á§èǾÿ¨íþ‘ç®Àäý§îÓ·ÕÚ÷ê¶¹ ÍÚ¨µ©òýí… -¡ö®§·ˆŒ¶üÀò‰ÛëØÞ–’‹ÙŒõŽÇœÁù»ä¾Â¯¾³ôõµ Ãž¢¿¯èÃÝôÙƒ¢ˆÊ‡Ãúꨭó•šè»ì¦îÃÞŠ™ÐÞ´ŒÎ -ñ µù‰üêÅޖד¨ãÆ«Îㆫ¢ßÔɽ†ÕÆŒ¼²èÿä×Óú›Œ¦ýÝôà߈ѠÓöôÒò—–é… ¦«Å³êëé©ô¯ñŸÀÃòäÙµ™¹ -Õû”–åÊúÐùÓ·ÕÿûãÍÌÐÌÞô¯˜ôÃæë§×è…¯¦ôÝ¡ŸÜ¸õš†çÌèý槈Î˶þ‹ý¬¾÷œÙôÎ€ÕÆÅþ½ã¡öù‹“çÔ’˜ -ÿ²ï‹É·ÇôáøïÂ¢Ž’àÊ¿•Ï„ü§öóÝ‘®¢úñƒ¸›ñÕݡݶ±ºåšöí¹œ®ÿ‰îõ”ëíú¥šõñ䊺“Õ‘Ìçþɸ¾á”Ÿ» -ËŒ—æåÔ㋇Þýùè×êÓú’£Ã®›Íºé裃¾è¼âô§ÎÜòÛ·ûþÑÊÅ„¥îõŠæá¤º÷Û°ü³êé—ÄŠÊúŖ¦ëöæí¿©Ç¹ -ýäÚ¦ªïÜŸ”ü¢‹éñ‘șþïÞÑÂãíÂ꼤¦œóæ¥ãŽ™ƒ‹˜ÊÙÐü»ý‘ߤÇÈë͈¼î¦ÃéÄàþÕº¨íë‰ÚõÉߺ×äÚ¼øÍ -òš™ÅŸ­•ËÒÆÕ¬ž¨á‘ÔżºÚàà·“ú£üëˆÑï’侚ŒžÒ…ÑòΣ—ë“›¾’öß¡ëƒí²ÍЪ²Ì׊ùêµô -íÚ·þ«šÍæÍ®°½ûÜ·Ê¥Þ²«šúµ‹•Á÷ÚÚ“ø³Ï‰ã´šÍÕ¼Âׯ¿Ì‚­·´Òï„Ö¦áâɤ· –˜û½®ƒàð®ŒÒ™«þ徿õ -¸âðÙ›— Ù —ç–¹«ŒæíîµÕë’‡êðâ‡èåýÔ‹ýúÝ›Û÷Û ìß’£Ã«‰Ôœ“”Äèç¿¢¤ÆÃ‘˜í ºò“£³Ûú¬»ºÃÛ¹øÅõÞ -‰Ã¾ºðÛ­¥ÂÉ´ôñ±ÿèîËÍ㽡Ñåà¬éϳšÌ†ý«ñްڌߜº«àÛëöùõ³Â¸õÀª¬¿ìÓûÜÐ§Šš …éã¨ýôÝÏÜ -ª–‡ ÖôõšÿŽðЍ‘ªôô°þÕÂÍšÅךµ±æóæêê³æê֚篺õ±ýõÑý»Õ‘¥³Ÿ¹’¶þÉâôœ¢—ª´›µÚ±Ú¸Â§ºÃ -ÿјÙâ“Õ¢×зÑÎÙÿÆó·Éÿ ù²ò´šðÍ¿»ÁÿþÍÛ¶ïÚé«™Ùÿ¤ãó¿õúçïÁÛ¸Œœ–ó‡›Ñ¢¬†Ê’ôµõ÷À—ü€˜Â‹ê¶ -“óçÿî§ý´½äéØÃЂâÔ€¸À›ï¶Õˆ îš€æ»µ¼‘€ã¼¼Òâ°²ùªúåŒÜþÕËÌÞ͊΄öÕœíæ¥¨îå”Ãúø¿³Ô‹žÕÌÿ -õêÚ诎õì§Æƒ¼ÔêàÝÓæ££´äȪíÔ™úÜ㭇حûÿì³õʱ—úÒåä¤úø®úØ„àÀ±•ý»‹­ÇÈØ¯ô„—ÕîÖ¸ -‘³…–çÿÈܯøóµÉúá°î³ÿä§ñ¶ŽÁÒèÛåüûÛ¡ÂùòöÙˆé胴âýÇÅÄô¸Œò¶ÄˆÕ»­‹Éà©÷¸ä²Ã¹üóø¿Ê¸‰ -ûª´ºéô–߈ÎÙó´Ùôó´™áÚ•Óœõ™Áú´ÀÃõʈˆ·ÿý°¦þáÓüøïëÖÓý¾™íÃŒ›Ž¼ÉŒžî ××™˜ÆÝÊòÆ”²äÚê´Õ -ÅÙ÷õÝÀºã‹Ï¤ÓÎí¢”§Ù݈ùÞ³ËóÛ¡è¢Õä¸íÃýæ×ôɽǡ‘›ÒÅßÄ…éðƒýÚÄ­óÃß´îÏÙø–æáÉÈíœØ·¿± -™ø²Ô޹ˆÃ°ö—‘ñô¯ùÄ’¦¹Ñœë²úùœŒ©¼«“ƒÔ©³ÛÔéáêåáê¡ôоý†Ÿ¾’ͳ¬Ø›ºÎ…·ä¤¾ñˆŒÿ¹¡ƒÖÍÿ… -îºÌïꤟ¯€ÇÉÌÆÃ·¤Æ‡¥Æ¿ð™‘™­ì Áçûÿ¼Ö舩¹àà±ý’‘ƒÆçÍÏŸÙçæ¸œ‰§®Þ«éîèŸòš‚òÙÿúþ‹Å¼ -ÂŒìſđ¤÷ÇØôšŽíÒôéÏÿûÞÀ²¹è±¿ÇÿªÜš¾©âÉäŠù ÐÅÒÐåÒ„‰¥¼Ð°Òž»„îϯŒÛàç½¥ž¥­ë˜îÓü«î‹ -±áœ±ººÈÄÆÓÑ÷×£Ÿ©ÔÄèœÖ¸øÙ¶°óÛ­Ùö¬õý“ðçÆ½ƒßܧ“§äŠªû‡þêÌ £„—Ž¾Ø¬÷ù¨ˆþü ÎÔüÍû -‡…—ǔΨ½œµàâü¡—ˆ£ÇÞŒœõñ¿Áˆ¢ÈáÅ‹“†–ÄŒ¾’±¯àÊܾ×ÃýõÆïÔ«Óž¨ž¨ùâ¡»ºóˆ¥±ÑŸˆæÒ -ÿÍçÑ´§öÏæí±ôڸ䶿¥óƒüø™Í—þÓÿÌܺž¶‹ò¢ÿ¹êäþ°¹üγÞÛÐûµè¯óóÇü¾ö©‚“‰Ïžê󤓸¹£“û”„ -Їü™œðÕÐò³Ç¦¾õí„Χïõ¬Ð»ÿؘß㣥†ßàŠæŽ±þܾ˜½«Þ–õÑ•ÌèºôÍý¨§ÎºÑä°µåÍ›…žå¼ÛÀ·™öïˆ -– þùšâîôù™¥³Íù¥÷ÞÎÞó«ÃÅõÄ×·åï¨÷³‹¹å¾¶°ôÚæ¼¿Ýôà–‚óÅãæÇ—ÞŠŸö™ÓªÉ‰µ„¶¸óú“œá“›ˆèÿ… -Í÷ ­Å´•–ÞòÇô¯«¥·ã¹äæ‚ääÄÜÜ£éɳŒÉ¸º®ú¦ÙҺסǦ²…¤–Æ‡šŸ§®ÖÈÍ»¨™ß¡ä“Áà¿‘£™‘©¨ä‘ˆ² -—•ù®íë§³‚ˆï”ÃàÁè… ·ÙÙÙŠ›ó”äÖ© ã¬“Ù·ÌÅð¨Îè„–¡×‰‰ÓËÍ—óÆ·–à¯Í£çÝȤƛ¥æÞÛ¹„Ö °ú‚• -œ‘ŠÝŸ¹’¿¤“‡¸ŸéÕ· Æ¹îéä›ðýóëûÉ˪‹õ¥ˆ‚ø¨ÜÉèîè‘®àôšÁ¼€æ€ôï´šÁ¼ŸŠòÒ½èÓ´šÂÁ¼ƒ´šÁ¼ -¸‰æô¯ ëè´‚øºè´‚Äø“ÌèéЩ±«Æóœç ¨ÚŒÚüÉ™¶˜ùÓ᲎»Ÿû±ùñ¬·Ç¢º…ç÷ˆÍ¦¬Ö¶É¥ý… Ö¢£‡¿ô£Ý -öíÓÁÚμ‹Åµô®Æœì‰Šã£ûæ»û¯êëÁ‘Ä¥¼Þ®è눽×íµ˜âïݛߌ®¨ÕöòóÄù½œ±ÚÁèÔÁ†Þ¸–ðÝûÊ–ÚÔ·ØÅ™¥ -ï¬àà՛՞ܕÔÁŠè´¯ò°éÖèçÕ«êöȶÙÁÁ¼ýûïåŒÑÎÐþ‹¹ø©‡š·Ûû˜½ø¢ÀßžÁŒîåßàèëÁ¬ªØËôÔ÷çò·õ« -šíééÝŽËßÜ‘½î¯÷¿ÛÎÚ¥ÍÂÓçáæ©¸Á‡¤›ÝÍ‹®˜ªí³Á—†®¶¾›é™Ñ΄ŒœÿÏØÛŘÌ÷þ؀ƣ÷”ƒ³ºç£îá -¹¼Û—ì©Ôƒé£ÝýÉñÄñÑÇñæ¿ØÓÞùÊÝîä„ñ솮¬Œ›ìÈñèêÁ—Êֲ•ªíÏÖÇûµãžÍæ«ÖÚ¯ÙÜÝñ¶ÛÕü”ŽÛ¾Ï£ -í…íþ´ûd ®ÂŒ¶·™êÆÄƒÜò…ŠÆ£ˆÇƒ”Æ£ˆ·÷ê’ ˆ·¡øÿ´òš žùš±à´šÁ¼ž‘ãÜ·š ÞЂ³šçÆÄ -Ž‹èöºî„Á ¼ˆ´šÁ¼‰Áœ™ÃÆï¢ÛÑ÷¯ÁŸöË“¢À„ñÃÀÏË£Øç©œÜ©õšÿûö¾«¿Ñ©‰“¦Ç“À¤Ï‹©…ÆÛ˜ -Öõ×€¬ÕؼÑÈ¡°¢ØñǶ»°áòíÿ„’ºêôþËŽý”Ú‚«Šˆ•ÿäûŠ“¦¡÷Ͻ°º«£á‹ÂÛàűâñìßáÂäþ©‡Æ‡÷„Ó -ä苬¨Öü‘Ùí«Ì˜Ü¿õ½À讃£Ð–¬ØÑ¬ø£Ûו˜°¹ÿ¾šÀ“¦ïÊøžò‰“·¥œëÆÏ„É›’讋ӥ¦˜°¹óò‰õŠ“¼Š”Á -õÜ™‡×⼚ˆâñ Ñˆ­â͠шâͦð³Êºÿ›’©Æ‡öú«®Ýþ±øÂ“©Âóÿ÷Ðà›ãᣈ¾›ŸâçŒÏ¼À£Ý‚ðÈÏû¯ -œ¤®¿ß䕞üÇØâ¦ÌÛßµüõæÛõ¢§ïÌÇ–æ´”™–›èàÀç×àÇÿ«®ÔëËÄþ×§ëÉÉëÏœ¿ŒÆƒô÷Û›Åß™¬­è´û€£Ö -óèÁç±íìîùÚ¹ûã詌¡£úÎüìÁã£Ý‡°šÆ®Ð»···ù¨½‡Ží€ÆÉ‹ˆší¾Ð£ÆÁ‡»÷Û½”õ‚¿íǣŅÝüÊŽñ×æÑ -òèÑáÆ·´ÜÕñÐÐèÑÁ£¡Ý‡æôóóíÛ—à„ÉÕõ»îíÙ¥úè´è•˜ÿ›’–›ðæôÓÓƒó€üôŽŠ÷‰«­¯¡Ñ¢ƒÆ»¯Ì膆úç -éܪÿЛDž£ÅÇøÝ·šéí–°£ïÕ߬ôžÎÞœ¦øáµáÄºŽ½‹µœ‡–´ñÚýàÆ×ݬÜöžÎ™ŠÔ†Ó‹ˆõ‡‘¤çÀ£Å‡ö -Ο˜Ñµµ†çîéìÅÙ²¨”æ±ÞÅÞïǠѢÃîÔëÀÿÇ»‡ÌèÆêƒÎùÀºÇòÁš÷œ±×”«ÍÆ€Æ‹ŽŒ³šïÔæ…´ÁÏ»Èç - Ý”†ŸÔÄ™ÕÐèѱÞÍù¤©šíް£õòڕˈ‡Êö±‚–¯ÙÔ±ÞÿË¢¦“ Ñ¢¿ÃŒ–Úùýèÿä‘ÁŒÖð•àžŠš­º‚ë˺Ñè‘áÆó -ɪò§áì¥çü×ÿà Ñ¢ƒºÆ»Ì蟕À×¼”´ÚôðÄ™¦îƒµÚÉë˯œ÷оù䟚­®ÆÉ£ñæÌ­€£ÉÃ’·¹ÿ¹ãäÿÏû¨»ö -©îß²…–¤‘æ´´˜–›™â‹§èÓý¾öîþøÐ¡½–°‚õ  ÷†íó·ìð©ˆÄ¢Â®™³¾Ô‹”–ë—þÿÔ¨¯ƒÑЖӋþ˜Àž€ -­½³èÜü»Ž‘Ÿœ¨¢Ì蜊õ»ƒà‚ôðÂÿùà«ÁÿÆ£Îâ‚çÑÚˆâ͠шâ–͠шâͧ£ñºî„ñ–›˜ÑÜÿ‹ õ¥Ÿøžú­± -ÓØ„ÛØ ˆù›‚ºÿ‡ÉÛè¾ß‘á·áäðçÆ¥ŽÛÁûõ¦†¹ˆ«í³ØÛÔ×ëÛýÿßöéÉÞ³û·©®âò¦º«Šˆ‡ÌƒÜ¤ß—ŽÒ‡ÿ×î -•Éßá³’™ð­˜ýÜþ²ÄŠÄ«ø×›‚êþ -] -::^ [s0; Dialog for displaying progress of lengthy operations.] -:: [s0; [^topic`:`/`/CtrlLib`/src`/ProgressInd`$en`-us^ ProgressIndicator]] -::= [s0;= -@@image:1192&67 -€ƒ¾’€€€ƒîÿ€€€€ø¯œíÚ±‰Ã°œÆáÌäµÒ׆Œà…Ò‡²‰†·È‘ѼÀÀÖˆø‡Åð â¢ØÎ¥áÁ÷îøÍ¯¹Á‡±Ñòù¯¤É -Í’¤ÿùúÎ×÷Ë™äÍñ܇ŠíãþË€ŽÆÉŽçêøó¨ËóÓ¹Í጗²ö¿é‘€ý’ú•Ü©ÍìáÌ–²ö¿éþÀŸì¤÷̼㘓¥¬Ýï -¥º¿Ð§»ÉÅÒÆä©ë÷››îôÉÎòŠÏ锯ä©ë·÷›îô‰÷ª®Ð£¾óžùñï™è‘Õä󺉜™­›ˆ˜î¿’Çö«É¶¤É’¤ÿü -€‚⃱› -] -::^ [s0; Widget for displaying progress of lengthy operations.] -:: [s0; [^topic`:`/`/CtrlLib`/src`/Pusher`$en`-us^ Pusher]] -::= [s0;= ] -::^ [s0; Base class for `"push`" widgets like Button, Option etc.] -:: [s0; RichTextCtrl] -::= [s0;= -@@image:1061&278 -‚ƒ¹€±€€€ƒÏÿ€€€€øœíš½ê”ᆔ†÷ŠäïÀ™ö‚¬¶·ÈÚž«íì’βé¨ìÊëìç¼›ÈÈ’„Ò›‰ˆ Èà„‘ÄÂß -þýÉáøýÍÏûÎÎì²ïð°îüûýç»ïœ¸óæ¶ÕíûÊ„ˆ¡„ˆ¡Õ„‹±›½ž˜Ì¦·×—Á½ê¦÷×ÜúõêùŽúŒÝҮϸî臣¼Û -øÛ¯á”㣷ÀÁ½ê̪ñëëáÁ›Ôãì’¬ö¥©¬ ”Ä ìôÊèóãé²õÅóçɉßõ…¤²‚°ÐÄ¡„©—軦ÓÇÉÀÔ—³’ʨ¤Ý× -šª¬Õëç¾ôÿ’¨¢©Ÿ‹Å³Ó¸šÊˆŸ¢¨£¦Þ‘óðÒ¹ø«ë‚÷âܪ˜¸»óª·²ç±ìê¥ÂاƒôÃÚ™•舵ü†±¦ÎÔ¤üâã¯¿Šµ -¡Œèþ¸×÷—§£›¤²¼µÒã¡¡á ë¥±¼ÎÏÞ¡ŒÏÀô˜Á¢‚ïÁÙ  ªºŸüš€µÌÙñ«¼‡÷ÜжքŠé齚¤•á©•ŠÑÌ䭴– -·ïìÃͨо•¹Ô×ê¹¢¹åçðìþÞë®ß‰™ƒˆá먕ÊõÿºÂÜÔ„·¿µ²‘£ð­Þ¹ñªÃ÷‚žÉíäÞꤰÎþôëÆ¶“©øô…©ˆ -´“•ÂôÅ·úðŸÒˆ–¾©É´¶ŒŠóô£Ûž·šØÈ§«¾ÀÑ¡Ì×üëœË¯Ö®ÝÊªÊœÕÆ¡¡¬Ý’Éæ‰Á«™õ‹„ ä¥ý¦Ž°úÑ­›¼ö -øïÜû¶õÝè·óÙä“•¸µÞø£Âà埠”Ȳ­ú°§¶‰ÞÀ Ë•ÔêÆÖ†Ñ¨–£ÜÓ¨“’ºˆ¿Ÿ¨Ä­ÁÎݽ‡ëã‡å“¦ÁÒúÔ…öã -®ËÌ…¤•ÑÖà¦á¯³ã®’ÛðÈÛ¹— ·“ºß–ýÕ¤¥¡’ýÅÙÊÚª£€ÓÓ¡”‡ßœ—ïçëÍŸþôÓðÅþò˜æø’½Ø—„ˆ¡„ˆ¡ -¡„¼ø’ï´åÛõï¹Üï³üš´å†¼¸°–¾ÏáÞÚß·•ÊÂ˵’ÿÊÅÙÇÍïÉ¡ñóŽó³’Ë›µŒ±êé×Ú…©¬Ã“Ú¬Û»­¹Ôâ -퟈­ÌÂü˛դÿŠ¦Òœá¡øêûœŸòýžÎÿý½òÛÀ²ªÙçêÍò†Þƒ½ç³ÛŸ§§Ÿâ¹«›¿ÿ°óß÷¦÷ªò¦ëëóÚ‡•»œø¼› -†Ô–ÍÑÞ±¶”܇¥•¤ÒЮÈð‡”ÛÛÊó¥¶üøðåæ­úƒËŠ´ÁöÕ°Ïüþƒòðà½Ô”ϳ½§õ•óÀàœäÂÁ©”ÌÐûžÒí϶÷àí -µ¤©´•Òþ°øÒ©—«ÿàé‰ü…´“붃ýøú“™÷¾¾ñظ¾³Ôﺉª³Ô’åÖº©Ë¥êÁ€ÖЪô”ˆÚ¯ôª…þ¹Ó›÷âÕüµŽÒ -±éëï†îßÀ¢ªÁ½ÌÙûï•æ’è–€šÆ×®¸Ôê§ì§¶·À—™ÈŠø¬·Àªà³Êøþ倗Âù“°ý¬×‰òœÅ”è•€ú¯ìë‰ŽŽºñÓ¥½ -êÌ«€ä÷•Û²Œ´ÁëâÓ¿’ýÄÁ„ÉÆ‡ç©Øó‘¦ÏÍ éêøÜ‚àâú‘ʹö—ÏdzùÙ¶ï­˜ý£¯åô¸«ï‹€•ÒÆ•¿ªîêÂäòÞ -泺õ—±Çè®Ò©ò±ÌŒÂ„²æÉºÂˆ¡Ï„¸×üݪƒ˜Ñ -] -::^ [s0; RichTextView derived class altered to display GUI texts.] -:: [s0; RichTextView] -::= [s0;= -@@image:1118&549 -ŠƒÂà€€€‚ ÿ€€€€ø×œí‰˜•Õ™÷«›™““ÍͤóÌ“Äü¦Ÿ¾³šÇÆŒšÄ´èŒöº²ˆ›¢¬²ËæÓìö·³²ƒ‹»Ø²´ -ž  ²ƒ¸  ‰ŒËÔöýéúÃ޷šúï–½Ô÷èƒõ•Õã§ÞºÕõûÖß½Õÿßó¾ý½œûêœ÷¼çý©ÿ×½§êÞÆ×¦¬ý…†ƒÁàžÌ…€€ -…à–¨¨€€ð†Ê‹Ž»µ•ª¸Š€€ßÃ…ñûÁêíãßùˆžøÿÎŽ²²áÌÐÑÅ„‹Âªô”’€®¸ÀíØëۡ褱Äò—Œä±Ÿç„·ªÎ”óಠ-»¡†ùع„²¦ËËί­¯Å—©¯àÇù±‰èÕѳÃú•ê‰ËÛåØÅ©Ö¿ªÿ«ôæÎ…¤ßچ̇©ä¿ ô Ø¹¢®ó´Ñ°ò¨ÐµçŠƒ£ëÑ -åÕÓ¼˜òŒžî‰‰°ê¦ÝñÀªáµŒæ¾´Ø¹·Š•˜Ž…«²´‡¯¹Äç¨ÂÁ·¤Ì£ÔÁŒ¦í¿ÜÀâÔ‘Ý粑üÀüÿ©íûîÀᥣßÅÕ» -·ÓÍѬÐÞˆÞæ£Â•àëÙÍÝÛ¶‡äÚó’ŒÁæ¬¬ÎæšÂíÔž̺½×ˆ®Û¥Ÿ…®è¡°«§ƒ«¼µ¤—©­Õùùñ–ì’Ëþ¤ò´’œ -뿲‘ø‡©²¢“Äöµ¹í€ß±í™™‡¯ƒ—Œ†•Õ½¨‡‰ð¥¹¶Û‰¶±ˆûÈ´á°»¬Ölj¥«ÌŒÀø—îÅØ‚¨Ýßá‡íãȶ‡éÛÓÇå -Õéö­²…Ž…šî……¬æË²Ö¼§Ý¡Ê›êðºÝï®–°§¿òó軳Ö鱉ûäš®¢²¬±õï‘ÞÚøõ™áȹ¢·èÍÕÅúŒÂÁ¾‰ú¨¤û -ªâëÍ¿¬é³ÇѶ¿ôóÎÏìóÂ…¬Ø–›—ŸåÃéÉ·øá»Ž’íÊç¿»òÖõ͸´»÷èåߨª„ª“‰ëôªÚ娙“ÐîúÌ΀«¨¹¡â¦ -‹ô…­ÒǪö¡¿´Üô…ö„¦óˆž„ǹŒÖþœŽ€‘•îÑžˆŠîבžÃÛ±’œ£âÿ–éòÂ€Š·•°®–‰»å€À§Œ½µ»‘¡ÆæöÅÇâ -ìÍÅ·ì©à¦€É¨·­¿¼ªŒšª„ó®Ô˜É«Ñµ—·—–†¼¯­æß¦ž‰Ãª’ž¾ôß«ˆ“Åòä´í­Å꬈œÛó»ÇÐ÷ÛÀ¬êËÙ–·‡¡³Ë -¸Ö“¡ì¦»ñ­ŒÏ¶õ«‘µ°­éô½¹ØÊ†’·ŠÕØÄ¯«Ÿ†§Öýþò¦¢Ÿíή禉§¡Í¬áºÔ”„›§§“€‹Ó¦„çÙ¼ãáá…È -¼˜‡Šæé䆳›¾‡ªŠÎ¢„Æ“ÐŇ‹ó¸šˆ¯ÅüÄȸ誺 ù×®³¦˜¼‡¡™–ƒ•…€°€³º•͡ઊ€€æ´ûžÅ·ïͤ­¼ -Ã÷‹‚€Àô¡Þ½»ôÍ“´ç…ç٥߰ýôô¥´Ÿ¿¸ö¤ÆìÎÆ…ÂíÊ⺰±Á¬ï«ªñðÔèØ¢¥´Õð†ãš¶úóÝÑ­”ΦО£ç¢É -õ®¶…ßâÄò§ÙÑð¼Çï‹ÈáÖÑ×ÀÅ­òªúµ¦‘©¢ô‘žƒ¤­¢÷¡½Ó©¢¾Ó¥É»Ä­êæÓÓÏêÔµßݦܯ¯Ó–­·«÷À訌ÁÈ· -þŤåöí¬ôíìꇑˆ¹Óê„å…á瘛©Æ»¥Ì½å…ƒÂׂ¢ú®œÃÕ´¸èÖ±˜‡Åܠ˸¬Öý‘œ´®óäÖýÕŸ¡¥»èÛËØ´ -ñýÒ¸Äæ¡à¶„ìûÅ…ÃˈçÚÍŸ¾íž’á«â²­Ëžä¢æÍõÛô˜Ä…ä»Ë·äˆ´ž«ˆ©“úé“ߘî¼È”†·÷ËéÔô•”ÇѹބΗ -Öžãèµ®àäêÙåÊžï«æ¶´˜ª–•ç©É¯¯ËüºûæÔ¹òÜåÊóùÕ•…Õ©•¥µÕåµµ¶çëëªÎ××ð߸ßûñâùÊË—®òÚ‘« -·¢ªèß›—³“È‘‡Âš¼úü°Ãˆ˜°ûæé¿†ï†Ú°Ýͯ­†ÚöœÚåεÉîÛõñȶŒú´öÅ×ð”ÞÅ·‘òщ§ËªÍ÷ÝæÒìã¶ -¨·¤ìÚꈤ‚׋¹Á²±’»ŽÆÀØß½ÓÑúäí³µ…¯å½Ø®ÿ©žœ…¤ô¬´Üû’áË·å¬Õ̦¿ô¯íÏ£²òæôÐõ…厺͑Œ -¹Ê¶Îº–÷ÅÉè´¼™¡ŠƒƒŠª¦ÂòšòÏ‚ª¢ÂÿºªÅôØªŠ—•ч¼ª¨úÌÚÜÝʕӟÎÚú±Õóš§™ŠŽÎÉë³ÀÝ¿ˆùåª -ÑÓ‘Çѹބ™’±»Ê‘Ü­ÊÖÝ·„§ÙË›é‰ìÕ¢š¸¨•Õõ裭·Äò–ÙØ†â½ÂœÂ›ÕäÚ„Ååð©™’Ñ¥ØÐ‹ö¥ÓÙÁÉ¥ª¼Ê÷™ -Ä®éÕ©óŸ…™™ÂŽú«ÓçÞܺ°€ÉÉ¥¢Çض†º¹ÌâØ¬ŽÊŽ—Œ°òÉÕ¢¹¸™æÚÖÁ؆æŠÕ×ÀðÔ´°â³–ÔÂÛå䦸€¡§’Ç -˜°òâƒŠÆ”ÅŠŽ¿ã‰·Ðˆ¡ª–áÄņ•…€€¯ÀÅ€À‹ÐˆÑ€€ð‚ԔĀ€¼°•¥úï„ðô‰´Õ¤íîÂòí¤ïœŸ¢Ó÷ž„ -«¶‰ºê¤¡Ò¢Ü¶öÓ¡Ä™ãÙàå˜žßÆÄ߉èÒöªêÎÕ¨üø²ÒÝÝÛáץƯÞÂÿ†Å¾˜øê´’ÊÁÅñõ„ÉÅ…·ÎòÚÝÌËßË¡ -ð¿ªÿŸ¯ù¨³¾º¡ªÂ‰âÿ¶æÞуÀ£ôåîÔøÔŸªô°Øú¶ð„¯ìÑØŠâÂႌ£éˆÀ骹¯ãÄ粺‡˜®óàÌÝ–¾¤ûäî -Ùšðºè©¤ÚË’É‘†‘΂ÿ¤¢ªÅŒ«º‰™•–£Ý¹Ý¯Âº´·Â³Ë±Æä¼‘•‰Õ¦åú«ß£§ž±Ëœª¶ÈþιŠÓ¾Ë«”‘‰ÀÝŽê -ì·Üî΂¢ŠãíÔ­Ú•·ê×ò´„£œžÎ‚­¢†´¡ÒЄ«âéêØÕ†Á¬ðƒ“«•õìÛ£«Ìáöÿ馩„°âÓæ€äªÊ´’Δ·äÒ“¤ -¤¼ªÙ©¯ã£ŒÁØŠ°ÝÇ᳦™˜±¼ôˆßáÝ¡ÿú®‹¬ÒôßíǸàì´Ù•µ—±ÔºÄŸ¾’áØ…®ð«Ìǽ¢ìΊ™ø˜ÀôÇìÏÌ«· -‡¶­Óýñ±ÁŠÖùħ»¾›ÄŒ“­ÈÄ¥ð™Ø˜ÔÔ쟔¨Ï÷β⸼éŠßÒ¬’ÓøïûÂÙž¤ôÔ˶íÕ ¤‰ÿ—¤Ïñ÷ªá¡ÒæØÂ¯ -Û¢’§ ÕÌÉŒ¬¤Éñ‘¶ªô£îîæÍкÚðÍúã蔄¤Û”™Šá•á§£œÎ‚ö‹Ú¡Ž¦‚Ш½¶«â¬§¦ÏеÝêÕ‰è³ÙÍÁÚõѪ‡ -Óè¯°ÇØ÷«€“Êæà•íÞÇÀܨ•·ïŠ“äîµø™Ÿ”¢þù¹’Ÿ®ŸÃ„šƒ±šŸ¡¢ÓÖíÙµ¨‚ŒÛÐÅæ¡Ù¥åØ…š¶´ßͯËËί­¯ -Š—©¯àǃ›üëõœðþ’ãà˯‚±ôÉÇ¤Ï¤Çø–­è¿¤üùûþÒíûŠ·îî­Úº·ðËž«‚Ïöçÿ¶»¾ïó®ÜÍ»ò—¶ïÍŒö¯© -¼ó‚°œÂÙ…ÔÅÇØš¢¢Ðâü¢¹¶¨‚¥©¢“Äöµé뢙™‡¯—¦Œ®Š‚€€‹‡¸Š²„ÓÑá˜Íůè­ÔД€€ôèÕ”ÞÝ‹ÞÝïë³ -ðÁÅ€ÀŠ€êÝ‹Ú혆ÜôíˆËû‰ÞÿŸõˆ¼«”ÞìÔÏèè½ÜÆèšÞù˜ó¡ôëïþ·ÔÍã¬óï„ì„ÚÔþ®Ž¯î ÃËèÕ´„´ -ð•Ï»ÑÒøÖĉ”ÈŒ†­Ò®Å•“Σ«›ÝÙ•¯Šæþ«¬¨ôÎÉ·È»¡Û”Žû•ð¨áÓÜ¢¤°°«Ñ²·¢Åì‘Ý®±¾ÂÍØÔ‹õÔ— -¥ðæöÀŒ‚íºáóѺ§¶í×É­ÌÀ†·¥ÄØ™«ºê‘çᜨ땛¹«–—áñȤݩ‹ª¦œÖ—üØéžáÃäŠÓ‘¶åìÝѹ„²¡’‰óà -ï¥˓ÉÍ”¤ÚµêԲƯ¶­‹™ªã¸ðÀ—––‘…¯®ß»âìݰڈ«ÚÆ£Ù»ó“¡œ–µï„øÚÔüÒ˵ž‹ÛÌóšˆÒÞÿ„ÁŠ -¨«ŠÛ”ɘûèÍ´ªÓßÛ®ÿÉ”´ê²ÕÀŽÚ¹•œ”úÎ¥Íά¢´ÇÀΔ¶ê¯äõÉô—öËØ´¤†‡É•£¬æµýþ²ñÈÌ»¹öõ§Ãâöé -ئõ­ªšÖ…í£© §ÆØ®ÅÌ¢§Ï´óÌÑ´“Çç‡äð«ò£¤Ù—¢ÝÄù̻޸åé„癃êÔ׎ä’õšþÝÀ»ŠÊŸÅ -õòÄÚÝ÷­Ç¢ªõ°Š§È뢒®ÜÈ£ùÌÊö¤¢Âõ•ܱޤ•žŠÐÉÁ¤„ÕÔÆƒ½£Ä°÷äúêÕ–ÕØùâì镦³€Î¤«ºšÛ -ƒ·’ÍøŸ–ú µº¢àÏ€’‹‰¨£œê™Ñ¥îµ‘†Úæð…฻¬œÐÀ•åä„ÁØÒ¯«ž‰ÓÖþ©‰ í«‹ƒô±£ÖõÍ‘šÎ¼˜ûâúÆÌ -Ïžö”èËØ¸ñâÎÍþ…¹ŽÄÌô˜»šµóÑá”ÓóžáÂᑞò‡öðí¤Ì¤ÙÕ¦‡ð«ðؾ»šñ˜ï£‰ÕÐ…Ç­‰Æˆ¸ŒƒŠá€¦Â˜ -ìÖÚÀ¾™Ï–’è‘ÐŇ÷ïÇçÓ˰þ‡Ø€‚˘—úÀ£¾¥™€€ÂÌÁÀþ±„€€Â ŒÔ”€€¼€€•…€€¯ÀŦ¹Øì€€¸ƒÎªÊŠ‚€Ü -Б°•µß¶¬çåÓ™Ö·ñډކ̔„€´Ž…‚§¢æ½”š¾Ýàû˜ƒÝŽËØŠëڀ嚞ÁÓÑ«´íáòÑêŠÓœŒé«˜Ê‰Ý€ï€€ÑÀÓÐ -úÑÛÌí¥üµ²¨áŠ€Ð¤ˆûžŠ’ï艫¨ÊÂÅ­üâð½€À¢Šª‹Ö»ËªÈ¼Õù²êÊ»²û¨€„˜ÀªèƒðÚ‚€Ä¬ÐžÑ§þ±‹„€ -ÁГ°•…€€€°ƒ•…€€¯ÀÅ€À‹ÐˆÑ€€ð‚Ô”„€€¼€•…€À€¯ÀÅ€À ‹ÐÑ€€ð‚Ô”€€¼€•€…€€¯ÀÅ‚€À‹ÐÑ€€ -Áð‚Ô”€€¼€€•…€€¯ÀˆÅ€À‹ÐÑ„€€ð‚Ô”€Â€¼’•¥¾ÿþÝö›áÃð÷íñ®ÿ¬ÓüÍûÊÞðû“—ôï×ÏŽ’Ñ»›ÏÇÅšµ -ϳÂßí£¶®ºÜø­„„—üʃ™ïªÊͬù™Ó¡Œ§ÄŒÔÔ‹ÁÕÑ–ö«±‚‰çÃõˆí«ÚˆíÜ»úúšÓ¶ß×°Œõ¯Í—«ŸÂŸÝ¤‹éÿ -ôíÝÑáÐҪ颕áÙ¬¿œêŽ€ˆ‡˜ðÝ¡‡á˜˜ƒ¶ôÏ¢õ™ñ·øÊ‹ßÊô—îݵü¿ˆ®©¦—ùÒ—·Ô•–¤ †ð®Ùµ°úœˆ×¶Î -ѵ¥¼Ä´¥Ó¡÷ˆ¡âÕ”ÞÒÅæÌâé·«ò³£Ù¨±Äã­ÜÚÕ¡ÜÚÜ–“¶è¢‹„¾“ÉȉžºˆÐÉßÌþ„é‡ï¶ý¢»ÆÌ¸üÌ·å‹ÙÆã -òâöÝτӶÔ죱íËö¢Åý¢„ªÊô²¾¤¡¬¯üöþٕѺռ̉ýӽЯî«øÍÿåÝÒ’Áû¹ÔÓÑ€û¹™å‡ÄºÑÀÎ‹ÙžÜ -¹¶ŽíÛ’ìšî±ï®»É»•µ©®™£ì °èÇæÀ„õ­ÚŽ¥¼Ùö½’ˆ“•Š’Ý£ûížµþ®«»¸»’ˆÿôÔôé«ê¹õÎϯùîªÈ®Þ×Îä‡ -µÄÑÀ΋Ù·¥ä¼ûÙ§Ö޳´Û™‹ê’¹’ÇŸˆ¼çœÊþ⑪½ú«ÿ¶ìÝö¤¢ÎפŒí­º¢íÔ²×ʸ•ž¯Â”Þ»ãöìû -æ¸ÖÑáÅ™œÞľŠÊ¯Ú³ÉøíÛ‘ŸÖÅ™âæ˜ÜÄèþô¥¹‹Ä¶¡ÐÈ ¤ûôú´Â̫Æ엤õÞéÕ–¢É¬™¢Â«ªƒ¶ÚõÇØÒ -ñØ—óÆ’ÂæÁ Ûµø¦Ç†Ä脞Ïâ°ñ…½µ×¡Óúé—Ö‰«ÞÓƒ•ãñ؆ý–ÔØ¢ðˆä¢‘—‰Ò¸†Öõ‘Í‘ºí˪à¶óÚÊ›Ý÷È -¤€÷݃€€—Ó ¢€€à…¨€¨€€øªŠ˜€€Þ€Š‚€Í€— ¢€€àò…ßÕÔÑᢆî¨Â€€€÷ÖÄ‚ŠŠÓÎëä‚€€¯Ä¬ŠÒÚÝû¬¼ç˜ -®¨ÿï³€€€¸¥²ÕÔ²Ó·¨Â²ªÅÓÀ쪮è€ÞɈ„•¥¯»­¡žÖÓÿ¨ŒÖŠ•éçÍð¹ŠÒ€ðȤ¨¨¦É«¨Õáú¨”“€ª¢Ü -ÞÅé·á¶×›Óò®€€À‘ÿ©¢ªÜ–•´ªÚé§áŠŽ˜†€€¬ðÝÅÉĒ€òŽ‚¯¢ØÅ‚€„´ª×Ñ€€ÌèÔ ¢€€à‚…¨¨€€ø -ઊ€€Þ€Š´‚€€— ¢€Š€à…¨¨€€€øªŠ€€ÞӀЂ€€— ©¢€€à…¨¨€€€øªŠ€Ì€Þ€Š‚€€æ— ¢€€à…º€«èêÖ³ -­ü·¥×¥÷«ÿÅüå¯ý‡×ÿû¨Úÿ¾Èªû¤ú›œ“›ìÕú›Çë×ß°ú¼Œ¶œ›ß…ÙÛìö­‚ÉØå“ÿ®þú„úë‡ù×Ý¿´ö—ñ -Þµ¿Œ¯¾®¾Ÿæßâªþõà¡å¯†ÔÝûòúÕ³§÷Þõ·ÊÎÃ×û­¢àÒ„ØÅÛŒÌÜÒÞÈŠíÖøäÏýÊþ¼¨òˆ§Ãë®™Ö÷·íˆºë‡×Ý -þ³¼öš¡µ×“Ä×Þ³¨††Š‹‘Õÿ´Ž¦€éÕ¿™Øùõ©ßó×÷©ÿñòŸ÷«åöŸ£—НêÒô¦ÕÇ‚ÿÇûô©ÿéýäÁ¾‡üÖ‘© -¦‚¬¢¿ï³ÇÎùê¨Ò¾Ãé·œ«ôª‰éÓÖ–óò™¥Ï¹«Ò»ÌéÙªôè«Õº—¨ŠÛ•Ž°ÚŠš¬¸†³Øº–ûÞÐöüŒÊ’ç§Õ¾ýæå -éÛ·ªŸü½²çõÔÊÖÓÎÝæ¹¢ä罊ôŽÇŸÒŽÎ¾÷ïç°âŸõÍ¿¬ÿèÖ ©û“ñÆý¹òÌŽ‘ƒÉÛǦî¹Öúó𑟼ÿûÊ××µØ£Ü -û½ãßîÝì·ÁŠÈ‘à•ÕîÁûÒéõØéŸÕ©ôÎÓº—ÅÙô¨ÖÚïÑžƒß£ô­Òº—˜ªŠ”öùʽ»Ü˜œåÀìùì¹æ§›”ýççÀüÁ‹Î½ -­óñý›ëê§ã¬¨ËÚÚ—øÚ·¸¥¶Ïô»Êç¦äµšØé¬¿ºæÝÝÑïñ¹­Æ•ÍžóÍþª¥ç–Õ¿Ù–²¡ìΗ˜Òé‰ÅÓ‡ßçé󿓦 -·ÜòÔ¾å·Ûϔ߬òÛŤþˆ²ŠÞóÒ¶ªíç¶È»Øßé̇­ûÍöîÛñ×í»ÇÝþë—ç¨í¨Î¨¯æßÝ©¯ÿÖ¸¢»‡–êµ»¬§áµŸ -ÎöÊ¿¡÷Á˜¸›õéÏåÂäçí٦孒ŠË‡¥ÖÞÜ׸ïÖí§Éµíö’«ÿ¶¢úü¡ÕÿÝ¿ü©÷äìäα£æï­­ÿïûùóßÜØûÕù -ý÷÷œŸ²²®îÍâ¹§’³“Ç—ŸÝ´çÍÉÏ›Ãή̩Ⱦºÿà³Åãçú—¼µ²»÷Ùÿœ›Ö¹Å¯Â“Êíߨ·­éñÛŤˆ²ŠóÞ»Çé•ùë -ñ—öÍÛñÁ»Ñï¾»äÈ­©ý©Š³¶½ïÿ‰ùóë•—‹ž´Ÿ×ÔíòÉLJœº¦Ýɫֹ¾×ÁýÃò”§³Â«Í©·®ê¸åôšÌ›“þ‹¤¬ -šÔöÜ“³–ɨ¥ƒÓªÞžÙñÛùòíÛÄšž‡â«îîßõ¾ûߪÛû”¿Ê½æÔò‡•ìËèôõõßžº¼ø ãâÞ“—¾÷ž¸¸öï—üÞú£âé¤Ë -žªúá›Ë‹“ ûÔîÞݹíÎÃñäÁ•Ÿ¿ž×þî´ì֩ůô¿å¶¯”›¢ÀºçÔà«èŸŽ¼«Ïž¾§ï×åó×¼½­õ¡­öý®çªúÐ -×ûæ¿è·ÞéöД´¸§Óèú½×½³ç¶¾ÙÏάúøä£Ö½Ãòº¿Õ·ðÇáù×õ¬œè½æôƒ£óÃÛ¿Õ¶÷ÃÑê½ýÏ´™Ÿÿ¯ä¸¼«»æ« -©íŠîê×Üê¦ÂÑ“ãóþ°×¬èω…¬ÿ¹·ÊŸ˜Ýø£ïð‚æŒªßøÃ Ó¬Ø‹—äÒž³òÚ¦·º®ÇÁïß¹Éî³æÔï†Ü—½š”תù -’ÔÏÙů¯¹¼ùÿßý÷ÄçÁÿþ঻ôß§Èâû“ŠÚÍßÊùóÈ‚¿ß¼ÜÖÍý‹™“˜¬â­ÅòöÙïÙÕ§Ôü¾¿¾¦åèêÌ¿Ž®¾ýÀõ -Ô­ý«ïéý¶Ïí˜ÓÉ««Ù¿Ñ‰ïÕÏÙÐØ¿âÁÝÀùµÄÝçÔŽßÒßï銶ɧ’¦×œÛ¸¹µà“ðó¥ïŒàªžÚ³û‹Ê—ΗƵÎìóË -ûñ¡¯¶è“­ÏÜñòÿ¿ô´ÛŤˆ²Š¾Ó®¼Ûغá‹åË–üïòÒ‹éÝÛøò£»¢ý°÷ı؎¹±Ï¥ãÍÏüüÄšÒß¡¼Å¸ÊÉ‹ -ø³ÛÞûêÒÃâ…«Žšûç÷¸éé³–·˜±øðÒÂÓÜã—¤šùøÁÝõé“çþû۞ǔŽçÙÕùñ©ÙãÒŽ¦íÚ‘»½õ‹ËŸ´ÿèòÊ -÷Ú†íùÌÆÌ©Úÿ××ݬØßòêÚɋΌñ™û¤ñá©ÈïœÛ¾¾íÃûç¹ÉóŽýŸâç¾ýöâþÁä㥳–ŸêôÏÚ‘¯Ÿá‡æ¾Øœ»þÞÁ -޹ˎ¥®É›Û¾è óÙ±é´ÐÌÛÌæÇïÀ«×Þ¬×Þ€¬ÉØû³ÍÊÚ½¼ÖÙù­ê޹“ë†§ÔØ’Ô×éæíýÉùµ·ª¹¡ï·¹–ÉùÉ«ê -«ÙÑÑ©õ¯®Ù®û¢©æ¯£ù«ÿ»¼æ…Ù–õϾÙÕ²©Î·ùýšãß÷ÎíõØÉ”Á¾ÕŸ¯¯Ý÷ſզԒ¸Çϳµ¼¡­î©–ÄƒŠ”¿œÔþ -Æë›ßª¢ÅêÕô¯ÙÊ»’äûÞÙ¹ýþ¢ê‘ïͺãô–ÌÇúÌꙿäýÎ߯öª½éÞûòÜâÁ䩅ͼ÷ä£Ô³ã—æüõרÉΩµ›· -ÊæÇÏÚ½úÞƒ‰ùë²ç¬¹¯úêü¬‰Ëò·ãæœÞµ­à÷þÕù¸ÏÒµæ¡Éõ¬¶¼³÷¿Êš´äï¿Ëÿ¦áàŸ ·ó毼±ŽÿÕÉø©ûÿ -ÃúôÑÖ¬ùÝùåŸäÎÞø¦ìÊ‚£“—äή٘½üÓÖÁø÷óÛ¦æ÷ù˜÷öÍ–œ±íðþÉÄÛÅ—½ÿñöÜåÇæ¯¹´žüæ±×—å± -•Ÿ­‡žŒù®¿—ùñߺÀ¤½¬óÒ©¶ÉÚÙ‹‰õÏÏ­•í³£æÃ·—ðŽäÝÜþõ…Ŷ³ëîœÒûѯ¯×¼šÔ£¼æ‚»šŸÒ¯ûÖÚúá©õ -­¯¬ªëº¿¾¯þ½ó­ß¯úà´±¿ùåýúÑÄٹ￷ÌþÉÕֵ坿¨þäéå’è‰ù¯Üö²ÿÜ“­âË”¿¥¸©÷üí·ŠÈ°‘蕽­´¯ -“ÿ÷¾Ù§ÿ·úò„ùúïð™°äÕË„ŽïŒÏ‹ð©¦ßÅÛ“ë۬ϬüŸÑé÷á¨ý¤¡óæçÞ™¿žñ¾Ç¿ô܇†¼ëÎØáó“Ï¿“ -žøìÁ‘§ž›œÛø÷àœ¶ÓšÊžÿíøµ¯þ•Åô¾ð›„›‹¬¼³–ÉÙ²ÿŠÏçù·¼¼ýç«Õ÷“ɸÿØæÝƒ™Óã»—±âãè¶ÞÚ±©«Õ -ä«ÿ¿«®û±Í±…§æ¿žï˜Å¼µšöÄèòÞ£‰™÷üŒ¹ýĸ‚Çå’γÃýÞÊòȘùøÐÄ…ƒæžüáêžý÷™Ó½†ù‚Å…©½¯¨½ -à®¶©ûèêÅ˶“êÛ¤×üÛÑûΧõ££Þ¯ûðâí¯ùãêþÒýÜÃ剅ɛ®ñ£æƒæÖŒø»¶ü÷Êí‹ó꘿Ìþ×Њ‡Çµç³Ý›ðæ -ÑÖÓ÷”¿¾¤§ðÕ®ùÝî­æ™ÖæÌÒûܘçþó¢÷£­‘†Õ¨žÒþÓ¿Óï•‘¢àÞªúÂÙ«ûœŸ¹¡ÿéÛ‡œìùääÞÇÆìÏýÕ°üë‡× -¼´›ôظÿÿÄö¿Ô¬ÛÙ¼æ¯æÄöªîóöÒ™æ±ýÿ³Ñ¬Ëɳޅ‹±½êšõ­ëõÖ¡¿Ù·òØÓî箟êÑÙ‰¬Ã®Ëç宨—ë¨ßßÁ -éò¯§úÞˆíüÙ™Û³êò߉¾—Ù™î‹ëÚúŒ¿ðÏÏìÛŽíÓߌ¹é´ÔôÅÛ‡¼«˜õûÖ±œæÝ–ËÙ¡ßô©ù¨øÔÖ¯±ßõ®ýõ»›ú¤ß -§ñÙï’ïÎÏý뇓²˜¾—àâÞîÚöï¤ÀËÏμ÷óǵìÛ»æßÚ­§û×ÝÏß×­Ë÷Úι׽›Ÿõø˜¼þ«þúðôæýÑ伨þ˯¦¦Ì» -ÇÐúöý­ï݇×êÖƒ­ï¾Ïò·ë޼øíýþû¯ÚÙç©»ûâ«•¿ä¨À÷ÃÅýÆéž÷¥´Í×ÚåÇټؔÛõ̳Íîçÿ©çųàÞÕ̳ã˜õ -§¬ŽéÖóÒ”õÌׯ³Žåï±íòØßÙò«ÊãŸÌ‹ý¹öô̧³˜í•óóÿ£…¨µ°®ÕÊç¦åÜ¿ú©êŽ¡å¿ŽÎûÛ¨ÜþæŒÊûë¨ -Ëü‡’òŸš™÷÷Ûø³×ö¨µ´¼úÊéµÝÛÎýñÀ©ÞÃ˾ê·èÓæý°‡ý² î£¼ƒ·õë¿©í¡ß½×½Ñ¬¼¯¥üþÛ¿ÕêÄŠ€«èìý -é·õÉïžÿ÷¬ù“͇§ø¿°²ã‘™Ð¤ä·¿â§‹š¸Õü¸Œ˜–¢›–Ýü¨âÌΆçݶø·Ì惲šÇé¿–Þü•Œæƒ§Ò›÷¿ùÇË -Ù™¿ûä¸òçŒ×þ«ˆ”֋ѫڤ÷ù½ÖýÃö£—íÇýÑ«¶ý蕜€«ö”æçÇàݰ°ÛøÅ§ïžøáò»þ㫈”ÖÑ«²ŸÉÈܖɺ -ü˜þËÍ޿곃ùË–ÍŒØä»ö䛶鑜Ÿ§¬éØ×ßÐüÜÜðåŒÚå°£³ù¨¨ÿÿø¨¢éÇ¿œýýÊØ•Ÿ¬“·²÷Òæ°£œŠ´¶¥§à -¡Óí›§ŒÖ˜•¶ôɃ­Ṵ̈ïÙ»‹Ê‹–³ ¢‘…Áů÷îÚ¶áíÒ‡ö× ø™é»“™…ÜÅÙÒ±¥‡ÔÞ€Ëìëú ìÃòÿ©®ÒªáªªŒ“€ -ŽÆ¥¼üÌééÈñÑážæ™éÂÇßÿï±Û“¾Ðш ¢ÌÌÂç͘ä–ÒçíÛÖ±‹³Š¨îï Ü£¢ƒ¸ªŠüäìÙ³¯Åʹ¹éÌþ¼™±ÄÑû -¡–¯Û€•´ôŒªºôñìñÍã’˜Šò¹å—ŠÊÓ¬ŸÉ«„³­ŸçŽŸºÕ€¥øÅ¬ÖžÊå²ÃÌ›³ž¹ÏòØÂ¬¢ÌÚ§§Í›¶îÝüºöÙÉÒÉÉ -…ɬÍòÒÓÓÙšªŠš¬ÌÀÅËËòžØ…¹âùÒæ¬ñ‹ìÈΨ脢øÔѦ‰ìʓ祵ëÒ®ƒüÿŠ”å÷éÕ…ñ«¥Ëðµäù¬Ü³™±Ì­Œ -â¯ÆÝ‰Õ”«º¥“Í®¨ìå¨ÜÜœÓÒ¨¨†èÊœ»ÛÖÖý’óäð®õë¼ÖïÚôáñã›ûŸ…ŠÆ¢œ†•ÕÞ¹›Ôƒ‘§Ù¦ÏóÉÄäÒ©ÉèÆÚ -üÎÞ——á—©¦ÚŽðÓ‚®Îíì’”é§û˲ä“ë©‡å°ŽÅ…Š‚¦‹Óõѳ¥¹Å…é—™é‡ÎŸÊ«Ò«É¾ñô»“ñŠžÔþ·Ýï‚ȥ躪ªé -¤Ü³™°úÙòÎâêôñÇëÙÙ¸ÙÙÚ‰£Ì…ˆ‚íÕ•Å”ÐÑà—……¹ß™éûÓŽý§ÛÙ¾ÝÛŒªÚÿý€ò»ÏýŽÄÔŠ¨èãØÞçéƒé釨õ -ÊÞÄš›å¶ãÔÐÑà‹›¿ýîøÑ¹‹çϹ֬åÞôÕ«—ÁÅ£ŸÕ‘”©›ÌȶҶݬȨ¨ð…íÛ¶½çâÿïžï ¢‘†ªš­†•… -ѾÐÐÐå¢Á¸¨ªšéøÿ¨¢Ùé»ç§ÄÌÛ¾ìÁäÚ›œÙïìüæ«ûÞу¿€Šª´Ðщ뼩ÓԦ쌶ìÙ×òᇟ®ß¿ÆÖ³Ä×Çý´ -˜é•ö—€ßÀÆÅÕèÔÑþóʼ¿óÉ úæ‡À½¾“ªÔʧ¶Îøß­¡‚¿¤ÿ™ÚêëŠë‹ŠóóÎçªè¶àþ쨨𑨨š­ªëú×ôÓ ü -Íþ¥žà÷ûòû›ðç͘¤Ý¾²Êïüä’«þüîÞ‘Š²µ»Á®†÷íÛ×”ÞÞÎ’ìåêÔ꪿ٔ¥øýÑõëÖñÛòÏù¥üÁ§þŒ²¤Û³•å -ëó³Í›Ÿÿ±üï½û¼Ä’±‹–ÀÅŸÀòÅÕèÖÑÒ†—‡˜øÓœÜ¼Ëù³ÈüþûþìÐÒé÷Ý›˜ŸÊòª¢Ì•ÃùÃÊÌŵͰÌÎÎæ²Éï -³Åçϳñœé¢è‹ð¼ŽƒþÓÑ’âÜ­Ÿ¾í¸ÿÏ÷µÿ•þé–Ø´à–ÄÔ”øˆÔÔ˜Ú•åªÈŸÜÓâ¦ñäŠÿÊÅÓ ¢š…ÌÊÅÕ†¯¡Ñ -é®Å¹šòò‡¡ë›ÉÅË‹óë‹òϬÝóî…¶­ëÙ¢õ¡ÄÔ”ø‰ÔÔÄΕվ—µ˜ßöÎÝðŽÞ³öн£·¼äïß™ÚǤÜà…ùó£¡üÇß -ðÙÙñªë˜þ·çÌ…Šü‚ŸŠªÑ©—¢á´Ó™û÷çïüŠþ†“­“™´“ÇØßýœŽÿ©ÏôîÇÚŽïÛùÁÒý…ÎóÓæž¹‘¼‹ªŠü‚ª -ÙªÂÅí¬¨ÿ˜èéñ†ï¨ƒÑƦªŠü¤ªªÂŃâ„ÐÑà‹ÐѵàŠÕ´·ûÿçÞÛÖøþûÜ‘þãü×ë ¢À¦— ¢ê”ª¨—“‹ù©Ó¦Î -ÎøÍü³ÙÍÐÞ›³úëç›ëð¹¨ð‹¨¨êšªºüÙ‚úÍ›¶–•æÀÈ֬߄½úà€£ÐѵêÕô‹ã†µ¥Ï÷çò¯µ§žóÔËßã”ò߈õ -ÓÝØ»ú¨¨ðÈ‘©•í•õŸ«•­Õ½‹ªÝ¯ÊÿÀIJû©½“ÊŸÛåù¡ÿ©Ð¨ä¨èšÀÅՠѨ¨ÓÅþß¹ü¡Ð®œÚƒ¶Íüù¦í—À -„ùß…ªŠà‚€ÔÔœŠÎ꿆¬½¾Ï‚ÞꪊÀˆ÷ŠªÑ«¢«€Ö®ç‰æûöæþÆŒ¥¾ß²–æÝšÔ–æ‰éž¹óÚø–ÃêÞòÃú´ûË -½«Ç»¥ÌÅ“› ÀÏ ¢êô¯ªèì™Ó’’ׇÛÞÈÉÔÔ³÷›¹›Û’“¯‡ìøü£¨¨­ð‹¨¨šª¯Ê䑽ÿ×ÿÜÙÓ“µåËçÄž½ô­Ô”ø -ˆ…ÔÔΕåý×àú¯¹£ï®ßÒßæ”¼»ÃØèäçž„½Š‚¿€ŠªÑÇ®¢ü†§þóÒ’ß¹Úºø¶½¶»Ï¿™™ß˵ò´ÿÊüߥªŠ‚ƒÔ -òÔþ•åÚȯ¿®™ß©Ê•îÕÛ©ç‰þ—ŽË®ïÒ‡•…骪ƹŠõ–¶¼áçÚ¨½ÝÚÏï®ç·¿ˆò›ðùÕ©”¿”°·õÐÑà¯ÐѵºÕ -¾ôÑüéï¯ØïÈÔƒ°¯ÿ÷¨“æ¼½éã‡àÚºàöèÿ—„ÐÑà£ÐѵغÕôñ¢¹ëïÖ®æß°ÿÙÿæ˜ñï–×·Œåó¯Ÿ×ÞéòâÚ¦Ö€ý -¿ÝùÝ×úÂÂᳪæè¨ü–¢öü Ô”øˆÄÔÔΕݾÞìÁöíÛÙ¾ÕᇴʛЪÞòâü·æøºÉí×øÏ¢“Ûþ¢’ÿÍäý½Ïµá÷•´ -ÕŸáò‹¶Ü¡Û¢ÀÇ ¢ê”…«¨ÿ¡Î†Ódz¬ïÿÎÎûœ‰øýÏÇóääÚÊÿÔŽ‹÷ªúÃßšãÚÉË…ö»ŽÞžéÿŽ×ᮟˆÚÅý»†½ï -îì ¢Àß ¢ØêÐÔ”«¢ÿð­ã®îÉÉÉ·šâéÕ”ç󩸇ýަ˜¼¬Ó»”ü½š·¶Þ†Ãóøï¬Âó·áƒªŠü´…ªªÆ¹ŠêÓïèµå㯵 -ß„þ—޵²ü¾ê“çðÂüº™“ßáòŠÌ›Óù…«¿¤¯ÆÅÑò´€øóÞÄÿ®Ù‘ÐÑà€¯ÐѵºÕÔÿ¸»´ó»¯™ßŒ°¿Üø¡–ʰì®ñü‡ -ÕçåøÅýÉÌ÷Òæð‚¬Á«ð·š“Þѱß÷›æÍ¦ñì®ÿŠªÎÑ®¢šøúÔŒ®Ûõóý¯ž°ªŠ¢“¨¨š½ªª½£×¾¯¥ô¸§ãûÎ -ßܰéÏ›ŽóÚÆ’¼£‡þÈ‚•Õ£ÜŵÜÍ¢þ‘¦þ“áˆï§éûôí¥ÏèÛ­ðÙß߇ſÿêÔï×ïÓ¡Œý†ëïíΪ„Ô”øÔÔ -ŸŠŠê÷Ö™üõÞÛ­ÒŽêÇ·„ô‰Ö¾®®îï«ñ¦¦Í­öƒ€†ØÔ”€¨¨šåþªª½£×ö͵õÛöÌâ²ô¢·‘š®¯õûëšÆòëÑí -Ü÷ÞÛÍ×¶ë¾® ¢ ‰ƒä•Õ£ÓÅ…»ºËÚ†º–֊܈÷Òµ÷ýŶ»ßÂ⎧ºÎ™ ÜÍ×Ü›ù²£Ý¥ØéÀÅÕè×ÑÊÆ‘¦“¼Æ‚ -€àÂÅÁ„‚•òÕ£ÓÅ…ï苵¡þÎÜí¯øÔÔõƒòŒ»úݺ߷⟟½ÒŬòÏ×ú»»Ý¿˜ï§è¯ÀÅÕ¨ ×Ñí÷Éÿ¡ˆ§ÿ¤“åêÏ -ì›ñ½Ò¤—ï„·é²éϤÜéãóÏÈõæ›ôÚãм€Ã¾˜þó߯é‰úý­€ßãáúÏñù™ýç»®ŽžÉ‡Š‚ŽÿŠªÁÑÑùíî¥½Š²„ -éöÝ¥ü¡ú¸ý¸¸¾Û®íÑ®ëÏÂó⼌Ðÿ¢Þ«¦Õá«úÆ‹óÚú§†ÃÕïõÛûú¦Ô¿­ï¨Àà­ð·Ú­¼†þžÖúÁƒ•¢…þ‚•Õ£Ü -ÎÅõÃëÿ¹¢º±Ãú•Íê¯øî¦®Ý»êñÚ¥ÔÑ­Ìöû†ï¶ÑîƒÒõ߉ ÕäùÚü­ê÷ª®—ÞÙןèï”ÅÒŽ™ÕÔ¯¼ˆ´ÐÑà¯ÐÑ -еºÕԸǯþí»ë·ÔõßÛáÌ˾“²‡÷ï¿ó§åµçÓîµ´ÿ¦Þ¿›×¯íÇëÍßÞÆÿÏú°Ì³Ï×Ûùàš‡ÊËìçá÷‰‘ø‹ÔÔΕ -¹»ëòô·¦¿ìضх­ß³³”™Ï¸óžÑ¶åÓÕÐÑà£ÐѵºÕ‚ôÆÛãß˚Ǽúý”˜³¨¢¨ð‘©•펊•õŸ¨¨Ô”€Ä¦ÐÑ•ªš -ý†•…¾‚•ŽÕ¡¢ÑïÐÑà£ÐÑ•ªšý†•…¾‚•ŽÕ¡¢ÑïÐÑà£ÐÑ•ªšý†•…¾‚•ŽÕ¡¢ÑïÐÑà£ÐÑ•ªšý†•…¾‚• -ŽÕ¡¢ÑïÐÑáà£øöÉ…Š²Æ¿ÁÅÀ”ÅÕ¨èô›Ôâ”øˆÔÔ…Š²Æ¿ÁÅÀ”ÅÕ¨èô›Ôâ”øˆÔÔ…Š²Æ¿ÁÅ„ÌÏÅšŠ• -ÆþƒŠ‚Ÿ‰¤©Š®Ø½íü»ÈŸ±í´²ö”÷•Š†Æ ¢ÀÇ‚§¢Ìž»™¥åç—–×÷ˆË”×°£¼€˜Ô´˜†•…ྒ¼•å×™È̤¿ßßÊÛ -£ÞƒûØÉ¨è€°ŒªŠü¤øŠªÊ¤‘ÝíîáÛ×ÌÛÆÆÁÝË¥¡¢°¨–¨ð‘Àª¨ËÒìÝÛÄÛ•½û…Š†Â ¢À¾Ç‚«¢…ÌÚ”õ™Á“šé¹ -ÂÐÑ ™Ô”ø°ÈÐÕôËž‚¶¦˜ÜØš›¾°‡ªš¤ƒŠ‚¬Ÿ‰ªŠþ¶»›Ÿ™¦›†´³…¨èŒªŠüš¤¸ªšÇÍ“‹Ïï¥ôʾԀ´È†•…¾’ -ŒÔ•ݼ«×³¬ÍÂõ™ÐÑ ˆ™Ô”øÈðÕà´Çï’úƒŠœ¨èŒªŠ„ü¤ªÚÚÞ¡±ýï¦í¸ß€´È†•…¾’Œ¼•åÏ®ýóà„íøö©È -€†•…¾’¼••åȳ‘ä×ã›Â¯ñâùì‚èԽǀ€œá Àßé„€˜€á ÀߝР€€‘‹ñÕŠ£ƒÁà°Ûûÿ…ŸÊ÷õ -] -::^ [s0; Widget displaying RichText documents. Has ScrollBar and reacts -to hyper`-links.] -:: [s0; ScrollBar] -::= [s0;= -@@image:106&456 -€ƒ‘€É€€€ƒ·ÿ€€€€ø£œíÖËÎ𘔼“çàŽœ±€…Û®À†«¾ Ž€Ø±àӈء–ЀÝÁæÅù¨ÍÈÛ¤¼éÓÒÒªŒªùÂú²—Ä -èˆÅ¨Ñ¨²Æ¶ïìÈï¬Ì⯑ûñº÷¹Àÿ’ݽÚÖÎÁ£Æöþ–°‹š‚¡Á˜è¾»Þ‚ê¿£ˆ±Ë„å¤ÁŠàÎ祿³¬Æ•¤«Á¾Ø§öݳ -ƒ£ÕêüÕþ˭𾱺œ«ë¥›’ƒâÅ⊇ žÀÉÕòÜ´ÿ¥ˆú‚àÕ—ÉÑ•ƒˆÊ鲌褶«±‰™œÑ¥‡—€Ñ³´ŒÎÒ̶Ò ¯çÖ -õ£™¼¯Ôý‹±Ûû³ø÷ɼ¾à°ŽÖºà±ù˽ÖÀÉå¿À¯ðøêÚ—ŽÈÊÍâ§ÍìãÛ„¥“£¾¬•“¨÷…’í׉ɉê˜ÚååýòÜ…ÁÒíòó -žÝò¶²€áʦûÅüÞóÐÿžˆü§áàå”ÊôÆ£ç­ô£¸ñÿ’ùÓÉðÝöžÆ³è£žÈ¦É¼Ÿ§ôò—•¤’Ô’ÿ Ú©ÿŸùӊ¬„«¥ÖÎ -Ì蓬šÚ¹óÐÛ‰ÖÊ­Òš•Íʰ¢µ’¸Ý¹´Á¦õÕ‚×Õß—‚ϧ‚„Ä•– -] -::^ [s0; Scroll`-bar.] -:: [s0; ScrollBars] -::= [s0;= ] -::^ [s0; Horizontal and vertical scrollbar (Frame).] -:: [s0; SeparatorCtrl] -::= [s0;= ] -::^ [s0; Simple static widget used as separator line.] -:: [s0; Slider] -::= [s0;= -@@image:650&106 -€ƒè€‘€€€ƒïÿ€€€€ø¯œí˜ÁÎÂÀþ†ŸÉ×âà´Óøá•Œàá¸ùÀ…ÏăÒÒ•Ó¥‚’°€Òè©”‹Ò˯ôǒɶÌܼìÉÌÄæËÞ -êºû§ûõšìï®çÚÞ¿¿åƒä´öôüöØ“®ä„¡ˆÊ³ÁýÑÛ«¤´ßœ¯ˆ¿ò¼ç˜Ž´±“ƒñ“ÖÒïè’묷þï•‚Õøê¢±ÿ¬ -«•Ô›þ¯´ÊíîÄ‚ÆâÇ͉Χµ‰ôí—餧•ò†•Ï—–˂ׇ¥ËÆî¨Õï¿„îëςֲÞõ†¬²·¾ž¼…ÍçŽÖÌͷ–É›ÔÏ -ÞÞáÖÌïÛç·Ž‹äͪô§ïÑü¬•¬‰·×–Ù›ßÏ­Þ–‘¯•ÓÛåõæÀ¢ù“êÓÉÛò±ÕÊÖÌÛßâÇ’³²—·ÕǨ•óáÿöåõ‹ö -šïñªÒŠùÞ¸þø¬„º¯ºüÆË­˜çÓ¬—­’çò€ÙÓ‘ÂçÓ¤‰¿µ²×ûõº»ÑÊÞï¦òÜ·­üñ‡«û†Œ‡ü¡Ç -] -::^ [s0; Slider part of ScrollBar.] -:: [s0; [^topic`:`/`/CtrlLib`/src`/Slider`$en`-us^ SliderCtrl]] -::= [s0;= -@@image:1037&150 -‚ƒ¦€˜€€€ƒèÿ€€€€ø¯œíØÁ‰…°¼ÅÑôß›¸°ˆË°…¡Æ½ŒÀÀ’Èþêœà»Ãáã°ò¾×ƒšï«Ðƒ€€€«²³ù󽩥ð­à -Ó‡âêêñÒ¹ÿü¶ëð­à‡éâê¨Þœû¦ àؼü«§ÿĺ­ž„æØüèÿÓϳéñðòóæƒº§ú´ƒ¸ÉÌß¼ú£¯‰¿ëÖà²ùϸªŠ«¡¸ -ªšã««˜Š‹êßÝ€€–½÷€œÛƒ -] -::^ [s0; Setting of integer value using the `"thumb`".] -:: [s0; [^topic`:`/`/CtrlLib`/src`/SpinButtons`$en`-us^ SpinButtons]] -::= [s0;= -@@image:137&156 -€ƒ–€™€€€ƒçÿ€€€€øýœûóòÆ›¡ûòº×‘‡àÒ¦ü§‹à±áÓô­³¶¾Â›ƒ€Šð›€ÑÁƒ‡•´á“øµ·ðä׃ŽÌ…¢â̸ -¢òù…„µÃØÜ„ˆˆ±áãàù§À„Ñ‹£Ì€ âÌØ÷ÑæžÄЄʉãâÐŦ¤€Í‘™ôÍøœ”¢óé“›À…ù‡ÎßŃ芞ˆ„ȦÐÞ -ÀÆ„€Áê‚ä -] -::^ [s0; Couple of spinning arrows (Frame).] -:: [s0; [^topic`:`/`/CtrlLib`/src`/Splitter`$en`-us^ Splitter]] -::= [s0;= -@@image:913&442 -Šƒìð€€€‚ÿ€€€€øÇœí݉ØÔçǽÇñƒÔÍÒúëšÈâÕºÅò˜±êŘ˜Ã ¸ï‘±  €’•‘…‘•¢±îË´¦µ¹ÙüìããÒ¤½¦ -ö¶ÏÓûÓš¶ßéÓÍ›˜¦µÞ铸°ˆŠˆî†ÙÙáæœ¼áÑîûÎÁáæ˜Îœ¹“çõßÌŒ¿ÿóùæå™¹ÀáœàËñëðææê”ȰêÓ‘ñúÿ¾ -™œº¥’‹¾ŸÝ² àæÞ¡éæ—õˆ­ç⮫¸çµÜ²Á°¼Ùåæ’ÍóÜó†î¹‰žŒÙþÓÒªˆ¨™µ°’Œ°üÜÿʺþÜÅ•‰ôô´Úà¿ -§£³Ÿ¡—íÛ墫¹¹ÚŠœ‘¡—ôûœ³ž·µ ½ëðœà§¶ÜÌ÷ϵٖ޹×Ã÷µòÿÿåêØö´Ç¶Ç¼ÙžŠñ¸½ò•õ«„šúÌ­ñ -ä ÐÈü©Áßç¨þÝ‚ÞéþÉå““ê¸õ‡ê¦·«’â‚”—¹ç†¶’ñ®ÅâßΧÃêÆºÂÄ‚žº¯¡¡×–›ä½ˆ™ŸúšÅÊ«þøÛÈÒÅ -ÁΛ€ÀÄš”©ò¾¨¦ØÜ›‹éõ ›¦¯Šùõ›ÌÇôʾÎðË›é¸É…Ÿþœµ—«áâËÂãÒªˆîíˆéô¼¬Ëš–ÝÖªÎí¾ž– -½ÓΈçÉ©ãÙ£øÆÜØóÓ–²Œ—ß“€ˆü«äÈ”›â×ËŒ¤ØÈ€ÑÈæËèÚ󒨆¥¬­¡¤÷ÅÊ­ìäž·ÁŸ®ë¤—»¶ƒ¤ÔöØÞÍÏ -³É–Äóǰôä‹‘ÐÉͼÅÈÅ•ö¶¼ú’¼÷ü٧䃗ê’ûÎÊ®¹¢½÷ƒ¾•ÜÆ¥‡´†€€è˜âõµµªªä¹•¹ô…‰ ÿŒÏܪ§’õ -ŠÈœÅñ•Ôì°¹‘’ÓÊͯõ¥ÿ—ôü™’´„üâÙ®ßï¦éÃÇÿÎßÊØšžßÒÁ©ãóŽ’÷Ø×ØÉÁ±ñíýŸçÀßœÈÌ€Àä„É´‹±×Ý -Ì’ý³Ò·Ûí´ Æ›”›˜ÚÀÅëÀ‚ιÒͼøË޳¿Ó¿¦Ç¢¸éÛ¸ƒË·é–òÒŽâªÉÎצÙüÍ‚€àŸÄú¼¯Ë¿Ú¥©«éí÷òÈÇ -ß‘½Õœ®ÿê±Ø¾ºŽÕéôØÔžþÈ ó«öþ§¯–õµ˜ä¯÷Ä¿èÍ´Çý•›ñ’†¶ü‘ß˵Üò«ÙðÇ·Ò¢í°ŸíèèÒ¶ïÇÿ‹Àÿ¹ -Ëþï†þÏܼï÷Òß¶•êù®ïþ×–ò¦ƒøÃ¾æ¯¿êï—õƶë¬ÚÖ©›©É›Ñ¨§¶Øˆñ™Ã–‘ë¬ÃÖÔàÍØÛÞ𵑢ü¬ïö’«¡ -ù«î’ð–ŠÒ©ª·¶›ö§˜Ä¶¥ê³ãôéÇó´«æè×ÏÇÒ®œÂÔ®ŸàÄè–¿ÁÅ‚«™ÙºûÈÞÞü„º¢‚’Øñšð±áŸï¢õ¾÷Å®ß -îïéŨó¡³àݛΫ­¶ÚúÑòÕæÎÉþÝÿ³àø•§Óú÷¹À°Ò»ï„‹¬ã·ýßÂöÖï›ÿÿ±ùÀÿضþ»Â–õÌ–ñÓò¡ý­¡õÇ -íÊ·…ä·„¤“ÿâ—Ÿàãß÷æŸÝãºÕøºþýã°å•óã–ÿÁÖ̾ïÙ‰ýž“²“ßêƒÛêÞÿ«—þׇëß½ÐÜõð«ùÕ¬óíþŒÓ¾ôÓž -þÔãΕÆÉûƭɆœÅúù¬ØÝƳڔ¿©å‰ãóæŒõûËô¸¹¥¸ã¾úËîϧ÷ºØƒþÏéŽËî«ýìÝ×ïÞùõ®©×û﮽÷ -ôÏ韗¯Þ³‡³ä®¥ÜζÑÏí¥Üæ¢æî·Ë¯’¸ÿÄõ…¥øÅ¥õ®òê—°šð‘ò¦½¥œûÓó»ÿíùÍí·Í»þéËÎù×¶ñˆ©° -º­í§´À«ŽÐŠ«Þ—’Þåö—½Â¯ØËÏÜî˜Õ¸òæååƒóΑ³õÍÎÈãéÃÍûÒ꿸½ÖðòÝÚÿþŸ­úЮª·ò™Ì‡¶šöç˜ -ß÷¦‘Œ›ö¯ð²îßáÜ’¤­ÏÞ¤ËÜ Ýâ½³¢éâÁü«‘¿ùâÁº“µÒð‚´ü¡¯è»›Îª¾µ ßãÁ˜äûäýðÙîý¾—•ÇêíÌË©è± -Ïç¶æÒ—ÓìÜéÇôܶæî¬ßñ׳ǒ‹ÜóçñÈ¯Š€ø¹Ò¿…¥¿âÉøþ·Ø¼ïýÛ¦÷ºì™ïÛÖüØüȦÉý‘ð䲟÷’Ÿ½Ç -èºÿ½ã„¬Ÿ£ó¬“¶´éŽÚÕÙïÞÇË´œ¾ÙÉÌ¥ýØðã–¥¤Þ¨õ§ŽÖœÙ×ëõú¦ó«™¦‚—ט÷¤›¶Ô§™²“ô›ãüô™ÑºŒùô -¿Þ•”©•Ë£Á˗Ϩذê­äÓýèΞªÏ Ä†¸©ÙÙð‹å¥§ŠŠ€Ïݬ¹ÕКϩ⺅ܬҨþËîÑßó÷‹ÿ”Ûô›‚³Ê‰‡‹¹…ß -Û¢á€àçÈýî–½Ìïü϶Ùç„íïÚö͔·„¤ƒÂüÀþ¾æ·¿ç»âõúæëä¶å±é¬ÒÝËø¯–ˆõ–ñëšâƧꇭøÄ·¹áλñø× -®È×Ü측¼ûÑõ¡Õïñï¡—ÎýƒâîÉɲìŒ×úåÄè×ÌѮ՜޹¬²²éžé²½éãµ™‰‘åñã®®êœýáä é†ªÿÿ“º²ŸÔ -ÒÀé¡ÿß°ÎßÏöö–…ÚÞÓßנ့ϜüˤױÖûù¬ã¶—ìç‹çÔ·íËÈËÊù¥„üî öþÚŽ‰¸õ½ÂÆË¸õ–±í묣×ÙǬ -˳ŽÝ׸úµå®£¿Ò»ñØ®ð×Ü츾þ³¦êÕ¬ª×Ðß «ðǻۈƒ¾×»òš‰Õ¸æñ„ÇöÍÙ¢±å‹ÆÞŒ…‘ê¸øßŠéŠ¸Ù²ÍþÜâ -œÂ¥×Ñðæ»‰—è»¶Üïï•¿ÁïšúÕÙöèÜ×ÎÏñ‚匃€¿¢½šï³ÓšñÓÚÞÏ´ŸØ’ß“–ý¼¢ÄîåçïÉäçîµÆí²Ú¾•åùÁúë -—ã묣×ÚŸ¾Í·ŽÊ°ŽÞÁ׸ªÕ»ðÁšéçõ¸óμ¶Üõ§·›®ÚË›ãÚŸÁïöÂÙ›æÜžì¼øÿíª™Ú•ÚÑ•ËŸêŒøùÂǵ±£Êã -´ÆßŒ™õá³êƒéΞ®¢Åìþ¬¯ËºÜѯð¸ŽëéÏõ˜Ûûû«üº¼¿ãøÕ°¸óᦫì“ÁÆÀ߉ùÍùÓÈȽÈïÅÙöŸªð²°ð - ¿÷‡¿ý‹µÒò“õ–åÌÖúëÈõÖÇֈڟηŽßëüý¬£ñ±Õ򾄨÷ì„æÜ”Ù‰ù«ëâ΢»›îÜ•¦âÜ“ÊÏ·¬Ð³ä¥¸¢Ý¹ -ª¼²³à±èÍ¢ŸÖÄŒ¯ªý¬ðÁã¿ûØæÀÇ߬’Üîø¬†æ·ÉÆø³á­ÒËñЮ²ÿñåæÃË«éƒù‹ò˜Ä³€€ÿ Ñ£›œãÉú•ß -¯ñº°âµú§ÿÈøýü½üíÜÝÖ黬‘òÛ¬“ò¬£³ë­î°ŽË䔟ÚÇ¿œá³¾®ñøª¾ÿïô§ö†Ëì„æÜ”Ù‰ù«ëòÎȺ¼¦’† -šúÅäã–¤ú·ðɶ•†œ¤Ôýö¼îý—ªµ¼¶îÑíóÁê—¼Ô™óªðÅóï͟þû‰ý»›®Ú®ÅÇý•¶œ»Äœìœ£µ¯ÂéÓª¸µÜ -ÎÞëúŸßŠ‹˜½ÇšÞ™ñˆ¤¸êÿð܆Ȥꓳ¬ñûñù¥‡èÀÉ釢ýôÁºó÷»óÓ÷ò“¶Û¼§ì±ŽÎáÇÒäóï䇯Ëç‡äòó› -êû¾Û¥ƒáλ¡—åö®ÂÞ꺓û“‡†Ó†§Í´ì…Œ³æ¬±îΘ²ìÚ¢ÏÚÄÖŸé³ö®£à•º¥£õñ£ô¥±ëâ†ëâñ†è–޽üì -»Ð߿ٗî¤×ª”‹¬îØŠ‰“õøø›Ýšó¾”¾©–ò†àïü§¯´öËð”†î™ýÒ†­õŸ¡Ÿ€ÀþŠ‰Úøõ–躗­‰¯ð‹ÿĨ¤¾¢¬ú™ -ù‰Ÿ÷¢¿€ã¿ù—¿áÀ‡¿æ›¿â³¤°ô“°°›ŸË¸‘Ÿ˜é™¸šÊßçÞßé¹Å¥öÒî¿ÌÅ…ÝÎÈÛÝ÷âÂÿ݇ú§É–øÝºèˉ -†Í‹¯¤šõ²—é·Ä¸¬åÉ£Œ‹†Ùê—ŽÔÇŒ¬¼Ü°ðòœÿšø¢Ýɤ¦·©œ¶üØåºŽ§ŸÒÀùÃΚžèÜðÎÖûýážš¾ -¿éè¹Ð¸óáõ«øúü‰ÏÛ¡‰±‡€––¶ÛÁ·Ã¢öøºšåÖŽëÂý¼Ä‰ïü«üœÉÉïþáÞ¾þæ°¾¾ê¯ÿäž’þÌ®áÄöá©è–áÀ¦¡ß -ۖЯÓÒ÷¥‘áûó¿³·ÜÜâ§ä¢ÌÎÈøÛÝ÷’ØÀÅÓÕ“³•Ͻ®Èݽ˿þ¡©Ñ·¡»ÞŸ•×·™î´¨ñ̒냱ᨱöÍ€¡¦Ÿöþ¿ -¬«³úþ±âû¼ô§ÓÜ´Š¿šñ±¥´á«þ”¶œÜ¤Æ·ÓûÃÖ¶Úê÷à±àÄÛæõÃ߆¦ä’†û‹Ä§¿…ÀÒóñË— ¨Ñ¿â°¦¶Åí¶Ì -©ÛíÝø’߮ĵãöˆ£öÚÚžÚ®ô߬ô­Í–Â×ÙîÛÊá¼ç–ý‰í¸æ§‹÷óѯíñó÷ñ³öñ—“÷ñÏ퓜»¡ïõÝ‰é€øâƒ¹Óž½ -Ѽ²¹Ê·öžúþÃÂýÆØÎ•€ç̰¤Í¶é¦öž—âŠíÄïÜÐ×»·¼òèêýŸ¹§“£á„Ù»šÜΖä´áæºõÎßÙø³áâû´Ø—äîæú -©æãß…®¾ûšÖÌ„¬¡¸¨”€€¿Ã‚µ¤øÅÓÓÙ–™ŸÛ¬Ïî¶Ê·éüÅáø®Ûà¯í¶ÿÜì»ÿ»£Ð»ÝòݤîÃÏéö¥´›÷Ìß«ÌÛË -çÏÞÇÏÿ‰Ÿë´ÿ’´üæ‚ÎÈÛÝ÷–Óó‰–ò¦ìö¾àÍÒ§´©³„ôëŸõüöý½ÆìÃÚ醵÷“Œ©Ïš“ǸôæüþýúÙÛ½¯ÌúîÇ -‹÷¤»™ÛÇó¸­æüüçŶлÒÖÒÖ—’è»íПîɯ÷‰üžüÎööš‹ð‰Ô»Â—–„æÞòˆÉ졸´ë‘„˜ó€ð¹®¥¥¾Ò¿þ -àÉÍ㳬‘›Ä¬³¶Ë·üÔêžÛ£»ìƒ¶ÕÛžÜì»÷ƒ¯íîÕ–ž‹¥¡ÓíËèÅ»Ìñž×¬ïæý’èÛ¿™Ö¯Ø¢îìåòÈ’–ñëçÿ¦Ï -››©Ï›®ß“ØåÈýÚ˜²ÞÕ´ü”¹é‘²¶ÝøÛ‰Ó¼ûÞõÓî¾òÔØ¿¼šÚÑð‚¢´üé³ý¤ÏñÇý©šúŠÉ¼Ëëņ‡¦Ôˇ¥˜ÂÖ›‰ -±žë̽ךûß®«¢Öêú®áÓÓëõ½Òõ‡¢°¬›áÙÀ¯‘Å⎀ìˈˤø–Èý¤žØÜ´¼•¾·ˆþ™Í–¨­ûÖ¨­ü¤­Öâç¶Ù§î·Ž -ÏßÁÞ¡Œß´®ŒÙ¦ôÏ‘Çîϲý·Ã蹑â‰×‡ÄÙÙ©ñÉÎȆ¯‚åô±ÿíòƒåÑë’Ô¢ª—½£ÍŽÏÒ®ŒÒ¦ÏÒ´¥¿£Ëž¨ß -Ö±Þ°ì´ñÉ„ðÓÂÓìÿ¹²ˆ·Îú®¶‡ªÇå§Âÿ¿Æ¢„îäÁÓÇÒÒœ´¼âß´§áßÏõ´œ„à¼ì•ïÿ­·¯–°õ­½³Ûøúåß﹩ã -œÕ²Å×Ðô·÷¾ØßÖ§çÕ¿Õ€œÑ˜ÕñìÍÀåõì£××ÿ £þƒ‰õ“¶´ÄœìèŒØØ¸¶µ»ñÔ‹ÃßÜèš’ÝÔÿ£ì¥¼ÓÒ»ÝÒ -𫥩ôùú®ÚÆÃÅÒ§œôùÉΜ‹ù¢‰õ÷Þ¹ðڂˑ߬úÁÙâ’“å˦”§Æ”¯Ž¨Ø¼Ö“¸Ê›¿Ü›œ»Ä· ¿îÞ±¸îæïí”Þ -ýåχæÿ€ûÝͰ®£áâÆ®ÉÃÅûÒº¶‚ÜÌ¸íøÆËÉÏíâë¨Ó©€÷ë¸üÆ¡ŽÐ¨þÃ…ð›èê¯Ì®‹âÿ®ìÀâÙЭçµÃ—×ŒØ -ÞÑþÈòŠáÉÿš¡ÉšÁɚЫõý“õáö«ô÷®Óݽ¦Ôÿ„ýȼ·ûâ…ÿ„ó´ü–÷—ùó©íºšë繟ùîéðó¬Ó†äΚš» -¬÷øîÜ‘¹óƞɛ»¬ÿίЂك¯ÍžøðéÆßËÓÂô¯ÅÝûù™»œ¯½ùüñ¡­ÿ˜Åýöò󺓸˗†‡÷¿áÜðÎþÂãÊâÒÜÜ÷ -ÁÌìö­ùÎÇ«ÊÜÝÀÕÿâ䀸ØûœÏث阹øÌﵩÿ¹ÿÖé¾±³¿þàö©¾³Î…Ïþ¤ü§ÎéûæÿÚûýöç÷Ìþü®ÙçúÎÿ¬ì -Ñêç¡ÓÏ𓌾²ðÔîÑÖùØÛßÉúûÏ­âÃÓß±ýÖÞÎûó¬‘Ý¿þ¼÷Éñ÷­ÿ¶¢Ï‡ãŸùøàÜŸ“ãÃø¿œŸþ»ˆûܾš×ûãï -ÏùÓ˜»¾šÕ‡ó£‘áÿú´…ä÷ð§§ü±—榿Ýàÿ¦á历‹§ á©”ÝÛ˜ºÊ®ÚÐ¦Š¾ÛßÚøÏ”ã×ð¨Ô¿£º’à¶è‘ÞÊ -žªêñ¯®ÃÿÖÌä£ÈÇÞµêÎÞéê±Êå ‡·¬ïî‘’¬¤Ÿíòú§©Õí¤à½žë©ìòÿ¸ËÃã™ì¯”Òñò¼«ôÁ¾ôÅêצ¶†¥µô ½ -È÷è‘ÅñÆñݼ¨ÅõãˆÅÀ›êŸ³€Š—©þÝ‚Š­ï٦߲û±¨ô×ðò¥ÍÜ’žèÛªÐäÌ¢…·®¨ÅÓñŒÃüܽ· ŽžŠôïõÜîÂ¥ -Ýá´ãåô•ÙÞææ†ÌÊ‹ÚÍÑ×…°‹‰ô©•Ñ—‰ˆ©´¿²§ÝüÅçù‘ýÉÝ€‹€‰¹å°ÈÖÑ£ÝüÉæ–ÓÒ§™¤¢îšÒÒÒññÚÍâ -€–òšÙ̽ݓÔñ´©âóÞ‘â˶üæ®ºí¸½ãŽ’Ëö’ßò¼¿Ó°‡Â€‘¿è¨Â  °üæàŸë¯ž—Òþ¿·×„’¾™‘µ÷¥Þ«¶• -èÝ©¼“ÿþôõ¹¯ÿ†’ÈàÃî¢òùÀé톀¬¹úÕÍëকðÃŽ¿àÂßôù«‘œý ²®®§ß„Õ࢜ªáÛš­‡ºâ¯÷‰¸ -°î·€àʹ¿îšÎ¢ÏÂÄËœùª¿ÂëôÍö¯§Á½šŸé‹³…䶤¸ÚÛ„ç†ãö±Ãà°ÌÇ¥¿™îšÎÖêä¥üɤöõõß”¹ôä°ùíÈ -‘θ·œ·›†»ƒ¹ãèÌŸÃÉŠ¬¤ïÞàÜÌñãÇÉþÍÔÞ­áâíìöƒÁà˜å£¿ò§ï äö©ý÷Îþïâ»îšÎ¶¶µ±µ‚€°âè -öšþ­Ç¾á­°­­€€Œ¸ë»øÝè¸â‘ïäøó³€€‘Ô®ªå†ý”’÷öä›îѳ‰€€ŒøÓ³ðë É¾á‚Àï…€àÄùÿÕþë«ÿŽü -‡Ã­Ö¦€€Æ³ÐðÛŸù†Û±šš¼âœÆÁõ«ƒ„¿ƒõ‘ïøÓã½¹€Ç¤Ý’çËä¹ëøÝ‘ÅŽè¸Â‘ïøãôÀǤےµçäùÓð¶ -½¤ßðúºšª€È·¥ÏƒÈó¢áíí –É¾áõµÕ€ôž¹ßŸ®ú•€¢¼á혜·£ßðÚê³¹€Ç¤Ý’ç¯ä¡á·¾ò﮲‚øÄº -€­ùžÀžšþ­ë£ß𪳵À£ÒíÉó€ûò¼é¸úÏÐÇåŸä›î¶êÈ€¼ò¾¿Üõ¨«ƒÄÝÃûÌÅ”¡á¾é¸±ÑЉ€Àˆë…Ç»ïøë« -ªÈ’ï¸Á§»ÇÉê׊ނ‚ò†·âÜŒüÃõÚò€Ì€ÆÐðÛŸù‹†ëªË€€˜Çñ¦á­ É¾‡áåß”€°‡‚†³îøéÉÀ€€£è¸ë -Á†—ݺ‹€À±ˆ—×û¥¿‹ý–ÌõºÓ‚áÞ¿€˜ù¿ï½Ÿ¡áŒšþž•°í‹³…Âùç¾…€àäííãǦ­Ù­“¤á­­Í Éï²áùçϯ٠-òú¸ôäðñÍãÇÉû€€øÜÙ“€çî̾ʴ¶ˆè¸¸ï›þ¥ðŒÞàÛÌšÎÖãäÁ­€€¾ÇÖàâ¤à‚ßÏ áÁ¾í¸ÁîÕòÛ˱ƒÁà˜ -‰ŒÉ‰Ž“熷·ƒ¤÷ˆ‡€¸íÜš˜þ—šŽ†ƒÀ«à ŸÒÊîºá¾á¶„͆ƒ€ê¼¶¼›¹Ù†’Ðð€¸Ðšîó†ßÔ©¼“ÿþ´¹ - €˜¡‘¡•©ÁÃýÞðòÍ«’ÉÙ‡¢ãÀòÔ¿€‰€‚ŒÒÔ¶µÛÔšôÅÇ–Ê¢·ÜæƒÉ’²§¿œÉÀ‰³’ßå×è꜖ó„Áà‚ù´ -âºÓ—ç‹ÅÇØ’ö¼ÆÇÃÃÊ…¤Ùðò»±‘•¸‰¸ÚßÐ猆“Ìóè…ÈᲚþëïÔðîLJû«žÊ¿å®á¸ä£ÙßÀàð°˜æóüøÑ -¦þÏùõ›×ì¶á¶›€’ äšÎ¶ÞÇà°°˜æó²ËóçϢጚÞÖ䆀ÀˆšÎºÉáíí­€€ŒÊøÑð‡Éò”×û•›±˜ð̰šÎ¼á -‚ê¿Ä…€„±Š´œõÃÕÿêÐÜ€ˆâîšÞÓýøðÁàÁ’‚üÃÕÿ˜©€¶„±“®¯‰¼»ÈíóϪžÊÏ¿å¡áꟾ¸Ž€ÁÌ›†ÛêÁ’üÃÕ¿« -̇€‚˜—çù­ É¾áªÿÈ·€‚˜šÎƒ¼áêß½€ˆÄâè¸ïÃɃ†óÖ‹€€£Ùî›ÞìÒðžÛ·‚¤ù†Û­˜Í€€Œ¸¶ü¥°Ìí Éà -å퀀Œ ƒá¬›îéꄼ€àÄ‹†«ý·ß’ïøÓ€ãƒ€€£è¸Çû†×ƒ€°‚ƒ†³îøãÃ耀£Ê›®ú­Ÿßý–üÛ¹êë”àœÆ -Ùõ«ƒÂÝÃêûÇÃýÓðÓúºš€È·¸å®‚¸ÓíùÚ‹Ý·ÜÒ„’•Ðð¸õˆ¶üø»è¸ë†×ÕàÖƒøÄš®úšõ€À„†³ïèøÍ•€Ç´á - ê߇ˆÄÞ´ÒÜýǤù§ù†×Ö˜¼¢„×ýºÀ Â¹ÃÙ·¼¦Ú„¹à‘é¸ê×΂‘»†÷ÿކ‹¥‘¤ùèªø•‘À£Úð‰÷—Üñÿü -¾ø·†«ý´€œþ˾áÕæ£½€’ÎLJ«þ¸å Ð á¬›ÀÞå¶€€°âÒÍÛÀ’üÉͦ½€¼Îê¢Ô¿ÖÐð‰æ·ê€€˜ÒÁÃÙ·ÜäÔ -¸‚€°¢¼áͨ͠ÉÃÃÐÚ€€Æ”¿çó•êÏõî·ä„›îÔׂ€°­âÍÃÕÿ¶ó•ÿ¤ßðƒÎƒò€ÀˆšÎ¾áø•€€Œ á¬Ž›®×–ƒ€° -÷‚†³î¸®²”Œ€€‘åï‚쨇É踀ÿ¨Å›†«ÿêûŸþɾášò‰«€€Œ¨¿¾êÜõÔú­ù†¥—ß»‚€ÀÈ׆ϡ¿Ÿ†û¶á×Ê® -¸‚€°‚†³î‡øÕ¢Ü€€Æ¥ÐðÖ¯ºô”–€€‘åïÓ¨¯…Éò¿ÂÔðÆÐšðÖ¿˜÷†Š€€‘÷÷½Õ¶ÐõÔú­™¹†ëô¦¼óÿ -¸‡€àä½÷þƆ³êøÔÂå¶¯Î–Þøú ÆÞ¾öîìÚ’Ýè¸Ïú›žÿþô𭂇‰ÃÇŽŸ¿¦þ”¼€€á‘•¸‰øæîù£Äë‹à±á -±õõµ é¤ÔÛÑë‹¶ÉÃÉꜼ•®€ÀçÈŠœ„æÜà뉴ܷŒ§È­Êþ¹¡¶ã°˜Œ³¡Õ‘¡©¡ÁÁÃŽýÛðŸüð¶€à¶ÁÃÑð -€€ˆÜè¸šŽ²€ËÁëÁ𒚎€ªóÜ»ðÚêäî﹚׊Ï䟿€ÍîÀ€€ÆÈØäÈê”üͳӮ¶š¤¹»¶ÅÈξ™—ãúÈ€” -Ý¢’¶­ÙúÐá «Öòì¡êË©ôÛ’§¿ÌœÉÀ‰³ßåÄ×èêœó„ÅÁà‚ù´ºÓ˜—ç‹ÅÇ’ªÞùŒê©ôàü¸Îõëà±áäö£«ð’ð -ǵ¿Î˜Œ¦˜ÏçБÃäµÞ¯®à±öõµÕöþÂÞðõ¯†Ÿƒ»†“ä…ìþƒƒÁà˜ÍËñãÇû©ûÎÊ«ÕÓéœð¿ÛʸÌÃÉÆµã¿Â˜Œ¦˜ç -ÿ¤âçž­«©Íò‡´Þ·Ïý‡„§†ß‡€à¤ÄùÃëëªÔÂÇÒ­ùÞÝòοŽÁà°Ìˆ†Çñ˜ÌãàŽ··«Žå뺪ߟ‘§ƒ†·€°’À -âïží¿É¸ÆüÃÛ°˜Œ†íÙøÑð곺‚è±½íÑ…š›ŽÁàÔš€êŸ¸ßòÔðÖ€ô€Æ”·¼¦Ú¡¬®ÎêÔ¿ÖºµžšÞŠÁà¾°ÌÆ›†›À -’§†·€€°Ï‚†£á€¸…ÐðæïéÜ€àÄ‹†×™ÊÀ’üÃÛÚš°€˜ÁÃÑ𨀈Ü޴܈™’¼´¼¹™€µ€‘寮²Í‚¤ù†··Û -°€€˜ÁÃÑðà€ˆÜè¸ó†¡Û„€€Æ¼è›¸Ùˆ’ä›îѳ‰€€ŒøÓðƒÈÂÃÀ˜­è¸ó†‹¼À€€£Ý›þŽ›ä¶áÕæƒªÈ’︠ð€ -Ž€Œ á踀¨„®´œùÃùÀ«€€£Þ´ÜÁ¤‡É踀¨è…çÝðž·¸€€°¢¼áæá“ž¤ùè¸Õ´‚€ÀÈ—†ÇÉÉÛ¨úªýÀ–šŽ€êÁà -„Ù·Üêí‚€ÞàÄ›†ëÀ’‹‡†Ûš€€˜Çñ¢áÆÈòÃÔðÆ€€ÆÐŠðַؚ؀˜ÁÙ·¼‰©‘€€‘÷¯ïÕ­á¦£Ž€¤ùêøƒ€€ -â£Þ´Ü‹’äΛÞÔÔ€€ÀÁˆ—·èÁ’ƒ‡†·¶€€°‡‚†³ïø½€€€£è¸šŽ€ñ‹çÝðÆ¡†º€€Æ”·…Ü訄É踢€¨…Çà - ðõíøµî…ЯݶÜ߉‹’ä›ÞÐß‹²€ÀˆšŽ†ƒÚÀàÂÃÙ·¼Ä†€€‘ïš®ôÉò¯¯« €àÄùÃúÈÂÃÀØ­è¸û†×à -¶‹ëº·¸«÷¯¶Ãµᓃݷܧɽò¯«­†»ºœÉ¬»øäç¸Ð𴜌ØÃÃޒ¼µ¼Šîðö̺§û–ÇÆ—­ -¯Ý·»Û¹ÜÑõÐðÖ¯­©ù‚»œÉ¬»‹µâùåÛäß“ñîÀè¸û†›¹áŽçϬôŇñ¼ò­®ÿ¤›í¾ó¸Ó¨ï±¸ÞÛ’Ðð¿çÛ†Ëïœ -±î´è¸ó†×ã›áŽÇ³ëæù¢øÞù–îÛáŽ×¥áÓʰå›ÞŽ’ä›ÈÞÓí‚»œ‰êí÷­âôßâŸØè²¥ûö÷⻇»ŠšÎ¼ÑáÕ¦€åè“ -à½íðÀÃÙ‚·Üˆ÷¦Îêμ¾§»­€’µÐðÖ¯®²ø‚€°¢¼áº½Êòä¡áæÐ£€€£Þ´¼Œ¤ù글׀‘®¿¦óÞúšª§ÒïÉ -†·¼Êì€€àˆ„Çàð§¡áÌ›î҃܀°‚†³î¸ƒÙ¤‡€àÄùçõšïÀ’§Ã†ë€€˜ÑÞ§ðÊŠë ÉÃÃú€€ÆÜ޵ü®î¯¯ -„…Éò·™õ쀀Œ¸¶üæðë¢÷︦üŒªÈòÔ𭀄€£Ê›ÞÑÖ²‚’¼´Ü …œ€àÄ‹†ÿÓÆŒ’Ðð€Ð‹Çò†—ÿÓ„’ä›î´Ô‚€ -š°âÅÃ¯Ý˜Éžš®¯„€˜àÄùÃËʯ‘ƒ¤Ï×€€Þ°â®á½¢ŠÔÜšþÍ饊¤ßðƒÞƒ€ÀÈ××Ä®õšúŒÏ·†ß­°„Éžš®Ó€ -¼€°¢¼á×Ê¢®‚¤Ï¯€€àÄùÃËËôŠÀ’üÃõºŠ€€Æ¼èø˜ñ¾ÈòÐðí…€€£Ê›þÁµ¨¤ùê¸çú¯ÚŒ€ÁÊÆÝûŸÛøµ -ب—¤¡á€ –î÷ûüøãÉ•‹ É¾áƒª¿Ä…€„±‰å¯¾üž¤‹¡á€ –ïšØþޤ¡á€ ’–寺ô–²¤É·Üõ—™º‚€ ¦¼á× -’Š¿†Éòסý¥ª€ ˆù×Óð¯À’üƫʊ€˜ñ‹×ðÞãÝ›þçù◠ɾáÁª¿µ®€„±“®ÏÛØÊº¯á®á—Šþƒ’ä›ÞÖú‰ -¢€€‘ïšþ¯¤ßðë׋ð€˜ÑÞð©ü¯À’üÃÕ€ÿÊ®€ˆâÞÌ´¼ïŸ É¾‹áª¿‹€„š±å¿˜÷†²¤É·Üõ§‚º€€ ¦¼á… -“¹ÿ€Éò×åýᤀÄÜžµ¼ûñᅗȾ‡Éò×ý°¡È€Ä”¿Æ§ÿÂç É—¾áªŸ¾Ž€øÁÌùÃóÎÿ¤¤É·ÜõÃ蟠ˆùÑð -ö󟂤ù†«ÂþØŒ€„±åÂϽ÷š¤ÉŠ·üâ€šÆ¼èøÙÏÀ’üÃó¯üŽÞ€Àˆò†ßøÕúã¤ßðÕëﮇ€ æÚáðÁî›þþë -ÕÁ’üÃóÏÁž†€àÄáÃܵºÓù¯Îÿ¤÷Þû™»†›“ÛÍõÿ¦€èÀóôǦáŒÑ‰Û¾¸Ûø³îËÓ éíãûǦ­ÙݽáŸâí¦ú¯˜€ -œˆâŽþ¸ëø—þùÓë¶ž¤°Ž¹üüøÑѲò›ßÜ€™»’­ª­‚óÃñ»è€Ó®ýñ×ðÚ«…çôÚâÒ†¢²ª¤«öðÈÁþƒ’›Ðà -ë‰ç†ãöƒþ€Öœûã®áì¤Çä­¤òíà˜·Ã€Å‹ð»á°˜Ö»ãèÏ÷†÷ÙÙ¤“³Þë¹³†ÇôÀÀ­‚¤àã¾õîøëï¹¥÷¥”Ý -•óìñ÷¦—ù­Ä͹¦ˆù¬³·Ó”…¢®©»ã«ë¥ìÓ©ï¹æ·ù†÷áϧóÙ®”þíöîç××ᵺ÷ÍßÀþù¯óûÕ§ÓôÃâÛ¶ëî«Ýùô› -øâž·ú“îðû´áýÿÇÚŸìøùƘ×Ψà»Ï·ÙÈ÷üõé”Ýè‚§ü·«…׳ü„ç¾ûúªé¼…üÇ×·À® ßýë‚÷çñêöÿºßñÙ -Ú·¹Ï¿Ïýùâõ¾½³àç‹´á¼Ãψ€ €ý¿™þƒ¾Ù -] -::^ [s0; Widget to implement resizeable multipane windows.] -:: [s0; [^topic`:`/`/CtrlLib`/src`/Static`$en`-us`#StaticRect`:`:class^ StaticRect]] -::= [s0;= ] -::^ [s0; Single`-color static rectangle.] -:: [s0; [^topic`:`/`/CtrlLib`/src`/Static`$en`-us`#StaticText`:`:class^ StaticText]] -::= [s0;= ] -::^ [s0; Static text, without accelerator key processing.] -:: [s0; [^topic`:`/`/CtrlLib`/src`/StatusBar`$en`-us`#StatusBar`:`:class^ StatusBar]] -::= [s0;= -@@image:768&156 -€ƒû€™€€€ƒçÿ€€€€ø§œí•ÝŠ€ °†»ñ÷è²³§«„ÞÁž³„¨öÝÃü‹áæãžò“ÁÑҶ¤ØæŽå…–¸ýƒ€ €€€ˆÌ÷ü -¦Ù§ûÞþÁÊԶ·„£üÌ®Œá²Ï˜•Ðì¼ßáß®ö¯ðØóµ¢ç “üðõ¨žÄ™ì¾£¼ˆð㦦«ŠÏêõßâÓ辯áÉûéÆšŒÜ -¾êƒð–ª±†€Ð†ƒþ©¬€¬ -] -::^ [s0; Displaying informations at the bottom of window.] -:: [s0; [^topic`:`/`/CtrlLib`/src`/Switch`$en`-us^ Switch]] -::= [s0;= -@@image:931&131 -‚ƒ•€•€€€ƒëÿ€€€€øœí—ÏË›ÁŽ”Çóÿø¼Û‰Šž¼ä¢žÇ½ÚƒÄ¹ŠàÄÁ”ª”žÈ‚­é¡­”Ñé‹¥‘Èêç’ƒµå—©’ -”äí܆֥åÖ‰…û¿äéß²ìÌÎΦ“ᤡ³ü‰Éîþä÷³ïûöÍú›«Þ²¤¤¤ç¤¤¤ÆÛÙì¿ç••糳뼓“ÏææÖ׺×÷ó¹Ë‘‚ -ü˜ÞÎôÌ™Ìúª•Éæ‹ü×××¹ÜÅÎÿÎÛééµ­­±×£‚°¼œÀäÚÜܬ–¿–ùËåÍÓªÕª‡®ëµÚÍÑþ‡àøö¶…¬’‹‰ðÜ™óÚ‡ -ž€öÅñ¿‡¯ŠÊéÇœöÙäЊΎ’ÞÔž†á˜ñ¦ùûÛÂÙÓùÓ¯ÜÅ™Ãûžì¸¯ÜçñÕüØ€þ§î©Øë¡Š¼»Ö¹ý—”ñ” -ì‚·’Ñžõö‘°¬ë÷÷ݼ›þ¢÷ö¹²ç—™¥ÏËñ‹Âøô¨úøóØš¥€Øû„„Êé¸ýØ‚ÑÆí»´÷ ™¿ÍƱ£Ñ¨ÜÏϧ¦ø®é©‘Î÷ -°öýóƒÀ»ãµã¸ý³¼Ë„ÎþœŒ‹Àå½ð€ß©§ú蔨²¥½¥•¨ÌŠí“–àû»Œ›ÿ†ô‰§½Ôµ´µ•ò‹•¤î’Àüäñ€òÊžï -ÿíÝò÷åñ£¨ñÕ×ùü˜ØÈ«ƒÅ†Š×±ö…‚¦Š­â¯Ú§÷ºÇøÁê¶›ççßþø’Ÿää´ÏÒОµÔÌÛѻ豺öþÌÄêØü€ì†ª -ÆýŒÉ½Š”Ãªšž£¤â±ý›´¾èŸÈô‚þÒ«ÕÚÛû¾È¼ä±Ï¿ÀÁÍê¦Þ»ø÷ò÷’䊠ª°©úì¨áö¡£°üíÁë‹öÉ® -Õäî¤Êå—Ϋž•ņСðÔÿÒôÅþ³ïøºˆÆÀ¤‚¥Ü¾¨™ü¡…í‹Úß´ÏÆØ‚ÝÈ‹‹›ë©Ô›ò¯Ô’ÚÎþäØÝ¥€«‡¼Èàà -¨–˜¨†ýäÓϰý„­§¶ˆ­èýѾá‰ÀƙǩÀºù……θ†Ž°ð½ÎÀØÂ–“éÛ–¬¾èŸð©‰²Î–‚çÆ‡Ô·¯Ëõƒ ÛŠ¡œÔÚÑ -€Ïþ©©©©©µ©áÔßѤрã -] -::^ [s0; Value selection.] -:: [s0; [^topic`:`/`/CtrlLib`/src`/TabCtrl`$en`-us^ TabCtrl]] -::= [s0;= -@@image:1097&618 -€ƒ¬‚º€€ƒÆþ€€€€ø¯œíÝËòÜÆ‡–Æñú¥Ç¿¡†ŸàöÞÎâÆ–Üú™æ¹»‹‰˜÷˜ÝïúÖáËáÖØšÙ¨Š«ü«Ñ°¹¬Ò˔ͮ™æ -•ËêµúÅÉÖŸ†áì¼á ³«“ÀýÏüÂˆÑ„ÔØõ˾âÅ…××û€×€€€€€€ü€–÷ûÿø—枨Ÿ‡€ÀŸÌð¿ý¯ÝÁˆ¡€¸©çÿ -ßþßêÑã²ý³Ø®°Õø•½©æÔŸÊ€Šõ˜§ï¿Þ½î뇧êí¬‘þ»‡ÕÏáòÍÔÃÀš©«žð’¨÷°Þ繿þ—©Þ‰Êê³Ä°ºÌ -¼«÷Œ¨÷°Þ¦äú“ŠÀ¤óÌ«÷Œ¼ûÅûÊŒã߽Г•æÈ àõ¾ºÌ ¿¿ý™¾å†±¯Þ‰Ê¨³ä°º’Œ›ÚýóÍÁï‹ÿö“ÊŒãß -•½“•æÈ à’õ„™Ô¦å®Ûݬ·¯²Í†¨Ì¯Ö©ÜâÿêžÓëÊ×¹—üÊè·±¯þ¸©Ó˜ï¿°ù³áדº­ï‘ÀŠô˜ÁÆÿûå¯©æŸ -ëÑÛùòµ›ìž¼¿íÔõ§™ýÆþÍ¡•ä¡ÊæÒ÷º©Ø²ˆØâŒòÀþ´çïøË¢™·Ç³èÍ¯×Ø©æ§™Ï¶ÜÊʾɸæþÛó©ëϲŒýš -˜ÃóרéíÒÚ³Þ¥–Ëî–‘ÀŠÌýýÐí˜ÊÑôñ׉Îî•É ßÞÿâöÙèïþŒÿºË½ÛÞî¦áž£»ñöß¹»©ëûŸÑòÖˆ÷’²Œ -×ý©çÐÞçôã¬Ö·“½ÿ™Äî³÷ˆàÅʵ¾ŠæÐè’»á÷Á¿üõåíÆï“ÐÙâް𿻬‰î§ïÜÖ»—ðÍðÚþóëÊ×—öŒŸ½–Áïãß -øð‚Ó»öŸþÚ¡¾™ÔùÏÆô›¿Ç€«²ô̆ÉãÈôóßúæ…„ÙáôÓÆðáêÉÐîÿ’ÔνŒîµ¼øýÉ›¤ŒˆãßòÞ¦ï÷¾«úæ¼½¥ -µ–Ëî‘ÀЬÍÁáü†ýÇõçç’æïѾ›Ã‡á’ðÓ÷ö†»¼µæèûΣëÊן´ªÉʰö¥çíßÒñæ»ªïÆ™ÛÛê¹äžÍ¬ÈÛ¿ÉÈ… -ÇŽ»æø†Ýÿ‚¹å†ëÌýÔæëÍÌž¢ëÊ׋Ÿ´ÉÊïãßüöŽåǛ慎¾™Ì×¶ÿ¯ÑὂؑŽßž§áæ§§™Ã¹öù‹ó·Ý› -…îžÂ•Ò»™ï݃·¦üýÔ†™¤Œãß¼ò‚½½ž™Òï“ü§òæò¦‡˜ê¶ó€ö֤Ìúù§÷ÿ›Ȩ̂‚­ÌªÍ½Ó¦Íæ¼÷²ŒýåÏÆ -¶ÍÁÀêô˜Áׯþ¤çøßžÏÚ¤†ûšüŽõ«÷²ÇŒýÅÎÈ×ͽÁÀêô˜Á­‡ó”ùíìëÆ÷¢ÒŒ™„¬Ú·™ôÓßž› Ì°öÕ»Ñ -â醌‚Ö§ÃЌҿ§ëµŒòýõÎÔšéä•ÀÈõ˜Á€Ÿ€ùÓÿ¾°óúÏ €ÀƘŠùô¿ÿ ƒ”€€Ë£ƒ€€’ÚÈ €€–²Œˆ€ …Œ‚€ -Ä衃€€ÚÈ„ €€–²ˆ€ƒ …Œ‚€è¡‘ƒ€€ÚÈ €¡€–²ˆ€ å­“™¤þ¶°¸’©ëúœª¿½æ×ÙÆ³è–…¢–©ü†é÷»ç×úŸÔت -¢ÜúøäÉæ¿ÿÿç‰³Ãæ­ö†Õöûß»ßý«ÄâÏÿÜÞú鹫ÍÙØö†½÷ï÷¼¹ó˜±ãÚ﬩žÁ•ÝÿšÉùݱöûƒý“ãÝÜܼ -žûöìù¯õõ¢õµð†õÕÏÏÝ톙„ŒùìÔÿ°¿–蚤ƒêºÍÌ×ø³×ÿøá‡èÊôݹ•ùš†÷ŸÍ¯ßÓÏèö̰ëÈÖœ©ï«‚»–ïâ® -Ι½ß²ƒ¯îÂç’Ö™Ôÿ°›žû´ƒÜç¢îÙôªÛ“¨èÜ‘»Õ¿ÿþñ•Äñ†™Ç³ªð¡¤ƒêºµÁ“óÿ¬³×ÏŸÏÏÝ—÷¿œ´ëôºæž›å -Ü™ÔÓϤæäûŠ»’ž¨âžõ£«Ì·ŠûÏû Ê“ÞðØÃЌڲ—ò÷¿žÙ©þÙ·‡Ó‰‚Œš¾ýˆÜ®¯Ë šî͛䴯ìíèúþ¸´ŒÖÃá -™°ð†Õô³ß‚†•õÕ³’¥ßß¿¤ÎðÌ£¥˜ŒšôЊÁüÀ†­—ê÷ÿ¿¹²Þÿàýáö¸¤á÷Áøµ™ÔÓ­™œÂæ®Þ«œ­Ñ¦îîîä™ä -ïý€Î½¡ùÙøÝý¿Þ½‡Í¡¤¾»ß×ÑüúÌõ–žØè’ÉðøÓ‡©¹ð×è‡Ñ¥ýçÇü„»§³õþÉ£æùÁ‰ƒøàø®‡«ÙÛ•ÃçÝõ¼Íî -Úãßä¥ö™½÷»èÊØžê–ÿüúÇÃŒð¡Ëþ˜®é•Á£öÃÝé†Õôä릧ùáïŽÚÖû»Ž¡ÒÓܵº©¢Ó µðÎÔñ¿™ý‡ùÍÌꩲ«° -£·ÑØÉõ˜Ùê­¿Õô°§†Ó—ðÜ•˜»ƒ‡ò‰œÙ¹ÿ‚èÇÊ’ÁÑÄàÉ­™Ý¡¿¡–ä穾±˜»ÙÕ¿ýüҚƭ¸÷Û꤃êýºµ“Óýû® -á…ýáð°óßõõ±„߇µçÊ šþ²¯ÞÓ­É´éʲ¢’ó§íô–ʘ²¨üýºé†«Í É§¼ÿˆ£õž„‡µßʆ¹•Ýóª¶îÒÛ†ÿ‹ -‹êŸüõâ°Œ–óËýÔ“Œš î—çÐÍ·æˆòÆÇ«©³×éßœëጪéâÇØÌÁ†ÕŸÃ¥©™´š–Ñ÷©›ÚªÿµˆùÞÅæµ¶æø‹»¸Éç­ú¦ -è³ß£áÁÍ—ÆÁ™Ä÷û›õþž‡Œêƒê÷ž½÷£µÝÛÞªƒÜª×È šîíô½ó¼¼œþ·îŽçÖ·ÇÚ¾ƒŠ•û©È ÉìéÖò–䙔Ђ -åü¬Íï¥Ùƒ§¤·ÑóÕà´”³È’¸£™¤’É¥Ô†å—Âç‹êŸÿùÌøãÆú¸°“¿ÏÍ®éÖÌÎ÷¶÷ë×ìèØý÷¬ùÿŠÍ¾‚ϬŸªî -ާ¼íÝéôè ‹‡Ëý×щ™š’òŒò¿þ¥É è×ÂÛȶ¼³ò¯ß™ò…þÿÐæ‘™Á¹‘¾þ¦”•—Áï¥þÿÐêêÉûÙßÙ¤µ’¥ºäôîÒ -ЛâùöªÿôåÅӉ⨦œÛ÷ºšÑúýüý­™®óé­¯Ÿž»ÚŒÞ§ì˜Ø©þïáîÞ¢“÷ɨ鯶àÐö±ê¯õÌ­éç¾ùß²ðûÅÍú† -š»Ô¤ƒ¢§ÍÇñ¼‘Á¨ã§±úŸŸ¾–è¤ñƒÚõ‹¨ØöÑ÷Á”µµÎê‚ý³õäŅՔׂêì¾µƒ€Å¬ëñ‡¨þô„ÜçÛ©Ì €ÀªÁ -€€€­ä€À‹™„€Ð†䀴첃ÔÃÿôˆ§åÝÖÃõ§§àºÛÈè†éÿ¿ŒêôÔªŸÁÚÝù³µÞ§µ¶ŠŒ•¢¨·Îêý’è–þ§´Ñ½õ -‰Óó×›Á†ÑÁ”ÛöÜËôòøþñµÝšÉù¿Ý±öûý“ãØÝÜܸ׌½óººÚ¸ƒºê×§ç®¶ƒŒ¢î¨·Ì¬þ°¿ë–褃êºÍ°Ì׳×íÕŠ -ƒä׊כÝÅâ©îçô¦”„Ý…¦á×…÷έßÄ»ÖΫ”ƒ¯îç’¦™úÔðàËïªò¶à£Ïý÷‰Óµðä—ïå­ÙÔö÷”Ö™Ùý‡ù÷¯¤ÚÝ¿ -ó¨æáÙÙ­™›œû㙹úþîþî¾¼Ÿ®˜²£¼æÜ“±Ð÷ÙϤæäŠ»¾’ž¨âž£«ÕÔçߜ簣íÏŒªÜÉøÜˆß²—¼ù†ÿ­«Ì¬þìÛ -‘ƒÄÁ†…ñÓùЩìÖÌÎÿûÂÞŽÖá‡êËî¥Û–ΠýšþæË ²®ÞꦙäÕøê¬Œ·™¢íÏáÞÆ«ŸÅµºê¨å²èÖ¢ƒÖøÝæÖßÿæÊ -öúÿƒ‡Ûá×’¶×ÑͬŸÑ¯Û³¹Íܵ󗨎ǫ©›Á››ù†ù¿ ÀóïÈþö×ßå÷ïᳩÏÃÎ×Õ´ŸÓ½É…§¶º¤¼Þ¡ÔáÊŽ¼úá -¢ôÉæ²¨ú¸¿‰žÃ⣖çíÐðïáêöö¡ðÙ÷ï“ݯ웬Ծ£÷ô—ݙҩ»«ÍÂýý£á†¸¨å¿Œ—ô’ÁεݚÉéÞØß»£ÕþŽã¨ -õÔôΪèÜ͓φšþ²ûŽ›™ÔÒåׄáïÑ“µš¢‡ùÕòÛÅÓÿ¸‡©çªÀÂØ™¤¼äÔù“Ο”äÙÍœ—Ô’Ñ•ò›Êîöžê“Ú²Ì -¬þôñËë˜ËãÞí«í†•êýé«»µ“Óÿýû®á…ýáøð°óõõ±„½ß‡µÊ šþÛ¼ûòƒ²æ°ê´éêôÄå—åäדçÐøúÔ¡õÒÖ—Áò -½¯ïê Ö’ÁüîÅ÷œŠ­Ô¯¶á¿”â™Ù£ýÉׯ†Ã°ó·Üϵ̠≯ûå·æòƢǫ©³×ßœÚëጪéÇØøÌÁ†ÕŸ¥©°™´š–áñæ -Ó¶Êÿ­¢÷‘ÎÙ­­å³è¾³‡ŠûÐ’çøüÙ†îÙۉ㷇ðͲ¨«þ²³úޣ箪á¤ûË›þÝ•œÖ·öºÞÞÄÞŽ¿Û÷ÇëéÛã­ŸÁÅý -˜”Œ–Ééò«–䙔Ђüކ巒ìÁÒ÷Û蹪Ðöÿ⇶©¼ä¹”³È’¸£™¤’É¥Ô†å—Ò™ŠåæõÇß¾Ç󘑞®ì’ÚÁ•ßôÊîÍ -©äôÿ·¾üð÷ÉŽÖ÷Ç’ÿÉÿ ï¡·¡£ÊóÒÓÜÏô±¸÷šÚ‰ÊÓßը䦕¥ä™äþÊ’Áѯ…·íøæ•äß¾²³æÐŸ´çððÃ¯Ç -»ô«³é ¢Ïÿü¡Â…Þ’ÛØªÅ·Ù峱趖ɻĈ€Š÷Å­ßæÖ–ÿôÅÓ‰Ö™°”ýä®Ó­»úÝÍè½¾¾–ÞÌ×ùôÖÏÏÜÝí†îû¤Ì -Ö—¬¥“ˆºõ¿ºûéÖýÄÖ§ï“ÐÓí«ä÷ÂÛ…ÕöÌ»­éç¾×êÛ¦ý¿¸¦ß²ú÷­þêÙƒºŒ¢ú«»¿öšþøØ¢“ŒêýÕ­ ‚÷‹£ -ª¨·Îêý³ÐõäÅÕ”×à‚ê쵃€÷Ŭëñ¨þô„ÜçÛÌ €…ÀªÁ€€­€ä€À‹™„€Ð†€´¼ì²ƒÔÿôˆè§åÝÃõ§ -ЧàºÛè†éÉÿ¿ŒêÔªŸ¾ÁÚÝùµÞ§Öµ¶ŠŒ¢¨·‚Îêý’úû§ÿ´Þú鹫ÍÊ ƒ¨Ê­»®¸¥ºù¿¸šîïÍäüîØûýÇþɱ®®®Ü -Âë†ÞÝÝ­œÌÁÝõÓó×›ˆÁ†Ñ”ÛæÖ¢¿ØßËô’ÁúµÝ榫™«Ùöê…ò뇅««®ñ”÷³º“ö•—¤ëÕÒÕÁÝË·Ù‡ýóåþÚø -ôñ¿“´Ì š±÷€ïø¢þ±ÛåúÁò’ï•©¹þÕÿ™Ùýù÷¯¤šÞæÇµøáÙÙ­·™œû㙹úÜþþî¾¼Ÿ®•˜£¼æœääÜɲ¨¦ŸÉÍ -ÁÈ•÷¥¼ÑŸ½ÇרϾ¹‰ÎáÆ«Œêò϶çË ¥óÁù›§äкÊ̇êϾ½È”äèИ·••ÊîîÍä´¯ìíØèþ¸äÞ²Úíጪéç¾ -ŒŒªëªæªÊÄÆâêŒ×Î㊹ÎáÆœ™Ô´üô‹åЬÅþ†­ºÌ¬¾ÿÍ•õþ‡ŸŽ›·Ã¥­¾šÈݾ߷æòš¡¹ê¯ÑŽÖÐÓ···òŒò -ìþ’âÞþ»¤²ŸïÞÃæžÒŸ¯«è¾¦ú‹ÏìôÉžø¼©Ã”œøÏôÃè’µæ•ÛùþÈÃÓ×´ùÐòç½­ðŸµÝ¯×òžî½¤¶ÙžÉÊ -±í³ú÷Ñ•©·•º»ªÜ׿´šæ€ÛöÃððɧ™ÔÓ­™Ïœæ…½»Úíå︆ÊÍ×蟤ŠÎ½ÔºÑÅýä§ÐÍË͕݅½ÅÏÔ–èˆä×Ëï• -ô½Ìឦž«Æ‚³þ¾¨ÿþ†Ó¦‡¥ùöÇ“§µäôÿ…ü†’§ú“¤–¬³«¿ýÛüҚƸ÷Ûâê›ÁåßúʶîÍäôÿ¾ë øáÿ¸œÌÜ -Øýý¬á÷Á­ö²¨¦Ÿï¾Ü‘‰Ô³çšôµöú¢òËò«É˜³¨üýºéîëÌ ÌÉ‹ÞèȽšœÔÔúç½¼ƒÜŠî¨¹•Û©íÃÿú©Å²³ú“¯ -äÞŒ†áêê˜ÁÅß÷ÊžîÍ䌎ÖӶ殾¹Ö™¾ÔÓ°™‚Œª¿ËÓ³è´î¬ÂãÍì•ÿ”ÚÄÚÛª™¤ù¸ÖžÓ”ä¹Þ–Á£ -šûööâí¡Üý“ŒêªÌ¬¾ç÷è¹ë˜éÞóò†ÿ—§Õ­ÿ®———ÃïßÖÝÑúöØË€çÐñ¿…™¤Ù™¹ÍÎ’¼ƒ¼ÒÁÏ üÖ’½Èú›½× -œ…æý»¸î³ŠÈ’¸£™¤ÉÉ¥Ô†å—ÒŠÌåæõÇ߾󣘑ž®ì’Áí•ßôÊîÍäÔôÿ·¾üðÉûŽÖ÷Ç’ÿÿ¤ ï¡·¡£óåÒÓÜÏôø¸ -¸÷šÚÂÓåßը䦕äÒ™äþÊ’ÁÑǯ…·íøæäÒß¾²Ú¿Êä¿ÂêªúÄ蟪Ü譹ɥÒô“ݶƒìîã‘´ËŒ Ìð×Ôòåæõ -¨Çß¼•è•ÁõÑÇæ²ÝºÓßÕŒÖëëëÉòôÏïýôÜÅÕæð¾‰”å«ÖÝÏ·žî¥ÜºùŸ„šîçäþ§´ÝÐùõ˜—øç¶©­­‘ÓÕŠÎÌ“ -¡óåÐøÄ‹°—™Ä•×Ýß»¿ü¬ÑɆ³µê–ÐÁ÷Á–”åÖɽï¶û ŽŒ¢¨šâ™úÁÀ­æã°˜õ½ŽÕŸ—ž€ëì‹™„À€Ø…²ˆ€  -Á…Œ‚€è¡ƒÈ€€ÚÈ €€¹–ÍæúŸžï᤬ëñ¨þ¡ô„Üç›Í ×íÿ‡ÁÊåô³È»»¿ÖûˤÆÖ‘Á”åÅÖɽÏÂïïÄÖÛ¿½÷µ -ЙäŹåÇɵħï—×ÓÏ­™œßë¿ùß¿¹ÖÅÅ…þûÍЫ««…¦³¨«þúîêê³È ŠòËÌ•ê‡ûë‰Î²¨¦ÛÌôµóåÕÞ­Àþý  -¶ðµÑ¥žâþ¼Æç®â갪ͺª¸ëù¦Ó»Ø•óê¼Ã¸ŸÉšæÐ«ê÷ÆÎíÁ¾çÍèó¿æª­·ŒÓ®î³Ëß¿ÿˆê¿Ì¬þüñû×’¯å -ÈÚ¸÷·æòîýåæêùù¹ëûòþ¸âŽðÕšñ’§¬¤ƒžêú™ÔŒÜñ’דÕÜóôŸ…úì›ãœæÿ´Ê Ê³ÝöÎŒ„Ïý¥óÁ‹¹²èÝåæ -…õçßž¤Š²º¨õª¨ø¥ÑÒå·æòÚ—ö‚ö´Ž¿Üò¯³Ù¶ð†Õô³„߆•õÕ³•¾¥ß¿¤ÎðÌáÓøÅ™´“†¨™´ë‘Á«®Æ³«ïÿóå½ -ŸÿÁ‡ÃíðÉçÃïƒê²¨¦èÛ³¹Íܵ—ù¨ŽÇ«©››€›ù†ù¿‰ñàïˆÿÈÒÙò÷ïᳩÏÎá×Õ´ŸÓ½…ä§¶º¤¼ÞÔáÊŽ¼úáô -ñÉš³¨ÚüèÇ’ü£ÈøÐ£½Ïú÷¹¿‹Ýý˜û÷ëµ¼‡Ò›©Íö±ï²ŽÒûŒÞÝôåîʥ÷õ»†™à–ý°ÚÜÒªƒ¼‡ÌÏ’ÝšÉéÞØ -ß»£ÕþŽã¨µÔô¾‹£ó¯µÎÔñ¿ùÄ©ÔÓÒå×Ñͱ–®ãý¶ÚìáæµüÖÑÚ”îá깪°§ëǔßõ’ßž¹¨ü³Ø¾Ü˜Îè” -¥ä·Éì¨ÙùéªÏêɲ³ú«Óǯ­áŒû³·­Î²¨¦Ûœ³¹Ý¿ïšÞØŸŽ‡³×ߤŸËøýЫŒªéÇ»¯÷¢õ¥Ú’èÒÕèۉʯɯ¦Ï -÷ ðõÃ꤭Ʊƒ„§­óŒÇáæùµ³‡•ÖÿÖ‡‹å™äìÖôÏá¦Ã‡¥ÑíÃÿ©Å²Ï³ú“¯ÞŒ†¬áê’Á÷»º—Ÿ•Ýš¹É™­¦ÌÜ -ìýó¬…³¨¦ÀŸá³Óçé“ý³¤‰’̜̔︺Õþë‘ǽ‹Ìêí­ŸòÁ™ãœýºÈ¼ªó¬ÏŒ‚¼É†îÙÛÉææÈÁ–™ƒÕ÷ž½÷£ -µÝÛÞªƒ¼×ð¦Ëöë§ëåÏååð»õ÷´Í¾½Öò™ÔÜÐÏÁ†É¦Ê“½³¤Ï ‚‘¸³º•ä’ÞÆ•ÏÕÙÿ®Î¬òÄò‡îÃŒ…’¤Îè†ÉÒ -º©•Áù…”â½™Ùýñ—Ï¼ææ¤‡‹»ùÛ›ìšîÍäôÿõ·¾üðÉŽÖž÷Ç’ÿÿ ï©¡·¡£óÒÓ™ÜÏôø¸÷š®Ú‘ÒßÕÙØä¦•ä™ä -ôþÊ’Áѯ…Ñ·íøæäß¾¤²óÿ¾¨³ðô«’ý”‰ÂªúœŸªÜèέ¹¥Òô“„ݶƒî“¯úÊÓŸ•Ïžê®®²³ú£¯žÊòô’ÁµÝºÓ -ßÕŒÖëëëÉòôÏïýôÜÕæÌú¾‰³ïå¦ä ŠžÎ°”õëÿºõð®¯ÑÉû¤Ôôº»ß»¡•½ì¿îóÙúìꎳæË ÝÐËΞÔÜÏýê« -Žõ÷×Ο˚ô’Á­º…Ô±ðþñ”åÖÉÙ½ï¶ ŽŒ¢Ï¨šâúÁÀ™­æ°˜õ½¾ŽÕŸž€ëì‹™„€Ø…²Œˆ€ …Œ‚€Ä衃€€ÚÈ -Ì €€–ÍæûúŸžá¤¬ëŽñ¨þô„Ü纛͠íÿ‡Á¥Êå³È»»ß¿Öû¤ÆÖ‘¬Á”åÖɽϜÂïï„ÖÛ¿„½÷µ™äÅ͹åǵħï -ü—×Ó­™œßÌë¿ß¿¹Ö÷ÅÅ…ûÍЫ·««…³¨«þÒúîê³È Š®òËÌê‡ûëù‰Î²¨¦Ų̂ôµóÕÞ­À¶þý ðµÑ¥ãžâþÆçÂÔ -ûë¿´ïªà®×å›ìâ—–ªÆ¿ðâþ¦é˜äÁ³½ÅöÁÞÿ¢Ïýèõƒäҥߪóý ª½ÿ²³úóï߿ɴºþÐÍÃã²²Û³¹÷Ǽ²óõüüÜý -Àù¿Ü±ÇøÍ’¸É³×’Áµ±ýÌêÆ®¸««á‰ªî¹ºÂ†ýöÍñ޳ÚÀåÐׇž¾÷ï—Ì…ÌÕ꨿þËÌêϾ½°È”äÐó‹˜Öö릧ýá -ÜïÇëðÃ¥÷’í‹çÐÍ¿óåÐÙ×µ™¦¤ùþ¥õ†«•³ïŽó˜±Ó †µ´Ç†ÍÚþäЪËÌêûéßÜÙïÿðáØð»ÜÒöºªÇ™åóõ릧 -·™«ö’Õáè µõóó£Ï «ïÇ îáϜȪûñî½ìþ¦õÙùºŠæÞ㪷ðÄÆ—ç„Ç›ºÌɄǿŒ®Ùé†î‰Ïö¤Ç²ä§ äÏúÛáê -­»ß¯å½ÜÈöí²‹ý“•ÚŽçôӪ˜õ÷Õ¸¯ÿ´ýÌ€·ì‡á’ŒÎ²¨¦Û³¹ñÍ‹û÷´Úß¼ñŒ•š®ÑÉê•û©õ¢Š‡ûÉì¿ìæÒ -ÒË•ÝÅçØ¸¨Î¸¡£Ç—Úª­¿Õô°…ûµ˜ú®ŠÌšÁ‹“Îöþ¤ÌºŠ•ÂŒŠ¦Îê‹ÉèŠù¥»‚ÏõÉ­ÙæÖ®ÿúø¥µŒñ÷ï¶Õ¶ƒÊ¾ -ÿô•ÝšÉéþžý×ðÂþð¸ï˜¹úúØÂïÁƒÚåÐÍ¿ÞÊý¹Á™êÉ¢¤É×£§ª¿¤»¿š¼ƒÂ×ï©“¶áŒ’œ½Ûð“ðää–êê³ÞžÁî -þÅ÷œŠ­Ô¶×á¿”â™ÙýÑÉׯ†Ã°·ùÜϵ̠⯄ûå·æòÆÇ‘«©³×ßœë­áŒªéÇØÌ¼Á†ÕŸ¥©™Ø´š–áñæ¶©Êÿ­¢÷‘Ù -ã­­ž²ÈþàÍ‘Ÿ”ä¹Þ–êÁ£ûööâíô¡Ü“ŒêªÌŸ¬¾÷è¹ë˜ÏéÞò†ÿ—§ÿÕ­®———ÿÃïÖÝÑúö‚ØËçÐñ¿…à™¤™¬ÍÎ’ -ò¼ƒÒÁÏ …üÖ’½Èú›°½×…æý»¸’áâËÖ˜ôªé„ÿ——ÏœÑæŒ’¤Òªƒòô‹©Å²³ú㊯ŸùÌÈ—Ž¶É Ê¯úå™·æòº¿ÛŸ -²þ¸äÇë»ãûÉÿÿ·Ð›«Ñ¹é©î§‡¼íÝéôè‹á‡êý×á“™šÔ’çû©Éô†Å¿–Þ¶áû™‘ÿùÊÌý‡ÿƒòçÛò’ØŠž¶òÿŸ” -°Úò›Ë¥è¦™»ì†ÝÆ¢éù—˜ÁᮨåŸËÌê¾øª½Ñªƒ¢Ìåíºõ§«™­×ï×ג麟޿ú鹫Íàý¼’¨Ê­»Ÿî’½ÜËôò¾‰ -εÝööÎ轓õÓó×›Á†âÑ”Û÷ÿíüãð±Ä§™Ôª€ÛÀ…™ÄÑîçÔûæƒêÈ– Šª©®Ÿ„£ÔØê†‹ÙÛ×ãÐý鉸§Î¶˜Á€€Õ -¢ ƒ€€ÚȠ€€–²ˆ€ Á…Œ‚€è¡ƒÈ€€ÚÈ €€°–²ˆ€ …Œ‚€è¡ƒ€€’ÚÈ €€–²Œˆ€ …Œ‚€Ä衃€€ÚÈ„ €€–²ˆ€ -ƒ …Œ‚€è¡‘ƒ€€ÚÈ €á€–²ˆ€ … Œ‚€è¡ƒ€¤€ÚÈ €€–˜²ˆ€ …Œ‚ˆ€è¡ƒ€€Ú‰È €€–²ˆ†€ …Œ‚€è¢¡ƒ€€ÚÈ  -€€–²ˆ€ Á…Œ‚€è¡ƒÈ€€ÚÈ €€°–²ˆ€ …Œ‚€è¡ƒ€€’ÚÈ €€–²Œˆ€ …Œ‚€Ä衃€€ÚÈ„ €€–²ˆ€ƒ …Œ‚€è¡ -‘ƒ€€ÚÈ €á€–²ˆ€ … Œ‚€è¡ƒ€¤€ÚÈ €€–˜²ˆ€ …Œ‚ˆ€è¡ƒ€€Ú‰È €€–²ˆ†€ …Œ‚€è¢¡ƒ€€ÚȠ€€–²ˆ€  -Á…Œ‚€è¡ƒÈ€€ÚÈ €€°–²ˆ€ …Œ‚€è¡ƒ€€’ÚÈ €€–²Œˆ€ …Œ‚€Ä衃€€ÚÈ„ €€–²ˆ€ƒ …Œ‚€è¡‘ƒ€€ÚÈ € -ဖ²ˆ€ … Œ‚€è¡ƒ€¤€ÚÈ €€–˜²ˆ€ …Œ‚ˆ€è¡ƒ€€Ú‰È €€–²ˆ†€ …Œ‚€è¢¡ƒ€€ÚȠ€€–²ˆ€ Á…Œ‚€è¡ƒ -È€€ÚÈ €€°–²ˆ€ …Œ‚€è¡ƒ€€’ÚÈ €€–²Œˆ€ …Œ‚€Ä衃€€ÚÈ„ €€–²ˆ€ƒ …Œ‚€è¡‘ƒ€€ÚÈ €á€–²ˆ€ … - Œ‚€è¡ƒ€¤€ÚÈ €€–˜²ˆ€ …Œ‚ˆ€è¡ƒ€€Ú‰È €€–²ˆ†€ …Œ‚€è¢¡ƒ€€ÚȠ€€–²ˆ€ Á…Œ‚€è¡ƒÈ€€ÚÈ €€ -°–²ˆ€ …Œ‚€è¡ƒ€€’ÚÈ €€–²Œˆ€ …Œ‚€Ä衃€€ÚÈ„ €€–²ˆ€ƒ …Œ‚€è¡‘ƒ€€ÚÈ €á€–²ˆ€ … Œ‚€è¡ƒ€ -¤€ÚÈ €€–˜²ˆ€ …Œ‚ˆ€è¡ƒ€€Ú‰È €€–²ˆ†€ …Œ‚€è¢¡ƒ€€ÚȠ€€–²ˆ€ Á…Œ‚€è¡ƒÈ€€ÚÈ €€°–²ˆ€ …Œ -‚€è¡ƒ€€’ÚÈ €€–²Œˆ€ …Œ‚€Ä衃€€Úò˜™„€À¬Ò™„䖚π°á«Ô†€°€Â°ƒ€€€€àêÄü¿°¦ôÙ -] -::^ [s0; Tabbed sub`-dialog widget.] -:: [s0; [^topic`:`/`/CtrlLib`/src`/TabDlg`$en`-us^ TabDlg]] -::= [s0;= -@@image:946&639 -€ƒ´‚ý€€ƒƒþ€€€€ø—œíÝ‹”œÕ‡½ïñÊ¢‰ø³–ÞóŨ¼Â„ä¡¾Ž‰È†»¼ÂÃÉ‚‰ŠÉ€ˆ„„‰àÄ ¨ â¹®‡Ëå‘õ­¹ -ͨ Ü£òÝËš¥‚øðâÕѨ‘ÎÄÀ¤ÀÔžÃ䦺ç¦ç’ÉäÁâ‚á±÷×ïÉýžÊծݻ«ãª«ö÷ÿ÷úé¬ÙµÕÕÕÿϪîþÿÒ½ -Ÿ®¡¡½†·ùë騩˄ï‚ÛÕ¾‹Û†Íëéðæìð¾ÑåçÍé‘¿ÇÍë¯ó攽Ïôøî×–ý‰«÷¸¼Ÿ­é€­çÐö¯ÚÎøÕ¿ô÷Ÿ˜®•üŸ -ñ“ûª“¥Ê„£øµ²çò§÷òþ—ÏÌø¿ö¿øóÏïóÎüˆá¨æÈÈšûûýŽñ·¼±ÿ¯—‡Þóᆪ龱ôô÷‡Æ¸ÿçèü÷‡Î«½Ó·ñ‡¾³ -£ïŽ¥—À«±Ì¼¥Ð¬ŠÿÖ½¡Ñ§Œ†…õ³ŽŸ¥û“Ì‘£ˆÄ™ûãÝ뢞¼ñÿ‹Þ†Óè«Ê¢˜öÆß¸õÜçߤ”˪øºìÛ²¾‘ПüÞˆ -À‘ÕÒ𦀠û¹‰¬‚¿Ê‡ˆ‘ç²²²”œ±³ø«Œ•Åšæ°î¦·„ïòíÞ飧¶ÐÞÙÿ÷¦í¥ô欙µ¿ß·ð®ß¬‰œš§³ðå±·í– -Úéåýî±·Œ‰òÚüÔ³·å„œ¹öæ·…Åé—Ü’ÀóÌ›õã›èµò†ñ—Íßöþé¿Ô‚ݣ翺“æ†ãæïÚµ÷åïêíÞ˜§ª¿¯Ø¦þ -âž³÷àØ•÷›üŸâά¾‰á·ƒÅœáæÅ§·éÅïâûȶÍÞêýâ“ýˆ¹½ÞµåəӢ¡¤¿§þâø·Š’”ùðÛ€­á“›¶üóúÇÍë› -¨ýÕÙð¿‡ð¢ù·ïÖ阈´éÆ†ß´Ž¶áÔÔöïÂö›ÿóŒêã¢é˜ÎÚìø ˜ŸÌ“žôï•™Ù´ãͰÀ¼›©„šö©í£·ÔÌë·ûË„ -¬ƒ‘­¨Œ ¥»ˆè‰©Äоá—öÞ÷×¹´ç鵸ϵÄÿëîèØç¬¥£ÞÄ¥þ°‰Èþ’ÞõÓታÃÿîÿ¶¯¦›©”ОùóÄ‚Áòƒûó‚µË -Ä„€´™õ†Ø”¼¡š¶Ñœ°‡Ý÷çÏîïíýßþÜùö™¹½·ÏêÞ°ýµôÝǺæ·ÓõÉó»®¾ÎÃè¼ò´áã§¥Çûæœ×±õ˜öóŽÝ¶ -Ãã„­í¯Ü÷¿ÍõÞø¿ùáÞôìï¼£žò—³éý¿×åÓ…—¶›Ôž…¢ÿ©§ò©òž½ÜÒÉÇ¡õ¨ˆç¬Ú‡üÿ†¡­É½‡ªÁ´ÖêªÿÇ¢Íß -ݽõËϾ·øûóïÜûþÝïþ¡ï›‹ûù¾öÃù«×•ù¿òÍï—®îïýҜޯÌåÒî…ÓÊ´·ü¼ëî™ñ³¦¬»ÿˆÿö»ù¸Ò߫à -•ÙôøŸüÔúãû¿ø‡¾èÿüºñÉèóÂÙ¯ä§Ì •ÐóóúÆæÎÙû­ä®šª€šÛ»áí‘…ðÿÚË´±²±Ñ†“—ʦò×ç¾Þð÷Ö‡îø -ùÏïíºóËý¯ß¾¥ï›Ÿ©®ÿí†Þÿ¯ûâ©üû¼ÞÛÿ®êýüìî›ø®©­˜ÒõÉøÉ›æŸôÂ…¯Çüòø÷ùÿÜà’Ùô¡ç¢ÇÙäÿ©ªøÒ -ª´§¬“È’ÿ‹ç’ÿêšù“òÏû¾Þáÿ€¸Ç¡Šï“ÈßéáÍ’ù›Î£© Žï²ÏäËóï篗©´åÛþïîþÁ×ûß︹ïë‹Êéÿòíï—çô -ÈüîöÏͳ»ô¿³½ôÃäÒ¼—úïòͽ‡³óÊÓ»®½ËᅩǾôâùþ¶´ØÏ“¦÷½³’Í¢³­ÎüáøËŸ“ÄóÍýÕàážÄ¶…¿†á -ÿ’ÃûÞÔøù‡„€ÔÏôÒºÞÁ´µÓ·§é›úîºäÓŠßÚô××ݽíÚòßþœÛâæ÷üæÆé†Ý©ÝמßõõÛÙלڹûÈä±ÿûŸÿµ -®ñÖøõ³Žûûñ¢ýêÔƒ¹ýìºñ…áìòºê¡¿›Þóä§¿­ÎûÁÿç´žÈÄñוêìŠþ”ÂÆ“» âéø³‚äþ“К¦£…ÉšÔÚ»›º—Ì -ŸíÿæÂþ»¾Æ«Î˜ÔöÔ‚ßé‚®«Ï’Á÷´ñÒ“Ôü‰—üøý¥ŸùØñꤛäù“ùȦ±ç¬ÊçÁÌçÖ¾ú±»¤×åÓÛüúÌд›üøšù -¿ž¥´ñôÍß´ïëïù­Ø­°€€â™³©´ïÿüò×îðßÿÊû×ù½·ÍÄѱԵïÒ×€Õ“»¯¿ñ¤±˜®ºúã´ãú»¦ÿèÅ©Çÿþꔃ†³é -ƃËöºïÒÙŠ´½ò×þ¶íªÒÙ¤ÿßÕ¾ýŸœ†Ïž®½Ú”俹—Åú¼É»Ý÷Ð…€À•Á¦ìš¼×¶õþ´ùîï×®ñÿžþþŠž…³Õ -˜õÞùêȰ¼ÍýÿÆÉ‡ïÙœúäÇ´¬Ï˜ò‡Ïù¯ÑŸÍŸíÓçÓË´þ¬ÔΚç‚Ù¤Òɺ÷­‰Ýò¦Ÿýù³§Ê¦¹çž¿ÿ½ÜÞû𨂠-÷˜¾õçÛÅù“‹˜øìù«“’îݬþŠé±óç°Ïïò¿¤ŒâÖŸ¼Õ® ´ç†ß¿”˨瓾¶åñûîåЖîùìçðµý¾¶ÓΉî¥Á¼­ªŒÝ -Ê€ÀĽÍîÔщå‡ÐÕ§Ù÷þþ¶ÿá¼ÎÛ¯ê¹åö÷˜Í³ÊŸ¾èèûïѵý讋ÿèœò¾Î©½‡ï¸øÈ•—Þžùë“Þ½œþÍòÔéØßù -ÙÙ¤Âêä¶ÿþ›Ëý“¦¾áåﵚ»ÚÚãØë÷ˆ÷üî˜Õ±½û‹Ïßò¸ëçâ⎟´…³éŠëŸ×¼àú§÷ýßÿ÷䯗Ýþüб“ÿ¬§Ÿ -‡·æèóÿ©¦¡Ööì™õñÚ‘ù…ÊâÉãÏÕ¼ËÌÜòâ¿Ãœ©‚шþï÷úæíïˆùÿ÷óøÿܺ¬´ãà‹ÿ”‹ßó´Ç¿˜îø·¥£²’ûŸšÞæ -Üè‹ê׸鱈µ±ñ߯֗îý‰Æ×ø‹ø…Àî¦÷ïÍ®¿ò³éöÉ®½Ÿ™ÞûË寽Ÿ›ÝóóåÙÝ‹¯ñÿ‡îÅõ—¨¨©Ýö¯¡ÒŒ£ÊÓŽ -è¯Í½¤´õÐù—¶êㇷýú£‡øÙôíêËçÎ⼚éÿïï•Íûç‚É»ú۰ɔˢ›¶ïøÃÎÜçÂ¥ââ¾àËα§üö×ÌÜ­êá±ç -õüýô…˃¿óªéÑ—¯—Ó÷û¾ïÎïò¦ûþ¸Ë¦Žœ×㎼Ç̌ĭÇÞ—‰éïýúÝÌ¿õ¼û¼Š™Ýâɱ笧’ëú÷ñÆ¢ÊÙɾãÿ•Ý -šÂð×ôڜ€ÐŬ­£‚¸‰¥ú鯙“þÊŸšÜóÙ™¸½·ßÚûÙÙè½·ÝÒýãԻЙÎϬ£úü®¹¬û¢ƒºµ§žÔ¹å ÕõçŸôßǿà -—ϦӺüìºêâ•ÿÞ¤²éЗ¼‰íþ¶§ÍÚ“Í×ûß¶›«º÷å«åº÷Ýðª æßŠœ’Óûôõ­±óöŽ´úê«üïþªõþì…ÿÍ´ -Ë¾ð¬Ø½î×á Ã¾»Ýœ¦ð‰›žØäÏÅ«¥ƒÃ쪺¯…ª•¨é¹º‰€šÜ¾­í’¤¡†…ÑÈ·îÜüÁ®ÏžÛçýé‹Äªõܺ´£ûáô‘È -ñš¿ÑμùòŸÖÞ™‡õÎû–ïÏÔƒ»®¼Òðõ¹‡üæüŸÿð³é¬þ¼¼ý¤ÝϦ÷—ý‡ŸÍâ׿³›úä°ùÙôÉíÈŒ‰àÒÙ½´ùÇ›ÃÙÔ -éÉ©ñºÑùð™ÞȶÉïÂÇþªÖ“ï¹à¹¸…ÃÆß¬ÚÚ𥿋۴·¾¢¦ÕùÀÓÐô‹Õ«‘‰ÓòÇ¢÷Šû‡þ÷áƒè©û襓 -ë윳±ôýÇݺHû³ÓÎÆ‚é†óúæûŸÞûÍÈçôïÊÓÞݻ倥®‹öï»óŸ–ŸùðÛý캓»×»íãȶщ“¨¿›ªïÒŸÊà’­¦ -êÍ£—¼¹æÓﯽñõᎶ¿ø‰ðŵÞþêçþ›ì߯ù¿î÷ðËâÄêä´äÂð×íô½§û«ŸûâÝÕóÿ²ÛΔӞâÍÛߌî -¸ÇùìÅëßüÕôµ¹…‘£û¬ôÇ­øçŠÞ·ÿýÏâ‹Àâ­ùëô‹íå·äƧýëó·¶’ÙÀÿú…ßËĶÃ÷ŠÄ€ˆ»²À¥Ôý¬‚è¥ëÏ -Œ»äãå§öݼóÎéú«˜ÿê¾á¼žëÏŸî¹ö´Þë¾­Ú·çãñôùá¿õŸû¶Õǧý㟜ë†ç“ˆ¡™Ï“ÝžœÉ¦É½þ¤›ú•à’çÁ -ïÁ¸‘©¤ÈëÎ’Þ÷›ÎùÓî¿ìöïøÀ§‘Þ£íÿþâ›ÁܳÌßûùðú±ýï싸÷Ñÿóý—¯ÎúÙèÏ”ç¥Ý½œ â Ìµÿñú·ÄÐ -шÀ”³¿ôÏòÚ‘ÓâæÚÒ®œú£ýÎñûÃðɵâÀž–ÿƒ…¿üúÞ×´’µë·‹‹Ÿ¢€ÿ¯è§éþ¦ô§€Ì¼¿¹¯£õÈú¾ý¯¨šýŠ÷ -Û¹ßã×õໆéŸé¼òԑϯ¿ùÛ¿›˜æÏêžÿöÓ÷µ“û®¹¹þ÷î„ò•ÇöýÍþ¿˜¿ë÷»÷—¿ööÒÙ³û­¾ñŸÿºÆú´ŸÍ—ìñ -׳éä¾ÿÿàþŽ¿§·Ñ›Üßïÿ…«’Íò¤ÌâÜɾѺ¦òèìÍ×ÿ´•—»Ý÷ô¹ÿ£ïÚ÷ì¿ñÙ¸¤ŒºñØÍ¹Çä””üøµîúìÉÊ -âô““ãæ¶‹…™ï¹èÅèÓû’š¿î˜ûÆúܽÙÎÜçÜÌÅ¢§üÊŽ¿¢ËÍŒíÁüª‰—™·áÁµßûå”ØÑ¯áäÐÇÃ÷‡ ªñÄïÑ´´•Ø• -¯„òÿÁÿú»è»¦Ÿ¹áæøÙΫÎéš³±‡ëê‰ÝóΫõ͹¥´ç¤îõ«¦ôÜñ¡Þ«ËŽ¬Ï¼´¼ÿíÝ⤩÷Üþÿ蚸ϪãîÇÿú¨ÑÃÙ -ä¤ÎĶÿ‹›ŸÍïùÞåÙ“ºé’Ù´öç¦ÝÑàÒäüÁ‘‹´¯œÑø®Ë¦ªà»–€Ã€šè“Ê´ÕŸ¶“Þþÿ¦Õ´öʱë®ùÿçõ³Žï¸ì -‹„ŽÙã»®¯¿áÒìœõ¶ì׌£»¦þÚšòîÒÇöЯÍúÛ×™ãøºÎž½üŸ½œßžáùÙ´å±»ŸÏ¢›äûøúû瓌§á¥Ï¿ìùŸÏ -¹¦È¶™ãÉñšª›Š¯¤é”™þâ§è¼ý•¶¿±ôãÇȬ¹ùÿ¥ç¼ã÷ùóûþ‚þ£Ÿ¿à¨çÏ–ÿÿ²‹ŽØþéþᯜ÷ÈÊŸóÞ»òœƒÖ -ŸµÿʉïßâõÊþ«¿ú–ßåÇúïã½Ð‡Ï¿´œÍû”ÿ»˜ÍÞ•£˜ÿïšùèø¨±¡î™¾“Š‹¯¦Â˜¥í»Ý‡€€ª´ïîÜÝ÷÷öÕË -äþûÿà™ÛžºîŸžœóÿއ¦¼ó¿ãÞñЄýÿüµáÿ‡ÇÿãŽ£Ç½í·Ÿù»ë£ŸÞ÷‘ãÙǾò̘Ǿžõðû½‡Îú¿´ïÅó×Ý -ŵ՗ͪ›óäϱó·úüª“¨êƒä²‹§¤±Ÿþ­ÊÝ֬ϹÐêŠâÿë›ÀîöúæÜÄð§¢ö¹òâçõ¿ÔüçâÓó¨íúýºïíÝçâí£ -ðÿïŠåÓÔÊÇņ¯‘¸òÈ…‘ãæïæ·ç”²ûÔ‚°»¯ò¡½Ê§÷ÛЂŠÿøò–×ø³Ž¹“±þ´÷õáÏæÉºß¶Ó»ü¹—ÏÌÌÚáÍ -Åß±üÓΨÓò‡½©ÛüŸò¤Öñ–¤Ï”ÂòÂÙôÚåÂ…š“—ø“žŸõÿî²Ñçùü«ÜÖŒšÚ®ù°—Ÿ”‘¦®ªÒ•½†âðÛÓ¬´·ó»Ðò -«ü¯œùè§Ãµûß›®ÌÜû㌵ÿžµó‡œ£þžú’¿ïä¶á¯Ñ“†“â§È¢í¶œÍúÞϦʼ梅Ғ‹øÔûò•т䓀‡­å”ÚÒ -ÕŸÔò»‹ªŸ™Ó›÷šƒ–²Œì»ëí¦ò›€€…òÎÛ½ãö€·ÿ÷©È¦€€£È¦Ê€€ëȦ€€œëì²é·÷Þæ‚•€ ôŸÕ³É„ÂÐ -Šýž‹ˆ§€èò‘æìÚø­‡æ‹¤ Ñ¬²ŠµŠ½î­ÖÂÌ᯴€µ©½šÍ¯¾²Íƒ²Ï”ÞÆ£ŠïöçÂáþÅ ÏÀãé¸ìÞª¼†ÆµðÏ -ŒÙçá•”ÒŒ±ñ„´²©õÍ…¿Ü€Ø¢ê¸ìúå× Á’ÑñÐø¥…€”öÄå©Óþ’Í»öÀîÁ²ªŽŠ¯ë¤âȦ ÑøßŒûðÏÓ -žä“·÷¨÷¶‘íüù³’ÑñˆÐø¥…”öȤ“ìÊî²ÉÖòÛÙŽð͆ª¢Í‹¥ª”Ýþܽƭ®é¿¼ÍÍ–Æ—âÀâ€ÆÆæóý™—“­ª -­¦ê£÷ˆ ¡¸´Ü¶½¼½¯·ŽØ¦öÚÌþáÉ̶îÞ·Öíåë¢â Í®ô¥»È©‹‰»³ÓšŠ ›€†²Ò§ìŠ½Å§Ø§Âó´ÓÕ³¦éÇöòœ±‘ -«Ã­™®å¿ÊœôÉ󺵮ßÀ“•‡éö­¸†ÀšÚꪦô”Çñóíî‘ÀîÃÈöïÍÑ´£Ò¦Òð™íÚ݆ìÚ¾­§Ž›Ø‚ᦜпۃóÃÓ¡Õ¢ -ÒÛÖ…Ã÷ÝÕºüè¦ÐŽ‚ÑÄÑñÐë±´¯ÓûÔµÓ—£½þ†êê÷ˆ ¡Ô㥼ɛÍÕçØ™ž·íßÚí°ÑÒ¡ƒó‚“ÁêÛÕœíö¢ë -«†î¥ºäôþÅÍËÚ¯ïÙ¿¬öß”‘¸°¸Ý€ñ›ÕÖŸ·úÀúâ⎿¡‚Úó½‚舮Òä“ý¼‰ú¶¤öÙ›ÔÎݨßãæ¨‘œ®“·ñÐÆªî -–¼ñòµ­’Ç—ÅÍñ«éÿåÍÕ¥¯¦´µ«¸ù¶÷ˆ ¡Š”žÍщó¶†íÝÒéÃìÍú»¡þΉÞü¤§‚óã–¬ýºñí’öË×Á´Êœ•‡¶Ç -ç­¦ýµ×•¾ÿ˜ÐÖâæÛÜž£€†ç硫⨸äõ욚ؘÇïÔ±ïÓê×è²µÞìäØÒ°…í’ïöË×´Êœ‘º¸°»†öûëÑ®ªý±†ÇÖ -¤ü¯Ñû„ÐÉÒçӞĽƒ¡›»ŒÔ¦†æ—š§ƒ“Á­ÄÖ—ˆÛÈÕ­„Ö´ß¾îÅÃÖÆâ¨¸°¹€£¡­Õ½²¡Õçؗ̕ãÞÁ©¸ê÷ˆ ¡ -ð´Ü¶íÙ¼¾ÂÖ¢ë¥Ø«¥ªÚï´“¢Í›ÜÑñÿÑð¡Â˜²‰è ª›ÅöÿÒÃäÓßÀ¦µöä¿§øëÚ¥à¿á»ë±üʨ¸ÇÈ퀸Ռ٠-ü„´ÆË¦þ€ö¤³’‡Å× Òȱä“ÐÀ´š®›¶÷­Áð²ªŽŠ¯¤šâȦ ´Üè¶•þÄš—Š“ƒÂ«©¤˜Ç¼öœ€†Ë¦ô€À“ÙûÒ³ -âÂãæ“€ Éûˆ ùîï‘Í€€÷̀ƀ×Í€€×±Í€€×ÍÜ€€×˜³éÜåø¶²‰€³‰Øìº„삀┃삀¸†˜ì‚€¸†ì‚ -Æ€¸†ì‚€¸ñ†ì‚€¸¦¥Ÿ²©ð¯ÕÅË–é¬çáá¯Ï¨ èá‹åÓǃ‘˰çÓÑûÕ…Ç㾨ѓ¬È¦†Ãæ¬ÈÞ³øÏï·ÚËŽ•Í© -Ý«½þøëìäëöÊõ­ž—«¬êš­™Íã—Ô¼…ؓϙÙåÆíˆ¥‹Ï¦¿”ÕŠŽºª²ïÚÚÚÖÔÆºòõë¶ìØÐ¹þç”Ë圳ÉÙ©úÜ®ªé -ØÍÀÕ²Û¿ÛŒ¶àÑìÊÓï­¡ëŠþÛÓÓ£íºÞà˜öÞ†ÑÛÍ˧ó©§êÏËØì¬Ù§ª’ܵõýªÁ¥µ÷›ªìÇ“×Ó“ú¤çÓú‡¢Ãã -¢Í¦à«ºÙ¥×ʶ¤‘ÙÀ’ä·ÿæõ¦›“‰³É¼Ÿ­ç‰ÚäÓšêÅÇêí«ŒÑïÛÛ§Ûƒ§ƒ½•ÑóµëšÞ›É²€©Í½µ•ã¯ÄñÕ–‡ªñÍ -Ú…ê׊›·Á›Ò¾™ž“ìè¶å™—滋†Ëä·ÿú囿„٤η§´ó“åÓšêäÅÇ•§‚²åõª·©ÔËíï»ïϹ›ÒÔÓá¿ìÊÖÕš– -äèó¾“÷„ëÿԊɦôǤ¼ê¶Õ»¿‘ÍØÊöû§Ö”ã¥ÉóîÓÓÑô¹™ž·¥É¦®´ÕŠŽªúíå¹²¢­×ŒÁåÁÁû슽ц—œ°ù°ý -н¡û–“÷žëýªÒææÜÚíу«“Ýß߸ݴÙñíÛ¯Ú¹›Íö”Äð Ç½®Ú§¹ýÎÚ†å„úÇ—“Ó×êÖಡՆðô§åñÛÔÞ -ÉöáäÏöû·¿¾Ø«ˆÆ®µÉߣó²Ê¦·ù«—´›ÒÔÄ«ºª¸‘ˆ¶âÜù·”µâº×®¶ƒé»ÁÜŒ²Ú‰ë±ì¿°ÚÌÍ¥¥¬ªüÚÛÕ¸‰«Ð -Ó°˜ù­íîÖìšê–Ǫ¢ÿ²Éœà†…ÍÞ‡¶êÎÚä“ζ‰âæÔÝÀ¿¼¢ÍÆãêÄ´îä·ß´¼ÛÂÒí½´­¹’ÄÍ骕µøðù³õ¢Ðßß -¾¯úí¶Ê°¼ºïʪ›ÒÔãƒø×þÜɶ²—©Ê¦¥šÚ©ÕÞê“ÍÑÿê×Ä´¦Ë¦éšžˆóÄÜñ±ÜÙúåÓðÂè·œ—çñë´Æÿ¢¨²Û¿ -ƒ¹¬ËÑÍÞŠóޔɶ©éÄ×Ù”¦ÚÑѵˆ­×ŒÑï÷ÔÞÆÎÙ”¦žË°â’äÓú£ÔÀë¶Õ‘í×ÍÛËüØèïû°ضòüœ¤ÞÍÇÓû„ -ßåÎÖ¯›ÄŒ›Ñîö¨þóœˆìòìö”ϼי¤ÚýˆèþÖÙ”œ‰ù²©Íµ²ë–ÔÊ¥õ·ýàËÉÝÙ™ùçÓâÈú’ä“ÍïÉ…ä¨ÙçÓÜÀ -¥˜û©ù­›­‹ØÔÖõØ¥Àš¶…ÚÐøêɔԵ›ìÒª®ã›Ì³Ñ”ÙíÓÿ²ôÈèõ—Ñ™Žü†¼Í÷µ¢£†ÿ¦¯÷Þ¤’­÷•Ê×°ÿÿÍÚÿ± -†›–ÊÜÏô̺ô§ÚæîÙºØÒ×¥íñÚÍÒ¾›‚·Ù®ä“ö±ˆ­›„½²öß²…«þÿ¦Ã³Ö°ø‘ýÞÕ´³¡øìšŸóÿ›â‹æŒ·þɨ® -Úñ´óªÞÝÜ¿ŠÈŸìö¯çé°áȶ¥©’¶ØõÅ˘¾˜°éºõãÚ¨½®×Õ´øÞºˆ ªÙíŸØ½ÜæÃ‘ï…È´Óí‚ïŠóôÒ£«×îšúê -é×Ïòþ¾½ºØžá‡™³éß–ôÙ¤½˜…žÚϲ‰ÉÈîÿ§×ÅËí¸’Í ÙÕ‹”ŸͲç´û‡ßŸ¾›ÜÃ÷³’§–úžò ðô䓃ÑÁõ -㛀´Ú­›€ýÜ´Öó°ð—¼§´°•²‰Ê€ÐȦ€€ÒëȦ€€ëÈ”¦€€ëȦ€Ñ€ëÚª›Šÿ€¨”ÚÊã½€‹ÿù‚Á‹Ûά›Šþÿ¤Œ -äÖ™æìªºº¥ðèÜ—µš•ûÙÄàØŒ–ú®Þˆœ¿©®ª»×êñ¹ª¦á›Î¦æý®×†›£Ö¡Û¸Çñ¾Ï¯Íµ¢£¿®ªŒ¶¶¶µ»•±îݺൠ-öÞËåòÎÙäÐÔ½®×Õ´ôÉÙ´ñ­÷ˆÙõÄàŒŒÑßÌí›°áȶ¥ç©ÖÐõÅ¿•Ž×…°¿þÓô£±ªóÂ’×ÓÙµ§¤»ÚΆ”Õ¥¸ëûÕ -ÕפÊêǓצӓºæÓ‚§á¡ùÓ©‚¶à§„ßЉš€µýÚ¡¥“ÝÓ£¨¡úø³«ž·ÙÈêúÍéËž–©«•µ‰­²Ä¿íïïŠžŽ¨«–Ù -úÞ˯“¶²¿žšŠ±—¸ª­Ëƒ•¸æí‚õé³±žÇР«±²©åÆ¢½Ö¡Ï¼ˆõ™²ß©±†èáϯ·ì·‘ ›¢±ß”ò©’²ÚÑîÑ剀ì¹ê -Þͪà¥ôòÎí¦´õÔ¯›’¾Õ•¦›Ùü«Ò½îˆçÒų톆õþϯ§«£‘϶ÕõͽÄÿ¨êÅÙš¼ç¶œµ“íõïöóë×­è¨ -—¢ßÊËÇÛý®˜ƒƒƒöÙÄ”ú£¯¸áó¤žàúúÂ÷žÜ­¦îÖúÕ¥ŸÍ͸ڢ‡Ö¬»§º¿ñ»é׳ãÚßµóšî¾›´ÏŸí±ØÍü´ì³ÉÝ -ûô±¹­îø®“ÚÅÓ”áÅíÓû÷Ú…Š™…Œÿêý¯íöŠ¢±Ëò×ÉèœÇ²©Íµ×¢£Š“àËá•ÿÃÑ£®ë¬ê»˜¶ŸÚ÷•†´õ˜¶Ÿ­ -Ǧ¦’ÒÖ•­¼Íû ª†‹ùú±óÚÚÝ´ÜÆÂ­ÇªÇ²ËÉòÐÄÏû«µùÕ듨ÔîÎÕ…Ì«Ú¤ì¼®ÎÆžÃÛôðÅË»¥ÕõÞÃÓÒ¶Ù” -óì¡ÏÙ­è¨ïÁÏ›©“þÕþþÑï·Õ†ñåùÓÖÙ”¦ƒžÐý…ƒ´ÍÞãɤªª‡ÊŽ¼Ç¼˜ý¶Å±ÿÝ‘÷К¦»›ìŸ÷¸íñ”슎í–ã -™â¬îÝèÏÆ­Ãôð§—õ¶©ªÉËÁ›²¯Ì¦ÄûÊêŒÅÇնܱă¿ÝÑ™¹çÓ©šú¬‹ÉÍ›éÒ­ÙÔµæÄ¢ûëØËüÜØèï°ض -ïÜɦú½…‚¬»ëóÚÏ–ÍŠÕ·œÚÈè‹õѥɦ§†è©áϼי¤Ú¸ýèþ†ŸÓ«åªÚÙõË¥’ûú›þ°åŒü³©ñ½‰ºš‹Í“Éä¨ -áÙçÓÜÀ˜³É¼–Í–ìêõ«ú¬’ÈçÿØ·Õ­ÞòÐÔš»›ì’¨ê¶£Ù¤Õܶ™ç¸²Šœ¢‡ÿå»é†Ñꣳγɦ”úÊêÅÇþÍß -ѽɥÛî«•Žáÿÿ›Â³ÃÅÓۿÒ׫£í°Á»Õ¶ºóËŽ“¾ªèÿ‘†´²Ï¦àŒÍ¶Ù¤ý¬ÂýëÆŒý×ü̡٤ݗèÒቾÌÚÇ­ -Ǧն„µ¢È³Ãó†ô饲ÝųæÓ®¯ª¼˜Ö”Ý”²£ÿ¡úøã˨ºìä•ÍÚç´æ¾Õ†»®èÁ¹ƒƒƒ¶Ý·üþÜ«Ç媚݆¹›Šú¾½ -¹ú…ñÒÎÄè÷õá¿Ë¶¸Íõ†£ß‹‘¦Ú»¬¾©Î‹Œäû¯Ü´õÔïß§öÍúýú™¼¦äéÅäÓ»÷åðÏÓçÓô™æé¹§ä“õ‘áÿªûñò› -ÑŽäÓÖÕ‚…™¨ë¶¹†ì⨤ž­õ½äÀÓáȦ†£žƒ‘ë·é´Ú¶Ú¹é¬çáုϠèá«å”“€ ¡Í€Æ€×Í€€×±Í€€×Í -Œ€€×´Ô¶•¹þѨ´”Æú¬ž–þò„‚–ÞÖɦ—𬛓Šþÿ¤ŒÖ™¹æìªººðè‰Ü—µšÕì¶À¶±˜££Û¥¾—µ󭞗«êš -„䓃á³ä›ÿ·áÈ÷饩ôÖôÔÕ•ÑÖ·Ö¶¦²Ö­ÛÖ—¼Æë¹ÜÎþ¹›œªÇ媭š†ÙÄàØŒçÑß훰á¼È¶¥©ÖÐõöÅ¿•×…°¿ -˜þÓô±ªóŠ’×Óµ§ø©Ä®‰—ÉÕ‰î±Úþ•ïïË­¾åµã‰ë©É¾ŽÙ”æ»Ö³®¼€¯Öòý¦½ûá¿–áúÍþŒ÷‡èáϬ¹Þä£ÃëÞ¦ -ÌþÚ¦¬ÖôÔû¶Êý¶½½˜½øº ®ØäÈù­¿›Ö擜Íéê©©˜û§‰«²¼Ð‰ë¥Ö®¾“ëñ¬ŒêÍ™¼®Šõ˦¼ó¢ÝÔçȦƚ¢ -݇¿½²ßÆ‚¶ìŠÆÐʧʑÊêÅÇ•§‚÷²åª·©‚—»Ò˹›ÒÔÓá¿ìÊÖÕš®ÚèÓ’ãŽðʤîÜãèçü¶¥Þëܲ©“®ƒìêè¡ú -¹øÓ«ÊÒä¹ÿ·©é蜬Îίߵ¢ƒ£Šþ«¯µžÂí¹âŒŽŽÚüçÓè“à„Ó囪©ë‰Ý®û´˜¸Ûëש•¶·ãꋞþØíœèþÆí -ç¦ÍŽëÿÕÎòé¦ìŠî‘ùðˆÄéʵáï†òÄ—óöòÜ“ÝÍÄ­âýéÎÊâ¶©½®»íΠÿãµ¾—û…ÑØÒ¥ùëôŽ£Ù딦ÚÑÑʼn -þÀ°åÊ¿¡¨Ê‘×õµÌÛÎã–ÑÊÜ…¹‹¥©©åÕ×ÑÚ´‡ªê¸¹˜—³¯¥Ý͕˭Ôú¬’¨ÛäïÍæÇ¥îÿ™“ÉÎڼ걵ɔ·§ê‚ -æ•í¶ž×§ò£Ï¡úø¢å›Ý’êï¡é©ùÛìÊöЧ¬üÖôÔàçÍÔñ‰Àÿÿ¿è·ÝÛªÃò¼©«ðìÊÓÏ辂ø©ÍŸÉ¤ªõª‡Ê¼Ç¼˜ -ˆý¶ÅÿÝ‘÷‹Ðš©›Œ‡Óœ»‘÷ÌÉäçšëí†öÙ”œíÚ­ÇÅÙܺ÷ÑŸŒ‚‡èáäÏ®ëÒÔ“—©‚·å˜Í‰Ÿ¿÷”ÕŠŽªíµ¹âˆþ»£² -–òΦ´õØ–­“ ›ÒŸ¥Ú볩êˆÄ÷×ÿ°–ù±ÐÞ…’á±ì¹•ͶæÏã”»ëóÚÒÏ–ÍÕ·œÚ¨Èè‹Ñ¥É¦Ï§†èáϼ×™¤Úýèþ† -«ŸÓ«ªÚÙõÞË¥’ú›þ°¿åü³©øñ½‰²É¦çœäò”쳩®¦ ÌÙäÞËæ„‹¶µÕ½Ö‰»˜³éÜ„ºüÖÎÏÙì²É¢ËªÙä“ÖñÙ -¦äžÉ¨ðˆžÇþ—¥›ÂÄ«—Î̤›Ò¾Åè©«•µøÔ·ýõ¦•칯Ԇýÿ͌õÎíÿŒÜÉܶù„ïÆÔÛÌ­›Îú³ª¢ÅšÒʾ -뛂·Ùä“öűˆ­›½²ö°ß²±Ù´¶í«ìŠÛ©Ã„§á™“þçµ¾ÁèÌМ¡ðÝÚé×ñŒÙ¦´¤‹ª¯¦µ¬Å·ÅÈÿˆž‡þø’Ž›Ùå -ï“ö™™ÏµÁù®«ÚîÀÀ€¶Í×­Ÿ×êñϹª¦‘ö¹Çƒï…ञþÍ»ä‹Ûì¸ò¹½éª­÷·ÅÅù‘áÞ¾‡Þﮫµ¤üªôòÁ‚£“‰ü -½³©º§¹í¯“ÙÄȼüÏ娝ÞîÑìÊ•ªÚ œ·±¼˜¶£¥¾‡œ¬¨œÙÄàÔãÒðý¦ Ö˘¦ ·õ¼¬Ãü剄­ì¥ ì‚€´„²‰ -Ê€àš²‰€àÒš²‰€àš²Ä‰€àšó¶íþ»¾­™²©ðí¡¥´Öóç°ð—§´°‡Ê÷·Û¶•ÓýÿȘ­²ÌñÙÔôõáѸð¯ê´«²‰Á -Ù°™­õ½®´ýÓœëõ¸ÜÊÕÓ ›˜Œ›¦¡Û¸Ç¾Ïü¯Íµ¢£®ªïŒ¶¶¶µ•±ÎîݺàµÞËåòÎÙäÔ½”®×մȦ†ÕÃæˆžþìÛ -ɀDz©Íµ»†®«ú­¼ª¿„ýõ›¢‹Õ½“’¸žª½ÑÁËñ•žÌªÜÊð×ö«øºü«“¥ßñÄõõÔ¤‡ìÊê›—Æã¶à¿åí¸ÏÈó•œ¡Ú -î®®äÅß¿‰óáþ½ü™Õá›ìäøÍö¸ç™õ®ÖôÔ¶½Êý¶½½½Œøº ®Øäù”­¿›—¬Í¶¯¥©§¦â쥧®ÊòÀ¥®Ùµ»Àú̬DZ -’´¨÷¶¥ü”¹²½²ÑžçÎÞ„âìꬬ¡úøÓ«û펤Ȧ¸ÿ¥‰þ§ÓÊêÅǹ•§‚²åª·ß©‚—Ò˹›‹ÒÔÓ¿ìÊÖ¦Õš®èó¾“ -¾÷„ëÔ› ë›ê¤ÃìªëÒ ›šúˆžþ§Ôв´ùÎíð꺺§Ã󦮴ٔ¦ÚÑÑîÅ¿•—š¶àܱ†‡‡í³æ©ôÎÉðÂò¾Í•”õ„î½ -¼ÚÌÜ­õ«ÊË››ñµÅ¬ÐöÎôÿãöÓ®æÇµ¿êç´°Ó¶é÷ªêœ§ó³Ëòç«ö‰ƒàÏðô—ØË÷öÜ“ÝÍÄ÷­âéÎÊâ¶»©½»íŒ -†ÿµ¾—û…‹ÑØ¥ùëôβÖÙ”úÂäÙÏ­è¨âÄ ØöòåßÐÔˆëÛºÚ×±¶ŸÆŽ­£•¸žó—¸ÊÓÒʪ´íÊ­ºÌèÖí…džÅÌëé÷Ó -”ò‹µž«„Šýùû“Ížšç³˜ç›öÖÜ¢³£ýÁ›±‘æÕŒ«Úì¼é®ÎÆžÃôð¶ÅË»¥ÕÞûӒ£Ù”¦ÚÑуŸ·Ó§¾‚ýýý¢ßî -ý«ŒË󦬲˜©Í½¡ûŠö‡¤¸’ìäÒÕÉÕƒåžãÞ̾¾›¢ÿ®ˆ»Öè͔͖‡ÓŸ°ïÑÕÍËšÖöÖÜ¢³í鳩¸´ÛŽ®í¢þÕ®›ýÉ -ô¨ðˆžþä²€®Åµù©øÓž¦Ùä¥ûçɱÊêÅÇÕ¶ÜŒ±Ä¿ÝÑ™¹äçÓšú¬‹©“µÇæò”좋ÆÐ§Í«ÖÝóËüØèï°þضÌÙ”í÷ -±éÙ¾Šæ£áã³®áçÝÀùТ첩ê–àÛ±´Ÿ²É©Á¡úø“Ïõ²†©ÖŸšŸÕÞ¶…þÅ’çµ§²ë–Ê¥õ·ÍýàËÝÙ™ùÄçÓâú’ä“ -¬Í×Éä¨ÙçÆÓ‚–Øõ­›–­ØÔÖõØ¥ºÐïìªééꮳ§®Ùä“Äöճɦ­â²•ɼ“Ñཱü¯Ë·„ˆÖîŸéÈçÈÓÐÔ«ºêðïú -ÉêͪÙòß©®Œûÿß”š™ïêœÚþ™’¸ôžíó‰Þ©¶™Û¶”ôÕÅ‹´¤•ý¶…–ï²É¦íã‘ÐÚ·úä쟾ðäò¸ï²Ü©íªóÌÏ®Ë -¿Õ¾öՈΌ͙ҥ•ö•£Ï˜ÍñÿÈÏŽ»Õº§±êÀµÄÿüɇäDz©ÍµÁù®«ÚîÀÀ€¶Í×­Ÿ×êñŸ¹ª¦‘çûúŠÊòÖæç“ -«¼Ì™Œ¡ù®“Ùâ¶›Žü¯šÄšêë÷ÍñßÉþ™íæ·×Ù¹ÙÕÓÈ¿›ç¼ÈÈóçëÝ”“˜ÍºüÏ娝ÞîÑìʵªÚ …œ·Þ•¸³õ -¨æ­õ½äÀÓáȦ†£žƒ‘ë·é´Ú¶Ú¹é¬çáုϠèá«å”“€ ¡Í€Æ€×Í€€×Ÿ˜³©É®û‹ˆ€èˆúìºÃÆäÓýä“€  -”­•Í…ÿ”üŠ­¥±ž‡…Ý¿¼ …­–ÄÍÅÿ¿’Æ«€Œó¶•ÝÝø¶´î‹šÍŠì€â°ìÆËý¯•„ëß”çÚ½”®×մȦ†åÃæÈ¶îÑ -óïÓËӭ訫ª£­­íÍÊå¬Û·®ø×ò¹œó¶¹ÆÕËÕµ²·‰Á°™¢‡¿™Û¶àÑìÊžÓ­¡ëŠþ«ñ¯Šáÿý¦èìâÕ焤®§ -ÌêϨõº»™Þוà®í×ñòô—öÊ¿ã‰Óë©ÉŽÙÔ§‰¯œÏ°µíÏíÐÞ¿Éþد²å¸þ“Ãý¡êúø³«·ÙȳêúÍéž–©™«•µ­²Ä -¡¿íïᨫ–ÙÞËÏËæ•ë“Íéê󩩘û‰«²Ô¼Ð‰ë֮ľ“ëñŒê‘ÍÎèÏȳ¯Œ×丿Äÿúåû¿„Ù”ùÅ - ¥ÓÖ«ºª¼’‘­×½É•û¼”ÞÎÙ”¦óžúåÓ²ªÒ®ä“ÍùÎÜ‘®Î™‰õ¸††¸¹çÓ†ê‘ÍÀõäÓÃÑÓßÚÑ–¦Ï‘¹ÍÍÇçäû -ÝÛÃüúÕ«Þºªè·òÒãûÑ–«Æàà Œý¶…Þ¶‰Îþؾ£’²žÐ½½Ç‹‰»µþðÕéó³®¶èßÕΉîïÜÞîÚì¸ö×íÕœ¦Ë¦ËÇ¡ -½¦ç¸ÍÎÚ÷̃¹¢‹ùû®«É®¦âÖñôø§åñÛÔÞ°öáÆ¡Ã¿Úïß‹½‚èì’™üµºÇ‘ìÊžÓ­è¨âÄ íØòåßÐÔˆ÷ëºÚŽ¦í‡ -òñË襮ǰñýè±µ•”²ÈªíŸ‹®“íïÚ½‹Û̼іö·­·Ðëå±Ê Ú¶¥ý¼¾½Ã³ÂòѬ°ŸœšŽ‘åĶ铨îÎÕÊ…Ì«Úì¼® -´ÎÆžÃôðÅÛË»¥ÕÞÃÓ¾Ò¶Ù”ì¡ÏþÙ­è¨Áϛݩ“þþþÑšï·Õ†åùÓ¾ÖÙ”¦žÐýÈ…ƒ´®¤›™ôÔÕõÀ™ç˜¾—³Ï¦è¿« -áâŽÚ‹æ“ÍÆ±®’½èæ—­µ›ØçÓ„ðè·œ—çñÁëÆÿ²Šœ¢‡¿¹¬ËÑ͌ފޔᶥÂþÜÓÖ«ºª÷¶åŠ¡ú펻Êȹ›ÒÔã -ÄÙÌ‚ìÊÿ”Îêͦª¡’ÝšßÃÚæÇÂûž—†Å²åò¶íÙ¿©ì÷Öæ›µŸ¬›ªî¹×´‘Ж¢Ë’¸ÍÎÑßøù®³ÈµúÐü䌿§×Ôµ² -Óë–Ê¥õ·ý¦àËÝÙ™ùç¢Óâú’ä“Í–ãÉä¨ÙçÓüÜÀ˜³É¼–ÑÍ–ìê«ú¬ú’ȹ›ì÷Ô—òàÔôˆ¬¿¹§ç΢ªÙäé“ÖñÙäžÉ -ô¨ðˆžþ—¥ø›ÂÄ«ÎÌÒ¤›Ò¾è©«È•µø·ýõÚ¦•칯Ԇ“ýÿïŠÍŒõ„ÎíÿŒÉÜϘôºô§ÚæîÅÙìÓו­ÒíÖöÙ”¼É -Φ›´ÅèÝ÷葱ÿø’©¼÷¶Åí‚ùÑѰ¹¸‰žÎö³ÿ¿©îή—­´«øÆìšõÒÅ•—Óš¢…›âä¿Äÿ¼üɇ¬²ÉßûÌ̧Úà× -à•­÷ààÀ¦·ëÖëõ¸ÜöÕÓÈ¡›ÜÁ¡÷°’ÿÝ£²Åí¶œùÞˆ´ÕºöÍñÇ®ÕãòÕ̓ðìâ°ì†ÿ©§ìÅËí¸’ÍÙÕ‹”‚ìâ -€°ìÆËý¹üи²‰Á¨ÇãàúÍÀš­–ÍÀîšëùØ£øË“ˆÚØÊÙ„€èˆä“€Àµä“€Àµä“€Àµä„“€Àµä“€¡Àµä“€Àµ -ˆä“€Àµä“€Àµä“€Àµä“€Àµä„“€Àµä“€¡Àµä“€Àµˆä“€Àµä“€Àµä“€Àµä“€Àµä„“€Àµä“€¡Àµä“€Àµ -ˆä“€Àµä“€Àµä“€Àµä“€Àµä„“€Àµä“€¡Àµä“€Àµˆä“€Àµä“€Àµä“€Àµä“€Àµä„“€Àµä“€¡Àµä“€Àµ -ˆä“€Àµä“€Àµä“€Àµä“€Àµä„“€Àµä“€¡Àµä“€Àµˆä“€Àµä“€Àµä“€Àµä“€Àµä„“€Àµä“€¹Àµ±Ù´Ö» -¡˜ì‚€”ƒìŒ‚€¸†ì‚€ã¸†ì‚€¸†˜ì‚€¸†ì‚Æ€¸†ì‚€¸±†ì‚€¸†ìŒ‚€¸†ì‚€£¸†ì‚€¸Æ‰ŸÍ“ù¾½€¤ÀáȦ€€ë -©È¦€€ëȦʀ€ëȦ€€ÒëȦ€€ëÈ”¦€€ëȦ€¥€ëȦ€€ëéȦ€€ëÌÙⴎ삀䎘삀¸†ì‚Æ€¸†ì‚€¸±†ì‚€¸†ì -Œ‚€¸†ì‚€ã¸†ì‚€¸†˜ì‚€¸†ì‚Æ€¸†ì‚€¸‘†ì‚€¸¦¦³›Öú‡ÿ”숂€”‚삀㸆삀¸†˜ì‚€¸†ì‚Æ€¸†ì‚€¸ -±†ì‚€¸†ìŒ‚€¸†ì‚€ã¸†ì‚€¸†˜ì‚€¸†ì‚’€¸¦¶›Ž¡©›€€Å ›€Ê€®¡›€€®Ò¡›€€®¡›”€€®¡›€€¥®¡›€€®¡ -©›€€®¡›€Ê€®¡›€€®²¡›€€®ÑçÅÓ™íä“€ ¨ä“€Àµä„“€Àµä“€¡Àµä“€Àµˆä“€Àµä“€Àµä“€Àµä“€Àµä -„“€Àµä“€¹Àµ±Ù´Ö»…äþ²‰€Ðˆ©²‰€àš²‰Ê€à𲉀àÒš²‰€à𲔉€à𲉀¥àš²‰€àš©²‰€à𲉢€àšó¶íË - ¶€ò—›Í†‡ÿ”ì‚€”±‚ì‚€¸†ìŒ‚€¸†ì‚€ã¸†ì‚€¸†˜ì‚€¸†ì‚Æ€¸†ì‚€¸±†ì‚€¸†ìŒ‚€¸†ì‚€÷¸ÆœÍãÆ· -ù‘Í€€œé³œéâûžï¡§¡›€€ù£›€Ê€®¡›€€®Ò¡›€€®¡›”€€®¡›€€¥®¡›€€®¡©›€€®¡›€Ê€®¡›€€®˜±ç“ß§‡€ -ÑÈßü¶ñÝ¯Š€€âÍ€€ã×Í€€×˜Í€€×Í€Š€×¤Ë¦€€ÇêªÖì’‹‹ØÕ€€¨«Ú³”‰€€œØç“”€€ù£›€€Å®ÑÙ´î‚Ù -È„€ð‚÷Æ»Æ÷ðýä“€Àä“€Àµä„“€Àµä“€¡Àµä“€Àµ°ä“€´Õ«Ø–­ßúç¥Ïßü¾ˆ‚ÅÙ©¡¡›€ ¹¹ˆŽ¯Ì¹é› -ݧοåÀ“ææµ„‰³ï½ö¶‹ßí©½´ë‘çàðßȦ€ÄèŽâ„Ä„“¯°èÙ固ú㇜Ÿ›Ëå§ê–¯Ù¤¼¶û×ðßȦ€¸èŽËžù½¸ -äã’ÁÔôæÔþ¶îüÁ÷ÅÙ«“˜ˆî‹Ù„²€ÍÁäÓ§áÌ“çÌï¼ñœúƒùñÿ¨—ʎ˦¾Ï쀚šÌ¦ÑäÀßûí÷ƒùèä—¿Òä“ßõ -àŠ€ÍÁåÓ«—¯¾ÒÀȦ€èè⪛öíÚÙ€—˜êβ¦ÍÕ„ì‚€¦ÿ¦²éå—·×úÊÄÐô×ÐÌôº¡›€ ‰©¦ìÚ¾ýë­Ä¬ŒÙÎ̜ل -ð€ÍÌåÓ¶­Ûê¥âȰÓë½×—¼©ú«Èö£Õ‘̀СÄÔ¶îÙÔ «‘«ñ³ƒ·Ç…æÄ­Ð“²ü‰€š˜Ê¦•Íýµ’™’·¬³ø“šŽÍŒ -ÍŽÚïšì‚€†¦¦²éÓßïݭĦÄ͌ޯ¤Ö®ëìú‚€¦¦²©¯þܪ•ȗ诟ÁŸÑù†…êÀ¶À“ÓÙ¯ÔÛÓ™ÀðýÀ¹µ§ôÓèá -›èº‰î—ì‚ý€¦¦²©»´ç¡Í€ÐÄôÔ¶•º××Ä“ÓÚ·’ØìÀ¶Ì¶ÀÃŽÓÙ´®ý僺¡›€ ‰ÉìÙÚØª·­ÜܬÀþò“ûȦ -ЀèÖ¢›¦Î¼õ©Å«Þø³îɆò×Ý÷ŸõÙíä“€Ö´¥åËÿ¬¯ôïþç¾ÿãîŸÿð¡ßüÈæñâŒÉ„Ó‚¹Ûÿ¨„¯ÉΠ¶ÀÓØ½â -äÑ÷×Ë¢›Ä—ÙÓ§ÌëˆóâŒÉ„Ó®‘ƒÂðßȦ€Ü蚢Ë“›¡†š¢àа¤í¢›€€î¡©›€€®¡›€Ê€®¡›€€®žÑÙä½ûù‘ -ŽÏ︤¤“ê»ÜÅý–¼í …€ ³¢˜¾ãüøð¶ð°»ÿÅú¾û÷ÌöäîþÚÔ¡€§ƒë Î…ØŸù¨úì³¶º­ßÖ½žª–‡õª¾êò ê¤ -ñØ—õ½îÝ…†‚ê ÑÞÓõÞü¢þÌŸøïØýþ¶½óÇþ¸Ï€€œñÿŒ¿¥äô -] -::^ [s0; Simplified solution for multi`-tab dialog.] -:: [s0; [^topic`:`/`/CtrlLib`/src`/TextCtrl`$en`-us^ TextCtrl]] -::= [s0;= ] -::^ [s0; Common base class for LineEdit and DocEdit.] -:: [s0; [^topic`:`/`/CtrlLib`/src`/ToolBar`$en`-us^ ToolBar]] -::= [s0;= -@@image:1147&74 -€ƒðš€€€ƒæÿ€€€€øœíÍրýþ¼ƒÇÀ•ëÞùƒ¸Æóà€’Âܪ ¨Å€‚¨•  ¢Î”´¢â‘ªÀÔ•Œ‹©‰ñý»žû -«×“ô¬ÏÑæß»žØÞ¯ŽÕ»Í—Ç‹¥Ã䰌ðŒ–ëÙ݇÷îÞ¾Âõ£ˆÕÅÕìõÞø†á蠜Џüúðü¼‡’ࢎÖÕôµÝôü«×î -ç¤û°³Ì–î¢é‚Àͳ”™ý঱‹ª¨ªâçÇ„—ü¼Âð¾á¶‚‚¹“Þ®ªÁê“ËÑûÌÄ®ª¢ªÞìýÌæï××ï¾ÿ„ Ž”쓺šˆõéÞ’à -·ÛÊ«ŒÎ£Ö§øÓ¬Ýý‚ÙȬ¥„š×¤¥à“݈êÈùɾ¡€°Ôƒ”ÒÊôºÂÍãœî¾Áä–íé“Áˆ³á¶íùýþ¡â“ç‹¥ïØ§„Ùš -•Ÿ¸“ã“ÿ¬ò‚œ¢ÐðÉÈéæ™Ÿè餞Ÿý‚ð‰¸ŸÊœ¾šÞ¿ûÿ·„€ð‰ˆ—՚뵨‚ߥͲ™Óä—°øïØíŸà„¥ûë…Ž“Ì»Ä -´’ª›ñÀìÔäÖ̧ƒµ×éñûäž–ùÄøïü컨¨¾„¼ýû‚îþ‰’Èçô•Ûߨ‹ž§ÝòôœÀ¦ù‰Î„´°Ïâ«§ËÈ”ì…Âö½¸˜’ -ªðŸä³‘Ù¥¶ÏŒÆâÿéÇå˜ì׬œŸŸ´òÉ“·ÇšË—¯šíÿÄÏóŸ´±ƒ®ü–°ŽÝæìÓÆÄõı¸Ê£Ù©«ÏÓ°ÁàÁÆ«¥¶æè -—¡›Ò§­²«”»¿‘ñ™È²’¾Ùýý¨ÐÿÔè§þžî󣓚ËôÔŸäû«ÛÕœ—†´³Ä±ÁéÎÚšˆ™Ï©•¾ñ֖ΜÑî²þ’³ó‰ÌڢƧ -›¥™…üýÎÐæ¦’ŒÏöö¿ÈèÌ·íͽ¨Ïðך“ªÉƒÅ޾ɼ‡ìéꃑüâœÖÙô‰ÆŒÏŒÏôú‰“¸ˆŸ¡ØÛå–ħ±™È²¾ù¼ -³÷Ùຫ±ÿÙÔ÷þ‚–ɰЮܧÁ´ÞÓäâüÉä‹´ˆ£Ø›˜™ŽÍ§Ÿ„î¹ñ‡ëÓ¼õ“ûÃþêû섩̬¬–φ³’û©‘“ŸÌÞý²±Ý -æöö÷Ý¿™ÞƧ¢°„£¸ÛÍþЀÚßçƒ¡àŒ‡ñŠÐƒ‚…“ŒØ´Ö…†ÒŸÈï­¥¨Ø«›¤¦³œÅŸ¸íѦ‘ñ›É‰¤ã“ǯ¸œÔ—ý -øýÒùåûÕÌÅüí’ò…à‡ýÒ”áÙâûóÎÿ‡¬ä¦·¬†¦¾±×öÎ⯲Öú‰×Ù†û¤›ýˆçÌòç§ö“Òʲ‘äî¿ùøÝâƒ„ŽŸ÷ˆ -±û¤–Šî“Äàãü›àÆÀ˜»Ä‹Ð铬ÌÎʇºò˜Ã«½ûÏœŠðìÃüäÖðóŽÖˆ÷žœ¤ó™Èýç±³ù‚—û›ÙЕ›Ä‘ÞÙú»õÓ¡ÄÈ -ȧőþ“·¼Á¥èñ„œâ¹øè»¿Ö‰Õž¿ÛįŸÌÜÚ™•ô‰¶‰áÈÍΤ™Ÿì»Î÷¡ðýöÛŒÆÛ™àŽðÚ‹’ˆÓÚæŠ¾®©Í¬Øú¬ž -óÀì«ÒðÉÖ¹ÿýñÍûæ–§Ó¤ïý²Þž›Ñ³¸Áû¬ëž¢ô÷ÉÛ¿ú¯Þ”Ÿ”–­ó‰ãÓʪàè×ÌôŒÁܼɗã“ÓÓ“îŸÕñàþƒ„ -»ù„ ÝÓáá²ôÏ“„úûÉ”ÎþÿÀ€ùľ¥†á®ŽúÉûžÿýÜ¡€Êüߣ𗇯±¿šá˜‹–…ÿ¿Œ†á¨µó‡×Œ˜ß -] -::^ [s0; Tool bar.] -:: [s0; ToolButton] -::= [s0;= -@@image:287&162 -€ƒ®€š€€€ƒæÿ€€€€ø½œûóòÆ›ÑÑ„›¾°áû‘æ¥ëÖ̤‰¢µ€µÒ×™þÀôâùÃÏŸ‚¿ü§š€•ƒ•µÀôÒË¥ÀկͤÞÈ -š€¨‘¨Ú®²†³É¡–„²ÀíÔô‰ùó΀€š¹„¦¸€Ç¥Äš°ó„„ÿà᱒ᦣéä¾´Œ¦“ÑôüÂù˜üùó‹ÈŒÄõ—€«÷ -üß¿¿’¨ÛÞª€´”¾ÿûÄÀ†¢îËéðÕ´žßŒš–õ’¨‚£€¨ÑÝó -] -::^ [s0; Tool`-bar button.] -:: [s0; [^topic`:`/`/CtrlLib`/src`/TreeCtrl`$en`-us^ TreeCtrl]] -::= [s0;= -@@image:1061&1007 -ŠƒÂ€¹€€€‚Çÿ€€€€ø·œíÉÒÜ´²”€ó¥ÎÁ¨¸€‹¶Ü€ÆÇ€â€¬Òì€Ø°„Ö”‹Èƒ€¬ Å˜ªƒö™þ̤”ø±ô°Šôôô -õ¬ç·äçûê¢ÕÊ­ëø–¾¯»»í¿ºÃ€ßàåäú÷1ýÁÔÇäÑÊë—á«à‘ø­Á¢ðƒÅàÇŸ·è”ÄÑóüŠ¡ŸÙå𜔋æ­ÙÔèß -ÃÖ¥ê¢ÒÃÖ¯¶¨¸¸Ø´ƒ…°ˆü”­Ê¿–”͵¨ê§¬Ü”ëæÀ¢î©µ»–þÿÿ„…â‡ðâÆÒ俬õ‰ÃÍÚ”¿£•ËÄÃò¹–©½—‡ -ü¶¶‡õèÇ¢’è—òÙ³¤€‹Ç¤ø×ÑÜ嫽ڰߢ‹ªêØÔ­–û×–øÏ¦¹‹ÒæÊ컚Ÿ®·Šñ€‰È§ëäü¿å…£Ãó´ðƒºÅà‡‹ÀÏÊ -¢–…·¤á÷àö‘øÁ¢ð³¬þÅéÓ´æßÁÅ›§°¶½œàÝ‚–ͽ™ãÑñ̹ÅËÍð¬®Ã‹î¸ÚŽÑÙ¬ãÿàØÜ¤”֖垟¹óÞ°¦ä¯£¬½ -¼ø¸–ÉÑŸ¢öá‘§ð”–“ª£Û´·‡¬¤šæþéЮ°¡ìäøñ‚£…Õ²üôÒ®¡áÿ¢ˆýë­Äþž­Ç›Ž®äë¸äÿ–‰åéß͵қº· -‡éú¦«Õíï­îœ×»ÒÖ½Ö·®îÌñܰ½Ð֤ſ£•ŠË”ÖŠÅÑå½ã©¬ç“³Èï笠­Ü¯ìòþÎâÏ×¢¡¥©Åé‚•óÙ±öÚäÉÀ’Ï -´…»³è¨ºÊ«ìãÚ¤œŽå˜ô½ýÙ´©¨Ÿ²£êáéÊ«¶Õ¦º½ñžó™ˆƒê‹êêé•ë¢ÜÓÄ‘£®žÅ‘ÝÚ¼´œ÷¸ô±¬ãë¾éú¸¢ -”¾Ç³Üˆò¤×Êé忣–ðÁ×à‘øéĆ¢¬Û´Ø„þµ°ˆüàÑÂ×Ò†–‰·³åŠÍòÌêûåÁó‡ùÈ©š®Øá®ŸÃùÒ«‹ò¾Ìê• -û»§íÍ²Šºçþ›¤êœ¢®ˆÎøÒôàÑîøÛìÒ¬¼ÈÒš”ÓØ¤Ã£¼½õØÏ¢°¼·÷‹Ò—ѹŢ…©æØ¤ªŒ«›§…é‡Ñ…¤½×ϔꩺ -©¯¡é¶éÚʯ«°ÿ¶–úÉ‘ðïúÛí¹û휃ʺ‡‹Å•ë•›×ßÇ—´çõÒÍÍÅß䤘¡ØùäÆÕ®«ôû«×’¢¥þÔ¨¬ÍøÔÙ¯É•Ó -» ¸ü˦ªä˜¸·ÿå¤ÐÚ×…Û½Ù”»×ôìÈõèÜšÝâšÕٸƪéöºÅõ–íÉñÚ´•¨Š‰Â¥º†Ë­Í±§•Å¢µÒÕÝŸÍÕÙÓµè° -ÜÜÞš¹’±™¹¸¹¹…Ðú¾‡°ô£×ÙĤՋÂâµñë‹ýê“ÕÉç½ë昗¥‡žîçö©œ ËÑñ²Ûä¼’ö§À‚©â‘ô‰‚–Ÿ¬‚¿Ø -ô„þ°ˆüìþó·Ôà¥Â•í·ç÷‹–÷ͳ²Äõ½–½æú½ç×ÚíªçïñÔ¹–ÙÚڗզ葱ÙͱÅìß’‹¢»™ð½Ø”³åÛÔ–ùƲ¶ÚÛ -§¢ô¢Ýá‘òØñŽ‹‹­òýˈï©â¨âÃᨇåˆñŠÄ•©»’¨šªÅéÖŸ¨åå“Ú›þ ­þË ­¼üñæÒêÔúɚɮÕÎɨ‡ˆÜýñ -ÄÁ­Ýª¹”âú–Åú§Ê´¹‹Ó¡öÜê×ѰæÙ¤Ö‘—¬¸÷°ÑÀÅéüÉ×߸‘óǶҸ’Åʹ°Þ·ÕÜÞ¶–éì›é¡²ÆÊœ”Ç¥–ÉóÛÔ -Î̲Øù¢–å™ò±žï¿á§ÃúÍÿËÍèüÑñ»Î¢¹“¾ì´¨î¬·Ûž´ü·¸Ê¨Æ¾•õùϱ¶ÅÄéú–´†éŠƒŠçËÔ§ºå锳Èìÿ°­ -ß¾ñ²æ–¥€ä‘Ò¼Æý¶³”ƒÕò›¥Ð¸Ú퇿¥Ö¿Šõ³±÷´¼²äá‚ü¯ûÝ’Ýóļж…‹™À–ŸÎ¬Áâ¯É¶–€Ÿ¬‚¿í­º -Ä¥ñü´ÖÅùõªõäÌÖ£¡æÅ³¦÷½Ó”¥ûõ‹ôÞ½÷¬ÃìÈ¢£ŒµÍÝ´öŒå™×±²÷ÃàÑâãçٻ¢¿éÓº¢åÒ ¿ÍÍ™ÛÑùúä¨ú -×ÛÒÇÊßÀõ—Æ´û·Äöó‹Äòñ¯ÚÑĵ•·Òº–¹šÊ⺳γ‡âØÛ¤ù÷µ´â‰Ò¾¶ÅýâµÍ’­±Âè¾”š°¨ß­úøÑË›ˆÊå -‹¬³œÔ–éþé×Ñ٠ܵ´ÐîÑ þ¹ÍŽØ¹¨¢Å•¬äºš–Ï‘ú™‰®üĉÆÉ‡³Ò»Í÷å„ÔúŽ­îï†èÁÝ¢áéùìêí’æ½Çï”ά -¸Ú–åáö´ö»ý°Ë‹àÈà¶‘øÁ¢ðƒÅÍà‡‹À–€Ÿ¬‚¿Ø„þå°ˆüà‘øÁÖ¢ðƒÅà‡‹‰À–Ÿ¬‚п؄þ°ˆüìà‘øÁ¢ðƒ -šÅà‡‹À–Ÿ¬‚¿Ø„Êþ°ˆüà‘ø­Á¢ðƒÅà‡“‹À–Ÿ¬ ‚¿Ø„þ°ˆÙüà‘øÁ¢ðµƒÅà‡‹À‚–Ÿ¬‚¿Ø”„þ°ˆüà‘ -ÛøÁ¢ðƒÅই‹À–ŸÀ¬‚¿Ø„þ°²ˆüà‘øÁ¢ëðƒÅà‡‹À„–Ÿ¬‚¿¨Ø„þ°ˆüà¶‘øÁ¢ðƒÅÍà‡‹À–€Ÿ¬‚¿Ø„þ -å°ˆüà‘øÁÖ¢ðƒÅà‡‹‰À–Ÿ¬‚п؄þ°ˆüìà‘øÁ¢ðƒšÅà‡‹À–¡Ÿ¬‚¿‘Źã†ÁÌŠœÅ»ï¾óÖ»ŸµŽ¥¹˜÷Žõ -ݦþŠõ‰â„œÓúëÆ…ÖÑÚ¡€èѸ÷Œ’‹¿Ü½¹óß½¼üåãÞÃÀµËý¨’Íé›í›¿¶ŠŠö†É¢Ñ³±ÎîçßžèñîüÏÙ±¦½¾áŸ -…Ò»·þî••ª‚ˆ–›£ìöç¾¹‘Å«¯í½™¾¼øñü쿵óõûˆñ›ˆÄÿûŒéʯïÞþµÕˆ‹èš­ý”í΢¶ñãÓóרÕû¹ÄÔòü¸ -âÌýÎâÌì•ë׿Èÿ힘ޘӔ޻ó¹ÊÕ¤‹š®ý”­­êѵ©‚þ±þ¯Ì¬ºÖáÉä­êŸÛšÓ•”¾¸÷µÕÔúˆ ØôÉÙߔޱõ°•œ¢ -­²¨ÚÛÉä¬öꞘ˜Ó”þšþÿÚ«È­èÿªÅ¢¿¾ÞºÆÔöð²ŒçÈ¢´Â‘³Á¨ùââÌÓú—ðÁÍÖ¡¬è®¤ƒÍ¢«‡ˆ±ÚÞ‰£±èÊ -‡‘·¨ýîé¼ÌÓúèá­Ö¥‘ÛÐÔƒ‹ÅðŸýõùŠ©‡µ°°²¨ÜÕÏÙä¬êž˜˜Óï”þñèŒÀµèÒ˜ÁÒ¿ÏË’‹®õ²™ÿº£üÛá -üÌÓúøÏû­´¢ÝÐôé£ì»•ûÅŸŸû©ÏбŸðåô¿š¨­ÏÌéÊ©Ÿ¼þتą«–¾ÊÖ¹÷Óýå÷¿è‘ÝÕ»®Ö§ìÓú£×“¿ÚÅ…€ -͢Ňç£ã”Ѷñ™îؾï©õ‰øâÄÓúô铨ÖÑ¡€èщÓÏôÛ¿Óÿöì髨 çê‘ѶħéÇ­¡®ÛÈ¢€ŠÊ‹ˆ¢ºÚ‹ -䌻áïȨà€Ò -] -::^ [s0; Tree widget.] -:: [s0; VScrollBar] -::= [s0;= -@@image:106&456 -€ƒ‘€É€€€ƒ·ÿ€€€€ø£œíÖËÎ𘔼“çàŽœ±€…Û®À†«¾ Ž€Ø±àӈء–ЀÝÁæÅù¨ÍÈÛ¤¼éÓÒÒªŒªùÂú²—Ä -èˆÅ¨Ñ¨²Æ¶ïìÈï¬Ì⯑ûñº÷¹Àÿ’ݽÚÖÎÁ£Æöþ–°‹š‚¡Á˜è¾»Þ‚ê¿£ˆ±Ë„å¤ÁŠàÎ祿³¬Æ•¤«Á¾Ø§öݳ -ƒ£ÕêüÕþ˭𾱺œ«ë¥›’ƒâÅ⊇ žÀÉÕòÜ´ÿ¥ˆú‚àÕ—ÉÑ•ƒˆÊ鲌褶«±‰™œÑ¥‡—€Ñ³´ŒÎÒ̶Ò ¯çÖ -õ£™¼¯Ôý‹±Ûû³ø÷ɼ¾à°ŽÖºà±ù˽ÖÀÉå¿À¯ðøêÚ—ŽÈÊÍâ§ÍìãÛ„¥“£¾¬•“¨÷…’í׉ɉê˜ÚååýòÜ…ÁÒíòó -žÝò¶²€áʦûÅüÞóÐÿžˆü§áàå”ÊôÆ£ç­ô£¸ñÿ’ùÓÉðÝöžÆ³è£žÈ¦É¼Ÿ§ôò—•¤’Ô’ÿ Ú©ÿŸùӊ¬„«¥ÖÎ -Ì蓬šÚ¹óÐÛ‰ÖÊ­Òš•Íʰ¢µ’¸Ý¹´Á¦õÕ‚×Õß—‚ϧ‚„Ä•– -] -::^ [s0; Vertical scrollbar.] -:: [s0; WheelRampCtrl] -::= [s0;= ] -::^ [s0; Common base class for ColorWheelCtrl and ColorRampCtrl.] -:: [s0; [^topic`:`/`/CtrlLib`/src`/WithDropChoice`$en`-us^ WithDropChoice]] -::= [s0;= -@@image:1175&287 -‚ƒØ€µ€€€ƒËÿ€€€€ø¯œíœ±ÎÛÀƘ€óʼÇßÍ¡Ð¡ë«ÆŠ††® ²å¨ÐåÁ¬¨ÊˆŠÁ­¢Â€ˆÕթޱµý„È¥…¶£û -ŒÃ”×½»§ç½ÇöÎèûôç¶±“ ýÜåú ¦ÿù©ˆ­ˆÃŸ¾ü‹ØÓ²ÆŽÃ€’¡´Ã¨‚Ÿ¯›‹ïÎ씳ú½„âÀÎûÿ¢ì”³Ãº„â -ߺü«ß¶Ú°÷Ø›²¥ï‰ÿª‡ÔÕíý²çÑ²Ãøþù¦ŠèÿèüˆÔŽ¿©ëìòÖÆŒÂ拾àîú»¼™øèñ³àèÛ¿²á‡ÊääßÕ¦ñ¤ -¼é½éòø“š´ŸÜÇêêÜÿ܈’ÜÀÁ®üþä’÷‡úö‡ˆ„Œ×™¯ÉÈú´¢¬œÒ—²—üœ˜…§ì–̰޶¯§áüÿ¨³Ž‰ú¾à¨úÓÁ -Î¥¸ïðÇä”Åß°Âÿߪ­‡Ã¤—ºº³ºù¬´Ò×é·ëݸфÊñÉÖçËÌ˰š©ë“ëù÷ʼnп¦¸áïǯ¬¿”¤…†åºì¥¤ÅªáìÐ -ø¨ÿÏâ¸ë°ûá£Âñ¥Üõèù¶Ò¡Ü”‡Ÿ·ª’ÙÔ¡âÉêÖü€ÊÇØáÌ“è–âéÒ¡ºàØŽ•÷“ÓÿËÁø µœÓŒ–ȱ˜ÊºÄ -Þ—”伓ý¿ÓŽü£Þðìƒß¡²Ó«›ÌÃâ˜ÊÉîï·ôùø°õú壅¤èÙáü·Š×ϸ‹è£¤·Ó¶Úèî®ËŠºÝ¯íß¡¾øŒ±Žˆ¶Êò -‹‹õÉÑÆÅû™ ³Œ‡ñƒþôˆÙ”äæç¬æ×–—Úۛвµ³¯ãÔ”Ûäꯞ¿ùýÊêçýŠŽçÆ­ÓŒ— ¦éÙÙ¡â¡Ò¡ºŒàÒ‡é¿Á† -¡º„— Ã ðº„— Ãöð±Ö¸“Ί‡ñ܀ʎÁ…èÜ€²ŽÁ…ا€‹Ô°ž‚‹Ð¡¸¤ÀÒ‡€¥£÷¿¨èìïí¶é×Ö›‹‹õù -Á¹Ù¹Ÿ±÷õéûÓ”ýÎûðîૹ¹®§­ø¬¯É´ˆ¹«—߯§˜øÇ²ŠÔʉÒêëûøÃÆÎÄÜÕï´ßÖì…Çò¥Á©Ô†Ì¹±žˆãÿÏá¯ñ -‚çæº -] -::^ [s0; Template that adds value`-selection DropList to any widgets.]}}&] -[s0;3 &] -[s0;3 &] -[s0; [3 RichEdit package widgets]&] -[s0; &] -[ {{2416:3247:4337^ [s0;~~~160~>608; RichRuler] -::= [s0;= -@@image:1265&119 -‚ƒð€—€€€ƒéÿ€€€€ø¯œíšá탰ª…ÙÙ²‚Ñóô†þÒ‘²ÞÁ„ªÎÀ˜ýíÀ‘ºƒµ„Äปãìãß»¾§§ˆœŽ«Áç°¦‰ -Ÿ‚ôè÷ýÃÜóÙµ¯ŒÃ…ÛÆð»Çþ˜†ð¼ŒËôÌó°Õ—Û¶à™–è‡ÍÏŸŸß°Ü‚íÏ¢½‡¹÷Ȳž‚¬ºËóšÚéÀŒ•¦€žâ礳Ԡ -äø¶¿Ò€ó²‡Øèˆˆ’ÙÁÊ¥ÁûÏ­ÌîծᛖÌó¾ŠÖ¥‘ÉŒ›‘ݪµÌû ”‘á«ò磳âýòܽžùã×è«ÙÒÄÞò‰ÐŽš±Î‚¬º -ô›€ÊÈ»«òî­´àٳ¤ºèô¸é¬‘ÓÀ㊽òДñéèÁ“Ž÷¼Áç­õïœòÃÁˆ÷ç’ÊñÔ£ˆçгÈý¸­ˆç›áóÁ뛓—ºÔ -…ЏµÑ¹þ¾½„ùŠšÃÔº§Åóò™†ó­ÛëÏñûÂóÊœ¬Èì­˜´Ê´ÐƒÝÝ³Ž˜¦ƒà¾å¯•øÁýѬôåØå²€æüÈë—ë‹üҖÇ -á“ÒøæŸ£öͺ“ö‘ç¹Ü°Ñ•ëýº¶Øëîÿ¡«ðëÎÎÚ×ëéãÒ…‡ç›‚–Éà‹øºÏà’Ö†ãóÿɘÖãå¼í³ýðÀ”ã÷µÍã‚ -†ýßÛª¼¬àæ´Ž£©Ó×µõÙ »ž‡ÙíÕõíœØ³„¢Á³¹ÿÓ´²ÿúßÚ÷柋쭊ˆ -] -::^ [s0; Ruler for word`-processors.] -:: [s0;~~~160~>608; UnitEdit] -::= [s0;= -@@image:462&162 -€ƒÊ€š€€€ƒæÿ€€€€ø§œí˜ËŠÂ°°Àû¿ïà‘ÑÜú†ïà©Ü‰¹•”ÁÅ…—›¢ˆ‹ÿ•Ö‚˜ª¢®ëÀàˆ­Îƒ©£“²ƒ¼Åäˆôž© -ŒÉ›•­Ô Õø“­ÎÏ›¾«Úåބлø†ýëö„°¡¨—ë‡ý§êÅ耓òÉöÇËšÓÓè¶Í¡ …ÝÐÜô…°´‹¾Ñ…ùÄ›¹õ…´ -•¿½ßô²“·ÄÆÎ츲ùÂæ»Íò¥ð´£‹Œ¨Ô˜ìêéÙ³é»ÂιÔöþÛáÿ„î°ïæ¡ç¶›¬Þ•€›‰™ Ò×íÆó”ѧ‚…®€Ž§Âù× -ùÑÅž»áì¤àµóˆ¸žæœ«ÕŽèþ°©Ý‘È·›Å‹¢‚Ñßâþÿ£ÂØÆ¯»ï𹣈„˜øƒÅ‡ Çà -] -::^ [s0; Editor capable of converting and displaying typographical units.] -:: [s0;~~~160~>608; RichEdit] -::= [s0;= ] -::^ [s0; Raw word`-processor widget.] -:: [s0;~~~160~>608; RichEdit] -::= [s0;= -@@image:1241&717 -Šƒ®ú€€€‚†ÿ€€€€øŸœíÍŽœÅ—º†ë–¸…î™ÛàÇš­Ë£–ÞúÛš±à‹îàøÏ‚¡ë“„„ÆèƳö¾£ƒŒÕ¶Ç–ú Ì蘃 -‡±‡’å鄈ýËÒžèþºÃþÑñ—ñ—¿õù¼úÕÊŽŠüŸò˨ˆ§¢ÿœªû÷ôþŽã¥Œ±Æ˜ã¼¨žßþðÒä¹àŸŒñ´†„˜ã¨Œ‰±Æëò¦ -ªÁîÚãñ™œ¾ªË–§óžÒý„š†ŒÊŒ«ªõÑûÿ㬀„ÛíÖ‰»œßÅÒ厤»ö螨›•ãȃ÷Žª›ÙÜÜ×–û¸ÖÎùÓÐÉŒ¡ -¬•Ìà™‘„îýÎòŠÉ¨ö¥ÎÝîÝÅ«Œá†–½ÔƒŸ÷™ëæÈ±â´¤¨ÕýÿÃÍÚÜÔŠÛµù¼û¤È𬫂™Êï„Ƚۻç å’µÑÙÖá×È -™èÝÅÿ™…ÃÿÕ˜ïýá½÷¥þðòª˜Ô¼¼¼ýëìÝÊžþîõ†£¦¾ç¿á²¶Á§Ç·åÓ°ÕÏ€؟°£øß·ïáÃÏâ¦Ò¹¬å‡ÑóÀóõ -ÙÕ󘬤““ÐÚ±ëøÙßãÎÛªñ÷ÓŽíõíú¯Üÿ§¾¿á†ÍÞßÛò›óƒŽ÷Ÿ£½Ë´§¡Íþ‚Õù·¡¡ùµëÝÎ÷ÅÎÁœ“úɘˆ’ -¸ËµĵÕȬÏܫᙹÐäü¡›ü¨‰õïÕ‚®Ÿû¼¼Ù¼šõùÕ¿¾§Œ÷ŠšæêóÒßðٳדƒÐõÔ¤´ßßµåÙÚÿ≼é×Ðêû -ˆñÌ’ê¿ËÉ­¨†´¹ìþ©°¥©°”¤„ —Ó„š³©˜÷Üíω½ëö螯ïŒÃàÈèë«’†ÊŠÃ¢–÷·¼Ä˯ߑ„Þ̋ɸ‰Êì–‘’î -éŒùéÛëÇš¨þ–ƒÍŠñÁÔ˜´‹µä²×ðÕ»¡ùÜÒÞ«ïöùÜ…Ží—ÃÍîÀÏëšù͉ëû›®ˆöÃ’Æ•‰â÷ÀÀ«®„Á¼ˆ‘ÔÄ÷î¨ -­ªÍÚœÐïþìσ•’°‚»Ü”’†è”»‘™‹ï¥ëл²¢§Ô¸µ‰éíèöë†¨Šœ¾üëºÞ¾±é껆­ˆÙßßÚð±·íΓž­öº¿Ó¸Ö³ -ìéÊŽ±éŠåïÝŠô¯íѰ³¦¹‰Í¶È𹡗¤‡¡ÃÒ²ÛäË«¬¿‹Ì‰Í¸äÑ’Úó—„Çòš»»Þ†ÖŸÃ°¾¿ášï²ÚðÓŠÁÝ -ÃÒœðÓ¹§Ü»´›“žŽ¬“¼ÛßÓÑÜζ¤éçú’º£êºë¼¡ÕÒŠ±„æý€Ü‹ƒÃ­Ï–›Í¦ú›Ý»§Ôíœå®çîÔ¦ðïý⬧հ -·¾¿áâדÐÜãД…ÁÝ”¢ãû•ÊÈøª±ÏƽÓÏõ÷ÏŒ÷ùóÝæ‚¤ŒØæÁ©µ¥½°±ò«Ëáˆûþ’Ò¤áèÛ‹ñ„†˜“ž ·û­‰“ßš -ç§¿áâגЀÅß–†÷­ÉçèÑ«ý¬ê™¦©ê“¦¶ó˜Û’湘õñÆÛèˢᨔ·—ÞæÏ‰‹Í™áîþÅð€—ù«¥ìýÿ÷ÃÅîíùÖ -ÝÒÏÂ¿Š¶õ…âëÇÞóõ×…‡ª›èÅŒñµ¢½ñ–ý¦çµ‹¾½—«ˆ áÈ¡ÐÎß÷˜ûœð×´¿½á¥º—¨ñþƒ•¸úÙ—ê•Øó“ á攃 -Ý«¤á·¾Ù‹ë‚Б™õÚ‹û‡î¤©¡á¨ƒÌ§¿á¼ÖÏ—úé¤Ü²Õ ãŒÅ«„ ¡Æ˜×š’’⌱¤Ä˜ãµŒ±Æ˜ãæÖá‡Ú˜ãüàŽ -ÇÜ‘…‡¢¥É§¥˜ãŒ±ÑƘ㬾þô—ñ§Ÿüûú–Ç­¢Öœ¼ùýŒ±®·¢™òû“Ÿžü÷¿ÏŸÓÏí¨Êê•ÔÙ÷òÝÀ«ðå…¿þ‰Ïîù -Ìÿ¢ÃõÀµµ°ÓÌ«»×­Ö²Ô«Ï¾ˆðŠÁ¬ºùÙ§Ä­›ä’ðêŒì˜ÊÂõœ›µ›º´¥Ö¼Ìïî”ð‹ÏðÜ­ÝËÇÿüþ¿ÿþ¿”«šÝ”¤ -Ϭ̰­«ï蘺œ’ÎùÉÜ …Ùí¶Ûëõó·÷¨ãÏ»ƒÈš’¶—€¤Åªæ·…‰«³ˆìëȘ⓵Âóƒá«Äï·ÿçã¤û‰½›ËÑãæýç -Ωž„µ™¶Œµ¤ÌõêÈèÒÍü´‰Ý‰áÖˆÓÂÖã®ôú惔¢Ç—ƒßîÒ¼¡‰ë²Ìœ—‰ØßŽ“ÐŠàÖð¿’ÐÝè˜ÏùØžôóÅàå -ø®Ï¾éõŽ»þЯëÂă„²ÚŠž·¾ù¹Ëޤô’ ò÷錓áÖè°îÊÜʽóÂøÿþ†æ„îæÒ©‡ê¼óøœÁ¶Çôܰ¸« ŠáèŒá®°­ -֜ڹ¤Œô×»¬ú«–¢Ç—¸ß¿•¿õÎŽì–ÄÉè¶¹©ÞîÒΕ™öæŽÐ‰öÜœÈèæÜûçäÕõȲçÆÛŽì·â†¹Ä¾¹è‚˜†Ú¼ù -×ӥإ¡»èž¶çÿ¢Ëª´é»¨¤ÔÒôø‹ü«§ÊŠ©âÃùÓ­É¿º¶ÔšÿÚŒ³†ˆÂÕâÖιºŽþÔ˜Š„½«›õ«Ø›ÎÉÄâ€Ø®íÌ€Ž‡ -ÁÃÊ’Ú爭÷Öžü¼¡—„֑ⵤ«·¢ÇõûÅšö¬Ö²¸‘„î·Ïåë×æØ¶ÀÂãäÈÖ˜ùÓŸ¤©Çü†¢¡õÉ–Áë°¬ý†ðúœ -ÁЭ´Ç¥¤ÔžÒôøìî£í—±ùÖŠ‰½ßÕµøå‹†¹ãĬñ«œÇȘÂü¡Èýèà‰ÃÓ…¸ÿ®Ë퀥œ·Ó³Êù’Ð÷¦¡ÝÜ“ž§ -ÕܸòŽÀøÉ½ËÑãèÎáӚ²ÖùÊ• “³òÃ’Ö䙘»ÆâÃäÖ¤¤ôûÿÜÞˆ‡Ö²Û”ÉíØ­Ç±ï¬²‹Ô•••žÇ›°Ç«­š¸²ƒé -¯Ò¸ç–œ¸”†½®ÝþàÙÁéÆ­Ì¿ââ–ÑÔ´øå†Ùä¤Ô¢¢¡ÔÏîÝ—åžÇñ‚ÔŸ¿¢ßì¹ËÝÄê܄ۄæ™ÂðÖ¦ô¹Ï˜ÈÂŽ£ -óã°”½®Þú֡ޤ´šÙš¬œ°Ã¬áâ§•¸•—ÊÂБ¨ô’Æ’ñ¹‚Öà׌ô¢Ô›’°—ƒ¹ÍÝžÙ§‰ùÉóÑœûžßÏñ‰„÷Ö×䨼 -¦Ì¼õÝ’º«êÆö¥ò›“‚Ÿ±¹óËÚ·šžÊˬˆçŠõœ«ô½ÛšÐºäœÚùýôñ‚󄨬ާ÷¨œßËûñ„¤¬É°­ïùµÝ˜î‹Á -ѲŠÖ¦‘¸­Àòα¤ì®ž†Å“å¡Èسœ×Ù±›ìûÃö’žŸƒ”™óÖùõÚˆ‰¤§—ϧԛøëùòÅ»æ„ÕÉîõõ̹Ÿ‘ê´òäà -ùÆ—Žû™Õò›¤Ö—¿ÿÒàçžÔŠ±Þ‡åÿéý¿ýú¼ÀÒ¼½Ÿã¼ŽóªŸ°ÆøÇÿÓùĘ㌱ÆÜ˜Ïê܃‘Œ¼±ÞŸ‡ºùŒÞ¡„–£É§¥ -Ԙ㌱Ƙד˜û®°Æ½çùÏ¸Š¼Ü½—¸“ïšÆø´¨Ûãÿ¸Ó‘Øȥ¬¿ÏªÛ¾½þû¬Åµ†Â¨Ìó£áÁÚ“¢®Ÿþæ¿ÜìóñßìÏÞ -´šˆ¡²Íÿé øñÉâ©ÖϰµïÚž¿ÉÐøûúŒÜ·Ü•¤Äèýªþ É¬Æ¾Êêƒæýç©öɨ¿¸‹¿º‚„ˆ‘­Ï–ÉäÿµùÆÉ²«±¯² -—úòÛÝŠûÉêèÎÍÍÈÃîžõŸ¡õ©ÉË’áሤճšûª«›ßƒüœâ¯‰µ€²Ã¯§þÞîñͭ„֧èÉ„†Þ’Ìþê쫬¾øú -ù©Ø¥¬—Ý’‘ô¹á—Æà‡¨‰‘ڣ̒؆Œ±À²Û’þƒþÕ“åÉØÙ‰þô˼×Ì¢Ýòâ°ƒ„ˆ­êÑš¤–­ª˜Ž¤™ÕØ×ÙÝ›¿÷جÑç­ -“‹³È˜Âà‡è‰‘ڣ̒˜‰¶°â’äÖãÜßåõÙÝÇÚšš€âó­ô’€îÏ•ú—’¢Å´¾¹¤±ùâþ¥É¬Æ¾ÊêËèÎÃÓºù«¸¼ÄÂëÒ°â -ÈàäÂØÁ„µÖ¨‹¤æ„ªêÄ’Ùý•ÕóµÛ¬«äÝŸÂȜЄáœáƒ¤Äè²âÈ¢±˜¡É¬¿Æ¾Êêê­ŸÀÒœ¿º–€Êå„°¾ÅȈР-Ýúä‘Äœ“†ÌȲ«±ÿ²§Î½¾Ÿâ¸‰…‹½“ÂŽ’¢‰´Æ•äÖã¿ÿäÚ÷ñ½”É÷Þ±±Î˜†„‰‘ÚŸŠÈ–²«±ßö¬šïµðòå‹×Š -‹„Þò펒¢É´Æ­ýÙ´¹µÒÏåúñû¯¹®•‰½åÚ¼Ù•‹¡Ôùȸæ¸Ë“ÚÿûõºùûŸÔб”¾‡¸°”Ë÷ôþŒ±Þ£ùΘ㌱ -ÙÆ˜ãŒ›¸÷ùÐ’ãŒ×çᘮϣ„ÐÒ´Óù¤”ãŒ±ÆØ˜ã¬æŽ ŒÎ§÷ä·ùŸˆÖÃíÏÝâ˜ÏýÁ—ø¥íðŠÐþ¹Ø–¶«þËÁŒñº× -†Ì¬çÓŒ×ÿ¹‹’ðòéÓ’¤Êö°þ´‰¯ŒçïÏ“äá²â’êêõÚŒÄÜóÊÝŸ‰ŽëöñÐÈè¾µ÷’ˆõÃö ¦ƒÿŽöŸ¦üЉ‡¢ÐÍ -ÃûÏÒ¬ð›¨òò—ÌÂï÷£€«óŸ­’¦Æíˆ÷ÎÉ£„¬È¡¦’”íýŠæÇЭÝÁ»ª£¹‘Ìϰ “‚·æÖ„¹Ø›ÚÁüí–É•ɹ½òÙÖê -½¤¨ôå·»”š‹Ü†ªÜ±§°ì·ö¦§Ðœœò˜ˆ„Þˆ¡Õÿ”ݾ†«õ¿¥ëí‘ÐÌЧ²€óÉæ‘ðÿœ©ŠÝøæù甋ÜÜò·ÇÞ¹˜Þ¹”¹ -“«ž“Æö±Ä¬Âž››öª´ÊɄƈïü€šÞªáòœ¼µëù‡µíû‡ÀÚÒ᳌¸»ƒƒÖÓò´öÉèݶ¼”Ÿž¡ú¹ëøÕÊÑ苯Ÿ -Š•Óô²Û¢¨ðó«¸ë…ªÿ‡Ìœ°¡·¾—£ã‚ˆÒô宑ê‘î¥áœÔ¬üó’Õê¨è‚’ÚÍåîõ°ÌÚ ÂÂιüþÏÿÓŠ°ÙÝŸ€×Œýô -ßü‡—¯ž¨ë’ÿö§ÿº¥‚–·ý®ÙÁÜ«ˆÔ¹âΓ–Ä“ˆÖÙ½€âìÍ¢ÔïÈ«¦¼èîͷЀò¦ë®É©¤Ü„ãÈæªÞ¿´ÖèÀÒ”ºþï± -ÄØãÍÚ–‹ÜãÜÊÖµïå¸É™“Ží¦Ç…îÄØõ͉͘؅¤ìû…¸„È“ÉèÊÛ­ô»î´¤üìî£Êí‹ïæÛ‚·ŒÐå³ÜÛ¹âÑΓ–ÄÈ¿ -ÄóàȺ¢ôÑ⹡։çï¥Ü¹¡Û­Ä½¡·äü’žÝùÌèÚÃͪ—¸¸ù«Û…¡Ê¡È³§œÚ³áȘº¢ôß§œçû±À©×Ì€ÒØ—ÿ÷ª’ -þÞ»ýÀ²‚›Ðۨ𫨬´­ô®èÊ牔³£àÉÜ»§Üôë®É‰÷Ñ–Ø…¡÷͊敉՞…´â©¬ŠÝ½õÊ…¬î…•…ûÞ…òݹãΈ—à -ÏøœÐœ™¶œü“ξ×ÚëþßÉÑñý”Ÿ²ðŽÓ¹ã¼ãáÃà¦Ç•×ëˆÐ¥œ§ÜÆÆœðͺ¹·×åøÞŠÏ™¦òÇœð¦ÈÏ„¡ë -¶Ò×ú¼áø½·ÇòŠÉ¸”ç£Ñ¨Š¯ß¾¨ðð‡‰çÌłŨ¥Üµ¶µÍùÇßÖ«¦áÖüÔûÔ®—¿¹ÿÒàžÊ…ñ”«Ïþ°çƒñ÷¨ýåÉ­¿ý -—ú¼À¼©•ã­¼ŽóôþŒ±«ÞñŸ°Æ˜ÊãŒ±ÆøÒ纞ŽáŒñú¼¡ÜÍ£ˆ¡´”È;©Å˜ãŒÒ±Æ˜ãŒçâ±Éÿü±“ßúŽàœâÉ»°î -þèë“ú„墸º€‰ñ†ê¼¬Ûë¢áÝÃç˜ÞîåêßÐîºî£—‡›Œ£¦Œ™ß‹Íûˆ¯ú¡¼ Ó뢡þ”ÆÖ¯ûŸ“èÓŒú³€º‹õ -¶¼Ùí¿ø¨—è©Þ„¥À©·¬þ®Í¬ˆ’ÿîÚ½åÛ øž’¢•‘ð»æýçÚòäü™³Ä»„¦ŒÃÍצ˜´ß㢸ҵû›Á›¦¡¾¢™¼‚… -쯼·Î³Þã¨ûíî´»‡çÁ¨¼÷Çꢔ¬‘òÑã…™ÚŒ™‰¿üöçÙÐøè•æÍ‰Åò»ã°Ù—´ÂŽàïèÓïõýÒÓ¯ˆ‰ãü³Ñ–û¹æÁÓ— -ìDz´èçªÛÙ§âÊ„²ºÞþ÷·ùóóÝòÉÇ‹²µ²’ÞËøæçׂ󆤄ꆨ¶ßç„âï¡ä•‘è… »ŒÓù•Òäõïíå”âœëÎ -³ÿÉÅ™ÇæÃ†Â÷³°¿¯Èàø Ú™‰¿øÓú©ë¡¡ÙÒŒêÎØóÀ”¦§¡Ô‰áМ­†ñ”í‚Õœ··áºÛ¿€Ê´ÿ´ãÇ¢„€øµ­‰Íö• -°Äð¿‹«©¡ãáèå¤üü«§®…„æÉŸ“ó„²Ñ¬’•šÜ²Þãø…—Ôñ ¦‰»Ñç”Ù¢Çú—ÄÓ¢˜íØÌÂêîÿ¿¬ååàöýÕ‰ÁÂÃÑ -ÙÊÈøýÞã׼³¤Õµãµ‹¡é¤Ì­“ƒ¢–×ñ†úùÄè­Ã«“Ùñɘ ކÿ„‡£•‘ð³·»´•ýäÕÆì¾•»§´‘¹¨Ëä£Û¢¹ -˜á‰»ýë“’¡…Șªï…‡ïÍ¡•‰Í˜•êÌÆ§á®ÿÞþ¾šñ‚Ì­ƒŒ„Ç÷žê뜆ª›åÊÙ¤¯´Üíÿ»ìñÊȸó®ÍÄ‚ä”ìÝŒžªÙ -”üθ³¾Í’ÖÓ̪½³Ìù²¢½Ú¢ÇÄ‹²µ²’Þ»‘ýÀÛãЬ”Ë—‘Ю²ú¶Ãžç…™–á땤ԭ梭§Ç÷Æ·û‘µÐÓ†éÕ -ø–½Þ©•‘·ðê­Ÿ´Í¹Å¡Ù®ÜÌÂÙÁ¹œíΘ¬žä„­·™“þÚ³¸®èØÖÙ¤ëÙ„šê‹œž¯ÈÔÊÈø¸ôü¿Å°òÏë¡£Ñ¬Š¹ -„˜¬à˜¤ÄÍ´²’þþü¯‹ÅŤìÕääË¥¨Ë¾¦¢ßá¶ÞíóÊäß–÷æï¦äœ‘’¢‘µ¦’ÊŽô¬šÖÎÜËú ƒí½„íͬœÊÖÌÊ -˜¦ŒûÓ¨Çú€â„ÈøèÚ“Œ‰óÅó‰óíеàïùÄÛçÜà⊉ŸîÆý„”üŽê¼á¬Û®‰Ê“™³…¯Ú“÷à§ÜГ÷§Œ±©Æ˜ãŒ±Æ˜ -æãŒñ̼ùéšÊŒ±žÜÓ߉įˆ¡Ù¨å­êØð󊌱ÖÞ„³Èè¢ôãè舒⌗‘îÜ’žíë›Èý •Ƙ¯ÂØÍȸù©ÎŒƒñ꽓’ŠŒ -€ÝŒŽýŽ“¡Ù„ŠÈ¸ÙìʼnÍÉèÂŒ¢„ÆÓ™‰…Öì©°”­Ø¬‹·Ÿú“ÇÙƒÁƒ„Ð誻ºÎ³‡¡ì¥‹„ª‰¥úŒê»ð¢ˆ¥åÍ µ± -ç㹕Åö뻎Á²Â¶Í²Ôñ¿¸æ¤¥âÏà¨å·Û¥é­¢¹Û¤óÛÒÜÍ«áÌæÅ鮤´Žˆ…†ƒñ‘°÷¯Ü¶²Ÿ–Ý’ú൱ͭÏÓŠÓ–Ù -å퀡èÙ££þÕ’¡úñ­äæ†ô¶ÀÍ’•–»ž¾úúdzÖÉ’Åý²íÌÍæµ²È袠Ôó°àíºëË¢þ¸²·…϶’°“¡‹²½‘£ -佡´°þ’¡‹Ü̿ӿ¦·Ï »º§Îæ’­•»îÝë·¤£ý£‰¥é·ÛžÝ’Þ½ÎÁÕÞä⥉ï™ÉÞÛ»ŸË·¡ßÐÇǯö¯§‚„õÍäÙ -܈±¬ÜºçÐãõ‹ó¹øÙ¶´¬µšô©º” ”¥éí’É»Îþ’®ÝÌóñí…óí穌ÿ–ù­Ù° Úˆý–½Íå‘¶ôÂ©éø¨…ò뼡† -ƒ ©¸Œå«®ð‰­Ù¤ÌÚ‘çÂï¸Æ¤Ü‹¿Üˆ„õñ¶Ë²­©’ô›°œç«ÉÓËÐÌèû¹³É¦éž›þÑŒ¶ñƵÓɨ¤´Ó”Ô”ýäÅ -ç¬é“Ò¹÷ŠŸ‰¾…Ƥ℧†²¡¬’º»—•«”¦ªŒÛŽ™ªÛïòÖáªñ¶ñΔÄì…›ä¨Úä«Ùν«çþÆ½Ž±³’ÌÍ©÷ƒ¯ÓɸæÀï -Íü¦ŸÎÉêÒõ³È˜š¢†Üà¨Ûʉù’žÕýý„Þï“÷»©·¦÷“¼åá㹕…玄õÉÆš«ò¬¦·àèφ®±³’ÌÍ©¬Êæó¤ëƒÚÁ -ñ½‘ò¿Þ€˜…Éîö³œèŒåó¹˜äæÞê„ÐÐò‚§¶ž†•¤´²‚†ˆ¡á”ΜŒëŽ¡¡àÂè´Áˆ–壉¤”̬øí𽋿ò‡ -‹—š¿¼â©±†—”êÒ⮨§Õ¥Äœ¹Õˆ€ð¦§áÈͲ´ÑÒüï–’äóÁ©®¥æ‚˜ÒÝÊÌ‘ÓÌš¸–Óɸ´³—ÒŸÖÐÇŽÆ¡æ‚ÒÝÊÌ -¦å¥šë¡¡Êô†ãŒÖ£Ÿˆ‡Åˆ¡áÕ¼€§œáØãÜáãÜÀÝ¿úøÙÓϾˆÌƒÕƒ»ªÎîðëè嫢„Ðòúɨ§ü¯ï°î¾úð×ËÕ -®Õ®Þ•êÚ¡´ˆå’ÐÍý÷”è®ÞÝÅŸ­ê¨š¡Í´ˆå’ÐüýªÙßßÿñŸÝ¸Õ˧—¯òÇÈŠ¤²ŸÍÛŸ¬ž½û¦¯šëõ×ߟº -ä‘Ô¢‚’ª×³¿Ýùêú­÷˜®Ú¥ºæˆÙ™¡¡ôëÖ­µ»®ßüóÍ©“¶ÙŒ®Ü¹¢ÚŸìí·ßžº‘¢Ô¢Ò’¾ÑÖü˜”›…£‘°áà‰¼¨Åï¿ -›ÿ¾ê®‹—¯¶ÎÈâ¤ÚÊ›µ˜ê·©“Á¸¥ª£á•Û¿ù‰µ†Åº¼ž¯„‘ßÂØ•¡¡áÒó›ÕÜâêž³õ¢‹‘Åš¿«–ÓóéÁ©“Á¥ª£á -Ðßï½ÖÖ€´¯–•›Ðÿ™ìÚŽ•¬Ã¯½Çöš¹ëòšÊ…ÚÙ—×êÙ•ûʺêáûï¿—·Âªòõî÷óÚªø§»ï¾«ïɼ¦Ð•«¿Õ¹· -à·³™ÙÑÕÿ÷è£Ò¶Õ›Ù¤¤£ïªÕ¼Ð´Öӯɰ´Õ›ê‹º‚÷žº–¯ÏлßϯÊÛÜèþ¬ª¥á†úþÚ”›¥°ÞÖ¾œãÒ¥³ÿ -Òáκ̼¨€Èª¦ÔØ´é·¦Ïþ‰¾”ԔصÌåÈë鋸…ò“óâﻞÊÜѤ–÷ºÛ½ÉºÉ¸ÓµÓ·ÞøÃàÑÂÊ€åʺ̽ÔèÍÐ»ß -òÙ¨’Ä—ñÍÍå¤üËñà£å…½ÙÐÖ†¥ã“Ð÷Ú·ÿšÙ¥ãÛµú©¿÷óéò£å®ÉÎÔɨëÎѧÿ꼪¨âËÔœì㜘¤’¾¨×Á¥š -á¹ÒâŽÏ‰©¶§«õçӿȕ߆»Æîä—ä¿Ä±ƒ‹½îÔØø¶ú“”ÆäôŸÂ›³¬„ìÈ•ë´ÉÔ³ÛÉÍØ¨à©²æë‘н™ºú÷Ë‚¸³â -Ý´”•’ðáÜŽí¯˜Ä±âñ„¦Ò¹·Î¼ò•–ÂÄΗ…º¦™ŒŠƒúö¢ƒ‡Ææåë–§Óǰ¦„ô¡°¡µ•ëÅ™ûšÃ¹®„ǦüÜ—ƒ÷Äí™ÉÊ -Ž…ë‚µ™Öªë¸×ñ¬É¬Ä²òñ¢Ô¡¥¾™Ýýêο¾ÍÜ­ôøå…¾ª»ŸðÚÿ×ÇÝöþ‚‚–¥Öìý·æÎˆØ™ÊÍØ´–‰äèÔ½ŠŒõ -ÀÀ½Ñ‘ªúÏ·Ô™Û•Ä™„—ð®ØûòßÈòâŬۖ¹†â¨‚•¡¤ÝÔÍå®Ïñù㵄ª¤´£»ß¿Ýéá¶÷Ž£úȸ”•ýÆä¯Æ½ïâîû› -É“ñÈØÕŸÏ¡ö†¯ØÅæ§Îê É‚Ü©èáÎ篚ÖÖ岕‘»§”ý²Â‰æÝÑȘÊñÊû‹ññ¶Ì¶•½€µåžÂ¥Ôò¯ÖˆÖ”ɸÂÝŠ©Í -Óèî×÷ÚâÞЩ´¤ÜŠ–ñ—»ãÑȘÞ߃½Ó›¬²éɤŒ¥ÓÙø¹ÉÕŽâ“ÅÞøÂ˽Ëí‘ɦŰ›ýÃԫþý¹¤É¶Ì• -öû¿€ò¿¡äÐȶòÿ¸Õ¡¤·Ãïþõ§ˆìõæÈ¯ÞÑü˵ˆçÑÌŶ訞Ξ“Õæ°”ŒÓ™‰æÉéýᑹ‰ñÜÎÔäꃾֱ³à•Úѽà -ãØÊÐèìᥬìÛÖŠ–ˆääçÍìø§ú¿ûÂà–Ä«Íôæèݯ׺ÅÅ áÒÔÀ•žù•ÉêœÔ’úß­€çÒМµÒµ¹ô­œÖÁ õ -¯ §ªéë ÖŠ´ë„—œˆë߬é‹Â‘ûª¡õͦ‚‡µÅï½õø¶ú“Ô·×…Í÷ͳö­úÒ²Ž «Øî—ÐõéÓ¹’á²´Þ¡·ÃÁïþÙ’Œê£ -ðŨ‹Öÿ›¯Ä¦ÙÆÂ÷¶²Ë²³¥‚è×½ñµÔŽíζέëÞÛóðÔ€·ï²óÜÞ‡‘饩ﱹ²ÓÒÁº¥ÿϺ£Ï»­Þº¤Ýä¬Ù—‚ -Å”›Á슷‚ÛÅÒø…ÞŒ½ûåÞߎƒ—¿§™“Ðê“îúÍ÷­«ÄíöÝ¡è›ýû’½ý›Ë—»­²˜“²–‰™·Ääýý´Ã·„®¨Ç¨ŽÈ š -Ýæªìë§Šå¨ãޮѿӰ—ïî‹ï«·É±Å“ɦôÛ¿•¡¾‚¬¦ê¡îõ޽єŠãîä¶Þ¡ž¡þ÷¿¼¿Ç„·ËÒÌɈæ¦Çž¸‚֩Ȉ -ë²”ò¢Œ¡Å”‰’¢¬Éñ¥ƒÏ¨Á«“¤Ä®Ùê½ù™¡¥ˆŠ’¢„¤Äºˆ¡ù’к·’µËˆ¡”«ÈɈ¡„ÉæÉÂΓ¢„Æ”¤Äˆ¡È -Ɉ¡„À ¡ÂˆÁ„†‚„ˆ¡„‰ ‘ˆ’¢„ ¤Äˆ¡Èˆ’¡„ ¡ÐˆÁ„‚„ˆ¡„‰‘ˆˆ’¢„¤ÄȈ¡ÈˆÂ -„¡„ ¡Âˆ´Á„‚„ˆ€¡„‰‘ˆ’‚¢„¤Äˆ¡’Ȉ¡„ ¡ÂˆÁ„‚„ˆ¡„À‰‘ˆ’¢„À¤Äˆ¡Èˆ¤Â¡„  - ¡ÂˆÁ„½Ê⎪œë‘ɲˆ¡Ê•ßðúÑÇŸþòóÁ寅¬Þ€Õõ ¡Âè©õÊ¥¡Âœò¿ß¾»ùèÁÝﬤЕ«÷¥š ¤Äˆ­Â¹¤ -²Ôó½…º«÷”÷ñ«ºª¦¤Äˆ­Â¹¤Ôº‡¿êÖ÷÷ÿáü§îÕÇÕ„õ„ˆ¡Å¨€„óêõï÷žÆ­†ëŽ•ÂˆÕ·ª”„Ï”ßú“碬èë’È -™ˆÚÊÈøÃåöÏŠúâµ€¬¶Ë ¡ÂèˆÁª£áßï½¾ÖÖè³–•¡À¡ÂèÁª¥áÉâÀ󌞹•ÃÂ„Ð‚ÔæÆÂ¿œ¿ÒÖ€˜´‹¡¡Âè -èÁª¥áÃӧژܫ„ˆ¡–…©ìþÂë÷Éþ·÷“¢„þ–¤²ß˜Ü¸÷ÝÜüÆ„¡­´ ñ»ã„ÁâÙ´ˆ¡´Ï¹ç“¢„ÐÊô«áÿ˜ム-¢÷Á̒㌱Ƙ¯ÌÿƆˆ×ï -] -::^ [s0; Word`-processor with tool`-bar.]}}&] -[s0;3 &] -[s0;3 &] -[s0; [3 SqlCtrl package widgets]&] -[s0;3 &] -[ {{2416:7584^ [s0;~~~160~>608; SqlOption] -::= [s0; Option derived widget, represents true as string `"1`" and false -as `"0`" (better for storing in many DBMS).] -::^ [s0;~~~160~>608; SqlArray] -::= [s0; ArrayCtrl derived widget, capable of loading, displaying and -editing a data of SQL DBMS. Several SqlArray widgets can be bound -together with master`-detail relations (ArrayCtrl can be used -as the master as well.)] -::^ [s0;~~~160~>608; SqlDetail] -::= [s0; Groups several widgets as the detail for master`-detail 1:1 relations -(the master is ArrayCtrl or SqlArray).]}}&] -[s0;3 &] -[s0; [3 Note: Only the most frequently used widgets are now in the Layout -Designer menu. Others can be inserted as `"User class`".]&] +topic "CtrlLib widgets"; +[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;*@(64)2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,0#27521748481378242620020725143825:desc] +[a83;*R6 $$3,0#31310162474203024125188417583966:caption] +[l288;i1121;b17;O9;~~~.1408;2 $$4,0#10431211400427159095818037425705:param] +[i448;a25;kKO9;*@(64)2 $$5,0#37138531426314131252341829483370:item] +[*+117 $$6,6#14700283458701402223321329925657:header] +[{_}%EN-US +[s3; Alphabetical list of CtrlLib widgets&] +[ {{2416:3247:4337^@(204) [s0; Widget class] +::= [s0;= Visual appearance] +::^ [s0; Short description] +::@2 [s0; [^topic`:`/`/CtrlLib`/src`/ArrayCtrl`$en`-us^ ArrayCtrl]] +::= [s0;= +@@image:1122&442 +€ƒ§õ€€€ƒ‹ÿ€€€€ø¿œíÏŽÜÄŽÆç•О£„§Þ€£‡ŽÜÉó€ðá€ñˆ€¹ÄÜÿ¤ȉˆÊ²¡ÍüÝ¢°¢‰›ÅÍæ­Åˆ¸ +……æ¬õÌ×÷›»ªûºË®ÿ±ŸÊ«ï­Ý³‹ý¹ÿÛ½³öŒÍ÷¼ß¡ˆì„‚±Žøó°‘ˆÄ¥ˆÁí÷‚‚ Šš„ÄÎýÎí—Îÿ¿·’žÂ™Ý +Óš“ñ” ›ÜØÛÉÏáÌîÍéé·¾¸ðéí¡÷¿Ê¬¦Ýßݾý΀îð¨ï¥½…³»µ»§Û’çâîï˺¿ž‡—“þ®ïþÚïÖåžÂ·ù¿øÏÒ +É´óã÷¦ûº÷Юµô¦ß¶ôêÅМ÷ÓÍö⎩¯¾íÒ—±÷Ý­·ç×ì€Ýâ×ÄÌöôô¤†–óÉϹ¶ë­áÛåì£úèþ£èãç—î¿Éǯ +­¿þ׳†è†±÷ŠûºÛ®µÔð†Ð¹‹¾ß¼»žÇÙ×Îùµ™þÏî×Ð…õ×›ãÌììÄíŽÊ´¼ó÷¤ÇÐÅžáú„æâ­Ë•£ƒºáÁçøãÁÝ–™ +ßÓ½„îñŽÝ¸¾ÆÉ®˜ºó´“ôíࣦ¢çú›·îÉÿ½ä¼ñí¥Î„Ù¯é¬è‡—Ò呹ÁÝ©©—ïõ¼±×ÇïöæºÓÅÎÄÐö +زø”ý×¹‚Ÿè¸Ïû²³Íÿ¨™é’ÎÚÙˆ±ôŸÝüä¬âàÍÛöÑÕÉ€®½ÆâùéÖØ­çÞöÌ—·×‘¥ŒÂÀ÷·”Îæ˜Ó½“„îðÄÙ០+…ãÌלº¯Óý¸Î«ážèÝÈËéç—»ŽËñ¡ÛÊÏóÌé¼ÎÉùôÆï®ÌœßýÆÃ¦¦ë²¼œçÒçØªöÔ¬šî¬É¿§›üÎÝúˆ·ÄƒóŒ’ +·Ïé†ß—ÕåÕ‘¹ÝË螦£«ƒ®Ù´»®Íí¯»ØÊˆáÄ•©éóºÓëÏé®ï¤£ýð󺪡ò·±ÍÐÚâÿüªÀ—¶§»½¢ûå뻿¤£ð +™Š”û¡…ç·òÌéί½ôö̹¹¬¸›Ë¿»¿ò¯½¼ù¡ý“„‚‘‹žç–ÝÞåðñãÁ󈄢–™óè£çù¹†õ‹Ê¨ˆŠÎ¤Ôïâþºµ¨¸´Ô +ÕË訄Ǚ¨¾×½ûéÖ ˜Þô퟉®€–ÈÞýô—î¿ûÙÞÐðøâ­÷£í¥ß‡ÛéÅŸÞÞ»¾òû¹†Ù…îÆµÝçïþô€“êîÏ—€Î¨ñ +Ýçô“Љ¾§öÛƒ¬Â×ÓƉ·ç‹¶ôçμΉ–½Ô¯ÕøŠ”ÉèºÑÉ•©ëá苾Ùÿʉ©ôœ¿íµ¿¿ÿ÷ÿ«ƒƒƒû÷ïÜ¿¼Õññ±  +™Û­ô›Íæ²ù³¬™†îúÏð§ö…ÃíëèèˆÐµ˜éê€Ý¼åÐúúñÇ“ÎÈ¡Ûß×êÕ·Þ¥èø€Ç†¡»öÃñŸçß»·ÖìÓŒ”ºþ‚ +Œ‹Â爻¹¹¼ô•–—㫪ø½ÌýžïÒŸ†¡»úýã—ŸÃÝ”ý¯´£Ï…îÞ½ûŽ®Œ˜ôÏž½ƒôªµ ›“•ˬþņ¡ûêΣܾ†Ê¼í¾¤ +“й—ñ€î¦‡ÐѹŒ¯Ý—ßþ¾„×ijçü§©ôý™Û¦Áèžï…·èÚÏôË’á§è®ì½œÇÀ—œ——Â×ÿ´ž„îÏ­€ó–—陆îò +“­ûÞ¸â貞ƒºÃÃàô˜ÿí…èðÆÊ¾Ú†¡ûâæïóœÂ÷´ÕñÐÖ§§§îÅœôÛÒº‰ÎáöåÏÖ€Ž×¤¤¤å˜º«·ö¹õ‘£îéÓ +‹§€ŽÐÉå˜Ëº«·îð‚×¸ÞæˆÐ•Ȫžô¸Ë ª€Ý£‰¬Â§• “¦‰Ð•ˆ÷Ž©Áñ†ê…èÊÓ„¡•“œÉ¨ø’ôžü½†–ðî©¿‡ù† +՜ɛƒèÊÜ£Éõ•žÊð©œÁŒæ€º’¡÷èòÕ‹ìÞÁ€Îºì€Ý‰ðû´é€ºŒ„Œ¸Î †ó€Â݉û´é€º£ŒÂĜ瘟¯Ž«ŸÖ†Ã† +×Е¸Ç“¶ ©“–¦â¸Ã¬Â̤þÚ›Œ›²æÐí¶›ÉÌúâÏÁê¦Ý‰£É›ÐÉ‹“‚ñœá–¦Ò¿Ý­†âÌÇ„®ý«®û´À郺éᢎ +ö³ÌÂÄê§µ£Á°Ùœôó‰ÃÃÐÉ‹“ñœ á–¦Ò¿­†Íûå¥Ý«“Ò¥ãìÛë°áÖˆ§Ÿìî…“ö¦íÀ§Ô­ÌÄñ†Ù˜œÈŠÚÑžº +¬ÊÓ¯Éè’íЈÒù‡¡•ܸܙ†ÎÚטˆãŒ³°‘¤º”µã¦Ð…Ùß§ÉÿÊЪ…ÛϸǓ¶Ó “–¦â¸Ãä¬Ì¤ŽÅ혌‰ô‰ý㻀 +¥ºúʨÌÄñå†Ù˜ÈŠÚܱ·è¼¡ž¤âò²ÀרŒñÂĜ瘅‰—Ô¡¨³ý£Òåòú””ºàċִ„°‘Ç™æá¢õ¨ê‡®È© +‚ô¦íÀ§­ªÌÄñ†Ù˜Èãý´¶˜¶€®íĽ𴴄°‘Ç™Üû¹µ˜ƒèÊÜ£ÉöƒÐᮃÚî†Ð•¸Ç“†« “ŠÐɇ頫ñ¦Ëï +‘ÂÞâðœÁŒõ怺’÷ÔŸùüƒÎ¤Í©šÝÊ„š×±§Á™„€Ý‰Ð‰÷òˆŽ³Ð¯ À×¢Ôøî…¡èÄ‚ô¥²Šž¾Ë ª€Ýë‰¬Â—Ñ˜È +ÜëßÚ“ ú«‘á褅‰‰¼–âÐñŠ“ïµè¡ªÔ¾‰ªµ‘‰æã»¥‚´¾ÀÚú¬ß§†¡“–¦òÚá·®ÌÔ¢¿‡ªÒéªÂð×ò¸Ó†¡“ +Ô–¦òÚˆÁǼ©ÌÔ¢‡ªÚ€ƒôù­ð䘰ºé᢯…˜ÆôœÂÄ­ú¨æª•å¥Ýûч¥àäÔÅÛ˜„鸞‹¾ÖžÏ•†¡“–¦òÊÚˆÁÇ©ÌÔ +Ç¢‡ªê¥¢©È—ÿýèµÛ’†®ñè™Ü²™†ÎÚ˜ÈëÈ¡†§°Ñ‹Òžªê¦Ð…ßí÷Èãà‡̮¸ÏÊÜ»•¾á褅‰¼–ââÐñŠ“µè +áªæ‚ÝâÿÅàŽ““–ç¦í‹µÈ—á褧…‰¼–âÐñüŠ“µè¡ªæ€†Ý–Žô¯¿þÿÒŒóò‡Ë˘²Š“ùÌ­¤ ›¬ÌÔŸ¢‡ªší›© +±ãÃâëÂÄªŠ±¸Þ½Öð‚·ŽŒÃ§­ÌÛ䵃ŽÓ˜á¨ÅÕå銗”ì—æÙ²Œ»´°‘פÆô‰ÂÄ­ú¨Äª›ÐåÏՅ첌´°‘× +–‚®½ÌȆôÒÚ²Šî²¨°ªÀ×¢«ÐÉÂ…èÄ‚ô¥Â³ãÃðœú¢º’áèÅ„ðç’µ°Â²–ÎêÏážç«Ò怺’÷èŒÒý¥§’œç +ºƒ¹€®Ä½ÕšÜÕ‚»— ¡“Ž›À×➔͚€ŽßåЪûØ€º’÷è±Ò€ô™…‰¸ƒÎàÛû†ó€‚݉û´éƒºèéᢎ³Ì¾Äê§µÁ°é +ê†Ý¦þÅ«éüì·æŒ¯þƒÞ¹û´éƒºèéᢎ³ÌÂâĺĴˆÝ™é®™ô»êŠºšÇ“¶ “–¦¥â¸Ã¬Ì¤‚âÂËØ›ôå­îùîÑ¤è¤ +‹…‰¸Î°‹“穀вԖ—ªô½Ç—ÿ‰íÿº§×Ô¤‡¬³Ûã»Ç“¶Ó “–¦â¸Ã¤¬Ì¤ŽÅí蔥©È—³²™ÌЀéÓÈÏ·ÆäΰôÒ +ñÂĜ瘅‰§Ô¡¨³®¡øÞ‡Å ýÖøŒ‡ê¯µàœ„«ò¦íÀ§Ô­ÌÄñ†Ù˜ÌÈŠÚ±“èÒ’û‡·è¾üÝö§ùÂò²£„°‘Ç™æá¢ +¸õ¨êÇÜ ‹à‚¢ÝÞ²ÛÇò²¦ŒÂÄœþ瘅‰Ô¡¨¢³ý£¥ÈžðÏÄú®ßþéûÁÖøîѽ¤è¤…‰¸‘ΰ‹“©ÃÑ»ðÅÊ¡û´ +À郺éᢎö³ÌÂÄê§µãÁ°ô¥îѽ¤è¤…‰¸ŸÎàÚËÁœÀ¢×âžÍš€Žä÷™Ôž¶€®¥Ä½š´€ÔÁ€Îºì€Ý‰ û´Ùþ—ö’ +ƒƒãŒâ°çŒÖÝðÿ˜ Ë¸‹§þœæ™ð¦ú펷ӽòÆ„µš¨†–”ê¢Þń璪´‹Ó­Ä¨û¹„¥Ç™¨—溒ƒ¡Âó¯À§’Òæº’Ù…Žß +˜åÐÕ˜éÊ䎕ºŒÂÄÞ‹ïøÖž„°Ó•™È°ôÒÂÄÞ´‹±è¸…‰Ú¡ôÐÕ­çºÍµòÛŒ“ùñ•çˉ¾ì˜ß•ɼۙ†ÎÚ˜±ÈëÁŠÝ¸° +ªÑ‹žªÊ÷‹æÄøÐÍž’ØêÐɕјÈ롆§°Ñõ‹žªŠÐ•ÈŒ°ôÒÂÄދڱ踅‰ÚôˆÐÕ­¡›†¿¼Ý®ÒÕãä¶ÜÍúËËÉlj +Îí‹Ü£É›ÐàÉ‹“ù­Ä ‘㔦êÑÃÕ“µ‡®†Ë¸Ã™“œªƒèñ²ÍÁ‡åȰôÒ¡ÂÄÞ‹±è¸‹…‰ÚôÐÕ³Õ®ÕÆÌÇÌù”Ѫµ¨Ã +ÁÐÉ‹“ù­Ä£ ã”¦êÑÊÕ턺ÿ燄¾¹ +] +::^ [s0; Complex tabular widget.] +:: [s0; [^topic`:`/`/CtrlLib`/src`/Bar`$en`-us^ Bar]] +::= [s0;= ] +::^ [s0; Common base class for MenuBar and ToolBar.] +:: [s0; [^topic`:`/`/CtrlLib`/src`/Button`$en`-us^ Button]] +::= [s0;= +@@image:456&175 +€ƒÉ€œ€€€ƒäÿ€€€€ø‡œí˜Á˂ѦÇû˜ýÎ’ÁÐ׈‚îÁ³Ð©ËÔÅÛÚ ‘ᗨĘÈÁÝŒº„ÁÒˆ¯Á©˜ŠÊŠ¡ÄÚâí© +šå®Ù°ýᯯõ±êŒ”ƒ¼¾þ‡™·ÏõÚþŒ óÌÊΤœ¢ŸìºžÊìÄï¯Ï…‚àÑöׯ°»è¢ŸŸÚš›“ßÁÄôÊüòЖ¨ç­æÍà +ûúð‚»á‹ÈÀÉ¢–«Œ¸Çï§É½ý˨ÿï¶å¡†æ¢šßðŠ…’Òˆ¿¬Ÿ­®…Ñ»ßÛ¶½ÕÐâô¬‹Ÿ±…¬¨í¸„Ñ¶Ýƒš„šµŸ¡‹ê +ýÛÛ‘¾ÔÚíȯ‘ÔÚ­‹Éˆ²ÔÍí̆ ÖüìðÀ‡ÙÚ´³àÂДëüÔ¹ òíê„®§œˆê£ïõª‡”¯Í›ß§ó媄¯µê›Éõë +ÌÓÇùò•‚ûÚ«Ùá€úµÍ©“¸žò ¨¡½¼›œÐ¼¶•팘ԪÆù‰ƒª×¦ê¾™ëŒ‚šÑþþà¢þ¯©›®²³Ì•Ÿ©‹¢ ¨•î³ +Œ¢ ¨å²·¢éèËóÔîÉ’×¢€Úð󩨗µÌô˜ÛøñÞþÀÁ䳌ÏÛ­•ˆº•øæÖÌ÷è×ô€ƒþÁëÁå·ƒ¼¯²éáøÓ©µôî +ãßïóú„ý‚§—Õ¬ùßû€Îœ€þŸßƒ°Œ–ŠîêµÄ„¿¹¨¢ö +] +::^ [s0; Basic button.] +:: [s0; [^topic`:`/`/CtrlLib`/src`/ButtonOption`$en`-us^ ButtonOption]] +::= [s0;= +@@image:225&125 +€ƒ¤€”€€€ƒìÿ€€€€ø¯œÝ•ËÊÃÀ¦”†ó˜¾ˆ«²Áð•„Á ±¸ò£ˆº© ò®ŠîĤ¶±›Ä¥‚î”Á’—Š’…Åë¤Õ •¡è›Þ¬ +•÷ÛŠÙÔŸŽŽÃæ²±¥«×‡Ÿá¤œÿ¾è¹‡òÒèüÛÍõнºô¬ûÆäëøàíää “ù­Øˆ…‚˜ê›Êöô¿·µ÷‡©³çøôàäºìæ¼ +“¯—–¬Ä‚šª®Èº´ï‹•âéí÷îõÿÈ‘ò¿½æ™úË­¦™¥œÓÑ“æîøúåÙèœÔŠë¼”ÙíÙôœÃ®Ê¬€É©¼‘€£‹ã¡ÞÔ +Ïäû¾¦éþø’²ŒŒ²™…•–é¿‹¿ŸÿĤõäáÙˆÓµ¯ûüžÐòâå–牧Ëß„‰±¾¿ÞÉôÛòŠØž¯ëíõ£™ÄâŠèäÈÉÛšÆúú¬ +‘¤±š¥†êþÖí¾ÌïÇĘٕÒéØœÉ”ó»ÈŠ´Ãíï½ô‹ùµ¤õÅÊäá²éÜÜߨåšóܼ‹ßޱö¦çÖÔ‚•àáӹƈòÎ÷ÔÊ +‘éú×ï‚Ù°Ô“Ö¶íµ¦ôîͲÐÂð£©Ý…‘„ɀƉ€ÂÅ€¦²õÍò€‡ê¤Á­ÃÅ€±‹±ê°±ËÅœŒ¸‰ªâèãúðá–âÓœïÖ¬ +‘üܳ´â¡®‡™ôÿêÖ’™™ïúÿäÿý +] +::^ [s0; Simple 2`-state Ctrl `- similar to Option, but with visual appearance +of Button.] +:: [s0; [^topic`:`/`/CtrlLib`/src`/ColorPopUp`$en`-us`#ColorButton`:`:class^ ColorButton]] +::= [s0;= +@@image:150&137 +€ƒ˜€–€€€ƒêÿ€€€€ø½œûóòÆ›¡Ñ…˜˜˜¨âÈ‹£ú锛ŕ„ó †À¥ÆêÑÅœ¸¡ÈŒ¡²‡Í¯ÙÆâÑÅœäÝÈ€ŽÔ££‰“‘ +éŽþÈ·ŠË—§ÈòšÁ•ÀÄšÅÅ󠀄µ£ˆ“€ŒÐ£Áà +] +::^ [s0; Color value and selection using ColorPopUp, supports displaying +color using Image.] +:: [s0; ColorCtrl] +::= [s0;= +@@image:300&150 +€ƒ°€˜€€€ƒèÿ€€€€ø½œûóòƛфĈ­Ù±óàÿÑÿÿÿÑÜÃè°ð€è€¬îÑù¿À€û蘟¸Ä¸ç¿ÓѨûÆÝ³êÝžÑ÷ŒºçÔ +‚½ÔòÝþ¹÷ŒˆÀêž–é—‘šû†ÜªäÁÀ†ÈøÐÁ€ŽÞ˜á +] +::^ [s0; Color value and selection using modal dialog.] +:: [s0; [^topic`:`/`/CtrlLib`/src`/ColorPopUp`$en`-us`#ColorPopUp`:`:class^ ColorPopUp]] +::= [s0;= +@@image:618&786 +€ƒ¤ò€€ƒŽþ€€€€ø¯œìÝçó”÷ûžïýžÜÏî¥ó‡ÜÕþ¶ûöö·¼Õëñبó†ûÆž›±­Œ“ŒÁ–Æ„Á“³ˆ„¢ˆ„ऄ’‚Å„Ô +ØÈ¹«•óÎÓ©•óŽÝý©µ“ºªóîÏížæÎñé¶µÜü½Éë™úþê¬ÝÛ³ö‡úÒ«÷õšš†íªç×ç•”Åý«Û¶íÛ÷ÿ“îôèÐùûž’ +ÿÂäï­ý·«›§¨ÿâȚŸíÍ¿¶¶Ž˜ºÿÓóŠëÇÿíÿÀÑÿú´‘µŠÚš¼Ó´öƒ÷¯àø¡ÇÿÅΩê‡Ôùïí•ôþüš“’µŠúÁä +¯¢¶¦¿ë½ÿä÷ÿäÇÿá㛲ÆÑ¿ˆ½¬ÑÔÖôçþ®¶ò§Ð©ÉšžÅ½²¿àóÈï÷ß»‘µŠò¿²¿•µïÿ¡öÙ£¨ÍûëÿàüíÓåä¢ +ìþý½‘ŠÚÚȚÅíͯõ¶Æ‡Ž¿áµùÓÖ¨ŠúûÁôƒëÿ®ÕÚ×ÓžöÞî·³à†¯òÿ¬ÚÓÏžöìû¿áí¯Õç‡Õ²íÝÛ«ÚäÚŠ· +û½ªŸÿü…ÛÎÞÑ÷ïÞèôýÅ›Ýÿ«Ú×ìú“ßÕ¦×ןüŠþ¼ÿõÊÛ‘ŸïÙÞæèŸß¿ËøÑ÷Ïù×ô×ß©«øå›Ýÿ«çÛäúß¹ÿÑ +ÿžÿʳÙÏÿªÃÖÈšÙ£Üë䬑µ²†ÆÖÈšÙ£ë®ä¬‘µ²ÆƒÖÈšÙ£ëä׬‘µ²ÆÖÁÈšÙ£ëä÷¬ý£Ùû󞾫ÚÓžö¬û +ÿú»Ç´§ýÖƒìéûê¨ê먢딵µÑû¦ÈÚÓþëöÿ³½µ¯ò¸¶½ïþÀÿýùߨóüÚ½ú€ó·ë‡ëž×ï¥Õ…¹Ý¿ûñ±ß÷øñÜ÷Þ +ÿýÎÜýú½ûŽÿ÷çLJ뿞ÏÿŸ÷Ù‚×Û§Šÿü¨ÒÏýú½ø‘ž×ŸïÍüÿî…ÞžœÏŸŸýì£Üë䬑µ²žÆÖÈÚÿ¹äϬ‘µíä +»¬‘µ²æõØ ëä¬íóîüí¼£ÃÖÈàšÙ£ë䬵‘µ²ÆÖÈš°Ù£ëä¬ù¹õ€ä¬‘µ½²ÆÖÈšûñàûîéÏûÚ³ƒïéûê¨êë +¨¢ë”µµÑû¦ÈÚÓþëö¿§¶öÿúñÜŸÿëÿóâ¸ïÿïÍ‹ã¾ÿË‹¯ã¾ÿ—Çýëÿ¹—Çýÿò—ÇýÿƋ㯾¿æÅñ߇ŒûñÜ÷ÑÞœ +Õ÷ý²—ÇýŸ‹çÅñß×ùñçÜ÷íÞœ÷ýå°—Çý¿ïÅÎñß‹½¸ä묑µ²ÆÖÈàšÙ£ë䬵‘µ²ÆÖÈšðÙ£ë䬑𵲯ÖÈšÙ +¸£ë䬑µ²ÆÖÈšÙ£Üë䬑µ²þÆÖ¶Þš—ç×ûÇ¢½íéïÿÍž¾§†¢¶Â¦²ÆÑÛ“½Û‡¤½í·æÿüã믽Ξûèãíÿ½÷½ +¿Ïëì¹ïýÞ’çÏýŸýºûýîûîëì¹ïéûÞçÏýϼ÷Ξûž¯³ç¹ç°æù½œÅÖ¼¿ÞŽëžõϧ‡µÏ׋ßÚçýÀáÍóþã°æù¿ +¸óØóß¿öºµ‡µ²ÆÖÈšðÙ£ë䬑𵲯ÖÈšÙ¸£ë䬑µ²ÆÖÈšÙ£Üë䬑µ²†ÆÖÈšÙ£ë®ä¬‘µ²ÆƒÖÈšÙ£ëÛ +ÞïÍËóýãÑÏžö´÷æÏßÀÓÃÑۓ٣鶴‰ÞÃÒž½öÛ³ß䳑¦ŸöÜŸë»âûîûŸŸöÜù÷þ¾ì¹ï£ÊýØóßóýØþóß÷ù°ç¾ +ôçüØóßÇê½Ï½‡µÏëŸá°æùõòØÑóü¾¹¬ù¾”ޜּÖëž÷›‡µÏ¿û™ÃšûþµðŸŽë䬑𵲯ÖÈšÙ¸£ë䬑µ +²ÆÖÈšÙ£Üë䬑µ²†ÆÖÈšÙ£ë®ä¬‘µ²ÆƒÖÈšÙ£ëä׬‘µ²ÆÖÿ¶Þš—çûÇõ¢½íéïÍžß¾§†¢¶¦²ðÆÑÛ“½‡¤ +¶½í·æ¿Éçî£Á칿ÖöîàöÜ÷¾Áìß¹ïý‚Ùó߼LJ³ç¾ç†Ï³ç¾ï‹æÏºýÏ„³ç¾ÇİûžûŽëžû×ÃáÍóëåǰæùüòØó +ªü½¸¬ùÞŠœÖ¼ï·Žëëž÷³‡µ÷ýšëÁœÖÈšÙ¸£ë䬑µ²ÆÖÈšÙ£Üë䬑µ²†ÆÖÈšÙ£ë®ä¬‘µ²ÆƒÖÈšÙ£ëä +׬‘µ²ÆÖÁÈšÙ£ëäå¬í½µ¯Ï÷ùÅûÚÓÞ›€½ýÏÅí͎䢶¦úÔÉûÚïÍþ“ÝÏÆ¸ì¹¿Öˆö®ûîûŸ®Âûîû¿®ûî +‘ûè®ûîû®¥—½÷ýŸ—½•÷½ÃåÏýÄ®ûžûŽëžû×ÃáÍóëåǰæùüòØóªü½¸¬ùÞŠœÖ¼ï·Žëëž÷³‡µ÷ýàëÜŽëä¬ +µ‘µ²ÆÖÈšðÙ£ë䬑𵲯ÖÈšÙ¸£ë䬑µ²ÆÖÈšÙ£Üë䬑µ²†ÆÖÈšÙ£ë®ä¬‘µ²ÆÿÖ¶Þš—çûëÇ¢½íéïÍ +¿ž¾§†¢¶¦á²ÆÑÛ“½‡í¤½í·æ¿ÉÜç£Ó칿ÖÝöéöÜ÷¾Ó¿ì¹ïý¦ÙóùßÇϳç¾ç¾Î³ç¾ï›æõÏýÏ̳羉ǴûžûŽë +÷ž×ÃáÍóëå°æùüòØÕóü½¸¬ùÞ”œÖ¼ï·ŽÖëž÷³‡µ÷µýëÓœÖÈšðÙ£ë䬑𵲯ÖÈšÙ¸£ë䬑µ²ÆÖÈšÙ£ +Üë䬑µ²†ÆÖÈšÙ£ë®ä¬‘µ²ÆƒÖÈšÙ£ëäË¬í½µ¯Ïó÷ÅûÚÓÞ›½ýÏÅíœÍ䢶¦ú¨ÉûÚïÍþ»“ÏÆÀžûã +Èí‡ûîûŸ°çç¾÷ƒûîû¾è°ç¾ç‚½©÷ýŸØóß³òàÏý°ç¹Çç°æù½œÖ⼿ގëžÏú§‡µÏ׋ÃïšçýÀáÍóŽþã°æù¿ó +ŒØóß¿†Žë®ä¬‘µ²ÆƒÖÈšÙ£ëä׬‘µ²ÆÖÁÈšÙ£ëä묑µ²ÆÖÈàšÙ£ë䬵‘µ²ÆÖÈšðÙ£ë䬑úµ²ÆÖ¶Þš +ß—çûÇ¢½íþéïÍž¾§†‹¢¶¦²ÆÑÛ‡¤½í·Ææ¿Ù磼ÖáÜŸë»ø¬¹ÕïýÀãÍýïØ‡žëîûèðÔØóßóÁãÍ¢ý߇žëîû +܆¼ÖÜ÷€ºµÏ½ûñ¼žß°æùõ‚µÏ•瓬ù¾ÞàãÍóþ€ëž÷ü›Øó¼ŸÁš«ûþµ€µ²ÆƒÖÈšÙ£ëä׬‘µ²ÆÖÁÈšÙ£ëä +묑µ²ÆÖÈàšÙ£ë䬵‘µ²ÆÖÈšðÙ£ë䬑𵲯ÖÈšÙð£ëÛïÍËóýýãÑžö´÷„æÏßÓÃÑÛü“Ù£¨­‰ÞîÃÒžöÛ³ß +Óìÿ·½µ÷«ÇÚ¾ÍãÍýÕï³ÍãÍýÍãÍýŸ½õÍãÍýÏæÿ±æ¾ï›æ±ëæ¾ç¦ù¬¹•ï±ÍãÍó•Ö¼¯‡¬ùþ½àÍóù„ë +³ž¯—Øó¼Ÿ¯Àšçý†Ö¼ïç°æ¾ÿíÖš¬‘µ²ÆÖÁÈšÙ£ëä묑µ²ÆÖÈàšÙ£ë䬵‘µ²ÆÖÈšðÙ£ë䬑𵲯ÖÈšÙ +¸£ë䬑µÍ²ÆÖÈšÙÛØúëޞÏö´§½·ûú½žšŠÚšÈšèÅíÍôž’öï´ßšý¦Ÿ¬ðù¬¹¿ÖöÚ®µ÷½—¿ÇšûÞËã +ùÍýŸÍ屿ó¾çòù¬¹ï»û¸¼ÖÜ÷Œ—ÇšûžÜžšëžûöÿ㺫ž×ƒÖ¼¿Þ×°æùü‚µÏ•׋¬ùÞàãÍóþƒëž÷¸³Øó߿ƅ +Üë䬑µ²†ÆÖÈšÙ£ë®ä¬‘µ²ÆƒÖÈšÙ£ëä׬‘µ²ÆÖÁÈšÙ£ëä묑µ²ÆÖÈàšÙ£ëä¬õ‘µ²ÆÖ¶Þ¿š—çûÇ¢½ +ýíéïÍž¾§—†¢¶¦²ÆÑÜÛ“½‡¤½íÍ·æ¿Éç£Á†¼ÖÜŸëû°Íµ÷½Ï°¦µ÷½ß°µÑ÷ýô°µ÷ü½·˜Çšû¾¾¯˜Çšûž‰ +Ïæ±æ¾Ç°²µÏ½Øó¼žß°æùõ‚µÏ•瓬ù¾ÞàãÍóþ€ëž÷ü›Øó¼ŸÁš×ûþµà°ÆÖÁÈšÙ£ëä묑µ²ÆÖÈàšÙ£ëä¬ +µ‘µ²ÆÖÈšðÙ£ë䬑𵲯ÖÈšÙ¸£ë䬑µ²ÆÖÈšÙ£˜ëäíë­ùùù¾ÿ¬ÚÓžö‡Þìéûê¨êÐë¢ë”µµÑÌûÈÚÓþëö +Ù›ü¶âÃãÍŸý±¶ûðØóÏßûøðØóß§ûùðØóßÇ“ûðØóßóýžø¬¹ïûüø‡¬¹ï™ŸžëíîûøðØóÜ̓µÏëëžÈ߯Øóü¾Á +ךçë…ּﶇ°æù¿µ»Ïû™¬¹ïßñóë䬑𵲯ÖÈšÙ¸£ë䬑µ²ÆÖÈšÙ£Üë䬑µ²†ÆÖÈšÙ£ë®ä¬‘µ²Æ +ƒÖÈšÙ£ëä׬‘µ²ÆÖÿ¶Þš—çûÇõ¢½íéïÍžß¾§†¢¶¦²ðÆÑÛ“½‡¤¶½í·æ¿ÉçÆ£¯óØóÿ¬çí¯óØóßûë¼ÎãÍýï÷ +꺵÷ýôë¾¼ÖÜ÷Ü×ùיּïûÞç±óæ¾çÞç±æ×¾Çë¼Ö¼÷öàÍóúÀšçÕ׋ּŸÏ°ëæùúµÏûʬùÞïàÍñóþ†ëîû× +ðÞ‡ë䬑𵲯ÖÈšÙ¸£ë䬑µ²ÆÖÈšÙ£Üë䬑µ²†ÆÖÈšÙ£ë®ä¬‘µ²ÆƒÖÈšÙ£ëä׬‘µ²ÆÖÿ¶Þš—çûÇ +õ¢½íéïÍÞãÝÚþžŠ¢ÿþ†ýøû×È„šÅý½¢ë”¡ååÿ¥²ÆžÑÞô×ÿŽëÈÓë¿þ½ õÚ—¿´ÞÿÆ›½ú©÷ÝËô¿¿Úñƒ×ëÏú +¯•ÿâÏ¡éìÞû¥‘ïþ­¶ýý¿ÞôêŸç¿Ÿ¸¿æéýïÿ¹Úï¬ý€ÛË×Ù»³í³Üë®§Óåð¸½ìö—Íöòÿ±µØÜæ³Ëäôò™®ƒÁ¥ +Ó×»ôº—ÖëÛÚØð©Õ®•ËÊ¥Ôº”Š—¢ÜîÚß÷É䦮‰Ä¥–»Äž¢×Úš‹áÜî‚‹Ï÷­®ÁºÖÖÜËË®ÅÅׂëî¹Îµ»ëš™ñ +„Í͹¦§Ý“ö“®±±×訤ëäĵ´äš´œôñø®þþü×ﯫ§ÇÕïÕåêìôµ·Ç»ÚÚÜ­­®ñ¦¦×㣫¾¹ÞÕÛ목ñ„ÕÕ¹ªªÜå +Æå®ÒÒ×ñ±ç«¨ÈÕÐàÊýËóå串²ØÜ™™®´´×í‹—®ää×óÇ箄„×ü¼ä«®Î•íŠñŒôÅĸˆܞ¸ÂÂÜß÷î¹îÜñÝ +Ϻåò÷÷ݽëêºüÙõþ¼ûëôé×ñã®ãÃ‡Ý‡Ž¸öÙíóýþ¹ë×Þ®×ûï»þñÚ‹×ÿü‡—Öß¾ô¦ŸÚÍõã÷»×ÿðªñÔÆÞìÂÛ­ +ºø»ƒ¿èƯ×úð‹¼½„í·Æñæ„ÞøÞÉéûÞš»·Õ—À¼»›ÚûíÁñšÍΓɠ鴺†§Þ¯ïÔéœÚ­óŽãéѸժ¥§ÒéÔ¨œò +©¹óýÝ©“¹Õ¥Ò§Øì”‰‘œëëΆñŠù…ξ߹ºê€ÜÙñ®¯»—²—‹‹Îùù§çÜœóæÆ¹Ž½íœšòÎÌθÇÇããΑ‘çð°óð +¹Ð¹°àìï÷ãöõ¹ûúœÝÇÝÎÎÎçLJ¿³­ÍÙÚêì€îö¶µ¹›š™œõõÎÚÚçžõµ³²ÒÙѱᬫ󖔸‘¹Üçᡳ¿¿ß™›ëÌÎö +øææºÓөǩΔ”çҒÓÃñ¦¤¸Ÿì¾õÆÆº££ÅÏž¸£¢œŒááÎÐÐçðé°³°ÐùçŽûóæÍçõëÎͫח®¹Ï•Ÿ÷ž¾í¼ö +ýÌùø°óë¯çûö¹¿ÿÜý¹ë—óý÷Ï¿ø…Ó«ë—¿½éŸÛÚ÷·üÒšÞÈÂÛù¯ØÎůËñþœ¥¾¬ÅކüÿÔŒíØÕ…ÞݽØÕ݃ +­Øµ‚ãøèÜ’»¦ñáœÞžßÀ¯—°ý•œï‹Üôý·ÚçûÁ¯ëÎïΟŸ²æ°ÙœÖ³«Ãâñ˜ÍŽƒ“Éá´ºŒ†‡ÞïÐéœÚ¹­ããáѸ +•Ôê‡ÒéШ¤œò¹ãýݡՓ¹¤Ò‡Ä≜ë뎆ôñˆ…ŽÀ±ƒºêØÙñ¬¯ö»––œ‹‹ŽùùÇÜœãö¹Ö±½í˜šò˜ÌκÆÇã +öãŽÑÑÇð°äãèȱ°àà½ñœýýŽÞÞüÇÏ£«ËÑãÙéèï÷´µÀ¹ÚÚœÍÍŽñÆÆÇý½£®¹ÎÑÓ㨪òØÔÖºÊ˥ǥŽââÇÑ‘ +ÿ£°Ð‘ŸïÈÍõä绲³žééŽÔÔÇŽÊŠãùóÇâ÷¢ãÙ³Çӧ㎘˜ÇÔ”ãíɓǣǎ‡¼¡¡Žàà¤Çà £ Àñïó¦ãúõÇ• +꫎˗œçÎĹÎòœ»æü¸üØñõ׎êýûœŸÿîØÿ¹ÓñþûŽ·áßöøå­Ä›Ÿþù¬¹ÿ÷õšœÞÎÄ»©ø°¿ƒ»ò°³€ìŸ—ã³òì® +óÆžºüÑ„½ï­Ø×ýÝØ“ׇ¯‡°ï˜ÅûƱï‚û§ÛðŬöÌã÷Ø¢¾ÛÁÇüìÔ”âÇšÞ—ãÜÝ©ÞÞúßìß¶ý‰ß¯¹¼Ü»ÿÊšÝêµ +˜Û¬ö³Ùî²ÛÙÆ»Áà×ëëíºÝ«µ¤ïìØµš»Ú¬íש슅ݞ®·¯¯Û岩»Ôê—Èì⩱ݤ²³ŒÝ¨´‹„ö¾ß£¾ºêßÞ¶¯ +’­Ù——í‹‹»ö¹¹ûì¬ýâæÆ¾µåŸœù´ÏÌØÇÇíö‘‘ûЉýðо°à¿ïï·÷õÙû¾úìÝÝöÎÎüûLJ½­ÍÞ‘Úêïî¶·µ +ÉÙ›šìõõöñÚÚûõµ½ªÁÊÞÑᯫ³¿—”Ø‹‹íÅÆÅö‚‚ûޞܽ§Çž•åÏßȰ§¥Ùß¼Ù°§§ÛŸ¿·¼§¦ÚããíñÆñö˜˜ûä¤ +ãýñãûø¸ýýáÃûýûö ¾ ûÝ»ö€€ëû›öë×ìæ×®Ø¯Þ´ŸÐ»ç¿õÊþì÷˜ýСûþý›ö½ûíŸýæßß¹ÓþÞûö¿·ß¶ÿû¿û +üá­Î›þ™¬×ýñþ‰Àÿ†‹àíðüªŠŸåÄãçóü’Š¯Ï³ðû¼ì«­Â×¥Øß‰ƒ§µø¦‡›ñ­¨‡»ð¸—Çø¸²ˆ££œ¸¼ŽÃ“¸´ +‹ƒƒóøæ‡Ã–±ÿ•߉°×ÁïÅøÜ‚ÖÏÖ±Ó”£ø•šïïà¿·ÆÜ¦´ßâÇñîü©ë¶‹ÉÅæ¶Û̦›ÁÑ賘ìú½öͧ³éµ¶ +¢›Æãӫ횪•Í©´©”˶õõ›Ìæ“ÈÊ풉ͬ¶­‰Ä¶µµ›Ð è“ˆìü¾íŽõÕ¶²âÛÚ‰²­®Ú––ìïóó¶ÙÙÛ̉ŒíúÚ¶µå +ÿ›˜°ÛƱÆì££¶ááçÛÐíàÀÆïãÙúú콽㶞žÛ×—­³ÓÖÞîë뿳µ´Øššì¶úúÛÝ­¦ÆÖÕå¿«¬´•—ÛÊ +ÀËí¥¥¶®×øÖØèËÏ·åïæÚ²³í™™£¶ôôÛꪭ®¥Å–”äãð˜ì‰‰¶øøÛ’Üœ­ºÚ–™þ鋈°…‡Ûœž¼°Ý¿ï‹®Š²Ý½ë»ý +½Ûöã†íڵߛ¯¯íâÅÛÙ³¶“§íÇóÚŽ²íß¾ïÛ»×öÙç³¶»íï½çêûûí›×ÖÒß½éŸÃÚŸï뜋øÃŸÛïÝâ·¡Øù˜Ÿ +ÑÄâÏ‚ö¦ã¹«ôüƒƒ…Ը܌ïËñ´–šÇë𢉧´Ûñªƒ§»ñ…º§‡ðú˜á§Çñú‚§§ñê–§çñⲉÇ×ð”ïÉ…¸¬ÂÁ‰¾ +Ӗ᫹öª±òÇϴةŖïôØîü¿ïö¯ÿÞßãÿωͻóƒëßï˵šÍÖ“É ê´Ú†«Þ®ïÕé¬Ú­õ®ãÃªÑØÕê¡«ÊåÕª­Š +™…Õ®·ÊäÖ«©Ôª‘ØÅâ¡«ÈäÝÛ³²ùŒÕ °òùÖÕÕëÊŠõùÇÙº¸èÝØ°ûÎÏÛçæ¬³÷³ÖééëÔ”„õòÒº¾îî›³ŽŽÚ‡‡ +™­ÃÃÖÁÁ«ýçíï·öõøÙûú¬ÝÝÖñÎÎëLJµ­ÇÍÚÚêíî¶à¶µÙ›š¬õÇõÖÚÚëõµ‡µªÊÚÑá­î«³––Ú‹‹™­ÅÅÖ‚‚ë +òÞžµ·×š¾íÍÌ´¦§ÛäÓÓ­©©Ö¤ä¤«‡ãýö̧úô©µ¶Öš˜íýòÄš‘ˆá‹³¾øà܉±Þ»ç½úóÇúë–Õß÷ßêççõõµ +¢Þ¸à½ûÖúïò¤õèÑëÁ߃Öýû­û÷¼Ú¿ûÌúÑÇÿÖ÷Þ³¾ý¶¡Õ«ëÜïúÇ×·öÇû曼¼ùšïúâÃÛáøÝ¾ÃÞŠÈø¼ÅŽŽ +ï½À·™¸–‡Ð“ŸՊ³•ì¸×ƒó¸Ð¿Œ‹í¸Ô…ËŸ½¸ÌÃå¡ÜæžÁåñܞĹ¥™ÜšÃÅŬܨÆùÕœ““à̚Ήñ­ŠãëøÖà +쪜ÐÀÇ‹½ØºüîÀïÌøÃЂ÷íøó‹”ÿ·÷’‹÷çåÓß׬æ³Åê䲘–ƒÁ£¢×Ûôº‹ÖŽëÙØ°è´–§µÚ¢ÒÙ”ÊÙ‹Âá‘Ë­ë +­ë–©Ô¢‘Ø…Äâ‹ÈäÙÛå³°ŒÅ¨´ð÷ù–ÕÕËÊŠœåùÙ²´äÙîÜ´ÌÏÛææÞ¬³³–™™Ë“Ô”åòÒ²±¸á™Ÿ·ŒŽÚøÆÆ¬ÃÖÁ +þÁËÀ€¥¿ß»Ò×çéíµôŒ÷Ûºº¬ã–ööËë«¥¥ÅÒÔäéì·´Ô×Ûêꬌµµ–êêË奥¼ÜÒÖæô©©±ð¹–ÂÈÂËÁ¥¯Ï +»’“ãÉʲäŒäØÒÒ¬¯Þ¶Ø’“­ÏŸÛØ’“­ÏžÙžî¾µÄÄØ¢¢Ä¬ÏžØž½²Ã„…ÙÂíÁËÁ–û÷¬÷î¼ØîݲøûÛ‹üü¬—¯Û® +†Ü°œ¹ã¹ù¿Òòí·–ƒ‡è­¾¾–¯¾°¾üö™å£¬Óï½çùûí‹Ú×Öê¼éŸ×ùÚŸïì÷ðÆä—ø÷ˆöœÃÕÇþØ“€ý÷óñõ£œŒÆ· +±Ï𼉧Ò𤦛çŠð¡˜——ÊáÛ«õ˸ڄ¿ÖÜëóÀõîÜïƒÿ΀ü‡á¿†ÿÚ‰øÏãú¬®–¯àÚ’üÖðÂÕ€«ŒüŸ²¤Á…™ÎÉñ +âÆ‰ÓêœßÀ™·ºœÔãë£ÿö™±ÇŠíߨáÀ»®­ùöµîûçÀâÝÙÔšÙä²›ýæƒÁ¬×›äõº³ÖëÞØð°ë´æµÚ¬–Ò™•ʳÂá +ß–ËÍëëæ™Ý̬‘˜Åâ³ÀÈäÞÛ³³Œ€Ù¨´‹„澇߼²âÞÞ¶¤¯­™——Í‹ö‹æ¹¹óì¬ÄùæÆ¼½ížñœ´Ï̘ÇÇÙÍããæ‘‘ó +“ð°ùèȼ°þàæñÌýýæñÞÞóϹ«·ËÜÙéîè°ç·µ™ÛÛÍÍÇÍæ¦¦óÃǹ¾ÞÜÛ뮑®¶×Õ™«ªŸÌååæÒÒóžñ±¹¨ÈÜØ +öèÎÏ·çæšÿ³³Í™™æôÈôóꪹ¥Å«œ”äæðÌ‰Æ‰æøøóÜœ„¹¦Æœ™éþÿüØüè‘ùáÈÃó訹¸ØÀœ˜èŽˆ°ßÕ¼é¾þÝüõ +·ªùòåó…‹Éæ³ç̧Θ÷¿ýÖüð Ù¯ÇÇüÅ—æÏø¿µÿô‘ù×½¿¶¿õ–Ù«ÜëíÞôèíÕ·óÿâ÷Û“±ã£üø•¾²¾Ž½—ñ¥¿ +ŒŽ„âðƒœýó‚“ñ¸“ˆóþ©¸˜Ë¹¸äÒˆ¿Òܯ€ÿî¶àÖ³Êî·£ ‹½¯¸ÃáܙûÁñܙ–™Ü™ÇÀ¢‚Í–ñ›ÛÂÜ +ö܃¿˜×¥ð¢ÛÇ•…®«ðöуóÚœÑãÁ¤‘Ç͸ìÁ¤›¾ôà“ØŸƒŸÂµŽË­øýÜ˯ÞÝÍ­™ŒÆ“ÍÁàÒëͺ¢É«µí옴 +¢š“ÚíÒ©Ìêʥɡ°Éå˦õõ“Ìæ’ˆÊÍâ±É¤²—­­™˜Æ¤”‘š„‚“ŸïÚðݵ­¯›––ÞÌ‹‹¦……Ó“ü¼éöÖ´³Æãšž¶ÍÍ™ +ø¦§Íã㦱αÓè¨éøØÀ´´äšœ´ñÆø¦þþÓߟߩ§ÇÔÝíêñê²õô˜Ú۞ͭ­¦––ÓžÓ“©±ÑÔßö磌³ÕÔ˜ûª«Í••¦ò +øòÓÙ™©¤ÄŸÄ嚊ŠÌ…Æ…¦¼¼ÓÎŽœ©«Ë”™éʜϷ¥¦šÒÒàÌÉɦŽÇ”íàŠ·ÅÆ÷š¢£Í‘‘¦ñˆˆÓø¸éá¾ÃÓýû¦   +¤Óà © Àôïó¦éúõÓÕ﫦˗ÌçÏ•›ÎŸ¶¸áëúöÛӷߘÀüüÌßüáú¥ôÓÓÇŸ™þåýëÓÛ²Æó¦ÿ¸ë½ßÝð¿àðÛ +“øæýü½‹ß³îÆ—‡°ï”ŽŽøâ𭜋ûÆ©ðœÂ…øøÜþŽ«©¸õ–…ÿüÜäâ¨ö™‚ªð·Ž¿¸×Š Žˆ„÷£¸¡ƒˆˆ™ÆÈ˜Â¦ +¬²Ù„¬˜ ø‰Á«ˆ’¥àžƒÀ‘îÊ„ Ãí¹îªÏá¯ÆµÜՃᲗ̸ëÙÆ©«ŽÙñØÉ‰ƒ®ìƒöù‹ö÷áû‹­–ÿù»¾½¯ +‘½ø÷¶µæ´ª˜Œú½Ñ§³®êµÆ£Æ¬ãÔ«ª•Ñá©´ª”ƹܻ¸¾î”ÉŒÒѩѬ¶ŠÄÆ©µµ£Ã˜…Âù£Ààäó«÷«Æ••ãÒ’ +ÜññѸ°àœŸ·ÎÍ™ççßÓÓÆ©©ã“ä¤ñ⸶°æœµŽŒ˜ÿ‡‡ƒƒÆ´£çìë³£ööšûúŒÝÆÝÆÎÎãû»Ÿ±­ÍØÒâì +€î¶¶µ™›š™ŒõõÆÚÚãžõµ±ªÊØÑ°á¬¯·––š÷‹‹Ü®±°·Ð˜ŸïÌ͵»æä˜³²Œ™¶™Æ´´ã‹—ûÆääãóçÆíÄÄã³çƧ +¾Ï±±Æ¨¨›ã“§ÆˆˆãŽØ˜ñÁƒãÈ鈱¨Èø÷®Ûñöíã›Æ–ë׌׮˜¯„ݲž¿ï¼ý½Úøü¸ñÈ‘õã·ß˜¿úÊçøûß›¿ýÔ +§øÛßšÿýëñãÛï™ÿíß«¼°¶îÍÿØ¿ÖþðËÙù÷àðö‡ÎÿŠ“Ðûñ쿾½Œ¨Ãçņ̃‚¢ðî¾®ÆÀ·è†þ‰ðÏÆÍžôÜÎÁ„ +•– ¨‚ÁµˆàéÀ賞´áèá—žö¢Œ‡°¡„ üœ©áÓˆŸÁø¼¹Â–‘¶‚‡ü̼”âÁšÂÅ‚ˆ‘¢øÁв„ªðǃÛÚÜÔÃ߈¿³ +”ü­¸èù‡ÂÎ¹ðŒ¸„×Üþ¸öÂö©¬ð»àþ‡Æÿü•û½Ã¯½ø÷𶵿Ð뺅Á«µìì˜Ä´šƒÚíЩԌʥÁ¡°È—å†õõƒÌæ +‘Ê’‰Á¤¦²¬­™˜Æ  ”š„‚ƒŸïØØÝµ¬¬˜–½—‹‹†……§Ãü¼áîΰŒ»ë˜™±ÌÍÀ™¦§““†ññÃè¨áäݼ옚² +€ŒŒ˜ø¼Ãÿ¿¿¡·×ÐÓãƒèî¶ôöšº°ºŒíí†ÖÖüÃË‹¡©ÉÐíØè¨¯·ÔÕð™êêŒÕÕ†ñÊÊÃù¹¡¬ÌÐÒ⨮¶€”•™ŠŠŒù +Æù†ÜÜÃö¶œ¡³ÓžîÈì͵¤¤˜’’¤ŒœŽ¡¡ÁìŸïˆ‹³ÄĦ˜¢¢ŒÏž˜˜ž½²„…™ÂÐᡆû÷¤Œ÷ïšîß¶«Ü¸á¸öÍð +ïåŠáҥùîó†Ó§Ç‚›Žœ±œ¸à›øê«Ãïÿï‹øä“Ãïÿë§øõ¯ï½å¯ðÊÚ¼·ýƒÆÙûîÒÿ†ÿñ÷ðý—üöàÅÊ׸ü— +ûâüÉœ¹ˆ³Óþ¸˜ˆß‡¸õö„þñ¸ÅÁ‰—ˆÌÄО’Šچ‡Õˆ«Ãø£žµú¢¢ƒ»ñ¤àφ¹ŒÈÀ±Ä΢òš‘ÒóˆÜÀä’ž +—¬â‰€™ÄÛˆðÈ‚ðõ„Š©ðÀ‰ÐµÂ”¶¤Ã ÷Ú̸忕׋ìðõâ¢ð–Ô¸‰çÑØÂ¡ú•¬ûàÚ…ýÃûÐýìïôþ¤¿ôâÝÙÔ +íšÞ§Óëµúսƣ׫µõª•Þ©Ô«ô”ú¹Ü¿¾®——ÉôÒ©Þ¢›Ñ‹Äúµµ½×Ãè…½À ÿçóõ««ú•Ž•ýò²þéÉÿ¿° ŸŸ×Ï +“Íéççõ³³»úééýä¤þ⿾®Ÿ›ÿӌ臇õÌÃÃúÁÁ½ÿ§ïï×÷õéüûúôÝÝú®¸®ýLJ¾½Ý§ßÖ¦ïéÑ·’·ë››õ +ãúººýí­¾ñºÚßÕ¥¯¨ÏЗ—ëËËõƒÅÅú®×ߨÿ¨ÏÏ×çåéäóòôÙÙúŒˆŒýÚš¾µÕ§Ÿ’¢ÏÊÒóƸú„„ýü¼à¾®ÎŸ­ +ӌԿþ¬ÿôŽÈÿ𡾴ԌŸœ¬¿÷ÏÿïçŽþÖ­½¿÷¿ÞÏÏïë«ñ¿øÑÿîœþíÔ©ý±ãúÃó‡õ‡Žè¿üºÒ¿çþ“Ïßô¿ý­þ׿ +ïÒÿüçú¯¬¶‰¼éŸÅÚ÷ë×ù¶îý€ÀÄÏð÷‹„üëÛ‡ñó¸üÏóàÚ…Üõ…ïÊÍø…Á¿œ·±¢ð§ž÷’Ïœ†ûÙøÐ€°â¼ªÇĵ +‹žÔ£²™Ñ탈îÂ̯âùéˆÂܨâÆì‘·…¸ÙÄÍà£î‘ñ«ˆåŒ£Öˆ˜µÄËȥäœÏ”íˆÐãÑ†Â´æø Çý£‚Í…¸çÅ›î¹ +×àà‹×Ì…¸ÎÀöœ–Ñðÿã—Ðôÿ‚í‡Ð¼ýå÷øžßúñî¸ìêͧÕê¶è¶ôšÎ­Ö©©Ôº¥Ò§Ð»èäòÝúºÎª¦ÓÉ¥º‰Ä +œ§–ëÖÖôŒá£“Šõ‚ŽŸÏ×­®êÖÖÞôË˺¥¥Ýƒâ¢îþÞ··ÿ§›ÕÍÌè㦧õÓÓº‰Ž‰Ýø¸îì̤·ºª›™Ñ‚醇õƒƒ +ãºþþÝߟ®ý·××Ó£ëê‰Òõö꺺ôŒííºÖÖÝó÷³®©É×Р¿«¯×ÕÕéê¼êôÕÕºÊÊœÝù¹®¬Ì×’Ò¢«®Ö••ñ銊ôùùº +‘ÜÜÝö¶®³ÎÓ—‘¡ËËÓ¥½ø¡ËÎÖ½’ÿ®ËÌÔ½ûŦûúÔ—›«§‹ŽÖÅÆê¢¼¢ôáẇ¾õ÷ï낃õﺀ€Ý­ðÛºÿÿŸŸ +óÎ××÷ñ¢î­ìÙݩӺã•Çô‡ëŽœ­Ðýù¥îÏžíݧŸèöìлýê׺ŸÿÜë畵©·ýô—­ýñÆߢ´ü‡Â¾ÃƒýÚˆý†÷¢ä +Þ”‚ÎáÞ¥ÜӽЀÿÜŠÀ—­û¸“û±€ˆÉÀ芞怠¼—‘ÅøÒÓŠ¨ÊÄ×¢¶ð‘ñ­øÚøœî¼ëó¤°Œ£áŒ‰“ÈÅœÆâœ’— +ǸŒ„Õ¤ˆð³ŒÁ³±â¥øÃºŽ¸…âÕˆ‰Ö Ê‹§ºÄˆ˜î˜툱㞓÷™€ÛðùÃù•½ö˰žƒù”¨ÌÇáø†ºýËØøŒêÐþ +•òïþéÉ˯‹ÞÍ­é·¶õ´šÖ­Öª”ÔÚ¥Ò«ÐèåòíúºÖ¦•Óʥډīܒé×Ö´Œ£ô•е‚–ÏÇ×®®ê×Ö´ïËËÚ¥¥íâ +Á¢öáÁ»·§ßÕÎÌè§³§µÓÓÚÉÉ‡íø¸öìÌ»’ºª™ÑŽˆë‡‡µƒƒÚüžÏÛ߯íí÷Õöôè»»µÚŽŽíû÷»¶µÕÛÒ¢ +„íêÒ¶¶ê›²š´õõÚÚÚœíõµ¶ªÊÛòÑ¡­¯×––îê‹‹µÜ®¶ñ°ÐÛРÍË÷Óæäè³²´™™Úôôíêñª¶¥Å›”¤ååð´‰‰Úø +ˆøíÜœ¶¦Æ”›•¥ýòÄ›’‘¡‹Ó¾øÃ ½ÿß›”¤„ŒÔ†„èï»ÞÔÞ¿®½ú¼Õûù²öÂ…ßíÙ³Ú“§µ¢ÇêÒþ¯ýµö˯µû +©öè¿þØ»ãû‡ö׿ÒþüýçÚ¯¬©½é¼§îí»Ëû÷éÄìÇôLjڟȯðäžäŸÃÄ鼺€˜ðß¼¼†‡·˜ñ¿€Áˆú“€à§ˆÃ˜ +ʇÒñ¸‹‘—ùˆæ¢¶œñŸÕˆ¯Ç³¦¤•´¡±“œÞ¼¡ç¡éˆÉ£ÈÔžÇò”’瑦¼ä¥¤¯ ƒ™¤†É¢¼“—€£Ã¢œ‰€Ê¼Ó£þƒñ +ºĚíĤƙ­øäǘ¢ƒ¡®„ƒðÒ†Àñ“¶ë°óøÂôÆÓІŸƒö´ßÁ½µ›Š°¾ºÒ–µþܧ¾ÇëÝÙԚƧ­Ö¨Ôš¥Ò +å£Ð¼Ì®×¬Ñ¯ëä²Ô¢’‘‹µ¢‘æí’Íðš¡Ð£ôèøüÍꪸæåų¼¬Ù‚ÚÒ¬®ê––Þ´óóšÙÙ̓̌æúÚ³µ¥™œÔÌÌè +ûÆÆ´££š‘Ž‘Íð°æèÈܳ° áñ´ýÇýš¾¾ÍÏû¦»ÛÓÕ¥éïèд·ëÚÚ˜´­­šææÍŽÓ“¦¡ÁÓß¿¯©­ÕÔÔèûªª´••šò +¸òÍÙ™¦¤Ä¤Óܬ©ªÒ”ì”èòóµ¹¹£šììÍÖ–¦Ü£Ã“–¦ùñΓœ¬ÉÊҌ𸚄„ÍüÁ¼¦®Î““£§‰ŒÔ¼þ¬ù‘ôÈ“–¦‰ +·Õ„„è‚‚´ò÷ïêîßÖÜǼ©¹þÝóõ·ªæòåÍ…‹š³ç´§Ïê厞՜º¤ùíúë;ýšÝñ»µŸÿ¬Ù±ÆÃó«÷µ¿ÿùƫëÆïú +¼©ÛûîÚþƒâ‰ï á§žíÊÁ¼žžÆÜ–‰ÄžÅÌ¥ÄÄßÅ”¿¢ïã±ÉÝÄ„áÑýÇ„…áᔞÅÙãñ’¢Ò‘“»ƒ¸ÂÄ—àÙˆ…’ëÀéÀÒ +¾‹’Û‘Ò—Øýø±€Ôᤡ¡í’éÓÈõŸÃú‚Ò—‘ó¶Š´¡ÒÖ¢ªÆ‹©Þ¬£ÒÅä•’´àÎ葨dz£â¶Íˆ³ Æ†¨ˆ‡ž»ñˆøˆ +©×ý¸‚à¿‹­ëí˜ýἊ­Ã¥èÎâㄟԇ¡ôüÀ仡ù‡¢–‡¿Ëú罿šßïΦÖÔª•ÂÚ©Ô«”ê¹þܽ¾®–ÉÔâҩڢыŠ+ºê‘Ƚ¶¦æÊ˜µÐ¨–ˆÔâü¾úõÕ½²Á¢ÞÞÖ¯­©ä——Õ‹‹êùŽùõÜœúæÆœ½½­žšÒÏòΪ§¦Ôãã»ê±±õȈúøØ½´¤žœ +šÔóøêþþõîߟº·×ÝÝÇ­îêÒ÷öªä»ºÔííêÖ¸Öõ󳺩ÉßÝØ¨®¯××óÕ©ëêÔÕÕãꪪõÅ…º‘¼ÜÝÚª®®œÖó¹êÂÂõ +âÁº¯Ï“Ç£ÎÎÖçæª¿ÓÓÕ©©ê—þ¯ÔÉÉêçÏïÕ‰‰êçÏÔæÏŸªããÕÑ÷ÑêÈÈõãÇûêððõÇêñÐÐõð°úÞö½õ»êÛ· +™Õ·î¨¯ÝÓŽß¹¢¾ôÉýïþ¼úÌ™õ‰¶“ê£ÇÕ‡Ž÷©÷ï×ïÛ§ûÞ½ÛýñÇêø¿Ô¿û®úÍ·Õÿóÿú†áÍîÍ¿ÙëÒÿø•­å¤ +¥ìÄòž¤íǡґ¼¿‰Î¹è¤ÞÆ‚ŸžÝ˜Àü€žÞÃÜ€ˆâŸ ¦œÑÓñ¤†‘‰ˆÐÉÁ܆âó‘ðЄΙ’ª‚܇—ÍÈíÅ´Ú§ÒûÁà +Ñæ²Ç‘µŽ‰¬©äÏ¢ûž…ÙËÈÞÁ¶Ÿ´ÙŒ²ÄÈ” ²Ó†Œ¹Ò•È€Ó£õƒ¯ôÈ”¶ É„Ž™‰ÖÖÄÛ‘çÄŒ¦‹‘Àã¸Ãá ÿ€Ûˆ¬÷à +ÆŠ€á†ôþÐÆÞ†æœÔ§¡þ¸‚õýî¼ø§ÖÞðïçó«Û˯ޮͭ©”ʕ·¡’ËÕë몙™Ì¥•ª¤’••ج’‰Ôë¤ëª†Ñ‰…ª +ÀÅç«Öרի«ªååÕãÒ’êñѵ°÷ šŸ×ÍÍ©øæçÕÓÓª©Ž©Õä¤êâÂĵ¾®š›ÓŽª†‡ÕÃÃûªÁÁÕÀ€ŠïׯêëÓõö +ÁªúúÔÝݪñÎÎÕLJª½ŽÝÕÚªêéÑ„µ·«š›ÕƪººÕí­ãª¦ÆÕÕ¥ªý¬Ô•—«Êʘԥ¥ªââÕîÑ‘ª À•Ÿ÷¯ÊÍÕåä¨ +ã²²Ô™™ª´ˆ´Õꪪ¥Å•”¤âðԉƉªøøÕÜœ ª¦Æ••¥ú‘òÄ•‘¡Š˜×½ü ºÿßÄ•œ¬ŠŒÔÝç¹£ºõËåï㯺öÍõåŠ +ûêÒ¥ÕùóªãӧէΨ¾ÙýÖõð êÿöþÕ¾ýªÝ»¾Õ¿ûêîÕᆱúóͽ•—ÖœÛà͸¿åëÛ‘±“¬™û¾ŸéÇùö’©ç‘ê +Í‹—×ò“Éú÷”„ç¡à¡„¡±‚‰‘ø¶–§ñˆã °¾•‰Ùà䣩©˜©åÈ­ÁøÚƒ²š‘ÙŽ‰¬®ä÷¡ç€§¹ÃÈÃÞ¤·ò¦‘¿‡üÅ +¡ä¯£ÿ•ù“䭡όܩ®òב£À¶Š°Ùšäê‘¡ÇÕš‘©æ¤ØÌäƒÇ„—âý¸¸¢áˆ„”­‚Ö°˜ÃáÖŒ‚þŽ´·± ñêߨÏà +ôþ’²£ì‡Üè˜àïÿÀÛÙÓù÷¶µ©¦Ô¨”ò¹ò¨ýÝ©“©¥Òµ¥Ä¢”‹•¢‘‘òíÍɰʡ¡Ð©¨ùüÇåêªòåŹƒ¼¬ÜÚÒ®® +øª—–”óóʹ¹åì¬òú¸Ú¹µ¥œœÔ¸Į̂ÇÇ•ãöãÊÑÑåȈ òèȹ¸¨œ´˜ÐòøÊþþÜåﯲ§ÇÙÝ­ìêÒöôΨÛÛ•ííÊ +ñ––å󳲩¾ÉÙР¬¯×ãÖÕ©ëê”ÕÇÕÊÊÊåÅ…£²¬ÌÙÚª¬¸®Öò¹ÊÂÂÄåÁ²¯Ï™“£ÌÎÖææÎªÓÓ•ééÊü—¯”ÉÉÊç +¿Ï•‰‰Ê„„„åü¼²®Î™Ž“£ŒŠÒ¾þŬüôÈ™–¦²üðÀùÿ¾²¨È™˜¨Œˆ¾ÐÞº¥ô÷×£úù©ýý•—¬¯ªÏÓž¾ñ­¼þÜùí· +»Êƒ‡•û÷«ó÷îÕþþ¹òò÷¿Óþø¡òõÝ÷•ᄅôóšù›¼é§²éퟆäýû„ܽÈÝœú£È¹‰ìóÈ¥òÅÖõäÞ¡ÆÝä„£ý +ÏÒ‘ú˜¯¢Ý’‹ä§øžÐ€Î’¸éÈÊ ÁÊ¡ÒË‘ÞÉÌÚäµ¢»ž•¹ÈëÁþ࿊†Ñ°‚ˆñ”Í¡è–ÅÛóà®»‚®È€ÅŒŠÄ¨’ +ŠІ‚¹Š”¡Èףº¤ä›å¦…½éÖ¤Ú‘âÄ’’À’àüŠÔû¬¬Ñ°¼†”©œ†‡Ð…ã½ã®Ô· ¼Ž…¯ÖÏÃú’©¢£àöð‡ +Ù«Ÿáù—ÿý¶³ÿòçðîìèêÍ¡—«Öׄ•²™ÂªÕÈ„¤Š±Ø¡’©“ÖÖ”Œ£ŠÜ•‚‚Ï׬᮪ÖÖ”ËË»Š¥¥Åâ¢âðáÁ±¿¯˜› +†ÓÌÎªææ”ìÓÓŠÉÉÅÄÁ„âüܱ¶¦Ø˜ÕŒŒ¨†½‡•ƒƒŠÞ…§èï×ôáõ©úú”ÝÝ㊮®Åç§¢½ÝÑÖ¦èí°Õ´·«šš” +ŠúúÅÝÇ¢¶ÖÑݭèªÒÔԨʽ˕¥¥Š’’†…—«¨ªÒ”씨òó•¹¹£ŠœœÅÖ–¢œ£Ã‘ž®ÈͶդ¤¨’’”ÃÏŸ«’“•Ï +åž©ž¾ÕÄÆöª¢£•‘‘Š‹Ç•ž©žŒ¾Ô„†ªÂ˜”ÁÁŠ»÷•ÌŠ›·•×í¯«üü”¾¾³Š‹—•çΩ¢ÎÒœ¿®¸ŒòÄñÍ·ŠŸ +¾ŸÅÞ½ŠÏ¿º×üî—⃮”ï¼£øóÍõ…—Ö¶¶Á›¾þ‚Öþðñþ©ÑŽ”íÆ‘ÎŠ ð¤ŠÎ»£À—ùבÿÌ›ùÈÁî’ƒä¼Âö“ä +àÅ£³Ž™Ï·žˆ´¤¤¦ „¥ƒ©ùȯÂÜæ™²«‘Ó½¼æä·¡ ‹ÖÅ½àŽ€»Œ•ⱔ̢䚡¥ó¨ÝÄé²’Êù¨•¢ô…¥â”ÈÑ¢Ç +‘±’ܵ¸›¨ËÒ¢Àü£ò·Ìȱ¢ÛŽÌ‡ÒÝÈ…ÒàÒÊ‚£‘¶ç°ÓÄÁœã“èÔŸÁû€š¨þ‚¡¸õëúÂüžë§¡„¼‚¾Ööã +œé‡æÿÚ¿ˆ¾øéÅ»³©µ§ùúºÜ¦“ËÅ¥ò‰Ä®–˼ŢùÚšœáåä¡ܠó÷ùòÕÕùÊŠ˜üùÙ¾´¤ßòÜ”¯¬ÈççÙåóóòÙÙù +ƒÌŒüêʾ¹þ©Ÿ˜ËÿÇÆä££ò‘Ž‘ùð°üèÈø¾° çñäýÇýò¾¾ùï¯Û¼»ÛÞÕ¥ïóì”÷ôÈÛÚŸä­­ò––ùîÓ“¼±ÑÞÐ +þ ¯«“×ÖÊäëêäÕÕòʸÊùÅ…¼¬Ì ÞÚª¯®–óǹòÂÂùÁؼ¯Ïž“£ÏóΖçæÊÓÓÉåééò—¯äÏÉÉò¤¤¹‡ø£ÏÈÇÇË +çãâä±±ò¨¶¨ù“§òˆˆœùø¸üáÃùÂ証¸Øþï÷žüÎùíÛùò›·äׯËÕ¯Þ•ß¾¬¿øðÁþö¬üÔ–©ù±ãò£Çóäßü£÷ñ‘ +þÿñ…ü³ÏäÕ»öÉ¿øÀþÝλòŸýÌµù¶øÓÏûÍÚŸþÀºìºƒ”ý†Ò¯Ð„ú˜¥§Ñòžú¥¾¨¾ŽâÛõà†‚›‚¢‡‚¨ŒÀᤊâ +£ÿ”ù‰Èý“ŽÜää¿ÀÖüº²³™ì’âäÖ ¯†…Ш췃ÅÕݨéÇé Ê˜ÆÐ¾Žò©ÔÓ̢➕˨”ÜÁ¥€•ŒªÎŨ¢âå +ÖŠ”«Ð¦Á© –¥ú”›Àµ§¡Ð‚‚›òœ±Èõ¢›È„«êΗ°§Ãúºœæ„˜žÂ ƒÝ¤¶¢ þøˆåˆäÝÓ†äºÄ¾àÎøÃ𒫇±ô +Ø•–¾Ã܇˜ÿù«þ˜ûå«ÿìÝÙԚ컦£•ʤ’™Ø„¬“‰äë벫†‘‰…²À‡ÆçËÖ×å«ö«²ååÙÒ’ØìñѶ° ›ŸŸ—ÍÍÉæç +Øå³³²é©Ùƒä¤ìâ¶¾ø®››“ŽÊøÆÆäÃò¡þ¡ÙÀ€ŒÇ“ßõ÷Ëúúä½Ç½²žžÙ×—›¬³ÓÖÑ¡ëžï—µ¶ÊÚÚžäÍͲ¦¦Ù +ŽÃƒ¬¾ÞÖ×Χ«©‘Õ×Ëફ啕²ò¸òÙ马¤ÄŸÆåÊŠŠä…Æ…²üüÙî®Ø¬§Ç–•¥ËŸÈ¥§ËÒÓØå©©²ääÙïóç²ÄÄÙ³ +æç²§Ïå±±ã²èèÙÔ”ìíñã٣Dz°ö°Ùƒ‡²û÷ÞåÁÁ²ÀÀÙ•»²Û·ä·ÖîȮݓݹ⢻üÙöá‚ûììÙÙÉ“²ªãÇä‡ËŽ +úœýõ•ì‹ä¯äŸý¦ÛµÖËöÁ‡²÷Þבýìç²ÿýÈ×Öë̶øÓ–ÏÊÚŸþŠÖÍÕû¨ú„ÕûˆÐùˆ•§ÐùüŽ•¾¨¸ŽŠÁÛ¨ÄùˆÊ +²ž¢¬‚¥‘¨Ñ‰ÅɼГÁ°ÍÂÑŠŠÒз˜‚¬äå ©·ù¥¨¨Ä„Ѹͨéäé§ÊûÑÁÃÍåªÆÐµ‰™êéÔÏ¡æ‘ÞµË¨á£Æˆ +…šµÔÈУ嵜ÕÊԩуµÊªŒ¨Î·¢ÔŒ’«¸ö”¹ÑàžÁƒç–œ™°Ç¥Á’‚Ó’Œ‡‰ÐÇÛ‹Í ¤Ô‘мÄúöˆ¤ßÆÚ +èõˆýÁ¿‡åؓؼ„ùý˜©ý„Óïá⯹ÿËÜÿÛ‹—çÓë҉Īø–ËÅ¢—­­€É™Æª”Ê…Ä‚©Ÿ¯ÝÝ•»®¬È——¥ËöËÒÅÅé‚ +ÀôþÞº·§ï•ÎÌȧ¦ß¤““Ò‰‰éƒø¸ôì̺ºˆª™‘ŽËŸ‡†¤ƒƒÒžöÏÚ߯íë“ãööÊûú¤ÝÇÝÒÎÎéLJ›´½ÝÚÖ¦í +âé‘¶·Ë›šŸ¤ÒúúéŽÝ´¶ÖÚÝŽ­­ª’ÖÖÊçËË¥ååÒ’¸’éñ±´¨ÈøÚبÍÏ—æñåÉóò¤ÙÙ£ÒÌÌ鯆´œ­Íúâ…´¥ +ÖÅš”¤åð¤ì‰‰ÒøøéÓÇ§ÒØØéô´ø´²Òúø±ô‘Ñ£éØ˜´´ÀÔš’¢Š’à††Êƒ‚¤·üîÉýý¥×®ªÉ¯Ü‘Þº¤ð½ÿÞúæŒô +ýäÉéÑ£ÒÃ㇥‡ŽÈ¿ú¶ÊúÅ—ÒϾ·“îÜ©ýÍï÷¤ï¼£ýÙÏ‘¤ÞØÛÚ†ï›úéØûÃߪѮû‡õ»Ð÷Ö…ê¾Áí±Ô•žÅíåÔÞà +•Í­Ô„¢º„±ÕÑ•ª¨ÆÔÆ¢²ž•‰é¨ÈÂù‹”¥Ñ£´“¥Ù¨É‚ƒ·€ÅŨªÐÃñµÊêÑÖãŒòöÔö£ªÎÕƒ¨™Áíæ¸ê¦Ð·‹ú +ŠùÔ¯¡á• ‚´°è£ÁËŠúõԫЧꆵÚÔè¨ÑíÄ•‰•–«”ÛÐæÀ‰‹ÁÅÀ‘Ü…ðäãÁžë¦Ì馰¾€¾‰ºÄ‚ìÄÃ‹å” +•䑽„¤„ù¢À°·À¿†³•ËØº‹…㋘ý†ÓßàòÞ—ÆÞÁÈßø²×”ßúñîì€êÍ¢–ËÄ¢ÉÚš„á¤Â¹¡Ä ðù¯ÜÛÝ•¬¬È– +±—¥ËË’ÅŇÉ‚äþÞ²œ·§™•ÌÏö˦¦¤““’‰‰Éø¸äìÀ̲ºª™™‘،ˆ†¤ƒÇƒ’Éÿ¿Û¤¯ÏÒÛ«éãé‘ô÷˺º +˜¤’ööÉîÛ›¤µÕÒ܈¬éê’´¶Êàšš¤õõ’Ú¸ÚÉͤªÊøÒÙ©©¨”á•ÉÊË¥ÅÅ€’®×ÒÔ¤©Ž¨äçËòóž¥ÙÙ’¬¬É +âÆ†¤½Ý’šˆªÉÉ‘¤§ËÅž¿—¤¦Êžî½“ÄÇËââØ¤±±’¨¨É“§’ˆˆÉøÇ¸äáÃÉè¨ð¤¤ÄòïžäñîÝÉÀ€äæ¾Í‰¿¿ÄÏÏ +‹â뫹øÑòïþ¼äôéɉ¦“’£Ç¥‡ŽèÉŽœüù¥ïä÷¿—üú©ŠäçÎÉïþ£»Ù¾Ýò³ŸÉë¼°¶µÞôד²ö–šö ¬éš¾ÆãÑ +Ê´žÆã¥´ú³¡á¦šî¢¡â„õÑŸúž¨ÔÅ¢î™ê¹¨ÍÆÍªªÓÑ…ªœÔ׿£¢åÜ”‡• ´‚嵨ïÀ嫪»Ð³ÓƒÚžê†Ð +Æ¿Š†‰´Î£ˆéŽÍ‹èÞÆä³ŸÍ´‹Ð”¬Á³ŒÍò´–©Ñ¤Æã†šºô¨· Î„Úü‹ê¬¨¶£Ò™‰ò—Ê€’¸›¹°—–ËÐŽÌÙ°¤Ã— +ƒŠäè¸Ð½©ƒ¢–ëÑÆ‚Àü̈„÷ɱú“ËþؼӘ¹Š©•¯±¾‡£»°ãôÖßìÍâÝÇÙԚؤ’¯Ã­‰™Æ¬”Šˆ…‚±Ÿ¯ÞÝ +þ•¯¬ˆ——ÅìËËâÅÅñ‚øþÞ¼·§ûž•Ï̈§³§ÅÓÓâÉɇñÄ„øüܼඦž•ŒÏˆ‡‡ÅÃÃâýÁÁñÀ€˜ÇΓ÷õ‰ûûÅ +Œ½½âîîñ×·—¸³ÓÜÞ®¸îë“·¶ŠÛ²ÚÄÍÍâÆÆœñø¾Þ܌۫®©‘××É‹««Å••âñòòñ驸¤€ÄÜܬ®ª’¼—–ŠóóÅù +Æù✜ñö¶˜¸³Óœž®Î„Ë“¿ø¡ÎɈ‘§¥‰¹œñî‚øÙ³ñÓÇ§âØØñô´ø¸²Òüø±øñÑ£ñؘøÁ¾ƒñýûâààËñ½ûâ»÷Ä +•·ï‹ïÞ”ßå¿®¾úÕìë⫾øÑüîœÛøôéñ‰“âÂï¿•Ÿº¤þ­úëñ—ߊÿ½ÿûñ§ŸŠ÷íî”ÿæ·âíëÛÅAöÂÓÚà¶øÓÏÄ +õÚŸÞ½¶½¶ÏÑö•Úã£õ”Ú¯ õ˜ªÚî åŽÚ—‚Ñò€Í‘èñŽÄ󬚞¡ç‰ƒÆä´¦¢¸¡ƒÙ¨ÏÅÌÝêŠÐÛŒ¹šÒÔ—£ª’ +‡•µ¨îÂÍ›»êºÐß‹†¤´Ž£éœÍÓÊè™Åë¼Ú—§Ð¶Š¶Ú˜§´‰Ñ¦ÅÛºÑÚ”èաՃ̖­šõè²¢ÓÑŒ†«êí¨®ó Æ…ê ’ +Á®ò¸Ê᫆ŵˆæ‚˜ó¡Óφ¶ƒšÔ¨×’¡äÀþŒ²Ê؈£±–ᎃðƒ±ò‡Ë·°ÿ•³—°¨ýŠ“‡±ö•ý†¿ÅÀûèÿúËÞɾôâÝ +ÇÙÔšèíÍÄİ¢¡Ð¤ˆøüÑêªèå†Å´¼¬ÚÚ’Ä­®Š––Äó÷ó¢¹¹Ñì¬ÀèæÆ´½­š‘š’ÍΊ¦¦ÞÄã㢱±Ñƒè¨èäÄ´¼ +À¬šš’ŽŠð††Ä¼ž¨¯¶ÏÔÛ«êé‘Üõ÷‹ººÄÇ¢ŽŽÑÛ››¨µÕÔÒ¢êî–µµ‰ššžÄõõ¢ººÑŽÍ¨ºÚÔÕö¥ª¨•—‹ +ãÊÊÄ¥¥¢â„â‘—«ª¬”Ü•”ˆòòĹǹ¢ììÑÖ–˜¨£Ã”ž®ÊüÍ•¥¤ˆ’“ŽÅÏŸ‹’“ÅŒ‰‰¢øøÑÜœ¨¦Æ”•¥ƒŠŒ”½þ¬ú +ÁôÈ”–¦úð€À”’¢ŠŠ’Ü…†Šîܑݟ¥ºñÃôí÷šèêÕÑåËᢋ—ÄçÏŠÂÎ’¿®úýöÛÑÁƒ¢¯Ù¿–ýù¥èÏޞѧŸŠ¾ú +þÈôþû¢íÛ´ÅAòÂÚéç¶øÓÏÇÚ”öôîÂçÞô¤žÄçñôžÃÙ‡¯ºüÑ‘€¡Ž ô¼Àû£Å´Ç¢½–íñæèã ­™­©ÂèÍÀ˶Úò +¥ÐÜ€æ®šÊ­ÐØ††ŠÔ׳¡¾†õõ¨ëðÆý»š»ÑÔ»æÁ´Ž¢íÔ‚íÓèŸÃÇÜ¢º—ÑÉǧ¢¢ôÉЩÊçœÊôª§Ñ±öÚŒ +œè³¡Õ‚æ›Óšìèô¢ž¨¼ƒêଂ½‚áÖ²ØÊàâÂàЀݞ¶²¡Ó΀²•òäȆ¸ÄÔ‹¦â’‚ÇØý€¥ ¬„àΟ³»¾˜¼‡ñ㘠+¾¹ˆÁ½àíÂÅïßò§î¯½˜ø÷¶µÆü÷¡„ÂÆ àøüÄæõ•ÙÙá–Ç—™¥¥æñ‘øÙØàæç™¹¸¹æö–™™á¦§™©©æò÷’™˜àÆÇ™ +‘±±æô”™™žá†‡™¡¡æ‚ð™˜àø¼Ÿ¦¿Ÿéíåúöú˜î‹ãéì人˜öŽö¦µ•ééáïš›™¦¦¦±÷‘©¯çêê˜ýÚÚ¦ºš©ª +Øâª«™ŠŠ¦ã¬Œ©­åŠ‹„™®—©ªâŠÆŠ˜üü¦·—ûÉÉá²²˜ÌˆÌ¦½ÉËãâÞ¼àÒÒ˜¤Æ¤†Ãá’“™îçϘ§Ï™Ø¸Ø¦¦†‰Šâ +ូᢢ˜ðÆðæáæ´”ø‰‰á‚‚˜»¶÷™€€æÖ­ïÆßŸ¹ö¹¶ò…¹ü™¹ðɹû–¹õФ¹þœ¹ò„¹þøÙ¿ŸÙ·¿Ù³‡ùä“ +¿æ£˜÷ßçÚþùËæ·˜øÿåù‡ÿÝ¿’íØ†ïú©ØëûîšÞÀèÝžýè¹ûŠž³è¹„žÞëè¹îûèðŽÅ÷¸ºŸ ˜»†ÝñèÊÄ +ðײºÓÑ™¹Îìôä¡£€½íÜ´— ­œ‹­•è­ÆË­¿šëÑԈƖ¬´õ¢¥‡­¼å´£ãŒ“ëèšÁ×¼º—ÇÐ³ŠžúÖéЫƯ”½ë +•èÑ Çžÿºµèңˈèγº¬è³£³Õ–—š€Æ¿¸êᨅ­šÍ–ʘËᬞ‹í´ùМåÑõÔÈÉ“¡ÎÄÚ¼„бà¿Áò¸– + Ã±ÿ³·±ˆõ“—°ú†ÈÃDZ°Ÿý»³Ñý¡ºßøóþß‹ÿíÅ‹³å©µ¡À äó‡…««¯ÛÙ‘ø®¯‹—–„‹÷‹Â……áü¼Àðîθ»«œ +ᙑÎÏ‹§¦ß„““‰‰áƒø¸ðì̸º€ªœ™‘Ž‹ÿ‡†„ƒƒÂ´¡§ìï—ãööŠûú„ÝÇÝ®®áç§›°£ÃØÞ®ììí•¶´ˆ›› +™…ÍÍÂÆÆáŽÃ½°®ÎØÛ†«¬©‘ÖՉ䫫…••Âò¸òáé©°¤Ä€ØÜ¬¬ª’–œ–Šóó…ùù£ÂÜœáö¶°Œ«Ë˜‘¡ÌÏÆ—¦¦ŠÓÒ„ +ÿÉÉÂçÏ…œˆÄá‚°¾Þ˜˜—§Œ•ưNj££…Ÿ°‹Ÿ½’†…‰˜Ÿ¼Þ¿¯Œ¬Ž–Þ»§¼û¼×øû¶ðæÍŸ¡¿¿ÐÏÏøïåŠðÒ¥áù +“óÂ³ç„§Ï‚Š“ž¹¢ûüæ›áþýÂŽýû„»÷‹¿íùÄøÑÇÂ÷½ß—þò—·õÞþ‹»µÒ¾í𦟈µ÷«Áû˜¼ýàê‚ï¤ú¯ ÿ +Úªúï¢ÿ®úúÃП†¾ÇèÕ‹ÆßÓô¥¢¼·‰½©èÍÀØï¶úòÐÓˆÔËÑÕŽ¹®ªôÖ ³Ž€èïÂÛ³¾ÚÛÐÚ…ö¾ÄôŒ ó„Ýã +‹è™ÂÏœú—çзŒþ¾ú……藧φ՞œýªôëÐկşž½†ôÓ˜ÐãÁ—èŽô¸ÑŽ´ÂÑÕŒç“ì°ƒÖÁ܃㕌—åЕ⃋õ +Ê¡”ùçրɪÄÉà’ÁÿŠ•è¬½ÆÂ˜æÃ°ýÀ—“·±ö•Ü—°øÝ×úˆî½ûÐõ±ÚßÕý‹¬‰½»›¼Ú“ðù‚ÕÕÇÁÊŠàùÙ° +á´¤ØÜüÙ‚àþÞ°·§Û˜•Ì̈¦±§…ÓÓ‚ÉɇÁÄ„àüܰඦ˜•ŒŒÆˆ†‡…ÃÂýÁÁÁÀ€€Ç†“ô÷‹úû…Œ½½‚îîÁ× +·— ³ÓÐÑ¡˜èï—´µ‰Ú¼Ú„ÍÍ‚¦¦œÁ㣠¡ÁÐì×§¨­•ÔÔÆˆª«…ÕÕ‚ñŠŠÁù¹ ¬€ÌÐÒ¢¨®–Žð¹‚ÂÂÁÁ± ¯Ï›« +ƒÈÉ‘ä割¼³…éé‚´´›Á‹—‚””ÁŽÒ’€Ã‘¤¦‚Šž½“¼ýªÛˆ‹“ÄĈ¢‰¢„Ïžˆ¢¢ž„áႇ…¡¡‚ÁÐá °ÐðçŽ +ÛàöíÁ›‚ƒë×…þþ‚ßþßÁÅ‹‚ó礅çΈΞ”Àœ»¦¸üØðáÍ·‚ŸŸÁÞ½‚Ý»…Ÿÿæ¬øíï…ï½æ§øå¯…ÿõÈß‚¯¬åïƒ +¶·ý·Ûûî‚çÞÄÐŽŒíÁ±ÐŒÃÐÙªŒùâПƒŒ˜ŒÂàƒŒÆˆà°Šƒñ˜ÈÀÀ’†Þà º¼ìðòÀ«¸À¿—ý¥è¯¨Çß•úêÐÛ +뇞†ô´¡»˜…ÝíèìÀçì·ºûѽ„žÊÑô΢ï†ýƒóà­áà…ƒ¤‚Œ®áÐŒÁ†©†ä˜ÔâГÁŒè°àæ€Ïˆþ³ú¬Ÿèµ£Ç‰î— +²ºŽ¸Ûàèë­‰–†˜ê®à¨¾ŠÚòÌèÊ¡âÂÑ€Éõ¼È³¡ÎÇùÚ‹ˆ’°š€å¸¬Æá®‚°³°™„ñ€Œø¿üªùçéÑûŒÝ‡Ð± +ú‡­»ÐôæŸýõò¼ôâÝÙñÔšÿõ•¿²ÉÂßÞæ¯­ñä——ù‹‹üùÆùþÜœÿööØå³³üééþ‘Ô”ÿò’¿±ùÁŸŸçñäÇÇù££üá +ÆáþÐÿ𼿰Àçñøý†ýüÞÞþÏÿ¿»›ßÕÅïóìä÷ôðÛÛ™ùííüÖÖþü󳿩‰ßØùÈïèà××óäëëùµµüêðêþÕ•¿²’ +äßÞί«ã—Ÿ–ò‹‹ùܮ翨ˆßÐÀÏŸÏççåñóòŸøÙÙüÌÌþðÆ†¿­ŸšÉÊÏÉ᧧󥟿秦ò“¾’øññü¸¸ þ쬿ºšŸ +š™Éÿü˜Ÿ‘ÉÁç¿üÈüå‡„ðƒ¿‚øü€€Ëþ­Ûü›·ø¯×®ñ¯Þåß׾̿ø‘ÿî¶œÿôéþ‰“Ûü£Çù‡óüœàûøð÷ +ÿîåïÞÍÿøÒãþïÿËÿïî½þÿúßüÿÕú¯¾—Ö’·óÁ›þŠÖÞÅëèǘý’£‡È±úŠ£—±êã‡ÑÛ˜‰ÄȆýŒ„㤒£¹±˜ù†‘ç˜ +²ÎÁ𺆳°‡œ‹¡‚Œñ±†ÔŠÁòŒÖተ†ƒõ˜è„õ¯™¼Öô·£±¯“ýÝèíÁœ½Ã蟃È³˜ÜÀв†ù˜–â‚Ä„‘‰Æä˜ +ˆÑàÄ…‘Ƶ´˜ÖãØˆ¡ð³†­˜°çŠÀ¿‹½ÀܘÝðôÂގ놫ÌͰ¶Âß°í¶ª ®ƒ‡²”ò®ä…£äâ­‹ÂôíðÓ°òœ‹Ï +̰Ÿ‹ÙÈÌ…‚ãâ¾Æƒ±üø‹ƒþ軈žÚÓ輌¶¯ÿ®ÿâÞû»ôóëó½ÿÈ̼œ³óלܧõÑ÷¹ýº·ÏÛÝíî»ÝιÛâò–í…Û–¬ +…œóιç¤Â¥„¨Ñ¤ €Ñ‚Ô ‚ò岒˜ãɘ½ïõõš»Ö»Øóýïóþð¯·÷úü ³´ÐÿÉ賞ªýììçïû¡ü´­í¬¯Å» +´Ýó¼»Ýáõ³¹¬ÖÇÔ”ÙÃâñ˜ÍކÀñÌκ̦‡ƒÑè°˜œ““ÚŽšöèõ¬ã½ãŽÎ¡ÕºÔ´š‡ÚíЩöœ££Ž¥Ò¡Ôиäò‡Ìæ +ÁÊ££Ž‰Ùı¼ì ¨‡ÒØì É‡Èäð˜œôˆ…ŽŠ‡Àà ˆ‡¯ŸïèëóðøüŽ®×ÑÓãà¼ðœÝÝŽÎÎüÇLJ£½ÝуÚêèéñ´· +À»š›ŽñººÇí­£º¹ÚÑÕå¨¨ðƒ”—»ÊË¥Æ¥Ž¢¢ÇÁü£¿ß‘›ëÈÎöäæº²²˜œé鎔”Ç’Ò’£¡Á‘—Ç爉ñ¼ýê +£ˆŒô¼þ숌÷„†ºž¼°ð„‡»îÜñ‡Ü¼éˆŠòÜ×½ê¸ôÉñî÷œãôéÇñ㇎LJºûöï÷ìÙãøýâ‹ÇßÿîøóÓŸœ¸–ú +ì«„Âûõí熧µ‰ï°ñˆÂ“§±ñ™“·ð°ñŸ“ᘈ€‚‡º™ô†•èœÐ… ËÀÞ×€®¾žú¾¦èÛ ïÄø²·Æû±Þ‡ñª‚ºè†¡¥ +Ï¡¥ ‘À£Å±˜Œê…Ô£ÐÇ©¡ÒÁ½ ‰Ú³ôÖŒ»¨°¾‹ý¼è¥ÍЫ ×Àï€ÕÞ‚½ú¹ôô¯°þ’㯠ÇÛöµ´ï Ô†ÔÀ¨Þ¨ð +ÂچݩÞÉðӒ‹’χ±‚½€­‚›ýØÓëÅê·–»±·Ø†ù¦ÌÖã庆¶ŠÌ•ÀÀÜ€ÓŽŒ™Ðاׇ±¨Œ‘†ÃñŸÒÛ˜¾Œ¡Ó˜¼„ +ÍÁ·èû¼µÑýÏß‚ˆ÷ºÎæ·ÙìÖ«Ë÷Ô”Ýⱛͦö†±ÏÎÚÍÆ¦»Ñè·˜ìø““öš¶ëõËöññ»Îç×ÊêíšýìÌå®ÖÛÕªûè +¨Ý©´«”ö»¹Ü®“Ù¥Ò§ûȈݢ±ÊÛ©Ê®–Û—‡†ì¢‘ýðÉЮ”Ú‡†ìþ‚½¿ßÎçïÛûú켞ŸËµ÷öÚ¹œüû÷·½«ËÞ +ñÑáïï··µùÙÛÚìÍÍöñ¦¦ûý¾ñÞÞÛ믩±ä×ÕÙ««íåÇåö²²ûɉ‡½¸ØÞØè¯ž¨°çåÙóò™ìÙÙöÌÌûòúº½µÕžœ +øìÏÌ´ÇÇÛüããíÑÑö¨ö¨û“§öÇÙíááöûµƒ‡öû÷ì÷ÛîØïÞ´ß¿êî¿òÅþñ¢Ûýܹû©Óö¯ãÇí‡ÛÚž´ÿ÷ýÏ +þžûçŸÛÿþ®÷ûŸþäÿ¿«þû¯º–þ«Ò„Âû÷퓘羃é¨ÌçÙ¦¼¸é®Ì¡°ÂÅÀ˜ƒã¢Œ¤é°¾ÝŒòá–¬†±œÆª˜Ùëàè„¡•† +´Ž˜ºáèÅÄ Ÿ¦ˆÌŒ€ž˜„½„š‚Þ‚Õ½”ãòŒ«¡ÌÓÁ«†ÖƒÍЏ´†è¦±îƒÞ†úš“󬰬°Œã³º˜×á܄щ£‹†·ŒžÌ +´øÁïÀ¿‹ñÀŸôþèüŠêøÔØÕâÇ¢Ž¯”ž‰Ü”€ÜÃðŽâó€­ë„žõᥗšËÝØèÀÜ«¸æšá¯ƒµŠ±–òÌ–³¿‡Ç…ñ´è’¡ +“в‚²ÐÈ·î²û›¢ó˜¤¸Šâ»ðÿƒü‰ÉÖ—Àâ÷®Ù¬ÖÛÔ”ÝÍⱙͶ†žá™œ´™Ì¶“£Ñæ°Ø¦¦Øì´íÓëíãýã¶Î¦ÕÚ +Ü´šÛؘͭ۶©Ô¶ÑÑ›ÀÒéÓ¨ìò¹ôͦ³É¥¶‘‘›Ä⛞¶’єͬ¶¹ÙÄ¢Ûà Í’¨´ŒØ„‚ŒÛÿ¿ ìýøý¶žÏÆåÚ +ðúû휎­»÷ÛÖÕåëì´ßµ·ÛÚÚì­Ç­¶ææÛÓ“Ç­±ÑÖßï«ÿ«³ÕÔØª«˜íÕÕ¶ŠŠÛžù¹­´ÔÖÜÈ쫪²•”Øûòóí¹¹¶ì +ÈìÛÖ–­£Ã£––æËɱ¥â¥Ù’’ìññû¶ØØÛÓ§¶ñÈÈÛÄ„íѸ£ÛؘíáÃÛýû¶û÷íµ·ïÛîܰÝÕ»æ»òÅöá·‚íìÙÛ©Ó +¥¶ãÇì¿ýäÜ»ðÀöÝ÷¶È½ûìŸÿîûåøãÛ‡ŸØþ•û¯»öá׈Ÿ„÷èÚÏûê£æ¯à¾ˆó©¥˜¯Áü“Ìýš°áà¢Ø¤‚Á“‚¦ƒÌ®˜ +ä°¥àªÁԪⲓ­˜ìÁÇä—¦û°É§ƒ‰€É€Ó ”̤Œ”Œ’˜…¥°ÈáÐâ«…‰±ÐÚèõ—Ðë¡·‚æ°–á…Áã¬ÌÁó°­áò…“ +èëà¶ÀìÙóÆäó̾€éô¥Ì¯àÜ…á쵦ހ†ôðÛëðÆ‹×ãØŽÑÁ«Ä˹ފÈñÜ‚íŠÛ¨¤¶†±¦ÀªÁåž–û°ßƒ…™ö¸Úàë +€¥–½öÓ©œ¦Š¡Ï…¶ƒéê”¶å£ÂŒÈ¸¨û ïÂÜø‰ý§À»ˆ—ž¯Ð™èÞ›éëËàñÎ׬˜ÓÓÖ‹Å궄ۙƺ¹éµ›™¬Æ£Õàà +ß™˜°Ò´Õ¯Ç·ŽÛõº«”ÖëÕè¬ããŽÖµÚªÒÙÇêÇ­Ê¥Õ¡°ÛÊå̪֙•¨ÚÇÆ¬’‰õâøØÊÑÖ±Øðº´ä•‰¬ƒƒÖ¡Ðº°à +Ü•ˆ¬ýýÖ‚‡°öõÙù¼«ý—ëííµöôÎØ»»­ÝÝÖñÎÎëLJµ­ÇÍÚÚêíé± ¶µÙ››­ÆÖººëí­Çµ¦ÆÚÕå­ï¬´–—ÛËÊ +™¬¥¥Öââëòᡵ¿ßš—ŽçÍɱæåÙü³³­ééÖÔÈÔëò²µ©Éûšà‹³Æ•ÄØŸ¾µÆÆøÚ£¢¬ááÖýÐÐëÇÖàÞàëÝ»ÖÛ· +Ѭ·îدݳªÞ¾ì½ðÁúïö¬õäÉë±–ãÖŸþ²ž¸¾àÝ·ÏúÍ·ëÖÏ¿·þü±ëõƒ¬¸öóñ¯ˆï×µ…°µ—Óǰˆõ–Ó×°õ‡ +œÓ¡˜ŠÀÔŒ¹¦’±•†©ìÊÌå㪘Ó寘ª†¥ž–¦ºØÚàé„…ƒÐ‹—–¾Ì‚˜……°“°Ó°Ë½ÀÈÁÈÁŒâ¶Òɱ˜´°Ã¨‡á‚“ +¦˜¬°Ù°¹èæŽÌ‚ÌË¥°¼ƒå–ÍÎØœ°¸àñÃÇâÙ‹æ‡Ì´ëÌúàòÀÖÌàž¾ñìâêñꌯÕðˌ­‡ËЧЄ›”Öɼ“ +äâÅ€¥¾æ¹«˜åຓö¶´ÌµÁÜÉê֘ʡ¯†®Ÿ®ÍóŒ¦Á‘ˆÄ錆£°”‚¡Á»ÜÃßÙ©ôžÁ×Þ´‡ÎÚÿÏú’ؼ½Óµ‹Ṵ̀ +›–ÉÉ‹Éä±Èš­†ƒåâšÂÓ–½Þ²¾ÖîÑéØ´Ú‹ðÆã™›³¨Õ†–•ʲºêÑȪ­Š…Å®·™Èä–©Ô²²²â‘ȬÃÖˆÅ–’´ +­ˆÄ–ÁÁ‹ÐÈ虘°ˆ„–¡þþ‹ÁØøüÊ‹çáò­½§½–žž‹‡ã‡éê²ôöÚº¼º¬íí–ÖÖüËË‹¥¹ÙÒñØèéè°Ô×ÀÛêë­µµ– +ñêêË奥¢ÁÂÒÖæ©­µ˜”—ÛŠŠ¬…Æ…–üüËî®Ü¥»Û’•åÉȰ¤¥ÙÒÒž¬ÉÉ–ÄÄË’ü¼¥¶Ö’Ží‰Š²¼ùâ†ùüØ’žî‰ +‚‰±¼øà‰Ž×¶Ü¹ã¹õ˨’”ä¹úÕòïé’åüù˙Ƴ–“§­ÇøÚ޲üðƒªåß¾Ë·ßØþ¾ûÌòñÇ–ô¾°„àÚ¯Ùö¡ Þ«ëŸ +ËÁþ½ì§à¿šˆû؃á釽Šö¸Ø“¦áÏ€½—ö¹ØÊá«„­–¶ÆØÞ®•°õÃÖ‹ÛŸÆìý°Šá•Á’ª†Õ‚«”ÓÄòÌâÊ‹ +І–¬ã°ÓøàŒàŒ˜œÄÑ䔘»Ì³°‘Ìãê‰Ö•ØÍ×àۀ틶ÞíØžÃö‚ÖŸ—°¾ÂÔ®¬Î¾˜ß€¦áŠ·ÂçÀëš»ÿãðêàÑÀ­ +³ÆóÑì˱¥ãņ„ë⬊尤Ä¿æú¢°Ó‹Ç·¬Ë°¼Ý„›á¬Œ…݉ñÒèŠÃ¡Êå÷°äɃÄÁœ…Ѹ®†‚Á¿îŬðΠãû´ü +ú–¸ë–Àâ‹®™™Æ¼¹éæ¶™ÌÆ£‹Á¶àž˜°Ó´Ù¯·›õº©³ÖëÖèÌãÜãæµÚ¬Ò™®Õ£æÑѳҨéÖ¨Ìò¹Ù¸¦³Ë¥æ‘‘ +Á³Äâžž¶‹ÇÅæ¡¡³ÉšœÅ¢óà Ù¨ˆ´Œ˜…‚óÖÿ¿™ Ìü¾ó™Ç³ó¹æÞ¸Þóϙñ¤÷÷›»»ÍÆæööóÛ›Ÿ¹¥ÅÜÜìî +ðê²·´˜ëë™Íõõæššóžõµ¹ªÊÜÑðᮯ·—–šäËÊÌÅÅæÂÈÂóþ¾¹¯Ï›œ“ãÎʲçþæšÓÓÍ©©£æ””óÒ’¹â¡Áœ—玉 +°±¿ýꎌ´ÄÇĘŸ½²‡ó…™ÃÂÌ÷ï·›ïݳ߹ãõ¾ùÓüýºùíêÕó¥ËæóÛçÍçΘϜÀ°Ÿ½ê¾ôÈÛüÃæ½ûÍÙßüãþì³ó +µÇŸ™¿øÀœÑˆëÁˆˆÿ÷®¾¿úÿ¬Þù©…ŸàæëÌœëÂÌéÌÜÁôÀí̿䈧£±€éÔ̸çẟ͘Ïõ—㺚Óõ˜²îÆô›¦»° +ƒÝƒéžœ„œ¬ƒðˆà˜‚ãà˜Ž©œòØ•û°«á×À¦ƒ”ÍÛ„¬†Øâ͘â°å†Å²Š‹ƒÓ³°®ËÀ¶Œûªœë¼ðìÂá„Ã…Ç‹¸¼ðøá +—ßíµ¬ï°ÇåÇÛ¿Î³ÞØ°øí®¯Š¦ðÒ—º¼Ñ×àÛ§’›êò¬É±ºŒå䡬а¿€ÙŸ·×Ń­‡Ó¤ÝàÚàêÆÄþ½ôÕЖ³» +Ž–£ùçá¤è•Ô‚Èè¶Ø©“øˆÞíôÜÊÁçé´žÂӧרû ÝØ´ß‚‹÷ºÆÌ€Î²¦“ã´²°†ƒ³±Áд‹ÞÏŒ³º†£Õ²š³ +޶ƨՌÊÅ£ŒŽ²Ê¥£Ð°ò¹£“±ÒÈ©³²ÂȤÌÑð°ÃÑŒØÌ°Œ±¤ÉˆÄƒÌà £”²ƒºƒŒÀÀô÷³Ž„ÁðùÌߟ›Ãå²½½ÌÏ +¶Ãá°ÝÝÌü×—ÓÑÁ´·À³ííÌë«ÓãÜÌ´µ±àÌý½Ó×ÇÔÖ²ÕÕÌÕ•œÓÙÉ”—³åÀåÌɉÓÜÌ€”–²……ÌÞŽž“›Ëäç³ +àÙÙÌÆ†“–·Æ¤¦²ÉÉÌð⢓ŸÏÄÆ†²ÑÑÌÔ”“ò™É¼þÌ„‡þ³¡¡ÌÇÌÿýûÌÝ»Ìí÷ÛÌ›ÌõëûÌ•«ÌÅ‹Ìý¹óÌéÓ̉ +¶“Ì‘£Ì¿ú²ßÿÏìÝËÚüýµóÙçÌÐÇŸ±ÿü£ó·ßþÛ¯»ö”îñ¿º–àüëåÿÐü¿¹öÖ‘æöâîˆæµÎáîºæîâÀ®”óϰ—Ë +–Υ㮇–󅘫ÅÜ¥•›½ŸëÄÜ‹¸æ»°ÛÙÞ³Ìò±«Àì ÔæÉÌÒ˜Á±¬Œ³Ę̂°ò³†™¦õ˜‡žÀ´‘Ž“œÚŒì–اೠ+ÉÁ¶ûœœ‹˜ÞÁÌšæ¶Æ°»…Ù—æÝ»˜õàÖ‹™×˜ÙÅ´Ž¿«ì€þ©ø¬µØå°ã‚׈•Ï„Üú¸ôðÉŽáÓ…õ¥ž‹É°²‚¥Š‹ +â¤æ†±­€øë¯ÌݘìÀ¡…ô£ôµÆ˜«Äè©”…Óæà¸­ð꜌Åÿ“ô…û¢÷®º®£íΜš þ¯ª†ƒºäý‰¬ÞéšÉèä± + ˜Ì““¦š¶¯éõ¦ññ“ÎÂçÒêÙ´šÓ«Ø˜É­¶©Ô‹¦ÑÑ“ÒéÒˆ¨Ìò¹É¦³®É¥¦‘‘“Ä âšž¶Ñ”ÉЬ¶™ÈÒ„¤’™†‡Í +É¡éàÀ¤˜ãúûÍ„áâóàÍýý¦®×ÔÛëêé±ñ¸ã¦îîÓ×—©£ÃÔÞîê뎳µ¶šÚÚÌŒÍÍ¦ÆÆÓé®ÎÔÛ룪©±ÕÕ™ª +°«Í••¦²²¼Óé©©¸ØÔàÔ䪬´åçÁ›òó͹¹¦‘¬¬Ó榩½‡Ý”šêÊɱ„¥¥™’’ÌñÆñ¦ØØÓô´ü©ªÊôä‰é‘ñãÓø¸©¤ +ÏÄô੸ØÞô÷®éÖ­ÓÕ›¦ë×Ì—¢¯›®Þ´»èçºýÚôü¸Ûéȑӿšï¾ÿÞ´÷¯éËë¯ÍŸþêú•è£ÓŸÿ芳ĵ¬„Äûó +ñíÓ¬þ…ãŽØ¸ˆ…›Øˆ±ÆÂ¸–¢°ƒ…”¬äâ¡ ‹ÅبÇÂüµ–ê±Ð„…¶¬ô⡇‹à¼¬Ø˜À‚ˆˆ‹âÌ˰¯ëż‚óªÌ +¬áÞ‹ùñÌÍ®àΈ¹É̲›˜µàÖŠ™›¼æœ˜žÁô¼ºæ–°»Š¹õùÌïâÞ‰ù罘ÿù—˜ÿû…ù̽Æìš›Ì€Ó€ƒïØìøíÅŽ…¯ +Θ¼œÄ‹£ž€ÏàûœÛÚìÉŒáÍ…Õ…–¥¥Ø”àÎŒ™†‘»ØÚ‰Øø®ìòÆØ‰ºÍãÍÐÔÃÕÍïּȊ Éƒä¸“ƒ©ÄƒðŸ…ƒÑ +þƒ­—Ñ𜶵ߣ¼ ¶¿Ö—Àâ®™ü†ãÄ„‘¦ºÙôúãø¸Ñé§³êµÆÆ°¸¶æÔ«ª©•ñô”Å©´Øª”ƹܨ“º™¥ÒãÈˆÑ +À¢±Ž›©Ê¸¨–›‡†Œ¤¼é”‰ŒƒƒÆƒ¡Ð¸°à”ˆ×ŒýýÆ‚°ò¹ùÆžÏÈåš„ûû½½ÆŽ·ÇØÝíì겸ööšÛÛíÆíÆÖÖãË‹ +Ÿ±¹ÙØØèìŒè°Ö×›ë뙵µÆêêãžå¥±¢ÂØÞ°î¬­µ–”˜ÿ‹‹……ƂȂãÞž±·×›˜íÌÌ´æüä˜ÓÒŒ©©£Æääã⢱ +â¾Þ˜—猉°±¾ýꌌ´ÀÆÄ˜Ÿ½²†‘…™ÃÂŒž¶˜ïݳ޹ãżõ˘”ä¼úöÍøù²ñÂÞ…ãÙ³ÆÓ§‡ŒÇ›Ÿ¶øž¼èÜ¿ßø +Ÿí·Æ¯¾²þ¿ú©ñ£Œÿ“ü£±×ªþïõ·¯üÒŽËßâù –”Ïáù²–ïá…ù–Ÿã¹š“ˉØÎÃò¶·–ó±Ü‚努¬×à¹Ë­ +¤ØîÇò·–úÍÙ„Ä’€ËƒìØšÂÒ°–Þ®ªò¬âɹ¥­–ƱȆãрœ–™´¬Ø°àÅ‚óŽÌÏàî–µ³‹˜ÛÆü³ ¬ìàñ‹‹® +¾¬¹±äÁ’—¹‹»ØÜÅ‚õóþ̳ðÏïÀçÀ®¯¬ÕðÚàáà¶ÁÞå€“Ææ¸Öµø¦ÆÊ¨–›å˜ÿ»´ŽãÄúˆ¶Á̉ÀÍðáêÅÄ·ô +—íжÀÝ€åØä•”ÀœÑ¶†ÒÀ¤‰‚›Îãô¼ÂÀë­´ÞÆí°©ÔžÄÉ—¨»øÝ¯êÆú’öؼӵÃÄ„“¦ú½áü—Ü Ó™´Ú– +ÃÆ°¶æÐ«äª•áôÔ Ôš”ŠƒÜîãɌҩËȈÁ¢±Œ›â¨Ê –›††ÐŒ¤é‰Œƒƒ†¡Ð°°à؈Œýý†‚†°ôõ™ø¼ƒ +í—ëèíµôôà˜¸œÃ÷·¡«ËÐÙéè´µ™ÚÛŒ­­†ææÃ㣡¡ÁÐßïÛ¨«³ÔÔ˜ª±«ÕÕ†ŠŠ¼Ãù¹¡¬ÌЀÒ⨮¶”• +𙊊Œùù†‘ÜÜÃÎŽ¡«‡Ë™éÈÏ·ƒ¤¦šÒÒŒÉÆÉ†„„Ãü¼Ä¡¶ÖíˆÁв¼ùâøü؞¨¼üè¸ÿßðïïžáöíÃÍ +Ï›†ë×ׯš®Ý²œ¿ïô¸óÆðò¤áýرÃáÆƒì‡û÷›¾ý×ÖðÕ׆ÿþßÓðᇆ¿üÕÁˆë­ˆˆ¿÷äÚŸ±º‡É«¿áõ¬Ö¯ +¢âõŽÖÃØæ¦«±ØÍÂêèºÖó°ÚÈÖûʯֱŅ«‰ØíÅê§Öü¹Øå±¹õÕè¶™±ªÆª‚„«²öéÙÑÄáŃ•Öô˜Ø±àÅ„•† +Ы–¬Û±ìÇÕò´–æ°´‡Åù¬®âñ…¸ËëØÞIJ“Ž«Ï±ò‚«¯“±òŠ«»ØþÃå·Ø‚–á÷ŸÇ›¹¼žÁ¥Î´¼öø¬ø’áÁó†Û¦ì +þ™°¡ÇšŽý™Ëª¬¨°§ãô„ö±›ª¸±à’€‡´½‡ºÎŒµâÕ´‘òºŒÔ±Äç”ȈóÐÁŸŽÞ’úâÑáù„í¡èºƒ÷º«¨º‹ÒŸ +òи‡¹¿¼©³Íú’ؼӵ¢Ú¯ç™Ÿ§õŒºÚ«¥µšúêìŒÖ«é•ŠÄåô”Öªé…÷‚–Ë陌–ÆÊé‘‘Ú¢¡»‡‡éŠ¢Åâ„ú舦ÉÚ¤ +˜â™œ¤…ÂÚî  ûûé‚ ýùüº¯æñ¼è®—îí¥ûøú莇îî¦ï»ºèÎκ½Éîë£ÛÛé––º¹™îêÙ¢›šèúúºÿ®Ž®­¥«« +»éªªº²’®¾¯§ËÊèÒÒ§º¸˜®ª¢‹Æ‹éüüº¯ÿÎÉ¡³³éÌÈ̺£ƒÎË£ŒÓÒèä亱ÿ‘ާãâ蘘úéÓº²Ï’Žˆ Ÿ½¢ +ïÃÂèúÁ؃º¸˜¾û—í¾ý›¾ñƒ¾¶þ¾ò…¾ôɉ¾ÿž¾ó†ä¾ù’¾öŒþÍé§úÀúÿúþúßÿ¢¿ü—’þç¿é¿Ç¤ÿð‡º× +¼øˆˆ÷äÚÇžØß‹õ£Ø¿÷õëØ¿‡µ‚°¬Å⭎댩ØËÄÚžû¤€ì­œëÕØó«ÇÚ³ÖÚ°³ÖÅÖæ¬õá±­Ÿë¬‘ØË£°¶‚µ¹Ö +žÆ±¦Æš–ëÜï…˜Àš‘ÏΘ¼ýÃúæÅ´³»žÍãÙ¬¾Öç°º€•ÅÁ¬¬ãù•«ëŽØÝ³í¼ó¦ã̓µ¯Ööûð쵞ù°êíÇŠ°Œ·‹ð +Эà÷ޝæñÈòš¯ìøîÅá¶…ÛŒ¶Œì¥ÏÙÕãÙ‹Å¢µæÆ±£‡ã „ÖŠ–’“š˜ûÁ÷±Õ­¥š®¶ìÓÑŒÌ齆«±ÔŽÁ¢ö´ëߦ +´úÓЕ‡¶Èî´‡¡þžª¯›£ì¼ŠŽ¢÷ø¯²þù‘õꥰø§ëúñÚñ½Î§×êõÜšËØ˜Þ­ÛÖ«ÔúÑѽ’ҩרôò¹­‹Ì¦—Êõ£ +Ä£ú‰Ä¿¼¬•§¨½Ø¬Ÿš§Ò“¤Þ¤ÒöŽê…ÂýÀ€¼Þ Ð÷÷ë‰þÂÏçëûúôþ¼žžËÕ÷öéêûúôœŽ¾ý»ÛßÕ¥ïìÿÔ··ëÛÚô +­­ú––ýó÷³¾©Éߨ¨¿¯¯××Õéë²ëõµµúªªœý奾¢ÂßòÖ¦¯­Õ—”ÿ苊ô……ú‘‚‚ýÞž¾·þן­ÏÊÒüçäèÓÓõ© +Ç©ú””ýҒྡÁŸŸ¯óÕÇÇ룢ÍôϞ裢ô½žéÃÂô¡ò¡ú‡ô÷îÿéïÜÑߺ¥ñ¿ñÃÿíšþ½Ê•ýÅ‹úó×çô§ÏëÏœ +¹ÐŸ½ªÿé§ûýƒúï¾Óëÿëßú¯¿ÔïÿóŸúÿ¦ûÿßôÿõ¿£þ²ë¤‚â½Ó¹ö‰¶÷ã󸶯âó†¶Ñï㳜›Ï±†™ÍÔìæá +ü³Ÿ›Åì©Ë¡Íšì¶à³…›ØìƦ—Ñ›ü슰¹ˆ´Í±›íßâÂÕ¶´Ø½ÐáƒÆÆÛ¥€ç’›æìÌáÓÆ‡Öç°–¾‡õ…¬¯á +¨í™ë«øöŒ½Ï¶°æÄúóϬ¿ÀÆËì¼‹ÂÆ®ÖýØÿõƒµà™ü«ðÆ­ãõ’ö–àƒƒç†î‡Ü춸§°éÆú†¤ž½Ý¼é¬Ýé°¯Á¬ŠÓ +¾ŠØ¤˜’€‘å³Ûë“‚Œó‹¡åÂÝ凄䭴À܃øÑ…„Åàçƒ÷›…îÔ´Ç£ù婚ÂÙΗÁå·Ðü‘ùÇ“‘¹Ÿ©¿ÜÀ³Âú’ؼӵ +ÇÝÛÐêõš¨îì̧ÖëÔÖªÝ訋ҩӨôò¹Î¦ÝÓÉ¥º‘‘²Ä²¼¬£¨åج›šÒ‘ɤΤҎê„ÂÝÀ€Î ÏÐõ÷ëˆÂÇ +Ïçëúúô¼ž¿ŽËÕõöêú¸úôœŽ®»Ûÿ×Õ¥ëìÔµï·ëÚÚô­­ãº––Ýó³®ý©Éר¨«¯×ÕÕéêëõŒµµºêêÝåÇ¥®¢Â×Þ® +ü«­Õ•”芽‹õ……º‚‚ÄÝþ¾®·×—Ÿ“£ËÊÒåæÇêÒÓõé麑””Ýò²®±øÑ—Ÿ¯‹‹Ó¯ÅÄèž¾ÕÅ–Æêž¼Ñ½þù¬‹×…†ê +üž¾ÔÝ¿¯»ø÷Ï÷û¶îæ¸ÍÝÐîêÕÝå˺‹—ô÷çÎéΟÖ¸¡»òÄ÷è§î‡Ÿôßý÷§Û³Ç÷å—¹ºÏ¾Ñýí梁¿üÁ—ˆë +¤Š„Äûòíó¤¸Àù’Îˈìëà烸Ÿ¡Ã™ç¢œé„ðæÃـ牻œ•ðÖÂÙˆÌ竜쥽ѓ‡§ç€œà¢¸©¸Çà”‹³™÷§šÎ­ +“œãðÎÀéâ¾—ž­·ËˆÛŽìÍà뎴ۋØÚÂæŠ¼¶×±¹†õ ììâã››î¼ìù°åÅ֎ɶÞãë¶ýÍØ€Öñ毎ױ»‚×Ëø +ù€—óø¾ƒÌí‡û®›–¬€±Øµáé‚‹çã˜ÓâÚÍîä¶ÌÉញ©‚Á„ý€´„µÔ¼ö”‚¼“棭 š¡ªÅÄÀ¥ˆ’ð‹ÀÁÉÆÇšÚ’Ñ +ޚǨø€ý’ÛÈ¿„¬“œÈ½€„σñØÍ—ؼӵ­òÆ£›ÓªÕĬª•öôÔ«ÐÔꕊ­ÜÎꢓé¥ÒíȉˆÖ¢ÑŽëà©Ê«–뇆 +•´¤©•‰Ø†Š‡µÂ¡öàÀ¸«èûûµ„¡åóµýýÚŒžÏËåêûûÁµ½½ÚŽÇÛŸÝ­íêÒöôÎèÛÛµííÚñÖÖíË‹¶¹ÎÙÛÔ¤íìÔ +ûÖ×ëë괵ǵښšíõµ£¶²ÒÛÑ¡­Ž¯×–•éËÊŸ´ÅÅÚ¢¢íâÁ¶¿ß›—§ÍÉÑæçëä³³µ™™Ú´ˆ´íꪶ¹Ùç›”¤ÍÈÐÆ +ñÅéããµÑÑ£Ú¨¨í䤶œ¢Âûè‘¶¬¨Ì›’¢ýðÀŒ›œ¬½û×ûïû¶öÆíõ·ëÚ«×µ—®Øé¯ÜО½«ð½õÊûü¸ö­È‘í¡ÃÚŸ +þþÐîۧݳ–ÇûÅ—ÚϾ÷ÑþíïÚßÿÄÞ›ˆëº„ÄÔûòí˸þ„±ë´Ü×ີ×ø¢àŠáýûªºÒáÊõ«®Ò¸ªØÕ¶‚®¦öœ¦ +õ«“®ž¸úàƒê‡Ëˆ—‰—ÛÅÖí¸äð•ÂµÆæáÝú¼¶íᚄˌñ×”Üö¸¦áךÅö¼¶—±§½ŒíÕì¯áäûÎ͸·°—å‚ó…¶ßâ +¹û•Ü»Øöá©Û§°…ÿ¦¶üëØÝÃΪ׼Ëð¬Â½ÏÓ¾“óš›ö¬œÍáÕŒåɶ„³§ç÷˜œî㰎¢Ǥ ”†Š´‰ºãý˜íƒ¼‡ +Σ ÚÀ¶±œ›ú«À«ÅðÏ¡ºóÐšŽÆ¤ÔÆ ²‚¡¥Ñð›Ù×Éöš‰¿¢úÉËÀÜÓ†–ïÐôͳ¶¦Ñ«Äµª•æôÔ£¢Ô²¨”š¹Ü +꣓é¤ÒÍÈÁˆÆ¢á™žÖ’ДƬ֌€éÈÒ£’醈‡µÂ¡æàÀ˜£èúûµ„‡¡áóµýý¬þ¼ž†ËÕôöà긜Í÷·¦ý«ËÓÙ©éè +·Ð´·ëÚÚ´­­š––Íó÷³¦©ÉÓØ¨Ÿ©¯×ÔÕéê°ëµµµšêêœÍÕ•¦¢ÂÓòÞ®©«Ó”–ÆêŠ‹µÅÅš‘ÂÂÍþ¾¦¯þÏ“›«ÉÎÖ +Àäåé²²´éÇéšÔÔÍÊŠø¦©É“˜¨‰×ÄÅéâ┴ϟꢢµâϞ螿ք‡ëÂõŸþêîß×Ü»§ñ¹óÇóë–æ­ÆÍµëš« +ä×´—®éΟ‹×œ¹£¹ùÒÞóì˜æðáÍÙ¿ê¾ÿÞ³ŽïŸæ›ï´ß®ü¡ùä“Íßßÿªùýïµ³¸Æ  Þ“ë“ßÀýˆî³ð–ß…ûŽÜ¡ð +Ò¿»–îä¸Þ³àÎ…»ˆîþ²¸«à®‡»ú™î¶¸»àîŽåй…ð©Â½„÷°ÜÒù¸•ð«àÖÀ½Ž··‘îè†î‹ÜÖöžÏÏýöÎïŽî +Û·ª¬Ã½Š÷Þšž¯ãù¦ž²»ñü›®çð‹ýû½÷·øŽë¸€í¼ñâõ¬¦öÖá݃笕¯–áÚ„óÊŽ›ïïÆìÞÓàŠ…ÍñÎÈ›±ËÃ±Ž› +À†–•˜…ÛŒ ÉãüˆšÁ™¨„Ðô±çØ»‡»°Ô†Áæô×£¯Š½åèªâûÛ¶å‘ ®™Õ±¨ýÛ‚ÂäÜÁú”ÕöæÕÌ¡Äôü“ˆëšÀâ +箩ժõèʨ‹Ò©Ö¨ÔÂò¹Ú¦ÓË¥¬££ê‰Ä½Ö¼¬¦¨µØ¬¨žšÒ“¤‹ÈᤞœÔ‹…êõµÀ îïÜד„šÏ×÷ãõ©ù¼µ—« +»îíÕ÷ô¨¹¸œõ÷·º«ËßÝÙ©îèзÿ·«ÛÚÔ­­ãê––õó³ºý©ÉÝØ¨®¯Î××Õ©ëëÕŒµµêêêõÕÇ•º¢ÂÝÞ®¸®«Ó—–ªË +²ÊÔÅÅêÂÂÄõÁº¯Ï›«ÎÉÑçåù©³³Õééê‘´´õÊŠº¹ŽÙ˜¨ÎÈÐçÇÅ©ããÕÑÇÑꨨõ䤸º¢Âý葺Ь̒¢þð +˜Àœ¬¾ûמýû¶úæÍõîÐúÚµõå÷Ëê‹—ÕçÎשϜџ¼©ð¾öÌýø°úýàÁõ÷ß«÷ùîÕÿóúóÿÏÕÿø‡ú¯¼ÿÕÿþ÷êÿ +óû·ßöÍ€ÿøÿݵŸ“¥ž½ì ÀÏÙ¦ø®Áó—žÐÜø¢á‰ƒ§™¼íœìɃ§ˆ¹žòøªá©ç›ûæøÚÙÆƒÙžÞøøðˆà²‘Á£æëì½ +ü²ø”ð¨áх³Îî³ṳ̂ìÞÞ³…ñžéøæá™‡ä牞•øžÁ…³ŽÏ¦¼Îøç¶ñâ¹Þ¸ÁÑÎü…Ï®Øé‘½þ¼€ÜðÒ¿‡ï›»Î¼ +×ÚÄËõ¼ø†µç«ØÞÂÖ¼”¶æ±¶•›ï–¦°ÀàÖÄ®î˜ÛƱ¥…Ë£†É‰‰™ÆŽ¥Ðˆ¡–Á©ã€ŒÉ¯†ºâ±ØŽÁ³úê­ÑÛ®ò´— +¹¡¹õ™¨Ê€ÆÙœ»†¤·È”™÷‘ô±€ç‘ñ˜¡ûðÙç—Ò‘¬¯ñÅ»ÝÓŽªõ”ʕ¡’˨Ù䲕Ԫš°™Ñɤªááü•űˆÅª¡ +È¡•ɪĢՃà Ê¨ÔŒ™¨„‚–þþ•ÆÁ¨øüÕߟóŠÇÓñ¹ªÞ¸ÞÕÏŠÃÑÜõ÷«ººÔÇªŽŽÕû»»ª­ÍÕÚªêðéѵ·«šš +žÔªúúՎݪ¶ÖÕÓÇ£ª®ÖÕÕ©øª«Õå媲¸²Õ驪¤Ä„ÕÔ¤ª¬Ô•òóÕ¹¹£ªœœÕö¶ªœ³Ó•‘¡Ê˾ӥ¦ª’“Õ +ŒÉɪ„„ÕüÁ¼ª¶Ö•“£¢úúÔ•™©úòÄõø±ª¼ˆÜ•šªŠ‰ÑĽø ŠŽÖÝǽ«ºýÛõã÷†êúõÕիǪ˗՗®¨«ÎÓ¾­º +øñÂõô¨ê§ñŸÔ‡ªöï¾×íÝ«úúë¿Õ矫þñýÕßÿªúÝï¾Ô¸¶„€øÖŸ®ý•Þïἂï¹ö¨ Õ÷ž¼áðÆÂð›‡ïм™ð +ûæ±Í„½åðÇÖÀۀúðöÃË…—Ê¢øÅ—ðŽÀ«‡÷”äÞµ¼ÚøõðêšàµÁë†×Êæè½³ìÒûÀÞ…ú×­Ù¥Ê»ï– +·¼Ûð¾‡×¯‡ìÜöø¾ßÃûó¯ÿ’¼þÞ¸ñú¹Þö¶Ùïõì°“‹¡ë•ÎåìЮà펫³ì†žÂ‚•óæÌÁ›à·àʳ𖦵Œ£ÐË +¥¡ÚŒ¥ˆÉ²ÈøóÙ՞ÂŽðÛÐ÷ۀ—£µ¹˜õù¨ÎÄÜùŠŠâ›‰©Œ°¤ßÃìõì¼¹‡Ð£¸ûέ®ý±íÖŸ—À⮩• +ªŠ¥Ü΢“©¥ÒåȈҢ á™žÖÒ”Ò€¬ÖŽ©ÉÒÄ©’±ŒŽª…ŽÂåÀ€Ò Ðãö÷«‰ÂÉçî«ûú”¼ž’íËåéíÕöôਹœå÷·² +ý«ËÙÙ©ìèöж·«ÛÚ”­­Ê––åó÷³²±ÑÙР›¬¯×ÖÕ©ë²ë•µµÊêêœåÕ•²²ÒÙâÞ®¬«Ó––øªËÊ”ÅÅÊ‘ÂÂåÁ²¿ +¾ß™›«ÌÉѸæç«³²”™Æ™Êôôåꪸ²¥Å™”¤ÌìÌÔÆÇ«ãâ™”±±Êèèå‚Ô”²²Ò™‘Å¡üôÈ™–¦àŒÕ¾ü¨¼øÿßùïžòÎ +–å­ÛÊ›·—”ׯ«¯Üц޺¤¼ÿÞùïö¬òÔ©å‰Ö“ʣǕ¿ýѤ¼ðÀ¹ÿ¿ËòÛï•ßÿ­ûüì³åßÿ®ûüËß”¿ûIJ׶ï +Ûõ±»—»ÒDZûž»ÁØ×½‡Ý°ìƱò“•öÓ°›…åÝüì–ã·‚¼í¨¼Û€Ý–™ìöà—ƒÝ®äö‰ìŽà—Äö®…Ý‘ìʱö»ŠÝ±ìê° +ªÃ³…‹»“ìÇ…ÇŽ•»ŽìáÌàçž»‹Ø¶ÙÆÎ³öŽð‹çíý¡“»®¿ì¸±ãÁŽ—Ä»ï¯ç—»¾³Ÿ¿€Þá—µ¯½Øõã•‹ê¯ø±‰×Û +ëÇ»çØÜÆúÆ¢žÍãù†‹¢ŽÌÙ±ããõ’­·´Ó˜Ô©Á°†ý¨´òûŒà”‚œÄ…ȀĄÄÜŒÖðÀ…ݘìûæ–Š´’”£¦ŸåÙ¨ +àÎÁÞ¼²£–’†¸ûˆŒÂµØùܽŠëûêñî—úƲ¾Ä„–ïôÍ¡—¨«ä²…Ôª˜ä™á‘È”ÃÃúŠŠÒˆÅŠ¡Ô¡–’ԈĊ•ÁÁ…Ш˜˜ +°Ðˆ„¬ýýн‚Ððùо¾Î…§àò•½ç½Šžž…‡£ƒèîÖôõ©º°»•ŠööÜÅÛ›¢µÕуҢèîÖ´µÀ©š›•ŠñúúÅÝ¢¶ +¸ÖÑÓ£¨®ÖÀÔÕ©ª«•åÇ劲²Åé©£¢¤ÄÑܬ¨à¬Ô””¨òó˜•ùùŠœœÅâö¶¢«Ë‘‘±¡ÈÏפ¥©øÒÒ”ÉɊĈÄÅ‚¢¾Þ +œ‘›«ˆŽÖ¼ŽýªˆŒÔ¼ùÅ¢øüØ‘ž®˜ˆÕ„„¨žà¼Ð„‡«îÞžÕܾ­¸ùÓŒ‘”¤¸öÍñïåŠââÅÅù£óŠ³ç”§ÎÂ©ŽŸ×œ¹¢ +ð¸ôÈñà€âë»ï”ßþ«øÕê«Å矩þõþ÷Åßþ¢ø»Ýï”¸æÆªÀ¼×¾‚üÇá»ß¼üÁð…×°…ß¼ü©ìô°¥ß¾»ŽÂ× +ðßüðµçÂ×ÁöãôñÕà£à“ÂÇÂÆÇ±ÍˆüòøŠÆá›ƒÏ‡ŸªŸ‘¾É¶øÉÑç㫽ü³¯ðÍ÷ˆßŠ–üÏØä‡ï‹¯¯·ñú×ÿë +·¼Æë·ÿ·—×ñòí½æ¶žžï±©”­çضßÁ³Å¬Ìãöñ–­À™±Á‚áõ’–£¦¸é˜ô Ç ›«Å˜œ££Ó€˜¡Á‰Á’˜Ó౫¹à +‡´¢£‘­µèá¨À͉ªòÙ¸ÉÖù©ÈŒÇÌÊ”âÑ•Œµ° Ü»ëǸñü–қëËàñÎפäÒ©ìä„Å’¢‘˨ʤ¦–³ŒÉÈ +ˆÒ¦’Ɇ‡åœÂ¡ËÀ€Ì Ïõ÷ËˆÂÆçËúú伞ú‹—«ëí•õÃôȸœÙ÷·Û¬«ËÖÙ©ëÿèµ·ËÚÚžä­­²––Ùî󳬩ÉÖØ +ø¨ëèÕ×Ëûêêäµµ²š¸šÙõµ¬ªÊàÖÑ¡«¯—•ƒ•ÉÊË奥ã²ââÙÑ‘¬í À–Ÿ¯ËË¿“åæÊ²³åŒÙÙ²ÌÌÙú±º¬­Í–šª +¤ËΖ¥¥É’¼’äññ²¸¸œÙÌŒìéÓÙŽÔ”ìÉ“ÙÄÇ„ìÑ£ÙØ˜ø¬´Ôöð¡ì­þýÙ½û²»Ô÷ä·îÉîܕݿ®»úÕÞöù²ìÂ…Ù +…¹ó²³çä§–ÏÊŽ“¾–¬ûñÇÙ¿·È¾ûÎö¯ÿ÷ɾúÊöé§»²¿–ýå¯×²ßþÖöïÿËå—ÝÛÁÀ¼Ê×¾†ÿŸüÆÇá¿€ÿü +ÇÁì¨éÿ”üŸñð§ÂŸ…ÿê¾ü¥ð×°£þ©üð·Âß ‰¿‡þžü„ýü¶••Ÿ‚Ðÿ„þ…üªø¯ÇØ“œþš½»úâçà·Àï˃ßÿ¬Ûù +¥áß‚ÿ…þµø·àß‚ÿ›¿þ·×àß‹½ÿŽÞ¼Æ›·öøãÇ›¼åíí¿Þï¼ÝîØ­ÿŠ›ÍŸì€ïáëƒ›ëø§¶‚•¥¬ÍãÄþ–³Ž¸ì° +àÙàá°é„‘††­ƒîŒãªÑŒª ŸÁˆÅжñ¢…’ šøàñÀéÄÇè«Ú›ÑØ‹šÌŠÔ” ¤ŸùÂÙÈÊÅê¼â™£•Žðà„Ô‡¡è‚ΟŠ+ÑýØûñ¯þ¿Ê²Àâ®É”ÇÆ¤’‰ôø ØÊѬâ±ôèèÈÊ’Ò‘ˆ€åðЪ”ʇº†¤‚´¿ßðʬü¾´¯–ÏÊãɹÜéîﯴ§ÇÊá +ŽÈ»»¥ÝݬҎŽéû·»´­ÍÚÚªÄíé‘¶·Ë›¿š¤Ò††œéý½´®Îڜ۫­©‘Ö×ÈË««¥••ÒñòòéÙ™´´ÀÔÚÒ¢­®– +à–•É‹Š¤ùÇùÒ¼¼éî®Ø´»Ûš•¥ÍãÌ”æäÈÓÒŸ¤©©Ò””é‚Ò’´±ÑšŸ¾¯‹“ÆÆÊ磣¥ÑÑÒȸÈéÄ„ôñã„éø¸´´Ôš +ˆ’¢ýðÀšœâ¬½û×úû¶ãôæÍéÐô­Úµé•«ÒËã—¤—®ÈÏžƒ•ž¾­½ñÂÞúì˜ôðáéÑ¿ÊÿøÁºêïŸôÏžé—èßÊ¿ýÔúñ +ëÇÒ¿ÿÙúÛåßÊÿË€®½¹ý£„÷ãšöÇ€‹À¼Œ„ƒïž¾¤‚Ó™¡”€•À­ØùÒ°­À§ÀáÛŠƒ€„€‰ÐÉ€”ìÃ•Û +ùž€º°Ç§¶àÏ›ÙØêü²¸ØòÆÌƒ­é·Ú»¿½ÁöæóÙ¼ãÏ®ÕÁ‹ì€¯ÙÇÞþŽ·Î½þã·Ïï¿»æžöÃåÂÖ–¶ž¶°¶†••¬ +°­áþž³³ð‚¸Ø“ƒ–‹˜€†Æ£èšº„´š¨ÔШ —•‚¢À’ŠüÁàñÀá ³“­­èìÄÀí­ªªÐÒ‚üüä塵•ññˆŠÂø¸ +“‚ƒ‘”„‹—úðì˜öíÃÇ׿운°ø§Æë’áá‰Å±ˆÅ’¡¡‰ÉØÊÄ¢–ÁÁ‰Ð¨™˜ˆ„ö¬ýý’‚ð§ù’¾¾‰§áòÙúû¥½ +°½’ŽÇÒÝ­‡éê’ôöʺ¼º¤íí’¶¶ÜÉ뫤¥Åґܬéê’´¶ðÊšš¤õõ’ñººÉí­¤¦ðÆÒÝ­©ª’ÀÔÖʪª¤åÇå’²²Éé© +ƒ¤¤ÄÒܬ©âª’””Èòó˜¥ùù’ÜÜÉâÎŽ¤«Ë’™¾©ÉȤ§ËàÒÓ¥©©’äˆäÉ⢤¡Á¸’—§‰•Ä”ÇËž¾•ÄÅŠÉž¼‘¼þ¬ +‚ùôÈ’–¦‰¢‰‘¼ü¨¹ÿ¼ßòïžäΟÉíÛ’›·¥ÔÁÁ’ëפ—°¯Ë®Þ”œ¿à¯¹ûÖòê”ûäĉÉÑ£’ÅŸþ’œ¼¨ù­þûɾý’½ +àû¤ßþ©ùôæÓÉÇŸËþüÂçÉïÿ«‰Èçµ€ø¯®ùϱϣþÜðæ£Èà¿Âý›ˆò£ÞÔ¿ÿ²üÈ÷£ÄøŠ¿»ä¬ÑøÖ¿ºýàøÁ +Ûó³½¾…þøþÐþŒø¡ð¾ÃåǘŸí‰úÂûáôƒñÃïâ‡ÍÏž‰™Ëõ³µÄËþ¬Ÿø±æÇ†ŸÛ¨þö‹íÿ»Ýüü«™ÿÍÿþâ¢Üžì¿ÇÖ +ü¶¶¶°¶•˜çØÚÁü’æßçᘅ͋ªŒ…ÆÉÐÆÝèèŒé šƒ€â”£òУ  ©ˆÉÂðˆ¼ðøèä µƒ‡­¨íÄŴʪ߂¬ü +Á¤æ¡¾•ÑñâˆÂ𸂂Ðñ¡ˆÇÏãߌÑü¼÷—¿åôÉàñÎר·€¡–ÓÃÔɘҢ‘ËࠥД҃ƒ”ÀÀãÒßÏ‘„ÅçÀÓýý¬¼žÅ +åÒ½½ÔÏ›ÅáÐÝÝÔ×°—Ëç§ÕÑÁƒµ·ÓííÔ놫ÕÒµ·ÓàÍÍÔã£ÕІÀÕ×ÓõõÔ€í­ÕÓÃÕ×€ÓÕÕÔå¥ÕŒÑÁ•—Óåå +€Ôé©ÕÒ•Œ—Ó……ÔÁÛ•ŸÏååѹ±¹ÔÎŽ••Å€åæÒ™™Ôú¶º•šÊ¥¤ÐãÉÉÔ⢕¶ÀÅÇÓ±±ÔŒÌŒõô©••ÀÅÅÆÒ‘‘Ô +£ÇÔø¸•š†Ê…„ОÐÿÁÁÔݻԶ»Ô­ÛÔ›ÿÔõëÔÕ«ÔïåËÔ…‹Ô¹öóÔ™³ÔÉ“ßÔñãÔ‘£Ôí¡ÃÔƒÔþßýÔÞ½Ô·ß +ðÐßüÁýóŸ¡ÔÇŸÑÿú“çõ›ßйæþŽˆ÷ò¼æÃ쾟ŽúðÞ‡¤ Ÿ‚ýˆ÷¡ÃʇøŸÒýÈò¡ß‡’Ÿª¾ü¨ñ¡Ñ‡ÖøŸºüàøÀó +«ðÁèƒéƒ™å㛤Êý˜Õõá̇´øÆŸÛ¶À⫃͇‡³¾ÿÌû°èʸ­óÜ÷±¥¡ÏÛ¯ñüµÞ¼÷ÆË×øõš½ÿ¼·«Ù›Ÿ¿ +ËÀ®Ÿ¯üø¹Ý‹—¯ðü¥¶ôßàë¹Ö·ñÊì‹­ŸÜü†•ù•̮±©ÛŒûêôÒŠÅ£…ô¤ô†Œ¥Ñ˜ÕÁ¾ÆöÇ£¤ä Ç ¤ÖÀà€Ã  +ƒƒ‹ÖŽš»Ð·Ó‚І”Ô û¿‚‰ø¬Ä¥ ¼ž±ÁшŠÃùûø¸úûÎã£æ£¿ø©ÓÅ »Ý“‰ÉÈÒ¬’±ŒŽŠ­…ÂñÀ€‹À +æ îï—“„˜­Ïçéë“óøØâ®×ÜÛ«îáé‘ó¸¬ÝÝãâ®®ñ秸£ÃÜÞ®î뎓·¶ŠÛÚØçš›ÅÍÍâÆ¸Æñø¾ÞØÜ×§®­•× +ŸÔˆ««ÅÕÕãâÊÊñÅ…¸¼ÜÜÖ¦®­þ•—”ˆ‹ŠÄ……â‚‚ñþ±¾¸¯Ïœ›«£ÎÉ‘ç剳²³Å™™âôôÄñÚš¸¥Åœœ¬ÎÊ’§¤ +ψããÅññ⑘˜ñô´¸ª°Êœ™©ŽˆÀ¿þ¬Ž—‡“…‰ÃÂÄŸ·Šïß—ß»§ñ¾óÇüû¶øñæÍñÐøÚÖµñ•«âË—¹Ä—®ˆÏž• +Ÿ¾­¾ùÒüïì˜øÈ‘ñ¡òÃ⃇Äû÷·‹¿ýÖüÍ·õ⯾ÿóŸ³â¾’ÿéÏ÷âßüÆüŸÿ¤ó€®í„ÄûÕÉÃîâﮎ—îâü®‚öñ +¸ï—ỈÚÅñü®Òö‘µ‹™üÝ”ï¢â—ªµ»èØÅË®ŒºöÁÙ…÷—¹Ä®»Ä‚Ü…—µ‹‘ÝÈ÷±—º‹±ÝèöÁŸï°ƒÉØŒöàÝㇳ +š»ìé´Å¬×ïàÙŽÖ÷°…¹ƒçŽÜ»ðïïÀóöîñçÖ§ÖÝøþþÞÞÙ¾íçµÜ»ð½‚áó¥¶ßàÝ…´çÎöÌÀâºûçæ™½é +¦êƒå†“Žî˜¬ Í샮챃ÛҮŕȘ¨ÑòŒ‹Œ€ƒ«‚çЀ„Ú¸èèàÆÍ‡ªÚØ‹ÞùµÈªÇÊö±â󕉰Ɣ܋ÃФΠ+÷‡áèÝ콎žÏýâ§¬ŽÆ¬Þéš©’±„ŒŽ’¡¹°¹À¢ýý¤‚Áü¾ËߟçÉã‘Ü®ÙÛ‡ËÒÓÃò¸äŒ÷·ÙÕÅöö±’¬ííä +ìÛ›ÙÚʶ´ÇÍÍäÓ“ÙñØÈ¶´õõÀäÝÙÛËÖÔÕÕäÕ•àÙÙÉÖÔååäÙ™ÙÚÊŸ–”ÅÅäÑÀ‘ÙØÈ–”ãùùäÞž™› +ŽËæäÙÙäìæ¦™‘Á¦§Á“ééäÊŠ™ñœÌ¦¥‘‰‰Àäü¼™—ÇÆÿÆ’ÑÑäÓ§Øää¤ùä‰ùø±ùè‘™–ÎÆ††’Ÿ’üžÁÁäÝ +·»ä»ä­Ûûä›äõëäÿÕ«äåËäÅÿ‹äùóäÙ³Ûä©Ó䉓äÿÑ£äáÃäÊ¿’¿üÀþ÷¾ùí·ä×ߣ“ŸÿÎþò‰¿ùá‡äŸþÄ +£þæ·äÀ®­ê…ÄûÙßóâäÛ¯Žøñ΋íëÞÜó¢Ì‹¬È¯â¼Èñ¢³Ó‹¼¯Š½¨÷¢Æ‹†¯»Îº·Ã‹î¯¸ÖÞð½˜ðÂä¿…ØË¶Ú—û +§ÙÞÄ꯴Þãè½°øáò²õ­ù¬Þؽ˜Íñâ΋…¯–½½Øõ²¥ü›öÞ¶öñÛ‹çžÞ¸½ð¼ä¯¾ïÇ‹×ޟݨû‰øüð¿á–×¾íöÛ· +°¼ØóãÕÅž¾ÙØÄÜšæÐÖáßæ›¨˜ÝçàšÁŽýâ”ÛõÒí¨Ðò½Æ´«Ð¡ÒâÀÆÎ£§âŠÑ­â‡®¿¶ðÑЋšîÏ”·£¸™ùõ +ãȬÆÊ¹âŠ®™‹°ŒÜË«ÆõØœû‚£×¡øö®þúíЗ¿å²°ø§–ë¢ÁÁ‘ШÀš˜‰„¬ýµý¢‚ñù¬àýý¢žÏÄåŠúûÙúúÄ +¨»ÛÔÕ¶¥êìäéèßµ·‹ÚÚÄ­Ç­¢––Ñ󳛨¹ÉÔÔ¤êð씵´ˆêë˜Åõõ¢ÚÚюͨºÚÔÕÆ¥ª¬”ÕÔˆãÊËÅåå¢Ò +¸ÒÑɉ¨¸Ø€ÔÔ¤ª¬”•Ž”ˆòóÅùù£¢ÜÜÑö¶¨ì«Ë”™©ÊȾ¥§‹ÒÒÄŒ©©¢ääÑÒ’¨±Ñ”Ÿ¯ûŠ‹“ÅÆŠ¢ù£ÅÏŸŠ¢¢ +ŒÄÏžˆ¢¢ÄÝž‰ÂÃÅ¡·¡¢Ñƒ‡÷¢û÷Å÷î‰Ûîܑݾ­º ùÓ””¤ºö¼ÍôåŠèÒ¥«Ñ…‹¢óçÄ–çΈΒ࿮ºúÔôÓ +ÆÏ¢ƒ‡Å¿ü¶ Ú·Ïô¯ÿ÷‰¾þÚôùçá¢Ï¾‘ýø¡óèƒÄ¿þµä¨ ×œñžæê´öøð؃¹³žÜóஇ¡¡žÄúçÁ•²‡™žäùÐ +ÕäÁ¹‡ÕžÔÖûÐìÁ»‡ÝÔžöº§ßƒÕ‡Ô¤öÀâ‹Ìƒ¥‡ê›Û§øÜƒ‰€Ìž°žÌùàÝóàÚÃöµ˜ƒ÷°‡Á×¼ø—æÁº‡›ž¸ +ž½ìíáó—ì·þãß¿£ùÿ„®›Áó¿ÛšïéÜÅæ«¬¿ëij—ì‘·¥ÂíÌïáöƒÓþë°­°˜¢…˜æ±±ñ›´ÓìÃå¥Ò‰²‰ÈÆ¡Ö +¦À¤†À‰¾Œ‘½’ô¡ý½Í‚Ô÷¡º—åݨêÇÞ³¶²ë‘Ü…¸²€Ä–¡´—÷³€ð­‰çãñ¸Ø‚ûÂþß¿âÓÿéËàñÎ×ñ„ƒƒÂ€¥ +Á¿ßȾŸÛ¥¯ÏÈ㉹ÀÜáï¯ËÏÃÑö÷‹»‘ºØº»…ãÂööáÛ›°ïµ•¥¥ÅØÜ€¬ìê’¶¶Šü›š„õõºøºáí­°¦† +Ã¥ºÚØÕ¥¬á¬”ÖÔˆËË™…ååÂÒÒáŽÉ‰°¸ØØÔ€¤¬¬”–”ˆÿó󅹹œˆœáö¶°«ËÛ˜™©ÌȦ§‹ÓÒ„©©£ÂääáÒ’° +ì±Ñ˜ Œ‹Æ“ÆÆŠãâ„úÏŸŠ£¢„‘÷‘ˆˆáãÇ£ÂððáØ˜°ü¤Äøð¡ðþ¸ýáð°ðîÝïáíÛÂÛ·„ˆ·îˆ¯ß—ÞŽª¼üÙøñ +÷¢ðüùáÙ³ÂÓ§…§ÏŠ“ž¹¢¼øôÈøð ðûïï…ûö‰ÿõ¯á×߉¿ûæÌøÿˆÿö·ᇟˆÿýÈëáÀ®±ñë¾ê¡Ý¸äÆ +ì™·®ºñǬ·ž¸‘ëÆ±²›™îäºÑÅ䯙›ÕîÔ§»ÑìæçÃ÷—¹ÑëÆŸ›‚Ä·†Ý˜òãØ·ÍΒѸ¡ò®ÃãÆ¸›´›ÐÆ·˜·ÛûÎ +Ïê†Ã™·æñÜØôãùíê×äÆÚóö”Íéæó¸ŸãÛ…Ñç®øþ® Ùæñãµ›ïþ¯¨òȸßàóµÆûÓùö­ÜõÒàù…–ŸãÎ뉙Ͷ›õ +À™¬«à–áœä‡½Ë¶ÑÖØË ²ÀÁÀêư¡ñŒê ÊСÏÞ©ºÛ†Ñ¶„æÁÔ‡÷£ªå½¨áêÂš†Ü‡Øª¼©ÅœÈ¡îäàêº +åΤâÐŒ¾‰¢ˆÄµáàñÎׄýý¬„¡ƒàó…ýý¬¼÷ž€Ë•ôö²ƒôôˆ¸œÁ÷¿· «‹¥³ÓÃÐÑ¡èï—´µ±´¶ŠÚÚž„ÍÍ‚¦¦Á +þ㣠¡¥¾°ÞÐ×§¨­•›ÔÔˆª«…ÕÆÕ‚ÊÊÁÅ…ƒ ¼ÜÐÖ¦¨ì­•””ˆŠ‹˜…ÅÅ‚ÂÂÁâÁ ¿ß—¶§ÈÍ•ääˆã²³…ÙÙ‚Ì +ˆÌÁƆ ½Ýƒ–¦ÈÉ‘¤ì§‹’’„‰‰£‚„„ÁÜœ à¶Ö“£ˆŽ€–Äʼn¢£…‚Ïžˆž¿–¼àú¤ˆ‹“„†€Šž¾”¼ø ØˆŽ–Ü»§¸ +øóÇðë–àæ¸ÍÁÐàÚµ«Á•«‚Ë—„Ø—®ˆÎ“œÀ¹£¸õÊðâ÷„àØ±ÁáÃ…‚Ç„‡ŽˆÛöï—ìÝ«Øí³ÇðÕׂÏ쾓ü㟂¿ +ýÍðÇ¿Šþ•ýëÁÿúÏÛ¸¦‹ˆ÷Õç×ﮜö᥊‹·ÝøèÂá„‹±®¤¹ÕîÂŽ‹…®”•ºÐå‹ÍÞ®´¹ÐéÂð‹ý®ö°®Ð +ª…Ò…Ê…©‹àò—»×æÌÅŽ¶â×»àðáÅÒ…³‹Ó®Øòݘöáö튇´Åí¬ïãˆõ›ëÛØ÷âÓɦóÝÎöÇ¿úå¶Û¤²“»ÍÖÁúÿ® +ùóçÖ¬û°—¶‹Õö†ôñíêèæ»€¸Í»áßÄÔš‡Ì«˜Üæ›§¿ëç ›Á˜ƒµ£Öȭ켩íÊ€’†Ð‡þî±ô¢ÇŽÎ‚‘´Ñè¢Ñ§ +ÀÄÕ¿Êù¨ìèÁΧÒÛ‘Ô£ˆ˜ÚÄÔâሩî—àʶ·§áÇÄü™ýˆë‚Àâ®ì‘ïƒÏ§úú˜Øø¼‚Ë¥úÀûÙúúˆŽ‡›èºØº +ö»‰ŽŽ¢½€èëãéí¥ÚöÚˆææ¢©‰Àèìäéè ê÷뉺º¢¶–û¨©¡ª«‰ªöª–ÊÊ¢¢‚ø¨¯§ÊʈҎҢ¤„¨®¦ïŠŠˆÂ¢  +÷€ÈϧòòˆñÜÜ¢§‡ÈΞ¦²²ˆÌÌ¢‚£ƒÈϧÒÓ£‰””¢¹™È°Ê¢’“‰„„œ¢®Žˆ¥âÆâˆèè¢ªŠ‹ˆŒ¤ž¼¡žà¿¦ž½¢Âà +£‰ÐТ¤„ø·ð€¸ÿŸ¸÷Û¸û—¸ý›í¸ù“¸ñƒ¸¶þ¸ú•¸üÛ™¸ô‰¸ð¤¸÷ޏ󆏒ù’¸þœ¸ú¹”¸ü˜øñÇû⇟ˆýû‰ +Õ½û‰ï¾¡¾ïü’øôÓâïìÿ§þú×âœÿ¤þÇÿ ‚ðòÍ‘ïëüéš“‡œ¸éÄð¥§î¹ñÀ‰±ÇÎÄ»‘èÄ…š“ÙΔ¸Ñ•âÄ¥“µÎ´ +–ºÑêħ“œ€§øÎÎŒ¸ä¡ò‚òâÄÉŽËÓº¡öÂÇëĸ““Θ۶خƖ­¶Ãí£ã‹³Û˜×Û––¶±ç²‰ÕͶ…¿Ç¾Íìï +å½…Ï–Ûù¸ç³…×Ûø³ÉÁîùãØûƒ³Õ×ìÓ„¥×¬Øø‰¹—˜ùºŽÇ¶û¦–ˆ°ë°­â≥ã‹ìˆŽõ´»ãʾ…‘³°»ÊÑäÀ€ž +á„–¼µ¸£è“”£õ„”ê¢Å¨œÀ‰‚’®²¹ÈëÀâš‹¢›ð¸†´ªð«„—òñ²‹‡Òñùš ®‘Å»Ýã÷õñù¼–þ®—ßÛËïé +úááðøÝÝü®®–ÎÎþÇþ‡¿½ßÖÆ§ÒÚÊïéá·Ž·ó›šØš›™ùüúúþüÝ¿¶–¥¦ù†ßÝͯªâä×Öò«ªøå‡åü²²þé© +§¿¤„ßÜÌÒ’Ôį¬ä—”ÏðóóùùùüÜÜþÎŽ¿»ÿ›Ÿ•ÅÏÈàÿ§§óÓÒø©‡©ü””þò²¼¿©‰Ÿ˜ÈÏžÈàÇÅñãã™ù±±üèèþ +ðÔ”¿²’ÿ三¿¢‚ÿ葤¿¼œŸ–Ʋ‰á¿üÈ¿ÿÙŸŸœÌ¿û—ÚÿçŽÿÖ­þí›ü  þµ²ëü«×ø—®Ùñ¯Þ䟿ÏÔ¿û–ÿú´ÿ +­äÉþ±ãü£šÇø¿ýÄ¿ø÷ÿÃüÿ“ź»ÿʳÍ÷ë…ÿ—œéïÝß½»ª««ª•ˆÊÕåž“ãâ–âœçùÀ•€••••ÅÑÔ€ÄєѤ¢¢ +‰†¤ˆ„ˆ´Éªó¼ÏóàÇæÁĘ“³Ï÷Ó÷ÍÕ•³Ïöù×ÊÚÅîݶýºúÚŸßýמ‡õáþîÿûºüý×øøõ¬Ù¸ð‡ÇÔš÷÷µ³æ­ +™™ºõÍ„‰ë«ÆŒÙãÒÖ¶ƒ»äŸõ®û„¤£ˆ™Áʈ¡²ÆÐ°‚þˆªÇ žô„‘ò‘¨Çб‚툖Œ ç„‘½£Ø¾‚•£„ص‚µ£´¹ +úþ㈶ÞÇŽãûØõŸûïãùÀýœ¾£÷œé†Æ©û¸ûžŸçïãÂýêç´úñ¿ý×î®ÑϬû¿´Ì™™ÆÐݺ˜°ýÿ˜ïÑ™›ç÷ñâ¾Þ +÷ÝÇ›û´‘ëÝý¯Ç²©‘Âõà»Üþ‹×ë´Âòí¹ý—¿ôÒÇïˇ¸®¿‚³÷ðꮣݸú›‡ï»âÀõ콊Ý÷—°ã‚¶ž£¦ñÜëÎâͱ +¥¬º‚•‡±üÈŸú÷£ç‡–¢ì…ö“ºÖÁõ¹†òÕ®€—Ø‚ÊÞðûРÃÖ—Òº×Ó†€æ¸µ¸Û’µµ®Õç³ÍæÜµŠ¸œÎÅ•«ö»Ù± +ÕÂé³¹­Ö²æü¹Óâñöõ¾‘³ÙÙÛë´ï™œË–‘£Ñ§ÙÓã´˜œËÕ—ºõú²ä‰âÓ§ó®Þìì¹îöêµÎ®®£¢Ñ¸»»êŸµ³£Ã©Ò¹ +ÏÛÛ‹–¹•¨Êçۛӡ𣶶ºÛÚœò¯¹³¹Ù©“¹ß›šœÎ©¿ÔÙÐଯ÷¬Ê¤Îºº§Ø×쬩ñŠÄΑêêçÕ•Ó¨ðôÖÔ¸ËË +þ‚³´ÔÉçè»ËÊœ¼ž³³¨ÈÙØèäòŸùùÎÜܧï‡ãÌÎö²Ù£ÎÌÌçúº³ž­Í™šêä²™ÉÉ΄„ç’ü¼³¶Ö™·íŒˆð†…¹ +ŸƒƒÎ¿þ¿§··ÓÓÓ¯éáᜳǹêó¦óÊ”çø“ñα㜮åçÍé’ÿÔ¿‘žû𽇨ûÈ—¾‡ÌûÈŸÆÉɰª†Ñ³Œ‘†á´£í˜ +ªáô÷ŒÙðÌÃ蛆Ô혎ᬞÆÇÏÃØ°ÌÓäÝ·ÓØÝ½ÃØ¿ŒƒÃ¸²ÇŒãø¹Ìó®°ÎÝ¥†âŸ¸ÿÚݾ‹«÷°ÿéÑ·„» +ƒÔÖçðÃ÷Ìðïˆö¹¾º¬Ë›ùŸÓ±Û€×÷ñö®ÞÆÑ¦®Œ‚·‰ÞÓË­›ïð½ý•®¾Àå绸ø„ýèÛëóôýú³Ç‡àðä‡ïÑÈ +ÝÄ½×°óŠ¶ÆÝÄæþ츋ɟÏãõ‰¸ŽÁÁö˜ý‡àÚº‹Ã®è¶£ë؋ԛѶŽÍ—«ÑàÀ•°ý¨±¡ß€Ìª’µˆÒÁ×±™²×²æô +õ­¾›µÇÊ•‰Äî÷¬ØÁìÕêØ¾œìØ¬Ž¾¾‡Ù Ìúû¦“ãٲⴺúúÔœ†ƒãéÒ¢¥×»–¬ñèô·ŽÅ‹ÝÝÄ«õôõ¹´š +”Çç§Ã­öô€ô¸ÔªÇû»ÎٴȡԺÚùÚœŠ…£µÕßÑÒâËÍýÍŽ™ÌÑÔäðèìôÈ¥Ž†ø†Çý½£®Î”ÑÛë‹µÌµŽ‘ÈÑÝí +ó¨ªòˆ…ŽŠˆŠÇù¹Ã ð‹”•¹øüÇÉω£¸ØÑÔäð¨¬ôð¹Žü¸üÇÞžƒÃñÛä串²œ™ç™ŽŒŒ‡‹åØÈÍõ¤¤¸’Í“‰‰Ž†Ã +œ‘—爉ñÄàŹ¢¢œ¡¡ãŽààÇÀ€Ãß××áííØ°éÀ±ïžãŽ›ÚãÆŒÇ”©Žëñãßÿïø»óŸÝÈšÙ¥£ÿ¨¾ÚÃðš²Âø’‡¾ +›„Ü¡ð†Ð¾‚„ѤÃ蚺ÂëڇйÄÅÃØº„ãªÌðŽÁ¾Ê„çÖŽáý¶áëö´Œá÷à½äð‡‡¿þÏ܃Áñ»¸õ‡ç +×îàÜôâ©â ­Ò߽͸͡ïÜÂÍÛ­ÔÈëίǬƆñðŽÎðûö‡¯îàÕÚ¼™ÄÛÁ¼ïÿ¥Ö¯ë‡ÞãÚÛÜýÍ¡¯®¾Çÿ³ +Õœû‚³ðêÊŽÿüž¦”¿ùà¶öŽàý÷츊­—û±é¢ÖŸÇÚݳðž‚ý¸¬Çᾄãþ¬·ÝƒÅ»Ñ¹í›ÑºÍ¿æÃâ„è¥Ê­ +ãàõ¡÷™Ò—è¢ñ±Â»áÕïŽÉ­®äÍáðÚý¶ëöµÆâ…Ýæ£Ö«Úýùò»ÅÂúûúìæ³½·—µ˜ÌöåËìÆÎ£éé±›ŒöÅ¥Ëíú½Ù² +ÏÄ®ÓÙ—¯¶ø÷÷“­ÖÞÕºå×èìöµÚÞÑÁÔªÔûû»ýÑ¢»Òéï볫”£öÖÖûˋݒ®···Ûå²¼ûÓ“½±Ñ®ó•Ú›šìõõ +Æö‰ÄÞ×篿­µ‹Åöšš¹»È䯮¶×ÆÕÙ…ÂûŅ罼ܮØËûÊìü¾½¤Ä ÞÜ쯪²—ò–Ú‹ŠìùùÓö¼¼»‡ãϳɱçåÙÙì +äûƆ½½ÝžÑ–æÏɱ³™£ö¤¤û‚½â¾Þž›ëŽù¶ÇÆÚÃÃíì¡¡ö  »¿¿¿Ý××îååæß°À¾ïžÝÓÍ;ã†ýòöäû¸ñöï¿ +×·»”µ­ËþŠñ½Øç¢äÆñƒÈ›ÄÎà Š‡Ñ¶ˆªŠÁÔ¢ñ­ÁƒÐŽÂ½ˆíÊ –Œ¢ç½“ƒ°ŒâÅí¸ôîãÍí¬»ï·±å¶¶ß +ÏÆÎÛØó›ûæïãàíœùø²“ê–ÎÜ¢õ¥‹³·èá¾ÿ׀ކݾÉÛ¾½®Ý ýŒƒ€·°ø“÷‡ðùÿ–žÜÂãÛôøú›Ž”¾¼èŧðÞŒÐñ +ý€¿´‡ÄµÚ´åò›êÏñßÿ’Þ§œÄùÊ믧¾þŒ¸œÁ‘û¸øÖ—ûïàϭ쿼‰íױ媌¶Þº‹ØóÂŽŽ³Øñ’–»ã轂žƒØ +í²ÚÝÐï€ò«Ú¶¡ñ½çêÖ¢ê•Êìä¨ÜŽœ³ÒŒëˆ×£¤›óÕ¿™´ÿ“——Ëê³Ù³ý¬«“Õ¶ü¹±ØìôýýÄì¶õöéÚ̦²ì™Í +îè´õôƒÁ•¶ô©Í¯§Ëó–ØôºÛâÅû¶îî¢ÕÚºùºìš­³Ó­¦Ö“ŽŽ›Êˆåëï·­ÚäÀÓªííí¶…‚´¶ÚÚÚìÞò¹­¹Ù¦“ +·Ùššì¶ï©ÔÖÐ૯™·É¤¶ººÛòí­Í¬¶ÕÔáØÄ¢ÛÕ•­“²Ò¦”Úªª¶ìåå¶ÀÖŒÖæãóí¥¥“¶ââ›ç«²¬´•”Ø¸Ü +äÛÞž­·×–ý“ãËζ±Ùã¶ÌÌÛúº¿Å²¥¦Ú˜ÌäÛò²­±ÑÆŽàØââì±±£¶¨¨ÛÄ„­‚¬Ì–’⋌´ùûÛüüìü‹—ÚæÏ·Í +•뛽۶ýµºíòäÛ¸ñ‡¶Ñ£í®åͳî’ÿÜÖÜï€¡ð€±ƒÈ™ªÀÖ€¸ƒàˆÀ¸€ñ€š†­Ð¼€¶¨†‰Ðµ€Ý€ŒƒŒØ¶€¾Ø‡ +©°ò€Î¬ãÀúìšÀÖÎ츉ݷ±Ÿ÷ãϦ›¸ôØ“ÇîâØšõ¯öú†ÎÞÀÿ¹ë迎‹×¼èßÕ•«¸öý•Ú²Þþ¥‡÷ݽ›˜¹‰‡ +ö·ñ䦞ÝÄ£‹›øõ“¯ïûàíõ¼¿ö©ùí±®½ÇÅ·­´™åÜ«œý×ÓÏðò‰Žæ½Â‘‡´õ÷¥À°öŽá× ®öÜÂÖ›Øô–ë¯àíŸ +÷û±ò¬¬§Ñœ÷‚ËŽÁ𘭺ƒèÚ‹Õî‹´íÀóÖ´ì©„ø„ëÀßâ…îŠäÙÒ£‹˜ž„®ûÛ—‹Ù³¹ÖŸëÍšõùò«ÅîÂúú¬æ³µ +×·—˜ÌÖåË»ˆÑèí鱚”ŒäéÒ«Þïîݲ„èôÖÅï‹­ÝÝÄ«µ€öõÙµšëç…§Õ­¦ÖÏ•ÊÚÞîÝ´ÛȪԒ¶¶«ðÂáííµ¶´ +¢Øåòëó³Õ‚¦³¶µÙ››½­Ò©µ¡ÁÚ”ßï•ȬõõËÖÚÚ«Øì­·©±ŠÄÖêê¼ëÕ•µ²Òªð”Ú«ª¬ååÆÖÀÚÚêå³ó­¥¥Öââ +¢«ç­¬´–ĔعÜëޞܵ·×ÊáØ³³³­ÙÙÖÌÌüëÆ†•Ų¦ñ¥ÙÓÒ¬ÉÉ£Ö¤¤ë‚µâ¾Þš›ëŽñ¶ÆÆÚÃí¡¡ÖààëÀ +¿€ÕÏÏêííÇõô´úøØÝ§Ý­³çÛ§ÏŷΚä»Öœºú´õ˯Ý÷ȚХÿÿ¬Ïýê³×¸ãІüï ò†’Ôî ó†òî …ø†ÊïÀôƒ +¹’›èºÖ›îè¿Î›è¾âý˜ï ÷ºº–ßÇŠëðŽÜÇšëØ÷Ê›¯ãóõì»ßŽ×±ûšö†ÝÃë¸ôÎǯâøÕúÏêüúŠÎÜ¡á +–´ý—ñá’íãÏ¿ú™·®à½ÖÕܹ†áëÏÔÕàÁõêÛƒóôºõÌøùž¯®áÍÕºïÿöá—öþ¿ŠŒÐø‡óïðùæµÎ¿¤÷å—ÇŸÒ‹†Ã +Øñà„ûîá÷îÝì¼ƒí·± ù€›ïàÝÕ«¬¹ŒÇŬ¸ËåçÑûŠÆ’“ПÅ÷¡ôµîÇûÞ´î©ÓöȶÀ´‘¥å¿£øµòœ«È´¡©‘¦ +Ñøš°ÃçâÖ׬®Õç³æéÿ볘ͤ·×”ⲑåˬÆÏ£¥§‡˜Œ–ťˉÞïÙ²¿Ä¢Ó‘Å‹­›ÝÝ–­–ôõ Ù´šËç§Åá­¦–•Ê +³ÒÞîÙ´ˆ¨—•–¶¶‹ÂáÜéíµ´´Øä°òËó³‘ɬ¬ÍÍ–ÆÆ‹Ô¸êéè°Ô×Ûð¤’ËÝ¥¶Ö¢–Ûê꬞¢‘¥ºÚÒÕî婬´ˆ…– +ñŠŠËù¹¥¬±ÌÒÚêáó­Ì¥¥–â⋈穬´””Ø‘¸ÜËÞž¥··×ÂáØ²³­ðÙÙ–¶Û’‘¸áÉÏ·¤¥ÙÒӭ̦¥©‡É’˜èá°¬ +Œññ–˜˜ËÔ‰”¥¢Â’–愉‰±„…Ù‚Œ‚¬¾¾–¯¯ÿ‹§§ÅÃÃâ•î˲íõšåÒ¤ËØ±Ç–Ñ£­®åñí’—¾Ó¿“íÿÚóšÂ® +¹ñ¬«àÜÊÅÑÕ”ÝÅÕÚÕÔÞ…ôªäþס¼ŠŽ«è床ÝÕ˜®Âàô•ý×Ị½•×áüøíñㅾöÝÁ–²«Øþ…»®àÁÏåÚú¿ø™ +‰Þ­Ÿ½ÄƒÄöé´áÅœ¹€Èó—𾟗ûÒñ債÷Ÿ¸ÚÄŒ†®Ð«Ãž‘«øø…ٯг çרæûÂëßÚø¿‰¿Àçá𞸹÷žçÞâÔ› +Íœü…ã¯ðôØ™Ž¿ÁÁÇô…²áψöã¥û¶ŒâÓ­ÿ¬¿‰µ×éâìÖÞ‚í‚úιÁô††“ТÇבôœ„òò¿äû Ý‰Úží¨ÚŒ²¨ +´Ú‹Ž“¬•à˜Ø‘æ†ç²—쿔ʋëõÙ“¬™ûûͦ“æÙ¶Ìì´’ž–ž³ÁÀ–®µ§ëõæ¥ËˆÎÌçÞ¼˜ô÷›¡µÚó×—Ñè÷ÌæµÚÜ +ÁÑÁÔªóû»ÊùÑ¢³ÒÉÚûÚÌŠ…¹µÕ›ÜÒâ–ËÉóÁ³Ù¦³·µ™ô››ÍÒ©¹¡ÑÁÜßï–È̬õõæÚÚ³ØèÌêêÌ¢‘¹ƒªÊÜÙé–Š +ÙÍ••æòò³àÀ஫³—–ãšùüóɉ¹ƒ¸ØÜÔ䮬˜´—”˜¹ÜóòÞž¹·×ÌቘóòÌÙÙæŽ¶Ûœ‘áÎÏš·³ØæÔÔ³“éÎ槦 +ùš“’Ìññæ‘ØØóô´¹²Òœžî޵䇇›ƒƒÍþñþ柟³——ÚùÁ‚ó¼ùæä¹ó̳皧èͳϜèþéÚ§ó÷ß™ÝÊÛšŸËþ¡Ù› +Œû™—‘û™æ©—‘õ™ÜËà߆ð²ê®ó£þ²ä—¡¸ûŒöË輄îšËÐß‚ñ’ú´¯áù¥¬¸„½Ç¥¬¾„Ÿ¯²âÃÅÚØú‘»®â×…ú +çǵÿ‚Žöã¼ð¿ŽöãØù¨š¦úêœý„¹û–ÆÃݾâÏÝ‹îÞÀíó‹¸ó‘ר†áëƒËøô‰ìÏ®áÙż¸Ùˆ×—ð¦Ÿïøþ™†…³ ³ +žº§ÞáÄÛœ¦û£¯ñø¹ì޾Åþ§Øóúˆ»žÐ‹‡­›Ã´Ò³á¶þÆžÀê›ðÜÃካØþ‘½ý®°ž…þ´ºÏ‹ ó˜ÚÃñú€²ý¨ßš +Àî…ÿ“¸§ë‘µ†©«´ëÇàòÌíõ¸½ëæ×ê³Ù€³­Ûæ²šÉÆÏÉà Ë—«šôú²ä‰Éõ§£‹—›º»˜ÍÚ­éê²éÞ´¤³Ó¤Ö› +€ººÌª•é­ÚäÒªÉêۛɡ°µ¶šÚÚÌò¹é´î¶É䦦¦„Óã£Éªµµ–´úú“Äâûª«³Õ֚ĈâÓÍɤ²ÜÕ×›ªªÌ• +•¦¡ÐÔÑáય·‰„¦²¸²Ó驉Ϸ‡•”˜ø¼ÓÑ‘©°ÐÔÐàáâòÍùù¦Ü´Ü“‡ãÊɱŒå器ìÓæÙ¦©½ÝÄâ™àÒÓÍ©©¦ä +ÈäÓÒ’©¡ÁÄà˜ââ̱Ʊ¦¨¨ÓÄ„„©¬Ì”’âŠðв…„˜üüžÌÞÞ¦…‹Íßóç›æÎµ¹Ë¹™æÎ´Íºêš¸ÑôÓÏ÷¦ï¾³¹µ +…™ðÉ¿¶ë³†®À÷‚¢¯ ¡ñ‚²® ÷‚¸ø— ¸€ê‹Ï¨»€Æ‹è¹Â€å…ôÜÀ×ö…èúáèDzžþôõÃÚûÔ¿ÖõãÍù¬º»ç±ù¼ +¯¶ÇŽóØõ”ŽûÎáÿÙœ¢¼‹Ãçð䌎ÆñÓ¸ù˜’çΡÿŒ®—ÅÕó¸ñŽêƒç±ØÏÈËïõ㤟ûŸñ¸ŸºÝ½¿ß—çðúœÞ +÷žÅ»³øðËàØÑœÿÏ£³Ï¼Á¡×¸øÖ‚ûŸãÏÓÚ·¶²ã¡¶à™ó½ì¸‹õ÷êèÕæÕÍØ¯×Ãúñ»ø²–ÆÝ€á¼ôçÑØõŠÇ¡¼Š +ù–Ãèܺ½ë¨Þ…Áöð¶ ÷£²Ö¡ñص¢ðµá†ïÅõ¬™Ü«ÏŽæÍØÓã´˜·Èҥƽž¬üÙâÔéÈâÅÛÆîî¢Õš»³ºˆÆãìì´ +¿ªÕ¤£Ã¨Òž™ÛÛɢů¥ÒØÖÆ”Š¼ã뫱¥Å¨——“ææ£ÌæÀìê²¶¶š¥¶ÒÒÐଯ·ŒÊ¤Æººãí±­Ñ¬¶ÖÔ˜ðÅ¢ãõµ±ª +ÁÊØÙ锊‘ŠãŹѠư–•™ËËžü¾±¤ÄØÜÎìäñŒÅÅÆñÂÂãÁ‘ËÆµæå™óóòœŽ±§Ç˜•üåä³™™Æ‰ôô£‹åÌË +–³¦¤˜™Ìã²Ò’±±ÑÈàþ˜ã⌱±Æ‘èèã䤱¼Ü˜šêŒŽ¶ø††šýý¾ñ¾Æï§çÑÃø÷®ÑÓÍ͸ã†ñÊ–”ㄉƟÿ +ò´Žšåüâ‹£ßÌš“®ù‡Žæí×ëÜðžâ¡ç‘ÿž©ç±‘ýŽ…çÀ¿ú‡á¹ˆÏ¡áìœäç ¸‡öÚó輇îóПÃÏÇŸÀçˆá¹‹ÛÙÚû +ŽðžÁÚ³Ø÷£†Þžï¾íç§±ã´öÂ…žÓØ÷’‡Î×Ò©²£Çñôĸ̾ý‚ç’þ™ýøå´õó›»ù†·Ïâ¥ÎÙêáüÿœÁõÊþô–ÏÎ +«âÙ™¼¸ƒ×»§©ÕÐÛ“øÏÿ˸ì߆ԯ¿Ç¡·¸ðš©ûÞâÏ‹ìú™†Ï°í‘¶Ž¿ÀÆûط̯¢œƒØù‹§¶›°ÜÃôüü¾î§Ë +#ö“МÇ숚ŽÂ¼ÚŸÂ½àïÄÁжäïÆê†Ä£ÿŒ§–¬ôÝý“¡¼¸ÖŸ«ÍšáéÒƒÞ’Ï–¬±èôä¡ñâÃ÷·ÑêÝÝÄ£±ô +¼ö’µÚÐÑÁÐÔªÃû»áѲ¢¢ÔšÚÚŒàŠ…éíµ´´Â˜äòÃ󳑱ɌÍÍ†ÆÆÁƒÔÊššŒõõ†‰ÄÐ×çû¨­µˆÅ†š°š¢’™ª« +¬ÕÕ†Êʃж訨°”—›ð„‚ÃÙ™¡´‡ÔÀç›ÊÊŒ“ÅņžÏÐÔà䨬´ð¹†‘üüÃÞž¡·‡×Àá˜òòŒðÙÙ†¶Û™ÐéÈÏ·°Ø† +ñ´´ÃÊŠÉ€´¤§›’“Œ‰‰†øøÃ쉬¡¦Æ•囈ˆ°„…™Â¼ÂŒÁÁ†€€ÿƒŸŸÁÇÇàùå娰Ààá°áð÷·Ìží¥˜±Ã°åŠá +Â„Ã¿šÆ²¸µ¾ÜÝòÏšÛ™ø¥ŸÁÔ™¤ŸÁ­æ™äÁñ™¬ˆÎ£ú´êλ£ñ´ä§¡¼ïŽÓèºÅ·§±ô”Œ§à¾¾…å§°â” +윧±ú¤Öž‹Äú“Øø‚ÛÔÎàÛñ츎®Ýǰç˜öãÅ£¸ø„úÀ“œ»ÂøÎ„žÃÿñܺÁøí¾Å냧ñ÷´îƒÆÈé¼¼Íý +¯“Ÿž¢Æ“¯–Ïàõñ¼¹Æò탾œù¥ÏÓÂÁ¸ðŽû•ÞàÏëìúÉõÇŒ¶½Å–ÇëØøëǰöÜžÖ߅㎽‘–ؾ€ó˜å¯áé嬾ˆ +ù®þôœ¥Û•ŸÀã±ÔÆ™õˆö¡ø·¡òö ó«’·¸¡ê½ü×ÂíáÕÿªë†×êå³Ùӯ٢׿éÈâÅúîî¿¢Õ껺ˆÆç£ïì¤êµ¾ +·£ƒ¨Ôúööõ²è‘Þ©Ô·õµ‘…ÂßÚªðïé¡ò¹¾¹œÙ¯“‘¦¦ý’ã£ÞªÕ·´ëúú½Ä¢¯¿«Ó×ÖêÅâôÒÓ£—‰ôÕÇÕúªªýå¥ +äÞ¨Ô×ÔèË»Ëõ‚¾¬Ì¼ßÚªçóõ¥æ¥úââ½§¤¯ªÒ—–ꋊŠôÜ®¾¿ß¿Ÿ—§ÏÍÕóƸúììýÖ–çžÍÖçæêÓ‹Óõ¬–¾­Í +矚ªç²õÉÇÉúÄÄý‚྾ޟ—§“‰ÑÇÇ룣ŸõááúÐÐý‚𰾨ȟϠ÷õÕûûëü—®ÔÏŸ¯ŸÐ·Ï¿çŽþÖþ¬ýôéúÉ“ +¯õãÇëÿøÁ¼¿ê”Þ…¬ÉÓá’ÿìÖþ½ÃÔ…§‘ö’Œ¹“È»‰œ“¨Ä¸‰þɈϠ…æ„êÏÀö‚­­§°è„Ô§• ½¥Çá¸ÍŽåÇÑ÷œÖ +ØãØñŒ¶æ¬¶¾†µÇ±þ¨¬¶žÁæ£ØöИ»Žãס춾ˆ½‡±ÿ€œŽžÀу¸ùí˜æÕŸ¿Š‹ûǨ×ñõã¸Ôù‚·ÏЄŒ±á“´õãÁ‰ +ô¼º§Çñ츘ޜë£øðý„ïãýÁîßÚšì‡ö¾ŸÇî·Øõ†»ÄÞáÛ‹ìþ†­Ï°þ‘Ö¾ßÀêû´©åž¬ƒè»…å̷Ḏ¥×¡ +Ž„õ…¬º­Ö³ÂýñíÔœ…ðøûòѰ—¹»¶òŒ­ˆÛˆ…ãëþÓŸ‡åÅ«µúìÖô‹—ï뺻‰Ö«ëùꢚ®³“¯¨ÕºŽŽ¢Ò +ŸéÚÛɢźŸ¥’´µé”ŠàÝë«ééÑÉç夹٧“铚šÈã£ÎªùÕµ´èêë‰þÄ¢««ÓÕÖ£êÄâÒÓ£“½‰ôÕÕºªª¤Ýå¥Î¨ÔÕ +ÖÔòòÀ ü««Ó•–êø¸üÝɉ®¸ØßÇã銊ô…ç…º‚‚—«¿ËÏ×åå鸈œÝÎŽ®»Û×—•¥ã³õ™ç™ºôô‹¥üËËÓ¥¦ê˜ +ˆÌÝò²®©É‡— ã°ôñÆñºØØÝô´ ®²Ò—‘¡‹þ‹Ó…„è‚‚ÆôºÿÿïÎËËçé雿߷÷®£ÎÍÍ·ó¦îýÚ´Ýäɺñ +ùãõ¿ü ûö¾ÛÝŸþô›ÙúÓÃ¥¿‡¬¹„ŸÃÀ±ÄŸÃ¡ò±äžÃÞ±ƒðŽÁð”ÕǸÑû”Ò£ŸšÅÛѨŽÂóê„ÝÇ ¿‚ž£°ÆßáØ +’ÃþˆŽÃØ ýˆëâýÁ¬ì¼€Í‡°õÞ¿¶ïÃÎýعµ—ûöàÀÞΜÙã‡ðúú Î…ø¼ü„׎àÆÑܺŠÁ£˜ºŠûDZò” +‡âñ‘¼½Âóóçߞ«ƒÜøó€úâýØâ‹ìöý Î–‹Ûßâëëì¾þ‰Ï±þ©Ö¾ÆêÇ𼻀ý¾¬Ãè›á‚齃ô¢ã¢ûš´× º +›„¶þÈÏÁúòšµ§Ñõñö㎀÷ùû¥¹‡É»‘½Þ›á¾á¿›ºµëõ٬騿Ö×—Ö£¡›Ä­Ööôš•ÊÛÞΖº­Òª•¤­Í +«ÐÖÖí˾‹‘˵ÍÍÚƒ™Œ´µé››áµÒ©éèÐÖÁ×륒Ò×§ÿ­­ÕŠÅښ𚢒髫µ¬ÕÕÚÊʭз¨­¨ ååÚ‘ÀÛÖ¦­­ +ŸÕòùÚ’’ížñ±–ÇÓ–•ˆé‹‹µ……Úü®×›Ÿ¯ÍË‡Óææê¹œíâÎŽ¶»Û›•ͥ峵™™Ú™ôô­‹¥ÍË—Ó¦¦ê™Ìíâò²¶©É› +É å°´ññÚ‘ØØíô´¶ªÈÊ›‘¡×û††êƒƒµ÷Ú€€­ŸŸ«ÖÇÇ»ð¡öýÁ‚­‡‡ÖÝžÝëæ¦¹ÓÔ»õªöÒ¤íå¸ñÚ±ã´ß +Âþ«õ¡ëƸí䟞µß¯Ö•ë°ÂŽƒñ˜†é‡‘ý˜…Ÿ›ÿÕ¿„ŠÃÖ‚äšŽÑ§Š‚ò ­™÷ÞÄâƒÐŸ€‘ñ€ú ï¿“¬û髽㟠+ÞÖïÃڽط”—›öàÓîì›Ù…í»°ã§ÞöïÄþݸ¼Þ‡ÇöâÔ¾œÍÝÏ­÷¯ÄÇ•ƒ¸þˆƒ‡¢ðûͬ¼û…ˆÆò¾¸Ä³›çŸœÄ³ƒø +¹¾Ÿ¯÷áõÞ¿¼Ýƒ÷»©ÇØžö€ÛÞãËè»ìúƒ¯°•î…Ö¾£³õÓŽÇôˆÁº‚­¾û轋ãéèïãñ€º®©ÓË‹åå´Ü’ÄÓùÈÎÂô +芕§À¿Š‚÷ú€éûÁ÷ذðÚúóŸý¬¾åÅ…åúìÖ´Ÿ«³ÚÓ£Ö“ŽŽ¼ÊÅÚÛÉ¢Åžš¥’´µé”ŽŠÒÚªéé¡Îò¹¦¹Ù£“ +Ѧ¦Í㣑°ÊµšúúÚ¢‘èêê´µ¹µÄ¬ÖÔÔèðÄ¢ÒÝ­©ª‘ÒÔÖê„ÂÍÅ…©¯×ˆ„ãš²²Í驆ïÏ×””芋 µ¼ž©ªÒ” +À–ꊊ´Ü®ø¦¿ß“—§É³ÍÕ𸚜œ¼ÍÖ–†ÍÖäàæê²²´é鸚–Ë“–¦ÉºÉѰ™šääÄÍÒ’¦¡ÁÃìàèâãµ±±£š˜˜ÍÔ”¦ +²Ò“ž®‰‹·Ó„„è‚‚´àš¿¿¯÷¯ÆÛÛãé©¡™¿ß³ïžæ½ÎœÍìÙš™ˆ³´Ó§ê¦Î‹ÔŒ«™³Æ£óÍ·š—²æ‡Ëþ§Ùó¿ +뀀ƒˆº€¤¾ƒÈØÜý¨¿Ú²ý¨ÜÏ髈û虼˜õŸ–íƒú¯þí¾ÐíÅÒ½Š°îÁïžØö‹Ãº›öÝô¨ºóõά݉õ»°á»¶íà +ïæ­Ø¶•»¶òãߎœÜ‰£á»ðâÎïÁïù½¸°—÷ËãÚþšÒøë€†àè€Íü̜هûñ¬øŸÍäø¶‡î¯öàÕ®ê°Éüî‡Þ +¡‚úøíúöï±îµÖ¾Ä³êçð¼ƒý‰ó¬àù€Þû¤°ŽÓŽÎÝ áºîÁý“‹®³£õŠä—ÐðñÖüªÏ ì–”ŠŽ£÷ˆ²°Ž¡é¿¢ö  +œà—Ü·ÿ•ÙûÓ¸ÖŸÍšº·£ƒ¨Ôêöö¡²è‘ѪÕíôíġз¶’å––µÜΚ›Õ²™éêÒ·´¶’©ÔÝÐÀ÷êëÕ’‰º®ŸŽÔÖªÅâÒ +úÓ£–‰ÔÕգꪪÒÙ©–²ŠÕ••êòòü¢¨ËÊÔ¥Á¥ê¾ßÝҢ𮮦¼žº¨ˆÈÝØ¨®¨ÐŽó¹êüüõÞñžº·×Íá¨üóòÔÙÙê¬ +¼¬µ›­ÎÌÔ¼çä¨ÓÓÕ¬ñ–ºµÕ’¢üæ²ÕÉÉꤸ¤õ‚šÁЧÇÇ«ããձƱꨨõ䤠º¢Â–¦Ž‰Ñ‡‡«ƒƒÇÕþþêßßµ +¯ÚË˽àÇÚÃý÷®£ÚÍͽë–úíúôõ”©ê‰ú“ÕãǪ¿ÿÖÞýÍ·êÿÿï÷ßÌÚ†¸äÇ÷µß¯øáÖÞ„îÅÜž¤µîÁÖžäïÁ +­ñž”ïÆõî§Ôí†ô·š÷úñ‹í» ÞÊ…íÎèöâéÈΘ÷ ÷‡úç¶Ãº«¶Á­±•έس…ì¿ïÆúÍØ¸Ð‘Û¶áç–ì‹ÙŠƒÛðä‡ +ÏŽïĩݴ¸ñ©ÿ·®íÁÕ¾‡†ðÞƒÞ‹»ûñ÷ÏîíÁÈž¼ÜþÍ㦞îÂóõø¹ƒ¯·áÝíÖ¼Û‚›ï€ÀúøùžÖ¼ó•œ +𝩻ƒõ©Òçíýˆãˆ–×ރ÷ Ç¾ö¨î ùš¤—Ñ÷‘óÕý¨¿‹âÓÈ¿‰¬ãȽ÷Œ¸ƒˆÝ‡…÷»ÿŠ‚òâ°Úý¶ëªöö +“Õ¢ÅÄ©¤íüíª…‚´¶ªäÚÚˆÜΚ›€Õ²™éêÒµ´¶’©ÔÕÐÀãêëÕ’‰©«žÓÕÖªÄâÒÊÓ£’‰Èõµ£ªªÊÕÙ©’¸ŠÉÅ…ª¼Ü +Œ¥²²Õé÷©ŠÏו”¨›Š‹‰§ªªˆÒ•–ªŠŠÔâÜ®ª¿ß•—ǧÊÍÕñ¸ª‘œœÕö¶ª«ŠËÅæ«²³ÕÌ™™ªôô•‹ñ¥ÊËÓ¥¦ª +ÒÒÔ̦ª¹ŽÙ•˜¨ÊÈÐŒ±˜ªøøÕìÁ¬ª¦Æ•­ãŠŒÔÅĨ½ÂÔ¡¡ªààÄÕЪ Àåç§òñÑùùñ©–®ÔÍŸ¯¹š·Ïåî®ò +¼óÓÍœ©š¶¨Íµù²ê„¹ÕÏ¿©¾ÿÞçõõת—²¶¬‹®ùýäÍí‚§üö¢ò§’†÷‚µ“¹»Ðµ°ƒü¨Ø™ÑŽÈ¶£ñ»ïäÛѶíÛ +†è³¼ö«ôÛé±ô‹ŒÛл´™ý›áÝ„•â›±òƒÖ­ÇëêõØ»Žë×òáóúì߈ÝÛ°ÿ³ŽíÅÉ±í¸¹ç¶óãüŽÜ܉Ëà»ñí§îìÄ +ù­Ý˜Ü‰¡Ì´’øþμØÍÇÛñ䛞®íË­øµ™¬ï¶áíÆ¼ßî¬û¥¡ìê…÷Øõ–«ßã±Å«Øß ï™ŽúŸÀøˆËŸÈÀ÷ŸÚẢ +íоˆ¶Ûß’ÄãõÈ®Âô艕—À¿‚“³È¹…Ö‰¤ÔžÅ䡸€ÇÛÞ¿®ëª×ãê³ÙÓþ¬¶‚¶¥ÂÁÚÛÉâˋҮ§ÍÍàĦӶµ‘Æ +ÂÆ¥ÔÊšš”ãõõÄ¢ÑÖÕ‹‘ÚÚ¥ØÌê²ê”¢‘©®Ö ÖÕ©««‰Ð§¨¬¨ÐÖ”«÷ËË•‚²¬ÌÙÚÊøüåîɉ²¸ØÉãã‘¢¢åᡲ +í ÀÉåªóóÙ•ùùÊÜÜÂñá¨óò”ÙÙóʬ¬¥›­ÌáÌÔæä¨ÓÓÅ•¬–²­Í™óšªä²•Éɣʤ¤å⢲ä¡ÁÉà¨ã⟔±±Ê˜˜å +‚ô´²²Ò™‘±¡Œ‹Ó††ªçƒƒ•ÁÁÊ€¾€¥¿¿Ò×××éí­Ü¸Ð¹ŽàÒÃù÷õ®òΜåìÙ©Ê™³”Ó§ªè§ÍÒŽŸ¯üýñÇåèÑʯ +ý¿Öþñ¿™›µÃðÉï¤ëÍ¿ÞóüíˆÚ—†˜­ÈÞÊ‹Óá¹ÛÑ´…¥ÜÛ Ü‚š­ÔìÆÓæÈ·£¸í“ԛй‘·ÚÐí ¾‚—ÆõÔ¸§ï +ë–ÿŒÛÚØ×ïÀ±šúÿ¼Ö†›ÖâÛºì†Ú½›ðð£õŽì¢¹„§·ÿРÝþ­¸´Ü×·áú¶Ü܆ÛÛðç›îîý­´ž»øá–š§øô +š“žïÄËøÙ½žïÖѸøëþé¿ìøàÀ«íï°üÒµúÞÒû¡ãŽÓê× ûȇüÜ»ïÓé»¶ê¡Èï£é€öš÷Ö܃ðŠÊö¯¡¨Ÿ¹çè +•õÆòÉĜǵБ̿ô×ýŽŠŸòâÂý¶öëŠÖÖÒÒ¢ãËÉó³‘ɸ”Íͤ±‘ÈÇ¥Š††Ò߯áÈÈÝ©­žÕˆÅ¤¦Æ¡Æ’‘êêÅÕ• +÷¢²’ˆ…ŠŠˆŠÒÞ®ˆ”ìå头ÔÁçà«ÊÊÈñ±‚ÇÓ”•©Š‹ÜÉÁ‚ËÕäíç«òò”¹¹Û„ÃÑä䨲³•ÙÙŠ¶Ûß‘™©ÈÈФ +Á§«Ø¬ÅÚš¸¢µÕ‘’¢à¼²•ÉÉŠ¤¤„Å⢢¡Á‘ˆ‹ÓÄÆÀªââ”ÑÑŠ‘ÈÈÅÄ„¢¬ˆÌ‘šªˆ‰ÑÀ„…©‚ƒ•þñþŠßß… +ûÂËËá驘ð¿ß±ïžÂÝžÝáæ¦˜µËÔ±ýºâêÔÅ•¤ÉŠñ㔿¯þ¨øî»Åßãþ¢ð¡ë§áÛ’ßÕ֦צ„íÂü¦¡¤î„û£ò· +‚·öŒÖî¹€ø½ê×£é̽ÚÖÑÑËÕ÷Ïèü™ÚµÐƒ­þúÖã•™“æÕ°¸àÒ݉•ö¬Ú‰¡µŽìðâëšåìØ‹½¿Óì‡ÁÃëñìƒÎ +¦îę͸¿‰Ì—·ãòæÜÛ…Œ››ñ볆зã賆·á™þ¦¼ØˆÇ›ùð佞­Ã‹ãŸñê­Þ¯Á”Û§Þ»ð᥽°‚°¾‡å­Ìï°ì•úÞ +ªÀÿŒº§Ð¾ªÆçèÆÐöÈ­÷Ñô‡õ×·éèÂåõÚ¿ëÉ»Œü‹àµŸÇêÙÄŸÆñ؉øÃôôÿõÖ”®Õçµ³¦ÿØÍÍIJ¦“·µ‘ÆÆ +†¢•Ê›šÈýʽ‘Èäõõ¤¿¶–ˆÅòššœ¢’É««ÉÕ²’ˆ…òŠŠÒÞ®—ˆÜÈÙ™¼´ÔÎÇç“’’ùñ±ãœÇ£ÅÅò¸ÂùÁœË¥ +ùùò¼¼ùîÇ®œÃ¡¹¹òñììùÖ–œÍÉ–çæÊ³²äãééò–Ëž–ø¦ÏÍ•§¤È‘™Ìùò²¼©ÆÉž˜¨ÏÈŒ³˜òøøùÜœ¼¶Öž­ +§Š’ÇÆÊ£²¢äááòÐЄùȈ¼¨Èžü˜¨÷÷—ûùùÉýüäÞÞò¥…‹å‹–Ƚú¼äóçÊçÌ—‘Ïž­Ÿ¹ÓÔ¾íšüÊ”ù·Ä‰òñãä¿ +­ü ÿî»ùßáþ¢÷¡ë—àë’ßÏÖþ½ìιëà·Ž‘ëËð³ÒþÆö¿ÏàþŒâµõ¬ÅÕšˆ× ôþšÖ£Å‰¤¶§Ú×Á½Š ÝŽ¬Þ‰½ +©†•°®À¯•Æý˱ü¹ÖÚ¹°æ…Ö¯ÄæÊ‡¶»±ûµö¯­Á¡µ¸ú³ÎάÃéõ¸·Æžýëñ郮¶îÀõ¸¹­··àÎúÜÝ•ûë°²Ž +®ÿÆãµøº†­Ï×ã…“¯œêø³’ïÖàƒÈØŽôýÀïÜ»˜ßÂðšúÅ—ØüœÝÏ¡Æþ‚öÇèû€£–ûèšÆý¯Äƒ¨º…Áͨ”߃÷в¯ +ҡ킒ΡâòŒüÎáÎñ¿Íú£ø”——êå³Ù“µµ‘ƂƙÔÊššÈ„ý½‘Èäõõÿ¤¶–ˆÅ²š˜š¢’‘êêÙÜÕ•©¬”‰…ƒ¤¢ÂÖÞ΄ +À‚ÙÙ™©­•ñù¤¤ÄÖÜæ¬ãñÈÑ‘¬³°””ȸÜäÙþ¾¬¯äÃæÊ¸œÙΎ䬻›äåÉØˆìÙæ¦¬£Ã“–ž®ã±äé¶é²ÔÔ’’¢ +øã²åÉɲ¤ˆ¤Ù⢬¡ÁÝÆàÈââä±Ç±²˜˜Ùô´À¬ªÊ–™©‹Ÿˆ……ÉÂØ塡²  Ùâà ¬ ÀæçΧóõ•ùûËä–®”ùúÊæ +Ï—Í›§ó÷ï—¹¹ÉæÍ’‹Í˜¡›ºÕ¶êù²ìÂ„ÙØ£±²±ã䣯·É¾úÊö‡¿ÕüæÖîÂ¥¿×«¬ýúåž«ò‘¸šÑ«‘äÒĺ“¹«Ð° +ÔŠ¥«ÐîÀ•®ƒâ•¨ß‰¦Ú»ä«Ð¶‚í­èÚŽîÙåØâÁÒ¾ôÕô♉–ÞØËûàÜŽõÖšÞ´¸ÍŽŽìÂÝ…ƒÎœÞãã«ñêά +ßÁùµ¸¸–—××âÚÚÜØ‹³µ˜Ü‹¡µ¼˜Þƒû«ñàȵž¹ñ䕞–¹ðÜÎÓ–ßòÛñö¹Þ÷áÔï°Œèù§¥ï¨»ó÷«îô½€ú¹ÚŸ +«¢í±äÑ´Ó‚úûßÅÕ–”߯ɀДî çšÒ¯£é¢¢ú‘øŽöž§ÿ«ÏŸòáâÚý¶ëÒ†€†ÒßϤ’Ò×Çêë¥â±ã©©¡¢‘©® +Ù–ÖÕ‘ÊÊ©ÀÐȪªÈù¹àÔ  ååÒÒ†ÒÂçËËÊÈŽñ±”Ç£ÅÅÃÒÂÂÒРåŽò¥ùù¤¯Ï‹š›«åðÈÎ±Ž´»Ûš•¥’å³É榴£ +æÃšž®å±¤ìééÒÔÔ’’ø¢å²¥ÉÉÒ‘¤¤é⢴¡òÁÊàÈã㥌ññÒØØéÌŒ´ºÚš™©ßˆ†‡Ëÿ¤¡¡Òàà„éд°Ðš +ü õó“úúŽÊ½½¥ÞÞÒœÏÏéüùÒžéܹҹó㤳çËçΔŠÎŸ®²Åºªé’ôüøéϼ¿ÉÇŒ‘Žš–¥ýê«©‹Ù›†ËþïÙû +ãõâ½×¢ØŽœ˜»’íÈØÉΊ”ØÐâ£ðîÕÖˆ—£“Þ‚¦‹äýП˜±¨—ºˆëšÌК±¸‡ú ƒúŒ´üÉæ÷¢é‚ëû°ÁÙ‚­Öì°á÷ +žŠì·ãÐÊœÖõà„ƒ§×áåܪô»ñɉ°«ÎÜ÷⦓­·ÖáΪÜõãàžƒ£«ñУŽÇ«èÖ÷³¸«ÞØðª¦š¯¾³á½‘°Á€æû¬þí +°ÛèÞÓ§æÅ’¯ ø†ù“´ô½Âýƒˆï£Ò꘺»”Œ¢‘à–¸·‘ñ¡Éבó‰Á—½àùþ¿øð©Ö¯®Õ糦ùøØõõ¤¶–ˆÇÅ’šš¢’‘ +êêÒÕŪ«Ø¥Â¡©¨ åýå’€”•‘‰ÒÒ‰ŸÏÊʾ¤ÅńǓ”†•‘ÂÂÉÁ™áò¥ùù¤¯–Ï’›«áðÈâÎŽ¤»Û’•¢ÅØìÉæ¦¤ +Ž£ƒ¤§ËجÄÉÚš¤µÕ’Á’¢á²Éò²˜¤©É’˜¨É²È°˜’øø„ÉÜœ¤¶Ö’œ“£‰Ž–ÄÅÀÉ¢£¥‘‘’‘ððÉØ˜¤¤ÀÄ’œ¬‰Š’ +˜„†Êüý¥þðþ’ß߉··›ÄËËâé©Ù­°Àâá¡™·ÆÏâî®ñó“‹Ìš¥™±Ã²êíšäòäÉÄˉ’ñ㤿þö¨ùþûÉ·ßöÊþüçÉ¿ý +ÉÛïæí±Üòþ»ÌÚ¯×ïµÆœ¡Ë‘ëÓ“‚Œ¾ðúÐàºÆ‰™å½¨²ÄÁì‚䙚êèîÁ«Ê¥¢ÐééžÅ—Ž«ÝÝØªÃ¯ž±ËØéÄšå +ÎØß‹Íæìë¯Ã®åØëÅÁ†«ŽØðü…γ­À™»ÎÛñçÑŽËöܳãцƒöÜÞ»«°ìÃý«ÄžØñ蹞÷«á©™Ïûñò¸™Þ›ñÖ€÷ +ÔúüÐÝÀ×·šó¡úƒåþ«´¾¤®ÍÞϩͥø¡ª€ÆÐþ¥÷Ñœð‡œÛȘ€©ó†â¯¡ôŠý¼®ýןü§û¼¸ÐŸÍšø¶ãÕÔ‘ˆÔ +†×“ªªÒÙÉ„ÂñÅ…©¯À§‚©«“—ù–’¾Ÿ””ˆë‹‹‰ÇŠŠßÄ……¤ À̇å’üüñÞžƒÉ͕󸤧¶Çœ­ÎÊ¢’춸³“ää +¯ˆÓÓŬ–¸ž­¤¦ŠÓÒÅÄ̦¸¹Ùœ‘”Ä’“ʼn‰Àâ†ÃœŸ¯Ž‹“ÇÆŠãâŸÄÑÑ⨨ñ‚䤸¢Âœžð®Ž‹“‡†ŠüÃÂÄÁÁâ  +¸ ñÀ€Øßß›ìç§öõ•ûþû‹½¼ÄžžÉâ…‹ÄžžâžùóÄîîâ·¾·ñìÙ♳ŸÅÓ§‹§Î•ŠÏš¤ž°Á¼îö¬ø‡ŸÄ£îÇ‹¿ùÆüå +™—â—²ö’®Ùùýæí×Û𜱡̄¸åà”®Ã†‘œž”—ô Ä€ÁÒÔԮŞ’¥Ùê ÛŒ–î´šé±ÈƒŽÎôìõÂß…åݰíèà×ÃéÀÏ +нØèÄÖ“öµôâ™ûûð¡¨Ç­¸±œ¯§—ãÜòôÛ†ñÉŠ«ÖÜ߇ޛËñ빆̭˜êÃðŸî—›ñ —ÌøÖâijž¼°à啞¯õøÛ +‘÷ÝÀ§Ð¬Žú¶·èù¡Ù«ÈßÀòŒ¨µÏÐùˆ‚‡î¨¹‚ûàÜÂÅÆ°ï¡îþ¦Â®ÃçêßÛä±ÿÊ‹‹õŸÙ¬‰ª«ÅÕîÕ¤²’ˆ…¤ +”—“€Ï”•‘ÒÒ‘ŸÀÏÊÊÈñ±áññÄÅŤ°ì””ˆ¸Ü’Ÿö¯ÊË£¹¹„½Ã‘åäììÐÑÖ–á³Å™·™¢ŒŒ’ž®’â±ÈÚš¨µ +†Õ”’¢â²Éâò²¨©É”˜ ¨ÊÈ Œ†¨à¾Þ”—§Š¾•ÅĈ¢£ÅŒÑÑ¢ÈÈÑÄ„¨¼Ü”–¦øŠ•…„ˆ‚±ƒÅÁÁ¢ÀÀÜÑÀ€Èßßä +ë«òñ‘ùû÷‹¼¼Äžž¢ø…‹Äóç‹æýÍ“¹»‹æÌ–‘Íž­š¹ÓÔ´ã†èÚ´ÑÍ”©¢‰“ÅãëÇ‹þúÉôÃ΢モýýçµè˯Åÿú +߯¿™µ÷ðÉáï¹ëîËỸ”áúÄéÁÜ‚Œ¸º”¬˜Æñ·Ê´öÂÁ¤ÁݧšÔ¶èê€Ü…ÖŬ´¿°³ºŽôôÂÜ…Û·”œº¬Ý‚Ë +¯±Ù€í½Øå£Ä¾å¸è‘ΓŽ÷âԯΘñÞŒ‹æÜ†¶ãª™·ú±×Ћۦܱá¥î²Ü³â¤‡Èø¼”Ï—ó๎¯»ñª˜‹ïºñ®ƒŸ +ýÚÿ™ËØú¨†Ùµ½ÁÃë¯Ô½„蹄ÏÚÑö˜ÅÐðŽ€œûȘ†óÔˆñƒˆ»…ßý›ð»ö·Êš·ÈµúìÖ„Ÿß«¢‚”—“߀”•‘ÒÒ +‡ç“’’ÒÜÌ€ø¼ÒÔ¤¬¬Ø¤……„Ë¥ù·ù¼¼’›ËผáÎŽÉÎÀ–æå‘¶Û˜ñ™É²²„ééû„Å’¦¥‘Ô¸ÔáʊɤÉɤ¤áâ +À¢ÉȲ˜ÂáøøáÜœ‰ö•ÆÄˆ££…ŒÑÑÂÈÈáÄ„°¼Ü˜–¦ØŒ•†„ˆƒ³ƒ…ÁÁÂÀÀÜáÀ€Ðßßèíç§ôõ•úøŽˆ½½…‹—Š +„½½…‹–ˆ½î¼„óæ‰çΆ•Ι£ôó“‹Îš¥œ±Ã¸êíšðÊ”á¤òɉ“„ãÆÄ‰ÿüѸ挚ðÔ¨á×ß‹ë¿øÂèÂÖð½Ö¥¿Û¬ýú +œ—óºá«ÅØÞ—âºÀÔ £¡“úƒó»ÀÓÓ¡´•‹Ð­£¤‘Ê’…¤­ßÉ¡£Ãü¶ÃÔ»åØÙ…ÕÚ…¬ÛŒÍºìÝ«‚úìÙŠƒ +ˆ†œ¶àØÎ÷ôà´‘çŒèæ·â’‘׌¸×Öƒ›½¸åÀá Ã˱¬Çùý¥ø Ã£Åîø¢Å³®¼è«ÄËŽ¼îÇÛ’¥Þ«èä°äÀô½¤ïé¨ +ÒÕõ«Ô¼Àé¾³ðž€û˜úŒºçŒ€ùñ°÷‘ö‡¾·±ÚçàïõÌ¿å—Å…úìÖ„ŸŸ«¬Œ”–’¾ßŸ””ââ‡㑢¢ÒØÈ芊ˆ—Ëòó + …ùù¤·—𰸤§ÇÍë²²ˆ›­ÈÌØ¤™™‚ôô†⑴´ÁêªðÉÉ‘°™‚ä†ä’”¤È̤€‰‰‚†ÃŸöÏâℱ±‚ᘘÁô´‰Š +€’ÄÆŠ¢¢„áá‚°°Á訠¤ÄœÌû‚‚„‚€¾€ŸŸÀ××›àã£ðö–ø€ù‰–®”øú†ŠæÏ—øøˆÛæÍ“¸»‹æÍÌ‘¸¹‰æÍ +–’̘¡˜¾ÝÔ°õªàòäÁŸÄ‰‚ñã…ãéÇŠþøÁðýË÷‚Ñ£„ÿùç‹à‹¯„ÿòÞ¯¿µç®ùÔ½çíÓܺà«Âػ◡ÆÙ‰ô¶ä« +·ßŠ¢–ðå¨àïÆå“ĨÀíÀýښѮÃ׋ôЬÎÓÂÒŽ•ª¬€Òãí§¶ôá‹–Û»±û±¥ö­ÆÁެ“Áñ¥¸µ„çô¸¯Ç…½® +¶¯ÁÕ¥¸¾„ÔƒºÜÞŒ»‹Úñ·›÷´˜éãÂÃμÖã©®ŠÏÛñ‰×ÊŠ¼éÁ»™ÞÔ·‚õÀ퇈×Þ¡ò­Ê߃¹ÿ’ÅÏ‘ÿŒ­ÙÏþˆÉ +°ûŸáÃðßœÁ¿áƒÿÙ”——ê³Ùã†ÿ¬’’ÒÜÌ€ø¼ÒÔÄŠ‹ˆÉÁáòÉþö¾ÉË£¹¹„±Ã¡¹¹üììë’•ÅØì’™÷ÉÏÈ éé„ +¿Åâ§¥‘ÔÔ‡’’Âç²ÉòȲ¿©‰¤¦òø“’ˆƒÁŸçÇÅ‘ØØþÌŒ¿ºšÄÅÉñ££ù‘‘ü‘ðð’–Æÿ凄ðƒƒùŒÁÁüÀÀþÀ +þ€ñ÷çûùñ„ýýù¾¾ü¯Ž¯þÂ…üÏÏûþ‚…üùóùôžžüùóøî“îü¹óøîîÍüÙ³ø³çòõ§ÏçÏʟ²…¿é’ÿ¶„þ¸ñüŸþ +Ëâ™ÃŸ½šÿÿí·ü¯¾âãÿéÏüײöýÀ¥¿ó¬Ýÿ‡ßݽüÚªˆÇ̳’äÈëÊ‚»‘¹Ò”Ôͣ؂²ÚÔÔá Ê„Éšë ìÀç£ô² +³ôÈáî…µ¬Ž¥Ö´ã½Šõ›º°ÍÏØ«Á®œî±­ÎèñÚ‰‹óÚôëñÉñ‹«ÚÜë–®ÜÒఓØêŒ÷ྊ‹Úñȉ§íø +÷ÖŠçò¼”á”õ£Þ¶àÝ¢¾Ô€ÕÀÅûË”½Ãñ›”¼ÚÂî‹°Ÿ£í’©’ž£æ¡ÂÚÇàóï×›ùéÛ¾™¾ëõÙ¬ñŠŠÈá¡à©¨ Ü®ÉÏ +¹ÿ¤¯äæ’¾Ž‡ääììàÞö–¯«‹Ç¶æ“ÌÌ’‘ÁëÒÓ‰‹ÅÒÒ¦ø©©¤¥…°·™¼ää’”Äà’“ù‰‰„ÁŸàÅÇ“¸¸Þœì¬‰‰áÅÇ +‡ó¢¢È䤯’¢‚—‘΋煅ñÂÃù¡¡¤¸˜—”ÉÄ‹Œä…„ðƒüýùþþ¼ßößžñöæ¤ùùñ–®ä­öØÀ›¿Ÿçá‹Á›··÷® +ÿÏÝçæÆ›Â½›·ë–ïÆÞŒÞôé¼éÓÌøÓ¦ð¦Íâ¦ÍœÈ›¿ž·Ìö¬ïÇŸùß®ÿÏûî»Þ·ïßðþüçÞ¿õÿ»ïÿý¯ßûÎÚ—üþ³ +¹öŸ÷äՀஉ¢êЋԘ±Í…Ì©Æþª¥ŠªÀ— Â¹€Ú¡šª¡›££ŽÝõت›…©‰Ë›áïÓ³•¿·á£€’Û–áÇ»ö›«°Ï…ƒ¸ +×ÒãêœÒãýŒšçÕ¸ Æ™åŽÜíÀõ•Šîªð»÷–Ûá®’÷Ú°Ò³Š‡­øÜŒ§ØÍø¦Å‹ú¼ÓªÃ›±ÞÖ㉽€æþ—õ½ÇþÛ伦 +¶‰Ž©¯ðŒˆÑÏüˆÞ½þžÏ™òâÚøý¶ëÜ•Ÿ¦ÏòòÈîî§ìœŽÉÉ¡ÙÙœ¤«‹°Ù¤³Ù“ääôô¶⑴´’šÊ„ÒҸ̦ÉÎ +à¦Éɤ±‘›ÁÀ˜Œ’ŸÏ›‹£±±¤¦ñ†›Í¢¢¸“‘‘¤¢‚›žñ΋£¡¡Üî𰉊Áↆòƒ‚ˆý¿¿×ÏëëËõñáúûó +‡½¼¸‹—ò½â½¹‹–ðçÏñçúøðçÍãçÎËõ÷çÎó™ÃõóãΞ‹Í¹“»ã†ú÷úôîÔ©ÜŒ©Ó¸“¦ñ§–Î䎟ϻŸ–ûãܱã +㸣ÇóÇâÚþýµ÷˯¹ºÿü£×•¬ÝÒ÷É¿ËÖþ½Â©Ïª„Ö¢¢Æ‚ñåÈ®ƒ‹ë¬âä–¡ ¸€å¼ˆøŠ¡Ð¢Äûµºê£°¤–Ɖúš +Ìàë„£‰ëší±ÞŽÍ­ØÖéŠÝŠìíØ¶œÖ☒§Í”¸­Ä¹¥úŸ•¸¨Ä•¶Ü‚ëÃ…†Ú±³Ø‚¡¹†›ñ±¿‰šñ¨±¥øÚ‹çµ +¬øÙ×¼‘àŸŸøÀ³ûÙïÀú˃ä׈ÿÉÓüœƒŸÂóñßÙé¡ÿÊ‹‹õ³Ù¬ñþ­œœÛ’Ͳ²ˆ›±ýÉæ¦ÉÈ éé„Å¢éé +œ¤µ•¤¤¦Ù“¤§“¤¤’¡˜È’’ˆƒÁƒâã¹ññ¤¶·–ÄÄð¢£ÉœÔ”‰ŒäÄăððÎØ˜‰¾å„„àà ÎЉŒä„¼„ðüý‰ŸŸ +ÿÇ×—ããÃñ±ö¦ÞÞœ…‹Ž¹žžœ…‹¸Ãóç󼼸óýæñæÎ帻¾óæÌḹñþæÏæÌšÅ™Â¹“³ã†çÚž´ÎÔ©œ©Ó¸“¦ñ¦Îä +匟ϙ·Žó¥ÓÏœŸþàüÝÿ½ç»ï¸ßŽüÃùË߸ßÎþÉù㟹ÿµóÿþöÖúÝíòÏ”µßïË‘£„þ¼„•¢×†‹Ä¼¤ò·‘…ÜìðóÐ +°Õ€É±šùКŠÐ©Ä⪘‚Äè•ãùÖöʰºë¤Ø×؈­ÍءÕîæìëÆÁ¹“ŽÈñÜŽÓòÏœ‘㼜—俸Ԍ«Í¸®ëÃͦÜêÄ  +è”ø§Áý˜º¼ã‘ˆÏ˪ð̈—‚¼Óâãõ±Þ–àÄýžä€©§ï‘ø–±¯‘ñöŠþ¯àñìï÷„ÿÏÞþõ«¾›µö¯•Á™É²²Èúú +À§¬–ÉË£©Ï©Ÿ¤¤¦“줧“¤¤’˜ÐÈ’’ˆƒÁâ±ãÉÜœ‰¥±±¤ºšÄű££ÉÄ„‰°§ááìÐЄ’’ÂŽŽ¦ÁˆÁ¤°À +‡üýÙþþìß¾ßâãÃööæìûù‘…‹Ùžóžì…‹ØóçØ“ö¼ùì½¹óÙîîì¹òóØîîìÙ³«Ù³æ±çÎä¯Ï˜Áž¾½èíšûÊ”öä +›Éìɓؓ§×²Çç›ÇËþé§ö¿°«ÇŒážÍžþµŠýõ×쯩¾âÿñ…ûœÿà»’µ“®¿ùçÊÚ¯·¶€§›Þì„å €²ñ©ÈΠ+¸ö𸙍ÈÁôížšŠ à¡±ƒí™ô娆¦„¥Š«ÄØæÕƒµâì¨ÃŒæ‰¶Õã×½…ö¶àÀƒŽËäñÔŠ“Òœ–ë⬔ý¸Ø­€«õ¸Ö› +œ’ŒÔᶘ÷ˆêðׄûÕ˜â‘âṞ—áÄ©ŸÏùøÙ€Ø×ùø“ƒ÷™ƒø†¤ñŸâùŽÁïáõÈšóÞþÝŸï×ÿÉËïÕç³ãÆúØé韤 +¯¦’””Ϙ̛’œÌ’’¾Éð̤‰‰„Áøü¤¾žÄőذؒ“â£ÉŒÔ”‰Œ¤‘‘ü¤¼œ„…‘ЀÐÖȈ‰Ž¦ÁÁ¤°•ÆÀüýÙþþÄ +ÿ×—øø°¼½Ó‰——ëá–™§§Ù°€µÿþ¾ËÃ̛Çýš»—åîΚγ‡åæÆæÏÞæÍšÅš¹“еã†ëúôִ鬩ÓÙÓæ°¦ÍâÍœ +‹Èš°µþ¼ÊëìØÖÏ¿±†þøµæŒë­ôè֨Ѭﭾáý寬¯­¿äýéϬÿÝû·ÖÿøŸ¿óµƒ®ù§ËÚýÿ½Ú²¿”žþш€£ +Š™Œ”¤Ãó†šÌȳђ¡‹ö®´ÅЕ㣇ó™¬åœØÙÕ•Ø×ï…ÕØªÂŽŽšì®Á¾±ŽÙŠñÄŒãâœö”㌘çĸÒЃ˵¸ªÂ +½õêܬ­ʨŒÖਜÃå¸Ïǃ⼪¹Â“®žåâÅÈ¶ÞæâõšÞâ¦ã½ƒŸ¢€öÐÀï½æ¿û×›¯„üö¹°öÜ«Ïæ™œÁüÉÒ’ÉÌü +䤡°˜ŸÄÇ“¸¸Ïâã¸ÉÌŒ‰Žþ¤²ªŠÄÆ’ˆˆ˜’žÎÂÂÈè°¨‰‰¡ÁÁ¤²¨ˆ„†’€€ûâïÏüüˆ¯Ž¯ÓLJøû“ü¯¯æÂ…ÄÓ +Ó“¹à™¿ŸÛéáÁæÍãÎÝËÜÝ™óæþ°ÝÜÈìÙ̆ٳ˜³ç²ç¹ÌàΟΜ¶¡¹õªóÊ”ïæäÉÌÉ“˜À“§²§ÌàŽ’ŸÏœ·Ž¹ö +Ö¬óÇŸ™¿ü‰Àœ³†¹ú´ºóÔ¨æ·ß²ß¿þšùÕ×Ìú¯¾àþñÌêÿý׿ÿÿï§¿µí®ùçïÌÚÿ¸Ÿ…Áˆ‰€«Œùщà³Ð•ŒÉª +ýš³ Ì‚šƒ™î¼¬åÂÔˆ´‹ö’¬âã°í™¶ˆ°¹œÍÛ«°«‚û…¤¸ Äá¡ŽŠ¬ñˆÓœ•â¿‚—«ð¹ªœ×„¸Ñ†Œ¾î—àŽ÷ +œ‹ñ‹‘¼¼Óäàñ–žæàùªÞ¤ã•ƒ¦ï¢ñ®Œïƒ÷€…øÿ²ÿ¸ø‚Ì×ê³ÙŒãü¬øø’—‰÷Éìì§±±¼¤ºú“¨¨Ï€¢£ÉÄ„‰ +¹ÿ¤¬Œ„†þ˜’’‚ƒÉÐÀ‰Œ¤Ÿãøû“¿¿âëØËüüˆ··ÃƒË‹¬Üȼ½ÓÉ‚…äþü†õ‡‡™·Ì¡Ëð÷§óæ°¿ÜÜÈìٌ٠+‘³˜³ç’™³–˜Ó§³¦ÍãŠÌʦÌáÌ—žÌ˜´‰±ñô¢ãÂ„Æøñ¥Œñã˜ãDzþþú‰ñ㌨±ã˜ßÿϘ⽚±ê”ãÛðï™ßÿÍøê +æ«Æ—ß²þôú§ÆŸþÀø—üÿáü·ÿöÛìÙÛë’ÿÞ¬‡ý߉ãú¡§¢€¼°ÔÄ¡¶æž‰èÍŠ³…®Ì¬É‚±¼‡ý¹°åÃÑ¥€µ…Ø×„Í +Ø¼ì­ÆŽ’ì¢®Á¾¾Žòñ÷„ãüœäãœÌ‰Î•౪®ñð¥ˆ×‹Úñ³€·ò±˜£‹¡œŒçáþŒ¦ž°ð¨…Ïò’ñ´žÏ£ðô²Œ¯ƒðÖë +½ÿÝÊþãÞ™‹®Õç³–•‰õÉää§‘‘¿Ÿ„‡“°°ÏÀÂÿ‰‰¡ÁƒÁŸ„…ý’˜°È‚‚¾ñ÷§œþþÄ×÷“ŸöŸâíͼ¼ÈŸÂ…ÄÓ“¬Ø +†ÀæÏ§žžäÞ¼²÷®ñ÷ô§óæÄ»¹‘¯Ù³É¬Ùѳ²ç’™³¢§Ï¦§Ó¦ÅÏʦ̉ž¼¹úáÒ¤²ñâô„®‰ÑãÇÇ›—½öìôÏ¿ +–Åÿøãô¿òÄ™“ýý÷£Ñ£ÇÇÿ÷Ý›ô¨ÑÑßü“ýõ×Ñßý•ýå—Ñßü‘ÏýÇÿ¯»‹ï‰êŠã¸î£ †Á†˜à†Ùݘýßç²ó +…¹€ðцԘ„ÄÅÆ¸Àß÷ûФéšô¡¥é״횶˶±ÆšãŒ­Õ˜Áè´ê—Ôª­Ë­ëëòííæìš¾þÕÊ¿œð§°‰¿×¥Šæþóù +¯˜—É̹çþ‚óïÌñÏÑѽÆÓ£¤µ¯Ô”ùÞÛˬ¼ÜŠ×»©ñÆ·ÞÚ‚÷ÇûðÁ€¾žÂ¦ç«°å˜ÛÆñ°ã­ö­Ã—Ãë±ïƒŽìÄ +¹ø¨Žâè˜ÏŽáä˜Îûáì˜ÎâÂØ¨®íÄ•¸½ºž××áæÚýü¸‚Ÿ†ñóʪÜÂïƒø£÷–àþ·ÿþêÄß­øç¾©Þ˦­ºÇ +ñÙäíÍêìäÀººä‹—òí±íÜÛ›×ÚÊö˜ã’É®¥…èë„×ԙĵ¶’††¢±ŠÜý½©«£ÿµµ¤¦†«®¸¦ÕÕ¤²’Ô˜ÔÁâñ’ +‹‹‘è”Ä¢Ò€¸Ì¡’ŒÊ­€ñû¥ŸÏíòú‰Ç£¹Ýó’Ë¥¹’ÃêÁìöÉæ“¬ÚÖÉâ‘ÌæÉÖä’ŒÆÉà™ôúɧ“ÊÊ⤭֪¨ò +ïó¥ùóŸÜÚØ¦Åތֲ‹ªû¥¯§ñæþ»ÞîÂûÝø¨—›–áó¿É¶Žâûö®ïÄîÕØ»Œý°ëðð„‡Ò¸§’Ʊ´Î¤ñÒª³éœËã +ñÛ‘Ü܃ËÃùøþµ®­ÄÚ¡ÜšÄíþÜ’Ù†ßúñë·þþïÂŸí¸—çÄý†çÓÙÔ˜ú¥å“µµ¶š¹É¤×Ò¢ëòîæ’‰®©‰„ëìäšš¸Ñ +ßäê빺º®ï¶–«©¡ÕÕ€ÜÕ•×ÙɪҪˆ ðñ¸‰ÅÈ´Ê¢‘’ªŽ“Ј„ƒ¤ð þ¿ñùˆ“×˼žâö³»—‹¸Ìá üö»³Ù˜ÕÊ +°¬–ÒÞÎÌæ˜æ²±£‘™Œ‚̯纫­ÖåÅÅ̫充…Ì£áùù¬¤§§óüçžµ‡µöŽ¢¯Òë‹™ÅÍÎûÉü³ØŽÏºñù¢€ìÉáÛ¯ö¬ +«Å®¾ìÙŽý™ý¸°€ñÁœ¦žÄÑ•¸¾‚¬§×àô ÎŽóâü€®ôãÒœòüׇ«Ëñ‘½—·Óøá‘¤î÷âλ‘ù‘Ïö¥ÌñÙäíÍœšú +øúÙݬ¶–‡«©‘Õ×óÕöÕ²ÊÊ®¢‚“„®žçⱄ®šå¢‘®œÁæÂ¡’Œò¶€ñû¹Ÿø‡½Äã¡î·ñ‡¹ˆÓÉœŽâÕ·“›Í´Ú‰ +­ÅÂÊËųَ´™ˆÑ¨šŒÜâÙ™¨×“°Î¬©‘‹‹Å­Ö¬ª’‹ŠÒįܰÀÌÝÍ•çÍ›ºåû¬‡Î­½¦È›‹×ÚÖî¾Íðàó’ÛÛ°½ +øƒ»¥ìîÂÞŸÅØßƒ©œ’ÊáÈŠÇúðÒ¢…Ó©œÉá´Ü·¾ÙŒ‹Ý帬áʇ®µ©áÆ’·’˜ØýÍÛ¨ì²Á¶¦Ìμ®‹“Åþ£š•Å¢ +á²ðØ–ŠÉ‚°ÁÙ  óû¹ŸÏæõòž¡çöó®—çôÐòŽ‡ç·“›û³Ú‰Å•ݗ“³™˜ÌĀ褆ƒ©«“½ôú¢Ó‘ÒÒƒ¡¤Ä¨®¦Ú +­ÐÔ¤”–Šä……‚Æ£äçà‹ùùÂ“£Ì›ÙÚ‡îøô§™êíÖÌ‘Ùóå¼£è¦æÏ‚ûÚ´ð ‰ñ†ÃŒ¤Ç™¾â¸ÉðÆº‰¯Ûð¾ +ù™ïù櫘¹„¨ÁÙäíͭ峵ᓭÍÅËíâ…ú”™Ú³û®¡§ö¡®ªÙÞÙìâËﺕ͜™­©äžíçÛË̅푚ս÷žÿê”Õ֞Ȇ +ïϼ¯©ÔÓ¨Õ­½¾¹Ùþ¯©ÔÓ¨­½¾ùõÑÐ¥„ÚÚî“¡†¦ú ©éÖ¦Þ¨Ôªÿ½ÕÃý—¢Žº­ê¼Îü‹‡ý‚…Ü +] +::^ [s0; Pop`-up color selection dialog.] +:: [s0; [^topic`:`/`/CtrlLib`/src`/ColorPopUp`$en`-us`#ColorPusher`:`:class^ ColorPusher]] +::= [s0;= +@@image:300&150 +€ƒ°€˜€€€ƒèÿ€€€€ø½œûóòƛфĈ­Ù±óàÿÑÿÿÿÑÜÃè°ð€è€¬îÑù¿À€û蘟¸Ä¸ç¿ÓѨûÆÝ³êÝžÑ÷ŒºçÔ +‚½ÔòÝþ¹÷ŒˆÀêž–é—‘šû†ÜªäÁÀ†ÈøÐÁ€ŽÞ˜á +] +::^ [s0; Color value and selection using ColorPopUp.] +:: [s0; ColorRampCtrl] +::= [s0;= +@@image:729&618 +‚ƒƒ€ï€€€ƒ‘ÿ€€€€øÏœìÕçóšë›¢çû¿™¿ã‡æÌ̹óöÞ¾ùí½‚í•쬯¯çœó–ì´ÙÖιçœó Ä’ ²è€µÍˆˆ +’ ‚ˆ¢™èò•Æ÷«îÝÛÓð÷Ê糯ÎÜ¿ªó«Ï‹î—²ÝõÔýë©öù¼×üüøñÈÕÿ³ÇûÅÿø÷÷ò÷ÿ÷Þÿ„ø÷õŸ¡¥þñŸ¡þ +ýñ¿‡øŸ÷ïîþ°ÿŸºò¿û³ÿµÄÿÖç³ÿ±ÿ»ÄÇ£Áÿ©•ÇŽ‰‘ŒÌ¤’ñø²–´ËÆ£‡¯á𰲔ʆƒÉÀæ é÷§ý¾¤—×›ôø’Ÿ¾ +¼¤Ý®¤Ó™ô’¸’öûÒæË­¾ÿŸ´Ú“æâóÒäÊšÉÿýý¤ÁÔéÁ’ÚíòﯩÙѤժ¤Ò™ÛÜÝÍÊåəެ¹³“”È’€âñòû»©” +Φ·¶’‚Á’ÁÇËîœ›äÆÆ’Åʲñ™É˜ÎÒéÉãõõ¤ˆ¦×Ö­’€¤Ð’¤²Ò’ÀÈâñÉŒ¬¶‰Á¤×Ö‘’¨Ô’‰Ì®¸®¦‘ˆäÜÜ +àò榹µ•œ˜ÈŽ¥ÇÆ¹’ÃÃÉäìïï²»»ÙÙ±™ìë˶´¤ä››“õõÉš±šäå岬¬ÄÙÜœ¬¨Èææ¦ß½Ëæä¾¤ÓÒ’ÏŸ§ +øŸ¿ÎÞ»—¼èõ«ùåÊòÜ÷¹ä©ÓÉãÇù“ßÿüýïàÓˆñµ•‡…Ãøÿ¬‘Š¥‚¹ÁÄ ðû“Œ¾ßÂëÍø¼Á‰Ÿ’î÷¡é̸œ‰»½ +šá³¥Þ¿ÏØ…­‰‹¥á²¥¯ŒÆÄþþÂàÖÈèõ‰­¶±‡·—Ðè’êõšÂ©Ìì»Š„ÜžØÙÉêÈ¥‰‰¤±½…‰’ÂáÂü Èðù‰ÍÍ +Þ„—›ØØÈ°‘Ù‰¦³Áःèô„„¥À°šÁ£¥¨Ô„€¶¤Èä„‘˜ €’¸ÜâõµÃÁ¤Ö֒˿ˉ¥¥ÄÂÂàâþ¾±»›˜ážÎÌΦÆÇ +þ“££‰ááÄíàࢿ¿ÑÛ‡›èêÊôô¤ûÚÚ’Í͉ƱÆÄÝÝ¢ºº„ÑÑ‘¨­Í”Œ—§òó“¹¹¥‰÷ï’ïÞ¤›ÒÒ’ÏŸ§ž¼½ÊÜ»—¸ù +ô³ñåÊâܹ»Ä©Ó‰ãÇ“„ßÿÈ©ÄÆ–ªþñè´žž‰ÄÃáø¨Ø”†ãÀܧïûüñ¯·çîñÄ¿üˆ»ÕÝñ—«îðÄÏíö¸Í–ÿÿ +ì¾îµÆ­–¸ñÙœ·šãûûºñƒ¡®×ÇõçºøÞÞÜ£‰««Õñ•ª®ÔÍÆ•Š¸Üž—ÃÉâÒéÜ¢‰‹‹Åñ‘¨®”ÏÆ·¶âüþœ‹Ç‹ó¹ñާ +³¾±‘ç±â̌朆ãôúüøý½Ž‚ñµµÔ¸€Ä©”¸‰ˆ”§’ãøüœÿ‹¯®ÆÑèช•Ǣ㋿‹ñ……øüüÀüö¶¾½ŸŸœŒÇÇÇ +¿ãÃÃñøìßß¼§§ÞÕø•ïï·¶Æç››ãñÚ±Úøõõ¼¢¢àÞÚš¯ªŠçóçÇóòâ™™Ùñ·ïâ¯ÞÅÅŸ½‹¿ú”¿è÷¯þóæüÊ +·•ø¹óñ“§¿ãÇÇ¿úª­žÒˆÊÔü›Ä¡â‘ȬœŽ……±ఖˆßÄüþ˜Ï—óðúãžÏìÇ“˜Ûó¹âÎÚçÌîÙì±£÷ïãÖëÌâ +—‰™Í±“©æš´ÆŒ†˜ÞŸƒÓéâÚíìïꯦÖÇÔª˜üÒ™ÛÝÉåÚ±™¬¶³““€Èââñìû»œ¦’Ŷ¶â‚ÎÁŒÇ‹íîÆï¸ÜØÆÆŒÍ +…ޱ™±†£Æ£§Ç ¨†‚±˜š­Æ¥Æ€ ÜƦLjʆÃáâØìŒÿƒ‰­¬Ä–—ÀãÈäìñ±†ŽÀÄææâ³³Ÿ±©©ØÄÄì€ì¬¶²’›š +¹ŠŒÄúúâŸÝݱÎÎØû¶û¬¥¥ÖÔ”ÿ«¯ÕÖÆªýªâåå±’’ÀØÑѬ¯¯–½ËÌŒ½þ´ûõªöìÙÿìÑ£ØÝ»±è›·â—¯ÇÎ +‡ž¼™»öö¬öÕ×±ßýº®…©ø·ŒÂÄÃá訔솣ÀÔïÓúüѯ·êññÄ¿üˆºÝŠÑ—«êôÆ§Ž¨Ýžýÿ¾òêµÆ­–¨Ù +Œœµ™¢ÆãôÌÿ¿ª×Çõº¹¨Ö›ÝÛ‹ê”´Ñ•ªªÔÆ„÷÷£ŠÅÔ¦÷‹îìÄ¥Ò¨¼Ä’ÝÞŽŠÄÂÑ¡°ªÄùÕü¨—åò£¼œÎ”ÍŽ²Ø +Ѧ³ŠÃѺ潺¾ž…Áè‘ÚÚ”€¢”Ê•”ÄŠ’‰Ñ¼Æ¾ŠÅÆ××£˜èô”…Š®¯ÎÇ—–¢‹‹ÑùùèììôúÀºº¹™ŸûŽŽÆ‡‡£ƒ +ƒÑþþèïï›´»»ÚÙ™íŽë‹¶´Ä››¿£õõÑššèŒÕÕ´¼¼ÚÒ¸’­¬ŒæåÅ—³³£ï߯ßÇ¿Ž¾ü™ýúö´úðáôîÝûè›ÑË—£ +²çÏÆÏžŒžœ»–ýê«èÊú¡ÆÓñ¿†øŠÿÿ‹‘Ш’¸ŒÆ‚ˆßŸãñù¢ÞïÄ㥉üøñ»£œ®×Ä錸œÒ‘»½â³Å¬§ÖˆÅ’±›£ +ô¦ÓÄèŒìïÌÇŒ†ˆÎ—Ñ ê£ûû‘¦ù¢ÖÇ”ÊÈî¼îÄ¡ˆÈå‘É™¬¢•Ƥ’‘ˆØœ‘‰¢Â°áäë«ÂçÇîø¼Èææ„ñ‰ììÄØìˆ +“™á°¢ôúâ„‚¢ ˜¡Ñ€¢Ôê„€¢äŠò„ÄŠˆ‘Ìœ®‚ÅÆ°˜³ÈÊÊ„…Š ‘‘Åň‚‘ß™›‹ÌÎÆ¦ý§£““‘ññƒÈèèäø¸² +ü¸˜éïôôÆÄºº¢‘ã¶¶Èóó¤±ð±Ò×—©©‰ØÔÖÆÊÊ¢ÅÅ‘‚‚Èî««òöí¤ì½½òòåäéŸÓÈÇ‘»÷À¢·îĮߎ +œ½›¹ñ¢òìØä«¯¢©‰…ØÊÅá·¢œœŠ…ƒÁð ÎöûÃ¾ßØ‘ëû¼áŸ™Âî÷ØåŠ»åᇣ췇Þí¶ðû÷á‹è¥ì¶‡Í¦° +јÞß›Œúá½¾¬Õ†÷£öÂšÍØ­Ž©«Ôᥲ¬ÐÏ„åò°Ì–ޡىˤᱸ³¼½–‰ÂÛôÛá Ì燄··ÃÜîøãª£Ìæ‡Ù¬° +̓‘†á°„…‡××Ã´Úøí€­Œ€áŠ¥ÌŽ¢…‰Ä°žŸŸÆá««á´†º¼²’ÞÞŽ¤¯­…—–ˆ€Äøî®¼³“ãžšŠÏÌ„ÇóÆÂ££á¡¡ +ÛðÀÀ¸¯¯ÜíÓ“îꊷ·ù‡ÛÛÃÍÍáㆆðÝݸº€ºÜÑ‘®«‹ä——‡‹ŠÂ¹¹á¬¬ðÆÆØ¸½½üâÅø¯éÓðƒ‡á»ž÷Âׯ‡¯Ý +‚ŠŸ½›¾ñ¢úüìØø«¯Â¾©…À§â°á¡à°”ˆ„ü—þÏ—òúÃüžÏèÇÛÄò¹ÂÎçÈ­áˆÙí¡›­ËôþýÈê™ÅÍ¡“©ä´† +Ãö÷ÆÃȯÒéô¡­¶¤ŸÑ„ÔêÊ•ØÒªÃ»»¡¹Œ¼¤“…öö€ÒéȬŽíï‡Ä¢Ð˜’°ˆÂüþˆÇ‹âñ¹¡Ž§´±„‘â±ÂÌæˆ +¡†Ãôúˆ‚ÂŒ ˜¢ÑÂÔê ˆ€ÂäòˆÄÀŠ‘ˆ¡œ®„‹Å†°˜š‚¡ÂÈäèñ¶±´°šŸßÍΆ¦§Ã“¿“¡ññÐèèÀèø¸´¸˜ê +ýïõö†º»¾Ã¡ööÐìË˨©©ÔÐÆª­ÕׇøªªÂ¥¥¡¢¢Ðþþ¨§§Ãôîݨ££”éžžúñ¢ôä¾ÉèÁƒÐ»×¡ë××®… +‹Îœ‰¸‘ºüú´ôå—¡”†Â€©¸¬Ä°¬ˆúýÁŸ¯óèõ†½žà‡”Á·»èò…ïΠÑ´Ûùƒ¶Ûðýû •Õš´Ø‚¦Ó™ÐèŒîï‡ +ó† ÞŸÔé‚ ÚíðﯨÖ̇ժ Ò™Ü¡Ýª”Á™¬«¸³“”ʃ’ÉÐ¬ŽŠÄÁí¡°¸µ•äóÁƒ¼Þðó³È‘á„·¶‚ìöƒÉŒ²˜Á˜ +€ŽÂÐðý½È£…×Ö‚€¥¤Ð‚¤ÒÈÆŒâñÁœ®¸™ºšÄ£ƒ««ŸÁååàÒÒðäñ±ˆÀ„çæù‚³³Á©©àääðü¼¸º€šœžŽŽŽ† +ÿûûƒ½½Áî±îàÇǰ­­ÃØÒ’ììŒÖ‘ׇëëƒÕÕÇÁòòàéé°í¨¨˜ŸŸÌÉ’‰¾û—Ìø“€ÌË‹¾ÿžüíò¤øàÁðößíàõëÁË— +¥‚ç΄Ϝˆ¸ž½šüòËàˆÊ¡¸©¸¬ÄËÀïøü¯†·àñ„¾üˆ«¸Ý—«àô܆œŽ€Ýž°íÙ‚ï߇¬Ö“€Å’°™‚Æ€ãàÿ¿à°„ +§ôú€Î—ÐêЃûû¦ ¼Ò…”ÊÀîîÚÀ¡ˆÈå™ä¬ •†¤’€ÌØœØÞŽˆ…Ï­­€Àà󃛛®·ÛÀá„Øì€‹À•ಃ°œ  +Óƒë댛¬­…¨Ô€€–„È䀑˜  ‚¸Ü€‹ à°´º€Âž…ÈÀÒÒààá¡°¿Ÿ˜¶ÌÌ„¦¦‚ü““±±ÀÈ€Èà訰° +Ûèë‹ôô„ºñº‚ÖÖ˜Àó󠱱Ќח¨©‰ÔÖÆ†Ê˃¥¥ƒÂÂÀÞÞ »¦»™™øó¦Ó––øþ¼ðýøñàþýÀí‹Ûëׂ—¯ +¶†Îœ‰üòËŸàèÑÀ—߆ƒþõßÓˆ¡ÊéÅá¡ü¾Ÿß“ëõû¼þŸ½üî·ßåò»íþ‡Ãï·ûÜí¶ÿû÷þ«ÝÕï±øÍæ¿ŸÑèßß÷›Œ +þþ½Þ¯ÓùµîÚÿޞߣñû«Õþ¥Ò¿»©ëרüò¹ßž¦óïìø¥’ý¿ØìßÞö‹ÖÄþ­­¿Àà÷çóý¼žŸË™õó¸þ¿Ó‹åç²ýŒ† +•ŸÎ÷ß„¥ý´šÿíÍÈ€þŠÅÏ¢ùñ‰Ä¿žïÇáçü««þ´Ú¿Ó²âßÞö£‘ãþÅÅ¿‚áŸÿ›óÏÎú§§ßý““þññÿ“è¨ÿøØ¿¸ +ÿèïï÷÷öúÿ»»ýþöøöÿë«¿¹Ù¿ßÐ௫ó×’×û««ýåå£þ’’ÿá¡¿þ¯ÏŸíÏÌëô¿ùãÿõÊßÿü¹ÿñãÿ÷ýûþÛ·ü× +ó®ù¯Þôÿö×›ÿ—ßüÇŸú¿üÒŸÒˆ°ÅªŽ‹áóúÜýžïÇŸËÛíó¹üΧßÏáðÙí¾›ßÍ÷þ½Ïêõ˜Ù¬¾³Ùç´§úö÷ý†ƒÏ +ç¯÷éô¾­Ö··çÓèüêýµÏ¥òíîúô”ŠŸÜî“ɰü»»¾©Ô§Î–û¶·ý¢‘„Ϩô‰„¾¾ßÇãù¶·ý²œŽïãÃÇæóû˜ÌŸƒáƒ +¸áŸ„ùÖ×ýÒ èÛÛóѩ侊ÅǦûˆ¼ÄŸàÃáüúجƒñ¡Ñ쾔ʇÄú–±–ü‹‹¾ùù§ßÜœïæÆ·þµå›˜ðñùÆÇýÃþ +ñÁÁßÿ¿¯·ÿ××Ýíëìô‡µµùÚÚüÍÆÍ¾††ßí­§¯ºÚ×Ñá«’«ó•—ûŠŠÞü¹¹¾¬¬ßßÛ·¾×¯ý¯–Þùž½ó½úëä»÷Ï÷ë– +ÛïêÕß…‹¾ýßþóýò‹ï£ûïýßüáËò©„®•‡…ð¤ú¼ÞŸ¼î¯·×åòºÞ‹‡Ãë·ûí¶·ïû÷Þ«Õëõ±øÍæ¯ÉäÇÝß÷šŒÞ½ +×Þ«ÓùµÚïûÞž×£ñªÕŽÞ•Ê«Ôú•úНÜî•ɼػ»Þ©Ô«‘®ø··½¢‘ׂ¨ôîíù…‚¾¯çÝÜôòç¹Þ¯›íÖ屼̦—† +µ½ôº—‚¼ ¯è¥Ñ¼Ôª—Ú€¼ä²—Äòò’‰Þ¼Þ‹Ã¨ù××½è´÷žåÅ»¼ìÅ¢§½‹‹Þ„»ž¿ïõÎÏÈû§§½““Þ±±ïȈ÷è +ùÈ»°àíëó»öôø»º¼ÆÞ¶¶ïˋ緱ÑÛßï­ƒ­õÖÕù«ªŸ¼¥¥Þ¢¢ïòÁ··×›•ýåýûÖûúµÛ÷åËï³çޞǼ÷îùï +»ÝòÞ½ê½ð·ÁûÛïÞŸÿ½öþÿ½÷‹¯ý¼©…°¤â°ÂžŸ¼î·×Çåò¸ž‡ÅÃã·ûì¶ÏÛû÷ž«Õã±úøÌæÑèÙãß÷˜Œž½Þ +ë£Óù´ÚÏÞ½žÇ£ñ¨Õž‡•Ê£Ôúö÷ä½ò¹Ç¦óìÕìø¤ÒÄâ’‘‹½¢‘Ǩôìíù„‚ߟïÙÜô𹼞ŽÇ³±ááù±¼Ì¦‡Áð +óÐ鞈ò¬¯¸ûè´ÏÚš‡Ø€¼”ЇÌöò‰ž‚ÁƒÃ¢ù°Ø†ãÁ飽¨”‡‰ô€¬­ù––¼ˆÉ„çîγ³ãÇ™šòÌÎúƽǽ££žáá +ÿÏà §¿ßÓŸÛëéîöôööúÚÛ½­­žñææÏ㣧®ùÎÓÓ㩪òƒ”—ûÊË½ÅÆÅžüüÏÎŽ£çÝ»ÏÆ†§þ½Ýóò¥çé¾ÓÏÇž»÷ +н·ïú®ÞõæÜ¸à¹ýÚó¿óÏžï¿÷ü«ñ…§¥®Ô윖Âíò¹¾Î·Ãá¶Û½Øìî÷ïÝÖ“«Ûâö›Ìѽ¿ï¶˜•Üú½Û§óë +׵·ÆãÖ֫ݪ•Û©Îôïîº•Š·ÎÌæÞÙñË¥æî‰Ä­–»·Ë·Ý¡ûëËÌ­¸ùü·«çæòÝœŽû¶ãÃÍæ»™ÌŽ·ƒá†á·„ +¯¹××Ý èÞˆÛóÓ©î€ð““Éî’ÉÍ £¸ñø·–ëÞ¼Ýõ£Ñî••—÷ò²›‰ô¯ò®º‘ˆ÷ü¼äûöÖ½½ížñšòÏÌ¸ÇÆÙÜ££î¡¡÷ +ÿà »¿ßÝÛÇëîîö÷öºçÛÛÝ­­î¦ø¦÷û®ÎÜÝÝí®¬ô—ó—»ËÊÜ……ãîüü÷ÎŽû‘Ý»÷Ɔ»½¿Ýýâ…ûéÓß÷Çî»÷Ý +̷ﺯÜñŸò¿ï¾ýÚýóÏÏîï¿óÿñ•…»¥Ôœ––ÂåôºœŽß—Ýî²ÙÜï÷ß»¬Ö—Åâ²²›Ý¦“ËèÎôíﻌ†—ÎÞïÒéÜÚ­ +üëïϥѸԊê—ÊåÒªÝÛ»»®…Â¥—¡»ööÜҩ˼¢ñ‰Å®íí…—È䒊݂׋Ï÷ñø®ùÍÍ—‡ãÚØæð±Ù®–ËÅêà¸àØÅ§» +Ê È…‚®šÍÖÅ¥º€ÀÅ¡ñ¸È¤—‘è©ãݸœ‹‹õ°á°®´Ú…»¹È×Ò’ëöáÁ…À¸ææØÜ³³®ééדä¤ëüܵºÁêš™ñ¹ +à††Üýý®žøž××—«£Ã‡ÕÖæêéñµîµ¹êëݵµã®êê×Å…«“¬ÌÕÜ쪬¾ôåå¹²³Ý‡™™®·ïÜéÂé®—¯ÜÏžñ¸ž¾ôݽë +õºñÃõåŠëýüù×éÓ®Ÿøþòý÷ëó­ÏÝÿãÿ¤Ž¢–ŠÃ¸þާÝî´Ùœëïß»­Ö§Åíâ´›¦“ÓŒèôîﻆ½§ÞïÔéœÚ +¹­óïϩѸ•Õê§ÊåÔª·»»Î…©ї»å²§ÔꕔȜâ±óûÑÛ©’¹…Âç¯Ö–“Ï÷òøóÎÍͧ—ëääì¸Ùì§‹åôä²°ì¤Ó +ÅäÜß÷Òæèεµ§•굤М䲓Èàô’ˆÎ¼Þ‰Ñź××è´¼óåŹ¼ìÄ΢‹‹Î„Âܹ¿ïœõÎ̸§¦œ““»Î±±çè¨ó +òøØ¹¸èìïö÷ööº»»Îööçëÿ«³¹ÙÙØèÛ¬¯÷ÖÖ¸«³ªœ••ÎÒÒüçñ±³ À™›ëÌÎöææ¶ºß¼ñ¦¥¹¡Ÿ¿÷¾ùâü +ûðÀùçŽóÆöç•«Îóç¿¿þêüé§åç÷ß¹¿ÿÜý™ÂˆÄ‘©Ì¸¬„Ãî÷ØÎìŽ÷ïÖ«ÙÃâñ˜ÍŽ“±Éá´ºö÷ª†ƒÃ¯÷èô +þŽ­Ö±·çШèœêµÃ¥ò®¨•ŽÝ݇§á˲™ÃàªõÈ¤Ž±Ø—±½í‰œÂ‰¡ãëË¡¸üø¼Ç榃˘õ𸎇Ëåಌ† +’ƒ†äØß¦÷€ ãíÍÁ‰¥º€ÀÁ¦»øÈ¤‡‘èÀã东ãõÕÁÁ¸ÖÖœ¨”‚ƒ‰ô¬­¹–È–œˆ„ãîΜ±³ã˜žö̌κÆÇãã +»Ž‘‘ÇÐãþàÀÑ×çèí€õô÷»º»ííŽÖÖÇÓÏ“£¡ÁÑ×çè©ñÔչʽ˥¥Ž¢¢äÇÁ£·×‘û•åøûÖñú÷µãÕ«Çóç +‡ŽÇž¸ûîÜñܸá¸úüÙñîœã×øß¿ýäøîŽ»Ç矻҈䑺ò±•‡…û°Ûìö÷ïíöÖ«Ýâ±›Íæö“Éî´Ú÷ë÷톃ݯ· +ùëôö­Ö¾·ªç×èìêµÝ»¥²«•öÝݹ»Âá—Ëí²é™ýçÇ®‘ØÅâûö¶Ý¤Ý²‹…ö­­»üÀàçóí››¼ö®×ÎáØ·ú¶ìì¶É´ +ð³˜ö˜¶Óé£öõõ»ˆÚé„´»•ꇀ»Ù…â§‘ìÄ¢À°ãðö¬ŸÖŽÁØÑ車åßÞ¶¯­©Ù——툄ýâþÞ¾»ëŸ™É±ÏÍÙ§¦ì +ïããöÑÑûð‰°ýðо°àÿïë³÷ôØ»³ºìö¶¶üûË‹½©ÉÞÐ௭µ××ùÛ««íååö‘’’ûÑ‘½¿÷ßž“ãÏʲñ¿ýëÿýÚþ +ïê•ýÙ³ûã¿Çöû÷í·ï«Û¯ß·ß¾ìÜ¿÷Îþë©ûý¿Ú¿ýÖþ‡ùçö”Âü¸ùò±•‡…°½Äÿï³Úí–‹ÍÍ춙̶£‡Ñ¶¿ï³˜ì +Úú½Í§³éµ‹¶½½›ÆãÓé«íª•Í©´§íîÚ”Š›Ü†î“Éì»»¶ó‰Ä¦–Û¶·¤í¢‘ͨ´í¢íÙ„‚›ŸïóãñìܮÙ±íìØØì› +‹åã°ì°ìƒ£ÓíäƒÁ¢›æÛÛ³»€Â±‘ɶ²¢ÑÆ Øðø ›–ëÛݵᆰ¶••›ŠåàâíË˶…ð…›‚á››³ßÍÌØ¦§í“ +÷“¶ññÛØ˜„íäĶ´ä›žœ´õ÷ÛúûžíÝݶÎÎÛþû»­µÕÖÜøìëì´Õ×ÛøêëíÕÕ¶ŠøŠÛÙ™­¸ØøÖØèË˳åŸäØÞ½³åä +ÇØÒÓí¯ßÚÅž½³½úä»úÿßöû¶íú¶õۥ˶³çêí§ÎÙþüÑßöí·¶Ï¾³•¥Âöäãª˜Ž‹áýû¬–³«Ùìµ™¬Æ‰£õÿßê°Ø +¥õú«ÎçÕêñ­ûûÖÆªÖÛÕª«ÒéÇÝݵª”Ö¹Åܪ“Ù÷ö¬’Ò‰Õ¬¶îïÈÛÅ¢«ÐèÝÃÚ²Š„Ö¾ßËÊãٹܫ‡¾ãÝØ°²ÙÖ +Æ–ËÊäÚáØòʧۡȺ¾Žî¥Ñ¬ëëÖªՊ€Ö²ÙˆÊ¢Ù‰Ä«ž¾ïÅᬫ«Ö†ŒÆŠÆÛѨçëò²õéɺñ¸èÅ ¬óó»ÖÙÙëÌŒõ +‚êʺ±áŸ÷·ŽŽÚ‡‡­ŒÃÃÖëß¿Ÿµ§ÇÚÕåŸíè°¶µÙÛ²Û­ÍÍÖ††¼ëݵ¦ÆÚüÕå­¨°––ÎÚ‹‹­……Ö‘¼¼ëö¶µ³ +ÇÓš‘áÍÏ·ñ¾üéýúÔúïè‘õ޽뭺ÛÖë׬—®žÙÏžµžºå»ýñÇë·ßÚî¿ûÌú¯ÿòÈØŽüÌŰᡬæ³Åäµ²˜‡ö÷­ +º†ƒÅ¯·èôÞ–­Ö²·çÑèè¬êµÅ¥²®¨•–Ý݋¦á‘Ë­²™åªçÇ¢‘ØÄâ§Ëö¶Å¤²ˆ—…–­­‹Àà“á󭼞åó‡ÓÂáØ¶¶¬ +Þ춅Ų°™”–†Ã§۠ÇȲ¾îÁË×Úš…ʵ€€…±Ȗ¢Ñ Øð¸‹ð–ëÙݵ Ñ»–••Ëò²…ƒ‰´¬®Ú––Þ¬óó–¹¹Ë +“ÌŒåúÚ²¹¾é™˜°ŒÙøÆÆ¬ÃÖÁøÁËÿ¿¥·×»ÒÝíéê²ôŒôØÚÚ¬­­ã–¦¦ËÃ¥ã®ÎÒÝí©¬‡´”—ÛÊË­ŒÅÅ–‚‚Ëî +¹®¥»Û’™éžùóÆ’–æùÿñÂòô©åáÖÃ˽û–۷Ƭ׮ٮݲ᜽ë¹ùÒòµÃ–￵ü«ö™¥…ª£àŸÓñ؈³É¸ä¶šÍûûæ +ŸƒÁ¬×›õºá³ÖûàïϬ—јÕê³ÊåÜ֪ͻ»æ…ͬ—›å²³ÔÔê–ÈÌâ±äùûÛ¬’™…ŽÂóÖ–Ù °óóùæžÏ¼¹ŠéæòÍ››æ +¶¶ÛÌ♙̊³ƒá†á³„Ï™××Í è¦ËÑÌÔª™€ÌÆ”Š™Ì¶“‰üæ‚ÁŒÇ›±®Øóꪙƒ±‡¯¬˜Ñ¨³’ÀéÞÚ²¯®šœ‘ˆóü¼ùö +±Ö¼½ížš²üÏ̘ÇÇÍ£÷£æááóÐÜùàÀÜ×çî‘é±÷÷›»»ŸÍííæÖÖóžó³¹±ÑÜßÆï®­µ×כ䫫Íååæ’È’óÑ‘¹¿ß +Ûœ›ëÎʲ¿øýëþýÚœ–üæþþÜüä‰ûùáÃóÝ»æ¶Û·Ìׯš¯„Þ´Ÿ¹ã¾ù×ÒüÃæï¾¬±ÿö™¹…’£ŸÓñ؈›“ÑèÚß·™ +üŒ¦½Þ¤Ó™Ý´ÚÓޞɣö±©Õ¦•ʤÂÔšö÷ÍŠ…èÉ®·É䦒“Ôê’ÈÌ’â±éûÛ¤’»™„ÂÓÖ–ÉÌ °ñù¦žÏ‹´¹éâòÍœ +—Ž‰Í¶±Ø¦Ö¦ÓÄà˜à؞ħ›Ö×Í †è¢ÑÌëë¦À€°Ñ¨¦²Ù„Ä¢™ˆ„“ž¶ïÂáÌ««¦–ŒÆ„ƛШ—Óò²‰‰´­â®š––Ìóó +»¦¹¹ÓÌŒé‚úÚ´¹éšŸŽ·™ÆÆÌÃæÁÁÓÿ¿¿©·×ÔÓããêê²õô˜Ú±ÚÌ­­¦¦¦¼Óé®ÎÔŒÓ㪪²ÕÔ÷˜ÊÊÌÅŦ +‘ÂÂÓþ¾©§¿ÇôîéíÛ¯ÓëצׯÌÏŸ›ž¼±½Ôøàºû×ôó÷¦éêÕÓÅ‹Á¦³ç̧ϚÞþøÁôÍ·¦ÈÏ¿µ¥âóãÈÇÔœ–¸ +ѿﴘŒú½òѧ³êµÆ½â½£Æãԫꪕѩ´îîÈš•Š£Üî”ãÉŒ»»Æ©Ôꨑ˜Åâãöá¶Ñ¤²Š…Æå­­£Ààäó弞ñóÓÈ +¡åš¹œ£›íö䱌̦‘ÁŽ°Â°‘η©‘„´šñÊíÍÈ¥šÀÀȦ›É¤£‘®èÄ㸜‘Á‹µâ°Æ´Úƒ¸²âÜÞ¶¢÷‘Æ¥¥ã‚ +š‘°ÎÍ™ç¾çÓÓÆ©©§ãÄ„ñüܸ€ºêœž¶ŽÈ™‡†ŒýýÆñÞÞã÷·±³‡ÓØÞîìíµ»¶´˜›šŒÆÆººã͇±²ÒØÞî¬ +€­µ–—›‹ŠÙŒùùÆììã»÷ÆŒŒãú·ºñåËã³çÆÇž˜Ûïܱ޼é¼úúÕøá‚ñÌö™ã‰“ÆãdzßüãüôÓÈ㊡èǾ¦ +Ûâ°†¿Ï¯ò·èô†­Ö°Å·çÐèŒêµòÁ¥²¨•†Ý²ÝƒÂáËÒ²™áçÇ •Èš¤’ƒØìØåÞ¶ˆÄ†¡Ðƒ°µåˆŒü‡¾Ç³ìîš +é¸Üƒ‡ãØØâ°°Ø†¦ÓÀ¨à˜àØÀ§›î È°¾î Ñ Œë놪Հˆ€†ŠÅÀ¢™éˆÄƒàÀáäŒØ¬áõÕ€ÁÁ˜ÖÖŒ¨”‚‰´¬­™– +È—ˆ„áþÞ˜°»ë˜™±ÌàÍ™¦§ã㻆±±ÃȈáâøØ°¸èèôõ™úúŒŒÝÝ†ŽŽÃû¿»¡µÕÐÜì˜èì´Ô×›ê¼ëÕÕ†ÊÊ +¼Ãù¹¡¤ÄÐàÔ䨨°äæöš²³™™†ñŒŒÃúºáåöËóç†Ç¶÷ï›îܱ«Ü¸á¸òÅðŸá‚á·ßŒ§äÎ˜ŽŸ·üíâï†Ï¿µüË +–¿ÿÃ䣟ÐÓñ؈½Î§…×êõûû‡´êš½Ú­×©ô¢Ê¥þ÷ׯÐëèåò½Ì¦ß«ÙÑË¥ú‰Ä¼¯–ë··õ¢É‘Þ¨Ôïíéø…‚½Ÿ¯çñ +Çô››ú®×ÏÓáè·¶ô¬–‡žÉÔ³˜ú˜çÖÓéúˆÒ¯ó¯ëé´ýÚšµžÊÕƒ€žÂƒÑ“Éú¢ÑÏÆ èñø½–«„ßÝÕã°ú´úÚÂé——õ +âȤþñÑ¿°ÿ ŸŸ×ÏÍéüççôÓÓú©Ž©ýÄ„þüܤ¿ºªŸžÖ²é‡†ôýýãúÞÞý÷·¾³ÓßÑ¡ïëÿÓ·´è›šôŒúººýÍ +ǾªÊßÑ¡¼¯«Ó—”苾‹õùùúÜÜÄýÖ–¾³Óÿãæ¾­Íÿâ·…þéÓý£Çßúû÷õ·ïë¶ïÜÐß¹¢¿¬ÿÞÿÛïú“þ§ôÇëÿö +þ·ý§ŸêÿùòŸ‡Àù˜ŠíÃÂè´ÚÝÞ½žÎ£Ñ©Õºå•ʧԞØÝ‘Õ©”º¹Ü§Ã“éööôÒ©ü΢щźíŠíȤ“ŠõèÛÛºÀÇç +ùëø¼Ýæ¦Ž³ËÕñ¸º†‹¥ã²õŒ¥†Ž†õôºŽÍ‚ôëëºÔ­­é¨Ô€±è¨”™¬£è’õ„‚Ž×ááðº¬Ö‡Á»èÐèÝÊŠî +ôùÙ‡Äê––€ô‹‹º„·þ·§›ÕÍÌ÷覦ô““ºññÝØ˜îäÈÄ·¼¬›œÔŸõ÷ëúúô½Æ½º®®Ýç§»®½Ý×ÚªëòîÖµ¶êêë +žõµµºêêݎ奮¼Ü×Úɪ«®Ö•–êãòòô¹¹º¬þ¬ÝÛ·º×¯ˆõé麗¯ôæÏŸêž½ÒÝÇ»§»ýÛ÷ý÷ºîòåÝùó÷ºÓ§õ¿ü¢ +ø»öÌ÷·¿éê¾ùėˆéÀ£ŸÓñ؈íûޞ֣ѪՊڕʫÔê÷Ê÷µŠ…֮סÊä‡öö´Òù©Ö¢ÑŠÅÚ•íí­È¤•ŠÑµÛÛÚÀË +ñçëù¼í榇–ËÕò¸Ú¶’ÛËâé™Ì­çƒ¡…á­®… íúº–„­µ´š–ÊÕ‚»€–ÂÑ’ÉÚ ’ÉË èñøì­Ž§Å⵫ñ«Ú´Ú»²¢ +–Å¡´È¤öéÎÉ»¸¨Å ´ïóóÚ¹¹íÌÁŒöúÚ»¹©Ÿ˜ÐŽéǾǵÃÃÚ¡¡ßíÀ€¶¯ÏÛŸÛ«íîÖööÈ껺´ííÚñ––íÓ“¶± +øÑÛ߯­­ÕàÖ×ë««µåÇåÚÒÒíÑ‘û¶ À›—§Í÷ÎÖ¾û§Íȫоþ­ýõÊßûü¹öÉ“í÷ÇÚû÷´·Ôîé¯ß×޾ᬽÿÞûú´ +»ö—ß´ÇŽé«ÿú×í§Ÿè”ÓˆÑ÷äãª¼Ž‹¡ùûÔêÅʥѪµ»¥»š…£—ëœä²ÍΎƪÑÕÈ¤š±Ø³Ë½­‘‰´Âáë­­À á +ù󵼞†ËÕÌ𸚛å­á±´Ì¦†ßÁÐÀ°†Î×ÂÀæý݃‚ššÍåꀔÀáèÈäɤ¡’µø¼ö†‡ÓౚÕÈÕ†£ÙÙÑ +í ÐšååÍÒñ’æñѳ° Ÿ™Ÿ×ÌÍéæ¼çµÓÓš©©‡ÍÄ„æüܳ’ºª™™ÑŒð醇µýýšñ¾¾ÍϦ«ÎËÓÙ©éï×›´¶êš›µÍ +ÆÍš††ÍÝ㦦ÆÓÕ¥©¨Ð”•éÊʘ´ÅÅšüüÍâ»Û“™¿©ÉÈФ§ë¦Þ¾Ô¼ÿ®ùýòÄóð¡æîÖÝÍ­Ûšë×ò´—®éÎÓ +Ýœ¾­ùùçÍݱ㚿þÕó¥É§š”ÂÔŸ¯ù˜ŠÃ¨ՂªµÒùà÷×­­Ð¨åòµÌ§¦ÞÙÑË¥êñ‰Ä­–«··…Õ¢‘Ú¨Ôïâí©…‚µŸ¯ +ŸæñÔ››ê®Î×Íᨷ¶ÔÎì¶šÅÒ³™ê†ÃÃ꺘ÝÁêõõµòˆªé´õÚš´š€Ô”ŠšÌ‚Ö“Èê¢ÑÍ ¨ñ¸µ–«€ÞÝÕã°ê´ +úÚ©——ÕâȤúñѽ°É Æ ÔóóêÙÙõÌŒúêˆÊ½¹©žŸ×ç©ÇÆÔÃ÷ÃêÁÁõÀ€ûº¯ÏÝÛ«î‘îÖ÷õ©»º™Ôííê––õ +Žó³º±ÑÝßǯ®­Õ×׫ü««ÕååêÒ¸Òõñ±º°ÐŸŸ¯ÎÉÑçÒ婳³ÕïÞϨÓÓկߪ¡Ÿ½Ó¿þ¬þùðÀý÷®úæÖÍõµëêË— +¯ÔçΩÿýÕßýóÏê£ÇÕÞÿý«ú“ÏÔïÿüßÿáˆÜÀ£ŸÓñ؈•ŽÒ©ÚÝÕ©”Òª¹Ü¥“Ø©ÙÑÉ¥ª‰Äœ¥–«¶·Õ¢Á‘ʨÔíí© +ø„‚•Ÿ¯âñÆÔ››ª®×ÅÃᨶ¶Ôì¶“ŠÅÒ±™ª†„ÅêºÝ…ÆÁªõõ•ˆªœè´ÕÚšŠ€ÌÔ”ŠŠÌÖ‘ÀȪ¢ÑÅ ¨‘ðø•–«ÚÝ +ÀÕá°ª´Ú…Ω–—ÕȤ¸êéɵ° Â¼ ÔóóªÙÙ‡ÕÌŒêúڵš˜ÐÁ©ÆÇÕ££ªý¡¡Õà ª¿¾ßÕÛ«êéÑÄõõ©º»Õí +ÇíªÖÖÕË‹ûª©ÉÕРªý«ÓÕÔ¨ªªžÔ••ªòòՎɉª¨ÈÕÐ÷ ÊËÓå䨫޽ӽý«úÝóÚ•–¦úñ¾Âõô©êñãÕýûª»÷Ô +Œ·ïª®ÞÕÝ㼨ºûÖõ뇯ªŸÿֽתúúëÕßþï¢úïÿ¸ÄýÀ£ŸÓñ؈åëî®Ò¡ÐÊåúʙ̹³£”ŠÊ•’‰Ò¬¾·°½­”‰” +¡òëË©¨ùùü¥§ÜÜÄÔò¹ÊŽÇ¹Û±¡ä³•¬–ƒ’ÉÔ²˜Ê˜ÆÖÒéʈҮ¡¯«ÁÐÉ£©·×Ö”€ ¤Ð”ä²’ÄÒ’±‰Ê‚Á‰Ç« +ݱØåꪒƒÞÑ¢ÑÊ••å‹ò²’‰Ô®­¨©——•ˆ„òðþÞ¹·§œ™ðÑÎÏ«§¦”ì““ÊññåØÁ˜òäĹ¼¬ÀœœÔŽŒ¨û¿ú”½½Êîî +Üåç§²£ÃÙƒÖ¦ìéѶ·ø«››•õõÊñÚÚåͲªˆÊÙÑ¡¬«Ó»–”¨‹Š”…Æ…ÊÜÜåö¶ãòÝ»åÆ†ò­õëå«×Ê—Š¯”ÏŸªŸ½ +žÒÞ¿¯¼óÇÞùã†òêÕåïŋʳ畧ÈΩÿúÉùôߨò믕ÿùÅ‹²…ߟù瘊èäò„ƒ²™âçǡѕª¤’…Ø¬ËØÞֈĊ¡ +ŽÐ±µ¥ˆŽãðùŠžÏ±¹£©àò•œŽâ„ãÃÁæ«Ø¬†…“©à°”°§¬ Ó•¤Øœß×€ ‚ÆÓ‚Ð©Š€ÐШÀвÙÁ¢©ˆ¼Ä… Àã• +⸜âõÕÁº¨ÐèÅÊŠ‚¹…Ò ‘Š¥¥‡Åâ¢âáÁ±î¿¯˜›ÓÌÎÆª¦§•ÓÓŠÉÉÅø¸âìˆÌ±ºª˜žÖÀŒ©††”ýÇýŠÞÞÅÏ +»¢«ËÑÙ©èŒï×´¶ªÚÚ˜”ÍÍŠ††ÅŽÝ¢¶ÖÑÝ·­¨¬Ô”—«øÊË•ÅŊˆÂÅþ¾¢·×Ÿ‘•¥ÈÌÔä¬ä¨ÒÓ•¯Þ©ž¿×¼ù¢ +òøøÐñïžâ­öíśЫà×”—®¨ÎœºÑœº¥øé§·Å÷ß«¾þÚ‡ñ—¿¨ÒˆñäÔÇ”œ’¦®“É÷öäÒÁ©Ü¢¹ –Ë—··å¢‘ܨ +‰”ïíÉ…‚¹ýŸ¯çñä››¸ò®×Îáȹ¦›ò¹›­öç±ä̦œÁ¯Ã°œÎ—ÃáüýÝΣɗ×ÖäÔªœ€í䔊œÌ–“ÀÈò¢ÑÎ È +ñø¹Ž§ßÝÁ•ã°ò´Ú¾ù²¢Ç¡äËË»ò¥¥ùâ¢üôáÁŽÀÈçæßä³³ò™™ùƒÔ”üòÒ¾±ø¡Ÿ›“ŽÊäÇÆäÃÃòÁ¸Áùÿ¿¼¯Ï +»ÞÓ£ïî–÷’öÊ»ºäííãò––ùó³¼á±ÑÞ߯¯«ÿ“×ÔÈ«ªäŒ••ò²²ùɇ‰¼¨ÈÞРÿÏË“çäȳû²äïßÊ߼§Ëß¾” +пû¦ÿòÄþïð¡üÞ½ùíßÛòë×å×®™È¯ÜŸ¹£Ø¿ùÒþÓÏò÷ï¿—ÿý•üì¯ÿ‘§’âùãÇ”œ’¶³¢£“Êå’‰ÌÒ¬–íïËÄ¢ +„ƒÂ¡ìë˦¦Èøü™§—ÛÜ”ñ¹²Ž¦Ç¶±¡ã³åž¬–ŒÉ”±˜œ²˜–Ñ鲈’­¯ËÀÐÆÏ£ÉÖÖäÔª°Œ€ä”ŠŒÌƒ–‘Ȳ¢ÑÆ +† Èðø™Ž§ÑÃâ嘌ŒÏ–­¬ÈШٛò²Œ‰”­®¡Ê––䈄ìàþÞ¶»«›™‰‘ÍÏ˦§åì““²ññÙè¨ìäͼ¬ä›œ”ŒÈú +½úä½½²îîÜÙ×—¬£ÃÖñÞ®ë핵´ÇÈššä²ñúúÙí­¬ºÀÚÖÙ©«¯—Ÿ•–ÊŠ‹åůŲüüÙî®ø¬»ÛöîìýíÛÙëײ´ +Ö´Ù‹—²çÏÊäŸËž¼‹Ý½«»õËöïýºìòåÙù·ó²ßþ“¼ö©ûñÇÙ÷߷˾úÊöç¿·ËþÛÿûÇ¡œÊ¾¦äÒç‰ä€Ø¬ÝÞ +Ó–ŠÄҡкѵ¥•ˆ¤üþ؞Ϻ¹©åŠò¥œŽôãÃÁÊæËÙ¬©“ȩ尤°¬¥ÃÓ¥¤Ýß—÷‚ ”Æ“®­‚ɩԩ€È©ä”©™¬¥‘¤ +öÄ¢”Àâñ˜ÒœÎŠÅʱÀ˜©š­ÝÙ‘¢ÐÒåå©’ˆ©ÝÜ”®¬Èœ‘ˆéü¼ôîðκ³£ž–àÎÍɧ¦¤ã÷ãÒ±±éȈ€ôøØº´¤ +Ž˜ö÷Ëûû™¥½½Òîîéîç§´½ÝÚÖˆ¦íé‘¶·Ëü››¥õõÒº¸ºéÍ´ªÊàÚÑ¡­¯—–ý–Ê‹‹¥……£Òüüéî®´ì«Ëš™©ÍÈ +£¾þ­ýõÊßúâ…ôéÓ饣ÇÒ‡¤÷ÙïÊïݒ޻⦽üÙúþ¼ô·ß¤§ÏÊÚÿüÑúÝ÷Òÿ¯¾’þùÏÒ¤Ô´üÌÉ¡ˆ¡¤â±äûÛ +€¢’Š¥Û´Û’ÀÂçËüø¼É榄˹•𸒃Þì¶„Å’°™’†Ã‚Ã’º˜Ý‚Á’õõ‰ðˆÊè´ÉÚšµ„Ê•€€„‡‘É’’É +€¤Êˆ„‰ž¯›Áᤫ«’Œ‚Æ‚ÆËÖÖ¤¢¨”äùقĆʖ–¤‹‹’à„²¿¯™›·“ÌÎʦ§¥ìÓÓ’ÉÉÉø¸äì̲ºª„™ž–ŒÉ† +¼‡¥ýý’¾¾ÜÉﯤ»ÛÒýÕ¥éè´·ðËÚÛ¥ÍÍ’ñ¦¦Éä¾ðÞÒÛ«©®–€ÔÖʪª¤åÆå’’’Éёۤ À’—§ÉƒÉ‘äåɲ³ +´¥ïÞÈÒÓ¥©¯ÞÉž¿—¼ÈýªùôÈòÿ÷¾äÎÉÍ›•’ëפ—®ÉΓœ¾­¹ìñÂòÃ’ïû¾“üõ•äϦÿ–¤’âèã°Êމ¡ÞÞ– +é‹Äâ¡Ð¼µ¨¥–ˆÄüþ¬žÏ¼¹©æòÅÅœŽøãÃÌ¢æ‹Ù¬±“©¤æ°Ä°ü€Î„—ÃøýÝŒ±‚âšÍ¼¶¦¥¦ÒÅ€ ¦ÐÄ䲘Ē“ +ñ‰â‚ÁŒÇ‹Ý±Øñꪘƒž‘£Ñâ••±ÀŠ¥ÞÞ–£‘»â¥¥ñ‚˜ýÏÏ‹çæßij³âééñƒÔ”øòÒ¼±ð¡ž›“ŽŠäÇÆÄÃÃâÁ +¾ÁñÀ€¸¯Ï›ÜÛ«îé‘÷òõ‰»»Åííãâ¶¶ñË‹¸í¹ÙÜØ¨®¯Î—×Õ‰ëêÄŒÕÕâÊÊñù‡¹¸´ÔÜܬ¸®¬”çç‹óÞóÅÙÙâ÷ï +½Äïߊ߼‘—§¥‰ß¾”¿èû¦þòÄüð÷¡øÞ½ñíÛéâ›·Ä×¯Šˆ¯Ý’Ÿ»§¾øýÚüâ„ø‡æŸÄßþ«þòŽËñŸþ¤Î¥ÄüÇ”œ’ +˜¤”žØÚ’‰ð„¢¾ßÄã‰ð¶·ÅÜ®ˆÃ¦¹°±¡â³Åެ–ˆÉ”±˜˜¢˜–Ñé¢ˆŽ’­¯‹ÀÐÄÏ£‰ÖÖÄÔª€ˆ€ŽÐ¨¢²ˆÙÄ¤Šˆ„‘ +Ìž¯ÂáÄØ¬øèõÕ„ÁˆÐ®èÑÊŠˆ…’ì­¯‹ÈÑÒÑ’èáÁ„ÀˆãæçÅóó¢ÙŽÙÑÌŒèêÊØ´¹©š˜ƒ‹ÆÇÅ££»¢ááÑà è +ìàÀÔ߯êí¾•õôˆº»Å¢ŽŽÑÛ·›¨µÕÔܬàêê’µ´ˆê½êĵµ¢êêœÑ奨¢ÂÔ€Ö¦ª©‘••Á‰ŠŠÄùù¢‘œœÑÖ–¨³ +¦Ó”‘¡úýÚÓ”–¦úñÂôïì™èñãÑ뇢û÷ķ屢îÜݽªñºøÑôö¬èõôéѯ¿ˆŽøŸ—ýû­èËØ¯Åÿú“¨•‚«ŸÓòȈ +Çá֖РòùùžïÀæ¦ãË•ò¸Âä¡›­ä±„ÂÌæ†ÃˆÃàº݈ÁÂõÀõ¡ˆŠé´áÇښʕ‚€™Â‘’ÉÂ’€ÉÈ¤Š‰„¡ +Üž¯Äá„Ø¬ØðõÕˆÁˆÑ®èáÊŠ…’讯‹‘ÈáÒ‘’ðáÁˆÀˆççç…óóÂÙŽÙáÌŒðúÚØ¸¹©œ˜Ž‹ÇÆ„££»ÂáááÐð +ìàÀØß¯ìëö“öôˆ»»…ŒÝÝÂŽŽáû·»°µÕØÒ¢Àìê’¶¶Šë³ë…õõššœáÕ•°²ÒØ€Þ®¬­•–—È‹‹‹………‘¼¼áÎŽ°« +¦Ë˜™©üóÆÓ˜ž®üõÊøïâ…ðéÓáãÓLJ„÷金ïÝ’Þ¿®ñ¼òÅøñ¢ðìÙ᯿ŠÿùùÅøü¸ðÛâï…ßþ¡üÓÿŸ„ÿõ¿þã +ÆÔ©¹¤„Ïàïã󅼞˜àóÓÀåŠ¸ŽœÁÆÆ¶ÛÉÀ≘̃ҡ€á®€ ƒëë‚”ÍÐ肵µ•ª€€…¢ ™“…¤’€È” +àˆ‚¼Þ€Ãº‰°ØÁꪀ½ƒ‘ Ñ‚••€Š¥ØÞ– ÷‘‚¥¥Á‚ڀÌÏ‹æ½æ„³³‚™™‡Áô´àòҰౡ˜Ÿ—Œð‰ÆÇ…à+ý¡¡Áà  ¿¶ßÐ×§èí•Øô÷‹ºº„Ç‚ööÁÛ›› ¥ÅÐܬèàì”´´ˆêêž„µµ‚êêÁŽå¥ ¢ÂÐÖ€¦¨©‘”•‰øŠ‹…ùù‚Ü +¸ÜÁö¶àÝ»ÁÛ·‚·ï„Ìéé‚—¯…Ï…Ÿ‹ž¼‘¼ú⤸ÿßð÷®ûàÖ­Áõë‚ÃË—…—®ˆÎýœ‘üú«àçퟅNj¾ùÖÆðÅ—‚¿ý +òÉʈÖÇ”¼œ’‚Ïãñ·Ê·ùÜ·¿±Áç³ù¬Ö–ŸÉ¼ÀàðÚá˜Ï§ó¡ˆÇ¿¾Î‡Á¾©ÆßÛãÓ©ü¸€¸À¡ðÉ䦾‰Ä§’ù„ +œ‚Ÿçãðü¾¬–¿ºÊÇàáøè´ÿå…žÂñ——ùȤ¼ÿñ‘¿°ÀǾ øóóü¹¹£þì¬ÿ憿ž½ÍŸœäÏÌÏðÇÇùããüÑÑþð°ÿè +Ɉ¿¸ÈŸ˜à§÷õñûûù½†½ü®®þç§¿¿£ƒßÖÆïòí巷󛚙øüúúþœí­¿¦†ßÕÿů¨à——óüËËùÅÅü¢À¢þÁ¿¯ +¿Ÿ“ÃÏÊâç²æò³²ø¯ßÏóÓÒø¯Þ𥟽ã¿ùÂÿëøÿÿ¾ÿÎÞþÍ›üë×Ëø—¯ó¯Üà培ÿõŠÿ÷óÏüãÇøß®üÃÿâ‹þŸ +³ÿÈÏ¥„àãøÊމÁÛÜäòñ¹¼Ž‡·±•Á㳰ؼ֦“Çàðà˜öǧó èÀú€º„ù´šïÚíÇ¥ò€€ÎÇ¡ðÈ䞉ģ’ù„‚ +Ççáð¼¬öóÀꪃá¡ùѼ”Š·¼ÌàâùËË¼ÅæÅÞ‚àßÍÏóææø³·³¼™™Þô´¤ïò’·±Á›žŸçñÆÇØù££¼¡¡Þ +ñà ïà€×ßÿÏëíåõôðûº»ù¼ŽðŽÞû»¯µ•§×ÒÂëêⵎ¶òêëùõõüššÞõµ¯“²’×ÑÁ««¿ã•”ðŠ‹ø……¼üüÞî +¸®¯»›÷îÛïíÛÞ›·¼­ôôÞ«×¼—˜¯øÏŸòž¿Ùæ½üÈ»÷Ú÷û¶ïÆÞ×Õ«¼Ë—øçÛÏóþû÷êî”ï§ŸøÇŽÿñ¾ù†÷ùç +¼¿þ‘—ʈçÙÇ”œ’‚Ëááð·¶Ž°ÙŒÜ–‹Ëäò™ðŒ®ŒŸ Ó¹²ÄÝßç‚ Ý—Æã®­ñ©ÙÔƒ€À¥Ð¸Ôä²—Äâ’‰œÜ‚‹Çóñ +ȸ®–ËÝÝåðâ°Ü´š»²½ÂÅ¡¸ËËÜž¤’»´ÄÝÜÁ䮬ð‘ˆî‘ü¼÷»Ë™áÎÏóä§§¹““ÜñÆñîØ˜÷ô”¤»²ÂšâŽ +ðŽò‡†¸ýýÃܾ¾îÏ·ÿ»›ÛÕÅíè÷à¶·óÛÚ¸Œ­­ÜææîãΣ·¡Û×ÇÇ­­åÖ×󫳪¸••Üòò¸îé©·¸˜ÛòÔÄ­¨àæå +Èñóò¸ÙÙÜáÌÌîÆ†÷õ°ëîÚš÷åËßîóçܧϹážñŸ¼àÞ׽˽ý›û㶆÷êÕî¥ËýÜó縿ýÆÜ½ù’ûÓÏÜգǹÿû›÷ +×óϹÿü£÷·Ÿþ韇Ðü‚ÌÉ¡¡¸››Ìœ¶›Ãâñ˜¡ÌƒŒ†‡†¹èôº‡‚¸ëëМ¼À£ñÖÖ¸Ôª‡€¸´”Š‡ÌæÈôœ¢ñ€ÀÁ +á㹸œ‡‹åƒ¬®ò°˜ŽšÙÍÙÙá Ðœ‘å厒ÉÙÚ⬮ò––¸ˆ„çþž³·¿Ç™åÌÌðû¦§¹““œ‰Æ‰Îø¸ç쌤³ºÊ™™áŒ +€ó†‡¹ƒƒÃœþþÎߟ§ÿ§‡ÓÝÍéê±âôöòÚÛ¹ŒííœÖÖÎóþ³§©‰ÓÐÀŸ©¯çÔÖòê°ê¸ÕÕœÊʸÎù¹§¬ŒÓ’Ò©ªâ”– +öòòó¹¹¹œììÎÖ–§³ï““‘Áùýš÷“–Æùñ‚óíì™çɓΣÎÇœû÷¹÷ïìòîÝâÜ¿ÎÕ¹ò…óñ¢çýܹÎéÓœ“˜§¹¿þȹú +Ï”ó·¿ñ¾ÿ‡œó‡¿ðÒ‰Îáú˜’ðèÙ¬¶“ù€ÁŠàð›ÎçÃÇÐõõ¶ˆ²¬é´öÚš›Ê¤åƒÀŠ…Í⦳ɤ¶‘ÈÄ¦Øø¼›‡ +œãã±ìÕÕ¶è†ó€æ¯¬™°Ñ¨öò²›‘‰ä¯­±——¡Ù‹‹ì„‚½î¿Ïž›ãÏÎϲ§§ÙÓÓìÉÉöÄ„ûü‰œ½¶ÆžåÿŒ°‡‡Ùƒ +‡ƒìöÿ¿ÿ»¯ÝÛËî‘îæ÷õ±»»ŸÙííì¶¶öüë«»¥…ÝÔñÄîìä×׳çëêØµµìêðêö奻¢‚„ÝÖÆ®­å—ž—³‹ŠØ…… +ƒì¼¼öÎŽ»î»›ýîûí¶Ûö›·ìôôËö«×엯؇Ϟ±Ÿ¿æ¿ÖüȾ÷ýçöŽûæÍöõëÉì«×Ø—¯²«ÏžåŸ¾Í¾þñ‚ýãìï +ý¿çÿõ¯ìϬ¾ãÿáìԸ¸¾¦ä¬¬¦“Åà°à՘ŧŸ€ Öúº‹„Ù´š´ëí퀕ʂ¬€–…¢“Ù„¤’‹È¼À ã°ðø–ŽÇ +ÌâÙ««¬Œ†……ƳÖÖØ¨Ø”ëù™…IJû––Ø‹‹¬…¸…–‚ÁšŸç‡ÍͱæçÙ³¶³¬ééÖÔ”¤ëò’µ±ÁšœŸç±ÆÇØÙ££¬ááÖ +ñà ëà€Õß÷Ïêëãõö²ãº»ÙÝݬÎðÎÖLJ«­‡ÕÚÊêéᵂµ±š›Ù캺Öí­«óºšÕÕŪ¬Žä•—³ÊËÙŒ¥¥¬¢¢Öá +ø¡«¿Ÿ•›Ë£ÊÎæåå±²ð³Ù™™¬×¯˜Ùé鬗¯ÙÏŸ³ž¾å½ÚþÌúð€õïöžëöíÖ͛լëר—¯³è®Üà½Ëú­õ×Ö‰“¬Ÿ +èþàýÿ½ë¯¨ÿåýö™ë´ÿ॒Â÷±Ö¥‡„àÀ°ƒ°Î¿€ÁŒõõ†ˆ²è´ƒëˆëŒª•€ŒÂŠ…Á¦Ÿ ‘ȘĢƒÀàà¹ñŒœŽÅ² +€Ö×à°Œ´¯š±²ÂÀ¡˜óËËŒ¤’±´ÄØÜ䬬°ŒˆÆü¼ã±»Ë˜™áØÌϳ¦¦˜“·“Œ‰‰Æø¸¤ã쌱ºÊ˜€™áŒ±†‡ +˜™ƒƒŒþþÆüߟ£·—ÑÓ‡Ãèêâôö²øºº˜ííŒÖðÖÆË‹£¹™ÇÑØÈèèàÔ׳ê뙵µÃŒªªÆå¥£“¢‚ÑÖÆ¨©€á”—³Š‹™ +Œ……Œ¼¼ÆÎ¸Ž£»›ñîÛãíÛÆ›·Œ­ôôƫ׌—¬¯˜Ïž±ž¼Øá¼úĸÿŸÚñ÷®ãöíÆÍ›Œ«×™—¬®±ÎŸçœ¹×Ãøõׯ¯¿ +¼°þøñÝ÷§Œ¯¿æüö™·ã÷¿çüÓÿƒùÇ¡¢ŸÓò”Ȉ˜Î‡¡ˆÔÞ߇Áð€Ž†¯­ÁÔªŒÐ€‡¨”˜Ì†”ɤ˜È„‰„º˜¿€ÃÁØ +†¬¼ºŠã°°œš¯¬À¨”Ó¼¼Œ£‘‡–‡–àÅÅøáŒÆ àùùøîÎŽž…çæàáééøêŠžœ™„§¦àññøð쌞…‡‡ƒá¡¡øðž +¾˜€ûûá¾¾û¸·—îé»·ºàÎ裃äîï‡ÛÛá–Æ–¸¹™îê‚웚àúú¸®þŽ®©««áÊʸ¢‚®¯Ù‡ËËáââ¸ñ¨ˆ®¨€óó +ÃáÜܸ»›Î³Ê‚³³áŒŒƒøõ븭þÉù’þþœþú¤”þü˜þøÉ¾ÿŸ¾ó‡¾¤õ‹¾þ¾ú‚•¾ô‰¾ÿžÀ¾ó†¾õŠþíùçøøñø» +ßï௿†¿ýþ”þýïáÿ’†ÂˆŸÓòÈ ˆèý‚ÁƒÌ´š´¶†Ñ©ˆ€œ Ð ²¤™¢‘ ¢ñ€€áñއîá±ÐꪄÁœœÀ£¡••ˆ +…‚–—¡¤’äÚÚ‚–—¡…ü…ˆ€æç¡á¹¹èö–š™Ÿ¦§¡©©èüò’š˜€ÆÇƒ¡±±èô”𾙆‡¡¡¡àè𚘀ú·û¡¾¾¨·— +ÿê麺 ÎÆÎ¨£ƒêï‡ïÚÚ ––¨¹È™êꂚ›¡íúú¨®Žª­ß…ª«¡ªª¨‘¢‚ª¯‡ÊË›¡’’¨¸˜ª¾¬„òó¡¼¼ø¨§‡ÊÊ‚Þ +ÿ½ƒÞ¾…Þ¼ßÒÓ¡´´èíåËèùóèé¶ÓèÑ£èÁƒÛèÞ½èÎèíæÍèúõèʶ•èâÅèܹïè·ß Ó§ íŸÿ†ŽŸ‡¾íûŽúúëèÓ +ŽÏ¡ßÿžÊ©ØÄ¤¥‡„€ÿÀ¾šÜÛƒ©€Ô€ŽÐ¨ ¥™Œ’È ‘øÉ€À€ñø‡¶ƒ±Øƒ«« ¼†ƒ¢ÑàÊŠˆÂËË ’€ùàé‰ÜÜ„ +à—–À„‚œŸž‡çæÀÙÙðìæ†œž†§¦ƒÀÉÉðₜ¼Ÿ‡ÇÆÀÑÑÀð䄜ž†‡‡†ÀÁÁðà€ûìï‡ûúÀÞ¶Þ°»›ìê‚ì»»ÁŽŽ°½ +ÀìëƒÛÚÀææ°©‰ììÞ„ëëÁºº°í¶–¬®†«ª›ÀÊʰ¼œ¬°«ƒËÊÀââ𨈬¨€ó‡òÀÜܰ»›ãÌÊ‚³³ÁŒ†Œðõë°½ +’üõŠüñ‚üÉöŒüò„üô’ˆ¼ÿŸ¼û—ɼý›¼ñƒ¼¤ö¼ü™¼ð€¼û–¼ýšØ¼ù’üé§ðíØ±ðÛïÁ¯é¾‚¿ù„üÝ—ïÀ”ÂøÒò +¬ÈˆÚښʥ¥ÀŠ…ÆŠ¦ÓȤƒÄ¢À áñ´œÁËÛÝ¥ðá°´´š¶²ÄÂÃ¡Ž¬¯ÓÈÚÒ’íñ‡‘¶°Ààèßóó´¹¹ƒ³ +·³´™™Úô´Äíꊶ¹É›ÿ˜ ÓÆÆÞ裣´‘‘Ú‘ð°í舶¸øÈ›˜ õ÷Óãúúè½½´îðîÚ×—­³“ãÖÑÁëï§µãµÑÚÚèÍÍ +ô¦¦Ú㣭ã¡Ö×Ç«­¿¥ÕÔЪªè••´ŠŠÚÙŽ™­´”ÖÜÌ䫪¢•”Ðò½óé¹¹´œœØÚÖ–íÝ»ÚÇÛ·´·ïèé÷é´´´ÚË— +ç´çÏéÏŸÒÄž¿¦½üÈ»êÿŸöçŽíÖ¶­Ú›´«×Ê闯Ӯܠ¡½Ë»ýšöÝâ„í§ŸèÇÿŽÑ¾ý–öÕò״Ͼ¡ýîž÷´ÿüŸÓˆ +¥áÈÉ¡¡¨€ºð€Â¡’ÉÔŠ’逑ȥѨø¼•‡»€‘ÅÒ×ש˜Œš•¾°²ÂÅÏ¡¨ËËÔ¤’ú´ÄÝܼ°ñ°ÀÅ ¨óó›Ô¹¹êì¬õ +âæ†º½ÍšÁ¢ÎÎÒ§¦¨ïããÔ±±ê舨õ䄺¼Ì„š¢ŽŽÒ‡¾†¨ýýÔ¾¾øêﯵ§‡ÚÝÍíê¢ööøÒ»º¨ííÔá¶¶êË‹µ¹ +Ç™ÚÔÄíì¤ø¶´Ðëꨵ‡µÔššêõµ‡µ²’ÚÑÁ­Ž¯§––ÒËÊ™¨ÅÅÔÂÂêðþ¾µ¯š“žÃÍΦ¾ûLJÍ̤æäÐßÏ¿¦¦§Óß½ +㢾øÁýöŒÛúä‰õѣ굃‡Ôû÷¨÷ÙîÐïÞ¤Þ¿ªÎ½ò…úé’Ûõüù꙳ÔÌßÿ¥ž¸Áý½ñÇêÑ£Ôï뾡þù¥õ“ÎϨ¿ûµ¥ +Ʀ”œ’‚  Ð€²™ ‘€ê¢ñ€€àñ€Ž÷€‹…֠׌†À£ã¬¬€¨”°¼üŒ ‘ÀÒÒÅÅàáÀ Ã€ùùà±…æç€™™ +˜àúš˜š‚¦†§‰‰àüœà˜›ƒÆÇ‘€‘àø˜˜š‚솇 ¿ÆŸèëƒúûížž »›èêØ‚º»ŽŽ ½èí…ÚÚ›€ææ ©‰è +°ì„šš€ººÛ ¶–¨©ª·«ÊÊ ¢‚ਯ‡ÊË’†’ ¸˜¨¬„ŒŠŠ€¼¼ ·ö—ÈΆ²²€íÌÌàíÛàÍ€› ½È˃ÊÞ¾„ž¿‡ž +€¾…ž¿†ž¾¶„î߇îÞ…Òî߆îÞ„®„݃®Ü®Þ¶„΃ΜÒ΂þù…øíñÇàèÑà›ê¿„þòŠ—àßÿ•ȩل¦¥‡„ “ +¨Èä¢ñ€À—Æãɸܬז¼ºÊÆàÈŽèô••²Š ÅÞÞ¦£‘‡ÿ––È‹‹ä…°…²‚ÁžŸ¿Ø°·Çž¥ÏŸÌ§§ÉÓÓ›äÉÉòÄ„ù +‚üœ¼¶öàôñ”¼²Âþ¿Ú×£“ØÄ÷µ¿ßã½ìÖíó綠ÃÕ¹Õ§¦»—çùijñˆÆÌ†ã°˜°™ƒ³˜Éàƒÿ¯í×ØØØ¯”ß›¿¶Æ˜› +ÆãŠ¢¨ŠŽ‡“Ã…ÆÈ‘’©ÒÒ¤ÈѤȑբÈÙÄÙÄÊ€¢Ò–Ñ–ÑÔÕ©Ç—ôÝôǪªÔý¥ìÎÏËŸÅÿõß¼ßã››Ò¨Ôº¾¼®…ƒ¥««Ò +ì Ðº¼¬ùýߥ‹‹Òùù‰ð Ê¾ßéô´øôòÒÂñÒñÄñ‰ÃÊÇÇ¥ÃÃÒÁÁéÿ¿¿äñ”ööÊß»»¥’Š·–¶·Ë››¥ä„©¹Ü¥‡£ +›´±Ñ²Û˶‚ÛÉê­Ù¬¥Ó“©ä´–Œ†‰’Î×ÒêËš¤ÍÉ¥ª©•¥¯¹¼´´Ô’ȶʋ‹¥¡°¤ª”ø¼’—Û‚â³ËÌæéæ¦Ä¥–¦§Ë +Ÿ££¥¡¡Ò߾ߩ««ÔÚÚ㪫«Õ”âßöÕäÅ¿ùð›Ð¨”óùⲟþ€ò¹â¯õ¿”³ÙðóÏÝÅ̦øÓÏÅ”ôš¤ÒÅŸÛŠÉäñýû +ìȔ߽«ÆãÛŷØñéÍ›–ïﻋ‘Èñî®˜Ž—ïï‹··…ÅШøý݌҆‹××ÅÀ ¸øùÙôû‹—Ž—Åóó¢Á”çÏΊ¾ßñô +ñ´øòÒÄñâ™ññ‘ÊÇÇŸÅÃÃâÁÁñîÿ¿èñ”÷ö¿Š»»Å¢Š–··‹ÛÛÈÅ„©ºÜŧ‡³¸±ÑÜ߯ýÚìŵµ¢ÅŒÒ´›‹Æãñ +îõµ¨×—µÚ“âÊÊÑ­®®˜¯—•Š¢ÌÖ…”Ê‹âñѤ°ª®¬”ùü¢•×äðŠìö‹‘Á¨ÒèÅŠ¥¸±Ñœ­¸Ž•ûúŠÝŽÝÅ––âÝÝ +çñÙ³ŠÂüëÙŠ¼¢ðéù¢üáÿ€¹ÜÓá—ߊ٬øãùçÂ¦Óøéá§ÂºÒ©Âõ‡…ä²ðþ°½È¤ŠïÞ•¿âñÂÛ·…Ø’Œ¼ùӈƋ +—÷÷…Ȥð÷ô׈‡‹··àãæ¦Š•®¯º‹Áàáꪀˆ”®¯‹þÿ‡áâ¢ðþÞ ·ˆÂÙÙÁ竃œž–ÎΊ¸ÀÞ¸¾®àØáè¨àõ–ŽŽ +öŠûû…§°í·×ØÝ­ììܔд°½Ýرڪ ÈÁåªþ¸…Âú²úÁ­•ϬւÙܰ™öŠ««…ƒ¡ Ó•ÖÖŠšÍÒÁ¥ª¨•…¹ +õ¼ “•¤Ò‚ˆØÜ‰Š‚ÁÄáþ¾°·×àðЬÖί‘Ðè…Š¥°¾ôÞ “‹ƒƒ…ãÞÞÂç硥ѥÐÛÛ¨¨Ä§¿¨Èƒ¡òÿéøÃ¾—ƒ¿ü +«’Ïæó¿ÿŒæ²™üÏ¿åÓÊéÊå¿üÈž§“ù÷ïÁ¢å‘ÿ÷®Ÿçëß¾…±ØþÍù›ü´š¿¿ÏŒÇ¢àŽÉçïïó··ùШÿý† +‰ó××ùÀ ÿ¼ù‰üþüÅÅãþü¼Ïù³Ï³¼Ï—¿½Í§Ÿœäñ¼áßù££üááÞóëÍŸœä÷÷ÁóžÏþﯿ¿»›ßÙÉ£è¸þû»¿µ•Ç +ϼ˕÷ºóÀŽÇþý½ï·ýçí¶¼Õš·ÒØò¦ÓÞèÌ蛌ù½¾¯Õ­æµš¼ÚߢÞΫ”ù™¬ï¿´”—Èò‹Å‹ù¡°¯äúù¼¼—›Ÿ +…ͳ™ùº½¿þ½ŸšÊùçÇÆòƒƒùãÞÞüç羥إßÛ›¯¨ÄÆ¿©Èƒ¡ò¿½ü‚²ÙÜÏ¿Ùç²™ðÓϹ”ôº—ÊŸÚòÉäîýû +þÈäÞ½ËÅ㣹·ïÁ¬–ûùó¦—æîïú󑈸»Ë…¿Ã¹ÛÛÜÍͤ®”ÊÝßƒàˆ°÷õ•‹„ò‹——¹¿¿÷ñÉ‘»¿Ï‘Äîì¬çóåÎÏ + ó§§¹œÏŸ簬÷ô”ô»¼Ìù½¹ƒ÷ƒÜþþÎãÉÿííåÜîÜÎðÎŽÅóÛÛ¹Û­­œ‚äܮǜәó¸òëåë¹»½ç³å߬֜Œ³› +ÀóÆãîõµ§»×çôºÜÊÊÎέΩԹ¥ì²§—ç䲜ŠÔš“‹ó¢Ñ¸îá¡Çççø­¼œ‡“ã³óÀŒÆîæ¦Ç¥Á榧óã㹯‘‘ÜÀÀŽÄ +¹Êõô䚛󯵵¹ŠÂäªÝòÀˆìÏ¿ƒÌ̦ûÓÏ ‹Î¦ÒÙŸÀª²™ýÿ¾›ÈÝ€÷ï²ñøöéíÛ‹å߼ɯ£Ùûû½‰äïî²áð +ƒöö¶ûóƒÂÇ¡ìõõ¶˜ÌðÞÝåƒìåÎåÖïÏÞÜ€ãóó¬ÁäÏΙ²¾ßöô´û¾ò’Åñìññæ–òÇÇÙÃÏìכ½¸Èûîïç÷ö²» +õ»Ù·»»³“ŽÅÑìöööëÒ«‹ Ù—«ë¸ôæŽìÆÆíÖîÏÚìٵﵬŒµ›³€Æãöõµë°ìäõº¬Ö›Õ‚貪Õöù¹ñ«Ðäå²ìÒ +ˆÒ֢ɮ®æ÷…¬ÀŸ§ÏÎÍ幜¬“‹•å°²´Ú…–ÂÉÎÎæÇþdzÃÃÙþØìÏ϶££ÛÿÜœ­©Éþø€ã…¡’•ù ÖÄæÓþú©“ +²ÎƒÔªóáÚ¦™„ïßç’lj̻÷ žÏý¼ý›‰ÅÀ›Â·™è´óÿŸ‰ÄÀÝݦœ‡ÎÜÞæîîÀÞ¨”¹¾Î„ƒç™««Ì ¹±¼„þÿæâ¢ +ôóþž¡ˆÌÙ¾ÙÆçËœžæÎβ¸ž¹¾™ÎàØæè¨ó†ø˜ñú³‡‡ÿ™ýýŒÇ“ÙïÛËìîæÜîÃÌÎΆųۯۙ­­Œ‚äžÜ®ŒÓ™ñ¸ +²››™»½ã³åÖÖ²–ËíÆìΘ̙տՌÁÑé²øÚíÆ£É¨Õï™ååŒÒ™‘¡Ë³ËË™©´ð£–çĢ̞†ÏÏðø™®·³»›á² +€³ôúæúºÃá¡ä¦¦²££Ç™ááÌÿÿ¦§§ÓÞžéê‡ÊÔÔ䪊‘óªÈƒ¡ÒŸ–¢Ê¥¿ü€ÉäëúýûȤßý½ËÇãàíÛ”ô¬–þó†Ä +£éûûô¤‚ïîîÒáðúöà¶ýóƒÂ¡ôõõº˜ÌßÝ᥃ðù™öóûÓ——éóó¼´Á¤ÏÎҾ🸽͟œ¤ðñ¼ýüœÆ°ÛôÑÑúð°í +óõ¦ŽÒûûúé§½·—ÞýÝÍ»Ýéþ´Š¦·¶Ò›‘›é„É»Üé•§³í𤷶ÉÒöûÚæË¯ÿ­¥­Ö´Ùœ¦¶™ÒÆãÚàÖÈëõé­¶½ +›²’Ö«ÓªÕÂÚ©Ì«”é™ì¬­•¦¥’ôââڨ̋„ßéùùôÜÜšÃɳÙ馳œ½³“žžÎϞͥÇÇÓäòøúè¨Ý×—îýîη·§›š +ßÒÕÕéŠÂàð•ù ÄêǘԲ‰Þ¿Ï¥Ê’©÷ïÀ¼žªúû–Äâ©·´ïÒѨ¸¿ÏŒÅ¢©»»Ž§îïÓ·· ð”ÊÝß§‚ÁÃÔÕÕª€— +Å—©¿¿õñ‘€º¿Ï‘„¸»úËùü©ÓÓÔéÉÉŠÇÓÇÇ ©ŒË¥Ž°ÓÞïêà µ¿ŸòøÒûþû©ÝݔۋÚÙÉ¡èêû¾»µµ•ÚÜÌ +Ì¡ÈÊåʹú©‡£µ¾ž²ÛÓ¶Ûêí­þåµ¦Ìæ”É”²šÓ†ÃÊõ¯Ïéô©••ՔƓҩÒËåË©…¢¥—§ƒ––Ò’ÉʬºÎ‰Ä©……” +ŸŸâñÒÜî¨êö¶Å⥘Œ”–¢ÒÓÿ““©±±ÔÈðÈêð°Õ×—»êîεµ¥š¼›ÓÕÕ©§Ï´«ˆÔäŸÉ÷„ø¹÷®™ƒ·ï +›“±Øò͛ͦïïÁ¤’û¼»Ë†Ãàöè¶ù󓌅Àõõ²˜ÌÞÝृðù™ô³û“——ÉóóüÀɳ³¤Ï±—¼½Ížœ¤€ñ¼ùüŒ°¬ +„ùô”¼¼Ìú¿½Éƒƒäþþ›ÒãÉîí¥÷‚÷“î÷òç§ÿ‰¢ÉííäÖÖò󳉠Ʌ—«éô¦·¶—’ëëÉ»½é³¥×Ö’ÖëÉÒìΚÌÉ£ +ð±é°¤õú¤‚ΗÜÙÉ괺ɵº¹¼œÔ‚ª“òùÒ¦Ëêʥɱ¸¹¸‰˜”Š“‚Áò°þ¾¹·—äðÙ’ìö’ÉÌÒ¡éÉš­É¡¤ä§¦’ããÉ‘ +·‘äàಷ·‡ÙÕ•ìë˶ܶ¦««“•…¬Ð×ä‰÷¥ï’ñ¸øû¶Æ‘‹·ï’ÑÆ¨¸¿ÏÄ¢‰»»Ž§îïƒÁÍÍ¢”ÊÜÂ߃à°ñõ• +øˆ„’——Àï°ÏÜܤÎÏ“Œ„ÎÎ’¾ßãâô´ñò’ÀøñðüœÀ°ÄíÑÑâð°áõ°¦ŽŽ’ûû‰ý§±·—ØÝÆÍ¸Ýàç§¿¢‰­­Äææ +à‚Á’®×ÂéøÌ¸œ‰Ä¥úúÂîÏØì¿‰µµ„Å’°‘›“¦ÓÂèÌ蘌‰½¾¡Ó®¥´Ú„ƓЭ«“Ëˉ¥²±¡Ð¤ä²„Ô³šÈ’‹‹‰ +ý‘¨±°àóØ“¼Þ‚ËÍÌéΦج„ƒ‘Ø™ÉÌϧ¦ñ¦’““‰ÑуÄððâà Á좥ºº’­­ÿ‰††Äë׉ъÂЫòÀˆÏøÛ·ñØŒ¼ +´ù“ÆÁýý ¼’÷÷ñðΘÜÞÆïîâÝ¡¸¾Ž‡ƒ£àꪞˆÄ¯ò¯ãþ¿¸¸ˆçŸŸÇ‰‚œÝÅý¾øééü½ä¤Žãàø¸ýŽáñ££øá +ÎáÜ럜€ïýý¸Ç“ßÛÿ‹ïîÆÝîøñÎΜÅãÛÛŸñ­­øææœòÁâ®×ÜéŒü»œñøúšúÜîÛìñù«µî±ÄÍæ£¸É”·šã† +œÃܯëôñý­¶®ÑÄÕ꡸ʕתãŠÈÅܦ‹¯­ÅÆ¥’¸Øœ—‰áâÂáÜ ˆÏŸÏÇçæâœÎ—œÍ޳™ñºü½Î£Å©Ôøääüü¼Î¦ +¿Ç‡†âýýñŒ’©ÞÙ™ïíé·´Äß¿Žœ×‚ô±¢§…ˆ½ù“‹ÆƒÁýý¬’÷ò÷±ð˜ÜÞÆàîîÀ¨”»¾š†Áàìꪖ¾ˆ€Ë˘ߟ +Û»¸€ç籂—ˆŸ¯ö°ú𻹉á¸ä¸¾ŽáØìèШöø˜óúÁáÁÁìÿ¿æñ·Äööâ»»±Í·»¶³“ÃÑÃØööì뫶鹙Ø⊠+빜±‡£¶±¸‘ÛßÙí±­›­¶¶–³Úèã–ËÌ쎙Ä̱£±æ°Ä§ôú˜Î—ÓêðãšÍÌ­Ž©ÔÔ±¥²¦ÐÄäòØÒÒ̪ÿ‰Å±ÅŘ +€Ð˜“ˆâüþ÷ŒÇ‹ñ¹±Ù…Ù˜‹•ã°âܳ³±é阅þ’›œŒÅàÆÆâÃñþ±þØÏϬ££»ÖÒ’«¯Õ–ÕÅž¼ù∇éÇŠ¼”¢ú +´ÿŸÄÀÝÝø´œ†··Ñ›°›ŠÅ¯¯Á¬°˜½º‚Àûôò’øýÑ‹ç‹èù¹ ˆèíÙÙÔ烧§×Ñ““¨ŽÇõ†ÅŽ¢‹‡‡Ñ¯—œœ +ŽÄ÷÷£žÏôÌﯺ»›õ»á£»»€Å£Û¿ÛÑ­­èææä”Á¢®×ÔéùŒºœÑèµúúÔîÚìßѵµ¨ÕšµÒØ¢æóÔ茳®®Æ†¨Þ +ŽŸÕé¢ÚíÔ¯£‰ªÕÑ•ª±ªÔÆ•Š¨Ü¨žÝÚŠÊ¥Ñ͉¤º¸˜•‰¢‹‹Ñ¾¿ºœ¿Ÿ›‹ò¸ˆÑ¶»ÊäÆ™ÕŒ¨–¥Ò£üÓÓщ‰èè +€èô䤺¸˜Ÿíë‹öôÄ»òº¢­­ÑúúØèÕÕ´‚öá•ù¨Ääîø®’ŽƒÛÛÈé͈…¢×פ ˜ŒÜÝÀð òù‰üþȑҏ¿Ä +ëäìŒøü‘Ó÷ÓÈɉÀñȹññ„ÃÀÑÑ›äð°âõÆŽöŽÀþþÄ㉃ìíÅö÷£îž·ØÙ‰ èäìû»²µ•ÙܹŒ ÈÄ劸µ‘‡£²±‘ +ÜÙßØí‘›–­²¶–±Ú£´–ËÄ쎘̚‘£±²ºš±à˜¢úýħ‹³¬¬Ä´šˆÚ„Ñ©¢Êåį¡ˆÈå‘™¬ò¢•Ƥ’ÈâˆâĤЬ¬Ä +î„‚Èüü„ǽ‹ð¹‘ÙÙˆ‹•á°¢ôú儯‹Ð¨‘É×ÉÈøø„ÌŽÀŒÇ††¢½½‘îîÈûûä¹¹Ò×—©óªŠÔÂû±ô¢…ˆßÞ† +àïîÀ¨”¾¾š†ÁàøêŠ„ö‚áËËà÷‡¬¯®Àùù˜ ÛÀÙÙØç‹Ÿïž‚““°Žƒûãã°†…Ž›ÀááØëŸ¾œ„÷÷Ç“ûÞÛ‹ïî†Ý +æî°³“ÆÑðáööøë«¼¹Ü™Æ°Ë…œ·Î°Ã‘ÞØˆÿ¯¯‡íö°Í –ÞÛ‹Û­áÑ‹¥ì¶‡Í¦ƒ°Ñ˜ÞÝ›ôŒá®¬Õ†Ä×ÖÂšÍØ­ +ÒŽ«Ôᥲ¬žÐ„åò°Ì–…–ÊÃ’ÉØ¬’Ž‹Äá¡°¬®„ùü°—åæòÃœÎ˜Í„Ž³™áº½¼Œ³“žžŽÏ͉…§¦Âããáಹ¼´”îï +º“Èá®®ðŒûû¸¹¹Ü×´—þõªüÃèߌ‘øØ‘‡šÂ„¾íúº”ÆŒ‚««ˆ„쮯ߟº¸–€çç¡‚€çô硟œž†øÎÎ€Ž‡Ž +ØÃ˜†ŽŽÂ‡Å‡¡¯—œœ„ãö÷ÞØÛþ‹íî†ÜîйΎÀÑÐöö˜èë«´¹™Â÷Ë…œÎíÃ‘ÚØˆ­¯Ÿ‡ìöÍ–Ú¨Û‹Ù­¡‹¥ +ô䶇̦р˜ÚÝ™Œ¡ý½¾¤Ó…´ÚÓÐÊÊÈ£‰©ŸÕ¡ååÒ™€Ò¨ÂòùȦ”‹É¥¡‰¤¤š–‡Ä¢Ð˜à’ˆÂüþˆÇî‹ÍÍ…¸œÐ +ììˆÅб˜×¡™™–¢ðÒÃÓÓ¡ññƒÐèèè䤴¬¸˜êï‘ÈÇ¡ÎÎÐÛÛ¨Á©©ÔÛ›úõøªÔÁˆØÇŠˆ¼”¢øé××ÁÁÀ€ÜÞ†ý +ðþðñÎσœ„Î΂¾Ÿ˜¸½žœ€œ€žŸ‡±Œœ°…כؼ¸ˆî§¸·—ÜÝ…àî÷ð秈¢Øàû»¸µ•ܱ܌¢ÈÐå‚ +ŒÎçÐáˆîì΄×׃öûЬ拮­…­Öúà±„Íæ É¸”´šƒ««Á̓¡¨×‡õº© Ö›Ôè‚ê„õÐ¥Š®¯‡ç•ʠ‘”Ë‘ƒËËÁ©´¨ +‘„Åâ È”„”Šƒ‹‹Á¾°¿¸¿Ÿœ›‹Þò¹ÁÙÙ ›È䲃ôúˆÆ‹Ò©ÁŠ¥À¸¹™œ›‹’¿ÉÁááàÀÀÛ°¯¯ØÓ“ì쌶¶†›› +߃µµÁ—¯ƒ¶•„Èü¬Èü¡‚——ÀïŒÜÜ€óóÀ›³³àó…ÎæÏÁÉÉ€ÇÁ¹ññ€ÃÀÑÑóàðø½ƒ–ƒ°¿Ÿðø‚ ûûà÷·àö +׃€Š†¶·ƒÛÛà󳩀 —«àôš‚‡£°±‘Ø¬ßØí›­û°¶†¬Ö€ÅÄ’°›ƒ¦ÓÀÌ茬®†Œ†™€ÞŸÐé‚Ú°íà奠ф +‡Ôê€Ê•ØÞ”ލ•…¢ “…––‚ÒéØÀ¢‰ˆÅ‘€¨ ”†––‚€üþàþ¾°·Â—àòƒœÎ€‰Íް™†£˜°³“˜žŽÐ¾¨©©ÀÄÄ +€àô´°²’˜ŒšŠô÷‡úû¾ƒÝÝŽŽÀŒëë ±±ÐÓô“øù²ðý÷èߌÑúØ‘‡òÂø¯®üççý€ ÀÙ™ßçÞƒ§§þ““€ßãàøØáà +£èÈÿøˆ¼Þ»ÿÁØß÷ûø¼àïÏ¿»ëž÷»ÁÎŽŸÅçÁö¶ÿë˿ӹéÇàòùοö¶·üëëþ»Ýïÿ³ù×Ö€Õêµ·Øüæ³ßä +Ýò›þÕÕ¿ßÁà×ëýº¾ß«õ¯¬øµêš¿Úíשü»ËËþ¥Ò¯Ð«øåò¿ÌæßêÚòË¥þ‰Ä·¿¸è—‰üÂù¡ÿáÁÏçû÷ççý¼žŸË +áõó¸þ¶ÛÏââù™Œ¿î—§ÑüÔªÿêÉÊ¿±áŸŸ÷ï“ÉþááÿàÏ ¿¿ßÏ¢ùÿ»ºüííþ–ø–ÿÿ¦Æßÿâ…¿‚ÿüãÅžŠÁü +ûÚÙ™áóÓÓðòÂุÀ¾†˜ÆœÃÃÂë…‡‡ëÄþ¾ðøˆ½¶½°»Ë¸Ýà²ç‡ÀѰ½Í˜ìí‘››€Áƈ—‹ð¹‰§™“ð¸ˆâ +¼ýØí„ÍÆ£¬­‘Ö«°ØÖˆ³™°™ˆ£‘ØÝ¥Œ†Â±¯‡º¡Õ’ä««„ÆÃ¨Õ„ÊŬ¯“Ê‚¥¡Ðò¹¡¡“‘Ò©¡‘¬â±±¸ÈˆÄ +Á„ÐȈ„„ŸÆÏÌÏ“¼žÁ‘å’œŽÁæ“„¬–ÁàôºÚÁ£‘ÓÓ„…ðÂÌÎ’ããÄ許²ÂŒÀ‘ƒƒÄߟÑÓÃôö’íí€Äó³ÑßÏÔ + ×“¯ÞŸÜÿ±Ä¿úØ‘å‡ÂøÎÏÁÉ݉ÇÁñ±À†°ßÑ‘¸¼„îÞ¯ïà€ìï™û¼ž°·‡öð÷ýî·ØÙñ¡¨ØÞöíí±ù¶·‚øÜ +Ê®àôúœŽßñƆØß÷Ùíú¾›¬­ù¬îÖŸÅâ³›ãÉ䳚ý««Þ¾ƒÁ§×ƒÎ§ÕúÖÖüºšÏ­ö©Ô«¾ååŸÒéÓȨüò¹Ï¦ó +¬­­ù¤ÒŸÄµâ“‹ý‹‹¾Ÿ‘È·°à“ˆ¤üü¾ïþÞ·Æ·çãòýœŽÍö±Ø¾¦Óǧûææü“ÓÓ¾ŠÅ·µÿ囘ðùÈäßð°ïð +ÿÐ×ßïëíõ„õ÷ûº»ýíÆí¾¦¦ßý½ûïõëßó羜ŠÂüÛ•ù´¨„þéÇÇ€‡Ãð££ðøˆí¼Þüà€ìïÚƒ‡ßÛƒ»»ÀíÆ÷ö€ +ŠâÛÛà닳ßÜ„ˆ‚»ÜçÀéÄŽ°±Ï¯¯ãö»°—ÙðµµÜê…–‹î¶ã¦“¬î´‚ÕÕÜà“ÀõúܧƒÚέ¾²‚ë´¸¶Ú«Ôøò² +Å®Ô⊅®—¹ã²™¾´„Ëû¥¸Ä‚‹Åø‘⢮’á¡Ǿ°€‹„¸ŸÛóøøÜœÎÓåâœŽÎæã”¬–Îäâôº¤¾³ƒÏÏãÔȪ¾µ…ÏÎâ +ããøè¨¾²‰‚ჃøßŸÎ¢áÝݸøÇ‡ÞÚŠ·òµáõõøë×Çøóçø…¡þ‡ÃÇŠ¼”‚»¼º‚‡‡˜×‹¬ŽŽÀþ¾ðøÛ°½½°»‹Ü +Ðîì燠¨Ø¿Þƶ¶À榽† ÀåœÎàðà››àýþ³Û͆­‘­áÖ«°Ø°õ³™˜Ì˜Ñˆã­®â†ƒÐë걎Ó걕ƕ Ñà굦 +ÜÒáˢ҉´©”˜ÜŽÉäÈà鉓ʱ‰œ„“‹±ÅÅÌÆ¤Â„ÂÌ Àáøüìþžãñ»°¹¹ŒËŸΜŒÍÆØ¬Œ‡ÉÄèôìæ†££Ñ°ª•£Ð +ƒ°ÉÉìüœ›†›ÃÈäìø˜ü›œÄúû±ÞöÞ¬§‡ëìÄïÚÛ±––¬±þ‘«­Åªª°¶çϰǾ˜™â¿ý¬Èἇ‡àÿŸø°¼àïìîú +Ýî°³ƒÐ”øìïû·¶ÀæÙ¦—Á€Ë…œÆÎ¯Ã¶¶¼·ëëÀî÷ÚìÔàíÍ뵂‹±Å붃“Éëð´ú××Áà§Õ뽺Ðêñ½««ÞÆ« +üÖƒ•Ê»¼ì”Õª½Š…×®£÷Êäàéɫѕú¥’¯ØìÌÝÜôŠÄÞ¡Ïл°à•ˆ¼òü¾÷þÞËãòù¹Ü¯‡ãÏõ²ÙÞ–ËéËàøéôïÌ +«Œ—ÆóÒ©ÞòŠÅ»¹é˜×ðŽùÉäï“Ȉ÷èÈ»°ßàíëó’ÈÞñîîïLJ·­ÏÍÛÜìíèðûÖÖú«ª¼Ï‘žù«ˆñß¾ÖÖ䡞ÏÛ +ýÛƒ»»Àíöãì쀔…ÛÛ€àë‹ìîúº„¸ÜÀéô¸°œàレ¯ûéìöà³ùÖÖï€Õê±Ø€Ù½ì±™€ÑèÙèÝ…†ƒÇ¯÷ùèôÀ«õ¬¬ +ˆø´š ÖûÔ†ªÏò²Ðª½²Š…Ç®÷È䋞¥¥ÔŠ¤Ê’ØìÙÜôùˆÄž¡Ð³°¡à‘ˆ¼ü¾çîþÞÃãùææü¼Ü®‡ÃñÌåÎúØì“é +á°¼ôºçæ™Æ³½í¡Ò½’”ŠçòÒ³±¹á™›óŒŽúøÆÆ¼ÃÞÁøÁÏÿ¿§·×ÿÓÓãéêò´·ûÚÛ½ÍÍãžúúÏÍçÍÕ«Ï¿ú¾ +÷ûî‹¡þÛÇ™Š¼”Âý黨»€ÅÁö¶ØÍÚ‚››€Áܰ®—ðºÃ¼¶¶ÜëëÀ¶›ûíØó­Àâñ›ÍÀÈäò›àõÕøí°€½Þ­Ó +þ­Ö½²âÖêè€ÚíÖ©À‹ò²Û©ô«”êÈäî¥Ú¥·Ôê–ÈÜ â±ØÜô‹Ä¾î¡Ð½°à–ʈÜü¾ûþÞ¿Íã¹çæÜÜ÷®›ÃñÏκ +™Ùì·‹åæ²ÍÝŒ†›Î÷Óæèîéé·•êý¦ÐÜ““î‰Î‰÷ؘûôÔ„½²âžžöžŽºûûÝýýüî’ÉÝÝíîìô·µ¹ÛÚŸÜ÷ +îõµûåË÷Óó§îŠÂüð•ù¨„º½¬îíÍÍ€ ƒÀå‚Χð¸ÃÀƆØßÇíœöà³µµàãµ¢–‹°›‹É„šàõ•„µ˜€Þôº +¢Ô«…««¨ÆÒƒÔêԥ—‹—Ò‰ª”À€®Çå²ôé‰õ•ÊÄ‚ŠÅÃè⢪’¡ÀÝØÀ…‚”ÏÇççÑžë›Ã¹Ü”ÀÁççѶ›å +±Ð¦“å°ÐŒº™Áé´èôúš¥ÐЩ°©ôò’˜À¯ÇÆÐÑє̞Ƈ‡ÑÁÁôŒà€íëÃɤ›´§‡íê»¶ºÐÖÖ´¹™øíèÀëêÐ× +³¯Ñ—¯Ð§ÏíÑï¿ýâˆÿ“õ±¢…À¾ƒÍå‚Χð¸ƒÀƆØß‡öÞ»°ÙÀÚš°þÚÅ‚˜ÍÀ€ä‚Æ£ØÝŬŒ† ×ƒŽíÑêÁÊŠ¢Ñ +ò€µšÑ©ÀòÒ²¢Ô‚…‚‘‹Ë̆¬­¡¤Ò©È±˜€ÙÜ„¢‘¢”È¢‹‹ˆÀ€øðüäþžáñ¹¹„ËŸœäö–᳑–À‹á²‘†ƒ¡ +—Ó‘™™„ÆÃ£¦§‘ª•¡Ðƒ©©äò’™¼ŸÇÆÆÑÑÀää„™žÆ†·†¤¿ŸãéíÅúú®†®¤£ƒéëÃìÚÚ¦¦¤¾öž©­Åªª +¤—¯§ÏŠŒÂüüŸ•ù¨ç„ãÓ¶¶ÀúÞº°Û͆ևրՊ¬–शƒ“‰˜à¢õÕá°€½žéèôÀ«õ¬¬Ú€†¨ÕŽ•ÐŠ¬¯»”Ê  +ìЀ¹Ü¡“µ¥¥‡ÔêÈ…€ØìØÜ„¢‘èô¬¬€ïÀÁç»æç˜¼ž˜›óðÉ¹ŽŽÇ±»ëò೬–ƒÉÈô°˜€Î÷Ìá̸贇•ê +á ÐœÓÓŽÉÎÉÇÄ„ãüÜ”±¶æ “£ö£ŽááÇà üãàÀÑßïèííõôô¸º»žŽööÇþë«£¹ÙÑØ·è¨«óÔÔ¸ÛªªœÏŸ»ž +¸¼ñüóÍ—Ãçü÷м”Âþ€é¶›ØÛƒÖš«°Ø€ÙŒÌ˜¦à´‚ÕÕà”°€½žèôÀ¯«µ¯¬€†›¨ÕÀ¥²¯¯Âƒ¥’¨”ö¹¢œÈäàéÉ® +Í•‚‰Ä®–ƒ¥ÅŻȄ„‡û‚ݠ€üù¾ýþÞÎ㩹¹»—ëçðÿì³³€Í¶³ØØö¦ÓÎàØ½éôû̌ƦƒÓÓöªÕΟ¡Ø§¦ì““ +»öññûؘý’ôÔΦÛÇÆßìÃÃöÁÁûÿÀ€½¿ßÞÛüë§‘ìÝÝöñÎÎûLJ½­ÇÍÞÒâïê²ä·´ØëëíÕûÕöׯìÏžÍÙÿøÁÞɈ +ÿÚ‘‡ÂØ­–ඃ“‰˜™àõµÌà€œú½Ðé€Ö‹¤ÖÖ¬«š«ÆÌãÕ«Ê…–ƒ—Ò‰”Š ±—Ûå²°´„¥¤Ò«Ä‚Äâ³°¸è•‰€Ð +àèÝØ€‚•ÍχóóÖžÏȺ·‡¸Ü«‡ÆãåÌÚçç­Þ축Ų²™ÿ€Á°ÒéÖ™ô™«æž¶’ҩ֊źµÈ…¦§­““Ö½ññëè¨•Ì +÷¶ŽŒØ‡‡­ŒÃÃÖÁÁëÿ¿¿µ¯ÏÚÛëÇíé±ö÷Û»³º¬Ö¶¶üë뫵¹ÙÚýØè­¯·ÖÔœØß¿¶¾üé»ýñÇë÷ßÛ¯¿þúË¡þó +ðÅžŠáü´Õ°Õà°€½¾Ì§ƒÚ­ØÙ˜šÐ«Ê…‡–—Ò‰”ŠŠ —ƒ™Œ¬­Ò™¥Ò ‘€±€˜¬®šÅ¢ –”‚……£À€áøü°¿ïäñ +ŸÀÜœ‘Ë…œ™ŽñöÖÈæƒ†–ËÈäš™Œ¢À§›ç挴¦š˜ž¶Ò©ÆâŠÅ¸µåœœð´Î̘ÇÇÌããÆÑÑ£™€ìœ™±Ž›ÿ‡†ŒƒƒÆ +øãÿ¿±¯ÏàÈ¢™ûúŒÝÇÝÆÎÎãLJŸ±­ÍØÚêìàî¶¶¶šë럵µÆêêãîÕ•ñÅ‹ãÓÿ§ÆÇ•„ãø•ù¨„îÛÓêÁÊŠÐ +Òè€Úݦҥåå Ô‚…‚ƒÈåÀ¦ƒËËÀÀª…’‰‹³Á⢉€ÐÀˆ––ô‚à¿óÁü¼ŽÇƒœóó€ËÕñ¸ˆàöÖÇæƒ–‚ËÇ䂆ÃÇ +秃™™¦³›ž†ÔªŽÂÉÑÍÍ馧ÁƒÄ„îüÜ·¶ù¦›Õ‘ɺ‘‘Ýð°îèÈÈ·¸¨›˜Ðßõ÷ëúúô½ñ½º’É×Ó£§ëêÒõöêº +°ºôííºÖÖÜÝ󳮩É×ÿР««ÓÕÔÝèÞ¿Ö½ü©úûþÜ÷ô©îíñãÝïÿÿå¦ÿ¾¢…Ðÿñª•ØÞ†¤Êå™ÂäòÆ “•­­© +À”ȤÀ¬†‹‹À¤‚¡ØðØ€‚àóÁýü¼àñÀÜœãšË…œŽ˜œ…춚łÌǦšÁ€ôº˜…™ÑÓèàúچͥª©”°µÇ¥žœÔÏÌ€ +ññõؘúôØÔͦƒ‘‘õƒð°úèȽ¸ñ¨ž˜Ð÷÷«ŸûúÔ½½ê’¾ÉÝÓ£îîÖä÷õ©»ºÔíÇíê¶¶õë«»º¹ÙÝÔ¤îœèÐ×Õ©ëë +ßÕÕÕꪪõµ‹—êçÏÔσž¨Ÿ½Ò×’ÛâßÔ䡊ÎÏ“ËËä²°©´Ô¦•‚‰„›ˆÅå‹‹À¤˜‚ÂáÙ‚´ˆ€Ÿæç­‡ææ€—‹ + ¸œ°»‹Øì©À⩘ÌÀà˜€ºĮ̀蘴°½­ Òí…‚¦¦”““ àâ±¾®˜Œ›ƒ££Š²Ù˜±²‚†‡•ÃöÊÁÁÅÀ€›¢¿Ÿôõ©ú +¸û•¤’¢§ÇŸÑÝ­èêÒô€öªºº”ííãŠÖÖÅË‹¢¹ÙÑØ¨èè†ÐÔÕ©êë•ïÕÕŠªªÅËÏ—Šçϕϟ´ªþøÁñÝ÷ߊßýîË¡þ + åÅžŠ¡•È›ÊÄⰸئŒ’¡°ìáàˆ„åü¾˜ŸØ‡¼ÞÙÜœà„ò‡ƒæç‘›Ø¬À䂌†ƒÐéàæ†ÁÐèàúšÐ©å€Â‘ÎÍÉ +€É°±¡Ÿ‡ŒããÒÑÑÀ¦¸ËÇÆÀð°ô€èˆŒŽÊ‡†ß¤ýý ¯ÏÚ™Û«¥‘¤½½ãÒîîé×—´³ÓÚÑ¡íïÇ—¶µÉÛÛ¥Œ­­ÒææéÓ +‡“´±ÑÚ߯߭«“ÖÖʫӫ¥ÕÕÒׯѤ¯ÞÈŸ½“оù¢ýüØúÿí·ÒßþöË‚¡þéÅžŠ¡Çü´…… ”ûñùåóó€Ç–«››«ãò +±‡ƒæçËØìõÀ╱™€Á˜€ôº˜™´–ÚÙô´ Òý…‚¦¦À䤸ð₌ƒ±Ð±°ºŠÈäáȈ˜ž†ÃÃÃÂÁÁ°° ì±ï‡ýýÂÞÞ +⡉„úú„݇Ý®®áç§Ûèè¶·‹Û¿Ú„­­Â––Üáó³°©ÉØáØ¨ìèÖ×È‹ëë…µµÂñêêáÕ•ðÕÖ«á‹—ÂçÏ¥„ÏŸŠÿøÁ +ßøè‘ð›ï„ìßýõ兊··×Æãå–ñ¸å³³ó€Í®ã±Ê˜ºÌÀà”Ñéåä³³€Æ«›žè†Ôª Ðʦ·¦À䤘˜€ãããàìŒŒŽ +ø‚²™ŒŒ€áÀá°´„†‡ÁíÀ€¯¿Ÿôõ“ÞÞž‰„úüúøÝÝ «‹Ã×Ù‰ººøí÷í¼¶¶ÐÚÊäëéᵷ󚽚ø¼††¸Þý½¯®Ž× +žÛË«©áÕ×ÍóÞ¿æÕÕñ®Þ¾ä½øÁûïöŒ÷ô©ïÉþ“ÞãǼᄉãýýµ¯’³©Š¼”‚Åä¹–±˜ŸÑéåà³³å´ÚÙôê´ Ò˨”² +©©²Éɰ±€Ñ¶¾Þ¶¶†ˆÆÇ™Ü¶²ž‚†‡ÁÐ˜àœ¬›˜€ýý› ¯ôö‚’·‰ÕÓƒº»ÁŒ×—èìäõô»€ööÐÖÆê°í…­­¬ææ +€ÖÓ“èì䵎´°êëÙõõã¬ÚÚÐÓêõ®æ½þͪªêâ½üÉúñ‚Ûõü¹ëÙ³ÖÇÓ§¬§ÏØßúÿÏúôˆõÍþ·¬ßÿžõ×¶ÿý告¼ +Ž”‚úÇѨå¤ÓÓŸÍΖÍþÌ”—¿•Ž–‘É嘣£åÃÃåÃÌÃ僃àà ß¬¿¿¬¯ô¹ö‚’©¬§‡ìô÷ƒ®®ÐÙ€‰ººÀû»è +¼ëƒ­­ ¥…Œ´·ƒ¦¦êãø£èè Ö׃Ẻêí­¨©á¡Ö×Óß¿¦´ÖÕׯ¨¯˜ßÒß¼ ¾ÿ¼ÎýöŒúô©‹õÉ“ê¿ÐÄŸ¿¦¾úÄý +öÛê×ßÓÿåûÛêïþ󧆇üûÑ „Ñ›‘‡Âÿö£‚£Ÿÿ¶´¸Ô¶¸øÙÀÀ„Ùÿÿçýý僽½å¤ÒÙÏ€ÏÙ÷÷Ù××€ÙççÙÇÇÙ +€û»èë«ëíð…­­åÍÍ ±©‰´¶‚††˜ÐßêêÀíö­¨©ÕÕäÃׯÁÕ•øõ·Šüò¥ùÅ‹Ûðü¹ùÙ³ò¿’Ÿ¾…Ïÿž¿ÿžüø +Ö±ùÑ£ò÷ßÿ‘¿ù†üõ׿äßýŽüÕ×ßä¿ú«¿½àÞßüŸýÝîùм”‚ôÇõÝôüÖÝýÿéÿêú¬³ó³ŽŽÏÚÛ¿ëëÿû¬µõ³–– +ÿ²ææÏššÊ䚛˚šÊêŸëËêêÊêëÁËêêÀõõÙÿë× ªªìÕ¦«ðò¥øñ‚ˆ¼ÿŽž½ƒ¿‰þÈúú”¼ùü‚þøôý÷ߤÇÁ£Ç¤ +Óï¾£ýû­éÁ›ïÈßÿÍúÛýïÉ¿ý­éÛ«¯È¿ù鯝ÿòÏÃüõÍϾþ–ÂöØ‘‡ÂüºÊ«÷§¡þ΋Ïÿ¼ŠüÅÿ®«Ä¯þþ¶ +ÏÄŸ¶ø‡„ýöµÄŸ«Äß¿íê¿À¯¡þ‘¡þ¬•þñ½Œñçªð멈ÿü‹¿××ø¿¥Ã¿úÿî¸ÿƒÑû©§ +] +::^ [s0; Color selection tool.] +:: [s0; ColorSelector] +::= [s0;= ] +::^ [s0; ] +:: [s0; ColorWheelCtrl] +::= [s0;= +@@image:721&610 +‚ƒ€í€€€ƒ“ÿ€€€€øïœì¼ùÓÛ÷·½ïßÿàþ•û÷‡ûÓáÛ麧ÍÛ´óñÄîòš¸±Ý›¦Ží¬Þâêø‹—Ž—â…‰Ø†¯Ø†ã  +èàƒ†ÌâöÕɬ旋À‚û„ÚÑ‚àˆ¡¡ô¸¬ú»÷œ¹ß¶ÒíÔ´íÏ÷æ²¼‡á„úè£÷éýüüÞ¯íåùú¹—´îÿËúù‡ýÔ¿É +ÓýÁþðÿž˜ÿ¿þù«—ûð¿¨øë×ÿ’ëü—…ÿÀбþÛÿÀµþ’ü§¤àÛª¿ó¿ü“þ±Ô…ÿÀÂìñáῃ…ÿ¼ÂÎÍü°…Ÿõð +™ã®Þè姃ü䈟Èùጟó£ÉþïøŸŠ”ÿ§àª¿²ûéÿÀŠþýõò±ùᑯ”ñ✥¿¯áå†Þ¦ùÊ–¶ÞíäÜëÛúÙ¶È +ݶᶲÍÎéÖ‰Þ⋊°×æøÙËÏõ•¼èà…Óÿ ©åŸÈÁŸÜ…¯›ñáïÌÁÿå¼îÓù¡‹—–žðò£¶¼æ´ë¹¯Õñ›ºÞìâû‹ïõ +¿°£‹½ìœºàç¿“²Ó£ÆÎñöβÉÉÛê¶ëøó·–ßèùÍÈÖ¬³Û¬¼ì㥬‡¯üýü‰Û‰ÿü·Š¾þ„çùѧ¤ÞÈáç· +ñùÕ†Û¿âõú¼Þ¨â·¥ì—¬àíšÞéà…×ÓÞëã÷§¼ûúØÛÏÞÁíÞŸáýÑÞ—­³×ÁÞ©öÌý³û†÷´ìš±ãƒï›Øéïá·ó¼áçõ +Š…¶®ò«·¿öÛâ…åþéï¢ÃÄ·²žûó䣾ü¨øúíãᇉ¼øþ…¿¼ÂÖ›¼çžÆöÌöäò„öï¾æ÷¹Þû«ø Ž›çø¸…ϺØ× +ƒÅþÞŽŒðà‘ˆƒÒŽÈ¸°óÎÉŽ¨Ø¯ÆæŸ†Ïôü¬±ç㟘ٻÉÏî»ïºùÛÙÅŽ·Û—øÝ¹ËÖŸ¿ôóâŸàßö¨¿µ‹æÿüŸðüø› +¦Òðõ÷ÿŸÞà¥ã¼ò–Ìßßâäö¤ÛòûûìÊæÏ˜Ã¾¨ä£Ò¾©àÿ‡›¸ãÔÌçíœîäÈÈÇû¹ºÈͱ‘ŽñÌÎ̱…Ǧ¸ºÍ +ÍÑ™ŽÌòøŽáÏŒœ²ñÐÊÔþ›Ÿ¸øèì–Ùãá——ßßûر›«•üú×Öù©ßÌþΖ¢öîÞ¡øð·¢à§ëïû‹þø–®¯½Ï–üö +ß’íçÙù¥ïäÞç÷¾¸ÏǹìÏçà±³‡Ê¹ÜÅѺ…Ž·ñù‹§ºŽ¸ÙÅ©Þ΄ðúˆ„©‰²È’¦È˜¤Áż鵧µœÒñ’Òω“ŸÛ¸ +²¾ÏÑ»‡œœòñÐÍþ¥¾¦Þ惕öûùÖ·ÀΠÛüǶÁ–ˆ¯Åÿ¼®÷Ä¿¯Àú¶üøÞ©øú»Õþ“¿þ‘­¯ßòÊÛ¼ö±Û‡ð»„öÝà +¹ïÕ¾¼Å¾ô¬ŽæñÙƒŽ¼©â؉Ÿ¿á䦧ëÉèæÌð›ç»¹×ÃùÊþÎ’¸Âₘ‰ò’•¤ª²Éœ¦ÑÃùÙ›ÎÏñÎÈÙ³ê笤ظíà +å䂟¯òÌ쑯Ÿù¸èçú߀ר»ÎÝ®°¿‹°ý“Ë×à•¢¯’ùþû؈Øùƒñçáû¥ öžÿûÎÞŸóÞ˼߻߽ÉÛ»·Ø¹ŸÝÇÙû +«–®³¿…ψïó¸ƒãßñ¢¢ÓŤ”ñÛ¦’óµœïäé‹–®´ó±‹²Ë½ÜžàòÄÉÒ’ä¤ÍŒ´É’ФµÉìÚ®ë¸ìà’󉋖®Ìó… +ÛóÎι¸ã´¦á‰ÓËœØ»áØª‡×ø´£ÈþŸí°÷±“ÝÑö›ì”îããå¿æ¯ý¿ÿ­­àÚÂüøž©øþñòÿöÓ¾ÝÂÄÿáߎ¾ú‡ +Žö²çÓ¾º·Éþóœú’£¸·¸þ—“™¤­äò¦€óɦüÂ…ê®Õó—¹™¤¶®ôò‹µ›ëýÜ›¤æù„ä±Òä¤È¨ÈÑ’²ÍŠ›†äÙ’õܳ +†òÍÌÕ«×켤¹¸¼À¥Åè®øÈôòÎÇ€™¿‰Î†¹×¾Î‘°‡¢ì«ò‘ì¡ú޽‘„ÿ…Ж‰‚¿¥ðÏÿ»ð–âçŽÄ‡ï—‹‚Ø™þ‰ +Ç¿àô¶Îîç›ó·¹¶›£ŸãòÙ¾ŽžáÓš„ŽÜàøÕιݢ¡³Ù¤’¾ä¡—ÊɃªàÊ­×›ÉÜî¡¥ëÝÜ÷è忀·†¸Ð¥¥ÕÆê„© +–Ó¤ªÈ¡ÕÆËªŽÛ†î™í¸éáÆ¼×í¤¬¼ÈÕ·²×–ÈÚæÒŠ°—ÖÉÜãìºÀ‰¡Îíðü“ª£ð©ìãóÃð¶ö“ú›õíé¬íãõ—¬ü +—Ÿ¿«²šŸÁ¾—Šâ¯ÿß‹¿âÂëüñÞ–çßåÜÞÎÄüÌÂÁÎæ½ÄñŽŸá䥰’Ò¸û›ÄŒÒ®æð¹Ÿ¯‹á¹ÚÎò•×ë¸ÑÄ­ÖÒ» +¯¹ÝÍþîŽé’¶ÂÚ˜é㱤«È×’®¦ÔÝÃú¬éúÒ™¹ë厣ÛÎÒÝÜòÜóã‰ëˤûï¸êçË€—ƒÔÜŒ‘˜æì„鄨§á¸Ñà +øÄŽ’þ˜õ½ê„ߥð–þ׋ñýŠï‹ÿ‹ü–âçôLJ¿ß’‚¯íÚ¿“²…äßðõ§Î×ÞãËÉڣϥÃܼʗü§¸ŸÀÙóœ§ý’Ä›Ü¼Ë + Ò¦×žð표©¥Ü¨àÖ½·›¸ó”´ö»ÒŸñ¯—ŒáîñßʦŒÝ̉²¦ÈÒ‘œµÃ––¬¹²ì䚸ïᾉŒ‡÷–Èߦ¤Íï·ý +ÜÚáÆª©ë´ÜÛçʘ¤¤®î’ˆç‰¦½°ù‚£„Žþ‘ÜÏÚ‡¬¾ëÇÊΖÿÃÒÞ–Üÿü½›è›ØÙÖâÃßúÁìÕÿƒ»¯ÒòçÕî¿Éê +ÿÛÜÚÃ͸Îñ€ë‡É¹ÎñµÓܽ×祹üË×¹ü…‹«é¤çó½Û›Å¤–ñ§»’´ºÒ›ÈèÙåþ‡™Ýäõ命Èף䌙‘³Î®‚Ü¥ +ñ¹êòµäêÈÓÕ“ë¤ÇÂÎì¼ßÙÉö’å΢ÓÍý¥²–Éߡ핻ÆÒƒÜŒñýƒ©äˆ×¢Ü†‹²ìž§ò†ð©·Ö³ö˜À½üŸáÛƒ÷í +Œ¼ï²øª‹¯ÛâøŸß¯ç轋ߙ‚ØË…þ§™¿¥ó«ï÷·“ñûîíê¥ý“Ò¾åîÎÑîœàö‚©‡ç¸õ…·®ñÝýË’“¹ö›ë™ÜÌáö +¼÷Ÿ“þ„ŒêîדÕÌö›¾¹ÏÈíáÁ€‚‡ø¨¥ÏƵþ„ùÓ䫨Ә¡ÀËÁœùî†òÍäÛɳñÐÁÃ…ž¬ë’ë¡Ç˶䬿÷ƒä¬‘ +×¾Îݰ·£Ü£ÜäºÜ£ú¥¡‘ËìüÁèœÁÁ„‚§Ø½Ê³Ê§¬ÿÂÒޯܿǵçÖÉì¿åþÿþƒÎ¡·¾ü·Šåžßÿþʃ“­äî§çò +‡Þç«ý䟢õ똙§¹ÿ¯îäœçÞÅÒ“ÎÈ»ÊÝ”îßãäÖÝÒ³¹û³€ôÇä”ÙðÁö­¹ä¶ï𰃼®òû¶¨ð脱âŠÇ©ÒФ¤ +ÌØÍ±†âÅÆúŠ”Ù¨š›§ÐΡ“Ç®öŠÜ䯑·Ì‘Õò×ÉÙ£Ø»ÈæˆŒÒ·¹›¥•î²×™ÂÆÕÂɬôßäí¼«ÿÊÙÊÉüÇðžÂ +³Å÷Ùø‡±ÇöìÛ±þ”Óó÷ó¯ÄβĔŸ¾³…¯ò¬è«¶ÓðŽþ…ï“¿¼ÏÈ»ÎÃÓ¼¸ðÃ—øê–ŠÙÉäÝ ³›•û÷¸—Îú + ¶™ù䖑ݰÆÎ•êÈëÖ¦¿Ç”öêÐÔÏñ¥Û”Ȩ™ ôŠ°Ò•å³”ÍÒ̶Ǚ²³¥ˆÖÊ픸¨Ùëàñ¢ÅžŠ¼Š”úøä§¿À +úÞ‡ëä„É㎙¥ƒÒ‰ÕÞ¡’Êø†¡âä‚׈ÜŸ›ˆïŒË§ØºÓŽû³Üûð¾Ûýæ·ãÙŸŠñÅï‹‚ÏâüøŽ”¼·¿»¥¯Ò²’÷ +Úøü¾÷ÑüÄ™ÅÇ©ºÍá¸ÙžýÁ£Ë”¸Ü¥¿…¼›¼ç¼Íƒ´òïñÄÕ¦Ù¹ä—óó˜‡ÏÈ«¡¯ Â§”µÓÑÜÅÉŸ¥’Ê©†©Ÿ¥ÜΓ +…•ʪÔÔ軨ÔÑ©§Òħ……Šùªì¼ÜñÒî¢ÜÍÙÞ’¥Ë”¬Ð¼ÚÊÑš…딄ÏÈÛàÁ¦¹Ê™ìÞã£õÐíÖﲖ±êÕÖ®³ü… +¨ËçñŸæñ¸þ‹ŸáØÇüûîØÞÁ´Ã«ÿÌýó÷⥻ÓãÃßÊÁóÿÁ³â‹•ïÒñÞûž¼Ï“ý””ÿÆùñÊÎÓ–öŽÒ‹”¤Ñ®ò•Çש¾Å +ÉÑŠÓùôŸÕ‚¬òóÈûÀƒÇä•ÒÐÁÄá­Åͼî¥÷´“²îÊû©ò˜¤ÒÊ¥ŒªŽ‰ª§¨Öѳ¢ÃͬµóÔ˜±©±Óã¥ÆÆƒµƒê—Õîª +Û—¨Ü¦Âǹ˟²€¥Áž‡Æ¨Þ °ÂÁ”¼øÀ´‡È–¯áû¬§“¼Ãýà–þëø®âšÍÂóÅ󬓜ÆñœÛçØñ÷áþŸãïÑó¿‰î‹š¿Ö +ÆÓ½ü±¾ü˜Å”¼¿êÿêÅíï¨ù›šß½Ôì£ú³ª™ÓõšªóÔšÞ ²‰Šë¼·¹Á“ÔÊïÒæöÒÌʾ¢Ž¤—⇔•ÐÐØÄá™ÅÕ” +…ÔÓÚÌù›ÏÕžÑÙËÕ€Õ§ÃԌҫ§Î¦Á’úµõšÈšô´èé°ÑÊà¡ážú‡õò‹Ô­Òç¡ÖÆËê¿Õ«¶Ô®ñäò°¡¥‘ʶ©†Â +Á¢…ì¾ä£—áÐׄ³Ù»ÇáêÝÖÒÙ¾ÁÕÒµÜɸ®àö¼‡ý´óDZòü†éŸ†½èÅÞÆû›æþÅÙôß•µÅÞëÕŠñÓð¼ÿ£Ðø‹šß§ñ +ð§ûèø„†ÚÃÔŸ§þ´õÇ稻ÀÝ’µÇר½ÁͪÕéÔçЕÅåøŽ•¨ÈçÉÆ£Ê‹¨ýÌÉà“Êë¨ï ¢û…ÊŽª»©éÍ£îú‘šÆ +–蜠ñЦ•˜Í³´ÏÒ¼ÇÓ³‘æ³ÍÖšáí´»éòÑä¦ñ‰ÆåšÖŨߥ®ÀÍ…ê•›ÔìÒ’ž¥”ž³ÙÄÕä‘áüÖŸ°Á–à‹ÿ†¾ +¦´¼©øî°øã…¤œ—°éÃúšóñŒ‡˜û„Ù½èöé¢þ寘üí؋ñ¸¡ÎŠžçßÚäþÊ˶ÚÞ¢µå½žþÄÓÏœùúŒ§§è¾ +ÚËó…š’èºâÆãšïÓèÆÃ†õÙÔçŽÐ÷ڂꊽ©®¦º”Êòüªª¨¨¥ª‰ñêÖê»©ë¡–á€Æ¡šÆé³–óÔÁ‹’–¢µ­šÚõ´™ +´è³Ñæ¡ÍƇ›ƒÖ…Ú—é¿ñÐâ婿¿Íš×èØ±§®Ìí„ꨘÕÐÁ´œÈ©†›Å„Љ–Úøˆ¿‡•¬–ȳØÊÃý›×Žœ×°§±ÿ +ºËÙŒ§ÐŸÚÃ÷©Úпۇꭦ¶±ñ–Óäß±›—ûé•£¾ÄÏÁËéØÂÇöºÞ«¥ýÃÚÐþÿ”ö“´¡íÖ‹Ú’è½ÆëØÚïÓ’ÆË +êýžæó´—æâ¼šŠèª¢ñè±åÔ¿¡®³’Úêêê©í¯¦®†®šú¶é–ðô„–±šÚÇ雤ÝÅéÇŒ³ôÎÑÖé¤ÓÌç¼´öºôºèð +‹Ó±Äû²í«¿´®Ò²ÆÓõ±šÃ´íаÉêݔڨ泒ͧ„ËØÿÌôÚ‘«…¬ä±“œ‹·›Ïý–ÝÓØ¸ã†¶äëØ’°ýáèŒó§™½ÊÌ +Ò¦¿Äù®ŠóíŒïáìÇßñ™‚ûüˆ‡‚ÙçÛÐ÷Ëôÿú‹ÝïÓµ—®Ùýô¦ë„Ïëþ•牼»ÌÛ³«ôÞ ³•¹Î´ºîÓ‘ÍÔû®íù´½¢ +§­˜Ö’ÚÊé“©àé•͵´×ÕÑØÀÃÓšüºèŸÖ¾ÁÚ¤´ËèПЩ䙚®äݺºô›èÛ¶Ðí£ÛÁ÷æ‚Ý‹ôùèò»òÌǧŸŽ€ +µíÁÚ´†éˉМ¥‰šˆÅÖ‘©¡ÜŨé‚๒üÅýøžáÍÓ‹Ô»›×ýœéØÎÒ±ÞÀü•ãÞåô‰èþ•Í–‰Ô‡ÑíçòЯ“ï£û—¤ +ô¯³üݶ£Ø„Ëìñ¡ÎŠÞá¤ï›ý»èÛîÍßÇô¢÷ú¸½‰ôž§÷š’½×é¹ÎÏઽéôçЀÍ÷®Ýùô½©âÙ±ÏÊ鬯§³’ŽêÚë +¾é«§µ‘ÖæøÚÚé餵‡Ùöº†éœ¥ÖëœîɺÕô“ÌлËßœý¾ÆúÌôÍÓï›§ÏÉŸ‹¾·´ýËô®Ó³Âå÷ªÝëô­Óš™¦ãƒöÍÚ +Í¡…šÙì䣹žÐ­ëÕ¬Õå²ÚÎÊ©ËÅœ¬½Â‡«—ôç¶öŒæÓ°Ý¤âºŽáªºôËèϳ“ÀôÚñ¦Ž¡ø˜ùðîÆ÷°²Á‰ï’©ÄÞ²Ÿ +žŸ¾•‚ØÓ¿Òäð•†ßÄòŠŽ’‘œÄòҔɩ¤ç˜¸ÃÈÀ•†Ò˜¸ëÅÀÝú³èÏ­¢¿—¾¼úžáÑ×Ì墳å…ôÔÒÓÍ÷°Ýôµñì© +û­ô´ÓþŒÕ޾žÉèš¡ÄÛÆï„ýÓôæÏÓ¯áÀ‡Äÿ€Ä„ÄÊ ÄÁ‡ƒ‹È–‘ô¬¡ñ²à£ß¬Ïÿ€¾ ½¡º·èŠð¬Ê⇴“í¥ò” +¤ð“ë„ëˆîÔã¯Ä׎·Ø”ϱ‹ØÈ‡Ã‘‹­‹ë†ã滘ﱗÂÑì•´—™¾‡Åò”“Ç™¿È«Ø‡Èßáèͼ†Þ¡ï‡ß¡ŽúµÄ‡ø¨ø +÷‰‘טÙÉÈäžÆö±ü˜áÔ“ŒŸáø‹†‘“˜Îæè¦ÃÌ÷˜ºÇЖƒô¹Œæ±øˆÁ”⤥Ȟ°Ð©ÉÀýõô·£Ò×Ìß‹½íôôÐÝÉ×· +ÖÝýôŒÑ«¥ÔÏ’ÉšŒƒÚ†æ˜¶²ìæøž‘»€£ÎÆÜŒû˜õö²ìãÈÏàòª’µ¤ëô‡é‹Ð»Éôº‘í䳃¶È­„›‰´² +²ÚÇÊË•¬Ú½ÁÝŠ«˜çÚ£ìùÌçàÉ‰Âøýô·¥Ñ¦£ÎÂõ…µ“瘸찯£±ïº‡Éνúߣç¥ïÀ‰¹¾üùŠâãÿÿ‘ã±›´ +ë±ÝŒýÄØã§Œç´ÑÓóŒÞâôª£Ì·˜½ÍèºÒ‚̤¹ÈŸ¢­Îघ‘ÒÆÊº™®ä¸†áº¡†š™êæ°…äÉ›’ކžÑÁßÍ߯ýƒô +è³°†äœÁÖ©†¦™Ö°¢âêÇêâÔʃ¨Ñ‡ã®Æ³ÝŒ®±ºŒôâ…骣†ƒêŒ…˜ÜÀ²ÉêÀ”¾èå³›õȳ¬·±“ÖÂê³þÆü +¨õøëðԲ؉ΩŽâì…øØŸâÊÁÉüܺ³·™¹ÁÕôÕ¦®¡¸˜¼Áüˑϙ×üˆÝôî§Þ«æ‰üè¯ÍÞ¡˜â÷Òð֒㯱þ»Æ +Ý÷²¾Ÿñ£ŒÕŸäü¬ò‹È¿Äž‚¼•ùÞšòûÈ¿Âöˆ€Ù²¢ä¥“Œ•³ÖÉØå£õŒ¶²ÚŒá´•黣ŒŒô±ÜÃПÙýŒÊŒ°¨ +„ãø‚‘¥ÒµÝ£ÚÆæ™‘—™‘Ï£·£÷¨¢ßÄîÁîÅ…îÃæÇ–à¬‹ÈèºÒ°£‘›†£Œ‚„è¿‘¾¶úˆõ‘ì¤ÐŽ¿•ßö³Ë¬Õá® +ÁÕ‰³œû‰Å֢̅˜Ÿ ¯ÿŠÙûèÒÐÓ§¢ÌáòËÆ˜¯ »‹ô¤ÃÎÇì§ï¯Ý÷¿£óµÚþ²È›¡ö°±¾ü´™ŠžÛÉטÜÎ䮦¿ +ºâò“Ç™ÌÈ಑Åå”×¢ÐÜÄñ‡Å½ ”Ù¨òÑ䳿ÑÈÄã¦Ê™Ý¨ä¼šñºÆð›™ïÆÞм¨Ù§²îÆú¢™ëçô€é ùÒáÆ¤ŒÈ‘ +¤Î²¦Â¶ƒü‰–ñ½ã¦¦¬€¨ì¨œ¨Ü¨¥Ü¨–Ь£Øìáâ•ñµÆ×ç‘‡í°¶‰˜”Æà˜ÍÁ¶¼†ˆ÷³ÞËÚþ·«¬´³Ü‰ÊÒ³îÆÜõ +Ƹ«±×²ßŽå屦ŒùèÂòÑæ±óÕ¦î²ñùÀ寓™Îàð¾¸ý‡èùˆç•»èßÎË«´¡þ…–¡ö¤¾Â¾üùŠÞÄõÐëÔ»Ñ핎 +ëšêˆªÓ¨ÎˆòŠÊ뤨ã—κÊÌÑ”¹¨Ÿ¢üÄ€Ô±ÓåÌÕ°²ÕÍÔ“Ìܶ³ÙŠ¢ÅÔ³”ÝÌô²Ñ¯Ï¸„ñ¡ä£È¤ÈƘ›Ç +ж…üšñ“ꔆ¦ÍÌ͘³åǹ€ò‘µ¥‡¥—¥©¿Ó¦ƒ¨ÂªÌ„™ ¢Åƒ±¢Ò¢£„чˆÉˆö“è¯Åßï™Þöò¼­¬¶³Ðˆ +Ñ£ŽÛµÖŠÌì嘋™ûÄìàô¹ÌçŠï‰¡Èåüºã׎˜¹ÈÐنΑÑûĸàûúéÝÉó¯©ÿ܋ܣؑóñÉáÏÑð¼–˜¡ù¥³ï°ó® +賟²ó©êãá¨“Ð§Š»¥ýŽÙ¯›¨ï¢ÝÎÀúê΂¦‹˜®åúÒ‰ÓÕÌײݣ€ª™Õ‹ªöêÔ¨»Ñö¢ÙìçÊÂÔ“œ£ÌŽ¢±¡ +„ç₉¥Šµ«“³ÌéÑšÐÌÙÐÙ˜ö°íÚÂíÆ½„ú™å镦×Ñ­¡àÚÇ™æêƒÉàÍ”°ÁÔΦÌÑ£„‡žØ“°ÚÏʯÓËݬõâîÇ +ÇÕ‚³™ûƒó…µØª°¾ÁßóŠ®ˆÍøìñªì¦³˜¸‹•ì¦ÒäáåÈÚ’éË û¸çŸÒö¡ÏߥÁáêÿÉå¼Ä±Âì°ÝüøÌ³”¼€ö«Ú +øè÷£Ý‡öö°Ú“èÏ¢½›ˆöŠÚëèÍÇ›‰¶‡ä힚´Ñ産©ÄÓƒ¦àžÍ“³­Ì´Æ±ÓÉÌ·³½ƒ¨ûÑËгЭåú”•ŒÕ +ª¸Ê‰¦¦™Ôê±¥Á¥ãÚ€ßÚŒÚʌ͂‚šÅ´ž´Þ€´¾´þ´æë‚¨Ã¨·˜Ž“ Š²…“ìÎÀ™§¬ãý””µ©áü’üéýøûñô³Ø +‰ÉÂ›Ž–ìͪØê±Õà¨äÅ®œíãæŠ™ÙÎ㪇‰Ìä÷鳘¾Îકú¯Òó–ç§é¿Ì˾š¼÷Ó·ƒª­¼…‰·ƒš»ì¶â¾ü™ŠþÆÜ +ßëÌýž¹˜Ö»Èܱ撘äËäî²óט׻ÉÜÝæ²Ðšå£û€®€Ý؅ծˆšÝºÆôϹ™í㶃ٮŒæû™íÇ«ÁÊ»ŒÖŠæŒ +¢œÍ¸³ŠÔÓ£¨•Ìϳ­Åֽnj‘…­‰Ù‡³®ôîüôËè–Ñ­ ØÛåöÙõ´Àá´‘æ¶ÑÈ´Ñ¥‘©¶”ë„Æ‰Ê‰Œáû—²²Ì²„¥ +žþܽ¸ºðöŒàëÃú”ó£ÝƺôÕÌÖ ‰Ý²Å¨‹Ð˜¼à¼›±ŒÆÑûàš½ë—éʤ£Ö˜ã´¤þƒê¼þÏÅë”þ¬˜þŠ´ñᛩ +¯ˆýù¿±þŠÍãöŒ»°þŒÁ᳌§ÄšÅŒðטҰ¡¤âÈ—®¡÷æØåáˆÙ¶Ô’Œå˜ª°Ô¸âèÀߌ¾•Ôý‡úçèûÐç÷£—°·Äœ +ƒ”¹±ôòô“Í覙âÖ…’Öö†Í¬šˆ½Ú“³Öôö׿œè—ÑûоûÑûЯ¢á ²—·Á¥ì¦Ú¨š˜áÞÓ͆Šð”ë‹“¬Í°ªçå +‰Œå©Þ¡¼’’Üý¸û°¿ãñ¾ƒË«¦Øç˜êÀ׋¶Šõ‚¹ª’¦ãžÄÊž²œáÖ§´£É¥¯…鼠’àͧþèøŒÚ©Ü²ÅÙöžÿŠÇ +ÿ»ÎÄòÌü™øÓ”¼€ù«íæ˜÷àÞµùˆæÓ˜ÏáѾ¤Òªæ›˜ýïàŽÅ–٘쟈÷ÎÜŒ¹ˆ”Ó…¦êÌõ˘š°µàêÇÇÔ‰©›ÓŸ¦ +ŒØǰŽÚâ”ã˜À°‰êÁ‰Þ…ÞÍœ†¹­ººƒŒóæô󘜘Üݘݘ–°ù‚°ù±…°…±ñ®ãŒãˆ ˆ²‡º¢Ú¢š‘Âꪂʂ +û“ø§ðÉñޱâ™áñˆ…œœýغ±öâÎîÇÐÂÜ“³¢õÌÔ³óšÀÊÑ”£¯àôöÃÙŒÆâûæ»ôÜɯöÐ˼½Çã©êݎеŸò½” +Ãì ð«ùñíºÅ±ãÔñáÏšÑð’ó¯ãý‚›ë‡Øâ½¡†µë¢Ö¤Ã¬ÉØïáÍÃÐúŸëŽÖ¼¬¡…ØŸã­ÇÚ£‰µ–ëƒÖ擬­Ø»°öá +ÏéÅÒåˈ–Ѭ²¬ã˜§±«±ÏãôÒãÒàšÅ¨×èÇàÄàÁþèÃäļˆÅ§ƒÅ‹å…˪ɖµ¬ëØÂ˜À·°í℃èÇÙÔ±±ËÈà +纚µéÖ•¬Ú̲¼Î’Œ÷ú¨®‘œƒØû¿™ïÅÜ…±ÃÏÜš³Í蚄翠¬ÄÑÎøÒãÆŠ™É“‘óýÀýúÓ躀Åû²­É´¥ªÒŸÀõ±žœ +Û¤ôƒŠÞ¦ÿÄõòâŠâLJ¨âßÓû¿ü¿°¿Œý«ìïâÿˆû¡³ìŸã¿ƒý‚íö«Ø¯ã¿Ð½û–öÜìŸùØ‹°—âÿ³‚½šÛ°ù +·¶˜åëÇöŒÌÛ¶Ø¥¨Áª¶ŒÍŠÍ†íéœù…óÓÌ«é˜×ãÕàÅúº‡Åňٟ„ÉŠÙŽå׫›ù¥æýØûü؂؂̇©˜ãà‰â +À†“Ñ£‘½á¹Öç‰êˆ¨×ñ«ðÍáÕàØ™çÑÆ‚”ÇҰ󒬱›±’‡Ã³ôíèÛüз¡Š¹ÌÕð̼ÁÖŠ´ˆñ¡ü†òéÍ¢Þ«ŽÛ´Þ§ +•ùŠõ—¨¹Ã·Å產ø£ÎŠÞåÁ›ä½‡Ì½ÿ•ÏúßÜ™Ÿ¾‘‚ŸâÏÜ‚ó·¸÷ã•ü„çᜧÅÓ…Ïù‰ç՜ܷðÞÁ™¡²·Î‡¢á⬠+ÅÆÙ†³–ùÖ¹àìΟ³ÕéØ¿çÌŠöâÈœ—¢ã„Lj˜Ž¹Ž‰œÓȸԸԸ´Ø†ç±Ïá·à³Àâ³³ïáþž€ù‡¶—ööÒ¯Ž•œ«¸Ö +æð¬ãˆãßÀÛ¾‰æ‰ÚØ‚´³á¤ä ¸„Çà–Õ«êñ–Õ¬ÍážÀ¤¥—ïé›Áºˆù€Ã¯óÝ廘é庙‘©†¦êײÒÚÆð±’Çô +ؽ”ÙÞÎŒÚÇîðô†×©Õ½Äå¹ÊÏòµø°¾ááÿËÆ–îü‚ûŒ–»àª¾ðü£…¯°¸•‹Å¬îåñ¿™‹ÇñÆõžÙ×åÜɸîá +ÀÊ“‰÷׎®Ì¼Ü…¸Êð•›ãª’ñ§«–½…¾ÅÕ†«“Ä×·®¾Ü±‹ª¸ŒËŠË†«Ý¶®“¸”¬¨¶Ùа°Ëœ ‹†–̸͸µ­¸æñر» +Äñ¬âÜâá™Ô…¿®€® ®€‹›¬ÄðÆŽñ€Íù¢Ö•ÂæÖͬ™Ø‰ãå–å˪êÜÊñ¾Î‰½ì²æ¥˜‡±öÊÐ÷±Û¦‹“é¶”ÏÑ´ +ëŠØý¬Ê¤²Ô†Ë诤§Ìç¹´ß—Å§ÅÆÛÔ¥Óõ™¿ò󔜦ð¨¦ùûùê¯÷÷°ò÷«·¿ÝœÙÄŽÐć酪àż¯áù›ÑχøŽâ¹Ž +ä§Ï—ø’ð»¤àÉœާÐÓ”¿¼ùøŠßð”â©ÀÓ‘§žÏ“ž–¼÷±ˆ´Ë¸ƒîɘӸˆû„÷à˜î¹î…îØ¤…ºû†·–Í·Ž·žÅ£‹ +Ôæ–­¬ÚðÙàñ¹ÙØàÁ÷ËË⊋«¸­×ð¯ã޳˜€áñ“—¬õ†’±³á£ä¥øè¦àįǧ·Ã«Å³Ãâ´Ò‹±ÛÍÍŽ”åŒÓˆ†Áô +Ò±§¸–šô‰œÈñ²…ñ¦äÕõÈ«™ªà û”Þ¢ºòéÈ­¥¥“¦ôêÓ¥©ÎáÉ’¥ß‚Д ”Ò¹‡ÿÉü€´·¹õ¦šÉßž¦ÇŽë˜ˆßÈÁÏ +‹ñþ†ï»ø¿Ú”‚³ïçøÏïཀ÷ŠÞëœøï㽇·‹å…ø‹ñ—–á­”¹ÈïšƒÞæ¼­ø»ðöãíë‘뮡·æ ÊðߎãÄ«’— +õéÒìâÕ±¤žçÉÈ’™¥«€Ë¶¼Ž¼Î¼î®Ü‹¸½¸—“ñøÙа”䦩Ä҆˛ø‹¢¸á‘Í—›ªÎÂŽÖí¬Ù„Ùµ³âäÙ¯¯ÎêÖàÒãÔ +¶á›Äš³ü²ôŒÒáŽÇ‚’‰™¾ÔÝÌõ°çÑŠ¬™éƒÈéãʪ髣»ã˜Ž‚ڟМ‚Åý½êîÓñÃÒ«”Ý ÿŸ“õˆôøÉý‡”ßð +åÏã¡ÀžŸÿ¾‘‚—ñ½‰Üï—¾ñý†ï„¾³ø®Š×ý»øŠ²ðåãû¨êï¾Ç¢œâ«­Ä׋¯‘ßÓÔüíøºñõ‹ëèÔ—‹Ñ‡ñ +‰Š·Ñ·¡¬‰¥ïšßŒ¾­Á¾¹ü†ü¦–Ì­¬Ï³ìçٯɲ‹åżžù¼Ë¬ùð®²×¼Æòº¾°Ëæ‘–£øá‰¨ƒ‡È¢á—¡§”Á»ùü–ñ +Ц¯Ïœ®­ýΙìÓÂæ›Š§„‹¬Ÿåöéþ¦º Ñô¢ïãô©óÃÈê髤ÿ»œÎÇ¢Êú™ô¡ÙÔæÐÆù‡²›”ߥÙà¢Î’ý‚ +êûŸñûã®ï‡âÊ›Üø¹žŒŠäñᛩøú…ÿöüïáÿê„ÿáü§ñŸ©Ãÿ‰ÿµü·§ñßÅÿŸÿ×ÕøŸâ¯Ä߂ѿœÿ•þº‘ïš÷·àïÇÿ +èŒÿþþüƒ½øÇðÇâÕñÕüŠüÊü±¯ÂŃÿÖìœþ‹ØöáÆŸÛÁÀ»þ§þ—«‹ù¬øØñ²²Œ”ï…¡ºþ÷ìᲂ¾ØæÓˇ†‡Ð¢Á— +Ò§«öüóøÍÈøâÛšÞØ˜‡˜ùÛ–¥¤¦…úñô±ØŒü„õ ÈЩˆú˜ÿÆØ»£ˆ­Œ¶ŠÒÒϦ•ÏÊé¯áéú¡©ýŠªÙûƒõø¦ +÷®ñð’ÙçȾ¸ÉÃܸijˆ÷¯îçì«áñа–Ÿþ€ç‚çîÐà‹èôÿˆì¦°À”‘‚§ˆœ§ðÙÀµ¡Ç‹¤’‘¸Ï ‡ÀžÂÑš¼‘ +“ÕÁÀ¦‚ ­„ºˆô‰ÌŒåà€À©„™ñ‘µ…ÂÔÂñŒè‰èˆˆ˜ˆ˜ˆØˆØˆ¸ˆ¬Øê¤à¡à¥°ÌåꊫþÄûÃʺ°¢›¨Ê +Žªø‰®Ù¦ÝìåÝÃÚ¢«²‹¬¸Ø¶±äõÁíÂåÀ¡Ãƒ¦Åš‹¸Ô¢ÿþÓ£•¡–±¢šâò€ñÞçÆºö°ÔÂäÀ“½õ¼«¦ý‰­¥´–Ò +¡—ÇÕŽÏîÓÅ’Æá­žÞã««Ë¡ü÷”¢·ðõŸ—öâóö­Îîáð鷸űç¥ñ«á©ø‘Áת‰î ¸Çô¢„’¼Íð¼«ÁË„“‰Þ¢ +Õ˜¦¤éÁœ‚Õù„‹ˆ–’¬˜ ØÍ°žà“¥ÁÖ‚„»ˆ…ö‘”œ¦¨À¥¨£¸ÁðŠŒà¬‚¡¸«÷œÈ ÑØÑ ðÕì¥Á§¸ ¥ƒî‚Ë„—‰ +…®ô“Œ ÚÁá„·í‰ù°Æ´À¦Ÿ¼•ÂËâØ€Ûܺ¾§Þ»ž†«®˜×å”Δî¬Ô°ÏàД±·…ö‚™™Èª©ÓÃÌÈõõ¡í⨃ +ÜÖú›èª—²«‚–ŠšÊ©«¥¢ºŸ§¹”äÊÒ˜ÆÞ­ò’½¹ÿ™»ç¹ù¹šëǹ´Ÿóìû¸µƒ£¯²•ïÛŠè±çÇÓâßÓðãÂôۉ祿—ð +ÒÂljŸ¦œî¨¤ááä©£„Ó‰ç’ΕҲµð‘áÒÂ’•„ëˆ×“Üʸ“ð·õá¾Â’ÂÄ„ljˉ©Ä’˜§´­âØÐ¬«šÕ“йô– +ÞÂó„ì„–Ä…¶’Ší®Þ€¾ÂþÂÂÁèÄÛô˜ÐäùЃØç³ÈÆ€ƒ°ŸõŸëÞÖʽøâ¦ããÅù–¬Ø›Ìë±Ç¢íúé‘‚šÑ° +˜­çꔉáäÔ’Æû˜îÆÒÐÉß«ÝÍôÔáÓÚÃÓ…õ¥ˆÔ—‰Ñß鮾ř䧓“Êæ²éÉÜʤ­ù´—òþ€ã§÷òä§û·«²çÛôűç +§‡âßÓð‚¡‘íÄö’ÙËÅ䀑ãÄ’ˆ¤’É¢’¢äûâ‘ô¡”äâ’ɧÒ̤ŒÊÈ…ÐíÄšˆÐ´“é£ÒɤÀÛÔ£’¢ÃÜÄÆ‰È‰¨ˆ +š¨‰Ì‹„ÎÄü§âÚˆ‰ˆ…†È̹÷Ùöµ²ÄƲ›ö¿øÿâƒÍ²¿ú§ë±ê³™•¥á½—–„Øô°‹©â›ÉÄÙÆ¬ú³Óè”Ì +Ž«˜’£˜Å¾Į̈„ᾤÝôõÒÝÆç³‰­ÂÙÔßÁ¸Í™•Å”æÓ±”Ëþ–¹éÂß’Ÿ–­¤’ГÉÊ ñ˜§Ððô¯û÷²Èç›»¾¥´ˆ +𽻘Ÿþ˜‚ÅŸÝÆô§ÑÃ÷‰ž úÌ´ˆéÅ“‰¦‘Í’¡šÊ´è–Ñܡ𖓰­£ÚÉ´†èÊƒÑæ¢íÂÄÊí¦ÚÇôÅèˆÑÑÑЉ +ЪÄ骦ªŠ¡ª£ª§ê’ÕñíÔÆÔÁÔ²ÅÔÍ´æë¬Ö£æó„ˆ†‰ç†ØÜàó“͆¨›ÄþâÿíÙ„â·‡  àЗ–û¹æ·¹²ñ»Øðà°á +ñ³à±áÒ£×§¡Ó Ñ³­Äá©À¡Ç¾ÊèöˆÃƒÈúèëî–òζښ¼éî ¡†šÊòªÊ¨«¦¸€™üÜò³Èʧ¦½•ԔҒȘʤ±„㜠+þ»À÷Ù»“ßÛØú“鹿࠾ü“…ìσßÁûð€Ž„Á‚¢å®‰ÒØÝ«é…¹’Ѐа—Á¥±Ôˆ‘›ÍІûÐýˆšúȨ©¢Ç”· +¯”ˆü¾Æä·ÃÑ‹”–Įܡ–ëÆÂ­·¼ð·…Çóœ‚õ‚‚±ôÏÒ‘£âãƒÐÌü²¼§ÀïÇç ãé‰÷¬†ó©áðà³á±à¾²¡×‹œ«Æ +ÕƒÚ҉†ÜÎØ˜££ŒÆŽÒßÏ÷·Ÿ´µÑÜÌÀƒµµÔÖÒÖàÆñ±……äæã’•Åúº©©¤¤”Ä⢰‰‰œ»ÆƒÛ¼ÿ¾¿ûÛ +·¶ñ“ï§ ¿ ¾üƒ…ѶÅÍÙ™åý¨‡¢¾œ‹Š®ÑĨ˜ÉÑÒ¢¤ÆÉƒ’•¥·ªÄ›üÅÑÊ¢ÔÆç©‰Ò•‚Âõ¶¨Ñº£ô„Å™Œ²’å´ +®ªê»Š¨Ê¨õꨚ¨º¨ÈÖµ›¢¢Ýæ‹âˆâŠÅÜÑ¿–¢Âõÿƒ½Þ§¶öÑÍ¿üЧþ€Ë«¬­ýãÞÂ寱€ÿÍņɂÞÕ„ÎÆ‡Úƒ +´òš…’¹‚Ѥ¹££ŒŽÓ§¯¡»ÎîÚº¼é™š†øªë¨« ¸Œ¹‚âòóÉÊ¥†½‹ÔôÒÒÉØÊ¡±‰„ÄŽ”¥ðà˜ïŸàçÞ¶íä§Û +¿¿•‚Þøð¶ Â¶ˆ»£³ìð Â±ˆ€‰‘’£¤Åȃ‰š¡½ÂÖ«„܈ù‘Š£Í”Å¨ˆÐ“¡Ø¡Â󄶈‘º£Âߥ‰Ð°œá´‚¼‚ +⢂²¢êšªˆºˆúˆ¦ˆÅ–ˆó‘œ‘‘úÙŒˆ€øùÕַØÛèàýìüìÚíßüþ€ð”õЈëáÖ×Ù‰ôÅ쫬­°¸§Ì’ȩͯ +ˆàñàšÇïÁÜç”ÅŸéÙ”œš”Óȧ˜Õ€°¬Ç²ªÔËéÝ’ºûèë¦ç¹“†Öꚩߨ§¬†âŠòâËÉ­¢«ŸôšÜј—’ÆÒ†ª‰É¤¤ñ¬ +‘ƒ§ÙûÔÌŽôض——öüœ«…Ýñ᛼٢°ÛÃ쌳æ·Ì°ÇÜڎ‹¦ê¤°É¼áÒä‡ÉŒÁ“›¦¿ÌјáÒ°•áêÂԇ鎋ýíç +ƒ˜î°ýá¤á¿†ÃŒ†‘‡Ñƒ„™Š±Â“”â¶„¾„±¤—²ÿó¡ì¡–ü¬†ð„ð†ïð…ð‡ˆÄ¶ëœØùðˆÈ¹ó‡±‡ˆà¦¥üáüëø +ß×ð¬²èãÁÞ«²ªó‹¢Ã¾í´‹‚Ϭ™£‘é½Ó³¨‚æ„´ãôʨ©•¤²úÆéž¡¦ÓÂëŸÍ݉Ô÷ÐÓÊų“¥õ”Õ“ßÁªî©è†Ëϧ +¶µ‡äÌ’ÒÈ×¼ÅéäŽÞæ­Àùöžæç‘ï¶îçÇû¾•‚®øðñÁ­×ƒìˆ²§³Èþ ÇƒœŽðò¾¨šÚ“ƒ…ÜŠ’–¤³ÈÆÎü ÅÁÑ +ˆßÔ‘¤ºÈý˦ ­Áº‚Œô……ÜÓ’”኷éÙ‰€ ÓÁÔÁÑýÑŸ²—ĘĪœÄšÄžÄ™â”ÉÐ÷Ð䃗–ƒ¬„ñ‡‰¿¬‰•ù¦› +ËÁ甬Á Š”ÿÓܧˡñ½¨»€ËÓ§ƒ²ÚÖæ—ư§óöÑùœ±±£²²µÇ„Ö÷¨“¤ª†§ÊÌЧ£ËÊÇ­ƒÂÖßߌÅõ‡èµ©í +Ï¢¨ŽüêòžáÙÂÚ¡·òîÈÎáòýÎßËåôÍŽÞãÿ–¥öœãǩގ½Âöý«…÷ñá‡ß” ­Ø’à­€»ƒ®â Ì‘€§‚±œð¹Àµ€ +…·‚¤…Äÿï–΀¼€…ÊÀ‚¼‰Ð½€®ÍÚ‚ÂñÕÞ• ·ÀÀ€í¡€Ò€Ð¿ª‡˜Œ Š ŽÅ  ‹àˆˆÒ⤥ ê±Ž€€‹–ƒø‚ +ˆøƒâÙÙ•ú¦÷¿îÿÑçÑÁ±«Ñ‘®òÿ†ñ¬³¸ÆÂ¹ª¨©Ø–±¬Ðáòãð¡óˆÿâ¿ÚŠÊĤññ²­éÚ©˜˜¤÷œÙ®±º¤´ŒÑ +°´ÀݯÕÏøñÒÎÉ‹…ä›Õ‰ÎÐûÏÈ’«á֡מò½ù«ÎßçÔÝ‹ŽÜäßÕößçâ­³ì¹ùç·×ÿëåìˆåßÈÁ«þ¶ûÆùÏϧþŽû +ž¹é真Ëþÿ®ù¹é箟½ûþ¾òóÐÏ롟’¿è·«ÝòÓç§ÑÏ‹ùŸö¿Ïüôøû…úùÐψŸÄ±¿ãþ”þ”âþÔþ¡Æ™õ«£÷ãôãö³ +ûïÇž»–ý¸¸ÖÄúÚ³‚÷Á…埫¾‚Ï»ã䨍¶áçÃóßÒÄø·ñ¦ìˆ«öç¸êƒØ×™ßÁì³Åè‘…ÿÙ…Œ´ŽÔó¨­¨”Ìš·¦ãÄ +‡Ã šþ¥½Š§žÓ¾ÆËˆ¯ƒÔõÓÕÃéù³ÊÚÅ÷çÃÆ¾ªåþ•®÷˹ùØÌé÷¸ôóٜ̳àð¾¹Áûêרþ‘×ÎÆÃÁÛüøÆŠ +žÞöñ¦Ý¾Ž¾ö‰ùʧü›œõñÑÇÕŸ¼·üÜñ‘á“ãíîý¼òñÍØÇ¹ÊŸµø¾šý¢û¨Í¦Ç§îŸý¾¬¤¾¡„žõ‰Î±è„©ŸÓ +à¾æüèýÌùº°ø°Å®ßå׿—±¯ãÜÆ×µÌ¢—×øõ›¾¯ˆ¿Ö–àŨœÞ–™¡ÛèóÄ©ÈØÇ‹Œ·«Œ³¤öŸ±ùؽä—ņþƒ—¹Ú— +¬³Î¦íÂŽ·àáÆîäÔÏ𔬒Î÷Ï·Ñ© ÍÎÓÑ®š‡©•ÐÙÇäù·»ùÔÆ“çä·Ñ«”æ³Ü¨ãê±Ø—‹¸û€“Ùìüöï³ë +غïÞáå‹ñòÐÐ’Ÿ¾‘‚ÝŸûù—÷¼þüèå—Ͻ›œñòÁË•¯¯×½ÜöòÏË£–—‡Þм”ôû©óÒ饯¦Ëƒ—毭Þòº¼ôûéóŠ +‚怡¯Ò¯²ò¯ãÞ¦½¨–©„¶Î³¤äÁõú¥ŒË˜—°ü®áóàðàôøˆŸóÑÇÍÕ²‡ÿ’¥‘”ŠÅ¢ç¥¶„½¢„ã±–ÈÖìâÜ•ÌÛ +šºÖµÌ«˜×íЯ‹“êܨÖݨœÌÚ˜·ìŠõ°Ô Äòð’­ý³¢ƒ¤–ãŠÖ‰šå´ŠÈ©™¦ÒÂÙæŸÅÝ”ôð êÕÌã¸×Ïí²š®×𥔋 +žÅœÉçóÜŽòåñáºï¤ò‰›”þþå¼”¶´Ç‡ï¤àŲ¯ùøÛÇОŽú¸î¡Á©Ã—ž’¼¤ø®Èõî¡Ó£¥¦¿äû¨òзê¡Âõ‡ú +øÍžÑŒ×Ëͯ›þ·ùƒîÆÜŒ¹‘ó»…¼÷ÊÍ´±›™·Ú·Ðé™ÅöŽã¢Ð˔ؗŸ—ŒÝ¸¤—ÄÙ¬–òúô—ÅòúÕÍšé›õ·áőŠ+¡ØüÞ´“ÕË´û„Û†Ö°ßêÆ€Ø×ô±¿»ËËŒ‡éÅ…¦–„¢ØîãÏ̈‰Áƒý”ºúµô©Å«òÛˤÍãÔË£¨–Ò±Ä逶Žä÷‘ÛÁ +’拘̒ÚÏðʵÉÏø¢”Í„¢Žçñ°‡°²ù»×îÁñâò¼”´Å‡ï¤à…űÅîóç¢û—ÙÓ¿ÈÑ—§Ýœ´÷ñÙŲ‹Ûê®ÒÜÜ÷‘ã +Ú¢ÏÅ¡‹’—æè†¯òÑç¢ÃÑÅÓ—í®Ñ—˜×í’½É’Š—Ã®¤®ä®˜¦Ü̺„Ô×½ ÔбíûìîÃÂóÍŠ²“«ÃÔîíö霎–¢÷³ +©¼ Ò¡—Èˤ†–ØØ â¨”™ì°¿©•Ĕ氦õŒ¶ëÌ­²»‚æÒÙÜãÊ·ø›Ð‰§²»ÒùѸ©¢±Ò§§û‘–ÎíÓ¼Õ·Ò¨ îœª± +ñÊǨ™¤°Ÿ™¼ž±Œäþ»äé­Üê¤¹Ž•ËÕœ¯çô‰üNjٟÇÞ¯ÍØùŸ­÷ùá°æ¼”´Ä‡ïפà‡Î¶¸ùÇ­“ÝξñЛ釧œóò +ãÉÉÕ§·œÜ–ñ’á”ÃèžÜºù䤨əÁ“ʧµÎšœí¢·¸Õɇ“ä®§½Î†œ¢ìÏéÄÁØìª´ô°áàÊªàæ°èâþ£”Ýø‘†› +Ï™ç±Ì‹‰…éãù•ÙãÇë†Õ€Õ‡ëŽíÖ„íìØÙÔü® ø®äÙÇĸ¡¤üÜÕÙ€šÕÔ«¨Ã–™Úâ¢ö×Û¹Äێؘ´ì²à¦×Àל +Ûèãì¡ùš±†©ê¦¨”Ó”¶Êñ°¤¼Ý죻›ŒÎîÅ´ñã©×›¸¦Ô˹ÊÎ–ó¥ø±Ÿ¼â÷ÃŽþ›Í–Œþø¸§žŠêâß–Óðÿ¬²ÝÌ +¿ý×ÎÇöŽÙùÜΙ»—Íìܱ‹áä·¿í¤Ûɲ“ëš§ßΑһúÏìÔÛ¨³Ñ¶ä£ÅÆ»çø¶úìôÙØª˜¶¡µ¡‹í»Ï󍿅©Ô +…Í‹ÏÑã•ÞÓüœÅ„µÆ³›ÈñØÍØ­¬ìØñϳ´Ï«†ß¦êºÁù£‘ÚŽÛÅ‚µÉúÜÆ„±ªÂß칰ЙꂻÂßÕù…É×ÕÄŒ‡Ù¢Ò +ò…†Èæé³Ðãâ™öü­ÚšÔÔ©¨×žäÉ„¥²Š‹¤ä‘»ÀÖº¯éÝÜîàúì«×š¹ÐÏ™Œš¾¯àЙŸÂ•óîï¼àóå¬ïÝÿ¯× +‰°¦¾ü©ŠÞÚçõ«ïÛùíÀª†±ž³’´à¥ÑÊ’•䮫·¬¤Ù¹ïš¥ÇÊž•«·­”Û©´Ò¦ë¥ÁªÚåÛ¹­ôØé²ÒëÇ¡ßÂàì˶ + °êÁæáܬõú‡”æ¦Í¨ˆÍèÌÌšÅÒ¤ÁïÀ芮ÙÛóÑË¢…¦…¯…•‹«–åÖ¬¬Ûˆ™Ù†°±ùïâºôÛ›ÌîˆÛ½‹ÎôšÊÕ¦× +È˜ßÆ¶¤Ú£ ÆÜŒºÅ¿æáï¼Ý溌´ñêÅÏÿƒ†ÚŒéª•”«ø¼¾®¦ïä³ëÈýÒú¹Õ€Åò»É­¤¶‘ÐϱꎾëáƒÒÞ®âõ +üüÞʉ“‚ª§øð§¨øÁ¬õ†ñï°³Ç̘þ³ÇÌœ²óãÎÌ¥³×ÍÜ´°óÇ̆™ì”³Ì”˜©¶ìÓê¢Âĵ‰Àº“ͦÚÌ´»›è´‰Îá¾ +ø“ƒÆ†ŒŒÄ€¼Ä£òƒ“†¸‘¶©õ¨ô–έ™Ã«“‰¢ÎÜæ½ó† œÆÜÆÑŠÜÞ²‰Ê¼ß¤Ê©œÁ£ëÆÂ†´Ñ—”¾Ó×öÆÐ‡Ñ… +¨Ð†Åø·á—Žžð¨—‘ÃÙ‹Œ¬Ðç»ËÖÚÍ´˜¶èš£î–Ꙟª¦ÅÄâ…˜…òžŒ’½ÌïÆ ˜÷£‡ÿ«Ï¸Ôι§åœêäÈû« +­ØÓÎŽ’¶–ÉòÂÞœ”ÔÆÝ‡ï¤àë³ü³ÊÈö£»ŒüŒì³‰Ï˜¸Îãà‚¯¤È˜Èµî£‰âòŒä™¨´ìÐâ ÜÀ•¾Úƒ˜ÜѬ— +Œ×܇žçúúßôôë‘̉ߠк§Â¥¹ÎŸ´ÓˆŽŽÙÔ¢ÚÔÚæ´Ìê½Ðë…ÀÔª“¥åǧÞÔã½Âú¼úüúÑïªèÅɳôܖƺ©•µ‡æ +¶À½‰êƒ©°‹“ë̬¡ßå¼ì…é²ð†¥ŠžúÝô¸ù楧ãžÖ‹Í¦ƒñáêõÔé©ì×Ó¢¢ð’¼€‰òääÊÉŸ€¦ÕÂÊŸßöÒó¡ÓÌ®½Ñ +áÌçüÜË®þʶ—ñ«Çñ—¬ÿ׋ø¤¾áü™Šþ¶ÇëªóüþŽæ¸¦¸Ç±¹’æÈ÷œãòœ×渆¹Çݹ²ôäëø £À§¦Þç•ê¨ÐÑ­ +ù£ÎÇ£Ž§³“´ÍŠƒØµ«žú¹ûµÂ·ŸÕÖ¢Õ°¦Á®ØáüÆ´ÖÌ©ÀÅÒùúÚèÜùçæÄÉÑ¢ÅÒ¶‹ã–—ÎèÓ½–ô¬ëØÑ­±ºËÚ¬ëÚ +©Âš¢ÏÕí̆£’àÓ‘”›‡Œ‡‡™‹ íõ³¼‚ä™þ²¥á™÷¹„óÐæã©•Æ³¬õƪõÔÌÒ‹ª¡øš‚¥ì”䓱ÆÝà‘îŽñí€Ë +ù½¤ö‘ÐÁ±ÈÖŽ¶ñÁ½¿‡¯áõŠþÖš¸¿…åñáÏÐð‚–­Úöè»Ù­åŸ–ÃÚøÎ깫墖´«Ú®ë¹­¥ŒÝ˦–œ­ùÐšŠµ¼ÖЮ +É¡ÒÃÆŒ²¶éš¡å†¶™¨ºã¡ÑŒ½ê‹úÕÈԌϣéæÔ…ÌŸƒ’‰©¦§ÑÍý¡Ñ¡›Æ Æ‹¬ÆºƒÝ£Ô£‹š¼š¼š üš¡ÿ‰Ì +ˆÔ“Ò³±ÍÄÊÅôù““›ã¢íÌ–þÞ…“¹Æð€‰ß„×ç½±ÑÃçè¢í‹´¸„£ÌÐï¡ÆÄå쿎㱖™¯ò¦É™’à·ÓåÜžåú° +¼×†¹ØÏÙž¤Î¾ãð»ûÚ¯ØÝÈŽº¶ÖÏñ“ø©¨‰ÜÿŠ‚¯Ïò½Ë™Þ˜áݙ澜áÓµÇÕò¤¨ÉÔ‹ÉŹÉê«¦ŒÃͶš‡êŠ +ÕԔŶ×éžÐÌÓµ­ÌÝƒÓŠæØ˜¤’Á¦Ð§’ÊÇú§Ì±´ÉßȤÈâ˦Òψ泥‚õ«ó–½ÒÈÏ謪ìÓ¸¦…æ²Î­–мå +äéÖ¦ÙÕ±¦ÈâݩԀ›“àì¾ïµûÞóÇ·É膣¡†ë‚¢©¼ÿ•Þ—éÜ¢ÝšÍ‹ËøÊö¾ê穲ðÄÈ¿©ž¢ØÝ«‘Ÿ½ÛÅÆ¤÷ +§¸©£ÙÊÒÒ°‰’’ú¸Þ÷ͧüØÆ»ìÏù£ßÖÆ‹¹þ߯Þñüûøó”¼¨â×ܪöªØ«â¿ÑŠ£ªÎ©¸«§ä¢’«Ê®«´ÉÕŠÁ®™Ê +’ò”¼Ôò¨æ›Ü¦¨›¢âÊßÌÕª›¤ñ’‘æÉÚ•´«øÓ¦ ûÂŒ¹èŒŸ—ÞÃòƘäÈ墨¸®Œ“µöéñ´“©è”Âþãž’Ì긻’…¥‹ +èʼʼʡÆóωÁÒÐÁŽè‚ð¸Ð†Ä±Ÿ·Ü¢Š–«ä¡°’ýÁŸ‘¨íö‹á¡ÁíÞÚ½´¯Òµ¸ÀÃøÍ•üÖ±å®ØÈ£œ¹žÎ’£¡ó +äÚüÔ…×Ç­¹²ÆÅ‘ÎŽôñꀣ½ìï âÛùõŒ³¯ÖÿÅ””óÆ‡¿ÃÁ×çüùå’í“욃ä£ÉŽÍòü„Ò̱ÏÔðÙ¡Áµ…·•ÜÑ +ˆðÏÁ–ÂŒ•·ÍŸ ð‚Ç“ï”Ç‚žñªÇ¤Å€Ú¸®ÆŒŸµÊŤ•ΙÝÝãôŽÑ¿Ê“€”Á©Ã£ÈÊÇË™œ“í°ÿ³òæÇ…‚•δÅÍ¡ +‹Ä¹®…„¯è©ØÖ°²Áêܸëã¬Ë‰ÉùؘãóßÚŽ‚™ÜäàÃÌÄèÝ—ƒÂº×´éß¡õ™æ¥²šÝ¢ô¯Ž…ÍöÊçùì¡õФ†îæêÄ +’ŒÚû³ÜÑñâóŠë“Ü–“”¸Ê°LJ¹ÓÔÏǽìúÆÑööÞé‰ÿýý¿Þº‚øð­ê”¼´ÎëãüÞãìŸçÉȸ§Ç¹«ç«‚œ¯åâ¨÷ +³ªœ´¹÷åüޥ㌂ؠ²££¤–÷Ñø¹¦¦ÕÒ̸ʳ”֩팣ôŽÐµ¬†ªÏôÑ¿ˆÄ‹ÂÈ ²á¦Æ˜ÐÊÑ¢ãêΆцÙμ +šœ»œ§œÅ¹€ž¹Þ¹¾™þµ™è鋎²®è¥¼¢„²ÑççÍ÷ôÇŹ´Ö烮ÁÚöƒ´úéö‰ñ¸ÝõËÔ¸©ôêÑþÿÛ»ï§ÒªÏõÿ»ç +Á÷½ç¦æ¦ÙŒ‰“ØšÄö¤†Æ‚ÑÁ »´Ð…¤Ã¢É›“Þûï½­ú¢Ó°Ò„‘ŽÍÒû»¶ëÇ‹ñääÎÞ±¦þæÎä™ïçïÿ›÷¾×Ì÷­ +Ý÷ýî뙡åŸõŸÉ—ò¥¦µÊ½‘†ˆ¤œÀѧìò»Øñü½¼îÌž»¸Õʵæô™•üÛÇñê¾·®øµ–Ĩ׋ÿ·…ªÛéô¡ÝŹ®®÷ +úñ£‹Ó׿‘òÎìºñêÄ­’“ïÎù‰…õ‘È·ÝćàÞããÚÉê§µô¶²Ú䳲ſըۥ­”…µÐÑÌÕ“µ»ÔµÒ ¤ÉÉÛ“Ýͼè +Í‘´òÓ¶éÿºœêः±ÎÈÞö²Ù©Á…ÙÎÉ­­öʌ﵃õö‰½¶îµ²ÓÂÞˆ³‡ÍҴéÔгÏծʕۂ‹ªÙ—ö³Œü•ÙÆÍ +´úÅú¼©³¤°Í“·Éôë¿Å–ãòÕ´ŒÝß Þý¸½Åéé‘ö½ØÝÇûôõÒÛ¹ÜÂõ¹¦´›Ð¨ýÖÕú«ô‹Ô¯ïÔ±àãöŽ·ï£ÓÎ…öôÛ +¬°êì붾œÚäÅåѪßñþ­Üí¥µ¬ÅþâÆ´‰ßÂҳЯ³ÓšÈꢷÑÎŽÆŠ””¨©ë¯ ¢žªºªë¿©«¥±žÖ†öº”Ü路™ +ÿÇÍô·ð¬•©á¶ÆÛ¤œ±£ÑÎÔ»³í’Œ”ùÕÆÒ›«›­Ò®¼Þ¬‰»ïíÆéÛÛï«ààˆÄ¢Ý›¨Õ‡ÔìѶÃñɖś䯓™»ª¨ÇŒÅÒ +ì—Èš“Ý­˜š©®‡ó÷²Œÿ‘ü†ðø ¦Ÿ™ŽÏ°þ±„ÙÆÝè÷ªò¡æŽ·…òñý»ØðÏ÷½ú–üû—ÐÂɖδó©™ë͘·ã +³ÑŒí“·›ð–í³‰ß¦‚°š‰î¤¬‘Ș¥±Ê╤µÃÚÀú½Ùõì‚̯½â ÁÕÐÚÍù••û•ÔÔ¡¬¡¹«–öºº›èÑÓò¨ÑºÐ‡š +Ęêæù³ãÍå’ÒšìẅíÙææ›¥Æº©Ô¤ýóëìò¨Ùêà§Ž½æÚᯜžáˆô¨¿¤ôŸâݬ£ÞÝ–œ©æ÷­É©Òê’žåã牙¥ò +Ëš°É‚ß’ð’‚ßѼ‡ñ«äö€¶Ï±ø«Œñî¿àÒð—纸ÙÊç’Í¿Öÿ•èá§ê•š–ü¤Ä²ËÉ©¥ç•ÜÔÑò³Ó†¬šš°ë‘›î +ÝõøÕ£¨§°ëŽàºÙ€•‚òüɵ‰Â¡Í¯¾Â±‚Ö’×ÁÁ¹Å‡å””ÑÞ¦äÛ¨úÊšªè«Ç¦³–‡õ¼¬Õãɽ„õ‡•ÐŒ«™ÕòÂÉ +àÄ£ÓÊæ”’¹›ÚвØÀòº½«õ¬×±Ù­ËöµÀïöªª¹ø‰ÊÅѼ…ûäí³­‡øÌôõÒ×ɘڦþ‘˜…¢åçä“·øŠÀô‰”ãøáö +Úœ§¡ìžáÕ£éÓî¾âÊÖ¯çï󪓭€ö¾êù·‹ÂáÔ«õ¬ÐÝðýÓº¾¬ãôëÊï´ÚùÒ³ªçŬ†Ÿë°¯ëÁ¹†·ê¼«Ðå‚Áà•ÀØ +­Ã«‰¬¤¦ÂœŽƒ“Êåì¼×½ŒÌÒ²ËÈ´­¦¿ÈºØÊû‹©ª¡®ŒÆ°òÚª„”ÓÝ®¥ñ‹Çµ’ƺš¨å¨Žçõù’Ûž¯“Üð´ô³õÌ×Ê +…†ê©Æâ¤ëÜÕ‚¼Ùªà§ƒœÝ²éé½¼ÂÂÓ‰£°÷Ÿáìݲ÷Èß’ÆŽƒ¤µ¹äšÙ’ó¦ð…¹å툜Á±‰÷¦ËÙóòžÅþ償‡°›À¨ +ÆÏ¾¿õŸòº½‡¯»ù´óÑôש–¤Þ©¾ïÁߪШÂ绊³Õܪĕ ’ãÊÌ«äÖŸÅ¡‚—òÜ›Ëñ®Ç¯ÌÎÀ¼Âʉ¯¥²›„˜ââŠÉ¬ +΢¹´‚²ò³ÉÊ£§—‚¼¦Êò©¸‚¥µó”Ðܪ‘‹®¸òžÔð°’§¢Õô×±ØÍðÞµ£Õ¼¨æ¢óš©ê檙«®â¡ŠÅÊ–«¸Ø­ç½ŒÍÒ +å¶Ëة毩ƒüŽ€äÖ±ÇڮɋۂҎۧ曕ȕ—ˆù’Åà¼þ³øÏ™ã¾©›¿Žã³²ÿ後ñ î†¯ÿˆ¾åìêã´ûÑøÀß +¯ºÞÙ‚€õÊÈÍ‹Ô÷¼Ö†œÖ™ß”ñý©•—˹ъɩܖ¥Ø”àØŒÌ˱îÅø—ɖ̈À‚‹ˆØ« ¢Ÿè¼âäòÉÈ¡©‡Ôâ¬Ò³…Ôš— +ÈÍñŽåùÔçàÓßÈÓ‘­Å‡ÂºßÊï™çËè«ç œÅ¡Šž×°ÖÁòø…°¤¦Ë™¤­ç¾Ì¢…ËÁ¥ÂûÚ«–øùÙæ¡Ûùìæï±ŸÃᑦô +Õˆ—»ÿ„ÏÞÌ¡î‹è¢ÖäˆÛ•Á‡‹µø­à½‡ûŒ˜®Ó²’ÈæœÑ‹ÑÌÆ¸±Ä™åçüßÇ·ÏÝÐúıž÷ÓÔߥ—½Òߢ‚Õí¿©âÄ + ‘ºÅܨäêà¡·‹°­öضù¸æã’™‡ûžÞ¹¨ò²ˆÌ¡¸›°¬Ì¢²‰Ê¤¶ƒøô’ÓÉΡ†£•Üôг©ú»â¶Öå¢Ìï§¥€öÂºŠ +Åè©âѱϊ鯑 üð‰Õ£¥¼¨‘Èÿ˜Ô‰³ÅÌ•‹á鱈åÂÖ˜‹„¾·‘«¡‹“¬ö²¹È«çðˆÖËâÏñûÒó§´÷‚ͶˆÞ£ð +Ú…Å’Þ¯ðŸ‰Çå–Çéì§Í±ü‰é‹îŽ´òõ˜‹ƒèŒæð¢Ïž¿³µþª­üÔ«ßþåêΟåñºÕ®Œ¤ÔÍÅ俇Ü̳±ÓÌ–£¾Ç¬™ +Îäž÷†ŠÜô‚Ò¸›ª½Šé÷҈̢ºã‘¸„’“¤‹À¼»Å•¥éˆÔäГÅöð͹’ÿìÌãÌþ¾½ù¼® á¯ÀÀ…Ã…Âñ혫伉 +š‚¦‹˜Íç¾ÑŸ×ù’òÜɧ‘œÛú–›™Êì§Ëàä¿…™ƒ£äµ´ÇÜŸ¹Ç½é×ÿ»»ÉÀºŠ¦Õ¼—ñßÄåòǹ¹Žµœû’ñô†ãè +Ï¡ûœÓÃüõ·ŒÏúÿ‹þªÍ¡¼Õ«ßëûêæš™œÌäÕ»Œô²ÐÏÇä°Ó´¬Ó°ÒÍű…—”ÜË’ñÊ·‘ÿ„™˜‘’§­²‘±ÄÅ‘Ÿ +¨Ãꜙ‰ä¥¢ÑœÌùªÕ騒ùì̤¥‹½Ž¬º³éÉ‘—ª×“Üúó™™Ì帗ÑÜÞÓäò²×¨ÚÓ’¹’³ßÈâ±ã‹å̉ü®¥‡±‘ÊÖ²»É +µì¥°ŸÇᑇ¸ˆÃéÁŽ×Ù•ÉžþÛÒ–‹èµ¦íЮÌ˲ƒËöžËÔÙ̧±œÄÿè¥ú¯øî”“¨£èŒýÆýÕÖª¹©×ïàûêþߤ Â +Ý™äô’ÑÏÂİ‘ÓĬ“°Ó‰Ç¡žç¸ÜÎâñŒÁ§š¿è¨‚£¹ûМð¢Â‰‹ ¹“ŠŒ˜òã¨Ì ´‘ʤêÓŒ„éÚœÆÛºßéÜÏ ·“ +‡Ç™ôåŠáêö¨‹‘¬á¼Œô粑©´‹™ôô‰ü¯¤±˜©ÊòЫɬ§‡²™Àöœ»±¹ìÅñðÓø‚¹îž¸‡ßŽ’¾Û²èÈíÙçÕœ–±ÙÄ +ÄòÓùŒçÑ©ŸÆï‚³ãèÿñÅóß®¿¸Ê¢—õê­éø¨žÍø´ã¤¸“‡Þ¬ú±’˜ÆàšÅ”—Ö‘ØÇàô™×ð¼ÂðŽÅÖ‘‚ÿ݉̈́ +€‡““Êâ¸é°‘äÇÉÀ±¤®Öò¾Õ‰Ô§ƒÒ˜Ä벩ÄÂøìÉ•ÐÍ“´úÓ˜Ì㦸çé‚ÜùÓ™ÊäŠÓ©Ìô¦³Ÿ¤áÿ¥š„É¿¯ÅÊ„ +Ìô«ŠíˆöíÙåð與ÿþ‡Ò‘k…ÇŽ®Û¸íàŸ¿†õŠŒ´ÒÝÄðý¹ôØæ¸³…ö„š™ãü´ú¾¬ð®Ò¯Þ͂գ•ŽÅ¡™‰ö„ +Üç¢Ð»‡þ¸Îôœ™„âžÂßÁØÝåö÷ô†»…à釓‚€…¡Äð…‘Ÿ¬¡ÆÌ²ðò¢¨Š¤¬Ëšª˜Á¨ãÏ„ÆÑž ðšÖ‡‰ô¦ò¸‰ +¹¾¤†’„ùµ³’Äè¢ã‰Ìô¤°• ü‘¹¸–âٌṫšÕÈ֣،…—¸èΰûÁÀœ„È®‹Ÿð²¼ÀíϺóïüïã·Éë˜õ¯â²¢‚ú +߯Лç̬ڱÓèÎòìåûÝÑߥ½úõΖüۅдúÃÐŽ–鹺ÈÁÜ䯀Æ÷þ˜ùá¥ÀÖø—‡ïœ¼¸ãÇ»þÞ„û¢áÇÜ€ÉÁ +ää„““¢„ýñ’𪢨‰¤æ¾Š¦èڣ雈¡»–žØžÛÅò¤Žþ¸žáűœ«Ô˱€ØÁ ÍƳùÍì”󑼊Ԝûʘ¤ÒÆ·‚ٌ⻀ +„Ý¿öý¸¸š·èÄÜöñÓØÃö‡«­Ì˜¶°ÞçÆª×Û—ÑÝä»…´ÿçМáØÔûÙÒߥŽúõ Û¬Ð½ÈÞ‹²þœÔðÚ—‹œ¾ÜöÆÀ‹£ +ìÏÌݱðÃúäŽöθºá棌¯«Áž„ûÇÉ„›Ä…éþ„ä…’ŸÄñ°Éå¡Ô…Ò—†Ö²œ–û´Çж•ÁƒÈŸ¾›Ž¤¯’ÈÁ㊎IJšÁ‹ +¤ˆ¦î±•ÎÌ´˜ó¡¬„°˜ùÌò«¬û›³¡àˇ¯µö¼Ø÷åð衬™ö‡Øï㑱«ó¯¶±‡Øàòš—ָǽÄÉ×ü±¯îÚÈûÒߥŒ +Å•úõ›­øóȸ¾òÃÇוïïðÉÅÂð·ïã쀙ØÖ¶ØÙðÇÖžïÛ„¸êºÊ”»ñž¤ø›“髼Âÿ´Êƒ©Œ¢æ®ŠÁÂÆê‘ +€ÐÜ÷¨½á¼ÒŠãɘýá‚ ôŽ•œÞØ‚ˆã¡Ì†³ýë—Ù ™Åðʲß褫¾¬úï³îɦ»Û®ÿ’”Þ»ÍÁÑœð¿É˙ৼÇ͉®Ü +ÇÚäûõôÖùÜê™Å÷«þ¼›ÍÌÕ«÷âÏꉟ¹òÂåïì¸ë‹®ìµ×¬¸î‘¶™¦¦Ø›ãäÓ…§þö„ßî¦Â™Ø»ÂØšÈ÷ Û‹üï +¡Šý©×ÐíÇÕ¿´„ÒàžÈׂ脒Œë߃ ÁŒ†±’Èè• €×ßú‹˜ìÆ¡€¤…ïÊ–½ØöÒÉ¥ÚµìÝæƒÇžÝ›ÉÍŸ +þž¸Äèë­ûÜÙ•™Èçå·¤ÄòâÏèÖþýÕ‚˜­¨×ïË‚Õ꿱Ęퟌ¸íÂùÛܲâÄÿºÆ·°º£…£©î–øÚè‘äø½ÑŽ +¬¤¸‘ꦫ ùî”ùÐæÉ­¥—µÞ´øˆÏ‹¿Õ—Ž…Ý Šú”¼ÒðĦÁ¿‚犆üîùî˘ãÞ¸Ìø±åÉŒ‡ùó²èÂý²“«Ž¬Û³ +Æéö•»–ì™òðÓ ×®˜ðþÓ»èîɧë¿ã“þªµŒÕ«½÷èê¹Çîý áÀ—úœºïÌ™‹èÞàÆ¦å̯á÷“»³·ð¶¥ÀœÐ +Ü«¢­‰³¥Ù‘žŒÇòœ¨ðç¦Ä…Š×ªÝ¨ó§Ñ–Ú½èò”´ù›¯§ ½Ÿú²çàÁ ‡£îŒÙº‹©ò¥«“ð®Ì»³ëļö£¯ìÙ²•© +°ñëÖ옳å£Êö­öï²ÿ·Ã£ñÇœ¹óäÔ¾ßÏñ­ßÏÿ•¼”†êÕûµàÛá§—ô§çÑÏú–“ßð·ºëç°ÕÅæ²¿Î×𼟑 +¥Á¦Ü³£ÆÂØø×éÖ‚ÿ˳£È²Çª´ïÓ뤠֦èçÚÝèð¡Ûñ…ž—žºðÄœÅÈÍÏœ™ò“湓㷙÷Æä©»çµÍÙ³àÅ¢… +ÝËæ¬š°îÄæá˜ìÜæÆÏ—ƒó‚”ฤèðéþûÎÿùþ¢Ž×Ô›«÷îÁÛÆüÍñ¹§óÅ›‚ÛßâõŽÇÝ­Ü®á«ÏÐõ­ÂŒ‰ºÅ¼‰ +ä©¿áή¥ùШˬ©°¡£Ú–ú»šíèϱ§Ýž®ûîËÛÓëÏãûžÙÚ³àÇ Ãß¶ŒÚðÂÚØ×“–Ì›³ûúƒó¦¼ºÅ’Ô¡«×ÙÓçã +Ö’›ºìŸã÷ÆÛöµ¹¸ŽŸó‡ˆÿƽ›õê÷²àí£Åô´¸ùÜæËÛéðç¬ÞçËñ¿ÈÈ•¢®¼‘û¤›¤›©‘í̾©Å¿¨ÐæÆ•¹µ– +¤´ØÒäÉ«•ÖôÛÑã¥ÛÔþ§–ôÙò£Ì‚¡óÆÌ˜ãûñÓ¦Œ™¤²âæ¦ó×Ù׸Æâ•–¯²îúžµ³ìè°×¥ÍÎñö´þ¾¸ñ߬ýœú +Ûõ»Ú𶑦õŸãóœ¾ÆÝ㔊ï¸ûŽ¡ð‹ÄߤᲭ©×ɼÆîõ¡™Ô×âÈ…‘÷Õ·¨·¦Ñ˜Ô–“ÚÍè´áž‰½¦¼²æ©±ý·˜´â +çØç·™»Î¡ËëÌÞåú²½³—™¿À«ó̬ýÇʩֿòæýŸìþ¿ïüŸ­úÛõêÆ°àí£œþÃŽ«¦¾§ˆÔÚ¦ô”‘§…¿¥šüžôݲ¯ +­’ÿ‰â«”݉¥Êßæ†´˜‰ÐäÀ«†¼ô›ðÀ€‡†ô²Ç¡ÏŸ«¨ŒÝáä’£—îù¡ËÄùÁÚËΜæî”‹Úò¬žàÉ“•¿üÿ˜ñ߬÷¤ +¶úõ‡Ù𶑪ŠÖäÞ‰âý¾¦ñŸ¤êæùšÜ³”ž£ÉôûªÎÓýàúÝšõéÑ£òÝνîëÒ‡«Ë£‹¼½Ï³ÿ÷¼»Ç𙳞ŸæÌ‡ñÿ +â²ñµÓ§˜ÕÉüŸéñ¢þË›•ê©×ÿ°Ò…¿èǼ†ÉÓš¤Ÿ§û«òÄÏÒ¬­Ãœ«”ÎѫÃŽÍÒº´þˇŽÝœº¼Ðáᩞ„ÿß¶ƒ§™ +ßüŠ‘ãŒêòšÂƒ¿ƒì¿ÛïݧêÕ‡´àÌÿûñ¦Êµ¨³ø‚êÍêµè‹Ô¢Å‹¶­º—µ¸¯ÉÏ—¼óÒø¹›çÏ£ïüÛ‹úïõêõÏ຦üÉ +¶…ÿÅ¥ü—úÿõç´àÿÁõŸÿÅï×ß–Æüð믋¾øóõ—…ŸüúË©‚þ©¬ø—…Úæ¼Í +] +::^ [s0; Color selection tool.] +:: [s0; [^topic`:`/`/CtrlLib`/src`/ColumnList`$en`-us^ ColumnList]] +::= [s0;= +@@image:925&401 +€ƒñ€€€ƒÿ€€€€ø·œíá’ä¦îŒ…ûĹÃþÙÍ‘òƒüÈíê™æ˜¹ÂªæœŽäªØ¥˜¤ù„°ÂØ­÷•²ëÖ̓öÃúàîÏÚ¾ÿû +á÷“›¶ìذöáÆ­äöÇ埿±á‹¸ÕÀ–È€„ƒ–È×üó÷ß§ÏáüŒá…§ßÚõØ–øýÇë´˜¢ÂßÒøõÒÙ€ŽÂÇÇ”ÇÓîÿæ»è +Œ¢ÂßÞøÒ–Û€îÿəȜº —eʾ÷¢š‰ô˜ß¯üö辚ÖÙÖ…Óô’„§‹®ìá…½…„Þßÿ¦òÏÈѯŸ¿þ¸É˜…íð¶¾›‰Ó +¯ÂÙàÙúÎ¦í¬‹§¬‹¹³†…ÒïÛÁ´‹¿¤‘ð¦äÚçµÁì“õÖ…ÓãÞÆ‚¯Ââž–ŒÙ³•ž“èÙçÍ“¶Ûᇥ„îëÇãÅ·¸ð²÷ªÊž +‚þ…¥÷Üù»Ü„·åå„Ùì­õåæ§Û¤‰§ý…¾ªßÊÑóþ×á²ë§÷ÛãÁШ‘†ÁÙ¡íàÇÓ‰—„Ë’Ü»·ÆùËÄØ’½üÛá +Óò¥”êÒ³×ÃÄբʋ´ÂŸËà”·öÙÀ«î°÷óá볡‘°«üš…ýô½°ýȃ ÅÁÖøå‹ˆ½õÞ®£±À™™²ˆ©º§ä˜ÎÙÀ®¶˜‰ +º—„Ÿ±€¦ŸŒ™Ûáû¬àžÕÿéá÷ß¿öœ‘ûÏÓ¶÷ïÒü†Ð´”ÃÏ£‡æ‘Ø–®¿Žú«ÜŸÅò¿†ìמÂéÉÜ»èì…îü£Ôß“æ +±¿‘êÆŽ§œýëªÃô½à‰Ø¦‚ò—£šÃὈ‘ÎÕ£‚Ñîÿ¸ˆÃöÀˆï®¥­éʳ…«ÖªôÆöš…¥…òÇ¢ý¬²”ž‚´ØêªÙ‡ÆÂ¦áÓ +ìÜö´žõá×ÂÎìŽðá‚ÛÄ·ûš«ïˆ°‚µò¼Ã•áÊè¡Ü¬°à«Üÿâ¶„ÓäêÂΖ苫¼ÍÛ཰‰»ç¸¬ð„ ‹ü§ì¤„• +æÞÀƒÐ¦ìóÔ€¬€üÌØ¾éó°Àýó…æü°Í—à›Ó‹úÊž¶‚‹¼°¥ßà·¶ù‚Õô¥Åêè–‡°š–øÊ¾Àîóüó…à›ð½”üÝìË— +£èéúÕÿú—£úéµ”ú˜‚˜–øÊ¾ÀîÌï¦Í³îôÒÁ¨Î³ÃÇû¾ì€¬ð”üÝóìΗàïíÓýÔñÖϾ—퀅ž’¯°›£Ýù‚«– ç +Ø‹‹˜ò”ü«ÝØÎ›Ï¢…®ä¥ú¡³¹ééÀ‚ÏÉ—ØËÉ´ùöåÏ—±Ò‚Âö«Ùäàä‹äî™Ò¯à€¬€ü·ÌÝò…Ü€…ˆ°Í®ƒéòá +•ÁäéÌØÈˆ¢«¼€‹äÂÆ„ÂØá…¼ˆå‘ð ”–ä‹äѯ–·üæÞÌèûèšØŽ†áÙõ…Ž‚Æ‹˜ç‹´¥Ãäø˜ö ·±Š…·»¬¯ð„Ø +ÉÀ¼ßàÝ­Ãö¯¯ð„ØÀü¼ß ÷²Þ©æÛ•§šÚ³¡¸¹¢í¸ÂÖü˜Ù»»ã†¬ªàž¯Ð‹’ºŠî›’ÖŽìó»Ú•ÕÌø¬¯‘ÀʘÖÞŠ¬ +Âàž¯ Ç‚½»Ä²Í†ÕöÙùÀÖøÙ¯ÝÝ£ûé‰¬àž¯Áðž–°—¾”Œ€‹œÂ¼ßÀðï͉ۭƒ¼…–…³ûúÂÈÏàóüÍçÍ°ŽŸ¶¶Ù +ȰëŠÙž®³€ïýÁ‚ý÷ºÝȬ°À©ü÷»ü°œ•Ê—¸›È—ˆ†‹¦Éå°Í®Š¬˜¬‰›‰Òá…—àÌØØÈˆ«¼€‡¡ÜŒž„‚ü +úŒò…Â⿾—Àëû×â·‰‹ªõüô›­šÓÀ‚þù‚¥ýòé…ƒ‘ã¿ë¾ÀÍ€…üó˜…„‹°õý°±Ï—øŠ°€çÙ¾Àݿޑ갷íéö — +š°Ï— ½õØ–ðÉ—¨åë´‘¯Ø€žîí¯­¹…Öó´…è¡ ü ‹îàÝù‚´ðÑ‚…šÏõþ®šàž¯Àªè„‘ö¾Ð¼…öÍç‹ÐÂÙ‹ô +½Úîµ€¿ðÓÍÀ‚»ó…è¡©òùÀ®àþ”é±éý‹Âé…öç‹Ôå®õäÔ‘°Œ¨ÔÚç«…Ò¥áì½­ò™ÓáΕÀ‚È—È ß” ¬È—È ß +´ ¬˜¦—Á´‹¹°à²ô¦ì’¤„•Þ –¨À¯Ãíᣡ¬÷ð‚Þ‚ÍóÀËñ õ³€ž„õÞ›Ù‚ôêÓ­©²Ç£÷‡…Ò´ÂÜ­À؂Ë”šå¿ +É™¶ÏÃÉãíü–­Ð«÷·¥ÀÐøðìõ¶ÃéÕô°š¬ ó±€¼ížáíÅп‰…¦ò„…¨ëŒ‹¸Ô°ëÄþȪ‹‰Þ·°€•¾ˆœÛØà‘ˆ– +ðø‘ÒçÚ¼ÆÜ‚¥æëà—¬Ì±ü”Úç½±ðú¤éù«³¢ÍˆÖîþ²ÍäÃÈÕ„àµÙ‚ÊéóúϹæÇ°€ó§…‚í¾€ìÚóÎÖìâ›­Ü +‚´Ô¸Î€–˜ÚÀ³íþ­­“°’¯ðق˜ïÓÝÑú½àêÙ‚ÊéóïÆçÅüØàÔÁÜøÝ€Î›œ—¬Ð„ôÓ¬Ù ”Þä°°‚˓ًˆ•à +Íõ¦¾‘â§×ͳ÷üêŽÖÚ‹ÔÊ´Ü¡þ„¿Ç߈©“¥ØšëˆÁßÔÖ’Û ÷ˆ¡ó™¸Øàèá´ùÝŸõ·Àì¾¥€¦Þ¨Ó­æ°‹è˜š  +åÁΛ¿ž½›¸¬°”ÞŒ¤¾þ¾§îÒ³‡˜É휖À´¹Öô‚µðNj㜬€ÉÒË©¼·á…—²¡“‰›‰á…—¸™ÁƒÐØ“°¾À†ù‚á +ð±ßß éâäêõéËìý¬çô‹¼Ô”°€Ï¥ú‚½êìå£Ë˜¯¯ð”àËÝë‹ôŠûÖ丅֗ˆËî½õ…ꮚÞÏåºÿ¦¹ýËÖŠÃõ…ê÷› +êê´¡íí“ÀÞž°ÀŽõ…èöÑêëÛïÈ•ìéµú–•†ù‚ÂÎÓÙÐÊó¶Ú¬à¼¾£Àº…ú·áźŒó…äæ³•‚ªÝ¤°‡¬ÿ༾€á§€ +æ­†ù‚š±š¸’ŸàÝë‹ýô☽âÃÀ‘ ïÙᘯàÐåüŠøà¾Õ¾ÀâþÅË¢ö—ØÊõ‰ð–”•¦ù‚šª‘­×â«°‡¬³€õ…²Ç×— +¬¸µ’°€Ö—ÑÈœÙßàŽÃȈ‹àšÜ†Óÿä‚ÉÒ™°‘Öø–€ƒÁ…Àðà€œØ€„‡–†€Á…Àðà€œØ€„‡¤–€Á鬀 +ÎÛÀíøÿæˆð›¶ìØî°ý ã®µ +] +::^ [s0; Generic multicolumn list.] +:: [s0; [^topic`:`/`/CtrlLib`/src`/DataPusher`$en`-us^ DataPusher]] +::= [s0;= [^topic`:`/`/CtrlLib`/src`/index`$en`-us^ +@@image:1077&78 +€ƒ±—€€€ƒéÿ€€€€ø§œíœÑîàøÄýâÜ£—ééùò…ʹƒÁó—¡öö ¸Ñ‰¡ùÏóƒ†èå—±ÆÒ£Þ‹þ®·„ˆ¯åºüü¢„Î +ÆÔ´äŽ€§„¥¦‚Ë‚Ìú…–„˜ŠÿµÃä¶í㣟Íï­Àσ²þïôž¼¶ÄÌð¾ðÁ´­ù±¢ã£­ÙÓéíúåäÎÇžáÚןéß¼ð +«Ììɬñ°äÙ‚®„’¼žËƯʪÙùö䣫˜²™’ÙòñôýÉ®«‡Å‹¨ìƪÊäÚ²½ª™³¦•ÙÎä¥È©ýò¦­–Ž…ÀŸºôß’ñ˜ä +ž½òÀȘ打ó´éɹгšÎçÄéšæŽ¬òõ¿¢ô´™ô¬ÇÂò¼Ú’ß‘æéÊÆŸ±¾äϢͷÇÓΆÌîͪøõ³´œâÌÚŸ¿²¬Ç÷ÚÒ„µ +َ܉ըٹ»¯Çææ¯×’Øš·ÿ¸Ž´áÛ²Û¥‹ïð§ž´éܨþ¢ ²„Ó…¬ÈÛÏߥãÇÕÕï”®Éúå䲿§š»ç§ºšöœûýªñ©Ÿ +’蜢—õ» …Ë´‰å¥ÔÄ÷Øœ£¿•àÔ€œ„„ˆ–’„˜Šþ㊰ •ؒત¥¸‘§êýÿË„„¡„ÚÎ÷„¶°ÖÊ +]] +::^ [s0; Displays value and can react on clicks.] +:: [s0; [^topic`:`/`/CtrlLib`/src`/DocEdit`$en`-us^ DocEdit]] +::= [s0;= +@@image:875&475 +‚ƒŒ€Ì€€€ƒ´ÿ€€€€ø³œíÝÛŽÛ°ŽŒÌ‰÷ž½ÂÎïТ×ôìþ˜Šæ¡Ê–ŒíîѤ’ˆ¹¢¹’’ëÇï׿ßõ¥Ó¿¶Ââ”Æù +¤ÑšåÇ锟õƯ÷ìÖ—¶Äû¿–ý¤ó†„®£ŽÌ°ÿÍ㑞Î÷ÅÌØ³ˆ°•îÆ³Ž™µ¢»ÞßۈۄñëÝ¿úËÊ‘¨¶êʈ†è +Õ‰Ÿýئ¦ŠéÁç—ԈàÏÙ¡êų㩨¬•§á󳮪âèÇšÖäîÈ‹¾³û¯§¿É“úò¶äÁºÙ𪚹ªÊƒÑ¯¾ªîìᬊÖò­ +¸Æ¦ëÕÛµŸ¸ÛÇ‘¶¶÷¢¹Ô˜Øû”ÆÃõíÙâá‡Ôçé„͉訠¢šåÞÇí”ñ¥éާöþÑÔ”·—ʹˬ撌¿Ñ‹´É¨Ñ¤»ºçÈ +ãÒ¨¿Ê£üƨòÃéÄ¿—•Þæƒø¡½ÃŲäεÃÅÀóïî;„æ÷̔òŒ±Ü„åšçôõ†Áž›Šá¢Ð¿ŸíÿÍê +í©º˜ûŠŽ¯¤µ¤ñ¤‰‚ùÐ’ÇÔÑáø˜æáˆ‘‚»Ð˜‰Š–º±ªâ¾›ƒÑȵÅé¢Â¯ÈÞ«‡‰¬ÑÈ…äÊœ—ë´¤†ì½¥Â´¥£“Á +äå·¥‘åÀ®óÒȬ£‘ŠÃä˜ÆæÅ¶‚‹Õ²ôŒêô ÿŒþÝÌŰ›ÜëŒÉÖ¬ØÍŒðØ¥ÚÞïÂМ݊™âÀ•¢á¹Œ•šîªƒÔ¹Ã£ Ú +Ú¨”Æ ´ú¹ÏКåÇ’³±Õ¥ÐßÜ…«ÇÎëŽÙ†Éî唯ÉÔ©’ÍŒå°êÌ•ïîµö훳íÑöôòã©Øž¢îÇŒ‡ºë¢òß±öÌ +à•팉æçëÈÀ‰½ù°žšÓÎÔØØŠáÝü–ê„Ì´Œ¶—ÚЩ„ Ý’¾ÁѼ¸Ô¤ÔÆÁ€©Š­¾ª¬½ÓÕ¼áߤÑÁëäô欃¤´ý +šººÎˆ×ÜŠèÕèê–ÙÇ‚ÓîñãՊù«š•–œ©š¯›È›ÎÑ­»¹Ê°Ü¤ž°ËÍÇ„ ŒÕ†«¾ô½ÅÓ猓ÃÀŠ»ê¬¨ì¿Ê£ü¨ò +Š£•Æõ¥ÅÑÒšåÇ锟欹§ØØþ¤ÝÝÈàŒÕ͈½ëïøä¨ó†¿Í꽆ȃݿnjéÍæ‡£¹¢‘®ÖÆôÙ´Þ•ã÷ǴУÓòñÖ +Øšµ¨òãêÚ·Ãðûš²¦ç¾­ñÖÊýƒðÙǧ±¤ªúÒ‡±Ö£ºŒçñ™±¾‡©îÈá‹”¥ÑþÔÙóÔàæ„ÿ¹çõތҨ¿ÒêÄ÷¿ú +ì“®Ò«îÁæÁ…„¿ é¢ší†㬶ßÿàÏ×óøäþùª”Íûš¥Ší¦æ»œ±ªè¬‚»‚÷¿ÜÏÕ¥ÜÍêúêȺž´±Ýú§±Çµ¸ÿ +Æùª‘¹üÀ£¡àÄÚë̃ßýއŸ§Š–ÊÌëÖèÒèûÏýÈ”Ð÷¢¥Ê“’З³Çõ™öñã꫊òö…¾é¹ÃšŒ©îØ©žŸ©©‘݆—õ +êž­Æ¿ÿý¬Æ«Õ…š•ò¢Ž´ÊÒ¨¿Ê»£ü¨ò£´¿Ê¯§ÿÅó–Ý‘ë¯Àå〟 +] +::^ [s0; Raw text editor, proportional font, `'`\n`' is the end of paragraph.] +:: [s0; [^topic`:`/`/CtrlLib`/src`/DropList`$en`-us^ DropList]] +::= [s0;= +@@image:337&143 +€ƒ¶€—€€€ƒéÿ€€€€ø¯œí×ω°ޘ‡áì玎ÛàÕ™ÜÀ©¼ÎùÕŠ•ªÑ±©¨˜¼©•±˜‰Ä´ðÁ¨‰Ùâ×­þ‚˜ÞÚÃ’–úÐÃÿ +¥èÜéÿÕÔè”õ‚̑ރ›½ß—Êí­Ý½ð²ç„ôéêÎæÌ”ð¢®óœ˜Â¡„³¤»ñ‰ð¼ÑœÞŒŠý̳ùÙᓲ¾ðúãžÖ”¥œ­òªÖï +çÚ¹¿ƒ”ÆË£³Éà¨Úú»âÀ᰽іäÕÌ© ð°¸Ú¬Œªž‚Š£ÜùÖÌòœý å°¿Û»™ž¿˜‰üžö¦»ÎÁÀ÷ʤ•§ Ò°–©§”°ü +Žï›²Ã—†˜Çü×ãçú€ãÖó± +] +::^ [s0; Allows selection of the value from the drop`-down list.] +:: [s0; EditDate] +::= [s0;= +@@image:662&156 +€ƒê€™€€€ƒçÿ€€€€ø¯œí˜Û€ Ì”Ã™Ø½ÜÆìùÜÁÄðÃÕĨ—ǡƢ§¶é‡”´á„ß¼èºÌ«¬Ë£¯õ°Î²è¨À½¯’½Æ¢ +õÇÈô˜ôœÀóÁó×æØ¾¿×†ö™ÅÄݧ…Ì÷Þ•éÅ•§½¾šˆ‡äû‹™ôÑÛÚîËåÌÚ‹’¿ÑËÄ“ßɯ¯ã¶õœ½¼‰®¶úç÷Ú +ö¢ÉÃê¦Ç³Û‹ŽÂêÅô™ÈõÕÛü’½ñ²œÄû‘ÁßçØ¹×ÃÖ²ö—ÕÒ³¥ÀÖ„˜¤ùÒúÖऺúŒÄ‘è±æÊÑ“Á³ÿðŒåÙîîì´ +€ å +] +::^ [s0; Date value editor.] +:: [s0; EditDateNotNull] +::= [s0;= +@@image:662&156 +€ƒê€™€€€ƒçÿ€€€€ø¯œí˜Û€ Ì”Ã™Ø½ÜÆìùÜÁÄðÃÕĨ—ǡƢ§¶é‡”´á„ß¼èºÌ«¬Ë£¯õ°Î²è¨À½¯’½Æ¢ +õÇÈô˜ôœÀóÁó×æØ¾¿×†ö™ÅÄݧ…Ì÷Þ•éÅ•§½¾šˆ‡äû‹™ôÑÛÚîËåÌÚ‹’¿ÑËÄ“ßɯ¯ã¶õœ½¼‰®¶úç÷Ú +ö¢ÉÃê¦Ç³Û‹ŽÂêÅô™ÈõÕÛü’½ñ²œÄû‘ÁßçØ¹×ÃÖ²ö—ÕÒ³¥ÀÖ„˜¤ùÒúÖऺúŒÄ‘è±æÊÑ“Á³ÿðŒåÙîîì´ +€ å +] +::^ [s0; Date value editor. Nulls not allowed.] +:: [s0; EditDouble] +::= [s0;= +@@image:631&150 +€ƒå€˜€€€ƒèÿ€€€€ø§œí˜ÁŽÃ ðƒùñÿÑÏÁôñ½µ§ú‹æ¢ÌºÞÊ¢¤‹µåÄàñƬÀЖ×ó±íû̾ݟ¶±ÓâªÖ ãÊÉ +™¸Ò²®”ÄÜ祔õá«ì€šƒ±çÓ¢ëֹ᩸¶©°æž‰¼•‘‘¢˜Ç’ûž—Àï§þ’׳’ªº»ÑÉÌ𨩅±†¾õÄþàêæä™ñ +óݳ…¯‹ïøÁ±³ß¿øí·è¶¼§Â•·í¾ªåþˆÑ¨™È€ò©¦ëà¢ÕØþ¯Ñ±‚×ÁÕû…“™Ïðæ°Êê†Ç«÷ Æ§Þò­¾¥ãÊ +óɸҲ®”ºÝ¸ìâãÿïÛ›ÿæ·ü–¯£ +] +::^ [s0; Floating point value editor.] +:: [s0; EditDoubleNotNull] +::= [s0;= +@@image:631&150 +€ƒå€˜€€€ƒèÿ€€€€ø§œí˜ÁŽÃ ðƒùñÿÑÏÁôñ½µ§ú‹æ¢ÌºÞÊ¢¤‹µåÄàñƬÀЖ×ó±íû̾ݟ¶±ÓâªÖ ãÊÉ +™¸Ò²®”ÄÜ祔õá«ì€šƒ±çÓ¢ëֹ᩸¶©°æž‰¼•‘‘¢˜Ç’ûž—Àï§þ’׳’ªº»ÑÉÌ𨩅±†¾õÄþàêæä™ñ +óݳ…¯‹ïøÁ±³ß¿øí·è¶¼§Â•·í¾ªåþˆÑ¨™È€ò©¦ëà¢ÕØþ¯Ñ±‚×ÁÕû…“™Ïðæ°Êê†Ç«÷ Æ§Þò­¾¥ãÊ +óɸҲ®”ºÝ¸ìâãÿïÛ›ÿæ·ü–¯£ +] +::^ [s0; Floating point value editor. Nulls not allowed.] +:: [s0; EditDoubleNotNullSpin] +::= [s0;= +@@image:456&150 +€ƒÉ€˜€€€ƒèÿ€€€€ø½œûóòƛѲ´Š†ŸÊëܸ·ì¦×þè‹°”½öúÖ‘‡™ÛŸáÁÀÞ…ÿ‡¦× Ž—ǃ€ŠþÙí¯¿ö†Ž¼ +ÏãÊ‘¹ÀļÑט˜˜°ÚÁÀ€ƒøÄ耈®¿òù…„ý…Áð‘ ¢¹ÆëøœŠæ£ý¬¢´óÚÁóŠÏ€ˆâ©ä†À„Ñžëø”ÐíÚëûμÀƒ +φ®×¨ØÂâ¤÷§š¬òšþý¼†§„¡¢‚ßЀ•‹ÿ²¹ÜÏë¯Á‹ýâÈÉçÐ¥ð×ÇŸ¿èíµÊ€‹ÿ¼îæÀ…Þè‚´ó×ÿ¤ÂŸÞ… óÉ +Òªü‡› âế؀Ðå‡Îþßц®×†¶ñËŸÈ€Õë•ÆÑÿŒâ”ÐÑ‹€ãÕú€÷ +] +::^ [s0; Floating point value editor (with spin arrows). Nulls not allowed.] +:: [s0; EditDoubleSpin] +::= [s0;= +@@image:456&150 +€ƒÉ€˜€€€ƒèÿ€€€€ø½œûóòƛѲ´Š†ŸÊëܸ·ì¦×þè‹°”½öúÖ‘‡™ÛŸáÁÀÞ…ÿ‡¦× Ž—ǃ€ŠþÙí¯¿ö†Ž¼ +ÏãÊ‘¹ÀļÑט˜˜°ÚÁÀ€ƒøÄ耈®¿òù…„ý…Áð‘ ¢¹ÆëøœŠæ£ý¬¢´óÚÁóŠÏ€ˆâ©ä†À„Ñžëø”ÐíÚëûμÀƒ +φ®×¨ØÂâ¤÷§š¬òšþý¼†§„¡¢‚ßЀ•‹ÿ²¹ÜÏë¯Á‹ýâÈÉçÐ¥ð×ÇŸ¿èíµÊ€‹ÿ¼îæÀ…Þè‚´ó×ÿ¤ÂŸÞ… óÉ +Òªü‡› âế؀Ðå‡Îþßц®×†¶ñËŸÈ€Õë•ÆÑÿŒâ”ÐÑ‹€ãÕú€÷ +] +::^ [s0; Floating point value editor (with spin arrows).] +:: [s0; [^topic`:`/`/CtrlLib`/src`/EditField`$en`-us^ EditField]] +::= [s0;= +@@image:631&150 +€ƒå€˜€€€ƒèÿ€€€€ø§œí˜ËŠ€°°ŒÄûâïá弜«ÝÕÄ”±Ðü´Ø­Áù•̱ÍÓ¡©áÅùšçˆ‚¾ã¤®Ÿ ÃÜ®˜Œ”à—‹¨ö +Û¥”Ú§°‚»ŽÜœÚ•öÚåÖø¤Ñ¶Ûº®šäÝ„¯ÇÝÛÆ†³«®¿—²«èÐúÚô¯®ÖËÚôº¨Ì˜Â®¬åË¿ŸŠ³Ä©êÚ´ÀÕŹ¾ +›ÁÌŠƒ—‡¯ˆ­Þïâ’íùÁÚ®íݱšýúšÑ®±›ÐŒ…Þû—ý¸—ýÚÁ­Ñ‚Ü‘Ûèð«÷Ù»Üıë£Àô®—¢Ý¡÷ÑÿïÃÿÓ‚Ž +„Åçê +] +::^ [s0; Generic text`-field value editor.] +:: [s0; EditInt] +::= [s0;= +@@image:625&143 +€ƒä€—€€€ƒéÿ€€€€ø§œí˜ËŠ€ ”ÅÝñûè³Ê­®ÑŽì„ÅøùÝ„©žçð‡þÀä ¾À±žû¤äΖ€õ£ÆŠ×‰ºáàʇ׺¸Ò + ùô•¨º—ƒÆˆ×Œ×Í­úÅ»·ë’·çÕʘǕ®îÆøÜµ¯±‰»üü‡ƒ®ô“挅ºØÛŠ×ö«¥£Žæ´ŸÒù…ÅûŠêð㥃«ÜéÔ +ﮈ‘Ï¿®‰¿ãœ±Øùî +] +::^ [s0; Integer value editor.] +:: [s0; EditIntNotNull] +::= [s0;= +@@image:625&143 +€ƒä€—€€€ƒéÿ€€€€ø§œí˜ËŠ€ ”ÅÝñûè³Ê­®ÑŽì„ÅøùÝ„©žçð‡þÀä ¾À±žû¤äΖ€õ£ÆŠ×‰ºáàʇ׺¸Ò + ùô•¨º—ƒÆˆ×Œ×Í­úÅ»·ë’·çÕʘǕ®îÆøÜµ¯±‰»üü‡ƒ®ô“挅ºØÛŠ×ö«¥£Žæ´ŸÒù…ÅûŠêð㥃«ÜéÔ +ﮈ‘Ï¿®‰¿ãœ±Øùî +] +::^ [s0; Integer value editor. Nulls not allowed.] +:: [s0; EditIntSpin] +::= [s0;= +@@image:456&150 +€ƒÉ€˜€€€ƒèÿ€€€€ø½œûóòƛѲ´Š†ŸÊëܸ·ì¦×þè‹°”½öúÖ‘‡™ÛŸáÁÀŠ…ÿ©öšƒƒŠƒÍü€“ÀœÑ‡•üŸ² +ˆÞ»þíœù³Ç•£óˆÈ寱À€Ö‘òڑ˯ ˆ™è¯ˆ‚‹€‘è±ÞÃó‘¦ÈœÀùíàù§Àâ„ñ”²ƒ‚†¯´×öù€‡ôݯѫ„Ä +Ÿ“׆´×°ãð™Œà‚¤¼ÕðŸ´Þƒ—û뒟Π¾ðꟜùª…ÿ»ÿÁÚ¯ÁËùîÈÉÌ¥²ð”§ˆ†îáÏöŒ”׎¾ŠÄ‡ÑÅ냂è +ëÓòŸÌ€«×­†¢ÿ˜Å¨ñ¢–‚€žÐÜ• +] +::^ [s0; Integer value editor (with spin arrows).] +:: [s0; EditString] +::= [s0;= +@@image:631&150 +€ƒå€˜€€€ƒèÿ€€€€ø§œí˜ËŠ€°°ŒÄûâïá弜«ÝÕÄ”±Ðü´Ø­Áù•̱ÍÓ¡©áÅùšçˆ‚¾ã¤®Ÿ ÃÜ®˜Œ”à—‹¨ö +Û¥”Ú§°‚»ŽÜœÚ•öÚåÖø¤Ñ¶Ûº®šäÝ„¯ÇÝÛÆ†³«®¿—²«èÐúÚô¯®ÖËÚôº¨Ì˜Â®¬åË¿ŸŠ³Ä©êÚ´ÀÕŹ¾ +›ÁÌŠƒ—‡¯ˆ­Þïâ’íùÁÚ®íݱšýúšÑ®±›ÐŒ…Þû—ý¸—ýÚÁ­Ñ‚Ü‘Ûèð«÷Ù»Üıë£Àô®—¢Ý¡÷ÑÿïÃÿÓ‚Ž +„Åçê +] +::^ [s0; Text value editor.] +:: [s0; EditStringNotNull] +::= [s0;= +@@image:631&150 +€ƒå€˜€€€ƒèÿ€€€€ø§œí˜ËŠ€°°ŒÄûâïá弜«ÝÕÄ”±Ðü´Ø­Áù•̱ÍÓ¡©áÅùšçˆ‚¾ã¤®Ÿ ÃÜ®˜Œ”à—‹¨ö +Û¥”Ú§°‚»ŽÜœÚ•öÚåÖø¤Ñ¶Ûº®šäÝ„¯ÇÝÛÆ†³«®¿—²«èÐúÚô¯®ÖËÚôº¨Ì˜Â®¬åË¿ŸŠ³Ä©êÚ´ÀÕŹ¾ +›ÁÌŠƒ—‡¯ˆ­Þïâ’íùÁÚ®íݱšýúšÑ®±›ÐŒ…Þû—ý¸—ýÚÁ­Ñ‚Ü‘Ûèð«÷Ù»Üıë£Àô®—¢Ý¡÷ÑÿïÃÿÓ‚Ž +„Åçê +] +::^ [s0; Text value editor. Nulls not allowed.] +:: [s0; EditTime] +::= [s0;= +@@image:662&156 +€ƒê€™€€€ƒçÿ€€€€ø¯œí˜Û€ Ì”Ã™Ø½ÜÆìùÜÁÄðÃÕĨ—ǡƢ§¶é‡”´á„ß¼èºÌ«¬Ë£¯õ°Î²è¨À½¯’½Æ¢ +õÇÈô˜ôœÀóÁó×æØ¾¿×†ö™ÅÄݧ…Ì÷Þ•éÅ•§½¾šˆ‡äû‹™ôÑÛÚîËåÌÚ‹’¿ÑËÄ“ßɯ¯ã¶õœ½¼‰®¶úç÷Ú +ö¢ÉÃê¦Ç³Û‹ŽÂêÅô™ÈõÕÛü’½ñ²œÄû‘ÁßçØ¹×ÃÖ²ö—ÕÒ³¥ÀÖ„˜¤ùÒúÖऺúŒÄ‘è±æÊÑ“Á³ÿðŒåÙîîì´ +€ å +] +::^ [s0; Time value editor.] +:: [s0; EditTimeNotNull] +::= [s0;= +@@image:662&156 +€ƒê€™€€€ƒçÿ€€€€ø¯œí˜Û€ Ì”Ã™Ø½ÜÆìùÜÁÄðÃÕĨ—ǡƢ§¶é‡”´á„ß¼èºÌ«¬Ë£¯õ°Î²è¨À½¯’½Æ¢ +õÇÈô˜ôœÀóÁó×æØ¾¿×†ö™ÅÄݧ…Ì÷Þ•éÅ•§½¾šˆ‡äû‹™ôÑÛÚîËåÌÚ‹’¿ÑËÄ“ßɯ¯ã¶õœ½¼‰®¶úç÷Ú +ö¢ÉÃê¦Ç³Û‹ŽÂêÅô™ÈõÕÛü’½ñ²œÄû‘ÁßçØ¹×ÃÖ²ö—ÕÒ³¥ÀÖ„˜¤ùÒúÖऺúŒÄ‘è±æÊÑ“Á³ÿðŒåÙîîì´ +€ å +] +::^ [s0; Time value editor, Nulls not allowed.] +:: [s0; [^topic`:`/`/CtrlLib`/src`/FileList`$en`-us^ FileList]] +::= [s0;= +@@image:1056&618 +‚ƒÀˆ€€ƒøþ€€€€ø·œí¿³åƇ™Æõ…ˆœÑúÅèï°å¯àá„¢¦¥ô°Á§¦Þð†¤û‘ã†âƒì͹œš‘Àà¸É–Õö€Ž–×ŽË +–ؘãæà¼ÛÀÂÀõêÞëÛçÕ¿ÿÔúÓÒ¿êç×݆÷ú´ÚººúÅô¾ê¾ÇúçŸóßþç稨€¨¨¨¨¨¨¨¶¨û–ÿù·÷€ÑÐÐÐÐ²Ë +ƒâŸ€€À†ýðϧ¼óޅ°äòÜÁ¯Ó‚Ùú€Úÿº…é‚Èßä‚èŸßþ穽ïþë»Æìý½ßÚ÷É÷Ï‚îÌ‘ŸŽˆ˜í‰½êÁ”© +‡—¥ëîøœïÅàŸ½±öåù£ßþòù‹—Žâ·¾½ßºôÓËñÏž€ˆÉøÊƒóæææÒªÐýäÂÅÞ…þé‚Á¿ûé±åï¿øé™çöùúá‡ý +íÏÌÿÌÁÛ«¢Í‚—Ž Âƒ•³·ÏËí¾¦òé¹®š“£àÓ䞬›î¶¢µéÊÿ”­ýè¶Ñ”îê‹’Œþù熯Þÿ¾÷“Ïìòì÷Ù‡ƒí†¬ñ +³çä‘ÔÅ‚ÿ›–ƒ‡æå¨½æ˜æç¾ø§ ø€ó²ӿÞçõŸÛÓµ‰ÞÌôšÆëœñÉØæúãšÍéúŽ·ÀôϾþßý§¿¥åëßèø»é¹¸íŒ +Ùùûç”û©ãñõ¨¿ûöìõÕ×ßïÛÞþûðíêýï½õÖç𲯌­ÏŸì¿ÿóÍ·û–…¾ÿ¿–ýßñð£Ãå艫ˆÕ­À‚óêž÷···ÃãÍý +êüþÆòÏû’‘ÇÃÕì§ÿùúûæ–’ÎÚ»‘Œ÷²ÐáŸàÝí¹Š¦ÓŽÑøêÉçÏŽ¸ˆÞ™®µü×Ó²îåïá²Ç²¨ãÿü´Ë–Þ¼‡Â›‹ +»úçà‰ïß“ÝÕ™Ìóñ½Ñþ¿þõ¯÷õ»Þñ†ë£ï«üîä¨Äƾ«ÖØ‚‚ÿšÓ‰õ„±Ö´§”ÙÛù¼Úý§·Úà÷¡‹ÒúŽ—žÅúù»ÿ +žé»¨±…üÍÛÇ»ú­Ÿ•êٟϾøÍТèùŽ¥¶—õϤ¤®Äà±ôÚÙ³‘ãƒçÃóϸø´ÙŸë…´¥¢í§°õÏ´ø¥›ÒöÒöê‰þéôß“ +âüÓì‘·°¤èõ¹þ²¨ÿ–þïýÏú’í–³©÷…þù‚ú´ÿŒãùûÝößé°ì럓³Ûá¯óâ÷üßþÙ­øþ³Ì”‘ÅÜ‚üÓã³ìŸŸ“Ãüø +Ψ´¥¨ÿ޳åò§÷ÄÃËœï¿ÇþâÆ†Êݣdž©úß°Çëìù÷£Òâ¡——íæü¦þ´¹ÿÒí²±ßËë¡‹Òúýççþ¾æûÏãäÒ£Ž›¶Ò +픬’맃úùç÷ÿüë¾ôÐÖ¹Ô≭•üþÔ÷Ìþ¿£Šý§ÿ¿ê×Ûä¿ŸÅÆ–°™ý³©ù÷¯¥„­Éšñªîªùî–Œ¾ãîöÙž©êö¤ +ÛèýËÚåé½»¦ñå“þù«ï»ÌôÏ»‡´¹‹˜Á›“œ•°Æã‹¨Ù¥þ®ÚÂñ៯ýžÏ¼Ïýó§»—¸´ôþÏŸö¾ý…Ýòïÿڌ㫠ƾŸ +ú‘þÉÁó›‘¶¶ý³µ•‹ÂŸ¿úÑÏþüçÀµ Ò±…‹ “‹è—óï½½ö£ÌÚ±áÒßÞ¯ÍÂÿþÔ‹‚Ó¶…É…åò¯±ºÁàºàª +ÇÓ—¿ôמø›ì«÷å—ߑ¹«„ÌÉ÷†ñù¿Ûƒþé‚îéÿ”Ì“þ¹î³ÈÿÙšøý©È…Ѧ¨ÇÐÏéÍ󢎷ÏÛ—ï¸Áþ‹ÏÖÀþÏ—Ð +‹™¨–ÔËÇÖúó„ÿîÎ’Ïÿó½ŸüöŸæêéÓ§Ÿüæÿþ™ÍïïœÛÿÕŸþâÖÃïï¹·¯í«Ÿõûï¿ßÎŽ½µÔ“ÿÓ¦Ñÿ’üÊÓÈÆ +»ŸÜ¿éß‹ùš’ÿ”£Ì¾Ð©Ûêê÷½â·ôþÏÉÿÜ­ãÿç‚°Þʤ—žüŸ¶ùÛ¸‡¥îÔ¿ƒû⩈¶ÆçÌü³îÊìÌØÇÓϲ©­¶ô°ô +ëù£Éÿ¬úüÓæ“§ÏÞøã·áŒÈž²ü×ãž çþÌ®Á¶Ã…‰¿ÅöÏÌÿÉ£ò”ø÷ãþâ–Ä·æœÚ˃—ǵæÅøøÓ¾€ÑļõÿŒÌ޾ +ÀµñŸ´Å¦µþŽäð†ñ´†¸®½õøç럯½Ö¿ìòÈŒ²˜æ Ó¨¿·Ÿú˜™¿˜ù°¢á§È¥½ù¿èÓ‚ú¾ÎÏ´žã¥ÕîÁýó£û¨‘ +üÞÛæû§æ¢Ð‰‹´¯þù¾Ë”¶Ÿƒúƒü“޾Ÿ½Êàÿü”ߦïȢό°¾ÉÄŽù­ÑÉþÏÅþ¾™¤³‚õäûØÖùËÕðÿùäÜíÓœ¿‡ +ÄìÑøª«Ö¿§þ啊ø²—êñÏðÿ›Ð¿¿ž’¨¥‰ÛéâæáŸ«©Ö¤ÿçšÿ”·ì°ÞÄ÷°­»ÛóÏס‹¥ú»çÐÁüýˆîªþÙˆúüó +ì˜ÿÆïªûéàüàÆçäþäïöˆ„Ÿ¢‡äãÿ¤²¥›™ë©Ÿù½ÓúçüÏþþêþŽæô¹Ô’™½áŸ£Ú¡Î¦é×ÿÌ¡žÿüþûüùàÝý— +ÉŸÉâÏ£óŸçãLJïвû‡œš‘ðÓ¿äüŸÅÚ‰ŽÿÒø¶íŸÍèÎôûѲøíŒÃЫíμŠÿ‰ŸÒ°ßÓÉÞÎß¿×ûõçáù¿“ÓÀ +Ôèì¶óÿòíÒù‡“ÇŸ¬‘áü¹È²³ØÉüˆ…ü³°»ñÃú­óÿÞš´ùü¦÷ÿ¾´¾ÿœË‰Õ«ÞŸòþ‰ê„ùùÃÜÀŸßä‹¿¼Ÿ¸ûà€ +ËþÙšðÏ—ˆÈßÓãÜØ›ð—ÏÖ€ÿº€²¹€þÙšˆÌð—À¦—ìöûåÑŸÈì󬟻‚•Йîù²¹ð‡Û¤ðÃýŸÖ‹¸„øÙ§‹’ÿÔïÑ +ý½–øçþ”óçÏýïßÚ¼Íõ¦ò‡î⟓’Š®—·ÿ’¬ýõÜùæÇ“ø©çí†Ô¿Å¨•³ÅÙÖÓ“ÈýÃÑûç§Þ°üã‹ÝìŸÍ®ýÃÀžÿ¿¾ +†ìÄ뢹¡Ù•¿óûžÀÌ¯îŸÆ´ÝôÏŽÞÏôÆÍ´½ù„¹Ôóüæß²üŸýߡ߳ÈðàæÜàÛšï½µ¼ì«Ãä‹ò‡Ž°ÿ¼ˆ±Šß݈®ú +§üãÁÌÖ¤‡‚¹é¯îÁüë®×Ò¹òç³ÔóýÓì¹éןÉÁžï²Ì×’•™ÔºÝŒŸØìØã³—¼î”úüóÙÇþÏÁ’ãÖϦჃù¾¾§ +èÚ¨ò‡Ž¬œ—¿‹±æø¤ï³ç±ìì¿ËàÞϹà±áÉø³¨¢ð­øŽªÆêéºÞ‡ýú×îñͽëþ¹¬ÿ§·¾»œÆ„±ÿä†åò¸ÿ¦«Ì +ëõÏ •üãùˆõǬÿþ“ðî­Ó”¾ÊŠ£Õ¯•ñˆêÔË—„úü³¬Êýÿ‰ÿœËÊïÄ¿ëðÏñ‹É­‡’ëŽý³¬™óò—ñ•ÊÑüÓ”‚þ™ª +«Éÿ¹´¼¹§®öΜ¿›öø·âÜ¡«¿ÿŒÈÓ‘¤Æš½ÔÉÆæúçÞÏ˹îˆÍ¿é…Ÿ¿Œ«ð£”ôžÑÄþÛúçòйöªŠ§žÿ¶Ü–ÿ³ÿ÷£ +¡äލôÿÒëÒ¢¹ç¬ÿ¤¡ðíš¾ð‚Фݿþ”µ¢Ë샻쳴åíéô¥÷ΓˆÂ̹åþϵ¤§×Ñè”Ü¿ïÇ‚•ßÿæòÔÄÙý–àºçþ +µÏµÀ¿áŸµÞÐîùÍÃðò¬‘ô‡ò‡´È†’Ó¸€²¹†€þÙšˆÌ—ˆÀ¦—À¿ÛƒÛé‚È䂸Àçë °Ý€™ÞÜ€üŸ­áü÷ÿ›‘…¿ä‚ +œíéó¿ùó‡ýòÿ¶†æŸñ†¶˜¡Ž‹½–®Ñ¦›ûûþ®ê¯º“þ·Óî娧ÿ§Í™ìÿÖœþö£ÍÿÉñϾŶÐúÇ¿…”ò®æ¿—éªÇ—¦ +âÎæÊ­ž£Ú£ÓÆÎù©Ù—êÉÿÉõÚ™«›ðσÌÿŒ»º…¦ª­ÜŸŸø§ˆøÿïŽåÿŒ†ù§ÍƒÎÿÚÓ½ÙÇØïî¼­ô§ ’•ç·“ËÞЙ +»ž—üíµ×ž¿þ¼ô‹Ïå­Æ§Ð㪓‚òºþèýÃòüóò„¢î¡á¹‚†¦ëÒž”ìÐ쩾©ÿº’ØËµâºÝ¾Ùš‚ë‡ë𵚚ïîçó +à·™²é‡™·ïˆúÒÀŒ’¬ï¤çèȧºˆ®­®©Ä¿ƒ´ýþüòäÉîâãÈ¥²¸á³’ûºñæÎà¦Ð‚ÍÖéœÉÿµ¤äú§÷º¤¡âø»í‘·  +ЮúèÏëâ„¥ºÆðÏ媮†¢ú§¨“ïÉå챉Êñ݇ˆŽé½ÇËÝÓù³ÿ¦õŽÁ—·æ¬Ò¸»ùçòȎáͦåßíÒºÝâ‘Í®¿ãàÓæÿ +ñŠ«šëÙþÉ´Û´¥Üãοÿ“ýÏñÏ­™ïªõÏñï«áŸƒÑ¿ÃøÕþþ÷׉‹þ¶’þ¹¹ŽüóÈî÷èÑ£ñþ®¦‚•×é·œ•þ™¦Âð +áÒ¿ÅǕǜý“ñÚ¿ð¤¾Ë½Ç¦üû‘±Ð‹‹ö³þÚ¿š¥œ¸ú¾äÿšº¤­®©ñÇ¿ù’θ©ÒØ¿†ñ»È¦ÿ¿‚ùެ÷÷ÏððØùå +ÆÏ³Í°Žº­ç§Ø®ìí䓤â캎ÏÛ¿«“’ÿÿÒŽðÄüÝѹ•‘³æ¼Ó»º‘äÿÊìÍüó±…„”¿ßùä¼¦ÆÆ“»äÕØú³ú“€üŸ­ +ç‘óüæ¹àߟ™œãùÍøÎ§ò‡œŒ¤¦àðäòü³”µ˜®€Ì®¥€ÿ¶†‚Ó…»É…ðÏÖÀÒ຀²¹€ùˆ¿Ûƒù¿Ýð§ŽßÎòÿ +Õ¶†òÿº€ù°¿ÝÐçþÏüöðþÌå“üŸãëê¶Çåÿä¤ÛÉÙ໯âÖ™ÿ“”ãÊýþϰƒÇå·ÿœÜŽ‚”ÒÏÉó›üò™Ÿ»»ì«´Ïðø +ÿæë¯¿þìÙù³ÀÜ÷ùóç¬ÃŠ»¸è¼§âüßšååþÏÏýð¦¶è¡äᨾÑüÙ²„Ò¥òÿ¦Çõ‘–êüÓ“§€Èï—ÛÈ¢ÿÏìþÖâŸá¬È +žàžï‰–º²ôˆ™¾Åü¡îÞÞÂÙž©ðýë”ó¯¶ñ—ÓâÐðÏÈíëÚ”µÂ¡×üŸö•ÍиöÞ¯®´‡éÒ½Ç˧Îÿ¢”ëö£·î +÷ŒØÒ ›ç¯ñËŒ“îùëê¶È¾ù¿í¥©šÿ殨žªÌÚ€ò·’Õ©èÿˆ‰ÿŠýçœúçøÏ¬–릀ÿºàŸü—ŸöÒ’þ©ÿçÚ³øç¿þü +å§ÿþÞê™é¿¿úô蘿ÆÿŸÑÜ‹ó¹÷ÌŽ™¿ÏÚÒ·¾ìÙ©ýòÞÿÒº¨ÚÜ›ÛÕüóò⨺äåìÔÚŽ§ž­ñ§Íÿ™¦þì¿úóÍ·“ß +Ÿú—âïÇ ¾á“üɉ¹¥à­¼žéû҇ʯ«Â¿©ÔÖ¿“’ùÿ’—ì£ÓµÉ‹¢ÖâçòÔ™÷Îò¿Ì®îß¶›œÿîœÿ“«‹Ê–°ÃþÏí­ +ñ¹ÛëÙîýóšÿÖö´í™ý°¥”šÿ†ñ•œÐã֮¿·Þá‡üŸâڙݛÚùÖ§áÿÑç·ë»àžý–ó«ñ§¨–¤Á¦ðäòÁ¹¥ñ§¨“„¦‹ +’ “‹°þìÒ„¦‹ “‹Óÿ³µ˜®€ìÌ®ØÇ¿ñ£˜À½ ÿ§‹”“™îîÖâõð†”¥ý“™‹ë¢ƒù¿Ý€ÿô¼ÁÑÿœ•±°¯’¸«ý’Ìå +¯“üŸâì‚·Ùòù‡—¯ÓžøØÉÞÚó—œø·’·›óÖ‡ó°Ò¿·œñåܟغÊü÷™‘½ãµÐÔ¿»×òÀÀäÆÂº€Ê’¸â¬ã’ýþÏё͚ +»¹ý𫨻´Ý÷„ÓÞú¨Ø¯óïס‡¯ó‹¶ú¬ù‡ö¥ìÇŸï…”ýÿ£†ÿÂÞÆÂÓºÖä…ų•×ö£á»¼åœ¬Ìÿ¹”éß´åÿê +ѹïç¯åï÷˜øÖ‡Âüóƨüõž¬ÁûúŒ¼‚´˜â›ÊŽ¡¸¢¿ÿ‹ôóêò÷較¿²þÙͺÌÕ¹Æé­ÝþÒíˆàýÃøÞâ—㜾´µ +Ù¼ÿ’ØèËö°ËÄò¬ìôýþ¹ÐÍ™¿óך·ê˵­ÍîâÁ´ÚÆÚŸíÚ÷ÂŽþ®ù›—±°˜ãæÈ¾”Â×áÝ•¤·²Ú¢ÿšïýý²³ÿêã +Ôõ€”̰Ե¶¦žŒÆ›êå§Í¾é—¥ÒÿŠòìîÁ«Š¶ÌÜ¿ÅúåìàŸ¡¯ãÐá°Ý±©›Êëæ„¼ü³¡œÜÿ껱̿“Û¥ñ¼ÉßÏí +Ö„«Ü¿»•ßäÿ†éÃ埧ÊÇõšîÅÿð¿¢–ú›±»¶ÌúçÜúÂÐܲ¶ê­ç¶à“üõ¼žÿÉ™“—‰ÚÏÊôí´Î½Á´·ú¾Š¿ÿÌŒ +Þšñ€ÏµÙ㱚»àŸÓãþ™”±ã¡ØÀ¢†Ú˜¿´Óð¾äõ¬Ï—Ô®ïþÙ¤ÿöðµ£­îë¿´Ô”ßÑÚø£îŒÖ§çÝ­¡Äý˶ +ŠÞÜÅîÉÝÝë£îƒ¸×ðÌÏñû—ãÅŠÔ‘…ëÙ¼å¾Ñž£‘ç±Ãþþϰžý¹Ö‹¸Óó›ëœ¶ŽÿÔØÿ¢Á€ÿºùÃÄÚƒ‰©Ü€™ +ÄÜ€ÿ섦ô‹ “‹àŸ­äñ̯ÿé®ö¼ðÙ×ïʅ⯾ò׈˜ÜííŒüÓ…ðÏ×Ö˜öÏɼáÉŸ»ƒÿôÁù“ßß‹þã–üƒ“ÞØÓÓ +×›çŤ¹ù¾ìü—þ¹³ûÿñÿñàðÏÖó ¹ùûßÅ®¼áŸ»£ú§÷²éÖÆ…þ™­œöËå´üõÆ¥ãÏîŸôëïż™ÿŠëš¦°Õ¬½êÙ +ü‘‘²é˜î²ÆåëêÛ¦ëÖÃ˾ÿþç•—×µèüÒЖÞßëêߪÁý³ŒçñÉŒãôÎÄ¿ù½ÁÇ¿íÚÖÄ„ùûçÇžˆ›Ì»¦»ÉÔ䯈 +ýÿŒÛûçͬ¨§öŸÖÒý³ÿˆÄ›Å˰ܹ“³ÔÙàÕãÏÁ¹©ùŽñýÓŒÕÍ„Ç‘ÝÆÿã¡ËÁÅ„½ÿþ½ð·Ò™Ùôù°„¦‹˜ÁÚÌ¥­ +ë‰èÚ”ñ‰íä–÷Ô¶ÿ×ü„³‘Èž‚™¦ÆÌöäÚïŠêõŸŸÝÃôÚÿ’ퟅ•Ø ³‰–žÄ€¢ãø§²Õ—ÑüðÓÔÇÛªù§Èëíé½Ç +êËÝÑ•ÿŠŽ“—Œíè£ö¦Íº‰û¥ÖÛ«€û§çê›ìýþ¾éŸ¼ñáûåõ¯¯´¦Â⤚ÿææÓÕÕüÓì°Ç•…ž‹¥Ò“ïÒÚð¿Á˜Öõý§ +›áŠÉ݈âÃÒôºïâ½…¸¢ÿ¾ŠÝ¬Ñ¿í‡Žü÷£øçô¾èþ™ò²é¯–öÏä¥ü³–œýýçþäÁÎë̬‡Óˆ·ó˜Ä¿ßÝÛäòàžÃ¥™Ñó +—ßßÀƒÿî÷…üû‘±Ðü–캙ÑÇ­¥ù¡™³Äé°ÿ¯¹ÿÏ‘«ÝŒÏ†Ž¹üÍ¥¸Ñ€ÿ†â±ŸÉ™ýÿ™ý¯ÿÒäÅŽþ¹Ú‹Û¿“’ùÿ +¯Ò¤ˆÈ™ìɄߨœàÜ‚§Ë³»ýÂÚŽ¿õøç¦ð“̆‰âø³¢Œæ¿¥ë”¨‘úæºç†Ò”¯–؞ѻåÌëþ‰˜Ï¡ÿû¨Ïð û¿¿‰ +¹ÿÜ€ò‡´†Üÿþ“ÿòþà‹îäñ«ü³µÄ¯Ö°Úɯø§‹àŸ­ÀôäÌòü³µ˜â®€Ì®¸ÓïÐÇ ‡š˜·Ùöœ¸Ãí‚üŸ +ꮀÿ¶ÆâŸíúׂͅÿÜæŸäÿôÁÍþ“™œ˜¹ç‰Îé¥É’ÿ”ÿÛý÷„ãöìø’•¿‘“ïëÏòœêªÉÿ¹à£òÍùùÕÏ¿³ú­À¿·‡û§ +رí—ý“ŠÑÎÉψñîҿ̤¶üŸù›™ÿž•ÿÓ›£Õä߇ÏðÄÈØéÄÿ”ûŠõþ©†ê”†ÿ–¥Ý®•þŸÑ¯·Îíù¿¹÷¦ùÛ±ú°Ý +ږλåØêÓ™¿ëâ‰êꛑƒ“ÄÖŽŽ¿í¡¦–ýÁâúÎÝ롾§üŸ³Úò¶£¹šçÒÏñÒãéǿƒ›çòŽËØäÇÁ°Îï²òûÏÉÿÔ +†úòñ§©¤ÿ§¸îÌêÆœòí裕Ϡ€õßí÷ëùþó«ñ§¨Ø‡‘Ñ¿“±à§ÿ™×ÙéŸå¢ÀðÏÎýùֿŷذÒÞèµ´çŸ·Ë +áòÿ¦—©øç¥¶èþÉ«ü¥óÝ‚‘ ùþ™àÜÆ¡ÖÂÍù ¿ƒ‹Òí­üÌ玘¿ËôóÛçïÁ‰Êäš›À×ðÏŒÖ¹Ž¿‡ø´Î˜­á¤ÒÄ€Ø +Þ†•äÿ仯½µ–·“Ô¾™ãîÙžÙ©ó¯Øý©Ê¿ÁŽœìòÿçæÔ’ºŽõð¾üŸ‹µ°çôµàѿֻÆúí¶Ã…ñÏïÂÀÎùòˆÿ®€þ‰êƒ +‘‰©Ü€™Ü€‘ÿ섦‹ ý“‹àŸ­Ààôäòü³”µ˜®€Ì®‹ØÇ¿ñÛϽ쨿ìⶉº±€Ì®¨íŸ·ÈØØ™ˆÌ—ðÀ¦—”õÏë +ý¯™÷üƶœ÷×ûÞÝÂï¤Ú­›„æþ¡—å‹´öº³à…¥ÌöþÔ‚Œþ«ûÜàéÙŸ¯èŸŸ¿ø¹ÏéŸÏžý¸Ë¼¿»ò´Àå¶ÜÂò߯¸¿“ +ÉÁµ—þ´„ü“¾¤×´Þ—±™õÈí¡•ÅÿÓŸâô¬”ÉξŸ¹‚Úþìé³øç·¿õ»þùɤÿÞ¾ýðƒ¾çö»óï×óÌÉØ¦È×ÒôÌ–š +‰×Êãð“×±¿®Âœ±ñåÒìÔÚÜÀ‚ó”æÙš‚ÚâœïÒÉÁøäƒµÃƒ»­›Ë”Ø£—É€õñÿ°´¬×àŸßþþç½¾ôöØõ°©«ÆÒ· +¥÷ˇî³üó–êªÎ‘ý³±¦ÌÚÓØ«èç÷‘½µ°¾¤ææ¸§£³çýĽÐèä‡ÔðÏóãàû¼°Û²÷ùüëÄÛÅÙí¤ëñž­ëöµøçà¡ýØ +›²·Á­ôˇŸóœëŸ™™‹¥ƒ²•›ãËþú†„ù§„¾’å¾ÖÚç­®ö¨íŸÉ£áŸÕÚ¶žØíÙèܦ͚탥–µ½¢ÿΪ὎ÿ†¼Œ…Á +¡ºè†Ý¸ÃìÓំ¥¾Øƒ¬ÿîÎæ²Á¿Ü˰øçï¿ûÿèùïþëÅïûÿûÏÿç̯þýÅŸ¿ùÿß—Ÿþé‹ßûýùÏ¿ÿËŸïÿð×ÿûù· +ÿ¿þéÕßþòï÷¿ÿíŸÿøÛû°âîïÇIJÂó³–Ò–œŸÏ´Ç¨Ú†çÙ’ü’âôÚï²ò‹µ°óêš²šóÁ±ÞÜ”¥¾¦Ž•Ñš¿ÅºüÓæ· +ÿÌŠ˜±Ðìë±½ñ²Ïì¦õ¿ÉÚ¤’å˙ڀ ÚŠÝ‹¿¤Òî̘é˪ÞûÚŽÇÎȉû—²¥˜¨›¬­ëÕÔ¿ŒÃ¼þ¤¤úížÎ¡ó­º½ +ÈÕðã¶‹ “¬‹Êû瀿”¾–¢ÜöáŸà´Ï “‹öñÏÐÐÈÌá‚È…ä‚øçë °¤Ý€™Ü€ÿ줄¦‹ “‹ŸàŸ­ÀôøäòÁùßßñ +Ù÷ÝìÿŸ“¡…À¦—À¿ðÛÌ̚¦µ§ëë÷¯‘ž‡„²©Ó¾÷ƒ‚õ›Šýóóó™ß’¼ù¦§¾ˆ¥ùàÆç™®ÝÎÉŠ–û¥ÿãòÅÚ»é +ÍõÁÎ¡ÓæµÓ¨Æ°•ßÅÖ¯®¢é¤í°öÁÊù§•—×䵦ƒë®ü¹Š‰øçÒò¹¬Â†ùíôê˜ØÍžÒü˜„””ͦè˜ö¶†Ýûðò…§× +ݱ·Þ¬š¥ýóæîƒÕÁÿöæÓ¾âÒžÚÊöøªâ¶ŸºžÝþžï¼àÄÖßͳ§Íë±Üú¹ø‘º€Ü«Ô‚®Ê벟õ™ÌÁ„úþÓžíΆ +³š¹î“ÚÕ¶üÿ—ý“ëÅûºÌ¶¤‹Œ­…îÉèÓÀƒÓžµª§Ì½¤†ÿˆš‡¿ŒûÎëôÞ¦¸òÌâÙ½›“ôÓã¦é¨è¬¸þó÷´þÖíªò +ÎÏ®”Ö˜ßÚيφ»¾å¹Øþ‚´ÿÌÌÓ¶º÷šþ©íó“û§í×úœŠÞ¦äðéãŒÂ¦ÃØ‚£Øè㕎Ûñæøðñ–³é×Õ÷Ÿ®Ü© Ë䘭 +ÛüÓÀóÏäþºž”´­ðÏýëÐü³äåÓÝùÖ¿§ÛះÂÿÿ¹×¦íúïÀǨچáŸöƒ‰…Žá¹ìÛ÷£Ùþ©Å®´–ßÝÉ瀢«òïÇÄ—å +­ÓäȯðÏ®íÅÉð¹«öçõÌß—Ýæº­É¾±›öþ¤ ë½¬šý„³þáûçâû—Œ²Ø£„–ƒÒªéñåÖÜõúŒÅƯ¶ÿ¦¥óéþ¥Û‚ÉËå +ÖÎË×¥•¦´»«Ç¿·‚Ÿ†“€¢¤ÆëҗٕƵÇÂ÷§Å²Ü’æêÅœ•ʤòÖí¶Î柮Υã‹ñûààÙãУį̢çÕŽ‘ùÃÚƒ‰©Ü +’€™Ü€ÿìÒ„¦‹ “‹à“Ÿ­‘ƒ³³¹Øö§üÓ…ðÿÏÖ þÙÿùÿÚ¿†Ëßñ¯Ö’‡î£€ÿúæàŸÿÿ³’ùñô™¨‡õÏÞ̶ã¡À¿ç +Ú俟•üóö¡Ž‹½ò–Œ¿Ý€üŸ¶®ØÙ¿û–µŠ–ÊïÓ…ó™Íù§‰ÁÙß„”¦ËÅîù×˶¡ ´…òÖÿڇݓ©§ÞçËìïŸá… +‹…¿׳žÿ°ÞªÓøëð´ô¨†±Òú¬³ÿä›á‹ò¾ÛÉ©©”ÿó½ä«¢ô¨»û§â½°±ÆµÚÅÒÔìÃ×§¯øÕ»ˆãÏÄ ¶ã½§°µÁ +®ÎÎø“«’¼û÷׬›çÿ´·ÃÁØÂ¢¯˜úļ­ÉÙÓ¬¿©¶â¼ôÄÁõ§»ëÖ¼ÿš¸‡ñþ¥êƒžÔÂó‚³ä÷ë’´ëÁ۶ؾ—¶ÌÿùÝ +ÐÂÆä™íúÏ¿´žã¥ç ž…ÿŒÊ ³®Š•ã¸Õ–‰­áœ°­£ÎŒãòèÓ öæÛ̉ÔÅë‡ÿòŠÇåÿ¤—¯­Ö©’­¤ãû§¶ï‰þéô÷Ë +ʽþ¹Ë’—øÔ§ß±Í”¯Ö®®£Í䯦ñ¡ŸÑåò©üóæ…òÿκ¥õÖ✀ðϪ³ü“ߓŖäƒÅœ–Þïíü¹œæþ¯è½ìãÔ—ù§– +Õ’íëó¡Ðþ¿ÏüÁÆœžé¶ó÷ƒçïÁØ÷Îñº‘ôÖí£ò´´ÙäüýŸˆ·Ó‡©Ýƒéè҉〰̔ùè¼Õш­ãýþϱ¡Åˆ–Ѧ­ç +áò®þ¿ªÀª¿ÁŽØ¶Ü™ýóœ¡Ðëç®Üçÿ´çôç–âç緓뜛؟œÿ䣜ûèµ³®Ÿß„èÿ¢ÿÈÙ™ôäÏñ†Øí¨žâ•äñü³ +µ²‡¶˜¯œö‹üÓ…ðÏÖ¤À຀²¹€ƒþÙšˆÌ—À¼¦—ì㟘†ÏÖƒõÿï¾€þœƒ‡ãú÷£œö¨íŸÈØØª›šÿÒÛËî÷‘¦õèÿÓ +¤…ÅýóåÆÂŠÐ‚œÿŒÓ¹ô†“™Ä½ºìð‡Û€ççüŸÐ¡ï؋ՒŠéúçÇžº˜›¡±Ê•¢Ó¿…ƒî¡Ôš£ªï퀅¾¶Çæ»ÿ„ê™”óÏ +¾ª÷íüŒ…ôöìǺÒ꨾Á¶—œÿ´é†¢â‹¸Èɰ™ÿªï‘Ö›þÔóðüŸ™Ý¾š»²þ©Ìð®ÄºÆÐŸ§Îæë¦õœÍÛÚäÒ¿óÓäñ +ÓÆ¼«Ýª£»¶ô¦õ†Õܹåÿç¢ËŒ¾žñ‡´ÞšÒ»ÿøçí¢Œ…üÖ©ÅãôÑÉÆ°Úÿö¨ííŸÉãäÀˆ÷ïÉÑîôêîœÃÿ“ö“ÃïÒ +à¿ùË‹ÊíàÉŸáÑÆÂãüÑÉ¿…ô̇þÏé‚óÿš»Í¢îŠÿþ¼ÄÄ¿“±°¸Ñ°ÿüÙæ¼Î¢Ÿ•þ™Ì“ÏœåŸâÚ¡Œ¨äêÖÍãóÿ +Øæ÷Ëë­©µñ›ÿ¦¥ÿþ¥©Ä¹Å¡Ã¸î⻾ŒÓê¶É¢úÿŒÄ¬ú²è¨‘§Î¹‹²†¦æˆéßö‹Ôܹÿ瘫­Å›“͢öÉßǵ΄ +誄ÿ‡ÓÊ·…€ÍüóçšÔ½ÓéþÏÖ”º¿ëó›­é˜ÏßÎó›ûëåÓ› šÎŸßìÍ©ä餦àðäòü³”µ˜®€Ì®¥€ÿ¶†‚Ó… +»É…ðÏÖÀò຀²¹ ü«ïï÷·×ðºê¸Š…ÿÿÇž¹»‡†”ŸùÈÍõÿìÍ’¿Ó»ãÈ­²’»ï¡ˆðϧ—ÔãŸëƼˆ½ñüÔû—’û +ˆŠÍ­’ÅÚŸÆñ‘ÖŽ¨«ýÑ“«¸ùØó¢À¯Ù„˾ÿ˜þý¼‚׹̕š™ÚÀÇüò—üÓÞ‚íàÄÍ¥°ðÏ›ö÷üûªèšÛžÅÝÍÿ€íÐÒ +œ¿ïŒÂ÷ÄÓìМꈺžõÚ™±í™öÏÓîÂÅñ¤¸Èɬ™ÿŠ£ÚÀ˜ŸƒÌôå­ç‚ùçªèŠÌËŽœ™Ää·Ä†Ýµó÷žýöÃÄÑÀƒ†Ùþ +•©Û¨±ÔŒãœõ¦ýÓŽÊÚáÏé¹™›ÎߤãËÄ‘µË’–‰«†ÄÝååþ©¾´œ•¾©‹Ø‡œ™¿ŸÁ™Ö©¶ÎƜؾéŸò–ίòúÿ”Û +³èÅ«±ØØÍ”Œ½Í¿Åú»†Ôþýçμ†½è¸‡‰û—êßõÏäåéÕÞ“üûÏíü©â´ëÇ÷ʬ·ÃÛåßÿòÉ…üœó¥öÙ£‹·Í˜Âó™´Å +¼ÝÜ«ÈãΟÌß·ýþóÒÓ¦ìîò½ª·š¿‹óŠÄ¹Š•¡Çø¶âó”©ÿ¤ëÛÑ—Á‰¸ÄÖ¡ä¯ß¥ÈΙ¢÷‹ôÎÛÎÄãÑùûàŠ†± +ªÒ¼±Ù¬âîÕ žÿ„û øšçÊ›ñÐõ¸ÿÞ…ðÏÖᘞÿö°Ïã•ÿº€ùÃÚ¢ƒ‰©Ü€™Ü¢€ÿ섦‹ú “‹Šøç—ñ¿ôמøì« +¦÷å—߹«à„Ì•÷†é®‚Èä‚ÝýÓœ²ÏøçΠ°¤Ý€™Üп“骽½ùÞÞÌ’›çË÷៻ãô¿¦ë®Èä‚Âßÿ½òûÆ„ûÊú +Ûó„ÿ˜ ···×¡ºšÿãÜր̮ܨ·þäþÉÿþÞÌ“øçâÓÀާׂ̾ª¯µö“õèõјí¶ê©¤ß”´ŠýèÀØ­“øØç +›’¿Öþùð²ÒŠùçО›ººœå‡çÜÄ¿ŠíΨڪøàÚöñÑŸûȼ֋ÆëÍô“¨à˜àŽÿò÷‚•²íéŸÏ³Î‡“Ñôü ©¸§µÏÉ¿ +•…é¾²”¥ý¼Æÿ“ÇúΨ½ÚªøýóÿŽý¹½½šï¥î§Š·™™ÁÆšéÿùç£ìψ²ˆöËÉÁØÖ¦šÁöˆÌ…’ƒÚÚÓÚÞÙçø§û• +¶‹ùçÇ÷Ðàï¹¶èþéø¤Ë讋®ÿ©Ã‘ÒöÀ‘‚Ó›œª§ðãŸØ“ ÑƱ󮇈´ž“å§ã¡½Ì‰áê ¨æú¦Ö§Ñ¿šû²‘Þóœª +Ú—õÏÎÕ¶Ííù»¿ðé—°©Àü’þ飅¬æœÕØÌÆËÇÒ¸Ò¿ù‹—Ãõ”’ï«“õˆ½šÐÁŒ±íˆ­±ÔÅ÷·ú½žÃå¢þùªÊô±ÄÿœºØ +忟åܮɢ¹ëßÞ©ó°ŸÅˆ–˜á¼±¼µûË¢ìÔŸçÿÜœíåÒÂÌçÙÐÁ¿£åÏüóս͎椹Ԓ™½÷ÏÚ­¬°þÜùù‡‰’›—ðì +›–üþ´¹ÿêÅó¸Þò²ÖÊδ韓¡æÎȵ÷š¼ŸÈ÷Ë´îÑå¢þÿ™”Ñ÷ŸÊøõ³›ŸŒ‰ˆÊÐÙ‘ÂŽ³üúÓĎ̤äß÷¿¤Åší¬õ +£çá–÷¡¾ŒâÓñõ²ÖʤðÙܢĴÓèÚÄ×ÔºØçýÃÃŽʥǹŸ‘áüɤ„î» þÿñãé¬Êš¾£ÕìØÚ©¼Ê´’ŒªŸòý§¸ +ñ†úŒ¬•‚ø”饞ծûúü¦ÿåýˆ¡ˆÆ ±…‹º “‹Šæÿ¼‡ë…ÒµˆÌ—€À¦— ÿòë °Ý€™Ü€‘ÿ섦‹ Í“‹öñÏÌä +•ëÿ±™‹ ‰“‹Êû§²–éÖ†‚Ó…Éä…ÅýóîÆÂɜᪿ‹—ÌÆâ“ÀÌä’µ£è¬ÇžòŸ¿¶ê–•²‰‡ýÚ®ùëåŸäû傽ªŽÒ¿ +¿ÿ„í²–é¿×ž¬¾’ÞÓøÝ„žùÅÑ€ÅÆ£Ýª¥°Ò¦½ýóãÖùÀޮأê¨çŸÔ¼—Øç¬Ì¤á¤‹ìøÏþ‘ÏðÔÑØšØàÞ˜… +á¯®Š—µöé—÷¶ûÜþž›òøç²­ÌÚ©¤˜­ÆÚ†ö’áêü Ý®ÿêÝ«ÜÖ¿•©¿ºˆè‰¬áé¬éÒáý‚¢öš­çøé™ØÄö☴êÑ– +÷ôœêóæãŸ…Éú™æÅ“﫱ג£¯éæí÷¼‡Ê»øç×ÊŒ…ÚËúÿõä­Ñ¿þÞÖ©íŸÉã²ÿ²”ëÍÑâûÏÃî¨ÉãДœÿ죽û¬‘Œ +ÜÇöðÏ°ÑÆæÂøç¦ìûźÚÒˆÿÜŠ’•ßÿÚÁ—³Æ×ÕÖÒºÀ¿×ÁþþĬôÍÆôÂþíÛïŸÑ‚­“ù„﹓‚«¿Ø‹ù—µ·¾ÈèÿÊÈÚ +¦É‰ï¿íá¦ÆÛÄíÌîÖß¾¥¹î‹Ýü³Æ©ù÷¯¥ºÒֶꤒßå™Ú•Ý»…‰îß²®ÜÜÖ鮩Ý圑µå’Â÷¯ÍÆ—½Ñ¢Æ—ÖÁ¾ +ŸÂÙÔ®ýÿ»üåÈ’’È÷ð¸üßêÚ»í—ÁÙ®€Ì®ÿÀó›ðÏ€À­¬Èä‚äˆé¤¦ðäÌòü³µ˜¢®€Ì®˜üó”î‰ðÏ· ° +äÝ€™ÜýóŸÛï¼÷ÍïýÛ§·Á­ôËûоðÏï °Ý’€™Ü°øçlýùè—Ÿüßþâ¥Ø­ïïÕ—ŽÝ–øç͵¿ŸµÆƒÿ±É™Ç “‹†ÿ +ïìÇ–½½þà¿§ŸÛå釟©ô½çù§òÿ»Ö†˜˜©¶² “‹†ÿ¼³¹Ã—¯ßûÉç¼öùöìÃÁ¶ŽÃüŸ§ŽÎ‰œ³…—èüƒž˜‹Ó´Ò +²Æã·Ñ´µ›ÖË伜쇽™ÄÿìëßÿÕúۻܜ¶ÛÔ¿»ò¤ÏäþñϰÖóâùáݠ¼°çÉ„¤žÛÌïÄ”·ç³¡Ìüåäú»Èä쟟ö +ååëßøû¨Ä¨’Ûæù§•ûŠÁþÏÚÎǯÿ´ÂÛéßÌþᢉ¤ÛÓÜþþÒâËØ¨µÔÔ€û°ú•ÌÉîÇŠ‹‘¬Üµ×Óñê®éü¬ÊÈ”¦¢ +ÍæÌçù¾Ðÿ¦üòÁïú«œàÊߟŠí™í“ŸæÔÝèï¶ÝÚŽ™ã„öÿùüí†ééÝœšó¬†„ÀÜ¡¹“¨Êâ¢Æ–ùòµ¥‹Òº—Ì£¿‹õ²¥„ +µ¼‘ÂéÎóýß þù½÷¿é¼Ë´Ì¤Þ—åËþ¹¬ÿ§ïœÝŒµÚ¢ðò· ¶—ü׉Ӻ舘°ë×§éµ ¸……ūۭµŸÉùÙ”’ÉôÔ +îÓžçû°öϳ‡’íóÁ¼Î¯íËü³¬ÊÓÿÉ›çùçæžöæ¶—ü×ÝÓúç•–˜åËä‚ÿ–¢œ´ÌöûéÎóý¯ þùÝŸÿºí–èž´ñÉï +ÐÇÄô»ÿç˜ãé›øç²º…¥¯µ¾ä£éٽ󲯑ÿ˜³È–ɼÎÚú”ûïèŸ¾Ž‰ü¬¶”©äœßùóçû°öåÏßÑòý–µþ™”üû +§—’–¤È¸¯µ·ÌÏœúÒ–»»Æ»õ®‹Ñ–š°ƒóÒ‹¦Ž°Ú‚ٚ嘜ëµþíü¬Öˤ¾Ô­¢ œî¼ß‡öúÿçŸþÂŒ®óïÿŒÑ” +ŒÒ’™Ž¢çŸêæí§ïÛÁ§È”Ð’£í¬Óñž’û¹ò³ØîǦ¸Ù¹§æÛÚ¾ÿô£§ŸýÜ®‹ž¿Ðš‡­Ç‚ÿï䬔騕½úœùÙìùüæ +ö©Ïóý Ï¿ï÷öذńèËýû¿ôñó»ï ž˜Â…»É…ȿԚ€ˆÌ—À¦— Ñÿ§€€ìŒ÷àÏ”””””Ìý²ààŠ‚‚‚ÿ‚‚‚‚‚‚² +Û²ü¿£Îàó +] +::^ [s0; Multi`-column list for displaying file`-names (derived from +ColumnList).] +:: [s0; [^topic`:`/`/CtrlLib`/src`/FileSel`$en`-us^ FileSel]] +::= [s0;= +@@image:946&876 +ŠƒÔ²€€‚Îþ€€€€ø—œí‰¸Åƒö»°¬ºŒþ¢Žâ‚Ž¨ê®¸¦ ¢€‘‚ì¡’–ˆÑ‚ˆû¢ÛÆÜ²¦ŽúÍõœÆÑõ‡ç†Ñ”¨ƒ +ò°Î¢±¢òɤŒ’‘ ²Ê¤‚¡‹¬¡¦ðó¾ó÷ÜÜ„„®‰ÁúªÏÛ§ÎíÝýú¹þÕÝïû¼Ï¹þõª««ûô¿åë÷êÖ÷×Ùƒ²…쑜Íß +ö¶éÔ•Ôщ¢ÏľåõÓ³Êû£³×ÇŸë›æŒ±×É—±ŽÆóÆ¢žÅçŽÄ‰ó§êüÎÆØËÃõÞùö°ìåŽÖÓÞŽÎçž…ˆß§µ’ƒ +ù„ýÛÈ™¾Ä¡º¡¿¶ÍÄÎï‡âü“Æ£ãÖí釭·îÃîž—¿»×ìõ¯î÷×äµìÿ“û··éÜȦÿƒ™üôòäͱ§Þ¦œû˜ï™ÍŠ +§À¾Ù’²¸ÛãîúÙ뭆߉¡¿šœ£û²Ý”¡Ô”¨ÜûÞ½‹â·šü¿ªø÷»ïû„‚÷·«ŸÙ‹ëÓÿ¤¥¹þâúÊìÊà·µÿÓË”ÅÌâ +ô¦ŒÃð覬ôã–ß²„²¾Ð¨Ã¢·Í”ßвìò³–Òﺵ÷ÅêèœíåÑÑ­ŽðôÁËÿæöÅç®õ™ôéÆêèòÞÍ̔û߻æý÷¹»©£ +îϽ¸ûõ„šË¥é«Ï䉖ë¹ç§ÿÈ»Íɬ¤ŒÃöϺ‡ú°ïæñáÐðãäãžôå£ÎÝ®ýþ÷«žÝýÒç¦Ýá°½ºÿëô±ÿÆëÇ·Ò·Í +œ‹Æ›¾÷¬êþ¥¹³Æ›ƒÜ•´‡ú¬ÑÞñ¿‹¦®í±Î÷ú²èãÏ·¨¼ç¨ºè„ñõ˜’˜¹æ°ÁµñÒºËÜ—¾‚ƒÃ°Ü‘ß¼ž–û“®œ +·Ýí¼‘êøº×¹ƒ±ç´öÍ¡ÊüæúØ”³û©§ÍØ›«²¶¾ÞƯ͟Ñð¾ÿÉ´‰ÿãðÎù ôÞÊÙû暦â…üò‚·ý‰Ý­­óÌË·Å +ŒåÄàþú„‘†á§Ó´Ê楘ÕкÁ׉©Æò³ØÒÒÒºŸ³ªšº´éÔŠÞŠÜê¿»ÿ­™øàÿÆ÷¬¶˜ØË­ñ¶‹Î¡…Øó‰„ýæßˆ°Œ +¯ÃÁ™÷àÅŽ÷í̾½Î轟즡±—ȼÊÝöå§÷¸ÝªÁÝÉÿ“ÿöÐÿŽÞ¼°îæï›þÃÇÞÀþ­û¹ï…äÄŽµîº›ê£þ®ï‡Ãþ˜Ÿ +ÒѰ¿æ¨ØúÏó˜Í죽¼ÜŠÞë×î·üÚ§Æ®¿à·è“³†¯œ±ÊðÙÉý—þ¨¿ÿâãûÏŸÆ¿½áÜ£¨û¾´úØì³ßÓ»³ã­ë¿ü†• +Ôçž¾ùõªŠÝߘ¼Œ½‡ÿÞ¼¦î˾íÿÿÃøíÔ¥»ÀýØæïÌׯĨÎà‹ÇÛ™ºóÚ»ç귆ŒÃö÷¯°ÇÖñÂߣѣÇÀËÍû°ã +¸·þöó÷ÿé±ËÿüãüÛ·Öì¼ñ³£ß¾ööô‹×Œüõ¬å£Ÿ¿èøó±çÿîÎðç¸æÝ÷ÑÁë çŽÜñòÿ…ÿÇôΚ²â„Þ·þ×ô÷ŒŒ +µîìöûßñÛÿ•½ñè„Øéõ³ÂÈËÌÆ£™ÙÐóëÁλÎÐõŽž¬²õ×¹ƒ«îºôäàÕÍÞŠîï¦ÇìùëžË·Üñ­ç–”þûüß¾²ö +ÙÓßíüÚõ£Ø·Ü³òÅ«†×ÿ凜¿£×¸ß¸¼ï¼áÏõÏžœûÆÀ•ó§ößüÜúÙ‰ïßõÊÛ—œùöçôݘ½Ô›”½ÿþÛ–û–©ÙÕüø +‹žüѵᅯ½âå¾øÞÊŸ¶ßÛõ±À°ŒçñéƒÎíౡöƒ—½ÃŸ¾‡Ò÷óóí·îºù¯Ü·þõ“£ßºêòä‹—Œÿ嫜¡ÏÍžšû +‹Ö൧ܱÖýàŠÓâшö‹ŽÙð¸Ÿ½üÕ©‡®æüßþ±û߷ت¶ãï›—‚ɽ°ŒÃí¶³„÷èî™ã·ýþîì럧àÝÓ±ô×ñÎõ³ +³‡®¹óàŠ™¯ý—œÐÿþ‡ì·üüȳ· ùÛ–ý¨ïïÖä§ÏüÏïÆ¾òŽŸù€¯ž½¯ýÅܓоêÕü„íÒïÓÍ·ØËé“úò«Æîøø +º‡»Ô·àáÆïú̦ÆàŽƒßæýîௌö÷æÓáͨš«°÷ðÊ™›½¿üíÆ¯þ…ÏíñòÛ˜šà޽±ÿüã©ø±û¾ú¸Ïï»ûãÏŸñ®ß +ŸÍб—¹ÐçöÒœã›÷§¯Õ¸­âö°ûë÷îÚöâÒüõÿØëÝÿöÿÒý¿´ð§ÎíÚò‡×Þø·”ÄÞ˜¿­¹Ò¨€ß˜†ƒ·Û™½ƒ—ž°ò +½Å«â¡†ÿûçé𼹜³ý´—ž×ÿÞÔ÷缯…Þ¼ý¥ï桽§¿±ã÷³Žýч¼ÞŸ³÷ˆÕ±þéß¶¢­ßË‘ÙûúãÓ±ûÉǾûÇöÚþ +µ”óþóï·üîë÷‹ÇŽ™·ß™¾ýî¿­ßóýÜñï÷¼š±Ñ±«ß˜¹†«ã‘½ÓÛ­ìþ«‹†¿¼ÿÑüúé¸Ýû–‡í†óõì÷Æ›ú +õ¦ŸÜ·ãÞù™ïûôÔ·Ý÷ù×µÙûÞýÕúöÎ싱½Éº½çŽ­íÙÅËӞ§­Üãâñê½úöÝÓ›öúÓߨûÙ¦ÖæŽÇ·™¯úÝ +ÓóñãÓçì¤ßëÞò‹íìÑâ­÷¾—¿È܈°ýûÇûèꯚ¦îÝù‡›ƒ®šã‹à˜™†ý´ïýΟäℎûÞÑ÷ßžßÌðŸÙ󆮛½¸ +÷Ì«¾¢½ªÉÑÿúÛúÏÖûã†ÓÿüןöÈãý§œòã÷¿¦íÅÞÖõ½ô¿²ãöÒˆÓÌ“ýú›ÞÑæœŒ—Œ³ú¨û¥Ù“ÍûÞþ¬ +ßËÙû ›˜‡‹ÙÒ«ÿò‘ÍÖü玧èÚ·ü¬úަ¯ø›¥§Ìú¾Íü’ûẶ‰„«óüæ“ÿü“¦î£‰ß¼Ô¿ûé´õݞ̶®þîúɌà +ïùô히ٶ»ûýÃל¾¾üÝÙßš½—ôɳ‡¯½£ŽþÂâò“Û㵿ç¿ãàÌ·â̼øàÆüƒ³ÞÐ÷‘ƒìž¿ù Ÿ¿÷øÕ±û§®Ž +þü²Ùõ¥ýÞßý¾ÖÆÞ‰ð²Æçïí±·±½ŽçïÜ“–ËÒ»ßðŒÍŒˆïþî©¿æò½Û¸óÚƒÍÛÌÉ¿ŠÎé²úÒéϳôÞÞï½µûÓÖà +ð°Œë½ë™–¢§ð›¦œµúåà“Ó‡þ⣬¡Ïþôø¯äæÍ½ãðêä™Ò¿÷è֛Ӈθèð£¯îŸœñú§¾óþñ“Þÿ“ÃüÞ‘³÷¨¾è +¨Þ˜½ïü¼›î÷Òö¾áÕÌŒäÊÞٓ줽¿ž’ííÈÖ“¤éÓöî–ùåóìÌÁæŸï…ϱôËÞÿ•¢ˆæÆŸÐïáÜÊÃðݪýζØë·ˆ +—¼…‚ëýéï¿ï¿øøÁ«¾ò©»´÷ÌÁðëÏï¡÷Ò©Þ¬ñÇíÏŒŸÞõÐðÌ×ÍÿØ¿ÿ”ýŸøŸÐ«îšüÿâöþð¸ºöýûŒß÷­Ùû +úçÿœ³—¾íÙ»ÊÀ›³÷·’ç篎ÇûÆÏ™õýŠÞêô“ïÚÉßþæ¿ÿú¥‡ÿ³ñã°§³ëâÒž´ï÷Ц˜ïíõûÛÓ𙎥皅ḕ… +ˆ‚Óðõοä·Ãœ©ƒ—Ÿ´òøõdž¯™Ùâ‚šºô×èá‹Ú÷¹ŒýÌüÍð©¯êü¿ñ¿ÕǼüó§ïü铽ÔÏ´÷ËÙË»Àȱû›ã›Œ¼ +Û´©Þòü«®×ýæçžß¶¼âà÷³Öîþ¹Õ‹Ë׿¸é½Û®Ê̽§­çÚóêÝœ¡—¼ÿ¿¾ÜöÝÿÖÝú’ƒ¾ºïí‡ñúú¯ýâÿÒïíÜ´í +ÖßþÙ‹Ñ…ÏžÓ·úºí阕†áïü®àΕàÙñ¿ûÏÿ·øÀ¾óÞ×ÿ£Ñ‡†®¿™ãÆöðŠÝþëÁ¡ËŽš¾èû½£óÞÙÂﲩûŽž¿Ï“ +¶ÇýéÏß¾ç³ÌÞ“·Ç˜å÷øòÀ‹½Ó‹‡â‡†ø÷ó¿ð¹¶Îð¦éÏíÛ¶òˆÕ³óÃ対úý­·ÓÀ²ß¾àÏ™ëžÞÄß¿’ý÷¨åéžÇ +ÙÜ•ÝúâßΞÿŠöãŃڻÞöäü½Žõú¹Åø«¯Û¯ž†áš»ºà֗쟙„÷µå¡øöŸ¨¸ž¼ºöÿõ§¿ë“ùÇÒüîÿ›à—ž· +¢øé‡‡¯™ºŠôё×̙޹÷ÐÑÙï¢íù»î¹ýä¤Ù—œû’§ÞÛ·ÇÏÞ²Û“ï½Ô”½ÇŒÆèÏØ´ÇœúâòßҼ眱—÷—öõ©÷¼ +–ðãÞïûŽ›î½Øû½‹öºäæûüëÁ×½­È‘º÷›¿žÓƒ÷ƒ¿›ôõÔŸ÷»²öžÇÀ¿È‘¯ºøß뻟¿‰å²òšÔ´Œ×Ù´¡»‚ûíŽäó +Ì›—¼ŽþåïÍôÃÖŸµùÃÅǿпçêÿùÓû眵°‘烃óÞ¿øßÞ”¡¿ãøéìÃÆÎúÃÈ÷Ì×ÐÎïðñ²ÿÚ¿õÇ×ÛíÇïž”³ +›÷ÔíÍ®¯åÿïäÿ‰Ùûڗ圽⧷†ÿïÜ´‹»çÞ§›¿ÂÆþ£¿™³·õãÓÏ×¶ÜõÓš†ÄḋՂÓâÍ­þÿËþÿÜÿë×úÖ§Î +®ø÷Ó³Žë½—ûðÞÙ“û¿´ºùýÇßÕ·çëÐþ³éŸ‡ù†Óß³ð¹ÒþƒÇíÓ¿Æí¯Þ£öÛù•îèÁ›£¦û°™þ©ûÙ˜Ãð»û™þÙõµ +޽¯ÞÅÆ˜âõðšØË±¬Åί웻þ²ÃìðØ–ð»°é©Åå§¿õé‘ýû­öºåÇüÄÖŸ×øæå§¼éÅщïÜùÂÁ«Ä¾üàãŸþÝ +øãŸúÕãÇîï÷ØÔ—½þÍ—¼öÞ¿ÙùåžÉ¿º´úáíÑïˆÙûú³ŽíìÝïë¢ûÆûù­ì岯ëö„·ÙЊޮŸœ±˜†áŒÖ‡ +쟮›¿ýüñ¸•÷ŸÿÖÿø¹û¾‹ß³ï⎩¯¼Å㽯ظ忼ŸÍÙïÎɯ»ÿéûö¹ëÝö¯ýÙ»÷þéý¡ûþô­»ÿÍì­“îüÓ´ +ëðè·Œ¾ºüƒ²¯¿ãàﯸç¯ûÝý‚çªâÇà盄‚æ¾ú—³›¿–Ìö™õ™áßÜý¡³˜Ž½Èí×ÝâËíÖûÌÙñÙ··Ó‘”š˜ÛÅÁ +³»ÇéÛÛÆûæ¥öÎè̤ßÏüù‰Öƒî­àŸÊ–ÿ…þŠ“®”Í÷ø»âê­ì¡»þ¹ù˜ÖÝõ³‚ŒÖüîóñèšÁ÷¶´ï°»û—¹èœ±éâ +óÖ³ñ–½²–„÷éÛ¢Ó·ãǯ쩟à•ʬ±·ÆïïüÕËÁÇ­ŸôüóŠÝ¾œ›ÿÞú±û©äø×¾çöƈ泊·«¿¯¡Îº†÷ðݧôÂÞ +Ë™’𺡴Ƿ­§£žºéáéëšïŽ°Ë¡¯Ç¾™ÏûˆÕÍéœØ¬Üº”´Úöžá·¼æïƒ¿œ•ÀÚ³‚±ùùôáÅØÃ³à˜Þù’쥋Œ +üºû¦˜Ýçð³šåû¾æÕæ×Žï½ëÝØ©ÈꘆḠ Ç§½“µ¦–ºèŽè¿ÿ€Øûᘆ˱ز‹Ã°Ü¾ÁÞŽ˜†áòºûϯýʰŒÃ +´Ú˸øâчÔ×®»ïéïïàñ´­Ì×ɾœîÕÙ›öŽçöˆ‚ê ‰½”Û„ÔóæÞðä÷é×íÿø…‰åžúÖç¯ù̑ÃÏîøîÊË–õÁÞˆ‚ +ǂ֒µÛî¹Ï»ÏÅ´¤ÑØ´Ë»¢”žÔ²¾¼òýÿ°ý€Ûýƒ£­ù¿”ò“ú…»‹²¬‹ö”´˜ÔÝÌË’Ã…½ËÿûíéµÒøºïñ¦ +Ó›¿Áû°´á‘¸î”éÖ…û°¡ˆŠÚ”¨ù¯ž÷±‰½ûøŸþ¡íµîÚ©µ«ê×®ƒî§½õ›ô•Òàà¯ßוŮšÏàëæÈÞñŸÏ¥ü Ù«þ® +†ùóæÉ˾ÿøàñññ¼¶à¥îÑÌäÑÒÕ¥ËéÎÒúèëëºõëè΢¢Å‹øŽÍ³â±—Ýö™ÍÙ÷¡ßý—¬Ø ÖþòüñÇÓ¥ôöÕʧ•²ªø +¼¢íåâçâ¢õù½¢¢ÐÙ¿ÖÿþïÿžýªüªÙ³æ±ƒ„Îàžº¦û“¬ó½“ªªÊ“Ôß¾±æâ‹ÄûÉã ËµÓלϿ¯úáîæ‹ì¥íç +å¶Ø’Ö©½òâõóåïÞ¼ÍÁŽë­û£‡™ÿÖ¢‰ùóç«ßø¥ÈÒª‹©òí蔀´¶”Ї†ÖšÃßñ¥œÊŒš¦ ÕЂ–ᙂ„ÿ¾Ò´¸è°Ã +ʎ㫲Åêåï’Ø¶èÞ‘üÑŽÞ‘Ñèàëóô•ÿ´ú½Ã·¾€ˆµ Žôè…û­¢Äý͘ã›ÝœÈÞ—ŸíØñœÄÞ©¢´¬Œ·ÝÈßÅõ‹âïÆþ +Ê–ÁÞ—Ó÷ñ³âÅê±ñ´×Û“í҂±±ÁÑÜÇÂý·Ó›©Ý¢¶²žÞµÕ·È˜ÐÈùȦ¨ÈÉŠ¨‹˜žÙŽŽëª™Ž‹ß¥Ê¿¾ö×Ù¢ +ѵòííìÓçÞõôòª‡‚“íÿÔøŽ’Ë‚žÖýË¿šÉû¯ÀݺÛ׃ÒÛ×ëÓãí¨¹“¬çÌÅï‰úУ£ÌÓççÌãéµÇ¡‹ß›È‰¸ª +ðûõ¢“ŽÓÛ‡ŸÝÆóÊ㯮˰½á¹âÛúµÇÒ˜§¥úþٻتžžÆžËùÏô­……¶Äµï£•Û¹ÚÐ´Ñ¥Ôæ¢ê·¨¥è£æ”ˆåýÉí–Ù +±óäðû¨ì–­ö¯±Ûç±ó‡µèªšãòŽÝÀÅêáŸÄø¼ âå¢Ä¯å€œÞÞõðÞλ¸Ÿ¼¤«ë–ýŸÁа’ê·î¿…øí–ã›ø‘ ¦ +êÊÔßÿÎâ–™½ÕóܑƜ¢ö¼ÙÂÒòƒšöÚ ¨½‘À²íë–ÿê´ýÞ—äÁŽÞµ˜´¨Õáèí™—öÆôè©õÄ™Ù«Š©÷Ùڽ˦ö +Ÿ‹ÕÃÇ›Åãô±½äí–‘ôÙ‹¢ÈéٚöÈÄ‘ÄùÅ»¸Í–©•‹âôƒŽôµ÷£—è˽â§÷þü£ùÚ˜éæîÐÝû€­µ¹žÆ‰¦’õ–¥ê +Ƀ«‡™¹ì¥ò´³£û¹Ò°ù—èÙÍÁËêËÛ²ù““û§Û®Ž¸­ˆöçŠÒ³ª’½¶™û½ªšØð’߯֝„»«„ûÙç­’º×¦•ùœÕÐ +ó÷‡ÕèúøÒ‡‘Ñîž—§óé¾Ç¯Çúè¾ÛÑÿøåÂõ±ƒè¿—ÛºöÿÌÁ²­ÄÕó¸·é°÷ö•ýÜœ¹ÌâÄ¢—ö¶Þ£ñµãö²ú¸û +ÍÇ·ÒÄ÷Ù´ëßÑÛö²ë¶í¬Ï¦žÿìÛ¸ŠöƒÙœÅ–±ÉЕٚ¿Ý…ÑæêÑ·èïúÚ­²Íëâì•õ»ÅËá¬Çœ¨à½ÿÖ³òÒ€€ +í—ú­ïޱߔ­ÈŽŒÚ¹‹¸óœãÜù½½ÜêáÇŠ•êÐÇöˆîÌ–ï¡öëí´ÒíÚ›–ÚËΙº‹’õñУ›ÄóðÊùÂÅŽ¹íù‘ +Õ½ã£ÃÔųà×ÍÇŽ¸í ú𤃯‰½Œ­®ö™ÎÿÖ’ÁùÍŽâËáþý´õ±†ÏÆÚÜŦÃÇàÕ±«¼¼ÓÝ¢¶ö¡¦Õ­ŠÿéÅóž¦ø›˜Û +è–ýå‘¯ÚæÈפÉ÷˜ÿ©ûÀÇ–Õʾ­äÉñèåÒŽ­„¡µêü®ñ¨ûϾ ú÷¬ø¯ïýŠçÕò½âðŽÌµì•¥®Åµ¶©­¨Ñïß¶Þ +ü²…¯š™Š½Ü“‡¿íµ³ö»²µÆ†û©‹œâ¯—ÊäÈáôæâŽö‘¶Œü‹û‰îôÖžð¹ÊÛç‘›§ª¤òºúˆÂýµÅ‰úË¥½ø®ö篢 +¹±÷è ºˆŸö–ï´ì­ß’èõÙ„ö®ۊǜ–¬ö±™Ë½æ”“ö›ÿØ›¼ÖÀ†§™©ó篩›Ù¬œõí•ûÂÞæˆ‚ŠÖüÙ»’•®¶°·ï +ÌàäíšÕ®ÿºšÓâßûÞ­Œ¢û麮ë±ýóõƒî÷‚½ø„åœÇŒòÊóêÙŸýèÉÿ£®øµ£¿ãþ­ïûöõŸ¤Áގׅûœ¡ˆª•Ô¹¤ +÷Ù¼Ž·ÝüÜÛïýæÂŸÌÇ·˜öÚ©¼¯Ï¼þ›ÔìŽÉ‡Ž×­°ûá˜ó†µ–ÙñÄ£¤Žö¿Éùɺû°®óŸÓÞþ«…çŽç¶°ó¹Ó»Þ·ªì +…á˜ö´¥¡Ÿíˆº÷œéáʎϬëêö©Â°Œ—ï°—å†á¸üËìÝÆûò“ௌÃÂðцûᘆéË÷ÚööýÂ䥌ÃðÀΑŸ½éﳃ ˆ +Ϫ£ÀÞšêá¢æ÷û— äø¡ÌÁˆ†©ƒ˜Ñ…‚öÖÒèÁÔÁˆáŠÂœ³½ßÝøßßþ…ûîˈƒÝÊÇË”ÃÞ骉Àîœ˜È£Ë£ÎÆ¼ü‘¶Ì +ª©¸ûÔ´Ô­ê±öÒ¨Ò¯é̜ۼÕÛŒïæÓ¥¬ØÑìõÕÎÙ×ÐLJÜÒÉÛ¨Û¦óŸøñ©„¬‹Ä‚ûƒã¯ííÓÒ´þòŘÇÝ¬ÚÆË– +‰ÀÞ—™¾Ñ®ÌŸôÐÊíÔ†”¼ÍÔ”ÉîÄ­ê—Ë„“÷ä³îöÍ⚇‘½Úãë¿ôÛ¹ÄÔÜÕºˆù±·†éæ­÷´­ŸµûݺÕÎŒ¹¤ðþïâ +‘Ñ·†šì­ÎÒê£îž¥‰Ø·Æ¼à¯ö€±º´çÇö¦ª»Ÿ¶äВ¤¤þŸªéÕÚã‡ëÈÕ¬±•÷½¸Žâì¥éß°¼²¢úúœù¬ÒΓҥ¹ +æ¤ÿú†ß…ÿǬ˜øËÛäâ釚£á—ÁÆãÇÇÍ¿®¦­½„¥¤ßºÒæ©ÖÁÊ£î÷·ñâŬ“ýð¾Ý޽ö¯Ë›µ™ëóÅ×µ›ß±†©°é« +í»ÉÄØ‰ŸÇݘӭ©áêñ±ØÝÝúìÒŒ‘›†ÚØÜè«íÌ…õ›¯üÝ¿’…ª½¯ÃÜüǺÅÌöïÙËÿÛ‘ýùà£ÛÄÀ» ª¡ŽßíÅÚ +ت቞Éþð¢Ñ›Ù‡éØë¬Þ¤í§¦Šêóն쯽ŸØƒ½Œ°ÈªÎ»ð¸Ûʾ¯æ ¾µ“ØÒéƒûÌÛ÷µ•‹®ªÄö®Ú¶åĬýȽÏ÷ +›–½Ò›Ò¶´æË¬³Ôâ©°Ìú²±—÷úí‹ÊÞÎÅœ®Óü½Ä‰Ž©í‹øÕ™öÒ–ÃÙÈë©ß¦Êà¯à¶ÇÛÃÇ«ëÝÓ•“ÈÞû—ÈŽÒóäÊéê +¿ÎØ»×äÕà€ïµäâ¯éŸ’óˆßõ‡¥ßö¦Ö£¾õéÓûÕãï”á¼Û—¤‰Š¶†°ËפööŽˆ°ðà–óÒ±÷ÀòØËÆ’–êµÄáè¸æÀ +ñËë«á‰ùóçç³á…ÚÆ”Üه鯵‰ø í’¸Êñ­­î÷öбóÜ–°©Çؤ§£ðÆœ²Œ÷Êß‚ÛÚ®ÇÞ±•ö–éÓ•“ÈÞ½Ÿ¯é§¦˜å +̉îžã­ûÝ¿¯µÑ’Òµ¶„Þ¾ñÚ›ÝÑ—½ÖƳ렻Ìû¥»ßã¦å¼ÈÜÒÆµµ÷§­ÁÒ¦½˜˜“ïÍɲÕùè½æ¦¯¶ì²±åïëÉÞ +Öö—Èާߺ¦¯áøÈ甥‘³Ž²´êÈ¢üðŽúùüÇùÄå¼ÛÑùø—­ñþÞûìŸùÊîô÷÷ºöÊÞÒþÍëÔҹLJ악þ犹êÉÞº +úŹЉϵýÖæå“ö§û® ­ƒû¡¿…Éêڂ”„Ä¡ùœ¨ÚéÏÖõ‹ÇšÏ—¦›ýÏ쭜ШՃ”„Šœýnj쭜Ш±ƒÐ«Ì¯Þ§ +óö„ÆÏŽÝÔ׶ׯ–„á„’Õàü½àïÕå„ö†¡äö›êÀ‹ö–¬¿›û½Ý¹¬†¥ŽŠ×Ú‚“ЇËÐð¶£›£‚÷ëˆÜùɪðþÞ¬÷ +Û÷Úò ®ˆó÷†¡±Ì⬴Ď·• à…¤ûË—´ÿïý‘ËǛӖ¯ÔÚ¶ÔøŽø ñÔņûŸù‡ª´ûœÜî°“Ë÷¼ÙºôéÎýæÃÉ¢ÿæ +ÿïµËýë»’ÏÀ‘ú½ªûőצø…öêÛ‹™ýÀå›Óû³ÙÊÄ̼¿·¿‘½åÜßÛˆîÓâñÍ“¿èݧ¹ÊŸùûíÎò¯¡’ñ—ٚ˔§ÑÄÌÎ +Î݉½¼ªí¦¡¤òâªÔ•׌ÍÝ–øÜÛ¢ÒûÇüý¦øÑ…¢Å‡ö˜»Ã›¤§ÿ눽˜çåÙä‚“öêÕæü•½ê‹îƒÆûèùíÚÍ«± +ÉÖ•¦¡¼¾¬•ÚïÕŸÀŽÈÞ³û‰’޵ª¶í¾˜¢’˜ð뢜ÞÒþï—”¸´‚ª†ûó÷Ý÷ßú–Ò­•Í’ÃàËÂ¥¼ôéÒÖÆ²Îó¯Ú±á¯ +ÎÖžÌßë鹤¦ ¤©©§Ý¶¸ì•Äö®é‚Ȅ𫧽ûÌÍ„–ÔÁÌÛÌ×ハ–óë«¡ê°×ìôóΟ¯ßäվ¨žÔ¤ýÚ„Ó–¨›¼™ +«¿·ãö’ÝÙË¡”Ô÷ÐΫ°¹ÞÉ寪–’ò­ãŽÄ¹¨áꪙÖェ ‰øçª†´ûÉãúÙ¼ùóóØÄäÒäÕ¼Ú°·£¼™Ñ¿·‹ûµµ´ +įÒ÷зÇùÞ—ÈÄÍÙËüŠè¯µ‰µÕ½…©šìåýøÞ¾¶»ï¾ûœ’…’–™ûÕµ´âÂÞ­º²òÿ¯˜¦©’´ñìõ«©§£ÀÇœÞèœÂ† +ÆÞ–Æ¡¬ìصê©ÉÈåñÁÞ—Õƒ½ãËã㌭Ñ㰞ך˜—ɲó³ï‚…‹Øˆ±½¥«ËÄ„½Ú´õåþÞ¢´Ó¶—öŠÒ봳е¶©Ó +÷Ë»¾­ä¦¼‰Ç̽¤¤ý̵Õüñ­ØÛÕ©ööíþÞé”õ²äÖÐõœ¿Š×ý¨žÿ¸í»¿—ËÓïí¨ äÕŠñ×ä¡Öû‰ÒïÉþžý¸‹ìµ¨žÏ +–”‡ÎÞËøï¸ÚÕ¸ÊåËÏ¡öÂþŠóé„Ö¡õ™âõއª®îžÄ„ö™î‚ûƒöتžýÕß„ö©î‚ûƒÂ”Ë„ÀÞÈÝèÔÀÁˆáŠÂþ² +Ç·œËêÐÚ•¥óƒ¸ÐƉááêñÖ—÷¸žæª½ûãþÞ…ªˆìÂ’ûëÍ·à·Œö–‡¯¢Ø»ííô»Àí³·üûÍ̺®³ÖóÿæÂÞĈæ +ß®û×·®äÆ÷ß’û—»üÈ䯶•Ùƒ’ïÌ«‚—óùÉÞÒîü½À¤ƒû뵪¢—ÌçÐúˆÍÍÞëåÒœ‹à¯ÂûÉŠ„Óå¯Êå¨ÁËÞµí +£ÈÕÜâÚÛ¸È×ö’ÔÏ€”÷¶ÿ¯ýåÞóï°‡…ù…—Ýö™û˓Ȭ‡óÿ²©ì³í±ØÝÝÒ°÷ÅãϦ´¢Þø¥òÚš´å›Ö㥕öü +°ùá—éÙ«­›™ÈÞ¢„ü€úêáñ­íÄÈ’ãÍÚŸ¢Ží”ǹÕô ªø†û»›¿—áÏ”ÏÊ˪äàêÝÐǯæþÚåʸæ í§Ž–ƪùª‡¬ +¢µ¨Ûñ«©ï‰ì©Çþ¯±¼„Å…ºŠåîõ¢Ä´ýõÖ᫽§èÕƒ½¯Íß«âÓ¥æÓ’¶üâ…Ϫëì•ÖÉËòÞ¢»«Ô£¼Í‡¤ìã½â +âíŽÁÑ×ɰœú«¡íú†š¤—ÉÕà¯éèÕþÞ°·­²ŽÇ÷úÀÞíÒ÷‡Ò¦ƒ’–½ÐÒß×ýË×ñ÷„½ÚÀ€½Ä³öö¶ÿ¯ËÒÙÔ¯ì¸æ +øàÁë…çþÍê¸ÞË’ÚŸ¶—Š‡Úª¤­ÚûÝÊêÓÉùÄÞ±¡¾å«½¨Ç‰˜ƒ¢­¹Ÿ¯û¥¯òÀ·ƒ¢ªšìíìåþÞ÷ëí˜û·—© ṳ̂œ +¨“õÓ±×”Úã§…¡•èæÙ×û½Ú˜‰Ë‰ªòØÓÅÔ͗ߪԭÀÐÔïùÊÞ¨Ûó÷Šæ‘ôúÙ²ƒÆ•ž­ˆÂ™Ç¼ûÕ­³ºªëÉÇö’¥ß +á¢Õ—ŽÖ’À¦Þ°×‡•÷Ì‚ñ×›àÕÚÒ”¬¿Ù‹ù©Ì•Ò’„¦ ÔÈ‚û±Ù儔Ƅ¦ ÔÙØÜºë¢ƒÁ‹Þª‰ºˆ¡øÌÁˆì…Ü… +ÔÆ„¦ äœ§ûý¿¬ÖϼÙþ§˜«ƒ«ÝæÐ¾ªçÏš¸†§Ù«½Õƒ ´ƒ‚Ùäâú¯¿Õ‰¥ß¹îÊ›¦žÆý›™Í·ûÑÀ÷àîÊÏö¦½ +õÇÌœÄ×ýŒóªü­á¹Ë…ݽ´ÇŽßœûð݅Ūôø«´áê…£’§Íô×£ÕñߨþñïêäøÀ­¶÷ò“½¤åü½ê⬳¶ë°×Ä¢Çö’³þ¥ +•¨åÜŸ°×«Ëí¿Œ¶¨ñè¦Øëÿ·ª³Õ‘¶—ηÝô•¯ì¥îÑÏ”Ëßµ¬Á—žáÝ÷ßý—ܬØÀŠñ§…óùŒŠü•ćϋƒž„¡Ç¹ +½°·±ç£­Á£úö¤ÊØ¥üÑ©ÂíÉíÆÕ‘§Ó…¬µ’Áõ³Á™ö£õÁ‚èŒØæÏãŒó¢Ç¡Ì¦ƒ¬Åæèã«¶Ì¢º‹«Ð²íÈËÖñÑæ„­Š° +Ÿ—èú½‹–­ŒâÓß°ùõ˜òÅ×µ”µÏ¬êˬ“ùʫԶ܉ì•åÈÞã•“ÒëÕóÅÈœíÚÅ“ùüòÚÛºƒ–†÷½†á…­´ì»Õ†É͑Ъ +͵Êíº“…äÍ´‹‡ƒÖÕÙÒ«¥£ÅêÒ—œÕê®ÒØ«­Ñ²·ÿÓ˜Œ›“Óöœå➯ïôÚÕû¹µ«ÚÖ²³×áͱŪèՊýÒç÷áïÞ +ÑÇ»ìùËÞí÷Þ‚½Ìœ½¤¢ýÌ¡þµ´‹Ýõ­Ø›»êÂüÞ¶ÃäüùóÙµãŽÚ‰üµÓ«ÔÜ™ÙË’Ñšð¢ûµ´Ö©öõ“ÛøÔ¾ÑÀ«®½Ýë +‹¯µ‰øí’¸äÊñ­­Õà´«»³×’—©¸§èÕƒ½ê¤Ûº¼ªžæ—ηԻђ¯µ¼ÌÙÙË¦Ž‡»úÕé®éžï°¦’ÚüÃüííŒÕ¶ë  +ÿ›¶½’Ýïø±ó‰œº®–Óº† ºñ¶ôýèð•ÀÞúÌùßÛùåÂÞŽŒÕÐÄ«÷žÙøž¿”©«ÒÕâ«ÙÇ¡ª ÂóØ»¶ºà¶º“ÍßÛù¹¼Ó +ŒÜÜŒÀÞÇÕÛã™â°·«ìƒ…ü”¦é‰Â€ˆÓ‚û¡÷‘¡Ñ‡¡„©ˆÿ½»Ð¨ƒÚ”„ÀÞÈ„ÝèÔÁˆáŠôÂþ²——Õüæ”æïÂÕ¸ +ÑÖÖùùÈÞõ›¬Àù≰ÿÜïÂü½ÁÈÞÏö¦½ÇÌœ³¿×ݸ÷Ҫ˗ùû³‹Ñ³ý«Ûó÷ª’êöñ©°¾Áõ“½¤Ãü½Ðñáʾÿ¯Ô‚º +Àµÿïâ½è¤Á¢üå¯ñÿ¦ÞØýšæÏ‚Óń؆½²üðµÁ‡¯Û·Žˆ¡ÄžŸŸçÓȵòÅíû¢îÛêÍ•ñþÞâüŽÀ±©³¤¶áÏí†øÛºÇª +»ˆùû¥£šªèêêÕ‰§€š³¯Í‘–…÷¼ôò…ØËڣɗÀ» ¡ŽßÖ߀ÏЫˇûÍ™Ãñ«ì‰ñºïµÕŽó˜‹©„´µß‹û†Íµ™ÚèÍÔ +Ðü½öïÃËÿÔÄÂÙƒ«ÛüùíÂ᮫¾úìÕ¦í™êþÓڥͩ¡úòŸÃÒ±‰©˜èõß·†ªç…þÞûÒ“ûÖ×Ôžª¦†¨àîÊËãËù® +ÌÈâ¯¶Ìæö𾙜ûÛ÷ÄÙ–Ó«½Á¨«œùûíË‹à÷¯þÓÖ…½´ß»ùʇÔ÷ÛÂÞƒ»ÃÞËÿ˜ÃüùóÙ˜Öƒûýµ¾–ƬœœÕ•±‡Ô +—ëò·õŽÔ¹çó÷ŠéíÔÒž¢ÚÄÞįÖè­éù¦©§ëƪ°ßÛ¢ûÅùùûÉÒµ¶ãÙ¿ÞºÖÆßÖ꯵Á’ò™ø»Ý‚£”£¶Ðå±ßª£®å +®«‚½¢Äöʦö¼Ç̇ã…Ô’¿ÌÍå’îÏ•öÂμ¯ü¾ÖæÇ¿·ÛçùûÕ³‚êŒÀ¥ÌßëÚ«àííõŽ÷ùó»÷úö´í£ÇžÈÃþ¯éÿ +™æµ©ÕÇ„ûØóщó÷ê×Úò¬ªã¦«£ûòŸ©ö퀇ùÈÞŸú½·Â¤­ÁˆáŠÄÂþöû¡¿…ÔÆ„¦ „¤þ¯ä®´ê é„°…¡‚Ÿ­ + €û«§´ê ñ„°…¡ÿÙ‹´‹¨þˆó÷†ì¡Ã˜â›ÊÔÚ´Ô­ùÌÞ̆¸ê›°ÿ"ûƒ·ìÍÊµã¨—Äæû´Û¨­ò™¿×ýûߌš©þ¿ +ƒ£†¯²¼‰¥¿½µÿß䲡ºíµ®›îв­²·Çÿ´Ýû¬¸Êú­¤ÞıŸä­û£á¦Á”Ä™ÇÅÕ¥¤Æ§Íéÿûü½Úˆä’ß©¢Û²Šý— +‹Òžà¦Í÷ËéÊüŽ­î‹šÆÖ•×çñ¿°¾™ÕíãÝ¡ÊÂàïÞÓºù¶ã‚ý¡î³ŽŠð륶ÀÒÑ£÷Ží«“ûãŠèêε”ñþÞæÄô‰¹°× +ה鲹ûÚöÚÓîº‹ÒØ½Û㱺ºÚØëˆî³ª­ÈÔ¯¦Ôª¤ã¨ÝÜѽ‹ÌçÕó“µÛ‡¾Šãßﺬ쒆ø—ÔÙš†é«ÿÜÞšÔò¤ý +®ËÖ…ºáÚöå¾™¶Ó¢ž‚Ô€ôÁà—åÙË”¥™óŽÐßš¸êÚꟊµ¥˜öàÚÂòÚ¿Ú«Š”¼çïⷙljµïª®•¥ë®¢–ÓíÈ– +£ÃÙ멟®Êîæ¯¹Ÿã옰‘ë“¶Õ¦½Ð™¬›µ¶î‘À¯Ô…±×Û•À…•¬è““ÊÞíÚóùÕÎÞâ¶ã¨±’ÕÊÛΊ—ÞÜ€½’Šã¯ +ð鷺㯴”ÍŸ§îûéºÁè¼çï”á¼—Ùè¾Ô·Øëø£¸¡¶·¿ÙË’”ü®öžñÔ‘ÌÉäïÚ´±ë–çšòª¡¶ÜæÔÓîßË‘ÚÅÚØ§† +Û’™ö„³íõºÛÊñ¼×±ÕèøÚÄÛ¢Ž©å‡ˆØÛÀ¤û¥ëçœÕáæè›©éïö©˜ªÑˈ«»ÏñÖÔ¯ˆ×¹ñÌ¡éºø¦£ã­­Áý뉦 +¦ö‹–Åí²Å•ñÙô×ÔÄÔ½æöø©„¶®”“Ò¦²Úý›Ðî•Ø›¯ûĉ¥àË‹ÊÓ®ŽëÖ׋èô„È¥’æï…Dz«üç«ëòŽä³û™´ß +Ó¹«Ëåà¯æÉåï¡ÄÀÞÂÀä¿û¡ÿ„ÔÉڂ”„¥ÀÞÈÝèÔÁÀˆáŠÂà¯äÕ®Ö£þõ¾±ð§´úò즶•½¶¶ üÃÚ§²ÀÞ „ö +©îÊæ¯Ž¼àòïÉ‚ûƒÏíì­ôê€Ôòø£–ï¾¢¢áàí‚Ö…ïÖ®»ÁÞ’Õþïè娄öîȽùµØÛ‰ºñöΦøÁÞÒ¥å¯æ +›Ãö̡ͥÙôžû¥óÉþ¶ö³Õùì•ú½ŒªûÅצø•½öêו¤¬âÃÛ«ºÇÄ«•»½©æÃÎ¥ïû¬®ëª­¶üÿ÷“½â©¡¦üÍ’Û¾˜£¦ +dz¨®çʬ‘뽤ýäÁÊäßÔ•Ø«¦ÝØôë×£¢•ʉÞÈøÒ²ñ¶¹ìÜÚûŠàî¯ñ‹½½©žÚÀŸØËÈÞ÷¿®—˜©ýê—ÍÎâç£Ü•© +áýÞõÅð¶³×ÛÌÍ€ïίÖöÊ­®…‡¸”ùœÚ‡î‹±ÃìØêã¡ôÊÜ´­ÈÔ¦Ù¤œ©è¦Ö¦·†Øž“œü䄯ÓÚ±‡“ûÏ¥àÚ»Þ–€ +”‹ûÒÊ×Ê¢âû×´¤Â¸•‹ãÌÞ¢´ÉíŽÉ©¡©’…¥á¯áøÁ«Œ“ûµÑ±­µï±×ÞÖ¦òåÍ´‹‡ƒÓåØŸ«¥¥Ô§’³¤ÍßÜÒ±íÞ +šéÓõÊÞÕâ­äªãމìØÕ³§Þ¶ÞÕŽÄÝ¢¨“û”çö±×Ûà Ñµß²†›’ê®É銴Ôÿٛ¥ŸïµÕÊÛˆàô¹áÄýÓ¦ë +ö •½¯ˆ›ó³—•Яµ¯½åÈÄÞâ¶ü›öÑì•ނ۽įööäù¡…©â½áìçᑽͪ‘ôŽŽ¥±÷…†â™ÐøÙš…Ðï’ó°´Ò°·¯ +×鯵‰øõŸžÛ±Õ¨ž½÷¦éÒ½‰°ßæà똃ˠÆÉû‰”©ç­úÖûÏ‘ØË¢„öÊî›ïõ۾Ǭñ‹’ìÀÍ¥»û¥»Þ¢ã–˜Ä¢„Ò +½ªÄý’Õž€åíåœø›™ÿŠ‘ößÕàï®°ÒŽÉÒöû•¹´ýÞÝ÷œâÔ´¬ÓýŠÔ±Í±´Å‡Ø¾üŠ‘¨ÀÞ‰úËÃåñòŸïŸ…º¨òŸ©† +¼û»Ïì…ü«“ú̱ú‡Ã—÷âÂܺ¼Áˆì…Ü¥ŽÈÄÀ‚ï‚ûكЉìÅœ’Á•‘šõ˜Ղ؋¹‹ ºˆ¡ÌÁÈç«ö–üŸƒ”¨ +µ±Ñ÷¸«‹»˜ÜÏáþÞ „ÝöÂî’Øë¾šé´å°·üá£þÞ ÔÕöʶ§•˹†Ó° Ñ’û—»Èò‰ë¾ÿ«îȉ¾ßÞŸ¤Òòä³þÞŽª©Õ÷ +‡Ÿì•ϵíí¢°·ˆ©ì‘µŒµèÙ«†’¢Ò½û¨–£ÈˆÍÊù¶ÿ¯èû¥à¯‡ìíØÉ»ÿ¯©·åÛþýÛ§”‹ß––½Ú’Úö²ê›¹úª +È”ë¥Ô‡ËÕ¾ôÍåÛü½êžÌÝë±”Ñö¨ÛóîØóº«®¿ÙËä¾æàÆŠ´ö̰עÒïÔׯþ¯“½‹ëê¹Ä·â‡¢þ͛ߛªÇ¥ž­ +öø¥´‹‡»«Öê°—¨ýÛõ•«³ñР¡§‚ªãøï¢ûͺ¥Õþ¯Ú¬ ¼®ÏæïÕö×ÿ¥´¥ªõ˜âú¼Ä÷‚øÿÂÍí§û£åŒü×̫ʫ߫ +ÍÃÜÚöÊý‚Ýõ­ß¥£û¡µ‚ûÕù¿¢ÿ¯ö“Ô£úäÚòÀÞâÆ¶ûկѰ·ˆ³™Ø«¦Ô·âÞ–ÆåÎÞéü«˜Á’äóüù½Ä餦µÜ +ù©Î°æàÁ˜”ƒ±´èéß›ˆõÝ‚öº¨ãë¿—Éý×ÔÒÛ³’ÂÛ‚ºå‘§ó÷ª»ó¦ÆÚÛ”¶ù”靿ÄÛÈ›ð¿óùªŒûý¡’”Ëý½¹ +¿Ë“¦äª·Øÿï‡²Âøæ Ÿç±«‚½—‘¢ìõÖÇžô¾ÓŒ€ªªÞûü½¨¾ìòÆÙû»æ¬Á˜°É˘Ղ؋¹‹Àºˆ¡ÌÁˆì +§…Ü…Æ„©¦ „öÂîÂÁ£ŽÂˆÓò·Ÿ½¸®æŒ’—Ðñ»ŠßÂÿ˜‚ÏìíÁ—Œ£ž‰ºˆè¡ÌÁÈÛö¶©îÍò¸›œ«œ÷²Ûïë®è +«£Þª—ÆíþŠÈÕŦüñç» Œá²ß„©‰†ÀýÌ¡í㥩ó¼¸ûǶØïÍäïºõ«àÊã祿…ÒɼÍÔ¸§Üû Ù’›æÚ©ÏïÙ€½âÛñû +øÐÍë•êÚ˜ƒíØ”ü©ª»¯Œá²ŸÏêØ„Íé°×®ÆŸÞ¿ýöÝëú¼‡“ÙûȪåé´ä‰ì•Á뾲㨸–éœÛ–Ú¾£­¾®¾ŠåÛŸˆ +ˆç»ÿ˳͹¨ÁÈéԽͅ»¡æØŽéâ©§ËûäÉ€‡¤¶ß垦¢¼ˆŽ¬õŒ»î¬’õŽ—ãï÷—ÉÞÇÍÑÊû¶´Ú¼Òüº”•Ö«‰½É˪ +ç´ì•à«–´µ¬ÅÌç ½¶ëÒþÕîÂÝ€ŸÎºìÿÌÚ²ñÕÃêá¯åੇøàóÕî㌎êŒÔüí½éÒÚêɺNjŸ±—á—öé©Ä†Í¦Ë™øË +þä¯ãŒ£ÄðÛï¶“¿•Ïæ®’þô²×¬®¥§Õœ Ô„´û¥Ì‹ûÍÐõ†úàóÕî´á²…¦ßÆÒ™·øñö¦²©×‹½ÄíÆÑ¢›û²¦æ ÛÀ +’öÚÔÄÀ¢ÇØ›»ò“ØâÛ„˜û·®ö™ß¸öó¦§Ç·Œ¯ÿæóÿٶ熟ݺ¼ÞýÛÆç¶ïÚ¿ñÜ–çÿ°õ·çóÛߨ¹ã÷×®¯¾¸‹ +¿­˜†½Ìã–¦á×ýÆÑ±ÿÇ…·ö¾±©½ÂÔ§“úÕƒ ÿêåœÈ¤ô©©¥¬–ÿ¶áµéÚ©ˆá®ùžÐ²×›†úû튂½’µ’³ŽêóìÜÍ +ž¬Ã‹™Î½éÌ­¡áÄÛÓÇñÃÛ•ô™éÕÆí¢íáÕŒþïÖ¹­ó•¦ñ™ãˆÒ¶­–ºÇËÛö’”ž»ÁÒ¬ó×ÎÁ•«µ†úš—á¦ý „°… +ž¡ŸÙˤþ…Η¤âê‡û¡â²…°…¡ÿÙÒ‹ù£ÌÒ’„Ò¦ „öÂî‚£ŽÂˆÓ‚û¡÷¡Ñ‡ò¡„©ˆ½¯»Ð¨ƒÂ”Ñ„üæ¯®Žø +«¦òÿ„‘êÀ€ˆÓ‚û¡÷”雵¸ÍòÄ—Ó·èÚÝÔÎâ˜Ê¹ã“²«âìÍýÜÒ¨ï—ÏÜè…ÏÚçµÑóçÜšéԕ욇Éý—ª‹Ìù +á§ÒíÙÂ䝸¤’¥û¬¾Šá¡ÝÅ”£Ó…µ”Ÿì•Ï µíÒâÃÌÒ«õùœ°×Êôéž–‰ØöˆñøÍºÖ‰‡Ô˽ý¢ÌáâϰµÏ†í¿¼ +ê„“×±×ÞýÛèúÊÞž´è“…óóÄöœï걤©žõô•í“Åš¯Õ»§”‰‚Ú¥àõ™æ¹í¡ªÍìô銴’œâˆÔ Ô­Ì£ì£ö–¦¢û +¦ØÞËÍìèÁÖõë‘»¿Ù«Ë”öÌÁËÞšµÖê™Äœé‹‘¥¶¢»Éªš£µÑÛ‡—¤•¥½¤–öڎȾé¿ì®­·åòáâ½Þ—ÕÁ£ö‘³°ÕÀ +ÐÚ¢èÙ±ýëžòºª±«ŒûÕÕ¨›²ùÛûãÙ’ˆŠóÍú°ô…äâ¯ã´ùËé©…½¦¼ºÕöŠù¦²ý•“ÔéµË«Ò‰¥í¡°´²–ñÛÒŸã +‰óÑ󪔻¿‘Ù›©ã¼âÚŒ«µÊÄœâ‹ë¨ÁÞ‹Ìì•ÕÆœˆášå°­·œ™ØËÜæ¿ÃΗ½‰ùàݯçìíÉåÆüÑ—ÞÚûƦâŠÁÞ¦‰¿¬ +ˆé÷ö­­•ûîÍ­ÞÔ¶£Šßþߪ•þÚ›×€ßÎæÃ¦ÂŸ‘¦•“‘›ÏÕãç§ûÏ™¢Ì¿òâçÐêâ™ÞÌôî Éëͬêûˆ®Õ’½ßã +¼æé§¢ˆÒþŽõ«ð·Îí¶ò²ÿ§•®ìì›•ìø™½„³‰¸Ö©­®«¨¤ê‘»ê°·¦¯©§¤Ê°à¹á¤“Ø×›Ÿê®ÔÝñ쇃ó”¥Ì¢õ½ +ÒŒ“ÖÕØ„«ì®’‘­ÒõᾬÚÕö«úÕ¸áÒªª±¯ó™½ï¤€­ÁˆáŠÂàү䮴ꠄˆ°…¡°—ò—¶ïÔ‘ÕÝÝɈìÂà¯ä +®®‘½ôåúßë’æëû•œ®Ùö†¡ŸíÙ«õ¦œŸˆ¯„Š“ÈÞŠÜÐîÑàï×Õ±¸ëíÕ•çìݤ¼¡–†þ»«µôûƒæïܱ—æäÁ +‘¯ú‹·”Öíµì•Úïªß¦é©¶Øä½ã™ß’ÁÄ–”°þÿ¯ý°›Âä¶Ò²ÎŠ‹½¤ÜƒþÁÞìêïÑ÷¶““ÃŽ­”î°³…ªâº”•ûÕÊ”Åî +矤ҪèþÞ‰ìÄÅÓ“•ÂûíªËïÊ¥ô¥®­£®®›¾µôäê£í¡¿×®ϻ´üêÓçʥ߫ðÆÄú–µ¶ÊâýþÞûó°ÔÚ Å×Ûˆêò +Ö„±ªÐØ«ÊÎþ¶¨ÍÖûæ ¤–¶á¼ý±ÿ®Ž´÷˜‰à¾•ñëÒ¨‰ó²Ü¤üÓï÷¶üšÊñþÞÖ˜Ž­Ë’ï®‚©§Ý¸ÜÕÿƒ½ÄÐ¹å‹ +àÈû›·­ÒæÇöÆÞçéÿ—™å½Ü‹øáýµÎǸ˜òÁ˜ÞÕ…Íß«þïñ™ÚšÔƒÔ†ðììÕó¸ûæ­åÃյ؛ʊ§°×ݱÁž²Œ¤¶û¹ +«ÒÍæíåÚ’‰ËÁÞ¬ªè›þÞÄÒšò¬ä§€ØÛ™öªÇßÅÚœéÅ—ðœµÝÙú½½ì°«÷úò²É–ôçìµµçþúǧ©‚æïÎõ﨤©©§ +¢±æ–û‰ƒæõµÿ¢É…Íâ­ºíéí¥Ÿ‰¿÷ÂÚÇ­ÈÒÁ´Ä¥ê—„éïÂÒĦ²â«Õ¼»Óöùºûµ¹–Ƣߓ©¤´•ˆ×áÚ‚ç¯Ô‚ì +ü̵ØÛÞºö‘¯’•ôü½ÕöшªÉóö•šÔâ‘‚Úò®á¯Ú³Â¼Ê¶ÖÐÏ”ƒ½¾õ°—ò͉ìÕåþ×ëí³¯ª‚°—΂û¡˜÷¹ö¨ðÿÊ +¤÷…ö†¡°—Àò—šõ˜Ղ؋¹‹ ºˆ¡ÌÁÈÿÃöâß×ÿäûóâ‰ážÏ®ò«èëíõ‘ÏÿìÅŒ£¾ÉľÞñö¿Å˜æß¹ÛÂü½ÁÈ +ŠÛöæœñ”ª¤Â®ì¥ÉóüŒÊáÒÆ«òþðàŠÒÕòü½ÛÄ­»¨ÉòÏ–½‘ð´ËÚø™Ç‘å‚äÈŒÞâÆ¯˜šËó‹¶·öÄ×®ßîÎß‹¨¹Ê +þÏöЧÊâô泎Šýªµ‹Í¥Û½¦Ïµ¦•‹û­Ý í»Ž¶óåÒﵨìÂÎ×°šÝױØÍÛ׿ìµüäžÕ¤ˆ˜ç‡Ð—Ö•Ó®çý +û•ÈÞ÷éæÔâÌ·ïɹŽÊ×®œ®á´Ëïž¿—èÚ–¶Ûõµ—Óõ‹÷”çìÝÜÑŒ›£ê—´©­“ÀÝÌÍý§Óùëú¨èöÊ™‰¬°µŒËìª +ÞŸÍ’çï•‹âé›Þ¢ûÕœôºÄÊóö’Ž¬æœµôûÕ£…€óÀÝàùþÞËá˱µè÷þ²—¨¦§Ìâ´³ŽÊ½Ñ÷ï÷Öóÿ Ÿ÷å䯱‚ +ȶ•ûµë‘Òö–¦ÚƳ»óÙ÷º—“Óõ‹ÜÔì•ìþ‰™ÄÝíÉÂÈ­«îþ–¤‰‰õÔöö’¡ØñâÛâè­ÚÿàÛÕ‚“¥š„ïȯõ‰æÉó +·÷’öÈ©™Òñµè÷ÌÞ²—ƒðƥ؊îÁÚÒ·ÐÉÐ÷ ÊÜØÛ²ê˜Í®Àçï­Û¤ü¬æ¯“ö«µÐ³Õíœð—˳ŸÅåÇË®šÆš³ÐçŠë–© +ËÿÙ‹ù£ÌÒÊ’„¦ „öŠÂˆÀÓ‚û¡÷¡Èч¡„©ˆ¿½»Ð¨ƒÅ”„ü毻…ÆÍÃÝÒ‡™¿™ÔæîÁÌ…†Ë¢èÍþ‰ +§ì…Üåâ¯ü£÷’ð›ÓÉûĈ‘°·Õƒõ½ÙúÚÀƒ»·Œ÷˜É÷ŒÚ°ã¡­²•Ñ®ª²åâ²²×…àâá÷éýíÒ¢ÄÐÏöŠ‡Ý¨éÕÊØ +ºÓĕ瀻܅Øë¯Á¬àé÷ÑöÆŽöÚ¥ïÌ穵¥Íè÷®æþ€õ¯¯ìí±Øý”«¦èë»ØÚ󷠪ϭæ«ä½öÚñ«íÇꈻ׮ýÞí¯ +âË⃫̟͕æÔÉŠû³½µ¦¢„Ãå¿Ã—Äâè÷þ²ÿ—©ãÿ’Ô–¤ëï­â£…¬´ò⯙¿–®Ä®é΢û혭ÚÌ»äÔ̪¹Ž¹ðœ¢‹ +銶öÒ¢íŠö„í®ÂìÕ¾›µÐØÜж¹©Êñ­ÍŠÙ°íæâëÕæ§»²—¨«ÊǨ¹»ûµ¹â—ោçÞÌÛôžÌìզ룿ÍÙ«´ážµ­ +šÊËÞ—¶ÌðÊŽ¤Ñ½æ¾Ñ²×úÛù¨çš¾Þëê÷êå—¸×Úôýñä«ûû²÷›ªÿ½™åÕ¿é¿¿ŽÃ´Žê˜Ì‹ÔüùíÚÄ××Ř +žÃ¾ã½‰áòꮦÏ×Ç…±°÷ÝôÀ÷ï±ã“¨ë¸ÉÚ¶ìˆÙ¤þ ‚¬Ö¤öŠë‰ï‰Ó¡µÊá•ÞÕîÕˆŽºü·„éÂòΕÔè˜ÐƒÑ¢ÈÚ£¥ +œæÊբݱÕóƒ½Ð¹Ò°—ýèÜ϶äð€ìÅ‚û¡÷ò¥÷û£€·ûü‚ûƒÏì…€ü“¦é‰ÂˆÀÓ‚û¡÷¡ˆÑ‡¡„©ˆù‹ÇÞ×ï“û +¥£§ÇîêÛëœã‹Â¿·¥‹ºˆ¡ÌÁ¨î˜öêÀ‹ö–”¬´ê „°…–¡ßØ«ÞÍÄÖÅÁÛ„¬ŠÞÍ­÷‚½¥«Ð¬Ÿá¬›¦ ¹ä›û‰îÎù +•Íýƒ”¼àïûéÒ¶êžžžÀÖ ¢Ÿÿü¼Üïì×ÕÞ­½¶Áî«°·ãÓȾàžÎÌÉ꣦¦­º™ÒîòíÜ­ê—é–û©ûŒºÈÊÔ– +‚Èæ°éûÚ‡¹¯åþ¾ÔÌ–ž²—˜žÇëüÆè‚º¹°×±®ª†¼“ÔÆªñÇÈš­¸†îÈ­‡¬’š•‘…ž®ìÕ«Û„˜²†©ÌöÁ¦ºŸª¦Ù +ˆ«þ¶ÑׄŸ¯Ž½š¡‰Ã˜—Ú¨Óöª½ìêÚÅ€ç’úÔì…ûýøñþâ–ÙÓøç¶Ûǡѓö˜™îÞÕ–²„轃èÏ©˜ò¯“Ø‚ìÍŒˆ +¦íдÖÒììùçÃûÉà£ìÄ¡û×´¤¶´®ÖŽ™½–Æêɼ±¨ùªÂÆØÌ‡ÄéšµèõøÁ’úü‰…ÒÈÅÌ­„Ü;ÌÅ´Ë‹­Ç˜²‡É’Éê + êù몣ÅÖÐݺԉڲ˜šÑ®Š½Ó»œÇŒ“ÖÕ‹Ó¹Ö±‡õ‹×óôÕɔƂ½Òö™šµïÍÙÿ•ØÖ¤ÌŒìÌÕóÔ°Ö²Äóù†É䦨  +¿ˆµ‰™ÖÒ¶¦ÕíÖ­¥«‘ìåïÙû‚‰¸°¹ûÙûµ¶£—¯éáÑëÕêÍø™²®ÊÔõ¨Éû¿³ñ«ÐÂÛÊ«‚ûÄó׾ᲵŸ¹ÎšØËå§ +ðûßè –—ò¥¤Ñˆ•½¦²¦‰þïŽÒߕđÚõ³éÇùÜë˽¦ÿ½ÕœŠ©ãý˜’Ù›ØÄ쬽áÓ¶’χçá­œŽ±ÊÞé²×òÛø¯¡ +­ß›µŸÈÒ‰¤à¸£ˆ¡š˜«½ÚÙ›µä•÷ûÌÌíÔ¬¤ìª¯¶Õ¾‹‘ü­ÉꛕÓÍÆ°™ð¨…‚ÙèâçÊÑ’ÕÂÔÀþ¾Ì¤‚ï²·ì•¥é +å÷ª§Ô‚Œ¿¿•ÙÞœ½Š›º£ÞìÚÑÀŠ±Ì™•â”Õýä¯å¼—ê¡¢ÂüصÄÖ©™Ñ¡†©£ÂËŒ²ï쥓§…‡ú‡Ã·Ž©Ô¦ÌÒ’„ +妠ä¡û™ªùú…´Ð¨ƒšÂ”„¼å¯ßä¡Ð¨ƒÂ–”„ÀÞÈÝèÁÔÁˆáŠÂþ•³—ƒþˆ¿Õ˜„¦ ä˜³û±ã¨ï£ŽÂˆÓª +ó½ûõÄÞ´¶³ŽºôÕ»›´¡ÔÊ¥ÑË–áÒÆ¢²½Ž£ãúÜÛ핱®ÌÚÞÖîëÛ¹ŸÂÛŽö™È»ùËÞÈøä®¥¯™ÇÁތҦŠèýŸ +íªé­Ä£¯…¥§å‘¥Óܥ̨ã˜Êä滋óÁøÛÁžùô§¿Ù«‚·ã¼™Ç¥°ª’–­©¥ÕÃÕ§’™³ÈéÔ½–Ó««ëƒÇµ¡éÕ­ì­Óü +§­äñ÷Ծᒲµ”ËŽå­šËìÈÒù ”Â뾆åÿÙ¨ë˜ÞÐÊËÕûé” í烔òÐËÃÄŴ«¤üÿ™Á•²Í­Ôª™ÞÔ¦ÊÇßÑÙ +×Ôªµ©¹ö‡µ´­Ïªæ¯òÙ¨ûÎÞŒ¶³Žšò²³×ŸÍáìµ”Ýúų×Ê쌽ÕÚô­ÔÄø¯ÈÊã©“˜¢˜îØÆ´õÔ½ ‚å¹ûÉγ +½¹¨ß˜Ä©“ìÍËÅ׌÷Ú›ËßïØ´–©€ØÛáÍëí‚þ³ÌЏªþçæç¯¾§­ô¿šÓ€¥åœÈ¤îßÓˆê¢Ëùʶ³ÊŒªâ¼×ž +ã¸Äœí½‰Õ‰š÷ÉŸŽËÁͰײû½æÒœ¹ ¾•Γû‡Ä…„“ïͽˊÐÕнæ–Èï½µ¬êÌÅæÕªÑª³ª šûÌ’Û—¥Ç³Û¾Ì…ìçƒ +ͩʔ½å¯á¸Ñ¬…¾ëÒß÷ŧ½Ë߸À鿈¡ÌÁÈâçö²é»´ž²ˆì¥èÔþ‰ØáŠÂþ³—ò†Ç˜¤¥ˆ¡Ì¼Áˆì…Ü…Æê„¦ ÄØ +û›Ö„쭥Ы¨ƒÂ”„¸þû¿»ð¾¿ýëöÝ”ƒ¦Ó¥¥´ŒØÛç¡Ñć¡„©ˆ±öšÒ¨Ò¯éœóÛ¼ÕÛŒæÓ§¥¬˜›û×ÅŠ‡ÜÖùëíõ +ˆÓÿ„±Ä¡¼ÌÁˆ±—öéè©Úÿ¹âÌîˆÇÖ­£¥Ë㮯æïõÍÚÆ•°ù¦„©ˆö±öƠݼõ×¾å£ö¯Û·µŠ¡—”ÏÞÔÃó÷Δ̸ +‚ÜδôŒ¬Òì›õÇÓ¬‹™µ–­æ’Óº©¢û˜¬ï“ó¡œÇñöÒô¯žÖ™±»ÉéÒØè›‰Ïˆ¥ÎßÎËÚÏ„¬ç‹Ð»–ê¨µÑ§ŽŠ“öغò• +È„ð׎áÒßʦæÃŽêçïÖ°õô¹óØ‚¯›ç”ÆÞñÔÅéàþÞ±ß삵‰‰µßüõ꬯…ˆÔ›áÛ›¢éþ–çšÄòü²ÑÀ¦ˆ°É‡œŸ«µ +âÒÚéãÚ¾²úǾ•ŠˆÀ“ÉêµÕºÏïË‘ÈÞňԨæ™éšÙÌž©•½Öá…Íœù릮®”ûµ—÷¯“èžàÆ÷¹¿ý¦ˆÑ爓¶¨’ +™­µ¸ÇÔØò¤§Ã¹ò©”ì½Ì’ˆÛ²çù¹’ÙûƒïÒÁêŽÛ©àÍݾû»›¿Ò×ÍÌì§âŽ•©çåÞƒ¶Çžø«îªœÖó¦ü©ÑçŸæ +ÉÙþ€µµô´­º­Ç磟ÊÒ……ÉËãÊžßç娽ƒÌꜹ“àíæ—½ÏÞÒÑü½ê´æªöºÖ“¶üÇø«îªœöó󜴵êκ„ö–¤âÂä +§Ï¯ÌùގăöþüÉ¿·‡Û¯˜Ùöµ¶áÏßËÒðÔ°—öʽâñ÷­©ŒÐ‰œŽÂ‚ùßÌÿ‘Ç̹ÌÚã캀«Úò¹²·¬£™ŸÊ¹†‰¸œ +ÿùêçå¨ñ½›Ä·ÀÛ–åÓ­öÊö¿ÇöÌÊ‘š¸¥éÛëÖϺñ­ëéÌìß§óÖÐÌñÁöÆÂ˜¦ÈÐÛ†Ң„£ûÌɹøÇ¾•²‡É +çûÖÔŠÈåÎÙóò¤Þßûÿô£ÏÙÝæý½©„‡Ô°”âî±ÉåŸÒí§Ú›ÖƒÏ©‘áò§ÂœÃÔæˆÃ¦¹ò©ÔΘø±µéЧçÔÇéâóí¿Ùù¤ +ùÝ¥¿×Ƥíð¬õ×௪ŒÊáê֔ùòµ©Ôæ³Å•¼—ÏË‘¸ŸƒÅÖ«íÙêñÈóßéÒ®Ìç€ùÔ£ÌÒ’„¦ä Ôؼæë¢®ƒÁÞª‰º +ðˆ¡ÌÁ¨°ùòûÁÞˆ‚ ü¡•¯ûᘆá¦ÇçÅÞ˜†á渻ÁÞ˜†áÍòö°Œ—ªï°—†á¸ü³ƒ½°ŒÃ団ì…ᘮßà”¯ŒÃðù†û +ÌᘆË÷Úöæ®üÁü˜®žÜ‰¡Áç¡îŠóݬŨ£û³»þýùÛõåØ×÷©’û¨Ü·§°÷ÚÚ­°—®¹Ã䨳ˆûÜ·ƒ½°Äì÷ˆœ‹ñŸ +µëæ°—†íŽ©‘ã¡îóÝŒö°ݡò¬Äý®›ÁÞ˜ù¶»ÄŽ…¸ÏÔõ³Ø‹Ãö‡›È±÷¹î†ŒûáØî¹–â¾×ÍௌéÛ¢ÇÂÜç +­º™ì…á»ÃÍäØˆûÜ·ƒ‘½°ì÷ˆœ‹ÖñŸëæ°—†¥íŽ‘ã¡îó½ÝŒö°ݡôò¬Äý®›ÁäÞ˜¶»ÄŽ…Ã¸Ïõó’ûלŇÞîÈÞ‚ +ØÁ•Õˆçùˆ™ûÜ·åÅÞ˜™†á¸»ÁÞ˜·†áòö°ªŒ—ï°—†áݸü‡ÎÞë¿øò§ŒÃ°·®Ä°û»ý™“‚¨ È¯°—‚ ¨ü½„Á +å‹ì… ˆªÆßù²·ê—˃á¯à¯„ÁÖÓîìÍ•ö°ÂÔϹ³÷Šï°—‚ ¨§þ¥³÷€Û²°Ðךó‡£ÀôÞˆ‚ê«ÜÙ–«ÑÕ´êÛ‚ +²þÁÞˆ‚¼ÕË™ýÞõʜ؀‹Áнղû‹‹æ­Ø‹ÁÐòê–ûÑï…ž ¨Îµ¶ˆÏ‚ ò•¯û½ò²Ø‹Á·Êב½‘¢°—‚ˆ È«ôû¡ˆ +‹‚Ê—Ø‹ÁÎÔ¾ªÍÞ˜†¼áïíÈÞ½¦Í¯Ž‹½°ŒÃø¡ºæïԵ ¼æà¯ŒÃðáá†ûᘆËʷ؋ðܾ¹ÁÞ˜†áòĺû»þ‘“† +öáØâг·Û¢÷ðÁ„é…áö„å×’øµÛî¹»ÏÅÁ´¤û¡ˆ‚òƒª‹éÉ¢‚ö„å¡öÊԇ׻¸Òˆö†±™Ýî±õ­”©å« +ÈË¡ˆ‚ÄÑ¢Çþö‰±——×óïíºõ³³×…þ–‚ È’¥¹êïžÛèâú‘²×¥­Ø‹ÁèÐöÑ¢¾ôè–ˆóô¹óøÚÕÍÉËÞ÷ùÌ®¤öª¿—¯Ž +ðÊ”±Ì‘‘½™Ú±‡¾Ÿêɦˆ‚ê¬ÊÔßíÿ▙¹½ÕóœÙ›úªŽÉÄöÊ‹Š™úÍ•½ªòìÉÒ¿×´ê«„²¹Ï¨Â”Áš¨ÑŸÜ¹È +¹Ìá«¥™½âØï‘×èŠà¯’¨µÎˆ‚ê«’ÊÔ‡Öôóó䲋‹¼âïÒÞ¼Í䯉žžéû½Ú„ÝÕÖ”¨‹ŸÙÖ šƒ×ʯ‹½¼ç«®­ó +¹ÌÁ¥¤…«˜’ó€ ¨•¨ÑÅïß¶Þ²…¯šÙ²û¥ŽËÅ˹¸”Á‚Þ‚ëí„™¾Ä‰úË¥½®†®Ž½öš—´çÂÈÞˆ‚ Å┹¬Ùí +×âÜÙ›™åïæ•ƒ½„…®…øž³¥«Ý܆濷«†û¡ˆªÍ…Ìㆱö„å¬ê•³—†áØÛד•½°ŒÃ¡š£ì…ᘮߒ¶û÷š‚ö° +üŒ—ÓִƇ܎ö°ªŒ—æ°—†á͸üƒ½°ŒÃå›ì…ᘮÑßௌÃðù°†ûá˜†Ë·ÝØ‹Ã°‡þâÑч׮»ïéêïï‰Ôôçé +ÒǰüÀ°—†îÃôƒ‹ÿòß—ÿïß–þàþæð¦»Í÷Þþý騵¨ç̽ÿáÈÓ¯Ûÿ𞋃óÔ³¾ûÉçøòÑÇóÛÌŸ‘ì×…áàÌÙŽ +ÿöɇûׯè×úΤ²ÝáºÕÛìÿ­Åè§¿‘‚—úÁ‡×»®ïŸîöŒ¸óéÔ·°òÐ’èÇ©û©ßع‹Ãô™ÁÞ˜ŽçδëȉÖõ·ÝèØôçéÇ +½°” ÿ³Óžè¯…ï·¹Ú¹¶îºù›´÷Ëæ“¦ÏØ™öÞ²õׯ¯¿ü«ãӦݵåÊřǜóõ•×þ·õèúÞóù¿ïðˆ¦ÿ¹‡×ã•Í÷ +¡žþ„ËÊÞûúŸ»íñ¾øóâ®Àýë­ß½¤Ÿ¡òì·ÿïæ£¾ú‹æßüÎÝ÷Ý÷ñ«ß½ü÷Ý‹ç¿ô¥ÿ¹ê¨Å«¾ÿùÛü±œï𠶃«ˆ +¿»°—‚ë…—Èö†êúÓ±ª·Äų̀ÜÎâ»íó½ô¿ÜϾùäïÿÿ÷û§žúª····¯¯ïùòÇšéþ—¾ ‰ñúé¿ðÔÙ¾™²þ‰©——öó +žÎ¹û°Ã®óîñ×÷³„ׇ۽Ͽÿ‡Àí‡ÄÞôóÈæ¤žÃŽÍŸþ»Ï²û•œî¯ù›üÞ•÷®ýúÿíÀÀÀÐÐÐݪիéÒûîÇ‘ïôÐÿÀ¹ +ûˆ³ËÚ·Þ†ÎÜö­Ìƒ˜à©×ŸïèõêÙÕ뚢ßåë÷ׯ߰¡‘‘Ž‘°×½†îØ¿‚çïŽÏ§¥²ØïÉ»îîâͩʗÁÞŸ´Ô²ÿšüÆ +ôßþù×è¿óÔŒîßù໳üÿ²ûšÅל·´à¤»–ÜÁžÛâØØØ·¥Üö͵·ª»ÈЂûÅýãàèè褡˾ˆõðÈëà‹ûÇéñ¤ßçÚö +£æõÿćë–î—¦ŒÀä«ó™«ÂÝÁ¯£ûÍ·ïßæîúÀ€­ï³ºííÅß³×Å…²÷Úß´«îºë¾Öÿã¥àýñÀ¸ïÞ÷óõ݆ÿÄ¿Ÿ±´º +´¾¾þßýÔŸ÷ÜÜíŽðÃݸ¬¶ÒñÁ­Êìûó–÷¸Í‚ïâ¾™²ñÕ½Ñ÷Ø´«ÄêÕ‰«úåʳÕÕÑê®Ý»Öìô޵äÌâïâáõñÅ +ÁØ«²ÁúÛŽÖÙ»í۳‡¼Õù«毓½Úêéך³ÚÑâеÅÓ¦Üü«ßü½Ì›á½Ëïñ¥½Þ†Þ‹–ÖÝôî…ïÞÑ»âË–­«Ö +¬¾òÈÏè¿Í‚ý£¦²Ò¾®åŸù¾ñð²åöÒðîéÈ´ÄïªÕÍÛ×ËÌèñª¾õÙÑœ·Ó®²î®ƒø¯Ÿêààݸüñ£Øë¸º–§½Úˆ©‡¥ +Ѳָ²÷릳›Ý͸©±ŸÉ¬¦æ¨å¼Ìë¹»´ñÞ¸íÛ¶©Š¥Ûý̱×ßýÙ÷⊷߿ý»û“–œÄÀûùÒç½ýö·÷íÛ¶í +·þû—Úú–Úž‰ŸÎÂޭ椵û¦Ò—ƒÜ·ñß´ÇÜÝú™ÓŽ›Žª…Ͻ‰ûÐÝÓ®ÆÒê²ÿœÔðþÒÑ£šŠ½ÚïÓØ”£½Õá èóò¿ªÅ +‰±×šˆÇ§’¤ê本ðä·ï–Íãî¦ÇûØ¥€‹‘”£ß–±ä¸¸ öùªçò·Øû‰äÏüõËßú—³¾¾¾Š·ÿÜÛòŸÇüû‘´íÇËÁûßý +þ—…ÛöíÛÿ·îïþõîÜÿë´ïÀªÏ¡’íÊåߤž¯ã½¾Éù¦±Ÿ÷ÛÄýˆ½´½»«‚—ôòÿ™Ø«å§ý󨦞“íÔžÇäàØ«æÊ +ꃳœ†âµžðœ¿‚çïø¦äÑ÷Ó£ìÊç×’Š©¹êª¦¸²öמ½´ãÂùÔÑ×­ßþ–¨ëüŒŽŒ®•ïÝÎú¼”îŽëÖ¬§Ë—­¦úȾƒ™Ùë +‰Úçéߘœ¸¬øÝöÍôœÝâöØÔ¸èöŠÜ÷µð£ºñãèÆúÔ·¶äÞÓïÕ²ÙÊÉ˸ÞíÎè앞•×ÒË”ñ‘¸šûÇÆ‡ÝŸáë¦ËÛóÌ +øÕé«·¸´ûôœ²²÷¬½©üýõ·œö‹ÚçÖ­Ú½¶ ¶¶¾¾®Âí÷ÆŒÏýñ‹ßáµÿ„õÿ´­úÏ›ÈÜçÎöšÍË„ÇÝȼû¶©ÖôÊ”« +ÒÚðÒÑê¾ÛäЪöÚÊ‚½ü¢ûÅ–ÌÞÓÑ‘÷Ó£¬™¾•³óÊññß™÷÷º·å•Œ­™Ï̯üá£þÑÇßýÛ·Ý÷ßëÖÿ¬¾ÿþ¥ôß +¾ùÚ«Ô­äóû¼ïá™±—ýÝÍ©ËÁûœÜñ׎ψû½®«§þÇݧõî÷÷ê¯ÅµÉ™ã“㼂å²÷øèêá‹ì±åÊ‹¤‚²êÚÒÉÇ— +î½æ£³žœï÷Üóàµ×ÜÒøÜñó¼òš“ôõîÜÿÔ÷ÿç›Òª¸û–ñßÊ…óŸ¦Ü•¯¬ñÉ¡††Þ¿´”³×µ¶‰›ÚÀͨ¥¥­è—å +âÜîÈ•Ç’êøµê¦Ø’¿ˆ•—•ñ‘¸ûô‡‡Ö‡êÜÙàÛ„œÀ˜ØÅ¢û©øÙ˜Îø¢ûý°ŸìÕüÖÛÚ¾ŽìÖØðô Ž¨Åß‹Ãö÷°Ÿ +ŽÃùÿãÈ®èšóމæ›û•ŸÚûØ †ûÚá¸ú®Éœ’ˆýƒ£«ŸÛ’憎÷½ÛœØôû€Ø‹ÃÁ¸äŽó§Ï½ë³­ùôÕ£Ö„ê¯ÿëÛÇ +©žý½Ø‹ÃÕðòþ³ˆýæ±ÎÍ·ÿãÖÛç¿éò³ðþ˜ñöø©ø¯¼þç›Ôêï†Ýóÿ³ïßó³ÛÇñÀÞ˜ŽÓ•ÿ­ÌÁþ§©ûÎéï·ë¿üÙ +Ýé—‚÷ÇüóÛÔßÊŒÙôû·Ø‹Ã°§Ï¦Ô¢Æ’¬·èΛþ¤˜´ä†¢ÀÞ˜†áòö°Œ—´ê¾Æ»†ñÞ¾˜†á²ÌÆø‰ÙЃÆûᘠ+¡†Ë³ÑžÄ†Øûᘆ˷غ‹Ã°œ»µã™¼ã˜ï…ᘦ®Ò꘯Æûüᘆ»ë¾õ¼ëÕö¾âŒ‡†ß½Î›Íô鼺ŒÃ°œÖþ”¼ïü¥ÈÞ +øýÎÜóò³ž¶þéÉÏþɇØ×§ºš¶®Á§´þÒ¼­ÉÓÙ×¹¸¯ýÉÚÎÐâÞÆÎº¼¬ùá¼¶”Ï ½®áª­”¹úíÈ¥Üþœœœåž½òŽÌÞ +½Ÿº§“óý«å¢÷ü¢ºðûÀ±ûßõç¼™¦äìÛ§’Ùý›»ƒóÚÖù¢¸¯¥þêÜàªñ¼ú‡ÜžûàÜÂéàÄøññ®Ÿú€œ¨¾Ñù¥ÀÖ +—™‹½ºó»â羟§Þ÷¯œŸ¿Â´°ŒÃ¥úÿƒ™ÒšÜ +] +::^ [s0; File selector dialog.] +:: [s0; [^topic`:`/`/CtrlLib`/src`/HeaderCtrl`$en`-us^ HeaderCtrl]] +::= [s0;= +@@image:690&57 +€ƒ”—€€€ƒéÿ€€€€ø‡œí›ËÊ„±Ú†½±§ðãð‘”°‹Á‚¨ˆû—žÀÜÕ¹’„‚Á‹ø¼ŠŒ±»ª’ÊŒ÷žÕó—¿Ã†Ï˜îÉýÓÿ +‹’釽¿“„øÁ„õÐéùص„Á™šøçê‹Àä…ë‘î³àƒí÷—ÚÇ’©È¬‹‡Òí‡÷ É¸‰›×û‡¸ãÞÀ¦‰‡þÿŒ“ï“ÿ‘ +åÿݦ·†ãÌÔéê­É„÷í­¢àáü¼ýžÝÞ¼¼¾Åûíº÷”·Š†ã¥ªÔÈæç‡ÊÍ­¥™üÜÛîÐðÎïɶ‹Ï¸Þ±åºØìêÈÀ»ù +ÏçÙ¤Šâ§ñµ¸Å‚¬í¥œùõˆÖïȽµÔ‹©ì­ÛÑÚ…Þ¹¼Æ›Ž”Ò¶Á¡»÷ôÚ óõ۬“ý¯ù϶®Ò„ë¨ÑÐíÝÃòñÿù‚ +ØÞÒ¶Á¡åóÏŽÄ“¥§µ²êû͇®ñ¼“›ÓíäËøÚ²ù﨤·¡µ¼Ï£—ŠÔî­¹¼úŠç²Ä÷¼ÔÒªÞñ’¸ìœªïÉÇËÂÅψ¦ +õóìÖäý–ÓšòïøÉ´ŒŽÕٳŭºð„é¯é¸µ Ø«¯ï¤û̜뭔ƒŽ©¥×÷¨Žïý¥ì‚ÃâÆï´Ó³Úí£¯žû©¤Ü×û Ã¡ãõª +Ùê²Ìµ©Ü£°¼£Ã¡ã„ý…Û“ª„äçÊàü¿ÛÓ±ã„Á’‚ÙžØïÜßî ˆç’ÄÎÇÇõÜ”èØ™ æ²¬Ê¤Ÿß¹†àÖ«¤û£ðÝ” +ðÆ‘¢þ¿óžƒÖ̽ +] +::^ [s0; ] +:: [s0; HelpWindow] +::= [s0;= +@@image:983&590 +Šƒ–ô€€€‚Œÿ€€€€ø‡œí‹ø”ÕÓš÷«°€º½®‘ÇÕ‘Ëœ…‘ÁáæŒ—ˆ„‹ÀÛÒ„Âňá–ä±¢Á儼¬øÓÛÕñ朸î +Ûî¸þÏì§âÍ̸Ÿ³³Î¼›Íº³»Ïš„£™ÑÁ§½„¤¥‹„€¡Ý–ÒßÛýöξÎêÖÕÝÕÝ¿ÝÉÿÿüŸþ¥ªÏºõªªÓõËûÎºÝ +”Ðÿ¨Á²²ýÆßÆŒƒäåÊàßÔÏ»”ö¬´Šåî‘åÞꦥ¿–¿³–ŸÎÕòë•û땟ÅõêÂ⶯˜¸†§Æð³¼°ŽöÞÚ¿»ÝŽÿ̳ÙÞ +¡õóúíèÁ›¾Ú ¯¡”éÕ»ÊäêÕ´ þÅ­ÕÓ§ŸÕÆœŸ”°Úûÿ˨äö±¸ú®î÷îµùü‰ßþÌõµÏ†ñ¯û¾¸â¹à¹ˆŸ„Ǽ¨º +Ÿû‡ªÇ¿ìê‘΀»î‹óŽÍÇãׯìçµñþ¼³Àħ™²Õàô´ˆÌŽÜê¹þœÁ̲™ñÇÁˆÝ÷Ý–Ô“¾º­¢¿Õëë«å”ì›ð´êâØ +ü¯´›€Æ–˜“ᘆÙÄŒ—¶ü•ÁÄñ‘µƒÅ˜’富ðŸá¦’¹×ÆÉóäåÁéåì°ÁÁ°åÂÿªÍ³ª•¹ß嬀ºÆÖ֟瓛ͺ—ùºï¼ +øËÌÓ¶œï¾Ô¹Èæåú”‰§¼À‰½·µÒˆǹḭœ“±¾•öÜüâ䙑̇öÆÚÛ³ÝÖéÞØÜýÕ©Œå¾¤åé“òïèóÑ“ý§¬ë +˜ŒûñƒúÉ©ŒùÇÃÍÏÊ¡ÓϫҦþÉÉØ®ï§ØôýÊgÛß«¬µ¨çš‘ÇØªÍ̬®¥ª‰é¯º…ðÜÁ…÷µ¨Þþ¬ã¹ùÑêñ‘ÕÞ +¹ô…µªó¼áö“šØó¨žÌÕÁÎȭצߕ«½ñ¢óžµðõ˧ʕøšùûõ­„‘ìî×áËÀ“œ‹ûÍÓ»ŽÅâêãêž™á›ðÂÜÃé +Œä‚”ÆŒ«‹ Ú˜ÕƪáìÆ–ñмþ ñ’Ý–¶á‹À–ÅþÖÏË“‰þ×ýþè°ìáµÔ”ÊÀŒ¥ó¥º³×ðá˜Î÷¸×¶Ûð£ãÞãß +⇣”íÅÛÆºÛÈŽõ˜Ÿ³Š¬æÕö˜ÓÚÑðâ­·¡úÊžºÜãìˆÌÝ£þ¨¢ëÈ¢ï”ÁûՂ݉û³£‚Õ›’€ÌÐË‚×íèàüÅí‡ö‰˜ +ôöТÀ†šµÇƒÚ…¯ËÕ—ûÏïù¥ÚåÙó¼§üï¹ú§¾ì»éóÁßζ߸†­ªÇîÒ½êøý³ùøÚæÁ†«›û¯¹±úîõÅÁ¿¶Ñ¶ +™Î”²«’¢®÷Â×Ù£åÇž½ÝÒÿȲÚÍùµëó½…Ó‡«—ßÙýßλõÒñäªÅã·É•óÇ©ž»ñ¼¢÷ðù¤þ¦‡æŽ¾ñè ÄÁÌÅ—“¬ë +êݕݗüÚß’ê×ì²î“ᴄәŰÒÂËàËŽ”…ðþÝÿƒ„á¨ì”¶Þ’àŠážîüµå…ßœù·Á¯Î¼ùï­–¼ÚÒôò˃á÷ƒ…¯„Ö +éüãàéóü°çƒ‹÷ûç¿ÿéŸõ˜ÿ®í«¾ñøÆ®ë¹ºæñÕðÅÿ øÉ™ÂÂíœÆª¤áù‡Ïÿ¼þÂÉŸý ëñ•§½ÿÀßÑ§ŠŽîª¬ +ÉßÑпýÅÝ´ÃËëžÊ¯ûœàáíæùµÅ‡³¼…÷Õ¯›ºß‘·òÀäëõþãúðïѳ¹á˜ìèÿ艋¦¶·å€¬¿ŸÌ®ãÁÏ´ŽÞó̬åèú¬ +½ÒÙíúÞÙ©í¶Þ’ðհ¯„ÞþçÌ«¿¹ûôž³‹ÿ´åó«­›¤þÈüéÙõÏĪÿ–¿ŸØòÔÌàáÓþ¹Ùûç¼êŸØì÷»¥¨éðÒª +ØïÍþ—¶õ¦Ô¢Øô•àõ´»ÖüãåÓ¸ûßéüç§›üÞüøØ³›Æ¾¹¡þ×áݳ£«ˆâõ¬‘¯«ÞÒ·õáÛÍÆ¹Þµ³ª“ï›øäá­‡ +•§Þ³êÛꠡݲ‘ì»ãÿÓΰâÚøƒá÷ôÁùÛ˜½‘»´œÓÇà®ßæ°ŒÝëÌ÷þ‚ÿðô“öžÿëÌŽ¹×Û¶•´¬ý¥©å忆ò‰ +º¸ÿ˜÷˜ÿ½öÎÿôí¾é“ÛÕ¦¡ÅÎã”¶·Þß´ä†ùÕ•ÓËÕîÀ¸ÒÈî•“¬òîë‚â׉×íž¿þÃÇžýÙôôñµõßÔÛÙ·­¿öË +ÏÂÚóê¶Ì‰ö–Î÷–ÎÓÛ•ËÆ×­ž˜Ó±ÿôÁ™ÃëöÞü¥ÚÈͨ‡Õ³Á†íµ¥ØÇüÉ­Èíºˆ†Ã©ï׺÷ç¼æÿè¼ßÛ¶¿¦’ç +ûõ‹­Ë¨Å÷¤äàî®ÿî£þÉž‰ÛüÈã¶¶ßÚÄÌìéž¹¾ùĺƒæáëÎÝÑåÝ÷Æû²ÁäŒÂ¢ö½ë‹éŒ£Øíƹ¯®¾ÔðÒöÂ× +» ì¿Õ”Í‹¬ë·Ìõ–æÖ˯œÜ½ôÂÕᢱՋï¥ô³Ó¥ïÕæ¸Œ¼÷øŸæŽýÐëÌßã‚ýû€½µª›ûÐý¥ŽÉ±¢Õµ£ÏÁôÔ² ˜× +Ûœ÷â®ã´“üÆŸü®ß¾Þ˜¶òìÎïºè“óŸõ—½Ü òÿ¨ðÚñÜË¢Ššö†ˆŒßÓŠý÷ì¦ÂüùÆïèž¾½®ùØšæ¡ëÎüÃÖøîÜÓ +‚´ô¾ï˜¾Æ¹…Ĥ˜¶¶¯‚լͽöԻѱçî§èËääŽáëÊõÒØ»ˆß•óÇ‹ëôʹÎϹ¥ñϹƄãÖÔ¤‘ŒÒĠ€Œ®¨å +ÃûÑ Œëÿ—̰ܳ‹®üœùʹþúÜñ¦Ÿ³´Üó†ÿóûÿ¯”†»°éÿ®œü¯ðûȪùÖýÓËþ£ÓûžÌúµÔ¿í¡ÿć†üÙ›ü·—µ +Üÿ÷¾ëÁ«ýוø†Î”ú†®éš²¿¢ºÏŒ÷å˜ðÌ®¤¢Á´…Í´‘Ì»êòýý®ÂµñøèªÛºâü‘¿úù‹Äê¥ÙÕ‹îžîÇ×Ìëªç +Ö©˜½ôϹÞÃÞº­ÚÈí‡ÔÞÝÿ €ÃŒ¦ˆ¶»ôû¼æ„Ó¯¢”‰î˃­ÃÜ“„£Ð‹–¦¶­ø÷‹ûìöÇýòÁð—·ÃêçÙó•Ï« +£íÇÅÏ…æ½Î–˜¹Ý¿å›ÚÿÂÖߘ;½ÑÅÍÃÖù†»¯ñݻڗÕà›¸Ú÷ýá‡Óõ÷Õ߽ݠ˰шýµ¨³„Öê‹™ÞΟ°º‡—Õíß +¡þîÝÔÛ´´Ï «êñ˜öÂüåÞÛ¹½«ø²÷àŬëÿž¼ãúŸßöõÁ˜à·²¦Ø…¬Êµ¥È ²Ö¡˜ÙóÉÁššÔ×–Úˆ¶ª­ïõúüó· +æ•„²î¹Ÿªõï´åýñï§ü¼––¸å÷󟩘Ÿ°®–é“–¿©¿ô»ñ׉ú¤åÇòÚ¯ù•ŒÃšñšî¨Û··ü¯üÊ¿ä™Àÿ’§ÕŽ÷¹» +Éü³ŸõÏùØÔ·á›ïÌÖßÏè;¡›ý×û­÷ݳÖÿ¶µþ¬ÂßÀµÈ̓×ÔܵýåƒÁŒŠ¡¯†–…ÐÚí¡”›ƒåÖ©˜ÚòÞûÝÖ…êƒÇ +Ƈ—ÔîÞØ³Êñ®÷ÝÌÍüüÖ½ûºê»¯ÿ©šñªÜ¬è£÷üüÚÀ¢ßÜòÕ»Á¸ÔŒ›ò›•à„IJʜ܊À‚Â¯ÏÆÏ°ê±Þû㉵þ +üã¦ý¤çÐÿ›Ãïãþ¸ÔÍü©ü¬ŒáöÊ Þ¥Îüâ„ü­¿÷ýÿʸÇÛóÔ¯Õè¯ïÛòÎñ“ê™ûùûÑÿ¼ï€æ÷í¶ÒÚåö±¬Ü©ã·ï‚ +˜¸ýÍ÷ԭśͳ÷ùïùҹŗýÎÙ¥Ž®ÉòˆÿÂßþ±Å¾ÑÛý¤Ã·û‡íôçöíð÷Ûçï¿™Ö¿àíé«îꮸ«ƒÁä¦Âè«Å¡´Ö + ÛÈè°•ଋï©Ý°»î¡ó½õÛ–Öî׺§¦èŽº®ªõõ”¯ï½‚ýó‡ùçå¤ùóûùóû×ΜðÅ݃þâñÓ•ê¡ÙåËʘ¯Ãá˜Å +Žà½ŸíÀ°þÇõÛ„ÔæØëϾ씲Èýµ”ÜÙШêÀ©óœ¾ž±í˜Ï¢÷üôùîèÝöŸ÷±¯íâ±â­Ê¯÷¶’жž·½ÓÞ®÷ŽÒ¯šôÌ +ôùõ˜þÊÜšðÞƒÿÌùÝŸœ†ÓÜôÏÕÜ×¼ýû¾Îùûç¿‘ÈÈû¼°ç±ÿîþÎÿÔïùïÜ·î¿ýáÿèí‰þáú‡í‰úŒØ”è³Ñß +¾çƒ¿ÏÚæ¾ùËë®›ú¡Êڣ‚¡Ç“Ææ…ÐÚí¡¡üÙÕæá¼‘µÞµÓëïŸ×Ù»éþÝýùµþ›çÔ¬ÏÕĪàµùƒê猯¨™Ù§¦·Ï +ãÕŒ¾ßÌîóýËÑ—©…Œ­êÔÆÖ¨„»æ°‹µ†£‚õ¿•¨âˆ–—«ÏÁ–ûÕ¹±îòÕÍûÿäñ÷Ψš¢…çÿôº‰Ã­¨Ó…ý瞦ôù¯ª› +Ô¬Üóëúüï­ã£„¸ë›ð¼•êìöÆÇ„Íƒî¿æ£„Œ§Î‹Î÷úÁÓõÃÁóÎæ¶ßÌþÂÎÏÜÇý³‰¾»è‚Ó÷ø§îð¬ç¿ê¿é»ÿ +·ØÃÁÅ€Ûƒ×ïŠÜÙ’”¸òíó•ËÊëÿîÊÇ¡‚À™”Âß­Š¡ËµÚÂòΩ³ÞÏÒ‘»ï¨•¾¯§æÝÌâÎ×íÆ¹µÅ³—ÛÁµª›—Ú +îý§ê樛øõõíî•ÕÓ¯®üË×üê¯Äß©…̨ӵÂìÆò•àßú¾Ê°ûúª’쨊¯…¥Íª£ç•­øÒ§úÙîçª“Çøï„¢ž +㾬­ÓÁôÏó²ÿ¢ô‘ƒ¯Éæé€¼Þ€ºïµèå›½îµø©¥ô›ïݯûÚõ÷üä°‹­ó¶˜ÿÇÙÀðŒ¦»éà·ŠÓÙÛš§¾¿â›¹Ó¯¨ +ÆÈö‡†½ÔòâÀÕÛ‚¨×ìŒôÞÓüÏé’º‹òÂáá“É¡³÷ù§»ïôÏÙá¿ó·‡ÿöþ›÷ˆ„Ä¡´ÖÛˆ„‘¬ï”­ÔÌœŸØ•Ÿíݽ +ݵæýÌš³ãÚñÕøçíªëÛëÖ´¿‹¬ÙŸõÕÝŒ«ªó§ô¾´þÒ·¡‡Ý”¦˜™¢Ð±Á°ŠÆÔ‚èÕã¼¾ÔŸ›Å虣ñ€¦Ö¨Î×ÆÎØ +Á©ÚÌÙöæ‹Òµ­„ ê°šæÌ¾òà›ß¬óì¶êßÏžŽ¿ÝúÔ»ßÓ¼†¶¯â­ºÏ£ùì÷ÿ¾Çë߃¡Ææ…ýž°‘¹á˜ŽÍôò·õÛòúæ¢ +ù滟ôÝõˆ‹Ï˜àß‹Œü³¸¥ßñËßïöéÉܸ¸ ƒù›‹ëûΈ‰…Ϧ…Ìû´Ú°õÑÿ¤þ¤‰»ýã÷øïÆ¢‚µ•Âëµ™…Р—×Ì‹ +‡§õ«Üðó»õŠ»½«ï’ªû¯©œÔ»úŽÂíʱõ«îʺš¿¬âÓð²ëò®þËØâï¾ýÃϵ ©§ÔØ±ÄÆ×þ¾àÓëÕ€¦äˆß”Í‘ +·‘ì¼ÕÔ½¨ÁØíí«¹ãížÙ²²ê¼à‘ȃ­ç·šùî¹ýÿÿ¡å‡þãìážþŠº®ôŸÓÒã컜ô§óƒú°¯þ¸Û™ï•÷òÙþ®ä“Ãç‡Ü +·üÒ…ýŸáì²°œ «ËÎõòúÓõåÂÓ¸·–¶ÙÔüšç±±Á†ìöᖾŭ÷ßÚÒòÉú–ê‹ïë¶«ÛøÐøä»’ÙÚ–ŸÑ– +ýª·ûßî¸ò«È웫–¡Ûˆùþ¯ö ÕˬšØ³êÂÍ·ÊìÚ•·Ö­ô›Ù¿øÈÑ…ù×Òú෯նϽÄûÇ…ÿ·¹¹Ç¯¯ë–¤¦˜™ˆöëÑ +ÈõÜ븕٩þŽÈ‚Æ¦Ø¼èŽØ³Ý×ýÒíýæ÷ÏÍ꣜҄±²Ï«ÅË´ã–¢¯“»»Ï«§¯½Æ…¾É˽ò¾¦Ö¢Ñ׋²Þêã¾ô¸ç˜ý” +óʽéù¯÷¼¹õÎùÆÌ¿”󡽆ÿÄ仃ᄙþóöòúÓ­öùüÓìƒ×¨¯‹Ý¶É©¹û«¯û«Úÿ샾۞ôµÝÒ웹ͿàôÛààñ ÿ +ǃ«¶‡²‹òھ٘豬ÿ¹ÛÜšŒìЀãÄÇŠ¡Œ®¸Öƒ¹Ïí—ÓÎÃòȼ‘Õ‹Þî«ÎϮޚÚݿ֛ÿ›Ž·ÿ–š¥£ëÌ—­»çàý +ß¼þÔ„¤€¬Þ®ç›ÕÙ½¾Ö˜Õí—ƒ²Ô”ÂæœŽ‡áÄá°‘ÿÔ‰öíÃý‚ࢀんõÜøÖÔß‚§ž¤¿Ì°±ùßøÑ»íÿñÞ°«Ëë¾Ö› +×óÊÝÿㆡáÎéµ¢šõ·¼Ï¢“ƒï»ÿùÝ“£Ö¾š½þÔˆõ͸£¶´Ý¸±éÓÈý̓ï¿ÝÎÿãé«¶´÷ÒÞÛÌÍ¿Þ˼Î÷»÷¤’Û +Û©ŒÑ§•ð¤ô‘Ⱥå’Ý¿Îìã™±ø„ïó¾û¸ïԕŽ£«òÆÔñÌŸñäþ•ìùê玬žëÕß»ãªïÔçÞÞ‰—×ëøÕñë·Ï¾« +£ì¹Æ‰“Œ¡ÄÆ„ãÖäÇ‚ê±ÄÔ‚•ží˹þœÿ²È¯­Í¡‡À¥Û‚ìâ¶­¶±ßþ¥œÚ‹—ÜóÒ’Œ›÷©»þ—óÀéëïãùÁëù‡ûßýøê +ۼÃ¸§øÈ ¥•×®ð¾òÍþå€üÍÊþù•ׯõþÞ‘ïí½¤æ¥’ÅÞ‹—Ôü˜ãÞÍÆÌÊå¿ÒŸúÏü­ þØœ…¨Ü²¾óÞãç÷ݵ +ï¸ìÖÞåã®óÞŸ³àÿ”ëû§ŒÚ¿ùÚìƒÓ®ùìò€çƒ“úý¾éêŸÏï¼â‹»úªÿžýÉ—·Ý›øùÍßøìøñÆÿŽÑÞ¼½¿ÚÈìæŽ„ +‡ëý¬Ì°åÑÀû¿˜Çâ½×“žÑòìóù†í—™¾¢½·ÜÑÆÄ둆“ç÷Õÿâ¿ðÕ©«Áó¿¾øüÿöäæ¼ÿÙ¤Òå˧½ûÙÎ»í½§½×ûòû +—ÎúàâÉŸ¬Ý´é÷—äüµÜóÂÇÝÇÿ¥”±þãå쇽ýç¾»ÿÐñÅÚ¶þŠþâÚã‚•”øš¿Þ¸ðëœÁ¿»¯áâ½Ã³ßœ‚ñÙ›£¯ÿã +‘øåûÇöþëþäôíýá—ÿêÆ‹ÞÌ™öÁÛÃú¾Ö½¸û»×åüùüÚåïíý©þùÿÁ˧ÌðˆÖ¡ˆÆŸÝË—Ò­†ã͞ᎱןãÓ +à›Óï¾ÌŽßÆàÇíúߊœ‹¾îÑ𵱤Æâ߻Ɣ¯ÑúÖ´í¼…”œ«î±¼ ¾Ðܲü¦Çþ àÇÛ§£®¤áœáç«ÇÝÍúÁ”´„ËÍ×™ +ýžêõ˜ø¥¶ÉöŸË’ÿÏ­Ñð¬¿ÿ”ÍÇãØöð‡Î„Ýöÿ¤ÕÉíú•óíŒÞü†»î«•…­êð²…û§•ûüÊ‚€¤êÚÈëÖ£©Ûþä…áÙ§• +„™§ÔÏÞ«º¥¾´Ö̅ؽ…º×ôÄý™„¹‡ºÍÒ­þ£óˆÿŽÉýű¤Ù•ªèÔ™ÕûÞû¤ý™ðúù“†ÓÉÉ“«àçͼ™°îòî§–«Ó +îɳۼî«Ûð×»ÚÌ©ôš¹æËÕ·žŠÅ¿ŽÉïö“¯ÐŒ‰¶ñ¿Ê°ªÄ„nj͙žÔ‹üÒ†ð¢‘ÌׇöÜ™ðžâœÀ«Æï•¿ñ³È«ö÷š +ÃýՕ뛯ȓóðÏøÃ°Œÿ§²•©§”±ˆß©ƒÞÐú¿–‡‚Á°œÞ†¡Áà˜ÎßƒàŒ°Œ§¯Á°˜×†Ó×ÝŠàŠ×²ÓõºÀ°ì± §˜¿ñí +ѶöçÈ£²“ß¡¦òõ÷ºÂð×´†äà—ÆÁ°¾‘¦¿úè£ë‚…ƒƒÁ¤ð̃«£¯ø ÆÇåãö¦ƒˆ†Ã®ðØ¥Øö¹Ò÷û§ñŒÙÅ÷ +’²¡©¢Áè¡Á¡œ£Æý”’„†Öñ‡àŒ«²ÙÀ—Œ»è¸”‰¦³Ë¡Û¹ƒ¨Ø¤˜»Áœ´Ë„Á€Á𸊺æ‚éÙ•îƒÁØÎòŒñÛ¥Øü­È‹ +à€ŒÝá°ì–”ã ˜™»â¦Ê˜Û©Ž™’¬Ö¡¾žü뀌‡»þ¬»€á˜Ö΄£¢˜µ»¡â¤˜»ÎމÈüµ˜µ¥ãÆ“—…äüà°õœäÇœƒ…á +Õà¨Á„»˜’•±œŽ¥Á⪄°ü¤æÂŒ†‘îÚð‹Æ°ü™Õ¿˜žã±‘¬þöµÈ³ø’§Ä¬ƒ°¹’ƒÁืùŽ™àáÍõöœ‹–àŽ°« +é­²»Í£¥Øú‰¦¯í‰Çž´àë°ׯ¦¨Œ÷µÇɰ𬡒Çì“ÌÁäöµ˜„àñ‡‚ᆄÓûÃÀ–„瘌»€âLj–®ª¤ˆ»„ó–Ýíû +ß鈩ø‰æÙ³•‰‚Áðòí ÁÂ…ÚÆâ£‰à×ÃÇöû£æå¢øÛ’¥†á˜Ô¦ð…×îÙñ‚Å´ó³ìŠŸ…É€´Õý‹²Öò£×ÈõëˆÃÝÓ +¦š‚õšñ¨“‹Ï®ƒÃð§óŘàýÀ°˜†ãÓÏ ˜ŒÃé¸ëŒ†áôµ”ˆ†Ãðúš„Áƒá¸ýíÆ°Ó¢§ÿŽÃ°œ»â¶ ˜ÙŒØˆ„Á© Œ +ã‚ ÔÐŒíÇÀ ˆ†ÁÐꈿ¡ôêÞ÷Ÿøƒå×–íÆÚËùÀ°ˆ‚ÒÊ…Œ¯òוµÞ§šŒóœè¢“µœ„ƒ ¨¸õÄÄ¢øŠ€‡õÁ†ëÿú +”ðŸå„Á ˆ˜Ê‘‘ˆ¹”¾å½¿ÿ¨µ½ÃžƒêÎŒ‚Ó ”‘“Œ–Þ»û´ÞöôüâÄÍʘõ¦„»ä€„ƒ ¨é’ÐˆÖ§ÌøâËቆ„›×®ô +¨ý„ƒ È­ž‰‚•î«å‹‚ü±Åºˆ†Á’ЪÉì÷åµä®Í²™ô„Ë‚ìή¯ÿ‘á¶É¬˜ñšçæææääø”””ìÙ³ÇÿÁêÚΞ + “¨•¤‘̫ΡËË–ÓÀ°º¤ˆï´¼¼¼÷Ç£ÉÔ܃”áÔ¨Ñò¢…¥¤úî­©©Ñ‘÷Áß­³ˆ¿ô²²²Ý»÷º“Ä„ÍôÛÆÊ¬„Ňɘ´ +âù˜É¸§»˜’„û÷“겋ÁŠ—„ÅŠˆõ–„ÑÝ–••ɥϴ»‡©³¯œ˜„»µâ®™¬³œÅÚŠ…ÉâÞ‹…ò¶¸“„ëÜ’ˆÀÖåí¬‰¢ +½»ÌßȲ¸‡¼¹Ü±“ÓÁš‰ÆÃ°’ˆÉ‘´œÛ¡Á¶˜ÑÆßᨭ¥Æ½ƒýøé߬íఞ̢˜Æƒ¼¹¢Ã»Ìâž ìììÌ»‚éÜÚöÔº´ßˆ +Ïüµ´´”„ƒ¿Ä˜üÿþìËÜë›É÷¨ýÞÀ°„Ëþ½˜Ð–„£ÑûÑäÉÌÌ´ÙÈÙªÙ™…Ð⮰˔֒ïÅ’ ú¨Ê²œŒ‚Ò–é­Ñû‘ Ø +ˆ²”³Á¨Â“óÞ„ù递ÆÔô•»Ú¦°Œ‹ìÖÆÎ€í£¾‘°¬ÄµÓ䶩âäÁ„ª¦½ò–çõ„Ùª—¯¥œ­†»¥ó¯º²éå¡«ñ +¦ª¾¹©À°ą̈¶‚Ѩž‘ý‰™ÂŒïç›ÊÌëù¶­®Æ®Ž­²öꫲ¡€ž †…èÌžÛØ”Ùý˜œ³ôÔ†£»¢õž“ñ¨¥é—Уÿ´­Õ +ù˜–¸…ÊáË×Á»£³ ù”žŒÅ¦øæ‡ƒÏÁ’¡ØˆÆ÷š‹Ý¦ÁޥŀšÍĦäâŒîߢ‰»þ¯ªÊج­¦ÇªÖ…ÐÍÄôøâý†ìׇ» +ôñåóœÈ‡±–þˆßòÿá†õɺ¬Äà©¯Øˆäæ¸¢Ìó£É˱¾¿á˜–戂éóªæ²Ì¾ƒöëÓœ’ؾÿÔç„‘Äù’ùÅ ÓŒŠ +æ‘Ùäè­È­ø•ßüàí„ýÃèŠÄÉþý–ë–Ó¬Ýìèʨ§˜öŽÅ¬ÇŒÍÚÚóɳØÊ¿ü×¾Œ÷챕ÙÀލ¿Î‰Ü–”‘ÅàÓÄ÷òµÌ +³š®ÐŒ’燜ûÿÿÑ䔆õ¥ûêÃï’ÐùÃãÙ«¾üéôï¦Ï¢Ë•—¾˜›¢áÊœóÁäŸßþòÓ˜꫹£í”ÂýÈ–å“Ú¬µ« +••í¹‘»›’‰Œ¢Ñ“Í†Ž£ËúÙŠäÓÐâ¼ØÄ‚™Ï¤†‚¥Þ‰£¡˜’É±ÔÆÎèíµÃÂìöäÈÓà“ñŒÄ¬Í ‰ÙëÍÑÕž“¹·Œ„ +ظÆûÑ—¬³£‘…à¬þ‰±©ùİÌ‚àïÆóƒà‰—˜¦ØçŒ¶½ÇžÊØ©ÓôŒ¯›ÁİÃÞÆ£ÃÇæÅɯƒ½âûԂὉղ¯¯ +€Ï„ãšéÆñƒ°Ì²Ãö¤“åŒâ°‘ëÿ ¼·ˆæ®ìßӣђÊîÙìýÑĬŒÚʾͪ¨Úªú²þ­†®é‹’ûõÓ”£§³Á˜ãΉü¸Ô¦þ +‰ÍÖÙúѮ愽ò¡†Ë„ý¥ŽàòÈà°±ÙÄÔ•±ÓºÛù–Žê­¢Í¨ˆ²ø½Üᰨ̓Ö߈Ÿ‹áœðÀŒ¡Û³¡ô²ä·Üè£ÞÖȈÁ +”Ò߉£˜¼ÔÌ“¹ÐÓ¦ÁÕÏ¢¹»‹•ÏÇ›ÝÁí¢âÔÂß”üÔâÌéªÐŒç¤Ø‘äÈæÓžž§Çß‘Åã…¨¢¯œ‹Á¾„Á’³¤Ä‘¬Ø±û +…™øÂ÷ŸÅ¦½”îØ†Š“à̲Ÿâ™Ý§Ø–†¨Ú‘¢ÑöŽ´ô”öœÂ„¥Ñä–ÌÖËÓ’·‰øˆ¿…âÁúॉÕÄ׈…´Éí£ñ³èÞá +ËÑÜÄâí—æŒŸ‘Żá㜃˜Î׌â×·®ÄóƒÓµáÐܥꬉ´ì잓ͣ„¿Í£Ã¨Î‰âŸÙž®ŠÞ•‡Ã‡‰Î° ¸•‚¥ +òÌú»È–üËÖéÂü‚¸ß¯³ô©™¡Öæºå¬³°¸Ñç‡ñèÍΡšÙ¾“ÌìØÍŽ¢Õªó¢‘îµ­¨‰¿Ê­Š¥íŒ£úŠßˆÁÒ È‘‘ÁŒ‡ +‘Á‰Õ¼£Ú°Á°ˆŠ‰â´³ë€Ê„âýù«ˆ„ƒº¤Ä°®þ˜êçܪ‡”ˆÅ·Ã¡Ðˆ†õÑÉÝýÁз¾‚°×Ö”ßìºí„븵’„ƒº´ +€¯¹¢€óËñ‰Ïðˆ‚ÁÝÑšžÇÌãêçä¾” ‘‘ŽîŸýªñØù‰ƒã‡Ï¶ž¹õÿ¢úô©šæ¦æºßéãþßñÿ€ÿä™–¦³¨çüߟœ» +®÷öüù󼕀ˆ†ÁЪˆ„¡ƒ ¨ý…‚Á–”¾‚Á ˆÄÊßà„¥ã¯œ¢˜æ×Ü ¨ùŠà倠˜„Á®Š„¡ƒ ¨ý…‚Á–”¾‚Á ˆ +ÄÊßà„¥±¯À°ˆ‚ÒטΑŒãÁ ˆâʾÀ°ˆ‚Ò × ˜„Á髜Œ‚ ô•ˆÈ†ÁÐúŠ„ƒ˜ ¨ý…Ñ”®„¥¯â¢Ø¸Ê¢ØëÖ„³û +Ý©å±Êñ£²Ð¨¶Áû„ Èâ­à„¥¯…’ð䞑ˆ€†ÁÝÇ®’ÌöÞåñøø‡«ÅÄÚþÅÑÊ矯¥¥¥ü‹ý¥ôÉËò¹šÕÖ¶÷¸çÏžÞ +ó£õ®´µ’ëãÆË………ü•Œ¾éÙì¼ÃÕ”ˆ¥ˆÁÈÅëÅÅÊÛï¸óòîÝ»ùÕÙ†Ù™¦‘ªþŸîÙ¿ÊΞõø²²Û…Á‰–©Í¿¨„·åØñ +”¯†Ê‚Ä ¨…™ò¥ŸÌÞ¥úçæ¨¤¤„ä¾Çš¥ÒóÃòò„Ò˜µ”ª¢¯’ÜààØ¢“Œ‘¤ãÐâÒ—¼Ì•ÓÔ’øóò¹ÁÈЈç±ëˆ‚ +„’¡çˆæ¼žü¬ª‚Ɉˎ‚í­¶Ù¢ˆå§³„Ä‹‘®‰Æ’¡ä½‹À™ÙÜÃÁ×ѷꤠюӠ̈ʎ’ðôݛ®â’ÈØ°ÊŒÚ¡˜ +ïÅŽÁ¬öÁ¥Ù¥­¤ãЖÍÀŠ°Ë“ÓÅ‚ã”Ì¥¾”Á¸ýȒѨàш³¨ª˜ýŒÚšÜÌɇɱ³‹Ñ¦‡–àúŽýâ˜Ñ‡Žá¦ß‹ÁÐ +ƒâ”Ò„ãœñö·¾Œ‚¹³‹£»›Ä›°†þü°Þ–Û†Ö»Àë…€µ…ò©ƒËþœê¶ëšˆ‚’¡Ô¡˜ÿÇùÀÄàçÕ’Á£‡…â´ÔÃìÏ¢ƒí˜ +¬’á˜Å®‚Òž¯½Ò±ƒÎ¦ƒ›žï„¥Ú ©Â°ýƒÍ센˜¥ÓãÓ®ö§¶ñàÁ¶±Ø¢Œ³ØÅ°”­æÓôÐ…±¤žŒ‚ÜÕ¢‰ýÖ¹ÔØØÈ˜ +°Âǽ„¥”Àã°ˆ’­ÄôÒ¤ÃЪ‰„‹¨ª±ÀÃȨ•„‚Á”…¾‚Á ˆÊß±à„¥¯ÀŒ°ˆ‚Ò× ˜Ä„Á髌‚ƒ ô•ˆ†ÁÐ +‰úŠ„ƒ ¨ý²…‚Á”¾‚¡Á ˆÊßàŒ„¥¯À°ˆƒ‚Ò× ˜„Áñ髌‚ ô •ˆ†ÁÐúªõ‰æ¸¾„°Áéªçù– „‹†ÿ„»ë +ÔÜ…Ø‘ƒà°Š«ÆÕ€±ˆ¢†»â܅ؑՃఫÆÕ€±ˆ†»âÜê…Ø‘ƒàäÝï»ÿ˜•õ’’‘ÉùùÿõøÞ§Ä²²½¹¹•¦§­˜ºí +šæ§´¨±õÎû×ÿ†ÜûÓþ¯Á¬¬¬ËùéÑÒÞÞÈç¹±è˳ƒÄ½àûÖææÞ¤¨‚¿­¾ØìâóðÛ¸µ‚íÙáóÛ†—­—–µ¾ÍËij ¥ +ÞÞìÇ©¼ÓÕòÕ °°¸†Â— ÈÑÿ­“ýòè˳áÃì ØÚ›„¬›µªž’ˆÝ¨ÏˇˆŠ—¨¨§¹¨£¡±…´ù¨®ã°ð¯³³ÀÌ”ó +Ä”—ïãìòìÑ×Ŭ߅ѣ“úÑ×â—¦ñ§ó¼ÆŸŠú棛ýš›ŸãÂˆŠ¨§Âµ™˜Â……·‹ØÎñ³Çé„Ñô¶‹†ÛÒ­¸šâœ¹Å›œÂ‰ +ඈ斈ÉéÕ¼ÌíÊÃÍì¨Ì€Š¡¦©±–Ì‹æÖΊéùª˜ÅÁœÑ›•—ϦåúѤåÊ¡¶°ÖÙäÐÍ”Àˆ¢ÿµœ˜£Ù©·Ø‘žà†Ûò +ç«“°©êú«©ƒåƒàö‰¹¦ßåÑߥÉÈéìü•â­Ž÷Œ‹íê­Ê軄‹†€Â˜ñ¢ÏڶˬÁµ‘¦Ü²Ü‘Ù¦°¦ÙÖŽÀʺÊîõý¼Áš +姘Á¼Êß”ˆèņí‘Ìü쵺±Ú˜ŒÃØ­ÌúÓ—ãÀ¸•™ŒõðŠóèÅŸ”£…•í‘Ìâ§‘‰¦ßª¬ì›Å—€ü ¡ÚŽºŠ¸Ñ†ÁÊʾ +çŒØ“Ÿ¿Áø˜«µ¤õÅ҅ɘì܇®âùøªÐ죘ôä¢ÓóÍÄĴ̆©Ö­ÈÞË…×ÆÐŠ´ÜÖ£…îÔÚÀԒβÁ°àèºñ¤èßåäÔ +‚ò‡•¥ææ†Å˜°Ö„³¹±öòð“Ï‚‚ú¿ë‰†žüÐéùÙéÖáÎÝšÓ‚Å´ÊæÏ‰¾†ßÁÈ„³Ü–°ÉäÓÂàŒ·¬õ¾Œ‚Á®ØþÕ +°àÞÑÓÎõºÁéèŒöÅ‚ö®‚Ç»”ëöÑ„æú…áÔˆ´ˆ†»âÜ…ÕØ‘ƒà°«Æ‚Õ€ñꑬ ›ïö÷•ãªÇÀŽ¸ë’Œ‚± Î£çù– +ä„óýŸ‡Œ«À€»âŒöÅ¥¸Š°£†Áàæ×Œ«€»â”¥Ø¯¬Ó›È×öÄ ˜ìÁŠñ•àÇŒ‚Ú©ö愆“ð‰‡—Þöøž“ܯÅò»‡¢ +ÂÓ ëìüÎÌžâ­¯‰áÞìóîÝþ¥Ëʶ‹‰×­å帞‰ƒà€—ûÿø™áåæ‹˜Úк¿ãÄüÞ³çÉ¥øëÛþÞ¥˜œÓÁÃëâ†Á̈ÖÚ +ûú¶æÂŠÆÆÔ×顋Σ‘­°¿¼öå¥í€†›Íž¥´Ç­«’šÖƼ´©ØÄ³†±©œƒÿåÉÄø¶ÄÂÊáù‘é«Óõ…ʰ¡ºÈ°Î¹È·› +¡¹ÚÓÉùºŒ´Í¥µã˜ÚäðöÄ¢¢åªîýÞ½‹§ÈÏ™ƒÅ…Ä莋Óâäê­­ŽŒ‚™µ¢ùê’¢–ÏêÅ´ÿËËû«˜ã‹½çƒãûË +Þ¯‹ÛŠî¦™˜ãüç•––ñ¸ì¦Ø¤„æ¼ó”§½Œ†¦°¯ààïúžŽšÒ¸±Æ‹âɪ±Í²ÉÄȼ˜ä‘îçæê걉¯µ¬¤‰¼£½¾Œ³Ó +ÊÕåêó²×Û±º‚‚åšÃ´š¼™æ‡––†ƒÁÌâ°¹€«Æ©ùТ§œë´ŸÞû׺û¸ŠÞ¢ôŠ·Äžéý­ïƞ͕§È”÷«Çâ܉–íš +⌲´‡â³Ìµˆ»Š¶³ÅÚ°ºäºðÑ»˜ÏÛ¡¥…•ÌáœËååûŠ‹›÷ñ„Ñ⇥šÝ¿äÃæ·ÞËÌ·¶Ì®Ñ¨àÔÂÍÉî„‹‹¶ÀÃŒ¶« +Üœ³”¢Êì±Ç–›ò¤™Ãß¡¥…•Ô¢˜ŽÇéûÓ”¡˜¥ÇàòŒ¡•£éôŸÞøÙÎÂϾضëÅŠåÖ–·ŸÅøÁ¿Ñ¾ËËð®»æ¾¦‚¡àá +¿ÐÞÌÕ´–ñ“Á½Éε¢­Ã΃õ…¸Ñž–ÑÖ°ÃÃ˦¯¬àæýà·¯²²¸“ãŒÀÅÆÏ¾£¤ÿøá廣©Ÿô·¼Ò±§¿·ØöËè܇¯ +£Â°àÛ§˜ÙÙòâÄžü³Û™«£ö䇥ìߌç°Ð®­¼ÙϾõ²¾‚Ââ‚îÃë‚™žšˆ–Þ„¹ƒÝ±®‚ƒç…²«ŸÌŒöóÅ¸ŠŽžÉ® +Ðü²Á°Ø•㦪ÀŽ˜„ƒÝ𱮂ìˆÁ°µØ•ãªÀޏÅåˆÖ¯™„ƒÎ ¨ÓÈÙ¾¤¦…Áœ­ŠÁ¥¸Š£‚Á †×„«€¹¢¨ŒòŏУ +²‚Á ×„«€À¹¢ŒòÅòšÕÐÜ‘¨®Á®æ——ˆÆÚ³½»µ««•ß—ÌËëõøÚΩ±¬¬µ§§ßÕ¤„ ÅéÓ•¼è‰»ÌР֘äˆÒ‹àã +‹Ê“ϰ½ûÚ¤™Ü´ÜÚÚš¤úñ»µè‰©›ÜâÒ¸äÈ‚£›„³û许ÒÄú‚ž­ÃЩ®ìÔ¨•Œ³Ä›ŽùºÄðÐí³Ô´’ƒþº‚™ÂÌÌ +ÞÖ²³•ï´²Üϰý²†ÚÖ¥¥ÁÛ ˜Ù¬À¥§ó²µ«˜·±ÜœÂ¯€½˜¡¡Çˆ¦Å–Á°®«Ìþ¾Áô«Ìú»…ÐþŒ¨Œò„Ä ˜á«²è +àâ«Æè¿˜Æ”Ú‘£‚±ÁÊÊ¢÷äÇÌŰÃö£º™ìµ²ì™·ì±¼·Û¶Ó“óËÞé…‚…ã¹’ÓÔߦ ÄŠ£‚¨…‘çÁ°Ý +…ù†­Ẹ̈՜ȑ¥˜ÁÞ¼Éú­¢ä˃ãñäåå¥ÿ¿©«Œòĸ Øò”““ÓüÖÖ–üý¦¬ÔÀ°È‘àŠ«ÂÕ€œ‘ˆ¢†¹¢Ü…È‘ +Õà«ÂÕ€”œÑʒ사Ӌ×òĬ©Ç°¶ßúȶ²ÁÄèŠÆÆÓí«Ã–“ÔÈÞ¹Ù™™­ûöŒÄ½–ÕúøÆ§”ˆ†¹¢‚¬¨Žõ蕈 +Ž’üѼºäÙîà‡±¯±ŒÆ¢‡Á ¨¶àߤââð°üùœåÆÃ©âÕåǂ锿ñ½˜Ø±ŠØÈ³Ÿ‰ØŒòІ¦žùÏÃçå’þøªŸ‚‚ÖÒ +ºÒƒÁ¶ü•뜫¶×ïÂ쯦ԬҶ‡š“¨§²®à£–‚Á‚í¯±² ÿĄ呃™ª’ŒÍÄíÐÕ’€ˆ¨™¹ÉŒÑŸ¿¾¤Ê³øâªñ“–ó +·Ê³úЫ–¬žÐ©ß…áÞ˜þߔ‰Öí∤ˆ„ƒœ‘ˆƒÆïÂÒà“ì…ëãÙôŒ‰Ì昕‰å—Ë‚¡ØˆÊ–Ñ®ÔФÁ¨—ÙÂÒÒޓƧ +¦˜ÖÄð—†û±ˆ©Ý‘ˆ†Ø¹¢ŒÃ•٢̳èã°ýò °” ±’í“ŒÂ¤Š¢„€Ô髪‰—àñƒ²¹þ—æõΔ©æ€à£Ê†Ù‚õšñ¨é +ç󃉦•·ãÌ´“±Ú§˜·Ãùóù•øÒâ´ìņÛÚÚú„£Ž©´Í´Ã‘¤±¯¸»šË¿‹Ã½ðŠòí‹Ö¤Ô™”ÔÚ„Ë®—Æ´ò¦ƒà¼ïÄî +ëÝíàÊۘЊ„ù’Š“ü‚»ôƒ‰žó“ Ô³¯·´­æúò¹ÉËù©°‚¢¸¤šéû£òå¹´´»°ïÛ‹È㺾‚Ü ˜äº¸Á­Ò˩֒ŒÇ +™éû• ”’ˆ‰–Æ‚Á È£ÐŒòŸŠä£‚Á ×„«€€¹¢ŒòÅŏУÊÙ‚À¥ô¼˜„ÁæÆÎò¡î‚¹¨³·…”ä᪒ÀŽˆ„ƒÜ‘ +Í®‚äˆÀ°È’•áªÀŽˆ„éƒÜ‘®‚䈔À°È•Éס“žŽÙÜÍ®®¶Ìã韚ƛ¼˜´œÄ¢º¨½¬™“ÓšøñšêÒîÝáìÙ¦øìÞ‹ +¿Å†ÖÃïå·º±Óô ¾†àææ«¢ª‡ê‚¬ÊÙ‚õš™¤Ù‚±ØÄÔÿúñù¢ÌбšÊøÆ£þùš§’½à÷·õ³åØÁ”ï¡®­•æŠÜÖö‰æ˜ +»›‰”‘ž ç•ëЊ«µˆ¶­®ÜéûÚ’‰Ì¦æ§Ñå럘ˆÂÌà¬þ¨Œƒ¡ÍÉ嘅裯ß쨭‚ÀÍܾ†…žŠñì²Ñÿ’êÈæ«Òô +ôšê™åƒº‚Ä’Á°èô•‚à‚Ñ……¦…Æá†ö¸¶Å“çèŠö¤ŒÄ¾ÞÒÿµ¼Í¡úÂøúØý¦†›óô»š°ï¦‹¬Ñ¤¯Ò¥ÃÍ¿­ˆÖå +ý• ‚½º÷ýô§ÞùµÁÇÌï´–ò¤‚Á‚Ë¡þ¨žŸÕ‘Á抳äÔÄ‚¨™Æåö‰¦ßìå–æ¥ïû‘‚åÆœ»ýâ Ô˜¤”ˆ‚‘š©ÈßÕÔ´œè +º²Îó¢‰Öòù¶Ô ˜´ÊŠÂˆ‹Á£ÀÙ€éÅÚ—’±†ÆËßö£«†‚Ù¡•‰é•ˆ‚¸ÑüÅ€úàÀ³ƒµ¿½¸ò¡ºÎ°»½ùñú’Œç‚µîÉ +ûŠà†íÇôƒêÇÎÎÏþ𡍶¥‚à½ÄœŠ²ÞßÿËÔÚžÏÁµ§¢‰ÁÒê´…µÑÁ¢ÎÃÍùôƒ¿ÿ¨ïèͰéÝ¡˜´®Ó—ˆà”³’İ +ÌÚøïÓúë‡ÀÙ§“Œ£Úã¿ÇãÉÊÊò©»–öÕÙ¯‚ɔ䥒àõäéùż ¬Ò¸À°ç•““ÓäÖÖæö­ìª‘³Þ…¨ÉÊœíÁÊ÷Õ’¬Ø +ç´Ì–ÓÀ°®È¬Ü…È‘¥ŽŠà¿««¡‹ä†é–É Ø×–®‚䈒ɰ̯ۀ«ßá„ô¬«‹×ôòĉ£Ø»Ÿ°Ô‹‹üɉ èØ×–®‚äˆ +”’ɰªÙ¡üõÈÉ‘‚¥çšîŠàÛ¸Ö¥ßôƒàšÒ¢–„ œ¯éÆ–¥ëá™É—ˆÜ†¹¢Ä‡û—ðÓ¿ÙÛà¼Ô˜‘¬ï²‰–‹„¹©‚¡ÎŠ +Ô„‰þ˜Ž®³³³»˜ÆãƒàúЧÔâÆäÿ‘÷çßÚÛà̾›„Ó’¿·ŽÅ°íýñžË¨¯Þæ´ß‚Ø¢Ëñ›‡þœÎÙÕæ‚Ë™åÁ¡ŒÌãýÈÉ +òÓý””´––œšŒ²•Úì°îÿ¯Ô¬Ò¶ ‡ÚÔׂâŽÓâÞ‹¤ÀÑá”帙…¥Ó–Úƒ÷¢“°’ˆ‚ ³Åµ·ð…ˆ†Á«Šàëþ°Œ‚  +Ê´”µÁà˜†ÊÓÜú‚ݶǕËëõ÷Ñ‹¥«›Â°Œ»ë§Â×°ä‚ÝÖ¼å«Ëç¾ë讯¿±áÃ…•ñž«Ó±ƒ‰ó¸Ëçû¬®Ï®­ËöÄ +¨ØâÎØ¼¥èÛâ‘Îå‰Û×¢­ÿ„‘⩹Òቼ丯ôüÿÂù·œÐ†¾§ôˆûݥؕ¿×—‡¶ªþ­í¡Úæ¿æéøŠï¦›‡ã©¹ÂÁ +½–ßæÖ•û³ÍÊñÝ‹ˆ‡Ö•‡ãº¨¸Ýšÿ½‰¼¯âﺧÜûƒ‹÷¦ª¿®®Üý“½•à——¨Ÿ°šŒÃéèÿç€èš +] +::^ [s0; Window for displaying QTF content.] +:: [s0; HScrollBar] +::= [s0;= +@@image:850&106 +‚ƒˆ€‘€€€ƒïÿ€€€€ø‡œí˜ËÎÂÁìÅ×äºÜƒŒ‹ðàÔ¸ñ‹ƥ˜çŽüÅ £ãÀÁ夎Äü„üžÿŒÁˆ–¶©«äÕÝØéŠ +¸¯§¯éêÛ÷ðïÈøÔïù’ÿ–•íÔ¿ÆÖÞÚæ®†Ã삦ܟˆµ’íÔò։ޙíȽ–“Ö÷Ý“÷Àœö¬ÄêŸø°Ûæý΀ª‘¡ƒÐ“Ì +¯Ž¯’ùä²é¦Ð†ëƒÁÛÖÃãÁª‘¡ƒðÖ‹‚²Ò—µÆóòÊºÝæóÙæÏ¥®÷ÀõÞ·†Ú¶›ÏÖÏñ†Æâåé¸Ô£ÝѦʜӎœÌÌ•½ +ø‚ÛË«§ò­éѶӪÚÅ¥†¦ãå飮•„œúžŠÞÔªÞôÞüú´•íõÊÖ‰ˆ™íœ¦Ÿ¨ÇωƒõÂö‘­ì—Ͷ¯ÝŠöÕ´ÐäÔ²— +냋²€Ê·¤ý°Þ¤À¡õ¢ŸéѶ߫Ûå€Îè¬ð߯¥ô‡Ñ–¨¢—’Š—½—¿ží‡Ûý†Õ´ÐäÔ¯²—ýó¢‚úìºä½Ð­ŠÖ»‹¦ÇÛá í +ß•ˆÉ‘‚…ÜšÍį…¯–¼ï¯è»ÒúíÚņ¦ãôåéàßë“̨½ƒÎÑ¥ûþË‘ú¸Ðö¼êòÛÅ›š‹—¥÷Ÿ¢ç×·ó–áßû¿êƒÁ +Û·ñЪ‘¡ÓãÕÌ ¬ïõ­¦Ìá—ÝËÍчÂì§“ñ±Õ¢Â޾êŸüóûäéôâ·•¸—„ßܴͯø“‘Ƈ‹Œ†ùþ +] +::^ [s0; Horizontal scrollbar.] +:: [s0; ImageCtrl] +::= [s0;= ] +::^ [s0; Static widget displaying image.] +:: [s0; InfoCtrl] +::= [s0;= +@@image:768&156 +€ƒû€™€€€ƒçÿ€€€€ø§œí•ÝŠ€ °†»ñ÷è²³§«„ÞÁž³„¨öÝÃü‹áæãžò“ÁÑҶ¤ØæŽå…–¸ýƒ€ €€€ˆÌ÷ü +¦Ù§ûÞþÁÊԶ·„£üÌ®Œá²Ï˜•Ðì¼ßáß®ö¯ðØóµ¢ç “üðõ¨žÄ™ì¾£¼ˆð㦦«ŠÏêõßâÓ辯áÉûéÆšŒÜ +¾êƒð–ª±†€Ð†ƒþ©¬€¬ +] +::^ [s0; Informational field of StatusBar.] +:: [s0; KeyCtrl] +::= [s0;= +@@image:1179&139 +‚ƒÈ€˜€€€ƒèÿ€€€€ø§œíšÑŽ„ øŒ…½±÷ØË•ìùöŠ›ø‡©ü³Ê¡Å¡ÁÕÈÌÞ—ÒÆãݤÆãöÿí„ø²ÎÖϗ榉¼Š€Õà +”•ø€×àÞµ‡¦×ˉ܂“ýÐÔ«·ŸŒ«ÊŸä†ó¿…ôÂ÷ªùŸ•Ò±”õÓž’»¡ðê”îù•Û†¬ñªü³ÞÍÀ³¯ŽÁ¥§·˜þÈ‹§¡— +퉤ۚñêÿµÔ̫䄑±·Þú¢Êõ³›—Ü¢ô •¡×Ë•³ªØÆÞɆøµŠÞµóÊ©ŠÌ«ùÑ©ùŸ´½²ßÒ‡ñêÖžý¿éÒÍȖǵ² +ÞÏÉÐË¼Ž¾·ƒ‡ø…Òžà•ø€×à”އҫ·š¤ûÏõ„ò«»¡·– +] +::^ [s0; Widget for defining accelerator keys.] +:: [s0; Label] +::= [s0;= +@@image:375&156 +€ƒ¼€™€€€ƒçÿ€€€€ø¯œí—Ñ€ ÌŒÄ™Ø½ÜƬùÜÁ„ô×Éíñ”¨‚É›©û°Òðñ½Ÿ‹ã±Ç—ë’­ÏëÆÕ²ŸÓ´º“ºó”Ì +¡áÙÅŸªí·Æä®Æðæ“æ˜×àä„äÒ꬯¼­…™æÙоó·úθƓŸå݈‰é‡äΘ³Ã¥Ã³Þÿ¢óæÎ®Öš¢ïü¾ä”†€äÃî… +¹§Õ³ë•ô̡ѣ³Ù£çþùºÕÿ”× º€Ú…‘÷¢ +] +::^ [s0; Static text, capable of accelerator key processing.] +:: [s0; LabelBox] +::= [s0;= +@@image:1102&242 +€ƒ˜¿€€€ƒÁÿ€€€€øœí›Ïë›Çž”ÇõÿäðŠ®Á¶ñ¡—ß÷‚Ϲ¦ÐàØ£ÂÇàœÃñ¿ Ð“¡Á‡¤…’¦”ÒŒþŠÆÁ“àƒ +©›–™“˜ÙÖ”•ÙÅ‘ª—¡ÏêºôÖ¾ö¨ÿØÌ·£™•Ë´«ü‡ÁÞ€ßú³ï¾»ïˆ¥¥è”‚€€è€€€ðéËõý›…¿²ïÑĺÄœìÿ +Ëôô¤“é†ä¤²ëúœ³ÛÑÁŽ—Éψ€í´ì¯’ž˜‘€éƒñȪëö¢¯¤¢Ð´‰…¹ÀÝîùÍ€©¤Ó¹šû°á¿ËšµÂØ€²˜Œ¶¿üÿ +„ß þ´½Ÿ±èóÉûŒú¤Íè©ÚÉ™÷ïôDz–§ÛžìŠˆÖšØõ¬¥²Í¹é†ÈþîÅïɦ۽éû–®ÕÕߣØá˲‡³«Û½„Œ†±ªé +ÞˆØÒ®Ó²öæµ³å’Ú±âÃâ¶ÿ¢¯ÆÖ°Èðªôé÷ÙøÄß“½™­™¨ëøÝáöõ˜¤’òÒ¨ˆÔ»Ò®µÑ”²Õú¦Ë©¶ïçó®ÚÉœ +Úû°åüŒÁÎè€éÔ£€€ˆŠ¼‚ÀŸø„Å€¿ðˆ€ÿàÌ‘€þÀ£€ü©Ç€øƒ€‘ð‡žà¼’‚ÀŸ‡®ÜÏøÌ†¾÷€¯žáæÑÞØÊ +ë¥ÒÁت•Ê¿ÑÑÑïÿ·ÆÍ£À§Å²úž‘Áô§Ö£ŒÜ®Çüéî¿Ò˜ë´·ä¾Šîê–éÒ€¸£ãæÑ©ì¤Ìå¹ÜŽ®Æ¹Ï¤óÝõÈýÍø +ÊäóÆðˆ¤‚Á›Çâ™’’µ…˹’ÈøôòŠò’‰ ‘È슷Ƞò…ƒ¬‘¤¢è±ê±µÚù¤–ê“ÚŠ«Ù ‘ˆÈ·è™’Ìž‰•¢’õê +÷‘ô‚ùöéô‹ùÈô€é£€‡ÎøÔõíý„æÔΑÁÿ†­»Óõ¨úÚô¡ÄÀÒ둤‚‰÷ãæ‘Ú΄¥Œú«ì¾ÀŸ±ÞèÏñöôˆ’îàìÑ +«ñññ½Þ§ªÞÎ’èï°õ©™®ãÎï謀ï’ÅÍ£úØÄÍÓлœ“’ýÜ“¶í÷°ÌÁºæù¹ƒöùÈûÚÎû¤¶¾§¨€Œ€žž‘ÄÍæÓÒ£€† +¯•Þü¾Î»Àà­€ƒƒþ¿ðˆ€ÿðü¼ÚÝý鯑¯®Ýšššáº¾¶¶ýóæ•ÝÂáåßûäæÉ¦ƒÇŸÓ†å³Ç·î­Ž¸Î¯¬¬¬®î +…¼úµÝ¨ì®°®¾˜™™ºý´»ƒ«Ø¦ƒÇìŸÓˆ›Ç”£ÿ‰‰Ù­­Ÿ÷Ã÷÷«•ÚʵڭÕêÅ…âÛÚ¾¿ï¼žÑû¡´ÿ‡Ž¤ÝÁ­øíÇ +ÉîÉå™–·š÷é傺·ŽÖ™ÂÁ£ª–èþÆ×ÎÑÞÁÞ‹úÎúùýÙü¶³»»Û¢½ëªë¯û¦‡á—‚¯†­¶øï˯€Éö»Âã·¾ö£Áž +ã㡜¼¢’û›ª…‘£•—ø«×ÿ¼šß̱¿™ÿüæñˣш‚àééÈá¾ÿÏ´Êêö¤é¥ÇÑàÅØ„»Ž›øÎÙöÒ둬۟»‘ Ïñ +‘ÈŽžÑó«ã•Ü⥢‰žÈž¿ÝþíùîïÝÜÅï®Öÿý¨·›ÍíÓË—çüÒ”­¯ Ô×ê®Ó¦üðÒ„ã‚çô¼Ò‹½Ëà£ÎÛøºÎôâ² +²ýôÉЗơÀøø´´ôÍžÛ©äÞ¯®ñÓʤ¤ºö뛵óÏÎïÔ÷ŽÚ­ÖÎÎéø´øÒ›£éµ¶ªÍüÞí®Ó„Âà‚ïϰ±ÇÞ肵¦ž +ŸÉ¾éí´‘ÚÀÆ«ùäóÍÿê¾ú¤¨Ëã ¡œ¼š››®°”¶©Ç‡ïÓ©œ“’ï—ŸûæÜÐŒÎøÏÏß¼ø…¿Ç¥ÇšâšÛééÆå㜩øè +áìêϰÓðÚÁØÌ½²ÅèÚ¥¥ÆÎû”ÛÓÙ·¾¦• „Ç€¡Ã¸ø´¹ùÔ÷ññÁ­Ö£¸œ½úóˆÊ¹êډȢçïžþÑŽÎÎÎîÜÉùöææËõä +¹¥äÒ¤¦Òâ»àŽžÅƒ—ËîÒÌðüàÚÞ€˜û°éôíÓ¹±³¶©¾ú”§¨ññȎƞѽîääªðØü«þªú¡óñ¡Ø­Š•ˆÀòôððÄûŸ +Ú¿ß²•º¼­ÚÙħ Ö£üÓÆ¤àÅÿÞ°íϰí𦫚»ÏŸÏõ¨ö„Õòè㢉ʸüœ²„Û÷ÇàóóßÍÌÌîçî–‚ ¿÷þîçèʕم +—…¯µÉ±ÌÓåðñÉ­å¿ áÊû“‰Þôªå›ˆ¥ãÔ«”胖†Çôâå‚ýôÉÐ÷Ƙ¡Ã¸ÿžáþÿþþèèôÒÒÇÃíúî¥÷’›ª…ºÑ™ +íæáªÈôðèìãŠñùýÝÚËÚëüþž½±˜ŽÏÒ¿Ôò™«•ÑÏÈ©­ÞÃÁ›ºãù‘û”÷ñÀï½¢ð‡žàļ‚ÀŸø„€¢¿ðˆ€ÿà‘ +æ€þÀ£€üÌÇ€øÃû„•ª€ˆ¥Ö”¨„–€¥£â°€€‰¾»Œ€€†€¨ü‡¥Û¹ž +] +::^ [s0; Static Ctrl for visually grouping other Ctrls.] +:: [s0; [^topic`:`/`/CtrlLib`/src`/LineEdit`$en`-us^ LineEdit]] +::= [s0;= +@@image:875&475 +‚ƒŒ€Ì€€€ƒ´ÿ€€€€øƒœíÜÉîÔ±êý×âœÜȖ‹°á‚Šˆ£ ö¬˜„‚«Ä‚’ «•ˆˆƒ²ù¤€‰Éºê̺˜œÓå—‡ïö¿ +øÈ½½µúÛõ﫞ëſݎ󔩻¦”𬜪€¡žáÃö½Â‡ú„êÀžõÝ×±Û›Ó̘õ­Ò½êÊ®’ÖÛÔ»³ÌÝï´®›…Çף··øâ +ÊêÇ„ðõ‘ÜÂï¼—ÿÀµ×ÕàÑèù Ü¿·ÈÞÌêËÕø²ÛŒ¹õݨòòÌÙ€ûŠï®ÇîÈÈØòô°ÌùãÌѪٹ›ÑÆ¥×ÁôþæÔÅà +‰Ò‡óѸóôÖ¶Ë”ô¼²™ÇÃö¤Ñ±ðä³Ç놮ü»ŸÒÅ»šøùÔ–†¹Êâ¾ê£æÒϺš±ý¾ª˜¹º¨«÷£¥×‰•í‰ÇÂö¤ƒ¡ +ŽËïíÅ›ŸªÕ³÷Öûɳ¤›«â‰õ¼ŽŸÉꑾԣü¨ºÇøÐð¡žÙáý‡ú„ÂõˆŸÙÿ‡µ•ÑðíúŸÆŸ³õò³ â™ÿêјî‘Ý +‚Ö¹ÇÛ¼¬´ø•‹ÔõÊŒŽå–Ëù×ÔÊë½ÞÁœ¡Ç¢ä±ò¡áàÆ¢ÛÈ’Í̦ÅÊ™åÕò‚Ëכ•Ì œÊûËõ³´Ç—’¯ß® å®á +ùä嫵ÞÜŸ•æî£ô˲•ý¸ÌÄ£Ù¸ÕôÖ¨˜•Ù¿ÖŸõ™¡â¾Îª‹©›¹ëׯð‘žë͟ݟǹ†–ù”’ª½™Â“©çºÒ¯óמ +¯þýˆŒÄ·°•¯¥Ìæíý¹Ý³ ©ªáÀ·¦‚̃¼º¬½çÀ‡ú„ÉõˆŸê‘¾ÔÔ£ü¨ÇøÐËð¡žáý•‡ú„õˆŸÉꑾԣü¨ +ºÇøÐð¡žÙáý‡ú„’õˆŸê‘¾©Ô£ü¨ÇøÐ“ðá½ÚÜûù¯„¤÷èÞýãéÛ÷ŸŠÿ­—ÝÌš˜›¡š¹Æ×ÿÖúüÈã–´™øäÆ +î翬ìîìäû·™·³£ã°”ø´ýÛø›Ÿ›³ Éù¿½²ö™Ùçøï·åÎÎ͘£Èôø´Úý»úÛŸ›³ ÉÄ®£óƘ¸ýæïðúÛîå +ŸÂÂܯÈðüбŒïëÝÚçý»Ûß›ÓÛ’´ÒÞ¢’ûä…Þ¼Ýóé²ÁŒèÇ®‹…â«ûÐä»öó…úÿ­ØÂÕ¿·ï³Ô˜¼é¼½ŒÄäÀ£Õ˧ +›ÃŸÁæÑê­µ†½ªÖÂÕÿϰ·Ò˜…ÍöúúôäæÛˆöðÞ»²¢ñˆÌöáÈ£Š¥ÜÇýß÷×›³Ôú´Þê٣ǯÔ׌íݣ˗±Ä£žÐÌÇ +Œ•˸ú¶ÀšÓèšéøÌ»£å‘»–ݦ²–ë±ìÑýµ’®þ£Ã­ÙÆŒµ·ÚöÇèÑ«¥Ëû¯»È¼ò§ú²õäÑÅ’®þãÇ£ÝÆ¬èòÀ +µ£Å—Î†Ë‘ÃæÑâÅÞ¸âúù­È«ÿäǼþãò¦ñö’—‘ÞïÇÏ翪‘šŒî¥ùþ÷ÄãÁéõŸžìœ¶¦·é¤½þĤ÷œá廄²É¹Ã´ž +ÖÿÙéñ㨖´ù軯³«³ÆÄ™®·³ä¼ÎˆÇ’£Ñ¿˜œ¶æöÁ“‡×ûÜûÍüüИ…Íæ¨žÝ©ÆÊë̤ͣõÈ‹©‰¿ü”©ü‰ +Œöô +] +::^ [s0; Highly customizable raw text editor, LF is the end of line, +fixed width font.] +:: [s0; LNGCtrl] +::= [s0;= +@@image:400&162 +€ƒÀ€š€€€ƒæÿ€€€€ø¯œí—ÝŠ‚°º”€û¿Þ¡Çëè¶çèê¾ù‹®¢‚ˆîÊ×Ш°¢©ÈºÛêÈ’èÖ»àÀØ›ÊÑ•þîàá»ØŽÛ +ëü”íº°ðœ°­ž«×ÕëÝã˜öۼ迱ª¨ð§Ý×ÔÇß½¾›ƒ„‹†ÚÒÃÿùÃÀÛêé¿ð¼ß˜þ¥ïà®É¡Ü«®ªŒŒ¥ûÏ¡† +ü¿ü—Á€ï«ŸÜ‹üçû§—†Üý£ƒÚ͘÷Ð®ÔØÙåΨú§Û©øš»Û‡…ª‚й•³™æ¿º¿šÁÌÿÛ»ƒÌØØ¨ƒêï¿ò¢Á„ŒæÁÿ +«²¹±˜¶Àß›ú‰¿‘ÖÂäý¯ÔþÖúÊÃóä…ü®þ˜ý‚缺‹Ðù¹Ÿù×ýŸÄ¬œß‚˜ÿ£å‰ƒ›¶ßßËõ±èÇë︞†½ýæÍÿÿÌ›²¿ +¶ñðþ¦ÂŸŸŠÍ„¿¿—”ä‰àƒÁ¯Ïˆ +] +::^ [s0; Language selection Ctrl.] +:: [s0; [^topic`:`/`/CtrlLib`/src`/MenuBar`$en`-us^ MenuBar]] +::= [s0;= +@@image:753&581 +‚ƒ…€ç€€€ƒ™ÿ€€€€øœíÏë“Áþ”Ç·õßðŸýðªÞ¬Ø‹½Èù•ï‚ÂÁ¼îø“ꥅ‰íÈѪúð¢¤ôƒ”ƒÇÑ둬¼­’Ä€’–” +ۊ⥅öÚù®Ã¢ëìüÚßÉþ˜÷’ü¿ž¼Â²™ù﮾ûÞ˜äêöúº¸Ž£‹Û“ÑåÎô¥³óŒã¿ºº£ìæ·îŸÍŽìµýÕæçþ·• +ŠåŽË÷·ú«²¿¿¾Ãü ¸Ø™ð°²¹ààåÀÁÊœî¸â´Œ’רÑñÄ’ÂÆ›½¥µÒ…¥ŒÛÞ„‡ûΗ›ØÖšû„–˜Èø®‘åá’㣠+Äœð„·Âœî“¹ð¨•¬ù¢µ¶Ÿé¶äôúÖ²Û¿ÁŠ”¢»ý’ý¸›ƒ¬å•º¤“¹ç¯ÏµÃ‘‘î•ÇÄ힣äýòî³Ï䞟ÿá„òªÃ´Æ½ +¼êö”‹ÃᘌÿœùÌ‘¬ðÊ€‡žìȸô’Ë…ÃÿÐ÷ÿ’ƒÊñ¹Ã¸”Ûˆ¸¼´Å®åƆƑϤܷ¨í¸½æóý­ÑÇÔ¯éÒ»ŸßÏåÅ +ùë†ÕçŽá€íƒ–‡’²ã‹€ã¢¸Ø™ðû°²¡ŽÆ›çü°’³áˆ¡àž’Ó¾¸²¡›ˆðÊŸö…Ç¢õ‹ˆÌ¶ààŽåÀÁÊ’œÇ Çǧ§§ýþ +¿ÿìììüüœ€¸èñÄé‡ú­Žæ³¹µµ ¥ÀœŸŸ‹„¡©ˆÇҌɃ½·¹æðÍýÖð©ñ¥¸Ö××ä…‘ÃÔ­Š†ðÄÚï¢ÌÌÌñ¦¶üÒãó +ç¹Ä¸’œ««ó«ÆÃàèõ®ú§§§ÕãàÜåÆÇòá¨îÕÉðÚëµÚ½ìÞ§Á¡äºñžæ«´ÊÙð¤¦é¢çËÅ™žü’Çæ¬Ú¢®ßºÊ¹³ÃýŸ +×øÄÅ–‡±œ–Ø’‘œ–­ÒŽ·³…ݣLjá«Í¶¶ÕØãñì˜ÇœŽ™áÏ÷Ü‘ŽÛÍâÀ½…Ç«Õ⊿ö˜óßÖ©¦ô–™¾ø¤”éÙî…Æã +õ‚£ŠâÝÈÃ…çæÈŽÖ†œ‘¬Œ¸Ø™§Žî¨¤äÏÆß–» Ò²ƒ¸Îè剃ü³Ø€„ÛŽœÐ˜µ††¿•ƒ‡“€‡«‡«‡à«‡«µð© +ÿœ“€ƒ•€ƒ×•Âàж—áØóñ·ìŽ‘±øœŒÇ‰½™Ò»ô™ÂŸðå»¤í¸˜€Ãø¯Ò³ÃÒňò‰ÜØ™Œ…Åð¾ÐÚš¯²¹Š±Í¸ŒÓ­Ÿ +éèï¹Î¸¦ÚðÑðì뇭Ÿ¡À‹ÇÌݬìéÓÒŽÌߦؤ»ìçÖ•ü¥‰¸ Ý»”·ÂãðÜ›’ÆÁð¸Šö²ßÕÆõÅÁÊö¨Æ«œ—ØÆ +‡Íìßïî‹•è¿Òœ¾Š¢¹›¹©€Žãã¦ÐÓ³àÈóþƒ‚¨¤€ƒ‡•𮫇€«‡«‡«Êùâ ß¹¹Áá–ƒ‡”ÆÀÁ¶ÊÀÁÊÀÁÊ +ÛÀÁÊÀÁÊ™ôžÝà •ðå°’Š•«…É®Žã³ú›’ØÇœÓ…ÉŽÿ³©žò¨ÀÁÊÅ„¸Œ›ûœÕÐìš”Œ‡ñÓ½Žü ï­šÂÑ–«ý•ð +€€‡Ÿ±Ü»Ê¤œ÷ì”þíðèìŠÕÎÏ¡ðÀ¥‰«ÑýÉ’ñ¹Çôº…ï¬ÐØ©©ÖÃÍ¡¢‘þ“ŒÒɸöèÿ €Šµì€€ŽÚ‡«¹šðÀÈ̈ãñ +Ôåü¦éÞƒû¹­š¬¯¯ø¯¬¬ÌÏÏ‹Îãñï±ûƒ‰Ûã냉ƒ§ÜŸÎ€Ý¾õ³”¦ÉÄ¥ÂÌâÀ´†ÞËË¿ãë£áÕÇյÅÛíùÁõŠŽ +ûƒýÝå“õÒçÒ’€¨Þå“ԯ߬̀½¸ªÿ§®É§ðúÚÚú™›ôΆµñìö»òã蜕œ‡‡­Îѯß÷ÞýþåôöóÃÓñð÷ãûæ¤Ù³§ +ñÚ–©Ûš–•‘È‹ÁÂÔªþ¿Ÿ¼óÖßÁñûð› ÒÃÝÛ•ÕËð™”ìûýê­Ç§…å‘ÀÿÞ€ˆÅ +] +::^ [s0; Menu.] +:: [s0; [^topic`:`/`/CtrlLib`/src`/Option`$en`-us^ Option]] +::= [s0;= +@@image:618&143 +€ƒã€—€€€ƒéÿ€€€€ø§œí—á‹‚À¶Œ†ýÏý§þÄòȈ ¡¢‚½ˆÄÔ·Æ¤ã†ø»×éÒЛ×ï—ôöÛ½¾†÷Ú㾾ܮǗËõúœŽ +¼–ý½Ï¯‹ Åœ¸ò¼¿ó”˜åÙÕÕå•í‘Ûº¨ŒŠµÞÍ£‚ʲŒü§´Èž¢ÇªõÌ·ÔßÐÁÈ ¹ˆÑÑ”ÒÎÐÇŠ”èÿ—«ÆÔï¿ ÷ +¨ÀÍÆš¨…—¨õÝ·»¨í‹“â»ñÖ‡¬Á‘¢–£¦Äð±ŒÃêë…ÉÊçÍËŒá伿ÀõŠÌÔ«€¼ùæ¥Õº©«€–Ðä¤Ééºõ¬‚µ¸ö +õ”¥À°œ¥š¸á­á££ä»„®˜‰öœ¡šš¹ÀᎭåï¦ûĈª¶ÇµÊ¼ÛÀ©”¨¶ˆÑ•ƒ¿õÀÂãÀãøÅªˆÔ–ÞµÚ‚ŒÏà꺎Ƿ +í¤ôãØ‘Ôâ„¶Éù„äÙæÀ°¾ÄŒÊžÝÚáÇ͔‹¾£–ÍƒóÒ¢¨Ùº…°ùö×ͱ€¢äÊýßÛÀý¡ßü¿žËåò¹¸þÛÏýõøò + +] +::^ [s0; On`-off (or on`-off`-null) option.] +:: [s0; [^topic`:`/`/CtrlLib`/src`/OptionTree`$en`-us^ OptionTree]] +::= [s0;= +@@image:700&1000 +ˆƒð€ €€€‚àÿ€€€€ø§œíáêÛ°ú˜†ó§œ¤—ÑØ¹†»Åî°„Ÿ»Ïˆ£”ÊÀ‰¡”Ê™ã챟¦¬¦„õÙ«–ä×–¬½ÝùÑ«©í¼• +ØåÉï„•¢„Í•Îçϱ¯ûÚ§ÙŸ“„ÿ¾¶íêÇÄåòýù¹ñüüüò¿òòúŸÇãÁ«Ÿ¢º±¼àÓßïûúôÜÏïéƒìÌ’ßÏËÄÓ—§ÿ +ãµÏûÖØõóÉò骥è¢ÓËüûû£Ïèóâþã©ú¼þÞ¯ÚÛ’ÏÑç¬Íö›÷ì–ÎÞ³»ª÷¼ýÍ·ä„Ö¾ûô›ÔÅž‘¨Ÿß¿ýµ +”¯Ó¢Ý醳ÓէﯩÄÔ³¥âÌ®í¼´¥‘í»öåî¾Ó¢Ïß“¢Ï¿ÚúˆòÄ«£ðÞ§³³ÿç•®¦Þ§é—‰¾¼ÿÏ„ëç¬Ðñ”³«¹¢ÏÈ +݃šŸ·ÛÍôéùç¢æúùÕÙïýæïìܵ§øô™ÚÕýýâ±¡ïæºÁÿÔ׸®–Úäß߉˜û‘û¸ó¥÷„¤„½‰’ÿè·¸û¾‹œëÓËüÿÿ +ÛôÙô¬êí¸ê»™ã÷“ÇÑÒ‘¡µªÖ妤„€öèIJ Ð§–úÄ’£öÉü¤’¿×å¹´Þ羲ʶүدÏÎÇó†êþ§ùÌÈÐÇêÍß +ÐçÆ¾²¦Ï¿‘ñ”ýæä£ãÕú”Ë‹å£ÝãÿÌ¥ûûÞä¾’ÞíÿÄû×ܘŒâÓÕ•ÈǺçé¶ä“Áæ££Ðæ¾ðòܸþÇÂùÜ¥¬ô‰…¾± +ï¤ú¤ÿ°ô‰¥…¾±àý²ÿâ…÷¹ø¾²›ÕÏÁò‘¸Ï“ýè“×ëÕ­½œöÜÚ÷ü‰ïܧ©–Ʀ½»ÌÝÉ€ðõαŸ®¶ŸÑø²¢ƒëǬƒú” +†ßæ·¶ŸùõÄø¸„ýžÝ¦¸ªÐ¿Ý»¹¿”ñªæ£†Žä‘ª‚¾Å™š³Ôëªæ£ª—™ßªŒÏÛíæï̘üäèÉÀýæä£Û¾ëŸßšåüŽ™ +½ðüŽ…óËÂØè“‹ýâ¡ÜϬô‰…¾±×°¿„¥Ò§×©ƒÄ’㓵žÈÄï²ïÐÙëþÁü¼ãôù´ä󴼣㽭ȬïвÏáæªý½ˆö +צíÍäê—óäŽÃêúãÓè¨õå†ýŽÓ®þª”õ‹æú¥·šÍ«¦ïˆëìöÀÀýú—ôùÌÞ‘Þí—ˆïϧ­‡±ªÓʳ™£¬‡ ÉšŸñ½Èª +Ë©ãÍ®‡‰ƒ¿ßàøóÅ‚Øè“‹ýâ©íó´ÿ—ýâá¡Ï¬õýö×ß¿ªî³³ü¤ÿ„ÏøïËåå £­ÿŸîÓÛœ‰ŠÌŸìÌüÇÚ£¨ÏÕ‰ +«£¼ü„¾ÅÍç•›´û±«Ìâ¾—š¸›‘÷˜Í¼ü¤åùßÒêõ³³ü¤ÆúûÙÙ¾ÒýãþÞÙ¾Ò½ÿÁÙÙ¾ÒýüÔèÙ¾ÒݧÇï–Íí¿µè“‹ +äýâ¡Ï¬ô‰ý…¾±°¿„¥õºÏæ«”Îú»ÔÈãÍó·ŽÖ”ÖŸ¯ã™Þ‘柼ƒûéÎÀŽš÷ŒÙÔþ–Ê»ØþªÓåö³£ï˜ÖÙ§­áÞ±…æ +úµàÞ…ã´÷’†¾±Ð§Ö–úÄŸØè‚“ËèùÄéÆ‘Ë£ÊÓèùœª½‘õ¾”úœžÇ›ƒë¨™÷¼Žúô¹ïŒøžÇ°¾‹½ùãØŸßž +á‡ÿžÇª…ž÷Ç¡èÓâœõÐ¼Žƒýúäç²‘Š¾¥úË£¦ÊÃñ»–ίòá¡Ï¬ô‰…澱Ч–úÄÓÂþ’–æÛ–Á­¿ˆçꑌ¡§êýÅ  +ÅïØÝíÏÀÖäßÄæ£ûô¾·Õ†¼Ã®Êʨð‰Ú¢ãýÔÅÆÞ±šÏÿ˜çÿÓåæö„¿£ûÜÝÿ‘Ÿ÷Ä÷ŸºàŸËú‹¤¼Ã¼¾Ö—ì°þž +§¨ÀéŸ˜æØ¸þ§„Â䈡„²ùˆ‡¾¿ªô +] +::^ [s0; Tree of options.] +:: [s0; ParentCtrl] +::= [s0;= ] +::^ [s0; Parent for grouping widgets in TabCtrl and similar situations.] +:: [s0; Picture] +::= [s0;= ] +::^ [s0; Static widget displaying Drawing.] +:: [s0; PopUpTable] +::= [s0;= +@@image:737&377 +‚ƒŠ€Ç€€€ƒ¹ÿ€€€€øœíœÏë“ÁÖ”Ç÷ßêŸà ¿ Þ½©¢§×Ń ¢ˆ—ÑÍêÁ´©¢‘ Øƒ¶šÃÄÓ ¬¹–ë‹¥ÊîËÉÁˆ¿¢© +½¨Ðö˜Ëº³¡¸Ìææ½ù÷³ÙÌÎÚ÷åðÑö§ïæ½™çÏÎìö³¤ÿíûÃÿ¿Ýº÷ª–”ÅѼª‡ƒ’¤Ü¾Èäá¬øäÕúýýãË¿”“žÂ +¤ß èËÄú°öÖøšÒéýÝ¢˜Óñ¯¡²î—âÌÇ¿¶Ê¿þ•ÃαἙ³°…ÓáƒËÝ º‘«€ð¡ôæ®®±å€ȩ̀äãº¡Š›Ó‰Ù”º¯ +Ð߼ʌ¢£ž§ô¬ÍÒüèîÚÇÖ„‚¥Êñ‹ùÓ‡õ盯µ’ü°í¤óê°žÙªÓ±“Òéôº½Þï€ïïï°˜Ø×®¶¦ã™Î­Ú”ê­×÷¶Öú +×ÝíÔô’òļ¡‘Ó¡Ó™«ñÌŠÀ›ë­îÃç÷¸äàñúá‡Î™Ž•Αݻ·ª‹‹ëÿ«Í¯ŸÞÉïäÜ齙ޒ“ã§Î¿¾ýíÔ•â…Û +ÆÕü© ¥ÒÜžåÌÇʧÐШ´šö»à­žŒºÆ—¨ôØÆ¨Ì§€ÃºÊÝ¢Þ٘Ρ´¢µä¾âʇﻖÁÑ™™½ç¡µØÒÑá㺠+øìÌ犌é„ü츘•«˜âÎÈ⺡‹é„¬Šä¯Ü¤¼Éˆò”½Ðåÿę̀™¶™û•ˆôôÂØ×é䲯ɼ´ÿ þÑ´•ôôÀº“¥³‰öÓÉ +ã¡£ü·êô÷ûŸ¡ž÷èБɿ›Õö•˜ýÓ¡’䘕›–Ùâ̬„Ú·¦ï¡´ Ü–ÇÂÈ¿ ‡£Á×çþ굉ŸÙ§Ûן¼®¾ýʳÜ×àʇê +½¸òŒŒ€ñÓØ¨¢ý±µºèŒÑ¨ìŒ—ÀÌ»î¯Þ˘ŒÜÀ뜺ø²Ð¼Ü³´ÆÂ›¥“Ò±öω˜ÁÉŒÊʧ𨇤ÏãàÐÔ‡Üÿë‚á +°ÐΩô’®åôÂÇÙÇ÷µۼ™ëÕ­Á—Ì…ú¡’“ÕÙ³§¯Þ¾ì¿÷ÿæÒ¥ˆÐä…•æ•­ÐŽ¥Öì»ßã–ÑÆœ¯úÁ겺ò“µ²²Å +ñ£²–¦—¨ñØØ¿µ–à‘‹ý‚š¡Œ…”…òŠ÷×øŒÝŒ”›Óý‡åÓ̧ä©ôÃ¬ïŠØ¾•¡ßû¨óÊŠõ ‡ˆ¿ß‰ØÌ§œä±Åô +’–Ó‰ÙÓ§½¨ä¼‰é„¬Ì§ºú›¢ÿ‰œú”ôÎÍÿÿéôôÓÃʧڶõ®—Β阘ó³ò‚朞ôª”¤¸î‘ò‡¼åÄúâ€Õ¬¤”äÒÝÌ +§ãС»Û¯Ã‚Š‚”ñ©­£Í¢§ø¨¯ºº®¸¬þ”íÄöÒ­ÈòŒïÓÛÁ£°¤ÚЗëËÖðÆþù„Ç•«èÕ‡Ò˜êºø­¹¢Þ˺ÊÁ +×սѱ¶ÏŸÂú…‡¸ÀùÂÒʧ±÷℣ܾóÇÎ’üÙÃŒåú§Šê›¾Äàëˆâ³ã”°¤Ýßµäî¼ö§©èï´šåÓ‘ãä¾ê–Ïżë +¸£à±ÅôÜÂÖ„î˜âåü®èÇ”¢ýýÍýΧÓì¶ËïåòüüüåüÅâ´Å˜‹‘ú—ãýê¾°ÅÝïÛ»Û«­•åú­Úª¬®ßˆéÆ–¹¡“ +ÒÈù½êÅþîǶÅÒ§€í¬‹·ÖÖ›â¥äûËÜ„…ö¨Ä¬‘ÿŠò±£þÿ€ÌóÓ +] +::^ [s0; ArrayCtrl derived table suitable for displaying drop`-down lists.] +:: [s0; [^topic`:`/`/CtrlLib`/src`/Progress`$en`-us^ Progress]] +::= [s0;= +@@image:1155&364 +€ƒÆè€€€ƒ˜ÿ€€€€ø‡œí‰Ð”×ãÞÀû °š­Ðä“ɬ׼ž«øƒ¨ž‰ˆ‘ÆÎÁÄ´€„¢Ñ³Æä³û¥ÒٶͬҘïýÌ +ÇÜÔ—Ú£¹ÌźǢîý¦«•ë—ñ“ðÂ÷ ˆ°³½—‡ ê ‚ ûÿ󆺷ÍÜÌàѳÿãÿÕ¯ºÞûãÏë·½Íÿ扽þô÷ôôô„ÉÜÔ…Éô‘ +ÀÅÞ£¬ªµ„‘ÛÁ¥ÔòËÕܺ–®¥«ìŒÜºžÛªå›Òô¤“ÖÉòò•Òɭ¥辂åÑõЧ‰£ð䙥µ°æøã†ŠÆÈË”ŠÛ ¦À† +ú”µ¤¾ÀÀÍþ®é°“¨Èþ«š¥ùíïöö¼ðß„áï®õŒÞÞ‘ôá†ÇÐÇ¡»‰úỉ³÷Ú…¸ÖÀœï¥Ç‡ûÑÿŠîƒõží¡Â±¥½ˆ€ +°Ý±ðÔÿèÍ›ÈÍ…µËÖÙ癞ôöˆÙÓ¯Ýðêæ²©‡î¥€×Ôã÷˜Á©Âª ‚ ö€ƒ¨¹Â¢•“ö›Ôˆ´†„…Ū£±ƒšŠÈóÚ +Æ®¹‹µ÷ÖÏÜœŸ¸Ø¥—ÄðÃ’Õ…ð«¸ê¨à·ïº¦Óß¼Öðœû½•Ý·¿ƒ ùØý² ÍРÿúžûÐÅÓšˆ‚¦ÈÖÜÀº«Õ¨²Ô—Ф· +íÕ§«Å·§Ñº·«Þ’ÑÄ­ƒ¿Å­µ®ÓïÚÁєɨµ‘”ÖÍ–‘›Ì•Ãõˆ€‰ªîÞ¥®ÌᶺÝê‚·´ÜŒœ¶¬¯ÔÓ»ÁëÖŠ±ÛŽäÕØ +ФÆÖ½‚ Ý¡ðʵáÅ•äé…ÆÈ€™•šÊÖ伉г•’ÐɈ­€ˆ¤²…·ÈÁæÓ·Øä—è¼íÖ¼×ï¨Ñ¹ø¨´ù•ŒÎ¸áøÂ µóÚÄ« +Ÿ·Ì°àªšÒºÇøµ‚˜Ð£éˆ™Ö‚£¼ÌþɪìÝú¾‡ú®½¹®û©”ûÛ…ßø…®Ç¬èŒ¢ƒÏüÿêÊÌù‰ÌŠïÛ±šáá±±‰À…ºé® +•Øæú½ƒ ˆßƒõ¶ÂΗΈö㫲÷êÛð«•ÕŸ¼®ßó’¡Ý¯×äÊÏøì…ê•óÕÓ¯ÌׯŸ…¨‘ÒÂåÒ¤ÂËÂÄŠÙ˜ÅÄ¢„É·ËË +»²ß¯ç‚Î’…ƒÿƪ ¾ÆøÜ–ÑꉛƳ‹…¢ëÏÿÏÒöñ™Ñ™žóØŸñÂñ†Ž—‘†ÛÄ­Æáˆ½ÆíõöÍ·¿ÛÞÑ÷ùǵ‡Þ +¿«Ú¾ÑðþºÛÃïòôïäëÝßکۼܷä¹Ý·±Å›Ÿù¤Ù—Ë缬ƒÎ˜Ý¡®Ú†°ü¯Ñ“ùÃ׋Éèáß‘—¹Ÿþ›ÆÞ¤˜‚Öè“áé´ñ +–šË¼Þá°æ‡Ó»Ž¤¬¿‘‹¤‘–ÀÏ΂•®«ÙÈɱ˜­ÿ§«ßîÈÞú‚ƒµ·ÿ½µúç›ÕêŸä›ÞÛ«ÿÆÝŽî·Ù µªþËŠÝ›Ëô +›Ò´ùñüî×´ú•ù•©ÓìÊ–ùâÒóËäÄ™Œž÷ÎéÚèòŠ­ì ‡ÓõÔߊ½ÿï§§ðæá¶Í·‘¶è½£û ÝºÍî€èž¹Œ‰¦‹…ÔðÑ +Š„°Ò·¡™Ü±¾ùøûÍî÷÷ª¶­·¼›«Øÿ»Ó÷ëôííë©Ú¼ÄÍÚ˜¸¾§ŠÏÙÄ‹Æá™³Õé¡”•ɓˢƒ‹“¦ö£ÆÃÉ´ö˜ýâ¹³Ñà +Ûøì’Ó…áð¬§à—‰¤†Ç£…“òäÞÎÈæŸ­ºÄˆâçžÄñÝô–©òˆÆëóâ«Ü÷î®Þõ–èõÜÜøƒ‰ä§Šèצð¹²õíæ‚õò¹ªÔ +ÔÕÊôˆ·œÁøÒ©ªÏ˜Œøéñ¸¯Ã†þ‘£§–˜Œ†ùóè°ú…“ÄÓñÐ’²ãß–¤ðÖ˵ŠÑ™öû¦‡˜ý‰ìêƒäƒÖ“á£á‰ùøÕì + õ÷ÆÿßÜÜ£ÓÐæ¿¯è¾ÄßÏÈæòŽéŠõ¹«ÑùšÜÙÕûëªë¶½†½³›ÊŠ¶êœ©ÞžŽ´º«“¦³¸²˜þüùü„˲‚«£éŸÆÃ +֤ܸŸ®Äã´ÄÜŠîß©¦Û¨¹Èþ™ïš´ªâÛÍ‹üŸþØØëÅæû©Í×®ÚšüîÃï¿·ˆçƒÎ…¥ú鈢½âŸòˆòˆØðè´Ÿµ€Î +ËšÉàû·ÙºÞ·Ò™¼ê•ó×ÔËÂÔÉÓÍØº¯ž­Œ¬áˆ›÷É–øåËŒ¦£ßªê¹Òdz£ãŒï‹¢ËÜٵ뷼ûÒ§ºøÑ×Ç›éÞ¿¦ +ÂøóÑâúêæòÑÿÉ…¾ËªÄ™äøíÇ꺴™Ïöû×ú³“‚Îè´òø¡¼´ºª‹Ñº·¨³ôﭤˋ©Úõ‰Ìá¸äë¶ë¬›¡Œ¾š¦”¬ˆý +¥éòôËß͘¦ÀŒžÒêÛèΘۃŒàåš×þ™ìê¨ùê–ÿËüçºñŸ¹…æ¥á§èǾÿ¨íþ‘ç®Àäý§îÓ·ÕÚ÷ê¶¹ ÍÚ¨µ©òýí… +¡ö®§·ˆŒ¶üÀò‰ÛëØÞ–’‹ÙŒõŽÇœÁù»ä¾Â¯¾³ôõµ Ãž¢¿¯èÃÝôÙƒ¢ˆÊ‡Ãúꨭó•šè»ì¦îÃÞŠ™ÐÞ´ŒÎ +ñ µù‰üêÅޖד¨ãÆ«Îㆫ¢ßÔɽ†ÕÆŒ¼²èÿä×Óú›Œ¦ýÝôà߈ѠÓöôÒò—–é… ¦«Å³êëé©ô¯ñŸÀÃòäÙµ™¹ +Õû”–åÊúÐùÓ·ÕÿûãÍÌÐÌÞô¯˜ôÃæë§×è…¯¦ôÝ¡ŸÜ¸õš†çÌèý槈Î˶þ‹ý¬¾÷œÙôÎ€ÕÆÅþ½ã¡öù‹“çÔ’˜ +ÿ²ï‹É·ÇôáøïÂ¢Ž’àÊ¿•Ï„ü§öóÝ‘®¢úñƒ¸›ñÕݡݶ±ºåšöí¹œ®ÿ‰îõ”ëíú¥šõñ䊺“Õ‘Ìçþɸ¾á”Ÿ» +ËŒ—æåÔ㋇Þýùè×êÓú’£Ã®›Íºé裃¾è¼âô§ÎÜòÛ·ûþÑÊÅ„¥îõŠæá¤º÷Û°ü³êé—ÄŠÊúŖ¦ëöæí¿©Ç¹ +ýäÚ¦ªïÜŸ”ü¢‹éñ‘șþïÞÑÂãíÂ꼤¦œóæ¥ãŽ™ƒ‹˜ÊÙÐü»ý‘ߤÇÈë͈¼î¦ÃéÄàþÕº¨íë‰ÚõÉߺ×äÚ¼øÍ +òš™ÅŸ­•ËÒÆÕ¬ž¨á‘ÔżºÚàà·“ú£üëˆÑï’侚ŒžÒ…ÑòΣ—ë“›¾’öß¡ëƒí²ÍЪ²Ì׊ùêµô +íÚ·þ«šÍæÍ®°½ûÜ·Ê¥Þ²«šúµ‹•Á÷ÚÚ“ø³Ï‰ã´šÍÕ¼Âׯ¿Ì‚­·´Òï„Ö¦áâɤ· –˜û½®ƒàð®ŒÒ™«þ徿õ +¸âðÙ›— Ù —ç–¹«ŒæíîµÕë’‡êðâ‡èåýÔ‹ýúÝ›Û÷Û ìß’£Ã«‰Ôœ“”Äèç¿¢¤ÆÃ‘˜í ºò“£³Ûú¬»ºÃÛ¹øÅõÞ +‰Ã¾ºðÛ­¥ÂÉ´ôñ±ÿèîËÍ㽡Ñåà¬éϳšÌ†ý«ñްڌߜº«àÛëöùõ³Â¸õÀª¬¿ìÓûÜÐ§Šš …éã¨ýôÝÏÜ +ª–‡ ÖôõšÿŽðЍ‘ªôô°þÕÂÍšÅךµ±æóæêê³æê֚篺õ±ýõÑý»Õ‘¥³Ÿ¹’¶þÉâôœ¢—ª´›µÚ±Ú¸Â§ºÃ +ÿјÙâ“Õ¢×зÑÎÙÿÆó·Éÿ ù²ò´šðÍ¿»ÁÿþÍÛ¶ïÚé«™Ùÿ¤ãó¿õúçïÁÛ¸Œœ–ó‡›Ñ¢¬†Ê’ôµõ÷À—ü€˜Â‹ê¶ +“óçÿî§ý´½äéØÃЂâÔ€¸À›ï¶Õˆ îš€æ»µ¼‘€ã¼¼Òâ°²ùªúåŒÜþÕËÌÞ͊΄öÕœíæ¥¨îå”Ãúø¿³Ô‹žÕÌÿ +õêÚ诎õì§Æƒ¼ÔêàÝÓæ££´äȪíÔ™úÜ㭇حûÿì³õʱ—úÒåä¤úø®úØ„àÀ±•ý»‹­ÇÈØ¯ô„—ÕîÖ¸ +‘³…–çÿÈܯøóµÉúá°î³ÿä§ñ¶ŽÁÒèÛåüûÛ¡ÂùòöÙˆé胴âýÇÅÄô¸Œò¶ÄˆÕ»­‹Éà©÷¸ä²Ã¹üóø¿Ê¸‰ +ûª´ºéô–߈ÎÙó´Ùôó´™áÚ•Óœõ™Áú´ÀÃõʈˆ·ÿý°¦þáÓüøïëÖÓý¾™íÃŒ›Ž¼ÉŒžî ××™˜ÆÝÊòÆ”²äÚê´Õ +ÅÙ÷õÝÀºã‹Ï¤ÓÎí¢”§Ù݈ùÞ³ËóÛ¡è¢Õä¸íÃýæ×ôɽǡ‘›ÒÅßÄ…éðƒýÚÄ­óÃß´îÏÙø–æáÉÈíœØ·¿± +™ø²Ô޹ˆÃ°ö—‘ñô¯ùÄ’¦¹Ñœë²úùœŒ©¼«“ƒÔ©³ÛÔéáêåáê¡ôоý†Ÿ¾’ͳ¬Ø›ºÎ…·ä¤¾ñˆŒÿ¹¡ƒÖÍÿ… +îºÌïꤟ¯€ÇÉÌÆÃ·¤Æ‡¥Æ¿ð™‘™­ì Áçûÿ¼Ö舩¹àà±ý’‘ƒÆçÍÏŸÙçæ¸œ‰§®Þ«éîèŸòš‚òÙÿúþ‹Å¼ +ÂŒìſđ¤÷ÇØôšŽíÒôéÏÿûÞÀ²¹è±¿ÇÿªÜš¾©âÉäŠù ÐÅÒÐåÒ„‰¥¼Ð°Òž»„îϯŒÛàç½¥ž¥­ë˜îÓü«î‹ +±áœ±ººÈÄÆÓÑ÷×£Ÿ©ÔÄèœÖ¸øÙ¶°óÛ­Ùö¬õý“ðçÆ½ƒßܧ“§äŠªû‡þêÌ £„—Ž¾Ø¬÷ù¨ˆþü ÎÔüÍû +‡…—ǔΨ½œµàâü¡—ˆ£ÇÞŒœõñ¿Áˆ¢ÈáÅ‹“†–ÄŒ¾’±¯àÊܾ×ÃýõÆïÔ«Óž¨ž¨ùâ¡»ºóˆ¥±ÑŸˆæÒ +ÿÍçÑ´§öÏæí±ôڸ䶿¥óƒüø™Í—þÓÿÌܺž¶‹ò¢ÿ¹êäþ°¹üγÞÛÐûµè¯óóÇü¾ö©‚“‰Ïžê󤓸¹£“û”„ +Їü™œðÕÐò³Ç¦¾õí„Χïõ¬Ð»ÿؘß㣥†ßàŠæŽ±þܾ˜½«Þ–õÑ•ÌèºôÍý¨§ÎºÑä°µåÍ›…žå¼ÛÀ·™öïˆ +– þùšâîôù™¥³Íù¥÷ÞÎÞó«ÃÅõÄ×·åï¨÷³‹¹å¾¶°ôÚæ¼¿Ýôà–‚óÅãæÇ—ÞŠŸö™ÓªÉ‰µ„¶¸óú“œá“›ˆèÿ… +Í÷ ­Å´•–ÞòÇô¯«¥·ã¹äæ‚ääÄÜÜ£éɳŒÉ¸º®ú¦ÙҺסǦ²…¤–Æ‡šŸ§®ÖÈÍ»¨™ß¡ä“Áà¿‘£™‘©¨ä‘ˆ² +—•ù®íë§³‚ˆï”ÃàÁè… ·ÙÙÙŠ›ó”äÖ© ã¬“Ù·ÌÅð¨Îè„–¡×‰‰ÓËÍ—óÆ·–à¯Í£çÝȤƛ¥æÞÛ¹„Ö °ú‚• +œ‘ŠÝŸ¹’¿¤“‡¸ŸéÕ· Æ¹îéä›ðýóëûÉ˪‹õ¥ˆ‚ø¨ÜÉèîè‘®àôšÁ¼€æ€ôï´šÁ¼ŸŠòÒ½èÓ´šÂÁ¼ƒ´šÁ¼ +¸‰æô¯ ëè´‚øºè´‚Äø“ÌèéЩ±«Æóœç ¨ÚŒÚüÉ™¶˜ùÓ᲎»Ÿû±ùñ¬·Ç¢º…ç÷ˆÍ¦¬Ö¶É¥ý… Ö¢£‡¿ô£Ý +öíÓÁÚμ‹Åµô®Æœì‰Šã£ûæ»û¯êëÁ‘Ä¥¼Þ®è눽×íµ˜âïݛߌ®¨ÕöòóÄù½œ±ÚÁèÔÁ†Þ¸–ðÝûÊ–ÚÔ·ØÅ™¥ +ï¬àà՛՞ܕÔÁŠè´¯ò°éÖèçÕ«êöȶÙÁÁ¼ýûïåŒÑÎÐþ‹¹ø©‡š·Ûû˜½ø¢ÀßžÁŒîåßàèëÁ¬ªØËôÔ÷çò·õ« +šíééÝŽËßÜ‘½î¯÷¿ÛÎÚ¥ÍÂÓçáæ©¸Á‡¤›ÝÍ‹®˜ªí³Á—†®¶¾›é™Ñ΄ŒœÿÏØÛŘÌ÷þ؀ƣ÷”ƒ³ºç£îá +¹¼Û—ì©Ôƒé£ÝýÉñÄñÑÇñæ¿ØÓÞùÊÝîä„ñ솮¬Œ›ìÈñèêÁ—Êֲ•ªíÏÖÇûµãžÍæ«ÖÚ¯ÙÜÝñ¶ÛÕü”ŽÛ¾Ï£ +í…íþ´ûd ®ÂŒ¶·™êÆÄƒÜò…ŠÆ£ˆÇƒ”Æ£ˆ·÷ê’ ˆ·¡øÿ´òš žùš±à´šÁ¼ž‘ãÜ·š ÞЂ³šçÆÄ +Ž‹èöºî„Á ¼ˆ´šÁ¼‰Áœ™ÃÆï¢ÛÑ÷¯ÁŸöË“¢À„ñÃÀÏË£Øç©œÜ©õšÿûö¾«¿Ñ©‰“¦Ç“À¤Ï‹©…ÆÛ˜ +Öõ×€¬ÕؼÑÈ¡°¢ØñǶ»°áòíÿ„’ºêôþËŽý”Ú‚«Šˆ•ÿäûŠ“¦¡÷Ͻ°º«£á‹ÂÛàűâñìßáÂäþ©‡Æ‡÷„Ó +ä苬¨Öü‘Ùí«Ì˜Ü¿õ½À讃£Ð–¬ØÑ¬ø£Ûו˜°¹ÿ¾šÀ“¦ïÊøžò‰“·¥œëÆÏ„É›’讋ӥ¦˜°¹óò‰õŠ“¼Š”Á +õÜ™‡×⼚ˆâñ Ñˆ­â͠шâͦð³Êºÿ›’©Æ‡öú«®Ýþ±øÂ“©Âóÿ÷Ðà›ãᣈ¾›ŸâçŒÏ¼À£Ý‚ðÈÏû¯ +œ¤®¿ß䕞üÇØâ¦ÌÛßµüõæÛõ¢§ïÌÇ–æ´”™–›èàÀç×àÇÿ«®ÔëËÄþ×§ëÉÉëÏœ¿ŒÆƒô÷Û›Åß™¬­è´û€£Ö +óèÁç±íìîùÚ¹ûã詌¡£úÎüìÁã£Ý‡°šÆ®Ð»···ù¨½‡Ží€ÆÉ‹ˆší¾Ð£ÆÁ‡»÷Û½”õ‚¿íǣŅÝüÊŽñ×æÑ +òèÑáÆ·´ÜÕñÐÐèÑÁ£¡Ý‡æôóóíÛ—à„ÉÕõ»îíÙ¥úè´è•˜ÿ›’–›ðæôÓÓƒó€üôŽŠ÷‰«­¯¡Ñ¢ƒÆ»¯Ì膆úç +éܪÿЛDž£ÅÇøÝ·šéí–°£ïÕ߬ôžÎÞœ¦øáµáÄºŽ½‹µœ‡–´ñÚýàÆ×ݬÜöžÎ™ŠÔ†Ó‹ˆõ‡‘¤çÀ£Å‡ö +Ο˜Ñµµ†çîéìÅÙ²¨”æ±ÞÅÞïǠѢÃîÔëÀÿÇ»‡ÌèÆêƒÎùÀºÇòÁš÷œ±×”«ÍÆ€Æ‹ŽŒ³šïÔæ…´ÁÏ»Èç + Ý”†ŸÔÄ™ÕÐèѱÞÍù¤©šíް£õòڕˈ‡Êö±‚–¯ÙÔ±ÞÿË¢¦“ Ñ¢¿ÃŒ–Úùýèÿä‘ÁŒÖð•àžŠš­º‚ë˺Ñè‘áÆó +ɪò§áì¥çü×ÿà Ñ¢ƒºÆ»Ì蟕À×¼”´ÚôðÄ™¦îƒµÚÉë˯œ÷оù䟚­®ÆÉ£ñæÌ­€£ÉÃ’·¹ÿ¹ãäÿÏû¨»ö +©îß²…–¤‘æ´´˜–›™â‹§èÓý¾öîþøÐ¡½–°‚õ  ÷†íó·ìð©ˆÄ¢Â®™³¾Ô‹”–ë—þÿÔ¨¯ƒÑЖӋþ˜Àž€ +­½³èÜü»Ž‘Ÿœ¨¢Ì蜊õ»ƒà‚ôðÂÿùà«ÁÿÆ£Îâ‚çÑÚˆâ͠шâ–͠шâͧ£ñºî„ñ–›˜ÑÜÿ‹ õ¥Ÿøžú­± +ÓØ„ÛØ ˆù›‚ºÿ‡ÉÛè¾ß‘á·áäðçÆ¥ŽÛÁûõ¦†¹ˆ«í³ØÛÔ×ëÛýÿßöéÉÞ³û·©®âò¦º«Šˆ‡ÌƒÜ¤ß—ŽÒ‡ÿ×î +•Éßá³’™ð­˜ýÜþ²ÄŠÄ«ø×›‚êþ +] +::^ [s0; Dialog for displaying progress of lengthy operations.] +:: [s0; [^topic`:`/`/CtrlLib`/src`/ProgressInd`$en`-us^ ProgressIndicator]] +::= [s0;= +@@image:1192&67 +€ƒ¾’€€€ƒîÿ€€€€ø¯œíÚ±‰Ã°œÆáÌäµÒ׆Œà…Ò‡²‰†·È‘ѼÀÀÖˆø‡Åð â¢ØÎ¥áÁ÷îøÍ¯¹Á‡±Ñòù¯¤É +Í’¤ÿùúÎ×÷Ë™äÍñ܇ŠíãþË€ŽÆÉŽçêøó¨ËóÓ¹Í጗²ö¿é‘€ý’ú•Ü©ÍìáÌ–²ö¿éþÀŸì¤÷̼㘓¥¬Ýï +¥º¿Ð§»ÉÅÒÆä©ë÷››îôÉÎòŠÏ锯ä©ë·÷›îô‰÷ª®Ð£¾óžùñï™è‘Õä󺉜™­›ˆ˜î¿’Çö«É¶¤É’¤ÿü +€‚⃱› +] +::^ [s0; Widget for displaying progress of lengthy operations.] +:: [s0; [^topic`:`/`/CtrlLib`/src`/Pusher`$en`-us^ Pusher]] +::= [s0;= ] +::^ [s0; Base class for `"push`" widgets like Button, Option etc.] +:: [s0; RichTextCtrl] +::= [s0;= +@@image:1061&278 +‚ƒ¹€±€€€ƒÏÿ€€€€øœíš½ê”ᆔ†÷ŠäïÀ™ö‚¬¶·ÈÚž«íì’βé¨ìÊëìç¼›ÈÈ’„Ò›‰ˆ Èà„‘ÄÂß +þýÉáøýÍÏûÎÎì²ïð°îüûýç»ïœ¸óæ¶ÕíûÊ„ˆ¡„ˆ¡Õ„‹±›½ž˜Ì¦·×—Á½ê¦÷×ÜúõêùŽúŒÝҮϸî臣¼Û +øÛ¯á”㣷ÀÁ½ê̪ñëëáÁ›Ôãì’¬ö¥©¬ ”Ä ìôÊèóãé²õÅóçɉßõ…¤²‚°ÐÄ¡„©—軦ÓÇÉÀÔ—³’ʨ¤Ý× +šª¬Õëç¾ôÿ’¨¢©Ÿ‹Å³Ó¸šÊˆŸ¢¨£¦Þ‘óðÒ¹ø«ë‚÷âܪ˜¸»óª·²ç±ìê¥ÂاƒôÃÚ™•舵ü†±¦ÎÔ¤üâã¯¿Šµ +¡Œèþ¸×÷—§£›¤²¼µÒã¡¡á ë¥±¼ÎÏÞ¡ŒÏÀô˜Á¢‚ïÁÙ  ªºŸüš€µÌÙñ«¼‡÷ÜжքŠé齚¤•á©•ŠÑÌ䭴– +·ïìÃͨо•¹Ô×ê¹¢¹åçðìþÞë®ß‰™ƒˆá먕ÊõÿºÂÜÔ„·¿µ²‘£ð­Þ¹ñªÃ÷‚žÉíäÞꤰÎþôëÆ¶“©øô…©ˆ +´“•ÂôÅ·úðŸÒˆ–¾©É´¶ŒŠóô£Ûž·šØÈ§«¾ÀÑ¡Ì×üëœË¯Ö®ÝÊªÊœÕÆ¡¡¬Ý’Éæ‰Á«™õ‹„ ä¥ý¦Ž°úÑ­›¼ö +øïÜû¶õÝè·óÙä“•¸µÞø£Âà埠”Ȳ­ú°§¶‰ÞÀ Ë•ÔêÆÖ†Ñ¨–£ÜÓ¨“’ºˆ¿Ÿ¨Ä­ÁÎݽ‡ëã‡å“¦ÁÒúÔ…öã +®ËÌ…¤•ÑÖà¦á¯³ã®’ÛðÈÛ¹— ·“ºß–ýÕ¤¥¡’ýÅÙÊÚª£€ÓÓ¡”‡ßœ—ïçëÍŸþôÓðÅþò˜æø’½Ø—„ˆ¡„ˆ¡ +¡„¼ø’ï´åÛõï¹Üï³üš´å†¼¸°–¾ÏáÞÚß·•ÊÂ˵’ÿÊÅÙÇÍïÉ¡ñóŽó³’Ë›µŒ±êé×Ú…©¬Ã“Ú¬Û»­¹Ôâ +퟈­ÌÂü˛դÿŠ¦Òœá¡øêûœŸòýžÎÿý½òÛÀ²ªÙçêÍò†Þƒ½ç³ÛŸ§§Ÿâ¹«›¿ÿ°óß÷¦÷ªò¦ëëóÚ‡•»œø¼› +†Ô–ÍÑÞ±¶”܇¥•¤ÒЮÈð‡”ÛÛÊó¥¶üøðåæ­úƒËŠ´ÁöÕ°Ïüþƒòðà½Ô”ϳ½§õ•óÀàœäÂÁ©”ÌÐûžÒí϶÷àí +µ¤©´•Òþ°øÒ©—«ÿàé‰ü…´“붃ýøú“™÷¾¾ñظ¾³Ôﺉª³Ô’åÖº©Ë¥êÁ€ÖЪô”ˆÚ¯ôª…þ¹Ó›÷âÕüµŽÒ +±éëï†îßÀ¢ªÁ½ÌÙûï•æ’è–€šÆ×®¸Ôê§ì§¶·À—™ÈŠø¬·Àªà³Êøþ倗Âù“°ý¬×‰òœÅ”è•€ú¯ìë‰ŽŽºñÓ¥½ +êÌ«€ä÷•Û²Œ´ÁëâÓ¿’ýÄÁ„ÉÆ‡ç©Øó‘¦ÏÍ éêøÜ‚àâú‘ʹö—ÏdzùÙ¶ï­˜ý£¯åô¸«ï‹€•ÒÆ•¿ªîêÂäòÞ +泺õ—±Çè®Ò©ò±ÌŒÂ„²æÉºÂˆ¡Ï„¸×üݪƒ˜Ñ +] +::^ [s0; RichTextView derived class altered to display GUI texts.] +:: [s0; RichTextView] +::= [s0;= +@@image:1118&549 +ŠƒÂà€€€‚ ÿ€€€€ø×œí‰˜•Õ™÷«›™““ÍͤóÌ“Äü¦Ÿ¾³šÇÆŒšÄ´èŒöº²ˆ›¢¬²ËæÓìö·³²ƒ‹»Ø²´ +ž  ²ƒ¸  ‰ŒËÔöýéúÃ޷šúï–½Ô÷èƒõ•Õã§ÞºÕõûÖß½Õÿßó¾ý½œûêœ÷¼çý©ÿ×½§êÞÆ×¦¬ý…†ƒÁàžÌ…€€ +…à–¨¨€€ð†Ê‹Ž»µ•ª¸Š€€ßÃ…ñûÁêíãßùˆžøÿÎŽ²²áÌÐÑÅ„‹Âªô”’€®¸ÀíØëۡ褱Äò—Œä±Ÿç„·ªÎ”óಠ+»¡†ùع„²¦ËËί­¯Å—©¯àÇù±‰èÕѳÃú•ê‰ËÛåØÅ©Ö¿ªÿ«ôæÎ…¤ßچ̇©ä¿ ô Ø¹¢®ó´Ñ°ò¨ÐµçŠƒ£ëÑ +åÕÓ¼˜òŒžî‰‰°ê¦ÝñÀªáµŒæ¾´Ø¹·Š•˜Ž…«²´‡¯¹Äç¨ÂÁ·¤Ì£ÔÁŒ¦í¿ÜÀâÔ‘Ý粑üÀüÿ©íûîÀᥣßÅÕ» +·ÓÍѬÐÞˆÞæ£Â•àëÙÍÝÛ¶‡äÚó’ŒÁæ¬¬ÎæšÂíÔž̺½×ˆ®Û¥Ÿ…®è¡°«§ƒ«¼µ¤—©­Õùùñ–ì’Ëþ¤ò´’œ +뿲‘ø‡©²¢“Äöµ¹í€ß±í™™‡¯ƒ—Œ†•Õ½¨‡‰ð¥¹¶Û‰¶±ˆûÈ´á°»¬Ölj¥«ÌŒÀø—îÅØ‚¨Ýßá‡íãȶ‡éÛÓÇå +Õéö­²…Ž…šî……¬æË²Ö¼§Ý¡Ê›êðºÝï®–°§¿òó軳Ö鱉ûäš®¢²¬±õï‘ÞÚøõ™áȹ¢·èÍÕÅúŒÂÁ¾‰ú¨¤û +ªâëÍ¿¬é³ÇѶ¿ôóÎÏìóÂ…¬Ø–›—ŸåÃéÉ·øá»Ž’íÊç¿»òÖõ͸´»÷èåߨª„ª“‰ëôªÚ娙“ÐîúÌ΀«¨¹¡â¦ +‹ô…­ÒǪö¡¿´Üô…ö„¦óˆž„ǹŒÖþœŽ€‘•îÑžˆŠîבžÃÛ±’œ£âÿ–éòÂ€Š·•°®–‰»å€À§Œ½µ»‘¡ÆæöÅÇâ +ìÍÅ·ì©à¦€É¨·­¿¼ªŒšª„ó®Ô˜É«Ñµ—·—–†¼¯­æß¦ž‰Ãª’ž¾ôß«ˆ“Åòä´í­Å꬈œÛó»ÇÐ÷ÛÀ¬êËÙ–·‡¡³Ë +¸Ö“¡ì¦»ñ­ŒÏ¶õ«‘µ°­éô½¹ØÊ†’·ŠÕØÄ¯«Ÿ†§Öýþò¦¢Ÿíή禉§¡Í¬áºÔ”„›§§“€‹Ó¦„çÙ¼ãáá…È +¼˜‡Šæé䆳›¾‡ªŠÎ¢„Æ“ÐŇ‹ó¸šˆ¯ÅüÄȸ誺 ù×®³¦˜¼‡¡™–ƒ•…€°€³º•͡ઊ€€æ´ûžÅ·ïͤ­¼ +Ã÷‹‚€Àô¡Þ½»ôÍ“´ç…ç٥߰ýôô¥´Ÿ¿¸ö¤ÆìÎÆ…ÂíÊ⺰±Á¬ï«ªñðÔèØ¢¥´Õð†ãš¶úóÝÑ­”ΦО£ç¢É +õ®¶…ßâÄò§ÙÑð¼Çï‹ÈáÖÑ×ÀÅ­òªúµ¦‘©¢ô‘žƒ¤­¢÷¡½Ó©¢¾Ó¥É»Ä­êæÓÓÏêÔµßݦܯ¯Ó–­·«÷À訌ÁÈ· +þŤåöí¬ôíìꇑˆ¹Óê„å…á瘛©Æ»¥Ì½å…ƒÂׂ¢ú®œÃÕ´¸èÖ±˜‡Åܠ˸¬Öý‘œ´®óäÖýÕŸ¡¥»èÛËØ´ +ñýÒ¸Äæ¡à¶„ìûÅ…ÃˈçÚÍŸ¾íž’á«â²­Ëžä¢æÍõÛô˜Ä…ä»Ë·äˆ´ž«ˆ©“úé“ߘî¼È”†·÷ËéÔô•”ÇѹބΗ +Öžãèµ®àäêÙåÊžï«æ¶´˜ª–•ç©É¯¯ËüºûæÔ¹òÜåÊóùÕ•…Õ©•¥µÕåµµ¶çëëªÎ××ð߸ßûñâùÊË—®òÚ‘« +·¢ªèß›—³“È‘‡Âš¼úü°Ãˆ˜°ûæé¿†ï†Ú°Ýͯ­†ÚöœÚåεÉîÛõñȶŒú´öÅ×ð”ÞÅ·‘òщ§ËªÍ÷ÝæÒìã¶ +¨·¤ìÚꈤ‚׋¹Á²±’»ŽÆÀØß½ÓÑúäí³µ…¯å½Ø®ÿ©žœ…¤ô¬´Üû’áË·å¬Õ̦¿ô¯íÏ£²òæôÐõ…厺͑Œ +¹Ê¶Îº–÷ÅÉè´¼™¡ŠƒƒŠª¦ÂòšòÏ‚ª¢ÂÿºªÅôØªŠ—•ч¼ª¨úÌÚÜÝʕӟÎÚú±Õóš§™ŠŽÎÉë³ÀÝ¿ˆùåª +ÑÓ‘Çѹބ™’±»Ê‘Ü­ÊÖÝ·„§ÙË›é‰ìÕ¢š¸¨•Õõ裭·Äò–ÙØ†â½ÂœÂ›ÕäÚ„Ååð©™’Ñ¥ØÐ‹ö¥ÓÙÁÉ¥ª¼Ê÷™ +Ä®éÕ©óŸ…™™ÂŽú«ÓçÞܺ°€ÉÉ¥¢Çض†º¹ÌâØ¬ŽÊŽ—Œ°òÉÕ¢¹¸™æÚÖÁ؆æŠÕ×ÀðÔ´°â³–ÔÂÛå䦸€¡§’Ç +˜°òâƒŠÆ”ÅŠŽ¿ã‰·Ðˆ¡ª–áÄņ•…€€¯ÀÅ€À‹ÐˆÑ€€ð‚ԔĀ€¼°•¥úï„ðô‰´Õ¤íîÂòí¤ïœŸ¢Ó÷ž„ +«¶‰ºê¤¡Ò¢Ü¶öÓ¡Ä™ãÙàå˜žßÆÄ߉èÒöªêÎÕ¨üø²ÒÝÝÛáץƯÞÂÿ†Å¾˜øê´’ÊÁÅñõ„ÉÅ…·ÎòÚÝÌËßË¡ +ð¿ªÿŸ¯ù¨³¾º¡ªÂ‰âÿ¶æÞуÀ£ôåîÔøÔŸªô°Øú¶ð„¯ìÑØŠâÂႌ£éˆÀ骹¯ãÄ粺‡˜®óàÌÝ–¾¤ûäî +Ùšðºè©¤ÚË’É‘†‘΂ÿ¤¢ªÅŒ«º‰™•–£Ý¹Ý¯Âº´·Â³Ë±Æä¼‘•‰Õ¦åú«ß£§ž±Ëœª¶ÈþιŠÓ¾Ë«”‘‰ÀÝŽê +ì·Üî΂¢ŠãíÔ­Ú•·ê×ò´„£œžÎ‚­¢†´¡ÒЄ«âéêØÕ†Á¬ðƒ“«•õìÛ£«Ìáöÿ馩„°âÓæ€äªÊ´’Δ·äÒ“¤ +¤¼ªÙ©¯ã£ŒÁØŠ°ÝÇ᳦™˜±¼ôˆßáÝ¡ÿú®‹¬ÒôßíǸàì´Ù•µ—±ÔºÄŸ¾’áØ…®ð«Ìǽ¢ìΊ™ø˜ÀôÇìÏÌ«· +‡¶­Óýñ±ÁŠÖùħ»¾›ÄŒ“­ÈÄ¥ð™Ø˜ÔÔ쟔¨Ï÷β⸼éŠßÒ¬’ÓøïûÂÙž¤ôÔ˶íÕ ¤‰ÿ—¤Ïñ÷ªá¡ÒæØÂ¯ +Û¢’§ ÕÌÉŒ¬¤Éñ‘¶ªô£îîæÍкÚðÍúã蔄¤Û”™Šá•á§£œÎ‚ö‹Ú¡Ž¦‚Ш½¶«â¬§¦ÏеÝêÕ‰è³ÙÍÁÚõѪ‡ +Óè¯°ÇØ÷«€“Êæà•íÞÇÀܨ•·ïŠ“äîµø™Ÿ”¢þù¹’Ÿ®ŸÃ„šƒ±šŸ¡¢ÓÖíÙµ¨‚ŒÛÐÅæ¡Ù¥åØ…š¶´ßͯËËί­¯ +Š—©¯àǃ›üëõœðþ’ãà˯‚±ôÉÇ¤Ï¤Çø–­è¿¤üùûþÒíûŠ·îî­Úº·ðËž«‚Ïöçÿ¶»¾ïó®ÜÍ»ò—¶ïÍŒö¯© +¼ó‚°œÂÙ…ÔÅÇØš¢¢Ðâü¢¹¶¨‚¥©¢“Äöµé뢙™‡¯—¦Œ®Š‚€€‹‡¸Š²„ÓÑá˜Íůè­ÔД€€ôèÕ”ÞÝ‹ÞÝïë³ +ðÁÅ€ÀŠ€êÝ‹Ú혆ÜôíˆËû‰ÞÿŸõˆ¼«”ÞìÔÏèè½ÜÆèšÞù˜ó¡ôëïþ·ÔÍã¬óï„ì„ÚÔþ®Ž¯î ÃËèÕ´„´ +ð•Ï»ÑÒøÖĉ”ÈŒ†­Ò®Å•“Σ«›ÝÙ•¯Šæþ«¬¨ôÎÉ·È»¡Û”Žû•ð¨áÓÜ¢¤°°«Ñ²·¢Åì‘Ý®±¾ÂÍØÔ‹õÔ— +¥ðæöÀŒ‚íºáóѺ§¶í×É­ÌÀ†·¥ÄØ™«ºê‘çᜨ땛¹«–—áñȤݩ‹ª¦œÖ—üØéžáÃäŠÓ‘¶åìÝѹ„²¡’‰óà +ï¥˓ÉÍ”¤ÚµêԲƯ¶­‹™ªã¸ðÀ—––‘…¯®ß»âìݰڈ«ÚÆ£Ù»ó“¡œ–µï„øÚÔüÒ˵ž‹ÛÌóšˆÒÞÿ„ÁŠ +¨«ŠÛ”ɘûèÍ´ªÓßÛ®ÿÉ”´ê²ÕÀŽÚ¹•œ”úÎ¥Íά¢´ÇÀΔ¶ê¯äõÉô—öËØ´¤†‡É•£¬æµýþ²ñÈÌ»¹öõ§Ãâöé +ئõ­ªšÖ…í£© §ÆØ®ÅÌ¢§Ï´óÌÑ´“Çç‡äð«ò£¤Ù—¢ÝÄù̻޸åé„癃êÔ׎ä’õšþÝÀ»ŠÊŸÅ +õòÄÚÝ÷­Ç¢ªõ°Š§È뢒®ÜÈ£ùÌÊö¤¢Âõ•ܱޤ•žŠÐÉÁ¤„ÕÔÆƒ½£Ä°÷äúêÕ–ÕØùâì镦³€Î¤«ºšÛ +ƒ·’ÍøŸ–ú µº¢àÏ€’‹‰¨£œê™Ñ¥îµ‘†Úæð…฻¬œÐÀ•åä„ÁØÒ¯«ž‰ÓÖþ©‰ í«‹ƒô±£ÖõÍ‘šÎ¼˜ûâúÆÌ +Ïžö”èËØ¸ñâÎÍþ…¹ŽÄÌô˜»šµóÑá”ÓóžáÂᑞò‡öðí¤Ì¤ÙÕ¦‡ð«ðؾ»šñ˜ï£‰ÕÐ…Ç­‰Æˆ¸ŒƒŠá€¦Â˜ +ìÖÚÀ¾™Ï–’è‘ÐŇ÷ïÇçÓ˰þ‡Ø€‚˘—úÀ£¾¥™€€ÂÌÁÀþ±„€€Â ŒÔ”€€¼€€•…€€¯ÀŦ¹Øì€€¸ƒÎªÊŠ‚€Ü +Б°•µß¶¬çåÓ™Ö·ñډކ̔„€´Ž…‚§¢æ½”š¾Ýàû˜ƒÝŽËØŠëڀ嚞ÁÓÑ«´íáòÑêŠÓœŒé«˜Ê‰Ý€ï€€ÑÀÓÐ +úÑÛÌí¥üµ²¨áŠ€Ð¤ˆûžŠ’ï艫¨ÊÂÅ­üâð½€À¢Šª‹Ö»ËªÈ¼Õù²êÊ»²û¨€„˜ÀªèƒðÚ‚€Ä¬ÐžÑ§þ±‹„€ +ÁГ°•…€€€°ƒ•…€€¯ÀÅ€À‹ÐˆÑ€€ð‚Ô”„€€¼€•…€À€¯ÀÅ€À ‹ÐÑ€€ð‚Ô”€€¼€•€…€€¯ÀÅ‚€À‹ÐÑ€€ +Áð‚Ô”€€¼€€•…€€¯ÀˆÅ€À‹ÐÑ„€€ð‚Ô”€Â€¼’•¥¾ÿþÝö›áÃð÷íñ®ÿ¬ÓüÍûÊÞðû“—ôï×ÏŽ’Ñ»›ÏÇÅšµ +ϳÂßí£¶®ºÜø­„„—üʃ™ïªÊͬù™Ó¡Œ§ÄŒÔÔ‹ÁÕÑ–ö«±‚‰çÃõˆí«ÚˆíÜ»úúšÓ¶ß×°Œõ¯Í—«ŸÂŸÝ¤‹éÿ +ôíÝÑáÐҪ颕áÙ¬¿œêŽ€ˆ‡˜ðÝ¡‡á˜˜ƒ¶ôÏ¢õ™ñ·øÊ‹ßÊô—îݵü¿ˆ®©¦—ùÒ—·Ô•–¤ †ð®Ùµ°úœˆ×¶Î +ѵ¥¼Ä´¥Ó¡÷ˆ¡âÕ”ÞÒÅæÌâé·«ò³£Ù¨±Äã­ÜÚÕ¡ÜÚÜ–“¶è¢‹„¾“ÉȉžºˆÐÉßÌþ„é‡ï¶ý¢»ÆÌ¸üÌ·å‹ÙÆã +òâöÝτӶÔ죱íËö¢Åý¢„ªÊô²¾¤¡¬¯üöþٕѺռ̉ýӽЯî«øÍÿåÝÒ’Áû¹ÔÓÑ€û¹™å‡ÄºÑÀÎ‹ÙžÜ +¹¶ŽíÛ’ìšî±ï®»É»•µ©®™£ì °èÇæÀ„õ­ÚŽ¥¼Ùö½’ˆ“•Š’Ý£ûížµþ®«»¸»’ˆÿôÔôé«ê¹õÎϯùîªÈ®Þ×Îä‡ +µÄÑÀ΋Ù·¥ä¼ûÙ§Ö޳´Û™‹ê’¹’ÇŸˆ¼çœÊþ⑪½ú«ÿ¶ìÝö¤¢ÎפŒí­º¢íÔ²×ʸ•ž¯Â”Þ»ãöìû +æ¸ÖÑáÅ™œÞľŠÊ¯Ú³ÉøíÛ‘ŸÖÅ™âæ˜ÜÄèþô¥¹‹Ä¶¡ÐÈ ¤ûôú´Â̫Æ엤õÞéÕ–¢É¬™¢Â«ªƒ¶ÚõÇØÒ +ñØ—óÆ’ÂæÁ Ûµø¦Ç†Ä脞Ïâ°ñ…½µ×¡Óúé—Ö‰«ÞÓƒ•ãñ؆ý–ÔØ¢ðˆä¢‘—‰Ò¸†Öõ‘Í‘ºí˪à¶óÚÊ›Ý÷È +¤€÷݃€€—Ó ¢€€à…¨€¨€€øªŠ˜€€Þ€Š‚€Í€— ¢€€àò…ßÕÔÑᢆî¨Â€€€÷ÖÄ‚ŠŠÓÎëä‚€€¯Ä¬ŠÒÚÝû¬¼ç˜ +®¨ÿï³€€€¸¥²ÕÔ²Ó·¨Â²ªÅÓÀ쪮è€ÞɈ„•¥¯»­¡žÖÓÿ¨ŒÖŠ•éçÍð¹ŠÒ€ðȤ¨¨¦É«¨Õáú¨”“€ª¢Ü +ÞÅé·á¶×›Óò®€€À‘ÿ©¢ªÜ–•´ªÚé§áŠŽ˜†€€¬ðÝÅÉĒ€òŽ‚¯¢ØÅ‚€„´ª×Ñ€€ÌèÔ ¢€€à‚…¨¨€€ø +ઊ€€Þ€Š´‚€€— ¢€Š€à…¨¨€€€øªŠ€€ÞӀЂ€€— ©¢€€à…¨¨€€€øªŠ€Ì€Þ€Š‚€€æ— ¢€€à…º€«èêÖ³ +­ü·¥×¥÷«ÿÅüå¯ý‡×ÿû¨Úÿ¾Èªû¤ú›œ“›ìÕú›Çë×ß°ú¼Œ¶œ›ß…ÙÛìö­‚ÉØå“ÿ®þú„úë‡ù×Ý¿´ö—ñ +Þµ¿Œ¯¾®¾Ÿæßâªþõà¡å¯†ÔÝûòúÕ³§÷Þõ·ÊÎÃ×û­¢àÒ„ØÅÛŒÌÜÒÞÈŠíÖøäÏýÊþ¼¨òˆ§Ãë®™Ö÷·íˆºë‡×Ý +þ³¼öš¡µ×“Ä×Þ³¨††Š‹‘Õÿ´Ž¦€éÕ¿™Øùõ©ßó×÷©ÿñòŸ÷«åöŸ£—НêÒô¦ÕÇ‚ÿÇûô©ÿéýäÁ¾‡üÖ‘© +¦‚¬¢¿ï³ÇÎùê¨Ò¾Ãé·œ«ôª‰éÓÖ–óò™¥Ï¹«Ò»ÌéÙªôè«Õº—¨ŠÛ•Ž°ÚŠš¬¸†³Øº–ûÞÐöüŒÊ’ç§Õ¾ýæå +éÛ·ªŸü½²çõÔÊÖÓÎÝæ¹¢ä罊ôŽÇŸÒŽÎ¾÷ïç°âŸõÍ¿¬ÿèÖ ©û“ñÆý¹òÌŽ‘ƒÉÛǦî¹Öúó𑟼ÿûÊ××µØ£Ü +û½ãßîÝì·ÁŠÈ‘à•ÕîÁûÒéõØéŸÕ©ôÎÓº—ÅÙô¨ÖÚïÑžƒß£ô­Òº—˜ªŠ”öùʽ»Ü˜œåÀìùì¹æ§›”ýççÀüÁ‹Î½ +­óñý›ëê§ã¬¨ËÚÚ—øÚ·¸¥¶Ïô»Êç¦äµšØé¬¿ºæÝÝÑïñ¹­Æ•ÍžóÍþª¥ç–Õ¿Ù–²¡ìΗ˜Òé‰ÅÓ‡ßçé󿓦 +·ÜòÔ¾å·Ûϔ߬òÛŤþˆ²ŠÞóÒ¶ªíç¶È»Øßé̇­ûÍöîÛñ×í»ÇÝþë—ç¨í¨Î¨¯æßÝ©¯ÿÖ¸¢»‡–êµ»¬§áµŸ +ÎöÊ¿¡÷Á˜¸›õéÏåÂäçí٦孒ŠË‡¥ÖÞÜ׸ïÖí§Éµíö’«ÿ¶¢úü¡ÕÿÝ¿ü©÷äìäα£æï­­ÿïûùóßÜØûÕù +ý÷÷œŸ²²®îÍâ¹§’³“Ç—ŸÝ´çÍÉÏ›Ãή̩Ⱦºÿà³Åãçú—¼µ²»÷Ùÿœ›Ö¹Å¯Â“Êíߨ·­éñÛŤˆ²ŠóÞ»Çé•ùë +ñ—öÍÛñÁ»Ñï¾»äÈ­©ý©Š³¶½ïÿ‰ùóë•—‹ž´Ÿ×ÔíòÉLJœº¦Ýɫֹ¾×ÁýÃò”§³Â«Í©·®ê¸åôšÌ›“þ‹¤¬ +šÔöÜ“³–ɨ¥ƒÓªÞžÙñÛùòíÛÄšž‡â«îîßõ¾ûߪÛû”¿Ê½æÔò‡•ìËèôõõßžº¼ø ãâÞ“—¾÷ž¸¸öï—üÞú£âé¤Ë +žªúá›Ë‹“ ûÔîÞݹíÎÃñäÁ•Ÿ¿ž×þî´ì֩ůô¿å¶¯”›¢ÀºçÔà«èŸŽ¼«Ïž¾§ï×åó×¼½­õ¡­öý®çªúÐ +×ûæ¿è·ÞéöД´¸§Óèú½×½³ç¶¾ÙÏάúøä£Ö½Ãòº¿Õ·ðÇáù×õ¬œè½æôƒ£óÃÛ¿Õ¶÷ÃÑê½ýÏ´™Ÿÿ¯ä¸¼«»æ« +©íŠîê×Üê¦ÂÑ“ãóþ°×¬èω…¬ÿ¹·ÊŸ˜Ýø£ïð‚æŒªßøÃ Ó¬Ø‹—äÒž³òÚ¦·º®ÇÁïß¹Éî³æÔï†Ü—½š”תù +’ÔÏÙů¯¹¼ùÿßý÷ÄçÁÿþ঻ôß§Èâû“ŠÚÍßÊùóÈ‚¿ß¼ÜÖÍý‹™“˜¬â­ÅòöÙïÙÕ§Ôü¾¿¾¦åèêÌ¿Ž®¾ýÀõ +Ô­ý«ïéý¶Ïí˜ÓÉ««Ù¿Ñ‰ïÕÏÙÐØ¿âÁÝÀùµÄÝçÔŽßÒßï銶ɧ’¦×œÛ¸¹µà“ðó¥ïŒàªžÚ³û‹Ê—ΗƵÎìóË +ûñ¡¯¶è“­ÏÜñòÿ¿ô´ÛŤˆ²Š¾Ó®¼Ûغá‹åË–üïòÒ‹éÝÛøò£»¢ý°÷ı؎¹±Ï¥ãÍÏüüÄšÒß¡¼Å¸ÊÉ‹ +ø³ÛÞûêÒÃâ…«Žšûç÷¸éé³–·˜±øðÒÂÓÜã—¤šùøÁÝõé“çþû۞ǔŽçÙÕùñ©ÙãÒŽ¦íÚ‘»½õ‹ËŸ´ÿèòÊ +÷Ú†íùÌÆÌ©Úÿ××ݬØßòêÚɋΌñ™û¤ñá©ÈïœÛ¾¾íÃûç¹ÉóŽýŸâç¾ýöâþÁä㥳–ŸêôÏÚ‘¯Ÿá‡æ¾Øœ»þÞÁ +޹ˎ¥®É›Û¾è óÙ±é´ÐÌÛÌæÇïÀ«×Þ¬×Þ€¬ÉØû³ÍÊÚ½¼ÖÙù­ê޹“ë†§ÔØ’Ô×éæíýÉùµ·ª¹¡ï·¹–ÉùÉ«ê +«ÙÑÑ©õ¯®Ù®û¢©æ¯£ù«ÿ»¼æ…Ù–õϾÙÕ²©Î·ùýšãß÷ÎíõØÉ”Á¾ÕŸ¯¯Ý÷ſզԒ¸Çϳµ¼¡­î©–ÄƒŠ”¿œÔþ +Æë›ßª¢ÅêÕô¯ÙÊ»’äûÞÙ¹ýþ¢ê‘ïͺãô–ÌÇúÌꙿäýÎ߯öª½éÞûòÜâÁ䩅ͼ÷ä£Ô³ã—æüõרÉΩµ›· +ÊæÇÏÚ½úÞƒ‰ùë²ç¬¹¯úêü¬‰Ëò·ãæœÞµ­à÷þÕù¸ÏÒµæ¡Éõ¬¶¼³÷¿Êš´äï¿Ëÿ¦áàŸ ·ó毼±ŽÿÕÉø©ûÿ +ÃúôÑÖ¬ùÝùåŸäÎÞø¦ìÊ‚£“—äή٘½üÓÖÁø÷óÛ¦æ÷ù˜÷öÍ–œ±íðþÉÄÛÅ—½ÿñöÜåÇæ¯¹´žüæ±×—å± +•Ÿ­‡žŒù®¿—ùñߺÀ¤½¬óÒ©¶ÉÚÙ‹‰õÏÏ­•í³£æÃ·—ðŽäÝÜþõ…Ŷ³ëîœÒûѯ¯×¼šÔ£¼æ‚»šŸÒ¯ûÖÚúá©õ +­¯¬ªëº¿¾¯þ½ó­ß¯úà´±¿ùåýúÑÄٹ￷ÌþÉÕֵ坿¨þäéå’è‰ù¯Üö²ÿÜ“­âË”¿¥¸©÷üí·ŠÈ°‘蕽­´¯ +“ÿ÷¾Ù§ÿ·úò„ùúïð™°äÕË„ŽïŒÏ‹ð©¦ßÅÛ“ë۬ϬüŸÑé÷á¨ý¤¡óæçÞ™¿žñ¾Ç¿ô܇†¼ëÎØáó“Ï¿“ +žøìÁ‘§ž›œÛø÷àœ¶ÓšÊžÿíøµ¯þ•Åô¾ð›„›‹¬¼³–ÉÙ²ÿŠÏçù·¼¼ýç«Õ÷“ɸÿØæÝƒ™Óã»—±âãè¶ÞÚ±©«Õ +ä«ÿ¿«®û±Í±…§æ¿žï˜Å¼µšöÄèòÞ£‰™÷üŒ¹ýĸ‚Çå’γÃýÞÊòȘùøÐÄ…ƒæžüáêžý÷™Ó½†ù‚Å…©½¯¨½ +à®¶©ûèêÅ˶“êÛ¤×üÛÑûΧõ££Þ¯ûðâí¯ùãêþÒýÜÃ剅ɛ®ñ£æƒæÖŒø»¶ü÷Êí‹ó꘿Ìþ×Њ‡Çµç³Ý›ðæ +ÑÖÓ÷”¿¾¤§ðÕ®ùÝî­æ™ÖæÌÒûܘçþó¢÷£­‘†Õ¨žÒþÓ¿Óï•‘¢àÞªúÂÙ«ûœŸ¹¡ÿéÛ‡œìùääÞÇÆìÏýÕ°üë‡× +¼´›ôظÿÿÄö¿Ô¬ÛÙ¼æ¯æÄöªîóöÒ™æ±ýÿ³Ñ¬Ëɳޅ‹±½êšõ­ëõÖ¡¿Ù·òØÓî箟êÑÙ‰¬Ã®Ëç宨—ë¨ßßÁ +éò¯§úÞˆíüÙ™Û³êò߉¾—Ù™î‹ëÚúŒ¿ðÏÏìÛŽíÓߌ¹é´ÔôÅÛ‡¼«˜õûÖ±œæÝ–ËÙ¡ßô©ù¨øÔÖ¯±ßõ®ýõ»›ú¤ß +§ñÙï’ïÎÏý뇓²˜¾—àâÞîÚöï¤ÀËÏμ÷óǵìÛ»æßÚ­§û×ÝÏß×­Ë÷Úι׽›Ÿõø˜¼þ«þúðôæýÑ伨þ˯¦¦Ì» +ÇÐúöý­ï݇×êÖƒ­ï¾Ïò·ë޼øíýþû¯ÚÙç©»ûâ«•¿ä¨À÷ÃÅýÆéž÷¥´Í×ÚåÇټؔÛõ̳Íîçÿ©çųàÞÕ̳ã˜õ +§¬ŽéÖóÒ”õÌׯ³Žåï±íòØßÙò«ÊãŸÌ‹ý¹öô̧³˜í•óóÿ£…¨µ°®ÕÊç¦åÜ¿ú©êŽ¡å¿ŽÎûÛ¨ÜþæŒÊûë¨ +Ëü‡’òŸš™÷÷Ûø³×ö¨µ´¼úÊéµÝÛÎýñÀ©ÞÃ˾ê·èÓæý°‡ý² î£¼ƒ·õë¿©í¡ß½×½Ñ¬¼¯¥üþÛ¿ÕêÄŠ€«èìý +é·õÉïžÿ÷¬ù“͇§ø¿°²ã‘™Ð¤ä·¿â§‹š¸Õü¸Œ˜–¢›–Ýü¨âÌΆçݶø·Ì惲šÇé¿–Þü•Œæƒ§Ò›÷¿ùÇË +Ù™¿ûä¸òçŒ×þ«ˆ”֋ѫڤ÷ù½ÖýÃö£—íÇýÑ«¶ý蕜€«ö”æçÇàݰ°ÛøÅ§ïžøáò»þ㫈”ÖÑ«²ŸÉÈܖɺ +ü˜þËÍ޿곃ùË–ÍŒØä»ö䛶鑜Ÿ§¬éØ×ßÐüÜÜðåŒÚå°£³ù¨¨ÿÿø¨¢éÇ¿œýýÊØ•Ÿ¬“·²÷Òæ°£œŠ´¶¥§à +¡Óí›§ŒÖ˜•¶ôɃ­Ṵ̈ïÙ»‹Ê‹–³ ¢‘…Áů÷îÚ¶áíÒ‡ö× ø™é»“™…ÜÅÙÒ±¥‡ÔÞ€Ëìëú ìÃòÿ©®ÒªáªªŒ“€ +ŽÆ¥¼üÌééÈñÑážæ™éÂÇßÿï±Û“¾Ðш ¢ÌÌÂç͘ä–ÒçíÛÖ±‹³Š¨îï Ü£¢ƒ¸ªŠüäìÙ³¯Åʹ¹éÌþ¼™±ÄÑû +¡–¯Û€•´ôŒªºôñìñÍã’˜Šò¹å—ŠÊÓ¬ŸÉ«„³­ŸçŽŸºÕ€¥øÅ¬ÖžÊå²ÃÌ›³ž¹ÏòØÂ¬¢ÌÚ§§Í›¶îÝüºöÙÉÒÉÉ +…ɬÍòÒÓÓÙšªŠš¬ÌÀÅËËòžØ…¹âùÒæ¬ñ‹ìÈΨ脢øÔѦ‰ìʓ祵ëÒ®ƒüÿŠ”å÷éÕ…ñ«¥Ëðµäù¬Ü³™±Ì­Œ +â¯ÆÝ‰Õ”«º¥“Í®¨ìå¨ÜÜœÓÒ¨¨†èÊœ»ÛÖÖý’óäð®õë¼ÖïÚôáñã›ûŸ…ŠÆ¢œ†•ÕÞ¹›Ôƒ‘§Ù¦ÏóÉÄäÒ©ÉèÆÚ +üÎÞ——á—©¦ÚŽðÓ‚®Îíì’”é§û˲ä“ë©‡å°ŽÅ…Š‚¦‹Óõѳ¥¹Å…é—™é‡ÎŸÊ«Ò«É¾ñô»“ñŠžÔþ·Ýï‚ȥ躪ªé +¤Ü³™°úÙòÎâêôñÇëÙÙ¸ÙÙÚ‰£Ì…ˆ‚íÕ•Å”ÐÑà—……¹ß™éûÓŽý§ÛÙ¾ÝÛŒªÚÿý€ò»ÏýŽÄÔŠ¨èãØÞçéƒé釨õ +ÊÞÄš›å¶ãÔÐÑà‹›¿ýîøÑ¹‹çϹ֬åÞôÕ«—ÁÅ£ŸÕ‘”©›ÌȶҶݬȨ¨ð…íÛ¶½çâÿïžï ¢‘†ªš­†•… +ѾÐÐÐå¢Á¸¨ªšéøÿ¨¢Ùé»ç§ÄÌÛ¾ìÁäÚ›œÙïìüæ«ûÞу¿€Šª´Ðщ뼩ÓԦ쌶ìÙ×òᇟ®ß¿ÆÖ³Ä×Çý´ +˜é•ö—€ßÀÆÅÕèÔÑþóʼ¿óÉ úæ‡À½¾“ªÔʧ¶Îøß­¡‚¿¤ÿ™ÚêëŠë‹ŠóóÎçªè¶àþ쨨𑨨š­ªëú×ôÓ ü +Íþ¥žà÷ûòû›ðç͘¤Ý¾²Êïüä’«þüîÞ‘Š²µ»Á®†÷íÛ×”ÞÞÎ’ìåêÔ꪿ٔ¥øýÑõëÖñÛòÏù¥üÁ§þŒ²¤Û³•å +ëó³Í›Ÿÿ±üï½û¼Ä’±‹–ÀÅŸÀòÅÕèÖÑÒ†—‡˜øÓœÜ¼Ëù³ÈüþûþìÐÒé÷Ý›˜ŸÊòª¢Ì•ÃùÃÊÌŵͰÌÎÎæ²Éï +³Åçϳñœé¢è‹ð¼ŽƒþÓÑ’âÜ­Ÿ¾í¸ÿÏ÷µÿ•þé–Ø´à–ÄÔ”øˆÔÔ˜Ú•åªÈŸÜÓâ¦ñäŠÿÊÅÓ ¢š…ÌÊÅÕ†¯¡Ñ +é®Å¹šòò‡¡ë›ÉÅË‹óë‹òϬÝóî…¶­ëÙ¢õ¡ÄÔ”ø‰ÔÔÄΕվ—µ˜ßöÎÝðŽÞ³öн£·¼äïß™ÚǤÜà…ùó£¡üÇß +ðÙÙñªë˜þ·çÌ…Šü‚ŸŠªÑ©—¢á´Ó™û÷çïüŠþ†“­“™´“ÇØßýœŽÿ©ÏôîÇÚŽïÛùÁÒý…ÎóÓæž¹‘¼‹ªŠü‚ª +ÙªÂÅí¬¨ÿ˜èéñ†ï¨ƒÑƦªŠü¤ªªÂŃâ„ÐÑà‹ÐѵàŠÕ´·ûÿçÞÛÖøþûÜ‘þãü×ë ¢À¦— ¢ê”ª¨—“‹ù©Ó¦Î +ÎøÍü³ÙÍÐÞ›³úëç›ëð¹¨ð‹¨¨êšªºüÙ‚úÍ›¶–•æÀÈ֬߄½úà€£ÐѵêÕô‹ã†µ¥Ï÷çò¯µ§žóÔËßã”ò߈õ +ÓÝØ»ú¨¨ðÈ‘©•í•õŸ«•­Õ½‹ªÝ¯ÊÿÀIJû©½“ÊŸÛåù¡ÿ©Ð¨ä¨èšÀÅՠѨ¨ÓÅþß¹ü¡Ð®œÚƒ¶Íüù¦í—À +„ùß…ªŠà‚€ÔÔœŠÎ꿆¬½¾Ï‚ÞꪊÀˆ÷ŠªÑ«¢«€Ö®ç‰æûöæþÆŒ¥¾ß²–æÝšÔ–æ‰éž¹óÚø–ÃêÞòÃú´ûË +½«Ç»¥ÌÅ“› ÀÏ ¢êô¯ªèì™Ó’’ׇÛÞÈÉÔÔ³÷›¹›Û’“¯‡ìøü£¨¨­ð‹¨¨šª¯Ê䑽ÿ×ÿÜÙÓ“µåËçÄž½ô­Ô”ø +ˆ…ÔÔΕåý×àú¯¹£ï®ßÒßæ”¼»ÃØèäçž„½Š‚¿€ŠªÑÇ®¢ü†§þóÒ’ß¹Úºø¶½¶»Ï¿™™ß˵ò´ÿÊüߥªŠ‚ƒÔ +òÔþ•åÚȯ¿®™ß©Ê•îÕÛ©ç‰þ—ŽË®ïÒ‡•…骪ƹŠõ–¶¼áçÚ¨½ÝÚÏï®ç·¿ˆò›ðùÕ©”¿”°·õÐÑà¯ÐѵºÕ +¾ôÑüéï¯ØïÈÔƒ°¯ÿ÷¨“æ¼½éã‡àÚºàöèÿ—„ÐÑà£ÐѵغÕôñ¢¹ëïÖ®æß°ÿÙÿæ˜ñï–×·Œåó¯Ÿ×ÞéòâÚ¦Ö€ý +¿ÝùÝ×úÂÂᳪæè¨ü–¢öü Ô”øˆÄÔÔΕݾÞìÁöíÛÙ¾ÕᇴʛЪÞòâü·æøºÉí×øÏ¢“Ûþ¢’ÿÍäý½Ïµá÷•´ +ÕŸáò‹¶Ü¡Û¢ÀÇ ¢ê”…«¨ÿ¡Î†Ódz¬ïÿÎÎûœ‰øýÏÇóääÚÊÿÔŽ‹÷ªúÃßšãÚÉË…ö»ŽÞžéÿŽ×ᮟˆÚÅý»†½ï +îì ¢Àß ¢ØêÐÔ”«¢ÿð­ã®îÉÉÉ·šâéÕ”ç󩸇ýަ˜¼¬Ó»”ü½š·¶Þ†Ãóøï¬Âó·áƒªŠü´…ªªÆ¹ŠêÓïèµå㯵 +ß„þ—޵²ü¾ê“çðÂüº™“ßáòŠÌ›Óù…«¿¤¯ÆÅÑò´€øóÞÄÿ®Ù‘ÐÑà€¯ÐѵºÕÔÿ¸»´ó»¯™ßŒ°¿Üø¡–ʰì®ñü‡ +ÕçåøÅýÉÌ÷Òæð‚¬Á«ð·š“Þѱß÷›æÍ¦ñì®ÿŠªÎÑ®¢šøúÔŒ®Ûõóý¯ž°ªŠ¢“¨¨š½ªª½£×¾¯¥ô¸§ãûÎ +ßܰéÏ›ŽóÚÆ’¼£‡þÈ‚•Õ£ÜŵÜÍ¢þ‘¦þ“áˆï§éûôí¥ÏèÛ­ðÙß߇ſÿêÔï×ïÓ¡Œý†ëïíΪ„Ô”øÔÔ +ŸŠŠê÷Ö™üõÞÛ­ÒŽêÇ·„ô‰Ö¾®®îï«ñ¦¦Í­öƒ€†ØÔ”€¨¨šåþªª½£×ö͵õÛöÌâ²ô¢·‘š®¯õûëšÆòëÑí +Ü÷ÞÛÍ×¶ë¾® ¢ ‰ƒä•Õ£ÓÅ…»ºËÚ†º–֊܈÷Òµ÷ýŶ»ßÂ⎧ºÎ™ ÜÍ×Ü›ù²£Ý¥ØéÀÅÕè×ÑÊÆ‘¦“¼Æ‚ +€àÂÅÁ„‚•òÕ£ÓÅ…ï苵¡þÎÜí¯øÔÔõƒòŒ»úݺ߷⟟½ÒŬòÏ×ú»»Ý¿˜ï§è¯ÀÅÕ¨ ×Ñí÷Éÿ¡ˆ§ÿ¤“åêÏ +ì›ñ½Ò¤—ï„·é²éϤÜéãóÏÈõæ›ôÚãм€Ã¾˜þó߯é‰úý­€ßãáúÏñù™ýç»®ŽžÉ‡Š‚ŽÿŠªÁÑÑùíî¥½Š²„ +éöÝ¥ü¡ú¸ý¸¸¾Û®íÑ®ëÏÂó⼌Ðÿ¢Þ«¦Õá«úÆ‹óÚú§†ÃÕïõÛûú¦Ô¿­ï¨Àà­ð·Ú­¼†þžÖúÁƒ•¢…þ‚•Õ£Ü +ÎÅõÃëÿ¹¢º±Ãú•Íê¯øî¦®Ý»êñÚ¥ÔÑ­Ìöû†ï¶ÑîƒÒõ߉ ÕäùÚü­ê÷ª®—ÞÙןèï”ÅÒŽ™ÕÔ¯¼ˆ´ÐÑà¯ÐÑ +еºÕԸǯþí»ë·ÔõßÛáÌ˾“²‡÷ï¿ó§åµçÓîµ´ÿ¦Þ¿›×¯íÇëÍßÞÆÿÏú°Ì³Ï×Ûùàš‡ÊËìçá÷‰‘ø‹ÔÔΕ +¹»ëòô·¦¿ìضх­ß³³”™Ï¸óžÑ¶åÓÕÐÑà£ÐѵºÕ‚ôÆÛãß˚Ǽúý”˜³¨¢¨ð‘©•펊•õŸ¨¨Ô”€Ä¦ÐÑ•ªš +ý†•…¾‚•ŽÕ¡¢ÑïÐÑà£ÐÑ•ªšý†•…¾‚•ŽÕ¡¢ÑïÐÑà£ÐÑ•ªšý†•…¾‚•ŽÕ¡¢ÑïÐÑà£ÐÑ•ªšý†•…¾‚• +ŽÕ¡¢ÑïÐÑáà£øöÉ…Š²Æ¿ÁÅÀ”ÅÕ¨èô›Ôâ”øˆÔÔ…Š²Æ¿ÁÅÀ”ÅÕ¨èô›Ôâ”øˆÔÔ…Š²Æ¿ÁÅ„ÌÏÅšŠ• +ÆþƒŠ‚Ÿ‰¤©Š®Ø½íü»ÈŸ±í´²ö”÷•Š†Æ ¢ÀÇ‚§¢Ìž»™¥åç—–×÷ˆË”×°£¼€˜Ô´˜†•…ྒ¼•å×™È̤¿ßßÊÛ +£ÞƒûØÉ¨è€°ŒªŠü¤øŠªÊ¤‘ÝíîáÛ×ÌÛÆÆÁÝË¥¡¢°¨–¨ð‘Àª¨ËÒìÝÛÄÛ•½û…Š†Â ¢À¾Ç‚«¢…ÌÚ”õ™Á“šé¹ +ÂÐÑ ™Ô”ø°ÈÐÕôËž‚¶¦˜ÜØš›¾°‡ªš¤ƒŠ‚¬Ÿ‰ªŠþ¶»›Ÿ™¦›†´³…¨èŒªŠüš¤¸ªšÇÍ“‹Ïï¥ôʾԀ´È†•…¾’ +ŒÔ•ݼ«×³¬ÍÂõ™ÐÑ ˆ™Ô”øÈðÕà´Çï’úƒŠœ¨èŒªŠ„ü¤ªÚÚÞ¡±ýï¦í¸ß€´È†•…¾’Œ¼•åÏ®ýóà„íøö©È +€†•…¾’¼••åȳ‘ä×ã›Â¯ñâùì‚èԽǀ€œá Àßé„€˜€á ÀߝР€€‘‹ñÕŠ£ƒÁà°Ûûÿ…ŸÊ÷õ +] +::^ [s0; Widget displaying RichText documents. Has ScrollBar and reacts +to hyper`-links.] +:: [s0; ScrollBar] +::= [s0;= +@@image:106&456 +€ƒ‘€É€€€ƒ·ÿ€€€€ø£œíÖËÎ𘔼“çàŽœ±€…Û®À†«¾ Ž€Ø±àӈء–ЀÝÁæÅù¨ÍÈÛ¤¼éÓÒÒªŒªùÂú²—Ä +èˆÅ¨Ñ¨²Æ¶ïìÈï¬Ì⯑ûñº÷¹Àÿ’ݽÚÖÎÁ£Æöþ–°‹š‚¡Á˜è¾»Þ‚ê¿£ˆ±Ë„å¤ÁŠàÎ祿³¬Æ•¤«Á¾Ø§öݳ +ƒ£ÕêüÕþ˭𾱺œ«ë¥›’ƒâÅ⊇ žÀÉÕòÜ´ÿ¥ˆú‚àÕ—ÉÑ•ƒˆÊ鲌褶«±‰™œÑ¥‡—€Ñ³´ŒÎÒ̶Ò ¯çÖ +õ£™¼¯Ôý‹±Ûû³ø÷ɼ¾à°ŽÖºà±ù˽ÖÀÉå¿À¯ðøêÚ—ŽÈÊÍâ§ÍìãÛ„¥“£¾¬•“¨÷…’í׉ɉê˜ÚååýòÜ…ÁÒíòó +žÝò¶²€áʦûÅüÞóÐÿžˆü§áàå”ÊôÆ£ç­ô£¸ñÿ’ùÓÉðÝöžÆ³è£žÈ¦É¼Ÿ§ôò—•¤’Ô’ÿ Ú©ÿŸùӊ¬„«¥ÖÎ +Ì蓬šÚ¹óÐÛ‰ÖÊ­Òš•Íʰ¢µ’¸Ý¹´Á¦õÕ‚×Õß—‚ϧ‚„Ä•– +] +::^ [s0; Scroll`-bar.] +:: [s0; ScrollBars] +::= [s0;= ] +::^ [s0; Horizontal and vertical scrollbar (Frame).] +:: [s0; SeparatorCtrl] +::= [s0;= ] +::^ [s0; Simple static widget used as separator line.] +:: [s0; Slider] +::= [s0;= +@@image:650&106 +€ƒè€‘€€€ƒïÿ€€€€ø¯œí˜ÁÎÂÀþ†ŸÉ×âà´Óøá•Œàá¸ùÀ…ÏăÒÒ•Ó¥‚’°€Òè©”‹Ò˯ôǒɶÌܼìÉÌÄæËÞ +êºû§ûõšìï®çÚÞ¿¿åƒä´öôüöØ“®ä„¡ˆÊ³ÁýÑÛ«¤´ßœ¯ˆ¿ò¼ç˜Ž´±“ƒñ“ÖÒïè’묷þï•‚Õøê¢±ÿ¬ +«•Ô›þ¯´ÊíîÄ‚ÆâÇ͉Χµ‰ôí—餧•ò†•Ï—–˂ׇ¥ËÆî¨Õï¿„îëςֲÞõ†¬²·¾ž¼…ÍçŽÖÌͷ–É›ÔÏ +ÞÞáÖÌïÛç·Ž‹äͪô§ïÑü¬•¬‰·×–Ù›ßÏ­Þ–‘¯•ÓÛåõæÀ¢ù“êÓÉÛò±ÕÊÖÌÛßâÇ’³²—·ÕǨ•óáÿöåõ‹ö +šïñªÒŠùÞ¸þø¬„º¯ºüÆË­˜çÓ¬—­’çò€ÙÓ‘ÂçÓ¤‰¿µ²×ûõº»ÑÊÞï¦òÜ·­üñ‡«û†Œ‡ü¡Ç +] +::^ [s0; Slider part of ScrollBar.] +:: [s0; [^topic`:`/`/CtrlLib`/src`/Slider`$en`-us^ SliderCtrl]] +::= [s0;= +@@image:1037&150 +‚ƒ¦€˜€€€ƒèÿ€€€€ø¯œíØÁ‰…°¼ÅÑôß›¸°ˆË°…¡Æ½ŒÀÀ’Èþêœà»Ãáã°ò¾×ƒšï«Ðƒ€€€«²³ù󽩥ð­à +Ó‡âêêñÒ¹ÿü¶ëð­à‡éâê¨Þœû¦ àؼü«§ÿĺ­ž„æØüèÿÓϳéñðòóæƒº§ú´ƒ¸ÉÌß¼ú£¯‰¿ëÖà²ùϸªŠ«¡¸ +ªšã««˜Š‹êßÝ€€–½÷€œÛƒ +] +::^ [s0; Setting of integer value using the `"thumb`".] +:: [s0; [^topic`:`/`/CtrlLib`/src`/SpinButtons`$en`-us^ SpinButtons]] +::= [s0;= +@@image:137&156 +€ƒ–€™€€€ƒçÿ€€€€øýœûóòÆ›¡ûòº×‘‡àÒ¦ü§‹à±áÓô­³¶¾Â›ƒ€Šð›€ÑÁƒ‡•´á“øµ·ðä׃ŽÌ…¢â̸ +¢òù…„µÃØÜ„ˆˆ±áãàù§À„Ñ‹£Ì€ âÌØ÷ÑæžÄЄʉãâÐŦ¤€Í‘™ôÍøœ”¢óé“›À…ù‡ÎßŃ芞ˆ„ȦÐÞ +ÀÆ„€Áê‚ä +] +::^ [s0; Couple of spinning arrows (Frame).] +:: [s0; [^topic`:`/`/CtrlLib`/src`/Splitter`$en`-us^ Splitter]] +::= [s0;= +@@image:913&442 +Šƒìð€€€‚ÿ€€€€øÇœí݉ØÔçǽÇñƒÔÍÒúëšÈâÕºÅò˜±êŘ˜Ã ¸ï‘±  €’•‘…‘•¢±îË´¦µ¹ÙüìããÒ¤½¦ +ö¶ÏÓûÓš¶ßéÓÍ›˜¦µÞ铸°ˆŠˆî†ÙÙáæœ¼áÑîûÎÁáæ˜Îœ¹“çõßÌŒ¿ÿóùæå™¹ÀáœàËñëðææê”ȰêÓ‘ñúÿ¾ +™œº¥’‹¾ŸÝ² àæÞ¡éæ—õˆ­ç⮫¸çµÜ²Á°¼Ùåæ’ÍóÜó†î¹‰žŒÙþÓÒªˆ¨™µ°’Œ°üÜÿʺþÜÅ•‰ôô´Úà¿ +§£³Ÿ¡—íÛ墫¹¹ÚŠœ‘¡—ôûœ³ž·µ ½ëðœà§¶ÜÌ÷ϵٖ޹×Ã÷µòÿÿåêØö´Ç¶Ç¼ÙžŠñ¸½ò•õ«„šúÌ­ñ +ä ÐÈü©Áßç¨þÝ‚ÞéþÉå““ê¸õ‡ê¦·«’â‚”—¹ç†¶’ñ®ÅâßΧÃêÆºÂÄ‚žº¯¡¡×–›ä½ˆ™ŸúšÅÊ«þøÛÈÒÅ +ÁΛ€ÀÄš”©ò¾¨¦ØÜ›‹éõ ›¦¯Šùõ›ÌÇôʾÎðË›é¸É…Ÿþœµ—«áâËÂãÒªˆîíˆéô¼¬Ëš–ÝÖªÎí¾ž– +½ÓΈçÉ©ãÙ£øÆÜØóÓ–²Œ—ß“€ˆü«äÈ”›â×ËŒ¤ØÈ€ÑÈæËèÚ󒨆¥¬­¡¤÷ÅÊ­ìäž·ÁŸ®ë¤—»¶ƒ¤ÔöØÞÍÏ +³É–Äóǰôä‹‘ÐÉͼÅÈÅ•ö¶¼ú’¼÷ü٧䃗ê’ûÎÊ®¹¢½÷ƒ¾•ÜÆ¥‡´†€€è˜âõµµªªä¹•¹ô…‰ ÿŒÏܪ§’õ +ŠÈœÅñ•Ôì°¹‘’ÓÊͯõ¥ÿ—ôü™’´„üâÙ®ßï¦éÃÇÿÎßÊØšžßÒÁ©ãóŽ’÷Ø×ØÉÁ±ñíýŸçÀßœÈÌ€Àä„É´‹±×Ý +Ì’ý³Ò·Ûí´ Æ›”›˜ÚÀÅëÀ‚ιÒͼøË޳¿Ó¿¦Ç¢¸éÛ¸ƒË·é–òÒŽâªÉÎצÙüÍ‚€àŸÄú¼¯Ë¿Ú¥©«éí÷òÈÇ +ß‘½Õœ®ÿê±Ø¾ºŽÕéôØÔžþÈ ó«öþ§¯–õµ˜ä¯÷Ä¿èÍ´Çý•›ñ’†¶ü‘ß˵Üò«ÙðÇ·Ò¢í°ŸíèèÒ¶ïÇÿ‹Àÿ¹ +Ëþï†þÏܼï÷Òß¶•êù®ïþ×–ò¦ƒøÃ¾æ¯¿êï—õƶë¬ÚÖ©›©É›Ñ¨§¶Øˆñ™Ã–‘ë¬ÃÖÔàÍØÛÞ𵑢ü¬ïö’«¡ +ù«î’ð–ŠÒ©ª·¶›ö§˜Ä¶¥ê³ãôéÇó´«æè×ÏÇÒ®œÂÔ®ŸàÄè–¿ÁÅ‚«™ÙºûÈÞÞü„º¢‚’Øñšð±áŸï¢õ¾÷Å®ß +îïéŨó¡³àݛΫ­¶ÚúÑòÕæÎÉþÝÿ³àø•§Óú÷¹À°Ò»ï„‹¬ã·ýßÂöÖï›ÿÿ±ùÀÿضþ»Â–õÌ–ñÓò¡ý­¡õÇ +íÊ·…ä·„¤“ÿâ—Ÿàãß÷æŸÝãºÕøºþýã°å•óã–ÿÁÖ̾ïÙ‰ýž“²“ßêƒÛêÞÿ«—þׇëß½ÐÜõð«ùÕ¬óíþŒÓ¾ôÓž +þÔãΕÆÉûƭɆœÅúù¬ØÝƳڔ¿©å‰ãóæŒõûËô¸¹¥¸ã¾úËîϧ÷ºØƒþÏéŽËî«ýìÝ×ïÞùõ®©×û﮽÷ +ôÏ韗¯Þ³‡³ä®¥ÜζÑÏí¥Üæ¢æî·Ë¯’¸ÿÄõ…¥øÅ¥õ®òê—°šð‘ò¦½¥œûÓó»ÿíùÍí·Í»þéËÎù×¶ñˆ©° +º­í§´À«ŽÐŠ«Þ—’Þåö—½Â¯ØËÏÜî˜Õ¸òæååƒóΑ³õÍÎÈãéÃÍûÒ꿸½ÖðòÝÚÿþŸ­úЮª·ò™Ì‡¶šöç˜ +ß÷¦‘Œ›ö¯ð²îßáÜ’¤­ÏÞ¤ËÜ Ýâ½³¢éâÁü«‘¿ùâÁº“µÒð‚´ü¡¯è»›Îª¾µ ßãÁ˜äûäýðÙîý¾—•ÇêíÌË©è± +Ïç¶æÒ—ÓìÜéÇôܶæî¬ßñ׳ǒ‹ÜóçñÈ¯Š€ø¹Ò¿…¥¿âÉøþ·Ø¼ïýÛ¦÷ºì™ïÛÖüØüȦÉý‘ð䲟÷’Ÿ½Ç +èºÿ½ã„¬Ÿ£ó¬“¶´éŽÚÕÙïÞÇË´œ¾ÙÉÌ¥ýØðã–¥¤Þ¨õ§ŽÖœÙ×ëõú¦ó«™¦‚—ט÷¤›¶Ô§™²“ô›ãüô™ÑºŒùô +¿Þ•”©•Ë£Á˗Ϩذê­äÓýèΞªÏ Ä†¸©ÙÙð‹å¥§ŠŠ€Ïݬ¹ÕКϩ⺅ܬҨþËîÑßó÷‹ÿ”Ûô›‚³Ê‰‡‹¹…ß +Û¢á€àçÈýî–½Ìïü϶Ùç„íïÚö͔·„¤ƒÂüÀþ¾æ·¿ç»âõúæëä¶å±é¬ÒÝËø¯–ˆõ–ñëšâƧꇭøÄ·¹áλñø× +®È×Ü측¼ûÑõ¡Õïñï¡—ÎýƒâîÉɲìŒ×úåÄè×ÌѮ՜޹¬²²éžé²½éãµ™‰‘åñã®®êœýáä é†ªÿÿ“º²ŸÔ +ÒÀé¡ÿß°ÎßÏöö–…ÚÞÓßנ့ϜüˤױÖûù¬ã¶—ìç‹çÔ·íËÈËÊù¥„üî öþÚŽ‰¸õ½ÂÆË¸õ–±í묣×ÙǬ +˳ŽÝ׸úµå®£¿Ò»ñØ®ð×Ü츾þ³¦êÕ¬ª×Ðß «ðǻۈƒ¾×»òš‰Õ¸æñ„ÇöÍÙ¢±å‹ÆÞŒ…‘ê¸øßŠéŠ¸Ù²ÍþÜâ +œÂ¥×Ñðæ»‰—è»¶Üïï•¿ÁïšúÕÙöèÜ×ÎÏñ‚匃€¿¢½šï³ÓšñÓÚÞÏ´ŸØ’ß“–ý¼¢ÄîåçïÉäçîµÆí²Ú¾•åùÁúë +—ã묣×ÚŸ¾Í·ŽÊ°ŽÞÁ׸ªÕ»ðÁšéçõ¸óμ¶Üõ§·›®ÚË›ãÚŸÁïöÂÙ›æÜžì¼øÿíª™Ú•ÚÑ•ËŸêŒøùÂǵ±£Êã +´ÆßŒ™õá³êƒéΞ®¢Åìþ¬¯ËºÜѯð¸ŽëéÏõ˜Ûûû«üº¼¿ãøÕ°¸óᦫì“ÁÆÀ߉ùÍùÓÈȽÈïÅÙöŸªð²°ð + ¿÷‡¿ý‹µÒò“õ–åÌÖúëÈõÖÇֈڟηŽßëüý¬£ñ±Õ򾄨÷ì„æÜ”Ù‰ù«ëâ΢»›îÜ•¦âÜ“ÊÏ·¬Ð³ä¥¸¢Ý¹ +ª¼²³à±èÍ¢ŸÖÄŒ¯ªý¬ðÁã¿ûØæÀÇ߬’Üîø¬†æ·ÉÆø³á­ÒËñЮ²ÿñåæÃË«éƒù‹ò˜Ä³€€ÿ Ñ£›œãÉú•ß +¯ñº°âµú§ÿÈøýü½üíÜÝÖ黬‘òÛ¬“ò¬£³ë­î°ŽË䔟ÚÇ¿œá³¾®ñøª¾ÿïô§ö†Ëì„æÜ”Ù‰ù«ëòÎȺ¼¦’† +šúÅäã–¤ú·ðɶ•†œ¤Ôýö¼îý—ªµ¼¶îÑíóÁê—¼Ô™óªðÅóï͟þû‰ý»›®Ú®ÅÇý•¶œ»Äœìœ£µ¯ÂéÓª¸µÜ +ÎÞëúŸßŠ‹˜½ÇšÞ™ñˆ¤¸êÿð܆Ȥꓳ¬ñûñù¥‡èÀÉ釢ýôÁºó÷»óÓ÷ò“¶Û¼§ì±ŽÎáÇÒäóï䇯Ëç‡äòó› +êû¾Û¥ƒáλ¡—åö®ÂÞ꺓û“‡†Ó†§Í´ì…Œ³æ¬±îΘ²ìÚ¢ÏÚÄÖŸé³ö®£à•º¥£õñ£ô¥±ëâ†ëâñ†è–޽üì +»Ð߿ٗî¤×ª”‹¬îØŠ‰“õøø›Ýšó¾”¾©–ò†àïü§¯´öËð”†î™ýÒ†­õŸ¡Ÿ€ÀþŠ‰Úøõ–躗­‰¯ð‹ÿĨ¤¾¢¬ú™ +ù‰Ÿ÷¢¿€ã¿ù—¿áÀ‡¿æ›¿â³¤°ô“°°›ŸË¸‘Ÿ˜é™¸šÊßçÞßé¹Å¥öÒî¿ÌÅ…ÝÎÈÛÝ÷âÂÿ݇ú§É–øÝºèˉ +†Í‹¯¤šõ²—é·Ä¸¬åÉ£Œ‹†Ùê—ŽÔÇŒ¬¼Ü°ðòœÿšø¢Ýɤ¦·©œ¶üØåºŽ§ŸÒÀùÃΚžèÜðÎÖûýážš¾ +¿éè¹Ð¸óáõ«øúü‰ÏÛ¡‰±‡€––¶ÛÁ·Ã¢öøºšåÖŽëÂý¼Ä‰ïü«üœÉÉïþáÞ¾þæ°¾¾ê¯ÿäž’þÌ®áÄöá©è–áÀ¦¡ß +ۖЯÓÒ÷¥‘áûó¿³·ÜÜâ§ä¢ÌÎÈøÛÝ÷’ØÀÅÓÕ“³•Ͻ®Èݽ˿þ¡©Ñ·¡»ÞŸ•×·™î´¨ñ̒냱ᨱöÍ€¡¦Ÿöþ¿ +¬«³úþ±âû¼ô§ÓÜ´Š¿šñ±¥´á«þ”¶œÜ¤Æ·ÓûÃÖ¶Úê÷à±àÄÛæõÃ߆¦ä’†û‹Ä§¿…ÀÒóñË— ¨Ñ¿â°¦¶Åí¶Ì +©ÛíÝø’߮ĵãöˆ£öÚÚžÚ®ô߬ô­Í–Â×ÙîÛÊá¼ç–ý‰í¸æ§‹÷óѯíñó÷ñ³öñ—“÷ñÏ퓜»¡ïõÝ‰é€øâƒ¹Óž½ +Ѽ²¹Ê·öžúþÃÂýÆØÎ•€ç̰¤Í¶é¦öž—âŠíÄïÜÐ×»·¼òèêýŸ¹§“£á„Ù»šÜΖä´áæºõÎßÙø³áâû´Ø—äîæú +©æãß…®¾ûšÖÌ„¬¡¸¨”€€¿Ã‚µ¤øÅÓÓÙ–™ŸÛ¬Ïî¶Ê·éüÅáø®Ûà¯í¶ÿÜì»ÿ»£Ð»ÝòݤîÃÏéö¥´›÷Ìß«ÌÛË +çÏÞÇÏÿ‰Ÿë´ÿ’´üæ‚ÎÈÛÝ÷–Óó‰–ò¦ìö¾àÍÒ§´©³„ôëŸõüöý½ÆìÃÚ醵÷“Œ©Ïš“ǸôæüþýúÙÛ½¯ÌúîÇ +‹÷¤»™ÛÇó¸­æüüçŶлÒÖÒÖ—’è»íПîɯ÷‰üžüÎööš‹ð‰Ô»Â—–„æÞòˆÉ졸´ë‘„˜ó€ð¹®¥¥¾Ò¿þ +àÉÍ㳬‘›Ä¬³¶Ë·üÔêžÛ£»ìƒ¶ÕÛžÜì»÷ƒ¯íîÕ–ž‹¥¡ÓíËèÅ»Ìñž×¬ïæý’èÛ¿™Ö¯Ø¢îìåòÈ’–ñëçÿ¦Ï +››©Ï›®ß“ØåÈýÚ˜²ÞÕ´ü”¹é‘²¶ÝøÛ‰Ó¼ûÞõÓî¾òÔØ¿¼šÚÑð‚¢´üé³ý¤ÏñÇý©šúŠÉ¼Ëëņ‡¦Ôˇ¥˜ÂÖ›‰ +±žë̽ךûß®«¢Öêú®áÓÓëõ½Òõ‡¢°¬›áÙÀ¯‘Å⎀ìˈˤø–Èý¤žØÜ´¼•¾·ˆþ™Í–¨­ûÖ¨­ü¤­Öâç¶Ù§î·Ž +ÏßÁÞ¡Œß´®ŒÙ¦ôÏ‘Çîϲý·Ã蹑â‰×‡ÄÙÙ©ñÉÎȆ¯‚åô±ÿíòƒåÑë’Ô¢ª—½£ÍŽÏÒ®ŒÒ¦ÏÒ´¥¿£Ëž¨ß +Ö±Þ°ì´ñÉ„ðÓÂÓìÿ¹²ˆ·Îú®¶‡ªÇå§Âÿ¿Æ¢„îäÁÓÇÒÒœ´¼âß´§áßÏõ´œ„à¼ì•ïÿ­·¯–°õ­½³Ûøúåß﹩ã +œÕ²Å×Ðô·÷¾ØßÖ§çÕ¿Õ€œÑ˜ÕñìÍÀåõì£××ÿ £þƒ‰õ“¶´ÄœìèŒØØ¸¶µ»ñÔ‹ÃßÜèš’ÝÔÿ£ì¥¼ÓÒ»ÝÒ +𫥩ôùú®ÚÆÃÅÒ§œôùÉΜ‹ù¢‰õ÷Þ¹ðڂˑ߬úÁÙâ’“å˦”§Æ”¯Ž¨Ø¼Ö“¸Ê›¿Ü›œ»Ä· ¿îÞ±¸îæïí”Þ +ýåχæÿ€ûÝͰ®£áâÆ®ÉÃÅûÒº¶‚ÜÌ¸íøÆËÉÏíâë¨Ó©€÷ë¸üÆ¡ŽÐ¨þÃ…ð›èê¯Ì®‹âÿ®ìÀâÙЭçµÃ—×ŒØ +ÞÑþÈòŠáÉÿš¡ÉšÁɚЫõý“õáö«ô÷®Óݽ¦Ôÿ„ýȼ·ûâ…ÿ„ó´ü–÷—ùó©íºšë繟ùîéðó¬Ó†äΚš» +¬÷øîÜ‘¹óƞɛ»¬ÿίЂك¯ÍžøðéÆßËÓÂô¯ÅÝûù™»œ¯½ùüñ¡­ÿ˜Åýöò󺓸˗†‡÷¿áÜðÎþÂãÊâÒÜÜ÷ +ÁÌìö­ùÎÇ«ÊÜÝÀÕÿâ䀸ØûœÏث阹øÌﵩÿ¹ÿÖé¾±³¿þàö©¾³Î…Ïþ¤ü§ÎéûæÿÚûýöç÷Ìþü®ÙçúÎÿ¬ì +Ñêç¡ÓÏ𓌾²ðÔîÑÖùØÛßÉúûÏ­âÃÓß±ýÖÞÎûó¬‘Ý¿þ¼÷Éñ÷­ÿ¶¢Ï‡ãŸùøàÜŸ“ãÃø¿œŸþ»ˆûܾš×ûãï +ÏùÓ˜»¾šÕ‡ó£‘áÿú´…ä÷ð§§ü±—榿Ýàÿ¦á历‹§ á©”ÝÛ˜ºÊ®ÚÐ¦Š¾ÛßÚøÏ”ã×ð¨Ô¿£º’à¶è‘ÞÊ +žªêñ¯®ÃÿÖÌä£ÈÇÞµêÎÞéê±Êå ‡·¬ïî‘’¬¤Ÿíòú§©Õí¤à½žë©ìòÿ¸ËÃã™ì¯”Òñò¼«ôÁ¾ôÅêצ¶†¥µô ½ +È÷è‘ÅñÆñݼ¨ÅõãˆÅÀ›êŸ³€Š—©þÝ‚Š­ï٦߲û±¨ô×ðò¥ÍÜ’žèÛªÐäÌ¢…·®¨ÅÓñŒÃüܽ· ŽžŠôïõÜîÂ¥ +Ýá´ãåô•ÙÞææ†ÌÊ‹ÚÍÑ×…°‹‰ô©•Ñ—‰ˆ©´¿²§ÝüÅçù‘ýÉÝ€‹€‰¹å°ÈÖÑ£ÝüÉæ–ÓÒ§™¤¢îšÒÒÒññÚÍâ +€–òšÙ̽ݓÔñ´©âóÞ‘â˶üæ®ºí¸½ãŽ’Ëö’ßò¼¿Ó°‡Â€‘¿è¨Â  °üæàŸë¯ž—Òþ¿·×„’¾™‘µ÷¥Þ«¶• +èÝ©¼“ÿþôõ¹¯ÿ†’ÈàÃî¢òùÀé톀¬¹úÕÍëকðÃŽ¿àÂßôù«‘œý ²®®§ß„Õ࢜ªáÛš­‡ºâ¯÷‰¸ +°î·€àʹ¿îšÎ¢ÏÂÄËœùª¿ÂëôÍö¯§Á½šŸé‹³…䶤¸ÚÛ„ç†ãö±Ãà°ÌÇ¥¿™îšÎÖêä¥üɤöõõß”¹ôä°ùíÈ +‘θ·œ·›†»ƒ¹ãèÌŸÃÉŠ¬¤ïÞàÜÌñãÇÉþÍÔÞ­áâíìöƒÁà˜å£¿ò§ï äö©ý÷Îþïâ»îšÎ¶¶µ±µ‚€°âè +öšþ­Ç¾á­°­­€€Œ¸ë»øÝè¸â‘ïäøó³€€‘Ô®ªå†ý”’÷öä›îѳ‰€€ŒøÓ³ðë É¾á‚Àï…€àÄùÿÕþë«ÿŽü +‡Ã­Ö¦€€Æ³ÐðÛŸù†Û±šš¼âœÆÁõ«ƒ„¿ƒõ‘ïøÓã½¹€Ç¤Ý’çËä¹ëøÝ‘ÅŽè¸Â‘ïøãôÀǤےµçäùÓð¶ +½¤ßðúºšª€È·¥ÏƒÈó¢áíí –É¾áõµÕ€ôž¹ßŸ®ú•€¢¼á혜·£ßðÚê³¹€Ç¤Ý’ç¯ä¡á·¾ò﮲‚øÄº +€­ùžÀžšþ­ë£ß𪳵À£ÒíÉó€ûò¼é¸úÏÐÇåŸä›î¶êÈ€¼ò¾¿Üõ¨«ƒÄÝÃûÌÅ”¡á¾é¸±ÑЉ€Àˆë…Ç»ïøë« +ªÈ’ï¸Á§»ÇÉê׊ނ‚ò†·âÜŒüÃõÚò€Ì€ÆÐðÛŸù‹†ëªË€€˜Çñ¦á­ É¾‡áåß”€°‡‚†³îøéÉÀ€€£è¸ë +Á†—ݺ‹€À±ˆ—×û¥¿‹ý–ÌõºÓ‚áÞ¿€˜ù¿ï½Ÿ¡áŒšþž•°í‹³…Âùç¾…€àäííãǦ­Ù­“¤á­­Í Éï²áùçϯ٠+òú¸ôäðñÍãÇÉû€€øÜÙ“€çî̾ʴ¶ˆè¸¸ï›þ¥ðŒÞàÛÌšÎÖãäÁ­€€¾ÇÖàâ¤à‚ßÏ áÁ¾í¸ÁîÕòÛ˱ƒÁà˜ +‰ŒÉ‰Ž“熷·ƒ¤÷ˆ‡€¸íÜš˜þ—šŽ†ƒÀ«à ŸÒÊîºá¾á¶„͆ƒ€ê¼¶¼›¹Ù†’Ðð€¸Ðšîó†ßÔ©¼“ÿþ´¹ + €˜¡‘¡•©ÁÃýÞðòÍ«’ÉÙ‡¢ãÀòÔ¿€‰€‚ŒÒÔ¶µÛÔšôÅÇ–Ê¢·ÜæƒÉ’²§¿œÉÀ‰³’ßå×è꜖ó„Áà‚ù´ +âºÓ—ç‹ÅÇØ’ö¼ÆÇÃÃÊ…¤Ùðò»±‘•¸‰¸ÚßÐ猆“Ìóè…ÈᲚþëïÔðîLJû«žÊ¿å®á¸ä£ÙßÀàð°˜æóüøÑ +¦þÏùõ›×ì¶á¶›€’ äšÎ¶ÞÇà°°˜æó²ËóçϢጚÞÖ䆀ÀˆšÎºÉáíí­€€ŒÊøÑð‡Éò”×û•›±˜ð̰šÎ¼á +‚ê¿Ä…€„±Š´œõÃÕÿêÐÜ€ˆâîšÞÓýøðÁàÁ’‚üÃÕÿ˜©€¶„±“®¯‰¼»ÈíóϪžÊÏ¿å¡áꟾ¸Ž€ÁÌ›†ÛêÁ’üÃÕ¿« +̇€‚˜—çù­ É¾áªÿÈ·€‚˜šÎƒ¼áêß½€ˆÄâè¸ïÃɃ†óÖ‹€€£Ùî›ÞìÒðžÛ·‚¤ù†Û­˜Í€€Œ¸¶ü¥°Ìí Éà +å퀀Œ ƒá¬›îéꄼ€àÄ‹†«ý·ß’ïøÓ€ãƒ€€£è¸Çû†×ƒ€°‚ƒ†³îøãÃ耀£Ê›®ú­Ÿßý–üÛ¹êë”àœÆ +Ùõ«ƒÂÝÃêûÇÃýÓðÓúºš€È·¸å®‚¸ÓíùÚ‹Ý·ÜÒ„’•Ðð¸õˆ¶üø»è¸ë†×ÕàÖƒøÄš®úšõ€À„†³ïèøÍ•€Ç´á + ê߇ˆÄÞ´ÒÜýǤù§ù†×Ö˜¼¢„×ýºÀ Â¹ÃÙ·¼¦Ú„¹à‘é¸ê×΂‘»†÷ÿކ‹¥‘¤ùèªø•‘À£Úð‰÷—Üñÿü +¾ø·†«ý´€œþ˾áÕæ£½€’ÎLJ«þ¸å Ð á¬›ÀÞå¶€€°âÒÍÛÀ’üÉͦ½€¼Îê¢Ô¿ÖÐð‰æ·ê€€˜ÒÁÃÙ·ÜäÔ +¸‚€°¢¼áͨ͠ÉÃÃÐÚ€€Æ”¿çó•êÏõî·ä„›îÔׂ€°­âÍÃÕÿ¶ó•ÿ¤ßðƒÎƒò€ÀˆšÎ¾áø•€€Œ á¬Ž›®×–ƒ€° +÷‚†³î¸®²”Œ€€‘åï‚쨇É踀ÿ¨Å›†«ÿêûŸþɾášò‰«€€Œ¨¿¾êÜõÔú­ù†¥—ß»‚€ÀÈ׆ϡ¿Ÿ†û¶á×Ê® +¸‚€°‚†³î‡øÕ¢Ü€€Æ¥ÐðÖ¯ºô”–€€‘åïÓ¨¯…Éò¿ÂÔðÆÐšðÖ¿˜÷†Š€€‘÷÷½Õ¶ÐõÔú­™¹†ëô¦¼óÿ +¸‡€àä½÷þƆ³êøÔÂå¶¯Î–Þøú ÆÞ¾öîìÚ’Ýè¸Ïú›žÿþô𭂇‰ÃÇŽŸ¿¦þ”¼€€á‘•¸‰øæîù£Äë‹à±á +±õõµ é¤ÔÛÑë‹¶ÉÃÉꜼ•®€ÀçÈŠœ„æÜà뉴ܷŒ§È­Êþ¹¡¶ã°˜Œ³¡Õ‘¡©¡ÁÁÃŽýÛðŸüð¶€à¶ÁÃÑð +€€ˆÜè¸šŽ²€ËÁëÁ𒚎€ªóÜ»ðÚêäî﹚׊Ï䟿€ÍîÀ€€ÆÈØäÈê”üͳӮ¶š¤¹»¶ÅÈξ™—ãúÈ€” +Ý¢’¶­ÙúÐá «Öòì¡êË©ôÛ’§¿ÌœÉÀ‰³ßåÄ×èêœó„ÅÁà‚ù´ºÓ˜—ç‹ÅÇ’ªÞùŒê©ôàü¸Îõëà±áäö£«ð’ð +ǵ¿Î˜Œ¦˜ÏçБÃäµÞ¯®à±öõµÕöþÂÞðõ¯†Ÿƒ»†“ä…ìþƒƒÁà˜ÍËñãÇû©ûÎÊ«ÕÓéœð¿ÛʸÌÃÉÆµã¿Â˜Œ¦˜ç +ÿ¤âçž­«©Íò‡´Þ·Ïý‡„§†ß‡€à¤ÄùÃëëªÔÂÇÒ­ùÞÝòοŽÁà°Ìˆ†Çñ˜ÌãàŽ··«Žå뺪ߟ‘§ƒ†·€°’À +âïží¿É¸ÆüÃÛ°˜Œ†íÙøÑð곺‚è±½íÑ…š›ŽÁàÔš€êŸ¸ßòÔðÖ€ô€Æ”·¼¦Ú¡¬®ÎêÔ¿ÖºµžšÞŠÁà¾°ÌÆ›†›À +’§†·€€°Ï‚†£á€¸…ÐðæïéÜ€àÄ‹†×™ÊÀ’üÃÛÚš°€˜ÁÃÑ𨀈Ü޴܈™’¼´¼¹™€µ€‘寮²Í‚¤ù†··Û +°€€˜ÁÃÑðà€ˆÜè¸ó†¡Û„€€Æ¼è›¸Ùˆ’ä›îѳ‰€€ŒøÓðƒÈÂÃÀ˜­è¸ó†‹¼À€€£Ý›þŽ›ä¶áÕæƒªÈ’︠ð€ +Ž€Œ á踀¨„®´œùÃùÀ«€€£Þ´ÜÁ¤‡É踀¨è…çÝðž·¸€€°¢¼áæá“ž¤ùè¸Õ´‚€ÀÈ—†ÇÉÉÛ¨úªýÀ–šŽ€êÁà +„Ù·Üêí‚€ÞàÄ›†ëÀ’‹‡†Ûš€€˜Çñ¢áÆÈòÃÔðÆ€€ÆÐŠðַؚ؀˜ÁÙ·¼‰©‘€€‘÷¯ïÕ­á¦£Ž€¤ùêøƒ€€ +â£Þ´Ü‹’äΛÞÔÔ€€ÀÁˆ—·èÁ’ƒ‡†·¶€€°‡‚†³ïø½€€€£è¸šŽ€ñ‹çÝðÆ¡†º€€Æ”·…Ü訄É踢€¨…Çà + ðõíøµî…ЯݶÜ߉‹’ä›ÞÐß‹²€ÀˆšŽ†ƒÚÀàÂÃÙ·¼Ä†€€‘ïš®ôÉò¯¯« €àÄùÃúÈÂÃÀØ­è¸û†×à +¶‹ëº·¸«÷¯¶Ãµᓃݷܧɽò¯«­†»ºœÉ¬»øäç¸Ð𴜌ØÃÃޒ¼µ¼Šîðö̺§û–ÇÆ—­ +¯Ý·»Û¹ÜÑõÐðÖ¯­©ù‚»œÉ¬»‹µâùåÛäß“ñîÀè¸û†›¹áŽçϬôŇñ¼ò­®ÿ¤›í¾ó¸Ó¨ï±¸ÞÛ’Ðð¿çÛ†Ëïœ +±î´è¸ó†×ã›áŽÇ³ëæù¢øÞù–îÛáŽ×¥áÓʰå›ÞŽ’ä›ÈÞÓí‚»œ‰êí÷­âôßâŸØè²¥ûö÷⻇»ŠšÎ¼ÑáÕ¦€åè“ +à½íðÀÃÙ‚·Üˆ÷¦Îêμ¾§»­€’µÐðÖ¯®²ø‚€°¢¼áº½Êòä¡áæÐ£€€£Þ´¼Œ¤ù글׀‘®¿¦óÞúšª§ÒïÉ +†·¼Êì€€àˆ„Çàð§¡áÌ›î҃܀°‚†³î¸ƒÙ¤‡€àÄùçõšïÀ’§Ã†ë€€˜ÑÞ§ðÊŠë ÉÃÃú€€ÆÜ޵ü®î¯¯ +„…Éò·™õ쀀Œ¸¶üæðë¢÷︦üŒªÈòÔ𭀄€£Ê›ÞÑÖ²‚’¼´Ü …œ€àÄ‹†ÿÓÆŒ’Ðð€Ð‹Çò†—ÿÓ„’ä›î´Ô‚€ +š°âÅÃ¯Ý˜Éžš®¯„€˜àÄùÃËʯ‘ƒ¤Ï×€€Þ°â®á½¢ŠÔÜšþÍ饊¤ßðƒÞƒ€ÀÈ××Ä®õšúŒÏ·†ß­°„Éžš®Ó€ +¼€°¢¼á×Ê¢®‚¤Ï¯€€àÄùÃËËôŠÀ’üÃõºŠ€€Æ¼èø˜ñ¾ÈòÐðí…€€£Ê›þÁµ¨¤ùê¸çú¯ÚŒ€ÁÊÆÝûŸÛøµ +ب—¤¡á€ –î÷ûüøãÉ•‹ É¾áƒª¿Ä…€„±‰å¯¾üž¤‹¡á€ –ïšØþޤ¡á€ ’–寺ô–²¤É·Üõ—™º‚€ ¦¼á× +’Š¿†Éòסý¥ª€ ˆù×Óð¯À’üƫʊ€˜ñ‹×ðÞãÝ›þçù◠ɾáÁª¿µ®€„±“®ÏÛØÊº¯á®á—Šþƒ’ä›ÞÖú‰ +¢€€‘ïšþ¯¤ßðë׋ð€˜ÑÞð©ü¯À’üÃÕ€ÿÊ®€ˆâÞÌ´¼ïŸ É¾‹áª¿‹€„š±å¿˜÷†²¤É·Üõ§‚º€€ ¦¼á… +“¹ÿ€Éò×åýᤀÄÜžµ¼ûñᅗȾ‡Éò×ý°¡È€Ä”¿Æ§ÿÂç É—¾áªŸ¾Ž€øÁÌùÃóÎÿ¤¤É·ÜõÃ蟠ˆùÑð +ö󟂤ù†«ÂþØŒ€„±åÂϽ÷š¤ÉŠ·üâ€šÆ¼èøÙÏÀ’üÃó¯üŽÞ€Àˆò†ßøÕúã¤ßðÕëﮇ€ æÚáðÁî›þþë +ÕÁ’üÃóÏÁž†€àÄáÃܵºÓù¯Îÿ¤÷Þû™»†›“ÛÍõÿ¦€èÀóôǦáŒÑ‰Û¾¸Ûø³îËÓ éíãûǦ­ÙݽáŸâí¦ú¯˜€ +œˆâŽþ¸ëø—þùÓë¶ž¤°Ž¹üüøÑѲò›ßÜ€™»’­ª­‚óÃñ»è€Ó®ýñ×ðÚ«…çôÚâÒ†¢²ª¤«öðÈÁþƒ’›Ðà +ë‰ç†ãöƒþ€Öœûã®áì¤Çä­¤òíà˜·Ã€Å‹ð»á°˜Ö»ãèÏ÷†÷ÙÙ¤“³Þë¹³†ÇôÀÀ­‚¤àã¾õîøëï¹¥÷¥”Ý +•óìñ÷¦—ù­Ä͹¦ˆù¬³·Ó”…¢®©»ã«ë¥ìÓ©ï¹æ·ù†÷áϧóÙ®”þíöîç××ᵺ÷ÍßÀþù¯óûÕ§ÓôÃâÛ¶ëî«Ýùô› +øâž·ú“îðû´áýÿÇÚŸìøùƘ×Ψà»Ï·ÙÈ÷üõé”Ýè‚§ü·«…׳ü„ç¾ûúªé¼…üÇ×·À® ßýë‚÷çñêöÿºßñÙ +Ú·¹Ï¿Ïýùâõ¾½³àç‹´á¼Ãψ€ €ý¿™þƒ¾Ù +] +::^ [s0; Widget to implement resizeable multipane windows.] +:: [s0; [^topic`:`/`/CtrlLib`/src`/Static`$en`-us`#StaticRect`:`:class^ StaticRect]] +::= [s0;= ] +::^ [s0; Single`-color static rectangle.] +:: [s0; [^topic`:`/`/CtrlLib`/src`/Static`$en`-us`#StaticText`:`:class^ StaticText]] +::= [s0;= ] +::^ [s0; Static text, without accelerator key processing.] +:: [s0; [^topic`:`/`/CtrlLib`/src`/StatusBar`$en`-us`#StatusBar`:`:class^ StatusBar]] +::= [s0;= +@@image:768&156 +€ƒû€™€€€ƒçÿ€€€€ø§œí•ÝŠ€ °†»ñ÷è²³§«„ÞÁž³„¨öÝÃü‹áæãžò“ÁÑҶ¤ØæŽå…–¸ýƒ€ €€€ˆÌ÷ü +¦Ù§ûÞþÁÊԶ·„£üÌ®Œá²Ï˜•Ðì¼ßáß®ö¯ðØóµ¢ç “üðõ¨žÄ™ì¾£¼ˆð㦦«ŠÏêõßâÓ辯áÉûéÆšŒÜ +¾êƒð–ª±†€Ð†ƒþ©¬€¬ +] +::^ [s0; Displaying informations at the bottom of window.] +:: [s0; [^topic`:`/`/CtrlLib`/src`/Switch`$en`-us^ Switch]] +::= [s0;= +@@image:931&131 +‚ƒ•€•€€€ƒëÿ€€€€øœí—ÏË›ÁŽ”Çóÿø¼Û‰Šž¼ä¢žÇ½ÚƒÄ¹ŠàÄÁ”ª”žÈ‚­é¡­”Ñé‹¥‘Èêç’ƒµå—©’ +”äí܆֥åÖ‰…û¿äéß²ìÌÎΦ“ᤡ³ü‰Éîþä÷³ïûöÍú›«Þ²¤¤¤ç¤¤¤ÆÛÙì¿ç••糳뼓“ÏææÖ׺×÷ó¹Ë‘‚ +ü˜ÞÎôÌ™Ìúª•Éæ‹ü×××¹ÜÅÎÿÎÛééµ­­±×£‚°¼œÀäÚÜܬ–¿–ùËåÍÓªÕª‡®ëµÚÍÑþ‡àøö¶…¬’‹‰ðÜ™óÚ‡ +ž€öÅñ¿‡¯ŠÊéÇœöÙäЊΎ’ÞÔž†á˜ñ¦ùûÛÂÙÓùÓ¯ÜÅ™Ãûžì¸¯ÜçñÕüØ€þ§î©Øë¡Š¼»Ö¹ý—”ñ” +ì‚·’Ñžõö‘°¬ë÷÷ݼ›þ¢÷ö¹²ç—™¥ÏËñ‹Âøô¨úøóØš¥€Øû„„Êé¸ýØ‚ÑÆí»´÷ ™¿ÍƱ£Ñ¨ÜÏϧ¦ø®é©‘Î÷ +°öýóƒÀ»ãµã¸ý³¼Ë„ÎþœŒ‹Àå½ð€ß©§ú蔨²¥½¥•¨ÌŠí“–àû»Œ›ÿ†ô‰§½Ôµ´µ•ò‹•¤î’Àüäñ€òÊžï +ÿíÝò÷åñ£¨ñÕ×ùü˜ØÈ«ƒÅ†Š×±ö…‚¦Š­â¯Ú§÷ºÇøÁê¶›ççßþø’Ÿää´ÏÒОµÔÌÛѻ豺öþÌÄêØü€ì†ª +ÆýŒÉ½Š”Ãªšž£¤â±ý›´¾èŸÈô‚þÒ«ÕÚÛû¾È¼ä±Ï¿ÀÁÍê¦Þ»ø÷ò÷’䊠ª°©úì¨áö¡£°üíÁë‹öÉ® +Õäî¤Êå—Ϋž•ņСðÔÿÒôÅþ³ïøºˆÆÀ¤‚¥Ü¾¨™ü¡…í‹Úß´ÏÆØ‚ÝÈ‹‹›ë©Ô›ò¯Ô’ÚÎþäØÝ¥€«‡¼Èàà +¨–˜¨†ýäÓϰý„­§¶ˆ­èýѾá‰ÀƙǩÀºù……θ†Ž°ð½ÎÀØÂ–“éÛ–¬¾èŸð©‰²Î–‚çÆ‡Ô·¯Ëõƒ ÛŠ¡œÔÚÑ +€Ïþ©©©©©µ©áÔßѤрã +] +::^ [s0; Value selection.] +:: [s0; [^topic`:`/`/CtrlLib`/src`/TabCtrl`$en`-us^ TabCtrl]] +::= [s0;= +@@image:1097&618 +€ƒ¬‚º€€ƒÆþ€€€€ø¯œíÝËòÜÆ‡–Æñú¥Ç¿¡†ŸàöÞÎâÆ–Üú™æ¹»‹‰˜÷˜ÝïúÖáËáÖØšÙ¨Š«ü«Ñ°¹¬Ò˔ͮ™æ +•ËêµúÅÉÖŸ†áì¼á ³«“ÀýÏüÂˆÑ„ÔØõ˾âÅ…××û€×€€€€€€ü€–÷ûÿø—枨Ÿ‡€ÀŸÌð¿ý¯ÝÁˆ¡€¸©çÿ +ßþßêÑã²ý³Ø®°Õø•½©æÔŸÊ€Šõ˜§ï¿Þ½î뇧êí¬‘þ»‡ÕÏáòÍÔÃÀš©«žð’¨÷°Þ繿þ—©Þ‰Êê³Ä°ºÌ +¼«÷Œ¨÷°Þ¦äú“ŠÀ¤óÌ«÷Œ¼ûÅûÊŒã߽Г•æÈ àõ¾ºÌ ¿¿ý™¾å†±¯Þ‰Ê¨³ä°º’Œ›ÚýóÍÁï‹ÿö“ÊŒãß +•½“•æÈ à’õ„™Ô¦å®Ûݬ·¯²Í†¨Ì¯Ö©ÜâÿêžÓëÊ×¹—üÊè·±¯þ¸©Ó˜ï¿°ù³áדº­ï‘ÀŠô˜ÁÆÿûå¯©æŸ +ëÑÛùòµ›ìž¼¿íÔõ§™ýÆþÍ¡•ä¡ÊæÒ÷º©Ø²ˆØâŒòÀþ´çïøË¢™·Ç³èÍ¯×Ø©æ§™Ï¶ÜÊʾɸæþÛó©ëϲŒýš +˜ÃóרéíÒÚ³Þ¥–Ëî–‘ÀŠÌýýÐí˜ÊÑôñ׉Îî•É ßÞÿâöÙèïþŒÿºË½ÛÞî¦áž£»ñöß¹»©ëûŸÑòÖˆ÷’²Œ +×ý©çÐÞçôã¬Ö·“½ÿ™Äî³÷ˆàÅʵ¾ŠæÐè’»á÷Á¿üõåíÆï“ÐÙâް𿻬‰î§ïÜÖ»—ðÍðÚþóëÊ×—öŒŸ½–Áïãß +øð‚Ó»öŸþÚ¡¾™ÔùÏÆô›¿Ç€«²ô̆ÉãÈôóßúæ…„ÙáôÓÆðáêÉÐîÿ’ÔνŒîµ¼øýÉ›¤ŒˆãßòÞ¦ï÷¾«úæ¼½¥ +µ–Ëî‘ÀЬÍÁáü†ýÇõçç’æïѾ›Ã‡á’ðÓ÷ö†»¼µæèûΣëÊן´ªÉʰö¥çíßÒñæ»ªïÆ™ÛÛê¹äžÍ¬ÈÛ¿ÉÈ… +ÇŽ»æø†Ýÿ‚¹å†ëÌýÔæëÍÌž¢ëÊ׋Ÿ´ÉÊïãßüöŽåǛ慎¾™Ì×¶ÿ¯ÑὂؑŽßž§áæ§§™Ã¹öù‹ó·Ý› +…îžÂ•Ò»™ï݃·¦üýÔ†™¤Œãß¼ò‚½½ž™Òï“ü§òæò¦‡˜ê¶ó€ö֤Ìúù§÷ÿ›Ȩ̂‚­ÌªÍ½Ó¦Íæ¼÷²ŒýåÏÆ +¶ÍÁÀêô˜Áׯþ¤çøßžÏÚ¤†ûšüŽõ«÷²ÇŒýÅÎÈ×ͽÁÀêô˜Á­‡ó”ùíìëÆ÷¢ÒŒ™„¬Ú·™ôÓßž› Ì°öÕ»Ñ +â醌‚Ö§ÃЌҿ§ëµŒòýõÎÔšéä•ÀÈõ˜Á€Ÿ€ùÓÿ¾°óúÏ €ÀƘŠùô¿ÿ ƒ”€€Ë£ƒ€€’ÚÈ €€–²Œˆ€ …Œ‚€ +Ä衃€€ÚÈ„ €€–²ˆ€ƒ …Œ‚€è¡‘ƒ€€ÚÈ €¡€–²ˆ€ å­“™¤þ¶°¸’©ëúœª¿½æ×ÙÆ³è–…¢–©ü†é÷»ç×úŸÔت +¢ÜúøäÉæ¿ÿÿç‰³Ãæ­ö†Õöûß»ßý«ÄâÏÿÜÞú鹫ÍÙØö†½÷ï÷¼¹ó˜±ãÚ﬩žÁ•ÝÿšÉùݱöûƒý“ãÝÜܼ +žûöìù¯õõ¢õµð†õÕÏÏÝ톙„ŒùìÔÿ°¿–蚤ƒêºÍÌ×ø³×ÿøá‡èÊôݹ•ùš†÷ŸÍ¯ßÓÏèö̰ëÈÖœ©ï«‚»–ïâ® +Ι½ß²ƒ¯îÂç’Ö™Ôÿ°›žû´ƒÜç¢îÙôªÛ“¨èÜ‘»Õ¿ÿþñ•Äñ†™Ç³ªð¡¤ƒêºµÁ“óÿ¬³×ÏŸÏÏÝ—÷¿œ´ëôºæž›å +Ü™ÔÓϤæäûŠ»’ž¨âžõ£«Ì·ŠûÏû Ê“ÞðØÃЌڲ—ò÷¿žÙ©þÙ·‡Ó‰‚Œš¾ýˆÜ®¯Ë šî͛䴯ìíèúþ¸´ŒÖÃá +™°ð†Õô³ß‚†•õÕ³’¥ßß¿¤ÎðÌ£¥˜ŒšôЊÁüÀ†­—ê÷ÿ¿¹²Þÿàýáö¸¤á÷Áøµ™ÔÓ­™œÂæ®Þ«œ­Ñ¦îîîä™ä +ïý€Î½¡ùÙøÝý¿Þ½‡Í¡¤¾»ß×ÑüúÌõ–žØè’ÉðøÓ‡©¹ð×è‡Ñ¥ýçÇü„»§³õþÉ£æùÁ‰ƒøàø®‡«ÙÛ•ÃçÝõ¼Íî +Úãßä¥ö™½÷»èÊØžê–ÿüúÇÃŒð¡Ëþ˜®é•Á£öÃÝé†Õôä릧ùáïŽÚÖû»Ž¡ÒÓܵº©¢Ó µðÎÔñ¿™ý‡ùÍÌꩲ«° +£·ÑØÉõ˜Ùê­¿Õô°§†Ó—ðÜ•˜»ƒ‡ò‰œÙ¹ÿ‚èÇÊ’ÁÑÄàÉ­™Ý¡¿¡–ä穾±˜»ÙÕ¿ýüҚƭ¸÷Û꤃êýºµ“Óýû® +á…ýáð°óßõõ±„߇µçÊ šþ²¯ÞÓ­É´éʲ¢’ó§íô–ʘ²¨üýºé†«Í É§¼ÿˆ£õž„‡µßʆ¹•Ýóª¶îÒÛ†ÿ‹ +‹êŸüõâ°Œ–óËýÔ“Œš î—çÐÍ·æˆòÆÇ«©³×éßœëጪéâÇØÌÁ†ÕŸÃ¥©™´š–Ñ÷©›ÚªÿµˆùÞÅæµ¶æø‹»¸Éç­ú¦ +è³ß£áÁÍ—ÆÁ™Ä÷û›õþž‡Œêƒê÷ž½÷£µÝÛÞªƒÜª×È šîíô½ó¼¼œþ·îŽçÖ·ÇÚ¾ƒŠ•û©È ÉìéÖò–䙔Ђ +åü¬Íï¥Ùƒ§¤·ÑóÕà´”³È’¸£™¤’É¥Ô†å—Âç‹êŸÿùÌøãÆú¸°“¿ÏÍ®éÖÌÎ÷¶÷ë×ìèØý÷¬ùÿŠÍ¾‚ϬŸªî +ާ¼íÝéôè ‹‡Ëý×щ™š’òŒò¿þ¥É è×ÂÛȶ¼³ò¯ß™ò…þÿÐæ‘™Á¹‘¾þ¦”•—Áï¥þÿÐêêÉûÙßÙ¤µ’¥ºäôîÒ +ЛâùöªÿôåÅӉ⨦œÛ÷ºšÑúýüý­™®óé­¯Ÿž»ÚŒÞ§ì˜Ø©þïáîÞ¢“÷ɨ鯶àÐö±ê¯õÌ­éç¾ùß²ðûÅÍú† +š»Ô¤ƒ¢§ÍÇñ¼‘Á¨ã§±úŸŸ¾–è¤ñƒÚõ‹¨ØöÑ÷Á”µµÎê‚ý³õäŅՔׂêì¾µƒ€Å¬ëñ‡¨þô„ÜçÛ©Ì €ÀªÁ +€€€­ä€À‹™„€Ð†䀴첃ÔÃÿôˆ§åÝÖÃõ§§àºÛÈè†éÿ¿ŒêôÔªŸÁÚÝù³µÞ§µ¶ŠŒ•¢¨·Îêý’è–þ§´Ñ½õ +‰Óó×›Á†ÑÁ”ÛöÜËôòøþñµÝšÉù¿Ý±öûý“ãØÝÜܸ׌½óººÚ¸ƒºê×§ç®¶ƒŒ¢î¨·Ì¬þ°¿ë–褃êºÍ°Ì׳×íÕŠ +ƒä׊כÝÅâ©îçô¦”„Ý…¦á×…÷έßÄ»ÖΫ”ƒ¯îç’¦™úÔðàËïªò¶à£Ïý÷‰Óµðä—ïå­ÙÔö÷”Ö™Ùý‡ù÷¯¤ÚÝ¿ +ó¨æáÙÙ­™›œû㙹úþîþî¾¼Ÿ®˜²£¼æÜ“±Ð÷ÙϤæäŠ»¾’ž¨âž£«ÕÔçߜ簣íÏŒªÜÉøÜˆß²—¼ù†ÿ­«Ì¬þìÛ +‘ƒÄÁ†…ñÓùЩìÖÌÎÿûÂÞŽÖá‡êËî¥Û–ΠýšþæË ²®ÞꦙäÕøê¬Œ·™¢íÏáÞÆ«ŸÅµºê¨å²èÖ¢ƒÖøÝæÖßÿæÊ +öúÿƒ‡Ûá×’¶×ÑͬŸÑ¯Û³¹Íܵ󗨎ǫ©›Á››ù†ù¿ ÀóïÈþö×ßå÷ïᳩÏÃÎ×Õ´ŸÓ½É…§¶º¤¼Þ¡ÔáÊŽ¼úá +¢ôÉæ²¨ú¸¿‰žÃ⣖çíÐðïáêöö¡ðÙ÷ï“ݯ웬Ծ£÷ô—ݙҩ»«ÍÂýý£á†¸¨å¿Œ—ô’ÁεݚÉéÞØß»£ÕþŽã¨ +õÔôΪèÜ͓φšþ²ûŽ›™ÔÒåׄáïÑ“µš¢‡ùÕòÛÅÓÿ¸‡©çªÀÂØ™¤¼äÔù“Ο”äÙÍœ—Ô’Ñ•ò›Êîöžê“Ú²Ì +¬þôñËë˜ËãÞí«í†•êýé«»µ“Óÿýû®á…ýáøð°óõõ±„½ß‡µÊ šþÛ¼ûòƒ²æ°ê´éêôÄå—åäדçÐøúÔ¡õÒÖ—Áò +½¯ïê Ö’ÁüîÅ÷œŠ­Ô¯¶á¿”â™Ù£ýÉׯ†Ã°ó·Üϵ̠≯ûå·æòƢǫ©³×ßœÚëጪéÇØøÌÁ†ÕŸ¥©°™´š–áñæ +Ó¶Êÿ­¢÷‘ÎÙ­­å³è¾³‡ŠûÐ’çøüÙ†îÙۉ㷇ðͲ¨«þ²³úޣ箪á¤ûË›þÝ•œÖ·öºÞÞÄÞŽ¿Û÷ÇëéÛã­ŸÁÅý +˜”Œ–Ééò«–䙔Ђüކ巒ìÁÒ÷Û蹪Ðöÿ⇶©¼ä¹”³È’¸£™¤’É¥Ô†å—Ò™ŠåæõÇß¾Ç󘑞®ì’ÚÁ•ßôÊîÍ +©äôÿ·¾üð÷ÉŽÖ÷Ç’ÿÉÿ ï¡·¡£ÊóÒÓÜÏô±¸÷šÚ‰ÊÓßը䦕¥ä™äþÊ’Áѯ…·íøæ•äß¾²³æÐŸ´çððÃ¯Ç +»ô«³é ¢Ïÿü¡Â…Þ’ÛØªÅ·Ù峱趖ɻĈ€Š÷Å­ßæÖ–ÿôÅÓ‰Ö™°”ýä®Ó­»úÝÍè½¾¾–ÞÌ×ùôÖÏÏÜÝí†îû¤Ì +Ö—¬¥“ˆºõ¿ºûéÖýÄÖ§ï“ÐÓí«ä÷ÂÛ…ÕöÌ»­éç¾×êÛ¦ý¿¸¦ß²ú÷­þêÙƒºŒ¢ú«»¿öšþøØ¢“ŒêýÕ­ ‚÷‹£ +ª¨·Îêý³ÐõäÅÕ”×à‚ê쵃€÷Ŭëñ¨þô„ÜçÛÌ €…ÀªÁ€€­€ä€À‹™„€Ð†€´¼ì²ƒÔÿôˆè§åÝÃõ§ +ЧàºÛè†éÉÿ¿ŒêÔªŸ¾ÁÚÝùµÞ§Öµ¶ŠŒ¢¨·‚Îêý’úû§ÿ´Þú鹫ÍÊ ƒ¨Ê­»®¸¥ºù¿¸šîïÍäüîØûýÇþɱ®®®Ü +Âë†ÞÝÝ­œÌÁÝõÓó×›ˆÁ†Ñ”ÛæÖ¢¿ØßËô’ÁúµÝ榫™«Ùöê…ò뇅««®ñ”÷³º“ö•—¤ëÕÒÕÁÝË·Ù‡ýóåþÚø +ôñ¿“´Ì š±÷€ïø¢þ±ÛåúÁò’ï•©¹þÕÿ™Ùýù÷¯¤šÞæÇµøáÙÙ­·™œû㙹úÜþþî¾¼Ÿ®•˜£¼æœääÜɲ¨¦ŸÉÍ +ÁÈ•÷¥¼ÑŸ½ÇרϾ¹‰ÎáÆ«Œêò϶çË ¥óÁù›§äкÊ̇êϾ½È”äèИ·••ÊîîÍä´¯ìíØèþ¸äÞ²Úíጪéç¾ +ŒŒªëªæªÊÄÆâêŒ×Î㊹ÎáÆœ™Ô´üô‹åЬÅþ†­ºÌ¬¾ÿÍ•õþ‡ŸŽ›·Ã¥­¾šÈݾ߷æòš¡¹ê¯ÑŽÖÐÓ···òŒò +ìþ’âÞþ»¤²ŸïÞÃæžÒŸ¯«è¾¦ú‹ÏìôÉžø¼©Ã”œøÏôÃè’µæ•ÛùþÈÃÓ×´ùÐòç½­ðŸµÝ¯×òžî½¤¶ÙžÉÊ +±í³ú÷Ñ•©·•º»ªÜ׿´šæ€ÛöÃððɧ™ÔÓ­™Ïœæ…½»Úíå︆ÊÍ×蟤ŠÎ½ÔºÑÅýä§ÐÍË͕݅½ÅÏÔ–èˆä×Ëï• +ô½Ìឦž«Æ‚³þ¾¨ÿþ†Ó¦‡¥ùöÇ“§µäôÿ…ü†’§ú“¤–¬³«¿ýÛüҚƸ÷Ûâê›ÁåßúʶîÍäôÿ¾ë øáÿ¸œÌÜ +Øýý¬á÷Á­ö²¨¦Ÿï¾Ü‘‰Ô³çšôµöú¢òËò«É˜³¨üýºéîëÌ ÌÉ‹ÞèȽšœÔÔúç½¼ƒÜŠî¨¹•Û©íÃÿú©Å²³ú“¯ +äÞŒ†áêê˜ÁÅß÷ÊžîÍ䌎ÖӶ殾¹Ö™¾ÔÓ°™‚Œª¿ËÓ³è´î¬ÂãÍì•ÿ”ÚÄÚÛª™¤ù¸ÖžÓ”ä¹Þ–Á£ +šûööâí¡Üý“ŒêªÌ¬¾ç÷è¹ë˜éÞóò†ÿ—§Õ­ÿ®———ÃïßÖÝÑúöØË€çÐñ¿…™¤Ù™¹ÍÎ’¼ƒ¼ÒÁÏ üÖ’½Èú›½× +œ…æý»¸î³ŠÈ’¸£™¤ÉÉ¥Ô†å—ÒŠÌåæõÇ߾󣘑ž®ì’Áí•ßôÊîÍäÔôÿ·¾üðÉûŽÖ÷Ç’ÿÿ¤ ï¡·¡£óåÒÓÜÏôø¸ +¸÷šÚÂÓåßը䦕äÒ™äþÊ’ÁÑǯ…·íøæäÒß¾²Ú¿Êä¿ÂêªúÄ蟪Ü譹ɥÒô“ݶƒìîã‘´ËŒ Ìð×Ôòåæõ +¨Çß¼•è•ÁõÑÇæ²ÝºÓßÕŒÖëëëÉòôÏïýôÜÅÕæð¾‰”å«ÖÝÏ·žî¥ÜºùŸ„šîçäþ§´ÝÐùõ˜—øç¶©­­‘ÓÕŠÎÌ“ +¡óåÐøÄ‹°—™Ä•×Ýß»¿ü¬ÑɆ³µê–ÐÁ÷Á–”åÖɽï¶û ŽŒ¢¨šâ™úÁÀ­æã°˜õ½ŽÕŸ—ž€ëì‹™„À€Ø…²ˆ€  +Á…Œ‚€è¡ƒÈ€€ÚÈ €€¹–ÍæúŸžï᤬ëñ¨þ¡ô„Üç›Í ×íÿ‡ÁÊåô³È»»¿ÖûˤÆÖ‘Á”åÅÖɽÏÂïïÄÖÛ¿½÷µ +ЙäŹåÇɵħï—×ÓÏ­™œßë¿ùß¿¹ÖÅÅ…þûÍЫ««…¦³¨«þúîêê³È ŠòËÌ•ê‡ûë‰Î²¨¦ÛÌôµóåÕÞ­Àþý  +¶ðµÑ¥žâþ¼Æç®â갪ͺª¸ëù¦Ó»Ø•óê¼Ã¸ŸÉšæÐ«ê÷ÆÎíÁ¾çÍèó¿æª­·ŒÓ®î³Ëß¿ÿˆê¿Ì¬þüñû×’¯å +ÈÚ¸÷·æòîýåæêùù¹ëûòþ¸âŽðÕšñ’§¬¤ƒžêú™ÔŒÜñ’דÕÜóôŸ…úì›ãœæÿ´Ê Ê³ÝöÎŒ„Ïý¥óÁ‹¹²èÝåæ +…õçßž¤Š²º¨õª¨ø¥ÑÒå·æòÚ—ö‚ö´Ž¿Üò¯³Ù¶ð†Õô³„߆•õÕ³•¾¥ß¿¤ÎðÌáÓøÅ™´“†¨™´ë‘Á«®Æ³«ïÿóå½ +ŸÿÁ‡ÃíðÉçÃïƒê²¨¦èÛ³¹Íܵ—ù¨ŽÇ«©››€›ù†ù¿‰ñàïˆÿÈÒÙò÷ïᳩÏÎá×Õ´ŸÓ½…ä§¶º¤¼ÞÔáÊŽ¼úáô +ñÉš³¨ÚüèÇ’ü£ÈøÐ£½Ïú÷¹¿‹Ýý˜û÷ëµ¼‡Ò›©Íö±ï²ŽÒûŒÞÝôåîʥ÷õ»†™à–ý°ÚÜÒªƒ¼‡ÌÏ’ÝšÉéÞØ +ß»£ÕþŽã¨µÔô¾‹£ó¯µÎÔñ¿ùÄ©ÔÓÒå×Ñͱ–®ãý¶ÚìáæµüÖÑÚ”îá깪°§ëǔßõ’ßž¹¨ü³Ø¾Ü˜Îè” +¥ä·Éì¨ÙùéªÏêɲ³ú«Óǯ­áŒû³·­Î²¨¦Ûœ³¹Ý¿ïšÞØŸŽ‡³×ߤŸËøýЫŒªéÇ»¯÷¢õ¥Ú’èÒÕèۉʯɯ¦Ï +÷ ðõÃ꤭Ʊƒ„§­óŒÇáæùµ³‡•ÖÿÖ‡‹å™äìÖôÏá¦Ã‡¥ÑíÃÿ©Å²Ï³ú“¯ÞŒ†¬áê’Á÷»º—Ÿ•Ýš¹É™­¦ÌÜ +ìýó¬…³¨¦ÀŸá³Óçé“ý³¤‰’̜̔︺Õþë‘ǽ‹Ìêí­ŸòÁ™ãœýºÈ¼ªó¬ÏŒ‚¼É†îÙÛÉææÈÁ–™ƒÕ÷ž½÷£ +µÝÛÞªƒ¼×ð¦Ëöë§ëåÏååð»õ÷´Í¾½Öò™ÔÜÐÏÁ†É¦Ê“½³¤Ï ‚‘¸³º•ä’ÞÆ•ÏÕÙÿ®Î¬òÄò‡îÃŒ…’¤Îè†ÉÒ +º©•Áù…”â½™Ùýñ—Ï¼ææ¤‡‹»ùÛ›ìšîÍäôÿõ·¾üðÉŽÖž÷Ç’ÿÿ ï©¡·¡£óÒÓ™ÜÏôø¸÷š®Ú‘ÒßÕÙØä¦•ä™ä +ôþÊ’Áѯ…Ñ·íøæäß¾¤²óÿ¾¨³ðô«’ý”‰ÂªúœŸªÜèέ¹¥Òô“„ݶƒî“¯úÊÓŸ•Ïžê®®²³ú£¯žÊòô’ÁµÝºÓ +ßÕŒÖëëëÉòôÏïýôÜÕæÌú¾‰³ïå¦ä ŠžÎ°”õëÿºõð®¯ÑÉû¤Ôôº»ß»¡•½ì¿îóÙúìꎳæË ÝÐËΞÔÜÏýê« +Žõ÷×Ο˚ô’Á­º…Ô±ðþñ”åÖÉÙ½ï¶ ŽŒ¢Ï¨šâúÁÀ™­æ°˜õ½¾ŽÕŸž€ëì‹™„€Ø…²Œˆ€ …Œ‚€Ä衃€€ÚÈ +Ì €€–ÍæûúŸžá¤¬ëŽñ¨þô„Ü纛͠íÿ‡Á¥Êå³È»»ß¿Öû¤ÆÖ‘¬Á”åÖɽϜÂïï„ÖÛ¿„½÷µ™äÅ͹åǵħï +ü—×Ó­™œßÌë¿ß¿¹Ö÷ÅÅ…ûÍЫ·««…³¨«þÒúîê³È Š®òËÌê‡ûëù‰Î²¨¦Ų̂ôµóÕÞ­À¶þý ðµÑ¥ãžâþÆçÂÔ +ûë¿´ïªà®×å›ìâ—–ªÆ¿ðâþ¦é˜äÁ³½ÅöÁÞÿ¢Ïýèõƒäҥߪóý ª½ÿ²³úóï߿ɴºþÐÍÃã²²Û³¹÷Ǽ²óõüüÜý +Àù¿Ü±ÇøÍ’¸É³×’Áµ±ýÌêÆ®¸««á‰ªî¹ºÂ†ýöÍñ޳ÚÀåÐׇž¾÷ï—Ì…ÌÕ꨿þËÌêϾ½°È”äÐó‹˜Öö릧ýá +ÜïÇëðÃ¥÷’í‹çÐÍ¿óåÐÙ×µ™¦¤ùþ¥õ†«•³ïŽó˜±Ó †µ´Ç†ÍÚþäЪËÌêûéßÜÙïÿðáØð»ÜÒöºªÇ™åóõ릧 +·™«ö’Õáè µõóó£Ï «ïÇ îáϜȪûñî½ìþ¦õÙùºŠæÞ㪷ðÄÆ—ç„Ç›ºÌɄǿŒ®Ùé†î‰Ïö¤Ç²ä§ äÏúÛáê +­»ß¯å½ÜÈöí²‹ý“•ÚŽçôӪ˜õ÷Õ¸¯ÿ´ýÌ€·ì‡á’ŒÎ²¨¦Û³¹ñÍ‹û÷´Úß¼ñŒ•š®ÑÉê•û©õ¢Š‡ûÉì¿ìæÒ +ÒË•ÝÅçØ¸¨Î¸¡£Ç—Úª­¿Õô°…ûµ˜ú®ŠÌšÁ‹“Îöþ¤ÌºŠ•ÂŒŠ¦Îê‹ÉèŠù¥»‚ÏõÉ­ÙæÖ®ÿúø¥µŒñ÷ï¶Õ¶ƒÊ¾ +ÿô•ÝšÉéþžý×ðÂþð¸ï˜¹úúØÂïÁƒÚåÐÍ¿ÞÊý¹Á™êÉ¢¤É×£§ª¿¤»¿š¼ƒÂ×ï©“¶áŒ’œ½Ûð“ðää–êê³ÞžÁî +þÅ÷œŠ­Ô¶×á¿”â™ÙýÑÉׯ†Ã°·ùÜϵ̠⯄ûå·æòÆÇ‘«©³×ßœë­áŒªéÇØÌ¼Á†ÕŸ¥©™Ø´š–áñæ¶©Êÿ­¢÷‘Ù +ã­­ž²ÈþàÍ‘Ÿ”ä¹Þ–êÁ£ûööâíô¡Ü“ŒêªÌŸ¬¾÷è¹ë˜ÏéÞò†ÿ—§ÿÕ­®———ÿÃïÖÝÑúö‚ØËçÐñ¿…à™¤™¬ÍÎ’ +ò¼ƒÒÁÏ …üÖ’½Èú›°½×…æý»¸’áâËÖ˜ôªé„ÿ——ÏœÑæŒ’¤Òªƒòô‹©Å²³ú㊯ŸùÌÈ—Ž¶É Ê¯úå™·æòº¿ÛŸ +²þ¸äÇë»ãûÉÿÿ·Ð›«Ñ¹é©î§‡¼íÝéôè‹á‡êý×á“™šÔ’çû©Éô†Å¿–Þ¶áû™‘ÿùÊÌý‡ÿƒòçÛò’ØŠž¶òÿŸ” +°Úò›Ë¥è¦™»ì†ÝÆ¢éù—˜ÁᮨåŸËÌê¾øª½Ñªƒ¢Ìåíºõ§«™­×ï×ג麟޿ú鹫Íàý¼’¨Ê­»Ÿî’½ÜËôò¾‰ +εÝööÎ轓õÓó×›Á†âÑ”Û÷ÿíüãð±Ä§™Ôª€ÛÀ…™ÄÑîçÔûæƒêÈ– Šª©®Ÿ„£ÔØê†‹ÙÛ×ãÐý鉸§Î¶˜Á€€Õ +¢ ƒ€€ÚȠ€€–²ˆ€ Á…Œ‚€è¡ƒÈ€€ÚÈ €€°–²ˆ€ …Œ‚€è¡ƒ€€’ÚÈ €€–²Œˆ€ …Œ‚€Ä衃€€ÚÈ„ €€–²ˆ€ +ƒ …Œ‚€è¡‘ƒ€€ÚÈ €á€–²ˆ€ … Œ‚€è¡ƒ€¤€ÚÈ €€–˜²ˆ€ …Œ‚ˆ€è¡ƒ€€Ú‰È €€–²ˆ†€ …Œ‚€è¢¡ƒ€€ÚÈ  +€€–²ˆ€ Á…Œ‚€è¡ƒÈ€€ÚÈ €€°–²ˆ€ …Œ‚€è¡ƒ€€’ÚÈ €€–²Œˆ€ …Œ‚€Ä衃€€ÚÈ„ €€–²ˆ€ƒ …Œ‚€è¡ +‘ƒ€€ÚÈ €á€–²ˆ€ … Œ‚€è¡ƒ€¤€ÚÈ €€–˜²ˆ€ …Œ‚ˆ€è¡ƒ€€Ú‰È €€–²ˆ†€ …Œ‚€è¢¡ƒ€€ÚȠ€€–²ˆ€  +Á…Œ‚€è¡ƒÈ€€ÚÈ €€°–²ˆ€ …Œ‚€è¡ƒ€€’ÚÈ €€–²Œˆ€ …Œ‚€Ä衃€€ÚÈ„ €€–²ˆ€ƒ …Œ‚€è¡‘ƒ€€ÚÈ € +ဖ²ˆ€ … Œ‚€è¡ƒ€¤€ÚÈ €€–˜²ˆ€ …Œ‚ˆ€è¡ƒ€€Ú‰È €€–²ˆ†€ …Œ‚€è¢¡ƒ€€ÚȠ€€–²ˆ€ Á…Œ‚€è¡ƒ +È€€ÚÈ €€°–²ˆ€ …Œ‚€è¡ƒ€€’ÚÈ €€–²Œˆ€ …Œ‚€Ä衃€€ÚÈ„ €€–²ˆ€ƒ …Œ‚€è¡‘ƒ€€ÚÈ €á€–²ˆ€ … + Œ‚€è¡ƒ€¤€ÚÈ €€–˜²ˆ€ …Œ‚ˆ€è¡ƒ€€Ú‰È €€–²ˆ†€ …Œ‚€è¢¡ƒ€€ÚȠ€€–²ˆ€ Á…Œ‚€è¡ƒÈ€€ÚÈ €€ +°–²ˆ€ …Œ‚€è¡ƒ€€’ÚÈ €€–²Œˆ€ …Œ‚€Ä衃€€ÚÈ„ €€–²ˆ€ƒ …Œ‚€è¡‘ƒ€€ÚÈ €á€–²ˆ€ … Œ‚€è¡ƒ€ +¤€ÚÈ €€–˜²ˆ€ …Œ‚ˆ€è¡ƒ€€Ú‰È €€–²ˆ†€ …Œ‚€è¢¡ƒ€€ÚȠ€€–²ˆ€ Á…Œ‚€è¡ƒÈ€€ÚÈ €€°–²ˆ€ …Œ +‚€è¡ƒ€€’ÚÈ €€–²Œˆ€ …Œ‚€Ä衃€€Úò˜™„€À¬Ò™„䖚π°á«Ô†€°€Â°ƒ€€€€àêÄü¿°¦ôÙ +] +::^ [s0; Tabbed sub`-dialog widget.] +:: [s0; [^topic`:`/`/CtrlLib`/src`/TabDlg`$en`-us^ TabDlg]] +::= [s0;= +@@image:946&639 +€ƒ´‚ý€€ƒƒþ€€€€ø—œíÝ‹”œÕ‡½ïñÊ¢‰ø³–ÞóŨ¼Â„ä¡¾Ž‰È†»¼ÂÃÉ‚‰ŠÉ€ˆ„„‰àÄ ¨ â¹®‡Ëå‘õ­¹ +ͨ Ü£òÝËš¥‚øðâÕѨ‘ÎÄÀ¤ÀÔžÃ䦺ç¦ç’ÉäÁâ‚á±÷×ïÉýžÊծݻ«ãª«ö÷ÿ÷úé¬ÙµÕÕÕÿϪîþÿÒ½ +Ÿ®¡¡½†·ùë騩˄ï‚ÛÕ¾‹Û†Íëéðæìð¾ÑåçÍé‘¿ÇÍë¯ó攽Ïôøî×–ý‰«÷¸¼Ÿ­é€­çÐö¯ÚÎøÕ¿ô÷Ÿ˜®•üŸ +ñ“ûª“¥Ê„£øµ²çò§÷òþ—ÏÌø¿ö¿øóÏïóÎüˆá¨æÈÈšûûýŽñ·¼±ÿ¯—‡Þóᆪ龱ôô÷‡Æ¸ÿçèü÷‡Î«½Ó·ñ‡¾³ +£ïŽ¥—À«±Ì¼¥Ð¬ŠÿÖ½¡Ñ§Œ†…õ³ŽŸ¥û“Ì‘£ˆÄ™ûãÝ뢞¼ñÿ‹Þ†Óè«Ê¢˜öÆß¸õÜçߤ”˪øºìÛ²¾‘ПüÞˆ +À‘ÕÒ𦀠û¹‰¬‚¿Ê‡ˆ‘ç²²²”œ±³ø«Œ•Åšæ°î¦·„ïòíÞ飧¶ÐÞÙÿ÷¦í¥ô欙µ¿ß·ð®ß¬‰œš§³ðå±·í– +Úéåýî±·Œ‰òÚüÔ³·å„œ¹öæ·…Åé—Ü’ÀóÌ›õã›èµò†ñ—Íßöþé¿Ô‚ݣ翺“æ†ãæïÚµ÷åïêíÞ˜§ª¿¯Ø¦þ +âž³÷àØ•÷›üŸâά¾‰á·ƒÅœáæÅ§·éÅïâûȶÍÞêýâ“ýˆ¹½ÞµåəӢ¡¤¿§þâø·Š’”ùðÛ€­á“›¶üóúÇÍë› +¨ýÕÙð¿‡ð¢ù·ïÖ阈´éÆ†ß´Ž¶áÔÔöïÂö›ÿóŒêã¢é˜ÎÚìø ˜ŸÌ“žôï•™Ù´ãͰÀ¼›©„šö©í£·ÔÌë·ûË„ +¬ƒ‘­¨Œ ¥»ˆè‰©Äоá—öÞ÷×¹´ç鵸ϵÄÿëîèØç¬¥£ÞÄ¥þ°‰Èþ’ÞõÓታÃÿîÿ¶¯¦›©”ОùóÄ‚Áòƒûó‚µË +Ä„€´™õ†Ø”¼¡š¶Ñœ°‡Ý÷çÏîïíýßþÜùö™¹½·ÏêÞ°ýµôÝǺæ·ÓõÉó»®¾ÎÃè¼ò´áã§¥Çûæœ×±õ˜öóŽÝ¶ +Ãã„­í¯Ü÷¿ÍõÞø¿ùáÞôìï¼£žò—³éý¿×åÓ…—¶›Ôž…¢ÿ©§ò©òž½ÜÒÉÇ¡õ¨ˆç¬Ú‡üÿ†¡­É½‡ªÁ´ÖêªÿÇ¢Íß +ݽõËϾ·øûóïÜûþÝïþ¡ï›‹ûù¾öÃù«×•ù¿òÍï—®îïýҜޯÌåÒî…ÓÊ´·ü¼ëî™ñ³¦¬»ÿˆÿö»ù¸Ò߫à +•ÙôøŸüÔúãû¿ø‡¾èÿüºñÉèóÂÙ¯ä§Ì •ÐóóúÆæÎÙû­ä®šª€šÛ»áí‘…ðÿÚË´±²±Ñ†“—ʦò×ç¾Þð÷Ö‡îø +ùÏïíºóËý¯ß¾¥ï›Ÿ©®ÿí†Þÿ¯ûâ©üû¼ÞÛÿ®êýüìî›ø®©­˜ÒõÉøÉ›æŸôÂ…¯Çüòø÷ùÿÜà’Ùô¡ç¢ÇÙäÿ©ªøÒ +ª´§¬“È’ÿ‹ç’ÿêšù“òÏû¾Þáÿ€¸Ç¡Šï“ÈßéáÍ’ù›Î£© Žï²ÏäËóï篗©´åÛþïîþÁ×ûß︹ïë‹Êéÿòíï—çô +ÈüîöÏͳ»ô¿³½ôÃäÒ¼—úïòͽ‡³óÊÓ»®½ËᅩǾôâùþ¶´ØÏ“¦÷½³’Í¢³­ÎüáøËŸ“ÄóÍýÕàážÄ¶…¿†á +ÿ’ÃûÞÔøù‡„€ÔÏôÒºÞÁ´µÓ·§é›úîºäÓŠßÚô××ݽíÚòßþœÛâæ÷üæÆé†Ý©ÝמßõõÛÙלڹûÈä±ÿûŸÿµ +®ñÖøõ³Žûûñ¢ýêÔƒ¹ýìºñ…áìòºê¡¿›Þóä§¿­ÎûÁÿç´žÈÄñוêìŠþ”ÂÆ“» âéø³‚äþ“К¦£…ÉšÔÚ»›º—Ì +ŸíÿæÂþ»¾Æ«Î˜ÔöÔ‚ßé‚®«Ï’Á÷´ñÒ“Ôü‰—üøý¥ŸùØñꤛäù“ùȦ±ç¬ÊçÁÌçÖ¾ú±»¤×åÓÛüúÌд›üøšù +¿ž¥´ñôÍß´ïëïù­Ø­°€€â™³©´ïÿüò×îðßÿÊû×ù½·ÍÄѱԵïÒ×€Õ“»¯¿ñ¤±˜®ºúã´ãú»¦ÿèÅ©Çÿþꔃ†³é +ƃËöºïÒÙŠ´½ò×þ¶íªÒÙ¤ÿßÕ¾ýŸœ†Ïž®½Ú”俹—Åú¼É»Ý÷Ð…€À•Á¦ìš¼×¶õþ´ùîï×®ñÿžþþŠž…³Õ +˜õÞùêȰ¼ÍýÿÆÉ‡ïÙœúäÇ´¬Ï˜ò‡Ïù¯ÑŸÍŸíÓçÓË´þ¬ÔΚç‚Ù¤Òɺ÷­‰Ýò¦Ÿýù³§Ê¦¹çž¿ÿ½ÜÞû𨂠+÷˜¾õçÛÅù“‹˜øìù«“’îݬþŠé±óç°Ïïò¿¤ŒâÖŸ¼Õ® ´ç†ß¿”˨瓾¶åñûîåЖîùìçðµý¾¶ÓΉî¥Á¼­ªŒÝ +Ê€ÀĽÍîÔщå‡ÐÕ§Ù÷þþ¶ÿá¼ÎÛ¯ê¹åö÷˜Í³ÊŸ¾èèûïѵý讋ÿèœò¾Î©½‡ï¸øÈ•—Þžùë“Þ½œþÍòÔéØßù +ÙÙ¤Âêä¶ÿþ›Ëý“¦¾áåﵚ»ÚÚãØë÷ˆ÷üî˜Õ±½û‹Ïßò¸ëçâ⎟´…³éŠëŸ×¼àú§÷ýßÿ÷䯗Ýþüб“ÿ¬§Ÿ +‡·æèóÿ©¦¡Ööì™õñÚ‘ù…ÊâÉãÏÕ¼ËÌÜòâ¿Ãœ©‚шþï÷úæíïˆùÿ÷óøÿܺ¬´ãà‹ÿ”‹ßó´Ç¿˜îø·¥£²’ûŸšÞæ +Üè‹ê׸鱈µ±ñ߯֗îý‰Æ×ø‹ø…Àî¦÷ïÍ®¿ò³éöÉ®½Ÿ™ÞûË寽Ÿ›ÝóóåÙÝ‹¯ñÿ‡îÅõ—¨¨©Ýö¯¡ÒŒ£ÊÓŽ +è¯Í½¤´õÐù—¶êㇷýú£‡øÙôíêËçÎ⼚éÿïï•Íûç‚É»ú۰ɔˢ›¶ïøÃÎÜçÂ¥ââ¾àËα§üö×ÌÜ­êá±ç +õüýô…˃¿óªéÑ—¯—Ó÷û¾ïÎïò¦ûþ¸Ë¦Žœ×㎼Ç̌ĭÇÞ—‰éïýúÝÌ¿õ¼û¼Š™Ýâɱ笧’ëú÷ñÆ¢ÊÙɾãÿ•Ý +šÂð×ôڜ€ÐŬ­£‚¸‰¥ú鯙“þÊŸšÜóÙ™¸½·ßÚûÙÙè½·ÝÒýãԻЙÎϬ£úü®¹¬û¢ƒºµ§žÔ¹å ÕõçŸôßǿà +—ϦӺüìºêâ•ÿÞ¤²éЗ¼‰íþ¶§ÍÚ“Í×ûß¶›«º÷å«åº÷Ýðª æßŠœ’Óûôõ­±óöŽ´úê«üïþªõþì…ÿÍ´ +Ë¾ð¬Ø½î×á Ã¾»Ýœ¦ð‰›žØäÏÅ«¥ƒÃ쪺¯…ª•¨é¹º‰€šÜ¾­í’¤¡†…ÑÈ·îÜüÁ®ÏžÛçýé‹Äªõܺ´£ûáô‘È +ñš¿ÑμùòŸÖÞ™‡õÎû–ïÏÔƒ»®¼Òðõ¹‡üæüŸÿð³é¬þ¼¼ý¤ÝϦ÷—ý‡ŸÍâ׿³›úä°ùÙôÉíÈŒ‰àÒÙ½´ùÇ›ÃÙÔ +éÉ©ñºÑùð™ÞȶÉïÂÇþªÖ“ï¹à¹¸…ÃÆß¬ÚÚ𥿋۴·¾¢¦ÕùÀÓÐô‹Õ«‘‰ÓòÇ¢÷Šû‡þ÷áƒè©û襓 +ë윳±ôýÇݺHû³ÓÎÆ‚é†óúæûŸÞûÍÈçôïÊÓÞݻ倥®‹öï»óŸ–ŸùðÛý캓»×»íãȶщ“¨¿›ªïÒŸÊà’­¦ +êÍ£—¼¹æÓﯽñõᎶ¿ø‰ðŵÞþêçþ›ì߯ù¿î÷ðËâÄêä´äÂð×íô½§û«ŸûâÝÕóÿ²ÛΔӞâÍÛߌî +¸ÇùìÅëßüÕôµ¹…‘£û¬ôÇ­øçŠÞ·ÿýÏâ‹Àâ­ùëô‹íå·äƧýëó·¶’ÙÀÿú…ßËĶÃ÷ŠÄ€ˆ»²À¥Ôý¬‚è¥ëÏ +Œ»äãå§öݼóÎéú«˜ÿê¾á¼žëÏŸî¹ö´Þë¾­Ú·çãñôùá¿õŸû¶Õǧý㟜ë†ç“ˆ¡™Ï“ÝžœÉ¦É½þ¤›ú•à’çÁ +ïÁ¸‘©¤ÈëÎ’Þ÷›ÎùÓî¿ìöïøÀ§‘Þ£íÿþâ›ÁܳÌßûùðú±ýï싸÷Ñÿóý—¯ÎúÙèÏ”ç¥Ý½œ â Ìµÿñú·ÄÐ +шÀ”³¿ôÏòÚ‘ÓâæÚÒ®œú£ýÎñûÃðɵâÀž–ÿƒ…¿üúÞ×´’µë·‹‹Ÿ¢€ÿ¯è§éþ¦ô§€Ì¼¿¹¯£õÈú¾ý¯¨šýŠ÷ +Û¹ßã×õໆéŸé¼òԑϯ¿ùÛ¿›˜æÏêžÿöÓ÷µ“û®¹¹þ÷î„ò•ÇöýÍþ¿˜¿ë÷»÷—¿ööÒÙ³û­¾ñŸÿºÆú´ŸÍ—ìñ +׳éä¾ÿÿàþŽ¿§·Ñ›Üßïÿ…«’Íò¤ÌâÜɾѺ¦òèìÍ×ÿ´•—»Ý÷ô¹ÿ£ïÚ÷ì¿ñÙ¸¤ŒºñØÍ¹Çä””üøµîúìÉÊ +âô““ãæ¶‹…™ï¹èÅèÓû’š¿î˜ûÆúܽÙÎÜçÜÌÅ¢§üÊŽ¿¢ËÍŒíÁüª‰—™·áÁµßûå”ØÑ¯áäÐÇÃ÷‡ ªñÄïÑ´´•Ø• +¯„òÿÁÿú»è»¦Ÿ¹áæøÙΫÎéš³±‡ëê‰ÝóΫõ͹¥´ç¤îõ«¦ôÜñ¡Þ«ËŽ¬Ï¼´¼ÿíÝ⤩÷Üþÿ蚸ϪãîÇÿú¨ÑÃÙ +ä¤ÎĶÿ‹›ŸÍïùÞåÙ“ºé’Ù´öç¦ÝÑàÒäüÁ‘‹´¯œÑø®Ë¦ªà»–€Ã€šè“Ê´ÕŸ¶“Þþÿ¦Õ´öʱë®ùÿçõ³Žï¸ì +‹„ŽÙã»®¯¿áÒìœõ¶ì׌£»¦þÚšòîÒÇöЯÍúÛ×™ãøºÎž½üŸ½œßžáùÙ´å±»ŸÏ¢›äûøúû瓌§á¥Ï¿ìùŸÏ +¹¦È¶™ãÉñšª›Š¯¤é”™þâ§è¼ý•¶¿±ôãÇȬ¹ùÿ¥ç¼ã÷ùóûþ‚þ£Ÿ¿à¨çÏ–ÿÿ²‹ŽØþéþᯜ÷ÈÊŸóÞ»òœƒÖ +ŸµÿʉïßâõÊþ«¿ú–ßåÇúïã½Ð‡Ï¿´œÍû”ÿ»˜ÍÞ•£˜ÿïšùèø¨±¡î™¾“Š‹¯¦Â˜¥í»Ý‡€€ª´ïîÜÝ÷÷öÕË +äþûÿà™ÛžºîŸžœóÿއ¦¼ó¿ãÞñЄýÿüµáÿ‡ÇÿãŽ£Ç½í·Ÿù»ë£ŸÞ÷‘ãÙǾò̘Ǿžõðû½‡Îú¿´ïÅó×Ý +ŵ՗ͪ›óäϱó·úüª“¨êƒä²‹§¤±Ÿþ­ÊÝ֬ϹÐêŠâÿë›ÀîöúæÜÄð§¢ö¹òâçõ¿ÔüçâÓó¨íúýºïíÝçâí£ +ðÿïŠåÓÔÊÇņ¯‘¸òÈ…‘ãæïæ·ç”²ûÔ‚°»¯ò¡½Ê§÷ÛЂŠÿøò–×ø³Ž¹“±þ´÷õáÏæÉºß¶Ó»ü¹—ÏÌÌÚáÍ +Åß±üÓΨÓò‡½©ÛüŸò¤Öñ–¤Ï”ÂòÂÙôÚåÂ…š“—ø“žŸõÿî²Ñçùü«ÜÖŒšÚ®ù°—Ÿ”‘¦®ªÒ•½†âðÛÓ¬´·ó»Ðò +«ü¯œùè§Ãµûß›®ÌÜû㌵ÿžµó‡œ£þžú’¿ïä¶á¯Ñ“†“â§È¢í¶œÍúÞϦʼ梅Ғ‹øÔûò•т䓀‡­å”ÚÒ +ÕŸÔò»‹ªŸ™Ó›÷šƒ–²Œì»ëí¦ò›€€…òÎÛ½ãö€·ÿ÷©È¦€€£È¦Ê€€ëȦ€€œëì²é·÷Þæ‚•€ ôŸÕ³É„ÂÐ +Šýž‹ˆ§€èò‘æìÚø­‡æ‹¤ Ñ¬²ŠµŠ½î­ÖÂÌ᯴€µ©½šÍ¯¾²Íƒ²Ï”ÞÆ£ŠïöçÂáþÅ ÏÀãé¸ìÞª¼†ÆµðÏ +ŒÙçá•”ÒŒ±ñ„´²©õÍ…¿Ü€Ø¢ê¸ìúå× Á’ÑñÐø¥…€”öÄå©Óþ’Í»öÀîÁ²ªŽŠ¯ë¤âȦ ÑøßŒûðÏÓ +žä“·÷¨÷¶‘íüù³’ÑñˆÐø¥…”öȤ“ìÊî²ÉÖòÛÙŽð͆ª¢Í‹¥ª”Ýþܽƭ®é¿¼ÍÍ–Æ—âÀâ€ÆÆæóý™—“­ª +­¦ê£÷ˆ ¡¸´Ü¶½¼½¯·ŽØ¦öÚÌþáÉ̶îÞ·Öíåë¢â Í®ô¥»È©‹‰»³ÓšŠ ›€†²Ò§ìŠ½Å§Ø§Âó´ÓÕ³¦éÇöòœ±‘ +«Ã­™®å¿ÊœôÉ󺵮ßÀ“•‡éö­¸†ÀšÚꪦô”Çñóíî‘ÀîÃÈöïÍÑ´£Ò¦Òð™íÚ݆ìÚ¾­§Ž›Ø‚ᦜпۃóÃÓ¡Õ¢ +ÒÛÖ…Ã÷ÝÕºüè¦ÐŽ‚ÑÄÑñÐë±´¯ÓûÔµÓ—£½þ†êê÷ˆ ¡Ô㥼ɛÍÕçØ™ž·íßÚí°ÑÒ¡ƒó‚“ÁêÛÕœíö¢ë +«†î¥ºäôþÅÍËÚ¯ïÙ¿¬öß”‘¸°¸Ý€ñ›ÕÖŸ·úÀúâ⎿¡‚Úó½‚舮Òä“ý¼‰ú¶¤öÙ›ÔÎݨßãæ¨‘œ®“·ñÐÆªî +–¼ñòµ­’Ç—ÅÍñ«éÿåÍÕ¥¯¦´µ«¸ù¶÷ˆ ¡Š”žÍщó¶†íÝÒéÃìÍú»¡þΉÞü¤§‚óã–¬ýºñí’öË×Á´Êœ•‡¶Ç +ç­¦ýµ×•¾ÿ˜ÐÖâæÛÜž£€†ç硫⨸äõ욚ؘÇïÔ±ïÓê×è²µÞìäØÒ°…í’ïöË×´Êœ‘º¸°»†öûëÑ®ªý±†ÇÖ +¤ü¯Ñû„ÐÉÒçӞĽƒ¡›»ŒÔ¦†æ—š§ƒ“Á­ÄÖ—ˆÛÈÕ­„Ö´ß¾îÅÃÖÆâ¨¸°¹€£¡­Õ½²¡Õçؗ̕ãÞÁ©¸ê÷ˆ ¡ +ð´Ü¶íÙ¼¾ÂÖ¢ë¥Ø«¥ªÚï´“¢Í›ÜÑñÿÑð¡Â˜²‰è ª›ÅöÿÒÃäÓßÀ¦µöä¿§øëÚ¥à¿á»ë±üʨ¸ÇÈ퀸Ռ٠+ü„´ÆË¦þ€ö¤³’‡Å× Òȱä“ÐÀ´š®›¶÷­Áð²ªŽŠ¯¤šâȦ ´Üè¶•þÄš—Š“ƒÂ«©¤˜Ç¼öœ€†Ë¦ô€À“ÙûÒ³ +âÂãæ“€ Éûˆ ùîï‘Í€€÷̀ƀ×Í€€×±Í€€×ÍÜ€€×˜³éÜåø¶²‰€³‰Øìº„삀┃삀¸†˜ì‚€¸†ì‚ +Æ€¸†ì‚€¸ñ†ì‚€¸¦¥Ÿ²©ð¯ÕÅË–é¬çáá¯Ï¨ èá‹åÓǃ‘˰çÓÑûÕ…Ç㾨ѓ¬È¦†Ãæ¬ÈÞ³øÏï·ÚËŽ•Í© +Ý«½þøëìäëöÊõ­ž—«¬êš­™Íã—Ô¼…ؓϙÙåÆíˆ¥‹Ï¦¿”ÕŠŽºª²ïÚÚÚÖÔÆºòõë¶ìØÐ¹þç”Ë圳ÉÙ©úÜ®ªé +ØÍÀÕ²Û¿ÛŒ¶àÑìÊÓï­¡ëŠþÛÓÓ£íºÞà˜öÞ†ÑÛÍ˧ó©§êÏËØì¬Ù§ª’ܵõýªÁ¥µ÷›ªìÇ“×Ó“ú¤çÓú‡¢Ãã +¢Í¦à«ºÙ¥×ʶ¤‘ÙÀ’ä·ÿæõ¦›“‰³É¼Ÿ­ç‰ÚäÓšêÅÇêí«ŒÑïÛÛ§Ûƒ§ƒ½•ÑóµëšÞ›É²€©Í½µ•ã¯ÄñÕ–‡ªñÍ +Ú…ê׊›·Á›Ò¾™ž“ìè¶å™—滋†Ëä·ÿú囿„٤η§´ó“åÓšêäÅÇ•§‚²åõª·©ÔËíï»ïϹ›ÒÔÓá¿ìÊÖÕš– +äèó¾“÷„ëÿԊɦôǤ¼ê¶Õ»¿‘ÍØÊöû§Ö”ã¥ÉóîÓÓÑô¹™ž·¥É¦®´ÕŠŽªúíå¹²¢­×ŒÁåÁÁû슽ц—œ°ù°ý +н¡û–“÷žëýªÒææÜÚíу«“Ýß߸ݴÙñíÛ¯Ú¹›Íö”Äð Ç½®Ú§¹ýÎÚ†å„úÇ—“Ó×êÖಡՆðô§åñÛÔÞ +ÉöáäÏöû·¿¾Ø«ˆÆ®µÉߣó²Ê¦·ù«—´›ÒÔÄ«ºª¸‘ˆ¶âÜù·”µâº×®¶ƒé»ÁÜŒ²Ú‰ë±ì¿°ÚÌÍ¥¥¬ªüÚÛÕ¸‰«Ð +Ó°˜ù­íîÖìšê–Ǫ¢ÿ²Éœà†…ÍÞ‡¶êÎÚä“ζ‰âæÔÝÀ¿¼¢ÍÆãêÄ´îä·ß´¼ÛÂÒí½´­¹’ÄÍ骕µøðù³õ¢Ðßß +¾¯úí¶Ê°¼ºïʪ›ÒÔãƒø×þÜɶ²—©Ê¦¥šÚ©ÕÞê“ÍÑÿê×Ä´¦Ë¦éšžˆóÄÜñ±ÜÙúåÓðÂè·œ—çñë´Æÿ¢¨²Û¿ +ƒ¹¬ËÑÍÞŠóޔɶ©éÄ×Ù”¦ÚÑѵˆ­×ŒÑï÷ÔÞÆÎÙ”¦žË°â’äÓú£ÔÀë¶Õ‘í×ÍÛËüØèïû°ضòüœ¤ÞÍÇÓû„ +ßåÎÖ¯›ÄŒ›Ñîö¨þóœˆìòìö”ϼי¤ÚýˆèþÖÙ”œ‰ù²©Íµ²ë–ÔÊ¥õ·ýàËÉÝÙ™ùçÓâÈú’ä“ÍïÉ…ä¨ÙçÓÜÀ +¥˜û©ù­›­‹ØÔÖõØ¥Àš¶…ÚÐøêɔԵ›ìÒª®ã›Ì³Ñ”ÙíÓÿ²ôÈèõ—Ñ™Žü†¼Í÷µ¢£†ÿ¦¯÷Þ¤’­÷•Ê×°ÿÿÍÚÿ± +†›–ÊÜÏô̺ô§ÚæîÙºØÒ×¥íñÚÍÒ¾›‚·Ù®ä“ö±ˆ­›„½²öß²…«þÿ¦Ã³Ö°ø‘ýÞÕ´³¡øìšŸóÿ›â‹æŒ·þɨ® +Úñ´óªÞÝÜ¿ŠÈŸìö¯çé°áȶ¥©’¶ØõÅ˘¾˜°éºõãÚ¨½®×Õ´øÞºˆ ªÙíŸØ½ÜæÃ‘ï…È´Óí‚ïŠóôÒ£«×îšúê +é×Ïòþ¾½ºØžá‡™³éß–ôÙ¤½˜…žÚϲ‰ÉÈîÿ§×ÅËí¸’Í ÙÕ‹”ŸͲç´û‡ßŸ¾›ÜÃ÷³’§–úžò ðô䓃ÑÁõ +㛀´Ú­›€ýÜ´Öó°ð—¼§´°•²‰Ê€ÐȦ€€ÒëȦ€€ëÈ”¦€€ëȦ€Ñ€ëÚª›Šÿ€¨”ÚÊã½€‹ÿù‚Á‹Ûά›Šþÿ¤Œ +äÖ™æìªºº¥ðèÜ—µš•ûÙÄàØŒ–ú®Þˆœ¿©®ª»×êñ¹ª¦á›Î¦æý®×†›£Ö¡Û¸Çñ¾Ï¯Íµ¢£¿®ªŒ¶¶¶µ»•±îݺൠ+öÞËåòÎÙäÐÔ½®×Õ´ôÉÙ´ñ­÷ˆÙõÄàŒŒÑßÌí›°áȶ¥ç©ÖÐõÅ¿•Ž×…°¿þÓô£±ªóÂ’×ÓÙµ§¤»ÚΆ”Õ¥¸ëûÕ +ÕפÊêǓצӓºæÓ‚§á¡ùÓ©‚¶à§„ßЉš€µýÚ¡¥“ÝÓ£¨¡úø³«ž·ÙÈêúÍéËž–©«•µ‰­²Ä¿íïïŠžŽ¨«–Ù +úÞ˯“¶²¿žšŠ±—¸ª­Ëƒ•¸æí‚õé³±žÇР«±²©åÆ¢½Ö¡Ï¼ˆõ™²ß©±†èáϯ·ì·‘ ›¢±ß”ò©’²ÚÑîÑ剀ì¹ê +Þͪà¥ôòÎí¦´õÔ¯›’¾Õ•¦›Ùü«Ò½îˆçÒų톆õþϯ§«£‘϶ÕõͽÄÿ¨êÅÙš¼ç¶œµ“íõïöóë×­è¨ +—¢ßÊËÇÛý®˜ƒƒƒöÙÄ”ú£¯¸áó¤žàúúÂ÷žÜ­¦îÖúÕ¥ŸÍ͸ڢ‡Ö¬»§º¿ñ»é׳ãÚßµóšî¾›´ÏŸí±ØÍü´ì³ÉÝ +ûô±¹­îø®“ÚÅÓ”áÅíÓû÷Ú…Š™…Œÿêý¯íöŠ¢±Ëò×ÉèœÇ²©Íµ×¢£Š“àËá•ÿÃÑ£®ë¬ê»˜¶ŸÚ÷•†´õ˜¶Ÿ­ +Ǧ¦’ÒÖ•­¼Íû ª†‹ùú±óÚÚÝ´ÜÆÂ­ÇªÇ²ËÉòÐÄÏû«µùÕ듨ÔîÎÕ…Ì«Ú¤ì¼®ÎÆžÃÛôðÅË»¥ÕõÞÃÓÒ¶Ù” +óì¡ÏÙ­è¨ïÁÏ›©“þÕþþÑï·Õ†ñåùÓÖÙ”¦ƒžÐý…ƒ´ÍÞãɤªª‡ÊŽ¼Ç¼˜ý¶Å±ÿÝ‘÷К¦»›ìŸ÷¸íñ”슎í–ã +™â¬îÝèÏÆ­Ãôð§—õ¶©ªÉËÁ›²¯Ì¦ÄûÊêŒÅÇնܱă¿ÝÑ™¹çÓ©šú¬‹ÉÍ›éÒ­ÙÔµæÄ¢ûëØËüÜØèï°ض +ïÜɦú½…‚¬»ëóÚÏ–ÍŠÕ·œÚÈè‹õѥɦ§†è©áϼי¤Ú¸ýèþ†ŸÓ«åªÚÙõË¥’ûú›þ°åŒü³©ñ½‰ºš‹Í“Éä¨ +áÙçÓÜÀ˜³É¼–Í–ìêõ«ú¬’ÈçÿØ·Õ­ÞòÐÔš»›ì’¨ê¶£Ù¤Õܶ™ç¸²Šœ¢‡ÿå»é†Ñꣳγɦ”úÊêÅÇþÍß +ѽɥÛî«•Žáÿÿ›Â³ÃÅÓۿÒ׫£í°Á»Õ¶ºóËŽ“¾ªèÿ‘†´²Ï¦àŒÍ¶Ù¤ý¬ÂýëÆŒý×ü̡٤ݗèÒቾÌÚÇ­ +Ǧն„µ¢È³Ãó†ô饲ÝųæÓ®¯ª¼˜Ö”Ý”²£ÿ¡úøã˨ºìä•ÍÚç´æ¾Õ†»®èÁ¹ƒƒƒ¶Ý·üþÜ«Ç媚݆¹›Šú¾½ +¹ú…ñÒÎÄè÷õá¿Ë¶¸Íõ†£ß‹‘¦Ú»¬¾©Î‹Œäû¯Ü´õÔïß§öÍúýú™¼¦äéÅäÓ»÷åðÏÓçÓô™æé¹§ä“õ‘áÿªûñò› +ÑŽäÓÖÕ‚…™¨ë¶¹†ì⨤ž­õ½äÀÓáȦ†£žƒ‘ë·é´Ú¶Ú¹é¬çáုϠèá«å”“€ ¡Í€Æ€×Í€€×±Í€€×Í +Œ€€×´Ô¶•¹þѨ´”Æú¬ž–þò„‚–ÞÖɦ—𬛓Šþÿ¤ŒÖ™¹æìªººðè‰Ü—µšÕì¶À¶±˜££Û¥¾—µ󭞗«êš +„䓃á³ä›ÿ·áÈ÷饩ôÖôÔÕ•ÑÖ·Ö¶¦²Ö­ÛÖ—¼Æë¹ÜÎþ¹›œªÇ媭š†ÙÄàØŒçÑß훰á¼È¶¥©ÖÐõöÅ¿•×…°¿ +˜þÓô±ªóŠ’×Óµ§ø©Ä®‰—ÉÕ‰î±Úþ•ïïË­¾åµã‰ë©É¾ŽÙ”æ»Ö³®¼€¯Öòý¦½ûá¿–áúÍþŒ÷‡èáϬ¹Þä£ÃëÞ¦ +ÌþÚ¦¬ÖôÔû¶Êý¶½½˜½øº ®ØäÈù­¿›Ö擜Íéê©©˜û§‰«²¼Ð‰ë¥Ö®¾“ëñ¬ŒêÍ™¼®Šõ˦¼ó¢ÝÔçȦƚ¢ +݇¿½²ßÆ‚¶ìŠÆÐʧʑÊêÅÇ•§‚÷²åª·©‚—»Ò˹›ÒÔÓá¿ìÊÖÕš®ÚèÓ’ãŽðʤîÜãèçü¶¥Þëܲ©“®ƒìêè¡ú +¹øÓ«ÊÒä¹ÿ·©é蜬Îίߵ¢ƒ£Šþ«¯µžÂí¹âŒŽŽÚüçÓè“à„Ó囪©ë‰Ý®û´˜¸Ûëש•¶·ãꋞþØíœèþÆí +ç¦ÍŽëÿÕÎòé¦ìŠî‘ùðˆÄéʵáï†òÄ—óöòÜ“ÝÍÄ­âýéÎÊâ¶©½®»íΠÿãµ¾—û…ÑØÒ¥ùëôŽ£Ù딦ÚÑÑʼn +þÀ°åÊ¿¡¨Ê‘×õµÌÛÎã–ÑÊÜ…¹‹¥©©åÕ×ÑÚ´‡ªê¸¹˜—³¯¥Ý͕˭Ôú¬’¨ÛäïÍæÇ¥îÿ™“ÉÎڼ걵ɔ·§ê‚ +æ•í¶ž×§ò£Ï¡úø¢å›Ý’êï¡é©ùÛìÊöЧ¬üÖôÔàçÍÔñ‰Àÿÿ¿è·ÝÛªÃò¼©«ðìÊÓÏ辂ø©ÍŸÉ¤ªõª‡Ê¼Ç¼˜ +ˆý¶ÅÿÝ‘÷‹Ðš©›Œ‡Óœ»‘÷ÌÉäçšëí†öÙ”œíÚ­ÇÅÙܺ÷ÑŸŒ‚‡èáäÏ®ëÒÔ“—©‚·å˜Í‰Ÿ¿÷”ÕŠŽªíµ¹âˆþ»£² +–òΦ´õØ–­“ ›ÒŸ¥Ú볩êˆÄ÷×ÿ°–ù±ÐÞ…’á±ì¹•ͶæÏã”»ëóÚÒÏ–ÍÕ·œÚ¨Èè‹Ñ¥É¦Ï§†èáϼ×™¤Úýèþ† +«ŸÓ«ªÚÙõÞË¥’ú›þ°¿åü³©øñ½‰²É¦çœäò”쳩®¦ ÌÙäÞËæ„‹¶µÕ½Ö‰»˜³éÜ„ºüÖÎÏÙì²É¢ËªÙä“ÖñÙ +¦äžÉ¨ðˆžÇþ—¥›ÂÄ«—Î̤›Ò¾Åè©«•µøÔ·ýõ¦•칯Ԇýÿ͌õÎíÿŒÜÉܶù„ïÆÔÛÌ­›Îú³ª¢ÅšÒʾ +뛂·Ùä“öűˆ­›½²ö°ß²±Ù´¶í«ìŠÛ©Ã„§á™“þçµ¾ÁèÌМ¡ðÝÚé×ñŒÙ¦´¤‹ª¯¦µ¬Å·ÅÈÿˆž‡þø’Ž›Ùå +ï“ö™™ÏµÁù®«ÚîÀÀ€¶Í×­Ÿ×êñϹª¦‘ö¹Çƒï…ञþÍ»ä‹Ûì¸ò¹½éª­÷·ÅÅù‘áÞ¾‡Þﮫµ¤üªôòÁ‚£“‰ü +½³©º§¹í¯“ÙÄȼüÏ娝ÞîÑìÊ•ªÚ œ·±¼˜¶£¥¾‡œ¬¨œÙÄàÔãÒðý¦ Ö˘¦ ·õ¼¬Ãü剄­ì¥ ì‚€´„²‰ +Ê€àš²‰€àÒš²‰€àš²Ä‰€àšó¶íþ»¾­™²©ðí¡¥´Öóç°ð—§´°‡Ê÷·Û¶•ÓýÿȘ­²ÌñÙÔôõáѸð¯ê´«²‰Á +Ù°™­õ½®´ýÓœëõ¸ÜÊÕÓ ›˜Œ›¦¡Û¸Ç¾Ïü¯Íµ¢£®ªïŒ¶¶¶µ•±ÎîݺàµÞËåòÎÙäÔ½”®×մȦ†ÕÃæˆžþìÛ +ɀDz©Íµ»†®«ú­¼ª¿„ýõ›¢‹Õ½“’¸žª½ÑÁËñ•žÌªÜÊð×ö«øºü«“¥ßñÄõõÔ¤‡ìÊê›—Æã¶à¿åí¸ÏÈó•œ¡Ú +î®®äÅß¿‰óáþ½ü™Õá›ìäøÍö¸ç™õ®ÖôÔ¶½Êý¶½½½Œøº ®Øäù”­¿›—¬Í¶¯¥©§¦â쥧®ÊòÀ¥®Ùµ»Àú̬DZ +’´¨÷¶¥ü”¹²½²ÑžçÎÞ„âìꬬ¡úøÓ«û펤Ȧ¸ÿ¥‰þ§ÓÊêÅǹ•§‚²åª·ß©‚—Ò˹›‹ÒÔÓ¿ìÊÖ¦Õš®èó¾“ +¾÷„ëÔ› ë›ê¤ÃìªëÒ ›šúˆžþ§Ôв´ùÎíð꺺§Ã󦮴ٔ¦ÚÑÑîÅ¿•—š¶àܱ†‡‡í³æ©ôÎÉðÂò¾Í•”õ„î½ +¼ÚÌÜ­õ«ÊË››ñµÅ¬ÐöÎôÿãöÓ®æÇµ¿êç´°Ó¶é÷ªêœ§ó³Ëòç«ö‰ƒàÏðô—ØË÷öÜ“ÝÍÄ÷­âéÎÊâ¶»©½»íŒ +†ÿµ¾—û…‹ÑØ¥ùëôβÖÙ”úÂäÙÏ­è¨âÄ ØöòåßÐÔˆëÛºÚ×±¶ŸÆŽ­£•¸žó—¸ÊÓÒʪ´íÊ­ºÌèÖí…džÅÌëé÷Ó +”ò‹µž«„Šýùû“Ížšç³˜ç›öÖÜ¢³£ýÁ›±‘æÕŒ«Úì¼é®ÎÆžÃôð¶ÅË»¥ÕÞûӒ£Ù”¦ÚÑуŸ·Ó§¾‚ýýý¢ßî +ý«ŒË󦬲˜©Í½¡ûŠö‡¤¸’ìäÒÕÉÕƒåžãÞ̾¾›¢ÿ®ˆ»Öè͔͖‡ÓŸ°ïÑÕÍËšÖöÖÜ¢³í鳩¸´ÛŽ®í¢þÕ®›ýÉ +ô¨ðˆžþä²€®Åµù©øÓž¦Ùä¥ûçɱÊêÅÇÕ¶ÜŒ±Ä¿ÝÑ™¹äçÓšú¬‹©“µÇæò”좋ÆÐ§Í«ÖÝóËüØèï°þضÌÙ”í÷ +±éÙ¾Šæ£áã³®áçÝÀùТ첩ê–àÛ±´Ÿ²É©Á¡úø“Ïõ²†©ÖŸšŸÕÞ¶…þÅ’çµ§²ë–Ê¥õ·ÍýàËÝÙ™ùÄçÓâú’ä“ +¬Í×Éä¨ÙçÆÓ‚–Øõ­›–­ØÔÖõØ¥ºÐïìªééꮳ§®Ùä“Äöճɦ­â²•ɼ“Ñཱü¯Ë·„ˆÖîŸéÈçÈÓÐÔ«ºêðïú +ÉêͪÙòß©®Œûÿß”š™ïêœÚþ™’¸ôžíó‰Þ©¶™Û¶”ôÕÅ‹´¤•ý¶…–ï²É¦íã‘ÐÚ·úä쟾ðäò¸ï²Ü©íªóÌÏ®Ë +¿Õ¾öՈΌ͙ҥ•ö•£Ï˜ÍñÿÈÏŽ»Õº§±êÀµÄÿüɇäDz©ÍµÁù®«ÚîÀÀ€¶Í×­Ÿ×êñŸ¹ª¦‘çûúŠÊòÖæç“ +«¼Ì™Œ¡ù®“Ùâ¶›Žü¯šÄšêë÷ÍñßÉþ™íæ·×Ù¹ÙÕÓÈ¿›ç¼ÈÈóçëÝ”“˜ÍºüÏ娝ÞîÑìʵªÚ …œ·Þ•¸³õ +¨æ­õ½äÀÓáȦ†£žƒ‘ë·é´Ú¶Ú¹é¬çáုϠèá«å”“€ ¡Í€Æ€×Í€€×Ÿ˜³©É®û‹ˆ€èˆúìºÃÆäÓýä“€  +”­•Í…ÿ”üŠ­¥±ž‡…Ý¿¼ …­–ÄÍÅÿ¿’Æ«€Œó¶•ÝÝø¶´î‹šÍŠì€â°ìÆËý¯•„ëß”çÚ½”®×մȦ†åÃæÈ¶îÑ +óïÓËӭ訫ª£­­íÍÊå¬Û·®ø×ò¹œó¶¹ÆÕËÕµ²·‰Á°™¢‡¿™Û¶àÑìÊžÓ­¡ëŠþ«ñ¯Šáÿý¦èìâÕ焤®§ +ÌêϨõº»™Þוà®í×ñòô—öÊ¿ã‰Óë©ÉŽÙÔ§‰¯œÏ°µíÏíÐÞ¿Éþد²å¸þ“Ãý¡êúø³«·ÙȳêúÍéž–©™«•µ­²Ä +¡¿íïᨫ–ÙÞËÏËæ•ë“Íéê󩩘û‰«²Ô¼Ð‰ë֮ľ“ëñŒê‘ÍÎèÏȳ¯Œ×丿Äÿúåû¿„Ù”ùÅ + ¥ÓÖ«ºª¼’‘­×½É•û¼”ÞÎÙ”¦óžúåÓ²ªÒ®ä“ÍùÎÜ‘®Î™‰õ¸††¸¹çÓ†ê‘ÍÀõäÓÃÑÓßÚÑ–¦Ï‘¹ÍÍÇçäû +ÝÛÃüúÕ«Þºªè·òÒãûÑ–«Æàà Œý¶…Þ¶‰Îþؾ£’²žÐ½½Ç‹‰»µþðÕéó³®¶èßÕΉîïÜÞîÚì¸ö×íÕœ¦Ë¦ËÇ¡ +½¦ç¸ÍÎÚ÷̃¹¢‹ùû®«É®¦âÖñôø§åñÛÔÞ°öáÆ¡Ã¿Úïß‹½‚èì’™üµºÇ‘ìÊžÓ­è¨âÄ íØòåßÐÔˆ÷ëºÚŽ¦í‡ +òñË襮ǰñýè±µ•”²ÈªíŸ‹®“íïÚ½‹Û̼іö·­·Ðëå±Ê Ú¶¥ý¼¾½Ã³ÂòѬ°ŸœšŽ‘åĶ铨îÎÕÊ…Ì«Úì¼® +´ÎÆžÃôðÅÛË»¥ÕÞÃÓ¾Ò¶Ù”ì¡ÏþÙ­è¨Áϛݩ“þþþÑšï·Õ†åùÓ¾ÖÙ”¦žÐýÈ…ƒ´®¤›™ôÔÕõÀ™ç˜¾—³Ï¦è¿« +áâŽÚ‹æ“ÍÆ±®’½èæ—­µ›ØçÓ„ðè·œ—çñÁëÆÿ²Šœ¢‡¿¹¬ËÑ͌ފޔᶥÂþÜÓÖ«ºª÷¶åŠ¡ú펻Êȹ›ÒÔã +ÄÙÌ‚ìÊÿ”Îêͦª¡’ÝšßÃÚæÇÂûž—†Å²åò¶íÙ¿©ì÷Öæ›µŸ¬›ªî¹×´‘Ж¢Ë’¸ÍÎÑßøù®³ÈµúÐü䌿§×Ôµ² +Óë–Ê¥õ·ý¦àËÝÙ™ùç¢Óâú’ä“Í–ãÉä¨ÙçÓüÜÀ˜³É¼–ÑÍ–ìê«ú¬ú’ȹ›ì÷Ô—òàÔôˆ¬¿¹§ç΢ªÙäé“ÖñÙäžÉ +ô¨ðˆžþ—¥ø›ÂÄ«ÎÌÒ¤›Ò¾è©«È•µø·ýõÚ¦•칯Ԇ“ýÿïŠÍŒõ„ÎíÿŒÉÜϘôºô§ÚæîÅÙìÓו­ÒíÖöÙ”¼É +Φ›´ÅèÝ÷葱ÿø’©¼÷¶Åí‚ùÑѰ¹¸‰žÎö³ÿ¿©îή—­´«øÆìšõÒÅ•—Óš¢…›âä¿Äÿ¼üɇ¬²ÉßûÌ̧Úà× +à•­÷ààÀ¦·ëÖëõ¸ÜöÕÓÈ¡›ÜÁ¡÷°’ÿÝ£²Åí¶œùÞˆ´ÕºöÍñÇ®ÕãòÕ̓ðìâ°ì†ÿ©§ìÅËí¸’ÍÙÕ‹”‚ìâ +€°ìÆËý¹üи²‰Á¨ÇãàúÍÀš­–ÍÀîšëùØ£øË“ˆÚØÊÙ„€èˆä“€Àµä“€Àµä“€Àµä„“€Àµä“€¡Àµä“€Àµ +ˆä“€Àµä“€Àµä“€Àµä“€Àµä„“€Àµä“€¡Àµä“€Àµˆä“€Àµä“€Àµä“€Àµä“€Àµä„“€Àµä“€¡Àµä“€Àµ +ˆä“€Àµä“€Àµä“€Àµä“€Àµä„“€Àµä“€¡Àµä“€Àµˆä“€Àµä“€Àµä“€Àµä“€Àµä„“€Àµä“€¡Àµä“€Àµ +ˆä“€Àµä“€Àµä“€Àµä“€Àµä„“€Àµä“€¡Àµä“€Àµˆä“€Àµä“€Àµä“€Àµä“€Àµä„“€Àµä“€¹Àµ±Ù´Ö» +¡˜ì‚€”ƒìŒ‚€¸†ì‚€ã¸†ì‚€¸†˜ì‚€¸†ì‚Æ€¸†ì‚€¸±†ì‚€¸†ìŒ‚€¸†ì‚€£¸†ì‚€¸Æ‰ŸÍ“ù¾½€¤ÀáȦ€€ë +©È¦€€ëȦʀ€ëȦ€€ÒëȦ€€ëÈ”¦€€ëȦ€¥€ëȦ€€ëéȦ€€ëÌÙⴎ삀䎘삀¸†ì‚Æ€¸†ì‚€¸±†ì‚€¸†ì +Œ‚€¸†ì‚€ã¸†ì‚€¸†˜ì‚€¸†ì‚Æ€¸†ì‚€¸‘†ì‚€¸¦¦³›Öú‡ÿ”숂€”‚삀㸆삀¸†˜ì‚€¸†ì‚Æ€¸†ì‚€¸ +±†ì‚€¸†ìŒ‚€¸†ì‚€ã¸†ì‚€¸†˜ì‚€¸†ì‚’€¸¦¶›Ž¡©›€€Å ›€Ê€®¡›€€®Ò¡›€€®¡›”€€®¡›€€¥®¡›€€®¡ +©›€€®¡›€Ê€®¡›€€®²¡›€€®ÑçÅÓ™íä“€ ¨ä“€Àµä„“€Àµä“€¡Àµä“€Àµˆä“€Àµä“€Àµä“€Àµä“€Àµä +„“€Àµä“€¹Àµ±Ù´Ö»…äþ²‰€Ðˆ©²‰€àš²‰Ê€à𲉀àÒš²‰€à𲔉€à𲉀¥àš²‰€àš©²‰€à𲉢€àšó¶íË + ¶€ò—›Í†‡ÿ”ì‚€”±‚ì‚€¸†ìŒ‚€¸†ì‚€ã¸†ì‚€¸†˜ì‚€¸†ì‚Æ€¸†ì‚€¸±†ì‚€¸†ìŒ‚€¸†ì‚€÷¸ÆœÍãÆ· +ù‘Í€€œé³œéâûžï¡§¡›€€ù£›€Ê€®¡›€€®Ò¡›€€®¡›”€€®¡›€€¥®¡›€€®¡©›€€®¡›€Ê€®¡›€€®˜±ç“ß§‡€ +ÑÈßü¶ñÝ¯Š€€âÍ€€ã×Í€€×˜Í€€×Í€Š€×¤Ë¦€€ÇêªÖì’‹‹ØÕ€€¨«Ú³”‰€€œØç“”€€ù£›€€Å®ÑÙ´î‚Ù +È„€ð‚÷Æ»Æ÷ðýä“€Àä“€Àµä„“€Àµä“€¡Àµä“€Àµ°ä“€´Õ«Ø–­ßúç¥Ïßü¾ˆ‚ÅÙ©¡¡›€ ¹¹ˆŽ¯Ì¹é› +ݧοåÀ“ææµ„‰³ï½ö¶‹ßí©½´ë‘çàðßȦ€ÄèŽâ„Ä„“¯°èÙ固ú㇜Ÿ›Ëå§ê–¯Ù¤¼¶û×ðßȦ€¸èŽËžù½¸ +äã’ÁÔôæÔþ¶îüÁ÷ÅÙ«“˜ˆî‹Ù„²€ÍÁäÓ§áÌ“çÌï¼ñœúƒùñÿ¨—ʎ˦¾Ï쀚šÌ¦ÑäÀßûí÷ƒùèä—¿Òä“ßõ +àŠ€ÍÁåÓ«—¯¾ÒÀȦ€èè⪛öíÚÙ€—˜êβ¦ÍÕ„ì‚€¦ÿ¦²éå—·×úÊÄÐô×ÐÌôº¡›€ ‰©¦ìÚ¾ýë­Ä¬ŒÙÎ̜ل +ð€ÍÌåÓ¶­Ûê¥âȰÓë½×—¼©ú«Èö£Õ‘̀СÄÔ¶îÙÔ «‘«ñ³ƒ·Ç…æÄ­Ð“²ü‰€š˜Ê¦•Íýµ’™’·¬³ø“šŽÍŒ +ÍŽÚïšì‚€†¦¦²éÓßïݭĦÄ͌ޯ¤Ö®ëìú‚€¦¦²©¯þܪ•ȗ诟ÁŸÑù†…êÀ¶À“ÓÙ¯ÔÛÓ™ÀðýÀ¹µ§ôÓèá +›èº‰î—ì‚ý€¦¦²©»´ç¡Í€ÐÄôÔ¶•º××Ä“ÓÚ·’ØìÀ¶Ì¶ÀÃŽÓÙ´®ý僺¡›€ ‰ÉìÙÚØª·­ÜܬÀþò“ûȦ +ЀèÖ¢›¦Î¼õ©Å«Þø³îɆò×Ý÷ŸõÙíä“€Ö´¥åËÿ¬¯ôïþç¾ÿãîŸÿð¡ßüÈæñâŒÉ„Ó‚¹Ûÿ¨„¯ÉΠ¶ÀÓØ½â +äÑ÷×Ë¢›Ä—ÙÓ§ÌëˆóâŒÉ„Ó®‘ƒÂðßȦ€Ü蚢Ë“›¡†š¢àа¤í¢›€€î¡©›€€®¡›€Ê€®¡›€€®žÑÙä½ûù‘ +ŽÏ︤¤“ê»ÜÅý–¼í …€ ³¢˜¾ãüøð¶ð°»ÿÅú¾û÷ÌöäîþÚÔ¡€§ƒë Î…ØŸù¨úì³¶º­ßÖ½žª–‡õª¾êò ê¤ +ñØ—õ½îÝ…†‚ê ÑÞÓõÞü¢þÌŸøïØýþ¶½óÇþ¸Ï€€œñÿŒ¿¥äô +] +::^ [s0; Simplified solution for multi`-tab dialog.] +:: [s0; [^topic`:`/`/CtrlLib`/src`/TextCtrl`$en`-us^ TextCtrl]] +::= [s0;= ] +::^ [s0; Common base class for LineEdit and DocEdit.] +:: [s0; [^topic`:`/`/CtrlLib`/src`/ToolBar`$en`-us^ ToolBar]] +::= [s0;= +@@image:1147&74 +€ƒðš€€€ƒæÿ€€€€øœíÍրýþ¼ƒÇÀ•ëÞùƒ¸Æóà€’Âܪ ¨Å€‚¨•  ¢Î”´¢â‘ªÀÔ•Œ‹©‰ñý»žû +«×“ô¬ÏÑæß»žØÞ¯ŽÕ»Í—Ç‹¥Ã䰌ðŒ–ëÙ݇÷îÞ¾Âõ£ˆÕÅÕìõÞø†á蠜Џüúðü¼‡’ࢎÖÕôµÝôü«×î +ç¤û°³Ì–î¢é‚Àͳ”™ý঱‹ª¨ªâçÇ„—ü¼Âð¾á¶‚‚¹“Þ®ªÁê“ËÑûÌÄ®ª¢ªÞìýÌæï××ï¾ÿ„ Ž”쓺šˆõéÞ’à +·ÛÊ«ŒÎ£Ö§øÓ¬Ýý‚ÙȬ¥„š×¤¥à“݈êÈùɾ¡€°Ôƒ”ÒÊôºÂÍãœî¾Áä–íé“Áˆ³á¶íùýþ¡â“ç‹¥ïØ§„Ùš +•Ÿ¸“ã“ÿ¬ò‚œ¢ÐðÉÈéæ™Ÿè餞Ÿý‚ð‰¸ŸÊœ¾šÞ¿ûÿ·„€ð‰ˆ—՚뵨‚ߥͲ™Óä—°øïØíŸà„¥ûë…Ž“Ì»Ä +´’ª›ñÀìÔäÖ̧ƒµ×éñûäž–ùÄøïü컨¨¾„¼ýû‚îþ‰’Èçô•Ûߨ‹ž§ÝòôœÀ¦ù‰Î„´°Ïâ«§ËÈ”ì…Âö½¸˜’ +ªðŸä³‘Ù¥¶ÏŒÆâÿéÇå˜ì׬œŸŸ´òÉ“·ÇšË—¯šíÿÄÏóŸ´±ƒ®ü–°ŽÝæìÓÆÄõı¸Ê£Ù©«ÏÓ°ÁàÁÆ«¥¶æè +—¡›Ò§­²«”»¿‘ñ™È²’¾Ùýý¨ÐÿÔè§þžî󣓚ËôÔŸäû«ÛÕœ—†´³Ä±ÁéÎÚšˆ™Ï©•¾ñ֖ΜÑî²þ’³ó‰ÌڢƧ +›¥™…üýÎÐæ¦’ŒÏöö¿ÈèÌ·íͽ¨Ïðך“ªÉƒÅ޾ɼ‡ìéꃑüâœÖÙô‰ÆŒÏŒÏôú‰“¸ˆŸ¡ØÛå–ħ±™È²¾ù¼ +³÷Ùຫ±ÿÙÔ÷þ‚–ɰЮܧÁ´ÞÓäâüÉä‹´ˆ£Ø›˜™ŽÍ§Ÿ„î¹ñ‡ëÓ¼õ“ûÃþêû섩̬¬–φ³’û©‘“ŸÌÞý²±Ý +æöö÷Ý¿™ÞƧ¢°„£¸ÛÍþЀÚßçƒ¡àŒ‡ñŠÐƒ‚…“ŒØ´Ö…†ÒŸÈï­¥¨Ø«›¤¦³œÅŸ¸íѦ‘ñ›É‰¤ã“ǯ¸œÔ—ý +øýÒùåûÕÌÅüí’ò…à‡ýÒ”áÙâûóÎÿ‡¬ä¦·¬†¦¾±×öÎ⯲Öú‰×Ù†û¤›ýˆçÌòç§ö“Òʲ‘äî¿ùøÝâƒ„ŽŸ÷ˆ +±û¤–Šî“Äàãü›àÆÀ˜»Ä‹Ð铬ÌÎʇºò˜Ã«½ûÏœŠðìÃüäÖðóŽÖˆ÷žœ¤ó™Èýç±³ù‚—û›ÙЕ›Ä‘ÞÙú»õÓ¡ÄÈ +ȧőþ“·¼Á¥èñ„œâ¹øè»¿Ö‰Õž¿ÛįŸÌÜÚ™•ô‰¶‰áÈÍΤ™Ÿì»Î÷¡ðýöÛŒÆÛ™àŽðÚ‹’ˆÓÚæŠ¾®©Í¬Øú¬ž +óÀì«ÒðÉÖ¹ÿýñÍûæ–§Ó¤ïý²Þž›Ñ³¸Áû¬ëž¢ô÷ÉÛ¿ú¯Þ”Ÿ”–­ó‰ãÓʪàè×ÌôŒÁܼɗã“ÓÓ“îŸÕñàþƒ„ +»ù„ ÝÓáá²ôÏ“„úûÉ”ÎþÿÀ€ùľ¥†á®ŽúÉûžÿýÜ¡€Êüߣ𗇯±¿šá˜‹–…ÿ¿Œ†á¨µó‡×Œ˜ß +] +::^ [s0; Tool bar.] +:: [s0; ToolButton] +::= [s0;= +@@image:287&162 +€ƒ®€š€€€ƒæÿ€€€€ø½œûóòÆ›ÑÑ„›¾°áû‘æ¥ëÖ̤‰¢µ€µÒ×™þÀôâùÃÏŸ‚¿ü§š€•ƒ•µÀôÒË¥ÀկͤÞÈ +š€¨‘¨Ú®²†³É¡–„²ÀíÔô‰ùó΀€š¹„¦¸€Ç¥Äš°ó„„ÿà᱒ᦣéä¾´Œ¦“ÑôüÂù˜üùó‹ÈŒÄõ—€«÷ +üß¿¿’¨ÛÞª€´”¾ÿûÄÀ†¢îËéðÕ´žßŒš–õ’¨‚£€¨ÑÝó +] +::^ [s0; Tool`-bar button.] +:: [s0; [^topic`:`/`/CtrlLib`/src`/TreeCtrl`$en`-us^ TreeCtrl]] +::= [s0;= +@@image:1061&1007 +ŠƒÂ€¹€€€‚Çÿ€€€€ø·œíÉÒÜ´²”€ó¥ÎÁ¨¸€‹¶Ü€ÆÇ€â€¬Òì€Ø°„Ö”‹Èƒ€¬ Å˜ªƒö™þ̤”ø±ô°Šôôô +õ¬ç·äçûê¢ÕÊ­ëø–¾¯»»í¿ºÃ€ßàåäú÷1ýÁÔÇäÑÊë—á«à‘ø­Á¢ðƒÅàÇŸ·è”ÄÑóüŠ¡ŸÙå𜔋æ­ÙÔèß +ÃÖ¥ê¢ÒÃÖ¯¶¨¸¸Ø´ƒ…°ˆü”­Ê¿–”͵¨ê§¬Ü”ëæÀ¢î©µ»–þÿÿ„…â‡ðâÆÒ俬õ‰ÃÍÚ”¿£•ËÄÃò¹–©½—‡ +ü¶¶‡õèÇ¢’è—òÙ³¤€‹Ç¤ø×ÑÜ嫽ڰߢ‹ªêØÔ­–û×–øÏ¦¹‹ÒæÊ컚Ÿ®·Šñ€‰È§ëäü¿å…£Ãó´ðƒºÅà‡‹ÀÏÊ +¢–…·¤á÷àö‘øÁ¢ð³¬þÅéÓ´æßÁÅ›§°¶½œàÝ‚–ͽ™ãÑñ̹ÅËÍð¬®Ã‹î¸ÚŽÑÙ¬ãÿàØÜ¤”֖垟¹óÞ°¦ä¯£¬½ +¼ø¸–ÉÑŸ¢öá‘§ð”–“ª£Û´·‡¬¤šæþéЮ°¡ìäøñ‚£…Õ²üôÒ®¡áÿ¢ˆýë­Äþž­Ç›Ž®äë¸äÿ–‰åéß͵қº· +‡éú¦«Õíï­îœ×»ÒÖ½Ö·®îÌñܰ½Ð֤ſ£•ŠË”ÖŠÅÑå½ã©¬ç“³Èï笠­Ü¯ìòþÎâÏ×¢¡¥©Åé‚•óÙ±öÚäÉÀ’Ï +´…»³è¨ºÊ«ìãÚ¤œŽå˜ô½ýÙ´©¨Ÿ²£êáéÊ«¶Õ¦º½ñžó™ˆƒê‹êêé•ë¢ÜÓÄ‘£®žÅ‘ÝÚ¼´œ÷¸ô±¬ãë¾éú¸¢ +”¾Ç³Üˆò¤×Êé忣–ðÁ×à‘øéĆ¢¬Û´Ø„þµ°ˆüàÑÂ×Ò†–‰·³åŠÍòÌêûåÁó‡ùÈ©š®Øá®ŸÃùÒ«‹ò¾Ìê• +û»§íÍ²Šºçþ›¤êœ¢®ˆÎøÒôàÑîøÛìÒ¬¼ÈÒš”ÓØ¤Ã£¼½õØÏ¢°¼·÷‹Ò—ѹŢ…©æØ¤ªŒ«›§…é‡Ñ…¤½×ϔꩺ +©¯¡é¶éÚʯ«°ÿ¶–úÉ‘ðïúÛí¹û휃ʺ‡‹Å•ë•›×ßÇ—´çõÒÍÍÅß䤘¡ØùäÆÕ®«ôû«×’¢¥þÔ¨¬ÍøÔÙ¯É•Ó +» ¸ü˦ªä˜¸·ÿå¤ÐÚ×…Û½Ù”»×ôìÈõèÜšÝâšÕٸƪéöºÅõ–íÉñÚ´•¨Š‰Â¥º†Ë­Í±§•Å¢µÒÕÝŸÍÕÙÓµè° +ÜÜÞš¹’±™¹¸¹¹…Ðú¾‡°ô£×ÙĤՋÂâµñë‹ýê“ÕÉç½ë昗¥‡žîçö©œ ËÑñ²Ûä¼’ö§À‚©â‘ô‰‚–Ÿ¬‚¿Ø +ô„þ°ˆüìþó·Ôà¥Â•í·ç÷‹–÷ͳ²Äõ½–½æú½ç×ÚíªçïñÔ¹–ÙÚڗզ葱ÙͱÅìß’‹¢»™ð½Ø”³åÛÔ–ùƲ¶ÚÛ +§¢ô¢Ýá‘òØñŽ‹‹­òýˈï©â¨âÃᨇåˆñŠÄ•©»’¨šªÅéÖŸ¨åå“Ú›þ ­þË ­¼üñæÒêÔúɚɮÕÎɨ‡ˆÜýñ +ÄÁ­Ýª¹”âú–Åú§Ê´¹‹Ó¡öÜê×ѰæÙ¤Ö‘—¬¸÷°ÑÀÅéüÉ×߸‘óǶҸ’Åʹ°Þ·ÕÜÞ¶–éì›é¡²ÆÊœ”Ç¥–ÉóÛÔ +Î̲Øù¢–å™ò±žï¿á§ÃúÍÿËÍèüÑñ»Î¢¹“¾ì´¨î¬·Ûž´ü·¸Ê¨Æ¾•õùϱ¶ÅÄéú–´†éŠƒŠçËÔ§ºå锳Èìÿ°­ +ß¾ñ²æ–¥€ä‘Ò¼Æý¶³”ƒÕò›¥Ð¸Ú퇿¥Ö¿Šõ³±÷´¼²äá‚ü¯ûÝ’Ýóļж…‹™À–ŸÎ¬Áâ¯É¶–€Ÿ¬‚¿í­º +Ä¥ñü´ÖÅùõªõäÌÖ£¡æÅ³¦÷½Ó”¥ûõ‹ôÞ½÷¬ÃìÈ¢£ŒµÍÝ´öŒå™×±²÷ÃàÑâãçٻ¢¿éÓº¢åÒ ¿ÍÍ™ÛÑùúä¨ú +×ÛÒÇÊßÀõ—Æ´û·Äöó‹Äòñ¯ÚÑĵ•·Òº–¹šÊ⺳γ‡âØÛ¤ù÷µ´â‰Ò¾¶ÅýâµÍ’­±Âè¾”š°¨ß­úøÑË›ˆÊå +‹¬³œÔ–éþé×Ñ٠ܵ´ÐîÑ þ¹ÍŽØ¹¨¢Å•¬äºš–Ï‘ú™‰®üĉÆÉ‡³Ò»Í÷å„ÔúŽ­îï†èÁÝ¢áéùìêí’æ½Çï”ά +¸Ú–åáö´ö»ý°Ë‹àÈà¶‘øÁ¢ðƒÅÍà‡‹À–€Ÿ¬‚¿Ø„þå°ˆüà‘øÁÖ¢ðƒÅà‡‹‰À–Ÿ¬‚п؄þ°ˆüìà‘øÁ¢ðƒ +šÅà‡‹À–Ÿ¬‚¿Ø„Êþ°ˆüà‘ø­Á¢ðƒÅà‡“‹À–Ÿ¬ ‚¿Ø„þ°ˆÙüà‘øÁ¢ðµƒÅà‡‹À‚–Ÿ¬‚¿Ø”„þ°ˆüà‘ +ÛøÁ¢ðƒÅই‹À–ŸÀ¬‚¿Ø„þ°²ˆüà‘øÁ¢ëðƒÅà‡‹À„–Ÿ¬‚¿¨Ø„þ°ˆüà¶‘øÁ¢ðƒÅÍà‡‹À–€Ÿ¬‚¿Ø„þ +å°ˆüà‘øÁÖ¢ðƒÅà‡‹‰À–Ÿ¬‚п؄þ°ˆüìà‘øÁ¢ðƒšÅà‡‹À–¡Ÿ¬‚¿‘Źã†ÁÌŠœÅ»ï¾óÖ»ŸµŽ¥¹˜÷Žõ +ݦþŠõ‰â„œÓúëÆ…ÖÑÚ¡€èѸ÷Œ’‹¿Ü½¹óß½¼üåãÞÃÀµËý¨’Íé›í›¿¶ŠŠö†É¢Ñ³±ÎîçßžèñîüÏÙ±¦½¾áŸ +…Ò»·þî••ª‚ˆ–›£ìöç¾¹‘Å«¯í½™¾¼øñü쿵óõûˆñ›ˆÄÿûŒéʯïÞþµÕˆ‹èš­ý”í΢¶ñãÓóרÕû¹ÄÔòü¸ +âÌýÎâÌì•ë׿Èÿ힘ޘӔ޻ó¹ÊÕ¤‹š®ý”­­êѵ©‚þ±þ¯Ì¬ºÖáÉä­êŸÛšÓ•”¾¸÷µÕÔúˆ ØôÉÙߔޱõ°•œ¢ +­²¨ÚÛÉä¬öꞘ˜Ó”þšþÿÚ«È­èÿªÅ¢¿¾ÞºÆÔöð²ŒçÈ¢´Â‘³Á¨ùââÌÓú—ðÁÍÖ¡¬è®¤ƒÍ¢«‡ˆ±ÚÞ‰£±èÊ +‡‘·¨ýîé¼ÌÓúèá­Ö¥‘ÛÐÔƒ‹ÅðŸýõùŠ©‡µ°°²¨ÜÕÏÙä¬êž˜˜Óï”þñèŒÀµèÒ˜ÁÒ¿ÏË’‹®õ²™ÿº£üÛá +üÌÓúøÏû­´¢ÝÐôé£ì»•ûÅŸŸû©ÏбŸðåô¿š¨­ÏÌéÊ©Ÿ¼þتą«–¾ÊÖ¹÷Óýå÷¿è‘ÝÕ»®Ö§ìÓú£×“¿ÚÅ…€ +͢Ňç£ã”Ѷñ™îؾï©õ‰øâÄÓúô铨ÖÑ¡€èщÓÏôÛ¿Óÿöì髨 çê‘ѶħéÇ­¡®ÛÈ¢€ŠÊ‹ˆ¢ºÚ‹ +䌻áïȨà€Ò +] +::^ [s0; Tree widget.] +:: [s0; VScrollBar] +::= [s0;= +@@image:106&456 +€ƒ‘€É€€€ƒ·ÿ€€€€ø£œíÖËÎ𘔼“çàŽœ±€…Û®À†«¾ Ž€Ø±àӈء–ЀÝÁæÅù¨ÍÈÛ¤¼éÓÒÒªŒªùÂú²—Ä +èˆÅ¨Ñ¨²Æ¶ïìÈï¬Ì⯑ûñº÷¹Àÿ’ݽÚÖÎÁ£Æöþ–°‹š‚¡Á˜è¾»Þ‚ê¿£ˆ±Ë„å¤ÁŠàÎ祿³¬Æ•¤«Á¾Ø§öݳ +ƒ£ÕêüÕþ˭𾱺œ«ë¥›’ƒâÅ⊇ žÀÉÕòÜ´ÿ¥ˆú‚àÕ—ÉÑ•ƒˆÊ鲌褶«±‰™œÑ¥‡—€Ñ³´ŒÎÒ̶Ò ¯çÖ +õ£™¼¯Ôý‹±Ûû³ø÷ɼ¾à°ŽÖºà±ù˽ÖÀÉå¿À¯ðøêÚ—ŽÈÊÍâ§ÍìãÛ„¥“£¾¬•“¨÷…’í׉ɉê˜ÚååýòÜ…ÁÒíòó +žÝò¶²€áʦûÅüÞóÐÿžˆü§áàå”ÊôÆ£ç­ô£¸ñÿ’ùÓÉðÝöžÆ³è£žÈ¦É¼Ÿ§ôò—•¤’Ô’ÿ Ú©ÿŸùӊ¬„«¥ÖÎ +Ì蓬šÚ¹óÐÛ‰ÖÊ­Òš•Íʰ¢µ’¸Ý¹´Á¦õÕ‚×Õß—‚ϧ‚„Ä•– +] +::^ [s0; Vertical scrollbar.] +:: [s0; WheelRampCtrl] +::= [s0;= ] +::^ [s0; Common base class for ColorWheelCtrl and ColorRampCtrl.] +:: [s0; [^topic`:`/`/CtrlLib`/src`/WithDropChoice`$en`-us^ WithDropChoice]] +::= [s0;= +@@image:1175&287 +‚ƒØ€µ€€€ƒËÿ€€€€ø¯œíœ±ÎÛÀƘ€óʼÇßÍ¡Ð¡ë«ÆŠ††® ²å¨ÐåÁ¬¨ÊˆŠÁ­¢Â€ˆÕթޱµý„È¥…¶£û +ŒÃ”×½»§ç½ÇöÎèûôç¶±“ ýÜåú ¦ÿù©ˆ­ˆÃŸ¾ü‹ØÓ²ÆŽÃ€’¡´Ã¨‚Ÿ¯›‹ïÎ씳ú½„âÀÎûÿ¢ì”³Ãº„â +ߺü«ß¶Ú°÷Ø›²¥ï‰ÿª‡ÔÕíý²çÑ²Ãøþù¦ŠèÿèüˆÔŽ¿©ëìòÖÆŒÂ拾àîú»¼™øèñ³àèÛ¿²á‡ÊääßÕ¦ñ¤ +¼é½éòø“š´ŸÜÇêêÜÿ܈’ÜÀÁ®üþä’÷‡úö‡ˆ„Œ×™¯ÉÈú´¢¬œÒ—²—üœ˜…§ì–̰޶¯§áüÿ¨³Ž‰ú¾à¨úÓÁ +Î¥¸ïðÇä”Åß°Âÿߪ­‡Ã¤—ºº³ºù¬´Ò×é·ëݸфÊñÉÖçËÌ˰š©ë“ëù÷ʼnп¦¸áïǯ¬¿”¤…†åºì¥¤ÅªáìÐ +ø¨ÿÏâ¸ë°ûá£Âñ¥Üõèù¶Ò¡Ü”‡Ÿ·ª’ÙÔ¡âÉêÖü€ÊÇØáÌ“è–âéÒ¡ºàØŽ•÷“ÓÿËÁø µœÓŒ–ȱ˜ÊºÄ +Þ—”伓ý¿ÓŽü£Þðìƒß¡²Ó«›ÌÃâ˜ÊÉîï·ôùø°õú壅¤èÙáü·Š×ϸ‹è£¤·Ó¶Úèî®ËŠºÝ¯íß¡¾øŒ±Žˆ¶Êò +‹‹õÉÑÆÅû™ ³Œ‡ñƒþôˆÙ”äæç¬æ×–—Úۛвµ³¯ãÔ”Ûäꯞ¿ùýÊêçýŠŽçÆ­ÓŒ— ¦éÙÙ¡â¡Ò¡ºŒàÒ‡é¿Á† +¡º„— Ã ðº„— Ãöð±Ö¸“Ί‡ñ܀ʎÁ…èÜ€²ŽÁ…ا€‹Ô°ž‚‹Ð¡¸¤ÀÒ‡€¥£÷¿¨èìïí¶é×Ö›‹‹õù +Á¹Ù¹Ÿ±÷õéûÓ”ýÎûðîૹ¹®§­ø¬¯É´ˆ¹«—߯§˜øÇ²ŠÔʉÒêëûøÃÆÎÄÜÕï´ßÖì…Çò¥Á©Ô†Ì¹±žˆãÿÏá¯ñ +‚çæº +] +::^ [s0; Template that adds value`-selection DropList to any widgets.]}}&] +[s0;3 &] +[s0;3 &] +[s0; [3 RichEdit package widgets]&] +[s0; &] +[ {{2416:3247:4337^ [s0;~~~160~>608; RichRuler] +::= [s0;= +@@image:1265&119 +‚ƒð€—€€€ƒéÿ€€€€ø¯œíšá탰ª…ÙÙ²‚Ñóô†þÒ‘²ÞÁ„ªÎÀ˜ýíÀ‘ºƒµ„Äปãìãß»¾§§ˆœŽ«Áç°¦‰ +Ÿ‚ôè÷ýÃÜóÙµ¯ŒÃ…ÛÆð»Çþ˜†ð¼ŒËôÌó°Õ—Û¶à™–è‡ÍÏŸŸß°Ü‚íÏ¢½‡¹÷Ȳž‚¬ºËóšÚéÀŒ•¦€žâ礳Ԡ +äø¶¿Ò€ó²‡Øèˆˆ’ÙÁÊ¥ÁûÏ­ÌîծᛖÌó¾ŠÖ¥‘ÉŒ›‘ݪµÌû ”‘á«ò磳âýòܽžùã×è«ÙÒÄÞò‰ÐŽš±Î‚¬º +ô›€ÊÈ»«òî­´àٳ¤ºèô¸é¬‘ÓÀ㊽òДñéèÁ“Ž÷¼Áç­õïœòÃÁˆ÷ç’ÊñÔ£ˆçгÈý¸­ˆç›áóÁ뛓—ºÔ +…ЏµÑ¹þ¾½„ùŠšÃÔº§Åóò™†ó­ÛëÏñûÂóÊœ¬Èì­˜´Ê´ÐƒÝÝ³Ž˜¦ƒà¾å¯•øÁýѬôåØå²€æüÈë—ë‹üҖÇ +á“ÒøæŸ£öͺ“ö‘ç¹Ü°Ñ•ëýº¶Øëîÿ¡«ðëÎÎÚ×ëéãÒ…‡ç›‚–Éà‹øºÏà’Ö†ãóÿɘÖãå¼í³ýðÀ”ã÷µÍã‚ +†ýßÛª¼¬àæ´Ž£©Ó×µõÙ »ž‡ÙíÕõíœØ³„¢Á³¹ÿÓ´²ÿúßÚ÷柋쭊ˆ +] +::^ [s0; Ruler for word`-processors.] +:: [s0;~~~160~>608; UnitEdit] +::= [s0;= +@@image:462&162 +€ƒÊ€š€€€ƒæÿ€€€€ø§œí˜ËŠÂ°°Àû¿ïà‘ÑÜú†ïà©Ü‰¹•”ÁÅ…—›¢ˆ‹ÿ•Ö‚˜ª¢®ëÀàˆ­Îƒ©£“²ƒ¼Åäˆôž© +ŒÉ›•­Ô Õø“­ÎÏ›¾«Úåބлø†ýëö„°¡¨—ë‡ý§êÅ耓òÉöÇËšÓÓè¶Í¡ …ÝÐÜô…°´‹¾Ñ…ùÄ›¹õ…´ +•¿½ßô²“·ÄÆÎ츲ùÂæ»Íò¥ð´£‹Œ¨Ô˜ìêéÙ³é»ÂιÔöþÛáÿ„î°ïæ¡ç¶›¬Þ•€›‰™ Ò×íÆó”ѧ‚…®€Ž§Âù× +ùÑÅž»áì¤àµóˆ¸žæœ«ÕŽèþ°©Ý‘È·›Å‹¢‚Ñßâþÿ£ÂØÆ¯»ï𹣈„˜øƒÅ‡ Çà +] +::^ [s0; Editor capable of converting and displaying typographical units.] +:: [s0;~~~160~>608; RichEdit] +::= [s0;= ] +::^ [s0; Raw word`-processor widget.] +:: [s0;~~~160~>608; RichEdit] +::= [s0;= +@@image:1241&717 +Šƒ®ú€€€‚†ÿ€€€€øŸœíÍŽœÅ—º†ë–¸…î™ÛàÇš­Ë£–ÞúÛš±à‹îàøÏ‚¡ë“„„ÆèƳö¾£ƒŒÕ¶Ç–ú Ì蘃 +‡±‡’å鄈ýËÒžèþºÃþÑñ—ñ—¿õù¼úÕÊŽŠüŸò˨ˆ§¢ÿœªû÷ôþŽã¥Œ±Æ˜ã¼¨žßþðÒä¹àŸŒñ´†„˜ã¨Œ‰±Æëò¦ +ªÁîÚãñ™œ¾ªË–§óžÒý„š†ŒÊŒ«ªõÑûÿ㬀„ÛíÖ‰»œßÅÒ厤»ö螨›•ãȃ÷Žª›ÙÜÜ×–û¸ÖÎùÓÐÉŒ¡ +¬•Ìà™‘„îýÎòŠÉ¨ö¥ÎÝîÝÅ«Œá†–½ÔƒŸ÷™ëæÈ±â´¤¨ÕýÿÃÍÚÜÔŠÛµù¼û¤È𬫂™Êï„Ƚۻç å’µÑÙÖá×È +™èÝÅÿ™…ÃÿÕ˜ïýá½÷¥þðòª˜Ô¼¼¼ýëìÝÊžþîõ†£¦¾ç¿á²¶Á§Ç·åÓ°ÕÏ€؟°£øß·ïáÃÏâ¦Ò¹¬å‡ÑóÀóõ +ÙÕ󘬤““ÐÚ±ëøÙßãÎÛªñ÷ÓŽíõíú¯Üÿ§¾¿á†ÍÞßÛò›óƒŽ÷Ÿ£½Ë´§¡Íþ‚Õù·¡¡ùµëÝÎ÷ÅÎÁœ“úɘˆ’ +¸ËµĵÕȬÏܫᙹÐäü¡›ü¨‰õïÕ‚®Ÿû¼¼Ù¼šõùÕ¿¾§Œ÷ŠšæêóÒßðٳדƒÐõÔ¤´ßßµåÙÚÿ≼é×Ðêû +ˆñÌ’ê¿ËÉ­¨†´¹ìþ©°¥©°”¤„ —Ó„š³©˜÷Üíω½ëö螯ïŒÃàÈèë«’†ÊŠÃ¢–÷·¼Ä˯ߑ„Þ̋ɸ‰Êì–‘’î +éŒùéÛëÇš¨þ–ƒÍŠñÁÔ˜´‹µä²×ðÕ»¡ùÜÒÞ«ïöùÜ…Ží—ÃÍîÀÏëšù͉ëû›®ˆöÃ’Æ•‰â÷ÀÀ«®„Á¼ˆ‘ÔÄ÷î¨ +­ªÍÚœÐïþìσ•’°‚»Ü”’†è”»‘™‹ï¥ëл²¢§Ô¸µ‰éíèöë†¨Šœ¾üëºÞ¾±é껆­ˆÙßßÚð±·íΓž­öº¿Ó¸Ö³ +ìéÊŽ±éŠåïÝŠô¯íѰ³¦¹‰Í¶È𹡗¤‡¡ÃÒ²ÛäË«¬¿‹Ì‰Í¸äÑ’Úó—„Çòš»»Þ†ÖŸÃ°¾¿ášï²ÚðÓŠÁÝ +ÃÒœðÓ¹§Ü»´›“žŽ¬“¼ÛßÓÑÜζ¤éçú’º£êºë¼¡ÕÒŠ±„æý€Ü‹ƒÃ­Ï–›Í¦ú›Ý»§Ôíœå®çîÔ¦ðïý⬧հ +·¾¿áâדÐÜãД…ÁÝ”¢ãû•ÊÈøª±ÏƽÓÏõ÷ÏŒ÷ùóÝæ‚¤ŒØæÁ©µ¥½°±ò«Ëáˆûþ’Ò¤áèÛ‹ñ„†˜“ž ·û­‰“ßš +ç§¿áâגЀÅß–†÷­ÉçèÑ«ý¬ê™¦©ê“¦¶ó˜Û’湘õñÆÛèˢᨔ·—ÞæÏ‰‹Í™áîþÅð€—ù«¥ìýÿ÷ÃÅîíùÖ +ÝÒÏÂ¿Š¶õ…âëÇÞóõ×…‡ª›èÅŒñµ¢½ñ–ý¦çµ‹¾½—«ˆ áÈ¡ÐÎß÷˜ûœð×´¿½á¥º—¨ñþƒ•¸úÙ—ê•Øó“ á攃 +Ý«¤á·¾Ù‹ë‚Б™õÚ‹û‡î¤©¡á¨ƒÌ§¿á¼ÖÏ—úé¤Ü²Õ ãŒÅ«„ ¡Æ˜×š’’⌱¤Ä˜ãµŒ±Æ˜ãæÖá‡Ú˜ãüàŽ +ÇÜ‘…‡¢¥É§¥˜ãŒ±ÑƘ㬾þô—ñ§Ÿüûú–Ç­¢Öœ¼ùýŒ±®·¢™òû“Ÿžü÷¿ÏŸÓÏí¨Êê•ÔÙ÷òÝÀ«ðå…¿þ‰Ïîù +Ìÿ¢ÃõÀµµ°ÓÌ«»×­Ö²Ô«Ï¾ˆðŠÁ¬ºùÙ§Ä­›ä’ðêŒì˜ÊÂõœ›µ›º´¥Ö¼Ìïî”ð‹ÏðÜ­ÝËÇÿüþ¿ÿþ¿”«šÝ”¤ +Ϭ̰­«ï蘺œ’ÎùÉÜ …Ùí¶Ûëõó·÷¨ãÏ»ƒÈš’¶—€¤Åªæ·…‰«³ˆìëȘ⓵Âóƒá«Äï·ÿçã¤û‰½›ËÑãæýç +Ωž„µ™¶Œµ¤ÌõêÈèÒÍü´‰Ý‰áÖˆÓÂÖã®ôú惔¢Ç—ƒßîÒ¼¡‰ë²Ìœ—‰ØßŽ“ÐŠàÖð¿’ÐÝè˜ÏùØžôóÅàå +ø®Ï¾éõŽ»þЯëÂă„²ÚŠž·¾ù¹Ëޤô’ ò÷錓áÖè°îÊÜʽóÂøÿþ†æ„îæÒ©‡ê¼óøœÁ¶Çôܰ¸« ŠáèŒá®°­ +֜ڹ¤Œô×»¬ú«–¢Ç—¸ß¿•¿õÎŽì–ÄÉè¶¹©ÞîÒΕ™öæŽÐ‰öÜœÈèæÜûçäÕõȲçÆÛŽì·â†¹Ä¾¹è‚˜†Ú¼ù +×ӥإ¡»èž¶çÿ¢Ëª´é»¨¤ÔÒôø‹ü«§ÊŠ©âÃùÓ­É¿º¶ÔšÿÚŒ³†ˆÂÕâÖιºŽþÔ˜Š„½«›õ«Ø›ÎÉÄâ€Ø®íÌ€Ž‡ +ÁÃÊ’Ú爭÷Öžü¼¡—„֑ⵤ«·¢ÇõûÅšö¬Ö²¸‘„î·Ïåë×æØ¶ÀÂãäÈÖ˜ùÓŸ¤©Çü†¢¡õÉ–Áë°¬ý†ðúœ +ÁЭ´Ç¥¤ÔžÒôøìî£í—±ùÖŠ‰½ßÕµøå‹†¹ãĬñ«œÇȘÂü¡Èýèà‰ÃÓ…¸ÿ®Ë퀥œ·Ó³Êù’Ð÷¦¡ÝÜ“ž§ +ÕܸòŽÀøÉ½ËÑãèÎáӚ²ÖùÊ• “³òÃ’Ö䙘»ÆâÃäÖ¤¤ôûÿÜÞˆ‡Ö²Û”ÉíØ­Ç±ï¬²‹Ô•••žÇ›°Ç«­š¸²ƒé +¯Ò¸ç–œ¸”†½®ÝþàÙÁéÆ­Ì¿ââ–ÑÔ´øå†Ùä¤Ô¢¢¡ÔÏîÝ—åžÇñ‚ÔŸ¿¢ßì¹ËÝÄê܄ۄæ™ÂðÖ¦ô¹Ï˜ÈÂŽ£ +óã°”½®Þú֡ޤ´šÙš¬œ°Ã¬áâ§•¸•—ÊÂБ¨ô’Æ’ñ¹‚Öà׌ô¢Ô›’°—ƒ¹ÍÝžÙ§‰ùÉóÑœûžßÏñ‰„÷Ö×䨼 +¦Ì¼õÝ’º«êÆö¥ò›“‚Ÿ±¹óËÚ·šžÊˬˆçŠõœ«ô½ÛšÐºäœÚùýôñ‚󄨬ާ÷¨œßËûñ„¤¬É°­ïùµÝ˜î‹Á +ѲŠÖ¦‘¸­Àòα¤ì®ž†Å“å¡Èسœ×Ù±›ìûÃö’žŸƒ”™óÖùõÚˆ‰¤§—ϧԛøëùòÅ»æ„ÕÉîõõ̹Ÿ‘ê´òäà +ùÆ—Žû™Õò›¤Ö—¿ÿÒàçžÔŠ±Þ‡åÿéý¿ýú¼ÀÒ¼½Ÿã¼ŽóªŸ°ÆøÇÿÓùĘ㌱ÆÜ˜Ïê܃‘Œ¼±ÞŸ‡ºùŒÞ¡„–£É§¥ +Ԙ㌱Ƙד˜û®°Æ½çùÏ¸Š¼Ü½—¸“ïšÆø´¨Ûãÿ¸Ó‘Øȥ¬¿ÏªÛ¾½þû¬Åµ†Â¨Ìó£áÁÚ“¢®Ÿþæ¿ÜìóñßìÏÞ +´šˆ¡²Íÿé øñÉâ©ÖϰµïÚž¿ÉÐøûúŒÜ·Ü•¤Äèýªþ É¬Æ¾Êêƒæýç©öɨ¿¸‹¿º‚„ˆ‘­Ï–ÉäÿµùÆÉ²«±¯² +—úòÛÝŠûÉêèÎÍÍÈÃîžõŸ¡õ©ÉË’áሤճšûª«›ßƒüœâ¯‰µ€²Ã¯§þÞîñͭ„֧èÉ„†Þ’Ìþê쫬¾øú +ù©Ø¥¬—Ý’‘ô¹á—Æà‡¨‰‘ڣ̒؆Œ±À²Û’þƒþÕ“åÉØÙ‰þô˼×Ì¢Ýòâ°ƒ„ˆ­êÑš¤–­ª˜Ž¤™ÕØ×ÙÝ›¿÷جÑç­ +“‹³È˜Âà‡è‰‘ڣ̒˜‰¶°â’äÖãÜßåõÙÝÇÚšš€âó­ô’€îÏ•ú—’¢Å´¾¹¤±ùâþ¥É¬Æ¾ÊêËèÎÃÓºù«¸¼ÄÂëÒ°â +ÈàäÂØÁ„µÖ¨‹¤æ„ªêÄ’Ùý•ÕóµÛ¬«äÝŸÂȜЄáœáƒ¤Äè²âÈ¢±˜¡É¬¿Æ¾Êêê­ŸÀÒœ¿º–€Êå„°¾ÅȈР+Ýúä‘Äœ“†ÌȲ«±ÿ²§Î½¾Ÿâ¸‰…‹½“ÂŽ’¢‰´Æ•äÖã¿ÿäÚ÷ñ½”É÷Þ±±Î˜†„‰‘ÚŸŠÈ–²«±ßö¬šïµðòå‹×Š +‹„Þò펒¢É´Æ­ýÙ´¹µÒÏåúñû¯¹®•‰½åÚ¼Ù•‹¡Ôùȸæ¸Ë“ÚÿûõºùûŸÔб”¾‡¸°”Ë÷ôþŒ±Þ£ùΘ㌱ +ÙÆ˜ãŒ›¸÷ùÐ’ãŒ×çᘮϣ„ÐÒ´Óù¤”ãŒ±ÆØ˜ã¬æŽ ŒÎ§÷ä·ùŸˆÖÃíÏÝâ˜ÏýÁ—ø¥íðŠÐþ¹Ø–¶«þËÁŒñº× +†Ì¬çÓŒ×ÿ¹‹’ðòéÓ’¤Êö°þ´‰¯ŒçïÏ“äá²â’êêõÚŒÄÜóÊÝŸ‰ŽëöñÐÈè¾µ÷’ˆõÃö ¦ƒÿŽöŸ¦üЉ‡¢ÐÍ +ÃûÏÒ¬ð›¨òò—ÌÂï÷£€«óŸ­’¦Æíˆ÷ÎÉ£„¬È¡¦’”íýŠæÇЭÝÁ»ª£¹‘Ìϰ “‚·æÖ„¹Ø›ÚÁüí–É•ɹ½òÙÖê +½¤¨ôå·»”š‹Ü†ªÜ±§°ì·ö¦§Ðœœò˜ˆ„Þˆ¡Õÿ”ݾ†«õ¿¥ëí‘ÐÌЧ²€óÉæ‘ðÿœ©ŠÝøæù甋ÜÜò·ÇÞ¹˜Þ¹”¹ +“«ž“Æö±Ä¬Âž››öª´ÊɄƈïü€šÞªáòœ¼µëù‡µíû‡ÀÚÒ᳌¸»ƒƒÖÓò´öÉèݶ¼”Ÿž¡ú¹ëøÕÊÑ苯Ÿ +Š•Óô²Û¢¨ðó«¸ë…ªÿ‡Ìœ°¡·¾—£ã‚ˆÒô宑ê‘î¥áœÔ¬üó’Õê¨è‚’ÚÍåîõ°ÌÚ ÂÂιüþÏÿÓŠ°ÙÝŸ€×Œýô +ßü‡—¯ž¨ë’ÿö§ÿº¥‚–·ý®ÙÁÜ«ˆÔ¹âΓ–Ä“ˆÖÙ½€âìÍ¢ÔïÈ«¦¼èîͷЀò¦ë®É©¤Ü„ãÈæªÞ¿´ÖèÀÒ”ºþï± +ÄØãÍÚ–‹ÜãÜÊÖµïå¸É™“Ží¦Ç…îÄØõ͉͘؅¤ìû…¸„È“ÉèÊÛ­ô»î´¤üìî£Êí‹ïæÛ‚·ŒÐå³ÜÛ¹âÑΓ–ÄÈ¿ +ÄóàȺ¢ôÑ⹡։çï¥Ü¹¡Û­Ä½¡·äü’žÝùÌèÚÃͪ—¸¸ù«Û…¡Ê¡È³§œÚ³áȘº¢ôß§œçû±À©×Ì€ÒØ—ÿ÷ª’ +þÞ»ýÀ²‚›Ðۨ𫨬´­ô®èÊ牔³£àÉÜ»§Üôë®É‰÷Ñ–Ø…¡÷͊敉՞…´â©¬ŠÝ½õÊ…¬î…•…ûÞ…òݹãΈ—à +ÏøœÐœ™¶œü“ξ×ÚëþßÉÑñý”Ÿ²ðŽÓ¹ã¼ãáÃà¦Ç•×ëˆÐ¥œ§ÜÆÆœðͺ¹·×åøÞŠÏ™¦òÇœð¦ÈÏ„¡ë +¶Ò×ú¼áø½·ÇòŠÉ¸”ç£Ñ¨Š¯ß¾¨ðð‡‰çÌłŨ¥Üµ¶µÍùÇßÖ«¦áÖüÔûÔ®—¿¹ÿÒàžÊ…ñ”«Ïþ°çƒñ÷¨ýåÉ­¿ý +—ú¼À¼©•ã­¼ŽóôþŒ±«ÞñŸ°Æ˜ÊãŒ±ÆøÒ纞ŽáŒñú¼¡ÜÍ£ˆ¡´”È;©Å˜ãŒÒ±Æ˜ãŒçâ±Éÿü±“ßúŽàœâÉ»°î +þèë“ú„墸º€‰ñ†ê¼¬Ûë¢áÝÃç˜ÞîåêßÐîºî£—‡›Œ£¦Œ™ß‹Íûˆ¯ú¡¼ Ó뢡þ”ÆÖ¯ûŸ“èÓŒú³€º‹õ +¶¼Ùí¿ø¨—è©Þ„¥À©·¬þ®Í¬ˆ’ÿîÚ½åÛ øž’¢•‘ð»æýçÚòäü™³Ä»„¦ŒÃÍצ˜´ß㢸ҵû›Á›¦¡¾¢™¼‚… +쯼·Î³Þã¨ûíî´»‡çÁ¨¼÷Çꢔ¬‘òÑã…™ÚŒ™‰¿üöçÙÐøè•æÍ‰Åò»ã°Ù—´ÂŽàïèÓïõýÒÓ¯ˆ‰ãü³Ñ–û¹æÁÓ— +ìDz´èçªÛÙ§âÊ„²ºÞþ÷·ùóóÝòÉÇ‹²µ²’ÞËøæçׂ󆤄ꆨ¶ßç„âï¡ä•‘è… »ŒÓù•Òäõïíå”âœëÎ +³ÿÉÅ™ÇæÃ†Â÷³°¿¯Èàø Ú™‰¿øÓú©ë¡¡ÙÒŒêÎØóÀ”¦§¡Ô‰áМ­†ñ”í‚Õœ··áºÛ¿€Ê´ÿ´ãÇ¢„€øµ­‰Íö• +°Äð¿‹«©¡ãáèå¤üü«§®…„æÉŸ“ó„²Ñ¬’•šÜ²Þãø…—Ôñ ¦‰»Ñç”Ù¢Çú—ÄÓ¢˜íØÌÂêîÿ¿¬ååàöýÕ‰ÁÂÃÑ +ÙÊÈøýÞã׼³¤Õµãµ‹¡é¤Ì­“ƒ¢–×ñ†úùÄè­Ã«“Ùñɘ ކÿ„‡£•‘ð³·»´•ýäÕÆì¾•»§´‘¹¨Ëä£Û¢¹ +˜á‰»ýë“’¡…Șªï…‡ïÍ¡•‰Í˜•êÌÆ§á®ÿÞþ¾šñ‚Ì­ƒŒ„Ç÷žê뜆ª›åÊÙ¤¯´Üíÿ»ìñÊȸó®ÍÄ‚ä”ìÝŒžªÙ +”üθ³¾Í’ÖÓ̪½³Ìù²¢½Ú¢ÇÄ‹²µ²’Þ»‘ýÀÛãЬ”Ë—‘Ю²ú¶Ãžç…™–á땤ԭ梭§Ç÷Æ·û‘µÐÓ†éÕ +ø–½Þ©•‘·ðê­Ÿ´Í¹Å¡Ù®ÜÌÂÙÁ¹œíΘ¬žä„­·™“þÚ³¸®èØÖÙ¤ëÙ„šê‹œž¯ÈÔÊÈø¸ôü¿Å°òÏë¡£Ñ¬Š¹ +„˜¬à˜¤ÄÍ´²’þþü¯‹ÅŤìÕääË¥¨Ë¾¦¢ßá¶ÞíóÊäß–÷æï¦äœ‘’¢‘µ¦’ÊŽô¬šÖÎÜËú ƒí½„íͬœÊÖÌÊ +˜¦ŒûÓ¨Çú€â„ÈøèÚ“Œ‰óÅó‰óíеàïùÄÛçÜà⊉ŸîÆý„”üŽê¼á¬Û®‰Ê“™³…¯Ú“÷à§ÜГ÷§Œ±©Æ˜ãŒ±Æ˜ +æãŒñ̼ùéšÊŒ±žÜÓ߉įˆ¡Ù¨å­êØð󊌱ÖÞ„³Èè¢ôãè舒⌗‘îÜ’žíë›Èý •Ƙ¯ÂØÍȸù©ÎŒƒñ꽓’ŠŒ +€ÝŒŽýŽ“¡Ù„ŠÈ¸ÙìʼnÍÉèÂŒ¢„ÆÓ™‰…Öì©°”­Ø¬‹·Ÿú“ÇÙƒÁƒ„Ð誻ºÎ³‡¡ì¥‹„ª‰¥úŒê»ð¢ˆ¥åÍ µ± +ç㹕Åö뻎Á²Â¶Í²Ôñ¿¸æ¤¥âÏà¨å·Û¥é­¢¹Û¤óÛÒÜÍ«áÌæÅ鮤´Žˆ…†ƒñ‘°÷¯Ü¶²Ÿ–Ý’ú൱ͭÏÓŠÓ–Ù +å퀡èÙ££þÕ’¡úñ­äæ†ô¶ÀÍ’•–»ž¾úúdzÖÉ’Åý²íÌÍæµ²È袠Ôó°àíºëË¢þ¸²·…϶’°“¡‹²½‘£ +佡´°þ’¡‹Ü̿ӿ¦·Ï »º§Îæ’­•»îÝë·¤£ý£‰¥é·ÛžÝ’Þ½ÎÁÕÞä⥉ï™ÉÞÛ»ŸË·¡ßÐÇǯö¯§‚„õÍäÙ +܈±¬ÜºçÐãõ‹ó¹øÙ¶´¬µšô©º” ”¥éí’É»Îþ’®ÝÌóñí…óí穌ÿ–ù­Ù° Úˆý–½Íå‘¶ôÂ©éø¨…ò뼡† +ƒ ©¸Œå«®ð‰­Ù¤ÌÚ‘çÂï¸Æ¤Ü‹¿Üˆ„õñ¶Ë²­©’ô›°œç«ÉÓËÐÌèû¹³É¦éž›þÑŒ¶ñƵÓɨ¤´Ó”Ô”ýäÅ +ç¬é“Ò¹÷ŠŸ‰¾…Ƥ℧†²¡¬’º»—•«”¦ªŒÛŽ™ªÛïòÖáªñ¶ñΔÄì…›ä¨Úä«Ùν«çþÆ½Ž±³’ÌÍ©÷ƒ¯ÓɸæÀï +Íü¦ŸÎÉêÒõ³È˜š¢†Üà¨Ûʉù’žÕýý„Þï“÷»©·¦÷“¼åá㹕…玄õÉÆš«ò¬¦·àèφ®±³’ÌÍ©¬Êæó¤ëƒÚÁ +ñ½‘ò¿Þ€˜…Éîö³œèŒåó¹˜äæÞê„ÐÐò‚§¶ž†•¤´²‚†ˆ¡á”ΜŒëŽ¡¡àÂè´Áˆ–壉¤”̬øí𽋿ò‡ +‹—š¿¼â©±†—”êÒ⮨§Õ¥Äœ¹Õˆ€ð¦§áÈͲ´ÑÒüï–’äóÁ©®¥æ‚˜ÒÝÊÌ‘ÓÌš¸–Óɸ´³—ÒŸÖÐÇŽÆ¡æ‚ÒÝÊÌ +¦å¥šë¡¡Êô†ãŒÖ£Ÿˆ‡Åˆ¡áÕ¼€§œáØãÜáãÜÀÝ¿úøÙÓϾˆÌƒÕƒ»ªÎîðëè嫢„Ðòúɨ§ü¯ï°î¾úð×ËÕ +®Õ®Þ•êÚ¡´ˆå’ÐÍý÷”è®ÞÝÅŸ­ê¨š¡Í´ˆå’ÐüýªÙßßÿñŸÝ¸Õ˧—¯òÇÈŠ¤²ŸÍÛŸ¬ž½û¦¯šëõ×ߟº +ä‘Ô¢‚’ª×³¿Ýùêú­÷˜®Ú¥ºæˆÙ™¡¡ôëÖ­µ»®ßüóÍ©“¶ÙŒ®Ü¹¢ÚŸìí·ßžº‘¢Ô¢Ò’¾ÑÖü˜”›…£‘°áà‰¼¨Åï¿ +›ÿ¾ê®‹—¯¶ÎÈâ¤ÚÊ›µ˜ê·©“Á¸¥ª£á•Û¿ù‰µ†Åº¼ž¯„‘ßÂØ•¡¡áÒó›ÕÜâêž³õ¢‹‘Åš¿«–ÓóéÁ©“Á¥ª£á +Ðßï½ÖÖ€´¯–•›Ðÿ™ìÚŽ•¬Ã¯½Çöš¹ëòšÊ…ÚÙ—×êÙ•ûʺêáûï¿—·Âªòõî÷óÚªø§»ï¾«ïɼ¦Ð•«¿Õ¹· +à·³™ÙÑÕÿ÷è£Ò¶Õ›Ù¤¤£ïªÕ¼Ð´Öӯɰ´Õ›ê‹º‚÷žº–¯ÏлßϯÊÛÜèþ¬ª¥á†úþÚ”›¥°ÞÖ¾œãÒ¥³ÿ +Òáκ̼¨€Èª¦ÔØ´é·¦Ïþ‰¾”ԔصÌåÈë鋸…ò“óâﻞÊÜѤ–÷ºÛ½ÉºÉ¸ÓµÓ·ÞøÃàÑÂÊ€åʺ̽ÔèÍÐ»ß +òÙ¨’Ä—ñÍÍå¤üËñà£å…½ÙÐÖ†¥ã“Ð÷Ú·ÿšÙ¥ãÛµú©¿÷óéò£å®ÉÎÔɨëÎѧÿ꼪¨âËÔœì㜘¤’¾¨×Á¥š +á¹ÒâŽÏ‰©¶§«õçӿȕ߆»Æîä—ä¿Ä±ƒ‹½îÔØø¶ú“”ÆäôŸÂ›³¬„ìÈ•ë´ÉÔ³ÛÉÍØ¨à©²æë‘н™ºú÷Ë‚¸³â +Ý´”•’ðáÜŽí¯˜Ä±âñ„¦Ò¹·Î¼ò•–ÂÄΗ…º¦™ŒŠƒúö¢ƒ‡Ææåë–§Óǰ¦„ô¡°¡µ•ëÅ™ûšÃ¹®„ǦüÜ—ƒ÷Äí™ÉÊ +Ž…ë‚µ™Öªë¸×ñ¬É¬Ä²òñ¢Ô¡¥¾™Ýýêο¾ÍÜ­ôøå…¾ª»ŸðÚÿ×ÇÝöþ‚‚–¥Öìý·æÎˆØ™ÊÍØ´–‰äèÔ½ŠŒõ +ÀÀ½Ñ‘ªúÏ·Ô™Û•Ä™„—ð®ØûòßÈòâŬۖ¹†â¨‚•¡¤ÝÔÍå®Ïñù㵄ª¤´£»ß¿Ýéá¶÷Ž£úȸ”•ýÆä¯Æ½ïâîû› +É“ñÈØÕŸÏ¡ö†¯ØÅæ§Îê É‚Ü©èáÎ篚ÖÖ岕‘»§”ý²Â‰æÝÑȘÊñÊû‹ññ¶Ì¶•½€µåžÂ¥Ôò¯ÖˆÖ”ɸÂÝŠ©Í +Óèî×÷ÚâÞЩ´¤ÜŠ–ñ—»ãÑȘÞ߃½Ó›¬²éɤŒ¥ÓÙø¹ÉÕŽâ“ÅÞøÂ˽Ëí‘ɦŰ›ýÃԫþý¹¤É¶Ì• +öû¿€ò¿¡äÐȶòÿ¸Õ¡¤·Ãïþõ§ˆìõæÈ¯ÞÑü˵ˆçÑÌŶ訞Ξ“Õæ°”ŒÓ™‰æÉéýᑹ‰ñÜÎÔäꃾֱ³à•Úѽà +ãØÊÐèìᥬìÛÖŠ–ˆääçÍìø§ú¿ûÂà–Ä«Íôæèݯ׺ÅÅ áÒÔÀ•žù•ÉêœÔ’úß­€çÒМµÒµ¹ô­œÖÁ õ +¯ §ªéë ÖŠ´ë„—œˆë߬é‹Â‘ûª¡õͦ‚‡µÅï½õø¶ú“Ô·×…Í÷ͳö­úÒ²Ž «Øî—ÐõéÓ¹’á²´Þ¡·ÃÁïþÙ’Œê£ +ðŨ‹Öÿ›¯Ä¦ÙÆÂ÷¶²Ë²³¥‚è×½ñµÔŽíζέëÞÛóðÔ€·ï²óÜÞ‡‘饩ﱹ²ÓÒÁº¥ÿϺ£Ï»­Þº¤Ýä¬Ù—‚ +Å”›Á슷‚ÛÅÒø…ÞŒ½ûåÞߎƒ—¿§™“Ðê“îúÍ÷­«ÄíöÝ¡è›ýû’½ý›Ë—»­²˜“²–‰™·Ääýý´Ã·„®¨Ç¨ŽÈ š +Ýæªìë§Šå¨ãޮѿӰ—ïî‹ï«·É±Å“ɦôÛ¿•¡¾‚¬¦ê¡îõ޽єŠãîä¶Þ¡ž¡þ÷¿¼¿Ç„·ËÒÌɈæ¦Çž¸‚֩Ȉ +ë²”ò¢Œ¡Å”‰’¢¬Éñ¥ƒÏ¨Á«“¤Ä®Ùê½ù™¡¥ˆŠ’¢„¤Äºˆ¡ù’к·’µËˆ¡”«ÈɈ¡„ÉæÉÂΓ¢„Æ”¤Äˆ¡È +Ɉ¡„À ¡ÂˆÁ„†‚„ˆ¡„‰ ‘ˆ’¢„ ¤Äˆ¡Èˆ’¡„ ¡ÐˆÁ„‚„ˆ¡„‰‘ˆˆ’¢„¤ÄȈ¡ÈˆÂ +„¡„ ¡Âˆ´Á„‚„ˆ€¡„‰‘ˆ’‚¢„¤Äˆ¡’Ȉ¡„ ¡ÂˆÁ„‚„ˆ¡„À‰‘ˆ’¢„À¤Äˆ¡Èˆ¤Â¡„  + ¡ÂˆÁ„½Ê⎪œë‘ɲˆ¡Ê•ßðúÑÇŸþòóÁ寅¬Þ€Õõ ¡Âè©õÊ¥¡Âœò¿ß¾»ùèÁÝﬤЕ«÷¥š ¤Äˆ­Â¹¤ +²Ôó½…º«÷”÷ñ«ºª¦¤Äˆ­Â¹¤Ôº‡¿êÖ÷÷ÿáü§îÕÇÕ„õ„ˆ¡Å¨€„óêõï÷žÆ­†ëŽ•ÂˆÕ·ª”„Ï”ßú“碬èë’È +™ˆÚÊÈøÃåöÏŠúâµ€¬¶Ë ¡ÂèˆÁª£áßï½¾ÖÖè³–•¡À¡ÂèÁª¥áÉâÀ󌞹•ÃÂ„Ð‚ÔæÆÂ¿œ¿ÒÖ€˜´‹¡¡Âè +èÁª¥áÃӧژܫ„ˆ¡–…©ìþÂë÷Éþ·÷“¢„þ–¤²ß˜Ü¸÷ÝÜüÆ„¡­´ ñ»ã„ÁâÙ´ˆ¡´Ï¹ç“¢„ÐÊô«áÿ˜ム+¢÷Á̒㌱Ƙ¯ÌÿƆˆ×ï +] +::^ [s0; Word`-processor with tool`-bar.]}}&] +[s0;3 &] +[s0;3 &] +[s0; [3 SqlCtrl package widgets]&] +[s0;3 &] +[ {{2416:7584^ [s0;~~~160~>608; SqlOption] +::= [s0; Option derived widget, represents true as string `"1`" and false +as `"0`" (better for storing in many DBMS).] +::^ [s0;~~~160~>608; SqlArray] +::= [s0; ArrayCtrl derived widget, capable of loading, displaying and +editing a data of SQL DBMS. Several SqlArray widgets can be bound +together with master`-detail relations (ArrayCtrl can be used +as the master as well.)] +::^ [s0;~~~160~>608; SqlDetail] +::= [s0; Groups several widgets as the detail for master`-detail 1:1 relations +(the master is ArrayCtrl or SqlArray).]}}&] +[s0;3 &] +[s0; [3 Note: Only the most frequently used widgets are now in the Layout +Designer menu. Others can be inserted as `"User class`".]&] [s0; ] \ No newline at end of file diff --git a/uppsrc/CtrlLib/srcdoc.tpp/MenuCb$en-us.tpp b/uppsrc/CtrlLib/srcdoc.tpp/MenuCb_en-us.tpp similarity index 97% rename from uppsrc/CtrlLib/srcdoc.tpp/MenuCb$en-us.tpp rename to uppsrc/CtrlLib/srcdoc.tpp/MenuCb_en-us.tpp index 967f6e4a5..fb42af911 100644 --- a/uppsrc/CtrlLib/srcdoc.tpp/MenuCb$en-us.tpp +++ b/uppsrc/CtrlLib/srcdoc.tpp/MenuCb_en-us.tpp @@ -1,127 +1,127 @@ -topic "About Callbacks and Bars"; -[2 $$0,0#00000000000000000000000000000000:Default] -[l288;i1120;a17;O9;~~~.1408;2 $$1,0#10431211400427159095818037425705:param] -[a83;*R6 $$2,5#31310162474203024125188417583966:caption] -[b83;*4 $$3,5#07864147445237544204411237157677:title] -[i288;O9;C2 $$4,6#40027414424643823182269349404212:item] -[b42;a42;2 $$5,5#45413000475342174754091244180557:text] -[l288;b17;a17;2 $$6,6#27521748481378242620020725143825:desc] -[l321;t246;C@5;1 $$7,7#20902679421464641399138805415013:code] -[b2503;2 $$8,0#65142375456100023862071332075487:separator] -[*@(0.0.255)2 $$9,0#83433469410354161042741608181528:base] -[t4167;C2 $$10,0#37138531426314131251341829483380:class] -[l288;a17;*1 $$11,11#70004532496200323422659154056402:requirement] -[i417;b42;a42;O9;~~~.416;2 $$12,12#10566046415157235020018451313112:tparam] -[b167;C2 $$13,13#92430459443460461911108080531343:item1] -[i288;a42;O9;C2 $$14,14#77422149456609303542238260500223:item2] -[*@2$(0.128.128)2 $$15,15#34511555403152284025741354420178:NewsDate] -[l321;*C$7;2 $$16,16#03451589433145915344929335295360:result] -[l321;b83;a83;*C$7;2 $$17,17#07531550463529505371228428965313:result`-line] -[l160;t4167;*C+117 $$18,5#88603949442205825958800053222425:package`-title] -[2 $$19,0#53580023442335529039900623488521:gap] -[t4167;C2 $$20,20#70211524482531209251820423858195:class`-nested] -[b50;2 $$21,21#03324558446220344731010354752573:Par] -[{_}%EN-US -[s2; About Callbacks and Bars&] -[s0; This article discusses callback types and function overloads -involved in Bar operations (MenuBar, ToolBar). The Bar class -is a base class of BarCtrl which is a base class of MenuBar and -ToolBar.&] -[s0; &] -[s0; The typical pattern you can see in U`+`+ code for handling Bars -looks like this:&] -[s0; &] -[s7; void HelloWorld`::About()&] -[s7; `{&] -[s7; -|...&] -[s7; `}&] -[s7; &] -[s7; void HelloWorld`::FileMenu(Bar`& bar)&] -[s7; `{&] -[s7; -|bar.Add(`"About..`", THISBACK(About));&] -[s7; -|bar.Separator();&] -[s7; -|bar.Add(`"Exit`", THISBACK(Close));&] -[s7; `}&] -[s7; &] -[s7; void HelloWorld`::FileMenu2(Bar`& bar, int val)&] -[s7; `{&] -[s7; -|bar.Add(`"About..`", THISBACK(About));&] -[s7; -|if (val `=`= 1)&] -[s7; -|`{&] -[s7; -|-|bar.Separator();&] -[s7; -|-|bar.Add(`"Exit`", THISBACK(Close));&] -[s7; -|`}&] -[s7; `}&] -[s7; &] -[s7; HelloWorld`::HelloWorld()&] -[s7; `{&] -[s7; -|menu.Add(`"File`", THISBACK(FileMenu));&] -[s7; -|menu.Add(`"File2`",THISBACK1(FileMenu2,0);&] -[s0; &] -[s0; Here THISBACK macro expands to &] -[s0; &] -[s0; -|[* callback](this, `&HelloWorld`::FileMenu)&] -[s0; &] -[s0; [* callback] is an overloaded non member template function which -has overloads that allow the member function being called back -to have none, 1,2,3 or 4 arguments. Hence the FileMenu function -can have none, 1,2,3,or 4 parameters and the appropriate overload -of [* callback] will be selected. When the target called back -function is called (e.g. FileMenu), the actual arguments that -are passed to it are provided by the event dispatcher which knows -how many arguments it needs to pass for a particular event. -In the example above, the HelloWorld constructor calls the [* callback -]function which creates a Callback object (on the heap) containing -the identity of the target function (FileMenu) to be called. - The menu.Add function stores the address of the Callback object -which will be used to call the FileMenu function when an event -is triggered. There are several different Callback classes, -including the Callback1MethodAction class, which is used for -the above case. The Callback classes are functors and usually -have a member function named Execute that is called by the event -dispatching mechanism. For the Callback1MethodAction class, -the Execute member function takes one parameter (provided by -the event dispatcher) which is passed to the target callback -function FileMenu.&] -[s0; &] -[s0; There is also a THISBACK1 macro, which allows specification -of an additional value that is passed to the called back function -(e.g. FileMenu2) when an event is triggered.&] -[s0; &] -[s0; The THISBACK1 macro in the above example expands to &] -[s0; &] -[s0; -|[* callback1](this, `&HelloWorld`::FileMenu2, 0)&] -[s0; &] -[s0; The FileMenu2 function takes two parameters, the first of which -is supplied by the event dispatcher and the second comes from -the additional value 0 specified in the invocation of THISBACK1. - A possible use for this is to allow the target function to be -called from multiple places., each of which identifies itself -using the additional parameter. For the above example, the Callback -object involved is of type CallbackMethodActionArg1.and this -object stores the additional value (0 in this case) to be passed -to the FileMenu2 function when an event is triggered. If you -use the THISBACK1 macro with a member function that takes only -one argument then the Callback object is of type CallbackMethodActionArg.&] -[s0; &] -[s0; There is also a THISBACK2 macro which allows two additional -arguments. The member function used with THISBACK, can have -0,1,2,3 or 4 parameters. For THISBACK1, the member function -must have at least one parameter and for THISBACK2 the member -function can have 2,3 or 4 parameters.&] -[s0; &] -[s0; If the member function used in the THISBACK macros is overloaded -(e.g. FileMenu(int)) then the code won`'t compile. In this case -you have to use a forwarding member function that is not overloaded. -(You can`'t supply argument types when you take the address of -a member function. If the function is overloaded, the one that`'s -chosen depends on the target, but in this case the target is -also overloaded so it can`'t be resolved).&] -[s0; &] -[s0; In the above example, the Add member function of Bar is an overloaded -function and which Add function that is used depends on the return -value of the [* callback] function. For the FileMenu example above, -the return type of the [* callback] function is Callback1. -(In U`+`+, Callback classes start with upper case C and callback -functions have lower case c). &] +topic "About Callbacks and Bars"; +[2 $$0,0#00000000000000000000000000000000:Default] +[l288;i1120;a17;O9;~~~.1408;2 $$1,0#10431211400427159095818037425705:param] +[a83;*R6 $$2,5#31310162474203024125188417583966:caption] +[b83;*4 $$3,5#07864147445237544204411237157677:title] +[i288;O9;C2 $$4,6#40027414424643823182269349404212:item] +[b42;a42;2 $$5,5#45413000475342174754091244180557:text] +[l288;b17;a17;2 $$6,6#27521748481378242620020725143825:desc] +[l321;t246;C@5;1 $$7,7#20902679421464641399138805415013:code] +[b2503;2 $$8,0#65142375456100023862071332075487:separator] +[*@(0.0.255)2 $$9,0#83433469410354161042741608181528:base] +[t4167;C2 $$10,0#37138531426314131251341829483380:class] +[l288;a17;*1 $$11,11#70004532496200323422659154056402:requirement] +[i417;b42;a42;O9;~~~.416;2 $$12,12#10566046415157235020018451313112:tparam] +[b167;C2 $$13,13#92430459443460461911108080531343:item1] +[i288;a42;O9;C2 $$14,14#77422149456609303542238260500223:item2] +[*@2$(0.128.128)2 $$15,15#34511555403152284025741354420178:NewsDate] +[l321;*C$7;2 $$16,16#03451589433145915344929335295360:result] +[l321;b83;a83;*C$7;2 $$17,17#07531550463529505371228428965313:result`-line] +[l160;t4167;*C+117 $$18,5#88603949442205825958800053222425:package`-title] +[2 $$19,0#53580023442335529039900623488521:gap] +[t4167;C2 $$20,20#70211524482531209251820423858195:class`-nested] +[b50;2 $$21,21#03324558446220344731010354752573:Par] +[{_}%EN-US +[s2; About Callbacks and Bars&] +[s0; This article discusses callback types and function overloads +involved in Bar operations (MenuBar, ToolBar). The Bar class +is a base class of BarCtrl which is a base class of MenuBar and +ToolBar.&] +[s0; &] +[s0; The typical pattern you can see in U`+`+ code for handling Bars +looks like this:&] +[s0; &] +[s7; void HelloWorld`::About()&] +[s7; `{&] +[s7; -|...&] +[s7; `}&] +[s7; &] +[s7; void HelloWorld`::FileMenu(Bar`& bar)&] +[s7; `{&] +[s7; -|bar.Add(`"About..`", THISBACK(About));&] +[s7; -|bar.Separator();&] +[s7; -|bar.Add(`"Exit`", THISBACK(Close));&] +[s7; `}&] +[s7; &] +[s7; void HelloWorld`::FileMenu2(Bar`& bar, int val)&] +[s7; `{&] +[s7; -|bar.Add(`"About..`", THISBACK(About));&] +[s7; -|if (val `=`= 1)&] +[s7; -|`{&] +[s7; -|-|bar.Separator();&] +[s7; -|-|bar.Add(`"Exit`", THISBACK(Close));&] +[s7; -|`}&] +[s7; `}&] +[s7; &] +[s7; HelloWorld`::HelloWorld()&] +[s7; `{&] +[s7; -|menu.Add(`"File`", THISBACK(FileMenu));&] +[s7; -|menu.Add(`"File2`",THISBACK1(FileMenu2,0);&] +[s0; &] +[s0; Here THISBACK macro expands to &] +[s0; &] +[s0; -|[* callback](this, `&HelloWorld`::FileMenu)&] +[s0; &] +[s0; [* callback] is an overloaded non member template function which +has overloads that allow the member function being called back +to have none, 1,2,3 or 4 arguments. Hence the FileMenu function +can have none, 1,2,3,or 4 parameters and the appropriate overload +of [* callback] will be selected. When the target called back +function is called (e.g. FileMenu), the actual arguments that +are passed to it are provided by the event dispatcher which knows +how many arguments it needs to pass for a particular event. +In the example above, the HelloWorld constructor calls the [* callback +]function which creates a Callback object (on the heap) containing +the identity of the target function (FileMenu) to be called. + The menu.Add function stores the address of the Callback object +which will be used to call the FileMenu function when an event +is triggered. There are several different Callback classes, +including the Callback1MethodAction class, which is used for +the above case. The Callback classes are functors and usually +have a member function named Execute that is called by the event +dispatching mechanism. For the Callback1MethodAction class, +the Execute member function takes one parameter (provided by +the event dispatcher) which is passed to the target callback +function FileMenu.&] +[s0; &] +[s0; There is also a THISBACK1 macro, which allows specification +of an additional value that is passed to the called back function +(e.g. FileMenu2) when an event is triggered.&] +[s0; &] +[s0; The THISBACK1 macro in the above example expands to &] +[s0; &] +[s0; -|[* callback1](this, `&HelloWorld`::FileMenu2, 0)&] +[s0; &] +[s0; The FileMenu2 function takes two parameters, the first of which +is supplied by the event dispatcher and the second comes from +the additional value 0 specified in the invocation of THISBACK1. + A possible use for this is to allow the target function to be +called from multiple places., each of which identifies itself +using the additional parameter. For the above example, the Callback +object involved is of type CallbackMethodActionArg1.and this +object stores the additional value (0 in this case) to be passed +to the FileMenu2 function when an event is triggered. If you +use the THISBACK1 macro with a member function that takes only +one argument then the Callback object is of type CallbackMethodActionArg.&] +[s0; &] +[s0; There is also a THISBACK2 macro which allows two additional +arguments. The member function used with THISBACK, can have +0,1,2,3 or 4 parameters. For THISBACK1, the member function +must have at least one parameter and for THISBACK2 the member +function can have 2,3 or 4 parameters.&] +[s0; &] +[s0; If the member function used in the THISBACK macros is overloaded +(e.g. FileMenu(int)) then the code won`'t compile. In this case +you have to use a forwarding member function that is not overloaded. +(You can`'t supply argument types when you take the address of +a member function. If the function is overloaded, the one that`'s +chosen depends on the target, but in this case the target is +also overloaded so it can`'t be resolved).&] +[s0; &] +[s0; In the above example, the Add member function of Bar is an overloaded +function and which Add function that is used depends on the return +value of the [* callback] function. For the FileMenu example above, +the return type of the [* callback] function is Callback1. +(In U`+`+, Callback classes start with upper case C and callback +functions have lower case c). &] [s0; ]] \ No newline at end of file diff --git a/uppsrc/CtrlLib/srcdoc.tpp/RoundingDoubles$en-us.tpp b/uppsrc/CtrlLib/srcdoc.tpp/RoundingDoubles_en-us.tpp similarity index 98% rename from uppsrc/CtrlLib/srcdoc.tpp/RoundingDoubles$en-us.tpp rename to uppsrc/CtrlLib/srcdoc.tpp/RoundingDoubles_en-us.tpp index 1f1f8eef4..eb9a05d87 100644 --- a/uppsrc/CtrlLib/srcdoc.tpp/RoundingDoubles$en-us.tpp +++ b/uppsrc/CtrlLib/srcdoc.tpp/RoundingDoubles_en-us.tpp @@ -1,140 +1,140 @@ -TITLE("About rounding double values") -COMPRESSED -120,156,165,88,139,110,219,200,21,253,149,193,58,222,149,109, -90,153,23,95,82,11,108,234,56,133,129,54,27,36,187,192, -182,134,107,142,197,145,60,48,69,170,36,21,219,187,221,124, -123,207,29,82,15,63,148,71,43,195,182,68,206,125,157,123, -238,153,161,206,37,123,241,130,7,124,143,127,225,53,122,109, -167,102,89,180,23,231,133,76,146,177,139,185,30,27,17,143, -127,74,199,159,62,125,26,166,169,28,147,43,1,87,130,107, -37,164,16,154,115,45,99,17,166,60,13,19,145,112,21,107, -25,198,60,28,45,76,109,230,23,231,38,81,227,195,247,17, -172,100,16,238,41,161,4,23,145,212,88,197,21,151,90,200, -80,36,137,22,113,152,168,52,138,70,19,179,104,93,85,94, -156,95,145,29,172,20,172,120,156,68,90,192,70,135,82,197, -161,134,173,214,66,224,189,8,227,40,142,71,173,107,11,11, -27,17,197,99,163,229,248,132,178,212,65,180,135,236,100,12, -83,45,117,164,85,34,149,72,164,140,82,165,83,141,180,133, -28,185,214,34,201,43,216,144,29,153,133,8,168,67,45,20, -240,208,113,168,176,44,198,127,205,83,33,17,53,225,97,136, -128,246,110,5,18,225,67,118,17,194,201,56,164,213,137,78, -132,138,19,169,101,36,145,0,143,81,36,69,15,71,185,109, -38,176,83,82,140,91,164,52,62,249,49,28,11,24,199,65, -188,39,121,202,101,20,167,8,136,100,81,176,74,83,161,18, -4,212,34,228,66,141,38,85,78,69,202,144,171,49,108,18, -116,33,130,99,15,73,24,9,228,43,85,130,136,177,80,10, -127,67,157,196,163,198,82,31,218,170,190,56,63,252,113,192, -135,124,40,195,240,128,242,77,97,158,40,173,148,142,82,45, -184,66,20,248,208,4,87,196,209,73,17,202,100,116,101,26, -132,108,53,1,123,66,157,39,22,1,118,149,132,10,145,35, -252,65,71,81,158,2,50,50,213,137,82,9,31,77,10,211, -52,91,240,28,82,137,66,4,66,236,197,132,106,168,164,78, -9,26,37,1,175,140,194,84,0,223,48,210,92,142,106,251, -239,165,171,237,220,150,0,216,129,24,227,85,115,122,18,34, -151,142,132,50,16,18,52,12,163,136,19,90,33,184,32,85, -8,184,185,72,52,50,194,15,26,220,246,60,244,220,240,188, -16,42,16,106,47,149,90,33,147,84,107,0,0,7,34,21, -66,240,4,63,168,12,176,120,102,8,164,224,139,232,194,119, -230,58,16,122,47,6,129,209,167,84,83,248,84,17,124,18, -232,203,136,135,104,131,236,204,37,129,46,95,0,118,33,19, -250,61,32,251,48,16,24,4,100,40,194,16,101,43,0,45, -19,148,30,2,121,229,201,45,226,100,244,214,222,54,175,77, -107,123,182,28,158,188,232,104,38,162,64,68,123,156,236,195, -36,69,251,132,38,248,148,214,169,76,149,10,101,26,170,136, -3,198,166,155,99,50,166,89,242,115,184,118,18,7,34,198, -88,161,212,48,68,241,222,12,133,199,130,82,145,73,26,17, -8,189,147,236,184,112,37,229,1,94,140,59,42,28,158,28, -9,17,147,163,4,211,146,36,17,87,41,176,0,4,60,4, -205,161,4,9,250,140,54,75,204,0,73,193,228,198,204,108, -118,220,207,233,239,151,127,236,159,190,61,254,229,3,59,111, -228,152,189,186,170,150,45,171,171,101,153,187,114,198,242,106, -121,85,88,246,209,20,75,219,124,127,113,222,240,49,251,208, -154,50,55,117,206,78,216,220,180,215,172,112,87,181,169,239, -89,110,167,200,173,97,237,109,181,113,48,93,150,19,18,145, -102,212,91,247,255,166,69,85,213,44,59,238,86,194,168,98, -237,181,101,165,53,40,180,101,101,85,102,199,179,218,2,244, -154,214,154,150,221,186,246,154,114,203,237,196,205,77,193,114, -55,115,109,19,48,55,180,195,103,124,15,178,99,57,68,147, -179,63,111,125,214,254,115,118,172,130,254,226,246,130,100,40, -31,124,234,238,37,15,125,79,172,43,190,144,118,81,221,254, -15,73,147,227,173,156,215,31,87,41,203,160,187,182,202,178, -255,176,181,58,245,111,211,135,110,207,74,102,242,220,81,11, -250,100,27,203,154,85,7,215,221,9,216,47,217,81,118,180, -238,225,192,149,236,164,170,237,203,101,235,138,225,245,1,51, -108,106,111,89,53,101,72,159,85,183,229,118,59,227,49,59, -223,231,252,152,115,230,202,150,77,61,54,131,158,58,119,7, -227,139,231,22,117,40,127,97,145,175,235,209,154,77,109,63, -251,98,38,213,252,10,57,111,40,55,120,212,20,120,178,51, -91,7,159,227,216,243,55,187,78,174,237,113,99,97,129,215, -71,91,220,31,248,214,178,182,6,130,198,163,11,108,186,158, -195,83,111,50,220,13,146,43,170,153,224,171,218,242,167,245, -247,119,220,162,186,197,58,111,178,115,81,89,213,32,151,251, -205,174,253,5,20,36,251,158,217,187,69,85,66,190,119,96, -183,238,63,155,152,146,93,89,182,108,108,78,5,204,77,233, -22,203,2,208,120,84,170,58,7,16,115,51,43,93,187,204, -237,186,214,102,216,23,2,108,218,101,13,63,180,186,195,116, -131,60,115,172,89,78,0,214,53,208,17,60,251,151,99,127, -2,83,41,73,95,29,130,23,19,31,172,233,111,15,26,76, -77,145,83,70,181,197,13,15,57,155,154,166,13,24,124,20, -22,239,216,20,2,130,72,77,85,26,170,121,85,106,115,16, -108,0,65,131,76,217,96,229,188,33,10,251,254,228,171,94, -211,101,170,180,117,77,99,88,118,232,131,175,220,4,236,246, -218,214,118,115,127,64,38,93,153,192,168,3,250,0,226,135, -164,49,44,116,179,177,115,151,29,79,138,138,64,164,218,107, -232,38,203,206,69,0,207,7,59,200,208,119,204,179,183,126, -216,191,94,45,118,182,221,143,208,55,218,208,68,125,214,100, -55,69,124,138,108,134,94,148,27,166,251,126,251,75,229,114, -126,133,94,131,26,217,101,118,137,202,93,78,111,122,239,80, -20,72,222,186,155,126,72,112,117,77,169,131,71,114,248,170, -40,8,86,83,20,65,135,173,155,47,138,173,33,191,175,150, -12,147,202,76,115,227,183,25,112,193,129,197,203,186,70,239, -192,149,178,106,217,2,3,235,59,121,5,5,118,109,246,67, -179,205,38,48,231,222,167,65,142,231,126,157,29,206,134,143, -246,169,94,203,64,169,173,189,33,103,47,87,131,73,151,143, -24,31,134,7,68,160,245,197,135,78,254,130,248,72,184,6, -71,141,47,99,208,113,107,85,196,178,161,26,60,191,30,239, -155,157,154,64,191,59,58,99,74,45,212,156,77,157,45,114, -16,29,53,55,80,232,130,53,213,220,182,215,100,105,216,149, -163,158,78,167,182,238,121,108,218,117,168,220,206,209,75,76, -69,75,107,125,22,240,65,147,96,218,182,51,255,108,111,187, -110,14,217,217,212,187,4,28,55,196,161,170,219,45,222,120, -63,195,235,128,110,102,63,32,47,108,39,121,63,108,5,228, -116,231,145,96,139,169,22,209,30,179,55,251,253,241,149,227, -255,188,121,157,93,126,56,251,235,91,70,47,244,134,223,113, -76,218,203,151,32,205,173,185,111,168,253,11,139,232,141,155, -149,108,144,29,97,6,159,119,242,254,244,111,108,203,137,244, -78,214,76,93,109,221,139,194,76,104,103,244,204,94,205,204, -238,172,178,203,211,95,223,245,30,245,206,180,0,220,74,112, -216,64,216,236,72,238,112,121,242,234,29,60,110,146,76,188, -75,60,161,185,22,185,157,250,1,216,242,116,186,179,216,127, -158,190,255,105,83,44,158,33,200,207,141,181,11,146,74,87, -80,131,126,179,117,133,66,5,30,79,112,114,220,225,231,205, -217,175,91,160,73,190,93,226,146,116,195,221,65,5,49,134, -221,238,56,232,168,241,186,147,205,231,93,18,96,27,151,250, -137,203,85,125,152,133,175,117,156,253,241,68,8,63,180,53, -21,185,122,109,155,191,246,77,125,86,29,187,247,211,194,204, -154,29,123,235,215,133,248,146,115,95,123,255,25,115,157,93, -34,138,191,246,77,81,222,184,187,175,10,244,77,78,79,239, -22,255,111,246,27,73,252,7,196,131,206,28,212,215,238,80, -138,81,88,216,218,239,201,166,152,87,216,224,77,121,15,117, -54,51,215,109,240,131,205,102,127,208,139,212,70,183,134,148, -42,196,11,71,219,26,226,133,199,145,7,168,223,5,171,137, -13,216,25,78,35,139,69,229,3,147,126,118,71,141,188,218, -210,80,236,54,174,48,53,229,228,117,251,239,247,239,73,152, -59,103,195,39,219,100,109,105,111,233,132,216,128,153,215,164, -149,254,187,147,94,218,79,161,217,189,49,59,107,217,181,161, -211,8,5,171,114,58,252,20,152,148,119,168,195,214,37,201, -181,195,89,169,177,109,179,62,164,244,210,220,116,189,161,81, -127,219,85,215,47,118,205,250,224,54,179,165,173,87,199,54, -250,102,100,137,97,129,226,116,91,225,250,164,234,143,186,94, -212,135,236,231,254,113,141,204,205,106,110,55,130,255,232,201, -197,15,34,246,201,231,181,123,83,40,12,241,254,233,49,132, -174,14,251,98,7,217,119,251,186,204,190,123,194,142,193,138, -30,166,104,170,21,71,216,28,91,12,169,84,247,56,131,156, -78,178,227,166,189,47,214,32,217,26,9,22,238,198,178,125, -61,195,161,149,237,171,105,183,251,147,249,126,185,89,71,144, -121,119,211,194,222,57,98,212,144,61,76,225,109,229,65,4, -198,125,178,100,98,38,132,39,14,15,125,239,128,207,73,85, -126,180,117,95,116,176,105,8,164,129,110,211,151,54,204,127, -7,99,253,54,187,77,133,46,146,98,23,255,5,245,137,37, +TITLE("About rounding double values") +COMPRESSED +120,156,165,88,139,110,219,200,21,253,149,193,58,222,149,109, +90,153,23,95,82,11,108,234,56,133,129,54,27,36,187,192, +182,134,107,142,197,145,60,48,69,170,36,21,219,187,221,124, +123,207,29,82,15,63,148,71,43,195,182,68,206,125,157,123, +238,153,161,206,37,123,241,130,7,124,143,127,225,53,122,109, +167,102,89,180,23,231,133,76,146,177,139,185,30,27,17,143, +127,74,199,159,62,125,26,166,169,28,147,43,1,87,130,107, +37,164,16,154,115,45,99,17,166,60,13,19,145,112,21,107, +25,198,60,28,45,76,109,230,23,231,38,81,227,195,247,17, +172,100,16,238,41,161,4,23,145,212,88,197,21,151,90,200, +80,36,137,22,113,152,168,52,138,70,19,179,104,93,85,94, +156,95,145,29,172,20,172,120,156,68,90,192,70,135,82,197, +161,134,173,214,66,224,189,8,227,40,142,71,173,107,11,11, +27,17,197,99,163,229,248,132,178,212,65,180,135,236,100,12, +83,45,117,164,85,34,149,72,164,140,82,165,83,141,180,133, +28,185,214,34,201,43,216,144,29,153,133,8,168,67,45,20, +240,208,113,168,176,44,198,127,205,83,33,17,53,225,97,136, +128,246,110,5,18,225,67,118,17,194,201,56,164,213,137,78, +132,138,19,169,101,36,145,0,143,81,36,69,15,71,185,109, +38,176,83,82,140,91,164,52,62,249,49,28,11,24,199,65, +188,39,121,202,101,20,167,8,136,100,81,176,74,83,161,18, +4,212,34,228,66,141,38,85,78,69,202,144,171,49,108,18, +116,33,130,99,15,73,24,9,228,43,85,130,136,177,80,10, +127,67,157,196,163,198,82,31,218,170,190,56,63,252,113,192, +135,124,40,195,240,128,242,77,97,158,40,173,148,142,82,45, +184,66,20,248,208,4,87,196,209,73,17,202,100,116,101,26, +132,108,53,1,123,66,157,39,22,1,118,149,132,10,145,35, +252,65,71,81,158,2,50,50,213,137,82,9,31,77,10,211, +52,91,240,28,82,137,66,4,66,236,197,132,106,168,164,78, +9,26,37,1,175,140,194,84,0,223,48,210,92,142,106,251, +239,165,171,237,220,150,0,216,129,24,227,85,115,122,18,34, +151,142,132,50,16,18,52,12,163,136,19,90,33,184,32,85, +8,184,185,72,52,50,194,15,26,220,246,60,244,220,240,188, +16,42,16,106,47,149,90,33,147,84,107,0,0,7,34,21, +66,240,4,63,168,12,176,120,102,8,164,224,139,232,194,119, +230,58,16,122,47,6,129,209,167,84,83,248,84,17,124,18, +232,203,136,135,104,131,236,204,37,129,46,95,0,118,33,19, +250,61,32,251,48,16,24,4,100,40,194,16,101,43,0,45, +19,148,30,2,121,229,201,45,226,100,244,214,222,54,175,77, +107,123,182,28,158,188,232,104,38,162,64,68,123,156,236,195, +36,69,251,132,38,248,148,214,169,76,149,10,101,26,170,136, +3,198,166,155,99,50,166,89,242,115,184,118,18,7,34,198, +88,161,212,48,68,241,222,12,133,199,130,82,145,73,26,17, +8,189,147,236,184,112,37,229,1,94,140,59,42,28,158,28, +9,17,147,163,4,211,146,36,17,87,41,176,0,4,60,4, +205,161,4,9,250,140,54,75,204,0,73,193,228,198,204,108, +118,220,207,233,239,151,127,236,159,190,61,254,229,3,59,111, +228,152,189,186,170,150,45,171,171,101,153,187,114,198,242,106, +121,85,88,246,209,20,75,219,124,127,113,222,240,49,251,208, +154,50,55,117,206,78,216,220,180,215,172,112,87,181,169,239, +89,110,167,200,173,97,237,109,181,113,48,93,150,19,18,145, +102,212,91,247,255,166,69,85,213,44,59,238,86,194,168,98, +237,181,101,165,53,40,180,101,101,85,102,199,179,218,2,244, +154,214,154,150,221,186,246,154,114,203,237,196,205,77,193,114, +55,115,109,19,48,55,180,195,103,124,15,178,99,57,68,147, +179,63,111,125,214,254,115,118,172,130,254,226,246,130,100,40, +31,124,234,238,37,15,125,79,172,43,190,144,118,81,221,254, +15,73,147,227,173,156,215,31,87,41,203,160,187,182,202,178, +255,176,181,58,245,111,211,135,110,207,74,102,242,220,81,11, +250,100,27,203,154,85,7,215,221,9,216,47,217,81,118,180, +238,225,192,149,236,164,170,237,203,101,235,138,225,245,1,51, +108,106,111,89,53,101,72,159,85,183,229,118,59,227,49,59, +223,231,252,152,115,230,202,150,77,61,54,131,158,58,119,7, +227,139,231,22,117,40,127,97,145,175,235,209,154,77,109,63, +251,98,38,213,252,10,57,111,40,55,120,212,20,120,178,51, +91,7,159,227,216,243,55,187,78,174,237,113,99,97,129,215, +71,91,220,31,248,214,178,182,6,130,198,163,11,108,186,158, +195,83,111,50,220,13,146,43,170,153,224,171,218,242,167,245, +247,119,220,162,186,197,58,111,178,115,81,89,213,32,151,251, +205,174,253,5,20,36,251,158,217,187,69,85,66,190,119,96, +183,238,63,155,152,146,93,89,182,108,108,78,5,204,77,233, +22,203,2,208,120,84,170,58,7,16,115,51,43,93,187,204, +237,186,214,102,216,23,2,108,218,101,13,63,180,186,195,116, +131,60,115,172,89,78,0,214,53,208,17,60,251,151,99,127, +2,83,41,73,95,29,130,23,19,31,172,233,111,15,26,76, +77,145,83,70,181,197,13,15,57,155,154,166,13,24,124,20, +22,239,216,20,2,130,72,77,85,26,170,121,85,106,115,16, +108,0,65,131,76,217,96,229,188,33,10,251,254,228,171,94, +211,101,170,180,117,77,99,88,118,232,131,175,220,4,236,246, +218,214,118,115,127,64,38,93,153,192,168,3,250,0,226,135, +164,49,44,116,179,177,115,151,29,79,138,138,64,164,218,107, +232,38,203,206,69,0,207,7,59,200,208,119,204,179,183,126, +216,191,94,45,118,182,221,143,208,55,218,208,68,125,214,100, +55,69,124,138,108,134,94,148,27,166,251,126,251,75,229,114, +126,133,94,131,26,217,101,118,137,202,93,78,111,122,239,80, +20,72,222,186,155,126,72,112,117,77,169,131,71,114,248,170, +40,8,86,83,20,65,135,173,155,47,138,173,33,191,175,150, +12,147,202,76,115,227,183,25,112,193,129,197,203,186,70,239, +192,149,178,106,217,2,3,235,59,121,5,5,118,109,246,67, +179,205,38,48,231,222,167,65,142,231,126,157,29,206,134,143, +246,169,94,203,64,169,173,189,33,103,47,87,131,73,151,143, +24,31,134,7,68,160,245,197,135,78,254,130,248,72,184,6, +71,141,47,99,208,113,107,85,196,178,161,26,60,191,30,239, +155,157,154,64,191,59,58,99,74,45,212,156,77,157,45,114, +16,29,53,55,80,232,130,53,213,220,182,215,100,105,216,149, +163,158,78,167,182,238,121,108,218,117,168,220,206,209,75,76, +69,75,107,125,22,240,65,147,96,218,182,51,255,108,111,187, +110,14,217,217,212,187,4,28,55,196,161,170,219,45,222,120, +63,195,235,128,110,102,63,32,47,108,39,121,63,108,5,228, +116,231,145,96,139,169,22,209,30,179,55,251,253,241,149,227, +255,188,121,157,93,126,56,251,235,91,70,47,244,134,223,113, +76,218,203,151,32,205,173,185,111,168,253,11,139,232,141,155, +149,108,144,29,97,6,159,119,242,254,244,111,108,203,137,244, +78,214,76,93,109,221,139,194,76,104,103,244,204,94,205,204, +238,172,178,203,211,95,223,245,30,245,206,180,0,220,74,112, +216,64,216,236,72,238,112,121,242,234,29,60,110,146,76,188, +75,60,161,185,22,185,157,250,1,216,242,116,186,179,216,127, +158,190,255,105,83,44,158,33,200,207,141,181,11,146,74,87, +80,131,126,179,117,133,66,5,30,79,112,114,220,225,231,205, +217,175,91,160,73,190,93,226,146,116,195,221,65,5,49,134, +221,238,56,232,168,241,186,147,205,231,93,18,96,27,151,250, +137,203,85,125,152,133,175,117,156,253,241,68,8,63,180,53, +21,185,122,109,155,191,246,77,125,86,29,187,247,211,194,204, +154,29,123,235,215,133,248,146,115,95,123,255,25,115,157,93, +34,138,191,246,77,81,222,184,187,175,10,244,77,78,79,239, +22,255,111,246,27,73,252,7,196,131,206,28,212,215,238,80, +138,81,88,216,218,239,201,166,152,87,216,224,77,121,15,117, +54,51,215,109,240,131,205,102,127,208,139,212,70,183,134,148, +42,196,11,71,219,26,226,133,199,145,7,168,223,5,171,137, +13,216,25,78,35,139,69,229,3,147,126,118,71,141,188,218, +210,80,236,54,174,48,53,229,228,117,251,239,247,239,73,152, +59,103,195,39,219,100,109,105,111,233,132,216,128,153,215,164, +149,254,187,147,94,218,79,161,217,189,49,59,107,217,181,161, +211,8,5,171,114,58,252,20,152,148,119,168,195,214,37,201, +181,195,89,169,177,109,179,62,164,244,210,220,116,189,161,81, +127,219,85,215,47,118,205,250,224,54,179,165,173,87,199,54, +250,102,100,137,97,129,226,116,91,225,250,164,234,143,186,94, +212,135,236,231,254,113,141,204,205,106,110,55,130,255,232,201, +197,15,34,246,201,231,181,123,83,40,12,241,254,233,49,132, +174,14,251,98,7,217,119,251,186,204,190,123,194,142,193,138, +30,166,104,170,21,71,216,28,91,12,169,84,247,56,131,156, +78,178,227,166,189,47,214,32,217,26,9,22,238,198,178,125, +61,195,161,149,237,171,105,183,251,147,249,126,185,89,71,144, +121,119,211,194,222,57,98,212,144,61,76,225,109,229,65,4, +198,125,178,100,98,38,132,39,14,15,125,239,128,207,73,85, +126,180,117,95,116,176,105,8,164,129,110,211,151,54,204,127, +7,99,253,54,187,77,133,46,146,98,23,255,5,245,137,37, 33, \ No newline at end of file diff --git a/uppsrc/CtrlLib/srcdoc.tpp/Tips$en-us.tpp b/uppsrc/CtrlLib/srcdoc.tpp/Tips_en-us.tpp similarity index 99% rename from uppsrc/CtrlLib/srcdoc.tpp/Tips$en-us.tpp rename to uppsrc/CtrlLib/srcdoc.tpp/Tips_en-us.tpp index 407ef47ae..12fc259b5 100644 --- a/uppsrc/CtrlLib/srcdoc.tpp/Tips$en-us.tpp +++ b/uppsrc/CtrlLib/srcdoc.tpp/Tips_en-us.tpp @@ -1,7 +1,7 @@ -TITLE("Tips & tricks") -COMPRESSED -120,156,133,84,93,111,227,70,12,252,43,11,56,61,180,169,18,44,201,229,126,72,47,87,228,10,244,233,174,232,7,250,96,24,141,108,239,37,106,20,217,149,100,164,65,209,251,237,157,149,125,45,250,84,27,118,12,133,67,14,135,67,174,217,92,93,217,202,174,236,255,188,234,119,249,99,123,234,231,205,186,231,24,155,142,136,109,211,82,104,62,164,230,211,167,79,183,228,108,108,74,50,66,50,178,78,136,9,207,172,227,64,154,108,210,72,209,74,112,172,193,106,125,108,199,246,121,179,110,163,52,215,63,120,160,184,210,149,144,144,37,207,14,81,86,44,59,98,165,24,29,5,141,146,188,175,119,237,113,238,14,195,102,189,45,56,7,152,0,102,67,244,142,0,114,202,18,212,1,236,28,232,9,10,7,31,66,61,119,115,159,55,235,174,240,6,219,187,194,210,85,126,5,118,28,128,116,236,188,147,200,66,145,217,39,113,201,129,54,113,221,205,25,36,183,142,155,22,159,2,83,212,115,234,72,160,136,11,42,8,11,248,235,108,34,70,209,104,85,81,47,255,241,89,166,45, -4,42,34,21,172,71,73,14,90,16,209,69,146,16,217,177,103,144,176,1,141,22,6,90,239,243,180,3,86,152,154,25,180,154,187,183,218,16,192,161,10,43,182,201,178,15,9,69,65,24,61,75,74,36,17,69,29,169,37,169,119,135,61,250,220,178,90,89,42,70,140,194,35,243,34,139,122,2,105,150,136,146,129,68,240,173,46,134,122,202,101,24,243,97,220,172,175,223,126,105,111,237,45,171,126,85,224,9,240,40,78,196,249,228,200,10,202,32,135,43,154,121,139,113,146,114,172,183,237,132,154,51,30,133,179,178,84,220,4,237,37,170,160,180,199,23,230,138,6,5,250,112,114,81,36,218,122,215,183,211,116,17,169,8,116,93,154,36,170,136,86,161,104,171,194,46,21,113,132,33,50,123,77,4,149,213,59,203,245,152,127,63,117,99,126,206,3,100,238,96,143,230,243,136,46,94,4,153,179,21,185,34,134,25,213,123,91,244,82,24,130,69,33,184,165,232,192,8,111,140,121,190,184,113,251,111,15,82,145,172,18,59,1,147,228,28,20,64,2,74,68,100,35,222,232,12, -186,44,254,160,139,177,46,229,207,112,87,145,91,5,216,24,147,74,174,148,79,82,244,99,200,207,222,42,230,192,103,56,23,213,249,10,186,19,199,242,89,148,39,173,8,251,0,138,164,138,190,5,82,115,68,239,10,237,101,177,56,133,88,191,207,47,211,187,118,206,23,195,92,223,93,157,157,70,190,34,191,178,5,175,49,97,128,228,138,126,226,92,226,36,162,156,84,188,133,142,211,121,161,11,184,172,212,178,142,255,36,9,21,5,44,23,122,85,69,247,11,12,157,7,42,84,56,38,95,84,184,36,185,191,233,187,161,240,128,51,154,179,25,174,239,190,38,10,37,81,196,210,196,232,173,36,136,1,13,172,194,233,56,8,17,131,198,156,25,107,80,46,194,238,169,125,200,247,55,151,109,93,40,20,7,170,104,44,190,5,18,212,65,2,121,146,181,30,79,98,196,54,213,15,237,241,63,6,100,91,177,133,139,112,127,20,75,137,90,176,159,77,229,150,224,50,96,2,56,69,73,207,14,188,191,25,242,52,231,61,134,175,118,105,155,169,98,130,118,240,159,106,116,206,131,47, -106,135,114,154,202,8,177,192,26,164,254,190,197,190,252,249,235,95,95,124,251,254,230,231,31,205,122,226,198,252,212,29,39,115,255,198,204,99,183,123,154,222,108,214,147,197,157,68,222,15,130,127,30,204,148,231,211,209,236,207,119,212,244,237,235,225,52,155,195,71,243,205,56,182,175,119,243,216,155,199,220,238,243,88,153,118,255,219,105,154,77,55,155,151,199,174,207,102,126,204,166,61,30,251,110,215,150,3,104,186,201,140,167,97,232,134,7,211,13,200,184,61,61,152,103,44,191,105,135,125,9,30,204,14,177,79,6,161,223,45,41,151,236,47,221,252,184,164,234,243,199,25,241,167,41,155,237,105,158,17,85,112,75,204,83,126,53,71,204,116,202,123,115,127,131,159,135,99,30,205,221,161,63,61,15,191,116,251,249,113,42,13,116,67,183,240,120,233,250,222,108,179,153,112,62,0,152,15,75,122,212,62,110,15,237,184,95,210,238,218,225,76,9,113,199,182,136,13,206,136,68,247,163,41,23,235,118,243,55,116,23,170,232, - +TITLE("Tips & tricks") +COMPRESSED +120,156,133,84,93,111,227,70,12,252,43,11,56,61,180,169,18,44,201,229,126,72,47,87,228,10,244,233,174,232,7,250,96,24,141,108,239,37,106,20,217,149,100,164,65,209,251,237,157,149,125,45,250,84,27,118,12,133,67,14,135,67,174,217,92,93,217,202,174,236,255,188,234,119,249,99,123,234,231,205,186,231,24,155,142,136,109,211,82,104,62,164,230,211,167,79,183,228,108,108,74,50,66,50,178,78,136,9,207,172,227,64,154,108,210,72,209,74,112,172,193,106,125,108,199,246,121,179,110,163,52,215,63,120,160,184,210,149,144,144,37,207,14,81,86,44,59,98,165,24,29,5,141,146,188,175,119,237,113,238,14,195,102,189,45,56,7,152,0,102,67,244,142,0,114,202,18,212,1,236,28,232,9,10,7,31,66,61,119,115,159,55,235,174,240,6,219,187,194,210,85,126,5,118,28,128,116,236,188,147,200,66,145,217,39,113,201,129,54,113,221,205,25,36,183,142,155,22,159,2,83,212,115,234,72,160,136,11,42,8,11,248,235,108,34,70,209,104,85,81,47,255,241,89,166,45, +4,42,34,21,172,71,73,14,90,16,209,69,146,16,217,177,103,144,176,1,141,22,6,90,239,243,180,3,86,152,154,25,180,154,187,183,218,16,192,161,10,43,182,201,178,15,9,69,65,24,61,75,74,36,17,69,29,169,37,169,119,135,61,250,220,178,90,89,42,70,140,194,35,243,34,139,122,2,105,150,136,146,129,68,240,173,46,134,122,202,101,24,243,97,220,172,175,223,126,105,111,237,45,171,126,85,224,9,240,40,78,196,249,228,200,10,202,32,135,43,154,121,139,113,146,114,172,183,237,132,154,51,30,133,179,178,84,220,4,237,37,170,160,180,199,23,230,138,6,5,250,112,114,81,36,218,122,215,183,211,116,17,169,8,116,93,154,36,170,136,86,161,104,171,194,46,21,113,132,33,50,123,77,4,149,213,59,203,245,152,127,63,117,99,126,206,3,100,238,96,143,230,243,136,46,94,4,153,179,21,185,34,134,25,213,123,91,244,82,24,130,69,33,184,165,232,192,8,111,140,121,190,184,113,251,111,15,82,145,172,18,59,1,147,228,28,20,64,2,74,68,100,35,222,232,12, +186,44,254,160,139,177,46,229,207,112,87,145,91,5,216,24,147,74,174,148,79,82,244,99,200,207,222,42,230,192,103,56,23,213,249,10,186,19,199,242,89,148,39,173,8,251,0,138,164,138,190,5,82,115,68,239,10,237,101,177,56,133,88,191,207,47,211,187,118,206,23,195,92,223,93,157,157,70,190,34,191,178,5,175,49,97,128,228,138,126,226,92,226,36,162,156,84,188,133,142,211,121,161,11,184,172,212,178,142,255,36,9,21,5,44,23,122,85,69,247,11,12,157,7,42,84,56,38,95,84,184,36,185,191,233,187,161,240,128,51,154,179,25,174,239,190,38,10,37,81,196,210,196,232,173,36,136,1,13,172,194,233,56,8,17,131,198,156,25,107,80,46,194,238,169,125,200,247,55,151,109,93,40,20,7,170,104,44,190,5,18,212,65,2,121,146,181,30,79,98,196,54,213,15,237,241,63,6,100,91,177,133,139,112,127,20,75,137,90,176,159,77,229,150,224,50,96,2,56,69,73,207,14,188,191,25,242,52,231,61,134,175,118,105,155,169,98,130,118,240,159,106,116,206,131,47, +106,135,114,154,202,8,177,192,26,164,254,190,197,190,252,249,235,95,95,124,251,254,230,231,31,205,122,226,198,252,212,29,39,115,255,198,204,99,183,123,154,222,108,214,147,197,157,68,222,15,130,127,30,204,148,231,211,209,236,207,119,212,244,237,235,225,52,155,195,71,243,205,56,182,175,119,243,216,155,199,220,238,243,88,153,118,255,219,105,154,77,55,155,151,199,174,207,102,126,204,166,61,30,251,110,215,150,3,104,186,201,140,167,97,232,134,7,211,13,200,184,61,61,152,103,44,191,105,135,125,9,30,204,14,177,79,6,161,223,45,41,151,236,47,221,252,184,164,234,243,199,25,241,167,41,155,237,105,158,17,85,112,75,204,83,126,53,71,204,116,202,123,115,127,131,159,135,99,30,205,221,161,63,61,15,191,116,251,249,113,42,13,116,67,183,240,120,233,250,222,108,179,153,112,62,0,152,15,75,122,212,62,110,15,237,184,95,210,238,218,225,76,9,113,199,182,136,13,206,136,68,247,163,41,23,235,118,243,55,116,23,170,232, + diff --git a/uppsrc/CtrlLib/srcdoc.tpp/Tutorial$en-us.tpp b/uppsrc/CtrlLib/srcdoc.tpp/Tutorial_en-us.tpp similarity index 99% rename from uppsrc/CtrlLib/srcdoc.tpp/Tutorial$en-us.tpp rename to uppsrc/CtrlLib/srcdoc.tpp/Tutorial_en-us.tpp index 19b77c5dd..643af7240 100644 --- a/uppsrc/CtrlLib/srcdoc.tpp/Tutorial$en-us.tpp +++ b/uppsrc/CtrlLib/srcdoc.tpp/Tutorial_en-us.tpp @@ -1,1297 +1,1297 @@ -topic "GUI Tutorial"; -[2 $$0,0#00000000000000000000000000000000:Default] -[l288;i1120;a17;O9;~~~.1408;2 $$1,0#10431211400427159095818037425705:param] -[a83;*R6 $$2,5#31310162474203024125188417583966:caption] -[H4;b83;*4 $$3,5#07864147445237544204411237157677:title] -[i288;O9;C2 $$4,6#40027414424643823182269349404212:item] -[b42;a42;ph2 $$5,5#45413000475342174754091244180557:text] -[l288;b17;a17;2 $$6,6#27521748481378242620020725143825:desc] -[l321;C@5;1 $$7,7#20902679421464641399138805415013:code] -[b2503;2 $$8,0#65142375456100023862071332075487:separator] -[*@(0.0.255)2 $$9,0#83433469410354161042741608181528:base] -[C2 $$10,0#37138531426314131251341829483380:class] -[l288;a17;*1 $$11,11#70004532496200323422659154056402:requirement] -[i417;b42;a42;O9;~~~.416;2 $$12,12#10566046415157235020018451313112:tparam] -[b167;C2 $$13,13#92430459443460461911108080531343:item1] -[i288;a42;O9;C2 $$14,14#77422149456609303542238260500223:item2] -[*@2$(0.128.128)2 $$15,15#34511555403152284025741354420178:NewsDate] -[l321;*C$7;2 $$16,16#03451589433145915344929335295360:result] -[l321;b83;a83;*C$7;2 $$17,17#07531550463529505371228428965313:result`-line] -[l160;*C+117 $$18,5#88603949442205825958800053222425:package`-title] -[2 $$19,0#53580023442335529039900623488521:gap] -[C2 $$20,20#70211524482531209251820423858195:class`-nested] -[b50;2 $$21,21#03324558446220344731010354752573:Par] -[{_}%EN-US -[s2; GUI Tutorial&] -[s5;~~~2240; Welcome in GUI Tutorial! Here you will learn how to -write GUI applications using U`+`+ library. All code mentions -in this tutorial is multi platform. It means it works exactly -the same on different operating system. Moreover, examples attached -in this tutorial are bundle with U`+`+ standard distribution -and they are localized in [* tutorial] assembly. So, you don`'t -need to rewrite it by yourself. Good luck!&] -[s3; Table of contents&] -[s0; &] -[s0; [^topic`:`/`/CtrlLib`/srcdoc`/Tutorial`$en`-us`#1^ 1. GUI application -main function]&] -[s0; [^topic`:`/`/CtrlLib`/srcdoc`/Tutorial`$en`-us`#2^ 2. Application -window]&] -[s0; [^topic`:`/`/CtrlLib`/srcdoc`/Tutorial`$en`-us`#3^ 3. Modifying -TopWindow properties]&] -[s0; [^topic`:`/`/CtrlLib`/srcdoc`/Tutorial`$en`-us`#4^ 4. Painting -the view area]&] -[s0; [^topic`:`/`/CtrlLib`/srcdoc`/Tutorial`$en`-us`#5^ 5. Reacting -to input events]&] -[s0; [^topic`:`/`/CtrlLib`/srcdoc`/Tutorial`$en`-us`#6^ 6. Multiple -main windows]&] -[s0; [^topic`:`/`/CtrlLib`/srcdoc`/Tutorial`$en`-us`#7^ 7. Menu]&] -[s0; [^topic`:`/`/CtrlLib`/srcdoc`/Tutorial`$en`-us`#8^ 8. Context -menu]&] -[s0; [^topic`:`/`/CtrlLib`/srcdoc`/Tutorial`$en`-us`#9^ 9. Context -menu alternative]&] -[s0; [^topic`:`/`/CtrlLib`/srcdoc`/Tutorial`$en`-us`#10^ 10. Adding -images]&] -[s0; [^topic`:`/`/CtrlLib`/srcdoc`/Tutorial`$en`-us`#11^ 11. Toolbar]&] -[s0; [^topic`:`/`/CtrlLib`/srcdoc`/Tutorial`$en`-us`#12^ 12. StatusBar -and decorative Frames]&] -[s0; [^topic`:`/`/CtrlLib`/srcdoc`/Tutorial`$en`-us`#13^ 13. Adding -child Ctrls `- widgets, reacting to widget events]&] -[s0; [^topic`:`/`/CtrlLib`/srcdoc`/Tutorial`$en`-us`#14^ 14. More about -logical coordinates]&] -[s0; [^topic`:`/`/CtrlLib`/srcdoc`/Tutorial`$en`-us`#15^ 15. Font`-zoomed -logical coordinates]&] -[s0; [^topic`:`/`/CtrlLib`/srcdoc`/Tutorial`$en`-us`#16^ 16. Layouts]&] -[s0; [^topic`:`/`/CtrlLib`/srcdoc`/Tutorial`$en`-us`#17^ 17. Value -of widget]&] -[s0; [^topic`:`/`/CtrlLib`/srcdoc`/Tutorial`$en`-us`#18^ 18. Accepting -and rejecting widgets]&] -[s0; [^topic`:`/`/CtrlLib`/srcdoc`/Tutorial`$en`-us`#19^ 19. Widget -edit status flags]&] -[s0; [^topic`:`/`/CtrlLib`/srcdoc`/Tutorial`$en`-us`#20^ 20. Breaking -the modal loop]&] -[s0; [^topic`:`/`/CtrlLib`/srcdoc`/Tutorial`$en`-us`#21^ 21. Creating -and using custom widgets]&] -[s0; [^topic`:`/`/CtrlLib`/srcdoc`/Tutorial`$en`-us`#22^ 22. Non`-modal -dialogs]&] -[s0; &] -[s3;:1: 1. GUI application main function&] -[s5; To hide platform specific differences, U`+`+ GUI application -main function is defined using [* GUI`_APP`_MAIN] macro:&] -[s5; &] -[s7; #include &] -[s7; &] -[s7; using namespace Upp;&] -[s7; &] -[s7; [* GUI`_APP`_MAIN] `{&] -[s7; -|PromptOK(`"Hello world`");&] -[s7; `}&] -[s5; &] -[s0;= -@@rawimage:1068&818 -(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) -&] -[s5; &] -[s5; Please notice that [* PromptOK] function display simply information -dialog with the given parameter in this case it is `"Hello world`". -Of course, in the [* CtrlLib ]package, there are more similar library -calls. For example `- if you want to display an error you can -use [* ErrorOK ]and for warnings it is corresponding [* Exclamation -]function.&] -[s5; To use U`+`+ GUI related code, all you need to do is include -[*/ ] header. Please also make sure that [* CtrlLib -]package is attached to your current project.&] -[s5; &] -[s3;:2: 2. Application window&] -[s5; Application top`-level windows are of [* TopWindow] class. You -can run modal event loop for [* TopWindow] using the [* Run] or [* Execute] -methods. Both methods open the window if it is not yet open (you -can also open it using [* Open] or [* OpenMain]). Unlike [* Run], [* Execute] -also closes the window at the end of modal loop. [* TopWindow] -is also closed by destructor.&] -[s5; &] -[s7; #include &] -[s7; &] -[s7; using namespace Upp;&] -[s7; &] -[s7; GUI`_APP`_MAIN `{&] -[s7; -|[* TopWindow] w;&] -[s7; -|w.[* Run]();&] -[s7; `}&] -[s5; &] -[s0;= -@@rawimage:2692&1419 -(iVBORw0KGgoAAAANSUhEUgAABZwAAAL1CAIAAADM6bbjAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAASdEVYdFNvZnR3YXJlAEdyZWVuc2hvdF5VCAUAABQvSURBVHhe7dixTcNQGEZRNwjWSMlYrJBFGCJVdqHMIIzAixKleLhw93Slc/TJsn57grt93a5mZmZmZmZmZrndo8bnz7eZmZmZmZmZWWiihpmZmZmZmZklJ2qYmZmZmZmZWXKihpmZmZmZmZklJ2qYmZmZmZmZWXKihpmZmZmZmZklJ2qYmZmZmZmZWXKihpmZmZmZmZkt27Ztp8t5Oo6N4/g0HaeJGmZmZmZmZma2bKfL+e39Y+oau8f/EzXMzMzMzMzMbOWmhHGwaIyJGmZmZmZmZma2eK+QcbxojIkaZmZmZmZmZrZ+j5xxvGiMiRpmZmZmZmZmtn6ihpmZmZmZmZn19iga4/l6mX7YnahhZmZmZmZmZis3hYzjXUPUMDMzMzMzM7Nl200YB7uGqGFmZmZmZmZmy7Zt2268GMfxaTpOEzXMzMzMzMzMLDlRw8zMzMzMzMySEzXMzMzMzMzMLDlRw8zMzMzMzMySEzXMzMzMzMzMLDlRw8zMzMzMzMySEzXMzMzMzMzMLDlRw8zMzMzMzMySe0aNXwAAAIAUUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASHpGDTMzMzMzMzOz2G7XP5Xgc+rKo3uvAAAAAElFTkSuQmCC) -&] -[s5; &] -[s3;:3: 3. Modifying TopWindow properties&] -[s5; You can modify properties and behaviour of [* TopWindow] using -`"modifier`" methods. Note that modifiers usually return `*this -as return value, which results in simplified syntax. You can -also setup the size of [* TopWindow] using [* SetRect] (note that -unless instructed otherwise, U`+`+ will center the position of -window).&] -[s5; &] -[s7; #include &] -[s7; &] -[s7; using namespace Upp;&] -[s7; &] -[s7; GUI`_APP`_MAIN&] -[s7; `{&] -[s7; -|TopWindow w;&] -[s7; -|w.[* Title](`"My application`").[* MinimizeBox]().[* Sizeable]();&] -[s7; -|w.[* SetRect](0, 0, 200, 300);&] -[s7; -|w.Run();&] -[s7; `}&] -[s5; &] -[s0;= -@@rawimage:2000&1085 -(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) -&] -[s5; &] -[s3;:4: 4. Painting the view area&] -[s5; In order to display something inside [* TopWindow] view area, -you have to create derived class and override [* Paint] method:&] -[s5; &] -[s7; #include &] -[s7; &] -[s7; using namespace Upp;&] -[s7; &] -[s7; struct MyAppWindow : TopWindow `{&] -[s7; [* -|virtual void Paint(Draw`& w) `{]&] -[s7; [* -|-|w.DrawRect(GetSize(), SWhite);]&] -[s7; [* -|-|w.DrawText(20, 20, `"Hello world!`", Arial(30), Magenta);]&] -[s7; [* -|`}]&] -[s7; -|&] -[s7; -|MyAppWindow() `{&] -[s7; -|-|Title(`"My application`").Zoomable().Sizeable();&] -[s7; -|`}&] -[s7; `};&] -[s7; &] -[s7; GUI`_APP`_MAIN&] -[s7; `{&] -[s7; -|MyAppWindow app;&] -[s7; -|app.SetRect(0, 0, 200, 100);&] -[s7; -|app.Run();&] -[s7; `}&] -[s5; &] -[s0;= -@@rawimage:1426&573 -(iVBORw0KGgoAAAANSUhEUgAAAUYAAACDCAIAAAB+5yUUAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAASdEVYdFNvZnR3YXJlAEdyZWVuc2hvdF5VCAUAAAl+SURBVHhe7Zrbbx1HHcf9gkB58lueKplIRelL3p3/AEVc4pRLhCoEDxYghASReKAgCKhqGpOLm1ZpSgMkaUliNbFsRHOr48RRH0iD1JTEtEStCEggYTuOndIk7YOZ3Zmdszsze/WFPT8+H30VrefMzM7umc/O7FF6vnHjJCFETCKlH7u2jxAiIChNiKigNCGigtKEiApKEyIqKE2IqKA0IaJSovSW8b1fOjFUJVvG9jx2da/TnBCyxilRemR0/NpbN6+9dcPLzT9djzJ+bmr87GWV342c/szEU05zQsgap0Tp85emHjx8eP9BSVSdCxcvP3p2p9OckBampxCn8qpGne7Tx37gFKqowsYjKVH64tSVd/76j12HLz7zm4ndR14fevnCnuPnp6ffvzM3+/fbt1Xm5mZfHHtTJaj0xmuDvWpoA4NO+YYdfT09fetHM4UrmPi8Uf8bR7eua3Sixg1J+1NgyxorrdT9xCc/5VgdLKyeEqUnL19599Y/v7V3/NvPjn33hdPfO/zq94+OXL9+687sv9NKHz7zx3yl+9ZtyrhhPF8TpZ3y4jRrRbou7VFaxRF4mT6rlCh9/vVJpfRPjp77zguvPnHgt9ufP7T90HOx0jO3I/6mlD46deX4mxcLlO4d6Fu348lO4XB/z0D/qsqD0qQgrVJaxWq8fJ9VKim9bejwZ3cd+Ny+/V98/pfbXtylV2nls16lT/35zNhfxguUXj+q/u1/xJQ8uT5atHW5Ou7pHU4qK9U3bd2Qav7IgLrDMfHW3fQ2rLbEEfoxUVSoNt4pS+NTx5V6zEnT/cc1E8yfScNoE27QDc2nO/p1YfqBRdof9ZU5JTYFH61qtMzL91mlktJbhp79/PDerQeHHn/p6a8e/blepe3G++a/bqoUKh3JY2RQekTemvJ4xTZv2raOE9uJsS7W3r7r5hc6B5HPQff8yl5havCpQvOgUZeQPLBIcdQ9K8CpvHopONdaDiOdtVb6C8/t2XbomS//+qntx3Y+ceLHSum51Lv0wwf3VYqVTkw23maFiXyIDrJLdNQ8skVjK0cH+lOnq2Bh5yCy0RWvoP+8hv5J08ekK6K+b6fEpuCj1Yv2Wf1rD5wKtVJJ6cd/9fRXjvzia6/89OsjP/rm6R8qpWdnEqVnZz/44N7d+fkSpfV+W22P9XKa0mDDjuhNW/+baZu4lOzVM630quvZ5RZ2Djyly/oPN0RpAWmV0o7Gy7e6TOmJS2/feG/36MjQ2Ik9v39l3x+ODZ85cvXq21bp2ZmZxYW7c3NzxUpHx/GS6LzrRsfKmU39vdlfxaNyVT+0xzY9dITMK7RN9EFke/qpkdO/GUa2h0jjYP/pmrpb0v60R+mgwMu0ukTpsxcmP/74o8WFO4t3o9xbXLy3ePfewvz9D//z4P6Han1eWFiYn7+jUq50JJVZ7hwN1NJn36httIQRifC6Ve9AX1yaaJZfaJskA1DHhnildftXdaKRKHJ/Hkt3FTgmXRHzZebgVF7VqNMF1VWFjUdSovTwyZeVq34mLl2ZnHpjYnLKlhw4fuzRc67SFaN3s06hn6A8GEVIOiVKb3xjtxJVLb/lObdTVXaaV0m0Bno/jAWD0oSUpkTpVU2y9a0qJEoTUpr/pdKEkBUPShMiKihNiKigNCGigtKEiApKEyIqKE2IqKA0IaJilF4CABGgNIAoUBpAFCgNIAqUBhAFSgOIAqUBRIHSAKJAaQBRoDSAKFAaQBQoDSAKlAYQBUoDiAKlAUSB0gCiQGkAUaA0gChQGkAUKA0gCpQGEAVKA4gCpQFEgdIAokBpAFGgNIAoVkzpmf1LP+uJMnXLlORya+lgXPPgflPQjKnN5ozTpiAiWCiSBldqmmxemjEFMcnXoVL+3UHrQeluBaUhCEp3KygNQVC6W0FpCILS3QpKQxCU7lZWTOmlpVNxPyooLYA2Km0nq8mgKXdooPT0oPnUJKdnH9vQ77bgjEYV7ywVh6Gbn3otOk7fE32Hi680Xd86bArzlQ52Bd1Fu5S2nfjxuw3O6dyJ/pop96OdKSb36lK7Vref5IyZ8jrDsEpn/EwuLe9K8+6hGjlK/z/QIqULfNZxeq6hdL5IOuVW5z2GUj3nXU5nJDWHYZTOWdJrX+nmpVM5Suc9HaAbWXmlqyfjQGq5c+acnXB55aVK21WoYnkQ03N2k5zZQmc/MvVTY647jHR5xU1Kp0n2XqW7ylXaK4dupC1Kd5qHXiytOel1LDin/cLinm19d/n1CKy6SXO7kHY+8lb1BsOwHgY3EYHLt0t04Sl8dc3tRWkRtEXpwARNE9r3Bpv4hfZxEH4jsLuDkAYZEmE6/SRtp5ODzkde5QbDsEoH70ntK7XC5yldegegG1h5pcPzKU3ITzN982eVmcGpChWVNiX5S1BpBYsepLvwxg2dj/x1r8EwzD3JadLgSvM6RGlJtEzp0qSmoz+nFQ0merCfIM7U13/qq3A+0n2mL7DBMOoqbeqXPha9Ds13h9IiaIfSdttZmtVTOr+CxV6j7lwrpF90Mx8llxN4868zjDVWOv0Agu6lZat0nYXCn9MKvzBvHltKK3RIu5ocmxMlf0aXn7y1BgZWZxh1lW5+pfGAUVoGbVHan6ClBJv4hWZLnDewZDAVnya6fzVyc72egcr24Ktpg2HUVbrqKVBaNG1R2k7H8MQKzfiKStuBBd2w9StOaGvyVDzgwCUMdtxO02AYdZUu+E1bYe9wXocgg7Yo3ZHWn3N2pmY7r6i0wrhRubyIZDAH4xOlve1IG8e/D3WHUVvpaqdAadm0RmlPiUCyW9nqSqcfCsE4K2oxedoUPZU0NYfRQOmiU+T/h1B7ReXfHbSeFimtKLLae9etoXRhz7V8VhTsYK0b/qVpag2jidKKHKtVNdMEpUXTLqU1drLauLM2ppbSGrdn7zFRCbv39sZf8gNVQsVhNFQ6pvPcSfVgmqC0aFZMaQBoAygNIAqUBhAFSgOIAqUBRIHSAKJAaQBRoDSAKFAaQBQoDSAKlAYQBUoDiAKlAUSB0gCiQGkAUaA0gChQGkAUKA0gCpQGEAVKA4gCpQFEgdIAokBpAFGgNIAoUBpAFCgNIAqUBhAFSgOIAqUBRIHSAKJAaQBRoDSAKFAaQBQoDSAKlAYQBUoDiAKlAUSB0gCiQGkAUaA0gChQGkAUKA0gCpQGEAVKA4gCpQFEgdIAokBpAFGgNIAoUBpAFCgNIAqUBhCFUZoQIiQ3Tv4XVfV2Fa46o0gAAAAASUVORK5CYII=) - &] -[s0;= &] -[s0;= -@@rawimage:1675&695 -(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) -&] -[s5;=l288;r224; The same application running in different operating -systems. On the top MS Windows and on the bottom GNU/Linux with -KDE.&] -[s5; &] -[s3;:5: 5. Reacting to input events&] -[s5; In order to react to user actions like mouse clicks or keyboard -events, you have to override appropriate virtual methods. To -issue the repainting of view area, use the [* Refresh] method.&] -[s5; &] -[s7; #include &] -[s7; &] -[s7; using namespace Upp;&] -[s7; &] -[s7; struct MyAppWindow : TopWindow `{&] -[s7; -|Point p;&] -[s7; -|String text;&] -[s7; -|&] -[s7; [* -|virtual void LeftDown(Point pos, dword flags) `{]&] -[s7; [* -|-|p `= pos;]&] -[s7; [* -|-|Refresh();]&] -[s7; [* -|`}]&] -[s7;* &] -[s7; [* -|virtual void MouseMove(Point pos, dword flags) `{]&] -[s7; [* -|-|text `= Format(`"`[%d:%d`]`", pos.x, pos.y);]&] -[s7; [* -|-|Refresh();]&] -[s7; [* -|`}]&] -[s7; &] -[s7; -|virtual void Paint(Draw`& w) `{&] -[s7; -|-|w.DrawRect(GetSize(), SWhite);&] -[s7; -|-|w.DrawText(p.x, p.y, text, Arial(20), Magenta);&] -[s7; -|`}&] -[s7; &] -[s7; -|MyAppWindow() `{&] -[s7; -|-|Title(`"My application`").Zoomable().Sizeable();&] -[s7; -|-|p.x `= p.y `= 0;&] -[s7; -|`}&] -[s7; `};&] -[s7; &] -[s7; GUI`_APP`_MAIN&] -[s7; `{&] -[s7; -|MyAppWindow app;&] -[s7; -|app.Run();&] -[s7; `}&] -[s5; &] -[s0;= -@@rawimage:2612&1625 -(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) -&] -[s5; &] -[s3;:6: 6. Multiple main windows&] -[s5; If you application uses multiple top`-level peer windows, you -cannot use the [* Run] method as it runs the modal loop for the -window. Instead, you have to allocate top`-level windows on the -heap and use [* Ctrl`::EventLoop] `- this event loop runs as long -as there are any top`-level windows opened. Use `"[* delete this]`" -in overridden [* Close] method to close and deallocate the main -window.&] -[s5; &] -[s7; #include &] -[s7; &] -[s7; using namespace Upp;&] -[s7; &] -[s7; struct MyAppWindow : TopWindow `{&] -[s7; -|virtual void Close() `{&] -[s7; -|-|delete this;&] -[s7; -|`}&] -[s7; &] -[s7; -|virtual void LeftDown(Point pos, dword flags) `{&] -[s7; [* -|-|(new MyAppWindow)`->OpenMain();]&] -[s7; -|`}&] -[s7; &] -[s7; -|virtual void Paint(Draw`& w) `{&] -[s7; -|-|w.DrawRect(GetSize(), SWhite);&] -[s7; -|-|w.DrawText(0, 0, `"Click the view area to open next window!`", -Arial(20));&] -[s7; -|`}&] -[s7; &] -[s7; -|MyAppWindow() `{&] -[s7; -|-|Title(`"My multiwindowed application`").Zoomable().Sizeable();&] -[s7; -|`}&] -[s7; `};&] -[s7; &] -[s7; GUI`_APP`_MAIN&] -[s7; `{&] -[s7; [* -|(new MyAppWindow)`->OpenMain();]&] -[s7; [* -|Ctrl`::EventLoop();]&] -[s7; `}&] -[s5; &] -[s0;= -@@rawimage:2000&1447 -(iVBORw0KGgoAAAANSUhEUgAAAx0AAAJBCAIAAACswE/8AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAASdEVYdFNvZnR3YXJlAEdyZWVuc2hvdF5VCAUAAP+HSURBVHhe7P0HnGTHfd+LLoANk3PY3ck5x82LzTlHBIo0JZEEsNgwOc907j45n85x8mwGQIAUKBGSqGBf25L8JFuy/WRbT3q+su+1KMmUdG35+vnh/urUbGNJgJAsi7660tTn9/nvv/5Vp0716dNb366qPrPp/Jj79NDciXvT50YdZ4ZtJwdm4B95exzB82POsyN2OKcGZ2Hhow50esRxatgOwTkz6jw75oJ/fGAWPo3DPzE4d27cjaIjd6aO3p08MThzanju9IjtzKj9/IQLOjuGY+0XJt00eHJoFtXgkOyw49Sg7ewIzu48OYRSJ5pCg2dHPaeHXSeGnSdHXGfGvWcnfLCnRt2nxzwIwp6bZBCBPT/FIguLUlSGjg3a4V+Y5mgdFMHBUceHHKiJoiP35tAgfFRGlh4Ii+Cpcc+xYQecV73mF9jgFZsEH4efGsXhNvQQL/P8hAedRFdxTc5P+c5OeM4gO+4+N+m9MM1cnGEvzXKIQ4icHnNBtAg6P85cnOSuzIjQ5Wn+0hRHdX7cB+FVQ2j/8gwLXZj04kSXcNSEB+elWXqJ4F+Z5S5O+eCgAiyNozPowOU5HudCl3BqdOOKTUAW9ppDon1DHWSvO2VYRGj2mku+6pQu2fiLcxws/OtuBfainb/kEK571dd4/3XGvMkFXuGDrwohWOq/LkWoQyPUh73mM17hQze54A02cI3xX/WZVPAve/SLXv0yY17jg1e5wCWfAV3m/OcZ/RLvv8iZpzzKCZd02qtCx93SSa9yzCtTHXGLLzs46LBbPOgSDziF/Q4e2uvk97kE2D0Obr9H2u3g9iDiFne5+D0ecZ9PhrPbLRxg1b1eqd/J7faKe3xSv5uH0zHrhrOfUw/L/oOi0eviuuy+vaxyVIv0ucUeJ7/LK3e7BaifUfpYpdPNd3vFXkbu8UnwO1xcOkKFOlA62+WToG7UR5zX+gV9l2zuVvywXazcyUj9ktEnGx2s1M6IPaLWK+mwnYIKdfBKOydDHaLaIeptot4uGZ2Kv0cN9Omh3UZkjxntlswu2UQcpS2i1sQrdZxU5xNaOaULL0cLojJKmwUVRY2c3MBKsPARaRW0tHB4lxqA2ni1mZHaWJxabUHnRYOcmldbEOcUeiBOBL/ayTSxcq8R7pBNOGiEOuud4VVqURN9RrzBJ9Z7BVoBEZTCxyHIppU+BCdqV0ycq9bLd2qBo0v3ob5AtJ4R0X90gPRBUKE22UAFWCLrKqGFRkbC6aB2vDR0npWbfCIEB1nrFcmtnATb5OPrXD74XbJOIngjcMGfXXnqQ7gmOLyL0zpZtdMrt7vFvWLgi08+dP36v/raN79z2Igj0uVTuli11SO2+8g72+ETqeBDeH/bfALU4uGaXAwsIp3WKchJGbHVyze7WRRBcJClQRwChx6ezuIQ3CE4tpUR0T1kmzwc/GY04uXh0FuIvgQ49A2lgk+znYIO2yP7d+lh3E69SgCRVkZu9or9cqCH1/tEs1/yd3Nar2DssiJ4gYh0MgoiKG3FR4PT9mph3LRduGhWP3Ez43V1CyqEzqB7vYrZrwV6ZKNL1LolvU/1d+IekMitRQUf1x9qk9S0WkUJapeVDkVtV/UWSYHgtMpqIy82CRL8Hn8QWfgoahblOoZr4IQ2RYOPIKohS1XPi1C1j63jhGZZbRCkSo+vBvUluYbjdzi9tazYICiwUKOoNspavahUs0IVw5c7PXBqeGmHh6lihUqGr/BxcKBqTqwV5AZZq5GUSrQvKzWKCsGpkGSoUlaqFLVe1VGh0fS3hSO1urlDkneqaoWmlQpCuSTB3y7LpbxUxPAljACnTBR3KAqECgUsCxVyHBXJ8lyhwBdLIgSHZDmuVJJKFbVEVoolGU5aO/yBYkUvUY1yI7AzEK6OxEs1s1BRstGUKJXpRqEkZzNsPscXCiIaKUNPJKmI54vRpiBAcGhn0FV0DJZkcRaO9LZC1qs1f60eqDOCVYpRIWnUga0zQ1X+YIXh364bO3Wz3h9uCUS7Qom+yHwdr7UbkQNLD1rMSFMw2hCK14XjrcFEezAJNQcTdZFEdTxZFolUzc/vDEd3BMMV4WhlIlm9vFQSjbSsrlQEQ5WhcFU0WhmJ7AgGy/3+xqXF+oX5mvlUZSK+PRIuDQag8nBoRzxaGgsXRgKwJdHQzkSsOpXcGYuS+qlUqWFsDwTa19bgo5221dWux4+qYgmcqyqZqplfqFtcalhegeqWl2uXViqS89CO5Pw6V4GoLk16YIFQICfQFYKUtNJEdWHcBV2cAAk5ABMAHVj4EHzKVYQqLMIAXcHB0H707vS5cSdAChbMROkKAkgBrRA8PjBNg7DIwuJ0OC+oDkI7lB7QMkEEMNwzVKL0AxIC5SBLnecjFvqQOuCnw3dngVDAqUuzAkoBWBAlKlgIpYjQFtJHwSJyesJ7coyclLZMuc1CNEJIeNV4paAZCjrIUnYhRc+4igo+5SrE06wDgavOjQGhCF2Bq6CLkyyI6sIEA8E5N+ZF+2AmiNISPRdEz0v5idYBUcG5OsdDyN5wSDgjOAn8dNUu0m7g1PDhPA9SsDdcyqteHQ4qUK6iUHVhloXgXHGIIC3oiku66pbBVTcZHcAEooIoP6UFhIKlaPWaGP6CHF2HLTEE3eADV3k/dE0IXBeDN6QQnGti8KoQuMQa0GXOhD3vVc/5tPOceY41TrplwlWMdsqnHnOJsMd9ChGjHvXKh1wCdMQjAaooVxHrFqlAVwSn7OzzXLWfUQBV8KnT52B3eQSoz8WBqABYoKu9jHxECZwwo/swzDhZBHtmPGgHENZl84K0dnPKHowcjNAnKL283MNJPT6h28t3u7kuF9vpZEBXXR5ERAjIBaICS4GodokGWApEBfXwalq7tQAdePoVk3IVBKjCEIgRaJceJGM5BlHEMWryMvggzUB0HKICJQChQBKEjWSjVdIxJBD64RTEqYAvlEXaNH+zrDdJGsaPeiDFM7oCi4C3cHiH6kdTqL9+oE/sVsgQiLOQRsAWvEKARtaBO2gT9UE/wDhk0RR8dABBWNo4LIQIfNSnSIdS1KS9pXhEK5MeUjySDdQELfX6I9RHERpBhPr0cByFLA6kdei5kKWvCIJDWY2iFRV8C7Y+4ap6NwOHchWuNt4CDP8QHGQpCuAQqE/ydzAKEIrIwe8R/Ie12EE53OtTKVd1+GRwFdgL0NzuFVrdXIuLhYVPAQvwgTeaAhblD8h690FLfKuXbfEAuZg2H4dIFw/eAl3x8GkFxNfFAnk1dA/YBAeW4hSNwKLP4Bj6EqAf4CrYDh6HE4Gr+rVQnxoEQ0MArJcj87gt0VXcnwAm2k9K/AC7/f7ILtVPi3Dr7tGDsOTrgQgOI4JPvy2QbwicTOuQG17S6cUEZlGcole1XVDwzaFd1joUvUWQLYlQkyBALZLUpigdmgYHaldVZGkR/E5dR1GrDIoCPHGwzaJo6Qe5Cj4EtKryMhSt4IOr4MPi44APDmwNg6yALycUp2o4sUFS4YOrwE91otKkGmApABYssgjSOLCpWpQpVFGBqKjAVSiqU7TdS8unP/jGntX7lSohKuAUgSELVkp4vtDHFbPCdpxO96MUfFOuKMXPuGpdPEdVJAqUqwokIU8gEfgUqsBJxYoKFSGrqOWGmS/IuYKULynFmgFAKVL1Yk0DV+VLEnAEdXI5Po8XcOB6s4JAGa5EFClmbQf5qeq6LxMohEWfKzUTHQYIVgKkzBAs1BZNdiUXwVVALkBVuaKB2EpEGZWb8Yk2Ix16pEMJvfbhd8Z+899cee+ne6PzVf5wVSDSYEZbAvG2ULIpPl+bnN85n6pdWqpJpOoC0c74Uvf8amN8vmZluWp5qSqZqE0kGhcWKsJhcFXD4kJ1Il4Vj9UkwUNxMFN5NFwWCcGCoioWkoCqwmiwNBEpDPmBVoiXBPz1S4s7I+GKaAQHogXYyli07f5a0/JSRTIJVaZS1QsLpA+Li3AqFuarl1Z2phYqF5aqllc2nR1xUq66POWFA64CPMGhXEUdgA6lHAilGMUpSAF6CEZYOEXpCvYaBuM5Hjh17N4MHfUvTLohykwnBmdAVBCcM6M43H7kzgT1KVcR34K5H+AqChOgB8ANEIdONcFCZ8a9sGk8gsBDsMjCAQZBtDJ4CEqzEQQHWSpaH5aW0iAccNW5aVITRTgXnfRCHwBJwCP0Ci+TvlLKOqdGAWTozzpXUZYiNafAc2iZHAXBB7uQ0jHfmRHP6WH32VEvQOrSFAcLlvoBrro8w9JpKlyEtKUgBR8WFXDlaU/o5BaCeDtwCmATQAoCxuGklKLQK2TBW3Qqi8IWMAt0hVIEkQVIXZzjLtuF624FFlmQFkErj0IFtAItQeCqGyyZu4KuevVLLoXyFiziEHxUe02OgKgoS0FwrnDmZda4yOhXeP910JUYhA/BualErivhMz4NOuVRjrulEx4ZOEW4yiufZLVjPgU6wWpAKxDVYbcIveyW6JQVsR7poFeGBVrtdQlpriII5eL3+WTgFASuAmal56uAVnAoY4GrDsv+w0pgDyO/LJnX5teuBudPS8G9Tn63g9vHKj0evt3p6+akXkHpoVzFSf2cvIuVd6Mpr9jp5NJE1ccquyhIsQroigo+cKoXY7M18GCUouPW+gQVRkdewWCGgXCPGYYwFrb4BGQxDmHUp5QAWqLAtI5TrIzBCSQEEYCQDTAHmAl40a0Fu2QyeuEoBAnuGMHeUAzq8odbVRN0BQShFIIKGFFAS4gDWaBO4JTiR5s9dBJL1AEudK4L7ROxEtqE0AIOB/F0gQUtooIl3WAJhNGjEETffkD0cDioTGtSKqJCEEW0M4gD3dAOrUmLYNNdovVphExoMRIFTVhcLtg0ieK60ZknXNIWVgRIwTZ6OTidkgZLZ3cw/FNqgZ69BQRHegSjzSu1e6V+wez2yJ0usdslAaqI75V7BaOH1wFeqAauAkg9z1UEqljyLlOuen4iCgJCdXIi5SdKVD2i0iup6SAcBCH44Cocgo6ht89zFWCLzglBcIAv6VfRysgUp+BAacCiLEVmJXk0ooKujiVXrj75gNIS+AkOvUXh4/5E50FIeBX07sVLWL91JWOXbEJ71MBeLQhLuQqV95lhoBg56tlELLnCMplnxTtiAZaKiw+o6lSNZl6iXNXMg4R4CJAEbIIoV8FBhPITfIpcACxKWrSm5a9DVT3Lp0XoSpR3ujxAqyYJt7FU7WOpcEuDq4BTFKrgg6jAVSAqylWV1gQV+KlZM+E8z1VwoCpBgqplharKmqxKC9SF0q544sDDR52JVCnHF7FshaaBXQAx4CoIdFLCiWWCTEhFknZo2k5dB1oBblCH2jRXUbSC8kUeXPUMs+R8QYRASAWiBKdMN6BsToAoWpWZAXBVkapmsWyuIACwUDPLx2QzLFSqyBDORbkKZ0RPkEU3IPiIfDLBBl9UqCpUAziIntcawb6ltYvf+tnu+MJOSUNwp+kv13Rop6IDttoCsUq3cOmdDxf+/x8//fjj8X/6r+tEvSIY2RmOgp8a/bGmSLIhubBzYb4sldiZSNRHky1aZHdgYV90pTO60LCwtCOV3BGNgKjAVeChxqVFQkLRyPZImCgWodoRj1amErVLC3Vry9Wri8XxcI5fyw+ZzY8fdL/3TnUqWbswvyMcIigWi9bNp+BsDwUJXSXigCqchYAUGA74NZ9CFrZ6ZbVicalmda3+wcNNBKdGbMcHps+OgY3IpBEQB1lYwBDFHVgIpRDQB6M4na8CRQEjKFfBXrOt4xQqIHtxynt5hrGyTjRF1/4g+JemwSKkcRSl56tAVLBH706eHJiB6KwVLUWD6XOdHAE2gaWAOASDAEwUs86CfibJNBV8xGGpj+CFaZbWh396zI2asMgifn5qfU4LTvpYVECW6tIsf26aOTvlOz3hOUNmekAkIto5OmA7O0FW+s5PuPFKL0zSySryis5PoScgJ7QDrgJOrWdhL0z7Ls6gWbRPhAhhrzHv2VHPmRFwlefcmOfChO/SFHt5moOF0DI9BS4mLM4CC9Egrjni8K/MgqJ8V+e4dBGsBaNunBHnpYJ/CTUtoQOX58BbAnxadMUGlhKuOUTq3HQr11zSJRt31Sm+6tOvu2UisBSIyi1DN7zqKwwQSr7sUaErXu0mH3hdjkCvCEH4r4ohONcY4yoOZ034iNzg/Nd4onWi8mkXvOp5jwL/Mm9eEfywF1kd9nUz8ZXE2lU5fI4zTnrkE+Aqt3TULR7zSMe98gmfcsQtHoXPqic47ahPPuQWXnbzhz0idaCDHuGAm9/v5va52H1ubrfTt9dNnH6nb5eL2ecFVLF73NxBVqb+Xp+wjxH3eHnYzjlXn8u3hxEOCMpuH9/t9Jz0h9/+xs88/MM/Z//hb56VQ62jc3u84l6Ai5vpwxdrL9fB8F2M0MOK/Rhj0Car7OfUHrfQx8i7OLWfVfo4dZeg9/NaL0YyjKlursMrdDFAMaVf1Hdj7FH83TxGXxWC08HJUBeykt6JOJALwwzOBYZTDKhTVDvABAAFUAK4CmO8oMHC75TNdnzvh0AqAAtWamDEJk4mpYzU6BObYAEfoBxRbVPN/miiJxTt0AOtitEi6xCOahHUWk6swTdyTmwElolqMxDHEk6EliHUQbMobeDlWkbAUcjWgw9EbU84sT823+fHd1ATh6QrU4s6CMKHUJm21gYg4xV0FYfARxE9HTmF9RLQVZyoxsfXA33QScVoljTSNwCE1Vq6Mhw026Hq7QrQCqTFQ0282IRR0MM0+Dg4rYLcIWu4jO3ARx/f4GZaWREWfhsnwVKnhRFaQCfolfWOtOLVAX1YCW8KnAaXr5OVOsBAjLRLMvAuQz1eEe97l5tvdTJ4l6FWNwvb6SHqcPPE8ZFDYKnaPXyLm212M7CtHq4NZ/Tynb5PhLurmxUB7r28DB+3XLuHRRxZ3IEoavdxOBY9afcJOLYLLAh49eDOFHtFDXcUIri14MNBkNZEHQgOsrQO/D5Jpz4EZ5diHokkzy8/2KsH4e83w4fx5prh3aofQgRtomWcq182EKHd2KMFenkVNzxub1wZ3OFwEMGrxrEHA1FY1Kc3PIRr24OPgGx2y+RWf14tPN4sEYLTzPEQ/HYJzM23iCIEp5HjmgWBZusZhqqBZaE6n6/W64WaOXIDNIKKfFw9sy7cGM2CVOtlanxsHctXP+dUe7k6VoRwb9NbrlFS8YmoZvg6XqrwMFXgKoav8LJgKboCuD5NxUuAKlhgUwUnAKfSokS1U5SgOkXbyfKVolSj6TsEsZhhACVAkyKep3NCoBY68VPE8AVelnLVDgM4opbIUlrgp0KBz+VZCDhFoQoqlMUiRYJFhHCVokAFslxmmiW6nsXyeaKcL6u5olxi+It1s8Q08tCaqpL5Kk1DzSJZAWCV6iqEExF0Y1myGgj2Al0BtqyzI07QysIs9DzPx5Yr2g7N2K7qsBWGvz4Y6Uotnfvgp3vjZMqqLhCuDAQrgqGqcGSnbjaFYh2RZK2gvfLtX0x9/HH0v378k7/4KzWyQZbqklGgUnUoXBuLg3i2L6dK5mPgp8ZgtFcMHlESx/2L+/ypjsQCMKg6ES/1m7DNK8stqyuApCLTKI+G65YXAVLVC6ntyVhJNFQUDhBFg3UPV9F+tqnC3/MzHx75zs81ra6ApSojkdaVFbqSWJtI7AyF0AfEwXPbwVuLCzUry0ArylXArO1g4mgctmJ+cdOFcbLbCTRDp4sgOMfuTV2c8lyZZZClOAUhDllgRFbl6CLgmVGy1wo+LAjg8O1JRC7PsMcHZiFKYEfvTBy/NwVCovbk0CzaoeuAOAtahkNOam3DIpXvTEKnBmdBV0duj+MQnIguO6LNYwOz4KoLwI5Zgc4bHR+0g4dohE47wVJaQhEq0G1YsIijJhxKYzgc/pG7sxAqXJzhUYHSFUTnvVDn4pxwYZY/P8OdI3zmpRWsZglX4WpctLY0AWLwQnAxr1jLaumFPzIjNQmEIst/8BFPC8HTYy66CEhXA8lWqnHf5Wn+uk2mu6zo/BPsJRxinQUOsri2yF6d4+l8Fa65hVykJzSOCBwycWVNR6UnyZBF9+hKH52gIvNS1karGy4Fot1G8FWvfsOj0p1VcG56tVd8+iuscd2rXnXL0E1Gf00ky3zppT3Y15Uo7FWwFGPAeQ2MJYauc34IFaBX1ehNOUzX+y4y+mXOhH9NDF5Xwlel4DU5BOcCq592Sze16JsrT18PL15WwqcZjWyo8kiHnfwRl3DcRzZXHXYJQKhjjHKC12HhH3CwAKwjXomglYsHVEH7nOxeB3PAK+x1sfs9PJxdTgY4td8nwsIHVMHpd/hAVECr3R4OFn6f09fj9AKqIDjH9MBX3vnGO3/8X//xf/tv4d/+/RNSoGvOA67q42U6pHVxIlkKZMVuD9flZPpdZAKs28VjfAVU9fqkHkbGiAuo6vKKsBCIigqDTZ+gQRifMNJAGMzoyA2uguBgaG/0sCCAXtWEMPZAFKSaWTnNVTRC6QqcATqhsALI6MSAxykgKtRHEBxDUEnSACuAqq5AGFwFv13zEwsMkvV2I4Dv5fWC3KwQiKFohWNBRWickhDlMMANcIegj6SDpY4urp1ce7wvmkIWAuhQh7COYsJSzqvz8mgKpTSOBuHXAC8snKL9R5xiFroK4VzoBgY5OtTBJxGLq9JCa2gKrxcg1SopbbJKLWEsXqJchcEVoyyyICfgFOAJFAWnzuml1xkROAh+mqtoFm8K1OhiwAQAEQpJ7S4Ob3SHk8WbDgfvdTeLO0TGuwywQCmFKhQhgjgOaXNzOBbUBRiiRJXGnRant9Xlg9rcDCgKLEUZCz6CKIWDu65fVMFbKG1y+mgjEA4H3FCuorSEIviUomgdylIQgqhD8QhBijuI43XBRxwCPyGCaqCrQ6H4PiOEID0WDSJLj0UEDugKFAWoIqApELSC4OBV48UeMMIH/BG0g/bp1aNn6RbxbUEnXxis7w94F/DuQO282CZKEEUrWPgdsgKWapWkNpkAVtoHV8EBTiHYpesQHGQJcvHSJ2hloXYjJ0DgKtwqDbxY5fHtcLhqGa5ZUmAr3QygCrcZ7m1K8/iOAZYCXeFDUellYesEeYfbV8OJcOpFBarlJRAVAKteIit9IKf0fBVEFwEpWiG7g+N38gKyVZpW5/dX6nqBz7fdWgos5Lh8hgFRgatAVzsVHUwDagHNUJRJi8INZSnKVVSfcJUkAJLAUiCqUsMAXeWJ4ha3N5sX8yQlk+VBVwWKBqjKFnjUBFShDgCrRCUTVwWSgEaAbvkc2dG1jneaRrmKxtGBMlUhPVfkMlndafpLJaVQEOsjsa7VtWYwh2q0+qONir/eDIGrylSt3DDBLmU6wS+8QDJrFYofe/z1g8sPKxmpNZ4qS8WK5qM7I+HKULgmHgce7VhbKFkkS3ttgdiNlfflX/+32j//3770zkcE1+KJ6hjZI9W0vATw2hmL1q8s7UzEioP+skioNBamAleVxMOliUg5Go+FcAo4O+cT3e+90/nkMc5Vm0qe+s533vjd3z37S79UFY3ivO1ra81LS+XBwPZYrDwRB1fVrq4ArcBVZLJqealmeRVEVbW4XL20suno7QkgDuAGLEWh6sIkYIgs1VHuoeiDUkDPuXHHpWmPtfxHZo/oeJ8W0OcEcOreDOgnPb1kERhpjQqNgJPQGkiOTE1ZjEWQy5qXwhkJYw3OfiJrtgxB9I20PzhHtoqjTZDWsB1QcmGa7qlan2SiU1CUfqg9N7lewZq18loWfEOABo1QNgKoASaQpYt3NPJsYsx9CnQ4RuxZAkmAIbJfHqdDKdq5NE1QhlLOxSkyLUfnhNAxlNJJIAgOmqJZxHEsPSkip4fd1+Yk4NTJQedrbv3KDP/yW5OvONXL09zFScJSVsvrc1S4qvRcEL28NIsi9ASWZuFfnmGuznE3rMmnsxPkJV+eA06RvtEZKWThXLULCNKOIYJuUwREtVcBUl7t4hx7btp7ycZdcQjXXNJ1r3LDq77GmV8QAjd92nk797oYvsYY11nzBuDJmpR6XY7c5AOvSeFXxRAcWkTnrohvrQBCV59NWV3iyEzVVTFwkdUvMBqdrzrvUy/wxnUtck2LXhD8x7zSCZ9yVjCPe+WDDvYwEMrOHHLxQKjDXpHOSAGhDjPyadE8zqoHnOyuGXffrHuPw4dSUsHN7XWze1wMccBPXn63m+13+tIOmcRCBQut9mFccTO7vdwuL9fr9nU53BAcVJ788Jfiv/3v5F//7Suh+c45N7hqr2JgeOvmMbRwbW5fu9vX6Wa60SZYzc334qs/L0OdXq7Lx+8S1T2y3i8ofQJGFwFBOg8BCzjDAIkxqc0nAKTokhDQqgXjqKBAFKTISCPIXaoBwekU8G3eaBe0Zvw3hBGLrNOZTYAYUevSAq2CWuflmjGmSjqC8Ok2bbJ6JWqNIBtBaZG0eqAGRgVABuBJNerBFkAKXkYE40edpDRgtBDkBkFuFJVmcAyZP1DQQoNPQLOkJqBEVBs4CUIW6jSC+xILuyKJViAXL6MU50IpGqdZ2FofD8FvB8apJg3SLGwbME5Q0HL6KMQRRA/Rz2ZZQ8u0cTSCeLc/DJDCSwZRweJV9xihNklpZPkmTgBRQQ0MV+9jWwSQpdDKSy2c2OBlmxi+XVRwMRt9XCsGVC/T4mPbWB6C3+T1IduKo7xMM3wv084JXaJM1YlrC5T0Aoa4Tmv2kUw+eYVON0+mJF1sm5Npc7MIAin24N3xct3WpCaE+6HTy7Z7WQRhcRvgrgAh9YpgF7ETvfKROG4qcl89q0ZaAMc/O5DeRe2gLqsF3EitLqCY17oVGTq/BR8RUp+c0Wrk2V1HJ5DScE8nk9B/AB+hfF6lLwelz5CIzJmhn7tlQJJC24GT7gw9IwSH1MTXAE6CcM/jzt8tafBREy8TFofTDwI5nBXwqul3CWKtmVpybRmuW1Z7FK1TlPGOkPeC4eC081wrBISy1CIA9IVmHu8118iyEILtCghbbGCYOq8XlpQyeLuJGn1Mg9cHoSYOgep9PlRok6Q6lqnxeWsZX7XXhxuM3pb0JsTdWM3w4CrQFRwyjyupoKhKHweoajeDzfhUWl9FKhm+2tq6TndQVYpSg2GCorazHFn+0/Qqa6NVrarRSSxCWmTT9/ouJTpZRXcvlSsaMAXYsUPWgFnFkliuEXYBx0AEd6zpqFyezWZ9ZL5KBBiJhYpUrClwcgVum9cNByBVYhoFqgILeig29BxByhKlQsMsC4WLTH+2JKO0SNdgc0BpYDX4spwJtkNrqgwLwKIkhw7sMHRAFRwqZHcG/ZUBf5mhlWv6dtO/Ay3rRmUgWBuLV4fC5aLSoAb6YgsHHj7tX31QHYluDwS2h4LoCYCvIZlqTs1X+YN4sXjJtaFIy/JyXsgsWyTTRa0Li23LK6Cl7cupnasL4KeOQMzxa//6H3388a99/HHsu//nrsQSDq9OxAFSZJcVnZ2KRShRlcUjACngVHEsVBQNAqdKEhEQFQ2itDxhbb0KBXFlAFI/9s9+883/z+8e//ZHYDW8kI7VNTh1yWR1ar4imaxZXKxdInutqubn61dWoKr5xab7DytTC2WR2CayXd0CF5AN2AWgA64CzUAgKhqxZoxs1t5zx6mhWTopgvGbjut0muTKLAvMOk9WtVxnACjD9lNDNljLmT0NPBqxUcFH5OTgDHR21H5+3IkgIrQUzrkR+9lh25mhOQiV08cC2k4CrYZsx0FXlnN61HkW3RjznAY5WYJ/dtxLI0fuzp4cdl61SRemWDiInBpxXZrhT6HPoCXA2bDdOtwF/9yEBw0iAh/NwlIHpafHPafG3LDnwG1T7LkJH05hWffFaebKDHsRVwOUCaCZgHVemeMvzaAa+oCTkh5CcFAZwfR5UefClA/xc6PeGzZlIPLgq0rq7Ij74gQDHXl7+uqMcJlMWfmgy9MMBOfChAeCg/PSU+O81qlJEFk41CII5+osh/PipHgh5wFMeHeeObCXZzkIFaBrdhFCFv2/ahPgX3dIVwFeDvGaU7rhVq7YBTjXPYSrXmWN13n/K4x+1SXdZP1XvBrQCggFfoKFLntU6qdh6wtKFAJsXeVM4FR6EZCsAzIaQAp0BV0R/NekICwi51gNaHVJCp7jjGMe6SSjXlLDF5XQCYbsWD/k5Mk6oDU7Rdf7XvaK4KqLeuScEjzBaS+7yEwV4rT0gFfY7+EBVYSrPPxuF9tn9/bMueHscXNU4CqKVvtZCXRF5q58fK/L1+3w9Di9YKyDrLxr0n1eDF0y4ge9cq+D6XETWiLDFZhJ0fdgdMfQ4uH2cMoBXiO7tTC6WyNoWqiAoQXDCV2+wfhEhyhkMaD2ygaGkz7F7OBkOiPSyop0oYp+cSfLIqrRIWttomLNteBrPZmgorNQraIGNXFyrRujxfoUDiKNrFTr4RoYsc8Ik/ktGhSUJrSj+1s1E7YO37DBGSAnawarVTFqWQFjRjW/vhSIItRHaRNGGgAfgTYeTSFLCIkRdtjdpEjAF30BtssMga7oDBOy1IHolBg5ihFo/QZehoMiOiWGbB0roj4tQpyelHa1WdFJN6z5M8RpZTRF6lgrgH3+yMHEIiyyLaLcDIp6Jjo5QcTwVHTiClcSamKFDkFqxeDNcNQ2Ea5i4GAgx3COQf2TcZ0TYPE24T3qoStZz+afiJ6t90HtHtweZMkPFQh8+PjnuIojK8gWKgEv4LSRdUBfq4cBZ/QIMiJ0XgpxiE5c0WC7h8VRhMNAsdYMFuJohNanlt6ZjTYXjqLQA4sIhR74FioRFoSl82rw0WHEKW/Rl/NclpDQLkmjdyzODsFPz6WhWXpj0yLKUtA+1TygByD6vQKnRiMQue15mXwKVAOfIFzGff7IHi2Am78Lnx2ypV3Gpe6x0KpXwbcIhcxdAZQFvkMka4JNoCWWawBLgZY4fIvgyWogL7TJcoestEp4W7l6hoFFEHXgQHAagFaQNa3Voap0xguq8rgr3a5alqnjWHoH1gOq8J3BcvChqAFRsUI16IoV8GUDn44KL1ODryWaSeeroFbd3+EP1Uvqdh9bJUjgJwh0RZf8qoFTilpv+ut1A7BF1wR3yjLlqh3WtvT0OiDlKkCJNf3DU5Sxdk2JZJrKYh0QVQ7H5Akc/CJVLtHVNFRlcwy4CkGgUr4iZws8aKlQU5HdynIZvACcypEVABb8XElEhSyeQylEfJYFV5FmFXIuOmtFuwG8K1MVCD7pjKZs9xsQuIrujodKNb0cdGWaxFG0GtmoV/wtkURzIgVeAcCVBgPAoIp4jGyEAmYFAlXxWK21U6rA1LfPx0uioe26UaEaIK2qaBQYVL26WO7398QWxv+X3/oHH3/8Cx9/PP6r/7IlECU71leWK1OJ0nAQkFS/stT8+EHlYirHr+GQqpWFnYtJMgEWCxVEAlBhNFiztlSWjBaG/MWRIICMbGwPBgB5aKrn8ePG1DyQDmjYMD/fNL/Q9fhR3eJSxcI82bG+sky2rq+utD950vnOOzWLy+XRePXCEuhq0w0bf8H6od+Je9NnR+ywZLe49WAFunX9/Bj5VSCJDM7CgQBS4CqAFMZ1jN9nAR8YtoEm62zhSaMVnIuTnsvTQAFEbJSlwEmAj4uT7jRXnRtzwEEFFJ0YQAdsEKUrCmFUKCLgNeI4RlcDLe4Bo5yf9AGkQE4nhoAshJ/OgoEmvBSkLkwxKIUuzXAWdaGmHVSR5hv41AFXUSGLlimCEAGGxgix4UT0XLQdQNLFaQKUeI3piwBRkKKneJ6rqE/jEPzzk6SR6zb5a0rq4T/7X7/zH/5P8Zu//ON85MoMf3rIeXmKvTQJxvJBl6a8EE5k8RO5pNds7CsuERYXEFcPV/jqHHNl1nd5xpu+4BBKL0x7To3azow74JydcELnJl3Iwl6e8122MRdnPJdmvVcdHEQi1jwWdBkvbZa56hRveMhGq8vWRiu6y4rurLrp0whmMeZVjwa6el0MU73KBy+7FdjXhBAsil7hAtQnsCWFXpHDN+XwDSl03dq6TrexX+aMq2IAUHWZNy8Bs1j9IqOd9SmnvUTHXcIpj3xFj173Jy7KwdOsdtQjQkc84mGPQHXIzUPnlSB0RjSP+eSXPQLVQQ+/x+mD9rqY/R5uv1fY5+H3erjdLqbf4d3jZmm23+XrAz+5GTqhtQ9o5eV3e9g+t6/fw+zx8QfAW3Oe/XbfHrt3n5tFaZfT02Z3dfqYVrdnlyQfMgMHNGOvIO9hxb2M0O/l9kt6L8YwjEb41s6KHR6mw8OCq9othzJWF0u+r5Ov7OQXXlIzBlpehm3yYAgXYNvQgmq0cGITw3fKWo9mtuM/bl7qkFQUtXMSnXpp4gSo2fqpOf1heSMvtkhKm6TUenzVbg+ZvGHEOg/XKqhdqh/fwjE2YGAAo5B5KV6CJQ4QSpDxTb3J2kpSyfLrX82BXAAa6+t7rQfjk1TvBZGQGSw6n1SDPqMFUcF4Q2e/UB9NwannJTrdRRtBBA7GJ1g6W0a6IWutqgGLRtrwGnU/HJTCQrQdMp0myLSrqIlSOumFs6Mb9HWdWH7wxW9/5+YH39odjJELArQSZbI9meFwcaB6H1vnZXBN6j1MI7gKF8GatcJlpKM4RahmL9Po8UIEp7xM67NZKyr4bQAsD9fJiD280iuoUJ+o7VbMfXqwj1d7gSw+vOMgHg4WfjcjdQE+PCwshLuCZtvdvj5rBRm3RKvL2+L04PZAdpeodvvYDo+33e2B2lyeVqcbFhFYRFDaz4t9nNDlxe3k7fT4wGp0dopainFNdje92dIwR+ifEeCjV51eAd0jc2xeRNazPayM/sMiAqWz6O0ufBkQ1R7cuqy4H7Sk+ft5mb4i+qIQx92OalCfT4B2sdI+UUPNg0Arzb9PMVDhRCRxyB8ms1Zejk7o4lXjXHtU/y5Rx4VFN7o5GZ8OqIeXemV1j2r0Aa0EoZ1loQ6BzFq1cGwL42vwepq8nkaft5VlWnmuSxLbRVAyT0tpHD6drGoGWllTVhDNdoKrrImuBoapcrmgep8PPm5sKjoXCwc3bZWXJVxFfjMo4m4kXOVh8BkB7gOtGnBnqsa++aVDK/fbjEAlPoa62eQP1Gl6lSSDrhr8AXBVpaw0BUOtoTDiz7hKgQBV2635KrLeJ0lkf5WqQ0CrEpHgFAWpfJGnrAPQAU4BnqyVPrLeV6hIlKvyRD5fEfNkMvMEagFOgasyBb7Yb+YqcpYogKVyFTVHVTNEMVOS4ORrKuLZklhgsRcACwL9gM/QMkWr589ebuqEolQZ3YBFttxvlBoauKdIVek+LUAVzks2delGOS+XMkKtP9SxvAJ2wVnAVTWL88Cg8nCoMhGvmk+WJ6IliUhhIpwXMotMoyoc2b3yoCOUaA3GOlKLZaFg3fIi2Kt3cbXPn/jSh7/4xZ/6hb3Jlbp4gm5Ir15eAEuVxSM7UvHa+2RnemnCmqxKRIrj4bxoICdsZocM2NyIH5iFOFgNJ8UhZZHQduuXgDsj4epEnEJex/37R3/2o30ffNC0ulKZSpVb+6sqFhfKUSGVpButymKJnamF0//oV1777X+96eKEGwJXHb87BWY6dmeS0hVAChH4Fydc5MkL96aRRRB1TgwCjNzX5vjrduHytA8kcXJo7uTgXBosIEAVLKpZUywukBMICSAFNqJohSH/6J0JZAFMyFJ+QtHxe+jGDASMg+ghVPBBCeCSo/dmIEoqx9EZi3UAVWSj1RBQBhxD5pMQB2ZBh+/MwIKrgFmog0NwYJqr4CACH4IDYoOlSLRebdR1YgQOGItMg9E24aCUoJU1WXUKNIZGcKA1nUaxCUKF85NeehYQGzpP54po+3BQdGWavzojOB5866f/7Z/9/T/+c/Vb//CmXQZRnR/znhv1nB1xE4HJnglISihq1veqS7xuYwFVuHqIXJ4GeJEigBcEB0Lk/JQbXAWcujTrA1pBcBC8OOO9amchOAiCqBAHbFnzWOxVGw9dsa8LUAVdA2MBqtzyNbd03QO6Um761Fe5wHWy78r/BUCVEPoxKQIHkdf4ILKwKLrJmNRe8+k3WPO6tW+dbF1njcuMDsFB9oYcuir4z/uUc14ZXAXSuuBTjzv4U14ZXHXMyZ8X/Vf1KOwpRiVQ5RYOObmXXRwlqoNO9oCDAWCBqI4zCpz9LhY64OZgd9u9e52+/W72gJff7xOIQE4ers/mofvZ94CxnL5eu6fP4bU2tvt2E8Di9vn4PT5ut5eFkMXhBzFOOEhNEscXdLcP41mPj+1j+cP+4OWF5XPx1H58X/ey+3l5H8ZaVuwBV2GwIYCFcY6jjEVHJqiTLPcwXQzfJ6udrNSG8U/SOjipE1/lZb0LTanm/nCsRzXaeAnqEBWoU1K7Fb1bVFGtlRMRbxWkFkCVpXZFa5UUun0E8UYG39H5Ht1s9AlQO3kkgdEAoGEFgiYWBkGUaegvoZp4uREEQ9Yy1pGoCVQkyCTOSTUuX5ugop1O2WhmpUqXrwFoRb7Wi+vVRKVNNWBxCljEoVqGR8uwtAI6QH7czgrNGIpATqAlQcZR3f7QkZX7B+aXOnQ/StNCHXAV6RLalNQWcBV8sgFZgGq8bIMP46i8NxS//vWfuvbON/rNMF41vSC4DsTHBSFLgQxU4/bWe3xNhKvYOjcGZgbXsJ3lAUxkvc9HVv0a3d4Gl6cJ1dzeFq+vFQDtA1T5oDYQD8t3+gSow8dDXYzYL2r7jdDhUHy/Ftwt6l0+odXpa3H42t1sDyP1gbRAz0Bqcs8wuBkgOO0uX6eXxY1BBZ9mCaMwgBVfh9tL1eZ0t7s8uN/gw6E+9InvZdtcZDEaBA9L7zE4EG0QFVBET4FgN2iPkBOI6vuE3kK0FKJZ3MboP27jXQy5k/vxxUPS8M2hn5P6fDxKewlasT1gONzkPh4VEIHg72alPaIK7cb9zElHApEbDx6fm18GokEgMHQGXaJXqY/sRFT6edXqibDfCKDnPRwur9InyF0MANfX5vHC9ohiJ+iKwzcQvGXrgt8tiR081waW8vmafSBjEoTwnjbhnQVdEagCb61nGxlwtge2hedBVPCpxV39vHCzVXp8O5we3IH0U4OPD7iKrgw24uMja9UsX8OJXcHIrngKkZ34hqPqLcFQcyAIqAJFgavoOmBjINgVTwC56F6rSsCWru+0ZC3/KWVgEbIaSLZ+w5ZrOuUqylJ0dgqCQ1f9YAFYEAALyhbYQk0u0snCX/3CfHkwQLEJaAK7lWXIBJWiZivKVp6H4FiwJeTIUh5YShIzORZcBSrKsZYXKVfh7PS8EAEpUy8FxqkyAGt7wITAVRXhMIiq1DDKAn66+Ai2K7Tm3kCHQKX2tbXahfnioL8kFKhIxtExAljzqYqFZLZf22LKuYlQyXwMbNcYjvUml5rUQIMaaI0mq6LRusUFcE/L4lKhm6lT/U1muDYUaQDcJKMl0RC4qv7+yo6FRJH1AIWKpVTlygKBqlT0eaHx0oV4QTwEgINfPh8nh8fD25Ox2qUF9K06lSTLgrHovg9/6u/96391+dd+lezumk9tX0jV3F+te3i/cmVp59JCxfJi+XyyKBJtfPT49X/zOz/57/79pnNjNspVdL4K8EQoamAGCIXsaeuRoYAq+KhDwOv2BIb2CxZPAJvoSt+5MeelSe8FYARYAREABJAFbAHGGrYfvT1+gtDSHOgKgnP87uThW6PH7kxA8E+CrgZnYFEN2VMDRKcHpyDEnxc5fNR59O40dBqNjzqt3xt6zoy6Tw07odOgH3DVmAfBE4N2RM5NeI8P2I7enUUcEUtzdAXzFDoJxEEP707TPWF0azxEd+WjCM7JESdEW4ZFCydBbyPkQNTBS6av+hRwCi2TzWeEtyA0jgq0HbSJCIpoyxemvJdmGFTAqQk/jXjODru/zIa5r3/H9fCnr8+JIKrzY0Rwzo2QC0tENrlbqDTuBDkBqq7MeM+O4GrPIXtuFH1Yv0qIX5tjwF4QUOnUyNzZccfFGQ9wCggFB0EyR2Vnr9gYBJFFkExoodo0kNSD7t10EYS6OMtcmPEBra67JGRvehQIXHUVVOeRX/FpgKcbPgPMRLDJo1336shecSvwaZCWAr+gm5z/mk+9ymrXOB2Cc4VRL/uUy6x6ldevi+YVTjvvESE4V3gyZXXSKZzzaac98jEHB3uOPL9KOeGRoCMu/pCDheBALzvZ/Tbv3lnPQQdzyMUhu8/hg/Y7GdgDHu6gh6cCRYGl+u2e3jn3LoeXChGwVL/TC2DqsbkpV1Ht8jC7PeweL7fXx3fb3fD7MWI5PLu83B6MWxixXJ5eDJNu715eOhWKngxGdrNCp5MEMYJ240u8l4NDfAwPjJD+Zt/NClAHRjiMiD6uRyS/0mpDXFTTXAWE6tXMvfhv2gyCpVoYvpnl20UZamWFPsVA5XayIIgv6CTYxAn1PraRF5pFiW4n6pAUCJVRp1cPdpBt7HID2UEldRqBTjMIZAGjAHcgAje81CTIDZxY4fLUkI0jEuUexOtZoZEFwyldknF8fuXCg3fOP3xnfyTZ5BOaGRFFGHjo4S2S2qbo8BFBFg49nGAQqMiq0CwqVR5fHb7oA7MEGXGcFHHg1OmHT44srQKwEEQFKtKmaoC9gFPoD/oMH4eQxnFqD4s+QOhMjxbo10MNHq6VF+sZXyPHtitymyzV+by1bneD1wvVYez0eJoYMilV63TVuz2tLNfs8Ta5PbDAplYvA6cRXOX2NLk8LQiCvbwMHOq3A6bJMM/j7WsD9+AewDsiyBj+9yh6LwjY7Wuxu1sdHnob9IKYwRxuBizV5WEBIoRUPCypZnO1OwFGIBIyiYWm2pweHNhFEMrT4UILluAQfvK2O91tDhdEI8hCVhGDdtAgpTcK9HA6XF6caP0+dAHRyN2ImugS6RVuOdyTHpbWgdIRWFqHZvu8fA++Rbi8uLdx//f7yB7EXQzf72ERwWcBnwKUwsJHZC+v7OFkCFwFGsPh5OU7vfsV40x8/mggAsyCD9JCh0Fpuzh1v+zfLxrk97P4HmJ1BuBFOknm2Fioy8d0gDU9nja3p5PjoA6W7WDwdvjavN5WjwfqFgQE4bRYQpyUgqvIe+drAl0Bmq3JSAh+nctd43ACs9pFsZllCW8xDG6Seh8w6xPhHqt0e3c43PhckI8GvpZYlE8ndBvwLUKQ4VTjTraWAsmzGHAHKlqDbrSGwg2GWaOodYYJoiKLgKafchXdxg6uqjKMCks7TWO7vr4rvFQiOAK02mGYdLkNHAO4yRU4Oo0EhAJRFalynixkcj4oR+Qg6uSqZPKpKpkoMg0AE3CqwNRzVDlD5DMlKU/XC0wzV9MyAVKaBqhC5WK/CdChdEUXDemJcBZyoufQCicFz1GVmfqOoL/cb4DkSv0mRFYbrUYKDR12G8fuCIcQB6+UR8OFfgM9KYuEwC44C+Igv6KAmePXcsJmVjyQFTYAW9WBUJ0RfPnB0wsffrT3/uP6RLIk4MfhlakE6Krj4YPWtVVgEKio5v5yzdoSiAo4RbaiLyZ3LgGDEmWpGGz5UhIqWYwXzUcLkuH8RAi2ZDWVmwpnRf15yXDpEqlTmowWx8P0cNj8kFm9urjv535mz0ffQjuFyVjBfHz7/eXKx/d3ri1DlQ9Wd6wulc7PV66tdXzzm20ffLDp4qSTTlkBpEBOACn4sGS9bwRsZCeTRs8eE3p22HYKPnBk1AmoOk9Iy04QatRxYcINugJRnQSgDNmsBUSgAFlDBCpBYCbIQqhPRIOnh9A+4SpUA2lRqDozNE00PJsW6sCeHJqznuYwfQqdIQ9imDkzCnwB9xDBPzvmfj5yYdIHe37Ce90uA7aOD8ydGARjgXVsaAoObRDt0AhK4cOSSTgq8BZhONIymjoxiPM6LB+AlV4tJS8Wl4u8ZEtoDZ1Ey2gKPiqfRZ1xNIJO4nDyBAQ4KL02I16Z5i9NMMfvzJ4etF+bES6MeeBcnmSoLpGlQPIeXZ7yXp72XQYYTeBdc8K5NOk6N2o7P2a/POWGf3YE/ZlBhFa4MI6O2S9Ne86M2c5NkN8cnJ90QhemXMhenHZfnvEiCP/sOKmGLIouz7DoJ7p3ZZa7PMedIzNenutO6aZbgV7xqNB1t0zXBF/xqT8mhV/jA68LwVc5/xWXctkpX3Wrlx3Sda/2Cguc8t9kjBs+HRZC8Aar3RCMm6IJwbkOnLJ0ySeDrtK6ymuwF7zSGbd8iTPO+tQTTuGkS4Q9ZucoVx1zCYcdHHTEyUMvO9iDdmb/nBfOIScHf5/dt9/BQPtsXsJYTma/i4Xdbffusnn659zQXiezx+GD4NBZKzBWn829z0vwi/p9Dg/oah++N/PyUdV8WdF2M3yv09vn8gGzoL34H9/uRgTqcri7nZ4eL9Pl9rbM2dsd8Dmow+ntcPkwVGAIwVCBcbSVrM4w3QyZQmh1eloc7maXp5U8WdvXwYotHhZqZ4QmLwse6gRdqXq3TLiqiSG4AFvjcO1SDahLUoFNLZzQJoAw+BqXp9brA1e1CERdigreavQw9S5vjd1T52JAIVCdjwPZtFukAmGQgKX8BFiBqty+Spe3GnCGLC+BbDC0tLBSu/XoptNL9199/1tf/PCjMysPu2QdQIOW6zxsmoTQAk5R62VxFljEKV0BoRCBs14HY5KXRU3KVTTbH4z0+kOtsoosbRBBcqw1y0XHMzgQKfVxLYLSoei7zfAef4Q8nps8BlOhFwQs1cAyHaoCtKrzemqdZPiEAFUQxk6MrPUudwPgyetrcLigZre3neEgjMHwoRY3BmwM2wwsfLxTVO1uX5vLi7dvfULIejcRIWCEOKDKDuIhbz1ugDa7u8fFQN2AKvCKj4fgd7kZ3CedLh/lmE43g/o4qs3habM7W20O2A6nuxOnA0tZPm4t6+5ydYNyvAyKUA0RNIUTwdI2YdF+q82FIBwIZ4EPC6VvTogW0fq0b/ARgd8HrrL6iZ73uxl8oyBfKjwsBAf3/G7Uwb39nFCNViC/3vDyVH0ertdNGul2kj7QNqF+VqS92iepR7TQ5fnVc9GFPayyl5OPmKH9io4i1IH6GK6P4/t5AbYbdEXWRt0tbjf4CeT0vLoAWwzeLA9KIUTAVYg0Ot1AZApVeMepKF3VOZy4GVo4jkJVm4CbR8D9XOsmd3WdF19R+HovV+NhqtxefDSqPUyNl8X3hGpLZPoK3yI4sQm4L2vgqhbVIMuCqt6oGVWiBH6iW9fBVS3hCEUrwFa9bpD5KplwVYX1bCrKVemHKRQLUolozVoZJkirHPgSMIFWAJ00VOXwLBEoSuKthT8hW2DBVdt4X5bEZUsiUCZXkUE5WzgmC0ymKdmKlCXLYClwVVEgkOc3s3UNRYAq0AzoikCVSSacig2dToCluSqt9B55AJa1/GcUG2q+IhaApUBj1moj2kGDQKutPJvn1/OCRkHYD5ulyQVBc3skjFPsDIWaFxbrkkn45Cd787HsWCAzpBeFycb2lvmFn/itfzH4e//r0fe/2ZBM4ZCalUUwU+lCHALu1N5fRs3KxVT9w1XAUGEksH0+Xr22VLW6WD4fByetT1MtxApTERBVTtSfHTEzwkbWQnhLwr8lbmYlg3nzkfyFaH4qAvDasTJPGGshDsIrTIShssUEDi9YTOQtxgtXUkWr83nzsUKw2oNlqHhpAcpLxrNjkU0XJsifpqFEhWEb/pVpH2AIQuS8RQxwjt+dOnlv+tyI/cKY01rys58nu6lcYClrqob8dg/4dfIeefQU6lPCoMJgD4Q6env88FsjEBxkafDEvUlYSgZgJmSBVmeGAFVTZ4enoTPD06eHplDn5MAUhYYTQ9MQJRUqUM7JISAOcUA/FKqQvTjJwEEQLHVlhv97fOjanIAsZTIADUTZCBFYGoHAVRSt6FlODBOhKbSMwylXAdHARqS+NZlHucd6sXaKaPQU1EdNCKcArFyc9AKncEYIDrKXJ9mjbwMinedG3BSnwFUn783BXhz3QnDQMt4IglaT3qvTOMRNmSktXMMrU4S3qI+LiYsGwQEtAZsISE25KVdR58KkCywFe3p0DkLwyqyP0BV5oAN5aBaxkx5w1cVp33WHcN0pXrPzcG64pOsu8aqDv+YUbnhkkBO46stqDIJPyMmnXwd+sebrfPALQghBEvFqCF5zK1fc4jWvfN2nXGfUq4xy2StRUf+ST7rCKtd4DfaiV7zgFc95lQuMdsYtnXaJZz3yCSd/dI456RKOufij8B0cdMTSYTt7yMYccjKHXeAq5mWH74DD97KLhfbbvbvnXHts7r12D7QbnOTw7HX59rmZPU4vHKo9Lt9uDBKW4O9yePpsLiKHe7fbt8/H7WX5I4b/gKphMGuftXfMEIG6jojqPh+/nxMxwHTanECrXRy/hxe7vD46StFxi46az88N9LAYJCQI43GXl+3wkZ90tfv4HkHpZAXyuzOB/AYKtsXHIdshSFAbL7SwfDPDNXqZXYpxMBDZ6w918CKyrRxZ6qp0uuoZtlWUOiQFRNUpyu28uEv3n1xY7hK1Ji/qCK28XM/w1W5ruoisZfB1ZKuvBmGowIBhLZ9JcKp8LB0/UJ8cyIpQzZy7S9D2GOFDkSRsi5dvcDKVs85qpxcDD5qFUB8wBLUIcqUTqMd+sm2cE1CKmjhLA05tNQ6HBtOVaRGtjAiy5ImOvFjP8hjV0CXysGxOIK/Cw3ZIWh+ZpgrCdgpqGyPiVUNNHAu1Cnwzj6HR2+DxNHo/sfVud6Pb0+JjoCaMr+Aqu7PJiaGaUBRFKNgWUJTTDcGhgt9odzbM2JrmHK0ON5kB8pF3sA3gBcoBJducUJuTABOBGLu7ZdbRaXN3ObwAC+BFFzjmmeh9Qm8MChmwIJtWwNOsHTcVYB2C0zGHRoil8V63rw907vTQCJrqsHAKIo7Vchu46hljIdKJxsFetKZ1FiLaE2ATASkellZLZ0mpw9tlc/Xj0+FhyTwuPiOW4ONTgDiUDkIArM5ZVxdulWcvGVwFAbAgypdovJ8V6Fn2ieqpYPzm0qOLsfn9vHIyEP3Cw6dX51f2sCJ5mQy3mxfwsYLtZ9ElpsvjbXO6qNpdbgik1enx4nMHCx+RdCkinQyDd3b9DXV78b6nhXe/3unC/dDk89W5iNPKce08ASkCVfi24OUafDyEG9K6w8l9Tm/vai9Lpq/wPYfhd+K2t/b/1ViYVSfI1SB7WQVX1Wt6nabT/VVQrW5AdAYLXFWhKFWanuYq8ts6k9AVQStRBlqRnwTqRpmq0D1MJboKlAHQAGtAVwCpLJ5JL/whC8aCzRCYHIUs7ZHJKtT3GyCnTEnYzPq2CdxmgX+RY7eIAiEqTUWWxulqYKbAQ7mSCIGW0DLlKkpRdNqMsh0VKtBqYLt8TQVOQXAKTL0oYOYbWqYqZejyNlPJDhl5ITM3oBdHgjuikVLDaF1YPPUzHx18/4OaKHk2VWkikhvxF8xHc5OBvLi/cjm5/9s/deRnvtW0kKqKhtserVWupioeLBSvxvMWQsULkZZ3HuyMBMsCRlk8AqLasZiEti8kILARXfIDGJWvpKCS5WQR2IhAUmxTWN2UMLbMBzPmQ9uSga0Jf858uHgtVbgUJ1ogeLf94RJqlq7NV733oPTRSuGDxaKHS7A5i/H8lVTZ41UobyEJFa8ulT9c23RycIrOuFCuwuBNucrKkuEc3HD07uTpwVmyXweMNYy4D0R1mkxETR+7M0U3Y4EnQFRnLKLC4afAJXenqE4CngamqE7cnTh2ewx09fIbQ3AglF4Yc1yacJ0bsRF+ujdJiYpAFSGqyZP3xo/fGUfN86N2Mq01NH16ZC692Qg9OQWoGrRRwQf00AihKyv48lvjJwbmbtil6zbxygxz9M7kSfAQ4OnZpBd88BOycNJFsASJRp3rO66sltHa8Xuz8M8C4EYcx+5OHbs9gWt1cRwXx4XXDh8t4KiLkx6IbuE/BWgbmEFXEUfpkdsTOBBnRIT0Hwg16r5pky6OeeATqB1yXJ32nRqgPxew42ICaiE0jlNcmQJduXA1wExgTTiwuG7pLC3CxcSFvTbjPT8BpJs+NTJ7bhzcCcizX5xyIQiigkN+4zmMVzqDyOUZz6VpkJ8HV+nqLHtpynthynNljgVOXbVxl2eZi9NeCD6g6tIcAxHHDrrSflyLf9VMfVEKvwbM4vw3yXNE1VcYAz4sshB1rnuVm4z2CqdDNzjtOqtdY1TYm4Jx2SOdc3EXPeIlr3TBLUBXfNp5i6hOOfgzLukio51yCkdmvScAUnaG6pDNB70854UO2rwvO4gO2j37bO4DDu8hMJaLPej07Xd6D7h80D5Ald0F7XF69uF/f9u6s9fl3WV39dtcux1uMFbX1FwPmGnOieweFzDLu8vp7nG4DsjqUX8AtgdZu6vP6emzu3rRiMvX63B321xddlenE8OYq8Pl6nJ7+sj45IF6MKphmLS5oE6Xtwcc4LK2yHh8XR6mze2F4De7vE0YpH18C3AEpMWJxIKlGL7Zx7ayPFnUEyRAVQsn9Kpan6IdjiYOxRKAJ7ITyEd+7lTjcjcyLPlhFMujGo7qltXLj59O/tPfGvmV3ziVWml2sc1evl1UWzipkcxCcc0YALxMHdgFfINz8VKLqMBpFKRahqt2eWvcPtREvJkRGjzkcKjG5qp3ehtdDNTKkAeU77Q5q1yeapeH1q/HwOP2gcZg6S/vELEeH0WeIEX9Jk5sFRV0AFmciNaswXVgBSqcFBZB1EHlZlmFg66i263kr8UpaKTG6cHLaROUZlbslsjzu5vcZON5Gye0iUILzzV4PfUed6PP28T44DS4XE1AK7e7zulswujLsBCcJnCVzQFgana6IGShZlxPm6Nhzg412Z0tLncr4SoX8e0Ytt30raQRCA6yKGqecwCt2h1uvOMdDjf4pmXK1j7r7MQ9YHMh2zrnhG23u7pc3m6LbFAT9el9gnibzaIl3GMuDwQHWRqBbZuxEeRykLuO8laX3Y2jepykNfI7VjJvRO7AjjncluRnregGTg1La5KsE3QFzPLSo3Z7+T2c1Afss5M6cBCBRWvIdk7b9riZ/T5+t8vbj4+Gm9nn5XY5PfBhqeDjE9Ez5+yedfTbvX1OXz+IinxAvKRLdg8sfHQDZ0TLKOp3s3t8Ak60283tZ2VSOus6aYa/8ODp5eTiXlbCq+vDx5AT9grSbpbvxafG5Ya6QUuEn9J05UIWvNViB+w6ITjUp0XN1ru5TsZ4u11gZRexHm+9w9lo3RV1dketw4Egbo8WhsPnrtnDWXvs2Abrtw41bk+tBx8WHxir1usj3zoYBmgFwKrjxCbJ+vEHL5EHWXFiLb7bBMMEqlQNCNVo+luCoWpV284LVYoKzEKwWlbIjwR1o1LXqwyjyu/foWmwNcFgpWmCqMBVpZJCuQo0A5EFOFWGBdBkcwxICzRDuQrKkjio0FQzRTZPkwBJdF2vNBwE61BmKtK1Yt3MFeUCWS33B3f4Q0WqnqvIoC7ULDR0CNl8RbYW9XSQHMU42GJAlaGVAZhUuUAlQcJSigikQzZb5unCH05a7DcBc9mKRJYdVSkvGtjqV7bo0lZV3KaK+QFjZyxaFY3uefe9G7/6a0d/+me2h4LoZHE8DPYC1mREzcy4UbIYzwmqReFA9WKiLBKqslb0SlcTBcvxqvfWdqwtlCZC5cFA2/21PL9elortXCIPvipJRMBSUH4C7BUrXUqULScpVOXNR/KS4exUKGc5tnkh+ELc2JwKZC6EoTRdVbyzBpDKTARK7s9nJYO5C5HihwvbUuGtyVDWYixnOZG5EM0Gez1YhAruL22Oh3JX5suePth0amjy9PDMcfCB9ShO+qQo8hCmKTfZTm79Ib8L057z485Dd8YQuTjhOjU4d+LeDIgKRxGoGpglFHVv+vBbo+dG7NDRt0FCk6fBJSi9N30e7dydOjMwfQp8dnfq7ODMidvj8I+/PYYgdOzW6JE3h1F0bmj29L2pk3cn0zp1b+r0wBTdw77+C8HB2ZN3p47fnjr29tSpu7Onhx2nh53H780dvjP18tsTR9AlMJC18+n0qP3I3clD1pNF6aOzTg3PnSNbuT0XJp0nBqYOvT1y/B4YawqWOlS4IGdG8doBWFNH746TGalRxxkLHCEgEV44IrBANJQSliLLozaLnBxASfAlent+1AHeQocRQc+RJS9kYAY+SumDJBCEj2q0FBHykgdnLXLC4Q4rPo2LcBbYNIzrMJ3uIe0k/FPApqFpZPG6zo7Z4JyfcMBZfyGEmRyX8IaOzOJlnhu3w0d9tHMZ7+wEYGsODixeLLLX57irMwz9+SFEHEtgrGs27oZThL08x1yxsWSf+5T7hku5Zhdhv8gFvsQHX/XqN90q+TuDDvG6W6FEdcOrQQStyF6r9WXBVznzNSn4Y2rki1r0S3rsdTl0yS2dc/DXGB06a+dOzzGXvcoln3LRK58jC4LCaSd3ysEet/mgYw7mCMEpz8FZN7G2db1s9x6wdNDhO+RiDrp8++2ePbPOA07f7hlH34x9HwDLw+zF12v8pz/rQHY/eMvtg91tdwOzYPc4PHD655y9c46eWTtsn80J9TpcnfC97AFO3seIfQ5f54yza9YFB+q1e3tsni6buxMDEoYot6/Hw5DhDYOlw0NGLFbs9/GdZNcL20FWjrwQRugWh6vF6ba2WDHkv3h8eya/QfO1Wptwm70+8r85Bm9Bwv/y7SL5yyqNPq6JLAjyYKYeVd9l+DslpRH/0Xu8jT6mmeVg4YMqcEiN3VnrdJ9cXLb/y38V/u537b/xzw8awU4f3+ZjK6dn23mRHEK36/p8NT5fpcsF2yyKLZLUqeuw9SxLijyeKqezxu1GzSYOsOWCar3eSodjx9wcLEprPWiEJWDkY8BGVQ436uDAOusQHIg6VXZHvddDO9mpqp2GAUv+xJssN1rdoD/LgoVPzwIHPaTPKILSTy2ibaL9euu11zhdtRg70QF0w+kme5Pd3g5OqLY5Kmbmahz2itkZqMbpaGZ8tS5nncNR73SSDTfguWlbi9NbZ3NCDXPO+lkH1GgDKrmhZoenbsbeNIfB29dsc8NpsXvg0N/oNc7ZIfBQy5wD6sJbCZDCWww8mnW0zNghOG1zzj4vbgZX26wNgtPt8sC2z9m7nLhniDrtzg6w1JwdNu3grusES9mcPcCgWXvzxFT79FzHjK1r1tENfJlzds7YO6bm2qdmcRN2A1zm3LgPYeGTmxPENuvqnCX3ajqCmqjTMYOWnaQy2VZI7l7YXie5seHQ57rRexvaZSdzut1TNqh/ztWLD9Ssc4/DC+2yuRGBhU++pTjxjcXdM+vomXHhqH6bF50hDlqbIyfqnLTB3+cTYNErRMgfP/Bw8HeTB8WxxPq4l0VlPyv0gvys147L1eMG/OHTRAS/0wUuBB062+0OCA6yCHYg+P1qRx1glsOF9wu22e4kP67E9xl8G7FomAAxWQIm7FVvdyCLUnwkO7w+6w5xNzjcuFvw7QVcXu/21rnJzVbrcQOw6hlfHcfV4Y61drIT4XsCBOiXVSoAFkT2rRsm6Aq2XjeaDKNeJ49gIHSlavT5CztlucYwdqoKZaxy6w/F0Gcr7DQJWtHd69t1rdzUSzSFzBUpEl3+y1VFKEvhoWxVAOKAeCBgFhgLlu4fz+X4ck3vXlzpXVytlswDi4++/Mu/durr3yoje63IEmGBrhEUE4VcAY0rJTr5EzfUkl/2mWa535+LbuhKkV+jJEcZDmfPEBggHe1DgV8tCup5hpyjibmmtkXms/1GXsAPFYVD+QF/vmGUhELVCwtQcSRcEosWJWO50VBuIrI1aBQvpcheqHgESLRzdYksxqXI/FNhMgbqKl1b3PmQbHJCpDgawbHl88ntywtliylUgy1ZSBbPJ8pWF9FOXjIKFS4loaxkOCseypmPFj2Yz0gFC++nshcjWQvh0sdLOUtRCH7+agLBvMVo6YMFABwgrGg1mbeczF1KFKzOQ9kLMfh5qwuZC/FtqeiWVDRndSH/wfKm8+NzZzFCWxNURNbTz8+NE8Ehj2IfnD6GsXxk7vjQzMmR2QNvDYOrgBFpoqJTU8dvTxx5a/TEncljt8eP3hoDToF+TgCkABx3J4+9NXLyzgTs8Vujp+5OHH1zGA4sAOvE22OHvzb48lfu0SDqnLgzTnR3Yl13xtH4sbcRAWkBs2YIsd0FXc1Ap+/NnRq0n7g3d4xsZp86gg6QLU0ErUBRR+9OkL8/SLlqAHHyhwivzHggvOoT9yYIeRB+moRefmvo0K3hw2+PQHCQPfDGwP6v3TuE12XNyeFVwx67M3H41tjxu5NHb687iJMNZBZlovTEnYn0az8PFgR1gauG5iDS83vTZ8BPFh3SV3RuePbimB2WwNMQXt3UmcHpS+MOmoV/8i4anKDxU/dIV9Hz47gyA4SJIRASssfujlNagvDqEEc1GqE14aMOfdX0JV+adJ4bs8G5QMDLBf/8uP0CwHr9b0E6L024LxG0AmC5YS/P+C5Ney9MuM6Tbe++aw7+ulO4ZhcuzbBX5vibThmij++CvU62vSuveLVXfTrVa4wBvc77r3uUy07hqku66lVeFwN3Ug/sX//24NKTL6qRC07hkku87JHPgavAbXbuvFM45+SBUyftzAmbD/aUkzvt5I87mGN23xG797DNc8i+rsMO7/451/5ZJxEcuxvaN+fcM+OA3Tvr3D1HtNfugnbhP/3JWVhE9tiIdj/THpTOOUFdPTM2qt5Zex8Yy+bonrHT8QBjQK/N3TWNiDPtkEHOmrIi8wc2DJDOdrL04+zAyEeWcryddlcrxl2npwX/reP7tBP/y7taqIOv3V5fo93RiO/NZBIF/8Xj+7SrwYn/zV11Dmcbyzd6vM0M2y5IjR6m0Qt6YOrxrdrjBUBArRzfxgugq2p8R2e5GocTxwIsILTQwQsX1x5M/C+/eutbP3tQMdscniabs3bG1imIHYLYLoqNDANGoSgDSx7nw7JgHXAMKIcglMeDCAS0gl/hcFQ6nYjvtNshOGCmSicwCIONjz7IoMbtrcWBLhcab7Z2rlThqLnZWqejwe2qczsbOQ7to80668mNsGgHts7tXj/E2j5Mt0OhnRbQFc+3Aq0swV/fKeVyQ3jJdU4XLkUDBjynE5eiwentYARyEciuGk+DC+Ois9HjrpydaXS72ny+utm5iompull7i8Pb5RVaXGQpsHHOSTTraJixwzbbMQy76qdtTbNOXLdmFM04WmwuOM02B9Q4a4Pa7c6WWXsTiAeD95wDapt1tM7YYana55xddtwJjnZw1cxcWsimhWzL1AxV6/QssqjfbQM52aDuOYCUAw4QqmN6rmvahhsSgtMxOds+MUNuQmiWqAfoY3NTIYhblN6lNA6LOl2oSeaWiL9+rFWT1tllwxcMTx++OVjqn3Pvtrm6J+d6p+1w+mfxGcHnhXxYaLZnygb1zThohFSectBdjLsBfFOO7kl774wTkZ5pJ8lOOajTNWFDEXy8kF58hyFzwM4+J1l/7wdU4buNwwV1O13dICeAps2BKwm/Y87eNmdrnZ1rmZmFhd9us0NtP0SdQCV8n3G66WxWGz59drybc002BwTYwocRFpSMLD6VqIBqiCBLPpvgLeuz2eB0gqvWRdDKU0seJeptxufFeowIkbW/qlk3mw1/k242akaDqjdoACmDLghWywq4qkEjXAUhCFG0qtZ10BW4qsbvp78NJBSlqVRk1or+wT5AEt1Cbs0YEakiCAZAs03mwFUAHco6OQphLChfkcFG+YJYG4rsf/j06JOv706sXv+p77h+97vTv/u/bzf9lKtyVBnYlMEymQwDtCrTDfI3mzUNaAULqCoPBgo1tTigFxgKhTl6FghOYUCDAFX5pgLBydWlDIXP0KQc08gx9FzTKAwFwVXZuoZIYThUEAlt0ZWtppYRMEBUOclIVjQIKiq12AgqWkxCBfNxIFfJ8nzhQgI+bFEqXpCIUpCCgF8UrbavLJYvL5SuLOx8uFr+YDl/IY42YQvARgux7FQENjMR2BYzoaxkEIAFoipYS8LJXY7BgaVolTMfRk0yvzUfxeElD5cL1xa2JUJbk2SOCmi1bSEOrspcSeU+WNp0YmAcY/DFSSdGVhAG+APkAaUneI5ZP2Q7O+4+Biawfh9H8Iv88I1MuoAbzg3bwAoUfY7eGj30xtAxcBVI6+3xI2+NwDlxa/TIG0PHb43AHn1z6OTbY3COvTV8+s4EdApodWsUpRCKkD3y1tDRW8PH3x6lgn/kzeHDbwzBos0zA9PnhuagM4MgtplTd6aP3wGgTJ+8NwPnyK2JI7fGj92eQvbM0BwBvjuTpwaAgNPHbk/QibSzI7Pnx2ynBqeO3RmDPT0EKCG0cfT2KJyTA5OwR0BXt4aO3BpG8AhezsD0aZwOWIbLAnq7NYbWIDjIIk6zaN9a3yT+4bdGUIqik/fIWiEsRNiLLIwS0fqw6AC6BIs+0N368M9Z2IfOwKKftGPoLSy6hAgtpRWojzgq0FeEw89QrhokPkrRLF41LPGHZ3BGFCECB5EL4/bXXcLrbvHqjOf8KJkkgy4ArayHNZyzHjB2aYo8xOE8qAsia4juq9YztF51Szec/HUHD588UsvOXbGx15w81XWXcNMt3fTKr/gU2BseCbri4C45uStu4aKDhfMTRnTq4dfH77/7k/74Fa94ycVfdHFn5jxnZt3n7L4zNi/8UzbPyTk3LJHDCx2zuaGjdvcRm+uwzXVozgl7xO7aN+3YO2XfO2Ujdnpde6Zsu6fmQFp7ba6+qVloD3AKA9L41K5pW1q7EXymXTP2vqm57qkZqGdqtncaY8lc98xc19Qc/sff7cCXb1cPxrOpuZ6pub4Ze+fkTNfUbBeGuhlb15y9k4yRGDJnW6emOzBwTs9CHXO2lqnppqmpDpu9eXa2ZW6u1WFvczpgoRY4GPVn5xrnbE0O679vyOGod9jr7LbaOXszGMXuaABvAYBAKgQmXNV2e4PbTfcGoQj4VWOzV83OIVs9Z0N9EBV8xLdPTDY5XV0edg8v9/n4Noebrok0ucjmkjaeRzvVTmcN2nQ6QTAgm0qbrZFloBq3qwJ98LjbZalF4KucDmR3zM3CUgcRlMJW2hxVdjTirveQJxdAaAoNovEmnw99Roer5mZqHLZapx0Wp8OYRGDLZkM1OFV2OznEbserwyH0KBwOTqqy2eBQIdgEFHO766zKeKX0tcNpcoOfyKWAUz1jr7O5GjFSEmGwhOaa7DZc7YbZGVxtqGZqpm56DlzV5iI7ta2fFLjI/iSXt2nGXj812wS0mnE0TM42Tdtb51ywTVO2llknnMapmSaMylMzzVOz7XOOlum5psnp1hkbjbROzbVN26jgt0zNtk3N4H4gt8f0bPPEVNP4JL1DYKGWySkEn1f75DRuqu5ZkNNcx9RM59Qs/J45R8fE9PotN0XuSTiItI9PwUI03g3qspSug0Oso9aLqNM764BoHdzSiKAFgBEVvl30ToOWcP8DmOz90/au8eneqbndgKppkt0140AWDiyKIHxd6ZuyIY46cMi3F5DWjANFsHvt7u6JmX0OD61PImCyaXzcbDgX7QbtWLqT6DM+dBC9DrgIEPmg2Ry4dOnPF/mIITtn67TZW6dBpTP4AJLPICw+jJbw0eu0OyA4UBeZxHLgkwjRj2Sb3d5itzXNzTbb5vDZbJrGmz7bCDuDCjZy/1ho1eAgXwwaya3oqnE6oFoAltdTz7IN+Cjhq4goNkgS1CjLjYpSI4q1klSvKPWqCtU9c6hfI0lEigwBqiplpUrTdkhShaZWmwa4Cqo0TWi7rlb4jcqAudPUSxWpiPylGqFYlQpVMV8RCgA0BGKUPEPK1UVYijV5hpyliZmqAAGY8jU1W+ALRKkMDKf7KyStOzp/6YOPTn39W8AmVKAb2+nDEehfv4HyRDFfkihXkQhgSFNLQyYoCrhGAY7MWskcTgekA0sBrYBTuaZSHPFDcHIDZN96tqmSP8kXDhSG/FmGAhVGAkWxUFZQz4n68+LBnHiwZDVVvERwasfqEgR4yktGCVctJrIT4dK1RbKFPBkFYwGqCpOxkoUkQGr7cqry/tL21fmy5SQs3U2148FS5dO1ouUE4AmEVLAcz1+KAaGATbkLkaLVJJgJFiCVtxKvfP9h/mqCiqIV6hSuJEruzwOw8ldSOYvx3KUEbOZCNGc5kbea2gLqWkpuTka2ANRWUpsOvz10amgaXHVpynV6mPyRmdMjNnDVcQz896bIYwisRzGdHHa+fGvy2MDc0btkpurkvelrb927fmvwxttE128NIHv1zXvX3hq4+uZdiDqXv3YH8Wtv3r3ytdvXUeGNOxB1qEUconHqoPLlr719GfE3oDtX37wDe+WNu5Z/Fye68fbQzdvrunFr6Npbg1feHLj61sC1W4NXLf/yG/egK2/eQ9Cy966jh2+jFNVI8NIbt6++dffym3eoc+0WgsRewbneugsfFqUQIsji2Bu3h2Gv3Rq4/vaQdSLSJrJwkEXQapzo8htoCp3Bqe/i7LTyZbwEy/9+oTVy7PW3B27cGbr29sDVW/du3B6Ef53at1FhAHH0DZZkbw9C6Bj8V+4O37wzhEPQSZTevDtM7J0horvDr94bgUOPQpv0BcIhL/bWPdKOFU+f7pV7I39vfOYnpmxfGpt+9d7oK3eJ4Lw6MEb1iuVT+/rQxOvDE68Ojr06OP6FkckfG52CfX14EtZyJl6HMzr9hdGp10eI4P/Y+MwXJ2ZhvzA2/fro1GuoNjb9hfGZV0YmbgyOvTY69eUZx1ccni/POn5sau4LEzOvjk3dGB6/OTz+GnVQbXTi5ugk7PWR8avDY1eGRongjIzBXhoevTQ0Ant5ePTC4Mh5aGAYOjdIRLKWLg6PXRgZOzs4fGZgCJY654dHzw2NrAv+8OjZoZH10sHh0wNDEJwzQyR7anDo9NDI6eGRs8OjZ4ZHiU+KRnAILLKnBodPDg4RDQ2fGh45NTJKnRODQ9CpkZETQ8PHBgdPDo8cHx4mQmR0XcdGiI4OW87oKHR8bAz26OjokdGRw4iPjb88NHwYpRMTR8bGjo6Pw0LIHp+YPDo2fmh45NAwKozCP0KOGj2GOqNjEI46MDB4dHTs0MDQsaGRk+OTONERdGxi8sTk1EWX68TU1KHR0ZdHRmChw2NjsPsHB19GcHT04MjwAbQ8PnZ8evrY1CQiB4aHEDmIZoeH9w+h2ghK4R/CKSwdGZ84il5NTB4ZHydtjowcRpfGxmAPo/LoyJExnGiEnHFsDPYgOZacet2x6lOlfXo4sukInJfRjaEhvHa8cOsKjODlH8WVwaUbGz+OVzo6fmJ84sTY+ImxsZOIDA+fwGXHZRwaOjo4dAwXdgiXffTE6MThgeETo+PHhkdPjk2cn549Nz17fGTs8MDQkUG8ayNHcOkGR44PjR61stQhLeA9RdHA0PGh4eOIDAzCIRHypg+fGMKbPoL4sXuDR+8O4DagtwTs8YHBY/fWI/QOQYQqnT0xMIjb6RQOeXZrwSHZAct5XgNDJ6F7g0TUR520nquTzuLuhb9+61pBemOjDvkUPBMqkI/AM526N4gPxdnBEfrRWHcG8GmyZNVBkDr4QJ26O4hDUHRhZPw1u+t1p/v88BiK0h+udGV6LtIxFMHSXlEf58WrprJ8fAzPjIzCwdVLi3zoyOcOF3zoxBAV3oLhE3jTLR1HZHgYH0BiR0ZOjY5C9H6gH8l1f2TdP4JPzSC5T47iPSUf2xHYo8PD5HNqfULx2Tw0PPTy0CBsHUiL55sEoUmSmmW5WVGaVbVZ01o0rZLjqgWhTpZBUbWWBVE16jp8iHJVtUzRSgVaQdtFkWxmN3T6pFBAFdl3ZXFVVdAPW64pJeRpnFKprhQAqhShUJOK/GpxQMs3ZUCVJTkHlKNLmbqYoQlQpo6IWkh+uKfnCkKxJJcJcikrVgp6gZspVNYnqwp0DeSEOqWGsT1AHkGew/PgqnLrOZ/04Qtk6suvgauAU3SminIVnTADUVGky0OXIv6SKCjKyA+ZQCigFVRi/f1jSlpZppob8YOrKFRlRM3cVDgz5i+Yj5ctzZcvL+SnYjnxcE4ykjcfy02R5bz8BTJZVbxE5qUgVCNotTpf8WCJ4NRivHQpUbgQI7/vW05UPFktXkmCkCDgEZmCsrgKDl3jo6QFlT5eyl6MEJxajhU/XCh6MG/t4nrQ9K33dr53H1xFl/9yV5KAqvy1+Zy11EvJILjqhUToxWR462Kc7K86emfs7Ojc+XE7AOv4wLQ1X+U4PjB75M7UhXHfaeuvFx8bsJ0adl2YZI4P2E7cmTl+ZxKs8/FG2kgbaSNtpI20kT7+GFxV7yJLz40s18QLTYLYLIKulCZFaQJCAbMAWLoO2wCosnAKdNWkaVCDJTJ3pan1ulZn6rW6QdYBNa3aJButIDiVYClV3q4poCsIXFVGdq9LUJ7E5YpsnswXGDKUq4Jy+BxQlAqQIkS1VeOpMgwxyy9vlrgCUy/2mxXRSEUwVCIr5NGjupEnS3T1sMBQ6CZ0+lu/cr9RIIsluloZCe0IB0r9OkpBVKiZD1DTxAyJBVGR2SldotuqKNLlA/ICGhyoIKiDogqjQaAVAKsoGiwI++EUx0JprsqNBbKi/s1BFWi1JaTlJiJQXjJKuWpbxJ8ZC+YtgoTIKl7Rcqrs/tLOh6s7HqyULM+jTtnq/I4HS6UrqaLFePFSomA+mpcMFy7FS1ZThStknzv4CdiUOR/KWgiDnPJXExmpICyy25IBOJSuqABVhfdTCFZ98Kj5ow+qv/GY1FlLVrz/eMd7D8FV28Bna6nc+/OZK6mXUpHN89Gty4lNp4enjtwePWlthSZ7cdbXAR0nyNPDHScH7CeHXdfs8sUp7sAbk0duz50ZdZ8ZtJ+6N331zXvrd9NG2kgbaSNtpI30dzsdHhmud9hrHc5al5tsEGTYepar5/h6XqgTxWZVBVS1GgbUYqnJUjNIyxLlKogwlqE3B4I1ml5v+huCwWpdr9S1Gr8JAaqodhpahd8gs1amVqLJhapIpqxUsdhQoDyNLAvCgqvoNBWIaovKbQZaWVy1ifNukfnNApunq+RBU4JQrKj5ElnIAxWluapQk4FTlKuKrCdUAarKg+TngYWmmi3zOYoAJ99UcBSAjO6polyFbBa6YXEVnGxdKoyY4Kd8i6XygmTuik5cFcfJA6KKU9HsiJkNrooHMuJ+ABCZXkIwFiIrgMupgsVEZiIEoipeW8hKhsFVBcvJ4pX50rXF8rUlcFXBfLxkObn9/iK4ClBF7EqyaDlR/mCRzksBrdAsEAosBUvJCYxV+ngJjIVI+dOVgrVkyaNFOl8FooJFteKHC9vfWS1+tJi1GCl6uFD1jac7Pnic92ABUFXwaCnv4WL22sK2pUTW/YWch9b+qmN3R4/fG6NoRTdXnRomDyU/P+49ftd2ath7y786knz3C97IuTHu5IDz9ADZUHXtrYH1u2kjbaSNtJE20kb6u52OjA432GaaPe4WxtfKc22i0CZLbarSpqltutYsS82K3IKsrrUHzI6gH4LTrCrNugo1aUqDItUqYp2i1GlqSzBQa2iNQX9TJFhrmkCr2oAfXFVl6FCl36gO+qtDAWhn0Nzu18v8WqmpQuUBHSox1RJDgc3VxSxDzNSFbTqZrNqmC5mmlB1QCmP+vKC2TSW/0QNa5WtqWcCfKZCN7TkamYUCVxUbaompkScsmOuPVECEPqGqyK9BtHKuTlYbIbAUlAvG0kQqsBSy2aYM4XSUq8if5/NrZIIqaEA51gxWQTwEbfUr20J6RpRsJAcJZadCualw3nykcCletJoEFeWtxME6hfdTdI85yS7FIPATRB86Vbo2D5aic1Q4CioH+jxb+wM80cmq7MUI0VI0Yz6UuxKHgzigis5RUQft45Cc5RhKQVSoVojgg1TRk6Wid5aBUwWPl6HMlUT2WioLRz1dK3r3waZzY7OnhiZBV/RHZOfGneAq+udcDr89c2rQeWFSmFr+5vv/5k/+wff+LPWP/s2XuejRtyaO3hrbWAfcSBtpI22kjbSRaDo2OlI/O9XosDd53M2Mr4VjW0ShVRJbLZxq1zUQFZxWYJaht/mNFmCTKrcijqyh0yzQqtHad9VsmvW61uQ3m8PBOsPiKtCVaVRoKrgKgAWuqgr6KwPmjoABrtoeNChaAargEKgyFDh0G3uuX84mdEWUZUg5fmWrwsHJCxpF4UCWLOaoclUysT0SLgrq5Kd8pkrQSpUIQulk4mp7wARdAaoQz1GEkqBRHgmApQBVmdYPD3FUccggWVWgOFUUNiH4GZoArsJJCdJZf/A401AydDkvZOaH/eCq9WeapyKAquwEeVIUEAdAsy1JfqyHLNkCZWEQcAcC5aAo1/rJHkUrIBflqvyFKNmBvkjmunAUWAoOIqiDBtEsgIw2ThhrMQJmAiplLoTzn/36b8e7a0C34ocLpY+XyLLgcqzo4QKICvgFospaieU8SAKq8h8vbF2MbluK5T5YyHm4kLGayH4wX/zew5KvP9pk/eR+/MzINH3cwHFr3/qpYfvRO1OXprgzw+7jA66bTpN7/x/8/H/4s3/4ve89/Rf/+48zgYNfGbj4lVvrd9NG2kgbaSNtpI30dzsdHxttnp1udThaPZ42hmnn+XaBcFWzJDYKfJMoNEliiyJ3GHqHabRoaqMsQd1Bs0kVGxWhzVTBWOCqVlPvn090RIKNptZoGg0Bs1pToFpDqzbIo63oxBXdwA6V6kqxLldEAgWKAGdn2F9mqAiWm1qhTDazk5XBgJavS9kqD+VYG8nphifQD+GhoL80HCwNBqAcTdweD1UmoyCnUr9eEQ3tjATpRquygIEscApFOCrfVFAZULVVYsFS+QENFAVLfvRnKvkhPTegAqdAcmC4LTILJzekbdGFrX4pwy9nBhQoK6jmRc2CeCA3ZuYk/NlxMyOmb4OSZkbKvyWuk6VAquUYEAp8A9DJWIqQPz6D+kvRgvspxLMWyEPSaz94XLgSy1+NFSxHc5dxSCRvJVqwFi+8n8icD8AnwdVowYNE3losaymUsxLZMh/cthgGLWWvxoFZ21JBSm8ljxYr339InhoaN0FdKM29n9y8EMxcjeU8TGWuxbcuR7atRC3Fsx8v5j5dzniQ2rwSgzaRver3xqylQOtZR0PkUQvkjw0P2Y7cnjk36r0wKRy9az90a+Z1T8h+/9vat/7xF5zqoa8NXf7anfW7aSNtpI20kTbSRvq7nU6MjbXMTLc5HG1ud6uXPNe3hWVbOK5VJGjVHfB3mgaBKkNvN/Q2a5qqE0G/3qyITbLQaihNilzDsfWiQBcKG3SlUdeb/GadplKuqtHVHZJEJ67AVZV+MlNVosklhlIdDxeqYqmpwiHLgqq8XVdLFbKlnc5dFWrSs18L6uRJniZZsyswyFMYCg2dPgWU/AFBTcwzyDIfqtEJKrrLCpb4Vrw4ZJD1Pmt/erYugdKoCoI6fZ4C2ajuVyCgFZRlSNtUHso0pW1QYB2qKFflhPW8uD8zqgOqclKB7FQARLU1ZWYsBIA++atk7Q9QBeiBQFSUgeDkrCXIqpz19M7M+RDqFN5P5SyFKVHByV4MQfBBWnDAVdnLYbQJqAJdEa5ai21bjmSsRNFU3oMUacr6kSC4ioDaw4WM+RCU/3A+ay2efT+R/SAJnMp8mMy6n9gKMruf2LIaBUiBqDIfzm9dS8CH3UTmqO5N0OdhgqusZ2lOHrtHHlV17M7s0dszxwcdJwYdL9+aPPDG5PG79tNDjgsjzoNfGdhYB9xIG2kjbaSNtJFoOjk+1jI12WY99arV7Wr1eto5tkuVdwXMvZHQrlCg1290akqbTCgKajfU3nCgXZXhA62QbdXkBplvUsWOIFklrFMloFWTX6/T5FpVqgU8aVKFKtUFjBq/vtNQKv3adr9aqktlfqU2GS7ShDJDrgyb5bpUovDbNalE4ooU8iAGWFBXsS6nd1+RH/T5NTIRRZCL/C0a8hcGJQ7ABFrKUYTSkLk95EdRviKi8o5wAJXzNAlcVRrxFwV1EBV5GpYhFwKzgjr94WFR1F8cC4Co4BA/ESxJhgpj/tyQlhNUcyNGRlDZFlYzQyocqqywlhM1MiIa0ApclQ9yWghuSRrgKjKrZG2BylmOQWQ+aTGcuRwF5eQ8SBa/u1LyzgqQCHFaAQwEWgIz5d+P41hKUTkrEZoteJBABM0igjpk4upRCly1ZSkMS2akrF1WORZa1f7U072/+kvV33zyYlTfMh/MezRPFv6WIy8th7c9TGQ8SMBmPUptfRB/YTm0eS265X7ipdUYtPVBctPRO2PgqiO3R+HQdcAjdyaO3Jk6fm/m/Lj7+N25YwO2s2Oek0POo3dmDr89dfDN8WO3Jvb/xN3P4arf+Ke/+Z1f+KW/jH79N/7Zf/tv/239sI20kTbSRtpIG+n/menk2GjTxDi4qt3lbPe4OxhftyTuMoz9sciRhVSPqXfpKqCqReTrBRZqUaWugNGhKUCrNl3pMDWKVu1+rScSaFTlWtTU5OZnXAVbpYpVqlwfNGsDRoWpVgX0HQGt3FR2ho2KiFmo8sUqQStwVV0k0JaMVQfJM67KTdTRygwVIpux6E4sazc63YeenpcCNpUEjWyVPDC9LOyviIZQhHh50IQPAkO8OGSAq/L8Kt1EBZGnJ5iK9Sx1IS+o5Yf0LEPKDaigq+yAkuWXMwxx/fkOQUJUz3MVHHAViAraElYy4kYuEGc5/FLS2Jwys1ejL0S0bakgmCn3fpJMU61E12eYHiQLny4VPVnKe5AquJ8qfrRY+GCe0NVKBPxU/Hi+6FEKOEUZi2ZhUZq5GISlmFXyzhKa2rwY2rwQ3LpkEZu1iwtoBai6+Hv/sv0XvvViwkRp/pPFvMcLLywGX1qNgKggEFXm43WuQjDNVXA2Hb09cewu2bRuLQhOHLs3dXJoltLVycEZ8sdh7s2QPey3p4/dnSF/eHhg7uhbowe/Qh77uX43fSo9ffeDX/313/rVX//NT+m3fu03iN7/6V98/1u/AK09eue73/3u+mEbaSNtpI20kTbS/zPTidGR5rGxjrnZLpezy+fpYn2dItetSv2mtifk71DEdlloV8UOTWpTxRaZh+0y1d6g0RPQ4bRrUpMsNEp8MyqYaoMi1AgM5aoGXQFU1etkvqpaU+h8FeUqQBVUGfWX+RXKVSUKj/iBp49OfviN/rXlyrBZkwjVJqNVsdCOkAntDPshur0ddEUAK2hAxQHy6IQCQybPaNDJimE5CMya3Co2lNKQgSCKCgMqlAlOUrncANlHRfjJ2pZOnUxTguizsrbpAoWqzQq7GYeAsYLK1pCyJSjDEsCK6lkxIztu5iYDWyPq1qhGFvJWo1sXAuCqrUtBYM3WhRDd3kS5img1lrkWh7LvJ/IfL5Bf5z1ZKny8WPBoASiW9yBR9GSh8PF87v14zloMWfiIQCjdthjMWonQePG7S7mP5reuxYBWwLWslVjus98bNn/0QcvPfqPo4ULOWqLkvdXsB0lyusfzm9fCWx/HX3oQefE+nOTmh/EXV8Jb7sdAWrDgqs1r8U0n7k0fJX9Qef3P5IGozo45zoza4Ry9MwEdGyDbrY4PzJwYnD12d2rfVwYoV33O/qqf+4Vf/vP/8l/+85//BUKdb//cL/z+7//++mEbaSNtpI20kf72pujnpvVK/1MSTvcHf/AH65nnEoJ/5Z6cGB1tGR9rnZnqcNrBVd0c0ymwHRIPtOo11DaJbxM5cFWXoVCKAldB3X4NXAULn0CVIrbpSrtfa1LFWpFtVNe5CoDVYKjWlJVcZ+o1plapK0CrUl2CqmKBnWGjPKCWGTK4qtKvEa76qQ+6l+bBVbXJcP18HFy1PYg65JeD1Cm1uIrsl7JkQZWSqwqFpgKoAmABpyhaFZLlPw1BEFVxSM8FHqlcpi7kh7RcMJb13FHKVXC2qBxwitrckFYQNfMjRpZf3mqI2wIEpwBVlKsyIhqFqqyEmb8YzogbW+J65mIQXJW5HN6yGIDItqcHKcANcGrrUhjathLNup8AWm19NnEFnMp/SB5/AKWZCVAFiqLZ/IeokwJdpbmKKv9xKu/xwrb71iZ0aykwz/rbNUUP5iE4m+PmtsUwTkFO+iiV+TgFotryKAao2rQa3PIoAa7avBalM1jgKkAV4apTg7Pk79JYf1EY9uTQ7KnhuROD5A/anBqaPTNiOz/lPjUyt/er93b95O3D1hNEj7w5cvAr9y599fb63fSp9Iu/9Pf/5W//Wz75c8L8z4qLH0kr31bu/8w//+e/80d/+N3/7+/9HvSHf/jd2Nd/BfohXPU7H+HW/uh31nPP0h/9k8fR6ON/8kfr2b/WhDN+qmVyvr/odH+ZOuvps07x15D+ept91tp/x+v6/vRXPnAjbaSN9Lc9fQ6y/E/mKvBTPJH4AbT6zOBfPp0cHWkZG22eHG932LoZL7iqW+C6JaFPlXcZWqcqtUt8uyx0aXK3oXZqMkCqVRE6VKnHJGgF0kK23VA6/XpHQG/R5XqZbwJ++bVGQyUbrUzNmrJSKFdVGSr4iWyuMuSaRAgCV5WbSpkmluLAaKgjFQd7IbgjYuyMmuUhjTzUyhKZf/KTLN2KTraxP/sbyXmaSP8SDqErXUYd1ISDSClZATRLwkZeQMkxJWuySsu2nk1F0QoWolD1ksxs1ficoAqoyg5pgKqXVO5FjdsWVjeHPuEqClVQ7nwwK+nfljS3zfuzlkIZS6GtS0FwVfHTRVBR5moE/kvz5kuL/q0rocz70W2r4awHMShjLZK1Fs19mAA/4Sj42fdjEBwcRYrux4FZENAKXIU6sOA2AlhAovvxzStkixUQjTxD4dnjQOmjFvLXkpnL0RdTfoBX3jtLLyyHQFSbH0ZfWAuBq7Y+TkIvPYgBsF68j2AEUEXWAYFTZ4Ztx+9OQYSxBmcO3x4/dGv0yJ0JcNXht8cO3504Pjj98tuj+94Y2P/G4IE3hsFVL3/18+arfuEXf/n//a/+3dvq+7fNr9+LvDOYfDKy9Og3fuNf/dF3/8PzXJX88B/9cK56jPT9wzOCSD+iMTtNJ3+9mPJ8+hG1/Nfb7F+ttR/dRdtIG2kj/e1Jf3O4CukHKOp/EKqQCFeNjrTNTHe5nD2sj8xXsUwb6+vg2S5J2BU0QVQdighLQMrUOnQZLAXbFzIhOOCqFlVsUaUGmadLgc26bHGVDJGJK0MFWjUE9LqAURswqoPGDlPZEdDq56OVUT9ZBNRERIpFtlziKzS5VGBBXWV+BSo1ZRBSmTVNRX4YqMsQ2bRuqkVBHSoI6uR3fBp5Sjv9YzioRv7moLXhnTwNC8eGjMKACqjK8ctQlp/soyqMmPkhHVxF91flgqI0HjYvrBfG/EXxQG7EyAwo5NkKIRUstSWsELQKK9uiGoWqjLixLaaDq6CtCWNL0ti6EKBcBWAi9LMc2rzgB1RtXgpsWQ5C4Kr8p/N5T1LwUTPvUTLnQfzFlAGHMNaDOBV8RPIfp0BX1FLSAnKBqzJWwtYP+sgTE7LuJ7LvJ8iPDZei9GkOWYuRoidLNd9+L//J4kvL4awn85tWwyCqlx5EYKFtT1IQuGrzw/im5eCmFVBXlPhH7owdH5g8OTR97N6E5ZM/EXjsLiKz4Co4h9+eOPL2xOFb44ffGjtya+z47YnDb43v+nu3z3z5zfW76VPpZz76eXCVfemn70SefNm/8GPB6I9FAxZX/cHvkfS74KqlX/yl+7/yc5/DVR999P1ghdhHH/3Ixu80GfzoEOFH1PJfb7N/tdZ+dBdtI22kjfS3J/2N4iqkNEulnfWCv1I6MTpSPzTQPD7e5XR2eTxdPl8Pz3fxfKfA9+tal6q08lwLz8HpNvV2VYZ6/EZ/2N+qSV0BvV5g6nhfm6k0qUJvNNCsiTWir0kXm0y5JaC2BrU6VWgKqFC9X6n1q7VBrTqoVQbVnX65zBR3BJVSQ1jfxu5Xy3WpQPCRje2KvNPQyhSpRJPzZR5sBGzaHg1sD5l01qosbAKV8gJKXlDNNqX8oJpnSKhQHjTAUhV+Y7uuQnVR8vgGABbqlydDuQHlJY3NDMolyWBeWMs0xYKokRtSt2pcdkCGzQop2WEVNiMgbTWFLQa/zS9mhhT6o79NJr81qgGhXowoucuRzISZtxh+MSBmxHQw1gtRBai0dSUEkHphXn9p0dy6Ety85M9+GMt5FN+2Gir/5lru40TWg2jm/QiC+U9The8uIGJl4yCtzPvRgncQSWY9iCECgbEQBEgByMjU16Ifp0Dpiwtmxlok51ECDtANvLV1IZR7P5mxEq381tP+/9cvt/7DjzIfL2xaCm97vLDt6fymFf+m+6GXHkWhFx9G0g6CLzwIwyE+cOp5rqIrgJSrjt+bOnpnAlx19PYkQau3xg6/NQq06v3irX0/MXD5h/8ekHLVTSl5nvdf1vRrQflmjKfzVYAqOl/19J99+PV/8f7ncNU/+SPY9FrgH/0TQlk0TpaaPlkk/MEx3cr/DqqQhGqktpWe1Xr+gLRPHdhniZxgvRT/PDtdur7Vo+fqrDv/ZL2BZ5XouhiNoOy5Y60gEm35c0/xfP1ntT6z2WcJTayn9epWm8+uybPaPzxI3Oe68anTf3/7n+SeZZ8d+KmXuV766au0kTbSRvo7kPCpX/c+lT6n6EeaKFH9j0MV0smx0eaxkdapqdbZ2Va7vdPr7RWEDpYFV+0N+HcF/J2K3C6J4KouQwNUdWhKb8Ds9GvgqnZDaZL5BplrNWSoO2yCqMBVdSoP1WtCoyHVyCyxKl+l8tWaUG2I1X6l0q9UmPIOUypVOXBVmSEXylyRwm/3q2CsqhD5O83gqh2GVhEJkP1SET/ZOBXQwFXArDyJoxNRiBeG9QyVg83RyBYrBCtC/gpTL+bYMlEgf/7Z1MvI7wcVcBjZWRXVQU6Aqiy/tEVl4eQElW06D7rKMIS8mIEKORGNohWgigiMBbSKG1sj6pa4vjmmAaEy58kzq+gkVvFqvGg1vjVlbpn3A4+ynySBU+AqABNwChYstWU5UPDOfN6T5PMCb6EoYy2c9yQFfgJIwYGlXEUj8OFAQCs670XWEK2VRDDcC/NG7sNE+QdrOQ+S9OGfeY8Xtn/ryfafeZrxZPHFtfjmR6kXH8S2PE5mvJuCtjyJp6EKRJXmKkQ2nRicAlF9JlfBWlvXp07cmzl+d/ooQatRglZvT778xsjFH76/inLVRcm8YqjXw9IrCe4LSx46X5VeB/ytf/9b0OdyFflnfTzGCL0esMbiTwqed2lC4NmI/Zxr+bQivPXYc/6nned8/Pvs0PTy5HqPvu/A57njBz2LMT6pSYNW9C9/Cqt0PfLpZj+d0geS+utu+ow/NPgDzidln0qfrvwDwU+9TCuYfqXp8o20kTbSjzThY/c5ab3Sjz59zrn+Z3bj+fTXyVWjoy1jox0zM70eT7fX2+HxdDJMjyj2yNIuQ+/3m5SrYMFVnbraber9oQCFqmZFgNOiS02q0BHQoK6I2WxILQG1yZSh1qDWoItk1koXAVU1oC5TqgnIVUEZaEW5qjKolvulQoUpktjKoN48H9sZJDNMRbqcr0tlUX+2IRZHzdKIWRY2gVPlGrDMgEplsUjkS2QRpFUaMgBepX7CYQ3xKLiqXBK7lxabY1FUK5YEsuE9ZJQlgkVxPyiKctVWjQNOgavgF8ZMWMpSsJlBGfgFwMq2tDkgAaFy54PgqhfCMrjqpaiaMx8sfzhfuBgpXU0UWM+vylgIbEpo1sxTBGgFcsp9nAA2Ibt1hQSRBV0Vf32p8N0FQBWKEAd75TxKUJaCpXuwEAE20cjzRRAYCzhF92zBQbbw3UX6Y0NA1Zal8Na1WM47ixlP58n+9EepzY8S4Kpt7xBtfhwDQoGutj5NwKahCvFNlKioPXp3PM1VcNJcBag6dmfqyK3xQ2+OgKtefmN074/fO/vjb63fTZ9KlKuuBpSbUeG1FPNjy+4vP7CBq/7wuf1V/+XP/zP0+VxFxmPrX+StEfhZPB2AQwOfpHSdH+Z/fvCzSj/phjXBQ/xnob/cgT8YfI4nECWZzzkFqf9cQu3PbPb5hNh6okXfV2f9jH9B8Jnz/b1dTyhcT59u/7MPRPRTJ33e30gbaSP97U/4L2Pd+1T6nKIfXaJQBZt21gv+SunEyEjj8FDn3NzxQOB4KNTp9bZ7vfsMY1/A3ykKfabRralQj671+A1AFegKapL5roAO22GqbaZSL7GdQCJNbPUrDSrfaEi1CgcBqqpEH5ymgNqIIlOuM+Vav1xlihW6WK7yOw2pJmJUBAhjlSj8DlNpSITLdaki5Ce/BAyZtYuJoqBGuarEVIsUcYeh1UfDtQF/Ic/mMV4wE4IgKlSuSUTqk7HGRGynoYGoXv+Vfzz7R394+Bvv45Ayvwbwyg+qRVETLAWuohNUFKoyTTE/ogOzXtJYaLPOga7ItFbMyI0ZOVEdXPWCX8hbDIOrNkXkzQn9hYCYkwq8aAooyksFs5P+zISZuxoteW+55e9/mP0wBq4qem8RAk4hCwt+ost/CFKuQgRcZQkO2dhOZ6EAVbmPk5uXAnTWCoJD0Qo270mKVqazXAXvLJR/8z6IquDpEtBq80pk/SFVaOFRIuOdpZz3V8BPICc6WQWQoj5lrLTI3we0cIrMWqXnq4BTcI7cHj/89tihW+N0f9XLb4xYGu7/0u39Pzlw6YfvW6dc9Uqce33R+6VV5088mv3qO5Pgqu/+wTOu+u53/+zP/vQ//vEf/wVcRQlinTOej6+jxfcBxnr6YSN32v/84GeW0vNQhoP/0e98cuLPPfD7+vdc8DOA44ef4vvrk5QuIun581rpk/rpes/XSRd/fvCZ80lrz9Jf0P5nH4jop076vL+RNtJG+tuf/kZx1Q+w1P84Wp0YGWocHuicmT4TCp6Jx/p4rpPx7TeN/aFAjyL16Wq/ofUHjD6/3hcwev16hy63yHyzInQHDdhOv9ZuKA0i2+5XGxW+2ZDAVS2m3KgJdB0QXFUtMU0AJlOuB0WBtHShQue3K1yJxFT6laqACtWGDfgWaSkVmlzGctWqVi6JDbHIziB5ftWOsL/EIH9SsFiV6MNCya6pgF4WNvN1CcxUHjSq4+HaeKQ2EipX5ZZ47Mu/8eu2//jHxz78ZmXAJH/LWZPyTbkoYmSbUnZAphuqtun8FpUl+6vC6ibZC5zaagoQmbIKKVnkWaDKtoCUEdFeCkq5C6GtCQNQlbkYfCkkZyXMLUHyaKui+XBuMpAR07MWgvT3eqColxZNwBNEp6lAUXAy1sJZD6LI0qksYBadskpzFQS0AjCBq15a9IOiKGnRtT/wVv7T+eKvL+e+M7/tQXTzauillWDZN9bqfv7roCvUIRvVH6WynswDrbY8Smx7Op/57mLm15defBTd8jQBvfQ49sLDyCZrBXDTagBxKhIEV9Gt66Arum/92L0pEBXssbuTcI7cnjxq6fBbY+n5KgDWF4Ym1++mT6Wf+dnv/NPf/Dfiu4+krz9QPljVvrlsfLj4j//xP01z1Xf/4A/+5Hv/8Q//8A//Iq6y3E8Wup6LkzH9B7e2W+mHjdxp/7kBnzROg+nSzz6cnO255bmPcOb1Sp9/IJxPGOS5cz3rwHN9+dxTfNK0lT6z2WcpfXJSRr3nWvjkjD8smD7kB1tZT5/dfrrK8y18+mV+Zs2NtJE20t+J9DeHqz6Tov4H0erk6HDrOHk06F6WPaAq4KouluniuV5F2m3q7QLXJZMfA3aqUpeugKvoM6vaNSm9xQq2UeJadAlc1RZQAVWdYaPVr7QE1PawAbqyJK7LkGpBV6ZUpUsVulgb1HYaUl3EbIgFmhKh6qC2XZN6luaPPXh8bO1RJcNXCCLoqlxTKF0BjyAgVKlfyzOkwrBeHPPnBhQyF6UIZJXQ1MgfdVakHbq6/92nTck43V8FAivyq6URsyCsvyh4Mk2RbquiXJXllwoSfrqlHURF1wEpV0EZETU7bm6NavSPAAKqyB+WiRuZceNFUyhbju/75Y96v/MhWRO8n8hdjb6YMrYsB8BVgCeQk7XMFwdOQfAhOoNFt1hRtKJ71ek0FYUnOl8FC1oiPx60qIsWFb6/nIaqTYsmiGrHhw9BYMhuXolkP13Y9jCxaTW85XESRLXlaerFR3Fg0+YnccpVoChYZKmf1qaTg1OHb4/SySo4lKsOvz1G/kqgtQ547O70iXsz5PGhz/ZX7fvKYP+X3v7C0NT63fSp9K1v//x//a//559874/+5D8S/emf/Mmf/sl//NPv/fF//k//x5//5//0Z3/2p9/73vf++I//CPqLuYqMyeuj8w+MxM+N28+nHzZyP+eTI630yQ8MPyldLyQtP3fI83TxfaSRrvNc5ef99eaQ/8x96+lDPucUz9d/9pI/s9n19Kz2J9xJ+oOMFU1fsx8aTB/yrNlnJ1uv9un2n9X4jItG0/NNfaa/kTbSRvrbn9b/P/ghab3S/5SE030mPyH4V+7JyZHh9vGR9qnJfo97F8v2sUw3x7Yzvk6O3WPoewLm3qC/19RaRa5NFnpMrT9odplqp6GQpy2YaosqNsk8QSuFbzXkJlVokDmgVb21DtjsV2pklmxdV9e5qsGUGwJqfVCtCyg1ARlcVWlILYlQTUBtTYbbUhFkz3/4jcCf/mff7/27/bFknSDWKHKFJm83ZLKrPaRXxPwVyWBxSN2mMRkBITeuZYWkoqCSrTAFGl9kiGV+8virIoXfEdCKdXE7WC2s5xtCtsrmBqX8sJJp8oCqgqiRHSDPXNjmF/NiRtlSNE1UGc+0jlYx8vdqMhMErShXbU2Z5NkKEbVgIXzs1/6+7eOPv/K9/w1ctSkkAbmy75NFwC1roazHYJ3A5tVg5qMYtdseRKCMh1EU5TxNQnCQLfpgJfNRHMp5mkor42Es95152C1rYQgsBaFO9pMkGsl8Es95N7XtUTTv3YXSn7qPmnBQOeedeXDVC2uRbU/nAVWbHkRffJrc9CBMcQqABbvt3VT2B0u531zJ/PpCxnvzyG59x/r7gIfeHklzFaAKREWfX3XwzeGX3xo5/PYE3V91+K2xA18d2veT9/b+5EDvF948++M/9DkLT9/9AMD0af3sd37p53/x7//sz/9iOvLwybv//t//+/XD/jsThuVnNLCRPj99JsFsYM1G2kgbaSP9taUTw4Mtw4N7PO4jqnJIU/s5tlfgd6lKvyL3q8r1d59eefr46GKqW1daJZ5OWcECrZoljm6xIouABtli1RHQ6B72Vr8CrqpTebpvvdGQ6mUeqgN16RJZECTPXJBrTAkUtVMTmuPBYt5THzY6F+MVuvjKL/58+L/8//jf/w/9oUgVx7VEQk3RUEWA/LVm8hzRkAZ4ytP5XL9YlgqUpgLgpKKIlqvzgC0AVklI3ZkIgKWKgwqq5ZtiniGgMogqyy9s09nsgJiLmnE/LOWq/LhZvhwDVOVGdfKDwYgGqNps8C/pHOzmgLglKAOkXgxK25ImoGpTRAZgkaXAmNHxrfd+8g9//8Jv/0beQgjB4sfzLyT1rStBAFP2k8QLSyYAC+QEhyIU6IoWUcGHir+xCmYCPGU9RhC8lcp/bxGcBIsIJSpaYfNqaPNaOONxbPP90IurgU3LJurs/PYTHLL1QTTjUTz3/aWsdxcBVdveXdh0PwzlfHgf2AR42vwkTlYAH4S3PE1Qrir86Qf5H67lfGMZgLXp+L0J6OTg1OnhGejEPSDU5LHbE0fJc6pGj749fuz21LG3J4+8NX74jdFDXyP7qw5+bWj3l98+++NvrN9Nn0r/6T/9J9DS7/8lEqqh8vph/13pj57t7dlIf3Ha4KqNtJE20kb60aZToyNNQ/cux6JvfOODC8lEt9fTwzK7FXmPrrUxvtPLS8fmkwej4d1+srmKPnK9XSF/IhDq9mtQpyUwFtlxpYntfrXZkGolZv1BVrpYLXjrRAZOS0AlD7UKGy0Rsy6gbJd8OzWu2i/VBrUqUwZgAbNqAmpDQD+wuNSi6U2GUalILanYjoBWqPJlfqUiYpbqUoHEQsWqUKyLYKwCUyTwFJCyDX6b4oMFZuUH5S2SJ1Njs0w+JyCCpbb5+a0mlxkU82LkaQvAqc06snJBwl+YDORENETowt8WU4BKl6JN7z+serS4NSTnJv3b4tpLYekFKCq/GFM2x9TMpJGTMLPjRmZUy4hpyGYs+LctBQBVLy77AT3QS2tBABC0BTTzIPzCih8kBAdgBLvtUTTzSXzrw0j++4s576aygDvvJCE4iFMfDqqhMm0ElZElXPUw8uL90AtrQdrOtocx6KXV9Uerk23pT5IvPElsehzf9Ci26WF406PwC0+i0KbHEfiw8DM+WNj2/vzWr6c2v5vYdG7MduT26NE7Y8fujkPkzzDfmTx+d+rkwMz+rwwc+Orgwa+NHPza8IGvDh34yiBEgl8Z2PX3bp37iR/6e8AfcaLLSxtM8JdPG1y1kTbSRtpIP9p02uKqAyxzLhLeL4kdblc3w/QK/G5N7RaFLlnslIjtUcnz1oFWsF06WQSkaiNPWheb1x+5LjapAgSuag9qUIspk8cumHKbqZDFQU2okdlaTaj3K+mlQKjarwCqdqg8uAp+raG0gKhYdifPlQpsddjcEdLBTxUxf4lB/gBOuS6VqsJ2Q0ZRRcgoDSiEpWJ6adKfH1ay/UJeWCmIavkRdZvOAqfAUhkhcVtQgLIicn7SyI+beTGDPkmhZCFccT+1fSUOwCpbjhUkAxlBGXRV82S592e/AbQCOeXOB7JSZkZCB04BqoBWWxN6zlIoO2lmJYysmA6bSf6UTTBzNZyxFn5phUAVFXgIMAQSAiFBFI8oKlFCAnvBAVcVfmO56JsrdHUPNQFbKIWQRQuUqOghWx5FwVUvPQhD6/GHCMa2Po6v/9DvcYxAFdXTWBqk0mhFnRefxqgIbJ26NwmoAlodfnvk0K3hw7fGgFYn7k2fHpp7fpd6mqtAWnt//A646vxP/t/FVRtpI22kjbSRNtLfrASuah681z4x0W23t9ttnR53D8t0sUy/IvcpcjvHtrMM3b3eq6v95rMpq2dQRf6Ijcw3S1yjxDWI7O5khMxXWbNWAKlaiUxT9SfDXRETWUBVleirlHxVGgeoao6ajVGjPqxV+6WdGge0qjJlIlVsFOVjaw/Of/BBVypRLLIlmligcGVBtVAXwFg7w0apLoGxyJ9tDpEVwBxTyAmIWX4hw+BgcyJKVkjabLJbA3xmWMqOKsApilZwcuMauKowGciN6hkBCWhVuhgpTAW3+kVKVLBbTAE4VboaL1qKkPmq+UD2vB/aljTAVZti8taUkbcSQQS8RdAqZWYuBrLIo6eiGQ+jdM6JUhEICagESAI2FXywROefEKewBYG94KM+SsFVue/NI4gsDqE1cQiyVPAhQlSPIlQALCrAVuY7qW3vJIFWZB/6o8gmwNM78U3vga4im57Cj0FwqKj/SfDorZGTg1PH702AroBW4Kojb48fvzNJ0Gpw9tTAzPE700feGn/5ayMHvzoEgav2/cTd/i+99Tn7qzbSRtpIG2kjbaS/U4lyVdv4eOvUVLvd3scyvRzbw3N9stQjibsNvU9VuhUJXNWtykCrLl0BV5FZK2v3OkT/YiDdwL53PkYfZNWiS/UKV8V7GjUBXNUR0ht0sVbh6nSh1hTBVdWG2BDRm2ImRNGq0pAoV9Uo4omV+/of/+nixx9/5dd+rVKTq0IG2Y0e0vINoSSklkX0ooBcYIoFfinXL2YaXHFUzw8rQKucoFQY0wuTZm5UBVSBqPLmzeLFYEHKzImp2WEZvAXRh6oDqjbr3FZTyLIeprBJ8QGncqJ6bsxA9kWT3xKUtoWVzSC2hJGZJAJObU5om+LKlqSetRTMWghkpEzA1rZ5c9tSgDyPykIc8BAcunj3/PodyIniEcCLQhWBpLUgwAsOsoiDq+iaICKUq+AjAlFc20ae5xkCUW15Etv8eH3iiqDV4+jWpwn6Qz8CVY8JV20CM70bB1cBnl58Nw5RkEpnX3ovQbXp5F2yv4qsANJZK4urjtwagwOoOkl+Bjh56M3RA18d2v+TA0RfGdjz5dvgqjNf/qH7qzbSRtpIG2kjbaS/U+nM2Ejb8EDn9GTX3Ey/193PeHtY325F3KNKfRLfp0k9itAl892K0Gcou/xav6n2mAp9lhXdX0X1yQMXVLHNVKBmQ2rSRdg26/Hr9ZoAtGoJaY0htcYQqgy+JiDVBpW6qN4QN2vCaoVfpKrTxUv3H0W/9388+vjjt37tV+s0uTZskGey+4V8P59tsLl+viAi54bFjACXFRELk3peQCiJKOVxvSSm5YXEDJNBUW5UzolIRQvm9pVw6WIA1QpiSl5EIvvWrf1VWww+05qgygwpdKYqL24CqjIi6taQDJsV08FVAKyMmLY1pm6La4Sf5s3N88ZLKR2MlbkYQJbA1ryxecF8aSXwwlpw0/0gXaF78X7oeSECJNr6OJbz9YXc9xfhQxlPE1seRbPeTdFs9nvzKEIW1VAfRXBQJxMcZhEVIoi/8CDw4uMQ5SoA1osPyfQV9V96Qn739+JT8BMRgSrImpei/ETRihJVGrAIVx17e/TQrWHo5beG6DoguIos/705ArqCDr05dvBrw/ssqKLrgLu++FbfF9889xMb81UbaSNtpI20kTYSSWfHRztGh9rGxyhXdboc3Yx3n64QtNLkTpHtkrgeVdxlqntDJgS06tWt+SqdzFR1GgqgqstU23S5WRHAVR2mSqes6ANCW/1KoyaAqxoNqdEvNwWU+oBcbQpVpgCu2mHw1SGCVpSrKgMSsk0BtVfVrz9657VvfrgnmdghshWmXKAw+QYHcsoPilBxXCuKqVkBLjssli34wVtFBl8UEIvDMhgrQ/dt1b1Aq22GLz8ql6SMwriaH5YglGaZbGHMpH9WOSei5UT1rWAsU8iOaHC2BcgcFbhqS1CiIowFroooBK3mzayl4LalwJYFEwJXbV30E8yaN15YMsmfN14LbLofIJNJj6IUm4BE4CQqINHmhxFwVf43liknUWBCEBbBog/X8j5YQhwRClVU8ClRgc/AbS8+DIKrCEU9J3DVi48trnonseW91Jb35198P0UWAT/FVVQ/wFibXv7aAIjq4JuDVIfIn/9b5ypYiHLVfmtzFV0H7P/im/1femtjf9VG2kgbaSNtpI1E01lrvqp1bLRzdrrH5Wizzfawvr2a3MV695tajyJAfbq826/tC/v3BI0+Q+lSBLoa2K5JFK2gFlVsAIQF9J6Q2RHQ6iW2VvCRBUHr2esNutjsV5qDaoMp1RhCjV+stgSuAktVhZSKgFQZlGujelMy0J4M1YtCvcA36Mp2ia0IKOUhpdAvAKp2JM2yiIrs9jCxxaYAloJfGTXKTLHEEHZG9YqkvyymEYSKSFtVT25QKIjIOQE+S2dyTI7OeOWFySIglG1NVgGqNhs8oOpFjc0Ikl//kR8AhpWX/AJsXipAZrCecVXGgh9EBbTKWg1nLK8z1kuLJvmt3/3gpochovvBF9aCdI4KhAQwooxF8QiABbRChHIVLJ2UQhBQlf3ePGWp9BwVfDSCpqhefBje/DgMrnrhURCiREUFqNryTnzzu8mtX5//HK5Ks9TzWTJfRR5hdWv4ea4i01QWVFGuevmNEXDV+jrgT9zb/aVbZN/6/22/B9xIG2kjbaSNtJH+ZqUzI8MtQ/c6Jsh8Va/FVbt4dpcsNLvs4Kpeie+SOKhbEXp1GVAF262K6/NVKuEqutGqVQEJMXQdsNWQW3QJlj5zIf2MUPI4K4uragMS0GqnxtZYf4OZLv/VRrT/i72/gHIkSfN8URcrOJmZIoMjBEGZWdVQ1FCVzMyMkZFBYpZccjErIBmDGZIzi6u7Z3Zn7+7O3bl3dna2Z6Z7undgd2fue+/O+8xNoVBwVndXn6pM/5//sTI3N3BXRbp+5zNzU3q9L/tGOO9GZInTtthhzYj45zgt8wOONCfiIeAqoKsZbstMGqEgne2xzvHaIJ1mN4Jnea3zIgi8Uui5wpm1ToCq6WH7jJAdDhPsOhTW8pFpXkuCy5ToswFUIQfsKYO/AwhQBSzF9VjoPdadKEzls3J9JM9v5Qas3BDFq3VwI3Z2rT3hqif1bjjhhg9x1VU395qbAyB1F3AHLWziN4bRJB291gqvT8dRK2FzLZQLmiIJLXWQgWpQAmCU1nEd+AlQDLAJwxauD4wFKZQAjWFywq14DwLAVcQdN5h1z49iVNhNYTC3GQETq7WWaAmj9VWN0UXrAE/YsTxk0NkHfqIpSKw7cbH4wJk1h8+/fbwM/Baw1NGLb4Ehc+QCGPJvH7245tDZor0npLuPSXcfL9xzvHDvsR+Nv38VI0aMGDFi9EbpvYvn8i5fyCkvy6uuFCnlEoNGatZLrEapzSShzDkmPUCVyGGVuu1iF5VHWbKjC9itGVZjrtMq9jkhzbSbc1zWPA+12mHO8VK5fkeGi1zpMKW7LKvdKLPUqlvlIdO91iWUfqFVu8JtAS+gdCt81HI/tTLoWAJ05TAu81NZDYHMev/ygGORm1wadCwNOZdEXItrXTM95lleFJpKo/Qz/TbwVK8FQRKNSrNC9kXX/NMCNmCmVI8ZECrZYwKoSnIbp4UoSBOc+kSXAU7NDDtSfWg7K77LKPCi7drBkGG7DVyvibBrBEErPwAgZUmqdfBDVo7XlFjn4NdSrKCFCJi5ERu/zg5OueGd1VQPGW69XXDDnXjXL7jjI265OPd8ie113MYA656X/yCQ2BjdYz3hfgT94PGDML+pltdSK2irF7ZG+M0hQUsY6guagJYAm/zCplByW53wfoBzy53wIAjNoRPOXTTxx3ngZzcFsIGroAmMRdx2oYHaIvyOWqLJT9z3EI0+ojmADKjUHGC1RthtYU5riAX55gBkuB21/K56MK+zjgXl7WFOZy23q44oPnzmeycuY6iKcdWaQ+cAtr5/4jL4e1B+9GLpwTMIp/YcL9l3EuiqcPdRhqsYMWLEiBEjrPcvnc8rO59ddiGvqkKskkt1iKsKrSYpaRQDORn1uWaDyGaRuCipxyFC8Sp6twUEWKZ8N4W5KosyZzksGZQp22MDI6iijMts+hV24yqnGegK0CrDY13tsy13mpbaDStprlrqMC51k0tclqVe60KnaRapodHKvtRHLQnY57sti/zUAq91rpecDyDlNs0PUnMD9lSHYVaAmhmkpvhIDFJT/dbZ9W4wsFSan5watAFFQR6tbfeaoQQOgaUgA4XTw/apYUroMSf50YYLySEqMWBN8JN8v4XnMwNFCUM2gCquzww4lVBr5wXJhAZnwlUXK2IFtOKErcBYwnrH1DvB+e03kq57+FednAY7+6qdaKCIqxRx0wm4w2v0se65AYkEjWifKuHdYHJjHaCVoKkW/XRM51VeWx3gEaCSsCmQ0l7LuuNJaIkktdUlNIeBpYCrwElNYUArxFX3fGjWrxFxFcKjRj/mKkAxKOe2hJK6ryb1XgNgQjjVEgQDMCGcakdQxW0Ls6GkOQApcBUUAlFhE22Iq1idEXZXLfp9QOAqYKm1Ry6Ao3QFIHXoXMnBMwBYsXhV8b6TJftPrTt0Nn/bwYJtB9/bfTD618SIESNGjBi92Xrv4rncS+eyLp3Lr74iUsoL1AqRTg1QBWglIg0i0pxPmsQUWeSyF/vd2CUBD3AVuMBjB2fbLchOMt1qyPFSGU4LQFXMq+ym1U4LoBV4lYcEogK0Wgb85DQtd5lX+KhlHutyP7XEQ86l9AuAuny2xR5ysd+2wGNZEnQs9NmAq+b5rLM85kUR58KIe7qXnBt2ohVUXgugVbLLmOI2zapzTQtRfEoD/ATkBCCV5DYCVwFLAVrBIZyFcuAqlKl1JPrIqfXuGdd8gFYAVWgLhohdGLQCVCWEKYAqzFVJ9U5hhAKuSrnp49bb2SESuIpXSyVec894ULuo6/a0e+HUu8GEW17udSfnhot/1wcYxL3nE97zcm+7uPf9KHB1xye4F0xrrEu7j34NUPAArXYi7vuI+x6oMOV+cFpjOOlBKKW9Pqm1Fnrg3fFioiJuuaA3QCioFgtWAVQRD3zAYajwHlpixWkOCjvqBJ11KCjVGkJcRceleMBP7ZFhkaq2MCppjwCBAVTxu+oRVNFcBSa2qS0YqgCk1hw+jyYBj10CloIS8e5jRftOrTty4XvHLq09dA64qmjvidL9pwr3HC/ee5yJVzFixIgRI0ZY754/m3PxbHbZ+YKaigJ5TVZNZY5SJjXpi61mqdVUSFkBrcBSh63Y4yzyubALnDZkjz3HQeIJwXyvPdNuBrpaaTOssOqBpTLd1nSHGaPVKqd5hd0IOIUiVS7zEkq/xG5As4GDXAXGbwguD9jRnKDbDF4ecS8NOTFazXAZ5wepBWHXTCCwsHNmkEpzm4CrkpwGMCAUABPwE4DUjIgDTwJCHoep8GwgcBUUQmZKyJYSpKbUuQCtcLwqKWhLCNmAqwS0eX4LP0Am1NpxyEpQZ0+46mLX2lhBC6AVcJWwwZl2OzCrqV5wzSW86eHfdBNX7ezrTkRFgDu33Am33PybToAhABriLnpxD6Bq6t3I9KaG5OY6tFqcJqGUltrpt3yp9Y6UOwFAq7SWuimt9amtdVPaG5Lb6oCoEFQ1Rh2DKryyin0XLVpHS6zue1F5o4+46wJyAn5itwRRMKw5yG0J8ZqCkIESOMXvqAUDV+GQlaC7AaCK3YGgCnHV+5dqEEjRBpYqOXi2aP/pYvABFKwCqHobYdaF4v2nRDuOiLYfkuw8It19rHjviR8z+ywwYsSIESNGtN49dyb73OmcS+fyqsrz5ZU5soo8VY3YqC40G0RooZUpz6zLNWnzLPoCmyXfas61mfMoC17DLnbbIc22o8CV2OfMclgArZaTOvBqhzkLuAqIijICXaW7TCvs+pUOQ4bHku614njVaj+1yGGYb9MucpnRVKDLvMhtWeanlvpsAFXzXKZlIceigG2e2zLbbZ5q183xkbO8lil23Uy/bZqPTHUZ8a4KKW5Tosswu94NzDQ1aAN+wpiFg1WAWXCIDSVwNslrSgtTCX6zwIu2v0oKkpDheg08n5HjM3D9RmGYTIhY+SELWBix8iIkO2wmgkZWyMSJWHh1Vn69TdBAJVxzcOqsghtOQCjiqhWMYlT3PPw77qQbroQbLmAaoi1ENPkAsKY+qJt5t3bKrVDyPcQ3vO56AB3BHd/c676ltyPzm+sBxZLv+mZ2NKQ0h6ATQXMgqaOW2+hjN0XNeeAFs+97sCEPZyFlNSITD9zEXQe3LchrBZwK8Jr8cBZSYUtQ2BriNPvhFLczDGa3B8EcyHcB3oXArE5kovDgKWApHKmCFHAKcxUUAlEBVwFdlRw4XbjnuBiIatfRoj3HczbvA8B6f8+h6F8TI0aMGDFi9GYLuCrrzMms82dyr1wSy6skGoVUr5YY1AU6Ta5GBVyVb9IBWiG6shhzzIZskz6bNOZSlhybWeSiJB5HvpsSeR2AVhlWIzBWutWwwqwFtFph1a+0GQCtMpyWTMApl2m125zlQ6usVrotKz1kRsC+2GnEXLWcximAqlVh18qQE4hqoZdcEqAWeCzAVQu8VkCrBSH7HL91uss4O2if7iVTnAagq2SXMdGhF9i1mKsApFJ9FjDkkz0myOByDFWQAmYluA3T6pzAVXyPITlkTY1QQFcAVXy/ie3VA1oBVCXX23lBMxi4ihu2gDFRYZwCC6/aufU24U1Xwh2P8Labc9PBumEHruLd9yY+8Kfe9CTd8vBaw2jdUiuag5vRcm1O07Wk6z7+bTqI1ewnbjuS7wff/eJJ2f/81cn/51fZL9sBxZLu+QR3PcQtBwATEBIiqhY/UBHKAEvFTEMVJic4iyq0QLcIv4Cx0NkHXj5AVVMADIiG6rQGMFGx2gLIkIHDjhAAFrsrzOmOEG8fLyvcd6Jo/8mSg6dLD51B21mB6UzJwVNF+04U7j1WtO84MmT2Hivee1y0bX/x7iM/3nc4+teE9eeOUiJOpY4/j57AwqePdY3MT6KuY2P0Nan+/M9jDb7GWL+3/phjfesU95kzeiX94T6x3+8P75v9s6X/BX/9f8KMGH3n9N75MznnTuZeOptTfqGgprxIIy80aPI18hyNLE+nlFgNYlIvshrFNlOB1Zhr0eeRhjzKVOAis6z6HMoImTyHOddugjSTMuQ4zeAsu3EVqV1p0aRbdRmUYbXDuNplwlwFXuEyLnca0OIqt2W5l1zkMCzxmFcGqRUB+8qgY3WtB5xe713kswJXoTRkX1HnXhi0L6lzzw/ZZ3kt8yKOGQBPdLwKuIp++88wq86R4jUmOLWQT3Lr0/xmOJwaJKF8SgAwywqGwulhW2rAPCViB6JKCpIpcBihIE0IkcKgRRCyxHOVIEwm1dsBqgR1Nn49MnCV8LoTAAgsuObgXbNzrlHc63b+HTf/rge4in3Twb5hT77tBd4CMEJxIACj9sjMntsLeu5Nb76a2IjWkrM7IsBJc7uuH/m7/+vmv/2b99/+7Yf/+bNp94NTm8JpbbWJbeGEzlpee4ho9YMRMzV6Wffc7Htu7j0PoBvkiQceKERxLJqrwNyWAJAWxi9gqbTO+mmdDSktYajPbwthosJohfLtQQLoqjMEUMXtqeX11hF0mOosEBWGqnVHz689cq7kwCnp3uOSPUfFu44AV5UePAUGqBLvOJS/dV/B1n1Fuw7/aG8sXoUfzKMV/zCNf3h/jQf51+aqkX1/s18aw/XHHOvbpDf1vn93/YE/sd+vu2/2fx/DVYzeFAFX5V88I6ksy7tyMa+yTKKqlmgUOcrqXLVMYtZKLDqRRSexoj0XRDZTPmkAupI4yJKAC7hqtVmTSerSTWrIAGPlOy0AWCIfJfbbga4AszLtRsxYKyjdSocBvMymXWRV09YutGqBruZZNQvt+qVey2I3Mp4HXBV2zXebMVqtrPdkXA8sCjnAszzmaU7DnBAFXDXVa5lb65oZdkwL2OY0uMCJLh0QFVAUoBUQFSDUzFo7AimfCTJgIC04nF5LJXhNmKgSA5YEvxkYKzFs5fmMKQ0Ort8IdJVURwFXJdZRqddcvAjJr7Vya0lWyARm15L8q3agK/51B++GA6BKeM87o+vqnP5bUzvqga44Nx2Jd728O25Wsw+BUZMXcdXAvYVPmhOb69Cuoc0BQXcDv8mfetf/zs+eyv/tX3b+8j+t6LmTdsc3p/v6lPY6XiOiJdS2LYDciriKuOti3XVB//wHaPovxlUxA1cltIV5TX7oeUpXw8In9xc9fTCz+xrUB0rDM4CcjhCvKwLmdIZRyKozxOmOAFfx++qJ4gNoAwXp7mNFe0+sOXhm3eFzkK45cBrlD50t3nuiaM8xcOGuI6JtB0VbD0i2H5TsOCjatu/93QfwHxN+cI54MI8q/B0f3t8prnpTxXzGX1ffqk/sm70YhqsYvSl6//yZ3LMncy+cEVWWieUVBfIKkaq6UK8sNmrEBpWYRqtCq0FqMxbazRK7CSyyG9eGvcV+p8hJ5lgN2aQe0ny7GbhK4qXEHhswFqRwuNyozLBoM2z6lTbdKocBx6vQWis6ZLXUiVavL6B0gFb0bKAR6GpFwLY8aMNr2FdEXOAFPhK8MEjN9Vpmg33kTD9Jc5UpzW0Ap3qNwExpfjPPpgSuAvMpFXAVkNa0kBWgCoepwJCB8pn1jkSfOSlIpgFphW3AVZACV7FcWn7QDFAFqZCOVPFDFrbPAFDFCZljK6t4DZTgmkNwwym45QLzbru4t5xT2+sAYqZ3XWXdsLNvOvgPPMRdu6AzQjR5WK0hoCjitlPQXovfzgOu4raEEpqDKff8s2775t72z7wTmHY3AJiV2hhMaQkDHnFaA0QLjWXNXtRJM5r1Q4Goe15Box+4CpFWk5do9KCVVfddxH06gnXPLWwNse+5Zw3c+slv/tOav/gs4b4PQI3b4ksaaOB2AlcFeD1hTlcQUlaHn90VBLN6QmCicN8p/KIfpIioDp4p2X8KcApS6e6jJftOrj14pnT/yYKtB7I37MrfvK949zHRtv35W/a+t2s/+lMa/7E5/Mzv+PBmuOo7IOYz/rr6Vn1i3+zFMFzF6E3R++fO5Jw5UVB2TlJVLpVXihWVYlW1RCsXa+X56hqxUSMyaQCtpKReYjNKKRMY0KrE6xC7rMBSuTZjHmUCA1plWXRZVr3Ibc22GTBjQQaMQlaUPt1pxFOBkK5yGgGtVrpNi2y6hVYtQNVCux64CrzQaZhv1wFXzQPk8liWBKh5LtMclxGgCjzNoUd2Gqa4DGlOPUDVFI8xzWeaTvMT4FSyxwDwBCmQ1ux6JwapGREKx6sgg0grYE4N2TBXTWtwAVRBHrhKGLRw/UaAKl7ABFyV3OAAtEqso6be9ArrqcTrzuSbbkiBqzgNNjT3d9PJuekQ3vNCijL3fbw7buKajXXbSdxzcFrR0ihgHfRqHr0DAtpQqrOWaEX7IPBaw0mt4bSm0LT7/un3/NPuB6eAG0OpLagcuIrbFkRhqjaarpq90BWvyc9r9AFUAZABV7GbfCgehtGqcTB2dd8D1QTNgcSW0LyHd2Z0X2PfsCc2+RI6w0SLR9ATyf4vT/P/6uOEgXqixZ306CpAFacbQRW7N4ziVSX7zxTvOw0uPXAW8oV7Tkp3HZfuPlF64Ezx3lNFe04U7j4u2XGkYOsh0dZDku2HRdsO5m8GrkLxKvzUHPuZTD+vB0/FP7xHP8hxN7SGP4FHchVuOt5TOq4bED1AbCycQRrdOr7dhN8AIy8Hiy6NDRF/X+P1PEbNMe5sjFojNPyGx2gNjYfqxHoa56pimqjbkRpeN/5ih52Z6C6GNEET+hQqiqszRqfxPQy/bvrzgCL8qdKa8MZeqf64w+ETcReIuxlxA6Ax7mGs//G4aNgQQ7Xi69P5SS57+EcY33pQw65x6NQYVXHROBcGGvVBMGL0muqDc2fyzpzIv3BaVHFRIrsiUVZKNTVFekWhXiXRKUUGsEpsVoOlVkMUrRxmsd0CUIUWWjksAFiQZpP6dIMKUiCtVXrl2rB3Y8u979UHRU4SAGsVpV3lQCErMH4xELhqlce80KZeRGnQEiuXaYnHvNhtAqiaa9MsdBtn29TznfrFfhLoCrhqjseM0MpPzvFZZgFgeUwYrTBXTQuSwE94cRUAVmw2EPLTwzbAKTwtOKfBBXSV7DNOraMS/MbUiHXGNVdarQ3yiWFLSp2NHzQKw2ZByJQQsaRed6TdcE656Zr9IJjQYEu+7ki97U664eA2kEStidVg4d2gBHddSc1+/j0XcZ3k3LZDBsx94CYeOIW9tcR9N15dTtxzJXQ3EE1+tK15WwhQidcaTGwLp7SEUxv9KQ984LSmQGpLMLktlNgWFLT6ActYbT6i1Qs8RDS52S1eXrOX1+jhN3mFaLmVm9XswYazYMhAE35bgHXfmdQegjr8B57p3fVTO2uFTaic3e4T9EWW/4ee9P88kDBQR3R4BQO1nJ4gmN0LXBUiSg6eBZwCqCraewqgClLJruPiHUfFO4+tO3S+ZN9p6a5j4KLdx8HSHUdEWw9KdhzO37KP5qqxHsljK77m8Fb4KF5xD2n6qTx4HK05/nBjfGPhNqWlw8cYOcIIjfoiimnY9URFl6HBht/XhD2PqDr0KcT3Het4TI3VPShWn+7x2LFYrWjPE10V0mTdjtTw+oPVxuxl3D5oTdKEPh13O1FNdulD5wc/4eGKbz9ck9afeDh8evA4/v/38HZjfijx1WkNXkz85eJPBNWJrz7ZZY86X3rs2PDBxrqvwdNf88JAo1owYvSaiuaqk8BVYpqrilTVJTpFqUldYtIWmzRSgCqjWmJCXCUh9YBWhTajxG6Krl53WCRuGxhzVYZJg13otZf/+5+F/vWfTn76TOqhcijjSptmBQXWLbNqllo1y2za5U7DSrdpiUOHZgNdpmUey1IvMqYr4Kp5Dt0ij2lZwLrIZ13sty0K2ACtFkUcC8P2eUFqto8EtJrqNk71mqYGLKn0wqk0vxmMuQpSoUMDOAWAhUvgFI5aTQmRU2ptQp8hKWgGqEoOWRIDJuCqhBAiqsRaEtAKnHyVwp56y80Nm/i1FkGDlXfVyq4zs+rM7Ksk+4aNe8cBJm5Ygasgg6AKDm9RQDnsdj9xxyFoCQqaA+x77uTOBlajn99Ri7bubEW7HghbQ3BK0OhNbPIJH3gSmv1AVFGoavaCgaXARKMLjECq0c1+4AJzmzyYq+AsRiuc57b5E7sixF07v8WX2lW7+JOm4r/4OPMXPdAnp82bNFDP6QqA+b1hlOkJEp2+YVxVtB+FqXC8CgeuYvEq6e7jpfvPrIGze0+Kth3K33JQsv1w0a5j4u2HBuNVw747JlT843XYoxY/xYd//ww9hocGGHlmHI18jEebjTfA8NGRRpcM0+g7pkvo/oaNPUnPdN2hs4OXGX/po4eKE24w+kKGOhjscow68UXDSybvdgzhRnEVok2Guhm8lvE7mbRJtEJcHyMuDB9OdmujjuMbDNMk9ScbbrABOsa5uJsfVTBSdIWRXSENtaGHw1XiuxusOtg4ejx4iC9yqJvo8VBJtGD02HHdv/KFgXCNobOMGL2u+uDs6bwzJySXzxdWXS6WVxara4q18kIdWCE1KIsArczIgFYSSEmt1KqTUPpcs6aAMkicZqnLIrIb8236XFKbZ9VlmVSQKfXby37xqecf/vbQ426olklqVlHalXYtoNUyqyqeq1Z6zSs8JuCqxU4jjloBWi33W4GowEt8FgCsOQ7dkoB1adgBXDXHZ5ntNc/ymWd4jABVgFYzAuSMsE1AL6iaFrICNgFgAUtBBkogjWEWHOI602uplJAFxagApwImyCC6qrVyPFpewJAQsURDVnWksNbCCxkFETMnZESOmACqAK1412y8GxTnJgU8xL5FgXGkCpzWGprVdy25I0zctgHiJLQHhS1B3n1vcmMYnNgSEbTQO0h1hAC8gId4jYioUCyq1S9oD4Ihg6CqyYPpChCKeIC4ClLingOZPoQK8VxFtHqhQ06rD5+FcVf9omvdX3+58qsOYVtA0BUU9EWINg+3O5phdfm5NE6BOX1hMFpfhaf/gKggE41d7TkJKXAVZIr2nBDvOIomAbcdFm87JNp6MH/L/uz1u97ZsW/kI3QixT9e4/OjehheMHhE//dVns4jH+P4eLwB6PzIXukm8S2Gafj1TXxfE/U8fBRUvdThiG80YqBXEN0i1h5fzfAOJr2qsTS82zEUf99IYzaYuJfJm4xVI35g+vzI7uNvbfTnQTcZ98Ynrj/pcEjR66ODbMPGiZ4Y0Txew7tCo03w5xHfHc7HjxZXc/TJwbLBfunKI68svvBrXRgSrhI/IiNGr6Xep7mq4NJZ8ZWL4qrLRYrKQnWNVF1TpFUUGVTFJg2gVZSuLFowoJXIqs2zaIGlgKgAmwCnciwawClMVwBbQFfAW9+v8yGoMirz7cZMhz7dibzKoVth14MxV6X7SUArgKoRq9eX+snFUO41z3PoZlhV893GxUEKcZXHjLlqphcFq4CrpvstgFYJDg2wFGDT7HrnjAgFFAV0BYez6hw4ggWHKFJFx66mhq3JQXNS0JxM0xV4Sh2VUmdjudT8oDG53pZUZwW6wsEqQCsArIQGm6CO5NVZAKoEN+zC207ebQfgFO+uk7hhhTSxyce94wDMWv6yqfT/fDnv0S3+Aw/QkrAjhBab3/XMbKyb33Z9RnN9Sgt6NY/oDhNdAaLdh+q0+LltfrSivCsk6Azx2gOAVtwWH0AVpMBPUYpq8qDY1QMnmhakqQsHtOK5Cs7yOxCcEfedqT11s5/eTmwLAldxO1GYCnAK0sSH9exOBFXCh3UxqOL2R4jivQiqivaeAgNL4XhV4e4T9LTgaemu4/lbD+ZuPiDefrho93HJ9sPZ63fnb9qX9eGOd7bvHf0MHV+jH/10Pr54LOEnelSvMtDIDkcPEHfN+OTYGveaht3zsO7jDl6h5/h+UB6y8b3R+Ve5Y6T4j2nwwoddGtYrXNUwjdXtGBox0hgDIw373EboFZrQ+ZE1hipMfmujx5joiiapP/lwWHQT0IhRxrnfeMVfHMpDNr4VnR/sddSJ8S47vtOYJm5Na+TFxOchO6qH+CGidaJHjBi9tvrg3GnRuVP5507lXTyVX35OUnO5SFUNXFWsU66xaAsNSqlRFUUrzFVmjdiiEVMoRgVEBYYMzgNUZeoVxW5rgVWfbVSBM3TyXLMmG8od+tUuQ4bbCF7l0q906tAWVk7DCo8JvNRjXOzSA1qBFzoNi90m4KoFLgOk6bXORT7LHIdujss4222a77fOC1jnBq2z/ZbpXjPiKkh95jSfcUrQnOIzzKyjwMlefarfCOnUkAXKwZCZFiajjliT6DBVSphMjVijUauQmePRAk6lXXOkNFCJtWTKNXvqdQegFWQSr1KAVsKrNv41G/86xb9p59xEYSqiwUTU6ombNvYdB+QBreY/vJX5Wfu8nquzuur4LT6gHOK2I7UxuParJ29/8WRR87WpTbVoNXp3iOgLEd1BQbOX3+jmdgZZnQFOVxAMTfhAQi0+bpMHesCzfpiiMEJxWn1wFrEX0FgrvQar1ctq86EAWJsPukrsqUWkdc8BdAVpAtphwQc4xeqAym5OV4DbHQSo4vdHMFRFuUq66xSAlGTXcTA993dCvPOYeMdRtMpq51EUuNp7UrT9SP6WgwVbD+F4lWjLgeyPdr6zfd+4j+ExNM7De7IO6Ic4KLpAavKRRnY4eoC474XB3sfSJNeEOxjee9zRq/RM1xmqjXJ0D3TXQ7lxNc4YY1zNoF7lqibrdgyNGGmMgZHofse5o1doQudH1hhqN/mtjR5joiuapP7kw0UVrTisbNz7HSa6JV0llqOb0RcwlEOK727yyx55xxO3pjWs3de4MCRUaVSHjBi9fvrJ+bNFF89Jys6KL58TX7kglZUXKqukyqoijazEoJZoZBKdotCgKjSqi8wIqsAis7rYSYpsBmCmPCAtu0niNBdQhhyLJp/USR1mHM2Kha/yKEOGXZfhNGS5TZkeEwAW4ioKeZlDjxaw+yxgPCe4zIM2C13qtcyjtOlhR0njtfxboblO/XRSPdtpmAl2G6NTgT4LeFbAOitkmxa0pHoNCQ71rFpq3lUXUNT0EAk4leTRpQVMwFgJLk2iWzs9Yp3T4Jp91ZXoN/I9OuCqaQ0OgCqOU8316gQBtGgdoAroihcwCGstifXWhDoSUry4CriKd9XKaSDZV0nWdSvrpg3NA95BuyoIGr2s23befXdCo5doMAtuUjO66oi7dsQ9d+1z+28d/de/PfzPf72o7RowFtHoJjq8RF+Y3RvmAQDdoTgdAaLDjzY+aPfjeBUKUNFLqSAlHrjQIc1VkEIFAC8wZDBaAU5hruJ3h4kHDkFnKKE7gmsK2oOQ5/eGAaSAq4ClEh7VE50+dncAWCoGVZyBCAH8hOf+okS18xhiLDpTiN4ERC8DSncdk+w4Itp2uGDLwfzN+/M37cvbsOfdHWifBfrJOt5jM/7kOA/vcZ7jMdFdxH0nTFAVa2SHoweI63Ky0cdRrIcR7eMOX6lnuh+oQ1fGdeksdD34X7reWMID0IpVG/4JjXEJYxSN0OTdjqER3Y4zStznPkqv0GTwwxqmoQqvemvxNSa6oknqTz4cLVwNafgwr9R88I7pyrgunYWuBv9L1xve3eiu4y57zDueuDWt4e1e/cKQUNGoDhkxev30wZlTeSeOis+fWVNdUVSJlliVqmUSejZQrK4p1CnEWrlEJy+2aEqsukKzWmJUik3qYrtZbDUUWHQiev8FzFiZeoXYgRgLzQxadSKALYcpm9Rm23T5HstqSrvKqk6361Y79GgZu1W9yqHL8poz3EbALDqChW1YatctsqqXQH2vNbfWk3fVD4C10G2caVPPoNSz3HrgqhkeY5pLB57uN8+JUPPqHLNC1hkBCxxO8RiS3TqArcW3AjPCNvD0kDXNZ0py6RKd2iS3McVvSaKdHCDxhgtCn4nvNyWEorst8AImtNVCxJpUb0+otXEDJkGdjRUycekdQTFXca5ZiXoTWlx1x8G552Dfc7Du2sHsB05eoxsMJYA4nBaPoCOQ1lu/6MWD3D/tm9l/PakzDLjD7vQTLS6ixc1t93FbaQDqBBJCv0Uz48mt9H/Xu+jzFqCrpO7ahM4wv90PdaArMKrc5pv66Nq0x9dT++uhczgr6AryOwOsFje7HQDLy+nwC3rCwt4IFwrbvESbB0AK4Am9ANgX5tEpWPCkgd0fBqLiParjPW0gCumlVEV7T8W4CqEVndI/tHxETKeibYcKth6K5yo6XjX4IB75qEain76xM7je6If36Cf9sJL4g/GHilN830gjj4d3ia/xaz/16U5LHV0TjPVKPaNK0W6G3fCxLnxm/DsdfVuDZbHCsapMdlWv0O0YGtlqzFEmHnryJmPViC+buH/Q6Hujm4z7KU9cf9LhQLEeRg00uu+xhJq90p9HfHevcNnxVzLYYLAFXWHklY0sxMP/Ln+3jBi9vvrg1EnxmZN5p44XXbkkvnyhqKq8RFUjkVUAVxWqZSVGdZFeVWRUrSF1ayhDMakFtJKSKGpVYNLkGVSQAloBYwFa5ZNoKjDbrM40qwGqigL2PIcxw6IGrsp1mbLsekAr7JWkaplFuZxUZbqMOIiF4lgeY7rbAGmGF/1I8zKbdqndsNpnyww6Vvpti1zGuXbtbLDHMNdrmeOzzPSapvtMM/zmmUFydsg6K0hCHjwNCgOWeXXOpTcDMyPU1IAlBZGWPs1rmRawTQlYUwPkrAb31FpHWphKCVrxDzADTiXXUkBXghD6NRt+0Ix/dBn/PiAngsyuJTl1Vu5Va+p935TmIPeWnQtQddfJve9EFHXPzrrvYDW52M1uMNHoxHmAIUCfpL7aqU+uJ/fX8Tr8wFKQsls9YGAgtANCexjMaw1COu3RjfmfNM58elvQjiYEga4ApGJchTuHEiAqMMYsYXcoZaA+5dHVpIF6fncI0VUHMtHuBbO6/OjVPxQeC7F6gtyHtSg61RvNgNmPasFE4a4TYOnO45Idx8Tbj0a97QidOYIy2w6Lth4WbTlUsPlgweYDeRv2irYcyN+49120bh0JP3RHPE4HC2PP4nEf/dGagxXxYawv+jB2hBtO+NweWWXYWLSGdRkdPb7LEVcwpnCvtOK6Huu+Ju4ZldBTnEOF0Xag+IseqegFDFUZ3Wz0nYMmuapX6HYM4VZxfY4aJdrvBJ1M2mTwSmI1xqkQdxnRomgJrh9/BfTp+PrDNEn9yYYbVn1kX/h43KEHhXp4lT+P+O5f7bJj53H1uJJohaERB2uM7PJ3+rtlxOj11QenT+adOJp36mhRxUXx5XPFNeVrNDXFqqpSvWKNQVlkkBfq5YUGeYlZVWLVFJqVEqNcZFJKLVqxBU0IFphUeWZVvkWdT2oKrNpcUp1plOc79N+/6nvnZqg4SOU7DSK3aZVFkWFTZ1Ka1VZVuk21mlKDIbPKrs5w6TI9BnC6U7vSrl7p1Kxy6TM8FkCrxTbNMod+pde83Gde4jEv8pjmuQyIq3ymeUBOIRvgFKDVFLce0pkBCxhn5qIIlhM8u84xI2wDtAJPD1kBs2bWOmfUge1pEWtS0JwYMAl9Br5Hx/cbEoGffDph2JxUZxVEzNyggRcy8iJmQR3JDpu5tSS3gWTVmnjXbDPbaud0X0247+HddQJX4XgV5irAKQRVDxBgxTAIUVGbl9XiFnQFIYU8vxNtKAXm0hnAKX5bSNgRSuquTemtByd2RYCr8HJ1aI6NO4SeiSYn7gf4DLpK6AkDtM357MGMl3dSnlwT9KGJPzCvD03/JT25yh0I8R5F2P1BzkAo8fnVhGcN3IdhKOE8BqgKsx6GiIEggUEKoApzlWjbEWQAqW1HinafKALq2nlMAnW2Iq7K27gvd/2e3A17ctfvjsarkGLP5hGK/94Y/9E/RuuhJ/Ow7wQQfnpP9OQeer7TzYaPhTSiy6H6cYq/8jE1eNHDKo4Y6xV6HqubwWYT3eSYn1pUg32NvnNaE1/V5N2OpaE+B2uNOcrEdzRJE/r0yH3Ihvf5Krc2qv649zVp/YmHG1F5RG9DbccdHzT4fyO+zmDL+AuL7/xrX/bX2r8qqle9MBAunuguGTF6PfTjM6fzjh0pOHuiuPKiuPx8sax8nU5eqqlZZ1CtNaoKNdViTbVUV1NoUBSZlJirxAYZWsNu1aE9F0gt0BVwVQGpEdl0QFc5FlWRx/KDa35wUcCW59BnWdXAVTlOfZ7bmGXXAlFlOrRZTh1CK4dmtVO72qXDULXcplxilS8mZejnmaMhK7TB1WIX2uNqic+ywGOa6zbMcuvn+EwLQhSg1QyPMdmunuY1juCqWSHbVK8J0jn1zvnXPLNq7VP85lSvcVqImnPNK/TqBR6dwKvH+yzwfHowP2gEJ9Zb8WuAAFUcmqv4tShYxatDm1dx6i3cq9a0psD0tojgrotz284C36HoXRUoQCscpiLuUZircJrQFQKiAgzitvsAiSCDDjv8YDxVx23zA1oBS2GcQjEq2jGu4rX5cNQKzG71QD8o1kX3A1yFJ/7Snt3g9YTYnX5WB718qjcUdX9E+LQeDCzFf1yb+slNsOBJHeSBq4bQKn/LISAq6c7jOHAVjVrR8SrMVUW7jkt3HJVsOwxclb9pP3BV5k93ZP50+w+37Y3+NWGNeBqPfJC+wqMfa3hD+kR8UfSJPuLhHa/BZz6uNM5Yw0YZaoH0al8BuM3wuqPHmrTnaIUx2kxwh1GN7hx/jNGWo69mUBNf1STdjqmhNnG14v6nvsrtIE3QZPB/W9zljdHnBLeGT8W3GewyejhCr1J/3OFGNx7ReqjlGHcRU7RWfJUxioaNNnrkCS8bKo5uEW0zqOGnaI1xFWMUIeGexv2UGTF6bfSj06ckZ04irrpyUXT5rLTy0hpVVaGiolhTU6iuLtLWFOrlxUZFsUlVSmrWWLWQFllUuVpZgQFFrTBaiW1oUyupw1hg1QJXiez6Aqch26rOpbR5dt0qowygSuwnJQFrrssAaJXt0AFapdtUmW494iqnNsOly4C8Swdotdhcs4ze4wpvx7DEoZtPqRc6tIu9xoVe8xyXfoZTO9Otn+s3zw1aprt1qZRyutsw228Bz/KZZwVJxFVBMtWlmwaHIdvsOsf0kDXZrU9waFK8xqlha4LPAFCFtwZNDFuEQRMyHakCqEpqsAFLAVFhs8NGMCdiElynEm46gKt4N6jEu27+HSfnNk1Ut6yYq9gPULAKQApHrcAocNXiFnaHEnsjwEC8Dj/R7AKQ4neH8AwgpEQL2k5d0BkSdoUBsPB6czCn1QfkBMYzhhik8Bwi6qfFDcZwhpZqNTvRrF+bh2hzg/H2VKyeIJjdGwKEArP6ApyBUNKLa2DAKWApIKqYiYKthwGqivecKtl7GoznBKU0aYm3H5FsPyrBs4FbD9FTgQfyN+7L+nDn4PuAjBj9kTSaDhgxYsTo26MPTp/MP3EUuKqo/EL+pdPiKxdKFBWFsiuFykqJogK4qkSvKDEpS2iuWmvTAVoVm1UFWrnIqAKuKiR1kIrMarFFU0BqALByTMo8izrLpEjXVUs85u9f9a0JO3Ltujy3Md9jAq7CgatcjzHHbchy6lbZ1SspFaBVlteY7TOlO7XLrIplVtVKuz7dZUITgi4joNUip26pF+3DPsehm2nXzHTp5niNc3wmAKwpDvUMjxGICrhqToCcF7LNq7XjKcLpfgu9C4Npit+MZwPRNqFew9Q6KjlkAa5Ck4B+2vQv2KRcs6NgFf0CIHI9ya01E0E9K2QAtBLesCfddgFXsRos/Jt24Cr+PSf7Lh2vukOx7ju4TWjKj9fmA7RCgSWaq4hGhFZofXq7D9AKEVK7bwRXoXhVJ9q8Cr/0x+8IAmOhDRc6Azg0BTSGgGxw7g+tRqe5itXh43QF0FKqVjfR6uL3R9jdAYAqwCm8OJ3bj5al41k/4Cqw8Gm94EkdhipIsRFXSXceBYQq2n2ydN8ZzFUoZEXHq0T0yqoR66uAq3I27MrbsOu9nQxXMfrjieEqRowYfZsFXJV95CDmqoKLpyXlF9aoqorpeFWRurpQUw1cVWxUFBkUJWbVGlIDUCXRy4otOmy00Mqkzjcq8wyKHKNCajdkGxUim07iNOZZNaV+2wc3w99r8GbbNJmkCpxDaYGrgK7AeV4TXmW1wqYEusp067M8BgAshFkuA/17grp0t2Gl27DMpVvuNi73mefbNfMcmrku7TyPfr7XNNdnAroCtALAmk1j1rwQOT9MzQ1ao9OC9DJ2QKsZAXJWrR08LUimQJN6R2qYBKgSeNEMINer4/h0XL8+sd6ahLcAjZiBqHh1FsRVIcRVkAGuElyniFoT55pVeMfBuWlLaPSgRevRNwHt3CYnp8UFBgAC4wgTZIgmJ1AREJKwNwJIBDjFA8Ci11cBV0EJpiigK7xvAqTC7lDqwwZIY2jFanGyW12cNjevw0sAnHX6ud1B/NM0+OdoAKfwr9MQ7R60jwNkunxEt5/VF0Jc9bQOwdNAkPsETf8BS0EJ52kt+0mE9ThMPAoRxXtOiLYdAZwq3nMK6AqgqmDr4fzNB+n5waOxeBXmKjwPCFyVu34nvS8oI0Z/JDFcxYgRo2+zgKtEJ4/nnz4mLTuXd/6UuPz8GkVlibJyjVZWrK4p0cpKDcq1JhVwVbFJWWpRFwI2aatLSQRVhSaN1KgGS/Bu7FZdEWXI1NUAXa31U/mkJtuszLdpV+trxG4ToFWGRYkAi9Kkk8pVFsVqqyrTocXGU4GQpjs0aDE7UJRNvcgkW2JRLKPUyxzaZQ79Uqd+nk21wKFd5DEs8psW+SwLgLRouloYsgJU0Yuu0MahMzzGaS60mB1vxDA7TM2J2KeHrFP8KHaV5jfjn7JJprdcB/P9Bo5Hy/JoBBGzkI5UccMmdtgILMWuMxMRNAkovGoDrmLVmoiAlnvdlnDXSTSYEpu8vAcu4CriDkXcswFasZocYOKBnWh0AFQl9ISjMapWD2QS+moxTuFlVRiwAK2S++oxUWHAIprQCveZL24n9kZwDzz0FqEHm9OJ5vv4vWFBXwTt19DmRq/79QTZ3QF2b4joDoBRpIp+3Q/vpAA4hSjqMcoAURH9Acjwn9ULXl7lPa+PopV051EgKuCqtQfOAVdBBkWtdh4v3XcG/XbNYLwKzwOKNh8s2LQ/+8MdOR9uf2fbnuhfEyNG37wYrmLEiNG3WR+cPpF37JDozAnxhdPSy+eLKstKZFeAq4rpeUDgqmKdvFgnK9TUiDRVYm11kVFRYlGvo4x5qiqgq1x1FXid2yI2q6RWQCuthNIVOgyFLiNY6jSI7boCSptLafIdugK3AZzn1OXYNZl2NXgVKc90aLKBqCjVcqt8hU2x2qnJdCPAQoxFe5VLD1y1hFIvtCmXuHUrgubFbgNaa+XWz3FqFvqMs52aqZQK09VcoCivcbbfNNtvmQaZkBVvxDC/3jmr1g5QNTVgmXvVnewzTK2zpYYtiUEjWBgyJoRNhEvJCej4YSOv1sSNAFSZBA0k7yrJqTfz60lBA1q0jhjrqkV4x8G/RRH1Rv499DIg646VuGsFruI0OnhtHkGHj9XiBACClGh2YBgi2lzcLh+Y3xNgd3hY7W5+bxDMgZLeMK+L/rnANh+nAy1CR9N8rR5shF90feiBaHUit7nYnV5BX0jYH+Z2+zk9fsFAmN8fYnf7WL1+osfH7g8KntSBIYOJClL2ozD3SW0sRgWGDPcZOmQ9jYCJQrTnJ4pRAVTh9wGlO48X0IvZcbwqNg+Yv+lA/qb9eRv25m3YlffRToarGDFixIgRI6wfnT6Zd/wwcFXhpXMlFWWl1eXAVaWKyrUa2Vt65VqdvEQLRlwl1VRLdDXAVaUWdZFB9UOPbV/znQ+CLpFWVmTR5GtrAK0kFrWE1ABdiW3IBTZNHqnKtShzwDZ1rkMLzqbUWTYVGLgq3arIGuSqVVbFSkoJXJXh0i4j5eDlUGJXox/A8aLdrVa49Ivt6mVewyKnbpFLv8ChnWtXL/IYgK7mutH+C/P85kVhG3heAG1wNSdAgmcFSeAq8LQgOT1kBbqad9U9NWSZWW+fFrEmB00JPj2g1ZR6W0q9lRfQA1qxgjrgKoAqIXoB0MyqNaJfBqR/HDDptiut0ZfS6E246+Teoji3KdYdin3Xxr5PAVRxm5w4XsVudfE6vJACWvE7fZAHMOJ1+4GQgKuEfaGUx/UzP70z7eVNYCNeT4CeFkSbrXM7gziChacIccrp9IKhB2zohGhxsDo8wGRgwClubwAMGXZfAIzXUQFUxXZSAEMGoCqeq8C85/UIrZ4jEyW7ThZuPybechhnpNuOFu04Ltp0ULL1iHTbEcmWw+LNBws2Hshfvy9/w7789XvzPtot2rQ/f8Pe9+j91hkxYsSIESNGPzqDuKrg5OHCi6dKKi8WV10qrLxYWF22VlP9A7N6ra6mVC8r0VUXaqqkmspCbVWJQVZiVhUb1dtu1l95+XjH3WvFZk2pTQ9oVWjVikzKApNShHa0GjKgVR56N1ATc45dA4CV79JnUKpspxacAYxlU0Ka6dCAM+xoNnAlpUp3ajM9wFWGVS7tUodqCaVe6TUudmkXe3SL3NoFTvUyPx24cuim21Qz7Zr5AQtw1Wx60dUsn3Gm1zQ7ZJ0dtqGt2EPk7Dr7nHrHzIgtyaObQqPVlFqr0KvjutVCvz6p1iIIGVk+DeHXCOotSTfsCdds7DoTETEAYHFrTfxr1qmN/hlt4dQmX+I9V+IDD+8uDVVxXEU02on7tniu4gL90FQEXAU8BHl+bzD16dW5Xz6Y9dld4CqakNDac7wIndcTgpTd6acLPWyAKoAn6KHDgw156IdodUIGMVlPACqwurw4XsXpD6KoVYeL6Pbi1wCJPj/nSYj7DCiqFlLO0zD7SYj1FJn3so77opbzPAJGXAUgBTi1Zs/p4p0nIA8lmKskWwGqDok2HQCuKtiwX7TxgHjTAfHG/dkf7sr6yfYfbmXiVYwYMWLEiBESilcdO5R77ID43InC8nNFFRckV85LKy+WKCve1smBq9Zoa4q1VYXqSsxVxfoaQCuJVv6O27b9VsMPnGS+ml5uZdaI9HKxQVFgVABdAVqJLWqRVSO2aUWUtgBtuIBmA3NsahS4ojR5TjQtmOXQ5Lh0wFWZdvVqSoWhCjJ5XlOO24C2DHXrs71GQKuVdvUSq3wZpV7lMS51ape4dUBXUa5yaWbblDNtaqCreR4jeKZLN82hme7UTnMBXZnnhG1za+1zG5zAVUBXqV7DjLA1LWCaFibTgmYALDQh6DckhUyJETPbq+EEdEnXqbTbLuAqwClOvTnxOiVoIIGrEm85ku66hHccyPdcSc0efqMTuIpFL64CrmI3I+PpPzwPyAYS6ojOAyIYosEI0Crt2bWUJw3cbn+Mq4h2QCj0o8jRPag6/US7G4xxCuXbXPgQesBQlfiwFsgMkVaHm9PjJzo9AFWIq7q9BDDWQAgMGe7TMOAUQBXmKoRWz8LAUhiqIA8mMEsBReF4FRhKAKREmw8V7ThWBCV01Eq65ZB0y+HCrYeLth4u2Lgv58OdDFcxYsSIESNGWHgesODkEemFU8WXz5VWXiqpKSuRlRcrrpSqKtdoq0vUVUVAVINcVaSrBrQq1iulGlmhXpmvrAIDV4GBq6QmFZ4NBKiKTQhGucqqzrEos82KTIsi26rCIatsCk0OYq4CA2ZhrsqiI1jILi1wVZbXuNqlW+FAaLXCjdZaLXFoFlGqeTYF0NU8u3KhW7+illpV51oUIOcAS7n1M916QKtZPuN0t25mwLKgwTXvqmta0JLi0YPnX3NP8ZvACS5Nslc/LWLFs4EJYRPXr+OFDMBVKTcd/HoLh54QBLoSXrUKrtu4DRbOVQvvpo1/y8q+acFcxblHse9TUa5qsYMxV6G1UC3DuAooStAXQouiunyQATAajDmh/TzBAFWDXEWzFL2aCtMVyqC8g+hw4plBQW8wieYqTF2IqzrcrC4vdyCU8LRe8LgWTwui/T+fhNhgmp9YT1EGiIr/cT37ZS3rRYR4HkYGigLHcxVkxJsPQUnxzuMxrpJsPiTedBDHqyRbDuav3/Mus38VI0aMGDFiROvHZ06JTh6VnDkGXFV0+WxJxcU18vI1iopieXmh7HKppgq4qlBdAVwVB1U16yw64CqJVl5kUIFLzdo1Vn2JBf16IP4BQTCgFRjNA5qVYrsu36bBXJVForVWmKsyrUpIc1w6IKoMCq24oicBUewKjKcF8XuCqxyaFZRqqU2R7tYttWuWObSL7dGV7PMp5YoAmXfTn3srtCRgneXQznWj37qZ7tTOC5EzPPppXuPcCDU7bEt265Jc2qkBtPnCkhu+wr4Hy+6GoFDgULHImpSQOSlk4gf0/KAhoc4C5kaMnLAB6IrwqXl1ZsxV7AYz5iriuol7xwZQxXvg4DU50SYLjQ6iyQbG84AIg1qHzQMCUSUMRPi9AE/+6Pxdhwcygr4IoBUQFaT83jA9D4giUhiqooyFY1edLnaXG62vojsEtIKucB3IsLt9aBn749qUl9eTnqOfr+E/iqR8fIP9OMgCPw0RT1AKXMV7WSf4pIHzcR1GK0RXQFGlu09hnCracRwYa+3eM4X0KqvC7UchE+Mq0cYDoo37C9bvzftwV9YH2364eXf0r4kRI0aMGDF6swVcJT51THz6qOT8Seml00Xl54qrUbyqSHZZWlMW46oiyOhrSg2yUqMcjKBKXVOkU6w1a4GuClTVUoMSLDYoJEZlLGSFpgLNQ1yVS6rwAvY8uxa9HujUr7bIAbAwV622KTFaoZXsTm2uW5/j1me7dOkO9QqbYplVsZSUL7erMryGZU71Crd2mUu3xKHBy62Wek3ptfaVdfYFXgPmqnl+M9rUym+a6TWgVwIDlqleY4pTCxQFXDXFY8horP/Jz58W9NydHiJTfAaeXTm9wZ4SsSSETcBV3KAevxiI3w1EeytA/ir9euBVC+c6CVzFu2Nj3bSw79r4jU5+s4vbbOc0UaxmCoWsWl3AUqO5CkAKvwOIMSiWAa7CkSr8u36QgVMImOK4CoiK6HDGuIrf6QOo4gOc0bErXJ/XF+T3h4QPI2DewzBAVfKLa1M/v4MXVAFUIT8OQD4+XhXlqjV7TgNXSbcdBaLCi9ahJMZVRduPFaPZQMgcLdp2pHDr4cIth8D5H+1+d8Tv2DBixIgRI0Zvqn505mQsXgVcJS0/V1h5sbjmcrG8vERZEZsHLNZWA1StNSnWmZVrTAqJuqpYrwSoettqkOoUInVNiUVbZFLnaarRi4FAVxZ1Ib3tAtp5gdTkW9W5FmW2SZ5lkgNdFQyuuEo31mRT6nyXHu28YFUCWqG3BR0olJXnMRT4TLkeQxbaKVS5klKttKsBrVC8yqFa7tKgVVYOzSqfCYWs7JoFDu18J/JcJ9oydEnItqzeOYVSAVfNDaLdFqZ6DIBT4FSXDvJQsvxWINmhSbAp5zY4Aa2SAsZp9VRqLckP6NleDdBVYj2ZUGfhhA14KpBdh9CKVW8i6nTcG5bkZg/ntpV7346CVc12diOKVPHaXcJuH9FqZ3egReuAWYJWj7DVw2t2CTp8wm60zBzRUpsTMAgYC2BLSM8M0gEqFNBC8aoehFxoXi8+XtXhxFzF6XQDSCUORFIe1wNaQR4RFQBWjx9DFbc3gNatd7qFT+qmfHpryuc3OU/R9B+GKuKRHzKc5xHeyzqEU8/DxLMQMnrvb+uh0l3HS3YeA6/ZfQLSwq2HincASx2WbjlYvONI8fYjog17RRv3SjfvL9iwW7Jpb8HGPe/teFPmAf9fRowYMWLEaEJ9cPq46NSRgjNHRedPiMtOF1ZcKKouK6wuw1xVrKoArlqrrXnboPi+WQ1ep5cXaaqKdfIiemsrejd2ZaFeLgac0taINNUSg7zQpCy2qIvMKrFJITLKC0xyKanJMynzzSqpQ1/oNBQAZpmVAFt5pDrHqs4mVZDm2tS5dk0epcmh1JlmWbZNmWVVpZOKTCh3GzKdhmWkaiWlWWpVLbGpVzh1aKGVXbXQrlzkUK3wGcHLvYYlLu18Sj3Prl7k1i8JmOe5dSnm6nkBy8qbvtl+U5pLMzOAIliLIo5pDt2cAJnm0iXZ1dOClqkhy4K7geSgietWC4KGlAbbzDvetGt2lkctiJg4YR23zsBtAK4yc66a2NcMnOtGzi0zcV1P3DQSdy3EfTPRaCFarOw2itvhINoofpcrqcPLvW1KumOb2exNe+Cc0u5L7Q0Cb6E1Uj0eoB+AJ4Ct5N5wQn+Y0+2hZ/G8rC4vq9fL6/MTXS5IWV1uTFQIqtqRoQdul4fd5YYm3B4vv88P1djdHqLTBSm0Zff5OP1+5IcB7qMg92mYeBRgPQ2wnwUhxRkw8cRPPA+yXoTYL8NgFK8q2n4EuIoGqSPxXFW47ZBk84GibYeKth1+o7gq+q9kMv3/GDFixIgRI1rAVeLTR6TnTkgvnpKUnSkCrqq6VFh1qVh2uRS4SnkF0KpUXQlo9ZZB/rZRsY7edqFIXV2sk60xoq3Yi40Kqa5GoqspNMjxBlfFFlUJqYa0yKyUmBVg4CoUwbLr1/msYMjkkyqRTSOitDRdqXLMiiyLIsMkW22sWaWvyrUps0l5JqkAxsp16nMcuky7bpVNA1y1jFQutSqX2TUrXJplTnV0TtCpXeHWr/QYIF3s1C2wawCt5js08926mZQq/bpX0np91XXv3IB5pkefYlNMoTQLw/YFEfuiq+5ltwKzaqlkrz7RbwCuEvh0CWFTSr11+i331BtOrl8nrDXzag18Gqr41yzc60bMVaxbJjBAFfu+hdVsZbfYMFRxu1zsDoeg2z2t2z+t1b24M7Sqr2FOC+S9KV1+XrcXoIrV7xM+qUt7dm3qo4aUvginE8ETQBUmJMjw+wOQYiNaAmbqQJEqbrsLoVWXGxuhVa8PWuFq3IEA4BRwFfJAlKtYAFVP/NwXYd7LCMapGFoBVGEjrirdfQpACriqcNth6dZDwFWQB5AawVXijfvA0s0HRBv3iDfuyd+w+7XkqigxxSn6L2Ys/X8ZMWLEiBEjWnS86rDk/AnxxVPisjN0vOoSilcprqxRVRUprxSpUNSqWFVZqq1eo8XbLgBX1ZQalKVmdbFRKdHWiNRVIm21RCcTawGwZFKjotCkhFRikIuMyGKLUkKqihy6tV5zqdsoIlW5Znk+qSywqiDNJRXgbGyLPNMsy3OoMy2yDLM8164Frsq0qtNJ9WpKu9KmXmFVL7epVzp1q736dI8u3aOFzDJKvdyuXe7SgZe4tItcmgVOLXDVshA536NfedWZcz+0tJ6a49PP8ZtmuPXzA7ZpDp24/daJX/2X9z4fSHRq8DwgoJXQr0+MmAGt0q7Zp9108YMG4Cp+nZHfYOBdM/Kvm4CrULCK5irOHRPrnpnzgASo4rRSnHY7r9PJ63az2u0o32id3RXY9tt/p/23/3fTr3+R1uJM6vAK+wKIfh4Gkp7Xz/r89ozn1xJ6/FwUpnIDSwkGgoiruj2C/gCv1wc4xe/zg7ldHoAqYDLIoKhVpws7xlXY/Ech6BygDQxD8B6HwOzHQc6zIP/jWjDiqsc+QCvO8xBgFufjqBFXlew6CSwFBqiSbDkIUAV5zFWlu47RmSMlO44CUUk27S/cchC4Kn892m/93dfr9wGjGDWoKDrRiv6jidP/hxEjRowYMYrT+yeP5h47kH/qcP7ZY6JLpwqvnC+uvlRcc7lEcWWtqqpQfrlQUV6EjAJXJepKcJGmstSgWGNUFgM5aavzlVeQVRUF6kqRpkqiq5EYAK3kkIr1NQWGGpFRJrYokK0qiU1dYFHkGKpzTDUFVuAq5DyrIt+mzKNU+XY1pOAcSplhqcmwyHModRalWU0qV1qUq0jVMrNiGeShxG3I8OhXeXQr0WahchS7smuWUuollGqZQ7vUpVvmMS71Gpf5THPs6rku7Xy/cYZDNc2hnOc3LwhbF4ao2R6zqPXG+58PLL7uZZM10yNWgCqBR5sQMABXcX3axFrL1BtOQcgoiBh4tTpevZ57FaEV74aJe8PEu2lm3wYbMVdxmqysZiur1QY4xel0EvcNkElsd83uCX70N19e/rd/fP+/fSK4RyZ1+QCS8Ayd8Ekk9XlD0sMwv9MDhSja1IvOsrvcAE9JfUHgLVaLXdDlhQyvw83ucGGuwlstoGlBeg07h45yYSbD8SrMVewBP/dRkP8kzHsW4dIUxX0RRnN/j32spwHII39SGzOxbv/p0VxVvP0IcNVb+06VohVXx9cAYG09BFAFLtiw+/XjqihM0YrCFK3RFPX/MGLEiBEjRqP03okjOUf35Z44BFwlvnS6qPJiqewyeh9QUV6qqpTUXJLKL0O+WFlB72JVgb3OpF5jUEo01XmKcrBYUyXWVANXSXWyQr280KgASw1ysMSkkJqVBUaZyCSXWJRisyLXUJOlrcw2VOdbFCKrqoBU5pGKXIscO8ssyzTVZJLVOZQ8i1KuJmWr0RIrVTqpXG6sWWlWrrCoVpCKFVYleJlVscRcvcBQscqhWe5QL7MDYymX2jVL0Mah2sVu7RyrbLqlaqZNOdulxVw1y6OdFzBOd6Cd2Wd69DxT5RSvLtWvJ4zliX4d361KCOgSI0a2TyWMGKbcoARhPXAVv04PXCW4iuJVglsW4R0rmHfPirmKfd/CbiSJJhLNBrZZWR02TreDaDFzm22p7e7FjxrAaS3O5FZnQrcPSIjo8RAP/cA9kIFDfo8PLaJqd0DKBUjqcAu7vCk9gcR2D7eRErS5Ejo8vHYXF9yFQlk0V9nBrE4Hu8vJ6XVz+zzcAR/voZ/V62b3edgDXla/h+hzg1mPfNynKF7FeR4CnIpBFftlmPUihINVUa4q3YMm/oClCrcdxlyF5wFLdh773oEzaxFyDeOq/PW7CzbsArR6beYBozxFK8pTw4kK/5v51zj9CyNGjBgxYhQn4Kq8YwcKTh8RnTteePlscdUl4KrimstFsrJiAKaqC1I6g7gKiEp1BQyZUr2iWCcTqSpyZWUFyivFenmxAcWupLqaQp1MqkdGgStdjdggk5oU2ZoreboqsUkOzjPU5OiqMnUV4DyTLNdYk21E4atcsyzPIs82y7KAqyxVeXZFrkO92lKzGgopdZZVvQJq2nVZlC7dolhmqllqrF5uli031yw1V6+0ohcG0x2aVS7tCvQjzap5pGy2pXqhQz3frprrUM9zaec6tbOcmtluxFVoQ3a7eoZbl2JXzam1zqmnuLaa6Q02oVeTGNQn1Zq4AU1CrTHtug24SlhrjHGV4IY58bY18R6VdN8ubLRz7yKoGopXDXJVwkMf0WoB0hI0U9M6fVM7vAkPbGk9fkGXF4Waul3AVax+H9GJVkolPAwh0upycXt9wr6AoNOT2OlN6wqktnuTW90JLS5Bi5Pf6gSuQkxG77aAoYrT7ULudSP3ewGtMFcBVMW4ihjwAEuxnwaAqwCnIMUzgGjiL27ROjqUbj9ctPMo0BWkkC/Zfbx417HC7YchfevA6eKdR4t3HYVUuvWgZMsByeb9uR/tBK4qWL/r/deOq8YkqniQ+t+D+l+MGDFixIhRnN4/cTTv2EHxmWPi8yckl04XXjlfCCxVdbGw5lKxvFxSfbFQflmqAJdLIFWWA1SVaKqkQFeaSommIl9RJlKVF+mqC/XV+arLYk0FWKRFLtBcQdZVig3VOVBTX43nBPONMoxWWZqKbH0VOMtQBWgFUJVPKsC5pCLLUpVtrcmxKrJJeZZFkUkqMsyK1SZ5tk0DziJV6WZ5ulmWAeWkYoW5BgBrpU2Z4dSkuzQrHKrFVtkCc9Vcc9VKv3G537jArZnjUM51qWY5lXPcmkVB0/ygaa7fsKSBSnUoCNW5aSHDsvv+tFpjgl+dENQkRvT8gDqxzpBy1cwLqoUAVbU6MLdOx7tmTLhFJty1JdwjefcsmKu4jVaaqyzIrSRwFdFiFvR7pjwJCdooYYs9rdsHqaANLWlndTuJXg/R70VTdX1oaRRaUzWAMEv4MJQ4EEro9s14WLfqi8bcP+mY3Veb1uYVNDmE7W5gMhbewgq9IWiPRaogZfe4YpEqjFOchz7es5DgRQRSgCr2U5/ws9rkr64mflHP/QQoKhhv1sdB9ichAnCqcMcR4CqEUzuOAFchwNp2CDJr9p4AwCrcfghS8eb9tPflfLgjf/2u/I92vh5cFUWqUVAVi1HFE1X0X8//+l//c1D/zIgRI0aMGP3zP797/HDukf14q4WCc8dEF06KLp+RVJwvrL5UIr9SVFNWVHNZKiuT1JSJay5JZGVFqopSbZUYMurKIm2lWFleIC+DFAArs/KsVFsJlgBLAVpprkAq1ldKjdVFpLLQopCYZGJjjcgkk1gUUlIJab6pJs9YnWOsyjZUYmfpKzN1FdnmynRDeYaxMoeUZVvk6frKVdrKDLN8maYi3ViTCaRlUWRZkdNN1Us15ctN1StJxWpKvYpSrbDKl5A1y2xoE1H0nqDPsMStBbRa5NXNc6ln2eVz3OpVV53zAsY0m2xhLTnTr+fZqqaGDMl+jdCnEvhViSEtcFVSrQHQiuWVCyM6XljDDqlZYTVGK/5NM/emgXVDz7lj4tDxKnoe0IzcYiHaSDQP2GFjt1mJB8bETvfUviBAFa/Tye1BgSU0A4gYyC94GuE/ChHdbkRavR5+f0DYF0jtDa74ovH9v/tq3//7X5c+vTmtM5DQ5Ehs96DlVsBV9B4NRKed0+0CqOL1ezFXEbQBp4heyDh5jwMpn1+b9vPbqV9cF35Sx3rmA6ia8Wd3p/7pLf5ntawXAcApACxszqfIRMnOY5Jth3DICrxm78m1+06toTFLvPUgAFbxziNr9hxfu/fEmt3HirYfkmzeJ6K3WvjRrgNRNvkuazyoioWpYjgVo6h/ovWPjBgxYsSI0aC+f+RA5qHdeScP5585kn/+OL2FFVq6joiquqwQLa66UqQox1wllV8GA11JFeWAViLFZSAqSPNll1DUSl9VoLyMIliaK8WmmiJjdZ6yLKP6XJbsgsRQk6Msz1GVA1dJTfI8bUUOIJdJnqOrKDDJcvSVGarL2fqKHEPlavVlcI65KkNfnmeRr9ZeyTbW5FmUyxWXs4yyPFK9SlORaaiBvMiuXa2vzIbmVuUyQ0U6Kcu0KdNtipWkbAUpW25TLLMpMgKmJU7VXEvVPKpmgUuz0KOd51ABWk2nFAuC5kURcoZHM9WtnhMxz6qzYK4CqEqtM6bUm4CrhCGtIKjBIStuRMur1ybfsiTftfJvGjkAVbeMwFXEHSPrvpHXYuW22dgtJJjTTq+vaqcnBHvdyX3ehG6XoNst7POhYBUAEKBPP5qhYw94OQ/Ru4HEQ6/gaSj5WSTpYTCpyzO9P7Ty07uSP+vK/5M26X/snfOwFq2Ob0dzf0SXA6AKQArFqLqdmKiiwSp6BpCOV7mgQ+HLWkCrxE/q2U8DOExFPPcTT72QxqCK9XEQiIr/RZ3gy3pCvPkAHZo6CYYMGMWudh6lYetI0Q7w4WiKtgk9IN60t2DDLkCr1yBehaEKFOOqGFTFiCoWl8Is9Q+0/get3zJixIgRI0a03jl6KOfIvtzjB/NPHy44f1xadqao8kJR1UVp1UVJxXm0vgpwquaiuOqiqOqCBDLVKCNVXC5WVUhVVwpkF/OqL0AqUpaBCxSXxKrLEs0VsbocO09VlqO4mKMoy6y5mCm/mKe+UqCtzFWV56iviAw12ZorBYBN+iqUMcvEpAJS8CrF+Rz9lQz15VWqsmxtVaauKkNbtVpTmamrzjEpJHZdlkGWa1Gs1lVmGqqXqy+nG6vTLTJkc81qUr7apliFfvdGttQqX0IpltqVS12qhQ7VbJt8jl0x34X2tZrn1c/x6Ga41IBWM/36KQFdoluZ5FMnBbWpEUNKLXJiRJ8c0UOaUI+WrvMbdAnXjcKbJuAqMO+OGcy6a2LfM/JbrPxWG6fVCuZ2ULxeF7sLMIjidjt4PU5IOZ1OTrcLhZdQvMoL3INWPg2gjayQH/m4j/yCh35gr4Ruz5TewLzH9cte3nr3bz4r/b8ez3pUy2+1J/R6eb0eBFKddiCqmDFXxVZW4TVVnCcBIKrUL64nfFwHXMX7OITm++gwFefj0JDpSBXv81pAK6JkJ3r1r2TnMUjpvRWOr9t7as2u40Xbj6zdc6J057GibYek9Ir1qDfvB6h6nbhqYqjCRIVZCv/j+c1vfvP3tH7NiBEjRowY0frhsYM5x/aBc0+iVwLpJVZnCyvOFVw5k3v5dEHFWXHlBUnVBUiBsSQ0VOVVnJXUXCpRo5XsORVnsyvOiOVlElV5bvX5fNlFyIhUl3NqzoMRWmkrUNSq8kxW9bkc+UVwtoK2uixXW56puABplupShuJCjrY8V3clSwMgdTlfX7HOpYPDbB0UVqySX8jRVa2QX8rWVb/f4NvZdvvtgC3bWLNSdTnbWJUBrUxVmeaq1cbqlcYqhFZW+SpStsRctdBUsZiSLXeqV3h1S5yqeVTNfLt8oUe90KOb7VDMoGQzIPWopnlVaW5Fklue5FUk+1VJQXVySANOCmtSI7rkej0/ohY06MDcOg2rTs25phPcMgFU8e8hqOLcN/GaSV6LFUeteJ12xFI9TkArosOG6KrHiUirx8Ed8GEDWkXf2qPpCq+LAmbi9rgT+3xpfYG0Hn9at2/mw8jUviCvheJ3OLldLqLVCnWAn4guCpvVbSd6Haw+J6vfxR5wE3SG9cjDewZcVZvyeYPwkwjriZf93B+DKu4nYd6nEQAp4VcNQFQYrbifRYg1u48VbjsMFAUGrlqz+8Rb+06v3X1iBFcVbT1UvO1w8TZID4k37nk95gHH5Kp4qMIxKiAqzFL4H8+vfvWrv6P1t7T+hhEjRowYvfH6wZEDWYd2Zx/ek3P8QO4pvNvCKcnlM/mXT+deOplfflqM1lqh8JW0Gi1mB7rKv3I2r/wMYqyai7mAX8BesktiRVle9Xlwgexibs357Moz4Hz5xXxlWZ7iUmblGUhFwF6yC1k1AFgXcpSXwLmqsnzAKfXlHMjoruTRjAV5KBfpKzJk57KVF3NV5atlF3JUV3I1lbna6p9eDx7ofvDDsCMXuEpZlmuqzoaatNN1FSs15auAw4xVK4yVS/VXVpA1S8nqZVb5CrQtu2apS73IoViArJpNyWeQNQitXMqZXvV0n3qqT53qU6X4ValBBFVpIS1AFXKdnhdUCq/qE64Z2BEVK6yMcRXvrhG4CqFVo5nTZOE2k8BV3A6KaLdyuh2IqzptgFP8x76Ex37uQzRVh82JC1yxHiHMQpOD3WgpekK/P3kgkNjjFbY7WQ8snFaK1+5I6vejScBmM4pXdTtjUIXc52TTUMV56MF0BVzFeeITvAgBWvFfhoinXm5sifqLAJj/WW3SL65P+bM7gi/rAaqi69YlW/aX0D8LGO+ibYcLNu5bs/t4yY6jxdsPwyHQFXAV2m1h837xht3i9bt/tPP14ar4YFU8VOEYFRAVZin4l/PLX/7yv//3//7XtP4brb9ixIgRI0ZvvN4+uDdj/47sQ3tyju6n0eqw6PxxyaVTosunC8pOF1w+jdawV10orLwgRe8JXpBUns8vP5NTdhy5/GR+xRlR1bmCyrN5QE6VZwqqz+VWnM6pOJVbdQYMmazKU7myc1kVZ/AUYU71+ayqszmy83mKi5CurjqTJTufUXMuS34+X1OeB4CFQApQ7PzqihM5NaiaRFORpypfWXEuX1u1uuaSSC8rprTZ6opsbcVq1eXVmsuLq06vVl1arb28Wlu+UnNpueriMkh1V5YBV1mql1qqlpHVSynZUkqxiJIvpGSL7Ip5NvkCh3q+Sz3TLp9ul8/xaWeH9NMD2qlB7ZSQdlpEP63WMKPOCOmUsC45ouWHVElXDUk3THw6ZMW7YUi4YwKo4tzWs+4akO8bWY1GTrOZ00ay20iixcTqsrG7gX5sAD2CpwHh0wAHiKcPyMnJHaQrFK96iNCK85COYPV58FJ0fp+X3+PhdrkSBwKAWewOtE8V2lgBqOtxkJ4HRMaRKugfeuY+8oKjUauHbmLAxXri5T4PgFnPfDx61g9zFfEyABQl/Koh+U9uQApcRXwSJD4NEaW70M8Clu46vnZPdON1cPH2I5ItB0t2HkVcRf/uMnBV4ZaDkk37Ctbvzv9wZ/5Pt7+//XWYB4wPVsVmAPH03z/8wz8AVN1jxIgRI0aMJtP6Q/t/cGDPu0cOvHv04LvHDr13/PD7p47+6MyJD86eBL935jikPzp/6kfnTn1w7uQH50+9fw4Vvnf2+Ltnjr5z5tj750+8f/7ku2ePv3P2GPj9CyffPXf8nXPH3794EvzOuWM/OHfsnQsnfgD14dSFU++cP/HD8yfevXjqvUunIf3+ueM/OH/ie5BeOPHOpdM/vHjy++ePQ/r+pVPfO3PkHej5wskPys69X3b2rdPH3rl09vvnT7197uT3Lpx669yJH5SdefvCybcvnVp34cT3L5364eUzPyg/+/2y01Dydhn4zNuXz6wrO72u/MxbFeeWWarnGytma8vmWSqXudTzbfKlHt1Sr36uQzXLoQCumhvUT/drpvk1UwIaoKupYR0YGCs1oE7wK1G8qk4rvKrn1aPV67xret4NHe+WnnVTy6bRirhnwFzFbrWwWswsSDusiKt67cA6nIcehDu9Dl6/G4y28QSo6qX3lwJDySM/mPfQz+n3ovVS9MIpFJpqtwFmobXqXQ5cInwUALoCOAMPQdVDD0AV7zHAGYpaIa7qdxIPEVpxnvmBqzhxk4AoNPUyQLzwg3G8CriK9VmY+N6B04XbDmOughT/ViC9HegJTFTF2w/Hc1X+R7tE63cBV7237bu93/qYwSrgqvhg1a9//Wv41xJtwIgRI0aMGL3BeuvK2WWmygWG8jn6sgWWyuUu1WJKscipXOhSzXcp53vUc33qOT71DL9qWkCV6lNgp/mVqQFlsk8u9MkEYTUvrOJEVJirOA1azjUNcBVxQwNcxb6HXgkEruK2WDhtJNFsEnQ72J02VpcNcxXR5yB6UHiJhioXrxdxFY5X4SVWaLuphwitohOCPU6UAnL1ulI+aRA+CSU8DvIHfGgThxYScxVaU4VnAGm0ApxC8Sp6BhAMGeKxh/3UB1yFFlc98xIvfOyPA5xPgpxPQ+xPgnBIPHXzPo/AIfFpkP15mJBuPQBE9fb+M2CAKunWQwiz6JnBInoGEHNVyY4jJduPAFpJN+0DF3y08/3v+O/YjOaq2MoqHKz6zW9+83d/93cMVzFixIgRI0agtZdOLdVeXm6qXGapXkpWL7HWLLEr55qr5liqFrlVS/y6BT7NHK9qTkAzN6SbEVBP9SsBqqYEVFPDmikhdUpYnXbNJKjV8CNqtMrqupF/3cC/qU+8bwGuYt01cO6b2A9M7CYTr5XEXJXU7+F0UUSnldPrQFzV6wBzH3ogpUNNKGTFo3dIR2Gqx4HYrp7RCUHakE98UZvwPEI0mYhWEnFVKwlclfgoGOOq0WjFexbgPw9yn/oRYD3zc58HOM987Oc+4rkXzHrpB5ACnOJ+FoYMTlmfhThfRIiSbUcKtx0EuirddXTd3hOQIu88ItmyH8oLtx4o2gY+iLz1gHTzPsnG3dINe8Qf7nz/9YpXxU8CxoJVf/M3f8NwFSNGjBgxYgR6r6bs7Qi1LkJlkvLFmrLF+iuAVosd8oUO+XyHbC5VM8tePcshn+lSzPGpp3sUaW7ZFJ8Cr7VK9qv4HllSnS7tujn1hplPx6sEN4zC22b2TQPnDoKq+JcB+R12QaeD10kBV7E7bYBW9BIrRD8AVZACXfEf+wQPvdEtPek17GhJ+4CbjmwN0RKgEtRk9zjAeKNRXq8r+XEg6XEAlaB1Wi5IIU/37GQ/dIEFz/xCYKmnXuKhk/XYzXvu53/sZz/3sF4CVNH+xAcmPvWD2Z8HwdzPg5zPAsRbu0/iDT+Ldxwu2YkYC9K36F1AY1yFUgxVm/aI1u8q2XygcP2eD77j66tGc1UsWPWP//iPv/3tb3/1q1/98pe/ZLiKESNGjBgxAn1Qc3mt21jo0qfrK5eoy1ZZapZYqxdRskVOBW3lQrdyiU+7JKBf4NfO8qoArab6ldNCumkRfWpQk+BXptTq0q6ZUq+ZhHVaXp0GuEpwy8S6oWfd0hH3DPhlQFazBW0KivevorkKjFav99h5NCRhWuI98gqe+MH8AR+gFfJDP+ehJ2ZgLLRkqs8FRovTO6ysTrQhFjjlaWjWZ9dmfX6d3WXHaIWgCu+50IPWcnEeuXlPvGDIEI9cQFe8517uC2+Mq9gfI6hi01DF+iwQ4yowsXbX0bV7jgNXYUu27AfAWrfnOA1bKExVTKeYq6Sb94o37C7evFfy0Y73t+2JftLfTcVzVfybgPGTgH/913/NcBUjRowYMWIEeqfyfL6hYrX28iLZ2SWqixk22VKbbIlDsdipWGCXg+c75QtcqgUeNXDVbDpkNS2gmh7WzqhDLwamhLWYq9KumxMb9Ggq8JY58S6JNgWluQpNAjaawUBX7FYLpx3Qyoa4qsfO7qY4vQ7+gDvKVfSLe4KnATD/sQ8YC6BK8DjI6neB4SxaeE7XRETVRSFs6rACRXF7nJxuh3DAm/YsDHQFjIXWadGrtaAO/W4gMvexB8x+6GINOFmPnQBVYPYzdzxXAVRxBokK0AoMUMX7IkQU0iAl3XoA0tJdRwsBobYfKqYBC7gKMsU70CFGK6hctGWfZMMu8UfbX1euwruAAlf97d/+7X/7b/+N4SpGjBgxYsQI9L2y08srTy2pPDW/8uRS9cUsu2K5TQ5ctcghX0DJ5ttq5lFg+TyHYr5PM5uOV03zKWeENDNr9Xi3hYSgKqkObRCaUK+LcZXgHsm5Y4jfvApNBbZbgavA7E60zwLmKu5DREsEvdaK89DDf+IHA1RxH3qAq9BkH01UYARYfU6oiaNQ/AEPYBNAFZhot4LZnRTRRsa4CqMVois01YimAjmP3ONxVQyq0MTfFyEwjloBVCGuQrN7W9APKgNXrdl9DM8Gluw4jNdXoXgV5ip6KhBcvO0AcJV0/c4f73xN5gFji9bj3wT8+7//+7/5m7/5q7/6K4arGDFixIgRIxBw1dLyE8uqTi2Xn1utv5JDKZZbqpfYapZQ8iV2xVKncqlHvdSrWeLTLKanAmf71LP8auCq6WEteGpYI/QphGF1Yq02oVYrrNMKrur5N/Wc23ruXbTZOnAVt8nCayX5bVGuwvss4C2sgKs4A4h7iD70SiDx0M1+7AUDYGGW4j7yIsx64sWhJkxI3D5kHmBWN8XtdfAAtjpRh1w0M0iyOqObgtKzgQ6oyepzgGEI4CruY6ArxFWcp248D8h5EV1ZFQtWAVRxvwxjrooyVsn2Q8BPwFVF2w+V7jqK6ertfWjRFUKrwfVV9OKqvShetXW/ZP1Omqv2Rz/p76bG4yq8wTrmqv/6X//rBFz1J3/67588ff4q/sWf/DsYKNqMESNGjBgx+g7qB5fPrCg/sbL6bLr6UoahIsNSvdIqW07Jl9uVy5yqFS71Co8G0GqRS7UibFoaMs4P6uYGtLNCWoRWQXVqQJkS1qbW6dPqDckNhsQGPXAV74aOe1MXv986twWhFdq/CpvmKrRovceOuOqhC3EVoA/kaa6KRqdwBOupDy+KQnGmPrQIHUMVtEUvFfbYAa0wpfF7nSgM1hWDKlSNnmek0a2XgoFiXMV95uG/8PFe+uK5Ci+rwiyF5wHxIVG87WDpjsNFWw8AYK3ZeQTSdbuPfX/fybf3nkCF2w6WbD9YvPVA4aa9ko27CzfvLR6cB/xg+3d+HhBPAo7mqt/+9re//vWvf/nLX07MVY3N7V/+4s++/MW/H+U/++pPkNt6n7X1PAXfutcEHUabMWLEiBEjRt9B/aDszLKy48sqTq2Un0/XXF6lv5Juq1lll61yKFY4lauc6uUO1SJKNtdavdSnXeLXLvBr5wW0c4IIrYCrpgRUaOP1BuPUq6Yp181pN4xJNwzCmwbBHSNwFb3fup79AG0KCmgFXEU0mzgdFnYnyeoiiS4L5irMTPgdvaEtpgZcxEP0szPRmTuo0E+HnXqBmZCBroDMMFcNxas6rXCIwmBoQyyX4KFHiKYU3Yir+oGrHABVyE/dgpd+MIpXvXSzP/awPvGwP/WyPvchf+mPmf0FMiHeuAdwCugKUiAq4CrArHW7jtK8dWjNjsNrdh4GusJcJd20p2jz3qJNe+j1Vbujn/R3U2NyVexlQMxVf/mXfzkBVz16+uJf/vVf//e/TGKo0//o6V//9V9HmzFixIgRo9dUwQkVrfRHEQz3q1/9KnoQJyj8na/kB2Wnl108uuzy8eU1Z1epy9J15SuMFSvIqpU2WbpLlenRZbi1y52qxXbFfLtsvkM+16Wc51XPDWjnhnSAVjPD2hS/KjmEfoM59aox9boh8bo+4ZYx4R763WUuQivEVbF4FXAVt5PkdFkBrYhOxFUAPdHl5ABVT9EWU2D2Y7SNJ4IqyNBQBRXQLB5ajOUCZoKGOGSF5wEBqgCwBH0uSNGK+EHwgjpgRGM9CKpYA3ZMV7zn3sRPQ8KPA5znHu7HnhhXEZ8htCK+QI5xFSoBYAKQ+t6+k5AWbtmPGUu6ae/aXUe/t+9E6fZDhZv3gYu3HigF0gL82n7wrR2Hitbv/NHrGK/6Wlz17PnL//if/8pU+8hc/9BydYC80W+73fcf/sNf/Obvf/1f//IvwX//978OtX4BHoer/mIA/roH/iJ6NKjf/Ox+MHj/Z7+JHv5BBSOO6hmNN9lwr1InqrGG+APoD9vtYG9f476G63duyIgRo9daEyDLH5mrgJ/CkcgItBqz8NX1w7IzS84fXlp2LF1+YbWqbKnywgp9+QpzZYZdudqpKgiaRBHLMpt8IVmzxKlc4lEv9mkW+jVz/Zo5fs28oG5urWFWnWFGgyZtAmsAAP/0SURBVCE1okkIKoRhZdJVXeJNA/e6lntTy71nEDSTwjYbv82KzW23stvN3G4bq8NCtJs4fRRnwIECUWgtOdr+IGo6UoW5Cp+ll0Z5eI88iMPQLwk6CHomEYgKTwIioupCa+FRSTeF0Spahx6F+9hF9FoBrQTPvAv+873cXw/M/093eS+jUBWLV6EA1VcBzs+CxOdeyKBg1ccuooR+yw8oCnAKcxWaFtyyf93uY6U7DgFOFW/dDymUAIHheUDp+p2FH+340Xd/v/Xfk6uePnvxn/78v5+g2k66Ws8Ems7VPrh47d6f/Mmf/+bXfxfPVbXdn43PVfdBw7+eoRD0DX1nx+jkD4sp8fqGev7Ddvu79fbNfWiMGDF6TfTt4SrQCIr6PaEK9INLp1dcPLay/OQq2XngqgxteZalJtepLvDqVpA16TZZpku9glJkeHRL7ApAq0Vu1UKPap5XPdurAs/0qWZFdNNrdVNrtckRdUqDbsotc9o9MvGuWXDHwH9gAq7it5C8VpLbYsFRq8ReB6/LymozcbqsCY/cwsduoKWEF0G0yoqGKgAsDFXYmKti8Sp2P4IqICc094dxqseO6Qq4itvrQGg1aARVkKG5iv0QAI7iP/UIn/um/aIB0Crtq1ruCzfnEy8QFeczNAMIFMX5MoBw6qsA8ZkHUu5XQYRWa3cclm7eByxVsv0QoBUAFlplte0gPSd4sHT7obW7jry1+yhkilDgCnFVwY+3AFf95Lv/PuDvyVV9A4+Bq+TXek8FHux1N+z0BncGPTRX/Qoa/uVf/t/AVdeePb/9xaMJuGpgYDhYQdnAwDf2/R0jg28OEb6hnv+w3f5uvX1zHxojRoxeE32ruAoUY6lYJnrid9IPLp5Mv3x8ddXpVTVnVisvZBmvZJuqC1xasVe/RF++WHNpFVmz1Fy5yqFYRikArRa5EFot8Knno98NVM30K6cH1dMiWuCqtFrt1KuGqcBVd8yJd4xJDyzCJgu/ycJtMrObDGBOs5HXama1GIGrhL12fq+d3W0lukmi10ZP0iF4QlD12M1+4kHTgvS2CNiQj3EVG0CK5irI8PtdeN060UECV/H6nIBZKEzVaUXuJtm9KF4FBqgCJ7z0Cl94+C88CZ/4uc9cgk987I/jIlVfRJdV4alAzs+C3J+HEGMBVwFRAU4BSGGjkBW9ygp4i54B3A+YBVAlWr+z4MPtoo92SD7cXrR+5493MFyFuGozWfsjk/tDu2OD17o5ZMLxKoAqHK9q/Hfdrf9H2wRc9bPfQBqbC/zNzxBl4XI01TQ0STjyO50+/guoggTVUG1ag7XiG8TyOAPpoNAA0bPwn8HhYvXpK4qrE838LNrBYCU8L4ZL4FxcW7oQhHuecIj4+oO1xux2UNBFVNHqdJ+Dn8lg7fELUTbuMkYNP7z/oaPBw8GGo24zenb0p8SIEaPXXfBPPpobpQlOfaPCRPX7QxUIuGo1zVWr5ecyVBcztZdXqcuySVkepVpuqMh2qEpqbbke7UqbPN2lWeZULXWplnjUSwO6pWHD4pB+fhitspqBQ1b1euAqeomVjnddk9xIJjRa+A9M7AdG1n0dq1HPbTEBV0Ga0GNP7ncBXRFtJn6/I+GJB6FVbIupJ56oaaJC03/0Pulot4W49VVgtDi9zxmNUdHxKhy+QlzVQaI9F3qsHAxVvTbEVT0k/5kLzHpsBxOPqKQvQqyXbtYnHuIzL4YqRFSfe4nPPEBUYFTymQfNAwJX4dcA39pzHMer1tCwtWbnYXoGEC2uAqOl6xt2idfvLNm0R/Lhtg/e+HXrmKt+Qro+clIb/eSWiHHHNQ2OV8XmAf/sl38GnpCr0H+i38fwDR0toL+Lh07EZ7GgYPAbOy5L53FFyEXL4vKjM3F5+O9g09j0ZPSKhjWM546ROZoxhmriQrr01Yegz0ZLRnc7WrGGqH40Gxtx3MIRmaFzozS68ojCUbdJF8buNHaeESNG35zg39wEilb65jXBWH/My4jXH5Cr3ik7nV52LKPyVI7yYo7m8irVhQz95QxjRZapJtuqeO9WYFvfve/f8uW4NVk+XbpHDWi12K1a4tUsC+qXhPQLw/rZYR1w1Yw6/fR6/ZSruqQGjaBBzb2mTn5gEdw3ce/piHta4CocrBK0k0k9Nk4LYixBl03QQyU+dCc98QL9sPvt9Pt6aB0VNuYq3hM3Nvexi/vQiaoBhPXauDjTbQVzeykwp8vK6iKBtFBAq8eKoYo34IAmgFa8p06i18x5bOc+cXCeOrnPXOwnDuAq9icu9qdu1uce9hde9lc+1pde4ksP8YWb84sA++d+KCG+8BBF6Ndp0N5UOGpVjDZWOLR255GirQe+t+8EZIq3HSgFxtpxqJSOWhVt2lO8cXf+jza/u3ln9JP+buoPxVXrPbbNQfO2Ov3O6+q9d2TAVX8ft77qX//lf4Mn5ir0fUz/F47pb+DB8lgBZHDBkGJ1xstPXDjW2aHLoAM8KD9Y9GoNRxbG8QSUooMJhkD14wS1x+w2XlAWFT41rE50xEkKBzPDrzYqOBnV6P7HbgilowaNzzNixOg1FzwvorlRmuDUNycMVZDGMtETv5PevXwm/dJR4Ko8dVmerjxDdVFEKXLI6kxjdZZZ9u5135bOW+uuOldTimyvbrVXs9ylRqus6NlAeqEVWmKV5ldOCajSwuqkiFIQUfDqlMBVwjsG7h09+44GuIr9AIEUv80CXJXYSfJbjQs/acj/PzsWfHGN20myOiyCASdwElpd/pCe73vsgRRMR7DonREeOYG6gJCIXhsAE9FNQn2U6bQASwFU8frs3G4bHAoG3PwBN+AU/6ETG7oFrkp46SX6SfYjCtCK99wt/NgHdCX81M/51M35DEEV50sf52cIpFg/Qya+8kLK+0VQ8KdhYg1aOLVfvH53ydaDa3ccKdy0Dw7Xbj8MGQRScIi9ca9k/S7JRztp7yj48Zb3tzLxKsRVW8LG7Ve1u28q99+rPtR0Bbjq178a5Kpf//qf//mf/sdvfzsJV2GCiHJGfHkULYYBRlTjfXPH8hMXjnkWj4MZDvIDfzE08IQNh11fXOEYwDH+EMPrI8VOIcWPS2uofqxefJ3Y6YkLBzNDvQ1qkv7HbgilowaNzzNixOg117eKq0aw1O+PVu9cOp1+4Uj6lZPZigu52svZ2nIRKcsna3LN1emGKwUOTXHQkkkpVpI1GS71arc63a1d4dUu8ahjXDXLrwauAqeGVEkhBT8oE9QpE27o+Ld07Fta1m01cBW3CQWrgKvAyd22GY+90v+764f/4+XSX9wGrgIeSniESAgAiDPgQm/8xRnhFL1FAjI9o4e5it1rQ2uzaK7i9NhQyKrbRser7MBSgkcuMGQAv9AkYI+V+8RB9FkAqhBaPXXG1lcBV8XiVawvUcgKhal+7kdRq6+8wFUJ/76W+N6e42u2H5Zu3Avpup1HJRv2AFGt2XYIMmt3HF6348hbu45+b/extdsPlWzeX7x5X+mW/XjdOrO+qu/hkz/99//F0nyPbL1ja79p77zu7L76+ed/GuOqX//qV//4D2jr9sm4is4OTXTFlaPv9JFL22mN980dy8d94aPOcWHs7NjN0Whx03MDMHK00sQNITPEIHFjDV5A3LVMOMRQ17TG7HZQscHROZyL62FoxPEKY01G9hLV2P3HqsT3MPo2x6zJiBGj11/fHq4ak6J+T7T6wYUTK88fTr98Ir3qdJbiYr6xMl11McdUKaaUGabK1caqTItslaW6wG9YScnRjlY+Q0bAuDJoWBHQLw+gqcBFtabZtXq8xCqtTpNYq0q5pku7Z+He0LBuaoCr2Pd1vGYUrAIDXSV02pJ7qXmfRGa9DHE6LPitQKLNiANLaPkUbQxVvEeeaKSKDlZhrkJL0QGtuizAVQBSeCoQDF0BYKFpwX6EVqhDqI/Yy4zcbSJ6TMBVxEMb67Fd8ImH99Ij/NzH+thJgD9xEp+6iM/daNaPjlRBCmgFmAVoRfxg30nxxt2STXsKt+xDLwDuQMuqgKLWbD9UuGlvyZb9a3ccWrfj8JqtB4o37inauLto/S7pRztEP97ywRsfr+rpfwxN//EffvOP/wP5n/7xH//pH//HP/3Db//3//qf//K/oSv0+82//e1vwJNzFfpOjn47j/gmjvvejtd439xxedSS1tALhkNnoydRz3FN4uliGGnE6sRVjs9Hu4PjMdetx5pMMER8/cFbHrPbqAZrD3Enuh44oEtjn9m4hbEmg90ODhatNrr/wRpjfGhY8V2NmWfEiNFrrujDYBxFK/1RBMONyU9Q+Dtfybtlp1cBV5Udz5FfKNCW52jK883V+ZQ8n1Jk22QZlpoMqzzXpQGuSncoVzoUOUFzZtC0xK5YHTTm1FnnO+SLgvoZXuXMoAZFrcLqadeMyfWapBt6wU0dUScjrinZ9wzEXR1xR8tqNLJb0b6gaL/1DgsONQEk0dN/9MIpej907mMX79GQ4RRO0WZXfVQ0BAW0RDsGVWDojcYsC6/PBmZ1mYkOI9FtRpEttC4eRbzYjyiAKvYzO/uFnfPSCVDF+sQFRlAV4yo6UsX5RQDRFRxC4VtoTRX6NeV4l249ULL1QNHmfcWb95Vs3b9m28G12w6u2bIfuAqgquBHm6UfbvvJGx+vamxuB2Aa7YdPnj9+9vLh42exkrsPmqG3aLOvKfhaHqQBRhNrTIJhsIYRI0aM/jAawVW5YGNlrrUm1yoDrsokZZmUEnNVtluzwiZbZpOv9uiy/Ea0gJ2SL/VqFvl1Mz3K2QHNFJ8iNaBMq9UKw4oEeuk665oKTQXe1RO3tewHRl4rSTSbMFHhaBPGHQRST9B8X3SyD+gnutbKiXAKZ+KWq6MoFG5Ox6uG20x0mtg9JqAryKB8twUDGeKqhzbgKuKJjfXMxnpOES8o4qUdc1VsHhCtW/8Kmf1zP1poBYeAVsBPa3YeLt1xCP0OYBxXlW47WLwFTfyhub+tB9ZtP7QWSGvjbvFPt0k+3C756TYmXgX1oc5fv4KgGlSONvta+s3g2h5Gk4vhKkaMGDH6BvXDiydXnD246tLRrOqzuaqyLHVZvrkac1UOJc+mZFl2RY5TnePWZDpVuX5Duku1wqnI9BlWOtVLrLKVPt1in2a2VzkvpJ3uV6YFFFMiakFInnhVw61Xcm9o+PfQT9kAVwlarQmddqLJSLQD+iAqQpwEUPXQCVDFfxqd7wOoIvrRzggxtOINOMAYp8AYsICrMEihrgYd5aoOI6vbGIMqfj8leOSCHlj9VuAqMPHYSjy1Es9sxAsr8icO1qdO1udu9hce9lfAVR7iK2TWz7zgaAn9OzZRqCrauh9BFT3x99auo/Tbf2gjUOCq+HhV8YZdhR9tf3/rrugn/d3U789V37Dw9BLDBK8uhqsYMWLE6BvUDy9EuSqz6kyO8lKO5rKElIsphZhS5tuVeQBVdkW2TZFhU+S4NPl+Q45Pv8qpXGaTL6MUK+zKpQ7lEr92nle1IKKfEVABV02t1STXqlJvGngNKs51Ne+ugXffyL5n4LeQwg6KaDYRbUA8FrwJQjQW9dgVM6YrKI/Fq/BKKXA8YEHzKFR1mIl2EzJkEFqZweweE87w+myJj10JTzyAVsBVxACgFQlcFY1XvbQh01xFYH/uIr5wE1+6Y2gFXAUmpBv3AE4Vbtkn3bwXDCxVAhS1/RDah33jHjpYtX/N1gMlm/dF11dt2C35cHvJxt0f7joQ/aS/m/rWcxUjRowYMWL0LdJ7l05nXjiaeeUkngcUGSqlpFxiU0hsSrFdJUJopcyxyTKtNQU+wzJzZYZDmeXRrqTk4jrrulvelS7lMr9uvk+9MKyf6VdO8cmnRNBuC2k3DMLrWtZVJfemVthk4T4wcRpNvFaS00ZirmJ3I65i96Mpv+jcX2xx1RM3H/24DXqbD7MUOIZWqBVeuj4OV6GJv16UgoGrEh450U/lDDiIPjLKVU9s7OcU+4Wd/Qntz1yIqz5xIH/qALRioeXqXgAsSDk/80W5ChMVduEmhFZFm1AGjLmqFEWqEFQVb9pTsmmP9KMd0g+3Mb+7zIgRI0aMGL05er/sTNal49mVpzFXiY1VefqKAnO1mJSLbUqRTVFAKQsoRZ5dkU0p060yoKssl1oUNB37+aOL//kzyVVqOXCVV7UoqJvlU07zKaaG1YlBeWK9OvmmgVWv4NzQAFfxGs2s+wZOsznKVR1moCKMVqzYj8z0oS3RAa2AqwRPPIBWeP6O228HY7SCFG+yMCxeFTOOV3Ub8foqyHN6SECr6NThcK7ivHQAVHE+dXC/8HA+d0fjVWAap7g/9w/jKrw+HYepsIu37C/cuEeyYXfJlv0oTAWkBVC1YXfxxj0lm/eWgjftyX9/4w83bot+0t9NMVzFiBEjRowYvbreu3Qq69LR7Csnc2vO5qkvFejLc9SX8vVXxKYaESnPt9TkWWT5Nnm+Q7XaXFng0RSHyAxKIQ6YTvz80YX/42NJvW25R7XIo1gW0S8MaxfU6eZdN06JKJMb6KnA6xr+bT36KZt7Brxund1qYQFXtRuITjRVx+4lWf1W9oANTPQj7uE8pPhPnIKnLuEzd+JTd8ITF7ffxumz8gYowSMHpEQ3WpkOwIRXUGGz4kx06oGroAJiLBqtUHALOIxeX8V+ZB1at07PA7I+dbI/c6GoFV5i9YUHx6twyv3KByXofUAMVWu2H1q38wgY/WIgoNWmvWu3HwSuktLbgQJXlWwCqNpXsgkYa1f+B5ve2/Km77fOiBEjRowYvTl6v+x0zuXjuZWn8mTngKtEhivZqotRrjLV5Bursg2VuebqfJtC5FBlWNB2VtmUMsumyHVrwcvI6mVOxSKXPL3OlH6dXH3HvuqBc95N08xbxtTr+qRbhsR7Jg69bp3XbEHrq5r0RKsRcVWHEXMVYBP3kR2MF5VDBrgKQdULb8oLX+pLP7AU1OE/tANjQcrqQYEobq81SlR4QRXtKFd16ICroAIOWaFpQfw+INDbIwpxFV63Dn5OIr+kiE8cwFUocPWlF1HU5y7iMydwFednvihXoXXr9Kt/QFeQQh5tB7r90Boo3LxvDXoHcA9wVenGvWs27i38cEfhT7dLf7Kt8CfbfryNmQdkxIgRI0aM3hS9c+HEqjMHpIqLEnVZVs0Zif6KxFBRRNZIzdUFxkqxpbqArMknZRKnWurWZttkuXZFgUeT59RkOVTZTnW6Q7mUqkoParKumgvuu0QtgVX3HbOv6add1yVfVSfd0iXdNwsfmNHS9QdGeh7QjLiKhipODwmclPjULXjqApziPXZwHlIoqtRvRbBFh6kQRfVYULBqwA6oBIaM8KGD12eD5sgAT4iljMBVvF6rcMDO6TWDcWXseK7iPLaxnlLs51QsXoVnA9mfIROf2YnPHayvXJyfe4gvneyfudlfAmPZiXU7jwBR4dVUOHAFaIUWqgNpbdqLuUr84Y6SDXtKN+4Brir6aCegFcNVjBgxYsSI0RulDy6fybxwZNWFw6vLj+fIz4m05QW6y1JzFXCVxFxdaJNLSFkBKRNTKrFTnWuV5TtVYo82x67KsikArTKdqgyPanVAA2i1IqJdedW8oE43PaKafk2XAlx1U5t4x8i/Z+TeM7DvGTiNJk4byWpDUSV2twVB0iNH0jNP4gsvoBX/iRPQCgALTQU+tIMBp8DsXoRfwFL8fgpwCqdDsSjaAFWQcntIQCu0uIqeBwRjroqucx9nHnAYV32OjLkK0iGuenv3McmG3eitQDpehdZU0cuqIJVu2F26ZX/xhj2Sn2wv+nBn8fpdwFWQFgFd/ZThKkaMGDFixOgN0jvnT2aeP5J1+aREXV5kqM6SX8jTlBUaK0WGigJDhdQqo7mqWuJA84D5lELi1Ul9+hyHIouS5bu0eR5djl+b6Vctc1UvcFbM89TM8Faleaun1qqSG1SJNzTCW3r+bT37jo51V89pNHNbLOx2NGGHZu6AhPptwsdOTFSAUzHjeBXaemrADhQFKc5gTgKiQjOJ7QboB7MUGAMWOLZuPRrQ6qEXufdYh9atx+2zwPqYGs1VwFKcrxBRcX/miXIVsJQYgGnTXhypQjutD3KV+KOdaN06zVVoBpB2yfrdxR/tLPzJth+98fuCMmLEiBEjRm+O3r1wMrfsRE7F6Zzqc/nKsgJNeb62TGqoyNeV52oviy3VwFVim6zIrS6wKfJs8gKXGsWrHApwgVuX61bneJSZPuVKV81Sd/Viv2KWtzrNUzUlrEitVyVdU/NvaLk3tazbWuKOjv3ABFzF67ICDIExWnH60Kwfgp4+kj1gi+cqYKmER854qAJIgiZoZRVwVZseuApACqAKeoMM6hCQq8sAaIWjWdh4Z3ai10IvjbcQj0jiqRW4CkMVTjFXYbSKcRVOiU8ptM+CZMNutMpq64E12w4CThUDVAFObd5X+NGudVsOlG7aV/jhzqKPdqFI1Uc7SzdEueqDLcy+oIwYMWLEiNGboncvnCqSXXzHpinWV2ZWn5UaqoCrJCYUrxIZK4soRRGllFByqVOVa6nJMlfhJVZZlCzXqQSoyrTLMxw1mR7Fao98VUC5KqJZGJRP81dPjciBqxKvqnjXNZwbGvxrNsBVnGazoIsU9pL8PkAreiFUPwnm9FlY/RbOQ6vgEQXmP7SBE584kp+5IBU8tHH7LEPuMYOJdh2r08DuMnK6TdxOIzbkgasQWtHr2bGHuKoP0Mocz1WcTx2Yq7ifOTmfO4GrUEoTVRSwPncSn1BonwVAKxSvomcAAaeK6I0VCjfuKdm4962tB9cAY63fjdetA1oBVxV9uEPyoy0MVzFixIgRI0Zvjt67eGqtumJrvfsDrzlXfrFAU56nKZOaqwotNSWU8i2vfq1bK7bJCmyyfEqRa0VQlQ+M5VQWeDQFPl2WQ7HaXp3hlqe7Zat8CuCqRSHFrIBsZp0qrQ5xleCahntTy7mtY98zcB+YgavYrQbEQABV3WghFK+f5A1YwcBV7IFoHgxclfDYjtEKcxXUhAx/wCrotwoHbESHHrgKm9OBjLkKDhFaDb4qOMRVfeSIeBWeAYxxFUYrMOsLhFZoodUX6BBx1dodh/HcHxBVzMBV0g27izfswfGqoo92rdm0D78PCFAl/ck20fub3t/M7LPAiBEjRowYvSn6cfm5IvmlNdoqseJSVtVZkQavW68Eriq2KdZ5dKVOdQFZnUdWS1wqsNSnl3h1mKtEfn22U7maqsp01aQ7a1Z65SvD6oVB+Ux/zYxaJeYq4XUt75aOdxegysRrtABXEY0aVpuO3WUEs7qNOGTF6bMQfWYwq8fEpksArYCiwEBXAFVQDYgq8ZEdiIrXawET7TqMVihkRXMVGPVJc1UMqmJcxaJ/xybGVXi/deAqvHR9NFfhqBX3CxfrUzuxZvuht3YeGZoBxFGrTXuBqwo/2lWKYlS7pT9F7wOWbNgt+fFW0QebIS14fyPDVYwYMWLEiNGbo3cvnMo8f2T1haP5NRfE6vIs2VmJoaLQUlWgv5KvvyK1yqRWeb6lKt9aI3YogKtK/EaxR5tlrcm2y/Pd6kxHTbqtEnGVW5buV6ZHNAsDshneqmnBmqm1qqQGVcJ1tfCOTnDfJGg0c5vMnGYjq0XP7TRiNkJQ1WfBXMV5SIeses2Q5z+0CR/bhY8oHKlC66W6jcBVCQ8pfh+JyKlDT7RqAK1i84AxtMJcxaaJCqc0WgGr2dgDJF63jrmKS+NUjKt4n6NZP8RVn9OLq7708r/y8L50I/Yq3rJf9OEOIKq12w+Vbj2AJgE37UV7rNM/YoMXWqFpwfW7pOt3Fm7YVbRhd+mGXcUfbn9D3wf8c0cpEadSx59HT2Dh08e6RuYnUdexMfqaVH/+57EGX2Os31t/zLG+dYr7zBm9kv5wn9jv94f3zf7Z0v+Cv/4/YUaMvlt6/+Kp7AtH8spPiuUXRPILWVWni8zVhZZqqblabKoSmaskpExCySUAVU6lmHaBS5nnkOfaZdm26kxbVb5fkxfUZvlVy901S32y5WHVopBihr9y3nX91GvqtJuaKQ+MyU1m3n09+4Ge12bktpvY7YBB6FU+vA6d04c2XMDTf5ixAKeSnjoTH9nRMix6h09UjV7tHtutClKi3cDtNAt7bfxuktVmIFp0kKJMB+qf020R9CB64/agX2IG2OI+snGfUMRjkvXMRjwhiUdm4rkNcIr9GfrpZbw1KO9LL/dzL+R5X/iEPw8k/CzAB/ZC2yts3rdm28F19IQgDlmtGVzDTr8YGOUqyUc7AK2KALB+sk3yoy1v3vuA+ME8WvEP0/iH99d4kH9trhrZ9zf7pTFcf8yxvk16U+/7d9cf+BP7/br7Zv/3MVzF6I3QexdOZJ0/nFN2PL/qTL7sXE7NWamxsoisKSJlhaQMx6vQunW7QmSXgwtoA1dh5zrluV5Vlle52iNf4ZGt9CtWhFSLQ4rZgepZtcrpDarUa6qEmyrhHQ3vvpbdqCUeqIlGDdGqx2gFeATYhN77e+LCM4CQYq5KfOIQDtg43ab43aowTuHXAPFWC9AJQBWvywIdAlEhXOs0x8zrMoGhEzDRrkX995uBq7jP7RitOC8dOEwFIMX53A0sxf/SD4YM5zMP+1M37xMX9xM74qq12w8BVOEN1jFjvbXjMJQAV6H9qwbjVYiraEt+vFX8weY3bd06fnCOeDCPKvwdH97fKa56U8V8xl9X36pP7Ju9GIarGL0Revf88ewLR3Ivn0A/ZVNztkB5sUB3WWysKLTUAFeh/dZNVQVktcgqK6CQ82ljqMp3KvLdyhyPcrVLlu6WZfiUGUE15qr5EQVw1azr2qk3tcIbSsFtdUKzkd9sIO4p2a0GYbc1oY9CMDTIVWA08ffYjteqp77wTPnYl/LUJei38vspFNbqiv1MDeIqbg+JuQpwCiMUZMDQJz5E0IZK9HjRFeYqtJ69xwBcxX/pxFwF2IQ2rwJy+sQBBpYCohJ8FQBDhvjYyXpOIa4q3rIfuApDlXTDbrTH+raDa+mNrBBm4TnBwXlA5I/opes/3vpmcdX4j83hZ37HhzfDVd8BMZ/x19W36hP7Zi+G4SpGb4TeOXc879KxgsrTeZWn82XnCrXofUCRoUJiqhKbqvKNFXmGijxzZQFZg+YBHYoCuxy4KteOjOjKpQCuSnei9VXZQU12RLcypFoaVCyqVc2r1wBXTbmhSbqpTrirBa7iNemJ+yp+uym535HyyAUMBJDE60XkBHSFJwHxe3/CRxSOVwES4XgVcBU2mv7rAE5CbcEYp/D0H7AU9AkZKIE8jVb6GFohqOo2AldxHluBq4inVuKxhfsxWl9FvLASL2zohwI/dgJa8b/0C38WZH3iIp5T6M1BOIv3WAeEKsTvANLxqtIt++EQGUgLpyizu3DDrsL1O0s37Cr66Zu1Lyh+ao79TKaf14On4h/eox/kuBtaw5/AI7kKNx3vKR3XDYgeIDYWziCNbh3fbsJvgJGXg0WXxoaIv6/xeh6j5hh3NkatERp+w2O0hsZDdWI9jXNVMU3U7UgNrxt/scPOTHQXQ5qgCX0KFcXVGaPT+B6GXzf9eUAR/lRpTXhjr1R/3OHwibgLxN2MuAHQGPcw1v94XDRsiKFa8fXp/CSXPfwjjG89qGHXOHRqjKq4aJwLA436IBgxeh0FXJV/+YS46mx+1ZkC+fki3RWx/orEVInXVwFXFZiqRNYaCaUAqIpx1VDUyqXIdiswV2UF1Flh7Uq/YqlfviSimh1RTgnLkmtlmKt49zSse2pWE5oK5HWYoyui2vTcHhJzFf79GRagT5eB22MGqBL0W+ntGKJQhTf/RCEr+mebAZtwXAr106qPzS1y2oz8Touw2wrmdwFdAWbp0Tr3Qa5iPbRwn9vR+qoYV4E/RiErYCnu516AqsRfhLmfeab8WcOs/3g99U+CiKtQXAqvT6d3sUIL2OkfsUFGYapdmK6KEWDtkn60o/ijnW9YvGqsR/LYiq85vBU+ilfcQ5p+Kg8eR2uOP9wY31i4TWnp8DFGjjBCo76IYhp2PVHRZWiw4fc1Yc8jqg59CvF9xzoeU2N1D4rVp3s8dixWK9rzRFeFNFm3IzW8/mC1MXsZtw9akzShT8fdTlSTXfrQ+cFPeLji2w/XpPUnHg6fHjyO//89vN2YH0p8dVqDFxN/ufgTQXXiq0922aPOlx47Nnywse5r8PTXvDDQqBaMGL2OeufcsbxLx0QAVdVnRfILhdpyqbESuEpsrCwwVGCukpCIqwqsNfm2GjwVCHQlAsZyKQs8qkynDLhqtUuW4VVk+JQrfPKlPhlaYhWUp/qrkiI1qTc1Sfd0nDsq4Cp+q5HdrOO2mwCtokEmesN0tCwdvxtIb6nA67UkPKSSHjvAQFTAUpDifdWjXEWvrMJchaCqRYe5CizoIhN7qeR+B1jYY+F2wChwVku0aaFndp+J6DOyHwFUodXrgs88nE8d9A4LbrRonZ4EBKhK/tNa4VeBRX/VlPX3PfP+y02ilF6fXrr1AN7FClI0LUhPAqII1nCukq7fKflwO94X9E3aZ2HYd8eEin+8DnvU4qf48O+focfw0AAjz4yjkY/xaLPxBhg+OtLokmEafcd0Cd3fsLEn6ZmuO3R28DLjL330UHHCDUZfyFAHg12OUSe+aHjJ5N2OIdworkK0yVA3g9cyfieTNolWiOtjxIXhw8lubdRxfINhmqT+ZMMNNkDHOBd386MKRoquMLIrpKE29HC4Snx3g1UHG0ePBw/xRQ51Ez0eKokWjB47rvtXvjAQrjF0lhGj11Lvnj+ec+FI/pWTwFVixUXgqiJDpdRQUaC/AlwlNleJLTXAVfmW6hhXoQXs6OcCFflORZ5LkemoyXDL8ZbrYLTbQhBNBc6PqOY2aGbe1E27o0+8qxXcRUvXeS2GhC6S32kBtIqCER2OAlpidRvRzp90jArvSsXvNgt6LBx6q084xFuJoj2r2nTsdpTi7RUQM7Vo2HDYYeC06wUd5sRua0qfPbmXQvEquiZypyHxiSPhqZ3oNxEDZs4ziv+JK/FLP97Five5B8z93IvRKuHnIfYnril/1jD7P91I+pmPWLfzCOAUmvvDC6roecC1NGwVbdoLRIUNXFW0cbf0ox2in2xluGp8xT9e4/OjehheMHhE//dVns4jH+P4eLwB6PzIXukm8S2Gafj1TXxfE/U8fBRUvdThiG80YqBXEN0i1h5fzfAOJr2qsTS82zEUf99IYzaYuJfJm4xVI35g+vzI7uNvbfTnQTcZ98Ynrj/pcEjR66ODbMPGiZ4Y0Txew7tCo03w5xHfHc7HjxZXc/TJwbLBfunKI68svvBrXRgSrhI/IiNGr5/eu3ASr1sHrpKoyop0V4qNVYVGFK+SmKuLKUWJXVVok4vM1WJKLrFHZwNRsMpOb7VgrwGuyvWqwEBX4OygJqtWtzKsXlKvW36HXPzAOv22PuGmindbxbmrJu4q+a1GNBvYqGG3GnhdFn43mt3j9pAAPWkvvdM+9qc8deFfuQGuAkMGoAqjFdqbqh1BEsIpYCl67RTmKuAnXqcR0IrdrOO1GYGuwAiqWrWQAoEJB2zTPwtO/czPeUiyHlp4LxwJn3qSvwoQz0l6CysnGC1U/8TF/tSNZgO/CnA/87Bf2Imnluh+69HoFCDUxj2Qx7+7DICF91kArsr/8Rbxh9sLN+wCrsp9Z73o/U1v0jzgyGfo+Br96Kfz8cVjCT/Ro3qVgUZ2OHqAuGvGJ8fWuNc07J6HdR938Ao9x/eD8pCN743Ov8odI8V/TIMXPuzSsF7hqoZprG7H0IiRxhgYadjnNkKv0ITOj6wxVGHyWxs9xkRXNEn9yYfDopuARowyzv3GK/7iUB6y8a3o/GCvo06Md9nxncY0cWtaIy8mPg/ZUT3EDxGtEz1ixOj11HsXTuQDVNHr1sWKiyUAVfqKIlOV1FAp0l0RmSqLbIoiSiEhZQXWmljICs8DgvMccrFPg7aw8qmzvMpMjyLDq0j3K1eGVKtvWEoHGoqeXV/S6ki5rRXcVgNXsR5oAK24rQYEPW1oORRwFZ7dm/tV3ewvIlNeeAX9Vl6XSdhLJvXbEvqsOF6Ffw0wRlEYqhBXjTJ0zm83gQGwiEYV0awGtELg1W1Ci+IfktxHVs5jK+uJlf3Uxn5OsV/aWB9TrI8dwFUcIKrPPNhsACzwCzv7uZWQbNiNZwBRdGrjnvjtQFEhjVnS9buAq0Q/3Sb9aEfBj7cUvL/xDft9wHEew2NonIf3ZB3QD3FQdIHU5CON7HD0AHHfC4O9j6VJrgl3MLz3uKNX6ZmuM1Qb5ege6K6HcuNqnDHGuJpBvcpVTdbtGBox0hgDI9H9jnNHr9CEzo+sMdRu8lsbPcZEVzRJ/cmHiypacVjZuPc7THRLukosRzejL2AohxTf3eSXPfKOJ25Na1i7r3FhSKjSqA4ZMXrN9IMzR7LOHRJXnS1UXpKqL0s1aB6wxFJTZKqWGCrF5iopKZOQNWiVlV0hptAWVrF5QKCrHKpG5FXn+9TZbkWGoybLJc/2qTL9quVe2ZKQOrfZndXhm3PXlHxLg7awuqdh39dwm6PoA2jF77QIeqxgQCvAKTC9IQKa5uN3mxP7rAm9ZAytUMiqXY+4ijae3WOPMoYqGAK4itOi5bbqWE1q4r4cmAz64fVb+I+sMbRiPbNxEFRFuSrKUrSBsXifuLkvHZwXNkK8fhfmKuAnbMgDV2HAKqTfEIS04CdbEVet3wlcJf5g8xs2D4ifrOM9NuNPjvPwHuc5HhPdRdx3wgRVsUZ2OHqAuC4nG30cxXoY0T7u8JV6pvuBOnRlXJfOQteD/6XrjSU8AK1YteGf0BiXMEbRCE3e7Rga0e04o8R97qP0Ck0GP6xhGqrwqrcWX2OiK5qk/uTD0cLVkIYP80rNB++Yrozr0lnoavC/dL3h3Y3uOu6yx7zjiVvTGt7u1S8MCRWN6pARo9dM7104ifcFxeurxOqyYmMVcFWxuaYQ0MpSHeMqqUMJaAVQJcZ7rw9OBRZ4VMBVOW7Faqoq2yUvCGhzgpplrup5rqrl14yLbhqnXlWl3FAn3dcLHug4D7QoZHUf7Q6KF7ADVCX225MfOhP7bWBhLynosQBRpT5ygJP6bXBK2GuL7UqFV7uz29G+7WMauhW0mRI6LPxWI6cJRtHw2vRo6RXNVfwBUvDYxnts4z6xsZ/agKt4nzrAnE8BpBBLYQNXIaj62AVcheJVhTQ/AUVhI6ga5CrkjXtKtqBdrMQfbpd8tAPPAxa8v1H0/qb3Nu2IftLfTX0troo+iEc+qpHop2/sDK43+uE9+kk/rCT+YPyh4hTfN9LI4+Fd4mv82k99utNSR9cEY71Sz6hStJthN3ysC58Z/05H39ZgWaxwrCqTXdUrdDuGRrYac5SJh568yVg14ssm7h80+t7oJuN+yhPXn3Q4UKyHUQON7nssoWav9OcR390rXHb8lQw2GGxBVxh5ZSML8fC/y98tI0avqX5UdjqH/h0bieJikbZcqikHrio2VxeZqmNchXddF9noqUB63TpwldSlEjuVeOl6gV+T51VlOmqynDJRUJcX1K5yyxa6axbXaWfXqVJqZak3NamNRuAqFK9qRNzDbzehVVZNWvT6Xr89oY8CnEKrqTqNaBKQRqsEYKxuc9KAAwW00ObpaM9PIKoJuAp1+wCFxACqUGCsWStoMyR0maFDfpeJfs3QJnxCgWNoxX2Jdv6kJwGjXBWNV710gtloCysLIaX3qcK7KkQXV8VxFY5XYa5CP2Kzcbf4p9vy39vwxnHV4EN3xON0sDD2LB730R+tOVgRH8b6og9jR7jhhM/tkVWGjUVrWJfR0eO7HHEFYwr3Siuu67Hua+KeUQk9xTlUGG0Hir/okYpewFCV0c1G3zlokqt6hW7HEG4V1+eoUaL9TtDJpE0GryRWY5wKcZcRLYqW4PrxV0Cfjq8/TJPUn2y4YdVH9oWPxx16UKiHV/nziO/+1S47dh5XjyuJVhgacbDGyC5/p79bRoxeU71z7ljWuUPFikvv2TU/tKsLteVrTDWl5mi8Cr0PaK4utMqKKEU+WQ0GtEIL2J1KsMihwEvXRV612KfJcaA8AFaeT73aq1gRUC+r082pVU2plU+5pU2+r+feVbPuqaf2Oed/HJn7IiToMOO9rACbAJWAqPB6KV6nETAIoCq51wp0hRa205t8Rhe5d5jYrQYw0awbYTZtwCleiwG4SthuTuqygPntBqJRCYjG7yOFA1bBYxuY+8iKd1tA2PScZD2nOC8drI+d2MRLB4KqFw60LTtUEK/fhblKsn4XpMBSCK1orkKwtX5XEb0vaMFPtuJ4FXAVQNUbtr4KK/ZsHqH4743xH/1jtB56Mg/7TgDhp/dET+6h5zvdbPhYSCO6HKofp/grH1ODFz2s4oixXqHnsboZbDbRTY75qUU12NfoO6c18VVN3u1YGupzsNaYo0x8R5M0oU+P3IdseJ+vcmuj6o97X5PWn3i4EZVH9DbUdtzxQYP/N+LrDLaMv7D4zr/2ZX+t/auietULA+Hiie6SEaPXQMBVmWcPSmvOfc8sW2eWidVlb1mV66yKElJebJEBVxUY0SqrQqtcYpWJbMjAVeiVQLs8z1aTQ1ZlWatQyMqjynXKM21VGfbqTCfayyo9qFlRp19Qp5lWr0y9oU64qeLeUvLuazFXzXsZTuiwEI0axFVdJNGqTxqgEvttSf22lIf25AEKZfpskOG2o7k/Nv0bNZirWC16oChIR5hDm/VAM6XfueCTWkC3lB4rp0lDPFASjSrANfRzgb1mXr+F00//UOCAmXhoZj0jWS+s6IcCP3Fx0XZW0ZAV92MUsorGq4CrSuhF67GQFUIrHKyi968CroIUc1XRxt2SD7dLf7Kt8Cfb3jyuojXiaTzyQfoKj36s4Q3pE/FF0Sf6iId3vAaf+bjSOGMNG2WoBdKrfQXgNsPrjh5r0p6jFcZoM8EdRjW6c/wxRluOvppBTXxVk3Q7pobaxNWK+5/6KreDNEGTwf9tcZc3Rp8T3Bo+Fd9msMvo4Qi9Sv1xhxvdeETroZZj3EVM0VrxVcYoGjba6JEnvGyoOLpFtM2ghp+iNcZVjFGEhHsa91NmxOj10PsXT+UM7rMgVlwsUF5cZ5EDV62xKddSqmJSJjZUikyVaDbQJgfj3Rai66soWa61OoeqybbX4J+1gXyGtXI1VZXuli33KpbX6hY16GY2qIGrBNcV/DvqlHZS0GJMbLcAVPFaDIBBgE2AVpAKeiz4HUDgqsQ+K7fDwGtDsauhHUTp/a4gg6NTeOIPG69VxwaumvHQs/Tzq/NfhIXtRuKuHKBK0GFEbwuiH7QxsHuMrF4jAQauekxyXqCl6wBV/E/dvM+9GK1GcpVk/a612w8BWuGoFeYqFKOiM2geEJCL5irp+p0lm/cWrt9Z9OGOop9ue6PWrTNi9MfRaDpgxIgRo2+J3rtwIvfiUfw+oERVBlxVYqgqNdcAV73lUK+hlFJ6NhC4SkzWIFNyqQMtrkLrq+il6wUuZRZVnUXJ8lxorRVA1SpbJXDVIkfVkpAauGr2NfQrgcIbyqT7+ln9bkGjnrijJG4ruM16YbuZ24roitNmZLVqgaWAq6Y9dqUN2BO6zAkdpuReq6BrcO6v3Yiq0cGqCbgKiC2hzcxvNnAbdbwWnaDNwG/Vs5s13FYdRitWN/2DNn0m9iN6q4WnNhbA00s761P0PiDx0kG8sKNfBnzpYD23o3cGHwJX/XRbyca9Ret3Q7p2y4HSTfsKP9pVsmHP29sPQ6Z4/W5w4Yc7JT/ZJvrRFjHtkvVv3O8DMmL0xxHDVYwYMfrW6v2Lp0TlJ0VVZ/KrzkjVl79HqYqNVWus8nV2dalVUWSTf99v/EHQXEwpCilFsUNV6FSJbLIcU0WuuRLya4PGAo8mz6Mp8BlW22pWmCuy3apsnyojqF7sqV4aUS25ZgCuSm5QJVxXT2kiZ/d6EpoM7PsaXhNaBcV6oOE0oWXs9I5WRn47SpO6LKm9NnBKF5ncaYFTQE68NiOa+2vSRif7BjN4TRUYSrChEHpGwbAmtEweL2OH5mCAMxTu6jKwe0n2AMl+RLEeQmolntC/D/gZ4irOp27iCxcylDy1cnpNrE49AZxUvGHPms37AaowYCHG2rAHAAvKIQOFNFrtALSS0i786fY37PcBGTH6I4nhKkaMGH1r9e75E3mXjhVUnIrtCyrSlEkNFSWkfC2lWuvS/DBofidMQgagCox3W4C02K15K2j6fp21JEhm2pVir0EcMAFaZXpU2QH1YnvF8oBiWZ1m6XXj3Bv6qYBW1zXJt/WpTRZho57/QJfQZk7utArbzQkdlsROkt4ZwSRsN4ITO+GUBZzSYU7qQBUEHWagIhzZioGUsNPCp3krGvGiYQtzFZQAVwFOcR5oAa0AsNAhQFUL+nlmosPI6rEQA1Zs4SOK99ROfOwgPkN7K/A/9RBfuImfeTBX8XrN7C4DIfnxVgCpdVsPvrXtEGQkP92BcQoyQFSl4E374LDoo11FH+3EBrR6I9etM2L0jYvhKkaMGH1r9cOz6H3AvPKh3weU6q+ItOWFxipAqyKbfI1Tvc6tLbGrxGRNvqkyy1CebbxSYK0pdKpKPNoSny6XUi3Tlb9d79zRd/+Hd3wFAX1+SLfCIwOuWhpRLb6qB66afkMPXCW4puLeULFuKYibcu49Db85Gq8C6GE3aoWdJnCUrloN4IQ2Y2K76f/P3l+HN5Lleb5wmJlkkC2TJIuZwTI7zWzLzMwMIjOkIW0nMzNVZTFXd3VXd8/iffbufXdmh3d2emZ2sN/pnbvv7v3jzn1/oXC6nE6qdnfNdVb/Ps/3iToKnThxpErrfJ4TRyH/T7bAuqAOtYVDiMcL1DVE5x2qlncDjcBTsIVnoXGPJ0+96i1yD/gWeQHR6VXEJ+vEF8dAqly+2PT/wXG/r064/YT8AqDPT075/g75Q4Fu//4s5VXun6+7frpK6AqrQaeo+SowKh34U0k9WBTlVdR8FWydFwSdalVUAyoGXoXXAREEQRDktwfwKtFgq2yiR+UY0syPg1clb85qViygVtpVm2rNql63G4/PJVKTVVszimN2+YZNtTWtPTGnP7WgO72gPL4g2phOvXq88QfvVHx8R3lumXfCzjs9zTxli70wHX11IeLmYvDNRd+b8x43Zl1uzng+XnJ7uOD51jKEeDhPGtUH6xCP91e8PlwFryJXRL2z7PXuCmVX4FWgU6BN1C2piAezEHhI7QSRouSMNCenWlEP93vV22QFl3dXXD9YJT5ac/l0A4zK5Qdbrl9u+Xx13OuH28TX28RPj3t+fcL7p9QCdvKXAd2+2vT6bN3jk1VCW1BlLGnQF9XBNqm82VTWBGVdQQ1sDcX1BtgW1ekLQadq9YU1uoJqXX6VNq9Sk1ORh/NVCIIgCPJbQ/Zwj3igded+63NjmsWJlK059TI5ZaVfd+g3HIZjM0mnFlPPrhhPLpDrq7ZnNZvT1I2swK40x2dlGzPG8+uCZYtw1aY7f1S8Pc3dtAjOzMSftMadc0RfmQ+/Nh94dc7n2qznzTn3O/M+j5c9Hi16PzkKcXm0ANLj9T641Jrr2wvkPTydXrUrVVDw/2gTDAn0iFqKTtyfJde8v73s/d4atYdcn/5kxevdVQjsgZqwx+vtFYiH0+HcH5FqBbJFXi58f9X143XXTzaIz8n5KuIHW06j2ib+lTPO21a5/WvyaqDHj7e9vjjm/8Gq/3tHCUNxLRiV1ilSyRUtECho86sp2QKdAseCh2BUWqdRqXMqQKpU2WU55fh9QARBEAT5bSFnpBe8SjLeBV6lmhmRzwwnrjvAq7RHrYmbs8bNGf3GtH5rRrPhAJ3Sbs2AV6mPOWTrVumahZq4Sr24NfCvv8i7fZ45PSw4OiU7Pqu6sKS5tsY5M826OBtzdWHXq7xvzXvdX3K9M+N6f873nVX/9zc8n96B3Xn9jvQq7w9WPd8DSVrx/WDN78N1UCvfDzaomSeoBlvi4TwE9oBXgUhBgdpPVaAMDMogVdA4SBXlVVAmHe7Jsut75P0aXD5eJy8FfrZBfHmM/Orf72wT/+Y48a+PE86fCPT4V6e9/tUZzx9te3++4Qdi984ykVha7/SnnfkqSGJpo6GoTldYayiGp57xKk2uWZlVBlunV/123W8dQRAEQX6bIeerBtuUk72GuXHd/ITcMaRfsagXJ8GrDBvT2jWbZtWmXLWIF8aMJ+YTTy4kOhewU7/BTK1eb/zk8bG//IO+rz9OPn9Mf3pZd2Y58eq68vKK4MJ8wsW56EtzEVfnaNcW/G8u+N5Z9Lq76HF3zuvhYsgHm6GfngC1AjcCQwIfAp0iF1eB97y14PFkCaQq6ONj/h+seb6z7P72ouvjeZdHc8TDWdhCBdgDdeAp2MJD2A+hDnR/PO/x1oLXW4sej+bdHsxCoOD59iIcCOpG/Vag68er5K0WPlsjvlgnfrRNfH2c+JnzVgu/c9L9d055/OyU589Oef1w2/3TdY93l9yeLJDzVdqCGlNZE2VUkOSKlsSSBlVuJZgWKVjPeZVz1qoc56sQBEEQ5LeHrKFu8CqtbSj1qD3pqE01O6pZnFDOj6uWJtUrFtXKlG7dod+aUa5anb8SOK3ZJG9ktfubNpDsa6fKHl6VHbXzZsfU23OaU4umK+vkLdfPzTHPTUeddYRfmgm7sRRydyXw7rL37QXXmw632zN+j1cC3lnzeLTo/mjR621yzon6DqDXuyuUOYFXBX+yGfDhOngSPHQDqbrngMCzoE2gWaBK4FU+765QLgV7vN9ZhvrwLMTz8QLolOv9GYjXw3nQLKgDNkYu3vp4ze2TNddP11w/W3f5wvnFwB9uET/aJL7edvnJcbefnHD/yQnPr0+AV0E14r0F4p058vuAusJadV4VNUFFbZPKmshtebO+qBakilxfVVijzjWDV0EBvArnqxAEQRDkt4rs4R7ZSIdioldlGzQuTekXJ9UL4+BVmqUp4/q0bt2uWJoEuzJuzpJSdcyh2rAr1qwQ5bpNuzWjPz6nPTavOOqQLFp024uJp5YNZ1aM51f4zluDJlyYZV5aYFyZD7ky53911u/GvN/dJZ+78263piFe9xe8Hi663JuFeDxeImXo7UXYgkLBFoTJ950VnyfL7g/niLt2l3vTsB/KUAckibg/DeZElUmRejRPPQsBkXJ7MBv03prb3WlI4Lur7nenXe84yLkrkLNHs76fbPh+seXy0VH3zzfcPt9w/XKL+HjV8+tT5DcEf7Tt/W8vEJ87p7I+WfX8cpOc2Xp34Zt164mljSBSUIaYShtBsKCgA4vKr96dr4IteJW+oFqTU5GL91v/XgPvD4IgCILskjXULR3ukI/3yC192tlx5cxI4lG7fsVqOGpP3pw3bc1qV+26Nbtpa169btdsONQbDhXI1qpVuWbTHHP+HvOKw7i9pN9c0KzPqtanE8+sZN06Yby8Kjg5zT83m3BpIebKfPil+eDLs4HX5gNuLvjemPW+TcYDcmfW8/6814MF9wfzXuBJoFaP5t0fkWW/d1b83z3q+2TZ4+G8C4jRvRkouN2fdX8wCwXijgPqUIFDYA+1H8oQrwfzvm8teT2c93447//2steDOYjP40VwNdfH827vLrl9sOLy/rLn58dcPln1/epU0O9ccPl0w/93zhM/3CQ+XiZ+sOH+wy3vH277fHWc9Kp35gl9UY2xsE6fX5NU0phS1mwqbiBTVK/Lq4adxsJaQ36NLrdKn1eVWFhrAv0qrE0sqNHnmPPwOuCbD/WngiAIgiCvJWe4VznarZrqV1kHdXMTqplR06rdcBS8ymbamDEdm9GTXmUzbExrNuzaYw7d5jRsVes2iAYebs2AUWk35pJPrZofXqt4dCXt0jHj2SXJtl3s/PVl7qXFuCsLkVcWaFfmgq7OBdyY97sxE3R30f/ugufNaa9bM34Pl/weLYNdgQOBJMHW4+Gcz6MF8KGAJyt+by15v7UM1uXxEPxp0fXerNv9OShDwevxEhV4CBV263jcm/O6N+/7cCnyk5OMT08FPF7xujvvcsMR9O566CfHfZ4474D19qLrB6s+Pzjh9slGwI/P+H11yuWjNf+fnCUnq75Yd//6lNsPtv1+fNLnB9uuH6wQ7ywQprIG8CqwqMSi+uTSJtiSglXaRMlWYlEd+azTq5KK65NLGowFNYa8Kl1ORS561ZsJ9efxCuBtQRAEQZB9ZPZ3SvpbpaOdssle9fSIwjGkX57SLpHRH7UZ1uzgVdpVq+aoVb81A1IFgYLh+BwEpArUynRiRbM+2/Lx43f+7//r0f/9T7Uf3hWvTiYsjUhOTovOzvIuLrIvL0ZfWYy4PE+pVeDNuaA75C8x+9yahQQ8WPJ/tOzzYNHr/iw5sXR/1uPejPeDOd/Hi/5vLYFg+TxaAmcCYQKFAp2CMpgWPNwN7AHZonzL++EiSBXZ2r35uB+cZ/7wgs/9Bc87s8Q1W9CTtZCPtrzfXnF7e8nl7UWXd5Z9Ptvy+vgY40cXaB9ucX56zfu9taDfueDzr857fHWC+GjN64tN90/XiQ+WXd9fJowldSllzTs65ZyvArtKr2iFsqGgNsk5faUn566qwasghvxqXY5Zm12OXvVmQTnTC6H+YPYB7wyCIAiC7AJeJepvkY12KS39+vkJrTO6RfAqi3bZClJlWJvWrzs0R23JJxaMm7OaDYd+a9Z0ajH5zLJ+e065ZlOtzihWHI3v37/xP/72xH/7g8yr28LlcfXpefGJadGZWf75+YSL87EXFyIvz4demgu5PBdyY87/2ozf1emAm3MBt+Z8bs763J7ze7DofXfW696s150ZjzvTUPZ9OO/3AAxpzvPenNvtGdh63Z93vzMLW7/Hy76PlrwfLFCBPfAsVcHn4WLwkzX/h0su120h76zT3l5zuWLxvj3rdXfO8+6c1wNyosvzyYrHOyvEo3nX94/6vrMq/exi65//ztL/8zfZv/eR37trxHsr7h+sBXx50uPjNeLjo8T7C8T7i+T6qnRzG0gVFXApcKyU0ibQKWNhnamoHh4a8mvAq4wFNRA9OVlFehVeB3yDoPxpH5Q/UVB/M3uBtwVBEARBdska6JQOtCnGutXWQdOyxbA0pZ4d1S9N6VesmqUp7YrFuD5t2ACvsqacXDRuzqjXbbrN6aTTS06vmlWsWpRHHRD95kLmhS3d1hxvZli2ZlGfmJUedwhPTfPOzrHPz8VfXGBcmqdfmgu9MhdyZdr3ohUSeH024Mas91W75zW73515/7tzvvfmfMCubk9735nxA38CT7o7635zmrhuc7s17XFnFragR74Pl7zuzUO87y/4PFiEQIGK7/1Fv/uL3nfmXK/bve/Oe9+aJS5NuV+ze92cAdNyvT3tcnfG9/11nw/Wicfzru+uBD1ZM/+nT9/6539+55//efv/+Sf5v7vH+MmloE+PEw/nfD5eJxdXvT9PvD1DelWy86of+BOEWlaV6Lwy6LwUWK3Pq6a8SpdbCQGv0mSXa7LK0KveCCiF2gslUhSUQlFQfzYU8IYgCIIgyF4y+zpEfc2SoXYpqJVjWGEbVE6PGJYshqN2zeKUenFSf9SuX7Orly2mrTn9ukO9ZtNuOIzbc4nH5zUbDvnKlHp91nh8ybC5oNuAPTOG7XnjqQXuwoh02yE44eCcmmGemYk7N8+4MB91cT788nzwBXvAJXvgZUfQ1RlQK//rM77Xpn1uzATcmQu4N+93Z9b7psPn1jQUIOBYXnfm3G44PG7NQMHz9ixsfe7Ng2ztln3BrsCxwKKccblqdbtu979LXmf0uu7wvjHtdtUKauVyzeZ1d97r/oL/e+ugVq5Pljw/XAev0rx38dQ//+LJP//z1j//o+RnN73eXgn6aIv2xSny5wg/XCfenSce2J33W3+6vspU3EDNVyU5CyBYmhyzJttMeZUmu0KbXUF6VVaZ+kgpXgc8/FAitRdKpwDKpQBKpADqzwb4v/YAbwuCIAiCADlD3crhTtV4j2qyTzc9qrQNamZHTUftpvUZ/bJV4/Qq45pDs2zRH7XpVm3ao1b1qlWzZoMoj1oUK1OypSnVqp1cun56RX9iQbUxrT0+K12zSLfs/G0bZ9vOPOmIPzMde24m+twc/eJM0BkL7cpM2LW5kKszwVdnaLcWgm/N+16xB92ehfjdnPa+ZoP43nBAvK7bAu4vet2a8b4963t33ufOHLV1BXm6ZvOEyrdn4SF5pe/WDDwkc80OOkV7sOJ2cYo4PxFwZx6kLfDuousVi/+DJd8Hi96Pl90fL7k/Wfb++JjP2yux9zeE97ZzfvaI9Xgz8pOT3u+v+3y44fneKvF4weP9VXLR+n0HYSxp0ORWGItqUiuaIKaSOn1BlS7PrMuvdMZMlslUQPT5ZjK5laBWOWV4/6rDDuVSFJROUew1KsqlgH0i9T/3AO8MgiAI8ltO1kCHuK9ZPtSumujRO4Z1c6NJK1b90qR6blQzP568MZ15YiFp3aGYG9UtT+lWLLpVq/aoRXV0SrkyqTg6CWolX7Uoj9lVx2ZgK12dEh+dFK9NiY9ZxVs28akZ8dk53ilH/AlL7PGp+NOO2AvTYeetwectIResoVcctMv2gAtT/henAq/YQm/NB1yxBVy1B92Y8b9mD7juCLwxDQXPKzavq3bvaw4IFKiHkMBb837XZ4JuzoOWBV6fhQTdnPO76gi9uxByey7kzpz/DYfHxQmvy1M+V+zucBaofHvB+8a09915zwdLxINFt/fWiCcrHo8WfR8vB76zFvjBMZ9PNr0/3fSCfHyMeHfR9Z1FtyeLnm8vEuq8KvAqUChQK5CqxOJaKBgLq2ELOw2FVbAzqaTORE5rVWlzK9RZJbocM3hVLnrV4YbSKQpKpwDKqIBdqdqrU/ss6n88Bd4WBEEQ5Lcccn1Vf4tiqEM90aO1Dmimh4yLk4alSd38uHZ+3LhiMa05YKucHTEetaoXxhVzI+qlCf2G3bg5rVqdEs4PS5cnZKtT8nWrbM0iAalamQCvkm7apMcdohMOwQk777gtYdvC2p6K256MOj4Rcc4acs4SdsEWfskRdtEOjkXmki38+mzARQsk8Ird78KUz4VJ2HqdG3c/P+kBhUtWiOdFCwQKvpdsAddmfC5a/cHMrk7D1v+KI+DatM9FS/idBdrNWfq9pei31sLuLQbccPjD/stgbNMgXr7Xpv3uzHvfX3J5sOD27ip4FfHuEvH+CvHhqtsnG+6fHoOt60frbh+uEW/NEg+niQfkXUYJ2ZEyQ2E1OUdFWlQ1eFVSaT2IFBSSyxpAp2An6JQ2t1yTU6bNKdfmlGmyS9VZxbnl1TsD+JsJZRuUYXz/vIrSKQrKqIB9RkVJ1a5R7XUp6k/on54C7wmCIAjyW05Wf6esv0U+1K4Y71ZM9SosfZrZEe38GEiVZm5MMz+mW5zULU5o5sdVc6PgVVpQrqMWzapFfXRKeXRStjwuX5mUr04p1iywlR2dlMLODati2yEDr9q08o5NcTanuCdsCSes4FX0zVH66Sna2anws5ZwUKsLtpCzUxDaBWvYJbv/2YnA81MhV+xBl6yBl220qw7Yep6d8Do36X0eTMtCxdepU0HXZsjCRVvQlWkI7fpsyPVZv4vW8BuzAZdtYbfmY9/eiHywEnjN4X8Z6kODjuAb5IQWufTqwaLL/Tn3J8vE2wvEeyvEB0ddP1pzB6/6ZMPt43WXD1dd318l3l0kHs0S96dd788QqtxK8CdjUQ2oFWyhnFLeCF4FOgUF8CpdnlmdU6bOLiW9KrdCn1ehOlIMQa86zFBGRfFCqdqdptqdo3reqKg/JOCXCIIgyG89mX1t4t5GyUCLfLRTMdkjB7WyD6hmhjUzI2oI6VjjhqVJw9KUcmYYBMt41Ko/alEujcsXRhXL4xrQKcqrjpJSJVkeh4BaSdct8i27aGOKszbOPTbJ37ZSs1Zxx6cijo+HnZyIOD1FP2MJPzMVdnqSdmYy9OxUxEV7CBQuWOlXpkMv2yER12bCrk37nbeALflfskGoQuAlezCI1LWZgIs2KNCvz0Oibi5GXJ8PvDgVctHqe3YczCz0xmzgFZvvhUn/C5MBlyyBF20h12bJaa3b8773FtzuzXm8vUzebeG9FZcPVkGnQKo8Pj0GW3Astw9W3d9bdnmL/OVmzwdzRGJpfVJpPeVVicW14FLkKqvi2qczWE7ZKq2HmIprdHnkdUANOFZ2SV4FXgc8vFBGBbxMqshJqqfTVLtGtetS1J/QPzqBdwNBEARBMrpbBJ114v5mxWin2tKvtg2oHYMqxxBEPT2smx3Vz40bFyaMC5OmVRt4lWp2RDk3ol6e0BydUq1MyBdHVcuTipVJ5dKEdHFMPD8iWnBmcVS+YRWtTnCPjnHXJ0CtOBsTnM0pzil75OYY/cRE1KkpCP3UJCT85AQk5tJ0xFlLxAUb/aIdTCvk9ATIVsjZSfCkoKcJvAh6ZIE9YF1BF6YCz0+GX3Uwbs5HXp+lX5sJv+LwPzMefGYyCLYXLEGXLCBYfucmgi5a/GF73hpyZQacjLwaeHfe/e6s51vLLo8XiCdLLu8uu72/6vHRuufHG7B1/3DN44M1arLK/d6Mz6MFIsXc7FyfXknNV5GrqUiFIi//wR59QaUBfAv2F9eCV+nzzSBVWvKCYGke/j7gYYUyKoCSKuB5qdqdptrVqV2L+sUvfvEPTuBNAP4OQRAEQf7u79I6mwXtNeK+JuVYl8bar7EPah3DavuQyj6oAa+aGdFOQ4Zha1ye0pMXBMdUcyPK2WHF/IhyaUy1PK5enoSoliaUi+Py+VHJ/Ih4blg0P6w4OiVaHuOvjPKPjiWsjMQvDbGPjnK3LbGb47EnpuJOWmDLOD4RfWIy6sRE5PHx2LM2+olx0KzIU1OhJ8YgkWcs9HNW0q7OOXN2MvjMBASsK+ycJeTUOBRirs7G31xkXHJEnLOGnZ0KPjEWdHw4+NRo2HkL7dxUwKmx4LOTtLNTfidGaGet4Zdngi7Ygq7N+N+c9bw14/1oyRWc6dE88faCy5Ml1/ePur+/SsXz/VXi4azLvWnP+7P+DxbI+61TUgUiRbkUbEmRKqlLrWiCArlWnbwCWE59GVCXSy2xKsktx/mqQwolVcCuVO2+zF2poqapwKioeSl4yZRIwV/O3/7t3/7N3/zNX//1X8M78FdO/hJBEAT5rSeto0nQVi3ublSMdCjHu5WTPWprv9IZsCstCJZ1QAVlGzmJpZ8fMy5OauZHZbZ+sa1POTeiX5mCrXJ+lMzCGES+MCpzqpV0YUQ4OyRYGBYsj/KXRpjzA+zFIe7qGHNjlLU1wd6ejD82FntsFBKzOco4NhJ1bCR8dSDi2DBje4y+NRJ9coJ9wZFwZZa2PRLiTPDWTmjHR8NOjsM24swU6+o8+9oC/cxUqHMn2Bhtazj42CDtxGj4mcmg46MBx0eCToz6Hx8OP2uJuGQPOmsJvuwIvDbjfd3h93DJ/eEC8XCOvBr49qLrOyse7x2FeL571Oudo+RPOD+Y874/53d3jlDlVuysVXdeDdTmmcnbLhRWJ5c1gFclO3eCXUGo7wMqM4s12aXKzKLs0qqdYfzNhNKO771XvUyqqGkqMCrQKcqlQKQohfqLv/iLn//853/+538OL//PnPwXBEEQ5LeelLZ6fkuVuLNe2t8sHWwTDzp/K3C8SznZq7YOaCz9ivEe5USPxjKgsQ+q7QNKGxmVY1A5MwRRTA+KpnogEmufzD4gcwxCpPYBkb1fbB/g23p5jn7xwoh4eYw3P8idG+AtjzCXB9lrownrY8zV4bijg/GrQ7FHBxlL/dGrg/TF3sijA4y1QfrRgeiNkYRTVt45B211gLZGJsQZKIQfG6ZvjYauD0YdH+dcmGGfc4SvDwUv94atD9E3R0DLQtb6QjcG6eBem8MBa/0hm8NhJ8Yjz1iizttop6dCLtgDrjh8rjn87y96P1x0ezDv+tai+9tLHk+WPUGnnFLl++So533yd3V8bs/435oh1JRIFdWAV1E3WYACuZqqpE6dU67LN1PTV5RXkVNWeaBWRZrsEvSqQ8uuVO2+wH1eRc1UgVTBy/ybv/kbcCkQKXix8Gfzp3/6p3/yJ3/yx3/8x3/0R3/0h3/4h3/g5PcRBEGQ33pSWupErdWijlpxV72ot1Hc3yLsb5aNdChHuzQTvarxbtFAi2SwVWvph8gnukUj7fLJHo1jUG7plUx1q6eHFCBbjkHxZLdgtEMCgmXpFU508alMdXEnuxImOznWbt50P2e6L87axZrtTVgcYC/0x053RU93xc/3xS/2xy30xS72xS32xyz2MeZ7Ypb72Ruj8avDUYu9ofNdESv9VKJWB8OX+4LnOkPmuyJXByJBxVb6w5Z6YSc8jFobijjaH7bYHbs5Cgld6aUd7QsDFVsdCFkdCNscIZdznbWGXbCGXLaH3JoNurfoc2fO5/Gyz7urPu+sery15PVkxf+9dZ+3V1xvzwQ8Xgp+tEy7t0i7NUdonHeuor4GCC4FFgUPjYXVTxddOW++sDNlVb17HVCXU4ZedTihpAqgXt3uC9w3WfXLX/7yH/7hH0CqWv/TQwwGg8FgMJDI9WHGxmj46mDk8QnGGWvEOQvtojX4Gnk7K5/bs0HvrPm+teL5cMHr0ZLPW8tej5y/NnhvPvD+QvDdeZCq0Gsz5Poq6jogqBU1X7XrVWBU4FV6KJBL2quNhVXU9wH1eWX63NLs0sqdkfzNZNc8vt9e9bxUUZNV8Br/9m//9i//8i/hn5Hw3x/HYDAYDOa3PDAgRi33M1aHIo4ORG+Nx52yRp21hp6bCr5kDbxi978xHfpkw/8h+fs2QW+vhjxZh4Lv3fmAe4sBt2aDbsyEXHGEXXYQSeWNu+vWwahArXZusO6cu9Llm503Ba1wCpZZk12myCzS5pRqc4qzS807I/mbyT7z+J55Fby0572KkirqNf7iF7/4m7/5mz//8z9Hr8JgMBgMBgIDYsRMJ32+m7EyGLc5wTxljTltDT8zFXxuKuiyNeCGI/DOvN/d+cCHy2HvbES8cyz40YrfnXn/myBV08FXHKGX7PRLDiKxbOdWVbDd51VQBp0CqdI4vwyoy6ugvEqdVaTJRq86pOx6Fby0va9u72QVtbIKXuCf/dmfoVdhMBgMBgOBATFypjNmsS9mZZC5McY+aWWetkWS93yfDL5oDbo+7XHR4ntzJvDuQuD9xeD7y7T7y4G35vwu28NvzoVfmwWpij7vIHRF5P3WQaGo+SoIefnPqVnkSnZ46PwZZmq+irznQlYJeJU2pzinDK8DHkb2etXLJqvgBf7d3/3dX/7lX/7pn/4pehUGg8FgMBAYEGPnetgrQ0zI+ih7e4p5yso4bQk7PRlybir4qsP3si3g5mwAuNS1af8bM6H3liPuLtNuzjNuL0Zfn4+5PBt/fprQF1ellDeCTu3OV0Fh16tMzhVXoFbkNwGdU1bOdeulupwSXF91OHmhV+29t8Ivf/lL6iLgX/zFX/zJn/wJehUGg8FgMBAYEGPsnayFfubSIPPoMOvYRPwJS/RpS/hp8n6hIVfswTdmg2/NB92aD7w5F3RrLvTOUuS9lej7q9E3F2Kvz8dfnmOdnyFM5XVgTtRtqwyF1dTlv0Tn3RagTHkVaBYYlTa3HLZ6MmXgVVkleB3wMPK8V1EXAakrgPDqqG8C/vVf//XPf/7zP/7jP0avwmAwGAwGAgNi1ERL/HQ3c3Egfmkwfn2EuT0Rd2Iq8uRE+KnJsAu28GszwVftIdenI+4sRN5dDL8+G3ljjnlnJebaHPPKbMLleS54VVJpdVIpyFOVvsAMgYKppCappAa2uvwKU3G1obBScaRQkVmozy83Fpo12SUqeJieh7+7fDihXtfuS9t7EZDyqt3FVfDq/vAP/xC9CoPBYDAYCAyITEsby9EVP9sdv9THWh1ibozEb43HHx+PP2WJPWuLvTITe30u5tosGSiDS12b591YYp53sM5auWenRRdmiMTiSlCoXa8Ci4KysbASCpRXJRZXq3NK1NnF4FX6/AplZqE2pxTUCn93+XCy16uoi4B7X9ovf/lLanHVX/3VX/3Zn/3ZH/zBH7zCqwre3658cOzbpOC9LeG/3d53OAaDwWAwb1BgQIyfamU5OlmzPeyl/oS14YSNkYTNMdb2eMKpqYSz1rgLtvjLDubVaTKXHKxLDu7lGcGVOc45G+eMlX/aJj43TXpVUmktyBOpU86AUYE/afPKoZxcWgvWpckt1eSUGAoqIJrsEsqrcL7qEAIvat/r2ru4ivKqX/ziF9Sdq/7Lf/kvv//7v/8Kr3r0zvv//n//3X//v/+n5/K7/9t/JPP+Z1+//+mPIfcePeH9YGXf4RgMBoPBvEEhvWqyhQ1eNdOdAF61OsTZGE3YHGVtjbFPTLBOT8Wfs8ZftDMvO9iXp9mXphMuOTgXp3kXp4UXZwRn7cIzDtKrksvIS357Q6pVgVmXXwG+lVJWB8pFeVViUWVSSbWx0KzLLVVmFuSW4/3WDx0v8yrqIiBI1T/+4z9SXvUXf/EXf/qnf/qf//N/foVXff6jr/8XHP6/XhOo88UPf8z9dGHf4RgMBoP5noV4Jfsqf6eB07Fuj+3bCYGdB+4JDIisiZYERycbvGqhj3N0iJyyWh9hHRthbo0xT4zHn5liXrBxLk1zr8zyIJdnuBemeRcc4gszorMO4Wm75IyDSK2oA5ECeQKjApGCLTl3VVipLzBDIdk5laXPr9DllVHzVSBVhvxydVYRzlcdQp73Knhd+7yK+vman//853/yJ3/ye7/3e6/wqh9+/ZPf/8Ofr1394fr1H2zc/PLYnS+27n/+e7/3p7/4h7//8//6XyH/8A9/f+m9fwd5oVcJ/n1XMPzrLu/at589ziQIJv2dZ3b+RuI84/6WBe+U+b7udN+mDpUXnuLXz2+22d3Wvv3r2pcDH4jBYL7feYWy/At7FfiTh5f3PrV64c5vH9KrxptJr5ruSpjv4y4PcleH2evDrI0R1uYoc3uMfcbCOm/jXpoWXpkTQS7PCs5PC87anVJlEx23Sk/ayHXr1LIq8CfSqJzXAQ3OPbr8ikTnMnbYGgrNoFaqI0WS1Bx9XpkysyCnDOerDh2v9Sp4aXu96nd/93df4VVf/fgnf/BHf9Wz/X7vqfcGLjwZuvrW6K1H//E//tEv/v5v93rV1U/+zcu9iukre2Z4du4EvpMx+xuf+I1qyt58Ry3/Zps9WGvf3ZuGwWC+Nzk8XgXZZ1G/plRBYEBkjjQmWDs4092c+T7+yhB/bZS3Mco5NpawOZawPc49Y+Wcs/EvTIsuz0mvzksuz4nPzwjP2CXnpiWn7bKTdsUpB2EorKC+Bkh5FSlVTq+CPdq8ctApKDinr8gpK3VWsTwjX5NTIk/LxfutH0Je6FW7r+sf//EfqZdG3WThtV71+ZdfgVfN3Pqs78Jbjadv1J69WHvxjNOr/g7emf/6X/8MvOrW1z+5/+9++AqvCi5n+o47vtl50kiUG7+j8XvXDL47RfiOWv7NNnuw1r67Nw2DwXxvcqi8CrLrUr++VEHI+arhBo6lnWPr5M31CZaHBKsjoFbcjVEuqNXWOP+0lX/GJjxrF1+YkV+ak1+ck56fAaOSn5lWnHYoT01rTs8QuoJS6iuB1EVAar4KRIq8/Ed+QxB0qlybWwZSRd1nwVBQoc0pVaTn4X1BDyHfhVdVHLuat3a66PiJ0rObFZfWqPkqkCpqvurt/88n7/3n91/hVfR3YGuM3dnjoJPTV9R+KBPBJ59WBt+SlbH3HXuyzBf+UgmymvPqIQllaXslYLe854xPKe/afTa2fOd0zxz7Tpnvnjo7hXEjdfSuETqvi1F7yp451rkToFp+xSmerf/0DXlRs7uB1nagDqfafPqePPM+vHDns37pfPOdlfb0doedd+Ape94Q8sDnXubOs8+9SxgM5nsf+JPft2c3r3jqOw1lVL++VEFgQGSPNPIsHRxrB3emR7A4KFwZ5q+OcNdGeBtj3I0x4UkrRHzKLj07rbgwK78wKzs7LTlpk56wSrct8i2r+oSDMJVWGovMoFYQfUE5lFPKa1PIxexVUNbkFkPBBE/ll2pyilVHCpJKKtVZBZrsQly3fgj5Lryq4Nip4pPbZeePma+s1txapOardq8D/u5/+13IK71qj23ACE3K085+59zVzuqr3TpUdoZ5p2mR1XaNgSyTUvLMwL/b4HOFZ559ejoo+Mp2ZtFA16Dw7IFPPeaZc+10b3dx2N6dTvP4tqfYeXZnz/5mobwvuwdS9Xfek90zvnTnvgIpVVR/9uX5ys/tfO5lOnfue5eo1jAYzHcU+Jt7Bfsqf3d5xbn+JbuxN79Zr+KMNvOm2tkTrfyZHt5sb5ytgznTLTw2LgeXOmkTbk9BJKfsygtzmksLijPTlFHJjltlm1OyjSnllpVINdeCP4E8gVcZCitgC16VWl5L6lRJlb6gLLmsJslZ0OaWqLMKTcVm9KpDy3fhVSVntiourlddW6m9vdD4YBq86h/2rK/6v/7X/4S82que6tSOPD07Zj8VF2eF5499WfnVO1/87DfdcE7wkGVq/uzbHrh/5x6f2HlprzgFWX8P5V0vbJZqjYpTWSicLTxbZ9+b+cKdL+stlVe0/7IDnz/p3jIGg/neBz4v9u3ZzSue+u5CSRVsdwv7KvxKIb1qqJE33sq3dIhm+0XzA4KFAeHKiHzbojxuA3+SbpGRnbA5r/rZpcdJo9KcmladsINRKY5ZVNs2wlhMutSuV1GOZXKWoaDLL4WtsbBCl1eizi5SZOYZQLByinU5xXkV+H3AQ8d34VXmy6vVN5fq7841P7K3PZkCr/r7v3vqVX//9//n//lP0OhrvIpyix3PeGYkpuZyqO0Lj31Z+dU7X/IspTiUw0HZGPvUbF5z4IsE6CXC8fJTPFufbOpFzT7zrLP+0zafqUPNPz2nOPt3vqy336L9Fx+IXoXB/JbnUHnVPpf69dUKBkTBaItwol023See6RNM9wrm+iVHR2XHJhWbU9LNKdnmlHzbqgSLOmWHguzYFPiW/vQs6JRy0wJepd60ktcBU8prnXexItUKAmplKCjX5pFGRXkV+TC3WJNTrDySr88v1eeVGvJLCyrxfuuHjt+wV/3gR//Hf/qTjXceHXvvwdYHd49/dPvkJzf/7b/9P3a96u//7u/++y/JGze82qvIsnNqhJKnZ/aTbmEMdo7r1FFUXjZy75Z3HYLcSTZO7dx99sWHkwK35/JccDl5Pe7ZZl9woLOwc67dC3Z7d+6Vj1ee4pkrcS9s9ptn4UV9I2TfnHGntW+s6GU7dw+hCuTb9czZX9z+Th+ebWH/y3xhTapZDAbz/c7h8aoXWtSvqVYwILL769lDjRJ7r8jeA2qlOjqu2bKCM0nWx8VrY5KNCcWWVXPSoTk9DVvVcZv6uF1zwqE94VBv2zSbth2vSq2oIy/2lVbDliqYnHYFZWNRBWwTi8z6gjJjIdhVianYrMst0ecW55vRqw4dv1mv+vSLr6CN//7LX/z3fyTzT//9v//Tf//Hf/rl//d//v/+x//6n9AmdeOGX0Be71XkuL5jHvtG4tjynZU6e/OykfuZ8u5lrKdfMNz7LNks+dTzS7BfVH5a57Xnesm69Z09T3furbDvqad8sziJ5Pl165QJkTz1Tqo/weVgYCQ7rvPynbuH7HSGLO8A1Z5vH+q8/E2j2NvUC8oYDOZ7n50Pg5ewr/J3GjjdC/0Jdh64JzAgcgcbuMNNgskOoa1btTyaemY+88Ky8dSMdG1csDwk25gExyIV6oQdXEp3cpoyKv2pGfLhtkO7bSevA4JC6QvKqQt/zp9hJr0KypRRwdZQUK7PL00sqtDlkVvVkXx1VgFeBzyE/Ga96uTDOyBMz+cHP/rJV1//7Adffb275/T929zP9nvVtwx1aWnfTszzeaHBoNZgMBjMbyowIIrG2sRTnfyJdqG1S7EwrN+wGDZtqvVJ2dExUCvVMYvzet8UKVjHLJrjdlAr2EK+ma9KLq8GqdLmleryyxLJ3wqsJq8GOr8hSM1XwR7QKU1OkaGgTJNdpM8rUWbmgVrlVeC69UPHb9arBD/bAFvifvot8tkCVN53+LcJORfydI0R5tVBr8JgMJjvNDAgCgabhGOtwvF2ka1bOtsvmR0QTvfyZ/skyyMgVYq1CdiCPCk2piDgUtSUlcp5rVC5PqXcmCL0heQ3/qiVVeQ3ASvqSLVyrl5PM9cnlVTBTn1+mTa3mLwOmFMMXkV9HxDnqw4hv1mv+k7z9DoUOsG3DXoVBoPBfKeBAZE30ABexR1uljn6dEcntKuTiqUR6eKQbHlUtTYpXhoGr9KfmNadcGi2bZrj5NVAcqbq6XyVZstGpJTVZFY3kQrlvAIIjgVqlbq7kr3IDDuhjrGoQp1dpMsrTS6p0ueXaHMKc8rxfuuHjjfIqzAYDAaDOVQhB8ThZulkp3C8Qz49oF4YVS2MKhdGFUvjqqOT6jWr7OiYasuq3rTK1yfVWzbTuQUIueeYTbvlSDwxn3b+KAEKRX0fEAIFECxyyqqkirqXFegU2NWuV2myyauBurxifV5xnhmvAx460KswGAwGgzlYyAFxqFky0SEY75Da+uSzQ7KZQdnskHxhRLk4rliZUKxNyNcn5GsTio0pjfMiIES9TUpV8tmltHMrKWeXieTS6uTy6qSyKggUUs21kKTSSkNRuam0MrG4IrHEnFxWBQVtXrE6u0CbW6TJKQSvyjfjdcBDB3oVBoPBYDAHCwyIvKEmwXiraKpbYu8Ho5LMDErnhuWLY8qVCeXRSeX6pHRlVLIySi5a37apNi3qYxbtlk26NKbfmjZtzxq3ZghTcWV6VX1KRQ1pUSVmsCsopzhNi9xZYiZ3llZCwVBYpssv0eeXUF6F81WHEPQqDAaDwWAOFtKrBht5oy0SW69sZlA+OywlJ6tGVSuT6tUp1aoFvEq+NiFbHVduTKk3reBVmk0rRLfpMGzP6Dcc2nUbef8q8Cpyjso5ZQUulVZZl2aupQrUxJVxJ2XUVpdXbMgvzq3A310+dKBXYTAYDAZzsMCAyB1sIL3K2it19EtnBqn5KsXSuHJlQrEyoVyboERKuTqhWpvUb9sN2w71+pThmEO/YdceterWbOTvA4JCJZeTVwOhDI5FTl+VV5P3CzXXJpdVgVeR01QFJWBUicUVppKKRCgUleF9Fg4h6FUYDAaDwRws1HwVf4y8DgheRV0HlMwOyRdHFcvjcsjRMe2WTb9pUxwdB7UyHHcknpgBr5IvjqmPTulWbfp1O5FWWWcsq6RiqqhOrqxNqaozlVfpSyqgnGyugf364nJdUam+uMxQUmEoKdcXlRqLy/MqcX3VoQO9CoPBYDCYg4X0qqEm4XgbeJVsekAxPyKfH5HBdnEMvIpcX7Uyplmf0q5NKVfGVUcntBsW45Zdf8xq2ppNP7WUenzeuOEg7wsKOmUoNetAnorLoZBYXgVeBToFgpVaVQd2lehUKzAqyqu0BSWJJRX5Vfg7NocO9CoMBoPBYA4WGBD5w82iyQ7BRCd4lXJhFLxKOjcsWxiRL5HfB1QdHZcvjyqWRkGq1KuTSlCr9SlQK/Cq1BMLpmMzulUrAfKUZK5Kra5Nq6lLqaqBpNfWp1XXUjuTKioNpaBTZcbSclNZham8wlhSpi8q1eYX5+K69cPHwbxq52AEQRAE+S0GBsSEgXrRVKfE1it29EtmB+WLoyrnNwHlK6RXadYmtRsW/TEb6VLbDjJbjsRNe8bpZd1RS+KqveLmaSK9tjGx3AwWBTGWVUDIckUlFEwgVSVluqISbWGxvrjUWFoGD/XFJZr8YvAqnK86hKBXIQiCIMjBgAGRM9ggnOwQWroF1h6BvVcyNyRfGpMtjkogS6PKlTHV6oRu3WLYtCdukTFsWPXrlsRj04kbjuo75y7+tz8gkiur02rqyDkq53xVanUtlKmAVxlLy8GonFJVnlRuNpVXJJaWq3IKNHlF6FWHEPQqBEEQBDkY1HyVYLyN9CoIeNXsIEgVRLwwIl4cUSyPKo+Oa1YntesW3TGbAdRq22E6Pm3amk3enjPfOXvp7/6Y9CrwpyRzFRQgoFakZtXUwZZ8qtxsLKtILKtIqqhMrayGJFdUGorLDEWl6FWHEPQqBEEQBDkYMCCy++v5460SW6/I3ieeGZAtjCid3wSULo1Jl8eUaxOq1Qm1c3GVdsNqOjGTfnbxyIWVjDMr1PqqmoeXCH1ZuamyCpJcXZNSUwuBQpJzD8RYXmEoK4ckVpiTK6uSzJWJ5RUp5hojrls/lPwGvOqPTiQSe0g88Uc7T1BQT3d9vL/8Gj7uekFbr+WP/mj3gF/hXL82/5LnOnTsec+Rb8Vv7h379f7hfbf/bJ1/wb/6nzCCvFnAgMgdbBROdkhAqvasr1KsTMiWx2Ur4+BVynXnEqste+Lx6eRTc6lnFzPOLaWAVG3OqJenyPtX6UrLMhoa0+sb0urqqW1SVTVYVKK5kioYyivArkzw0FxpqjAby8r1xWUaXLd+KPn1vIr6YH6evR+mez+8f4UP8l/Zq/a3/d0OGs/yL3muw8Rv6+s+OL/hd+zXa+67/d+HXoX8VgADomC0RWrtFjvnq0TT/dL5YcUyub6Kug4oWxkFrzJs25NPz6WcngevMh6f1m3a9Bt2/ZrNsO5I2p4jwKUgydU11AQV6JQezKm0DHQKHCvFuT+psiq5qjqlqpryKpAqVW4hetUh5NfxKuqDc98H83M7D/jh/UZ51W8r+B7/qhyqd+y77Qx6FfJbAQyIvOFm0VQneJUQ1MrpVdS6dfAq0cKweHFIvjqu27Ynnp5NPjOfeHIGpEq9PgVelXR8TrdqS9ycIVKra3OaWzPqGqAAoa4DptbUZjY2UV6VVFUNXkWqFVhXRYW+pDSlojqx1FxQU7fTkTcT9KpnvOrlH5vPPnPAD2/0qjcAfI9/VQ7VO/bddga9CvmtAAZEdn89d6xF4pysEs8MSBfJ9VWy5THq+4DipVH50THVxpTuuN14Yhq8ygg5Pm04Ppt7+Zhm1SqbHyVSzdVp5kpIKmwrq9JqaiDgVWBX+gqzocK8M19lrkkqrzKWVuiLSk3FpYbikoJqXF916DiwV1Gfmi/+THZ+Xj99au+H9/Mf5FQzTp79BN7vVdShL/uU3tMM4DzB7rmoAsnzR+897pUjwP7uUDj37p5i7+t6WcsvqPmCV/aCWvt49gW/4Gg4+Js6uy29pFe7vKrZ/Txbd29nn3nmVa/iG15xiPMpcteeOi9odG8Lz/bb+X7ALupddfLKF/at6r/0dNQTezpINbPvBQAveA0v+h9P7XrmFN/U2lvfWX5Nt599C/ce/ZRn+vjNUy+oSu16SceA594IBPk+AgOi1NIlsHQKrN0CR590fli6PCZfHgOdEi+OSY+OS46Oy1cn5WtT0tVJyfK4GHJ0VL46Ydh26DZtSafmTSdmiCO1DQVNbfmNrbmNLTkNzVmNzUeamtPrG1Lq6hOrqhOdFwfJ+aqKyqRyc3JZpamkzFhYYsgvyqvE64CHjoN61Ys+kl/M3prPHkU92sueD2nnp/LTxzs1X366F4xY1DGJic+eY/8Z9vHcQLTLM/3ZwbmPPNmzr+uVLe+r+s27sLft3YZfyIuaB3brO1vs6tqttdPyq3pF8rpm9/Ns/afVXtjKS9tw8ppDnE/veTk7vK7r3zz/9B1+lr3HP8tr67/6dNTTTx/v/f/97HEvfFP2VnfytDN7u0u9I2SdvdVf1+3nnk/s6nr2ZC96XU+f/hU7Bjx3BIJ8H4EBUTjVwR5r5lm7hTP9wtlB3kw/f3ZAsjwmW5uSrE5KVyfk61OKdYscsjolW52Sb0wqjk3pj+94leH4NJHZ0JLi/LEaSFJlbUp1fXJtQ3JNfRKZWlNVdVJVtclcaSo3p5SVp5bB1pxUUqYvLM6vwt8HPHQc1KueGTteyd6P12c+aqlP8WfHn28+hr85wf5nXsL+j/Gdw152gmfPTvL8nmd4/hU79zjbe+bcr2nZWfebZ592c2/Xnz/VHqgDnu/INw08bfIFdfbuenbP65t9AdRBeyrsHPJNM0/78vJGXnvIToU9bezrGPXwdS/tucd7D3iG19R/3emeHkA+pkp7XvxzO/bjrLC/KZJvjnGejqqyt7mnVZ8evPP46UOqk980s/P4mz07O54/957mv3XHAKrGN88iyPcSGBB5Yy28qXa+rUcyNySeH+ZO9wnmBpUbFvWmXbrrVcesik2b8phNuWlTbVnV2zbDiWnt1lOvSqprMFXXJ1XWmcy1yVWkVKXWN6U2NKU0NJmqa5Kqa6jbLqSUV5Be5dymkPdhL0WvOoT8v+dVz7Xw7I6nj5z//Tafzvs/xqnHLzuBs7y/Veche494hmf79+rX9aqWnz0LWT3xxIm9B+070bfAecTu8VRvnm3gtb16Ec82+wL2vm6SFx7w6lZef8iLauw9sfP5/c3vfWnPvx/OQ176wl9d/7WnI9npn3OS7Znz7Dyx7/C9PNsUebZX/PPY2xxV3nu2PTWff/LpvqftOivv79nenb9Sx0ioKnvPiCDfP2BATBhpElq7hPZe6fywbGlUtjKuWrfotqf3eZVyy64ipcoOUrXrVaaTs/ptB2GqrU1vbElraEmpa3KmEULNVxkrq0xV1Sk11SnVVakV5HxVMqS0LKnCrCsuy0OvOnz8v+ZVe3e/COoTfYdvc6L9DT5/gj19pp58MS/t0zOv+Znm9zz4Fi3vbYcsQ3Fva87yt3nFJHvfpqcdf6ZrFN+iV8/womZfwL4zveDEJM+8b/v4Foc4y/trfFPh9S/t+XO8qkevqf/601E4DwH2neUlr3cveztHlqG49yhn+Wmrzz3xsm7vbXSXVx/tZH9n9pah+FwLe0+xU2fnEYJ8P4EBkTPWzJlsFc8OCGcHxIsjqg2Ldtuh3LRK1ycla5PyDascpGrTRnrVtk113AZb5ZZVe8Kh2rIaTjg0WxYio77auVa9LtX508uptWSo2ytAkqsqwatSa6qTzeak8nJTeXkieadQs7akLBfXrR8+DupVL/kYfgEv+fB+XQPOD3FgZ4HU68+0v8HnT7BnXHja+ot4TZ+oBp5tfc+jb9Oys843tcmSswVn09+UXspLzvGC3jzl2/Tqdc2+gH1nesGJSZztvuQVfYtDnOX9Nb457vUv7flzvKpHr6n/+tPtsFPxmX0vfb3P4DzSWWW35DzM2YFvSiR7m3t9t/e/4lcf7eSZ436FjpGQlZ5rEEG+Z8CAyJto5VraJbODPEcvb6ZPujKuWJ8SLY8Kl0el61OqLTtpVKRU2dXHbeoTsCUFS3Pcrty06I/b1ZtTRG5dcW5tWU6dObe+Or+xNr+5Lr+pIaexPqu+NqXaDEaVWluTUl1FLrGqMJO3Bq2s0ZaWa0rKc2tqdzryZoJetcerqE/Wl31s7n3yJR/eL/kc38XZxJ4x4RVVKfY3+PwJ9jT5urO/hN0W9h2/5+G3atnZDtRxVqbqOovQ9NP/Ouu9COoETnarPfsOvaALL9i1j9c3+wL2NfuSs+x535/jWxzy9M16hm8qfNuXtrfGq3r0mvqvP50TqhrJs6f5Voc/fcXOylRdZxGaevpfZ71nm3u+6T3dfuErfvXRTp497tt3jITc9VyDCPI9AwZE7kQb19rJn+njTPdyZvv4i0OC5RHe0rDg6JjkmEV1wqY4bpNvWWRbFigoT9rVJx2qE3btKbvquMVwekZ93EoUmTPK6wpK64vK6ktLG0pLGsoL6suyqorTKooyayoyayrT66qTqyoTK8qN5D0XapJr65VFpYrikhycrzp8HNirdj6I939Ukzg/fXefoeo9/+H9/Cf9M3v2Pnj5qfawt22S/Y+fbZLq46/8qe9sNPHEx68417dqmay008wzL7jrY+qZl7/S51/W0327O19U5XW9+hbNvoD9R73wLK8+9esPeVGNvfte3T7w/GtzHvLSd/nV9V97OmC3hedO9HzbL4I87Fv989jb3Lfo9t6ePD3g6RHOCvt7tn8ndfqD/LtFkO8pMCDyLR1xo40Jti7eTL9gYQi8ir80LDw6Jt6YFG9MKZ1SJT0G5QlQK/lxK0gVxHB2BtTKdG5ed8pBtNaltDdn19dlNTXm1dbl1tTn1zSXFFflFdYUZlcV5taUZtdXHamtSqmuSiLXWtWn1jeoikvVxaU5uL7q8HFwr3r6obvv4/Tpzt3P4pd+9O/UfFqRerjblvPh7iPqwFd+bu+v8sy5nDzT5M7Z9za5rwcvhGrVyZ6mX/S6Xt0yucd5ifObnTvHAXs7vZ+dDnxT5fnDnn/lwGt69S2afQHUUXvafO4sO+2+opHXHvK0J7s1XlJhTzd2du3soerv7YHz6b31n+E19V93umeq72+LevzSUz+FbOHb/PPY2/y36/bu81T1PXt2Knxzxqc19jd5oH+3CPI9hfQqayfb0saf7RcsDgmWhgUrI+L1CfmWVbJp4a+NC9fHRccmJJuT0m2L/IRNccquPGVTnQa1AsGyak7adWemiaEG3VBzSld9cm9LZntDWntjVltLXk1dVnV9flFldmF1YV5tyZHq4tSKYlN5iamiLMlcYawoSzSX59fifNWh49fxqj2fzfvYO268/KP/BUd/88n8zJgAUJ/er/rk/ubz3XnYs+ci2dfkN/X3sLfnL+Rpp5+puO9c36LlFzXz9LBXvcgXvms7PG3r+Vfu5NW9en2zL+KbNp/WeuFZXv2KXnOI8+n99yF7ts1v89Keq//S1/Xa+q8+3b7K+1r75tiXnh94+n9jb52nR+7t2N7Gf+Vu/0r3r9rh23YMoHa/6lUiyPcAGBDZ480cawfb1sWZ6QOvEq+OC1ZGOUtD/NUxyZZVSs5R2ZQn7KrTDs3ZGc25Wd15MuqTNs0pu+70tOHcLDFqFkw26wbr1WMtiYONxv6mpMG2I231ae3N2Q312TX1eZUNhcW1BdmVBZkV+ekVBenmYkhGZWlxLd4X9NDx63mVk32fxvs/SL/FRz/Fswc6n9i7a+cTfd+H916efuZTlV5yrmfO8s0RJN9uCKCOebbu8+d6bcs7FV5wzCte4Q7PN069jTtHPt+bp7y6V69p9oV8c8yeWnv+p36bl0PyikOe/m/b070XtPmKl0Y9tfeYp03uPNzHt6n/0tM9f/C+o7858gWvYpedWnurvGDXM2d7/syv7DZUfP6InWOe8uxTTl7QixfsIqFaeum7jCDfD2BAjB9v5s30sGxd8fYu9ly/cHWcf3Qsfr6ftTQk3rYJ1scEx8ZFm5OirSnJiSnJSYv8lBWiOm1Xn3Hozjr056cJSzVvql4yUiOZbFKNNihHGrUgWH11IFgp3c0ZHU1ZzU05tfXZ5trs0prs4prcotq8rNLM7PKc0uqynY68maBXvdirEOS75Hk7QBAEOSSQ81WTrdzpbu5sH9PRzZzp5a2MiDYm+Wvj3NUx3vqEYGNcuDkBXiXetoBXSU/teJXylA2iOW3TnXMQ1mrOeDV/2MydrBOP14hHa6UTjerBavlwva6vVttdq++oMbRUGxsqjfVVproqU01NSklpckl5emV10U5H3kzQq9CrkH950KsQBDm0wIDImmyNt7QmzPYmzPcnLA5yVoYF6+OiTYvg2CR3bZyarxJsjgm2xsXHJ8WgVs4oT1sg4FXas3Zi3Bw3XMEaLGOBXY1WckcreRO1kmGzYLxG2lcu7C0XdZUJO8rEbWXStgpZm1nRWqmtrzQ1VKXW1xbudOTNBL0KvQr5lwe9CkGQQws5XzXVFjvZEm/r5C0NCdfGeUdHE5aHuWtj/GMTPFCr9VH+BpRHQa1E2xOi45MSZzTn7Oqz5HwV6VUjlczekpie4tgRMwfsCjJWwRkqYU2YeSOlCcPF7IFiVq8zfWWc3gpet1nUXqlrrzY11+bvdOTNBL0KvQr5lwe9CkGQQwvlVWx7J8vRzVkYEBwd5a+OcUGtVoY5oFabU9JTNtlpm+K0XXHWrjznUJ6fVp2fUV2Y0Zx3qEm1ssOW6CyM6CqM6iyIBKPqK47pL4oeLovvL4geLY0bK2PBdojcGdVfFDNYGjNYxuwr5XSViTsrVK3VR3Y68maCXoVehSAIgiC7wIAYP9HMm+8TLA2x5vqYc328tTHR5hRnfYx9dISzPio6YZWctEhOWSVnbHLIWbv8nENxzqG+OK08b1eesSnOWIm2nODW7JD23NCO3IieosihiriBYkZnTlh3bmhfQdRAUdRAMUhVZE8BvbcwcqAE1Io1WiMZMEs6qtJ2OvJmgl6FXoUgCIIgu5DzVdZ25nRXwlxvwvIAJH65nwWFjRHusbGE9RH+9iR/a1J00iY6bRedssnOz0jPO/jbE9zNUekZm+bSPGyJnvywxoyAjrywthxaS1ZwV0FYbzG9Kze0M4fWlRfWUxDRUxjelR/WmRvalRcOatVfEttTFDdQltBVnbzTkTcT9Cr0KgRBEATZBQZElq2dPdvNmuthL/WzVgbilvqYKwPs9WH2sVHm+rD4tE140gpeJThh4W5Pis86FBdnJefs8oszuhvL8nPTsnMOorcgvKsgYrA8Frb1aX5NmYHtuaFtR4Ka0vzas0M6cmgQKLRlB7eTphXRXRDZXRjdX8rqqEzc6cibCXoVehWCIAiC7AIDYpy1jTnTFT/XzVrqB6OKXxlgrg0lbI6yN8dYm6PCMzb+KavwlE1wyso5Pi44Y5FfmpVenKa8SnBqUnN9gWjPCuovjR6qiAOvaswIAK9qPhLUnO4PacsKhrQegQS1HAlsORLUnh3amQsexugsZLSW63Y68maCXoVehSAIgiC7wIAYa2mJsbWCVzGdM1Ws1cGEY6Pc7Qnu8QnOiUnO9gTn+KTwrF1ybpp/agq8SnzeITxrlV+eBbUCr1JdnSPqkjxbsoLBperT/MCr2nJoUG7NDOwrpMO2JTOwKT2gMc2/IdWvMS2gJTOoJTOkISOoPj24qUS905E3E/Qq9CoEQRAE2QUGRMZkcySo1WxnzEJP3Eo/a304YWsMXIp7copzypJwfIx9fExwzia5OM0/a+WdtQjO2/lnLLIr09yTY5ILduklB1GT6F6d5FWZ6GE2uoNatWaHNDgnqwaKo2DbmObXkOJbl+xTm+RTm+xTn+Jbn+JXlxZYleRXV6jY6cibCXoVehWCIAiC7EJ5VZS9lTHdETXXGbPUG78+BF7F3h5POD6RcHKKf86acHoSjAp0invWwj1nEV2cFl2aFl6ysY4PSy9PS69ME01pvnWpvmBUtSk+1Poq2Dak+nXmhLVkBIBX1ZNS5V2d6FVt8q4hA9WCqlP80asOIehVCIIgCHIwYECMmmqOdLRGz3ZGLXRFL/fGHxtmb40xt8fit8ZYJyZAodinJyHcc1b22SnOBav4yrT46rTk2oz4ioN33iK4ZCM6c0Koy38tWcHUpcDmI0EtGUHgVa1HgpozAhpSfMGrSKNK8oFtdaK32ehbmxrUWIzXAQ8d6FUIgiAIcjBIr7I2R9hbYxZ7opZ6YlcH4rdG2cfHY7dG4yDHxwQX7fGnxpknxzngVecsCRes/Mt23mWb+Mas5t5K/MlRPnhVV25Ye054Zx4d0pZN3m2hIy8MpKojO5S0q9zw9mxaC7nQKqgxLaA+xa8pndZ8hN6SzWgu1e905M0EvQq9CkEQBEF2gQExbKI+1NoUs9QbszYQuz7EWB+ERG+NxB0fjzs5EbU9FHdmgkXOVNn4V+wJlyzsC1OC69PcKzbR9RkI97KV6C0gjQrSkRsB6SqI6C2O6i2I7MoNb04PbMuiNaUHNKT6NWcENmcEtWQGd+ZENqSHNaZHNhZrdzryZoJehV6FIAiCILuQXjXVGO5oDZ9tZ6z0xR4bjjk2FLUxyNgcjjk+FntqgnFiJOb0OKgV87yFfdkaf3Eq/vwESBXr4hT74hTnspV/3UEMlkR3F0R15UdSXtVTyOgvie0rjCKvA2YGk16VFlif4t96hNaRE9GdTx8oiW/PYbTlxDaXGnY68maCXoVehSAIgiC7wIAYYW+JnO8MsjdHLPfEbo3EbI8ytkYY2yPRJ8djzkzGnJ2AxJ4diz03HnthIubCRNyFSfYVK+e6nX15inPVJrozRwyVxoBXUWrVmUeHLVnODW/PooFF9RREglq1HgmBp3oKo/uLo0fKE3qKmF2FzNZy405H3kzQq9CrEARBEGQXGBDpjtbI+a7Q2fao1f647dG4E+Mxx8diTo7Hnp4Ar2JdtMWcm4w5Pw5GFXV+DLasqzbODYfg9iz3hoNz3SG8PUvOV3XkRoBL9RQyqCVW5HKrnAjIQEnMUGlsb2FUVx69tygavKonnzFQEt+Rx2jPZbSU4fqqQwd6FYIgCIIcDBgQw+zN4XPtUUd7ozfIZVXR2yMxJ8diz0zGnJmIOj3OumyLPjcWe3Ey9tIU/dwo4+IE++Y05/YM65o14Yadfd0ef3mKnK9yzkUxwJyg0JoVCmrVlUvvyY8CowKvArvqcVpXRy697Uh4V25Uew69NYfeXIrrqw4d6FUIgiAIcjBgQKRZG2mOFsZqH2NjIOrYIP3YYBSo1emJ6NPj9JPDsRemos6MkHNUN6ejLoxHXhgHr2LfdDCvWjg3HeBV0RfHifFKVn9J7EBpHHhVe054yxEaqFVHNjll1ZZF6ytiQLqdlwhbMmktGbSOnPCO/Mj2vMjmMvSqQwd6FYIgCIIcDBgQQ6yNIY6WsMXO8KO9Eev94RsD9K1hxqlxxunxyDOjkWfHIs+O8O/NS99ejb9qY1yajL9hi74yybpph4BXMa9Zicla/lgVb7giobcoFoyqKYPWlBHckhHSlBYE6cqL6CmI7MwNb8sOa84IaU4P6cyNaIfkRaBXHULQqxAEQRDkYJBeZW+mzbUFzDSHLHeFbfSHbw1GbA9HnR5nnJuMOjcRfnqEfn5U8ta69pOT7LuzUdcssTft4ZfGYq5bo65MxFyzJNybJTrzoroLYvpLWX0lzLZcelNmWGtORHtOZFt2eFNGSBuUyZ20GpNvpdG7IS2oLRuepTdnhzWVaHY68maCXoVehSAIgiC7kF413RS21BF2tCt8oy9iayBsqz/4WG/wZl/oyaHw8+Oh50bDLk5EXLFFXrdH3XRE3Z6OujUdedtGv2mn37RG33LE3JkmWrMimo/QO/JiOvIYzUfCGzNCW7Pp4FWwvzUrrCMvsjM/CuyqMS2wPjWgOZMGUkWtr2op0+105M0EvQq9CkEQBEF2gQExeLopdLkjZKWDttETutUfuj0Qst0fcmKQdno47NxYyPlx2sXJ0MuW8Gv28Os2+i17+G1H+B1HzMOFCCjctEbedRBd+dEN6WEtWZGt2VHkjdSzIkCwOvIZYE5Q6C6M6S2OhW17HthVZFsevT0/CqyrPZfRVoH3WTh0oFchCIIgyMGAATHA0RC00Bq80hGy0UPb6g87MRh2ajjszEjo2VHwKtqFieBLkyFXJmnXLLTr1rBbNsqroh7OU14VdW+a6C2OB6lqz43uyIvpzAeFiu0rYfaWxHcVwsNoyqt6i+O6i2I7C6I7CqLa8sDA6C3Zka3leF/QQwd6FYIgCIIcDBgQA6cbg5baQo52hhzrDd0eCDs9HHEGjGoUvCrk7Ajt0hTtioV2dSrkuiX0hi3sjj3iznTE3engG5bQ2/bIe9OkV4FRQdrySanqKojrKYojvaqY2V0YB17VVQBqFdtTFA/7wbTa8xikUWXTG9JDm0pw3fqhA70KQRAEQQ4GDIhBs83BRzuDVzuDjvXQtvtDTg2Gnh4OPjscfHrI/8wgeFXIFUvItamg65aQG9aQ26BWjvB700E3Sa+KuDdNv+cgmjIjGrPokJasSOpqYJvzMh+ktzi+tyiO3BaDacU7p6xi2nIZ4FuNmeGNxbhu/dCBXoUgCIIgBwMGRG9Hnd9ii/9qR8Cx7oDt3oAT/QEn+/1PDfidHvA9MxB0cSLg8mTg1cmA66RaBd22Bt+yBd+2hT+cC7s3HXLbGnrHRtSmhJqTgiuTQ5wJqk4KqkulNWaEteVE9RQzqZmq7sK4rsK4zoLYjvzo9rzottzohkx6Uyneb/3QgV6FIAiCIAcDBkQPW43nXKPvaoffsW6/7V6/430+x3t9Tvb7nhn0uzDid3Hc/8pkwLXJgJuWoJvWwDvWwFvWwNvW8EfztAczQXesIXesRInGp0TvByk1+EPK9b6ViQEN6eHklFUeWBSjLYe88Nd8JKIpM6LpSHhjZnhdelh1amhjCX4f8NCBXoUgCIIgBwMGRJ/5Jr+1Dt+NTr/jvX6n+n1P9Xuf6vM+M+B/cTT4+pTfpQnfa1MBN6YCQKfu2ALu2vzv2PzuWP3u2oIfTIfcdwTdtRIViSGFat8ClU95YiBlV1UpwVVJQY0ZEZ0FsW25jOYsOqTxCOhUaG0qrSaF1pAZ0ZBJR686hKBXIQiCIMjBgAHRf6XNa6XVd7Pb/2S/z8k+71P9ARdGAy6N+V4c9b864Xtl0ufapM/Vcd+bU2BUAfft/vfsfvdsHjcnfG5b/O/bgh86iObs2OqUcLOJVpMWZk4KrjAF1aaHgz+1ZEW158W25kQ1ZYY3ZITVpYVWp5K+ZU4MNJuCKpOC6wrVOx15M0GvQq9CEARBkF3I+aqlFq/1Dq+NDq8TvZ4net1O9vicG/K+NOJ7eSzwts3/htXnhsXrxoT3rSnfuza/hw7/h9P+j6Y971r87tsDHjmCHk8TLXnMhkwGqFV9RlRVclhVCq0xK6rhSFRHYTyoVWMmvT4trMY5g2U2BZYb/Ev0PiBV1alhDcU4X3XoQK9CEARBkIMBA6LHUrP3ZpfnZqfP2QGfs4MeZwe8zg95XBzyvDTif9vqf9vmc8vmfXvK6/aU912rL3jV45mAt2e9Htic5emgt2eI6jR6fQYDjKo2jV6ZFApe1XAksi6D3poX15RJb8iIqEsNrU4OqTQFViYFVRgDyGuFOr8yQ2BtAc5XHTrQqxAEQRDkYJBetdzseazTfbPD59yg36URn0sjvlfGPC+PQHxvW3xv2Xxu20CqPEGt7lo9QaceTfu9NQMF74d238cOv8cOoiIpFNTKuY2oSKKZTTRSsFJotekRZDLolFdVJwfXQiGFVpEYVKT1yVV6VmRLdzryZoJehV6FIAiCILvAgOh1tM11rdV1o93jTL/XuUH3C4Pel0c9ro56XRv3vWvzujHlccvicWfK467F457V7b7F44HN46HN/aEN1Mrrkc33LQdRmUwvNQYXav3LTSFlicFVyWGNR6LBqBqzGOakkMqU0OqkEHNiYKUpsCaVVpMaCl5VZgzMV3uXZ6FXHTrQqxAEQRDkYMCA6LnW5rLW6nmy1+vcgOuZXuJ0j9uFQbdLQ66Xhz1ujLvfmASv8gSpum91u2dxve/MA4vHQ7vHIzt4lc/bDsKcFFGsD8xT+ZQYgiDgVS05cU1Zse357ApTMOVVFUbwquC6tIi6dLrZFFyi8y/U+FXmKHY68maCXoVehSAIgiC7wIDovtrqutHmTS6rGnQ50+tyrt/r+pjXzQmXK8PElSHP21bPOzbPe1bKq4j7FpcHVrfHdo/HDnfYPrJ5v2Unyk20qtSIUmMwFMCrzCZaQyajNj0S1KomLbz+SFRjRkRtamhdWnhLdnRLdgyoVakhqMJEayzB3wc8dKBXIQiCIMjBgAHRdaXZfbPddbvT7XQ3eJXX1eGwx3Nhb8/53rW63hz3vm/zeWD3um/xuD9F3Jsg7k96PLJ6P3F4PrJBwfOh1fuRlSjQ+pcYg82pYVXpERUpoeWmkMqUsNqMqIasmJr0iBJjoDmJVpFEXiIsT6KBezVkx7TkxFenRtYV4vcBDx3oVQiCIAhyMGBA9Fht8dhs8z7V63a6y+VMj+/10dC3Z8PfW/B9YCWuD7jfHXe/N+EGeTDpfn/S/cGU+4NJzweTgU9mPO5N+D22x36xRhQbgirTwmsyIyHgVeBPFUm06nR6/ZHo6rTwYkMAeFW5KbjUGFRmCik1BtdlRjfnxNWmM+qL8XdsDh3oVQiCIAhyMEivWmt232xzP9npeqrT5Uy3+5VB3zsTfg8tnnfHiVtD7vfH3B+Muz+ccH886fF4yvPxlNfjKZ/HUwFP7MTNgajPVor+7lOizEQrSwoxp4aBXZWagov1AZDSxOCyRHLROulVybTyJDCqIFCuEkNQdXpkXVZ0dQajodS405E3E/Qq9CoEQRAE2QUGRPeNFrftdpAq13M9bpf73a4Nut0Ydr896n533O3BpOv9cdcHE64PJ10fT7k9trg+tsDW47El4P05t4eT/u/MxP/kBGFOCa9ICa3OoNdlMWoyI6vTIqpSw80pYRVJoWBUJcbAqtQwc0poRRKtIjm01BhclUZ3HhJeh/NVhw/0KgRBEAQ5GDAguh5rcT3R7nam2/1yv8f1YdfrQwTk5rDbvXH3xxbiwTjxcIJ4NEnm8ZTLWxbXtywub02BYHm/P+P9zjRxf5yoTo/cvQ4IBfIWVsmhlFdVJIWUJgbVZtCr00nZqk6jk4vc0+hlSbRiY0h1gWanI28m6FXoVQiCIAiyC+lVW80uJ9tcTncQF7tdrva5XB8gbgwQNweJO8PE/REQKZcnVuKJFbYu79iId8gyuX1ryuUdq9dHs36fLxEVyeQVQHNqWEliUK7aO0fhma/2KdIHlBiCyk3B5UkhDVmMuiNRNen02owochIrJbwyNaI8OaymULvTkTcT9Cr0KgRBEATZxelVLeBVxNkdr3K9Meh6e9gFpOrOEHFnkHg8Rbxt2XEpyLs7W5f3Hc6yzfWDaXLdOnn5L4Nenkwr1Pvna32LDAFlphBQKPCqimRaY3Y05VXVafRSY2BpYjBeBzy0oFchCIIgyMGAAdF9q9ntZKvbuQ63S91u1/vcbw+63x9xfzBC3Cfnq4iH48SjCeLxJPHEsuNV79mI923E25Oun8x6fbZAfOAgSozBJYlBpaZgctG6MRCkinzoXKJOeVVTTgx4lXPdVUSRzq9I71+oCyg2htQW4X0WDh3oVQiCIAhyMHa9yvUs6VUe1/tJr7o77HZ/2AW86sEw8XCUlKq3pkipes/m8oHD9aMZ149niCdTxIcOUCvio2kiT+2bq/YGlypLCilPplWmhcO22BBYlhhSagwEo2otYNZnMUqNQXkqnzy1dyGolTEwXx9QheurDh/oVQiCIAhyMGBA9DnZ6nex2/9qH3G+zf16r8edQfc7Ax4PQK2GPJ9Mujwad3k84fLWJPH2JLiU63tW9w8dnp/MBPxwxeeLBfePZ1w+tJP3Bc3X+lIzVYV6fyiQVwM1vsV6UKugqrTwusxI2JYlkrdgKNT65mt8CvQBeTp/9KpDCHoVgiAIghwMGBDln6zm/Ye7MU8c/reHfO8Mud8ecLnZ63Z30OXugNvDYdfHY65vj4NXubwz4fKOxfV9C3iVxyd278/mPT+bdvto2uUjK1GkD8xVe+dpfLKVnlkKjyKdf4khsNgQWOG8z0IFJIlWZiJvFkrdZyFf45er8QWvqsZ164cP9CoEQRAEORikV316tOA/3It+YvO91e95s9f1ZrfLrR73B4OuDwbcHo+4vz3m/s642zuTru+Ou7435fbBlPtHNvePLe4f290/sbp9bHf92EJ6Vb7Wt0DnB16Vo/IqNQaZk0NBoWrSI6vTws3OO7CXJpI7q1IjQLYKdQE5Gp8CQ2BNEXrVoQO9CkEQBEEOBgyIARe7wu6N+t/qd7nc7nazx+12r9vdPo+3RtzeGnZ7MuL+7pjbe2Ou7024vj/u+uGU28dTIFKun0w6y5Men9rdP7WQ3wcsSwqpSAktNgZCKlPCIOVJtMqUcOqOoORt1o2B5aYQM+w30cj5LY1voSEIveoQgl6FIAiCIAcDBkSXE/XE6UbvW72u1zu9Hw55Ph5yezjg8WTE5cmQy7vDHh+Mu70/5vbhhNtHE6BQ7p9ZXD+dIj6ZID6acP100v1zm9vnFvJ3bEpNweQvAzrXrdek0yGgUNVpdOo6IBhVsSGwhFzJTn5JsEDrn6f1KzAEVhfi+qpDB3oVgiAIghwMGBA9LrR5XuvyuTfgdqfX5+0Rj7eGiId9IFXEuyOuH467fTzh8tE48fG4y6eTbl9a3X5gdf18ivhsEgIF188trl9YiPKk0AKdH0gVNWtVmxEJoX53mbovKLli3RBI/migMahYH5iv8cvR+OTp/CvzVTsdeTNBr0KvQhAEQZBdYEB0u9Dmeq3T/U4vcavT7dEg8bCfeNjr8v4o8RHpUsQnY2Q+HXP9YtL9K6v7j6yuP5giPh93+woca8r1yymXLydJryo2BlK/uwxb5/0/IypTw+syGRVJIbteVWIMKjOFlBiC8jR+2UqfHI1fRa5ypyNvJuhV6FUIgiAIsgsMiMSFFuJyq+td0qtcHg8Sbw0Sbw+6fzzp8vE48dEIGBXx6Qjx2QjxxaTbVza3H9tcfjhFfDnh+dNpt69trl9ZXb6yEDWZkVXpEWBUFSmh5ck02IJgVaXTazKj6rNjzGkRxcbgImNQaVJoRSrdnEovSwotMgTnaQPLsxU7HXkzQa9Cr0IQBEGQXWBAdL/U6n6j0/VWp9uDXrfH/cTbA67vDXt8PO7+yTg5U/X5sPuPJokvhokvxwlQqC/GXX5kd//pjNtPZly+dhCgWT+xE425sdSPLj+bKEh5cmhxYnCBPqDQEFiWHGZOiwS1Kk0OL9AFgldV5OJ1wEMHehWCIAiCHAzKq9yud3jc6/V41O/xZMjtnSH390c9PplwetUI8ckA8YMR8Cq3H1ncfmxz/ZHV63fmXb92uP901u2nM64/cbj8zEE058dXpUdUZ9Brj0TVZTFgC15VSc5ghVekhJUm0UpNtLLk0IrUCFKqksIKDSE5ar8ctb8ZverwgV6FIAiCIAcDBkTXS22u17s87g94vj3i8e6o23ujbh+MuX086fbpJPHxKPHZqMuXkHGPH1uJH0y5fWXx+dk88em4509mPX4y4/HTabefTRMNOTHU4ipQK2qyirwsmEZKVXlyKGlUKWGV6fSqjChzWmRZcjh4Va7GP18XVJWP3wc8dKBXIQiCIMjBgAHR42qX5+0+9/v9Hk9G3N8bdX1v1OX9MeLjCeLTCeKTUY8vJ92+HPP4waTnVxbi42H3H1rC/sOG59fTnl/PeP4EMu3+UwcBOkXNV+16lXPKikyhPqA4MRi8qjozqjYrBlKVyTCnR5UmRZQm0WuLjTsdeTNBr0KvQhAEQZBdYED0ut7te3/I9X6f+9vD4FVuIFUfjhGfThJfTBFfTLhDPh/3/HLS64cW0Kyg35kX//y64L9e9fl6FrzKg7wg6CDMqWGUVIFdUYLlVCtGXVZ0eXKoOS0CBKsuO6Y+J64uO7YuO642K64qPdqcyqhDrzp8oFchCIIgyMGAAdHzWpf3vT7wKo8nQx7vj7t+NOry0bjLZxPED6yuP7S4fT7p+TmpVuBVbp9NgFfJ/uqW/h/fCvidRe+fzXn+ZNrjZ9OkV1FGVZkWTsX5EDSLTtpVdnR9dgx4Vc2R6OrM6Ooj0TVHYmuPxFWmReN81SEEvQpBEARBDgYMiK4XW1xvtrve6/F4MuDxwajrR8MuH4+5fD5GfDkJXuX++ZTnl6RRef3Q5vFDq+ePbNG/e5z/8ysB/wa8asb9x3ZyvuqpSO1cCtxxrKfr1s1p4FsRFanh5Snh5akRlRlR4FUNOayqjFj0qkMIehWCIAiCHAwYEImztcTlBtd7He5P+jzeH3T7YJD4cID4dIj4YoT4ctz1swmPL6aIT8e8fmT3/Xra5QdTgf9mMfr3T4BXef5s2uVHVuJrG1F7JKokMag8mQYxp4ZRXwmsSA0DryonvwYYXpZEK08JqzkSXZcdW01u42oyY6sz42qLDDsdeTNBr0KvQhAEQZBdnF5VQ1ysJa43udxvd3vS6/7hoPvHQ66fDLp8NkR8Nuzy2ajLZxMuX467/GDC7YeTxFeTLj+cIH406fZji+tPra4/s7v+awcBOlVqCqa2ZUkh5GRVWngZqVmhYFTgVaUmWmkSrTI9sjIdfItekRZZmcaoSGXUFOp3OvJmgl6FXoUgCIIgu5BedcpMnKsirtQSt5pcH7W7v9Pt/n6v28f9bp8OuH4+7Pq585rgF2PkfUF/ME78cAykivjxhMvXFpefTbn81Obyr+xEod6fuhRIqRV14/XixCCQqlJTSHlKWEliSHFicHkKyFZYoSG4yEgrNoYV6EMr87Q7HXkzQa9Cr0IQBEGQXUiv2i4nzlQSZytBrVxuN7s+aHN7u9PtvR6Pj/o9Pht2+3zU9Ytxp12NuHw56vrVmNuPJtx/Muny9STx0wnip1PEz6YIsKiazMi6LAaoFfUjNiBYRcZAkKoiQ2BpEo3yKpCqEhMtXxdYoA/O1QTmaoLNuXj/qkMHehWCIAiCHAwYEF02y11PVRFnqoiLta7XGl1vtbjea3N93OnxTq/nhwPunw67fTbi/sWo+5ej7j8cc/9q3OPH4FXjbl9PEF+PEz+ZIH42QZSagkGnqjPoYFT7vKpA519iCtnrVQX6oCIjDbyq0BBamY/zVYcO9CoEQRAEORgwILqulrtuVrqdqnM93+B2udn1aovr9VbX2+3u97vc3+pzfa/P7aNBj89GvL4c8/lqwvurMc8fjXr8aNj9qxHXH40QkK9HiByVV77WF+yKCqhVWVIIeFVZEq1QH0DNVxUZg0CqihND8nWB4FV5miDwKpyvOoSgVyEIgiDIwYABkVgsI1bNbtt1bqcaXc82u5xrJi40E5fbXK51ELc7iYddxDvdbh/2e3466PvFiM+XQx5fDrh/OeD25YDrDweIHwwRPxom56sK9f7gUlAoIZdVkQXwKvJHl41BZcmh4FWFhsAiQ1C+LiBH45evDyrU03LUQaVHFDsdeTNBr0KvQhAEQZBdSK+aLSOWzMRqNXGsjthuIE40EqeaiDPNxPk24kobcaOZuNtMPOpwfbfL/cNej4973T/ucfu4y+3TbpfPu12+6HcBu6Ku/dVkRsIWpAoCdlWcGET+6LIphPo+YIE+sEAfkK3yOaLwzlb7lSbRs5UBxZmynY68maBXoVchCIIgyC4wILpMm4n5amK+kliuJdYaiWONxFYLsd1CnGonzrUTF5uI643E7WbiQbvr4073Jz3u73W7v9/j8VGf2yd9bp8OuH8+SN5nIU/nV5IUUp4aVmwKztf7FxgCChODCo1BpcmhZanhZSlhxUm0PPAqjV+ONiBXH1Sgp6XLfEuOyHc68maCXoVehSAIgiC7wIDoaq9ymaklZuuI+XpisYlYaiRWWoj1NpfNTpcTncTxBuJUA3Ghxe1mt+fdPvf7fa4Pelwf93m8N+j6Xi/xbq/L+32kV4FLgVGVJtMKjYHgWLAtTgopSaIVJQaDUYFdwbbAEJSj9c/S+B1R++WoA1Ml3qVZyp2OvJmgV6FXIQiCIMgu5HzVZJWrtdZ1utFlpomYbSZmnduFVpflVtfVVmK9hdhscj3R5nG22/NSj9vVXvcbve53+rweDrk96CMe9RJv9xNFhgBSpEzBRYlBIFi5Wl/YFiYGgVSBWoFRUdtCY3A+qVYB2dqAPG1whtyvNAvXVx060KsQBEEQ5GCQ81WjFS7jZndrvZu90c3W4GJrIGz1hL2BmK4nZhq8llo8Fhvdlps81ls8NtvdT3R6nO3yuNTjfX3A7XoPcbPb5W4v+bvLJeTsVAioVYEhIE/nR0bvn6fzL08NL0kOLTbRChPBukKKTLQiU2hhIi1XE5Sp8CvLVu105M0EvQq9CkEQBEF2Ib1qoNRlqMxrvNZros5jkow7bKfqPS11XrYGf3uzr73Bx97gO9vss9Ditdzmtd7mtdXlc7bP41y363lyBouoyYwsTw0rSwmFUIXSZPCn4EJjULEJXCqk0Bi861UgVQVGWobMJ0Puh/evOoSgVyEIgiDIwYAB0a232KOv1Geoymekxm+0zn+0LmCsNnCyPmSqkWZpiphqjZhoCZtqDbe3hk63B8+2B8y3B650+210ex/r8tzq8TzdS5C3A00Lp6Sq+khUbXZ0TRajMiOyIi0iT+dfYAgEoypOAtMCowrO0QZkafxz1IHZqsDKfN1OR95M0KvQqxAEQRBkFxgQPbuKvXtL/foqAweqg4ZqQ4brw0frI8YboyabGVMtseNtcWPt8RPtTGtXnL07yt5Fn+kKm+8Jmu/yW+jwWer23eglqjPo5tQw6qagVekRdVkMSHVGJKQsiVaeElaRElaWHFpkDC7QB+ZpA/J0gcWJ4Xk6mhl/H/DwgV6FIAiCIAcDBkSfrlK/norA3sqQ/uqw/tqIwfqowTrGcEPMaGP8WHPCSBt7uJU90pYw0cGa6oqZ6oy2dDIcPWH2zmBHR/BMV/BiD1GWFEL+cI0hoEDnB2oFjgUpTwktTw5tyotvyI2tyYwCryrUB+brAooTaWUpEXna4Bx1EF4HPISgVyEIgiDIwSC9qrM0qMdM660M76uJ6quDRPfXxgzUxQ7Wxw81cAab2AONrIFm1nALc6Q1brQ1brwtztIFdkW3dEQ6uqPm+ogSQ2CJMbhQF1Cg9YdtaWJIeVJoqYlWYgypTKVXpkVWpUWaU+llSeGlprBSU3iJKTxHE5ijCTbn4e/YHDrQqxAEQRDkYMCA6N9ZFtRtDuutDuuuondXR/fVMQfqmYMNIFXs4SbmQAMLCiMtCaMtCRNt7Ik21qQzlq54S2e8tSvO1k3UZkRWpkZUJIeVmWiwhXJVGt2cGlFmCjWnRFBeVZESAVJVZAgp0AXn64IL9LR8Pf7u8mEEvQpBEARBDgYMiH4dpUGd5fTeGkhkT01MXz14VXx/XTxpV1Cugy1ruDFhtJk93syeaAG1Sphs50x1JEx2sCfbE6Y6iLrMqIbs2Loj0bWZDNhSqUqPrEgOB6OqSo+i5qvAqwr1wbmagGyVf542OFcbgl51CEGvQhAEQZCDQc5XtZcFdVbQ++qiemsZvbXgVSBVcX21cX018QN1cQO18cO1zJE61lhDwnhjwkRTwngLZ6KVO9mWMN7KgfJ4C9GcG9ecx2zKjW/MiaOy61W1mdE1mYzq9KjKtMjy5IiSxNAiA61AH5KvC3HOV+H3AQ8d6FUIgiAIcjBgQAxsLwvpNEf27nhVXG99fG9tbG9NbG81eFV8f238YA1rqIE1Us8ZbeKMNXPHW3gTrfzJNi541WgzhPSqlnwWBOwKAl5VnxVDulQqvT4rFryKmq+qSKFXpEbCtjwlsiwlsthEry7U73TkzQS9Cr0KQRAEQXaBATG4ozy0yxzZXRPVXRvTWwdexexzzlf117IHG1iw7a9jDzRyhho5w83c0VYIb6yNPw7bp15Vf4RBedWuXTnVKrbuSExDdlztkWjKq8ypkZVpjOrMmOrMWMqrqgrQqw4d6FUIgiAIcjBIr2orC+s0R3ZVR3fVxvXUMXsbKK+KH6jjDjdy+xq4vQ3cvmZefxNvoIU32MwfauGNtArH2r/xqqac2Obc+JZc9t4058A2oTmH1ZAVX5seU50WXZMeW5sRV5sZX5MRV5ocWZwYgfNVhxD0KgRBEAQ5GDAg0trKIzsqGV01Md21zJ46dl8jq4+8FMgaqOMPtwh7m0U9zcLuFkFPs6C3RdDfwh9o5Q21CUY7eGNtXMh4O1GTTm/Mim/KZoJFUQGvas3jtBUktOZzmkCtjsTXk2FCwKuq0+NqjsSb02JqixN3OvJmgl6FXoUgCIIgu8CASG8zM7qqY7pq47vrmL31Cf27XtVAeZWk+xmv4kEGW4UjHaRajbeTXlWbHl6TxmjMYtWmR1elRNYfiW7IiiHvvJAUWn8kpu5IdGVKhDkloiY9tio1uiI5ujI1psQUUZJMrytFrzp0oFchCIIgyMEgvaq5LKq1Iq6jmt1Tn9DXCF6V0NvI6W/iDbUKR9t4vU283gZeb7NgoFk42CYcbiWvA1JXAwdbuMNkiMoUWoUpvDY9tjo1ypwE/hRZnRZRZgopNQZDqtNJ0yK/GJgRXZ4UWZZIB68qS4kEr6otNu505M0EvQq9CkEQBEF2gQExpqksptUc31HN7KxldtexuurYvQ2cviZufzN/oIXf18iD9DfxB5r5OzrVzB1oEgy3glfx4OEQ6VVhxbrgylRGZWqkOYUOIlWZFl6aFFJqCirQ+ZrTwmoy6dWZUdWZjLLkiFJTeEVqVEVaVLEpvKoA77Nw6ECvQhAEQZCDAQNibGNZfKuZCV7VXh3fXs3sqGF31/P6miCcvkZBf4ugD+zKubJqsJU/1MYdaOH0NwuG26HMc4aozYwxp0TVZzEhUCYv/Dm9qjw5pCKFBl5VBo6VFAxeVXMkuiKVXpYSUZYSWWAIrchT73TkzQS9Cr0KQRAEQXaBATG+oYzZbGa1VrHaqiHsjhpOdz23t5HfS6oVSNWuVwkH20iXGmwFtXrGq6oyYmuOsBrzOA25CbXZcZCKtIgiU3Bpcmh5Wqg5M6I0hVacHFx5JLI6O7o8PaIkObwoKTzXEFqOvw94+ECvQhAEQZCDAQMiq66M2VDBaqpkt9Zw2us4HXUJHXWcznp+d5Owv1XQ2yyE9LUI+1vEg23CoXYB2NVgm2i4gypAiFxNaJExsjQpusTEKE2KMqfFlqdElaXSq49EFxiCKjOjqo8wKtLp5oyo8rRIkKripLBCU3ieIbQCf8fm8IFehSAIgiAHAwZEdk0Zq66c1WBOaK7mt9bx2uo4LTUJ7bWCrkZRL/l9QPJWC70tooFWyVC7ZLhDDGo11A5eJRzqAKmCMpEs8k+ThKRJg1LEAemywDxdRIGBXmgCkYrNN4SaM2MrM2NKUuglqRGlqfQCU2iekVZgoucawsvz0KsOHehVCIIgCHIwYEDkVJdxayt4DZX85hp+Sy2oFWlX7fWiriZxT4u4l4y0t1Xc3yodbJcMtosH2oSDbU7B6hA5HYtIltDSZBGp4lAjN8DIBccKBc1KlwXnaMLLU5kV6cxCY1S2JqTIFFWWGl2QSM/SgldF5uhDy3LRqw4d6FUIgiAIcjBgQORXlwlqzZLmWlFzrRDSWifuaJR2NUu7WyTdzbLeVjI9rdK+VvkA6VWi/lYhONbQjldBiGRpRIYiJkkYaeCGJQrIGHjBiQJasjgsQxGVo4vJ0kalyWkZqvCCpJiSNFa+KSbHGJmpCy3Lw/utHzrQqxAEQRDkYMCAyDOXCWrM4oZaSXO9pKVB0tYoaW+WdrRIu1pl3S3y3lZ5DxmwK0V/u2KoEyIb6RIPtJEBzQKvSlXE6rjhJmF0sihGx4nQsGhaTpieE6rh0FLE0YnCCAOfliimpSuisnSxOfr4LB0jRUHTC/0Kj+D3AQ8d6FUIgiAIcjBgQBSYy4TVZkldjbSxTtbcIGltlLY1y9pbZJ2t8q42RU8b5VUgWMr+duVgJ0RO2dVwp3y0G0KYxNHqhIh0JSdLzdfzGYo4moZD1ybQJbGB2oQISUyAKMpbmRCYJIlKVUanq2LSVdEmaYgiwTM/Q7nTkTcT9Cr0KgRBEATZBQZEcZVZWlcDXiVrrJM3N8haGuWtzfL2FkVHq7KzTdXTpuxuU3S1KrpbVb3tyv5OiGKwS97fIR/sVAx3y0d6CA2fbhBEH1ELIXpejCw2VMmMUMSH8yP8hVFBnHBvFs2NT/dWsEL0QnqihJEooafIIzV8v/wMnK86dKBXIQiCIMjBgAFRUm2WN9RK6qqlDbWypnr5s16l7m5TdbcpybmrFmVPm6qvQw1e1d8p7W2T9XXIh7pArQitgG4QRxtEsVo+Q84KE8fSRDEh/KjghHBfVphPQoQPk+YZHUgwQ91EsX4KDk2ZEJwoDtfwA/LS0asOHehVCIIgCHIwSK+qqpLX10tqa6X19bLGRllTk7y5WdHWpmxvV3W26brbNV1tqo4WRWeLsqtV2dsOagVeJe/vUAx0Kkd6VKO9hFESrRdFyVghwhh/cWywJC5EGB3MiwwAteJGBohjQwWMwLgQ15gggsfwkbKCJKwADT9ImeCfm4ZedehAr0IQBEGQgwEDorS6WtHQIK6pkdTVvcirOimvUrY3g1qpetpBrZR9HeTVQPCqoW5QK8Iki9UK6FJmkCDaVxwXKGUGg10JGEEQPiNIFEMTxYBg+bAjvATRfjJ2sIIbohWEKjgBeel4v/VDB3oVgiAIghwMGBDFlZXS2lrKq6QNDeBVyuZmVWubuq1d3dGm7+rUdjrnq9pIr1J2t1FepejrIJdYDXRCiGRFvJoXKmMFiuMCRLH+oFaimCBeZAAnwo9NXQoM9+Ez/PjRfsIYXyk7QCMMS5REKjnB+Rn4u8uHDvQqBEEQBDkYMCDyy8qEZrOouvoFXtXe4Zyv6lC2tyraWuQdrcruDkV3h9OrukCtFP3dpFclihiiWF9BtDd4lYobpuSECRgBCeG+ED49gB/pJ44OkMQGyph+emFoojRcww8yiMKl8X5HkuQ7HXkzQa9Cr0IQBEGQXWBAlJirpNW1stp6ZWOzqrlV0dgib2xWNINXdarbu7SdXerubk13t7a3V9ffD1H19ih6OhXdXSBYip5ueV8XeZ8F8CoZK1DNC9cJI7V8hoIdzo8KZNK81OwoeXyoPD5EzgqUs/x1wmCTLEIvoukEoaBZR5IUOx15M0GvQq9CEARBkF1gQBRXVEqraiVVtfL6Jkqqdr1K1dYpbWmTt3UoOjrV3b3avgFd/6Cmv0/d3+f0qi5lbw+ESJHF6UV0gzgSvEoSHyiNp6m5kSpOlCiWZhDEKFnhKnaohheq4YaAVyVJI0ySMC2fpmAHZKfg/asOHehVCIIgCHIwYEAUlZsllTXiyhpZXSN4FUTZ3Kpqbde0d6nbuyTNraRatXcoO7s1vf3gVbr+fm1/v7Knm0xvj6qvl0hTMJMVsaBWUmYQL8pbGB2o4tD1wjgNn6FiR0hiAlVsWqI4yiimG0RhJkl4ojhML6RpeLTcNFy3fuhAr0IQBEGQg7EzX1VdK6muUzSQ1wFVzW2qFpCqTm0H6VWK9k5FR5eyo0vV1QNepe0b0Pb1afr6VGBUTqlS9/eR81WKhGBJvL8knrwUaBDF6oUxWm6kmkMHr5LFBWu54Sny2GQpwySJSJbRk6QRRnEYOFZBJq5bP3SgVyEIgiDIwdjxqqpv1lftepWmvUvV2qHu6lF1das6u0mv6ukDtYKoYdvfp3ZKFelVBkEkSJUwxkfKDDJKolOULKM4TseL0vLoRmG0jkdPFEeDVyVJopKlkekqRqoiKlEcbpLSC48YdjryZoJehV6FIAiCILvAgCgqN4vN1eBVioZman0VdR0QpErR3Kbs6FKQIWetqCkrMn0D2oF+iMYZQsWmqXnhigSanB2i5ISCSBmFDJM4JkkSZxAwoJwii0uTx5nEkSmyKPCqJGmEXkgDryrKMu505M0EvQq9CkEQBEF2gQFRWFYhLDdLa+rk9U0QWUOToqkFvErd1qlsadd29qo7ulXtXap255QVdSmwf1A/MKTrH9QODpBeJY8P0vAjdMJI2MpYwUoWDVwqSRJrFDEUzBAdPzxVHpsmj0mS0lPljFRFpF4QouUHG8Xh6FWHEPQqBEEQBDkYu14lq63f9Splcyu1vkrV1mno6dd194FdaUCwunv3ehUEvApCaDhhWm44bI3CqBRZXJIkBpIoYqg5YUpmiCaBpueF6fmhegHNKAozikIhybJI53wVXgc8dKBXIQiCIMjBgAFRUl4lr66XVtXJahvldc2KhhZlY6uquV3b1qXr6FW1kTNVmo4ebVefrmdA3ztIfiVwYMg4PAqCpezuVfX0EaBTCmawNDZAxaZB2SSOBq8yCCJlzIAUaUyyhJEkiUwSRyaKw8GrDEKaQUQzisNSFYyyvOSdjryZoFehVyEIgiDILjAgissqpZW1kspaaXU9qVb1zeBV6pYO8Cpte4+6vVvdseNV2u5+UCtqfZW6p49Mbz84FulVWm44qJWGEwZSlSyNTZXHJwrp8vgAPS9czws1iekZyrgMZUySOELPo+n5tBRFFHhVSU7iTkfeTNCr0KsQBEEQZJfnvUrR0KJu7tC1d0PAq7SdvdquXh1I1VOvItM7qKKuCfYP6geHye8DJooYOl4ECFaagpmpTsjWc7K0CcmSaC0nRMUKhG2yJCpNzgCvShSGm0QRmZq4FAWj8Ih+pyNvJuhV6FUIgiAIsgsMiJLyKllVnQykqqZBXtekamzTtnYZOnp1HT2atu5dr9I7LwIa+obI9A8bBsmAVIFaEUmSGD0/UsMJB8FKkcVlKOPzjfziFEmhSZChjDMKwrUJgTpuUKIwLFlCT1dEH9HEU/NVxdm4bv3QgV6FIAiCIAdj16vkNQ3O9VVNysZWTUsnOVnV1qVq7tC09Wo7+nQdvfoucrIKpMrYP2wcGEkcHDUNjhqGRsjrgOBSBkEUeJWOF5EoYiSJo0Ct8ozcPAPXJKIb+GEGXohJFAZGla1lZmtZ4FUZmtgUBQPvC3oIQa9CEARBkIMBA6KozCw115Lr1im1qm9WNbWpmtuVTe2KxjZ1a4+6rUfbAenVdvfvTFn1D+841vAohEiVx6fKmUYhwyiITBJHJ0sYmSpmto59RM3UcoOMwtAkcXiaLCpXzypJERYk8jKUsUe08SYpPTdNvdORNxP0KvQqBEEQBNkFBkRhaaXEXCuprJNWN0prmqS1zfL6VnkDeFWnqrlL09arae/VdfTrOsmVVbteRU1cJQ6OmIZGiXQlK13JBq9KFEalyeOzNJziZHFpmqwgkZ+jY+fomekKhkkUlqGMKU4WgFpl6+LJ7waKw3F91SEEvQpBEARBDgblVVJzndhcJ6lqkNU2g1fJ6lrAq0Cq1K09hq4BQ/egoXvI2LPjUtR1wJTRyeThcfAqfd8gkSKLz1RzUuXMJAn5TcAcHa8oSVSULAavKk4WZmtZmaqYHC3ziDomRRqRqYouSuJlaeJT5JH5GdqdjryZoFehVyEIgiDILjAg8gpKhaVmiblWVt2gqGtW1rdAFPWtcrArKDR1Oq8D9mk7+nVdg4l9o4l9w4beIUPPoKl/JLF/RNc9QCRL49KVbPAqSJqCdUSdAGqVo+fm6Lj5Rm6WhglelaWOS5NHJonDUqT0LG1cmjIqSRqB66sOIehVCIIgCHIwYEDkF5aJSiullXXymsa9XkWmoRW8StnSDWqlbusFrzL2joBRabv6tZ19UDD2Det7BglqcVWiKNr5m4CxKVIyqbKYFGkMuUpdHZ+uik5XRqfK6MmScPCqNHmUSRxmEIbifNUhBL0KQRAEQQ4G5VXCEud8VVU9qJW8tkle20xOVtW1gFfpOvr0XQP6LvJSYNLAeNqIJXlwzNA7pG7v0XX1g1dBCHApdUKY8/uA5C8uO5euk7dZN4mi0hXgWIxEcRgkRRoBRpUmj0yWRCRJwsGr8tI1Ox15M0GvQq9CEARBkF1gQOQVlAqKK8Tl1dTqdUllPbnQqqZJVtcsr29RNncpW7qVLV2qVhAp8jog6JSyrVvT0QsF8oJg7xBBGZWWGwFJFEWnK5hZGk6mmpUmj0sSR+q4NBXbX8MNTJaEZ6qiM5QM8KoUGR1MqwDnqw4f6FUIgiAIcjBIryoqE5VXCcoqhRU1oso6cVW9uLpBUtMorWuWNZDrq+RNnbLGDllTB3UpUN3eI2vu0HcPkOkZJNdXKVk0o5BBqRUUwKuytdwjGnaGkpksiQKvUicEGEWh6YqoI+oYUKs0eZRRRDMIQ3F91SEEvQpBEARBDgYMiILicmll7a5XSZxSJQOpqm+RN7Rq23vVbT2q1m5lS7emo9/QM6zr6le19xjAqLr6yYVWXf2EOiEsURRN3XIdoufTyV8JlDCSxIwUKcMoCE8Uh2WoYkCqUmXkRcAUKd0gDDEIaehVhxD0KgRBEAQ5GNR8lbiimldiFlRUk15V0yitJS8CUl6lbO5SNHfJGjskDW2wVbb2qNq6Fa1dIFWajl5NZx85X6VihyZJYo1ChpYbAWUlK0TFpum4oXp+uElEB69KltGzdcwMJUPLCVCz/QwCWrI0wiQJL8L7Vx0+0KsQBEEQ5GDAgMjJL+YWlXGLywXlVUJzraS6gfIqKaS+mbovqKq1W97cCYKlbu/TdvaBToFUgWBBgfw+ILgUJVXUQis9n67lhmsSQtQJIUniyCwNM03JSJVHmUShBn5wkjhczw9JFIeCbOF9QQ8h6FUIgiAIcjBgQGTnFvJLKoQgVdR1wBryp2zkDa3gVeLaRllDO5nGDvAqVWsPeJW6vUfV3kPaVUevtqsf1IqgjErJosnjg50JUjCDtRyaUUhPFEaQt1w3sLK08cmScD0vKEVKp74PiF51OEGvQhAEQZCDQXpVXhHlVeLKWmkNubgKIq5pEDlDXQdUtpDfClS39YJXqdq6lW3d4FXqjp4drwKXksQEyOKCVOxQECw1myaPC5TH+StZQTouLUvDzDWwc/Qs8CotJ4BaX0VdB8T1VYcQ9CoEQRAEORjUfBWvuFxsrpFW18vrmqS1jcKqOkFlrai6XlzbqG4lF61T69ZV5OKqXkVLp6y5Y/c6oLqjl1AwQ5QsGkiVlhuh50fquOGK+CBJtI+I4Q1elSaPTlMyMlQx1HwVOVklDk+R0Y0i/D7gYQS9CkEQBEEOBgyIrJwCblEZ5VXUfJWoqp6SKml9s7yxg0wTeR0Q1ErR0i1v7pA2tZNXA3e9irwXqCQWpIq6DqhihTgTpGIHJwrBoiKdC9XpzjuChsPWJApz3heUhvevOoSgVyEIgiDIwSC9Kq+QW1IuqKgSmGsgwqo6EdhVXZOkvlnS0Cypa4VIG9opr1K29ihaOuUtndR8lbarn/QqMCodj65ghkhiAmCr44breRE6bqiGQzPww3RcmoLpaxSFZigZqbJI8CrQLB0/SJXgn5uq2unImwl6FXoVgiAIguwCA2JCQTG/1Mwrq+SVV/IqqviVNdRMFXiVuL6JlKr6NnlTB3n/qvY+TUe/ur2HWl8FaqXrHiDXV0ljA0GnZHFBShZNz480iRgGPl3FCpLG+imY/ipWoJLllySJyFRFpzpnrRJFoRpuoJLth151CEGvQhAEQZCDAQMip7BEUEZ6laCiWlhVJ65pAK+S1DWJIfVNiiby9gqqVnLROkiVtnOA8irypqDOmyx8c791MCot+VM24VpOmJIZLIv1k8X5S2K81ewgg4B2RBOXo4tPlUVSs1bO+63jfUEPI+hVCIIgCHIwYEBkF5bwysyCiipRTb20vlna2CKubxbWNorqmkQNzaqWTlVrl6a9W9PeQ05WdfQr2rpkrZ26ngFtd7++b0jXO0ioeeGJIoYsLhAijw/KVLEN/HA9L0zHCwOpMgrCj6hj8wwJ2VpmijQySUxPkdLBq1IVkUVH0KsOHehVCIIgCHIwYEDklpazS8o4pWZxXaOwrp5TVS1oaJK0tova2qWtbYqWdkltvbypDXxL3tKh6OgRNXVIWruV3QOqnkFFZ7+6Z4jQi+hGYZQ6IVTFpoFaJUsYWnJlVbhJFJUiZaTKGOBV+UZOYSI3V8/O0jKztHEpMnqWLrY4C+9fdehAr0IQBEGQg0F6VXklt8wsrK6T1DcJ6huFjU3S1nbKq5TdvYqWVmlDo7KtQ9Haoezo0fQNyzv7VL1D0q4+w9C4cWTSMDhOKDkhBkFkooiRJInRcsOTxFE6bqhREJEkZiSJI5MlURnqmLxETlESP8+QkK6IThSFpqsYBUncivzknY68maBXoVchCIIgyC4wIAoqa4Q19bKGFlljq6ShVd7Sqe7slbd2Sls6dX0D8vYuaVu7urtP2dWv7hnUDU0qe0c0gxOqnmHTqNU0MqXtHiIk8f6gU6ny+AwVG7ZH1Kx0RVyqLCZNHpelYeYZOEXJ/OJUYZGJd0QdlyyhGwShen7IEW1cZWHqTkfeTNCr0KsQBEEQZBcYEEU1jdKGZklDm7yZvJmCopW8h4KyrVve0qXpGVD3Dsq7+zUDI/KeIWXPMHiVun/MMDyp7h5OHpo0DYwbugeJNDUTdCpbxzui4UBy9fx8ozBTzcpQUlIlLE2V5Bq4YFR6XoiBH5okposZHuqEwOIs405H3kzQq9CrEARBEGQX0qtqm6WNreKGdhX5+8p9suZOVVuvtnNQ296v6hrQD02oB8d0I5OynhFF76hx1GYAnRqx6LqHMkctOWPWrKExojJXaz6iKUtXZqoTMlTsTBU7S8NJEkeZRFFGQXiWhlloEmRpWAY+Tcn003KCjMIwJctPwfTLS9PsdOTNBL0KvQpBEARBdoEBkV/TJGxsE4FXdQ6ougZlrb3qzn5977Cuawi8yjBsUQ9M6IYtit5hzcB42tR0yvBUyvBE5shk0aQtd2jU1NhMlGQoK7N0RcmyRBEjRRaXJIlJlceTS6yEdAM/IlPFzDNwwatSpJHJEnqanJGpiktXxhqE4XlpeL/1Qwd6FYIgCIIcDBgQeTXNwsZOYXOXrHNQ3jUgBbvqHYEouwfV/SO6wXHNwJhheErbN5w4NJE9ZU8bGE3p7s/o6c9o7VCXlCaYTESyIj5NwUoURUti/EGtkqWxmeoEkygyU0VeCsxQxieKIpSsQCXTzyQKz9Gxi5OFeUZuioyBXnUIQa9CEARBkIMBAyK3tlnY2iVo6xF09AjaeyU9g6qBEWnPgLirTzM4ohsY0fcOJg+NJfYOpg+O5U5Y0jq7jPUNysIiYXp6tFwaKeCSXpWfKE6VM7XcCKOQnLIyCCINfHqGkp2tTQCv0vNoBkFYrj7hiJqp54VpOTRNQoiWG5qXhvevOnSgVyEIgiDIwYABkVlVz21qF3T1Cnr6JX1Dkv5BQXe3uLdH1t8n6eo09PRmDg/njo0f6e9PbmnRVJpFOVnsRH24iBsr4XMVIqlGSqSp2eBV2Tp+kiTWIIgyCqM0nDA1m6bn040CerKEYRSGp8ljKjLk5emyZEmULM5PzQ42CiMLM3Hd+qEDvQpBEARBDgYMiOyaJl5LO6+jm9vZKertk/T3S/t6FYP9ioEecVtTSk93enurobZGUpDLTkmM0SqjpIJIQUK8iMOVcEVygUIpJFKUzFQ5M13JNoljNJxwPZcO0XLCdLwINTskXRGXqWalSGNArSB6Xpg8zj9dwcrW8iry0nc68maCXoVehSAIgiC7wICYUNvIb+0QdnTx29sF7W3izg5ZV7tmoFs30KVpazA11OpLCoXpyUydIlomiBYlsCQcgZzPk7DFEo5MxlHI2IRREq3lRuh4dBU7VJ0QlihgmITRRkGkSRSdKIw8omZlaROSxAxtQrCKFahJCNZyaCpWiCI+OCcZ11cdOtCrEARBEORgkF5V08BrbhW2tQtbWqTtbfKOFlVLo6a1Xt1Urawo4hh18XJJtJATJ+KAUXHECUI5V6URSiRsqYglFcdLhXGEQRydKIrVcOjy+GA9PzJNxgSv0pE3Xo9JlcUnChlJEkaWJiFHx85QxqVIGYkiOngVL9w7VSvb6cibCXoVehWCIAiC7EJ6VVUtv75R0tysaGnVt7cltjWrq8rlhTm89KQ4tSyan8Bgx8YmxPJEHIlcIJZwxOIEqZQDUiUWxgp5sQJuDJEkj0+SxINXKVk0kzjmiIqTJIrR8yJAqpIlsZqEMKOQDl51RM1MlUWnK2IzFMwjaq6KHZaZqNrpyJsJehV6FYIgCILsAgMi11zNq65Rt7SpGxo01VXywjyuycBSyZliASMhLkHA4fLZQhFHKhMolUKljC8Ts6UitlgQL+LH8XgxXG4sOV+l5zMgOh49URSdKo1PFDAMfHqaHEQq3sCPTBSRkcf6y2L8jYKIFEmsihUqYgSk6eU7HXkzQa9Cr0IQBEGQXWBAZJeVc0vNEnOlID8/ITk5Vi5jcBNYXLZQwOFzmPwEJhSkIq5ECGFLBWwJGBUvTsiL5fPj+QImX5RAqBMiNBx6spSZIokz8qP0XLqGHaZJCDUKo7I0HJOIYRBEajg0abS/ihls4NEVcUH8CG9hpF+6QbHTkTcT9Cr0KgRBEATZBQZEXmGhsLAgWm+IksuihIIYLpvJJl1KKeJLuEypgKuUizRKiVwikAkTZGKOTMQS8uIE3DiBgCkSc8UyPqHnM4x8cpoqXcZM5Eep4kMUsUHK+BAlk5YoiE6Xs0yiGCW5UD1EnRBmEESlK9lGAUMRTztiUu905M0EvQq9CkEQBEF2gQExTqNgykUxPBaTx+QLE9gJsSJRglDIlkt4YgFbKuVJJByhkAV7JEK2SMQW8Zk8XjzsEYsTIAIhi5yvMnCiUiVxGXJWsijGwKUbeZFJopgUSXyajAm+peNESGMCVaxQNTtcwQqVxdOSxXGahIicZLwv6KEDvQpBEARBDgYMiNHc+AQhO4ETy+fEiAVMbkK0SMQSiJgSKU8gZINOgUIJBKRXgUWBV/H58TxeHJTBt2ALDwlJTJA6PswkYKSDRUniEvlRu16VoWCDWinjaexgt7hAgh3qIYoO0PIiteQi99DsJLzPwqEDvQpBEARBDgYMiDHsGGZCLI/HFHBjJSImj8MQi9ngVWIJF7xKIGCS66j4THK+SsKh5q54vHjYvzNfJWASCmaoKi40SRidreZCUsSxuoRwNSuUnKBikbezMvCjFPEhkthAUbS/NC5YL2BoOBGgVnlphp2OvJmgV6FXIQiCIMguMCCyOXEc52IpAS9OKmZyudFiaQJfGC+ScHjkTNWOV4lECVIpVyYjLwtCmceLoy4FwkNyvkrDDM+Qs0qT5eZ0dZ5eaBJGg1eBSymZNBUzVBITKI4JVINscSJUCeEaLj1ZwkyRsYuzUnY68maCXoVehSAIgiC7wIDIYkU7l0+x+PwYkYjJ5ceAV3EFcUJxAniVUMgUCOJ4vFiBIF4iYctk5D3WpVKOWMyCyrCVShMIfoS/ihkGXgVSVZ+bWJaqzFCwqWmqFEk8OJaKHSqJDVSwaCBVBmF0hpprFMbo+Yy8NPx9wEMHehWCIAiCHAxyvio+ks+PFQrjebwYgSiewyPnqzhQFrJ45OU/0qu43BiqDnmbdSl5X1C1WgiCBV4FewhZbKgyPjRFwixOUpgzdIWJMignCmJMorgMFbfAJCtOURWlKHMNklR5QrKMnaUXqVjhwij/ND3eZ+HQgV6FIAiCIAeD9CpmFJsdCfKUwI3iC2I5XIZIwuZwop1XAHe8yjlfFUdZFEQsZqtUAvAqSrMIMSNYzQpPFsfn6cVFJnmmkqvnRmkT6EZBDEgVJMcgzjWI84zSdBXPJGGCWun5MeBVqTq8L+ihA70KQRAEQQ4GDIhxcWGshEieIIbNIbekV4lY3ASGkBcv4MZDWSQi7QoKoFCUS0EZHIu6CKhQ8MjrgNqEKD03OlsjytGKoQAxCuJEjGCjID5ZwjaJWRoOQ8aKkLMjZSy6KDZEFB3EpftlJGp2OvJmgl6FXoUgCIIgu5BexY5gJtCj42jMhAg2JyohIZLLZoh4cVI+eV91sYAJ8iSXc+VyHmyp9VVQBqkSCuMhpFfpeTFpMg6oVaIgLkXCVrPoUE6RJhiF8XpebCK5jZHHh0viw1TcaC0/Vs2LkTHDhIygTBN61aEDvQpBEARBDgYMiIz40Bh2eAwrjMWhU17FS4gW8+MVApZcwJIIyUkpyqugADolEpFzVwJBHITPj4U9RLKEDToljQ5RxIUliZhgUVoOwyiI0/FiVKxINTtKEhfKifDnRQUqOQyDmKUXxSsSokRxYdmpuG790IFehSAIgiAHg/Kq2ISIeDadzY1K4EZxOFECXrREEKcUMpUillRErqDa9SqQKqdOkUYFZdjyeDGEmh2p50YL6QESRrCRH2sSMQ38WFArWVyYkkkHtRJGhzBp3uxwPzk7UieM18BhUUFxNO80I/6OzaEDvQpBEARBDgYMiDHxYSxuJCshMoHL4HIZfBAkQSx4lUwQB1uJkFyrTl37A7tyLq4CtYoHu6I0i8NhEAJ6gCo+UhwZIooKUTIj9by4RCELtvJ4uoYXp+XHSeMj2GH+HHqgIiEa9kiZkeBV8aE+KXrVTkfeTNCr0KsQBEEQZBcYEOPjI8CNeLwYCGlUonipmAlbkSBGwGMIBDFCYaxYzJRK2XJ5gkzGlkiYIlE87FQoOGJxPIcTSSTQvDkhvvywADGDpmYzjAKmgR+vYkWJo0PV3FjwKhmTnhAeAF4lZzPk7CheVIgwhiaOD89NN+105M0EvQq9CkEQBEF2gQGRw4oUcmMkgnixIE4kiJNKWHIpG0SKL4zh8sG3INF8PthVHBiVVMoClwKvEoniQLOgzOVGEdwwX1awNz8iUBFPN4nYKVIuSJUwMljEoEmZdAWbIYoJZdJ8qfkq8KqEiMDYYE9OZOCRZPwdm0MHehWCIAiCHAwYEIXsGCmXKReyJbx4IS9GLIwTieMFoliuMBrCF8SAVEEEglhwKadUxVGORXkVnx9NSKJDNQnR4FJaTkyyhANqJWbQwKv0/HhRbJg0ni5g0MCreFHBGn6chhfHZ9Ai/V0j/VyNKulOR95M0KvQqxAEQRBkFxgQ+cwoMSdGLmSJODE8dhSPE8UXRHP5DI6AwRXGiMirfnEgVZRXUVIFZZmMvCxIaRYhjY8Ai1IyIzQJUfK4MGkMjVzJzovT8eIEkcHCqBDQLBWbYRCwFMwoHj2ITw+m+xLsCP9kHd5v/dCBXoUgCIIgBwMGRB4nksuJ5PPAqOh8biRfECMQxvB4oFZkxGImhx3BZoUJBdESUSxUEPKjVQqOQsaSS5lqJUer5hHi2DB5XIQsNlQUFQQBwdKTd1iIEtCDJDFhIgZNQA9WMCOTJBwwLW54AMPXjRHozo0KSjXg9wEPHehVCIIgCHIwYEDkcCMhCRw6OyE8ARyLXKse67yTQjz5vT94yGOIBDFScTyIFBWFjA1eBZpFhTCIWFpOjI4breUwVCy6JiEKykpmpDAymBPmL4uNAMcCo0oUsTWcGF5EYFygZwI9QBgTmo73Wz98oFchCIIgyMGAAZH8fUBmpIjPFHBjIUJenJDP5HPi+Jx42HITIqXiOLWSo1JAEqCglLPBscCrxMIYKoReyDQKIHGgU+BVSmYERBIdyg3zZwZ7K+IjDfCskAUBrxIxQrnhgZzIQOd8Fd5n4dCBXoUgCIIgBwMGRFYceBVDIkwQCdhgVGIBWyRgCXlsIY8l4rMEPIZcytSouNS1P5kkHjRLJIiBAhgVbOFZIlnOy9HJksQsSqr0vBhwLHlcGDvES8QIdt5yPVLFBruK1/NjhVHB8cGecSFezFDfFL1ypyNvJuhV6FUIgiAIsgsMiAksBo8Tw0uI4bKj+QnR5C8DCllyEUch5qlkArEwTiKKlUmYECgIeFFCfjSUnXYVDVvSq5KkvCNqcbKEreUwQKFgSy1gF0YGyuLC4CE5jwVqxYqURP//2fuvJsmNLFEXzd1kZWYIaK21BgKhtVaptSjFqmKTTbZgN9laTstRe/aec+za+cV3IYPDs+3afeLTkPTPFp0ODwQCiXrwz9wdy2mHKZnUgSNggUytxt0vb+SbCfIq5FUIBAKBQHxF4VW2GHiK70qeI0IUuawiI4uMWmw2MufL7KC+nERaEqlRIKex3mp4rYa7G6yq16y9UKLrhtC0JIhc50GnXKbkseWAr0YSAV5VbMAcaA1L8Pmqx5dSna47UtNXj+bDL2/kmwnyKuRVCAQCgUB8BXSIls15nhDFShDyfshFoRhFIpRxJCaREgZgVCq4FASIVCO3m3WnkTu9Trh7GRAqe3VL3uWvArtqmGLD/PLdQPCqVKVznWtaAnjVMLZajpybbNuT2qEOsZmifZf/24G8CoFAIBCIrwd0iLbDeAEfJdLOq4KIjyMpiWWILAWvEuu5DQqVZxZIVb8bddtBlhjtZjFkNewn03G+1wutrqfVNC5T2ZZdzPr1fLVucC5Tqhl015cnNWuWO8PE6AYKRD/WB6kNXrUa9768kW8myKuQVyEQCAQC8RXQIaaZHkWKH4hJqkaxHIRinGjQmNWsbjts5Farbg970WSY9DtBv+OP+hGUvbbXbblQDnvhXs0Qc51vO8ootgehCUbVtIR+oHV9Fbyq40njzJzW7EGstz2p6QgQw8zpxdZ6grzqvx3IqxAIBAKB+HpAhxgGUuCLoS8/rZcqNgdsNYNGI2zVw34n6zaDbssb9ePpKO21C50CkYJKp+m0GzaU0FKsr3KZCqgVeFXP12OJSBUKvGoYmy1H6PpyP5IHsTKM1VGqTXNr0fSnjWBYc7cztL7qvx3IqxAIBAKB+HpAh1iP9WZqpYHWytxWHrbzuNfM2/VaI41bedJpBK263ev4/U7QzM1GzQCdatRMKFt1CwLUai9ROfAqj61mKvu0dJ2F2L0GCFLVCwqvGiWFUS1b3rYXnQyzYa2YB0Trq/4bgrwKgUAgEIivB3SIvZo2qJmNQG6ndid12qnby+N2FjfisJUFjczJUw1ECiKLFQhQqzzVuy13p1aFVzVsJdd5UCufwxqm2Hakp/0B1WFkdDypHyqjVJvl1rxhzxvWpGaMMqPpSZHKoPVV/w1BXoVAIBAIxNcDOsRlSx4mTD9mh6nYjaRWAKXeje1OZPVqbiuzv/KqWqKCVIFItep2v+P///Eqj62mCpPIZKpQ4FXz3Bun5jDW+qHUDcReIBYDV6k2ya1OqIYqjcar/huCvAqBQCAQiK8HdIjP1/r5kD/pssc9aVFnhwk9irl+yHd9rhNJ3dzMM735tHp9Nwk46Aa9tg9eBVIFLVDupRrvcxhIVSSSsUQFfLWmMYNInWTmJLPAq7q+0HTYlsuCVy2azlE/HudOZvLbGfKq/3Ygr0IgEAgE4usBHeKP78xPrvV3p/K7M/3FRrmeCBdjcdvl5jVyUuMGLQukqtN0Ok13NzoFXtVteTuvqhfKZe75AunQ5USmn1JYcRCT1F42PVCrliv0AmmUqONMn2Q6lNOaMavbk5odacxq2PnyRr6ZIK9CXoVAIBAIxFdAh/iTG/6n99LnD+rPX5g/fbB+dGv++Nb68Ex5seQeFtKmJ07a0rQrzzrKqClMWvKsrQ8ayrhj9utaJ5O7ubZn0RWQqobJ7zJXDUJ9lOggVW1XGMVqzxN7njDLjXXLHcVKP5SWTWee2w1bWA5aX97INxPkVcirEAgEAoH4CugQPz3Bf3JJ//iK/vE58dkN88tH5ef30o8vqM9vuD++dX7x0vns0fzhjf7xhQKy9eZIeZgJ5332qMNumuyyISybyl4oU6nCgE4tG8Gi7k9r1iQze4GcG3TXEwaB3POFrsf1AqHjcW2HHUTSODV6vrRF+av++4G8CoFAIBCIrwd0iD88w396Rf3kkvz8hvr5HfPzW/pnl/jPLrFf3WC/faT+8qHyp3cQ6p/e6X/+0P7TO/f3b/3fvok/u7Z/eO1+dOq+Xtt7kUKDV41ic92KntaqGxD9UGlY7LxmnfSiddPt+yJ41ThRR4k6jJVRrHU9aTVE41X/7UBehUAgEAjE1wM6xM+u6M+vmR9fEL+45355z/30Avvsovqre/r3z+nf3FX/8Ir8w0v8n94wf/9I/pdP9H98ov/rj7z/+CL9x6fhP35U+8un2W/fRXupztUNYRgZk9Tu+WrHEyeZuWi405q1bnlng3TVcLou3/P5UaL0A7Htcl1PhNiMO8tBcz3uHs8Hy1Fn0EzHncaoXR8UkRdlpz7sNiHGvfak356Pu+t5/2g9Ot6Mj1ajzWIALbNRdz7qz8f9yaADX+m1asNOfdJrHC2G59v50WI0HcB3W/NRdzUdbBcj+OLJanS0HKwn7eW4vp21zta98/Xgcju6OhpdbPon8/bxvHW26l5tB7enk+uj4dmyezRrrUcNiM2kdTTrLMfNzawD1zldjU8WI7j/41n/eN5fDOrTXjbrZYthfTFsTvuNcbdxcXr85fP+JoC8CoFAIBCIrwd0iJ/fCl/csoVX3bEQ4FVfXBO/fyn+9Y30p1fMn17hf3pV/csb4u/fZ/7+ffYvb5l/fCT875/a//Kp/r8+9//z5/G/febudUNjFNvTzBnFZtuRup4yq7mbTghx1A2POuEsM4ehMklV8KrdVGDdoIexNs2sjifVLL7hiJkthSoTm5Ir0QpT5fEDnihJNKawuMoSOkcZAukoTOKIrdTo1i0o81BNHMXTeFOgVQYX8BKL7ct0xVGoRqC2Yq0WqIHJOirt66yrs6ZMWhLp6XRisZFJO1LZFN4PlFLNIZoB24mEbizWPSrWSpFaajjkIBFHmTxMJWhv+mxu05lF1Wwmd9gahMc1A6UVqXVXzkyhboudUEkNypPKFv/MFQ9duWpLOPzidND98nl/E0BehUAgEAjE12PnVZ/f8j+7Zj+/Yb64ob+4oX71wP7hlfTXN+rf38l/e0P//S31j3fUP7+j/vyy+ruH/T+9LP3jQ/KfP6L/12fyf36u/vuP+L1h4k4zb5Law8joB1qxg01UTAVOMvN0kGw7wbxmLev2tuPNcqNYXJWog7CYChyEasvm8yevanhq3VNzVwt1XudwiSyJZAWkShcoU2SsIihPYzNf6tasQcuBshFreaAFhqCxBI8dcti+xmKRJbYSa9qOxk2vGeuRxfkaGxicp7OWTFgy7uskeFVsUZ5cscT9UAWvwkc1tZeAPDGpicXaIahVzaw2HSLTKy2X7MViLxZyh451LNaJ2CQboZg6TGqxdR++pWQmn6h0ZtCdUEoN3BUPwKt8FfdV0pbIce+bNN2JvAqBQCAQiK8HdIg/ueJ+ClJVqBX9+XUhVb955H/7nPvTSwG86u9vhH/9UPj3j8R/vKH/+Fj53e37v79/9qfnh//8Ifk/P2H/56fsP3+M79UsqeWpDUfuuCBMJnhV0xIaFtsL5FlmzWv2ONHGsTbLjFGk9ANhkmnrltfzpUwlahrVsMGrhMwUUrATU4x0wZFZnSVkBldYwhAYW+YNnjIEwlPZmi/16tao4/Xrdjs1GpERGoJCY2xlX6bLsSX1cn/SiUftYNh0watCk7UVEsJRKfCq0GZjl009PvGYyMB9rZxYWCNgpm1rVNe7EVd3iNSoQORGpW5hLZfqBmw/liDagdDw2Nzl6h7fjMTEpmKDrjlczeJ9CXeFciBh/QT8TG6FXO4wsUGBV5k8Nuw0vnze3wSQVyEQCAQC8fWADvGHF8zPboTPb7jPb4pF6zuv+s0j+/uX/F8/kP/lnf6fPwz+rx96//ah/tdXHMTfXkNJ/w3iNQnx9zfEns1hkUKHMlU3BPCqnq/WNKZuMqNE7/vyNLOmhVGpEMNQHifKsmmvm4VXNUym7fLgVZFMBDIJflZ3tVZgNgI7thRb5lSW1HkaKgZHmwLha2wjUsZtbzGM5/1o1PK7mZ3YsspgfPXAEslWbE87McR8kPRyM7ZZW8UDk01cKbQ4U8ICiwltJoYA77GIxMabITvIlX4mD+vqOFe6EZtb1ZpZ6XjkOBWWTWOUiE2HbthUJxQGidKNlVYoDep6I+RTi4k0wmYOFex7Dl9quvwkN4+G4fksnbStxKRNviRTB/1W/uXz/iaAvAqBQCAQiK8HdIifnrNf3EufXdFf3LK/vOfAq379yP3uBf+n19Kf3yh/fqn++8fB//4k+Psb/Z8ehb++kv/2SvzjI/OX58wfHog/3uF/ecnseSKZGXyisbnO93w9loiOCzrlLBvBLLNArbou33a4psV0XQHUCg7nuQUtbZvbdsJp7oQSFmt0w1W7sZMYYqhLdc+MLFUiq1y1bAi0TGKuzHoqWw/U5SAdt91ebpwsWmfLXjdzbZFWqKqvceNWvB7mo2bQy608kGuBlHqCo5CaWHENOvGkwGZSX8x8PrTJ0CIzj677bO6SvVRs+HTLoweJOIi5pks0HLzjU4um1o/YpkNC5DaZaNXUJFuB2I7FFK6gEa5UlvHvKcR7qUb2E3Xd83uJNO/a46YRG4TO7ov4+4vRNymdBPIqBAKBQCC+Hk/jVdxn1/wPjqu/eSH//JaG+O1z4fMr/Fd31N8+1P/0Sv37h87fPjB/dcP88oL83T3/5xfy7x74P9xxf3gu/P6W+c0tvecKBHhV3ZbqhtB2lJrG7KQKAqSqYTANgwKXGkbKLDPHsdY0mXGs9gNpEMrbTrBoeoNYmzWjRTvpxU5qio7IuBLryJzB0ypDQTgi7ylCM7L6uZP7YuIwk7Z7czK6WI8agaHSVYunWrENR8tBrZNamSPGDpd6PJRgVL7Fhg7nmQx4VeLxtUDMQ6ERis1E6iRyJxEzi8gdohOw3ZBrWHggvucL30vUg7ZHNuxq3cQaDlG3yVSvJgZRs2lfLSnUnsUdJCZlMgfcwV4gVZZtb9l2xrk6ypVRQ89cxhJKjkzOR2jdOgKBQCAQ336gQ/zomPz0FAL/+R33k3Psixvqdy+En9+Qn19Wf36N//aB++ML8de31A83+x8v/sdPjstfXOCfn2M/PSn/+o7546P4+0eh2Hc5lqhMZUOBaNlyz9fnedAPtEFYzAMmEuazh6mMt212FKtgV3WD6rjcKJYnqb5uefO6C7Ed1KeNcJB6dUc1OULEyipN2pJgCbxE4J6q6CzdCK1e3bNkLLKZ40Xz8rg/bIWRJfq60Em9Wa+2HNbHnbCdmrHNp67YiLQ8UrNAbqZGLdEsg/RMcCwqcbl6JLditRXLvUQd1IxeLHZCvh1wnYjthWzHpxsWlmnlVC3V9ErdIlou3fH4psfVnacXA20isrC6y7UCMdbIQMG7gbxsu5uut+25o7qy6Nj9XM9srhmby8k3aRtE5FUIBAKBQHw9oEN8GD57GO79+IIGr/r5Lf37V/I/vdV++5z7zSP782vs14/E71/Sv3nEf3px8OPT9356efiLm8oXN9WfX0GJ//wS/9U9sxfJTE3jdl41q/mng8amnTZMvuPKw1Ct63RNJVsW13X5QSD1PKGmEZF42LKZYajMa+Y4NUaJPs79ui31U7fh6rbAiHhZInGDY3SWkUgC7MqRhG4t6NY8W8brkXQ8by0GWerIgc5lrtbLw2EzGTajYTPs1Z1GpDdjo5077dxqpnqrZuap5lp05HC+SQcGnXpczRVTh236ci/V5y1nXNe6sdD0mW7I9GOuC2plYhBtl+pFfD8W+qkyyvVhTe+m8qBptDOxHUnNQGi4Qj8xprnZj+VZ3Vi0zGEuDXOlFQu5J9QjfTFG84AIBAKBQHz7gQ7xzRJ7t6p8uD784Sn2syvyty/EXz2wX1wThVo90L+8r/zhNfHnd9yf37H/9Ib90zvuT2/4379mwLc+vyl9evy9H58929OJw1RhG6aUyPQotkGqIHKdTRWqZQkdR1rkztkg27bDcay3LCYWyw79vUQut2y2mBlMzUGkjTK35alNT0t0yZE4MCqFpiQCl0lKZVidF3p5tp0N2plnFq/1cZ3caSRG5queLlgyZ8o0VOqRAe1ZoEAl9YqylVmxL/u2ELoSRJ4YUPom2BXjaYyrkpHBNwJl3naPxvHpJJ41jY5P1y2s7ZD9gB3FwiSVxpk8TKRBqkzq5rRpT5rmYuA3omKwatHxVp1oWnfmdWvZcuYNY5Iry57Zz8S6z3YSNYU/f9z/8nl/E0BehUAgEAjE1wM6xE/PhB+fcx+tDj/dln98XP75Ffn5FfGzS+x3L/jfPWe/uCr97jn+l3fcPz4S//lj8e8fCX99x8PhX98J//hI/qe3/G9fkMV4VSRSHVfLVBaiYYrLRtT1lFgiYhHPFAp0atMKoKzrdCSUPOZZTcOaFtXzhFWjmAQcpcailUzyINFFR6BMjrFFXmcZvloRccIUREuSwau6tcRWWV3AXIPxTNZSKFOiwKgshdN4UmYq0OLqrCZUIluCCpS1QHdN3tSowBFrsZEnZuwr4FWWSpoiZghVRyZDg+kl6qxtHw2D7cCfN7RBzA8jfpzAH6LPc3WUyv1Q6oRSL1YGmT7KzXHbGjb1VS84mda2/WRVJEH1F0173XGmde1kGowbWisShrmVufJ6NvryeX8TQF6FQCAQCMTXAzrEj4/ZT46pn10yPz0nf7B+9tlp5Re39C9uqd88sr+8JX/zQP3+OfPnV/xf3op/fyP+5Y3wt7fiPz5W/vlj5d8+1f/5B8pfvy/uJSpX0/imJUNZN8RUYXZpQvuBVlNpUKuGwfR9uWmysVgNuAPwqrbDDCNpkhSJrOZ1Z5KZy3YyytzUkGyOUEjcYGmDY2WSUCjaEkRTkE1ZVniGpyoyj5kqpcuEzFcYYl+gq5YqOrqoSaQiVCF4et9WKEdlY1dNfdW3hSepMhuZE3lS7MuRLToqbYkEhF0EHmlYbGANj57U9U3XXbasWU2BOOp681wfpcWehp1Iavp8K5R7qdpKpVHLmLe9fqq1Anlcs8e5mTt0P5F7iTDK5W4i5D7TKJbYS2jdOgKBQCAQ3wWgQ/zkhP/JBf/5Ffvza/bj1fs/3B788o752SX+k/PyZ6flv7zS/umF8peXyl9fq397pfz1lfwvb/X/+KH/Ty/5P7xkf32H//YB3/N4IuAJpfyeVn3WMKWAxxOZ3u0YOAz1psn3PGlZd+c1G+wq14iQP4ylUtfjxrG6ajizIsGVM29GLVdrB5YvMTJRkZ8WV5k8p7OMyrASw9DVqsRShszydIkh3lfBijTWNSSOLNNYSRUYUCs4tHUOBEvjcVfjMt9MPS1w5CwyW7mfJ6Zn8Umg1gItdqTA5EOD9zXWErBAwRITByta9fzNIFx17KOBf7Osn4zCRcuc1vRpwxzVtJbPgVr1EmXWc+shl9hU3WVBnjqR2o1l+Kgdi71MbgQ0lO1YShy2EemzUefL5/1NAHkVAoFAIBBfD+gQ367JT0+Zn11zv3+t//y6yLPwh1fyF9fkZxfFwNWfX6p/fJT+9Fz6yyuwK/kvLyXwqv/1I/8vr+W/vZX//Ir//XNyD9/bY7+3p5X3Q47IZDbiSZ+p5io3DMxxbHYcaRiqm1awbYfrpj/LjL4vjkJ5VbcvBrXzYW3TipaNYFzzwKvqjmbQVUdkTYHmqgcqS2kczWEVGiszRFXkSE3mVIkWuarAYhJPQF1gCZ4mBIYUWUqXBUMReQaXOQo0y9Ykz5QDW/UtBUpQMUOhXVOIfQ1MC8rIljNfbyd2YnFgSO1QBGca5ca8ZW/6wfEoPBlH65676Xvni+xsns471qiuTltWO5HrkZC4bGRSIE/1QILIXC7Q8dznW4mS+wJ85JtUYDHLKVq3jkAgEAjEtx/oEB/Hh29XlS/uxV89l3/zXPrVA//7V+qf35l/eKWAV/3mOf3b5/RvHslf3mK/vKn+7p7+2xvl3z+x//UjA+IfH6p/fyfuyZV9nyVTiUslBqQqEemOrS7z8LhTWzfDhsFlCjGKtNN+ejmub1pekcsqkECtFpm9rLvLur9px+tuNs6DzJQl/NASGUfmZAYzRNoQWIklSeyQozGQKs/WQs8MXC1wjTiwfUdXJVbiaJAqgaFlnlMEnqcpgSYMmddE1lJF39Ii16wnXuKbusRocE2Fdgzes0SIwJFTTwl1uumLg8zqREpq0oFSKfJ/hnw7EiCGubbqu+uBN20Z4FXDptap6c1EyTyxyNvu8KnHRxbnarirEr5JehplK1VTwmwVtxVyOmp/+by/CSCvQiAQCATi6wEd4v3w2f34vdfz/R+dE796lH7zXP7dS+UvH1r//Enwr596f3wr/e4188tH7Bf32O8eqT++4v7ptfin18JfXot/f6f8y4fqv7yT9kKJbVla29YzlfNYLJGZceJuO9mmnXY9JVWoTCO7vjSMtWnNWjTsed0aRlLX43qeMI7VRe4cddNtP5/Ug0Tn+ep7Cl3ROXznVarAgFdxFA7yZGly6FqRZ4NUBY4Z+04W+aYqyTwDATrFkgSUHEUyeEVkSJaoCDQOX38avpJNRTAVTuFJicVBsFxT8G0JIrSE0ORSm6+5cs0VE4sLDTLQCYhGKHUzddyyZz133LZ6udpKxHrIFVsTJlotVBNPiD0pdgXf5EwZC23eNShTIQyp6uoMHIa2OJ+g8SoEAoFAIL79FF41Kt0O37sffu/14tn3t5VPTvEv7oQ/vDH/9oPwH5/4//jY/PM7+Xcv6N88kOBVv3tgfnvP/PqG/O01+afnzF9e8X99xe5lupTKPEQs0ZFINUxpknrzPBhGViwR4FUdTwSvSlUCYpxqp8MEyrbLdl1+lKiz3J43A5CqZqgnlihThzJVlsiSxpORrYIPKTwjMCR4lSaJYFGGIqsip4rFlJ9vG9DO0wR4FegUWa1QWJXGMQFaOHrnVRxZpaqHIkNAXRNZmSNEBoNSFSiZx8CxFLaqsRWVKWtM2RRwT6F8nfFV2pYJgysFBl0v8rOLUDZiuREKtUCoxzpELdBSX84CECwtceWg2IKQ0ISKzJQ0oepoTGAJnsFPh2h9FQKBQCAQ336gQ3y1JN9siNer6uvl4avp+y/G/+Pt8tkPz8jdTsx/+77+bz+0//OzAOLfP3H+/k79y2vlz6/l31wRv7+j/3jP/P6O2IsV3qbKDl0BqWrZyjhxZjV/krqj2O64ct3gmpYAlabNtV0BLGrbDSaZntt03aQ6odiL1F5idEIjtcXYFCyRcmTOktk8cJfDXqeeeaYGzsSSBEfRAgMWVSiUyHKgWWBXuzEqqEscyxA4BLSAV0HQWFkEIWMpjsQ0kTNkHixtNy0YOgbUQa1UgTFkFn7O1YTQkKGEGzBE0lXo0BJ0ruobXOKIxciTyYFF5YFclKGeRXoS6LGvJKFRi81abCWBqstwJ7iu0LbOepbkWoKlcWPkVQgEAoFAfAeADvHdifDDa/XdMf3JBfvJOf1mXXoc7T0M9l7Pn328LX1+gf3xJf8fn7j/z+fp//Oz2v/1o/B/fuT+2/edf3lr/uON/peX8j89cnseTwVPrwTWNH4QWtPMA6MahOYwsoaRAV4F0fWUfqiMEn1edxYNd5DokYJ7Qjk16YYn1X21EWg1VwGnsUQmMOXMs+f9zuV2Pep0IscBl2JJisYJCsPJKgYBhzIvqKIksowuS65pmKoCdgX1wrcEVuEZkCpwssi1HF0JHXNXAalqpFE7T+pJkIUulN1G1qol0FgP/dizY9sIbD12tNDRoEx8M/P1YjGWzvu2VLxI6MixX7THngHnRK4OdQioP0VxmIVO7Ju+pdq6NB2jfWwQCAQCgfj2Ax3i6w3/6bX6g3PhR9fiZzfST674T8+oj7bVd6vDd8v9Hx0d/Gjz3k+O9n95if3Tc/Hfvm/970+C//xh+P/5Sfqfn4b/8QPvPz5291wOj0TqKeW62PW0nVH1A6Pjqk1LyFQaykGoDyJ1GGuz3AavGmWuJxIGXYoMrhnqrcis+1pkSiqDKxThKGLmOaNma9xqB7qli7LICBzJMjhNYxRRxvESBhVo1CUN1MpUNUvTVVEAo7J1xVQlR9M8w4hddzYYrKfTTp7XwjC0bYGiimQNkuQaKigXlL6lFy7lupamqjwPF4HvFpamiMVy+KfXDEWGEDlS4WlDFVxD8WzNNmTXUiEcU3kK1dJlXeGh3dIl2ygaTV1SJU6VuckIeRUCgUAgEN9+oEO8n5AfrJmPToSPT9gfnvOf3yu/fmn+6oX22SXzyab0yxvmZ6elTxbvfbL43henlT89Cv/+fes/f+j/24fmv35o/PtH1v/9o2DPE0mLLMVSkbMK1AqMatmIFvUQKg2TjyWipjHDyJjWrN1g1bjmTBuRJ7MGi+euPqiFvdRPHdUSizTrEoHpPBvoRuYGtqTiz8pMmRAoDrxqFyzBQIBUaaKq8LLEihAcRePlEkPgisDKPENVKhLDgEhtZrPz7Ra8CmyJxXEwJ1ArqPAkKdI0R2J0tUpUygxBsiRVXJ+i4eJwuAuQNoljBaaYf4TK7n1DsDeoaBJvKLKhiLtSLt5DJJ8+YuBMiWdEFoJSRGE6Hn75vL8JIK9CIBAIBOLrAR3iVR+7GVYfx9ibJfXDc/GLB+2Xj8YX98oXN9LPr7mfnmGfX+C/vCQ+P8d+dlz67PjwF+fVX9+Qvzyv/uqG+MtL8X9+4uz5EpmpbCLT08xrOwqUR93aJHVjiWpaAkTbkUaxOc2cjit3PWXZTuadRmToCkVEhjbt1Af1xNfEYk9AilAoUgKhoRlbUHRGEjFOJFgWpwv1AePBaewQrx5gHMlbqp34aS3KwKtAgHRZ2qkVSA+cTGHgWGIShFkUm6omceBDMgQ0iiy3m1j8rzVbLFkhaJLhQYdYgaUFCo5wCgIaCYxkaU7koZ2h4Ss0w4B7wdeZog4/JQmiLAk8KB+BwQkEXsWrGNThU1Hg4NN+H70PiEAgEAjEtx/oEG/GzPWQuOqWHkbYuzXzo3P5Z9faz67lX9xpv3tp/upO/PW98Nt74Tf3/K9vmV9cUb+8Jn51S/78ovyzi8PfP1C/uK7s1UyhbktgUaPY7nrarOYv6mHP18G0fK4CIgVS1Q80KMeJBZWWq/WSxJUVvoqZPJd7TqirKk2CVGkMZQmcxtAiTsgEo1Kcwcq+YsksX3gVWcz9ceBXZVKgRd8KwKsgHN2FdlAlCquWnr1P48XqK/AqcCZdVgxFBXOCr8MJlqaDVBFlnKhUeYoDxwInA12jSW4XDMXvAuoUwUKJVyk4BN+C+pNpQTttm44iyRwDZ9LgXqBTIi+ZugEGBvWn0yj4FGxM4MReF3kVAoFAIBDffqBDvB4JFz3qvINd9arPJ9TbNffxkfDpqfiTS+Xnd/pvX5i/edR//aD98k78xS3/yzvuN8+F37+Sf3lH/fSy8sU19qOj7+2BVLU8NZBIKCHGNW+Q2G1fywy+6cJHcsMRodL2lV1lVPNjXVdIljo4FLCqybMSgfGVA4MlFbKqM4SIVeiDZ1ypJGGESrKWICo8Q+MVliSKiTlWBDHiSN4zfd8KoYy9BCSJxgkwp4P3vkdWKzIvgGkJNL8rd7OHcM5uxIvGGBqjGLyYVeQpoQhWogmeqDJ4hSYxFuoU/AIGNidDHUpJUIt1VhTP0RJLC6psgDDBtyRBhsZqGQMJU2WNxIvxLVAxUCsGfhfEi+Y7bbQ/IAKBQCAQ336evEq/HinnHeaiS90MmMcp/8FKfLeRP94qn54qP7pUP7vVfnFv/fqF/evnxq+fq78u0rLLv3+l/Pye/vyG+OHxsz1QqIYjg1flllgzhX5s9SJzlLnQPq173VCrmVxuFY6VGWzdFmbN2OZ5EaPow5JEFPsAylRVo6uJJZo8prMVhTrUGcwXOZMmxHKJr5QEGi92p+EZVRQ4iq4eVKgqrQqaKuiaaDi6K3NKIUk0Q1YxgWFlToLYDW7tjArsCsrS+2W8RIBRsQQHdkVWKAj6v/wJpAorUxBQ2YXAKgwpQKmIBpwDUiVyxbuGu5EtgZNlUQPNwiokBE2yWIWoQpQJUCvqaRgMynYL5VlAIBAIBOLbD3SIRz3zbGheDM3LoXY71Z8vzQ+O7HfHzput+cFWe7UW3x0rn5wbP7oyP7s1P3/Qv3jUv3hQfvPa+OVz8RcP/C/umL2dNiUaDZVIIcGfepG+bEdgVOBbk9wf1zxwLJCtYeq0PDXWOJNlRZzgKmWdpUNNcGXKV+lOYnQiBaKf6otOtGiFYGkWXXEkUhUJz5Yi3zA1kSFwvAxeRXIkL9CSxCoCLZqKBSJFVKoiy8m8AJ+CThUTfGBvGANnQkCFqjJ4iazsY1AyOMeRAlmh4ZDE2N0AFVFldmoFFWiBALsCtQKdYikR3AvUCg7hRxUebgWEsLggXIqnRI4SyCoNF4RGcDUafwqMaTWRVyEQCAQC8e0HOsReqg1r2tEgPBl6Z2Pveuo/rqNXR8mro+jFxv3gJHh1bL9Y6fcz4fmC/+hc/ezB+eKF98Wj8bN75Wd34m9fGnsgVQ1HrNvCzqug0vJksCIQrKarjDJ3p1azRghelRm8KxAygbHlElM6MHgiNoVAoyKT6uXqdhRcLGuPJ91XF+OrZaOfKE2Pm7W8eqz3u3G/k/qOytMEqBVPgcoIxS7MrALuYqm2xIrlZyWQqi/XoWNP7/c9zfSJjATutfMwluBBfUCGIKBCV3kGEyqHBPgTeNVOraAEeeIZeadZO6+CEjQL1Ao+heuAV4FLYYdE9QCMTIAWqko/iRQLXgVXJsoUXiKwEtHIW7vH/Y0AeRUCgUAgEF8P6BAbkd2MzH7NHdasYW5OG/q6557PgqtFfDn3nh+lj9v4bmFfjtW7mfL22Pzkxv3hjfOTO/uzW+MnN8pvXjl7g8QErwKpSnUGyravQDnKbPAtMKpBYndDA+xqWg9AswKJjFRWqB7Spfe58vuORNZcMXXoZsAse9bdUf72tv+Dx/G768HjUf1sHBwP3MtVYz2trRbtYT8NXEVgiSLHOsWBLamCDnIDTqMKGigUg9PFUnTuywVVIFIgVWBUECIjg4HtBpZEWgWXwg6o6j4JXgWHT5pFQBBlkK3dEFehSiBh4EnwXU004OvQCC2gTRBQh9gpFJRwhdL7FbJKExXQKXLnW0Uc4sirEAgEAoH4LgAdYi0OUt+KXaMWGM3E6mTmqOktBuFqEC16zskwuJxF17Pweu49rr2359G7C6+wq0vnx7f2j6/0X7+K9lqeWLe5WCUiBW95MmhWrFK9SK+ZAhjVrBGOa17LU6Hei8xEYw26LBJlAS8pdCWxhF7NGNTURUe7P669u+n++PX00xejN1dtqH//bvD6onV33L48G66X3XYjdEyJo4qU66BQ4FUKr5FlVhOs3XCRrhqGrEOAV1FVcidJu6Ej0KOdJ4FaQUClmLkjJKrC4Yc0fAonV/ax8rMKKNFOlXbyBGfKnGrIFnjVTrNAm+C7UN9dDS7+9MUqWBReJot4GgwrokzCRdottG4dgUAgEIhvP9AhurZjqIpvm7XY6zeTabe2GjVX4/p8EI+azrztbXvhUd8/6ttXs+DVSe3Dy/rbs/iDY/cHl8Enl94vXtX32i43iKSmTTcsuhfIg1BvO1LdEOqGWDPEjm9M83DZTkaZmxmsxRzK2PvUwTO6fGCJTO4pg8y4WuYfP4w+vu99cJZ9cJ68vcg/umuDXf3g5eTtbf/xcrCetzugfIaiyCLPCgRGc7TEM6os2BQuEVVBYA2JNzhWlgXdtQNVUKoHFbxEgAwJlMLiIpRPI0w8WQFtIir7oFEUCBN4Vfl9nKVkhhTwClsGN6qwHK1AC1QqhxRWZhhSEjkdAn4RPhJY7el8icR4+LR4TxHjn+o0gXH771VKBwRLSSwtU7hAVNlmA62vQiAQCATi2w90iIqiWqZZT9NOLe3lSa/mj5rRrJuNW3EntTaD2rqXnIyzk2E8a+izunY9S95cdB+3tRdH2fNt+rDw94ax3Pbojs8MY2WS6V1PyVQ6U7mWrYBRjVJvmLjD1OnHVsMRA6lq0CWQKqZS0lgiNvlhpl3O4pfHtefb8IOTCKztw+v8Bw/dT54P3971rrfJcuz7rqhrEokTRJFxs3hr78lsFJAqEhPBq4gqR1QZ+OjpNT2xyLPAchItFQNOVUGkVYnRGJwDlwLf2u2H8/RWIF/dJ/FDulqiQYyeNIiDOgTYEgTI09PGzTK41E6naKLYyhlKiK9OhgqcXHyryh4+w8qHJFyKwnnQrMKr6sirEAgEAoH49vPkVbplOWkYdPNs0m2MW9koDwc1f9iIJq14kHnLXnq56JyM826kNlxulhsng2jTc8/G0c08Bc3aWzSseUMfJmIvEAeRXGT+tIuRqtyUWq6W6UKssLkldkKjG+s1m7VFXKKrCkNqLBbq7KxpX0yjq6l7OdLeniXfv8x+cN/65LH3/bvu3XE6aYmBiVH4MxL85/CwXK7i1eJlPZGRnzyJFmipSLJAFHvXgHAVy87xiiZy9SRsRqkp6yave7qvCwZVpniCxw/w/3pDUKCrfPl9kiwXo01PZlYE6FH5gIQS3KgYA6OVnUvtpGo3NAX13eHOqHZfx8pgY0zlkMTKDLTsDpFXIRAIBALxHQE6RFUzHcfL07SVxt08HtaTUT0CneokTid1xvUQvOp02tqOsmnDnTasZdOeZPrxILhe1B43jftVXnjV+SQGtep4XNvlekGhVm1Pbzoq2BVIVSjRRV6rxF50onnb79dc35AiS/cVLncE0LTbZQJedTuzPrzIfnBTB6/66K79wWXrYhE0Q0Ig92iizLIsjpMYRhAYTRGsyEhkhcIOKiLNOrJiSbzK4CKxL+DPIHLf2E76s07blRWTkzzVMHiFwShd0OkKDYJFlCkWF3lSre6z2AGnyR5Y1OEzHIwKPAkkCcQIXEoRLfAqqMOnO5faDVbxjLqbE4R2+HTnVcXAFVZo1q6xckiBV1E4j+YBEQgEAoH4LlCMV6mGbbv1NKtHYTP2B3kMXtWJ7Jqn1Vxl2c3Wg9rRqL7up6tOdDqpn48z8KpFy7ycpa9OOh+c9fYmmbbtuau2Na3pg0huOHyRBdRRe6FVM+RMl2KNizW26amThrfqRYteljp6zTMTS2wFyukwBq+6mfsvt+G70+Sjq9qH1/kHF/VX582bTTaoySq/T1MYx4sEzmBVCqsUCc05ksUPyzyGO5LQid1pOx7lVtPnGy7TCcXNILtcDMZ5YNBVvnIgE5hMEgrNSSTHVBkO54kDmizzAmVgJbFywCuiAyb0f3rVTqR0xRVYDeo7l4L6zqjArnZrsOBbcD5WZkCqSvsECVeucrtxLDjEyjR4VauB1q0jEAgEAvHtBzpESdZ03fQsuxb6g0Y2befDWpC7KnjVbrxqM8zP553NsDZv+UeD9GSczpp2x2dOR+HHt9Ofvzvbm9fNeUOf5uo4VUeJ2ovUlidnBh/JjIaXXI5MdNAddZA6s1YwrrvdyPRk1pU4TyRzi13U9dO+fT22Hpbui5X75jR+fZo+P8penbVfXPRWozC0eQLDSYqvlMnqU2ZzvITxJM1WyybP5p66HdYeT/rPj1tX8+hy6t2t0qtZfj1vrNtB0xUSjQ5k2pUYVxapg0Meo1VOo8scdsAwmAJehZfFaulpddSTUUFZjDxVOZAnTXbAosCrdpr11XgVHEIFDqECZ0KAWlUOKfAqrJj7K1rAqyqHYGkMGq9CIBAIBOK7AHSIgqgoiqorauzYvTyZdeqzVtrP/d0C9kkjXHaT43HjeNI4mzTutoO7bXc7CHuBcDIMvn89/sWH53ubjrdoGuNM7kZiL5ZHmdmL9Eihleozqbpvc0Ruy+M8OJ20L5fdZTduuIotUApZttgKeNU0U0775u3UuZmaz9fuByfRq5PsbpM8nrYfzwbzXmgrFF4lcJwvHZIEzhZ78FWqIk3LNGHyWDtUz8fpi+PGi6PsYe0/rpzHlfd8k90vUxCsm3kKArjpB/N22E0dW+RVhldYBbyKKHEMJmElgcTEw2c4iNHOnyDAnHYWJQvmbrIPWr4yKvLpNUCofNWyCxIrRqoqpeIVQjgH5Kx8QIBmofEqBAKBQCC+CxReJeuqauqqlgTusFlbjzqni8Hpor+ddBb9+nbQWHayZS85Gtdvt/13d9u3t8vrVXOcaeuOfbPMXp/39qA2zeVZXZnUtVFN60ZSbvG+SJhU2RNpCF+i6o6y7KQX8x54Vd2RQ03Q6GogkaNE33acu0X0wXEGPvTqKHp7kb8+a9yu0ttN+2LdaSU6Vd3HMRrDhHKJoqkiVwJRqogkLlPlROeWHe/xqPnypP76OH5zCtfxHpfWD66aL7fhi03wuIluFsHjce3FWf9y2Z61a56i8hiNHxB0ledJGRyIeJr1g4AK/pRkQZMdVbL5Io+DCSUIFpRf5VmAOHgfA20CeYL46usUXqxnB6+CjxhSJKpssYa9wrSbvS+f9zcB5FUIBAKBQHw9oENUdNswHUPTO43a+Xp2d7q8OZ5fH02voTyeH03am0F9O8w3w9rRqHaz7b++nL44G6073lHfu1nmL087e3frxrSp9lO+G/GDVOknSt0WAplyBcJicQU/dHi85ev9xO5GZu5JkcGZHOVKXC8yj/vJ9Sx7vsnfnuZvTtMPzrK3F43HbXYxz04m+agRuBrHkhhDiyQpM7TMsTJLcOBVPF6xRCrW2LNp7e3V8PnRTsv810fui7X1sNDfnBT1N2fBy5PgYRu8vmi9OBuuBnndd3VOZLFiw5kiuxUHalWMMB28T+AVXhZsibd4Rhc5E+ospdJEkdCBozWoU7gEJbRDC1bmSEwUWOO/2hWGUvAKVy2zcB0KF8liexy6fEA10PuACAQCgUB8B4AOUVR00/J0Veu16hdHy7uz1cP5+sXV9uFydbEZnS0H61Fj0Uvn3XjVi88XrceTYipw2rTWPfd+03x11t27mCYXi2TVs4aZDF41SNWmK0Uq44mkzREmgwUy3XDVbmQNUqcRaI5ERLqc2fok90+H2dkwvJlFr49qr09rV1P7+VHt8ah5Ns1GDS/QBZ7CGIIkcL5S4SpluloiqSrN4qRAVEXisB3oV8vmm8sRqNjtwrtbusWmhsfeu2P/w1PQLOPdhffmzLnbmK/Oaq+vBo+n09Wgl/uRwirYIV5sXIORlVIxCXj4jCSqAkgVGBXY0q6EAKOCgEOQrV2uLJAqKMGrdo61+4rEm3AagQkgVfDpzquqJQZ5FQKBQCAQ3xF2XmWYjiortTjcTAe3p0vwqpvj2fl6eLrsH087m3FzM6qDV40b3rIbnk3qp5OsEwqjmnY5S1+e9vY2XQe8atk1B6nUT+RhpnVDLdE5h8cNuurwZGpIndAcN6P1sD5tx4kltiMvMdWGrSwa7uUkeX5Uf3WS3y3D59v05UnzdtPcDtNmZMocRWE4z0oMLRNYkTuKpUSZU1RedFU5dfTVoH657F4uGkd9b9lSVy35Ymy/OU0/PE/enbjP1+q7Swfifmu8Ps/e3g4/ejy9OzlaDsaJm3AkXygazTAUSxPi0yCTtBuXAk9SROfJloqxK7ArVXJ3w1RwGsROtqBl165KjiI50IJXeazCwQkgVRBYma2UmGYdra9CIBAIBOLbz86rNN0ydSMJ3NmgDV51d7rcTtrTbroY1kfNcNZJjybt7aSx6MTrfnw6rZ9MspbPgUGdjsLnx52944G77tuLjjapQxjThtWL1EhlVGJfpypP69bVcR7Nu9l62Ji0osyRfUUQsZJKHNRtYdv179fZwyo5G9kPm/Rk6HViMTRBahgKq5YPMYoURU7naEXkVE0xRUagccI11HkfpK8zagSJwZgs/Nb/MJnvNWziuG99eFYDtXq1td6eux9cuOBVL07i22192UkHea0V1nwjUFhVFTT4yw0N/KmYzqMJmSzsDX7O1BUfhAkqYEtQGmolFM6HAAD/9ElEQVQAAYIFn4I2fTUJCPoF7UnYajfG9axfLTGVQxpcCk7AC8HisArbROvWEQgEAoH4DgAdoqQY4FXwX+hYg1btdDk8Ww5n3axX90etqJs642Z0MutebcY3m8Ht0eh22z+b5b1YHuc6eNXNMt87GwdHI+9k4h1/+ead20918CoFfwZS5fBkzdHGjWRYD5qhEeqszlYkAhOqxar2YWqBV11Mo4dNrVhWNQ1GNcWWyiJ1wFM4VsHLJYqh1MohxeCczKkKr0qsaOvGpNd7eXO1Hg9y3+KxfeLZHrlfhMaU+ony9qT96U0b1OqDU//FiX2/ta4X7jhXHR6XCFKs8hKlG4Kd+Fmz3sqz+v+PV+0GqHYjVTuvAs3aedVuBnC30AqkCtptI64l3V571m6MnkSKe8rawGJlFq/y0ILGqxAIBAKB+C7w5FWWptuSpDim0UyDcTud9+uzfm3STabddDmoL/v58bRzvZ08nM1eXK4eT8fH43RcN5cd92yanE7ivVXbOB775/MQDtY9f9HxZi2vG5mxxgYy6wpUZqvDPOplbmpLloDJRElnGYUiI12ct+Kzae16kd6vs7t1dr2urQdB7kmmRAkMi1Xpcpmnab20Twi0JLEyjTHgVc2ssZktjpfLQbsRGBoHpoOVQYiYyqHCkGBvd/PGxxfdt6f56+Pw1Wn44iS8nPstn3c4mq9Q9D7LVGSdd2phs9PqNvImVyRVF3e2BAFGtVtNJfEWuBR41W6+D8SrcsiUD2hohwCpMrVQkz1dgfDhzJ2c7dwLjOppuRWH1lchEAgEAvFdYOdVhunatluLo249GTZjUKvFIF8O6/N+7WTe/1KtZqBWw5dX65cXs4tF62iYXC7qd9tW4VXLlr4duicTbzsKFl13M4jOZo1NPx+kji1QOoN5Mpu7OuhO3dcig9foKngVVykbLNlP7ONRcj5Lz8bBpmsUXjWOar4isTiJU+US9f4+Uy4JRcoDTuFIHi8RNEapggLBkpQmyQyGVfcP6SrOkzRRApehaq59NWm9Oe68PsrfnNTeXuSvzmqXs7DliSZNcyWGep8nD2Qe0201TPw0sEOB1fCn9eY7o+KeVlmBV4EzgU5BKKKzG6wCr6qWijf+oGRIZSdecD7PaDTx5fIs+OLOq3ar19F4FQKBQCAQ3wWgQ1R0x/aiVqsz7Ham/dakk027tfkgnw1q0266HjZnnWwGlVHjfNl9PF+8vl7eHw/Ppvn9UffFWb/wqqt5cjENLhbB6TTcDP2Lef3uaHQ+647zQCHLQnVfJkoGi/sKl7laqEls+VBjaIUgYkNaduOzaXY5i29X6c0mv1w1pt3IUXmiUiZxhqZlgtIoSiNw9uDZYWW/LDGcJggCTjDlikBgVLWEHT7DDg44ghAoCg4Vjuul4fPN4MOz4QdH7Q8v+x9eDx62rU0vrlkKd0gwBxxf1iXS0VgvsLJ60sjjuqF6IENgS7vxKhCm3SSgoQaq5O5i51VfTQJCBb4Cp+0GqKARLOqplOA6oF/gVWBaEK0Gyl+FQCAQCMS3H+gQNcv3o7TX7Q677UkXrAZ0qjbtgV1lU3CsTgpetR42Tubds0Xv9njy8mIGXrXqBZeL+sNx52QS7F1M/IuJc730Lmbe+Sx9eTJ8PJ6se3k7sMClVApjK/tc9UDEq2BCIk5IOK2QbOFVCjvJ9NOhc7eKn5/k98dNcLdaYGmSfPisSuA8yBJOsBjOPOUFxcr7z0yR62dBL7YTnVeJA52tyOSBJRIGj0FFpQ9jkz0axh9ejF9vW6+Pe69PRtt+3nBMX1ZtwaAPGewZy2O6SJgybWi8LlKiLugcIT3NJXLgSbJgg0KBWkFAHYxK4i0QqZ1O7XxL5V2BMjjKYEkdKwkQNA7nawylYxWxUuKxilAt86UDplLm2q3hl8/7mwDyKgQCgUAgvh5P41WWZbutej4f9VejzqxbWw2bs14+6dS2096oGS3a2aKTnc2616vh/fHk9fXyZtM7HqWvLyc/eFjeb+p7VxPvfhM+bKOrRXAxTe7Xvct5r594oVLk/ww1KTIVg2PYapmtVCWSUxlRIRi5Wo1VZtm0z0YQ1vm0WK41qAeGLDCk8P73wKMEHNQKpAonOU5gWZrGyomtHA0bF5P6ySBdNNy2L/VTfd1Pp013kBWvIi7a1sU0Oh/acFcPy8b5OG97psFwIsYxJZbHNfJAZKoqURLwfYo4JPH3q3SFZosJu2K8inhKTwXytBMpqOzqX80A7mRL4RwGU4iKRGEKXi52GCSrMlbiKUKtFkYFAinhVbF8yFZKbKvZ//J5fxNAXoVAIBAIxNej8CpF1zStUUsXoy541byXr0fN1aCx6DdP5sPjUft43N70G6fTztm0c7Hs3h0NjsfpqhfcH7XfXo0fj+p7p33zfGzfbYq5vPNxejRIxzUv1gSDwlWq0gysYSONTV2iCJEgZYoXCdZg4FOqYSunw+R6Hp0MzKO+sxlENU+VGIalxNIBzTAay6osI7EsX61WOZY0RW6Q+5fzztUkv57Wb+fN63njeJSsu9E4N07G6bvbxZvLUbEEfum/Oa99/6oHnpfoHDiOUCXZMiOSGviQQJqFFZU4ssyCWomUxJMyR2ugVqV9CuQJRAoOwaWgQhMyCBbUywc0fApeZaiBxDkgVVhJAK+icRUCvKq8zxC4DF6FVUSKUEhcrpS48iHTqKN5QAQCgUAgvv1AhyjJmizLWRzMBu3FoDVpp4t+fTmog1cdzwdHw9Z22Fx2s82gvunXj0b5+by56PjgVbeb5svT3vUi3tt2jVnOX0yDm2W+6Ye9SA8l2qCrNkvZAtWJ3Wmn3kmDyNJdRVUZni7hJid5ktRPnJNR7XISnQydbc+dtTxboqlKhcTY/fcJgpAwjMOxp/Eqhg1dq5tHJ7POzaJ91PUvR+nzdefN+RjUat32erF0NIw+upu/uxw+rJLXZ/G7q9qby8a2Z9v8IbG/R5fKLMZW9+nqPsvhOotpVEWiKgJxQAuUslt7Dl61G5QClwJ/gkMowaggvlo1BZViMTvvglGBS3GUwdMmBEtq1UMOvAqkCgKkCqJa5p+8Cq1bRyAQCATi289uvAq8Kgm8ab+16DWHjWjcSqadbNzOlsMmeNXxuLUdNM4XnfN5+3TWuFy2wavGdeNqmb8661/Nk73LaXDUMy+m0XYQdkMlUmidqmhE1RPYQOUboTXt1JaDdr+exZYtszxXJRxRzR1n3so2vRQk6WQYbDp+K1B0gSKrGENKpQOWxBWsSG7OUgTbrBXzlNtJ9247eXk0upnmz5eN18e961l2Ncvv1+2zUXLcDy8nycU4vF0Er8+ihyP3Zu2ueoYjl8Cr8NI+SzAkyFVJ4CiTIXSiUoxC4YcsT6rgVSBMWJmDlt2EIMSuUtqnygc01OGEr6xLZO3dSJXAWLtVVuBVRKFTCl6VqmUBqwh4FQRLqJQ5NF6FQCAQCMR3AegQVc3UNK0WB8txbzPujuvRuFCreNiMwa5WvXw7bBwNm5er3tWiezZtnE3q49xsB/zRMHhx0n3YNvYe1nWoXS7qw9QIFdrmCJAUCEdkXYVPHXXUTDbjHniVJQkMhvEknZjuuF4/mwxPx62TQXo1q6+7UWwKOs8yOC0LJggKz1p0seGxIglq6HqtWtJJg+2g/up08nLbu56kq4bWtIiWS81yY143IbYd53TgPT+qfXTXfHEWPZ5l15u8VzM0HoffJTC6yFOFKywN11eLRVFgSxVB4SyGVECYQJugBQIq4FIgVdB4+IwEtdr5FojXTq0YQtutqYJK4WfFQisZvIoiVPCqSonfLV3fqVUTvQ+IQCAQCMR3AOgQZUUHmrX0dDk9X05m7XTajGfFy4DprJdNm9Gyl24Gtat193bdu163b9btVbcYr9r0vWLD5Wm0d7/K77bdk0mjG5mhwnkCa/GsyTG+IgS6lNhap+ZPuvVG5CsMRZRKdBUPdWOQZefT0fVieD3r3cy781bsyBxdrVZKOM8aGCbRpIYVC8k5nhKrZUxkGVCeyOA3vfh6lh+1nbpW9dj3NWzPpt/zpcNOKJyOwrtl/e1l7/s3vdcXzVeX3fvzwbyfRa6uCCJRLbSpdMBWy+LBPnvwjC4/+dNuc0CwJQgwJ6hDuavvKv/nR4WK4RLoVPWQhwCjghIrCeBY4FW7eUCQqvIhB0ZF4MXqdeRVCAQCgUB8F4AOkeMlVVbb9ex8M7/azBed2qyVLAf5oldksVp00vWgtu3Xrlfd++3g+eno7dX8adotPZ/ExwN/23P3bua1WcMFMRpmQc0xQk0Br7IFLrGMZuTWA7uZOL16XA89U+SpCoYfliWCDDR11qidTfvnk+7xoNn2HYnAQLmqZUIWHZrWOcYsxoEqAkdIIFsszWCHz9jK+zWb33T8s2E8q6mxXA7kcmaSiUG0Q/F4FN+tWm8uR6/Oui/PB2+u5w9ns6Npb9Rt5XHNUD222BpZokgdLwSIx6rs4TO8WqIrh8xuHdVuOArMCWKnU1+NWu2/B2cWk4DFS4K0CS5VOeCg3NkVjSsUJuOYVK0Iu/EqMCoSl6FE84AIBAKBQHwXgA6RpjiRFxtZcr6eX25mu/GqVb/wqkU/Gzf8cd0ZpOa85S47/tEwul02j/vh8SC4nKXXixrY1d667U0bYe7qrsSZHKODE7EMaFMj8Cbt/GQ5PpoPwat8S5NYCryKKFUsQbQEvheFl/PJ9WI6riWeJHFVTKB5hhRIQiAIicSLheFEiavuk5UyTRIsjWMcfhjq7KYX327aN+vWyTg9mWTjlhsapM7te1IlM+iGxXY8sR8bw8Qd1dNlf9BrdEzZLQaiKiJJaCSplkrc/vtE6ZDEqnBVcCkaRGqXUgFOKx8UprUzKuwp/+duJfvu3UA4ZEl9l2EBvGo3IfgU4H8cXWSx0rDirUCBIhQCk/Ia2scGgUAgEIhvP8V4FSuCV7VqtcWgN+3k40Z8NGpthvmw4U/bUS8xazaXmUw/UecNexBJ00y/XeRX0+x0EFzN8ptFY+9okDZDI9Jli2c1ihJxQsBwkxdS29pOR1fHy+PFqJPFjq6INE1XSQYjVJqxBK6bRCej4bLZyi3L4gSJZPASAaLzlDtdYQiNxVW2KtFVkSRFguRInOApLLHEZTc8n+Wnk/T+uH93OrjaDJbDrBVpnkIYzDMVf499b0+u7BsEHHIWr4qURJb5QoMq0s6rqlW+XKKqFYrAGZLgsHIxXgXCBAE6tVtfVdqndovWd4NY0P7VOSBVREWCCz6NVKlwq3RhgdLTmiqJwGSoVMs8RKXE1nP0PiACgUAgEN9+oEMUBUVXjch1u7W0G3vtyFr1M/CqaSdejbJBzerESjsQRzV93fbmDX2e62BU17PaumWdDKKrZWNvVPMSU/YUyRJ4ECa+inGVqsqwoanP+x1Qq1G3GTqGyvMcQTFVRqA4Aas6kjCq1zaDQS9MLE6ScFYgwUUIHGPAoop4WlTOVEQGkwhCqmI0geG6xHUSeztMwavOptn5vH6xbt0ej29PJ0eTRiNQbL6s4s/E/e+Jh4dSqaxRnC0YIllkqyrWQpVFEleLjXEICcc4Ai9eNqRwjiZEcCaQJ1Co3Tqq3coqkCqI3agVNP6/8TRSBfGVV5FPeUG/yrNAYPBb/MEz6nCfRuurEAgEAoH4LgAdIs/Jumq6qlbznLpndiLraNS4XPUuN7378+nJtHEyzY9H6ek0e9h07jbNq2l6PUvulo1V0zzqBY8ngz1HpD1VsEXB4HiFooUqyZVxmaIdRfJ1NXUt11BEhqSrOFnGqTINXsWWS67CT1uN7XDY8SOdEvkKQ1dohhRoSiApvshcVWHBq9iqJBAqVoVvECxJpZ6x7KSnk+xikl0uajfr1s22fXM8uDsdXS7b06ab6pRJH+jYvk3igSDUbDt3Y5VTq/vFa31PxiMThEKScjHbiLNElcErxXuCuwVVO6+C+m7iD+rgW7tDKHfuBaa1G6kCl6IwZRe7eUCa1EhcKX4CK+YEQarKhwzKt45AIBAIxHcB6BBJkuVZUeMFX1USU24HxrqXnc1bF8vO9fHwYgmVxtm0drnMH4/at+v8ahrfLrIXR92Tvn85rb27Xe5JeFlnaZkmBZzgqhhbwZkyxmO4RBFE+YCnMI7EyMohUargBzi+XwxZMaUDW6IHtXjWauVOoDMSX2WJMsXREkXyuz0BKZzjiEKqBEKulshqGdN5tpf6R4P0ZBicDrzLaXC/yh+2jdtN+3rTuj/qPWy6J72o74t6dS/X2Vk92vSbvSSRKbbyfgVErdif8GmXQvJpmRS0PC1a/zKNApjTVwEiBbGb9YOAEyB241jF2FW5mAp8mv5Td4LFUXqR1IpQGUqnCKVaForNAUvFW4HNBvIqBAKBQCC+/ey8iiU5XSi8KnfUYeat+7WjcX48qR/Pm+BVJ7Pa0TC+WNTu1s2zUXAxCl4eNT68HD6sm3er1gdXsz0Rx0ChwFbYShWMiikTUIJdgWPhpX2OrIJXMRgERZZI7BlNlii+WnZkppsEID2+rCukKOICjbEMWYwhYTgNAV7FEjxd5uhDBr7IYIQni9N6cDFOz4fu5dC+m/mXY/dmEV/NE4gXR53vX09fHXXP+sE4Eo97we2ydbMZrIeN2DZ4kuRInqVEAueLdKP/lY9qt47q8BkJzsTR2leJ1+GjaokFl4LK7gQIaIGPGFKpHBRqBUYF5e59QJ42VNEHr6JJjcDk0iELXrVbvY7yrSMQCAQC8V0AOkSWEnhakGnGkcVWaK666dm0fbnoXK66l9vuDVjKIj8Zx1er+sO6cTmN7xbJxzejT+5mb86H96vW3aa/J+BE4SkE9jReRVAVCLAogiMIEBPQkMJpCEogBabKkocCi3FgHzVPXXSbozx3eI2vMALGM9hOqphKlYQgMZYjBYVSdVoNdCfQ1JZvbjvJ7ax2Pw0eJs7zmfNyHb1YJ3eL6HoaXk/j+1l6MwxP28bdMrxbRVfz6GKenc+bw0boKCJD4JKg0nCzlcKEyKoMVoQf8hBgSyylSrwF8X961a7cuVcx/VfhaUKGM3eLq8CoQLB2XrUbr2IoHa9K5RJXKRWL1ot16yjfOgKBQCAQ3w2gQxQ4ReYVuoyB6tQ9HbzqeNQ8nRT71VytO5fr1vmyfjyKTibx3TK/XaXPN/n3rwY/uJ2+uxw/3xbJQvfApZhyBSxKIpnCqw4rEGwFL17hK17tY1icZDCKJ3gOE/mKpFCSI9KjRnCznW+HQ0/WmRJFlYrVVNUKU61QlTJRLWMswdiS3gySSaN1NO6ve/lRN72aFDvYPMzC66F9OdAf5t712Loa2Vcj56LvnHWtq4EL1gWN9yvvS7Va1pf9tB6YrqFoksxTQjEhWC22TN4NOEFpgLkpriJaAquxlEwT4i5AqgoJ+68lVrtVVhA8ozPk09crPFyHJXXwKpbSedaqlPnDfRqvFlsv7/ZdRuurEAgEAoH4LgAdoqrouqwpDO8q0qAWnE7ap5PmySQ/XzYuls3bbfdu276Y186n0cO2+eai9/ai99H18MPL/vevRq9P+6/PxnsqJTiaYSgqT9JcFWyFgpAJxuQkAWfAohRWlWhZJiUIscrz5Wpm8PAbd9tJNwvBxohDgihxpWdM9ZAHaxFoEfysSHAVu7NGeDGp36/bd8v65SS5mtYeV+27eX41ie4WyeO69sFx/WbinveN47b6alt7vkhvRu7VyHx5nN4tw+s5qFW27SfzVtxOfFeVRZrdTQiSGE/ikshbquypiuW5ke8lAq+KgmYaHsfKBM6ShFA6JA8PCBzjKFKEslyiIKBeLHvHRKgwFChpsZXh4T5VPqQrZXY3eFeM31WL3WzQ+ioEAoFAIL4LQIeoCIoNUiSIsW12M2/SChfdcDNKjsfx0Tj44HJ4v2qeDaOTUXA1T58fNd6ctz+66b09bX76MPnR4xKEZ88WNEPSbN3QRVmhaJNlHY7TaVYhWYNVDU7XwV1YQ6UVlZIMWnI4dpwaR8P4bNrp1SKVYasHGFbmGMo4eI/mCMUQDZmkbI7ohtq24704al2O3eupfzULH9bND85GL48Gd8sm1MGuHtfp/Ty8nwenXf165N+M/Id58mqbvb1o3c7DYpn9snk5b13Me9tRJ3VtTRAEmudZiSElntM0LbCsyDTcIIjSpG6Znm354FhFyghKODzAIECknpIy8BCFSNHyzqsgaEpiGQVaQNGwClcpMeBVu/VbcFgts+VDpp63v3ze3wSQVyEQCAQC8fWADtFQFEdVdZ6Lbb2fh7Nuuh4mx9P0bJ5czKKHIrFCctIPTgb+5Sx5OKq/u+x++jB6e1p/d9Z8d9F7cdTbs0BBqqQqSpogqTTjimJqmrFuerLuiCZ4lcppCqvKpCgTnCvKdds4GRQJqI6GjWLhE80QZbIYpuJsvFxkqxJIga9WUkM4HmbgT28uujuvupj417Ps+bZ7v2xfz/LbRX7Scy5GRTxukstiZtC96HsvVnUwsPt19vTOYO3xZHB/PL7eTo5nw8R2JIYjKwRepfAKCz6kyp6h+4qk66phm44iqVCXRa3IpFWlKodEsXyeEmmCf9pekOVoReR0aHzKelVkhwc/g6AJkcL5aomqlChwRLxIc8Vh4FUHVF5rffm8vwkgr0IgEAgE4usBHaKlSKYkOKpQ8/VJI1r10+0oPZmkl4vseplfTpOLcXQ68MGrTkfB1SJ+c97+0fPJZ8/HHxzn98v0Yd0uvMqUdc+ybVXXWM7meUcQTJbXGcEGR2FkkRKLIFiFokG55q3set6623a3g7qvicUrhDj4SvEaXZFgs8ySZTCUSi+2QYleHndfnjTvlzHE+dg77nnno+RsGJ/0w/NRdNSxtm193ZRvZsHVJLhbZDfj5H5RPxtHx6NwVNMXLf9i3jtb9E8X4/V4GLu+zIpUlaYxlsIFntN0NTCNwDJcVdZAqjiG5xiRofhKCYeKxGuG6kDwjLzzKnCsIhnEf0kVlHAdEiv2hyYxrnxAVA7JSqnYA4eoFlEto/EqBAKBQCC+E0CH2Mqibh4NGtG4nSy66ZNXJafT7GpZv1s1buYZxOUkBq9ad6yjgf24zT59GP30xezVNrsc+7eLxp4rab7puqYFXuXIii/LGkUJGK7RvCmoIs3zJAulQjO2yPfS8Go5BK+6nLfGeaBzJHlQfrIc6XC/2C6GKBUJ2R1JmNSDy0XjuOdsu9rZyLqaFeNVZ8Pwalq7GKcn3eC052/a5lHPXLXk87FzNvTvV43bWf1u0Tqf5dOmawkVnS37ChdoSu65jTCxVZMlOKJMwi+CDDGkJAqGLBmuHYBXyaICXsXSHEXQ1TIGh4Zm26Zn6o7AyTTJsbQAFZ6VQLl2AQYGsoVXaKxMQZQP8Moh/jRkxRBVFgKrMM062h8QgUAgEIhvP9AhLkft89Xo7nR+ue5vR9mqFx4Pk8t5frNs3K2aD+sGxM2iBl41b2qLpnKzCL9/3f3guP6wiK4mwf2qtaeQrMJJMi+YghwaZlZs9sfJJGWJksRwIEkcRYs0rXF0pIvzVvJwNAavmje9zBRVmqRL1eoBXj6gK6Wn3WMOcJFmM8fa9PPtIMyNQ5/fG0TEpqOCV90tay+Pu+BPZ/3gqGOtWupx33oSL3fVNE+H8fkwvVn1zxa9QT2Q6DJZeo8uH2DvP+OqhMyKHMljhwQEWSnSgRYZQXGepgRNMSVBBpESOBGCJplKqQoVaFEkVRY1nhVAp+AcOFNXLQl8kYeTC8cC2drNEoJXVUsEVqFAs/AKC2qFgTFWmFYD5a9CIBAIBOLbD3SI016ymdbf3G9ujvqbQbjouMej6GJWu3yKx02hVrfL/GQUgFfNGzK4zQfnrefb7NW2djuPb+a1Pa6Mg1fpsuLImqdqoapqFMVVqiJBgiGJLCeyjMRSpsTknrrux3fb7s2iOWu4sQb6VSRnB9GplthqGQRFruxjPEk3Qud02lx27FDcs6i9eZ0/Hzu3y+R+lb/cdh6WjfNBeNy153VpkrH9iF53zFluzFvOqhmeTbvnm9m417JUUeYKpSPLuEiJluqwBE9VOIaUOFoB7wGvoglRYBXLsE3dcG3HMkwIVVZYmtFVTQY1FETQKShFXhI4XpU1OBlang6LRqiDYBUDVziNV0n4g2iyWH0FpkVUaZrgep3Bl8/7mwDyKgQCgUAgvh5PXhUt+uHdSfd0nq277qbvXUyyq3l+OckvRqAxdTAZ8KqzSbhqm7OWcjJ07tfJB2fNDy+7zzfF2vE9gxXpKimzvMYKKs2YLAuhMawOFsKLuiwZiqhLnKfzncQ4Hqd3287tsnU8zBquKuAl8qBc5FUn5FKReJPFDnFDknq1AAxskAmZ9t4wwV+dNt5ddV+ddG4X2d08v5klF0Xqd29a42r6M4/fgzMndXPa9Aepu+y1VtNRPc94msHLFbyEVfarqqDXwiZRYvBDcB0R1Kq0T7z/P8pgVywol2HbpuW7HkgVCBYYFSjUzrGgvguRF2iK4Flu9+nTCJYAXvU0oKVAHXSKwCgoOUYsBrFIFuoip46Gky+f9zcB5FUIBAKBQHw9oEPcTrLVKDiZJeuht+k559P4ft182HRu5s2rae1umd+tauBVF7N41bNnLW3TNc6n3uM2e3fZ/uC0/cHZoJgHlEhO4QRbUn1Vc0XRYBid5UxBlBiOo0iZZ0yFc1S6HoirrncxTe7X7WU7yExBA6XCSKpaGBVe7GpME2XSUpR+Hk6b7rSpbrvq2diA3wObu5mnD+v6TqoeVmBXUTFYFRKTmrDqOv1UD3XWYEmRxCkM57id6NCgTSwly4KZhC2RMyXegkOiylGVIuD3dQnsyQgDzzJ1jqVVRYK67zm6priOFYU+1KFRFDhVETSQKAHMid0NZYFjKZLMUDRYF88JmqIbGqiYocgqVBzLtU1vPEJehUAgEAjEtx/oEO9PB/en3VXPAofZ9KyLWfKwad0s85NeeLdoPm6aV/P4apberesnk3DcUKZN5WLmP2zSF0fZ800OnrMn4oUbyRRri1IIgqKqllCsUhcoiiUpCgOFwRUebIlohNLRMLhZZmejZNUJW76mczhTroBLgVEVGTif4dghbqvquJVuh/Hx2L9dhs+Pk5tFCGr1uM2fb5vgVcWC+Xm8besXE/eob22H7qrvNwLFEikJTKqK0yTD0AJJcNiTsYFFCazh2Zmu+DyjPy0q50RaFWgJwlQsx7JBqsCZoAx817FNQ1dBqqBimSpIlSSyiswbuqxrkixxkshrCjTL8DkE1OEKEK4N3ygi8MLQj3w3gPpkPP3yeX8TQF6FQCAQCMTXAzrE82XjetsEgRnX5WVbPx0HF7P4fByf9P27Zf12kUJcz7PzRXI6jY6n4cUiut+mN4vo5XHt5VHjblnb4ypVheZ0TvRVLXPcmutEhm5Lsi7KAsNSJM6SmMwRjkL2U/1inj0/bp1P4rNpbdr0HZmhS2WijBNVplIuZuh4Sghte94Dj8tPp+HVzLtZeuBVr8+ar8/ar05bD6sMAn77pGdsOuqypc5aWicWTb7KY4dcFSs2KCRYHGN2qTvLByTEbvMZCBITwd4qhxSDczTGsgRvyLrMc5YG/xOKbQJFzlQlqGsSHzimqYnQYqhC6JlJ6EDpGCqc7Bi6ociuaUA8VaBdh7qpao5ppWGUJ2nk+a5lzSbIqxAIBAKB+PYDHeJmlJ7MUrCdXsyPatKm7x4N3OOBezYO7lf59SyG8mZR247841F0e9R8cd5+OMoup/6L49qbs07hVQKGCzglkYzB8Z6ieooMUmVLIB+6pqg8y/FFVnLSVehx3b5ZN16edl6ctB+Oe0ejLHMViSLICkFiYGAiVqbwEqaL4qAegVfByc+Pag+b5HGbgVe9PCnU6vkmh3h73r5fxtfz4GIabIduIxREYh/ffw8/LFcPMLxCl0tEkUaB0/EKCxaFV/jyAV0tFWmrSIyvPL0ViB3iHMnbmmXrWhp6vm2AV0kcDdpk64qlS6BTmswpIqMrfOAaaWSDV0GjYyquqemyBC4F31VFAeqywAsMA39s8Wqkpvu241k2ONZ0jOYBEQgEAoH49gMd4moQr4bh6SStWUTLp1cda9t3Tkf+5Sy+WSa3i/hhXbueZ5uhdzQuvOrxtH2xiC7nwcMmBbd53DT2JILkqsWmy5Yggle5smKJkq+ZsV/MgkmSxLG0yJG+xs7b/uNR+/Vp9/u3k+envbNZPmwGgaGyJEVgNE0J1RJZev+QI4jcNzaD7G7bAp16fpS9PGs8HtXv19mr09bjunY59h/XxfZ/t8vwahGcjKN2oipslaqWmGJ0jKUxtlLCeUpUeA3qRJmiKlzlGYEf0jKrP8lWkXGKoXhJUC3DrKdJ5IEDKa6lQinxFAQoFOiUa8m+o0IZenotsePANDXeNmQ401QlUDHP0jWJ12UBhIyoHBbJQ0mCIXCZ5xzT8B17Mhp/+by/CSCvQiAQCATi6wEd4rKfTpreqGFb3LNEr8ya2qbvnE39IsbuzTwCtbqapaez6GKZXx83b48al8v4ZgWN/puzFnjOnkpTIkEavBDqRmo7kWEGUHH8RlYLvFDTDEkQVYlNbGk7TF+fjd6c999e9e+Pm5fL5mbSbKeRIohFegJKYCkRO8QZDPM1flizz6bFmqri/cOLLnjV3Sr94LzzsMqOu/r5yDobmhcT53RsHw2DUdMJLUmT4IfAduxd8k+8RIJRVQ9wCKLEQIBdCbQE5lM+xCiCfUqgIItw564TOCaokmdrUCoiI7CEqYmWLoBOJaEV+UbgKpGvhR6cIwWuFgc2SFXsO+BVMs+AVIHQUViZL7IskES1wtOUaxpw5cloNB4MZ+PpdDQZD0aj/nDQ7bcb7Va91W/3e+3eruw0u606NLbbzU6/0+92ep12t4hWr4h2r9vp97oDKLvtAUSnXVT6vdFoMO11h/3uqNcZQmOr2W3WO0U0Oq1WD8pGvQ3RhOu3ekU0u/W81Yavdwa7Q6j0eqNud9hu9trFzxVXhhLqxdfzdjNvteCGG+1mvQX1XTTyZp7Va2mOvAqBQCAQCAA6xFHd72VmzeF15v1Ex8a5uu6bxyNn3dO3PeNyElxNg+t5dr3Ob4/aNyed+5PWw0njdp2cjewPToupuT2dZcCrFJoxecEWBShNQQx0Kw2SJKqZpq1IsibxqaOCV7047j/fNq/m0fk8PJ4k025UCyyZ58BGwKuIKlN6v4wdHCg0lhjMrGmBS704zl+dtcGrbpfJ86P6zSw47Zt3M/9y4ry9bD8/ye+O2+ebzrCVha5nqJ4iWjwoGk5X9qtwtZ1XYYdEkc0BY8kKDYdkheJBqziRpYtF6K6ppZELqgRe5Ts6hG0UUmWonCrRukJbOqfJcNGKImHgVWlk52kQ+RZ8xdIllipyVRGVQxoHnSI4imAITOJYx9A9yzRVRZeUYpMfQeJImiFoGqeoKkFjFEdyHMGxOMtgDFmmwCkhyCrF0wJNsRTJFiUBwsZAydIiXqUoHFqKJO8ExtKkIHJggSbPKhwjg5VCe7VElYt8YBRWoQvjxVmsSkNAhaLgsiKELJmKbEqiwbJycUKxFg2evwjXYWn4c0QGTiMFCufgInApMEayCrfNMARLwcnFbdAsxVUOMbxCIK9CIBAIBAKADrHua+3YTAw2VIl2KI6b+rJnrgbmsiMfD43zpyGru1UdvOpyVb/YNm629buj/GYVnw6t1yBYy2TP5DlLEopsVTSlUKRC0VAPDTuPElArUwdtEqCv9jVx0oouZs3jUTJtWPO2O2p4qacpPAOGUUzeEaLEGzQ4RAXjKiWJ2E80clLXjvrO3Sa5XcdnE6fYIrBvQfnqtAWOdb+pn0zj00X9fD2Y9ZtpGJi6o4iGzCkQRfqGEsGRAoNzoFMSK/OgCxjD4KwmqpZqCkyRtjTyXM/SdYWXBdoxlcA1VIlVRCryjdDToSILuGuJpgZmsw9e1cjsJNDz2I1cHcJSRfAq0CnQn2J3wGoJ7EpgSE2Cr6iWppqKYqm6a1iqIDE4AUZFVUmWgPsRBFA1kmMJFpSleCnyECdKBIgLeBVL8ywj8HCDtEjiLFGlocQqJEPyoD4gVdUyRVRZhoQTJPChnRKRODw5stimsETiFWbnVZUKVS4RUOJgYwS3C6zKQDxZFwMfMbSoaQ4YFUgbXBwCKk+KyIMlMmBdhVRxHAUPkyUqFBwKrERUSAqjkVchEAgEAgFAhxjoLHhVzRbakTrv+Mueux44qz54lXo5Dy7G/sM6f37UPl8k25F/NAlOZ9HJxL9apWdPbnPSd/dCXdV5FkJhKFAAgcBkmrQlOdANgaJUnrcUxRA4Wxb6eTxp54EuUaV9DqsYkmLKOkgPVeE4QiFKHHbAUGWaq1JcFWNKB+T+niVgs7Z9MnFuVv7Ls/rLi9bDSetsXpt23E6qpa7g6nRoSbXAWk4Gi/Fg2G0lgc8xYrnYGwcvdkemwAxYFswAowonKONUhRBpVuEEmeWh1CUe3MjWBFMTXUsNA9syFVliVYXnOExVWfAqRSQsjY59pV33skBJHbmf+52a329EnVoI3xUZgqwcgFRVD58R5QORoQxZeArRUiVdkixV1WRJ4jmJ5wWWE1hWlWRbtxiKLdSK5sFUSofVw/cOQbPAV/ASDncrspLASLsSfGvXwlMSfkhVDwgG56HO4gKUHCnRhABehVdZMCoIrEzznEoS/OEhvv+seniAV8qFWkEIvLbzKooU8Ce1okiOgyuDKmEMXqVB5gRWLtyO5Hka/jhOZCSZV6HkKJ6Bk4tJWx4vg72RyKsQCAQCgQCgQ0xMHowKop/p4FXztrvq+aueN23pZ5No03NuFrWzcXgxi89m8c22tuzqo1yctdXH0/ars+7pJN6LTd2CjpqDnp8AqQK1Aq9SWRpaQKdcVXYUCZQLPvU0BULACaJUYQmmmGQDGavwbFXgcYmuMAIpsmUaf3ZIHx5IZEWmyq5MdjP1ahVdb4KbTXK5yjaTuFc3fZMVmDKNHWCH71PVEk/haeC2avG41+q3G4qkUiQPwXMKS4NtgJHQENhhlawQAsWAUUHJEZTGcoGheaYa2MXiqmJqL3IdW5NEBtTKNMVCrSQyi63QlSAGrSCPtJorzzrJpJ0MG2HqaRJdZfAyBI1XOAqXWErhWZAqW5M9XS3+ZJoGv5R5TuRYRRAhZF7QFUVXjaedcBSGLoaFIKoV+B8HpkVjDBjMbuBN4YsHBS1QKoKmcCCjAl3lwKVEBi6usIQILRQOj4EHu4KAColxoE0E/uXQFAgWQ0sso8AtwCE4FpS7T+E0eFBPz0okMYYGi4LfFVW4K/hRGqNJMC2Sh0ci0BJPC2BaElvYHlmlQK2QVyEQCAQCAUCH2E2NQc3qZ8a4Ya/70bIbrAcRxLRpb4fhyTC8W9cvpjF41cnQPZ8GIFWdiB43lOt17fGkez6rFV7lKbLO8TyGs5UqaJNEUhBw6MhKYjsQnqoFuhGZFrTAmdj7z1gchxNAsJgyJuDFyVwVAxVzZdHXREciVfpQIt5LDGo7io7H/sUiuphn4H2RwYjEPl15j6oeglFVDw/IagUvl1RRcAy9Xc8HnbYi6QwtsozIczKB0eVDDC9hRBlnSYrGCRYvdt2xFMUziluKbdM1lMjVk9DJ06Cex1HoWKZiW6rrqgxTsXSu24pjX8l8dTbIwKtikx/W/X7u92pe5usaTyo8rUucwJCGIoJOyTwDdZmjwS9BKBkMEyiKp6hi/2lJ1mTQIxHO0iRVlzVDswv5IxiBAyMtlpoxBEtWSCglFuxOBrWCksbZXSJTgZKL0SkMpIcHo4JDkdM4Gr4rgtlCCUFUi4VWB/t46ZAEhSqXSKhACSJFkWK1QuNPiS1IUgCvoilJ4MHtRIaEr/MsJUpgcmB7FA93RRI0idEcKYhM8es8JQiMWNQZEWQLPkJehUAgEAgEAB1iL7PakTqqW9OWC1616PggVdthMms5q54HXlXkXh/6RwNv3tRWbaMbc52IPZvFF4vkvEh8lRfzgIGmGrwAbsSUK6BHIkHu1ArqpiBaogRelfsBSIzKFNOFEoE5kmDwlEJjYFGpo8amkFjCsp/Oe+G4bg8ybVI3J3Vj1XWuV/VlxwWjGtbMyODYyvul7+1hh88E8AEMJysESzDVgwqNUUSlWviKouqarcgmlBAcA7YBRsKLjACf8nQxTKVwgm+aWRCA8zmKZMh87BmNWtTM47wWBb4FUuW5hqZxisI4ppCGRmgJjdhcjPJmbIBX1X01NPjElmqBEZjgUpImsorAgleZSrHfM0diDF6hKyXicJ8Hf6EojiCgokoSqJXMFzejiaoh66bucEwxqMaxxa0WUS328+FIrpj1o0WBkSQOzE1kCY7BuaeJP5kjRKrCMRgv0Ioq2QKnFfOAGLcbtcIrbJENlYSHJEFgVfbgAIfAMY5jFbAriN1HUKEpUeBVjpO54r1GEUqeleFminnAp2VeXOFSksjKcA8cxXO0AEbF4CzUySryKgQCgUAgCqBD7CR6w5eGuTWq26BWg0yftdzNIAavWnb9Vcc5GQXzpr5o6sNUmNWVXsJPm9rzs+7VKjuf1a5Xzb1AU8B2QJh2Y1QQAk6AWskUDXWFZqACdpW5nq/p0MKWS7ZAgUgFGhMZzCi3lsW8ozFr6+fz8Hzun4ysbV8/GTpnY+984t+tG0ejrAVSxpMCXioWbFcqVAUrsolWKKxM0USR55PA6NJBFeyExEETVIFXNNUCrxJ5sAQ4ViA4ipaK3aB5TRAsRXF1vRg/K+bs+FrkdJoZeFUc2KYmyhJr6JIiUq4l6zJlKHTsSHmoj1rhpBNvx/XVIGtEeu5r7czLQzPxbc9UdYlXBVYTOVArU+SLAR8CA2OSGAaCxUFnCFWU9N14lSSDVCk8lKbISE93zlTKOHjVbvoP2iEEuGVSKFbSFzOTCk+JIq2qvCmzOkdIPCkXdcHkaAVcCqswJMbThAgBFYaWeU4TeJ2mpAo4XpkiCQEOCZwvHRLVCgMnUKQIn0qiXjgoLQmFHCpQYYu18wL8BTTFwQ3shsrg10Gt4E6gUkgewaF5QAQCgUAgdkCHOKq746a386phbjY8vhsri443eXpjb1rXNz1v0TK2fXfZNrY9e97WTybB1ap2uUxv1q2rZWPP5FkOq4BIgVp9ZVdcFYPSUzVLlDSWsyU5ddzEdor9bVjGFYhAIVKd6idyMcc3807HxulEW7WZq4V+t7Ivp9rZUD/u6xdj+2HbWnbSmmdqDA3GxhEUBfpUIsClKFzAqsV8VrnIBcAWLQRbCAqUBMtzsiRqIFUQoC8iywlwexwvs6wuipHjtLIs9wNHkXSJA69qN9J6Fka+ZemSpgq2pZpakRdUYMqgViBVoSXUQ207bd0ej2+ORuN21ErMemQlrpqFdh77cI9gVLYmh44ZWYbxNLFXTAUyjAheRRAQ4FWGooJamaoGXiXQ/NPyKRn0hcCoIp0pK7mG5+iuZ/qWanOUQFXppzfy2N0KJ/CqIrsprTK4AFFolmTzjPo0TAVexVGEsIuDfbxaoSlSgMCqDNSLeUBKBJ3azQ8WXkWJJMFzrKzIJk3yIFUSr/GMzDHi01AfA7dEYnSxap4oBEviFF0yNMmQORVa0PuACAQCgUDsgA5x3PQX3WjSdGdtb5Sbmc00A2HWcguvajkgVWeT5HQU3G8at6v8dl1s2Xd31Dibxauus+kHi7azpxbLeUiJ4XZv2AkUw+IkgxXLmCxFgxaRZjVBslU9sBwIRxJTQ4gUvB9KV/Pk1Wnj1Vn64th9PDIfj/Tnx8bDSntYGe/O0w+vGi/WycU4rnuGpykaCw7BMliR5wmvQE3BMa5SBlfg9/fxSpl89n65UibKJVySFFGUNc2wLMcybAhbN2RegFKTxGKRkyA00mgxHoxajcAAv+ET3wQxSgMnDorNanZr2D1bsQ1R5jHXFFJPcVQ68+RJJ4anNutEeaCGJudqnMbjpsI5uuhbWuSaaeBmoRfbpi2LKkuBWgkUBWq1mw3Ui2EqeC4yeJUqKoVXCaoMBS1CsLRgaDZIlS4bEPDRLu3WLlUElGA2PClDcITEYAKUAiWrsi0LBs8oTPFWoLjbqwcCvAqME54PqGexmgpk62l0SuA1eHTQDl4FhxAsA6VAE+BVssSr4FUiL8Ptg+RhFbJIWAVuh7M8JcAtmaplKpYqahzJcxSPvAqBQCAQCAA6xGHdnbaDWddfDWMo6z7fjuUlCFPX3QyCm1XjftO6nNdenPQej9svT7sgVe/uJnfb9rShj3N9VNP2DI6xREkXZfCqr6SKIyiog05BCe2GpMAJnmGFtmuKfKqJPlcBr3q+bb69aL06DV+fOM+3ytWUfn2svz1zXm2tV1vvceVdjeyTvh/pMhgVUaoQ5SL7AEPxAg9WYj/pAs8LKknxYAbVCkmRHEnSYFSyrOq66Tiea0M4lqbzNONZZpGoU5bBqwLbaNWSeuiDktiaEHtG7FkgRoFrPOUFlS1dckwJvMrWucCRQapcjWnGRupKzVDtZVbmSIkjpo5sK4wuUCKDmYoAZgaXzeMAvAqMzVFEnWckkpJZFtQKSngUEIogFrOBvCwygiGbCq/Ku3EgxQy8GCo7zYJ4WjBezADuBGs3D7gLhTM0wTQkWwBxZTWeAR9SOVrZBRgdSBVE6XC3aJ0CB61WGKzKgkiBVIFmQQXUShJNWTLgSbKUKLAKSBVDCgInG5qpKQaoFUtwEGBRcD+qoBmqWTgfr+4yhSKvQiAQCAQCgA5xUkhVNO8G23G2HsbtRBnkxvG0djxNzua11xejF6f9i2l6t27erevgVS8vej95e/zirL/qOttBuOkHe54iiQS5Wwyu8mAXBFXBJIYDe3B101Z1CEczQKogikNJ9ngmkelpat4t6/er6KOr2gfHzrtz+9WR+nqjPs6l67F0PzOfL4PTrt62WZmqglcVFydInuIsw1UVUxI1lpM5freOi6YpHlxKkhSKYgRB4jhB0zSe5w0NpExKgrCRpb5tGYoM4hC5Vq+ZZ6HnqlLqWq4mRLYauWZg656tQYBUqRIbB6ZryZbGOgbvGxx4la8zsS3UfdmRsJord2uOJRJ05T2muk+V35c5CuQsD9zQ1OCy7TRqx2HNd+AW2UqVwTDwOXgCoJjwt8Dzgd9xDQeM6imHgmypduTG7bzDUwI0mopla44q6GBUELslVgqvCZTC4qLEaDILOqdAMKQERiXxhsjpNCE+pSZlwavAosCldgE6BQEVcKz9Z9jBPg5qxTIKuCmoVZFkoVi0LhUZv3Zp3CW9mCAVVVkESy3M70nyiuXqLMlJrKQKhVdBHXkVAoFAIBAAdIiDujNsuJO2B2oFXjXv+uthdDTJVoPgYll/OOpczmuXs+x+03p+0n5zOXxzO3512X99OVq0rXGun4yTPYnAwBt23gNqxeIkT9KaUIxg7RJvQrspq+BY4FUgWEXyBU1tmuq6Fb087r8+afz4sf/mLHh9bL47MT+5Cn9wGb3cuLcT+3Job+pa15d8tRgMU8XiTTrLsH0/NAzLshxo4EC2WJ7lBBApCBApUYQfVkGtwKsEQdBVTRLEwLHTMIDQJPgCGTpmO0/BrgyBtWUhD+3AlHWJM2TetdTANcCrZIEGqfJsJQn0euo0YjPz1TxQu6ndCpTUZFuR0Uks8CqFLhXjVVRl51UgUr6uRJZeD73ccxLLkEhKZVhH0xLPixzPUjR4OOBVlmrqklbMqQmayEhgUYmfeqYPdfCYr7yKIwXwKpAqKMGrQKcgDMnRRVuk1UKtWPizDFWCP8UEncLKDHgVyBZJCDjGgV3thqkgdqa1awSdEgVD4EGeim1tCrWiRAjwKih366uKVAt4kaoezA8rFfv/iIVRaTLcCC0UmoXGqxAIBAKBeGLnVeOmtxmli3646IXgVSez/HzZmHXsWdO6WTVuV43nJ70XJ727NWhW88V59/G0fX/UAa+CE46G8R5bPpQpVqRBoSSJEXgSBEu2wRhEFeocwUAJ7XBoKQa0O7KWO86kllwvhm8u5s+37U8fRh9f1z+5yz++in9wnX14nrw6il5ts8d17aTrdQIVfEERRN92AscFxaJpmmEYPwwUVS9UShRUXZMkiSRJlmYMTTcMQ1EU8Cpo1DVFlorUVr5teZauipytyVnoho4BFgUC1Ij8euSElmIqAgQ0aiJrqAIIlmtIsWf06uG4kw3qQTMyQaQmraifmqPcWvSScTMMDd5VaA9EicEUhgSdShyz8CpDyxwrNvVAU0xBVOhiF0WN5cAsQ9sFxQS7ApeD5+aojm/44C6u4YFXgayAV8Eh6Ism6jL3/y6xAsECzdIES+EMkCqVN3fjVSKng1H9n15VLdHFi4HUl2q1k6qvYjcPuPOqJ6myZclgmWJH6sKoaKlQK7qYCgS1Aq/a/fSXrwQWqRbAqED1OLhDgRaRVyEQCAQCARRelduzdlB4VTdcdsN1P7ped263vWXXnzbt40F0Pqndb9uPR52HbfuDi9GH94s315PzWbbs2NOGOWvae44k7LxqJ1UgUqALrg69vgyN0MLiNDTCp5qgGJJmS2qg6U3XmdTjRSue1vQXx423F60f3ne/f1l7d56CVD1uklfHzRdHrZN+2A7VQSO3dcNUNc+yfXASwwCvAp1SNBVKUZY0QweRAt/imGLiz7IskCr1CUNXNVW2NBXUqp5Gaei1anE9CcCfdInLA7eXp3log1c5OpiNAu0iQ6gSG3pm6GhpYHXzYNCMO6lT89RGoA3r7qThbYfp5bp/NGk0QsPXWFNieKKkslRsGzXfSV2r7ruNwEttE9RK4xgwKkuUEtvp1pv9Zjt2fYnh4BHBw9F4zdM9QzZtzXF0F3xll2HBUm1oMRVbE41imIpTRUbWJROk6qul63SVL7ItPK2s2i2xonChckiViz11ihX9IFX/Z+y8CowKfItlFJAqgdfBrkRBo6lio2WBBUuDv6MYrNrNA+7yLMANGMVadR28innKsMDgLLSIrIy8CoFAIBAIADrEfs2edcJ5N5h3ApCq9SC+WDSvVu1VL9wMovtN93bZulk1blb1+03r7dXk7e3s4bhzOkmWHXeQqt1I2mtFgSmrqqBIrMiBV5GsIeuWavIUJzKCQPMQ8BGcoEuaJqqgQqFhhrqWmGrNknKLvZpnL7b1N+fN59v4g7McHOvFcX4zT48H/qRuNAKlEQXFsiRZKdITgGCZJsdxoFaSpEDIsloEaIDwlJpckEG8wKhkWdQ0UC9Z1xRDES1NBq+qxUEjDdPAAWfqNpLlqDNops3EczVB5xlPk32reD1QFRgoHV30TDnz9VbqNiMzc5WaKzdDdZQ7q150tuiAV0G7LZEygwlk2RQ5MKpmHLSSsJcl7TjMXAPUyhR5+JMbYdRO0nZSqwexb9q6WHgneBVTZUCtXMMzFUvhVV0ydiNVUHkKE0IVioErnoLHqEsgabgIAVJFlln4ZYaUvgqiyn3lVbvpv90S9a8CDnlO41hVlixVccCrnqYCdZ4rMldpoKCytcuzIAmqwBXp4ndi97TAS4IbgLuSijVvDDRylIC8CoFAIBAIADrEYd1ZdKNlL9qNV83b3tEoPZvly26wHcZX88bZODsdRafj6Gpee3U2eHMzfX7au1w0Nv0ApKoTinuNwItd39YscKadSO2ScD7tc0yDXUEdPvVM19FtqENL7LqtJBo36/0sCFVykCrrlnW3SJ5vMjAqiIdtfr1Ij4bBsKaDyrDVskiz8HWZFyiimOzjed62XVEEodMVReM5WeQLJ4BenyY5VdZkWRYETtdVRRbBqzSJL+bJdCUNvWYWgVelgTXs5Ktxd9jKYkdzVN6WhdDUwKs0kZU5Spc4mSMUnnRUNg/Nbua2Yqvuq7kndWN9XLen7XDU8OqB7iq0xuMqR2gcHRhq5tl54DZDP3MsXxMDTUkcC7xqt5lPbLmp4++mAnmShSBLpEAKju6CV4EXQuWrqUAody8DQgi0RFZoONytqQK7ghLUCryqSObwlF5hl2GhSBBaZkCwQKrwYpfAIrfCLhhaZhkFRArUCrwKAg4hREETeFXkVBUcTgI/BKMqvFSWtOLBisZOrYq74uAfV4dK8XLi09gV8ioEAoFAIADoECctf9VPNsN03vanLXfSdE6n+fW6czRKTibZKNXGmbZsW0eDoNjTZlV/fTl6ezO93XS2gxC8aphpe5GhpX5oqeBMGmgB9LhQQjA4W2weTIJmabbm7MZjBFokK4QmiYFtdGtJJ/UsthKp1bpJrpr686P63Sq9moWXs/hinm1HQSuWbJkoNskhWfhuYWmy5ruBZTm25ctSkSVcVy3wAJlTNcEC2yCqoB6KokjgVaapg1cZugrKYGly5FvdVq3fysGr3KeF35Gt1gLLNySI2DYSx7Q1uH8K1MozVfAXUCtLpjNfB6/qpE4z1Ou+3E/NWcsDqeokRjuxm5Hp6bzMVHiiWMAOfubrSmypIFWuxIFX+bqqc7wpiI0wmnb6o2YnMh2F5nZeBVIl0ZLKqY7qQOiCDka1G696eqRwG/pOa6gq85VXqXwxIcgREouLAqsxpLTzqp1aQQkt5FPCql3s6jupgtgJFgTxlN2KY+GweB+QZ+Qvg5UkQVVlw9Bs+NEntSp0apdvHSosyfOUwNNovAqBQCAQiALoEGedCLyqmAds+8tiyCo4nzfAq47HxajVvGFPc+OoF17N6+eT5GQUnk7i81l6t+2uul47EMa5AV6lR44HBlAMZjwNsUAJXgUatEt6BC0KD3KgQXvxWtlhVWBAucoyTUSmEptwFb+XFBsCXi7q16vm9aoFTgfikvsgSlWBPFThGk9JKSFEXtIUHYzKMj1VMQ3dgY5fEYv03xKr8KRMYqwiyZqmyLLouraqSJapg8k5hpoEbhZ7IEymIriGUmTyNKRm4uWhDYLlaXJgqL6lPX0kg3j5lmIrDETsSCBPEI1Aa4bqrBUcj2uLXvI0jZos+nnqqEz5Pa56INFVnaUdSQgNOdClSJdzz7GEIhuExnKp47biLLE9jRV4jBQorliOJpngUhzOebqXeilU4I/dPUb4e7/MBUoViawEGpxPhb/xqzwLRZ2SJd6AcpcLdKdWNCEWg1hPY1RgVLuVVaBQO6+SRBPad74FjVDnOYWmhF2ehV3sMteztAB29bRrDQ9WBzcDkueZganY4FWFWiGvQiAQCATiiZ1XLXvxMLcW3fBsVj8ap9tRsuqHk4a1GUTLljtK1VXbvV93np90b1Z18KpN37/ddGZNK7fpYWrs2XKRXkEVFE1UFR5UgKOqJMhTZb9MVWkQKbArEAWog2mBGWCHOINRXLXYQ9CShLrvDhvpuJX283DaSc+Wg4v1ZNTMArAnlubxKv5sv/giqxTTUqKmykXyTKjwrKTKmqGZUHpOCIfc0xbLcBh4fugHURA6VjF1CCphquBiQhq4eRy4qsxhZZWldmuh6qEXWboDaiawvq4krm4rnMxgukBpPCmRJY3FUkduJ3Y91FJXqrniKHc2g2TeDhedaNFOmqEe6pzGlE0OFOZApTBfEUJNiQ2t7jnNMGDLFbZSjUwr94PQMG1JFigGQmZFz3AgRJrfpbAyZBMENDADhVWYKgOOBWJKVii8RO5eCYQKiKPIFfk/sTID/mSoHkMqBCZiFXhaApTVMlcpsVChn9qhkcQlipB3wVDqzrd2psVzGgRIFUPD87WIKgMBXgU6BQ+5+OcjOZYS4Rc12XxKwSAYKvyb6/AvwrMyiBfyKgQCgUAgAOgQx81iHnA9SJe9aNryZm1v3Y+e9rGxV71g0fG6sThpGNfrxsNx73LZOJtmp5P07qh/PE5rNutJlT2NY3RRFmiewWmOZGVOArtiiWJciiiTu6GXnRxAKYMQkALoAlsheYw2eMnX9EA3AkOLLGPSaS0GvWGjCfKhsYJCCzIp0hW4rCDxmq5ahmZDgFdBrw89Ok0yIg86xUOJVXCoQIBXWfB1RVUkWX5KeeUYpqWpLEn4lt7O01YSgc+BRYFOgVd1a4mnyTko11M+T5AqhcUlumqINEgSSFVsiSBVrcTMPBnUql/3zmYt8KpOpPUSY5i5NUsMlWLTQ53BVKoSalIrdMGoQK1cUSwSQ9GMgBO79VWWKBl8kZheYjjwKksxIASKA4MBfQS1gjKyI1dzNV4TKXE3SrcbMSoeHVnsNvMUxYIqKIu16pi4cymI8iFzuE9BQAUUCowKPgWdAsfa1aEEo2IZhWPV3ep1UTBAqlimmASEK8uCDpIJT1h82l3HUm3wKmgHtYIKeBUY1c60oE6j9VUIBAKBQDyx86pZOxg33HknnHeCZTfcDJNVP4IKmNO8bfdTedo0Lxa1m3X7YlEHrzoexat+OKzp7VCG2Pv/svce7HHjSLu2z+7YUgfmnDObnaNyzpIVrORsS845x8mzs/u+3+/+HhAzOnud38CaGlxFEM0mYTV5s1AoGAKn8oSowFJUYf9NA2TNYBADDEt1IjfxrVBkZI3XhbIoViRDJCmvJEaQWd5StEacpj5J0CBUOL6ERrohmgqrMuMcHuSOGQRuEngx0Ir6q3LvlAeQsgxgluLanuf4vhu4tgOi0hRVlRVwVSOt1ZPYUORmGoGrWrXY0ZXQ1NpJ2EmjRujFtjHRbgybWWCoGleF6kIFaKVz45ZYiS2xk9gErRpBv+5Ct+a6KxN1QNX6dOvqwmiy7tdtOdFBLmWgVSfy5nqtqVajFXhRnqjAVVSd40PD9DXd4CUozZ7qGQ4U16vyJBYNfQUSrY4xgKrUS0MrRP+AqNB1eai4SWLIdJJUnY73wZAFs3SFo04p6qwCWlGogg2copVoAKV7SYMxjhKVQVaw+YuroOAqnpFRAq0Ar56DBjZ6G1BL68nSgbIpCRrPypbuSjzwruCqQgoppJBCCiGCB+LCMJ0fxFMt9yLPwvZ8e2ehs7PQPlgZ7K9016aStal4d6l1vDG6sTNzujW1t9Sd7XoTdWOhH61M1C7peMayPM2wIDICW2KgoASdzGUzwAoSK9uakwZZq9ZJ/JrEKhpHgrzFsiJVZdAVXxLEikjDt2VGZq6w5X9W2CuCwuhy1WDGhPHLVYFVyMPeDABSgCpNISNQHAMWsBzLBVGRWHWDZFvIA7BsoBVKkohdktMw6jTqaRh06mm3UQsdUxM5ylX1wPV1pRn5g0Yt8x0yla5asqS/8ia4CguucmSm7msTrWiqk3RSK3HE2XY80w76iTHbCec6ScORwVWdwMgcLbUUcNV0uz7ZrPfTuBn4sWmAqyxRSh2yho/OiRorSAyB0dgNHc3SRVUTFKCnzCnoLpLTHBCpOi5YivirdBq6jhLqGr6hetRTBa6SeGP8MkuxiWcN4ovK4QmlyFuUq6plBZvUwC6UpXFeBXDq/oXXSuBVjpUlXmPKAkoglGWgV31NMdDDtuGLnIpKXUH3klWZBU4BY4k88K7It15IIYUUUkghRPBAXBrVlkbpbDdYm65vzDbBVVcXu/sr/b3l3v5y/2hjuDFTW+h7cx17eRTtr/SONyZ25luEwKazzdnW2lT9kimIZPkaTgJOMeNVkMFFQBWJzuEUR3cDO/StMHTi2Es9I9JFVxd9ibGYMQkKhqFZLlGKVZUdF6F8WRUqGjOmjP+DzVe7IwNPZARK1CQB0KAIHFmAGZvALMciUVZ0HFBTdEMzsWmbaCxJHO9ZdhZHkeeGtp36fmAbjq4kjgmoqnkkXL2Xpa04dBRRqozrPONpJM9nZKuxpUYmeEjt1XxAFU0NWg/Ubmgs9GrQxX42WQ8Sna/Zaidy5nqtXhK0Q7+XRDQvaDsKwVWBTrQVxYntgKsMXtJF2dGM0PZNWQdKgp+AnugolFCpKqmcaoimKVm6ZAKtNNEgUfm5QddUBlHROYAEBcvKBTyBnKizClwliw5IC5UX1EXjqwRep1MCmaoMGwagimUktiKCX0FRhuqgb6HoZHQviBb9D5wCXSmijk2wl8gpIGqekQquKqSQQgoppBAIHoiLo3Rlsr48kW7OtTdmGquTte35NqBqa64Jctpdam/N1UFUg1RpuuxMy9pd7ByskAmDN3fndha6sx3/EhnbkhRVAEuJQpW/wClV0LR8SiBKUyEZmBzdA1r5ZmwpkavVgFbApuoVUWZNTXDEqi4xBldSQFrsuMyXda6ksWMaO65yVQVPdDzL8dTnWQnPe1UmfhQoAAs21NQtgRMBVa7tgatyxpKhhqL6tuPbliKARCSV5xWQk6l1azFdyA9c1Qj9xLEAKXK1BK6yJD60lHbqtyI3sTVw1aAezvYbk+0YXNWKzInM35rtX10Y7S5OLA+bTVcFV9VdfWHQAVc1PIegVUpTWIWBRjIseKqWeT5KqcwArUCidB0bMgyaUxS6CERF51FqvJZ77wCGJMe6ks8HhCGjE1iFTgDUZEfkdKgq2aAoylXUAFehBEUBoUBUlKtAVDTKCrAF0gNXcaxarUhintSK59A9YCaSasExA3AV7VXavSBaKCq5qpSDlwfMYquiwCkirxZcVUghhRRSSCEQPBDnBwm4an2mCa5azfOCbs41N2eby6N4oR+sTSVXF1tgqemmFWtjQKv1qdrJ5uTB6hBctTZV7yfapdiyFU7QJc1SbTABXxHIjD9WBiKgBpjFlQWQganYnhm4hq/ypqmFjlEz1VhkbQbwVNb5qslVDIGxquNq6bKEEpuohwqskWcQkNmKWC3xKPFQNzTbMlyBk9mqgGd/pcSiZCo8uIoOCIq89BdmmVbguI5hShxvKQpXKpUv/8PW5B6gJ4li26h5duiYIC0QlVQZB13ZsgCyaIRe5pmeKoSG3M+iqU69m3rN0OrV3KsLExvTPdDVZD0YZmFqKZmjdWN3UIvqrllzrHYUDLLaRLPRiSNfVWxJNgUxNGwbtFflUNqq6eo21JR1QBXxTsnoLgf8hO7SBQNEZUqWwqpgKeqsAlcJFYUkAuUBOi4NroINrrqY90dLOtgHA0p5i3qqUFLHlWWGquKwjMJzGgBLlixwlSKbICpVMjXZAl2hh13bVySdrGMjGqi0dJf+K9BxQHAVOkwu5gMWUkghhRRSSC54IM71oqVRCq4i4epTZH3A7fn22nQ23/PBVSjXpmo7863FftDyuLbPz3Xc1YmUJmefbrktX7wU6BZZClAiUep0BJAOAgKwaCw2sMD5O78UlOReUgNLj4BWMMBS5TGxMqaAn0BaEm+BsUQOGORwQIQxpVqSNdnBo52rSuUxtjLOwaCjVFA8+G3T41lJVy1VNjzHB1dR3xVUVw1L06G2bhiK6miaxDBCtQSKynzXVeXQ1Mh8QN8JbANcJVdLriqlrgXeiizd4CuOzDVDZ7rb6CS+q/A111ia7B6sLcx3a5klgauWRp1+6rdDu5d4ncgDVzV8t5fGw3o2atTbUegpssEDl3hwla+ZrqIntucZjqUYdFFFQwRFWb4Vxl4K7iST/liVeKoEg7nCMuMcDasCV1Wv8Oy4yFXRVyS+CgriJIOkokNDqaCgKDoUSEcDoWApSbAVyQV+0QZ5oLrJsaoi22AscBXHyppqU3+VDfaVSPgaDWJDx3KMJOVTMgFVpTEGJf4VmIpQHmeL+KpCCimkkEIKoUK5an4Qr06R4CrozkJnb7lPuWp5FG/NNjZm6lcX2jsLrfWp2tpksjyMphrWZMNuB1InlBsuf0mpciovG7JJccpSbVOxAFioEargKknmVDVPawk+sBTvYt0Vx0xMzQdCwQY8VUt4Wku0LI/xKMlKLGVl7AemdIVDG+AU9Ze4VkhjgNiqgAc/FERFAavV6NaSRuiTxaBlURF5MjnR1sjCgpokqzwZCmTGxjRBSBwrsoxOGuMDsWeLTFnnWZKXSZVj22zFAdDKkQQfm6ae2sQLVfecbhJNtGo1W7WFClhqZbI31cq6sT/MYmgr9NEALfH1g6w21+91cWxFDkGMDG/wErjKllSglW+6hKsE3ZRMjddIoLru2RrIjWRSAFHZigO00ngSt45dPklTGnElyZAcSw9UyQaAarKnK74iOtRNdUFRdMgPqik+GGv8igCuMvWI4hcAKwobwClRMABYKE0jUGQyFKjJVh5BZYCiAFWO5aFXJcCf6qCGKlMGl/ICAJpXddWujLMFVxVSSCGFFFIIBA/EhWG6MEgWh9B4I58MuDFL0igAqqZbNklhNYpBVLtLnf3l/tZcc20yxebCIF4epd1Ii/XqpcByZIYkVqCRVTTyGpvgKpEBaUl/RVsDFyQTWCBWSe4lQBL4wFA92FCmTIgKIEUdMAApKB7h+QigCsxCSR7nrAKuolClKza4Co9/mmkJNpTOFjR1S5FUSZAFTpRYEVzlWTa4Cjjl6rrCcZaigKvAT80oIBTmWqYiAqoy30U9YGvUqtc8G1AFQkosA2gVAFJyxspcOzaUQOUHtWBx2B7UInDVdLsObfguFO1RznQ784M+uCo2DRAVuIoM/0mqWKpCyQRAwGi+fA3QCgbgyVIdOuSXuGloRUArlfs733qeYx1dp4u2rriKaIGrQFRQ4uH7r7SfdLCPYhZlLODUfyeyAlcBpFTFoYOAHKvmMew6uIoGpIOuVIksDkjzLFiGi66m8W0krKoCBBVIZBWnoCy4qpBCCimkkEKo4IG4NJEtTdQmm/Zsx18aJauTJNvC7lKXLGIzjNanM+j2XHNvuXt1oQOoAmZtTGdLo3RpmPQTo2Zxl0xZtWSyIKDCq1Bbc8EHMkcCg8BVJFuVSBYPBhbQGX98WQZUVcvYIGyEBzYUXFUZF0BUAlneTgZClcdYpkJACs9ygJfEG/msQJJgCZ+iz3ia0cqzwUWh/HfaBTo+KPIKuIpnBaHKg6sCx7U0XRMkUKApy+AqQBUQioKUzrP4sKcpQCtfV+uBB96yZRLO7Uiip8hQGK4sRQZZRzlQxbprznQas91mO/QHtWRh2J/tdUBU4LBQ19pRODfsQ7u1BEezRCUynUYQB7rFj1Wh4Co6AuioxC9lSiS4CkSFvoLRqXVjJzHJas4GXQEQRCVUFKo8o1MVgFNU84B0KOAJOEXjq2CUxyVAla4GqEcNGtDRQDlfGVASTQAWpStVsaAAVnQsoApKI9h01XTtALxFQ6x0hTi0BJZMz5R4kBb6uYhbL6SQQgoppBAiub+KrLU82bTmev7yRLw0ilYnk4O1/uH6cH063clXCTxYHR6sDrZmm0uDcHmQbE43t+Y6a1P16ZbfDpRLtmqCq2hSdSgQShV0oSqxJV4iS90pxE0lWxKjkZhrRuNKZD5/pcRqCgmRBjkBm6olsTwGlhIBWHnwEB7eZOofUAkQlg97Ea7Kg7VJwgU8/lFGfs3SPTSm8UACJ6MsjVVzqFJlUeEYniuzpmJEnu/bjq3qoe0CqjRBiCwD8ARNXRtgAqX+qprnoEQlAE1jqgbHgq5oCa5KLDNzHVvgmr493a4PalHDcyYa2Vy/O8hSSwCHkWVigF/9em3UarSTCFxVc4NBvTXZ7sEweAXqaCQoTeVUW7HpkJ+p2NSrh75qpx3fCDTONASymLSt+obkQAFVzJiAXmIr6B+DopXImVwejY6SjvpB6XxAWrJ5JDsMy4hBfaQxp4GrVMVxnUQUDEP3DR0XHKAz0e3oW6J5Dgt0KQALBIweRocbKsmxDpzCvwLoClBV5AUtpJBCCimkECp4IK5O19dm6rNdb3EYrk9na1MpdG+5e7Qx2lvuHK6PjqAbk9fWhuCq5WEErtqYaoCr6Pp4o8y+FLuhVJW4Ms9XhHwokCxjhxJcRV1WmmDpok0cLWUZJbiK7gVvYVcOWwYzJlUuC8yYwo6jjaZwBnYBMiifgbS4qlIZF+gQmKF6eMYHbhIHGcisPMbyDJ7xhMOAAiA2lNiEslWhOoYvlgPHDV0v9cPY9U1Zllk2tux+Vgf3gKJ8XXUUKXGsXpZ20hgGalxV9lWFJCSQFY1hlQoYi4ftKbJWLddss5dErcBrBt50pzXdaYO35HLJEniVrUqVEo7QikOawaEVpROtbj9rh4ZrS7qnWsApQJXCKjBczXNU19ZccJXM6uirZtTx9YhAleIHVuIZkaV44CoZdFdWGdASo0u8lYemEaVDflCAVGlMBFcBpIBT0PK4NHaZxyZ4T1cDRXJJs4ok8DrQyrYiMBYAS9cc0yC9ip4EVAFV6ZwA9CG4SsnXYwZLwQB4gagETqmWeTBWEbdeSCGFFFJIIVTwQFyfbW7Nt+d6PnRtqrY939qYrW/NNa6tDU62Jk63p483SFaF3aXu5kxjdSIBV60M05XJxvp0Czrd8i95hqPxmsTK1F/FV0TAENCKplcgceusrvIkRwCIipaoYcdFAITK22JVl1mbK5EUoDLjCBUDNioVzgJdUS8Xnf7GVsjEQJ5RgVaqZPpOHPk1Er1eEYECQKjyOPBKAw2oskF9XaisXCnzFc7SdKBVFsaeYWmCIFQqkWmBq1KXrCEM9TQScUW5CrbOsyCt2DQSy/RVTWc5uVwBXZm8ALoyWTa1DEBVO/QnW43lydFkq0niqDgWHGZJArgKHwdUUX9YI4g7SZbYxFlliRq4Cj3Gl/A/YMr1dJ+gle4ZMrlk8BO4KrZrgCqiWmDKLurRdegTglb/NQgIg81zVoGW6FAgDFAU6ApKDZSo5PMhQhiy6HCsCq6iEeuwwVWqYmnEF0XmRAKeYGiK6dq+oduAzAuuog1oZFW1xIGr0OEFVxVSSCGFFFIIBA/Elalsbbo+3w/AVXki0M7mXH1tKtmebxys9o83pw5WB1cXOhsz9fWpDFy11I/nO+HGTGd3abg11yVcpYuqb/hmvnQdSuAUHQGEoQkWX5ahwCMSVlWSAEkwQAnsuKwJjsI5YtVUOU+sWHzJULkABjeu82WqKgALTCbxBoiK5mqqlkBRJOe4Z5PIKhBV6QqZ+V8eY3/4P+NcnrgSTMBUeBKexclcmWXGgWaKZ7qB5WiCpHActOZ6vVoW6IavkeG/euC14nDQyIBWsW06soJdrqyEuhFouiWIUE9RwViojHW94bpNz+vF8Vy/tzgaduLIlaVQ12oO6IksCh1ZBo5JBxZTxwdaAaeUqgCucmSyXI9YES3Z8nQPUGXJZKYkiAo9BiNxsshKXTUwBKCnSYPWwVUUN2XBplAFQ+ItcBWAic2TV1GlIVblcQlQBeQS8hzrqKe2oYWKbF/EVwGwdJCeYimyid6DUorSVSv0k79WDcozWoFl/wIskQBWtcwzZb6IryqkkEIKKaQQKnggrk7XV6cycBV0Y4Zw1fZ8czN3WW3M1PZXBrtL3a3Z5tpkbWVUWxmmi71orh3sr0yebM1tzLSHNesS4YN8IhuNvK6OsVAaag1KINFU42KOU4SoQAbgA5U1uDFZ42yVJVyl8b7MeALjihUHdEW0rKMBc1nkx4FBBnFx5TkwgVPgKjCWY0ZZ0smSFh72dPVA6krBJkgLTFApsdUyR9IEsCJbYhReBldZiiYxnCGBX7RuWptotUPDjC2bTgxsJxHQCgaQCFzlqRpYClAVGcRlBSO1ndTyYGSuV/dcIFQ7Cqc77WGzHmiqWB6PDB2Hog4w4BRsMBaOHxp25hGuUhkRXGUJhlSVNF5zVAdcRfMp6KKN7gJC2apvSa6jkFKuEncddlHqEiqaLrqGGiiio0qubcRQGICqixFAlOAqPg9mB1phF+UqqCK5gCrLBP55+ZqAhKh4TkMpS4bAq2DTaokHOYFTZVHzvcjQLJEnvYruBVShb8lAoUAmDVRLHFcVwZAFVxVSSCGFFFIIBA/E5VE62/Mnm9Zsx12dTLdJoHrncH14bW2wOdvIF2DuUK5aHqbLA+KvWuhGB6tTx5uzC/2k5cuX5DzGnE7Zg8LIbZIIgK2oJPqnrIxf5qvjJNRaZEEPji1aNm8qFVVCZUkv/yCO/yAJnCOyjsx7Mms7SuhILn+FE8c47jKhNMCELNhQGl8VuDXbCPNAK7cyzuEEPDuiEwM1mSxuA6UhX/nQpCBUuND2L/Id1P2ol9aAR56i2qIEKpof9If1LLUtABPwyJFkkxcsEXRlZF6YOj4+KIxXwEatKAVyCeMlsNeo2Ro2monnoUbhOLlSBbR5hgFus1U19f16FLm6LrOizMgAKZqtSqxIMqMApzzdb0TN2K4BNMWyQiiqrHBjomckpuyrvC2zpsQYgFF0piZ76En0Jwz0BlWgUu6LMqGy6GCTMhbFLJZROFZFOXaFBT+ZRiCJJohKlci6NDS7euAmvhOjBDaBmbiqxJQFOrRKA9VRqoKWz0gwYDDj4GaGr5LRXlXUBUYsuKqQQgoppJBCIHggLg3CpUEwkWnLo/Daav9ofbi32D5Y6R4s9dYn0p2Z5s5sa3u6sT5RWx9lGxPZQjeeqDlbcz1w1cqoWbelS4bqCKz2Xwq0MsEBYCBwFZTkTAc/MRZXMaCG5OmsoVdVcVwSxxRwA181oYrkl8dVGNUSCW+XSiJ/hVXKIrhKrKo4GlfV8tAislwgnSHoO2noZdSPQl0pAAUozWUFrhIZCSgAtRQj9UmaA0fWItNpx7W659NgqdgkLLU6PTXT7cAAWuVZFWTwFrhKY/+iK0vUTEF1ZMNVTF0kke++abbSFPAEkDJlnHMFLBVYFmoixwltu5kknSyLXR9I5xu+q7m2QlxTgCoVlCORPFXdrNcI25bkkpQKuLpxibnMAz2hlKsIVDFkyE+VXF3xoTDQwzTKivqlqmWtUvordB04RYf/yuMSEApcxVTlakUCVEVhQ1NdVAKboHRQzzZ8Eydm+LkLiiwThG6EYhd6UlcsQmC6iz40ZNNULXRp5UoVfUuWKlJtuRgHLKSQQgoppJBc8EBc6LnLQ3+u66yMwqsLrb2lzu5CC1x1bWWwM9s8WOofrQ4PV4Z7C52dmfbmZH2+E4Gr5nrxxkx7phU1HPmSwCoAnQulIdUUrWAweMCPiUAiiXNAV+UrsiJ4YlmTKjpzWRz/B8uMSbQNXc2G8hMdPeRLglSVS/9kSAy7SCLW6WggvkURUWMlYRNoBQKAUroCChCnSx6xTtd+htqaUwuSRpylfhhYTuaFvVojcz21ykDBVa0wWJ+dme11M9fxVcUSyLw/X9VAVHKFBVqRDOmaDbUlXakKKk8WTgYwJV5gq2TZaU2Q+HIVtm/atSDKwhjf1Uqzdq0eOR6QLnZiR3UUVhHKIi5KYVWgVWCGWVCPrFTjTLmqgavEsgJlxgSJIblAadi+JgBuyIKAdLlldAL4lfY2ndZHY6ouuIoO/6FmfIwrjfNAKyiaEaIC0ikkXgoUBZwCM/lOnPulSCYFOrOSQirtTAPcpZJEr6Ao9GTOVfL4D2Uy1Jt3LzCr4KpCCimkkEIKgeCBONO2ZtvW0sBb7Dvrk/HV+cZf/qqV7vZMA1x1sjZxfXMKdLU7110f1cBVU3VvqunN9+LJut+LzEssScANNpLYigz0oVCFEkrRqlqS2QrxVwGbSpclkbUVwTeUmJIWKEok6dcVHIHEEuXLCauSTQFClVxQF/V7la5wOD60PMaDrmiUlW2QgT/b8B2TpK+kGZjkPPGSJupQPPgt1c7CFHAD4gHl1NygFaV1z3ckWWc5W5Qavjc/6A+yWqCpJs9BI8OE2hI4Qgl0K7G9QHc81XIVkySgkhTPsMBVoDTYwKw8HJ7wlimrqK9HCdCqEacoXd0OzMDTPV3Q+RIPWARRGaKp8TodCjQEmx+XhJJM0YpslmVDcizFo+HqACxcLDgSHYIS9gVgiYIhiSQpKIgKpcCZlTwpKJ+nswJUVcoiJSrgFFqCq2wrAkihl9BvUNcKwVLYhNLhPyAXOBUGiMoyPHQpulGoinQokK+I5StVrkKwVebxz1qMAxZSSCGFFFIIETwQAVVzHXuh78y09MW+tz2X7S8TqNpdaK5NRDsErXpHqyOUm5ONZRK0Hs61o4VBCq6aboZTjeASaOYCqoA7ICFFdOhAFbgq9zPpZLG/igG0gsqiL/GBrtUUKWDLusBqGlm8xbTzVJmmYhEPk+G7Fkli6Th1y6oRD1ZVq4wLdKixWhIBXpYeADI8O8mSVrvR9+wIlBB6KQyadZ3GA3FlHkbiRaFNMCj1w8wLQ8P2FBVcZQki0CpznVGjjhJEpbMMACS1nUDTXUX3VCN1fKAYuMrX7NBwCV3ptm+6UM9wSHpPXoZaimFIminrgUUcVJETxG6IkqQAzdf2oZCn8JqtuZ4ZoNQlk4T8CyRpqsL9lVodROVo+GwWOTXsyoP9SaYJ9DCFKlw4rhpAiU0aPgWEYoGnPK7apnMDwVs0MRVTlaGwLdO3rUDgVTL1TzSYsgByQo/ROZUXYekUqgBYKPEvS2kV3YiTx6lSriKRVYIOqDJVW5OMgqsKKaSQQgopBIIH4vLIX5+KlgYeuGquY8DeXWgcLLdRgqu2prPd+c7BYm97prHYj2ea7nwnWptorE23iL+qFU534kt4NlM3Ug5VtqEGuuLLf+cCAGahBFeBqDQpMJTI1FOB9yUlFniXragSS1Z0CXSSlWDQyOp+YEhgK7IKniBYmpHYdibyjiZ7smCiEl8hcjrYwjEjbKJMwjq4KvJrvhN3mgNgFkkNoBBEA66BCXA0IA5Yx9GMepQ0w4Ss0zdeAlHR1AnNwO/X0tg0KFf5qpK5Holn1y1wFSAsMh1wVWz5UFcxQVSgNE/3wEwOASNFZmQAFmpwLZZsod4QDTCWCzQhkyV1nIbMKZSrDLLsj42SA9ywCnBKF0ledRDVhR1YiW/GsIFcgC1cO7qXKnrA1HxDJR1CxwEBUpSrZFAsa8DIl6ZxoAAsyliaahu6C66CAVQCNuEfzlAd9Juu5MHp+aQ/KM/I5TEWaIVKy/DQDCePznRgiwZbolFrYEQSX2UoVsFVhRRSSCGFFALBA3Fp6K2M/LXJaKFnz3fN5aG7PhXvLTYPVto7c/Xd+fb+Ynd/obs5lc22/am6vdRPd+Z6W3O9hX4CrprtpZfI+B1H3E5QPOk1GQzkUK7iGV3kTDqKJ/OuIniq6Ntmppt1zcgkyVNEC4zS8L2JRro22duem1gYkFX2gFYcI46P81XWrDBGeVxRRDLsRQe/wHBgCxAGoConOQdoFQdZLW72OxOBmwCqdJUsWWhrjmf6KF3drgWJZ1hZGNf9yJE1jWFdmfBTMwhbYdBLk8QybRFH5wJNRT0JabdcEFViezCoswpnC3LyDb8RNVKvRhZGlCwdOMIoKC3ZBmAprAo7j6BSUWMrtsKrYJGLfPRQglO8VrnCAFP4skzTK4CigFC0RA0MkNZfpeKCpajXiqsqBLNEAlUoDd2X8mWVAVU05ydAStc8qp6bJnHDtgJdc8BVqmIFfmpoNl3zB+o5oSrjsySxqsgrNMd6eZypljnUG7qd56pQZI6sUISyOsYy45yAy6mKEqsqvF5wVSGFFFJIIYVA8ECcbRtzHWN1MlgeOYsDC7oy9HYXsoPV1tZ8bW+hs7fQvTrbWh+l0013MrOWhrW95dH2fJ9yFfFXUU8VSvrIB2ORp34eWQUFUVXGJQAWoIqrGGxZ19VYEsMqa5XHJZkjZDNVT9cnOjc25q4tjrZn+73IsWWRr3DlEletqv/8Jzd+RdBkD2ABkEJJx8LwLXlwleOYQRo1UNqGD8BSRJJsHaAAmgFa+VagCprECECiyPGImk5o2Illt0KSbaFfy+qe24mj1LZcWbrgKp3laD7PblpH6SqmLenEESUBWPxha9SpdYFNumAYogmKgoKuuHEepa044C3Uw3BUF6eBk6Gh36pAMAVQRZN+kZT0FUViNC1f0geMBQNcRePWTdm1FA9oBQAFQVKmhMIAVDFVmWUUWbJU2RP/Xne5XBKqFYnGXYGrHDv2vYSmU7dMXxJ12KbuSIJK1mdUzCTKAi/23Qg2WBYsBQVjgavQhzq6UNJBUSyZXCnjbAFVF/FVfBn/gkW+9UIKKaSQQgohggfiVFNbGjgLfXtpaK9MuCiXB+5VENVKY2062plpbE03NqeylX401XDAVcujbH9lYmuuN9eNhnUPeqlaEvGkB05RrxUYSyeT13xFdKolmUadk7Ksy7xraYlvNwTOETibuEBEuem7q8PW9bWpezuzd7dnDuY7i73aoBZlnm9oNs+RNYNxBBwK32KoHliKjoLB8OzEtUjupSxp1dN25NdAV5bugat01bJU25BNWmoCGW1spVkna2ReSEb3dANo1fADcNWoUQdagaiUShlQBcaiWRgsUYktt+YGaK9zMsmzoFme4cRemgZZLaxHbkLXn6FrSwM7YKDEpWETuwI7qsdNWyORSaAr1/BsjSwFaCo26ApchfYkfKqiUL8UJSrUAKoUzkBJM4KiVylU0ZAy0CR6BuSEElx1wVu0GXUcopckXjM1l4730ZE+9A9sutQP0Aql54SuHdBN9BtT4UWeBP6DsbCpKQZ4C6daGWOYEoerYEt85Qq+zGDGBZFRhWqxPmAhhRRSSCGFEMEDcWngzrb12Y6+PHLWp/yNmXBnrgauWhq5g5o003ZWJ9KViWSm5cy0vNVRbW2qudBPl6eag8xuR8ao4ZNxQKAVmfOfj1JBAViAqovodToOyFVIUlBV9A0lIqkWOFMoCxrDZqa20Ap3pxuHc41rs/XNYbzcTZaH7aWJ0bDdB0OgJeUzHFYlCS1JiBXAAmhFvThAB7pWoGdHgAZZ0IEIIAM1T7nk6C5oQBdV8FDqh916sxHEpiADm4BW4KpuktJVky2Bt0UhNo3UtnxVMzg+Mh1wVWjYvmaGhps6YWB5lmKogk6xyTV8CklUKSeBQqDYxC5LddAGbJd7qkj0N5ALH6fNYOAjJHyK1cFPUBq6DsPRAuq4Qg1IC50MbMLFopPRA7h8QJUoGCyjKLJNuwJQRRUdhRKNRQ74SdKlXvQMuMq1CEg5lg9gyj1SFhSkRTdRD9ICWlVKLGpMwyHJwMp8dZwFWuGcady6AbDDPzR4mlEKriqkkEIKKaQQCOGqoTvT0ibq0nzPXJ30wFVX57O9xfradDjbNYc1bbbjznX9icyYajgXXDXZ8jNXrDlSN7EIV0HxvMfjPE+XQFJYqRJZbkWTPYE1uGqeLJS1BcaSOEeTApRCRRHHeYPhmrYBkDqYax8vda5Opdfm28crU9eW5xYHg8wLFZ7M/itdEXAQOY/dpl8E+2+o8gENNLgKCps4ZmRD4GShKoJjbM1ReFXhJHCVZ1idrNEME40VpFLZU9RmEPZr2fyg3/A9X1VAVDAiQ7dFyZFkW1JdhcwKhEHSK+SrJoOrAEPgKjDThfOJjuhRxxWNoKJ7qe+KuHwEFYqzqpZ4rioR+MsTmQJ9cEW4LuqEw6VBcTQck44Y0pIFzbCKpXvUUERDy3NQVSuCIv8V04YOoR/Pe4YEodsG6Rw6rQ/oCaKi433YpKR1MQEQBjZJiDrJWUVyWdFEVpqMM9dEsqi2xpZEvkxStopVReUNbBb+qkIKKaSQQgq5EDwQ5zpWP+aGqTTbNpaH3tpEsDmT7i40rs7XN6fTmZa9NIiWhtF8118apTuLvb3l0fp0a9RwE4uLLL4RaiS+ipIBhZ48HxWe9J6lR7Jgg7GgMGTepVxlKJFQMeSqZnC6rxgd31nqZ4fLw7tXZ/fnW8erw+P1uY3pQTPwVYakBpVZfewHjkRoiWTiIRgO9IbvogNeQCvQBoghcBMoGALYIQOoeAVcJbGyIZtkIl6V1wTF1c1mUqv7kc6J4CrAE7hqqt2ZareAU7Fp1D0X3xvqGqCKuKx4knLdkTXKVaaghoZbj2q+EbiG7+hkUI8CEECKr4iwgVbAICi4Ckq5CpxH/GeyoUg6wIiubQyggQ18YSsyLoT64WhPcmUBH6TeLAptlMBwpfgsLhA2jgBlGUmWSKLUiw6BkY/D2jg+2tMOoSOAUNskg6R0E52GvbQlDgUIu8ApVKK8ADjqnMM/BHBKxbdUZBn0hn/uKjq54KpCCimkkEIKIUK4qmt1Q3ZUk2da+nzXXOjZK0N/K0er3YXmykSyMdPYnGmsT2Vbc53DjanD9ent+d5ky49N1teZeqBeMjUfT3SRIyvM5IwFwCJpq4BWNLIKSETC2BmLKWlcxVBFX6yahuQFRpw6Yc2xe4m3OtE62pi5c7B6vDG/Ot3tpbEjK9w4x4wJQkUrXRFyODMBEHTM8QIjAFuG6oAPwBDUAUMcQowIgqGz8DRRB1opnAS0ohk7E9sDLWkMq7NcYtngql6atMIAZwK0AlT5JIdmntqKE1WGh5qCHOhOzY0aQZqFKbgKnEGJB/QDcgJIAa0oCcEWqvhe4tZCDaAEUAU1dYcEjPPgThUoQ8EFSrnqwuFExvhYBZ+iim8hvqK/3VT4LOgHJRTEI/CqJOroE+qmuvBX4fggJIpWaI8PChxJQ6+rFoE8QSe+KycGXdEGAClsoj7PHBaiPT5uGx4aCKysi7Ypu+AqU3Et1ZMY1ZCdyEllzhCZIm69kEIKKaSQQojggbg08AeJ2AnYQSJMZupsy0TN2mS8MZWuT8ZLw2h1srY6ma6MAFit3eXB9uJgZao53Qkjg/G0ajsxL0V+Xc2zHlBnSZ4QgSyQDK2MS0Ar6rICVFXGFLpWIFcxddH3zTSyo0C3Ikvv1cLFic7VldnVmcFEuxHbJjBo7B+l8g88VwVV0IOQKYfUXwV6oI4ZQyUJwS/4ALACOKiUWNCDLgFxiL/KNfKgKF4mzqooiUzHllSTF2j+qk6cDLIatBn4nkJQxZXJICD2aqzgqUaevMryVAtoFRquo1mBSfxVlKsAVXTgj+IUGAg2VxZoDfZaqgOmEXnF0GxwFU4PSITzBLjghLGJfgMj4kLQjTDAqaCxi4NTbqMUhRLtcaUooYQjRV0UyMAoPoveoC69PMqNrABYi5tp1EAzcBJlO9v0cBr43oseo+eDBp4dUcACWqHM25BhRHwvjfoSKooh2SoYuqo4egCuUgUwn1lwVSGFFFJIIYVA8ECcbpmdgKvbpaZb7gbcZF1d7Puro2ip74GxFvohiIpy1dpUY2u+sz7bWRxlazOdfs3qpNbcMLvkmAlogDqQNNm5WBUYJZBI4q2/ci4wlsy7fNUc/0FkSjrQiowJSg64R5cVx9DjAGTAm5poaYAJhRlnxy+zaG9pOD4ZT6yWyII5gCpo7hgjzqrcPWNQdGDKAleVwAFMhadcpdKElrprqyZ4iARXJbXQsC1RoRlBA02vOe50pz3ZarbCgHAKywCtwFUAL0BVr9aYbPcaQUxXXI5ML7A8j0Ssexcp1Lkyz5Y4viJAZY6MP15sYi/BuzyyirjQJB1nCAXKoATT5F4rwlWgIvQhrouMBuZ8RomNDgiCclwrpAxkai5VgBH1V6Ef0JM0IwM+y4xz+KAhW+tLm5P9aRphRmcjBnaIPrnoMXoy9HxwNByTMhalLrQx0XWGT7kqn6UIA1zm1aN2YMcFVxVSSCGFFFLIheCBOFnXJjKln0htn2041V4kzraspb4/33EmM3VlIiXjgLPN9elsfbq5OdtamWouDGvbi0OUCxONzcXhJRAPme5HklXamuyBoqolmXqqFNGh0evYZSiRZ9VRVsYUtmqWxhQCWGSUUGWrQnm8UhorM5UqyrHL5Tzfd55eoaxBcRAgWnmMB1ddeK1QgidyKCFLCIMGqiVeYBXPjkReAc0AeqDgCTof0DfdVppBI9MxBTnUrIYfZK4Xm9ZMtzesZwCsPNVCVWNYSxBtUQJXgajqfkTGDVkpNNzMi8FVgCeQCgBFYmVAVXWMgYKlQFEXXAW+gcFXyLJ6ODcSR8/iYtEzHPgP+IJNyjS4EOpwglG6wqEnAUaAKopWdDCRXiOQEe1R0lE8oA8OiINjL9rokplHzUt8iTckrRYkO2tbC1Nzoe0rvCwyAs4WvUHSKAg6DoIS5wCwo04+HA2K3sORQVSocUwfUCWwMrhKEyyoIdmG7HTqg6WZ1UbcBlRJbJEXtJBCCimkkEKI4IG4NAy25+vLw2BUU+p2pelUJzJtvuPNt93Jhrk2lW3OtbbmWuCqlYlseZTOkuVrgvlhbaYbLU42NxYGlwA9ACCRMxXBk3mXzvtDSZdVNtXYNTOSWCFPsoDyyj941LNlHcqUyBgfmS2Y574CUgCexi/z5TEyBxDgVb4i52sIktDsHN1MKNCqWhKhlAwAAXQMC1wFBbUQ94xkOqpjySQZOtSUdVs1UyfsZ+1O0gh0y9fMTpL1ao3U8ftZs1fLmmHiqZrGkrRVrqLDAIF103psuVSJl0sFYRCoUiSdRixRVBq/XMX3wqYKe+wHZuyHCs4Zp4cTBkhRr14+VGqZGlkAEZcMQMS1azJpUxkX0B4NAEkUp6Q8BP6/NmXKcyBFz/QTPw3skPjAGBFsamuWUOWFCqNUGWHsyqhRf37/3lS75SqqKcsSx7uGEwWpJOQn83e6BxwZAAfDzlctdA0/sCPY2IuvCJ1Y4khuLUCVrXqm4mqiFbm1etS2NV/mDKGqFlxVSCGFFFJIIRA8EBf6Hommmk7bIdfw2LrD1l12puNNN726zU82rIVRvDCRbi31tpf6M71goumBqxqh0kmNmX66PN2+RAb+WBtqKJFvNxyjRimKlpoU6HIIxuKrJm0GTqqMKYSocq6iweywAVtoc1EDpTYq6SAgkAvkgbJ0hUOZe60EGnANdgFgKfkUudIVJrDDyI483dN4TWZklQNY6JZiWKIWmV7m5fHybtCKUrAUgCnzyCaYSalyKsPT9AqgKPAWFPVog8YoUc+VKsAaU3dU2SBAUxFxGkArGGA7KLAJbESdamAmQ/Uu4Ak2jU+ngAWWok447EV7ahMUyyPWL7gK3AOFQcPwLdV2dNc1PHAPDEOzRV5hGdHULZkXVJ43RV5nq4vD7rvH5zPdti2L4CpFEA3NdJ1QFEiUPQ6Ir6BTGgFVwCwobBopb6kOSjLbUbVlXgVUKZxhSI5GgqtUAJZvRvmUQLOIWy+kkEIKKaQQKnggLg78talkdTptBmzD41uB2IvV+V442XBTi808rl832rHaz8yZfjjbD+f6yUTTT10B2sscoNUlkgJU8ABGUFX0Zd7NI9MNS0sAVTS9AtiIwhNstCFDgWX9ohKKj5QuS6gvX5Gh2IRSG5XgKoG9iN8iyQio+0rMA7pNzXWtUJMBK2RIC4DlW0HoRGAOEvw0zhG04mWZFQlaKYYjEwUh+ZoZmU7q+HU/yiOoNKnMAKpCww50K7G9Xq0BhQHwAoHhIyRBA0Nip2RRkwQygpkP5BG6ot+eD/CR0wMIgv8AgoAnnDlO+4KoQFGogY1KtEQD2KjMxzSJQ44OAuYgJcMG9wB3cpfV/012SoLxaSp5hcAcz8nAJkNRHU3zNCXU1Z2lhU8vnoGrLElAJXbpqmEariyR5KU4PnVZ4bBQ1NBIeVoProrcBNxGhlCxS3aBVpbi6jjPKiAV3x5KDPhML7iqkEIKKaSQQqjggTjZNmd79sIwyJxyZjOdSB5kxkzX78ZapFc6qTo3CAd1qxUrE213daaxtdBfGNZqnhiaJMnCRDskXAWEElkbkEQ9UgAmEFXktYFQ1FN1wU+wQVpAJdSAsShyQZmSBq6i9v+jZFSRM6GUq3TFhQEcAbLIAgkDB1VQlxUdg0OlzCmUPBReFcoCWQuZk4QKB6gyJE1jJbnCyxUWkAS0Ald1kmxQbwGnUAOigoKuKG9BKVfV3MDgJYCXJpBAdY4RoWSiH6fS8Uechp7nggIhAZXYikwD7WFTHLyAKpSwL6bvUcyipAgDLUE2UMpVAB3qQMrdSy6N3zIVC+AIfAT3iLwCphR4kn3U1qx8AUSr7rkH66uvHpyPGnWDFzzDcg2HpFbXHJUEsAOY/spfSn1X2MRX4EtzetMd3WukrVpYd4hXLLAU72IcUGY1bPpmRBJZVdWCqwoppJBCCimECh6IUx1rpmtPtozYHEvNCvFXJVo/1TOHD9VSK5aXJtOZftit6YO6OdsP12c7y5ONdqLHNgeumuxEl2SBBE5RVQQPCnKCDbQiSJSTFigKCkhCCYQqX5H/GuD7W4FcqLyw6QggZS983LNrhhrkUVZ/5RQg8CGYYBegiZXnCwBRoQRhAHFERgKCRG5sqWAUEg6lC7rGk9WXdVEFWgGzQFeObISGC21FaT9rxpZrCvJfTqkyA+RqxzVAFXVrAbDAW0qVUzjBM31Z1HhWUiQSUT72Q2X8MljSpeHeFKpAVCA/ylVQsBToio4D4sypT4teBQALijaowV5LD8gAXJ5uFKAD6KGsAwCipCixMq4LVweuAmDhHHDhskQW8gM8pX4YW3YzCK8uL51e3YWhMqyjGR52aramEiWolIMavoW6qS4YjuY7RYNW1mln3dCJYeuiLbO6gU4VLaGiaKKVB1fpfKXgqkIKKaSQQgr5SwhXta3Znt1P5cQarzlM3ePqHp85XKiVE5PJbGZ5lKzO1BcnkqmuP2xYy1PZ1mK3E+uJRbhqupdc0hXfVGO66h+lIopQUApP1C9FFXtLlyVodVyl8ET5CfUXg4DYe+UfPBQ2HRB0rdTUQgAc0AogRZd8oe6fnFfI6itinhQKhkDW5rPAHIEdkulvDJmXB6iyZLJkcmj7vumCrsBVtqQHuhOZXjNMKEJ5KhkfVBke/BQaNngrdXwokKvmBiiBXJai4cgir5THGaAVvhdQBZijeTWBdzQUrHSFg8KmHimcJxAKCgNQRb1ZuASgFUAKlwOoQiW4Cld3wVUXziSKPjRuXZcMcBUujU54BE4pomHohOpcO8jCNLRJxNjSxORcb4SrkBhOE1UyaKjZukYWqwE8XXAVDCi+kWbk8q0QGthRFtWzqAEbzUBUNL4KXMWVJBH8J5h8RWZL6Nsibr2QQgoppJBCiOCBOKir0x0LXNXwmYYvAK1Si0nMaqCW6q7Q9IXVqWxnube3Plyfa093/aXJ2vZSrxWqsck2Qo3EV1l6lARdGq4OcqKQBEMVfdigJYARNiXOQT3FKVoJBTnBRg12UcaCQRkLe6m/ihzkv/KLAq3yhFgETUAkwBFQCwwyFpaHrtuGDxrI86FbqqDxFYEZZ1HCzoIscZPA8mzVJGglKL5mZ15MkoU6nqubjmaYsqryBJ5i14eCURIv8AwLBjaxN7AcsFq1zI1fqTAVPh/4I0jnmAGN7qIOKspJOM8L7xrOk9ajRD11WcGmuyiH0Rrif8oRjatKOOYFOOLrJIGM9ymSDrCDYlMWCU2C6lzwEK4lrIMdEzvoZ02SFUJ3cJkAMhKYBYQCSSo2OocEZok6KimlhU5UjxsO4CwP3sIm1LN8W3dUUUN7MlCoYK9DuUoli+1I4KrCX1VIIYUUUkghVPBAHNY14q/K1E4idmI5tauAqprNRnql6UsNj5/r+ssTyfZCe3eptzZVW57KFkbpILM7sT7VDlanW5c02TOUiOKUzLvgp9JlaeyfAjZhw7jyD15kyfqA1CNFAQvtQVHUQUU3oeM/iP/NW6iHEvAqK8ApkTNBV7Bh0DE18Ao1FBL3TQLYgRcoQ5Rk+ReSkkDmFLbEAa0AQ6ZkagAgzaoFSeJFoCtwVTOsAZg0QZIYMsYnVlko+Mk3bRCVISl0F9r0m22wl6kY5csVGlwFrLF0j2TOzFeYKV1hymNsZVyolkQ6dREG5SeU4CecrZ6vAyjlkwFhUwcVDDQAXWET1wIAoo43cBVKim5MWcDXqbIBJSwlkzmJYCy63l8cNEIvjYOskTRDAJblpT6BKjCWrdjEaZcv2+xapH9AnGApW3OAUDCAVsApugkABW/FHglaRzNTtXLSIlxF46v4skz9VUJVBlSpglVwVSGFFFJIIYVA8EBsR/ygrgzq2iBTuqkaW5XUYoBTicnUXSGzmVHdnGxYq5O1k62p6zuzBxuTS5O1hVE210/WZzu7KxOXbDWk2MTn4VMoQUJ5UnVNETwwFsUj0BJKABN1RGEvDJRoj2a6HJpqTOmKtofCFvL4Kq6qXaQY/St7OwsuISkM6CAapRNAAzZzfCG+KxqXnWfm1C4GziRWNkTDN3zQlaUYnuEAQXzTBX/oosqVGLHKm7KOzXoE3go1QalcLvFlFig20R2iUmJFoSqOX6kAaHw3CtwEGASuoqOQKNk8YwKdDMjk+UvBTAApABPODQquooOYOFt6/tSnRaGK+qtwTD1f/BhEhYPDhrJVQVct2/SUPHsWRStDs5OwjtOI/JpjBr4VJH4KSAItEY4U9b/gSbFBVEA0HNw1PPQDcBPoib1Q6r4CVKEeH8TH8zwOnqXZqHcNnwxEMprM6gqnS4wqMqrMaproaKJdcFUhhRRSSCGFQPBAbEViN5VHTX1YVzux3AyEusfHZiW22XasJka54bGdUJrr+nvL/YO14eZsa3Uym+mHG/Pt4+15wlVcSQFUXXAVSIg6oig8/eNSFWhFPVW0nvif/l4rEAYdMTSUyNISGMApMBl2Aaewib2wwVWyADLwaep2oJWYL5UDkIJSZw9wBFACOsm9PoSr8oCkv9bso9wABRIprALgoJkXFE5CmYVp4kWGpFGoAmYBtoBWxNmjkpZALtSgjavb4CrAB1PhgThpXI+DzDZ8mqzcd3AyNs4EOFXNM5cCqrCJU4JSjxTOkDqowFUAKXrCtA1s6sHCAaH/zVXUZSXyClgK36spJgwQlWW4UEAV/QiYCfhIhvBMn0aYgZBougQ6nohD4TypL4ryE5phk9IVMAtdhF2Uq3LeMmSSvJ7kZVB5HNx1NDI9UEdXCyZfVtiSVHBVIYUUUkghhUDwQGyGQjsWwVWDTGuFIolbd7nErKYu36tpqVmpu0wrECbqJPf6xkx9oR/NtH1w1dJkbWdpSLhK4UjsFB3dg8IADMEAGMEGVFEXFHVTgatQAxu0RBkLlWipCB4oipIZPQ4MalP2QgNNCtCGrusssAZbUVXJNbUQmAIikfOMUKCTfOhNoYnXSWapEs9XQEIKXVKGpJ5iZJovVKpKKIWyAJaCSozAlRiQFg29QgmQshQDNY5m1aNaK23EbmgqJCAJcBP6SZY2PTsCrABogEFp1CBeJbICj8xVFdAVlDqrQE6UsUBO+WCcTz1Y9JxRj2awAVVQHAQMBBIidJi7wfAV4Co5XztZkUisOqDK1B0ouApn4tqB54SUt1BDx/WgxGulO/iUJKgkbl21fBfURfKqo/StEIatAarIHEBaDw3siMwEtAJDsWTSabJQURQOF+65emjKrsRqXFlSeatYx6aQQgoppJBCqOCBWPe5RsBNtCxwVTMQSdy6y0a5v6qbqg2P70ZSN5ZGdX1pFC+P4tmOO91y5nrhfC9cmWoCrS7FbgPcQ4f/AEyUsVAj866lJXSYD+RESQuQhDaUli7QCjVUqU+L0hU26S7YOBQFL5SUq3hGL4+JdF1n4AgNXaKBVsAXQNX45Wp5jIVRHWOBVlxZqFwhS/iRwS9WAVeh1AXdVmxTMmVWBDm5ug26AlFRPxZqPMOBzZdZ7AJUdevtWpB4pmubnmP5UZACaGRBB8ChJHFdXgr6KV3hcA7gJBplBcD6b67CeTpmBK6i5wzMgoILKWPRlmAp6qkio5l5UDyOT2p4BVAFpfFVFK2ASiAqaBrXAy/GieH0VEHTRB0cSfxzkk4Ds8Bb9FMUpKA0yQLUkC0rzwUK0gJdAapiL6VcpQiaITlgKUcPAisJ7cTJkyyAq2TOKLiqkEIKKaSQQqjggVhzmbrPjpom5arMZcFVgVHy9XLm8/1EHWX6MNMmGsZ8P1joB+CqhX443fbmusH8IF2ebFzyzRTABBiikASiggKGQFcgIYARdlGKoryFTSjQipITPgUtXZbGfxDxKdTQcUBKZmhJbYprUIJWgiewZJIgGEvkzGpJHvuBZDSg/h6gCXCqdIWhKxzTUqhKzDhX+qEMrgJzQMUKSb7gai7QShUU0FJg+45uG7IuMgLUVAyUfIVTeNk1nNAJUNqahTagE00xgSlgGhycq4I7gjRqoMxdZSL1RTFliaZaAGNBAUxQ4BQd7KOBVrBpfBhFK1TmjiviAKPDdjggjs8zJAEpz0r4Rup/AmNRGyejSxrONolSaBzWQHuoB10BodCMOqs0RTd1iwaH0cQKYKmLcVI9X7OZkhb2Aq0CO8rD1QG1JMG6pXi26tma72gBDJU3hKrMleUiz0IhhRRSSCGFUMEDMbaqNZftZ1q/pjZjiWgkxzYDrkocZljTJxvmqKb1E3lY07A5yoy5rj/VdJZH6cIomWg5ZBwQoAPioZwEEgIeAaTo6B7lKkpLwCPqqaINsAsKg9poQ/fSBmiMI1DFXuzCcWADtoBrEm+xFTCKTbnqyj9ZmqQAWh7jASL5vDwwDQ+DchVb4plxVmJlGsAulAWVUwFVoCvAExBKqPLADjAKQAqbKC8Mkm8zSKDALxCMwMlQ8ApKHB/oA6IKvdTKM5SCkGgEFZsHsIOrqPvqAq1AXeAnqJhnWqcGFFxFMYuO/RmqQyPicXxZ0GHTsTzwHKgO305HA0FXYEGcduCFURADqqBo4zmhawdoRs9TlTXHAkvp0DzoiqQGBVeJjExyKOTprKCaaNAsVuAqVGJTJfHsZBxQrKoyq6uCSRcKlBgVUFXMByykkEIKKaQQKngghmY5dZhuovRSpZ2qvbo+aFitWE5dvhGKk3Vjpm2Dq1o+13C5usO2A3Gqac/1wu35zvJU1s+MSxJDXFNQSkXgIYpENFMoKumu8hUZ9WhApwpSRT0QCko/izaw0R4tKXXB0KSgdFnCXnAVNrEXaHWRc0HI01nxjE4TXFGUAankkeNkeRnquAJpwaZzAw2QVT5ARoKQFFuqksShUK4MriKpzGlMt6OTfAQyB/Ig2ds79e6oO5FFdTK+9vdIHECHrgwIDAL9oNQV2zZCqCY7gDwKVSgp88GmjAW0AkhRg3IVbBh0ZJBjZYFXFdkkaTxVm+RSV23bCnTNlkQNaugOVJZ0JR/dI0OTugGugvpuAH7CLjR27AANQFQiL6HErsBxa2GK6wI5QYFN6BBbwxEIZl14rWIvpbkqVEEHV+Wz/3RNsHTRshTPxQVqviZafFkpxgELKaSQQgophMqFv6pTU7sZVB+2rKmu38sMQFUnUaab1mzHAVfVHSY1Sok+3vT46ZazMIg3Z1sL/WiUmZdAOYAhQA/lJBoLBagK3dYFTlFyQj31XVFmguIjF1yFTXoQNKC+K2xCsRebXDUnNpb4sVBiszIugatkwVYlF0RF81oBSiw9oFHhAB1Az1/+qnw0jRnngFZ58gXiwSKz3jRPKJPkAqAlVdDAWwApABYaALBQjxrKWGlQa6atwA4pe+mqBaAh4U15/gIQFb4IXwcDUEVPgFIUz6jgqosZgjSSnYIUSlWy6TggoIrCFnFoiTq4CiVddgYGFJhlW361wlfKnGm4rhOKgspzsmP5AClTByhFub8qcm0Pu0BUaAP8wl5N0aEwfMsDV+FKAVWRm9D4KoAUNkFXsMFVruGDqwI7AlShrySyIiEJWtdF25AAnWRMkOYFFaroLqPgqkIKKaSQQgqB4IGYumzmc2QcsKEPcq6a7fr9utkKxG6kTGT6dMscJEpmVSL1SqyPtXxhrutPt9y5bjBI9WHNIFwF+gHroKQwpIq+Loc0uCqHJCCUxpR0tgyEQhtj7LLEAY84h8VH8FlioFIUOJtjzGpZq5RUqqUxcfwyD2biy7LEGHi6o4TNlSShokiMxo6LsFEvszozJqDSVskYHACFMkr1Cg9FG+xFiWZSRWXHOKEkW7Jtio5QFoFWXIlReZkmtdLzNQQ1QRGrvMJJvunWoxqUBK0bjlAF5pDBMoAIcKQW1utxM3RiEEn5BxanhBOA0vOhpwSWAj8BnmCUx3icFc4NyEVL6sFCJfZyIBiSLcKEGiQ9uoeSBq2jho4JorwIlnfMQM2zWFGlkexQVNKRSsCfIZuARZR53gSSb8JULPAiTcQgMhLdy4yzBohR0HEtjaSFC+QIcSoqSfpFMleBqwBVumRLjMqVRLYk8mXFVLyCqwoppJBCCikEggdiJ1aAU1Mtd6YXAJhGDbMTyk1faAdiJxSnm0Y7qHZDfiJTOwGXGmMtj8sHBx0gVzeQh4l+SVcjMjYnkKwKdJwORKVJAXiLclX5ilK6LKMEXfFVS2QdgJQkeCLvMhWjPK5Cx69I//w/LKCKKjCLqegALAYMRJKCWmAp4BEoSqyqIBUYlcscBSY6RAUFXUFhgFFAKvgUcRrl4AXcoZ9CqXEmcMpRfFv2VOBgSeBLPDMGwBEpVAGwAFUgKokBFXG2ajbiLAtTV7exV2EVmVPdfLUcGuKdBpmje+XLVXwL1JCc0E4jp+bqocqb+EbQEg2cwlmBq8BPOENaKQsmbKBVNZ88SHeBosBPUBKrzgC8RJTAKSh2gbRohk9dsQFeaCMKKsdKACk6QAmD2gAsz8FJksWnwYLEzSYZ4Cpbc8BVxF1neMBEGnOGNrgcwGLspVnUwAXm8ewGakzZxYUQJM27UajIMqcDsERGK7iqkEIKKaSQQqhQrppoWPP9YLYbzHS8qZbdT9Smx3dCabJhznWdYSZNtbTlkTfdMoBWvUgCV0HBVYCq6YZzSRY9pqQxZZLk82J0Dzg1ni9KA5stG0xJpy4rrmIKjA2i4lmbQtX4FRlaGiPKs5bIO1CBs4FWUJ41JIFMlAN50BhwSiQwsFm6wmGTjqBB6ZQ6sAvoBJVmnteKkgqwIPd4ESwAmYG9DByW0eWqpnJkbiDQCsBkgF1Yhea1QiU2YfuG32/0G1HDlExd0F3N5SviRaw3iIqGIjHjHOUqRwtSv+GbMb5F5YFiJIAdJwauwlnBxvnjxCyypiFJsI5Nei30VC+4CixFSyj1V2myBZxCCbSimyiJ40rSwVV0hqAqo9MkSVBt0/PdKApSwBMoSs2XAgRUGTLJt05JC2gFqCIr/ChWjlb4PGDrr4WfwVWowZWi9yiz5oYOqIIBrlJ5fKrgqkIKKaSQQgohggfisKHP9tzFUTjbdafb9kzHGWVaJ+RHmb4yEc92zFFdnuvYa5PxfM8ZJBK4qp/Ig0QZ1bRRahCuYir5sjMVkmjqIliKchUNURdZR+JcvmoBrcpXyLAgWzX/i6gUlJWSyjGmJLhQylV/+650oBUoig6WiZxOoQqbsEEnUOryyXGExICjrIwLKMFVlFqAL7bqg3hkVgdU0XltICqxrEgVVeN1oBWFKpATCWMvC5S0YLBjrCVb9bDu6SQSC/XYVAUdaCVUJVAIjUyiw4KgDXyLq4eRU4ORDwsalhKkUQsaehnQilIULgGXQxkLZ3vln1VwFWpw/rguOtJ3odikFAWcgk0cVH+ntgJyVcY5RTaAViAqOj1QznOHmrrj2kEc1nwrAE4BpGisGKDK0V3KVbBRAq1QUq4CIwZ2hGvxzADIqOWprQBS1CloykBJRxVMTSBcBajSJafgqkIKKaSQQgqB5P4qaZCp8wNvrudQtAJX9RNpqmksj8Lplj7MpJmWuTwMZjvWMJX7sdyLpamGCR0m+kTNJFxF3FQlsvAfAay/Z/YBqi7/Hy6f4mcCqtiy8X8HBMs6xSk6CAgbXMVWDUAVz1p/e6qsnK70aplMowN/ADsAT0xZosk2QVQgFbogICgKOIK9FE0otVDfFdQxo9BOddGmkViG5ECxSTAIODjOKywZ3QNUUa4CPMmMDK6CwgBRRXZEfVcar8EAdtDMT3T2HDYdjeTMBFEB2nBwz4jyODBVF11opzlq1Ho4W11xcZI4fzrkR7NbwR6/zAK2cKq4EDSgoVQUm8BPEv9XRitdsWFQJxb1aTFloVriWUYUBZKNXRJUEBXNwkAXEyQrGNohsAkgBX4yZDP2EhpfhTJ0IqCVmq9OjRqRkWmmdVwUjHwXSS5qyrgK0l3UX6Xw6EPb0XxL9RXeLLiqkEIKKaSQQiB4INYDrhUJ0117YegvjqKZrjPRNKba1mzXme05C31vumXOtq3FvjfXsWbb5nzXnW07i4MQJRhrkCiXOIZkBB2/zAOkYFTGAE8kyefFJh0EpOOAACyRdcbQIPdUVUoaUwFFkYAqKA5VLWvlcQWsJvKOLHrEWVVWLiKTACKUSKh3yrVi0BWICjb1WmEXIAyVgCooduGD+Di4h4YHgQw0wYIBAAJjyVWNGxP5EnFEAZgoPIGlVE6FoQu6b/hZkFGusmQLjAX2UnhNE0EqKo9PyVYaZKnfoF8BdLNVH4wlVPAVuqvHlhLgPMF2dBwQp4QS54ZzxrVQZMRpA7DoyaOkw3zUFwVsAj9RfxWgig4FwqAhVuAqkkKiwkt/531AaZseiIpBZT4aSFcD1PL065SrgFlQW3PAVUFOXSIjQdkS+tGi44BQ2HT9nxynSOBazqNkZUBo7q/yRUYruKqQQgoppJBCIHggNkKxV1P7mTbX95YmkvlBiHJzvrG90F6bSXM3lQ2umuvY4Kqlgbc+la6iWc+faphtn++G4iXwkMjaNJsUV/1rFRroRXqFC65iy6i0Jc698oNIiQpltazzrM2z4AASqF4pqSjzMUFbFh3KVXq+sjLIA0pBhHIVFPXYhFJeoc1sI8RHoNRlRakLHwTxABH4ssyOi1AYdEyQG+dlRrEVx5Lt3Hel6gIASzZE09W80IpQj02V01APCOPKAtAKCuwATrXSXha2gB3MmFC9wttqCJyqXBaAVpFT94wEREWXiNZkh1IgzoqOBlJGxCZOj14dGlAuhIHN3H1F0rKjxAdpicsx85Vw0AB0BajSNdvQHZRmnmkdJXVfGWTVGrJQIE3HRYOrUNIaKKUu6s2i0VSBHUVu4uS51w3FyvOCigIjoessBQdxAVUSepXVdMnhK0rBVYUUUkghhRQCwQMxdbhWJHdTdbJlz3aDxWG8PtO4uty9utTbnGvMdO1RXR3WlVFDnWwaCwN/ZRLs5U/UjUGqdkKxnyhkHBAIVS3J5TFwD1ngr/L3un5QbIKoKmMqVToUyDGWLPqS4AGqyuNqDljqD//gQFR0BFDkHXCVwJlsFeBFAqqAF0ANUAWlDYAIGIXiFHahAQzHjEBUMKg3iOIINqGwQSGuHoKihIpCUgbILqCKThUEMwGYfCPwdJ+GW6EUKxJqoIEZArkAXlAgFzvGkWyZgk4zP6V+ox61QVc4FA5bucxRT1X5BwJYjbhnyn5lXABaeTYBLJwbBT5cRekKB6UshasAY+G0cQkXmAjFZQKhUOKS6aVhb45TJozcueXlaa4smixUU4CkKh0QpBFXwCbqmgJCUU8VamCjkgKWhY/n6buEqgSEsjWXJq8CZhkyWR+QpLBiJAFnlUenEVdfPhSo8CQ1aMFVhRRSSCGFFALBA7HuyZ1YHzXcYd2eaPhzvWRpVFsYJLPdcLrlDDOtE/PdROin4jBTZ7vOfN8HYA1rGtAKOtN2LpXHFZG1JR7Pe23sB+7KP3jKVXQoMA+6Mi78VSjHf5BE3oWCrkpjythlKY+1ki7/kwdUKZIPNbRYkVxAFdCKqaiKbIuCwVTlakUSeB2bsmRxrIpNllFgaKoLWxJNVXEsM6yURbQxdB81IBVwDLgE4IKSUIhgga4shQwOgoTINDdBpxHonhnokpknDiVh6ZGb0BrqyKFx3NUxFh+nji7AmWdEwDVDcnAcrqTwZbCaIjGGZyTNpF+Pur6ZkvxbjG5qoSZ7qoST8VBD85pSPx/2yuDIPHe8YyaUq6AwgFNAKOrfwsmjElcEjqQoCUWlLBki6CfPJkqTy+dp333XCsnQoWjgKnB1uAR6pQAp3wooaTm6SyPZAVu4QKpoZio22hPM0l0YACwW31hV0WM5WpFsC1wZpEXGAQsttNBCCy20UGhqy65UiXUhVDmULd9oB0bNkkKtEmqlzGFaId8KuImGDqiabJoTDaMd8g2P6UTCdMsmXEVioVibZjwnXqs8Yp3q2D8FbF74q2CUryhj/xR51hY4B2W1rENpfFWlpGpKCKiCIQmuZcSmHhlaCLoCOUEpV8EgtCSaACxAFUogl655YCme01CDZsAs0whQib3U0UXRChQCAzBEQ9dJfFXORkANyhMACApV1FXTqnViL6VhRhQ1qE1pTMonGILS6KZA8mPJUKCVJjip3+o1JsFVthqClsBMwCmaKf7/2SyPiVAAFon9L8kALJwz+/ewIGwodVZBUQOuopXgLVqqisUyUrUioOTzTFc0PItkDc1Z6iLbFjQgC//9NThIXVngKpQ6SSvvoSVNG4ErRQkmwwcNEueuVa9wuEwbGIerFi1H8w3ZU3At+Acqy8y4WB0TOJweTrIs8RUFinq+qkrgRc4Q8xKNFQ6HdcWqwYyDzFSRIUtoi2jAmVC65iN6hmRE4y30kq54iuighq0QGC1dyaP+K2T6QmmMQw0UhIczwVfglKx8fejQjkM78XJkpBlQbc0OnTB0/FbW7NSbw26332o10jTyvFoYtut12PU47TZaqef5JjrFSEM/i8PQsz3bDD0HBsBfkQVRAMtLnmfbjuF6lufauqbIJMZNsS3DMg3D0KBuLpZl25bneZHnhp4bR1EzSrtR1q93Z9oTi63hcntqbbiwN1zeX7h6e2H3zvL+2drRo6s3X+zffbN7+9XmyZOdG0+3Tp9sHD9cP3q4dvhg7fB8ef/+0t7d1WtnmyePN08eoRINtq8/ycvHB3df7t95vnPj0fb1h3u3n8JYO7y3cnBn6+R88wQfOYNx9cbDqzcfody5fr5/8+HV0/s7J/f2bp5fu/3g8M5D6NHdh3cePb/75MX9Jy/On794+OLVw5evHr169fjlqxdv3756++bRs8fPX7/48PH9x0/vvn3//O79q/cfXn/6/O7Tl/cfPr199/Ht+8/v3nx4/ezV0/PHD+4/vH/z3u2TW9ev3Tg+vHlyfOfG9fu3964f754e7d84Obx94+jOTejx7Zsnd26d3Lt9fOcmKlGe3LmT613o3vXrm4eHmweH6/sHS1s7C5tbi5tXFzZ3UC5tEYW9sL69sLY1t7o5u7JBy5mlNejs8vrC6ubyxtWVzd3ltc2Vje3F1Y2F5bWltc2FlXUYy+tbG1u7V/cO9w6Oj05u3r57fufeg5u37t24de/kxp2Tm3du3rl/5+zh/YdPHjx5/vDJ8wdPnj18+vTRcxioefLk5XPo4+fPnr56gW558fbVs1fPX759BaUGKl++xa7nz18+ffb8CdXnL4g+fPoInfnw8fn9szv3z++cP7z34OG9+/dvw75z7+aNWydH1w/3T/Z3DnZWdzYWN1bmVpenlxYmZmZ6ExPt3rDe6qb1Vpw2klorzdq1+iBJu27Q0K1YMULNThQrkc0YpWqnqhWLmi8onqh6kh4QW7Y50YTyEgyLFQyONzjcW0RLEG2qsKEVVhFlS9FclAynQmGompUkSZqGYeCksZOEeJ8TG6nVbdqNRGvVjH7L6TXtLFbSUIo80THYZuZliR24uMvgXRHvtRxe/nDHIWuRKiJ+Svjt4GVaUSTHtuu1erczrNe7tbSZxHXXCYlv3nACP8FmHGWBH7u4q9kefl+wwzCu47fcqDeb9Var2e22h8P+zPTk/NzM3OzM7Mz0xKDfbbU6zUY9TWN8AAcKg3qaNLMatFFLoTXsCqM4TFwbP27P9wLH9qGeh59waNu+oduKgrPEmXiG7moqNi2eVxlGYvCqz2nQCu5RFbGKx1ZVRmW+S0IbSTKgMGQZdwpPFFUow4q8oFQqHAxswuZ4GYasGPgiQVRYThwfr5QrrCipqmYqiqYbpm27lu1IsiaKCs9JHMcLnKirGq6o06z32k1TU1SZ1xQBT0Fdk1Hin6lZD1v1oN9Je21cddCo+a1G1MgCUxdxd9ZU0TQU01DpIrVoH+L92zXS2GvV40YWtpvpzMRgZWE28ixDEfD4dw059fHP7SWokZjA1Ybd2trS6OrGzNWNqYXpeivVE49vBEqvZmee4htsPVSu7cxev7a0vTrY25w62J5ZnevMTaSdzEh9sRUrw4a1NtfaXRseb8+c7MxeXehfW5vcmG6tQ2fbmwud/fXJg83pw83ZvbXJpckmdHmqNTNIl6ZbJ/vLp/vLm8uD7dUhjoyWG3Odk535m/vLs4OwHohTXW9job08XYcx2Q1weqHFBiYTmFzqid3U6GVGi6yUXPX1scAYT0A8mdpMpMAqWeplz6h4ZtXWSq5RSXyxEcm9mjGsuw1fceWKLZQtviSN/1OtXJZRli9bXAmqV2GMB2q5G8nDugaEGmbqVMucallzPW+yaYCrmj47SNVRppO4dXAVgap8OT++atK4dWzCoP4qpkSirKi/qnRZZioGx1hQGH/bBK3GLgO5yDRAVQ7yoHVLVwMoxSlgEy0BUlAw0wVjAaSAU6riUM+WbUXgKmzCpu3paBrlKkP1oBae1jlXwXD1EGqrPmr4MlljGNTlm7FnRBS/AE9oBqW+LhrHjWY0nTq4ypA8lbe5kgIVKpop+/Wo361PxW5LzjsH3OlaqWMmuuKrkgtKgGGoAeiBsgIAC4qW2IXzBFSBGyhOgaUoTnF5jgnUUK6izVDJsTKISuI1WdC5KkEr2CKnulZIclwJOoUkGFCgFXAKFKUKmiZi06ZclduEL2thHXSFlhSzcg7zZE6vXGZx+a4eACh10QK12Fqo8hZbkitgnSs84aqyLDIaWwLoEG8WMy5B+QrQygRdwUalABBnDCg7jg6Usat8BVdBLp8tKwS/ckICXRlKYOmRbcToK8JbLIASf0VKFQzN4u9KAY+i9wiVjis4DoE2AdAG+nEDi3AVoMpW8U8ZeIZvKqZDBj2NyA3SIGrhft1oNNM0cBzHMAIb92YncNwkCAPTCgwzct0sioBcPsgI907LtHSNrMioq7jjK/hTs03HsWLcgIPQNi1FFoFW2OtgA/dbsoSQA57yvAB37zipB0Hm+1kQN5Osn9SHjf5ce2KpPbHam92aWjmcWDta2L27cvhg8/TZzq2Xe3feHNx7t3/vLYxr997s3Xm1fePZ+vGj1cMHUADWxsljqqjELtpg+/rTa/deHz94d/zgzf7dF7u3nh7ce7F3+9nm6YONkweEtE4fbJ6co7x68/HuLRAbas4P7z7dvXG+c3p//9bD07On1x88Pz17cnzv8Z3HL+49eXn+DET1+vHrN3/py9ev3r//8PnTmw8oP3z+8unz148//fzt67dPHz6++fzlw9fvn1Hz6RvRd5/ev3jzEmDx4MmDO+f3bgGt7tw4unV6eu/27UfnR3dvHeY4hc3Te3eP79w+vn3r9O6dWw/un969BcC6hY88OD+5e+f4zt3r988Ob93ePjxa37+2cXC4tre/uru3unuwtL07v7a1uEGIChQFxSaIagYgtbY9v7IJoppZWp9b2cAmuGp1e48g1M7e+vYuoGplbWt1fRsldH1rd4dy1emte/cfnp0/vnfvwd37D4FWN++eAarOHj199OzFkxevqT57/frFmzdPXjx//OLZ8zevXrzB5uvXH0CTb6FgqY9fP6ETXr9/9e4Tocz3H968effq9dsX0DfvX7798OrNuxev3uCAT9FLL14+ffDoDET19NnDJ0/O7p/devT43vnDO/fObt28e/3k1sm102s7B7ubu9tLm+vzayvTCwuDqalOf9Ro9+r1dlprAj5arUGzPQm0CuK249cJVOEm5jd0F3YNik1AFSs5nOwQrlLBVQ7DG1BAFdCKBWDlFHUBVZSrQFqsoMuqoxq+qNgsr0HBVZpu4+88Ct0ocJLIBlcFnpRFei2S2zWjnRGugjYTLQvlyBVtrZolVqvuoaVnS66tWIaIJzp+oo6parKIHxf5icm4rbGKJAd+2OuOhoOZQX+y1eyBpQBCnou3lAhQlSaNOKqBePDqEgYJQaOs3ibSyrUJ7fe701MTCwtzExPDqcmJIbiq0+62mvUkCUBkrhMHbhL6NRwOR0+TVj0j/6U18sv2QGoAuDTwIh/cFiTktxzUSL5lAy//rm35lukRusoBCzcAEWCjOoriAK2AUzze/1mFxf2KlDLHKaIIVLKgBhDUTQCmICdCUZJG6UpRgU2EpbDJchLqoWgAqCqVGV6QDdOx8K7n+J4fQXEElhXLZZZlOZaBsngi4kIG3XaCC3BAR4BUwlWGqSax38drZRZAu62k00razbheC6LAMk3ZMCQDr9Gmihdu00Kp47U7Sbw4trMsqNcjtGw3kn63CTUBhGwJIJUGZiv1O/WgmXiBJdVje2bUmOgmnbo5M4xnR1E/09uJ2o7UqXbQzxwA1qBu3zpee3Rv596N9bPrG7cPV073Fq6u9CfaTuqwkz1vYSqd7gYLE+m1zelb+8v7KxOHa1Ogq+2F3sHG1NZKf29jEkB2bXt2f3N2qpvEtljzlGZirsz2jvaWjveWd9Yn1hd7exvTAK/thf7hxvTpzvzSZNpOlImWvT7fAlpNtp1R2+03rCyQIpuNHaGdGv3MQINBXa8HXGKXU6daj4RWItUTMXIrjjHmGmXPqkJDhwcF1iOp1zD7DTe2eYX5p8peBkZIpctKhSwXI1z5pzj2D6hS+aenMm1fH9S0qabZj0naqkGiTNaN5WG02Pdn2/ZkXZ9qGDMti8StkxVs8vxVACygFc22QIKu/loB0LxQGsNOoYpyFfVXUZyq5GvX0AVtTD2BUn8VwEiW8Nwiw3+gKJSooVAFeEKJXeAq4JTrJJaJFxr8fRPeoqRFPiLgb4ssw2fpATWATYGVmHkmcUcLwFUo6SaUzumDAWwCaYEn6C4SjMWA6UmSTOyqXuGxF+zlaCAwT6zqUInBH6cXOU38pdlqzJWIRwqUkITtNOp4dg2UAD4AXQGzgFboOsABYIJ6ZShXUWzCeaoScV9RzMJVALAAW7DLYzyICgbZWxGAVrpiQwFVQCs6c5AuXAhC0kQy1ilzKhS2IZv/zVWAD2geZUXWB0z8mmcGCq/R0cOcw0ieBXYc71AG+gGXTHhU9VTBBi2BZoSqCgVLgaigfEXJN9UquOeKwIzLPP4Rc5aCVsdkYJAmuAoHElXFqiHzZAwUTImugK2IZKjUNVN0EdAKihr0z4XiktEV6FK0p8qXiRtMqOoKb8mcqfDkPC0wtGRbip14aWgDnV3XgIIjbVszHN0IXRfYFHsebmO6pBiykld6ieuGlo1XYKAV2nimCajC/Rf45ZpGFAYe/ulMHAXvi2YUhVGIt1gX79kkN6siWfkuNIC4ro/bPe7YtVonjpueV/OCZlofJo1Rsz/fnVrpTW0MF3dnN67PbN1YPjjbOH1CQOrsw+HZR6LnH48efDp+8PHa/bdXb73YPH2yfkxYauv6063rzy7Qavf2y8Ozd0CrnZvPD8/eHD94e/Lw3bX7r/buPKfl9o3HOzdx5GfAqa3rD7evPwJU7d1+is3t6w+u3SFcdfX62bU7j6+fP7/x8MX182cnZ0/uPX119vzNwxfAqfdP375/9u7D8/cfn7/78Objx8/fvn798fuX78CpL1+/f/35528//vT10+d3X799/Pbjl+8/ff36M9FP3z6//fju9fs3j58/vv/o7N7Ds5tnd45uXz++e+v2o7Mb4KezOyeAqvt3wFXQG2f3bz84v3l27/r9OyjvPDq/8+jh9bP7J3fvnd67D7raPTndPjq5enJ96/B46/Bo89oxQaut3bWrB6s7+6ArKAxib16dW9lcAHKt7yxtXF3e3KUKe23r6tbuwfr23srG9trm1TV8ZH17Y2uPctXu/tHhyc279x6cnT2mdHXrztnt+w/unj8+x2U8f/Xs1Zvnr99CwZfoipfv3rx4++bNR9jomffvvxCafP/5wxts5Vz1Bv99/fDhC3Hsffj49sOnNx/RK1/effr6HiU237x9icYoifsK3/Di8dNn5w8f3X3y9Axodfbw7r2z27fv3zq9c3rt9HD3cG/t6tbi5trc8vLk3NxwcqY7mOh0h612v9nsdzoTrc50LRuESdcLW4abyQb+9tuG3wRUyUYsqD6vuLl62CXpoaC4gKoK3t8EM/dXmYLk8Pi9A7Y4ohwP0rJF2ZVxX1UcXjI5wWDxWou3VhGPf7yN4Qlvh57VqPnNmhsHWj02skjtZAZ00HKGbbdV0xuxgsrIlXxHatScFATmKkloeY5iqHzoEU5RJR4/InAVfj2AKp7jRV4CQo2GMwvzKwCsKKzl8NPI3UwpflngKrCO70VJDBpqNZvQZqvV7HQIWrVaDZSj3GUFupqbnZmZAVyNcq9VEyAFJcTk2viB48eehmGzVms1cJRWLSFeqzSu1ZJa6MdAqzBMyReFme9G+fqwLn7iumZrqgPVNcJVPHCT0JVJuQqlIJBNQdCxCyrLpqa5phmAqzwvBZj+N1ehxDEt29cNB5WVKvpABmwBsDheqjK8KAF3PBcYGSY4H8cNcATsrVR4jhU5hq9WGE1W4sCfHPYG3VYtCvDCzfNVVRE93241a4NeoxbhhqjVYocCVoo7HW6UtuK6Gu685C7pgJcJVMEO8RcUGlHkxLFbi91WPWo10iR0Hdwxhaqt8pGrhI5SCwyopVY9k6+FWupLqS/MTUT7WxNbi+2JltVLtJ3F/uZsb2uhtz7Xur439/T+9vOzq2fX167vztw9XDm5OjM/DFuhuL3aO96bnWi5vZqxs9y/f7J5Y2/x+vb88cYM8GhvbWJtoX2wNX2yt3i6t3zj2trV1em5iUan5vQa3vricH9r/mgXXDU1bPv425sfJPP9eGEQL47S2X4wbBhTHXd9rnl1pTfddQctu1c3GqECtKr5cqdm9Go6znaqY/dqSjPkOwmwSevUlHamNBIh8fjAqnhWJXTZ2BNijwdXjdrOdC+sB4opjDlyJTQkF08ykTW4CuhKLv0ANbixxJb6NbufKNMta5gqgKphqoKrVkbx8jDcmq2jXOh5S4PgEpm+VyE+BolzaKA6MItOBqzkKygDpKi/6mJAkA4CgqtAVNRfJQmupoSGFqOkUVa2WbOM1MKNAI9J2QYhUQUzUWxiGQWGrnnALBjVigQbBiUw4e/xQSgawyYHkWwfNGxGimjZRhj5dRrnDiqC2ip6w9NFPIw92L6ZekaiCQ4NmYIyYxJslbeBWVAAVj6pUFU4klcdOAVDZsFelsI5phwCqgwpwCYowTbiWtz1nQw2FMTgWqmphVAwVrUkowNRT/EC3IAzBFShlPLUXExZGr8MkCSMRbmKerOAVmgjSwYdAaQpGAzVgZJ5grwGBS2Zig08Inm2cheUmWdXh4Kl6JgguMoziY8KOBU6MdoAsAI7Qnuy9DKjGbIjMqrEkkQVYpXkr9cEU2YNQIwuArzQ3sUmAayKqvAgGxOUA6KqjoG08OvTc+gBujnEX1U1LCXSJR+2xJjoDaasjv2Tq47LEmdxaMwYjpGgEp0Dm61osFHCFllTYEGljsTbeUtTZPFvgZOxoTh+7rhSpaomoXNY3VFxyaEu4+VKNxTTs9AJtqFqigi0JHefNAqJix/v3D7uL1EjqWVBFDugLRsaOV7i4wYWYVe7jvtRnMbkJdDzvBD3G5u8rId+4LuejaeCIkmSqGkKqCoHK8v3Q/LRGFzVTtN2FLXitNfqzjS6M93JleHcxnBuZ2r12uIOGQHcvvF84/Tp1o0XB/ff33j6463nP508/gr76PzDwb3XO7eAR09RUgM4tXb8cPvms93bL/bvvjp+gGbvDu6Dyd4eP3h38ug9AOvgHniLlLu3n+/ffXF8/uba/ZcHd19AYRydvc43nx3cfrJ36+HB7cdH959df/Ai1+c3H7148PLdw1fvAVXP3n168eHL68/f33758f23Hz9//+nzt++fvn6B/vzrT3/+51+///7zt++fgVY//fztp1++Q3/89Ufolx+/gi1evnv16BnhqrPH57cfnp3cvXVy79ZNAlV3T+7fPrl75/T+vRtnZzfPz0BR9588RoNbD87uPn4Arrr98AFxWd27f3DzFujq4MZNGIe37gCtAFjbR6cbB8erOwfre4dru9eWt/egMNavXlvd3p9f3VpY217Z2lvbPljbOUC5urm7skGgavPq/trWztr21c2dvZX1rbXN7f3Dk+3dg71rxwcHx8cnN+7eOz87e3T/7OH5g8e37z24c//h/fPHDx4/f/Li1fNXb1+8Ifr2w8cPn8FHAKmPH798/vD587vP74GSH758/PrTF4DUhaLDPn159/nbhy/fP3798RP0y9e8+ee3n7++//zlw7sP796+ewVkfff+1ctXT8m464tHz54/IGj15OzB4/v3H967fXbr5Nb1w+vHG/tXV3dwaWvTCwsT03ODien+YLLbGzUa/XZ71GxP1bJhVOtDnaitO5li16CqVVPMVDFjFW+MVgJDs1Ooooe85DB4ZxMtjvirLHAVJ1gsb1KuIlCFn5viibINqGIFneH/Ug4AIWn4ITi2bukyHrpZ4gCb6rGOR9pE1x91vKl+iLIRa7WA+LGgjsGlkR66imuJSWSFHn6QUhzajqnbuoq7tgXDtAxdl0QZoMCxUj1rLy6szc4sNuod4FQUpmlSJ97k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TOv9Vmuy05tr9eaavbnBzPr08v7s6tHCzs31a2crB+dbN15s3nixd+/t6ZOvt178ev3p95PHX6DXn3wBLR2ev9+794ZyFQWsg/tvwVWoxCa1Tx59uvH0KxrffvENeuPpF+gFV+3efrZH0OrV/r2XMFAenb85ffzu5Pz10f3n0JPzl6fgqocvbz5+Da569Przk3dfXnz49ubLz4Sofvz140+/ffrp18/ff/7y40+//fkvEmX1/duf//nXr7/+DKL6/v3rTz9//fW3X/748/ff//PHL3/8+vUngh0fv3159+XT8zevz549uffk8b0njwBSNx7cu/3k0Y2H5zcfALMegK6gdx8/uv/0ydO3bx6+fPbgxfNHr16ePXtKhgIfPrr/7DkUdHVyj3DV7un1neNTlFePb2wfnq7tXoPC2Dw4Wdzcnc+H/9Z3D4nmdLW+c0Cgavdwa+/a5s7+wfHp/tHp9t7B1i5xWUF3D45Qe3h0eu3w9OT05v2zR0+evHj67NWr1++ev3r39CXhKujz12/fvP+Qc9UXXNq3n3/CNQKnYHwjo58//fbv33/67ceff//px5+//vmf3//9P3+Aq/7496/Qf/3n19///OXX33/85bfvv/72DfrLr19+Apri4z9++fL146cvQDVCWijBVW/ePH/95tmrXF+8ef701ZOHTx/cf3Tv9PZ1nOPO3t7qxub88grQamp6fmJybjSaB1o1WiNwVRB3bK/uhq04G9phC2q4zTy+KpD0CIaIu1DusjKIyyqWVJ+XHUawKqwuo43s5aOBNhQGNlEp/j1zEEY+JmjBxhsEmbSm49VNjnyTODB0phYq3bq1sdQFWs2O4sme364ZjVhpJWarZoeuHHlyEuqBhw+ztiGAqzqtWiON88BFMg6oyHK1XCmPV3geL43kPQU3c00FTcTtVr/fm2i1QANDlHGcOY7numRuCADL87wkSbIsbTbroKt+vwuoGo0GoxFBKBgD1Ax6U5OjidGw1213O61Ou9XEyxY+HYeh6zi25XtOEhNeq9eyTqvbarbJFvGFkZFH4qbykjjManETGvmp60S4c3huYhpkqIRMCzZJfCaeWVDwE2ryl3yySxRUnlOBUCCwvz+INnjGgck0XCY+aNvoish2QvAWiIplFUFUBUGvVgUYthP4QQyFoaiWrDm8ZKANw0osI3GsJEsK7kWObePq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) -&] -[s5; &] -[s3;:7: 7. Menu&] -[s5; Content of menu in U`+`+ is represented by the function or method -adding required menu items to the [* Bar]. Items can contain [^topic`:`/`/Core`/src`/Callbacks`$en`-us^ E -vents] to actions invoked by choosing the menu item or [^topic`:`/`/Core`/src`/Function`$en`-us`#Upp`:`:Event`:`:typedef^ E -vents] to represent sub`-menus. Menu itself is managed by [* MenuBar]. -[* MenuBar] can act both as widget or as a [*/^topic`:`/`/CtrlCore`/srcdoc`/AboutFrames`$en`-us^ F -rame]. Frames are placed to the window border and reduce its -view area.&] -[s5; &] -[s7; #include &] -[s7; &] -[s7; using namespace Upp;&] -[s7; &] -[s7; struct MyAppWindow : TopWindow `{&] -[s7; -|MenuBar menu;&] -[s7; &] -[s7; -|void [* Exit]() `{&] -[s7; -|-|if(PromptOKCancel(`"Exit MyApp?`"))&] -[s7; -|-|-|Break();&] -[s7; -|`}&] -[s7; &] -[s7; -|void [* SubMenu](Bar`& bar) `{&] -[s7; -|-|bar.[* Add](`"Exit`", `[`=`] `{ [* Exit](); `});&] -[s7; -|`}&] -[s7; &] -[s7; -|void [* MainMenu](Bar`& bar) `{&] -[s7; -|-|bar.[* Sub](`"Menu`", `[`=`](Bar`& bar) `{ [* SubMenu](bar); `});&] -[s7; -|`}&] -[s7; &] -[s7; -|typedef MyAppWindow CLASSNAME;&] -[s7; &] -[s7; -|MyAppWindow() `{&] -[s7; -|-|Title(`"My application with menu`").Sizeable();&] -[s7; -|-|[* AddFrame](menu);&] -[s7; -|-|menu.[* Set](`[`=`](Bar`& bar) `{ [* MainMenu](bar); `});&] -[s7; -|`}&] -[s7; `};&] -[s7; &] -[s7; GUI`_APP`_MAIN&] -[s7; `{&] -[s7; -|MyAppWindow app;&] -[s7; -|app.Run();&] -[s7; `}&] -[s7; &] -[s5; &] -[s0;= -@@rawimage:1434&1333 -(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VQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYCkrqpmZpbZ0+//D72NyMVMwXozAAAAAElFTkSuQmCC) - -@@rawimage:1434&1332 -(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) -&] -[s5; Of course, with power of C`+`+11 lambdas, it is also possible, -if not always advisable, to `'inline`' the whole menu structure -to single MenuBar`::Set call:&] -[s7; &] -[s7; #include &] -[s7; &] -[s7; using namespace Upp;&] -[s7; &] -[s7; struct MyAppWindow : TopWindow `{&] -[s7; -|MenuBar menu;&] -[s7; &] -[s7; -|MyAppWindow() `{&] -[s7; -|-|Title(`"My application with menu`").Sizeable();&] -[s7; -|-|AddFrame(menu);&] -[s7; -|-|menu.[* Set](`[`=`](Bar`& bar) `{&] -[s7; -|-|-|bar.Sub(`"Menu`", `[`=`](Bar`& bar) `{&] -[s7; -|-|-|-|bar.Add(`"Exit`", `[`=`] `{&] -[s7; -|-|-|-|-|if(PromptOKCancel(`"Exit MyApp?`"))&] -[s7; -|-|-|-|-|-|Break();&] -[s7; -|-|-|-|`});&] -[s7; -|-|-|`});&] -[s7; -|-|`});&] -[s7; -|`}&] -[s7; `};&] -[s7; &] -[s7; GUI`_APP`_MAIN&] -[s7; `{&] -[s7; -|MyAppWindow app;&] -[s7; -|app.Run();&] -[s7; `}&] -[s7; &] -[s5; &] -[s3;:8: 8. Context menu&] -[s5; Context local menu (usually invoked by right mouse click) is -similar to the standard menu bar handling, just instead of adding -MenuBar to your application, you [/ execute] the callback to the -menu:&] -[s5; &] -[s7; #include &] -[s7; &] -[s7; using namespace Upp;&] -[s7; &] -[s7; struct MyAppWindow : TopWindow `{&] -[s7; -|void Exit() `{&] -[s7; -|-|if(PromptOKCancel(`"Exit MyApp?`"))&] -[s7; -|-|-|Break();&] -[s7; -|`}&] -[s7; &] -[s7; -|void RightDown(Point, dword) `{&] -[s7; -|-|MenuBar`::Execute(&] -[s7; -|-|-|`[`=`](Bar`& bar) `{&] -[s7; -|-|-|-|bar.Add(`"Exit`", `[`=`] `{ Exit(); `});&] -[s7; -|-|-|`}&] -[s7; -|-|);&] -[s7; -|`}&] -[s7; &] -[s7; -|MyAppWindow() `{&] -[s7; -|-|Title(`"My application with local menu`").Sizeable();&] -[s7; -|`}&] -[s7; `};&] -[s7; &] -[s7; GUI`_APP`_MAIN&] -[s7; `{&] -[s7; -|MyAppWindow app;&] -[s7; -|app.Run();&] -[s7; `}&] -[s7; &] -[s7; &] -[s0;= -@@rawimage:1710&1225 -(iVBORw0KGgoAAAANSUhEUgAAAeQAAAFdCAIAAABdCYkTAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAASdEVYdFNvZnR3YXJlAEdyZWVuc2hvdF5VCAUAAArgSURBVHhe7d0/bxv3AcZxLkUDT9q82ICbKR3iRUuQN+DZGrM1g7cMhtcA3QwhS2LNGWp1EhDA3vUGPGgzoDcgARYg2OqUub/j70ge/0iiziStJ/p88MBgTscjT0W+puUCGfzr/e9mZnbL18T6n0f/NjOzWzuxNjMLmFibmQVMrM3MAibWZmYBE2szs4CJtZlZwMTazCxgYm1mFjCxNjPb0AaDwT/++2zmYFk5WL40c3Bm18T6m6Mftso1dn6YOf71iweDwYP7b6YOrnDD122u/82bJ/d6vVDvJ169hZcdv9vuwfGu/uoy+/wrmNltWIny3/7+1UyvFx6c3zKxfnDv8VQphgeLNeajX542GbXua139up//rjZ5X2a21s2keclSly0V662dB/de/DQ5+Gp7sLO91nz0y9Mmo9Z9ratf9/Pf1Sbvy8zWvXGgly912VKxvv+m/Lr9sD3y0/3mg3Y9Xh4Ptl6NTi4Rf/zk687TH+40n8Abwx+ktFd79eTe8Fj9DeCqg28mD4YHm5er6ot2rz88c6T9x9ETm59dtOoT26++2K4Hu78VlZXLTp02vsjksotea/oWxrv6nQxPuOq+Zq4wesrUK5ZnDX8w1Ri/eue1mv/t2qdM3/LUe5t7FTNb02qmly912ZKx7vSrJKApcnt8+Cm7/Yn2+JyZjS8yfDCoQR+m5OqDMw+aos10sG7+5LmDnTffOdimsNzC6LeiuvFNlQf3Hrd/qig1LA8uf63RLcxfbeop8+/kZvfV+VL3FUfxHb169ynNXbTvfPaWp06bexUzW9PWGOtRo9siT443D0b/2g9PmHr6sCND45MnOZi51MKDkwdN3aYiWHbF9S974vyLdh/XdW52+Om1eVySOvUSl11hwdXGT1n4Tm54X+0J17368LIdM3/UGJ92yXXMbH2rpS6/jh/MnLBwS8e61qot19S/2PUjZ/116rmjDLXPnU1D84lyrpuzBycP5qJ23fUXP3GpWLcXrL/9lMfbD8tFpm/8sissutroKQvfyQ3vqz3nuldfcNmFp11yHTNb02YCvXyvl41183j4ca/943b3eBOy7a1hVuqz6prza+CacDRfHT5rdIVJki47OH5KfdB0vPv7wSXXb9/G9BWaLC68fvfMetm65veezg9AtnaanySUx9OXXXCF+atNP2X+ndzsvtpzLnnFmdeauuzi05pXb99S879ve4KZrWML07xkr28S6/oZc+54WfmQOP7J9Xg1BI1RyuuztnbavwprG3H5wfFTRm+gPG6V0+avX85p3klx6V8wdi+14PF441DOPu6cvPi15q429dW5dzI6obXwvq655mWPJ6911ZusvwcPz1nv/8PHzMq/ZwujXA6WL80cnNk1sV5y9U/0Mwfn123E1QfNzKy7FcS6+QQ3/GP7zPH5ibWZWb99VqxHf2BfNrVibWbWbyv4ZG1mZuueWJuZBUyszcwCJtZmZgETazOzgIm1mVnAxNrMLGBibWYWsDbW/wPgFhNrgABiDRBArAECiDVAALEGCCDWAAHEGiCAWAMEEGuAAGINEECsAQKINUAAsQYIINYAAcQaIIBYAwQQa4AAYg0QQKwBAog1QACxBggg1gABxBoggFgDBBBrgABiDRBArAECiDVAALEGCCDWAAHEGiCAWAMEEGuAAGINEECsAQKINUAAsQYIINYAAcQaIIBYAwQQa4AAYg0QQKwBAog1QACxBggg1gABxBoggFgDBBBrgABiDRBArAECiDVAALEGCCDWAAHEGiCAWAMEEGuAAGINEECsAQKINUAAsQYIINYAAcQaIIBYAwQQa4AAYg0QQKwBAog1QACxBggg1gABxBoggFgDBBBrgABiDRBArAECiDVAALEGCCDWAAHEGiCAWAMEEGuAAGINEECsAQKINUAAsQYIINYAAcQaIIBYAwQQa4AAYg0QQKwBAog1QACxBggg1gABxBoggFgDBBBrgABiDRBArAECiDVAALEGCCDWAAHEGiCAWAMEEGuAAGINEECsAQKINUAAsQYIINYAAcQaIIBYAwQQa4AAYg0QQKwBAog1QACxBggg1gABxBoggFgDBBBrgABiDRBArAECiDVAALEGCCDWAAHEGiCAWAMEEGuAAGINEECs+/gPI+13BFgzse5DpCrfB9gYse5DpCrfB9gYse5jHKnf3v15N1dvX6xhY8S6D7Guty/WsDFi3YdY19sv34fT09Ozs7Pz8/NPnz5dXFzU48DKiXUfYl1vv3wfjo6Ojo+PT05OSq/FGtZHrPsQ63r75ftwcHBweHhYev3hw4fy4boeB1ZOrPsQ63r75fuwt7dXel0+X5+enoo1rI9Y9/FFY/32+8HE97/OfPXP3/745dHgu6d/zB1f6ertl+/D7u7u/v7+u3fvTk5OPn78WI8DKyfWfXzpWC/Z4uXPvPHq7Zfvw8uXL1+/fi3WsG5i3YdY19sXa9gYse7jNsX6/dNvB4+ev28e//rj4Ntffm5PKL+OPH07Onllq7cv1rAxYt3Hl4712I/P2iPlQf21/mOt+fjB6ldvX6xhY8S6j9v0yXq48pl68peNYg1/QWLdh1jX2xdr2Bix7uOWxboc8WMQ+IsT6z6+dKwnHj1/O/4Lxp+ff9f5C8bm5GdPhyf5C0bIJ9Z9fNFY34rV2xdr2Bix7kOs6+2LNWyMWPch1vX2xRo2Rqz7EOt6+2INGyPWfYh1vX2xho0R6z7Eut6+WMPGiHUf41jfcWINGyPWfYh1JdawMWLdR4kUlVjDZoj1Cpyenh4dHR0cHOzt7e3u7pZ+3R3+s16wGWK9AmdnZ8fHx4eHhyVb+/v75ZPm3eE/mAubIdYrcH5+fnJyUoJVPmC+u2PKLZcbL7dfvgkXFxftdwRYNbFegfKJsqSqfLQ8PT0t2bpTyi2XP1iU2y/fBLGG9RHrFSiRKkqtio93TL3r+h1ovx3AGog1QACxBggg1gABxBoggFgDBBBrgABiDRBArAECiDVAALEGCCDWAAHEGiCAWAMEEGuAAGINEECsAQKINUAAsQYIINYAAcQaIIBYAwQQa4AAYg0QQKwBAog1QACxBggg1gABxBoggFgDBBBrgABiDRBArAECiDVAALEGCCDWAAHEGiCAWAMEEGuAAGINEECsAQKINUAAsQYIINYAAcQaIIBYAwQQa4AAYg0QQKwBAog1QACxBggg1gABxBoggFgDBBBrgABiDRBArAECiDVAALEGCCDWAAHEGiCAWAMEEGuAAGINEECsAQKINUAAsQYIINYAAcQaIIBYAwQQa4AAYg0QQKwBAog1QACxBggg1gABxBoggFgDBBBrgABiDRBArAECiDVAALEGCCDWAAHEGiCAWAMEEGuAAGINEECsAQKINUAAsQYIINYAAcQaIIBYAwQQa4AAYg0QQKwBAog1QACxBggg1gABxBoggFgDBBBrgABiDRBArAECiDVAALEGCCDWAAHEGiCAWAMEEGuAAGINEECsAQKINUAAsQYIINYAAcQaIIBYAwQQa4AAYg0QQKwBAog1QACxBggg1gABxBoggFgDBBBrgABiDRBArAECiDVAALEGCCDWAAHEGiCAWAMEEGuAAGINEECsAQKINUAAsQYIINYAAcQaIIBYAwQQa4AAYg0QQKwBAog1QACxBggg1gABxBoggFgDBBBrgABiDRBArAECiDVAALEGCNDG2szMbvXe//5/Q2ieZvGUBGAAAAAASUVORK5CYII=) -&] -[s5;= &] -[s3;:9: 9. Context menu alternative&] -[s5; It is also possible to create context menu by adding menu items -directly to MenuBar. Example also demonstrates how to convert -the menu item to same value, by using lambda capture by reference:&] -[s5; &] -[s7; #include &] -[s7; &] -[s7; using namespace Upp;&] -[s7; &] -[s7; struct MyAppWindow : TopWindow `{&] -[s7; -|void Exit() `{&] -[s7; -|-|if(PromptOKCancel(`"Exit MyApp?`"))&] -[s7; -|-|-|Break();&] -[s7; -|`}&] -[s7; &] -[s7; -|void RightDown(Point, dword) `{&] -[s7; -|-|int [* result ]`= Null;&] -[s7; -|-|[* MenuBar menu];&] -[s7; -|-|for(int i `= 0; i < 10; i`+`+)&] -[s7; -|-|-|menu.Add(AsString(i), `[`=, [* `&result]`] `{ [* result ]`= i; -`});&] -[s7; -|-|menu.Separator();&] -[s7; -|-|menu.Add(`"Exit`", `[`=`] `{ Exit(); `});&] -[s7; -|-|menu.[* Execute]();&] -[s7; -|-|if(!IsNull([* result]))&] -[s7; -|-|-|PromptOK(`"You have selected `" `+ AsString((int)result));&] -[s7; -|`}&] -[s7; &] -[s7; -|MyAppWindow() `{&] -[s7; -|-|Title(`"My application with context menu`").Sizeable();&] -[s7; -|`}&] -[s7; `};&] -[s7; &] -[s7; GUI`_APP`_MAIN&] -[s7; `{&] -[s7; -|MyAppWindow app;&] -[s7; -|app.Run();&] -[s7; `}&] -[s7; &] -[s7; &] -[s5; &] -[s0;= -@@rawimage:1448&1660 -(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) - -@@rawimage:1448&1661 -(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) -&] -[s5; &] -[s3;:10: 10. Adding images&] -[s5; To add some eye`-candy to the menu, you can add small raster -images. In U`+`+, images are represented by Image values. You -can use image designer, part of TheIDE, to design Image constants&] -[s5; &] -[s0;= -@@rawimage:3100&1890 -(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QRAEQRBEInA6AilEiSQI5RlHuISjthtwuZhOp9vhcNvtTJvNbbW6LRam2ew2mdxGo9tgYOr1bp3OrdUyNRq3Wu1WqZhKpVuhcMvlTJnMLZW6JRJmerr75Uv3ixfM58/dz565nz51P3nCfPzY/eiR++FD94MHzPv33ffuue/eZd654759233rFvPmTfeNG+60NPf16+5r15hXr7qvXHFfvuy+dMl98aL7wgXm+fPuc+fcZ8+6z5xxnz7NPHXKffKk+8QJ9/HjzGPH3EePuo8ccR8+7D50yH3woPvAAff+/e59+5h797r37HHv3u1OTXXv2uXeuZO5Y4d7+3b3tm3urVvdW7a4N29mbtrk3rjRvWGDe/1697p17rVr3WvWuFevdq9a5V610r1yhXvFcvfyZe5ly9xLl7qXLHEvXuxetMi9cKF7wQL3/PnuefPcc+e658xxz57tnjXLPXOme8YM9/Tp7mnT3FOnuqdMcU+e7J40yT1xInP8ePe4ccwxY9yjR7tHjWKOGOEePtw9bJh76FD3kCHuwYPdgwa5Bw50Dxjg7t/f3bevu08fZu/e7p493T16uLt3d3fr5u7a1d2li7tzZ3fHju4OHdzt27vbtXO3betu3drdqpW7RQt38+bulBR3s2bupk3dTZq4Gzd2N2zobtDAXb++u25dd5067tq13TVrumvUcFer5q5a1V2lirtSJXfFiu4KFdzlyrnLlHGXLu0uWdJdooS7WDF30aLuwoXdv/3m/vVXd4EC7vz53T//7M6Xz503r/v7793ffuv+5hv3l1+6v/jC/dln7k8+cX/0kfuDD9zvved+5x137tzuXLncrEOThuiKNye6Oz1dCYIgCIIgEoHTEUghSiRBKM84wiUctV0CTqfL4XDZ7S6bjWm1uiwWptnsMplcRqPLYGDq9S6djqnVujQal1rNVKlcSqVLoXDJ5UyZzCWVuiQSZnq66+VL14sXzOfPXc+euZ4+ZT554nr82PXoEfPhQ9eDB67791337rnu3mXeueO6fdt16xbz5k3XjRuutDTm9euua9dcV6+6rlxxXb7sunSJefGi68IF1/nzrnPnXGfPus6cYZ4+7Tp1ynXypOvECdfx48xjx1xHj7qOHHEdPuw6dMh18CDzwAHX/v2ufftce/e69uxx7d7tSk1l7trl2rnTtWOHa/t217ZtzK1bXVu2uDZvdm3a5Nq40bVhA3P9ete6da61a11r1rhWr3atWuVaudK1coVr+XLXsmWupUtdS5a4Fi9mLlrkWrjQtWCBa/5817x5rrlzXXPmuGbPds2a5Zo50zVjhmv6dNe0aa6pU11TprgmT3ZNmuSaONE1YYJr/HjXuHGusWNdY8a4Ro92jRrlGjnSNWKEa/hw17BhrqFDXUOGuAYPdg0a5BowwNW/v6tfP1ffvq4+fVy9e7t69XL17Onq0cPVvburWzdX166uLl1cnTq5OnZ0dejgat/e1a6dq00bV+vWrlatXC1auJo3d6WkuJo1czVt6mrSxNW4sathQ1eDBq569Vx167rq1HHVquWqWdNVo4arWjVX1aquKlVclSq5KlZ0VajgKlfOVaaMq3RpV8mSruLFXcWKuYoWdRUu7CpUyPXrr64CBVz587t+/tmVL58rb17X99+7vv3W9fXXri+/dH3xheuzz1yffOL66CPXBx+43nvP9c47rty5XblyuViHJg3RtW9OdHd6uhIEQRAEQSQCpyOQQpRIglCecYRLOGo7BRwOp93utNmYVivTYnGazU6TyWk0Og0Gpl7v1OmcWi1To3Gq1UyVyqlUOhUKp1zulMmYUilTInGmpztfvnS+eOF8/pz57Jnz6VPnkyfMx4+djx4xHz50PnjgvH/fee+e8+5d5507zNu3nbduOW/eZN644UxLY16/7rx2zXn1qvPKFefly85Ll5gXLzovXHCeP+88d8559qzzzBnm6dPOU6ecJ086T5xgHj/uPHbMefSo88gR5+HDzkOHmAcPOg8ccO7f79y3z7l3r3PPHubu3c7UVOeuXc6dO507dji3b2du2+bcutW5ZYtz82bnpk3OjRuZGzY41693rlvnXLvWuWYNc/Vq56qVzpUrnCuWO5cvcy5b6ly61LlkiXPxYueiRc6FC50LFjjnz2fOm+ecM8c5e7Zz1iznzJnOGTOY06c7p01zTp3qnDLFOWmSc+JE5oQJzvHjnePGOceOdY4e7Rw1ijlypHPECOfw4c5hw5xDhjgHD3YOGuQcONA5YICzf39nv37OPn2cvXsze/Vy9uzp7NHD2b27s2tXZ5cuzs6dnZ06OTt2dHbo4Gzf3tm2rbNNG2fr1s6WLZ0tWjibN3empDibNXM2aeJs3NjZqJGzYUNn/frOevWcdes6a9d21qrlrFnTWaOGs1o1Z9WqzipVnJUqOStWdJYv7yxXzlmmjLN0aWfJks7ixZ3FijmLFnUWLuwsVMj566/OAgWc+fM7f/rJmS+fM29e5/ffO7/91vn1184vv3R+8YXzs8+cn3zi/Ogj5wcfON97z/nOO87cuZ25cjlZhyYN0c1vTnR3eroSBEEQBEEkAqcjkEKUSIJQnnGEyz+O2na7w2ZzWK1Mi4VpNjtMJofR6DAYmHq9Q6dzaLVMjcahVjNVKodS6VAoHHI5UyZzSKUOiYSZnu54+ZL54oXj+XPHs2eOp08dT54wHz92PHrEfPjQ8eCB4/59x717zLt3HXfuOG7fdty65bh5k3njhiMtjXn9uuPaNcfVq44rV5iXLzsuXXJcvOi4cMFx/jzz3DnH2bOOM2ccp087Tp1ynDzJPHHCcfy449gxx9GjjiNHHIcPMw8dchw86DhwwLF/v2PfPsfevcw9exy7dztSUx27djl27nTs2MHcvt2xbZtj61bHli2OzZsdmzYxN250bNjgWL/esW4dc+1ax5o1jtWrHatWOVaudKxY4Vix3LFsmWPpUsfSJY4lix2LFjEXLnQsWOCYP98xb55j7lzHnDmO2bMds2Y5Zs50zJjhmD7dMW2aY+pUx5QpjsmTHZMmOSZOdEyY4Bg/3jFunGPsWMeYMY7Rox2jRjlGjnSMGOEYPtwxbJhj6FDHkCGOwYMdgwY5Bg509O/v6NfP0bevo08fR+/ejl69HD17Onr0cHTv7ujWzdG1q6NLF0fnzo5OnRwdOjjat3e0a+do29bRurWjVStHy5aOFi0cKSmOZs0cTZs6mjRxNG7saNTI0aCBo359R716jjp1HLVrO2rVctSs6ahe3VGtmqNqVUflyo5KlRwVKjjKl3eULesoU8ZRqpSjZElH8eKOYsUcRYo4fvvNUaiQ49dfHQUKOPLnd/z0kyNfPkfevI7vv3d8+63j668dX37p+OILx2efOT75xPHRR44PPnC8957jnXccuXM7cuVi787kIbrzzYnuTk9XgiAIgiCIROB0BFKIEkkQyjOOcBk7aqMKhQQVrVAhRFGFxkP09RUaD1FUofEQjVdoPEShQoUQ5VVoPEQTKzQeookVGg/RxAqNh6hQoShEhQpFISpUaDxEEyuUhShU6ArH8t9DdMkSx+JoiKIK/fOEaJs2f4Ro8+ZvKkQLFnyTIbr3zYnuTk9XgiAIgiCIROB0BFKIEkkQyjOOcAlHbTtgs9mtVqbFYjebmSaT3Wi0GwxMvd6u0zG1WrtGY1ermSqVXalkKhR2udwukzGlUrtEYk9Pt798aX/xgvn8OfPZM/vTp/YnT+yPH9sfPWI+fGh/8IB5/7793j373bvMO3fst2/bb92y37xpv3GDmZZmv37dfu2a/epV+5UrzMuX7ZcuMS9etF+4YD9/3n7uHPPsWfuZM/bTp+2nTtlPnrSfOME8ftx+7Jj96FH7kSP2w4fthw4xDx60Hzhg37/fvm+ffe9e+549zN277amp9l277Dt32nfssG/fzty2zb51q33LFvvmzfZNm+wbNzI3bLCvX29ft86+dq19zRr76tXMVavsK1faV6ywL19uX77MvnQpc8kS++LF9kWL7AsX2hcssM+fb583zz53rn3OHPvs2fZZs+wzZ9pnzLBPn26fNs0+dap9yhT75Mn2SZPsEyfaJ0ywjx9vHzfOPnasfcwY5qhR9pEj7SNG2IcPtw8bZh86lDlkiH3QIPvAgfYBA+z9+9v79bP37Wvv08feq5e9Z097jx727t3t3boxu3a1d+5s79TJ3rGjvUMHe/v29rZt7W3a2Fu3trdsaW/Rwt68uT0lxd6smb1pU3vjxvZGjewNG9obNLDXr2+vW9dep469Vi17zZr2GjXs1avbq1WzV6lir1zZXrGivUIFe/ny9rJl7WXK2EuVspcsaS9e3F60qL1IEftvv9kLFbIXLGgvUMCeP7/9p5/s+fLZ8+a1f/+9/dtv7V9/bf/yS/sXX9g/+8z+ySf2jz6yf/CB/b337O+8Y8+d254rl511aNIQPfzmRHenpytBEARBEEQicDoCKUSJJAjlGUe4hKO2DbBabRYL02y2mUxMo9FmMDD1eptOZ9NqmRqNTa22qVRMpdKmUDDlcptMZpNKmRKJLT3d9vKl7cUL5vPntmfPmE+f2p48sT1+bHv0iPnwoe3BA9v9+8x792x37zLv3LHdvm27dct28ybzxg1bWprt+nXbtWu2q1dtV64wL1+2XbrEvHjRduGC7fx55rlztrNnbWfO2E6ftp06ZTt5knnihO34cduxY7ajR21HjtgOH2YeOmQ7eNB24IBt/37bvn22vXuZe/bYdu+2pabadu2y7dzJ3LHDtn27bds229atti1bbJs3Mzdtsm3caNuwwbZ+vW3dOtvatcw1a2yrV9tWrbKtXGlbscK2fDlz2TLb0qW2JUtsixfbFi2yLVxoW7DANn++bd4829y5tjlzbLNn22bNYs6caZsxwzZ9um3aNNvUqbYpU2yTJ9smTbJNnGibMME2frxt3Djb2LG2MWNso0fbRo2yjRxpGzHCNny4bdgw29ChtiFDbIMH2wYNsg0caBswwNa/v61vX1ufPrbevW29etl69rT16GHr3t3WrZuta1dbly62zp1tnTrZOna0tW9va9fO1ratrXVrW6tWtpYtbS1a2Jo3t6Wk2Jo1szVpYmvc2Naoka1hQ1uDBrZ69Wx169pq17bVqmWrWdNWo4atenVb1aq2KlVslSvbKla0VahgK1fOVrasrXRpW6lStpIlbcWL24oWtRUpYvvtN9uvv9oKFrQVKGDLn9/200+2fPlsefPavv/e9u23tq+/tn35pe2LL2yffWb7+99tH31k++AD23vv2d55x5Y7ty1XLhvr0KQheuLNie5OT1eCIAiCIIhE4HQEUogSSRDKM45wCUdtq4DFYjWbrSYT02i0GgxMvd6q01m1WqZGY1WrrSoVU6m0KhRWuZwpk1mlUqZEYk1Pt758yXzxwvr8ufXZM+bTp9YnT6yPHzMfPbI+fGh98MB6/z7z3j3r3bvMO3est29bb92y3rzJvHHDmpZmvX6dee2a9epV65Ur1suXrZcuMS9etF64YD1/nnnunPXsWeuZM8zTp62nTllPnrSeOGE9ftx67Bjz6FHrkSPWw4ethw5ZDx60HjjA3L/fum+fde9e65491t27rampzF27rDt3WnfssG7fbt22zbp1K3PLFuvmzdZNm6wbN1o3bLCuX89ct866dq11zRrr6tXWVausK1cyV6ywLl9uXbbMunSpdckS6+LFzEWLrAsXWhcssM6fb503zzp3rnXOHOvs2dZZs6wzZ1pnzLBOn26dNs06dap1yhTr5MnWSZOYEyZYx4+3jhvHHDPGOno0c+RI64gR1uHDmUOHWocMYQ4aZB04kDlggLVfP2vfvtY+fay9e1t79bL27Gnt0cParRuza1drly7WTp2sHTtaO3Swtm9vbdfO2qaNtXVra6tW1pYtrS1aWFNSrM2aWZs2tTZpYm3c2NqokbVhQ2v9+tZ69ax161pr17bWqmWtWdNao4a1WjVr1arWKlWslSpZK1a0li9vLVfOWqaMtXRpa6lS1hIlrMWLW4sWtRYpYv3tN+uvv1oLFrT+8ov155+tP/1k/fFH6w8/WL//3vrtt9avv7Z++aX1iy+sn31m/fvfrR99ZP3b36zvvWd9+21r7tzWXLmsrEOThui5Nye6Oz1dCYIgCIIgEoHTEUghSiRBKM84wiUctS0CZjPTZLIYjRaDganXW3Q6plZr0WgsajVTpbIolRaFwiKXM2UyplRqkUgs6emWly+ZL15Ynj9nPntmefrU8uSJ5fFj5qNHlocPLQ8eMO/ft9y7x7x713LnjuX2bcutW5abN5k3bljS0pjXr1uuXbNcvWq5csVy+TLz0iXLxYuWCxcs588zz52znD3LPHPGcvq05dQpy8mTlhMnmMePW44dsxw9ajlyxHL4sOXQIebBg5YDByz791v27bPs3WvZs4e5e7clNdWya5dl507Ljh2W7duZ27ZZtm61bNli2bzZsmkTc+NGy4YNlvXrLevWWdautaxZw1y92rJqlWXlSsuKFZblyy3LljGXLrUsWWJZvNiyaJFl4ULLggWW+fOZc+da5sxhzpplmTmTOWOGZfp0y7RplqlTLVOmWCZPtkyaZJk40TJhgmX8eMu4cZaxYy1jxlhGj7aMGmUZOdIyYoRl+HDLsGGWoUMtQ4ZYBg+2DBpkGTjQMmCApX9/S79+lr59LX36WHr3tvTsaenRw9K9u6VbN0vXrpYuXSydO1s6dbJ07Gjp0MHSrp2lbVtLmzaW1q0trVpZWra0tGhhSUmxNGtmadrU0qSJpXFjS6NGloYNLfXrW+rVs9SpY6ld21KrlqVmTUuNGpZq1SxVq1oqV7ZUqmSpUMFSvrylXDlLmTKW0qUtpUpZSpSwFCtmKVrUUqSI5bffLL/+ailY0PLLL5aff7b89JPlxx8tP/xg+e47y7ffWr7+2vLll5YvvrB89pnl73+3fPih5W9/s7z3nuXtty25c1ty5bKwDk0aopffnOju9HQlCIIgCIJIBE5HIIUokQShPOMIl3DUNguYTEyj0WwwMPV6s05n1mqZGo1ZrWaqVGal0qxQmOVys0zGlEqZEok5Pd388qX5xQvm8+fMZ8/MT5+anzwxP35sfvSI+fCh+cED8/37zHv3zHfvMu/cMd++bb51y3zzpvnGDWZaGvP6dfO1a+arV81XrpgvX2ZeumS+eNF84YL5/HnzuXPMs2eZZ86YT582nzplPnmSeeKE+fhx87Fj5qNHzUeOMA8fNh86ZD540HzggHn/fvO+fcy9e8179ph37zanppp37TLv3MncscO8fbt52zbz1q3mLVuYmzebN20yb9xo3rDBvH69ed065tq15jVrzKtXm1etMq9caV6xgrl8uXnZMvPSpeYlS8yLF5sXLWIuXGhesMA8f7553jzz3LnmOXPMs2ebZ80yz5xpnjHDPH26edo089SpzClTzJMnmydNMk+caB4/3jxuHHPsWPOYMebRo82jRplHjDAPH84cNsw8dKh5yBDz4MHmgQPNAwYw+/c39+tn7tvX3KePuVcvc8+e5h49zN27m7t1M3ftau7Sxdypk7ljR3OHDub27c3t2pnbtjW3aWNu1crcsqW5RQtz8+bmlBRzs2bmpk3NTZqYGzUyN2xobtDAXL++uW5dc5065tq1zTVrmmvUMFevbq5WzVylirlyZXOlSuYKFczly5vLlTOXKWMuVcpcsqS5RAlzsWLmokXNRYqYf/vN/Ouv5oIFzb/8Yv75Z3O+fOYffzT/8IP5u+/M335r/vprc5485s8/N3/6qfnvfzd/+KH5b38zv/uu+e23zblzm3PlMrMOTRqiaW9OdHd6uhIEQRAEQSQCpyOQQpRIglCecYRLOGqbBIxGpsFg0uuZOp1Jq2VqNCa12qRSMZVKk0JhksuZMplJKjVJJMz0dNPLl8wXL0zPn5uePWM+fWp68sT0+LHp0SPmw4emBw9M9+8z790z3b3LvHPHdPu26dYt082bzBs3TGlpzOvXTdeuma5eZV65Yrp82XTpkuniRdOFC8zz503nzpnOnmWeOWM6fdp06hTz5EnTiROm48dNx46Zjh5lHjliOnzYdOiQ6eBB04EDpv37mfv2mfbuNe3ZY9q925Saatq1i7lzp2nHDtP27aZt20xbtzK3bDFt3mzatMm0cSNzwwbT+vWmdetMa9ea1qwxrV5tWrWKuXKlacUK0/LlpmXLTEuXmpYsYS5ebFq0yLRwoWnBAtP8+aZ585hz55rmzDHNnm2aNcs0YwZz+nTTtGmmqVNNU6aYJk82TZpkmjjRNGGCafx407hxprFjTWPGmEaPNo0aZRo50jRihGn4cNOwYaahQ01DhpgGDzYNGmQaONA0YICpf39Tv36mvn1NffqYevc29epl6tnT1KOHqXt3U9eupi5dTJ07mzp1MnXsaOrQwdS+valtW1ObNqbWrU2tWplatjS1aGFq3tyUkmJq2tTUpImpcWNTo0amhg1NDRqY6tUz1a1rqlPHVLu2qWZNU40apurVTVWrmqpUMVWubKpY0VShgql8eVPZsqYyZUylSplKljSVKGEqVsxUtKipcGFToUKmX381FSxo+uUX088/m/LlM/34o+mHH0zffWf65hvT11+b8uQxff656dNPTX//u+nDD01/+5vp3XdNb79typ3blCuXiXVo0hC98+ZEd6enK0EQBEEQRCJwOgIpRIkkCOUZR7iEoza3QiFBhQoVQvSfq1AhRIUKFUIUKlQIUaFC4yH6+gqNh2jSCo2HaGKFxkM0XqGJISpUaGKIChUaD1GoUNEQTazQeIgmVmg8RBMrdOZMXKF/hhBt1uxNhWiBAuIh+tVX/4oQffjmRHenpytBEARBEEQicDoCKUSJJAjlGUe4hKO2ETAYmHo9U6czarVGjcaoVjNVKqZSaVQojHK5USZjSqVMicSYnm58+dL44gXz+XPms2fGp0+NT54YHz9mPnpkfPjQ+OAB8/594717xrt3mXfuGG/fZt66Zbx503jjBjMtzXj9uvHaNePVq8wrV4yXLzMvXTJevGi8cMF4/rzx3Dnm2bPGM2eMp08bT51injxpPHGCefy48dgx49GjxiNHmIcPGw8dMh48aDxwwLh/v3HfPubevcY9e4y7dxtTU427dhl37mTu2GHcvt24bZtx61bjli3MzZuNmzYxN240bthgXL/euG6dce1a5po1xtWrjatWGVeuNC5fzly2zLh0qXHJEuPixcxFi4wLFxoXLDDOn2+cN884dy5zzhzj7NnGWbOMM2caZ8wwTp9unDbNOHWqccoU4+TJxkmTjBMnGidMMI4fbxw3zjh2rHHMGOPo0cZRo4wjRzKHDzcOG2YcOtQ4ZIhx8GDjoEHMgQON/fsb+/Uz9u1r7NPH2Ls3s1cvY48exu7djd26Gbt2NXbpYuzc2dipk7FDB2P79sZ27Yxt2xrbtDG2bm1s1crYooWxeXNjSoqxWTNj06bGJk2MjRsbGzY0NmhgrF/fWK+esW5dY506xtq1jTVrGmvUMFavbqxa1VilirFSJWPFisby5Y3lyhnLljWWKWMsVcpYsqSxRAljsWLGIkWMhQsbCxUy/vqrsUAB4y+/GH/+2Zgvn/HHH40//GD87jvjN98Yv/rKmCeP8fPPjZ9+avz7340ffmj829+M775rfPttY+7cxly5jKxDk4boszcnujs9XQmCIAiCIBKB0xFIIUokQSjPOMIlHLUNgF7P1OmYWq1BozGo1UyVyqBUMhUKg1xukMmYUqlBImGmpxtevjS8eMF8/pz57Jnh6VPDkyeGx48Njx4xHz40PHhguH+fee+e4e5d5p07htu3DbduMW/eNNy4wUxLM1y/brh2zXD1KvPKFcPly8xLlwwXLxouXGCeP284d85w9qzhzBnD6dOGU6eYJ08aTpxgHj9uOHbMcPQo88gRw+HDhkOHDAcPGg4cMOzfz9y3z7B3r2HPHsPu3YbUVOauXYadOw07dhi2bzds22bYupW5ZYth82bDpk3MjRsNGzYw1683rFtnWLvWsGaNYfVqw6pVhpUrDStWGJYvNyxbZli6lLlkiWHxYsOiRYaFCw0LFhjmzzfMm2eYO5c5Z45h9mzDrFmGmTMNM2YYpk83TJtmmDrVMGWKYfJk5qRJhokTDRMmGMaPN4wbZxg71jBmjGH0aMOoUYaRIw0jRhiGDzcMG2YYOtQwZIhh8GDDoEGGgQMNAwYY+vc39Otn6NvX0KePoXdvQ69ehp49DT16GLp3N3TrZuja1dCli6FzZ0PHjoYOHQzt2xvatTO0bWto08bQurWhZUtDixaG5s0NKSmGZs0MTZsamjQxNGpkaNjQ0KCBoX59Q716hrp1DXXqGGrVMtSsaahRw1CtmqFqVUPlyoZKlQwVKxrKlzeUK2coW9ZQpoyhVClDyZKGEiUMxYoZihQxFC5sKFTIULCgoUABwy+/GH7+2ZAvn+HHHw0//GD47jvDN98YvvrKkCeP4fPPDZ9+avj73w0ffmj4298M775rePttQ+7chly5DKxDk4ao5M2J7k5PV4IgCIIgiETgdARSiBJJEMozjnAJR229gE7H1Gr1Gg1TrdarVHqlkqlQ6OVypkyml0r1EgkzPV3/8iXzxQv98+f6Z8+YT5/qnzzRP37MfPRI//Ch/sED/f37zHv39HfvMu/c0d++zbx1S3/zJvPGDX1amv76dea1a/qrV/VXrugvX2ZeuqS/eFF/4QLz/Hn9uXP6s2eZZ87oT5/WnzqlP3lSf+IE8/hx/bFj+qNHmUeO6A8f1h86xDx4UH/ggH7/fv2+ffq9e/V79jB379anpup37dLv3KnfsUO/fTtz2zb91q36LVv0mzfrN21ibtzI3LBBv369ft06/dq1+jVrmKtX61et0q9cqV+xQr98uX7ZMv3SpfolS/SLF+sXLdIvXKhfsEA/fz5z3jz93Ln6OXP0s2frZ81izpypnzFDP326fto0/dSp+ilT9JMn6ydN0k+cqJ8wQT9+PHPsWP2YMfrRo5kjR+pHjGAOG6YfOpQ5ZIh+0CDmwIH6AQP0/fvr+/XT9+2r791b36sXs2dPfffuzG7d9F266Dt31nfqpO/YUd+hg759e327dvo2bfStW+tbtdK3bKlv0ULfvLk+JUXftKm+SRN948b6Ro30DRvqGzTQ16+vr1tXX6eOvnZtfa1a+po19dWr66tV01epoq9cWV+pkr5iRX358vpy5fRly+pLl9aXKqUvWVJfvLi+WDF9kSL6woX1hQrpCxbUFyigz59f/9NP+nz59Hnz6r//Xv/dd/pvvtF/9ZU+Tx7955/rP/1U//e/6z/8UP+3v+nffVf/9tv63Ln1uXLpWYcmDVHlmxPdnZ6uBEEQBEEQicDpCKQQJZIglGcc4RKO2joBrZap0TDVap1KpVMqmQqFTi5nymQ6qVQnkTDT03UvXzJfvNA9f6579oz59KnuyRPd48fMR490Dx/qHjxg3r+vu3ePefeu7s4d3e3bzFu3dDdvMm/c0KWl6a5fZ167prt6VXflCvPyZd2lS7qLF3UXLjDPn9edO8c8e1Z35ozu9GndqVO6kyeZJ07ojh/XHTumO3qUeeQI8/Bh3aFDuoMHdQcO6Pbv1+3bx9y7V7dnj273bl1qqm7XLt3OncwdO3Tbt+u2bdNt3arbsoW5ebNu0ybdxo3MDRt069cz163TrV2rW7NGt3q1btUq3cqVuhUrmMuWMZcu1S1Zolu8WLdokW7hQt2CBbr583Xz5unmztXNmcOcPVs3a5Zu5kzdjBm66dN106bppk5lTpmimzxZN2mSbuJE3YQJuvHjdePG6caO1Y0Zoxs9WjdqlG7kSN2IEbrhw3XDhumGDtUNGaIbPFg3aJBu4EDmgAG6fv10ffvq+vTR9e6t69VL17OnrkcPXffuum7ddF276rp00XXurOvUSdexo65DB1379rq2bXVt2uhat9a1aqVr2VLXooWueXNdSoquaVNdkya6xo11jRrpGjbUNWigq19fV7eurk4dXe3aulq1dDVq6KpX11WrpqtSRVe5sq5SJV3Firry5XXlyunKltWVLq0rVUpXsqSueHFd0aK6IkV0hQvrChXSFSyoK1BAlz+/7qefdPny6fLm1X3/ve7bb3XffKP76itdnjy6zz/Xffqp7u9/1334oe5vf9O9+67u7bd1uXPrcuXSsQ5NGqK6Nye6Oz1dCYIgCIIgEoHTEUghSiRBKM84wiUctbUCGg1TrWaqVEylUqtQaOVyrUzGlEqZEok2PV378qX2xQvm8+fMZ8+0T59qnzzRPn6sffSI+fCh9sED7f37zHv3tHfvMu/c0d6+rb11i3nzpvbGDWZamvb6dea1a9qrV7VXrjAvX9ZeuqS9eFF74YL2/HnmuXPMs2e1Z85oT5/WnjqlPXmSeeKE9vhx7bFj2qNHmUeOaA8fZh46pD14UHvgAHP/fu2+fdq9e7V79mh379ampjJ37dLu3KndsUO7fbt22zbt1q3MLVu0mzdrN23SbtzI3LCBuX69dt067dq12jVrtKtXM1et0q5cqV2xQrt8uXbZMu3SpcwlS7SLFmkXLtQuWKCdP187bx5z7lztnDna2bO1s2ZpZ87UzpjBnD5dO22adupU7ZQp2smTtZMmMSdO1E6YoB0/XjtunHbMGO3o0cxRo7QjR2pHjNAOH64dOlQ7ZAhz8GDtoEHagQO1AwZo+/fX9uun7dtX26ePtndvba9e2p49td27a7t1Y3btqu3SRdu5s7ZTJ22HDtr27bXt2mnbttW2aaNt3VrbqpW2ZUtt8+balBRts2bapk21TZpoGzfWNmqkbdBAW7++tl49bd262jp1tLVra2vV0taooa1eXVu1qrZKFW3lytpKlbQVK2rLl9eWK6ctW1ZburS2ZEltiRLa4sW1RYtqixTRFi6sLVRIW7CgtkABbf782p9+0v74ozZvXu3332u//Vb7zTfar77S5smj/fxz7aefav/+d+2HH2r/9jftu+9q335bmzu3NlcuLevQpCFqfnOiu9PTlSAIgiAIIhE4HYEUokQShPKMI1zCUfuVCo0naGKFxhM0sULjCfp/XqGQoLwKFUI0e4UKIRqvUCFEc1KhQoiiChVCNF6hQoiiCo2HaGKFxkMUKnTxYhyi8QpNDNHECo2HaGKFjh0bC9HECh02LBaiUKG8EBUqtEePWIgmVmjHjq+EaLxCW7R4JUSFCm3Y8JUQFSq0Zk0WotWqvRKiFSrEQrRMmT9CtFixWIj+9pv211+5Ifr11yxEv/giFqIff/zPhqj9zYnuTk9XgiAIgiCIROB0BFKIEkkQyjOOcAlHbY2AWq1RqZhKJVOh0MjlGpmMKZVqJBJmerrm5UvNixfM5881z54xnz7VPHmiefyY+eiR5uFDzYMHzPv3NffuMe/e1dy5o7l9m3nrlubmTeaNG5q0NM3168xr1zRXrzKvXNFcvqy5dElz8aLmwgXm+fOac+eYZ89qzpzRnD6tOXWKefKk5sQJzfHjzGPHNEePao4c0Rw+zDx0SHPwoObAAeb+/Zp9+5h792r27NHs3q1JTdXs2sXcuVOzY4dm+3bNtm2arVs1W7YwN2/WbNqk2bhRs2EDc/165rp1mrVrNWvWaFav1qxapVm5krlihWb5cs2yZZqlSzVLlmgWL2YuWqRZuFCzYIFm/nzNvHmauXM1c+ZoZs/WzJrFnDlTM2OGZvp0zbRpmqlTNVOmaCZP1kyapJk4kTlhgmb8eM24cZqxYzVjxmhGj9aMGqUZOVIzYoRm+HDNsGGaoUM1Q4ZoBg/WDBqkGThQM2CApn9/Tb9+mr59NX36aHr31vTqpenZU9Ojh6Z7d023bpquXTVdumg6d9Z06qTp2FHToYOmfXtNu3aatm01rVtrWrXStGypadFC07y5JiVF06yZpkkTTePGmkaNNA0baho00NSvr6lXT1OnjqZ2bU2tWpqaNTXVq2uqVdNUraqpXFlTqZKmYkVNhQqa8uU1ZctqypTRlCqlKVlSU6KEplgxTdGimsKFNb/9pvn1V03BgppfftHkz6/56SfNjz9q8ubVfP+95ttvNV9/rfnyS80XX2g++0zz6aeajz/WfPih5m9/07z7rubttzW5c2ty5dKwDk0aop43J7o7PV0JgiAIgiASgdMRSCFKJEEozzjCJRy1cYVCgmavUEjQ7BUKCfr6CoUE/d+p0HiIChUqhChUqBCiiRUqhCiqUCFEc1KhQojGKzQxRFGFohAVrdB4iCZWKJi9Qv/REEUVKoSoUKFt2rwSokKFNm36SogKFVq3bvIQLVfulRAtXpyFaJEi/1iIfvLJ/0GIBt6c6O70dCUIgiAIgkgETkcghSiRBKE84wiXcNRWAyqVWqlkKhRquZwpk6mlUqZEok5PV798yXzxQv38OfPZM/XTp+onT5iPH6sfPWI+fKh+8EB9/z7z3j313bvMO3fUt2+rb91i3rypvnGDmZamvn5dfe0a8+pV9ZUrzMuX1ZcuqS9eVF+4wDx/Xn3uHPPsWfWZM+rTp5mnTqlPnlSfOKE+flx97Bjz6FH1kSPMw4fVhw6pDx5UHzjA3L9fvW8fc+9e9Z496t27mamp6l271Dt3qnfsUG/fzty2Tb11q3rLFvXmzepNm9QbNzI3bFCvX69et465dq16zRrm6tXqVavUK1eqV6xQL1+uXraMuXSpeskS9eLF6kWL1AsXqhcsYM6fr543Tz13rnrOHPXs2epZs5gzZ6pnzFBPn66eNk09dap6yhT15MnqSZPUEyeqJ0xQjx/PHDuWOWaMevRo9ahR6pEj1SNGqIcPVw8bph46VD1kiHrwYPWgQcwBA9T9+6v79VP37avu00fduzezZ091jx7q7t3V3bqpu3ZVd+mi7txZ3amTumNHdYcO6vbt1e3aqdu2Vbdpo27dWt2qlbplS3Xz5uqUFHWzZuqmTdVNmqgbN1Y3aqRu0EBdv766Xj113brqOnXUtWura9VS16ihrl5dXa2aukoVdeXK6kqV1BUrqitUUJcrpy5bVl26tLpUKXWJEurixdXFiqmLFFEXLqwuVEj966/qAgXUv/yizp9f/dNP6h9/VOfNq/7+e/W336q//lr95ZfqL75Qf/aZ+pNP1B9/rP7gA/X776vffVf99tvq3LnVuXKpWYcmDdGsNye6Oz1dCYIgCIIgEoHTEUghSiRBKM84wiUctVWAUslUKFRyuUomY0qlTIlElZ6uevmS+eKF6vlz5rNnqqdPVU+eMB8/Vj16xHz4UPXgger+fea9e6q7d5l37qhu31bdusW8eZN544YqLU11/Trz2jXV1avMK1dUly+rLl1iXryounBBdf686tw55tmzqjNnVKdPM0+dUp08qTpxgnn8uOrYMdXRo8wjR1SHD6sOHWIePKg6cEC1f79q3z7m3r2qPXtUu3czU1NVu3apdu5k7tih2r5dtW2bautW1ZYtqs2bmZs2qTZuVG3YoFq/XrVuHXPtWuaaNarVq1WrVqlWrlStWMFcvly1bJlq6VLVkiWqxYtVixYxFy5ULVigmj9fNW+eau5c1Zw5zNmzVbNmqWbOVM2YoZo+XTVtmmrqVNWUKarJk5mTJqkmTlRNmKAaP141bpxq7FjVmDGq0aNVo0apRo5UjRjBHDaMOXSoasgQ1eDBqkGDVAMHqgYMUPXvr+rXT9W3r6pPH1Xv3qpevVQ9e6p69FB1767q1k3VtauqSxdV586qTp1UHTuqOnRQtW+vatdO1batqk0bVatWqpYtVS1aqJo3V6WkqJo1UzVtqmrcWNWokaphQ1WDBqr69VX16qnq1lXVrq2qVUtVs6aqRg1V9eqqatVUVaqoKldWVaqkqlhRVb68qlw5VZkyqtKlVSVLqkqUUBUvripWTFWkiKpwYVWhQqqCBVUFCqh++UX188+qfPlUP/6o+uEH1Xffqb79VvX116ovv1R98YXqs89Un3yi+vhj1QcfqN5/X/Xuu6q331blzq3KlUvFOjRJiGa9FXlzorvT05UgCIIgCCIROB2BFKJEEoTyjCNcwlFbKaBQKOVypUzGlEqZEokyPZ358qXyxQvl8+fMZ8+UT58ynzxRPn6sfPSI+fCh8sED5v37ynv3mHfvKu/cUd6+zbx1S3nzJvPGDWVamvL6dea1a8qrV5lXrigvX1ZeusS8eFF54YLy/HnmuXPKs2eVZ84oT59mnjrFPHlSeeKE8vhx5bFjyqNHmUeOKA8fVh46xDx4UHnggHL/fua+fcq9e5V79jB371ampjJ37VLu3KncsUO5fbty2zbm1q3KLVuUmzcrN21Sbtyo3LCBuX69ct065dq1zDVrlKtXM1etUq5cqVyxQrl8uXLZMuXSpcwlS5SLFysXLVIuXKhcsEA5fz5z3jzl3LnKOXOUs2crZ81SzpzJnDFDOX26cto05dSpyilTlJMnKydNYk6cqBw/njlunHLMGObo0cpRo5QjRypHjFAOH64cNkw5dChzyBDl4MHKQYOUAwcq+/dn9uun7NtX2aePsndvZa9eyh49mN27K7t1U3btquzSRdmpk7JjR2WHDsz27ZXt2inbtlW2aaNs1UrZsqWyRQtl8+bKlBRls2bKpk2VjRsrGzVSNmyobNBAWb++sl49Zd26ytq1lbVqKWvWVNaooaxeXVm1qrJKFWXlyspKlZQVKijLl1eWLassU0ZZurSyZElliRLK4sWVxYopixRRFi6sLFRIWbCgskAB5S+/KH/+WZkvn/LHH5U//KD87jvlN98ov/5a+eWXyi++UH72mfKTT5Qff6z84APl++8r331X+fbbyty5lblysf8/nslCNPBW5M2J7k5PV4IgCIIgiETgdARSiBJJEMozjnAJR22FgFyukMkUUilTImGmpytevmS+eKF4/pz57Jni6VPFkyfMx48Vjx4xHz5UPHiguH+fee+e4u5d5p07itu3mbduKW7eVNy4wUxLU1y/zrx2TXH1quLKFebly4pLl5gXLyouXFCcP888d05x9qzizBnF6dOKU6eYJ08yT5xQHD+uOHaMefSo4sgRxeHDikOHmAcPMg8cUOzfr9i3T7F3r2LPHsXu3czUVMWuXcydOxU7dii2b2du26bYulWxZYti82bFpk3MjRsVGzYo1q9XrFunWLuWuWYNc/VqxapVipUrFStWKJYvZy5bpli6VLFkiWLxYsWiRYqFC5kLFijmz1fMm6eYO1cxZ45i9mzmrFmKmTMVM2Yopk9XTJummDqVOWWKYvJkxaRJiokTFRMmKMaPV4wbpxg7VjFmjGL0aMWoUYqRIxUjRjCHD1cMG6YYOlQxZIhi8GDFoEGKgQMVAwYo+vdX9Oun6NtX0aePondvRa9eip49FT16KLp3V3TrpujaVdGli6JzZ0WnToqOHRUdOijat1e0a6do21bRpo2idWtFq1aKli0VLVoomjdXNGumaNpU0aSJonFjRaNGioYNFQ0aKOrVU9Stq6hTR1G7tqJWLUXNmooaNRTVqimqVlVUqaKoXFlRsaKiQgVF+fKKsmUVZcooSpdWlCypKFFCUby4olgxRZEiit9+UxQqpChYUFGggCJ/fsXPPyvy5VPkzav44QfFd98pvvlG8fXXii+/VHzxheKzzxSffKL4+GPFBx8o3n9f8e67irffVuTOrciVS8E6NEmIet6KvDnR3enpShAEQRAEkQicjkAKUSIJQnnGES7hqP1KhcYTFFUoJOg/WqGQoNkrFBI0e4VCgopWaDxE/7kKFUL0n6hQIURRhcZDNLFC4yGaWKHxEE2s0HiIJlbo60M0sUL/5SEqVGhKyishKlRo/foiIVq9+h8hWqlSLETLlYuFaKlSf4Ro0aL/myFqfyvy5kR3p6crQRAEQRBEInA6AilEiSQI5RlHuISjthyQyeRSKVMikaenM1++lL94wXz+nPnsmfzpU/mTJ/LHj5mPHjEfPpQ/eMC8f19+7x7z7l35nTvy27eZt27Jb95k3rghT0uTX7/OvHZNfvUq88oV+eXL8kuXmBcvyi9cYJ4/Lz93Tn72LPPMGfnp0/JTp+QnTzJPnJAfPy4/dox59Kj8yBH54cPMQ4fkBw8yDxyQ798v37ePuXevfM8e+e7d8tRU+a5dzJ075Tt2yLdvZ27bJt+6lblli3zzZvmmTfKNG+UbNjDXr5evWydfu1a+Zg1z9WrmqlXylSvlK1bIly+XL1smX7qUuWSJfPFi+aJF8oUL5QsWyOfPZ86bJ587Vz5njnz2bPmsWcyZM+UzZsinT5dPmyafOlU+ZQpz8mT5pEnyiRPlEybIx4+XjxsnHztWPmaMfPRo5qhR8pEj5SNGyIcPlw8bJh86VD5kiHzwYPmgQfKBA+UDBsj795f36yfv21fep4+8d295r17ynj3lPXrIu3eXd+8m79ZV3rWLvEtneedO8k4d5R06yNu3l7drJ2/bVt6mjbx1a2bLlvIWLeTNm8tTUuTNmsmbNpU3aSJv1EjesKG8QQN5/fryevXkdevK69SR16olr1lTXqOGvHp1ebVq8qpV5VWqyCtVklesKK9QQV6unLxsWXmZMvJSpeQlS8pLlJAXLy4vWlReuLD8t9/khQrJCxaUFyggz59f/vPP8nz55Hnzyn/4Qf7dd/JvvpF//bX8yy/lX3wh/+wz+SefyD/+WP7BB/L335e/+6787bfluXPLc+WSsw5NEqLmtyJvTnR3eroSBEEQBEEkAqcjkEKUSIJQnnGESzhqywCplCmRyNLTZS9fMl+8YD5/znz2TPb0qezJE9njx8xHj5gPH8oePGDevy+7d0929y7zzh3Z7dvMW7dkN28yb9yQpaXJrl9nXrsmu3qVeeWK7PJl2aVLzIsXZRcuMM+fl507Jzt7lnnmjOz0aeapU7KTJ2UnTsiOH5cdO8Y8epR55Ijs8GHZoUOygweZBw7I9u9n7tsn27tXtmePbPduZmqqbNcu2c6dsh07mNu3y7ZtY27dKtuyRbZ5s2zTJtnGjcwNG2Tr18vWrZOtXStbs4a5ejVz1SrZypWyFSuYy5Yxly6VLVkiW7xYtmgRc+FC2YIFsvnzZfPmyebOlc2Zw5w9WzZrlmzmTNmMGbLp02XTpjGnTpVNmSKbPFk2aZJs4kTZhAnM8eNl48bJxo6VjRkjGz1aNmqUbORI2YgRsuHDZcOGyYYOlQ0ZIhs8mDlokGzgQNmAAbL+/WX9+sn69pX16SPr3VvWq5esZ09Zjx6y7t1l3brJunWVde0i69xZ1qmTrGNHWYcOsvbtZe3aydq2lbVpI2vdWtaqlaxlS1mLFrLmzWUpKbKmTWVNmsgaN5Y1aiRr2FDWoIGsfn1Z3bqyOnVktWvLatWS1awpq1FDVr26rFo1WdWqssqVZZUqySpWlJUvLytXTla2rKx0aVmpUrKSJWUlSsiKFZMVLSorXFj222+yQoVkBQvKChSQ5c8v+/lnWb58srx5ZT/8IPvuO9k338i+/lr25ZeyL76QffaZ7JNPZB9/LPvgA9n778vefVf29tuy3LlluXLJWIcmCVHdW5E3J7o7PV0JgiAIgiASgdMRSCFKJEEozzjCJRy1pYBEwkxPl758KX3xgvn8ufTZM+bTp8wnT6SPH0sfPWI+fMh88EB6/z7z3j3p3bvMO3ekt29Lb91i3rwpvXGDmZYmvX5deu0a8+pV6ZUrzMuXpZcuSS9eZF64ID1/nnnunPTsWemZM8zTp6WnTjFPnpSeOCE9flx67Bjz6FHpkSPMw4elhw5JDx5kHjgg3b+fuW+fdO9e6Z49zN27pamp0l27pDt3SnfsYG7fLt22Tbp1K3PLFunmzcxNm6QbN0o3bJCuXy9dt066di1zzRrp6tXSVauYK1dKV6xgLl8uXbZMunSpdMkS6eLF0kWLmAsXShcskM6fL503Tzp3rnTOHObs2dJZs6QzZ0pnzJBOny6dNo05dap0yhTp5MnSSZOkEydKJ0xgjh8vHTdOOnasdMwY5qhRzJEjpSNGSIcPlw4bJh06VDpkiHTwYOmgQdKBA6UDBkj792f27Svt00fau7e0Vy9pz57MHj2k3btLu3WTdu0q7dJZ2rmTtFMnaceO0g4dpO3bS9u1k7ZpI23dmtmqlbRlS2mLFtLmzaXNmkmbNpU2aSJt3FjaqJG0YUNpgwbSevWkdetK69SR1q4trVVLWrOmtEYNabVq0qpVpVWqSCtXllaqJK1QQVq+vLRcOWmZMtLSpaWlSklLlpQWLy4tVkxatKi0cGHpb79Jf/1VWrCg9JdfpPnzS3/+WZovnzRvXukPP0i/+076zTfSr76Sfvml9IsvpJ99Jv3kE+nHH0s/+ED6/vvSd9+Vvv229L/+S5orl5R1aJIQVb4VeXOiu9PTlSAIgiAIIhE4HYEUokQShPKMI1zCUVsikJ4ueflS8uIF8/lzybNnzKdPmU+eSB4/Zj56JHn4UPLgAfP+fcm9e8y7d5l37khu35bcuiW5eZN54wYzLU1y/Trz2jXJ1avMK1ckly9LLl1iXrwouXCBef685Nw5ydmzzDNnJKdPM0+dkpw8KTlxgnn8uOTYMcnRo5IjR5iHD0sOHZIcPMg8cECyfz9z3z7J3r2SPXuYu3dLUlMlu3Yxd+6U7Ngh2b5dsm2bZOtW5pYtzM2bJZs2STZulGzYIFm/nrlunWTtWsmaNZLVqyWrVjFXrmSuWCFZvlyybJlk6VLJkiXMxYslixZJFi6ULFggmT9fMm8ec+5cyZw5ktmzJbNmSWbOZM6YIZk+XTJtmmTqVMmUKZLJk5mTJkkmTpRMmCAZP14ybpxk7FjmmDGS0aMlo0ZJRo6UjBghGT5cMmyYZOhQ5uDBzEGDJAMHSgYMkPTvL+nXT9K3r6RPH0nv3pJevSQ9e0p69GB26ybp1lXStYukS2dJp06STh0lHTtK2reXtGsnadtW0qaNpHVrSatWzBYtJM2bS1JSJM2aSZo2lTRpImncWNKwoaRBA0n9+pJ69SR160rq1JHUri2pWVNSo4akenVJtWqSqlUlVapIKleWVKwoqVBBUr68pGxZSZkyktKlJaVKSUqUkBQvLilWTFKkiKRwYUmhQpJff5UUKCD55RdJ/vySn36S/PijJG9eyfffS779VvLNN5KvvpJ8+aXk888ln30m+eQTyccfST74QPL++5J335W8/bbkv/5LkiuXhHVokhCVvBV5c6K709OVIAiCIAgiETgdgRSiRBKE8owjXMJRO13g5Uvmixfpz5+nP3vGfPo0/ckT5uPHzEeP0h8+ZD54kH7/fvq9e8y7d5l37qTfvp1+61b6zZvMGzeYaWnp168zr11Lv3qVeeVK+uXL6ZcuMS9eTL9wgXn+fPq5c+lnzzLPnEk/fZp56lT6yZPpJ04wjx9PP3Ys/ehR5pEj6YcPpx86lH7wIPPAAeb+/en79qXv3Zu+Zw9z925mamr6rl3pO3em79iRvn07c9u29K1b07dsYW7enL5pE3PjxvQNG9LXr09fty597dr0NWuYq1enr1qVvnIlc8WK9OXLmcuWpS9dmr5kSfrixemLFqUvXMhc8P+x3xfBcadvu+dZ4Wq7ylVmZpBkMTMzMzMzMzMzM2amUpRSKsUsi5mZZzOb2cxiNrPpRYcnr06Hjl/Xv47eOdOe1fONz+YJLX4bRcZ9lV2Vll6VlFwVF18VFV0VFkJBwVV+/lVe3lVu7lVOzlV2NmRlXWVmXmVkXKWnX6WlXaWmQkrKVXLyVVLSVWLiVULCVXw8xMVdxcZexcRcRUdfRUVdRUZeRURAePhVWNhVaOhVSMhVUBAEBl4FBFz5+1/5+V35+l75+Fx5e195eV15el55eFy5u1+5uV25ul65uFw5O185OV05Ol45OFzZ21/Z2V3Z2l7Z2FxZW19ZWV1ZWl5ZWFyZmV2Zml6ZmFwZG18ZGV0ZGl4ZGFzp6V3p6l7p6Fxpa19paV1pal5paFypqV2pql6pqFwpKV0pKl4pKFzJy1/Jyl7JyFxJS19JSl6Ji1+JiV2Jil4JC18JCV0JCl7x81/x8l59+XLFzX31+fPVx49XHz5cvXt39ebN1etXVy9fXD1/dvXkydWjR1cPHlz99dfVnTtXv/9+hR16wxA9++3br/PT18mvK4lEIpFIJNKPsa8jNjJESTfEWZ7XcZ7sU/uS08UFnJ9fnp3B6enlycnl8TEcHcHhIRwcXO7vX+7tXe7uws4ObG9fbm1dbm5ebmzA+jqsrcHq6uXKyuXyMiwtXS4uwsLC5fz85dwczM5ezszA16+X09MwNXU5OXk5MQHj45djYzA6ejkycjk8fDk0dDk4CAMDl/390Nd3yWJd9vYCk3nZ0wPd3ZcMxmVXF3R2XnZ0XLa3X7a1AZ0Ora2XNNollXpJoVy2tEBz82VT02Vj42VDw2V9PdTVQW3tZU3NZXX1ZVXVZWUlVFRclpdflpVdlpZelpRcFhdDUdFlYeFlQcFlfv5lXt5lbi7k5FxmZ19mZV1mZl5mZFymp0Na2mVq6mVKymVy8mVS0mViIiQkXMbHX8bFXcbGXsbEXEZHQ1TUZWTkZUTEZXj4ZVjYZWjoZUjIZXDwZVDQZWDgZUDApb//pZ8f+Ppe+vhcentfenldeniAu/ulm9ulq+uli8uls/OloyM4OFza21/a2V3a2l7a2FxaW19aWl5aWFyam1+amV2aml6amFwaG18aGl4aGFzq61/q6V3q6l7q6Fxqa19qal5qaFyqq1+qqV2qqFwqK18qKV0qKFzKy1/KyV3Kyl5KS19KSV1KSl6Ki1+KiV2Kil4KC18KCV0KCFzy81/y8l7y8Fxyc19+/nz58ePlhw+X795dvnlz+erV5csXl8+fXT55fPno4eX9+5d3717euXP5+++X2KE3DNHD3779Oj99nfy6kkgkEolEIv0Y+zpiI0OUdEOc5Xkd58k+tX9eoewJ+tMKvZ6gP67Q6wl6vUI5Q/R6hbIn6D9XKHuC/nOFsifoP1coe4L+xxXKGaI/rVDW/zcrlD1B/+crlDNEf1qh10P0xxV6PUR/XKHXQ/R6hf44RNkr9J9DlL1C2dgr9Mch+uMK/Z8P0R9XqKfnf1ihTk7/eYVaWf2XIcpZoUZG/2GIamn9Lw5RQcH/1hB99r84RHd++/br/PR18utKIpFIJBKJ9GPs64iNDFHSDXGW53WcJ/vUvmB3fg5nZ3B6enFycnF8fHF0BIeHcHAA+/sXe3sXu7uws3OxvQ1bWxebm7CxcbG+DmtrF6urFysrsLwMS0sXi4sXCwsX8/MwNwezsxczM/D168X0NExNXUxOXkxMwPj4xdgYjI5ejIxcDA/D0NDF4ODFwMBFfz/09V30sS5YvRe9vRdM5kVPD3R3XzAYF11d0Nl50dEB7e0XbW0XdPpFayvQaBdUKlAoFy0tF83NF01N0Nh40dBwUV9/UVcHtbVQU3NRXX1RVXVRWXlRUXFRXg5lZRelpRclJRfFxRdFRVBYeFFQcJGff5GXd5Gbe5GTA9nZF1lZF5mZkJFxkZ5+kZZ2kZp6kZJykZwMSUkXiYkXCQkX8fEXcXEXsbEXMTEX0dEXUVEQGXkREXERHn4RFnYRGnoREnIRHHwRFHQRGAgBARf+/hd+fhe+vhc+Phfe3hdeXheenhceHhfu7hdubheurhcuLhfOzhdOTheOjhcODhf29hd2dhe2thc2NhfW1hdWVheWlhcWFhfm5hemphcmJhfGxhdGRheGhhcGBhf6+he6uhc6Ohfa2hdaWheamhcaGhfq6heqqhcqKhfKyhdKShcKChfy8hdychcyMhfS0hdSUheSkhfi4hdiYheiohfCwheCghcCAhd8fBe8vBc8PBfc3BefP198/Hjx4cPFu3cXb95cvHp18fLFxbNnF08eXzx6eHH//sXduxd37lz8/vsFdugNQ3T9t2+/zk9fJ7+uJBKJRCKRSD/Gvo7YyBAl3RD7f+P7Qf1/xnmyT+1zTmdncHp6fnJyfnx8fnQEh4dwcHC+vw97e+e7u7Czc769fb61BZubsLFxvr4Oa2vnq6vnKyuwvAxLS+eLi+cLC+fz8zA3B7Oz5zMz8PXr+fQ0TE2dT06eT0zA+Pj52BiMjp6PjJwPD8PQ0PngIAwMnPf3n/f1nfexzlms897e817mOZN53tNz3t19zmBAV9d5Zyd0dJy3t5+3tZ3T6eetrUCjnVOp5xQKtLScNzdDU9N5Y+N5Q8N5fT3U1Z3X1kJNzXl19XlVFVRWnldUnJeXn5eVnZeWnpeUQHHxeVHReWHheUHBeX7+eV4e5Oae5+RAdvZ5VtZ5ZuZ5RsZ5ejqkpZ2npp6npJwnJ58nJZ0nJkJCwnl8/Hlc3Hls7HlMzHl09HlU1Hlk5HlExHl4+HlYGISGnoeEnAcHnwcFnQcGngcEgL//ua/vuY/Pubf3uZfXuacneHicu7mdu7qeu7icOzufOzmBo+O5vT3Y2Z3b2JxbW4OV1bmFxbm5+bmZ2bmp6bmJybmx8bmR0bmh4bm+/rme3rmu7rmOzrm29rmW1rmm5rmGxrma2rmq6rmKyrmy8rmS0rmCwrm8/Lmc3LmMzLm09LmU1Lmk5Lm4+LmY2Lmo6Lmw8Lmg4LmAwDkf3/mXL+c8POfc3OefP59//Hj+4cP5u3fnb96cv3p1/uLF+bNn508enz96eH7//vndu+d37pz//vs5dugNQ3Tpt2+/zk9fJ7+uJBKJRCKRSD/Gvo7YyBAl3RBneV7HebJP7TNOp6dnJydwfHx2dHR2eAgHB7C/f7a3B7u7Zzs7sL19trV1trkJGxuwvg5ra2erq2crK7C8fLa0BIuLZwsLZ/PzMDd3NjsLMzNnX7/C9PTZ1BRMTp5NTJyNj8PY2NnoKIyMnA0Pnw0NweAgDAyc9fef9fWdsVhnrN6zXjbmGbPnrKfnrLv7jMGArq6zzs6zjg5obz9razuj06G19YxGO6NSzygUaGmB5uazpqazxsazhoaz+nqoqzurrT2rqYHq6rOqKqisPKuoOCsvPysrOystPSspgeLis6Kis8LCs4KCs/z8s7w8yM09y8mB7OyzrKyzzEzIyDhLTz9LSztLTYXkZEhKOktMPEtIOIuPh9jYs5iYs+jos6ios8hIiIg4Cw8/Cws7Cw09Cwk5Cw4+CwqCwMCzgIAzf/8zP78zX98zH58zb+8zL68zT88zD48zd/czN7czV9czF5czZ+czJ6czR8czB4cze/szO7szW9szG5sza+szK6szS8szC4szc/MzM7MzU9MzE5MzY+MzQ8MzA4Mzff0zPb0zXd0zHZ0zbe0zTc0zDY0zdfUzNbUzVdUzFZUzZeUzJaUzBYUzefkzWdkzGZkzaekzKakzSckzcfEzMbEzEZEzYeEzQcEzAYEzPr6zL1/OeHjOuLjOPn8++/jx7MOHs3fvzt68OXv16uzFi7Nnz84ePz57+PDs/v2zu3fP7tw5+/33M+zQG4bo7G/ffp2fvk5+XUkkEolEIpF+jH0dsZEhSroh9v/G94P6/4zzZJ/ap5xOTuD4+PToCA4PTw8OTvf3YW/vdHcXdnZge/t0a+t0cxM2NmB9/XRtDVZXT1dWYHn5dGkJFhdPFxZO5+dhbu50dhZmZk6/foXpaZiaOp2cPJ2YgPHx07ExGB09HRk5HR6GoaHTwUEYGDjt7z/t6wMW67S397SXecrsOe3pOe3uBgbjtKvrtLPztKMD2ttP29pO6XRobT2l0U6pVKBQTltaoLn5tKnptLERGhpO6+tP6+pOa2tPa2qguhqqqk4rK08rKk7Ly0/LyqC09LSk5LS4+LSo6LSwEAoKTvPzT/PyTnNzISfnNDsbsrJOMzNPMzJO09NP09IgNfU0JeU0Ofk0Kek0MfE0IQHi40/j4k5jY09jYk6jo0+jok4jI08jIk7Dw0/DwiA09DQk5DQ4+DQo6DQw8DQg4NTfH/z8Tn18wNv71Mvr1NPz1MPj1N391M3t1NX11MXl1Nn51Mnp1NHx1MHh1N7+1M7u1Nb21Mbm1Nr61Mrq1NLy1MLi1Nz81Mzs1MTk1Nj41Mjo1NDw1MDgVF//VE/vVEfnVFv7VEvrVFPzVEPjVF39VE3tVFX1VFn5VEnpVFHxVEHhVE7uVFb2VEbmVErqVFLyVELiVFz8VFT0VETkVEjoVFDwlJ//lI/v9MuXUx6eUy6u00+fTj9+PP3w4fTdu9M3b05fvTp98eL02bPTx49PHz48vX//9O7d0zt3Tn///RQ79IYhOvHbt1/np6+TX1cSiUQikUikH2NfR2xkiJJuiLM8r+M82af2CafjYzg6gsPDk4MD2N8/2ds72d2FnR3Y3j7Z2oLNzZONDVhfP1lbg9XVk5UVWF4+WVqCxcWThYWT+XmYmzuZnYWZmZOvX0+mp2FqCiYnTyYmYHz8ZGwMRkdPRkZOhodhaOhkcBAGBk76+0/6+oDFOuntPellnjCZJz09J93dwGCcdHWddHZCR8dJe/tJWxvQ6SetrUCjnVCpJxTKSUsLNDdDU9NJY+NJQ8NJff1JXR3U1p7U1JxUV0NV1UllJVRUnJSXn5SVnZSWnpSUnBQXQ1HRSWHhSUHBSX7+SV4e5Oae5ORAdvZJVtZJZuZJRgakp5+kpZ2kpp6kpJwkJ58kJUFi4klCwkl8/ElcHMTEQHT0SVTUSWTkSUTESXj4SVjYSWgohIScBAefBAWdBAaeBASc+Puf+Pmd+Pqe+PiceHufeHmdeHqeeHiAu/uJm9uJq+uJs/OJk9OJoyM4OJzY25/Y2Z3Y2p5YW4OV1Yml5YmFxYm5+YmZ2YmJyYmx8YmR0Ymh4YmBwYm+/ome3omOzom29omW1omm5omGxom6+oma2omKyomy8omS0omi4om8/Imc3Ims7Im09ImU1Imk5ImExImY2Imo6ImIyImQ0Img4Ak//wkf38mXLyc8PCdcXCefPp18/Hjy/v3Ju3cnb96cvHp18uLFybNnJ48fnzx8eHL//snduyd37pz8/vsJdugNQ3T4t2+/zk9fJ7+uJBKJRCKRSD/Gvo7YyBAl3RBneV7HebJP7f+yQtkT9J8r9HqC/rRC2ROUs0LZE5SzQtkT9J8rlD1B/7lCryfojSuUM0R/WqGcIfrTCr0eov9coewJer1COUOUM0GvV+j1EP1phXKG6I8r9HqI/rhCOUOUvUI5Q5SzQq+H6I8r9HqI/rRCY2N/XqE/DtH/yQr9aYher1AXl/8xRH9coTY2/2OFsnFWqKnpfxminBWqq/tfhihnhaqq/q8PUW7u/8uHKOu3b7/OT18nv64kEolEIpFIP8a+jtjIECXdEGd5Xsd5sk/tY3ZHR3B4eHxwAPv7sLd3vLt7vLNzvL0NW1uwuQkbG8fr67C2dry6eryyAsvLx0tLsLgICwvH8/MwN3c8OwszM8dfvx5PT8PU1PHkJExMHI+Pw9gYjI4ej4wcDw8fDw3B4CAMDBz39x/39QGLddzbC0zmcU/PcXc3MBjHXV3Q2Xnc0XHc3n7c1gZ0+nFr6zGNBlTqMYUCLS3Hzc3HTU3Q2Hjc0AD19cd1dce1tcc1NVBdfVxVBZWVxxUVx+XlUFZ2XFp6XFJyXFx8XFR0XFgIBQXH+fnHeXnHubmQk3OcnQ1ZWceZmccZGcfp6cdpaZCaepyScpycfJyUdJyYeJyQAPHxx3Fxx7GxxzExx9HRx1FREBl5HBFxHB5+HBZ2HBp6HBICwcHHQUHHgYHHAQHH/v7Hfn7Hvr7HPj7H3t7HXl7Hnp7HHh7g7n7s5nbs6nrs4nLs7Hzs5HTs6Hjs4HBsb39sZ3dsa3tsY3NsbX1sZXVsaXlsYXFsbn5sZnZsanpsYnJsZHRsaHhsYHCsr3+sp3esq3uso3OsrX2spXWsoXGsrn6spnasqnqsonKsrHyspHSsoHAsL38sJ3csI3MsLX0sJXUsKXksLn4sJnYsKnosLHwsJHQsIHDMz3/Mx3f85csxN/cxF9fxp0/HHz4cv39//O7d8evXx69eHb94cfzs2fHjx8cPHx7fv3989+7xnTvHv/9+jB16wxBl/Pbt1/np6+TXlUQikUgkEunH2NcRGxmipBviLM/rOE/2qX3E7vAQDg5gfx/29o52d492dmB7+2hrCzY3jzY2YH0d1taOVlePVlaOlpdhaQkWF2Fh4Wh+HubmjmZnYWbm6OvXo+lpmJo6mpyEiYmj8fGjsTEYHYWRkaPhYRgaOhochIGBo/7+o74+YLGOenuByTzq6Tnq7gYG46irCzo7jzo6jtrboa3tiE4/am0FGu2ISgUK5ail5ai5GZqajhobjxoaoL7+qK4OamuPamqOqquPqqqgshIqKo7Ky4/Kyo5KS49KSo6Ki6Go6Kiw8Kig4Cg//ygvD3Jzj3JyIDv7KCvrKDMTMjKO0tOP0tKOUlOPUlKOkpMhKekoMfEoIeEoPv4oLu4oNhZiYo6io4+ioo4iI48iIo7CwyEs7Cg09Cgk5Cg4+Cgo6Cgw8Cgg4Mjf/8jPD3x9j3x8jry9j7y8jjw9jzw8jtzdj9zcjlxdj1xcjpydwdHxyMHhyN7+yM7uyNb2yMYGrKyOLC3B3PzIzOzI1BSMjY+MjI4MDY8MDI709Y/09I50dY+0tY+0tI40NY80NI7U1Y/U1I5UVY+UlY+UlI4UFY8UFI7k5Y/k5I5kZI6kpY+kpI4kJY/ExY/ExI5ERI6EhY8EBY8EBI74+Y94eY++fDni5j7i4jr69Onow4ej9++P3r49ev366NWroxcvjp49O3r8+Ojhw6P794/u3j26c+fo99+PsENvGKL03779Oj99nfy6kkgkEolEIv0Y+zpiI0OUdEOc5Xkd58k+tQ85HRzA/v7h3h7s7h7u7MD29uHW1uHmJmxswPo6rK0drq4erqwcLi/D0hIsLh4uLMD8PMzNHc7OwszM4devh9PTMDUFk5OHExOH4+OHY2MwOgojI4fDwzA0dDg4CAMDh/39h319wGId9vYCk3nY03PY3Q0MxmFXF3R2HnZ0HLa3Q1vbIZ0Ora2HNNohlQoUymFLCzQ3HzY1HTY2HjY0QH39YV0d1NYe1tQcVldDVdVhZSVUVByWlx+WlUFp6WFJyWFx8WFR0WFh4WFBAeTnH+blQW7uYU7OYXY2ZGUdZmYeZmQcpqcfpqUdpqZCSsphcvJhUtJhYuJhQsJhfDzExR3Gxh7GxBxGRx9GRR1GRkJExGF4+GFY2GFo6GFIyGFwMAQFHQYGHgYEHPr7H/r5Hfr6go/PoZfXoafnoYfHobs7uLkduroeurgcOjsfOjkdOjoeOjgc2tsf2tkd2toe2tgcWlsfWlkdWloeWlgcmpsfmpkdmpoempgcGhsfGhkdGhoeGhgc6usf6uoe6ugcamsfamkdamoeamgcqqsfqqkdqqgcKisfKikdKioeKigcyssfysoeysgcSksfSkkdSkgciosfiooeiogcCgsfCgoeCggc8vEd8vIe8vAccnMfcnEdfvp0+OHD4fv3h2/fHr5+ffjq1eGLF4fPnh0+fnz48OHh/fuHd+8e3rlz+Pvvh9ihNwzR5t++/To/fZ38upJIJBKJRCL9GPs6YiNDlHRDnOV5HefJPrUPOO3vw97ewe4u7OwcbG/D1tbB5ubBxgasr8PaGqyuHqysHCwvw9LSweIiLCwczM/D3BzMzsLMzMHXrwfT0wdTUzA5CRMTB+PjB2NjMDp6MDICw8MHQ0MwOAgDAwf9/Qd9fcBiHfT2ApN50NNz0N0NDMZBVxd0dh50dBy0t0Nb2wGdDq2tBzTaAZUKFMpBSws0Nx80NR00Nh40NEB9/UFd3UFtLdTUHFRXQ1XVQWXlQUUFlJcflJVBaelBSclBcfFBUdFBYeFBQQHk5x/k5R3k5kJOzkF2NmRlHWRmHmRkHKSnH6SlHaSmQkrKQXLyQVLSQWIiJCQcxMcfxMUdxMYexMQcREdDVNRBZORBRMRBePhBWBiEhh6EhBwEBx8EBR0EBh4EBBz4+4Of34Gv74GPz4G394GX14Gn54GHx4G7+4Gb24Gr64GLy4GzMzg5HTg6Hjg4HNjbH9jaHtjYgLX1gZXVgaXlgYXFgZnZgakpmJgcGBsfGBkdGBoe6Osf6Okd6Ooe6OgcaGsfaGkdaGoeqKsfqKkdqKoeqKgcKCsfKCkdKCoeKCgcyMkdyMoeyMgcSEsfSEoeSEgciIsfiIoeiIgcCAsfCAoeCAgc8PEd8PIe8PAccHMfcHEdfPp08OHDwfv3B2/fHrx+ffDy5cGLFwfPnh08fnzw8OHB/fsHd+8e3Llz8PvvB9ihNwzRut++/To/fZ38upJIJBKJRCL9GPs6YiNDlHRDnOV5HefJPrX3Oe3twe7u/s4ObG/D1tb+5ub+xgasr++vrcHqKqys7C8vw9LS/uIiLCzsz8/D3Nz+7CzMzMDXr/vT0/tTUzA5uT8xAePj+2NjMDq6PzICw8P7Q0MwOAgDA/v9/ft9fcBi7ff2ApO539Oz390NDMZ+Vxd0du53dOy3t0Nb2z6dDq2t+zQaUKn7FMp+Sws0N+83NUFj435Dw359/X5d3X5tLdTUQHX1flXVfmXlfkUFlJfvl5VBael+Scl+cfF+UREUFu4XFOzn5+/n5e3n5kJODmRn72dl7Wdm7mdkQHr6flrafmrqfkrKfnLyflISJCbuJyTsx8fvx8Xtx8bux8RAdPR+VNR+ZCREROyHh++Hhe2Hhu6HhOwHB0NQ0H5g4H5AwL6//76f376v776PD3h773t6gofHvrv7vpvbvqvrvovLvrPzvpMTODjs29vv29nt29ru29jsW1uDpeW+hcW+ufm+mdm+qem+iQkYGe0bGu4bGOzr6+/r6e3r6u7r6Oxrae1rau5raOyrq++rqe2rqu6rqOwrK+8rKu4rKOzLy+/Lye3Lyu7LyOxLSe1LSu5LSOyLie2Liu6LiOwLCe0LCu4LCOzz8e3z8u7z8Oxzc+9zce1/+rT/4cP++/f7b9/uv369//Ll/osX+0+f7j9+vP/w4f79+/t37+7fubP/++/72KE3DNGK3779Oj99nfy6kkgkEolEIv0Y+zpiI0OUdEOc5Xkd58k+tfc47e7Czg5sb8PW1t7m5t7Gxt76OqytweoqrKzsLS/D0tLe4iIsLOzNz+/NzcHsLMzMwNeve9PTe1NTMDm5NzEB4+N7Y2MwOgojI3vDw3tDQ3uDgzAwAP39e319wGLt9fYCk7nX07PX3Q0Mxl5XF3R27nV07LW3Q1vbHp0Ora17NBpQqXsUyl5LCzQ37zU1QWPjXkPDXn091NXt1dbu1dRAdfVeVRVUVu5VVOyVl++VlUFp6V5JCRQX7xUV7RUW7hUU7OXnQ17eXm7uXk4OZGfvZWVBZuZeRsZeevpeWtpeaupeSgokJ+8lJe0lJu4lJOzFx+/FxUFs7F5MzF50NERF7UVG7kVEQHj4XljYXmjoXkjIXnDwXlAQBAbuBQTs+fvv+fnt+fru+fjseXvveXnteXrueXjsubvvubntubqCi8ues/Oek9Oeo+Oeg8Oevf2end2ere2ejc2etfWeldWepeWehcWeufmemdmeqemeicmesfGekdGeoeGegcGevv6ent6eru6ejs6eltaepuaehsaeuvqemtqequqeisqektKeouKegsKevPyenNyerOyejMyelNSepOSehMSemNieqOieiMiekNCeoOCegMAeH98eL+8eD88eN/ceF9fep097Hz7svX+/9/bt3uvXey9f7j1/vvf06d7jx3sPH+7dv7939+7enTt7v/++hx16wxAt/O3br/PT18mvK4lEIpFIJNKPsa8jNjJESTfEWZ7XcZ7sU/u/rNDrCfrjCv1pgnJWKHuC/nOF/jRB/7lC2RP0xxXKnqD/XKHsCfrjCuUM0Z9WKGeI/rRCOUOUs0LZE5SzQjlDlLNC2ROUs0I5Q/SnFcoZojeu0Osh+tMK5QzRH1fo9RD9cYVeD9GfVuj1EL1eoT8O0f/JCv1piHJW6D+HKHuF/veHKGeFamv/lyHKWaHKyv9liHJWqLT09yEqLo4hyl6hwsL//xmi2b99+3V++jr5dSWRSCQSiUT6MfZ1xEaGKOmGOMvzOs6TfWrvstvZge3t3a0t2NyEjY3d9XVYW9tdXYWVld3lZVha2l1chIUFmJ/fnZuD2dndmRn4+nV3ehqmpnYnJ2FiYnd8fHdsDEZHYWRkd3gYhoZ2BwdhYGC3vx/6+nZZLOjtBSZzt6dnt7sbGIzdri7o7Nzt6Nhtb4e2NqDTd1tbd2m0XSoVKBRoadltbt5taoLGxt2GBqiv362r262thZqa3epqqKrarazcraiA8vLdsrLd0tLdkpLd4mIoKoLCwt2Cgt38/N28vN3cXMjJ2c3Ohqys3czM3YwMSE/fTUvbTU3dTUnZTU7eTUqCxMTdhITd+HiIi9uNjd2NidmNjt6NioLIyN2IiN3wcAgL2w0N3Q0J2Q0O3g0KgsDA3YCAXX//XT+/XV/fXR+fXW/vXS+vXU/PXQ+PXXd3cHPbdXXddXHZdXbedXLadXTcdXDYtbfftbPbtbXdtbHZtbYGK6tdS8tdc/NdM7NdU9NdExMwNt41Mto1MNjV19/V09vV1d3V0dnV1t7V0trV1NzV0NhVU9tVVd1VUdlVVt5VUtpVVNxVUNiVk9uVld2VkdmVlt6VktqVkNgVF98VE9sVEdkVFt4VEtoVFNzl59/l49vl5d3l4dnl5t79/Hn306fdDx92373bfft299Wr3Zcvd58/3336dPfx492HD3fv39+9e3f3zp3d33/fxQ69YYim/vbt1/np6+TXlUQikUgkEunH2NcRGxmipBviLM/rOE/2qb3DbnsbtrZgcxM2NnbW12FtbWd1dWdlBZaXd5aWYHERFhZgfn5nbg5mZ3dmZuDr153p6Z2pKZichImJnfFxGBvbGR2FkZGd4WEYGtoZHISBgZ3+fujr2+lj7bB6d3rZmDtM5k5Pz053NzAYO11d0Nm509Gx094ObW1Ap++0tgKNtkOl7lAo0NKy09wMTU07jY07DQ1QXw91dTu1tTs1NTvV1VBVBZWVOxUVO+XlO2VlO6WlOyUlUFy8U1QEhYU7BQWQn7+Tl7eTm7uTk7OTnQ1ZWZCZuZORsZOevpOWtpOaCikpO8nJO0lJO4mJOwkJEB+/Exe3ExsLMTE70dE7UVE7kZEQEbETHr4TFrYTGroTEgLBwTtBQTuBgTsBATv+/jt+fju+vjs+Pjve3uDltePpuePhsePuvuPmtuPquuPisuPsvOPktOPoCA4OO/b2O3Z2O7a2OzY2O9bWO1ZWO5aWOxYWO+bmO2ZmO6amOyYmO8bGYGi4Y2Cwo6+/o6e3o6u7o6Ozo629o6m5o6Gxo66+o6a2o6q6o6Kyo6y8o6i4o6CwIy+/Iye3Iyu7IyOzIy29Iym5IyGxIy6+Iya2IyKyIyy8IyS0IyCww8+/w8e38+XLDg/PDhfXzufPOx8/7nz4sPPu3c6bNzuvXu28fLnz/PnO06c7jx/vPHy4c//+zt27O3fu7Pz++w526A1DNO63b7/OT18nv64kEolEIpFIP8a+jtjIECXdEGd5Xsd5sk/tbU5bW7C5ub2xAevrsLa2vboKKyvby8vbS0uwuAgLC9vz8zA3B7Oz2zMz8PXr9vT09tQUTE7CxMT2+DiMjW2PjsLIyPbw8PbQEAwOwsAA9Pdv9/Vt97G2Wazt3t7tXuY2k7nd07Pd3Q0MxnZXF3R2bnd0bLe3Q1sb0OnQ2rpNo21TqdsUCrS0QHPzdlPTdmPjdkMD1NdDXd12be12TQ1UV29XVUFl5XZFxXZ5OZSVbZeWbpeUbBcXbxcVQWEhFBRs5+dv5+Vt5+Zu5+RAdvZ2VhZkZm5nZGynp0Na2nZq6nZKynZy8nZS0nZiIiQkbMfHQ1zcdmzsdkzMdnQ0REVtR0ZuR0Rsh4dvh4VBaOh2SMh2cPB2UNB2YOB2QAD4+2/7+W37+m77+Gx7e297eYGn57aHx7a7+7ab27ar67aLy7az87aT07aj47aDw7a9/bad3batLdjYbFtbb1tZbVtabltYbJubb5uZbZuabpuYbBsbbxsZbRsabhsYbOvrb+vpbevqbuvobGtpbWtqbmtobKurb6upbauqbquobCspbSsqbisobMvLb8vJbcvKbsvIbEtLb0tKbktIbIuLb4uJbYuIbAsLbwsJbQsIbPPzb/Pybn/5ss3Nvc3Ftf358/bHj9vv32+/e7f95s32q1fbL19uP3++/fTp9uPH2w8fbt+7t3337vadO9u3bm1jh94wRMN/+/br/PR18utKIpFIJBKJ9GPs64iNDFHSDXGW53WcJ/vU3uK0uQkbG1vr67C2BqursLKytby8tbS0tbgICwswP781NwezszAzA1+/bk1Pb01NweTk1sQEjI9vjY3B6OjWyAgMD28NDcHgIAwMbPX3Q1/fFou1xerd6mVjbjF7tnp6trq7gcHY6uqCzs6tjo6t9nZoawM6fau1FWi0LSp1i0KBlpat5mZoatpqbISGhq36+q26Oqit3aqpgerqraqqrcpKqKjYKi+HsrKt0tKtkpKt4uKtoiIoLISCgq38/K28vK3c3K2cHMjO3srK2srMhIyMrfR0SEvbSk3dSknZSk6GpKStxMSthISt+HiIi9uKjYWYmK3o6K2oqK3IyK2ICAgP3woL2woN3QoJ2QoO3goKgsDArYCALX//LT+/LV/fLR8f8Pbe8vLa8vTc8vDYcnffcnMDF5ctZ+ctJ6ctR8ctBwewt9+ys9uytd2ysdmytt6ysgJLyy0Liy1z8y0zsy0Tky1jYzAy2jI03DIw2NLX39LV3dLR2dLW3tLS2tLU3NLQ2FJX31JT21JR2VJW3lJS2lJU3FJQ2JKX35KT25KR2ZKW3pKS2pKU3JKQ2BIX3xIT2xIR2RIW3hIS2hIQ2OLn3+Ll3fryZYube4uLa+vz562PH7fev996927rzZutV6+2XrzYev586+nTrUePth482Lp3b+vu3a07d7Zu3drCDr1hiAb+9u3X+enr5NeVRCKRSCQS6cfY1xEbGaKkG+Isz+s4T/apvclpYwPW12FtbXN1FVZWYHl5c2lpc3ERFhY25+dhbg5mZ2FmZvPrV5ie3pyagsnJzYkJGB/fHBuD0VEYGdkcHt4cGoLBQRgY2Ozvh76+TRZrk9W72cvG3GT2bPb0bHZ3A4Ox2dUFnZ2bHR2b7e3Q1gZ0+mZrK9Bom1TqJoUCLS2bzc3Q1LTZ2AgNDZv19Zt1dVBbu1lTA9XVm1VVm5WVUFGxWV4OZWWbpaWbJSWbxcVQVLRZWAgFBZv5+ZCXt5mbu5mTs5mdvZmVtZmZCRkZkJ6+mZa2mZq6mZICycmbSUmbiYmbCQkQH78ZFwexsZsxMZvR0ZtRUZuRkRARsRkevhkWthkauhkSshkcDEFBm4GBmwEBm/7+4Oe36eu76eOz6e296eW16ekJHh6b7u6bbm6brq6bLi6bzs6bTk6bjo6bDg6b9vZgZ7dpa7tpY7Npbb1pZbVpablpYbFpbr5pZrZparppYrJpbLxpZLRpaLhpYLCpr7+pp7epq7upo7Oprb2ppbWpobGprr6pprapqrqporKprLyppLSpqLipoLApL78pJ7cpI7MpLb0pJbUpKbkpLr4pJrYpKropIrIpLLwpJLQpILDJz7/Jy7v55csmN/cmF9fm58+bHz9uvn+/+e7d5ps3m69ebb54sfn8+ebTp5uPHm0+eLB5797m3bubd+5s3rq1iR16wxD1/O3br/PT18mvK4lEIpFIJNKPsa8jNjJESTfEWZ7XcZ7sU3vjuvX1jbU1WF2FlRVYXt5YWtpYXISFhY35eZib25idhZkZ+PoVpqc3pqZgcnJjYgLGxzfGxjZGR2FkBIaHN4aGYHAQBgY2+vuhr2+Dxdro7QUmE3p6Nrq7gcHY6OqCzs6Njo6N9nZoawM6HVpbN2i0DSoVKJSNlhZobt5oatpobISGho36eqir26it3aipgerqjaoqqKzcqKjYKC+HsrKN0lIoKdkoLt4oKtooLISCAsjP38jL28jN3cjJ2cjOhqysjczMjYwMSE/fSEuD1NSNlJSN5OSNpKSNxERISNiIj4e4uI3Y2I2YmI3oaIiK2oiM3IiI2AgPh7CwjdDQjZCQjeDgjaCgjcBACAjY8Pff8PPb8PXd8PHZ8PYGL68NT88ND48Nd/cNN7cNV1dwcdlwdt5wctpwdNxwcNiwt9+ws9uwtQUbmw1r6w0rqw1Lyw0Liw1z8w0zsw1T0w0Tkw1j4w0jow1Dww0Dgw19/Q09vQ1d3Q0dnQ1t7Q0trQ0NjQ119Q01tQ1V1Q0VlQ1l5Q0lpQ1FxQ0FhQ15+Q05uQ0ZmQ1p6Q0pqQ0JiQ1x8Q0xsQ1R0Q0RkQ1h4Q1BwQ0BgQ1+/g1e3o0vXza4uTe4uDY+f974+HHj/fuNd+823rzZePVq48WLjefPN54+3Xj0aOPBg4179zbu3t24c2fj1q0N7NAbhqjTb99+nZ++Tn5dSSQSiUQikX6MfR2xkSFKuiHO8ryO82Sf2t8nKGeF/jRB/7lC2ROUs0J/mqCcFcqeoP+2QtkT9L+5QtkT9McVyhmi/3GFsifoP1coe4L+X7VCOUP0pxV6PUR/WqGcIfrjCuUMUfYK5QxRzgq9HqLXK5QzRH9aoZwh+tMK5QzRn1YoZ4j+tEJ/HKKcFcr2zxXK9tMK5QxRzgrV1PxfHKLsFSok9P+fIWr127df56evk19XEolEIpFIpB9jX0dsZIiSboizPK/jPNmn9jq7tTVYXV1fWYHlZVhagsXF9YUFmJ9fn5tbn52FmZn1r19hehqmpmByEiYm1sfHYWxsfXQURkbWh4dhaGh9cBAGBqC/f72vD1is9d5eYDLXe3qgu3udwYCuLujsXO/oWG9vh7a2dTodWluBRlunUtcpFGhpWW9uhqam9cZGaGhYr69fr6uD2lqoqVmvrl6vqlqvrISKCigvXy8rWy8tXS8pgeJiKCpaLyxcLyhYz8+HvDzIzV3PyVnPzl7PylrPzISMjPX0dEhLW09NXU9JgeTk9aSk9cTE9YQEiI+HuLj12Nj1mJj16Oj1qKj1yEiIiFgPD18PC4PQ0PWQkPXg4PWgoPXAwPWAAPD3X/fzW/f1XffxWff2XvfyAk/PdQ+PdXf3dTe3dVfXdRcXcHZed3Jad3Rcd3BYt7dft7MDW9t1G5t1a+t1K6t1S8t1C4t1c/N1M7N1U9N1E5N1Y+N1I6N1Q8N1A4N1ff11Pb11Xd11HZ11be11La11Tc11DY11dfV1NbV1FZV1ZWVQUlpXVFxXUFiXl1+XlV2XkVmXll6XlFyXkFgXF18XE1sXEVkXFl4XEloXFFwXEFjn41vn5V3/8mWdm3udi2v906f1jx/X379ff/du/c2b9Vev1l+8WH/+fP3Jk/VHj9YfPFi/d2/97t31O3fWb91axw69YYga/fbt1/np6+TXlUQikUgkEunH2NcRGxmipBviLM/rOE/2qb3GbnUVVlZgeRmWltYWF2FhAebn1+bm1mZn12Zm4OtXmJ6Gqam1yUmYmIDxcRgbWxsdhZGRteFhGBpaGxxcGxiA/n7o6wMWa623F5jMtZ4e6O5eYzCgq2utsxM6Otba26GtbY1Oh9bWNRoNqNQ1CgVaWtaam6Gpaa2xERoa1urroa5urbYWamrWqqvXqqqgsnKtogLKy9fKytZKS6GkZK24GIqK1goL1woKID9/LS8PcnPXcnIgO3stK2stM3MtI2MtPR3S0iA1dS0lZS05eS0pCRIT1xIS1uLjIS5uLTZ2LSYGoqPXoqLWIiPXIiLWwsMhLGwtNHQtJASCg9eCgtYCA9cCAtb8/df8/MDXd83HZ83be83La83Tc83DA9zd19zc1lxd11xc1pyd15ycwNFxzcFhzd5+zc5uzdZ2zcZmzdoaLC3XLCzWzM3B1BRMTNaMjdeMjNYMDdcMDNb09EBXd01HZ01be01La01Tc01dfU1NbU1VdU1FZU1ZeU1JCRQU1uTl1+Tk1mRl12Rk1qSl1yQl1yQk1sTF18TE1kRE1oSF14SE1gQF1/j51/j41nh513h41ri51z5/Xvv0ae3Dh7X379fevl1782bt1au1Fy/Wnj9fe/Jk7dGjtQcP1u7dW7t7d+3OnbVbt9awQ28Yopq/fft1fvo6+XUlkUgkEolE+jH2dcRGhijphjjL8zrOk31qr3JaWYHl5dWlJVhchIUFmJ9fnZtbnZ1dnZmBr19henp1agomJ2FiAsbHV8fGYHQURkZgeHh1aGh1cBAGBlb7+6Gvb5XFgt5eYDKhp2e1u3uVwYCurtXOTujoWG1vh7a2VTodWltXabRVKhUoFGhpgebm1aam1cZGaGhYra+HurrV2lqoqVmtroaqqtXKytWKCigvh7Ky1dLS1ZKS1eJiKCqCwsLVgoLV/PzVvDzIzYWcnNXs7NWsrNXMzNWMDEhPX01Lg9TU1ZSU1eRkSEpaTUyEhITV+PjVuDiIjV2NiVmNjl6NilqNjFyNiIDw8NWwMAgNXQ0JWQ0OhqCg1cDA1YCAVX//VT+/VV9f8PFZ9fZe9fJa9fRc9fBYdXcHN7dVV9dVF5dVZ+dVJ6dVR0dwcFi1t1+1s1u1tV21sVm1tl61slq1tFy1sFg1N181M1s1NV01MQFj41VDw1UDg1V9/VU9vVVdXdDRWdXWXtXSWtXQWFVXX1VTW1VVXVVRWVVWXlVSWlVUXFVQWJWXX5WTW5WVXZWRWZWSWpWUXJWQWBUXXxUVXRURWRUWXhUSWhUUXOXnX+XjW/3yZZWHZ5WLa/Xz59VPn1Y/fFh9/3717dvVN29WX71affFi9dmz1SdPVh89Wn3wYPXevdW7d1fv3Fm9dWsVO/SGIarw27df56evk19XEolEIpFIpB9jX0dsZIiSboizPK/jPNmn9gqn5WVYWlpZXISFBZifh7m5ldnZlZkZ+Pp1ZXoapqZWJidhYgLGx2FsbGV0FEZGYHgYhoZWBgdXBgagv3+lrw9YrJXeXmAyoacHurtXGIyVri7o7Fzp6ID29pW2NqDTobV1hUZboVKBQoGWlpXmZmhqWmlshIaGlfr6lbo6qK2Fmhqorl6pqlqprFypqIDycigrWyktXSkpWSkuhqIiKCxcKShYyc9fycuD3FzIyVnJzl7JylrJzFzJyID09JW0tJXUVEhJWUlOhqSklcTElYQEiI+HuLiV2NiVmJiV6OiVqCiIjFyJiFgJD18JC4PQ0JWQEAgOXgkKWgkMXAkIWPH3Bz+/FV/fFR+fFW/vFS+vFU9P8PBYcXdfcXNbcXVdcXFZcXYGJ6cVR8cVB4cVe/sVOzuwtV2xsVmxtl6xslqxsFgxNwczsxVT0xUTkxVj4xUjoxVDwxUDgxV9/RU9vRVd3RUdnRVt7RUtrRVNzRUNjRV19RU1tRVV1RUVlRVl5RUlpRVFxRUFhRV5+RU5uRVZ2RVp6RUpqRVJyRUJiRUxsRVR0RURkRUhoRVBwRUBgRV+/hVe3pUvX1Z4eFa4uFY+f1759Gnlw4eV9+9X3r5defNm5dWrlRcvVp49W3nyZOXRo5UHD1bu3Vu5e3flzp2VW7dWsENvGKJiv337dX76Ovl1JZFIJBKJRPox9nXERoYo6YY4y/M6zpN9ai9zWlqCxUVYWFien4e5OZidXZ6Zga9fl6enYWpqeXISJiZgfHx5bAxGR2FkBIaHl4eGYHBweWAA+vuX+/qAxVru7QUmE3p6lru7gcFY7uqCzs7ljg5ob19uawM6HVpbl2k0oFKXKRRoaVluboampuXGRmhoWK6vX66rg9paqKlZrq6GqqrlykqoqFguL18uK4PS0uWSEiguXi4qgsLC5YICyM9fzstbzs2FnJzl7GzIylrOzFzOyFhOT19OS1tOTYWUFEhOXk5KWk5MXE5IgPh4iItbjo1djolZjo6GqKjlyMjliIjl8HAIC1sODYWQkOXg4OWgoOXAQAgIWPb3X/bzW/b1XfbxAW/vZS+vZU/PZQ+PZXf3ZTc3cHVddnFZdnZednJadnRcdnAAe/tlO7tlW9tlG5tla+tlK6tlS8tlC4tlc/NlMzMwNV02MVk2Nl42Mlo2NFw2MFjW11/W01vW1V3W0VnW1l7W0lrW1FzW0FhWV19WU1tWVV1WUVlWVl5WUlpWVFxWUFiWk1uWlV2WkVmWll6WklqWlFwWF18WE1sWFV0WEVkWEloWFFwWEFjm51/m5V3+8mWZh2eZi2v58+flT5+WP3xYfvdu+e3b5Tdvll++XH7xYvnZs+UnT5YfPVp+8GD53r3lu3eX79xZvnVrGTv0hiHK89u3X+enr5NfVxKJRCKRSKQfY19HbGSIkm6Iszyv4zzZp/Z/WaHsCfrfXKHXE/THFXo9Qf/jCuUMUc4KvZ6g/3GFcobojyuUPUH/4wrlDNGfVihniP4vr1DOEP1phXKG6I8r9HqI/rhCr4fojyv0eohyVuj1EGWvUM4QZa/QH4fo9Qq9HqI/rtDrIfrjCr0eoj+u0P84RDkr9J9DlL1C/zlEOSuUM0TZK5QzROXl/7tDlI/vfzZEX7/+/32Ivvjt26/z09fJryuJRCKRSCTSj7GvIzYyREk3xFme13Ge7FN7id3iIiwsLM3Pw9wczM7CzMzS168wPQ1TU0uTk0sTEzA+vjQ2BqOjMDICw8NLQ0MwOAgDA9Dfv9TXByzWUm8vMJlLPT1L3d3AYEBXF3R2LnV0QHv7Ulsb0OlLra1Aoy1RqUChQEvLUnMzNDUtNTZCQ8NSfT3U1S3V1kJNDVRXL1VVLVVWLlVUQHk5lJUtlZYulZQsFRdDUREUFkJBwVJ+/lJeHuTmLuXkQHb2UlbWUmYmZGQspacvpaUtpaYupaRAcjIkJS0lJi4lJCzFx0NcHMTGLsXELEVHL0VFQWTkUkTEUng4hIUthYZCSMhScPBSUNBSYOBSQMCSvz/4+S35+i75+Cx5ey95eS15eoKHx5K7+5Kb25Kr65KLy5KzMzg5LTk6Ljk4LNnbL9nZga3tko3NkrX1kpXVkqXlkoUFmJsvmZktmZoumZgsGRsvGRmBgcGSvv6Snt6Sru6Sjg5oay9pai5paCypqy+pqS2pqoKKypKS0pKi4pKCwpK8/JKc3JKs7JKMzJKU1JKk5JKExJK4+JKY2JKo6JKIyJKQ0JKg4JKAwBIf3xIv79KXL0s8PEtcXEufPy99+rT04cPSu3dLb98uvX699PLl0vPnS8+eLT15svTo0dKDB0v37i3dvbt0587SrVtL2KE3DNHfMBd/HTJESSQSiUQikf419nXERoYo6YY4y/M6zpN9ai+yW1iA+fnFuTmYnYWZGfj6FaanF6emYHJycWJicXwcxsYWR0dhZASGh2FoaHFwEAYGoL8f+vqAxVrs7V1kMqGnZ7G7GxiMxa4u6OyEjg5ob19sa1uk06G1dZFGAyoVKJTFlhZoboampsXGRmhoWKyvX6yrg9paqKlZrK6GqqrFykqoqFgsL4eyssXS0sWSEiguXiwqgsLCxYICyM9fzMuD3NzFnJzF7GzIylrMzISMjMX09MW0tMXUVEhJWUxOhqSkxcTExYQEiI9fjIuD2NjFmJjF6GiIilqMjFyMiFgMD18MC4PQUAgJWQwOXgwKWgwMhICARX//RT+/RV9f8PFZ9PZe9PJa9PRc9PBYdHcHN7dFV9dFF5dFZ+dFJ6dFR0dwcFi0t1+0s1u0tV20sQFr60Urq0VLy0ULi0Vz80UzMzA1XTQxWTQ2XjQyWjQ0XDQwWNTXX9TTW9TVXdTRWdTWXtTSWtTUXNTQWFRXX1RTW1RVXVRRWVRWXlRSWlRUXFRQWJSXX5STW5SVXZSWXpSSWpSUXJSQWBQXXxQTWxQVXRQWXhQSWhQUXBQQWOTjW+TlXfzyZZGHZ5GLa/Hz58WPHxc/fFh8927x7dvF168XX75cfP588dmzxSdPFh89WnzwYPHevcW7dxfv3Fm8dWvx/xyanH/X/xj+/OLbL0SGKIlEIpFIJNK/x76O2MgQJd0QZ3lex3myT+0FdvPzMDcHs7MwM7Pw9StMT8PUFExOLkxMLIyPw9jYwugojIwsDA/D0BAMDsLAwEJ/P/T1AYsFvb0LTCb09Cx0dwODsdDVBZ2d0NGx0N4ObW0LdDq0ti7QaEClAoWy0NICzc0LTU3Q2AgNDQv19VBXt1BbCzU1C9XVUFW1UFkJFRUL5eVQVgalpQslJQvFxQtFRVBYCAUFC/n5C3l5kJu7kJMD2dkLWVkLmZmQkbGQng5paQupqQspKQvJyZCUBImJCwkJC/HxC3FxEBsLMTEL0dELUVELkZELEREQHr4QFrYQGgohIQvBwRAUtBAYuBAQsODvv+DnB76+Cz4+C97e4OW14Om54OGx4O6+4Oa24OoKLi4Lzs4LTk4Ljo4LDg4L9vZgZ7dga7tgY7Ngbb1gZbVgaQkWFgvm5gtmZgumpgsmJgvGxgtGRmBgsKCvD3p6Czo6oK29oKW1oKm5oKGxoK6+oKa2oKq6oKKyoKy8oKS0oKi4oKCwICe3ICu7ICOzIC29ICW1ICm5ICGxICa2ICq6ICKyICy8ICS0ICi4wM+/wMe3wMu78OXLAjf3AhfXwqdPCx8/Lrx/v/Du3cKbNwuvXy+8fLnw/PnCs2cLT54sPHq08ODBwr17C3fvLty5s3Dr1gKG5k1DlOfbL0SGKIlEIpFIJNK/x76O2MgQJd0QZ3lex3myT+15TnNzMDs7PzMDX7/C9DRMTc1PTsLExPz4OIyNzY+Ozo+MwPAwDA3B4OD8wAD090NfH7BY8729wGRCTw90d88zGPNdXdDZOd/RAe3t821tQKdDayvQaPNUKlAo8y0t0Nw839QEjY3zDQ1QXw91dfO1tVBTA9XV81VV85WVUFExX14OZWVQWjpfUjJfXAxFRfOFhVBQMJ+fP5+XB7m58zk5kJ09n5U1n5kJGRnz6emQljafmjqfkgLJyfNJSZCYOJ+QMB8fD3Fx87GxEBMzHx09HxUFkZHzERHz4eHzYWHzoaEQEgLBwfNBQfOBgfMBAfP+/uDnN+/rCz4+897e815e4Ok57+Ex7+4+7+Y27+o67+ICzs7zTk7zjo7zDg7z9vbzdnZgaztvYzNvbT1vZTVvaTlvYQHm5vNmZvOmpvMmJvPGxvNGRvOGhvMGBvP6+vN6evO6uvM6OvPa2qClNa+pOa+hMa+mNq+qOq+iAsrK80pK84qK8woK83Jy87Ky8zIy89LS81JS85KS8xIS82Ji86Ki8yIi88LC80JC84KC8/z883x887y88zw889zc858/z3/6NP/x4/z79/Pv3s2/eTP/+vX8y5fzz5/PP3s2/+TJ/KNH8w8ezN+7N3/37vydO/O3bs1jaN40RMW+/UJkiJJIJBKJRCL9e+zriI0MUdINcZbndZwn+9Se4zQ7CzMzc1+/wvQ0TE3B5OTcxASMj8+NjcHo6NzIyNzwMAwNweAgDAzM9fdDXx+wWNDbO8dkQk8PdHcDgzHX1TXX2QkdHXPt7dDWBnT6XGsr0GhApc5RKNDSAs3Nc01Nc42N0NAA9fVzdXVQWws1NXPV1VBVNVdZOVdRAeXlUFY2V1oKJSVzxcVQVDRXWDhXUAD5+XN5eZCbO5eTM5edDVlZc5mZkJExl54+l5YGqalzKSmQnDyXlDSXmAgJCRAfPxcXNxcbOxcTA9HREBU1Fxk5FxExFx4+FxYGoaFzISEQHDwXFDQXGAgBAXP+/nN+fnO+vuDjA97ec15ec56ecx4ec+7uc25u4Oo65+Iy5+w85+Q05+gIDg5z9vZzdnZztrZzNjZz1tZgZTVnaTlnYTFnbj5nZjZnagomJnPGxnNGRnOGhnP6+nN6eqCrO6ejM6etPaelNaepOaehMaeuPqemNqeqOqeiMqesPKekNKeoOKegMCcvPycnNycrOycjMyctPScpOSchMScuPicmNicqOiciMicsPCcoOCcgMMfPP8fHN/flyxwPzxw399znz3OfPs19/Dj3/v3cu3dzb97MvX499/Ll3PPnc8+ezT15Mvfo0dyDB3P37s39+efc7dtzt27NYWjeNEQVvv1CZIiSSCQSiUQi/Xvs64iNDFHSDXGW53WcJ/vUnuU0MwNfv8L0NExNzU5OwsQEjI/D2Njs6OjsyMjs8DAMDcHg4OzAAPT3Q18fsFizvb3AZEJPD3R3zzIY0NU129kJHR2z7e3Q1gZ0+mxrK9Bos1QqUCjQ0gLNzbNNTdDYONvQAPX1s3V1UFs7W1MD1dVQVTVbWQkVFbPl5VBWNltaCiUls8XFUFQ0W1g4W1AA+fmQlzebmzubkzObnQ1ZWZCZOZuRMZuePpuWBqmpkJIym5w8m5Q0m5gICQkQHz8bFzcbGwsxMbPR0RAVNRsZORsRMRseDmFhs6GhEBIyGxw8GxQEgYGzAQGz/v6zfn7g6zvr4wPe3rNeXrOenuDhMevuPuvmNuvqOuviMuvsDE5Os46Osw4Os/b2YGc3a2s7a2Mza209a2UFFhZgbj5rZjZrajprYjJrbDxrZDRraDhrYDCrrz+rpzerqws6OrPa2rNaWrOamrMaGrPq6rNqarOqqrMqKrPKyrNKSrOKirMKCrPy8rNycrMyMrPS0rNSUrOSkrMSErPi4rNiYrMiIrPCwrNCQrOCgrMCArP8/LO8vLNfvszy8Mxycc1+/jz76dPsx4+z79/Pvn07++bN7OvXsy9fzj5/Pvvs2ezjx7MPH84+eDB7797sn3/O3r49e+vWLIbmTUNU89svRIYoiUQikUgk0r/Hvo7YyBAl3RBneV7HebJP7f+yQq8n6I8r9HqC/rhCryfojyv0eoL+uEKvJ+h/XKGcIXrjCmVP0P+4QjlD9McVyp6g/3GFcoboTyuUM0R/XKHXQ/THFXo9RH9coddD9McVyhmiP63Q6yHKXqGcIcpeoddDlLNCr4coe4Vyhih7hV4P0R9X6PUQvV6hnCHKWaE/DlFLy59X6L8NUc4K/ecQZa/Qfw5RWdn/MERFRf9bQ/TDh/8xRF+9mn3xAkP06dPvQ/T+/f+vh6jRt1+IDFESiUQikUikf499HbGRIUq6Ic7yvI7zZJ/aM+y+foXpaZiampmchIkJGB+HsbGZ0VEYGZkZHp4ZGoLBwZmBAejvh74+YLFmenuByYSeHujuBgZjpqsLOjuho2OmvR3a2oBOh9bWGRpthkqdoVCgpQWam6GpaaaxERoaoL4e6upmamtnamqgunqmqgoqK2cqKqC8HMrKoLR0pqRkprgYiopmCguhoGAmPx/y8iA3dyYnZyY7eyYrCzIzISNjJj19Ji1tJjUVUlIgOXkmKWkmMXEmIQHi4yEubiY2diYmZiY6GqKiIDJyJiJiJjx8JiwMQkMhJGQmOHgmKGgmMBACAmb8/Wf8/MDXd8bHB7y9Z7y8Zjw9Zzw8ZtzdZ9zcwNV1xsVlxtl5xslpxtERHBxm7O3Bzm7G1nbGxmbG2hqsrGYsLWcsLGbMzWfMzGZMTWdMTGaMjWeMjGYMDWcMDEBff0ZPb0ZXd0ZHZ0Zbe0ZLCzQ1Z9TVZ9TUZlRVZ1RUZpSVQUlpRkFhRl5+Rk5uRlZ2RkZmRlp6RkpqRkJiRlx8RkxsRlR0RkRkRlh4RkhoRkBghp9/ho9vhpd35suXGW7uGS6umU+fZj5+nPnwYeb9+5m3b2fevJl59WrmxYuZ589nnj6defx45uHDmfv3Z/7+e+bPP2du3565dWsGQ/OmIWr17RciQ5REIpFIJBLp32NfR2xkiJJuiLM8r+M82af2NKepKZichIkJGB+fHhuD0VEYGYHh4emhoenBQRgYmO7vh74+YLGgtxeYzOmeHujuBgYDurqmOzuhowPa26GtbZpOh9ZWoNGmqdRpCgVaWqC5ebqpCRobpxsaoL4e6uqgtna6pgaqq6erqqYrK6GiAsrLp8vKoLQUSkqmi4uhqGi6sHC6oADy8yEvbzo3F3JyprOzIStrOjMTMjKm09On09IgNXU6JQWSk6eTkqYTEyEhYTo+HuLipmNjp2NiIDp6OioKIiOnIyKmw8MhLGw6NBRCQqaDgyEoaDowcDogYNrfH/z8pn19wcdn2tt72str2tNz2sMD3N2n3dymXV2nXVzA2XnayWna0XHawWHa3h7s7KZtbcHGZtraetrKatrSctrCYtrcfNrMbNrUdNrEZNrYGIyMpg0Npw0MpvX1p/X0pnV1QUdnWlt7WktrWlNzWkNjWl19Wk1tWlV1WkVlWll5WklpWlFxWkFhWl5+Wk5uWlZ2WkZmWlp6WlJyWkJiWlx8WkxsWlR0WkRkWlh4WlBwWkBgmp9/mo9vmpd3modnmpt7motr+tOn6Y8fpz98mH7/fvrt2+k3b6ZfvZp+8WL62bPpp0+nHz+efvhw+v796b//nv7zz+nbt6dv3ZrG0LxpiDp9+4XIECWRSCQSiUT699jXERsZoqQb4izP6zhP9qk9xWlyEiYmYHwcxsamRkdhZASGh2FoaGpwEAYGpvr7oa9visWC3l5gMqGnB7q7pxgM6OqCzk7o6ID29qm2NqDTobUVaLQpKhUolKmWFmhunmpqgsbGqYYGqK+Hurqp2lqoqYHq6qmqKqisnKqogPLyqbIyKC2dKimB4mIoKpoqLISCgqn8fMjLm8rNhZycqexsyMqaysyEjAxIT59KS5tKTZ1KSYHkZEhKmkpMnEpImIqPh7g4iI2diomZio6eioqCyEiIiJgKD58KC5sKDYWQEAgOngoKmgoMnAoIAH//KT+/KV9f8PGZ8vae8vICT88pD48pd/cpN7cpV1dwcZlydp5ycgJHxykHhyl7e7Czm7K1nbKxmbK2nrKymrK0BAuLKXPzKTOzKVPTKROTKWPjKSMjMDAAff0pPb0pXd0pHR3Q0prS1AQNjSk1NVBVnVJRmVJWnlJSmlJUnFJQmJKXn5KTm5KRmZKWnpKSmpKUnJKQmBIXnxITmxIRmRIWnhISmhIUnBIQmOLnn+Ljm/ryZYqHZ4qbe4qLa+rTp6mPH6c+fJh6927q7dup16+nXr2aevFi6tmzqadPpx4/nnr4cOr+/am//57688+p27enbt2awtC8aYh6fvuFyBAlkUgkEolE+vfY1xEbGaKkG+Isz+s4T/apPclpYgLGx2FsDEZHJ0dGYHgYhoZgcHByYAD6+yf7+oDFgt5eYDIne3qguxsYDOjqmuzshI4OaG+HtrZJOh1aW4FGAyp1kkKBlhZoboampsnGxsmGBqivn6yrg9paqKmB6urJqiqorJysqIDycigrmywtnSwpgeJiKCqaLCyEgoLJ/HzIy4Pc3MmcnMnsbMjKmszMhIwMSE+fTEubTE2FlJTJ5GRISppMTJxMSID4+Mm4OIiNnYyJmYyOhqioychIiIiYDA+fDAuD0NDJkBAIDp4MCpoMDISAgEl/f/Dzm/T1nfTxAW/vSS+vSU/PSQ+PSXd3cHObdHWddHEBZ+dJJ6dJR0dwcJi0t5+0s5u0tZ20sQFr60krq0lLy0kLi0lz80kzMzA1nTQxmTQ2njQymjQ0nDQwmNTXBz29SV3dSR2dSW3tSS2tSU3NSQ2NSXX1STW1SVXVSRWVSWXlSSUlUFScVFCYlJeflJOblJGZlJaelJKalJSclJCYFBefFBObFBGZFBaeFBKaFBScFBCY5Oef5OOb/PJlkodnkpt7kotr8tOnyY8fJz98mHz3bvLt28nXrydfvZp88WLy2bPJp08nHz+efPhw8v79yb//nvzzz8nbtydv3ZrE0LxpiAZ++4XIECWRSCQSiUT699jXERsZoqQb4izP6zhP9qk9wWl8HMbGJkZHYWQEhodhaGhicBAGBqC/H/r6Jlgs6O0FJhN6eia6u4HBgK4u6Oyc6OiA9nZoawM6faK1FWg0oFKBQploaYHmZmhqgsbGiYYGqK+fqKubqK2FmhqoroaqqonKSqiogPJyKCubKC2dKCmZKC6GoiIoLJwoKID8fMjLg9zciZyciezsiawsyMyEjIyJ9HRIS5tITYWUlInk5ImkJEhMnEhIgPj4ibi4idhYiImB6OiJqKiJyEiIiJgID4ewsInQ0ImQEAgOnggKgsDAiYCACX9/8PMDX98JH58Jb+8JL68JT0/w8Jhwd59wc5twdZ1wcQFnZ3BymnB0nHBwmLC3n7CzA1vbCRubCWvrCSurCUvLCQsLMDefMDObMDWdMDGZMDaeMDICQ8MJA4MJff0JPb0JXd0JHR3Q1p7Q0prQ1JzQ0JhQU5tQVQUVlQll5QklpQlFxQkFhQl5+Qk5uQlZ2QkZmQlp6QkpqQlJyQlx8QkxsQlR0QkRkQlh4QkhoQlBwQl+/gk+vgle3okvXyZ4eCa4uSe4uCY+fZr4+HHiw4eJd+8m3r6deP164tWriRcvJp49m3j6dOLx44mHDyfu35/4+++JP/+cuH174tatCQzNm4ZoxLdfiAxREolEIpFIpH+PfR2xkSFKuiHO8ryO82Sf2uOcxsZgdBRGRmB4eHxoCAYHYWAA+vvH+/qAxYLeXmAyx3t6oLsbGAzo6hrv7ISODmhvh7a2cTodWluBRgMqdZxCgZYWaG6GpqbxxkZoaID6+vG6uvHaWqipgepqqKoar6yEiorx8nIoK4PS0vGSEiguHi8qgsLC8YICyM+HvLzx3FzIyRnPzoasrPHMTMjIGE9Ph7S08dRUSEkZT04eT0qCxERISBiPjx+Pi4PY2PGYGIiOHo+KGo+MhIiI8fBwCAsbDw0dDwmB4ODxoCAIDBwPCAB//3E/P/D1HffxGff2Bi+vcU/PcQ+PcXf3cTc3cHUdd3EZd3YGJ6dxR8dxBwewtx+3sxu3tQUbm3Fr63Erq3FLy3ELi3FzczAzGzc1HTcxGTc2HjcyGjc0BAODcX39cT29cV3dcR2dcW1t0NQc19AYV1cfV1MbV1UdV1EBZeVxJaVxRcVxBYVxeflxOblxWdlxGZlxKalxSclxCYlxcfFxMbFxUdFxEZFxYeFxIaFxQcFxfv5xPr5xXt7xL1/GeXjGubnHP38e//Rp/OPH8Q8fxt+9G3/7dvz16/FXr8ZfvBh/9mz86dPxx4/HHz4cv39//O+/x//8c/z27fFbt8YxNG8aonHffiEyREkkEolEIpH+PfZ1xEaGKOmGOMvzOs6TfWr/lxV6PUF/XKHXE/THFXo9QX9codcT9McVej1B/7lC2RP0nyuUPUH/4wrlDNGfVihniP64QtkT9D+uUM4Q/e+sUM4QZa9QzhDlrFDOEP1xhXKG6E8rlDNEf1yh10P0xxXKGaI/rVDOEL1eoddDlL1Cr4coe4VeD9F/rtCfhihnhf40RDkr9KchqqX1H4YoZ4X+c4hKS/+vD9H37/8vHqKp334hMkRJJBKJRCKR/j32dcRGhijphjjL8zrOk31qj7EbHYWRERgeHhsagsFBGBiA/v6xvj5gsaC3F5hM6OkZ6+4GBgO6uqCzc6yjA9rboa0N6PSx1lag0YBKBQplrKUFmpuhqQkaG8caGqC+HurqoLZ2rKYGqquhqgoqK8cqKsbKy6GsbKy0FEpKxoqLoagICguhoGAsPx/y8iA3dywnZyw7eywrCzIzISMD0tPH0tLGUlMhJWUsORmSksYSEyEhAeLjx+LixmJjx2JiIDoaoqLGIiPHIiLGwsMhLAxCQ8dCQsaCg8eCgiAwEAICxvz9x/z8wNd3zMcHvL3HvLzGPD3Bw2PM3R3c3MZcXcdcXMacncHJaczRcczBYczeHuzsxmxtx2xswNp6zMpqzNISLCzGzM3HzMzGTE3HTEzGjI3ByGjM0HDMwGBMX39MTw90dcd0dMa0tce0tMY0Ncc0NMbU1cfU1MZUVcdUVMaUlceUlMYUFUFBYUxObkxWdkxGZkxaekxKakxSckxCYkxcfExMbExUdExEZExYeExIaExQcIyff4yPb4yXd+zLlzEenjEurrHPn8c+fRr78GHs/fuxd+/G3r4de/167NWrsRcvxp49G3v6dOzx47GHD8fu3x/7+++xP/8cu3177NatMQzNm4Zo9rdfiAxREolEIpFIpH+PfR2xkSFKuiHO8ryO82Sf2qPsRkZgeBiGhkYHB2FgAPr7oa9vlMWC3l5gMqGnB7q7RxkM6OqCzk7o6Bhtb4e2NqDTobV1lEYDKhUoFGhpGW1uhqYmaGyEhobR+nqoq4PaWqipGa2uhqoqqKyEiorR8nIoKxstLR0tKYHiYigqgsLC0YICyM8fzcuD3FzIyRnNzoasrNHMTMjIGE1Ph7S00dRUSEkZTU4eTUqCxERISID4+NG4uNHYWIiJGY2Ohqio0cjI0YgICA8fDQuD0NDRkBAIDh4NChoNDISAgFF/f/DzG/X1HfXxAW/vUS8v8PQc9fAYdXcHN7dRV1dwcRl1dh51chp1dAQHh1F7+1E7u1Fb21EbG7C2HrWyAkvLUQuLUXPzUTOzUVPTURMTMDYeNTIaNTQcNTAY1dcf1dMDXd1RHZ1Rbe1RLS3Q0BhVVx9VUxtVVR1VUQFl5VElpVFFxVEFhVF5+VE5uVFZ2VEZmVFp6VEpqVFJyVEJiVFx8VExsVFR0VERkVFh4VEhoVEBgVF+/lE+vlFe3tEvX0a5uUe5uEY/fx79+HH0w4fR9+9H370bffNm9PXr0VevRl+8GH32bPTp09HHj0cfPhy9f3/0779H//xz9Pbt0Vu3RjE0bxqihd9+ITJESSQSiUQikf499nXERoYo6YY4y/M6zpN9ao+wGx6GoSEYHISBgZH+fujrAxYLenuByRzp6YHubmAwoKtrpLMTOjqgvR3a2oBOH2ltBRoNqFSgUEZaWqC5GZqaoLFxpKEB6uuhrg5qa0dqaqC6GqqqoLJypKICysuhrGyktBRKSkaKi6GoCAoLoaBgJD9/JC8PcnMhJ2ckOxuyskYyMyEjA9LTR9LSIDV1JCVlJDkZkpJGEhMhIQHi4yEubiQ2diQmZiQ6GqKiIDJyJCJiJDx8JCwMQkMhJGQkOBiCgkYCA0cCAsDff8TPD3x9R3x8Rry9wctrxNNzxMNjxN0d3NzA1XXExWXE2XnEyQkcHUccHEbs7cHObsTWdsTGBqytR6ysRiwtRywsRszNwcxsxNR0xMRkxNh4xMhoxNAQDAxG9PVH9PRGdHVHdHRGtLVBS2tEU3NEQ2NEXX1ETW1EVXVERWVEWRmUlEYUFUcUFEbk5Ufk5EZkZUdkZEakpEBSckRCYkRcfERMbERUdERYeERIaERQcERAYISff4SPb4SXd4SHZ4Sbe4SLa+Tz55GPH0c+fBh5/37k7duRN29GXr8eefly5MWLkWfPRp4+HXn8eOThw5H790f+/nvkzz9Hbt8euXVrBEPzpiFa8e0XIkOURCKRSCQS6d9jX0dsZIiSboizPK/jPNmn9jCnoSEYHBweGID+fujrAxZruLcXmEzo6YHu7mEGA7q6oLMTOjqG29uhrQ3odGhtBRptmEoFCgVaWqC5ebipCRoboaEB6uuhrm64thZqaqC6GqqqhisroaICysuhrGy4tBRKSoaLi6GoCAoLoaBgOD9/OC8PcnOHc3IgOxuysoYzMyEjA9LTh9PSIDV1OCVlODkZkpKGExMhIQHi4yEubjg2djgmBqKjh6OiIDJyOCJiODwcwsKGQ0MhJGQ4OBiCgiAwcDggYNjff9jPD3x9wcdn2Nt72Mtr2NMTPDyG3d2H3dzA1XXYxQWcnYednIYdHcHBYdjeftjODmxth21shq2th62shi0twcJi2Nx82Mxs2NR02MRk2NgYjIyGDQ2HDQyG9fWH9fSGdXVBR2dYW3tYS2tYU3NYQ2NYXR3U1IZVVYdVVIaVlYeVlIYVFYcVFEBeflhOblhWdlhGZlhKalhSEiQkhsXEhkVFQVh4WEhoWFBwWEBgmJ9/mI9vmJd3mIdnmJt7mItr+PPn4Y8fhz98GH7/fvjt2+E3b4Zfvx5++XL4+fPhZ8+Gnz4dfvx4+OHD4fv3h//+e/jPP4dv3x6+dWsYQ/OmIVr37RciQ5REIpFIJBLp32NfR2xkiJJuiLM8r+M82af2EKfBQRgYGOrvh74+YLGgt3eIyYSeHujuBgZjqKsLOjuhowPa26GtDej0odZWoNGASgUKZailBZqboakJGhuHGhqgvh7q6qC2dqimBqqroaoKKiuHKiqgvBzKyqC0dKikBIqLoagICguHCgogP38oLw9yc4dycoaysyErCzIzISNjKD0d0tKGUlMhJWUoOXkoKQkSEyEhAeLjh+LiIDZ2KCYGoqOHoqIgMnIoIgLCw4fCwoZCQyEkZCg4GIKCIDBwKCBgyN8f/PyGfH3Bx2fI23vIyws8PYc8PIbc3Yfc3MDVFVxchpydh5ychhwdwcEB7O2H7OyGbG2HbGyGrK3BymrI0nLIwmLI3HzIzGzI1BRMTIaMjYeMjIYMDYcMDIb09UFPb0hXd0hHZ0hbe0hLa0hTEzQ0htTVh9TUhlRVh1RUQFl5SElpSFFxSEFhSF4eZGWHZGSGpKWHpKSGJCWHJCRATGxIVHRIRGRIWHhISGhIUHBIQGCIj2+Il3foy5chHp4hbu4hLq6hz5+HPn4c+vBh6P37obdvh968GXr1aujly6Hnz4eePRt6+nTo8eOhhw+H7t8f+vvvoT//HLp9e+jWrSEMzZuGaPO3X4gMURKJRCKRSKR/j30dsZEhSrohzvK8jvNkn9qDnAYGoL8f+vqAxRrs7QUmE3p6oLt7kMGAri7o7ISOjsH2dmhrAzodWluBRgMqFSiUwZYWaG6GpiZobBxsaID6eqirg9rawZoaqK6GqiqorBysqIDy8sGyMigthZKSweJiKCqCwkIoKID8/MG8PMjNHczJGczOhqwsyMyEjIzB9HRISxtMTYWUlMHk5MGkJEhMhIQEiI8fjIuD2FiIiRmMjh6MioLIyMGICAgPHwwLGwwNhZCQweBgCAqCwMDBgADw9x/08xv09QUfH/D2HvTyGvT0HPTwGHR3Bze3QVdXcHEZdHYGJ6dBR8dBBwewtx+0sxu0tQUbm0Fr60ErK7C0HLSwGDQ3HzQzGzQ1HTQxAWPjQSOjQUPDQQODQX39QT090NUd1NEZ1NYe1NIa1NQc1NAAdfVBNbVBVdVBFZVBZeVBJSVQVBxUUBiUlx+UkxuUlR2UkRmUlh6UkhqUlByUkBgUFx8UExsUFR0UERkUFh4UEhoUFBzk5x/k4xvk5R388mWQh2eQm3uQi2vw06fBjx8HP3wYfP9+8O3bwTdvBl+9Gnz5cvD588FnzwafPBl89Gjw4cPB+/cH//578M8/B2/fHrx1axBD86YhSv/2C5EhSiKRSCQSifTvsa8jNjJESTfEWZ7XcZ7sU/u/rNDrCfrjCr2eoD+u0OsJ+t9foZwh+tMK5QzRn1YoZ4j+tEI5Q/THFcqeoP9codcT9KcVyhmiP61QzhBlr1DOEOWsUM4Q/WmFcobo/3yFXg/Rf65QzhDlrFDOEP1phf5ziLJXKGeIslfo9RBlr9DrIfrPFfrTEOWs0J+GKGeF/jREOSv0pyHKWaH/HKLsFfrPIcpZoQIC/2WIclbo58//Y4i+e/evQ/TBg/+VIcr49guRIUoikUgkEon077GvIzYyREk3xFme13Ge7FN7gF1/P/T1AYsFvb0DTCb09EB3NzAYA11d0NkJHR3Q3j7Q1gZ0OrS2fkejAZUKFAq0tAw0N0NTEzQ2QkPDQH091NVBbS3U1AxUV0NVFVRWQkXFQHn5QFkZlJYOlJRAcfFAUREUFkJBAeTnD+TlQW4u5ORAdvZAVhZkZkJGBqSnD6SlDaSmQkrKQHIyJCUNJCZCQgLEx0Nc3EBsLMTEDERHD0RFQWTkQEQEhIdDWNhAaOhASMhAcDAEBUFgIAQEDPj7g5/fgK/vgI8PeHsPeHmBp+eAh8eAuzu4uQ24uoKLy4Cz84CTEzg6Djg4gL39gJ3dgK3tgI0NWFsPWFkNWFqChcWAufmAmRmYmg6YmAwYGw8YGQ0YGoKBwYC+/oCe3oCu7oCOzoC2NmhpDWhqDmhoDKirD6ipDaiqgorKgLLygJLSgKLigILCgLw8yMkNyMgMSEsPSEkNSEoOSEiAuPiAqOiAiMiAsPCAkNCAoOCAgMAAP/8AH9/Aly8DPDwD3NwDXFwDnz8PfPo08PHjwPv3A+/eDbx9O/DmzcCrVwMvXw48fz7w9OnAkycDjx4NPHgwcP/+wN9/D/z558Dt2wO3bg1gaN40RFnffiEyREkkEolEIpH+PfZ1xEaGKOmGOMvzOs6TfWr3s+vrAxYLenuByezv6YHubmAwoKurv7MTOjqgvR3a2vrpdGhtBRrtOyoVKBRoaYHm5v6mJmhshIYGqK/vr6uD2lqoqYHq6v6qKqishIoKKC/vLyuD0tL+kpL+4mIoKoLCQigo6M/Ph7w8yM2FnJz+7GzIyurPzISMDEhPh7S0/tRUSEnpT07uT0qCxERISID4+P64OIiN7Y+Jgejo/qio/shIiIiA8HAIC+sPDe0PCYHg4P6gIAgMhIAA8Pfv9/Pr9/Xt9/EBb2/w8ur39Oz38Oh3dwc3N3B17Xdx6Xd27ndyAkdHcHDot7fvt7Prt7Xtt7EBa+t+KyuwtOy3sOg3Nwczs35T034Tk35jYzAy6jc07Dcw6NfX79fTA13dfh2dfm3tfi2tfk3Nfg0NUFfvV1PrV1XtV1HpV1buV1ICRcV+BYV+efl+Obl+Wdl+GZl+ael+Kal+Scl+CYl+cfF+MbF+UdF+EZF+YeF+IaF+QcF+AYF+Pr5+Xt7+L1/6eXj6ubn7ubj6P3/u//Sp/8OH/vfv+9+963/7tv/16/5Xr/pfvux//rz/6dP+J0/6Hz3qf/Cg//79/r//7v/zz/7bt/tv3erH0LxpiA5/+4XIECWRSCQSiUT699jXERsZoqQb4izP6zhP9qndx47Fgt5eYDKhpwe6u/sYDOjqgs5O6OiA9va+tjag06G1FWg0oFK/o1CgpaWvuRmamqCxERoa+urroa4OamuhpqavuhqqqqCyEioq+srLoawMSkv7SkqguLivqAgKC6GgAPLz+/LyIDcXcnIgO7svK6svMxMyMiA9vS8tDVJTISWlLzkZkpL6EhMhIQHi4yEuri82FmJi+qKj+6KiIDKyLyICwsMhLAxCQ/tCQvqCg/uCgiAwEAICwN+/z8+vz9cXfHz6vL3By6vP07PPwwPc3fvc3MDVtc/Fpc/ZGZyc+hwdwcGhz96+z84ObG37bGz6rK3ByqrP0hIsLPrMzfvMzPpMTftMTMDYuM/IqM/QEAwM+vT1+/T0+nR1QVsbtLT6NDX7NDT61NVBTa1PVbVPRaVPWblPSalPUREUFPrk5fvk5PpkZftkZPqkpfukpPokJfskJPrExfvExPpERftERPqEhfsEBfsEBPr4+fv4+Pp4efu+fOnj4enj5u7j4ur7/Lnv48e+Dx/63r/ve/eu782bvtev+1696nvxou/5876nT/uePOl79KjvwYO+e/f6/v67748/+m7f7rt1qw9D86YhOvHtFyJDlEQikUgkEunfY19HbGSIkm6Iszyv4zzZpzaLU28vMJmsnh7o7gYGA7q6WJ2d0NEB7e3Q1sai06G1FWg0oFK/o1CgpQWam6GpidXYCA0NUF8PdXVQW8uqqYHqaqiqgspKVkUFlJdDWRmUlrJKSqC4mFVUBIWFUFAA+fmsvDzIzYWcHMjOZmVlsTIzISODlZ4OaWmQmgopKazkZEhKYiUmQkICxMdDXBwrNhZiYljR0ayoKIiMZEVEQHg4hIVBaCgrJIQVHAxBQazAQAgIAH9/lp8f+PqyfHxY3t7g5cXy9AQPD5a7O8vNDVxdwcWF5ezMcnJiOTqCgwPY27Ps7Fi2tiwbG7C2ZllZgaUly8KCZW7OMjMDU1OWiQnL2BiMjFiGhiwDA9DXZ+npsXR1WTo6LG1tlpYWaGqyNDRY6uosNTWWqipLRQWUlVlKSixFRZaCAkteniUnB7KyLBkZlrQ0S0qKJSEB4uIsMTGWqChLRIQlLMwSFGQJCLD4+Vl8fCxeXtaXLyweHhY3N4uLi/XpE+vjR9aHD6z371nv3rHevGG9fs169Yr14gXr2TPW06esJ09Yjx6xHjxg3bvH+usv1h9/sG7fZt26xcLQvGmIzn77hcgQJZFIJBKJRPr32NcRGxmipBviLM/rOE/2qd3LicmEnp7e7m5gMKCrCzo7ezs6oL0d2tqATu9tbQUaDahUoFC+a2mB5mZoaoLGxt6GBqivh7o6qK3tramB6mqoqoLKSqio6C0vh7IyKC2FkpLe4mIoKoLCQigo6M3Ph7w8yM2FnJze7GzIyurNzISMjN709N60NEhNhZQUSE7uTUqCxERISID4+N64OIiN7Y2Jgejo3qgoiIzsjYiA8HAIC4PQ0N6QEAgO7g0K6g0MhICAXn9/8PMDX99eH59eb2/w8ur19AQPj153d3Bz63V17XVxAWfnXicncHTsdXDotbcHO7teW1uwsem1tu61sgJLy14LCzA37zUz6zU17TUx6TU2BiMjMDTsNTDo1dfv1dPr1dUFHZ1ebe1eLa1eTc1eDY1edXVQU+tVVe1VUelVVu5VUgJFxV4FhV55+V45uV5ZWZCW7pWS6pWU7JWQ6BUX7xUTAxGRXmHhXiGhXkHBXgGBXn7+Xj6+Xl7e3i9fenl4erm5ez9/7v30qffjx97373vfvet9+7b3zZve1697X77sffGi99mz3qdPe5886X30qPfBg95793r/+qv3jz96b9/uvXWrF0PzpiG69O0XIkOURCKRSCQS6d9jX0dsZIiSboizPK/jPNmnNpNTTw+zuxsYjO+6upidndDRAe3t0NbGpNOhtRVoNKBSmRQKtLR819wMTU3Q2AgNDVBfz6yrg9paqKmB6mpmVRVUVkJFBZSXM8vKoLQUSkqguJhZVASFhVBQAPn5kJfHzM2FnBzIzoasLGZmJmRkMNPTmWlpkJoKKSmQnMxMSoLEREhIgPh4ZlwcxMZCTAwzOpoZFQWRkcyICAgPh7AwCA1lhoRAcDAzKIgZGAgBAeDvz/TzA19f8PFhenszvbyYnp7g4QHu7kw3N6arK7i4MJ2dwcmJ6ejIdHAAe3umnR3Y2jJtbMDammllxbS0BAsLprk508yMaWoKJiZMY2OmkREYGjINDJj6+qCnx9TVZerogLY2U0uLqanJ1NBgqqsz1dRAVZWposJUVmYqKTEVFZkKCiAvz5STY8rKMmVkmNLSTCkppqQkU0KCKS7OFBNjiooyRUSYwsJMISGmoCBTQIDJz8/k42Py8jK/fGHy8DC5uZmfPzM/fWJ+/Mh8/5757h3z7VvmmzfM16+ZL18yX7xgPnvGfPqU+eQJ89Ej5oMHzHv3mH/9xfzjD+bt28xbt5gYmjcN0fVvvxAZoiQSiUQikUj/Hvs6YiNDlHRDnOV5HefJPrV7OHV39zAY0NX1XWcndHT0tLdDWxvQ6dDa2kOjAZUKFAq0tEBz83dNTdDYCA0NPfX1UFcHtbVQU9NTXQ1VVVBZCRUVPeXlUFYGpaVQUtJTXAxFRVBYCAUFkJ/fk5cHubmQkwPZ2T1ZWZCZCRkZPenpkJbWk5oKKSmQnAxJST2JiZCQAPHxEBfXExsLMTE90dE9UVEQGdkTEQHh4RAWBqGhPSEhEBwMQUE9gYE9AQHg79/j5we+vuDj0+Pt3ePlBZ6ePR4e4O7e4+YGrq49Li7g7Nzj5NTj6AgODj329mBn12Nr22NjA9bWPVZWYGnZY2HRY24OZmY9pqY9JiZgbNxjZNRjaAgGBj36+j16ej26uj06OqCt3aOlBZqaPRoaPerqPWpqPaqqPSoqoKzco6TUo6jYo6DQIy/fIycHsrI9MjI90tI9UlI9kpI94uIgJtYjKtojItIjLNwjJNQjIAD8/D18fD28vD1fvvTw8PRwcfV8/tzz6VPPx48979/3vHvX8/Ztz5s3Pa9f97x82fPiRc+zZz1Pn/Y8edLz6FHPgwc99+71/PVXzx9/9Ny+3XPrVg+G5k1DdOfbL0SGKIlEIpFIJNK/x76O2MgQJd0QZ3lex3myT+1udgwGdHVBZ+d3HR3Q3g5tbUCnd7e2Ao0GVCpQKN0tLdDcDE1N3zU2QkMD1NdDXV13bS3U1EB1NVRVdVdWQkUFlJdDWVl3aSmUlEBxMRQVdRcWQkEB5OdDXl53bi7k5EB2NmRldWdmQkYGpKdDWlp3aiqkpEByMiQldScmQkICxMdDXFx3bCzExHRHR3dHRUFkZHdEBISHQ1gYhIZ2h4RAcDAEBXUHBnYHBHT7+4OfH/j6go9Pt7c3eHl1e3p2e3iAuzu4uXW7uoKLS7ezc7eTEzg6djs4gL19t51dt60t2Nh0W1uDlVW3pSVYWHSbm3ebmXWbmnabmICxMRgZdRsadhsYdOvrd+vpga5ut45Ot7Y2aGl1a2qChka3unq3mlq3qmq3ikq3sjIoKXUrKnYrKHTLy3fLyXXLyoKMTLeUVLekZLeERLe4eLeYGIiKdgsLdwsJdQsKdgsIdPPzAx9f95cv3Tw83dzc3Vxc3Z8/d3/61P3xY/f7993v3nW/fdv95k3369fdL192v3jR/exZ99On3U+edD961P3gQfe9e91//dX9xx/dt29337rVjaF50xA9/PYLkSFKIpFIJBKJ9O+xryM2MkRJN8RZntdxnuxTm8Guqws6O6Gj47v2dmhrAzodWlsZNBpQqUChQEsLo7kZmpqgsfG7hgaor4e6OqitZdTUQHU1VFVBZSWjogLKy6GsDEpLGSUlUFwMRUVQWMgoKID8fMjLg9xcRk4OZGdDVhZkZjIyMiA9HdLSIDWVkZICycmQlASJiYyEBIiPh7g4iI1lxMRAdDQjKooRGQkRERAeDmFhEBrKCAmB4GAICmIEBjICAsDfn+HnB76+4OMD3t4MLy+GpyfDwwPc3cHNjeHqCi4uDGdncHJiODoyHBzA3p5hZwe2tgwbG4a1NVhZMSwtwcKCYW7OMDNjmJqCiQnD2BiMjBiGhgwDA9DXZ+jpMXR1GTo6oK3N0NJiaGqChgZDXZ2hpsZQVQUVFYayMkNJiaGoyFBQAHl5hpwcQ1aWISPDkJZmSEkxJCUZEhIMcXGGmBhDVJQhIsIQFmYICTEEBRkCAgx+fgYfH4OXl/HlC4OHh8HNzeDiYnz+zPj0ifHxI+P9e8a7d4y3bxlv3jBevWK8fMl48YLx7Bnj6VPG48eMR48YDx4w7t1j/PUX448/GLdvM27dYmBo3jREz779QmSIkkgkEolEIv177OuIjQxR0g1xlud1nCf71O7i1NnZ1dEB7e3ftbUBnQ6trUCjAZUKFEpXSws0N0NTEzQ2djU0fFdfD3V1UFsLNTVQXQ1VVV2VlVBRAeXlUFbWVVoKJSVQXAxFRV2FhVBQAPn5kJfXlZsLOTmQnQ1ZWV2ZmZCRAenpkJbWlZoKKSmQnAxJSV2JiZCQAPHxEBfXFRsLMTEQHd0VFQWRkV0RERAeDmFhEBraFRICwcEQFNQVGNgVEAD+/l1+fuDrCz4+4O3d5eXV5ekJHh5d7u7g5tbl6gouLuDs3OXk1OXo2OXgAPb2YGfXZWvbZWPTZW0NVlZgadllYdFlbt5lZgampl0mJmBs3GVk1GVoCAYGXfr6XXp6oKvbpaPTpa0NWlpdmppdGhpd6uqgptalqtqlogLKyl1KSl2Kil0KCl3y8iArCzIyXdLSXZKSICHRJS7eJSbWJSraJSLSJSzcJSTUJSjYJSDQxc/fxcfXxcvb9eVLFw9PFzd3FxdX16dPXR8/dn340PX+fde7d11v33a9ft316lXXy5ddz593PXvW9eRJ1+PHXQ8fdj140HXvXtdff3X98UfX7dtdt251YWjeNET/b99+ITJESSQSiUQikf499nXERoYo6YY4y/M6zpN9andy6uiA9nZoawM6/bvWVqDROqlUoFCgpQWamzubmqCxERoaoL4e6uq+q62Fmhqoru6sqoLKSqiogPLyzrIyKC2FkhIoLu4sKoLCQigogPz8zrw8yM2FnBzIzu7MyoLMTMjIgPT0zrQ0SE2FlBRITu5MSoLEREhIgPj4zrg4iI2FmBiIju6MioLIyM6ICAgPh7AwCA3tDAmB4GAICuoMDOwMCAB/f/Dz6/T1BR8f8Pbu9PICT89OD49Od3dwcwNX104XF3B27nRyAkfHTgeHTnt7sLPrtLUFG5tOa+tOKyuwtOy0sABz804zs05TUzAx6TQ27jQyAkPDTgMD0Nfv1NPr1NUFHZ1Obe1OLa1OTc1ODQ1QV+9UU+tUVQUVlU5l5U4lJVBU7FRQ6JSX75ST65SV7ZSR6ZSW7pSS6pSU7JSQ6BQX7xQTA1HRThGRTmHhTiGhTkHBTgGBTn7+Tj6+Tl7ezi9fOnl4Orm5Oz9/7vz0qfPjx84PHzrfv+98967z7dvO1687X73qfPmy8/nzzqdPO5886Xz8uPPhw8779zvv3ev866/OP/7ovH2789atTgzNm4bo//3bL0SGKIlEIpFIJNK/x76O2MgQJd0QZ3lex3myT+0OTu3t0NbWQadDa+t3NBpQqUChQEsLNDdDU1NHYyM0NEB9PdTVddTWfldT8111NVRVdVRWQkUFlJdDWVlHaSmUlEBxMRQVdRQWQkEB5OdDXl5Hbi7k5EB2NmRldWRmQkYGpKdDWlpHaiqkpEByMiQldSQmQkICxMdDXBzExnbExEB0NERFQWRkR0QEhIdDWBiEhnaEhEBwMAQFdQQGdgQEgL9/h58f+PqCjw94e3d4eYGnZ4eHR4e7O7i5dbi6gosLODuDk1OHo2OHg0OHvT3Y2YGtbYeNTYe1dYeVFVhagoVFh7l5h5lZh6kpmJiAsXGHkVGHoWGHgQHo64OeXoeuboeOToe2doeWFmhqdmhodKird6ipdaiqgooKKCt3KCl1KCp2KCh0yMuDnFyHrGyHjEyHtHSHlFSHpGSHhESHuHiHmFiHqGiHiAgIC3cICXUICnYICHTw83fw8XXw8nbw8HRwc3dwcXV8/tzx6VPHx48dHz50vHvX8fZtx5s3Ha9fd7x61fHiRcfz5x1Pn3Y8edLx+HHHw4cd9+933LvX8ddfHX/80XH7dsetWx0YmjcN0f/Ht1+IDFESiUQikUikf499HbGRIUq6Ic7yvI7zZJ/a7Zza2oBOh9ZWoNGASgUKBVpaoLkZmpqgsREaGtrr66GuDmproabmu+pqqKqCysr2igooL4eyMigtbS8pgeJiKCqCwkIoKGjPz4e8PMjNhZwcyM6GrKz2zEzIyID0dEhLa09NhZQUSE6GpKT2xERISID4eIiLa4+NhZgYiI6GqCiIjGyPiIDwcAgLg9DQ9pAQCA6GoKD2wMD2gADw92/38wNfX/DxAW/vdi8v8PQED492d/d2N7d2V1dwcQFnZ3Byand0BAeHdnv7djs7sLVtt7EBa+t2K6t2S0uwsGg3Nwczs3ZT03YTEzA2bjcyAkPDdgODdn190NNr19UFHZ12be12La12TU3Q0GhXV29XU2tXVW1XUQFl5XYlpXZFRVBQaJeXb5eTa5eVbZeRaZeWbpeSapeUbJeQAHHxdjGxdlHRdhGRdmHhdiEhEBRsFxBo5+dv5+Nr//KlnYennZu7nYur/fPn9k+f2j9+bP/wof3du/a3b9vfvGl//br95cv2Fy/anz9vf/q0/cmT9seP2x8+bL9/v/3evfa//mr/44/227fbb91qx9C8aYj+P7/9QmSIkkgkEolEIv177OuIjQxR0g1xlud1nCf71G7jRKdDayvQaEClAoUCLS3Q3AxNTd81NrY1NEB9PdTVQW1tW00NVFf/D1VVbZWVUFEB5eVQVtZWWgolJVBcDEVFUFjYVlAA+fmQl/ddbm5bTg5kZ0NWFmRmtmVkQHo6pKVBampbSgokJ0NSEiQmtiUkQHw8xMVBbGxbTAxER0NUFERGtkVEQHg4hIVBaGhbSAgEB0NQUFtgYFtAAPj7t/n5ga8v+PiAt3eblxd4eoKHR5u7e5ubG7i6trm4gLMzODmBo2ObgwPY27fZ2bXZ2oKNTZu1NVhZtVlatllYgLl5m5kZmJq2mZi0GRuDkVGboSEYGLTp67fp6YGubpuODmhrt2lptWlqtmlotKmrg5pam6pqm4pKm7IyKCm1KSq2KSi0ycu3ycmBrGybjEybtHSblFSbpGSbhESbuHibmFibqCiIiLQJC7cJCbUJCgI/fxsfXxsvb9uXL208PG3c3G1cXG2fPsHHj20fPrS9e9f29m3bmzdtr161vXzZ9uJF2/PnbU+ftj150vb4cdvDh23377fdu9f2119tf/zRdvt2261bbRiaNw3R/9e3X4gMURKJRCKRSKR/j30dsZEhSrohzvK8jvNkn9p0Tq2t39FoQKXSKRRoaYHmZmhqgsbG7xoaoL6eXlcHtbVQUwPV1VBV9V1lJVRU0MvLoawMSkuhpIReXAxFRVBYCAUF9Px8yMuD3NzvcnIgOxuysiAzk56RAenpkJYGqan0lBRIToakJEhMpCckQHw8xMVBbCw9JgaioyEqCiIj6REREB4OYWEQGkoPCYHgYAgKogcG0gMCwN+f7ucHvr7g4wPe3nQvL/D0BA8Purs7uLnRXV3pLi7g7AxOTuDoSHdwAHt7up0d2NrSbWzo1tZgZUW3tAQLC7q5Od3MDExNwcSEbmxMNzKiGxqCgQHo69P19Oi6unQdHdDWBi0tuqYmXUODrq5OV1MDVVW6igpdWZmupERXVKQrKIC8PF1Oji4rS5eRoUtL06WkQFKSLiFBFxeni4nRRUXpIiIgLEwXEqILCtIFBOj8/HQ+PjovL/3LFzoPD52bm/75M/3TJ/rHj/DhA/3dO/rbt/Q3b+ivXtFfvqS/eEF//pz+9Cn9yRP648f0hw/p9+/T792j//UX/Y8/6Ldv02/domNo3jRE/9/ffiEyREkkEolEIpH+PfZ1xEaGKOmGOMvzOs6TfWq3sqPRvqNSgUKBlhZoboamJmhshIYGqK+HujqorYWaGqiuhqoqqKyEiorvystby8qgtBRKSqC4uLWoCAoLoaAA8vNb8/K+y82FnBzIzoasLMjMhIyM1vR0SEuD1FRISWlNToakJEhMhIQEiI9vjYuD2FiIiYHo6NaoKIiMhIgICA+HsLDW0FAICYHgYAgKag0MbA0IAH//Vj8/8PUFHx/w9m718gJPT/DwAHf3Vje3VlfXVhcXcHYGJ6dWR0dwcAB7e7Cza7W1bbWxabW2BisrsLRstbBoNTcHM7NWU1MwMWk1Nm41MgJDw1YDA9DXb9XTa9XVBR2dVm1t0NJq1dRs1dAAdfVWNbVWVdVWFZVWZWVQUmpVVGxVUGiVl2+Vk2uVlQUZmVZp6VYpqVZJyVYJiVZxcRATaxUVbRURaRUWbhUSahUUBAGBVn7+Vj6+Vl7eVh6eVm7uVi6u1s+fWz99av34sfXDB3j3rvXt29Y3b1pfvWp9+bL1xYvW589bnz5tffKk9fGj1ocPW+/fb713r/Wvv1r/+KP19u3WW7daMTRvGqL/+7dfiAxREolEIpFIpH+PfR2xkSFKuiHO8ryO82Sf2jROVCpQKN+1tEBzMzQ10RoboaEB6uuhru672lqoqYHqalpVFVRWQkUFlJd/V1YGpaVQUkIrLoaiIigshIICWn4+5OVBbu53OTmQnQ1ZWZCZScvIgPR0SEuD1FRaSgokJ0NSEiQm0hISID4e4uIgNpYWEwPR0RAVBZGRtIgICA+HsDAIDaWFhEBwMAQFQWAgLSAA/P1pfn7g6ws+PuDtTfPyAk9P8PAAd3eamxvN1RVcXGjOzuDkRHN0BAcHsLcHOzuarS3NxgasrWlWVmBpSbOwAHNzmpkZmJrSTExoxsZgZEQzNAQDA5q+Pk1PD3R1aTo6oK1N09KiaWqChgZNXZ2mpkZTVQUVFZqyMk1JCRQVaQoKNHl5mpwcTVaWJiMD0tI0KSmapCRNQoImLk4TEwNRUZqICE1YmCYkRBMUpAkIAB8fjZeX9uULjYeHxs1N4+Kiff5M+/SJ9vEj7cMH2vv3tHfvaG/f0t68ob16RXv5kvbiBe3ZM9rTp7Qnj2mPH9EePqDdv0+7d4/211+0P/6g3b5Nu3WLhqF50xD9P779QmSIkkgkEolEIv177OuIjQxR0g1xlud1nCf71KZyolCgpeW75mZoaoLGRmhooNbXQ10d1NZ+V1MD1dVQVQWVlVBRQS0vh7Ky70pLoaQEiouhqAgKC6kFBZCfD3l5kJsLOTmQnf1dVhY1MxMyMiA9HdLSqKmpkJICycmQlERNTISEBIiPh7g4amwsxMRAdDRERVEjIyEiAsLDISyMGhoKISEQHAxBQdTAQAgIAH9/8POj+vqCjw94e4OXF9XTEzw8wN0d3Nyorq5UFxeqszM4OYGjI9XBAeztwc4ObG2pNjZUa2uqlRVYWoKFBdXcHMzMqKamVBMTMDamGhmBoSHVwAD09al6elRdXdDRoWprg5YWVVOTqqFBVVcHNTWqqipVRQWUlalKSlRFRaqCAlVeHuTkqLKyVBkZqrQ0VUqKKikJEhJUcXGqmBhVVJQqIgLCwlQhIaqgIFVAgMrPT+Xjo/LyUr98ofLwULm5qVxc1M+fqZ8+UT9+pH74QH3/nvruHfXtW+rr19RXr6gvX1KfP6c+e0Z9+oT65DH18SPqwwfU+/ep9/6m/vUX9Y8/qLdvU2/domJo3jREv/0fvxAZoiQSiUQikUj/Hvs6YiNDlHRDnOV5HefJPrUpnFpaoLn5u6YmaGyEhgaor6fU1UFtLdTUfFddDVVVUFkJFRVQXk4pK4PS0u9KSqC4GIqKoLAQCgoo+fmQlwe5uZCT8112NmRlQWYmJSMD0tMhLQ1SUykpKZCcDElJkJhISUiA+HiIi4PYWIiJoURHQ1QUREZCRAQlPBzCwiA0FEJCKMHBEBQEgYEQEEDx9wc/P/D1BR8f8PameHmBpyd4eIC7O8XNDVxdKS4u4OxMcXKiODqCgwPY24OdHcXWFmxsKNbWYGVFsbSkWFiAuTmYmYGpKcXEhGJsTDEyAkNDMDCg6OtT9PQourqgowPa2hQtLYqmJkVDg6KuDmpqFFVVUFGhKCtTlJRAUZGioECRl6fIyVFkZUFGhiItTZGSokhKUiQkQFycIiZGERWliIhQhIUpQkIgKEgREKDw81P4+Ci8vJQvXyg8PBRubgoXF+XzZ8qnT5SPHykfPlDev6e8fUt584by+jXl1SvKy5eU588pz55RnjyhPH5MefSI8vAB5f59yr2/KX/9RfnjD8r/9r9Rbt2iYGjeOET/91+IDFESiUQikUikf499HbGRIUq6Ic7yvI7zZJ/aLZyam6Gp6bvGRmhogPp6qKuD2tqWmhqorv4fqqpaKiuhogLKy6GsrKW0FEpK/ofi4paiIigshIICyM+HvLyW3FzIyfkuOxuysiAzEzIyID29JS0NUlMhJQWSk1uSkr5LTGxJSID4eIiLg9jYlpgYiI6GqCiIjISIiJbwcAgLg9BQCAlpCQ6GoCAIDISAAPD3b/HzA19f8PEBb+8WLy/w9IT/T3v/DRtZ26b3vkPPYhXJ8t4beu+99957713TNb1v783bdtoBGzvSDhQpUaRzACVKlAgHUKLgKFGiQImSHWz0qeute/iw11tkfd90UZp18Pzxm55eZA1XFb612OvCYDDT0zA19WNyEiYmYHz8x9jYj9HRHyMjMDwMQ0MwOPhjYAD6+6Gv70dv74+eHuju/tHVBZ2d0NHxo70d2tp+tLb+aGmB5uYfTU3Q2PijoeFHfT3U1f2orYWamh/V1T+qqn5UVkJFxY/ycigr+1Fa+qOkBIqLfxQV/Sgs/FFQ8CM//0deHuTm/sjJ+ZGd/SMr60dmJmRk/EhP/5GW9iM19UdKyo/kZEhK+pGY+CMh4YfH88Pt/uFy/XA6fzgcP+z2HzbbD6v1h9n8w2T6YTT+MBh+6PU/tNofGs0PtfqHUvlDofghl/+Ij/sRK/shlf6IifkRFfUjPPxHaOgPDM2AQ/R/3iI+RHk8Ho/H4/Guz/t05MWHKC9AvuV5me/Q+6gtXKF/naC+FeqdoIIV6t2fPoIV6p2gghXq3Z8+fleod4L+jSvUO0H/ukK9E/RyhXonqM9fV6hviP5LWKG+ISpYob4henWF+oaod4X6hujlCvUNUe8KvRyi3hXqG6LeFXo5RL0r1DdEvSv06hAVrFDfEPWtUMEQ9a3Qq0P0coVeHaLeFerlXaF/HaK+FWqx/DJEdTo/QzTun4aoRPJ3DtH/cYv4EOXxeDwej8e7Pu/TkRcforwA+ZbnZb5D76P2d2/fvsHXr/DlC/zjP8Lnz+TTJ/j48fuHD/D+Pbx7R/74A96+hTdv4PXr769ewcuX8OIFef4cnj2Dp0/hyZPvjx/Do0fw8CF58ADu34d79+Di4vv5OZydwekpnJzA8fH3oyM4PCQHB7C/D3t7sLv7fWcH7t6F7W3Y2vq+uQkbG7C+DnfufF9bg9VVWFmB5eXvS0uwuAgLCzA/D3Nz32dnYWYGpqdhaur75CRMTMD4+PexMRgd/T4y8n14GIaGYHAQBga+9/dDXx/09n7v6YHu7u9dXdDZ+b2jA9rbv7e1QWsrtLR8b27+3tT0vbERGhqgvv57Xd332trvNTVQXQ1VVd8rK79XVHwvL/9eVgalpd9LSqC4+HtR0ffCQigo+J6f/z0v73tu7vecnO/Z2ZCV9T0z83tGxvf09O9pad9TUyEl5Xty8vekpO+Jid8TEr57POB2f3c6vzsc3+327zbbd6v1u8Xy3Wz+bjJ9Nxq/GwzfdbrvWu13jea7Wv1dqfyuUHyXy7/HxX2Xyb5Lpd8lku+Rkd/Dw7+Hhn7H0Aw4RP/7LeJDlMfj8Xg8Hu/6vE9HXnyI8gLkW56X+Q69j9rfvH39Cl++fPvHf4TPn8mnT/DxI/nw4dv79/DuHfzxB3n7Ft68gdev4dWrby9fwosX8Pw5efYMnj6FJ0/g8eNvjx7Bw4fw4AG5fx/u3YOLCzg//3Z2BqencHICx8dwdASHh3BwQPb3v+3twe4u7OzA3bvftrdhaws2N2FjA9bXv925A2trsLoKKyuwvAxLS98WF2FhAebnYW7u2+wszMzA9DRMTX2bnISJCRgf/zY2BqOj30ZGvg0Pw9AQDA5+GxiA/n7o64Pe3m89PdDd/a2rCzo7v3V0fGtvh7Y2aG2FlpZvzc3fmpqgsfFbQwPU13+rq/tWWws1Nd+qq6Gq6ltl5beKCigv/1ZW9q209FtJCRQXfysqgsLCbwUF3/Lzv+XlQW7ut5ycb9nZ37KyvmVmfsvIgPT0b2lp31JTv6WkfEtO/paUBImJ3xISvnk839zuby7XN6fzm8PxzW7/ZrN9s1q/WSzfzOZvRuM3g+GbXv9Np/um1X7TaL6p1d+Uym8KxTe5/Ftc3DeZ7JtU+k0i+RYZ+S08/Fto6DcMzYBD9L/dIj5EeTwej8fj8a7P+3TkxYcoL0C+5XmZ79D7qP3V25cv8I//+PXzZ/LpE3z8CB8+kPfv4d07+OMPePsW3ryB16/h1St4+RJevIDnz+HZM/L0KTx58vXxY3j0CB4+hAcP4P59cu8eXFx8PT+HszM4PYWTk6/Hx3B0BIeH5OAA9vdhbw92d7/u7MDdu7C9DVtbXzc3YWMD1tfhzh1YW4PVVVhZgeVlWFr6urgICwswPw9zc19nZ2FmBqanYWrq6+QkTEzA+PjXsTEYHf06MgLDw1+HhmBw8OvAAPT3Q18f9PZ+7emB7m7o6vra2fm1o+Nrezu0tUFrK7S0fG1uhqamr42N0NDwtb7+a10d1NZ+ramB6uqvVVVQWfm1ouJreTmUlX0tLf1aUvK1uBiKir4WFn4tKID8/K95eV9zcyEn52t29tesrK+ZmV8zMr6mp0Na2tfU1K8pKV+Tk78mJX1NTISEhK8ez1e3+6vL9dXp/OpwfLXbv9psX63WrxbLV7P5q9H41WD4qtd/1em+arVfNZqvavVXpfKrQvFVLv8aF/dVJvsqlX6VSL5GRn4ND/8aGvoVQzPgEP2vt4gPUR6Px+PxeLzr8z4defEhyguQb3le5jv0Pmp/8faP/wifP3/59Il8/AgfPsD79+TdO/jjD3j7Ft68gdevyatX8PIlvHjx5flzePaMPH0KT57A48fw6BE8fPjlwQO4f5/cuwcXF3B+DmdncHr65eQEjo/h6AgOD+HggOzvw97el91d2NmBu3dhe/vL1hZsbsLGBqyvf7lzB9bWyOoqrKzA8jIsLX1ZXISFBZifh7m5L7OzMDMD09MwNQWTk18mJmB8/MvYGIyOfhkZ+TI8DENDMDgIAwNf+vuhrw96e6Gn50t3N3R1fenshI6OL+3tX9raoLUVWlqguflLUxM0Nn5paID6+i91dV9qa6Gm5kt1NVRVfams/FJRAeXlX8rKvpSWQknJl+LiL0VFUFj4paDgS34+5OV9yc39kpPzJTsbsrK+ZGZ+ycj4kp7+JS3tS2oqpKR8SU7+kpT0JTHxS0LCF48H3O4vLtcXp/OLw/HFbv9itX6xWMBs/mI0fjEYvuj1X3S6L1rtF43mi1r9Ran8olB8kcu/xMV9kcm+SKVfJJIvkZFfwsO/hIZ+wdAMOET/yy3iQ5TH4/F4PB7v+rxPR158iPIC5Fuel/kOvY/an319+gQfP5IPH+D9e3j3jvzxB7x9C2/ewOvX8OoVvHxJXryA588/P3sGT5+SJ0/g8WN49AgePoQHDz7fvw/37pGLCzg/h7MzOD2Fk5PPx8dwdASHh3BwQPb3YW8Pdnc/7+zA3buwvQ1bW583N2FjA9bX4c4dWFv7vLrKrKx8Xl6GpSVYXISFBZif/zw3B7OzMDMD09Ofp6ZgchImJmB8/PPYGIyOfh4Z+Tw8DENDMDj4eWAA+vuhrw96ez/39EB3N3R1QWfn546Oz+3tn9vaoLUVWlo+NzdDUxM0NkJDw+f6+s91dZ9ra6GmBqqrP1dVfa6s/FxRAeXlUFb2ubT0c0nJ5+JiKCr6XFj4uaAA8vM/5+VBbu7nnJzP2dmfs7I+Z2ZCRsbn9PTPaWmfU1M/p6R8Tk6GpKTPiYmfExI+ezyf3e7PLhc4HJ/t9s8222er9bPFAmbzZ6Pxs8HwWa//rNN91mo/azSf1erPSuVnheKzXP45Lu6zTPZZKv0skXyOjPwcHv45NPQzhmbAIfqfbxEfojwej8fj8XjX53068uJDlBcg3/K8zHfofdT+5OvjR/jwgbx/D+/ewR9/kLdv4c0beP0aXr2Cly/hxQvy/Dk8ewZPn3568oQ8fgyPHsHDh/DgAdy/D/fufbq4YM7P4ezs0+kpnJzA8TEcHX06PCQHB7C/D3t7sLsLOztw9y5sb3/a2oLNTdjYgPV1uHMH1tY+ra7CygpZXoalJVhc/LSwAPPzMDcHs7OfZmZgehqmpmBy8tPEBIyPw9gYjI5+Ghn5NDwMQ0MwOPhpYAD6+6GvD3p7P/X0QHc3dHVBZ+enjg5ob//U1vaptRVaWj41N0NTEzQ2QkPDp/p6qKv7VFv7qaYGqqs/VVVBZeWniopP5eVQVvaptBRKSj4VF38qKvpUWAgFBZ/y8yEv71NuLuTkfMrO/pSV9Skz81NGxqf0dEhL+5Sa+ikl5VNy8qekpE+JiZCQ8Mnj+eR2f3K5PjmdnxyOT3b7J5vtk9X6yWL5ZDZ/Mpk+GY2fDIZPev0nne6TVvtJo/mkUn1SKj8pFJ/i4z/FxX2SyT5JpZ8kkk+RkZ/Cwz+Fhn7C0Aw4RP/TLeJDlMfj8Xg8Hu/6vE9HXnyI8gLkW56X+Q69j9rCFfo3TlDfCr15gl6u0L9O0Ksr1DtBL1eob3/6JuhfV6h3gl6uUN8EvW6FXk7QqyvUN0FvXqGCCXp1hV5O0Ksr9HKC/nWFeieob4X6hujlCvUNUcEK9Q1RwQr1DVHvCr0cot4V6huighXqG6LeFXo5RL0r1DdEvSv0coh6V6hviHpX6NUh6l2hgiF6uUKvDtHLFXp1iHpXqJd3hf6NQ9S3QtVqGqJyOYZobOw/d4j+x1vEhyiPx+PxeDze9Xmfjrz4EOUFyLc8L/Mdeh+1P3r78AHev4d37+CPP+DtW/LmDbx+Da9ekZcv4cWLj8+fw7Nn5OlTePIEHj+GR4/g4UN48IDcvw/37n28uIDzc3J2Rk5PP56cwPExHB3B4eHHgwOyvw97e7C7Czs7cPcubG/D1tbHzU3Y2ID1dXLnDqytfVxdhZUVWF6GpSVYXISFhY/z8zA3B7OzMDPzcXoapqZgchImJj6Oj8PYGIyOwsjIx+FhGBqCwUEYGPjY3w99fdDbCz09H7u7oasLOjuho+Njezu0tX1sbYWWlo/NzR+bmqCxERoaoL7+Y10d1NZCTc3H6uqPVVUfKyuhogLKyz+WlX0sLf1YUgLFxVBU9LGw8GNBwcf8fMjLg9zcjzk5H7OzP2ZlfczMhIyMj+npH9PSPqamfkxJ+ZicDElJHxMTPyYkfPR4PrrdH10ucDo/Ohwf7faPNttHq/WjxfLRbP5oMn00Gj8aDB/1+o9a7UeN5qNa/VGl+qhQfJTLP8bHf4yN/SiTfYyJ+SiRfIyM/Bge/jE09COGZsAh+h9uER+iPB6Px+PxeNfnfTry4kOUFyDf8rzMd+h91P7g7f17ePfuwx9/kLdv4c0beP2avHoFL1/Cixfk+fMPz57B06fw5Al5/BgePYKHD+HBA7h/n9y7BxcXH87P4eyMnJ7CyQkcH8PRERwewsHBh/19srdHdnc/7OzA3buwvQ1bW7C5+WFjA9bXyZ07sLYGq6uwsgLLyx+WlmBxERYWYH4e5uZgdvbDzAxMT8PUFExOfpiYgPFxGBuD0dEPIyMwPAxDQzA4+GFgAPr7oa8Pens/9PRAdzd0dUFn54eODmhvh7Y2aG390NLyobkZmpo+NDZCQ8OH+nqoq4PaWqip+VBd/aGqCiorP1RUQHn5h7KyD6WlUFLyobgYioo+FBZCQcGH/PwPeXmQm/shJweysz9kZX3IzPyQkfEhPf1DWhqkpn5ISfmQnPwhKelDYuKHhATweD643R9crg9O5weH44PdDjbbB6v1g8XywWz+YDJ9MBg+6PUfdLoPWu0HjeaDWv1BpfqgUHyQyz/Ex3+Ijf0gk32IifkgkXyIjPwQHv4hNPQDhmbAIfrvbxEfojwej8fj8XjX53068uJDlBcg3/K8zHfofdR+7+3dO/jjj/dv35I3b+D1a3j1irx8CS9ewPPn5NkzePoUnjyBx4/h0SN4+BAePID798m9e3BxAefncHYGp6dwckKOj+Ho6P3hIRwcwP4+7O2R3V3Y2YG7d99vb8PWFmxuko2N9+vrcOcOWVuD1dX3KyuwvAxLS7C4CAsLMD8Pc3MwO/t+Zgamp2FqCiYn309MwPg4jI3B6Oj7kREYHoahIRgcfD8wAP390NcHvb3ve3qguxu6uqCz831HB7S3Q1sbtLa+b2mB5ub3TU3Q2Pi+oeF9fT3U1UFtLdTUvK+uhqqq95WVUFHxvrwcysrel5a+LymB4uL3RUVQWPi+oOB9fj7k5b3PzYWcnPfZ2ZCV9T4z831Gxvv09Pdpae9TUyEl5X1y8vukpPeJie8TEt57POB2v3e53jud7x2O93b7e5sNrNb3ZvN7k+m90fjeYHiv17/X6d5rte81mvdq9XuV6r1C8V4ufx8f/z429r1M9j4m5r1E8j4y8n14+PvQ0PcYmgGH6L+7RXyI8ng8Ho/H412f9+nIiw9RXoB8y/My36H3Ufudtz/+gLdv3715Q16/hlev4OVL8uIFPH8Oz56Rp0/hyRN4/BgePYKHD8mDB3D/Pty7Ry4u4Pwczs7enZ7CyQk5PoajIzg8hIMD2N9/t7cHu7tkZwfu3oXtbdjags1N2NiA9XW4cwfW1mB1FVZWYHkZlpbeLS6ShQWYn4e5OZidfTczA9PTMDUFk5MwMfFufBzGxmB0FEZG3g0Pw9AQDA7CwMC7/n7o64PeXujpedfdDV1d0NkJHR3v2tuhrQ1aW6Gl5V1zMzQ1vWtshIaGd/X17+rqoLYWamqguvpdVRVUVr6rqIDy8ndlZe9KS6Gk5F1xMRQVvSssfFdQAPn57/LyIDf3XU7Ou+xsyMp6l5kJGRnv0tPfpaW9S019l5LyLjkZkpLeJSa+S0h45/G8c7vfuVzgdL5zON7Z7e9stndW6zuL5Z3Z/M5kemc0vjMY3un173S6d1rtO43mnVr9TqV6p1C8k8vfxce/i419J5O9i4l5J5G8i4x8Fx7+LjT0HYZmwCH6b28RH6I8Ho/H4/F41+d9OvLiQ5QXIO+1QQ/Uf+Y79D5qv/X15g28fk1evYKXL+HFC/L8OTx7Bk+fkidP4PFjePQIHj6EBw/I/ftw7x5cXJDzczg7g9PTtycncHxMjo7g8BAODmB/H/b23u7uws4Oc/fu2+1t2NqCzU3Y2CDr63DnDqytvV1dhZUVWF6GpSVYXISFBTI/D3Nzb2dnYWYGpqdhagomJ99OTMD4OIyNwejo25ERGB6GoSEYHHw7MAD9/dDXB729b3t6oLsburqgs/NtRwe0t0NbG7S2vm1pgeZmaGqCxsa3DQ1v6+vf1tVBbS3U1EB19duqKqishIqKt+Xlb8vK3paWQkkJFBe/LSp6W1j4tqAA8vMhL+9tbu7bnBzIzn6blQWZmW8zMt6mp0Na2tvU1LcpKW+Tk98mJb1NTISEhLcez1u3+63L9dbpfOtwgN3+1mZ7a7W+tVjems1vTaa3RuNbg+GtXv9Wp3ur1b7VaN6q1W9VqrcKxVu5/G18/NvY2Lcy2duYmLcSydvIyLfh4W9DQ99iaAYcov/mFvEhyuPxeDwej3d93qcjLz5EeQHyLc/LfIfeR+03vl6/hlevyMuX8OIFPH9Onj2Dp0/hyRPy+DE8egQPH8KDB3D/Prl3Dy4u4Pwczs7I6SmcnMDx8ZujI+bwEA4O3uzvw94e7O7Czg7cvUu2t2FrCzY3YWMD1tfJnTtv1tZgdRVWVmB5GZaWYHERFhbezM+TuTmYnYWZmTfT0zA1BZOTMDEB4+MwNgajo29GRmB4GIaGYHDwzcAA9PdDXx/09r7p6YHubujqgs7ONx0d0N4ObW3Q2vqmpQWam6GpCRob3zQ0QH39m7q6N7W1UFMD1dVQVfWmshIqKt6Ul0NZ2ZvS0jclJVBc/KaoCAoL3xQUQH4+5OW9yc19k5PzJjv7TVYWZGa+yciA9PQ3aWlvUlMhJeVNcvKbpKQ3iYlvEhLeeDzgdr9xud44nW8cjjd2+xubDazWNxbLG7P5jcn0xmh8YzC80evf6HRvtNo3Gs0btfqNUvlGoXgjl7+Jj38TG/tGKn0TE/NGInkTGfkmPPxNaOgbDM2AQ/Rf3yI+RHk8Ho/H4/Guz/t05MWHKC9AvuV5me/Q+6j92terV+TlS3jxAp4/J8+ewdOn8OQJefwYHj2Chw/Jgwdw/z7cu0cuLuD8/PXZGTk9hZMTOD6GoyM4PCQHB7C/D3t7sLv7emeH3L0L29uwtQWbm7CxQdbX4c4dWFuD1dXXKyuwvAxLS2RxERYWXs/Pw9wczM7CzAxMT8PUFExOwsQEjI/D2BiMjsLIyOvhYRgagsFBGBh43d8PfX3Q2ws9Pa+7u6GrCzo7oaPjdXs7tLVBayu0tLxuboamJmhshIaG1/X1UFf3urYWampeV1dDVdXrykqoqIDy8tdlZVBa+rqk5HVxMRQVvS4shIKC1/n5kJf3OjcXcnJeZ2e/zsp6nZkJGRmv09MhLe11aurrlBRISoLExNcJCa89ntduN7hcr53O1w7Ha7v9tc322moFsxlMptdG42uD4bVe/1qne63RvFarX6tUr5XK1wrFa7n8dXz869jY11Lp65iY19HRryMjX4eHvw4NfY2hGXCI/qtbxIcoj8fj8Xg83vV5n468+BDlBci3PC/zHXoftV/5evmSvHgBz5/Ds2fk6VN48gQePyaPHsHDh/DgAbl/H+7dg4sLcn4OZ2dwegonJ3B8TI6OXh0ekoMDsr8Pe3uvdndhZwfu3iXb27C1BZubsLEB6+tw5w5ZW3u1ugorK7C8DEtLsLhIFhZezc/D3BzMzsLMDExPv5qagslJmJgg4+MwNgajozAy8mp4GIaGYHAQBgZe9fdDXx/09kJPz6vubujqgs5O6Oh41d4ObW3Q2gotLa+am6GpCRoboaHhVX091NVBbe2rmhqorn5VVQWVla8qKqC8/FVZGZSWQknJq+LiV0VFrwoLoaAA8vMhL+9Vbu6rnBzIzn6VlfUqM/NVRsar9HRIS4PU1FcpKa+Sk18lJb1KTISEhFcezyu3+5XL9crpfOVwgN3+ymZ7ZbW+slhemc2vTCYwGl/p9aDTvdJoXqnVr1SqV0rlK4XilVz+Ki7uVWzsK6n0VUzMq+joV5GRr8LDX4WGvsLQDDhE/89bxIcoj8fj8Xg83vV5n468+BDlBci3PC/zHXoftV/6evECnj8nz57B06fkyRN4/BgePSIPH8KDB3D/Prl3Dy4u4PycnJ3B6enLkxM4PiZHR3B4CAcHsL9P9vZgdxd2duDuXdjeJltbsLkJGxuwvg537pC1NVhdfbmyAsvLsLQEi4uwsEDm52Fu7uXsLMzMwPQ0TE3B5CRMTMD4OIyNwegojIzA8DAMDcHg4MuBAejvh74+6O192dMD3d3Q1QWdnS87OqC9HdraoLX1ZUsLNDdDUxM0Nr5saID6eqirg9ralzU1UF0NVVUvKytfVlRAefnLsjIoLYWSkpfFxVBU9LKw8GVBAeTnQ17ey9xcyMl5mZ39MivrZWYmZGS8TE9/mZYGqakvU1IgOfllUtLLxMSXCQkvPZ6Xbje4XC+dzpcOx0u7/aXN9tJqBYvlpdn80mR6aTSCXv9Sp3up1b7UaF6q1S9VqpdK5Uu5/GV8/Mu4uJexsS+l0pcxMS+jo19GRr4MD38ZEvISQzPgEP1+i/gQ5fF4PB6Px7s+79ORFx+ivAD5ludlvkPvo/YLX8+fw7Nn5OlTePKEPH4Mjx7Bw4fkwQO4fx/u3SMXF3B+Dmdn5PQUTk7g+BiOjsjhIRwcwP4+7O3B7i7Z2Xlx9y5sb5OtLdjchI0NWF+HO3fI2hqsrsLKCiwvv1hagsVFsrAA8/MwNwezszAzA9PTL6amyOQkTEy8GB8nY2MwOgojIzA8DENDMDj4YmAA+vuhrw96e1/09EB3N3R1QWfni44OaG+HtjZobX3R0gLNzdDUBI2NLxoaoL4e6uqgtvZFTQ1UV0NV1YvKSqioeFFeDmVlL0pLoaQEiotfFBW9KCyEggLIz3+Rlwe5uS9ycl5kZ0NW1ovMzBcZGZCe/iItDVJTX6SkvEhOhqSkF4mJLxISXng8L9zuFy4XOJ0vHI4XdvsLm+2F1frCYgGz+YXJ9MJofGEwvNDrX+h0L7TaFxrNC7X6hUr1Qql8IZe/iI9/ERf3QiZ7IZW+iIl5ER39IjLyRXj4i5CQFxiaAYfo51vEhyiPx+PxeDze9Xmfjrz4EOUFyLc8L/Mdeh+1n/t69gyePiVPnsDjx+TRI3j4EB48IPfvw7175OICzs/h7IycnsLJCTk+fn50BIeH5OAA9vdhbw92d2Fnh9y9C9vbsLVFNjdhYwPW15/fuQNra8zq6vOVFVhehqUlWFyEhQUyPw9zczA7+3xmBqanYWqKTE7CxASMjz8fG4PRURgZgeFhMjQEg4MwMPC8vx/6+qC3F3p6nnd3Q1cXdHZCR8fz9nZoa4PWVmhped7cDE1N0NgIDQ3P6+uhrg5qa6Gm5nl1NVRVQWXl84oKKC9/Xlb2vLQUSkqguPh5UREUFj4vKID8fMjLe56bCzk5z7OzISvreWbm84yM5+npz9PSIDUVUlKeJyc/T0p6npgICQnPPZ7nbvdzl+u50/nc4QC7/bnN9txqfW6xPDebn5tMYDQ+Nxie6/XPdbrnWu1ztRpUqudK5XO5/Hl8/PO4uOcy2XOp9LlE8jw6+nlk5PPw8OchIc8xNAMO0T9uER+iPB6Px+PxeNfnfTry4kOUFyDf8rzMd+h91H7m6+lTePKEPH4Mjx7Bw4fkwQO4fx/u3SMXF3B+Dmdn5PQUTk7g+JgcHcHhIRwckP192NuD3V3Y2YG7d8n2NmxtweYm2diA9XW4c+fZ2hqsrjIrK7C8/GxpCRYXYWGBzM/D3BzMzsLMDExPP5uagslJMjEB4+MwNgajozAy8mx4GIaGyOAgDAxAfz/09UFv77OeHujuhq4u6Ox81tEB7e3Q1gatrc9aWqC5GZqaoLHxWUMD1NdDXR3U1j6rqYHqaqiqgsrKZxUVUF7+rKwMSkuflZRAcfGzoiIoLISCAsjPf5aX9yw3F3JynmVnQ1bWs8xMyMh4lp7+LC0NUlMhJeVZcvKzpKRniYnPEhKeeTzgdj9zuZ45nc8cjmd2O9hsz6zWZxbLM7P5mcn0zGgEg+GZTvdMq32m0TxTq5+pVKBUPpPLn8XHP4uLeyaTPZNKn0kkz6Kjn0VGPgsPfxYS8gxDM+AQfX6L+BDl8Xg8Ho/Huz7v05EXH6K8APmW52W+Q++j9lNfT57A48fk0SN4+BAePCD378O9e3BxQc7P4ewMTk/JyQkcH8PRETk8hIMD2N8ne3uwuws7O3D3Lmxvk60t2NyEjQ2yvg537sDaGqyuwsoKWV6GpSVYXISFBZifJ3NzT2dnYWYGpqdhagomJ2FigoyPPx0bg9FRGBmB4WEYGoLBQTIw8LS/H/r6oLcXenqguxu6uqCz82lHB7S3Q1sbtLY+bWmB5mZoaoLGxqcNDVBfD3V1UFv7tKYGqquhqgoqK59WVEB5OZSVPS0thZKSp8XFUFT0tLAQCgqe5udDXh7k5j7NyYHs7KdZWZCZ+TQj42l6OqSlPU1NhZSUp8nJkJT0NDHxaULCU4/nqdv91OUCp/Opw/HUbn9qs4HV+tRieWo2PzWZnhqNTw2Gp3r9U53uqVb7VKN5qlY/VameKpVPFYqncvnT+PincXFPZbKnUulTieRpdPTTyMin4eFPQ0KeYmgGHKIPbxEfojwej8fj8XjX53068uJDlBcg3/K8zHfofdR+4uvxY/LoETx8CA8ekPv34d49uLgg5+dwdganp+TkBI6P4eiIHB7CwQHs75O9PdjdhZ0dcvcubG/D1hbZ3ISNDVhfJ3fuwNrak9VVWFmB5WWytASLi7CwQObnYW4OZmdhZgamp2FqCiYnYWICxsdhbAxGR2FkBIaHYWgIBgdhYAD6+6GvD3p7oacHuruhqws6O6Gj40l7O7S1QWsrtLQ8aW6GpiZobISGhif19VBXB7W1UFPzpLoaqqqgshIqKp6Ul0NZGZSWPikpgeJiKCp6Ulj4pKAA8vOf5OVBbi7k5DzJzn6SlQWZmU8yMiA9/UlaGqSmQkrKk+TkJ0mDUmi7AABfoElEQVRJkJAAHs8Tt/uJy/XE6QSH44nd/sRmA6v1icXyxGx+YjI9MRqfGAxP9PonOt0TrfaJRvNErX6iUj1RKp8oFE/k8ifx8U/i4p7IZE+k0icSyZPo6CeRkU/Cw5+EhDzB0Aw4RM9uER+iPB6Px+PxeNfnfTry4kOUFyDf8rzMd+h91H7s69Ej8vAhPHgA9++Te/fg4oKcn8PZGZyekpMTOD6GoyNyeAgHB7C/T/b2YHcXdnbI3buwvQ1bW7C5STY2YH0d7twha2uwugorK7C8DEtLZHERFhZgfp7MzcHs7OOZGZiehqkpMjkJExMwPg5jY49HR2FkBIaHydAQDA7CwAD09z/u64PeXujpId3d0NUFnZ3Q0fG4vR3a2qC1FVpaHjc3Q1MTNDZCQ8Pj+nqoq4PaWqipeVxdDVVVUFkJFRWPy8uhrAxKS6Gk5HFxMRQVQWHh44KCx/n5j/PyIDcXcnIgO/txVtbjzEzIyHicng5paY9TUyElBZKTHyclPU5MfJyQ8NjjAbf7scv12Ol87HA8ttvBZgOr9bHF8thsfmwyPTYaHxsMj/X6xzrdY632sUbzWK1+rFI9ViofKxSP5fLH8fGPY2Mfy2SPpdLHEsnj6OjHkZGPw8Mfh4Q8xtAMOET3bxEfojwej8fj8XjX53068uJDlBcg3/K8zHfofdR+5O3hQ+bBg0f378O9e8zFBZyfw9kZOT2FkxM4PiZHR3B4CAcHZH8f9vZgd5fs7MDdu7C9Tba2YHMTNjbI+jrcuQNra2R1FVZWYHkZlpZgcZEsLMD8PMzNkdlZmJl5ND0NU1MwOUkmJmB8HMbGYHQURkZgeBiGhmBwEAYGoL8f+vqgtxd6eqC7G7q6oLMTOjqgvR3a2qC19VFLCzQ3Q1MTNDY+amiA+nqoq4Pa2kc1NVBdDVVVUFn5qKICysuhrAxKSx+VlEBxMRQVQWHho4ICyM9/lJf3KDcXcnIgO/tRVhZkZj7KyHiUng5paZCa+iglBZKTHyUlQWLio4SERx7PI7f7kcsFTucjh+OR3Q422yOr9ZHFAmbzI5PpkdH4yGB4pNc/0ukeabWPNJpHavUjleqRUvlIoXgUH/8oLu5RbOwjmeyRVPpIInkUHf0oMvJRePijkJBHGJoBh+jmLeJDlMfj8Xg8Hu/6vE9HXnyI8gLkW56X+Q69j9oPvT14QO7fh3v34OKCOT+HszM4PSUnJ3B8DEdH5PAQDg5gf5/s7cHuLtnZgbt3YXubbG3B5iZsbJD1dbhzB9bWyOoqWVl5uLwMS0uwuEgWFmB+HubmyOwszMzA9DRMTcHkJExMkPFxGBuD0VEYGYHh4YdDQ2RwEAYGoL8f+vqgtxd6eh52d5OuLujshI4OaG+HtjZobX3Y0gLNzdDUBI2NDxsaoL4e6uqgtvZhTQ1UV0NVFVRWQkXFw/JyKCuD0lIoKXlYXAxFRVBYCAUFD/PzH+blQW4u5OQ8zM6GrKyHmZkPMzIgPf1hWhqkpkJKysPkZEhKepiYCAkJDz2eh273Q5frodMJDsdDux1stodW60OL5aHZDCbTQ6PxocHwUK9/qNM91GofajQP1eqHKtVDpfKhQvEwPv5hXNzD2NiHMtlDqfShRPIwOvphZOTD8PCHISH4v9EMPERXbhEfojwej8fj8XjX53068uJDlBcg3/K8zHfofdR+4O3+fXLvHlxcwPk5c3YGp6fk5ASOj8nRERwewsEB2d+HvT3Y3SU7O+TuXdjehq0tsrkJGxuwvk7u3IG1NVhdJSsrsLwMS0uwuPhgYYGZn4e5uQezs8zMDExPP5iagslJmJgg4+MwNgajo2RkBIaHYWjoweAgDAxAfz/09ZHeXujpge7uB11dpLPzQUcHtLeTtjZobYWWlgfNzdDUBI2N0NDwoL4e6uqgthZqah5UV0NVFVRWQkXFg/JyKCuD0lIoKXlQXAxFRVBYCAUFD/LzIS/vQW4u5ORAdvaDrCzIzHyQkQHp6Q/S0iA19UFKCiQnP0hKepCYCAkJDzwecLsfuFwPnE5wOB7Y7Q9sNrBaH1gsD8zmBybTA6PxgcEAev0Dne6BVvtAo3mgUoFS+UCheBAf/yAu7kFs7AOZ7IFU+kAieRAd/SAy8kF4+IOQkAcYmgGH6Mwt4kOUx+PxeDwe7/q8T0defIjyAuRbnpf5Dr2P2veudnEB5+dwdkZOT8nJCRwfw9EROTyEgwPY3yd7e7C7Czs7zN27ZHsbtrZgc5NsbMD6Oty5Q9bWYHUVVlbI8jIsLcHiIiws3JufZ+bmYHb23swMMz0NU1P3JidhYgLGx8nYGIyOwsgIGR6GoSEYHISBAejvv9fXB729pKcHuruhqws6O6Gj4157O7S1kdZWaGmB5mZoaoLGxnsNDVBfD3V1UFt7r6YGqquhqgoqK6Gi4l55OZSVQWkplJTcKy6GoiIoLISCgnv5+ZCXB7m5kJNzLzsbsrLuZWbey8iA9HRIS7uXmgopKfeSk+8lJUFi4r2EBPB47rnd91wucDrvORxgt9+z2cBqvWex3DOb75lM94zGewYD6PX3tNp7Gs09tfqeSnVPqQSF4l58/L24uHuxsfdksntS6T2J5F509L3IyHvh4fdCQu5haAYcoqO3iA9RHo/H4/F4vOvzPh158SHKC5BveV7mO/Q+al9cdn5Ozs7g9JScnJDjYzg6gsNDcnAA+/uwt0d2d2FnB+7eZba3ydYWbG7CxgZZX4c7d2BtjayuwsoKLC+TpSVYXISFBZifh7k5MjsLMzMwPU2mpmByEiYmYHwcxsbI6CiMjMDwMBkauhgchIEB6O+Hvj7o7YWeHtLdDV1d0NkJHR0X7e3Q1gatraSlBZqboakJGhsvGhqgvh7q6qC29qKmBqqroaoKKiuhogLKy6Gs7KK0FEpKoLgYioouCguhoADy8y/y8iA39yInB7KzISvrIjMTMjIu0tMhLQ1SUyEl5SI5+SIp6SIxERISwOO5cLsvXK4LpxMcDrDbL2y2C6v1wmK5MJvBZLowGi8Mhgu9/kKnu9BqLzSaC7X6QqW6UCovFIoLufwiPv4iLu4iNvZCJruIibmQSC6ioy8iIy/Cwy9CQi4wNAMO0d5bxIcoj8fj8Xg83vV5n468+BDlBci3PC/zHXoftc8vOzsjp6dwckKOj8nRERwekoMD2N+HvT2yuws7O+TuXdjeJltbZHMTNjZgfZ3cuQNra7C6SlZWYHkZlpbI4iIsLMD8PMzNwewsmZmB6WmYmiKTkzAxAePjZGwMRkdhZIQMD8PQEAwOwsAA9PdDXx/09kJPD3R3Q1cX6eyEjg5obz9va4PWVmhpgeZm0tQEjY3Q0HBeXw91dVBbCzU159XVUFUFlZVQUQHl5VBWBqWlUFICxcXnRUVQWAgFBZCff56Xd56bCzk559nZkJUFmZnnGRmQng5paeepqZCScp6cDElJ54mJ5wkJ4PGcu93gcp07necOB9jtYLOdW63nFsu52XxuMoHReG4wnOv15zrduVZ7rtGcq9XnKtW5UnmuUJzL5efx8edxceexsedS6XlMzLlEch4dfR4ZeR4efh4Sco6hGXCItt4iPkR5PB6Px+Pxrs/7dOTFhygvQL7leZnv0PuofXbZ6Sk5OSHHx3B0BIeHzMEB7O/D3h7Z3YWdHbh7l2xvk60tsrkJGxuwvk7u3IG1NVhdJSsrsLwMS0tkcREWFmB+nszNwewszMyQ6WmYmoLJSTIxAePjMDZGRkdhZASGh8nQEAwOng0MQH8/6euD3l7o6YHubujqgs5O0tEB7e1nbW3Q2gotLdDcDE1NpLERGhrO6uuhrg5qa6Gm5qy6GqqqoLISKiqgvJyUlZ2VlkJJCRQXQ1ERFBaeFRRAfj7k5Z3l5p7l5JxlZ0NWFmRmQkbGWXo6pKVBaiqkpJwlJ58lJUFi4llCAng8Z273mcsFTueZwwF2+5nNdma1gsVyZjafmUxnRuOZwXCm14NOd6bVnmk0Z2r1mUp1plSeKRRncvlZfPxZXNxZbOyZVHoWE3MmkZxFR59FRp6Fh5+FhOD/j2fgIVpzi/gQ5fF4PB6Px7s+79ORFx+ivAD5ludlvkPvo/apr5MTcnxMjo7g8BAODpj9fbK3B7u7sLND7t6F7W3Y2mI2N2FjA9bXyZ07sLYGq6tkZYUsL8PSEiwukoUFmJ+HuTkyOwszMzA9TaamYHISJibI+DiMjcHoKBkZgeFhGBoig4MwMHDa30/6+qC3F3p6oLsburqgs5N0dEB7O7S1QWsrtLScNjdDUxNpbISGBqivh7o6qK09ramB6mqoqoLKSqiogPJyKCuD0lIoKYHiYigqOi0shIICyM+HvLzT3FzIyTnNzj7NyoLMTMjIgPT007Q0SE2FlJTT5GRISjpNTDxNSACPB9zuU5fr1Ok8dTjAbgeb7dRqPbVYTs3mU5MJjMZTg+FUrz/V6UCrPdVoTtXqU5XqVKk8VShO5fLTuLjT2NhTmexUKj2NiTmVSE6jo08jIk7Dwk5DQk4xNAMO0eJbxIcoj8fj8Xg83vV5n468+BDlBci3PC/zHXoftU98HR+ToyNyeEgODmB/H/b2mN1d2NmBu3fJ9jZsbZHNTbKxAevr5M4dWFuD1VWyskKWl2FpCRYXycICzM/D3ByZnYWZGZieJlNTMDkJExNkfBzGxmB0lIyMwPAwDA2RwUEYGID+fujrg95e0tMD3d3Q1QWdndDRAe3tpK0NWluhpeWkuRmamqCxkTQ0QH091NVBbe1JTQ1UV0NVFVRWQkUFlJdDWRkpLT0pKYHiYigqgsLCk4ICyM+HvDzIzT3JyTnJzoasLMjMPMnIgPR0SEs7SU2FlJST5GRISoLExJOEhBOPB9xucLlOnM4Th+PEbgebDazWE4vlxGw+MZlOjEYwGE70+hOd7kSrPdFoTtRqUKlOlMoTheJELj+JizuJjT2RyU6k0pOYmBOJ5CQq6iQi4iQs7CQk5ARDM+AQzbxFfIjyeDwej8fjXZ/36ciLD1FegHzL8zLfofdR+/iyoyM4PCQHB2R/H/b2YHeX2dkhd+/C9jZsbZHNTbKxAevrcOcOWVuD1VVYWSHLy8zSEiwuHi8sMPPzMDd3PDvLzMzA9PTx1BQzOQkTE8fj48zYGIyOHo+MMMPDMDQEg4NkYAD6+6GvD3p7oaeHdHcfd3VBZyfp6ID2dmhrI62t0NICzc3HTU3Q2AgNDVBfT+rqoLYWamqOq6uhqgoqK6GiAsrLoayMlJYel5RAcTEUFUFh4XFBAeTnQ14e5OYe5+RAdvZxVhZkZkJGBqSnH6elQWrqcUoKJCcfJyVBYiIkJBx7POB2H7tc4HQeOxzHdjvYbMdWK1gsx2bzscl0bDQeGwzHej3odMda7bFGc6xWH6tUx0olKBTHcvlxXNxxbOyxTHYslR7HxBxLJMdRUccREcdhYcchIccYmgGHqPsW8SHK4/F4PB6Pd33epyMvPkR5AfItz8t8h95H7SNfh4dwcED295m9PdjdhZ0dcvcus719tLUFm5vMxgZZX4c7d2BtjayuwsoKLC+TpSVmcREWFo7m55m5OZidPZqZYaanYWrqaHKSmZiA8fGjsTFmdBRGRmB4mAwNweAgDAyQ/n7o64PeXtLTA93d0NV11NkJHR1Me/tRWxu0tjItLUfNzdDUBI2N0NBwVF8PdXVMbe1RTQ1UV0NVFVRWQkXFUXk5U1YGpaVHJSVQXAxFRVBYeFRQAPn5kJcHublHOTmQnQ1ZWZCZeZSRAenpkJZ2lJp6lJICyclHSUmQmAgJCeDxHLnd4HIdOZ1HDgfY7Uc2G1itRxYLmM1HJtOR0XhkMBzp9Uc6HWi1RxrNkVp9pFIdKZVHCgXI5UdxcUexsUcy2ZFUehQTcxQdfRQVdRQRcRQWdhQScoShGXCIam8RH6I8Ho/H4/F41+d9OvLiQ5QXIN/yvMx36H3UPvR1cAD7+2Rvj+zukp0duHuXbG+TrS3Y3ISNDbK+Tu7cIWtrsLpKVlZgeRmWlsjiIllYgPl5MjcHs7MwM0Omp8nUFExOwsQEGR+HsTEYHSUjIzA8DENDZHAQBgagv5/09UFvL+npge5u6OqCzk7o6ID2dtLWBq2t0NJCmpuhqQkaG6Gh4bC+HurqoLaW1NRAdTVUVUFl5WFFBZSXk7IyKC2FkhIoLoaiosPCQigogPx8yMs7zM2FnBzIzoasLMjMPMzIgPR0SEs7TE2FlJTD5GRISoLExMOEBPB4wO0+dLkOnU5wOA7tdrDZwGo9tFgOzeZDk+nQaASD4VCvP9TpDrXaQ43mUK0GlepQqTxUKA7l8sP4+MO4uMPY2EOZ7FAqPZRIDqOjD6OiDiMiDsPCDkNCDjE0Aw7R28SHKI/H4/F4PN71eZ+OvPgQ5QXItzwv8x16H7UPfO3vw94e2d0lOzvk7l3Y3iZbW2Rzk2xswPo63LlD1tbI6iqsrJDlZVhaIouLZGEB5ufJ3BzMzsLMDJmehqkpMjkJExMwPk7GxmB0FEZGmOFhGBoig4MwMAD9/aSvD3p7oaeHdHdDVxd0dh50dJD2dmhrg9ZW0tICzc3Q1EQaG6GhAerrD+rqoLaW1NRAdTVUVUFlJVRUHJSXQ1kZKS2FkhIoLoaiIigsPCgogPx8yMuD3NyDnBzIzoasLMjMPMjIgPR0SEuD1NSDlBRITj5ISoLEREhIAI/nwO0Gl+vA6TxwOMBuP7DZwGoFi+XAbD4wmQ6MxgODAfT6A53uQKs90GgO1OoDlQqUygOF4kAuP4iPP4iLO4iNPZDJDmJiDiSSg+jog6iog4iIg7Cwg5CQAyzBAENU+/MWCc7Of7vyeDwej8fjXc37dOTFhygvQL7leZnv0Puove9rbw92d8nODrl7l2xvk60t2NwkGxtkfR3u3IG1NbK6SlZWyPIyLC3B4iKzsADz8zA3R2ZnYWYGpqfJ1BSZnCQTEzA+DmNjZHQURkZgeJgMDZHBQRgYIP390NcHvb2kpwe6u6GrCzo7oaMD2ttJWxu0tkJLC2luhqYmaGwkDQ1QX79fVwe1tVBTQ6qroaoKKiuhomK/vBzKyqC0lJSUQHExFBVBYeF+QQHk50NeHuTm7ufkQHY2ZGVBZuZ+Rgakp0NaGqSm7qekQHIyJCVBYuJ+QgJ4POB277tc+04nOBz7djvYbGC17lss+2YzmEz7RuO+wbCv1+/rdPtaLWg0+2r1vkq1r1TuKxT7cjnEx+/Hxe3Hxu7LZPsxMfsSyX509H5U1H5ExH5Y2H5IyD6WYIAh6v55iwRn579deTwej8fj8a7mfTry4kOUFyDf8rzMd+h91N7ztrsLOztw9y6zvU22tsjmJmxswPo6c+cOWVuD1VVYWSHLy2RpCRYXycICmZ8nc3MwO0tmZmB6GqamyOQkmZiA8XEyNgajo2RkBIaHYWiIGRyEgQHo7yd9fdDbCz09pLsburqgsxM6OqC9nbS1QWsrtLSQ5mZoaoLGRtLQAPX1UFcHtbVQUwPV1aSqCior9yoqoLwcysqgtJSUlEBxMRQV7RUWQkEB5OdDXt5ebi7k5EB2NmRlQWYmZGTspadDWhqkpkJKyl5yMiQlQWIiJCTseTzgdu+5XOB07jkce3Y72GxgtYLFsmc275lMe0YjGAx7ev2eTren1YJGs6dW76lUe0rlnkKxJ5dDfPxebOyeTLYnle7FxOxJJHvR0XtRUXsREXthYXshIXtYggGGaObPWyQ4O//tyuPxeDwej3c179ORFx+ivAD5ludlvkPvo/aut50duHsXtrfJ1hazuUk2NmB9He7cIWtrzOoqrKzA8jJZWiKLi2RhAebnydwcmZ2FmRkyPU2mpmByEiYmyPg4jI2R0VEyMgLDwzA0RAYHycAA6e+Hvj7S2ws9PdDdTbq6oLMTOjqgvR3a2qC1lbS0QHMzaWqCxkZoaCD19VBXB7W1UFMD1dVQVQWVlVBRAeXlUFYGpaVQUkKKi6GoCAoLdwsKID8f8vIgN3c3Jweys0lW1m5mJmRkQHo6pKXtpqZCSgokJ0NS0m5iIiQkgMez63aDy7XrdILDsWu3g822a7WCxQJm867JtGs07hoMoNfv6nS7Wi1oNLtq9a5KtatU7ioUu3I5xMfvxsbuymS7UuluTMyuRLIbHb0bFbUbEbEbFrYbErKLJRhgiBb/vEWCs/Pfrjwej8fj8XhX8z4defEhyguQb3le5jv0PmrveLt7F7a3YWuLbG4yGxtkfR3u3IG1NbK6yqyskOVlWFqCxUWysEDm52FujszOkpkZMj1NpqZgchImJsj4OIyNwegoGRlhhodhaGhncJAZGCD9/dDXB729pKcHuruhq4t0dkJHB7S3k7Y2aG2FlhbS3AxNTdDYSBoaoL4e6upIbS3U1EB1NVRVQWUlVFRAeTmUlUFpKZSUkOJiKCqCwsKdggLIz4e8PMjN3cnJgexskpUFmZmQkbGTng5paZCaCikpO8nJkJQEiYmQkLDj8YDbveNy7Tid4HCA3b5js4HVChbLjtkMJtOO0bhjMIBev6PT7Wi1oNHsqNU7KtWOUrmjUOzI5RAfvxMbuyOT7UilOzExOxLJTnT0TlTUTkTETljYTkjIDpZggCFa8/MWCc7Of7vyeDwej8fjXc37dOTFhygvQL7leZnv0Puove1raws2N5mNDbK+zty5s722BqurzMoKWV5mlpZgcXF7YYGZnydzczA7CzMzZHqamZoik5MwMQHj42RsDEZHYWSEDA8zQ0MwOAgDA6S/n/T1QW8v9PQw3d3bXV3Q2cl0dGy3t0NbG9Paut3SAs3NTFPTdmMjNDQw9fXbdXVQW8vU1GxXV0NVFVRWQkUFKS+HsjIoLYWSku3iYqaoCAoLtwsKID8f8vIgN3c7JweysyEri2RmQkYGpKdDWtp2aiqkpEByMiQlQWLidkICeDzbbve2ywVO57bDAXY72GxgtW5bLGA2b5tMYDRuGwzbej3odNtaLWg022r1tkq1rVRuKxTbcjnEx2/Hxm7LZNtS6XZMzLZEsh0dvR0VtR0RsR0Wth0Sso0lGGCItv68RYKz89+uPB6Px+PxeFfzPh158SHKC5BveV7mO/Q+am/52tyEjQ2yvk7u3GHW1mB1FVZWyPIyWVpiFhdhYQHm58ncHDM7CzMzMD3NTE3B5CQzMQHj4zA2xoyObo2MwPAwMzREBgdhYAD6+0lfH9Pbu9XTA93dTFcXdHZudXQw7e3Q1gatraSlBZqboamJNDZCQwPU15O6OqithZoaUl0NVVVQWQkVFVBeDmVlpLR0q6QEiotJUREUFkJBAeTnQ17eVm4u5ORAdjZkZZHMTMjIgPR0SEvbSk2FlBRIToakJEhM3EpIAI9ny+0Gl2vL6QSHA+z2LZsNrFawWMBs3jKZtozGLYMB9HrQ6ba02i2NZkut3lKpQKncUii25PKt+PituLit2NgtmWxLKt2KidmSSLaio7eiorYiIrbCwrZCQrawBAMM0d6ft0hwdv7blcfj8Xg8Hu9q3qcjLz5EeQHyLc/LfIfeR+1NXxsbsL5O7twha2vM6ipZWYHlZVhaIouLzMICmZ+HuTmYnWVmZmB6mkxNkclJmJhgxsdhbIyMjpKRERgehqEhMjjIDAxs9veTvj7S20t6eqC7G7q6SGcndHRAeztpayOtrdDSAs3NpKkJGhuhoYHU10NdHdTWkpoaqK6GqipSWQkVFVBeDmVlUFpKSko2i4uhqIgpLNwsKID8fMjLg9zczZwcyM4mWVmQmQkZGZCeDmlpm6mpkJICycmQlASJiZsJCeDxgNu96XKB07npcIDdDjYbWK2bFguYzWAybRqNmwbDpl4POh1otZsazaZavalSbSqVoFBsyuWb8fGbcXGbsbGbMtmmVLoZE7MpkWxGR29GRW1GRGyGhW2GhGxiCQYYoqM/b5Hg7Py3K4/H4/F4PN7VvE9HXnyI8gLkW56X+Q69j9obvtbX4c4dsrZGVleZlRWyvAxLS7C4SBYWmPl5MjcHs7MwM0Omp8nUFDM5CRMTMD5OxsaY0VEyMgLDwzA0RAYHycAA6e+Hvj7o7WV6eqC7G7q6SGcndHRAeztpayOtraSlBZqboamJNDZCQwPU15O6OqithZoaUl0NVVVQWUkqKqC8fKOsDEpLSUkJFBdDUREUFpKCAsjPh7w8yM3dyMmB7GzIyiKZmZCRAenpkJa2kZoKKSmQnAxJSZCYuJGQAB4PuN0bLhc4neBwgN2+YbOB1QoWC5jNGybThtEIBsOGXg863YZWu6HRgFq9oVJtKJUbCsWGXA7x8RtxcRuxsRsy2YZUuhETsyGRbERHb0RFbUREbISFbYSEbGAJBhiiMz9vkeDs/Lcrj8fj8Xg83tW8T0defIjyAuRbnpf5Dr2P2uve7tyBtTVYXWVWVsjyMrO0RBYXYWEB5ufJ3BwzO0tmZmB6mkxNkclJMjFBxsdhbIyMjpKRETI8TIaGYHCQDAyQ/n7S1we9vdDTQ7q7SVcXdHaSjg5ob4e2NtLaSlpaSHMzNDVBYyNpaID6elJXB7W1UFNDqquhqgoqK0lFBZSXQ1kZlJZCSQkpLoaiIigsJAUFkJ8PeXnrubmQkwPZ2ZCVRTIzISMD0tMhLW09NRVSUiA5GZKSIDFxPSEBPB5wu8HlWnc6weEAux1sNrBa1y0WMJvBZFo3GtcNhnW9HnQ60GrXNZp1tRpUqnWlcl2hWJfL1+PjIS5uPTZ2XSZbl0rXY2LWJZL16Oj1qKj1iIj1sLD1kJB1LMEAQ3Tl5y0SnJ3/duXxeDwej8e7mvfpyIsPUV6AfMvzMt+h91F77bLVVVhZYZaXydISs7hIFhZgfh7m5sjsLDMzQ6anYWqKTE6SiQkyPk7GxmB0lIyMkOFhMjREBgdhYIDp74e+PtLbCz09pLubdHVBZyfp6CDt7dDWBq2tpKWFNDdDUxM0NpKGBlJfD3V1pLYWamqguppUVUFlJVRUkPJyKCuD0lIoKYHiYlJUBIWFUFBA8vMhLw9yc9dyciA7m2RlQWYmZGRAejqkpa2lpkJKCklOXktKgsRESEgAj2fN7QaXC5xOcDjW7Haw2cBqBYsFzOY1kwmMxjWDYU2vB51uTasFjWZNrV5TqdaUSlAo1uTytfh4iItbi41dk8nWpNK1mJg1iWQtOnotMnItPHwtLGwtJGQNSzDAEN36eYsEZ+e/XXk8Ho/H4/Gu5n068uJDlBcg3/K8zHfofdRe9bWyQpaXmaUlsrjILCyQ+XmYm4PZWTIzw0xPk6kpMjlJJiZgfJyMjZHRUTIyQoaHYWiIDA6SgQHS30/6+khvL/T0QHc309UFnZ3Q0UHa20lbG7S2QksL09xMmpqgsREaGkh9Pamrg9paqKkh1dVQVQWVlaSiAsrLoayMlJZCSQkUF5OiIigshIICkp8PeXmQm7uakwPZ2SQrCzIzISMD0tMhLW01NRVSUkhyMiQlQWLiakICeDzgdoPLBU7nqsMBdjvYbGC1rlosYDaDybRqNILBsKrXr+p0oNWuajSgVq+qVKtKJSgUq3L5anw8xMWtxsauymSrUumqRLIaHb0aFbUaGbkaHr4aFrYaErKKJRhgiO7/vEWCs/Pfrjwej8fj8XhX8z4defEhyguQb3le5jv0PmovX21piVlcJAsLzPw8mZuD2VmYmSHT08zUFJmcZCYmyPg4jI3B6CgZGWGGh8nQEAwOwsAA6e9n+vqY3t7lnh7o7ma6ukhnJ3R0QHs7aWtjWluXW1qguZlpaiKNjdDQAPX1pK6Oqa1drqmB6mqmqgoqK5crKpjycigrWy4tZUpKoLh4uaiIKSyEgoLl/HwmLw9yc5dzciA7G7KySGYmZGRAejqkpS2npkJKCiQnk6QkSEyEhATweMDtXna5wOkEhwPs9mWbDaxWsFjAbF42mcBoXDYYQK9f1umWtVrQaJbValCplpXKZYUC5PLl+HiIi1uWyZal0uWYmGWJZDk6ejkqajkycjk8fDksbDkkZBlLMMAQPft5iwRn579deTwej8fj8a7mfTry4kOUFyDf8rzMd+h91F662uIiWVhg5ufJ3BwzOwszMzA9TaamyOQkMzFBxseZsTEYHYWREWZ4GIaGmMFBGBiA/n6mr4/09pKeHujuhq4uprOTdHRAezu0tZHWVqalBZqbl5qamMZG0tAA9fWkrg5qa5maGqiuXqqqYioroaICystJWRmUlkJJCSkuhqIiKCwkBQWQnw95eSQ3F3JyIDsbsrIgM5NkZEB6OqSlLaWmQkoKJCeTpCRITISEBPB4wO1ecrnA6QSHA+x2sNnAal2yWMBsBpNpyWgEg2FJr1/S6UCrBY1mSa1eUqmWlEpQKEAuX4qPX4qLW4qNXZLJlqTSpZiYJYlkKTp6KSpqKTJyKTx8KSxsKSRkCUswwBB9+PMWCc7Of7vyeDwej8fjXc37dOTFhygvQL7leZnv0PuovXi1hQUyP8/MzZHZWWZmBqanYWqKTE6SiQlmfJyMjTGjozAyQoaHydAQGRwkAwPQ30/6+pjeXtLTA93d0NVFOjuZjg7S3g5tbdDaSlpaSHMzNDVBYyPT0EDq66GujtTWQk0Nqa6GqiqorCQVFaS8HMrKoLSUlJRAcTEpKoLCQigoIPn5kJcHubkkJweysyErCzIzSUYGpKdDWtpiaiqkpJDkZEhKgsRESEgAjwfc7kWXC5xOcDjAbgebDaxWsFjAbF40mcBoXDQYFvV60OkWtVrQaECtXlSpFpXKRYUC5HKIj1+Mi1uMjV2UyRal0sWYmEWJZDE6ejEqajEycjE8fDEsbDEkZBFLMMAQff7zFgnO7vtVy3Ecx3Ecx13FhygvQN5rgx6o/8x36H3UXrhsfp6ZmyOzs8zMDJmeZqamYHISJibI+DgZG2NGR5mRETI8TIaGYHCQDAyQ/n7S10d6e0lPD+nuhq4u0tlJOjpIeztpa4PWVtLSQpqboakJGhtJQwNTX0/q6qC2FmpqSHU1qaqCykqoqCDl5aSsDEpLoaSEFBdDUREUFpKCAsjPh7w8kpsLOTmQnU2ysiAzEzIySHo6pKUtpKZCSgokJ5OkJEhMhIQE8HjA7QaXa8HpBIcD7HZis4HVumCxgNkMJtOC0bhgMIBev6DTgVYLGs2CWr2gUoFSuaBQgFy+EB8PcXELsbELMtmCVLoQE7MgkSxERy9ERS1ERi6Ehy+EhS2EhCxgCQYYon/8vEU3n53H4/F4PB6Px4coL3DXDdF5X3NzZHaWmZkh09PM1BSZnCQTEzA+DmNjzOgoGRlhhoeZoSEyOEgGBqC/n/T1kd5e0tPDdHeTri7o7ISODqa9nbS1kdZWaGmB5mamqQkaG6GhgdTXk7o6prYWamqguppUVZHKSqiogPJypqwMSkuhpIQUF0NRERQWkoICyM+HvDySmws5OZCdTbKySGbmfEYGSU8naWnzqamQkgLJySQpCRITISEBPB5wu+ddLnA6weEAu53YbGC1gsUybzaDyTRvNILBMK/Xg043r9WCRgNq9bxKBUrlvEIxL5dDfPx8XNx8bCzIZPNS6XxMzLxEMh8dPR8VNR8ZOR8ePh8WNh8SMo8lGGCIfv55i24+O4/H4/nt//g//g/6mzj/zuPxeH9XfIjyAnfdEJ3zNTtLZmaY6WkyNcVMTpKJCTI+DmNjMDrKjIyQ4WFmaIgMDjIDA6S/H/r6mN5e6Okh3d2kq4vp7ISODtLezrS1QWsraWmB5mbS1MQ0NkJDA9TXk7o6UlvL1NRAdTVUVZHKSqioIOXlUFZGSktJSQkUF5OiIigshIICJj9/Li8PcnOZnJy57GzIymIyM+cyMiA9nUlLm0tNhZQUkpwMSUmQmAgJCeDxgNsNLhc4nXMOB9jtYLMRqxUsljmzGUwmMBrnDAbQ6+d0OtBqQaMBtXpOpZpTKkGhmJPLIT5+Li5uLjZ2Tiabk0ohJmZOIpmLjp6LipqLjJwLD58LC5sLCZnDEgwwRL//vEU3n53H4/Gu63d24L+Ev/N4PN7fHh+ivMBdN0Rnfc3MkOlpZmqKTE4yExNkfBzGxmB0lIyMMMPDZGiIGRwkAwNMfz/p6yO9vaSnh3R3Q1cX6exkOjqgvZ1payOtraSlBZqbSVMTaWxkGhpm6+uhro6prSU1NUx19WxVFVRWMhUVUF5OysqgtJSUlJDiYigqgsJCUlBA8vMhLw9yc0lODmRnQ1YWycyEjAxITydpaZCaCikpJDkZkpIgMRESEsDjAbcbXC5wOsHhALsdbDawWsFiAbN51mQCo3HWYAC9HnQ60GpnNRpQq0GlmlUqQaGYlctn4+Nn4+IgNnZWJpuVSmdjYiA6GqKiZiMjZ8PDZ8PCZkNCZrEEAwzR//PnLbr57Dwej8fj8Xg8PkR5gbtuiM54m54mU1PM5CSZmGDGx8nYGIyOwsgIGR5mhoaYwUEyMMD095O+Pqa3l/T0MN3dM11d0NnJdHSQ9namrY20tjItLTPNzdDUxDQ2koYGpr5+pq4OamuZmhpSXc1UVUFl5UxFBVNeTsrKoLQUSkpIcTFTVASFhTMFBUx+PsnLg9xcyMkh2dmQlQWZmSQjA9LTIS2NpKZCSgokJ5OkJEhMhIQE8HjA7SYuFzid4HDM2O1gs4HVChbLjNkMJhMYjWAwzOj1oNOBVgsazYxaDSoVKJWgUMzI5TPx8TNxcTOxsSCTzUilMzExMxLJTHT0TFQUREbOhIfPhIXNhITMYAkGGKL/6uctEpydbiTR9v8Vf/9v8Xch/nBjiLyfP0XP+5+D6P2D6AmPxUh4LELCC0t8Lv7hp9jxIcoL3HVDdMrX5CQzMUHGx5mxMWZ0FEZGyPAwGRoig4PMwADp72f6+khvL9PTQ7q7ma4u6OyEjg6mvZ20tZHWVtLSwjQ3Q1MTNDYyDQ2kvp6pq4Pa2qmaGqa6mlRVMZWVUFEB5eWkrIyUlpKSEiguJkVFpLAQCgpIfj7Jy4PcXJKTA9nZJCsLMjMhI4Okp0NaGqSmkpQUSE6GpCSSmAgJCeDxgNsNLhdxOsHhmLLbic02ZbWCxQJmM5hMU0YjGAyg14NON6XVgkYDajWoVFNKJSgUU3I5xMdPxcVNxcZOyWQglU7FxExJJFPR0VNRUVORkRAePhUaOhUSMoUnxgBD9F//vEWCs9ONJNpozIk5GnNizrflRB1uDJEnGHVidOUhVrSEe0J8hMdiJDwWIeGFJT6CUSdGfIjyAnfdEJ30NTFBxseZsTEyOsqMjJDhYRgaYgYHycAA099P+vqY3l7S08N0d5OuLqazEzo6SHs709ZGWluhpYU0NzNNTaSxERoamPp6UldHamuhpgaqq5mqKlJZSSoqSHk5lJWR0lJSUkKKi6GoCAoLmYICyM9n8vIgNxdyckh2NmRlQWYmycgg6emQlgapqSQlBZKTISmJJCZCQgJ4POB2g8tFnE5wOCbtdmKzgdUKFsuk2QwmExiNYDBM6vWg04FWCxrNpFoNKhUolaBQTMrlk/HxEBc3GRs7KZOBVDoZEzMpkUxGR09GRU1GRk5GREyGh0+Ghk6GhEziiTHAEP03P2+R4Ozem0jU0ZgTczTmxJxvy4k63BgiTzDqxOjKQ6xoCfeE+AiPxUh4LELCC0t8BKNOjPgQ5QXuuiE6frWxMWZ0lIyMMMPDZGiIDA4yAwOkv5/p6yO9vUxPD+nuZrq6SGcn09FB2ttJWxvT2gotLdDcTJqamMZG0tBA6uuZujpSW0tqasarq0lVFVNZSSoqSHk5KSuD0lJSUkKKi6GoiBQWQkEByc9n8vIgN5fk5EB2NmRlkcxMyMgg6ekkLQ1SUyElhSQnQ1ISJCaShATweMDtJi4XOJ3gcIDdDjYbWK1gsYDZDCbTuNEIBgPo9aDTjWu1oNGAWg0q1bhSCQoFyOXj8fHjcXHjsbEgk4FUOh4TMy6RjEdHj0dFjUdGjkdEjIeFjYeGjoeEjOOJMcAQ/bc/b5Hg7HQjiTYac2KOxpyY8205UYcbQ+QJRp0YXXmIFS3hnhAf4bEYCY9FSHhhiY9g1IkRH6K8wF03RMd8jY6SkRFmeJgZGiKDg8zAAOnvZ/r6SG8v09NDuruZri7S2cl0dJD2dqatjbS2Mi0tpLkZmpqgsZFpaCD19UxdHamtJTU1pLoaqqpIZSVTUUHKy5myMigthZISUlxMiopIYSEUFJD8fJKXR3JzSU4OZGdDVhbJzISMDJKeTtLSIDUVUlJIcjJJSoLEREhIIB4PuN3gchGnExyOMbsdbDZitYLFAmYzmExgNILBMKbXg04HWi1oNGNqNahUoFSCQjEml0N8/Fhc3FhsLMhkIJWOxcSMSSRj0dFjUVFjkZFjERFjYWFjoaFjISFjeGIMMET/3c9bJDg73UiijcacmKMxJ+Z8W07U4cYQeYJRJ0ZXHmJFS7gnxEd4LEbCYxESXljiIxh1YsSHKC9w1w3RUV8jI2R4mBkaIoODzMAA6e9n+vpIby/T00O6u5muLtLZyXR0kPZ2pq2NtLYyLS2kuZlpaoLGRtLQwNTXk7o6prYWampIdTWpqiKVlaSigpSXM2VlpLQUSkqguJgUFTGFhVBQQPLzSV4eyc0lOTmQnU2ysiAzEzIySHo6SUsjqamQkgLJyUxSEiQmjiYkMB4PuN2jLhfjdILDMWq3E5sNrFawWMBsBpMJjEYwGECvB51uVKsFjQbUalCpQKkcVShALh+Nj4e4uNHYWJDJRqXS0ZgYkEhGo6NHo6JGIyNHIyJGw8JGQ0NHQ0JG8cQYYIj++5+3SHB2upFEG405MUdjTsz5tpyow40h8gSjToyuPMSKlnBPiI/wWIyExyIkvLDE5+qiEyk+RHmBu26IjvgaHiZDQ8zgIBkYYPr7SV8f09tLenqY7m7S1cV0dpKODqa9nbS1Ma2tpKWFaW4mTU1MYyNpaCD19UxdHamtZWpqoLoaqqpIZSWpqGDKy0lZGVNaSkpKoLgYiopIYSFTUAD5+UxeHuTmQk4Ok51NsrIgMxMyMkh6OklLg9RUSEkhyckkKYkkJo4kJBCPh7jd4HKB00kcDrDbwWYDqxUsFjCbwWQCo5EYDKDXj+h0oNWCRgNq9YhKBUolKBQgl4/Ex0Nc3Ehs7IhMBlLpSEzMiEQCUVEQGTkSETESFjYSGjoSEjKCJ8YAQ/Q//LxFgrPTjSTaaMyJORpzYs635UQdbgyRJxh1YnTlIVa0hHtCfITHYiQ8FiHhhSU+glEnRnyI8gJ33RAd9jY0xAwOkoEBpr+f9PUxvb2kp4fp7iZdXUxnJ+noYNrbSVsb09pKWlqY5mbS1MQ0NpKGBqa+ntTVMbW1pKaGqa6GqqrhykqmooKUlzNlZaS0lCkpIcXFUFQEhYWkoIDJzyd5eUxuLuTkQHY2ycoimZmQkQHp6UxaGklNhZQUSE4mSUlMYuJwQgJ4PIzbPexygdPJOBzDdjvYbIzVOmyxgNkMJhMYjcRgAL0edLphrRY0GlCrQaUaVipBoQC5HOLjh+PiIDZ2WCYDqXQ4JmZYIhmOjh6OihqOjISIiOGwsOHQ0OGQkGE8MQYYov/x5y0SnJ1uJNFGY07M0ZgTc74tJ+pwY4g8wagToysPsaIl3BPiIzwWI+GxCAkvLPERjDox4kOUF7jrhujgZQMDpL//F319pLeX6ekh3d1MVxfp7GQ6Okh7O9PWRlpbmZYWprmZNDUxjY2koYGpryd1dUxtLampYaqrSVUVVFZCRQVTXs6UlZHSUqakhBQXk6IiKCyEggImP5/k5TG5uSQnB7KzISuLZGYyGRmQng5paUxqKklJgeRkSEoiiYkkIQE8HnC7icsFTic4HMRuJzYbWK1gsRCzedBkAqORGAyg14NOB1otaDSDajWoVKBUgkIxKJdDfDzExUFs7KBMNiiVQkzMoEQyGB09GBU1GBkJERGDYWGDoaGDISGDeGIMMET/089bJDg73UiijcacmKMxJ+YuxB9uDJEnGHVidOUhVrSEe0J8hMdiJDwWIeGFJT6CUSdGfIjyAnfdEB3w1d9P+vp+0dvL9PQw3d2kq4vp7CQdHUx7O2lrY1pbSUsL09xMmpqYxkbS0MDU1zN1daS2lqmpIdXVTFUVqawkFRVQXs6UlZHSUqakhBQXM0VFpLAQCgogP5/k5TG5uUxODsnOhqwsyMwkGRkkPZ2kpZHUVCYlZSA5GZKSmMREkpAAHg+43cTlAqcTHA5itxObDaxWsFiI2QwmExiNYDCAXg86HWi1oNGAWg0q1YBSCQoFyOUQHz8QFwexsSCTDUilEBMzIJEMREcPREUNREZCRMRAWNhAaOhASMgAnhgDDNH//PMWCc5ON5JoozEn5mjMiTnflhN1uDFEnmDUidGVh1jREu4J8REei5HwWISEF5b4CEadGPEhygvcdUO072q9vUxPj1B3N9PVRTo7mY4O0t7OtLWR1lampYU0NzNNTaSxkWloIPX1TF0dqa1lampIdTVTVUUqK5mKClJeTsrKmNJSUlLCFBeToiKmsBAKCiA/n+TlkdxcJieHZGczWVmQmQkZGSQ9naSlkdRUJiUFkpMhKYkkJpKEBOLxgNsNLhdxOsHhALudsdnAagWLhZjNYDKB0QgGA+j1oNMRrRY0mj61GlQqUCpBoeiTyyE+HuLiIDa2TyYDqRRiYvokkr7o6L6oqL7ISIiI6AsL6wsN7QsJ6cMTY4Ah+l9+3iLB2elGEm005sQcjTkx59tyog43hsgTjDoxuvIQK1rCPSE+wmMxEh6LkPDCEh/BqBMjPkR5gbtuiPb66ulhuruFurqYzk7S0cG0t5O2Nqa1lWlpIc3NTFMTaWxkGhpIfT1TV0dqa5maGlJdzVRVMZWVTEUFKS9nyspIaSlTUkKKi5miIlJYSAoKSH4+5OWR3FySk8NkZ5OsLCYzEzIyID2dpKUxqakkJYUkJ5OkJEhMJAkJxOMBtxtcLsbpBIcD7HZisxGrFSwWMJuJyQRGIxgMoNeDTke0WtBoQK0GlapXqQSFAuRyiI/vjYuD2FiQyUAqhZiYXomkNzq6NyqqNzISIiJ6w8J6Q0N7Q0J68cQYYIj+15+3SHB2upFEG405MUdjTsz5tpyow40h8gSjToyuPMSKlnBPiI/wWIyExyIkvLDERzDqxIgPUV7grhui3YK6uoQ6O5mODtLezrS1kdbWX7S0kOZmpqmJaWwkDQ1MfT2pq2Nqa0lNDVNdTaqqmMpKpqKCKS9nyspIaSlTUkKKi5miIlJYyBQUkPx8yMuD3FySk8NkZzNZWSQzk8nIgPR0SEtjUlNJSgpJTiZJSSQxERISiMdD3G5wucDpZBwOsNvBZiNWK7FYwGwGk4kYjWAwgF4POh3RakGjAbUaVCpQKkGhALm8Oz4e4uIgNhZksm6pFGJiuiUSiI7ujorqjoyEiIjusLDu0NDukJBuPDEGGKL/7ectEpydbiTRRmNOzNGYE3O+LSfqcGOIPMGoE6MrD7GiJdwT4iM8FiPhsQgJLyzxEYw6MeJDlBe464Zol6DOzl90dDDt7aStjWltJS0tQs3NpKmJaWxkGhpIfT1TV0dqa5maGlJdzVRVkcpKpqJCqLyclJUxpaWkpIQpLiZFRUxhISkoYPLzIS8PcnNJTg7JzmayskhmJpORQdLTSVoaSU1lUlIgORmSkpjERJKQQDwecLvB5SJOJ3E4iN1ObDawWonFAmYzmEzEaASDAfR60OmIVgsaDajVRKUCpbJLoQC5HOLjIS6uKzYWZDKQSiEmpksigejorqiorshIiIjoCgvrCg3tCgnpwhNjgCH633/eIsHZ6UYSbTTmxByNOTHn23KiDjeGyBOMOjG68hArWsI9IT7CYzESHouQ8MISH8GoEyM+RHmBu26Idgrq6CDt7UxbG2ltZVpaSHOzH01NTGMjaWhg6utJXR1TW0tqapjqalJVxVRWMhUVpLzcj7IyUlrKlJSQ4mKmqIgpLCQFBUx+PsnLg9xcyMkh2dlMVhbJzGQyMkh6OpOWRlJTmZQUkpwMSUmQmEgSEhiPh7jd4HKB00kcDsZuJzYbWK1gsRCzGUwmMBqJwQB6Peh0RKsFjQbUaqJSgVIJCkWnXA7x8RAXB7GxIJN1SqUQEwMSCURHd0ZFdUZGQkREZ1hYZ2hoZ0hIJ54YAwzR//HzFgnOTjeSaPNtOVFHY07M+bacqMONIfIEo06MrjzEipZwT4iP8FiMhMciJLywxEcw6sSID1Fe4K4bou1/ra2NaW0lLS2/aG4mTU1MY6NQQwOpr/9FXR1TW0tqapjqalJVxVRWkooKprycKSv7RWnpL0pKSHExU1RECguZggKSn8/k5ZHcXMjJIdnZJCuLycwkGRlMejpJS2NSU0lKCpOcTJKSIDGRJCQQj4dxu8HlAqeTOBzEbmdsNmK1gsUCZjMxmcBoJAYD6PWg0xGtFjQaUKuJSgVKJSgUIJdDfHx7XBzExoJMBlJpe0wMSCQQHQ1RUe2Rke0REe3h4e1hYe2hoe0hIe14YgwwRP/nz1skODvdSKKNxpyYozEn5nxbTtThxhB5glEnRlceYkVLuCfER3gsRsJjERJeWOIjGHVixIcoL3DXDdE2Qa2tTEsLaW7+RVMT09jINDT8or6e1NX9orb2FzU1pLqaqaoilZVMRQUpL2fKyn5RWvqLkhKmuJgUFTGFhaSggMnPJ3l5TG4uyckh2dkkK4tkZjIZGSQ9nUlLI6mpTEoKSU5mkpJIYiIkJDAeD3G7icsFTic4HIzdTmw2xmoFi6XNbGZMJjAaicEAej3odESrBY0G1GqiUoFSCQoFyOUQHw9xcRAb2yaTgVQKMTEgkbRFR0NUFERGtkVEtIWHt4WFtYWGtoWEtOGJMcAQ/b9/3iLB2elGEm005sQcjTkx59tyog43hsgTjDoxuvIQK1rCPSE+wmMxEh6LkPDCEh/BqBMjPkR5gbtuiLZeraWFaW4mTU1MY6NQQwNTX8/U1ZHaWqamRqi6mqmqIpWVTEUFKS9nyspIaakfJSVMcTFTVEQKC5mCApKfz+TlkdxcJieHZGeTrCySmclkZJD0dCYtjaSmMikpTHIySUpiEhNJQgLxeIjbTVwucDqJw0HsdmKzMVYrsVjAbAaTiRiNxGAAvR50OqLVgkYDajVRqUCpBIWCyOUQH98aFwexsSCTgVTaGhMDEglER0NUVGtkJEREtIaHt4aFtYaGtoaEtOKJMcAQ/X9+3iLB2elGEm005sQcjTkx59tyog43hsgTjDoxuvIQK1rCPSE+wmMxEh6LkPDCEh/BqBMjPkR5gbtuiLZ4a25mmpqYxkbS0OBHfT1TV0dqa5maGqa6WqiqiqmsZCoqmPJyUlbGlJaSkhI/iouZoiJSWMgUFJD8fCYvj+TmMjk5THY2ycpiMjNJRgaTnk7S0pjUVJKSwiQnk6QkJjGRJCQwHg9xuxmXC5xO4nAQu53YbIzVSiwWMJvBZCJGI2MwgF4POh3RakGjAbWaqFSgVIJCQeRyiI+HuDiIjQWZrEUqhZgYkEggOrolKgoiI1siIiA8vCUsrCU0tMV7ZeKJMcAQ/fn/3CLB2elGEm005sQcjTkx59tyog43hsgTjDoxuvIQK1rCPSE+wmMxEh6LkPDCEh/BqBMjPkR5gbtuiDZdrbGRaWgg9fVMXZ0ftbWkpoaprv5FVdUvKiuZigpSXv6LsjKmtJSUlDDFxX4UFZHCQqaggOTnM3l5JDf3Fzk5THY2k5VFMjOZjAySns6kpZHUVCYlhSQnM0lJJDGRSUggHg/jdhOXi3E6weEAu52x2RirlVgsxGwGkwmMRsZgIHo96HREqwWNBtRqolIRpRIUCpDLSXw8xMU1xcaCTAZSKcTEgEQC0dFNUVEQGdkUEQHh4U1hYU2hoU3eKxNPjIGG6P99iwRnpxtJtNGYE3M05sScb8uJOtwYIk8w6sToykOsaAn3hPgIj8VIeCxCwgtLfASjToz4EOUF7roh2uitoUGovp7U1TG1tX7U1JDqaqaqSqiykqmoYMrLmbKyX5SWMiUlpLiYKSryo7CQFBQw+fkkL4/JzSU5OULZ2UxWFsnMZDIySHo6k5ZGUlOZlBSSnMwkJZHERCYhgXg8jNtNXC7G6SQOB7Hbic3GWK3EYmHMZjCZwGgkBgOj14NOR7Ra0GhArSYqFVEqQaEAuZzEx0NcHMTGgkzWKJWSmBiQSCA6ujEqCiIjGyMiIDy8MSysMTS00Xtl4okx0BD9n7dIcHa6kUQbjTkxR2NOzPm2nKjDjSHyBKNOjK48xIqWcE+Ij/BYjITHIiS8sMRHMOrEiA9RXuCuG6L1gurqmNpaUlPjR3U1U1VFKiv9qKhgystJWRlTWupHSQkpLmaKikhhoR8FBUx+PsnLY3JzSU4Ok53tR1YWycxkMjJIejqTlkZSU5mUFJKczCQlkcREJiGBeDyM201cLsbpJA4HY7cTm42xWonFwpjNxGQCoxEMBqLXMzod0WpBowG1mqhUjFJZr1CAXM7Ex0NcXH1sLMhkIJWSmBiQSCA6uj4qCiIj6yMiIDy8PiysPjS03ntl4okx0BD9H7dIcHa6kUQbjTkxR2NOzPm2nKjDjSHyBKNOjK48xIqWcE+Ij/BYjITHIiS8sMRHMOrEiA9RXuCuG6K1f62mhqmuZqqq/KisJBUVTHm5H2VlpLT0FyUlpLhYqKjoF4WFpKCAyc/3Iy+P5OYyOTkkO5vJyhLKzGQyMpj0dJKW9ovUVJKSwiQnk6QkJjGRJCQwHg9xuxmXi3E6GYeD2O2MzUasVsZiYcxmYjKB0QgGA9HrGZ2OaLVEowG1mqhURKkEhYLI5RAfD3FxJDa2ViYDqZTExIBEAtHREBUFkZG1EREQHl4bFlYbGlrrvTLxxBhoiP73WyQ4O91Ioo3GnJijMSfmfFtO1OHGEHmCUSdGVx5iRUu4J8RHeCxGwmMREl5Y4iMYdWLEhygvcNcN0ZrLqquFqqpIZaUfFRVMefkvysqESktJSckviouZoqJfFBb+oqCAyc9n8vKEcnOZnBwmO5tkZTGZmUIZGUx6OpOWRlJThVJSSHIyk5REEhOZhATi8TBuN3G5GKfzFw4HY7cTm42xWonFwpjNxGQiRiMYDKDXMzod0WoZjQbUaqJSgVJJFAoil0N8PImLg9hYkMlAKoWYGCKRQHR0TVQUREZCRERNeDiEhdWEhtZ4r0w8MQYaov/tFgnOTjdSsMNproleEaRozAU7eq/+olcELxpzwY7err/oFcHLt+WCHr1df9Erghf9XDF3ddEF0Q0JXvn7/nx8Db4bErwyCNiSCKYbErzy9wmPg+WGBK/8fcLjYLkhwSt/m/DCCpIbErzyt11ddEFE79Zfglf+Pj5EeYG7bohWe6uq8qOyklRU+FFezpSVMaWlfpSUkOJipqhIqLCQKShg8vOF8vKY3FwmJ0coO5vJyiKZmUxGhh/p6SQtjUlNJSkpfiQnk6QkJjGRJCQwHg9xuxmXizidjMMhZLcTm42xWonFwpjNxGQiRiMYDESvJzod0WoZjYao1USlAqWSKBRELof4eBIXB7GxIJOBVAoxMUQigehoiIqCyMjqiAgID4ewsOrQ0Grvlfnnr0vf5eo373d//tdbJDg73UjBznuWX/9JIvh0QY3GXLC74f3TK4IXjblgd8NHoFcEL9+WC3o3fAR6RfDCD72drr7zS7fR1UUXRN4Eb97nNs4oOEWw3PARBF8JAu/PvAU3fYRgEx4Hi/ePv7x/rz+/EWzC42ARvnmfP7v6smAQnCNYvD/6L1/z+vMT/OWrv0cw6oLlho8geOXv40OUF7jrhmilr4oKP8rLSVmZH6WlTEmJH8XFTFERKSz0o6CAyc9n8vKEcnOZnBwmO1soK4vJzGQyMkh6uh9paUxqKklJYZKT/UhKIomJTEIC4/EQt5txuRinkzgcjN3uh81GrFbGYiFmM2MyEaORGAyg1xOdjmi1jEZD1GpGpQKlEhQKIpeT+HiIi4PYWEYmA6kUYmKIRALR0RAVVRkZCREREB4OoaGVISGV3isTvy0DDdH/cosEZ6cbKdh5zyL4R8IHny6o0ZgLdje8f3pF8KIxF+xu+Aj0iuDl23JB74aPQK8IXviht9PVd37pNrq66ILIm+DN+9zGGQWnCJYbPoLgK0Hg/Zm34KaPEGzC42Dx/vGX9+/15zeCTXgcLMI37/NnV18WDIJzBIv3R//la15/foK/fPX3CEZdsNzwEQSv/H18iPICd90QLb9aWZkfpaVMSYkfxcWkqMiPwkKmoMCP/HySl/eL3FyhnBwmO5vJyhLKzPxFRgZJT2fS0vxITWVSUkhy8i+SkoQSE0lCwi88HsbtJi4X43QSh4Ox24VsNsZqZSwWYjYzJhMxGhmDAfR6otMRrZbRaIhazahURKkEhYLI5SQ+HuLiSGwskclAKoWYGCKRQHQ0REVBZCRERJSHh0NYWHloaHlISLn3ysRvy0BD9D/fIsHZ6UYKdt6zCP6R8MGnC2o05oLdDe+fXhG8aMwFuxs+Ar0iePm2XNC74SPQK4IXfujtdPWdX7qNri66IPImePM+t3FGwSmC5YaPIPhKEHh/5i246SMEm/A4WLx//OX9e/35jWATHgeL8M37/NnVlwWD4BzB4v3Rf/ma15+f4C9f/T2CURcsN3wEwSt/Hx+ivMBdN0TLListFSop+UVx8S+KioQKC/0oKCD5+X7k5TG5ub/IyflFdjaTlfWLzMxfZGQIpaeTtDQmNdWPlBQmOZkkJQklJv4iIYF4PEJuN3G5GKeTOByM3c7YbH5YrcRiYcxmYjIxRiMxGBi9HnQ6RqslGg2jVhOVilEqQaEgcjmJjydxcRAbS2QyIpVCTAxIJCQ6GqKiyiIjISICwsMhLKwsNLQsJKTMe2Xit2WgIfqfbpHg7HQjBTvvWQT/SPjg0wU1GnPB7ob3T68IXjTmgt0NH4FeEbx8Wy7o3fAR6BXBCz/0drr6zi/dRlcXXRB5E7x5n9s4o+AUwXLDRxB8JQi8P/MW3PQRgk14HCzeP/7y/r3+/EawCY+DRfjmff7s6suCQXCOYPH+6L98zevPT/CXr/4ewagLlhs+guCVv48PUV7grhuipb5KSkhxsR9FRUxhoR8FBX7k55O8PD9yc5mcHD+ys0lWFpOZ6UdGBklP9yMtjUlNJSkpfiQnM0lJJDHRj4QExuMhbrcfLhfjdBKHg7Hbic3mh9XKWCzEbGZMJmI0MgYD0esZnY5otYxGQ9RqRqUiSiWjUBC5nImPh7i40thYRiYjUinExIBEQqKjISoKIiMhIqI0PBzCwiA0tDQkpNR7ZeK3ZaAh+h9vkeDsdCMFO+9ZBP9C+L7ijV4RpGjMBTvfu/X7/ukVwYvGXLDzvWG/H4FeEbx8Wy7o+d7wJV++v9ArgtefP/tWunz/lye5pbNdXXRB5O26jyB45e+7eqIg8r3hq4e+r/j+DDLvz7wFgrfqy/eXy9cEi/A4WLx/XPMRhK/8fcLjYLn+Iwhf+duunimIvD/6lyNEf7n6jWAQjLpgEbxTX76/CF75+/gQ5QXuuiFa7KuoiCks9KOggMnP9yMvz4/cXCYnRyg7m8nK8iMzk8nIYNLT/UhLY1JT/UhJIcnJTFKSH4mJTEKCkMfDuN2MyyXkdDIOB2O3MzYbsVr9sFgYs5mYTIzRyBgMjF7P6HREq2U0GqJWMyoVUSoZhYLI5Ux8PMTFkdhYIpMRqRRiYkAiIdHRJCoKIiOLIyIgPBzCwiA0tDgkpNh7ZeK3ZaAh+h9ukeDsdCMFO+9Z/vyHAf8WXeWNXhGkaMwFuxveP70ieNGYC3Y3fAR6RfDynuM2uuEj+F4QxPBDb6c/fzbOcNVtdHXRBZG3P9+wn48geOXvE5wiWG74CIKvBIH3Z94C31vFH7+eDl8KNuFxsHj/wJ/+7oXL1wSL8DhYfG/Y7+18+ZogEZwjWLw/2veH8Mt/fiOoBKMuWG74CIJX/j4+RHmBu26IFl6toEAoP18oL+8Xubl+5OQIZWf/IivrF5mZfmRkMOnpv0hL8yM1lUlJ8SM5mSQlMYmJfiQkEI/HD7ebcbkYp1PI4WDs9l/YbIzVSiwWP8xmxmQiRiNjMPxCr2d0OqLVMhoNUasZlYoolYxCQeRyJj6eiYuD2FgikxGplMTEgEQC0dEkKopERhZGREB4OISFQWhoYUhIoffKxG/LQEP0398iwdnpRgp23rP8+Q+D979++dfCG70iSNGYC3Y3vH96RfCiMRfsbvgI9Irg5T3BbXTDR/C9IIjhh95Of/5sPx8h6F1ddEHk7bqPIHjl77v684Poho9w9TA4fKcJNt9b9R1dPR19KaiEx8Hi/QN/4kDwEX55WVAIj4Pl+o/wy8uC4eoJgsj7o//8A//9ly//+Y2gEoy6YLnhIwhe+fv4EOUF7rohWuArP18oL8+P3FwmJ8eP7Gw/srJIZqYfGRl+pKczaWlMaqp/KSm/SE7+RVLSLxITmYQEPzwe4nb74XIxTidxOPyw2xmbTchqZSwWYjb7YTIxRiMxGBi9XkinI1oto9EwajVRqRilkigUjFxO4uOZuDgSG0tkMiKVkpgYkEggOpqJiiKRkQURERAeDmFhEBpaEBJS4L0y8dsy0BD9d7dIcHa6kYKU79+Gv7r6TwW9NEjRmAtSgrd96er7p5cGLxpzQUrwzi9d/Qj00uDl/elBTPDOL139CL5XBjH80GDG3vZVVz9C0Lu66H6f4J1fuvoRBP8jv+/yhweF4J1fuvIC+kswXT3Tb/vLF8jl6a59xW8QHv8m4TG5+hH+8s3fJjy+Fb98hL9893dd/vSgEPzwf8K+j09w5fXBIBh1v+nq277q8oR//mcg/J/6TXyI8gJ33RDN85Wb60dOjh/Z2SQry4/MTD8yMpj0dD/S0vxITWVSUvxITvYjKYlJTBRKSGA8Hj/cbsbl8sPpZBwOYrf7YbMxVqsfFgsxmxmTyQ+jkTEYiF7P6HR+aLVEo2HUakalIkolo1AQuZyJjydxcUxsLJHJGKmUxMQQiQSio0lUFImMhIgICA+HsDAIDc0LCcnzXpn4bRloiP7bWyQ4O91Iwc57lj//Yfjl3wnfPxX0iiBFYy7Y3fD+6RXBi8ZcsLvhI9Argpf3BLfRDR/B94Ighh96O/35s/18hKB3ddEFkbfrPoLglb/v6s8Pohs+wtXD4PCdJth8b9V3dPV09KWgEh4Hi/cP/IkDwUf45WVBITwOlus/wi8vC4arJwgi74/+8w/891++/Oc3gkow6oLlho8geOXv40OUF7jrhmjOZdnZfmRl+ZGZ+YuMDD/S0/1IS/MjNZVJSfEjOdmPpCQ/EhNJQoIfHg/jdvvhcv3C6fyFw/ELu/0XNpuQ1cpYLEJm8y9MJsZoFDIYGL2e0emIVuuHRsOo1USl+oVSySgURC5n4uNJXBwTG0tkMkYqJTExjEQC0dEkKopERpKICAgPzwkLg9DQnJAQ8F6Z+G0ZaIj+m1skODvdSMHOexbfPxVX/5348yvex81gRmMu2N3w/ukVwYvGXLC74SPQK4KX9xy30Q0fwfeCIIYfejv9+bNxhqtuo6uLLoi8/fmG/XwEwSt/n+AUwXLDRxB8JQi8P/MW+N4q/vj1dPhSsAmPg8X7B/70dy9cviZYhMfB4nvDfm/ny9cEieAcweL90b4/hF/+8xtBdfGXXRcUN3wEwSt/Hx+ivMBdN0SzvWVl+ZGZ6UdGxi/S0/1IS/MjNfUXKSl+JCf/IinpF4mJfiQk+OHx+OF2My6XH06nkMPB2O1CNpuQ1foLi0XIbGZMJiGjkTEY/NDriU7HaLV+aDRErWZUKkap/IVCwcjlJD6eiYsjsbGMTEakUiYmhkgkJDqaREWRyEgSEQHh4RAWBqGh2SEh4L0y8dsy0BD917dIcHa6kYKd9yyCfyR88OmCGo25YHfD+6dXBC8ac8Huho9Arwhe3ieC2+iGj0CvCF74obfT1Xd+6Ta6uuiCyJvgzfvcxhkFpwiWGz6C4CtB4P2Zt+CmjxBswuNg8f7xl/fv9ec3gk14HCzCN+/zZ1dfFgyCcwSL90f/5Wtef36Cv3z19whGXbDc8BEEr/x9fIjyAnfdEM30lZHhR3q6H2lpfqSm+pGS4kdysh9JSUxioh8JCX54PH643X64XMTp9MPh8MNuZ2w2P6xWPywWYjb7YTIxRqMfBgPR6/3Q6Ritlmg0fqjVjEpFlEo/FAoilzPx8SQujomNZWQyIpUyMTFEImGio0lUFImMZCIiIDw8MywMQkMhJAS8VyZ+WwYaov/qFgnOTjdSsMNproleEaRozAU7eq/+olcELxpzwY7err/oFcHLt+WCHr1df9Erghf9XDF3ddEF0Q0JXvn7Lp8pg+uGBK8MAjwNB98NCV75+4THwXJDglf+PuFxsNyQ4JW/TXhhBckNCV752wSjLljo3fpL8Mrfx4coL3DXDdF0b2lp/qWm+pGS4kdysh9JSX4kJvqRkPALj8cPt9sPl8sPp9MPh4Ox2/2z2fywWonF4ofZ7IfJxBiNfhgMQno9o9P5odX+QqMharUfKhWjVDIKhZBczsTHM3FxTGwskckYqZSJiWEkEhIdzURFkchIJiICwsMhLAxCQyEkBLxX5p+/Ln2Xq9+83/35f94iwdnpRhJtNObEHI05MefbcqION4bIE4w6MbryECtabEmIlfBYjITHIiS8sMRHMOrEiA9RXuCuG6KpV0tJ8SM52Y+kJD8SE/1ISPDD4/HD7fbD5bqW0+mHw+GH3f4Lm80Pq9UPi4Uxm/0wmfwwGhmDwQ+93g+djmi1fmg0v1CrGZXKD6XyFwoFI5f/Ij7+F3FxTGwsI5MRqfQXMTGMREKio5moKBIZyUREkPBwCAuD0FAICQHvlYknxkBD9PstEpydbiTRRmNOzNGYE3O+LSfqcGOIPMGoE6MrD7GiJdwT4iM8FiPhsQgJLyzxEYw6MeJDlBe464Zo8l9LSvIjMfEmCQl+eDx+uN1+uFxCTmcADocfdrsfNtsvrFY/LBY/zOZfmEx+GI1CBsMv9Ho/dDo/tFqi0fihVgupVIxS6YdCISSXM/HxTFycUGwsI5MRqVQoJoaRSEh0NBMVRSIjmYgIEh5OwsIgNBRCQsB7ZeKJMdAQ/XyLBGenG0m00ZgTczTmxJxvy4k63BgiTzDqxOjKQ6xoCfeE+AiPxUh4LELCC0t8BKNOjPgQ5QXuuiGaKCghwQ+PJwC32w+Xyw+n0w+Hww+7PQCbzQ+r1Q+LxQ+z2Q+TyQ+j0Q+DgdHr/dDp/NBq/dBoGLXaD5XKD6WSUSj8kMv9iI8ncXFMbKwfMhkjlZKYGD8kEiY6momKIpGRTEQECQ9nwsIgNBRCQsB7ZeKJMdAQ/eMWCc5ON5JoozEn5nxbTtT5tpyow40h8gSjToyuPMSKlnBPiI/wWIyExyIkvLDERzDqxIgPUV7grhuiHkFut38uVwBOpx8Ohx92ux8227Ws1mtZLNcym/0wmfwwGm9iMPih1zM6nR9arX8ajR9q9S9UKj+USj8UCiKX+xcf70dcHImNFZLJhKRSEhPjh0TCREczUVFMZCQTEUHCw5mwMBIaCiEh4L0y8cQYaIg+v0WCs9ONJNpozIk5GnNizrflRB1uDJEnGHVidOUhVrSEe0J8hMdiJDwWIeGFJT6CUSdGfIjyAnfdEHX9NafzJg7HTex2P2y2m1it17JYrmU2+2cy+WE0+mEw+KHXX0un80OrFdJobqJW+6FSCSmVfigUfsjlfsTH+xEXR2JjGZnMD6lUKCaGSCR+REczUVG/iIxkIiJIeDgTFkZCQ0lICHivTDwxBhqiD2+R4Ox0I4k2GnNijsacmPNtOVGHG0PkCUadGF15iBUt4Z4QH+GxGAmPRUh4YYmPYNSJER+ivMBdN0Qdf81uD8Bmu4nV6ofFEoDZfBOTyQ+jMQCDwQ+93g+d7iZarR8ajR9q9U1UKj+USj8UCj/kcj/i4/2Ii/MjNpaRyfyQSv2IiSESiR/R0UxUlFBkJBMRQcLDmbAwEhrKhISA98rEE2OgIXp2iwRnpxtJtNGYE3M05sScb8uJOtwYIk8w6sToykOsaAn3hPgIj8VIeCxCwgtLfASjToz4EOUF7rohag2YxRKA2RyAyRSA0XgTg8EPvT4Anc4/rdYPjSYAtdoPlcoPpTIAhcI/udyP+Hg/4uL8iI29iUz2C6nUj5gYPyQSJjraj6goJjLSj4gIJjycCQsjoaFMSAh4L8s/efNdrn7zfvfn/i0SnJ1uJNFGY07M0ZgTc74tJ+pwY4g8wagToysPsaIl3BPiIzwWI+GxCAkvLPERjDox4kOUF7jrhqg5YCZTAEZjYAZDAHp9YDqdH1rtTTQa/9Tqm6hUgSmVfigUAcjl14qP9yMuzo/YWD9ksptIpUIxMX5IJNeKjiZRUX5ERjIREX6Eh/8iLIyEhjIhIcR7Wf7Jm+9y9Zv3uz83b5Hg7HQjiTYac2KOxpyY8205UYcbQ+QJRp0YXXmIFS3hnhAf4bEYCY9FSHhhiY9g1IkRH6K8wF03RI0BMxgC0Ov/JjrdTbTav5VGE4BafROV6lpK5d9KofBDLg8gPv5acXF+xMb6J5P5IZXeJCbGD4nEj+joa0VF+REZyURE+BEeLhQWRkJDmZAQ4r0m/4k33+XqN+93f67cIsHZ6UYSbTTmxByNOTHn23KiDjeGyBOMOjG68hArWsI9IT7CYzESHouQ8MISH8GoEyM+RHmBu26I6q+m0/0dtNq/lUYTgFr9t1KpbqJUBqBQBCCX/63i4/2IiwsgNvYmMlkAUqkfMTEBSCR+REf7ERUVQGSkHxERTHi4H2FhfoSGMiEhjPea/CfefJer37zf/TlziwRnpxtJtNGYE3M05sScb8uJOtwYIk8w6sToykOsaAn3hPgIj8VIeCxCwgtLfASjToz4EOUF7rohqrkhtfpvolL9rZTKmygU/xxy+d8hPj6wuLi/VWzstWSyv5VU+reKifFDIgksOtq/qCg/IiMDiIjwLzzcj7Aw/0JDmZCQX3ivyX/izXe5+s373Z+jt0hwdrqRRBuNOTFHY07M+bacqMONIfIEo06MrjzEipZwT4iP8FiMhMciJLywxEcw6sSID1Fe4K4boqrLlMp/JoXibyWX3yQ+/p8jLu7vExv7d5PJ/g5SaQAxMTeRSP4O0dF/k6ioa0VG/q0iIvwLD/9FWJgfoaHXCgkR8l6T/8Sb73L1m/e7P3tvkeDsdCOJNhpzYo7GnJjzbTlRhxtD5AlGnRhdeYgVLeGeEB/hsRgJj0VIeGGJj2DUiREforzA/XWI0jd+/pRfFh//W+Lifkts7N9NJvvnkEr/bjExfzeJ5G8VHf13i4r6W0VGBhAR8TcJDw8gLMyP0NCbhIT48Q//cMkbXa/+8n73Z+stEpyd7hbRRmNOzNGYE3O+LSfqcGOIPMGoE6MrD7GiJdwT4iM8FiPhsQgJLyzxEYw6MeJDlBe4vw5R759//pP8UyaV/q6YmCCQSG5XdPQ/U1TUP1Nk5K2IiPg7hIcHFhb2u0JD/QsJCewf/uE63nyXq99w9dbcIsHZffeReKMxJ+ZozIk535YTdbgxRJ5g1InRlYdY0RLuCfERHouR8FiEhBeW+AhGnRjxIcoL3A1DNDoq6n+nyMj/RSIi/hcJD79dYWFBExoaHCEh/xz/8A838+a7XL1d/bsvXL3Ft0hwRt99JN5ozIk5GnNizrflRB1uDJEnGHVidOUhVrSEe0J8hMdiJDwWIeGFJT6CUSdGfIjyAnfDEA0Tb6Gh//8jJEQc/uEf/pfx5rtc//wr8h368h7+zLxFgtP57iPxRmNOzNGYE3O+LSfqcGOIPMGoE6MrD7GiJdwT4iM8FiPhsQgJLyzxEYw6MeJDlBe4G4bo1fCvNI/3Lybf5er9S+z/iy5O31e8ef/+032Lrp7LG90hoo3GnJijMSfmfFtO1OHGEHlXF51IXXmIFS3hnhAf4bEYCY9FSHhhiY9g1IkRH6K8wF03RK/mfRn9jcf7l5HvcvX+xTtEBVvU+5ef2lt0eSJfvvtIvNGYE3M05sScb8uJOtwYIu/qohOpKw+xoiXcE+IjPBYj4bEICS8s8RGMOjHiQ5QXOL9DVJD3ZfQ3Hu9fUt5/LX1D9OoW9f3lVvOd3ZfvPhJvNObEHI05MefbcqKO7g0xJxh1YnTlIVa0hHtCfITHYiQ8FiHhhSU+glEnRnyI8gJ33RClb/9Tvi/yeP+i8v5r+df/jej/4ugOEW005sQcjTkx59tyos53D4o6wagToysPsaIl3BPiIzwWI+GxCAkvLPERjDox4kOUF7gbhqjvLzzev9i8/1r+712h3nz3kXijMSfmaMyJOd+WE3W+21DUCUadGF15iBUt4Z4QH+GxGAmPRUh4YYmPYNSJER+ivMDxIcoTb38+PSI6/t+R7z4SbzTmxByNOTHn23Kijm5FMScYdWJ05SFWtIR7QnyEx2IkPBYh4YUlPoJRJ0Z8iPICx4coT9R5/8Gkv/1vyncfiTcac2KOxpyY8205UYclJ/IEo06MrjzEipZwT4iP8FiMhMciJLywxEcw6sTolyHKcdehB+o/E3yL4ziO4ziO4zju70VDlOM4juM4juM4juP+F/n//F//P4gpnWG+6wXHAAAAAElFTkSuQmCC) -&] -[s5; &] -[s5; To get the image constants into your application you have to -use somewhat obfuscated but thankfully short sequence of preprocessor -commands:&] -[s5; &] -[s7; #include &] -[s7; &] -[s7; using namespace Upp;&] -[s7; &] -[s7; [* #define IMAGECLASS TutorialImg]&] -[s7; [* #define IMAGEFILE ]&] -[s7; [* #include ]&] -[s7; &] -[s7; struct MyAppWindow : TopWindow `{&] -[s7; -|MenuBar menu;&] -[s7; &] -[s7; -|void Exit() `{&] -[s7; -|-|if(PromptOKCancel(`"Exit MyApp?`"))&] -[s7; -|-|-|Break();&] -[s7; -|`}&] -[s7; &] -[s7; -|void SubMenu(Bar`& bar) `{&] -[s7; -|-|bar.Add(`"Exit`", [* TutorialImg`::Exit()], `[`=`] `{ Exit(); -`});&] -[s7; -|`}&] -[s7; &] -[s7; -|MyAppWindow() `{&] -[s7; -|-|Title(`"My application with menu and images`").Sizeable();&] -[s7; -|-|AddFrame(menu);&] -[s7; -|-|menu.Set(`[`=`](Bar`& bar) `{&] -[s7; -|-|-|bar.Sub(`"Menu`", `[`=`](Bar`& bar) `{ SubMenu(bar); `});&] -[s7; -|-|`});&] -[s7; -|`}&] -[s7; `};&] -[s7; &] -[s7; GUI`_APP`_MAIN&] -[s7; `{&] -[s7; -|MyAppWindow app;&] -[s7; -|app.Run();&] -[s7; `}&] -[s7; &] -[s5; &] -[s5; Here [*/ Tutorial ]is the name of package where .iml file resides.&] -[s5; Image constants are represented by class methods of class defined -as [* IMAGECLASS] ([/ TutorialImg] in this case). Image constant -then can be added to menu as another parameter of Bar`::Add.&] -[s5; Note: [* #include ] works only when images are to be -used in single .cpp file, otherwise you must put `"obsuscated`" -sequence with [* #include ] to you header and -[* #include ] to any .cpp file.&] -[s5; &] -[s0;= -@@rawimage:1605&720 -(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) -&] -[s5; &] -[s3;:11: 11. Toolbar&] -[s5; Toolbars are in fact quite similar to menus `- they provide -set of operations with names and Images that can be invoked by -user. In U`+`+ you can take advantage of this similarity as toolbars -can share the definition with menus `- if [* Bar`::Add] command -contains the Image, it also adds toolbar button with that Image -when used with [* ToolBar]. The text of menu item then translates -to button tip. If you want one particular Bar item to be used -with menu or toolbar only, you can do that by using [* AddMenu] -or [* AddTool] instead of simple Add. Also, items without Image -are automatically added to menus only and vice versa, items without -text are added to toolbars only.&] -[s5; &] -[s7; #include &] -[s7; &] -[s7; using namespace Upp;&] -[s7; &] -[s7; #define IMAGECLASS TutorialImg&] -[s7; #define IMAGEFILE <[/ Tutorial]/images.iml>&] -[s7; #include &] -[s7; &] -[s7; struct MyAppWindow : TopWindow `{&] -[s7; -|MenuBar menu;&] -[s7; [* -|ToolBar tool;]&] -[s7; &] -[s7; -|void MenuFn() `{&] -[s7; -|-|PromptOK(`"Fn activated!`");&] -[s7; -|`}&] -[s7; &] -[s7; -|void BarFn() `{&] -[s7; -|-|PromptOK(`"Fn2 activated!`");&] -[s7; -|`}&] -[s7; -|&] -[s7; -|void Exit() `{&] -[s7; -|-|if(PromptOKCancel(`"Exit MyApp?`"))&] -[s7; -|-|-|Break();&] -[s7; -|`}&] -[s7; &] -[s7; -|void SubBar(Bar`& bar) `{&] -[s7; -|-|bar.AddMenu(`"Function`", TutorialImg`::Fn(), THISBACK(MenuFn));&] -[s7; [* -|-|bar.Add(TutorialImg`::Fn2(), THISBACK(BarFn));]&] -[s7; [* -|-|bar.Add(`"Exit`", TutorialImg`::Exit(), THISBACK(Exit));]&] -[s7; -|`}&] -[s7; &] -[s7; -|void MainMenu(Bar`& bar) `{&] -[s7; -|-|bar.Add(`"Menu`", THISBACK(SubBar));&] -[s7; -|`}&] -[s7; &] -[s7; -|typedef MyAppWindow CLASSNAME;&] -[s7; &] -[s7; -|MyAppWindow() `{&] -[s7; -|-|Title(`"My application with bars`").Sizeable();&] -[s7; -|-|AddFrame(menu);&] -[s7; [* -|-|AddFrame(tool);]&] -[s7; -|-|menu.Set(THISBACK(MainMenu));&] -[s7; [* -|-|tool.Set(THISBACK(SubBar));]&] -[s7; -|`}&] -[s7; `};&] -[s7; &] -[s7; GUI`_APP`_MAIN&] -[s7; `{&] -[s7; -|MyAppWindow app;&] -[s7; -|app.Run();&] -[s7; `}&] -[s5; &] -[s0;= -@@rawimage:1669&879 -(iVBORw0KGgoAAAANSUhEUgAAAeYAAAEBCAIAAAAisJGiAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAASdEVYdFNvZnR3YXJlAEdyZWVuc2hvdF5VCAUAAAkZSURBVHhe7dyxctT4AcfxbTLJUNHRQBGG4kJB4446M1Az4+YmTRp3V/EA3COY/rrr3NBBca9w3ZXkIfIG5C/9Ja1WWslaG3z+kc9nfkPW2l3tmpl8LRaS3b//+MXMzCLWJPsfv78zM7N7Psk2M4uZZJuZxUyyzcxiJtlmZjGTbDOzmEm2mVnMJNvMLGaSbWYWM8k2M7vT7Xa7v/96MTlYVg6WuyYHJ7sm2T/8/uPDco43P06OP337eLd7/OjDwcGvuPZ1m/P/8OHVgxu90I2fuL6jpx3e7fjgsPV7zez/bSXNf/nr3ybVPnpwvi3JfvzgxUFxuo5/ywzdLHN3Gcfxa62/7l2+KzOL2CTQG3tdtinZD988fvD2p/3B92e7N2ffNEM3y9xdxnH8Wuuve5fvysxSNmR6e6/LNiX70Yfy69mT7shPj5qL7nq83N49fN8/uKT8xauno6c/edNcjTfaj1a6s71/9aA9Vn8MrB38sL/RHmxerqovOj5/+8he92X/xObTjE59Ynfv27N6cPwDqayc9uBhw0n2pz32WoffwrCle4/+5pSfjrvmt3r6nZrZ97ca6+29LtuY7FHFSrmaLnfH2yvu7pPu4TGTDSdpb+xq1ocPhZcPTm40FZvUsG7+4NnB0ZsfHexaWb6F/gdS3fBNlRsPXnR/wnj6trmx/Fr9tzA/2/je/g0c3rt/S/W1xr+rZva97hsmuy911+XD0DSFam60Dzh4etOvanjwPliTUx09uL/RxO4ghWUr51964vxFx7frRt9se3Xc3K5/thidduEMR852eGT4wbb25pv3fPznk5l9H6u9Lr8ONyYPOLrNya7N6vp10Jd6+Vl/PXhu38r+s5TDKrVXzbN6Tg/ub8ySfd35jz9xU7K7E9YfQuX22ZNyksNvfOkMx842vrf/BlfffF37z3K6vpvZ97RJprdXe2uym9vtVWH3J/fx8SZnZw/b7tRn1TWPr5lr8jRUqT/DvllLB4en1BtN7MY/FRbO372NwzN04Zuff/zIetq65ifQ6CORh2/OJt/40hnmZ2uPzL7B1Tc/bP6D0MzSdzTQG6t9SrLr9ebseFm5dJ1/9loj2+iDXp/V/g1bo8vo8sFJyNrbneZCdXb+8pjmnRSLf/04PtWR28OGkk5vjx58/LVmZ6tHZt/g8d+c7iT7z0y633Az+25W/ot9NM3lYLlrcnCya5K9ccPns+ub52zpoJmZzfcVkt1chLZ/xp8cn0+yzcxus1slu//T/dbgSraZ2W32Fa6yzczsbibZZmYxk2wzs5hJtplZzCTbzCxmkm1mFjPJNjOLmWSbmcWsS/YXAO49yQaIIdkAMSQbIIZkA8RYSvbH5v9q++Jj91Xv8+XL3e7l5efuSwDu0kqyXxaHdW47LtkAf5K1ZF9cHDa7HLu4KMclG+BPsZbsy89NpPsPRz5fNgGvx/sDzUV3UR/T3nXZXojvL8VHjz+4DcDJ1pPd/EfX7FrsfXZH/f140d4qR0b1HndcsgG+hmuS3Ze6+bpt8Oh4vZyumvuO1vnoQQBu4rpk12Z/7MK9P94ku7v+7h2t89GDANzEtclubx75bLo5ehjgcZGH26O0z58BwCk2JLvJ7nBBPTo+/mxk8YORWur6GP/aBOBWlpINwL0j2QAxJBsghmQDxJBsgBiSDRBDsgFiSDZADMkGiCHZADEkGyDGpmRfXV11/z8hI+VgdzcAd+KaZPexPt/tPu92X0YrX5aDJ4S7Pc9x3SMAWLWW7LbX81iP14R7Y7VLmt+92/3888HKEckG2Ggt2U1N+16fn199+vS6HCsrN8qXo2pvam552KTXdRufDsBisvtL7NrlLyXTz551+S43ypfDXRsvtCUb4JYWk92kdPSRSHuguz37ctOFdnnMkOl377pJNsB268keonyw2VV22QnJHkpdjxTdIwBYdXKyz8+vfvvtn6PPsuu2Jvv58/Pz8+c13K6yAU5yWrIXel22Ndnll1rt2mvJBtjuhGQv97psMbul0fM9e/av2mvJBthuPdn7v34spf706fXr15+GI6Od8NeP5RdX2QA3s5jsyT/yu7o6L9Udb7jrpH/kN+m1ZANst5jsoqnp6EJ7YZsusYvysHGp68qRjU8HYC3Z/YX2SrXLXSf8D9aXdI8AYNVasou22sU83E2syx0bew3A7V2T7KoP9wGxBrhjm5INwH0g2QAxJBsghmQDxOiS/R8A7r0u2f8F4N6TbIAYkg0QQ7IBYkg2QAzJBogh2QAxJBsghmQDxJBsgBiSDRBDsgFiSDZADMkGiCHZADEkGyCGZAPEkGyAGJINEEOyAWJINkAMyQaIIdkAMSQbIIZkA8SQbIAYkg0QQ7IBYkg2QAzJBogh2QAxJBsghmQDxJBsgBiSDRBDsgFiSDZADMkGiCHZADEkGyCGZAPEkGyAGJINEEOyAWJINkAMyQaIIdkAMSQbIIZkA8SQbIAYkg0QQ7IBYkg2QAzJBogh2QAxJBsghmQDxJBsgBiSDRBDsgFiSDZADMkGiCHZADEkGyCGZAPEkGyAGJINEEOyAWJINkAMyQaIIdkAMSQbIIZkA8SQbIAYkg0QQ7IBYkg2QAzJBogh2QAxJBsghmQDxJBsgBiSDRBDsgFiSDZADMkGiCHZADEkGyCGZAPEkGyAGJINEEOyAWJINkAMyQaIIdkAMSQbIIZkA8SQbIAYkg0QQ7IBYkg2QAzJBogh2QAxJBsghmQDxJBsgBiSDRBDsgFiSDZADMkGiCHZADEkGyCGZAPEkGyAGJINEEOyAWJINkAMyQaIIdkAMSQbIIZkA8SQbIAYkg0QQ7IBYkg2QAzJBogh2QAxJBsghmQDxJBsgBiSDRBDsgFiSDZADMkGiCHZADEkGyCGZAPEkGyAGJINEEOyAWJINkAMyQaIIdkAMSQbIIZkA8SQbIAYkg0QQ7IBYkg2QAzJBogh2QAxJBsghmQDxJBsgBiSDRBDsgFiSDZADMkGiCHZADEkGyCGZAPEkGyAGJINEEOyAWJINkAMyQaIIdkAMSQbIIZkA8SQbIAYkg0QQ7IBYkg2QAzJBogh2QAxJBsghmQDxJBsgBiSDRCjS7aZmQXsj1/+Bx5PXyMENEV9AAAAAElFTkSuQmCC) -&] -[s5; &] -[s3;:12: 12. StatusBar and decorative Frames&] -[s5; To improve the visual aspect of the application, we will add -some decorative Frames `- those are frames that do not represent -any action, just draw some kind of border at given frame level. -We will also add the [* StatusBar] and connect it to the menu and -toolbar `- this way it will start displaying descriptions placed -to Bar items using a Help method. Note that decorative frame -functions ([* TopSeparatorFrame] and [* InsetFrame] here) usually -return a reference to single global object, as there are no changing -properties required when using them with different windows and -widgets concurrently.&] -[s5; &] -[s7; #include &] -[s7; &] -[s7; using namespace Upp;&] -[s7; &] -[s7; #define IMAGECLASS TutorialImg&] -[s7; #define IMAGEFILE <[/ Tutorial]/images.iml>&] -[s7; #include &] -[s7; &] -[s7; struct MyAppWindow : TopWindow `{&] -[s7; -|MenuBar menu;&] -[s7; -|ToolBar tool;&] -[s7; -|StatusBar status;&] -[s7; &] -[s7; -|void MenuFn() `{&] -[s7; -|-|PromptOK(`"Fn activated!`");&] -[s7; -|`}&] -[s7; &] -[s7; -|void BarFn() `{&] -[s7; -|-|PromptOK(`"Fn2 activated!`");&] -[s7; -|`}&] -[s7; -|&] -[s7; -|void Exit() `{&] -[s7; -|-|if(PromptOKCancel(`"Exit MyApp?`"))&] -[s7; -|-|-|Break();&] -[s7; -|`}&] -[s7; &] -[s7; -|void SubBar(Bar`& bar) `{&] -[s7; -|-|bar.AddMenu(`"Function`", TutorialImg`::Fn(), THISBACK(MenuFn))&] -[s7; [* -|-| .Help(`"This invokes MenuFn method of tutorial example`");]&] -[s7; -|-|bar.Add(TutorialImg`::Fn2(), THISBACK(BarFn))&] -[s7; [* -|-| .Help(`"This invokes BarFn method of tutorial example`");]&] -[s7; -|-|bar.Add(`"Exit`", TutorialImg`::Exit(), THISBACK(Exit));&] -[s7; -|`}&] -[s7; &] -[s7; -|void MainMenu(Bar`& bar) `{&] -[s7; -|-|bar.Add(`"Menu`", THISBACK(SubBar));&] -[s7; -|`}&] -[s7; &] -[s7; -|typedef MyAppWindow CLASSNAME;&] -[s7; &] -[s7; -|MyAppWindow() `{&] -[s7; -|-|Title(`"My application with bars`").Sizeable();&] -[s7; -|-|AddFrame(menu);&] -[s7; [* -|-|AddFrame(TopSeparatorFrame());]&] -[s7; -|-|AddFrame(tool);&] -[s7; [* -|-|AddFrame(status);]&] -[s7; [* -|-|AddFrame(InsetFrame());]&] -[s7; -|-|menu.Set(THISBACK(MainMenu));&] -[s7; [* -|-|menu.WhenHelp `= status;]&] -[s7; -|-|tool.Set(THISBACK(SubBar));&] -[s7; [* -|-|tool.WhenHelp `= status;]&] -[s7; -|`}&] -[s7; `};&] -[s7; &] -[s7; GUI`_APP`_MAIN&] -[s7; `{&] -[s7; -|MyAppWindow app;&] -[s7; -|app.Run();&] -[s7; `}&] -[s5; &] -[s0;= -@@rawimage:1837&876 -(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) -&] -[s5; &] -[s3;:13: 13. Adding child Ctrls `- widgets, reacting to widget events&] -[s5; If you need to use some predefined child Ctrl (widget), place -as variable somewhere, usually as member variable of your window -or dialog class and use [* Add] (or [* operator <<]) to put it to -your window.&] -[s7; &] -[s7; #include &] -[s7; &] -[s7; using namespace Upp;&] -[s7; &] -[s7; struct MyAppWindow : TopWindow `{&] -[s7; -|[* Button button;]&] -[s7; -|&] -[s7; -|void Click() `{ PromptOK(`"You have clicked the button!`"); -`}&] -[s7; &] -[s7; -|typedef MyAppWindow CLASSNAME;&] -[s7; &] -[s7; -|MyAppWindow() `{&] -[s7; -|-|Title(`"My application with button`");&] -[s7; -|-|[* Add(button.LeftPos(10, 100).TopPos(10, 30));]&] -[s7; -|-|button.SetLabel(`"Click me!`");&] -[s7; -|-|[* button <<`= THISBACK(Click);]&] -[s7; -|`}&] -[s7; `};&] -[s7; &] -[s7; GUI`_APP`_MAIN&] -[s7; `{&] -[s7; -|MyAppWindow app;&] -[s7; -|app.Run();&] -[s7; `}&] -[s7; &] -[s5; Position within parent view is given in logical coordinates -(e.g. [* LeftPos] or [* TopPos]) that allow no`-nonsense resizing -of dialog. Widget events (like `"button pushed`") are reflected -by its callbacks. There exists a `"default`" [* WhenAction] callback -in each widget that is usually invoked for `"user changed a value -or a state of widget`" situation. You can assign this callback -either as&] -[s7; &] -[s7; widget.[* WhenAction] `= ....&] -[s7; &] -[s5; or use equivalent operator version to save some typing&] -[s7; &] -[s7; widget [* <<`=] ....&] -[s7; &] -[s5; Note also that to make the code more clear and less verbose, -U`+`+ uses `"method chaining`" technique, where methods (usually -those that affect appearance, position or behaviour of widgets -`- `"modifiers`" in U`+`+ lingo) are designed to return a reference -to `*this `- that should explain the line&] -[s5; &] -[s7; Add(button.LeftPos(10, 100).TopPos(10, 30));&] -[s5; &] -[s0;= -@@rawimage:1724&1324 -(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) -&] -[s5; &] -[s3;:14: 14. More about logical coordinates&] -[s5; Logical coordinates can align one or both sides of widget to -the side of parent view at specified distance(s) in both vertical -and horizontal direction. If only one side is aligned, logical -coordinate specifies the size. There is also specific kind of -logical coordinate the specifies the center position.&] -[s5; &] -[s7; #include &] -[s7; &] -[s7; using namespace Upp;&] -[s7; &] -[s7; struct MyAppWindow : TopWindow `{&] -[s7; -|Button lt, rt, lb, rb, lv, ht, hv, cb, rc;&] -[s7; &] -[s7; -|typedef MyAppWindow CLASSNAME;&] -[s7; &] -[s7; -|MyAppWindow() `{&] -[s7; -|-|Title(`"My application with button`").Sizeable();&] -[s7; -|-|`*this&] -[s7; [* -|-|-|<< lt.SetLabel(`"left`-top`").LeftPos(10, 100).TopPos(10, -20)]&] -[s7; [* -|-|-|<< rt.SetLabel(`"right`-top`").RightPos(10, 100).TopPos(10, -20)]&] -[s7; [* -|-|-|<< lb.SetLabel(`"left`-bottom`").LeftPos(10, 100).BottomPos(10, -20)]&] -[s7; [* -|-|-|<< rb.SetLabel(`"right`-bottom`").RightPos(10, 100).BottomPos(10, -20)]&] -[s7; [* -|-|-|<< lv.SetLabel(`"left`-vsize`").LeftPos(10, 100).VSizePos(40, -40)]&] -[s7; [* -|-|-|<< ht.SetLabel(`"hsize`-pos`").HSizePos(120, 120).TopPos(10, -20)]&] -[s7; [* -|-|-|<< hv.SetLabel(`"hsize`-vsize`").HSizePos(120, 120).VSizePos(40, -40)]&] -[s7; [* -|-|-|<< cb.SetLabel(`"hcenter`-bottom`").HCenterPos(90).BottomPos(10, -20)]&] -[s7; [* -|-|-|<< rc.SetLabel(`"right`-vcenter`").RightPos(10, 100).VCenterPos(40)]&] -[s7; -|-|;&] -[s7; -|`}&] -[s7; `};&] -[s7; &] -[s7; GUI`_APP`_MAIN&] -[s7; `{&] -[s7; -|MyAppWindow app;&] -[s7; -|app.Run();&] -[s7; `}&] -[s7; &] -[s5; &] -[s0;= -@@rawimage:2000&923 -(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) -&] -[s0;= &] -[s0;= -@@rawimage:1495&1546 -(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) -&] -[s5; &] -[s3;:15: 15. Font`-zoomed logical coordinates&] -[s5; All distances in U`+`+ widgets are always in pixels. However, -to respond to platform setting of GUI font, there are `"font`-zoomed`" -logical coordinates. Such coordinates scale distances by the -ratio of current standard GUI font size to design font size (which -is fixed to the default Windows font):&] -[s5; &] -[s7; #include &] -[s7; &] -[s7; using namespace Upp;&] -[s7; &] -[s7; struct MyAppWindow : TopWindow `{&] -[s7; -|Button button;&] -[s7; &] -[s7; -|typedef MyAppWindow CLASSNAME;&] -[s7; &] -[s7; -|MyAppWindow() `{&] -[s7; -|-|Title(`"My application with font`-zoomed button`").Sizeable();&] -[s7; -|-|`*this << button.SetLabel(`"Button`").[* LeftPos][*@6 Z](10, 64).[* TopPos][*@6 Z](10, - 24);&] -[s7; -|`}&] -[s7; `};&] -[s7; &] -[s7; GUI`_APP`_MAIN&] -[s7; `{&] -[s7; -|MyAppWindow app;&] -[s7; -|app.Run();&] -[s7; `}&] -[s5; &] -[s0;= -@@image:1640&509 -(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) - -@@image:1749&524 -(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) -&] -[s5; &] -[s3;:16: 16. Layouts&] -[s5; Placing widgets by specifying their numeric logical coordinates -is time consuming, therefore TheIDE provides visual designer -to simplify this task.&] -[s5; &] -[s0;= -@@rawimage:3502&2261 -(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) -&] -[s5; &] -[s5; Visual design in U`+`+ is called `"layout`" and group of layouts -is stored in .lay file. Format of .lay files is such that it -can be directly included into C`+`+:&] -[s5; &] -[s7; #include &] -[s7; &] -[s7; using namespace Upp;&] -[s7; &] -[s7; [* #define LAYOUTFILE ]&] -[s7; [* #include ]&] -[s7; &] -[s7; struct MyApp : public WithDlgLayout `{&] -[s7; -|MyApp() `{&] -[s7; -|-|[* CtrlLayout(`*this, `"My dialog`");]&] -[s7; -|`}&] -[s7; `};&] -[s7; &] -[s7; GUI`_APP`_MAIN&] -[s7; `{&] -[s7; -|MyApp().Run();&] -[s7; `}&] -[s5; &] -[s0;= -@@rawimage:1235&551 -(iVBORw0KGgoAAAANSUhEUgAAAOAAAABkCAIAAAAQbqt4AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAASdEVYdFNvZnR3YXJlAEdyZWVuc2hvdF5VCAUAAASiSURBVHhe7Zw/TtxAFIfdRImo6KgogihIQxOJljvQUUTaKyCaVGmh5QJpIqXZggtwBESba+QGybz55/HYu+NFDH5rf59+Wo3fPHul1adnIxaab0+/CVEbEfTL809CFAZBieogKFEdBCWqg6BEdRCUqA6CEtXJBT17vjlsmubqJlZcTm5Pm+b06LFTdPGnBA5u73398fpg2ynDW2R+MVZ8/vUjK5qYotnKilkGBT09OO/YExQs2+Y7e35nQdBFxYj44eOnzNHBYj/Dgh5encZBKMWHy+bqcpNSmW12cF4ed3uyIOjSkuk40k6TYUGPHs2rl+zs+f5IBqqrm3Vz+BCajbjn1yeZoNIvPamFx1cygQU7XNMtK7SnvXIoHtxepxcn+5so5Xg7TTYJKko5XcSVxEI7Tf0d3PVk43BQ0LAVLtJZJG/UK2559iV7F6fmeDtNNgoavMwttAsZrrKwDXErXMFN3E5dtPZ0tqyU7fOAf6/w1vZqnYuTvc6bCuo8e/CupKKYqWaeUN1reoq/QnCub2HfXQRdTpyd5jUusobBbBRU1nbs9S20Al0ehp/0O1uyDrfsUA+Pqk5HW4lbaX/rcVvkFj+PZFKOd3SroDLw/HhL6yZm1MUnUedToO2Jp7inUiFo3XkX8dKRnBseCfghaQYZ1HGko7mgI+PuxVmxRuJYzepkj2IGzaCIpmi2smKW1whqb/H+GbF2ZFS/13sRhdlN0HCzrnvPbR8JBMbnovOaCUrIuwVBieogKFEdBCWqg6BEdRCUqI4X9C+AShAUVIOgoBoEBdUgKKgGQUE1CAqqQVBQDYKCarQL2nz/Q4rxH9Yc2QNB/8FWEHRKELQIgk5JKmjTNH4FCQg6JQhaBEGnBEGLLFzQ9aq5uHvxBxsY02MY2dYBQYsgKIKqBkERVDUImltlSp7VOhQu7tZ3F7bWdr/4SuhD0Cog6Car4pY11i1FylgMJ65XdoWgVUDQnlVWSEvPRXsgA7MdnxYpIWgVELRrlZjnbtlm1Rc0bLdtEQStAoJ2rYoFUTAKGppaL5OiB0GrgKAt1i9x0B6sVskENQe2mozN0ChIFUGrsHBBJwZBiyDolCBoEQSdEgQtgqBTkgoKgyDolCBoEQSdEvPpk2L8hzVHtAsKCwdBQTUICqpBUFANgoJqEBRUg6CgGgQF1RQE/ToO3w3w1pQF9b9Q2wyCQj2qCZp80XmHbym339IHEOoIKnZGz4rSveab9rAQagja/l2Sp1fogqCwkQqCDuhoSk5B62LnXzwkjwLZ3y3JdTzhcnb3zp+B1EugjqC5O9FZq6PblZpbJVK2a+n0XnY6QzXZhxkzxQT1LspBsLYnaPci2zph1lQQtG9oW0ititUh7RAULDUEtfK0eslBUClZD1sb18klCp0wZ+oIahDBPFFVZ1X/Xzz4XjlOtBMvHYNSpmuYLdUEHQarYDfKgo7Bd5dBUNiNgqBvDYLCbryzoAC7gaCgGgQF1SAoqAZBQTUICqpBUFANgoJqEBRUg6CgGgQF1SAoqAZBQTUICqpBUFANgoJqEBRUg6CgGgQF1SAoqAZBQTVeUEKU5un3f/yTFC35jMdxAAAAAElFTkSuQmCC) -&] -[s5; &] -[s5; To understand how this works, let us examine content of .lay -file first:&] -[s5; &] -[s7; LAYOUT([* DlgLayout], [* 208], [* 64])&] -[s7; -|ITEM([* Label], [* dv`_`_`_0], [* SetLabel(t`_(`"Label`")).LeftPosZ(8, -36).TopPosZ(8, 19)])&] -[s7; -|ITEM([* EditString], [* text], [* LeftPosZ(48, 92).TopPosZ(8, 19)])&] -[s7; -|ITEM([* Option], [* option], [* SetLabel(t`_(`"Option`")).LeftPosZ(8, -108).TopPosZ(32, 15)])&] -[s7; END`_LAYOUT&] -[s5; &] -[s5; Header [* CtrlCore/lay.h] includes [* LAYOUTFILE] several times, -altering definition of LAYOUT, ITEM and END`_LAYOUT to produce -C`+`+ code which simplified form for this example looks like&] -[s5; &] -[s7; template struct With[* DlgLayout] `{&] -[s7; -|[* Label] [* dv`_`_`_0];&] -[s7; -|[* EditString] [* text];&] -[s7; -|[* Option] [* option];&] -[s7; `};&] -[s7; &] -[s7; template &] -[s7; CtrlLayout(With[* DlgLayout]`& dlg, const char `*title)&] -[s7; `{&] -[s7; -|Size sz `= Ctrl`::LayoutZoom([* 208], [* 64])&] -[s7; -|dlg.SetMinSize(sz);&] -[s7; -|dlg.SetRect(sz);&] -[s7; -|dlg.Title(title);&] -[s7; -|[* dv`_`_`_0].[* SetLabel(t`_(`"Label`")).LeftPosZ(8, 36).TopPosZ(8, -19)];&] -[s7; -|[* text].[* LeftPosZ(48, 92).TopPosZ(8, 19)];&] -[s7; -|[* option].[* SetLabel(t`_(`"Option`")).LeftPosZ(8, 108).TopPosZ(32, -15)];&] -[s7; `}&] -[s5; &] -[s5; This way, U`+`+ keeps tight coupling between visual design and -C`+`+ code.&] -[s5; [/ Notes: ][*/ t`_][/ function with string literal argument provides -internationalization of texts. ][*/ dv`_`_`_0][/ is synthetic member -variable name used for unnamed layout members (0 is index of -member).]&] -[s5; &] -[s3;:17: 17. Value of widget&] -[s5; Many widgets have some sort of natural value. E.g. the value -of [^`:`:EditString^ EditString] is String entered by user, whereas -the value of [^`:`:Option^ Option] is bool specifying the status -of the option.&] -[s5; U`+`+ provides unified interface to determine the main value -of widget via [* GetData] and [* SetData] methods. All types of values -are passed using polymorphic Value.&] -[s5; &] -[s7; #include &] -[s7; &] -[s7; using namespace Upp;&] -[s7; &] -[s7; GUI`_APP`_MAIN&] -[s7; `{&] -[s7; -|TopWindow app;&] -[s7; -|app.SetRect(0, 0, 200, 20);&] -[s7; -|EditString text;&] -[s7; -|app.Add(text.TopPosZ(0, 20).HSizePos());&] -[s7; &] -[s7; -|text.[* SetData](`"Some text`");&] -[s7; -|app.Run();&] -[s7; -|PromptOK((String)text.[* GetData]());&] -[s7; `}&] -[s5; &] -[s5; Because this feature is used very frequently, U`+`+ provides -operator overloads for this interface `- [* operator<<`=] for SetData -and [* operator`~] for GetData.&] -[s5; &] -[s7; #include &] -[s7; &] -[s7; using namespace Upp;&] -[s7; &] -[s7; GUI`_APP`_MAIN&] -[s7; `{&] -[s7; -|TopWindow app;&] -[s7; -|app.SetRect(0, 0, 200, 20);&] -[s7; -|EditString text;&] -[s7; -|app.Add(text.TopPosZ(0, 20).HSizePos());&] -[s7; &] -[s7; -|text [* <<`=] `"Some text `- operator version`";&] -[s7; -|app.Run();&] -[s7; -|PromptOK((String)[* `~]text);&] -[s7; `}&] -[s5; &] -[s3;:18: 18. Accepting and rejecting widgets&] -[s5; Ctrl interface provides&] -[s5; &] -[s7; -|virtual bool [* Accept]();&] -[s7; -|virtual void [* Reject]();&] -[s5; &] -[s5; methods. [*/ Accepting] is usually a reaction to pressing OK button -or similar approve operation and usually involves testing for -correct content and finishing any pending operations for widget -(this may involve e.g. updating data to SQL database). Accept -must return [* true] if widget is accepted.&] -[s5; Default Ctrl implementation calls GetData for the widget. If -ErrorValue (special Value content) is returned by GetData, displays -error information contained and returns false, otherwise recursively -calls Accept for all children, anding the loop and returning -false when any child returns one. If no false was returned so -far, Accept returns true.&] -[s5; The opposite method to Accept is [*/ Reject]. This is used when -Cancel button is pressed or similar rejecting action. It simply -cancels all pending operations on widget. Default implementation -calls Reject for all children.&] -[s5; &] -[s7; #include &] -[s7; &] -[s7; using namespace Upp;&] -[s7; &] -[s7; GUI`_APP`_MAIN&] -[s7; `{&] -[s7; -|TopWindow app;&] -[s7; -|app.SetRect(0, 0, 200, 20);&] -[s7; -|EditDate date;&] -[s7; -|app.Add(date.TopPosZ(0, 20).HSizePos());&] -[s7; -|app.Run();&] -[s7; -|if(app.[* Accept]())&] -[s7; -|-|PromptOK(`"Correct date.`&`[`* `" `+ AsString(`~date));&] -[s7; `}&] -[s5; &] -[s0;= -@@image:1029&260 -(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) - -@@image:854&629 -(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) -&] -[s5;= &] -[s0;= -@@image:1029&260 -(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) - -@@image:874&629 -(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) -&] -[s5;= &] -[s3;:19: 19. Widget edit status flags&] -[s5; Ctrl interface provides several edit status flags:&] -[s5;l160;i150;O0; [*/ Enabled]/[*/ Disabled] `- disabled widgets do not -receive any input. Disabled status is usually expressed by altered -visual appearance of widget.&] -[s5;l160;i150;O0; [*/ Editable]/[*/ ReadOnly] `- read only widgets receive -input messages but no changes to data are allowed. The difference -from disabled status is that ReadOnly status allows read operations, -like selecting and copying data to clipboard.&] -[s5;l160;i150;O0; [*/ Modified] `- modify flag is set to true whenever -data in widget change `- either by user action or by widget`'s -interface. Flag is cleared by [* ClearModify] method.&] -[s5; Note that with exception of suppressing input events for disabled -state, implementation of widgets is responsible for correct behaviour -with respect to listed flags.&] -[s5; &] -[s7; #include &] -[s7; &] -[s7; using namespace Upp;&] -[s7; &] -[s7; GUI`_APP`_MAIN&] -[s7; `{&] -[s7; -|TopWindow app;&] -[s7; -|app.SetRect(0, 0, 200, 60);&] -[s7; -|EditDate date1, date2, date3;&] -[s7; -|date1 <<`= date2 <<`= date3 <<`= GetSysDate();&] -[s7; -|date1.[* ClearModify]();&] -[s7; -|app.Add(date1.TopPosZ(0, 20).HSizePos());&] -[s7; -|date2.[* Disable]();&] -[s7; -|app.Add(date2.TopPosZ(20, 20).HSizePos());&] -[s7; -|date3.[* SetReadOnly]();&] -[s7; -|app.Add(date3.TopPosZ(40, 20).HSizePos());&] -[s7; -|app.Run();&] -[s7; -|if(date1.[* IsModified]())&] -[s7; -|-|PromptOK(`"Date was modified!`");&] -[s7; `}&] -[s5; &] -[s0;= -@@image:1029&460 -(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) - -@@image:994&629 -(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) -&] -[s5; &] -[s3;:20: 20. Breaking the modal loop&] -[s5; When you invoke [* Run] for your TopWindow, the new event loop -is entered. In order to exit it, e.g. by pressing the button, -you have to call TopWindow`'s [* Break] method. Argument passed -to Break is then returned from Run.&] -[s5; &] -[s7; #include &] -[s7; &] -[s7; using namespace Upp;&] -[s7; &] -[s7; struct MyApp : TopWindow `{&] -[s7; -|Button exit;&] -[s7; &] -[s7; -|void Exit() `{&] -[s7; -|-|[* Break](999);&] -[s7; -|`}&] -[s7; -|&] -[s7; -|typedef MyApp CLASSNAME;&] -[s7; -|&] -[s7; -|MyApp() `{&] -[s7; -|-|SetRect(0, 0, 100, 100);&] -[s7; -|-|Add(exit.SetLabel(`"exit`").LeftPosZ(10, 64).TopPosZ(10, 24));&] -[s7; -|-|exit <<`= THISBACK(Exit);&] -[s7; -|`}&] -[s7; `};&] -[s7; &] -[s7; GUI`_APP`_MAIN&] -[s7; `{&] -[s7; -|MyApp().Run();&] -[s7; `}&] -[s5; &] -[s5; As this is very common situation, TopWindow provides another -method, [* Breaker], which returns a Callback which, when invoked, -performs the [* Break].&] -[s5; &] -[s7; #include &] -[s7; &] -[s7; using namespace Upp;&] -[s7; &] -[s7; struct MyApp : TopWindow `{&] -[s7; -|Button exit;&] -[s7; &] -[s7; -|typedef MyApp CLASSNAME;&] -[s7; -|&] -[s7; -|MyApp() `{&] -[s7; -|-|SetRect(0, 0, 100, 100);&] -[s7; -|-|Add(exit.SetLabel(`"exit`").LeftPosZ(10, 64).TopPosZ(10, 24));&] -[s7; -|-|exit <<`= [* Breaker](999);&] -[s7; -|`}&] -[s7; `};&] -[s7; &] -[s7; GUI`_APP`_MAIN&] -[s7; `{&] -[s7; -|MyApp().Run();&] -[s7; `}&] -[s5; &] -[s5; Another common situation is handling OK and Cancel buttons. -OK button has to Accept the dialog before breaking the loop (if -accept is successful), Cancel has to Reject it. TopWindow therefore -provides [* Acceptor] and [* Rejector] methods providing Callbacks -that invoke [* Accept] and [* Reject] as needed before calling the -[* Break].&] -[s5; &] -[s7; #include &] -[s7; &] -[s7; using namespace Upp;&] -[s7; &] -[s7; struct MyApp : TopWindow `{&] -[s7; -|Button ok, cancel;&] -[s7; -|EditDate date;&] -[s7; &] -[s7; -|typedef MyApp CLASSNAME;&] -[s7; -|&] -[s7; -|MyApp() `{&] -[s7; -|-|SetRect(0, 0, 200, 90);&] -[s7; -|-|Add(date.LeftPosZ(10, 80).TopPosZ(10, 20));&] -[s7; -|-|Add(ok.SetLabel(`"OK`").LeftPosZ(10, 64).TopPosZ(40, 24));&] -[s7; -|-|Add(cancel.SetLabel(`"Cancel`").LeftPosZ(100, 64).TopPosZ(40, -24));&] -[s7; &] -[s7; -|-|ok.[* Ok]() <<`= [* Acceptor]([*@(128.0.255) IDOK]);&] -[s7; -|-|cancel.[* Cancel]() <<`= [* Rejector]([*@(128.0.255) IDCANCEL]);&] -[s7; -|`}&] -[s7; `};&] -[s7; &] -[s7; GUI`_APP`_MAIN&] -[s7; `{&] -[s7; -|MyApp app;&] -[s7; -|switch(app.Run()) `{&] -[s7; -|case [*@(128.0.255) IDOK]:&] -[s7; -|-|PromptOK(String().Cat() << `"OK: `" << `~app.date);&] -[s7; -|-|break;&] -[s7; -|case [*@(128.0.255) IDCANCEL]:&] -[s7; -|-|Exclamation(`"Canceled`");&] -[s7; -|`}&] -[s7; `}&] -[s5; &] -[s5; Calls to [* Ok] and [* Cancel] methods of Button here make Button -react to Enter and Esc keys.&] -[s5; &] -[s5; To reduce tedious tasks even further, there are CtrlLayoutOK, -CtrlLayoutCancel, CtrlLayoutOKCancel etc. template functions -that both setup layout and assign Acceptors and Rejectors.&] -[s5; &] -[s7; #include &] -[s7; &] -[s7; using namespace Upp;&] -[s7; &] -[s7; #define LAYOUTFILE &] -[s7; #include &] -[s7; &] -[s7; GUI`_APP`_MAIN&] -[s7; `{&] -[s7; -|WithMyAppLayout app;&] -[s7; -|[* CtrlLayoutOKCancel](app, `"MyApp`");&] -[s7; -|switch(app.Run()) `{&] -[s7; -|case IDOK:&] -[s7; -|-|PromptOK(String().Cat() << `"OK: `" << `~app.date);&] -[s7; -|-|break;&] -[s7; -|case IDCANCEL:&] -[s7; -|-|Exclamation(`"Canceled`");&] -[s7; -|`}&] -[s7; `}&] -[s5; &] -[s5; Note: IDOK, IDCANCEL are predefined constants.&] -[s3;:21: 21. Creating and using custom widgets&] -[s5; There is really nothing special about creating your own widgets. -All that is to be done is to derive your own class from Ctrl -(or some other existing widget, if that fits better) and override -Ctrl`'s virtual methods to paint the widgets and do something -useful:&] -[s5; &] -[s7; struct MyCtrl : public Ctrl `{&] -[s7; -|int count;&] -[s7; -|&] -[s7; -|virtual void Paint(Draw`& w) `{&] -[s7; -|-|w.DrawRect(GetSize(), White());&] -[s7; -|-|w.DrawText(2, 2, AsString(count));&] -[s7; -|`}&] -[s7; -|&] -[s7; -|virtual void LeftDown(Point, dword) `{&] -[s7; -|-|count`+`+;&] -[s7; -|-|Refresh();&] -[s7; -|`}&] -[s7; -|&] -[s7; -|MyCtrl() `{ count `= 0; `}&] -[s7; `};&] -[s5; &] -[s5; To put your widget into your layout based dialog, the simple -way is to add it as `"User class`". In that case you just fill -in the name of class and layout designer shows the custom widget -as empty rectangle with class name sticked on it:&] -[s5; &] -[s0;= -@@image:2374&1454 -(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) -&] -[s5; &] -[s5; Note that layout file has to be included [* after] declaration -of custom widget (so that the class is defined at that point).&] -[s5; While empty rectangle in layout designer is usually enough for -seldom used widgets, you can also teach TheIDE to show something -better using .usc script file:&] -[s5; &] -[s7; ctrl MyCtrl `{&] -[s7; -|group `"Example`";&] -[s7; &] -[s7; -|GetMinSize() `{ sz `= GetTextSize(`"X`"); sz.cy `+`= 2; return -sz; `}&] -[s7; -|GetStdSize() `{ sz `= GetMinSize(); sz.cx `*`= 7; return sz; -`}&] -[s7; &] -[s7; -|Paint(w) `{&] -[s7; -|-|r `= GetRect();&] -[s7; -|-|w.DrawRect(r, :White);&] -[s7; -|-|w.DrawText(2, 2, `"0`", StdFont(), :Black);&] -[s7; -|`}&] -[s7; `};&] -[s5; &] -[s5; [/ Note: This is not the C`+`+, but a piece of script in `"Esc`" -scripting language, interpreted by layout designer.]&] -[s5;/ &] -[s0;= -@@image:1120&600 -(A+AAeAAAAAAAAAAAAHic7d0xTsMAEEXB3P9U3CykQUIRBWvLy8OaUQ4Q73+VGz+fAAAA/OwBFzvZ5wdcRp+U6ZMyfVKmT8r0SZk+KdMnZfqkTJ+U6ZMyfVKmT8r0SZk+KdMnZfqkTJ+U6ZMyfVKmT8r0SZk+KdMnZfqkTJ+U6ZMyfVKmT8r0SZk+KdMnZfqkTJ+U6ZMyfVJ2jz7PPAIjy8vqk5HlZfXJyPKy+mRkeVl9MrK87M36fHw5vQM/W172Tn1+fxaJXmR5WX0ysrysPhlZXlafjCwvq09GlpfVJyPLy75mfPuNpPp8er90veVlb9YnV1teVp+MLC+rT0aWl9UnI8vL6pOR5WXv9H6JBcvL6pOR5WX1ycjysvpkZHlZfTKyvKw+GVleVp+MLC+rT0aWl9UnI8vL6pOR5WXv0Sd3pU/K9EmZPinTJ2X6pEyflOmTMn1Spk/K9EmZPinTJ2X6pEyflOmTMn1Spk/K9EmZPinTJ2X6pEyflOmTMn1Spk/K9EmZPinTJ2X6pEyflOmTMn1Spk/K9EmZPik73ye/8/4d87/+P//Fqe+/80vufIy77XDnY9xthzsf42473PkYd9vhzse4GwAAAADAyydQulkb) -&] -[s5; &] -[s3;:22: 22. Non`-modal dialogs&] -[s5; To have non`-modal dialog, just open [* Open] it passing its owner -window as parameter. Usually the best arrangement is to have -non`-modal dialog as member variable of its owner window. Non`-modal -dialog is dismissed using the [* Close] method just like any other -window.&] -[s5; &] -[s7; #include &] -[s7; &] -[s7; using namespace Upp;&] -[s7; &] -[s7; struct NonModalDialog : public TopWindow `{&] -[s7; -|Button b;&] -[s7; -|&] -[s7; -|void DoClose() `{&] -[s7; -|-|[* Close]();&] -[s7; -|`}&] -[s7; -|&] -[s7; -|typedef NonModalDialog CLASSNAME;&] -[s7; -|&] -[s7; -|NonModalDialog() `{&] -[s7; -|-|SetRect(0, 0, 200, 50);&] -[s7; -|-|Add(b.SetLabel(`"Close non`-modal dialog`").SizePos());&] -[s7; -|-|b <<`= THISBACK(DoClose);&] -[s7; -|`}&] -[s7; `};&] -[s7; &] -[s7; struct MainWindow : public TopWindow `{&] -[s7; -|[* NonModalDialog dlg];&] -[s7; -|Button b;&] -[s7; -|&] -[s7; -|void DoOpen() `{&] -[s7; -|-|if(dlg.IsOpen())&] -[s7; -|-|-|[* dlg.Close();]&] -[s7; -|-|else&] -[s7; -|-|-|[* dlg.Open(this);]&] -[s7; -|`}&] -[s7; -|&] -[s7; -|typedef MainWindow CLASSNAME;&] -[s7; -|&] -[s7; -|MainWindow() `{&] -[s7; -|-|SetRect(0, 0, 400, 100);&] -[s7; -|-|Add(b.SetLabel(`"Open/close non`-modal dialog`").SizePos());&] -[s7; -|-|b <<`= THISBACK(DoOpen);&] -[s7; -|`}&] -[s7; `};&] -[s7; &] -[s7; GUI`_APP`_MAIN&] -[s7; `{&] -[s7; -|MainWindow win;&] -[s7; -|win.Run();&] -[s7; `}&] -[s5;/ &] -[s0;= -@@image:2084&940 -(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) -&] -[s5;/ &] -[s3; Recommended tutorials:&] -[s5; If you want to learn more, we have several tutorials that you -can find useful:&] -[s5;l192;i150;O0; [^topic`:`/`/Draw`/srcdoc`/DrawTutorial`$en`-us^ Draw -tutorial ]`- in this tutorial we show more advance techniques -of drawing inside window. This is the natural continue of things -mention on this page.&] -[s5;l192;i150;O0; [^topic`:`/`/Draw`/srcdoc`/ImgTutorial`$en`-us^ Image -tutorial] `- here we move things related to images. We show how -to create, use and embed icons directly in application.&] -[s5;l192;i150;O0; [^topic`:`/`/Core`/srcdoc`/CoreTutorial`$en`-us^ Core -value types tutorial] `- learn basics about non user U`+`+ related +topic "GUI Tutorial"; +[2 $$0,0#00000000000000000000000000000000:Default] +[l288;i1120;a17;O9;~~~.1408;2 $$1,0#10431211400427159095818037425705:param] +[a83;*R6 $$2,5#31310162474203024125188417583966:caption] +[H4;b83;*4 $$3,5#07864147445237544204411237157677:title] +[i288;O9;C2 $$4,6#40027414424643823182269349404212:item] +[b42;a42;ph2 $$5,5#45413000475342174754091244180557:text] +[l288;b17;a17;2 $$6,6#27521748481378242620020725143825:desc] +[l321;C@5;1 $$7,7#20902679421464641399138805415013:code] +[b2503;2 $$8,0#65142375456100023862071332075487:separator] +[*@(0.0.255)2 $$9,0#83433469410354161042741608181528:base] +[C2 $$10,0#37138531426314131251341829483380:class] +[l288;a17;*1 $$11,11#70004532496200323422659154056402:requirement] +[i417;b42;a42;O9;~~~.416;2 $$12,12#10566046415157235020018451313112:tparam] +[b167;C2 $$13,13#92430459443460461911108080531343:item1] +[i288;a42;O9;C2 $$14,14#77422149456609303542238260500223:item2] +[*@2$(0.128.128)2 $$15,15#34511555403152284025741354420178:NewsDate] +[l321;*C$7;2 $$16,16#03451589433145915344929335295360:result] +[l321;b83;a83;*C$7;2 $$17,17#07531550463529505371228428965313:result`-line] +[l160;*C+117 $$18,5#88603949442205825958800053222425:package`-title] +[2 $$19,0#53580023442335529039900623488521:gap] +[C2 $$20,20#70211524482531209251820423858195:class`-nested] +[b50;2 $$21,21#03324558446220344731010354752573:Par] +[{_}%EN-US +[s2; GUI Tutorial&] +[s5;~~~2240; Welcome in GUI Tutorial! Here you will learn how to +write GUI applications using U`+`+ library. All code mentions +in this tutorial is multi platform. It means it works exactly +the same on different operating system. Moreover, examples attached +in this tutorial are bundle with U`+`+ standard distribution +and they are localized in [* tutorial] assembly. So, you don`'t +need to rewrite it by yourself. Good luck!&] +[s3; Table of contents&] +[s0; &] +[s0; [^topic`:`/`/CtrlLib`/srcdoc`/Tutorial`$en`-us`#1^ 1. GUI application +main function]&] +[s0; [^topic`:`/`/CtrlLib`/srcdoc`/Tutorial`$en`-us`#2^ 2. Application +window]&] +[s0; [^topic`:`/`/CtrlLib`/srcdoc`/Tutorial`$en`-us`#3^ 3. Modifying +TopWindow properties]&] +[s0; [^topic`:`/`/CtrlLib`/srcdoc`/Tutorial`$en`-us`#4^ 4. Painting +the view area]&] +[s0; [^topic`:`/`/CtrlLib`/srcdoc`/Tutorial`$en`-us`#5^ 5. Reacting +to input events]&] +[s0; [^topic`:`/`/CtrlLib`/srcdoc`/Tutorial`$en`-us`#6^ 6. Multiple +main windows]&] +[s0; [^topic`:`/`/CtrlLib`/srcdoc`/Tutorial`$en`-us`#7^ 7. Menu]&] +[s0; [^topic`:`/`/CtrlLib`/srcdoc`/Tutorial`$en`-us`#8^ 8. Context +menu]&] +[s0; [^topic`:`/`/CtrlLib`/srcdoc`/Tutorial`$en`-us`#9^ 9. Context +menu alternative]&] +[s0; [^topic`:`/`/CtrlLib`/srcdoc`/Tutorial`$en`-us`#10^ 10. Adding +images]&] +[s0; [^topic`:`/`/CtrlLib`/srcdoc`/Tutorial`$en`-us`#11^ 11. Toolbar]&] +[s0; [^topic`:`/`/CtrlLib`/srcdoc`/Tutorial`$en`-us`#12^ 12. StatusBar +and decorative Frames]&] +[s0; [^topic`:`/`/CtrlLib`/srcdoc`/Tutorial`$en`-us`#13^ 13. Adding +child Ctrls `- widgets, reacting to widget events]&] +[s0; [^topic`:`/`/CtrlLib`/srcdoc`/Tutorial`$en`-us`#14^ 14. More about +logical coordinates]&] +[s0; [^topic`:`/`/CtrlLib`/srcdoc`/Tutorial`$en`-us`#15^ 15. Font`-zoomed +logical coordinates]&] +[s0; [^topic`:`/`/CtrlLib`/srcdoc`/Tutorial`$en`-us`#16^ 16. Layouts]&] +[s0; [^topic`:`/`/CtrlLib`/srcdoc`/Tutorial`$en`-us`#17^ 17. Value +of widget]&] +[s0; [^topic`:`/`/CtrlLib`/srcdoc`/Tutorial`$en`-us`#18^ 18. Accepting +and rejecting widgets]&] +[s0; [^topic`:`/`/CtrlLib`/srcdoc`/Tutorial`$en`-us`#19^ 19. Widget +edit status flags]&] +[s0; [^topic`:`/`/CtrlLib`/srcdoc`/Tutorial`$en`-us`#20^ 20. Breaking +the modal loop]&] +[s0; [^topic`:`/`/CtrlLib`/srcdoc`/Tutorial`$en`-us`#21^ 21. Creating +and using custom widgets]&] +[s0; [^topic`:`/`/CtrlLib`/srcdoc`/Tutorial`$en`-us`#22^ 22. Non`-modal +dialogs]&] +[s0; &] +[s3;:1: 1. GUI application main function&] +[s5; To hide platform specific differences, U`+`+ GUI application +main function is defined using [* GUI`_APP`_MAIN] macro:&] +[s5; &] +[s7; #include &] +[s7; &] +[s7; using namespace Upp;&] +[s7; &] +[s7; [* GUI`_APP`_MAIN] `{&] +[s7; -|PromptOK(`"Hello world`");&] +[s7; `}&] +[s5; &] +[s0;= +@@rawimage:1068&818 +(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) +&] +[s5; &] +[s5; Please notice that [* PromptOK] function display simply information +dialog with the given parameter in this case it is `"Hello world`". +Of course, in the [* CtrlLib ]package, there are more similar library +calls. For example `- if you want to display an error you can +use [* ErrorOK ]and for warnings it is corresponding [* Exclamation +]function.&] +[s5; To use U`+`+ GUI related code, all you need to do is include +[*/ ] header. Please also make sure that [* CtrlLib +]package is attached to your current project.&] +[s5; &] +[s3;:2: 2. Application window&] +[s5; Application top`-level windows are of [* TopWindow] class. You +can run modal event loop for [* TopWindow] using the [* Run] or [* Execute] +methods. Both methods open the window if it is not yet open (you +can also open it using [* Open] or [* OpenMain]). Unlike [* Run], [* Execute] +also closes the window at the end of modal loop. [* TopWindow] +is also closed by destructor.&] +[s5; &] +[s7; #include &] +[s7; &] +[s7; using namespace Upp;&] +[s7; &] +[s7; GUI`_APP`_MAIN `{&] +[s7; -|[* TopWindow] w;&] +[s7; -|w.[* Run]();&] +[s7; `}&] +[s5; &] +[s0;= +@@rawimage:2692&1419 +(iVBORw0KGgoAAAANSUhEUgAABZwAAAL1CAIAAADM6bbjAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAASdEVYdFNvZnR3YXJlAEdyZWVuc2hvdF5VCAUAABQvSURBVHhe7dixTcNQGEZRNwjWSMlYrJBFGCJVdqHMIIzAixKleLhw93Slc/TJsn57grt93a5mZmZmZmZmZrndo8bnz7eZmZmZmZmZWWiihpmZmZmZmZklJ2qYmZmZmZmZWXKihpmZmZmZmZklJ2qYmZmZmZmZWXKihpmZmZmZmZklJ2qYmZmZmZmZWXKihpmZmZmZmZkt27Ztp8t5Oo6N4/g0HaeJGmZmZmZmZma2bKfL+e39Y+oau8f/EzXMzMzMzMzMbOWmhHGwaIyJGmZmZmZmZma2eK+QcbxojIkaZmZmZmZmZrZ+j5xxvGiMiRpmZmZmZmZmtn6ihpmZmZmZmZn19iga4/l6mX7YnahhZmZmZmZmZis3hYzjXUPUMDMzMzMzM7Nl200YB7uGqGFmZmZmZmZmy7Zt2268GMfxaTpOEzXMzMzMzMzMLDlRw8zMzMzMzMySEzXMzMzMzMzMLDlRw8zMzMzMzMySEzXMzMzMzMzMLDlRw8zMzMzMzMySEzXMzMzMzMzMLDlRw8zMzMzMzMySe0aNXwAAAIAUUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASBI1AAAAgCRRAwAAAEgSNQAAAIAkUQMAAABIEjUAAACAJFEDAAAASHpGDTMzMzMzMzOz2G7XP5Xgc+rKo3uvAAAAAElFTkSuQmCC) +&] +[s5; &] +[s3;:3: 3. Modifying TopWindow properties&] +[s5; You can modify properties and behaviour of [* TopWindow] using +`"modifier`" methods. Note that modifiers usually return `*this +as return value, which results in simplified syntax. You can +also setup the size of [* TopWindow] using [* SetRect] (note that +unless instructed otherwise, U`+`+ will center the position of +window).&] +[s5; &] +[s7; #include &] +[s7; &] +[s7; using namespace Upp;&] +[s7; &] +[s7; GUI`_APP`_MAIN&] +[s7; `{&] +[s7; -|TopWindow w;&] +[s7; -|w.[* Title](`"My application`").[* MinimizeBox]().[* Sizeable]();&] +[s7; -|w.[* SetRect](0, 0, 200, 300);&] +[s7; -|w.Run();&] +[s7; `}&] +[s5; &] +[s0;= +@@rawimage:2000&1085 +(iVBORw0KGgoAAAANSUhEUgAAAbMAAADsCAIAAABxIN9GAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAASdEVYdFNvZnR3YXJlAEdyZWVuc2hvdF5VCAUAAAfNSURBVHhe7dnbj1QHAcfxfTEannjjqclKUkNfeOdPMMQLUC+kaYw+NGqMiZL4YDUGTVPKCriljaWKCrRySWWzawy3clvSBykmpUK1NhqxSU1kF9ilFrAvnjNnZnb2t7Mz09nu2rqfT34hh7PnzGwf+uXM7sCXrxw2M7PWlWV84NIuMzOrpoxmZjllNDPLKaOZWU4ZzcxyymhmllNGM7NclzKuH9v5uUNDvWz96I4HLu6M283MPozrUsYjI2OXXrl66ZUrc3b1D5fLjZ0YHzt+vtivjxz9xOnH4nYzsw/jupTx5Lnxu/fu3bnbZcU1p86cv//41rjdzP5f9/ED3+6wuHhRNzAw0PYdi5PFl+Jkj+tSxjPjF/78lze37T3zxC9Pb9/34tBzp3YcPPnaa3+7MTnxj2vXik1OTjw7+nKxtmVcc+mRlcW3tvGROL96y+DAwOCqkVkn38fV3rd8/TUjG1b09UZ932i2TNYhf0tcxuLtPvLRj8Wbtj3Z+7qU8ez5C6+/8dZXd4597cnRbzxz9Jt7X/jW/iOXL79xY+JfrWXce+z385dxcMXaWYmp53JJyhjnO6+/u8yW5zpEp+8e9b3oYPy1j3Up48kXzxZl/P7+E19/5oWHd/9q89N7Nu95qlbG69dKfy/KuH/8wsGXz3Qo48qNgyu2PDpzcnjdwMZ1i9ogZTRb7HXozkKS1PeaNWwexAXvaT2VcdPQ3k9u2/2pXT/57NM/3vTstuqZschi9cz4mz8eG/3TWIcyrhop/lx3X/3Mo6vKR8jqfHE8sHK4cXFRzLUbVrfcft/G8tmyVPs8Xn+14eJzbqmqbaeTxafpltjV3rp20UD9TVtfv3ZlQ/2vjRvLT9Z11Y31r25ZV51s7b7ZMlmH9CywSn2vauLCs1ispzKuH3ry08M7N/x06MGfP/7F/T+snhmbn6av/vNqsY5lLBtUb0pRmTJ/9fO158f6TyGb18SaL1KPV62ezZ8Dzn8yDsostk3Y3IvnnGz55ltO1ntd/Cc0um+2BCv/NZ5fXLx4U8a3PvPUjk17nvj8Lx7bfGDrw4e+V5RxsuXnjPfu3inWuYyNINbzN7s7ZVbKg9kPjOXtZXQqzYvLg+qr8VJtT84clFHLfnV4/flunPumrcdmy2cftDJWWSz+bB7EBe9pPZXxwZ89/oV9P3ro+R986ch3v3L0O0UZJ643yjgx8fbbt2/dvNmljNWH6OIzb/Vw11KT1VvKn0JWf866t5GkxgfwWXdVz4BzIpUnZw7mlLHb67e/URnNqnVIzwKr1MeihvHXPtatjKfPvXrlr9tHjgyNHtrx2+d3/e7A8LF9Fy++2izjxPXr01O3JicnO5exPK49oMXPAcvjIj1r162c/fvr8nxxfbsPzvVXmOnafCebt1QHZTRb4zvP69e/jdmvUNaw7eu3Xlm9rNkyWYfuLCRJfaxtB9ue7H1dynj81Nl33/3P9NSN6Vvlbk9P356+dXvq5p13/n33zjvF0+LU1NTNmzeKdS9j2ab6w1fUpHgQa/60sbmqZaVGN6u7Vm4crJ1t1Gr+k81bGt9AcVxXe+7L1y+uKb+Twry/gWl9qTbHZstnRXQ6LC5e1BX/Z7Z9x+Jk8aU42eO6lHH48HNF8ubu9LkLZ8dfOn12vHlm98ED95/IMva46iNqnJy7tg0SJjN739eljGte2l70rngY7L4TW4uL4/ZeVj6RzfndS9spo5ktzbqUcVHX+Dzba9eU0cyWZv/LMpqZfTCnjGZmOWU0M8spo5lZThnNzHLKaGaWU0Yzs5wympnl6mW8BUCDMgIkZQRIygiQlBEgKSNAUkaApIwASRkBkjICJGUESMoIkJQRICkjQFJGgKSMAEkZAZIyAiRlBEjKCJCUESApI0BSRoCkjABJGQGSMgIkZQRIygiQlBEgKSNAUkaApIwASRkBkjICJGUESMoIkJQRICkjQFJGgKSMAEkZAZIyAiRlBEjKCJCUESApI0BSRoCkjABJGQGSMgIkZQRIygiQlBEgKSNAUkaApIwASRkBkjICJGUESMoIkJQRICkjQFJGgKSMAEkZAZIyAiRlBEjKCJCUESApI0BSRoCkjABJGQGSMgIkZQRIygiQlBEgKSNAUkaApIwASRkBkjICJGUESMoIkJQRICkjQFJGgKSMAEkZAZIyAiRlBEjKCJCUESApI0BSRoCkjABJGQGSMgIkZQRIygiQlBEgKSNAUkaApIwASRkBkjICJGUESMoIkJQRICkjQFJGgKSMAEkZAZIyAiRlBEjKCJCUESApI0BSRoCkjABJGQGSMgIkZQRIygiQlBEgKSNAUkaApIwASRkBkjICJGUESMoIkJQRICkjQFJGgKSMAEkZAZIyAiRlBEjKCJCUESApI0BSRoCkjABJGQGSMgIkZQRIygiQlBEgKSNAUkaApIwASRkBkjICJGUESMoIkJQRICkjQFJGgKSMAEkZAZIyAiRlBEjKCJCUESApI0BSRoCkjABJGQGSMgIkZQRIygiQlBEgKSNAUkaApIwASRkBkjICJGUESMoIkJQRICkjQFJGgKSMAEkZAZIyAiRlBEjKCJCUESApI0BSRoCkjABJGQGSMgIkZQRIygiQlBEgKSNAUkaApIwASRkBkjICJGUESMoIkOplNDOzmV05/F+CD3V2c1fLHQAAAABJRU5ErkJggg==) +&] +[s5; &] +[s3;:4: 4. Painting the view area&] +[s5; In order to display something inside [* TopWindow] view area, +you have to create derived class and override [* Paint] method:&] +[s5; &] +[s7; #include &] +[s7; &] +[s7; using namespace Upp;&] +[s7; &] +[s7; struct MyAppWindow : TopWindow `{&] +[s7; [* -|virtual void Paint(Draw`& w) `{]&] +[s7; [* -|-|w.DrawRect(GetSize(), SWhite);]&] +[s7; [* -|-|w.DrawText(20, 20, `"Hello world!`", Arial(30), Magenta);]&] +[s7; [* -|`}]&] +[s7; -|&] +[s7; -|MyAppWindow() `{&] +[s7; -|-|Title(`"My application`").Zoomable().Sizeable();&] +[s7; -|`}&] +[s7; `};&] +[s7; &] +[s7; GUI`_APP`_MAIN&] +[s7; `{&] +[s7; -|MyAppWindow app;&] +[s7; -|app.SetRect(0, 0, 200, 100);&] +[s7; -|app.Run();&] +[s7; `}&] +[s5; &] +[s0;= +@@rawimage:1426&573 +(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) + &] +[s0;= &] +[s0;= +@@rawimage:1675&695 +(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) +&] +[s5;=l288;r224; The same application running in different operating +systems. On the top MS Windows and on the bottom GNU/Linux with +KDE.&] +[s5; &] +[s3;:5: 5. Reacting to input events&] +[s5; In order to react to user actions like mouse clicks or keyboard +events, you have to override appropriate virtual methods. To +issue the repainting of view area, use the [* Refresh] method.&] +[s5; &] +[s7; #include &] +[s7; &] +[s7; using namespace Upp;&] +[s7; &] +[s7; struct MyAppWindow : TopWindow `{&] +[s7; -|Point p;&] +[s7; -|String text;&] +[s7; -|&] +[s7; [* -|virtual void LeftDown(Point pos, dword flags) `{]&] +[s7; [* -|-|p `= pos;]&] +[s7; [* -|-|Refresh();]&] +[s7; [* -|`}]&] +[s7;* &] +[s7; [* -|virtual void MouseMove(Point pos, dword flags) `{]&] +[s7; [* -|-|text `= Format(`"`[%d:%d`]`", pos.x, pos.y);]&] +[s7; [* -|-|Refresh();]&] +[s7; [* -|`}]&] +[s7; &] +[s7; -|virtual void Paint(Draw`& w) `{&] +[s7; -|-|w.DrawRect(GetSize(), SWhite);&] +[s7; -|-|w.DrawText(p.x, p.y, text, Arial(20), Magenta);&] +[s7; -|`}&] +[s7; &] +[s7; -|MyAppWindow() `{&] +[s7; -|-|Title(`"My application`").Zoomable().Sizeable();&] +[s7; -|-|p.x `= p.y `= 0;&] +[s7; -|`}&] +[s7; `};&] +[s7; &] +[s7; GUI`_APP`_MAIN&] +[s7; `{&] +[s7; -|MyAppWindow app;&] +[s7; -|app.Run();&] +[s7; `}&] +[s5; &] +[s0;= +@@rawimage:2612&1625 +(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) +&] +[s5; &] +[s3;:6: 6. Multiple main windows&] +[s5; If you application uses multiple top`-level peer windows, you +cannot use the [* Run] method as it runs the modal loop for the +window. Instead, you have to allocate top`-level windows on the +heap and use [* Ctrl`::EventLoop] `- this event loop runs as long +as there are any top`-level windows opened. Use `"[* delete this]`" +in overridden [* Close] method to close and deallocate the main +window.&] +[s5; &] +[s7; #include &] +[s7; &] +[s7; using namespace Upp;&] +[s7; &] +[s7; struct MyAppWindow : TopWindow `{&] +[s7; -|virtual void Close() `{&] +[s7; -|-|delete this;&] +[s7; -|`}&] +[s7; &] +[s7; -|virtual void LeftDown(Point pos, dword flags) `{&] +[s7; [* -|-|(new MyAppWindow)`->OpenMain();]&] +[s7; -|`}&] +[s7; &] +[s7; -|virtual void Paint(Draw`& w) `{&] +[s7; -|-|w.DrawRect(GetSize(), SWhite);&] +[s7; -|-|w.DrawText(0, 0, `"Click the view area to open next window!`", +Arial(20));&] +[s7; -|`}&] +[s7; &] +[s7; -|MyAppWindow() `{&] +[s7; -|-|Title(`"My multiwindowed application`").Zoomable().Sizeable();&] +[s7; -|`}&] +[s7; `};&] +[s7; &] +[s7; GUI`_APP`_MAIN&] +[s7; `{&] +[s7; [* -|(new MyAppWindow)`->OpenMain();]&] +[s7; [* -|Ctrl`::EventLoop();]&] +[s7; `}&] +[s5; &] +[s0;= +@@rawimage:2000&1447 +(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joG08OvTc+gBujnEX1U1LCXSJR+2xJjoDaasjv2Tq47LEmdxaMwYjpGgEp0Dm61osFHCFllTYEGljsTbeUtTZPFvgZOxoTh+7rhSpaomoXNY3VFxyaEu4+VKNxTTs9AJtqFqigi0JHefNAqJix/v3D7uL1EjqWVBFDugLRsaOV7i4wYWYVe7jvtRnMbkJdDzvBD3G5u8rId+4LuejaeCIkmSqGkKqCoHK8v3Q/LRGFzVTtN2FLXitNfqzjS6M93JleHcxnBuZ2r12uIOGQHcvvF84/Tp1o0XB/ff33j6463nP508/gr76PzDwb3XO7eAR09RUgM4tXb8cPvms93bL/bvvjp+gGbvDu6Dyd4eP3h38ug9AOvgHniLlLu3n+/ffXF8/uba/ZcHd19AYRydvc43nx3cfrJ36+HB7cdH959df/Ai1+c3H7148PLdw1fvAVXP3n168eHL68/f33758f23Hz9//+nzt++fvn6B/vzrT3/+51+///7zt++fgVY//fztp1++Q3/89Ufolx+/gi1evnv16BnhqrPH57cfnp3cvXVy79ZNAlV3T+7fPrl75/T+vRtnZzfPz0BR9588RoNbD87uPn4Arrr98AFxWd27f3DzFujq4MZNGIe37gCtAFjbR6cbB8erOwfre4dru9eWt/egMNavXlvd3p9f3VpY217Z2lvbPljbOUC5urm7skGgavPq/trWztr21c2dvZX1rbXN7f3Dk+3dg71rxwcHx8cnN+7eOz87e3T/7OH5g8e37z24c//h/fPHDx4/f/Li1fNXb1+8Ifr2w8cPn8FHAKmPH798/vD587vP74GSH758/PrTF4DUhaLDPn159/nbhy/fP3798RP0y9e8+ee3n7++//zlw7sP796+ewVkfff+1ctXT8m464tHz54/IGj15OzB4/v3H967fXbr5Nb1w+vHG/tXV3dwaWvTCwsT03ODien+YLLbGzUa/XZ71GxP1bJhVOtDnaitO5li16CqVVPMVDFjFW+MVgJDs1Ooooe85DB4ZxMtjvirLHAVJ1gsb1KuIlCFn5viibINqGIFneH/Ug4AIWn4ITi2bukyHrpZ4gCb6rGOR9pE1x91vKl+iLIRa7WA+LGgjsGlkR66imuJSWSFHn6QUhzajqnbuoq7tgXDtAxdl0QZoMCxUj1rLy6szc4sNuod4FQUpmlSJ97k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TOv9Vmuy05tr9eaavbnBzPr08v7s6tHCzs31a2crB+dbN15s3nixd+/t6ZOvt178ev3p95PHX6DXn3wBLR2ev9+794ZyFQWsg/tvwVWoxCa1Tx59uvH0KxrffvENeuPpF+gFV+3efrZH0OrV/r2XMFAenb85ffzu5Pz10f3n0JPzl6fgqocvbz5+Da569Przk3dfXnz49ubLz4Sofvz140+/ffrp18/ff/7y40+//fkvEmX1/duf//nXr7/+DKL6/v3rTz9//fW3X/748/ff//PHL3/8+vUngh0fv3159+XT8zevz549uffk8b0njwBSNx7cu/3k0Y2H5zcfALMegK6gdx8/uv/0ydO3bx6+fPbgxfNHr16ePXtKhgIfPrr/7DkUdHVyj3DV7un1neNTlFePb2wfnq7tXoPC2Dw4Wdzcnc+H/9Z3D4nmdLW+c0Cgavdwa+/a5s7+wfHp/tHp9t7B1i5xWUF3D45Qe3h0eu3w9OT05v2zR0+evHj67NWr1++ev3r39CXhKujz12/fvP+Qc9UXXNq3n3/CNQKnYHwjo58//fbv33/67ceff//px5+//vmf3//9P3+Aq/7496/Qf/3n19///OXX33/85bfvv/72DfrLr19+Apri4z9++fL146cvQDVCWijBVW/ePH/95tmrXF+8ef701ZOHTx/cf3Tv9PZ1nOPO3t7qxub88grQamp6fmJybjSaB1o1WiNwVRB3bK/uhq04G9phC2q4zTy+KpD0CIaIu1DusjKIyyqWVJ+XHUawKqwuo43s5aOBNhQGNlEp/j1zEEY+JmjBxhsEmbSm49VNjnyTODB0phYq3bq1sdQFWs2O4sme364ZjVhpJWarZoeuHHlyEuqBhw+ztiGAqzqtWiON88BFMg6oyHK1XCmPV3geL43kPQU3c00FTcTtVr/fm2i1QANDlHGcOY7numRuCADL87wkSbIsbTbroKt+vwuoGo0GoxFBKBgD1Ax6U5OjidGw1213O61Ou9XEyxY+HYeh6zi25XtOEhNeq9eyTqvbarbJFvGFkZFH4qbykjjManETGvmp60S4c3huYhpkqIRMCzZJfCaeWVDwE2ryl3yySxRUnlOBUCCwvz+INnjGgck0XCY+aNvoish2QvAWiIplFUFUBUGvVgUYthP4QQyFoaiWrDm8ZKANw0osI3GsJEsK7kWObePq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) +&] +[s5; &] +[s3;:7: 7. Menu&] +[s5; Content of menu in U`+`+ is represented by the function or method +adding required menu items to the [* Bar]. Items can contain [^topic`:`/`/Core`/src`/Callbacks`$en`-us^ E +vents] to actions invoked by choosing the menu item or [^topic`:`/`/Core`/src`/Function`$en`-us`#Upp`:`:Event`:`:typedef^ E +vents] to represent sub`-menus. Menu itself is managed by [* MenuBar]. +[* MenuBar] can act both as widget or as a [*/^topic`:`/`/CtrlCore`/srcdoc`/AboutFrames`$en`-us^ F +rame]. Frames are placed to the window border and reduce its +view area.&] +[s5; &] +[s7; #include &] +[s7; &] +[s7; using namespace Upp;&] +[s7; &] +[s7; struct MyAppWindow : TopWindow `{&] +[s7; -|MenuBar menu;&] +[s7; &] +[s7; -|void [* Exit]() `{&] +[s7; -|-|if(PromptOKCancel(`"Exit MyApp?`"))&] +[s7; -|-|-|Break();&] +[s7; -|`}&] +[s7; &] +[s7; -|void [* SubMenu](Bar`& bar) `{&] +[s7; -|-|bar.[* Add](`"Exit`", `[`=`] `{ [* Exit](); `});&] +[s7; -|`}&] +[s7; &] +[s7; -|void [* MainMenu](Bar`& bar) `{&] +[s7; -|-|bar.[* Sub](`"Menu`", `[`=`](Bar`& bar) `{ [* SubMenu](bar); `});&] +[s7; -|`}&] +[s7; &] +[s7; -|typedef MyAppWindow CLASSNAME;&] +[s7; &] +[s7; -|MyAppWindow() `{&] +[s7; -|-|Title(`"My application with menu`").Sizeable();&] +[s7; -|-|[* AddFrame](menu);&] +[s7; -|-|menu.[* Set](`[`=`](Bar`& bar) `{ [* MainMenu](bar); `});&] +[s7; -|`}&] +[s7; `};&] +[s7; &] +[s7; GUI`_APP`_MAIN&] +[s7; `{&] +[s7; -|MyAppWindow app;&] +[s7; -|app.Run();&] +[s7; `}&] +[s7; &] +[s5; &] +[s0;= +@@rawimage:1434&1333 +(iVBORw0KGgoAAAANSUhEUgAAAccAAAGnCAIAAABNagu/AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAASdEVYdFNvZnR3YXJlAEdyZWVuc2hvdF5VCAUAAAwZSURBVHhe7d2xaxxnAsbhbY47XLlz40AuVa6IG6cI/gdSW2XAxaVQl8K4DQRSBJMmtruDFBcfGAwBu0rjf0CFmsPgJtdZEIFxkipt7pv5ZmdnZ2eltfeVLUvPw4vZjGZHGh35ebUO59k/n35vZmapNVX9x/5XZma2/VTVzCw5VTUzS05VzcySU1Uzs+RU1cwsOVU1M0tOVc3MklNVM7PkVNXMbLzZbPb3/+yODpaVg+VDo4OjHVPVD/c/u1iusfPZ6PgHty7PZpcvPVo6GFz7eZvrf/jo0wuv9Yle+4lHb/Ky/Vc7PGhm7+5KPf/y17+Nwjp5cHWbVPXyhStLyehSe5Ideb1Ovcm6DT/Xm/y8ZvZmNmrohkkt26iqF3cuX7j1xeLg3auznasn2hFVNbO3vr6kmye1bKOqXnpUfr36Xnfki0vNS9d6vDyeXbw7P7nU9sqnHwye/t5O85q20b6H0F3tbvkhulFLfdTBR4sH7cHm01X1kw6v35451/3j/InNj+2d+sTuo7eu1oPD3zPKymWXTusvsrjs1OdavoV+o4+WK7fvnzT6MwdfYfN9nvzylr6YwWMzO7nVnm6e1LINqzoITfn3v0lnd7x93dq969qfM1p/kfbBrJa3f4Ny/cHRgyapo2DVrZ68cnDwxQ8Odq0vtzD/PaOuv6ny4MKV7nV6SWF5sP5zzW9h9Wrjj84rOT9z6VLlM3afZfzlrXzG7rGZndxOsKrzmHbpXBxvHsz/nW9PWHp6G5FWf/KiBaNLTR5cPGiCuFSrsiOuv+6Jq590+LhucLPta8zmcX2FPrjsmitMXO24M9uvcGD0Qrs/bc11zOyEVpNafu0fjE6Y3MZVrVnpErP0b3V9EVd/XXruPGfzNw2WnlVfe64Ebnxw8WClqsddf/qJG1W1u2D9faI8vvpeucjyja+7wtTVjjlz4tYmT1tzHTM7iY1KunlYN61q83j40+vweFOcqxfbrtVn1TXn1xI11Wg+2j5rfoV5StYf7J9SHzTBHYZ7zfW7L2P5Ck1JJ68/PLNetq75TWLws//FneYH8/J4+bITV1i92rFntg+Wb236tO63nOZg879Fd4KZxTfZ0A3D+ipVra/aVo6XlReA/bur/WoFGvPm1mdd3On+rKYLxPqD/VPmX0B53Glfb46vX85pvpJi7Z9WDS818bhfX+rx48HJ059r5WrrPrr0ePEVHnXBxTseJ/zfYJid85V/ySbrWQ6WD40OjnZMVTdc/bF6dHB1w0AcfdDM7B1doKrN66z2J/HR8dWpqpmd+W1V1fnP4Js2UVXN7Mwv8FrVzMz6qaqZWXKqamaWnKqamSWnqmZmyamqmVlyqmpmlpyqmpkl11X1X//9820N4CxZVHX/8C1MVYEzRlUBklQVIElVAZLWVfWn5v+R+cZPywf/fPT1tdns2q29pYPbTFWBM+aIql678vEooG1qVRVgvaOqunPj2pWvf14cfLA7u7FbjqsqwDpHVfXWXvl192535OdbzUvXerw9snen/q1Rs+6c9kNfN3+pSzHP8eD8pcfdVBU4Y46u6p93b8x2HrRHSkM/vvNoUcZBIh/stg0tR+ZvxZZXtcPUqipwbhxT1XlM+7wOjtcXpVUT08mATh5cTFWBM+a4qtYf/B90bV0cb6ravzlQNxnQyYOLqSpwxhxb1frj/Or7pOVBf7BuMqAlyvP3EJrrqCpwxm1Q1aaM/cvSwfHhmwBr3wHootyeM/HfD6gqcMasq+obmqoCZ4yqAiSpKkCSqgIkqSpAUlfVfzP3P4AtLKr6O7//7vsAbElVl/g+AFsaV/XO3h/nc/X2VRXYkqp2q7evqsCWVLVbvf3yfTg4ODg8PHzx4sWvv/7622+/1eMAG1LVbvX2y/dhf3//2bNnz58/L2FVVeBVqWq3evvl+/Dw4cMnT56UsP7yyy/l5Wo9DrAhVe1Wb798H+7du1fCWl6xHhwcqCrwqk5DVR9f6/6/AhvXvht99I87P377/uyT6z+uHI+u3n75Pty+ffv+/ft7e3vPnz9/+fJlPQ6woVNS1Q2jufmZr7x6++X78M033/zwww+qCrweVe1Wb19VgS2dwqo+vf7R7P2bT5vH330+++jbL7sTyq9z1x/PT46t3r6qAls6JVXtfb7bHSkP6q/1H2t2+wf51dtXVWBLp/C1arvyKnXxJ1eqCrwzVLVbvX1VBbZ0OqtajngHAHgnnZKqLrx/83H/p1Vf3vxk8KdVzcm719uT/GkVcFqdhqqeitXbV1VgS6rard6+qgJbUtVu9fZVFdiSqnart6+qwJZUtVu9fVUFtqSq3ertqyqwpXFVzzlVBbakqktUFdjSoqpUqgpso6tq909zBwcH+/v7Dx8+vHfv3u3bt0tozg9/wwqwjemqHh4ePnv27MmTJ6Uv9+/fL6/dzg9/GyCwjemqvnjxovz8W8pSXrKVn4XPFX9zNbCN6aqW12ilKeXFWvkpuPTlXCm3XF6ql9sv3wRVBV7VdFVLTYqSleLlOVPvun4Hum8HwMamqwrA61FVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYAkVQVIUlWAJFUFSFJVgCRVBUhSVYCkrqpmZpbZ0+//D72NyMVMwXozAAAAAElFTkSuQmCC) + +@@rawimage:1434&1332 +(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) +&] +[s5; Of course, with power of C`+`+11 lambdas, it is also possible, +if not always advisable, to `'inline`' the whole menu structure +to single MenuBar`::Set call:&] +[s7; &] +[s7; #include &] +[s7; &] +[s7; using namespace Upp;&] +[s7; &] +[s7; struct MyAppWindow : TopWindow `{&] +[s7; -|MenuBar menu;&] +[s7; &] +[s7; -|MyAppWindow() `{&] +[s7; -|-|Title(`"My application with menu`").Sizeable();&] +[s7; -|-|AddFrame(menu);&] +[s7; -|-|menu.[* Set](`[`=`](Bar`& bar) `{&] +[s7; -|-|-|bar.Sub(`"Menu`", `[`=`](Bar`& bar) `{&] +[s7; -|-|-|-|bar.Add(`"Exit`", `[`=`] `{&] +[s7; -|-|-|-|-|if(PromptOKCancel(`"Exit MyApp?`"))&] +[s7; -|-|-|-|-|-|Break();&] +[s7; -|-|-|-|`});&] +[s7; -|-|-|`});&] +[s7; -|-|`});&] +[s7; -|`}&] +[s7; `};&] +[s7; &] +[s7; GUI`_APP`_MAIN&] +[s7; `{&] +[s7; -|MyAppWindow app;&] +[s7; -|app.Run();&] +[s7; `}&] +[s7; &] +[s5; &] +[s3;:8: 8. Context menu&] +[s5; Context local menu (usually invoked by right mouse click) is +similar to the standard menu bar handling, just instead of adding +MenuBar to your application, you [/ execute] the callback to the +menu:&] +[s5; &] +[s7; #include &] +[s7; &] +[s7; using namespace Upp;&] +[s7; &] +[s7; struct MyAppWindow : TopWindow `{&] +[s7; -|void Exit() `{&] +[s7; -|-|if(PromptOKCancel(`"Exit MyApp?`"))&] +[s7; -|-|-|Break();&] +[s7; -|`}&] +[s7; &] +[s7; -|void RightDown(Point, dword) `{&] +[s7; -|-|MenuBar`::Execute(&] +[s7; -|-|-|`[`=`](Bar`& bar) `{&] +[s7; -|-|-|-|bar.Add(`"Exit`", `[`=`] `{ Exit(); `});&] +[s7; -|-|-|`}&] +[s7; -|-|);&] +[s7; -|`}&] +[s7; &] +[s7; -|MyAppWindow() `{&] +[s7; -|-|Title(`"My application with local menu`").Sizeable();&] +[s7; -|`}&] +[s7; `};&] +[s7; &] +[s7; GUI`_APP`_MAIN&] +[s7; `{&] +[s7; -|MyAppWindow app;&] +[s7; -|app.Run();&] +[s7; `}&] +[s7; &] +[s7; &] +[s0;= +@@rawimage:1710&1225 +(iVBORw0KGgoAAAANSUhEUgAAAeQAAAFdCAIAAABdCYkTAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAASdEVYdFNvZnR3YXJlAEdyZWVuc2hvdF5VCAUAAArgSURBVHhe7d0/bxv3AcZxLkUDT9q82ICbKR3iRUuQN+DZGrM1g7cMhtcA3QwhS2LNGWp1EhDA3vUGPGgzoDcgARYg2OqUub/j70ge/0iiziStJ/p88MBgTscjT0W+puUCGfzr/e9mZnbL18T6n0f/NjOzWzuxNjMLmFibmQVMrM3MAibWZmYBE2szs4CJtZlZwMTazCxgYm1mFjCxNjPb0AaDwT/++2zmYFk5WL40c3Bm18T6m6Mftso1dn6YOf71iweDwYP7b6YOrnDD122u/82bJ/d6vVDvJ169hZcdv9vuwfGu/uoy+/wrmNltWIny3/7+1UyvFx6c3zKxfnDv8VQphgeLNeajX542GbXua139up//rjZ5X2a21s2keclSly0V662dB/de/DQ5+Gp7sLO91nz0y9Mmo9Z9ratf9/Pf1Sbvy8zWvXGgly912VKxvv+m/Lr9sD3y0/3mg3Y9Xh4Ptl6NTi4Rf/zk687TH+40n8Abwx+ktFd79eTe8Fj9DeCqg28mD4YHm5er6ot2rz88c6T9x9ETm59dtOoT26++2K4Hu78VlZXLTp02vsjksotea/oWxrv6nQxPuOq+Zq4wesrUK5ZnDX8w1Ri/eue1mv/t2qdM3/LUe5t7FTNb02qmly912ZKx7vSrJKApcnt8+Cm7/Yn2+JyZjS8yfDCoQR+m5OqDMw+aos10sG7+5LmDnTffOdimsNzC6LeiuvFNlQf3Hrd/qig1LA8uf63RLcxfbeop8+/kZvfV+VL3FUfxHb169ynNXbTvfPaWp06bexUzW9PWGOtRo9siT443D0b/2g9PmHr6sCND45MnOZi51MKDkwdN3aYiWHbF9S974vyLdh/XdW52+Om1eVySOvUSl11hwdXGT1n4Tm54X+0J17368LIdM3/UGJ92yXXMbH2rpS6/jh/MnLBwS8e61qot19S/2PUjZ/116rmjDLXPnU1D84lyrpuzBycP5qJ23fUXP3GpWLcXrL/9lMfbD8tFpm/8sissutroKQvfyQ3vqz3nuldfcNmFp11yHTNb02YCvXyvl41183j4ca/943b3eBOy7a1hVuqz6prza+CacDRfHT5rdIVJki47OH5KfdB0vPv7wSXXb9/G9BWaLC68fvfMetm65veezg9AtnaanySUx9OXXXCF+atNP2X+ndzsvtpzLnnFmdeauuzi05pXb99S879ve4KZrWML07xkr28S6/oZc+54WfmQOP7J9Xg1BI1RyuuztnbavwprG3H5wfFTRm+gPG6V0+avX85p3klx6V8wdi+14PF441DOPu6cvPi15q429dW5dzI6obXwvq655mWPJ6911ZusvwcPz1nv/8PHzMq/ZwujXA6WL80cnNk1sV5y9U/0Mwfn123E1QfNzKy7FcS6+QQ3/GP7zPH5ibWZWb99VqxHf2BfNrVibWbWbyv4ZG1mZuueWJuZBUyszcwCJtZmZgETazOzgIm1mVnAxNrMLGBibWYWsDbW/wPgFhNrgABiDRBArAECiDVAALEGCCDWAAHEGiCAWAMEEGuAAGINEECsAQKINUAAsQYIINYAAcQaIIBYAwQQa4AAYg0QQKwBAog1QACxBggg1gABxBoggFgDBBBrgABiDRBArAECiDVAALEGCCDWAAHEGiCAWAMEEGuAAGINEECsAQKINUAAsQYIINYAAcQaIIBYAwQQa4AAYg0QQKwBAog1QACxBggg1gABxBoggFgDBBBrgABiDRBArAECiDVAALEGCCDWAAHEGiCAWAMEEGuAAGINEECsAQKINUAAsQYIINYAAcQaIIBYAwQQa4AAYg0QQKwBAog1QACxBggg1gABxBoggFgDBBBrgABiDRBArAECiDVAALEGCCDWAAHEGiCAWAMEEGuAAGINEECsAQKINUAAsQYIINYAAcQaIIBYAwQQa4AAYg0QQKwBAog1QACxBggg1gABxBoggFgDBBBrgABiDRBArAECiDVAALEGCCDWAAHEGiCAWAMEEGuAAGINEECsAQKINUAAsQYIINYAAcQaIIBYAwQQa4AAYg0QQKwBAog1QACxBggg1gABxBoggFgDBBBrgABiDRBArAECiDVAALEGCCDWAAHEGiCAWAMEEGuAAGINEECs+/gPI+13BFgzse5DpCrfB9gYse5DpCrfB9gYse5jHKnf3v15N1dvX6xhY8S6D7Guty/WsDFi3YdY19sv34fT09Ozs7Pz8/NPnz5dXFzU48DKiXUfYl1vv3wfjo6Ojo+PT05OSq/FGtZHrPsQ63r75ftwcHBweHhYev3hw4fy4boeB1ZOrPsQ63r75fuwt7dXel0+X5+enoo1rI9Y9/FFY/32+8HE97/OfPXP3/745dHgu6d/zB1f6ertl+/D7u7u/v7+u3fvTk5OPn78WI8DKyfWfXzpWC/Z4uXPvPHq7Zfvw8uXL1+/fi3WsG5i3YdY19sXa9gYse7jNsX6/dNvB4+ev28e//rj4Ntffm5PKL+OPH07Onllq7cv1rAxYt3Hl4712I/P2iPlQf21/mOt+fjB6ldvX6xhY8S6j9v0yXq48pl68peNYg1/QWLdh1jX2xdr2Bix7uOWxboc8WMQ+IsT6z6+dKwnHj1/O/4Lxp+ff9f5C8bm5GdPhyf5C0bIJ9Z9fNFY34rV2xdr2Bix7kOs6+2LNWyMWPch1vX2xRo2Rqz7EOt6+2INGyPWfYh1vX2xho0R6z7Eut6+WMPGiHUf41jfcWINGyPWfYh1JdawMWLdR4kUlVjDZoj1Cpyenh4dHR0cHOzt7e3u7pZ+3R3+s16wGWK9AmdnZ8fHx4eHhyVb+/v75ZPm3eE/mAubIdYrcH5+fnJyUoJVPmC+u2PKLZcbL7dfvgkXFxftdwRYNbFegfKJsqSqfLQ8PT0t2bpTyi2XP1iU2y/fBLGG9RHrFSiRKkqtio93TL3r+h1ovx3AGog1QACxBggg1gABxBoggFgDBBBrgABiDRBArAECiDVAALEGCCDWAAHEGiCAWAMEEGuAAGINEECsAQKINUAAsQYIINYAAcQaIIBYAwQQa4AAYg0QQKwBAog1QACxBggg1gABxBoggFgDBBBrgABiDRBArAECiDVAALEGCCDWAAHEGiCAWAMEEGuAAGINEECsAQKINUAAsQYIINYAAcQaIIBYAwQQa4AAYg0QQKwBAog1QACxBggg1gABxBoggFgDBBBrgABiDRBArAECiDVAALEGCCDWAAHEGiCAWAMEEGuAAGINEECsAQKINUAAsQYIINYAAcQaIIBYAwQQa4AAYg0QQKwBAog1QACxBggg1gABxBoggFgDBBBrgABiDRBArAECiDVAALEGCCDWAAHEGiCAWAMEEGuAAGINEECsAQKINUAAsQYIINYAAcQaIIBYAwQQa4AAYg0QQKwBAog1QACxBggg1gABxBoggFgDBBBrgABiDRBArAECiDVAALEGCCDWAAHEGiCAWAMEEGuAAGINEECsAQKINUAAsQYIINYAAcQaIIBYAwQQa4AAYg0QQKwBAog1QACxBggg1gABxBoggFgDBBBrgABiDRBArAECiDVAALEGCCDWAAHEGiCAWAMEEGuAAGINEECsAQKINUAAsQYIINYAAcQaIIBYAwQQa4AAYg0QQKwBAog1QACxBggg1gABxBoggFgDBBBrgABiDRBArAECiDVAALEGCNDG2szMbvXe//5/Q2ieZvGUBGAAAAAASUVORK5CYII=) +&] +[s5;= &] +[s3;:9: 9. Context menu alternative&] +[s5; It is also possible to create context menu by adding menu items +directly to MenuBar. Example also demonstrates how to convert +the menu item to same value, by using lambda capture by reference:&] +[s5; &] +[s7; #include &] +[s7; &] +[s7; using namespace Upp;&] +[s7; &] +[s7; struct MyAppWindow : TopWindow `{&] +[s7; -|void Exit() `{&] +[s7; -|-|if(PromptOKCancel(`"Exit MyApp?`"))&] +[s7; -|-|-|Break();&] +[s7; -|`}&] +[s7; &] +[s7; -|void RightDown(Point, dword) `{&] +[s7; -|-|int [* result ]`= Null;&] +[s7; -|-|[* MenuBar menu];&] +[s7; -|-|for(int i `= 0; i < 10; i`+`+)&] +[s7; -|-|-|menu.Add(AsString(i), `[`=, [* `&result]`] `{ [* result ]`= i; +`});&] +[s7; -|-|menu.Separator();&] +[s7; -|-|menu.Add(`"Exit`", `[`=`] `{ Exit(); `});&] +[s7; -|-|menu.[* Execute]();&] +[s7; -|-|if(!IsNull([* result]))&] +[s7; -|-|-|PromptOK(`"You have selected `" `+ AsString((int)result));&] +[s7; -|`}&] +[s7; &] +[s7; -|MyAppWindow() `{&] +[s7; -|-|Title(`"My application with context menu`").Sizeable();&] +[s7; -|`}&] +[s7; `};&] +[s7; &] +[s7; GUI`_APP`_MAIN&] +[s7; `{&] +[s7; -|MyAppWindow app;&] +[s7; -|app.Run();&] +[s7; `}&] +[s7; &] +[s7; &] +[s5; &] +[s0;= +@@rawimage:1448&1660 +(iVBORw0KGgoAAAANSUhEUgAAAfIAAAI7CAIAAACY/I5mAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAASdEVYdFNvZnR3YXJlAEdyZWVuc2hvdF5VCAUAABR+SURBVHhe7d0xjyTlmcDxSU53IiIjAcnnyBfYCdLqxBcghtDRnANnDk6kJ13GICc2xA6OvWg1liDfD3AEq02Q9gvsSiAhFiKnd2/1U93TPdODh719nrf1zO+nR0NtTXV1V8P+u6gZdZ/929d/McYY02aWrP/Lk/80xhjTYGTdGGNajawbY0yrkXVjjGk1sm6MMa1G1o0xptXIujHGtBpZN8aYViPrxhjTamTdGGNObs7Ozv75v39/beWYsXJ869rKa/N3sv6rJ799c+zjw99eW//Lj94+O3v7rS8OVr7G2dzvsv9fffH+G690R698w5+eo7vdPdr9lcYY88oz8v0P//hP18p+dOXNuUvW337jNwfNWlufGbJXC2VlXvfvK+9+f9aeKw/fGJM91yJ+x6aPuVPW3/zw7Tc++sPVyk/fPfvw3dSCvFqhKru2f1959/uz9lx5+MaYgtml/O5NH3OnrL/1xfj67jvrmj+8tZy8x/qxfPbmp9uNR+5/8/4v927+zofLWf1icxln3dun77+xWRcvFT+18ourhc3K5e5C3On+/jdbbq1/3N5wuXKyihuu3/3o3Vi5/6I1Zuz2YLPdTq52e+y+Dg9hf24+8rs8pM2arXgCr241/nUs+1yfruWZf3u3w9g45tpjG/e1uYC22D3Ow90ef3LWleu/iKtlY0zqRNDv3vQxd8z6XulGApZ2r+s3Z+5rRHbbXJvdTjYLZ5H+TUp+euW1hauKXZubG99YuR/Tq5VrK8chbF+0YnYHNRbeGLnc3Omo4Vi4/b62h3Bzbzce+d0f0o172S6PB7Y+mLFZfD3YYDfrbq8e294rwc27uNrtXR+JMSZ1ErO+rfna7qv1y8L2r/1mg4Obbzqysdv4KgfXdnV05dXCkr/ljmKzmJ/Y/203vHmn+8sxewe7Oc9dlkeaD+7itj0c39vhI7/7QzpYudxqz1V2l5vv32os7+bobveXb+72+Ga37McYkzfR9PF1t3Btg6Nz56xH19bGHfzFjtPY+Hpw22281tteT8NyDnsjZ9dXXi3cHsdb9n/8hnfK+rrDeKEay+++M3ZyeOC37eHI3m5/5PHHn5P1g/0sK19P1g8f3tHNbtmPMSZprqX87mW/a9aX5U1B1v+F31+/JO/dNzdhjVvFLNtHCpdwLN/d3Gq7h21Nbl+5u0ksLMXff+W4Zf/rwzjcwzZ8N/a/v2XsNmZ5ldq7/PLmh8vVibF8uNsje7i5tyOPfNnmTg/pxsqb+xm3ja8HGx9uc323+8ubhZu7vbnZchTrY17+S1g3MMZkzNGI37HsPyfrcd56Y/2Ycb4Z1wT2J0Kw2EY/bvXmh+uP7PbPMY+u3N1k+wDG8mpsdnP/Y5vlkQy3/sh0f1dHlneze6m4vry38fH7Orq3ZeVqr+bhyA2P3svhrcaa93evFuOFJ17h9jeOuW23B8sHu731cOJ1fbNN7u9BGWPG37Oj+R4rx7eurbw2fyfrd5xRk6jVT89+I356pTHGmFeb15D15Vxvc6p4bf3NkXVjjMme/1fWt5dB7hplWTfGmOx5DWfrxhhjTmdk3RhjWo2sG2NMq5F1Y4xpNbJujDGtRtaNMabVyLoxxrQaWTfGmFazZv1HAFqQdYBWZB2gFVkHaEXWAVqRdYBWZB2gFVkHaEXWAVqRdYBWZB2gFVkHaEXWAVqRdYBWZB2gFVkHaEXWAVqRdYBWZB2gFVkHaEXWAVqRdYBWZB2gFVkHaEXWAVqRdYBWZB2gFVkHaEXWAVqRdYBWZB2gFVkHaEXWAVqRdYBWZB2gFVkHaEXWAVqRdYBWZB2gFVkHaEXWAVqRdYBWZB2gFVkHaEXWAVqRdYBWZB2gFVkHaEXWAVqRdYBWZB2gFVkHaEXWAVqRdYBWZB2gFVkHaEXWAVqRdYBWZB2gFVkHaEXWAVqRdYBWZB2gFVkHaEXWAVqRdYBWZB2gFVkHaEXWAVqRdYBWZB2gFVkHaEXWAVqRdYBWZB2gFVkHaEXWAVqRdYBWZB2gFVkHaEXWAVqRdYBWZB2gFVkHaEXWAVqRdYBWZB2gFVkHaEXWAVqR9Vz/xdb6jADJZD2XnAXPA5SR9VxyFjwPUEbWc8lZ8DxAGVnPJWfB8wBlZD2XnIXxPLx48eLbb7/97rvvXr58+cMPP6zfAF43Wc8l62E8D0+ePHn27Nnz589H2WUd8sh6LlkP43l49OjR48ePR9m/+eabccK+fgN43WQ9l6yH8Tx89tlno+zjnP3FixeyDnlkPdfkrF+en208uHi6rplkPA+ffPLJw4cPv/rqq+fPn3///ffrN4DXTdZzTc36iPr55bowOezjefj4448///xzWYdssp5rZtZ3Vf/xx6cXD+Z2XdahjKznmpj1g5TvJX4KWYcysp5L1oOsQxlZzyXrQdahjKznmph119bhfpL1XDOzPlq+dn0Efm7VZR3qyHqumVkfRs83pl6AWcg6lJH1XJOzfjJkHcrIei5ZD7IOZWQ9l6wHWYcysp5L1oOsQxlZzyXrQdahjKznkvUg61BG1nPJepB1KCPruWQ9yDqUkfVcsh5kHcrIei5ZD7IOZWQ9l6wHWYcysp5L1oOsQxlZzzU/68u7fU1/py9Zhzqynmtq1pd35j07P5/8CRobsg5lZD3X/LP16R+MtCHrUEbWc8l6kHUoI+u5ZD3IOpSR9VyyHmQdysh6LlkPsg5lZD2XrAdZhzKynkvWg6xDGVnPdQJZPwmyDmVkPZesB1mHMrKeS9aDrEMZWc8l60HWoYys55L1IOtQRtZzyXqQdSgj67lkPcg6lJH1XLIeZB3KyHouWQ+yDmVkPZesB1mHMrKeS9aDrEMZWc8l60HWoYys55qb9cvzs/Dg4um6ahJZhzKynmtm1p9eXKzv3DjyPjnssg5lZD3X3LP1racXD2Qd7gtZz3UaWZ//luuyDmVkPdcpZH3+JRhZh0Kynmt21p9ePJjf9EHWoYys55qa9fmX1HdkHcrIeq6ZWT+JDzFdyTqUkfVcE7O+XH/ZM/e8XdahjKznmnm2fkpkHcrIei5ZD7IOZWQ9l6wHWYcysp5L1oOsQxlZzyXrQdahjKznkvUg61BG1nPJepB1KCPruWQ9yDqUkfVcsh5kHcrIei5ZD7IOZWQ9l6wHWYcysp5L1oOsQxlZzzU161dv9jX9nRxlHcrIeq6pWb+8jJovefehd3BfyHquqVnf8VmmcI/Ieq6TyPoJfJ6GrEMZWc81N+vrxfUT+IwkWYcysp7rVM7WZ39OtaxDGVnPdRJZP4HLMLIOZWQ918ysb38RZlN1Z+twX8h6rplZ3/uM6ulX12Udysh6rplZPyWyDmVkPZesB1mHMrKeS9aDrEMZWc8l60HWoYys55L1IOtQRtZzyXqQdSgj67lkPcg6lJH1XLIeZB3KyHouWQ+yDmVkPZesB1mHMrKeS9aDrEMZWc8l60HWoYys5zqFrC9v+TX5DRxlHerIeq4TyPryIRqyDveHrOeanvVxqn5+cfFA1uHekPVck7O+RP1y+SrrcG/Ieq6pWd/mXNbhPpH1XBOzfhVzWYf7RNZzzcv65iel+6aWXdahjKznmni2fsXZOtwnsp5L1oOsQxlZz3USWT8Bsg5lZD2XrAdZhzKynkvWg6xDGVnPJetB1qGMrOeS9SDrUEbWc8l6kHUoI+u5ZD3IOpSR9VyyHmQdysh6LlkPsg5lZD2XrAdZhzKynkvWg6xDGVnPJetB1qGMrOeam/WnFw/Wd+U9O79c180h61BG1nPNzfrl+eycb8k6lJH1XLOzPvsNebdkHcrIeq6pWb+6BjO97rIOZWQ919yz9a3L89lhl3UoI+u5TiPr87su61BG1nOdTtbn/uxU1qGMrOc6iawv19hdhIH7QtZzTc36OEdfTf81R1mHMrKe6yTO1k+ArEMZWc8l60HWoYys55L1IOtQRtZzyXqQdSgj67lkPcg6lJH1XLIeZB3KyHquXdb//NXf7ufE4cs6lJH1XLIehy/rUEbWc8l6HL6sQxlZzyXrcfiyDmVkPZesx+HLOpSR9VyyHocv61BG1nNNz/rvP4g3+/rXD/56/Vs1E4cv61BG1nPNzfpo+i/+/etrK4snDl/WoYys55qa9S/f+/Uf/+P6yuqJw5d1KCPruWZm/U+/O/vgd+/FNZh5fY/Dl3UoI+u5Jmd9e0l94tWYOHxZhzKynmv22fqXR5ZrJw5f1qGMrOeS9Th8WYcysp5rZta/+vK99SLM1x/8+uy9P+1/q27i8GUdysh6rqlZ/9uf//rHX8SPTCedqo+Jw5d1KCPruSZn/QQmDl/WoYys55L1OHxZhzKynkvW4/BlHcrIei5Zj8OXdSgj67lkPQ5f1qGMrOeS9Th8WYcysp5rl/V7TtahjKznkvUg61BG1nPJepB1KCPruWQ9yDqUkfVcsh5kHcrIei5ZD7IOZWQ918SsP714EG/ztXV+uX5nAlmHMrKe60TO1kfiH1w8Xf8wg6xDGVnPdRpZvzyfeqo+yDqUkfVcJ5H1y/O5p+qDrEMZWc91AlmffgFmIetQRtZzzc/6qPrkCzALWYcysp5retZPo+qyDnVkPdfsrJ/EFZhB1qGMrOeanfX5vwMTZB3KyHqu2Vk/FbIOZWQ9l6wHWYcysp5L1oOsQxlZzyXrQdahjKznkvUg61BG1nPJepB1KCPruWQ9yDqUkfVcsh5kHcrIei5ZD7IOZWQ9l6wHWYcysp5L1oOsQxlZzyXrQdahjKznmpz1y/P4dGqfjgT3h6znmpr1EfXo+W5hGlmHMrKea2bW995rffr788o6lJH1XFPP1nddn/+u67IOZWQ919Ssb8K+ubY+/aM0ZB3KyHqumVl3EQbuJVnPNTHrBx9jOrvrsg5lZD3XzLP1vd9/2VucQ9ahjKznmpn1q0vr8y+uyzqUkfVcc7N+OmQdysh6LlkPsg5lZD2XrAdZhzKynkvWg6xDGVnPJetB1qGMrOeS9SDrUEbWc8l6kHUoI+u5ZD3IOpSR9VyyHmQdysh6LlkPsg5lZD2XrAdZhzKynkvWg6xDGVnPNTnrlz6iGu4dWc81M+vL+zfGOzdOf19eWYc6sp5rYtb3P0bj4CM1ZpB1KCPruWQ9yDqUkfVcE7O+ubAeF2GWyzGyDveErOeamfXI+eYnpufnztbhvpD1XHOzvjNO3Od+7J2sQxlZz3USWZ//izCyDnVkPdfUrG9/a336B1TLOhSS9VwncbZ+AmQdysh6LlkPsg5lZD2XrAdZhzKynkvWg6xDGVnPJetB1qGMrOeS9SDrUEbWc8l6kHUoI+u5ZD3IOpSR9VyyHmQdysh6ruKs/88pWR/ThqxDGVnPVZz1/z0l62PakHUoI+u5irN+smQdysh6LlkPsg5lZD2XrAdZhzKynkvWg6xDGVnPJetB1qGMrOeS9SDrUEbWc8l6kHUoI+u5ZD3IOpSR9VyyHmQdysh6rqlZ331E9eLIx1Q/vXhw9uDi6fqnVLIOZWQ91+ys37Had9/yFck6lJH1XLIeZB3KyHquU8r63jWX9Tvxj/F168iVmtdD1qGMrOeanfWdCPZYMxbia/wxOr9byCLrUEbWc53S2frGWHd1Ui7r0JCs55L1IOtQRtZznVjWxxoXYaA5Wc81O+tXHlxc7n5kuv3h6VXN1023p/GvnaxDGVnPNTXrJ0TWoYys55L1IOtQRtZzyXqQdSgj67lkPcg6lJH1XLIeZB3KyHouWQ+yDmVkPZesB1mHMrKeS9aDrEMZWc81ckaQdagh66VevHjx5MmTR48effbZZ5988sko3f0xDnkc+Dj88SS8fPlyfUaA103WS3377bfPnj17/PjxCNzDhw/H2ev9MQ55HPg4/G+++UbWIY+sl/ruu++eP38+0jZOWr+6Z8YhjwMfhz+ehB9++GF9RoDXTdZLjbPUEbVxuvrixYsRuHtlHPL4n5Vx+ONJkHXII+ulRs6G0bXh+3smjjqegfXpABLIOkArsg7QiqwDtCLrAK3IOkArsg7QiqwDtCLrAK3IOkArsg7QiqwDtCLrAK3IOkArsg7QiqwDtCLrAK3IOkArsg7QiqwDtCLrAK3IOkArsg7QiqwDtCLrAK3IOkArsg7QiqwDtCLrAK3IOkArsg7QiqwDtCLrAK3IOkArsg7QiqwDtCLrAK3IOkArsg7QiqwDtCLrAK3IOkArsg7QiqwDtCLrAK3IOkArsg7QiqwDtCLrAK3IOkArsg7QiqwDtCLrAK3IOkArsg7QiqwDtCLrAK3IOkArsg7QiqwDtCLrAK3IOkArsg7QiqwDtCLrAK3IOkArsg7QiqwDtCLrAK3IOkArsg7QiqwDtCLrAK3IOkArsg7QiqwDtCLrAK3IOkArsg7QiqwDtCLrAK3IOkArsg7QiqwDtCLrAK3IOkArsg7QiqwDtCLrAK3IOkArsg7QiqwDtCLrAK3IOkArsg7QiqwDtCLrAK3IOkArsg7QiqwDtCLrAK3IOkArsg7QiqwDtCLrAK3IOkArsg7QiqwDtCLrAK3IOkArsg7QiqwDtCLrAK3IOkArsg7QiqwDtCLrAK3IOkArsg7QiqwDtCLrAK3IOkArsg7QiqwDtCLrAK3IOkArsg7QiqwDtCLrAK3IOkArsg7QiqwDtCLrAK3IOkArsg7QiqwDtCLrAK3IOkArsg7QiqwDtCLrAK3IOkArsg7QiqwDtCLrAK3IOkArsg7QiqwDtCLrAK3IOkArsg7QiqwDtCLrAK3IOkArsg7QiqwDtCLrAK3IOkArsg7QiqwDtCLrAK3IOkArsg7QiqwDtCLrAK3IOkArsg7QiqwDtCLrAK3IOkArsg7QiqwDtCLrAK3IOkArsg7QiqwDtCLrAK3IOkArsg7QiqwDtCLrAK3IOkArsg7QiqwDtCLrAK3IOkArsg7QiqwDtCLrAK3IOkArsg7QiqwDtCLrAK3IOkArsg7QiqwDtCLrAK3IOkArsg7QiqwDtCLrAK2sWTfGGNNkvv7L/wGcVgKZuITFggAAAABJRU5ErkJggg==) + +@@rawimage:1448&1661 +(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) +&] +[s5; &] +[s3;:10: 10. Adding images&] +[s5; To add some eye`-candy to the menu, you can add small raster +images. In U`+`+, images are represented by Image values. You +can use image designer, part of TheIDE, to design Image constants&] +[s5; &] +[s0;= +@@rawimage:3100&1890 +(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QRAEQRBEInA6AilEiSQI5RlHuISjthtwuZhOp9vhcNvtTJvNbbW6LRam2ew2mdxGo9tgYOr1bp3OrdUyNRq3Wu1WqZhKpVuhcMvlTJnMLZW6JRJmerr75Uv3ixfM58/dz565nz51P3nCfPzY/eiR++FD94MHzPv33ffuue/eZd654759233rFvPmTfeNG+60NPf16+5r15hXr7qvXHFfvuy+dMl98aL7wgXm+fPuc+fcZ8+6z5xxnz7NPHXKffKk+8QJ9/HjzGPH3EePuo8ccR8+7D50yH3woPvAAff+/e59+5h797r37HHv3u1OTXXv2uXeuZO5Y4d7+3b3tm3urVvdW7a4N29mbtrk3rjRvWGDe/1697p17rVr3WvWuFevdq9a5V610r1yhXvFcvfyZe5ly9xLl7qXLHEvXuxetMi9cKF7wQL3/PnuefPcc+e658xxz57tnjXLPXOme8YM9/Tp7mnT3FOnuqdMcU+e7J40yT1xInP8ePe4ccwxY9yjR7tHjWKOGOEePtw9bJh76FD3kCHuwYPdgwa5Bw50Dxjg7t/f3bevu08fZu/e7p493T16uLt3d3fr5u7a1d2li7tzZ3fHju4OHdzt27vbtXO3betu3drdqpW7RQt38+bulBR3s2bupk3dTZq4Gzd2N2zobtDAXb++u25dd5067tq13TVrumvUcFer5q5a1V2lirtSJXfFiu4KFdzlyrnLlHGXLu0uWdJdooS7WDF30aLuwoXdv/3m/vVXd4EC7vz53T//7M6Xz503r/v7793ffuv+5hv3l1+6v/jC/dln7k8+cX/0kfuDD9zvved+5x137tzuXLncrEOThuiKNye6Oz1dCYIgCIIgEoHTEUghSiRBKM84wiUctV0CTqfL4XDZ7S6bjWm1uiwWptnsMplcRqPLYGDq9S6djqnVujQal1rNVKlcSqVLoXDJ5UyZzCWVuiQSZnq66+VL14sXzOfPXc+euZ4+ZT554nr82PXoEfPhQ9eDB67791337rnu3mXeueO6fdt16xbz5k3XjRuutDTm9euua9dcV6+6rlxxXb7sunSJefGi68IF1/nzrnPnXGfPus6cYZ4+7Tp1ynXypOvECdfx48xjx1xHj7qOHHEdPuw6dMh18CDzwAHX/v2ufftce/e69uxx7d7tSk1l7trl2rnTtWOHa/t217ZtzK1bXVu2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) +&] +[s5; &] +[s5; To get the image constants into your application you have to +use somewhat obfuscated but thankfully short sequence of preprocessor +commands:&] +[s5; &] +[s7; #include &] +[s7; &] +[s7; using namespace Upp;&] +[s7; &] +[s7; [* #define IMAGECLASS TutorialImg]&] +[s7; [* #define IMAGEFILE ]&] +[s7; [* #include ]&] +[s7; &] +[s7; struct MyAppWindow : TopWindow `{&] +[s7; -|MenuBar menu;&] +[s7; &] +[s7; -|void Exit() `{&] +[s7; -|-|if(PromptOKCancel(`"Exit MyApp?`"))&] +[s7; -|-|-|Break();&] +[s7; -|`}&] +[s7; &] +[s7; -|void SubMenu(Bar`& bar) `{&] +[s7; -|-|bar.Add(`"Exit`", [* TutorialImg`::Exit()], `[`=`] `{ Exit(); +`});&] +[s7; -|`}&] +[s7; &] +[s7; -|MyAppWindow() `{&] +[s7; -|-|Title(`"My application with menu and images`").Sizeable();&] +[s7; -|-|AddFrame(menu);&] +[s7; -|-|menu.Set(`[`=`](Bar`& bar) `{&] +[s7; -|-|-|bar.Sub(`"Menu`", `[`=`](Bar`& bar) `{ SubMenu(bar); `});&] +[s7; -|-|`});&] +[s7; -|`}&] +[s7; `};&] +[s7; &] +[s7; GUI`_APP`_MAIN&] +[s7; `{&] +[s7; -|MyAppWindow app;&] +[s7; -|app.Run();&] +[s7; `}&] +[s7; &] +[s5; &] +[s5; Here [*/ Tutorial ]is the name of package where .iml file resides.&] +[s5; Image constants are represented by class methods of class defined +as [* IMAGECLASS] ([/ TutorialImg] in this case). Image constant +then can be added to menu as another parameter of Bar`::Add.&] +[s5; Note: [* #include ] works only when images are to be +used in single .cpp file, otherwise you must put `"obsuscated`" +sequence with [* #include ] to you header and +[* #include ] to any .cpp file.&] +[s5; &] +[s0;= +@@rawimage:1605&720 +(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) +&] +[s5; &] +[s3;:11: 11. Toolbar&] +[s5; Toolbars are in fact quite similar to menus `- they provide +set of operations with names and Images that can be invoked by +user. In U`+`+ you can take advantage of this similarity as toolbars +can share the definition with menus `- if [* Bar`::Add] command +contains the Image, it also adds toolbar button with that Image +when used with [* ToolBar]. The text of menu item then translates +to button tip. If you want one particular Bar item to be used +with menu or toolbar only, you can do that by using [* AddMenu] +or [* AddTool] instead of simple Add. Also, items without Image +are automatically added to menus only and vice versa, items without +text are added to toolbars only.&] +[s5; &] +[s7; #include &] +[s7; &] +[s7; using namespace Upp;&] +[s7; &] +[s7; #define IMAGECLASS TutorialImg&] +[s7; #define IMAGEFILE <[/ Tutorial]/images.iml>&] +[s7; #include &] +[s7; &] +[s7; struct MyAppWindow : TopWindow `{&] +[s7; -|MenuBar menu;&] +[s7; [* -|ToolBar tool;]&] +[s7; &] +[s7; -|void MenuFn() `{&] +[s7; -|-|PromptOK(`"Fn activated!`");&] +[s7; -|`}&] +[s7; &] +[s7; -|void BarFn() `{&] +[s7; -|-|PromptOK(`"Fn2 activated!`");&] +[s7; -|`}&] +[s7; -|&] +[s7; -|void Exit() `{&] +[s7; -|-|if(PromptOKCancel(`"Exit MyApp?`"))&] +[s7; -|-|-|Break();&] +[s7; -|`}&] +[s7; &] +[s7; -|void SubBar(Bar`& bar) `{&] +[s7; -|-|bar.AddMenu(`"Function`", TutorialImg`::Fn(), THISBACK(MenuFn));&] +[s7; [* -|-|bar.Add(TutorialImg`::Fn2(), THISBACK(BarFn));]&] +[s7; [* -|-|bar.Add(`"Exit`", TutorialImg`::Exit(), THISBACK(Exit));]&] +[s7; -|`}&] +[s7; &] +[s7; -|void MainMenu(Bar`& bar) `{&] +[s7; -|-|bar.Add(`"Menu`", THISBACK(SubBar));&] +[s7; -|`}&] +[s7; &] +[s7; -|typedef MyAppWindow CLASSNAME;&] +[s7; &] +[s7; -|MyAppWindow() `{&] +[s7; -|-|Title(`"My application with bars`").Sizeable();&] +[s7; -|-|AddFrame(menu);&] +[s7; [* -|-|AddFrame(tool);]&] +[s7; -|-|menu.Set(THISBACK(MainMenu));&] +[s7; [* -|-|tool.Set(THISBACK(SubBar));]&] +[s7; -|`}&] +[s7; `};&] +[s7; &] +[s7; GUI`_APP`_MAIN&] +[s7; `{&] +[s7; -|MyAppWindow app;&] +[s7; -|app.Run();&] +[s7; `}&] +[s5; &] +[s0;= +@@rawimage:1669&879 +(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) +&] +[s5; &] +[s3;:12: 12. StatusBar and decorative Frames&] +[s5; To improve the visual aspect of the application, we will add +some decorative Frames `- those are frames that do not represent +any action, just draw some kind of border at given frame level. +We will also add the [* StatusBar] and connect it to the menu and +toolbar `- this way it will start displaying descriptions placed +to Bar items using a Help method. Note that decorative frame +functions ([* TopSeparatorFrame] and [* InsetFrame] here) usually +return a reference to single global object, as there are no changing +properties required when using them with different windows and +widgets concurrently.&] +[s5; &] +[s7; #include &] +[s7; &] +[s7; using namespace Upp;&] +[s7; &] +[s7; #define IMAGECLASS TutorialImg&] +[s7; #define IMAGEFILE <[/ Tutorial]/images.iml>&] +[s7; #include &] +[s7; &] +[s7; struct MyAppWindow : TopWindow `{&] +[s7; -|MenuBar menu;&] +[s7; -|ToolBar tool;&] +[s7; -|StatusBar status;&] +[s7; &] +[s7; -|void MenuFn() `{&] +[s7; -|-|PromptOK(`"Fn activated!`");&] +[s7; -|`}&] +[s7; &] +[s7; -|void BarFn() `{&] +[s7; -|-|PromptOK(`"Fn2 activated!`");&] +[s7; -|`}&] +[s7; -|&] +[s7; -|void Exit() `{&] +[s7; -|-|if(PromptOKCancel(`"Exit MyApp?`"))&] +[s7; -|-|-|Break();&] +[s7; -|`}&] +[s7; &] +[s7; -|void SubBar(Bar`& bar) `{&] +[s7; -|-|bar.AddMenu(`"Function`", TutorialImg`::Fn(), THISBACK(MenuFn))&] +[s7; [* -|-| .Help(`"This invokes MenuFn method of tutorial example`");]&] +[s7; -|-|bar.Add(TutorialImg`::Fn2(), THISBACK(BarFn))&] +[s7; [* -|-| .Help(`"This invokes BarFn method of tutorial example`");]&] +[s7; -|-|bar.Add(`"Exit`", TutorialImg`::Exit(), THISBACK(Exit));&] +[s7; -|`}&] +[s7; &] +[s7; -|void MainMenu(Bar`& bar) `{&] +[s7; -|-|bar.Add(`"Menu`", THISBACK(SubBar));&] +[s7; -|`}&] +[s7; &] +[s7; -|typedef MyAppWindow CLASSNAME;&] +[s7; &] +[s7; -|MyAppWindow() `{&] +[s7; -|-|Title(`"My application with bars`").Sizeable();&] +[s7; -|-|AddFrame(menu);&] +[s7; [* -|-|AddFrame(TopSeparatorFrame());]&] +[s7; -|-|AddFrame(tool);&] +[s7; [* -|-|AddFrame(status);]&] +[s7; [* -|-|AddFrame(InsetFrame());]&] +[s7; -|-|menu.Set(THISBACK(MainMenu));&] +[s7; [* -|-|menu.WhenHelp `= status;]&] +[s7; -|-|tool.Set(THISBACK(SubBar));&] +[s7; [* -|-|tool.WhenHelp `= status;]&] +[s7; -|`}&] +[s7; `};&] +[s7; &] +[s7; GUI`_APP`_MAIN&] +[s7; `{&] +[s7; -|MyAppWindow app;&] +[s7; -|app.Run();&] +[s7; `}&] +[s5; &] +[s0;= +@@rawimage:1837&876 +(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) +&] +[s5; &] +[s3;:13: 13. Adding child Ctrls `- widgets, reacting to widget events&] +[s5; If you need to use some predefined child Ctrl (widget), place +as variable somewhere, usually as member variable of your window +or dialog class and use [* Add] (or [* operator <<]) to put it to +your window.&] +[s7; &] +[s7; #include &] +[s7; &] +[s7; using namespace Upp;&] +[s7; &] +[s7; struct MyAppWindow : TopWindow `{&] +[s7; -|[* Button button;]&] +[s7; -|&] +[s7; -|void Click() `{ PromptOK(`"You have clicked the button!`"); +`}&] +[s7; &] +[s7; -|typedef MyAppWindow CLASSNAME;&] +[s7; &] +[s7; -|MyAppWindow() `{&] +[s7; -|-|Title(`"My application with button`");&] +[s7; -|-|[* Add(button.LeftPos(10, 100).TopPos(10, 30));]&] +[s7; -|-|button.SetLabel(`"Click me!`");&] +[s7; -|-|[* button <<`= THISBACK(Click);]&] +[s7; -|`}&] +[s7; `};&] +[s7; &] +[s7; GUI`_APP`_MAIN&] +[s7; `{&] +[s7; -|MyAppWindow app;&] +[s7; -|app.Run();&] +[s7; `}&] +[s7; &] +[s5; Position within parent view is given in logical coordinates +(e.g. [* LeftPos] or [* TopPos]) that allow no`-nonsense resizing +of dialog. Widget events (like `"button pushed`") are reflected +by its callbacks. There exists a `"default`" [* WhenAction] callback +in each widget that is usually invoked for `"user changed a value +or a state of widget`" situation. You can assign this callback +either as&] +[s7; &] +[s7; widget.[* WhenAction] `= ....&] +[s7; &] +[s5; or use equivalent operator version to save some typing&] +[s7; &] +[s7; widget [* <<`=] ....&] +[s7; &] +[s5; Note also that to make the code more clear and less verbose, +U`+`+ uses `"method chaining`" technique, where methods (usually +those that affect appearance, position or behaviour of widgets +`- `"modifiers`" in U`+`+ lingo) are designed to return a reference +to `*this `- that should explain the line&] +[s5; &] +[s7; Add(button.LeftPos(10, 100).TopPos(10, 30));&] +[s5; &] +[s0;= +@@rawimage:1724&1324 +(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) +&] +[s5; &] +[s3;:14: 14. More about logical coordinates&] +[s5; Logical coordinates can align one or both sides of widget to +the side of parent view at specified distance(s) in both vertical +and horizontal direction. If only one side is aligned, logical +coordinate specifies the size. There is also specific kind of +logical coordinate the specifies the center position.&] +[s5; &] +[s7; #include &] +[s7; &] +[s7; using namespace Upp;&] +[s7; &] +[s7; struct MyAppWindow : TopWindow `{&] +[s7; -|Button lt, rt, lb, rb, lv, ht, hv, cb, rc;&] +[s7; &] +[s7; -|typedef MyAppWindow CLASSNAME;&] +[s7; &] +[s7; -|MyAppWindow() `{&] +[s7; -|-|Title(`"My application with button`").Sizeable();&] +[s7; -|-|`*this&] +[s7; [* -|-|-|<< lt.SetLabel(`"left`-top`").LeftPos(10, 100).TopPos(10, +20)]&] +[s7; [* -|-|-|<< rt.SetLabel(`"right`-top`").RightPos(10, 100).TopPos(10, +20)]&] +[s7; [* -|-|-|<< lb.SetLabel(`"left`-bottom`").LeftPos(10, 100).BottomPos(10, +20)]&] +[s7; [* -|-|-|<< rb.SetLabel(`"right`-bottom`").RightPos(10, 100).BottomPos(10, +20)]&] +[s7; [* -|-|-|<< lv.SetLabel(`"left`-vsize`").LeftPos(10, 100).VSizePos(40, +40)]&] +[s7; [* -|-|-|<< ht.SetLabel(`"hsize`-pos`").HSizePos(120, 120).TopPos(10, +20)]&] +[s7; [* -|-|-|<< hv.SetLabel(`"hsize`-vsize`").HSizePos(120, 120).VSizePos(40, +40)]&] +[s7; [* -|-|-|<< cb.SetLabel(`"hcenter`-bottom`").HCenterPos(90).BottomPos(10, +20)]&] +[s7; [* -|-|-|<< rc.SetLabel(`"right`-vcenter`").RightPos(10, 100).VCenterPos(40)]&] +[s7; -|-|;&] +[s7; -|`}&] +[s7; `};&] +[s7; &] +[s7; GUI`_APP`_MAIN&] +[s7; `{&] +[s7; -|MyAppWindow app;&] +[s7; -|app.Run();&] +[s7; `}&] +[s7; &] +[s5; &] +[s0;= +@@rawimage:2000&923 +(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) +&] +[s0;= &] +[s0;= +@@rawimage:1495&1546 +(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) +&] +[s5; &] +[s3;:15: 15. Font`-zoomed logical coordinates&] +[s5; All distances in U`+`+ widgets are always in pixels. However, +to respond to platform setting of GUI font, there are `"font`-zoomed`" +logical coordinates. Such coordinates scale distances by the +ratio of current standard GUI font size to design font size (which +is fixed to the default Windows font):&] +[s5; &] +[s7; #include &] +[s7; &] +[s7; using namespace Upp;&] +[s7; &] +[s7; struct MyAppWindow : TopWindow `{&] +[s7; -|Button button;&] +[s7; &] +[s7; -|typedef MyAppWindow CLASSNAME;&] +[s7; &] +[s7; -|MyAppWindow() `{&] +[s7; -|-|Title(`"My application with font`-zoomed button`").Sizeable();&] +[s7; -|-|`*this << button.SetLabel(`"Button`").[* LeftPos][*@6 Z](10, 64).[* TopPos][*@6 Z](10, + 24);&] +[s7; -|`}&] +[s7; `};&] +[s7; &] +[s7; GUI`_APP`_MAIN&] +[s7; `{&] +[s7; -|MyAppWindow app;&] +[s7; -|app.Run();&] +[s7; `}&] +[s5; &] +[s0;= +@@image:1640&509 +(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) + +@@image:1749&524 +(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) +&] +[s5; &] +[s3;:16: 16. Layouts&] +[s5; Placing widgets by specifying their numeric logical coordinates +is time consuming, therefore TheIDE provides visual designer +to simplify this task.&] +[s5; &] +[s0;= +@@rawimage:3502&2261 +(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) +&] +[s5; &] +[s5; Visual design in U`+`+ is called `"layout`" and group of layouts +is stored in .lay file. Format of .lay files is such that it +can be directly included into C`+`+:&] +[s5; &] +[s7; #include &] +[s7; &] +[s7; using namespace Upp;&] +[s7; &] +[s7; [* #define LAYOUTFILE ]&] +[s7; [* #include ]&] +[s7; &] +[s7; struct MyApp : public WithDlgLayout `{&] +[s7; -|MyApp() `{&] +[s7; -|-|[* CtrlLayout(`*this, `"My dialog`");]&] +[s7; -|`}&] +[s7; `};&] +[s7; &] +[s7; GUI`_APP`_MAIN&] +[s7; `{&] +[s7; -|MyApp().Run();&] +[s7; `}&] +[s5; &] +[s0;= +@@rawimage:1235&551 +(iVBORw0KGgoAAAANSUhEUgAAAOAAAABkCAIAAAAQbqt4AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAASdEVYdFNvZnR3YXJlAEdyZWVuc2hvdF5VCAUAAASiSURBVHhe7Zw/TtxAFIfdRImo6KgogihIQxOJljvQUUTaKyCaVGmh5QJpIqXZggtwBESba+QGybz55/HYu+NFDH5rf59+Wo3fPHul1adnIxaab0+/CVEbEfTL809CFAZBieogKFEdBCWqg6BEdRCUqA6CEtXJBT17vjlsmubqJlZcTm5Pm+b06LFTdPGnBA5u73398fpg2ynDW2R+MVZ8/vUjK5qYotnKilkGBT09OO/YExQs2+Y7e35nQdBFxYj44eOnzNHBYj/Dgh5encZBKMWHy+bqcpNSmW12cF4ed3uyIOjSkuk40k6TYUGPHs2rl+zs+f5IBqqrm3Vz+BCajbjn1yeZoNIvPamFx1cygQU7XNMtK7SnvXIoHtxepxcn+5so5Xg7TTYJKko5XcSVxEI7Tf0d3PVk43BQ0LAVLtJZJG/UK2559iV7F6fmeDtNNgoavMwttAsZrrKwDXErXMFN3E5dtPZ0tqyU7fOAf6/w1vZqnYuTvc6bCuo8e/CupKKYqWaeUN1reoq/QnCub2HfXQRdTpyd5jUusobBbBRU1nbs9S20Al0ehp/0O1uyDrfsUA+Pqk5HW4lbaX/rcVvkFj+PZFKOd3SroDLw/HhL6yZm1MUnUedToO2Jp7inUiFo3XkX8dKRnBseCfghaQYZ1HGko7mgI+PuxVmxRuJYzepkj2IGzaCIpmi2smKW1whqb/H+GbF2ZFS/13sRhdlN0HCzrnvPbR8JBMbnovOaCUrIuwVBieogKFEdBCWqg6BEdRCUqI4X9C+AShAUVIOgoBoEBdUgKKgGQUE1CAqqQVBQDYKCarQL2nz/Q4rxH9Yc2QNB/8FWEHRKELQIgk5JKmjTNH4FCQg6JQhaBEGnBEGLLFzQ9aq5uHvxBxsY02MY2dYBQYsgKIKqBkERVDUImltlSp7VOhQu7tZ3F7bWdr/4SuhD0Cog6Car4pY11i1FylgMJ65XdoWgVUDQnlVWSEvPRXsgA7MdnxYpIWgVELRrlZjnbtlm1Rc0bLdtEQStAoJ2rYoFUTAKGppaL5OiB0GrgKAt1i9x0B6sVskENQe2mozN0ChIFUGrsHBBJwZBiyDolCBoEQSdEgQtgqBTkgoKgyDolCBoEQSdEvPpk2L8hzVHtAsKCwdBQTUICqpBUFANgoJqEBRUg6CgGgQF1RQE/ToO3w3w1pQF9b9Q2wyCQj2qCZp80XmHbym339IHEOoIKnZGz4rSveab9rAQagja/l2Sp1fogqCwkQqCDuhoSk5B62LnXzwkjwLZ3y3JdTzhcnb3zp+B1EugjqC5O9FZq6PblZpbJVK2a+n0XnY6QzXZhxkzxQT1LspBsLYnaPci2zph1lQQtG9oW0ititUh7RAULDUEtfK0eslBUClZD1sb18klCp0wZ+oIahDBPFFVZ1X/Xzz4XjlOtBMvHYNSpmuYLdUEHQarYDfKgo7Bd5dBUNiNgqBvDYLCbryzoAC7gaCgGgQF1SAoqAZBQTUICqpBUFANgoJqEBRUg6CgGgQF1SAoqAZBQTUICqpBUFANgoJqEBRUg6CgGgQF1SAoqAZBQTVeUEKU5un3f/yTFC35jMdxAAAAAElFTkSuQmCC) +&] +[s5; &] +[s5; To understand how this works, let us examine content of .lay +file first:&] +[s5; &] +[s7; LAYOUT([* DlgLayout], [* 208], [* 64])&] +[s7; -|ITEM([* Label], [* dv`_`_`_0], [* SetLabel(t`_(`"Label`")).LeftPosZ(8, +36).TopPosZ(8, 19)])&] +[s7; -|ITEM([* EditString], [* text], [* LeftPosZ(48, 92).TopPosZ(8, 19)])&] +[s7; -|ITEM([* Option], [* option], [* SetLabel(t`_(`"Option`")).LeftPosZ(8, +108).TopPosZ(32, 15)])&] +[s7; END`_LAYOUT&] +[s5; &] +[s5; Header [* CtrlCore/lay.h] includes [* LAYOUTFILE] several times, +altering definition of LAYOUT, ITEM and END`_LAYOUT to produce +C`+`+ code which simplified form for this example looks like&] +[s5; &] +[s7; template struct With[* DlgLayout] `{&] +[s7; -|[* Label] [* dv`_`_`_0];&] +[s7; -|[* EditString] [* text];&] +[s7; -|[* Option] [* option];&] +[s7; `};&] +[s7; &] +[s7; template &] +[s7; CtrlLayout(With[* DlgLayout]`& dlg, const char `*title)&] +[s7; `{&] +[s7; -|Size sz `= Ctrl`::LayoutZoom([* 208], [* 64])&] +[s7; -|dlg.SetMinSize(sz);&] +[s7; -|dlg.SetRect(sz);&] +[s7; -|dlg.Title(title);&] +[s7; -|[* dv`_`_`_0].[* SetLabel(t`_(`"Label`")).LeftPosZ(8, 36).TopPosZ(8, +19)];&] +[s7; -|[* text].[* LeftPosZ(48, 92).TopPosZ(8, 19)];&] +[s7; -|[* option].[* SetLabel(t`_(`"Option`")).LeftPosZ(8, 108).TopPosZ(32, +15)];&] +[s7; `}&] +[s5; &] +[s5; This way, U`+`+ keeps tight coupling between visual design and +C`+`+ code.&] +[s5; [/ Notes: ][*/ t`_][/ function with string literal argument provides +internationalization of texts. ][*/ dv`_`_`_0][/ is synthetic member +variable name used for unnamed layout members (0 is index of +member).]&] +[s5; &] +[s3;:17: 17. Value of widget&] +[s5; Many widgets have some sort of natural value. E.g. the value +of [^`:`:EditString^ EditString] is String entered by user, whereas +the value of [^`:`:Option^ Option] is bool specifying the status +of the option.&] +[s5; U`+`+ provides unified interface to determine the main value +of widget via [* GetData] and [* SetData] methods. All types of values +are passed using polymorphic Value.&] +[s5; &] +[s7; #include &] +[s7; &] +[s7; using namespace Upp;&] +[s7; &] +[s7; GUI`_APP`_MAIN&] +[s7; `{&] +[s7; -|TopWindow app;&] +[s7; -|app.SetRect(0, 0, 200, 20);&] +[s7; -|EditString text;&] +[s7; -|app.Add(text.TopPosZ(0, 20).HSizePos());&] +[s7; &] +[s7; -|text.[* SetData](`"Some text`");&] +[s7; -|app.Run();&] +[s7; -|PromptOK((String)text.[* GetData]());&] +[s7; `}&] +[s5; &] +[s5; Because this feature is used very frequently, U`+`+ provides +operator overloads for this interface `- [* operator<<`=] for SetData +and [* operator`~] for GetData.&] +[s5; &] +[s7; #include &] +[s7; &] +[s7; using namespace Upp;&] +[s7; &] +[s7; GUI`_APP`_MAIN&] +[s7; `{&] +[s7; -|TopWindow app;&] +[s7; -|app.SetRect(0, 0, 200, 20);&] +[s7; -|EditString text;&] +[s7; -|app.Add(text.TopPosZ(0, 20).HSizePos());&] +[s7; &] +[s7; -|text [* <<`=] `"Some text `- operator version`";&] +[s7; -|app.Run();&] +[s7; -|PromptOK((String)[* `~]text);&] +[s7; `}&] +[s5; &] +[s3;:18: 18. Accepting and rejecting widgets&] +[s5; Ctrl interface provides&] +[s5; &] +[s7; -|virtual bool [* Accept]();&] +[s7; -|virtual void [* Reject]();&] +[s5; &] +[s5; methods. [*/ Accepting] is usually a reaction to pressing OK button +or similar approve operation and usually involves testing for +correct content and finishing any pending operations for widget +(this may involve e.g. updating data to SQL database). Accept +must return [* true] if widget is accepted.&] +[s5; Default Ctrl implementation calls GetData for the widget. If +ErrorValue (special Value content) is returned by GetData, displays +error information contained and returns false, otherwise recursively +calls Accept for all children, anding the loop and returning +false when any child returns one. If no false was returned so +far, Accept returns true.&] +[s5; The opposite method to Accept is [*/ Reject]. This is used when +Cancel button is pressed or similar rejecting action. It simply +cancels all pending operations on widget. Default implementation +calls Reject for all children.&] +[s5; &] +[s7; #include &] +[s7; &] +[s7; using namespace Upp;&] +[s7; &] +[s7; GUI`_APP`_MAIN&] +[s7; `{&] +[s7; -|TopWindow app;&] +[s7; -|app.SetRect(0, 0, 200, 20);&] +[s7; -|EditDate date;&] +[s7; -|app.Add(date.TopPosZ(0, 20).HSizePos());&] +[s7; -|app.Run();&] +[s7; -|if(app.[* Accept]())&] +[s7; -|-|PromptOK(`"Correct date.`&`[`* `" `+ AsString(`~date));&] +[s7; `}&] +[s5; &] +[s0;= +@@image:1029&260 +(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) + +@@image:854&629 +(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) +&] +[s5;= &] +[s0;= +@@image:1029&260 +(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) + +@@image:874&629 +(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) +&] +[s5;= &] +[s3;:19: 19. Widget edit status flags&] +[s5; Ctrl interface provides several edit status flags:&] +[s5;l160;i150;O0; [*/ Enabled]/[*/ Disabled] `- disabled widgets do not +receive any input. Disabled status is usually expressed by altered +visual appearance of widget.&] +[s5;l160;i150;O0; [*/ Editable]/[*/ ReadOnly] `- read only widgets receive +input messages but no changes to data are allowed. The difference +from disabled status is that ReadOnly status allows read operations, +like selecting and copying data to clipboard.&] +[s5;l160;i150;O0; [*/ Modified] `- modify flag is set to true whenever +data in widget change `- either by user action or by widget`'s +interface. Flag is cleared by [* ClearModify] method.&] +[s5; Note that with exception of suppressing input events for disabled +state, implementation of widgets is responsible for correct behaviour +with respect to listed flags.&] +[s5; &] +[s7; #include &] +[s7; &] +[s7; using namespace Upp;&] +[s7; &] +[s7; GUI`_APP`_MAIN&] +[s7; `{&] +[s7; -|TopWindow app;&] +[s7; -|app.SetRect(0, 0, 200, 60);&] +[s7; -|EditDate date1, date2, date3;&] +[s7; -|date1 <<`= date2 <<`= date3 <<`= GetSysDate();&] +[s7; -|date1.[* ClearModify]();&] +[s7; -|app.Add(date1.TopPosZ(0, 20).HSizePos());&] +[s7; -|date2.[* Disable]();&] +[s7; -|app.Add(date2.TopPosZ(20, 20).HSizePos());&] +[s7; -|date3.[* SetReadOnly]();&] +[s7; -|app.Add(date3.TopPosZ(40, 20).HSizePos());&] +[s7; -|app.Run();&] +[s7; -|if(date1.[* IsModified]())&] +[s7; -|-|PromptOK(`"Date was modified!`");&] +[s7; `}&] +[s5; &] +[s0;= +@@image:1029&460 +(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) + +@@image:994&629 +(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) +&] +[s5; &] +[s3;:20: 20. Breaking the modal loop&] +[s5; When you invoke [* Run] for your TopWindow, the new event loop +is entered. In order to exit it, e.g. by pressing the button, +you have to call TopWindow`'s [* Break] method. Argument passed +to Break is then returned from Run.&] +[s5; &] +[s7; #include &] +[s7; &] +[s7; using namespace Upp;&] +[s7; &] +[s7; struct MyApp : TopWindow `{&] +[s7; -|Button exit;&] +[s7; &] +[s7; -|void Exit() `{&] +[s7; -|-|[* Break](999);&] +[s7; -|`}&] +[s7; -|&] +[s7; -|typedef MyApp CLASSNAME;&] +[s7; -|&] +[s7; -|MyApp() `{&] +[s7; -|-|SetRect(0, 0, 100, 100);&] +[s7; -|-|Add(exit.SetLabel(`"exit`").LeftPosZ(10, 64).TopPosZ(10, 24));&] +[s7; -|-|exit <<`= THISBACK(Exit);&] +[s7; -|`}&] +[s7; `};&] +[s7; &] +[s7; GUI`_APP`_MAIN&] +[s7; `{&] +[s7; -|MyApp().Run();&] +[s7; `}&] +[s5; &] +[s5; As this is very common situation, TopWindow provides another +method, [* Breaker], which returns a Callback which, when invoked, +performs the [* Break].&] +[s5; &] +[s7; #include &] +[s7; &] +[s7; using namespace Upp;&] +[s7; &] +[s7; struct MyApp : TopWindow `{&] +[s7; -|Button exit;&] +[s7; &] +[s7; -|typedef MyApp CLASSNAME;&] +[s7; -|&] +[s7; -|MyApp() `{&] +[s7; -|-|SetRect(0, 0, 100, 100);&] +[s7; -|-|Add(exit.SetLabel(`"exit`").LeftPosZ(10, 64).TopPosZ(10, 24));&] +[s7; -|-|exit <<`= [* Breaker](999);&] +[s7; -|`}&] +[s7; `};&] +[s7; &] +[s7; GUI`_APP`_MAIN&] +[s7; `{&] +[s7; -|MyApp().Run();&] +[s7; `}&] +[s5; &] +[s5; Another common situation is handling OK and Cancel buttons. +OK button has to Accept the dialog before breaking the loop (if +accept is successful), Cancel has to Reject it. TopWindow therefore +provides [* Acceptor] and [* Rejector] methods providing Callbacks +that invoke [* Accept] and [* Reject] as needed before calling the +[* Break].&] +[s5; &] +[s7; #include &] +[s7; &] +[s7; using namespace Upp;&] +[s7; &] +[s7; struct MyApp : TopWindow `{&] +[s7; -|Button ok, cancel;&] +[s7; -|EditDate date;&] +[s7; &] +[s7; -|typedef MyApp CLASSNAME;&] +[s7; -|&] +[s7; -|MyApp() `{&] +[s7; -|-|SetRect(0, 0, 200, 90);&] +[s7; -|-|Add(date.LeftPosZ(10, 80).TopPosZ(10, 20));&] +[s7; -|-|Add(ok.SetLabel(`"OK`").LeftPosZ(10, 64).TopPosZ(40, 24));&] +[s7; -|-|Add(cancel.SetLabel(`"Cancel`").LeftPosZ(100, 64).TopPosZ(40, +24));&] +[s7; &] +[s7; -|-|ok.[* Ok]() <<`= [* Acceptor]([*@(128.0.255) IDOK]);&] +[s7; -|-|cancel.[* Cancel]() <<`= [* Rejector]([*@(128.0.255) IDCANCEL]);&] +[s7; -|`}&] +[s7; `};&] +[s7; &] +[s7; GUI`_APP`_MAIN&] +[s7; `{&] +[s7; -|MyApp app;&] +[s7; -|switch(app.Run()) `{&] +[s7; -|case [*@(128.0.255) IDOK]:&] +[s7; -|-|PromptOK(String().Cat() << `"OK: `" << `~app.date);&] +[s7; -|-|break;&] +[s7; -|case [*@(128.0.255) IDCANCEL]:&] +[s7; -|-|Exclamation(`"Canceled`");&] +[s7; -|`}&] +[s7; `}&] +[s5; &] +[s5; Calls to [* Ok] and [* Cancel] methods of Button here make Button +react to Enter and Esc keys.&] +[s5; &] +[s5; To reduce tedious tasks even further, there are CtrlLayoutOK, +CtrlLayoutCancel, CtrlLayoutOKCancel etc. template functions +that both setup layout and assign Acceptors and Rejectors.&] +[s5; &] +[s7; #include &] +[s7; &] +[s7; using namespace Upp;&] +[s7; &] +[s7; #define LAYOUTFILE &] +[s7; #include &] +[s7; &] +[s7; GUI`_APP`_MAIN&] +[s7; `{&] +[s7; -|WithMyAppLayout app;&] +[s7; -|[* CtrlLayoutOKCancel](app, `"MyApp`");&] +[s7; -|switch(app.Run()) `{&] +[s7; -|case IDOK:&] +[s7; -|-|PromptOK(String().Cat() << `"OK: `" << `~app.date);&] +[s7; -|-|break;&] +[s7; -|case IDCANCEL:&] +[s7; -|-|Exclamation(`"Canceled`");&] +[s7; -|`}&] +[s7; `}&] +[s5; &] +[s5; Note: IDOK, IDCANCEL are predefined constants.&] +[s3;:21: 21. Creating and using custom widgets&] +[s5; There is really nothing special about creating your own widgets. +All that is to be done is to derive your own class from Ctrl +(or some other existing widget, if that fits better) and override +Ctrl`'s virtual methods to paint the widgets and do something +useful:&] +[s5; &] +[s7; struct MyCtrl : public Ctrl `{&] +[s7; -|int count;&] +[s7; -|&] +[s7; -|virtual void Paint(Draw`& w) `{&] +[s7; -|-|w.DrawRect(GetSize(), White());&] +[s7; -|-|w.DrawText(2, 2, AsString(count));&] +[s7; -|`}&] +[s7; -|&] +[s7; -|virtual void LeftDown(Point, dword) `{&] +[s7; -|-|count`+`+;&] +[s7; -|-|Refresh();&] +[s7; -|`}&] +[s7; -|&] +[s7; -|MyCtrl() `{ count `= 0; `}&] +[s7; `};&] +[s5; &] +[s5; To put your widget into your layout based dialog, the simple +way is to add it as `"User class`". In that case you just fill +in the name of class and layout designer shows the custom widget +as empty rectangle with class name sticked on it:&] +[s5; &] +[s0;= +@@image:2374&1454 +(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) +&] +[s5; &] +[s5; Note that layout file has to be included [* after] declaration +of custom widget (so that the class is defined at that point).&] +[s5; While empty rectangle in layout designer is usually enough for +seldom used widgets, you can also teach TheIDE to show something +better using .usc script file:&] +[s5; &] +[s7; ctrl MyCtrl `{&] +[s7; -|group `"Example`";&] +[s7; &] +[s7; -|GetMinSize() `{ sz `= GetTextSize(`"X`"); sz.cy `+`= 2; return +sz; `}&] +[s7; -|GetStdSize() `{ sz `= GetMinSize(); sz.cx `*`= 7; return sz; +`}&] +[s7; &] +[s7; -|Paint(w) `{&] +[s7; -|-|r `= GetRect();&] +[s7; -|-|w.DrawRect(r, :White);&] +[s7; -|-|w.DrawText(2, 2, `"0`", StdFont(), :Black);&] +[s7; -|`}&] +[s7; `};&] +[s5; &] +[s5; [/ Note: This is not the C`+`+, but a piece of script in `"Esc`" +scripting language, interpreted by layout designer.]&] +[s5;/ &] +[s0;= +@@image:1120&600 +(A+AAeAAAAAAAAAAAAHic7d0xTsMAEEXB3P9U3CykQUIRBWvLy8OaUQ4Q73+VGz+fAAAA/OwBFzvZ5wdcRp+U6ZMyfVKmT8r0SZk+KdMnZfqkTJ+U6ZMyfVKmT8r0SZk+KdMnZfqkTJ+U6ZMyfVKmT8r0SZk+KdMnZfqkTJ+U6ZMyfVKmT8r0SZk+KdMnZfqkTJ+U6ZMyfVJ2jz7PPAIjy8vqk5HlZfXJyPKy+mRkeVl9MrK87M36fHw5vQM/W172Tn1+fxaJXmR5WX0ysrysPhlZXlafjCwvq09GlpfVJyPLy75mfPuNpPp8er90veVlb9YnV1teVp+MLC+rT0aWl9UnI8vL6pOR5WXv9H6JBcvL6pOR5WX1ycjysvpkZHlZfTKyvKw+GVleVp+MLC+rT0aWl9UnI8vL6pOR5WXv0Sd3pU/K9EmZPinTJ2X6pEyflOmTMn1Spk/K9EmZPinTJ2X6pEyflOmTMn1Spk/K9EmZPinTJ2X6pEyflOmTMn1Spk/K9EmZPinTJ2X6pEyflOmTMn1Spk/K9EmZPik73ye/8/4d87/+P//Fqe+/80vufIy77XDnY9xthzsf42473PkYd9vhzse4GwAAAADAyydQulkb) +&] +[s5; &] +[s3;:22: 22. Non`-modal dialogs&] +[s5; To have non`-modal dialog, just open [* Open] it passing its owner +window as parameter. Usually the best arrangement is to have +non`-modal dialog as member variable of its owner window. Non`-modal +dialog is dismissed using the [* Close] method just like any other +window.&] +[s5; &] +[s7; #include &] +[s7; &] +[s7; using namespace Upp;&] +[s7; &] +[s7; struct NonModalDialog : public TopWindow `{&] +[s7; -|Button b;&] +[s7; -|&] +[s7; -|void DoClose() `{&] +[s7; -|-|[* Close]();&] +[s7; -|`}&] +[s7; -|&] +[s7; -|typedef NonModalDialog CLASSNAME;&] +[s7; -|&] +[s7; -|NonModalDialog() `{&] +[s7; -|-|SetRect(0, 0, 200, 50);&] +[s7; -|-|Add(b.SetLabel(`"Close non`-modal dialog`").SizePos());&] +[s7; -|-|b <<`= THISBACK(DoClose);&] +[s7; -|`}&] +[s7; `};&] +[s7; &] +[s7; struct MainWindow : public TopWindow `{&] +[s7; -|[* NonModalDialog dlg];&] +[s7; -|Button b;&] +[s7; -|&] +[s7; -|void DoOpen() `{&] +[s7; -|-|if(dlg.IsOpen())&] +[s7; -|-|-|[* dlg.Close();]&] +[s7; -|-|else&] +[s7; -|-|-|[* dlg.Open(this);]&] +[s7; -|`}&] +[s7; -|&] +[s7; -|typedef MainWindow CLASSNAME;&] +[s7; -|&] +[s7; -|MainWindow() `{&] +[s7; -|-|SetRect(0, 0, 400, 100);&] +[s7; -|-|Add(b.SetLabel(`"Open/close non`-modal dialog`").SizePos());&] +[s7; -|-|b <<`= THISBACK(DoOpen);&] +[s7; -|`}&] +[s7; `};&] +[s7; &] +[s7; GUI`_APP`_MAIN&] +[s7; `{&] +[s7; -|MainWindow win;&] +[s7; -|win.Run();&] +[s7; `}&] +[s5;/ &] +[s0;= +@@image:2084&940 +(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) +&] +[s5;/ &] +[s3; Recommended tutorials:&] +[s5; If you want to learn more, we have several tutorials that you +can find useful:&] +[s5;l192;i150;O0; [^topic`:`/`/Draw`/srcdoc`/DrawTutorial`$en`-us^ Draw +tutorial ]`- in this tutorial we show more advance techniques +of drawing inside window. This is the natural continue of things +mention on this page.&] +[s5;l192;i150;O0; [^topic`:`/`/Draw`/srcdoc`/ImgTutorial`$en`-us^ Image +tutorial] `- here we move things related to images. We show how +to create, use and embed icons directly in application.&] +[s5;l192;i150;O0; [^topic`:`/`/Core`/srcdoc`/CoreTutorial`$en`-us^ Core +value types tutorial] `- learn basics about non user U`+`+ related code.]] \ No newline at end of file diff --git a/uppsrc/CtrlLib/srcdoc.tpp/Updater$en-us.tpp b/uppsrc/CtrlLib/srcdoc.tpp/Updater_en-us.tpp similarity index 97% rename from uppsrc/CtrlLib/srcdoc.tpp/Updater$en-us.tpp rename to uppsrc/CtrlLib/srcdoc.tpp/Updater_en-us.tpp index ed4ab45ed..5e113dbde 100644 --- a/uppsrc/CtrlLib/srcdoc.tpp/Updater$en-us.tpp +++ b/uppsrc/CtrlLib/srcdoc.tpp/Updater_en-us.tpp @@ -1,57 +1,57 @@ -topic "About Updater"; -[2 $$0,0#00000000000000000000000000000000:Default] -[l288;i704;a17;O9;~~~.992;2 $$1,0#10431211400427159095818037425705:param] -[a83;*R6 $$2,5#31310162474203024125188417583966:caption] -[b83;*2 $$3,5#07864147445237544204411237157677:title] -[i288;b167;a42;O9;C2 $$4,6#40027414424643823182269349404212:item] -[b42;a42;2 $$5,5#45413000475342174754091244180557:text] -[l288;a17;2 $$6,6#27521748481378242620020725143825:desc] -[l321;t246;C@5;1 $$7,7#20902679421464641399138805415013:code] -[b2503;2 $$8,0#65142375456100023862071332075487:separator] -[*@(0.0.255)2 $$9,0#83433469410354161042741608181528:base] -[t4167;C2 $$10,0#37138531426314131251341829483380:class] -[l288;a17;*1 $$11,11#70004532496200323422659154056402:requirement] -[i417;b42;a42;O9;~~~.416;2 $$12,12#10566046415157235020018451313112:tparam] -[b167;C2 $$13,13#92430459443460461911108080531343:item1] -[i288;a42;O9;C2 $$14,14#77422149456609303542238260500223:item2] -[*@2$(0.128.128)2 $$15,15#34511555403152284025741354420178:NewsDate] -[l321;*C$7;2 $$16,16#03451589433145915344929335295360:result] -[l321;b83;a83;*C$7;2 $$17,17#07531550463529505371228428965313:result`-line] -[l160;t4167;*C+117 $$18,5#88603949442205825958800053222425:package`-title] -[{_}%EN-US -[s2; About Updater&] -[s0; Updater.exe and related CtrlLib routines can save a lot of maintainance -costs when deploying new application versions at large client`'s -side.&] -[s0; &] -[s0; The ideas is this: New version is placed to the network drive. -When user starts his local application, it checks network directory -for the new version. If there is any, application starts updater -and exits. Updater overwrites current version with new one and -restarts it. Note that the need for updater is caused by fact -that .exe cannot overwrite itself.&] -[s0; &] -[s0; See CtrlLib/Update for details.&] -[s0; &] -[s0; Now the funny part is that it can update even more than itself -`- it is used to update any files in app directory. So updater.exe -itself is updated by application. Last development has gone even -so far, that Oracle client installation is `"updated`", that -in fact means that deploying our Oracle apps can be done by copying -two files to clients directory `- app itself and `"q.ini`" file, -which basically contains information about network directory -in UPDATE`=[/ path ]entry.&] -[s0; &] -[s0; Example `- this is how some of our app GUI`_APP`_MAIN looks -like:&] -[s0; &] -[s7; GUI`_APP`_MAIN&] -[s7; `{&] -[s7; -|SelfUpdate(); // SelfUpdate updates updater.exe first and then -app itself&] -[s7; -|UpdateFile(`"cs`-cz.scd`"); // Update czech spelling checker&] -[s7; -|UpdateFile(`"logo.bmp`"); // Update company logo to be used -in reports&] -[s0; &] -[s0; &] +topic "About Updater"; +[2 $$0,0#00000000000000000000000000000000:Default] +[l288;i704;a17;O9;~~~.992;2 $$1,0#10431211400427159095818037425705:param] +[a83;*R6 $$2,5#31310162474203024125188417583966:caption] +[b83;*2 $$3,5#07864147445237544204411237157677:title] +[i288;b167;a42;O9;C2 $$4,6#40027414424643823182269349404212:item] +[b42;a42;2 $$5,5#45413000475342174754091244180557:text] +[l288;a17;2 $$6,6#27521748481378242620020725143825:desc] +[l321;t246;C@5;1 $$7,7#20902679421464641399138805415013:code] +[b2503;2 $$8,0#65142375456100023862071332075487:separator] +[*@(0.0.255)2 $$9,0#83433469410354161042741608181528:base] +[t4167;C2 $$10,0#37138531426314131251341829483380:class] +[l288;a17;*1 $$11,11#70004532496200323422659154056402:requirement] +[i417;b42;a42;O9;~~~.416;2 $$12,12#10566046415157235020018451313112:tparam] +[b167;C2 $$13,13#92430459443460461911108080531343:item1] +[i288;a42;O9;C2 $$14,14#77422149456609303542238260500223:item2] +[*@2$(0.128.128)2 $$15,15#34511555403152284025741354420178:NewsDate] +[l321;*C$7;2 $$16,16#03451589433145915344929335295360:result] +[l321;b83;a83;*C$7;2 $$17,17#07531550463529505371228428965313:result`-line] +[l160;t4167;*C+117 $$18,5#88603949442205825958800053222425:package`-title] +[{_}%EN-US +[s2; About Updater&] +[s0; Updater.exe and related CtrlLib routines can save a lot of maintainance +costs when deploying new application versions at large client`'s +side.&] +[s0; &] +[s0; The ideas is this: New version is placed to the network drive. +When user starts his local application, it checks network directory +for the new version. If there is any, application starts updater +and exits. Updater overwrites current version with new one and +restarts it. Note that the need for updater is caused by fact +that .exe cannot overwrite itself.&] +[s0; &] +[s0; See CtrlLib/Update for details.&] +[s0; &] +[s0; Now the funny part is that it can update even more than itself +`- it is used to update any files in app directory. So updater.exe +itself is updated by application. Last development has gone even +so far, that Oracle client installation is `"updated`", that +in fact means that deploying our Oracle apps can be done by copying +two files to clients directory `- app itself and `"q.ini`" file, +which basically contains information about network directory +in UPDATE`=[/ path ]entry.&] +[s0; &] +[s0; Example `- this is how some of our app GUI`_APP`_MAIN looks +like:&] +[s0; &] +[s7; GUI`_APP`_MAIN&] +[s7; `{&] +[s7; -|SelfUpdate(); // SelfUpdate updates updater.exe first and then +app itself&] +[s7; -|UpdateFile(`"cs`-cz.scd`"); // Update czech spelling checker&] +[s7; -|UpdateFile(`"logo.bmp`"); // Update company logo to be used +in reports&] +[s0; &] +[s0; &] [s0; ] \ No newline at end of file diff --git a/uppsrc/Draw/src.tpp/DDARasterizer$en-us.tpp b/uppsrc/Draw/src.tpp/DDARasterizer_en-us.tpp similarity index 100% rename from uppsrc/Draw/src.tpp/DDARasterizer$en-us.tpp rename to uppsrc/Draw/src.tpp/DDARasterizer_en-us.tpp diff --git a/uppsrc/Draw/src.tpp/DataDrawer$en-us.tpp b/uppsrc/Draw/src.tpp/DataDrawer_en-us.tpp similarity index 100% rename from uppsrc/Draw/src.tpp/DataDrawer$en-us.tpp rename to uppsrc/Draw/src.tpp/DataDrawer_en-us.tpp diff --git a/uppsrc/Draw/src.tpp/Display$en-us.tpp b/uppsrc/Draw/src.tpp/Display_en-us.tpp similarity index 100% rename from uppsrc/Draw/src.tpp/Display$en-us.tpp rename to uppsrc/Draw/src.tpp/Display_en-us.tpp diff --git a/uppsrc/Draw/src.tpp/Draw$en-us.tpp b/uppsrc/Draw/src.tpp/Draw_en-us.tpp similarity index 100% rename from uppsrc/Draw/src.tpp/Draw$en-us.tpp rename to uppsrc/Draw/src.tpp/Draw_en-us.tpp diff --git a/uppsrc/Draw/src.tpp/DrawingDraw$en-us.tpp b/uppsrc/Draw/src.tpp/DrawingDraw_en-us.tpp similarity index 100% rename from uppsrc/Draw/src.tpp/DrawingDraw$en-us.tpp rename to uppsrc/Draw/src.tpp/DrawingDraw_en-us.tpp diff --git a/uppsrc/Draw/src.tpp/Drawing$en-us.tpp b/uppsrc/Draw/src.tpp/Drawing_en-us.tpp similarity index 100% rename from uppsrc/Draw/src.tpp/Drawing$en-us.tpp rename to uppsrc/Draw/src.tpp/Drawing_en-us.tpp diff --git a/uppsrc/Draw/src.tpp/FontTextUtils$en-us.tpp b/uppsrc/Draw/src.tpp/FontTextUtils_en-us.tpp similarity index 100% rename from uppsrc/Draw/src.tpp/FontTextUtils$en-us.tpp rename to uppsrc/Draw/src.tpp/FontTextUtils_en-us.tpp diff --git a/uppsrc/Draw/src.tpp/Font$en-us.tpp b/uppsrc/Draw/src.tpp/Font_en-us.tpp similarity index 100% rename from uppsrc/Draw/src.tpp/Font$en-us.tpp rename to uppsrc/Draw/src.tpp/Font_en-us.tpp diff --git a/uppsrc/Draw/src.tpp/ImageBuffer$en-us.tpp b/uppsrc/Draw/src.tpp/ImageBuffer_en-us.tpp similarity index 100% rename from uppsrc/Draw/src.tpp/ImageBuffer$en-us.tpp rename to uppsrc/Draw/src.tpp/ImageBuffer_en-us.tpp diff --git a/uppsrc/Draw/src.tpp/ImageEncoder$en-us.tpp b/uppsrc/Draw/src.tpp/ImageEncoder_en-us.tpp similarity index 100% rename from uppsrc/Draw/src.tpp/ImageEncoder$en-us.tpp rename to uppsrc/Draw/src.tpp/ImageEncoder_en-us.tpp diff --git a/uppsrc/Draw/src.tpp/ImageMaker$en-us.tpp b/uppsrc/Draw/src.tpp/ImageMaker_en-us.tpp similarity index 100% rename from uppsrc/Draw/src.tpp/ImageMaker$en-us.tpp rename to uppsrc/Draw/src.tpp/ImageMaker_en-us.tpp diff --git a/uppsrc/Draw/src.tpp/Image$en-us.tpp b/uppsrc/Draw/src.tpp/Image_en-us.tpp similarity index 100% rename from uppsrc/Draw/src.tpp/Image$en-us.tpp rename to uppsrc/Draw/src.tpp/Image_en-us.tpp diff --git a/uppsrc/Draw/src.tpp/Iml$en-us.tpp b/uppsrc/Draw/src.tpp/Iml_en-us.tpp similarity index 100% rename from uppsrc/Draw/src.tpp/Iml$en-us.tpp rename to uppsrc/Draw/src.tpp/Iml_en-us.tpp diff --git a/uppsrc/Draw/src.tpp/PaintRect$en-us.tpp b/uppsrc/Draw/src.tpp/PaintRect_en-us.tpp similarity index 100% rename from uppsrc/Draw/src.tpp/PaintRect$en-us.tpp rename to uppsrc/Draw/src.tpp/PaintRect_en-us.tpp diff --git a/uppsrc/Draw/src.tpp/RasterEncoder$en-us.tpp b/uppsrc/Draw/src.tpp/RasterEncoder_en-us.tpp similarity index 100% rename from uppsrc/Draw/src.tpp/RasterEncoder$en-us.tpp rename to uppsrc/Draw/src.tpp/RasterEncoder_en-us.tpp diff --git a/uppsrc/Draw/src.tpp/RasterFormat$en-us.tpp b/uppsrc/Draw/src.tpp/RasterFormat_en-us.tpp similarity index 100% rename from uppsrc/Draw/src.tpp/RasterFormat$en-us.tpp rename to uppsrc/Draw/src.tpp/RasterFormat_en-us.tpp diff --git a/uppsrc/Draw/src.tpp/Raster$en-us.tpp b/uppsrc/Draw/src.tpp/Raster_en-us.tpp similarity index 100% rename from uppsrc/Draw/src.tpp/Raster$en-us.tpp rename to uppsrc/Draw/src.tpp/Raster_en-us.tpp diff --git a/uppsrc/Draw/src.tpp/Rasters$en-us.tpp b/uppsrc/Draw/src.tpp/Rasters_en-us.tpp similarity index 100% rename from uppsrc/Draw/src.tpp/Rasters$en-us.tpp rename to uppsrc/Draw/src.tpp/Rasters_en-us.tpp diff --git a/uppsrc/Draw/src.tpp/StreamRasterEncoder$en-us.tpp b/uppsrc/Draw/src.tpp/StreamRasterEncoder_en-us.tpp similarity index 100% rename from uppsrc/Draw/src.tpp/StreamRasterEncoder$en-us.tpp rename to uppsrc/Draw/src.tpp/StreamRasterEncoder_en-us.tpp diff --git a/uppsrc/Draw/src.tpp/UHD$en-us.tpp b/uppsrc/Draw/src.tpp/UHD_en-us.tpp similarity index 100% rename from uppsrc/Draw/src.tpp/UHD$en-us.tpp rename to uppsrc/Draw/src.tpp/UHD_en-us.tpp diff --git a/uppsrc/Draw/srcdoc.tpp/DrawOutput$en-us.tpp b/uppsrc/Draw/srcdoc.tpp/DrawOutput_en-us.tpp similarity index 100% rename from uppsrc/Draw/srcdoc.tpp/DrawOutput$en-us.tpp rename to uppsrc/Draw/srcdoc.tpp/DrawOutput_en-us.tpp diff --git a/uppsrc/Draw/srcdoc.tpp/DrawTutorial$en-us.tpp b/uppsrc/Draw/srcdoc.tpp/DrawTutorial_en-us.tpp similarity index 100% rename from uppsrc/Draw/srcdoc.tpp/DrawTutorial$en-us.tpp rename to uppsrc/Draw/srcdoc.tpp/DrawTutorial_en-us.tpp diff --git a/uppsrc/Draw/srcdoc.tpp/ImgTutorial$en-us.tpp b/uppsrc/Draw/srcdoc.tpp/ImgTutorial_en-us.tpp similarity index 100% rename from uppsrc/Draw/srcdoc.tpp/ImgTutorial$en-us.tpp rename to uppsrc/Draw/srcdoc.tpp/ImgTutorial_en-us.tpp diff --git a/uppsrc/Esc/srcdoc.tpp/Esc$en-us.tpp b/uppsrc/Esc/srcdoc.tpp/Esc_en-us.tpp similarity index 97% rename from uppsrc/Esc/srcdoc.tpp/Esc$en-us.tpp rename to uppsrc/Esc/srcdoc.tpp/Esc_en-us.tpp index 4773298f2..b51c65806 100644 --- a/uppsrc/Esc/srcdoc.tpp/Esc$en-us.tpp +++ b/uppsrc/Esc/srcdoc.tpp/Esc_en-us.tpp @@ -1,498 +1,498 @@ -topic "Esc scripting language"; -[2 $$0,0#00000000000000000000000000000000:Default] -[b133;a83;*+117 $$1,0#31310162474203024125188417583966:subtitle] -[b83;*+150 $$2,0#07864147445237544204411237157677:title] -[l321;C@5;1 $$3,3#20902679421464641399138805415013:code] -[{_}%EN-US -[s0; [*R8 Esc scripting language]&] -[s0; &] -[s0; Esc is a simple scripting language intended for embedding in -Ultimate`+`+ applications.&] -[s0; &] -[s0; It is typeless, value oriented language with simple interfacing -with C`+`+/U`+`+ code. It is very simple yet quite complete language.&] -[s0; &] -[s2; Value types&] -[s1; voids&] -[s0; All variables have void value before assigned any other value. -Void type has single value&] -[s0; &] -[s3; void&] -[s0; &] -[s0; and expression can be tested for voidness using [@(128.0.255) is`_void] -function.&] -[s1; numbers&] -[s0; Number is floating point number (corresponding to C type double). -Examples of number literals:&] -[s0; &] -[s3; 1&] -[s3; 1.123&] -[s3; 1.123e`-96&] -[s3; 0x123-|-|[@4 // hexadecimal]&] -[s3; 0123 -|-|[@4 // octal]&] -[s3; 0b10100100-|-|[@4 // binary]&] -[s3; `'x`'-|-|-|[@4 // character code]&] -[s0; &] -[s0; Esc supports common C`-like operations for number values.&] -[s1; arrays&] -[s0; Arrays are ordered random access sequences of other Esc values -(nested arrays included). Array values are specified using [@(128.0.255) `[`]] -brackets:&] -[s0; &] -[s3; `[`]-|-|-|-|[@4 // empty array]&] -[s3; `[ 1, 2, 3, 4, 5 `]&] -[s3; `[ 1, `[2, 3`], 4 `]-|-|[@4 // array contains nested array]&] -[s3; `"Hello`"-|-|-|[@4 // equivalent to `[`'H`', `'e`', `'l`', `'l`', -`'o`'`]]&] -[s3; `[ 1, 2, 3 `* alfa `]-|[@4 // expressions can be used as well]&] -[s0; &] -[s0; Number of elements in the array can be retrieved by standard -function count.&] -[s0; &] -[s0; Accessing elements of arrays is provided by subscript [@(128.0.255) `[ -`]] operator:&] -[s0; &] -[s3; a`[0`]&] -[s3; a`[1`] `= 3&] -[s0; &] -[s0; First element of array corresponds to index [@(128.0.255) `[0`]].&] -[s0; &] -[s0; Negative indexes are allowed and designate elements from the -end of array: [@(128.0.255) `[`-1`]] is last element of array, [@(128.0.255) `[`-2`]] -last but one etc.&] -[s0; &] -[s3; a`[`-1`]&] -[s0; &] -[s0; is equivalent to&] -[s0; &] -[s3; a`[count(a) `- 1`]&] -[s0; &] -[s0; When index is used for the r`-value (standing on the right side -of [@(128.0.255) `=]), index is range checked. For l`-value, if -non`-negative index designates element past the of the array, -array is expanded with void values to create this element.&] -[s0; &] -[s0; `"Empty`" index [@(128.0.255) `[`]] designates element past last -and can be used to add elements to the array:&] -[s0; &] -[s3; x`[`] `= item&] -[s0; &] -[s0; is equivalent to&] -[s0; &] -[s3; x`[count(x)`] `= item&] -[s0; &] -[s0; Range of element in array can be obtained or changed using slices:&] -[s0; &] -[s3; array`[pos, count`]&] -[s0; &] -[s0; designates array slice of [/ count] elements starting with [/ pos] -element.&] -[s0; &] -[s3; x`[start:end`]&] -[s0; &] -[s0; designates array slice of [/ end `- start] elements starting with -[/ start] .&] -[s0; &] -[s0; Parts of slices can be ommited&] -[s0; &] -[s3; array`[pos,`]&] -[s0; or&] -[s3; array`[pos:`]&] -[s0; &] -[s0; is equivalent to&] -[s0; &] -[s3; array`[pos : count(array)`]&] -[s0; &] -[s0; and&] -[s0; &] -[s3; array`[,count`]&] -[s0; or&] -[s3; array`[:count`]&] -[s0; &] -[s0; is equivalent to&] -[s0; &] -[s3; array`[0, count`]&] -[s0; &] -[s0; When slices are used as l`-value, corresponding part of the -array is replaced:&] -[s0; &] -[s3; s `= `"1234`";&] -[s3; s`[1: `-1`] `= `"xXx`";-|[@4 // s is now `"1xXx4`"]&] -[s0; &] -[s0; Several operators can be applied to arrays&] -[s0; &] -[s3; array1 `+ array2&] -[s0; &] -[s0; concatenates two arrays,&] -[s0; &] -[s3; array `* number&] -[s3; number `* array&] -[s0; &] -[s0; repeats array number times.&] -[s0; &] -[s3; array `+`= array1&] -[s0; &] -[s0; is equivalent to&] -[s0; &] -[s3; array `= array `+ array1&] -[s0; &] -[s0; also&] -[s0; &] -[s3; array << array1 << array2 << array3&] -[s0; &] -[s0; is equivalent to&] -[s0; &] -[s3; array `= array `+ array1 `+ array2 `+ array3&] -[s0; &] -[s0; Esc allows [/ void] value on the right side of array concatenation -expression `- in such cases, operator has no effect.&] -[s1; maps&] -[s0; Maps contain key`-value pairs as entries. Normal subscripts -[@(128.0.255) `[`]] are used to access map entries:&] -[s0; &] -[s3; map`[key`] `= value&] -[s0; &] -[s0; All entries in map that are not assigned a non`-void value have -void value. This way assigning void to the map key can be considered -as removing entry from the map&] -[s0; &] -[s3; map`[key`] `= void&] -[s0; &] -[s0; and testing entry for being void can be considered as test -of key presence in map:&] -[s0;C &] -[s3; if(is`_void(map`[key`])) `{ ... `}&] -[s0; &] -[s0; As the special exception, when a void value appears before an -l`-value [@(128.0.255) `[`]], it is changed to the empty map:&] -[s0; &] -[s3; x `= void; // x is void&] -[s3; x`[key`] `= value; // x is now map&] -[s0; &] -[s0; Maps are also used to create compound data structures. To make -this job easier, special [/ .field] syntax is supported:&] -[s0; &] -[s3; x.field `= value;&] -[s0; &] -[s0; is equivalent to&] -[s0; &] -[s3; x`[`"field`"`] `= value;&] -[s0; &] -[s0; Map values can also be specified using `{`} braces:&] -[s0; &] -[s3; `{`} // empty map&] -[s3; `{ `"alfa`":10, `"beta`":20, 20:`"40`" `}&] -[s3; `{ 2 `* a : `"100`" `} // map values can contain expressions&] -[s1; lambdas&] -[s0; Lambdas represent executable Esc code. Lambda values are introduced -using [@(128.0.255) `@] character:&] -[s0; &] -[s3; `@(x) `{ return 2 `* x; `}&] -[s0; &] -[s0; Assigning lambda value to variable is equivalent to defining -a function:&] -[s0; &] -[s3; :foo `= `@(x) `{ return 2 `* x; `};-|[@4 // defines global function -foo]&] -[s0; &] -[s0; If lambda argument is preceded with [@(128.0.255) `&] character, -it designates input`-output argument (other arguments are input -only).&] -[s0; &] -[s0; [*@(128.0.255) ... ]at the end of the argument list allows variable -number of arguments to be present. In that case, additional parameters -are passed in [/ argv] variable of type array.&] -[s0; &] -[s3; :sum `= `@(...) `{ s `= 0; for(i in argv) s `+`= argv`[i`]; `}&] -[s0; &] -[s0; Parameters can have default values separated by [@(128.0.255) `=]:&] -[s0; &] -[s3; :bar `= `@(x `= 0) `{ ... `}&] -[s0; &] -[s0; To make life easier, alternative form of function definition -is available:&] -[s0; &] -[s3; #:foo(x) `{ return 2 `* x; `}&] -[s2;i150;O9; Variables and contexts&] -[s0; &] -[s0; Variable names in Esc follow C principles (are case sensitive, -start with alphabetic character or [@(128.0.255) `_] and can contain -alphabetic characters, [@(128.0.255) `_] and numbers).&] -[s0; &] -[s0; Esc distinguishes three types of variables contexts using [*@(128.0.255) .] -and [*@(128.0.255) :] characters:&] -[s0; &] -[s3; var-|-|[@4 // local]&] -[s3; .var-|-|[@4 // instance]&] -[s3; :var-|-|[@4 // global]&] -[s0; &] -[s0; Local variables are specific to function, global variables are -shared among all functions. Instance variables &] -[s0; represent map values (keys designate variable names) of map -whose lambda value is invoked, or can be forced using binary -[@(128.0.255) !] bind operator:&] -[s0; &] -[s3; var.x `= 0;&] -[s3; var.Next `= `@() `{ .x`+`+; `};&] -[s3; var.Next();-|-|-|[@4 // var.x is now 1 ]&] -[s3; var1.x `= 0;&] -[s3; var.Next()! var1;-|-|[@4 // var1.x is now 1]&] -[s0; &] -[s0; To make programmer`'s life easier, one exception applies concerning -context `- when invoking lambda from local variable and lambda -is not present in it, instance and global contexts (in this order) -are tried as well:&] -[s0; &] -[s3; beta(x)&] -[s3; &] -[s0; Tries to get lambda form local [/ beta] variable first, then (if -no lambda found) from instance [/ beta ]variable and finally (if -still no lambda) from global [/ beta]. Of course, [*@(128.0.255) .] -and [*@(128.0.255) :] can still be used to designate context:&] -[s0; &] -[s3; :beta(x)-|-|-|-|[@4 // calls global beta even if local or instance -beta is present]&] -[s0; &] -[s2; Expressions&] -[s0; &] -[s0; When expressions are used as logical values, void, zero number -and map or array with zero elements represent [/ false], other -values are [/ true.]&] -[s0;/ &] -[s0; In following table, thick lines divide operators with the same -priority, with topmost items having the highest priority:&] -[s0; &] -[ {{4468:5532h1;@(216) [s0; Operator] -:: [s0; Comments] -::^@2 [s0; [/C map][*C `[][/C key][*C `]]] -:: [s0; Map value at [/ key].] -:: [s0; [/C map][*C .][/C field]] -:: [s0; Same as [/ map]`[`"[/ field]`"`].] -:: [s0; [/C array][*C `[][/C index][*C `]]] -:: [s0; Array element at position [/ index].] -:: [s0; [/C array][*C `[][/C start][*C , ][/C count][*C `]]] -:: [s0; Array slice starting at [/ start] of [/ count] elements.] -:: [s0; [/C array][*C `[][/C start][*C :][/C end][*C `]]] -:: [s0; Array slice of elements [/ start .. end] `- 1] -:: [s0; [/C array][*C `[,][/C count][*C `]]&] -[s0; [/C array][*C `[:][/C count][*C `]]] -:: [s0; Same as [/ array]`[0, [/ count]`].&] -[s0; ] -:: [s0; [/C array][*C `[][/C start][*C :`]]&] -[s0; [/C array][*C `[][/C start][*C ,`]]] -:: [s0; Same as [/ array]`[[/ start] : count(array)`]. ] -:: [s0; [/C lambda][*C (][/C args][*C )]] -:: [s0; Invokes [/ lambda] with the set of [/ args]. If lambda is subscript -of the map, map becomes instance for [/ lambda] execution (accessible -via [* .][/ name] or [* self]).] -:: [s0; [/C lambda][*C (][/C args][*C ) ! ][/C instance]] -:: [s0; Invokes [/ lambda], using[/ instance] as instance for lambda execution -(accessible via [* .][/ name] or [* self]).] -:: [s0; [*C self]] -:: [s0; Instance.] -::t33/15 [s0; [*C `+`+][/C l`-number]&] -[s0; [*C `-`-][/C l`-number]] -:: [s0; Increments/decrements number l`-value.] -::t0/15 [s0; [*C `-][/C number]] -:: [s0; Unary minus.] -:: [s0; [*C `~][/C number]] -:: [s0; Bit`-wise complement.] -:: [s0; [*C !][/C value]] -:: [s0; Logical not. 1 when value represents false, 0 otherwise.] -:: [s0; [/C l`-number][*C `-`-]&] -[s0; [/C l`-number][*C `+`+]] -:: [s0; Post`-increment / post`-decrement of number l`-value.] -::t33/15 [s0; [/C array][*C `* ][/C number]&] -[s0; [/C number][*C `* ][/C array]] -:: [s0; Returns [/ array][*/ ]repeated [/ number] times.] -::t0/15 [s0; [/C number][*C `* ][/C number]] -:: [s0; Multiplication.] -:: [s0; [/C number][*C / ][/C number]] -:: [s0; Division.] -:: [s0; [/C number][*C % ][/C number]] -:: [s0; Modulo.] -::t33/15 [s0; [/C array][*C `+ ][/C array]] -:: [s0; Concatenates [/ array]s.] -::t0/15 [s0; [/C number][*C `+ ][/C number]] -:: [s0; Addition.] -:: [s0; [/C number][*C `- ][/C number]] -:: [s0; Subtraction.] -::t33/15 [s0; [/C l`-array][*C << ][/C array]] -:: [s0; Concatenates [/ array ]to [/ l`-array], yielding [/ l`-array ]as l`-value -result.] -::t0/15 [s0; [/C number][*C << ][/C number]] -:: [s0; Shift left.] -:: [s0; [/C number][*C >> ][/C number]] -:: [s0; Shift right.] -::t33/15 [s0; [/C number][*C < ][/C number]&] -[s0; [/C number][*C > ][/C number]&] -[s0; [/C number][*C <`= ][/C number]&] -[s0; [/C number][*C >`= ][/C number]] -:: [s0; Comparison of [/ number]s.] -::t0/15 [s0; [/C array][*C < ][/C array]&] -[s0; [/C array][*C > ][/C array]&] -[s0; [/C array][*C <`= ][/C array]&] -[s0; [/C array][*C >`= ][/C array]] -:: [s0; Comparison of [/ array]s.] -::t33/15 [s0; [/C value][*C `=`= ][/C value]] -:: [s0; Equality.] -::t0/15 [s0; [/C value][*C !`= ][/C value]] -:: [s0; Inequality.] -::t33/15 [s0; [/C number][*C `& ][/C number]] -:: [s0; Binary and.] -:: [s0; [/C number][*C `^ ][/C number]] -:: [s0; Binary xor.] -:: [s0; [/C number][*C `| ][/C number]] -:: [s0; Binary or.] -:: [s0; [/C value][*C `&`& ][/C value]] -:: [s0; Logical and. If first value is false, second value is not evaluated, -just skipped.] -:: [s0; [/C value][*C `|`| ][/C value]] -:: [s0; Logical or. If first value is true, second value is not evaluated, -just skipped.] -:: [s0; [/C value ][*C ?][/C value ][*C :][/C value]] -:: [s0; Conditional expression. Only necessary expressions are evaluated.] -:: [s0; [/C l`-value][*C `= ][/C value]] -:: [s0; Assignment.] -::t0/15 [s0; [/C l`-array][*C `+`= ][/C array]] -:: [s0; Same as [C l`-array `= l`-array `+ array].] -:: [s0; [/C l`-number][*C `+`= ][/C number]] -:: [s0; Same as [C l`-number `= l`-number `+ number].] -:: [s0; [/C l`-number][*C `-`= ][/C number]] -:: [s0; Same as [C l`-number `= l`-number `- number].] -:: [s0; [/C l`-number][*C `*`= ][/C number]] -:: [s0; Same as [C l`-number `= l`-number `* number].] -:: [s0; [/C l`-number][*C /`= ][/C number]] -:: [s0; Same as [C l`-number `= l`-number / number].] -:: [s0; [/C l`-number][*C %`= ][/C number]] -:: [s0; Same as [C l`-number `= l`-number % number].]}}&] -[s0; &] -[s0; &] -[s2; Statements&] -[s0; &] -[ {{4508:5492h1;@(216) [s0; Statement] -:: [s0; Comments] -::^@2 [s0; [*C ;]] -:: [s0; Empty statement.] -:: [s0; [/C expression][*C ;]] -:: [s0; Expression. It gets evaluated.] -:: [s0; [*C `{ ][/C statement][*C ; ... `}]] -:: [s0; Compound statement.] -:: [s0; [*C if(][/C condition][*C ) ][/C statement]] -:: [s0; Conditional statement.] -:: [s0; [*C if(][/C condition][*C ) ][/C statement]&] -[s0; [*C else ][/C statement]] -:: [s0; Conditional statement with ] -:: [s0; [*C while(][/C condition][*C ) ][/C statement]] -:: [s0; Loop. Statement is performed as long as the [/ condition] is true.] -:: [s0; [*C do ][/C statement]&] -[s0; [*C while(][/C condition][*C )]] -:: [s0; Loop. Statement is performed once and then is repeated as long -as the [/ condition] is true.] -:: [s0; [*C for(][/C init][*C , ][/C condition][*C , ][/C increment][*C )]&] -[s0; [*C -|][/C statement]] -:: [s0; Same as&] -[s0; [/C init][C ;]&] -[s0; [C while(][/C condition][C ) `{]&] -[s0; [C -|][/C statement][C ;]&] -[s0; [C -|][/C increment][C ;]&] -[s0; [C `}]] -:: [s0; [*C for(][/C l`-value][*C in ][/C array][*C )]&] -[s0; [*C -|][/C statement]] -:: [s0; Same as&] -[s0; [C for(][/C l`-value][C `= 0; ][/C l`-value][C < count(][/C array][C );]&] -[s0; [C ][/C l`-value][C `+`+)]&] -[s0; [C -|][/C statement]&] -[s0; ] -:: [s0; [*C for(][/C l`-value][*C in ][/C map][*C )]&] -[s0; [*C -|][/C statement]] -:: [s0; Iterates through [/ map], assigning keys of elements with non`-void -value to the [/ l`-value].] -:: [s0; [*C break;]] -:: [s0; Causes exit from innermost loop or switch statement.] -:: [s0; [*C switch(][/C value][*C ) ][/C statement]] -:: [s0; Matches [/ value] to all case statements inside the [/ statement], -continues at the case with the same value, or with default if -no such case exists and default is present. If neither matching -case and default exists, does nothing.] -:: [s0; [*C case ][/C value][*C :]] -:: [s0; Switch case.] -:: [s0; [*C default:]] -:: [s0; Default switch case.] -:: [s0; [*C #][/C name][*C (][/C args][*C ) `{ ... `}]] -:: [s0; Same as [/C name][C `= `@(][/C args][C ) `{ ... `};]] -:: [s0; [*C #.][/C name][*C (][/C args][*C ) `{ ... `}]] -:: [s0; Same as [C .][/C name][C `= `@(][/C args][C ) `{ ... `};]] -:: [s0; [*C #:][/C name][*C (][/C args][*C ) `{ ... `}]] -:: [s0; Same as [C :][/C name][C `= `@(][/C args][C ) `{ ... `};]]}}&] -[s0; &] -[s2; [3 Standard library]&] -[s0;3 &] -[ {{2479:7521h1;@(216) [s0; Function] -:: [s0; Comments] -::^@2 [s0; [*C is`_number(][/C x][*C )]] -:: [s0; Returns 1 if [/ x] is a number, 0 otherwise.] -:: [s0; [*C is`_array(][/C x][*C )]] -:: [s0; Returns 1 if [/ x] is a array, 0 otherwise.] -:: [s0; [*C is`_map(][/C x][*C )]] -:: [s0; Returns 1 if [/ x] is a map, 0 otherwise.] -:: [s0; [*C is`_void(][/C x][*C )]] -:: [s0; Returns 1 if [/ x] is void, 0 otherwise.] -:: [s0; [*C int(][/C number][*C )]] -:: [s0; Returns the [/ number] rounded towards zero.] -:: [s0; [*C to`_string(][/C x][*C )]] -:: [s0; Return [/ x] as array representing string representation.] -:: [s0; [*C to`_number(][/C x][*C )]] -:: [s0; Converts an array (string) to the number.] -:: [s0; [*C count(][/C x][*C )]] -:: [s0; If [/ x ]is void, returns 0.&] -[s0; If x is a number, returns 1.&] -[s0; If x is an array, returns number of elements of this array.&] -[s0; If x is an map, returns number of entries in this map with non`-void -values.] -:: [s0; [*C keys(][/C map][*C )]] -:: [s0; Returns array of keys of map (ordering is the same as for [* values] -function, otherwise is unspecified).] -:: [s0; [*C values(][/C map][*C )]] -:: [s0; Returns array of values of map (ordering is the same as for -[* keys] function, otherwise is unspecified).] -:: [s0; [*C rand()]] -:: [s0; Returns random number in range 0..32767.] -:: [s0; [*C reverse(][/C array][*C )]] -:: [s0; Returns reversed [/ array].] -:: [s0; [*C sort(][/C array][*C )]] -:: [s0; Returns sorted [/ array].] -:: [s0; [*C order(][/C array][*C )]] -:: [s0; Returns sort order of elements in the [/ array].] -:: [s0; [*C IsDate(][/C map][*C )]] -:: [s0; Returns 1 if map contains `"day`", `"month`" and `"year`" keys, -0 otherwise.] -:: [s0; [*C IsTime(][/C map][*C )]] -:: [s0; Returns 1 if map contains `"second`", `"minute`", `"hour`", -`"day`", `"month`" and `"year`" members, 0 otherwise.] -:: [s0; [*C GetSysTime()]] -:: [s0; Returns current time as map with `"second`", `"minute`", `"hour`", -`"day`", `"month`" and `"year`" members.] -:: [s0; [*C sin(][/C x][*C )]&] -[s0; [*C cos(][/C x][*C )]&] -[s0; [*C tan(][/C x][*C )]&] -[s0; [*C asin(][/C x][*C )]&] -[s0; [*C acos(][/C x][*C )]&] -[s0; [*C atan(][/C x][*C )]&] -[s0; [*C atan2(][/C a][*C , ][/C b][*C )]&] -[s0; [*C sinh(][/C x][*C )]&] -[s0; [*C cosh(][/C x][*C )]&] -[s0; [*C tanh(][/C x][*C )]&] -[s0; [*C asinh(][/C x][*C )]&] -[s0; [*C acosh(][/C x][*C )]&] -[s0; [*C atanh(][/C x][*C )]&] -[s0; [*C exp(][/C x][*C )]&] -[s0; [*C log(][/C x][*C )]&] -[s0; [*C log10(][/C x][*C )]&] -[s0; [*C exp2(][/C x][*C )]&] -[s0; [*C log2(][/C x][*C )]&] -[s0; [*C sqrt(][/C x][*C )]&] -[s0; [*C cbrt(][/C x][*C )]&] -[s0; [*C pow(][/C base][*C , ][/C exp][*C )]] -:: [s0; Well know mathematical functions.]}}&] +topic "Esc scripting language"; +[2 $$0,0#00000000000000000000000000000000:Default] +[b133;a83;*+117 $$1,0#31310162474203024125188417583966:subtitle] +[b83;*+150 $$2,0#07864147445237544204411237157677:title] +[l321;C@5;1 $$3,3#20902679421464641399138805415013:code] +[{_}%EN-US +[s0; [*R8 Esc scripting language]&] +[s0; &] +[s0; Esc is a simple scripting language intended for embedding in +Ultimate`+`+ applications.&] +[s0; &] +[s0; It is typeless, value oriented language with simple interfacing +with C`+`+/U`+`+ code. It is very simple yet quite complete language.&] +[s0; &] +[s2; Value types&] +[s1; voids&] +[s0; All variables have void value before assigned any other value. +Void type has single value&] +[s0; &] +[s3; void&] +[s0; &] +[s0; and expression can be tested for voidness using [@(128.0.255) is`_void] +function.&] +[s1; numbers&] +[s0; Number is floating point number (corresponding to C type double). +Examples of number literals:&] +[s0; &] +[s3; 1&] +[s3; 1.123&] +[s3; 1.123e`-96&] +[s3; 0x123-|-|[@4 // hexadecimal]&] +[s3; 0123 -|-|[@4 // octal]&] +[s3; 0b10100100-|-|[@4 // binary]&] +[s3; `'x`'-|-|-|[@4 // character code]&] +[s0; &] +[s0; Esc supports common C`-like operations for number values.&] +[s1; arrays&] +[s0; Arrays are ordered random access sequences of other Esc values +(nested arrays included). Array values are specified using [@(128.0.255) `[`]] +brackets:&] +[s0; &] +[s3; `[`]-|-|-|-|[@4 // empty array]&] +[s3; `[ 1, 2, 3, 4, 5 `]&] +[s3; `[ 1, `[2, 3`], 4 `]-|-|[@4 // array contains nested array]&] +[s3; `"Hello`"-|-|-|[@4 // equivalent to `[`'H`', `'e`', `'l`', `'l`', +`'o`'`]]&] +[s3; `[ 1, 2, 3 `* alfa `]-|[@4 // expressions can be used as well]&] +[s0; &] +[s0; Number of elements in the array can be retrieved by standard +function count.&] +[s0; &] +[s0; Accessing elements of arrays is provided by subscript [@(128.0.255) `[ +`]] operator:&] +[s0; &] +[s3; a`[0`]&] +[s3; a`[1`] `= 3&] +[s0; &] +[s0; First element of array corresponds to index [@(128.0.255) `[0`]].&] +[s0; &] +[s0; Negative indexes are allowed and designate elements from the +end of array: [@(128.0.255) `[`-1`]] is last element of array, [@(128.0.255) `[`-2`]] +last but one etc.&] +[s0; &] +[s3; a`[`-1`]&] +[s0; &] +[s0; is equivalent to&] +[s0; &] +[s3; a`[count(a) `- 1`]&] +[s0; &] +[s0; When index is used for the r`-value (standing on the right side +of [@(128.0.255) `=]), index is range checked. For l`-value, if +non`-negative index designates element past the of the array, +array is expanded with void values to create this element.&] +[s0; &] +[s0; `"Empty`" index [@(128.0.255) `[`]] designates element past last +and can be used to add elements to the array:&] +[s0; &] +[s3; x`[`] `= item&] +[s0; &] +[s0; is equivalent to&] +[s0; &] +[s3; x`[count(x)`] `= item&] +[s0; &] +[s0; Range of element in array can be obtained or changed using slices:&] +[s0; &] +[s3; array`[pos, count`]&] +[s0; &] +[s0; designates array slice of [/ count] elements starting with [/ pos] +element.&] +[s0; &] +[s3; x`[start:end`]&] +[s0; &] +[s0; designates array slice of [/ end `- start] elements starting with +[/ start] .&] +[s0; &] +[s0; Parts of slices can be ommited&] +[s0; &] +[s3; array`[pos,`]&] +[s0; or&] +[s3; array`[pos:`]&] +[s0; &] +[s0; is equivalent to&] +[s0; &] +[s3; array`[pos : count(array)`]&] +[s0; &] +[s0; and&] +[s0; &] +[s3; array`[,count`]&] +[s0; or&] +[s3; array`[:count`]&] +[s0; &] +[s0; is equivalent to&] +[s0; &] +[s3; array`[0, count`]&] +[s0; &] +[s0; When slices are used as l`-value, corresponding part of the +array is replaced:&] +[s0; &] +[s3; s `= `"1234`";&] +[s3; s`[1: `-1`] `= `"xXx`";-|[@4 // s is now `"1xXx4`"]&] +[s0; &] +[s0; Several operators can be applied to arrays&] +[s0; &] +[s3; array1 `+ array2&] +[s0; &] +[s0; concatenates two arrays,&] +[s0; &] +[s3; array `* number&] +[s3; number `* array&] +[s0; &] +[s0; repeats array number times.&] +[s0; &] +[s3; array `+`= array1&] +[s0; &] +[s0; is equivalent to&] +[s0; &] +[s3; array `= array `+ array1&] +[s0; &] +[s0; also&] +[s0; &] +[s3; array << array1 << array2 << array3&] +[s0; &] +[s0; is equivalent to&] +[s0; &] +[s3; array `= array `+ array1 `+ array2 `+ array3&] +[s0; &] +[s0; Esc allows [/ void] value on the right side of array concatenation +expression `- in such cases, operator has no effect.&] +[s1; maps&] +[s0; Maps contain key`-value pairs as entries. Normal subscripts +[@(128.0.255) `[`]] are used to access map entries:&] +[s0; &] +[s3; map`[key`] `= value&] +[s0; &] +[s0; All entries in map that are not assigned a non`-void value have +void value. This way assigning void to the map key can be considered +as removing entry from the map&] +[s0; &] +[s3; map`[key`] `= void&] +[s0; &] +[s0; and testing entry for being void can be considered as test +of key presence in map:&] +[s0;C &] +[s3; if(is`_void(map`[key`])) `{ ... `}&] +[s0; &] +[s0; As the special exception, when a void value appears before an +l`-value [@(128.0.255) `[`]], it is changed to the empty map:&] +[s0; &] +[s3; x `= void; // x is void&] +[s3; x`[key`] `= value; // x is now map&] +[s0; &] +[s0; Maps are also used to create compound data structures. To make +this job easier, special [/ .field] syntax is supported:&] +[s0; &] +[s3; x.field `= value;&] +[s0; &] +[s0; is equivalent to&] +[s0; &] +[s3; x`[`"field`"`] `= value;&] +[s0; &] +[s0; Map values can also be specified using `{`} braces:&] +[s0; &] +[s3; `{`} // empty map&] +[s3; `{ `"alfa`":10, `"beta`":20, 20:`"40`" `}&] +[s3; `{ 2 `* a : `"100`" `} // map values can contain expressions&] +[s1; lambdas&] +[s0; Lambdas represent executable Esc code. Lambda values are introduced +using [@(128.0.255) `@] character:&] +[s0; &] +[s3; `@(x) `{ return 2 `* x; `}&] +[s0; &] +[s0; Assigning lambda value to variable is equivalent to defining +a function:&] +[s0; &] +[s3; :foo `= `@(x) `{ return 2 `* x; `};-|[@4 // defines global function +foo]&] +[s0; &] +[s0; If lambda argument is preceded with [@(128.0.255) `&] character, +it designates input`-output argument (other arguments are input +only).&] +[s0; &] +[s0; [*@(128.0.255) ... ]at the end of the argument list allows variable +number of arguments to be present. In that case, additional parameters +are passed in [/ argv] variable of type array.&] +[s0; &] +[s3; :sum `= `@(...) `{ s `= 0; for(i in argv) s `+`= argv`[i`]; `}&] +[s0; &] +[s0; Parameters can have default values separated by [@(128.0.255) `=]:&] +[s0; &] +[s3; :bar `= `@(x `= 0) `{ ... `}&] +[s0; &] +[s0; To make life easier, alternative form of function definition +is available:&] +[s0; &] +[s3; #:foo(x) `{ return 2 `* x; `}&] +[s2;i150;O9; Variables and contexts&] +[s0; &] +[s0; Variable names in Esc follow C principles (are case sensitive, +start with alphabetic character or [@(128.0.255) `_] and can contain +alphabetic characters, [@(128.0.255) `_] and numbers).&] +[s0; &] +[s0; Esc distinguishes three types of variables contexts using [*@(128.0.255) .] +and [*@(128.0.255) :] characters:&] +[s0; &] +[s3; var-|-|[@4 // local]&] +[s3; .var-|-|[@4 // instance]&] +[s3; :var-|-|[@4 // global]&] +[s0; &] +[s0; Local variables are specific to function, global variables are +shared among all functions. Instance variables &] +[s0; represent map values (keys designate variable names) of map +whose lambda value is invoked, or can be forced using binary +[@(128.0.255) !] bind operator:&] +[s0; &] +[s3; var.x `= 0;&] +[s3; var.Next `= `@() `{ .x`+`+; `};&] +[s3; var.Next();-|-|-|[@4 // var.x is now 1 ]&] +[s3; var1.x `= 0;&] +[s3; var.Next()! var1;-|-|[@4 // var1.x is now 1]&] +[s0; &] +[s0; To make programmer`'s life easier, one exception applies concerning +context `- when invoking lambda from local variable and lambda +is not present in it, instance and global contexts (in this order) +are tried as well:&] +[s0; &] +[s3; beta(x)&] +[s3; &] +[s0; Tries to get lambda form local [/ beta] variable first, then (if +no lambda found) from instance [/ beta ]variable and finally (if +still no lambda) from global [/ beta]. Of course, [*@(128.0.255) .] +and [*@(128.0.255) :] can still be used to designate context:&] +[s0; &] +[s3; :beta(x)-|-|-|-|[@4 // calls global beta even if local or instance +beta is present]&] +[s0; &] +[s2; Expressions&] +[s0; &] +[s0; When expressions are used as logical values, void, zero number +and map or array with zero elements represent [/ false], other +values are [/ true.]&] +[s0;/ &] +[s0; In following table, thick lines divide operators with the same +priority, with topmost items having the highest priority:&] +[s0; &] +[ {{4468:5532h1;@(216) [s0; Operator] +:: [s0; Comments] +::^@2 [s0; [/C map][*C `[][/C key][*C `]]] +:: [s0; Map value at [/ key].] +:: [s0; [/C map][*C .][/C field]] +:: [s0; Same as [/ map]`[`"[/ field]`"`].] +:: [s0; [/C array][*C `[][/C index][*C `]]] +:: [s0; Array element at position [/ index].] +:: [s0; [/C array][*C `[][/C start][*C , ][/C count][*C `]]] +:: [s0; Array slice starting at [/ start] of [/ count] elements.] +:: [s0; [/C array][*C `[][/C start][*C :][/C end][*C `]]] +:: [s0; Array slice of elements [/ start .. end] `- 1] +:: [s0; [/C array][*C `[,][/C count][*C `]]&] +[s0; [/C array][*C `[:][/C count][*C `]]] +:: [s0; Same as [/ array]`[0, [/ count]`].&] +[s0; ] +:: [s0; [/C array][*C `[][/C start][*C :`]]&] +[s0; [/C array][*C `[][/C start][*C ,`]]] +:: [s0; Same as [/ array]`[[/ start] : count(array)`]. ] +:: [s0; [/C lambda][*C (][/C args][*C )]] +:: [s0; Invokes [/ lambda] with the set of [/ args]. If lambda is subscript +of the map, map becomes instance for [/ lambda] execution (accessible +via [* .][/ name] or [* self]).] +:: [s0; [/C lambda][*C (][/C args][*C ) ! ][/C instance]] +:: [s0; Invokes [/ lambda], using[/ instance] as instance for lambda execution +(accessible via [* .][/ name] or [* self]).] +:: [s0; [*C self]] +:: [s0; Instance.] +::t33/15 [s0; [*C `+`+][/C l`-number]&] +[s0; [*C `-`-][/C l`-number]] +:: [s0; Increments/decrements number l`-value.] +::t0/15 [s0; [*C `-][/C number]] +:: [s0; Unary minus.] +:: [s0; [*C `~][/C number]] +:: [s0; Bit`-wise complement.] +:: [s0; [*C !][/C value]] +:: [s0; Logical not. 1 when value represents false, 0 otherwise.] +:: [s0; [/C l`-number][*C `-`-]&] +[s0; [/C l`-number][*C `+`+]] +:: [s0; Post`-increment / post`-decrement of number l`-value.] +::t33/15 [s0; [/C array][*C `* ][/C number]&] +[s0; [/C number][*C `* ][/C array]] +:: [s0; Returns [/ array][*/ ]repeated [/ number] times.] +::t0/15 [s0; [/C number][*C `* ][/C number]] +:: [s0; Multiplication.] +:: [s0; [/C number][*C / ][/C number]] +:: [s0; Division.] +:: [s0; [/C number][*C % ][/C number]] +:: [s0; Modulo.] +::t33/15 [s0; [/C array][*C `+ ][/C array]] +:: [s0; Concatenates [/ array]s.] +::t0/15 [s0; [/C number][*C `+ ][/C number]] +:: [s0; Addition.] +:: [s0; [/C number][*C `- ][/C number]] +:: [s0; Subtraction.] +::t33/15 [s0; [/C l`-array][*C << ][/C array]] +:: [s0; Concatenates [/ array ]to [/ l`-array], yielding [/ l`-array ]as l`-value +result.] +::t0/15 [s0; [/C number][*C << ][/C number]] +:: [s0; Shift left.] +:: [s0; [/C number][*C >> ][/C number]] +:: [s0; Shift right.] +::t33/15 [s0; [/C number][*C < ][/C number]&] +[s0; [/C number][*C > ][/C number]&] +[s0; [/C number][*C <`= ][/C number]&] +[s0; [/C number][*C >`= ][/C number]] +:: [s0; Comparison of [/ number]s.] +::t0/15 [s0; [/C array][*C < ][/C array]&] +[s0; [/C array][*C > ][/C array]&] +[s0; [/C array][*C <`= ][/C array]&] +[s0; [/C array][*C >`= ][/C array]] +:: [s0; Comparison of [/ array]s.] +::t33/15 [s0; [/C value][*C `=`= ][/C value]] +:: [s0; Equality.] +::t0/15 [s0; [/C value][*C !`= ][/C value]] +:: [s0; Inequality.] +::t33/15 [s0; [/C number][*C `& ][/C number]] +:: [s0; Binary and.] +:: [s0; [/C number][*C `^ ][/C number]] +:: [s0; Binary xor.] +:: [s0; [/C number][*C `| ][/C number]] +:: [s0; Binary or.] +:: [s0; [/C value][*C `&`& ][/C value]] +:: [s0; Logical and. If first value is false, second value is not evaluated, +just skipped.] +:: [s0; [/C value][*C `|`| ][/C value]] +:: [s0; Logical or. If first value is true, second value is not evaluated, +just skipped.] +:: [s0; [/C value ][*C ?][/C value ][*C :][/C value]] +:: [s0; Conditional expression. Only necessary expressions are evaluated.] +:: [s0; [/C l`-value][*C `= ][/C value]] +:: [s0; Assignment.] +::t0/15 [s0; [/C l`-array][*C `+`= ][/C array]] +:: [s0; Same as [C l`-array `= l`-array `+ array].] +:: [s0; [/C l`-number][*C `+`= ][/C number]] +:: [s0; Same as [C l`-number `= l`-number `+ number].] +:: [s0; [/C l`-number][*C `-`= ][/C number]] +:: [s0; Same as [C l`-number `= l`-number `- number].] +:: [s0; [/C l`-number][*C `*`= ][/C number]] +:: [s0; Same as [C l`-number `= l`-number `* number].] +:: [s0; [/C l`-number][*C /`= ][/C number]] +:: [s0; Same as [C l`-number `= l`-number / number].] +:: [s0; [/C l`-number][*C %`= ][/C number]] +:: [s0; Same as [C l`-number `= l`-number % number].]}}&] +[s0; &] +[s0; &] +[s2; Statements&] +[s0; &] +[ {{4508:5492h1;@(216) [s0; Statement] +:: [s0; Comments] +::^@2 [s0; [*C ;]] +:: [s0; Empty statement.] +:: [s0; [/C expression][*C ;]] +:: [s0; Expression. It gets evaluated.] +:: [s0; [*C `{ ][/C statement][*C ; ... `}]] +:: [s0; Compound statement.] +:: [s0; [*C if(][/C condition][*C ) ][/C statement]] +:: [s0; Conditional statement.] +:: [s0; [*C if(][/C condition][*C ) ][/C statement]&] +[s0; [*C else ][/C statement]] +:: [s0; Conditional statement with ] +:: [s0; [*C while(][/C condition][*C ) ][/C statement]] +:: [s0; Loop. Statement is performed as long as the [/ condition] is true.] +:: [s0; [*C do ][/C statement]&] +[s0; [*C while(][/C condition][*C )]] +:: [s0; Loop. Statement is performed once and then is repeated as long +as the [/ condition] is true.] +:: [s0; [*C for(][/C init][*C , ][/C condition][*C , ][/C increment][*C )]&] +[s0; [*C -|][/C statement]] +:: [s0; Same as&] +[s0; [/C init][C ;]&] +[s0; [C while(][/C condition][C ) `{]&] +[s0; [C -|][/C statement][C ;]&] +[s0; [C -|][/C increment][C ;]&] +[s0; [C `}]] +:: [s0; [*C for(][/C l`-value][*C in ][/C array][*C )]&] +[s0; [*C -|][/C statement]] +:: [s0; Same as&] +[s0; [C for(][/C l`-value][C `= 0; ][/C l`-value][C < count(][/C array][C );]&] +[s0; [C ][/C l`-value][C `+`+)]&] +[s0; [C -|][/C statement]&] +[s0; ] +:: [s0; [*C for(][/C l`-value][*C in ][/C map][*C )]&] +[s0; [*C -|][/C statement]] +:: [s0; Iterates through [/ map], assigning keys of elements with non`-void +value to the [/ l`-value].] +:: [s0; [*C break;]] +:: [s0; Causes exit from innermost loop or switch statement.] +:: [s0; [*C switch(][/C value][*C ) ][/C statement]] +:: [s0; Matches [/ value] to all case statements inside the [/ statement], +continues at the case with the same value, or with default if +no such case exists and default is present. If neither matching +case and default exists, does nothing.] +:: [s0; [*C case ][/C value][*C :]] +:: [s0; Switch case.] +:: [s0; [*C default:]] +:: [s0; Default switch case.] +:: [s0; [*C #][/C name][*C (][/C args][*C ) `{ ... `}]] +:: [s0; Same as [/C name][C `= `@(][/C args][C ) `{ ... `};]] +:: [s0; [*C #.][/C name][*C (][/C args][*C ) `{ ... `}]] +:: [s0; Same as [C .][/C name][C `= `@(][/C args][C ) `{ ... `};]] +:: [s0; [*C #:][/C name][*C (][/C args][*C ) `{ ... `}]] +:: [s0; Same as [C :][/C name][C `= `@(][/C args][C ) `{ ... `};]]}}&] +[s0; &] +[s2; [3 Standard library]&] +[s0;3 &] +[ {{2479:7521h1;@(216) [s0; Function] +:: [s0; Comments] +::^@2 [s0; [*C is`_number(][/C x][*C )]] +:: [s0; Returns 1 if [/ x] is a number, 0 otherwise.] +:: [s0; [*C is`_array(][/C x][*C )]] +:: [s0; Returns 1 if [/ x] is a array, 0 otherwise.] +:: [s0; [*C is`_map(][/C x][*C )]] +:: [s0; Returns 1 if [/ x] is a map, 0 otherwise.] +:: [s0; [*C is`_void(][/C x][*C )]] +:: [s0; Returns 1 if [/ x] is void, 0 otherwise.] +:: [s0; [*C int(][/C number][*C )]] +:: [s0; Returns the [/ number] rounded towards zero.] +:: [s0; [*C to`_string(][/C x][*C )]] +:: [s0; Return [/ x] as array representing string representation.] +:: [s0; [*C to`_number(][/C x][*C )]] +:: [s0; Converts an array (string) to the number.] +:: [s0; [*C count(][/C x][*C )]] +:: [s0; If [/ x ]is void, returns 0.&] +[s0; If x is a number, returns 1.&] +[s0; If x is an array, returns number of elements of this array.&] +[s0; If x is an map, returns number of entries in this map with non`-void +values.] +:: [s0; [*C keys(][/C map][*C )]] +:: [s0; Returns array of keys of map (ordering is the same as for [* values] +function, otherwise is unspecified).] +:: [s0; [*C values(][/C map][*C )]] +:: [s0; Returns array of values of map (ordering is the same as for +[* keys] function, otherwise is unspecified).] +:: [s0; [*C rand()]] +:: [s0; Returns random number in range 0..32767.] +:: [s0; [*C reverse(][/C array][*C )]] +:: [s0; Returns reversed [/ array].] +:: [s0; [*C sort(][/C array][*C )]] +:: [s0; Returns sorted [/ array].] +:: [s0; [*C order(][/C array][*C )]] +:: [s0; Returns sort order of elements in the [/ array].] +:: [s0; [*C IsDate(][/C map][*C )]] +:: [s0; Returns 1 if map contains `"day`", `"month`" and `"year`" keys, +0 otherwise.] +:: [s0; [*C IsTime(][/C map][*C )]] +:: [s0; Returns 1 if map contains `"second`", `"minute`", `"hour`", +`"day`", `"month`" and `"year`" members, 0 otherwise.] +:: [s0; [*C GetSysTime()]] +:: [s0; Returns current time as map with `"second`", `"minute`", `"hour`", +`"day`", `"month`" and `"year`" members.] +:: [s0; [*C sin(][/C x][*C )]&] +[s0; [*C cos(][/C x][*C )]&] +[s0; [*C tan(][/C x][*C )]&] +[s0; [*C asin(][/C x][*C )]&] +[s0; [*C acos(][/C x][*C )]&] +[s0; [*C atan(][/C x][*C )]&] +[s0; [*C atan2(][/C a][*C , ][/C b][*C )]&] +[s0; [*C sinh(][/C x][*C )]&] +[s0; [*C cosh(][/C x][*C )]&] +[s0; [*C tanh(][/C x][*C )]&] +[s0; [*C asinh(][/C x][*C )]&] +[s0; [*C acosh(][/C x][*C )]&] +[s0; [*C atanh(][/C x][*C )]&] +[s0; [*C exp(][/C x][*C )]&] +[s0; [*C log(][/C x][*C )]&] +[s0; [*C log10(][/C x][*C )]&] +[s0; [*C exp2(][/C x][*C )]&] +[s0; [*C log2(][/C x][*C )]&] +[s0; [*C sqrt(][/C x][*C )]&] +[s0; [*C cbrt(][/C x][*C )]&] +[s0; [*C pow(][/C base][*C , ][/C exp][*C )]] +:: [s0; Well know mathematical functions.]}}&] [s0; ]] \ No newline at end of file diff --git a/uppsrc/Painter/src.tpp/SVG$en-us.tpp b/uppsrc/Painter/src.tpp/SVG_en-us.tpp similarity index 100% rename from uppsrc/Painter/src.tpp/SVG$en-us.tpp rename to uppsrc/Painter/src.tpp/SVG_en-us.tpp diff --git a/uppsrc/Painter/srcimp.tpp/SubpixelFiller$en-us.tpp b/uppsrc/Painter/srcimp.tpp/SubpixelFiller_en-us.tpp similarity index 100% rename from uppsrc/Painter/srcimp.tpp/SubpixelFiller$en-us.tpp rename to uppsrc/Painter/srcimp.tpp/SubpixelFiller_en-us.tpp diff --git a/uppsrc/RichText/src.tpp/Utilities$en-us.tpp b/uppsrc/RichText/src.tpp/Utilities_en-us.tpp similarity index 100% rename from uppsrc/RichText/src.tpp/Utilities$en-us.tpp rename to uppsrc/RichText/src.tpp/Utilities_en-us.tpp diff --git a/uppsrc/RichText/srcdoc.tpp/QTF$en-us.tpp b/uppsrc/RichText/srcdoc.tpp/QTF_en-us.tpp similarity index 97% rename from uppsrc/RichText/srcdoc.tpp/QTF$en-us.tpp rename to uppsrc/RichText/srcdoc.tpp/QTF_en-us.tpp index 070dfa5e9..47317d304 100644 --- a/uppsrc/RichText/srcdoc.tpp/QTF$en-us.tpp +++ b/uppsrc/RichText/srcdoc.tpp/QTF_en-us.tpp @@ -1,795 +1,795 @@ -topic "QTF"; -[2 $$0,0#00000000000000000000000000000000:Default] -[@(128.0.255)2 $$1,0#65874547464505293575048467215454:QTF Chr] -[*/+117 $$2,0#07143242482611002448121871408047:title] -[*C@3+75 $$3,3#36268203433472503231438721581057:code] -[{_}%EN-US -[s0;= [*8 QTF]&] -[s0; &] -[s0; QTF is the native format of Ultimate`+`+ rich texts (formatted -texts).&] -[s0; &] -[s0; It is byte oriented format. Bytes with values 2`-31 are ignored. -Other values are interpreted as characters or formatting commands.&] -[s0; &] -[s0; Letters ([@4 a]`-[@4 zA]`-[@4 Z]), numbers ([@4 0]`-[@4 9]), space (32) -and characters&] -[s0; &] -[s0; [*@4 . , ; ! ? % ( ) / < > #]&] -[s0; &] -[s0; and bytes greater than 127 are guaranteed to be never used as -command characters (not even in future versions of QTF). Other -characters should be prefixed with escape character `` (reverse -apostrophe). Group of characters can be escaped using byte 1. -Example:&] -[s0; &] -[s3; `"`\1a`[x`]`\1`[`* bold`]`"&] -[s0; &] -[s0; Byte 0 represents the end of input sequence.&] -[s0; &] -[s0; Dimension units of QTF are dots `- one dot is defined as 1/600 -of inch.&] -[s0; &] -[s0; Colors are described as either number [@(128.0.255) 0]`-[@(128.0.255) 9], -with meaning&] -[s0; &] -[ {{1000:1000:1000:1000:1000:1000:1000:1000:1000:1000<96;>96;f4; [s0;%- [* 0]] -:: [s0;%- [* 1]] -:: [s0;%- [* 2]] -:: [s0;%- [* 3]] -:: [s0;%- [* 4]] -:: [s0;%- [* 5]] -:: [s0;%- [* 6]] -:: [s0;%- [* 7]] -:: [s0;%- [* 8]] -:: [s0;%- [* 9]] -::l/0r/0t/0b/0@0 [s0; ] -::@1 [s0; ] -::@2 [s0; ] -::@3 [s0; ] -::@4 [s0; ] -::@5 [s0; ] -::@6 [s0; ] -::@7 [s0; ] -::@8 [s0; ] -::@9 [s0; ] -::l/25r/25t/15b/15@2 [s0;%- [1 Black]] -:: [s0; [1 LtGray]] -:: [s0; [1 White]] -:: [s0;%- [1 Red]] -:: [s0;%- [1 Green]] -:: [s0;%- [1 Blue]] -:: [s0;%- [1 LtRed]] -:: [s0;%- [1 WhiteGray]] -:: [s0;%- [1 LtCyan]] -:: [s0;%- [1 Yellow]]}}&] -[s0; &] -[s0; or letters&] -[s0; &] -[ {{1109:1109:1109:1109:1109:1109:1109:1109:1128<96;>96;f4; [s0;%- [*C@(128.0.255) b]] -:: [s0;%- [*C@(128.0.255) c]] -:: [s0;%- [*C@(128.0.255) g]] -:: [s0;%- [*C@(128.0.255) k]] -:: [s0;%- [*C@(128.0.255) l]] -:: [s0;%- [*C@(128.0.255) m]] -:: [s0;%- [*C@(128.0.255) o]] -:: [s0;%- [*C@(128.0.255) r]] -:: [s0;%- [*C@(128.0.255) y]] -::l/0r/0t/0b/0@5 [s0; ] -::@(0.128.128) [s0; ] -::@4 [s0; ] -::@0 [s0; ] -::@1 [s0; ] -::@(128.0.255) [s0; ] -::@(128.128.0) [s0; ] -::@3 [s0; ] -::@9 [s0; ] -::l/25r/25t/15b/15@2 [s0;%- [1 Blue]] -:: [s0;%- [1 Cyan]] -:: [s0;%- [1 Green]] -:: [s0;%- [1 Black]] -:: [s0;%- [1 LtGray]] -:: [s0;%- [1 Magenta]] -:: [s0;%- [1 Brown]] -:: [s0;%- [1 Red]] -:: [s0;%- [1 Yellow]]}}&] -[s0; &] -[ {{1109:1109:1109:1109:1109:1109:1109:1109:1128<96;>96;f4; [s0;%- [*@(128.0.255) B]] -:: [s0;%- [*@(128.0.255) C]] -:: [s0;%- [*@(128.0.255) G]] -:: [s0;%- [*@(128.0.255) K]] -:: [s0;%- [*@(128.0.255) L]] -:: [s0;%- [*@(128.0.255) M]] -:: [s0;%- [*@(128.0.255) W]] -:: [s0;%- [*@(128.0.255) R]] -:: [s0;%- [*@(128.0.255) Y]] -::l/0r/0t/0b/0@(0.0.255) [s0; ] -::@8 [s0; ] -::@(0.255.0) [s0; ] -::@(128) [s0; ] -::@(238) [s0; ] -::@(255.0.255) [s0; ] -::@2 [s0; ] -::@6 [s0; ] -::@(255.255.180) [s0; ] -::l/25r/25t/15b/15@2 [s0;%- [1 LtBlue]] -:: [s0;%- [1 LtCyan]] -:: [s0;%- [1 LtGreen]] -:: [s0;%- [1 Gray]] -:: [s0;%- [1 WhiteGray]] -:: [s0;%- [1 LtMagenta]] -:: [s0;%- [1 White]] -:: [s0;%- [1 LtRed]] -:: [s0;%- [1 LtYellow]]}}&] -[s0; &] -[s0; or as the RGB value in form&] -[s0; &] -[s0; [@(128.0.255) (][/@(0.0.255) number][@(128.0.255) .][/@(0.0.255) number][@(128.0.255) .][/@(0.0.255) n -umber][@(128.0.255) )]&] -[s0;@(128.0.255) &] -[s0; where [/@(0.0.255) number] is 0`-255.&] -[s0; &] -[s0; Form with single [/@(0.0.255) number]&] -[s0; &] -[s0; [@(128.0.255) (][/@(0.0.255) number][@(128.0.255) )]&] -[s0;@(128.0.255) &] -[s0; specifies grays.&] -[s0; &] -[s0; Letter&] -[s0; &] -[s0; [@(128.0.255) N]&] -[s0;@(128.0.255) &] -[s0; used in place of color designates transparent color.&] -[s0; &] -[s0; &] -[s2; Basic QTF codes&] -[s0; &] -[s0; &] -[ {{2003:7997<96;>96; [s0; [C@(128.0.255) `_]] -:: [s0; Hard`-space `- space that cannot be divided at the end of line.] -:: [s0; [C@(128.0.255) `&]] -:: [s0; New paragraph.] -:: [s0; [C@(128.0.255) `-`|]] -:: [s0; Tabulator] -:: [s0;%- [%%C@(128.0.255) `@`$][%%*C@(0.0.255) hex][C@(128.0.255) ;]] -:: [s0; Unicode character as hexadecimal number.]}}&] -[s0; &] -[s0; &] -[s2; Character and paragraph formatting&] -[s0; &] -[s0; Character and paragraph formatting starts with&] -[s0;@(128.0.255) &] -[s0; [@(128.0.255) `[]&] -[s0;@(128.0.255) &] -[s0; character followed by [*/ character/paragraph formating][/ sequence] -ended with single space character and applies to the text until -matching&] -[s0; &] -[s0; [@(128.0.255) `]]&] -[s0;@(128.0.255) &] -[s0; is encountered.&] -[s0; &] -[ {{1879:8121^@(229.229.248)-1 [s0; [*/ Character/paragraph formating sequence]] -::=@2 [s0;%- ] -::^ [s0;%- [C@(128.0.255) /]] -::= [s0; Italic.] -::^ [s0;%- [C@(128.0.255) `*]] -::= [s0; Bold.] -::^ [s0;%- [C@(128.0.255) `_]] -::= [s0; Underline.] -::^ [s0;%- [C@(128.0.255) `-]] -::= [s0; Strikeout.] -::^ [s0;%- [C@(128.0.255) c]] -::= [s0; Capitals.] -::^ [s0;%- [C@(128.0.255) ``]] -::= [s0; Superscript.] -::^ [s0;%- [C@(128.0.255) ,]] -::= [s0; Subscript.] -::^ [s0;%- [C@(128.0.255) d]] -::= [s0; Dashed underline.] -::^ [s0;%- [C@(128.0.255) T]] -::= [s0; Non anti aliased font.] -::^ [s0;%- [C@(128.0.255) `^][/C@(0.0.255) text][C@(128.0.255) `^]] -::= [s0; Hyperlink.] -::^ [s0;%- [C@(128.0.255) I][/C@(0.0.255) text][C@(128.0.255) ;]] -::= [s0; Index entry.] -::^ [s0;%- [C@(128.0.255) `+][/C@(0.0.255) number]] -::= [s0; Font height in dots.] -::^ [s0;%- [C@(128.0.255) 0]] -::= [s0; Font height 50 dots (6 points).] -::^ [s0;%- [C@(128.0.255) 1]] -::= [s0; Font height 67 dots (8 points).] -::^ [s0;%- [C@(128.0.255) 2]] -::= [s0; Font height 84 dots (10 points).] -::^ [s0;%- [C@(128.0.255) 3]] -::= [s0; Font height 100 dots (12 points).] -::^ [s0;%- [C@(128.0.255) 4]] -::= [s0; Font height 134 dots (16 points).] -::^ [s0;%- [C@(128.0.255) 5]] -::= [s0; Font height 167 dots (20 points).] -::^ [s0;%- [C@(128.0.255) 6]] -::= [s0; Font height 200 dots (24 points).] -::^ [s0;%- [C@(128.0.255) 7]] -::= [s0; Font height 234 dots (28 points).] -::^ [s0;%- [C@(128.0.255) 8]] -::= [s0; Font height 300 dots (36 points).] -::^ [s0;%- [C@(128.0.255) 9]] -::= [s0; Font height 400 dots (48 points).] -::^ [s0;%- [C@(128.0.255) `@][/C@(0.0.255) color]] -::= [s0; Text color.] -::^ [s0;%- [C@(128.0.255) `$][/C@(0.0.255) color]] -::= [s0; Text background color.] -::^ [s0;%- [C@(128.0.255) A]] -::= [s0; Arial font.] -::^ [s0;%- [C@(128.0.255) R]] -::= [s0; Times New Roman font.] -::^ [s0;%- [C@(128.0.255) C]] -::= [s0; Courier font.] -::^ [s0;%- [C@(128.0.255) G]] -::= [s0; Standard GUI font.] -::^ [s0;%- [C@(128.0.255) g]] -::= [s0; Standard GUI font with standard height.] -::^ [s0;%- [C@(128.0.255) S]] -::= [s0; Symbol font.] -::^ [s0;%- [C@(128.0.255) .][/C@(0.0.255) number]] -::= [s0; Font with specified font [/@(0.0.255) number].] -::^ [s0;%- [C@(128.0.255) !][/C@(0.0.255) text][C@(128.0.255) !]] -::= [s0; Font with face name equal to [/@(0.0.255) text]. If such font -does not exist on system, Arial is used.] -::^ [s1;%- [C `{][/C@(0.0.255) charset][C `}]&] -[s0; ] -::= [s0; Character set. It can be defined as either single character&] -[s0; &] -[ {{1840:8160<330;>1757;f4;h1; [s0; [C@(128.0.255) `_]] -:: [s0; utf`-8] -:: [s0; [C@(128.0.255) 0]] -:: [s0; windows`-1250] -:: [s0; [C@(128.0.255) 1]] -:: [s0; windows`-1251] -:: [s0; [C@(128.0.255) 2]] -:: [s0; windows`-1252] -:: [s0; [C@(128.0.255) 3]] -:: [s0; windows`-1253] -:: [s0; [C@(128.0.255) 4]] -:: [s0; windows`-1254] -:: [s0; [C@(128.0.255) 5]] -:: [s0; windows`-1255] -:: [s0; [C@(128.0.255) 6]] -:: [s0; windows`-1256] -:: [s0; [C@(128.0.255) 7]] -:: [s0; windows`-1257] -:: [s0; [C@(128.0.255) A]] -:: [s0; iso`-8859`-1] -:: [s0; [C@(128.0.255) B]] -:: [s0; iso`-8859`-2] -:: [s0; [C@(128.0.255) C]] -:: [s0; iso`-8859`-3] -:: [s0; [C@(128.0.255) D]] -:: [s0; iso`-8859`-4] -:: [s0; [C@(128.0.255) E]] -:: [s0; iso`-8859`-5] -:: [s0; [C@(128.0.255) F]] -:: [s0; iso`-8859`-6] -:: [s0; [C@(128.0.255) G]] -:: [s0; iso`-8859`-7] -:: [s0; [C@(128.0.255) H]] -:: [s0; iso`-8859`-8] -:: [s0; [C@(128.0.255) I]] -:: [s0; iso`-8859`-9] -:: [s0; [C@(128.0.255) J]] -:: [s0; iso`-8859`-10]}}&] -[s0; &] -[s0; or as the string designating character set (example: [*C@3 `"`[`{`_`}_...`]`"][* , -][*C@3 `"`[`{windows`-1250`}_...`]`"]).] -::^ [s0;%- [C@(128.0.255) %][/C@(0.0.255) lang]] -::= [s0; Language. It is defined in form [@(0.0.255) XX]`-[@(0.0.255) YY], -according to ISO 639 and ISO 3166 standards. (example: [*C@3 `"`[%EN`-US_...`]`"]). -[*C@3 `"`[%00`-00_`"] represents `"none`" language. As special -optimization, [*@(128.0.255) %`-] is equivalent to [@(128.0.255) %][@(0.0.255) 00`-00] -(no language) and&] -[s0; [@(128.0.255) %%] is equivalent to [@(128.0.255) %][@(0.0.255) EN`-US].] -::^ [s0;%- [C@(128.0.255) :][/C@(0.0.255) text][C@(128.0.255) :]] -::= [s0; Paragraph label.] -::^ [s0;%- [C@(128.0.255) <]] -::= [s0; Align paragraph left.] -::^ [s0;%- [C@(128.0.255) `=]] -::= [s0; Center paragraph.] -::^ [s0;%- [C@(128.0.255) >]] -::= [s0; Align paragraph right.] -::^ [s0;%- [C@(128.0.255) #]] -::= [s0; Justify paragraph.] -::^ [s0;%- [C@(128.0.255) l][/C@(0.0.255) number]] -::= [s0; Left margin in dots.] -::^ [s0;%- [C@(128.0.255) r][/C@(0.0.255) number]] -::= [s0; Right margin in dots.] -::^ [s0;%- [C@(128.0.255) i][/C@(0.0.255) number]] -::= [s0; Indent in dots.] -::^ [s0;%- [C@(128.0.255) pn]] -::= [s0; Line spacing 1.0.] -::^ [s0;%- [C@(128.0.255) ph]] -::= [s0; Line spacing 1.5.] -::^ [s0;%- [C@(128.0.255) pd]] -::= [s0; Line spacing 2.0.] -::^ [s0;%- [C@(128.0.255) H][/C@(0.0.255) number]] -::= [s0; Horizontal ruler height (if zero, there is no ruler).] -::^ [s0;%- [C@(128.0.255) h][/C@(0.0.255) color]] -::= [s0; Color of horizontal ruler (default is black).] -::^ [s0;%- [C@(128.0.255) L][/C@(0.0.255) number]] -::= [s0; Style of horizontal ruler line, 0 `- solid color, 1 `- dots, -2 `- dashes] -::^ [s0;%- [C@(128.0.255) b][/C@(0.0.255) number]] -::= [s0; Space before paragraph in dots.] -::^ [s0;%- [C@(128.0.255) a][/C@(0.0.255) number]] -::= [s0; Space after paragraph in dots.] -::^ [s0;%- [C@(128.0.255) P]] -::= [s0; Page break before paragraph.] -::^ [s0;%- [C@(128.0.255) k]] -::= [s0; Keep paragraph on single page.] -::^ [s0;%- [C@(128.0.255) K]] -::= [s0; Keep paragraph on same page as next one. Only works well for -binding two paragraphs (does not propagate further). If you need -to bind more, use organizing table [@(128.0.255) `{`{`*K ][/ text][@(128.0.255) `}`}]] -::^ [s0;%- [C@(128.0.255) Q]] -::= [s0; Orphan control.] -::^ [s0;%- [C@(128.0.255) n][/C@(0.0.255) text][C@(128.0.255) ;]] -::= [s0; Text to insert before paragraph number.] -::^ [s0;%- [C@(128.0.255) m][/C@(0.0.255) text][C@(128.0.255) ;]] -::= [s0; Text to insert after paragraph number.] -::^ [s0;%- [C@(128.0.255) N]] -::= [s0; Numbering. It is followed by up to 8 characters defining numbering -style of each level&] -[s0; &] -[ {{864:9136<342;>861;f4; [s0; [C@(128.0.255) `-]] -:: [s0; Level is not used.] -:: [s0; [C@(128.0.255) 1]] -:: [s0; Numbers, starting with 1.] -:: [s0; [C@(128.0.255) 0]] -:: [s0; Numbers, starting with 0.] -:: [s0; [C@(128.0.255) a]] -:: [s0; Lowercase letters, starting with a.] -:: [s0; [C@(128.0.255) A]] -:: [s0; Uppercase letters, starting with A.] -:: [s0; [C@(128.0.255) i]] -:: [s0; Lowercase roman numbers, starting with i.] -:: [s0; [C@(128.0.255) I]] -:: [s0; Uppercase roman numbers, starting with I]}}&] -[s0; &] -[s0; If after 8 numbering style characters there is a `'[@(128.0.255) !]`' -suffix, the reset is performed for those numbering levels that -are used. If all levels are not used, reset is performed for -the top`-level.] -::^ [s0;%- [C@(128.0.255) o]] -::= [s0; Bullet style.] -::^ [s0;%- [C@(128.0.255) O`_]] -::= [s0; No bullet.] -::^ [s0;%- [C@(128.0.255) O0]] -::= [s0; Bullet style.] -::^ [s0;%- [C@(128.0.255) O1]] -::= [s0; Bullet style.] -::^ [s0;%- [C@(128.0.255) O2]] -::= [s0; Bullet style.] -::^ [s0;%- [C@(128.0.255) O3]] -::= [s0; Bullet style.] -::^ [s0;%- [C@(128.0.255) O9]] -::= [s0; Text bullet style.] -::^ [s0;%- [C@(128.0.255) t][/C@(0.0.255) number]] -::= [s0; Default tab size.] -::^ [s0;%- [C@(128.0.255) `~]] -::= [s0; Tabulator setting. Can be followed by character designating -type of tabulation&] -[s0; &] -[ {{864:9136<342;>861;f4; [s0; [C@(128.0.255) >]] -:: [s0; Normal tabulation.] -:: [s0; [C@(128.0.255) <]] -:: [s0; Left tabulation.] -:: [s0; [C@(128.0.255) `=]] -:: [s0; Centered tabulation.]}}&] -[s0; &] -[s0; (default is normal) and by filler character &] -[s0; &] -[ {{3312:3436:3252<342;>861;f4; [s0; [C@(128.0.255) .]] -:: [s0; [C@(128.0.255) `-]] -:: [s0; [C@(128.0.255) `_]]}}&] -[s0; &] -[s0; and is followed by number specifying tabulator position in dots. -The number can be preceded by [C@(128.0.255) >] `- in that case, -position is relative to the right side.&] -[s0; &] -[s0; When followed by [C@(128.0.255) `~] ([*C@3 `"`~`~`"]), clears all -current tab settings (including those inherited from paragraph -style).] -::^ [s0;%- [C@(128.0.255) ;]] -::= [s0; NOP separator. In some cases it is needed to separate command -code. Example: [*C@3 `"`[l200;4 `"]] -::^ [s1; [%-C s][/C@(0.0.255) number]&] -[s0; [%-C@(128.0.255) s][/C@(0.0.255) `"text`"]] -:: [s0; Paragraph style, either defined by style number, or style name.] -:: [s0;%- [C tP][/C@(0.0.255) qtf][C@(128.0.255) `^`^][/C@(0.0.255) qtf][C@(128.0.255) `^`^]] -:: [s0; New text header / footer, [%-/C@(0.0.255) qtf] is complete embeded -QTF representing header/footer. This QTF can contain field[@5 -`{:VALUE:PAGENUMBER:`} ]to represent page number and[@5 `{:VALUE:PAGECOUNT:`}] -to represent total number of pages.]}}&] -[s0;3 &] -[s0;3 &] -[s2; Styles&] -[s0; &] -[s0; Paragraph styles are defined using normal character/paragraph -formatting sequence with&] -[s0; &] -[s0; [@(128.0.255) `$`$][/@(0.0.255) number][@(128.0.255) ,][/@(0.0.255) nnumber][@(128.0.255) # -][/@(0.0.255) uuid][@(128.0.255) :][/@(0.0.255) name]&] -[s0; &] -[s0; instead of text, where&] -[s0; &] -[ {{1879:8121^ [s0;%- [@(0.0.255) number]] -:: [s0; Number of style `- can be used with [@(128.0.255) s] paragraph -format command code.] -:: [s0;%- [@(0.0.255) nnumber]] -:: [s0; Number of style of next paragraph `- used by RichText editor -when inserting paragraphs.] -:: [s0;%- [@(0.0.255) uuid]] -:: [s0; 32 digit unique hexadecimal identifier of style.] -:: [s0;%- [@(0.0.255) name]] -:: [s0; Name of style, displayed by editors. Can also be used with [@(128.0.255) s] -paragraph format command code.]}}&] -[s0; &] -[s0; Style with [@(0.0.255) number] `= 0 and [@(0.0.255) uuid `= ]00000000000000000000000 -000000000 is [*/ default] style.&] -[s0; &] -[s0; Example:&] -[s0; &] -[s0; [C@3 `"`[`*/`+117 `$`$2,0#07143242482611002448121871408047:title`]`"]&] -[s0;@(0.0.255) &] -[s0;@(0.0.255) &] -[s2; Objects&] -[s0;@(0.0.255) &] -[s0; Object plays the role of the single character and is displayed -according to its type. It is started with a header in the form&] -[s0; &] -[s0; [@(128.0.255) `@`@][/@(0.0.255) format][@(128.0.255) :][/@(0.0.255) cx][@(128.0.255) `&][/@(0.0.255) c -y]&] -[s0;@(0.0.255) &] -[s0;%- or&] -[s0;%- &] -[s0; [@(128.0.255) `@`@][/@(0.0.255) format][@(128.0.255) :][/@(0.0.255) cx][@(128.0.255) `*][/@(0.0.255) c -y]&] -[s0;%- &] -[s0;%- where&] -[s0; &] -[ {{1879:8121^ [s0; [@(0.0.255) format]] -:: [s0; Format of objects. This format must be recognized by the application. -By default, RichText recognizes the PNG format and [*/ iml] format -(see bellow).] -:: [s0; [@(0.0.255) cx]] -:: [s0; Width of object in dots.] -:: [s0; [@(0.0.255) cy]] -:: [s0; Height of object in dots.]}}&] -[s0;@(0.0.255) &] -[s0; First form with `'[@(128.0.255) `&]`' activates `"keep aspect -ratio`" for the object, second form with `'[@(128.0.255) `*]`' -leaves this option inactive.&] -[s0; &] -[s0; Optionally, there can be 3rd number, separated by `'[@(128.0.255) /]`' -character. This number represent vertical placement of object, -default value 0 means that bottom border of object is aligned -with baseline of text.&] -[s0; &] -[s0; If header is followed by `'```' character, object data are in -text format. In that case, object data are terminated with another -`'```' character. If there needs to be `'```' in the text, `'`````' -can be used as escape sequence.&] -[s0; &] -[s0; If header is followed by `'(`', it countains BASE64 encoded -binary data, ending with `')`'. [* This is default format for binary -data].&] -[s0; &] -[s0; If there is no `'```' nor `'(`', header is in binary 7 bit format. -Bit 7 of data bytes is always 1, so that actual data bytes are -in range 128`-255. First byte in range 32`-127 ends data sequence. -Data are encoded in 7 byte groups, which corresponds to 8 bytes -of encoded format. First byte of this 8 bytes block always contains -eight bits of following bytes, LSB (that is bit 0) being the -eight bit for first byte in block. [/ This format is deprecated.]&] -[s0; &] -[s0; [*/3 iml][*3 format]&] -[s0;* &] -[s0; [*/ iml][* ]format is text format of rich object where text data -reference existing .iml based Image as pair [@(0.0.255) iml`_class`_name]:[@(0.0.255) i -mage`_name]. Example of full object definition in [*/ iml] format:&] -[s0; &] -[s0; [*C@3 `"`@`@iml:400`*400``CtrlImg:exclamation```"]&] -[s0;@(0.0.255) &] -[s0;@(0.0.255) &] -[s2; Fields&] -[s0;@(0.0.255) &] -[s0; Fields are special elements of text that are evaluated by client -code into rich text. QTF format for fields is&] -[s0;@(0.0.255) &] -[s0; [@(128.0.255) `{:][/@(0.0.255) field`_type`_id][@(128.0.255) :][/@(0.0.255) parameter][@(128.0.255) : -`}]&] -[s0;@(128.0.255) &] -[ {{1879:8121^ [s0; [@(0.0.255) field`_type`_id]] -:: [s0; Type of field. Field types are represented by RichPara`::FieldType -derived instances and registred using RichPara`::Register function.] -:: [s0; [@(0.0.255) parameter]] -:: [s0; Additional string parameter that gets passed to FieldType`::Evaluate -method]}}&] -[s0;@(128.0.255) &] -[s0;@(0.0.255) &] -[s0;3 &] -[s2; Tables&] -[s0; &] -[s0; Table definition starts with&] -[s0;3 &] -[s0; [@(128.0.255) `{`{]&] -[s0;@(128.0.255) &] -[s0; pair, followed by set of numbers separated with&] -[s0; &] -[s0; [@(128.0.255) :]&] -[s0;@(128.0.255) &] -[s0; Numbers represent ratios of column widths; count of numbers -is equivalent to count of columns. Next there is [/ table/cell -formatting sequence] ended with single space character. Cells -are separated with&] -[s0; &] -[s0; [@(128.0.255) `::]&] -[s0;@(128.0.255) &] -[s0; characters and another table/cell formating sequence (to setup -format for each individual cell). Formating of cells is inherited -from previous cells. Table ends with&] -[s0; &] -[s0; [@(128.0.255) `}`}]&] -[s0;@(128.0.255) &] -[s0; pair.&] -[s0; &] -[ {{1993:8007^@(229.229.248)-1 [s0; [*/ Table/cell formating sequence]] -::=@2 [s0;%- ] -::^ [s0;%- [C@(128.0.255) <][/C@(0.0.255) number]] -:: [s0; Left margin of table in dots.] -:: [s0;%- [C@(128.0.255) >][/C@(0.0.255) number]] -:: [s0; Right margin of table in dots.] -:: [s0;%- [C@(128.0.255) B][/C@(0.0.255) number]] -:: [s0; Space before table in dots.] -:: [s0;%- [C@(128.0.255) A][/C@(0.0.255) number]] -:: [s0; Space after table in dots.] -:: [s0;%- [C@(128.0.255) f][/C@(0.0.255) number]] -:: [s0; Frame thickness in dots. Frame is outer border of table. Default -value is 10.] -:: [s0;%- [C@(128.0.255) F][/C@(0.0.255) color]] -:: [s0; Color of the frame.] -:: [s0; [%-C@(128.0.255) g][/C@(0.0.255) number]] -:: [s0; Grid thickness in dots. Grid are lines dividing cells inside -table. Default value is 4.] -:: [s0;%- [C@(128.0.255) G][/C@(0.0.255) color]] -:: [s0; Color of the grid.] -:: [s0;%- [C@(128.0.255) k]] -:: [s0; Keep the cell on single page.] -:: [s0;%- [C@(128.0.255) K]] -:: [s0; Keep the table on single page.] -:: [s0;%- [C@(128.0.255) `~]] -:: [s0; Sets grid and frame thickness to zero. Useful when using tables -to organize text.] -:: [s0; [%-C@(128.0.255) h][/C@(0.0.255) number]] -:: [s0; Number of header rows. Header rows are repeated at the beginning -of every page.] -:: [s0;%- [C@(128.0.255) `^]] -:: [s0; Cell aligns to top.] -:: [s0;%- [C@(128.0.255) `=]] -:: [s0; Cell aligns to center (vertical). Default.] -:: [s0;%- [C@(128.0.255) v]] -:: [s0; Cell aligns to bottom.] -:: [s1; [%-C l][/C@(0.0.255) number/number]&] -[s0; [%-C@(128.0.255) l][/C@(0.0.255) number]&] -[s0; [%-C@(128.0.255) l][/C@(0.0.255) /number]] -:: [s0; Sets left cell border (first [/@(0.0.255) number]) and margin -in dots. If any of numbers is missing, sets only the one present. -Default is border: 0, margin: 25.] -:: [s1; [C r][/C@(0.0.255) number/number]&] -[s0; [C@(128.0.255) r][/C@(0.0.255) number]&] -[s0; [C@(128.0.255) r][/C@(0.0.255) /number]] -:: [s0; Sets right cell border (first [/@(0.0.255) number]) and margin -in dots. If any of numbers is missing, sets only the one present. -Default is border: 0, margin: 25.] -:: [s1; [C t][/C@(0.0.255) number/number]&] -[s0; [C@(128.0.255) t][/C@(0.0.255) number]&] -[s0; [C@(128.0.255) t][/C@(0.0.255) /number]] -:: [s0; Sets top cell border (first [/@(0.0.255) number]) and margin in -dots. If any of numbers is missing, sets only the one present. -Default is border: 0, margin: 15.] -:: [s1; [C b][/C@(0.0.255) number/number]&] -[s0; [C@(128.0.255) b][/C@(0.0.255) number]&] -[s0; [C@(128.0.255) b][/C@(0.0.255) /number]] -:: [s0; Sets bottom cell border (first [/@(0.0.255) number]) and margin -in dots. If any of numbers is missing, sets only the one present. -Default is border: 0, margin: 15.] -:: [s1; [C a][/C@(0.0.255) number/number]&] -[s0; [C@(128.0.255) a][/C@(0.0.255) number]&] -[s0; [C@(128.0.255) a][/C@(0.0.255) /number]] -:: [s0; Sets all cell borders (first [/@(0.0.255) number]) and margins -in dots. If any of numbers is missing, sets only the one present.] -:: [s0; [C@(128.0.255) `*]] -:: [s0; Same as f0g0a0/0 `- sets everything to zero to use table as -organizing element.] -:: [s0; [C@(128.0.255) o]] -:: [s0; Sets round border.] -:: [s0; [C@(128.0.255) `@][/C@(0.0.255) color]] -:: [s0; Cell background color. Default is White.] -:: [s0; [C@(128.0.255) R][/C@(0.0.255) color]] -:: [s0; Cell border color. Default is Black.] -:: [s0; [C@(128.0.255) !]] -:: [s0; Resets cell formatting to default values.] -:: [s0; [C@(128.0.255) H][/C@(0.0.255) number]] -:: [s0; Sets the minimal height of cell (and therefore also of row) -in dots.] -:: [s0; [C@(128.0.255) `-][/C@(0.0.255) number]] -:: [s0; Horizontal cell span.] -:: [s0; [C@(128.0.255) `|][/C@(0.0.255) number]] -:: [s0; Vertical cell span.] -:: [s0; [C@(128.0.255) ;]] -::= [s0; NOP separator. In some cases it helps to separate command code.] -::^ [s0; [C@(128.0.255) P]] -::= [s0; Page break before table.] -::^ [s0;%- [%%C@(128.0.255) T][/C@(0.0.255) qtf][C@(128.0.255) `^`^][/C@(0.0.255) qtf][C@(128.0.255) `^ -`^]] -:: [s0; New text header / footer, [%-/C@(0.0.255) qtf] is complete embeded -QTF representing header/footer. This QTF can contain field[@5 -`{:VALUE:PAGENUMBER:`} ]to represent page number and[@5 `{:VALUE:PAGECOUNT:`}] -to represent total number of pages.]}}&] -[s0;3 &] -[s0; Note: There is also legacy support for old table format (from -previous QTF version) that is based on [@(128.0.255) `+`+ ]pair -as table start/stop and [@(128.0.255) `|`| `-`-] to divide cells/lines. -&] -[s0;3 &] -[s0;3 &] -[s2; Global Header and Footer&] -[s0; &] -[s0; Global text header is defined using [%-C@(128.0.255) `^H][%-/C@(0.0.255) qtf`_text][%-C@(128.0.255) `^ -`^], footer [%-C@(128.0.255) `^F][%-/C@(0.0.255) qtf`_text][%-C@(128.0.255) `^`^], -where [%-/C@(0.0.255) qtf`_text] is complete embeded QTF representing -header/footer. This QTF can contain field[@5 `{:VALUE:PAGENUMBER:`} -]to represent page number and[@5 `{:VALUE:PAGECOUNT:`}] to represent -total number of pages. Global page header and footer can be changed -by paragraph attributes.&] -[s0;3 &] -[s0;3 &] -[s0;3 &] -[s2; [3 Examples]&] -[s0; &] -[ {{10000 [s0; [*C@3;1 `"Normal `[`* bold`] `[/ italic`] `[`_ underline`] `[`` -superscript`] `[, subscript`]`"]] -:: [s0; Normal [* bold] [/ italic] [_ underline] [` superscript] [, subscript]]}}&] -[s0; &] -[ {{10000 [s0; [*C@3;1 `"```[ ```] `\1`[escaped`]`\1 `[`* bold`]`"]] -:: [s0; `[ `] `[escaped`] [* bold]]}}&] -[s0; &] -[ {{10000 [s0; [*C@3;1 `"`[A Arial (Sans`-Serif)`] `[R Times New Roman (Serif)`] -`[C Courier (Monospace)`]`"]] -:: [s0; Arial (Sans`-Serif) [R Times New Roman (Serif)] [C Courier (Monospace)]]}}&] -[s0; &] -[ {{10000 [s0; [*C@3;1 `"`[0 6pt `]`[1 8pt `]`[2 10pt `]`[3 12pt `]`[4 16pt `]`[5 -20pt `]`[6 24pt `]`[7 28pt `]`[8 36pt `]`[9 48pt `]`"]] -:: [s0; [0 6pt ][1 8pt ]10pt [3 12pt] [4 16pt ][5 20pt ][6 24pt ][7 28pt ][8 36pt ][9 48pt -]]}}&] -[s0; &] -[ {{10000 [s0; [*C@3;1 `"`[!Tahoma! Tahoma`]`"]] -:: [s0; Tahoma]}}&] -[s0; &] -[ {{10000 [s0; [*C@3;1 `"`[`+500 500dots`]`"]] -:: [s0; [+500 500dots]]}}&] -[s0; &] -[ {{10000 [s0; [*C@3;1 `"`[`@4 Green text`] `[`$(255.220.200) Pink background`]`"]] -:: [s0; [@4 Green text] [$(255.220.200) Pink background]]}}&] -[s0; &] -[ {{10000 [s0; [*C@3;1 `"`[%EN`-US English language`] `[%CS`-CZ Czech language`]`"]] -:: [s0;%CS-CZ [%% English language ]Czech language]}}&] -[s0; &] -[ {{10000 [s0; [*C@3;1 `"`[`^upp.sf.net`^ Hyperlink`] `[Icompiler, linker; Index -entry`]`"]] -:: [s0; [^upp`.sf`.net^ Hyperlink] [Icompiler`, linker; Index entry]]}}&] -[s0; &] -[ {{10000 [s0; [*C@3;1 `"`[:label: Labeled paragraph`]`"]] -:: [s0; Labeled paragraph]}}&] -[s0; &] -[ {{10000 [s0; [*C@3;1 `"`[< Left paragraph alignment`]`"]] -:: [s0; Left paragraph alignment]}}&] -[s0; &] -[ {{10000 [s0; [*C@3;1 `"`[`= Center paragraph alignment`]`"]] -:: [s0; Center paragraph alignment]}}&] -[s0; &] -[ {{10000 [s0; [*C@3;1 `"`[> Right paragraph alignment`]`"]] -:: [s0; Right paragraph alignment]}}&] -[s0; &] -[ {{10000 [s0; [*C@3;1 `"`[# Justify alignment. Just some text to demosntrate -it... Just some text to demonstrate it... Just some text to demonstrate -it...`]`"]] -:: [s0; Justify alignment. Just some text to demosntrate it... Just -some text to demonstrate it... Just some text to demonstrate -it...]}}&] -[s0; &] -[ {{10000 [s0; [*C@3;1 `"`[l1000 Left margin 1000dots`]`"]] -:: [s0; Left margin 1000dots]}}&] -[s0; &] -[ {{10000 [s0; [*C@3;1 `"`[i1000 Indent 1000 dots.Just some text to demonstrate -it... Just some text to demonstrate it...`]`"]] -:: [s0; Indent 1000 dots.Just some text to demonstrate it... Just some -text to demonstrate it...]}}&] -[s0; &] -[ {{10000 [s0; [*C@3;1 `"`[r1000 Right margin 1000 dots.Just some text to demonstrate -it... Just some text to demonstrate it...`]`"]] -:: [s0; Right margin 1000 dots.Just some text to demonstrate it... Just -some text to demonstrate it...]}}&] -[s0; &] -[ {{10000 [s0; [*C@3;1 `"Paragraph`&`[b200 Before 200dots`]`"]] -:: [s0; Paragraph&] -[s0; Before 200dots]}}&] -[s0; &] -[ {{10000 [s0; [*C@3;1 `"`[a200 After 200dots`]`&Paragraph`"]] -:: [s0;a200; After 200dots&] -[s0; Paragraph]}}&] -[s0; &] -[ {{10000 [s0; [*C@3;1 `"`[i200 `[O0 bullet`&`]`[O1 bullet`&`]`[O2 bullet`&`]`[O3 -bullet`]`]`"]] -:: [s0;i200;O0; bullet&] -[s0;i200;O1; bullet&] -[s0;i200;O2; bullet&] -[s0; bullet]}}&] -[s0; &] -[ {{10000 [s0; [*C@3;1 `"`[O9i500 text bullet`-`|Just some text to demonstrate -it... Just some text to demonstrate it...Just some text to demonstrate -it... Just some text to demonstrate it...`]`"]] -:: [s0; text bullet-|Just some text to demonstrate it... Just some text -to demonstrate it...Just some text to demonstrate it... Just -some text to demonstrate it...]}}&] -[s0; &] -[ {{10000 [s0; [*C@3;1 `"`[O9i200 `[N1m.; `-`|level 1`&`]`[N1a `-`|level 2`&`]`[N1a -`-`|level 2`&`]`[N1 `-`|level 1`&`]`[N1a `-`|level 2`]`]`"]] -:: [s0;i200;O9;m`.;N1; -|level 1&] -[s0;i200;O9;N1a; -|level 2&] -[s0;i200;O9;N1a; -|level 2&] -[s0;i200;O9;N1; -|level 1&] -[s0; -|level 2]}}&] -[s0; &] -[ {{10000 [s0; [*C@3;1 `"`[`~300`~`=.2000`~>`-3000 `-`|Normal tab`-`|Centered -tab`-`|Right tab`]`"]] -:: [s0; -|Normal tab-|Centered tab-|Right tab]}}&] -[s0; &] -[ {{10000 [s0; [*C@3;1 `"`{`{1:2 A1`|`|A2`|`|B1`|`|B2`}`}`"]] -:: [ {{3333:6667 [s0; A1] -:: [s0; A2] -:: [s0; B1] -:: [s0; B2]}}]}}&] -[s0; &] -[ {{10000 [s0; [*C@3;1 `"`{`{2:1G4g100F5f50 A1`:: A2`:: B1`:: B2`}`}`"]] -:: [ {{6666:3334f50;F5g100;G4 [s0; A1] -:: [s0; A2] -:: [s0; B1] -:: [s0; B2]}}]}}&] -[s0; &] -[ {{10000 [s0; [*C@3;1 `"`{`{1:2 A1`::l40/60R6`@3 A2`::! B1`:: B2`}`}`"]] -:: [ {{3333:6667 [s0; A1] -::l40/60@3R6 [s0; A2] -::l0/25@2R0 [s0; B1] -:: [s0; B2]}}]}}&] -[s0; &] -[ {{10000 [s0; [*C@3;1 `"`{`{1:1:1`|2 A1`::`-2 A2`:: A3`:: B1`:: B2`:: B3`}`}`"]] -:: [ {{3333:3333:3334|1 [s0; A1] -::-1 [s0; A2] -:: [s0;%- ] -:: [s0;%- ] -:: [s0; B2] -:: [s0; B3]}}]}}&] -[s0; &] -[ {{10000 [s0; [*C@3;1 `"`{`{1:2 A1`:: A2`:: B1`:: `{`{1:2 a1`:: a2`:: a1`:: a2`}`}`}`}`"]] -:: [ {{3333:6667 [s0; A1] -:: [s0; A2] -:: [s0; B1] -:: [ {{3333:6667 [s0; a1] -:: [s0; a2] -:: [s0; a1] -:: [s0; a2]}}]}}]}}&] -[s0;*_@3%- &] -[s0;3%- &] -[ {{10000 [s0;%- [*C@3;1 `"`{`{1`~a30/50o Round border`}`}`"]] -:: [ {{10000f0;Kg0;l30/50r30/50t30/50b30/50o [s0;%- Round border]}}]}}&] +topic "QTF"; +[2 $$0,0#00000000000000000000000000000000:Default] +[@(128.0.255)2 $$1,0#65874547464505293575048467215454:QTF Chr] +[*/+117 $$2,0#07143242482611002448121871408047:title] +[*C@3+75 $$3,3#36268203433472503231438721581057:code] +[{_}%EN-US +[s0;= [*8 QTF]&] +[s0; &] +[s0; QTF is the native format of Ultimate`+`+ rich texts (formatted +texts).&] +[s0; &] +[s0; It is byte oriented format. Bytes with values 2`-31 are ignored. +Other values are interpreted as characters or formatting commands.&] +[s0; &] +[s0; Letters ([@4 a]`-[@4 zA]`-[@4 Z]), numbers ([@4 0]`-[@4 9]), space (32) +and characters&] +[s0; &] +[s0; [*@4 . , ; ! ? % ( ) / < > #]&] +[s0; &] +[s0; and bytes greater than 127 are guaranteed to be never used as +command characters (not even in future versions of QTF). Other +characters should be prefixed with escape character `` (reverse +apostrophe). Group of characters can be escaped using byte 1. +Example:&] +[s0; &] +[s3; `"`\1a`[x`]`\1`[`* bold`]`"&] +[s0; &] +[s0; Byte 0 represents the end of input sequence.&] +[s0; &] +[s0; Dimension units of QTF are dots `- one dot is defined as 1/600 +of inch.&] +[s0; &] +[s0; Colors are described as either number [@(128.0.255) 0]`-[@(128.0.255) 9], +with meaning&] +[s0; &] +[ {{1000:1000:1000:1000:1000:1000:1000:1000:1000:1000<96;>96;f4; [s0;%- [* 0]] +:: [s0;%- [* 1]] +:: [s0;%- [* 2]] +:: [s0;%- [* 3]] +:: [s0;%- [* 4]] +:: [s0;%- [* 5]] +:: [s0;%- [* 6]] +:: [s0;%- [* 7]] +:: [s0;%- [* 8]] +:: [s0;%- [* 9]] +::l/0r/0t/0b/0@0 [s0; ] +::@1 [s0; ] +::@2 [s0; ] +::@3 [s0; ] +::@4 [s0; ] +::@5 [s0; ] +::@6 [s0; ] +::@7 [s0; ] +::@8 [s0; ] +::@9 [s0; ] +::l/25r/25t/15b/15@2 [s0;%- [1 Black]] +:: [s0; [1 LtGray]] +:: [s0; [1 White]] +:: [s0;%- [1 Red]] +:: [s0;%- [1 Green]] +:: [s0;%- [1 Blue]] +:: [s0;%- [1 LtRed]] +:: [s0;%- [1 WhiteGray]] +:: [s0;%- [1 LtCyan]] +:: [s0;%- [1 Yellow]]}}&] +[s0; &] +[s0; or letters&] +[s0; &] +[ {{1109:1109:1109:1109:1109:1109:1109:1109:1128<96;>96;f4; [s0;%- [*C@(128.0.255) b]] +:: [s0;%- [*C@(128.0.255) c]] +:: [s0;%- [*C@(128.0.255) g]] +:: [s0;%- [*C@(128.0.255) k]] +:: [s0;%- [*C@(128.0.255) l]] +:: [s0;%- [*C@(128.0.255) m]] +:: [s0;%- [*C@(128.0.255) o]] +:: [s0;%- [*C@(128.0.255) r]] +:: [s0;%- [*C@(128.0.255) y]] +::l/0r/0t/0b/0@5 [s0; ] +::@(0.128.128) [s0; ] +::@4 [s0; ] +::@0 [s0; ] +::@1 [s0; ] +::@(128.0.255) [s0; ] +::@(128.128.0) [s0; ] +::@3 [s0; ] +::@9 [s0; ] +::l/25r/25t/15b/15@2 [s0;%- [1 Blue]] +:: [s0;%- [1 Cyan]] +:: [s0;%- [1 Green]] +:: [s0;%- [1 Black]] +:: [s0;%- [1 LtGray]] +:: [s0;%- [1 Magenta]] +:: [s0;%- [1 Brown]] +:: [s0;%- [1 Red]] +:: [s0;%- [1 Yellow]]}}&] +[s0; &] +[ {{1109:1109:1109:1109:1109:1109:1109:1109:1128<96;>96;f4; [s0;%- [*@(128.0.255) B]] +:: [s0;%- [*@(128.0.255) C]] +:: [s0;%- [*@(128.0.255) G]] +:: [s0;%- [*@(128.0.255) K]] +:: [s0;%- [*@(128.0.255) L]] +:: [s0;%- [*@(128.0.255) M]] +:: [s0;%- [*@(128.0.255) W]] +:: [s0;%- [*@(128.0.255) R]] +:: [s0;%- [*@(128.0.255) Y]] +::l/0r/0t/0b/0@(0.0.255) [s0; ] +::@8 [s0; ] +::@(0.255.0) [s0; ] +::@(128) [s0; ] +::@(238) [s0; ] +::@(255.0.255) [s0; ] +::@2 [s0; ] +::@6 [s0; ] +::@(255.255.180) [s0; ] +::l/25r/25t/15b/15@2 [s0;%- [1 LtBlue]] +:: [s0;%- [1 LtCyan]] +:: [s0;%- [1 LtGreen]] +:: [s0;%- [1 Gray]] +:: [s0;%- [1 WhiteGray]] +:: [s0;%- [1 LtMagenta]] +:: [s0;%- [1 White]] +:: [s0;%- [1 LtRed]] +:: [s0;%- [1 LtYellow]]}}&] +[s0; &] +[s0; or as the RGB value in form&] +[s0; &] +[s0; [@(128.0.255) (][/@(0.0.255) number][@(128.0.255) .][/@(0.0.255) number][@(128.0.255) .][/@(0.0.255) n +umber][@(128.0.255) )]&] +[s0;@(128.0.255) &] +[s0; where [/@(0.0.255) number] is 0`-255.&] +[s0; &] +[s0; Form with single [/@(0.0.255) number]&] +[s0; &] +[s0; [@(128.0.255) (][/@(0.0.255) number][@(128.0.255) )]&] +[s0;@(128.0.255) &] +[s0; specifies grays.&] +[s0; &] +[s0; Letter&] +[s0; &] +[s0; [@(128.0.255) N]&] +[s0;@(128.0.255) &] +[s0; used in place of color designates transparent color.&] +[s0; &] +[s0; &] +[s2; Basic QTF codes&] +[s0; &] +[s0; &] +[ {{2003:7997<96;>96; [s0; [C@(128.0.255) `_]] +:: [s0; Hard`-space `- space that cannot be divided at the end of line.] +:: [s0; [C@(128.0.255) `&]] +:: [s0; New paragraph.] +:: [s0; [C@(128.0.255) `-`|]] +:: [s0; Tabulator] +:: [s0;%- [%%C@(128.0.255) `@`$][%%*C@(0.0.255) hex][C@(128.0.255) ;]] +:: [s0; Unicode character as hexadecimal number.]}}&] +[s0; &] +[s0; &] +[s2; Character and paragraph formatting&] +[s0; &] +[s0; Character and paragraph formatting starts with&] +[s0;@(128.0.255) &] +[s0; [@(128.0.255) `[]&] +[s0;@(128.0.255) &] +[s0; character followed by [*/ character/paragraph formating][/ sequence] +ended with single space character and applies to the text until +matching&] +[s0; &] +[s0; [@(128.0.255) `]]&] +[s0;@(128.0.255) &] +[s0; is encountered.&] +[s0; &] +[ {{1879:8121^@(229.229.248)-1 [s0; [*/ Character/paragraph formating sequence]] +::=@2 [s0;%- ] +::^ [s0;%- [C@(128.0.255) /]] +::= [s0; Italic.] +::^ [s0;%- [C@(128.0.255) `*]] +::= [s0; Bold.] +::^ [s0;%- [C@(128.0.255) `_]] +::= [s0; Underline.] +::^ [s0;%- [C@(128.0.255) `-]] +::= [s0; Strikeout.] +::^ [s0;%- [C@(128.0.255) c]] +::= [s0; Capitals.] +::^ [s0;%- [C@(128.0.255) ``]] +::= [s0; Superscript.] +::^ [s0;%- [C@(128.0.255) ,]] +::= [s0; Subscript.] +::^ [s0;%- [C@(128.0.255) d]] +::= [s0; Dashed underline.] +::^ [s0;%- [C@(128.0.255) T]] +::= [s0; Non anti aliased font.] +::^ [s0;%- [C@(128.0.255) `^][/C@(0.0.255) text][C@(128.0.255) `^]] +::= [s0; Hyperlink.] +::^ [s0;%- [C@(128.0.255) I][/C@(0.0.255) text][C@(128.0.255) ;]] +::= [s0; Index entry.] +::^ [s0;%- [C@(128.0.255) `+][/C@(0.0.255) number]] +::= [s0; Font height in dots.] +::^ [s0;%- [C@(128.0.255) 0]] +::= [s0; Font height 50 dots (6 points).] +::^ [s0;%- [C@(128.0.255) 1]] +::= [s0; Font height 67 dots (8 points).] +::^ [s0;%- [C@(128.0.255) 2]] +::= [s0; Font height 84 dots (10 points).] +::^ [s0;%- [C@(128.0.255) 3]] +::= [s0; Font height 100 dots (12 points).] +::^ [s0;%- [C@(128.0.255) 4]] +::= [s0; Font height 134 dots (16 points).] +::^ [s0;%- [C@(128.0.255) 5]] +::= [s0; Font height 167 dots (20 points).] +::^ [s0;%- [C@(128.0.255) 6]] +::= [s0; Font height 200 dots (24 points).] +::^ [s0;%- [C@(128.0.255) 7]] +::= [s0; Font height 234 dots (28 points).] +::^ [s0;%- [C@(128.0.255) 8]] +::= [s0; Font height 300 dots (36 points).] +::^ [s0;%- [C@(128.0.255) 9]] +::= [s0; Font height 400 dots (48 points).] +::^ [s0;%- [C@(128.0.255) `@][/C@(0.0.255) color]] +::= [s0; Text color.] +::^ [s0;%- [C@(128.0.255) `$][/C@(0.0.255) color]] +::= [s0; Text background color.] +::^ [s0;%- [C@(128.0.255) A]] +::= [s0; Arial font.] +::^ [s0;%- [C@(128.0.255) R]] +::= [s0; Times New Roman font.] +::^ [s0;%- [C@(128.0.255) C]] +::= [s0; Courier font.] +::^ [s0;%- [C@(128.0.255) G]] +::= [s0; Standard GUI font.] +::^ [s0;%- [C@(128.0.255) g]] +::= [s0; Standard GUI font with standard height.] +::^ [s0;%- [C@(128.0.255) S]] +::= [s0; Symbol font.] +::^ [s0;%- [C@(128.0.255) .][/C@(0.0.255) number]] +::= [s0; Font with specified font [/@(0.0.255) number].] +::^ [s0;%- [C@(128.0.255) !][/C@(0.0.255) text][C@(128.0.255) !]] +::= [s0; Font with face name equal to [/@(0.0.255) text]. If such font +does not exist on system, Arial is used.] +::^ [s1;%- [C `{][/C@(0.0.255) charset][C `}]&] +[s0; ] +::= [s0; Character set. It can be defined as either single character&] +[s0; &] +[ {{1840:8160<330;>1757;f4;h1; [s0; [C@(128.0.255) `_]] +:: [s0; utf`-8] +:: [s0; [C@(128.0.255) 0]] +:: [s0; windows`-1250] +:: [s0; [C@(128.0.255) 1]] +:: [s0; windows`-1251] +:: [s0; [C@(128.0.255) 2]] +:: [s0; windows`-1252] +:: [s0; [C@(128.0.255) 3]] +:: [s0; windows`-1253] +:: [s0; [C@(128.0.255) 4]] +:: [s0; windows`-1254] +:: [s0; [C@(128.0.255) 5]] +:: [s0; windows`-1255] +:: [s0; [C@(128.0.255) 6]] +:: [s0; windows`-1256] +:: [s0; [C@(128.0.255) 7]] +:: [s0; windows`-1257] +:: [s0; [C@(128.0.255) A]] +:: [s0; iso`-8859`-1] +:: [s0; [C@(128.0.255) B]] +:: [s0; iso`-8859`-2] +:: [s0; [C@(128.0.255) C]] +:: [s0; iso`-8859`-3] +:: [s0; [C@(128.0.255) D]] +:: [s0; iso`-8859`-4] +:: [s0; [C@(128.0.255) E]] +:: [s0; iso`-8859`-5] +:: [s0; [C@(128.0.255) F]] +:: [s0; iso`-8859`-6] +:: [s0; [C@(128.0.255) G]] +:: [s0; iso`-8859`-7] +:: [s0; [C@(128.0.255) H]] +:: [s0; iso`-8859`-8] +:: [s0; [C@(128.0.255) I]] +:: [s0; iso`-8859`-9] +:: [s0; [C@(128.0.255) J]] +:: [s0; iso`-8859`-10]}}&] +[s0; &] +[s0; or as the string designating character set (example: [*C@3 `"`[`{`_`}_...`]`"][* , +][*C@3 `"`[`{windows`-1250`}_...`]`"]).] +::^ [s0;%- [C@(128.0.255) %][/C@(0.0.255) lang]] +::= [s0; Language. It is defined in form [@(0.0.255) XX]`-[@(0.0.255) YY], +according to ISO 639 and ISO 3166 standards. (example: [*C@3 `"`[%EN`-US_...`]`"]). +[*C@3 `"`[%00`-00_`"] represents `"none`" language. As special +optimization, [*@(128.0.255) %`-] is equivalent to [@(128.0.255) %][@(0.0.255) 00`-00] +(no language) and&] +[s0; [@(128.0.255) %%] is equivalent to [@(128.0.255) %][@(0.0.255) EN`-US].] +::^ [s0;%- [C@(128.0.255) :][/C@(0.0.255) text][C@(128.0.255) :]] +::= [s0; Paragraph label.] +::^ [s0;%- [C@(128.0.255) <]] +::= [s0; Align paragraph left.] +::^ [s0;%- [C@(128.0.255) `=]] +::= [s0; Center paragraph.] +::^ [s0;%- [C@(128.0.255) >]] +::= [s0; Align paragraph right.] +::^ [s0;%- [C@(128.0.255) #]] +::= [s0; Justify paragraph.] +::^ [s0;%- [C@(128.0.255) l][/C@(0.0.255) number]] +::= [s0; Left margin in dots.] +::^ [s0;%- [C@(128.0.255) r][/C@(0.0.255) number]] +::= [s0; Right margin in dots.] +::^ [s0;%- [C@(128.0.255) i][/C@(0.0.255) number]] +::= [s0; Indent in dots.] +::^ [s0;%- [C@(128.0.255) pn]] +::= [s0; Line spacing 1.0.] +::^ [s0;%- [C@(128.0.255) ph]] +::= [s0; Line spacing 1.5.] +::^ [s0;%- [C@(128.0.255) pd]] +::= [s0; Line spacing 2.0.] +::^ [s0;%- [C@(128.0.255) H][/C@(0.0.255) number]] +::= [s0; Horizontal ruler height (if zero, there is no ruler).] +::^ [s0;%- [C@(128.0.255) h][/C@(0.0.255) color]] +::= [s0; Color of horizontal ruler (default is black).] +::^ [s0;%- [C@(128.0.255) L][/C@(0.0.255) number]] +::= [s0; Style of horizontal ruler line, 0 `- solid color, 1 `- dots, +2 `- dashes] +::^ [s0;%- [C@(128.0.255) b][/C@(0.0.255) number]] +::= [s0; Space before paragraph in dots.] +::^ [s0;%- [C@(128.0.255) a][/C@(0.0.255) number]] +::= [s0; Space after paragraph in dots.] +::^ [s0;%- [C@(128.0.255) P]] +::= [s0; Page break before paragraph.] +::^ [s0;%- [C@(128.0.255) k]] +::= [s0; Keep paragraph on single page.] +::^ [s0;%- [C@(128.0.255) K]] +::= [s0; Keep paragraph on same page as next one. Only works well for +binding two paragraphs (does not propagate further). If you need +to bind more, use organizing table [@(128.0.255) `{`{`*K ][/ text][@(128.0.255) `}`}]] +::^ [s0;%- [C@(128.0.255) Q]] +::= [s0; Orphan control.] +::^ [s0;%- [C@(128.0.255) n][/C@(0.0.255) text][C@(128.0.255) ;]] +::= [s0; Text to insert before paragraph number.] +::^ [s0;%- [C@(128.0.255) m][/C@(0.0.255) text][C@(128.0.255) ;]] +::= [s0; Text to insert after paragraph number.] +::^ [s0;%- [C@(128.0.255) N]] +::= [s0; Numbering. It is followed by up to 8 characters defining numbering +style of each level&] +[s0; &] +[ {{864:9136<342;>861;f4; [s0; [C@(128.0.255) `-]] +:: [s0; Level is not used.] +:: [s0; [C@(128.0.255) 1]] +:: [s0; Numbers, starting with 1.] +:: [s0; [C@(128.0.255) 0]] +:: [s0; Numbers, starting with 0.] +:: [s0; [C@(128.0.255) a]] +:: [s0; Lowercase letters, starting with a.] +:: [s0; [C@(128.0.255) A]] +:: [s0; Uppercase letters, starting with A.] +:: [s0; [C@(128.0.255) i]] +:: [s0; Lowercase roman numbers, starting with i.] +:: [s0; [C@(128.0.255) I]] +:: [s0; Uppercase roman numbers, starting with I]}}&] +[s0; &] +[s0; If after 8 numbering style characters there is a `'[@(128.0.255) !]`' +suffix, the reset is performed for those numbering levels that +are used. If all levels are not used, reset is performed for +the top`-level.] +::^ [s0;%- [C@(128.0.255) o]] +::= [s0; Bullet style.] +::^ [s0;%- [C@(128.0.255) O`_]] +::= [s0; No bullet.] +::^ [s0;%- [C@(128.0.255) O0]] +::= [s0; Bullet style.] +::^ [s0;%- [C@(128.0.255) O1]] +::= [s0; Bullet style.] +::^ [s0;%- [C@(128.0.255) O2]] +::= [s0; Bullet style.] +::^ [s0;%- [C@(128.0.255) O3]] +::= [s0; Bullet style.] +::^ [s0;%- [C@(128.0.255) O9]] +::= [s0; Text bullet style.] +::^ [s0;%- [C@(128.0.255) t][/C@(0.0.255) number]] +::= [s0; Default tab size.] +::^ [s0;%- [C@(128.0.255) `~]] +::= [s0; Tabulator setting. Can be followed by character designating +type of tabulation&] +[s0; &] +[ {{864:9136<342;>861;f4; [s0; [C@(128.0.255) >]] +:: [s0; Normal tabulation.] +:: [s0; [C@(128.0.255) <]] +:: [s0; Left tabulation.] +:: [s0; [C@(128.0.255) `=]] +:: [s0; Centered tabulation.]}}&] +[s0; &] +[s0; (default is normal) and by filler character &] +[s0; &] +[ {{3312:3436:3252<342;>861;f4; [s0; [C@(128.0.255) .]] +:: [s0; [C@(128.0.255) `-]] +:: [s0; [C@(128.0.255) `_]]}}&] +[s0; &] +[s0; and is followed by number specifying tabulator position in dots. +The number can be preceded by [C@(128.0.255) >] `- in that case, +position is relative to the right side.&] +[s0; &] +[s0; When followed by [C@(128.0.255) `~] ([*C@3 `"`~`~`"]), clears all +current tab settings (including those inherited from paragraph +style).] +::^ [s0;%- [C@(128.0.255) ;]] +::= [s0; NOP separator. In some cases it is needed to separate command +code. Example: [*C@3 `"`[l200;4 `"]] +::^ [s1; [%-C s][/C@(0.0.255) number]&] +[s0; [%-C@(128.0.255) s][/C@(0.0.255) `"text`"]] +:: [s0; Paragraph style, either defined by style number, or style name.] +:: [s0;%- [C tP][/C@(0.0.255) qtf][C@(128.0.255) `^`^][/C@(0.0.255) qtf][C@(128.0.255) `^`^]] +:: [s0; New text header / footer, [%-/C@(0.0.255) qtf] is complete embeded +QTF representing header/footer. This QTF can contain field[@5 +`{:VALUE:PAGENUMBER:`} ]to represent page number and[@5 `{:VALUE:PAGECOUNT:`}] +to represent total number of pages.]}}&] +[s0;3 &] +[s0;3 &] +[s2; Styles&] +[s0; &] +[s0; Paragraph styles are defined using normal character/paragraph +formatting sequence with&] +[s0; &] +[s0; [@(128.0.255) `$`$][/@(0.0.255) number][@(128.0.255) ,][/@(0.0.255) nnumber][@(128.0.255) # +][/@(0.0.255) uuid][@(128.0.255) :][/@(0.0.255) name]&] +[s0; &] +[s0; instead of text, where&] +[s0; &] +[ {{1879:8121^ [s0;%- [@(0.0.255) number]] +:: [s0; Number of style `- can be used with [@(128.0.255) s] paragraph +format command code.] +:: [s0;%- [@(0.0.255) nnumber]] +:: [s0; Number of style of next paragraph `- used by RichText editor +when inserting paragraphs.] +:: [s0;%- [@(0.0.255) uuid]] +:: [s0; 32 digit unique hexadecimal identifier of style.] +:: [s0;%- [@(0.0.255) name]] +:: [s0; Name of style, displayed by editors. Can also be used with [@(128.0.255) s] +paragraph format command code.]}}&] +[s0; &] +[s0; Style with [@(0.0.255) number] `= 0 and [@(0.0.255) uuid `= ]00000000000000000000000 +000000000 is [*/ default] style.&] +[s0; &] +[s0; Example:&] +[s0; &] +[s0; [C@3 `"`[`*/`+117 `$`$2,0#07143242482611002448121871408047:title`]`"]&] +[s0;@(0.0.255) &] +[s0;@(0.0.255) &] +[s2; Objects&] +[s0;@(0.0.255) &] +[s0; Object plays the role of the single character and is displayed +according to its type. It is started with a header in the form&] +[s0; &] +[s0; [@(128.0.255) `@`@][/@(0.0.255) format][@(128.0.255) :][/@(0.0.255) cx][@(128.0.255) `&][/@(0.0.255) c +y]&] +[s0;@(0.0.255) &] +[s0;%- or&] +[s0;%- &] +[s0; [@(128.0.255) `@`@][/@(0.0.255) format][@(128.0.255) :][/@(0.0.255) cx][@(128.0.255) `*][/@(0.0.255) c +y]&] +[s0;%- &] +[s0;%- where&] +[s0; &] +[ {{1879:8121^ [s0; [@(0.0.255) format]] +:: [s0; Format of objects. This format must be recognized by the application. +By default, RichText recognizes the PNG format and [*/ iml] format +(see bellow).] +:: [s0; [@(0.0.255) cx]] +:: [s0; Width of object in dots.] +:: [s0; [@(0.0.255) cy]] +:: [s0; Height of object in dots.]}}&] +[s0;@(0.0.255) &] +[s0; First form with `'[@(128.0.255) `&]`' activates `"keep aspect +ratio`" for the object, second form with `'[@(128.0.255) `*]`' +leaves this option inactive.&] +[s0; &] +[s0; Optionally, there can be 3rd number, separated by `'[@(128.0.255) /]`' +character. This number represent vertical placement of object, +default value 0 means that bottom border of object is aligned +with baseline of text.&] +[s0; &] +[s0; If header is followed by `'```' character, object data are in +text format. In that case, object data are terminated with another +`'```' character. If there needs to be `'```' in the text, `'`````' +can be used as escape sequence.&] +[s0; &] +[s0; If header is followed by `'(`', it countains BASE64 encoded +binary data, ending with `')`'. [* This is default format for binary +data].&] +[s0; &] +[s0; If there is no `'```' nor `'(`', header is in binary 7 bit format. +Bit 7 of data bytes is always 1, so that actual data bytes are +in range 128`-255. First byte in range 32`-127 ends data sequence. +Data are encoded in 7 byte groups, which corresponds to 8 bytes +of encoded format. First byte of this 8 bytes block always contains +eight bits of following bytes, LSB (that is bit 0) being the +eight bit for first byte in block. [/ This format is deprecated.]&] +[s0; &] +[s0; [*/3 iml][*3 format]&] +[s0;* &] +[s0; [*/ iml][* ]format is text format of rich object where text data +reference existing .iml based Image as pair [@(0.0.255) iml`_class`_name]:[@(0.0.255) i +mage`_name]. Example of full object definition in [*/ iml] format:&] +[s0; &] +[s0; [*C@3 `"`@`@iml:400`*400``CtrlImg:exclamation```"]&] +[s0;@(0.0.255) &] +[s0;@(0.0.255) &] +[s2; Fields&] +[s0;@(0.0.255) &] +[s0; Fields are special elements of text that are evaluated by client +code into rich text. QTF format for fields is&] +[s0;@(0.0.255) &] +[s0; [@(128.0.255) `{:][/@(0.0.255) field`_type`_id][@(128.0.255) :][/@(0.0.255) parameter][@(128.0.255) : +`}]&] +[s0;@(128.0.255) &] +[ {{1879:8121^ [s0; [@(0.0.255) field`_type`_id]] +:: [s0; Type of field. Field types are represented by RichPara`::FieldType +derived instances and registred using RichPara`::Register function.] +:: [s0; [@(0.0.255) parameter]] +:: [s0; Additional string parameter that gets passed to FieldType`::Evaluate +method]}}&] +[s0;@(128.0.255) &] +[s0;@(0.0.255) &] +[s0;3 &] +[s2; Tables&] +[s0; &] +[s0; Table definition starts with&] +[s0;3 &] +[s0; [@(128.0.255) `{`{]&] +[s0;@(128.0.255) &] +[s0; pair, followed by set of numbers separated with&] +[s0; &] +[s0; [@(128.0.255) :]&] +[s0;@(128.0.255) &] +[s0; Numbers represent ratios of column widths; count of numbers +is equivalent to count of columns. Next there is [/ table/cell +formatting sequence] ended with single space character. Cells +are separated with&] +[s0; &] +[s0; [@(128.0.255) `::]&] +[s0;@(128.0.255) &] +[s0; characters and another table/cell formating sequence (to setup +format for each individual cell). Formating of cells is inherited +from previous cells. Table ends with&] +[s0; &] +[s0; [@(128.0.255) `}`}]&] +[s0;@(128.0.255) &] +[s0; pair.&] +[s0; &] +[ {{1993:8007^@(229.229.248)-1 [s0; [*/ Table/cell formating sequence]] +::=@2 [s0;%- ] +::^ [s0;%- [C@(128.0.255) <][/C@(0.0.255) number]] +:: [s0; Left margin of table in dots.] +:: [s0;%- [C@(128.0.255) >][/C@(0.0.255) number]] +:: [s0; Right margin of table in dots.] +:: [s0;%- [C@(128.0.255) B][/C@(0.0.255) number]] +:: [s0; Space before table in dots.] +:: [s0;%- [C@(128.0.255) A][/C@(0.0.255) number]] +:: [s0; Space after table in dots.] +:: [s0;%- [C@(128.0.255) f][/C@(0.0.255) number]] +:: [s0; Frame thickness in dots. Frame is outer border of table. Default +value is 10.] +:: [s0;%- [C@(128.0.255) F][/C@(0.0.255) color]] +:: [s0; Color of the frame.] +:: [s0; [%-C@(128.0.255) g][/C@(0.0.255) number]] +:: [s0; Grid thickness in dots. Grid are lines dividing cells inside +table. Default value is 4.] +:: [s0;%- [C@(128.0.255) G][/C@(0.0.255) color]] +:: [s0; Color of the grid.] +:: [s0;%- [C@(128.0.255) k]] +:: [s0; Keep the cell on single page.] +:: [s0;%- [C@(128.0.255) K]] +:: [s0; Keep the table on single page.] +:: [s0;%- [C@(128.0.255) `~]] +:: [s0; Sets grid and frame thickness to zero. Useful when using tables +to organize text.] +:: [s0; [%-C@(128.0.255) h][/C@(0.0.255) number]] +:: [s0; Number of header rows. Header rows are repeated at the beginning +of every page.] +:: [s0;%- [C@(128.0.255) `^]] +:: [s0; Cell aligns to top.] +:: [s0;%- [C@(128.0.255) `=]] +:: [s0; Cell aligns to center (vertical). Default.] +:: [s0;%- [C@(128.0.255) v]] +:: [s0; Cell aligns to bottom.] +:: [s1; [%-C l][/C@(0.0.255) number/number]&] +[s0; [%-C@(128.0.255) l][/C@(0.0.255) number]&] +[s0; [%-C@(128.0.255) l][/C@(0.0.255) /number]] +:: [s0; Sets left cell border (first [/@(0.0.255) number]) and margin +in dots. If any of numbers is missing, sets only the one present. +Default is border: 0, margin: 25.] +:: [s1; [C r][/C@(0.0.255) number/number]&] +[s0; [C@(128.0.255) r][/C@(0.0.255) number]&] +[s0; [C@(128.0.255) r][/C@(0.0.255) /number]] +:: [s0; Sets right cell border (first [/@(0.0.255) number]) and margin +in dots. If any of numbers is missing, sets only the one present. +Default is border: 0, margin: 25.] +:: [s1; [C t][/C@(0.0.255) number/number]&] +[s0; [C@(128.0.255) t][/C@(0.0.255) number]&] +[s0; [C@(128.0.255) t][/C@(0.0.255) /number]] +:: [s0; Sets top cell border (first [/@(0.0.255) number]) and margin in +dots. If any of numbers is missing, sets only the one present. +Default is border: 0, margin: 15.] +:: [s1; [C b][/C@(0.0.255) number/number]&] +[s0; [C@(128.0.255) b][/C@(0.0.255) number]&] +[s0; [C@(128.0.255) b][/C@(0.0.255) /number]] +:: [s0; Sets bottom cell border (first [/@(0.0.255) number]) and margin +in dots. If any of numbers is missing, sets only the one present. +Default is border: 0, margin: 15.] +:: [s1; [C a][/C@(0.0.255) number/number]&] +[s0; [C@(128.0.255) a][/C@(0.0.255) number]&] +[s0; [C@(128.0.255) a][/C@(0.0.255) /number]] +:: [s0; Sets all cell borders (first [/@(0.0.255) number]) and margins +in dots. If any of numbers is missing, sets only the one present.] +:: [s0; [C@(128.0.255) `*]] +:: [s0; Same as f0g0a0/0 `- sets everything to zero to use table as +organizing element.] +:: [s0; [C@(128.0.255) o]] +:: [s0; Sets round border.] +:: [s0; [C@(128.0.255) `@][/C@(0.0.255) color]] +:: [s0; Cell background color. Default is White.] +:: [s0; [C@(128.0.255) R][/C@(0.0.255) color]] +:: [s0; Cell border color. Default is Black.] +:: [s0; [C@(128.0.255) !]] +:: [s0; Resets cell formatting to default values.] +:: [s0; [C@(128.0.255) H][/C@(0.0.255) number]] +:: [s0; Sets the minimal height of cell (and therefore also of row) +in dots.] +:: [s0; [C@(128.0.255) `-][/C@(0.0.255) number]] +:: [s0; Horizontal cell span.] +:: [s0; [C@(128.0.255) `|][/C@(0.0.255) number]] +:: [s0; Vertical cell span.] +:: [s0; [C@(128.0.255) ;]] +::= [s0; NOP separator. In some cases it helps to separate command code.] +::^ [s0; [C@(128.0.255) P]] +::= [s0; Page break before table.] +::^ [s0;%- [%%C@(128.0.255) T][/C@(0.0.255) qtf][C@(128.0.255) `^`^][/C@(0.0.255) qtf][C@(128.0.255) `^ +`^]] +:: [s0; New text header / footer, [%-/C@(0.0.255) qtf] is complete embeded +QTF representing header/footer. This QTF can contain field[@5 +`{:VALUE:PAGENUMBER:`} ]to represent page number and[@5 `{:VALUE:PAGECOUNT:`}] +to represent total number of pages.]}}&] +[s0;3 &] +[s0; Note: There is also legacy support for old table format (from +previous QTF version) that is based on [@(128.0.255) `+`+ ]pair +as table start/stop and [@(128.0.255) `|`| `-`-] to divide cells/lines. +&] +[s0;3 &] +[s0;3 &] +[s2; Global Header and Footer&] +[s0; &] +[s0; Global text header is defined using [%-C@(128.0.255) `^H][%-/C@(0.0.255) qtf`_text][%-C@(128.0.255) `^ +`^], footer [%-C@(128.0.255) `^F][%-/C@(0.0.255) qtf`_text][%-C@(128.0.255) `^`^], +where [%-/C@(0.0.255) qtf`_text] is complete embeded QTF representing +header/footer. This QTF can contain field[@5 `{:VALUE:PAGENUMBER:`} +]to represent page number and[@5 `{:VALUE:PAGECOUNT:`}] to represent +total number of pages. Global page header and footer can be changed +by paragraph attributes.&] +[s0;3 &] +[s0;3 &] +[s0;3 &] +[s2; [3 Examples]&] +[s0; &] +[ {{10000 [s0; [*C@3;1 `"Normal `[`* bold`] `[/ italic`] `[`_ underline`] `[`` +superscript`] `[, subscript`]`"]] +:: [s0; Normal [* bold] [/ italic] [_ underline] [` superscript] [, subscript]]}}&] +[s0; &] +[ {{10000 [s0; [*C@3;1 `"```[ ```] `\1`[escaped`]`\1 `[`* bold`]`"]] +:: [s0; `[ `] `[escaped`] [* bold]]}}&] +[s0; &] +[ {{10000 [s0; [*C@3;1 `"`[A Arial (Sans`-Serif)`] `[R Times New Roman (Serif)`] +`[C Courier (Monospace)`]`"]] +:: [s0; Arial (Sans`-Serif) [R Times New Roman (Serif)] [C Courier (Monospace)]]}}&] +[s0; &] +[ {{10000 [s0; [*C@3;1 `"`[0 6pt `]`[1 8pt `]`[2 10pt `]`[3 12pt `]`[4 16pt `]`[5 +20pt `]`[6 24pt `]`[7 28pt `]`[8 36pt `]`[9 48pt `]`"]] +:: [s0; [0 6pt ][1 8pt ]10pt [3 12pt] [4 16pt ][5 20pt ][6 24pt ][7 28pt ][8 36pt ][9 48pt +]]}}&] +[s0; &] +[ {{10000 [s0; [*C@3;1 `"`[!Tahoma! Tahoma`]`"]] +:: [s0; Tahoma]}}&] +[s0; &] +[ {{10000 [s0; [*C@3;1 `"`[`+500 500dots`]`"]] +:: [s0; [+500 500dots]]}}&] +[s0; &] +[ {{10000 [s0; [*C@3;1 `"`[`@4 Green text`] `[`$(255.220.200) Pink background`]`"]] +:: [s0; [@4 Green text] [$(255.220.200) Pink background]]}}&] +[s0; &] +[ {{10000 [s0; [*C@3;1 `"`[%EN`-US English language`] `[%CS`-CZ Czech language`]`"]] +:: [s0;%CS-CZ [%% English language ]Czech language]}}&] +[s0; &] +[ {{10000 [s0; [*C@3;1 `"`[`^upp.sf.net`^ Hyperlink`] `[Icompiler, linker; Index +entry`]`"]] +:: [s0; [^upp`.sf`.net^ Hyperlink] [Icompiler`, linker; Index entry]]}}&] +[s0; &] +[ {{10000 [s0; [*C@3;1 `"`[:label: Labeled paragraph`]`"]] +:: [s0; Labeled paragraph]}}&] +[s0; &] +[ {{10000 [s0; [*C@3;1 `"`[< Left paragraph alignment`]`"]] +:: [s0; Left paragraph alignment]}}&] +[s0; &] +[ {{10000 [s0; [*C@3;1 `"`[`= Center paragraph alignment`]`"]] +:: [s0; Center paragraph alignment]}}&] +[s0; &] +[ {{10000 [s0; [*C@3;1 `"`[> Right paragraph alignment`]`"]] +:: [s0; Right paragraph alignment]}}&] +[s0; &] +[ {{10000 [s0; [*C@3;1 `"`[# Justify alignment. Just some text to demosntrate +it... Just some text to demonstrate it... Just some text to demonstrate +it...`]`"]] +:: [s0; Justify alignment. Just some text to demosntrate it... Just +some text to demonstrate it... Just some text to demonstrate +it...]}}&] +[s0; &] +[ {{10000 [s0; [*C@3;1 `"`[l1000 Left margin 1000dots`]`"]] +:: [s0; Left margin 1000dots]}}&] +[s0; &] +[ {{10000 [s0; [*C@3;1 `"`[i1000 Indent 1000 dots.Just some text to demonstrate +it... Just some text to demonstrate it...`]`"]] +:: [s0; Indent 1000 dots.Just some text to demonstrate it... Just some +text to demonstrate it...]}}&] +[s0; &] +[ {{10000 [s0; [*C@3;1 `"`[r1000 Right margin 1000 dots.Just some text to demonstrate +it... Just some text to demonstrate it...`]`"]] +:: [s0; Right margin 1000 dots.Just some text to demonstrate it... Just +some text to demonstrate it...]}}&] +[s0; &] +[ {{10000 [s0; [*C@3;1 `"Paragraph`&`[b200 Before 200dots`]`"]] +:: [s0; Paragraph&] +[s0; Before 200dots]}}&] +[s0; &] +[ {{10000 [s0; [*C@3;1 `"`[a200 After 200dots`]`&Paragraph`"]] +:: [s0;a200; After 200dots&] +[s0; Paragraph]}}&] +[s0; &] +[ {{10000 [s0; [*C@3;1 `"`[i200 `[O0 bullet`&`]`[O1 bullet`&`]`[O2 bullet`&`]`[O3 +bullet`]`]`"]] +:: [s0;i200;O0; bullet&] +[s0;i200;O1; bullet&] +[s0;i200;O2; bullet&] +[s0; bullet]}}&] +[s0; &] +[ {{10000 [s0; [*C@3;1 `"`[O9i500 text bullet`-`|Just some text to demonstrate +it... Just some text to demonstrate it...Just some text to demonstrate +it... Just some text to demonstrate it...`]`"]] +:: [s0; text bullet-|Just some text to demonstrate it... Just some text +to demonstrate it...Just some text to demonstrate it... Just +some text to demonstrate it...]}}&] +[s0; &] +[ {{10000 [s0; [*C@3;1 `"`[O9i200 `[N1m.; `-`|level 1`&`]`[N1a `-`|level 2`&`]`[N1a +`-`|level 2`&`]`[N1 `-`|level 1`&`]`[N1a `-`|level 2`]`]`"]] +:: [s0;i200;O9;m`.;N1; -|level 1&] +[s0;i200;O9;N1a; -|level 2&] +[s0;i200;O9;N1a; -|level 2&] +[s0;i200;O9;N1; -|level 1&] +[s0; -|level 2]}}&] +[s0; &] +[ {{10000 [s0; [*C@3;1 `"`[`~300`~`=.2000`~>`-3000 `-`|Normal tab`-`|Centered +tab`-`|Right tab`]`"]] +:: [s0; -|Normal tab-|Centered tab-|Right tab]}}&] +[s0; &] +[ {{10000 [s0; [*C@3;1 `"`{`{1:2 A1`|`|A2`|`|B1`|`|B2`}`}`"]] +:: [ {{3333:6667 [s0; A1] +:: [s0; A2] +:: [s0; B1] +:: [s0; B2]}}]}}&] +[s0; &] +[ {{10000 [s0; [*C@3;1 `"`{`{2:1G4g100F5f50 A1`:: A2`:: B1`:: B2`}`}`"]] +:: [ {{6666:3334f50;F5g100;G4 [s0; A1] +:: [s0; A2] +:: [s0; B1] +:: [s0; B2]}}]}}&] +[s0; &] +[ {{10000 [s0; [*C@3;1 `"`{`{1:2 A1`::l40/60R6`@3 A2`::! B1`:: B2`}`}`"]] +:: [ {{3333:6667 [s0; A1] +::l40/60@3R6 [s0; A2] +::l0/25@2R0 [s0; B1] +:: [s0; B2]}}]}}&] +[s0; &] +[ {{10000 [s0; [*C@3;1 `"`{`{1:1:1`|2 A1`::`-2 A2`:: A3`:: B1`:: B2`:: B3`}`}`"]] +:: [ {{3333:3333:3334|1 [s0; A1] +::-1 [s0; A2] +:: [s0;%- ] +:: [s0;%- ] +:: [s0; B2] +:: [s0; B3]}}]}}&] +[s0; &] +[ {{10000 [s0; [*C@3;1 `"`{`{1:2 A1`:: A2`:: B1`:: `{`{1:2 a1`:: a2`:: a1`:: a2`}`}`}`}`"]] +:: [ {{3333:6667 [s0; A1] +:: [s0; A2] +:: [s0; B1] +:: [ {{3333:6667 [s0; a1] +:: [s0; a2] +:: [s0; a1] +:: [s0; a2]}}]}}]}}&] +[s0;*_@3%- &] +[s0;3%- &] +[ {{10000 [s0;%- [*C@3;1 `"`{`{1`~a30/50o Round border`}`}`"]] +:: [ {{10000f0;Kg0;l30/50r30/50t30/50b30/50o [s0;%- Round border]}}]}}&] [s0;*_@3%- ]] \ No newline at end of file diff --git a/uppsrc/ide/Core/src.tpp/Builder$en-us.tpp b/uppsrc/ide/Core/src.tpp/Builder_en-us.tpp similarity index 100% rename from uppsrc/ide/Core/src.tpp/Builder$en-us.tpp rename to uppsrc/ide/Core/src.tpp/Builder_en-us.tpp diff --git a/uppsrc/ide/Debuggers/app.tpp/PDBExpressions$en-us.tpp b/uppsrc/ide/Debuggers/app.tpp/PDBExpressions_en-us.tpp similarity index 100% rename from uppsrc/ide/Debuggers/app.tpp/PDBExpressions$en-us.tpp rename to uppsrc/ide/Debuggers/app.tpp/PDBExpressions_en-us.tpp diff --git a/uppsrc/ide/SrcUpdater/app.tpp/InstallWizard$en-us.tpp b/uppsrc/ide/SrcUpdater/app.tpp/InstallWizard_en-us.tpp similarity index 100% rename from uppsrc/ide/SrcUpdater/app.tpp/InstallWizard$en-us.tpp rename to uppsrc/ide/SrcUpdater/app.tpp/InstallWizard_en-us.tpp diff --git a/uppsrc/ide/SrcUpdater/app.tpp/LinuxInstallGuide$en-us.tpp b/uppsrc/ide/SrcUpdater/app.tpp/LinuxInstallGuide_en-us.tpp similarity index 100% rename from uppsrc/ide/SrcUpdater/app.tpp/LinuxInstallGuide$en-us.tpp rename to uppsrc/ide/SrcUpdater/app.tpp/LinuxInstallGuide_en-us.tpp diff --git a/uppsrc/ide/SrcUpdater/app.tpp/Uninstall$en-us.tpp b/uppsrc/ide/SrcUpdater/app.tpp/Uninstall_en-us.tpp similarity index 100% rename from uppsrc/ide/SrcUpdater/app.tpp/Uninstall$en-us.tpp rename to uppsrc/ide/SrcUpdater/app.tpp/Uninstall_en-us.tpp diff --git a/uppsrc/ide/SrcUpdater/app.tpp/Updating$en-us.tpp b/uppsrc/ide/SrcUpdater/app.tpp/Updating_en-us.tpp similarity index 100% rename from uppsrc/ide/SrcUpdater/app.tpp/Updating$en-us.tpp rename to uppsrc/ide/SrcUpdater/app.tpp/Updating_en-us.tpp diff --git a/uppsrc/ide/SrcUpdater/src.tpp/Wizard$en-us.tpp b/uppsrc/ide/SrcUpdater/src.tpp/Wizard_en-us.tpp old mode 100755 new mode 100644 similarity index 100% rename from uppsrc/ide/SrcUpdater/src.tpp/Wizard$en-us.tpp rename to uppsrc/ide/SrcUpdater/src.tpp/Wizard_en-us.tpp diff --git a/uppsrc/ide/app.tpp/About$en-us.tpp b/uppsrc/ide/app.tpp/About_en-us.tpp similarity index 97% rename from uppsrc/ide/app.tpp/About$en-us.tpp rename to uppsrc/ide/app.tpp/About_en-us.tpp index b52b2c4e7..51c951acd 100644 --- a/uppsrc/ide/app.tpp/About$en-us.tpp +++ b/uppsrc/ide/app.tpp/About_en-us.tpp @@ -1,4078 +1,4078 @@ -topic "Copyright © 1999-2017 Ultimate++ team"; -[ $$0,0#00000000000000000000000000000000:Default] -[{_}%EN-US -[s0;*IGetLocalDir;+117 &] -[s0; [*+117 Copyright © 1998, 2017 Ultimate`+`+ team]&] -[s0;i704;O9; Authors:[+117 -|][*+117 Mirek_Fídler, Koldo_Ramirez,][+117 -][*+117 Tomáš_Rylek, ][*^http`:`/`/www`.digitalsoftware`.pl^+117 Daniel_Kos][* , -][*+117 Massimo Del Fedele, ][*^https`:`/`/www`.linkedin`.com`/in`/zbigniewrebacz^+117 Z -bigniew RÄ™bacz]&] -[s0;i704;O9; Contributors:[+117 -|][* Sandor_Hojtsy, Zsolt_Debre, Guido_Schimmels, -Augusto_Roman, Arijus Bernotas, Michael_Albert , Marcus_Mauhart, -][*^http`:`/`/nullptr`.nl`/^ Jan_Wilmans][* , Graeme_Prentice, Victor_Berchet, -Ivica_Puljic, Mathiass_Sund, Andrew_Barilla, Michal_Mierzejewski, -Damien_Porquet, Werner_Wenzel, ][%-*^http`:`/`/www`.fallingdutch`.de`/^ Bas_Wegh][* , - Fabio_Busetto, Michal_PekaÅ™, Darrin_Scott, Damien_Porquet, -James Thomas, ][*^http`:`/`/h4xz`.blogspot`.com^ Sritharan Sivaguru,][* -Artur Bać, Ralf Schneider, Pavel Ostapenko, Raul Ionitoiu, Norbert -Hofer, Tomasz Pajak, Benoit Cousson, Trey Van Riper, Peter Berger, -Sergey Nikitin, Irenkov Alexander, Gabriel Schmotzer, Domingo -Alvarez Duarte, Andrei Cosma, Tom Olá, George Brink, Zbigniew -Czapiga, Konstantin Hartwich, Didier Quenouillere, Anthony Paul, -Kovalev Sergey, Martin Schut, Ion Lupascu, Frank De prins, Jeff -Humphreys, Lucas Harsze, Martin Schut, ][*^http`:`/`/www`.mimuw`.edu`.pl`/`~pan`/^ J -akub Pawlewicz][* , Navin Vidhani, Steffen Brummer, Luis Rodriguez, -Rakibul Islam, Nahar Pengatteeri, Ralph Klautke, Victor Picheev, -Navadvipa Chandra das, Radek MalÄic, Amrein`-Marie Christophe, -Abdelghani Omari]&] -[s0;i704;O9; Translators:-|[* Mauro_Bottizzo, Miklós_Somogyi, Arlen_Albert, -Ivica_Puljic, Richard_Gill, Werner_Wenzel, Tom Olá, Sergey Nikitin, -Koldo Ramirez, Gabriel Schmotzer, Andrei Catalin, Massimo Del -Fedele, Jan Dolinár, Zsolt Debre, Anton Aleshkevich, Lionel -Orry, é»ƒä¿Šé” (Kasome), phirox, Didier, è°¢å¨æ‰¬ (Bonami), -Frederico Rodrigues, Ruben Proost, Willem Kroes]&] -[s0;i704;O9; PR `& SEO:-|[* Pavel_Stratil]&] -[s0;i704;O9; U`+`+ Logo:[+117 -|][* Pavel Ostapenko], [* Robert_Vroemisse, -]&] -[s0;+108 &] -[ {{3333:6667 [s0; Ultimate`+`+ team email] -:: [s0; [^mailto`:upp`@ntllib`.org^ upp`@ntllib.org]] -:: [s0; Ultimate`+`+ home page] -:: [s0; [^http`:`/`/www`.ultimatepp`.org`/^ http://www.ultimatepp.org]] -:: [s0; Ultimate`+`+ forum] -:: [s0; [^http`:`/`/www`.ultimatepp`.org`/forums^ http://www.ultimatepp.org/forums]]}}&] -[s0;+108 &] -[s0;+92 &] -[s0; [+92 Ultimate`+`+ includes sources of following libraries and -resources:]&] -[ {{2168:7832h1;@(204) [s0; [+75 Library]] -:: [s0; [+75 Authors]] -::^@2 [s0; [+75 zlib]] -::= [s0; [+75 Jean`-loup Gailly and Mark Adler]] -::^ [s0; [+75 IJG JPEG library]] -::= [s0; [+75 Tom Lane, Philip Gladstone, Jim Boucher, Lee Crocker, Julian -Minguillon, Luis Ortiz, George Phillips, Davide Rossi, Guido -Vollbeding, Ge`' Weijers, and other members of the Independent -JPEG Group]] -::^ [s0; [+75 bzip2]] -::= [s0; [+75 Julian Seward]] -::^ [s0; [+75 ndisasm]] -::= [s0; [+75 Julian Hall, Simon Tatham, Nelson Rush, Frank Kotler, Stephen -Silver, John Coffman, Yuri Zaporogets, H. Peter Anvin, John Fine, -Kendall Bennet, Gary Clark, Andrew Crabtree, Rafael R. Sevilla, -Jaime Tejedor, James Seter, Edward J. Beroset, Stanislav Karchebny, -Debbie Wiles, Trevor Woerner, Michael K. Ter Louw, Martin Wawro, -Alexei Frounze]] -::^ [s0; [+75 PNG]] -::= [s0; [+75 Glenn Randers`-Pehrson, Andreas Dilger, Guy Eric Schalnat]] -::^ [s0; [+75 Sqlite]] -::= [s0; [+75 D. Richard Hipp]] -::^ [s0; [+75 tif]] -::= [s0; [+75 Sam Leffler, Silicon Graphics, Inc.]] -::^ [s0; [+75 SILK icon set]] -::= [s0; [^http`:`/`/www`.famfamfam`.com`/lab`/icons`/silk`/^+75 Mark James]]}}&] -[s0;+92 &] -[s0; [+92 All those sources are contained in `"plugin`" directory. -Refer there for licenses, however all libraries have BSD`-compatible -license.]&] -[s0;+108 &] -[s0; [+108 Ultimate`+`+ has BSD license:]&] -[ {{10000@(254.255.232) [s0; [0 Copyright (c) 1998, 2014, The U`+`+ Project]&] -[s0; [0 All rights reserved.]&] -[s0;0 &] -[s0; [0 Redistribution and use in source and binary forms, with or -without modification, are permitted provided that the following -conditions are met:]&] -[s0;0 &] -[s0; [0 1. Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer.]&] -[s0;0 &] -[s0; [0 2. Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution.]&] -[s0;0 &] -[s0; [0 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -`"AS IS`" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT -NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT -SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE -OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, -EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.]]}}&] -[s0;+108 &] -[s0;2%- &] -[s0;%- Package [* plugin/astyle] has following licence notice:&] -[ {{10000@(255.255.192) [s0;%- [C1 The `"Artistic Style`" project, including all files needed -to]&] -[s0;%- [C1 compile it, is free software; you can redistribute it and/or]&] -[s0;%- [C1 modify it under the terms of the GNU Lesser General Public]&] -[s0;%- [C1 License as published by the Free Software Foundation; either]&] -[s0;%- [C1 version 2.1 of the License, or (at your option) any later]&] -[s0;%- [C1 version.]&] -[s0;C1%- &] -[s0;%- [C1 This program is distributed in the hope that it will be -useful,]&] -[s0;%- [C1 but WITHOUT ANY WARRANTY; without even the implied warranty -of]&] -[s0;%- [C1 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See -the]&] -[s0;%- [C1 GNU Lesser General Public License for more details.]&] -[s0;C1%- &] -[s0;%- [C1 You should have received a copy of the GNU Lesser General -Public]&] -[s0;%- [C1 License along with this project; if not, write to the]&] -[s0;%- [C1 Free Software Foundation, Inc., 51 Franklin Street, Fifth -Floor,]&] -[s0;%- [C1 Boston, MA 02110`-1301, USA.]&] -[s0;C1%- ]}}&] -[s0;%- &] -[s0;%- Package [* plugin/box2d] has following licence notice:&] -[ {{10000@(255.255.192) [s0;%- [C1 Copyright (c) 2006`-2009 Erin Catto http://www.gphysics.com]&] -[s0;C1%- &] -[s0;%- [C1 This software is provided `'as`-is`', without any express -or implied]&] -[s0;%- [C1 warranty. In no event will the authors be held liable for -any damages]&] -[s0;%- [C1 arising from the use of this software.]&] -[s0;%- [C1 Permission is granted to anyone to use this software for -any purpose,]&] -[s0;%- [C1 including commercial applications, and to alter it and redistribute -it]&] -[s0;%- [C1 freely, subject to the following restrictions:]&] -[s0;%- [C1 1. The origin of this software must not be misrepresented; -you must not]&] -[s0;%- [C1 claim that you wrote the original software. If you use this -software]&] -[s0;%- [C1 in a product, an acknowledgment in the product documentation -would be]&] -[s0;%- [C1 appreciated but is not required.]&] -[s0;%- [C1 2. Altered source versions must be plainly marked as such, -and must not be]&] -[s0;%- [C1 misrepresented as being the original software.]&] -[s0;%- [C1 3. This notice may not be removed or altered from any source -distribution.]&] -[s0;C1%- ]}}&] -[s0;%- &] -[s0;%- Package [* plugin/bz2] has following licence notice:&] -[ {{10000@(255.255.192) [s0;%- [C1 This program, `"bzip2`" and associated library `"libbzip2`", -are]&] -[s0;%- [C1 copyright (C) 1996`-2002 Julian R Seward. All rights reserved.]&] -[s0;C1%- &] -[s0;%- [C1 Redistribution and use in source and binary forms, with -or without]&] -[s0;%- [C1 modification, are permitted provided that the following -conditions]&] -[s0;%- [C1 are met:]&] -[s0;C1%- &] -[s0;%- [C1 1. Redistributions of source code must retain the above -copyright]&] -[s0;%- [C1 notice, this list of conditions and the following disclaimer.]&] -[s0;C1%- &] -[s0;%- [C1 2. The origin of this software must not be misrepresented; -you must]&] -[s0;%- [C1 not claim that you wrote the original software. If you -use this]&] -[s0;%- [C1 software in a product, an acknowledgment in the product]&] -[s0;%- [C1 documentation would be appreciated but is not required.]&] -[s0;C1%- &] -[s0;%- [C1 3. Altered source versions must be plainly marked as such, -and must]&] -[s0;%- [C1 not be misrepresented as being the original software.]&] -[s0;C1%- &] -[s0;%- [C1 4. The name of the author may not be used to endorse or -promote]&] -[s0;%- [C1 products derived from this software without specific -prior written]&] -[s0;%- [C1 permission.]&] -[s0;C1%- &] -[s0;%- [C1 THIS SOFTWARE IS PROVIDED BY THE AUTHOR ````AS IS`'`' AND -ANY EXPRESS]&] -[s0;%- [C1 OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED]&] -[s0;%- [C1 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE]&] -[s0;%- [C1 ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE -FOR ANY]&] -[s0;%- [C1 DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL]&] -[s0;%- [C1 DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE]&] -[s0;%- [C1 GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS]&] -[s0;%- [C1 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,]&] -[s0;%- [C1 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING]&] -[s0;%- [C1 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS]&] -[s0;%- [C1 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.]&] -[s0;C1%- &] -[s0;%- [C1 Julian Seward, Cambridge, UK.]&] -[s0;%- [C1 jseward`@acm.org]&] -[s0;%- [C1 bzip2/libbzip2 version 1.0.2 of 30 December 2001]&] -[s0;C1%- ]}}&] -[s0;%- &] -[s0;%- Package [* plugin/DroidFonts] has following licence notice:&] -[ {{10000@(255.255.192) [s0;%- [C1 Licensed under the Apache License, Version 2.0 (the `"License`");]&] -[s0;%- [C1 you may not use this file except in compliance with the -License.]&] -[s0;%- [C1 You may obtain a copy of the License at]&] -[s0;C1%- &] -[s0;%- [C1 http://www.apache.org/licenses/LICENSE`-2.0]&] -[s0;C1%- &] -[s0;%- [C1 Unless required by applicable law or agreed to in writing, -software]&] -[s0;%- [C1 distributed under the License is distributed on an `"AS -IS`" BASIS,]&] -[s0;%- [C1 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express -or implied.]&] -[s0;%- [C1 See the License for the specific language governing permissions -and]&] -[s0;%- [C1 limitations under the License.]]}}&] -[s0;%- &] -[s0;%- Package [* plugin/Eigen] has following licence notice:&] -[ {{10000@(255.255.192) [s0;%- [C1 Copyright (C) 2008 Gael Guennebaud ]&] -[s0;C1%- &] -[s0;%- [C1 This Source Code Form is subject to the terms of the Mozilla]&] -[s0;%- [C1 Public License v. 2.0. If a copy of the MPL was not distributed]&] -[s0;%- [C1 with this file, You can obtain one at http://mozilla.org/MPL/2.0/.]&] -[s0;C1%- ]}}&] -[s0;%- &] -[s0;%- Package [* plugin/ftp] has following licence notice:&] -[ {{10000@(255.255.192) [s0;%- [C1 Copyright (C) 1996`-2001 Thomas Pfau, pfau`@eclipse.net - ]&] -[s0;%- [C1 1407 Thomas Ave, North Brunswick, NJ, 08902 - ]&] -[s0;%- [C1 - ]&] -[s0;%- [C1 This library is free software; you can redistribute it and/or - ]&] -[s0;%- [C1 modify it under the terms of the GNU Library General Public - ]&] -[s0;%- [C1 License as published by the Free Software Foundation; either - ]&] -[s0;%- [C1 version 2 of the License, or (at your option) any later -version. ]&] -[s0;%- [C1 - ]&] -[s0;%- [C1 This library is distributed in the hope that it will be -useful, ]&] -[s0;%- [C1 but WITHOUT ANY WARRANTY; without even the implied warranty -of ]&] -[s0;%- [C1 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See -the GNU ]&] -[s0;%- [C1 Library General Public License for more details. - ]&] -[s0;%- [C1 - ]&] -[s0;%- [C1 You should have received a copy of the GNU Library General -Public ]&] -[s0;%- [C1 License along with this progam; if not, write to the - ]&] -[s0;%- [C1 Free Software Foundation, Inc., 59 Temple Place `- Suite -330, ]&] -[s0;%- [C1 Boston, MA 02111`-1307, USA. - ]&] -[s0;C1%- ]}}&] -[s0;%- &] -[s0;%- Package [* plugin/FT`_fontsys] has following licence notice:&] -[ {{10000@(255.255.192) [s0;%- [C1 The FreeType Project LICENSE]&] -[s0;%- [C1 `-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`- -]&] -[s0;C1%- &] -[s0;%- [C1 2006`-Jan`-27]&] -[s0;C1%- &] -[s0;%- [C1 Copyright 1996`-2002, 2006 by]&] -[s0;%- [C1 David Turner, Robert Wilhelm, and Werner Lemberg]&] -[s0;C1%- &] -[s0;C1%- &] -[s0;C1%- &] -[s0;%- [C1 Introduction]&] -[s0;%- [C1 `=`=`=`=`=`=`=`=`=`=`=`=]&] -[s0;C1%- &] -[s0;%- [C1 The FreeType Project is distributed in several archive -packages;]&] -[s0;%- [C1 some of them may contain, in addition to the FreeType -font engine,]&] -[s0;%- [C1 various tools and contributions which rely on, or relate -to, the]&] -[s0;%- [C1 FreeType Project.]&] -[s0;C1%- &] -[s0;%- [C1 This license applies to all files found in such packages, -and]&] -[s0;%- [C1 which do not fall under their own explicit license. - The license]&] -[s0;%- [C1 affects thus the FreeType font engine, the test - programs,]&] -[s0;%- [C1 documentation and makefiles, at the very least.]&] -[s0;C1%- &] -[s0;%- [C1 This license was inspired by the BSD, Artistic, - and IJG]&] -[s0;%- [C1 (Independent JPEG Group) licenses, which all encourage -inclusion]&] -[s0;%- [C1 and use of free software in commercial and freeware - products]&] -[s0;%- [C1 alike. As a consequence, its main points are that:]&] -[s0;C1%- &] -[s0;%- [C1 o We don`'t promise that this software works. However, -we will be]&] -[s0;%- [C1 interested in any kind of bug reports. (``as is`' -distribution)]&] -[s0;C1%- &] -[s0;%- [C1 o You can use this software for whatever you want, -in parts or]&] -[s0;%- [C1 full form, without having to pay us. (``royalty`-free`' -usage)]&] -[s0;C1%- &] -[s0;%- [C1 o You may not pretend that you wrote this software. - If you use]&] -[s0;%- [C1 it, or only parts of it, in a program, you must -acknowledge]&] -[s0;%- [C1 somewhere in your documentation that you have - used the]&] -[s0;%- [C1 FreeType code. (``credits`')]&] -[s0;C1%- &] -[s0;%- [C1 We specifically permit and encourage the inclusion - of this]&] -[s0;%- [C1 software, with or without modifications, in commercial -products.]&] -[s0;%- [C1 We disclaim all warranties covering The FreeType -Project and]&] -[s0;%- [C1 assume no liability related to The FreeType Project.]&] -[s0;C1%- &] -[s0;C1%- &] -[s0;%- [C1 Finally, many people asked us for a preferred -form for a]&] -[s0;%- [C1 credit/disclaimer to use in compliance with this license. - We thus]&] -[s0;%- [C1 encourage you to use the following text:]&] -[s0;C1%- &] -[s0;%- [C1 `"`"`"]&] -[s0;%- [C1 Portions of this software are copyright � The -FreeType]&] -[s0;%- [C1 Project (www.freetype.org). All rights reserved.]&] -[s0;%- [C1 `"`"`"]&] -[s0;C1%- &] -[s0;%- [C1 Please replace with the value from the FreeType -version you]&] -[s0;%- [C1 actually use.]&] -[s0;C1%- &] -[s0;C1%- &] -[s0;%- [C1 Legal Terms]&] -[s0;%- [C1 `=`=`=`=`=`=`=`=`=`=`=]&] -[s0;C1%- &] -[s0;%- [C1 0. Definitions]&] -[s0;%- [C1 `-`-`-`-`-`-`-`-`-`-`-`-`-`-]&] -[s0;C1%- &] -[s0;%- [C1 Throughout this license, the terms ``package`', ``FreeType -Project`',]&] -[s0;%- [C1 and ``FreeType archive`' refer to the set of files - originally]&] -[s0;%- [C1 distributed by the authors (David Turner, Robert Wilhelm, - and]&] -[s0;%- [C1 Werner Lemberg) as the ``FreeType Project`', be they named -as alpha,]&] -[s0;%- [C1 beta or final release.]&] -[s0;C1%- &] -[s0;%- [C1 ``You`' refers to the licensee, or person using the -project, where]&] -[s0;%- [C1 ``using`' is a generic term including compiling the project`'s -source]&] -[s0;%- [C1 code as well as linking it to form a ``program`' or -``executable`'.]&] -[s0;%- [C1 This program is referred to as ``a program using -the FreeType]&] -[s0;%- [C1 engine`'.]&] -[s0;C1%- &] -[s0;%- [C1 This license applies to all files distributed in -the original]&] -[s0;%- [C1 FreeType Project, including all source code, binaries - and]&] -[s0;%- [C1 documentation, unless otherwise stated in the file - in its]&] -[s0;%- [C1 original, unmodified form as distributed in the original -archive.]&] -[s0;%- [C1 If you are unsure whether or not a particular file is -covered by]&] -[s0;%- [C1 this license, you must contact us to verify this.]&] -[s0;C1%- &] -[s0;%- [C1 The FreeType Project is copyright (C) 1996`-2000 by -David Turner,]&] -[s0;%- [C1 Robert Wilhelm, and Werner Lemberg. All rights reserved -except as]&] -[s0;%- [C1 specified below.]&] -[s0;C1%- &] -[s0;%- [C1 1. No Warranty]&] -[s0;%- [C1 `-`-`-`-`-`-`-`-`-`-`-`-`-`-]&] -[s0;C1%- &] -[s0;%- [C1 THE FREETYPE PROJECT IS PROVIDED ``AS IS`' WITHOUT WARRANTY -OF ANY]&] -[s0;%- [C1 KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT - LIMITED TO,]&] -[s0;%- [C1 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A - PARTICULAR]&] -[s0;%- [C1 PURPOSE. IN NO EVENT WILL ANY OF THE AUTHORS OR COPYRIGHT -HOLDERS]&] -[s0;%- [C1 BE LIABLE FOR ANY DAMAGES CAUSED BY THE USE OR THE -INABILITY TO]&] -[s0;%- [C1 USE, OF THE FREETYPE PROJECT.]&] -[s0;C1%- &] -[s0;%- [C1 2. Redistribution]&] -[s0;%- [C1 `-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-]&] -[s0;C1%- &] -[s0;%- [C1 This license grants a worldwide, royalty`-free, perpetual - and]&] -[s0;%- [C1 irrevocable right and license to use, execute, perform, -compile,]&] -[s0;%- [C1 display, copy, create derivative works of, distribute - and]&] -[s0;%- [C1 sublicense the FreeType Project (in both source and - object code]&] -[s0;%- [C1 forms) and derivative works thereof for any purpose; -and to]&] -[s0;%- [C1 authorize others to exercise some or all of the rights -granted]&] -[s0;%- [C1 herein, subject to the following conditions:]&] -[s0;C1%- &] -[s0;%- [C1 o Redistribution of source code must retain this -license file]&] -[s0;%- [C1 (``FTL.TXT`') unaltered; any additions, deletions -or changes to]&] -[s0;%- [C1 the original files must be clearly indicated in -accompanying]&] -[s0;%- [C1 documentation. The copyright notices of the - unaltered,]&] -[s0;%- [C1 original files must be preserved in all copies -of source]&] -[s0;%- [C1 files.]&] -[s0;C1%- &] -[s0;%- [C1 o Redistribution in binary form must provide a disclaimer - that]&] -[s0;%- [C1 states that the software is based in part of the -work of the]&] -[s0;%- [C1 FreeType Team, in the distribution documentation. - We also]&] -[s0;%- [C1 encourage you to put an URL to the FreeType web page - in your]&] -[s0;%- [C1 documentation, though this isn`'t mandatory.]&] -[s0;C1%- &] -[s0;%- [C1 These conditions apply to any software derived from -or based on]&] -[s0;%- [C1 the FreeType Project, not just the unmodified files. - If you use]&] -[s0;%- [C1 our work, you must acknowledge us. However, no fee -need be paid]&] -[s0;%- [C1 to us.]&] -[s0;C1%- &] -[s0;%- [C1 3. Advertising]&] -[s0;%- [C1 `-`-`-`-`-`-`-`-`-`-`-`-`-`-]&] -[s0;C1%- &] -[s0;%- [C1 Neither the FreeType authors and contributors nor you - shall use]&] -[s0;%- [C1 the name of the other for commercial, advertising, or -promotional]&] -[s0;%- [C1 purposes without specific prior written permission.]&] -[s0;C1%- &] -[s0;%- [C1 We suggest, but do not require, that you use one or - more of the]&] -[s0;%- [C1 following phrases to refer to this software in your documentation]&] -[s0;%- [C1 or advertising materials: ``FreeType Project`', ``FreeType -Engine`',]&] -[s0;%- [C1 ``FreeType library`', or ``FreeType Distribution`'.]&] -[s0;C1%- &] -[s0;%- [C1 As you have not signed this license, you are not - required to]&] -[s0;%- [C1 accept it. However, as the FreeType Project is - copyrighted]&] -[s0;%- [C1 material, only this license, or another one contracted - with the]&] -[s0;%- [C1 authors, grants you the right to use, distribute, and -modify it.]&] -[s0;%- [C1 Therefore, by using, distributing, or modifying the - FreeType]&] -[s0;%- [C1 Project, you indicate that you understand and accept all -the terms]&] -[s0;%- [C1 of this license.]&] -[s0;C1%- &] -[s0;%- [C1 4. Contacts]&] -[s0;%- [C1 `-`-`-`-`-`-`-`-`-`-`-]&] -[s0;C1%- &] -[s0;%- [C1 There are two mailing lists related to FreeType:]&] -[s0;C1%- &] -[s0;%- [C1 o freetype`@nongnu.org]&] -[s0;C1%- &] -[s0;%- [C1 Discusses general use and applications of FreeType, -as well as]&] -[s0;%- [C1 future and wanted additions to the library and distribution.]&] -[s0;%- [C1 If you are looking for support, start in this -list if you]&] -[s0;%- [C1 haven`'t found anything to help you in the documentation.]&] -[s0;C1%- &] -[s0;%- [C1 o freetype`-devel`@nongnu.org]&] -[s0;C1%- &] -[s0;%- [C1 Discusses bugs, as well as engine internals, design -issues,]&] -[s0;%- [C1 specific licenses, porting, etc.]&] -[s0;C1%- &] -[s0;%- [C1 Our home page can be found at]&] -[s0;C1%- &] -[s0;%- [C1 http://www.freetype.org]&] -[s0;C1%- &] -[s0;C1%- &] -[s0;%- [C1 `-`-`- end of FTL.TXT `-`-`-]&] -[s0;C1%- ]}}&] -[s0;%- &] -[s0;%- Package [* plugin/glew] has following licence notice:&] -[ {{10000@(255.255.192) [s0;%- [C1 The OpenGL Extension Wrangler Library]&] -[s0;%- [C1 Copyright (C) 2002`-2008, Milan Ikits ]&] -[s0;%- [C1 Copyright (C) 2002`-2008, Marcelo E. Magallon ]&] -[s0;%- [C1 Copyright (C) 2002, Lev Povalahev]&] -[s0;%- [C1 All rights reserved.]&] -[s0;C1%- &] -[s0;%- [C1 Redistribution and use in source and binary forms, with -or without ]&] -[s0;%- [C1 modification, are permitted provided that the following -conditions are met:]&] -[s0;C1%- &] -[s0;%- [C1 `* Redistributions of source code must retain the above -copyright notice, ]&] -[s0;%- [C1 this list of conditions and the following disclaimer.]&] -[s0;%- [C1 `* Redistributions in binary form must reproduce the above -copyright notice, ]&] -[s0;%- [C1 this list of conditions and the following disclaimer in -the documentation ]&] -[s0;%- [C1 and/or other materials provided with the distribution.]&] -[s0;%- [C1 `* The name of the author may be used to endorse or promote -products ]&] -[s0;%- [C1 derived from this software without specific prior written -permission.]&] -[s0;C1%- &] -[s0;%- [C1 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -`"AS IS`" ]&] -[s0;%- [C1 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE ]&] -[s0;%- [C1 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -PARTICULAR PURPOSE]&] -[s0;%- [C1 ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR -CONTRIBUTORS BE ]&] -[s0;%- [C1 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, -OR ]&] -[s0;%- [C1 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT -OF ]&] -[s0;%- [C1 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; -OR BUSINESS]&] -[s0;%- [C1 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN]&] -[s0;%- [C1 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE -OR OTHERWISE)]&] -[s0;%- [C1 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -IF ADVISED OF]&] -[s0;%- [C1 THE POSSIBILITY OF SUCH DAMAGE.]&] -[s0;C1%- &] -[s0;C1%- &] -[s0;%- [C1 Mesa 3`-D graphics library]&] -[s0;%- [C1 Version: 7.0]&] -[s0;C1%- &] -[s0;%- [C1 Copyright (C) 1999`-2007 Brian Paul All Rights Reserved.]&] -[s0;C1%- &] -[s0;%- [C1 Permission is hereby granted, free of charge, to any person -obtaining a]&] -[s0;%- [C1 copy of this software and associated documentation files -(the `"Software`"),]&] -[s0;%- [C1 to deal in the Software without restriction, including without -limitation]&] -[s0;%- [C1 the rights to use, copy, modify, merge, publish, distribute, -sublicense,]&] -[s0;%- [C1 and/or sell copies of the Software, and to permit persons -to whom the]&] -[s0;%- [C1 Software is furnished to do so, subject to the following -conditions:]&] -[s0;C1%- &] -[s0;%- [C1 The above copyright notice and this permission notice shall -be included]&] -[s0;%- [C1 in all copies or substantial portions of the Software.]&] -[s0;C1%- &] -[s0;%- [C1 THE SOFTWARE IS PROVIDED `"AS IS`", WITHOUT WARRANTY OF -ANY KIND, EXPRESS]&] -[s0;%- [C1 OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -OF MERCHANTABILITY,]&] -[s0;%- [C1 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL]&] -[s0;%- [C1 BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -WHETHER IN]&] -[s0;%- [C1 AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN]&] -[s0;%- [C1 CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -IN THE SOFTWARE.]&] -[s0;C1%- &] -[s0;C1%- &] -[s0;%- [C1 Copyright (c) 2007 The Khronos Group Inc.]&] -[s0;C1%- &] -[s0;%- [C1 Permission is hereby granted, free of charge, to any person -obtaining a]&] -[s0;%- [C1 copy of this software and/or associated documentation files -(the]&] -[s0;%- [C1 `"Materials`"), to deal in the Materials without restriction, -including]&] -[s0;%- [C1 without limitation the rights to use, copy, modify, merge, -publish,]&] -[s0;%- [C1 distribute, sublicense, and/or sell copies of the Materials, -and to]&] -[s0;%- [C1 permit persons to whom the Materials are furnished to do -so, subject to]&] -[s0;%- [C1 the following conditions:]&] -[s0;C1%- &] -[s0;%- [C1 The above copyright notice and this permission notice shall -be included]&] -[s0;%- [C1 in all copies or substantial portions of the Materials.]&] -[s0;C1%- &] -[s0;%- [C1 THE MATERIALS ARE PROVIDED `"AS IS`", WITHOUT WARRANTY OF -ANY KIND,]&] -[s0;%- [C1 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -OF]&] -[s0;%- [C1 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.]&] -[s0;%- [C1 IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE -FOR ANY]&] -[s0;%- [C1 CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT,]&] -[s0;%- [C1 TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE]&] -[s0;%- [C1 MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.]&] -[s0;C1%- ]}}&] -[s0;%- &] -[s0;%- Package [* plugin/jpg] has following licence notice:&] -[ {{10000@(255.255.192) [s0;%- [C1 The authors make NO WARRANTY or representation, either express -or implied,]&] -[s0;%- [C1 with respect to this software, its quality, accuracy, merchantability, -or]&] -[s0;%- [C1 fitness for a particular purpose. This software is provided -`"AS IS`", and you,]&] -[s0;%- [C1 its user, assume the entire risk as to its quality and accuracy.]&] -[s0;C1%- &] -[s0;%- [C1 This software is copyright (C) 1991`-1998, Thomas G. Lane.]&] -[s0;%- [C1 All Rights Reserved except as specified below.]&] -[s0;C1%- &] -[s0;%- [C1 Permission is hereby granted to use, copy, modify, and distribute -this]&] -[s0;%- [C1 software (or portions thereof) for any purpose, without -fee, subject to these]&] -[s0;%- [C1 conditions:]&] -[s0;%- [C1 (1) If any part of the source code for this software is -distributed, then this]&] -[s0;%- [C1 README file must be included, with this copyright and no`-warranty -notice]&] -[s0;%- [C1 unaltered; and any additions, deletions, or changes to the -original files]&] -[s0;%- [C1 must be clearly indicated in accompanying documentation.]&] -[s0;%- [C1 (2) If only executable code is distributed, then the accompanying]&] -[s0;%- [C1 documentation must state that `"this software is based in -part on the work of]&] -[s0;%- [C1 the Independent JPEG Group`".]&] -[s0;%- [C1 (3) Permission for use of this software is granted only -if the user accepts]&] -[s0;%- [C1 full responsibility for any undesirable consequences; the -authors accept]&] -[s0;%- [C1 NO LIABILITY for damages of any kind.]&] -[s0;C1%- &] -[s0;%- [C1 These conditions apply to any software derived from or based -on the IJG code,]&] -[s0;%- [C1 not just to the unmodified library. If you use our work, -you ought to]&] -[s0;%- [C1 acknowledge us.]&] -[s0;C1%- &] -[s0;%- [C1 Permission is NOT granted for the use of any IJG author`'s -name or company name]&] -[s0;%- [C1 in advertising or publicity relating to this software or -products derived from]&] -[s0;%- [C1 it. This software may be referred to only as `"the Independent -JPEG Group`'s]&] -[s0;%- [C1 software`".]&] -[s0;C1%- &] -[s0;%- [C1 We specifically permit and encourage the use of this software -as the basis of]&] -[s0;%- [C1 commercial products, provided that all warranty or liability -claims are]&] -[s0;%- [C1 assumed by the product vendor.]&] -[s0;C1%- ]}}&] -[s0;%- &] -[s0;%- Package [* plugin/lz4] has following licence notice:&] -[ {{10000@(255.255.192) [s0;%- [C1 LZ4 Library]&] -[s0;%- [C1 Copyright (c) 2011`-2014, Yann Collet]&] -[s0;%- [C1 All rights reserved.]&] -[s0;C1%- &] -[s0;%- [C1 Redistribution and use in source and binary forms, with -or without modification,]&] -[s0;%- [C1 are permitted provided that the following conditions are -met:]&] -[s0;C1%- &] -[s0;%- [C1 `* Redistributions of source code must retain the above -copyright notice, this]&] -[s0;%- [C1 list of conditions and the following disclaimer.]&] -[s0;C1%- &] -[s0;%- [C1 `* Redistributions in binary form must reproduce the above -copyright notice, this]&] -[s0;%- [C1 list of conditions and the following disclaimer in the -documentation and/or]&] -[s0;%- [C1 other materials provided with the distribution.]&] -[s0;C1%- &] -[s0;%- [C1 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -`"AS IS`" AND]&] -[s0;%- [C1 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED -TO, THE IMPLIED]&] -[s0;%- [C1 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE]&] -[s0;%- [C1 DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS -BE LIABLE FOR]&] -[s0;%- [C1 ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES]&] -[s0;%- [C1 (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -GOODS OR SERVICES;]&] -[s0;%- [C1 LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON]&] -[s0;%- [C1 ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT]&] -[s0;%- [C1 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -OF THE USE OF THIS]&] -[s0;%- [C1 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.]]}}&] -[s0;%- &] -[s0;%- Package [* plugin/lzma] has following licence notice:&] -[ {{10000@(255.255.192) [s0;%- [C1 Igor Pavlov : Public domain]]}}&] -[s0;%- &] -[s0;%- Package [* plugin/ndisasm] has following licence notice:&] -[ {{10000@(255.255.192) [s0;%- [C1 NASM is now licensed under the 2`-clause BSD license, also -known as the]&] -[s0;%- [C1 simplified BSD license.]&] -[s0;C1%- &] -[s0;%- [C1 Copyright 1996`-2009 the NASM Authors `- All rights -reserved.]&] -[s0;C1%- &] -[s0;%- [C1 Redistribution and use in source and binary forms, with -or without]&] -[s0;%- [C1 modification, are permitted provided that the following]&] -[s0;%- [C1 conditions are met:]&] -[s0;C1%- &] -[s0;%- [C1 `* Redistributions of source code must retain the above -copyright]&] -[s0;%- [C1 notice, this list of conditions and the following -disclaimer.]&] -[s0;%- [C1 `* Redistributions in binary form must reproduce the -above]&] -[s0;%- [C1 copyright notice, this list of conditions and the -following]&] -[s0;%- [C1 disclaimer in the documentation and/or other materials -provided]&] -[s0;%- [C1 with the distribution.]&] -[s0;%- [C1 ]&] -[s0;%- [C1 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS -AND]&] -[s0;%- [C1 CONTRIBUTORS `"AS IS`" AND ANY EXPRESS OR IMPLIED -WARRANTIES,]&] -[s0;%- [C1 INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES -OF]&] -[s0;%- [C1 MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE]&] -[s0;%- [C1 DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER -OR]&] -[s0;%- [C1 CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,]&] -[s0;%- [C1 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT]&] -[s0;%- [C1 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES;]&] -[s0;%- [C1 LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)]&] -[s0;%- [C1 HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -IN]&] -[s0;%- [C1 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE -OR]&] -[s0;%- [C1 OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE,]&] -[s0;%- [C1 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.]&] -[s0;C1%- ]}}&] -[s0;%- &] -[s0;%- Package [* plugin/pcre] has following licence notice:&] -[ {{10000@(255.255.192) [s0;%- [C1 Copyright (c) 1998, 2014, The U`+`+ Project]&] -[s0;%- [C1 All rights reserved.]&] -[s0;C1%- &] -[s0;%- [C1 Redistribution and use in source and binary forms, with -or without modification, are permitted]&] -[s0;%- [C1 provided that the following conditions are met:]&] -[s0;C1%- &] -[s0;%- [C1 1. Redistributions of source code must retain the above -copyright notice, this list of]&] -[s0;%- [C1 conditions and the following disclaimer.]&] -[s0;C1%- &] -[s0;%- [C1 2. Redistributions in binary form must reproduce the above -copyright notice, this list of]&] -[s0;%- [C1 conditions and the following disclaimer in the documentation -and/or other materials provided]&] -[s0;%- [C1 with the distribution.]&] -[s0;C1%- &] -[s0;%- [C1 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -`"AS IS`" AND ANY EXPRESS OR]&] -[s0;%- [C1 IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY]&] -[s0;%- [C1 AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN -NO EVENT SHALL THE COPYRIGHT HOLDER OR]&] -[s0;%- [C1 CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR]&] -[s0;%- [C1 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT -OF SUBSTITUTE GOODS OR ]&] -[s0;%- [C1 SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY]&] -[s0;%- [C1 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR]&] -[s0;%- [C1 OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, -EVEN IF ADVISED OF THE]&] -[s0;%- [C1 POSSIBILITY OF SUCH DAMAGE.]&] -[s0;C1%- &] -[s0;%- [C1 `*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`* -`*`*`*`*`*`*`*`*`*`*`*]&] -[s0;%- [C1 `* Perl`-Compatible Regular Expressions `*]&] -[s0;%- [C1 `*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`* -`*`*`*`*`*`*`*`*`*`*`*]&] -[s0;C1%- &] -[s0;%- [C1 PCRE is a library of functions to support regular expressions -whose syntax]&] -[s0;%- [C1 and semantics are as close as possible to those of the Perl -5 language.]&] -[s0;C1%- &] -[s0;%- [C1 Written by Philip Hazel]&] -[s0;%- [C1 Copyright (c) 1997`-2008 University of Cambridge]&] -[s0;C1%- &] -[s0;%- [C1 `-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`- -`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-]&] -[s0;%- [C1 Redistribution and use in source and binary forms, with -or without]&] -[s0;%- [C1 modification, are permitted provided that the following -conditions are met:]&] -[s0;C1%- &] -[s0;%- [C1 `* Redistributions of source code must retain the above -copyright notice,]&] -[s0;%- [C1 this list of conditions and the following disclaimer.]&] -[s0;C1%- &] -[s0;%- [C1 `* Redistributions in binary form must reproduce the -above copyright]&] -[s0;%- [C1 notice, this list of conditions and the following -disclaimer in the]&] -[s0;%- [C1 documentation and/or other materials provided with -the distribution.]&] -[s0;C1%- &] -[s0;%- [C1 `* Neither the name of the University of Cambridge nor -the names of its]&] -[s0;%- [C1 contributors may be used to endorse or promote products -derived from]&] -[s0;%- [C1 this software without specific prior written permission.]&] -[s0;C1%- &] -[s0;%- [C1 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -`"AS IS`"]&] -[s0;%- [C1 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE]&] -[s0;%- [C1 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -PARTICULAR PURPOSE]&] -[s0;%- [C1 ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR -CONTRIBUTORS BE]&] -[s0;%- [C1 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, -OR]&] -[s0;%- [C1 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT -OF]&] -[s0;%- [C1 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; -OR BUSINESS]&] -[s0;%- [C1 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN]&] -[s0;%- [C1 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE -OR OTHERWISE)]&] -[s0;%- [C1 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -IF ADVISED OF THE]&] -[s0;%- [C1 POSSIBILITY OF SUCH DAMAGE.]&] -[s0;%- [C1 `-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`- -`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-]&] -[s0;C1%- ]}}&] -[s0;%- &] -[s0;%- Package [* plugin/png] has following licence notice:&] -[ {{10000@(255.255.192) [s0;%- [C1 If you modify libpng you may insert additional notices immediately -following]&] -[s0;%- [C1 this sentence.]&] -[s0;C1%- &] -[s0;%- [C1 libpng versions 1.2.6, August 15, 2004, through 1.2.22, -October 13, 2007, are]&] -[s0;%- [C1 Copyright (c) 2004, 2006`-2007 Glenn Randers`-Pehrson, and -are]&] -[s0;%- [C1 distributed according to the same disclaimer and license -as libpng`-1.2.5]&] -[s0;%- [C1 with the following individual added to the list of Contributing -Authors:]&] -[s0;C1%- &] -[s0;%- [C1 Cosmin Truta]&] -[s0;C1%- &] -[s0;%- [C1 libpng versions 1.0.7, July 1, 2000, through 1.2.5, October -3, 2002, are]&] -[s0;%- [C1 Copyright (c) 2000`-2002 Glenn Randers`-Pehrson, and are]&] -[s0;%- [C1 distributed according to the same disclaimer and license -as libpng`-1.0.6]&] -[s0;%- [C1 with the following individuals added to the list of Contributing -Authors:]&] -[s0;C1%- &] -[s0;%- [C1 Simon`-Pierre Cadieux]&] -[s0;%- [C1 Eric S. Raymond]&] -[s0;%- [C1 Gilles Vollant]&] -[s0;C1%- &] -[s0;%- [C1 and with the following additions to the disclaimer:]&] -[s0;C1%- &] -[s0;%- [C1 There is no warranty against interference with your enjoyment -of the]&] -[s0;%- [C1 library or against infringement. There is no warranty -that our]&] -[s0;%- [C1 efforts or the library will fulfill any of your particular -purposes]&] -[s0;%- [C1 or needs. This library is provided with all faults, -and the entire]&] -[s0;%- [C1 risk of satisfactory quality, performance, accuracy, -and effort is with]&] -[s0;%- [C1 the user.]&] -[s0;C1%- &] -[s0;%- [C1 libpng versions 0.97, January 1998, through 1.0.6, March -20, 2000, are]&] -[s0;%- [C1 Copyright (c) 1998, 1999, 2000 Glenn Randers`-Pehrson, and -are]&] -[s0;%- [C1 distributed according to the same disclaimer and license -as libpng`-0.96,]&] -[s0;%- [C1 with the following individuals added to the list of Contributing -Authors:]&] -[s0;C1%- &] -[s0;%- [C1 Tom Lane]&] -[s0;%- [C1 Glenn Randers`-Pehrson]&] -[s0;%- [C1 Willem van Schaik]&] -[s0;C1%- &] -[s0;%- [C1 libpng versions 0.89, June 1996, through 0.96, May 1997, -are]&] -[s0;%- [C1 Copyright (c) 1996, 1997 Andreas Dilger]&] -[s0;%- [C1 Distributed according to the same disclaimer and license -as libpng`-0.88,]&] -[s0;%- [C1 with the following individuals added to the list of Contributing -Authors:]&] -[s0;C1%- &] -[s0;%- [C1 John Bowler]&] -[s0;%- [C1 Kevin Bracey]&] -[s0;%- [C1 Sam Bushell]&] -[s0;%- [C1 Magnus Holmgren]&] -[s0;%- [C1 Greg Roelofs]&] -[s0;%- [C1 Tom Tanner]&] -[s0;C1%- &] -[s0;%- [C1 libpng versions 0.5, May 1995, through 0.88, January 1996, -are]&] -[s0;%- [C1 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.]&] -[s0;C1%- &] -[s0;%- [C1 For the purposes of this copyright and license, `"Contributing -Authors`"]&] -[s0;%- [C1 is defined as the following set of individuals:]&] -[s0;C1%- &] -[s0;%- [C1 Andreas Dilger]&] -[s0;%- [C1 Dave Martindale]&] -[s0;%- [C1 Guy Eric Schalnat]&] -[s0;%- [C1 Paul Schmidt]&] -[s0;%- [C1 Tim Wegner]&] -[s0;C1%- &] -[s0;%- [C1 The PNG Reference Library is supplied `"AS IS`". The Contributing -Authors]&] -[s0;%- [C1 and Group 42, Inc. disclaim all warranties, expressed or -implied,]&] -[s0;%- [C1 including, without limitation, the warranties of merchantability -and of]&] -[s0;%- [C1 fitness for any purpose. The Contributing Authors and Group -42, Inc.]&] -[s0;%- [C1 assume no liability for direct, indirect, incidental, special, -exemplary,]&] -[s0;%- [C1 or consequential damages, which may result from the use -of the PNG]&] -[s0;%- [C1 Reference Library, even if advised of the possibility of -such damage.]&] -[s0;C1%- &] -[s0;%- [C1 Permission is hereby granted to use, copy, modify, and distribute -this]&] -[s0;%- [C1 source code, or portions hereof, for any purpose, without -fee, subject]&] -[s0;%- [C1 to the following restrictions:]&] -[s0;C1%- &] -[s0;%- [C1 1. The origin of this source code must not be misrepresented.]&] -[s0;C1%- &] -[s0;%- [C1 2. Altered versions must be plainly marked as such and]&] -[s0;%- [C1 must not be misrepresented as being the original source.]&] -[s0;C1%- &] -[s0;%- [C1 3. This Copyright notice may not be removed or altered from]&] -[s0;%- [C1 any source or altered source distribution.]&] -[s0;C1%- &] -[s0;%- [C1 The Contributing Authors and Group 42, Inc. specifically -permit, without]&] -[s0;%- [C1 fee, and encourage the use of this source code as a component -to]&] -[s0;%- [C1 supporting the PNG file format in commercial products. -If you use this]&] -[s0;%- [C1 source code in a product, acknowledgment is not required -but would be]&] -[s0;%- [C1 appreciated.]&] -[s0;C1%- ]}}&] -[s0;%- &] -[s0;%- Package [* plugin/sqlite3] has following licence notice:&] -[ {{10000@(255.255.192) [s0;%- [C1 The author disclaims copyright to this source code. In -place of]&] -[s0;%- [C1 a legal notice, here is a blessing:]&] -[s0;C1%- &] -[s0;%- [C1 May you do good and not evil.]&] -[s0;%- [C1 May you find forgiveness for yourself and forgive others.]&] -[s0;%- [C1 May you share freely, never taking more than you give.]&] -[s0;C1%- &] -[s0;C1%- ]}}&] -[s0;%- &] -[s0;%- Package [* plugin/tif] has following licence notice:&] -[ {{10000@(255.255.192) [s0;%- [C1 Copyright (c) 1995`-1997 Sam Leffler]&] -[s0;%- [C1 Copyright (c) 1995`-1997 Silicon Graphics, Inc.]&] -[s0;C1%- &] -[s0;%- [C1 Permission to use, copy, modify, distribute, and sell this -software and ]&] -[s0;%- [C1 its documentation for any purpose is hereby granted without -fee, provided]&] -[s0;%- [C1 that (i) the above copyright notices and this permission -notice appear in]&] -[s0;%- [C1 all copies of the software and related documentation, and -(ii) the names of]&] -[s0;%- [C1 Sam Leffler and Silicon Graphics may not be used in any -advertising or]&] -[s0;%- [C1 publicity relating to the software without the specific, -prior written]&] -[s0;%- [C1 permission of Sam Leffler and Silicon Graphics.]&] -[s0;C1%- &] -[s0;%- [C1 THE SOFTWARE IS PROVIDED `"AS`-IS`" AND WITHOUT WARRANTY -OF ANY KIND, ]&] -[s0;%- [C1 EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, -ANY ]&] -[s0;%- [C1 WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR -PURPOSE. ]&] -[s0;C1%- &] -[s0;%- [C1 IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE -FOR]&] -[s0;%- [C1 ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES -OF ANY KIND,]&] -[s0;%- [C1 OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA -OR PROFITS,]&] -[s0;%- [C1 WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND -ON ANY THEORY OF ]&] -[s0;%- [C1 LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE -OR PERFORMANCE ]&] -[s0;%- [C1 OF THIS SOFTWARE.]&] -[s0;C1%- ]}}&] -[s0;%- &] -[s0;%- Package [* plugin/z] has following licence notice:&] -[ {{10000@(255.255.192) [s0;%- [C1 version 1.2.8, April 28th, 2013]&] -[s0;C1%- &] -[s0;%- [C1 Copyright (C) 1995`-2013 Jean`-loup Gailly and Mark Adler]&] -[s0;C1%- &] -[s0;%- [C1 This software is provided `'as`-is`', without any express -or implied]&] -[s0;%- [C1 warranty. In no event will the authors be held liable for -any damages]&] -[s0;%- [C1 arising from the use of this software.]&] -[s0;C1%- &] -[s0;%- [C1 Permission is granted to anyone to use this software for -any purpose,]&] -[s0;%- [C1 including commercial applications, and to alter it and redistribute -it]&] -[s0;%- [C1 freely, subject to the following restrictions:]&] -[s0;C1%- &] -[s0;%- [C1 1. The origin of this software must not be misrepresented; -you must not]&] -[s0;%- [C1 claim that you wrote the original software. If you use -this software]&] -[s0;%- [C1 in a product, an acknowledgment in the product documentation -would be]&] -[s0;%- [C1 appreciated but is not required.]&] -[s0;%- [C1 2. Altered source versions must be plainly marked as such, -and must not be]&] -[s0;%- [C1 misrepresented as being the original software.]&] -[s0;%- [C1 3. This notice may not be removed or altered from any source -distribution.]&] -[s0;C1%- &] -[s0;%- [C1 Jean`-loup Gailly Mark Adler]&] -[s0;%- [C1 jloup`@gzip.org madler`@alumni.caltech.edu]&] -[s0;C1%- &] -[s0;C1%- &] -[s0;%- [C1 The data format used by the zlib library is described by -RFCs (Request for]&] -[s0;%- [C1 Comments) 1950 to 1952 in the files http://tools.ietf.org/html/rfc1950]&] -[s0;%- [C1 (zlib format), rfc1951 (deflate format) and rfc1952 (gzip -format).]&] -[s0;C1%- ]}}&] -[s0;%- &] -[s0;%- &] -[s0;H8;0%- &] -[s0;%- [/ Windows releases might contain MINGW64 binaries with following -licenses:]&] -[s0;C0%- &] -[s0;%- [C1 MINGW`-W64]&] -[ {{10000@(255.255.192) [s0;%- [C1 MinGW`-w64 licensing]&] -[s0;%- [C1 `*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*]&] -[s0;C1%- &] -[s0;%- [C1 The copyright and license notices have been divided in two -files:]&] -[s0;%- [C1 The notices in COPYING.MinGW`-w64.txt (this file) apply -only to]&] -[s0;%- [C1 MinGW`-w64 itself. These don`'t apply to the binaries built -with]&] -[s0;%- [C1 MinGW`-w64 unless you specifically tell MinGW`-w64 to link -against]&] -[s0;%- [C1 these parts, for example, by enabling profiling code.]&] -[s0;C1%- &] -[s0;%- [C1 In addition to the notices in this file, also the notices -in]&] -[s0;%- [C1 COPYING.MinGW`-w64`-runtime.txt apply to MinGW`-w64. Some -(possibly]&] -[s0;%- [C1 all) notices in that file may apply also to the binaries -built with]&] -[s0;%- [C1 this version of MinGW`-w64. The idea is that if you create -binary]&] -[s0;%- [C1 packages of your software with MinGW`-w64, you can simply -copy]&] -[s0;%- [C1 COPYING.MinGW`-w64`-runtime.txt into your package to fulfill -the]&] -[s0;%- [C1 license requirements of the MinGW runtime.]&] -[s0;C1%- &] -[s0;%- [C1 If you think that not all notices apply to your package -and want to]&] -[s0;%- [C1 remove some of them, note that, for example, the gdtoa files -always]&] -[s0;%- [C1 get linked in if you use any printf`-like function. So usually -it is]&] -[s0;%- [C1 easiest and safest to just keep all the notices.]&] -[s0;C1%- &] -[s0;C1%- &] -[s0;%- [C1 `=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=]&] -[s0;%- [C1 GCC and GNU binutils]&] -[s0;%- [C1 `=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=]&] -[s0;C1%- &] -[s0;%- [C1 Copyright (C) Free Software Foundation]&] -[s0;%- [C1 License: GNU GPLv3`+ (see the file COPYING.GPLv3)]&] -[s0;C1%- &] -[s0;C1%- &] -[s0;%- [C1 `=`=`=`=`=`=`=`=`=`=`=`=`=`=]&] -[s0;%- [C1 Profiling code]&] -[s0;%- [C1 `=`=`=`=`=`=`=`=`=`=`=`=`=`=]&] -[s0;C1%- &] -[s0;%- [C1 Copyright 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.]&] -[s0;%- [C1 License: GNU GPLv2`+ (see the file COPYING.GPLv2)]&] -[s0;C1%- &] -[s0;%- [C1 `* `* `* `* `* `* - `*]&] -[s0;C1%- &] -[s0;%- [C1 Copyright (c) 1982, 1983, 1986, 1992, 1993]&] -[s0;%- [C1 The Regents of the University of California. All rights -reserved.]&] -[s0;C1%- &] -[s0;%- [C1 Redistribution and use in source and binary forms, with -or without]&] -[s0;%- [C1 modification, are permitted provided that the following -conditions]&] -[s0;%- [C1 are met:]&] -[s0;%- [C1 1. Redistributions of source code must retain the above -copyright]&] -[s0;%- [C1 notice, this list of conditions and the following disclaimer.]&] -[s0;%- [C1 2. Redistributions in binary form must reproduce the above -copyright]&] -[s0;%- [C1 notice, this list of conditions and the following disclaimer -in the]&] -[s0;%- [C1 documentation and/or other materials provided with the -distribution.]&] -[s0;%- [C1 4. Neither the name of the University nor the names of its -contributors]&] -[s0;%- [C1 may be used to endorse or promote products derived from -this software]&] -[s0;%- [C1 without specific prior written permission.]&] -[s0;C1%- &] -[s0;%- [C1 THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS -````AS IS`'`' AND]&] -[s0;%- [C1 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED -TO, THE]&] -[s0;%- [C1 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -PARTICULAR PURPOSE]&] -[s0;%- [C1 ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS -BE LIABLE]&] -[s0;%- [C1 FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, -OR CONSEQUENTIAL]&] -[s0;%- [C1 DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -GOODS]&] -[s0;%- [C1 OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION)]&] -[s0;%- [C1 HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT]&] -[s0;%- [C1 LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING -IN ANY WAY]&] -[s0;%- [C1 OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF]&] -[s0;%- [C1 SUCH DAMAGE.]&] -[s0;C1%- &] -[s0;C1%- &] -[s0;%- [C1 `=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=]&] -[s0;%- [C1 DirectX and DDK headers]&] -[s0;%- [C1 `=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=]&] -[s0;C1%- &] -[s0;%- [C1 DirectX and DDK headers are under GNU LGPLv2.1`+ (see the -file]&] -[s0;%- [C1 COPYING.LGPLv2.1) and copyrighted by various people. Using -these]&] -[s0;%- [C1 headers doesn`'t make LGPLv2.1 apply to your code, because -these]&] -[s0;%- [C1 headers files contain only data structure definitions, short]&] -[s0;%- [C1 macros, and short inline functions. Here is the relevant -part]&] -[s0;%- [C1 from LGPLv2.1 section 5 paragraph 4:]&] -[s0;C1%- &] -[s0;%- [C1 If such an object file uses only numerical parameters, -data]&] -[s0;%- [C1 structure layouts and accessors, and small macros and -small]&] -[s0;%- [C1 inline functions (ten lines or less in length), then -the use]&] -[s0;%- [C1 of the object file is unrestricted, regardless of whether -it]&] -[s0;%- [C1 is legally a derivative work.]&] -[s0;C1%- &] -[s0;%- [C1 `=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=]&] -[s0;%- [C1 libmangle and gendef]&] -[s0;%- [C1 `=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=]&] -[s0;C1%- &] -[s0;%- [C1 Copyright (c) 2009 mingw`-w64 project]&] -[s0;C1%- &] -[s0;%- [C1 Contributing authors: Kai Tietz, Jonathan Yong]&] -[s0;C1%- &] -[s0;%- [C1 Permission is hereby granted, free of charge, to any person -obtaining a]&] -[s0;%- [C1 copy of this software and associated documentation files -(the `"Software`"),]&] -[s0;%- [C1 to deal in the Software without restriction, including without -limitation]&] -[s0;%- [C1 the rights to use, copy, modify, merge, publish, distribute, -sublicense,]&] -[s0;%- [C1 and/or sell copies of the Software, and to permit persons -to whom the]&] -[s0;%- [C1 Software is furnished to do so, subject to the following -conditions:]&] -[s0;C1%- &] -[s0;%- [C1 The above copyright notice and this permission notice shall -be included in]&] -[s0;%- [C1 all copies or substantial portions of the Software.]&] -[s0;C1%- &] -[s0;%- [C1 THE SOFTWARE IS PROVIDED `"AS IS`", WITHOUT WARRANTY OF -ANY KIND, EXPRESS OR]&] -[s0;%- [C1 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY,]&] -[s0;%- [C1 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE]&] -[s0;%- [C1 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES -OR OTHER]&] -[s0;%- [C1 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING]&] -[s0;%- [C1 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE -OR OTHER]&] -[s0;%- [C1 DEALINGS IN THE SOFTWARE.]&] -[s0;C1%- &] -[s0;C1%- &] -[s0;%- [C1 `=`=`=`=]&] -[s0;%- [C1 PSEH]&] -[s0;%- [C1 `=`=`=`=]&] -[s0;C1%- &] -[s0;%- [C1 Copyright (c) 2004`-2008 KJK`::Hyperion]&] -[s0;C1%- &] -[s0;%- [C1 Permission is hereby granted, free of charge, to any person -obtaining a]&] -[s0;%- [C1 copy of this software and associated documentation files -(the `"Software`"),]&] -[s0;%- [C1 to deal in the Software without restriction, including without -limitation]&] -[s0;%- [C1 the rights to use, copy, modify, merge, publish, distribute, -sublicense,]&] -[s0;%- [C1 and/or sell copies of the Software, and to permit persons -to whom the]&] -[s0;%- [C1 Software is furnished to do so, subject to the following -conditions:]&] -[s0;C1%- &] -[s0;%- [C1 The above copyright notice and this permission notice shall -be included in]&] -[s0;%- [C1 all copies or substantial portions of the Software.]&] -[s0;C1%- &] -[s0;%- [C1 THE SOFTWARE IS PROVIDED `"AS IS`", WITHOUT WARRANTY OF -ANY KIND, EXPRESS OR]&] -[s0;%- [C1 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY,]&] -[s0;%- [C1 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE]&] -[s0;%- [C1 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES -OR OTHER]&] -[s0;%- [C1 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING]&] -[s0;%- [C1 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE -OR OTHER]&] -[s0;%- [C1 DEALINGS IN THE SOFTWARE.]&] -[s0;C1%- ]}}&] -[s0;C1%- &] -[s0;C0%- &] -[s0;%- [C1 GCC runtime]&] -[ {{10000@(255.255.192) [s0;%- [C1 GCC RUNTIME LIBRARY EXCEPTION]&] -[s0;C1%- &] -[s0;%- [C1 Version 3.1, 31 March 2009]&] -[s0;C1%- &] -[s0;%- [C1 Copyright (C) 2009 Free Software Foundation, Inc. ]&] -[s0;C1%- &] -[s0;%- [C1 Everyone is permitted to copy and distribute verbatim copies -of this]&] -[s0;%- [C1 license document, but changing it is not allowed.]&] -[s0;C1%- &] -[s0;%- [C1 This GCC Runtime Library Exception (`"Exception`") is an -additional]&] -[s0;%- [C1 permission under section 7 of the GNU General Public License, -version]&] -[s0;%- [C1 3 (`"GPLv3`"). It applies to a given file (the `"Runtime -Library`") that]&] -[s0;%- [C1 bears a notice placed by the copyright holder of the file -stating that]&] -[s0;%- [C1 the file is governed by GPLv3 along with this Exception.]&] -[s0;C1%- &] -[s0;%- [C1 When you use GCC to compile a program, GCC may combine portions -of]&] -[s0;%- [C1 certain GCC header files and runtime libraries with the -compiled]&] -[s0;%- [C1 program. The purpose of this Exception is to allow compilation -of]&] -[s0;%- [C1 non`-GPL (including proprietary) programs to use, in this -way, the]&] -[s0;%- [C1 header files and runtime libraries covered by this Exception.]&] -[s0;C1%- &] -[s0;%- [C1 0. Definitions.]&] -[s0;C1%- &] -[s0;%- [C1 A file is an `"Independent Module`" if it either requires -the Runtime]&] -[s0;%- [C1 Library for execution after a Compilation Process, or makes -use of an]&] -[s0;%- [C1 interface provided by the Runtime Library, but is not otherwise -based]&] -[s0;%- [C1 on the Runtime Library.]&] -[s0;C1%- &] -[s0;%- [C1 `"GCC`" means a version of the GNU Compiler Collection, -with or without]&] -[s0;%- [C1 modifications, governed by version 3 (or a specified later -version) of]&] -[s0;%- [C1 the GNU General Public License (GPL) with the option of -using any]&] -[s0;%- [C1 subsequent versions published by the FSF.]&] -[s0;C1%- &] -[s0;%- [C1 `"GPL`-compatible Software`" is software whose conditions -of propagation,]&] -[s0;%- [C1 modification and use would permit combination with GCC in -accord with]&] -[s0;%- [C1 the license of GCC.]&] -[s0;C1%- &] -[s0;%- [C1 `"Target Code`" refers to output from any compiler for a -real or virtual]&] -[s0;%- [C1 target processor architecture, in executable form or suitable -for]&] -[s0;%- [C1 input to an assembler, loader, linker and/or execution]&] -[s0;%- [C1 phase. Notwithstanding that, Target Code does not include -data in any]&] -[s0;%- [C1 format that is used as a compiler intermediate representation, -or used]&] -[s0;%- [C1 for producing a compiler intermediate representation.]&] -[s0;C1%- &] -[s0;%- [C1 The `"Compilation Process`" transforms code entirely represented -in]&] -[s0;%- [C1 non`-intermediate languages designed for human`-written -code, and/or in]&] -[s0;%- [C1 Java Virtual Machine byte code, into Target Code. Thus, -for example,]&] -[s0;%- [C1 use of source code generators and preprocessors need not -be considered]&] -[s0;%- [C1 part of the Compilation Process, since the Compilation Process -can be]&] -[s0;%- [C1 understood as starting with the output of the generators -or]&] -[s0;%- [C1 preprocessors.]&] -[s0;C1%- &] -[s0;%- [C1 A Compilation Process is `"Eligible`" if it is done using -GCC, alone or]&] -[s0;%- [C1 with other GPL`-compatible software, or if it is done without -using any]&] -[s0;%- [C1 work based on GCC. For example, using non`-GPL`-compatible -Software to]&] -[s0;%- [C1 optimize any GCC intermediate representations would not -qualify as an]&] -[s0;%- [C1 Eligible Compilation Process.]&] -[s0;C1%- &] -[s0;%- [C1 1. Grant of Additional Permission.]&] -[s0;C1%- &] -[s0;%- [C1 You have permission to propagate a work of Target Code formed -by]&] -[s0;%- [C1 combining the Runtime Library with Independent Modules, -even if such]&] -[s0;%- [C1 propagation would otherwise violate the terms of GPLv3, -provided that]&] -[s0;%- [C1 all Target Code was generated by Eligible Compilation Processes. -You]&] -[s0;%- [C1 may then convey such a combination under terms of your choice,]&] -[s0;%- [C1 consistent with the licensing of the Independent Modules.]&] -[s0;C1%- &] -[s0;%- [C1 2. No Weakening of GCC Copyleft.]&] -[s0;C1%- &] -[s0;%- [C1 The availability of this Exception does not imply any general]&] -[s0;%- [C1 presumption that third`-party software is unaffected by -the copyleft]&] -[s0;%- [C1 requirements of the license of GCC.]&] -[s0;C1%- &] -[s0;C1%- ]}}&] -[s0;C1%- &] -[s0;C0%- &] -[s0;%- [C1 MINGW`-W64 runtime]&] -[ {{10000@(255.255.192) [s0;%- [C1 MinGW`-w64 runtime licensing]&] -[s0;%- [C1 `*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*]&] -[s0;C1%- &] -[s0;%- [C1 This program or library was built using MinGW`-w64 and statically]&] -[s0;%- [C1 linked against the MinGW`-w64 runtime. Some parts of the -runtime]&] -[s0;%- [C1 are under licenses which require that the copyright and -license]&] -[s0;%- [C1 notices are included when distributing the code in binary -form.]&] -[s0;%- [C1 These notices are listed below.]&] -[s0;C1%- &] -[s0;C1%- &] -[s0;%- [C1 `=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=]&] -[s0;%- [C1 Overall copyright notice]&] -[s0;%- [C1 `=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=]&] -[s0;C1%- &] -[s0;%- [C1 Copyright (c) 2009, 2010 by the mingw`-w64 project]&] -[s0;C1%- &] -[s0;%- [C1 This license has been certified as open source. It has also -been designated]&] -[s0;%- [C1 as GPL compatible by the Free Software Foundation (FSF).]&] -[s0;C1%- &] -[s0;%- [C1 Redistribution and use in source and binary forms, with -or without]&] -[s0;%- [C1 modification, are permitted provided that the following -conditions are met:]&] -[s0;C1%- &] -[s0;%- [C1 1. Redistributions in source code must retain the accompanying -copyright]&] -[s0;%- [C1 notice, this list of conditions, and the following -disclaimer.]&] -[s0;%- [C1 2. Redistributions in binary form must reproduce the -accompanying]&] -[s0;%- [C1 copyright notice, this list of conditions, and the -following disclaimer]&] -[s0;%- [C1 in the documentation and/or other materials provided -with the]&] -[s0;%- [C1 distribution.]&] -[s0;%- [C1 3. Names of the copyright holders must not be used to -endorse or promote]&] -[s0;%- [C1 products derived from this software without prior -written permission]&] -[s0;%- [C1 from the copyright holders.]&] -[s0;%- [C1 4. The right to distribute this software or to use it -for any purpose does]&] -[s0;%- [C1 not give you the right to use Servicemarks (sm) or -Trademarks (tm) of]&] -[s0;%- [C1 the copyright holders. Use of them is covered by -separate agreement]&] -[s0;%- [C1 with the copyright holders.]&] -[s0;%- [C1 5. If any files are modified, you must cause the modified -files to carry]&] -[s0;%- [C1 prominent notices stating that you changed the files -and the date of]&] -[s0;%- [C1 any change.]&] -[s0;C1%- &] -[s0;%- [C1 Disclaimer]&] -[s0;C1%- &] -[s0;%- [C1 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ````AS -IS`'`' AND ANY EXPRESSED]&] -[s0;%- [C1 OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES]&] -[s0;%- [C1 OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO]&] -[s0;%- [C1 EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY DIRECT, -INDIRECT,]&] -[s0;%- [C1 INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT]&] -[s0;%- [C1 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA,]&] -[s0;%- [C1 OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF]&] -[s0;%- [C1 LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING]&] -[s0;%- [C1 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE,]&] -[s0;%- [C1 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.]&] -[s0;C1%- &] -[s0;%- [C1 `=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`= -`=`= ]&] -[s0;%- [C1 getopt, getopt`_long, and getop`_long`_only]&] -[s0;%- [C1 `=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`= -`=`= ]&] -[s0;C1%- &] -[s0;%- [C1 Copyright (c) 2002 Todd C. Miller -]&] -[s0;%- [C1 ]&] -[s0;%- [C1 Permission to use, copy, modify, and distribute this software -for any ]&] -[s0;%- [C1 purpose with or without fee is hereby granted, provided -that the above ]&] -[s0;%- [C1 copyright notice and this permission notice appear in all -copies. ]&] -[s0;%- [C1 -| ]&] -[s0;%- [C1 THE SOFTWARE IS PROVIDED `"AS IS`" AND THE AUTHOR DISCLAIMS -ALL WARRANTIES]&] -[s0;%- [C1 WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES -OF]&] -[s0;%- [C1 MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR -BE LIABLE FOR]&] -[s0;%- [C1 ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES -OR ANY DAMAGES]&] -[s0;%- [C1 WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, -WHETHER IN AN]&] -[s0;%- [C1 ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, -ARISING OUT OF]&] -[s0;%- [C1 OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.]&] -[s0;C1%- &] -[s0;%- [C1 Sponsored in part by the Defense Advanced Research Projects]&] -[s0;%- [C1 Agency (DARPA) and Air Force Research Laboratory, Air Force]&] -[s0;%- [C1 Materiel Command, USAF, under agreement number F39502`-99`-1`-0512.]&] -[s0;C1%- &] -[s0;%- [C1 `* `* `* `* `* `* - `* ]&] -[s0;C1%- &] -[s0;%- [C1 Copyright (c) 2000 The NetBSD Foundation, Inc.]&] -[s0;%- [C1 All rights reserved.]&] -[s0;C1%- &] -[s0;%- [C1 This code is derived from software contributed to The NetBSD -Foundation]&] -[s0;%- [C1 by Dieter Baron and Thomas Klausner.]&] -[s0;C1%- &] -[s0;%- [C1 Redistribution and use in source and binary forms, with -or without]&] -[s0;%- [C1 modification, are permitted provided that the following -conditions]&] -[s0;%- [C1 are met:]&] -[s0;%- [C1 1. Redistributions of source code must retain the above -copyright]&] -[s0;%- [C1 notice, this list of conditions and the following disclaimer.]&] -[s0;%- [C1 2. Redistributions in binary form must reproduce the above -copyright]&] -[s0;%- [C1 notice, this list of conditions and the following disclaimer -in the]&] -[s0;%- [C1 documentation and/or other materials provided with the -distribution.]&] -[s0;C1%- &] -[s0;%- [C1 THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. -AND CONTRIBUTORS]&] -[s0;%- [C1 ````AS IS`'`' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, -BUT NOT LIMITED]&] -[s0;%- [C1 TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -FOR A PARTICULAR]&] -[s0;%- [C1 PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION -OR CONTRIBUTORS]&] -[s0;%- [C1 BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -EXEMPLARY, OR]&] -[s0;%- [C1 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT -OF]&] -[s0;%- [C1 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; -OR BUSINESS]&] -[s0;%- [C1 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN]&] -[s0;%- [C1 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE -OR OTHERWISE)]&] -[s0;%- [C1 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -IF ADVISED OF THE]&] -[s0;%- [C1 POSSIBILITY OF SUCH DAMAGE.]&] -[s0;C1%- &] -[s0;C1%- &] -[s0;%- [C1 `=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`= -`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=]&] -[s0;%- [C1 gdtoa: Converting between IEEE floating point numbers and -ASCII]&] -[s0;%- [C1 `=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`= -`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=]&] -[s0;C1%- &] -[s0;%- [C1 The author of this software is David M. Gay.]&] -[s0;C1%- &] -[s0;%- [C1 Copyright (C) 1997, 1998, 1999, 2000, 2001 by Lucent Technologies]&] -[s0;%- [C1 All Rights Reserved]&] -[s0;C1%- &] -[s0;%- [C1 Permission to use, copy, modify, and distribute this software -and]&] -[s0;%- [C1 its documentation for any purpose and without fee is hereby]&] -[s0;%- [C1 granted, provided that the above copyright notice appear -in all]&] -[s0;%- [C1 copies and that both that the copyright notice and this]&] -[s0;%- [C1 permission notice and warranty disclaimer appear in supporting]&] -[s0;%- [C1 documentation, and that the name of Lucent or any of its -entities]&] -[s0;%- [C1 not be used in advertising or publicity pertaining to]&] -[s0;%- [C1 distribution of the software without specific, written prior]&] -[s0;%- [C1 permission.]&] -[s0;C1%- &] -[s0;%- [C1 LUCENT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,]&] -[s0;%- [C1 INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS.]&] -[s0;%- [C1 IN NO EVENT SHALL LUCENT OR ANY OF ITS ENTITIES BE LIABLE -FOR ANY]&] -[s0;%- [C1 SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES]&] -[s0;%- [C1 WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, -WHETHER]&] -[s0;%- [C1 IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,]&] -[s0;%- [C1 ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE -OF]&] -[s0;%- [C1 THIS SOFTWARE.]&] -[s0;C1%- &] -[s0;%- [C1 `* `* `* `* `* `* - `*]&] -[s0;C1%- &] -[s0;%- [C1 The author of this software is David M. Gay.]&] -[s0;C1%- &] -[s0;%- [C1 Copyright (C) 2005 by David M. Gay]&] -[s0;%- [C1 All Rights Reserved]&] -[s0;C1%- &] -[s0;%- [C1 Permission to use, copy, modify, and distribute this software -and its]&] -[s0;%- [C1 documentation for any purpose and without fee is hereby -granted,]&] -[s0;%- [C1 provided that the above copyright notice appear in all copies -and that]&] -[s0;%- [C1 both that the copyright notice and this permission notice -and warranty]&] -[s0;%- [C1 disclaimer appear in supporting documentation, and that -the name of]&] -[s0;%- [C1 the author or any of his current or former employers not -be used in]&] -[s0;%- [C1 advertising or publicity pertaining to distribution of the -software]&] -[s0;%- [C1 without specific, written prior permission.]&] -[s0;C1%- &] -[s0;%- [C1 THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS -SOFTWARE,]&] -[s0;%- [C1 INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS. IN]&] -[s0;%- [C1 NO EVENT SHALL THE AUTHOR OR ANY OF HIS CURRENT OR FORMER -EMPLOYERS BE]&] -[s0;%- [C1 LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES -OR ANY]&] -[s0;%- [C1 DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,]&] -[s0;%- [C1 WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS -ACTION,]&] -[s0;%- [C1 ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE -OF THIS]&] -[s0;%- [C1 SOFTWARE.]&] -[s0;C1%- &] -[s0;%- [C1 `* `* `* `* `* `* - `*]&] -[s0;C1%- &] -[s0;%- [C1 The author of this software is David M. Gay.]&] -[s0;C1%- &] -[s0;%- [C1 Copyright (C) 2004 by David M. Gay.]&] -[s0;%- [C1 All Rights Reserved]&] -[s0;%- [C1 Based on material in the rest of /netlib/fp/gdota.tar.gz,]&] -[s0;%- [C1 which is copyright (C) 1998, 2000 by Lucent Technologies.]&] -[s0;C1%- &] -[s0;%- [C1 Permission to use, copy, modify, and distribute this software -and]&] -[s0;%- [C1 its documentation for any purpose and without fee is hereby]&] -[s0;%- [C1 granted, provided that the above copyright notice appear -in all]&] -[s0;%- [C1 copies and that both that the copyright notice and this]&] -[s0;%- [C1 permission notice and warranty disclaimer appear in supporting]&] -[s0;%- [C1 documentation, and that the name of Lucent or any of its -entities]&] -[s0;%- [C1 not be used in advertising or publicity pertaining to]&] -[s0;%- [C1 distribution of the software without specific, written prior]&] -[s0;%- [C1 permission.]&] -[s0;C1%- &] -[s0;%- [C1 LUCENT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,]&] -[s0;%- [C1 INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS.]&] -[s0;%- [C1 IN NO EVENT SHALL LUCENT OR ANY OF ITS ENTITIES BE LIABLE -FOR ANY]&] -[s0;%- [C1 SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES]&] -[s0;%- [C1 WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, -WHETHER]&] -[s0;%- [C1 IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,]&] -[s0;%- [C1 ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE -OF]&] -[s0;%- [C1 THIS SOFTWARE.]&] -[s0;C1%- &] -[s0;C1%- &] -[s0;%- [C1 `=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=]&] -[s0;%- [C1 Parts of the math library]&] -[s0;%- [C1 `=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=]&] -[s0;C1%- &] -[s0;%- [C1 Copyright (C) 1993 by Sun Microsystems, Inc. All rights -reserved.]&] -[s0;C1%- &] -[s0;%- [C1 Developed at SunSoft, a Sun Microsystems, Inc. business.]&] -[s0;%- [C1 Permission to use, copy, modify, and distribute this]&] -[s0;%- [C1 software is freely granted, provided that this notice]&] -[s0;%- [C1 is preserved.]&] -[s0;C1%- &] -[s0;%- [C1 `* `* `* `* `* `* - `*]&] -[s0;C1%- &] -[s0;%- [C1 Copyright (C) 1993 by Sun Microsystems, Inc. All rights -reserved.]&] -[s0;C1%- &] -[s0;%- [C1 Developed at SunPro, a Sun Microsystems, Inc. business.]&] -[s0;%- [C1 Permission to use, copy, modify, and distribute this]&] -[s0;%- [C1 software is freely granted, provided that this notice]&] -[s0;%- [C1 is preserved.]&] -[s0;C1%- &] -[s0;%- [C1 `* `* `* `* `* `* - `*]&] -[s0;C1%- &] -[s0;%- [C1 FIXME: Cephes math lib]&] -[s0;%- [C1 Copyright (C) 1984`-1998 Stephen L. Moshier]&] -[s0;C1%- &] -[s0;%- [C1 It sounds vague, but as to be found at]&] -[s0;%- [C1 , -it gives an]&] -[s0;%- [C1 impression that the author could be willing to give an explicit]&] -[s0;%- [C1 permission to distribute those files e.g. under a BSD style -license. So]&] -[s0;%- [C1 probably there is no problem here, although it could be -good to get a]&] -[s0;%- [C1 permission from the author and then add a license into the -Cephes files]&] -[s0;%- [C1 in MinGW runtime. At least on follow`-up it is marked that -debian sees the]&] -[s0;%- [C1 version a`-like BSD one. As MinGW.org (where those cephes -parts are coming]&] -[s0;%- [C1 from) distributes them now over 6 years, it should be fine.]&] -[s0;C1%- &] -[s0;%- [C1 `=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=]&] -[s0;%- [C1 Headers and IDLs imported from Wine]&] -[s0;%- [C1 `=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=]&] -[s0;C1%- &] -[s0;%- [C1 Some header and IDL files were imported from the Wine project. -These files]&] -[s0;%- [C1 are prominent maked in source. Their copyright belongs to -contributors and]&] -[s0;%- [C1 they are distributed under LGPL license.]&] -[s0;C1%- &] -[s0;%- [C1 Disclaimer]&] -[s0;C1%- &] -[s0;%- [C1 This library is free software; you can redistribute it and/or]&] -[s0;%- [C1 modify it under the terms of the GNU Lesser General Public]&] -[s0;%- [C1 License as published by the Free Software Foundation; either]&] -[s0;%- [C1 version 2.1 of the License, or (at your option) any later -version.]&] -[s0;C1%- &] -[s0;%- [C1 This library is distributed in the hope that it will be -useful,]&] -[s0;%- [C1 but WITHOUT ANY WARRANTY; without even the implied warranty -of]&] -[s0;%- [C1 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See -the GNU]&] -[s0;%- [C1 Lesser General Public License for more details.]]}}&] -[s0;C1%- &] -[s0;C0%- &] -[s0;%- [C1 MINGW`-W64]&] -[ {{10000@(255.255.192) [s0;%- [C1 Copyright (c) 2011 mingw`-w64 project]&] -[s0;C1%- &] -[s0;%- [C1 Permission is hereby granted, free of charge, to any person -obtaining a]&] -[s0;%- [C1 copy of this software and associated documentation files -(the `"Software`"),]&] -[s0;%- [C1 to deal in the Software without restriction, including without -limitation]&] -[s0;%- [C1 the rights to use, copy, modify, merge, publish, distribute, -sublicense,]&] -[s0;%- [C1 and/or sell copies of the Software, and to permit persons -to whom the]&] -[s0;%- [C1 Software is furnished to do so, subject to the following -conditions:]&] -[s0;C1%- &] -[s0;%- [C1 The above copyright notice and this permission notice shall -be included in]&] -[s0;%- [C1 all copies or substantial portions of the Software.]&] -[s0;C1%- &] -[s0;%- [C1 THE SOFTWARE IS PROVIDED `"AS IS`", WITHOUT WARRANTY OF -ANY KIND, EXPRESS OR]&] -[s0;%- [C1 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY,]&] -[s0;%- [C1 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE]&] -[s0;%- [C1 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES -OR OTHER]&] -[s0;%- [C1 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING]&] -[s0;%- [C1 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE -OR OTHER]&] -[s0;%- [C1 DEALINGS IN THE SOFTWARE.]&] -[s0;C1%- &] -[s0;C1%- &] -[s0;%- [C1 /`*]&] -[s0;%- [C1 `* Parts of this library are derived by:]&] -[s0;%- [C1 `*]&] -[s0;%- [C1 `* Posix Threads library for Microsoft Windows]&] -[s0;%- [C1 `*]&] -[s0;%- [C1 `* Use at own risk, there is no implied warranty to this -code.]&] -[s0;%- [C1 `* It uses undocumented features of Microsoft Windows that -can change]&] -[s0;%- [C1 `* at any time in the future.]&] -[s0;%- [C1 `*]&] -[s0;%- [C1 `* (C) 2010 Lockless Inc.]&] -[s0;%- [C1 `* All rights reserved.]&] -[s0;%- [C1 `*]&] -[s0;%- [C1 `* Redistribution and use in source and binary forms, with -or without modification,]&] -[s0;%- [C1 `* are permitted provided that the following conditions -are met:]&] -[s0;%- [C1 `*]&] -[s0;%- [C1 `*]&] -[s0;%- [C1 `* `* Redistributions of source code must retain the above -copyright notice,]&] -[s0;%- [C1 `* this list of conditions and the following disclaimer.]&] -[s0;%- [C1 `* `* Redistributions in binary form must reproduce the -above copyright notice,]&] -[s0;%- [C1 `* this list of conditions and the following disclaimer -in the documentation]&] -[s0;%- [C1 `* and/or other materials provided with the distribution.]&] -[s0;%- [C1 `* `* Neither the name of Lockless Inc. nor the names -of its contributors may be]&] -[s0;%- [C1 `* used to endorse or promote products derived from -this software without]&] -[s0;%- [C1 `* specific prior written permission.]&] -[s0;%- [C1 `*]&] -[s0;%- [C1 `* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND -CONTRIBUTORS `"AS IS`" AN]&] -[s0;%- [C1 `* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED]&] -[s0;%- [C1 `* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED.]&] -[s0;%- [C1 `* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS -BE LIABLE FOR ANY DIRECT,]&] -[s0;%- [C1 `* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING,]&] -[s0;%- [C1 `* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -OR SERVICES; LOSS OF USE,]&] -[s0;%- [C1 `* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF]&] -[s0;%- [C1 `* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR -TORT (INCLUDING NEGLIGENCE]&] -[s0;%- [C1 `* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED]&] -[s0;%- [C1 `* OF THE POSSIBILITY OF SUCH DAMAGE.]&] -[s0;%- [C1 `*/]&] -[s0;C1%- ]}}&] -[s0;C1%- &] -[s0;C0%- &] -[s0;%- [C1 GCC, binutils]&] -[ {{10000@(255.255.192) [s0;%- [C1 GNU GENERAL PUBLIC LICENSE]&] -[s0;%- [C1 Version 3, 29 June 2007]&] -[s0;C1%- &] -[s0;%- [C1 Copyright (C) 2007 Free Software Foundation, Inc. ]&] -[s0;%- [C1 Everyone is permitted to copy and distribute verbatim copies]&] -[s0;%- [C1 of this license document, but changing it is not allowed.]&] -[s0;C1%- &] -[s0;%- [C1 Preamble]&] -[s0;C1%- &] -[s0;%- [C1 The GNU General Public License is a free, copyleft license -for]&] -[s0;%- [C1 software and other kinds of works.]&] -[s0;C1%- &] -[s0;%- [C1 The licenses for most software and other practical works -are designed]&] -[s0;%- [C1 to take away your freedom to share and change the works. - By contrast,]&] -[s0;%- [C1 the GNU General Public License is intended to guarantee -your freedom to]&] -[s0;%- [C1 share and change all versions of a program`-`-to make sure -it remains free]&] -[s0;%- [C1 software for all its users. We, the Free Software Foundation, -use the]&] -[s0;%- [C1 GNU General Public License for most of our software; it -applies also to]&] -[s0;%- [C1 any other work released this way by its authors. You can -apply it to]&] -[s0;%- [C1 your programs, too.]&] -[s0;C1%- &] -[s0;%- [C1 When we speak of free software, we are referring to freedom, -not]&] -[s0;%- [C1 price. Our General Public Licenses are designed to make -sure that you]&] -[s0;%- [C1 have the freedom to distribute copies of free software (and -charge for]&] -[s0;%- [C1 them if you wish), that you receive source code or can get -it if you]&] -[s0;%- [C1 want it, that you can change the software or use pieces -of it in new]&] -[s0;%- [C1 free programs, and that you know you can do these things.]&] -[s0;C1%- &] -[s0;%- [C1 To protect your rights, we need to prevent others from -denying you]&] -[s0;%- [C1 these rights or asking you to surrender the rights. Therefore, -you have]&] -[s0;%- [C1 certain responsibilities if you distribute copies of the -software, or if]&] -[s0;%- [C1 you modify it: responsibilities to respect the freedom of -others.]&] -[s0;C1%- &] -[s0;%- [C1 For example, if you distribute copies of such a program, -whether]&] -[s0;%- [C1 gratis or for a fee, you must pass on to the recipients -the same]&] -[s0;%- [C1 freedoms that you received. You must make sure that they, -too, receive]&] -[s0;%- [C1 or can get the source code. And you must show them these -terms so they]&] -[s0;%- [C1 know their rights.]&] -[s0;C1%- &] -[s0;%- [C1 Developers that use the GNU GPL protect your rights with -two steps:]&] -[s0;%- [C1 (1) assert copyright on the software, and (2) offer you -this License]&] -[s0;%- [C1 giving you legal permission to copy, distribute and/or modify -it.]&] -[s0;C1%- &] -[s0;%- [C1 For the developers`' and authors`' protection, the GPL -clearly explains]&] -[s0;%- [C1 that there is no warranty for this free software. For both -users`' and]&] -[s0;%- [C1 authors`' sake, the GPL requires that modified versions -be marked as]&] -[s0;%- [C1 changed, so that their problems will not be attributed erroneously -to]&] -[s0;%- [C1 authors of previous versions.]&] -[s0;C1%- &] -[s0;%- [C1 Some devices are designed to deny users access to install -or run]&] -[s0;%- [C1 modified versions of the software inside them, although -the manufacturer]&] -[s0;%- [C1 can do so. This is fundamentally incompatible with the -aim of]&] -[s0;%- [C1 protecting users`' freedom to change the software. The -systematic]&] -[s0;%- [C1 pattern of such abuse occurs in the area of products for -individuals to]&] -[s0;%- [C1 use, which is precisely where it is most unacceptable. -Therefore, we]&] -[s0;%- [C1 have designed this version of the GPL to prohibit the practice -for those]&] -[s0;%- [C1 products. If such problems arise substantially in other -domains, we]&] -[s0;%- [C1 stand ready to extend this provision to those domains in -future versions]&] -[s0;%- [C1 of the GPL, as needed to protect the freedom of users.]&] -[s0;C1%- &] -[s0;%- [C1 Finally, every program is threatened constantly by software -patents.]&] -[s0;%- [C1 States should not allow patents to restrict development -and use of]&] -[s0;%- [C1 software on general`-purpose computers, but in those that -do, we wish to]&] -[s0;%- [C1 avoid the special danger that patents applied to a free -program could]&] -[s0;%- [C1 make it effectively proprietary. To prevent this, the GPL -assures that]&] -[s0;%- [C1 patents cannot be used to render the program non`-free.]&] -[s0;C1%- &] -[s0;%- [C1 The precise terms and conditions for copying, distribution -and]&] -[s0;%- [C1 modification follow.]&] -[s0;C1%- &] -[s0;%- [C1 TERMS AND CONDITIONS]&] -[s0;C1%- &] -[s0;%- [C1 0. Definitions.]&] -[s0;C1%- &] -[s0;%- [C1 `"This License`" refers to version 3 of the GNU General -Public License.]&] -[s0;C1%- &] -[s0;%- [C1 `"Copyright`" also means copyright`-like laws that apply -to other kinds of]&] -[s0;%- [C1 works, such as semiconductor masks.]&] -[s0;C1%- &] -[s0;%- [C1 `"The Program`" refers to any copyrightable work licensed -under this]&] -[s0;%- [C1 License. Each licensee is addressed as `"you`". `"Licensees`" -and]&] -[s0;%- [C1 `"recipients`" may be individuals or organizations.]&] -[s0;C1%- &] -[s0;%- [C1 To `"modify`" a work means to copy from or adapt all or -part of the work]&] -[s0;%- [C1 in a fashion requiring copyright permission, other than -the making of an]&] -[s0;%- [C1 exact copy. The resulting work is called a `"modified version`" -of the]&] -[s0;%- [C1 earlier work or a work `"based on`" the earlier work.]&] -[s0;C1%- &] -[s0;%- [C1 A `"covered work`" means either the unmodified Program -or a work based]&] -[s0;%- [C1 on the Program.]&] -[s0;C1%- &] -[s0;%- [C1 To `"propagate`" a work means to do anything with it that, -without]&] -[s0;%- [C1 permission, would make you directly or secondarily liable -for]&] -[s0;%- [C1 infringement under applicable copyright law, except executing -it on a]&] -[s0;%- [C1 computer or modifying a private copy. Propagation includes -copying,]&] -[s0;%- [C1 distribution (with or without modification), making available -to the]&] -[s0;%- [C1 public, and in some countries other activities as well.]&] -[s0;C1%- &] -[s0;%- [C1 To `"convey`" a work means any kind of propagation that -enables other]&] -[s0;%- [C1 parties to make or receive copies. Mere interaction with -a user through]&] -[s0;%- [C1 a computer network, with no transfer of a copy, is not conveying.]&] -[s0;C1%- &] -[s0;%- [C1 An interactive user interface displays `"Appropriate Legal -Notices`"]&] -[s0;%- [C1 to the extent that it includes a convenient and prominently -visible]&] -[s0;%- [C1 feature that (1) displays an appropriate copyright notice, -and (2)]&] -[s0;%- [C1 tells the user that there is no warranty for the work (except -to the]&] -[s0;%- [C1 extent that warranties are provided), that licensees may -convey the]&] -[s0;%- [C1 work under this License, and how to view a copy of this -License. If]&] -[s0;%- [C1 the interface presents a list of user commands or options, -such as a]&] -[s0;%- [C1 menu, a prominent item in the list meets this criterion.]&] -[s0;C1%- &] -[s0;%- [C1 1. Source Code.]&] -[s0;C1%- &] -[s0;%- [C1 The `"source code`" for a work means the preferred form -of the work]&] -[s0;%- [C1 for making modifications to it. `"Object code`" means any -non`-source]&] -[s0;%- [C1 form of a work.]&] -[s0;C1%- &] -[s0;%- [C1 A `"Standard Interface`" means an interface that either -is an official]&] -[s0;%- [C1 standard defined by a recognized standards body, or, in -the case of]&] -[s0;%- [C1 interfaces specified for a particular programming language, -one that]&] -[s0;%- [C1 is widely used among developers working in that language.]&] -[s0;C1%- &] -[s0;%- [C1 The `"System Libraries`" of an executable work include -anything, other]&] -[s0;%- [C1 than the work as a whole, that (a) is included in the normal -form of]&] -[s0;%- [C1 packaging a Major Component, but which is not part of that -Major]&] -[s0;%- [C1 Component, and (b) serves only to enable use of the work -with that]&] -[s0;%- [C1 Major Component, or to implement a Standard Interface for -which an]&] -[s0;%- [C1 implementation is available to the public in source code -form. A]&] -[s0;%- [C1 `"Major Component`", in this context, means a major essential -component]&] -[s0;%- [C1 (kernel, window system, and so on) of the specific operating -system]&] -[s0;%- [C1 (if any) on which the executable work runs, or a compiler -used to]&] -[s0;%- [C1 produce the work, or an object code interpreter used to -run it.]&] -[s0;C1%- &] -[s0;%- [C1 The `"Corresponding Source`" for a work in object code -form means all]&] -[s0;%- [C1 the source code needed to generate, install, and (for an -executable]&] -[s0;%- [C1 work) run the object code and to modify the work, including -scripts to]&] -[s0;%- [C1 control those activities. However, it does not include -the work`'s]&] -[s0;%- [C1 System Libraries, or general`-purpose tools or generally -available free]&] -[s0;%- [C1 programs which are used unmodified in performing those activities -but]&] -[s0;%- [C1 which are not part of the work. For example, Corresponding -Source]&] -[s0;%- [C1 includes interface definition files associated with source -files for]&] -[s0;%- [C1 the work, and the source code for shared libraries and dynamically]&] -[s0;%- [C1 linked subprograms that the work is specifically designed -to require,]&] -[s0;%- [C1 such as by intimate data communication or control flow between -those]&] -[s0;%- [C1 subprograms and other parts of the work.]&] -[s0;C1%- &] -[s0;%- [C1 The Corresponding Source need not include anything that -users]&] -[s0;%- [C1 can regenerate automatically from other parts of the Corresponding]&] -[s0;%- [C1 Source.]&] -[s0;C1%- &] -[s0;%- [C1 The Corresponding Source for a work in source code form -is that]&] -[s0;%- [C1 same work.]&] -[s0;C1%- &] -[s0;%- [C1 2. Basic Permissions.]&] -[s0;C1%- &] -[s0;%- [C1 All rights granted under this License are granted for -the term of]&] -[s0;%- [C1 copyright on the Program, and are irrevocable provided the -stated]&] -[s0;%- [C1 conditions are met. This License explicitly affirms your -unlimited]&] -[s0;%- [C1 permission to run the unmodified Program. The output from -running a]&] -[s0;%- [C1 covered work is covered by this License only if the output, -given its]&] -[s0;%- [C1 content, constitutes a covered work. This License acknowledges -your]&] -[s0;%- [C1 rights of fair use or other equivalent, as provided by copyright -law.]&] -[s0;C1%- &] -[s0;%- [C1 You may make, run and propagate covered works that you -do not]&] -[s0;%- [C1 convey, without conditions so long as your license otherwise -remains]&] -[s0;%- [C1 in force. You may convey covered works to others for the -sole purpose]&] -[s0;%- [C1 of having them make modifications exclusively for you, or -provide you]&] -[s0;%- [C1 with facilities for running those works, provided that you -comply with]&] -[s0;%- [C1 the terms of this License in conveying all material for -which you do]&] -[s0;%- [C1 not control copyright. Those thus making or running the -covered works]&] -[s0;%- [C1 for you must do so exclusively on your behalf, under your -direction]&] -[s0;%- [C1 and control, on terms that prohibit them from making any -copies of]&] -[s0;%- [C1 your copyrighted material outside their relationship with -you.]&] -[s0;C1%- &] -[s0;%- [C1 Conveying under any other circumstances is permitted solely -under]&] -[s0;%- [C1 the conditions stated below. Sublicensing is not allowed; -section 10]&] -[s0;%- [C1 makes it unnecessary.]&] -[s0;C1%- &] -[s0;%- [C1 3. Protecting Users`' Legal Rights From Anti`-Circumvention -Law.]&] -[s0;C1%- &] -[s0;%- [C1 No covered work shall be deemed part of an effective technological]&] -[s0;%- [C1 measure under any applicable law fulfilling obligations -under article]&] -[s0;%- [C1 11 of the WIPO copyright treaty adopted on 20 December 1996, -or]&] -[s0;%- [C1 similar laws prohibiting or restricting circumvention of -such]&] -[s0;%- [C1 measures.]&] -[s0;C1%- &] -[s0;%- [C1 When you convey a covered work, you waive any legal power -to forbid]&] -[s0;%- [C1 circumvention of technological measures to the extent such -circumvention]&] -[s0;%- [C1 is effected by exercising rights under this License with -respect to]&] -[s0;%- [C1 the covered work, and you disclaim any intention to limit -operation or]&] -[s0;%- [C1 modification of the work as a means of enforcing, against -the work`'s]&] -[s0;%- [C1 users, your or third parties`' legal rights to forbid circumvention -of]&] -[s0;%- [C1 technological measures.]&] -[s0;C1%- &] -[s0;%- [C1 4. Conveying Verbatim Copies.]&] -[s0;C1%- &] -[s0;%- [C1 You may convey verbatim copies of the Program`'s source -code as you]&] -[s0;%- [C1 receive it, in any medium, provided that you conspicuously -and]&] -[s0;%- [C1 appropriately publish on each copy an appropriate copyright -notice;]&] -[s0;%- [C1 keep intact all notices stating that this License and any]&] -[s0;%- [C1 non`-permissive terms added in accord with section 7 apply -to the code;]&] -[s0;%- [C1 keep intact all notices of the absence of any warranty; -and give all]&] -[s0;%- [C1 recipients a copy of this License along with the Program.]&] -[s0;C1%- &] -[s0;%- [C1 You may charge any price or no price for each copy that -you convey,]&] -[s0;%- [C1 and you may offer support or warranty protection for a fee.]&] -[s0;C1%- &] -[s0;%- [C1 5. Conveying Modified Source Versions.]&] -[s0;C1%- &] -[s0;%- [C1 You may convey a work based on the Program, or the modifications -to]&] -[s0;%- [C1 produce it from the Program, in the form of source code -under the]&] -[s0;%- [C1 terms of section 4, provided that you also meet all of these -conditions:]&] -[s0;C1%- &] -[s0;%- [C1 a) The work must carry prominent notices stating that -you modified]&] -[s0;%- [C1 it, and giving a relevant date.]&] -[s0;C1%- &] -[s0;%- [C1 b) The work must carry prominent notices stating that -it is]&] -[s0;%- [C1 released under this License and any conditions added -under section]&] -[s0;%- [C1 7. This requirement modifies the requirement in section -4 to]&] -[s0;%- [C1 `"keep intact all notices`".]&] -[s0;C1%- &] -[s0;%- [C1 c) You must license the entire work, as a whole, under -this]&] -[s0;%- [C1 License to anyone who comes into possession of a copy. - This]&] -[s0;%- [C1 License will therefore apply, along with any applicable -section 7]&] -[s0;%- [C1 additional terms, to the whole of the work, and all -its parts,]&] -[s0;%- [C1 regardless of how they are packaged. This License gives -no]&] -[s0;%- [C1 permission to license the work in any other way, but -it does not]&] -[s0;%- [C1 invalidate such permission if you have separately received -it.]&] -[s0;C1%- &] -[s0;%- [C1 d) If the work has interactive user interfaces, each -must display]&] -[s0;%- [C1 Appropriate Legal Notices; however, if the Program has -interactive]&] -[s0;%- [C1 interfaces that do not display Appropriate Legal Notices, -your]&] -[s0;%- [C1 work need not make them do so.]&] -[s0;C1%- &] -[s0;%- [C1 A compilation of a covered work with other separate and -independent]&] -[s0;%- [C1 works, which are not by their nature extensions of the covered -work,]&] -[s0;%- [C1 and which are not combined with it such as to form a larger -program,]&] -[s0;%- [C1 in or on a volume of a storage or distribution medium, is -called an]&] -[s0;%- [C1 `"aggregate`" if the compilation and its resulting copyright -are not]&] -[s0;%- [C1 used to limit the access or legal rights of the compilation`'s -users]&] -[s0;%- [C1 beyond what the individual works permit. Inclusion of a -covered work]&] -[s0;%- [C1 in an aggregate does not cause this License to apply to -the other]&] -[s0;%- [C1 parts of the aggregate.]&] -[s0;C1%- &] -[s0;%- [C1 6. Conveying Non`-Source Forms.]&] -[s0;C1%- &] -[s0;%- [C1 You may convey a covered work in object code form under -the terms]&] -[s0;%- [C1 of sections 4 and 5, provided that you also convey the]&] -[s0;%- [C1 machine`-readable Corresponding Source under the terms of -this License,]&] -[s0;%- [C1 in one of these ways:]&] -[s0;C1%- &] -[s0;%- [C1 a) Convey the object code in, or embodied in, a physical -product]&] -[s0;%- [C1 (including a physical distribution medium), accompanied -by the]&] -[s0;%- [C1 Corresponding Source fixed on a durable physical medium]&] -[s0;%- [C1 customarily used for software interchange.]&] -[s0;C1%- &] -[s0;%- [C1 b) Convey the object code in, or embodied in, a physical -product]&] -[s0;%- [C1 (including a physical distribution medium), accompanied -by a]&] -[s0;%- [C1 written offer, valid for at least three years and valid -for as]&] -[s0;%- [C1 long as you offer spare parts or customer support for -that product]&] -[s0;%- [C1 model, to give anyone who possesses the object code -either (1) a]&] -[s0;%- [C1 copy of the Corresponding Source for all the software -in the]&] -[s0;%- [C1 product that is covered by this License, on a durable -physical]&] -[s0;%- [C1 medium customarily used for software interchange, for -a price no]&] -[s0;%- [C1 more than your reasonable cost of physically performing -this]&] -[s0;%- [C1 conveying of source, or (2) access to copy the]&] -[s0;%- [C1 Corresponding Source from a network server at no charge.]&] -[s0;C1%- &] -[s0;%- [C1 c) Convey individual copies of the object code with -a copy of the]&] -[s0;%- [C1 written offer to provide the Corresponding Source. -This]&] -[s0;%- [C1 alternative is allowed only occasionally and noncommercially, -and]&] -[s0;%- [C1 only if you received the object code with such an offer, -in accord]&] -[s0;%- [C1 with subsection 6b.]&] -[s0;C1%- &] -[s0;%- [C1 d) Convey the object code by offering access from a -designated]&] -[s0;%- [C1 place (gratis or for a charge), and offer equivalent -access to the]&] -[s0;%- [C1 Corresponding Source in the same way through the same -place at no]&] -[s0;%- [C1 further charge. You need not require recipients to -copy the]&] -[s0;%- [C1 Corresponding Source along with the object code. If -the place to]&] -[s0;%- [C1 copy the object code is a network server, the Corresponding -Source]&] -[s0;%- [C1 may be on a different server (operated by you or a third -party)]&] -[s0;%- [C1 that supports equivalent copying facilities, provided -you maintain]&] -[s0;%- [C1 clear directions next to the object code saying where -to find the]&] -[s0;%- [C1 Corresponding Source. Regardless of what server hosts -the]&] -[s0;%- [C1 Corresponding Source, you remain obligated to ensure -that it is]&] -[s0;%- [C1 available for as long as needed to satisfy these requirements.]&] -[s0;C1%- &] -[s0;%- [C1 e) Convey the object code using peer`-to`-peer transmission, -provided]&] -[s0;%- [C1 you inform other peers where the object code and Corresponding]&] -[s0;%- [C1 Source of the work are being offered to the general -public at no]&] -[s0;%- [C1 charge under subsection 6d.]&] -[s0;C1%- &] -[s0;%- [C1 A separable portion of the object code, whose source code -is excluded]&] -[s0;%- [C1 from the Corresponding Source as a System Library, need -not be]&] -[s0;%- [C1 included in conveying the object code work.]&] -[s0;C1%- &] -[s0;%- [C1 A `"User Product`" is either (1) a `"consumer product`", -which means any]&] -[s0;%- [C1 tangible personal property which is normally used for personal, -family,]&] -[s0;%- [C1 or household purposes, or (2) anything designed or sold -for incorporation]&] -[s0;%- [C1 into a dwelling. In determining whether a product is a -consumer product,]&] -[s0;%- [C1 doubtful cases shall be resolved in favor of coverage. -For a particular]&] -[s0;%- [C1 product received by a particular user, `"normally used`" -refers to a]&] -[s0;%- [C1 typical or common use of that class of product, regardless -of the status]&] -[s0;%- [C1 of the particular user or of the way in which the particular -user]&] -[s0;%- [C1 actually uses, or expects or is expected to use, the product. - A product]&] -[s0;%- [C1 is a consumer product regardless of whether the product -has substantial]&] -[s0;%- [C1 commercial, industrial or non`-consumer uses, unless such -uses represent]&] -[s0;%- [C1 the only significant mode of use of the product.]&] -[s0;C1%- &] -[s0;%- [C1 `"Installation Information`" for a User Product means -any methods,]&] -[s0;%- [C1 procedures, authorization keys, or other information required -to install]&] -[s0;%- [C1 and execute modified versions of a covered work in that -User Product from]&] -[s0;%- [C1 a modified version of its Corresponding Source. The information -must]&] -[s0;%- [C1 suffice to ensure that the continued functioning of the -modified object]&] -[s0;%- [C1 code is in no case prevented or interfered with solely because]&] -[s0;%- [C1 modification has been made.]&] -[s0;C1%- &] -[s0;%- [C1 If you convey an object code work under this section in, -or with, or]&] -[s0;%- [C1 specifically for use in, a User Product, and the conveying -occurs as]&] -[s0;%- [C1 part of a transaction in which the right of possession and -use of the]&] -[s0;%- [C1 User Product is transferred to the recipient in perpetuity -or for a]&] -[s0;%- [C1 fixed term (regardless of how the transaction is characterized), -the]&] -[s0;%- [C1 Corresponding Source conveyed under this section must be -accompanied]&] -[s0;%- [C1 by the Installation Information. But this requirement does -not apply]&] -[s0;%- [C1 if neither you nor any third party retains the ability to -install]&] -[s0;%- [C1 modified object code on the User Product (for example, the -work has]&] -[s0;%- [C1 been installed in ROM).]&] -[s0;C1%- &] -[s0;%- [C1 The requirement to provide Installation Information does -not include a]&] -[s0;%- [C1 requirement to continue to provide support service, warranty, -or updates]&] -[s0;%- [C1 for a work that has been modified or installed by the recipient, -or for]&] -[s0;%- [C1 the User Product in which it has been modified or installed. - Access to a]&] -[s0;%- [C1 network may be denied when the modification itself materially -and]&] -[s0;%- [C1 adversely affects the operation of the network or violates -the rules and]&] -[s0;%- [C1 protocols for communication across the network.]&] -[s0;C1%- &] -[s0;%- [C1 Corresponding Source conveyed, and Installation Information -provided,]&] -[s0;%- [C1 in accord with this section must be in a format that is -publicly]&] -[s0;%- [C1 documented (and with an implementation available to the -public in]&] -[s0;%- [C1 source code form), and must require no special password -or key for]&] -[s0;%- [C1 unpacking, reading or copying.]&] -[s0;C1%- &] -[s0;%- [C1 7. Additional Terms.]&] -[s0;C1%- &] -[s0;%- [C1 `"Additional permissions`" are terms that supplement the -terms of this]&] -[s0;%- [C1 License by making exceptions from one or more of its conditions.]&] -[s0;%- [C1 Additional permissions that are applicable to the entire -Program shall]&] -[s0;%- [C1 be treated as though they were included in this License, -to the extent]&] -[s0;%- [C1 that they are valid under applicable law. If additional -permissions]&] -[s0;%- [C1 apply only to part of the Program, that part may be used -separately]&] -[s0;%- [C1 under those permissions, but the entire Program remains -governed by]&] -[s0;%- [C1 this License without regard to the additional permissions.]&] -[s0;C1%- &] -[s0;%- [C1 When you convey a copy of a covered work, you may at your -option]&] -[s0;%- [C1 remove any additional permissions from that copy, or from -any part of]&] -[s0;%- [C1 it. (Additional permissions may be written to require their -own]&] -[s0;%- [C1 removal in certain cases when you modify the work.) You -may place]&] -[s0;%- [C1 additional permissions on material, added by you to a covered -work,]&] -[s0;%- [C1 for which you have or can give appropriate copyright permission.]&] -[s0;C1%- &] -[s0;%- [C1 Notwithstanding any other provision of this License, for -material you]&] -[s0;%- [C1 add to a covered work, you may (if authorized by the copyright -holders of]&] -[s0;%- [C1 that material) supplement the terms of this License with -terms:]&] -[s0;C1%- &] -[s0;%- [C1 a) Disclaiming warranty or limiting liability differently -from the]&] -[s0;%- [C1 terms of sections 15 and 16 of this License; or]&] -[s0;C1%- &] -[s0;%- [C1 b) Requiring preservation of specified reasonable legal -notices or]&] -[s0;%- [C1 author attributions in that material or in the Appropriate -Legal]&] -[s0;%- [C1 Notices displayed by works containing it; or]&] -[s0;C1%- &] -[s0;%- [C1 c) Prohibiting misrepresentation of the origin of that -material, or]&] -[s0;%- [C1 requiring that modified versions of such material be -marked in]&] -[s0;%- [C1 reasonable ways as different from the original version; -or]&] -[s0;C1%- &] -[s0;%- [C1 d) Limiting the use for publicity purposes of names -of licensors or]&] -[s0;%- [C1 authors of the material; or]&] -[s0;C1%- &] -[s0;%- [C1 e) Declining to grant rights under trademark law for -use of some]&] -[s0;%- [C1 trade names, trademarks, or service marks; or]&] -[s0;C1%- &] -[s0;%- [C1 f) Requiring indemnification of licensors and authors -of that]&] -[s0;%- [C1 material by anyone who conveys the material (or modified -versions of]&] -[s0;%- [C1 it) with contractual assumptions of liability to the -recipient, for]&] -[s0;%- [C1 any liability that these contractual assumptions directly -impose on]&] -[s0;%- [C1 those licensors and authors.]&] -[s0;C1%- &] -[s0;%- [C1 All other non`-permissive additional terms are considered -`"further]&] -[s0;%- [C1 restrictions`" within the meaning of section 10. If the -Program as you]&] -[s0;%- [C1 received it, or any part of it, contains a notice stating -that it is]&] -[s0;%- [C1 governed by this License along with a term that is a further]&] -[s0;%- [C1 restriction, you may remove that term. If a license document -contains]&] -[s0;%- [C1 a further restriction but permits relicensing or conveying -under this]&] -[s0;%- [C1 License, you may add to a covered work material governed -by the terms]&] -[s0;%- [C1 of that license document, provided that the further restriction -does]&] -[s0;%- [C1 not survive such relicensing or conveying.]&] -[s0;C1%- &] -[s0;%- [C1 If you add terms to a covered work in accord with this -section, you]&] -[s0;%- [C1 must place, in the relevant source files, a statement of -the]&] -[s0;%- [C1 additional terms that apply to those files, or a notice -indicating]&] -[s0;%- [C1 where to find the applicable terms.]&] -[s0;C1%- &] -[s0;%- [C1 Additional terms, permissive or non`-permissive, may be -stated in the]&] -[s0;%- [C1 form of a separately written license, or stated as exceptions;]&] -[s0;%- [C1 the above requirements apply either way.]&] -[s0;C1%- &] -[s0;%- [C1 8. Termination.]&] -[s0;C1%- &] -[s0;%- [C1 You may not propagate or modify a covered work except -as expressly]&] -[s0;%- [C1 provided under this License. Any attempt otherwise to propagate -or]&] -[s0;%- [C1 modify it is void, and will automatically terminate your -rights under]&] -[s0;%- [C1 this License (including any patent licenses granted under -the third]&] -[s0;%- [C1 paragraph of section 11).]&] -[s0;C1%- &] -[s0;%- [C1 However, if you cease all violation of this License, then -your]&] -[s0;%- [C1 license from a particular copyright holder is reinstated -(a)]&] -[s0;%- [C1 provisionally, unless and until the copyright holder explicitly -and]&] -[s0;%- [C1 finally terminates your license, and (b) permanently, if -the copyright]&] -[s0;%- [C1 holder fails to notify you of the violation by some reasonable -means]&] -[s0;%- [C1 prior to 60 days after the cessation.]&] -[s0;C1%- &] -[s0;%- [C1 Moreover, your license from a particular copyright holder -is]&] -[s0;%- [C1 reinstated permanently if the copyright holder notifies -you of the]&] -[s0;%- [C1 violation by some reasonable means, this is the first time -you have]&] -[s0;%- [C1 received notice of violation of this License (for any work) -from that]&] -[s0;%- [C1 copyright holder, and you cure the violation prior to 30 -days after]&] -[s0;%- [C1 your receipt of the notice.]&] -[s0;C1%- &] -[s0;%- [C1 Termination of your rights under this section does not -terminate the]&] -[s0;%- [C1 licenses of parties who have received copies or rights from -you under]&] -[s0;%- [C1 this License. If your rights have been terminated and not -permanently]&] -[s0;%- [C1 reinstated, you do not qualify to receive new licenses for -the same]&] -[s0;%- [C1 material under section 10.]&] -[s0;C1%- &] -[s0;%- [C1 9. Acceptance Not Required for Having Copies.]&] -[s0;C1%- &] -[s0;%- [C1 You are not required to accept this License in order to -receive or]&] -[s0;%- [C1 run a copy of the Program. Ancillary propagation of a covered -work]&] -[s0;%- [C1 occurring solely as a consequence of using peer`-to`-peer -transmission]&] -[s0;%- [C1 to receive a copy likewise does not require acceptance. - However,]&] -[s0;%- [C1 nothing other than this License grants you permission to -propagate or]&] -[s0;%- [C1 modify any covered work. These actions infringe copyright -if you do]&] -[s0;%- [C1 not accept this License. Therefore, by modifying or propagating -a]&] -[s0;%- [C1 covered work, you indicate your acceptance of this License -to do so.]&] -[s0;C1%- &] -[s0;%- [C1 10. Automatic Licensing of Downstream Recipients.]&] -[s0;C1%- &] -[s0;%- [C1 Each time you convey a covered work, the recipient automatically]&] -[s0;%- [C1 receives a license from the original licensors, to run, -modify and]&] -[s0;%- [C1 propagate that work, subject to this License. You are not -responsible]&] -[s0;%- [C1 for enforcing compliance by third parties with this License.]&] -[s0;C1%- &] -[s0;%- [C1 An `"entity transaction`" is a transaction transferring -control of an]&] -[s0;%- [C1 organization, or substantially all assets of one, or subdividing -an]&] -[s0;%- [C1 organization, or merging organizations. If propagation -of a covered]&] -[s0;%- [C1 work results from an entity transaction, each party to that]&] -[s0;%- [C1 transaction who receives a copy of the work also receives -whatever]&] -[s0;%- [C1 licenses to the work the party`'s predecessor in interest -had or could]&] -[s0;%- [C1 give under the previous paragraph, plus a right to possession -of the]&] -[s0;%- [C1 Corresponding Source of the work from the predecessor in -interest, if]&] -[s0;%- [C1 the predecessor has it or can get it with reasonable efforts.]&] -[s0;C1%- &] -[s0;%- [C1 You may not impose any further restrictions on the exercise -of the]&] -[s0;%- [C1 rights granted or affirmed under this License. For example, -you may]&] -[s0;%- [C1 not impose a license fee, royalty, or other charge for exercise -of]&] -[s0;%- [C1 rights granted under this License, and you may not initiate -litigation]&] -[s0;%- [C1 (including a cross`-claim or counterclaim in a lawsuit) -alleging that]&] -[s0;%- [C1 any patent claim is infringed by making, using, selling, -offering for]&] -[s0;%- [C1 sale, or importing the Program or any portion of it.]&] -[s0;C1%- &] -[s0;%- [C1 11. Patents.]&] -[s0;C1%- &] -[s0;%- [C1 A `"contributor`" is a copyright holder who authorizes -use under this]&] -[s0;%- [C1 License of the Program or a work on which the Program is -based. The]&] -[s0;%- [C1 work thus licensed is called the contributor`'s `"contributor -version`".]&] -[s0;C1%- &] -[s0;%- [C1 A contributor`'s `"essential patent claims`" are all patent -claims]&] -[s0;%- [C1 owned or controlled by the contributor, whether already -acquired or]&] -[s0;%- [C1 hereafter acquired, that would be infringed by some manner, -permitted]&] -[s0;%- [C1 by this License, of making, using, or selling its contributor -version,]&] -[s0;%- [C1 but do not include claims that would be infringed only as -a]&] -[s0;%- [C1 consequence of further modification of the contributor version. - For]&] -[s0;%- [C1 purposes of this definition, `"control`" includes the right -to grant]&] -[s0;%- [C1 patent sublicenses in a manner consistent with the requirements -of]&] -[s0;%- [C1 this License.]&] -[s0;C1%- &] -[s0;%- [C1 Each contributor grants you a non`-exclusive, worldwide, -royalty`-free]&] -[s0;%- [C1 patent license under the contributor`'s essential patent -claims, to]&] -[s0;%- [C1 make, use, sell, offer for sale, import and otherwise run, -modify and]&] -[s0;%- [C1 propagate the contents of its contributor version.]&] -[s0;C1%- &] -[s0;%- [C1 In the following three paragraphs, a `"patent license`" -is any express]&] -[s0;%- [C1 agreement or commitment, however denominated, not to enforce -a patent]&] -[s0;%- [C1 (such as an express permission to practice a patent or covenant -not to]&] -[s0;%- [C1 sue for patent infringement). To `"grant`" such a patent -license to a]&] -[s0;%- [C1 party means to make such an agreement or commitment not -to enforce a]&] -[s0;%- [C1 patent against the party.]&] -[s0;C1%- &] -[s0;%- [C1 If you convey a covered work, knowingly relying on a patent -license,]&] -[s0;%- [C1 and the Corresponding Source of the work is not available -for anyone]&] -[s0;%- [C1 to copy, free of charge and under the terms of this License, -through a]&] -[s0;%- [C1 publicly available network server or other readily accessible -means,]&] -[s0;%- [C1 then you must either (1) cause the Corresponding Source -to be so]&] -[s0;%- [C1 available, or (2) arrange to deprive yourself of the benefit -of the]&] -[s0;%- [C1 patent license for this particular work, or (3) arrange, -in a manner]&] -[s0;%- [C1 consistent with the requirements of this License, to extend -the patent]&] -[s0;%- [C1 license to downstream recipients. `"Knowingly relying`" -means you have]&] -[s0;%- [C1 actual knowledge that, but for the patent license, your -conveying the]&] -[s0;%- [C1 covered work in a country, or your recipient`'s use of the -covered work]&] -[s0;%- [C1 in a country, would infringe one or more identifiable patents -in that]&] -[s0;%- [C1 country that you have reason to believe are valid.]&] -[s0;C1%- &] -[s0;%- [C1 If, pursuant to or in connection with a single transaction -or]&] -[s0;%- [C1 arrangement, you convey, or propagate by procuring conveyance -of, a]&] -[s0;%- [C1 covered work, and grant a patent license to some of the -parties]&] -[s0;%- [C1 receiving the covered work authorizing them to use, propagate, -modify]&] -[s0;%- [C1 or convey a specific copy of the covered work, then the -patent license]&] -[s0;%- [C1 you grant is automatically extended to all recipients of -the covered]&] -[s0;%- [C1 work and works based on it.]&] -[s0;C1%- &] -[s0;%- [C1 A patent license is `"discriminatory`" if it does not -include within]&] -[s0;%- [C1 the scope of its coverage, prohibits the exercise of, or -is]&] -[s0;%- [C1 conditioned on the non`-exercise of one or more of the rights -that are]&] -[s0;%- [C1 specifically granted under this License. You may not convey -a covered]&] -[s0;%- [C1 work if you are a party to an arrangement with a third party -that is]&] -[s0;%- [C1 in the business of distributing software, under which you -make payment]&] -[s0;%- [C1 to the third party based on the extent of your activity -of conveying]&] -[s0;%- [C1 the work, and under which the third party grants, to any -of the]&] -[s0;%- [C1 parties who would receive the covered work from you, a discriminatory]&] -[s0;%- [C1 patent license (a) in connection with copies of the covered -work]&] -[s0;%- [C1 conveyed by you (or copies made from those copies), or (b) -primarily]&] -[s0;%- [C1 for and in connection with specific products or compilations -that]&] -[s0;%- [C1 contain the covered work, unless you entered into that arrangement,]&] -[s0;%- [C1 or that patent license was granted, prior to 28 March 2007.]&] -[s0;C1%- &] -[s0;%- [C1 Nothing in this License shall be construed as excluding -or limiting]&] -[s0;%- [C1 any implied license or other defenses to infringement that -may]&] -[s0;%- [C1 otherwise be available to you under applicable patent law.]&] -[s0;C1%- &] -[s0;%- [C1 12. No Surrender of Others`' Freedom.]&] -[s0;C1%- &] -[s0;%- [C1 If conditions are imposed on you (whether by court order, -agreement or]&] -[s0;%- [C1 otherwise) that contradict the conditions of this License, -they do not]&] -[s0;%- [C1 excuse you from the conditions of this License. If you -cannot convey a]&] -[s0;%- [C1 covered work so as to satisfy simultaneously your obligations -under this]&] -[s0;%- [C1 License and any other pertinent obligations, then as a consequence -you may]&] -[s0;%- [C1 not convey it at all. For example, if you agree to terms -that obligate you]&] -[s0;%- [C1 to collect a royalty for further conveying from those to -whom you convey]&] -[s0;%- [C1 the Program, the only way you could satisfy both those terms -and this]&] -[s0;%- [C1 License would be to refrain entirely from conveying the -Program.]&] -[s0;C1%- &] -[s0;%- [C1 13. Use with the GNU Affero General Public License.]&] -[s0;C1%- &] -[s0;%- [C1 Notwithstanding any other provision of this License, you -have]&] -[s0;%- [C1 permission to link or combine any covered work with a work -licensed]&] -[s0;%- [C1 under version 3 of the GNU Affero General Public License -into a single]&] -[s0;%- [C1 combined work, and to convey the resulting work. The terms -of this]&] -[s0;%- [C1 License will continue to apply to the part which is the -covered work,]&] -[s0;%- [C1 but the special requirements of the GNU Affero General Public -License,]&] -[s0;%- [C1 section 13, concerning interaction through a network will -apply to the]&] -[s0;%- [C1 combination as such.]&] -[s0;C1%- &] -[s0;%- [C1 14. Revised Versions of this License.]&] -[s0;C1%- &] -[s0;%- [C1 The Free Software Foundation may publish revised and/or -new versions of]&] -[s0;%- [C1 the GNU General Public License from time to time. Such -new versions will]&] -[s0;%- [C1 be similar in spirit to the present version, but may differ -in detail to]&] -[s0;%- [C1 address new problems or concerns.]&] -[s0;C1%- &] -[s0;%- [C1 Each version is given a distinguishing version number. - If the]&] -[s0;%- [C1 Program specifies that a certain numbered version of the -GNU General]&] -[s0;%- [C1 Public License `"or any later version`" applies to it, you -have the]&] -[s0;%- [C1 option of following the terms and conditions either of that -numbered]&] -[s0;%- [C1 version or of any later version published by the Free Software]&] -[s0;%- [C1 Foundation. If the Program does not specify a version number -of the]&] -[s0;%- [C1 GNU General Public License, you may choose any version ever -published]&] -[s0;%- [C1 by the Free Software Foundation.]&] -[s0;C1%- &] -[s0;%- [C1 If the Program specifies that a proxy can decide which -future]&] -[s0;%- [C1 versions of the GNU General Public License can be used, -that proxy`'s]&] -[s0;%- [C1 public statement of acceptance of a version permanently -authorizes you]&] -[s0;%- [C1 to choose that version for the Program.]&] -[s0;C1%- &] -[s0;%- [C1 Later license versions may give you additional or different]&] -[s0;%- [C1 permissions. However, no additional obligations are imposed -on any]&] -[s0;%- [C1 author or copyright holder as a result of your choosing -to follow a]&] -[s0;%- [C1 later version.]&] -[s0;C1%- &] -[s0;%- [C1 15. Disclaimer of Warranty.]&] -[s0;C1%- &] -[s0;%- [C1 THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED -BY]&] -[s0;%- [C1 APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING -THE COPYRIGHT]&] -[s0;%- [C1 HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM `"AS IS`" -WITHOUT WARRANTY]&] -[s0;%- [C1 OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT -NOT LIMITED TO,]&] -[s0;%- [C1 THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR]&] -[s0;%- [C1 PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE -OF THE PROGRAM]&] -[s0;%- [C1 IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME -THE COST OF]&] -[s0;%- [C1 ALL NECESSARY SERVICING, REPAIR OR CORRECTION.]&] -[s0;C1%- &] -[s0;%- [C1 16. Limitation of Liability.]&] -[s0;C1%- &] -[s0;%- [C1 IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED -TO IN WRITING]&] -[s0;%- [C1 WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES -AND/OR CONVEYS]&] -[s0;%- [C1 THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY]&] -[s0;%- [C1 GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE]&] -[s0;%- [C1 USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF]&] -[s0;%- [C1 DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED -BY YOU OR THIRD]&] -[s0;%- [C1 PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY -OTHER PROGRAMS),]&] -[s0;%- [C1 EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF]&] -[s0;%- [C1 SUCH DAMAGES.]&] -[s0;C1%- &] -[s0;%- [C1 17. Interpretation of Sections 15 and 16.]&] -[s0;C1%- &] -[s0;%- [C1 If the disclaimer of warranty and limitation of liability -provided]&] -[s0;%- [C1 above cannot be given local legal effect according to their -terms,]&] -[s0;%- [C1 reviewing courts shall apply local law that most closely -approximates]&] -[s0;%- [C1 an absolute waiver of all civil liability in connection -with the]&] -[s0;%- [C1 Program, unless a warranty or assumption of liability accompanies -a]&] -[s0;%- [C1 copy of the Program in return for a fee.]&] -[s0;C1%- &] -[s0;%- [C1 END OF TERMS AND CONDITIONS]&] -[s0;C1%- &] -[s0;%- [C1 How to Apply These Terms to Your New Programs]&] -[s0;C1%- &] -[s0;%- [C1 If you develop a new program, and you want it to be of -the greatest]&] -[s0;%- [C1 possible use to the public, the best way to achieve this -is to make it]&] -[s0;%- [C1 free software which everyone can redistribute and change -under these terms.]&] -[s0;C1%- &] -[s0;%- [C1 To do so, attach the following notices to the program. - It is safest]&] -[s0;%- [C1 to attach them to the start of each source file to most -effectively]&] -[s0;%- [C1 state the exclusion of warranty; and each file should have -at least]&] -[s0;%- [C1 the `"copyright`" line and a pointer to where the full notice -is found.]&] -[s0;C1%- &] -[s0;%- [C1 ]&] -[s0;%- [C1 Copyright (C) ]&] -[s0;C1%- &] -[s0;%- [C1 This program is free software: you can redistribute it -and/or modify]&] -[s0;%- [C1 it under the terms of the GNU General Public License -as published by]&] -[s0;%- [C1 the Free Software Foundation, either version 3 of the -License, or]&] -[s0;%- [C1 (at your option) any later version.]&] -[s0;C1%- &] -[s0;%- [C1 This program is distributed in the hope that it will -be useful,]&] -[s0;%- [C1 but WITHOUT ANY WARRANTY; without even the implied warranty -of]&] -[s0;%- [C1 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the]&] -[s0;%- [C1 GNU General Public License for more details.]&] -[s0;C1%- &] -[s0;%- [C1 You should have received a copy of the GNU General Public -License]&] -[s0;%- [C1 along with this program. If not, see .]&] -[s0;C1%- &] -[s0;%- [C1 Also add information on how to contact you by electronic -and paper mail.]&] -[s0;C1%- &] -[s0;%- [C1 If the program does terminal interaction, make it output -a short]&] -[s0;%- [C1 notice like this when it starts in an interactive mode:]&] -[s0;C1%- &] -[s0;%- [C1 Copyright (C) ]&] -[s0;%- [C1 This program comes with ABSOLUTELY NO WARRANTY; for -details type ``show w`'.]&] -[s0;%- [C1 This is free software, and you are welcome to redistribute -it]&] -[s0;%- [C1 under certain conditions; type ``show c`' for details.]&] -[s0;C1%- &] -[s0;%- [C1 The hypothetical commands ``show w`' and ``show c`' should -show the appropriate]&] -[s0;%- [C1 parts of the General Public License. Of course, your program`'s -commands]&] -[s0;%- [C1 might be different; for a GUI interface, you would use an -`"about box`".]&] -[s0;C1%- &] -[s0;%- [C1 You should also get your employer (if you work as a programmer) -or school,]&] -[s0;%- [C1 if any, to sign a `"copyright disclaimer`" for the program, -if necessary.]&] -[s0;%- [C1 For more information on this, and how to apply and follow -the GNU GPL, see]&] -[s0;%- [C1 .]&] -[s0;C1%- &] -[s0;%- [C1 The GNU General Public License does not permit incorporating -your program]&] -[s0;%- [C1 into proprietary programs. If your program is a subroutine -library, you]&] -[s0;%- [C1 may consider it more useful to permit linking proprietary -applications with]&] -[s0;%- [C1 the library. If this is what you want to do, use the GNU -Lesser General]&] -[s0;%- [C1 Public License instead of this License. But first, please -read]&] -[s0;%- [C1 .]&] -[s0;C1%- ]}}&] -[s0;C1%- &] -[s0;%- [C1 GDB]&] -[ {{10000@(255.255.192) [s0;%- [C1 GNU GENERAL PUBLIC LICENSE]&] -[s0;%- [C1 Version 3, 29 June 2007]&] -[s0;C1%- &] -[s0;%- [C1 Copyright (C) 2007 Free Software Foundation, Inc. ]&] -[s0;%- [C1 Everyone is permitted to copy and distribute verbatim copies]&] -[s0;%- [C1 of this license document, but changing it is not allowed.]&] -[s0;C1%- &] -[s0;%- [C1 Preamble]&] -[s0;C1%- &] -[s0;%- [C1 The GNU General Public License is a free, copyleft license -for]&] -[s0;%- [C1 software and other kinds of works.]&] -[s0;C1%- &] -[s0;%- [C1 The licenses for most software and other practical works -are designed]&] -[s0;%- [C1 to take away your freedom to share and change the works. - By contrast,]&] -[s0;%- [C1 the GNU General Public License is intended to guarantee -your freedom to]&] -[s0;%- [C1 share and change all versions of a program`-`-to make sure -it remains free]&] -[s0;%- [C1 software for all its users. We, the Free Software Foundation, -use the]&] -[s0;%- [C1 GNU General Public License for most of our software; it -applies also to]&] -[s0;%- [C1 any other work released this way by its authors. You can -apply it to]&] -[s0;%- [C1 your programs, too.]&] -[s0;C1%- &] -[s0;%- [C1 When we speak of free software, we are referring to freedom, -not]&] -[s0;%- [C1 price. Our General Public Licenses are designed to make -sure that you]&] -[s0;%- [C1 have the freedom to distribute copies of free software (and -charge for]&] -[s0;%- [C1 them if you wish), that you receive source code or can get -it if you]&] -[s0;%- [C1 want it, that you can change the software or use pieces -of it in new]&] -[s0;%- [C1 free programs, and that you know you can do these things.]&] -[s0;C1%- &] -[s0;%- [C1 To protect your rights, we need to prevent others from -denying you]&] -[s0;%- [C1 these rights or asking you to surrender the rights. Therefore, -you have]&] -[s0;%- [C1 certain responsibilities if you distribute copies of the -software, or if]&] -[s0;%- [C1 you modify it: responsibilities to respect the freedom of -others.]&] -[s0;C1%- &] -[s0;%- [C1 For example, if you distribute copies of such a program, -whether]&] -[s0;%- [C1 gratis or for a fee, you must pass on to the recipients -the same]&] -[s0;%- [C1 freedoms that you received. You must make sure that they, -too, receive]&] -[s0;%- [C1 or can get the source code. And you must show them these -terms so they]&] -[s0;%- [C1 know their rights.]&] -[s0;C1%- &] -[s0;%- [C1 Developers that use the GNU GPL protect your rights with -two steps:]&] -[s0;%- [C1 (1) assert copyright on the software, and (2) offer you -this License]&] -[s0;%- [C1 giving you legal permission to copy, distribute and/or modify -it.]&] -[s0;C1%- &] -[s0;%- [C1 For the developers`' and authors`' protection, the GPL -clearly explains]&] -[s0;%- [C1 that there is no warranty for this free software. For both -users`' and]&] -[s0;%- [C1 authors`' sake, the GPL requires that modified versions -be marked as]&] -[s0;%- [C1 changed, so that their problems will not be attributed erroneously -to]&] -[s0;%- [C1 authors of previous versions.]&] -[s0;C1%- &] -[s0;%- [C1 Some devices are designed to deny users access to install -or run]&] -[s0;%- [C1 modified versions of the software inside them, although -the manufacturer]&] -[s0;%- [C1 can do so. This is fundamentally incompatible with the -aim of]&] -[s0;%- [C1 protecting users`' freedom to change the software. The -systematic]&] -[s0;%- [C1 pattern of such abuse occurs in the area of products for -individuals to]&] -[s0;%- [C1 use, which is precisely where it is most unacceptable. -Therefore, we]&] -[s0;%- [C1 have designed this version of the GPL to prohibit the practice -for those]&] -[s0;%- [C1 products. If such problems arise substantially in other -domains, we]&] -[s0;%- [C1 stand ready to extend this provision to those domains in -future versions]&] -[s0;%- [C1 of the GPL, as needed to protect the freedom of users.]&] -[s0;C1%- &] -[s0;%- [C1 Finally, every program is threatened constantly by software -patents.]&] -[s0;%- [C1 States should not allow patents to restrict development -and use of]&] -[s0;%- [C1 software on general`-purpose computers, but in those that -do, we wish to]&] -[s0;%- [C1 avoid the special danger that patents applied to a free -program could]&] -[s0;%- [C1 make it effectively proprietary. To prevent this, the GPL -assures that]&] -[s0;%- [C1 patents cannot be used to render the program non`-free.]&] -[s0;C1%- &] -[s0;%- [C1 The precise terms and conditions for copying, distribution -and]&] -[s0;%- [C1 modification follow.]&] -[s0;C1%- &] -[s0;%- [C1 TERMS AND CONDITIONS]&] -[s0;C1%- &] -[s0;%- [C1 0. Definitions.]&] -[s0;C1%- &] -[s0;%- [C1 `"This License`" refers to version 3 of the GNU General -Public License.]&] -[s0;C1%- &] -[s0;%- [C1 `"Copyright`" also means copyright`-like laws that apply -to other kinds of]&] -[s0;%- [C1 works, such as semiconductor masks.]&] -[s0;C1%- &] -[s0;%- [C1 `"The Program`" refers to any copyrightable work licensed -under this]&] -[s0;%- [C1 License. Each licensee is addressed as `"you`". `"Licensees`" -and]&] -[s0;%- [C1 `"recipients`" may be individuals or organizations.]&] -[s0;C1%- &] -[s0;%- [C1 To `"modify`" a work means to copy from or adapt all or -part of the work]&] -[s0;%- [C1 in a fashion requiring copyright permission, other than -the making of an]&] -[s0;%- [C1 exact copy. The resulting work is called a `"modified version`" -of the]&] -[s0;%- [C1 earlier work or a work `"based on`" the earlier work.]&] -[s0;C1%- &] -[s0;%- [C1 A `"covered work`" means either the unmodified Program -or a work based]&] -[s0;%- [C1 on the Program.]&] -[s0;C1%- &] -[s0;%- [C1 To `"propagate`" a work means to do anything with it that, -without]&] -[s0;%- [C1 permission, would make you directly or secondarily liable -for]&] -[s0;%- [C1 infringement under applicable copyright law, except executing -it on a]&] -[s0;%- [C1 computer or modifying a private copy. Propagation includes -copying,]&] -[s0;%- [C1 distribution (with or without modification), making available -to the]&] -[s0;%- [C1 public, and in some countries other activities as well.]&] -[s0;C1%- &] -[s0;%- [C1 To `"convey`" a work means any kind of propagation that -enables other]&] -[s0;%- [C1 parties to make or receive copies. Mere interaction with -a user through]&] -[s0;%- [C1 a computer network, with no transfer of a copy, is not conveying.]&] -[s0;C1%- &] -[s0;%- [C1 An interactive user interface displays `"Appropriate Legal -Notices`"]&] -[s0;%- [C1 to the extent that it includes a convenient and prominently -visible]&] -[s0;%- [C1 feature that (1) displays an appropriate copyright notice, -and (2)]&] -[s0;%- [C1 tells the user that there is no warranty for the work (except -to the]&] -[s0;%- [C1 extent that warranties are provided), that licensees may -convey the]&] -[s0;%- [C1 work under this License, and how to view a copy of this -License. If]&] -[s0;%- [C1 the interface presents a list of user commands or options, -such as a]&] -[s0;%- [C1 menu, a prominent item in the list meets this criterion.]&] -[s0;C1%- &] -[s0;%- [C1 1. Source Code.]&] -[s0;C1%- &] -[s0;%- [C1 The `"source code`" for a work means the preferred form -of the work]&] -[s0;%- [C1 for making modifications to it. `"Object code`" means any -non`-source]&] -[s0;%- [C1 form of a work.]&] -[s0;C1%- &] -[s0;%- [C1 A `"Standard Interface`" means an interface that either -is an official]&] -[s0;%- [C1 standard defined by a recognized standards body, or, in -the case of]&] -[s0;%- [C1 interfaces specified for a particular programming language, -one that]&] -[s0;%- [C1 is widely used among developers working in that language.]&] -[s0;C1%- &] -[s0;%- [C1 The `"System Libraries`" of an executable work include -anything, other]&] -[s0;%- [C1 than the work as a whole, that (a) is included in the normal -form of]&] -[s0;%- [C1 packaging a Major Component, but which is not part of that -Major]&] -[s0;%- [C1 Component, and (b) serves only to enable use of the work -with that]&] -[s0;%- [C1 Major Component, or to implement a Standard Interface for -which an]&] -[s0;%- [C1 implementation is available to the public in source code -form. A]&] -[s0;%- [C1 `"Major Component`", in this context, means a major essential -component]&] -[s0;%- [C1 (kernel, window system, and so on) of the specific operating -system]&] -[s0;%- [C1 (if any) on which the executable work runs, or a compiler -used to]&] -[s0;%- [C1 produce the work, or an object code interpreter used to -run it.]&] -[s0;C1%- &] -[s0;%- [C1 The `"Corresponding Source`" for a work in object code -form means all]&] -[s0;%- [C1 the source code needed to generate, install, and (for an -executable]&] -[s0;%- [C1 work) run the object code and to modify the work, including -scripts to]&] -[s0;%- [C1 control those activities. However, it does not include -the work`'s]&] -[s0;%- [C1 System Libraries, or general`-purpose tools or generally -available free]&] -[s0;%- [C1 programs which are used unmodified in performing those activities -but]&] -[s0;%- [C1 which are not part of the work. For example, Corresponding -Source]&] -[s0;%- [C1 includes interface definition files associated with source -files for]&] -[s0;%- [C1 the work, and the source code for shared libraries and dynamically]&] -[s0;%- [C1 linked subprograms that the work is specifically designed -to require,]&] -[s0;%- [C1 such as by intimate data communication or control flow between -those]&] -[s0;%- [C1 subprograms and other parts of the work.]&] -[s0;C1%- &] -[s0;%- [C1 The Corresponding Source need not include anything that -users]&] -[s0;%- [C1 can regenerate automatically from other parts of the Corresponding]&] -[s0;%- [C1 Source.]&] -[s0;C1%- &] -[s0;%- [C1 The Corresponding Source for a work in source code form -is that]&] -[s0;%- [C1 same work.]&] -[s0;C1%- &] -[s0;%- [C1 2. Basic Permissions.]&] -[s0;C1%- &] -[s0;%- [C1 All rights granted under this License are granted for -the term of]&] -[s0;%- [C1 copyright on the Program, and are irrevocable provided the -stated]&] -[s0;%- [C1 conditions are met. This License explicitly affirms your -unlimited]&] -[s0;%- [C1 permission to run the unmodified Program. The output from -running a]&] -[s0;%- [C1 covered work is covered by this License only if the output, -given its]&] -[s0;%- [C1 content, constitutes a covered work. This License acknowledges -your]&] -[s0;%- [C1 rights of fair use or other equivalent, as provided by copyright -law.]&] -[s0;C1%- &] -[s0;%- [C1 You may make, run and propagate covered works that you -do not]&] -[s0;%- [C1 convey, without conditions so long as your license otherwise -remains]&] -[s0;%- [C1 in force. You may convey covered works to others for the -sole purpose]&] -[s0;%- [C1 of having them make modifications exclusively for you, or -provide you]&] -[s0;%- [C1 with facilities for running those works, provided that you -comply with]&] -[s0;%- [C1 the terms of this License in conveying all material for -which you do]&] -[s0;%- [C1 not control copyright. Those thus making or running the -covered works]&] -[s0;%- [C1 for you must do so exclusively on your behalf, under your -direction]&] -[s0;%- [C1 and control, on terms that prohibit them from making any -copies of]&] -[s0;%- [C1 your copyrighted material outside their relationship with -you.]&] -[s0;C1%- &] -[s0;%- [C1 Conveying under any other circumstances is permitted solely -under]&] -[s0;%- [C1 the conditions stated below. Sublicensing is not allowed; -section 10]&] -[s0;%- [C1 makes it unnecessary.]&] -[s0;C1%- &] -[s0;%- [C1 3. Protecting Users`' Legal Rights From Anti`-Circumvention -Law.]&] -[s0;C1%- &] -[s0;%- [C1 No covered work shall be deemed part of an effective technological]&] -[s0;%- [C1 measure under any applicable law fulfilling obligations -under article]&] -[s0;%- [C1 11 of the WIPO copyright treaty adopted on 20 December 1996, -or]&] -[s0;%- [C1 similar laws prohibiting or restricting circumvention of -such]&] -[s0;%- [C1 measures.]&] -[s0;C1%- &] -[s0;%- [C1 When you convey a covered work, you waive any legal power -to forbid]&] -[s0;%- [C1 circumvention of technological measures to the extent such -circumvention]&] -[s0;%- [C1 is effected by exercising rights under this License with -respect to]&] -[s0;%- [C1 the covered work, and you disclaim any intention to limit -operation or]&] -[s0;%- [C1 modification of the work as a means of enforcing, against -the work`'s]&] -[s0;%- [C1 users, your or third parties`' legal rights to forbid circumvention -of]&] -[s0;%- [C1 technological measures.]&] -[s0;C1%- &] -[s0;%- [C1 4. Conveying Verbatim Copies.]&] -[s0;C1%- &] -[s0;%- [C1 You may convey verbatim copies of the Program`'s source -code as you]&] -[s0;%- [C1 receive it, in any medium, provided that you conspicuously -and]&] -[s0;%- [C1 appropriately publish on each copy an appropriate copyright -notice;]&] -[s0;%- [C1 keep intact all notices stating that this License and any]&] -[s0;%- [C1 non`-permissive terms added in accord with section 7 apply -to the code;]&] -[s0;%- [C1 keep intact all notices of the absence of any warranty; -and give all]&] -[s0;%- [C1 recipients a copy of this License along with the Program.]&] -[s0;C1%- &] -[s0;%- [C1 You may charge any price or no price for each copy that -you convey,]&] -[s0;%- [C1 and you may offer support or warranty protection for a fee.]&] -[s0;C1%- &] -[s0;%- [C1 5. Conveying Modified Source Versions.]&] -[s0;C1%- &] -[s0;%- [C1 You may convey a work based on the Program, or the modifications -to]&] -[s0;%- [C1 produce it from the Program, in the form of source code -under the]&] -[s0;%- [C1 terms of section 4, provided that you also meet all of these -conditions:]&] -[s0;C1%- &] -[s0;%- [C1 a) The work must carry prominent notices stating that -you modified]&] -[s0;%- [C1 it, and giving a relevant date.]&] -[s0;C1%- &] -[s0;%- [C1 b) The work must carry prominent notices stating that -it is]&] -[s0;%- [C1 released under this License and any conditions added -under section]&] -[s0;%- [C1 7. This requirement modifies the requirement in section -4 to]&] -[s0;%- [C1 `"keep intact all notices`".]&] -[s0;C1%- &] -[s0;%- [C1 c) You must license the entire work, as a whole, under -this]&] -[s0;%- [C1 License to anyone who comes into possession of a copy. - This]&] -[s0;%- [C1 License will therefore apply, along with any applicable -section 7]&] -[s0;%- [C1 additional terms, to the whole of the work, and all -its parts,]&] -[s0;%- [C1 regardless of how they are packaged. This License gives -no]&] -[s0;%- [C1 permission to license the work in any other way, but -it does not]&] -[s0;%- [C1 invalidate such permission if you have separately received -it.]&] -[s0;C1%- &] -[s0;%- [C1 d) If the work has interactive user interfaces, each -must display]&] -[s0;%- [C1 Appropriate Legal Notices; however, if the Program has -interactive]&] -[s0;%- [C1 interfaces that do not display Appropriate Legal Notices, -your]&] -[s0;%- [C1 work need not make them do so.]&] -[s0;C1%- &] -[s0;%- [C1 A compilation of a covered work with other separate and -independent]&] -[s0;%- [C1 works, which are not by their nature extensions of the covered -work,]&] -[s0;%- [C1 and which are not combined with it such as to form a larger -program,]&] -[s0;%- [C1 in or on a volume of a storage or distribution medium, is -called an]&] -[s0;%- [C1 `"aggregate`" if the compilation and its resulting copyright -are not]&] -[s0;%- [C1 used to limit the access or legal rights of the compilation`'s -users]&] -[s0;%- [C1 beyond what the individual works permit. Inclusion of a -covered work]&] -[s0;%- [C1 in an aggregate does not cause this License to apply to -the other]&] -[s0;%- [C1 parts of the aggregate.]&] -[s0;C1%- &] -[s0;%- [C1 6. Conveying Non`-Source Forms.]&] -[s0;C1%- &] -[s0;%- [C1 You may convey a covered work in object code form under -the terms]&] -[s0;%- [C1 of sections 4 and 5, provided that you also convey the]&] -[s0;%- [C1 machine`-readable Corresponding Source under the terms of -this License,]&] -[s0;%- [C1 in one of these ways:]&] -[s0;C1%- &] -[s0;%- [C1 a) Convey the object code in, or embodied in, a physical -product]&] -[s0;%- [C1 (including a physical distribution medium), accompanied -by the]&] -[s0;%- [C1 Corresponding Source fixed on a durable physical medium]&] -[s0;%- [C1 customarily used for software interchange.]&] -[s0;C1%- &] -[s0;%- [C1 b) Convey the object code in, or embodied in, a physical -product]&] -[s0;%- [C1 (including a physical distribution medium), accompanied -by a]&] -[s0;%- [C1 written offer, valid for at least three years and valid -for as]&] -[s0;%- [C1 long as you offer spare parts or customer support for -that product]&] -[s0;%- [C1 model, to give anyone who possesses the object code -either (1) a]&] -[s0;%- [C1 copy of the Corresponding Source for all the software -in the]&] -[s0;%- [C1 product that is covered by this License, on a durable -physical]&] -[s0;%- [C1 medium customarily used for software interchange, for -a price no]&] -[s0;%- [C1 more than your reasonable cost of physically performing -this]&] -[s0;%- [C1 conveying of source, or (2) access to copy the]&] -[s0;%- [C1 Corresponding Source from a network server at no charge.]&] -[s0;C1%- &] -[s0;%- [C1 c) Convey individual copies of the object code with -a copy of the]&] -[s0;%- [C1 written offer to provide the Corresponding Source. -This]&] -[s0;%- [C1 alternative is allowed only occasionally and noncommercially, -and]&] -[s0;%- [C1 only if you received the object code with such an offer, -in accord]&] -[s0;%- [C1 with subsection 6b.]&] -[s0;C1%- &] -[s0;%- [C1 d) Convey the object code by offering access from a -designated]&] -[s0;%- [C1 place (gratis or for a charge), and offer equivalent -access to the]&] -[s0;%- [C1 Corresponding Source in the same way through the same -place at no]&] -[s0;%- [C1 further charge. You need not require recipients to -copy the]&] -[s0;%- [C1 Corresponding Source along with the object code. If -the place to]&] -[s0;%- [C1 copy the object code is a network server, the Corresponding -Source]&] -[s0;%- [C1 may be on a different server (operated by you or a third -party)]&] -[s0;%- [C1 that supports equivalent copying facilities, provided -you maintain]&] -[s0;%- [C1 clear directions next to the object code saying where -to find the]&] -[s0;%- [C1 Corresponding Source. Regardless of what server hosts -the]&] -[s0;%- [C1 Corresponding Source, you remain obligated to ensure -that it is]&] -[s0;%- [C1 available for as long as needed to satisfy these requirements.]&] -[s0;C1%- &] -[s0;%- [C1 e) Convey the object code using peer`-to`-peer transmission, -provided]&] -[s0;%- [C1 you inform other peers where the object code and Corresponding]&] -[s0;%- [C1 Source of the work are being offered to the general -public at no]&] -[s0;%- [C1 charge under subsection 6d.]&] -[s0;C1%- &] -[s0;%- [C1 A separable portion of the object code, whose source code -is excluded]&] -[s0;%- [C1 from the Corresponding Source as a System Library, need -not be]&] -[s0;%- [C1 included in conveying the object code work.]&] -[s0;C1%- &] -[s0;%- [C1 A `"User Product`" is either (1) a `"consumer product`", -which means any]&] -[s0;%- [C1 tangible personal property which is normally used for personal, -family,]&] -[s0;%- [C1 or household purposes, or (2) anything designed or sold -for incorporation]&] -[s0;%- [C1 into a dwelling. In determining whether a product is a -consumer product,]&] -[s0;%- [C1 doubtful cases shall be resolved in favor of coverage. -For a particular]&] -[s0;%- [C1 product received by a particular user, `"normally used`" -refers to a]&] -[s0;%- [C1 typical or common use of that class of product, regardless -of the status]&] -[s0;%- [C1 of the particular user or of the way in which the particular -user]&] -[s0;%- [C1 actually uses, or expects or is expected to use, the product. - A product]&] -[s0;%- [C1 is a consumer product regardless of whether the product -has substantial]&] -[s0;%- [C1 commercial, industrial or non`-consumer uses, unless such -uses represent]&] -[s0;%- [C1 the only significant mode of use of the product.]&] -[s0;C1%- &] -[s0;%- [C1 `"Installation Information`" for a User Product means -any methods,]&] -[s0;%- [C1 procedures, authorization keys, or other information required -to install]&] -[s0;%- [C1 and execute modified versions of a covered work in that -User Product from]&] -[s0;%- [C1 a modified version of its Corresponding Source. The information -must]&] -[s0;%- [C1 suffice to ensure that the continued functioning of the -modified object]&] -[s0;%- [C1 code is in no case prevented or interfered with solely because]&] -[s0;%- [C1 modification has been made.]&] -[s0;C1%- &] -[s0;%- [C1 If you convey an object code work under this section in, -or with, or]&] -[s0;%- [C1 specifically for use in, a User Product, and the conveying -occurs as]&] -[s0;%- [C1 part of a transaction in which the right of possession and -use of the]&] -[s0;%- [C1 User Product is transferred to the recipient in perpetuity -or for a]&] -[s0;%- [C1 fixed term (regardless of how the transaction is characterized), -the]&] -[s0;%- [C1 Corresponding Source conveyed under this section must be -accompanied]&] -[s0;%- [C1 by the Installation Information. But this requirement does -not apply]&] -[s0;%- [C1 if neither you nor any third party retains the ability to -install]&] -[s0;%- [C1 modified object code on the User Product (for example, the -work has]&] -[s0;%- [C1 been installed in ROM).]&] -[s0;C1%- &] -[s0;%- [C1 The requirement to provide Installation Information does -not include a]&] -[s0;%- [C1 requirement to continue to provide support service, warranty, -or updates]&] -[s0;%- [C1 for a work that has been modified or installed by the recipient, -or for]&] -[s0;%- [C1 the User Product in which it has been modified or installed. - Access to a]&] -[s0;%- [C1 network may be denied when the modification itself materially -and]&] -[s0;%- [C1 adversely affects the operation of the network or violates -the rules and]&] -[s0;%- [C1 protocols for communication across the network.]&] -[s0;C1%- &] -[s0;%- [C1 Corresponding Source conveyed, and Installation Information -provided,]&] -[s0;%- [C1 in accord with this section must be in a format that is -publicly]&] -[s0;%- [C1 documented (and with an implementation available to the -public in]&] -[s0;%- [C1 source code form), and must require no special password -or key for]&] -[s0;%- [C1 unpacking, reading or copying.]&] -[s0;C1%- &] -[s0;%- [C1 7. Additional Terms.]&] -[s0;C1%- &] -[s0;%- [C1 `"Additional permissions`" are terms that supplement the -terms of this]&] -[s0;%- [C1 License by making exceptions from one or more of its conditions.]&] -[s0;%- [C1 Additional permissions that are applicable to the entire -Program shall]&] -[s0;%- [C1 be treated as though they were included in this License, -to the extent]&] -[s0;%- [C1 that they are valid under applicable law. If additional -permissions]&] -[s0;%- [C1 apply only to part of the Program, that part may be used -separately]&] -[s0;%- [C1 under those permissions, but the entire Program remains -governed by]&] -[s0;%- [C1 this License without regard to the additional permissions.]&] -[s0;C1%- &] -[s0;%- [C1 When you convey a copy of a covered work, you may at your -option]&] -[s0;%- [C1 remove any additional permissions from that copy, or from -any part of]&] -[s0;%- [C1 it. (Additional permissions may be written to require their -own]&] -[s0;%- [C1 removal in certain cases when you modify the work.) You -may place]&] -[s0;%- [C1 additional permissions on material, added by you to a covered -work,]&] -[s0;%- [C1 for which you have or can give appropriate copyright permission.]&] -[s0;C1%- &] -[s0;%- [C1 Notwithstanding any other provision of this License, for -material you]&] -[s0;%- [C1 add to a covered work, you may (if authorized by the copyright -holders of]&] -[s0;%- [C1 that material) supplement the terms of this License with -terms:]&] -[s0;C1%- &] -[s0;%- [C1 a) Disclaiming warranty or limiting liability differently -from the]&] -[s0;%- [C1 terms of sections 15 and 16 of this License; or]&] -[s0;C1%- &] -[s0;%- [C1 b) Requiring preservation of specified reasonable legal -notices or]&] -[s0;%- [C1 author attributions in that material or in the Appropriate -Legal]&] -[s0;%- [C1 Notices displayed by works containing it; or]&] -[s0;C1%- &] -[s0;%- [C1 c) Prohibiting misrepresentation of the origin of that -material, or]&] -[s0;%- [C1 requiring that modified versions of such material be -marked in]&] -[s0;%- [C1 reasonable ways as different from the original version; -or]&] -[s0;C1%- &] -[s0;%- [C1 d) Limiting the use for publicity purposes of names -of licensors or]&] -[s0;%- [C1 authors of the material; or]&] -[s0;C1%- &] -[s0;%- [C1 e) Declining to grant rights under trademark law for -use of some]&] -[s0;%- [C1 trade names, trademarks, or service marks; or]&] -[s0;C1%- &] -[s0;%- [C1 f) Requiring indemnification of licensors and authors -of that]&] -[s0;%- [C1 material by anyone who conveys the material (or modified -versions of]&] -[s0;%- [C1 it) with contractual assumptions of liability to the -recipient, for]&] -[s0;%- [C1 any liability that these contractual assumptions directly -impose on]&] -[s0;%- [C1 those licensors and authors.]&] -[s0;C1%- &] -[s0;%- [C1 All other non`-permissive additional terms are considered -`"further]&] -[s0;%- [C1 restrictions`" within the meaning of section 10. If the -Program as you]&] -[s0;%- [C1 received it, or any part of it, contains a notice stating -that it is]&] -[s0;%- [C1 governed by this License along with a term that is a further]&] -[s0;%- [C1 restriction, you may remove that term. If a license document -contains]&] -[s0;%- [C1 a further restriction but permits relicensing or conveying -under this]&] -[s0;%- [C1 License, you may add to a covered work material governed -by the terms]&] -[s0;%- [C1 of that license document, provided that the further restriction -does]&] -[s0;%- [C1 not survive such relicensing or conveying.]&] -[s0;C1%- &] -[s0;%- [C1 If you add terms to a covered work in accord with this -section, you]&] -[s0;%- [C1 must place, in the relevant source files, a statement of -the]&] -[s0;%- [C1 additional terms that apply to those files, or a notice -indicating]&] -[s0;%- [C1 where to find the applicable terms.]&] -[s0;C1%- &] -[s0;%- [C1 Additional terms, permissive or non`-permissive, may be -stated in the]&] -[s0;%- [C1 form of a separately written license, or stated as exceptions;]&] -[s0;%- [C1 the above requirements apply either way.]&] -[s0;C1%- &] -[s0;%- [C1 8. Termination.]&] -[s0;C1%- &] -[s0;%- [C1 You may not propagate or modify a covered work except -as expressly]&] -[s0;%- [C1 provided under this License. Any attempt otherwise to propagate -or]&] -[s0;%- [C1 modify it is void, and will automatically terminate your -rights under]&] -[s0;%- [C1 this License (including any patent licenses granted under -the third]&] -[s0;%- [C1 paragraph of section 11).]&] -[s0;C1%- &] -[s0;%- [C1 However, if you cease all violation of this License, then -your]&] -[s0;%- [C1 license from a particular copyright holder is reinstated -(a)]&] -[s0;%- [C1 provisionally, unless and until the copyright holder explicitly -and]&] -[s0;%- [C1 finally terminates your license, and (b) permanently, if -the copyright]&] -[s0;%- [C1 holder fails to notify you of the violation by some reasonable -means]&] -[s0;%- [C1 prior to 60 days after the cessation.]&] -[s0;C1%- &] -[s0;%- [C1 Moreover, your license from a particular copyright holder -is]&] -[s0;%- [C1 reinstated permanently if the copyright holder notifies -you of the]&] -[s0;%- [C1 violation by some reasonable means, this is the first time -you have]&] -[s0;%- [C1 received notice of violation of this License (for any work) -from that]&] -[s0;%- [C1 copyright holder, and you cure the violation prior to 30 -days after]&] -[s0;%- [C1 your receipt of the notice.]&] -[s0;C1%- &] -[s0;%- [C1 Termination of your rights under this section does not -terminate the]&] -[s0;%- [C1 licenses of parties who have received copies or rights from -you under]&] -[s0;%- [C1 this License. If your rights have been terminated and not -permanently]&] -[s0;%- [C1 reinstated, you do not qualify to receive new licenses for -the same]&] -[s0;%- [C1 material under section 10.]&] -[s0;C1%- &] -[s0;%- [C1 9. Acceptance Not Required for Having Copies.]&] -[s0;C1%- &] -[s0;%- [C1 You are not required to accept this License in order to -receive or]&] -[s0;%- [C1 run a copy of the Program. Ancillary propagation of a covered -work]&] -[s0;%- [C1 occurring solely as a consequence of using peer`-to`-peer -transmission]&] -[s0;%- [C1 to receive a copy likewise does not require acceptance. - However,]&] -[s0;%- [C1 nothing other than this License grants you permission to -propagate or]&] -[s0;%- [C1 modify any covered work. These actions infringe copyright -if you do]&] -[s0;%- [C1 not accept this License. Therefore, by modifying or propagating -a]&] -[s0;%- [C1 covered work, you indicate your acceptance of this License -to do so.]&] -[s0;C1%- &] -[s0;%- [C1 10. Automatic Licensing of Downstream Recipients.]&] -[s0;C1%- &] -[s0;%- [C1 Each time you convey a covered work, the recipient automatically]&] -[s0;%- [C1 receives a license from the original licensors, to run, -modify and]&] -[s0;%- [C1 propagate that work, subject to this License. You are not -responsible]&] -[s0;%- [C1 for enforcing compliance by third parties with this License.]&] -[s0;C1%- &] -[s0;%- [C1 An `"entity transaction`" is a transaction transferring -control of an]&] -[s0;%- [C1 organization, or substantially all assets of one, or subdividing -an]&] -[s0;%- [C1 organization, or merging organizations. If propagation -of a covered]&] -[s0;%- [C1 work results from an entity transaction, each party to that]&] -[s0;%- [C1 transaction who receives a copy of the work also receives -whatever]&] -[s0;%- [C1 licenses to the work the party`'s predecessor in interest -had or could]&] -[s0;%- [C1 give under the previous paragraph, plus a right to possession -of the]&] -[s0;%- [C1 Corresponding Source of the work from the predecessor in -interest, if]&] -[s0;%- [C1 the predecessor has it or can get it with reasonable efforts.]&] -[s0;C1%- &] -[s0;%- [C1 You may not impose any further restrictions on the exercise -of the]&] -[s0;%- [C1 rights granted or affirmed under this License. For example, -you may]&] -[s0;%- [C1 not impose a license fee, royalty, or other charge for exercise -of]&] -[s0;%- [C1 rights granted under this License, and you may not initiate -litigation]&] -[s0;%- [C1 (including a cross`-claim or counterclaim in a lawsuit) -alleging that]&] -[s0;%- [C1 any patent claim is infringed by making, using, selling, -offering for]&] -[s0;%- [C1 sale, or importing the Program or any portion of it.]&] -[s0;C1%- &] -[s0;%- [C1 11. Patents.]&] -[s0;C1%- &] -[s0;%- [C1 A `"contributor`" is a copyright holder who authorizes -use under this]&] -[s0;%- [C1 License of the Program or a work on which the Program is -based. The]&] -[s0;%- [C1 work thus licensed is called the contributor`'s `"contributor -version`".]&] -[s0;C1%- &] -[s0;%- [C1 A contributor`'s `"essential patent claims`" are all patent -claims]&] -[s0;%- [C1 owned or controlled by the contributor, whether already -acquired or]&] -[s0;%- [C1 hereafter acquired, that would be infringed by some manner, -permitted]&] -[s0;%- [C1 by this License, of making, using, or selling its contributor -version,]&] -[s0;%- [C1 but do not include claims that would be infringed only as -a]&] -[s0;%- [C1 consequence of further modification of the contributor version. - For]&] -[s0;%- [C1 purposes of this definition, `"control`" includes the right -to grant]&] -[s0;%- [C1 patent sublicenses in a manner consistent with the requirements -of]&] -[s0;%- [C1 this License.]&] -[s0;C1%- &] -[s0;%- [C1 Each contributor grants you a non`-exclusive, worldwide, -royalty`-free]&] -[s0;%- [C1 patent license under the contributor`'s essential patent -claims, to]&] -[s0;%- [C1 make, use, sell, offer for sale, import and otherwise run, -modify and]&] -[s0;%- [C1 propagate the contents of its contributor version.]&] -[s0;C1%- &] -[s0;%- [C1 In the following three paragraphs, a `"patent license`" -is any express]&] -[s0;%- [C1 agreement or commitment, however denominated, not to enforce -a patent]&] -[s0;%- [C1 (such as an express permission to practice a patent or covenant -not to]&] -[s0;%- [C1 sue for patent infringement). To `"grant`" such a patent -license to a]&] -[s0;%- [C1 party means to make such an agreement or commitment not -to enforce a]&] -[s0;%- [C1 patent against the party.]&] -[s0;C1%- &] -[s0;%- [C1 If you convey a covered work, knowingly relying on a patent -license,]&] -[s0;%- [C1 and the Corresponding Source of the work is not available -for anyone]&] -[s0;%- [C1 to copy, free of charge and under the terms of this License, -through a]&] -[s0;%- [C1 publicly available network server or other readily accessible -means,]&] -[s0;%- [C1 then you must either (1) cause the Corresponding Source -to be so]&] -[s0;%- [C1 available, or (2) arrange to deprive yourself of the benefit -of the]&] -[s0;%- [C1 patent license for this particular work, or (3) arrange, -in a manner]&] -[s0;%- [C1 consistent with the requirements of this License, to extend -the patent]&] -[s0;%- [C1 license to downstream recipients. `"Knowingly relying`" -means you have]&] -[s0;%- [C1 actual knowledge that, but for the patent license, your -conveying the]&] -[s0;%- [C1 covered work in a country, or your recipient`'s use of the -covered work]&] -[s0;%- [C1 in a country, would infringe one or more identifiable patents -in that]&] -[s0;%- [C1 country that you have reason to believe are valid.]&] -[s0;C1%- &] -[s0;%- [C1 If, pursuant to or in connection with a single transaction -or]&] -[s0;%- [C1 arrangement, you convey, or propagate by procuring conveyance -of, a]&] -[s0;%- [C1 covered work, and grant a patent license to some of the -parties]&] -[s0;%- [C1 receiving the covered work authorizing them to use, propagate, -modify]&] -[s0;%- [C1 or convey a specific copy of the covered work, then the -patent license]&] -[s0;%- [C1 you grant is automatically extended to all recipients of -the covered]&] -[s0;%- [C1 work and works based on it.]&] -[s0;C1%- &] -[s0;%- [C1 A patent license is `"discriminatory`" if it does not -include within]&] -[s0;%- [C1 the scope of its coverage, prohibits the exercise of, or -is]&] -[s0;%- [C1 conditioned on the non`-exercise of one or more of the rights -that are]&] -[s0;%- [C1 specifically granted under this License. You may not convey -a covered]&] -[s0;%- [C1 work if you are a party to an arrangement with a third party -that is]&] -[s0;%- [C1 in the business of distributing software, under which you -make payment]&] -[s0;%- [C1 to the third party based on the extent of your activity -of conveying]&] -[s0;%- [C1 the work, and under which the third party grants, to any -of the]&] -[s0;%- [C1 parties who would receive the covered work from you, a discriminatory]&] -[s0;%- [C1 patent license (a) in connection with copies of the covered -work]&] -[s0;%- [C1 conveyed by you (or copies made from those copies), or (b) -primarily]&] -[s0;%- [C1 for and in connection with specific products or compilations -that]&] -[s0;%- [C1 contain the covered work, unless you entered into that arrangement,]&] -[s0;%- [C1 or that patent license was granted, prior to 28 March 2007.]&] -[s0;C1%- &] -[s0;%- [C1 Nothing in this License shall be construed as excluding -or limiting]&] -[s0;%- [C1 any implied license or other defenses to infringement that -may]&] -[s0;%- [C1 otherwise be available to you under applicable patent law.]&] -[s0;C1%- &] -[s0;%- [C1 12. No Surrender of Others`' Freedom.]&] -[s0;C1%- &] -[s0;%- [C1 If conditions are imposed on you (whether by court order, -agreement or]&] -[s0;%- [C1 otherwise) that contradict the conditions of this License, -they do not]&] -[s0;%- [C1 excuse you from the conditions of this License. If you -cannot convey a]&] -[s0;%- [C1 covered work so as to satisfy simultaneously your obligations -under this]&] -[s0;%- [C1 License and any other pertinent obligations, then as a consequence -you may]&] -[s0;%- [C1 not convey it at all. For example, if you agree to terms -that obligate you]&] -[s0;%- [C1 to collect a royalty for further conveying from those to -whom you convey]&] -[s0;%- [C1 the Program, the only way you could satisfy both those terms -and this]&] -[s0;%- [C1 License would be to refrain entirely from conveying the -Program.]&] -[s0;C1%- &] -[s0;%- [C1 13. Use with the GNU Affero General Public License.]&] -[s0;C1%- &] -[s0;%- [C1 Notwithstanding any other provision of this License, you -have]&] -[s0;%- [C1 permission to link or combine any covered work with a work -licensed]&] -[s0;%- [C1 under version 3 of the GNU Affero General Public License -into a single]&] -[s0;%- [C1 combined work, and to convey the resulting work. The terms -of this]&] -[s0;%- [C1 License will continue to apply to the part which is the -covered work,]&] -[s0;%- [C1 but the special requirements of the GNU Affero General Public -License,]&] -[s0;%- [C1 section 13, concerning interaction through a network will -apply to the]&] -[s0;%- [C1 combination as such.]&] -[s0;C1%- &] -[s0;%- [C1 14. Revised Versions of this License.]&] -[s0;C1%- &] -[s0;%- [C1 The Free Software Foundation may publish revised and/or -new versions of]&] -[s0;%- [C1 the GNU General Public License from time to time. Such -new versions will]&] -[s0;%- [C1 be similar in spirit to the present version, but may differ -in detail to]&] -[s0;%- [C1 address new problems or concerns.]&] -[s0;C1%- &] -[s0;%- [C1 Each version is given a distinguishing version number. - If the]&] -[s0;%- [C1 Program specifies that a certain numbered version of the -GNU General]&] -[s0;%- [C1 Public License `"or any later version`" applies to it, you -have the]&] -[s0;%- [C1 option of following the terms and conditions either of that -numbered]&] -[s0;%- [C1 version or of any later version published by the Free Software]&] -[s0;%- [C1 Foundation. If the Program does not specify a version number -of the]&] -[s0;%- [C1 GNU General Public License, you may choose any version ever -published]&] -[s0;%- [C1 by the Free Software Foundation.]&] -[s0;C1%- &] -[s0;%- [C1 If the Program specifies that a proxy can decide which -future]&] -[s0;%- [C1 versions of the GNU General Public License can be used, -that proxy`'s]&] -[s0;%- [C1 public statement of acceptance of a version permanently -authorizes you]&] -[s0;%- [C1 to choose that version for the Program.]&] -[s0;C1%- &] -[s0;%- [C1 Later license versions may give you additional or different]&] -[s0;%- [C1 permissions. However, no additional obligations are imposed -on any]&] -[s0;%- [C1 author or copyright holder as a result of your choosing -to follow a]&] -[s0;%- [C1 later version.]&] -[s0;C1%- &] -[s0;%- [C1 15. Disclaimer of Warranty.]&] -[s0;C1%- &] -[s0;%- [C1 THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED -BY]&] -[s0;%- [C1 APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING -THE COPYRIGHT]&] -[s0;%- [C1 HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM `"AS IS`" -WITHOUT WARRANTY]&] -[s0;%- [C1 OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT -NOT LIMITED TO,]&] -[s0;%- [C1 THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR]&] -[s0;%- [C1 PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE -OF THE PROGRAM]&] -[s0;%- [C1 IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME -THE COST OF]&] -[s0;%- [C1 ALL NECESSARY SERVICING, REPAIR OR CORRECTION.]&] -[s0;C1%- &] -[s0;%- [C1 16. Limitation of Liability.]&] -[s0;C1%- &] -[s0;%- [C1 IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED -TO IN WRITING]&] -[s0;%- [C1 WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES -AND/OR CONVEYS]&] -[s0;%- [C1 THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY]&] -[s0;%- [C1 GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE]&] -[s0;%- [C1 USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF]&] -[s0;%- [C1 DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED -BY YOU OR THIRD]&] -[s0;%- [C1 PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY -OTHER PROGRAMS),]&] -[s0;%- [C1 EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF]&] -[s0;%- [C1 SUCH DAMAGES.]&] -[s0;C1%- &] -[s0;%- [C1 17. Interpretation of Sections 15 and 16.]&] -[s0;C1%- &] -[s0;%- [C1 If the disclaimer of warranty and limitation of liability -provided]&] -[s0;%- [C1 above cannot be given local legal effect according to their -terms,]&] -[s0;%- [C1 reviewing courts shall apply local law that most closely -approximates]&] -[s0;%- [C1 an absolute waiver of all civil liability in connection -with the]&] -[s0;%- [C1 Program, unless a warranty or assumption of liability accompanies -a]&] -[s0;%- [C1 copy of the Program in return for a fee.]&] -[s0;C1%- &] -[s0;%- [C1 END OF TERMS AND CONDITIONS]&] -[s0;C1%- &] -[s0;%- [C1 How to Apply These Terms to Your New Programs]&] -[s0;C1%- &] -[s0;%- [C1 If you develop a new program, and you want it to be of -the greatest]&] -[s0;%- [C1 possible use to the public, the best way to achieve this -is to make it]&] -[s0;%- [C1 free software which everyone can redistribute and change -under these terms.]&] -[s0;C1%- &] -[s0;%- [C1 To do so, attach the following notices to the program. - It is safest]&] -[s0;%- [C1 to attach them to the start of each source file to most -effectively]&] -[s0;%- [C1 state the exclusion of warranty; and each file should have -at least]&] -[s0;%- [C1 the `"copyright`" line and a pointer to where the full notice -is found.]&] -[s0;C1%- &] -[s0;%- [C1 ]&] -[s0;%- [C1 Copyright (C) ]&] -[s0;C1%- &] -[s0;%- [C1 This program is free software: you can redistribute it -and/or modify]&] -[s0;%- [C1 it under the terms of the GNU General Public License -as published by]&] -[s0;%- [C1 the Free Software Foundation, either version 3 of the -License, or]&] -[s0;%- [C1 (at your option) any later version.]&] -[s0;C1%- &] -[s0;%- [C1 This program is distributed in the hope that it will -be useful,]&] -[s0;%- [C1 but WITHOUT ANY WARRANTY; without even the implied warranty -of]&] -[s0;%- [C1 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the]&] -[s0;%- [C1 GNU General Public License for more details.]&] -[s0;C1%- &] -[s0;%- [C1 You should have received a copy of the GNU General Public -License]&] -[s0;%- [C1 along with this program. If not, see .]&] -[s0;C1%- &] -[s0;%- [C1 Also add information on how to contact you by electronic -and paper mail.]&] -[s0;C1%- &] -[s0;%- [C1 If the program does terminal interaction, make it output -a short]&] -[s0;%- [C1 notice like this when it starts in an interactive mode:]&] -[s0;C1%- &] -[s0;%- [C1 Copyright (C) ]&] -[s0;%- [C1 This program comes with ABSOLUTELY NO WARRANTY; for -details type ``show w`'.]&] -[s0;%- [C1 This is free software, and you are welcome to redistribute -it]&] -[s0;%- [C1 under certain conditions; type ``show c`' for details.]&] -[s0;C1%- &] -[s0;%- [C1 The hypothetical commands ``show w`' and ``show c`' should -show the appropriate]&] -[s0;%- [C1 parts of the General Public License. Of course, your program`'s -commands]&] -[s0;%- [C1 might be different; for a GUI interface, you would use an -`"about box`".]&] -[s0;C1%- &] -[s0;%- [C1 You should also get your employer (if you work as a programmer) -or school,]&] -[s0;%- [C1 if any, to sign a `"copyright disclaimer`" for the program, -if necessary.]&] -[s0;%- [C1 For more information on this, and how to apply and follow -the GNU GPL, see]&] -[s0;%- [C1 .]&] -[s0;C1%- &] -[s0;%- [C1 The GNU General Public License does not permit incorporating -your program]&] -[s0;%- [C1 into proprietary programs. If your program is a subroutine -library, you]&] -[s0;%- [C1 may consider it more useful to permit linking proprietary -applications with]&] -[s0;%- [C1 the library. If this is what you want to do, use the GNU -Lesser General]&] -[s0;%- [C1 Public License instead of this License. But first, please -read]&] -[s0;%- [C1 .]&] -[s0;C1%- ]}}&] -[s0;C1%- &] +topic "Copyright © 1999-2017 Ultimate++ team"; +[ $$0,0#00000000000000000000000000000000:Default] +[{_}%EN-US +[s0;*IGetLocalDir;+117 &] +[s0; [*+117 Copyright © 1998, 2017 Ultimate`+`+ team]&] +[s0;i704;O9; Authors:[+117 -|][*+117 Mirek_Fídler, Koldo_Ramirez,][+117 +][*+117 Tomáš_Rylek, ][*^http`:`/`/www`.digitalsoftware`.pl^+117 Daniel_Kos][* , +][*+117 Massimo Del Fedele, ][*^https`:`/`/www`.linkedin`.com`/in`/zbigniewrebacz^+117 Z +bigniew RÄ™bacz]&] +[s0;i704;O9; Contributors:[+117 -|][* Sandor_Hojtsy, Zsolt_Debre, Guido_Schimmels, +Augusto_Roman, Arijus Bernotas, Michael_Albert , Marcus_Mauhart, +][*^http`:`/`/nullptr`.nl`/^ Jan_Wilmans][* , Graeme_Prentice, Victor_Berchet, +Ivica_Puljic, Mathiass_Sund, Andrew_Barilla, Michal_Mierzejewski, +Damien_Porquet, Werner_Wenzel, ][%-*^http`:`/`/www`.fallingdutch`.de`/^ Bas_Wegh][* , + Fabio_Busetto, Michal_PekaÅ™, Darrin_Scott, Damien_Porquet, +James Thomas, ][*^http`:`/`/h4xz`.blogspot`.com^ Sritharan Sivaguru,][* +Artur Bać, Ralf Schneider, Pavel Ostapenko, Raul Ionitoiu, Norbert +Hofer, Tomasz Pajak, Benoit Cousson, Trey Van Riper, Peter Berger, +Sergey Nikitin, Irenkov Alexander, Gabriel Schmotzer, Domingo +Alvarez Duarte, Andrei Cosma, Tom Olá, George Brink, Zbigniew +Czapiga, Konstantin Hartwich, Didier Quenouillere, Anthony Paul, +Kovalev Sergey, Martin Schut, Ion Lupascu, Frank De prins, Jeff +Humphreys, Lucas Harsze, Martin Schut, ][*^http`:`/`/www`.mimuw`.edu`.pl`/`~pan`/^ J +akub Pawlewicz][* , Navin Vidhani, Steffen Brummer, Luis Rodriguez, +Rakibul Islam, Nahar Pengatteeri, Ralph Klautke, Victor Picheev, +Navadvipa Chandra das, Radek MalÄic, Amrein`-Marie Christophe, +Abdelghani Omari]&] +[s0;i704;O9; Translators:-|[* Mauro_Bottizzo, Miklós_Somogyi, Arlen_Albert, +Ivica_Puljic, Richard_Gill, Werner_Wenzel, Tom Olá, Sergey Nikitin, +Koldo Ramirez, Gabriel Schmotzer, Andrei Catalin, Massimo Del +Fedele, Jan Dolinár, Zsolt Debre, Anton Aleshkevich, Lionel +Orry, é»ƒä¿Šé” (Kasome), phirox, Didier, è°¢å¨æ‰¬ (Bonami), +Frederico Rodrigues, Ruben Proost, Willem Kroes]&] +[s0;i704;O9; PR `& SEO:-|[* Pavel_Stratil]&] +[s0;i704;O9; U`+`+ Logo:[+117 -|][* Pavel Ostapenko], [* Robert_Vroemisse, +]&] +[s0;+108 &] +[ {{3333:6667 [s0; Ultimate`+`+ team email] +:: [s0; [^mailto`:upp`@ntllib`.org^ upp`@ntllib.org]] +:: [s0; Ultimate`+`+ home page] +:: [s0; [^http`:`/`/www`.ultimatepp`.org`/^ http://www.ultimatepp.org]] +:: [s0; Ultimate`+`+ forum] +:: [s0; [^http`:`/`/www`.ultimatepp`.org`/forums^ http://www.ultimatepp.org/forums]]}}&] +[s0;+108 &] +[s0;+92 &] +[s0; [+92 Ultimate`+`+ includes sources of following libraries and +resources:]&] +[ {{2168:7832h1;@(204) [s0; [+75 Library]] +:: [s0; [+75 Authors]] +::^@2 [s0; [+75 zlib]] +::= [s0; [+75 Jean`-loup Gailly and Mark Adler]] +::^ [s0; [+75 IJG JPEG library]] +::= [s0; [+75 Tom Lane, Philip Gladstone, Jim Boucher, Lee Crocker, Julian +Minguillon, Luis Ortiz, George Phillips, Davide Rossi, Guido +Vollbeding, Ge`' Weijers, and other members of the Independent +JPEG Group]] +::^ [s0; [+75 bzip2]] +::= [s0; [+75 Julian Seward]] +::^ [s0; [+75 ndisasm]] +::= [s0; [+75 Julian Hall, Simon Tatham, Nelson Rush, Frank Kotler, Stephen +Silver, John Coffman, Yuri Zaporogets, H. Peter Anvin, John Fine, +Kendall Bennet, Gary Clark, Andrew Crabtree, Rafael R. Sevilla, +Jaime Tejedor, James Seter, Edward J. Beroset, Stanislav Karchebny, +Debbie Wiles, Trevor Woerner, Michael K. Ter Louw, Martin Wawro, +Alexei Frounze]] +::^ [s0; [+75 PNG]] +::= [s0; [+75 Glenn Randers`-Pehrson, Andreas Dilger, Guy Eric Schalnat]] +::^ [s0; [+75 Sqlite]] +::= [s0; [+75 D. Richard Hipp]] +::^ [s0; [+75 tif]] +::= [s0; [+75 Sam Leffler, Silicon Graphics, Inc.]] +::^ [s0; [+75 SILK icon set]] +::= [s0; [^http`:`/`/www`.famfamfam`.com`/lab`/icons`/silk`/^+75 Mark James]]}}&] +[s0;+92 &] +[s0; [+92 All those sources are contained in `"plugin`" directory. +Refer there for licenses, however all libraries have BSD`-compatible +license.]&] +[s0;+108 &] +[s0; [+108 Ultimate`+`+ has BSD license:]&] +[ {{10000@(254.255.232) [s0; [0 Copyright (c) 1998, 2014, The U`+`+ Project]&] +[s0; [0 All rights reserved.]&] +[s0;0 &] +[s0; [0 Redistribution and use in source and binary forms, with or +without modification, are permitted provided that the following +conditions are met:]&] +[s0;0 &] +[s0; [0 1. Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer.]&] +[s0;0 &] +[s0; [0 2. Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution.]&] +[s0;0 &] +[s0; [0 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +`"AS IS`" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT +NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT +SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.]]}}&] +[s0;+108 &] +[s0;2%- &] +[s0;%- Package [* plugin/astyle] has following licence notice:&] +[ {{10000@(255.255.192) [s0;%- [C1 The `"Artistic Style`" project, including all files needed +to]&] +[s0;%- [C1 compile it, is free software; you can redistribute it and/or]&] +[s0;%- [C1 modify it under the terms of the GNU Lesser General Public]&] +[s0;%- [C1 License as published by the Free Software Foundation; either]&] +[s0;%- [C1 version 2.1 of the License, or (at your option) any later]&] +[s0;%- [C1 version.]&] +[s0;C1%- &] +[s0;%- [C1 This program is distributed in the hope that it will be +useful,]&] +[s0;%- [C1 but WITHOUT ANY WARRANTY; without even the implied warranty +of]&] +[s0;%- [C1 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See +the]&] +[s0;%- [C1 GNU Lesser General Public License for more details.]&] +[s0;C1%- &] +[s0;%- [C1 You should have received a copy of the GNU Lesser General +Public]&] +[s0;%- [C1 License along with this project; if not, write to the]&] +[s0;%- [C1 Free Software Foundation, Inc., 51 Franklin Street, Fifth +Floor,]&] +[s0;%- [C1 Boston, MA 02110`-1301, USA.]&] +[s0;C1%- ]}}&] +[s0;%- &] +[s0;%- Package [* plugin/box2d] has following licence notice:&] +[ {{10000@(255.255.192) [s0;%- [C1 Copyright (c) 2006`-2009 Erin Catto http://www.gphysics.com]&] +[s0;C1%- &] +[s0;%- [C1 This software is provided `'as`-is`', without any express +or implied]&] +[s0;%- [C1 warranty. In no event will the authors be held liable for +any damages]&] +[s0;%- [C1 arising from the use of this software.]&] +[s0;%- [C1 Permission is granted to anyone to use this software for +any purpose,]&] +[s0;%- [C1 including commercial applications, and to alter it and redistribute +it]&] +[s0;%- [C1 freely, subject to the following restrictions:]&] +[s0;%- [C1 1. The origin of this software must not be misrepresented; +you must not]&] +[s0;%- [C1 claim that you wrote the original software. If you use this +software]&] +[s0;%- [C1 in a product, an acknowledgment in the product documentation +would be]&] +[s0;%- [C1 appreciated but is not required.]&] +[s0;%- [C1 2. Altered source versions must be plainly marked as such, +and must not be]&] +[s0;%- [C1 misrepresented as being the original software.]&] +[s0;%- [C1 3. This notice may not be removed or altered from any source +distribution.]&] +[s0;C1%- ]}}&] +[s0;%- &] +[s0;%- Package [* plugin/bz2] has following licence notice:&] +[ {{10000@(255.255.192) [s0;%- [C1 This program, `"bzip2`" and associated library `"libbzip2`", +are]&] +[s0;%- [C1 copyright (C) 1996`-2002 Julian R Seward. All rights reserved.]&] +[s0;C1%- &] +[s0;%- [C1 Redistribution and use in source and binary forms, with +or without]&] +[s0;%- [C1 modification, are permitted provided that the following +conditions]&] +[s0;%- [C1 are met:]&] +[s0;C1%- &] +[s0;%- [C1 1. Redistributions of source code must retain the above +copyright]&] +[s0;%- [C1 notice, this list of conditions and the following disclaimer.]&] +[s0;C1%- &] +[s0;%- [C1 2. The origin of this software must not be misrepresented; +you must]&] +[s0;%- [C1 not claim that you wrote the original software. If you +use this]&] +[s0;%- [C1 software in a product, an acknowledgment in the product]&] +[s0;%- [C1 documentation would be appreciated but is not required.]&] +[s0;C1%- &] +[s0;%- [C1 3. Altered source versions must be plainly marked as such, +and must]&] +[s0;%- [C1 not be misrepresented as being the original software.]&] +[s0;C1%- &] +[s0;%- [C1 4. The name of the author may not be used to endorse or +promote]&] +[s0;%- [C1 products derived from this software without specific +prior written]&] +[s0;%- [C1 permission.]&] +[s0;C1%- &] +[s0;%- [C1 THIS SOFTWARE IS PROVIDED BY THE AUTHOR ````AS IS`'`' AND +ANY EXPRESS]&] +[s0;%- [C1 OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED]&] +[s0;%- [C1 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE]&] +[s0;%- [C1 ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE +FOR ANY]&] +[s0;%- [C1 DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL]&] +[s0;%- [C1 DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE]&] +[s0;%- [C1 GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS]&] +[s0;%- [C1 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,]&] +[s0;%- [C1 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING]&] +[s0;%- [C1 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS]&] +[s0;%- [C1 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.]&] +[s0;C1%- &] +[s0;%- [C1 Julian Seward, Cambridge, UK.]&] +[s0;%- [C1 jseward`@acm.org]&] +[s0;%- [C1 bzip2/libbzip2 version 1.0.2 of 30 December 2001]&] +[s0;C1%- ]}}&] +[s0;%- &] +[s0;%- Package [* plugin/DroidFonts] has following licence notice:&] +[ {{10000@(255.255.192) [s0;%- [C1 Licensed under the Apache License, Version 2.0 (the `"License`");]&] +[s0;%- [C1 you may not use this file except in compliance with the +License.]&] +[s0;%- [C1 You may obtain a copy of the License at]&] +[s0;C1%- &] +[s0;%- [C1 http://www.apache.org/licenses/LICENSE`-2.0]&] +[s0;C1%- &] +[s0;%- [C1 Unless required by applicable law or agreed to in writing, +software]&] +[s0;%- [C1 distributed under the License is distributed on an `"AS +IS`" BASIS,]&] +[s0;%- [C1 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express +or implied.]&] +[s0;%- [C1 See the License for the specific language governing permissions +and]&] +[s0;%- [C1 limitations under the License.]]}}&] +[s0;%- &] +[s0;%- Package [* plugin/Eigen] has following licence notice:&] +[ {{10000@(255.255.192) [s0;%- [C1 Copyright (C) 2008 Gael Guennebaud ]&] +[s0;C1%- &] +[s0;%- [C1 This Source Code Form is subject to the terms of the Mozilla]&] +[s0;%- [C1 Public License v. 2.0. If a copy of the MPL was not distributed]&] +[s0;%- [C1 with this file, You can obtain one at http://mozilla.org/MPL/2.0/.]&] +[s0;C1%- ]}}&] +[s0;%- &] +[s0;%- Package [* plugin/ftp] has following licence notice:&] +[ {{10000@(255.255.192) [s0;%- [C1 Copyright (C) 1996`-2001 Thomas Pfau, pfau`@eclipse.net + ]&] +[s0;%- [C1 1407 Thomas Ave, North Brunswick, NJ, 08902 + ]&] +[s0;%- [C1 + ]&] +[s0;%- [C1 This library is free software; you can redistribute it and/or + ]&] +[s0;%- [C1 modify it under the terms of the GNU Library General Public + ]&] +[s0;%- [C1 License as published by the Free Software Foundation; either + ]&] +[s0;%- [C1 version 2 of the License, or (at your option) any later +version. ]&] +[s0;%- [C1 + ]&] +[s0;%- [C1 This library is distributed in the hope that it will be +useful, ]&] +[s0;%- [C1 but WITHOUT ANY WARRANTY; without even the implied warranty +of ]&] +[s0;%- [C1 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See +the GNU ]&] +[s0;%- [C1 Library General Public License for more details. + ]&] +[s0;%- [C1 + ]&] +[s0;%- [C1 You should have received a copy of the GNU Library General +Public ]&] +[s0;%- [C1 License along with this progam; if not, write to the + ]&] +[s0;%- [C1 Free Software Foundation, Inc., 59 Temple Place `- Suite +330, ]&] +[s0;%- [C1 Boston, MA 02111`-1307, USA. + ]&] +[s0;C1%- ]}}&] +[s0;%- &] +[s0;%- Package [* plugin/FT`_fontsys] has following licence notice:&] +[ {{10000@(255.255.192) [s0;%- [C1 The FreeType Project LICENSE]&] +[s0;%- [C1 `-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`- +]&] +[s0;C1%- &] +[s0;%- [C1 2006`-Jan`-27]&] +[s0;C1%- &] +[s0;%- [C1 Copyright 1996`-2002, 2006 by]&] +[s0;%- [C1 David Turner, Robert Wilhelm, and Werner Lemberg]&] +[s0;C1%- &] +[s0;C1%- &] +[s0;C1%- &] +[s0;%- [C1 Introduction]&] +[s0;%- [C1 `=`=`=`=`=`=`=`=`=`=`=`=]&] +[s0;C1%- &] +[s0;%- [C1 The FreeType Project is distributed in several archive +packages;]&] +[s0;%- [C1 some of them may contain, in addition to the FreeType +font engine,]&] +[s0;%- [C1 various tools and contributions which rely on, or relate +to, the]&] +[s0;%- [C1 FreeType Project.]&] +[s0;C1%- &] +[s0;%- [C1 This license applies to all files found in such packages, +and]&] +[s0;%- [C1 which do not fall under their own explicit license. + The license]&] +[s0;%- [C1 affects thus the FreeType font engine, the test + programs,]&] +[s0;%- [C1 documentation and makefiles, at the very least.]&] +[s0;C1%- &] +[s0;%- [C1 This license was inspired by the BSD, Artistic, + and IJG]&] +[s0;%- [C1 (Independent JPEG Group) licenses, which all encourage +inclusion]&] +[s0;%- [C1 and use of free software in commercial and freeware + products]&] +[s0;%- [C1 alike. As a consequence, its main points are that:]&] +[s0;C1%- &] +[s0;%- [C1 o We don`'t promise that this software works. However, +we will be]&] +[s0;%- [C1 interested in any kind of bug reports. (``as is`' +distribution)]&] +[s0;C1%- &] +[s0;%- [C1 o You can use this software for whatever you want, +in parts or]&] +[s0;%- [C1 full form, without having to pay us. (``royalty`-free`' +usage)]&] +[s0;C1%- &] +[s0;%- [C1 o You may not pretend that you wrote this software. + If you use]&] +[s0;%- [C1 it, or only parts of it, in a program, you must +acknowledge]&] +[s0;%- [C1 somewhere in your documentation that you have + used the]&] +[s0;%- [C1 FreeType code. (``credits`')]&] +[s0;C1%- &] +[s0;%- [C1 We specifically permit and encourage the inclusion + of this]&] +[s0;%- [C1 software, with or without modifications, in commercial +products.]&] +[s0;%- [C1 We disclaim all warranties covering The FreeType +Project and]&] +[s0;%- [C1 assume no liability related to The FreeType Project.]&] +[s0;C1%- &] +[s0;C1%- &] +[s0;%- [C1 Finally, many people asked us for a preferred +form for a]&] +[s0;%- [C1 credit/disclaimer to use in compliance with this license. + We thus]&] +[s0;%- [C1 encourage you to use the following text:]&] +[s0;C1%- &] +[s0;%- [C1 `"`"`"]&] +[s0;%- [C1 Portions of this software are copyright � The +FreeType]&] +[s0;%- [C1 Project (www.freetype.org). All rights reserved.]&] +[s0;%- [C1 `"`"`"]&] +[s0;C1%- &] +[s0;%- [C1 Please replace with the value from the FreeType +version you]&] +[s0;%- [C1 actually use.]&] +[s0;C1%- &] +[s0;C1%- &] +[s0;%- [C1 Legal Terms]&] +[s0;%- [C1 `=`=`=`=`=`=`=`=`=`=`=]&] +[s0;C1%- &] +[s0;%- [C1 0. Definitions]&] +[s0;%- [C1 `-`-`-`-`-`-`-`-`-`-`-`-`-`-]&] +[s0;C1%- &] +[s0;%- [C1 Throughout this license, the terms ``package`', ``FreeType +Project`',]&] +[s0;%- [C1 and ``FreeType archive`' refer to the set of files + originally]&] +[s0;%- [C1 distributed by the authors (David Turner, Robert Wilhelm, + and]&] +[s0;%- [C1 Werner Lemberg) as the ``FreeType Project`', be they named +as alpha,]&] +[s0;%- [C1 beta or final release.]&] +[s0;C1%- &] +[s0;%- [C1 ``You`' refers to the licensee, or person using the +project, where]&] +[s0;%- [C1 ``using`' is a generic term including compiling the project`'s +source]&] +[s0;%- [C1 code as well as linking it to form a ``program`' or +``executable`'.]&] +[s0;%- [C1 This program is referred to as ``a program using +the FreeType]&] +[s0;%- [C1 engine`'.]&] +[s0;C1%- &] +[s0;%- [C1 This license applies to all files distributed in +the original]&] +[s0;%- [C1 FreeType Project, including all source code, binaries + and]&] +[s0;%- [C1 documentation, unless otherwise stated in the file + in its]&] +[s0;%- [C1 original, unmodified form as distributed in the original +archive.]&] +[s0;%- [C1 If you are unsure whether or not a particular file is +covered by]&] +[s0;%- [C1 this license, you must contact us to verify this.]&] +[s0;C1%- &] +[s0;%- [C1 The FreeType Project is copyright (C) 1996`-2000 by +David Turner,]&] +[s0;%- [C1 Robert Wilhelm, and Werner Lemberg. All rights reserved +except as]&] +[s0;%- [C1 specified below.]&] +[s0;C1%- &] +[s0;%- [C1 1. No Warranty]&] +[s0;%- [C1 `-`-`-`-`-`-`-`-`-`-`-`-`-`-]&] +[s0;C1%- &] +[s0;%- [C1 THE FREETYPE PROJECT IS PROVIDED ``AS IS`' WITHOUT WARRANTY +OF ANY]&] +[s0;%- [C1 KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT + LIMITED TO,]&] +[s0;%- [C1 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + PARTICULAR]&] +[s0;%- [C1 PURPOSE. IN NO EVENT WILL ANY OF THE AUTHORS OR COPYRIGHT +HOLDERS]&] +[s0;%- [C1 BE LIABLE FOR ANY DAMAGES CAUSED BY THE USE OR THE +INABILITY TO]&] +[s0;%- [C1 USE, OF THE FREETYPE PROJECT.]&] +[s0;C1%- &] +[s0;%- [C1 2. Redistribution]&] +[s0;%- [C1 `-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-]&] +[s0;C1%- &] +[s0;%- [C1 This license grants a worldwide, royalty`-free, perpetual + and]&] +[s0;%- [C1 irrevocable right and license to use, execute, perform, +compile,]&] +[s0;%- [C1 display, copy, create derivative works of, distribute + and]&] +[s0;%- [C1 sublicense the FreeType Project (in both source and + object code]&] +[s0;%- [C1 forms) and derivative works thereof for any purpose; +and to]&] +[s0;%- [C1 authorize others to exercise some or all of the rights +granted]&] +[s0;%- [C1 herein, subject to the following conditions:]&] +[s0;C1%- &] +[s0;%- [C1 o Redistribution of source code must retain this +license file]&] +[s0;%- [C1 (``FTL.TXT`') unaltered; any additions, deletions +or changes to]&] +[s0;%- [C1 the original files must be clearly indicated in +accompanying]&] +[s0;%- [C1 documentation. The copyright notices of the + unaltered,]&] +[s0;%- [C1 original files must be preserved in all copies +of source]&] +[s0;%- [C1 files.]&] +[s0;C1%- &] +[s0;%- [C1 o Redistribution in binary form must provide a disclaimer + that]&] +[s0;%- [C1 states that the software is based in part of the +work of the]&] +[s0;%- [C1 FreeType Team, in the distribution documentation. + We also]&] +[s0;%- [C1 encourage you to put an URL to the FreeType web page + in your]&] +[s0;%- [C1 documentation, though this isn`'t mandatory.]&] +[s0;C1%- &] +[s0;%- [C1 These conditions apply to any software derived from +or based on]&] +[s0;%- [C1 the FreeType Project, not just the unmodified files. + If you use]&] +[s0;%- [C1 our work, you must acknowledge us. However, no fee +need be paid]&] +[s0;%- [C1 to us.]&] +[s0;C1%- &] +[s0;%- [C1 3. Advertising]&] +[s0;%- [C1 `-`-`-`-`-`-`-`-`-`-`-`-`-`-]&] +[s0;C1%- &] +[s0;%- [C1 Neither the FreeType authors and contributors nor you + shall use]&] +[s0;%- [C1 the name of the other for commercial, advertising, or +promotional]&] +[s0;%- [C1 purposes without specific prior written permission.]&] +[s0;C1%- &] +[s0;%- [C1 We suggest, but do not require, that you use one or + more of the]&] +[s0;%- [C1 following phrases to refer to this software in your documentation]&] +[s0;%- [C1 or advertising materials: ``FreeType Project`', ``FreeType +Engine`',]&] +[s0;%- [C1 ``FreeType library`', or ``FreeType Distribution`'.]&] +[s0;C1%- &] +[s0;%- [C1 As you have not signed this license, you are not + required to]&] +[s0;%- [C1 accept it. However, as the FreeType Project is + copyrighted]&] +[s0;%- [C1 material, only this license, or another one contracted + with the]&] +[s0;%- [C1 authors, grants you the right to use, distribute, and +modify it.]&] +[s0;%- [C1 Therefore, by using, distributing, or modifying the + FreeType]&] +[s0;%- [C1 Project, you indicate that you understand and accept all +the terms]&] +[s0;%- [C1 of this license.]&] +[s0;C1%- &] +[s0;%- [C1 4. Contacts]&] +[s0;%- [C1 `-`-`-`-`-`-`-`-`-`-`-]&] +[s0;C1%- &] +[s0;%- [C1 There are two mailing lists related to FreeType:]&] +[s0;C1%- &] +[s0;%- [C1 o freetype`@nongnu.org]&] +[s0;C1%- &] +[s0;%- [C1 Discusses general use and applications of FreeType, +as well as]&] +[s0;%- [C1 future and wanted additions to the library and distribution.]&] +[s0;%- [C1 If you are looking for support, start in this +list if you]&] +[s0;%- [C1 haven`'t found anything to help you in the documentation.]&] +[s0;C1%- &] +[s0;%- [C1 o freetype`-devel`@nongnu.org]&] +[s0;C1%- &] +[s0;%- [C1 Discusses bugs, as well as engine internals, design +issues,]&] +[s0;%- [C1 specific licenses, porting, etc.]&] +[s0;C1%- &] +[s0;%- [C1 Our home page can be found at]&] +[s0;C1%- &] +[s0;%- [C1 http://www.freetype.org]&] +[s0;C1%- &] +[s0;C1%- &] +[s0;%- [C1 `-`-`- end of FTL.TXT `-`-`-]&] +[s0;C1%- ]}}&] +[s0;%- &] +[s0;%- Package [* plugin/glew] has following licence notice:&] +[ {{10000@(255.255.192) [s0;%- [C1 The OpenGL Extension Wrangler Library]&] +[s0;%- [C1 Copyright (C) 2002`-2008, Milan Ikits ]&] +[s0;%- [C1 Copyright (C) 2002`-2008, Marcelo E. Magallon ]&] +[s0;%- [C1 Copyright (C) 2002, Lev Povalahev]&] +[s0;%- [C1 All rights reserved.]&] +[s0;C1%- &] +[s0;%- [C1 Redistribution and use in source and binary forms, with +or without ]&] +[s0;%- [C1 modification, are permitted provided that the following +conditions are met:]&] +[s0;C1%- &] +[s0;%- [C1 `* Redistributions of source code must retain the above +copyright notice, ]&] +[s0;%- [C1 this list of conditions and the following disclaimer.]&] +[s0;%- [C1 `* Redistributions in binary form must reproduce the above +copyright notice, ]&] +[s0;%- [C1 this list of conditions and the following disclaimer in +the documentation ]&] +[s0;%- [C1 and/or other materials provided with the distribution.]&] +[s0;%- [C1 `* The name of the author may be used to endorse or promote +products ]&] +[s0;%- [C1 derived from this software without specific prior written +permission.]&] +[s0;C1%- &] +[s0;%- [C1 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +`"AS IS`" ]&] +[s0;%- [C1 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE ]&] +[s0;%- [C1 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +PARTICULAR PURPOSE]&] +[s0;%- [C1 ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +CONTRIBUTORS BE ]&] +[s0;%- [C1 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, +OR ]&] +[s0;%- [C1 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT +OF ]&] +[s0;%- [C1 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +OR BUSINESS]&] +[s0;%- [C1 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN]&] +[s0;%- [C1 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +OR OTHERWISE)]&] +[s0;%- [C1 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN +IF ADVISED OF]&] +[s0;%- [C1 THE POSSIBILITY OF SUCH DAMAGE.]&] +[s0;C1%- &] +[s0;C1%- &] +[s0;%- [C1 Mesa 3`-D graphics library]&] +[s0;%- [C1 Version: 7.0]&] +[s0;C1%- &] +[s0;%- [C1 Copyright (C) 1999`-2007 Brian Paul All Rights Reserved.]&] +[s0;C1%- &] +[s0;%- [C1 Permission is hereby granted, free of charge, to any person +obtaining a]&] +[s0;%- [C1 copy of this software and associated documentation files +(the `"Software`"),]&] +[s0;%- [C1 to deal in the Software without restriction, including without +limitation]&] +[s0;%- [C1 the rights to use, copy, modify, merge, publish, distribute, +sublicense,]&] +[s0;%- [C1 and/or sell copies of the Software, and to permit persons +to whom the]&] +[s0;%- [C1 Software is furnished to do so, subject to the following +conditions:]&] +[s0;C1%- &] +[s0;%- [C1 The above copyright notice and this permission notice shall +be included]&] +[s0;%- [C1 in all copies or substantial portions of the Software.]&] +[s0;C1%- &] +[s0;%- [C1 THE SOFTWARE IS PROVIDED `"AS IS`", WITHOUT WARRANTY OF +ANY KIND, EXPRESS]&] +[s0;%- [C1 OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY,]&] +[s0;%- [C1 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL]&] +[s0;%- [C1 BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN]&] +[s0;%- [C1 AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN]&] +[s0;%- [C1 CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +IN THE SOFTWARE.]&] +[s0;C1%- &] +[s0;C1%- &] +[s0;%- [C1 Copyright (c) 2007 The Khronos Group Inc.]&] +[s0;C1%- &] +[s0;%- [C1 Permission is hereby granted, free of charge, to any person +obtaining a]&] +[s0;%- [C1 copy of this software and/or associated documentation files +(the]&] +[s0;%- [C1 `"Materials`"), to deal in the Materials without restriction, +including]&] +[s0;%- [C1 without limitation the rights to use, copy, modify, merge, +publish,]&] +[s0;%- [C1 distribute, sublicense, and/or sell copies of the Materials, +and to]&] +[s0;%- [C1 permit persons to whom the Materials are furnished to do +so, subject to]&] +[s0;%- [C1 the following conditions:]&] +[s0;C1%- &] +[s0;%- [C1 The above copyright notice and this permission notice shall +be included]&] +[s0;%- [C1 in all copies or substantial portions of the Materials.]&] +[s0;C1%- &] +[s0;%- [C1 THE MATERIALS ARE PROVIDED `"AS IS`", WITHOUT WARRANTY OF +ANY KIND,]&] +[s0;%- [C1 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF]&] +[s0;%- [C1 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.]&] +[s0;%- [C1 IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +FOR ANY]&] +[s0;%- [C1 CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT,]&] +[s0;%- [C1 TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE]&] +[s0;%- [C1 MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.]&] +[s0;C1%- ]}}&] +[s0;%- &] +[s0;%- Package [* plugin/jpg] has following licence notice:&] +[ {{10000@(255.255.192) [s0;%- [C1 The authors make NO WARRANTY or representation, either express +or implied,]&] +[s0;%- [C1 with respect to this software, its quality, accuracy, merchantability, +or]&] +[s0;%- [C1 fitness for a particular purpose. This software is provided +`"AS IS`", and you,]&] +[s0;%- [C1 its user, assume the entire risk as to its quality and accuracy.]&] +[s0;C1%- &] +[s0;%- [C1 This software is copyright (C) 1991`-1998, Thomas G. Lane.]&] +[s0;%- [C1 All Rights Reserved except as specified below.]&] +[s0;C1%- &] +[s0;%- [C1 Permission is hereby granted to use, copy, modify, and distribute +this]&] +[s0;%- [C1 software (or portions thereof) for any purpose, without +fee, subject to these]&] +[s0;%- [C1 conditions:]&] +[s0;%- [C1 (1) If any part of the source code for this software is +distributed, then this]&] +[s0;%- [C1 README file must be included, with this copyright and no`-warranty +notice]&] +[s0;%- [C1 unaltered; and any additions, deletions, or changes to the +original files]&] +[s0;%- [C1 must be clearly indicated in accompanying documentation.]&] +[s0;%- [C1 (2) If only executable code is distributed, then the accompanying]&] +[s0;%- [C1 documentation must state that `"this software is based in +part on the work of]&] +[s0;%- [C1 the Independent JPEG Group`".]&] +[s0;%- [C1 (3) Permission for use of this software is granted only +if the user accepts]&] +[s0;%- [C1 full responsibility for any undesirable consequences; the +authors accept]&] +[s0;%- [C1 NO LIABILITY for damages of any kind.]&] +[s0;C1%- &] +[s0;%- [C1 These conditions apply to any software derived from or based +on the IJG code,]&] +[s0;%- [C1 not just to the unmodified library. If you use our work, +you ought to]&] +[s0;%- [C1 acknowledge us.]&] +[s0;C1%- &] +[s0;%- [C1 Permission is NOT granted for the use of any IJG author`'s +name or company name]&] +[s0;%- [C1 in advertising or publicity relating to this software or +products derived from]&] +[s0;%- [C1 it. This software may be referred to only as `"the Independent +JPEG Group`'s]&] +[s0;%- [C1 software`".]&] +[s0;C1%- &] +[s0;%- [C1 We specifically permit and encourage the use of this software +as the basis of]&] +[s0;%- [C1 commercial products, provided that all warranty or liability +claims are]&] +[s0;%- [C1 assumed by the product vendor.]&] +[s0;C1%- ]}}&] +[s0;%- &] +[s0;%- Package [* plugin/lz4] has following licence notice:&] +[ {{10000@(255.255.192) [s0;%- [C1 LZ4 Library]&] +[s0;%- [C1 Copyright (c) 2011`-2014, Yann Collet]&] +[s0;%- [C1 All rights reserved.]&] +[s0;C1%- &] +[s0;%- [C1 Redistribution and use in source and binary forms, with +or without modification,]&] +[s0;%- [C1 are permitted provided that the following conditions are +met:]&] +[s0;C1%- &] +[s0;%- [C1 `* Redistributions of source code must retain the above +copyright notice, this]&] +[s0;%- [C1 list of conditions and the following disclaimer.]&] +[s0;C1%- &] +[s0;%- [C1 `* Redistributions in binary form must reproduce the above +copyright notice, this]&] +[s0;%- [C1 list of conditions and the following disclaimer in the +documentation and/or]&] +[s0;%- [C1 other materials provided with the distribution.]&] +[s0;C1%- &] +[s0;%- [C1 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +`"AS IS`" AND]&] +[s0;%- [C1 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +TO, THE IMPLIED]&] +[s0;%- [C1 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE]&] +[s0;%- [C1 DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS +BE LIABLE FOR]&] +[s0;%- [C1 ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES]&] +[s0;%- [C1 (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +GOODS OR SERVICES;]&] +[s0;%- [C1 LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON]&] +[s0;%- [C1 ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT]&] +[s0;%- [C1 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +OF THE USE OF THIS]&] +[s0;%- [C1 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.]]}}&] +[s0;%- &] +[s0;%- Package [* plugin/lzma] has following licence notice:&] +[ {{10000@(255.255.192) [s0;%- [C1 Igor Pavlov : Public domain]]}}&] +[s0;%- &] +[s0;%- Package [* plugin/ndisasm] has following licence notice:&] +[ {{10000@(255.255.192) [s0;%- [C1 NASM is now licensed under the 2`-clause BSD license, also +known as the]&] +[s0;%- [C1 simplified BSD license.]&] +[s0;C1%- &] +[s0;%- [C1 Copyright 1996`-2009 the NASM Authors `- All rights +reserved.]&] +[s0;C1%- &] +[s0;%- [C1 Redistribution and use in source and binary forms, with +or without]&] +[s0;%- [C1 modification, are permitted provided that the following]&] +[s0;%- [C1 conditions are met:]&] +[s0;C1%- &] +[s0;%- [C1 `* Redistributions of source code must retain the above +copyright]&] +[s0;%- [C1 notice, this list of conditions and the following +disclaimer.]&] +[s0;%- [C1 `* Redistributions in binary form must reproduce the +above]&] +[s0;%- [C1 copyright notice, this list of conditions and the +following]&] +[s0;%- [C1 disclaimer in the documentation and/or other materials +provided]&] +[s0;%- [C1 with the distribution.]&] +[s0;%- [C1 ]&] +[s0;%- [C1 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS +AND]&] +[s0;%- [C1 CONTRIBUTORS `"AS IS`" AND ANY EXPRESS OR IMPLIED +WARRANTIES,]&] +[s0;%- [C1 INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +OF]&] +[s0;%- [C1 MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE]&] +[s0;%- [C1 DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER +OR]&] +[s0;%- [C1 CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,]&] +[s0;%- [C1 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT]&] +[s0;%- [C1 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES;]&] +[s0;%- [C1 LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)]&] +[s0;%- [C1 HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +IN]&] +[s0;%- [C1 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +OR]&] +[s0;%- [C1 OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE,]&] +[s0;%- [C1 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.]&] +[s0;C1%- ]}}&] +[s0;%- &] +[s0;%- Package [* plugin/pcre] has following licence notice:&] +[ {{10000@(255.255.192) [s0;%- [C1 Copyright (c) 1998, 2014, The U`+`+ Project]&] +[s0;%- [C1 All rights reserved.]&] +[s0;C1%- &] +[s0;%- [C1 Redistribution and use in source and binary forms, with +or without modification, are permitted]&] +[s0;%- [C1 provided that the following conditions are met:]&] +[s0;C1%- &] +[s0;%- [C1 1. Redistributions of source code must retain the above +copyright notice, this list of]&] +[s0;%- [C1 conditions and the following disclaimer.]&] +[s0;C1%- &] +[s0;%- [C1 2. Redistributions in binary form must reproduce the above +copyright notice, this list of]&] +[s0;%- [C1 conditions and the following disclaimer in the documentation +and/or other materials provided]&] +[s0;%- [C1 with the distribution.]&] +[s0;C1%- &] +[s0;%- [C1 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +`"AS IS`" AND ANY EXPRESS OR]&] +[s0;%- [C1 IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY]&] +[s0;%- [C1 AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN +NO EVENT SHALL THE COPYRIGHT HOLDER OR]&] +[s0;%- [C1 CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR]&] +[s0;%- [C1 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT +OF SUBSTITUTE GOODS OR ]&] +[s0;%- [C1 SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY]&] +[s0;%- [C1 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR]&] +[s0;%- [C1 OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +EVEN IF ADVISED OF THE]&] +[s0;%- [C1 POSSIBILITY OF SUCH DAMAGE.]&] +[s0;C1%- &] +[s0;%- [C1 `*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`* +`*`*`*`*`*`*`*`*`*`*`*]&] +[s0;%- [C1 `* Perl`-Compatible Regular Expressions `*]&] +[s0;%- [C1 `*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`* +`*`*`*`*`*`*`*`*`*`*`*]&] +[s0;C1%- &] +[s0;%- [C1 PCRE is a library of functions to support regular expressions +whose syntax]&] +[s0;%- [C1 and semantics are as close as possible to those of the Perl +5 language.]&] +[s0;C1%- &] +[s0;%- [C1 Written by Philip Hazel]&] +[s0;%- [C1 Copyright (c) 1997`-2008 University of Cambridge]&] +[s0;C1%- &] +[s0;%- [C1 `-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`- +`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-]&] +[s0;%- [C1 Redistribution and use in source and binary forms, with +or without]&] +[s0;%- [C1 modification, are permitted provided that the following +conditions are met:]&] +[s0;C1%- &] +[s0;%- [C1 `* Redistributions of source code must retain the above +copyright notice,]&] +[s0;%- [C1 this list of conditions and the following disclaimer.]&] +[s0;C1%- &] +[s0;%- [C1 `* Redistributions in binary form must reproduce the +above copyright]&] +[s0;%- [C1 notice, this list of conditions and the following +disclaimer in the]&] +[s0;%- [C1 documentation and/or other materials provided with +the distribution.]&] +[s0;C1%- &] +[s0;%- [C1 `* Neither the name of the University of Cambridge nor +the names of its]&] +[s0;%- [C1 contributors may be used to endorse or promote products +derived from]&] +[s0;%- [C1 this software without specific prior written permission.]&] +[s0;C1%- &] +[s0;%- [C1 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +`"AS IS`"]&] +[s0;%- [C1 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE]&] +[s0;%- [C1 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +PARTICULAR PURPOSE]&] +[s0;%- [C1 ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +CONTRIBUTORS BE]&] +[s0;%- [C1 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, +OR]&] +[s0;%- [C1 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT +OF]&] +[s0;%- [C1 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +OR BUSINESS]&] +[s0;%- [C1 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN]&] +[s0;%- [C1 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +OR OTHERWISE)]&] +[s0;%- [C1 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN +IF ADVISED OF THE]&] +[s0;%- [C1 POSSIBILITY OF SUCH DAMAGE.]&] +[s0;%- [C1 `-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`- +`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-]&] +[s0;C1%- ]}}&] +[s0;%- &] +[s0;%- Package [* plugin/png] has following licence notice:&] +[ {{10000@(255.255.192) [s0;%- [C1 If you modify libpng you may insert additional notices immediately +following]&] +[s0;%- [C1 this sentence.]&] +[s0;C1%- &] +[s0;%- [C1 libpng versions 1.2.6, August 15, 2004, through 1.2.22, +October 13, 2007, are]&] +[s0;%- [C1 Copyright (c) 2004, 2006`-2007 Glenn Randers`-Pehrson, and +are]&] +[s0;%- [C1 distributed according to the same disclaimer and license +as libpng`-1.2.5]&] +[s0;%- [C1 with the following individual added to the list of Contributing +Authors:]&] +[s0;C1%- &] +[s0;%- [C1 Cosmin Truta]&] +[s0;C1%- &] +[s0;%- [C1 libpng versions 1.0.7, July 1, 2000, through 1.2.5, October +3, 2002, are]&] +[s0;%- [C1 Copyright (c) 2000`-2002 Glenn Randers`-Pehrson, and are]&] +[s0;%- [C1 distributed according to the same disclaimer and license +as libpng`-1.0.6]&] +[s0;%- [C1 with the following individuals added to the list of Contributing +Authors:]&] +[s0;C1%- &] +[s0;%- [C1 Simon`-Pierre Cadieux]&] +[s0;%- [C1 Eric S. Raymond]&] +[s0;%- [C1 Gilles Vollant]&] +[s0;C1%- &] +[s0;%- [C1 and with the following additions to the disclaimer:]&] +[s0;C1%- &] +[s0;%- [C1 There is no warranty against interference with your enjoyment +of the]&] +[s0;%- [C1 library or against infringement. There is no warranty +that our]&] +[s0;%- [C1 efforts or the library will fulfill any of your particular +purposes]&] +[s0;%- [C1 or needs. This library is provided with all faults, +and the entire]&] +[s0;%- [C1 risk of satisfactory quality, performance, accuracy, +and effort is with]&] +[s0;%- [C1 the user.]&] +[s0;C1%- &] +[s0;%- [C1 libpng versions 0.97, January 1998, through 1.0.6, March +20, 2000, are]&] +[s0;%- [C1 Copyright (c) 1998, 1999, 2000 Glenn Randers`-Pehrson, and +are]&] +[s0;%- [C1 distributed according to the same disclaimer and license +as libpng`-0.96,]&] +[s0;%- [C1 with the following individuals added to the list of Contributing +Authors:]&] +[s0;C1%- &] +[s0;%- [C1 Tom Lane]&] +[s0;%- [C1 Glenn Randers`-Pehrson]&] +[s0;%- [C1 Willem van Schaik]&] +[s0;C1%- &] +[s0;%- [C1 libpng versions 0.89, June 1996, through 0.96, May 1997, +are]&] +[s0;%- [C1 Copyright (c) 1996, 1997 Andreas Dilger]&] +[s0;%- [C1 Distributed according to the same disclaimer and license +as libpng`-0.88,]&] +[s0;%- [C1 with the following individuals added to the list of Contributing +Authors:]&] +[s0;C1%- &] +[s0;%- [C1 John Bowler]&] +[s0;%- [C1 Kevin Bracey]&] +[s0;%- [C1 Sam Bushell]&] +[s0;%- [C1 Magnus Holmgren]&] +[s0;%- [C1 Greg Roelofs]&] +[s0;%- [C1 Tom Tanner]&] +[s0;C1%- &] +[s0;%- [C1 libpng versions 0.5, May 1995, through 0.88, January 1996, +are]&] +[s0;%- [C1 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.]&] +[s0;C1%- &] +[s0;%- [C1 For the purposes of this copyright and license, `"Contributing +Authors`"]&] +[s0;%- [C1 is defined as the following set of individuals:]&] +[s0;C1%- &] +[s0;%- [C1 Andreas Dilger]&] +[s0;%- [C1 Dave Martindale]&] +[s0;%- [C1 Guy Eric Schalnat]&] +[s0;%- [C1 Paul Schmidt]&] +[s0;%- [C1 Tim Wegner]&] +[s0;C1%- &] +[s0;%- [C1 The PNG Reference Library is supplied `"AS IS`". The Contributing +Authors]&] +[s0;%- [C1 and Group 42, Inc. disclaim all warranties, expressed or +implied,]&] +[s0;%- [C1 including, without limitation, the warranties of merchantability +and of]&] +[s0;%- [C1 fitness for any purpose. The Contributing Authors and Group +42, Inc.]&] +[s0;%- [C1 assume no liability for direct, indirect, incidental, special, +exemplary,]&] +[s0;%- [C1 or consequential damages, which may result from the use +of the PNG]&] +[s0;%- [C1 Reference Library, even if advised of the possibility of +such damage.]&] +[s0;C1%- &] +[s0;%- [C1 Permission is hereby granted to use, copy, modify, and distribute +this]&] +[s0;%- [C1 source code, or portions hereof, for any purpose, without +fee, subject]&] +[s0;%- [C1 to the following restrictions:]&] +[s0;C1%- &] +[s0;%- [C1 1. The origin of this source code must not be misrepresented.]&] +[s0;C1%- &] +[s0;%- [C1 2. Altered versions must be plainly marked as such and]&] +[s0;%- [C1 must not be misrepresented as being the original source.]&] +[s0;C1%- &] +[s0;%- [C1 3. This Copyright notice may not be removed or altered from]&] +[s0;%- [C1 any source or altered source distribution.]&] +[s0;C1%- &] +[s0;%- [C1 The Contributing Authors and Group 42, Inc. specifically +permit, without]&] +[s0;%- [C1 fee, and encourage the use of this source code as a component +to]&] +[s0;%- [C1 supporting the PNG file format in commercial products. +If you use this]&] +[s0;%- [C1 source code in a product, acknowledgment is not required +but would be]&] +[s0;%- [C1 appreciated.]&] +[s0;C1%- ]}}&] +[s0;%- &] +[s0;%- Package [* plugin/sqlite3] has following licence notice:&] +[ {{10000@(255.255.192) [s0;%- [C1 The author disclaims copyright to this source code. In +place of]&] +[s0;%- [C1 a legal notice, here is a blessing:]&] +[s0;C1%- &] +[s0;%- [C1 May you do good and not evil.]&] +[s0;%- [C1 May you find forgiveness for yourself and forgive others.]&] +[s0;%- [C1 May you share freely, never taking more than you give.]&] +[s0;C1%- &] +[s0;C1%- ]}}&] +[s0;%- &] +[s0;%- Package [* plugin/tif] has following licence notice:&] +[ {{10000@(255.255.192) [s0;%- [C1 Copyright (c) 1995`-1997 Sam Leffler]&] +[s0;%- [C1 Copyright (c) 1995`-1997 Silicon Graphics, Inc.]&] +[s0;C1%- &] +[s0;%- [C1 Permission to use, copy, modify, distribute, and sell this +software and ]&] +[s0;%- [C1 its documentation for any purpose is hereby granted without +fee, provided]&] +[s0;%- [C1 that (i) the above copyright notices and this permission +notice appear in]&] +[s0;%- [C1 all copies of the software and related documentation, and +(ii) the names of]&] +[s0;%- [C1 Sam Leffler and Silicon Graphics may not be used in any +advertising or]&] +[s0;%- [C1 publicity relating to the software without the specific, +prior written]&] +[s0;%- [C1 permission of Sam Leffler and Silicon Graphics.]&] +[s0;C1%- &] +[s0;%- [C1 THE SOFTWARE IS PROVIDED `"AS`-IS`" AND WITHOUT WARRANTY +OF ANY KIND, ]&] +[s0;%- [C1 EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, +ANY ]&] +[s0;%- [C1 WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR +PURPOSE. ]&] +[s0;C1%- &] +[s0;%- [C1 IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE +FOR]&] +[s0;%- [C1 ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES +OF ANY KIND,]&] +[s0;%- [C1 OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA +OR PROFITS,]&] +[s0;%- [C1 WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND +ON ANY THEORY OF ]&] +[s0;%- [C1 LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE +OR PERFORMANCE ]&] +[s0;%- [C1 OF THIS SOFTWARE.]&] +[s0;C1%- ]}}&] +[s0;%- &] +[s0;%- Package [* plugin/z] has following licence notice:&] +[ {{10000@(255.255.192) [s0;%- [C1 version 1.2.8, April 28th, 2013]&] +[s0;C1%- &] +[s0;%- [C1 Copyright (C) 1995`-2013 Jean`-loup Gailly and Mark Adler]&] +[s0;C1%- &] +[s0;%- [C1 This software is provided `'as`-is`', without any express +or implied]&] +[s0;%- [C1 warranty. In no event will the authors be held liable for +any damages]&] +[s0;%- [C1 arising from the use of this software.]&] +[s0;C1%- &] +[s0;%- [C1 Permission is granted to anyone to use this software for +any purpose,]&] +[s0;%- [C1 including commercial applications, and to alter it and redistribute +it]&] +[s0;%- [C1 freely, subject to the following restrictions:]&] +[s0;C1%- &] +[s0;%- [C1 1. The origin of this software must not be misrepresented; +you must not]&] +[s0;%- [C1 claim that you wrote the original software. If you use +this software]&] +[s0;%- [C1 in a product, an acknowledgment in the product documentation +would be]&] +[s0;%- [C1 appreciated but is not required.]&] +[s0;%- [C1 2. Altered source versions must be plainly marked as such, +and must not be]&] +[s0;%- [C1 misrepresented as being the original software.]&] +[s0;%- [C1 3. This notice may not be removed or altered from any source +distribution.]&] +[s0;C1%- &] +[s0;%- [C1 Jean`-loup Gailly Mark Adler]&] +[s0;%- [C1 jloup`@gzip.org madler`@alumni.caltech.edu]&] +[s0;C1%- &] +[s0;C1%- &] +[s0;%- [C1 The data format used by the zlib library is described by +RFCs (Request for]&] +[s0;%- [C1 Comments) 1950 to 1952 in the files http://tools.ietf.org/html/rfc1950]&] +[s0;%- [C1 (zlib format), rfc1951 (deflate format) and rfc1952 (gzip +format).]&] +[s0;C1%- ]}}&] +[s0;%- &] +[s0;%- &] +[s0;H8;0%- &] +[s0;%- [/ Windows releases might contain MINGW64 binaries with following +licenses:]&] +[s0;C0%- &] +[s0;%- [C1 MINGW`-W64]&] +[ {{10000@(255.255.192) [s0;%- [C1 MinGW`-w64 licensing]&] +[s0;%- [C1 `*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*]&] +[s0;C1%- &] +[s0;%- [C1 The copyright and license notices have been divided in two +files:]&] +[s0;%- [C1 The notices in COPYING.MinGW`-w64.txt (this file) apply +only to]&] +[s0;%- [C1 MinGW`-w64 itself. These don`'t apply to the binaries built +with]&] +[s0;%- [C1 MinGW`-w64 unless you specifically tell MinGW`-w64 to link +against]&] +[s0;%- [C1 these parts, for example, by enabling profiling code.]&] +[s0;C1%- &] +[s0;%- [C1 In addition to the notices in this file, also the notices +in]&] +[s0;%- [C1 COPYING.MinGW`-w64`-runtime.txt apply to MinGW`-w64. Some +(possibly]&] +[s0;%- [C1 all) notices in that file may apply also to the binaries +built with]&] +[s0;%- [C1 this version of MinGW`-w64. The idea is that if you create +binary]&] +[s0;%- [C1 packages of your software with MinGW`-w64, you can simply +copy]&] +[s0;%- [C1 COPYING.MinGW`-w64`-runtime.txt into your package to fulfill +the]&] +[s0;%- [C1 license requirements of the MinGW runtime.]&] +[s0;C1%- &] +[s0;%- [C1 If you think that not all notices apply to your package +and want to]&] +[s0;%- [C1 remove some of them, note that, for example, the gdtoa files +always]&] +[s0;%- [C1 get linked in if you use any printf`-like function. So usually +it is]&] +[s0;%- [C1 easiest and safest to just keep all the notices.]&] +[s0;C1%- &] +[s0;C1%- &] +[s0;%- [C1 `=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=]&] +[s0;%- [C1 GCC and GNU binutils]&] +[s0;%- [C1 `=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=]&] +[s0;C1%- &] +[s0;%- [C1 Copyright (C) Free Software Foundation]&] +[s0;%- [C1 License: GNU GPLv3`+ (see the file COPYING.GPLv3)]&] +[s0;C1%- &] +[s0;C1%- &] +[s0;%- [C1 `=`=`=`=`=`=`=`=`=`=`=`=`=`=]&] +[s0;%- [C1 Profiling code]&] +[s0;%- [C1 `=`=`=`=`=`=`=`=`=`=`=`=`=`=]&] +[s0;C1%- &] +[s0;%- [C1 Copyright 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.]&] +[s0;%- [C1 License: GNU GPLv2`+ (see the file COPYING.GPLv2)]&] +[s0;C1%- &] +[s0;%- [C1 `* `* `* `* `* `* + `*]&] +[s0;C1%- &] +[s0;%- [C1 Copyright (c) 1982, 1983, 1986, 1992, 1993]&] +[s0;%- [C1 The Regents of the University of California. All rights +reserved.]&] +[s0;C1%- &] +[s0;%- [C1 Redistribution and use in source and binary forms, with +or without]&] +[s0;%- [C1 modification, are permitted provided that the following +conditions]&] +[s0;%- [C1 are met:]&] +[s0;%- [C1 1. Redistributions of source code must retain the above +copyright]&] +[s0;%- [C1 notice, this list of conditions and the following disclaimer.]&] +[s0;%- [C1 2. Redistributions in binary form must reproduce the above +copyright]&] +[s0;%- [C1 notice, this list of conditions and the following disclaimer +in the]&] +[s0;%- [C1 documentation and/or other materials provided with the +distribution.]&] +[s0;%- [C1 4. Neither the name of the University nor the names of its +contributors]&] +[s0;%- [C1 may be used to endorse or promote products derived from +this software]&] +[s0;%- [C1 without specific prior written permission.]&] +[s0;C1%- &] +[s0;%- [C1 THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS +````AS IS`'`' AND]&] +[s0;%- [C1 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +TO, THE]&] +[s0;%- [C1 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +PARTICULAR PURPOSE]&] +[s0;%- [C1 ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS +BE LIABLE]&] +[s0;%- [C1 FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, +OR CONSEQUENTIAL]&] +[s0;%- [C1 DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +GOODS]&] +[s0;%- [C1 OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION)]&] +[s0;%- [C1 HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT]&] +[s0;%- [C1 LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING +IN ANY WAY]&] +[s0;%- [C1 OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF]&] +[s0;%- [C1 SUCH DAMAGE.]&] +[s0;C1%- &] +[s0;C1%- &] +[s0;%- [C1 `=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=]&] +[s0;%- [C1 DirectX and DDK headers]&] +[s0;%- [C1 `=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=]&] +[s0;C1%- &] +[s0;%- [C1 DirectX and DDK headers are under GNU LGPLv2.1`+ (see the +file]&] +[s0;%- [C1 COPYING.LGPLv2.1) and copyrighted by various people. Using +these]&] +[s0;%- [C1 headers doesn`'t make LGPLv2.1 apply to your code, because +these]&] +[s0;%- [C1 headers files contain only data structure definitions, short]&] +[s0;%- [C1 macros, and short inline functions. Here is the relevant +part]&] +[s0;%- [C1 from LGPLv2.1 section 5 paragraph 4:]&] +[s0;C1%- &] +[s0;%- [C1 If such an object file uses only numerical parameters, +data]&] +[s0;%- [C1 structure layouts and accessors, and small macros and +small]&] +[s0;%- [C1 inline functions (ten lines or less in length), then +the use]&] +[s0;%- [C1 of the object file is unrestricted, regardless of whether +it]&] +[s0;%- [C1 is legally a derivative work.]&] +[s0;C1%- &] +[s0;%- [C1 `=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=]&] +[s0;%- [C1 libmangle and gendef]&] +[s0;%- [C1 `=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=]&] +[s0;C1%- &] +[s0;%- [C1 Copyright (c) 2009 mingw`-w64 project]&] +[s0;C1%- &] +[s0;%- [C1 Contributing authors: Kai Tietz, Jonathan Yong]&] +[s0;C1%- &] +[s0;%- [C1 Permission is hereby granted, free of charge, to any person +obtaining a]&] +[s0;%- [C1 copy of this software and associated documentation files +(the `"Software`"),]&] +[s0;%- [C1 to deal in the Software without restriction, including without +limitation]&] +[s0;%- [C1 the rights to use, copy, modify, merge, publish, distribute, +sublicense,]&] +[s0;%- [C1 and/or sell copies of the Software, and to permit persons +to whom the]&] +[s0;%- [C1 Software is furnished to do so, subject to the following +conditions:]&] +[s0;C1%- &] +[s0;%- [C1 The above copyright notice and this permission notice shall +be included in]&] +[s0;%- [C1 all copies or substantial portions of the Software.]&] +[s0;C1%- &] +[s0;%- [C1 THE SOFTWARE IS PROVIDED `"AS IS`", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR]&] +[s0;%- [C1 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY,]&] +[s0;%- [C1 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE]&] +[s0;%- [C1 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES +OR OTHER]&] +[s0;%- [C1 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING]&] +[s0;%- [C1 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE +OR OTHER]&] +[s0;%- [C1 DEALINGS IN THE SOFTWARE.]&] +[s0;C1%- &] +[s0;C1%- &] +[s0;%- [C1 `=`=`=`=]&] +[s0;%- [C1 PSEH]&] +[s0;%- [C1 `=`=`=`=]&] +[s0;C1%- &] +[s0;%- [C1 Copyright (c) 2004`-2008 KJK`::Hyperion]&] +[s0;C1%- &] +[s0;%- [C1 Permission is hereby granted, free of charge, to any person +obtaining a]&] +[s0;%- [C1 copy of this software and associated documentation files +(the `"Software`"),]&] +[s0;%- [C1 to deal in the Software without restriction, including without +limitation]&] +[s0;%- [C1 the rights to use, copy, modify, merge, publish, distribute, +sublicense,]&] +[s0;%- [C1 and/or sell copies of the Software, and to permit persons +to whom the]&] +[s0;%- [C1 Software is furnished to do so, subject to the following +conditions:]&] +[s0;C1%- &] +[s0;%- [C1 The above copyright notice and this permission notice shall +be included in]&] +[s0;%- [C1 all copies or substantial portions of the Software.]&] +[s0;C1%- &] +[s0;%- [C1 THE SOFTWARE IS PROVIDED `"AS IS`", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR]&] +[s0;%- [C1 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY,]&] +[s0;%- [C1 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE]&] +[s0;%- [C1 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES +OR OTHER]&] +[s0;%- [C1 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING]&] +[s0;%- [C1 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE +OR OTHER]&] +[s0;%- [C1 DEALINGS IN THE SOFTWARE.]&] +[s0;C1%- ]}}&] +[s0;C1%- &] +[s0;C0%- &] +[s0;%- [C1 GCC runtime]&] +[ {{10000@(255.255.192) [s0;%- [C1 GCC RUNTIME LIBRARY EXCEPTION]&] +[s0;C1%- &] +[s0;%- [C1 Version 3.1, 31 March 2009]&] +[s0;C1%- &] +[s0;%- [C1 Copyright (C) 2009 Free Software Foundation, Inc. ]&] +[s0;C1%- &] +[s0;%- [C1 Everyone is permitted to copy and distribute verbatim copies +of this]&] +[s0;%- [C1 license document, but changing it is not allowed.]&] +[s0;C1%- &] +[s0;%- [C1 This GCC Runtime Library Exception (`"Exception`") is an +additional]&] +[s0;%- [C1 permission under section 7 of the GNU General Public License, +version]&] +[s0;%- [C1 3 (`"GPLv3`"). It applies to a given file (the `"Runtime +Library`") that]&] +[s0;%- [C1 bears a notice placed by the copyright holder of the file +stating that]&] +[s0;%- [C1 the file is governed by GPLv3 along with this Exception.]&] +[s0;C1%- &] +[s0;%- [C1 When you use GCC to compile a program, GCC may combine portions +of]&] +[s0;%- [C1 certain GCC header files and runtime libraries with the +compiled]&] +[s0;%- [C1 program. The purpose of this Exception is to allow compilation +of]&] +[s0;%- [C1 non`-GPL (including proprietary) programs to use, in this +way, the]&] +[s0;%- [C1 header files and runtime libraries covered by this Exception.]&] +[s0;C1%- &] +[s0;%- [C1 0. Definitions.]&] +[s0;C1%- &] +[s0;%- [C1 A file is an `"Independent Module`" if it either requires +the Runtime]&] +[s0;%- [C1 Library for execution after a Compilation Process, or makes +use of an]&] +[s0;%- [C1 interface provided by the Runtime Library, but is not otherwise +based]&] +[s0;%- [C1 on the Runtime Library.]&] +[s0;C1%- &] +[s0;%- [C1 `"GCC`" means a version of the GNU Compiler Collection, +with or without]&] +[s0;%- [C1 modifications, governed by version 3 (or a specified later +version) of]&] +[s0;%- [C1 the GNU General Public License (GPL) with the option of +using any]&] +[s0;%- [C1 subsequent versions published by the FSF.]&] +[s0;C1%- &] +[s0;%- [C1 `"GPL`-compatible Software`" is software whose conditions +of propagation,]&] +[s0;%- [C1 modification and use would permit combination with GCC in +accord with]&] +[s0;%- [C1 the license of GCC.]&] +[s0;C1%- &] +[s0;%- [C1 `"Target Code`" refers to output from any compiler for a +real or virtual]&] +[s0;%- [C1 target processor architecture, in executable form or suitable +for]&] +[s0;%- [C1 input to an assembler, loader, linker and/or execution]&] +[s0;%- [C1 phase. Notwithstanding that, Target Code does not include +data in any]&] +[s0;%- [C1 format that is used as a compiler intermediate representation, +or used]&] +[s0;%- [C1 for producing a compiler intermediate representation.]&] +[s0;C1%- &] +[s0;%- [C1 The `"Compilation Process`" transforms code entirely represented +in]&] +[s0;%- [C1 non`-intermediate languages designed for human`-written +code, and/or in]&] +[s0;%- [C1 Java Virtual Machine byte code, into Target Code. Thus, +for example,]&] +[s0;%- [C1 use of source code generators and preprocessors need not +be considered]&] +[s0;%- [C1 part of the Compilation Process, since the Compilation Process +can be]&] +[s0;%- [C1 understood as starting with the output of the generators +or]&] +[s0;%- [C1 preprocessors.]&] +[s0;C1%- &] +[s0;%- [C1 A Compilation Process is `"Eligible`" if it is done using +GCC, alone or]&] +[s0;%- [C1 with other GPL`-compatible software, or if it is done without +using any]&] +[s0;%- [C1 work based on GCC. For example, using non`-GPL`-compatible +Software to]&] +[s0;%- [C1 optimize any GCC intermediate representations would not +qualify as an]&] +[s0;%- [C1 Eligible Compilation Process.]&] +[s0;C1%- &] +[s0;%- [C1 1. Grant of Additional Permission.]&] +[s0;C1%- &] +[s0;%- [C1 You have permission to propagate a work of Target Code formed +by]&] +[s0;%- [C1 combining the Runtime Library with Independent Modules, +even if such]&] +[s0;%- [C1 propagation would otherwise violate the terms of GPLv3, +provided that]&] +[s0;%- [C1 all Target Code was generated by Eligible Compilation Processes. +You]&] +[s0;%- [C1 may then convey such a combination under terms of your choice,]&] +[s0;%- [C1 consistent with the licensing of the Independent Modules.]&] +[s0;C1%- &] +[s0;%- [C1 2. No Weakening of GCC Copyleft.]&] +[s0;C1%- &] +[s0;%- [C1 The availability of this Exception does not imply any general]&] +[s0;%- [C1 presumption that third`-party software is unaffected by +the copyleft]&] +[s0;%- [C1 requirements of the license of GCC.]&] +[s0;C1%- &] +[s0;C1%- ]}}&] +[s0;C1%- &] +[s0;C0%- &] +[s0;%- [C1 MINGW`-W64 runtime]&] +[ {{10000@(255.255.192) [s0;%- [C1 MinGW`-w64 runtime licensing]&] +[s0;%- [C1 `*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*]&] +[s0;C1%- &] +[s0;%- [C1 This program or library was built using MinGW`-w64 and statically]&] +[s0;%- [C1 linked against the MinGW`-w64 runtime. Some parts of the +runtime]&] +[s0;%- [C1 are under licenses which require that the copyright and +license]&] +[s0;%- [C1 notices are included when distributing the code in binary +form.]&] +[s0;%- [C1 These notices are listed below.]&] +[s0;C1%- &] +[s0;C1%- &] +[s0;%- [C1 `=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=]&] +[s0;%- [C1 Overall copyright notice]&] +[s0;%- [C1 `=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=]&] +[s0;C1%- &] +[s0;%- [C1 Copyright (c) 2009, 2010 by the mingw`-w64 project]&] +[s0;C1%- &] +[s0;%- [C1 This license has been certified as open source. It has also +been designated]&] +[s0;%- [C1 as GPL compatible by the Free Software Foundation (FSF).]&] +[s0;C1%- &] +[s0;%- [C1 Redistribution and use in source and binary forms, with +or without]&] +[s0;%- [C1 modification, are permitted provided that the following +conditions are met:]&] +[s0;C1%- &] +[s0;%- [C1 1. Redistributions in source code must retain the accompanying +copyright]&] +[s0;%- [C1 notice, this list of conditions, and the following +disclaimer.]&] +[s0;%- [C1 2. Redistributions in binary form must reproduce the +accompanying]&] +[s0;%- [C1 copyright notice, this list of conditions, and the +following disclaimer]&] +[s0;%- [C1 in the documentation and/or other materials provided +with the]&] +[s0;%- [C1 distribution.]&] +[s0;%- [C1 3. Names of the copyright holders must not be used to +endorse or promote]&] +[s0;%- [C1 products derived from this software without prior +written permission]&] +[s0;%- [C1 from the copyright holders.]&] +[s0;%- [C1 4. The right to distribute this software or to use it +for any purpose does]&] +[s0;%- [C1 not give you the right to use Servicemarks (sm) or +Trademarks (tm) of]&] +[s0;%- [C1 the copyright holders. Use of them is covered by +separate agreement]&] +[s0;%- [C1 with the copyright holders.]&] +[s0;%- [C1 5. If any files are modified, you must cause the modified +files to carry]&] +[s0;%- [C1 prominent notices stating that you changed the files +and the date of]&] +[s0;%- [C1 any change.]&] +[s0;C1%- &] +[s0;%- [C1 Disclaimer]&] +[s0;C1%- &] +[s0;%- [C1 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ````AS +IS`'`' AND ANY EXPRESSED]&] +[s0;%- [C1 OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES]&] +[s0;%- [C1 OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO]&] +[s0;%- [C1 EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY DIRECT, +INDIRECT,]&] +[s0;%- [C1 INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT]&] +[s0;%- [C1 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA,]&] +[s0;%- [C1 OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF]&] +[s0;%- [C1 LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING]&] +[s0;%- [C1 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE,]&] +[s0;%- [C1 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.]&] +[s0;C1%- &] +[s0;%- [C1 `=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`= +`=`= ]&] +[s0;%- [C1 getopt, getopt`_long, and getop`_long`_only]&] +[s0;%- [C1 `=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`= +`=`= ]&] +[s0;C1%- &] +[s0;%- [C1 Copyright (c) 2002 Todd C. Miller +]&] +[s0;%- [C1 ]&] +[s0;%- [C1 Permission to use, copy, modify, and distribute this software +for any ]&] +[s0;%- [C1 purpose with or without fee is hereby granted, provided +that the above ]&] +[s0;%- [C1 copyright notice and this permission notice appear in all +copies. ]&] +[s0;%- [C1 -| ]&] +[s0;%- [C1 THE SOFTWARE IS PROVIDED `"AS IS`" AND THE AUTHOR DISCLAIMS +ALL WARRANTIES]&] +[s0;%- [C1 WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES +OF]&] +[s0;%- [C1 MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR +BE LIABLE FOR]&] +[s0;%- [C1 ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES +OR ANY DAMAGES]&] +[s0;%- [C1 WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +WHETHER IN AN]&] +[s0;%- [C1 ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, +ARISING OUT OF]&] +[s0;%- [C1 OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.]&] +[s0;C1%- &] +[s0;%- [C1 Sponsored in part by the Defense Advanced Research Projects]&] +[s0;%- [C1 Agency (DARPA) and Air Force Research Laboratory, Air Force]&] +[s0;%- [C1 Materiel Command, USAF, under agreement number F39502`-99`-1`-0512.]&] +[s0;C1%- &] +[s0;%- [C1 `* `* `* `* `* `* + `* ]&] +[s0;C1%- &] +[s0;%- [C1 Copyright (c) 2000 The NetBSD Foundation, Inc.]&] +[s0;%- [C1 All rights reserved.]&] +[s0;C1%- &] +[s0;%- [C1 This code is derived from software contributed to The NetBSD +Foundation]&] +[s0;%- [C1 by Dieter Baron and Thomas Klausner.]&] +[s0;C1%- &] +[s0;%- [C1 Redistribution and use in source and binary forms, with +or without]&] +[s0;%- [C1 modification, are permitted provided that the following +conditions]&] +[s0;%- [C1 are met:]&] +[s0;%- [C1 1. Redistributions of source code must retain the above +copyright]&] +[s0;%- [C1 notice, this list of conditions and the following disclaimer.]&] +[s0;%- [C1 2. Redistributions in binary form must reproduce the above +copyright]&] +[s0;%- [C1 notice, this list of conditions and the following disclaimer +in the]&] +[s0;%- [C1 documentation and/or other materials provided with the +distribution.]&] +[s0;C1%- &] +[s0;%- [C1 THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. +AND CONTRIBUTORS]&] +[s0;%- [C1 ````AS IS`'`' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, +BUT NOT LIMITED]&] +[s0;%- [C1 TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR]&] +[s0;%- [C1 PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION +OR CONTRIBUTORS]&] +[s0;%- [C1 BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR]&] +[s0;%- [C1 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT +OF]&] +[s0;%- [C1 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +OR BUSINESS]&] +[s0;%- [C1 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN]&] +[s0;%- [C1 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +OR OTHERWISE)]&] +[s0;%- [C1 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN +IF ADVISED OF THE]&] +[s0;%- [C1 POSSIBILITY OF SUCH DAMAGE.]&] +[s0;C1%- &] +[s0;C1%- &] +[s0;%- [C1 `=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`= +`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=]&] +[s0;%- [C1 gdtoa: Converting between IEEE floating point numbers and +ASCII]&] +[s0;%- [C1 `=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`= +`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=]&] +[s0;C1%- &] +[s0;%- [C1 The author of this software is David M. Gay.]&] +[s0;C1%- &] +[s0;%- [C1 Copyright (C) 1997, 1998, 1999, 2000, 2001 by Lucent Technologies]&] +[s0;%- [C1 All Rights Reserved]&] +[s0;C1%- &] +[s0;%- [C1 Permission to use, copy, modify, and distribute this software +and]&] +[s0;%- [C1 its documentation for any purpose and without fee is hereby]&] +[s0;%- [C1 granted, provided that the above copyright notice appear +in all]&] +[s0;%- [C1 copies and that both that the copyright notice and this]&] +[s0;%- [C1 permission notice and warranty disclaimer appear in supporting]&] +[s0;%- [C1 documentation, and that the name of Lucent or any of its +entities]&] +[s0;%- [C1 not be used in advertising or publicity pertaining to]&] +[s0;%- [C1 distribution of the software without specific, written prior]&] +[s0;%- [C1 permission.]&] +[s0;C1%- &] +[s0;%- [C1 LUCENT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,]&] +[s0;%- [C1 INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS.]&] +[s0;%- [C1 IN NO EVENT SHALL LUCENT OR ANY OF ITS ENTITIES BE LIABLE +FOR ANY]&] +[s0;%- [C1 SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES]&] +[s0;%- [C1 WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +WHETHER]&] +[s0;%- [C1 IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,]&] +[s0;%- [C1 ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +OF]&] +[s0;%- [C1 THIS SOFTWARE.]&] +[s0;C1%- &] +[s0;%- [C1 `* `* `* `* `* `* + `*]&] +[s0;C1%- &] +[s0;%- [C1 The author of this software is David M. Gay.]&] +[s0;C1%- &] +[s0;%- [C1 Copyright (C) 2005 by David M. Gay]&] +[s0;%- [C1 All Rights Reserved]&] +[s0;C1%- &] +[s0;%- [C1 Permission to use, copy, modify, and distribute this software +and its]&] +[s0;%- [C1 documentation for any purpose and without fee is hereby +granted,]&] +[s0;%- [C1 provided that the above copyright notice appear in all copies +and that]&] +[s0;%- [C1 both that the copyright notice and this permission notice +and warranty]&] +[s0;%- [C1 disclaimer appear in supporting documentation, and that +the name of]&] +[s0;%- [C1 the author or any of his current or former employers not +be used in]&] +[s0;%- [C1 advertising or publicity pertaining to distribution of the +software]&] +[s0;%- [C1 without specific, written prior permission.]&] +[s0;C1%- &] +[s0;%- [C1 THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS +SOFTWARE,]&] +[s0;%- [C1 INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS. IN]&] +[s0;%- [C1 NO EVENT SHALL THE AUTHOR OR ANY OF HIS CURRENT OR FORMER +EMPLOYERS BE]&] +[s0;%- [C1 LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES +OR ANY]&] +[s0;%- [C1 DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,]&] +[s0;%- [C1 WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS +ACTION,]&] +[s0;%- [C1 ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +OF THIS]&] +[s0;%- [C1 SOFTWARE.]&] +[s0;C1%- &] +[s0;%- [C1 `* `* `* `* `* `* + `*]&] +[s0;C1%- &] +[s0;%- [C1 The author of this software is David M. Gay.]&] +[s0;C1%- &] +[s0;%- [C1 Copyright (C) 2004 by David M. Gay.]&] +[s0;%- [C1 All Rights Reserved]&] +[s0;%- [C1 Based on material in the rest of /netlib/fp/gdota.tar.gz,]&] +[s0;%- [C1 which is copyright (C) 1998, 2000 by Lucent Technologies.]&] +[s0;C1%- &] +[s0;%- [C1 Permission to use, copy, modify, and distribute this software +and]&] +[s0;%- [C1 its documentation for any purpose and without fee is hereby]&] +[s0;%- [C1 granted, provided that the above copyright notice appear +in all]&] +[s0;%- [C1 copies and that both that the copyright notice and this]&] +[s0;%- [C1 permission notice and warranty disclaimer appear in supporting]&] +[s0;%- [C1 documentation, and that the name of Lucent or any of its +entities]&] +[s0;%- [C1 not be used in advertising or publicity pertaining to]&] +[s0;%- [C1 distribution of the software without specific, written prior]&] +[s0;%- [C1 permission.]&] +[s0;C1%- &] +[s0;%- [C1 LUCENT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,]&] +[s0;%- [C1 INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS.]&] +[s0;%- [C1 IN NO EVENT SHALL LUCENT OR ANY OF ITS ENTITIES BE LIABLE +FOR ANY]&] +[s0;%- [C1 SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES]&] +[s0;%- [C1 WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +WHETHER]&] +[s0;%- [C1 IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,]&] +[s0;%- [C1 ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +OF]&] +[s0;%- [C1 THIS SOFTWARE.]&] +[s0;C1%- &] +[s0;C1%- &] +[s0;%- [C1 `=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=]&] +[s0;%- [C1 Parts of the math library]&] +[s0;%- [C1 `=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=]&] +[s0;C1%- &] +[s0;%- [C1 Copyright (C) 1993 by Sun Microsystems, Inc. All rights +reserved.]&] +[s0;C1%- &] +[s0;%- [C1 Developed at SunSoft, a Sun Microsystems, Inc. business.]&] +[s0;%- [C1 Permission to use, copy, modify, and distribute this]&] +[s0;%- [C1 software is freely granted, provided that this notice]&] +[s0;%- [C1 is preserved.]&] +[s0;C1%- &] +[s0;%- [C1 `* `* `* `* `* `* + `*]&] +[s0;C1%- &] +[s0;%- [C1 Copyright (C) 1993 by Sun Microsystems, Inc. All rights +reserved.]&] +[s0;C1%- &] +[s0;%- [C1 Developed at SunPro, a Sun Microsystems, Inc. business.]&] +[s0;%- [C1 Permission to use, copy, modify, and distribute this]&] +[s0;%- [C1 software is freely granted, provided that this notice]&] +[s0;%- [C1 is preserved.]&] +[s0;C1%- &] +[s0;%- [C1 `* `* `* `* `* `* + `*]&] +[s0;C1%- &] +[s0;%- [C1 FIXME: Cephes math lib]&] +[s0;%- [C1 Copyright (C) 1984`-1998 Stephen L. Moshier]&] +[s0;C1%- &] +[s0;%- [C1 It sounds vague, but as to be found at]&] +[s0;%- [C1 , +it gives an]&] +[s0;%- [C1 impression that the author could be willing to give an explicit]&] +[s0;%- [C1 permission to distribute those files e.g. under a BSD style +license. So]&] +[s0;%- [C1 probably there is no problem here, although it could be +good to get a]&] +[s0;%- [C1 permission from the author and then add a license into the +Cephes files]&] +[s0;%- [C1 in MinGW runtime. At least on follow`-up it is marked that +debian sees the]&] +[s0;%- [C1 version a`-like BSD one. As MinGW.org (where those cephes +parts are coming]&] +[s0;%- [C1 from) distributes them now over 6 years, it should be fine.]&] +[s0;C1%- &] +[s0;%- [C1 `=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=]&] +[s0;%- [C1 Headers and IDLs imported from Wine]&] +[s0;%- [C1 `=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=]&] +[s0;C1%- &] +[s0;%- [C1 Some header and IDL files were imported from the Wine project. +These files]&] +[s0;%- [C1 are prominent maked in source. Their copyright belongs to +contributors and]&] +[s0;%- [C1 they are distributed under LGPL license.]&] +[s0;C1%- &] +[s0;%- [C1 Disclaimer]&] +[s0;C1%- &] +[s0;%- [C1 This library is free software; you can redistribute it and/or]&] +[s0;%- [C1 modify it under the terms of the GNU Lesser General Public]&] +[s0;%- [C1 License as published by the Free Software Foundation; either]&] +[s0;%- [C1 version 2.1 of the License, or (at your option) any later +version.]&] +[s0;C1%- &] +[s0;%- [C1 This library is distributed in the hope that it will be +useful,]&] +[s0;%- [C1 but WITHOUT ANY WARRANTY; without even the implied warranty +of]&] +[s0;%- [C1 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See +the GNU]&] +[s0;%- [C1 Lesser General Public License for more details.]]}}&] +[s0;C1%- &] +[s0;C0%- &] +[s0;%- [C1 MINGW`-W64]&] +[ {{10000@(255.255.192) [s0;%- [C1 Copyright (c) 2011 mingw`-w64 project]&] +[s0;C1%- &] +[s0;%- [C1 Permission is hereby granted, free of charge, to any person +obtaining a]&] +[s0;%- [C1 copy of this software and associated documentation files +(the `"Software`"),]&] +[s0;%- [C1 to deal in the Software without restriction, including without +limitation]&] +[s0;%- [C1 the rights to use, copy, modify, merge, publish, distribute, +sublicense,]&] +[s0;%- [C1 and/or sell copies of the Software, and to permit persons +to whom the]&] +[s0;%- [C1 Software is furnished to do so, subject to the following +conditions:]&] +[s0;C1%- &] +[s0;%- [C1 The above copyright notice and this permission notice shall +be included in]&] +[s0;%- [C1 all copies or substantial portions of the Software.]&] +[s0;C1%- &] +[s0;%- [C1 THE SOFTWARE IS PROVIDED `"AS IS`", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR]&] +[s0;%- [C1 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY,]&] +[s0;%- [C1 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE]&] +[s0;%- [C1 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES +OR OTHER]&] +[s0;%- [C1 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING]&] +[s0;%- [C1 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE +OR OTHER]&] +[s0;%- [C1 DEALINGS IN THE SOFTWARE.]&] +[s0;C1%- &] +[s0;C1%- &] +[s0;%- [C1 /`*]&] +[s0;%- [C1 `* Parts of this library are derived by:]&] +[s0;%- [C1 `*]&] +[s0;%- [C1 `* Posix Threads library for Microsoft Windows]&] +[s0;%- [C1 `*]&] +[s0;%- [C1 `* Use at own risk, there is no implied warranty to this +code.]&] +[s0;%- [C1 `* It uses undocumented features of Microsoft Windows that +can change]&] +[s0;%- [C1 `* at any time in the future.]&] +[s0;%- [C1 `*]&] +[s0;%- [C1 `* (C) 2010 Lockless Inc.]&] +[s0;%- [C1 `* All rights reserved.]&] +[s0;%- [C1 `*]&] +[s0;%- [C1 `* Redistribution and use in source and binary forms, with +or without modification,]&] +[s0;%- [C1 `* are permitted provided that the following conditions +are met:]&] +[s0;%- [C1 `*]&] +[s0;%- [C1 `*]&] +[s0;%- [C1 `* `* Redistributions of source code must retain the above +copyright notice,]&] +[s0;%- [C1 `* this list of conditions and the following disclaimer.]&] +[s0;%- [C1 `* `* Redistributions in binary form must reproduce the +above copyright notice,]&] +[s0;%- [C1 `* this list of conditions and the following disclaimer +in the documentation]&] +[s0;%- [C1 `* and/or other materials provided with the distribution.]&] +[s0;%- [C1 `* `* Neither the name of Lockless Inc. nor the names +of its contributors may be]&] +[s0;%- [C1 `* used to endorse or promote products derived from +this software without]&] +[s0;%- [C1 `* specific prior written permission.]&] +[s0;%- [C1 `*]&] +[s0;%- [C1 `* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND +CONTRIBUTORS `"AS IS`" AN]&] +[s0;%- [C1 `* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED]&] +[s0;%- [C1 `* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED.]&] +[s0;%- [C1 `* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS +BE LIABLE FOR ANY DIRECT,]&] +[s0;%- [C1 `* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING,]&] +[s0;%- [C1 `* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE,]&] +[s0;%- [C1 `* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF]&] +[s0;%- [C1 `* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR +TORT (INCLUDING NEGLIGENCE]&] +[s0;%- [C1 `* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED]&] +[s0;%- [C1 `* OF THE POSSIBILITY OF SUCH DAMAGE.]&] +[s0;%- [C1 `*/]&] +[s0;C1%- ]}}&] +[s0;C1%- &] +[s0;C0%- &] +[s0;%- [C1 GCC, binutils]&] +[ {{10000@(255.255.192) [s0;%- [C1 GNU GENERAL PUBLIC LICENSE]&] +[s0;%- [C1 Version 3, 29 June 2007]&] +[s0;C1%- &] +[s0;%- [C1 Copyright (C) 2007 Free Software Foundation, Inc. ]&] +[s0;%- [C1 Everyone is permitted to copy and distribute verbatim copies]&] +[s0;%- [C1 of this license document, but changing it is not allowed.]&] +[s0;C1%- &] +[s0;%- [C1 Preamble]&] +[s0;C1%- &] +[s0;%- [C1 The GNU General Public License is a free, copyleft license +for]&] +[s0;%- [C1 software and other kinds of works.]&] +[s0;C1%- &] +[s0;%- [C1 The licenses for most software and other practical works +are designed]&] +[s0;%- [C1 to take away your freedom to share and change the works. + By contrast,]&] +[s0;%- [C1 the GNU General Public License is intended to guarantee +your freedom to]&] +[s0;%- [C1 share and change all versions of a program`-`-to make sure +it remains free]&] +[s0;%- [C1 software for all its users. We, the Free Software Foundation, +use the]&] +[s0;%- [C1 GNU General Public License for most of our software; it +applies also to]&] +[s0;%- [C1 any other work released this way by its authors. You can +apply it to]&] +[s0;%- [C1 your programs, too.]&] +[s0;C1%- &] +[s0;%- [C1 When we speak of free software, we are referring to freedom, +not]&] +[s0;%- [C1 price. Our General Public Licenses are designed to make +sure that you]&] +[s0;%- [C1 have the freedom to distribute copies of free software (and +charge for]&] +[s0;%- [C1 them if you wish), that you receive source code or can get +it if you]&] +[s0;%- [C1 want it, that you can change the software or use pieces +of it in new]&] +[s0;%- [C1 free programs, and that you know you can do these things.]&] +[s0;C1%- &] +[s0;%- [C1 To protect your rights, we need to prevent others from +denying you]&] +[s0;%- [C1 these rights or asking you to surrender the rights. Therefore, +you have]&] +[s0;%- [C1 certain responsibilities if you distribute copies of the +software, or if]&] +[s0;%- [C1 you modify it: responsibilities to respect the freedom of +others.]&] +[s0;C1%- &] +[s0;%- [C1 For example, if you distribute copies of such a program, +whether]&] +[s0;%- [C1 gratis or for a fee, you must pass on to the recipients +the same]&] +[s0;%- [C1 freedoms that you received. You must make sure that they, +too, receive]&] +[s0;%- [C1 or can get the source code. And you must show them these +terms so they]&] +[s0;%- [C1 know their rights.]&] +[s0;C1%- &] +[s0;%- [C1 Developers that use the GNU GPL protect your rights with +two steps:]&] +[s0;%- [C1 (1) assert copyright on the software, and (2) offer you +this License]&] +[s0;%- [C1 giving you legal permission to copy, distribute and/or modify +it.]&] +[s0;C1%- &] +[s0;%- [C1 For the developers`' and authors`' protection, the GPL +clearly explains]&] +[s0;%- [C1 that there is no warranty for this free software. For both +users`' and]&] +[s0;%- [C1 authors`' sake, the GPL requires that modified versions +be marked as]&] +[s0;%- [C1 changed, so that their problems will not be attributed erroneously +to]&] +[s0;%- [C1 authors of previous versions.]&] +[s0;C1%- &] +[s0;%- [C1 Some devices are designed to deny users access to install +or run]&] +[s0;%- [C1 modified versions of the software inside them, although +the manufacturer]&] +[s0;%- [C1 can do so. This is fundamentally incompatible with the +aim of]&] +[s0;%- [C1 protecting users`' freedom to change the software. The +systematic]&] +[s0;%- [C1 pattern of such abuse occurs in the area of products for +individuals to]&] +[s0;%- [C1 use, which is precisely where it is most unacceptable. +Therefore, we]&] +[s0;%- [C1 have designed this version of the GPL to prohibit the practice +for those]&] +[s0;%- [C1 products. If such problems arise substantially in other +domains, we]&] +[s0;%- [C1 stand ready to extend this provision to those domains in +future versions]&] +[s0;%- [C1 of the GPL, as needed to protect the freedom of users.]&] +[s0;C1%- &] +[s0;%- [C1 Finally, every program is threatened constantly by software +patents.]&] +[s0;%- [C1 States should not allow patents to restrict development +and use of]&] +[s0;%- [C1 software on general`-purpose computers, but in those that +do, we wish to]&] +[s0;%- [C1 avoid the special danger that patents applied to a free +program could]&] +[s0;%- [C1 make it effectively proprietary. To prevent this, the GPL +assures that]&] +[s0;%- [C1 patents cannot be used to render the program non`-free.]&] +[s0;C1%- &] +[s0;%- [C1 The precise terms and conditions for copying, distribution +and]&] +[s0;%- [C1 modification follow.]&] +[s0;C1%- &] +[s0;%- [C1 TERMS AND CONDITIONS]&] +[s0;C1%- &] +[s0;%- [C1 0. Definitions.]&] +[s0;C1%- &] +[s0;%- [C1 `"This License`" refers to version 3 of the GNU General +Public License.]&] +[s0;C1%- &] +[s0;%- [C1 `"Copyright`" also means copyright`-like laws that apply +to other kinds of]&] +[s0;%- [C1 works, such as semiconductor masks.]&] +[s0;C1%- &] +[s0;%- [C1 `"The Program`" refers to any copyrightable work licensed +under this]&] +[s0;%- [C1 License. Each licensee is addressed as `"you`". `"Licensees`" +and]&] +[s0;%- [C1 `"recipients`" may be individuals or organizations.]&] +[s0;C1%- &] +[s0;%- [C1 To `"modify`" a work means to copy from or adapt all or +part of the work]&] +[s0;%- [C1 in a fashion requiring copyright permission, other than +the making of an]&] +[s0;%- [C1 exact copy. The resulting work is called a `"modified version`" +of the]&] +[s0;%- [C1 earlier work or a work `"based on`" the earlier work.]&] +[s0;C1%- &] +[s0;%- [C1 A `"covered work`" means either the unmodified Program +or a work based]&] +[s0;%- [C1 on the Program.]&] +[s0;C1%- &] +[s0;%- [C1 To `"propagate`" a work means to do anything with it that, +without]&] +[s0;%- [C1 permission, would make you directly or secondarily liable +for]&] +[s0;%- [C1 infringement under applicable copyright law, except executing +it on a]&] +[s0;%- [C1 computer or modifying a private copy. Propagation includes +copying,]&] +[s0;%- [C1 distribution (with or without modification), making available +to the]&] +[s0;%- [C1 public, and in some countries other activities as well.]&] +[s0;C1%- &] +[s0;%- [C1 To `"convey`" a work means any kind of propagation that +enables other]&] +[s0;%- [C1 parties to make or receive copies. Mere interaction with +a user through]&] +[s0;%- [C1 a computer network, with no transfer of a copy, is not conveying.]&] +[s0;C1%- &] +[s0;%- [C1 An interactive user interface displays `"Appropriate Legal +Notices`"]&] +[s0;%- [C1 to the extent that it includes a convenient and prominently +visible]&] +[s0;%- [C1 feature that (1) displays an appropriate copyright notice, +and (2)]&] +[s0;%- [C1 tells the user that there is no warranty for the work (except +to the]&] +[s0;%- [C1 extent that warranties are provided), that licensees may +convey the]&] +[s0;%- [C1 work under this License, and how to view a copy of this +License. If]&] +[s0;%- [C1 the interface presents a list of user commands or options, +such as a]&] +[s0;%- [C1 menu, a prominent item in the list meets this criterion.]&] +[s0;C1%- &] +[s0;%- [C1 1. Source Code.]&] +[s0;C1%- &] +[s0;%- [C1 The `"source code`" for a work means the preferred form +of the work]&] +[s0;%- [C1 for making modifications to it. `"Object code`" means any +non`-source]&] +[s0;%- [C1 form of a work.]&] +[s0;C1%- &] +[s0;%- [C1 A `"Standard Interface`" means an interface that either +is an official]&] +[s0;%- [C1 standard defined by a recognized standards body, or, in +the case of]&] +[s0;%- [C1 interfaces specified for a particular programming language, +one that]&] +[s0;%- [C1 is widely used among developers working in that language.]&] +[s0;C1%- &] +[s0;%- [C1 The `"System Libraries`" of an executable work include +anything, other]&] +[s0;%- [C1 than the work as a whole, that (a) is included in the normal +form of]&] +[s0;%- [C1 packaging a Major Component, but which is not part of that +Major]&] +[s0;%- [C1 Component, and (b) serves only to enable use of the work +with that]&] +[s0;%- [C1 Major Component, or to implement a Standard Interface for +which an]&] +[s0;%- [C1 implementation is available to the public in source code +form. A]&] +[s0;%- [C1 `"Major Component`", in this context, means a major essential +component]&] +[s0;%- [C1 (kernel, window system, and so on) of the specific operating +system]&] +[s0;%- [C1 (if any) on which the executable work runs, or a compiler +used to]&] +[s0;%- [C1 produce the work, or an object code interpreter used to +run it.]&] +[s0;C1%- &] +[s0;%- [C1 The `"Corresponding Source`" for a work in object code +form means all]&] +[s0;%- [C1 the source code needed to generate, install, and (for an +executable]&] +[s0;%- [C1 work) run the object code and to modify the work, including +scripts to]&] +[s0;%- [C1 control those activities. However, it does not include +the work`'s]&] +[s0;%- [C1 System Libraries, or general`-purpose tools or generally +available free]&] +[s0;%- [C1 programs which are used unmodified in performing those activities +but]&] +[s0;%- [C1 which are not part of the work. For example, Corresponding +Source]&] +[s0;%- [C1 includes interface definition files associated with source +files for]&] +[s0;%- [C1 the work, and the source code for shared libraries and dynamically]&] +[s0;%- [C1 linked subprograms that the work is specifically designed +to require,]&] +[s0;%- [C1 such as by intimate data communication or control flow between +those]&] +[s0;%- [C1 subprograms and other parts of the work.]&] +[s0;C1%- &] +[s0;%- [C1 The Corresponding Source need not include anything that +users]&] +[s0;%- [C1 can regenerate automatically from other parts of the Corresponding]&] +[s0;%- [C1 Source.]&] +[s0;C1%- &] +[s0;%- [C1 The Corresponding Source for a work in source code form +is that]&] +[s0;%- [C1 same work.]&] +[s0;C1%- &] +[s0;%- [C1 2. Basic Permissions.]&] +[s0;C1%- &] +[s0;%- [C1 All rights granted under this License are granted for +the term of]&] +[s0;%- [C1 copyright on the Program, and are irrevocable provided the +stated]&] +[s0;%- [C1 conditions are met. This License explicitly affirms your +unlimited]&] +[s0;%- [C1 permission to run the unmodified Program. The output from +running a]&] +[s0;%- [C1 covered work is covered by this License only if the output, +given its]&] +[s0;%- [C1 content, constitutes a covered work. This License acknowledges +your]&] +[s0;%- [C1 rights of fair use or other equivalent, as provided by copyright +law.]&] +[s0;C1%- &] +[s0;%- [C1 You may make, run and propagate covered works that you +do not]&] +[s0;%- [C1 convey, without conditions so long as your license otherwise +remains]&] +[s0;%- [C1 in force. You may convey covered works to others for the +sole purpose]&] +[s0;%- [C1 of having them make modifications exclusively for you, or +provide you]&] +[s0;%- [C1 with facilities for running those works, provided that you +comply with]&] +[s0;%- [C1 the terms of this License in conveying all material for +which you do]&] +[s0;%- [C1 not control copyright. Those thus making or running the +covered works]&] +[s0;%- [C1 for you must do so exclusively on your behalf, under your +direction]&] +[s0;%- [C1 and control, on terms that prohibit them from making any +copies of]&] +[s0;%- [C1 your copyrighted material outside their relationship with +you.]&] +[s0;C1%- &] +[s0;%- [C1 Conveying under any other circumstances is permitted solely +under]&] +[s0;%- [C1 the conditions stated below. Sublicensing is not allowed; +section 10]&] +[s0;%- [C1 makes it unnecessary.]&] +[s0;C1%- &] +[s0;%- [C1 3. Protecting Users`' Legal Rights From Anti`-Circumvention +Law.]&] +[s0;C1%- &] +[s0;%- [C1 No covered work shall be deemed part of an effective technological]&] +[s0;%- [C1 measure under any applicable law fulfilling obligations +under article]&] +[s0;%- [C1 11 of the WIPO copyright treaty adopted on 20 December 1996, +or]&] +[s0;%- [C1 similar laws prohibiting or restricting circumvention of +such]&] +[s0;%- [C1 measures.]&] +[s0;C1%- &] +[s0;%- [C1 When you convey a covered work, you waive any legal power +to forbid]&] +[s0;%- [C1 circumvention of technological measures to the extent such +circumvention]&] +[s0;%- [C1 is effected by exercising rights under this License with +respect to]&] +[s0;%- [C1 the covered work, and you disclaim any intention to limit +operation or]&] +[s0;%- [C1 modification of the work as a means of enforcing, against +the work`'s]&] +[s0;%- [C1 users, your or third parties`' legal rights to forbid circumvention +of]&] +[s0;%- [C1 technological measures.]&] +[s0;C1%- &] +[s0;%- [C1 4. Conveying Verbatim Copies.]&] +[s0;C1%- &] +[s0;%- [C1 You may convey verbatim copies of the Program`'s source +code as you]&] +[s0;%- [C1 receive it, in any medium, provided that you conspicuously +and]&] +[s0;%- [C1 appropriately publish on each copy an appropriate copyright +notice;]&] +[s0;%- [C1 keep intact all notices stating that this License and any]&] +[s0;%- [C1 non`-permissive terms added in accord with section 7 apply +to the code;]&] +[s0;%- [C1 keep intact all notices of the absence of any warranty; +and give all]&] +[s0;%- [C1 recipients a copy of this License along with the Program.]&] +[s0;C1%- &] +[s0;%- [C1 You may charge any price or no price for each copy that +you convey,]&] +[s0;%- [C1 and you may offer support or warranty protection for a fee.]&] +[s0;C1%- &] +[s0;%- [C1 5. Conveying Modified Source Versions.]&] +[s0;C1%- &] +[s0;%- [C1 You may convey a work based on the Program, or the modifications +to]&] +[s0;%- [C1 produce it from the Program, in the form of source code +under the]&] +[s0;%- [C1 terms of section 4, provided that you also meet all of these +conditions:]&] +[s0;C1%- &] +[s0;%- [C1 a) The work must carry prominent notices stating that +you modified]&] +[s0;%- [C1 it, and giving a relevant date.]&] +[s0;C1%- &] +[s0;%- [C1 b) The work must carry prominent notices stating that +it is]&] +[s0;%- [C1 released under this License and any conditions added +under section]&] +[s0;%- [C1 7. This requirement modifies the requirement in section +4 to]&] +[s0;%- [C1 `"keep intact all notices`".]&] +[s0;C1%- &] +[s0;%- [C1 c) You must license the entire work, as a whole, under +this]&] +[s0;%- [C1 License to anyone who comes into possession of a copy. + This]&] +[s0;%- [C1 License will therefore apply, along with any applicable +section 7]&] +[s0;%- [C1 additional terms, to the whole of the work, and all +its parts,]&] +[s0;%- [C1 regardless of how they are packaged. This License gives +no]&] +[s0;%- [C1 permission to license the work in any other way, but +it does not]&] +[s0;%- [C1 invalidate such permission if you have separately received +it.]&] +[s0;C1%- &] +[s0;%- [C1 d) If the work has interactive user interfaces, each +must display]&] +[s0;%- [C1 Appropriate Legal Notices; however, if the Program has +interactive]&] +[s0;%- [C1 interfaces that do not display Appropriate Legal Notices, +your]&] +[s0;%- [C1 work need not make them do so.]&] +[s0;C1%- &] +[s0;%- [C1 A compilation of a covered work with other separate and +independent]&] +[s0;%- [C1 works, which are not by their nature extensions of the covered +work,]&] +[s0;%- [C1 and which are not combined with it such as to form a larger +program,]&] +[s0;%- [C1 in or on a volume of a storage or distribution medium, is +called an]&] +[s0;%- [C1 `"aggregate`" if the compilation and its resulting copyright +are not]&] +[s0;%- [C1 used to limit the access or legal rights of the compilation`'s +users]&] +[s0;%- [C1 beyond what the individual works permit. Inclusion of a +covered work]&] +[s0;%- [C1 in an aggregate does not cause this License to apply to +the other]&] +[s0;%- [C1 parts of the aggregate.]&] +[s0;C1%- &] +[s0;%- [C1 6. Conveying Non`-Source Forms.]&] +[s0;C1%- &] +[s0;%- [C1 You may convey a covered work in object code form under +the terms]&] +[s0;%- [C1 of sections 4 and 5, provided that you also convey the]&] +[s0;%- [C1 machine`-readable Corresponding Source under the terms of +this License,]&] +[s0;%- [C1 in one of these ways:]&] +[s0;C1%- &] +[s0;%- [C1 a) Convey the object code in, or embodied in, a physical +product]&] +[s0;%- [C1 (including a physical distribution medium), accompanied +by the]&] +[s0;%- [C1 Corresponding Source fixed on a durable physical medium]&] +[s0;%- [C1 customarily used for software interchange.]&] +[s0;C1%- &] +[s0;%- [C1 b) Convey the object code in, or embodied in, a physical +product]&] +[s0;%- [C1 (including a physical distribution medium), accompanied +by a]&] +[s0;%- [C1 written offer, valid for at least three years and valid +for as]&] +[s0;%- [C1 long as you offer spare parts or customer support for +that product]&] +[s0;%- [C1 model, to give anyone who possesses the object code +either (1) a]&] +[s0;%- [C1 copy of the Corresponding Source for all the software +in the]&] +[s0;%- [C1 product that is covered by this License, on a durable +physical]&] +[s0;%- [C1 medium customarily used for software interchange, for +a price no]&] +[s0;%- [C1 more than your reasonable cost of physically performing +this]&] +[s0;%- [C1 conveying of source, or (2) access to copy the]&] +[s0;%- [C1 Corresponding Source from a network server at no charge.]&] +[s0;C1%- &] +[s0;%- [C1 c) Convey individual copies of the object code with +a copy of the]&] +[s0;%- [C1 written offer to provide the Corresponding Source. +This]&] +[s0;%- [C1 alternative is allowed only occasionally and noncommercially, +and]&] +[s0;%- [C1 only if you received the object code with such an offer, +in accord]&] +[s0;%- [C1 with subsection 6b.]&] +[s0;C1%- &] +[s0;%- [C1 d) Convey the object code by offering access from a +designated]&] +[s0;%- [C1 place (gratis or for a charge), and offer equivalent +access to the]&] +[s0;%- [C1 Corresponding Source in the same way through the same +place at no]&] +[s0;%- [C1 further charge. You need not require recipients to +copy the]&] +[s0;%- [C1 Corresponding Source along with the object code. If +the place to]&] +[s0;%- [C1 copy the object code is a network server, the Corresponding +Source]&] +[s0;%- [C1 may be on a different server (operated by you or a third +party)]&] +[s0;%- [C1 that supports equivalent copying facilities, provided +you maintain]&] +[s0;%- [C1 clear directions next to the object code saying where +to find the]&] +[s0;%- [C1 Corresponding Source. Regardless of what server hosts +the]&] +[s0;%- [C1 Corresponding Source, you remain obligated to ensure +that it is]&] +[s0;%- [C1 available for as long as needed to satisfy these requirements.]&] +[s0;C1%- &] +[s0;%- [C1 e) Convey the object code using peer`-to`-peer transmission, +provided]&] +[s0;%- [C1 you inform other peers where the object code and Corresponding]&] +[s0;%- [C1 Source of the work are being offered to the general +public at no]&] +[s0;%- [C1 charge under subsection 6d.]&] +[s0;C1%- &] +[s0;%- [C1 A separable portion of the object code, whose source code +is excluded]&] +[s0;%- [C1 from the Corresponding Source as a System Library, need +not be]&] +[s0;%- [C1 included in conveying the object code work.]&] +[s0;C1%- &] +[s0;%- [C1 A `"User Product`" is either (1) a `"consumer product`", +which means any]&] +[s0;%- [C1 tangible personal property which is normally used for personal, +family,]&] +[s0;%- [C1 or household purposes, or (2) anything designed or sold +for incorporation]&] +[s0;%- [C1 into a dwelling. In determining whether a product is a +consumer product,]&] +[s0;%- [C1 doubtful cases shall be resolved in favor of coverage. +For a particular]&] +[s0;%- [C1 product received by a particular user, `"normally used`" +refers to a]&] +[s0;%- [C1 typical or common use of that class of product, regardless +of the status]&] +[s0;%- [C1 of the particular user or of the way in which the particular +user]&] +[s0;%- [C1 actually uses, or expects or is expected to use, the product. + A product]&] +[s0;%- [C1 is a consumer product regardless of whether the product +has substantial]&] +[s0;%- [C1 commercial, industrial or non`-consumer uses, unless such +uses represent]&] +[s0;%- [C1 the only significant mode of use of the product.]&] +[s0;C1%- &] +[s0;%- [C1 `"Installation Information`" for a User Product means +any methods,]&] +[s0;%- [C1 procedures, authorization keys, or other information required +to install]&] +[s0;%- [C1 and execute modified versions of a covered work in that +User Product from]&] +[s0;%- [C1 a modified version of its Corresponding Source. The information +must]&] +[s0;%- [C1 suffice to ensure that the continued functioning of the +modified object]&] +[s0;%- [C1 code is in no case prevented or interfered with solely because]&] +[s0;%- [C1 modification has been made.]&] +[s0;C1%- &] +[s0;%- [C1 If you convey an object code work under this section in, +or with, or]&] +[s0;%- [C1 specifically for use in, a User Product, and the conveying +occurs as]&] +[s0;%- [C1 part of a transaction in which the right of possession and +use of the]&] +[s0;%- [C1 User Product is transferred to the recipient in perpetuity +or for a]&] +[s0;%- [C1 fixed term (regardless of how the transaction is characterized), +the]&] +[s0;%- [C1 Corresponding Source conveyed under this section must be +accompanied]&] +[s0;%- [C1 by the Installation Information. But this requirement does +not apply]&] +[s0;%- [C1 if neither you nor any third party retains the ability to +install]&] +[s0;%- [C1 modified object code on the User Product (for example, the +work has]&] +[s0;%- [C1 been installed in ROM).]&] +[s0;C1%- &] +[s0;%- [C1 The requirement to provide Installation Information does +not include a]&] +[s0;%- [C1 requirement to continue to provide support service, warranty, +or updates]&] +[s0;%- [C1 for a work that has been modified or installed by the recipient, +or for]&] +[s0;%- [C1 the User Product in which it has been modified or installed. + Access to a]&] +[s0;%- [C1 network may be denied when the modification itself materially +and]&] +[s0;%- [C1 adversely affects the operation of the network or violates +the rules and]&] +[s0;%- [C1 protocols for communication across the network.]&] +[s0;C1%- &] +[s0;%- [C1 Corresponding Source conveyed, and Installation Information +provided,]&] +[s0;%- [C1 in accord with this section must be in a format that is +publicly]&] +[s0;%- [C1 documented (and with an implementation available to the +public in]&] +[s0;%- [C1 source code form), and must require no special password +or key for]&] +[s0;%- [C1 unpacking, reading or copying.]&] +[s0;C1%- &] +[s0;%- [C1 7. Additional Terms.]&] +[s0;C1%- &] +[s0;%- [C1 `"Additional permissions`" are terms that supplement the +terms of this]&] +[s0;%- [C1 License by making exceptions from one or more of its conditions.]&] +[s0;%- [C1 Additional permissions that are applicable to the entire +Program shall]&] +[s0;%- [C1 be treated as though they were included in this License, +to the extent]&] +[s0;%- [C1 that they are valid under applicable law. If additional +permissions]&] +[s0;%- [C1 apply only to part of the Program, that part may be used +separately]&] +[s0;%- [C1 under those permissions, but the entire Program remains +governed by]&] +[s0;%- [C1 this License without regard to the additional permissions.]&] +[s0;C1%- &] +[s0;%- [C1 When you convey a copy of a covered work, you may at your +option]&] +[s0;%- [C1 remove any additional permissions from that copy, or from +any part of]&] +[s0;%- [C1 it. (Additional permissions may be written to require their +own]&] +[s0;%- [C1 removal in certain cases when you modify the work.) You +may place]&] +[s0;%- [C1 additional permissions on material, added by you to a covered +work,]&] +[s0;%- [C1 for which you have or can give appropriate copyright permission.]&] +[s0;C1%- &] +[s0;%- [C1 Notwithstanding any other provision of this License, for +material you]&] +[s0;%- [C1 add to a covered work, you may (if authorized by the copyright +holders of]&] +[s0;%- [C1 that material) supplement the terms of this License with +terms:]&] +[s0;C1%- &] +[s0;%- [C1 a) Disclaiming warranty or limiting liability differently +from the]&] +[s0;%- [C1 terms of sections 15 and 16 of this License; or]&] +[s0;C1%- &] +[s0;%- [C1 b) Requiring preservation of specified reasonable legal +notices or]&] +[s0;%- [C1 author attributions in that material or in the Appropriate +Legal]&] +[s0;%- [C1 Notices displayed by works containing it; or]&] +[s0;C1%- &] +[s0;%- [C1 c) Prohibiting misrepresentation of the origin of that +material, or]&] +[s0;%- [C1 requiring that modified versions of such material be +marked in]&] +[s0;%- [C1 reasonable ways as different from the original version; +or]&] +[s0;C1%- &] +[s0;%- [C1 d) Limiting the use for publicity purposes of names +of licensors or]&] +[s0;%- [C1 authors of the material; or]&] +[s0;C1%- &] +[s0;%- [C1 e) Declining to grant rights under trademark law for +use of some]&] +[s0;%- [C1 trade names, trademarks, or service marks; or]&] +[s0;C1%- &] +[s0;%- [C1 f) Requiring indemnification of licensors and authors +of that]&] +[s0;%- [C1 material by anyone who conveys the material (or modified +versions of]&] +[s0;%- [C1 it) with contractual assumptions of liability to the +recipient, for]&] +[s0;%- [C1 any liability that these contractual assumptions directly +impose on]&] +[s0;%- [C1 those licensors and authors.]&] +[s0;C1%- &] +[s0;%- [C1 All other non`-permissive additional terms are considered +`"further]&] +[s0;%- [C1 restrictions`" within the meaning of section 10. If the +Program as you]&] +[s0;%- [C1 received it, or any part of it, contains a notice stating +that it is]&] +[s0;%- [C1 governed by this License along with a term that is a further]&] +[s0;%- [C1 restriction, you may remove that term. If a license document +contains]&] +[s0;%- [C1 a further restriction but permits relicensing or conveying +under this]&] +[s0;%- [C1 License, you may add to a covered work material governed +by the terms]&] +[s0;%- [C1 of that license document, provided that the further restriction +does]&] +[s0;%- [C1 not survive such relicensing or conveying.]&] +[s0;C1%- &] +[s0;%- [C1 If you add terms to a covered work in accord with this +section, you]&] +[s0;%- [C1 must place, in the relevant source files, a statement of +the]&] +[s0;%- [C1 additional terms that apply to those files, or a notice +indicating]&] +[s0;%- [C1 where to find the applicable terms.]&] +[s0;C1%- &] +[s0;%- [C1 Additional terms, permissive or non`-permissive, may be +stated in the]&] +[s0;%- [C1 form of a separately written license, or stated as exceptions;]&] +[s0;%- [C1 the above requirements apply either way.]&] +[s0;C1%- &] +[s0;%- [C1 8. Termination.]&] +[s0;C1%- &] +[s0;%- [C1 You may not propagate or modify a covered work except +as expressly]&] +[s0;%- [C1 provided under this License. Any attempt otherwise to propagate +or]&] +[s0;%- [C1 modify it is void, and will automatically terminate your +rights under]&] +[s0;%- [C1 this License (including any patent licenses granted under +the third]&] +[s0;%- [C1 paragraph of section 11).]&] +[s0;C1%- &] +[s0;%- [C1 However, if you cease all violation of this License, then +your]&] +[s0;%- [C1 license from a particular copyright holder is reinstated +(a)]&] +[s0;%- [C1 provisionally, unless and until the copyright holder explicitly +and]&] +[s0;%- [C1 finally terminates your license, and (b) permanently, if +the copyright]&] +[s0;%- [C1 holder fails to notify you of the violation by some reasonable +means]&] +[s0;%- [C1 prior to 60 days after the cessation.]&] +[s0;C1%- &] +[s0;%- [C1 Moreover, your license from a particular copyright holder +is]&] +[s0;%- [C1 reinstated permanently if the copyright holder notifies +you of the]&] +[s0;%- [C1 violation by some reasonable means, this is the first time +you have]&] +[s0;%- [C1 received notice of violation of this License (for any work) +from that]&] +[s0;%- [C1 copyright holder, and you cure the violation prior to 30 +days after]&] +[s0;%- [C1 your receipt of the notice.]&] +[s0;C1%- &] +[s0;%- [C1 Termination of your rights under this section does not +terminate the]&] +[s0;%- [C1 licenses of parties who have received copies or rights from +you under]&] +[s0;%- [C1 this License. If your rights have been terminated and not +permanently]&] +[s0;%- [C1 reinstated, you do not qualify to receive new licenses for +the same]&] +[s0;%- [C1 material under section 10.]&] +[s0;C1%- &] +[s0;%- [C1 9. Acceptance Not Required for Having Copies.]&] +[s0;C1%- &] +[s0;%- [C1 You are not required to accept this License in order to +receive or]&] +[s0;%- [C1 run a copy of the Program. Ancillary propagation of a covered +work]&] +[s0;%- [C1 occurring solely as a consequence of using peer`-to`-peer +transmission]&] +[s0;%- [C1 to receive a copy likewise does not require acceptance. + However,]&] +[s0;%- [C1 nothing other than this License grants you permission to +propagate or]&] +[s0;%- [C1 modify any covered work. These actions infringe copyright +if you do]&] +[s0;%- [C1 not accept this License. Therefore, by modifying or propagating +a]&] +[s0;%- [C1 covered work, you indicate your acceptance of this License +to do so.]&] +[s0;C1%- &] +[s0;%- [C1 10. Automatic Licensing of Downstream Recipients.]&] +[s0;C1%- &] +[s0;%- [C1 Each time you convey a covered work, the recipient automatically]&] +[s0;%- [C1 receives a license from the original licensors, to run, +modify and]&] +[s0;%- [C1 propagate that work, subject to this License. You are not +responsible]&] +[s0;%- [C1 for enforcing compliance by third parties with this License.]&] +[s0;C1%- &] +[s0;%- [C1 An `"entity transaction`" is a transaction transferring +control of an]&] +[s0;%- [C1 organization, or substantially all assets of one, or subdividing +an]&] +[s0;%- [C1 organization, or merging organizations. If propagation +of a covered]&] +[s0;%- [C1 work results from an entity transaction, each party to that]&] +[s0;%- [C1 transaction who receives a copy of the work also receives +whatever]&] +[s0;%- [C1 licenses to the work the party`'s predecessor in interest +had or could]&] +[s0;%- [C1 give under the previous paragraph, plus a right to possession +of the]&] +[s0;%- [C1 Corresponding Source of the work from the predecessor in +interest, if]&] +[s0;%- [C1 the predecessor has it or can get it with reasonable efforts.]&] +[s0;C1%- &] +[s0;%- [C1 You may not impose any further restrictions on the exercise +of the]&] +[s0;%- [C1 rights granted or affirmed under this License. For example, +you may]&] +[s0;%- [C1 not impose a license fee, royalty, or other charge for exercise +of]&] +[s0;%- [C1 rights granted under this License, and you may not initiate +litigation]&] +[s0;%- [C1 (including a cross`-claim or counterclaim in a lawsuit) +alleging that]&] +[s0;%- [C1 any patent claim is infringed by making, using, selling, +offering for]&] +[s0;%- [C1 sale, or importing the Program or any portion of it.]&] +[s0;C1%- &] +[s0;%- [C1 11. Patents.]&] +[s0;C1%- &] +[s0;%- [C1 A `"contributor`" is a copyright holder who authorizes +use under this]&] +[s0;%- [C1 License of the Program or a work on which the Program is +based. The]&] +[s0;%- [C1 work thus licensed is called the contributor`'s `"contributor +version`".]&] +[s0;C1%- &] +[s0;%- [C1 A contributor`'s `"essential patent claims`" are all patent +claims]&] +[s0;%- [C1 owned or controlled by the contributor, whether already +acquired or]&] +[s0;%- [C1 hereafter acquired, that would be infringed by some manner, +permitted]&] +[s0;%- [C1 by this License, of making, using, or selling its contributor +version,]&] +[s0;%- [C1 but do not include claims that would be infringed only as +a]&] +[s0;%- [C1 consequence of further modification of the contributor version. + For]&] +[s0;%- [C1 purposes of this definition, `"control`" includes the right +to grant]&] +[s0;%- [C1 patent sublicenses in a manner consistent with the requirements +of]&] +[s0;%- [C1 this License.]&] +[s0;C1%- &] +[s0;%- [C1 Each contributor grants you a non`-exclusive, worldwide, +royalty`-free]&] +[s0;%- [C1 patent license under the contributor`'s essential patent +claims, to]&] +[s0;%- [C1 make, use, sell, offer for sale, import and otherwise run, +modify and]&] +[s0;%- [C1 propagate the contents of its contributor version.]&] +[s0;C1%- &] +[s0;%- [C1 In the following three paragraphs, a `"patent license`" +is any express]&] +[s0;%- [C1 agreement or commitment, however denominated, not to enforce +a patent]&] +[s0;%- [C1 (such as an express permission to practice a patent or covenant +not to]&] +[s0;%- [C1 sue for patent infringement). To `"grant`" such a patent +license to a]&] +[s0;%- [C1 party means to make such an agreement or commitment not +to enforce a]&] +[s0;%- [C1 patent against the party.]&] +[s0;C1%- &] +[s0;%- [C1 If you convey a covered work, knowingly relying on a patent +license,]&] +[s0;%- [C1 and the Corresponding Source of the work is not available +for anyone]&] +[s0;%- [C1 to copy, free of charge and under the terms of this License, +through a]&] +[s0;%- [C1 publicly available network server or other readily accessible +means,]&] +[s0;%- [C1 then you must either (1) cause the Corresponding Source +to be so]&] +[s0;%- [C1 available, or (2) arrange to deprive yourself of the benefit +of the]&] +[s0;%- [C1 patent license for this particular work, or (3) arrange, +in a manner]&] +[s0;%- [C1 consistent with the requirements of this License, to extend +the patent]&] +[s0;%- [C1 license to downstream recipients. `"Knowingly relying`" +means you have]&] +[s0;%- [C1 actual knowledge that, but for the patent license, your +conveying the]&] +[s0;%- [C1 covered work in a country, or your recipient`'s use of the +covered work]&] +[s0;%- [C1 in a country, would infringe one or more identifiable patents +in that]&] +[s0;%- [C1 country that you have reason to believe are valid.]&] +[s0;C1%- &] +[s0;%- [C1 If, pursuant to or in connection with a single transaction +or]&] +[s0;%- [C1 arrangement, you convey, or propagate by procuring conveyance +of, a]&] +[s0;%- [C1 covered work, and grant a patent license to some of the +parties]&] +[s0;%- [C1 receiving the covered work authorizing them to use, propagate, +modify]&] +[s0;%- [C1 or convey a specific copy of the covered work, then the +patent license]&] +[s0;%- [C1 you grant is automatically extended to all recipients of +the covered]&] +[s0;%- [C1 work and works based on it.]&] +[s0;C1%- &] +[s0;%- [C1 A patent license is `"discriminatory`" if it does not +include within]&] +[s0;%- [C1 the scope of its coverage, prohibits the exercise of, or +is]&] +[s0;%- [C1 conditioned on the non`-exercise of one or more of the rights +that are]&] +[s0;%- [C1 specifically granted under this License. You may not convey +a covered]&] +[s0;%- [C1 work if you are a party to an arrangement with a third party +that is]&] +[s0;%- [C1 in the business of distributing software, under which you +make payment]&] +[s0;%- [C1 to the third party based on the extent of your activity +of conveying]&] +[s0;%- [C1 the work, and under which the third party grants, to any +of the]&] +[s0;%- [C1 parties who would receive the covered work from you, a discriminatory]&] +[s0;%- [C1 patent license (a) in connection with copies of the covered +work]&] +[s0;%- [C1 conveyed by you (or copies made from those copies), or (b) +primarily]&] +[s0;%- [C1 for and in connection with specific products or compilations +that]&] +[s0;%- [C1 contain the covered work, unless you entered into that arrangement,]&] +[s0;%- [C1 or that patent license was granted, prior to 28 March 2007.]&] +[s0;C1%- &] +[s0;%- [C1 Nothing in this License shall be construed as excluding +or limiting]&] +[s0;%- [C1 any implied license or other defenses to infringement that +may]&] +[s0;%- [C1 otherwise be available to you under applicable patent law.]&] +[s0;C1%- &] +[s0;%- [C1 12. No Surrender of Others`' Freedom.]&] +[s0;C1%- &] +[s0;%- [C1 If conditions are imposed on you (whether by court order, +agreement or]&] +[s0;%- [C1 otherwise) that contradict the conditions of this License, +they do not]&] +[s0;%- [C1 excuse you from the conditions of this License. If you +cannot convey a]&] +[s0;%- [C1 covered work so as to satisfy simultaneously your obligations +under this]&] +[s0;%- [C1 License and any other pertinent obligations, then as a consequence +you may]&] +[s0;%- [C1 not convey it at all. For example, if you agree to terms +that obligate you]&] +[s0;%- [C1 to collect a royalty for further conveying from those to +whom you convey]&] +[s0;%- [C1 the Program, the only way you could satisfy both those terms +and this]&] +[s0;%- [C1 License would be to refrain entirely from conveying the +Program.]&] +[s0;C1%- &] +[s0;%- [C1 13. Use with the GNU Affero General Public License.]&] +[s0;C1%- &] +[s0;%- [C1 Notwithstanding any other provision of this License, you +have]&] +[s0;%- [C1 permission to link or combine any covered work with a work +licensed]&] +[s0;%- [C1 under version 3 of the GNU Affero General Public License +into a single]&] +[s0;%- [C1 combined work, and to convey the resulting work. The terms +of this]&] +[s0;%- [C1 License will continue to apply to the part which is the +covered work,]&] +[s0;%- [C1 but the special requirements of the GNU Affero General Public +License,]&] +[s0;%- [C1 section 13, concerning interaction through a network will +apply to the]&] +[s0;%- [C1 combination as such.]&] +[s0;C1%- &] +[s0;%- [C1 14. Revised Versions of this License.]&] +[s0;C1%- &] +[s0;%- [C1 The Free Software Foundation may publish revised and/or +new versions of]&] +[s0;%- [C1 the GNU General Public License from time to time. Such +new versions will]&] +[s0;%- [C1 be similar in spirit to the present version, but may differ +in detail to]&] +[s0;%- [C1 address new problems or concerns.]&] +[s0;C1%- &] +[s0;%- [C1 Each version is given a distinguishing version number. + If the]&] +[s0;%- [C1 Program specifies that a certain numbered version of the +GNU General]&] +[s0;%- [C1 Public License `"or any later version`" applies to it, you +have the]&] +[s0;%- [C1 option of following the terms and conditions either of that +numbered]&] +[s0;%- [C1 version or of any later version published by the Free Software]&] +[s0;%- [C1 Foundation. If the Program does not specify a version number +of the]&] +[s0;%- [C1 GNU General Public License, you may choose any version ever +published]&] +[s0;%- [C1 by the Free Software Foundation.]&] +[s0;C1%- &] +[s0;%- [C1 If the Program specifies that a proxy can decide which +future]&] +[s0;%- [C1 versions of the GNU General Public License can be used, +that proxy`'s]&] +[s0;%- [C1 public statement of acceptance of a version permanently +authorizes you]&] +[s0;%- [C1 to choose that version for the Program.]&] +[s0;C1%- &] +[s0;%- [C1 Later license versions may give you additional or different]&] +[s0;%- [C1 permissions. However, no additional obligations are imposed +on any]&] +[s0;%- [C1 author or copyright holder as a result of your choosing +to follow a]&] +[s0;%- [C1 later version.]&] +[s0;C1%- &] +[s0;%- [C1 15. Disclaimer of Warranty.]&] +[s0;C1%- &] +[s0;%- [C1 THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED +BY]&] +[s0;%- [C1 APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING +THE COPYRIGHT]&] +[s0;%- [C1 HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM `"AS IS`" +WITHOUT WARRANTY]&] +[s0;%- [C1 OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT +NOT LIMITED TO,]&] +[s0;%- [C1 THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR]&] +[s0;%- [C1 PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE +OF THE PROGRAM]&] +[s0;%- [C1 IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME +THE COST OF]&] +[s0;%- [C1 ALL NECESSARY SERVICING, REPAIR OR CORRECTION.]&] +[s0;C1%- &] +[s0;%- [C1 16. Limitation of Liability.]&] +[s0;C1%- &] +[s0;%- [C1 IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED +TO IN WRITING]&] +[s0;%- [C1 WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES +AND/OR CONVEYS]&] +[s0;%- [C1 THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY]&] +[s0;%- [C1 GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE]&] +[s0;%- [C1 USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF]&] +[s0;%- [C1 DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED +BY YOU OR THIRD]&] +[s0;%- [C1 PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY +OTHER PROGRAMS),]&] +[s0;%- [C1 EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF]&] +[s0;%- [C1 SUCH DAMAGES.]&] +[s0;C1%- &] +[s0;%- [C1 17. Interpretation of Sections 15 and 16.]&] +[s0;C1%- &] +[s0;%- [C1 If the disclaimer of warranty and limitation of liability +provided]&] +[s0;%- [C1 above cannot be given local legal effect according to their +terms,]&] +[s0;%- [C1 reviewing courts shall apply local law that most closely +approximates]&] +[s0;%- [C1 an absolute waiver of all civil liability in connection +with the]&] +[s0;%- [C1 Program, unless a warranty or assumption of liability accompanies +a]&] +[s0;%- [C1 copy of the Program in return for a fee.]&] +[s0;C1%- &] +[s0;%- [C1 END OF TERMS AND CONDITIONS]&] +[s0;C1%- &] +[s0;%- [C1 How to Apply These Terms to Your New Programs]&] +[s0;C1%- &] +[s0;%- [C1 If you develop a new program, and you want it to be of +the greatest]&] +[s0;%- [C1 possible use to the public, the best way to achieve this +is to make it]&] +[s0;%- [C1 free software which everyone can redistribute and change +under these terms.]&] +[s0;C1%- &] +[s0;%- [C1 To do so, attach the following notices to the program. + It is safest]&] +[s0;%- [C1 to attach them to the start of each source file to most +effectively]&] +[s0;%- [C1 state the exclusion of warranty; and each file should have +at least]&] +[s0;%- [C1 the `"copyright`" line and a pointer to where the full notice +is found.]&] +[s0;C1%- &] +[s0;%- [C1 ]&] +[s0;%- [C1 Copyright (C) ]&] +[s0;C1%- &] +[s0;%- [C1 This program is free software: you can redistribute it +and/or modify]&] +[s0;%- [C1 it under the terms of the GNU General Public License +as published by]&] +[s0;%- [C1 the Free Software Foundation, either version 3 of the +License, or]&] +[s0;%- [C1 (at your option) any later version.]&] +[s0;C1%- &] +[s0;%- [C1 This program is distributed in the hope that it will +be useful,]&] +[s0;%- [C1 but WITHOUT ANY WARRANTY; without even the implied warranty +of]&] +[s0;%- [C1 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + See the]&] +[s0;%- [C1 GNU General Public License for more details.]&] +[s0;C1%- &] +[s0;%- [C1 You should have received a copy of the GNU General Public +License]&] +[s0;%- [C1 along with this program. If not, see .]&] +[s0;C1%- &] +[s0;%- [C1 Also add information on how to contact you by electronic +and paper mail.]&] +[s0;C1%- &] +[s0;%- [C1 If the program does terminal interaction, make it output +a short]&] +[s0;%- [C1 notice like this when it starts in an interactive mode:]&] +[s0;C1%- &] +[s0;%- [C1 Copyright (C) ]&] +[s0;%- [C1 This program comes with ABSOLUTELY NO WARRANTY; for +details type ``show w`'.]&] +[s0;%- [C1 This is free software, and you are welcome to redistribute +it]&] +[s0;%- [C1 under certain conditions; type ``show c`' for details.]&] +[s0;C1%- &] +[s0;%- [C1 The hypothetical commands ``show w`' and ``show c`' should +show the appropriate]&] +[s0;%- [C1 parts of the General Public License. Of course, your program`'s +commands]&] +[s0;%- [C1 might be different; for a GUI interface, you would use an +`"about box`".]&] +[s0;C1%- &] +[s0;%- [C1 You should also get your employer (if you work as a programmer) +or school,]&] +[s0;%- [C1 if any, to sign a `"copyright disclaimer`" for the program, +if necessary.]&] +[s0;%- [C1 For more information on this, and how to apply and follow +the GNU GPL, see]&] +[s0;%- [C1 .]&] +[s0;C1%- &] +[s0;%- [C1 The GNU General Public License does not permit incorporating +your program]&] +[s0;%- [C1 into proprietary programs. If your program is a subroutine +library, you]&] +[s0;%- [C1 may consider it more useful to permit linking proprietary +applications with]&] +[s0;%- [C1 the library. If this is what you want to do, use the GNU +Lesser General]&] +[s0;%- [C1 Public License instead of this License. But first, please +read]&] +[s0;%- [C1 .]&] +[s0;C1%- ]}}&] +[s0;C1%- &] +[s0;%- [C1 GDB]&] +[ {{10000@(255.255.192) [s0;%- [C1 GNU GENERAL PUBLIC LICENSE]&] +[s0;%- [C1 Version 3, 29 June 2007]&] +[s0;C1%- &] +[s0;%- [C1 Copyright (C) 2007 Free Software Foundation, Inc. ]&] +[s0;%- [C1 Everyone is permitted to copy and distribute verbatim copies]&] +[s0;%- [C1 of this license document, but changing it is not allowed.]&] +[s0;C1%- &] +[s0;%- [C1 Preamble]&] +[s0;C1%- &] +[s0;%- [C1 The GNU General Public License is a free, copyleft license +for]&] +[s0;%- [C1 software and other kinds of works.]&] +[s0;C1%- &] +[s0;%- [C1 The licenses for most software and other practical works +are designed]&] +[s0;%- [C1 to take away your freedom to share and change the works. + By contrast,]&] +[s0;%- [C1 the GNU General Public License is intended to guarantee +your freedom to]&] +[s0;%- [C1 share and change all versions of a program`-`-to make sure +it remains free]&] +[s0;%- [C1 software for all its users. We, the Free Software Foundation, +use the]&] +[s0;%- [C1 GNU General Public License for most of our software; it +applies also to]&] +[s0;%- [C1 any other work released this way by its authors. You can +apply it to]&] +[s0;%- [C1 your programs, too.]&] +[s0;C1%- &] +[s0;%- [C1 When we speak of free software, we are referring to freedom, +not]&] +[s0;%- [C1 price. Our General Public Licenses are designed to make +sure that you]&] +[s0;%- [C1 have the freedom to distribute copies of free software (and +charge for]&] +[s0;%- [C1 them if you wish), that you receive source code or can get +it if you]&] +[s0;%- [C1 want it, that you can change the software or use pieces +of it in new]&] +[s0;%- [C1 free programs, and that you know you can do these things.]&] +[s0;C1%- &] +[s0;%- [C1 To protect your rights, we need to prevent others from +denying you]&] +[s0;%- [C1 these rights or asking you to surrender the rights. Therefore, +you have]&] +[s0;%- [C1 certain responsibilities if you distribute copies of the +software, or if]&] +[s0;%- [C1 you modify it: responsibilities to respect the freedom of +others.]&] +[s0;C1%- &] +[s0;%- [C1 For example, if you distribute copies of such a program, +whether]&] +[s0;%- [C1 gratis or for a fee, you must pass on to the recipients +the same]&] +[s0;%- [C1 freedoms that you received. You must make sure that they, +too, receive]&] +[s0;%- [C1 or can get the source code. And you must show them these +terms so they]&] +[s0;%- [C1 know their rights.]&] +[s0;C1%- &] +[s0;%- [C1 Developers that use the GNU GPL protect your rights with +two steps:]&] +[s0;%- [C1 (1) assert copyright on the software, and (2) offer you +this License]&] +[s0;%- [C1 giving you legal permission to copy, distribute and/or modify +it.]&] +[s0;C1%- &] +[s0;%- [C1 For the developers`' and authors`' protection, the GPL +clearly explains]&] +[s0;%- [C1 that there is no warranty for this free software. For both +users`' and]&] +[s0;%- [C1 authors`' sake, the GPL requires that modified versions +be marked as]&] +[s0;%- [C1 changed, so that their problems will not be attributed erroneously +to]&] +[s0;%- [C1 authors of previous versions.]&] +[s0;C1%- &] +[s0;%- [C1 Some devices are designed to deny users access to install +or run]&] +[s0;%- [C1 modified versions of the software inside them, although +the manufacturer]&] +[s0;%- [C1 can do so. This is fundamentally incompatible with the +aim of]&] +[s0;%- [C1 protecting users`' freedom to change the software. The +systematic]&] +[s0;%- [C1 pattern of such abuse occurs in the area of products for +individuals to]&] +[s0;%- [C1 use, which is precisely where it is most unacceptable. +Therefore, we]&] +[s0;%- [C1 have designed this version of the GPL to prohibit the practice +for those]&] +[s0;%- [C1 products. If such problems arise substantially in other +domains, we]&] +[s0;%- [C1 stand ready to extend this provision to those domains in +future versions]&] +[s0;%- [C1 of the GPL, as needed to protect the freedom of users.]&] +[s0;C1%- &] +[s0;%- [C1 Finally, every program is threatened constantly by software +patents.]&] +[s0;%- [C1 States should not allow patents to restrict development +and use of]&] +[s0;%- [C1 software on general`-purpose computers, but in those that +do, we wish to]&] +[s0;%- [C1 avoid the special danger that patents applied to a free +program could]&] +[s0;%- [C1 make it effectively proprietary. To prevent this, the GPL +assures that]&] +[s0;%- [C1 patents cannot be used to render the program non`-free.]&] +[s0;C1%- &] +[s0;%- [C1 The precise terms and conditions for copying, distribution +and]&] +[s0;%- [C1 modification follow.]&] +[s0;C1%- &] +[s0;%- [C1 TERMS AND CONDITIONS]&] +[s0;C1%- &] +[s0;%- [C1 0. Definitions.]&] +[s0;C1%- &] +[s0;%- [C1 `"This License`" refers to version 3 of the GNU General +Public License.]&] +[s0;C1%- &] +[s0;%- [C1 `"Copyright`" also means copyright`-like laws that apply +to other kinds of]&] +[s0;%- [C1 works, such as semiconductor masks.]&] +[s0;C1%- &] +[s0;%- [C1 `"The Program`" refers to any copyrightable work licensed +under this]&] +[s0;%- [C1 License. Each licensee is addressed as `"you`". `"Licensees`" +and]&] +[s0;%- [C1 `"recipients`" may be individuals or organizations.]&] +[s0;C1%- &] +[s0;%- [C1 To `"modify`" a work means to copy from or adapt all or +part of the work]&] +[s0;%- [C1 in a fashion requiring copyright permission, other than +the making of an]&] +[s0;%- [C1 exact copy. The resulting work is called a `"modified version`" +of the]&] +[s0;%- [C1 earlier work or a work `"based on`" the earlier work.]&] +[s0;C1%- &] +[s0;%- [C1 A `"covered work`" means either the unmodified Program +or a work based]&] +[s0;%- [C1 on the Program.]&] +[s0;C1%- &] +[s0;%- [C1 To `"propagate`" a work means to do anything with it that, +without]&] +[s0;%- [C1 permission, would make you directly or secondarily liable +for]&] +[s0;%- [C1 infringement under applicable copyright law, except executing +it on a]&] +[s0;%- [C1 computer or modifying a private copy. Propagation includes +copying,]&] +[s0;%- [C1 distribution (with or without modification), making available +to the]&] +[s0;%- [C1 public, and in some countries other activities as well.]&] +[s0;C1%- &] +[s0;%- [C1 To `"convey`" a work means any kind of propagation that +enables other]&] +[s0;%- [C1 parties to make or receive copies. Mere interaction with +a user through]&] +[s0;%- [C1 a computer network, with no transfer of a copy, is not conveying.]&] +[s0;C1%- &] +[s0;%- [C1 An interactive user interface displays `"Appropriate Legal +Notices`"]&] +[s0;%- [C1 to the extent that it includes a convenient and prominently +visible]&] +[s0;%- [C1 feature that (1) displays an appropriate copyright notice, +and (2)]&] +[s0;%- [C1 tells the user that there is no warranty for the work (except +to the]&] +[s0;%- [C1 extent that warranties are provided), that licensees may +convey the]&] +[s0;%- [C1 work under this License, and how to view a copy of this +License. If]&] +[s0;%- [C1 the interface presents a list of user commands or options, +such as a]&] +[s0;%- [C1 menu, a prominent item in the list meets this criterion.]&] +[s0;C1%- &] +[s0;%- [C1 1. Source Code.]&] +[s0;C1%- &] +[s0;%- [C1 The `"source code`" for a work means the preferred form +of the work]&] +[s0;%- [C1 for making modifications to it. `"Object code`" means any +non`-source]&] +[s0;%- [C1 form of a work.]&] +[s0;C1%- &] +[s0;%- [C1 A `"Standard Interface`" means an interface that either +is an official]&] +[s0;%- [C1 standard defined by a recognized standards body, or, in +the case of]&] +[s0;%- [C1 interfaces specified for a particular programming language, +one that]&] +[s0;%- [C1 is widely used among developers working in that language.]&] +[s0;C1%- &] +[s0;%- [C1 The `"System Libraries`" of an executable work include +anything, other]&] +[s0;%- [C1 than the work as a whole, that (a) is included in the normal +form of]&] +[s0;%- [C1 packaging a Major Component, but which is not part of that +Major]&] +[s0;%- [C1 Component, and (b) serves only to enable use of the work +with that]&] +[s0;%- [C1 Major Component, or to implement a Standard Interface for +which an]&] +[s0;%- [C1 implementation is available to the public in source code +form. A]&] +[s0;%- [C1 `"Major Component`", in this context, means a major essential +component]&] +[s0;%- [C1 (kernel, window system, and so on) of the specific operating +system]&] +[s0;%- [C1 (if any) on which the executable work runs, or a compiler +used to]&] +[s0;%- [C1 produce the work, or an object code interpreter used to +run it.]&] +[s0;C1%- &] +[s0;%- [C1 The `"Corresponding Source`" for a work in object code +form means all]&] +[s0;%- [C1 the source code needed to generate, install, and (for an +executable]&] +[s0;%- [C1 work) run the object code and to modify the work, including +scripts to]&] +[s0;%- [C1 control those activities. However, it does not include +the work`'s]&] +[s0;%- [C1 System Libraries, or general`-purpose tools or generally +available free]&] +[s0;%- [C1 programs which are used unmodified in performing those activities +but]&] +[s0;%- [C1 which are not part of the work. For example, Corresponding +Source]&] +[s0;%- [C1 includes interface definition files associated with source +files for]&] +[s0;%- [C1 the work, and the source code for shared libraries and dynamically]&] +[s0;%- [C1 linked subprograms that the work is specifically designed +to require,]&] +[s0;%- [C1 such as by intimate data communication or control flow between +those]&] +[s0;%- [C1 subprograms and other parts of the work.]&] +[s0;C1%- &] +[s0;%- [C1 The Corresponding Source need not include anything that +users]&] +[s0;%- [C1 can regenerate automatically from other parts of the Corresponding]&] +[s0;%- [C1 Source.]&] +[s0;C1%- &] +[s0;%- [C1 The Corresponding Source for a work in source code form +is that]&] +[s0;%- [C1 same work.]&] +[s0;C1%- &] +[s0;%- [C1 2. Basic Permissions.]&] +[s0;C1%- &] +[s0;%- [C1 All rights granted under this License are granted for +the term of]&] +[s0;%- [C1 copyright on the Program, and are irrevocable provided the +stated]&] +[s0;%- [C1 conditions are met. This License explicitly affirms your +unlimited]&] +[s0;%- [C1 permission to run the unmodified Program. The output from +running a]&] +[s0;%- [C1 covered work is covered by this License only if the output, +given its]&] +[s0;%- [C1 content, constitutes a covered work. This License acknowledges +your]&] +[s0;%- [C1 rights of fair use or other equivalent, as provided by copyright +law.]&] +[s0;C1%- &] +[s0;%- [C1 You may make, run and propagate covered works that you +do not]&] +[s0;%- [C1 convey, without conditions so long as your license otherwise +remains]&] +[s0;%- [C1 in force. You may convey covered works to others for the +sole purpose]&] +[s0;%- [C1 of having them make modifications exclusively for you, or +provide you]&] +[s0;%- [C1 with facilities for running those works, provided that you +comply with]&] +[s0;%- [C1 the terms of this License in conveying all material for +which you do]&] +[s0;%- [C1 not control copyright. Those thus making or running the +covered works]&] +[s0;%- [C1 for you must do so exclusively on your behalf, under your +direction]&] +[s0;%- [C1 and control, on terms that prohibit them from making any +copies of]&] +[s0;%- [C1 your copyrighted material outside their relationship with +you.]&] +[s0;C1%- &] +[s0;%- [C1 Conveying under any other circumstances is permitted solely +under]&] +[s0;%- [C1 the conditions stated below. Sublicensing is not allowed; +section 10]&] +[s0;%- [C1 makes it unnecessary.]&] +[s0;C1%- &] +[s0;%- [C1 3. Protecting Users`' Legal Rights From Anti`-Circumvention +Law.]&] +[s0;C1%- &] +[s0;%- [C1 No covered work shall be deemed part of an effective technological]&] +[s0;%- [C1 measure under any applicable law fulfilling obligations +under article]&] +[s0;%- [C1 11 of the WIPO copyright treaty adopted on 20 December 1996, +or]&] +[s0;%- [C1 similar laws prohibiting or restricting circumvention of +such]&] +[s0;%- [C1 measures.]&] +[s0;C1%- &] +[s0;%- [C1 When you convey a covered work, you waive any legal power +to forbid]&] +[s0;%- [C1 circumvention of technological measures to the extent such +circumvention]&] +[s0;%- [C1 is effected by exercising rights under this License with +respect to]&] +[s0;%- [C1 the covered work, and you disclaim any intention to limit +operation or]&] +[s0;%- [C1 modification of the work as a means of enforcing, against +the work`'s]&] +[s0;%- [C1 users, your or third parties`' legal rights to forbid circumvention +of]&] +[s0;%- [C1 technological measures.]&] +[s0;C1%- &] +[s0;%- [C1 4. Conveying Verbatim Copies.]&] +[s0;C1%- &] +[s0;%- [C1 You may convey verbatim copies of the Program`'s source +code as you]&] +[s0;%- [C1 receive it, in any medium, provided that you conspicuously +and]&] +[s0;%- [C1 appropriately publish on each copy an appropriate copyright +notice;]&] +[s0;%- [C1 keep intact all notices stating that this License and any]&] +[s0;%- [C1 non`-permissive terms added in accord with section 7 apply +to the code;]&] +[s0;%- [C1 keep intact all notices of the absence of any warranty; +and give all]&] +[s0;%- [C1 recipients a copy of this License along with the Program.]&] +[s0;C1%- &] +[s0;%- [C1 You may charge any price or no price for each copy that +you convey,]&] +[s0;%- [C1 and you may offer support or warranty protection for a fee.]&] +[s0;C1%- &] +[s0;%- [C1 5. Conveying Modified Source Versions.]&] +[s0;C1%- &] +[s0;%- [C1 You may convey a work based on the Program, or the modifications +to]&] +[s0;%- [C1 produce it from the Program, in the form of source code +under the]&] +[s0;%- [C1 terms of section 4, provided that you also meet all of these +conditions:]&] +[s0;C1%- &] +[s0;%- [C1 a) The work must carry prominent notices stating that +you modified]&] +[s0;%- [C1 it, and giving a relevant date.]&] +[s0;C1%- &] +[s0;%- [C1 b) The work must carry prominent notices stating that +it is]&] +[s0;%- [C1 released under this License and any conditions added +under section]&] +[s0;%- [C1 7. This requirement modifies the requirement in section +4 to]&] +[s0;%- [C1 `"keep intact all notices`".]&] +[s0;C1%- &] +[s0;%- [C1 c) You must license the entire work, as a whole, under +this]&] +[s0;%- [C1 License to anyone who comes into possession of a copy. + This]&] +[s0;%- [C1 License will therefore apply, along with any applicable +section 7]&] +[s0;%- [C1 additional terms, to the whole of the work, and all +its parts,]&] +[s0;%- [C1 regardless of how they are packaged. This License gives +no]&] +[s0;%- [C1 permission to license the work in any other way, but +it does not]&] +[s0;%- [C1 invalidate such permission if you have separately received +it.]&] +[s0;C1%- &] +[s0;%- [C1 d) If the work has interactive user interfaces, each +must display]&] +[s0;%- [C1 Appropriate Legal Notices; however, if the Program has +interactive]&] +[s0;%- [C1 interfaces that do not display Appropriate Legal Notices, +your]&] +[s0;%- [C1 work need not make them do so.]&] +[s0;C1%- &] +[s0;%- [C1 A compilation of a covered work with other separate and +independent]&] +[s0;%- [C1 works, which are not by their nature extensions of the covered +work,]&] +[s0;%- [C1 and which are not combined with it such as to form a larger +program,]&] +[s0;%- [C1 in or on a volume of a storage or distribution medium, is +called an]&] +[s0;%- [C1 `"aggregate`" if the compilation and its resulting copyright +are not]&] +[s0;%- [C1 used to limit the access or legal rights of the compilation`'s +users]&] +[s0;%- [C1 beyond what the individual works permit. Inclusion of a +covered work]&] +[s0;%- [C1 in an aggregate does not cause this License to apply to +the other]&] +[s0;%- [C1 parts of the aggregate.]&] +[s0;C1%- &] +[s0;%- [C1 6. Conveying Non`-Source Forms.]&] +[s0;C1%- &] +[s0;%- [C1 You may convey a covered work in object code form under +the terms]&] +[s0;%- [C1 of sections 4 and 5, provided that you also convey the]&] +[s0;%- [C1 machine`-readable Corresponding Source under the terms of +this License,]&] +[s0;%- [C1 in one of these ways:]&] +[s0;C1%- &] +[s0;%- [C1 a) Convey the object code in, or embodied in, a physical +product]&] +[s0;%- [C1 (including a physical distribution medium), accompanied +by the]&] +[s0;%- [C1 Corresponding Source fixed on a durable physical medium]&] +[s0;%- [C1 customarily used for software interchange.]&] +[s0;C1%- &] +[s0;%- [C1 b) Convey the object code in, or embodied in, a physical +product]&] +[s0;%- [C1 (including a physical distribution medium), accompanied +by a]&] +[s0;%- [C1 written offer, valid for at least three years and valid +for as]&] +[s0;%- [C1 long as you offer spare parts or customer support for +that product]&] +[s0;%- [C1 model, to give anyone who possesses the object code +either (1) a]&] +[s0;%- [C1 copy of the Corresponding Source for all the software +in the]&] +[s0;%- [C1 product that is covered by this License, on a durable +physical]&] +[s0;%- [C1 medium customarily used for software interchange, for +a price no]&] +[s0;%- [C1 more than your reasonable cost of physically performing +this]&] +[s0;%- [C1 conveying of source, or (2) access to copy the]&] +[s0;%- [C1 Corresponding Source from a network server at no charge.]&] +[s0;C1%- &] +[s0;%- [C1 c) Convey individual copies of the object code with +a copy of the]&] +[s0;%- [C1 written offer to provide the Corresponding Source. +This]&] +[s0;%- [C1 alternative is allowed only occasionally and noncommercially, +and]&] +[s0;%- [C1 only if you received the object code with such an offer, +in accord]&] +[s0;%- [C1 with subsection 6b.]&] +[s0;C1%- &] +[s0;%- [C1 d) Convey the object code by offering access from a +designated]&] +[s0;%- [C1 place (gratis or for a charge), and offer equivalent +access to the]&] +[s0;%- [C1 Corresponding Source in the same way through the same +place at no]&] +[s0;%- [C1 further charge. You need not require recipients to +copy the]&] +[s0;%- [C1 Corresponding Source along with the object code. If +the place to]&] +[s0;%- [C1 copy the object code is a network server, the Corresponding +Source]&] +[s0;%- [C1 may be on a different server (operated by you or a third +party)]&] +[s0;%- [C1 that supports equivalent copying facilities, provided +you maintain]&] +[s0;%- [C1 clear directions next to the object code saying where +to find the]&] +[s0;%- [C1 Corresponding Source. Regardless of what server hosts +the]&] +[s0;%- [C1 Corresponding Source, you remain obligated to ensure +that it is]&] +[s0;%- [C1 available for as long as needed to satisfy these requirements.]&] +[s0;C1%- &] +[s0;%- [C1 e) Convey the object code using peer`-to`-peer transmission, +provided]&] +[s0;%- [C1 you inform other peers where the object code and Corresponding]&] +[s0;%- [C1 Source of the work are being offered to the general +public at no]&] +[s0;%- [C1 charge under subsection 6d.]&] +[s0;C1%- &] +[s0;%- [C1 A separable portion of the object code, whose source code +is excluded]&] +[s0;%- [C1 from the Corresponding Source as a System Library, need +not be]&] +[s0;%- [C1 included in conveying the object code work.]&] +[s0;C1%- &] +[s0;%- [C1 A `"User Product`" is either (1) a `"consumer product`", +which means any]&] +[s0;%- [C1 tangible personal property which is normally used for personal, +family,]&] +[s0;%- [C1 or household purposes, or (2) anything designed or sold +for incorporation]&] +[s0;%- [C1 into a dwelling. In determining whether a product is a +consumer product,]&] +[s0;%- [C1 doubtful cases shall be resolved in favor of coverage. +For a particular]&] +[s0;%- [C1 product received by a particular user, `"normally used`" +refers to a]&] +[s0;%- [C1 typical or common use of that class of product, regardless +of the status]&] +[s0;%- [C1 of the particular user or of the way in which the particular +user]&] +[s0;%- [C1 actually uses, or expects or is expected to use, the product. + A product]&] +[s0;%- [C1 is a consumer product regardless of whether the product +has substantial]&] +[s0;%- [C1 commercial, industrial or non`-consumer uses, unless such +uses represent]&] +[s0;%- [C1 the only significant mode of use of the product.]&] +[s0;C1%- &] +[s0;%- [C1 `"Installation Information`" for a User Product means +any methods,]&] +[s0;%- [C1 procedures, authorization keys, or other information required +to install]&] +[s0;%- [C1 and execute modified versions of a covered work in that +User Product from]&] +[s0;%- [C1 a modified version of its Corresponding Source. The information +must]&] +[s0;%- [C1 suffice to ensure that the continued functioning of the +modified object]&] +[s0;%- [C1 code is in no case prevented or interfered with solely because]&] +[s0;%- [C1 modification has been made.]&] +[s0;C1%- &] +[s0;%- [C1 If you convey an object code work under this section in, +or with, or]&] +[s0;%- [C1 specifically for use in, a User Product, and the conveying +occurs as]&] +[s0;%- [C1 part of a transaction in which the right of possession and +use of the]&] +[s0;%- [C1 User Product is transferred to the recipient in perpetuity +or for a]&] +[s0;%- [C1 fixed term (regardless of how the transaction is characterized), +the]&] +[s0;%- [C1 Corresponding Source conveyed under this section must be +accompanied]&] +[s0;%- [C1 by the Installation Information. But this requirement does +not apply]&] +[s0;%- [C1 if neither you nor any third party retains the ability to +install]&] +[s0;%- [C1 modified object code on the User Product (for example, the +work has]&] +[s0;%- [C1 been installed in ROM).]&] +[s0;C1%- &] +[s0;%- [C1 The requirement to provide Installation Information does +not include a]&] +[s0;%- [C1 requirement to continue to provide support service, warranty, +or updates]&] +[s0;%- [C1 for a work that has been modified or installed by the recipient, +or for]&] +[s0;%- [C1 the User Product in which it has been modified or installed. + Access to a]&] +[s0;%- [C1 network may be denied when the modification itself materially +and]&] +[s0;%- [C1 adversely affects the operation of the network or violates +the rules and]&] +[s0;%- [C1 protocols for communication across the network.]&] +[s0;C1%- &] +[s0;%- [C1 Corresponding Source conveyed, and Installation Information +provided,]&] +[s0;%- [C1 in accord with this section must be in a format that is +publicly]&] +[s0;%- [C1 documented (and with an implementation available to the +public in]&] +[s0;%- [C1 source code form), and must require no special password +or key for]&] +[s0;%- [C1 unpacking, reading or copying.]&] +[s0;C1%- &] +[s0;%- [C1 7. Additional Terms.]&] +[s0;C1%- &] +[s0;%- [C1 `"Additional permissions`" are terms that supplement the +terms of this]&] +[s0;%- [C1 License by making exceptions from one or more of its conditions.]&] +[s0;%- [C1 Additional permissions that are applicable to the entire +Program shall]&] +[s0;%- [C1 be treated as though they were included in this License, +to the extent]&] +[s0;%- [C1 that they are valid under applicable law. If additional +permissions]&] +[s0;%- [C1 apply only to part of the Program, that part may be used +separately]&] +[s0;%- [C1 under those permissions, but the entire Program remains +governed by]&] +[s0;%- [C1 this License without regard to the additional permissions.]&] +[s0;C1%- &] +[s0;%- [C1 When you convey a copy of a covered work, you may at your +option]&] +[s0;%- [C1 remove any additional permissions from that copy, or from +any part of]&] +[s0;%- [C1 it. (Additional permissions may be written to require their +own]&] +[s0;%- [C1 removal in certain cases when you modify the work.) You +may place]&] +[s0;%- [C1 additional permissions on material, added by you to a covered +work,]&] +[s0;%- [C1 for which you have or can give appropriate copyright permission.]&] +[s0;C1%- &] +[s0;%- [C1 Notwithstanding any other provision of this License, for +material you]&] +[s0;%- [C1 add to a covered work, you may (if authorized by the copyright +holders of]&] +[s0;%- [C1 that material) supplement the terms of this License with +terms:]&] +[s0;C1%- &] +[s0;%- [C1 a) Disclaiming warranty or limiting liability differently +from the]&] +[s0;%- [C1 terms of sections 15 and 16 of this License; or]&] +[s0;C1%- &] +[s0;%- [C1 b) Requiring preservation of specified reasonable legal +notices or]&] +[s0;%- [C1 author attributions in that material or in the Appropriate +Legal]&] +[s0;%- [C1 Notices displayed by works containing it; or]&] +[s0;C1%- &] +[s0;%- [C1 c) Prohibiting misrepresentation of the origin of that +material, or]&] +[s0;%- [C1 requiring that modified versions of such material be +marked in]&] +[s0;%- [C1 reasonable ways as different from the original version; +or]&] +[s0;C1%- &] +[s0;%- [C1 d) Limiting the use for publicity purposes of names +of licensors or]&] +[s0;%- [C1 authors of the material; or]&] +[s0;C1%- &] +[s0;%- [C1 e) Declining to grant rights under trademark law for +use of some]&] +[s0;%- [C1 trade names, trademarks, or service marks; or]&] +[s0;C1%- &] +[s0;%- [C1 f) Requiring indemnification of licensors and authors +of that]&] +[s0;%- [C1 material by anyone who conveys the material (or modified +versions of]&] +[s0;%- [C1 it) with contractual assumptions of liability to the +recipient, for]&] +[s0;%- [C1 any liability that these contractual assumptions directly +impose on]&] +[s0;%- [C1 those licensors and authors.]&] +[s0;C1%- &] +[s0;%- [C1 All other non`-permissive additional terms are considered +`"further]&] +[s0;%- [C1 restrictions`" within the meaning of section 10. If the +Program as you]&] +[s0;%- [C1 received it, or any part of it, contains a notice stating +that it is]&] +[s0;%- [C1 governed by this License along with a term that is a further]&] +[s0;%- [C1 restriction, you may remove that term. If a license document +contains]&] +[s0;%- [C1 a further restriction but permits relicensing or conveying +under this]&] +[s0;%- [C1 License, you may add to a covered work material governed +by the terms]&] +[s0;%- [C1 of that license document, provided that the further restriction +does]&] +[s0;%- [C1 not survive such relicensing or conveying.]&] +[s0;C1%- &] +[s0;%- [C1 If you add terms to a covered work in accord with this +section, you]&] +[s0;%- [C1 must place, in the relevant source files, a statement of +the]&] +[s0;%- [C1 additional terms that apply to those files, or a notice +indicating]&] +[s0;%- [C1 where to find the applicable terms.]&] +[s0;C1%- &] +[s0;%- [C1 Additional terms, permissive or non`-permissive, may be +stated in the]&] +[s0;%- [C1 form of a separately written license, or stated as exceptions;]&] +[s0;%- [C1 the above requirements apply either way.]&] +[s0;C1%- &] +[s0;%- [C1 8. Termination.]&] +[s0;C1%- &] +[s0;%- [C1 You may not propagate or modify a covered work except +as expressly]&] +[s0;%- [C1 provided under this License. Any attempt otherwise to propagate +or]&] +[s0;%- [C1 modify it is void, and will automatically terminate your +rights under]&] +[s0;%- [C1 this License (including any patent licenses granted under +the third]&] +[s0;%- [C1 paragraph of section 11).]&] +[s0;C1%- &] +[s0;%- [C1 However, if you cease all violation of this License, then +your]&] +[s0;%- [C1 license from a particular copyright holder is reinstated +(a)]&] +[s0;%- [C1 provisionally, unless and until the copyright holder explicitly +and]&] +[s0;%- [C1 finally terminates your license, and (b) permanently, if +the copyright]&] +[s0;%- [C1 holder fails to notify you of the violation by some reasonable +means]&] +[s0;%- [C1 prior to 60 days after the cessation.]&] +[s0;C1%- &] +[s0;%- [C1 Moreover, your license from a particular copyright holder +is]&] +[s0;%- [C1 reinstated permanently if the copyright holder notifies +you of the]&] +[s0;%- [C1 violation by some reasonable means, this is the first time +you have]&] +[s0;%- [C1 received notice of violation of this License (for any work) +from that]&] +[s0;%- [C1 copyright holder, and you cure the violation prior to 30 +days after]&] +[s0;%- [C1 your receipt of the notice.]&] +[s0;C1%- &] +[s0;%- [C1 Termination of your rights under this section does not +terminate the]&] +[s0;%- [C1 licenses of parties who have received copies or rights from +you under]&] +[s0;%- [C1 this License. If your rights have been terminated and not +permanently]&] +[s0;%- [C1 reinstated, you do not qualify to receive new licenses for +the same]&] +[s0;%- [C1 material under section 10.]&] +[s0;C1%- &] +[s0;%- [C1 9. Acceptance Not Required for Having Copies.]&] +[s0;C1%- &] +[s0;%- [C1 You are not required to accept this License in order to +receive or]&] +[s0;%- [C1 run a copy of the Program. Ancillary propagation of a covered +work]&] +[s0;%- [C1 occurring solely as a consequence of using peer`-to`-peer +transmission]&] +[s0;%- [C1 to receive a copy likewise does not require acceptance. + However,]&] +[s0;%- [C1 nothing other than this License grants you permission to +propagate or]&] +[s0;%- [C1 modify any covered work. These actions infringe copyright +if you do]&] +[s0;%- [C1 not accept this License. Therefore, by modifying or propagating +a]&] +[s0;%- [C1 covered work, you indicate your acceptance of this License +to do so.]&] +[s0;C1%- &] +[s0;%- [C1 10. Automatic Licensing of Downstream Recipients.]&] +[s0;C1%- &] +[s0;%- [C1 Each time you convey a covered work, the recipient automatically]&] +[s0;%- [C1 receives a license from the original licensors, to run, +modify and]&] +[s0;%- [C1 propagate that work, subject to this License. You are not +responsible]&] +[s0;%- [C1 for enforcing compliance by third parties with this License.]&] +[s0;C1%- &] +[s0;%- [C1 An `"entity transaction`" is a transaction transferring +control of an]&] +[s0;%- [C1 organization, or substantially all assets of one, or subdividing +an]&] +[s0;%- [C1 organization, or merging organizations. If propagation +of a covered]&] +[s0;%- [C1 work results from an entity transaction, each party to that]&] +[s0;%- [C1 transaction who receives a copy of the work also receives +whatever]&] +[s0;%- [C1 licenses to the work the party`'s predecessor in interest +had or could]&] +[s0;%- [C1 give under the previous paragraph, plus a right to possession +of the]&] +[s0;%- [C1 Corresponding Source of the work from the predecessor in +interest, if]&] +[s0;%- [C1 the predecessor has it or can get it with reasonable efforts.]&] +[s0;C1%- &] +[s0;%- [C1 You may not impose any further restrictions on the exercise +of the]&] +[s0;%- [C1 rights granted or affirmed under this License. For example, +you may]&] +[s0;%- [C1 not impose a license fee, royalty, or other charge for exercise +of]&] +[s0;%- [C1 rights granted under this License, and you may not initiate +litigation]&] +[s0;%- [C1 (including a cross`-claim or counterclaim in a lawsuit) +alleging that]&] +[s0;%- [C1 any patent claim is infringed by making, using, selling, +offering for]&] +[s0;%- [C1 sale, or importing the Program or any portion of it.]&] +[s0;C1%- &] +[s0;%- [C1 11. Patents.]&] +[s0;C1%- &] +[s0;%- [C1 A `"contributor`" is a copyright holder who authorizes +use under this]&] +[s0;%- [C1 License of the Program or a work on which the Program is +based. The]&] +[s0;%- [C1 work thus licensed is called the contributor`'s `"contributor +version`".]&] +[s0;C1%- &] +[s0;%- [C1 A contributor`'s `"essential patent claims`" are all patent +claims]&] +[s0;%- [C1 owned or controlled by the contributor, whether already +acquired or]&] +[s0;%- [C1 hereafter acquired, that would be infringed by some manner, +permitted]&] +[s0;%- [C1 by this License, of making, using, or selling its contributor +version,]&] +[s0;%- [C1 but do not include claims that would be infringed only as +a]&] +[s0;%- [C1 consequence of further modification of the contributor version. + For]&] +[s0;%- [C1 purposes of this definition, `"control`" includes the right +to grant]&] +[s0;%- [C1 patent sublicenses in a manner consistent with the requirements +of]&] +[s0;%- [C1 this License.]&] +[s0;C1%- &] +[s0;%- [C1 Each contributor grants you a non`-exclusive, worldwide, +royalty`-free]&] +[s0;%- [C1 patent license under the contributor`'s essential patent +claims, to]&] +[s0;%- [C1 make, use, sell, offer for sale, import and otherwise run, +modify and]&] +[s0;%- [C1 propagate the contents of its contributor version.]&] +[s0;C1%- &] +[s0;%- [C1 In the following three paragraphs, a `"patent license`" +is any express]&] +[s0;%- [C1 agreement or commitment, however denominated, not to enforce +a patent]&] +[s0;%- [C1 (such as an express permission to practice a patent or covenant +not to]&] +[s0;%- [C1 sue for patent infringement). To `"grant`" such a patent +license to a]&] +[s0;%- [C1 party means to make such an agreement or commitment not +to enforce a]&] +[s0;%- [C1 patent against the party.]&] +[s0;C1%- &] +[s0;%- [C1 If you convey a covered work, knowingly relying on a patent +license,]&] +[s0;%- [C1 and the Corresponding Source of the work is not available +for anyone]&] +[s0;%- [C1 to copy, free of charge and under the terms of this License, +through a]&] +[s0;%- [C1 publicly available network server or other readily accessible +means,]&] +[s0;%- [C1 then you must either (1) cause the Corresponding Source +to be so]&] +[s0;%- [C1 available, or (2) arrange to deprive yourself of the benefit +of the]&] +[s0;%- [C1 patent license for this particular work, or (3) arrange, +in a manner]&] +[s0;%- [C1 consistent with the requirements of this License, to extend +the patent]&] +[s0;%- [C1 license to downstream recipients. `"Knowingly relying`" +means you have]&] +[s0;%- [C1 actual knowledge that, but for the patent license, your +conveying the]&] +[s0;%- [C1 covered work in a country, or your recipient`'s use of the +covered work]&] +[s0;%- [C1 in a country, would infringe one or more identifiable patents +in that]&] +[s0;%- [C1 country that you have reason to believe are valid.]&] +[s0;C1%- &] +[s0;%- [C1 If, pursuant to or in connection with a single transaction +or]&] +[s0;%- [C1 arrangement, you convey, or propagate by procuring conveyance +of, a]&] +[s0;%- [C1 covered work, and grant a patent license to some of the +parties]&] +[s0;%- [C1 receiving the covered work authorizing them to use, propagate, +modify]&] +[s0;%- [C1 or convey a specific copy of the covered work, then the +patent license]&] +[s0;%- [C1 you grant is automatically extended to all recipients of +the covered]&] +[s0;%- [C1 work and works based on it.]&] +[s0;C1%- &] +[s0;%- [C1 A patent license is `"discriminatory`" if it does not +include within]&] +[s0;%- [C1 the scope of its coverage, prohibits the exercise of, or +is]&] +[s0;%- [C1 conditioned on the non`-exercise of one or more of the rights +that are]&] +[s0;%- [C1 specifically granted under this License. You may not convey +a covered]&] +[s0;%- [C1 work if you are a party to an arrangement with a third party +that is]&] +[s0;%- [C1 in the business of distributing software, under which you +make payment]&] +[s0;%- [C1 to the third party based on the extent of your activity +of conveying]&] +[s0;%- [C1 the work, and under which the third party grants, to any +of the]&] +[s0;%- [C1 parties who would receive the covered work from you, a discriminatory]&] +[s0;%- [C1 patent license (a) in connection with copies of the covered +work]&] +[s0;%- [C1 conveyed by you (or copies made from those copies), or (b) +primarily]&] +[s0;%- [C1 for and in connection with specific products or compilations +that]&] +[s0;%- [C1 contain the covered work, unless you entered into that arrangement,]&] +[s0;%- [C1 or that patent license was granted, prior to 28 March 2007.]&] +[s0;C1%- &] +[s0;%- [C1 Nothing in this License shall be construed as excluding +or limiting]&] +[s0;%- [C1 any implied license or other defenses to infringement that +may]&] +[s0;%- [C1 otherwise be available to you under applicable patent law.]&] +[s0;C1%- &] +[s0;%- [C1 12. No Surrender of Others`' Freedom.]&] +[s0;C1%- &] +[s0;%- [C1 If conditions are imposed on you (whether by court order, +agreement or]&] +[s0;%- [C1 otherwise) that contradict the conditions of this License, +they do not]&] +[s0;%- [C1 excuse you from the conditions of this License. If you +cannot convey a]&] +[s0;%- [C1 covered work so as to satisfy simultaneously your obligations +under this]&] +[s0;%- [C1 License and any other pertinent obligations, then as a consequence +you may]&] +[s0;%- [C1 not convey it at all. For example, if you agree to terms +that obligate you]&] +[s0;%- [C1 to collect a royalty for further conveying from those to +whom you convey]&] +[s0;%- [C1 the Program, the only way you could satisfy both those terms +and this]&] +[s0;%- [C1 License would be to refrain entirely from conveying the +Program.]&] +[s0;C1%- &] +[s0;%- [C1 13. Use with the GNU Affero General Public License.]&] +[s0;C1%- &] +[s0;%- [C1 Notwithstanding any other provision of this License, you +have]&] +[s0;%- [C1 permission to link or combine any covered work with a work +licensed]&] +[s0;%- [C1 under version 3 of the GNU Affero General Public License +into a single]&] +[s0;%- [C1 combined work, and to convey the resulting work. The terms +of this]&] +[s0;%- [C1 License will continue to apply to the part which is the +covered work,]&] +[s0;%- [C1 but the special requirements of the GNU Affero General Public +License,]&] +[s0;%- [C1 section 13, concerning interaction through a network will +apply to the]&] +[s0;%- [C1 combination as such.]&] +[s0;C1%- &] +[s0;%- [C1 14. Revised Versions of this License.]&] +[s0;C1%- &] +[s0;%- [C1 The Free Software Foundation may publish revised and/or +new versions of]&] +[s0;%- [C1 the GNU General Public License from time to time. Such +new versions will]&] +[s0;%- [C1 be similar in spirit to the present version, but may differ +in detail to]&] +[s0;%- [C1 address new problems or concerns.]&] +[s0;C1%- &] +[s0;%- [C1 Each version is given a distinguishing version number. + If the]&] +[s0;%- [C1 Program specifies that a certain numbered version of the +GNU General]&] +[s0;%- [C1 Public License `"or any later version`" applies to it, you +have the]&] +[s0;%- [C1 option of following the terms and conditions either of that +numbered]&] +[s0;%- [C1 version or of any later version published by the Free Software]&] +[s0;%- [C1 Foundation. If the Program does not specify a version number +of the]&] +[s0;%- [C1 GNU General Public License, you may choose any version ever +published]&] +[s0;%- [C1 by the Free Software Foundation.]&] +[s0;C1%- &] +[s0;%- [C1 If the Program specifies that a proxy can decide which +future]&] +[s0;%- [C1 versions of the GNU General Public License can be used, +that proxy`'s]&] +[s0;%- [C1 public statement of acceptance of a version permanently +authorizes you]&] +[s0;%- [C1 to choose that version for the Program.]&] +[s0;C1%- &] +[s0;%- [C1 Later license versions may give you additional or different]&] +[s0;%- [C1 permissions. However, no additional obligations are imposed +on any]&] +[s0;%- [C1 author or copyright holder as a result of your choosing +to follow a]&] +[s0;%- [C1 later version.]&] +[s0;C1%- &] +[s0;%- [C1 15. Disclaimer of Warranty.]&] +[s0;C1%- &] +[s0;%- [C1 THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED +BY]&] +[s0;%- [C1 APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING +THE COPYRIGHT]&] +[s0;%- [C1 HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM `"AS IS`" +WITHOUT WARRANTY]&] +[s0;%- [C1 OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT +NOT LIMITED TO,]&] +[s0;%- [C1 THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR]&] +[s0;%- [C1 PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE +OF THE PROGRAM]&] +[s0;%- [C1 IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME +THE COST OF]&] +[s0;%- [C1 ALL NECESSARY SERVICING, REPAIR OR CORRECTION.]&] +[s0;C1%- &] +[s0;%- [C1 16. Limitation of Liability.]&] +[s0;C1%- &] +[s0;%- [C1 IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED +TO IN WRITING]&] +[s0;%- [C1 WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES +AND/OR CONVEYS]&] +[s0;%- [C1 THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY]&] +[s0;%- [C1 GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE]&] +[s0;%- [C1 USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF]&] +[s0;%- [C1 DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED +BY YOU OR THIRD]&] +[s0;%- [C1 PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY +OTHER PROGRAMS),]&] +[s0;%- [C1 EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF]&] +[s0;%- [C1 SUCH DAMAGES.]&] +[s0;C1%- &] +[s0;%- [C1 17. Interpretation of Sections 15 and 16.]&] +[s0;C1%- &] +[s0;%- [C1 If the disclaimer of warranty and limitation of liability +provided]&] +[s0;%- [C1 above cannot be given local legal effect according to their +terms,]&] +[s0;%- [C1 reviewing courts shall apply local law that most closely +approximates]&] +[s0;%- [C1 an absolute waiver of all civil liability in connection +with the]&] +[s0;%- [C1 Program, unless a warranty or assumption of liability accompanies +a]&] +[s0;%- [C1 copy of the Program in return for a fee.]&] +[s0;C1%- &] +[s0;%- [C1 END OF TERMS AND CONDITIONS]&] +[s0;C1%- &] +[s0;%- [C1 How to Apply These Terms to Your New Programs]&] +[s0;C1%- &] +[s0;%- [C1 If you develop a new program, and you want it to be of +the greatest]&] +[s0;%- [C1 possible use to the public, the best way to achieve this +is to make it]&] +[s0;%- [C1 free software which everyone can redistribute and change +under these terms.]&] +[s0;C1%- &] +[s0;%- [C1 To do so, attach the following notices to the program. + It is safest]&] +[s0;%- [C1 to attach them to the start of each source file to most +effectively]&] +[s0;%- [C1 state the exclusion of warranty; and each file should have +at least]&] +[s0;%- [C1 the `"copyright`" line and a pointer to where the full notice +is found.]&] +[s0;C1%- &] +[s0;%- [C1 ]&] +[s0;%- [C1 Copyright (C) ]&] +[s0;C1%- &] +[s0;%- [C1 This program is free software: you can redistribute it +and/or modify]&] +[s0;%- [C1 it under the terms of the GNU General Public License +as published by]&] +[s0;%- [C1 the Free Software Foundation, either version 3 of the +License, or]&] +[s0;%- [C1 (at your option) any later version.]&] +[s0;C1%- &] +[s0;%- [C1 This program is distributed in the hope that it will +be useful,]&] +[s0;%- [C1 but WITHOUT ANY WARRANTY; without even the implied warranty +of]&] +[s0;%- [C1 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + See the]&] +[s0;%- [C1 GNU General Public License for more details.]&] +[s0;C1%- &] +[s0;%- [C1 You should have received a copy of the GNU General Public +License]&] +[s0;%- [C1 along with this program. If not, see .]&] +[s0;C1%- &] +[s0;%- [C1 Also add information on how to contact you by electronic +and paper mail.]&] +[s0;C1%- &] +[s0;%- [C1 If the program does terminal interaction, make it output +a short]&] +[s0;%- [C1 notice like this when it starts in an interactive mode:]&] +[s0;C1%- &] +[s0;%- [C1 Copyright (C) ]&] +[s0;%- [C1 This program comes with ABSOLUTELY NO WARRANTY; for +details type ``show w`'.]&] +[s0;%- [C1 This is free software, and you are welcome to redistribute +it]&] +[s0;%- [C1 under certain conditions; type ``show c`' for details.]&] +[s0;C1%- &] +[s0;%- [C1 The hypothetical commands ``show w`' and ``show c`' should +show the appropriate]&] +[s0;%- [C1 parts of the General Public License. Of course, your program`'s +commands]&] +[s0;%- [C1 might be different; for a GUI interface, you would use an +`"about box`".]&] +[s0;C1%- &] +[s0;%- [C1 You should also get your employer (if you work as a programmer) +or school,]&] +[s0;%- [C1 if any, to sign a `"copyright disclaimer`" for the program, +if necessary.]&] +[s0;%- [C1 For more information on this, and how to apply and follow +the GNU GPL, see]&] +[s0;%- [C1 .]&] +[s0;C1%- &] +[s0;%- [C1 The GNU General Public License does not permit incorporating +your program]&] +[s0;%- [C1 into proprietary programs. If your program is a subroutine +library, you]&] +[s0;%- [C1 may consider it more useful to permit linking proprietary +applications with]&] +[s0;%- [C1 the library. If this is what you want to do, use the GNU +Lesser General]&] +[s0;%- [C1 Public License instead of this License. But first, please +read]&] +[s0;%- [C1 .]&] +[s0;C1%- ]}}&] +[s0;C1%- &] [s0; ]] \ No newline at end of file diff --git a/uppsrc/ide/app.tpp/AdvancedReplace$en-us.tpp b/uppsrc/ide/app.tpp/AdvancedReplace_en-us.tpp similarity index 100% rename from uppsrc/ide/app.tpp/AdvancedReplace$en-us.tpp rename to uppsrc/ide/app.tpp/AdvancedReplace_en-us.tpp diff --git a/uppsrc/ide/app.tpp/AndroidBuilder$en-us.tpp b/uppsrc/ide/app.tpp/AndroidBuilder_en-us.tpp similarity index 100% rename from uppsrc/ide/app.tpp/AndroidBuilder$en-us.tpp rename to uppsrc/ide/app.tpp/AndroidBuilder_en-us.tpp diff --git a/uppsrc/ide/app.tpp/Assist$en-us.tpp b/uppsrc/ide/app.tpp/Assist_en-us.tpp similarity index 99% rename from uppsrc/ide/app.tpp/Assist$en-us.tpp rename to uppsrc/ide/app.tpp/Assist_en-us.tpp index de27dfd49..c90f86656 100644 --- a/uppsrc/ide/app.tpp/Assist$en-us.tpp +++ b/uppsrc/ide/app.tpp/Assist_en-us.tpp @@ -1,308 +1,308 @@ -topic "Assist++"; -[2 $$0,0#00000000000000000000000000000000:Default] -[l288;i1120;a17;O9;~~~.1408;2 $$1,0#10431211400427159095818037425705:param] -[a83;*R6 $$2,5#31310162474203024125188417583966:caption] -[b83;*4 $$3,5#07864147445237544204411237157677:title] -[i288;O9;C2 $$4,6#40027414424643823182269349404212:item] -[b42;a42;ph2 $$5,5#45413000475342174754091244180557:text] -[l288;b17;a17;2 $$6,6#27521748481378242620020725143825:desc] -[l321;t246;C@5;1 $$7,7#20902679421464641399138805415013:code] -[b2503;2 $$8,0#65142375456100023862071332075487:separator] -[*@(0.0.255)2 $$9,0#83433469410354161042741608181528:base] -[t4167;C2 $$10,0#37138531426314131251341829483380:class] -[l288;a17;*1 $$11,11#70004532496200323422659154056402:requirement] -[i417;b42;a42;O9;~~~.416;2 $$12,12#10566046415157235020018451313112:tparam] -[b167;C2 $$13,13#92430459443460461911108080531343:item1] -[i288;a42;O9;C2 $$14,14#77422149456609303542238260500223:item2] -[*@2$(0.128.128)2 $$15,15#34511555403152284025741354420178:NewsDate] -[l321;*C$7;2 $$16,16#03451589433145915344929335295360:result] -[l321;b83;a83;*C$7;2 $$17,17#07531550463529505371228428965313:result`-line] -[l160;t4167;*C+117 $$18,5#88603949442205825958800053222425:package`-title] -[2 $$19,0#53580023442335529039900623488521:gap] -[t4167;C2 $$20,20#70211524482531209251820423858195:class`-nested] -[b50;2 $$21,21#03324558446220344731010354752573:Par] -[{_}%EN-US -[s2; Assist`+`+&] -[s5; Assist`+`+ analyzes C`+`+ code of your project and provides -several useful tools. The C`+`+ code analyzer is quite good, -it is able to cope with most C`+`+ features used in U`+`+, including -templates. But as C`+`+ is syntactically very complex language -and speed is important in this case, some compromises had to -be made. There is a [^topic`:`/`/ide`/app`/Cpp`$en`-us^ separate -topic] about how TheIDE parses C/C`+`+ code and maintains the -database of items.&] -[s3; Assist `- code`-completion&] -[s5; This tool provides list of class members after typing `'[*@(0.0.255) .]`', -`'[*@(0.0.255) `->]`', `'[*@(0.0.255) `::]`'. It can also be invoked -explicitly by pressing [*@(0.0.255) Ctrl`+Space]. In that case, -it can also list a complete list of global objects (classes, -functions, variables, macros, ...) starting with the letters -immediately preceding current position of the cursor.&] -[s5; &] -[s0;= -@@image:2084&1225 -(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) -&] -[s5; &] -[s5; When list is displayed, you can use vertical movement keys or -mouse to select desired method and then press [*@(0.0.255) Enter] -to insert it. Alternatively, you can press [*@(0.0.255) Tab] to -insert the first item in the list.&] -[s5; You can also limit the list to particular type by choosing it. -To do so using the keyboard, use movement keys with [*@(0.0.255) Ctrl].&] -[s5; When you insert a function or macro with arguments, tooltip -with the function signature is displayed and current argument -is highlighted as you type:&] -[s5; &] -[s0;= -@@PING:2662&250 -(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) -&] -[s5; &] -[s3; Simple symbol completion, abbreviations&] -[s5; Sometimes it is useful to just complete identifier based solely -on symbols in the file using [* Complete identifier ](default [*@(0.0.255) Ctrl`+,])&] -[s5; &] -[s0;= -@@image:1659&1362 -(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) -&] -[s5;* &] -[s5; [* Complete abbreviation] (default [*@(0.0.255) Alt`+.]) is able -to assist with writing basic blocks by expanding abbreviations -into templates:&] -[s5; &] -[s0;= -@@image:1384&1015 -(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) -&] -[s5; &] -[s5; after activating [* Complete abbreviation], expands to&] -[s5; &] -[s0;= -@@image:1478&868 -(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) -&] -[s5; &] -[s5; Abbreviations can be defined in [* Setup/Abbreviations..]&] -[s5;* &] -[s0;= -@@image:2268&1834 -(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) -&] -[s3; Code navigation&] -[s5; [* Context go to] (default [*@(0.0.255) Alt`+J]) navigates to the -place where current symbol (function, method, type, variable) -is defined. It can also be used to go to header file (when used -on #include line) or matching #if/#else/#endif. Note that this -is perhaps the most often used Assist`+`+ tool...&] -[s5; [* Go to definition/declaration] (default [*@(0.0.255) Alt`+I]) -function goes to another place where code or data currently at -cursor position are defined/declared. In most cases, this means -going between declaration and definition.&] -[s5; While jumping around the various places in code, it is often -useful to go to the code you`'ve seen previously. You can do -this easily by pressing [*@(0.0.255) Alt`+Left arrow] and also -go forward through the history of jumps with [*@(0.0.255) Alt`+Right -arrow].&] -[s3; Navigator&] -[s5; On the left side from code editor resides [* Navigator bar]. It -allows you to browse and search the code base by the name of -symbol. The bar can be hidden or brought back using (default -[*@(0.0.255) Ctrl`+N]).&] -[s5; When the search field is empty, Navigator is a list of symbols -in the current file:&] -[s5; &] -[s0;= -@@image:2350&1546 -(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) -&] -[s5; &] -[s5; You can write a [/ symbol] name into Symbol/line field, or [/ scope].[/ symbol]. -Navigator will sort entries based on relevance: complete case -sensitive matches are first in the list, then entries that start -with search field case`-sensitive, then entries that contain -the text, case insensitive.&] -[s5; If you do not want to have Navigator displayed on screen all -the time, you can also use Navigator window using (default [*@(0.0.255) Ctrl`+J]):&] -[s5; &] -[s0;= -@@image:2456&1906 -(AxIDYgIAAAAAAAAAAHic7b1LzyzLdZ5Zf0Rzzi0JQv0DzQSCu2EYpkz6krYmho4NW5BlA1sSDU5k4LMMaKMJGODEpnjkPTJQHnBwhAMCTWqgkbE92AON3N1u9kVzD6orLxGx4pYZmbUiK7LqeVA4pyovkZFRa3/x1oqVa/35nwMAAABAEf8TAAAAoCX+t9/4jce+4i6hmgAAAKBBUE0AAAAAJaCaAAAAAEpANQEAAACUgGoCAACAV+Mbs+TOehrV9KMf//inP/3p2rMAAADgBdlTNV0H5rfsrJp++1/+y2998cXaswAAAOAFmZFGNXxNUiZtlkz3qKY/+nf/TjqXfum73/2lv/t37ce/+qu/+tGPf7zYCAAAALwgO6smK5bukUz3qKabZDr9wR/82ne+c3vzoz/909M/+2enf/pPb29ueulb//Af3naxYAfwSnz+wTcHx/o3f/A53PY7P9nS4E9+J2wOAJ6H/VXTnV6m+1fofu3v//3Tn/zJ6W//7dN3v3t6/75/dV3/8U/+5Nf+wT8oaQEAngWjmqTQeahqGi+O6gJok1fzNf3P0d30d/7O6T//514s/dEf9a/bm9vH3/xNHE0AL4ZTTU6q3KWadPqDagLQZW389kw7G3apeJkeEtd0o1+Y+5t/8/Rbv3X6+uvT7f3tdXtz+/i3/tYf/fEfl7QAAM+CUUi/I1xEnmqSsirc6LSN8zAFvqbx47DlJ6XN+htdE76Us70c9n/zB/XGCOAJUFRNM+TO0lqY2/MZup/+9Ke//Xu/d/oX/+L0O79z+tf/+vTHf9zrpf/23/rX7c3t423jP//ntwO+9du/jdMJ4DWw2kNIpTnVZLb74kh8+kksvxKnp5uNVVOqhemi/i5UE0DD3LNCp/KKu7Somn704x9/6x//41/6rd86/e7vnr73vdO//benH/94Uk23N7ePt42/+7u3A26H8SQdwGuQEkvZFTqpiOL34/GRgAqk1UKzvhcraMEIpaEJ7wMAtMwRVZOlX6H77nf7WKaf/OT0H/5D/7q96bpf+o3fwMUE8GKk/Erf/OY3QxWU8PWEi3Leelq/OVzG8y6Va9Y7KVoIlE08MvoKAFZxaNXUR4N/61un//Jf+limf/Nv+tftze3jt76FagJ4MQLtIZe9nP/JXxMLl+V+IEVTwtc07ZG+oXyzSV9T0LtE9BUAtMyhVVOfeeAHP+gDwv/e3zv9/u/3r9ub28cf/OBb/+gfaQ8VALRMpD2cE0is2k3eoG8mnUe+OyheuQtYaFacUxTXhGoCaJ/jqqbe0fT+/U04TVku/8k/ub1ub24fezX1/j3uJoBXIqE9jG4JwrZvYiXMxST3+WeHkUhRuFS+WXmK/9nvKKoJ4DAcVzX91YD9ePpX/+r2sh9/OqAyRAAAglQScgCAB7Gxeu/v/d7tVaE7AACJ9TVcQwDQAttU009/+lPpegIA0COdtRIA4OFsU00AAAAArwaqCQAAAKAEVBMAAABACagmAAAAgBJQTQAAAAAloJoAAAAASsippk8AAAAAL8wq1fTXAAAAAC8JqgkAAACgBFQTAAAAQAmoJgAAAIASnkY1/S///r/z4rX59Wj7BQCAA/BMqukKsAlUEwDsyd/4X69P8Ere2n96Cma+O1QTAKoJAPYkJzkOxIxq2rkn6qCaWuB0Oj26C5AF1QQAe3KTHP/fwZlRTY/u2r2gmloA1dQyqCYA2BNUU8ugmloA1dQyqCYA2JOb5Ph/D86Manp01+6lrmr6s++cJr7zZzrWdGvxV7//l6tP26SaLt3p/PZ5/Xmf384rT0Q1tQyqCQD2BNXUMhVV019+/1etWPrL739fRzbVUE05dbSomrbKqghUU8ugmgBgT1BNLVNRNW0UOPOgmmBvUE0AsCc3yfH/HJwZ1fTort1LzRW6fn0ulDi9A8pbs4sW8Xpd9J3v/Kr5HJwwqKY/m7aV6ydfNfVLaCPd5aZ8TvaD3Hl+e4tE0cyJvYLquvPwwaqp4c3bdKBrK7oEqqllUE0AsCc3yfF/6/Knv2nnq1/53l+IrfbTX3zvV06n3/xTrQvOqKb1jQ19i3qvhByEIipHg0+axyzUCU/Rn33H1zx2l9Ra/enRYSdxYGm4lKeablpmFEjus1U0vRYS6slXTUsnmg9SNZnmXMOJS6CaWgbVBAB7oqyaesnkqSPzwQmG1dJhCTXVFKi5v/je99SU3UhrqmlgkE69vnF+I+Fccs4mK4akaAp0kVyhW7Fa56mmUA8J8XPb5XZEC3AzJ6bfpzamLoFqahlUEwDsiapq6mWH50NyGybBEB2hgJJqqtG1gCZVk5U/sQpyW27v9lJNA+Mq2eDzKVZNMyeimp4XVBMA7MlNcvxCi58PuiPc9Cvf+/ntzSAYvtf/5+dq15uYUU0rWkl0fsItOU77zb1M63g/l014B4Yb/nTt/deMBv++kTR2oS2KdLLCx63FSS2UXKHTUU1Xp18WV+hC+ZQ5sUw1sUJ3NFBNALAnN8nxf2nx8z/85V/+w5+Hm06/+aPbmx+NImN4r8yMalrRSqLzAbdbGI8Y7mW8k/7t+K6/U78Be3z/dngntpRROxrcj/T2F+nkol0fAB6rpr+OosU1VJOL456ilKYNLuwoiAY3gmfuxHLVlLgEqqllUE0AsCfKqimURVaLDILhR5Gy0EBNNeU03Y+ss0ncy8/tvuF9fHq/RdDvbEo1NUSjucF7Z1MvuVBNLYNqAoA9uUmO/6HGz25C4ds/Sm740bdvguFnw//9Q+5nRjXd1flw8896BXi7BXsv/0O8j89OtCdPLKKeajpFaFrVStpUTfa5O1RTy6CaAGBPVFVTIIr6D0YlOMHws8HhtEY7LKCkmsb+CqHzsz/8wx+Jjrt+p1RT4rbk7QcHl4KvaXdc0ie70odqahlUEwDsyU1y/J+6/Mdv21nn2/9Rbv3lP/iZOMR9upcZ1bS6rZ/9gVtWm3poNv3yt7/9y+MmeS/Be//GZWv9Jm8QSkA1AcyDagKAPdFXTbujqZoaA9UEMA+qCQD25CY5/o+DM6OaHt21e3kd1cSL1+bXo+0XAF4IVFPLvIhqAgAAOAQ3yfG/H5wZ1fTort0LqgkAAKAdUE0tg2oCAABoh5vk+O8HZ0Y1Pbpr94JqAgAAaAdUU8ugmgAAANrhJjme4JW8tf/0FMx8d6gmAAAAgBJQTQAAAAAloJoAAAAASkA1AQAAAJSAagIAAAAoAdUEAAAAUMI9qukPvv/Gi9eqV2B+D+8PL168ePHiFb8qqaZHF6uHIxHbISYEAACtgWoCRX74wx/e/pv3X6a5opoAAGBHFGcrC6oJ1oJqAgCA9kE1QQs8SjV98cUXp9Pp9t9aNwYAAE/EEVVTd7qeTtezPfDz9Xzbcr79338Px+FRqukmmb788vafU60bAwCAJ+JwqunzWy+Z+ldnNl2EiLr4ggoOwkNU0xdffPHu3U0vnW7/zbqbLt1NU53fVsrwbWc9qllVbj9qduug8rV+8XZ+fzqZ1/nrz9dP3fSmJqp38fntg7uF6fWhoPk97vRmvnsZ7+e3s9a1HmQVOar8+zL32H3Sbtlhv/0dzaCcNd/ywVTT6Erqrm9n51AadVR3Cd/DgXiIaropkP/6X3vVdPtv1t20v2oazk3bsLZqqvEXeKZN9ctVUU1SYxxPNU18/vq8rufyTof3FSbQ+6fLDS3cfdEHWUWOetZS+aYUVVMF3bXmWz6Warp0vSi6zSe9ahreXM378W7lezgQM3b41VdfrbLDQtVkHU3jK+tu2t29M1wwo5q0aV813f7Jz5yCasqxWjUJLh8ruR2aVk1ZS6tgFbd5avO/7wrWMvgnP3TdhzK35EaaUE0q37LibGWppZoGR9O4+jbKp/EOxzCn0QjlezgQOTv8yqCumqyjaXxl3U2jauq682lg/Mfa+/8N0z/fUeycJsUjtZY4OPVP3TtRfBjakRcyu/tGxuPO57Pfrnd4IL2ivzTjPxa32D06cv1/TW+XaePQl2mvXQGXB3gbpxHx2l+8XDQwCb/x+LPIbs9dKz4y+Jhm/i+n9OGPx0zHn832c/dx+s1++jj3R6juXQyEqslbgOgu8b2YOx0lk7iLS+d9XIWzx6HDgwlepm3WGJ3NT3fVHzb8gwvu0v8n5h+WbOTtc3BK0B/b8OyQ1rGKTgaZzFLdWoYO325nsJnz2y/6bZP3aeiwfF9O5hu5en+JxB8s0cnwa/KbCr7TZCMpE7rnW/ZRnK1qqyZnJObV3yGh4E9B0g6/8lFUTYGjac7dNOmTwdaGf52e9DAyJvRI2c+Jc+Lm4ybNv/bpD4I5IFRNrlf2z4n9w7Somq7+71b3/jJJoM7+a4pCB92PFPFPz/6KCS7TpXbFl3OYhfiA2ywQHJm91sU//VI2Q/mxDb2zxf3lHMTDOHGMh93ei7+0YmYZI4um2Sem+l0MZFRT1Ct7g2KOkL6m4X3qXoTozUzNcWhRYKCxKHL7Mv9ipBEnD4unZnHK7W1wzYyledSzivl5fGAHa3FiydMJtsPDPQY+qOVv3/Uj/40II3DGMhORlvRWJRvxbePubzk4VnG2qquahhu3X42LXyIU/CmI7VCaX84Ur1tV08l3NM25m2KvUfQD57bXfpKeJ7t9xpscnphUTf4+p5qGg+wh8kTZ0xncX+Dgz2Dn7828lxtvP2qC38Ljv0f3A2fpcmLIU+vswynBDWWvJfzS9tzlvwwzvzeHN97Lzo/i97hQHRnVtMNdjMcmVZO8NTFNzKim7REvvQnmdNE1FDMn+Y9gZv0l08JcI6FnQzadtrSAmlYhQ00S7GEt0eMD9k6dhWR/Asyx+I34FjJJ2oTZzFpIshHfNu7/loNjFWerqqoptC4jkAgFfw5ydpj7eI9qSjqasu6mlGpynh651/7TFr6nIvUiT3yoasr+fS5QTbd/oZ5qEg3ediVV03zvwn/yMz1MXesa/UFY/vuQ/8uZDhPSVU1adzEeNquaRl3kiaWMarKDUPosnutBmWpyh93ebVVNc42ErcX/NBakSx2rKArB3dvmfYfYPaqp5BspVE3zFlKgmq5mlDZ/y8GxirNVVdUU/iC9mC1Gb1u/E8LpiCTtMLArLdV0GnI0JVVTIndTYi3MSZnIlRSt2C06m4ITg7/qa1STOHbyYK1doZtZC8ippukU8TfcrRfMLt7Fl0sSCLN0D1PXuk7j550SfAyZ+b05zSBmRD+99fPIBtW0w12Mx8ypJjc5usOEaho3+tHg0TLNxhW6SPPYbd7yykrVNNdIojU7+0qyUdYVrELqnHlqW0tgJ+KjMZJP0e1fC779om8kWFxzP/jCkIU5C0k2kjWhbd9ycKzibFVVNcFzs2fmgdMS3tEi9tAJEbNxDMf2o06dw6gkGjw8UW6z0eBlqkm2NnZsUTVNsYJReHb5Cl3XhX827d4pGPV87cwcMX+5Ejr/r3T2WmLxYvjp6X/M4cc29BPfp0zc7zj9Lc6Pl3SYZd27GEd3foXOuI/OHxKq6WojwD9eRHD4hmUaZ92RB8CbCweT7bplX5Np0USDm8PmGnGnBN0pRN0qsqO1v7VE0VajYXx4e7PeyOu2aPCZbyRcM43+NAbfU9yUNINkI3MmlGb+W/Y5VuYBeFaoQ6dL4QrdneyZ0PKI2FgvgEWwlqOAaoIWeBnVlHRd1bnKyh9bGzi4ahLP1L8X6yx6dHtkQal+F49jn38s0UUfNJ5Yy47cNQ5tqqYfwuuhZYdtq6aqpJb7anJw1QQAsBrF2cqCrwnWoq6aHq0BAQDgOdGarSyoJliLoh1iQgAAUAlUE7QAqgkAANrn+VTTPk8PgS4PUU1fjumZBm7vK94eAAA8BQdWTUPoa6yOUE1HZGfVNOqld++muiq3/97eo50AAGCe46omr/CEANV0RHZWTSdRh+79qbgOXTmVHv3f2mxfWKE4k6Qe6R82UTWwOcaSEGsyYYq8jLLOfKoGqbzMh6Xnjy8dNS4B4ECqSTxVbQqBpfKH7praA7TYUzV9+eWXYx26L9851TS+v20P3U37q6aME3V7s5+v51TO4TspSDvQZ+g9h8UrRImazCluV1yoZRlZRU2836aaRE3765pCGADwrBxFNcXThedrEh9yPihomT1Vk3Q0Xd8Nquld3t20U8LI4IKaBlxStmwDharJVUGw27qurNCYp/cmxbKsAL3as/mqCD4Z1TTWl3ClJC4PcdkBQEMcRTVZV1JQrEuWBVtV7R2aYmfVNLqY4tdYpM47elRNt7lf2p/0bPqVkSZDLK5Dt+BE9Vyo025Xh26sNifaTXpcAw/JVL7KVo4T9eC8WnJmacwqLnliV1RCbpRApg751MFxy1Rt2KtWbm9H/AO+mDp35g7XqCaphYSvKS45ZepxnT+IemKmVptIHlzHawcAB+IoqqnHlSa19VFRTU9C476m0eSCUrp2r6neK/bYz4lz4ubzTtRJBona7p5qcr2aypn6ZXxtuU/7ryFZQl3KJ1uWd5JDF1EMtAtPLPE1jZ11tzNtMP+GnTqKC7xOV7999Pqz4O3x4pqEm8ioJiGfnCtJVDEVxVcjX9NOZS8AoF2OpJp63MQg1ZGYmqZpBtV0LI4R1xTbnFHxoS/UnLUkmhacqKHoClSTiOgzyi3x28FN9CJM6JraYuuHSkU0vR+OlIqrXDUZsRRLIyubLp0bOOs4C/t2u3pBhVPra5IF551qkkLICaSMVypWTYQ2Abw4R1FNqQpbZpsIZ4oc/HAMjvEMndEiztMj90pfqK+aFqwx70RtSDVN3XELeStU0yibLm/nSBqNeuqz3SNV0+V68pfD+iXC5bCiMAJ89CBpqSZ8TQAvzlFUEzw37eZrSqyFOSkTuZKiFbtFZ1NwYrDEvEY15Tyu0j2yuEIXP7AWqCMbW75GNQUrkdKhdBNMMmDcW6HrRKjVuFp3WhYtMhp8dDcNssdooVEpDaJI7J2NgHKqibgmgJcH1QQt0G5u8KQT02wc45etnydwGJVEgy84UdeoJtna2DHjdwpX1nLR4EmlNL03osXqlilOezkafHx/66ZVQJ406vssnHHTLdjoaxt2PsiVKX3TnHTxnqGb3E23j5EHqf94XvA1uSipaRfP0AG8OqgmaAHq0OniO6ya9pDIR+x2JnQlLUFQEwC0qZp+CK+Hlh22rZr2ib8Ln8zbJTf4plsTIU3bLupnAjcupvJzx6inkqM7HE0A0KhqglfjZVRTVVLLfe1SGvKljRBaxZIJAGAE1QQtoK6aHus3AwCAZ0VrtrKgmmAtinaICQEAQCWeTzWRG/yIoJoAAKB9DqyaMqXhD6yaZordPzsPUU1FmQcAAAAMx1VNudLwx1VN6sXuD8TOqmlFlksAAADDcVTTbGn4ZLV3PyVgtlK8eErbKa7p+R5bhN0VvZd5Dt3WmaYy5emD5IfxHb0UO6um07aKKuVsO6tas2PmgbGUGwAAbOYoqmmhNLz44N5mVVO2UnykmoLqFGJr1FRQlSxSTf5FU09d42tSscOK1XvLuUc1zSzUbmtWZLkkTyMAwD0cRTXNl4bP1S0NSdahmFFN6YoVmZIZt4NnVFO2ZFiydy/HnqpJOpqu7wbV9C7vbqrkNcqjbgZeRRVqggAA3MFRVFNPvjT8QVVT0ElUk4odlqim0cUUv4adKdUULMXK9eDJCLwV5PI6dAtLz97C87Q7u9acXKcO/EttV1cBAGicI6mmnnRp+PR6Wm6FLqWawtW9MtWUXOxLLhSGTaWcTceNY7+fxn1N4VKsv9eEpYk99vNSAuyFpefJnM0BxWvNspHO1NsdCT4CAEA5R1FNC6Xhk0WwClWT+IHuKsUXqqbgV32yqUx5+pQLwrujl+IYcU2xUjdfX7iCbM5arBoyv/Qciq5ZS855XAOZRGgTAMBmjqKammP3cJfn5hjP0Bkt4jw9cq9cQfZV04IKzi8911BN+JoAADaDatoIqkmVdvM1JdbCZhZaoxW70hK16aXnVaopvU5NXBMAgB6opo2gmlRpNzd4cinWbBzXYf10W5mHBfxluFTzqaXnNapJtuYWiHmGDgBAjzZV016Fi6EhtOzwMMK7Jr7DinxNAAA6KM5WlpfwNYEqL6Oa0k8RVLmKcGzZ3OA4mgAA7gHVBC3wMqqpKqnlPgAA0APVBC2grpoeudYIAADPi9ZsZXmsalqXK3Jt0dwDBYEfqKv4mgAA4AgcWDVlipyuUE3+oZfOvcu20JoUKezqzGEq17obVBMAALTPcVVTrmpbuWrKpdI5UD24wq6q3FHVYXmIairKPAAAAGA4jmqaLXKarFsaV1TJNCl31SifGhIn8InDeNPtLwxCfHd+KqFENZBEOVqbx1EckGgk7nPQSJEBTuysmlZkuQQAADAcRTUtFDnNl82dU03J2vUVyqcmLhkLNaH9XPU6v/2FQcgPmX+YWGmzTQe3udhIss+5RgrYWTWdtlVUKafSSu7WZsfMA4+i77Vno7cN1qZW301/L6fhteqOPr99OPXf9UfbkUt3+/ih/1khsoBWoDsNObI+X8+nTLKsmV0A0BhHUU3zRU5zFbgKMY17Dh3FQmDxtTKiKVRIyZIZWYEXMC94JHEO6mvCIZYb8FB6bdIKe6qm7dV7y7lHNamH1dWpotIVTvQ3qzh33Tkw+a2qaRAYl1UdGPjF2/n9oJo+2HOMarpWTv65qp+rDgaA/TmKaurJFzm9UzUFZ+2gmuT2ctU0PwjJ4YoFT1ra+FuT1WmfRjWdhKPp+m5QTe/y7qbd4//V48e8iip6FM7vvWgaBL9fre8O1RTkOS/ShJ+/Pp/en7uP/X/ffmF64URUzUIzqCaAZ+JIqqknXeQ0Xbd0aYXu81tntnnzvXr51OCqSWeTDC9yK3SxasoPQn6oUnfk1uveXEPeAIS1Z71Gko0fRzWNLqb4NexMqaau89x8iZVdL+SsvA7dQqyaRlhd4Ei5fRxXuFy9lZO/ZZy7zUKYVVzyxO5UuExm5JInm1KqSXRd2LPbajf2Gc6HS5sTC1TTsDx3E0iDx+n8tflt4FRT3EhS0ImxugwDMg3OTXQNp/fjdpmOseNmhZBURMG3MO4qHlUAeBhHUU0LRU6TlSqWVZOcYlIh4UrlU0PKo8FTvqyZQYiHzPcepaLBpfyKWrXVaRON5KLBj6Ca1vqakoMkBzk0Mft5aUwWYtU0wuo6s6R1lRO9ofPlk53fp4n7MimE2BtT5BVxYknKplg1idCn/n6cNg1H7jLpJa+HSxrDiSXPvyTe+6Pk9TF5y5dpGMezOrFoOMqnYDCDN8lvIVZWANAgR1FNh2PbQuHLcoy4pti/aURjGHJmzloUkguxahoLxE4PiKCga2rLpfNcHyMymFnO9SXzu5RKfZecp9JXTWLfuNW4Lrv53t76Y/s804t+eU46FcdFOl81LYc2CUfTyVeVno/OOdTCwZQjGXQZ1QRwFF5JNSXcUXWv5aa3HS66593pc4xn6IwWScZ9eSFnvmpa+DJmYtXaUU1Td8JFpbIbC8xyq2oyC2GWfp1rcTFrfHpuCmcaFVTkd4p9TYl2EmpnRjXd+oZqAng+Xkk17UBqDQ0KaDdfU2ItLB335Y6WK3alq5aZWDWNsDrpRVlcoYsfTwvmcRtbvjy/h4tcVgYtrtA56ReMXCckyqhYTktqZ3x6zqoj93F9XFN3SoxesEI3HZAaTFboAJ6ANlXTfkX4oBm07FA5N3jShxfFfYVyuTgafCFWTSOsLniGrjtlo8GTSml6f3GLU2aZbSFuOdYdRhDNR4OnIgydphLLZIPOmdI3ZQPChXPJNPl+dD3NP0O3FA1+O96Kn74PJhq86/zhzSii4FuwuxZHFQAei+JsZXlhXxNs5CGq6YnxHVZV8jU9E1r5mvAUATw9qCZogZdRTfuEn4VP5u2SG7yRyLrLRy+bRPdp8YRObXBQTQBPD6oJWuBlVFNVCKt7MKgmgKfn+VTTukf+w6yCRcffNSPtnmv6EKirpsfFZwEAwDOjNVtZdlJNl3S5rhWqyT/00rl32RZ0VdPMhVY2eLBEAxGKdvjCviYAAKjLcVVTrlxXuWrKPRSuXggsh8qFduttVVBNAADQPsdRTbPlupIVuJYqqrjnx5OPOp/UCoHFF/WfVU8VOonrndlEQeKARCO5Qif5HrXAQ1RTUeYBAAAAw1FU00K5LvHBvV1UTckqrBUKgeXuxD9GrLTZFoOrLzYSpfFxRXXbjqXaWTWtyHIJAABgOIpqmi/XlaslUYhpPC6cq1PSwmNe8EjiJIdXT+fFjSR6nmykPXZWTadtFVXKqRTzv7XZXTIPxKRD7gZ7LL2JKYnlisSPQeaB00fz7+u9yBAeX6avunKnIzZVbbgBMgOS51MnqvVFH+dodAR6xpzw4ytrBkdjLMUIO3MU1dSTL9d1p2oKznqIakpLG39rsvwZqinYWLF6bzn3qCb1hxHqZLksq0N3Pp+D/govbeYUkWcqXeRl/qIfXZom8X6bahrOWpQZd5NMRK7WeHpAMmQL0NSl6ghMws98j5evVa60k20soJWgFco5kmrqSZfrSlfgWlqh+/zWmW2esFAvBJa5g9SF3Hrdm2vG61dY3MxrJNk4qslHOpqu7wbV9C7vbto9U4R6eH9QUUWLQtXUdb5s6kvzdvkpMlJNRu9Ns8OyAvSEwTBdinIqOTKqyZ9t67GbaloekFEm2VsOPlaj5gioOBIj9rKNJeJiQFCZo6imhXJdycTEy6pJRm6nQsKVCoHFd+J7j1LR4FJ8RXdsy58lGslFg6OaDIMu8tYs7GvYmVJNt7lfjmkiHs57WsH7lmfr0C085qDxMELwa/T2MVeHziudZpbGrOKSJ3ankoWzcSrsdZJp+NbBccv0I0OU4u3c7Yh/OZfOr5G3SjXJ6VL4muRizftx4huPPJ8/nNxq1LQyNb7Sc64bb1mVOPH4RXBgOEr24LdoTMYv+/x28cMIFtosGBAzJu/FopU3Mt0l+HjQEcgKv+j2YyP5eDGHrbaNHMO9vAUPIi3eoL3D6J6pl7Q7R1FNh2PbQuHL0rivKalh7V6zOCv22M9LknXhMQeNhxE6s8h1vbqCs5bOl0/jhTorhy6mXG/0k7bQ1zR21t2OnQTHVXbxLIScdk0Dk17y+rPwy9oL4/ko5t9pQhQzo3MXTKqpnxDlJLvgT5B6UNxvtFtsv3QZ5Sy+4sSYSLluv+H5NosGZJzx5S2v8zUdYQTS7rXk7c+ppjLbkPWd/V8i4k7lL1zxWzdxg/LvQPhPxiL/gcMOvJJqSrij6l7LTW/7XPTAHCOuKV4VNr8Nw6cVzFmLfr75xxxUwurcH1URJnRNbbl0V3uK7fL0fjhSKq5y1WTEUiyNxKzqBs46zsK+3a5uezhzUeNa+fz1WUyXZkKUk52bBDNeqQXVFMa1e5rB04oLfwPkibNjYncvt7kwIN6tidtfp5qOMALJLzF9+zOqSQxOkW1kCe40UoDeDXpeN3vXwd8TQpt25pVU0w6kFhKhgGM8Q2e0iPP0yL1uddb5nopcjvLEZlXT1B3383mFahpl0+XtHE2Co576bPd4DoTryV966JcIl0M4wgjw0UtQRTVNY2KHOu0wCaa/2YFaGhPb1nKbCwOio5oOMQKpBwEaVk3pGwyHU/xVwde0M22qpj0LykAjaNmhcr6mxFpYOizfHS1X7EqDypz8Un8YQf4UXVyhu5iNSdV0FbHla1RTsBIpHUq3qVEGjHuzZycXOC7TksfSBCGDn0fvirf4IiY+sXc2AmpxZhS+tMCHZm9q3gT8ha3EmEjd7tZ0yn6ZLQzI9Z4VumOMgLjr4cSv/YXapEByoiijmtIjU7RCl1RN6RsUfwe8lpykJK5pdxRnK8sL+5pgIzurppGi3ODJJVaz0Yblh07G2EPl9uWaD9bo1B5GCJ6h607ZaPCkUpreX9xEcJn6UhgNPr6/dVNEIfvrEXJCmG5h6rqYg4apYUrfNDdN+A/XTxG/3afIg9R/PC/4mq42KKh3RETXdV+eF73jmYwLVvGPjUZK7vLH5NKJxxHc5qU2FwbEvfdSGM2ppqOOwNUKJ+9mE7fvDnO2kVFNnm2sIOtrmr1B79eHP1I8Q7c3qCZogYeopifGd1g1/Ws0Fd+6E6seqy8IqVLDHxPfD/M4GIFqbL9Bgpr2B9UELfAyqinpuqpzFW/FY4cfpJtuTQSvbLuon/h6Ln9j+tySlNcDetEjSwMVjsmqKfWeAVmAEajGRtXU+3txNO3O86mmdY/8e/98C04Kp6Nq7HahNngZ1VSVYz2M8Kg8YmJWLZZMe5Eck6f3tEhecwSe/gafigOrpku68MQK1eQfeunkmnqmBVRTHdRV06Ni2gEA4LnRmq0s+6gm7wFtQblqyv3WzbW8K6imrXb4wr4mAACoy3FUk1h9iAtPJHOe+Q8cJRSIfRJK7Apb1ihpIfCVWvDQuGwK1bTVDlFNAABQiaOoplhEeB4h8cG9XVRNvsgJHvz2s9pGaWcSaXy8XmYdVuKYhFusoM9PyUNUU1HmAQAAAMNRVNN84Qn5fkMBONO4l+NZMTmzT5AA0RwSZPVBNW21Q+UslwAAAIajqKYel8LP5hHUUU3BWZVVk2nj4tUhCMUSqmmrHVasqFJOpa9va7O7ZB6IST9WkSqllWVKa7mQTtO7qP/guc3QmCirIS/zYXW6wkQj5xb/yWYGJM+UBdQ8YBh8nKPREegZc3O991N6Ph9Bztggkeba+17/r2867UOmdvZYTfLoHEk19bhpI66kGtaSWFIgn986kbjYHaJe0iJknDbOdu5IVehANW21w4rVe8u55+tTf4SzTpbLwooq5zAfk1jbzpwi8kyli7zMX1Skwg5LsK1WTcNZ62uNraXqg+eZAcngp78OP1aj7qP3n7yacUNFlfvZyTZ6So0/rERzvUs1bfnX12MFqjMb8a/vCdJyHkU1LRSeSOZNW1ZNMnI7FRKuVNIiIlgSFHHpZ1TTvXa4qJqko+n6blBN7/Lupt2/CPVHOIOKKloUqqbgj/iQ9LnL/wGPVJPRe9Mf22UF6AmDYbo8f7347WVU06eNFVrXsptqWh6QbXXo7u9kxRFQcSRG7GUbPYWiJap6fL1XNa3+13edqtKcu49n4Z+Uv1mOXwLmKKrpcGxbKHxZdlZNo4spfg07U6rJ1oiKi2p50XBGbEutNVuHbuHhUI1HOIMfd7ePuTp0sor6m3HOW8UlT7TF7Arq0F38au3jlsk165caO5+Dro/Zj2WNvFWqabYm73u5YjUeeT5/ENkvP3XCNma8xq6/08QUfGmJA8NRsge/RWMyftlmQV+a0FybBQNixuS9cAt4I9Ndgo8HHYGs8Ivr0M2U9F1tGz07/lu7uozqnmxKqSbx9Yi+J0Zz/b++ycZMmWyjz6VqarvAUwmvpJoS7qi613LT2z4XPTCN+5rksmv8JKcJafN/4YVrrmkWHg7VeIRTFsK4/TUO/E6d/yd9vFBn/0RfTLne6Bdioa9p7Ky7HTsJjrGJIrOsnHZNA9NfbK8/C3OHF8YTR1ZcozK+QjX1E6KcZBf8CZeghF7wc97uFtsvXUY5i684MSZSrkeTYLrNogGRRWnHXet8TUcYgbR7LXn7c6pppW3s/W9NiiUpm2LVJEKf3GCmItK2/Ou7OrHk+Ze89XG90jyP4ZVU0w6kFhKhgGPENcWxdOarDp/xNGctVg2ZfzhU5WEE9zdKBCpcU1tseVb5V3p6PxwpZ4Fy1WT/ikfSSMyqbuDsL+Kwb7erFxSQta6VsX59+GtXTnZuEsx4pRZmxjCu3dMMnlZc+OUkT5wdE7t7uc2FAfFuTdz+OtV0hBFIfonp259RTWJwymxj539rnlQSbtxINUUuXjOY3Xxvy/71jTYmXuMina+ajh7a1KZq2jc5OjSBlh1WfIbOaBHn6ZF7XUyb8z0VLdTKE5tVTVN33OLCCtU0/kW/2D/rbhKMIjGkA+F68j35/bLFckREGAEe/N3WVE3TmMhnYRMOk8SUlB2opTGxbS23uTAgOqrpECOQehCgadU0dWrtv7WAwMu3UjVt+9cnfLZXqdLxNeFrAm12Vk0r8jUl1sJSzzzKo+WKXWmJWie/1B/hlL/sFlcNLmZj8i/5VcSWr1FNwUqkH2LhBYx7s2cnwj/G9YLT8t9bGfw8/fKViy9i4hN7ZyOgFiN+hS8t8KHZm5o3AX9hKzEmUrfb2bDQn70wINd7VuiOMQLirocTv377vCiQnCjKqKbFkdn131qwNOqGaXGFzv3MCgZzw7++7AOYxDWhmkCbnVXTSFFu8OA3nPuDPYips+fnCRxGnofK7cs1H6zRqT3CGTxD152yEarJv97Te/Nn0/7lnCJFl6PBx/e3boogU3/BRU6w0y1MXXd9G3/5Tglk5v7q+g/XTxG/3afIg9R/PC/4mq42KKh3RETXdV+e97veMxkXNuIfG42U3OWPyaUTjyO4zUttLgyIe+89JD6nmo46Atdg5UgG2/i37w5ztpFRTQu2MbDbv7VQNDlBFKsmOW5BEJo/lqv/9flr4naEz2+/4Bk6VBNo8xDV9MT4Dqumf9wFXok9WfVYfUFQhxr+mMRT4mNgBHLsOTJH5+hBTddnVE1zkSTeMkEx5WfVbv95eRnVlHRd1bmKt+Kxw++7TbfmJ5fZcFE/8fVc/sb0uSUprwf0gjGWBiock1Wa4Z4BWYARyLF7oM4+f0aWu7F2qHun2cEdTddDq6ZLOoVyo6op09vtvSpv/wi8jGqqSmq5r11KQ760EX/qiyXTXiTHpHVPiyqMALTOcVWT96iRQF81aZDr7VHar426anrMc4AAAPDsaM1WljqqSfyOjlMoJ7N3+KGz7k29PM/uyNneKiR8XtN+8h5zW1x+ZjdOO6gxRTt8YV8TAADU5SiqKfYSed4V8cG9zagm+Wx23OL5jjzP2RaC3t6d8Hld+3L1LvbEpe5OPLi+0zIKqgkAANrnKKppPoWyfF+6Qlchz3NwZK6396cu3NC+R+qu5YBED7M/p2oqyjwAAABgOIpq6nHJaNwa2P2qyTl45F55LV8LzWZGybSgrZpWtZ8Lrwzv+pVU04oslwAAAIYjqaYeN4fHvqJwcalghU45z3N2bU8/4fOK9oPzLm+y1fDda6im07aKKuVUGrWtze6SeSBiTIdkXn3yu0/JQqobeesySajGlJW6D8olcie3ghzmD9pdHAuQAYDlKKop9Uy12RaGRy+pJu8gd+b9eZ59nZXv7d0Jn9e173c7CFe3d/06qml79d5y7hk19SQVdbJcLld5COorXHPl51czisC34ZWY02UxLJHYeXxfmNNSj7pPzX/yqqENtULuxx+oJ0hLCKDIUVQTXOcXHw/OnqrpJBxN13eDanqXdzftnq1CPYlEUFFFiweqpp6LKFQRIFWTKJXyqaAUbwVqqiZZCEaPcKCOXwIDQBFU0x0kXVeVL9foKsG97KyaRhdT/Bp2plRTvWwV1ZNUhL6CvnZ5pjaWteBeEb1NG63ikifaAltz8+m8aooXlqbjz2b7uftoqoJFWqcbvGe3LiX+0UW+plvznzrxRQ8DK1bxkjmN3VjKKqhxVo/wwOyX+xYWm5++yPPbZWrBmcdcm+EAJ3RgXGFtpljt+fxBLGWGA3VtvSIPwM6gmpontRz3dDTua6qXraJ2koqrX+5hsQ77eKHOyqGLKSEaORxKfU1SmjjVJBaB7CwuVJaoUi81UBlBXJPRHZ4LZTom7/e6BOXxApeR3S22X7qMKhZfn6hO6yILnBS33958m1dxR9EtRNVmrUDKqKZ+aKUAi51yu1cMAWiXNlXT3ok+oQG07LBiXFOFbBW1k1Rc5ZQ36CJv+vO32CKkiTrsw5FScd21Qud5NIw3Sczcsnr6unJx16zOSqimmVaHEfR1sPvk5E/Su+chTxRayxlK1Oxym6k7mrnNwfmZVU1CX40HxM0S2gRgUZytLPiaYC17qqbr5mfoamSrCE5sVjVN3XELefeoJimKwuMbUU3TUXYY0y6j4Yj5r9fTRWNZWlGcVu41bS236dp+Hz03V0M14WsCsKCaoAV2Vk0r8jXVzlYRnFghSYV0FCyu0F3MxqRquorY8rt8TdPinV08ewtWiWqoJi8KqHjdzygcK2+Cpbv+m5j9ev2lvb65rjt736jQ5O6x3rLVeLGSOZz49WAb8wLJiaKMagrDpYhrAhCgmqAFdlZNI0W5wStnq6idpOIaPUPXnbLR4EmlNL2/mPBvo6wuXVk0+HuxBpeLBo9ia2qopqklGQ1uj7ndXSAM3BfjxS955hA/GpByEU2niIimICjcPmrgNi+1Ke/267MbYxn77W0Rh43h9jOqyRuoK8/QAXg8n2oqzQ1ezp7Prj3zc3JzPEQ1PTG+wwpfwQJ2aXKXawWJalv/505QE4DkwKopkwzwAKpJPY1hefut8jKqaZ9sFaEZ7ZIbXDg43p/0swjlr/vRiytPphFYQC9uZ+n7FSFN5vjyf+4Kd7qW3qOIowlAcFzVlEsGqK+atFFPY7hz+zV4GdVUlZdIUnFYcgUh+aoAjsRxVNNsMsDk07p+EIh7UzFjYXLimu25QhrDNe0n7ze3xV5djFklNaaumh6ROwEAAJ4frdnKUq0OXT4ZoPjg3mZUU72MhXGMbqC5Ej2/O43huvbl6l3slUvdqXgcq/R5sA0o2uEL+5oAAKAuR1FN88kAc5lqQipnLEzIFfOYeq7n9yfk2dC+R2oE9q/ki2oCAID2OYpq6sknA7xHNSlmLEyqpvmeq6QxLG8/F1oRjsBrqKaizAMAAACGI6mmnnQywPSCUsEKnXLGQqEqIolVMY3hivaD8y5vstXw3fOqphVZLgEAAAxHUU0LyQCTT/zmVJN3kGbGwmRHa6cxXNe+fwuec0qMwNOrptO2iirlVBqprc3uknkgws9yacvP5SvmruOtyyShCqr3rkmQmcWV1m0OOcwf2uyiBn520KufrX31VzPWBlpI05o67YPJ2Gp7MQ77pQuz7sOzchTVBAFFBc6Ow56qaXv13nLuUU3q6bzqZLm8q6LKfYwi8G14JaYqmfdbpL8e33/c+59M3dwCn7yacUNFlfvZcaCWrWgkrERzvUs1ZYoHLWIFqjNqUb+GdKAvAqrpDvbJWJi/dKO/fbewp2qSjqbru0E1vcu7m3YfafV0W0FFFS0eqJp6LqIoTIBUTbZ8baoo7S7UVE3i7hTZc6AKRUtU9fh6r2oyvyMmqVP0y2KoSnPuPp5lLR5RQJnSM68BqulQPG0aw51V0+hiil/DzpRqqpjjq3Y6r/An8O1jrg6dnX77ucwsYVjFJU+0xeyW69DlVFO8sDQdfzbbx/nplJzCu2GOu3UpMbdHvqZb86MSeB/UoZtLsu3G0oQAuLVrb3yDA7Nf7putznt17Q3/u0wtOPOYazMc4IS8ievQzZT0PZ8/iKXMcKAy7GdF03CYkM2z8PLEqkl8PaLvidGcqihazVaimgabuY3hMIBG+0vVROmi16BN1bR/0ip4OFp2WMPXVC/HV+10Xle/XMhtzgr8Tp0/8Y0X6uxEdjHleqPf0aW+JilNnGoSi0B2Fhcqa6o1+/EyU4s3SxDXZGZKz4UyHZP3e126TBRNsFtsv3QZVSy+PlHD18VjOikeyYB0m1dxR9EtRDV5rUDKqKagcvKyr2lXK7pKsSRlU6yaROiTG8xURNpl0kteD5fcRE4sef4l8V6zNA+0i+JsZblfNV3gxdhTNW2Pa6qQ46t2Oq+r/EsuwjmuqS22iK2cy6b3w5Fyrrxrhc7zaBhvkpi5R9U0CoKh+tp61RSdkVBNM60OI5haD5o++LI24eBInSi0ljOUqNnlNlN3NHObg/Mzq5qEvhoPWFBNO1uRL5U+O4ddpJo+h848M5jdfG9v/Sko3zwJeffynZnjQYQ2vQKoJmiBPVXTdfMzdBVyfIUnNquapu64JZh7VJMUReHxjaim6Sg7jGmXUWJSDvF0URSfI/eatpbbdG2/j56ba1o1TZ1aY0Vh+Ki1662q6XI9+eto/aLhYjySZzDCPPE1vR6oJmiBnVXTinxNibUw1RxfwYkV0nnJ37+Layvxg0XBvGZjy+/yNU2Ld3bx7C1YJaqhmrwooOJ1P6Nw5BwdViGa/Xr9pb3wWTBxupvfF9t0vXMrmcOJXw+2MS+QnCjKqKZsuJRhVysKY73tMC2u0LkfEMFgdvI5gssU4DSvdgJbdh+Ja3o9nk81/fvuG7f54td/P7Xv93/9tusb3b9f1+K2sx7V7DHZWTWNFOUGTz4oaTben+MrFd9vtmmk87pGz9B1p2wcb3KOm96bycXOL1M87WI0+HuxBpeLBo9ia2qopqklGQ3unoQK/Q/ii/E8G545xI8GpFxE0ykioikICrePGrjNS23Ku5UrRzLYxtsiDhvD7WdUkzdQ8cgM7GZF8QNyRhDNR4MHQWj+WIrejnc3pW/Kap7IOWpDwniG7vU4sGoaVEesjtpSTZlO3tvs0/EQ1fTE+A4rfgIvUBDWonitIKV/00/D7jkyR4egphfhuKppEB27qKY7yHUSAl5GNSVdV3Wu4q0L7fArWDg43p/0swjlr/vRiytPphFYQC8cZen79VMOrVRNCne6lt0Ddfb5B7LcjbVD3TvNcDS9BsdRTaMAOY0qRHyYRMkolrxtViMFb37916dDR/0kz5wUlXctT2uJg1Pqa7aTXhen3bZXp2984xt+u4k7el5eRjVVJbXcB62QK53NVwVwJI6immIvkefGER/c24xqGpsZNUnc4m1LeC37OXHOmk5OMsgckO+V1/nXcFipq6b9800BAMArcAjVZB0vVpRILSHfl67QyeN8D1J4LXPWkmha6GQougLVJDxmRrkV3NGzoGiHL+xrAgCAuhxFNfXYFa9BeGipJufpkXvltXzVtKBe8p1ENc2AagIAgPY5kmrqccom9hWJzaUrdL/+++7UyJUUrdgtOptmO7lKNaXv6Hl5iGoqyjwAAABgOIpqEpHVwfKXF85kmVNN3kHuzDEc2/p5AodRSTT4QifXqCbZ2tgxVFOhHSpnuQQAADAcRTW9MqzQrbLDihVVytl2VrVmd8k8EOFnubTl5/IVc9fx1mWSUAXVewsSZI7FyAAAFkE13UHSdVXnKs+eDXNP1bS9em8596im4dx0npptzdbJcnlXRZX7GEXg2/BKqB2Z91ukvx7f5wqFkKIQAEpANbVKarnvedlTNUlH0/XdoJre5d1NlbxGebzqvRoEFVW0eKBq6rmIch4BUjXZ8rWLRWkphwEABbSpmh6RgAEejJYdlqim0cUUv4adKdVkS4XFpcfOpvSX3TKUmD+V1aELTvQyI9s6dP5uVw5trDYn2vUOT1XvHT/mKohZEdIrordpo1Vc8kRbhmy5Dl1ONcn1O1k1diyTNiytdR9N7bRI63SD9+zWpYQIinxNt+ZHyfQ+qEMnMz9TdwYAClCcrSz3qyZ4NXZWTWt9TaMsSSR3NjIm9EjZz8mE0GHzcZOydLs4IFRNrldTOVO/jO/YiCyKsVitfrxQZ+XQxRRajVwxpb4mKU2cahKrZbZor1BZU63Z/oBsLd4sQVyT0YKer2k6xvN77V49BACOB6oJWmBP1bQ9rknWxPU9SPaT9DzZ7TMLfOGJSdXk73OqaTjIHiJPlD11YmDQRZ4w8LfYUq2JavXDkVJx3bVC57l+jDfJyie/xvxQEmy9aorOSKgm/xhCmwBgEVQTtMCequm6+Rk6o0Wcp0futatrwvck1UsWeWKzqmnqjlvIu0c1SVEUHv841YSvCQAWeT7VNDdPHf0p8pWnTLPxEaqD7qyaVuRrSqyFOSkTuZKiFbtFZ1NwYmDAa1STOHbyYMVxTYsrdBezMamariK2/C5f07R4ZxfP3nr5Ulk1ieZTxxDXBAAFHFg1ZR7Qbks16T5FvuaU0um6DXZWTSNFucG9+GzzXZqNYzi29fMEDqOSaPDwRLnNRoOXqSbZ2tgx43cKV9Zy0eBJpTS9v5jwb6OsLl1ZNPh7sQaXiwYf5Utl1TS1JKPB5TE8QwcABRxXNeUe0NZXTXeg/BT5etWk+AB7VR6imp4Y32GFF2UZgpoAoITjqKbZB7STz1z7P8zdm+M+RZ7sv+ienSuDS6mbjTovo5qSrqs6VxEGuktu8DGhZPToWnWMB0mmEVjbRIejCQCKOIpqWnhAW3xwbzOq6cBPkSf7n1JNV3xNr0hquQ8AAPQ4imqaf0A79/RQyNGfIk/2H9XkQ6JUAACoh9ZsZakV15R/QPse1XSkp8hRTQV2+MK+JgAAqMuRVFNP+gHt9DPXBSt0B3uKPL+WF65OopoAAAC0OYpqWnhAOxllm1NN3kGHeoo8HUrs+uQ/b45qWqAo8wAAAIDhKKrplTmW/tnGzqppRZZLAAAAA6rpDh7zFPlTsrNqOm2rqFJOO/nkB3bJPBDhZ7m05efCQipbeesySaiC6r1rEmQ+nP4b9v6Q3DZY3/Pqb36sgLOQjDR12oeTqD5znbJKfOj98GFueYBXA9XUKq/1FPmeqml79d5y2sknf62V5fKuiir3MYrAt+GVmMRl3u8xiZRZi/eUwI4sj9XI57dzn45NfsN3qKZMiZxFrNp1X51RTVfSgcLL06ZqeszDhPBQtOxwUTVJR9P13aCa3uXdTUfPJx9VVNHigaqp5yKKwgRI1TS+H4771J0aV029aBqeBPGfSblDNRm1PEmdIv08VLM5dx/Pwk0nVBOlZ+DFUZytLPiaYC07q6bRxRS/hp0p1XTcfPKRc+D2MVeHzoqQfpY3iztWcckTbTG75Tp0OdUk1+/GY6bjz2b7OHOfklqnG2b/W5cSIijyNd2aHyXT+6AO3VI68f3Gauz32TwfexZenlg1ia9Z6Ea31W6cagVazVaimoaRuY3Y8G0YhStVEwV64LVBNUELNO5rOnA++WFat1PrbTYP/E6dLwnGC3V2ir+Ycr2Rh6HU1ySliVNNYrXMFu0VKmus3jsckK3FmyWIazIawvM1TcfM+b12HaurFEtSNsWqSYQ+9d+90/GhlV0mveT1cMlN5MSS518S732LAng1UE3QAnuqpu1xTUfMJy/nOBHock1tuXRXe4rt8vR+OFKqiLtW6DzXj/EmWflkVNOoaYY6c+tVU3RGQjXNtLrzWPlSqf/6XLEoXzWJfePW7hJuTPb21h/b55lefH32vxnfZTceRGgTvDLPp5pKc4OX09jzUE/JnqrpuvkZuiPmk9dSTVN33OLUPapJiqLw+CdQTdMV1oxV+ECu/fa2qqbL9eSvo/WLhovxSN6wiC8BXxOA4cCqKfOoUVuqSf15qPL2D8XOqmlFvqaj55P3PQOLq07xI1fBjG9jy+/yNU2Ld3bx7K2fpyurJtF80brfrmMVxnpbGbS4QudkcmBlnYyWv0wBTvN/KoJvzH0krgnAcFzVlHvUSF813YH681A7t78bO6umkaLc4EfPJx89Q9edshHOydl/em+mXTvzTpHGi9Hg78UaXC4afJQvlVXT1JKMBnfPiIWemZ3HKn5Azgii+WjwIEeBZ6Syt+PdTembsponcgGOeRtuo8QzdACG46im2UeNkk8P+VOMe3Pg56HWtJ+8tdwWe3UxPHuqsYeopifGd1jhHFigIOAHJghqghfnKKpp4VEj8cG9zaim4z4Pta59uXoXO+BSNyXWdUoXlrR4GdWUdF3VuYr49nbJDT46JqJH16pjPEhLaQRm2D1QZx8zWO7G2qHrnWY4muC1OYpqmn/UKBcHG3Lw56E2tJ/42xy4y8Q4RGs9qKZjkVruAwAAPY6imnryjxrdo5qO9TxUeftJjZe42SdVTfvmNQcAgFdBa7ay1IwGTz9qlF5lKlihO9zzUCvaD867vMlWw3dPp5oAAADUOYpqWnjUKBkokFNN3kFHeh5qXft+bz3nlLhZVBMAAEAhR1FNr0zRyuDBeYhqKso8AAAAYEA13cFjnod6SnZWTSuyXAIAABhQTa3yWs9D7ayaTtsqqpRTSepubTadeSBV8bURZArMD/t30c/PaQvnzdX6Vbrah2HR/EOUuWEsJAcAD6dN1fSowHh4IFp2WLF6bzn3qCaRZ0unWf0sl3Eqa00+yYJx18vXKlcaskl9LHQHz9SC0SZxsynVdCW9JEAbKM5WFnxNsJY9VZN0NF3fDarpXd7ddPwqPEFFFQ1qqqaMZrgTX5wssZtqSt5sbgQoZQLQAKgmaIGdVdPoYopfw86UajpwFR7po3D7ZWXYuBRPeGC2w2+2fOzVtTf87zK14G55rk2HV2PXv+z7YM1OFEdzZ02l084fRIG7UTK9L89ZPq+a4uXD6fiz2X7uPp5d9b21NzvVyPNuYdhOZRyAx4NqghZo3Nd03Co8V1ku5LbV0wyBy8juFtsvXUbpiS51QfOiHy50arHNibRTZ9RCQ+uBQMqopqAa8CZfk3n1hUZct8RSn72AUFljBdzhgGwV4YWbFecFsmr3yi8AEPJ8qmnuOf1tz/A/6sn/l3h4buIYcU0HrMJzlVPtsNXXdu6Tkz9Jj1U4KLJPRmu5m4+aXW5zIilvvI12AWtGNQl9NR6gtkLn+a2MN0mIm1E1jUpoKPO2qJoyviYzqLIjhDYBPJwDq6ZM0OzBVJN66O8x2VM1XTc/Q3fMKjyBg0LsSruMhiPmu+zpotvh452KtrwM9UY1lf0T8nXCSDuqSYqi8Pj1qil5szOqCV8TwMM5rmrKBc0+SDWFix+FaIf+3vp6yHSYO6umFfmajl+FJ3ZQGIVj5U1gvX3rs132l/b65rru7PVS6EyXgr/sJ4BY4xpO/Hq433mB5ERRRjVlw6WSzPiapsU7M1yf3oKFtHWqKXmzOdVEXBNAAxxHNc0GzSZXAPwpRkxhfgztYmRv8iyHPb9ErtQO/TXbjuai2lk1jRTlBk+mMo0K04TZtYqjwVNpucw2jSo8V/kMnbuYF7/k3WL8jyJl19MpIqIpCAq34fNu81KbgklLvI9iv70t4rAxEHtGNU0SZnJSXU/z8sOPa+rbzUWDR+FHK1VT6mZzqoln6AAa4CiqaSFoVnxwb7OqKfpF718jvFb+LDG9FbFD6O+mfj2eh6imJ8Z3WFX3Ufi+qkvVbE73c+mux/mX4SCoCaAFjqKa5oNmcxEd6VbEOUlvQHitzFnD5nV/fXcI/RXMhEw1x8uopqTrqs5VPOF/j5tiqc8ipMkcX66ajAtIPK9Wmyg6SLix3p/0c0WJC22+2ZvSw9EE0AJHUU09+aDZe1TTcmRvTmuJhZoVvwErh/561ziIZLq+kGqqSmq5ry7JsK3WfU0AAJs5kmrqSQfNpuNgcyt0nv65LEf25lXT1V18lUapF/pLXBNFeQAAoCJas5WlWlxT8Cva86gkVhGKVJOLhc1G9i6oJtuZZdVUP/SXZ+he2dcEAAB1OYpqghkelYZTEVQTAAC0D6rp+GT9XwfiIaqpKPMAAACAAdV0WPYP/a3IzqppRZZLAAAAQ5uq6XFBXvAwtOywYkWVcir5/7Y2m8484ErrNodMJBkWHNn58qL8XFRnV/9qYZbL9vAzml79DPOrzam3zNPwWpVXYRwimezdpAO9dCanK0AdFGcrC74mWMueqml79d5y7lFNM3m2tjWrn+Wybm6BT17NuKHIyP0Ms6pCRRVtEjf7CNXUncpSaIbVc653qaabZZrcWaUdGLA6031FIok66UChKqgmaIE9VZN0NF3fDarpXd7dtHvUWJTp/V5cRRU1aqqmOprhk1L1Xt1epW+2YdUUVWq+3quajJ6fpE6Rwh9q0Jy7j2dRr4bSM7AXqCZogZ1V0+hiil/DzpRqsmXVCmsXFtehq1+aUP70dvtNug6XkMM7Jzgw2+E3W5336tob/neJMofNtenIltmN69DNlPQ9nz+IMnGjZHpfnvl7XjXFy4fT8WezfZzRT4tCLX2zo2rybyHH7csdV7hc9ZyTv2VURGYhzOpneWJ3KlwmM3LJk00p1SRMSox3wgL6nOfDpc2JBappGJ/bwA+jZ5QsZY5hL55PNZXmBtdp8XE8w5NzjsZ9TTJxV1xHMFG7MFX6MMkOpQldAZEwqVjgHLC7xfZLl1F6oktd0HxQdiiaUtNtTqSdOlFNXiuQMqopqKm7yddkXn3hE9ctsdRnLyBU1lSLtz9gUj8zoid9s+K8rIYcuCmfwIvY+fJpHObOyqFLr08u14Q3psjX5MSSlE2xahKhT84AUlF0l0kveT1cchM5seT5l8T7RNEcADUOrJoy4R9PpZrUQ1xa5RhxTXE+euNOCSsM+nnlZ76mHUoTuhlk2JpaW5k++FIt4SxInSi0lrv5qNnlNieS8sbbaBewZlST0FfjAWordJ7fyniThLgZVdOohIayc4uqKeNrMoP6PhcPL4KCkltskWKpiKb3w5FScZWoJimVPjsnY6SaPocOSGMA3Xxvb/0pKKw8yVL3GgfYHyhCm6Aex1VNufCPB6mmotzga9EOcWk3c/gxnqEzluA8PXKvy9XufE+ltiOUU0XVdA12pV1GiQku0WNv5c2PdZF7TVvLbbq2Y53QjmqSoig8fr1qSouiHVTTdB23kFegmoLyC9a+tqqmy/Xkr6P1i4aL8UieA08MNr4m2IvjqKbZ8I/kb1l/ihHLJX40yGKMSvIsx4o6dMHShZi8/OIuyXtUCHFpt0rdzqppRb6mxFqYkzLZ2oXFK3ThifqlCRO/u43CkfOdtN6+9dku+0t74XNV4nQ3Vy626Xrn1riGE78e7vf9rEByoiijmuaXukJmfE3T4p0Zrk9vwULaOtWUvNlC1VSwQncxG5Oq6SqeFFhWTWGst/1qF1fonJAPDKATwVfjat1pSe0E34z7SFwT7MVRVNNC+If44N5mVVM0N/nXCK+VP8sIm1IHTjjdiveJ61YIcdnU6z3YWTWNFOUGD35hi3KEVque49qFsYcqI1fDE+U2ndKE4hk6dzHPS+DdYvxTImUn0ykioikICrfh827zUpsCbxVGBq54W8RhYyD2jGqaJMzkpAq9HCF+XFPf7qdMNHgUfrRSNaVuNqmaMn3uTtlo8KRSmt4biWJVyhSVnXf1hKLJCaJYNcnvOgic879/0dvx7qb0TdlvJ3L12TA2nqGDvTiKapoP/8itTaRbEeck57XwWpmzhs0rlYdtyk4s04wrlVTFEBfBTMjUA3iIanpifIdV9Z/evq8qnmDboiB4pjmO2OdHQVATVOUoqqknH/5xj2pajlHJaS3hcij+Rzr5ld46u9LTdV2ixUohLt41Wvor/DKqKem6qnMVz116z6/vpT776XtWqibjAhLPq9UmCnoRbqz3VTMlbb/Z3QN19jHU5W6sHbHeaYajCWpyJNXUkw7/SEd05FboPP1zWY5Ryaumq7t46R+WUTadz66HUYP1QlyIa3puUst9dUmGbbXuawIA2MxRVNNC+Efyp1GRanJRHdkYlQXVZDtT+oiQkFipD7l7VAhxeaFn6ParnwcAAK+E1mxlITd4U7SZpDNA0Q4xIQAAqASq6dnJeseaAtUEAADtg2p6UvYPcbmLh6imL774wg7S7X3F2wMAgKegTdX0yAVLeBBadliimka9FGe5RDsBAMAMirOVBV8TrGVn1XSSBXyvxRVVyqm0Lrq12UzmAZlOsbQHH4Nn9GeTV9/B1r4tJpWcOb8LU20DAASgmqAF9lRNX3zxxVi9N37dtofupv1V00z+0W3NZrNc+spkSH+9lBAnUiblqmk4srSmiUrfSvB7RYJEAJgH1QQtsKdqSjqasu6m3aPpowo49+IqqsR7hDIZvUhVlMnAp1X1c/fqW9grinEAwCzPp5pyD9pPVZMSNSTnKU/ZV3BkcVYn75SVs/YRkwzurJqSkml8pVWTLasWl2kLs8mbijlldeiCE720Yzolm2f8J06ZeAtvc8om72saG3M5nEWT3WUUJ25dbxmNvskuTduXekXhVwCY5cCqKbOQkVZNYdGHchRVU74Tyosy2+/2UTTua5LpTuP6yonKy0Fi1fy3sUPJ5nwxjq3+HClhQtU0VVaV1W5HHulrMp0s6dXutUsA4EgcVzXlFjKSqukOGaGnmvKZudUXZbY4tR7KMeKa4io+xtMTVl72q/HMmMUOJZv1VdOMr8ns+sXbeVRWNuTpMapJuJtuPSnpFaFNADDDcVTT7EJGZm3CIEWT1TbDm7e4EpxryZRqEceHjcjabm/xRtkRIZqqL8ocztt0jGfojBZZrvicqmGYpXLJ5oeoJrvrvdm4v2oar/hhGC6nlJZ6ha8JAGY4impaWMgQH1J+G+l5kSpIVoBzs01US3dGNflnxkdeOrG4Ijtbd1HmcM6mdvM1JYbdSZlsxefiFbrwRP2SzUVxTf2Hr8/Kqsk/fvTzbFNNm/o2ntSvx42XFg/65XtFXBMAzHIU1TS/kJH7lW3IqaZIBU0h48G5s8e7CVE2Enl/nHzaY1HmcM6mnVXTSFFucM8VGBZazlZ8Lo4GD0+U23RKNpc+Q+e8MPdEg5tdItDaxhGZmKg+Wv56WhAnW/sm1uPsSR/Ok2pa6NWVZ+gAYIGjqKae/EJGe6ppKa6q8qIMvqYXx3dYNec/uXTXNq2ToCYAmOdIqqknvZCRW5sw5OOawo0zK3RCDPW9mF+h8xtJx4FXXJQ5mqvpdVRT0nVV5yperN71dikT0FP+/L+fCXxxiayYKHaoib7dtByOJgCY5yiqaWEhY2k2EiJiKbpbtORHg4s9XRdvzESDT3Ewsj87LMoczdX0OqqpKinLAgAAPY6imu7lkb4XEdJUE+GwOpqnqYJq2qvmMAAAvBZas5WlRdWUjDZ6KtyijFs1PA6KdvjCviYAAKjL66imJ+VJFmVQTQAA0D5tqqbHOt/gIWjZoXLmAQAAAIPibGXB1wTbULFD5SyXAAAABlQTtIOKHVasqFLOtrOqNTtkHkht/lD4mL/rwccgQ4AsVqLJ1r4lq/cejSg0Mfnkbyn9t38aXqvyKpgSfi6xqPmuL10ubyrA84NqgnZQscOK1XvLuUc1iVI/Os1ms1z6ymRInL29osoiw5HbKqps7FsJ63p1F92pLIVm/whs13mPwd6hmm7fvsmOVdqBgbjSsfyuSQcKLwuqCdpBxQ4XTSjpaMq6myp5jfKkCineRWFFlY3Ve4vZv3pvhV7dRaFoGfOG+NlD7lNNRjNPUqcoV/xQxe/cfTyLIfWKIJMRFF4UVBO0g4odlqimpGQaX2nVdPvpLx9UlFlMp0lMPMw4rFu5PbN16IITvWStNuWpv1uUcj4HFQ2TJRBLqvd6C2/31KFzmbpFk91FFIArXHbT6Jvs0rR9S69uAziucLkKNSd/y6iIzEKY1ajyxO5UuExm5FKyWpNUTeLLFn13W0URqenS5sQC1TQM3e1rHTxOpmafVE3tlekB2AdUE7SDih3W8DXJojWe8jEyJvRI2c+Jc+Lm4yb98jp+InqhmvxyPKIt2UhUvsSy1Z8jJUyomqYZdhAktkKu3fIgX5Pp5IZe3ZRP4KnrfPk0fjWdlUOXXp9crglvTJGvyYml+TpQIvTJlYGKC0JN/blt83q45CZyYsnzL3mrsXm7AnhmUE3QDip2WDGuKa59aDw99pP0PPmFAtOEJ1Yo5ayvmmZ8TWZXHBXzGNUk3E3Gc7KmVyIoKLnFliGWimh6PxwpFVeJapJSya986asmP2nvVEApzuQb9fbWn4LSycPynAz7H0fVV02ENsFrgmqCdlCxw4rP0Bkt4jw9cq+rCOh8T15d5hzyxGdRTXaXnXP3V03jFT8MwxU4TEp7dY9qmm7DLeQVqKagnKb9Dreqpsv15K+j9YuGi/FI3lc5KqjI74SvCV4VVBO0g4odKudrSqyFOSkTuZKiFbtFZ1Nwoi94VqkmcezkwSqPa7qa2VFTNfnHj36ebappU9/cdD9eWjzot6JXiyt08eNpgTqy0fjLqimM9bYyaHGFzonlwNY6EXw1rtadltROMFzuI3FNAKgmaAkVO1TODR78+rc//Ufn0Nnz8wQOo5Jo8FRFHLPNRoOXqSbZ2tgxM5UWPUPnvDD3RIObXSLQ2sYRmZioPlo+9IGo9U2sx9mTPpyneX9br7pTNho8qZSm90aiWJUyRWXnXT3xA3JGEM1Hgwc5CjxTlb0d725K35Qdf+FcMk2+H79ZnqEDQDVBS6jYISZ0DR1WzbkFCkJrHkCbvWoTgprgZUE1QTuo2GHbJpR0XdW5ivBADLnBbUBP+fP/fibwxSWyYqKQmCb6tnugzj7GsNyNtSPZO81wNMGrgmqCdlCxwxc2odRyHwAA6IFqgnZQscPRhH4IAABQAa3ZyoJqgm2o2CEmBAAAlUA1QTuo2CEmBAAAlUA1QTuo2GG5CX355Zc2Duj2vuadAQDAM4BqgnZQscMSExr1UpzlEu0EAAAzoJqgHVTscG1Flfen4ooq5Ww7q1qzQ+YB5b4okCo2q4r/TH2fx9KrCfI87DOSycrIhed3uVSrAAcD1QTtoGKHiyb05ZdfjtV7v3znVNP4/rY9dDftr5qGc9O5e7Y1WyXLZZzHWp37L5HPZF5w8YVM5GoccyTLLivHkMSY8BygmqAdVOxw0YSko+n6blBN7/Lupkpeozxe9V4N8hVV7uF55/qBlbWG7+FpRzIcQ4qwwFOAaoJ2ULHDEtU0upji17AzpZq67iyzR4rScmY6Ehkmh5WgU1kduuBEL1u0rUPn73Z16MZqc6Jd7/B09V53iFcgWG4ZJ9m3Lte2182EvBtOv0yHu1vOXehz8orRJcKO96cMX8uMwFyqmueyYYu1vO4iytXN5Cl/7ZGUAzhtXxrD9ir7AGwA1QTtoGKHNXxN4/QTlNK1e031XrHHfk6cEzcfNxlMxOaAUDW5Xk0lXv0yvmMjolBIHP7SHyiuJc52dYqHd7c33qQ6474Q/fDbTF0of0XvEuL9pbNiYMmB4sU1fbzEqmmqUTtM8aJe7bKv6SVHMulrMkNaMoa716wB0AfVBO2gYocV45pkTVzfg2Q/Sc+T3T4zJYUnJlWTv8+ppuEge4g8UfbUTVX9Vt+f4G8x83lqkh1a9HXhzFzvdk1tLlwoOa2LjQknWsmq05Kvyez6xdt5VFY25GlBNTGSV8/ddBu3kjEktAmeAFQTtIOKHVZ8hs5oEefpkXvtSojwPUn1kkWe2KxqugbNFs715gIKc30wipqqye56bzZWVE328COP5Dg+HwZTdEppaQzxNcETgGqCdlCxQ+V8TYm1MCdlIldStGK36GwKTvQFzyrVJI6dHApRXNPiutLsgo45yoi7uXUloTPD5aLUhZbm+sQqkrZq8o8fPSd3rNA990h+/vo8rceNAyUeS8yPIXFN8BSgmqAdVOxQOTe4dQS5FQ23cQzHtn6ewGHkeajcvlzzwRqdiAYvU02ytbFjxu8kn6FzF4ximJPzu3kfnTdtyMQw2/B5t3/uQml14V1CLi1pr9B9cqHLNjLHxET1sf3XU2K6f72RFOtx1q304TyppoUx7D/xDB08A6gmaAcVO8SErqHDauff+CWz8JG4dFfFRBDrrvxEI0lQEzwHqCZoBxU7bNuEkq6rOlcR823N3ODxHT1qrvczgff5BHTYKxrnmUfypjxxNMFzgGqCdlCxwxc2odRy32O68TwekofCSAI0B6oJ2kHFDkcT+iEAAEAFtGYrC6oJtqFih5gQAABUAtUE7aBih5gQAABUAtUE7aBih8qZBwAAAAyoJmgHFTtUznIJAABgQDVBO6jYYcWKKuVsO6taszUzD9xBnGBbGf8J+uFR/vdeIutnYZ+RTFbvPRoitbrdECcILaX/l3UaXqv+fZkSfi5xurHMSydz0kKLoJqgHVTssGL13nLuUU0XV7Vep9kqWS53eCj+/kvkc4MXXPz9XEUVRY45kmWX3WsM+5xaRTfYl7HpurMcjTtU0+1flsnlVdqBgbjSsbRM0oE2DqoJ2kHFDhdNSDqaru8G1fQu726q5DXK41Xv1cCvqKLF8871AwvVezV52pHccQxLRctY+89UABy5TzWZ3yOT1Cn6hTJU8Tt3H89iSL0iyE16hsGAaoJ2ULHDEtU0upji17AzpZpsMbDxz6qs5OVX+nJJncvq0AUneumhbR06f7erQzdWmxPteocnqvd6h0TV06xUG6aPty7XttfNTPW0t8t0uLvl3IU+J68YXSLsuK3RNiMwl+rQudzXYi2vu4iSaqaGWoLXHkk5gNP2DWPYG+e4wuWq/5z8LaMiMgthVv/LE7tT4TKZkUuebEqppsQIJwbuOuY8Hy5tTixQTcPQ3Yxw8DiZmn1SNVHmuG1QTdAOKnZYw9d0Mn9rT4HyMTIm9EjZz4lz4ubjJoOJ2BwQqibXq6kKq1/Gd2xEFASJw19ElIfbKdYI7f7bm3Q0yOw9+W2mLpS/YqYQ7e2tFQNLrgEvrunjJVZN05w1TPG25qzdMuMnecmRTPqazJCuH8Ne+QRe0M6XT2OnOiuHLr0+uVwT3pgiX5MTS1I2xaopOcKp0LHLpJe8Hi65iZxY8vxL3trxXkV8YAuoJmgHFTusGNcka+L6HiT7SXqe7PaZKSk8Mama/H1ONQ0H2UPkibKn7i9wv9X/2e9vMfN5apIdWkyta8R4u6Y2Fy6UnNbTv/3NTZaspyz5msyuOM5kYcZnJK+eu8l4TlaNoQsKSm6xRZOlIpreD0dKxVWimqRUEqMYjVJyhBPfeNjbW38KCj0Py3PSxT2Oqq+aCG1qGVQTtIOKHVZ8hs5oEefpkXvtSojwPUn1kkWe2KxqugbNFs715gIKc30wipqqye6ys1hF1WQPP/JIjuPzYTDFwGFSPIZ3qKbpVtxCXoFqEiuVQjJuV02X68lfR+sXDRfjkTzDGxVU5HfC19Q2qCZoBxU7VM7XlFgLc1ImciVFK3aLzqbgRF/wrFJN4tjJoRDFNS2uK80u6JijjLibW1cSOjNcLkpdaGmuT6wiaasm//jRc3LHCt1zj6Sb7seBEo8llo/h8grdxWxMqqareNJhWTUlhj8nOJMjnFih60Tw1bhad1pSO8FwuY/ENR0HVBO0g4odKucGD36huolrEFNnz88TOIw8D5Xbl2s+WKMT0eBlqkm2NnbM/LmXc5O7YBTDnJzfzfvovGlDJobZhs+7/XMXSqsL7xJyaUl7he6TC122kTkmJqqP7Q+9Ci86kmI9zrqVPpyneX/TGLpA7jgaPKmUpvdGoliVMkVl51098U0aQTS/jilPir9x19vx7qb0TVnNI5xLpsn3ox3yDN1xQDVBO6jYISZ0DR1WO/90LZmFj0RBsEq1Kz/LSD5uDI8HQU2Ng2qCdlCxw7ZNKOm6qnMVMd/WzA0e39Gj5no/E3ifT0CHvYJMnnkkdw/U2ecf2nI31o5k7zTD0dQ2qCZoBxU7fGETSi33PaYbT+IheTSMJEBzoJqgHVTscDShHwIAAFRAa7ayoJpgGyp2iAkBAEAlUE3QDip2iAkBAEAlUE3QDip2qJx5AAAAwIBqgnZQsUPlLJcAAAAGVBO0g4odVqyoUs62s6o1WzPzQOJicZnTB+E/9z08yv/eS2TdNq2NZLJ6b+H5XZgGHOCgoJqgHVTssGL13nLuUU0XV7Vep9kqWS6LEkrf8eC8ykP3+dzgBdd/P1sNRI9jjmTZleUYkrwRngNUE7SDih0umpB0NF3fDarpXd7dVMlrlEcW4VXBr6iixfPO9QMLlWc1edqRDMeQQiHwFKCaoB1U7LBENY0upvg17EypJlsMbJx/ZCUvv9KXS+pcVocuONHLaGzr0Pm7XR26sdqcaNc7PFG91zskqp5mpdowz751uba9bmaqp3ml+cLyZ67g7DCuUzEwsXPmXK+T9vQMS3XoXMZmsZbXXURJtWFdL81rj6QcwGn70hhSlBaeAlQTtIOKHdbwNY0TXlBK1+41E5vYYz8nzombj5sMJmJzQKiaXK/sDCnL+I6NiGIWcaBMUN5dnO3qFJvK8N6kOuPBWKgke3trq9hGTeTOTXdyyYfixTV9vMSqaaqjOkzxoqbqsq/pJUcy6WsyQ1oyhrvXVQHQB9UE7aBihxXjmmRNXN+DZD9Jz5PdPjMlhScmVZO/z6mm4SB7iDxR9tRNVabKu395t8XM56k5emjR14Vr5vqEF8xvwTlFkufOdzLHkq/J7PrF23lUVjbkaUE1MZJXz910G7eSMSS0CZ4AVBO0g4odVnyGzmgR5+mRe+1sJXxPUr1kkSc2q5quQbMb5vpgGJJ7b+8eoJrsrvdmY0XVZA8/8kiO4/NhMEWnlJbGEF8TPAGoJmgHFTtUzteUWAtzUiZyJUUrdovOpuBEX/CsUk3i2MkfEcU1La4ruTiZ5Fx/dZPxhnWl+NJi5dEFjC2uK8WdzI7qCtXkHz96Tu5YoXvukfz89XlajxsHSjyWmB9D4prgKUA1QTuo2KFybnC33nFyQsRsHMOxz17ArnMYeR4qsWSSaT5YoxPR4GWqSbY2dsw4HeQzdO6CUQxzcn4376Pzpg3ZGOboGLm0FK4rmX19VPL8uVkRkvzyClXTJxe6bCNzTExUH9t/PSWm+9cbSbEeZ91KH86TaloYw/4Tz9DBM4BqgnZQsUNM6Bo6rPiNfxeX7qqYCOJlIagJngNUE7SDih22bUJJ11Wdqwj/Qc3c4PvcUVFPvEzgfT4BHfaKxnnmkbwpTxxN8BygmqAdVOzwhU0otdwHAAB6oJqgHVTscDShHwIAAFRAa7ayoJpgGyp2iAkBAEAlUE3QDip2iAkBAEAlUE3QDip2qJx5AAAAwIBqgnZQsUPlLJcAAAAGVBO0g4odVqyoUs62s6o1m8k8cOlSD7iHddIWWz4Nr9Rz5fN7UwTPvJvM0rJsR+oyH2wqxVy7nUz1CQCwEVQTtIOKHVas3lvOPaoprWXuaDab5bJPCn0+B+2JEjKZU0QeqOvZ5DLqTlEOw/m9aUbVNCYIEu+3qabhLFvRgyyLAHA/qCZoBxU7XDQh6Wi6vhtU07u8u6mS1yiPV71XA7+iSnApUXjDbuu6gspoY9NOj02aRCq0+b1ppGoaC53Y8hxzd5hUTWH1WCp6AMDdoJqgHVTssEQ1jS6m+DXsTKmmm7aQ2SNlITC/2NekeIrr0AUneumhbR06f7erQzdWmxPteocnqvfGlx5r6FnBMVaUHbe78q7m2PM5aHrM+TyswZkeeLpofm+yS041SS0kfE1jTVhvCW8qKnf+MG4cqsuJsmimESrLAMDdoJqgHVTssIavaZQlQSldu9dU7xV77OfEOXHzcZNBQVhR0d5TTa5XUxFXv4zv2Ei+IMjkOHKyaRRNss6sU0fjW9/XdJkUUWcjl6Q/Z35vpksf46Cmq1BNQj45V5IoxTtqqvHE0Ne0X20UAHhaUE3QDip2WDGuSdbE9T1I9pP0PNntMwt84YlJ1eTvc6ppOMgeIk+UPV1UTUYsxdLIyqZL527s7BxHouUx3NoVup3fm8X6mj5/fRbLc0YsSSHkBFLGKxWrJkKbAOBOUE3QDip2WPEZOqNFnKdH7rWra8L3JNVLFnniQ1TTKJsub+dIGo166rPdI1XT5XryF7xumsRzNM3szY9FEAE+epC0VBO+JgC4E1QTtIOKHSrna0qshTkpE7mSohW7RWdTcKIveFapJnHs5MEqi2sKru9v7wWTDBj3VuhuIkQEPk0hTHbD/N7cOIho8NHdNMgeo4VGpTSIIrF3NgLKqSbimgDgblBN0A4qdqicG9yLzz7ZBavJOXT2/DyBw6gkGjw8UW6z0eBlqkm2NnbM+J3mnqEzTd+asRrHk0Z9m8JZNl3CxlefTEamQZBMCZpGcTK/NzPc8hm6yd10+xh5kPqP5wVfk4uSmnbxDB0A3AuqCdpBxQ4xoWvosLrLxyIfsWuK0JW0BEFNAHA/qCZoBxU7bNuEkq6rOleReZX63OCbLi1Cmmr0088EblxM5eeOUU8lR3c4mgBAAVQTtIOKHb6wCaWW+7ZTGpK1L0JoFUsmAAAtUE3QDip2OJrQDwEAACqgNVtZUE2wDRU7xIQAAKASqCZoBxU7xIQAAKASqCZoBxU7VM48AAAAYEA1QTuo2KFylksAAAADqgnaQcUO11ZUsa/liirlbDurWrND5oGpGBwAAGwG1QTtoGKH5dV7Tycnmcb3C9V7y7lHNQ3nprMpbWtWZLkk0yMAwD2gmqAdVOxw0YSko2kUS6eZAr6VvEZ5vOq9GngVVagqAgBwB6gmaAcVOyxRTXJhLvVRMKqmrjvL7JGitJxRVCLD5E3xFNehC0708nfbOnT+bleHbqw2J9r1Dk9W742rq3hF5wAAYA5UE7SDih3W8DWNuiKRLNvImNAjZT8vJdiOXVmer2mSQeaAUDW5XvXHi7ZkI93pKh1XwUdUEwBAOagmaAcVO6wY1yRr4voeJPtJep7s9hlVEp6YVE3+PqeahoPsIfJE2dNAJhWFNl1uI9K/hgtczyzqAQAMoJqgHVTssOIzdEaLOE+P3GtX14TvSaqXLPLE+qop9DWluCmrSS8N2qlSjWEAgMOBaoJ2ULFD5XxNibUwJ2UiV1K0YldaAtfJL09orVFN4tjJg0VcEwCALqgmaAcVO1TODe7FZxshYjaO4djWzxM4jEqiwcMT5TYbDV6mmmRrY8eM32n2GTpUEwBAMagmaAcVO8SErqHDinxNAAA6oJqgHVTssG0TSrqu6lxFeJBsbnCSNQEA3AOqCdpBxQ5f2IRSy30AAKAHqgnaQcUORxP6IQAAQAW0ZisLqgm2oWKHmBAAAFRFZbayoJpgGyp2iAkBAEBVVGYrC6oJtqFih5gQAABURWW2sqCaYBsqdogJAQBAVVRmKwuqCbahYoeYEAAAVEVltrKgmmAbKnaICQEAQFVUZisLqgm2oWKHmBAAAFRFZbayoJpgGyp2iAkBAEBVVGYrC6oJtqFih5gQAABURWW2sqCaYBsqdogJAQBAVVRmKwuqCbahYoeYEAAAVEVltrKgmmAbKnaICQEAQFVUZisLqgm2oWKHmBAAAFRFZbayoJpgGyp2iAkBAEBVVGYrC6oJtqFih5gQAABURWW2sqCaYBsqdogJAQBAVVRmKwuqCbahYoeYEAAAVEVltrKgmmAbKnaICQEAQFVUZisLqgm2oWKHmBAAAFRFZbayoJpgGyp2iAkBAEBVVGYrC6oJtqFih5gQAABURWW2sqCaYBsqdogJAQBAVVRmKwuqCbahYoeYEAAAVEVltrKgmmAbKnaICQEAQFVUZisLqgm2oWKHmBAAAFRFZbayoJpgGyp2iAkBAEBVVGYrC6oJtqFih5gQAABURWW2sqCaYBsqdogJAQBAVVRmKwuqCbahYoeYEAAAVEVltrKgmmAbKnaICQEAQFVUZisLqgm2oWKHmBAAAFRFZbayoJpgGyp2iAkBAEBVVGYrC6oJtqFih5gQAABURWW2sqCaYBsqdogJAQBAVVRmKwuqCbahYoeYEAAAVEVltrKgmmAbKnaICQEAQFVUZisLqgm2oWKHmBAAAFRFZbayoJpgGyp2iAkBAEBVVGYrC6oJtqFih5gQAABURWW2sqCaYBsqdogJAQBAVVRmKwuqCbahYoeYEAAAVEVltrKgmmAbKnaICQEAQFVUZisLqgm2oWKHmBAAAFRFZbayoJpgGyp2iAkBAEBVVGYrC6oJtqFih5gQAABURWW2sqCaYBsqdogJAQBAVVRmKwuqCbahYoeYEAAAVEVltrKgmmAbKnaICQEAQFVUZisLqgm2oWKHmBAAAFRFZbayoJpgGyp2iAkBAEBVVGYrC6oJtqFih5gQAABURWW2sqCaYBsqdogJAQBAVVRmKwuqCbahYoeYEAAAVEVltrKgmmAbKnaICQEAQFVUZisLqgm2oWKHmBAAAFRFZbayoJpgGyp2iAkBAEBVVGYrC6oJtqFih5gQAABURWW2sqCaYBsqdogJAQBAVVRmKwuqCbahYoeYEAAAVEVltrKgmmAbKnaICQEAQFVUZisLqgm2oWKHmBAAAFRFZbayoJpgGyp2iAkBAEBVVGYrC6oJtqFih5gQAABURWW2sqCaYBsqdogJAQBAVVRmKwuqCbahYoeYEAAAVEVltrKgmmAbKnaICQEAQFVUZisLqgm2oWKHmBAAAFRFZbayoJpgGyp2iAkBAEBVVGYrC6oJtqFih5gQAABURWW2sqCaYBsqdogJAQBAVVRmKwuqCbahYoeYEAAAVEVltrKgmmAbKnaICQEAQFVUZisLqgm2oWKHmBAAAFRFZbayoJpgGyp2iAkBAEBVVGYrC6oJtqFih5gQAABURWW2sqCaYBsqdogJAQBAVVRmKwuqCbahYoeYEAAAVEVltrKgmmAbKnaICQEAQFVUZisLqgm2IS3hq6++Cuwq3nJFNQEAwO6sFE2oJqhCoJGkTAo+opoAAOBRoJqgBWLVNCol+R7VBAAAjwXVBC0QGNJXPoV2iAkBAEBVUE3QArEtzUgmVBMAADwEVBO0QNKccpIpZ4eYEAAAVKVcL83MVhZUE2xDxQ4xIQAAqIrKbGVBNcE2VOwQEwIAgKqozFYWVBNsQ8UOMSEAAKiKymxlQTXBNlTsEBMCAICqqMxWFlQTbEPFDjEhAACoispsZUE1wW6gmgAAYGeaUk28eK16oZoAAGBP2lFNAHeCagIAgKqsnZiuqCZoFVQTAABUZe3EdEU1QaugmgAAoCprJ6YrqglaBdUEAABVWTsxXVFN0CqoJgAAqMraiemKaoJWQTUBAEBV1k5MVzIP8GrmhWoCAIA9aUo1PXow4EigmgAAYGdQTdACKnaICQEAQFVUZisLqgm2oWKHmBAAAFRFZbayoJpgGyp2iAkBAEBVVGYrC6oJtqFih5gQAABURWW2sqCaYBsqdogJAQBAVVRmKwuqCbahYoeYEAAAVEVltrKgmmAbSXP66quvVtkhJgQAAFUp10szs5UF1QTbiG3pKwOqCQAAGgHVBC2Qk0w54XRFNQEAwO6gmqAFkpLpr/MepyuqCQAAdgfVBC0Qq6bcR1QTAAA8ClQTtECgmgK7QjUBAEALrBRNqCaogoodYkIAAFAVldnKgmqCbajYISYEAABVUZmtLKgm2IaKHWJCAABQFZXZyoJqgm2o2CEmBAAAVVGZrSyoJtiGih1iQgAAUBWV2cqCaoJtqNghJgQAAFVRma0sqCbYhoodYkIAAFAVldnKgmqCbajYISYEAABVUZmtLKgm2IaKHWJCAABQFZXZyoJqgm2o2CEmBAAAVVGZrSyoJtiGih1iQgAAUBWV2cqCaoJtqNghJgQAAFVRma0sqCbYhoodYkIAAFAVldnKgmqCbajYISYEAABVUZmtLKgm2IaKHWJCAABQFZXZyoJqgm2o2CEmBAAAVVGZrSyoJtiGih1iQgAAUBWV2cqCaoJtqNghJgQAAFVRma0sqCbYhoodYkIAAFAVldnKgmqCbajYISYEAABVUZmtLKgm2IaKHWJCAABQFZXZyoJqgm2o2CEmBAAAVVGZrSyoJtiGih1iQgAAUBWV2cqCaoJtqNghJgQAAFVRma0sqCbYhoodYkIAAFAVldnKgmqCbajYISYEAABVUZmtLKgm2IaKHWJCAABQFZXZyoJqgm2o2CEmBAAAVVGZrSyoJtiGih1iQgAAUBWV2cqCaoJtqNghJgQAAFVRma0sqCbYhoodYkIAAFAVldnKgmqCbajYISYEAABVUZmtLKgm2IaKHWJCAABQFZXZyoJqgm2o2CEmBAAAVVGZrSyoJtiGih1iQgAAUBWV2cqCaoJtqNghJgQAAFVRma0sqCbYhoodYkIAAFAVldnKgmqCbajYISYEAABVUZmtLKgm2IaKHWJCAABQFZXZyoJqgm2o2CEmBAAAVVGZrSyoJtiGih1iQgAAUBWV2cqCaoJtqNghJgQAAFVRma0sqCbYhoodYkIAAFAVldnKgmqCbajYISYEAABVUZmtLKgm2IaKHWJCAABQFZXZyoJqgm2o2CEmBAAAVVGZrSyoJtiGih1iQgAAUBWV2cqCaoJtqNghJgQAAFVRma0sqCbYhoodYkIAAFAVldnKgmqCbajYISYEAABVUZmtLKgm2IaKHWJCAABQFZXZyoJqgm2o2CEmBAAAVVGZrSyoJtiGih1iQgAAUBWV2cqCaoJtqNghJgQAAFVRma0sqCbYhoodYkIAAFAVldnKgmqCbajYISYEAABVUZmtLKgm2IaKHWJCAABQFZXZyoJqgm2o2CEmBAAAVVGZrSyoJtiGih1iQgAAUBWV2cqCaoJtqNghJgQAAFVRma0sqCbYhoodYkIAAFAVldnKgmqCbajYISYEAABVUZmtLKgm2IaKHWJCAABQFZXZyoJqgm2o2CEmBAAAVVGZrSyoJtiGih1iQgAAUBWV2cqCaoJtqNghJgQAAFVRma0sqCbYhoodYkIAAFAVldnKgmqCbajYISYEAABVUZmtLKgm2IaKHWJCAABQFZXZyoJqgm2o2CEmBAAAVVGZrSyoJtiGih1iQgAAUBWV2cqCaoJtqNghJgQAAFVRma0sqCbYhoodYkIAAFAVldnKgmqCbajYISYEAABVUZmtLKgm2IaKHWJCAABQFZXZyoJqgm2o2CEmBAAAVVGZrSyoJtiGih1iQgAAUBWV2cqCaoJtqNghJgQAAFVRma0sqCbYhoodYkIAAFAVldnKgmqCbajYISYEAABVUZmtLKgm2IaKHWJCAABQFZXZyoJqgm2o2CEmBAAAVVGZrSyoJtiGih1iQgAAUBWV2cqCaoJtSEv46quvAruKt1xRTQAAsDsqsxWqCe4ksDppeMFHVBMAADwKldkK1QR3EtvhaHvyPaoJAAAei8pshWqCOwkM6Suf2NKuqCYAANgdldkK1QR3EtvSjBGimgAA4CGozFaoJriTpDnljBDVBAAAD0FltrKgmmAbOYtaZYeYEAAAVEVltrKgmmAbKnaICQEAQFVUZisLqgm2oWKHmBAAAFRFZbayoJpgGyp2iAkBAEBVVGYrC6oJtqFih5gQAABURWW2sqCaYDdQTQAA0D71VBMvXqtesWrixYsXL168WnvVUE0AAAAArwOqCQAAAKAEVBMAAABACagmAAAAgBLWqiYAAACAl6VcNQEAAACABNUEAAAAUAKqCQAAAKAEVBMAAABACagmAAAAgBJQTQAAAAAl/DkAAAAAlPH/AyyWoAI=) -&] -[s3; &] -[s3; Graphical symbols used by Assist`+`+&] -[s5; There is quite regular system in graphical symbols used by Assist`+`+. -Circles indicate code, boxes data, triangles types. Cyan color -is used for global data/code, yellow color for instance data/code, -gray color for class data/code.&] -[ {{594:9406<417;>992; [s0; -@@image:100&100 -(AxAAEAAAAPD/AAAAAHic+/9/kAIGvAC7eiCJFY2qp496UuJrkAAAoktRyw==) -] -:: [s0; Global variable.] -:: [s0; -@@image:100&100 -(AxAAEAAAAPD/AAAAAHic+/9/kAIGvACreiCBFY2qp496kuJrkAAAIdpRyw==) -] -:: [s0; Instance variable.] -:: [s0; -@@image:100&100 -(AxAAEAAAAPD/AAAAAHic+/9/kAIGvACr+gM4wKh6+qgnKb4GCQAAq8JiSw==) -] -:: [s0; Class variable.] -:: [s0; -@@image:100&100 -(AxAAEAAAAPD/AAAAAHic+/+f3oABBohVCWRAEF5dKCqREQ4tJKnHqRiHFlqrp7V/EVqIDn90XUSoHAwAAKiybLA=) -] -:: [s0; Global function.] -:: [s0; -@@image:100&100 -(AxAAEAAAAPD/AAAAAHic+/+f3oABBohUCaQhCL8uZJXICJcWktTjUoxLC63V09q/cC3Ehz+aLmJUDgYAACJHbLA=) -] -:: [s0; Instance method.] -:: [s0; -@@image:100&100 -(AxAAEAAAAPD/AAAAAHic+/+f3oABBohUCaQhCL8uZJUNqLrwqG/AILGqRzYcyAGpxGsF3HBMhEc98eaT6n4ywuc/ieGPposYlYMBAAAU809W) -] -:: [s0; Constructor.] -:: [s0; -@@image:100&100 -(AxAAEAAAAPD/AAAAAHic+/+f3oABBohUCaQhCL8uZJXICJcWiHq4FcgMPIajAVxWYDobTYRC80l1Pxnh85/E8EfTRYzKwQAACLNC2g==) -] -:: [s0; Destructor.] -:: [s0; -@@image:100&100 -(AxAAEAAAAPD/AAAAAHic+/+f3oABBohUeQAG8OtCVokMcGkhST0uxbi00Fo9rf0L10J8+KPpIkblYAAAFt98ag==) -] -:: [s0; Class method.] -:: [s0; -@@image:100&100 -(AxAAEAAAAPD/AAAAAHic+/+f3oABBohUCaQhCL8uZJVwdODAAVxaMNWDFEPFiVYMcxl+9SiKCalHV4zXSUQqhqjHohi3+v9IIY4cAbgUo+siQuVgAADJjm5+) -] -:: [s0; Friend function.] -:: [s0; -@@image:100&100 -(AxAAEAAAAPD/AAAAAHic+/+fCoCBgYFUxURqQVZGUAumAjxacElhFcdvNZosMV4jSQtJTiLJyyQFKUlRRkaSGBAAAGFmtWc=) -] -:: [s0; Enumerated constant.] -:: [s0; -@@image:100&100 -(AxAAEAAAAPD/AAAAAHic+/9/AAADAwOJihmI10KSeohiCCJGC0nqkRUTo4Uk9ZiK8WshST0uxbi0MBAC+ANqAAEAoCJ6og==) -] -:: [s0; struct, class or union.] -:: [s0; -@@image:100&100 -(AxAAEAAAAPD/AAAAAHic+/+fHoABDEhST5IuZGXE6MJUgF8XLilcuvA7AKvtFJpPvPuJDx+Swp+k+B08AADoK6N5) -] -:: [s0; typedef.] -:: [s0; -@@image:100&100 -(AxAAEAAAAPD/AAAAAHic+/8fChiQACYXEwDFD4ABXD0yF00lBMAVYOVimowHUKieJPeM+he/f9FsYSAu/QwSAAAhk/DA) -] -:: [s0; Macro.] -:: [s0; -@@image:100&100 -(AxAAEAAAAPD/AAAAAHictZJBCgAgCAR7ej/fDqKipmjQ4slmUCrAZ+1FFU4SElylpaSErRQmSppiWUXg+9ygjPgajspvfrr/A4/h/Rul976qtP+PtxpkJwecjxAf) -] -:: [s0; Green border indicates template.]}}&] -[s0;3%- &] -[s3; Definition/Declaration conversion&] -[s5; [* Copy as definition/declaration] operation (default [*@(0.0.255) Alt`+C]) -is capable of converting between method declaration and definition. -To use it, select desired methods:&] -[s5; &] -[s0;= -@@image:1983&925 -(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) -&] -[s5; &] -[s5; and invoke operation (default [*@(0.0.255) Alt`+C]). Assist performs -conversion and stores the result to the clipboard. Move to file/position -where you want your method definitions and paste:&] -[s5; &] -[s0;= -@@image:2100&1470 -(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) -&] -[s5; &] -[s5; In similar way you can perform inverse conversion (from .cpp -definition to header declaration).&] -[s5; In addition, it is possible to use this function to `"extract`" -functions from THISBACKs:&] -[s5; &] -[s0;= -@@image:1525&306 -(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) -&] -[s5; &] -[s5; gets converted to&] -[s5; &] -[s0;= -@@image:671&159 -(A9cAMwAAAAAAAAAAAHic7ZtLcpwwEIZZ5kiJDqTzcJIsdYRk4xuw8txhytkRJPTo1gOw8dBQ/F+pykYSGsb6poWY9tvj39u+0jlGAL7KTgMhIdgPJATiQEIgDiQE4kBCIA4kBOJAQiDOfgl//vg1lb8ff1BQvlY+diP9MQKXBxICcSAhEAcSAnFWHftd4xIS6m5UfaPNjNOGfipmaQCju0BzIDF6pfohHAz2SPJq9rFJwsfDl/d3Wy4i4QpmVUKHm1+jyYwfQq/00rVNnw/eXlRciU0Szu7FcqSEw6g6H7XsHzlEMH9oJyvUqJEEhlCp8/F07LxNwmG2IVo4HdvAqFyQ1MYHyzT/rrmjlfMZ88HcfR7K12ud9fcNhNKuqUde2QyG9DVPytkldEymxT+wFSz4polmRudS2RouYVqgg9urEoaIZC2MV6BmMez02p9D6DQ1pMmeWsMpA41rJKrGkUYvURJlMRJWw557vYppkPCbMEw8PwFFKEtNczuXkNpbPb32umm2068x5oQq79iQi0PDZ0vCav24LOFQCYRjNTxehGtI6IKhX46jSK+XkOxMyLoICb+bq0hondHWK3rj87nl2C3BcZrmm8mV3TG/y/JitCTMdqzk9LTUugV4m4ThKCz67MK2L8dhNV56o9JskvAcj2h07S4ubUyKqBjryaOMtM3p+6KVknYH88zmQdFa4Oqm5rT14HuKJAodrWdnden2kt+6mWLDwt711o2JG+bsAXJVwufzudxB+h3ckq2PaFq7lXOxKuEq0u/gptzqYTUkBK8GEgJxICEQBxICcSAhEAcSAnFWHTvPw+rPsjufcMzSWU71xO1Wj2junU/IngHzb+VEQT7hjfIJ2dymr3pZzjXzMgVPpWh0qtfTr/ny76nr48RW5BMeHAnl8gkbkdAYmsUae9CcQDv3ZQIDr6ehdXDJiMv9q1dFKpFP+Eqk8gl53gI3ppaowPrzaynriwxqckprnHgiUrnukk+4JeYUWYSs12J9nirWvISsGyS8UT7hWJeQ3n3RBP1s50JObdW3VtBW/6WrQj7hIRyaT+gHr+8/yEKqtE7/x8TX1+p/P+XLa7VpoX88C/mEIhKCBPIJIeEJuNXDakgIXg0kBOJAQiAOJATiQEIgDiQE4kBCIA4kBOJAQiAOJATiQEIgDiQE4vwHF7IzRw==) -&] -[s5; &] -[s3; Virtual functions&] -[s5; This assist operation (default [*@(0.0.255) Alt`+V]) invokes the -overview of virtual methods defined in current class bases (defined -by actual position, to make this operation work, place cursor -inside class declaration):&] -[s5; &] -[s0;= -@@image:2271&1656 -(A9cCEgIAAO79AAAAAHic7L0JnCRVne8b3T1sztObyujDkaUQQQbBqUYUBVqKHWkak1UQaBqQrYEm2WQRId2f2y11nPHJnTulzr3zXMpJ2zfi8ETTnvkM1ytgNa1iA81k093VS1HQdFNLs8b7Z/w7T508W5zIjMzKyPx9P/9Pfk6eOHHOiX9kxv+X50TGCcM6goWPzDl9JVlwyp+qdtrqnZZfG5z9dPDRDcHiTfw659KxYPGW4KObgou2VBMX1ez8Z2CwjrTnYLBOtAs2w2AdZ+rFs/5yeibbaPV14aYoMRol6G2Us3B9cPKGqlGi+nZTNf/kseDYVaEF1h67XjWx202v7nln+JefrtoBnwvf+dVw/lfC+d8Mj/p61Rb8bdWO/ZbVuAAM1mnm+NDCYLNos/7VgMGMpn9QWQOIV5tVNUO9kZYgI2mx63WvkA4J5j+oK5C5F28hBTL3um273fIalRQ6ZP8vVo2kyLu+NmOkSdjkTBgMBoPBYF1gFPTZ5LesJXh0grWBMMqU37J+EMaigmy3G14lC85/ITh6ZkgkOO63QX5dcPYTc654hiy46lk2EiTzlk3Ou+ElkiXBza/Ouykk4zS9ikxOcOauN7622007S8JgMBgs1uZc9xoM1mnGn0yO8hzi2eYsfWnuFS/Ou3pi3hXb5iyZDC7ZHnw0er1wO73dmbPkuZ120Xj1lXLOHds5j0M5ZOesD074fbBgzYwIWfhI8NHKjC3eFFy2hQUJSRG2qiCxWHUrdUnYFdtgMBgMBoN1j10+XrVLn5lz6djci7eQVW8KPX9j1c4d3WmkLtjOfrpq+bVkcxatCU5bU725VNxrSgrkyIeCvX5UVSCHr6huJRFy9hM7TdIhQorstGu2z5jIvOrZahlZ+cBgnWhbYDAYDOZrpDEUY72haYyazKiJDWGsOkhykB27Kljw8E4jBULag+zN39mZOO631X/EWESIMEV4VHOoAP9NZrHUZ5ZGMBgMBoPBmrZdPjp65d89M/rsy7a/ltigvWjfZiv55jO7nBeNb+TX7XLW2iu/vml0PHklX6jscnQkP+Y/WFUdh/w8OGi4KkLe8U8mEbLBKEKE8JC0x6boT7ub6uSHGJmBwTrHxDghDNZRxj8qYTC7Xfk3W9aMvnrzvTuWfGX63M9OLbp76tQ7J4//+OSJt09+8OaqHX1j1d5z3QRZ/9KJgz82sd/FW4+4au2qJ7fTvulUkl8X5KsK5KWn1zzz5Zu3fGLJphvP3bh00eiVp2649PgNl5+44ZIPkq2/6Giydee9p2pn969ddPCak/ZbefYRW1evIh1SVSAsQt5+f1V+vOGTwV4/qr5d8PDck1QRUpUZLDaEFLl0bCZzcf1wjdBss/6NhsFgsAzZbAc4WOdbGIYf//sdXyu9+M2fvvi5/2fHrX+/Y9m3dlz9jekrvzZ92X+dvuQr04u/PH3B/zV13uem8p+e+tBdk8feOnn4tdsPuGh9/0X/MTr+cjqVRJMvVMn4Vz++9R+/9vw/ffO5ez/3zFdvHfvCsrFPXb3lniu33HXZ5jsu2XzH4s23XrDppvM2LsuPXv2hDUuOXXvu4StPPuC+hf2jYy/tHAk59De6CKlO3EQK5HW3//HN96z5P+58co87ntz9jidf/4k1b7hrzZs++eTr7nhi99ufCG5avettTwQ3rw4+sSm4crVhCmbWf/DCYEab9VgDgxlttgMcrPONQv8VX5v+1r+8eO/PX/riD1+88zs7brp3x/V/SxJixxWDVQlx6VenL/7S9AVfmDrrM1On3z11wm2TRy7bfvAl69988v20bzqVkAhZWBUhW+654vkffGvb8L3P/fcvjn/9zme+fNPY567f8qmrN999BemQLZ+4dPNtF2++5YKNN5w1uvT0DZef8PQFR6467eAfvufN1UpIhJCRCOn7zYwIIVly7Kqdj0Wlb8S1DwXXPhosWxlc/+i8m1btciOlHw2uH6m+3jAy8K3RYOnIid+benXpu+lt8OGHMBEDg8FgMFjrjML3+Z+fIuXw1R+/eM8/7rjx2zuW/s2Oj/3X6cWkGT4/fc6np84sTi28a/K0u6pzK8feOnnUTRNHXLf9kEvX73XqL6qhP5VKFq1nEbL5lvNJfmz97lef/dt7nvnSjWOfWbrlkx/bfPviTTdfsOmGczZef+bo1QtHrz6tOkGz5Nj1Fx219rwjVp1+yPD79qpW8r5VVWMRctCwUYT8rrLm/lWP3//7J+5f9UT1tWqPV3Po7arH7xtZ/fNHH/+XkdU/XLX+yK/+ITjjNxAhMBgMBoO1zih8n/XpqTuGdtz13ap4uOrrO5Z8efqCz02f/ampRZ+YOvm2yeNunjzqhon3LyPZMHH4dRPzr53ov2bboZdt2Of0B2QRIlcSeyupWklNhGy64azxr98x/jd3kQKZfvjfqjk3XbDp+rNHr1604WMnb7jkuPUXHrX+gvdT/gu/+PG6c+dXzu7//RmH/viofcwi5C8fqI6NHL2q+s+as5/mfobhSx4WXvaP6xQRUhl7hfL7lm6meuiV0pTDhz9SeYmsFWen/McXt0682qJT33DlLe0VDAbrHjsTBosxCqaL7p5a9q0dhWj44rKv7Ljw89PnFKdJgZxy29TATaRAJo+4fqL/2onDrpk49JrJw66ZfPc12w+9fHSnfjBVEitC1EpqImTj0kXPfGHZM18qjH1mqSgcKZBTNlwyQApk3XlHiPx1Zx1WOevdv19kEiE8HUMihHIGor/3nrM+2ClCXoxMUR0i59UwfK06u/S9ytwzfyutd7Nx6NdTlP+RJT+cs+jx/JeepfQ/fv/RPfoGg0iEPPrYM7sf8LfGr+HgzyaEXElqfKR77P3FVC4ISk8arjzdXsFgMBisZ42iycl3TF79jap4uGJwx+IvTn/kM9P5u6dOu2PqhFsnF9w4+b5lE3997eS7rpk8+KrJd145ecjVk4des/2Qyzbsffov5ZEQuZJYEaJWUhMho1ecvOVTV1dnYe6+YvNti0X5DZeesOHiBevPf9+MAjnjnevyh6w989DfLzrkxx/Yu1rJ+1dXJcdfrawbCREi5Myd/Yz0xith+LJ7JOTqf3hy3pmPzLs4egxUpEPyX3mO8j/3lRXzjn+w+MPtLEh2/evvswdIgdhEyM6QHcmVBs4O8bq9PpPWuZZ70nDl6fYKBoPBYD1rrB+WfGX6sq9WJ2Iu/ML0OZ+ePuOuqVNunzrulsmjbpw8YtnEYddOHnzN5Duumnz7lZMHXjX5V1dv/6vLN7xtoSpCRCX01lEJbVUrWTgjQjbfuWTzXZdVX2+5cNOyc4TqWH/RUTMKZNE71i18+7pFB67N/9UfTv+rf/7A23aKkPeuNouQ/LrqlMoFm2si5CXTYEidLf37P9VEyHj1mfCRDqGd/+0/1u5y5M/Lf3yJo/C8438relV9gPy5Y5weKk9HYw5jsvSSC+hpnu4hqPL+W5+TC0ThfkwY5RR/OMnlqfBAcSv3h3LEjtQB0RO5Kr11OqLYfdlEK6JX+S9tG6m8rOwOg8FgMJinUQQ55qaJC74wdfGXpi/+YvU+0rM/NXXG3VOn3Dl53O2TR90yecRNk4feMPnO6yYPWDrVd83U26+ePPCa7QdetvGtC38lhzO5EnrrqIS2qpUsWk9WVRoXH7P5lguqf4H5+MWbbrpg4w1nj157RljPhjPfueHDB6w/vW/9orc//eED/3jagaUj3zojQngw5JCfV0UIqRHKPHlDNAxSXWJGEiFue/na//bHefmHSYTM6JDznxlZWw24ux/83+n10T89W9UGUf6MVKilr7zhp+fc+B979H1N3ioX0NNkVP79J9zLlc89fbVeQG7u8s+sOvK0/8npw5c+8b58iRJr12+jHYd+XR2MuvnLIx9Z8kNKfG95Remn3Dq1ePLi+6qN/nGM9h28r3qCLr/7t7zvN/7HE7wv13nL539D+4p6tk5Wp67eeez/ePQPm2/99AruM2wWbLYvIzAYDNaYURA5ctnEmZ+a+sjnqgqEXs/6VPVpY6d8Yuq4O6aOvm3yiFsmD71p6qAbpt5+/dS+107tt3Rq/6Uv7H/Zxrd8qE6EyJXQW0cltFWt5Mxn+MaS9Rccuen6Mzff9JHNN1+w6caPbFx2VvWRZVedIhTI6EcOHT37oNH820cX7Tu6aL91Z+z/2If2L733LdVKFqwJjnp852DIQcPBnl+uEyHnV1e48xch13975dz8b+Yt2RZcWF1BLzj/ObLi8DQLjDCal9n9Hd/ifEkqzKT/bODBeSc+omy1Fab00K9f5JjOcOXKvkoN1IRIzz39CU6TkuF6qgWOKVPi+W3Tu/b/yNETsS81OrNvVHl13yN+SoWVOjldGXuVEqec9b05+adpX9ok9xMGg8FgMLdVf0dfO7Hwk5PnfGbqvM9On/uZ6bM+PbWoOHXqJ6eOv2vqmDunjrh96rCPTx108/T+N07vfcPU3tdP7b10Yu9LN77p1GowMlYSRn+WsVVCW9VKqiKk+sN83TmHj16zcFPhnE03nre5cO6mG87aeN2isJ5N5x606az9N56x98ZFe68/fe/HTt77J+95U7WSo9cFR6+tipADHquOhJAI2W9VVZmQCDlXFiEvR/eExIiQG//u4blnPjLv0qnq6r0fjezC7QOfrc4l8fwFRd5djvoFS5SZ4F6f1rfaCpcfq85xXH73w3vs/SV3bY7mRDrUoGo9e6Jn6vuKdP+dE2vXb6P0Tx7cTmm5kzAYDBac/wIM5jaKIO+6cuLE2yfPuGeKlMPZn5k6k/TDp6ZPvWfqhHumFtw99d67pg67c/qg26b3v2X6bTdO77Vseq+lE2+5ZNN/OeXXkQgxVEJvHZXQVrWSc7cFZz5Piac//K4Nl5+48dozSH5suuHsjcvOnNEeVyzgxGuT2zafs//m/Ns2Ldprw2l7/en4t/x0/n+pVnLc5mDg6aoOefeaqgh58zeqIoTeVkXIWHVK5RKOnrEKhOyVm7/5m7nnjJAIYSMpwib6U70h5IzH5UzKUdL6Vlthkfizk37rrs3RnEiLUQvZPHsi9uXM57dNc1rJF+l5Z6+99dMrqiW3v0RpuZ+wttlOnQyDwWBZMwofB172woKbJ079xOQZxanQxGF3TR90x46+26bfevP0W26Y3vOaidzFm193Yrka+i2VnPGpqYXFqVPumTr+nqlj7pl63z3TohLaqlZCIuTc6g/qtQsPXL94wehVp2687oyN1+dnFMjVx2+64pjNl838O2ZL/q2bT3/LhlP2XH1sbvlhr9spQsiOXjcjQg54LBIhY9WRlku210QI81I0JGLj1Zu/9b/nnve7uVe8SDbnY1ULllSt9Eh1AuKnP19dHRNYsjNTBGUlzbZ1si6n8kw1mr//hHvz33hZFB7691c5s/BPO2/7pLS+r7s5kS7+pFrJ576ygmqjGgbvf8XYE+O+VDiMppy4J9+893/vsc+XqAD38NZP3i8XLv/pNa48jOQKl4TBYDAYzNMofOx78QvvWzZx/McnP/SJmV/6Mod9cvrAO3fse9uO//PmHW+8fvr1V078+QWbdj0uGsSwVHLa3dOn3j110j1TxxWnjr5n6r0kQmqV0Fa1kvNfCM6doETlpH3Xnf++DZcdP3rVh0TrG68+adNVx2362NGbL3vv2OLDZnTIaW/ceOLr/3T0ny9/167VSk7ZWtUbrEMOXzEjQhZuqs7FXLKdfjC+ZeDrbzr6S2866kvV12Nk+6Jiex55+9zzV81d+tqcpS+RBVe8SkZSpPD9VzgW79b/fRYnZCIoK2m2Jf+wU2yIt89vqzrhJ7+dkgt/7/+tPv3+6z974bv3bwmj///OO299/pvVwtScqM3RnJz+zFCFVAG9Xbt5x5GnfGfXD/xc74lt3+/9bAO//caPN1IO70u24pFnuEJRWFQ4su41Uk0kQuR+wmCwHrdgySswmNsogux1wQvvvnriqBsnjr/NLEIOuWvHO+7csc9tO9588443XLdjj8sndjlv09xjy5EI8a1ERq3koheDC6qh7T8H9nr6zHevv+go0iGTK35WVSBXnLDxiuM2fmzBpsvev3nJ4VsuOmTsgndQ/vS/fnfLqW8YHdjjT+/b5SfvnLtThJCRCHn/WPWRZTunY9YFC5+p3rgSiZC5S8bnLdk07/LNZLt+bMuuV43tes0zVbtqdNdrNlbtqtFdrtzINm/Za/OWhXOue42M1IiwXU+u/kOEXuVMnvLQ02y7LFwpZ1bf7vNlerv74T+Q83c7cjmldzvmfk7skl9dLZxfTYU9m5PTux63glvZ4+3f+LMLNxl7YktzB7gzcru7H/Y9rlAUFhXu8c57RSswGAxGxj/fYDCHUfj+i/NeOPCy6vPYP3DjxIJbJhfcMnX0rZMf+PjkkbdNHn771KG3Tx942/R+H59+603Tb1y248+vnt5lycTcszfOWRD9sSWVSkjJXFT9Mf7UMX+xduGBT58zf/2FH9iweMGGSxZsWHz06OIPjC4+cuPFh2+68NDNHzlwyzn7bcm/dctpb9x84p9vWLDLY++ZWzpoTrWS01/YORhCImT+g1UR8pcjQoRU7164dGruFS/Ou/qlede+vOsNL+12w6u73vga2W43vbrbLa/Jxvnzbgp32rIZm/UvNQwGg8FgXWPVcYn8s3tfuPXgy5//66uff8+12464btv867bPv377u2/Yfkhh+4GFF/a74YW3Xj+x59KJ1185sduSF+Z+9Plg0brgqOoCuKlUIoZTVh/5hidP2Pup0w/+z7P+unLue9Z+5Ii1585fe978p89797pzD9lw9oEb8vuNnv7W0VP3HD3h9Rs+uNva98999K+DHx4Q7BQhrENIhPB0TL0IYR1SFSFXv7Trda+QCKnaTa/qIsStQ2CwTrNZv4zAYDBYYzb63KsHL67s+eHK286t7P/RdQde9PRBF699x0VPH7B43f6L1+27eN3bLhl9y+LRPS/e+IYLR/c4f+OfnbNxzhnrgpN+v98Z/ypESJOVVIdTlrwy+uyrj3zo4Iffv+fDH3zbyIn7j5xy4MgpB42c/I6Vpxzw6Mn7rzpp3z+e9LY/Hv+Wxwb2/OOCNzz2gT3++N4/e7R/zr8dEvzomP2qlZw5USdC9vyyLEKCC7eLwRAeD9l16YuqFLlp59iITYHM+smCwWAwGKyb7Kp/mFr5xLaDz/v31x973xtP/OWbTvrFX5x0/5tOvH/Pkx7Y8+Rf5k761etP+vXrTlqx+4n/vutxv5537K/nHPvvwdG/2u+M+0dWP0v7Nl/Jlf9tkkXIld+efO6xlT878eB/etfrh/vf+KP5b/rB4X/xg/43DR++548P3/Of5+eW97/+p+9+3b8ctvvyQ3ZdfvC8f3nnnH9+RzB8zH5jfxi58m+2WUTIWiFC+HXekm1Vqw6JTOyUImzXvcI279qXdePD5FEUGKzTbNZndWEwGKwx2+XKl0kGxN5KqjD67Ku0F+3bbCXffmGXS6erf7G56MVdFk9f+XcvJK5k/BVSILt8eHvdPSGKCFm0vrqK7vkbI6s+tSxYUr1Vdd4V23ZaVZAIe4n/ESNbEP01Zs7HWvIHJRisaZv9W9xhMJPN+lcDBtPsoherH87oHzHVx4yc/0Lwkang/OmqUeLcieqYBr9yQtiZzwenb62+8lZxE4hiigip6pC1wYKHgxNG5py4cu5JVQtOW802Z9EatiC/tqpV8ut22tlPz6TZogVuYDAYDOZrJ6+FwTrOSBIstHw4T1hTXfSWbEHNPvjEzrcDNeMcej3q8aq9f/XOJWN4ATuSHEYRcsJIVYREOkRIEaNxgaqJ8tKOMFgHGn+8YbBOszkwWEdaCz/2/Nh2/nfMW0d2O+KJtyx9bvdznxrfshoGg8FgMBisdRacui04+olg/x8Ee34FIgQGg8FgMFjbDCIEBoPBYDDYrBhECAwGg8FgsFkxiBAYDAaDwWCzYhAhMBgMBoPBZsUgQmAwGAwGg82KQYTAYDAYDAabFUsqQpZ98Z9hMBgMBoPB/C1FEZJ0tRoAAAAA9CytECGzPoYDg8FgMB8b/v63cdGGi1LxUgN7QYTAYDBYLxsiLFyUlpc48ffDv/zsvT9zTL7QVirDhSFCYDAYrJcNERYuSstL45ECIXti7cbxrduNky+UT1u52HiWRUgQBHqOngmDwWAwhzUZYZu88Gbiop1dEdJO97II+ey9PyON8auV42773apHqOR4u0SI7AdOGyVEM75t0tV6D2EwGKwXzBhhAwnHvs1fOdO9krfZRc0caSus+cDapJfGIxkwvnX7L0fG3PbUU6tYe8yWCGn+BLVOhMBgMFjvWGyEdVwem79yZuLamxURMruNChFCvnrgd1tkW7j4NiWHS44nFCF7pD0SorwK1W38/CuyXBchjt2Nql7ZRd9db9HnpwEMBoNlyHwibOxVcdz7YqvkGBvqtIutpwjxjzKOvfT4ZStjezU6sA3+rBchm4WRAmGTM8f9RciCNcE+32lShBhdJNzi8LztROv57t3dOQ3s0iFfDRgMBmvS/EVIY9fJRNfSzrzYJh0JiY0yxsxEDlTURcMOT9dL4zUZ8ItHNrEJBcIm8sc7RoQ4zoWSVqQdRAgMBoM1b4lEiOM67I6Y7r1iK+l8F42bglTsgdiCnfLW04H+p6BFXhqvyYD/7+GNZEJ7KGmy8ayJkAZURJO7Q4TAYLBesMZGQvRinhdbY5nYSrLiImPa5gfbXsZw6dmW5ylokZfGZ0TIqKQ6RtnknPG2ixBPXzXsVYgQGAwGa8D8b0xt7DqZ6FramRfbZkSI8aBi90oa0Rp2eLpeGq/JgPsf2kBGeoMTwkTOeOeJkPH6wSt97EjJcXwA3IX1CpXWHQXacB5hMBisnZboL7qxV0Wfi627flslne8iPe4Yj9pWj+4Hf7fbHO44Ba3w0viMCFnvtvHZECEwGAwG6zTL7pO44KKOMvk5IeXf/afbEjwnBCIEBoPButcQYeGitLw0Xnti6v969HG3JXhiKkQIDAaDda8hwsJFaXlpvLZ2DGmMp55aZSxG+bQ1wdoxyUXIw7/5VxgMBoPBYD1lrARSXkU3uQj5xc+/D4PBYDAYrKesgfGTVoiQ+Uv/AwaDwWCZsOHvf3vW+9DhBhd5eqlDRkJm3RUwGAwG8zREWLgoLS+Je0KeWLtxfOv20ATl09aW3hMy666AwWAwmKchwsJFaXlpvPbvmF+tHP/lyFi0YO7mXzyyKXpU+2j0mLL15d/9Z6v/HdNY/8WjVGbdkzAYDNY7hggLF6XlpfHac0JiRUhLnxOStOesPcJwp0GKwGAwWNsMEbY7XDTr0xDyE1NjRch4Q09M3X3+46mLEFl+yObQIY252rjX6vUTPEu18JMPt+KkXDH4h4ef2KZ3Y9Y/LTAYDMaWKMLKk/vuYrN+XJ3gIn8/yCX1tE89s+5ziJCkJ+j8z68Un5O7v/dkK06K8iG0pWEwGGy2LGmENaYdxbrAGhgJSeqB5iPFrPs8iyLEpkDcOkQoQ+VMuXP0jv3PX22kzPLKZ/mVMxd+8uGHn9hGOaPjO0ilGHPIfvq/tnDlYkd+y3VySUUM6x2Y9c8MDAaD2SKsMRQqVy05X7neOt5mzhK5yPbW6BCjY20jIfpetqqMNTuiYVpe6h0RojjTdspsOWzbp14mI41BmyjBmaxJWEKQljDmsAKhHM7kCRfu1RWDfyBTMm3nPbtfSRgM1jWWighRcmwXt4xe9JoUIT4RStmkFGss0hkrad1Z6CkR0syJYLvx238Ko4GL+bU7Q0g8zNcGWBw5iv7Uhaie6TgQGAwGmxVreDpmfn1cU66HSjF5a+asyemYThAhxmpT91LmRMj8pu8JaViE8PiGDAsSfxGi9woiBAaDZc6aFyGeQVbfPSsGEeLppd4RIU2eGn4r/rdy9/eepLer10/M95uO4Zwv/+g/9ekYyuTpGL5XBCIEBoN1uDU8HePI7BER4ji0BkRIA3slkjetPgUZFSHzkz8nRB9kEG8dOfImkgr09v/+2Tp+y7eFhNEfdUlXKLeh6jnzpRtThZLht3xjKmVySZI326deZnECEQKDwTrQkooQ/WJrzNfT+l5ZsTbcmOqu0C0wbJX79DNdL2VUhLBl/YmpPt+v9nwSYDAYzN8y8SSuLnNRV17/sy5Csm6eIl8XtDAYDDaLBhHSfhd1ZQiACIHBYDBYUoMIgYvS8hJECAwGg8ESGSIsXJSWlzpEhFBPYDAYDAaD9ZR1iAgBAACQFSh2zHYXOh24yAeIEAAAAElBhI0FLvIBIgQAAEBSEGFjgYt8aIMI2W3+6taJEPGckNQ8AgAAIA5E2FjgIh9aKEL2ba0IMT4xNWXvAAAAMIEIG0smXDTrcTOjIsSxdkwz3tD3VnICib6+vpGREUcPE3WmXC4PDAzIOcPBzCsAAHQUiSKsfOV0F2u6Xx1Ewy7y94NcUk/71DPrPocIiWtIbZebqFQqrEPSa6iu87L2gA4BAHQaSSOsMe0o1gU0MBKS1ANuEdKKFlMniyLEpkDcOkTOFmlKsBnzQ7sIUdJLlizht/l83mcraZiBgQExnKIIYF11QIcAADoKW4Q1hkLlsqxcRT3fZo5ELrK9NTrE6FjbSIhxgMVYlbFm20lMi14WIbYcXYrITXP9rBx4JIQ1xkgEJXhWRZQ0biU1wpmiEvnsQ4QAADqcVESIkmO/emfyCtikCLGJCmWrojdsmxrOgQjRaUyEhCaNYdxkHDMRTQvEPSGBhsiM3arUvPOkQIQAADqbhqdjwvq4plwYlWLy1szR5HRMJ4gQY7XpkkUREtp1iNtLaYmQMBrfyOVypVJJzjSWdG815kCEAAA6nOZFiGeQ1XfPChAhPvSUCAntAiPpdAzR19dHOqRSqfDcyuDgoHE6xrgV0zEAgEzT8HSMI7NHRIjj0BoQIQ3slUjeGPuZIhkVIeFM1J6RHz5e0kRFndLQ5YdDhJRKpaB2r6m49VT8zVYuqW8l+SHfmEo5Q0NDJGlYrkCEAAA6nKQiRKAUVvL1tOe1vQNpw42p7grdAsNWuU8/UyS7IoTp2I8odYlERcO74y+6AIBOJhNP4ppdUndRB0a65sm6COlMeJRjaGiomUrwsDIAQMcCERILRIgPECEAAACSAhESC1zkA0QIAACApCDCxgIX+dA5IoR6AoPBYDAYrKesQ0QIAACArDCMn/lxwEU+QIQAAABICiJsLHCRDxAhAAAAkoIIGwtc5EPWRUjHPicEAAC6GETYWOAiH7IrQmraI9kTUwEAADQPImwscJEPGRUhsvxItHZMXLUxOSMjI/39/Sx4KMFPXDdSLpeVR7gzhULBZxcb6T67zHS8apbNpUldTT2P7fxwEAxbqh0rl1fYnYNHugHQZhJFWM8HsHfZD0m4yAeIkLiG6t729fUF0cJz8tpzth4qz+SnxODgoEOHxH78Ug+1bRMhoufuQ3CIEMcmn5oBAOmSNMIa045iXQBc5EMWRYhNgbh1iHH93MYWsNMHQMQSdbyenaJpFUHC0oUqYUmTy+WGhoaUXZStoRZklZ4bj8VdRt8qudecVg7EVljX8w4RsnVk5L6+PhIYKwsFoTRE5vJcbu3QEOfbtuqtAABajS3C2q4JxjL6VcXxNnPART70sgix5ehSRFAoFFgYkOoQUoQViBge4SkV/XOipMX6uUFtqTu5mL51WOutz7H450ibYr4gsvyw5et72aZjVgwMkJwYK5fJhMwgjbE1OnxWGmH9SIi+VTQBAGgPqURYJcd+9c7kdxsu8qF3REho0hjGTcYxE0G5XCbVQcKAGioWi2H9uIcQErEipFKpkKQRd5goxfStNhHiPhZlqz4wYsT4adcPUCkjH4Wizx2L8cnqQqQnK5WVhcID/f0iRy6mb5VbAQC0gYbnGuS3xquKXEy5kmQLuMiHLIqQ0K5D3CciFREi90EXD/pWPc3TMTzbQpLGWI++NRURorz1FyFGseHIl5F7ro+HGEUIz7bIYyPKSIiyVW8IANBSmo+w7quHLZ0h4CIfekqEhPbQbBQhgTYdY7wxNZ/PU3pwcDB2OoZvTJXHT3gXXYToW9s2HSM6YHyrCHJbvryXIkIUHsznSUiMlkpkiuTYOjJiFCH6VlvlAIAW0fBcgyOzyyIsXORDRkVIOBP1ZuSHz1nQxwSCJDem2v6iK25MFf+xHRoa4ikbFh4M5Yi/xvDNqGJHZRd9awM3pupHrZdxD4YoOZ7yQxyv2JcHQIyTMsYbU/lm1IeWLJFzludylH5ycFDfKloBALSHpBFWvywY8/W057W9A4GLfMiuCGGy7v9EIMg6gHMAaCd4ElcscJEPWRchvQZCrRG4BYA2gwgbC1zkA0QIAACApCDCxgIX+QARAgAAICmIsLHART60QYTs7idCqCcwGAwGg8F6yloiQj64Jtjnu4lECAAAgKwwjJ/5ccBFPkCEAAAASAoibCxwkQ8QIQAAAJKCCBsLXORD1kVITz0nBAAAOgRE2FjgIh+yK0Jq2iPZE1MBAAA0DyJsLHCRDxkVIbL88Fw7xvgccs+SPpRKJfFE93w+L57orlMul8XT3eWH7oonurt3seFYqTYtoPIAAEyiCOv5dPEu+yEJF/kAEeJTMhZSIKw9RJrXtrPVr68CwEvM2HRI7CfTvUhcWnTdxx8A0CBJI6wx7SjWBcBFPmRRhNgUSCIdoqQVYWArbFOqPAZSLpf1RsUidCxRFLmrtMvSZWRkhJfrzeVyvJKdvIuyNTSpDj3HZ8E7dxl9KwCgZ7FFWNuV01hGv/Y63mYOuMgHiBA90yZCHErV9jFgBTISEdTW2NU/QkqaNAbP5rDSUIrpW2NFiL6ibvM5AIBeJpUIq+TYrt4ZDbJwkQ89JUJCy3lUhhocIkQpqdSg1KbvImfadqREpVIpFAriDhOlmL41kQjRc2ySI6yNfjjqAQD0Jg3PNchvjddeuZjxepsV4CIfsihCQrsOiT0RNoGhb7XlGxkYGAik6RijeJBrs4kQno7h2RaqzViPvrV1IkR5m9mPOQAgZZqPsO5rrC2dIeAiH3pNhISWcx3WKwdHvrES+cZUWR5QDiUGBwdjp2P4xtRisSgyeRddhOhbMR0DAGgzDc81ODK7LMLCRT5kVISEM3F5Rn54ngXH0ESs/AgCa0PyX3RJbPAto6F0Y6r4jy1tyuVyLE5EhZQj/hrDN6OKHZVd9K1p3Zgqb7KVyewnHQCQJkkjrPHiqefraf9re6cBF/mQXRHCZN3/adGev+gCAACDJ3HFAhf5kHURAgRteFgZAAAwiLCxwEU+tEGE7AYRAgAA3QUibCxwkQ+tEiELngr2hQgBAIDuBBE2FrjIh84RIdQTGAwGg8FgPWUdIkIAAABkhWH8zI8DLvIBIgQAAEBSEGFjgYt8gAgBAACQFETYWOAiH7IuQvCcEAAAaD+IsLHART5kV4TUtEfiJ6YCAABoEkTYWFrnom4KdooIMZbpQBEiy4+ka8c4q43JGRkZEc9mpwS99e+wrW9iU2M6SjydzPh036S1ebbo/0g0PDwNgK4kUYT1fLp4N8XWsCERojjKETWa7VzHoI+EzF/6H7r1iAgxNVT3llewHYkIaoveNt1E492WFYhSp56ZCqJF6BAAepmkIsSYdhTrApKKEP3we1CEGMt02kiITYG4dYjnAm1yfqiJEBYM+gCIWE6OF9IVJfsjQklp0L6sZHK5HC9yp4+EBPXYmhiuOyLzqnyyGpFHSBTlYxxCMf54cYiQ0VLpgf7+4SAgWzEwsFXyEnQIAF2GLcIa9YbxV1JouvI43maOZlwkMo2X8ez6RCeLIyFpiRBbjmPR2EKhwPqBJIGQIiwPxPAIr5bLn5xyuSz6zB0jBcI7cj3yJuXrJlbLtTWhRHb926p8l5XM0PR5Vnpi3Ms2HbM8lyP5MVmpkPygxAOR+hK7AAC6iVREiJJjv3pn8gqSigiR0+7CGaV3RkJCk8YwbjKOmQhIV5AkIP1ADRWLxVAbuDAqCvG2UqmQkhE3lsib5F1IbFAT/bU4bmzCGNmNH1S9J3I9SqZxR5FwLJMnD4M8OTgob4IIAaDLaHg6Jqy/sBivPMatmaMZF+mZtnTWyeJISGjXIe5Tk4oIkftg1BvKVuUtz8WQknGLEJIfJELEYIuxCUdkt2mJ0PTp1bfaRIjconE8ZKxcXlko3NfXR1LkPumGGYgQALqM5kWI48rjSGcIiBAfsjgSEjYqQkK7wPCcjjHemJrP5yk9ODioT8fIHZaVBpe0iRCefOE7RhhjE457QjxFiF4skQhR4JEQvhWEEsujySZbYQBApml4rsGR2WUxN5GLQtNhdplDjGR0JCSciZgz8sPnvChFgoQ3ptr+oivuGmV5IHVP6e3MnR4OERLUY2vCeE+IvIsuKpSSevfcIiSsDYAYJ2UmK5UH83mekSFBghtTAehikooQ/bJjzNfTntf2DiSpCAm9L+MZdYiRNjysbHc8MbVlZCK4Z6KTAIBE4GFlscBFPrRMhKwJ9vlOG0QI6PAQ3+HdAwA0BiJsLHCRDxAhAAAAkoIIGwtc5ANECAAAgKQgwsYCF/nQOSKEegKDwWAwGKynrENECAAAgKwwjJ/5ccBFPkCEAAAASAoibCxwkQ8QIQAAAJKCCBsLXORD1kVIjz8nBAAAZgVE2FjgIh+yK0Jq2iPZE1MBAAA0DyJsLK1zUTcFu4yKEFl+JFo7Jq7amBzbY9t1yuWy8gj3IFoyhitJNIAjP7Y3qD37nZfxFU3oOJa7BQCAJkkUYT0fwN5NsTVsSIQojrI5pJscBRES11DdW+MCdrYe6isgDEYL3NNrYyLEkaPgXmkOAACaJKkIMaYdxbqApCJEP3yIkM4UITYF4tYhxvVzky5gJw9oyIjV5fL5fBga1CwrFh64oFcWM6KrYndKcA41wWUKhYJSjwwPy8gDLP3VpWzVY4cOAQCkiy3CGvWG/jNKJIy/14xvM0czLhKZ8vVfee0OelmE2HJ0KSJgSZDL5UgtKEvoiuERVhr6V4n35beytODdhyKEDqFKKF2OUESInOBdqDbRN8qBCAEAtJpURIiSY796Z/ISlooIkdPuwhmld0RIaNIYxk3GMRMBqQLSCXxLRrFYDE0DFKH2gSFKpRLvItK2krGZ8lbqCc8K0SulQ5PkgAgBAKRLw9MxYX3kVS6bSjF5a+ZoxkV6pi2ddbIoQsJG7wlJRYTIfdAlgb5VL+lQFA2IEFY18igKRAgAoNU0L0L0qNplMRcixIe2iJDHO0SEhHaB4TkdY7wxNZ/PB9FNp+7pmLA2yaIUME7HcJ2lCLcIqVQqQttQOoQIAQC0nobnGhyZXRZzE7koNB1mlznESAtFyL4tFCHhTCCekR8+50UpEiS8MdX2F11xZ6n4z6z4F634L0xYG7WQJ3GU3X1uTFX2FbuLpiFCAACtJqkIESiFlXw97Xlt70CSipDQ6RCIkE4TIUymP6JpIe5iFTn4iy4AoKXgYWWxwEU+ZF2E9DgswPr6+oaGhpRNeFgZAKB1IMLGAhf5ABECAAAgKYiwscBFPkCEAAAASAoibCxwkQ+dI0KoJzAYDAaDwXrKOkSEAAAAyArD+JkfB1zkA0QIAACApCDCxgIX+QARAgAAICmIsLHART5kXYTgOSEAANB+EGFjgYt8yK4IaeyJqQAAAJoHETaW1rmom4JdRkWILD8SrR0TV218TrFY5AeqE/l8np/c3qQEEuM5XBuvQeNfp/44d/HQePEsdx08zQwA0DCJIqznA9i7KbaGDYkQxVE2h3SToyBC4hqqe8trzJH2oDQvLcdr2KUlQgYHB+mtWG4mqQhx5Cjgue4AgGZIKkKMaUexLiCpCNEPHyKkM0WITYG4dYhx/dykC9jx6nUkP/QuiXbFanSsVUJpNbpcLsfPV+cC/RHiLZXhgQt6FYMtSp0+K9zJcIflARbKwQp3AIAmsUVYo97QfyWJhHyhc7/NHM24SGTKl3fltTvoZRFiy9GliNy046MS1tTCSERQmw0htSBmbUiHiPJiyTl+y3KC38rSguscihA6RCxaRygiRE7wLlQbpblOyoEIAQA0SSoiRMmxX70zeYVKRYTIaXfhjNIGEbLb4R0hQkKTxjBuMo6ZiKbdIiTQoMxKpUICgAclFJEg787zO8ViUaT1wp6Z8laSPTxnRK8sgSBCAABN0vB0jPxWuVTqxeStmaMZF+mZtnTWaZkIeap1IiRs9J6Q5kVI7HSM8fvC8ybGIQvj7g5F0YAIYVUjj6JAhAAAmqR5EaJH1S6LuRAhPvSUCAntAsNzOoZvGXXcmEqbguj+Unk6hreK/7yE9SJBfsuTLPJeoWU6hhsqRbhFSKVSEdqG0iFECACgaRqea3BkdlnMTeSi0HSYXeYQIxkVIeFMnJ2RHz7nRZteqVMauvzQqyQlICZWSC3of9EVN5GKv8cK8RArQnjUgl5tdfrcmKrXz7uL/kCEAACaJKkIESiFlXw97Xlt70CSipDQ6RCIkE4TIUymP6JtQ9zFKnLwF10AQDPgYWWxwEU+ZF2EADes0Pr6+vivwTJ4WBkAoGEQYWOBi3yACAEAAJAURNhY4CIfIEIAAAAkBRE2FrjIh84RIdQTGAwGg8FgPWUdIkIAAABkhWH8zI8DLvIBIgQAAEBSEGFjgYt8gAgBAACQFETYWOAiH7IuQvCcEAAAaD+IsLHART5kV4TUtEeyJ6YCAABoHkTYWFrnom4KdhkVIbL88Fw7prGT5rmKrrw1iJaJCaMnqycaqNEfuj40NJTL5fiJ6w3Uw7ThoWRd9IUAAHiRKMJ6PoC9m2Jr2JAIURxlc0g3OQoiJK4htV0fETI4OBjWVrtrWDzENudTT3sez95FXwgAgBdJRYgx7SjWBSQVIfrhQ4SkIkJ2n786XRFiUyBuHSIWpFMWz3Xn2ERIqVSyLWPX19fHS8XRK68xJ7qUaB06XRLr9fB6vrZ6fBaq8/GAu4y+FQDQ9dgirFFv6D+vREK+srnfZo5mXCQy5RCgvHYHLRMhazpQhCjSQomqsTmhpAR4lqRSqfCcCwkSsZVlAL+VJQErh6EIoUPE0nKErjf076OoZyQiqK2Na6wnVoQk9YCnlwAAXU8qIkTJsV+9M3mJSUWEyGl34YzSUyJESTcjQuRhEJ58EVtLpRK9FotFkXYoCnemY6uMrWQiEeLvpdA0oAQA6Ckano6R3+rXMaWYvDVzNOMiPdOWzjpZFCGhXYc4Tk26IoQol8uFQoEnQehV3mqUB+mKEN0h7RQhytsu+kIAALxoXoToUbXLYi5EiA89JUJSnI7hkRBxK0gul5O38uQIT5SITON0TD6fD6IBE+OYiVFa8C6Dg4PydIyxHkzHAABaRMNzDY7MLou5iVwUmg6zyxxiJKMiJJwJyjPyw31eRLhUYqg7xyZCKpUKx/0guiFEvjGVEjwXQ69yZpjwxlRlX2M9rEBs9aR1Y6riQ2OZLvpOAADiSSpCBEphJV9Px17bO5akIiR0OgQipNNECJPpj2gbaM9fdAEAvQYeVhYLXORD1kUIiKUNDysDAPQaiLCxwEU+QIQAAABICiJsLHCRDxAhAAAAkoIIGwtc5EPniBDqCQwGg8FgsJ6yDhEhAAAAssIwfubHARf5ABECAAAgKYiwscBFPkCEAAAASAoibCxwkQ9ZFyF4TggAALQfRNhY4CIfsitCatrD94mpAAAA0qJ1EbZrruRwkQ9tECG7Hf54J6wd41dtTA5LnUqlEtY/XlinWCzyc9SJfD7Pz3VvjHK5LB7P7mB453PpDQ8BVnJ8CrgfmDwcBMNpfwtEnXiuGgCdTwMRVrmq2K6fXRNh4SIfIELiGlLbDaLF40KnCOEl6kh7UJpXlONldhvtQ/xxicDt1hjGNQh8ymjNtVCEhNAhAHQ8SSOsfhnp+ggLF/mQRRFiUyBuHeK5EJucr+wV1kJ2f39/KMX3SqXCy+aS0uARD15jl+SH3nPenWsIpaXoWLGE0lJ0uVyOxYyiE/RdhusOzTysEfvWVsZYLQuGlYUCvS7P5dYODVEmJR6KFuajt5T/ZCTVKGd5tMSwcZetIyP39fWJfFnYQIcA0MnYIqzx94vxsqz/5Hf//M8ccJEPvSxCbDmOxWH581AoFEgqiM8GL6fLOTziYRu74PxyucxvWU6MRAS1JXGFkmEdotRm3EURIQqh9jlPS4SMlkqkIlhUUOaKgYH7osN/oL+fMh+IhBblrNjZSfMulB4rl8kgQgDIEKlEWDntLpxF4CIfekeEhCaNYdxkHDMRTbMGIB0ih3g9ZDtEiPJWEQyVSoUq57EUvX7jLp4jIfon30eTGKutnzrZmX6sWGSZwTkivbJQsO1izKy91f0HAOgUEs01+ERYd+EsAhf5kEUREtp1iPvUpCVCwtqEi02EuKdjbG8Znospl8sOEaLs0iEiRJYfPCPDxvMyECEAdBOIsLHART70lAgJ7QIj0XRMGP35RaT16ZjBwcHAdGOqIiF4Ryosz61wGXm6R97LuEusCNHzbZvkRm11hhbxMFmpcJonYnhShmdbbLs8mM/zgIkQMFITIQCgY0k01xA6L0GxJTMKXORDRkVIOBMuZ+SHz3nRREWd0tDlh02EVCoVkSY9oNyYGkZ/kBGjJbRV3OahdFLcZSr+hMs3o4p8zsnlckHtXzn6LimKEPE2kNDdaBvBWJ7LiaEPMRji2AU3pgKQUZJG2NB0VfH81ZNR4CIfhAgZ37o9VoQ89dSqzhEhjCNQ9hRdFrK77HAA6D7wONBY4CIfWIR89t6fPbF2Y6wI+d2qR6hkR4kQIOiawN01BwJAF4MIGwtc5AOLkL8f/iUZaYynnlpl1AmUT1u5GEQIAAD0OIiwscBFPrAIYR3y2Xt/RnrAZrSVFQhECAAA9DiIsLHART4IEZLIwhaIEOoJDAaDwWCwnjKSAc+OPfHcM2u2Plt5/rmnt23d8MK2jRPbN0++8MzU5LPTU8+/uGP7Sy9OvvzS9CuvvPTqq6+wesFICAAA9CzD+JkfB1zkA0QIAACApCDCxgIX+QARAgAAICmIsLHART60QYTsPn81nhMCAADdBCJsLHCRD60SIR8kEfLdloqQxp6YCgAAoHlaF2G75koOF/mQUREiy49Ea8fEVRuTw1KnUqmEoeEZ7EoxphCtIZuIcrksHsneDPzULzz7CwCQOg1EWOWZ5I7rZ7Od6wzgIh8gQuIaUtsNamu4xIqQsLaSXVIdksqojqw9oEMAAOmSNMLq17Suj7BwkQ9ZFCE2BeLWIcb1cxtbwK4/WiVWSIVKpaIsYKcsP8RL6IbS2nO8wG4YrbGrrHOnK2FukRuVK6EEveXduV3evb+6fK16+NAhAIAUsUVY+QosXwaNJZWf/O6f/5kDLvKhl0WILUeXInLTPLIh1AJlkqJgGSD0hiJCOM3iYSQiqK2By8vjkowR+sG4e7lc5rdcyVAE6xBO8GALvfJWiBAAQEtJJcLKaXfhLAIX+dA7IiQ0aQzjJuOYiWiahQSHe3mwQi+mpAONsDaOwZqEZ3lsuzs2kZJh8UOvlA5NkgMiBACQIonmGnwirLtwFoGLfMiiCAkbvSckLRESSuIh9BAh+vCITLlcJklDZYwlfURIsVgMogGQoDZHAxECAGgpiLCxwEU+9JQICe0CI9F0TFiL+0HcdAzfmEqFRTHKkadj5Ds6KMHjGA4Rok/HhNFNKWJ0hf+5AxECAGgpieYaQlPc7PoICxf5kFEREs5E5xn54XNeNFFRpzR0+WETISLuh9HtoMYbU1lUyH+NEfeUin/gUj0sToLohhDenQQG3yvCGkY5LuXGVDlTVAsRAgBoKUkjbFg/JS3nuPfKLnCRD9kVIYxyvnoWVkHi/tUQf9EFALQSPA40FrjIh6yLEMAarK+vb2hoSNmEh5UBAFoEImwscJEPECEAAACSgggbC1zkA0QIAACApCDCxgIX+dA5IoR6AoPBYDAYrKesQ0QIAACArDCMn/lxwEU+tEWEPA4RAgAA3QQibCxwkQ8QIQAAAJKCCBsLXORD1kUInhMCAADtBxE2FrjIh+yKkMaemAoAAKB5Whdhu+ZKDhf5kFERIsuPRGvHxFUbkyM/U1c8pN2zwwL5Qe6elMtl8Uj2ZsDjywAAqdBAhFWeSW67XHdNhIWLfIAIiWtIbZebIFUQ1Jar8+xwIC1pl1SHpDLOgwe5AwDSImmE1a9gXR9h4SIfsihCbArErUOM6+c2vICdnOZEfwRvEmvM5fN5445CveglS6USL60bRAvS8ZK7ija2NcdL2skr8/LulIMl7QAAKWKLsPIVWL7oGUsqP/ndP/8zB1zkQy+LEFuOLkXkpvWREM4Ui8exJBiJCGor2xrVi7Ekr59bqVSEfjDurjQ3FME6hBM82EKvvBUiBACQIqlEWDntLpxF4CIfekeEhCaNYdxkHDMRTQvEPSHyZ0MpI4tYXYQYS8rDIIODg8outuaUNCkZFkj0SunQJDkgQgAADZNorsEnwroLZxG4yIcsipCw0XtC0hIhemdsqsCYGdQPoej9LJfLhUKByhhL+oiQYrEYRAMgQW2OBiIEAJAiiLCxwEU+9JQICe0CI+l0jCMzn8/T28HBQeN0DN+YSiLBVlK+o4MSPI7hECH6dAxlVioVMbpC6RAiBACQKonmGkJT3Oz6CAsX+ZBRERLOxOIZ+eFzXjRRUac0dPnRgAgJpTtFxf9qhSQgUSH/NUYvSZqBxUkQ3RDCaoQEBt8rwhrG1hwrEDlTVAsRAgBIkaQRNqyfgJZz3HtlF7jIh+yKEEY5X0BA8iOQ7l8N8RddAEB64HGgscBFPmRdhAAdVmV9fX1DQ0PKJjysDACQCoiwscBFPkCEAAAASAoibCxwkQ8QIQAAAJKCCBsLXORD54gQ6gkMBoPBYLCesg4RIQAAALLCMH7mxwEX+QARAgAAICmIsLHART5AhAAAAEgKImwscJEPWRcheE4IAAC0H0TYWOAiH7IrQhp7YioAAIDmaV2E7ZoreSZEyKx7O6MiRJYfnmvH2B63bnxGriPTWJv+WF1HbWG0uG1QWyCmXC4H0fPYw9qaL7zV87PRjPqS+yYWBW6G4Z3Purc6x7bJ6KVsYTw0+a3jGJss7C7gZjgIhN3X17e16c+AP+7vi7twui7iww/b6I0ueGBgAxFWOWW2D2p2LwIKiVzU2GVQLqmnfeqZdW/3uAjR3zZWLOl3ihd2YeFRKBQonc/nw9rydvISMLE0E7jFviyEeMXehhHXVYdzlN7a0lnEfQWIPXCHK5LW3IAIocRYucyR13/fJnF/19rpIkWEhG3xRtZ1SFIREntpjc3PHI3ptIbLN3Y5nXVvZ1GE2BSIW4ekJUIS7WuroVQqBfXL5rIA4AVfeKsctVmo5HI5fhL7yMgIj5ZwvqhfX8mOduE0r7HLsodyHIvzcqI/wlZtpVLhrorxE/mK6hYhcoHYbw0HhQf6++l1eS73WLH4YD7P6bW1h9I/tGQJF3swEnLEaKnEu5CtGBjg37PGTHqlQCNXSDm0lXJEtbZWdJTjsr01plsXYenQHopOHB0g9f/J6DNAOcujz4B8jCKtu0WciAeiT4WjgONM2dzlONL2uEgXIe3xRqZ1iC3CGk+T7SoqX3ZC07nLNIlcZHurX6WVHEe18iXd+C0wVq7U5j6JzdPjIsRxIvRMR23u747jC8jzLxzQKZrLX0k5QbKEt7J4EIvT8QgGl2SpMBQR1AQDlWR5w1KHdQXlsP4R+8ojIZwpVr4zVsvr/HKXeK+WihDSD5OVipLmGMragKIAGauLMAq7lKZinMmRwpgphtxFhRws6IcwNSTCkLEVx4k2HqbP5UL+bCgfQndVRvcy1Fv+Rc8xURw4H4Xxt7/uFi42VvtU2Ao4zpTDXQ63tMdF7pGQ1nkDIkROuwtnkSZFSOxXQN/keeVJlNPq89LjIkTf5PCz42tivLK562RVwHKCpQhHdtYJoi2l0aSZxWIxkIZWRLpQKIhijBjTUK7qsW0xiUSI0WNGLxl/mYZa1JAtrEVbVgv8w9+WSXFhZaEgNiVqRSc2/AmMRx37rU96CWLoZzgHQdF5Tq+MPgPyQYlg6naLv9/0HW2HI3JmxUXGE90Gb3SlCDFi/HbHnuWs0+R0jO1Komx1fLzdVySfHMe3Ji2yKEJCuw5xeMl4xdPTsX42ng73OTLmszwIaneDsCZR5IGcaCxTlh88lMHwvIxytVf21d8a22JmV4ToO9KvVIoLPEguZvb1TE7zz95YEaK3ouDzddZ3kdFdoZ8LY2FHQ7L84BkZNlZixkNzu8Xfb27Xub+S7XSR+0S3zhsQIbHpTAMR4gNEiJKOvTAaT4f7HBnzxUwK6wG+JTWIRirCOGnBYyalCJFpnDfhMZagNsAipA7PtsiVy72VM1sxHWNsyOil2Is5z55QPJUnSvg3qTJCbszkenhfuUIKKFSnuxUjjs9P7EfL5iXPwraSYkaAJ2LED3aeTTCGXd0tWvR0FUhRhLTHRW4R0jpvdKUI8ZcWPStCHAfbgAhpYC/PmttzUjIqQsKZEDYjP9xeCuoJ7bFSKaZkGiu0NSHXbOsS6YQwutdUr0pOyGn/G1PD6N7UoCZ1xGCIUqHJsTPo1VIHHDem2pxj87nDSz4Xc3HLqNAGFHZZNnDkFYPqeiaPDMj3oIqbDFcWCu5W9KM2HkVg+ka7c2yfTHdhR0N8PwwPfYjBkNohGMKu7halmLuAPa32X/mczJaL3CKkRd7QHZItGouwxmume6/s0oYbU90VOnxrOxfuqlpBdkUIYzwjYFbI9BVVQPGagzUPILj/pNkdh9w24C6ZrHsjE0/iml1Sd1FXRrqsixDQUWT9uhpGd1DwSIg8YGKjC463ncBdgi5wBURILBAhPkCEAAAASApESCxwkQ8QIQAAAJKCCBsLXORD54gQ6gkMBoPBYLCesg4RIQAAALLCMH7mxwEX+QARAgAAICmIsLHART5AhAAAAEgKImwscJEPWRcheE4IAAC0H0TYWOAiH7IrQmraw/eJqQAAANKidRG2a67kmRAhs+7tjIoQWX6EfmvH+FUbk6M/aLoZyuXyQO0Z4HK14lnozcBPQzI+BFjJcRcw0syxU8dSeVKT8UDSOkHGfVv3gKmxclk8Db4LHmMFeoEGIqzy3bR9Q2c9LKZFIhc1du1yP2W91RfzVIAIiWtIbTfFJuTaRJoXtutzPi08FuNycvrH0pbj0/MmO5auDtETadUsYO3UIoXQTUuKgB4hqQjRv1MQITpJj90tQlrRYupkUYTYFIhbh8jZIk0JNmO+sleoiRB5YVmx2mworfiWz+flHXm9uVwuJxaSk38U6IKEE/0RvElfS65SqcSuJedOGN8aNbn+E0YpE/uNcIiQ5bncQ9FB8XJgvIAL5fByt0Z8RIixG3q39XNh1CECsVrZg9EpFkuYiU1ro0+CUiys6Q1eHY8OTSwnBx0CsoUtwtq+ccaSyiVFubxknUQusr11XKkcVXlezI2VK7W5T2Lz9LIIseXoUkRuWoYEQFAbteBlbSmHdcJIBCV4woXLl0olzsxFgVX/AIT1IyGcWY6WXA8lnSOLH9I53JzYy7i0q+PKYHxr+zzLtbnL6G8Z23jCioEBXi2O15rndecpR161VsfxzYrtpGeO6LZ4ZWmxdWSEV2+nHsqr3fHSM5SjFwtrImS0VOJMllj64q0QIaDDSUWEyOlWB7v206QI8blSKZvc1+HGciBCdBoTIaFJYxg36fly00r9rD105aCHQmMQVzIZMaZhjLCOShhPEWLLaeZzG1uVHMoVHisWOTqLYQFOrywUDKWdh6aXUXqonx3HoenIYxdCP7D2GCuXhRoxFjMu7A4RAjJH0hse3Jmx3+Is0uR0TPOX3GYu5u4reYpkUYSEdh3i9lIrRAjPsPCECA9N6GWUTLcycTTXmAhRPpCh6RPVHhEid0wfD5HlhzxJwfMyRmyHZizmKNOYCFEyeYZlxcCAmJcxFoMIAd0BREgsECE+9JQICe0CwyhCAst0jJxTKpWCGpQOa/Mjg4OD+nSMUklSEdLYdIwx+DoCceynVO6/sUJbWhEhCjyjISZieFKGxxbUovZDs30Akn613R+kB/N5VkfyPIsyhmMrBhECuoOkcw0+4t9WMqO0Zzqmgb0SyRtjP1MkoyIknAmFM/LDx0uaqKhTGrr8MIoQgZIpionbR5V/4Cpp0hK5XI4Vi48ICU03ppL8cNyYavuENyBC5P44jt22LyP/x8R4b6oY+hCDIfK+tlbkbusnyFhYOSPGetT+SYg7TuVbVvT7S/ViRhFCBysfu9E5AHQUjUVY48XTvVd2acONqe4KYy/mxsp9+pki2RUhjPGMgK4MYV15UEZ650hBdsnEk7hml9Rd1JWRLusiBNjovkDWfUdkpEcOE2QdiJBYIEJ8gAgBAACQFIiQWOAiHyBCAAAAJAURNha4yIfOESHUExgMBoPBYD1lHSJCAAAAZIVh/MyPAy7yASIEAABAUhBhY4GLfIAIAQAAkBRE2FjgIh+yLkLwnBAAAGg/iLCxwEU+dLgIcQiM2qZkT0wFAADQPK2LsF1zJYeLfMioCJHlR+i7hK75gbdatb75pVKpv7+fK8zn8/zIdCPlclk8v52Kib0o4dhLgZfr5fK8aO9g9IjvSqUSRM9s95dhzQg2bogalZtusk6CjoVrptehoSHOFI+1J+/Jaf9qZc8zjmV8AQD+NBBhlYtwouttFoGLfOhwEWKjMRFiTHs3VwevW0faQ6Q5Ftt2FzUILSEvOecDrxrDwoOX7uXWed0ZsZSM5+E0/BkWi+iFkUhI2rQRdiDXw/XzUoByPxvrs7KXewU9AIA/SSOs/v3t+ggLF/mQRRFiUyBuHWIUIcrYiBCfihbVIyCPZpRNC7yKNeZYJBhrkwdAuCrOYWVCOfIwC/2Wp3yO1Py7njexgOHV68RivqIJFiq5XI4FA9XA+ofzxeHoK+LRLpxmjcGyh3IoP6wXHrIgMdbJHoitkw9HHl0Rx64T1o9BsXN8PK+rDugQABrGFmEDy5XWWFK+aimvXQBc5EOHixA5tMmZqYgQW467pKNjYS0OioEO1gxyYaENqCRHT47LlC+2iqkHishCloh6OEyz9uCtgaQ9RIIiNW/lQM/lyxGipFARsrSgkixvONBz05TDxyJPwchTM0qdigfcdSrO1I9ISRudE+t5iBAAUiSVCCun3YWzCFzkQ0+JEIFUj1xngyJErjbQ0I+CZAAPAlBmsVgMo6gqwro8OMDBdLC2vDtnspxgMUA/+YN6iWLsW6JM6lIgDa2INMuksKY9WMyI6SS3B9x1Kv5xd8/mnFjPQ4QAkCKJ5hoC02U50K60jsJZBC7yocNFiI2guXtC9BwRsxz5MmJgQRTTo55cie0DJsdo5RYLqpxitLhdUxQLatMNIhYrodwYu/0zZanAXWJEuOcxB/aA6K3bA+46jdMxtu7ZnBPreYgQAFIEETYWuMgHiBA5HWiSQ89h5BtT5QkOHpqg2GqbFDDemMqRl+FYLN8oEtSmVERDHLv5ltRAu43TGLu5Y6UIkWmcjhGdYSUgpI5QXLKKEP9kcXvAXWfSG1ONzon1PEQIACmSaK4h9LsC20pmFLjIhw4XIXIQsWyakR/u82LcKoKpXEY/18bKldsjRTgWt0eKP4eKezw4RBr/oiuGF/gtRW2OqkoxzmGhIt8QEsaJEP8bU8PaTRcsdYTkEFt1yaQ0qnsgtk7K0f+iazwQh3PcnocIASBFkkbYsH7OVM5x75Vd4CIfsitC5AJdcEaU+R3QCvAXXQDSAo8DjQUu8qHDRUgvwCJKHgEArQMPKwMgFRBhY4GLfIAIAQAAkBRE2FjgIh8gQgAAACQFETYWuMiHzhEh1BMYDAaDwWA9ZR0iQgAAAGSFYfzMjwMu8gEiBAAAQFIQYWOBi3yACAEAAJAURNhY4CIfsi5CuuY5IQAAkCEQYWOBi3zIrgipaQ/fJ6YCAABIi9ZF2K65kjfvoq5xhYOMihBZfniuHeNXbUyO/Ezdvr4+8cBwvXuOnpTLZfl55mHt2Vn6A3tTgSqPfTbXcBAMp9EoHgIGQI/QQIRVLnG2C13XRN7WuaibgAiJa0htl5tQFrJPWGddP0XgbsXSAKJytzxIS4TENgQA6A6SRlj9mgYRouDvom4iiyLEpkDcOkTODmbi/k4z5od2ESKnxdpwuVyOH70u69igtmYcb1WE7nBdr9SVjJRXUaH81ri7SDtEyNaRkfv6+kh7rCwUhAjhxAP9/Q9Ey92KMstzubXRoVHioWipO3pL+U9GC9JRzvJoKVtbWwCALsMWYY0XIuNlWf/J32U//1N0kbKLO0cv0Mn0sgix5ehSRG5aHwkR8zJBbVl5RYSUSiVe8VbZGvqJEIfkUDYZS9qmY1YMDJCKGCuXyRQRMlZbR48UyNbo0FiH8F73RUdNKoXlChdbIU0wQYQA0PWkEmHltLtwFkndRbE5tno6md4RIaFJYxg3GcdMRNMCoT0qlUqhUOjv71e0R6h9s/RMz5EQYwf0YvoujvXa5CkYRYSIMpOVyspCgfUG5z9WLFJitFTiHJGmYkqjAIAuJtFcg2eEdRTOIq1wUVBPWB9Q9LedT8tEyFPBPh13T0haIkSpludieGykpSLEoZ+NIkRZuV7RBj4ihOdi5KESWX7wjAwbz8vo7QIAuhKIkFhaJEJsu2dUivSUCAntAiPpdIyeyRMuaYkQRWPomT7fX0WEKDyYz/M4htAVoSZC+O3WkRGRP1mpiPtGwtqkjDyDY2wLANBlJJprCE3Rs2dFSDMucpR3v+1YMipCwplAPCM/fHyuiYo6paHLDx8RwrebLlmyxFOEUPlcLkfpwcFBRYQI5ExjBzw/xjwAYpyUcdyYKsrwWMdDS5bI+ctzOTH0IQZDlEYBAN1N0ggbWmaTY2NrdmneRY4foZ5vO5/sihAmcw7X6bKQ3WWHAwAwgseBxgIX+ZB1EdIddE3g7poDAQC4QYSNBS7yASIEAABAUhBhY4GLfIAIAQAAkBRE2FjgIh86R4RQT2AwGAwGg/WUdYgIAQAAkBWG8TM/DrjIB4gQAAAASUGEjQUu8gEiBAAAQFIQYWOBi3zIugjpgueEAABA5kCEjQUu8iG7IqSxJ6YCAABontZF2K65ksNFPmRUhMjyI9HaMXHVxucUi0VesY7I5/O8kG66KE99D6KFaeitWJ7G8zB9SjqW2QUAABsNRFjHM8mVYs12rjOAi3yACIlrqO4tLxND2oPSpVKJ0iRI0m0xNImQwWihFnpNV4S4V7gDAAAbSSOsfi3q+ggLF/mQRRFiUyBuHWJcPzfpAnb9/f1UP8kPpfKRkREeHsnlciRUwpoAKBQKcmalUhkYGGDpIoZQxMp3rG1CTYRQYdqL3tKrGIRR9qWE0hNuWi8pWtFVB3QIAMATW4SVr8Aibbws6z/53T//Mwdc5EOrRMiCNcG+nS5CbDm6FJGbNtYvRAVLDlGS5ArPoXAmCYAgmlsRQyisDUYiKMFiQxEhLCf4rSwteN+hCKFDWOSUI5SSSisQIQCAhkklwsppd+EsAhf50DsiJDRpDOMm45iJaNpYf6VSIXnA4ySyflD20ncPNPTyPO9TLBZF2rMJJVNpBSIEANAwieYafCKsu3AWgYt8yKIICRu9J6R5EWKbjuEZEHnwIZEI0Y/OqEaMmY4mHO2GECEAgCZAhI0FLvKhp0RIaBcYntMxfGuofmMqR3nx75XQIgb06RjOoWod0zFhbZJF2WqcjuEKSxFKu0orECEAgIZJNNcQmuJm10dYuMiHjIqQcCYWz8gPn/OiTa/UKQ1dfuhVUsQX0y4UzflWECED3CKECjtuTGVtEJpECM/F0KtScwM3popWIEIAAA2TNMKG9fPCco57r+wCF/mQXRHCKOcLJAJ/0QUANAYeBxoLXORD1kUIaBI8rAwA0ACIsLHART5AhAAAAEgKImwscJEPECEAAACSgggbC1zkQ+eIEOoJDAaDwWCwnrIOESEAAACywjB+5scBF/kAEQIAACApiLCxwEU+QIQAAABICiJsLHCRD1kXIXhOCAAAtB9E2FjgIh+yK0Iae2IqAACA5mldhO2aK3kmRMise7sNImS3Tlo7Jq7a+JywtowdUalUbFWVy2X9Mew+yDs6wEPGAACzSAMRVnkmue2qOOthMS0SuSiox38vR9qnnln3NkRIXENqjlilLogWj3P0sLHO+OyIx60DAGaXpCJEv6xBhOgkPXa3CGlFi6mTRRFiUyBuHWJcP7eBBex4YThel5aX0yUqlYq8Mp0u+FmxBLWV5sQCuGK9uVwuxwUUJSwWnhNtYeE5AMCsY4uwxlBovCzroyL+v98zQSIX2d7K4UAPED4jIcYBFmNVxprdJ7F5elmE2HJ0KSKTiyDVwcqBM1mTsPwgURGaVtHlXXgrCw/KEcvpitp0BTISEdQWwIUIAQDMOqmIEDnd6mDXfpoUITZRoWx1qDjbXolyIEJ0GhMhoUljGDcZx0yYUqlE9RcKhbB2Z0i5XA5Ncyi6CAlr2oN2EWqEdAjVJm4yMe6oSFaIEADArJP0hgd3piMuZ5cmp2M6QYQYq02XLIqQ0K5D3F5qXoTwiIcMCxJPEcJTOTxxw/MysiyxiRDlKCBCAACzDkRILBAhPvSUCAntAsNzOiaozYkQfAtHf39/6DcdE9YGUhhKi03iNhJlR652cHAQ0zEAgI4i6VyDfnHuWRHiONgGREgDeyWSN8Z+pkhGRUg4E6xn5IePlzRRUac0dPkhlycxQE0Ui0V+y/d4BNGtHSQS5BtTw0ii5HI5lhC6IBFvxd2qIlPeMZRuTBXiByIEADDrNBZhlQug/OPLtld2acONqe4K3QLDVrlPP1MkuyKEMZ6Rrgd/0QUAzC6ZeBLX7JK6i7oy0mVdhPQseFgZAGAWgQiJBSLEB4gQAAAASYEIiQUu8gEiBAAAQFIQYWOBi3zoHBFCPYHBYDAYDNZT1iEiBAAAQFYYxs/8OOAiHyBCAAAAJAURNha4yAeIEAAAAElBhI0FLvIh6yKkN58TAgAAswsibCxwkQ8tEyFPBft8pwOfmAoAAKB5Whdhu+ZKngkRMuvezqgIkeVHorVj4qqNyZEfdctL1zVDuVwWD2NPJKLkHR3ggWYAgBbRQIRVHhVuu+LNelhMi0QuCurx38uR9qln1r0NERLXkNouN8ErwjSpQxoevfHZEY92BwC0jqQiRL9kQYToJD325pd6mXVvZ1GE2BSIW4cY189NtIBdqK2NywvmhtIyc/l8nnNGRkZoK+XkcrmhoaEwWvBOXuRO/1FAiPXsRJ2Uo1Slq2W9dSxyBwBoKbYIawyFxsuyPiri//s9EyRyke2tEnT0HEe1cnBRfroaqzLW7D6JzdPLIsSWo0sRuWnllIU1DTASEdSWuxXL6bJ4oAQpBC4m1IteG6/My1tZeFCOXpWuQJTWIUIAAC0lFREip1sd7NpPkyLEJiqUrQ4VZ9srUQ5EiE5jIiQ0aQzjJuOYiWhaFyGBRhiNexQKhf7+fqVYbG2sPcrlslAj7qqMrUOEAABaStIbHtyZjricXZqcjukEEWKsNl2yKEJCuw5xeyl1EaIPaAhkLZFIhJDeCKIBjaA2L+Ouytg6RAgAoKVAhMQCEeJDT4mQ0C4wkk7H8I2pxWIxrM2zUI48IcIlxb0fod90DCVKpVJQg9LGquQdja1DhAAAWkrSuQb94tyzIsRxsA2IkAb2SiRvjP1MkYyKkHAmEM/IDx8vaaKiTmno8sMoQoLo3gz5rzHi1lDxz1lxi6noGIkE+cZULkP1sITQBYl4q1cl72hsHSIEANBSGouwysVN/mFl2yu7tOHGVHeFboFhq9ynnymSXRHCGM8ICPEXXQBAK8nEk7hml9Rd1JWRLusiBDjAw8oAAC0CIiQWiBAfIEIAAAAkBSIkFrjIB4gQAAAASUGEjQUu8qFzRAj1BAaDwWAwWE9Zh4gQAAAAWWEYP/PjgIt8gAgBAACQFETYWOAiH1ooQvaFCAEAgO4EETYWuMiHrIsQPCcEAADaDyJsLHCRD9kVITXtkeyJqQAAAJqndRG2a67kcJEPGRUhsvzwXDumpWctqKcNDfGD38WCMq1rNN1DK5fL4tnyzLDp8fhS6002GM9Yubyivkv1HYg/dtumht2VljeGg2DYvo/Y6vaAm3Q/eEpt7v67WTs0tDyXo93p0JqpR+pMkxV0Gw1EWOXblPoXp9OAi3yACEmFto3DiM8nrxojFp1ptQhpUW2xF/Y2ONUdoeTeJvVD6ielRSKkmRjdsSJE3jcVERJCh9STNMLqH5Wuj7BwkQ9ZFCE2BeLWIbKwNP68teWE0hm3RXw9k3P6I8JoyKKvry+IVr4bGhqSC3BmsVjk9XBFgVBamY42ydVSVTyeQK9crWhd7EIJvW8iXSqVuOkgWvaOx1UcLYrjEqvpicLcW9uOhUJBHJTidvmSLpYLlJcUVJYXFDy0ZAmHlQejtug3L6UfirrEm9ZGXVKKhbVgtLJQoFf6mcw7ClObqR2FnlY+BsYPlfGjInfgvr6+rTW3a436ekPuPx8C1Uk1i1bEcdm8Ydud/WPsXqh9NYxe8vGYsTbl6ML6U6wfywP9/ZRmZ9KrflCOo6McHioRdVLmaKnEdfJAinyaoEMEtghr+wAYSxo/SMbCWQQu8qEHRYh+AQxNnwr3FVJpJahH5JTLZS4gVs7liCwKkBioVCpKmgtwWB+JCGor5HJJjuz8ltP8VqgCWSooF39O8yK81BxXzkrJ0aKAe0iHwwfFOY4d6aA4Uz5q7oxRhDhyGA4WFBc43FCMmKxUOKbTVg4xlKMXC2vBiEIMZy6PupR0JMSW4y5ZO+RqW2PlMpnolalRX28wcozmkCqa4ENzeEPxgJBGwj8On8R+mxyeUcoombK7jApEPhYusDJa1Zqll5CXcj3GoyMZw+6iT4UoxvM49CniJh6Ivh21qsynoAdJJcLKaXfhLAIX+dCDIkR+G2rXQP26GtZfOeUycgF3DkVqUgti8CHUPlHGC7veoojs9FosFkXaUacxUx4G4Zkdd4vyobH2IH0V1NRI7I7GzMZEiPH3O2sPDrusRozFjIEpVoTIBxWmIUL0tNaorzfC6Lc8BU0RKB3HaPOGvAtFXorjYhzA5hM9rbsi1mOO2uT+sz1Z+5Qaj4U8IFSori1FWj86YzF5GES0WytjdEkvkmiuQf8uhN4fg+wCF/mQRRES2nWI49TYLow+EcQWU+QCylYlRw7cjhgtp/U69a1Kydh65DR1hnQRd0zWErGHxmMvpF4C02CLcUdjZ5oRIUom//4V4+q2Yo2JEEdOJ4gQipgUdsWUgf8x2kZChJzrEBFCJ1RoDNuxPFYsKmMmtpEQ5ehsZ4TK0IeKy4umQ4gQCUTYWOAiHyBC9PzYnFD7DOhRWMnht+LPLEoBY5pvERkcHNTnOMLobhA90zgdwzMvVIk8ZsIjIcoMkbtFgagniMZhfHZMUYTw+Dn9PpVnFsRY+nA022Ir1iEihHrFcVDcnqE14esN+R4Y2T/kBHl+we0N3S3izgq3T/QPuWfauFX/pIk+8GGORZObxmPhKTk2ShsPynh0YjqGKlRGQozTUhAhgkRzDaHfV8lWMqPART5kVISEM5esGfnhPi+6tNATehljjvGjomQqOUIVGMOxLS3Ki7+1iq08F0Ovtl3EjanUNOsQ+e6RSqXCyiGIbgjRb0xVWlQOXPeDo6tyWnRmsHrNl90186rk2CLvcP09FfLgvK2YMTCJ/3LywLsSZYwfKt0bSkn9FMuNinEbafhCqd/XG+KoxeHE3piqe0P2gBhMqPeV2QPGozb6zegxd21yD1lQ6Temyh8Azow918rRGd1FMobFyXB0QwhuTDWSNMKG9RcTOce9V3aBi3zIrghh9GjYCrrpjHcUHXhJb2mXbMMLHegHmQ7vHiPuyE20F6kvFp/y7c02MuGHtoHHgcYCF/mQdRHSOnRFClpBp13YIUJ0Or57AesHx3+KbYyWSjwSog96aK001cnuAxE2FrjIB4gQAAAASUGEjQUu8gEiBAAAQFIQYWOBi3zoHBFCPYHBYDAYDNZT1hIR8sE1GAkBAIBuZRg/8+OAi3yACAEAAJAURNhY4CIfIEIAAAAkBRE2FrjIh6yLEPyLFgAA2g8ibCxwkQ/ZFSE17eH7xFQAAABp0boI2zVXcrjIh4yKEFl+hEnWjmkRYkCGn38u1ohpXaNBPU3WVi6XB+qXlR/Wnhxe33qTDcYzVi7bVroP/R4lZ9vUsLvS8oZ7tRqx1e0BN+l+8GxPU28A8Yh4fsBpw/VInWmyAtAgDURY5Wub+je004CLfIAISQXxsRmMHgFNr+0RIS2qLfbC3oZvgP+6ckn9kPpJaZEIaSZGd6wIMS7p0iTQIbNC0girfya7PsLCRT5kUYTYFIhbh8jC0vg72pYTSmfcJi04s6+vj8cT6JXSckl9XTl5q0iXSiVe3zaIVoLT15XL19ZdVbohL5sr1tJ17MiL2eVyOd5RPi7junLC5LcKYl0wXhxWXlddXuxVKRbWL+tGP5N5R31BOv1sKmnl7BjPtfEMyh24r6/P9uxuf280sK6c4g3b7uwfY/dC7RNr9JKPx4y1KUcX1p9i/VjktWjFwrXyQTmOjnJ4qERebG60VOI6leX/QuiQ2cAWYW2fNGNJ4yfWWDiLwEU+9KAI0a+0oelT4b4UK63IkZ3fykvWClUgSwXl4s9pXmG2UqnwhA4JErH7SERQW6Y2qId2CSIVRJtY/1COY0dSO5yZi5YplzvjubitAgcLigtigXV5RTAOMZSjFwtrwYhCDGfyyulJR0JsOe6StUMOeO0zMmVt1vpGfb3ByDFaLK/GTfChObyheEBIo+H6leWNPon9kDs8o18S5UzZXUYFIh8LFyDRRVtZegl5KddjPDpexJZ8xevncjGex6FPETfxQPTtqFVlPgWgdaQSYeW0u3AWgYt86EERIr8NtYutQ3IocV+pnCM7vRaLRZE2XtsdmfIwCM/s6O3quzOsPcrlclBTI7E7GjMbEyHG3++sPTjsshoxFjMGplgRopwI4/ly5Oud19Nao77eCKPf8hQ0RaB0HKPNG/IuFHkpjotxAJtP9LTuiliPOWqT+8/2ZO1TajwW8oBQobq2FGn96IzF5GEQ0W6tjNEloIUkmmvQv3Sh9+ctu8BFPmRRhIR2HeI4NbYrsE+osgUvuYAczZXIHhv35TSpiEKhwIpC1hK2FgU89kLqJTANthh3TF2EKJn8+1eMq9uKNSZCHDmdIEIoYlLYFVMG/sdoGwkRcq5DRAidUKExbMfyWLGojJnYRkKUo7OdESpDHyouL5oOIUJmA0TYWOAiHyBC9PzYnFD7DIgyrAHkiY/QMh3DMy8jIyPymAmPhPCtIEFtriSfzwfRLa/6rIrcB1FPEI3D+OyYogjh8XP6fSrPLIix9OFotsVWrENECPWK46C4PUNrwtcb8j0wsn/ICfL8gtsbulvEnRVunyifDf+0TcYYRYg4THKa7Vh4So6N0saDMh6dmI6hCpWREOO0FERI+0k01xD6fWdtJTMKXORDRkVIOHNtnJEf7vPiFiFShfE5xo8KZ/JcDL2G9Vdv/cZUEiSsQ+S7RyqVCiuHILohRL8xVfyRNqjH1j3bjkpadGawes2Xj2vmVcmxRd7h+nsq5MF5WzFjYBL/5eSBdyXKGM+17o3Q9M21RVUxbiMNXyj1+3pDHLU4nNgbU3VvyB4Qgwn1vjJ7wHjURr8ZPeauTe4hCyr9xlT5A8CZsedaOTqju0jGsDgZjm4IwY2ps0vSCBvWX7XkHPde2QUu8iG7IoTRw24r6KYz7kMHXtJb2iXb8EIH+kGmw7vHiDtyE+1F6ovFp3x7s41M+KH7wONAY4GLfMi6CGkduiLtKTrtwg4RotPx3QtYPzj+U2xjtFTikRB90ENrpalOgoZBhI0FLvIBIgQAAEBSEGFjgYt8aJkIeSrY97sQIQAA0JUgwsYCF/nQOSKEegKDwWAwGKynrENECAAAgKwwjJ/5ccBFPkCEAAAASAoibCxwkQ8QIQAAAJKCCBsLXORD1kVIL/+LFgAAZgtE2FjgIh+yK0Jq2sP3iakAAADSonURtmuu5HCRDxkVIbL88Fw7xq/amBwx8MIPVOc1WVqqf4J6bMXK5fKAZQF6B8OB2oSjG4nyE5Gu92zPGG8A8eB0fuxnw/VInWmyAgA6hQYirHKpaelVpROAi3yACIlrSG2XGYyeKU2v7REhaRWTEQFR3jFpJd0tQmxruTYDdAjoDpJGWP1r3vURFi7yIYsixKZA3DpEX3csrC09Jr+V80OLCOnr6+NhB3qltCwA9IXq5K0iXSqVeMHcIFpaTl+oLl9byFVXF5zDy97lcjlemVfRQrZ6+iNCdalcgwhRKhSyXFHpevfkxeDu6+tzPHBbrsfWDZ8uGWtT+hNKq6RxvlgujdfMlVdoFcu5yivQ6WurLc/l+IHklMNDJfISbKOlEtepLIoXQoeArsAWYW1fXmNJ40WgayIsXORDL4sQW44uReSmhQDgt/IauBz6hyKCmg5R4ianecnaSqXCEzosDHj3kYigtu5tUI/IIRnDxXLRguZyK456yrV1xNwixJbjLlmrOeAFy8iUBVUVTyo+cagLW9P691fOlPtjVCAkDMS681yAtBNtZQXFOfpIiFBWYjV5se48ryrLxXgeZ7JS4SYeiE6x7nwAMkoqEVZOuwtnEbjIh94RIaFJYxg3GcdMRNMsAOi1WCyKtDEsOjLlYRCe2RFbjZJD70NsK+56FBEilwxDw3fEoQQUJ3tOYTi+hsYW3U3b0qIPbE/WXK0MdAjZwKu10iurC+OxkK4glSJGOWzF5GEQ0W6tjNElAGSJRHMNPhHWXTiLwEU+ZFGEhHYd4j41aYkQkVDiu78ICaNbSQuFAs/m9EWxT9cbxsxErdjqsY2E6DndIUIeWrJEaAxbxx4rFpUxE9tICI97uEUIQWVIrnB5eTF6iBDQBSDCxgIX+dBTIiS0CwyjCAks0zFhdDdIUD/TEVqmY3jmZWRkRB4z4ZEQvhUkqE2p5PP5ILrlVZ9GMfZBTsuZPvW0WoTQb38O0w/WbkqxNaF0zD9tkzFGERLWpmDGogkpnkChTorpmDAa4hADI5QOLeqCE+K+kVCajqEKlZEQZeKmVpXRJQBkiURzDaHfdcZWMqPART5kVISEM+FmRn74nBdNVNQpDV1+2EQIz8XQa1gf+PQbU0mQsA6R7x6pVCosFYLohhD9xlTxf9ugHqU5kRat8OSOrR5xIG4RIrcrlzEqAWPQ59sq5Bsy9cgrH5GxM0rNxi65awsl8cA3bOg3psp3rXCmyDGKEDFUot+qykctZm1YnPANIbgxFXQZSSNsWH81k3Pce2UXuMiHNoiQ3fHE1I6kRaHQNgWTicjLf3IZq92+68nyXI7v+uCxFHnmRScTfgAgFjwONBa4yIcWipB9vtMGEQKaoRUBMaMihLtN+oH/dZuI0VKJR0L0QQ+tlaY6CUDngAgbC1zkA0QIAACApCDCxgIX+QARAgAAICmIsLHART50jgihnsBgMBgMBusp6xARAgAAICsM42d+HHCRDxAhAAAAkoIIGwtc5ANECAAAgKQgwsYCF/mQdRGC54QAAED7QYSNBS7yIbsipKY9kj0xFQAAQPO0LsJ2zZUcLvIhoyJElh+J1o6JqzYmRwy88IPWeXGWluqfVrc4HNS14qjWtimVnqTrQNuT2xtg7dDQ8lyOn+XeTD1SZ5qsAICOoIEIq1xnWnpJ6QTgIh8gQuIaUttleIkWem2bCGlFiyIgNrMqQXeLEM9FgRPW2XwdAMwySSOs/h3v+ggLF/mQRRFiUyBuHSJnKwvVJV3Arq+vjxeGo1dKy5JAX8BO3irSpVKJF9INojXm9AXs8rXFZ5O2KC/gK1b1NdZsW8NO6a38Vs5U3spektewu6+vz/EYc7keWzd8umSsTelPKK09x/liETpe6lde91YskitMrkesWLc8l+PHvFMOD5XIC9uNlkpcp7KWXwgdArKPLcLavrnGksYrQNdEWLjIh14WIbYcXYrITQe19XD5rbw2rgj6shJQgianecXbSqXC0yskSMTuIxFBbQHcpC1SnUEkWmgryxXKMdbsFiG2HHdJhsPuWLlMpixTqzhTcYtDXdia1r/CNlFkVCAkDFhvUCe5AGkn2soKinP0kRChrFiHUIIXzKXj5bV6uRjP40xWKtzEA9FZrlVldAkAmSGVCCun3YWzCFzkQ++IkNCkMYybjGMmommiVCrRa7FYFGljTHRkysMgPM8itso01iJrj3K5LNSIsWZFhMibQu3Dr7zq+TKeUxiOb6KxRXfTtrToA9uTNW8rAx1CNvAauPTK6sJ4LKQrSKWIUQ5bMXkYRLRbK2N0CQCZIdFcg0+EdRfOInCRD1kUIaFdh7hPTVoiRCQUJeAvQggSCYVCgQWDLBX0I03aIg+VkLwJTKMxAttIiJ7THSLkoSVLhMawdeyxYlEZM7GNhPC4h1uEEFSG5AqXF02HECEg+yDCxgIX+dAGEbLb/NUdIkJCu8AwipDAMh0TRvdmBPUzJqFlOoZnXkZGRuQRDB4J4VtBKJGLfnTn8/kgugFVn45J1KJoKIiGTWw1t1qE0G9/DtMP1u5CsTWhaCT/tE3GGEVIWJuCoV6FtQkU6qSYjgmjIQ4xMELp0KIuOCHuGwml6RiqUBkJUSZualUZXQJAZkg01xD6XWRsJTMKXORDq0TIgjXBvt9tnQgJZ2LNjPzwOS+aqKhTGrr8sIkQnhmh17A+6uk3ppI8YB0i38tRqVRYGATRDSH6jakDtfsoGmhRFJAdotfsFiF6JQ4RYgz6fFuFfEOmHnnFvp7fNWOX3LWFknjgGzb0G1Plu1Y4c8WMlwwiRAyV6Leq8lGLWRsWJ3xDCG5MBd1E0ggbSt9f/SdDV0ZYuMiH7IoQRo+2wJ8WhULbFEwmIi//yYVHS/xZnsvxXR88liLPvOhkwg8AuMHjQGOBi3zIuggBTdKKgJhREcLdJv3A/7pNxGipxCMh+qCH1kpTnQSgQ0CEjQUu8gEiBAAAQFIQYWOBi3yACAEAAJAURNhY4CIfOkeEUE9gMBgMBoP1lHWICAEAAJAVhvEzPw64yAeIEAAAAP9/e2f7YsV1x/F5UUgoFC6lFKEo/gEtmCIUAsr2VSl90U0R8i4o5FXftARiX/jmEhJCE8wSjCZacTVCkheb3vjCkLa6lyBpU9T1AfNgUFcTV93tJj5F14eE6W/vz3s8e57mzMydhzP3++WDzJ4998yZs3vv+TgzOydtMMMmBkPkE0gIgiAIkjaYYRODIfJJ6BKC54QgCIKUH8ywicEQ+SRcCem7R7onpiIIgiD5U9wM25hP8vxD1JihcCRQCZH1I9XaMUnNJpT4q454WvvIyEi321Uew875c2/V+IFnIlJ3ZKtp+9ZAfvMH+/axPYk9Q86Pj+9rtfjZ7HnakTqTswEECS8ZZljlQ6nQz586pLghalIgIUk7UvfruQvjw//l7bGxsSI8REyIeRYaaLaEeC7ym7LN/G0gSEhJO8PqHwiQECX+Q9SkhCghNgNxe4hcrCxUl2EBOyViebjR3oqxkSWxJiQr+4uM6OvQtVot3uYVcsd6S5NQCS+5K86lRL1FeMd7Txq3rUmnKJD8pdJbvQ5HXpPu/ZUrHY8lVxze5kKJXTK2pvQnltaS43KxqBwv3SuvYysWvRXI7YgV6Pa1WvzYdirhUyXyQnUznQ63qazNF8NDkCGLbYa1vc2NNY0fF42ZeQc4RMpL3CXGz/DaZpglxFaiq4i8a7199odjvUT9ZWr1XwnHNrcw3kvU9xBqhxVl1apVUW+xXdqmErn9TqfDO2UzcUuIrcRdk8PT7ly3SyjLzirjoxyawy5su9bflfqwc3+MBkJiwL5BneQKx3unm9iguEQ/EyLMij2ENngBXDpeXnuXq/F1nFvT07yLA70fSr8p45AgSDMzkBlW3nZXDjEDH6LEEls7dU4JEvLoY6frICGxyTGM3zKeMxG71tuPtMTae8q9bSxst9usGaJZ3uYrOMaXKBIi9ye2//b6S4i+rQ+Fvq3vK7FLjtbkPjC8fK1SKGsDr2lL/+57oGqGYyGvIEsRZzls1eTTIGK//TrGIUGQZibVtQbPGdZROcQUMUTuuUb/sv4pUkJ2FyQhsd1D3INfqIQ4Ch3bfK7DWEHWDz5DwuHrMj4SondJ2Q5dQg6vXy8cw9axT9tt5ZyJ7UwIn/dwSwiF6pCucH2x6xgSggxZICGJKUhCbC8PVEWGSkJiu2AYJSTyuxwzOjrKbpDqcgzfmNput2PL5Zjp6WmuzBdi+KIMpdvt2tosWkLo//48TfMdF3qMh2zchbtL7tZiyQr4Esxcb0z4Agp1UlyOiXunOMSJEdqOLXbBG+K+kVi6HEMNKmdClAs3/aaMQ4IgzUyqaw2x3yeSrWagKWKIHPXdX9Y2gUpI/HBieqgfPmOuScUS09D1wyghcrhc3Faq/Ckub4s/12Xx4FCJ/Kcx+o2pce/e1Kh/6kOcDNHb95QQuf9yHePvuXHS59sq5Bsy9ZlXvNbzjWbskru1WJIHvmFDvzFVvmuFC0WJUULEqRL9VlU+anHVhuWEbwjBjanI0CbtDBsv/fyUS9yvCjf5h8hY0ziGti/rn3AlhBPcgBedgqZC2yWYIGZe/iMXPlvin32tFt/1wedS5CsveoIYBwQZYPA40MRgiHwSuoQgeoqYEAOVEO42+QP/1W2qzHQ6fCZEP+mh7SVXJxEkxGCGTQyGyCcsIWmJISEIgiBDHMywicEQ+URIyM6Jg8/v2E8+YIO+S3UgIQiCIAhm2MRgiHzCEkJ2QXxx/tL81RvGalRO3+VqBUkI9QQAAAAAQwVpwPM79pNjTB6fdzN18ijVxJkQBEGQIc8E/pufFAyRT1hCFo3i6o2Dx+bcnD17kt0jhoQgCIIMcTDDJgZD5BMhIbR9YGrWzQNdgYQgCIIMdzDDJgZD5JOlEnKF+N1Tf+ENgSipoYTgOSEIgiDlBzNsYjBEPpEl5F9HL5NvMLTNyCW1kpC+e6R7YiqCIAiSP8XNsI35JMcQ+USWkH8euUQI61C2ifpIiKwfqdaOSWo2ocRfdcSj2kdGRrrdrvI4d4782HbvHho64NOriUjdu2MXqcpTZbDvHduz3DPk/Pj4vlaLn+6epx2pMzkbQJBaJ8MM63gmuVItb+fqEQyRT5ZKyAwj3KNvIA/KGy8hph2p+/Xchf4wf2Wb15FJ6yHZJERMiHK1tGPVbAnxXCY4ZZv520CQmibtDGv84PKsGWgwRD6RJeQfhy8KhIHIhdkk5JFfDlhCbAbi9hC5WFmoLu0CdnrjYvm50d7yspElSgu0sbK/Iom+gJ1RXXiD1IVfe6z3LHG5ptKT2L6qndK4/KVyCHqdfssPV7V7f+VKx4PN5XZs3fDpkrE1pT+xtBodl4tl6XjxX3klXLFsrkBuR6xht6/V4ge/UwmfKpGXupvpdLhNZXW/GB6CNDe2Gdb2jjbWNH4yNGaGxRD5ZKmEfCXTM5AlJSkkZO2ZaPmemkuIrURXEXnXevs87x/rJeovpGtUCNs2tzDei/AQh4R0e9H3ZeyJW0JsJe6aHJ5257pdQlm4Vhk0/SiMLTt2rb9VbVJkNBASA/YN6iRXON47B8UGxSX6mRBhVuwhtMFL6NLx8uq9XI2v49yanuZdkJBIXTIOCYIEn4HMsPK2u3KIwRD5RH5OSHfqnJsUzwmpn4TEJscwfst4zkTsWm8/0hJrvzDu7UEVGnuiSIj8rf5gygObWkL0bX189G19X4ldcrQm94HhBXCVQlkbeFVc+pftwngs5BVkKeIsh62afBpE7LdfxzgkCBJ8Ul1r8Jlh3ZVDDIbIJ/ITU/9z4rSbFE9MLVJCYruHuH80hUqIo9CxzZdjBishSk9sZ0L0kmZIyOH164Vj2Dr2abutnDOxnQnh8x5uCaFQHdIVri92HUNCkOYGM2xiMEQ+mZDWjiHHOHv2pNETqJy+m2LtmFpKSGwXDKOERH6XY0ZHR6lwbGws1eUYvjG13W7Hlssx/Mc11Gan01E0g17Ll2PkW1BsPSlaQuj//jxN/7t/F4ptF8ro+W/bNMYoIXH/Egz1Ku5fQKFOissxce8UhzgxQtuxxS54Q9w3EkuXY6hB5UyIcuGm35RxSBAk+KS61hD7ffjYagYaDJFPJgpaRbdgCYkfzkEP9cPn56JJxRLT0PXDKCFyuFzcDqr8KS5viz/XZfHgUIn8pzH6janiVXwbqiwhPjemip64JUQ+KLmO0QSMkz7fViHfkKnPvHL/jZ1RWjZ2yd1aLMkD37Ch35gq37XChR8+HCWDhIhTJfqtqnzU4qoNywnfEIIbU5FhSNoZNl76+SmXuF8VbjBEPhESkoq4BhKCIAiCIMhwZrASAgAAAADgz6AkBAAAAABgIEBCAAAAAFAJkBAAAAAAVAIkBAAAAACVAAkBAAAAQCVAQgAAAABQCZAQAAAAAFQCJAQAAAAAlaBIyKOPQUIAAAAEzGenDp04evDIxx8EBHWYut3sYzGyKCFrzkQrdkNCAAAAhA5Nf8RTf3rh8SeeWbZ6QxCsWbfx6Wc3X545vXD7WlOPxQYkBAAAQGOg/4bTrE3s2H1gonN0cvJczXn3vamdb3Zp4ibu31swHsuh/564cPFK1SvAJOfLmdmPDp8yHosNSAgAAIDGcOTjDx5/4hkykF27pkLhpb/uf+7F3WvWbaR5XD8WMpCq5SJdXt36mn4sNuogIZUvrDOcVP5ZAQAAA4cm7mWrN0x0jtLkXvVs7BuSkJc3v0XdjjUJocILF698//13AbFr1zb9WGzUREKq/hUYukBCAACNhCfuyclzJCHfBRKSkK1bJmwSQoX3798LiIl3tkNCEHcgIQCARiJLyL17d4MgUULu3r0TEJAQJDGQEABAI5El5M6dhSBIlJCFhdvVEkWRf2VICJIYSAgAoJHIEnL71rf5ifqRS4zbmUmUkFu3bvoTSUn1Qneb/pVrKCHUf8d3ISHlBxICAGgksoR8e/N6Tmjy0rf1jZwkSsjNm9c9oS75Vy6o2UIlJFqa+STBEK9yfBcSUn4gIQCARiJLyI3rV/NAM5exRP53ICRKSOYOi3KO8qVc31bH3bKRoiUkw28FJKRugYQAABqJLCFXv5nPA81cxhKenXM2LpMoIdeuzvtAvfKpIFfTS3wquClZQsT5EPn0iPiWXqgDCSk/kBAAQCORJeTr+dk80MxlLOFJLWfjMokS8s3Xcz5Qr2zlIko1vUSpb6zgppLLMYp7GEtsQELKDyQEANBIZAn539zlPNDMZSyR/x0IiRIyP3fFh8Wp1lnI2+4SYzvGlm1UdSYkscQGJKT8QEIAAI1ElpDZyxdzQpOXvq1v5CRRQuZmZzyhLjlKeNtd4lPBDSQESQwkBADQSGQJuTxzIT/izL9cYtzOTKKEXLn8lT/y1QpjiSiXt20vUar5AAlBEgMJAQA0EllCZr6aDoJECbk0cyEgskjI8sFLyDxuTK1xICEAgEYiS8i5M58EQaKEVK5JqShUQooAElJ+ICEAgEYiS8jnnxwOgkQJqVyTUlH0mRD9D2RyAgkpP5AQAEAj4Yn73femSEJOTn0YBCQhm1952yYhX87MVq5JqRgffwNnQhB3ICEAgEZCE/eadRt3vtmlmT0gXnhp78iTm2JNQuhYPjp8qnJNSsWW11/Xj8UGJGQ4AwkBADSSE0cPPv3sZuK5F3e/vPmtrVsmas7mV94mA/njpm3E/XsLxmN5detru3Ztm3hne80ZH3+DDMR4LDZqIiGgfCr/rAAAgIHz2alDly6epol7zbqNy1ZvCIKRJzfRrL1w+xrR1GOxUQcJAQAAAAYFTX/03/CqzzenC3XYOGs36ViMQEIAAAAAUAmQEAAAAABUAiQEAAAAAJUACQEAAABAJUBCAAAAAFAJkBAAAAAAVAIkBAAAAACVAAkBAAAAQCXoEvLjP8ywhzzy+7kMLDYIAAAAAJAIGcgvJmUJ+dFvvmitm/7hb0//4NefZyBaezYj1JP6szYTa85mpcyjy9rJbGMSxO9JyZ0se0wy/1o295c54w+u5E+GMkey0Z0M4wdX8jsu8+6ydvJXx6OfH4hW7F2UkJ/+PVqxu8ee/kaZ7MlEuZ1cXi5ldjLj+O8pe3cZx2RPFsr+Zc78IyiR7O+dbLsrmXI/T9DJQCn1vVP+u6Dkd9zexY2f/W1RQn6yffFfAAAAAIBy+T8iNC2F) -&] -[s5; &] -[s5; You can select one or more virtual methods to override in the -current class. After pushing the `"OK`" button, declaration of -virtual methods are inserted at current position. Definitions -of virtual methods are placed on clipboard so that they can be -inserted to the source file (.cpp) later.&] -[s3; THISBACKs&] -[s5; THISBACKs tools provides assistance with binding Callbacks of -current class and its members (usually but not limited to some -GUI dialog and its widgets) to methods:&] -[s5; &] -[s0;= -@@image:2271&1659 -(A9cCEwIAAO39AAAAAHic7b0JmCRFnfefMyMMun99VdTFlWNRQRbRZZAFBYb7kmGQazgEhkOGY7hkQEBAWa/19Xpfr/VgXZX1/+6rC+rqo+uyiMf6d9ddQGDUsRhriqFnanqqe+hperqrmwGsf1TmTBKdEfHLyKw8In/5/T7fp5+sqMiIyIhfRH46K6uy15slb9FDc05+RNg74fd9n9TY5lPXemc84b1zvbd0OPg75+IRb2nHe+ewd36nv3H+dp8zCsNOegyGXfS5G2HYOUcXz9nL6WmB2/2/i4b9jba/IV76KYvWecev71ts9F8O99OPH/GOWDk+3pMdKmCPHS+fnL/iuZ1v7f3ZB/t+3Ud6b/hUb8Enews+3zvkM30v/Nu+j/ii0UEGGHbNRNDCcIkufWrAsNZqoAYMEP41uc8Msy1YQligxY5XPys4xFvwHxEIEfgx94KOIJC5Vz81/8Y/ipwhh+z5sb4Firzx089bMElgORGGYRiGYQYWJ/3A8suAJYKrEwEbhBaJ8suAH0IHUCE8/7rnhL1ztniHrgwhxDvqv71Th7wzVs9ZNirsXf5kYAEk866dmnfdVoEl3g3PzVvREw62xd8wMdgIEne8/o/zV2zLCcMwDMd6ztV/hGHXHERmcJYPTvGB5yzfOnfZ0/OumJy37Kk5F015F0547/T/njchXm5LuWhsm8/f1P8rUpaMbPscR6QIn7nOO+Y33sLm8xCy6CHvnY8/76XD3iWdAEgEigTuA4nB/XdFk0IvewqGYRiGYT5+16a+Lx6dc/HI3As6wv2bQs/Z0PeS9jYLugh8xhN9n7pWeM7ipndSs39zaXivqSCQgx/wdrlbQIh3wM/77woIOWP1NkscEqLINl858bzDxMuf7OeRyQeGXXQHhmEYtrVgjIgD3lAYYztmbIeN0AF1COQQPmKlt/DBbRYEIthD+JVf37Zx1H/3vxFjgJDQEfDop4gMwddklkptDtAIhmEYhuG03uGd7cu+MNp+8plecokdxe4ZlPP50R3O3naJY4fThy777Mb2plTlfPTxHQ718WPBf/SpY98feXvf04eQ1/+jDkLWayEkBA+JPYb9L+0Oz8KP8MoMDLvj8DohDDvl4J9KGFZ82ec6zfZzN9w5c9Enp5d8uLv4/d0Tb506+qapY2+ZOvyGbT70+r7fcvWk8P7LJ/e5dHKPCzYfePnalX+YELtnU87nR/rlnNonkK1PNEc/cUPntouGr1+yYfni9mUnrr/46PXvOnb9hYcHXnf+ocJDZ72l7zP2X7t4n+ZxezxyxoGbGysFh/QJJICQ197bx4+XvM/b5e7+y4UPzj0uCiF9zAhgI0SRi0eeT1w6+3JNCG+lz2gYhuEKuewzHeyse73eTV+Z+fR3n/7895/+yP+dec9XZq794swVn52+7NPTl/yv6Qs/2ffST0yf+z+7Z32ke+oHu2+/feqI90wdcNXE685ft//5v2xveiazck4d8k5dK8rZ9KmbNn/j0+P/+PmxOz8y+qn3jHz02pEPXNG547LO7ZdsfO+FvpdufM+5wyvO2nDtqe0r3r7+oiPWLjngkeNf9y+L9m+PbN12JWS/X6kQ0v/gRr4MsrQTIEfg4F6U4HaU5z9/0X4EU/o/vDCsdennGhjWuuwzHeysxUl/2aenv/iDp+/80daP/dPTt359ZsWdM9f8reCHmWX/u88Pwhd/avqCj0+f+9Hu6R/qnvz+7jE3Tx187cQ+F6575fH3it0zK2c7hHTuWDb+rS8+dc+dY3//sU2fuXX0EytGPnJN5wNXbHz/MsEhfd928cabL9h447kbrju9vfzk9e865olzD1550j7/9JZX9ssRECIsIOTPf2WCkBfd8rtX3tH8f279wwvf+4ed3vuHF9/WfMntzZe/7w8veu/qnW5Z7a1o7Hjzau+GhnfbsHdZAxACV8aln2tgWOuyz3SwsxZn7XP+piuw4VPffvqOb8xc/+WZ5Z+bufR/TS8VtPA302d+sCt82l93F90+ddLt/c9WjnjP1CErJg+8emLfi9ftcuJ9MoQMWs52CNl44zkCPzbf9akn//aO0Y9fP/Kh5Z33XbrxlqXDN5w7fN2ZwhuuOa19xaL2FSf1P6O56Ih15x+y9qwDV5687z0H7WKEkAX/0b9tNfhtdjEjrnrAu+pR79pHvGsenbdi5Q7Xi+1HvWse7v+97uEjv9j2lj987D90n1v+ZvHSe8cDuBsEhmEYhjO3OGuf/sHue782c/tdfXK4/DMzF31i+tyPTJ/xge7i27rH3zwlfNQNU4dcN/nWawUzTB5w9eSCqyb3v/Kp/S5Zv9vJP+6f9HXlxN5Eqiln8TphsTF83embPvPeTZ+7XRDI9IP/3k9Zce7wNWe0r1i8/tLj+77wqHXnHSLSt9z3naElBwwtWfD4Gfv/5pT9vn3Ibv1yDlrZdwAhe9/Th5A/+3EfSw5d2f9mjUCmJe1fP968d+Vj9/5m9b0rV/f/9v1YP0W8XPnYvzzc+NGjj/3g4cY/rVx38Kd+653yKxlC6OOK9K3cP+H2l/5t8sktz4qX3/rllPxuoObwMyKDXM6yL431LzR9aSwydmE5DzSfPuCmTqSWYz4wKlcBwzBcmk+DYb3FeWrx+7vXfnHm3f61i0s+OXPe30yf+dfTgkBOuLl75Iop4UOumzrwmsn9r5p805WT+1059aYrp9585cR+72pvgwddObEQoilnO4RsWL549KPXjn783SMfWh7m9wnkhPUXHikcEEigodP2Gzr9TY+f/ubfLNZBSHAlRIEQf9etFu5d8o2hCISI3V+0y4eEgwYE2/LLcN7JKeH2vz06LTb2WvSDt534tbHN3bt/9Lj8rvBVN/xAbN/3n8NhOQIkRMo93/vdvMPuDxMFfgiLcl646/8Ub338Sw/NOfFRucZ+homtYnvHN/5D+UsQDMN1dtlnOthZi3PW8e+duuKzfXJY9r9nln5s+uwPTZ/6/u5J7+0e856phdf3fdC1k3951dQbr5za5/KpN1w2te8VU/tdObHvJet3Pfl+GULkcmIhRFPOdghpLzu+84Er+p/CvH/ZxpuXhrusv/iY9RcsFH6eQN6xz9Apbxg6dd+1p+33m8X7fvttuxohRKQc6f/GyJnrvG0n/ad9R6gjTHmu1/ujyLTsHx6fe9p/Sw/de/4TmQh1WEJIuDFn8e8FNgiEEJCgLWr+Pl+RXwqFOPHR706Il7d95Kdid1GOSBFv7XDgP4flBNxy0jn/V2Qof/2BYRiGYZ0DeLjok9OXfKr/Qcx5H50+84PTp9zePeGW7lE3Th1yfd8HXjv5pqum9rly6vWXT732sqm9Lp/6iysm/uJd61+zyIcHXTniJVGOeFdTjgQhG2+9aOPtl/T/3nje8LVnhmfhdec/fw1knSCQxa8fWvTaocV7rT31L3578l98522v6Zfz1kYfOf7ikVkfx4QQctq21vq88Wyv9wx9JeSKr/5h3mkPzbvA/y3K2RySDkKaw/2fQPnKPzwYGYUw503f6P/Q/JrHnwxeHnBTJ3gp/h5y3N8F+YNC9j3ocy9467+o5Zy05Bvi790/elyUMPfY//b8j2YeaIrj7X/Ws+dVw0Q8wDAMw3BhFiemw1ZMnvvR7gUfn77gY/2bSM/4QPeU93dPuHXqqFumDrmx7wNXTO133dQbrp563fLun1/Zfe0VU3tdObHXJRtevegnMoTI5YiXRDniXU05AkIW9SFk3QWHbbzx3P73X266YHjFuRuuO6N91Sm92Vq/ZL/1p71h/Ttet+7kP1+3+LVPvGOv352013cPfvU2CPmrhh5CTh3q88O5G7dDyFbdxZBZXv6V32+HkE39B9OEl0SWjEjkMBK+VBVkCLeP+cDmsc39/lkztEVsm/Y979K7d9rj0+Ktm76xRby87UM/Dv7OOfF3cmn9H5L1S5DLGdvcDYhlxzf+v0H6k1ueEyl/esDfP/RIe/kt90X2gmEYhuFSLM5NB187edoHumd/pE8g4u/pH+j/1NgJt3WPem/30JunhA+8cWq/Fd29r+u+9pru7ld191je3XP5lj0v2fCqtwcQoilHvCTKEe9qylk0HFwJWXfuwcPXnLZxxdkbbzh3+PqzN1x7ev8nyy4/ITxBt887sH32fu0z9m6f+tr24t3bi/cYOmXPVW/f87t/9arnISS4GLLvj/oQImhEJB6/3r8M0n/OnQQhtJ+56u9+N+/UBwWEPM8h2/08Y8x+qblLZHbml5/+yI9//niQsuRDayL7BrzRvwPk6F+Jtx5Y078gs+9BnxN/BUK84JB71aojTQo4ZM3jT845aVWQ3tz4TIAl3hnr5u/1xXmH/zyyI8zEZa8nMAzDiewQhJw2KmyCkMiFAgpCFja9Qx7bdjFk73u8nT8xC0LO6T9m1x5CrvnyI3NP/dW8i57yzus/xtc7Zyy0RAKal5GU6LtnbPi7b/4+oIV5R/+3tqgd9/s/8o7Bxvy9viQSmxufjdQl7ygwJri79RNfeCBI3/OazWvWbhYp3/r3p8R2ZC8YhmEYLsXixHTAVZOL3jd15oe6Z314esmHpk//YHfxX3dPfF/36Nu7h93a94G3dN90U3fvG6b3vH561+u6u17T3XX55K4Xb3j5iT/tn/R15fT8b+yayhHvasrZDiFDZx7QvnLR8LvPHL7+rI3vXjJ83ekhe2y45LBg47mpieElew+fvueGU3bdsHjXdSfvuur4Xf/5LS/vl3PokHfo2j6EvG5V/0qIgJA9VvbJREDIEhlCnvHvCYmBkOu/8ODc0x6ad3F3zkVT3jt9BzRy3sTz5KB7GUlR3w0TX7jrx0xFHfM3kxH6OmnJN0SGL/24f4PHeZfeLZcm7/iCw+6/74E+dRx0wf8XvDXn9HXLb+lfY3lyfEZsR3aEYRjO0edsgWGtxVnpjZdNHnvL1Cl3dAU29HT6q9u7b7p1eu+bp/e8cfo110/vcu30LssnX3Xh8P844Wc+hOjLOU1AyAemT7yje8wd3YXv7zssR7yrKWfJU8Ji44l3vHH9u47dcNUpAj+GrzsjbMbw5ccML1soHKZsPHPPjae+ZnjxLutP2uX3R7/q+wv+R7+cozZ6Rz7R55A3N/sQ8srP9iFEvOxDyEj/I5ULg5N1LIEIP3vD538198yHBYQEFigSOjzja19GUsLtL/1k6wOtZ0XKa2/sJ37lHx6c9ZWZi6ZEhp7/cUyQOYANsS3+BvnnnbzqZcunnhx/es3jT77i9EfELt/6r2dEzkiNfp6Zsc3duae1/u23z3z0B08HGUSKwB75QGA23sbJMAzDFbE4K+11yZaFN0yeeNvUKX+th5CD7ph+0+3Te7935s9vnn71DdOvum565ysnX3rBxhcd+9P+Sd9Qzikf6C766+4Jd3SPvqN7mO+wHPGuphwBMz6ErF2017qlC9uXn7jh6ufvRx2+8oThK44eXnaY8MZLDgrTO6e+euPJr1p/ws6NI176vTe9aBuECB869DyEvG6VDyEj/YstF05sh5BAW/1LIiY9d8MX/2vuWb+eu+xp4TmX9u1dtM3hGV/7MpISbu9549P3/ar/hZcnt/zxo9+dFCk7HPh9uUqRfue3+19s2fEvv9Xs9G8offXeH593wqMvXd7vNwEeIr8ocM93P3XP938f7PJA67kTlv00LCdswzF/04dDke3Mz28Nc+570OdeuOvHw0bCMAzDcFkWJ6bdL9hy0LWTR9809fbbprRn4r8S8PC+6b1undn95pk/vWHmZddMv/iyyT85d3jHo/wrGNblyNKUI2DGv6Ly+HG7D51z0PpLjm5f/vapX/xIpGy48sQNVxw3fPlRw5ceKrzxkr8aWfomkT593/8Zecefdk562YZjX/z7Q//ke2/csV/OCZv7vBFwyAE/fx5CFg33P4u5cEL8w/iqIz/z8kM//vJDPt7/e5jsj0W888G3zD1n5dzlf5yzfKuwt+w54YBGhINbSU0vIynh9tx3dubvd5fYfuFuH9/h0HvldwP30w/6fpC+056f7e+1dLz/cum42BYpwVuinB33/1awy/w33DnvHY+pbRCJfZ7Z/1svOOnRMKfYUW4kDMNwrvYuehaGtRZn7V3O3fLmKyYPuX7y6Junjr916rhbu8fc1j3q9u7C93Xf6vuA903ve/vM62+d2e3mmVfeMPOSq2de+K7JHc4annvET30Iyaic858WFhutI3d54rQ3rzv/kD6HLDu+fdlxG5Yds2HZURsuXTh8yVuFN150QOf8fUfOff3ImbuNnPLKzokvaR/5wt8ftMM/v2HuNggRFhDy1pH+T5Zt+zhmyFs02r99xYeQuRdtmnfR8Lx3bRTe8dLOjpeP7HjlaN+Xt3e8ckPfl7d3uGxD4HnX/nHetb05V/9RWNAIDMMwnMjBv28wrFqctV9x1pa9Luk/yeVt108uvHFq4Y3dQ98z9babpg6+eeqAW7rC+90yvdfN03vcNP3qFdMvu3bmT66Y3uGiyblnbJiz0P9WS1blbIeZNYe9Yu2ivZ44c8G68962funC9RcuXL/00PbSt7WXHrzhggOEh8/bb+PZe3XO3KNz6qs7J71s47F/sn7hDqveMve7e8/pl3Pylm0XQwSELPiPPoT82cMhhAgCmXdxd+6yp+ddsXXeVc/seN3W+dc9t+P1fxSev+K5+Tf+UXaQPm9Fb5uvfd6lT2oYhmEYrrrFWfslpz6563mb93nX+F9eMf6Wq5468OqnFlw9seCaiTdfN7Hvu/ve691b9rhuy6uvmdx5+eSLL5ucf9GWue8c9xYPeYfcK3bPqpw+zPgQ0jj4JX84Ztc1J+/TOv0vH1/ylrVnH7h2yYK1Zy144qw3Dy3ZV3j9GXutP3WP9smvbp+4c/uYF68/fP7at8599C+9f3qdtw1CAg4REBJ8HDMbQgIO6UPIFVt3vPpZASF9r3hOhRCaQ2DYNZe+nsAwDCdye+y5fZY+vvM7Hn/Nksf3fOfQXuc/sfcFa19//hOvWzq059Kh3X2/5sL2q5a2d75gw0vOa7/wnA0vOHPDnFOGvON+s8cp/xpCyODlBFdU2k8+99Db93nwrTs/ePhrHj52z4dP2OvhE/Z++PjXP3LC6x49fs+Vx+0u/LvjXvO7o1+16sidf7fwJave9sLf/dULHt1/zr/v69192B79ck6bnAUhO39ChhDvvInwYkhwPWTH5U9HUWTFtmsjJgIpfdRgGIZhmIEv/2r3kdVP7XPWL158xL+87Nj7X37cfa847t6XH3vvzsf9eOfj73/pcT8RfvFxP3vRcT/f6dhf7HjUz+Yd8bM5R/zCO/Qne5xy78ONJ8XumZRz2d9NBRBy2ZenxlY98sNj9/nHN774nv1fdveCl3/rgFd8a/+X33PAzt8+YOfvLHip8Pf2f/H33/yiH7xpp+/tu+P39pn3gzfM+c7rvXsO22Pktw9f9rmnDBCyNoSQ4O+8i57qu39JZHIbigS++tnA8656RnVwsMFVFBh2zaV/vAvDMJzIO1z2jACA2C+zqGo/+ZzYUeyeQTlfntrh4ungWzY7LJ2+7Itb0pSz6VlBIDu8Y2LWPSERCFm8rv8U3eAJdP6vlnkX9W9VnbfsqW3uA0norcE3YmR7278aU/rXmmBY5/LvdYdhnUufGjCs+Pyn+8Ep/p47E3w/1zu7650z3bfYWDLZv6YR/A02Qp827p28uf83eDe8CSTiCIT0OWStt/BB75iH5xz7yNzj+vZOagSes7gZ2Dt1bZ9VTh3a5jOeeH47sP+0XxiGYdjWx6+FYecskGCRITiPafYfeiu8cLsPX73t5ZHbHaSIv4c81vdbG9seGRM8wE4ghxZCjnm4DyE+h4QoonWQoe8wv7QjDDvoILxh2DXPgWEnnWPYBz/bHnw75tUPzz9w9auWj+20ZM2mTgOGYRiGYTg/eyc+5R262tvzW97OnwSEwDAMwzBcmAEhMAzDMAyXYkAIDMMwDMOlGBACwzAMw3ApBoTAMAzDMFyKASEwDMMwDJdiQAgMwzAMw6U4KYRc+7HvwDAMwzAM2ztDCEnxwBoIgiAIguqpPCCk9Gs4DHzPN7+MnoS5GuHN0iUOKyKqdIshSLEXIMRZY07BjI3wZmlASJ0dQshX7rn/w3f+kPjwRbwr8gSZASHOGnMKZmyEN0sDQursAEIEXQivXrth0+YJ7YcvIl28G2Tb5B6EeL4G2b30gchwQDGnYK4eJLyDaS7/TbE7nId5QEjSCEFEhUMg/n74zh8KxvjJI5to/3rlQyLnpqIgxJNkOZTphjWyV6VjQzunvNkqvZEwnM7EKSM2wgEhzppetQYvnyiEqNr00lQyICSdAwjpE8XmifsfHqG9Zs3KgD0KgxCb8Rp8KDkFA71Kl948GB7EpvC2iW1AiLMeZFhtDAhx2SGEiIH48a87shctvTmSEuTclBBCXpgFhMgvI4Qsvwz/qhRNpGgrquilA0sIUbctOw2GS7TplKHNrC4Um9IuEZtmrz+l9wMzx0KIzXjZDLdl1ZF9tS1RXyYNKk857yQ6xtiKquLZELIxtCCQwHLiJnsIWdj0dvt6HhAS6fYMU+wzuOxBIIRHD8CMnQhCIhm05xTt7moeUyKciW0ghB4IbQbt7jZVmwLGfpFMfd4xNTiye2Sj0mu1DCH3PTQcOCSQwGH6JjcgJEKMlkMfu1dsIZWw/ccxpqgmOg2Gy3W6KyGWEEIsEeG7pfcAS6eDkEii/QofWzVxrresxf7cROy+yRyTsQ2rkGUI+bcHNwiH7BHZFt7kBoQQ2WyGnhhxupBKOFsIKf1wYFi2PYSY4tn+7GC5/sCDOwWEhNspVvjYqolzvWUtmUAIkRLbsAp5NoS0JepoB5ZTNpUHIZbnykFS7DO47EQ3piadQTBcru3vYMwJQrR1wQM6NYRsSrXCx1ZtCif7WkqEkMrFpwwh9z6wXljwRrAROkzZVDiEhNKm24+duhddfnWHdRAIIbqo9OOC4U0Jv6IbSYn8tVkQ1N3D9NK7gpNjv6KrXeTpxUp71rCv2pRiqlfbSLqdaguJ3SNVaDdMx+i4Z0PIOtqbioUQON2AWvYkMQVg2E3jt/hYmsePlcGph2DT9t8J+emvW7QT/E4IIKS8AQWEwFyNUwZLA0LqbPkXU//z0cdoJ/jFVEBIeQOKnoS5GuHN0oCQOlt+doxgjDVrVmqziXTxboJnxySHkAd/9a8wDMMwDNfKAQlk/BTd5BBy34++CcMwDMNwrZzi+klOH8dAgyu4ughBLIXwZqkSh1VbNfHPODy41SFw5EoIlImwSkOMhfBmKQchpPiW1EQmCAlu9li9dsOmzRPaHUW6eDfXe0KgTIRVGmIshDdLAULqIxOEBN+O+ckjm+5/eMR/YO7G+x4a9n+qve3/TNm6n/66VcC3Y6DBhVUaYiyEN0tph/Utb7nMxnlUjVNSfjJByLX+74TEQkjevxMCDS6s0hBjIbxZygQhq3w1Go3Vvlqt1hNPPLFuuzqdDiCkciIgRGzHQsimVL+YutOCx4qBEM/zMimn0hpklQ46UP6bYncIyk9ZQUjBsYqpQSsphAj8GB4edhNCMNa0eECIN1u9uPNmJF2bjU3kEKt0pNO0GXqZQghdXYYijkiNE/vdiTJTNDKpWB7UgHIWQuQC1e101cVOWDYyQUjDl8CPZrMpXwYZ9lUAhKQYgkwGi/HQs4GQTNKT5qmETKu0fSdkBSGmZTlpq1JUbUocvLqwhLLIqsiDcnBS1A1CtNv8ZIKQ4AJIQCDhpzAhgYyOjhYAIWGi5RBkBSHZFuiOKgch2rEwrcNyBpkhTUtr5N9JHtipnVOx/1PL2SIdEhkCIiV2gNSqiZZoXxJVq8NnqjRymJaHHHuMqhgclNqAcmUKb7on1RT1kGN7SZtHzkxs27RQW52pTHpHIk9PGVPioAqTCUIEfnR8qQQiND4+XgqEFBBajIeeDYREOl/9K+8S6WQikYESQUgkA92Npvx0ojYb3fn0CCYaPnpqR9Jt6tXuaKqazUEVv1KZFBveA8aq9i2bGRHJFtkl6ejTI5WoYaaWWB5UMTJBSKvVkgkkuBskVFkQEknJI7QYD33lIEQrure92VLzy9mIMiuqdFdCiPWzNzt66Y41DQ3dEiIPMUkTDR8971IsDsRSw/WgXJgj9hCSNFaJ/KaFRdsM7SSyKY3Oo20nEQCmPOpY0wdVjEwQIn8XJrwAMjo6KvBjwlcp94QUEFqMh74mEELnV4dVu1dFZQ8h2rnQ03WjTQqRTa2XGBHLqiNFxQ5fbDmpU+gaeRxUwcsUIUsISRqrKUowNUM7iWxKI/LQA5So8eqZiD6oYmSCEC2BCAn8mPRV5JUQNSW/0GI89JWDEO0Q2EMIESR0nurK/sbUnCDE9K5au2lAE50lyz1fx8ZkpQ9KfVm6soUQy/xEP8eOcroWWtaYoqjYAy9FBIS02+3wNlSZQLq+nIUQ7bsY+l49IKS3feVUX8rZInnClBS96pQSfUXX1DPazHQJPWWwIjI1SS1H+zKyi83wEYdgKpNoGN027QGyPKhyleLGVO0xEp1v30s9pYtMb9GjYMpjKjx2R7XxambioIqXCULk21DDT2ECApnxVTyE9AoJLcZDXzkIgZIKPymZk+ipWu4anlqVa3a6+64HVOV6qXKKhRBBIGNjY8VDSN6qYWgBQtgLEJKtbP5ZqNxK4sI/v+lUJIRUt5cqp7o9O6bOoQUIYS9ACMRYCG+WwlN06yNACHthlYYYC+HNUoCQ+ggQwl5YpSHGQnizlIMQAudndQgcgRDREhiGYRiGa2VHIGRoZBoe3GJAS28DDOdkhDdLlzis2qpLv1bA2+oQ5A0h8xc0ACHlzikY5mGEN0s7CCF5fgRUaxUKIbsDQlyZUzDMwwhvlgaE1EeAEPbGKg0zNsKbpbXDavk7IXlUDQjJT4AQ9sYqDTM2wpulTRCyylej0Vjtq9Vqyc/V7XQ6gJDKqVYQ4nle6ZOreA+ySgc9Jv9Fh8NOOSsIKThWMTVoJ4UQgR/Bz7k7CCH1/B1Ue3GCEPkxPaYMA8ZnpARtga4tL8QqbdljgBDYWTsLIXKB6na66rzZGvBA5HJcm6omCGn4EvjRbDblyyDhM2XyhpDIw+BslAmERIZ+wIrkckpnJDYQYjOJMoeQnGrJ1qZV2v5YACGws64bhGR7IGFm16aqCUKCCyABgYSfwshPtSsAQsKzp+XpOysIybYiT/fg3VJUOQjRTm3inwL5XwZ1+ocp8n8Ecn5tCdoGREpwZ1Jr51SKHlN7Q3uwka6gq4PhAW0K78FjlchP5JEzE9s2LdRWF3uksS9tDpZ4aTreAoZVAIbAj44vlUCExsfHS4GQsH/kt8IUTzndE/lNeTwFFWx2UUuIbQzxMtLmrMQYQtSckQlIT0k6Z2yiO04EIUSPaXs+Rf/AcIaODe/BY9VmNYjd0bTUJCpfPu/Yl6OWoGaI3YvIX9iwCsBotVoygQR3g4QqC0IiKZF0baLpLSJFCxX0XmoJaobYvYj8mahyEKJ16RASuxyV6HRXQiwhRJs/UlrpPQAztj2EJI1VIr888eU82mZoJ5FNabHrT2weukyiPaa9tPkLG1YBGPJ3YcILIKOjowI/JnyVck9IJNFTIESbos3vKcihLdO0l7YKU6u05Zj20ubPRIAQYooROU0zt4DpmcmcStFjdG8Q/eNah8CcbAkhSWM1RQmmZmgnkU1pg+eh89PtobPlPalNEKIlECGBH5O+irwSoj2Jq3lMZ3NtfhvksC+HKIFoD50NEGKaLPbTMycIMeUp3fY3puYEIQ72CczG2UKIZX7idE//n5K6hYNDiP0MtV8hCx7WAELa7XZ4G6pMIF1fzkKI9t10KTb1Jm1V7F6AkNiJPLT9WkSgSIo6g+S3EkGIumOkljAl10k64JyK7bHIAWozx/Y5MVgwnIlT3JhqGauxs2PIMPcjLbHfVgsnmkRMMaKF2g6x30tbTmHDKgBDvg01/BQmIJAZX8VDSC/uHlFPd2Y35deWEMlgKjbMZipBbbD9XtpyMlHlIATOZE7BMA+nu+96QOddPhwLIYJAxsbGioeQvJX5Kd59AULYGxACM3aREBK5PgDn57o9OyZy/aFWAoSwNyAEZmyEN0vjKbr1ESCEvbFKw4yN8GZpQEh9BAhhb6zSMGMjvFnaQQiB87M6BI5AiGgJDMMwDMO1siMQAmUiMaBlNwGC8hLCm6VKHFZt1aVfK+BtdQgAIZyEVRpiLIQ3SzkIIcW3pCYChLAXVmmIsRDeLAUIqY8AIeyFVRpiLIQ3S2mH1fJ3QvKoGqek/AQIYS+s0hBjIbxZygQhq3w1Go3Vvlqtlvxc3U6nAwipnGoFIfX8PbpBVmn5IQUpeq+eHQ4VqawgpOBYzba61DPUWSWFEIEfwc+5OwghuY4Lg6HnBCHqM4DUDCmKJUrQFuhaPBCrtGWPAUIgZ+UshGifL9Yb7KxhKkf7RLNK/xK4CUIavgR+NJtN+TJI+EyZvCEkRcdmMgSMh54NhNh0eOYQklMt2cq0StsfCyAEclb1hBDtf0P5Pee0eJkgJLgAEhBI+CmM/FS7AiAkTLTs52whhN/QVw5CtDFA/CMvA6EWGiPZIvm1JWgbECnBnWDQzqkUPaYFbDql0lMDqoRM4T14rBL5iTxyZmLbpoXa6kylad+lG0AcbGy9ecsEIQI/Or5UAhEaHx8vBUIKCC3GQ88YQmI7X02xHHGbRHeUCEIiGeh+M+WnEyEoQ8WG9+CxarMaxO5oWmoSlR85c9FVqNlMRRErmKnevGWCkFarJRNIcDdIqLIgJJKSR2gxHvrKQYhWpUNI7HJUotJdCbGEEG3+SGnZHAYE6WQPIUljlcgvT3w5j7YZ2klkU5rNGYGep0SHRFJMKxhRZq4yQYj8XZjwAsjo6KjAjwlfpdwTUkBoMR56QIicEtmIHRHtaBY/YWnZQwjdY7HBrBbrZodAnGQJIUljNUUJpmZoJ5FNaUlXsNRnojA99ZFmLhOEaAlESODHpK8ir4SoKfmFFuOhrxyE0NhG58wVQkx5Spf9jak5QYi2LgjKRNlCiGV+UwpRbOx2ohRta4npZnlyqQSEtNvt8DZUmUC6vpyFEO27GPpeSRCyUw4Q0tuOcyHUySmR/JGciSBE3TFSS5hiNQD5K9FXdE0HqM1Ml9AjBwuCMlGKG1MtYzV2dvQMcz/SEvtttXC1SdoU7bs2U5s4ClNLipEJQuTbUMNPYQICmfFVPIT0CgktxkNfHIQc3vR2u2twCIGSCj8pCTFWuvuuB1TxJ+W6KRZCBIGMjY0VDyF5q4ahBQhhL0AIxFhFQoj6byOUk+r27Jg6hxYghL0AIRBjIbxZCk/RrY8AIeyFVRpiLIQ3SwFC6iNACHthlYYYC+HNUg5CCJyf1SFwBEJES2AYhmEYrpUdgZChkWl4cIsBLb0NMJyTEd4sXeKwaqsu/VoBb6tDAAjhZKzSMGMjvFnaQQjJ8yOgWgsQwt5YpWHGRnizNCCkPgKEsDdWaZixEd4srR1Wy98JyaNqQEh+AoSwN1ZpmLER3ixtgpBVvhqNxmpfrVZLfq5up9MBhFROsRCi3auiEOJ5XumTq3gPskoHPSb/RYfDTjkrCCk4VvOrLvjhzQHbUPrMTQohAj+Cn3N3EEIK+x1U+99cJbIV/6utNldCFiz/pWoHIUR+TE9OMytSgrbA0uevzZxK1GOAENhZOwshcoHqdrrqYvcyVRqmyPOdaEnpM9cEIQ1fAj+azaZ8GSR8pkzeEKI+Hi5WmZzWYwvxlCfcRd5Vn2GnLdNBCNHu5eCVEJtZkzmE5FRLtjat0vbHAgiBnTUgxKZS7b5VvBISXAAJCCT8FEZ+ql0BEBKeBwe/7GCvQSBEyySpK8pclbsSop1lxD/y8r/56vQPU+T/DuT82hK0DYiUUPospudUih5Te0N7sJGuoKuD4QFtCu/BY5XIT+SRMxPbNi3UVmc6Uu0RqUenttC0r6nGEodVAIbAj44vlUCExsfHS4GQsOvkt8IUOVtsflMez3xxQ1ujWntkX1N7iBpzUilXQuYXAiFqTnU+mmZcbM7YRHecCEKIHtP2fIr+geEMHRveg8eqzWoQuyNxcrcvn1hq6CZZNs+mN0ocVgEYrVZLJpDgbpBQZUFIJMXTXYiwgQHLFMtdTI2M7GLf2pxU3JWQhWu83TOAEK1Lh5DY+V6i010JsYQQbf5IaaX3AMzY9hCSNFaJ/PLEl/Nom6GdRDal2aw/sbuo20TziN5wYVgFYMjfhQkvgIyOjgr8mPBVyj0hkURPOa1rU7T5wxSbMulC1G21FpvW5q3iroTwhZDItC138lrOqRQ9RvcG0T+udQjMyZYQkjRWU5RgaoZ2EtmUlmj9Me1iymlqWKIDLHhYBWBoCURI4MekryKvhKgpptO6nEjn15ZgKpNuhilnLw5CTHvlpMpdCbGfZQVDiAsz135Opeix1Au7g30Cs3G2EGKZ35RCFBu7PUib6SZpX0Z2cW3mEhDSbrfD21BlAun6chZCtO+mS7HcxfSyZwEh2r1yUnE/VpYzhAxtvxYRKJKiziz5rUQQou4YqSVMKWXyWs6p2B5TFyg1c2yfE4MFw5k4xY2plrEaOzuGDHM/0hL7bbVw+yaZaid6IHLgTs1cE4TIt6GGn8IEBDLjq3gI6cXdVurpgMGUX1uCZQa1SaYWRhpGtzZvVQ5C4EzmFAzzcLr7rgd0KeflWjkWQgSBjI2NFQ8heauY875TAoSwNyAEZuwiISRy2QHOz3V7dkzkskatBAhhb0AIzNgIb5bGU3TrI0AIe2OVhhkb4c3SgJD6CBDC3lilYcZGeLO0gxAC52d1CByBENESGIZhGIZrZUcgBMpEYkDLbgIE5SWEN0uVOKzaqku/VsDb6hAAQjgJqzTEWAhvlnIQQopvSU0ECGEvrNIQYyG8WQoQUh8BQtgLqzTEWAhvltIOq+XvhORRNU5J+QkQwl5YpSHGQnizlAlCVvlqNBqrfbVaLfm5up1OBxBSOZUCITuVBCH1/D26QVZp7YMGku4OQfkpKwgpOFbzq87+hzeJbKXP3KQQIvAj+Dl3ByGksM6s6NAXCCFNb7ev5woh6iN+1AwpiiVK0BZY+vyNiFilLXssWwixKSe2YUQ5rvU/lKuchRDTg8BSzyabveinj9FPMSMqspmP2coEIQ1fAj+azaZ8GSR8pkzeEJKiKzLpNMZDzwZCLE9tSYstpZZsZVql7Y8lQwiJDWa1rqT12oAixEaAEJtKtfvaE/4g8zGdTBASXAAJCCT8FEZ+ql0BEBImWnZF6RDi+NBXDkK0fUL8Uyyf9UwnuAgiyvm1JWgbECnBnXOfdk6l6DEtEtMp2n6jqybym9qmpmubpK0UqrpM4T14rBL5iTxyZmLbpoXa6kxHqj0i9ejUFpr21eax7B+1rqQyQYjAj44vlUCExsfHS4GQAkKL8dAzhhA1p6lXtUFC54xNdEeJICSSge43U36bxEgKkYcei9gxImqBGCg2vAeJVdNbNjOiR04i+wiPbbNNkyybZyotRdsGlAlCWq2WTCDB3SChyoKQSEoeocV46CsHIVqVDiGxg16i0l0JsYQQbf5IaXTVprGTi9XWnm5GuDY60ICyh5CksUrklyd+JFDVZmjD1aY0m/Undhd1m2ieqTcs52OGk8sEIfJ3YcILIKOjowI/JnyVck9IAaHFeOgBIXJKZIPIqa1Cm6d02UMI3WN0bxD9Q3RamGKTh2gbUR1RC8RAlhCSNFZTlGBqhjZcbUpLtP6YdjHlNDVMW12iijKZZSYI0RKIkMCPSV9FXglRU/ILLcZDXzkIse/qgiHElKd02d+YmhOEaHNq25Mo8hPNX9cGBcpK2UKIZX5TClFs7PYgbaabpH0Z2cW+N+hj0WZOIQJC2u12eBuqTCBdX85CiPZdDH2PEYT0tp9rIucy7aktklObQVuXdsdILWGK1QDkr0Rf0TUdoDYzXUKP7ECiST1DMGtHUxsP2kGHWCrFjalJY9U0O3qGuR9pif22NsItm2SqneiByIETvaGdRLFdMYhMECLfhhp+ChMQyIyv4iGkV0hoMR76ykEIlFT4SUmIsdLddz2g8i4fioUQQSBjY2PFQ0jeqmFoAULYCxACMVaREJLtP/sQobo9O6bOoQUIYS9ACMRYCG+WwlN06yNACHthlYYYC+HNUoCQ+ggQwl5YpSHGQnizlIMQAudndQgcgRDREhiGYRiGa2VHIGRoZBoe3GJAS28DDOdkhDdLlzis2qpLv1bA2+oQ5A8hjwFCyp1TMMzDCG+WdhBC8vwIqNYqFEJ2B4S4MqdgmIcR3iwNCKmPACHsjVUaZmyEN0trh9Xyd0LyqBoQkp8AIeyNVRpmbIQ3S5sgZJWvRqOx2ler1ZKfq9vpdAAhlVOtIMTzvNInV/EeZJUOekz+iw6HnXJWEFJwrOZXXfDDm/m1s5iOSgohAj+Cn3N3EEIK+x3UbH9zVS0qpwPhBCHyM3osJ9SAU1JboGtnXmKVtuwxQAjsrJ2FELlAdTtddbF7EZXSM92+xnIhpOFL4Eez2ZQvg4TPlMkbQiJPgrNRJufu2EI85TF54Xa634QHhPQSQojN1MgcQnKqJVubVmn7YwGEwM4aEGJfaYojdQ1CggsgAYGEn8LIT7UrAEKSnpRLh5B0LQGE9AwQop1NxD/yMvyr0z9MCbNF8mtL0DYgUoI751/tnErRY2pvaA820hV0dTA8oE3hPXisEvmJPHJmYtumhdrqTEeqPSL16OhjtGmnzbHnNKwCMAR+dHypBCI0Pj5eCoSEXSG/FabI2WLzm/J4OiQw5dfWTrdBPS5tk0ztH0SMIUQ7oYh0dYPIGZvojhNBCNFj2p5P0T8wnKFjw3vwWLVZDWJ3NC01iconlhq6SbEHmzQl9tjzGFYBGK1WSyaQ4G6QUGVBiHr6jk00vWWTYrmLtpHpapRT6B5IocpBiNalQ0jeUzLzOWVqpEy/sf1myh8prfQegBnbHkKSxiqRX574ch5tM7STyKY0m/Undhd1W1ta0pTYY89jWAVgyN+FCS+AjI6OCvyY8FXKPSGRRE8572tTtPnDFJsy6ULU7V5GEKLthNQChAzpVgabKalm0OYp3fYQQvcY3RtE/7jWITAnW0JI0lhNUYKpGdpJZFNaovXHtIs2Z7oZbVoNChtWARhaAhES+DHpq8grIaYzPn3eTwoA2nptmkHsOCCE9DJV5SDEcpZZTp8MIaSw6ZnJnErRY6kXdgf7BGbjbCHEMr8phSg2dnuQNtNNsmnqIBCSx+wmIKTdboe3ocoE0vXlLITEntztUyx3IbazgpBMgIQNhAxtvxYRKJKizj75rUQQou4YqSVMyXxiZjinYntMXXDUzLF9TgwWDGfiFDemWsZq7OwYMsz9SEvst9XC7Ztkqp2YvKb2R7rFVIW2wFyHVQCGfBtq+ClMQCAzvoqHkF7cbaWe7mxuyq8twTKD2iTtjtrd1ZzaGk37DqLKQQicyZyCYR5Od9/1gM67fDgWQgSBjI2NFQ8heSurM3uFBAhhb0AIzNhFQkiu//vDsuv27Jhsry1US4AQ9gaEwIyN8GZpPEW3PioFQuYfAAgpeU7BMA8jvFkaEFIfFQghawAh7swpGOZhhDdLOwghcH5Wh8ARCBEtgWEYhmG4VnYEQqBMJAa07CZAUF5CeLNUicOqrbr0awW8rQ4BIISTsEpDjIXwZikHIaT4ltREgBD2wioNMRbCm6UAIfURIIS9sEpDjIXwZintsFr+TkgeVeOUlJ8AIeyFVRpiLIQ3S5kgZJWvRqOx2ler1ZKfq9vpdAAhlVOtIKSev0c3yCrtGZ5blGh3CMpPWUFIwbGKqUErKYQI/Ah+zt1BCMFY0+IEIaYn9cgZUhRLlKAt0LWQI1Zpyx7LFkJsyoltmGmXZO2Dqi9nISTyaLDIdrrqUsyLisoEIQ1fAj+azaZ8GSR8pkzeEJJuaRqwSenqrYrYQIjlqS1psaXUkq1Mq7T9sWQIIbGTSK0rUZ/bUCLESXWDEO02P5kgJLgAEhBI+CmM/FS7AiAkTLQcgqwgJNsC3VHlIEQ7FsQ/8vJZz3SCk7NF8mtL0DYgUoI7caKdUyl6TIvidIq23+iqifx020yFOzUWUOYyhffgsUrkJ/LImYltmxZqq1PLJOZFdWWCEIEfHV8qgQiNj4+XAiEFhBbjoWcMIdqJT6SrG0TO2ER3lAhCIhnofjPlt0mMpKh51HmqFqvOYvsqIB6KDe9BYtX0ls2M6JGTyKY0bUrSeVFRmSCk1WrJBBLcDRKqLAiJpOQRWoyHvnIQolXpEBK7HJWodFdCLCFEmz9SGl215djRdREDZ3PUUHVlDyFJYzU23rzZMjVDO4lsSqPXH8vjqqhMECJ/Fya8ADI6OirwY8JXKfeEFBBajIceENLTrQw2i4Cawc1IsIcQusdslkRt/xCdFqbQHWuZQh+aa+MCZSJLCEkaqylKMDVDO4lsSks3C3jEuQlCtAQiJPBj0leRV0LUlPxCi/HQVw5C7E89BUOIKU/psr8xNScI0ebUtif1PNXSoPYlxEzZQohlfiICY3E6XQsBIb3tENJut8PbUGUC6fpyFkK072LoeyVByE4LGplDSG/76SZyLtOe2iI5E0GIumOkljDFagDyV6Kv6JoOUJuZLqFHdiDRJMu6PMPoR8qx6CGowkpxY2rSWDXNjp5h7kdaYr+tjWG6SWoij5g3QYh8G2r4KUxAIDO+ioeQXiGhxXjoCQjZtHkiFkLWrFlpDSHNTCAESir8pCTEWOnuux5QFV3tK6RYCBEEMjY2VjyE5K0ahpYJQj585w9Xr90QCyG/XvmQyAkIcVmAEIixioQQ9V9RKCfV7dkxdQ4tE4R85Z77hQVjrFmzUssJIl28G2QDhLgsQAjEWAhvlsJTdOsjE4QEHPLhO38oMpgs3g0IBBDisrBKQ4yF8GYpQEh9REBIIvcAIa4KqzTEWAhvlnIQQuD8rA6BwIAnR1aPjTY3P/n4+NgTT21ev+WpDZMTG6e2jHannpzujj89M7H16alntk4/++zW5557NhymbCFEtASGYRiG4VrZEQgZGpmGB7cY0NLbAMM5GeHN0iUOq7bq0q8V8LY6BIAQTsYqDTM2wpulHYSQfD78gXqAEPbGKg0zNsKbpQEh9REghL2xSsOMjfBmae2wWv5OSB5VA0LyEyCEvbFKw4yN8GZpE4Ss8tVoNFb7arVa8nN1O50OIKRyqhWEeJ5X+uQq3oOs0kGPyX/R4bBTzgpCCo7V/KrjMemSQojAj+Dn3B2EkMJ+B7WiP7jKCULkp/nkND0jJWgLdG0RIFZpyx4DhMDO2lkIkQtUt1NXl9UqZ2qeIzZBSMOXwI9msylfBgmfKZM3hGgfJEcrKzaIrdqyIs/wIMWyxAZCbOZR5hCSUy3Z2rRK2x8LIAR21rWCkAzXH8fnpglCggsgAYGEn8LIT7UrAELCs2eKk35q2RRSZHsyVOUgRDu1iX8K5H8Z1OkfpoTZIvm1JWgbECnBnTmunVMpekz7LxidEjtAMDygTeE9eKwS+Yk8cmZi26aF2uqIg7VvP3HsdAPKHVYBGAI/Or5UAhEaHx8vBULCXpLfClPkbLH5TXk8HTmY8sS2R9s2be3aerNVKRAy/4DHCoAQNWdkxqkpkQ0iZ2yiO04EIUSPaXs+Rf/AcIaODe/BY9VmNYjd0bTUJC0/PDXQ5ViuXQMeYMHDKgCj1WrJBBLcDRKqLAiJpETStYmmt0wpPRJL5L3o0iyrow8zW1UOQrQuHUJKnK3p5pSpkTIAx/abKX+ktNJ7AGZsewhJGqtEfnniy3m0zdBOIpvS6FWF3osuzdSA2JRyh1UAhvxdmPACyOjoqMCPCV+l3BMSSfSUk742RZs/TNFWROeh0yO7R4qKTclPgJAh3cpgMyvVDNo8pdseQugeS7pqmRJhOENbQkjSWE1RgqkZ2klkU5qah2hwotJSHGDBs9gEIVoCERL4MemryCshagpx0g8TkzKAKlMeOt2ywYCQdB/HWE7hXCHElKd029+YmhOEONgnMBtnCyGW+YlzdOy5Pl0LbWDDfrZm0oDihzWAkHa7Hd6GKhNI15ezEKJ9Nx0D0HvZtyd1A7IVGwgZ2n4tIlAkJZI/kjMRhKg7RmoJU4qcs0nnVGyPqQuamjm2z4nBguFMnOLGVMtYjZ0dQ4a5H2mJ/bZaeGyTiL1sckaOPbYB5Q6rAAz5NtTwU5iAQGZ8FQ8hvbjbSj3dKd6UX1uCNoM2jzbdVBqxi9rm/FQ5CIEzmVMwzMPp7rse0AWfkWvoWAgRBDI2NlY8hOStvM/4DgoQwt6AEJixi4QQ9doCnJPr9uwY9dpFfQQIYW9ACMzYCG+WxlN06yNACHtjlYYZG+HN0oCQ+ggQwt5YpWHGRniztIMQAudndQgcgRDREhiGYRiGa2VHIATKRGJAy24CBOUlhDdLlTis2qpLv1bA2+oQAEI4Cas0xFgIb5ZyEEKKb0lNBAhhL6zSEGMhvFkKEFIfAULYC6s0xFgIb5bSDqvl74TkUTVOSfkJEMJeWKUhxkJ4s5QJQlb5ajQaq321Wi35ubqdTgcQUjmVAiE7LWiUCCF1+1W6QVZpz/BcpES7Q1B+ygpCCo5VTA1aSSFE4Efwc+4OQgjGmlZxEHK4gJC7coWQyCN+TENft5AgVmntQ5EiGXqAEMhhOQshpkeApZ5NcgnE7kU+eiw/mSCk4UvgR7PZlC+DhM+UyRtCYtdMVdUdhWLEBkLUgQaEBDKt0jb9AAiBHBcghKi3ujJBSHABJCCQ8FMY+al2BUBImGjZ1TxGJD9VDkK0MaAdZfWqyODTv4rSzimC0NQHOod/1X8B6BR6gCBocJnCe/BYJfITeeTMxLZNC015tGXKB6I9qNiSnZIJQgR+dHypBCI0Pj5eCoQUHFrMxBtC5G06M2MlgpBIBvWvaXc1jykRgjJUbHgPHqum+Kdr6ZGTyKY0eq0zLWipS3ZKJghptVoygQR3g4QqC0IiKQWEFidVDkK0soEQOjNjpbsSYgkh2vyR0rI5DAjSyR5CksYqkT9MieTRNsMeQmJrpDeIkmNTXJMJQuTvwoQXQEZHRwV+TPgq5Z6Q4kOLkwAh7GUPIabFyn4p066HdetwqEhZQkjSWE1RgqkZ9hBicxQ0q6RouZvT0wQhWgIREvgx6avIKyFqSmGhxUmVgxB7tACEBLK/MTUnCNHWBUGZKFsIscxPnMpjkSBdC+0hnz2EtNvt8DZUmUC6vpyFEO271R2gDMUGQnq6C2XafxbYj2lEib6iq/0nK/wbyUyX0Kt3t0PFKMWNqZaxGjs7IiXI+2pfxm6rhatN0haubVWikl2TCULk21DDT2ECApnxVTyE9IoKLa6qHIRASYWflIQYK9191wOqDqeGchULIYJAxsbGioeQvFXD0AKEsBcgBGKsIiGkPv+clq66PTumzqEFCGEvQAjEWAhvlsJTdOsjQAh7YZWGGAvhzVKAkPoIEMJeWKUhxkJ4s5SDEALnZ3UIHIEQ0RIYhmEYhmtlRyBkaGQaHtxiQEtvAwznZIQ3S5c4rNqqS79WwNvqEOQPIY8BQsqdUzDMwwhvlnYQQvL58AfqAULYG6s0zNgIb5YGhNRHgBD2xioNMzbCm6W1w2r5OyF5VA0IyU+AEPbGKg0zNsKbpU0QsspXo9FY7avVasnP1e10OoCQyok3hHieV/psKt2DrNJBB8p/0f+wUzaFd/D7k/JLU7Zs24OYz8RJIUTgR/Bz7mVBiOnHTuv5I6iJxANCvNkaijtvRtK12dgsJgSERDrN1AkZQghdXYYmjkiNE/vdiTLzPiKuBzWgteGt4odNhNv3doqKbHq7Kn1egE0Q0vAl8KPZbMqXQcJnyuQNIZFzTc/wbMFQxLve7AfbyWXWSmwgJJP0pHkqYeJfRctOyApCTKt3Ht1ueVoZvLqwhLLIqsiDcnBSxEII3XLiiAqGEJc7uXibICS4ABIQSPgpjPxUuwIgRHsmTZreMz/LuG4cUjkI0c5W05ojZ5D/yzAtrZF/J3n8Y2K5ShMdFemQyBAQKbEDpFZNtET7kqhaHT5TpZHDtDzk2GO06d7KHZTagHJtCm9tD2j73PSutrcjfaJuxw6iNg9RJr0jHVR0TpdtghCBHx1fKoEIjY+PFw8h3uxrHWEnx74b2Y4UaCotkkLkCbdNOR0RGwiJTE/1r7xLZBoSiQycCEK0fWLqRss+NGWWX9KdT49gouGLrMORciLpNvVqdyS6lMdBqUNWlhN9HEOn268AxL5Jh5UeAptspjyx4+6yTRDSarVkAgnuBglVDITI6s3GDE9hCdO72syRbVNp6rvaPJ4BhLT7lqjKQYjW9HyMhI2aX85WoXk6yJyKPZ3RS3TkVEV0rGlo6JYQeYhlPNHw0StzitOHtgd4H5QLcyQphNARbtnbxOwwDaJpmqh55Ldid1T3VVtiaobLNkGI/F2Y8ALI6OiowI8JX+VeCYl0svbdyI7htryXmuiZQcKUx1MgRFtL6aoJhND51Ymv3auitocQdYkzdaNNCpFNrZcYEcuqkw5fbDmpU+gaeRyUOmRlOfWVEOJ4Y3ubmB2xk4LOQ/d8orGLbDgyXoMMqwAMLYEICfyY9FU6hBDvhinaRLV8U2lEydqiTG1zRJWDEO0ktYcQ4lxJ56mu7W9MzQlCLLtUPq+lPl/bD19O5+vYmKz0QakvS3eGH8fQvR07fBl2eCZFEbPPqRG0H9YAQtrtdngbqkwgXV/uQIgpncgc2U6EHGoKASFOAUkdIGRo+8qpvowsRI6vtxnOKW0/ED2jzUyXoA5WRPT4EsVqw8Bm+IhDMJVJNIxum/YAWR5UuU76FV3iuOjeVrvdfttmoLWFx+6ojp2a2VSayzZBiHwbavgpTEAgM75cvjE18laYohZLl2bKo7aELs0RVQ5C4EzmFDy46cW8Eks9g2YjvFk6FkIEgYyNjRUPIVDmAoSwN1bpbG3z72TlTuUV+h85YoQ3S+PZMfURIIS9sUrDjI3wZmk8Rbc+AoSwN1ZpmLER3iwNCKmPACHsjVUaZmyEN0s7CCFwflaHwBEIES2BYRiGYbhWdgRCoEwkBrTsJkBQXkJ4s1SJw6qtuvRrBbytDgEghJOwSkOMhfBmKQchpPiW1ESAEPbCKg0xFsKbpQAh9REghL2wSkOMhfBmKe2wWv5OSB5V45SUnwAh7IVVGmIshDdLmSBkla9Go7HaV6vVkp+r2+l0ACGVU60gxLXfzC9Gg6zSkQcfpNsdgvKTKbzVh3SYsmXbHsR8JkoKIQI/gp9zLwtCCgswfuIEIZHn+GgzpCiWKEFboGtRR0CIZY8BQiBnpQ1vFT9sIpwohC7cpiJa3mzF1mtZWur2lC4ThDR8CfxoNpvyZZDwmTJ5Q4g6UpkEWJ0DgA2E2HR15hCSUy3ZivhXMXZfQAjkuGIhxJRCp1vukiGEZJJHzVzROWiCkOACSEAg4acw8lPtCoAQ7V4DBlidA6ByEKIdOCIAZLBUV4kwReZGOb+2BG0DIiW4M/SWq3SYbuoxLajTKRWaCFBFZQrvSBBqpyr9rmkim84d9tMkdmEx5aFf9nQzzr4Q7cGWJROECPzo+FIJRGh8fLx4CMkkwOocAIwhRM2pDjcxcHTO2ER3lAhCIhnofjPlpxMhKEMl+jiGTrefyMS+9KJBpGjPKfReaglqhti9iPwlygQhrVZLJpDgbpBQxUBIZLAyCbA6B0DlIESr0iGEPkGXq3RXQmzmlyl/pLRsDgOCdEoKIXSEW05kYnaYzg6maaKdOLF56DKJ9pj2KvEcpJUJQuTvwoQXQEZHRwV+TPgq90pI6gCrcwAAQnrmgYhdK9TxNTWmRNlDCN1jsZNCLdbNDoE4KfWVEPXdMCU2bonZETspMslD56fbQ2dzZLaaIERLIEICPyZ9lQ4hxLthStIB5R0AlYOQwUkyJwgx5Sld9jem5gQh2rogKBNl+HGM9i1tmdqi6KrtU+zLsWmt5V6uTVUCQtrtdngbqkwgXV/uQEiiAKtzALCBkN52wgw5U06J5I/kTAQh6o6RWsIUi+4vQom+oms6QG1muoQeOVgQlImSfkVXuybYTGRPWW3st00LkVo1PXdME03Nr+ak9zIdZlkyQYh8G2r4KUxAIDO+XL4xlQiwOgdA5SAESir8pCTEWAhvloqFEEEgY2NjxUMIlLkAIeyFVRpiLIQ3S+HZMfURIIS9sEpDjIXwZik8Rbc+AoSwF1ZpiLEQ3iwFCKmPACHshVUaYiyEN0s5CCFwflaHwBEIES2BYRiGYbhWdgRChkam4cEtBrT0NsBwTkZ4s3SJw6qtuvRrBbytDgEghJOxSsOMjfBmaQchJJ8Pf6AeIIS9sUrDjI3wZmlASH0ECGFvrNIwYyO8WVo7rJa/E5JH1YCQ/AQIYW+s0jBjI7xZ2gQhq3w1Go3Vvlqtlvxc3U6nAwipnGoFIZ7nlT65ivcgq3TQY/JfdDjslE3hHTwgQ35pypZte7ItMPXUq7qTQojAj+Dn3MuCENMjVwZ8FIv6HBl+4gQh8gOATBkGjM9ICdoCXVsxCAix7DFACOysteGt4odNhBOF0IXbVETbVI5aZuyc5WEThDR8CfxoNpvyZZDwmTJ5Q4jpSXM0hGjf1T6irqc88059N/IQuqqLDYTYTMnMISSnWrI18a+i5bEAQmBnHQshphQ63XKXzCFE+2+O6V3GNkFIcAEkIJDwUxj5qXYFQIj2TJriSogWQiL5IxDCBjxkVQ5CtCsAsVzI/zJo/62IZIvk15agbUCkBHeWC8tVOrbH1N7QHmykK+jqYHhAm8I7EoTaqUq/a5rI2iVoKMk0MS0s2tK079INoI+XrtcRmyBE4EfHl0ogQuPj48VDiKdwQqDYdyPbvSTXQyLZTLto20M0rxQxhpDY6amdsKa5qZ2tRKI7TgQhRI9pez5F/8Bwhk70cUyiszwRt8S+9KJBpBBzJymEmBZGm3odsQlCWq2WTCDB3SChioEQWT3ycxPiXTWz9t10EBJhDMvMZalyEKJ16RBCn6DLdborIZYQos0fKa30HoAZOymE0BFuOZGJ2WE60ZumibZqugqbIw1TTEdElOmCTRAifxcmvAAyOjoq8GPCV7lXQiJjrX03smO47WUHIaZi6cxlCRAypFtAYnNqq3BzXttDCN1jscudqX9c6xCYk1NfCVHfDVNi4zYphKRoXiYQQhyR43PTBCFaAhES+DHpq3QIId4NU7SJREpqCElUY1mqHISo80jdpqdnThBiylO67W9MzQlCHOwTmI0z/DhG+5a2TG1RdNWWKdoliJhHllzBCULa7XZ4G6pMIF1f7kAIwQ+mzOpGJKepdlOxsTUCQjKEkKHtwB9iv5wSyR/JmQhC1B0jtYQppU9kYk7F9pi6BqqZY/ucGCwYzsRJv6KrXRNsJrKnrDb226aFSG2e2iT1XZs5q62XbolTNkGIfBtq+ClMQCAzvly+MTXyVpjSi6MXdZdIFXKKNrMpRT2c4lU5CIEzmVMwzMMIb5aOhRBBIGNjY8VDCJS5ACHsjVUaZmyEN0vj2TH1ESCEvbFKw4yN8GZpPEW3PgKEsDdWaZixEd4sDQipjwAh7I1VGmZshDdLOwghcH5Wh8ARCBEtgWEYhmG4VnYEQqBMJAa07CZAUF5CeLNUicOqrbr0awW8rQ4BIISTsEpDjIXwZikHIaT4ltREgBD2wioNMRbCm6UAIfURIIS9sEpDjIXwZintsFr+TkgeVeOUlJ8AIeyFVRpiLIQ3S5kgZJWvRqOx2ler1ZKfq9vpdAAhlVOtIMSF38kvXoOs0qbnFyTaHYLykym81UdmmLJl2578Yj5yROnaUJUpmRRCBH4EP+deFoQUEGBcA4AThKhP9lEzpCiWKEFboGujTECIZY8BQiBnpQ1v0+PATDkTTWQT26SeJjZ70UClfYRZJVYnk0wQ0vAl8KPZbMqXQcJnyuQNId5s9TIKsDoHABsIsenbzCEkp1qyFfGvYuy+gBDIccVCiCmFTrfcxQUIsT9Ym4ockQlCggsgAYGEn8LIT7UrAEK0ew0YYHUOgMpBiHYsiACQ/81XV4kwRWZIOb+2BG0DIiW4M9aWq3SYbuoxtTfU/D2lK+jqIGhAmcI7EoTaqUq/a5rIptOB/TSJXViIXbRHp22haV9TjU7JBCECPzq+VAIRGh8fLx5CMgmwOgcAYwjRrg9EurpB5IxNdEeJICSSge43U346EYIyVKKPY+h0+4lM7EsvGokWFnoXopGxB+X+lDRBSKvVkgkkuBskVDEQIquXUYDVOQAqByFalQ4hsVFRotJdCbGEEG3+SGnZHAYE6ZQUQugIt5zISSGEmCbExKF3IRpJn4MqMSVNECJ/Fya8ADI6OirwY8JXuVdCUgdYnQMAECKnRDZs1gp5W5undNlDCN1jdG8Q/eNah0CclPpKiPpumBIbt8TsiJ0UNnlsdjHlNDWMbpJrMkGIlkCEBH5M+iodQoh3wxSaK4hy6G2bJjkYAJWDEPuxKBhCTHlKl/2NqTlBiLYuCMpEGX4co31LW6a2KLpq+xTLXUwvbQ5Nu5dTIiCk3W6Ht6HKBNL15Q6EJAqwOgcAGwjpbSfMkDPllEj+SM5EEKLuGKklTLHo/iKU6Cu6pgPUZqZL6JGDBUGZKOlXdLVrgs1E9pTVxn7btBCpVdvs0lNWGGLa9qo5JU0QIt+GGn4KExDIjC+Xb0wlAqzOAVA5CIGSCj8pCTEWwpulYiFEEMjY2FjxEAJlLkAIe2GVhhgL4c1SeHZMfQQIYS+s0hBjIbxZCk/RrY8AIeyFVRpiLIQ3SwFC6iNACHthlYYYC+HNUg5CCJyf1SFwBEJES2AYhmEYrpUdgZChkWl4cIsBLb0NMJyTEd4sXeKwaqsu/VoBb6tDAAjhZKzSMGMjvFnaQQjJ58MfqFcghKzxdgOEuDKnYJiHEd4sDQipjwAh7I1VGmZshDdLa4fV8ndC8qgaEJKfACHsjVUaZmyEN0ubIGSVr0ajsdpXq9WSn6vb6XQAIZVTrSDE87zSJ1fxHmSVDnpM/osOh52yKbyDh2XIL03Zsm1PfjEfOaJ0bajKlEwKIQI/gp9zLwtCTM9hyfD5LJHnxaRoTLbtyUqcIER+iE9OEzBSgrZA16Y5ASGWPZYthNiUE9swohzX+h/O1drwVvHDJsKJQujCbSqiHbsXDVSR+WJ/UDYTrRSbIKThS+BHs9mUL4OEz5TJG0K82eoZHlYbing30bPk6Mz2TfJ0D8Kzx5s8xAZCLE9tA8ZnMbVka+JfRctjyRBCYpc7ta6k9dqAIszGsRBiSqHTLXdxAULsD5be16mZYoKQ4AJIQCDhpzDyU+0KgBDtmTRpei87CNEyiU05SduQkyoHIdpZQywX8lnPdIKL/BMh59eWoG1ApAR3ZrTlKh3bY2pvaA820hXEqGmrpkdZ2zY1Xduk0gcCzsOm8I4EYWwUaXfURo4pmO2niTZoiUMgGqYNbPqgtHmILiK6ouBhFYAh8KPjSyUQofHx8eIhxJt92SHsq9h3I9tqsZFyLHeMrVSbhzgEbUqGYgwhak7TvFPLic0Zm+iOE0EI0WPans+kf9T1je55y9GMrQVm4EQfx9Dp9hOZ2Nc+dE0plrsQjYw9qNStLXdYBWC0Wi2ZQIK7QUIVAyGyImdz9ZxuelebmXjLlFkLBrGVRlCErign9ghVOQjRunQIiV0WSnS6KyGWEKLNHymNrto0dnKx6UbTdICljwicoZNCCB3hlhOZmB3aqolpQkwceheikaYJoj1Gm4lW/KwxQYj8XZjwAsjo6KjAjwlf5V4JiQyc9t3IjtpiTeXE7qhtklqytiJT4ZFdMhcgZEi3gNivFZHpbGpMibaHELrH6N4g+ofotEjX0XmSjmZsLTADp74Sor4bpsROZGJ22ARkooXFtIspJ33IRGtjKypy+pggREsgQgI/Jn2VDiHEu2EKzRVEOfS2TZMiiYkqyglFKgch9pOxYAgx5Snd9jem5gQhsSMVpidaG+0hBPjB2Bl+HKN9S1umtii6avsUy11ML20OzfRu0ooKHtYAQtrtdngbqkwgXV/uQIg9CZgypMhsWbXp3aQVZSI2EDK0/VwTOZdpT22RnIkgRN0xUkuYUtiETTGnYntMXcfUzLF9TnQg0SR1ZInR1MaDdtBhlk76FV0iiuiJHAkkbeCZtrWVRhpAzCNt7cQ0JA7ZdHRq4aaWlDisAjDk21DDT2ECApnx5fKNqZG3etLlBXkEiXLUHSOZPR1+qG9pC1FL077MXJWDEDiTOQXDPIzwZulYCBEEMjY2VjyEQJkLEMLeWKVhxkZ4szSeHVMfAULYG6s0zNgIb5bGU3TrI0AIe2OVhhkb4c3SgJD6qDgIWdj0dgeEuDKnYJiHEd4s7SCEwPlZHQJHIES0BIZhGIbhWtkRCIEykRjQspsAQXkJ4c1SJQ6rturSrxXwtjoEgBBOwioNMRbCm6UchJDiW1ITAULYC6s0xFgIb5YChNRHgBD2wioNMRbCm6W0w2r5OyF5VI1TUn4ChLAXVmmIsRDeLGWCkFW+Go3Gal+tVkt+rm6n0wGEVE61gpD8fv3eZQ2ySmufRJB0dwjKT6bwVh+uYcqWbXvyi/lsn99hegaKI0oKIQI/gp9zLwtCCggwrgHACULUZwCpGVIUS5RgevrPgLVkKwJCLHsMEAI5K214q/hhE+FEIXThNhXRit2LqDTd88XcOQdpZYKQhi+BH81mU74MEj5TJm8I8Warl1GA1TkA2ECITQdmDiE51ZKtiH8VY/cFhECOKxZCTCl0uuUuLkCIfSF0jU7NVhOEBBdAAgIJP4WRn2pXAIRo9xowwOocAJWDEG2fEwEgI6K6SoQpMtbK+bUlaBsQKcGdGW25Sofpph7TIjedEjtAEDSgTOEdCULtVKXfNU1k+hRgM01iFxZiF+3Rqe0hyje107RvKTJBiMCPji+VQITGx8eLh5BMAqzOAcAYQrTdTqSrG0TO2ER3lAhCIhnofjPlpxMhKEMl+jiGTrefyMS+9KKRaGGhd9E2Ml2N9tO8MJkgpNVqyQQS3A0SqhgIiZy+MwmwOgdA5SBEq9IhxJGZq1W6KyGWEKLNHyktm8OAIJ2SQggd4ZYTmZgd2qqJaUJMHHoXbSMzOQdFqi5FJgiRvwsTXgAZHR0V+DHhq9wrIakDrM4BAAiRUyIbNmuFvK3NU7rsIYTusaSBbUqEoAyV+kqI+m6YEhu3xOyInRQ2eWx20ebM5BykPeSCZYIQLYEICfyY9FU6hBDvhik0VxDl0Num6hKlFB8AlYMQy7HQvpsrhJjylC77G1NzghBtXRCUiTL8OEb7lrZMbVF01fYplrsQ21mdg0qctgSEtNvt8DZUmUC6vtyBkEQBVucAKAVC5ucAIb3thBlyppwSyR/JmQhC1B0jtYQpFt1fhBJ9Rdd0gNrMdAm9MuIZqpuSfkVXuybYTGRPWW3st00LkVq1zS5yw7SzkjgWYkdT1aXIBCHybajhpzABgcz4cvnGVCLA6hwAlYMQKKnwk5IQYyG8WSoWQgSBjI2NFQ8hUOYChLAXVmmIsRDeLIVnx9RHgBD2wioNMRbCm6XwFN36CBDCXlilIcZCeLMUIKQ+AoSwF1ZpiLEQ3izlIITA+VkdAkcgRLQEhmEYhuFa2REIGRqZhge3GNDS2wDDORnhzdIlDqu26tKvFfC2OgSAEE7GKg0zNsKbpR2EkHw+/IF6gBD2xioNMzbCm6UBIfURIIS9sUrDjI3wZmntsFr+TkgeVQNC8hMghL2xSsOMjfBmaROErPLVaDRW+2q1WvJzdTudDiCkcqoVhHieV/rkKt6DrNJBj8l/0eGwUzaFd/DwC/mlKVu27UHMZ+KkECLwI/g597IgxPSklXIfwVMJcYIQ+Yk8pgwDxmekBG2Brq1CBIRY9li2EGJTTmzDTLuU3ttwwdaGt4ofNhFOFEIXblMR7RQBz9smCGn4EvjRbDblyyDhM2XyhhBvtnqG5+SGIt4lni5XK7GBEMtT24DxWUwt2Zr4V9HyWDKEkNhlVq0rUZ/bUCLMybEQYkqh0y13yRBCbJpUH5sgJLgAEhBI+CmM/FS7AiBEeyZNcSUkAiE2u7BU5SBEO1uJ5UI+65lOcHK2SH5tCdoGREpwZyWxXKVje0ztDe3BRrqCGDVt1fQoE20zFe7UWMCZ2xTekSC0iSJ1R23wmILZfpqoeZIGPHubIETgR8eXSiBC4+PjxUOIN/taRzhqse9GtiMFxhbFRowhRLs+EOnqBpEzNtEdJ4IQosdMa+/g/aMu9dqVXC1WXeftq4B5ONHHMXS6/UQm9qUXDSIlacDztglCWq2WTCDB3SChioEQWb3ZbKCyhOldNXMEOdScpnerrgIhZI2329dz+jimdAihT9DlOt2VEHqJljtKzR8pja7acuzouoiBszlquLpOCiF0hFtOZGJ2aKuODd0Uk4u3TRAifxcmvAAyOjoq8GPCV7lXQiJjrX03siOxrS2KnwAhQ7oFxGatUDO4uVbYQwjdYzYrp7Z/iE6LdF1sS+gU+tBcGxc4E6e+EqK+G6bETuSkEGLZPPsU9jZBiJZAhAR+TPoqHUKId8MUbSK9i7ZwHqochNifegqGEFOe0m1/Y2pOEBI7UmG65UoeCyHES5iZM/w4RvuWtkxtUXTV2aawNwEh7XY7vA1VJpCuL3cghIATQIgsNhAypFy9lFMi+SM5E0GIumOkljCl9IlMzKnYHlOXaDVzbJ8THUg0ybIuzzD6phGEWTrpV3SJOKEnshpv9tvaSiMNSBrwvG2CEPk21PBTmIBAZny5fGNq5K3e7KsipnflPJkDgAuqHITAmcwpGOZhhDdLx0KIIJCxsbHiIQTKXIAQ9sYqDTM2wpul8eyY+ggQwt5YpWHGRnizNJ6iWx8BQtgbqzTM2AhvlgaE1EeAEPbGKg0zNsKbpR2EEDg/q0PgCISIlsAwDMMwXCs7AiFQJhIDWnYTICgvIbxZqsRh1VZd+rUC3laHABDCSVilIcZCeLOUgxBSfEtqIkAIe2GVhhgL4c1SgJD6CBDCXlilIcZCeLOUdlgtfyckj6pxSspPgBD2wioNMRbCm6VMELLKV6PRWO2r1WrJz9XtdDqAkMqpVhDC9bf3aQ2ySnvmZzDZ7w5B+ckU3upjOEzZsm1PfjFfq9mUFEIEfgQ/514WhBQQYFwDoFAI2T1fCNE+AyiSIUWxRAnaAl0LFQJCLHsMEAI5K214q/hhE+FEIXThNhXFKqvlywa93JcJQhq+BH40m035Mkj4TJm8IcSbrV52AVbbAGADITa9nTmE5FRLtiL+VYzdFxACOa5YCDGl0OmWu2QFIRkuLDwmnQlCggsgAYGEn8LIT7UrAEK0ew0YYHUOgMpBiHbgiACQwVJdJcIUGWvl/NoStA2IlOBOJFiu0mG6qce0oE6nxA4QBA0oU3hHglA7Vel3TRPZdO6wnyaxCwvRVG3DTM0mjtp0dI7IBCECPzq+VAIRGh8fLx5CMgmwOgcAYwhRc6rDrY6UNl2bQie6o0QQEslA95spP50IQRkq0ccxdLr9RCb2pRcNYiqZzjiWhxB77LENcEomCGm1WjKBBHeDhCoGQiJn8KwCrLYBUDkI0ap0CHFqTCNKdyXEEkK0+SOlZXMYEKRTUgihI9xyIhOzQ1s1MU3UWmKbGjvptO2kU1yTCULk78KEF0BGR0cFfkz4KvdKSCYBVrcAAITIKZENeuzUDNo8pcseQugeSxrbpkQIylCpr4So74YpsXFLzI7YSaHNQzfJvrTYBjh4DtLKBCFaAhES+DHpq3QIId4NU+gAq1sAVA5CTL1nM9NzhRBTntJlf2NqThCirQuCMlGGH8do39KWqS2KrppOoWu3n4aZNMAFERDSbrfD21BlAun6cgdCkgYY8S7vAGADIb3thBlyppwSyR/JmQhC1B0jtYQpFt1fhBJ9Rdd0gNrMdAk9x0IdYqmkX9HVrgk2E9lTVhv7bdNCpFatnVx0adqcNketPS5HZIIQ+TbU8FOYgEBmfLl8YyoRYHUOgMpBCJRU+ElJiLEQ3iwVCyGCQMbGxoqHEChzAULYC6s0xFgIb5bCs2PqI0AIe2GVhhgL4c1SeIpufQQIYS+s0hBjIbxZChBSHwFC2AurNMRYCG+WchBC4PysDoEjECJaAsMwDMNwrewIhAyNTMODWwxo6W2A4ZyM8GbpEodVW3Xp1wp4Wx0CQAgnY5WGGRvhzdIOQkg+H/5AveIg5PAmIMSdOQXDPIzwZmlASH0ECGFvrNIwYyO8WVo7rJa/E5JH1YCQ/AQIYW+s0jBjI7xZ2gQhq3w1Go3Vvlqtlvxc3U6nAwipnGoIIZ7nlT7FivQgq3TQV/JfdDXslE3hHTwpQ35pypZtexDzmTgphAj8CH7OvSwIMT2BpfQns7gvThAiPwNoqMBlx3ETEBLpMVNfAUJgZ60NbxU/bCKcKIQu3KYiGxMzkaiXpU0Q0vAl8KPZbMqXQcJnyuQNId5s9ZI/EjfyFsQGQtRZCQgh5pRlPwBCYMcdCyGmFDrdcpeyIIS9TRASXAAJCCT8FEZ+ql0BEKI9k6a4EgIICVQ5CNGuAKZ/ZCJXRQZfJapoy1Va7TS139TLJnQKPUAwPLhN4a2d+0NkhKs7aqkgFkJip4kpj7ZMbXuIwzE1u1o2QYjAj44vlUCExsfHi4cQb/a1jrD/Y9+N5KyteENIZC4TmRk7EYREMmiXce3uah5TIgxn6EQfx9Dp2ujVmtjXVAWdQm8MWHIVbYKQVqslE0hwN0ioYiBEVm82ZshEQb+rvqytKgchWttACI+5mdWcMnVC5D+pWAjR5o+UVnoPwIydFELoCLdcKJJCCDFNACH2wyoAQ/4uTHgBZHR0VODHhK9yr4TEIopKKRAghL3tIYRYuol3TSmmRBjO0KmvhKjvhimxcZsUQmyaR7NKbMk1gRAtgQgJ/Jj0VTqEEO+GKabM9VTlIMQeLQAhxJyy7LFMIKSGfQ4X5gw/jtG+pS1TWxRdtX2KTQPqDCHtdju8DVUmkK4vdyCEgBNAiCw2EDKkfDQQpnCam1nNKbrHIv2m/rNmU0LNux0uxkm/oquG65AS4fK+kZxEFcS2tlJt82J3tDkcbYOrZROEyLehhp/CBAQy48vlG1Mjb/WUD2jqqcpBCJzJnIJhHkZ4s3QshAgCGRsbKx5CoMwFCGFvrNIwYyO8WRrPjqmPACHsjVUaZmyEN0vjKbr1ESCEvbFKw4yN8GZpQEh9VCCErPF2vwsQ4sicgmEeRniztIMQAudndQgcgRDREhiGYRiGa2VHIATKRGJAy24CBOUlhDdLlTis2qpLv1bA2+oQAEI4Cas0xFgIb5ZyEEKKb0lNBAhhL6zSEGMhvFkKEFIfAULYC6s0xFgIb5bSDqvl74TkUTVOSfkJEMJeWKUhxkJ4s5QJQlb5ajQaq321Wi35ubqdTgcQUjkBQgZRJX72f5BV2iMfEGm5OwTlpxThnWFYIsJzUlIIEfgR/Jx7KRCCMBhEPCDEmy37vYhtm3IqEXvEKh3baYAQyHFpw3vwqW1SZMogwnOSCUIavgR+NJtN+TJI+EyZYiAEYZCheEBIoKSRQK9UedRYikwQYk9ZgBDIWRUJIaYnqEKZywQhwQWQgEDCT2Hkp9oVACEIg2xVOQghaEF9GXmksvYhy6btyMOX1ecvawuPlKatq2DFrtKRdPVAbLpCm+LC4UO8lQ5CYiOZXi7Uwu0LTHWUtZMJQgR+dHypBCI0Pj6eN4QgDDIXVwjRrjzqu5GTrOmt1CkunIUTQUgkg7ZntLureUyJEJSh6At9xNRWs9mnJM1Mzx1IlQlCWq2WTCDB3SChyoUQhEE6VQ5CCLkGIaYzeMFKdyXEEkK0+SOlZXMYEKRTVhBCRHI6CIkkRsqHaJkgRP4uTHgBZHR0VODHhC/XIARhECtAiPYvsRdjCLE5EPVdU4opEYIyVOZXQuzzaN9STzqmfSFCJgjREoiQwI9JX05BSLiNMCBUOQgxDTTxVmyEJNorEd5o21mw7G9MzQlCtHVBUCaiv/xluZ1iUsdmtswAaUVASLvdDm9DlQmk66vEG1MRBulUCoTs5MaNqXSB9FpkKtymnQUr0Vd0IymRv9rDJLrCnU6AuCoTCOnplgtTfm2E2ywI6uIDmWSCEPk21PBTmIBAZnyV+xVdhEEKFQohu319cAhJrdqOO35SEmIshDdLxUKIIJCxsbGyIATKUIAQ9sIqDTEWwpul8OyY+qg+EFJbYZWGGAvhzVJ4im59BAhhL6zSEGMhvFkKEFIfAULYC6s0xFgIb5ZyEELg/KwOgSMQIloCwzAMw3Ct7AiEDI1Mw4NbDGjpbYDhnIzwZukSh1VbdenXCnhbHQJACCdjlYYZG+HN0g5CSD4f/kA9QAh7Y5WGGRvhzdKAkPoIEMLeWKVhxkZ4s7R2WC1/JySPqgEh+QkQwt5YpWHGRniztAlCVvlqNBqrfbVaLfm5up1OBxBSOdUQQjzPK32KFelBVumgr+S/6GrYKacIb4Sl+04KIQI/gp9zB4RUTpwgRH6o0JB5qanbEkSs0pEeM/UVIAR21trwlgNP3R4kLInJQtQLJ7UJQhq+BH40m035Mkj4TJliIIR+CB0e3JlIbCBEnfKAEGJOWfYDIAR23M5CCDyITRASXAAJCCT8FEZ+qp1rEALFqnIQol1etHNfvSoy+BJURceu0qZOU/tNvWxCp9ADBMODOx2ExEayKY+2TDngtcEfWzJsM6wCMAR+dHypBCI0Pj5eAISEjOHNvuIRkklkW80gv/RqTyylQMj8BY1iIETeru0JMRGERDKof027q3lMiTCcoekLfdoA1mJJbAq9MWDJcMQmCGm1WjKBBHeDhCoLQiIg4Skfx9ik1FbFQcjCprf7XYNDiNY2EEJnZux0V0IsIUSbP1Ja6T0AM3ZWEEJEMiCkeJsgRP4uTHgBZHR0VODHhC9ASOUECGFvewgxLZj2yymuhMAFO/MrIUQemlViSwaE2NsEIVoCERL4MekrbwhRw6AHCBlMlYMQe7QAhBBzyrLHMoGQGvY5XJjpL39ZbmcF2ICQrExASLvdDm9DlQmk66sACJFPoICQwcUGQoaUjwbCFHov9k70FV3tP3rh30hmuoSadztcjDOBkKHZcavNQwA2vebElgyrNkGIfBtq+ClMQCAzvkqBkJ7hvlM6g1pIPVU5CIEzmVMwzMMIb5aOhRBBIGNjY8VDCJS5ACHsjVUaZmyEN0vj2TH1ESCEvbFKw4yN8GZpPEW3PgKEsDdWaZixEd4sDQipjwAh7I1VGmZshDdLOwghcH5Wh8ARCBEtgWEYhmG4VnYEQqBMJAa07CZAUF5CeLNUicOqrbr0awW8rQ4BIISTsEpDjIXwZikHIaT4ltREgBD2wioNMRbCm6UAIfURIIS9sEpDjIXwZintsFr+TkgeVeOUlJ8AIeyFVRpiLIQ3S5kgZJWvRqOx2ler1ZKfq9vpdAAhlVMpELLTgsdKhJC6/VD/IKu0/PiDFP1Wt66Gile1IAQzwlJJIUTgR/Bz7oCQyqlYCPl6rhAiP0ytZ57vdVsHiFU60mPaDD1ACOSwCoMQy2A2PZgs9SSSSyB2Z/ZANBOENHwJ/Gg2m/JlkPCZMsVACD0WKcRgyFKLDYSogwgICWRapW36ARACOS5ASKLmVUUmCAkugAQEEn4KIz/VDhBSOVUOQrRzXDuC6lWRwdeBKko7pwhCU583Hf5VL5vQKfQAQdDgIhibjlXLl5b55VqIbZtJZMqjLVOea9p5F1uymzJBiMCPji+VQITGx8cLgJDYsbB/mTS6WIo3hMjbdGbGSgQhkQzqX9Puah5TIgRlqNgrIURkal+aop2Of1ONKhWkq4jYyOMQSpcJQlqtlkwgwd0gocqCkCKji58qByFa2UAInZmx0l0JsYQQbf5IadkcBgTpFHslxBJCiPzaFCKwk0JIbNX0BlFybIqzMkGI/F2Y8ALI6OiowI8JX25CSIbRxU8mCEnqHiDEVdlDiGlq2K9p2slYtw6HilRseFtCSNISeuaTRVIIsamaPpHFlswGQrQEIiTwY9JX3hCSdCzUl73BooufCAj5yj33f/jOHxK/9y7eFXkKhhB7tACEBLK/MTUnCNHWBUGZKHMIsYztyI6xBaaryJ7t6wMh7XY7vA1VJpCurwIgRE4vJrp4ywQhgi6EV6/dsGnzhHZHkS7eDbK5ACG92Ywqp9B7sVeir+hqCT/8G8lMl9Crd7dDxcjy45je7Mi0f6lGu5q5NwCEaKuO5DEVrm1zopKdlQlC5NtQw09hAgKZ8VUKhPRyji7eMkHIh+/8oWCMnzyyifavVz4kcpb+cQxEqFq/5gRBiZRTeNfnFOCmYiFEEMjY2FjxEJKJEF2yTBDSJ4rNE/c/PEJ7zZqVAXv0ACGuChACMRYghKV4PzsG0SWLgBCx/eNfd2hvwxVAiMMChECMhfBmKTxFtz6Kg5CNwouW3hxshA5TACHuC6s0xFgIb5YChNRHNITc99Cw4I3AYjuwnAIIcV9YpSHGQnizlIMQAudndQhCDPi3BzcIh9QR2RbOFUJES2AYhmEYrpUlCGkHDtljO4FsS88VQoZGpuHBLQa09DbAcE5GeLN0icOqrbr0awW8rQ5BiAH3PrA+dEggcmI6CJl/ACCk5DkFwzyM8GZpByEkz4+Aaq04CFkn2yeQWSkJIOTwprfbXYAQR+YUDPMwwpulASH1EQEhmzZP/PTXLdoJficEEOLSnIJhHkZ4s7R2WC1/JySPqgEh+ckEIcEvpv7no4/RTvCLqYCQkoxVGmZshDdLmyBkla9Go7HaV6vVkp+r2+l0ACGVkwlCgofCCMZYs2allhNEung3wbNjACEleZBV2vO8yN8Uu8Nwfq4ihGBexDophAj8CH7OHRBSOZkgZFPmT9HNE0Lk5wGljr3Ivtqiqrh6EKt0bL8BQmDHnRpC5OCkA3XAyFe3082LTFa5qtgEIQ1fAj+azaZ8GSR8pkwxEGLzjDn7xwVa/oq79rF3DERASCL3coAQCIIgCIIgG2ULITAMwzAMw/bOCkJgGIZhGIYzMSAEhmEYhuFSDAiBYRiGYbgUA0JgGIZhGC7FgBAYhmEYhksxIASGYRiG4VIMCIFhGIZhuBQDQmAYhmEYLsURCNlpASAEhmEYrrB//9tfPPrQ/Q/+6l8rZNFg0Wzex6J1H0IWNr3dvw4IgWEYhqtucfoTXnrdRw45bcUuB15cCS8886ZL3/Op4fZj091xrsdiMiAEhmEYZmPxb7g4awv/4pt3PHHv+3oP3O64h+57/y/v/qA4cQs/s3Vafyz/9egT6zeW/QSYeA21O7984LfaYzEZEALDMAyz8YO/+tdDTlshCKT3/cOq4pG/f/3dn75k4Zk3ifO45lj+69Gy4SKZPvO3n1ePxWRACAzDMMzG4sS9y4EX96+BiPN7RSQg5GdfWiKa3VMgpH8s6zc+99yzFfJXv/oF9VhMBoTAMAzDbBycuPufdHz/sGcrIgEhq+46yQQhIvGZZ7ZWyPd888uAEBiGYbiGliFk69anK+FYCHn66ZkKGRACwzAM19MyhMzMTFfCsRAyPd0t157n2WcGhMAwDMP1tAwh3anJwe1tl5yi3U7tWAiZmtpib09Soh3pMu0zA0JgGIbhelqGkMktTw1ocfJVt9WNAR0LIVu2PGVp0ST7zDkVCwiBYRiG62kZQiae2jyIxZlXmyL/zcSxEJK6wWF6oMhLOb8pD12y1oAQGIZhuJ6WIWTz2KZBLM682pTg7Dxg4bJjIWR88yYbi1bZZJCzqSk2GWgDQmAYhuF6WoaQJzd1BrE482pTAggZsHDZsRAy9uSIjUWrTOmhItnUlEh+bQbagBAYhmG4npYhZHRkeBCLM682Rf6biWMhZNPIRhuLJtGJwTadoi1HW7LJgBAYhmG4npYhpDO8fkCLk6+6rW4M6FgIGem0LS2aRKQE23SKTQbagBAYhmG4npYhZLj9xOAOP5WQU7TbqR0LIRuH19lb/iRFmxKmy9umXSLZbAwIgWEYhutpGULa6x6vhGMhZEP7iQo5DYTsBgiBYRiGK28ZQlrN31XCsRBSOiYlMiAEhmEYrqdlCGn87oFKOBZCSsekRAaEwDAMw/V0cOIeuu/9AkJW/vrnlbCAkJ9/+WwThAy1O6VjUiJ/7WtfAoTAMAzDNbQ4cS8886Zf3v1BcWavkL/92cuOPPs2FUL6x/LAb0vHpET+3Be/qB6LyYAQGIZhmI0ffej+S9/zKeG7P33Jz760ZNVdJznun3/5bEEgy2/7gvAzW6e1x/KZv/38V7/6hXu++WXH/bWvfUkQiPZYTAaEwDAMw2z8+9/+YsP6x8SJe+GZN+1y4MWV8JFn3ybO2tPdcWGux2IyIASGYRjmZHH6E/+G9yol0WDtWZvTsWgNCIFhGIZhuBQDQmAYhmEYLsWAEBiGYRiGSzEgBIZhGIbhUgwIgWEYhmG4FANCYBiGYRguxYAQGIZhGIZLMSAEhmEYhuFSrELIy09vBxwy/x0jKdwvEIZhGIZhONaCQN70ExlCXnzC6pee+fiL3v7YC45qpLB3+JqUFi1x34en8sI1aV3k0aVtZLo+qUScFNzIovskdVjyDeaUA1fwylBkT7JuZDUGruAZl7q6tI08+BFvvx97u3+jDyGv+o63+9d937V9o0jflcrFNnK3Yl1kI1P2/11FV5eyT+5K46KDOfUQFOj0cydddQW72PUEjayoC507xc+CgmfcN/obr/m7PoS84sv9vzAMwzAMw8X6/wfWv27N) -&] -[s5; &] -[s5; Check the `"Insert`" column for Callbacks you want to process -by method, alternatively adjust the name of method. After clicking -`"OK`" button, TheIDE will insert THISBACK assignments to the -actual position and places methods definitions and declarations -to the clipboard (you have to reselect declaration and move it -to the class).&] -[s3; Layout code generation&] -[s5; There is a tool [* Generate code] (default [*@(0.0.255) Alt`+C]) -in layout designer that can be used to generate code snippets -from layouts:&] -[s5; &] -[s0;= -@@image:1903&1281 -(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) -&] -[s5;= &] -[s5; &] -[s5; It invokes this dialog that provides some common code generators -based on the layout:&] -[s5; &] -[s0;=%- -@@image:2471&1878 -(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) -&] -[s0;=%- &] -[s0;= -@@image:2471&1878 -(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) -&] -[s5;* &] -[s5; [* Go to class using this layout ](default [*@(0.0.255) Alt`+J]) -finds usage of current layout in the code:&] -[s5; &] -[s0;= -@@image:1903&1281 -(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) +topic "Assist++"; +[2 $$0,0#00000000000000000000000000000000:Default] +[l288;i1120;a17;O9;~~~.1408;2 $$1,0#10431211400427159095818037425705:param] +[a83;*R6 $$2,5#31310162474203024125188417583966:caption] +[b83;*4 $$3,5#07864147445237544204411237157677:title] +[i288;O9;C2 $$4,6#40027414424643823182269349404212:item] +[b42;a42;ph2 $$5,5#45413000475342174754091244180557:text] +[l288;b17;a17;2 $$6,6#27521748481378242620020725143825:desc] +[l321;t246;C@5;1 $$7,7#20902679421464641399138805415013:code] +[b2503;2 $$8,0#65142375456100023862071332075487:separator] +[*@(0.0.255)2 $$9,0#83433469410354161042741608181528:base] +[t4167;C2 $$10,0#37138531426314131251341829483380:class] +[l288;a17;*1 $$11,11#70004532496200323422659154056402:requirement] +[i417;b42;a42;O9;~~~.416;2 $$12,12#10566046415157235020018451313112:tparam] +[b167;C2 $$13,13#92430459443460461911108080531343:item1] +[i288;a42;O9;C2 $$14,14#77422149456609303542238260500223:item2] +[*@2$(0.128.128)2 $$15,15#34511555403152284025741354420178:NewsDate] +[l321;*C$7;2 $$16,16#03451589433145915344929335295360:result] +[l321;b83;a83;*C$7;2 $$17,17#07531550463529505371228428965313:result`-line] +[l160;t4167;*C+117 $$18,5#88603949442205825958800053222425:package`-title] +[2 $$19,0#53580023442335529039900623488521:gap] +[t4167;C2 $$20,20#70211524482531209251820423858195:class`-nested] +[b50;2 $$21,21#03324558446220344731010354752573:Par] +[{_}%EN-US +[s2; Assist`+`+&] +[s5; Assist`+`+ analyzes C`+`+ code of your project and provides +several useful tools. The C`+`+ code analyzer is quite good, +it is able to cope with most C`+`+ features used in U`+`+, including +templates. But as C`+`+ is syntactically very complex language +and speed is important in this case, some compromises had to +be made. There is a [^topic`:`/`/ide`/app`/Cpp`$en`-us^ separate +topic] about how TheIDE parses C/C`+`+ code and maintains the +database of items.&] +[s3; Assist `- code`-completion&] +[s5; This tool provides list of class members after typing `'[*@(0.0.255) .]`', +`'[*@(0.0.255) `->]`', `'[*@(0.0.255) `::]`'. It can also be invoked +explicitly by pressing [*@(0.0.255) Ctrl`+Space]. In that case, +it can also list a complete list of global objects (classes, +functions, variables, macros, ...) starting with the letters +immediately preceding current position of the cursor.&] +[s5; &] +[s0;= +@@image:2084&1225 +(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) +&] +[s5; &] +[s5; When list is displayed, you can use vertical movement keys or +mouse to select desired method and then press [*@(0.0.255) Enter] +to insert it. Alternatively, you can press [*@(0.0.255) Tab] to +insert the first item in the list.&] +[s5; You can also limit the list to particular type by choosing it. +To do so using the keyboard, use movement keys with [*@(0.0.255) Ctrl].&] +[s5; When you insert a function or macro with arguments, tooltip +with the function signature is displayed and current argument +is highlighted as you type:&] +[s5; &] +[s0;= +@@PING:2662&250 +(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) +&] +[s5; &] +[s3; Simple symbol completion, abbreviations&] +[s5; Sometimes it is useful to just complete identifier based solely +on symbols in the file using [* Complete identifier ](default [*@(0.0.255) Ctrl`+,])&] +[s5; &] +[s0;= +@@image:1659&1362 +(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) +&] +[s5;* &] +[s5; [* Complete abbreviation] (default [*@(0.0.255) Alt`+.]) is able +to assist with writing basic blocks by expanding abbreviations +into templates:&] +[s5; &] +[s0;= +@@image:1384&1015 +(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) +&] +[s5; &] +[s5; after activating [* Complete abbreviation], expands to&] +[s5; &] +[s0;= +@@image:1478&868 +(A9kBFgEAAAAAAAAAAHic7Z0LsBxVmYC7ytoqBUvccmur3FJ2a5USBQPozQVm2XLLByuru6gIuELC5dUKAQEVyCriTQLc8B4xEHV5XB4hCTcBBZ3NC0KCQBKSrAGMLCNBnoEAIQnEUEbpPf0+3X26p2duz5yeme+rv1I9Z06fPn369Hf/OT2596WXuhjTNJuqv2DBgp1/3OXG6OhosC3HkqVL77vvvueee2779u2bN29+6qmnnnzyyY0bN4rCWfMunTZ24i8fv/Y3Ly65eunpx1798TNmHpdsYcpNJ9+1bv6CtbfPX33LTQ/+9Lvzpxx5wZ0/X/X7aTctP/XKRVffs0GEWV36zR8tG7rsf75y4S+SLaT1LQjDMEbm3PHAo0eLjS9MtUbmWA88asUQbyn3/b8t9b2v3/uERUNpjb/x5q6Nv3tr2/asDgTxwgOTt649e8ejM7avv/D52r/9fv6BO7Y+n2fHIC458siHBgbWTpy4euLEeyZMuPbAA5/+wzMN9/rxlDOGDWM4cY6ifO6sWTkP7TSQGu1uIe0qnzV7rbh8f7asv4h/335bxJRbD/75+usWrpt1xyM/mvdItbrsuzc/fNk35xw+ceSdL7/+Up4Wrvnx5ccdt9f55+85bdq7p0zZ4/TT97jwQnvjk4fu01TffnX/n753pbXsIevgr1qHHG3HwH88/5WTln/qqIfdlyLEW6KCqCYqJ1s45GPXrV27Nj5ZVYhqonJTc6mro02S7AztUPGON9587PHHFy5cuGLFCrHLK6+8smnTJqHipUuXDl36+V88Vv3FxmvEPLli2alXL/vGP5/1D8kWfvvUxqk3nnvGreZP7//xbQ/fOHXBOV++8K5lv3lu7IEnb1z02A9uffisn6w4/tKa8PBJVy356nCLKg4QKhZx2lV5VSzi/BVTP3D9B+7dtDwoWbRo8TEnnHDMiSeKOOlUM//8efqu/XY8dtHme4/edMeEzQ/n0lcs7th//3WDg4sPPHDufvuNnPPt/DtO+9CHhO9GDv/XoERsCxU32wHDsAJtytvtbiHtKn9r1hr3Cr7tuPQvb7998k0HCQ9fteSsSxdNubhmDt9z4vRffeMnK2ccP3rYR4bfkacFYeNjj9176tS/Pv30d5166h4XXGB7+LTT9phw8IRPfeo9+fsmQshWmPZrZ3s2PvxrK8WBfrn4icDD4i1RQWyrd1epWBSK6HMVb+5mhIqbqp9HxW68tvX1h1etuuWWWx588EFhY+FkMTG++P2Dao9fH0yVux+99uAp71fu/ubOP96/bsWUn37j9FtOPu3mE0Xqu2jdM3Puf2Lu/U/csOTxoSsWCQ+feOUioeLWsuIgQhWf8rjlWCCIDBWLOPqeo9997bsvW3P5i9vstGr27J8Yv/61IQRuWe8bSk2YY/Hcsi9tXnbki0u++NSCgWaTYTdmfvaziw44oHbAAbM+8Yk8yXAsgtzYjfz5cHQMy6XiM65ZFZPScf/90flrqnNWXXnzQ5fd+ODMi2unz1453Zzz+X0ueM/aTavztCC45JLvn332npMnv+s737ElfNRRex533Ge+/O35IvfI37edfmK88hHPxp871lOx2HY9LN5KS4l3ouL0eLGbESpuqn5+FXuDs3nzkqVLf/azn61bt+7ee+897Ft/f/mSk0aWDIl5MrJ4KC0rlmPL1le37dhxzA8X3rT0tzcu3Xj9osdm3bNh0qV2PixUfMy0u//93HlN3Qix8BYovnTHA/se3ZSKX9625ZTFp37w+g/uM7rPx27erwUVv7Hjtafv/Pimsf1efOTi1ubey1temb///iIZnnneeRpvgbKpeOaND3zzqgfMy+8/ZeZ9J1689IQZi788+x+P+NEHPnP13/7T5e+dfFPluhXDJ916+IcveO+5s2/N2cJxP7jn6xfcPeGQQ845Z88zv7XX0NC7Jgx+9MCBvxk49CNN9c2NYJkiSI+DZDhjacINFijSoj2O7BDtVrEb9frv77zrLrHvxaPnHnXFvlcuOUXkw+JfsX3F/AvytPDoE0+fdsm8r027+9KxR6795YaTr1r69ZFf/fv5YyddePPaR+vJ+s2qOOnhhip2Y/Xza65bP1uEreIvftE4+WQR7zvooDyHfmbRFzbddcgb219tee7N/PSnrxkYEELWMvO1R/6rLMcnR/Y44ebPTJz5d489u6GF3aecMfmww9536KF/JT73jadvQraHHG25Ql7/WztcCYvCDA/v9FWck75S8QvdjFBxU/VbU7EcVy8Y/pdvf/jgKe8X/4rt/DuKD4H3PvTo5B/MOWb47q9ceNd//tdtdy9bk1a5KRVn0NaZ8/oLqf3PGStWrGxrD0serc3Aj07fY+/vv+N3L/yuhX3feHOnu3H5FZd+7nMTdjrTcjx9c4UcRLaE3XDXIvKH9svUsWiTJMvJ+FXcmShz34iiosxXucx969VY0Gd0xWQrc9+IoqLMV7nMfSN6LMo82crcN6KoKPNVLnPfCIIgCKJN8dLLWwiCIAi9oXvtttNsAwAoH3m+a90zoGIAKCe67dhRdKfkAABqdNuxoywgK47izgHdvdAP4yDTz6Oh8dx127GjiEF+HSTciae7F/phHGT6eTQ0nrtuO3aUvp1gafTzTSfDOMj082ig4s4gBnkrSLgTT3cv9MM4yPTzaGg896Z1Vq9WjEq13gZRtp++nWBp9PNNJ8M4yPTzaHSTisvB8kzS9hKD/BpIuBNPdy/0wzjI9PNoaDz3DuqzSDJ8m63iV0PmTTYmz3u1/Yjj+Ey8aE2+fXZMNv6ct+44cCdevDTscOb4rLloYv4TKjeqcejU9CgfKaNhND+Nuw/1HdEsOW+NaDXTqFRr1YozwmbNWX5wCNYgaqZ/AcTbXoH7prNRNWP1ZaoV7xeZu7uahlWtWRWnpFL16igL86j4DymUS8X2FA5GO7+8WlRx9oeFZH3FxLP76A/LmosumueeQ5fdfAWMQw+puKDRCOaAo+UuGZsizr1DmIFGa+Gms+2Z1ydq4GAHt5aivu3hmFqFdY2KZe9at93rHkpZ2D4VvxLi3GuvtJXVjteyClJwVLy66eNlf1hI1ncnXqTIuedWNyoqOQWMQyemR4coaDSkOZB3GuuniHPvEGYk/1Vth2lxUsXKfR0cr8bkbEqmrZlSqpwobEjLKt4SMlfca3O9jYEZc2cMuJ/J525Z7W2K0tVBVf8j+1xvb7/SwIwZk4OKwZ5uPftlsEOwm1s5ctDgQD7bhYpnzN054HxYGJjx2pZ8ZA9Lsr478aJl9rlK/QlP3TkVu9uTJw84L+b6J+5szJgcGzT1EIW8NmPA+9DkjJHylPWOQ5unR5eNhnwFg5ktz4f4OAQjGNld7Bo/+2449+YmQKNbQzWqDVRsL1i4dhRbRapY5MxJFQeFDZkzZ07a38MSbzWvYiMcuWDE7O3YpJFH2HvPuS7SsK/2KtpbgXdD5Dns72eXxeqJiWcZAzudVt8yjLcSd66aIibelkAZivsoIurIaEhjGd+ShijAvvuiN5R0yqvFHfdnp76ysDPj0P7p0WWjkabidMNIQzgwMBBM9i489xYmQMatkaxv00DFQVn4HbYGKg7Uqlyg8EokUSsL26fil0PmTjImzfU2BmasCgpV22LT8H+yiZJV9nxa9XK02qog53EQbdsl7iECgj3lA4Vd8dk+SUy2VcntBmRPvGR9d+Kp23JOx+lVw/FRFSqHKGz8zQFjV3RkIqc5d5LlHFpZ2JlxaP/06LLRkK+gehqnjcPcSU5WaW9HhqYLzz3fBMi+NdQtv9xogcJ/jlcxzXxZsZzlmkb8sZ1pRkrSCtun4pdCbhf32u3exsD0VUFhYnvV9AGvptjyS4JaimoBiaKwQD5Qcs9tk4zd/rvydgPE7EobFvFWsr478dJa87vVaHzSBi05RGHT9g0YHSv5NF+bPmA5A6IsbEwR49CB6dFdoyFdQeU0To6Dt3H7JPuV2J50e2RkuvHc802A7FtD3fJLed1XBKbqqZyysCEdVXFQZo95MMLh6BtSYWyspYqxCtJ2eCmD+aZPxbdPl39ARM8/bazSCpNDFJyLfTcNTH9NOrB4yy8Jb09lYUfGoRPTo7tGQz7xYE5L5YpxcNw0EHp50qRJfu3uPfecEyD71oht2KPRtATHQbEqziBtrxZV7N5P9ocPMZNklTpl06dHE4PgE6gs4HiZ27hoLlpeAhWruusVpWbIKQOoGKLYeXmfhoK0Z9Kk3VJJWmHHxqHd06O7RiNA/nkS/3AXHwdJy5HtLjv3ZidAH6m4NTI+jLdOxgfPLJKfVgqg2AWKwsg1RMqfOE38GJIp0Ti0OD16dDRy0afn3iEJloN2DLJqVSLnfm1RcQbJ+p2ZePmGqOAbsCTj0Or06M3RyEefnrtuO3aU4gZZuRLRFG1RcbO0c+I1O0RF3oDNUvQ4jH969NJoNEufnrtuO3YUMcibQcKdeLp7oR/GQaafR0Pjueu2Y0cRg/wiSLgTT3cv9MM4yPTzaGg8d9127Ch9O8HS6OebToZxkOnn0UDFnUEM8gsg4U483b3QD+Mg08+jofHcdduxo4hBPh8AoHzotiMAAFiGMUwQBEEQBEEQfR66s3IAALCmj1QJgiAIvTG28J4+jG3tYVcbsKwXCYLog+g7UDFBEOWLvgMVEwRRvug7ulLF9R2zza1Wbdfs6hbdE4ZQRL26u8KlIcYVfUf3qviV6u6FtfgV3Gha4/SzaHbYsEQ0387WhWLHyo7Cp2XNNDwq0+rVATNx1nlC7Oi1UX0wLK8db4QcX1MdWq7v9GSgWm8wDqaxqxZtpKv6Hz9oax0mxhd9R1equLZrOEXFRYVovCWlb11YhIpFVmn4NrPtYd7ml0fMUK0o5NOo5YGIyrxDNGGnaqVB5VhK3HX9Tx5RpeKtzh9nJ/NvX0TYMHrmmaMbwm2fkcXZv9lY1PV3y6wU4lTfMNqo4TaQR8Xi9gm2R0d3un9RS2xoUbHIe92s1Qtffcps1i1caO7y6+/aKF3usKnKjpWV3SulOzSmYq+dWrhX+K5I0f3OLKxJKpbKm0iV6zsqYnjDRqZVfI9Fq02rGBEkv3mpo59GRnSXX2XqLNRVWS04enLHaErcff1XtGNWg/qRzlQr4kbY3ZTYidwR8tLiEd+MYvNMSa6BMlOUK+2ZgqPhcFexg+fiHAovmGZV7ErYFbIWFdvhrBJvNCPydCOZzToW9Qwsv2sb1dwq1clSsVsSJuHhMvXWheGOkQUK2e12+zlsrLi1a8cnzSPVT8kq3Y/tlWnutpzUNZtVJus7qvTr20aNqTK6Stxt/Ve2ENRXHD32o5MoLCRb+jqVc+MIacptZFTxfoqqNeTFLag4CF0qdj2ZX8VqhWbePnnbiT06FJmw26ycEqsS8lg4KxKqD7ytqixtr0JUFnOj9DK+Stxt/Ve3EFZI6Vjq5SNaDw8/T7VSxRmuL9jvOvb1cl1p33hb/p5ppo5X7QDdlhU7macUSWGWQsUtLRqLrDh+O4u0zU0O1fWLV1lMTSqVRbwn11d8caKr+p92xGwV2x4mKy4+EkpMX22IVgpWHBI7xPwqvx/43KugYYWiWRXnpz0qti+Ta8WVFUWemVvFse9a2IaXHwIq2/FKnIxXWqAIu2Evevh3ZWvf5UiuUUS/A3CbGVlW9a1if6KXtNZelflLB1bsA34iJe6y/runYBnRs8hSMasTbYyELVNVHFOqvO3p1BV0/OGcStXhWkjpFyjcX5z0Q+dfXSp2lyaiKo5ny+6CQPAsz9ZsbVcskV5ZCev7Hla34953/prD7pXVXWE7tV1hZXNXdLk47wJFJBI3eFV6xBVJ4cKvcgU+uc00Ivj14+XeLpEvg8m7qOu7XwYzzeBPOMsOTP0ucVf03736MRUHz/7sNv1jOTZ2a/LMrn3hy1F+SKde2ZUy2Ji6Y4mtYoEi0mDYkI6vUGSrODab3cI1o6PDhiH+1ariYr42RhQUQk14iSgwHKLytJPbUJEbRpPrEPK6QlKnCTnHG9Rp4gYqHh0dDTw86rg3p4fbqmKCIHo9fFcm5XlmdFnXK7JfRVZ4neXfhkqVG/Qqa3hkZ9NwgcK18ajv3mF/dWJY3wIFQRC9HoEpO6zFxt9FbhNd+b/tCILo8QjN2EEX2zmyjozYpn0qnjbtT7EoQsUAAD0IKgYA0A4qBgDQDioGgLKh/c/M9dLftkPFANAa2v/OabcHKgYA0AsqBoBCqEGtNjo6Koai2eUICxUDQEHotmApQMUAoBfdFiwFqBgA9KLbgqUAFQOAXnRbsBSgYgDQi24LlgJUDAB60W3BUpCh4uXLl6NiAGg3ui1YCtJUvNwHFQNAW9FtwVKgVPHyKKgYANqHbguWgqSKZQOn2dhKqPh739sdC1QMAHnQbcFSkKbitJeoGACKRbcFS4FSxcn1ClQMAG1CtwVLQVFfZkPFANAaui1YCnpSxaZhVaqFzZO+pWYaLpVqvV6tBC909wt6Dd0WLAU9qWIoipopNBx5pbEz0KuMgoNVVhVXK5ZhWIYpFOBsOFFzL17dqhhhoajjFVfjJWGhGb4b6kVqp5p8N0pGO3IPjYpVl1o2TafEfem+5WAaiZNSnlfQTs3yBkSqrziuT1A51lX1cVNQqthJkCvVqp80G16dtPJwd0UhANiUWcWWq5pAqrXQHqajJhdbjFELRfYKSiqWWY3WdywXJHpmDjup24kiHOi1WfMU6u5VD7rtHDfSf1+VaedlL7lUvDpyffVxXQ8HffO7kXHc9PNVZ8WOdf2W7MULbzut3NsdFQOk0KUqjqR8Zvyk0lRcj7YTd2ktr4rryfq1SAoqq7gm9cc1bZi6S+E6K+28YqvfMdvHj+soVzae6bzMOG76+aaqWN5RSNfvv7ocALLpUhV7BcHH8zxZcaKdFlWc7E8024x5Mk3FGQdKnpcZdaZ3iLTjJlTs0vC4qp5IKhZiDVUcSW4lFavLASCbLlKxmzEG6gtvcaWic6i4xQWKZDuJ9Dhbxd7yb7SdoFx5XpG+1fyFhbTjumMljYCsbsVx05HXGORteyFCStMD46aVu2PHFzAA0ii5ii3pMZP3WC14BKZ6JmVFH0vJi6uxp2Cxh2u20xplxRnthHms6S8yVMIKVdPzpCn1Su5nsjPJZ21CamaiXHHc6E+u5KcGxXEzqUlP4YJCkf2apv/1Nmn9N63cb4ccGUBN+VXcMSLrwCXDbJS+dpjYQkTDcsfEPLADNcwLCxVHE9Ey2c6nfD0M/rdHbLUhrRwgG35IW6gYAHTDwpWFigFAN6jYQsUAoBtMbKFiAIASgIoBALSDigEAtIOKAQC0g4oBQC8afjVwKbFQMQCAVlAxAIB2UDEAgHZQMQCAdlAxAIB2UDEAgHZQMQCAdlAxAIB2UDEAgHZQMQCAdlAxAIB2UDEAgHZQMQCAdlAxAIB2NKr4ThWFqNg0rNQ//17L9Vfsw78jHzDuv79VrUh/Y7xuvxpngwDQM2hW8bPPevHMM3YUpOIG1Bqr2LLNKcm3HnnV0kHNmMwTBQB9ioZfDVxKLI0qdg0cRFTFFcPLYG1l+dms99JWpV9SsaRk0y8045fbDCo3o+J6JJd1y9WJclp58G68lMQYAKKUU8WW49tAV7ZmfeuakmxrZlytdklUxeGSRd2q5FigsCS1yioWheFLkdf6nUsrD3uk8LNTrx4vBYC+pbQqtpNhSb+ezhJpbfiW+35UxbLDlbsrUWTFiWWKmum8mVYu9SCZFFvKVBkA+pjyqthJjL0FikCnHVRxBFQMAO2kzCq2zWnadpU/9De3QOEsSgTScxeZW1Fx7FsQjnGzy8MSFigAoBHaVJzvy2ymanU3fGyXyJCDcunLY1bwELBaTbybQHoGl8xvVV9wSyuXGuSxHQBko0XFO3fuzK6ge1QKhS+zAUAjtKi4IbpHpWD4Lx4AkA0qBgDQDioGANDO+FW8995vxwIVAwA0BSoGANAOKgYA0A4qBgDQTtlV7PwHCv5nGgD0NiVXcfI3VQIA9B6oGABAO6gYAEA7ZVZxzTQSv4kdAKAHKbOKLbJiAOgPUDEAgHZQMQCAdkquYr5XDAD9QNlVDADQB6BiAADtoGIAAO2MX8WG9Mc93Vj77FvjjId3PUQQDeOQdx4qQns3iJZDt/9KRDlV3P6zJnoh9trLEKG9G0TLAQGomOjeQMXdHhCAionuDVTc7QEBfa7isSGp50PjnVcjg5WR9ZGSIcMaHMm7+/qRpvswNmQMjtTbdJtsGqkMG4YdQ7VxNtWmfmareGTQ8Bisjg3FL01TnQ/aWT9SGRpry2hnxMisysgm/+Wm6uCsalEtF3Bd1lcHB1vvDwT0tYrH7N6OFXXLjJnG+JRl/1wY94+DwmLMHPZvsbVDxryO+2eb+7Mp8wJlqFiWjPCnYTRW8cigmTyW7WH/sjrtGIWrWHncMNaaxrzIvBqbZwytbfPgj6WkEKpyMUQtjwkE9K2KRwbj3Q5uh/CtQWu9XzjkZ85BIh27tUUOJk9IVyOxZNsrHArfDRoZig1jIye7WrAztRxZTdgZKbLT9bVDlSXBCa6vzor8lKk5eWKuPLOpfoax3hp0xj+7WqqKM1I18ZYRZrmKQgfvUory9B+vYdZteC6VXe3m0u5Ze+VDZqx+6nHlo8xKiDc1MS7uujSj4vEkxhDQtyp251Uy6RqSNOhaN6gQSHhMsZgg7gJlThWXql0yaA2NuLdDxPYtZMXihmrTAkVcxZF7rYlbvoV+uj8K8zSequIxM+1w8iKSrSPpvBTZaVY7ksTEByK/ncgKhrS7o77Q2HKzmVlxbWg4+a4olJYs2nFdmlKxfdwW138gABWPRWdarESYObizYmaOhJ3eNKHi9arDtU/FBWTF41gPbLaf+VfXc6i4NhRmnLVkFmpIV60JFSey5WAtOkPFynL1cYMQCbBCxapUuZDr4n4YiYbd7bTy8BRaXKOAAFTcnIrTVNmUiofUhytZViytD8cXKMZ9y2eGyIpz2jhrgUKtytpQ+s8UhRLTPnr3qoqDaC4rRsUFgIqbW6BIVWUzCxQpKpYXPXLqqH0qFraZ57ccf2w3ZkYWWsdzy6dEzjWKQMVDRvxSxr7NEqgy4zsD4S72CXpXM1rfzrFd50TbDw0fnqmTgedTseK4Ycv5FygKvC4sUHScvlVx/DGZtGYrP9EbkyZh9kf7ZGIgH8JPmaSncsGHvuTDwWihKqTP3YkP2kXFkkHnm2yJL7M5D6RyHm4c/czx5C5DxfG1COkURgZT+jOWeKyWqD80pm5fVV4ZGTHd52LBMzK7mn+UyFJz+uDkf2xX5HXhsV3H6VsVFx/j/jJbl0TrKVDh0Rf/xSPvl9m0XRe+zFYIqLjASP4XD6Kt0Rcqbud/8Sgg+C8eBYGKie6NPlFxDwcElFPF2n93H9EVwS/J7PbQ7b8SMX4VT526Oxb86ngAgKZAxQAA2kHFAADaQcUAANops4pr9jffzZrW8QEA6ABlVrHl2BgXA0DPU3IV16sVVAwAPQ8qBgDQTslV7C4YV6p1XeMDANABSq5ismIA6AdQMQCAdkquYr5BAQD9QJlVzPeKAaBPKLOKAQD6BFQMAKAdVAwAoB1UDACgHVQMAKAdVAwAoB1UDACgHVQMAKAdVAwAoB1UDACgHVQMAKAdVAwAoB1UDACgHVQMAKAdVAwAoB1UDACgHVQMAKAdVAwAoB1UDACgnfGr+Pzzd8cCFQMANAUqBgDQDioGANAOKgYA0A4qBgDQDioGANAOKgYA0A4qBgDQDioGANAOKgYA0A4qBgDQDioGANAOKgYA0A4qBgDQDioGANAOKgYA0A4qBgDQDioGANCOLNXly5fHxJsssVAxAEDRxMQruzf2EhUDALSJpIpd/crbqBgAoK0kVyRktiWwUDEAQNEkZZvhYVQMANAOlL5N8zAqBgBoB2nKRcUAAB0DFQMAaAcVAwBoBxUDAGgHFQMAdCOoGAAKQciEGE+gYgAYP81+KocMUDEAtMbo6GhgEl3bPcN55+2OBSoGgDxs02fg3rMxKgaA1tBtr54CFQNAa2h/7NXtgYoBAPSCigGgEDr5+b20jI6OtjAUFioGgIIoTGfdDCoGAL0UprNuBhUDgF4K01k3g4oBQC+F6aybQcUAoJfCdNbNoGIA0Mv6wnzWxWSouKm/bYeKAaA1BkeQcaqKm/2Lz6gYAFrDGBprh9y6C6WKl0dJ7mWhYgAoCFS8TaVi2cBpNrZQMQAUBCbelq7itJcuFioGgIJom966CaWKY3VQMQC0jzaIrfvgy2wAoJfCdNbNoGIA0EthOutmUDEA6KUwnXUzqBgA9DIKDhYqBgB91KBWQ8UAoBfdFiwFqBgA9KLbgqUAFQOAXnRbsBSgYgDQiySk/z3CeMO8QZsPNYKKAUAvkpBQMSoGAD1IQkLFqBgA9FC7ob6vYRmGta9ZR8WoGAC0cIRhHTHN1tEN5hsGKkbFAKCDffet+/ZlgQIVA4AeUHGtOBWfe+7uWKBiAMgDCxQ1VAwAuqlN22zw2A4VA4BWdFuwFKBiANCLbguWAlQMAHrRbcFSgIoBQC+d/yXt5cRCxQAAWkHFAADaQcUAANpBxQAA2kHFAKCXimFj1qSimmmE+O8oC3sFVAwAenHdWqnWvdf1aiUiYGdLWdhDoGIA0ItRMc1K6GJXuqGZ0wt7CVQMAHoRgnVM64vWX4iIiFdZ2EOgYgDQiy1Xx7SBZt0cOOZeZWHPgIoBQC9GimF990ZKlYU9ACoGAL04TlUvBkcf1mUVdjuoGADKQODietWMrknYflYW9hKoGABKgftgrlKtSWvCgXLrqsJeAhUDAGgHFQMAaAcVAwBoBxUDgF46/0vay4mFigEAtIKKAQC0g4oBALSDigEAtIOKAUAv/w/+IiKG) +&] +[s5; &] +[s5; Abbreviations can be defined in [* Setup/Abbreviations..]&] +[s5;* &] +[s0;= +@@image:2268&1834 +(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) +&] +[s3; Code navigation&] +[s5; [* Context go to] (default [*@(0.0.255) Alt`+J]) navigates to the +place where current symbol (function, method, type, variable) +is defined. It can also be used to go to header file (when used +on #include line) or matching #if/#else/#endif. Note that this +is perhaps the most often used Assist`+`+ tool...&] +[s5; [* Go to definition/declaration] (default [*@(0.0.255) Alt`+I]) +function goes to another place where code or data currently at +cursor position are defined/declared. In most cases, this means +going between declaration and definition.&] +[s5; While jumping around the various places in code, it is often +useful to go to the code you`'ve seen previously. You can do +this easily by pressing [*@(0.0.255) Alt`+Left arrow] and also +go forward through the history of jumps with [*@(0.0.255) Alt`+Right +arrow].&] +[s3; Navigator&] +[s5; On the left side from code editor resides [* Navigator bar]. It +allows you to browse and search the code base by the name of +symbol. The bar can be hidden or brought back using (default +[*@(0.0.255) Ctrl`+N]).&] +[s5; When the search field is empty, Navigator is a list of symbols +in the current file:&] +[s5; &] +[s0;= +@@image:2350&1546 +(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) +&] +[s5; &] +[s5; You can write a [/ symbol] name into Symbol/line field, or [/ scope].[/ symbol]. +Navigator will sort entries based on relevance: complete case +sensitive matches are first in the list, then entries that start +with search field case`-sensitive, then entries that contain +the text, case insensitive.&] +[s5; If you do not want to have Navigator displayed on screen all +the time, you can also use Navigator window using (default [*@(0.0.255) Ctrl`+J]):&] +[s5; &] +[s0;= +@@image:2456&1906 +(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) +&] +[s3; &] +[s3; Graphical symbols used by Assist`+`+&] +[s5; There is quite regular system in graphical symbols used by Assist`+`+. +Circles indicate code, boxes data, triangles types. Cyan color +is used for global data/code, yellow color for instance data/code, +gray color for class data/code.&] +[ {{594:9406<417;>992; [s0; +@@image:100&100 +(AxAAEAAAAPD/AAAAAHic+/9/kAIGvAC7eiCJFY2qp496UuJrkAAAoktRyw==) +] +:: [s0; Global variable.] +:: [s0; +@@image:100&100 +(AxAAEAAAAPD/AAAAAHic+/9/kAIGvACreiCBFY2qp496kuJrkAAAIdpRyw==) +] +:: [s0; Instance variable.] +:: [s0; +@@image:100&100 +(AxAAEAAAAPD/AAAAAHic+/9/kAIGvACr+gM4wKh6+qgnKb4GCQAAq8JiSw==) +] +:: [s0; Class variable.] +:: [s0; +@@image:100&100 +(AxAAEAAAAPD/AAAAAHic+/+f3oABBohVCWRAEF5dKCqREQ4tJKnHqRiHFlqrp7V/EVqIDn90XUSoHAwAAKiybLA=) +] +:: [s0; Global function.] +:: [s0; +@@image:100&100 +(AxAAEAAAAPD/AAAAAHic+/+f3oABBohUCaQhCL8uZJXICJcWktTjUoxLC63V09q/cC3Ehz+aLmJUDgYAACJHbLA=) +] +:: [s0; Instance method.] +:: [s0; +@@image:100&100 +(AxAAEAAAAPD/AAAAAHic+/+f3oABBohUCaQhCL8uZJUNqLrwqG/AILGqRzYcyAGpxGsF3HBMhEc98eaT6n4ywuc/ieGPposYlYMBAAAU809W) +] +:: [s0; Constructor.] +:: [s0; +@@image:100&100 +(AxAAEAAAAPD/AAAAAHic+/+f3oABBohUCaQhCL8uZJXICJcWiHq4FcgMPIajAVxWYDobTYRC80l1Pxnh85/E8EfTRYzKwQAACLNC2g==) +] +:: [s0; Destructor.] +:: [s0; +@@image:100&100 +(AxAAEAAAAPD/AAAAAHic+/+f3oABBohUeQAG8OtCVokMcGkhST0uxbi00Fo9rf0L10J8+KPpIkblYAAAFt98ag==) +] +:: [s0; Class method.] +:: [s0; +@@image:100&100 +(AxAAEAAAAPD/AAAAAHic+/+f3oABBohUCaQhCL8uZJVwdODAAVxaMNWDFEPFiVYMcxl+9SiKCalHV4zXSUQqhqjHohi3+v9IIY4cAbgUo+siQuVgAADJjm5+) +] +:: [s0; Friend function.] +:: [s0; +@@image:100&100 +(AxAAEAAAAPD/AAAAAHic+/+fCoCBgYFUxURqQVZGUAumAjxacElhFcdvNZosMV4jSQtJTiLJyyQFKUlRRkaSGBAAAGFmtWc=) +] +:: [s0; Enumerated constant.] +:: [s0; +@@image:100&100 +(AxAAEAAAAPD/AAAAAHic+/9/AAADAwOJihmI10KSeohiCCJGC0nqkRUTo4Uk9ZiK8WshST0uxbi0MBAC+ANqAAEAoCJ6og==) +] +:: [s0; struct, class or union.] +:: [s0; +@@image:100&100 +(AxAAEAAAAPD/AAAAAHic+/+fHoABDEhST5IuZGXE6MJUgF8XLilcuvA7AKvtFJpPvPuJDx+Swp+k+B08AADoK6N5) +] +:: [s0; typedef.] +:: [s0; +@@image:100&100 +(AxAAEAAAAPD/AAAAAHic+/8fChiQACYXEwDFD4ABXD0yF00lBMAVYOVimowHUKieJPeM+he/f9FsYSAu/QwSAAAhk/DA) +] +:: [s0; Macro.] +:: [s0; +@@image:100&100 +(AxAAEAAAAPD/AAAAAHictZJBCgAgCAR7ej/fDqKipmjQ4slmUCrAZ+1FFU4SElylpaSErRQmSppiWUXg+9ygjPgajspvfrr/A4/h/Rul976qtP+PtxpkJwecjxAf) +] +:: [s0; Green border indicates template.]}}&] +[s0;3%- &] +[s3; Definition/Declaration conversion&] +[s5; [* Copy as definition/declaration] operation (default [*@(0.0.255) Alt`+C]) +is capable of converting between method declaration and definition. +To use it, select desired methods:&] +[s5; &] +[s0;= +@@image:1983&925 +(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) +&] +[s5; &] +[s5; and invoke operation (default [*@(0.0.255) Alt`+C]). Assist performs +conversion and stores the result to the clipboard. Move to file/position +where you want your method definitions and paste:&] +[s5; &] +[s0;= +@@image:2100&1470 +(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) +&] +[s5; &] +[s5; In similar way you can perform inverse conversion (from .cpp +definition to header declaration).&] +[s5; In addition, it is possible to use this function to `"extract`" +functions from THISBACKs:&] +[s5; &] +[s0;= +@@image:1525&306 +(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) +&] +[s5; &] +[s5; gets converted to&] +[s5; &] +[s0;= +@@image:671&159 +(A9cAMwAAAAAAAAAAAHic7ZtLcpwwEIZZ5kiJDqTzcJIsdYRk4xuw8txhytkRJPTo1gOw8dBQ/F+pykYSGsb6poWY9tvj39u+0jlGAL7KTgMhIdgPJATiQEIgDiQE4kBCIA4kBOJAQiDOfgl//vg1lb8ff1BQvlY+diP9MQKXBxICcSAhEAcSAnFWHftd4xIS6m5UfaPNjNOGfipmaQCju0BzIDF6pfohHAz2SPJq9rFJwsfDl/d3Wy4i4QpmVUKHm1+jyYwfQq/00rVNnw/eXlRciU0Szu7FcqSEw6g6H7XsHzlEMH9oJyvUqJEEhlCp8/F07LxNwmG2IVo4HdvAqFyQ1MYHyzT/rrmjlfMZ88HcfR7K12ud9fcNhNKuqUde2QyG9DVPytkldEymxT+wFSz4polmRudS2RouYVqgg9urEoaIZC2MV6BmMez02p9D6DQ1pMmeWsMpA41rJKrGkUYvURJlMRJWw557vYppkPCbMEw8PwFFKEtNczuXkNpbPb32umm2068x5oQq79iQi0PDZ0vCav24LOFQCYRjNTxehGtI6IKhX46jSK+XkOxMyLoICb+bq0hondHWK3rj87nl2C3BcZrmm8mV3TG/y/JitCTMdqzk9LTUugV4m4ThKCz67MK2L8dhNV56o9JskvAcj2h07S4ubUyKqBjryaOMtM3p+6KVknYH88zmQdFa4Oqm5rT14HuKJAodrWdnden2kt+6mWLDwt711o2JG+bsAXJVwufzudxB+h3ckq2PaFq7lXOxKuEq0u/gptzqYTUkBK8GEgJxICEQBxICcSAhEAcSAnFWHTvPw+rPsjufcMzSWU71xO1Wj2junU/IngHzb+VEQT7hjfIJ2dymr3pZzjXzMgVPpWh0qtfTr/ny76nr48RW5BMeHAnl8gkbkdAYmsUae9CcQDv3ZQIDr6ehdXDJiMv9q1dFKpFP+Eqk8gl53gI3ppaowPrzaynriwxqckprnHgiUrnukk+4JeYUWYSs12J9nirWvISsGyS8UT7hWJeQ3n3RBP1s50JObdW3VtBW/6WrQj7hIRyaT+gHr+8/yEKqtE7/x8TX1+p/P+XLa7VpoX88C/mEIhKCBPIJIeEJuNXDakgIXg0kBOJAQiAOJATiQEIgDiQE4kBCIA4kBOJAQiAOJATiQEIgDiQE4vwHF7IzRw==) +&] +[s5; &] +[s3; Virtual functions&] +[s5; This assist operation (default [*@(0.0.255) Alt`+V]) invokes the +overview of virtual methods defined in current class bases (defined +by actual position, to make this operation work, place cursor +inside class declaration):&] +[s5; &] +[s0;= +@@image:2271&1656 +(A9cCEgIAAO79AAAAAHic7L0JnCRVne8b3T1sztObyujDkaUQQQbBqUYUBVqKHWkak1UQaBqQrYEm2WQRId2f2y11nPHJnTulzr3zXMpJ2zfi8ETTnvkM1ytgNa1iA81k093VS1HQdFNLs8b7Z/w7T508W5zIjMzKyPx9P/9Pfk6eOHHOiX9kxv+X50TGCcM6goWPzDl9JVlwyp+qdtrqnZZfG5z9dPDRDcHiTfw659KxYPGW4KObgou2VBMX1ez8Z2CwjrTnYLBOtAs2w2AdZ+rFs/5yeibbaPV14aYoMRol6G2Us3B9cPKGqlGi+nZTNf/kseDYVaEF1h67XjWx202v7nln+JefrtoBnwvf+dVw/lfC+d8Mj/p61Rb8bdWO/ZbVuAAM1mnm+NDCYLNos/7VgMGMpn9QWQOIV5tVNUO9kZYgI2mx63WvkA4J5j+oK5C5F28hBTL3um273fIalRQ6ZP8vVo2kyLu+NmOkSdjkTBgMBoPBYF1gFPTZ5LesJXh0grWBMMqU37J+EMaigmy3G14lC85/ITh6ZkgkOO63QX5dcPYTc654hiy46lk2EiTzlk3Ou+ElkiXBza/Ouykk4zS9ikxOcOauN7622007S8JgMBgs1uZc9xoM1mnGn0yO8hzi2eYsfWnuFS/Ou3pi3hXb5iyZDC7ZHnw0er1wO73dmbPkuZ120Xj1lXLOHds5j0M5ZOesD074fbBgzYwIWfhI8NHKjC3eFFy2hQUJSRG2qiCxWHUrdUnYFdtgMBgMBoN1j10+XrVLn5lz6djci7eQVW8KPX9j1c4d3WmkLtjOfrpq+bVkcxatCU5bU725VNxrSgrkyIeCvX5UVSCHr6huJRFy9hM7TdIhQorstGu2z5jIvOrZahlZ+cBgnWhbYDAYDOZrpDEUY72haYyazKiJDWGsOkhykB27Kljw8E4jBULag+zN39mZOO631X/EWESIMEV4VHOoAP9NZrHUZ5ZGMBgMBoPBmrZdPjp65d89M/rsy7a/ltigvWjfZiv55jO7nBeNb+TX7XLW2iu/vml0PHklX6jscnQkP+Y/WFUdh/w8OGi4KkLe8U8mEbLBKEKE8JC0x6boT7ub6uSHGJmBwTrHxDghDNZRxj8qYTC7Xfk3W9aMvnrzvTuWfGX63M9OLbp76tQ7J4//+OSJt09+8OaqHX1j1d5z3QRZ/9KJgz82sd/FW4+4au2qJ7fTvulUkl8X5KsK5KWn1zzz5Zu3fGLJphvP3bh00eiVp2649PgNl5+44ZIPkq2/6Giydee9p2pn969ddPCak/ZbefYRW1evIh1SVSAsQt5+f1V+vOGTwV4/qr5d8PDck1QRUpUZLDaEFLl0bCZzcf1wjdBss/6NhsFgsAzZbAc4WOdbGIYf//sdXyu9+M2fvvi5/2fHrX+/Y9m3dlz9jekrvzZ92X+dvuQr04u/PH3B/zV13uem8p+e+tBdk8feOnn4tdsPuGh9/0X/MTr+cjqVRJMvVMn4Vz++9R+/9vw/ffO5ez/3zFdvHfvCsrFPXb3lniu33HXZ5jsu2XzH4s23XrDppvM2LsuPXv2hDUuOXXvu4StPPuC+hf2jYy/tHAk59De6CKlO3EQK5HW3//HN96z5P+58co87ntz9jidf/4k1b7hrzZs++eTr7nhi99ufCG5avettTwQ3rw4+sSm4crVhCmbWf/DCYEab9VgDgxlttgMcrPONQv8VX5v+1r+8eO/PX/riD1+88zs7brp3x/V/SxJixxWDVQlx6VenL/7S9AVfmDrrM1On3z11wm2TRy7bfvAl69988v20bzqVkAhZWBUhW+654vkffGvb8L3P/fcvjn/9zme+fNPY567f8qmrN999BemQLZ+4dPNtF2++5YKNN5w1uvT0DZef8PQFR6467eAfvufN1UpIhJCRCOn7zYwIIVly7Kqdj0Wlb8S1DwXXPhosWxlc/+i8m1btciOlHw2uH6m+3jAy8K3RYOnIid+benXpu+lt8OGHMBEDg8FgMFjrjML3+Z+fIuXw1R+/eM8/7rjx2zuW/s2Oj/3X6cWkGT4/fc6np84sTi28a/K0u6pzK8feOnnUTRNHXLf9kEvX73XqL6qhP5VKFq1nEbL5lvNJfmz97lef/dt7nvnSjWOfWbrlkx/bfPviTTdfsOmGczZef+bo1QtHrz6tOkGz5Nj1Fx219rwjVp1+yPD79qpW8r5VVWMRctCwUYT8rrLm/lWP3//7J+5f9UT1tWqPV3Po7arH7xtZ/fNHH/+XkdU/XLX+yK/+ITjjNxAhMBgMBoO1zih8n/XpqTuGdtz13ap4uOrrO5Z8efqCz02f/ampRZ+YOvm2yeNunjzqhon3LyPZMHH4dRPzr53ov2bboZdt2Of0B2QRIlcSeyupWklNhGy64azxr98x/jd3kQKZfvjfqjk3XbDp+rNHr1604WMnb7jkuPUXHrX+gvdT/gu/+PG6c+dXzu7//RmH/viofcwi5C8fqI6NHL2q+s+as5/mfobhSx4WXvaP6xQRUhl7hfL7lm6meuiV0pTDhz9SeYmsFWen/McXt0682qJT33DlLe0VDAbrHjsTBosxCqaL7p5a9q0dhWj44rKv7Ljw89PnFKdJgZxy29TATaRAJo+4fqL/2onDrpk49JrJw66ZfPc12w+9fHSnfjBVEitC1EpqImTj0kXPfGHZM18qjH1mqSgcKZBTNlwyQApk3XlHiPx1Zx1WOevdv19kEiE8HUMihHIGor/3nrM+2ClCXoxMUR0i59UwfK06u/S9ytwzfyutd7Nx6NdTlP+RJT+cs+jx/JeepfQ/fv/RPfoGg0iEPPrYM7sf8LfGr+HgzyaEXElqfKR77P3FVC4ISk8arjzdXsFgMBisZ42iycl3TF79jap4uGJwx+IvTn/kM9P5u6dOu2PqhFsnF9w4+b5lE3997eS7rpk8+KrJd145ecjVk4des/2Qyzbsffov5ZEQuZJYEaJWUhMho1ecvOVTV1dnYe6+YvNti0X5DZeesOHiBevPf9+MAjnjnevyh6w989DfLzrkxx/Yu1rJ+1dXJcdfrawbCREi5Myd/Yz0xith+LJ7JOTqf3hy3pmPzLs4egxUpEPyX3mO8j/3lRXzjn+w+MPtLEh2/evvswdIgdhEyM6QHcmVBs4O8bq9PpPWuZZ70nDl6fYKBoPBYD1rrB+WfGX6sq9WJ2Iu/ML0OZ+ePuOuqVNunzrulsmjbpw8YtnEYddOHnzN5Duumnz7lZMHXjX5V1dv/6vLN7xtoSpCRCX01lEJbVUrWTgjQjbfuWTzXZdVX2+5cNOyc4TqWH/RUTMKZNE71i18+7pFB67N/9UfTv+rf/7A23aKkPeuNouQ/LrqlMoFm2si5CXTYEidLf37P9VEyHj1mfCRDqGd/+0/1u5y5M/Lf3yJo/C8438relV9gPy5Y5weKk9HYw5jsvSSC+hpnu4hqPL+W5+TC0ThfkwY5RR/OMnlqfBAcSv3h3LEjtQB0RO5Kr11OqLYfdlEK6JX+S9tG6m8rOwOg8FgMJinUQQ55qaJC74wdfGXpi/+YvU+0rM/NXXG3VOn3Dl53O2TR90yecRNk4feMPnO6yYPWDrVd83U26+ePPCa7QdetvGtC38lhzO5EnrrqIS2qpUsWk9WVRoXH7P5lguqf4H5+MWbbrpg4w1nj157RljPhjPfueHDB6w/vW/9orc//eED/3jagaUj3zojQngw5JCfV0UIqRHKPHlDNAxSXWJGEiFue/na//bHefmHSYTM6JDznxlZWw24ux/83+n10T89W9UGUf6MVKilr7zhp+fc+B979H1N3ioX0NNkVP79J9zLlc89fbVeQG7u8s+sOvK0/8npw5c+8b58iRJr12+jHYd+XR2MuvnLIx9Z8kNKfG95Remn3Dq1ePLi+6qN/nGM9h28r3qCLr/7t7zvN/7HE7wv13nL539D+4p6tk5Wp67eeez/ePQPm2/99AruM2wWbLYvIzAYDNaYURA5ctnEmZ+a+sjnqgqEXs/6VPVpY6d8Yuq4O6aOvm3yiFsmD71p6qAbpt5+/dS+107tt3Rq/6Uv7H/Zxrd8qE6EyJXQW0cltFWt5Mxn+MaS9Rccuen6Mzff9JHNN1+w6caPbFx2VvWRZVedIhTI6EcOHT37oNH820cX7Tu6aL91Z+z/2If2L733LdVKFqwJjnp852DIQcPBnl+uEyHnV1e48xch13975dz8b+Yt2RZcWF1BLzj/ObLi8DQLjDCal9n9Hd/ifEkqzKT/bODBeSc+omy1Fab00K9f5JjOcOXKvkoN1IRIzz39CU6TkuF6qgWOKVPi+W3Tu/b/yNETsS81OrNvVHl13yN+SoWVOjldGXuVEqec9b05+adpX9ok9xMGg8FgMLdVf0dfO7Hwk5PnfGbqvM9On/uZ6bM+PbWoOHXqJ6eOv2vqmDunjrh96rCPTx108/T+N07vfcPU3tdP7b10Yu9LN77p1GowMlYSRn+WsVVCW9VKqiKk+sN83TmHj16zcFPhnE03nre5cO6mG87aeN2isJ5N5x606az9N56x98ZFe68/fe/HTt77J+95U7WSo9cFR6+tipADHquOhJAI2W9VVZmQCDlXFiEvR/eExIiQG//u4blnPjLv0qnq6r0fjezC7QOfrc4l8fwFRd5djvoFS5SZ4F6f1rfaCpcfq85xXH73w3vs/SV3bY7mRDrUoGo9e6Jn6vuKdP+dE2vXb6P0Tx7cTmm5kzAYDBac/wIM5jaKIO+6cuLE2yfPuGeKlMPZn5k6k/TDp6ZPvWfqhHumFtw99d67pg67c/qg26b3v2X6bTdO77Vseq+lE2+5ZNN/OeXXkQgxVEJvHZXQVrWSc7cFZz5Piac//K4Nl5+48dozSH5suuHsjcvOnNEeVyzgxGuT2zafs//m/Ns2Ldprw2l7/en4t/x0/n+pVnLc5mDg6aoOefeaqgh58zeqIoTeVkXIWHVK5RKOnrEKhOyVm7/5m7nnjJAIYSMpwib6U70h5IzH5UzKUdL6Vlthkfizk37rrs3RnEiLUQvZPHsi9uXM57dNc1rJF+l5Z6+99dMrqiW3v0RpuZ+wttlOnQyDwWBZMwofB172woKbJ079xOQZxanQxGF3TR90x46+26bfevP0W26Y3vOaidzFm193Yrka+i2VnPGpqYXFqVPumTr+nqlj7pl63z3TohLaqlZCIuTc6g/qtQsPXL94wehVp2687oyN1+dnFMjVx2+64pjNl838O2ZL/q2bT3/LhlP2XH1sbvlhr9spQsiOXjcjQg54LBIhY9WRlku210QI81I0JGLj1Zu/9b/nnve7uVe8SDbnY1ULllSt9Eh1AuKnP19dHRNYsjNTBGUlzbZ1si6n8kw1mr//hHvz33hZFB7691c5s/BPO2/7pLS+r7s5kS7+pFrJ576ygmqjGgbvf8XYE+O+VDiMppy4J9+893/vsc+XqAD38NZP3i8XLv/pNa48jOQKl4TBYDAYzNMofOx78QvvWzZx/McnP/SJmV/6Mod9cvrAO3fse9uO//PmHW+8fvr1V078+QWbdj0uGsSwVHLa3dOn3j110j1TxxWnjr5n6r0kQmqV0Fa1kvNfCM6doETlpH3Xnf++DZcdP3rVh0TrG68+adNVx2362NGbL3vv2OLDZnTIaW/ceOLr/3T0ny9/167VSk7ZWtUbrEMOXzEjQhZuqs7FXLKdfjC+ZeDrbzr6S2866kvV12Nk+6Jiex55+9zzV81d+tqcpS+RBVe8SkZSpPD9VzgW79b/fRYnZCIoK2m2Jf+wU2yIt89vqzrhJ7+dkgt/7/+tPv3+6z974bv3bwmj///OO299/pvVwtScqM3RnJz+zFCFVAG9Xbt5x5GnfGfXD/xc74lt3+/9bAO//caPN1IO70u24pFnuEJRWFQ4su41Uk0kQuR+wmCwHrdgySswmNsogux1wQvvvnriqBsnjr/NLEIOuWvHO+7csc9tO9588443XLdjj8sndjlv09xjy5EI8a1ERq3koheDC6qh7T8H9nr6zHevv+go0iGTK35WVSBXnLDxiuM2fmzBpsvev3nJ4VsuOmTsgndQ/vS/fnfLqW8YHdjjT+/b5SfvnLtThJCRCHn/WPWRZTunY9YFC5+p3rgSiZC5S8bnLdk07/LNZLt+bMuuV43tes0zVbtqdNdrNlbtqtFdrtzINm/Za/OWhXOue42M1IiwXU+u/kOEXuVMnvLQ02y7LFwpZ1bf7vNlerv74T+Q83c7cjmldzvmfk7skl9dLZxfTYU9m5PTux63glvZ4+3f+LMLNxl7YktzB7gzcru7H/Y9rlAUFhXu8c57RSswGAxGxj/fYDCHUfj+i/NeOPCy6vPYP3DjxIJbJhfcMnX0rZMf+PjkkbdNHn771KG3Tx942/R+H59+603Tb1y248+vnt5lycTcszfOWRD9sSWVSkjJXFT9Mf7UMX+xduGBT58zf/2FH9iweMGGSxZsWHz06OIPjC4+cuPFh2+68NDNHzlwyzn7bcm/dctpb9x84p9vWLDLY++ZWzpoTrWS01/YORhCImT+g1UR8pcjQoRU7164dGruFS/Ou/qlede+vOsNL+12w6u73vga2W43vbrbLa/Jxvnzbgp32rIZm/UvNQwGg8FgXWPVcYn8s3tfuPXgy5//66uff8+12464btv867bPv377u2/Yfkhh+4GFF/a74YW3Xj+x59KJ1185sduSF+Z+9Plg0brgqOoCuKlUIoZTVh/5hidP2Pup0w/+z7P+unLue9Z+5Ii1585fe978p89797pzD9lw9oEb8vuNnv7W0VP3HD3h9Rs+uNva98999K+DHx4Q7BQhrENIhPB0TL0IYR1SFSFXv7Trda+QCKnaTa/qIsStQ2CwTrNZv4zAYDBYYzb63KsHL67s+eHK286t7P/RdQde9PRBF699x0VPH7B43f6L1+27eN3bLhl9y+LRPS/e+IYLR/c4f+OfnbNxzhnrgpN+v98Z/ypESJOVVIdTlrwy+uyrj3zo4Iffv+fDH3zbyIn7j5xy4MgpB42c/I6Vpxzw6Mn7rzpp3z+e9LY/Hv+Wxwb2/OOCNzz2gT3++N4/e7R/zr8dEvzomP2qlZw5USdC9vyyLEKCC7eLwRAeD9l16YuqFLlp59iITYHM+smCwWAwGKyb7Kp/mFr5xLaDz/v31x973xtP/OWbTvrFX5x0/5tOvH/Pkx7Y8+Rf5k761etP+vXrTlqx+4n/vutxv5537K/nHPvvwdG/2u+M+0dWP0v7Nl/Jlf9tkkXIld+efO6xlT878eB/etfrh/vf+KP5b/rB4X/xg/43DR++548P3/Of5+eW97/+p+9+3b8ctvvyQ3ZdfvC8f3nnnH9+RzB8zH5jfxi58m+2WUTIWiFC+HXekm1Vqw6JTOyUImzXvcI279qXdePD5FEUGKzTbNZndWEwGKwx2+XKl0kGxN5KqjD67Ku0F+3bbCXffmGXS6erf7G56MVdFk9f+XcvJK5k/BVSILt8eHvdPSGKCFm0vrqK7vkbI6s+tSxYUr1Vdd4V23ZaVZAIe4n/ESNbEP01Zs7HWvIHJRisaZv9W9xhMJPN+lcDBtPsoherH87oHzHVx4yc/0Lwkang/OmqUeLcieqYBr9yQtiZzwenb62+8lZxE4hiigip6pC1wYKHgxNG5py4cu5JVQtOW802Z9EatiC/tqpV8ut22tlPz6TZogVuYDAYDOZrJ6+FwTrOSBIstHw4T1hTXfSWbEHNPvjEzrcDNeMcej3q8aq9f/XOJWN4ATuSHEYRcsJIVYREOkRIEaNxgaqJ8tKOMFgHGn+8YbBOszkwWEdaCz/2/Nh2/nfMW0d2O+KJtyx9bvdznxrfshoGg8FgMBisdRacui04+olg/x8Ee34FIgQGg8FgMFjbDCIEBoPBYDDYrBhECAwGg8FgsFkxiBAYDAaDwWCzYhAhMBgMBoPBZsUgQmAwGAwGg82KQYTAYDAYDAabFUsqQpZ98Z9hMBgMBoPB/C1FEZJ0tRoAAAAA9CytECGzPoYDg8FgMB8b/v63cdGGi1LxUgN7QYTAYDBYLxsiLFyUlpc48ffDv/zsvT9zTL7QVirDhSFCYDAYrJcNERYuSstL45ECIXti7cbxrduNky+UT1u52HiWRUgQBHqOngmDwWAwhzUZYZu88Gbiop1dEdJO97II+ey9PyON8auV42773apHqOR4u0SI7AdOGyVEM75t0tV6D2EwGKwXzBhhAwnHvs1fOdO9krfZRc0caSus+cDapJfGIxkwvnX7L0fG3PbUU6tYe8yWCGn+BLVOhMBgMFjvWGyEdVwem79yZuLamxURMruNChFCvnrgd1tkW7j4NiWHS44nFCF7pD0SorwK1W38/CuyXBchjt2Nql7ZRd9db9HnpwEMBoNlyHwibOxVcdz7YqvkGBvqtIutpwjxjzKOvfT4ZStjezU6sA3+rBchm4WRAmGTM8f9RciCNcE+32lShBhdJNzi8LztROv57t3dOQ3s0iFfDRgMBmvS/EVIY9fJRNfSzrzYJh0JiY0yxsxEDlTURcMOT9dL4zUZ8ItHNrEJBcIm8sc7RoQ4zoWSVqQdRAgMBoM1b4lEiOM67I6Y7r1iK+l8F42bglTsgdiCnfLW04H+p6BFXhqvyYD/7+GNZEJ7KGmy8ayJkAZURJO7Q4TAYLBesMZGQvRinhdbY5nYSrLiImPa5gfbXsZw6dmW5ylokZfGZ0TIqKQ6RtnknPG2ixBPXzXsVYgQGAwGa8D8b0xt7DqZ6FramRfbZkSI8aBi90oa0Rp2eLpeGq/JgPsf2kBGeoMTwkTOeOeJkPH6wSt97EjJcXwA3IX1CpXWHQXacB5hMBisnZboL7qxV0Wfi627flslne8iPe4Yj9pWj+4Hf7fbHO44Ba3w0viMCFnvtvHZECEwGAwG6zTL7pO44KKOMvk5IeXf/afbEjwnBCIEBoPButcQYeGitLw0Xnti6v969HG3JXhiKkQIDAaDda8hwsJFaXlpvLZ2DGmMp55aZSxG+bQ1wdoxyUXIw7/5VxgMBoPBYD1lrARSXkU3uQj5xc+/D4PBYDAYrKesgfGTVoiQ+Uv/AwaDwWCZsOHvf3vW+9DhBhd5eqlDRkJm3RUwGAwG8zREWLgoLS+Je0KeWLtxfOv20ATl09aW3hMy666AwWAwmKchwsJFaXlpvPbvmF+tHP/lyFi0YO7mXzyyKXpU+2j0mLL15d/9Z6v/HdNY/8WjVGbdkzAYDNY7hggLF6XlpfHac0JiRUhLnxOStOesPcJwp0GKwGAwWNsMEbY7XDTr0xDyE1NjRch4Q09M3X3+46mLEFl+yObQIY252rjX6vUTPEu18JMPt+KkXDH4h4ef2KZ3Y9Y/LTAYDMaWKMLKk/vuYrN+XJ3gIn8/yCX1tE89s+5ziJCkJ+j8z68Un5O7v/dkK06K8iG0pWEwGGy2LGmENaYdxbrAGhgJSeqB5iPFrPs8iyLEpkDcOkQoQ+VMuXP0jv3PX22kzPLKZ/mVMxd+8uGHn9hGOaPjO0ilGHPIfvq/tnDlYkd+y3VySUUM6x2Y9c8MDAaD2SKsMRQqVy05X7neOt5mzhK5yPbW6BCjY20jIfpetqqMNTuiYVpe6h0RojjTdspsOWzbp14mI41BmyjBmaxJWEKQljDmsAKhHM7kCRfu1RWDfyBTMm3nPbtfSRgM1jWWighRcmwXt4xe9JoUIT4RStmkFGss0hkrad1Z6CkR0syJYLvx238Ko4GL+bU7Q0g8zNcGWBw5iv7Uhaie6TgQGAwGmxVreDpmfn1cU66HSjF5a+asyemYThAhxmpT91LmRMj8pu8JaViE8PiGDAsSfxGi9woiBAaDZc6aFyGeQVbfPSsGEeLppd4RIU2eGn4r/rdy9/eepLer10/M95uO4Zwv/+g/9ekYyuTpGL5XBCIEBoN1uDU8HePI7BER4ji0BkRIA3slkjetPgUZFSHzkz8nRB9kEG8dOfImkgr09v/+2Tp+y7eFhNEfdUlXKLeh6jnzpRtThZLht3xjKmVySZI326deZnECEQKDwTrQkooQ/WJrzNfT+l5ZsTbcmOqu0C0wbJX79DNdL2VUhLBl/YmpPt+v9nwSYDAYzN8y8SSuLnNRV17/sy5Csm6eIl8XtDAYDDaLBhHSfhd1ZQiACIHBYDBYUoMIgYvS8hJECAwGg8ESGSIsXJSWlzpEhFBPYDAYDAaD9ZR1iAgBAACQFSh2zHYXOh24yAeIEAAAAElBhI0FLvIBIgQAAEBSEGFjgYt8aIMI2W3+6taJEPGckNQ8AgAAIA5E2FjgIh9aKEL2ba0IMT4xNWXvAAAAMIEIG0smXDTrcTOjIsSxdkwz3tD3VnICib6+vpGREUcPE3WmXC4PDAzIOcPBzCsAAHQUiSKsfOV0F2u6Xx1Ewy7y94NcUk/71DPrPocIiWtIbZebqFQqrEPSa6iu87L2gA4BAHQaSSOsMe0o1gU0MBKS1ANuEdKKFlMniyLEpkDcOkTOFmlKsBnzQ7sIUdJLlizht/l83mcraZiBgQExnKIIYF11QIcAADoKW4Q1hkLlsqxcRT3fZo5ELrK9NTrE6FjbSIhxgMVYlbFm20lMi14WIbYcXYrITXP9rBx4JIQ1xkgEJXhWRZQ0biU1wpmiEvnsQ4QAADqcVESIkmO/emfyCtikCLGJCmWrojdsmxrOgQjRaUyEhCaNYdxkHDMRTQvEPSGBhsiM3arUvPOkQIQAADqbhqdjwvq4plwYlWLy1szR5HRMJ4gQY7XpkkUREtp1iNtLaYmQMBrfyOVypVJJzjSWdG815kCEAAA6nOZFiGeQ1XfPChAhPvSUCAntAiPpdAzR19dHOqRSqfDcyuDgoHE6xrgV0zEAgEzT8HSMI7NHRIjj0BoQIQ3slUjeGPuZIhkVIeFM1J6RHz5e0kRFndLQ5YdDhJRKpaB2r6m49VT8zVYuqW8l+SHfmEo5Q0NDJGlYrkCEAAA6nKQiRKAUVvL1tOe1vQNpw42p7grdAsNWuU8/UyS7IoTp2I8odYlERcO74y+6AIBOJhNP4ppdUndRB0a65sm6COlMeJRjaGiomUrwsDIAQMcCERILRIgPECEAAACSAhESC1zkA0QIAACApCDCxgIX+dA5IoR6AoPBYDAYrKesQ0QIAACArDCMn/lxwEU+QIQAAABICiJsLHCRDxAhAAAAkoIIGwtc5EPWRUjHPicEAAC6GETYWOAiH7IrQmraI9kTUwEAADQPImwscJEPGRUhsvxItHZMXLUxOSMjI/39/Sx4KMFPXDdSLpeVR7gzhULBZxcb6T67zHS8apbNpUldTT2P7fxwEAxbqh0rl1fYnYNHugHQZhJFWM8HsHfZD0m4yAeIkLiG6t729fUF0cJz8tpzth4qz+SnxODgoEOHxH78Ug+1bRMhoufuQ3CIEMcmn5oBAOmSNMIa045iXQBc5EMWRYhNgbh1iHH93MYWsNMHQMQSdbyenaJpFUHC0oUqYUmTy+WGhoaUXZStoRZklZ4bj8VdRt8qudecVg7EVljX8w4RsnVk5L6+PhIYKwsFoTRE5vJcbu3QEOfbtuqtAABajS3C2q4JxjL6VcXxNnPART70sgix5ehSRFAoFFgYkOoQUoQViBge4SkV/XOipMX6uUFtqTu5mL51WOutz7H450ibYr4gsvyw5et72aZjVgwMkJwYK5fJhMwgjbE1OnxWGmH9SIi+VTQBAGgPqURYJcd+9c7kdxsu8qF3REho0hjGTcYxE0G5XCbVQcKAGioWi2H9uIcQErEipFKpkKQRd5goxfStNhHiPhZlqz4wYsT4adcPUCkjH4Wizx2L8cnqQqQnK5WVhcID/f0iRy6mb5VbAQC0gYbnGuS3xquKXEy5kmQLuMiHLIqQ0K5D3CciFREi90EXD/pWPc3TMTzbQpLGWI++NRURorz1FyFGseHIl5F7ro+HGEUIz7bIYyPKSIiyVW8IANBSmo+w7quHLZ0h4CIfekqEhPbQbBQhgTYdY7wxNZ/PU3pwcDB2OoZvTJXHT3gXXYToW9s2HSM6YHyrCHJbvryXIkIUHsznSUiMlkpkiuTYOjJiFCH6VlvlAIAW0fBcgyOzyyIsXORDRkVIOBP1ZuSHz1nQxwSCJDem2v6iK25MFf+xHRoa4ikbFh4M5Yi/xvDNqGJHZRd9awM3pupHrZdxD4YoOZ7yQxyv2JcHQIyTMsYbU/lm1IeWLJFzludylH5ycFDfKloBALSHpBFWvywY8/W057W9A4GLfMiuCGGy7v9EIMg6gHMAaCd4ElcscJEPWRchvQZCrRG4BYA2gwgbC1zkA0QIAACApCDCxgIX+QARAgAAICmIsLHART60QYTs7idCqCcwGAwGg8F6yloiQj64Jtjnu4lECAAAgKwwjJ/5ccBFPkCEAAAASAoibCxwkQ8QIQAAAJKCCBsLXORD1kVITz0nBAAAOgRE2FjgIh+yK0Jq2iPZE1MBAAA0DyJsLHCRDxkVIbL88Fw7xvgccs+SPpRKJfFE93w+L57orlMul8XT3eWH7oonurt3seFYqTYtoPIAAEyiCOv5dPEu+yEJF/kAEeJTMhZSIKw9RJrXtrPVr68CwEvM2HRI7CfTvUhcWnTdxx8A0CBJI6wx7SjWBcBFPmRRhNgUSCIdoqQVYWArbFOqPAZSLpf1RsUidCxRFLmrtMvSZWRkhJfrzeVyvJKdvIuyNTSpDj3HZ8E7dxl9KwCgZ7FFWNuV01hGv/Y63mYOuMgHiBA90yZCHErV9jFgBTISEdTW2NU/QkqaNAbP5rDSUIrpW2NFiL6ibvM5AIBeJpUIq+TYrt4ZDbJwkQ89JUJCy3lUhhocIkQpqdSg1KbvImfadqREpVIpFAriDhOlmL41kQjRc2ySI6yNfjjqAQD0Jg3PNchvjddeuZjxepsV4CIfsihCQrsOiT0RNoGhb7XlGxkYGAik6RijeJBrs4kQno7h2RaqzViPvrV1IkR5m9mPOQAgZZqPsO5rrC2dIeAiH3pNhISWcx3WKwdHvrES+cZUWR5QDiUGBwdjp2P4xtRisSgyeRddhOhbMR0DAGgzDc81ODK7LMLCRT5kVISEM3F5Rn54ngXH0ESs/AgCa0PyX3RJbPAto6F0Y6r4jy1tyuVyLE5EhZQj/hrDN6OKHZVd9K1p3Zgqb7KVyewnHQCQJkkjrPHiqefraf9re6cBF/mQXRHCZN3/adGev+gCAACDJ3HFAhf5kHURAgRteFgZAAAwiLCxwEU+tEGE7AYRAgAA3QUibCxwkQ+tEiELngr2hQgBAIDuBBE2FrjIh84RIdQTGAwGg8FgPWUdIkIAAABkhWH8zI8DLvIBIgQAAEBSEGFjgYt8gAgBAACQFETYWOAiH7IuQvCcEAAAaD+IsLHART5kV4TUtEfiJ6YCAABoEkTYWFrnom4KdooIMZbpQBEiy4+ka8c4q43JGRkZEc9mpwS99e+wrW9iU2M6SjydzPh036S1ebbo/0g0PDwNgK4kUYT1fLp4N8XWsCERojjKETWa7VzHoI+EzF/6H7r1iAgxNVT3llewHYkIaoveNt1E492WFYhSp56ZCqJF6BAAepmkIsSYdhTrApKKEP3we1CEGMt02kiITYG4dYjnAm1yfqiJEBYM+gCIWE6OF9IVJfsjQklp0L6sZHK5HC9yp4+EBPXYmhiuOyLzqnyyGpFHSBTlYxxCMf54cYiQ0VLpgf7+4SAgWzEwsFXyEnQIAF2GLcIa9YbxV1JouvI43maOZlwkMo2X8ez6RCeLIyFpiRBbjmPR2EKhwPqBJIGQIiwPxPAIr5bLn5xyuSz6zB0jBcI7cj3yJuXrJlbLtTWhRHb926p8l5XM0PR5Vnpi3Ms2HbM8lyP5MVmpkPygxAOR+hK7AAC6iVREiJJjv3pn8gqSigiR0+7CGaV3RkJCk8YwbjKOmQhIV5AkIP1ADRWLxVAbuDAqCvG2UqmQkhE3lsib5F1IbFAT/bU4bmzCGNmNH1S9J3I9SqZxR5FwLJMnD4M8OTgob4IIAaDLaHg6Jqy/sBivPMatmaMZF+mZtnTWyeJISGjXIe5Tk4oIkftg1BvKVuUtz8WQknGLEJIfJELEYIuxCUdkt2mJ0PTp1bfaRIjconE8ZKxcXlko3NfXR1LkPumGGYgQALqM5kWI48rjSGcIiBAfsjgSEjYqQkK7wPCcjjHemJrP5yk9ODioT8fIHZaVBpe0iRCefOE7RhhjE457QjxFiF4skQhR4JEQvhWEEsujySZbYQBApml4rsGR2WUxN5GLQtNhdplDjGR0JCSciZgz8sPnvChFgoQ3ptr+oivuGmV5IHVP6e3MnR4OERLUY2vCeE+IvIsuKpSSevfcIiSsDYAYJ2UmK5UH83mekSFBghtTAehikooQ/bJjzNfTntf2DiSpCAm9L+MZdYiRNjysbHc8MbVlZCK4Z6KTAIBE4GFlscBFPrRMhKwJ9vlOG0QI6PAQ3+HdAwA0BiJsLHCRDxAhAAAAkoIIGwtc5ANECAAAgKQgwsYCF/nQOSKEegKDwWAwGKynrENECAAAgKwwjJ/5ccBFPkCEAAAASAoibCxwkQ8QIQAAAJKCCBsLXORD1kVIjz8nBAAAZgVE2FjgIh+yK0Jq2iPZE1MBAAA0DyJsLK1zUTcFu4yKEFl+JFo7Jq7amBzbY9t1yuWy8gj3IFoyhitJNIAjP7Y3qD37nZfxFU3oOJa7BQCAJkkUYT0fwN5NsTVsSIQojrI5pJscBRES11DdW+MCdrYe6isgDEYL3NNrYyLEkaPgXmkOAACaJKkIMaYdxbqApCJEP3yIkM4UITYF4tYhxvVzky5gJw9oyIjV5fL5fBga1CwrFh64oFcWM6KrYndKcA41wWUKhYJSjwwPy8gDLP3VpWzVY4cOAQCkiy3CGvWG/jNKJIy/14xvM0czLhKZ8vVfee0OelmE2HJ0KSJgSZDL5UgtKEvoiuERVhr6V4n35beytODdhyKEDqFKKF2OUESInOBdqDbRN8qBCAEAtJpURIiSY796Z/ISlooIkdPuwhmld0RIaNIYxk3GMRMBqQLSCXxLRrFYDE0DFKH2gSFKpRLvItK2krGZ8lbqCc8K0SulQ5PkgAgBAKRLw9MxYX3kVS6bSjF5a+ZoxkV6pi2ddbIoQsJG7wlJRYTIfdAlgb5VL+lQFA2IEFY18igKRAgAoNU0L0L0qNplMRcixIe2iJDHO0SEhHaB4TkdY7wxNZ/PB9FNp+7pmLA2yaIUME7HcJ2lCLcIqVQqQttQOoQIAQC0nobnGhyZXRZzE7koNB1mlznESAtFyL4tFCHhTCCekR8+50UpEiS8MdX2F11xZ6n4z6z4F634L0xYG7WQJ3GU3X1uTFX2FbuLpiFCAACtJqkIESiFlXw97Xlt70CSipDQ6RCIkE4TIUymP6JpIe5iFTn4iy4AoKXgYWWxwEU+ZF2E9DgswPr6+oaGhpRNeFgZAKB1IMLGAhf5ABECAAAgKYiwscBFPkCEAAAASAoibCxwkQ+dI0KoJzAYDAaDwXrKOkSEAAAAyArD+JkfB1zkA0QIAACApCDCxgIX+QARAgAAICmIsLHART5kXYTgOSEAANB+EGFjgYt8yK4IaeyJqQAAAJoHETaW1rmom4JdRkWILD8SrR0TV218TrFY5AeqE/l8np/c3qQEEuM5XBuvQeNfp/44d/HQePEsdx08zQwA0DCJIqznA9i7KbaGDYkQxVE2h3SToyBC4hqqe8trzJH2oDQvLcdr2KUlQgYHB+mtWG4mqQhx5Cjgue4AgGZIKkKMaUexLiCpCNEPHyKkM0WITYG4dYhx/dykC9jx6nUkP/QuiXbFanSsVUJpNbpcLsfPV+cC/RHiLZXhgQt6FYMtSp0+K9zJcIflARbKwQp3AIAmsUVYo97QfyWJhHyhc7/NHM24SGTKl3fltTvoZRFiy9GliNy046MS1tTCSERQmw0htSBmbUiHiPJiyTl+y3KC38rSguscihA6RCxaRygiRE7wLlQbpblOyoEIAQA0SSoiRMmxX70zeYVKRYTIaXfhjNIGEbLb4R0hQkKTxjBuMo6ZiKbdIiTQoMxKpUICgAclFJEg787zO8ViUaT1wp6Z8laSPTxnRK8sgSBCAABN0vB0jPxWuVTqxeStmaMZF+mZtnTWaZkIeap1IiRs9J6Q5kVI7HSM8fvC8ybGIQvj7g5F0YAIYVUjj6JAhAAAmqR5EaJH1S6LuRAhPvSUCAntAsNzOoZvGXXcmEqbguj+Unk6hreK/7yE9SJBfsuTLPJeoWU6hhsqRbhFSKVSEdqG0iFECACgaRqea3BkdlnMTeSi0HSYXeYQIxkVIeFMnJ2RHz7nRZteqVMauvzQqyQlICZWSC3of9EVN5GKv8cK8RArQnjUgl5tdfrcmKrXz7uL/kCEAACaJKkIESiFlXw97Xlt70CSipDQ6RCIkE4TIUymP6JtQ9zFKnLwF10AQDPgYWWxwEU+ZF2EADes0Pr6+vivwTJ4WBkAoGEQYWOBi3yACAEAAJAURNhY4CIfIEIAAAAkBRE2FrjIh84RIdQTGAwGg8FgPWUdIkIAAABkhWH8zI8DLvIBIgQAAEBSEGFjgYt8gAgBAACQFETYWOAiH7IuQvCcEAAAaD+IsLHART5kV4TUtEeyJ6YCAABoHkTYWFrnom4KdhkVIbL88Fw7prGT5rmKrrw1iJaJCaMnqycaqNEfuj40NJTL5fiJ6w3Uw7ThoWRd9IUAAHiRKMJ6PoC9m2Jr2JAIURxlc0g3OQoiJK4htV0fETI4OBjWVrtrWDzENudTT3sez95FXwgAgBdJRYgx7SjWBSQVIfrhQ4SkIkJ2n786XRFiUyBuHSIWpFMWz3Xn2ERIqVSyLWPX19fHS8XRK68xJ7qUaB06XRLr9fB6vrZ6fBaq8/GAu4y+FQDQ9dgirFFv6D+vREK+srnfZo5mXCQy5RCgvHYHLRMhazpQhCjSQomqsTmhpAR4lqRSqfCcCwkSsZVlAL+VJQErh6EIoUPE0nKErjf076OoZyQiqK2Na6wnVoQk9YCnlwAAXU8qIkTJsV+9M3mJSUWEyGl34YzSUyJESTcjQuRhEJ58EVtLpRK9FotFkXYoCnemY6uMrWQiEeLvpdA0oAQA6Ckano6R3+rXMaWYvDVzNOMiPdOWzjpZFCGhXYc4Tk26IoQol8uFQoEnQehV3mqUB+mKEN0h7RQhytsu+kIAALxoXoToUbXLYi5EiA89JUJSnI7hkRBxK0gul5O38uQIT5SITON0TD6fD6IBE+OYiVFa8C6Dg4PydIyxHkzHAABaRMNzDY7MLou5iVwUmg6zyxxiJKMiJJwJyjPyw31eRLhUYqg7xyZCKpUKx/0guiFEvjGVEjwXQ69yZpjwxlRlX2M9rEBs9aR1Y6riQ2OZLvpOAADiSSpCBEphJV9Px17bO5akIiR0OgQipNNECJPpj2gbaM9fdAEAvQYeVhYLXORD1kUIiKUNDysDAPQaiLCxwEU+QIQAAABICiJsLHCRDxAhAAAAkoIIGwtc5EPniBDqCQwGg8FgsJ6yDhEhAAAAssIwfubHARf5ABECAAAgKYiwscBFPkCEAAAASAoibCxwkQ9ZFyF4TggAALQfRNhY4CIfsitCatrD94mpAAAA0qJ1EbZrruRwkQ9tECG7Hf54J6wd41dtTA5LnUqlEtY/XlinWCzyc9SJfD7Pz3VvjHK5LB7P7mB453PpDQ8BVnJ8CrgfmDwcBMNpfwtEnXiuGgCdTwMRVrmq2K6fXRNh4SIfIELiGlLbDaLF40KnCOEl6kh7UJpXlONldhvtQ/xxicDt1hjGNQh8ymjNtVCEhNAhAHQ8SSOsfhnp+ggLF/mQRRFiUyBuHeK5EJucr+wV1kJ2f39/KMX3SqXCy+aS0uARD15jl+SH3nPenWsIpaXoWLGE0lJ0uVyOxYyiE/RdhusOzTysEfvWVsZYLQuGlYUCvS7P5dYODVEmJR6KFuajt5T/ZCTVKGd5tMSwcZetIyP39fWJfFnYQIcA0MnYIqzx94vxsqz/5Hf//M8ccJEPvSxCbDmOxWH581AoFEgqiM8GL6fLOTziYRu74PxyucxvWU6MRAS1JXGFkmEdotRm3EURIQqh9jlPS4SMlkqkIlhUUOaKgYH7osN/oL+fMh+IhBblrNjZSfMulB4rl8kgQgDIEKlEWDntLpxF4CIfekeEhCaNYdxkHDMRTbMGIB0ih3g9ZDtEiPJWEQyVSoUq57EUvX7jLp4jIfon30eTGKutnzrZmX6sWGSZwTkivbJQsO1izKy91f0HAOgUEs01+ERYd+EsAhf5kEUREtp1iPvUpCVCwtqEi02EuKdjbG8Znospl8sOEaLs0iEiRJYfPCPDxvMyECEAdBOIsLHART70lAgJ7QIj0XRMGP35RaT16ZjBwcHAdGOqIiF4Ryosz61wGXm6R97LuEusCNHzbZvkRm11hhbxMFmpcJonYnhShmdbbLs8mM/zgIkQMFITIQCgY0k01xA6L0GxJTMKXORDRkVIOBMuZ+SHz3nRREWd0tDlh02EVCoVkSY9oNyYGkZ/kBGjJbRV3OahdFLcZSr+hMs3o4p8zsnlckHtXzn6LimKEPE2kNDdaBvBWJ7LiaEPMRji2AU3pgKQUZJG2NB0VfH81ZNR4CIfhAgZ37o9VoQ89dSqzhEhjCNQ9hRdFrK77HAA6D7wONBY4CIfWIR89t6fPbF2Y6wI+d2qR6hkR4kQIOiawN01BwJAF4MIGwtc5AOLkL8f/iUZaYynnlpl1AmUT1u5GEQIAAD0OIiwscBFPrAIYR3y2Xt/RnrAZrSVFQhECAAA9DiIsLHART4IEZLIwhaIEOoJDAaDwWCwnjKSAc+OPfHcM2u2Plt5/rmnt23d8MK2jRPbN0++8MzU5LPTU8+/uGP7Sy9OvvzS9CuvvPTqq6+wesFICAAA9CzD+JkfB1zkA0QIAACApCDCxgIX+QARAgAAICmIsLHART60QYTsPn81nhMCAADdBCJsLHCRD60SIR8kEfLdloqQxp6YCgAAoHlaF2G75koOF/mQUREiy49Ea8fEVRuTw1KnUqmEoeEZ7EoxphCtIZuIcrksHsneDPzULzz7CwCQOg1EWOWZ5I7rZ7Od6wzgIh8gQuIaUtsNamu4xIqQsLaSXVIdksqojqw9oEMAAOmSNMLq17Suj7BwkQ9ZFCE2BeLWIcb1cxtbwK4/WiVWSIVKpaIsYKcsP8RL6IbS2nO8wG4YrbGrrHOnK2FukRuVK6EEveXduV3evb+6fK16+NAhAIAUsUVY+QosXwaNJZWf/O6f/5kDLvKhl0WILUeXInLTPLIh1AJlkqJgGSD0hiJCOM3iYSQiqK2By8vjkowR+sG4e7lc5rdcyVAE6xBO8GALvfJWiBAAQEtJJcLKaXfhLAIX+dA7IiQ0aQzjJuOYiWiahQSHe3mwQi+mpAONsDaOwZqEZ3lsuzs2kZJh8UOvlA5NkgMiBACQIonmGnwirLtwFoGLfMiiCAkbvSckLRESSuIh9BAh+vCITLlcJklDZYwlfURIsVgMogGQoDZHAxECAGgpiLCxwEU+9JQICe0CI9F0TFiL+0HcdAzfmEqFRTHKkadj5Ds6KMHjGA4Rok/HhNFNKWJ0hf+5AxECAGgpieYaQlPc7PoICxf5kFEREs5E5xn54XNeNFFRpzR0+WETISLuh9HtoMYbU1lUyH+NEfeUin/gUj0sToLohhDenQQG3yvCGkY5LuXGVDlTVAsRAgBoKUkjbFg/JS3nuPfKLnCRD9kVIYxyvnoWVkHi/tUQf9EFALQSPA40FrjIh6yLEMAarK+vb2hoSNmEh5UBAFoEImwscJEPECEAAACSgggbC1zkA0QIAACApCDCxgIX+dA5IoR6AoPBYDAYrKesQ0QIAACArDCMn/lxwEU+tEWEPA4RAgAA3QQibCxwkQ8QIQAAAJKCCBsLXORD1kUInhMCAADtBxE2FrjIh+yKkMaemAoAAKB5Whdhu+ZKDhf5kFERIsuPRGvHxFUbkyM/U1c8pN2zwwL5Qe6elMtl8Uj2ZsDjywAAqdBAhFWeSW67XHdNhIWLfIAIiWtIbZebIFUQ1Jar8+xwIC1pl1SHpDLOgwe5AwDSImmE1a9gXR9h4SIfsihCbArErUOM6+c2vICdnOZEfwRvEmvM5fN5445CveglS6USL60bRAvS8ZK7ija2NcdL2skr8/LulIMl7QAAKWKLsPIVWL7oGUsqP/ndP/8zB1zkQy+LEFuOLkXkpvWREM4Ui8exJBiJCGor2xrVi7Ekr59bqVSEfjDurjQ3FME6hBM82EKvvBUiBACQIqlEWDntLpxF4CIfekeEhCaNYdxkHDMRTQvEPSHyZ0MpI4tYXYQYS8rDIIODg8outuaUNCkZFkj0SunQJDkgQgAADZNorsEnwroLZxG4yIcsipCw0XtC0hIhemdsqsCYGdQPoej9LJfLhUKByhhL+oiQYrEYRAMgQW2OBiIEAJAiiLCxwEU+9JQICe0CI+l0jCMzn8/T28HBQeN0DN+YSiLBVlK+o4MSPI7hECH6dAxlVioVMbpC6RAiBACQKonmGkJT3Oz6CAsX+ZBRERLOxOIZ+eFzXjRRUac0dPnRgAgJpTtFxf9qhSQgUSH/NUYvSZqBxUkQ3RDCaoQEBt8rwhrG1hwrEDlTVAsRAgBIkaQRNqyfgJZz3HtlF7jIh+yKEEY5X0BA8iOQ7l8N8RddAEB64HGgscBFPmRdhAAdVmV9fX1DQ0PKJjysDACQCoiwscBFPkCEAAAASAoibCxwkQ8QIQAAAJKCCBsLXORD54gQ6gkMBoPBYLCesg4RIQAAALLCMH7mxwEX+QARAgAAICmIsLHART5AhAAAAEgKImwscJEPWRcheE4IAAC0H0TYWOAiH7IrQhp7YioAAIDmaV2E7ZoreSZEyKx7O6MiRJYfnmvH2B63bnxGriPTWJv+WF1HbWG0uG1QWyCmXC4H0fPYw9qaL7zV87PRjPqS+yYWBW6G4Z3Purc6x7bJ6KVsYTw0+a3jGJss7C7gZjgIhN3X17e16c+AP+7vi7twui7iww/b6I0ueGBgAxFWOWW2D2p2LwIKiVzU2GVQLqmnfeqZdW/3uAjR3zZWLOl3ihd2YeFRKBQonc/nw9rydvISMLE0E7jFviyEeMXehhHXVYdzlN7a0lnEfQWIPXCHK5LW3IAIocRYucyR13/fJnF/19rpIkWEhG3xRtZ1SFIREntpjc3PHI3ptIbLN3Y5nXVvZ1GE2BSIW4ekJUIS7WuroVQqBfXL5rIA4AVfeKsctVmo5HI5fhL7yMgIj5ZwvqhfX8mOduE0r7HLsodyHIvzcqI/wlZtpVLhrorxE/mK6hYhcoHYbw0HhQf6++l1eS73WLH4YD7P6bW1h9I/tGQJF3swEnLEaKnEu5CtGBjg37PGTHqlQCNXSDm0lXJEtbZWdJTjsr01plsXYenQHopOHB0g9f/J6DNAOcujz4B8jCKtu0WciAeiT4WjgONM2dzlONL2uEgXIe3xRqZ1iC3CGk+T7SoqX3ZC07nLNIlcZHurX6WVHEe18iXd+C0wVq7U5j6JzdPjIsRxIvRMR23u747jC8jzLxzQKZrLX0k5QbKEt7J4EIvT8QgGl2SpMBQR1AQDlWR5w1KHdQXlsP4R+8ojIZwpVr4zVsvr/HKXeK+WihDSD5OVipLmGMragKIAGauLMAq7lKZinMmRwpgphtxFhRws6IcwNSTCkLEVx4k2HqbP5UL+bCgfQndVRvcy1Fv+Rc8xURw4H4Xxt7/uFi42VvtU2Ao4zpTDXQ63tMdF7pGQ1nkDIkROuwtnkSZFSOxXQN/keeVJlNPq89LjIkTf5PCz42tivLK562RVwHKCpQhHdtYJoi2l0aSZxWIxkIZWRLpQKIhijBjTUK7qsW0xiUSI0WNGLxl/mYZa1JAtrEVbVgv8w9+WSXFhZaEgNiVqRSc2/AmMRx37rU96CWLoZzgHQdF5Tq+MPgPyQYlg6naLv9/0HW2HI3JmxUXGE90Gb3SlCDFi/HbHnuWs0+R0jO1Komx1fLzdVySfHMe3Ji2yKEJCuw5xeMl4xdPTsX42ng73OTLmszwIaneDsCZR5IGcaCxTlh88lMHwvIxytVf21d8a22JmV4ToO9KvVIoLPEguZvb1TE7zz95YEaK3ouDzddZ3kdFdoZ8LY2FHQ7L84BkZNlZixkNzu8Xfb27Xub+S7XSR+0S3zhsQIbHpTAMR4gNEiJKOvTAaT4f7HBnzxUwK6wG+JTWIRirCOGnBYyalCJFpnDfhMZagNsAipA7PtsiVy72VM1sxHWNsyOil2Is5z55QPJUnSvg3qTJCbszkenhfuUIKKFSnuxUjjs9P7EfL5iXPwraSYkaAJ2LED3aeTTCGXd0tWvR0FUhRhLTHRW4R0jpvdKUI8ZcWPStCHAfbgAhpYC/PmttzUjIqQsKZEDYjP9xeCuoJ7bFSKaZkGiu0NSHXbOsS6YQwutdUr0pOyGn/G1PD6N7UoCZ1xGCIUqHJsTPo1VIHHDem2pxj87nDSz4Xc3HLqNAGFHZZNnDkFYPqeiaPDMj3oIqbDFcWCu5W9KM2HkVg+ka7c2yfTHdhR0N8PwwPfYjBkNohGMKu7halmLuAPa32X/mczJaL3CKkRd7QHZItGouwxmume6/s0oYbU90VOnxrOxfuqlpBdkUIYzwjYFbI9BVVQPGagzUPILj/pNkdh9w24C6ZrHsjE0/iml1Sd1FXRrqsixDQUWT9uhpGd1DwSIg8YGKjC463ncBdgi5wBURILBAhPkCEAAAASApESCxwkQ8QIQAAAJKCCBsLXORD54gQ6gkMBoPBYLCesg4RIQAAALLCMH7mxwEX+QARAgAAICmIsLHART5AhAAAAEgKImwscJEPWRcheE4IAAC0H0TYWOAiH7IrQmraw/eJqQAAANKidRG2a67kmRAhs+7tjIoQWX6EfmvH+FUbk6M/aLoZyuXyQO0Z4HK14lnozcBPQzI+BFjJcRcw0syxU8dSeVKT8UDSOkHGfVv3gKmxclk8Db4LHmMFeoEGIqzy3bR9Q2c9LKZFIhc1du1yP2W91RfzVIAIiWtIbTfFJuTaRJoXtutzPi08FuNycvrH0pbj0/MmO5auDtETadUsYO3UIoXQTUuKgB4hqQjRv1MQITpJj90tQlrRYupkUYTYFIhbh8jZIk0JNmO+sleoiRB5YVmx2mworfiWz+flHXm9uVwuJxaSk38U6IKEE/0RvElfS65SqcSuJedOGN8aNbn+E0YpE/uNcIiQ5bncQ9FB8XJgvIAL5fByt0Z8RIixG3q39XNh1CECsVrZg9EpFkuYiU1ro0+CUiys6Q1eHY8OTSwnBx0CsoUtwtq+ccaSyiVFubxknUQusr11XKkcVXlezI2VK7W5T2Lz9LIIseXoUkRuWoYEQFAbteBlbSmHdcJIBCV4woXLl0olzsxFgVX/AIT1IyGcWY6WXA8lnSOLH9I53JzYy7i0q+PKYHxr+zzLtbnL6G8Z23jCioEBXi2O15rndecpR161VsfxzYrtpGeO6LZ4ZWmxdWSEV2+nHsqr3fHSM5SjFwtrImS0VOJMllj64q0QIaDDSUWEyOlWB7v206QI8blSKZvc1+HGciBCdBoTIaFJYxg36fly00r9rD105aCHQmMQVzIZMaZhjLCOShhPEWLLaeZzG1uVHMoVHisWOTqLYQFOrywUDKWdh6aXUXqonx3HoenIYxdCP7D2GCuXhRoxFjMu7A4RAjJH0hse3Jmx3+Is0uR0TPOX3GYu5u4reYpkUYSEdh3i9lIrRAjPsPCECA9N6GWUTLcycTTXmAhRPpCh6RPVHhEid0wfD5HlhzxJwfMyRmyHZizmKNOYCFEyeYZlxcCAmJcxFoMIAd0BREgsECE+9JQICe0CwyhCAst0jJxTKpWCGpQOa/Mjg4OD+nSMUklSEdLYdIwx+DoCceynVO6/sUJbWhEhCjyjISZieFKGxxbUovZDs30Akn613R+kB/N5VkfyPIsyhmMrBhECuoOkcw0+4t9WMqO0Zzqmgb0SyRtjP1MkoyIknAmFM/LDx0uaqKhTGrr8MIoQgZIpionbR5V/4Cpp0hK5XI4Vi48ICU03ppL8cNyYavuENyBC5P44jt22LyP/x8R4b6oY+hCDIfK+tlbkbusnyFhYOSPGetT+SYg7TuVbVvT7S/ViRhFCBysfu9E5AHQUjUVY48XTvVd2acONqe4KYy/mxsp9+pki2RUhjPGMgK4MYV15UEZ650hBdsnEk7hml9Rd1JWRLusiBNjovkDWfUdkpEcOE2QdiJBYIEJ8gAgBAACQFIiQWOAiHyBCAAAAJAURNha4yIfOESHUExgMBoPBYD1lHSJCAAAAZIVh/MyPAy7yASIEAABAUhBhY4GLfIAIAQAAkBRE2FjgIh+yLkLwnBAAAGg/iLCxwEU+dLgIcQiM2qZkT0wFAADQPK2LsF1zJYeLfMioCJHlR+i7hK75gbdatb75pVKpv7+fK8zn8/zIdCPlclk8v52Kib0o4dhLgZfr5fK8aO9g9IjvSqUSRM9s95dhzQg2bogalZtusk6CjoVrptehoSHOFI+1J+/Jaf9qZc8zjmV8AQD+NBBhlYtwouttFoGLfOhwEWKjMRFiTHs3VwevW0faQ6Q5Ftt2FzUILSEvOecDrxrDwoOX7uXWed0ZsZSM5+E0/BkWi+iFkUhI2rQRdiDXw/XzUoByPxvrs7KXewU9AIA/SSOs/v3t+ggLF/mQRRFiUyBuHWIUIcrYiBCfihbVIyCPZpRNC7yKNeZYJBhrkwdAuCrOYWVCOfIwC/2Wp3yO1Py7njexgOHV68RivqIJFiq5XI4FA9XA+ofzxeHoK+LRLpxmjcGyh3IoP6wXHrIgMdbJHoitkw9HHl0Rx64T1o9BsXN8PK+rDugQABrGFmEDy5XWWFK+aimvXQBc5EOHixA5tMmZqYgQW467pKNjYS0OioEO1gxyYaENqCRHT47LlC+2iqkHishCloh6OEyz9uCtgaQ9RIIiNW/lQM/lyxGipFARsrSgkixvONBz05TDxyJPwchTM0qdigfcdSrO1I9ISRudE+t5iBAAUiSVCCun3YWzCFzkQ0+JEIFUj1xngyJErjbQ0I+CZAAPAlBmsVgMo6gqwro8OMDBdLC2vDtnspxgMUA/+YN6iWLsW6JM6lIgDa2INMuksKY9WMyI6SS3B9x1Kv5xd8/mnFjPQ4QAkCKJ5hoC02U50K60jsJZBC7yocNFiI2guXtC9BwRsxz5MmJgQRTTo55cie0DJsdo5RYLqpxitLhdUxQLatMNIhYrodwYu/0zZanAXWJEuOcxB/aA6K3bA+46jdMxtu7ZnBPreYgQAFIEETYWuMgHiBA5HWiSQ89h5BtT5QkOHpqg2GqbFDDemMqRl+FYLN8oEtSmVERDHLv5ltRAu43TGLu5Y6UIkWmcjhGdYSUgpI5QXLKKEP9kcXvAXWfSG1ONzon1PEQIACmSaK4h9LsC20pmFLjIhw4XIXIQsWyakR/u82LcKoKpXEY/18bKldsjRTgWt0eKP4eKezw4RBr/oiuGF/gtRW2OqkoxzmGhIt8QEsaJEP8bU8PaTRcsdYTkEFt1yaQ0qnsgtk7K0f+iazwQh3PcnocIASBFkkbYsH7OVM5x75Vd4CIfsitC5AJdcEaU+R3QCvAXXQDSAo8DjQUu8qHDRUgvwCJKHgEArQMPKwMgFRBhY4GLfIAIAQAAkBRE2FjgIh8gQgAAACQFETYWuMiHzhEh1BMYDAaDwWA9ZR0iQgAAAGSFYfzMjwMu8gEiBAAAQFIQYWOBi3yACAEAAJAURNhY4CIfsi5CuuY5IQAAkCEQYWOBi3zIrgipaQ/fJ6YCAABIi9ZF2K65kjfvoq5xhYOMihBZfniuHeNXbUyO/Ezdvr4+8cBwvXuOnpTLZfl55mHt2Vn6A3tTgSqPfTbXcBAMp9EoHgIGQI/QQIRVLnG2C13XRN7WuaibgAiJa0htl5tQFrJPWGddP0XgbsXSAKJytzxIS4TENgQA6A6SRlj9mgYRouDvom4iiyLEpkDcOkTODmbi/k4z5od2ESKnxdpwuVyOH70u69igtmYcb1WE7nBdr9SVjJRXUaH81ri7SDtEyNaRkfv6+kh7rCwUhAjhxAP9/Q9Ey92KMstzubXRoVHioWipO3pL+U9GC9JRzvJoKVtbWwCALsMWYY0XIuNlWf/J32U//1N0kbKLO0cv0Mn0sgix5ehSRG5aHwkR8zJBbVl5RYSUSiVe8VbZGvqJEIfkUDYZS9qmY1YMDJCKGCuXyRQRMlZbR48UyNbo0FiH8F73RUdNKoXlChdbIU0wQYQA0PWkEmHltLtwFkndRbE5tno6md4RIaFJYxg3GcdMRNMCoT0qlUqhUOjv71e0R6h9s/RMz5EQYwf0YvoujvXa5CkYRYSIMpOVyspCgfUG5z9WLFJitFTiHJGmYkqjAIAuJtFcg2eEdRTOIq1wUVBPWB9Q9LedT8tEyFPBPh13T0haIkSpludieGykpSLEoZ+NIkRZuV7RBj4ihOdi5KESWX7wjAwbz8vo7QIAuhKIkFhaJEJsu2dUivSUCAntAiPpdIyeyRMuaYkQRWPomT7fX0WEKDyYz/M4htAVoSZC+O3WkRGRP1mpiPtGwtqkjDyDY2wLANBlJJprCE3Rs2dFSDMucpR3v+1YMipCwplAPCM/fHyuiYo6paHLDx8RwrebLlmyxFOEUPlcLkfpwcFBRYQI5ExjBzw/xjwAYpyUcdyYKsrwWMdDS5bI+ctzOTH0IQZDlEYBAN1N0ggbWmaTY2NrdmneRY4foZ5vO5/sihAmcw7X6bKQ3WWHAwAwgseBxgIX+ZB1EdIddE3g7poDAQC4QYSNBS7yASIEAABAUhBhY4GLfIAIAQAAkBRE2FjgIh86R4RQT2AwGAwGg/WUdYgIAQAAkBWG8TM/DrjIB4gQAAAASUGEjQUu8gEiBAAAQFIQYWOBi3zIugjpgueEAABA5kCEjQUu8iG7IqSxJ6YCAABontZF2K65ksNFPmRUhMjyI9HaMXHVxucUi0VesY7I5/O8kG66KE99D6KFaeitWJ7G8zB9SjqW2QUAABsNRFjHM8mVYs12rjOAi3yACIlrqO4tLxND2oPSpVKJ0iRI0m0xNImQwWihFnpNV4S4V7gDAAAbSSOsfi3q+ggLF/mQRRFiUyBuHWJcPzfpAnb9/f1UP8kPpfKRkREeHsnlciRUwpoAKBQKcmalUhkYGGDpIoZQxMp3rG1CTYRQYdqL3tKrGIRR9qWE0hNuWi8pWtFVB3QIAMATW4SVr8Aibbws6z/53T//Mwdc5EOrRMiCNcG+nS5CbDm6FJGbNtYvRAVLDlGS5ArPoXAmCYAgmlsRQyisDUYiKMFiQxEhLCf4rSwteN+hCKFDWOSUI5SSSisQIQCAhkklwsppd+EsAhf50DsiJDRpDOMm45iJaNpYf6VSIXnA4ySyflD20ncPNPTyPO9TLBZF2rMJJVNpBSIEANAwieYafCKsu3AWgYt8yKIICRu9J6R5EWKbjuEZEHnwIZEI0Y/OqEaMmY4mHO2GECEAgCZAhI0FLvKhp0RIaBcYntMxfGuofmMqR3nx75XQIgb06RjOoWod0zFhbZJF2WqcjuEKSxFKu0orECEAgIZJNNcQmuJm10dYuMiHjIqQcCYWz8gPn/OiTa/UKQ1dfuhVUsQX0y4UzflWECED3CKECjtuTGVtEJpECM/F0KtScwM3popWIEIAAA2TNMKG9fPCco57r+wCF/mQXRHCKOcLJAJ/0QUANAYeBxoLXORD1kUIaBI8rAwA0ACIsLHART5AhAAAAEgKImwscJEPECEAAACSgggbC1zkQ+eIEOoJDAaDwWCwnrIOESEAAACywjB+5scBF/kAEQIAACApiLCxwEU+QIQAAABICiJsLHCRD1kXIXhOCAAAtB9E2FjgIh+yK0Iae2IqAACA5mldhO2aK3kmRMise7sNImS3Tlo7Jq7a+JywtowdUalUbFWVy2X9Mew+yDs6wEPGAACzSAMRVnkmue2qOOthMS0SuSiox38vR9qnnln3NkRIXENqjlilLogWj3P0sLHO+OyIx60DAGaXpCJEv6xBhOgkPXa3CGlFi6mTRRFiUyBuHWJcP7eBBex4YThel5aX0yUqlYq8Mp0u+FmxBLWV5sQCuGK9uVwuxwUUJSwWnhNtYeE5AMCsY4uwxlBovCzroyL+v98zQSIX2d7K4UAPED4jIcYBFmNVxprdJ7F5elmE2HJ0KSKTiyDVwcqBM1mTsPwgURGaVtHlXXgrCw/KEcvpitp0BTISEdQWwIUIAQDMOqmIEDnd6mDXfpoUITZRoWx1qDjbXolyIEJ0GhMhoUljGDcZx0yYUqlE9RcKhbB2Z0i5XA5Ncyi6CAlr2oN2EWqEdAjVJm4yMe6oSFaIEADArJP0hgd3piMuZ5cmp2M6QYQYq02XLIqQ0K5D3F5qXoTwiIcMCxJPEcJTOTxxw/MysiyxiRDlKCBCAACzDkRILBAhPvSUCAntAsNzOiaozYkQfAtHf39/6DcdE9YGUhhKi03iNhJlR652cHAQ0zEAgI4i6VyDfnHuWRHiONgGREgDeyWSN8Z+pkhGRUg4E6xn5IePlzRRUac0dPkhlycxQE0Ui0V+y/d4BNGtHSQS5BtTw0ii5HI5lhC6IBFvxd2qIlPeMZRuTBXiByIEADDrNBZhlQug/OPLtld2acONqe4K3QLDVrlPP1MkuyKEMZ6Rrgd/0QUAzC6ZeBLX7JK6i7oy0mVdhPQseFgZAGAWgQiJBSLEB4gQAAAASYEIiQUu8gEiBAAAQFIQYWOBi3zoHBFCPYHBYDAYDNZT1iEiBAAAQFYYxs/8OOAiHyBCAAAAJAURNha4yAeIEAAAAElBhI0FLvIh6yKkN58TAgAAswsibCxwkQ8tEyFPBft8pwOfmAoAAKB5Whdhu+ZKngkRMuvezqgIkeVHorVj4qqNyZEfdctL1zVDuVwWD2NPJKLkHR3ggWYAgBbRQIRVHhVuu+LNelhMi0QuCurx38uR9qln1r0NERLXkNouN8ErwjSpQxoevfHZEY92BwC0jqQiRL9kQYToJD325pd6mXVvZ1GE2BSIW4cY189NtIBdqK2NywvmhtIyc/l8nnNGRkZoK+XkcrmhoaEwWvBOXuRO/1FAiPXsRJ2Uo1Slq2W9dSxyBwBoKbYIawyFxsuyPiri//s9EyRyke2tEnT0HEe1cnBRfroaqzLW7D6JzdPLIsSWo0sRuWnllIU1DTASEdSWuxXL6bJ4oAQpBC4m1IteG6/My1tZeFCOXpWuQJTWIUIAAC0lFREip1sd7NpPkyLEJiqUrQ4VZ9srUQ5EiE5jIiQ0aQzjJuOYiWhaFyGBRhiNexQKhf7+fqVYbG2sPcrlslAj7qqMrUOEAABaStIbHtyZjricXZqcjukEEWKsNl2yKEJCuw5xeyl1EaIPaAhkLZFIhJDeCKIBjaA2L+Ouytg6RAgAoKVAhMQCEeJDT4mQ0C4wkk7H8I2pxWIxrM2zUI48IcIlxb0fod90DCVKpVJQg9LGquQdja1DhAAAWkrSuQb94tyzIsRxsA2IkAb2SiRvjP1MkYyKkHAmEM/IDx8vaaKiTmno8sMoQoLo3gz5rzHi1lDxz1lxi6noGIkE+cZULkP1sITQBYl4q1cl72hsHSIEANBSGouwysVN/mFl2yu7tOHGVHeFboFhq9ynnymSXRHCGM8ICPEXXQBAK8nEk7hml9Rd1JWRLusiBDjAw8oAAC0CIiQWiBAfIEIAAAAkBSIkFrjIB4gQAAAASUGEjQUu8qFzRAj1BAaDwWAwWE9Zh4gQAAAAWWEYP/PjgIt8gAgBAACQFETYWOAiH1ooQvaFCAEAgO4EETYWuMiHrIsQPCcEAADaDyJsLHCRD9kVITXtkeyJqQAAAJqndRG2a67kcJEPGRUhsvzwXDumpWctqKcNDfGD38WCMq1rNN1DK5fL4tnyzLDp8fhS6002GM9Yubyivkv1HYg/dtumht2VljeGg2DYvo/Y6vaAm3Q/eEpt7v67WTs0tDyXo93p0JqpR+pMkxV0Gw1EWOXblPoXp9OAi3yACEmFto3DiM8nrxojFp1ptQhpUW2xF/Y2ONUdoeTeJvVD6ielRSKkmRjdsSJE3jcVERJCh9STNMLqH5Wuj7BwkQ9ZFCE2BeLWIbKwNP68teWE0hm3RXw9k3P6I8JoyKKvry+IVr4bGhqSC3BmsVjk9XBFgVBamY42ydVSVTyeQK9crWhd7EIJvW8iXSqVuOkgWvaOx1UcLYrjEqvpicLcW9uOhUJBHJTidvmSLpYLlJcUVJYXFDy0ZAmHlQejtug3L6UfirrEm9ZGXVKKhbVgtLJQoFf6mcw7ClObqR2FnlY+BsYPlfGjInfgvr6+rTW3a436ekPuPx8C1Uk1i1bEcdm8Ydud/WPsXqh9NYxe8vGYsTbl6ML6U6wfywP9/ZRmZ9KrflCOo6McHioRdVLmaKnEdfJAinyaoEMEtghr+wAYSxo/SMbCWQQu8qEHRYh+AQxNnwr3FVJpJahH5JTLZS4gVs7liCwKkBioVCpKmgtwWB+JCGor5HJJjuz8ltP8VqgCWSooF39O8yK81BxXzkrJ0aKAe0iHwwfFOY4d6aA4Uz5q7oxRhDhyGA4WFBc43FCMmKxUOKbTVg4xlKMXC2vBiEIMZy6PupR0JMSW4y5ZO+RqW2PlMpnolalRX28wcozmkCqa4ENzeEPxgJBGwj8On8R+mxyeUcoombK7jApEPhYusDJa1Zqll5CXcj3GoyMZw+6iT4UoxvM49CniJh6Ivh21qsynoAdJJcLKaXfhLAIX+dCDIkR+G2rXQP26GtZfOeUycgF3DkVqUgti8CHUPlHGC7veoojs9FosFkXaUacxUx4G4Zkdd4vyobH2IH0V1NRI7I7GzMZEiPH3O2sPDrusRozFjIEpVoTIBxWmIUL0tNaorzfC6Lc8BU0RKB3HaPOGvAtFXorjYhzA5hM9rbsi1mOO2uT+sz1Z+5Qaj4U8IFSori1FWj86YzF5GES0WytjdEkvkmiuQf8uhN4fg+wCF/mQRRES2nWI49TYLow+EcQWU+QCylYlRw7cjhgtp/U69a1Kydh65DR1hnQRd0zWErGHxmMvpF4C02CLcUdjZ5oRIUom//4V4+q2Yo2JEEdOJ4gQipgUdsWUgf8x2kZChJzrEBFCJ1RoDNuxPFYsKmMmtpEQ5ehsZ4TK0IeKy4umQ4gQCUTYWOAiHyBC9PzYnFD7DOhRWMnht+LPLEoBY5pvERkcHNTnOMLobhA90zgdwzMvVIk8ZsIjIcoMkbtFgagniMZhfHZMUYTw+Dn9PpVnFsRY+nA022Ir1iEihHrFcVDcnqE14esN+R4Y2T/kBHl+we0N3S3izgq3T/QPuWfauFX/pIk+8GGORZObxmPhKTk2ShsPynh0YjqGKlRGQozTUhAhgkRzDaHfV8lWMqPART5kVISEM5esGfnhPi+6tNATehljjvGjomQqOUIVGMOxLS3Ki7+1iq08F0Ovtl3EjanUNOsQ+e6RSqXCyiGIbgjRb0xVWlQOXPeDo6tyWnRmsHrNl90186rk2CLvcP09FfLgvK2YMTCJ/3LywLsSZYwfKt0bSkn9FMuNinEbafhCqd/XG+KoxeHE3piqe0P2gBhMqPeV2QPGozb6zegxd21yD1lQ6Temyh8Azow918rRGd1FMobFyXB0QwhuTDWSNMKG9RcTOce9V3aBi3zIrghh9GjYCrrpjHcUHXhJb2mXbMMLHegHmQ7vHiPuyE20F6kvFp/y7c02MuGHtoHHgcYCF/mQdRHSOnRFClpBp13YIUJ0Or57AesHx3+KbYyWSjwSog96aK001cnuAxE2FrjIB4gQAAAASUGEjQUu8gEiBAAAQFIQYWOBi3zoHBFCPYHBYDAYDNZT1hIR8sE1GAkBAIBuZRg/8+OAi3yACAEAAJAURNhY4CIfIEIAAAAkBRE2FrjIh6yLEPyLFgAA2g8ibCxwkQ/ZFSE17eH7xFQAAABp0boI2zVXcrjIh4yKEFl+hEnWjmkRYkCGn38u1ohpXaNBPU3WVi6XB+qXlR/Wnhxe33qTDcYzVi7bVroP/R4lZ9vUsLvS8oZ7tRqx1e0BN+l+8GxPU28A8Yh4fsBpw/VInWmyAtAgDURY5Wub+je004CLfIAISQXxsRmMHgFNr+0RIS2qLfbC3oZvgP+6ckn9kPpJaZEIaSZGd6wIMS7p0iTQIbNC0girfya7PsLCRT5kUYTYFIhbh8jC0vg72pYTSmfcJi04s6+vj8cT6JXSckl9XTl5q0iXSiVe3zaIVoLT15XL19ZdVbohL5sr1tJ17MiL2eVyOd5RPi7junLC5LcKYl0wXhxWXlddXuxVKRbWL+tGP5N5R31BOv1sKmnl7BjPtfEMyh24r6/P9uxuf280sK6c4g3b7uwfY/dC7RNr9JKPx4y1KUcX1p9i/VjktWjFwrXyQTmOjnJ4qERebG60VOI6leX/QuiQ2cAWYW2fNGNJ4yfWWDiLwEU+9KAI0a+0oelT4b4UK63IkZ3fykvWClUgSwXl4s9pXmG2UqnwhA4JErH7SERQW6Y2qId2CSIVRJtY/1COY0dSO5yZi5YplzvjubitAgcLigtigXV5RTAOMZSjFwtrwYhCDGfyyulJR0JsOe6StUMOeO0zMmVt1vpGfb3ByDFaLK/GTfChObyheEBIo+H6leWNPon9kDs8o18S5UzZXUYFIh8LFyDRRVtZegl5KddjPDpexJZ8xevncjGex6FPETfxQPTtqFVlPgWgdaQSYeW0u3AWgYt86EERIr8NtYutQ3IocV+pnCM7vRaLRZE2XtsdmfIwCM/s6O3quzOsPcrlclBTI7E7GjMbEyHG3++sPTjsshoxFjMGplgRopwI4/ly5Oud19Nao77eCKPf8hQ0RaB0HKPNG/IuFHkpjotxAJtP9LTuiliPOWqT+8/2ZO1TajwW8oBQobq2FGn96IzF5GEQ0W6tjNEloIUkmmvQv3Sh9+ctu8BFPmRRhIR2HeI4NbYrsE+osgUvuYAczZXIHhv35TSpiEKhwIpC1hK2FgU89kLqJTANthh3TF2EKJn8+1eMq9uKNSZCHDmdIEIoYlLYFVMG/sdoGwkRcq5DRAidUKExbMfyWLGojJnYRkKUo7OdESpDHyouL5oOIUJmA0TYWOAiHyBC9PzYnFD7DIgyrAHkiY/QMh3DMy8jIyPymAmPhPCtIEFtriSfzwfRLa/6rIrcB1FPEI3D+OyYogjh8XP6fSrPLIix9OFotsVWrENECPWK46C4PUNrwtcb8j0wsn/ICfL8gtsbulvEnRVunyifDf+0TcYYRYg4THKa7Vh4So6N0saDMh6dmI6hCpWREOO0FERI+0k01xD6fWdtJTMKXORDRkVIOHNtnJEf7vPiFiFShfE5xo8KZ/JcDL2G9Vdv/cZUEiSsQ+S7RyqVCiuHILohRL8xVfyRNqjH1j3bjkpadGawes2Xj2vmVcmxRd7h+nsq5MF5WzFjYBL/5eSBdyXKGM+17o3Q9M21RVUxbiMNXyj1+3pDHLU4nNgbU3VvyB4Qgwn1vjJ7wHjURr8ZPeauTe4hCyr9xlT5A8CZsedaOTqju0jGsDgZjm4IwY2ps0vSCBvWX7XkHPde2QUu8iG7IoTRw24r6KYz7kMHXtJb2iXb8EIH+kGmw7vHiDtyE+1F6ovFp3x7s41M+KH7wONAY4GLfMi6CGkduiLtKTrtwg4RotPx3QtYPzj+U2xjtFTikRB90ENrpalOgoZBhI0FLvIBIgQAAEBSEGFjgYt8aJkIeSrY97sQIQAA0JUgwsYCF/nQOSKEegKDwWAwGKynrENECAAAgKwwjJ/5ccBFPkCEAAAASAoibCxwkQ8QIQAAAJKCCBsLXORD1kVIL/+LFgAAZgtE2FjgIh+yK0Jq2sP3iakAAADSonURtmuu5HCRDxkVIbL88Fw7xq/amBwx8MIPVOc1WVqqf4J6bMXK5fKAZQF6B8OB2oSjG4nyE5Gu92zPGG8A8eB0fuxnw/VInWmyAgA6hQYirHKpaelVpROAi3yACIlrSG2XGYyeKU2v7REhaRWTEQFR3jFpJd0tQmxruTYDdAjoDpJGWP1r3vURFi7yIYsixKZA3DpEX3csrC09Jr+V80OLCOnr6+NhB3qltCwA9IXq5K0iXSqVeMHcIFpaTl+oLl9byFVXF5zDy97lcjlemVfRQrZ6+iNCdalcgwhRKhSyXFHpevfkxeDu6+tzPHBbrsfWDZ8uGWtT+hNKq6RxvlgujdfMlVdoFcu5yivQ6WurLc/l+IHklMNDJfISbKOlEtepLIoXQoeArsAWYW1fXmNJ40WgayIsXORDL4sQW44uReSmhQDgt/IauBz6hyKCmg5R4ianecnaSqXCEzosDHj3kYigtu5tUI/IIRnDxXLRguZyK456yrV1xNwixJbjLlmrOeAFy8iUBVUVTyo+cagLW9P691fOlPtjVCAkDMS681yAtBNtZQXFOfpIiFBWYjV5se48ryrLxXgeZ7JS4SYeiE6x7nwAMkoqEVZOuwtnEbjIh94RIaFJYxg3GcdMRNMsAOi1WCyKtDEsOjLlYRCe2RFbjZJD70NsK+56FBEilwxDw3fEoQQUJ3tOYTi+hsYW3U3b0qIPbE/WXK0MdAjZwKu10iurC+OxkK4glSJGOWzF5GEQ0W6tjNElAGSJRHMNPhHWXTiLwEU+ZFGEhHYd4j41aYkQkVDiu78ICaNbSQuFAs/m9EWxT9cbxsxErdjqsY2E6DndIUIeWrJEaAxbxx4rFpUxE9tICI97uEUIQWVIrnB5eTF6iBDQBSDCxgIX+dBTIiS0CwyjCAks0zFhdDdIUD/TEVqmY3jmZWRkRB4z4ZEQvhUkqE2p5PP5ILrlVZ9GMfZBTsuZPvW0WoTQb38O0w/WbkqxNaF0zD9tkzFGERLWpmDGogkpnkChTorpmDAa4hADI5QOLeqCE+K+kVCajqEKlZEQZeKmVpXRJQBkiURzDaHfdcZWMqPART5kVISEM+FmRn74nBdNVNQpDV1+2EQIz8XQa1gf+PQbU0mQsA6R7x6pVCosFYLohhD9xlTxf9ugHqU5kRat8OSOrR5xIG4RIrcrlzEqAWPQ59sq5Bsy9cgrH5GxM0rNxi65awsl8cA3bOg3psp3rXCmyDGKEDFUot+qykctZm1YnPANIbgxFXQZSSNsWH81k3Pce2UXuMiHNoiQ3fHE1I6kRaHQNgWTicjLf3IZq92+68nyXI7v+uCxFHnmRScTfgAgFjwONBa4yIcWipB9vtMGEQKaoRUBMaMihLtN+oH/dZuI0VKJR0L0QQ+tlaY6CUDngAgbC1zkA0QIAACApCDCxgIX+QARAgAAICmIsLHART50jgihnsBgMBgMBusp6xARAgAAICsM42d+HHCRDxAhAAAAkoIIGwtc5ANECAAAgKQgwsYCF/mQdRGC54QAAED7QYSNBS7yIbsipKY9kj0xFQAAQPO0LsJ2zZUcLvIhoyJElh+J1o6JqzYmRwy88IPWeXGWluqfVrc4HNS14qjWtimVnqTrQNuT2xtg7dDQ8lyOn+XeTD1SZ5qsAICOoIEIq1xnWnpJ6QTgIh8gQuIaUttleIkWem2bCGlFiyIgNrMqQXeLEM9FgRPW2XwdAMwySSOs/h3v+ggLF/mQRRFiUyBuHSJnKwvVJV3Arq+vjxeGo1dKy5JAX8BO3irSpVKJF9INojXm9AXs8rXFZ5O2KC/gK1b1NdZsW8NO6a38Vs5U3spektewu6+vz/EYc7keWzd8umSsTelPKK09x/liETpe6lde91YskitMrkesWLc8l+PHvFMOD5XIC9uNlkpcp7KWXwgdArKPLcLavrnGksYrQNdEWLjIh14WIbYcXYrITQe19XD5rbw2rgj6shJQgianecXbSqXC0yskSMTuIxFBbQHcpC1SnUEkWmgryxXKMdbsFiG2HHdJhsPuWLlMpixTqzhTcYtDXdia1r/CNlFkVCAkDFhvUCe5AGkn2soKinP0kRChrFiHUIIXzKXj5bV6uRjP40xWKtzEA9FZrlVldAkAmSGVCCun3YWzCFzkQ++IkNCkMYybjGMmommiVCrRa7FYFGljTHRkysMgPM8itso01iJrj3K5LNSIsWZFhMibQu3Dr7zq+TKeUxiOb6KxRXfTtrToA9uTNW8rAx1CNvAauPTK6sJ4LKQrSKWIUQ5bMXkYRLRbK2N0CQCZIdFcg0+EdRfOInCRD1kUIaFdh7hPTVoiRCQUJeAvQggSCYVCgQWDLBX0I03aIg+VkLwJTKMxAttIiJ7THSLkoSVLhMawdeyxYlEZM7GNhPC4h1uEEFSG5AqXF02HECEg+yDCxgIX+dAGEbLb/NUdIkJCu8AwipDAMh0TRvdmBPUzJqFlOoZnXkZGRuQRDB4J4VtBKJGLfnTn8/kgugFVn45J1KJoKIiGTWw1t1qE0G9/DtMP1u5CsTWhaCT/tE3GGEVIWJuCoV6FtQkU6qSYjgmjIQ4xMELp0KIuOCHuGwml6RiqUBkJUSZualUZXQJAZkg01xD6XWRsJTMKXORDq0TIgjXBvt9tnQgJZ2LNjPzwOS+aqKhTGrr8sIkQnhmh17A+6uk3ppI8YB0i38tRqVRYGATRDSH6jakDtfsoGmhRFJAdotfsFiF6JQ4RYgz6fFuFfEOmHnnFvp7fNWOX3LWFknjgGzb0G1Plu1Y4c8WMlwwiRAyV6Leq8lGLWRsWJ3xDCG5MBd1E0ggbSt9f/SdDV0ZYuMiH7IoQRo+2wJ8WhULbFEwmIi//yYVHS/xZnsvxXR88liLPvOhkwg8AuMHjQGOBi3zIuggBTdKKgJhREcLdJv3A/7pNxGipxCMh+qCH1kpTnQSgQ0CEjQUu8gEiBAAAQFIQYWOBi3yACAEAAJAURNhY4CIfOkeEUE9gMBgMBoP1lHWICAEAAJAVhvEzPw64yAeIEAAAAP9/e2f7YsV1x/F5UUgoFC6lFKEo/gEtmCIUAsr2VSl90U0R8i4o5FXftARiX/jmEhJCE8wSjCZacTVCkheb3vjCkLa6lyBpU9T1AfNgUFcTV93tJj5F14eE6W/vz3s8e57mzMydhzP3++WDzJ4998yZs3vv+TgzOydtMMMmBkPkE0gIgiAIkjaYYRODIfJJ6BKC54QgCIKUH8ywicEQ+SRcCem7R7onpiIIgiD5U9wM25hP8vxD1JihcCRQCZH1I9XaMUnNJpT4q454WvvIyEi321Uew875c2/V+IFnIlJ3ZKtp+9ZAfvMH+/axPYk9Q86Pj+9rtfjZ7HnakTqTswEECS8ZZljlQ6nQz586pLghalIgIUk7UvfruQvjw//l7bGxsSI8REyIeRYaaLaEeC7ym7LN/G0gSEhJO8PqHwiQECX+Q9SkhCghNgNxe4hcrCxUl2EBOyViebjR3oqxkSWxJiQr+4uM6OvQtVot3uYVcsd6S5NQCS+5K86lRL1FeMd7Txq3rUmnKJD8pdJbvQ5HXpPu/ZUrHY8lVxze5kKJXTK2pvQnltaS43KxqBwv3SuvYysWvRXI7YgV6Pa1WvzYdirhUyXyQnUznQ63qazNF8NDkCGLbYa1vc2NNY0fF42ZeQc4RMpL3CXGz/DaZpglxFaiq4i8a7199odjvUT9ZWr1XwnHNrcw3kvU9xBqhxVl1apVUW+xXdqmErn9TqfDO2UzcUuIrcRdk8PT7ly3SyjLzirjoxyawy5su9bflfqwc3+MBkJiwL5BneQKx3unm9iguEQ/EyLMij2ENngBXDpeXnuXq/F1nFvT07yLA70fSr8p45AgSDMzkBlW3nZXDjEDH6LEEls7dU4JEvLoY6frICGxyTGM3zKeMxG71tuPtMTae8q9bSxst9usGaJZ3uYrOMaXKBIi9ye2//b6S4i+rQ+Fvq3vK7FLjtbkPjC8fK1SKGsDr2lL/+57oGqGYyGvIEsRZzls1eTTIGK//TrGIUGQZibVtQbPGdZROcQUMUTuuUb/sv4pUkJ2FyQhsd1D3INfqIQ4Ch3bfK7DWEHWDz5DwuHrMj4SondJ2Q5dQg6vXy8cw9axT9tt5ZyJ7UwIn/dwSwiF6pCucH2x6xgSggxZICGJKUhCbC8PVEWGSkJiu2AYJSTyuxwzOjrKbpDqcgzfmNput2PL5Zjp6WmuzBdi+KIMpdvt2tosWkLo//48TfMdF3qMh2zchbtL7tZiyQr4Esxcb0z4Agp1UlyOiXunOMSJEdqOLXbBG+K+kVi6HEMNKmdClAs3/aaMQ4IgzUyqaw2x3yeSrWagKWKIHPXdX9Y2gUpI/HBieqgfPmOuScUS09D1wyghcrhc3Faq/Ckub4s/12Xx4FCJ/Kcx+o2pce/e1Kh/6kOcDNHb95QQuf9yHePvuXHS59sq5Bsy9ZlXvNbzjWbskru1WJIHvmFDvzFVvmuFC0WJUULEqRL9VlU+anHVhuWEbwjBjanI0CbtDBsv/fyUS9yvCjf5h8hY0ziGti/rn3AlhBPcgBedgqZC2yWYIGZe/iMXPlvin32tFt/1wedS5CsveoIYBwQZYPA40MRgiHwSuoQgeoqYEAOVEO42+QP/1W2qzHQ6fCZEP+mh7SVXJxEkxGCGTQyGyCcsIWmJISEIgiBDHMywicEQ+URIyM6Jg8/v2E8+YIO+S3UgIQiCIAhm2MRgiHzCEkJ2QXxx/tL81RvGalRO3+VqBUkI9QQAAAAAQwVpwPM79pNjTB6fdzN18ijVxJkQBEGQIc8E/pufFAyRT1hCFo3i6o2Dx+bcnD17kt0jhoQgCIIMcTDDJgZD5BMhIbR9YGrWzQNdgYQgCIIMdzDDJgZD5JOlEnKF+N1Tf+ENgSipoYTgOSEIgiDlBzNsYjBEPpEl5F9HL5NvMLTNyCW1kpC+e6R7YiqCIAiSP8XNsI35JMcQ+USWkH8euUQI61C2ifpIiKwfqdaOSWo2ocRfdcSj2kdGRrrdrvI4d4782HbvHho64NOriUjdu2MXqcpTZbDvHduz3DPk/Pj4vlaLn+6epx2pMzkbQJBaJ8MM63gmuVItb+fqEQyRT5ZKyAwj3KNvIA/KGy8hph2p+/Xchf4wf2Wb15FJ6yHZJERMiHK1tGPVbAnxXCY4ZZv520CQmibtDGv84PKsGWgwRD6RJeQfhy8KhIHIhdkk5JFfDlhCbAbi9hC5WFmoLu0CdnrjYvm50d7yspElSgu0sbK/Iom+gJ1RXXiD1IVfe6z3LHG5ptKT2L6qndK4/KVyCHqdfssPV7V7f+VKx4PN5XZs3fDpkrE1pT+xtBodl4tl6XjxX3klXLFsrkBuR6xht6/V4ge/UwmfKpGXupvpdLhNZXW/GB6CNDe2Gdb2jjbWNH4yNGaGxRD5ZKmEfCXTM5AlJSkkZO2ZaPmemkuIrURXEXnXevs87x/rJeovpGtUCNs2tzDei/AQh4R0e9H3ZeyJW0JsJe6aHJ5257pdQlm4Vhk0/SiMLTt2rb9VbVJkNBASA/YN6iRXON47B8UGxSX6mRBhVuwhtMFL6NLx8uq9XI2v49yanuZdkJBIXTIOCYIEn4HMsPK2u3KIwRD5RH5OSHfqnJsUzwmpn4TEJscwfst4zkTsWm8/0hJrvzDu7UEVGnuiSIj8rf5gygObWkL0bX189G19X4ldcrQm94HhBXCVQlkbeFVc+pftwngs5BVkKeIsh62afBpE7LdfxzgkCBJ8Ul1r8Jlh3ZVDDIbIJ/ITU/9z4rSbFE9MLVJCYruHuH80hUqIo9CxzZdjBishSk9sZ0L0kmZIyOH164Vj2Dr2abutnDOxnQnh8x5uCaFQHdIVri92HUNCkOYGM2xiMEQ+mZDWjiHHOHv2pNETqJy+m2LtmFpKSGwXDKOERH6XY0ZHR6lwbGws1eUYvjG13W7Hlssx/Mc11Gan01E0g17Ll2PkW1BsPSlaQuj//jxN/7t/F4ptF8ro+W/bNMYoIXH/Egz1Ku5fQKFOissxce8UhzgxQtuxxS54Q9w3EkuXY6hB5UyIcuGm35RxSBAk+KS61hD7ffjYagYaDJFPJgpaRbdgCYkfzkEP9cPn56JJxRLT0PXDKCFyuFzcDqr8KS5viz/XZfHgUIn8pzH6janiVXwbqiwhPjemip64JUQ+KLmO0QSMkz7fViHfkKnPvHL/jZ1RWjZ2yd1aLMkD37Ch35gq37XChR8+HCWDhIhTJfqtqnzU4qoNywnfEIIbU5FhSNoZNl76+SmXuF8VbjBEPhESkoq4BhKCIAiCIMhwZrASAgAAAADgz6AkBAAAAABgIEBCAAAAAFAJkBAAAAAAVAIkBAAAAACVAAkBAAAAQCVAQgAAAABQCZAQAAAAAFQCJAQAAAAAlaBIyKOPQUIAAAAEzGenDp04evDIxx8EBHWYut3sYzGyKCFrzkQrdkNCAAAAhA5Nf8RTf3rh8SeeWbZ6QxCsWbfx6Wc3X545vXD7WlOPxQYkBAAAQGOg/4bTrE3s2H1gonN0cvJczXn3vamdb3Zp4ibu31swHsuh/564cPFK1SvAJOfLmdmPDp8yHosNSAgAAIDGcOTjDx5/4hkykF27pkLhpb/uf+7F3WvWbaR5XD8WMpCq5SJdXt36mn4sNuogIZUvrDOcVP5ZAQAAA4cm7mWrN0x0jtLkXvVs7BuSkJc3v0XdjjUJocILF698//13AbFr1zb9WGzUREKq/hUYukBCAACNhCfuyclzJCHfBRKSkK1bJmwSQoX3798LiIl3tkNCEHcgIQCARiJLyL17d4MgUULu3r0TEJAQJDGQEABAI5El5M6dhSBIlJCFhdvVEkWRf2VICJIYSAgAoJHIEnL71rf5ifqRS4zbmUmUkFu3bvoTSUn1Qneb/pVrKCHUf8d3ISHlBxICAGgksoR8e/N6Tmjy0rf1jZwkSsjNm9c9oS75Vy6o2UIlJFqa+STBEK9yfBcSUn4gIQCARiJLyI3rV/NAM5exRP53ICRKSOYOi3KO8qVc31bH3bKRoiUkw28FJKRugYQAABqJLCFXv5nPA81cxhKenXM2LpMoIdeuzvtAvfKpIFfTS3wquClZQsT5EPn0iPiWXqgDCSk/kBAAQCORJeTr+dk80MxlLOFJLWfjMokS8s3Xcz5Qr2zlIko1vUSpb6zgppLLMYp7GEtsQELKDyQEANBIZAn539zlPNDMZSyR/x0IiRIyP3fFh8Wp1lnI2+4SYzvGlm1UdSYkscQGJKT8QEIAAI1ElpDZyxdzQpOXvq1v5CRRQuZmZzyhLjlKeNtd4lPBDSQESQwkBADQSGQJuTxzIT/izL9cYtzOTKKEXLn8lT/y1QpjiSiXt20vUar5AAlBEgMJAQA0EllCZr6aDoJECbk0cyEgskjI8sFLyDxuTK1xICEAgEYiS8i5M58EQaKEVK5JqShUQooAElJ+ICEAgEYiS8jnnxwOgkQJqVyTUlH0mRD9D2RyAgkpP5AQAEAj4Yn73femSEJOTn0YBCQhm1952yYhX87MVq5JqRgffwNnQhB3ICEAgEZCE/eadRt3vtmlmT0gXnhp78iTm2JNQuhYPjp8qnJNSsWW11/Xj8UGJGQ4AwkBADSSE0cPPv3sZuK5F3e/vPmtrVsmas7mV94mA/njpm3E/XsLxmN5detru3Ztm3hne80ZH3+DDMR4LDZqIiGgfCr/rAAAgIHz2alDly6epol7zbqNy1ZvCIKRJzfRrL1w+xrR1GOxUQcJAQAAAAYFTX/03/CqzzenC3XYOGs36ViMQEIAAAAAUAmQEAAAAABUAiQEAAAAAJUACQEAAABAJUBCAAAAAFAJkBAAAAAAVAIkBAAAAACVAAkBAAAAQCXoEvLjP8ywhzzy+7kMLDYIAAAAAJAIGcgvJmUJ+dFvvmitm/7hb0//4NefZyBaezYj1JP6szYTa85mpcyjy9rJbGMSxO9JyZ0se0wy/1o295c54w+u5E+GMkey0Z0M4wdX8jsu8+6ydvJXx6OfH4hW7F2UkJ/+PVqxu8ee/kaZ7MlEuZ1cXi5ldjLj+O8pe3cZx2RPFsr+Zc78IyiR7O+dbLsrmXI/T9DJQCn1vVP+u6Dkd9zexY2f/W1RQn6yffFfAAAAAIBy+T8iNC2F) +&] +[s5; &] +[s5; You can select one or more virtual methods to override in the +current class. After pushing the `"OK`" button, declaration of +virtual methods are inserted at current position. Definitions +of virtual methods are placed on clipboard so that they can be +inserted to the source file (.cpp) later.&] +[s3; THISBACKs&] +[s5; THISBACKs tools provides assistance with binding Callbacks of +current class and its members (usually but not limited to some +GUI dialog and its widgets) to methods:&] +[s5; &] +[s0;= +@@image:2271&1659 +(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) +&] +[s5; &] +[s5; Check the `"Insert`" column for Callbacks you want to process +by method, alternatively adjust the name of method. After clicking +`"OK`" button, TheIDE will insert THISBACK assignments to the +actual position and places methods definitions and declarations +to the clipboard (you have to reselect declaration and move it +to the class).&] +[s3; Layout code generation&] +[s5; There is a tool [* Generate code] (default [*@(0.0.255) Alt`+C]) +in layout designer that can be used to generate code snippets +from layouts:&] +[s5; &] +[s0;= +@@image:1903&1281 +(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) +&] +[s5;= &] +[s5; &] +[s5; It invokes this dialog that provides some common code generators +based on the layout:&] +[s5; &] +[s0;=%- +@@image:2471&1878 +(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) +&] +[s0;=%- &] +[s0;= +@@image:2471&1878 +(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) +&] +[s5;* &] +[s5; [* Go to class using this layout ](default [*@(0.0.255) Alt`+J]) +finds usage of current layout in the code:&] +[s5; &] +[s0;= +@@image:1903&1281 +(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) ]] \ No newline at end of file diff --git a/uppsrc/ide/app.tpp/BSD$en-us.tpp b/uppsrc/ide/app.tpp/BSD_en-us.tpp similarity index 97% rename from uppsrc/ide/app.tpp/BSD$en-us.tpp rename to uppsrc/ide/app.tpp/BSD_en-us.tpp index ed3700bc5..5ddfacea2 100644 --- a/uppsrc/ide/app.tpp/BSD$en-us.tpp +++ b/uppsrc/ide/app.tpp/BSD_en-us.tpp @@ -1,5007 +1,5007 @@ -topic "Copyright (C) 2005 Mirek Fidler, Tomas Rylek and various contributors (see AUTHORS)"; -[2 $$0,0#00000000000000000000000000000000:Default] -[l288;i704;a17;O9;~~~.992;2 $$1,0#10431211400427159095818037425705:param] -[a83;*R6 $$2,5#31310162474203024125188417583966:caption] -[b83;*2 $$3,5#07864147445237544204411237157677:title] -[b167;a42;C2 $$4,6#40027414424643823182269349404212:item] -[b42;a42;2 $$5,5#45413000475342174754091244180557:text] -[l288;a17;2 $$6,6#27521748481378242620020725143825:desc] -[l321;t246;C@5;1 $$7,7#20902679421464641399138805415013:code] -[b2503;2 $$8,0#65142375456100023862071332075487:separator] -[*@(0.0.255)2 $$9,0#83433469410354161042741608181528:base] -[t4167;C2 $$10,0#37138531426314131251341829483380:class] -[l288;a17;*1 $$11,11#70004532496200323422659154056402:requirement] -[i417;b42;a42;O9;~~~.416;2 $$12,12#10566046415157235020018451313112:tparam] -[b167;C2 $$13,13#92430459443460461911108080531343:item1] -[i288;a42;O9;C2 $$14,14#77422149456609303542238260500223:item2] -[*@2$(0.128.128)2 $$15,15#34511555403152284025741354420178:NewsDate] -[l321;*C$7;2 $$16,16#03451589433145915344929335295360:result] -[l321;b83;a83;*C$7;2 $$17,17#07531550463529505371228428965313:result`-line] -[l160;t4167;*C+117 $$18,5#88603949442205825958800053222425:package`-title] -[{_} -[s0;%% [*+117 Copyright © 1998, 2017 Ultimate`+`+ team]&] -[s0;%% All rights reserved.&] -[s0;%% &] -[s0;%% Redistribution and use in source and binary forms, with or -without modification, are permitted provided that the following -conditions are met:&] -[s0;%% &] -[s0;%% 1. Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer.&] -[s0;%% &] -[s0;%% 2. Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution.&] -[s0;%% &] -[s0;%% THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -`"AS IS`" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT -NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT -SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE -OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, -EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.&] -[s0; &] -[s0;H8;0 &] -[s0; [/ U`+`+ sources contain some 3rd party code]&] -[s0; &] -[s0; Package [* plugin/astyle] has following licence notice:&] -[ {{10000@(255.255.192) [s0; [C1 The `"Artistic Style`" project, including all files needed -to]&] -[s0; [C1 compile it, is free software; you can redistribute it and/or]&] -[s0; [C1 modify it under the terms of the GNU Lesser General Public]&] -[s0; [C1 License as published by the Free Software Foundation; either]&] -[s0; [C1 version 2.1 of the License, or (at your option) any later]&] -[s0; [C1 version.]&] -[s0;C1 &] -[s0; [C1 This program is distributed in the hope that it will be useful,]&] -[s0; [C1 but WITHOUT ANY WARRANTY; without even the implied warranty -of]&] -[s0; [C1 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See -the]&] -[s0; [C1 GNU Lesser General Public License for more details.]&] -[s0;C1 &] -[s0; [C1 You should have received a copy of the GNU Lesser General -Public]&] -[s0; [C1 License along with this project; if not, write to the]&] -[s0; [C1 Free Software Foundation, Inc., 51 Franklin Street, Fifth -Floor,]&] -[s0; [C1 Boston, MA 02110`-1301, USA.]&] -[s0;C1 ]}}&] -[s0; &] -[s0; Package [* plugin/box2d] has following licence notice:&] -[ {{10000@(255.255.192) [s0; [C1 Copyright (c) 2006`-2009 Erin Catto http://www.gphysics.com]&] -[s0;C1 &] -[s0; [C1 This software is provided `'as`-is`', without any express -or implied]&] -[s0; [C1 warranty. In no event will the authors be held liable for -any damages]&] -[s0; [C1 arising from the use of this software.]&] -[s0; [C1 Permission is granted to anyone to use this software for any -purpose,]&] -[s0; [C1 including commercial applications, and to alter it and redistribute -it]&] -[s0; [C1 freely, subject to the following restrictions:]&] -[s0; [C1 1. The origin of this software must not be misrepresented; -you must not]&] -[s0; [C1 claim that you wrote the original software. If you use this -software]&] -[s0; [C1 in a product, an acknowledgment in the product documentation -would be]&] -[s0; [C1 appreciated but is not required.]&] -[s0; [C1 2. Altered source versions must be plainly marked as such, -and must not be]&] -[s0; [C1 misrepresented as being the original software.]&] -[s0; [C1 3. This notice may not be removed or altered from any source -distribution.]&] -[s0;C1 ]}}&] -[s0; &] -[s0; Package [* plugin/bz2] has following licence notice:&] -[ {{10000@(255.255.192) [s0; [C1 This program, `"bzip2`" and associated library `"libbzip2`", -are]&] -[s0; [C1 copyright (C) 1996`-2002 Julian R Seward. All rights reserved.]&] -[s0;C1 &] -[s0; [C1 Redistribution and use in source and binary forms, with or -without]&] -[s0; [C1 modification, are permitted provided that the following conditions]&] -[s0; [C1 are met:]&] -[s0;C1 &] -[s0; [C1 1. Redistributions of source code must retain the above copyright]&] -[s0; [C1 notice, this list of conditions and the following disclaimer.]&] -[s0;C1 &] -[s0; [C1 2. The origin of this software must not be misrepresented; -you must]&] -[s0; [C1 not claim that you wrote the original software. If you -use this]&] -[s0; [C1 software in a product, an acknowledgment in the product]&] -[s0; [C1 documentation would be appreciated but is not required.]&] -[s0;C1 &] -[s0; [C1 3. Altered source versions must be plainly marked as such, -and must]&] -[s0; [C1 not be misrepresented as being the original software.]&] -[s0;C1 &] -[s0; [C1 4. The name of the author may not be used to endorse or promote]&] -[s0; [C1 products derived from this software without specific prior -written]&] -[s0; [C1 permission.]&] -[s0;C1 &] -[s0; [C1 THIS SOFTWARE IS PROVIDED BY THE AUTHOR ````AS IS`'`' AND -ANY EXPRESS]&] -[s0; [C1 OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED]&] -[s0; [C1 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE]&] -[s0; [C1 ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY]&] -[s0; [C1 DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL]&] -[s0; [C1 DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE]&] -[s0; [C1 GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS]&] -[s0; [C1 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,]&] -[s0; [C1 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING]&] -[s0; [C1 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS]&] -[s0; [C1 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.]&] -[s0;C1 &] -[s0; [C1 Julian Seward, Cambridge, UK.]&] -[s0; [C1 jseward`@acm.org]&] -[s0; [C1 bzip2/libbzip2 version 1.0.2 of 30 December 2001]&] -[s0;C1 ]}}&] -[s0; &] -[s0; Package [* plugin/DroidFonts] has following licence notice:&] -[ {{10000@(255.255.192) [s0; [C1 Licensed under the Apache License, Version 2.0 (the `"License`");]&] -[s0; [C1 you may not use this file except in compliance with the License.]&] -[s0; [C1 You may obtain a copy of the License at]&] -[s0;C1 &] -[s0; [C1 http://www.apache.org/licenses/LICENSE`-2.0]&] -[s0;C1 &] -[s0; [C1 Unless required by applicable law or agreed to in writing, -software]&] -[s0; [C1 distributed under the License is distributed on an `"AS IS`" -BASIS,]&] -[s0; [C1 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express -or implied.]&] -[s0; [C1 See the License for the specific language governing permissions -and]&] -[s0; [C1 limitations under the License.]]}}&] -[s0; &] -[s0; Package [* plugin/Eigen] has following licence notice:&] -[ {{10000@(255.255.192) [s0; [C1 Copyright (C) 2008 Gael Guennebaud ]&] -[s0;C1 &] -[s0; [C1 This Source Code Form is subject to the terms of the Mozilla]&] -[s0; [C1 Public License v. 2.0. If a copy of the MPL was not distributed]&] -[s0; [C1 with this file, You can obtain one at http://mozilla.org/MPL/2.0/.]&] -[s0;C1 ]}}&] -[s0; &] -[s0; Package [* plugin/ftp] has following licence notice:&] -[ {{10000@(255.255.192) [s0; [C1 Copyright (C) 1996`-2001 Thomas Pfau, pfau`@eclipse.net - ]&] -[s0; [C1 1407 Thomas Ave, North Brunswick, NJ, 08902 - ]&] -[s0; [C1 - ]&] -[s0; [C1 This library is free software; you can redistribute it and/or - ]&] -[s0; [C1 modify it under the terms of the GNU Library General Public - ]&] -[s0; [C1 License as published by the Free Software Foundation; either - ]&] -[s0; [C1 version 2 of the License, or (at your option) any later version. - ]&] -[s0; [C1 - ]&] -[s0; [C1 This library is distributed in the hope that it will be useful, - ]&] -[s0; [C1 but WITHOUT ANY WARRANTY; without even the implied warranty -of ]&] -[s0; [C1 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See -the GNU ]&] -[s0; [C1 Library General Public License for more details. - ]&] -[s0; [C1 - ]&] -[s0; [C1 You should have received a copy of the GNU Library General -Public ]&] -[s0; [C1 License along with this progam; if not, write to the - ]&] -[s0; [C1 Free Software Foundation, Inc., 59 Temple Place `- Suite 330, - ]&] -[s0; [C1 Boston, MA 02111`-1307, USA. - ]&] -[s0;C1 ]}}&] -[s0; &] -[s0; Package [* plugin/FT`_fontsys] has following licence notice:&] -[ {{10000@(255.255.192) [s0; [C1 The FreeType Project LICENSE]&] -[s0; [C1 `-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-]&] -[s0;C1 &] -[s0; [C1 2006`-Jan`-27]&] -[s0;C1 &] -[s0; [C1 Copyright 1996`-2002, 2006 by]&] -[s0; [C1 David Turner, Robert Wilhelm, and Werner Lemberg]&] -[s0;C1 &] -[s0;C1 &] -[s0;C1 &] -[s0; [C1 Introduction]&] -[s0; [C1 `=`=`=`=`=`=`=`=`=`=`=`=]&] -[s0;C1 &] -[s0; [C1 The FreeType Project is distributed in several archive -packages;]&] -[s0; [C1 some of them may contain, in addition to the FreeType font -engine,]&] -[s0; [C1 various tools and contributions which rely on, or relate -to, the]&] -[s0; [C1 FreeType Project.]&] -[s0;C1 &] -[s0; [C1 This license applies to all files found in such packages, -and]&] -[s0; [C1 which do not fall under their own explicit license. The -license]&] -[s0; [C1 affects thus the FreeType font engine, the test - programs,]&] -[s0; [C1 documentation and makefiles, at the very least.]&] -[s0;C1 &] -[s0; [C1 This license was inspired by the BSD, Artistic, - and IJG]&] -[s0; [C1 (Independent JPEG Group) licenses, which all encourage -inclusion]&] -[s0; [C1 and use of free software in commercial and freeware - products]&] -[s0; [C1 alike. As a consequence, its main points are that:]&] -[s0;C1 &] -[s0; [C1 o We don`'t promise that this software works. However, -we will be]&] -[s0; [C1 interested in any kind of bug reports. (``as is`' distribution)]&] -[s0;C1 &] -[s0; [C1 o You can use this software for whatever you want, in -parts or]&] -[s0; [C1 full form, without having to pay us. (``royalty`-free`' -usage)]&] -[s0;C1 &] -[s0; [C1 o You may not pretend that you wrote this software. -If you use]&] -[s0; [C1 it, or only parts of it, in a program, you must acknowledge]&] -[s0; [C1 somewhere in your documentation that you have - used the]&] -[s0; [C1 FreeType code. (``credits`')]&] -[s0;C1 &] -[s0; [C1 We specifically permit and encourage the inclusion - of this]&] -[s0; [C1 software, with or without modifications, in commercial -products.]&] -[s0; [C1 We disclaim all warranties covering The FreeType Project - and]&] -[s0; [C1 assume no liability related to The FreeType Project.]&] -[s0;C1 &] -[s0;C1 &] -[s0; [C1 Finally, many people asked us for a preferred form - for a]&] -[s0; [C1 credit/disclaimer to use in compliance with this license. - We thus]&] -[s0; [C1 encourage you to use the following text:]&] -[s0;C1 &] -[s0; [C1 `"`"`"]&] -[s0; [C1 Portions of this software are copyright � The -FreeType]&] -[s0; [C1 Project (www.freetype.org). All rights reserved.]&] -[s0; [C1 `"`"`"]&] -[s0;C1 &] -[s0; [C1 Please replace with the value from the FreeType version -you]&] -[s0; [C1 actually use.]&] -[s0;C1 &] -[s0;C1 &] -[s0; [C1 Legal Terms]&] -[s0; [C1 `=`=`=`=`=`=`=`=`=`=`=]&] -[s0;C1 &] -[s0; [C1 0. Definitions]&] -[s0; [C1 `-`-`-`-`-`-`-`-`-`-`-`-`-`-]&] -[s0;C1 &] -[s0; [C1 Throughout this license, the terms ``package`', ``FreeType -Project`',]&] -[s0; [C1 and ``FreeType archive`' refer to the set of files - originally]&] -[s0; [C1 distributed by the authors (David Turner, Robert Wilhelm, - and]&] -[s0; [C1 Werner Lemberg) as the ``FreeType Project`', be they named -as alpha,]&] -[s0; [C1 beta or final release.]&] -[s0;C1 &] -[s0; [C1 ``You`' refers to the licensee, or person using the project, -where]&] -[s0; [C1 ``using`' is a generic term including compiling the project`'s -source]&] -[s0; [C1 code as well as linking it to form a ``program`' or ``executable`'.]&] -[s0; [C1 This program is referred to as ``a program using the - FreeType]&] -[s0; [C1 engine`'.]&] -[s0;C1 &] -[s0; [C1 This license applies to all files distributed in the -original]&] -[s0; [C1 FreeType Project, including all source code, binaries - and]&] -[s0; [C1 documentation, unless otherwise stated in the file - in its]&] -[s0; [C1 original, unmodified form as distributed in the original -archive.]&] -[s0; [C1 If you are unsure whether or not a particular file is -covered by]&] -[s0; [C1 this license, you must contact us to verify this.]&] -[s0;C1 &] -[s0; [C1 The FreeType Project is copyright (C) 1996`-2000 by David -Turner,]&] -[s0; [C1 Robert Wilhelm, and Werner Lemberg. All rights reserved -except as]&] -[s0; [C1 specified below.]&] -[s0;C1 &] -[s0; [C1 1. No Warranty]&] -[s0; [C1 `-`-`-`-`-`-`-`-`-`-`-`-`-`-]&] -[s0;C1 &] -[s0; [C1 THE FREETYPE PROJECT IS PROVIDED ``AS IS`' WITHOUT WARRANTY -OF ANY]&] -[s0; [C1 KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED -TO,]&] -[s0; [C1 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -PARTICULAR]&] -[s0; [C1 PURPOSE. IN NO EVENT WILL ANY OF THE AUTHORS OR COPYRIGHT -HOLDERS]&] -[s0; [C1 BE LIABLE FOR ANY DAMAGES CAUSED BY THE USE OR THE INABILITY -TO]&] -[s0; [C1 USE, OF THE FREETYPE PROJECT.]&] -[s0;C1 &] -[s0; [C1 2. Redistribution]&] -[s0; [C1 `-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-]&] -[s0;C1 &] -[s0; [C1 This license grants a worldwide, royalty`-free, perpetual - and]&] -[s0; [C1 irrevocable right and license to use, execute, perform, -compile,]&] -[s0; [C1 display, copy, create derivative works of, distribute - and]&] -[s0; [C1 sublicense the FreeType Project (in both source and object -code]&] -[s0; [C1 forms) and derivative works thereof for any purpose; -and to]&] -[s0; [C1 authorize others to exercise some or all of the rights -granted]&] -[s0; [C1 herein, subject to the following conditions:]&] -[s0;C1 &] -[s0; [C1 o Redistribution of source code must retain this license -file]&] -[s0; [C1 (``FTL.TXT`') unaltered; any additions, deletions or -changes to]&] -[s0; [C1 the original files must be clearly indicated in accompanying]&] -[s0; [C1 documentation. The copyright notices of the -unaltered,]&] -[s0; [C1 original files must be preserved in all copies -of source]&] -[s0; [C1 files.]&] -[s0;C1 &] -[s0; [C1 o Redistribution in binary form must provide a disclaimer - that]&] -[s0; [C1 states that the software is based in part of the work -of the]&] -[s0; [C1 FreeType Team, in the distribution documentation. - We also]&] -[s0; [C1 encourage you to put an URL to the FreeType web page - in your]&] -[s0; [C1 documentation, though this isn`'t mandatory.]&] -[s0;C1 &] -[s0; [C1 These conditions apply to any software derived from or - based on]&] -[s0; [C1 the FreeType Project, not just the unmodified files. -If you use]&] -[s0; [C1 our work, you must acknowledge us. However, no fee need -be paid]&] -[s0; [C1 to us.]&] -[s0;C1 &] -[s0; [C1 3. Advertising]&] -[s0; [C1 `-`-`-`-`-`-`-`-`-`-`-`-`-`-]&] -[s0;C1 &] -[s0; [C1 Neither the FreeType authors and contributors nor you - shall use]&] -[s0; [C1 the name of the other for commercial, advertising, or promotional]&] -[s0; [C1 purposes without specific prior written permission.]&] -[s0;C1 &] -[s0; [C1 We suggest, but do not require, that you use one or more -of the]&] -[s0; [C1 following phrases to refer to this software in your documentation]&] -[s0; [C1 or advertising materials: ``FreeType Project`', ``FreeType -Engine`',]&] -[s0; [C1 ``FreeType library`', or ``FreeType Distribution`'.]&] -[s0;C1 &] -[s0; [C1 As you have not signed this license, you are not required -to]&] -[s0; [C1 accept it. However, as the FreeType Project is copyrighted]&] -[s0; [C1 material, only this license, or another one contracted - with the]&] -[s0; [C1 authors, grants you the right to use, distribute, and -modify it.]&] -[s0; [C1 Therefore, by using, distributing, or modifying the - FreeType]&] -[s0; [C1 Project, you indicate that you understand and accept all -the terms]&] -[s0; [C1 of this license.]&] -[s0;C1 &] -[s0; [C1 4. Contacts]&] -[s0; [C1 `-`-`-`-`-`-`-`-`-`-`-]&] -[s0;C1 &] -[s0; [C1 There are two mailing lists related to FreeType:]&] -[s0;C1 &] -[s0; [C1 o freetype`@nongnu.org]&] -[s0;C1 &] -[s0; [C1 Discusses general use and applications of FreeType, -as well as]&] -[s0; [C1 future and wanted additions to the library and distribution.]&] -[s0; [C1 If you are looking for support, start in this list - if you]&] -[s0; [C1 haven`'t found anything to help you in the documentation.]&] -[s0;C1 &] -[s0; [C1 o freetype`-devel`@nongnu.org]&] -[s0;C1 &] -[s0; [C1 Discusses bugs, as well as engine internals, design -issues,]&] -[s0; [C1 specific licenses, porting, etc.]&] -[s0;C1 &] -[s0; [C1 Our home page can be found at]&] -[s0;C1 &] -[s0; [C1 http://www.freetype.org]&] -[s0;C1 &] -[s0;C1 &] -[s0; [C1 `-`-`- end of FTL.TXT `-`-`-]&] -[s0;C1 ]}}&] -[s0; &] -[s0; Package [* plugin/glew] has following licence notice:&] -[ {{10000@(255.255.192) [s0; [C1 The OpenGL Extension Wrangler Library]&] -[s0; [C1 Copyright (C) 2002`-2008, Milan Ikits ]&] -[s0; [C1 Copyright (C) 2002`-2008, Marcelo E. Magallon ]&] -[s0; [C1 Copyright (C) 2002, Lev Povalahev]&] -[s0; [C1 All rights reserved.]&] -[s0;C1 &] -[s0; [C1 Redistribution and use in source and binary forms, with or -without ]&] -[s0; [C1 modification, are permitted provided that the following conditions -are met:]&] -[s0;C1 &] -[s0; [C1 `* Redistributions of source code must retain the above copyright -notice, ]&] -[s0; [C1 this list of conditions and the following disclaimer.]&] -[s0; [C1 `* Redistributions in binary form must reproduce the above -copyright notice, ]&] -[s0; [C1 this list of conditions and the following disclaimer in -the documentation ]&] -[s0; [C1 and/or other materials provided with the distribution.]&] -[s0; [C1 `* The name of the author may be used to endorse or promote -products ]&] -[s0; [C1 derived from this software without specific prior written -permission.]&] -[s0;C1 &] -[s0; [C1 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -`"AS IS`" ]&] -[s0; [C1 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE ]&] -[s0; [C1 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE]&] -[s0; [C1 ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS -BE ]&] -[s0; [C1 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, -OR ]&] -[s0; [C1 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT -OF ]&] -[s0; [C1 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; -OR BUSINESS]&] -[s0; [C1 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN]&] -[s0; [C1 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE -OR OTHERWISE)]&] -[s0; [C1 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF -ADVISED OF]&] -[s0; [C1 THE POSSIBILITY OF SUCH DAMAGE.]&] -[s0;C1 &] -[s0;C1 &] -[s0; [C1 Mesa 3`-D graphics library]&] -[s0; [C1 Version: 7.0]&] -[s0;C1 &] -[s0; [C1 Copyright (C) 1999`-2007 Brian Paul All Rights Reserved.]&] -[s0;C1 &] -[s0; [C1 Permission is hereby granted, free of charge, to any person -obtaining a]&] -[s0; [C1 copy of this software and associated documentation files (the -`"Software`"),]&] -[s0; [C1 to deal in the Software without restriction, including without -limitation]&] -[s0; [C1 the rights to use, copy, modify, merge, publish, distribute, -sublicense,]&] -[s0; [C1 and/or sell copies of the Software, and to permit persons -to whom the]&] -[s0; [C1 Software is furnished to do so, subject to the following conditions:]&] -[s0;C1 &] -[s0; [C1 The above copyright notice and this permission notice shall -be included]&] -[s0; [C1 in all copies or substantial portions of the Software.]&] -[s0;C1 &] -[s0; [C1 THE SOFTWARE IS PROVIDED `"AS IS`", WITHOUT WARRANTY OF ANY -KIND, EXPRESS]&] -[s0; [C1 OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY,]&] -[s0; [C1 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL]&] -[s0; [C1 BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -WHETHER IN]&] -[s0; [C1 AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT -OF OR IN]&] -[s0; [C1 CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -IN THE SOFTWARE.]&] -[s0;C1 &] -[s0;C1 &] -[s0; [C1 Copyright (c) 2007 The Khronos Group Inc.]&] -[s0;C1 &] -[s0; [C1 Permission is hereby granted, free of charge, to any person -obtaining a]&] -[s0; [C1 copy of this software and/or associated documentation files -(the]&] -[s0; [C1 `"Materials`"), to deal in the Materials without restriction, -including]&] -[s0; [C1 without limitation the rights to use, copy, modify, merge, -publish,]&] -[s0; [C1 distribute, sublicense, and/or sell copies of the Materials, -and to]&] -[s0; [C1 permit persons to whom the Materials are furnished to do so, -subject to]&] -[s0; [C1 the following conditions:]&] -[s0;C1 &] -[s0; [C1 The above copyright notice and this permission notice shall -be included]&] -[s0; [C1 in all copies or substantial portions of the Materials.]&] -[s0;C1 &] -[s0; [C1 THE MATERIALS ARE PROVIDED `"AS IS`", WITHOUT WARRANTY OF -ANY KIND,]&] -[s0; [C1 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -OF]&] -[s0; [C1 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.]&] -[s0; [C1 IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE -FOR ANY]&] -[s0; [C1 CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF -CONTRACT,]&] -[s0; [C1 TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH -THE]&] -[s0; [C1 MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.]&] -[s0;C1 ]}}&] -[s0; &] -[s0; Package [* plugin/jpg] has following licence notice:&] -[ {{10000@(255.255.192) [s0; [C1 The authors make NO WARRANTY or representation, either express -or implied,]&] -[s0; [C1 with respect to this software, its quality, accuracy, merchantability, -or]&] -[s0; [C1 fitness for a particular purpose. This software is provided -`"AS IS`", and you,]&] -[s0; [C1 its user, assume the entire risk as to its quality and accuracy.]&] -[s0;C1 &] -[s0; [C1 This software is copyright (C) 1991`-1998, Thomas G. Lane.]&] -[s0; [C1 All Rights Reserved except as specified below.]&] -[s0;C1 &] -[s0; [C1 Permission is hereby granted to use, copy, modify, and distribute -this]&] -[s0; [C1 software (or portions thereof) for any purpose, without fee, -subject to these]&] -[s0; [C1 conditions:]&] -[s0; [C1 (1) If any part of the source code for this software is distributed, -then this]&] -[s0; [C1 README file must be included, with this copyright and no`-warranty -notice]&] -[s0; [C1 unaltered; and any additions, deletions, or changes to the -original files]&] -[s0; [C1 must be clearly indicated in accompanying documentation.]&] -[s0; [C1 (2) If only executable code is distributed, then the accompanying]&] -[s0; [C1 documentation must state that `"this software is based in -part on the work of]&] -[s0; [C1 the Independent JPEG Group`".]&] -[s0; [C1 (3) Permission for use of this software is granted only if -the user accepts]&] -[s0; [C1 full responsibility for any undesirable consequences; the -authors accept]&] -[s0; [C1 NO LIABILITY for damages of any kind.]&] -[s0;C1 &] -[s0; [C1 These conditions apply to any software derived from or based -on the IJG code,]&] -[s0; [C1 not just to the unmodified library. If you use our work, -you ought to]&] -[s0; [C1 acknowledge us.]&] -[s0;C1 &] -[s0; [C1 Permission is NOT granted for the use of any IJG author`'s -name or company name]&] -[s0; [C1 in advertising or publicity relating to this software or products -derived from]&] -[s0; [C1 it. This software may be referred to only as `"the Independent -JPEG Group`'s]&] -[s0; [C1 software`".]&] -[s0;C1 &] -[s0; [C1 We specifically permit and encourage the use of this software -as the basis of]&] -[s0; [C1 commercial products, provided that all warranty or liability -claims are]&] -[s0; [C1 assumed by the product vendor.]&] -[s0;C1 ]}}&] -[s0; &] -[s0; Package [* plugin/lz4] has following licence notice:&] -[ {{10000@(255.255.192) [s0; [C1 LZ4 Library]&] -[s0; [C1 Copyright (c) 2011`-2014, Yann Collet]&] -[s0; [C1 All rights reserved.]&] -[s0;C1 &] -[s0; [C1 Redistribution and use in source and binary forms, with or -without modification,]&] -[s0; [C1 are permitted provided that the following conditions are met:]&] -[s0;C1 &] -[s0; [C1 `* Redistributions of source code must retain the above copyright -notice, this]&] -[s0; [C1 list of conditions and the following disclaimer.]&] -[s0;C1 &] -[s0; [C1 `* Redistributions in binary form must reproduce the above -copyright notice, this]&] -[s0; [C1 list of conditions and the following disclaimer in the documentation -and/or]&] -[s0; [C1 other materials provided with the distribution.]&] -[s0;C1 &] -[s0; [C1 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -`"AS IS`" AND]&] -[s0; [C1 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED -TO, THE IMPLIED]&] -[s0; [C1 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE]&] -[s0; [C1 DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS -BE LIABLE FOR]&] -[s0; [C1 ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES]&] -[s0; [C1 (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -GOODS OR SERVICES;]&] -[s0; [C1 LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON]&] -[s0; [C1 ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT]&] -[s0; [C1 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -OF THE USE OF THIS]&] -[s0; [C1 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.]]}}&] -[s0; &] -[s0; Package [* plugin/lzma] has following licence notice:&] -[ {{10000@(255.255.192) [s0; [C1 Igor Pavlov : Public domain]]}}&] -[s0; &] -[s0; Package [* plugin/ndisasm] has following licence notice:&] -[ {{10000@(255.255.192) [s0; [C1 NASM is now licensed under the 2`-clause BSD license, also -known as the]&] -[s0; [C1 simplified BSD license.]&] -[s0;C1 &] -[s0; [C1 Copyright 1996`-2009 the NASM Authors `- All rights reserved.]&] -[s0;C1 &] -[s0; [C1 Redistribution and use in source and binary forms, with -or without]&] -[s0; [C1 modification, are permitted provided that the following]&] -[s0; [C1 conditions are met:]&] -[s0;C1 &] -[s0; [C1 `* Redistributions of source code must retain the above -copyright]&] -[s0; [C1 notice, this list of conditions and the following disclaimer.]&] -[s0; [C1 `* Redistributions in binary form must reproduce the above]&] -[s0; [C1 copyright notice, this list of conditions and the following]&] -[s0; [C1 disclaimer in the documentation and/or other materials -provided]&] -[s0; [C1 with the distribution.]&] -[s0; [C1 ]&] -[s0; [C1 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND]&] -[s0; [C1 CONTRIBUTORS `"AS IS`" AND ANY EXPRESS OR IMPLIED WARRANTIES,]&] -[s0; [C1 INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES -OF]&] -[s0; [C1 MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE]&] -[s0; [C1 DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR]&] -[s0; [C1 CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,]&] -[s0; [C1 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT]&] -[s0; [C1 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;]&] -[s0; [C1 LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)]&] -[s0; [C1 HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -IN]&] -[s0; [C1 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE -OR]&] -[s0; [C1 OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE,]&] -[s0; [C1 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.]&] -[s0;C1 ]}}&] -[s0; &] -[s0; Package [* plugin/pcre] has following licence notice:&] -[ {{10000@(255.255.192) [s0; [C1 Copyright (c) 1998, 2014, The U`+`+ Project]&] -[s0; [C1 All rights reserved.]&] -[s0;C1 &] -[s0; [C1 Redistribution and use in source and binary forms, with or -without modification, are permitted]&] -[s0; [C1 provided that the following conditions are met:]&] -[s0;C1 &] -[s0; [C1 1. Redistributions of source code must retain the above copyright -notice, this list of]&] -[s0; [C1 conditions and the following disclaimer.]&] -[s0;C1 &] -[s0; [C1 2. Redistributions in binary form must reproduce the above -copyright notice, this list of]&] -[s0; [C1 conditions and the following disclaimer in the documentation -and/or other materials provided]&] -[s0; [C1 with the distribution.]&] -[s0;C1 &] -[s0; [C1 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -`"AS IS`" AND ANY EXPRESS OR]&] -[s0; [C1 IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY]&] -[s0; [C1 AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO -EVENT SHALL THE COPYRIGHT HOLDER OR]&] -[s0; [C1 CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR]&] -[s0; [C1 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT -OF SUBSTITUTE GOODS OR ]&] -[s0; [C1 SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY]&] -[s0; [C1 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR]&] -[s0; [C1 OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, -EVEN IF ADVISED OF THE]&] -[s0; [C1 POSSIBILITY OF SUCH DAMAGE.]&] -[s0;C1 &] -[s0; [C1 `*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`* -`*`*`*`*`*`*`*`*`*`*]&] -[s0; [C1 `* Perl`-Compatible Regular Expressions `*]&] -[s0; [C1 `*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`* -`*`*`*`*`*`*`*`*`*`*]&] -[s0;C1 &] -[s0; [C1 PCRE is a library of functions to support regular expressions -whose syntax]&] -[s0; [C1 and semantics are as close as possible to those of the Perl -5 language.]&] -[s0;C1 &] -[s0; [C1 Written by Philip Hazel]&] -[s0; [C1 Copyright (c) 1997`-2008 University of Cambridge]&] -[s0;C1 &] -[s0; [C1 `-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`- -`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-]&] -[s0; [C1 Redistribution and use in source and binary forms, with or -without]&] -[s0; [C1 modification, are permitted provided that the following conditions -are met:]&] -[s0;C1 &] -[s0; [C1 `* Redistributions of source code must retain the above -copyright notice,]&] -[s0; [C1 this list of conditions and the following disclaimer.]&] -[s0;C1 &] -[s0; [C1 `* Redistributions in binary form must reproduce the above -copyright]&] -[s0; [C1 notice, this list of conditions and the following disclaimer -in the]&] -[s0; [C1 documentation and/or other materials provided with the -distribution.]&] -[s0;C1 &] -[s0; [C1 `* Neither the name of the University of Cambridge nor -the names of its]&] -[s0; [C1 contributors may be used to endorse or promote products -derived from]&] -[s0; [C1 this software without specific prior written permission.]&] -[s0;C1 &] -[s0; [C1 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -`"AS IS`"]&] -[s0; [C1 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE]&] -[s0; [C1 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE]&] -[s0; [C1 ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS -BE]&] -[s0; [C1 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, -OR]&] -[s0; [C1 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT -OF]&] -[s0; [C1 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; -OR BUSINESS]&] -[s0; [C1 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN]&] -[s0; [C1 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE -OR OTHERWISE)]&] -[s0; [C1 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF -ADVISED OF THE]&] -[s0; [C1 POSSIBILITY OF SUCH DAMAGE.]&] -[s0; [C1 `-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`- -`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-]&] -[s0;C1 ]}}&] -[s0; &] -[s0; Package [* plugin/png] has following licence notice:&] -[ {{10000@(255.255.192) [s0; [C1 If you modify libpng you may insert additional notices immediately -following]&] -[s0; [C1 this sentence.]&] -[s0;C1 &] -[s0; [C1 libpng versions 1.2.6, August 15, 2004, through 1.2.22, October -13, 2007, are]&] -[s0; [C1 Copyright (c) 2004, 2006`-2007 Glenn Randers`-Pehrson, and -are]&] -[s0; [C1 distributed according to the same disclaimer and license as -libpng`-1.2.5]&] -[s0; [C1 with the following individual added to the list of Contributing -Authors:]&] -[s0;C1 &] -[s0; [C1 Cosmin Truta]&] -[s0;C1 &] -[s0; [C1 libpng versions 1.0.7, July 1, 2000, through 1.2.5, October -3, 2002, are]&] -[s0; [C1 Copyright (c) 2000`-2002 Glenn Randers`-Pehrson, and are]&] -[s0; [C1 distributed according to the same disclaimer and license as -libpng`-1.0.6]&] -[s0; [C1 with the following individuals added to the list of Contributing -Authors:]&] -[s0;C1 &] -[s0; [C1 Simon`-Pierre Cadieux]&] -[s0; [C1 Eric S. Raymond]&] -[s0; [C1 Gilles Vollant]&] -[s0;C1 &] -[s0; [C1 and with the following additions to the disclaimer:]&] -[s0;C1 &] -[s0; [C1 There is no warranty against interference with your enjoyment -of the]&] -[s0; [C1 library or against infringement. There is no warranty -that our]&] -[s0; [C1 efforts or the library will fulfill any of your particular -purposes]&] -[s0; [C1 or needs. This library is provided with all faults, and -the entire]&] -[s0; [C1 risk of satisfactory quality, performance, accuracy, and -effort is with]&] -[s0; [C1 the user.]&] -[s0;C1 &] -[s0; [C1 libpng versions 0.97, January 1998, through 1.0.6, March 20, -2000, are]&] -[s0; [C1 Copyright (c) 1998, 1999, 2000 Glenn Randers`-Pehrson, and -are]&] -[s0; [C1 distributed according to the same disclaimer and license as -libpng`-0.96,]&] -[s0; [C1 with the following individuals added to the list of Contributing -Authors:]&] -[s0;C1 &] -[s0; [C1 Tom Lane]&] -[s0; [C1 Glenn Randers`-Pehrson]&] -[s0; [C1 Willem van Schaik]&] -[s0;C1 &] -[s0; [C1 libpng versions 0.89, June 1996, through 0.96, May 1997, are]&] -[s0; [C1 Copyright (c) 1996, 1997 Andreas Dilger]&] -[s0; [C1 Distributed according to the same disclaimer and license as -libpng`-0.88,]&] -[s0; [C1 with the following individuals added to the list of Contributing -Authors:]&] -[s0;C1 &] -[s0; [C1 John Bowler]&] -[s0; [C1 Kevin Bracey]&] -[s0; [C1 Sam Bushell]&] -[s0; [C1 Magnus Holmgren]&] -[s0; [C1 Greg Roelofs]&] -[s0; [C1 Tom Tanner]&] -[s0;C1 &] -[s0; [C1 libpng versions 0.5, May 1995, through 0.88, January 1996, -are]&] -[s0; [C1 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.]&] -[s0;C1 &] -[s0; [C1 For the purposes of this copyright and license, `"Contributing -Authors`"]&] -[s0; [C1 is defined as the following set of individuals:]&] -[s0;C1 &] -[s0; [C1 Andreas Dilger]&] -[s0; [C1 Dave Martindale]&] -[s0; [C1 Guy Eric Schalnat]&] -[s0; [C1 Paul Schmidt]&] -[s0; [C1 Tim Wegner]&] -[s0;C1 &] -[s0; [C1 The PNG Reference Library is supplied `"AS IS`". The Contributing -Authors]&] -[s0; [C1 and Group 42, Inc. disclaim all warranties, expressed or implied,]&] -[s0; [C1 including, without limitation, the warranties of merchantability -and of]&] -[s0; [C1 fitness for any purpose. The Contributing Authors and Group -42, Inc.]&] -[s0; [C1 assume no liability for direct, indirect, incidental, special, -exemplary,]&] -[s0; [C1 or consequential damages, which may result from the use of -the PNG]&] -[s0; [C1 Reference Library, even if advised of the possibility of such -damage.]&] -[s0;C1 &] -[s0; [C1 Permission is hereby granted to use, copy, modify, and distribute -this]&] -[s0; [C1 source code, or portions hereof, for any purpose, without -fee, subject]&] -[s0; [C1 to the following restrictions:]&] -[s0;C1 &] -[s0; [C1 1. The origin of this source code must not be misrepresented.]&] -[s0;C1 &] -[s0; [C1 2. Altered versions must be plainly marked as such and]&] -[s0; [C1 must not be misrepresented as being the original source.]&] -[s0;C1 &] -[s0; [C1 3. This Copyright notice may not be removed or altered from]&] -[s0; [C1 any source or altered source distribution.]&] -[s0;C1 &] -[s0; [C1 The Contributing Authors and Group 42, Inc. specifically permit, -without]&] -[s0; [C1 fee, and encourage the use of this source code as a component -to]&] -[s0; [C1 supporting the PNG file format in commercial products. If -you use this]&] -[s0; [C1 source code in a product, acknowledgment is not required but -would be]&] -[s0; [C1 appreciated.]&] -[s0;C1 ]}}&] -[s0; &] -[s0; Package [* plugin/sqlite3] has following licence notice:&] -[ {{10000@(255.255.192) [s0; [C1 The author disclaims copyright to this source code. In place -of]&] -[s0; [C1 a legal notice, here is a blessing:]&] -[s0;C1 &] -[s0; [C1 May you do good and not evil.]&] -[s0; [C1 May you find forgiveness for yourself and forgive others.]&] -[s0; [C1 May you share freely, never taking more than you give.]&] -[s0;C1 &] -[s0;C1 ]}}&] -[s0; &] -[s0; Package [* plugin/tif] has following licence notice:&] -[ {{10000@(255.255.192) [s0; [C1 Copyright (c) 1995`-1997 Sam Leffler]&] -[s0; [C1 Copyright (c) 1995`-1997 Silicon Graphics, Inc.]&] -[s0;C1 &] -[s0; [C1 Permission to use, copy, modify, distribute, and sell this -software and ]&] -[s0; [C1 its documentation for any purpose is hereby granted without -fee, provided]&] -[s0; [C1 that (i) the above copyright notices and this permission notice -appear in]&] -[s0; [C1 all copies of the software and related documentation, and -(ii) the names of]&] -[s0; [C1 Sam Leffler and Silicon Graphics may not be used in any advertising -or]&] -[s0; [C1 publicity relating to the software without the specific, prior -written]&] -[s0; [C1 permission of Sam Leffler and Silicon Graphics.]&] -[s0;C1 &] -[s0; [C1 THE SOFTWARE IS PROVIDED `"AS`-IS`" AND WITHOUT WARRANTY OF -ANY KIND, ]&] -[s0; [C1 EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, -ANY ]&] -[s0; [C1 WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. - ]&] -[s0;C1 &] -[s0; [C1 IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE -FOR]&] -[s0; [C1 ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES -OF ANY KIND,]&] -[s0; [C1 OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA -OR PROFITS,]&] -[s0; [C1 WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON -ANY THEORY OF ]&] -[s0; [C1 LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE ]&] -[s0; [C1 OF THIS SOFTWARE.]&] -[s0;C1 ]}}&] -[s0; &] -[s0; Package [* plugin/z] has following licence notice:&] -[ {{10000@(255.255.192) [s0; [C1 version 1.2.8, April 28th, 2013]&] -[s0;C1 &] -[s0; [C1 Copyright (C) 1995`-2013 Jean`-loup Gailly and Mark Adler]&] -[s0;C1 &] -[s0; [C1 This software is provided `'as`-is`', without any express -or implied]&] -[s0; [C1 warranty. In no event will the authors be held liable for -any damages]&] -[s0; [C1 arising from the use of this software.]&] -[s0;C1 &] -[s0; [C1 Permission is granted to anyone to use this software for any -purpose,]&] -[s0; [C1 including commercial applications, and to alter it and redistribute -it]&] -[s0; [C1 freely, subject to the following restrictions:]&] -[s0;C1 &] -[s0; [C1 1. The origin of this software must not be misrepresented; -you must not]&] -[s0; [C1 claim that you wrote the original software. If you use -this software]&] -[s0; [C1 in a product, an acknowledgment in the product documentation -would be]&] -[s0; [C1 appreciated but is not required.]&] -[s0; [C1 2. Altered source versions must be plainly marked as such, -and must not be]&] -[s0; [C1 misrepresented as being the original software.]&] -[s0; [C1 3. This notice may not be removed or altered from any source -distribution.]&] -[s0;C1 &] -[s0; [C1 Jean`-loup Gailly Mark Adler]&] -[s0; [C1 jloup`@gzip.org madler`@alumni.caltech.edu]&] -[s0;C1 &] -[s0;C1 &] -[s0; [C1 The data format used by the zlib library is described by RFCs -(Request for]&] -[s0; [C1 Comments) 1950 to 1952 in the files http://tools.ietf.org/html/rfc1950]&] -[s0; [C1 (zlib format), rfc1951 (deflate format) and rfc1952 (gzip -format).]&] -[s0;C1 ]}}&] -[s0; &] -[s0; &] -[s0;H8;0 &] -[s0; [/ Windows releases might contain TDM`-MINGW64 binaries with following -licenses:]&] -[s0;C0 &] -[s0; [C0 MINGW`-W64]&] -[ {{10000@(255.255.192) [s0; [C0 MinGW`-w64 licensing]&] -[s0; [C0 `*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*]&] -[s0;C0 &] -[s0; [C0 The copyright and license notices have been divided in two -files:]&] -[s0; [C0 The notices in COPYING.MinGW`-w64.txt (this file) apply only -to]&] -[s0; [C0 MinGW`-w64 itself. These don`'t apply to the binaries built -with]&] -[s0; [C0 MinGW`-w64 unless you specifically tell MinGW`-w64 to link -against]&] -[s0; [C0 these parts, for example, by enabling profiling code.]&] -[s0;C0 &] -[s0; [C0 In addition to the notices in this file, also the notices -in]&] -[s0; [C0 COPYING.MinGW`-w64`-runtime.txt apply to MinGW`-w64. Some -(possibly]&] -[s0; [C0 all) notices in that file may apply also to the binaries built -with]&] -[s0; [C0 this version of MinGW`-w64. The idea is that if you create -binary]&] -[s0; [C0 packages of your software with MinGW`-w64, you can simply -copy]&] -[s0; [C0 COPYING.MinGW`-w64`-runtime.txt into your package to fulfill -the]&] -[s0; [C0 license requirements of the MinGW runtime.]&] -[s0;C0 &] -[s0; [C0 If you think that not all notices apply to your package and -want to]&] -[s0; [C0 remove some of them, note that, for example, the gdtoa files -always]&] -[s0; [C0 get linked in if you use any printf`-like function. So usually -it is]&] -[s0; [C0 easiest and safest to just keep all the notices.]&] -[s0;C0 &] -[s0;C0 &] -[s0; [C0 `=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=]&] -[s0; [C0 GCC and GNU binutils]&] -[s0; [C0 `=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=]&] -[s0;C0 &] -[s0; [C0 Copyright (C) Free Software Foundation]&] -[s0; [C0 License: GNU GPLv3`+ (see the file COPYING.GPLv3)]&] -[s0;C0 &] -[s0;C0 &] -[s0; [C0 `=`=`=`=`=`=`=`=`=`=`=`=`=`=]&] -[s0; [C0 Profiling code]&] -[s0; [C0 `=`=`=`=`=`=`=`=`=`=`=`=`=`=]&] -[s0;C0 &] -[s0; [C0 Copyright 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.]&] -[s0; [C0 License: GNU GPLv2`+ (see the file COPYING.GPLv2)]&] -[s0;C0 &] -[s0; [C0 `* `* `* `* `* `* - `*]&] -[s0;C0 &] -[s0; [C0 Copyright (c) 1982, 1983, 1986, 1992, 1993]&] -[s0; [C0 The Regents of the University of California. All rights -reserved.]&] -[s0;C0 &] -[s0; [C0 Redistribution and use in source and binary forms, with or -without]&] -[s0; [C0 modification, are permitted provided that the following conditions]&] -[s0; [C0 are met:]&] -[s0; [C0 1. Redistributions of source code must retain the above copyright]&] -[s0; [C0 notice, this list of conditions and the following disclaimer.]&] -[s0; [C0 2. Redistributions in binary form must reproduce the above -copyright]&] -[s0; [C0 notice, this list of conditions and the following disclaimer -in the]&] -[s0; [C0 documentation and/or other materials provided with the -distribution.]&] -[s0; [C0 4. Neither the name of the University nor the names of its -contributors]&] -[s0; [C0 may be used to endorse or promote products derived from -this software]&] -[s0; [C0 without specific prior written permission.]&] -[s0;C0 &] -[s0; [C0 THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS -````AS IS`'`' AND]&] -[s0; [C0 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED -TO, THE]&] -[s0; [C0 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE]&] -[s0; [C0 ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS -BE LIABLE]&] -[s0; [C0 FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, -OR CONSEQUENTIAL]&] -[s0; [C0 DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -GOODS]&] -[s0; [C0 OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)]&] -[s0; [C0 HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT]&] -[s0; [C0 LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING -IN ANY WAY]&] -[s0; [C0 OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY -OF]&] -[s0; [C0 SUCH DAMAGE.]&] -[s0;C0 &] -[s0;C0 &] -[s0; [C0 `=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=]&] -[s0; [C0 DirectX and DDK headers]&] -[s0; [C0 `=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=]&] -[s0;C0 &] -[s0; [C0 DirectX and DDK headers are under GNU LGPLv2.1`+ (see the -file]&] -[s0; [C0 COPYING.LGPLv2.1) and copyrighted by various people. Using -these]&] -[s0; [C0 headers doesn`'t make LGPLv2.1 apply to your code, because -these]&] -[s0; [C0 headers files contain only data structure definitions, short]&] -[s0; [C0 macros, and short inline functions. Here is the relevant part]&] -[s0; [C0 from LGPLv2.1 section 5 paragraph 4:]&] -[s0;C0 &] -[s0; [C0 If such an object file uses only numerical parameters, -data]&] -[s0; [C0 structure layouts and accessors, and small macros and -small]&] -[s0; [C0 inline functions (ten lines or less in length), then the -use]&] -[s0; [C0 of the object file is unrestricted, regardless of whether -it]&] -[s0; [C0 is legally a derivative work.]&] -[s0;C0 &] -[s0; [C0 `=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=]&] -[s0; [C0 libmangle and gendef]&] -[s0; [C0 `=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=]&] -[s0;C0 &] -[s0; [C0 Copyright (c) 2009 mingw`-w64 project]&] -[s0;C0 &] -[s0; [C0 Contributing authors: Kai Tietz, Jonathan Yong]&] -[s0;C0 &] -[s0; [C0 Permission is hereby granted, free of charge, to any person -obtaining a]&] -[s0; [C0 copy of this software and associated documentation files (the -`"Software`"),]&] -[s0; [C0 to deal in the Software without restriction, including without -limitation]&] -[s0; [C0 the rights to use, copy, modify, merge, publish, distribute, -sublicense,]&] -[s0; [C0 and/or sell copies of the Software, and to permit persons -to whom the]&] -[s0; [C0 Software is furnished to do so, subject to the following conditions:]&] -[s0;C0 &] -[s0; [C0 The above copyright notice and this permission notice shall -be included in]&] -[s0; [C0 all copies or substantial portions of the Software.]&] -[s0;C0 &] -[s0; [C0 THE SOFTWARE IS PROVIDED `"AS IS`", WITHOUT WARRANTY OF ANY -KIND, EXPRESS OR]&] -[s0; [C0 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,]&] -[s0; [C0 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO -EVENT SHALL THE]&] -[s0; [C0 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES -OR OTHER]&] -[s0; [C0 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING]&] -[s0; [C0 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE -OR OTHER]&] -[s0; [C0 DEALINGS IN THE SOFTWARE.]&] -[s0;C0 &] -[s0;C0 &] -[s0; [C0 `=`=`=`=]&] -[s0; [C0 PSEH]&] -[s0; [C0 `=`=`=`=]&] -[s0;C0 &] -[s0; [C0 Copyright (c) 2004`-2008 KJK`::Hyperion]&] -[s0;C0 &] -[s0; [C0 Permission is hereby granted, free of charge, to any person -obtaining a]&] -[s0; [C0 copy of this software and associated documentation files (the -`"Software`"),]&] -[s0; [C0 to deal in the Software without restriction, including without -limitation]&] -[s0; [C0 the rights to use, copy, modify, merge, publish, distribute, -sublicense,]&] -[s0; [C0 and/or sell copies of the Software, and to permit persons -to whom the]&] -[s0; [C0 Software is furnished to do so, subject to the following conditions:]&] -[s0;C0 &] -[s0; [C0 The above copyright notice and this permission notice shall -be included in]&] -[s0; [C0 all copies or substantial portions of the Software.]&] -[s0;C0 &] -[s0; [C0 THE SOFTWARE IS PROVIDED `"AS IS`", WITHOUT WARRANTY OF ANY -KIND, EXPRESS OR]&] -[s0; [C0 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,]&] -[s0; [C0 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO -EVENT SHALL THE]&] -[s0; [C0 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES -OR OTHER]&] -[s0; [C0 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING]&] -[s0; [C0 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE -OR OTHER]&] -[s0; [C0 DEALINGS IN THE SOFTWARE.]&] -[s0;C0 ]}}&] -[s0;C0 &] -[s0;C0 &] -[s0; [C0 GCC runtime]&] -[ {{10000@(255.255.192) [s0; [C0 GCC RUNTIME LIBRARY EXCEPTION]&] -[s0;C0 &] -[s0; [C0 Version 3.1, 31 March 2009]&] -[s0;C0 &] -[s0; [C0 Copyright (C) 2009 Free Software Foundation, Inc. ]&] -[s0;C0 &] -[s0; [C0 Everyone is permitted to copy and distribute verbatim copies -of this]&] -[s0; [C0 license document, but changing it is not allowed.]&] -[s0;C0 &] -[s0; [C0 This GCC Runtime Library Exception (`"Exception`") is an additional]&] -[s0; [C0 permission under section 7 of the GNU General Public License, -version]&] -[s0; [C0 3 (`"GPLv3`"). It applies to a given file (the `"Runtime Library`") -that]&] -[s0; [C0 bears a notice placed by the copyright holder of the file -stating that]&] -[s0; [C0 the file is governed by GPLv3 along with this Exception.]&] -[s0;C0 &] -[s0; [C0 When you use GCC to compile a program, GCC may combine portions -of]&] -[s0; [C0 certain GCC header files and runtime libraries with the compiled]&] -[s0; [C0 program. The purpose of this Exception is to allow compilation -of]&] -[s0; [C0 non`-GPL (including proprietary) programs to use, in this -way, the]&] -[s0; [C0 header files and runtime libraries covered by this Exception.]&] -[s0;C0 &] -[s0; [C0 0. Definitions.]&] -[s0;C0 &] -[s0; [C0 A file is an `"Independent Module`" if it either requires -the Runtime]&] -[s0; [C0 Library for execution after a Compilation Process, or makes -use of an]&] -[s0; [C0 interface provided by the Runtime Library, but is not otherwise -based]&] -[s0; [C0 on the Runtime Library.]&] -[s0;C0 &] -[s0; [C0 `"GCC`" means a version of the GNU Compiler Collection, with -or without]&] -[s0; [C0 modifications, governed by version 3 (or a specified later -version) of]&] -[s0; [C0 the GNU General Public License (GPL) with the option of using -any]&] -[s0; [C0 subsequent versions published by the FSF.]&] -[s0;C0 &] -[s0; [C0 `"GPL`-compatible Software`" is software whose conditions -of propagation,]&] -[s0; [C0 modification and use would permit combination with GCC in -accord with]&] -[s0; [C0 the license of GCC.]&] -[s0;C0 &] -[s0; [C0 `"Target Code`" refers to output from any compiler for a real -or virtual]&] -[s0; [C0 target processor architecture, in executable form or suitable -for]&] -[s0; [C0 input to an assembler, loader, linker and/or execution]&] -[s0; [C0 phase. Notwithstanding that, Target Code does not include -data in any]&] -[s0; [C0 format that is used as a compiler intermediate representation, -or used]&] -[s0; [C0 for producing a compiler intermediate representation.]&] -[s0;C0 &] -[s0; [C0 The `"Compilation Process`" transforms code entirely represented -in]&] -[s0; [C0 non`-intermediate languages designed for human`-written code, -and/or in]&] -[s0; [C0 Java Virtual Machine byte code, into Target Code. Thus, for -example,]&] -[s0; [C0 use of source code generators and preprocessors need not be -considered]&] -[s0; [C0 part of the Compilation Process, since the Compilation Process -can be]&] -[s0; [C0 understood as starting with the output of the generators or]&] -[s0; [C0 preprocessors.]&] -[s0;C0 &] -[s0; [C0 A Compilation Process is `"Eligible`" if it is done using -GCC, alone or]&] -[s0; [C0 with other GPL`-compatible software, or if it is done without -using any]&] -[s0; [C0 work based on GCC. For example, using non`-GPL`-compatible -Software to]&] -[s0; [C0 optimize any GCC intermediate representations would not qualify -as an]&] -[s0; [C0 Eligible Compilation Process.]&] -[s0;C0 &] -[s0; [C0 1. Grant of Additional Permission.]&] -[s0;C0 &] -[s0; [C0 You have permission to propagate a work of Target Code formed -by]&] -[s0; [C0 combining the Runtime Library with Independent Modules, even -if such]&] -[s0; [C0 propagation would otherwise violate the terms of GPLv3, provided -that]&] -[s0; [C0 all Target Code was generated by Eligible Compilation Processes. -You]&] -[s0; [C0 may then convey such a combination under terms of your choice,]&] -[s0; [C0 consistent with the licensing of the Independent Modules.]&] -[s0;C0 &] -[s0; [C0 2. No Weakening of GCC Copyleft.]&] -[s0;C0 &] -[s0; [C0 The availability of this Exception does not imply any general]&] -[s0; [C0 presumption that third`-party software is unaffected by the -copyleft]&] -[s0; [C0 requirements of the license of GCC.]&] -[s0;C0 &] -[s0;C0 ]}}&] -[s0;C0 &] -[s0;C0 &] -[s0; [C0 MINGW`-W64 runtime]&] -[ {{10000@(255.255.192) [s0; [C0 MinGW`-w64 runtime licensing]&] -[s0; [C0 `*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*]&] -[s0;C0 &] -[s0; [C0 This program or library was built using MinGW`-w64 and statically]&] -[s0; [C0 linked against the MinGW`-w64 runtime. Some parts of the runtime]&] -[s0; [C0 are under licenses which require that the copyright and license]&] -[s0; [C0 notices are included when distributing the code in binary -form.]&] -[s0; [C0 These notices are listed below.]&] -[s0;C0 &] -[s0;C0 &] -[s0; [C0 `=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=]&] -[s0; [C0 Overall copyright notice]&] -[s0; [C0 `=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=]&] -[s0;C0 &] -[s0; [C0 Copyright (c) 2009, 2010 by the mingw`-w64 project]&] -[s0;C0 &] -[s0; [C0 This license has been certified as open source. It has also -been designated]&] -[s0; [C0 as GPL compatible by the Free Software Foundation (FSF).]&] -[s0;C0 &] -[s0; [C0 Redistribution and use in source and binary forms, with or -without]&] -[s0; [C0 modification, are permitted provided that the following conditions -are met:]&] -[s0;C0 &] -[s0; [C0 1. Redistributions in source code must retain the accompanying -copyright]&] -[s0; [C0 notice, this list of conditions, and the following disclaimer.]&] -[s0; [C0 2. Redistributions in binary form must reproduce the accompanying]&] -[s0; [C0 copyright notice, this list of conditions, and the following -disclaimer]&] -[s0; [C0 in the documentation and/or other materials provided -with the]&] -[s0; [C0 distribution.]&] -[s0; [C0 3. Names of the copyright holders must not be used to endorse -or promote]&] -[s0; [C0 products derived from this software without prior written -permission]&] -[s0; [C0 from the copyright holders.]&] -[s0; [C0 4. The right to distribute this software or to use it for -any purpose does]&] -[s0; [C0 not give you the right to use Servicemarks (sm) or Trademarks -(tm) of]&] -[s0; [C0 the copyright holders. Use of them is covered by separate -agreement]&] -[s0; [C0 with the copyright holders.]&] -[s0; [C0 5. If any files are modified, you must cause the modified -files to carry]&] -[s0; [C0 prominent notices stating that you changed the files -and the date of]&] -[s0; [C0 any change.]&] -[s0;C0 &] -[s0; [C0 Disclaimer]&] -[s0;C0 &] -[s0; [C0 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ````AS -IS`'`' AND ANY EXPRESSED]&] -[s0; [C0 OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES]&] -[s0; [C0 OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO]&] -[s0; [C0 EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY DIRECT, -INDIRECT,]&] -[s0; [C0 INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT]&] -[s0; [C0 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -OF USE, DATA,]&] -[s0; [C0 OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF]&] -[s0; [C0 LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING]&] -[s0; [C0 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE,]&] -[s0; [C0 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.]&] -[s0;C0 &] -[s0; [C0 `=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`= -`= ]&] -[s0; [C0 getopt, getopt`_long, and getop`_long`_only]&] -[s0; [C0 `=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`= -`= ]&] -[s0;C0 &] -[s0; [C0 Copyright (c) 2002 Todd C. Miller -]&] -[s0; [C0 ]&] -[s0; [C0 Permission to use, copy, modify, and distribute this software -for any ]&] -[s0; [C0 purpose with or without fee is hereby granted, provided that -the above ]&] -[s0; [C0 copyright notice and this permission notice appear in all -copies. ]&] -[s0; [C0 -| ]&] -[s0; [C0 THE SOFTWARE IS PROVIDED `"AS IS`" AND THE AUTHOR DISCLAIMS -ALL WARRANTIES]&] -[s0; [C0 WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES -OF]&] -[s0; [C0 MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR -BE LIABLE FOR]&] -[s0; [C0 ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR -ANY DAMAGES]&] -[s0; [C0 WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER -IN AN]&] -[s0; [C0 ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING -OUT OF]&] -[s0; [C0 OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.]&] -[s0;C0 &] -[s0; [C0 Sponsored in part by the Defense Advanced Research Projects]&] -[s0; [C0 Agency (DARPA) and Air Force Research Laboratory, Air Force]&] -[s0; [C0 Materiel Command, USAF, under agreement number F39502`-99`-1`-0512.]&] -[s0;C0 &] -[s0; [C0 `* `* `* `* `* `* - `* ]&] -[s0;C0 &] -[s0; [C0 Copyright (c) 2000 The NetBSD Foundation, Inc.]&] -[s0; [C0 All rights reserved.]&] -[s0;C0 &] -[s0; [C0 This code is derived from software contributed to The NetBSD -Foundation]&] -[s0; [C0 by Dieter Baron and Thomas Klausner.]&] -[s0;C0 &] -[s0; [C0 Redistribution and use in source and binary forms, with or -without]&] -[s0; [C0 modification, are permitted provided that the following conditions]&] -[s0; [C0 are met:]&] -[s0; [C0 1. Redistributions of source code must retain the above copyright]&] -[s0; [C0 notice, this list of conditions and the following disclaimer.]&] -[s0; [C0 2. Redistributions in binary form must reproduce the above -copyright]&] -[s0; [C0 notice, this list of conditions and the following disclaimer -in the]&] -[s0; [C0 documentation and/or other materials provided with the -distribution.]&] -[s0;C0 &] -[s0; [C0 THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND -CONTRIBUTORS]&] -[s0; [C0 ````AS IS`'`' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, -BUT NOT LIMITED]&] -[s0; [C0 TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -FOR A PARTICULAR]&] -[s0; [C0 PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION -OR CONTRIBUTORS]&] -[s0; [C0 BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, -OR]&] -[s0; [C0 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT -OF]&] -[s0; [C0 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; -OR BUSINESS]&] -[s0; [C0 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN]&] -[s0; [C0 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE -OR OTHERWISE)]&] -[s0; [C0 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF -ADVISED OF THE]&] -[s0; [C0 POSSIBILITY OF SUCH DAMAGE.]&] -[s0;C0 &] -[s0;C0 &] -[s0; [C0 `=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`= -`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=]&] -[s0; [C0 gdtoa: Converting between IEEE floating point numbers and ASCII]&] -[s0; [C0 `=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`= -`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=]&] -[s0;C0 &] -[s0; [C0 The author of this software is David M. Gay.]&] -[s0;C0 &] -[s0; [C0 Copyright (C) 1997, 1998, 1999, 2000, 2001 by Lucent Technologies]&] -[s0; [C0 All Rights Reserved]&] -[s0;C0 &] -[s0; [C0 Permission to use, copy, modify, and distribute this software -and]&] -[s0; [C0 its documentation for any purpose and without fee is hereby]&] -[s0; [C0 granted, provided that the above copyright notice appear in -all]&] -[s0; [C0 copies and that both that the copyright notice and this]&] -[s0; [C0 permission notice and warranty disclaimer appear in supporting]&] -[s0; [C0 documentation, and that the name of Lucent or any of its entities]&] -[s0; [C0 not be used in advertising or publicity pertaining to]&] -[s0; [C0 distribution of the software without specific, written prior]&] -[s0; [C0 permission.]&] -[s0;C0 &] -[s0; [C0 LUCENT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,]&] -[s0; [C0 INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS.]&] -[s0; [C0 IN NO EVENT SHALL LUCENT OR ANY OF ITS ENTITIES BE LIABLE -FOR ANY]&] -[s0; [C0 SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES]&] -[s0; [C0 WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER]&] -[s0; [C0 IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,]&] -[s0; [C0 ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE -OF]&] -[s0; [C0 THIS SOFTWARE.]&] -[s0;C0 &] -[s0; [C0 `* `* `* `* `* `* - `*]&] -[s0;C0 &] -[s0; [C0 The author of this software is David M. Gay.]&] -[s0;C0 &] -[s0; [C0 Copyright (C) 2005 by David M. Gay]&] -[s0; [C0 All Rights Reserved]&] -[s0;C0 &] -[s0; [C0 Permission to use, copy, modify, and distribute this software -and its]&] -[s0; [C0 documentation for any purpose and without fee is hereby granted,]&] -[s0; [C0 provided that the above copyright notice appear in all copies -and that]&] -[s0; [C0 both that the copyright notice and this permission notice -and warranty]&] -[s0; [C0 disclaimer appear in supporting documentation, and that the -name of]&] -[s0; [C0 the author or any of his current or former employers not be -used in]&] -[s0; [C0 advertising or publicity pertaining to distribution of the -software]&] -[s0; [C0 without specific, written prior permission.]&] -[s0;C0 &] -[s0; [C0 THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,]&] -[s0; [C0 INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. - IN]&] -[s0; [C0 NO EVENT SHALL THE AUTHOR OR ANY OF HIS CURRENT OR FORMER -EMPLOYERS BE]&] -[s0; [C0 LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES -OR ANY]&] -[s0; [C0 DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,]&] -[s0; [C0 WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS -ACTION,]&] -[s0; [C0 ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE -OF THIS]&] -[s0; [C0 SOFTWARE.]&] -[s0;C0 &] -[s0; [C0 `* `* `* `* `* `* - `*]&] -[s0;C0 &] -[s0; [C0 The author of this software is David M. Gay.]&] -[s0;C0 &] -[s0; [C0 Copyright (C) 2004 by David M. Gay.]&] -[s0; [C0 All Rights Reserved]&] -[s0; [C0 Based on material in the rest of /netlib/fp/gdota.tar.gz,]&] -[s0; [C0 which is copyright (C) 1998, 2000 by Lucent Technologies.]&] -[s0;C0 &] -[s0; [C0 Permission to use, copy, modify, and distribute this software -and]&] -[s0; [C0 its documentation for any purpose and without fee is hereby]&] -[s0; [C0 granted, provided that the above copyright notice appear in -all]&] -[s0; [C0 copies and that both that the copyright notice and this]&] -[s0; [C0 permission notice and warranty disclaimer appear in supporting]&] -[s0; [C0 documentation, and that the name of Lucent or any of its entities]&] -[s0; [C0 not be used in advertising or publicity pertaining to]&] -[s0; [C0 distribution of the software without specific, written prior]&] -[s0; [C0 permission.]&] -[s0;C0 &] -[s0; [C0 LUCENT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,]&] -[s0; [C0 INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS.]&] -[s0; [C0 IN NO EVENT SHALL LUCENT OR ANY OF ITS ENTITIES BE LIABLE -FOR ANY]&] -[s0; [C0 SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES]&] -[s0; [C0 WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER]&] -[s0; [C0 IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,]&] -[s0; [C0 ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE -OF]&] -[s0; [C0 THIS SOFTWARE.]&] -[s0;C0 &] -[s0;C0 &] -[s0; [C0 `=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=]&] -[s0; [C0 Parts of the math library]&] -[s0; [C0 `=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=]&] -[s0;C0 &] -[s0; [C0 Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.]&] -[s0;C0 &] -[s0; [C0 Developed at SunSoft, a Sun Microsystems, Inc. business.]&] -[s0; [C0 Permission to use, copy, modify, and distribute this]&] -[s0; [C0 software is freely granted, provided that this notice]&] -[s0; [C0 is preserved.]&] -[s0;C0 &] -[s0; [C0 `* `* `* `* `* `* - `*]&] -[s0;C0 &] -[s0; [C0 Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.]&] -[s0;C0 &] -[s0; [C0 Developed at SunPro, a Sun Microsystems, Inc. business.]&] -[s0; [C0 Permission to use, copy, modify, and distribute this]&] -[s0; [C0 software is freely granted, provided that this notice]&] -[s0; [C0 is preserved.]&] -[s0;C0 &] -[s0; [C0 `* `* `* `* `* `* - `*]&] -[s0;C0 &] -[s0; [C0 FIXME: Cephes math lib]&] -[s0; [C0 Copyright (C) 1984`-1998 Stephen L. Moshier]&] -[s0;C0 &] -[s0; [C0 It sounds vague, but as to be found at]&] -[s0; [C0 , -it gives an]&] -[s0; [C0 impression that the author could be willing to give an explicit]&] -[s0; [C0 permission to distribute those files e.g. under a BSD style -license. So]&] -[s0; [C0 probably there is no problem here, although it could be good -to get a]&] -[s0; [C0 permission from the author and then add a license into the -Cephes files]&] -[s0; [C0 in MinGW runtime. At least on follow`-up it is marked that -debian sees the]&] -[s0; [C0 version a`-like BSD one. As MinGW.org (where those cephes -parts are coming]&] -[s0; [C0 from) distributes them now over 6 years, it should be fine.]&] -[s0;C0 &] -[s0; [C0 `=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=]&] -[s0; [C0 Headers and IDLs imported from Wine]&] -[s0; [C0 `=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=]&] -[s0;C0 &] -[s0; [C0 Some header and IDL files were imported from the Wine project. -These files]&] -[s0; [C0 are prominent maked in source. Their copyright belongs to -contributors and]&] -[s0; [C0 they are distributed under LGPL license.]&] -[s0;C0 &] -[s0; [C0 Disclaimer]&] -[s0;C0 &] -[s0; [C0 This library is free software; you can redistribute it and/or]&] -[s0; [C0 modify it under the terms of the GNU Lesser General Public]&] -[s0; [C0 License as published by the Free Software Foundation; either]&] -[s0; [C0 version 2.1 of the License, or (at your option) any later -version.]&] -[s0;C0 &] -[s0; [C0 This library is distributed in the hope that it will be useful,]&] -[s0; [C0 but WITHOUT ANY WARRANTY; without even the implied warranty -of]&] -[s0; [C0 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See -the GNU]&] -[s0; [C0 Lesser General Public License for more details.]]}}&] -[s0;C0 &] -[s0;C0 &] -[s0; [C0 MINGW`-W64]&] -[ {{10000@(255.255.192) [s0; [C0 Copyright (c) 2011 mingw`-w64 project]&] -[s0;C0 &] -[s0; [C0 Permission is hereby granted, free of charge, to any person -obtaining a]&] -[s0; [C0 copy of this software and associated documentation files (the -`"Software`"),]&] -[s0; [C0 to deal in the Software without restriction, including without -limitation]&] -[s0; [C0 the rights to use, copy, modify, merge, publish, distribute, -sublicense,]&] -[s0; [C0 and/or sell copies of the Software, and to permit persons -to whom the]&] -[s0; [C0 Software is furnished to do so, subject to the following conditions:]&] -[s0;C0 &] -[s0; [C0 The above copyright notice and this permission notice shall -be included in]&] -[s0; [C0 all copies or substantial portions of the Software.]&] -[s0;C0 &] -[s0; [C0 THE SOFTWARE IS PROVIDED `"AS IS`", WITHOUT WARRANTY OF ANY -KIND, EXPRESS OR]&] -[s0; [C0 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,]&] -[s0; [C0 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO -EVENT SHALL THE]&] -[s0; [C0 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES -OR OTHER]&] -[s0; [C0 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING]&] -[s0; [C0 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE -OR OTHER]&] -[s0; [C0 DEALINGS IN THE SOFTWARE.]&] -[s0;C0 &] -[s0;C0 &] -[s0; [C0 /`*]&] -[s0; [C0 `* Parts of this library are derived by:]&] -[s0; [C0 `*]&] -[s0; [C0 `* Posix Threads library for Microsoft Windows]&] -[s0; [C0 `*]&] -[s0; [C0 `* Use at own risk, there is no implied warranty to this -code.]&] -[s0; [C0 `* It uses undocumented features of Microsoft Windows that -can change]&] -[s0; [C0 `* at any time in the future.]&] -[s0; [C0 `*]&] -[s0; [C0 `* (C) 2010 Lockless Inc.]&] -[s0; [C0 `* All rights reserved.]&] -[s0; [C0 `*]&] -[s0; [C0 `* Redistribution and use in source and binary forms, with -or without modification,]&] -[s0; [C0 `* are permitted provided that the following conditions are -met:]&] -[s0; [C0 `*]&] -[s0; [C0 `*]&] -[s0; [C0 `* `* Redistributions of source code must retain the above -copyright notice,]&] -[s0; [C0 `* this list of conditions and the following disclaimer.]&] -[s0; [C0 `* `* Redistributions in binary form must reproduce the -above copyright notice,]&] -[s0; [C0 `* this list of conditions and the following disclaimer -in the documentation]&] -[s0; [C0 `* and/or other materials provided with the distribution.]&] -[s0; [C0 `* `* Neither the name of Lockless Inc. nor the names of -its contributors may be]&] -[s0; [C0 `* used to endorse or promote products derived from this -software without]&] -[s0; [C0 `* specific prior written permission.]&] -[s0; [C0 `*]&] -[s0; [C0 `* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND -CONTRIBUTORS `"AS IS`" AN]&] -[s0; [C0 `* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED]&] -[s0; [C0 `* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED.]&] -[s0; [C0 `* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS -BE LIABLE FOR ANY DIRECT,]&] -[s0; [C0 `* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING,]&] -[s0; [C0 `* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE,]&] -[s0; [C0 `* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -AND ON ANY THEORY OF]&] -[s0; [C0 `* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE]&] -[s0; [C0 `* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED]&] -[s0; [C0 `* OF THE POSSIBILITY OF SUCH DAMAGE.]&] -[s0; [C0 `*/]&] -[s0;C0 ]}}&] -[s0;C0 &] -[s0;C0 &] -[s0; [C0 GCC, binutils]&] -[ {{10000@(255.255.192) [s0; [C0 GNU GENERAL PUBLIC LICENSE]&] -[s0; [C0 Version 3, 29 June 2007]&] -[s0;C0 &] -[s0; [C0 Copyright (C) 2007 Free Software Foundation, Inc. ]&] -[s0; [C0 Everyone is permitted to copy and distribute verbatim copies]&] -[s0; [C0 of this license document, but changing it is not allowed.]&] -[s0;C0 &] -[s0; [C0 Preamble]&] -[s0;C0 &] -[s0; [C0 The GNU General Public License is a free, copyleft license -for]&] -[s0; [C0 software and other kinds of works.]&] -[s0;C0 &] -[s0; [C0 The licenses for most software and other practical works -are designed]&] -[s0; [C0 to take away your freedom to share and change the works. -By contrast,]&] -[s0; [C0 the GNU General Public License is intended to guarantee your -freedom to]&] -[s0; [C0 share and change all versions of a program`-`-to make sure -it remains free]&] -[s0; [C0 software for all its users. We, the Free Software Foundation, -use the]&] -[s0; [C0 GNU General Public License for most of our software; it applies -also to]&] -[s0; [C0 any other work released this way by its authors. You can -apply it to]&] -[s0; [C0 your programs, too.]&] -[s0;C0 &] -[s0; [C0 When we speak of free software, we are referring to freedom, -not]&] -[s0; [C0 price. Our General Public Licenses are designed to make sure -that you]&] -[s0; [C0 have the freedom to distribute copies of free software (and -charge for]&] -[s0; [C0 them if you wish), that you receive source code or can get -it if you]&] -[s0; [C0 want it, that you can change the software or use pieces of -it in new]&] -[s0; [C0 free programs, and that you know you can do these things.]&] -[s0;C0 &] -[s0; [C0 To protect your rights, we need to prevent others from denying -you]&] -[s0; [C0 these rights or asking you to surrender the rights. Therefore, -you have]&] -[s0; [C0 certain responsibilities if you distribute copies of the software, -or if]&] -[s0; [C0 you modify it: responsibilities to respect the freedom of others.]&] -[s0;C0 &] -[s0; [C0 For example, if you distribute copies of such a program, -whether]&] -[s0; [C0 gratis or for a fee, you must pass on to the recipients the -same]&] -[s0; [C0 freedoms that you received. You must make sure that they, -too, receive]&] -[s0; [C0 or can get the source code. And you must show them these -terms so they]&] -[s0; [C0 know their rights.]&] -[s0;C0 &] -[s0; [C0 Developers that use the GNU GPL protect your rights with -two steps:]&] -[s0; [C0 (1) assert copyright on the software, and (2) offer you this -License]&] -[s0; [C0 giving you legal permission to copy, distribute and/or modify -it.]&] -[s0;C0 &] -[s0; [C0 For the developers`' and authors`' protection, the GPL clearly -explains]&] -[s0; [C0 that there is no warranty for this free software. For both -users`' and]&] -[s0; [C0 authors`' sake, the GPL requires that modified versions be -marked as]&] -[s0; [C0 changed, so that their problems will not be attributed erroneously -to]&] -[s0; [C0 authors of previous versions.]&] -[s0;C0 &] -[s0; [C0 Some devices are designed to deny users access to install -or run]&] -[s0; [C0 modified versions of the software inside them, although the -manufacturer]&] -[s0; [C0 can do so. This is fundamentally incompatible with the aim -of]&] -[s0; [C0 protecting users`' freedom to change the software. The systematic]&] -[s0; [C0 pattern of such abuse occurs in the area of products for individuals -to]&] -[s0; [C0 use, which is precisely where it is most unacceptable. Therefore, -we]&] -[s0; [C0 have designed this version of the GPL to prohibit the practice -for those]&] -[s0; [C0 products. If such problems arise substantially in other domains, -we]&] -[s0; [C0 stand ready to extend this provision to those domains in future -versions]&] -[s0; [C0 of the GPL, as needed to protect the freedom of users.]&] -[s0;C0 &] -[s0; [C0 Finally, every program is threatened constantly by software -patents.]&] -[s0; [C0 States should not allow patents to restrict development and -use of]&] -[s0; [C0 software on general`-purpose computers, but in those that -do, we wish to]&] -[s0; [C0 avoid the special danger that patents applied to a free program -could]&] -[s0; [C0 make it effectively proprietary. To prevent this, the GPL -assures that]&] -[s0; [C0 patents cannot be used to render the program non`-free.]&] -[s0;C0 &] -[s0; [C0 The precise terms and conditions for copying, distribution -and]&] -[s0; [C0 modification follow.]&] -[s0;C0 &] -[s0; [C0 TERMS AND CONDITIONS]&] -[s0;C0 &] -[s0; [C0 0. Definitions.]&] -[s0;C0 &] -[s0; [C0 `"This License`" refers to version 3 of the GNU General -Public License.]&] -[s0;C0 &] -[s0; [C0 `"Copyright`" also means copyright`-like laws that apply -to other kinds of]&] -[s0; [C0 works, such as semiconductor masks.]&] -[s0;C0 &] -[s0; [C0 `"The Program`" refers to any copyrightable work licensed -under this]&] -[s0; [C0 License. Each licensee is addressed as `"you`". `"Licensees`" -and]&] -[s0; [C0 `"recipients`" may be individuals or organizations.]&] -[s0;C0 &] -[s0; [C0 To `"modify`" a work means to copy from or adapt all or -part of the work]&] -[s0; [C0 in a fashion requiring copyright permission, other than the -making of an]&] -[s0; [C0 exact copy. The resulting work is called a `"modified version`" -of the]&] -[s0; [C0 earlier work or a work `"based on`" the earlier work.]&] -[s0;C0 &] -[s0; [C0 A `"covered work`" means either the unmodified Program or -a work based]&] -[s0; [C0 on the Program.]&] -[s0;C0 &] -[s0; [C0 To `"propagate`" a work means to do anything with it that, -without]&] -[s0; [C0 permission, would make you directly or secondarily liable -for]&] -[s0; [C0 infringement under applicable copyright law, except executing -it on a]&] -[s0; [C0 computer or modifying a private copy. Propagation includes -copying,]&] -[s0; [C0 distribution (with or without modification), making available -to the]&] -[s0; [C0 public, and in some countries other activities as well.]&] -[s0;C0 &] -[s0; [C0 To `"convey`" a work means any kind of propagation that -enables other]&] -[s0; [C0 parties to make or receive copies. Mere interaction with -a user through]&] -[s0; [C0 a computer network, with no transfer of a copy, is not conveying.]&] -[s0;C0 &] -[s0; [C0 An interactive user interface displays `"Appropriate Legal -Notices`"]&] -[s0; [C0 to the extent that it includes a convenient and prominently -visible]&] -[s0; [C0 feature that (1) displays an appropriate copyright notice, -and (2)]&] -[s0; [C0 tells the user that there is no warranty for the work (except -to the]&] -[s0; [C0 extent that warranties are provided), that licensees may convey -the]&] -[s0; [C0 work under this License, and how to view a copy of this License. - If]&] -[s0; [C0 the interface presents a list of user commands or options, -such as a]&] -[s0; [C0 menu, a prominent item in the list meets this criterion.]&] -[s0;C0 &] -[s0; [C0 1. Source Code.]&] -[s0;C0 &] -[s0; [C0 The `"source code`" for a work means the preferred form -of the work]&] -[s0; [C0 for making modifications to it. `"Object code`" means any -non`-source]&] -[s0; [C0 form of a work.]&] -[s0;C0 &] -[s0; [C0 A `"Standard Interface`" means an interface that either -is an official]&] -[s0; [C0 standard defined by a recognized standards body, or, in the -case of]&] -[s0; [C0 interfaces specified for a particular programming language, -one that]&] -[s0; [C0 is widely used among developers working in that language.]&] -[s0;C0 &] -[s0; [C0 The `"System Libraries`" of an executable work include anything, -other]&] -[s0; [C0 than the work as a whole, that (a) is included in the normal -form of]&] -[s0; [C0 packaging a Major Component, but which is not part of that -Major]&] -[s0; [C0 Component, and (b) serves only to enable use of the work with -that]&] -[s0; [C0 Major Component, or to implement a Standard Interface for -which an]&] -[s0; [C0 implementation is available to the public in source code form. - A]&] -[s0; [C0 `"Major Component`", in this context, means a major essential -component]&] -[s0; [C0 (kernel, window system, and so on) of the specific operating -system]&] -[s0; [C0 (if any) on which the executable work runs, or a compiler -used to]&] -[s0; [C0 produce the work, or an object code interpreter used to run -it.]&] -[s0;C0 &] -[s0; [C0 The `"Corresponding Source`" for a work in object code form -means all]&] -[s0; [C0 the source code needed to generate, install, and (for an executable]&] -[s0; [C0 work) run the object code and to modify the work, including -scripts to]&] -[s0; [C0 control those activities. However, it does not include the -work`'s]&] -[s0; [C0 System Libraries, or general`-purpose tools or generally available -free]&] -[s0; [C0 programs which are used unmodified in performing those activities -but]&] -[s0; [C0 which are not part of the work. For example, Corresponding -Source]&] -[s0; [C0 includes interface definition files associated with source -files for]&] -[s0; [C0 the work, and the source code for shared libraries and dynamically]&] -[s0; [C0 linked subprograms that the work is specifically designed -to require,]&] -[s0; [C0 such as by intimate data communication or control flow between -those]&] -[s0; [C0 subprograms and other parts of the work.]&] -[s0;C0 &] -[s0; [C0 The Corresponding Source need not include anything that -users]&] -[s0; [C0 can regenerate automatically from other parts of the Corresponding]&] -[s0; [C0 Source.]&] -[s0;C0 &] -[s0; [C0 The Corresponding Source for a work in source code form -is that]&] -[s0; [C0 same work.]&] -[s0;C0 &] -[s0; [C0 2. Basic Permissions.]&] -[s0;C0 &] -[s0; [C0 All rights granted under this License are granted for the -term of]&] -[s0; [C0 copyright on the Program, and are irrevocable provided the -stated]&] -[s0; [C0 conditions are met. This License explicitly affirms your -unlimited]&] -[s0; [C0 permission to run the unmodified Program. The output from -running a]&] -[s0; [C0 covered work is covered by this License only if the output, -given its]&] -[s0; [C0 content, constitutes a covered work. This License acknowledges -your]&] -[s0; [C0 rights of fair use or other equivalent, as provided by copyright -law.]&] -[s0;C0 &] -[s0; [C0 You may make, run and propagate covered works that you do -not]&] -[s0; [C0 convey, without conditions so long as your license otherwise -remains]&] -[s0; [C0 in force. You may convey covered works to others for the -sole purpose]&] -[s0; [C0 of having them make modifications exclusively for you, or -provide you]&] -[s0; [C0 with facilities for running those works, provided that you -comply with]&] -[s0; [C0 the terms of this License in conveying all material for which -you do]&] -[s0; [C0 not control copyright. Those thus making or running the covered -works]&] -[s0; [C0 for you must do so exclusively on your behalf, under your -direction]&] -[s0; [C0 and control, on terms that prohibit them from making any copies -of]&] -[s0; [C0 your copyrighted material outside their relationship with -you.]&] -[s0;C0 &] -[s0; [C0 Conveying under any other circumstances is permitted solely -under]&] -[s0; [C0 the conditions stated below. Sublicensing is not allowed; -section 10]&] -[s0; [C0 makes it unnecessary.]&] -[s0;C0 &] -[s0; [C0 3. Protecting Users`' Legal Rights From Anti`-Circumvention -Law.]&] -[s0;C0 &] -[s0; [C0 No covered work shall be deemed part of an effective technological]&] -[s0; [C0 measure under any applicable law fulfilling obligations under -article]&] -[s0; [C0 11 of the WIPO copyright treaty adopted on 20 December 1996, -or]&] -[s0; [C0 similar laws prohibiting or restricting circumvention of such]&] -[s0; [C0 measures.]&] -[s0;C0 &] -[s0; [C0 When you convey a covered work, you waive any legal power -to forbid]&] -[s0; [C0 circumvention of technological measures to the extent such -circumvention]&] -[s0; [C0 is effected by exercising rights under this License with respect -to]&] -[s0; [C0 the covered work, and you disclaim any intention to limit -operation or]&] -[s0; [C0 modification of the work as a means of enforcing, against -the work`'s]&] -[s0; [C0 users, your or third parties`' legal rights to forbid circumvention -of]&] -[s0; [C0 technological measures.]&] -[s0;C0 &] -[s0; [C0 4. Conveying Verbatim Copies.]&] -[s0;C0 &] -[s0; [C0 You may convey verbatim copies of the Program`'s source -code as you]&] -[s0; [C0 receive it, in any medium, provided that you conspicuously -and]&] -[s0; [C0 appropriately publish on each copy an appropriate copyright -notice;]&] -[s0; [C0 keep intact all notices stating that this License and any]&] -[s0; [C0 non`-permissive terms added in accord with section 7 apply -to the code;]&] -[s0; [C0 keep intact all notices of the absence of any warranty; and -give all]&] -[s0; [C0 recipients a copy of this License along with the Program.]&] -[s0;C0 &] -[s0; [C0 You may charge any price or no price for each copy that -you convey,]&] -[s0; [C0 and you may offer support or warranty protection for a fee.]&] -[s0;C0 &] -[s0; [C0 5. Conveying Modified Source Versions.]&] -[s0;C0 &] -[s0; [C0 You may convey a work based on the Program, or the modifications -to]&] -[s0; [C0 produce it from the Program, in the form of source code under -the]&] -[s0; [C0 terms of section 4, provided that you also meet all of these -conditions:]&] -[s0;C0 &] -[s0; [C0 a) The work must carry prominent notices stating that -you modified]&] -[s0; [C0 it, and giving a relevant date.]&] -[s0;C0 &] -[s0; [C0 b) The work must carry prominent notices stating that -it is]&] -[s0; [C0 released under this License and any conditions added under -section]&] -[s0; [C0 7. This requirement modifies the requirement in section -4 to]&] -[s0; [C0 `"keep intact all notices`".]&] -[s0;C0 &] -[s0; [C0 c) You must license the entire work, as a whole, under -this]&] -[s0; [C0 License to anyone who comes into possession of a copy. - This]&] -[s0; [C0 License will therefore apply, along with any applicable -section 7]&] -[s0; [C0 additional terms, to the whole of the work, and all its -parts,]&] -[s0; [C0 regardless of how they are packaged. This License gives -no]&] -[s0; [C0 permission to license the work in any other way, but it -does not]&] -[s0; [C0 invalidate such permission if you have separately received -it.]&] -[s0;C0 &] -[s0; [C0 d) If the work has interactive user interfaces, each must -display]&] -[s0; [C0 Appropriate Legal Notices; however, if the Program has -interactive]&] -[s0; [C0 interfaces that do not display Appropriate Legal Notices, -your]&] -[s0; [C0 work need not make them do so.]&] -[s0;C0 &] -[s0; [C0 A compilation of a covered work with other separate and -independent]&] -[s0; [C0 works, which are not by their nature extensions of the covered -work,]&] -[s0; [C0 and which are not combined with it such as to form a larger -program,]&] -[s0; [C0 in or on a volume of a storage or distribution medium, is -called an]&] -[s0; [C0 `"aggregate`" if the compilation and its resulting copyright -are not]&] -[s0; [C0 used to limit the access or legal rights of the compilation`'s -users]&] -[s0; [C0 beyond what the individual works permit. Inclusion of a covered -work]&] -[s0; [C0 in an aggregate does not cause this License to apply to the -other]&] -[s0; [C0 parts of the aggregate.]&] -[s0;C0 &] -[s0; [C0 6. Conveying Non`-Source Forms.]&] -[s0;C0 &] -[s0; [C0 You may convey a covered work in object code form under -the terms]&] -[s0; [C0 of sections 4 and 5, provided that you also convey the]&] -[s0; [C0 machine`-readable Corresponding Source under the terms of -this License,]&] -[s0; [C0 in one of these ways:]&] -[s0;C0 &] -[s0; [C0 a) Convey the object code in, or embodied in, a physical -product]&] -[s0; [C0 (including a physical distribution medium), accompanied -by the]&] -[s0; [C0 Corresponding Source fixed on a durable physical medium]&] -[s0; [C0 customarily used for software interchange.]&] -[s0;C0 &] -[s0; [C0 b) Convey the object code in, or embodied in, a physical -product]&] -[s0; [C0 (including a physical distribution medium), accompanied -by a]&] -[s0; [C0 written offer, valid for at least three years and valid -for as]&] -[s0; [C0 long as you offer spare parts or customer support for -that product]&] -[s0; [C0 model, to give anyone who possesses the object code either -(1) a]&] -[s0; [C0 copy of the Corresponding Source for all the software -in the]&] -[s0; [C0 product that is covered by this License, on a durable -physical]&] -[s0; [C0 medium customarily used for software interchange, for -a price no]&] -[s0; [C0 more than your reasonable cost of physically performing -this]&] -[s0; [C0 conveying of source, or (2) access to copy the]&] -[s0; [C0 Corresponding Source from a network server at no charge.]&] -[s0;C0 &] -[s0; [C0 c) Convey individual copies of the object code with a -copy of the]&] -[s0; [C0 written offer to provide the Corresponding Source. This]&] -[s0; [C0 alternative is allowed only occasionally and noncommercially, -and]&] -[s0; [C0 only if you received the object code with such an offer, -in accord]&] -[s0; [C0 with subsection 6b.]&] -[s0;C0 &] -[s0; [C0 d) Convey the object code by offering access from a designated]&] -[s0; [C0 place (gratis or for a charge), and offer equivalent access -to the]&] -[s0; [C0 Corresponding Source in the same way through the same -place at no]&] -[s0; [C0 further charge. You need not require recipients to copy -the]&] -[s0; [C0 Corresponding Source along with the object code. If the -place to]&] -[s0; [C0 copy the object code is a network server, the Corresponding -Source]&] -[s0; [C0 may be on a different server (operated by you or a third -party)]&] -[s0; [C0 that supports equivalent copying facilities, provided -you maintain]&] -[s0; [C0 clear directions next to the object code saying where -to find the]&] -[s0; [C0 Corresponding Source. Regardless of what server hosts -the]&] -[s0; [C0 Corresponding Source, you remain obligated to ensure that -it is]&] -[s0; [C0 available for as long as needed to satisfy these requirements.]&] -[s0;C0 &] -[s0; [C0 e) Convey the object code using peer`-to`-peer transmission, -provided]&] -[s0; [C0 you inform other peers where the object code and Corresponding]&] -[s0; [C0 Source of the work are being offered to the general public -at no]&] -[s0; [C0 charge under subsection 6d.]&] -[s0;C0 &] -[s0; [C0 A separable portion of the object code, whose source code -is excluded]&] -[s0; [C0 from the Corresponding Source as a System Library, need not -be]&] -[s0; [C0 included in conveying the object code work.]&] -[s0;C0 &] -[s0; [C0 A `"User Product`" is either (1) a `"consumer product`", -which means any]&] -[s0; [C0 tangible personal property which is normally used for personal, -family,]&] -[s0; [C0 or household purposes, or (2) anything designed or sold for -incorporation]&] -[s0; [C0 into a dwelling. In determining whether a product is a consumer -product,]&] -[s0; [C0 doubtful cases shall be resolved in favor of coverage. For -a particular]&] -[s0; [C0 product received by a particular user, `"normally used`" refers -to a]&] -[s0; [C0 typical or common use of that class of product, regardless -of the status]&] -[s0; [C0 of the particular user or of the way in which the particular -user]&] -[s0; [C0 actually uses, or expects or is expected to use, the product. - A product]&] -[s0; [C0 is a consumer product regardless of whether the product has -substantial]&] -[s0; [C0 commercial, industrial or non`-consumer uses, unless such -uses represent]&] -[s0; [C0 the only significant mode of use of the product.]&] -[s0;C0 &] -[s0; [C0 `"Installation Information`" for a User Product means any -methods,]&] -[s0; [C0 procedures, authorization keys, or other information required -to install]&] -[s0; [C0 and execute modified versions of a covered work in that User -Product from]&] -[s0; [C0 a modified version of its Corresponding Source. The information -must]&] -[s0; [C0 suffice to ensure that the continued functioning of the modified -object]&] -[s0; [C0 code is in no case prevented or interfered with solely because]&] -[s0; [C0 modification has been made.]&] -[s0;C0 &] -[s0; [C0 If you convey an object code work under this section in, -or with, or]&] -[s0; [C0 specifically for use in, a User Product, and the conveying -occurs as]&] -[s0; [C0 part of a transaction in which the right of possession and -use of the]&] -[s0; [C0 User Product is transferred to the recipient in perpetuity -or for a]&] -[s0; [C0 fixed term (regardless of how the transaction is characterized), -the]&] -[s0; [C0 Corresponding Source conveyed under this section must be accompanied]&] -[s0; [C0 by the Installation Information. But this requirement does -not apply]&] -[s0; [C0 if neither you nor any third party retains the ability to -install]&] -[s0; [C0 modified object code on the User Product (for example, the -work has]&] -[s0; [C0 been installed in ROM).]&] -[s0;C0 &] -[s0; [C0 The requirement to provide Installation Information does -not include a]&] -[s0; [C0 requirement to continue to provide support service, warranty, -or updates]&] -[s0; [C0 for a work that has been modified or installed by the recipient, -or for]&] -[s0; [C0 the User Product in which it has been modified or installed. - Access to a]&] -[s0; [C0 network may be denied when the modification itself materially -and]&] -[s0; [C0 adversely affects the operation of the network or violates -the rules and]&] -[s0; [C0 protocols for communication across the network.]&] -[s0;C0 &] -[s0; [C0 Corresponding Source conveyed, and Installation Information -provided,]&] -[s0; [C0 in accord with this section must be in a format that is publicly]&] -[s0; [C0 documented (and with an implementation available to the public -in]&] -[s0; [C0 source code form), and must require no special password or -key for]&] -[s0; [C0 unpacking, reading or copying.]&] -[s0;C0 &] -[s0; [C0 7. Additional Terms.]&] -[s0;C0 &] -[s0; [C0 `"Additional permissions`" are terms that supplement the -terms of this]&] -[s0; [C0 License by making exceptions from one or more of its conditions.]&] -[s0; [C0 Additional permissions that are applicable to the entire Program -shall]&] -[s0; [C0 be treated as though they were included in this License, to -the extent]&] -[s0; [C0 that they are valid under applicable law. If additional permissions]&] -[s0; [C0 apply only to part of the Program, that part may be used separately]&] -[s0; [C0 under those permissions, but the entire Program remains governed -by]&] -[s0; [C0 this License without regard to the additional permissions.]&] -[s0;C0 &] -[s0; [C0 When you convey a copy of a covered work, you may at your -option]&] -[s0; [C0 remove any additional permissions from that copy, or from -any part of]&] -[s0; [C0 it. (Additional permissions may be written to require their -own]&] -[s0; [C0 removal in certain cases when you modify the work.) You may -place]&] -[s0; [C0 additional permissions on material, added by you to a covered -work,]&] -[s0; [C0 for which you have or can give appropriate copyright permission.]&] -[s0;C0 &] -[s0; [C0 Notwithstanding any other provision of this License, for -material you]&] -[s0; [C0 add to a covered work, you may (if authorized by the copyright -holders of]&] -[s0; [C0 that material) supplement the terms of this License with terms:]&] -[s0;C0 &] -[s0; [C0 a) Disclaiming warranty or limiting liability differently -from the]&] -[s0; [C0 terms of sections 15 and 16 of this License; or]&] -[s0;C0 &] -[s0; [C0 b) Requiring preservation of specified reasonable legal -notices or]&] -[s0; [C0 author attributions in that material or in the Appropriate -Legal]&] -[s0; [C0 Notices displayed by works containing it; or]&] -[s0;C0 &] -[s0; [C0 c) Prohibiting misrepresentation of the origin of that -material, or]&] -[s0; [C0 requiring that modified versions of such material be marked -in]&] -[s0; [C0 reasonable ways as different from the original version; -or]&] -[s0;C0 &] -[s0; [C0 d) Limiting the use for publicity purposes of names of -licensors or]&] -[s0; [C0 authors of the material; or]&] -[s0;C0 &] -[s0; [C0 e) Declining to grant rights under trademark law for use -of some]&] -[s0; [C0 trade names, trademarks, or service marks; or]&] -[s0;C0 &] -[s0; [C0 f) Requiring indemnification of licensors and authors -of that]&] -[s0; [C0 material by anyone who conveys the material (or modified -versions of]&] -[s0; [C0 it) with contractual assumptions of liability to the recipient, -for]&] -[s0; [C0 any liability that these contractual assumptions directly -impose on]&] -[s0; [C0 those licensors and authors.]&] -[s0;C0 &] -[s0; [C0 All other non`-permissive additional terms are considered -`"further]&] -[s0; [C0 restrictions`" within the meaning of section 10. If the Program -as you]&] -[s0; [C0 received it, or any part of it, contains a notice stating -that it is]&] -[s0; [C0 governed by this License along with a term that is a further]&] -[s0; [C0 restriction, you may remove that term. If a license document -contains]&] -[s0; [C0 a further restriction but permits relicensing or conveying -under this]&] -[s0; [C0 License, you may add to a covered work material governed by -the terms]&] -[s0; [C0 of that license document, provided that the further restriction -does]&] -[s0; [C0 not survive such relicensing or conveying.]&] -[s0;C0 &] -[s0; [C0 If you add terms to a covered work in accord with this section, -you]&] -[s0; [C0 must place, in the relevant source files, a statement of the]&] -[s0; [C0 additional terms that apply to those files, or a notice indicating]&] -[s0; [C0 where to find the applicable terms.]&] -[s0;C0 &] -[s0; [C0 Additional terms, permissive or non`-permissive, may be -stated in the]&] -[s0; [C0 form of a separately written license, or stated as exceptions;]&] -[s0; [C0 the above requirements apply either way.]&] -[s0;C0 &] -[s0; [C0 8. Termination.]&] -[s0;C0 &] -[s0; [C0 You may not propagate or modify a covered work except as -expressly]&] -[s0; [C0 provided under this License. Any attempt otherwise to propagate -or]&] -[s0; [C0 modify it is void, and will automatically terminate your rights -under]&] -[s0; [C0 this License (including any patent licenses granted under -the third]&] -[s0; [C0 paragraph of section 11).]&] -[s0;C0 &] -[s0; [C0 However, if you cease all violation of this License, then -your]&] -[s0; [C0 license from a particular copyright holder is reinstated (a)]&] -[s0; [C0 provisionally, unless and until the copyright holder explicitly -and]&] -[s0; [C0 finally terminates your license, and (b) permanently, if the -copyright]&] -[s0; [C0 holder fails to notify you of the violation by some reasonable -means]&] -[s0; [C0 prior to 60 days after the cessation.]&] -[s0;C0 &] -[s0; [C0 Moreover, your license from a particular copyright holder -is]&] -[s0; [C0 reinstated permanently if the copyright holder notifies you -of the]&] -[s0; [C0 violation by some reasonable means, this is the first time -you have]&] -[s0; [C0 received notice of violation of this License (for any work) -from that]&] -[s0; [C0 copyright holder, and you cure the violation prior to 30 days -after]&] -[s0; [C0 your receipt of the notice.]&] -[s0;C0 &] -[s0; [C0 Termination of your rights under this section does not terminate -the]&] -[s0; [C0 licenses of parties who have received copies or rights from -you under]&] -[s0; [C0 this License. If your rights have been terminated and not -permanently]&] -[s0; [C0 reinstated, you do not qualify to receive new licenses for -the same]&] -[s0; [C0 material under section 10.]&] -[s0;C0 &] -[s0; [C0 9. Acceptance Not Required for Having Copies.]&] -[s0;C0 &] -[s0; [C0 You are not required to accept this License in order to -receive or]&] -[s0; [C0 run a copy of the Program. Ancillary propagation of a covered -work]&] -[s0; [C0 occurring solely as a consequence of using peer`-to`-peer -transmission]&] -[s0; [C0 to receive a copy likewise does not require acceptance. However,]&] -[s0; [C0 nothing other than this License grants you permission to propagate -or]&] -[s0; [C0 modify any covered work. These actions infringe copyright -if you do]&] -[s0; [C0 not accept this License. Therefore, by modifying or propagating -a]&] -[s0; [C0 covered work, you indicate your acceptance of this License -to do so.]&] -[s0;C0 &] -[s0; [C0 10. Automatic Licensing of Downstream Recipients.]&] -[s0;C0 &] -[s0; [C0 Each time you convey a covered work, the recipient automatically]&] -[s0; [C0 receives a license from the original licensors, to run, modify -and]&] -[s0; [C0 propagate that work, subject to this License. You are not -responsible]&] -[s0; [C0 for enforcing compliance by third parties with this License.]&] -[s0;C0 &] -[s0; [C0 An `"entity transaction`" is a transaction transferring -control of an]&] -[s0; [C0 organization, or substantially all assets of one, or subdividing -an]&] -[s0; [C0 organization, or merging organizations. If propagation of -a covered]&] -[s0; [C0 work results from an entity transaction, each party to that]&] -[s0; [C0 transaction who receives a copy of the work also receives -whatever]&] -[s0; [C0 licenses to the work the party`'s predecessor in interest -had or could]&] -[s0; [C0 give under the previous paragraph, plus a right to possession -of the]&] -[s0; [C0 Corresponding Source of the work from the predecessor in interest, -if]&] -[s0; [C0 the predecessor has it or can get it with reasonable efforts.]&] -[s0;C0 &] -[s0; [C0 You may not impose any further restrictions on the exercise -of the]&] -[s0; [C0 rights granted or affirmed under this License. For example, -you may]&] -[s0; [C0 not impose a license fee, royalty, or other charge for exercise -of]&] -[s0; [C0 rights granted under this License, and you may not initiate -litigation]&] -[s0; [C0 (including a cross`-claim or counterclaim in a lawsuit) alleging -that]&] -[s0; [C0 any patent claim is infringed by making, using, selling, offering -for]&] -[s0; [C0 sale, or importing the Program or any portion of it.]&] -[s0;C0 &] -[s0; [C0 11. Patents.]&] -[s0;C0 &] -[s0; [C0 A `"contributor`" is a copyright holder who authorizes use -under this]&] -[s0; [C0 License of the Program or a work on which the Program is based. - The]&] -[s0; [C0 work thus licensed is called the contributor`'s `"contributor -version`".]&] -[s0;C0 &] -[s0; [C0 A contributor`'s `"essential patent claims`" are all patent -claims]&] -[s0; [C0 owned or controlled by the contributor, whether already acquired -or]&] -[s0; [C0 hereafter acquired, that would be infringed by some manner, -permitted]&] -[s0; [C0 by this License, of making, using, or selling its contributor -version,]&] -[s0; [C0 but do not include claims that would be infringed only as -a]&] -[s0; [C0 consequence of further modification of the contributor version. - For]&] -[s0; [C0 purposes of this definition, `"control`" includes the right -to grant]&] -[s0; [C0 patent sublicenses in a manner consistent with the requirements -of]&] -[s0; [C0 this License.]&] -[s0;C0 &] -[s0; [C0 Each contributor grants you a non`-exclusive, worldwide, -royalty`-free]&] -[s0; [C0 patent license under the contributor`'s essential patent claims, -to]&] -[s0; [C0 make, use, sell, offer for sale, import and otherwise run, -modify and]&] -[s0; [C0 propagate the contents of its contributor version.]&] -[s0;C0 &] -[s0; [C0 In the following three paragraphs, a `"patent license`" -is any express]&] -[s0; [C0 agreement or commitment, however denominated, not to enforce -a patent]&] -[s0; [C0 (such as an express permission to practice a patent or covenant -not to]&] -[s0; [C0 sue for patent infringement). To `"grant`" such a patent -license to a]&] -[s0; [C0 party means to make such an agreement or commitment not to -enforce a]&] -[s0; [C0 patent against the party.]&] -[s0;C0 &] -[s0; [C0 If you convey a covered work, knowingly relying on a patent -license,]&] -[s0; [C0 and the Corresponding Source of the work is not available -for anyone]&] -[s0; [C0 to copy, free of charge and under the terms of this License, -through a]&] -[s0; [C0 publicly available network server or other readily accessible -means,]&] -[s0; [C0 then you must either (1) cause the Corresponding Source to -be so]&] -[s0; [C0 available, or (2) arrange to deprive yourself of the benefit -of the]&] -[s0; [C0 patent license for this particular work, or (3) arrange, in -a manner]&] -[s0; [C0 consistent with the requirements of this License, to extend -the patent]&] -[s0; [C0 license to downstream recipients. `"Knowingly relying`" means -you have]&] -[s0; [C0 actual knowledge that, but for the patent license, your conveying -the]&] -[s0; [C0 covered work in a country, or your recipient`'s use of the -covered work]&] -[s0; [C0 in a country, would infringe one or more identifiable patents -in that]&] -[s0; [C0 country that you have reason to believe are valid.]&] -[s0;C0 &] -[s0; [C0 If, pursuant to or in connection with a single transaction -or]&] -[s0; [C0 arrangement, you convey, or propagate by procuring conveyance -of, a]&] -[s0; [C0 covered work, and grant a patent license to some of the parties]&] -[s0; [C0 receiving the covered work authorizing them to use, propagate, -modify]&] -[s0; [C0 or convey a specific copy of the covered work, then the patent -license]&] -[s0; [C0 you grant is automatically extended to all recipients of the -covered]&] -[s0; [C0 work and works based on it.]&] -[s0;C0 &] -[s0; [C0 A patent license is `"discriminatory`" if it does not include -within]&] -[s0; [C0 the scope of its coverage, prohibits the exercise of, or is]&] -[s0; [C0 conditioned on the non`-exercise of one or more of the rights -that are]&] -[s0; [C0 specifically granted under this License. You may not convey -a covered]&] -[s0; [C0 work if you are a party to an arrangement with a third party -that is]&] -[s0; [C0 in the business of distributing software, under which you -make payment]&] -[s0; [C0 to the third party based on the extent of your activity of -conveying]&] -[s0; [C0 the work, and under which the third party grants, to any of -the]&] -[s0; [C0 parties who would receive the covered work from you, a discriminatory]&] -[s0; [C0 patent license (a) in connection with copies of the covered -work]&] -[s0; [C0 conveyed by you (or copies made from those copies), or (b) -primarily]&] -[s0; [C0 for and in connection with specific products or compilations -that]&] -[s0; [C0 contain the covered work, unless you entered into that arrangement,]&] -[s0; [C0 or that patent license was granted, prior to 28 March 2007.]&] -[s0;C0 &] -[s0; [C0 Nothing in this License shall be construed as excluding -or limiting]&] -[s0; [C0 any implied license or other defenses to infringement that -may]&] -[s0; [C0 otherwise be available to you under applicable patent law.]&] -[s0;C0 &] -[s0; [C0 12. No Surrender of Others`' Freedom.]&] -[s0;C0 &] -[s0; [C0 If conditions are imposed on you (whether by court order, -agreement or]&] -[s0; [C0 otherwise) that contradict the conditions of this License, -they do not]&] -[s0; [C0 excuse you from the conditions of this License. If you cannot -convey a]&] -[s0; [C0 covered work so as to satisfy simultaneously your obligations -under this]&] -[s0; [C0 License and any other pertinent obligations, then as a consequence -you may]&] -[s0; [C0 not convey it at all. For example, if you agree to terms -that obligate you]&] -[s0; [C0 to collect a royalty for further conveying from those to whom -you convey]&] -[s0; [C0 the Program, the only way you could satisfy both those terms -and this]&] -[s0; [C0 License would be to refrain entirely from conveying the Program.]&] -[s0;C0 &] -[s0; [C0 13. Use with the GNU Affero General Public License.]&] -[s0;C0 &] -[s0; [C0 Notwithstanding any other provision of this License, you -have]&] -[s0; [C0 permission to link or combine any covered work with a work -licensed]&] -[s0; [C0 under version 3 of the GNU Affero General Public License into -a single]&] -[s0; [C0 combined work, and to convey the resulting work. The terms -of this]&] -[s0; [C0 License will continue to apply to the part which is the covered -work,]&] -[s0; [C0 but the special requirements of the GNU Affero General Public -License,]&] -[s0; [C0 section 13, concerning interaction through a network will -apply to the]&] -[s0; [C0 combination as such.]&] -[s0;C0 &] -[s0; [C0 14. Revised Versions of this License.]&] -[s0;C0 &] -[s0; [C0 The Free Software Foundation may publish revised and/or -new versions of]&] -[s0; [C0 the GNU General Public License from time to time. Such new -versions will]&] -[s0; [C0 be similar in spirit to the present version, but may differ -in detail to]&] -[s0; [C0 address new problems or concerns.]&] -[s0;C0 &] -[s0; [C0 Each version is given a distinguishing version number. -If the]&] -[s0; [C0 Program specifies that a certain numbered version of the GNU -General]&] -[s0; [C0 Public License `"or any later version`" applies to it, you -have the]&] -[s0; [C0 option of following the terms and conditions either of that -numbered]&] -[s0; [C0 version or of any later version published by the Free Software]&] -[s0; [C0 Foundation. If the Program does not specify a version number -of the]&] -[s0; [C0 GNU General Public License, you may choose any version ever -published]&] -[s0; [C0 by the Free Software Foundation.]&] -[s0;C0 &] -[s0; [C0 If the Program specifies that a proxy can decide which future]&] -[s0; [C0 versions of the GNU General Public License can be used, that -proxy`'s]&] -[s0; [C0 public statement of acceptance of a version permanently authorizes -you]&] -[s0; [C0 to choose that version for the Program.]&] -[s0;C0 &] -[s0; [C0 Later license versions may give you additional or different]&] -[s0; [C0 permissions. However, no additional obligations are imposed -on any]&] -[s0; [C0 author or copyright holder as a result of your choosing to -follow a]&] -[s0; [C0 later version.]&] -[s0;C0 &] -[s0; [C0 15. Disclaimer of Warranty.]&] -[s0;C0 &] -[s0; [C0 THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED -BY]&] -[s0; [C0 APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE -COPYRIGHT]&] -[s0; [C0 HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM `"AS IS`" -WITHOUT WARRANTY]&] -[s0; [C0 OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT -LIMITED TO,]&] -[s0; [C0 THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR]&] -[s0; [C0 PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE -OF THE PROGRAM]&] -[s0; [C0 IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME -THE COST OF]&] -[s0; [C0 ALL NECESSARY SERVICING, REPAIR OR CORRECTION.]&] -[s0;C0 &] -[s0; [C0 16. Limitation of Liability.]&] -[s0;C0 &] -[s0; [C0 IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED -TO IN WRITING]&] -[s0; [C0 WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES -AND/OR CONVEYS]&] -[s0; [C0 THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY]&] -[s0; [C0 GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE]&] -[s0; [C0 USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF]&] -[s0; [C0 DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED -BY YOU OR THIRD]&] -[s0; [C0 PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS),]&] -[s0; [C0 EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF]&] -[s0; [C0 SUCH DAMAGES.]&] -[s0;C0 &] -[s0; [C0 17. Interpretation of Sections 15 and 16.]&] -[s0;C0 &] -[s0; [C0 If the disclaimer of warranty and limitation of liability -provided]&] -[s0; [C0 above cannot be given local legal effect according to their -terms,]&] -[s0; [C0 reviewing courts shall apply local law that most closely approximates]&] -[s0; [C0 an absolute waiver of all civil liability in connection with -the]&] -[s0; [C0 Program, unless a warranty or assumption of liability accompanies -a]&] -[s0; [C0 copy of the Program in return for a fee.]&] -[s0;C0 &] -[s0; [C0 END OF TERMS AND CONDITIONS]&] -[s0;C0 &] -[s0; [C0 How to Apply These Terms to Your New Programs]&] -[s0;C0 &] -[s0; [C0 If you develop a new program, and you want it to be of the -greatest]&] -[s0; [C0 possible use to the public, the best way to achieve this is -to make it]&] -[s0; [C0 free software which everyone can redistribute and change under -these terms.]&] -[s0;C0 &] -[s0; [C0 To do so, attach the following notices to the program. -It is safest]&] -[s0; [C0 to attach them to the start of each source file to most effectively]&] -[s0; [C0 state the exclusion of warranty; and each file should have -at least]&] -[s0; [C0 the `"copyright`" line and a pointer to where the full notice -is found.]&] -[s0;C0 &] -[s0; [C0 ]&] -[s0; [C0 Copyright (C) ]&] -[s0;C0 &] -[s0; [C0 This program is free software: you can redistribute it -and/or modify]&] -[s0; [C0 it under the terms of the GNU General Public License as -published by]&] -[s0; [C0 the Free Software Foundation, either version 3 of the -License, or]&] -[s0; [C0 (at your option) any later version.]&] -[s0;C0 &] -[s0; [C0 This program is distributed in the hope that it will be -useful,]&] -[s0; [C0 but WITHOUT ANY WARRANTY; without even the implied warranty -of]&] -[s0; [C0 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -See the]&] -[s0; [C0 GNU General Public License for more details.]&] -[s0;C0 &] -[s0; [C0 You should have received a copy of the GNU General Public -License]&] -[s0; [C0 along with this program. If not, see .]&] -[s0;C0 &] -[s0; [C0 Also add information on how to contact you by electronic and -paper mail.]&] -[s0;C0 &] -[s0; [C0 If the program does terminal interaction, make it output -a short]&] -[s0; [C0 notice like this when it starts in an interactive mode:]&] -[s0;C0 &] -[s0; [C0 Copyright (C) ]&] -[s0; [C0 This program comes with ABSOLUTELY NO WARRANTY; for details -type ``show w`'.]&] -[s0; [C0 This is free software, and you are welcome to redistribute -it]&] -[s0; [C0 under certain conditions; type ``show c`' for details.]&] -[s0;C0 &] -[s0; [C0 The hypothetical commands ``show w`' and ``show c`' should -show the appropriate]&] -[s0; [C0 parts of the General Public License. Of course, your program`'s -commands]&] -[s0; [C0 might be different; for a GUI interface, you would use an -`"about box`".]&] -[s0;C0 &] -[s0; [C0 You should also get your employer (if you work as a programmer) -or school,]&] -[s0; [C0 if any, to sign a `"copyright disclaimer`" for the program, -if necessary.]&] -[s0; [C0 For more information on this, and how to apply and follow -the GNU GPL, see]&] -[s0; [C0 .]&] -[s0;C0 &] -[s0; [C0 The GNU General Public License does not permit incorporating -your program]&] -[s0; [C0 into proprietary programs. If your program is a subroutine -library, you]&] -[s0; [C0 may consider it more useful to permit linking proprietary -applications with]&] -[s0; [C0 the library. If this is what you want to do, use the GNU -Lesser General]&] -[s0; [C0 Public License instead of this License. But first, please -read]&] -[s0; [C0 .]&] -[s0;C0 ]}}&] -[s0;C0 &] -[s0; [C0 GDB]&] -[ {{10000@(255.255.192) [s0; [C0 GNU GENERAL PUBLIC LICENSE]&] -[s0; [C0 Version 3, 29 June 2007]&] -[s0;C0 &] -[s0; [C0 Copyright (C) 2007 Free Software Foundation, Inc. ]&] -[s0; [C0 Everyone is permitted to copy and distribute verbatim copies]&] -[s0; [C0 of this license document, but changing it is not allowed.]&] -[s0;C0 &] -[s0; [C0 Preamble]&] -[s0;C0 &] -[s0; [C0 The GNU General Public License is a free, copyleft license -for]&] -[s0; [C0 software and other kinds of works.]&] -[s0;C0 &] -[s0; [C0 The licenses for most software and other practical works -are designed]&] -[s0; [C0 to take away your freedom to share and change the works. -By contrast,]&] -[s0; [C0 the GNU General Public License is intended to guarantee your -freedom to]&] -[s0; [C0 share and change all versions of a program`-`-to make sure -it remains free]&] -[s0; [C0 software for all its users. We, the Free Software Foundation, -use the]&] -[s0; [C0 GNU General Public License for most of our software; it applies -also to]&] -[s0; [C0 any other work released this way by its authors. You can -apply it to]&] -[s0; [C0 your programs, too.]&] -[s0;C0 &] -[s0; [C0 When we speak of free software, we are referring to freedom, -not]&] -[s0; [C0 price. Our General Public Licenses are designed to make sure -that you]&] -[s0; [C0 have the freedom to distribute copies of free software (and -charge for]&] -[s0; [C0 them if you wish), that you receive source code or can get -it if you]&] -[s0; [C0 want it, that you can change the software or use pieces of -it in new]&] -[s0; [C0 free programs, and that you know you can do these things.]&] -[s0;C0 &] -[s0; [C0 To protect your rights, we need to prevent others from denying -you]&] -[s0; [C0 these rights or asking you to surrender the rights. Therefore, -you have]&] -[s0; [C0 certain responsibilities if you distribute copies of the software, -or if]&] -[s0; [C0 you modify it: responsibilities to respect the freedom of others.]&] -[s0;C0 &] -[s0; [C0 For example, if you distribute copies of such a program, -whether]&] -[s0; [C0 gratis or for a fee, you must pass on to the recipients the -same]&] -[s0; [C0 freedoms that you received. You must make sure that they, -too, receive]&] -[s0; [C0 or can get the source code. And you must show them these -terms so they]&] -[s0; [C0 know their rights.]&] -[s0;C0 &] -[s0; [C0 Developers that use the GNU GPL protect your rights with -two steps:]&] -[s0; [C0 (1) assert copyright on the software, and (2) offer you this -License]&] -[s0; [C0 giving you legal permission to copy, distribute and/or modify -it.]&] -[s0;C0 &] -[s0; [C0 For the developers`' and authors`' protection, the GPL clearly -explains]&] -[s0; [C0 that there is no warranty for this free software. For both -users`' and]&] -[s0; [C0 authors`' sake, the GPL requires that modified versions be -marked as]&] -[s0; [C0 changed, so that their problems will not be attributed erroneously -to]&] -[s0; [C0 authors of previous versions.]&] -[s0;C0 &] -[s0; [C0 Some devices are designed to deny users access to install -or run]&] -[s0; [C0 modified versions of the software inside them, although the -manufacturer]&] -[s0; [C0 can do so. This is fundamentally incompatible with the aim -of]&] -[s0; [C0 protecting users`' freedom to change the software. The systematic]&] -[s0; [C0 pattern of such abuse occurs in the area of products for individuals -to]&] -[s0; [C0 use, which is precisely where it is most unacceptable. Therefore, -we]&] -[s0; [C0 have designed this version of the GPL to prohibit the practice -for those]&] -[s0; [C0 products. If such problems arise substantially in other domains, -we]&] -[s0; [C0 stand ready to extend this provision to those domains in future -versions]&] -[s0; [C0 of the GPL, as needed to protect the freedom of users.]&] -[s0;C0 &] -[s0; [C0 Finally, every program is threatened constantly by software -patents.]&] -[s0; [C0 States should not allow patents to restrict development and -use of]&] -[s0; [C0 software on general`-purpose computers, but in those that -do, we wish to]&] -[s0; [C0 avoid the special danger that patents applied to a free program -could]&] -[s0; [C0 make it effectively proprietary. To prevent this, the GPL -assures that]&] -[s0; [C0 patents cannot be used to render the program non`-free.]&] -[s0;C0 &] -[s0; [C0 The precise terms and conditions for copying, distribution -and]&] -[s0; [C0 modification follow.]&] -[s0;C0 &] -[s0; [C0 TERMS AND CONDITIONS]&] -[s0;C0 &] -[s0; [C0 0. Definitions.]&] -[s0;C0 &] -[s0; [C0 `"This License`" refers to version 3 of the GNU General -Public License.]&] -[s0;C0 &] -[s0; [C0 `"Copyright`" also means copyright`-like laws that apply -to other kinds of]&] -[s0; [C0 works, such as semiconductor masks.]&] -[s0;C0 &] -[s0; [C0 `"The Program`" refers to any copyrightable work licensed -under this]&] -[s0; [C0 License. Each licensee is addressed as `"you`". `"Licensees`" -and]&] -[s0; [C0 `"recipients`" may be individuals or organizations.]&] -[s0;C0 &] -[s0; [C0 To `"modify`" a work means to copy from or adapt all or -part of the work]&] -[s0; [C0 in a fashion requiring copyright permission, other than the -making of an]&] -[s0; [C0 exact copy. The resulting work is called a `"modified version`" -of the]&] -[s0; [C0 earlier work or a work `"based on`" the earlier work.]&] -[s0;C0 &] -[s0; [C0 A `"covered work`" means either the unmodified Program or -a work based]&] -[s0; [C0 on the Program.]&] -[s0;C0 &] -[s0; [C0 To `"propagate`" a work means to do anything with it that, -without]&] -[s0; [C0 permission, would make you directly or secondarily liable -for]&] -[s0; [C0 infringement under applicable copyright law, except executing -it on a]&] -[s0; [C0 computer or modifying a private copy. Propagation includes -copying,]&] -[s0; [C0 distribution (with or without modification), making available -to the]&] -[s0; [C0 public, and in some countries other activities as well.]&] -[s0;C0 &] -[s0; [C0 To `"convey`" a work means any kind of propagation that -enables other]&] -[s0; [C0 parties to make or receive copies. Mere interaction with -a user through]&] -[s0; [C0 a computer network, with no transfer of a copy, is not conveying.]&] -[s0;C0 &] -[s0; [C0 An interactive user interface displays `"Appropriate Legal -Notices`"]&] -[s0; [C0 to the extent that it includes a convenient and prominently -visible]&] -[s0; [C0 feature that (1) displays an appropriate copyright notice, -and (2)]&] -[s0; [C0 tells the user that there is no warranty for the work (except -to the]&] -[s0; [C0 extent that warranties are provided), that licensees may convey -the]&] -[s0; [C0 work under this License, and how to view a copy of this License. - If]&] -[s0; [C0 the interface presents a list of user commands or options, -such as a]&] -[s0; [C0 menu, a prominent item in the list meets this criterion.]&] -[s0;C0 &] -[s0; [C0 1. Source Code.]&] -[s0;C0 &] -[s0; [C0 The `"source code`" for a work means the preferred form -of the work]&] -[s0; [C0 for making modifications to it. `"Object code`" means any -non`-source]&] -[s0; [C0 form of a work.]&] -[s0;C0 &] -[s0; [C0 A `"Standard Interface`" means an interface that either -is an official]&] -[s0; [C0 standard defined by a recognized standards body, or, in the -case of]&] -[s0; [C0 interfaces specified for a particular programming language, -one that]&] -[s0; [C0 is widely used among developers working in that language.]&] -[s0;C0 &] -[s0; [C0 The `"System Libraries`" of an executable work include anything, -other]&] -[s0; [C0 than the work as a whole, that (a) is included in the normal -form of]&] -[s0; [C0 packaging a Major Component, but which is not part of that -Major]&] -[s0; [C0 Component, and (b) serves only to enable use of the work with -that]&] -[s0; [C0 Major Component, or to implement a Standard Interface for -which an]&] -[s0; [C0 implementation is available to the public in source code form. - A]&] -[s0; [C0 `"Major Component`", in this context, means a major essential -component]&] -[s0; [C0 (kernel, window system, and so on) of the specific operating -system]&] -[s0; [C0 (if any) on which the executable work runs, or a compiler -used to]&] -[s0; [C0 produce the work, or an object code interpreter used to run -it.]&] -[s0;C0 &] -[s0; [C0 The `"Corresponding Source`" for a work in object code form -means all]&] -[s0; [C0 the source code needed to generate, install, and (for an executable]&] -[s0; [C0 work) run the object code and to modify the work, including -scripts to]&] -[s0; [C0 control those activities. However, it does not include the -work`'s]&] -[s0; [C0 System Libraries, or general`-purpose tools or generally available -free]&] -[s0; [C0 programs which are used unmodified in performing those activities -but]&] -[s0; [C0 which are not part of the work. For example, Corresponding -Source]&] -[s0; [C0 includes interface definition files associated with source -files for]&] -[s0; [C0 the work, and the source code for shared libraries and dynamically]&] -[s0; [C0 linked subprograms that the work is specifically designed -to require,]&] -[s0; [C0 such as by intimate data communication or control flow between -those]&] -[s0; [C0 subprograms and other parts of the work.]&] -[s0;C0 &] -[s0; [C0 The Corresponding Source need not include anything that -users]&] -[s0; [C0 can regenerate automatically from other parts of the Corresponding]&] -[s0; [C0 Source.]&] -[s0;C0 &] -[s0; [C0 The Corresponding Source for a work in source code form -is that]&] -[s0; [C0 same work.]&] -[s0;C0 &] -[s0; [C0 2. Basic Permissions.]&] -[s0;C0 &] -[s0; [C0 All rights granted under this License are granted for the -term of]&] -[s0; [C0 copyright on the Program, and are irrevocable provided the -stated]&] -[s0; [C0 conditions are met. This License explicitly affirms your -unlimited]&] -[s0; [C0 permission to run the unmodified Program. The output from -running a]&] -[s0; [C0 covered work is covered by this License only if the output, -given its]&] -[s0; [C0 content, constitutes a covered work. This License acknowledges -your]&] -[s0; [C0 rights of fair use or other equivalent, as provided by copyright -law.]&] -[s0;C0 &] -[s0; [C0 You may make, run and propagate covered works that you do -not]&] -[s0; [C0 convey, without conditions so long as your license otherwise -remains]&] -[s0; [C0 in force. You may convey covered works to others for the -sole purpose]&] -[s0; [C0 of having them make modifications exclusively for you, or -provide you]&] -[s0; [C0 with facilities for running those works, provided that you -comply with]&] -[s0; [C0 the terms of this License in conveying all material for which -you do]&] -[s0; [C0 not control copyright. Those thus making or running the covered -works]&] -[s0; [C0 for you must do so exclusively on your behalf, under your -direction]&] -[s0; [C0 and control, on terms that prohibit them from making any copies -of]&] -[s0; [C0 your copyrighted material outside their relationship with -you.]&] -[s0;C0 &] -[s0; [C0 Conveying under any other circumstances is permitted solely -under]&] -[s0; [C0 the conditions stated below. Sublicensing is not allowed; -section 10]&] -[s0; [C0 makes it unnecessary.]&] -[s0;C0 &] -[s0; [C0 3. Protecting Users`' Legal Rights From Anti`-Circumvention -Law.]&] -[s0;C0 &] -[s0; [C0 No covered work shall be deemed part of an effective technological]&] -[s0; [C0 measure under any applicable law fulfilling obligations under -article]&] -[s0; [C0 11 of the WIPO copyright treaty adopted on 20 December 1996, -or]&] -[s0; [C0 similar laws prohibiting or restricting circumvention of such]&] -[s0; [C0 measures.]&] -[s0;C0 &] -[s0; [C0 When you convey a covered work, you waive any legal power -to forbid]&] -[s0; [C0 circumvention of technological measures to the extent such -circumvention]&] -[s0; [C0 is effected by exercising rights under this License with respect -to]&] -[s0; [C0 the covered work, and you disclaim any intention to limit -operation or]&] -[s0; [C0 modification of the work as a means of enforcing, against -the work`'s]&] -[s0; [C0 users, your or third parties`' legal rights to forbid circumvention -of]&] -[s0; [C0 technological measures.]&] -[s0;C0 &] -[s0; [C0 4. Conveying Verbatim Copies.]&] -[s0;C0 &] -[s0; [C0 You may convey verbatim copies of the Program`'s source -code as you]&] -[s0; [C0 receive it, in any medium, provided that you conspicuously -and]&] -[s0; [C0 appropriately publish on each copy an appropriate copyright -notice;]&] -[s0; [C0 keep intact all notices stating that this License and any]&] -[s0; [C0 non`-permissive terms added in accord with section 7 apply -to the code;]&] -[s0; [C0 keep intact all notices of the absence of any warranty; and -give all]&] -[s0; [C0 recipients a copy of this License along with the Program.]&] -[s0;C0 &] -[s0; [C0 You may charge any price or no price for each copy that -you convey,]&] -[s0; [C0 and you may offer support or warranty protection for a fee.]&] -[s0;C0 &] -[s0; [C0 5. Conveying Modified Source Versions.]&] -[s0;C0 &] -[s0; [C0 You may convey a work based on the Program, or the modifications -to]&] -[s0; [C0 produce it from the Program, in the form of source code under -the]&] -[s0; [C0 terms of section 4, provided that you also meet all of these -conditions:]&] -[s0;C0 &] -[s0; [C0 a) The work must carry prominent notices stating that -you modified]&] -[s0; [C0 it, and giving a relevant date.]&] -[s0;C0 &] -[s0; [C0 b) The work must carry prominent notices stating that -it is]&] -[s0; [C0 released under this License and any conditions added under -section]&] -[s0; [C0 7. This requirement modifies the requirement in section -4 to]&] -[s0; [C0 `"keep intact all notices`".]&] -[s0;C0 &] -[s0; [C0 c) You must license the entire work, as a whole, under -this]&] -[s0; [C0 License to anyone who comes into possession of a copy. - This]&] -[s0; [C0 License will therefore apply, along with any applicable -section 7]&] -[s0; [C0 additional terms, to the whole of the work, and all its -parts,]&] -[s0; [C0 regardless of how they are packaged. This License gives -no]&] -[s0; [C0 permission to license the work in any other way, but it -does not]&] -[s0; [C0 invalidate such permission if you have separately received -it.]&] -[s0;C0 &] -[s0; [C0 d) If the work has interactive user interfaces, each must -display]&] -[s0; [C0 Appropriate Legal Notices; however, if the Program has -interactive]&] -[s0; [C0 interfaces that do not display Appropriate Legal Notices, -your]&] -[s0; [C0 work need not make them do so.]&] -[s0;C0 &] -[s0; [C0 A compilation of a covered work with other separate and -independent]&] -[s0; [C0 works, which are not by their nature extensions of the covered -work,]&] -[s0; [C0 and which are not combined with it such as to form a larger -program,]&] -[s0; [C0 in or on a volume of a storage or distribution medium, is -called an]&] -[s0; [C0 `"aggregate`" if the compilation and its resulting copyright -are not]&] -[s0; [C0 used to limit the access or legal rights of the compilation`'s -users]&] -[s0; [C0 beyond what the individual works permit. Inclusion of a covered -work]&] -[s0; [C0 in an aggregate does not cause this License to apply to the -other]&] -[s0; [C0 parts of the aggregate.]&] -[s0;C0 &] -[s0; [C0 6. Conveying Non`-Source Forms.]&] -[s0;C0 &] -[s0; [C0 You may convey a covered work in object code form under -the terms]&] -[s0; [C0 of sections 4 and 5, provided that you also convey the]&] -[s0; [C0 machine`-readable Corresponding Source under the terms of -this License,]&] -[s0; [C0 in one of these ways:]&] -[s0;C0 &] -[s0; [C0 a) Convey the object code in, or embodied in, a physical -product]&] -[s0; [C0 (including a physical distribution medium), accompanied -by the]&] -[s0; [C0 Corresponding Source fixed on a durable physical medium]&] -[s0; [C0 customarily used for software interchange.]&] -[s0;C0 &] -[s0; [C0 b) Convey the object code in, or embodied in, a physical -product]&] -[s0; [C0 (including a physical distribution medium), accompanied -by a]&] -[s0; [C0 written offer, valid for at least three years and valid -for as]&] -[s0; [C0 long as you offer spare parts or customer support for -that product]&] -[s0; [C0 model, to give anyone who possesses the object code either -(1) a]&] -[s0; [C0 copy of the Corresponding Source for all the software -in the]&] -[s0; [C0 product that is covered by this License, on a durable -physical]&] -[s0; [C0 medium customarily used for software interchange, for -a price no]&] -[s0; [C0 more than your reasonable cost of physically performing -this]&] -[s0; [C0 conveying of source, or (2) access to copy the]&] -[s0; [C0 Corresponding Source from a network server at no charge.]&] -[s0;C0 &] -[s0; [C0 c) Convey individual copies of the object code with a -copy of the]&] -[s0; [C0 written offer to provide the Corresponding Source. This]&] -[s0; [C0 alternative is allowed only occasionally and noncommercially, -and]&] -[s0; [C0 only if you received the object code with such an offer, -in accord]&] -[s0; [C0 with subsection 6b.]&] -[s0;C0 &] -[s0; [C0 d) Convey the object code by offering access from a designated]&] -[s0; [C0 place (gratis or for a charge), and offer equivalent access -to the]&] -[s0; [C0 Corresponding Source in the same way through the same -place at no]&] -[s0; [C0 further charge. You need not require recipients to copy -the]&] -[s0; [C0 Corresponding Source along with the object code. If the -place to]&] -[s0; [C0 copy the object code is a network server, the Corresponding -Source]&] -[s0; [C0 may be on a different server (operated by you or a third -party)]&] -[s0; [C0 that supports equivalent copying facilities, provided -you maintain]&] -[s0; [C0 clear directions next to the object code saying where -to find the]&] -[s0; [C0 Corresponding Source. Regardless of what server hosts -the]&] -[s0; [C0 Corresponding Source, you remain obligated to ensure that -it is]&] -[s0; [C0 available for as long as needed to satisfy these requirements.]&] -[s0;C0 &] -[s0; [C0 e) Convey the object code using peer`-to`-peer transmission, -provided]&] -[s0; [C0 you inform other peers where the object code and Corresponding]&] -[s0; [C0 Source of the work are being offered to the general public -at no]&] -[s0; [C0 charge under subsection 6d.]&] -[s0;C0 &] -[s0; [C0 A separable portion of the object code, whose source code -is excluded]&] -[s0; [C0 from the Corresponding Source as a System Library, need not -be]&] -[s0; [C0 included in conveying the object code work.]&] -[s0;C0 &] -[s0; [C0 A `"User Product`" is either (1) a `"consumer product`", -which means any]&] -[s0; [C0 tangible personal property which is normally used for personal, -family,]&] -[s0; [C0 or household purposes, or (2) anything designed or sold for -incorporation]&] -[s0; [C0 into a dwelling. In determining whether a product is a consumer -product,]&] -[s0; [C0 doubtful cases shall be resolved in favor of coverage. For -a particular]&] -[s0; [C0 product received by a particular user, `"normally used`" refers -to a]&] -[s0; [C0 typical or common use of that class of product, regardless -of the status]&] -[s0; [C0 of the particular user or of the way in which the particular -user]&] -[s0; [C0 actually uses, or expects or is expected to use, the product. - A product]&] -[s0; [C0 is a consumer product regardless of whether the product has -substantial]&] -[s0; [C0 commercial, industrial or non`-consumer uses, unless such -uses represent]&] -[s0; [C0 the only significant mode of use of the product.]&] -[s0;C0 &] -[s0; [C0 `"Installation Information`" for a User Product means any -methods,]&] -[s0; [C0 procedures, authorization keys, or other information required -to install]&] -[s0; [C0 and execute modified versions of a covered work in that User -Product from]&] -[s0; [C0 a modified version of its Corresponding Source. The information -must]&] -[s0; [C0 suffice to ensure that the continued functioning of the modified -object]&] -[s0; [C0 code is in no case prevented or interfered with solely because]&] -[s0; [C0 modification has been made.]&] -[s0;C0 &] -[s0; [C0 If you convey an object code work under this section in, -or with, or]&] -[s0; [C0 specifically for use in, a User Product, and the conveying -occurs as]&] -[s0; [C0 part of a transaction in which the right of possession and -use of the]&] -[s0; [C0 User Product is transferred to the recipient in perpetuity -or for a]&] -[s0; [C0 fixed term (regardless of how the transaction is characterized), -the]&] -[s0; [C0 Corresponding Source conveyed under this section must be accompanied]&] -[s0; [C0 by the Installation Information. But this requirement does -not apply]&] -[s0; [C0 if neither you nor any third party retains the ability to -install]&] -[s0; [C0 modified object code on the User Product (for example, the -work has]&] -[s0; [C0 been installed in ROM).]&] -[s0;C0 &] -[s0; [C0 The requirement to provide Installation Information does -not include a]&] -[s0; [C0 requirement to continue to provide support service, warranty, -or updates]&] -[s0; [C0 for a work that has been modified or installed by the recipient, -or for]&] -[s0; [C0 the User Product in which it has been modified or installed. - Access to a]&] -[s0; [C0 network may be denied when the modification itself materially -and]&] -[s0; [C0 adversely affects the operation of the network or violates -the rules and]&] -[s0; [C0 protocols for communication across the network.]&] -[s0;C0 &] -[s0; [C0 Corresponding Source conveyed, and Installation Information -provided,]&] -[s0; [C0 in accord with this section must be in a format that is publicly]&] -[s0; [C0 documented (and with an implementation available to the public -in]&] -[s0; [C0 source code form), and must require no special password or -key for]&] -[s0; [C0 unpacking, reading or copying.]&] -[s0;C0 &] -[s0; [C0 7. Additional Terms.]&] -[s0;C0 &] -[s0; [C0 `"Additional permissions`" are terms that supplement the -terms of this]&] -[s0; [C0 License by making exceptions from one or more of its conditions.]&] -[s0; [C0 Additional permissions that are applicable to the entire Program -shall]&] -[s0; [C0 be treated as though they were included in this License, to -the extent]&] -[s0; [C0 that they are valid under applicable law. If additional permissions]&] -[s0; [C0 apply only to part of the Program, that part may be used separately]&] -[s0; [C0 under those permissions, but the entire Program remains governed -by]&] -[s0; [C0 this License without regard to the additional permissions.]&] -[s0;C0 &] -[s0; [C0 When you convey a copy of a covered work, you may at your -option]&] -[s0; [C0 remove any additional permissions from that copy, or from -any part of]&] -[s0; [C0 it. (Additional permissions may be written to require their -own]&] -[s0; [C0 removal in certain cases when you modify the work.) You may -place]&] -[s0; [C0 additional permissions on material, added by you to a covered -work,]&] -[s0; [C0 for which you have or can give appropriate copyright permission.]&] -[s0;C0 &] -[s0; [C0 Notwithstanding any other provision of this License, for -material you]&] -[s0; [C0 add to a covered work, you may (if authorized by the copyright -holders of]&] -[s0; [C0 that material) supplement the terms of this License with terms:]&] -[s0;C0 &] -[s0; [C0 a) Disclaiming warranty or limiting liability differently -from the]&] -[s0; [C0 terms of sections 15 and 16 of this License; or]&] -[s0;C0 &] -[s0; [C0 b) Requiring preservation of specified reasonable legal -notices or]&] -[s0; [C0 author attributions in that material or in the Appropriate -Legal]&] -[s0; [C0 Notices displayed by works containing it; or]&] -[s0;C0 &] -[s0; [C0 c) Prohibiting misrepresentation of the origin of that -material, or]&] -[s0; [C0 requiring that modified versions of such material be marked -in]&] -[s0; [C0 reasonable ways as different from the original version; -or]&] -[s0;C0 &] -[s0; [C0 d) Limiting the use for publicity purposes of names of -licensors or]&] -[s0; [C0 authors of the material; or]&] -[s0;C0 &] -[s0; [C0 e) Declining to grant rights under trademark law for use -of some]&] -[s0; [C0 trade names, trademarks, or service marks; or]&] -[s0;C0 &] -[s0; [C0 f) Requiring indemnification of licensors and authors -of that]&] -[s0; [C0 material by anyone who conveys the material (or modified -versions of]&] -[s0; [C0 it) with contractual assumptions of liability to the recipient, -for]&] -[s0; [C0 any liability that these contractual assumptions directly -impose on]&] -[s0; [C0 those licensors and authors.]&] -[s0;C0 &] -[s0; [C0 All other non`-permissive additional terms are considered -`"further]&] -[s0; [C0 restrictions`" within the meaning of section 10. If the Program -as you]&] -[s0; [C0 received it, or any part of it, contains a notice stating -that it is]&] -[s0; [C0 governed by this License along with a term that is a further]&] -[s0; [C0 restriction, you may remove that term. If a license document -contains]&] -[s0; [C0 a further restriction but permits relicensing or conveying -under this]&] -[s0; [C0 License, you may add to a covered work material governed by -the terms]&] -[s0; [C0 of that license document, provided that the further restriction -does]&] -[s0; [C0 not survive such relicensing or conveying.]&] -[s0;C0 &] -[s0; [C0 If you add terms to a covered work in accord with this section, -you]&] -[s0; [C0 must place, in the relevant source files, a statement of the]&] -[s0; [C0 additional terms that apply to those files, or a notice indicating]&] -[s0; [C0 where to find the applicable terms.]&] -[s0;C0 &] -[s0; [C0 Additional terms, permissive or non`-permissive, may be -stated in the]&] -[s0; [C0 form of a separately written license, or stated as exceptions;]&] -[s0; [C0 the above requirements apply either way.]&] -[s0;C0 &] -[s0; [C0 8. Termination.]&] -[s0;C0 &] -[s0; [C0 You may not propagate or modify a covered work except as -expressly]&] -[s0; [C0 provided under this License. Any attempt otherwise to propagate -or]&] -[s0; [C0 modify it is void, and will automatically terminate your rights -under]&] -[s0; [C0 this License (including any patent licenses granted under -the third]&] -[s0; [C0 paragraph of section 11).]&] -[s0;C0 &] -[s0; [C0 However, if you cease all violation of this License, then -your]&] -[s0; [C0 license from a particular copyright holder is reinstated (a)]&] -[s0; [C0 provisionally, unless and until the copyright holder explicitly -and]&] -[s0; [C0 finally terminates your license, and (b) permanently, if the -copyright]&] -[s0; [C0 holder fails to notify you of the violation by some reasonable -means]&] -[s0; [C0 prior to 60 days after the cessation.]&] -[s0;C0 &] -[s0; [C0 Moreover, your license from a particular copyright holder -is]&] -[s0; [C0 reinstated permanently if the copyright holder notifies you -of the]&] -[s0; [C0 violation by some reasonable means, this is the first time -you have]&] -[s0; [C0 received notice of violation of this License (for any work) -from that]&] -[s0; [C0 copyright holder, and you cure the violation prior to 30 days -after]&] -[s0; [C0 your receipt of the notice.]&] -[s0;C0 &] -[s0; [C0 Termination of your rights under this section does not terminate -the]&] -[s0; [C0 licenses of parties who have received copies or rights from -you under]&] -[s0; [C0 this License. If your rights have been terminated and not -permanently]&] -[s0; [C0 reinstated, you do not qualify to receive new licenses for -the same]&] -[s0; [C0 material under section 10.]&] -[s0;C0 &] -[s0; [C0 9. Acceptance Not Required for Having Copies.]&] -[s0;C0 &] -[s0; [C0 You are not required to accept this License in order to -receive or]&] -[s0; [C0 run a copy of the Program. Ancillary propagation of a covered -work]&] -[s0; [C0 occurring solely as a consequence of using peer`-to`-peer -transmission]&] -[s0; [C0 to receive a copy likewise does not require acceptance. However,]&] -[s0; [C0 nothing other than this License grants you permission to propagate -or]&] -[s0; [C0 modify any covered work. These actions infringe copyright -if you do]&] -[s0; [C0 not accept this License. Therefore, by modifying or propagating -a]&] -[s0; [C0 covered work, you indicate your acceptance of this License -to do so.]&] -[s0;C0 &] -[s0; [C0 10. Automatic Licensing of Downstream Recipients.]&] -[s0;C0 &] -[s0; [C0 Each time you convey a covered work, the recipient automatically]&] -[s0; [C0 receives a license from the original licensors, to run, modify -and]&] -[s0; [C0 propagate that work, subject to this License. You are not -responsible]&] -[s0; [C0 for enforcing compliance by third parties with this License.]&] -[s0;C0 &] -[s0; [C0 An `"entity transaction`" is a transaction transferring -control of an]&] -[s0; [C0 organization, or substantially all assets of one, or subdividing -an]&] -[s0; [C0 organization, or merging organizations. If propagation of -a covered]&] -[s0; [C0 work results from an entity transaction, each party to that]&] -[s0; [C0 transaction who receives a copy of the work also receives -whatever]&] -[s0; [C0 licenses to the work the party`'s predecessor in interest -had or could]&] -[s0; [C0 give under the previous paragraph, plus a right to possession -of the]&] -[s0; [C0 Corresponding Source of the work from the predecessor in interest, -if]&] -[s0; [C0 the predecessor has it or can get it with reasonable efforts.]&] -[s0;C0 &] -[s0; [C0 You may not impose any further restrictions on the exercise -of the]&] -[s0; [C0 rights granted or affirmed under this License. For example, -you may]&] -[s0; [C0 not impose a license fee, royalty, or other charge for exercise -of]&] -[s0; [C0 rights granted under this License, and you may not initiate -litigation]&] -[s0; [C0 (including a cross`-claim or counterclaim in a lawsuit) alleging -that]&] -[s0; [C0 any patent claim is infringed by making, using, selling, offering -for]&] -[s0; [C0 sale, or importing the Program or any portion of it.]&] -[s0;C0 &] -[s0; [C0 11. Patents.]&] -[s0;C0 &] -[s0; [C0 A `"contributor`" is a copyright holder who authorizes use -under this]&] -[s0; [C0 License of the Program or a work on which the Program is based. - The]&] -[s0; [C0 work thus licensed is called the contributor`'s `"contributor -version`".]&] -[s0;C0 &] -[s0; [C0 A contributor`'s `"essential patent claims`" are all patent -claims]&] -[s0; [C0 owned or controlled by the contributor, whether already acquired -or]&] -[s0; [C0 hereafter acquired, that would be infringed by some manner, -permitted]&] -[s0; [C0 by this License, of making, using, or selling its contributor -version,]&] -[s0; [C0 but do not include claims that would be infringed only as -a]&] -[s0; [C0 consequence of further modification of the contributor version. - For]&] -[s0; [C0 purposes of this definition, `"control`" includes the right -to grant]&] -[s0; [C0 patent sublicenses in a manner consistent with the requirements -of]&] -[s0; [C0 this License.]&] -[s0;C0 &] -[s0; [C0 Each contributor grants you a non`-exclusive, worldwide, -royalty`-free]&] -[s0; [C0 patent license under the contributor`'s essential patent claims, -to]&] -[s0; [C0 make, use, sell, offer for sale, import and otherwise run, -modify and]&] -[s0; [C0 propagate the contents of its contributor version.]&] -[s0;C0 &] -[s0; [C0 In the following three paragraphs, a `"patent license`" -is any express]&] -[s0; [C0 agreement or commitment, however denominated, not to enforce -a patent]&] -[s0; [C0 (such as an express permission to practice a patent or covenant -not to]&] -[s0; [C0 sue for patent infringement). To `"grant`" such a patent -license to a]&] -[s0; [C0 party means to make such an agreement or commitment not to -enforce a]&] -[s0; [C0 patent against the party.]&] -[s0;C0 &] -[s0; [C0 If you convey a covered work, knowingly relying on a patent -license,]&] -[s0; [C0 and the Corresponding Source of the work is not available -for anyone]&] -[s0; [C0 to copy, free of charge and under the terms of this License, -through a]&] -[s0; [C0 publicly available network server or other readily accessible -means,]&] -[s0; [C0 then you must either (1) cause the Corresponding Source to -be so]&] -[s0; [C0 available, or (2) arrange to deprive yourself of the benefit -of the]&] -[s0; [C0 patent license for this particular work, or (3) arrange, in -a manner]&] -[s0; [C0 consistent with the requirements of this License, to extend -the patent]&] -[s0; [C0 license to downstream recipients. `"Knowingly relying`" means -you have]&] -[s0; [C0 actual knowledge that, but for the patent license, your conveying -the]&] -[s0; [C0 covered work in a country, or your recipient`'s use of the -covered work]&] -[s0; [C0 in a country, would infringe one or more identifiable patents -in that]&] -[s0; [C0 country that you have reason to believe are valid.]&] -[s0;C0 &] -[s0; [C0 If, pursuant to or in connection with a single transaction -or]&] -[s0; [C0 arrangement, you convey, or propagate by procuring conveyance -of, a]&] -[s0; [C0 covered work, and grant a patent license to some of the parties]&] -[s0; [C0 receiving the covered work authorizing them to use, propagate, -modify]&] -[s0; [C0 or convey a specific copy of the covered work, then the patent -license]&] -[s0; [C0 you grant is automatically extended to all recipients of the -covered]&] -[s0; [C0 work and works based on it.]&] -[s0;C0 &] -[s0; [C0 A patent license is `"discriminatory`" if it does not include -within]&] -[s0; [C0 the scope of its coverage, prohibits the exercise of, or is]&] -[s0; [C0 conditioned on the non`-exercise of one or more of the rights -that are]&] -[s0; [C0 specifically granted under this License. You may not convey -a covered]&] -[s0; [C0 work if you are a party to an arrangement with a third party -that is]&] -[s0; [C0 in the business of distributing software, under which you -make payment]&] -[s0; [C0 to the third party based on the extent of your activity of -conveying]&] -[s0; [C0 the work, and under which the third party grants, to any of -the]&] -[s0; [C0 parties who would receive the covered work from you, a discriminatory]&] -[s0; [C0 patent license (a) in connection with copies of the covered -work]&] -[s0; [C0 conveyed by you (or copies made from those copies), or (b) -primarily]&] -[s0; [C0 for and in connection with specific products or compilations -that]&] -[s0; [C0 contain the covered work, unless you entered into that arrangement,]&] -[s0; [C0 or that patent license was granted, prior to 28 March 2007.]&] -[s0;C0 &] -[s0; [C0 Nothing in this License shall be construed as excluding -or limiting]&] -[s0; [C0 any implied license or other defenses to infringement that -may]&] -[s0; [C0 otherwise be available to you under applicable patent law.]&] -[s0;C0 &] -[s0; [C0 12. No Surrender of Others`' Freedom.]&] -[s0;C0 &] -[s0; [C0 If conditions are imposed on you (whether by court order, -agreement or]&] -[s0; [C0 otherwise) that contradict the conditions of this License, -they do not]&] -[s0; [C0 excuse you from the conditions of this License. If you cannot -convey a]&] -[s0; [C0 covered work so as to satisfy simultaneously your obligations -under this]&] -[s0; [C0 License and any other pertinent obligations, then as a consequence -you may]&] -[s0; [C0 not convey it at all. For example, if you agree to terms -that obligate you]&] -[s0; [C0 to collect a royalty for further conveying from those to whom -you convey]&] -[s0; [C0 the Program, the only way you could satisfy both those terms -and this]&] -[s0; [C0 License would be to refrain entirely from conveying the Program.]&] -[s0;C0 &] -[s0; [C0 13. Use with the GNU Affero General Public License.]&] -[s0;C0 &] -[s0; [C0 Notwithstanding any other provision of this License, you -have]&] -[s0; [C0 permission to link or combine any covered work with a work -licensed]&] -[s0; [C0 under version 3 of the GNU Affero General Public License into -a single]&] -[s0; [C0 combined work, and to convey the resulting work. The terms -of this]&] -[s0; [C0 License will continue to apply to the part which is the covered -work,]&] -[s0; [C0 but the special requirements of the GNU Affero General Public -License,]&] -[s0; [C0 section 13, concerning interaction through a network will -apply to the]&] -[s0; [C0 combination as such.]&] -[s0;C0 &] -[s0; [C0 14. Revised Versions of this License.]&] -[s0;C0 &] -[s0; [C0 The Free Software Foundation may publish revised and/or -new versions of]&] -[s0; [C0 the GNU General Public License from time to time. Such new -versions will]&] -[s0; [C0 be similar in spirit to the present version, but may differ -in detail to]&] -[s0; [C0 address new problems or concerns.]&] -[s0;C0 &] -[s0; [C0 Each version is given a distinguishing version number. -If the]&] -[s0; [C0 Program specifies that a certain numbered version of the GNU -General]&] -[s0; [C0 Public License `"or any later version`" applies to it, you -have the]&] -[s0; [C0 option of following the terms and conditions either of that -numbered]&] -[s0; [C0 version or of any later version published by the Free Software]&] -[s0; [C0 Foundation. If the Program does not specify a version number -of the]&] -[s0; [C0 GNU General Public License, you may choose any version ever -published]&] -[s0; [C0 by the Free Software Foundation.]&] -[s0;C0 &] -[s0; [C0 If the Program specifies that a proxy can decide which future]&] -[s0; [C0 versions of the GNU General Public License can be used, that -proxy`'s]&] -[s0; [C0 public statement of acceptance of a version permanently authorizes -you]&] -[s0; [C0 to choose that version for the Program.]&] -[s0;C0 &] -[s0; [C0 Later license versions may give you additional or different]&] -[s0; [C0 permissions. However, no additional obligations are imposed -on any]&] -[s0; [C0 author or copyright holder as a result of your choosing to -follow a]&] -[s0; [C0 later version.]&] -[s0;C0 &] -[s0; [C0 15. Disclaimer of Warranty.]&] -[s0;C0 &] -[s0; [C0 THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED -BY]&] -[s0; [C0 APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE -COPYRIGHT]&] -[s0; [C0 HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM `"AS IS`" -WITHOUT WARRANTY]&] -[s0; [C0 OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT -LIMITED TO,]&] -[s0; [C0 THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR]&] -[s0; [C0 PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE -OF THE PROGRAM]&] -[s0; [C0 IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME -THE COST OF]&] -[s0; [C0 ALL NECESSARY SERVICING, REPAIR OR CORRECTION.]&] -[s0;C0 &] -[s0; [C0 16. Limitation of Liability.]&] -[s0;C0 &] -[s0; [C0 IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED -TO IN WRITING]&] -[s0; [C0 WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES -AND/OR CONVEYS]&] -[s0; [C0 THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY]&] -[s0; [C0 GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE]&] -[s0; [C0 USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF]&] -[s0; [C0 DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED -BY YOU OR THIRD]&] -[s0; [C0 PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS),]&] -[s0; [C0 EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF]&] -[s0; [C0 SUCH DAMAGES.]&] -[s0;C0 &] -[s0; [C0 17. Interpretation of Sections 15 and 16.]&] -[s0;C0 &] -[s0; [C0 If the disclaimer of warranty and limitation of liability -provided]&] -[s0; [C0 above cannot be given local legal effect according to their -terms,]&] -[s0; [C0 reviewing courts shall apply local law that most closely approximates]&] -[s0; [C0 an absolute waiver of all civil liability in connection with -the]&] -[s0; [C0 Program, unless a warranty or assumption of liability accompanies -a]&] -[s0; [C0 copy of the Program in return for a fee.]&] -[s0;C0 &] -[s0; [C0 END OF TERMS AND CONDITIONS]&] -[s0;C0 &] -[s0; [C0 How to Apply These Terms to Your New Programs]&] -[s0;C0 &] -[s0; [C0 If you develop a new program, and you want it to be of the -greatest]&] -[s0; [C0 possible use to the public, the best way to achieve this is -to make it]&] -[s0; [C0 free software which everyone can redistribute and change under -these terms.]&] -[s0;C0 &] -[s0; [C0 To do so, attach the following notices to the program. -It is safest]&] -[s0; [C0 to attach them to the start of each source file to most effectively]&] -[s0; [C0 state the exclusion of warranty; and each file should have -at least]&] -[s0; [C0 the `"copyright`" line and a pointer to where the full notice -is found.]&] -[s0;C0 &] -[s0; [C0 ]&] -[s0; [C0 Copyright (C) ]&] -[s0;C0 &] -[s0; [C0 This program is free software: you can redistribute it -and/or modify]&] -[s0; [C0 it under the terms of the GNU General Public License as -published by]&] -[s0; [C0 the Free Software Foundation, either version 3 of the -License, or]&] -[s0; [C0 (at your option) any later version.]&] -[s0;C0 &] -[s0; [C0 This program is distributed in the hope that it will be -useful,]&] -[s0; [C0 but WITHOUT ANY WARRANTY; without even the implied warranty -of]&] -[s0; [C0 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -See the]&] -[s0; [C0 GNU General Public License for more details.]&] -[s0;C0 &] -[s0; [C0 You should have received a copy of the GNU General Public -License]&] -[s0; [C0 along with this program. If not, see .]&] -[s0;C0 &] -[s0; [C0 Also add information on how to contact you by electronic and -paper mail.]&] -[s0;C0 &] -[s0; [C0 If the program does terminal interaction, make it output -a short]&] -[s0; [C0 notice like this when it starts in an interactive mode:]&] -[s0;C0 &] -[s0; [C0 Copyright (C) ]&] -[s0; [C0 This program comes with ABSOLUTELY NO WARRANTY; for details -type ``show w`'.]&] -[s0; [C0 This is free software, and you are welcome to redistribute -it]&] -[s0; [C0 under certain conditions; type ``show c`' for details.]&] -[s0;C0 &] -[s0; [C0 The hypothetical commands ``show w`' and ``show c`' should -show the appropriate]&] -[s0; [C0 parts of the General Public License. Of course, your program`'s -commands]&] -[s0; [C0 might be different; for a GUI interface, you would use an -`"about box`".]&] -[s0;C0 &] -[s0; [C0 You should also get your employer (if you work as a programmer) -or school,]&] -[s0; [C0 if any, to sign a `"copyright disclaimer`" for the program, -if necessary.]&] -[s0; [C0 For more information on this, and how to apply and follow -the GNU GPL, see]&] -[s0; [C0 .]&] -[s0;C0 &] -[s0; [C0 The GNU General Public License does not permit incorporating -your program]&] -[s0; [C0 into proprietary programs. If your program is a subroutine -library, you]&] -[s0; [C0 may consider it more useful to permit linking proprietary -applications with]&] -[s0; [C0 the library. If this is what you want to do, use the GNU -Lesser General]&] -[s0; [C0 Public License instead of this License. But first, please -read]&] -[s0; [C0 .]&] -[s0;C0 ]}}&] -[s0;C0 &] -[s0; [C0 GDB]&] -[ {{10000@(255.255.192) [s0; [C0 GNU GENERAL PUBLIC LICENSE]&] -[s0; [C0 Version 3, 29 June 2007]&] -[s0;C0 &] -[s0; [C0 Copyright (C) 2007 Free Software Foundation, Inc. ]&] -[s0; [C0 Everyone is permitted to copy and distribute verbatim copies]&] -[s0; [C0 of this license document, but changing it is not allowed.]&] -[s0;C0 &] -[s0; [C0 Preamble]&] -[s0;C0 &] -[s0; [C0 The GNU General Public License is a free, copyleft license -for]&] -[s0; [C0 software and other kinds of works.]&] -[s0;C0 &] -[s0; [C0 The licenses for most software and other practical works -are designed]&] -[s0; [C0 to take away your freedom to share and change the works. -By contrast,]&] -[s0; [C0 the GNU General Public License is intended to guarantee your -freedom to]&] -[s0; [C0 share and change all versions of a program`-`-to make sure -it remains free]&] -[s0; [C0 software for all its users. We, the Free Software Foundation, -use the]&] -[s0; [C0 GNU General Public License for most of our software; it applies -also to]&] -[s0; [C0 any other work released this way by its authors. You can -apply it to]&] -[s0; [C0 your programs, too.]&] -[s0;C0 &] -[s0; [C0 When we speak of free software, we are referring to freedom, -not]&] -[s0; [C0 price. Our General Public Licenses are designed to make sure -that you]&] -[s0; [C0 have the freedom to distribute copies of free software (and -charge for]&] -[s0; [C0 them if you wish), that you receive source code or can get -it if you]&] -[s0; [C0 want it, that you can change the software or use pieces of -it in new]&] -[s0; [C0 free programs, and that you know you can do these things.]&] -[s0;C0 &] -[s0; [C0 To protect your rights, we need to prevent others from denying -you]&] -[s0; [C0 these rights or asking you to surrender the rights. Therefore, -you have]&] -[s0; [C0 certain responsibilities if you distribute copies of the software, -or if]&] -[s0; [C0 you modify it: responsibilities to respect the freedom of others.]&] -[s0;C0 &] -[s0; [C0 For example, if you distribute copies of such a program, -whether]&] -[s0; [C0 gratis or for a fee, you must pass on to the recipients the -same]&] -[s0; [C0 freedoms that you received. You must make sure that they, -too, receive]&] -[s0; [C0 or can get the source code. And you must show them these -terms so they]&] -[s0; [C0 know their rights.]&] -[s0;C0 &] -[s0; [C0 Developers that use the GNU GPL protect your rights with -two steps:]&] -[s0; [C0 (1) assert copyright on the software, and (2) offer you this -License]&] -[s0; [C0 giving you legal permission to copy, distribute and/or modify -it.]&] -[s0;C0 &] -[s0; [C0 For the developers`' and authors`' protection, the GPL clearly -explains]&] -[s0; [C0 that there is no warranty for this free software. For both -users`' and]&] -[s0; [C0 authors`' sake, the GPL requires that modified versions be -marked as]&] -[s0; [C0 changed, so that their problems will not be attributed erroneously -to]&] -[s0; [C0 authors of previous versions.]&] -[s0;C0 &] -[s0; [C0 Some devices are designed to deny users access to install -or run]&] -[s0; [C0 modified versions of the software inside them, although the -manufacturer]&] -[s0; [C0 can do so. This is fundamentally incompatible with the aim -of]&] -[s0; [C0 protecting users`' freedom to change the software. The systematic]&] -[s0; [C0 pattern of such abuse occurs in the area of products for individuals -to]&] -[s0; [C0 use, which is precisely where it is most unacceptable. Therefore, -we]&] -[s0; [C0 have designed this version of the GPL to prohibit the practice -for those]&] -[s0; [C0 products. If such problems arise substantially in other domains, -we]&] -[s0; [C0 stand ready to extend this provision to those domains in future -versions]&] -[s0; [C0 of the GPL, as needed to protect the freedom of users.]&] -[s0;C0 &] -[s0; [C0 Finally, every program is threatened constantly by software -patents.]&] -[s0; [C0 States should not allow patents to restrict development and -use of]&] -[s0; [C0 software on general`-purpose computers, but in those that -do, we wish to]&] -[s0; [C0 avoid the special danger that patents applied to a free program -could]&] -[s0; [C0 make it effectively proprietary. To prevent this, the GPL -assures that]&] -[s0; [C0 patents cannot be used to render the program non`-free.]&] -[s0;C0 &] -[s0; [C0 The precise terms and conditions for copying, distribution -and]&] -[s0; [C0 modification follow.]&] -[s0;C0 &] -[s0; [C0 TERMS AND CONDITIONS]&] -[s0;C0 &] -[s0; [C0 0. Definitions.]&] -[s0;C0 &] -[s0; [C0 `"This License`" refers to version 3 of the GNU General -Public License.]&] -[s0;C0 &] -[s0; [C0 `"Copyright`" also means copyright`-like laws that apply -to other kinds of]&] -[s0; [C0 works, such as semiconductor masks.]&] -[s0;C0 &] -[s0; [C0 `"The Program`" refers to any copyrightable work licensed -under this]&] -[s0; [C0 License. Each licensee is addressed as `"you`". `"Licensees`" -and]&] -[s0; [C0 `"recipients`" may be individuals or organizations.]&] -[s0;C0 &] -[s0; [C0 To `"modify`" a work means to copy from or adapt all or -part of the work]&] -[s0; [C0 in a fashion requiring copyright permission, other than the -making of an]&] -[s0; [C0 exact copy. The resulting work is called a `"modified version`" -of the]&] -[s0; [C0 earlier work or a work `"based on`" the earlier work.]&] -[s0;C0 &] -[s0; [C0 A `"covered work`" means either the unmodified Program or -a work based]&] -[s0; [C0 on the Program.]&] -[s0;C0 &] -[s0; [C0 To `"propagate`" a work means to do anything with it that, -without]&] -[s0; [C0 permission, would make you directly or secondarily liable -for]&] -[s0; [C0 infringement under applicable copyright law, except executing -it on a]&] -[s0; [C0 computer or modifying a private copy. Propagation includes -copying,]&] -[s0; [C0 distribution (with or without modification), making available -to the]&] -[s0; [C0 public, and in some countries other activities as well.]&] -[s0;C0 &] -[s0; [C0 To `"convey`" a work means any kind of propagation that -enables other]&] -[s0; [C0 parties to make or receive copies. Mere interaction with -a user through]&] -[s0; [C0 a computer network, with no transfer of a copy, is not conveying.]&] -[s0;C0 &] -[s0; [C0 An interactive user interface displays `"Appropriate Legal -Notices`"]&] -[s0; [C0 to the extent that it includes a convenient and prominently -visible]&] -[s0; [C0 feature that (1) displays an appropriate copyright notice, -and (2)]&] -[s0; [C0 tells the user that there is no warranty for the work (except -to the]&] -[s0; [C0 extent that warranties are provided), that licensees may convey -the]&] -[s0; [C0 work under this License, and how to view a copy of this License. - If]&] -[s0; [C0 the interface presents a list of user commands or options, -such as a]&] -[s0; [C0 menu, a prominent item in the list meets this criterion.]&] -[s0;C0 &] -[s0; [C0 1. Source Code.]&] -[s0;C0 &] -[s0; [C0 The `"source code`" for a work means the preferred form -of the work]&] -[s0; [C0 for making modifications to it. `"Object code`" means any -non`-source]&] -[s0; [C0 form of a work.]&] -[s0;C0 &] -[s0; [C0 A `"Standard Interface`" means an interface that either -is an official]&] -[s0; [C0 standard defined by a recognized standards body, or, in the -case of]&] -[s0; [C0 interfaces specified for a particular programming language, -one that]&] -[s0; [C0 is widely used among developers working in that language.]&] -[s0;C0 &] -[s0; [C0 The `"System Libraries`" of an executable work include anything, -other]&] -[s0; [C0 than the work as a whole, that (a) is included in the normal -form of]&] -[s0; [C0 packaging a Major Component, but which is not part of that -Major]&] -[s0; [C0 Component, and (b) serves only to enable use of the work with -that]&] -[s0; [C0 Major Component, or to implement a Standard Interface for -which an]&] -[s0; [C0 implementation is available to the public in source code form. - A]&] -[s0; [C0 `"Major Component`", in this context, means a major essential -component]&] -[s0; [C0 (kernel, window system, and so on) of the specific operating -system]&] -[s0; [C0 (if any) on which the executable work runs, or a compiler -used to]&] -[s0; [C0 produce the work, or an object code interpreter used to run -it.]&] -[s0;C0 &] -[s0; [C0 The `"Corresponding Source`" for a work in object code form -means all]&] -[s0; [C0 the source code needed to generate, install, and (for an executable]&] -[s0; [C0 work) run the object code and to modify the work, including -scripts to]&] -[s0; [C0 control those activities. However, it does not include the -work`'s]&] -[s0; [C0 System Libraries, or general`-purpose tools or generally available -free]&] -[s0; [C0 programs which are used unmodified in performing those activities -but]&] -[s0; [C0 which are not part of the work. For example, Corresponding -Source]&] -[s0; [C0 includes interface definition files associated with source -files for]&] -[s0; [C0 the work, and the source code for shared libraries and dynamically]&] -[s0; [C0 linked subprograms that the work is specifically designed -to require,]&] -[s0; [C0 such as by intimate data communication or control flow between -those]&] -[s0; [C0 subprograms and other parts of the work.]&] -[s0;C0 &] -[s0; [C0 The Corresponding Source need not include anything that -users]&] -[s0; [C0 can regenerate automatically from other parts of the Corresponding]&] -[s0; [C0 Source.]&] -[s0;C0 &] -[s0; [C0 The Corresponding Source for a work in source code form -is that]&] -[s0; [C0 same work.]&] -[s0;C0 &] -[s0; [C0 2. Basic Permissions.]&] -[s0;C0 &] -[s0; [C0 All rights granted under this License are granted for the -term of]&] -[s0; [C0 copyright on the Program, and are irrevocable provided the -stated]&] -[s0; [C0 conditions are met. This License explicitly affirms your -unlimited]&] -[s0; [C0 permission to run the unmodified Program. The output from -running a]&] -[s0; [C0 covered work is covered by this License only if the output, -given its]&] -[s0; [C0 content, constitutes a covered work. This License acknowledges -your]&] -[s0; [C0 rights of fair use or other equivalent, as provided by copyright -law.]&] -[s0;C0 &] -[s0; [C0 You may make, run and propagate covered works that you do -not]&] -[s0; [C0 convey, without conditions so long as your license otherwise -remains]&] -[s0; [C0 in force. You may convey covered works to others for the -sole purpose]&] -[s0; [C0 of having them make modifications exclusively for you, or -provide you]&] -[s0; [C0 with facilities for running those works, provided that you -comply with]&] -[s0; [C0 the terms of this License in conveying all material for which -you do]&] -[s0; [C0 not control copyright. Those thus making or running the covered -works]&] -[s0; [C0 for you must do so exclusively on your behalf, under your -direction]&] -[s0; [C0 and control, on terms that prohibit them from making any copies -of]&] -[s0; [C0 your copyrighted material outside their relationship with -you.]&] -[s0;C0 &] -[s0; [C0 Conveying under any other circumstances is permitted solely -under]&] -[s0; [C0 the conditions stated below. Sublicensing is not allowed; -section 10]&] -[s0; [C0 makes it unnecessary.]&] -[s0;C0 &] -[s0; [C0 3. Protecting Users`' Legal Rights From Anti`-Circumvention -Law.]&] -[s0;C0 &] -[s0; [C0 No covered work shall be deemed part of an effective technological]&] -[s0; [C0 measure under any applicable law fulfilling obligations under -article]&] -[s0; [C0 11 of the WIPO copyright treaty adopted on 20 December 1996, -or]&] -[s0; [C0 similar laws prohibiting or restricting circumvention of such]&] -[s0; [C0 measures.]&] -[s0;C0 &] -[s0; [C0 When you convey a covered work, you waive any legal power -to forbid]&] -[s0; [C0 circumvention of technological measures to the extent such -circumvention]&] -[s0; [C0 is effected by exercising rights under this License with respect -to]&] -[s0; [C0 the covered work, and you disclaim any intention to limit -operation or]&] -[s0; [C0 modification of the work as a means of enforcing, against -the work`'s]&] -[s0; [C0 users, your or third parties`' legal rights to forbid circumvention -of]&] -[s0; [C0 technological measures.]&] -[s0;C0 &] -[s0; [C0 4. Conveying Verbatim Copies.]&] -[s0;C0 &] -[s0; [C0 You may convey verbatim copies of the Program`'s source -code as you]&] -[s0; [C0 receive it, in any medium, provided that you conspicuously -and]&] -[s0; [C0 appropriately publish on each copy an appropriate copyright -notice;]&] -[s0; [C0 keep intact all notices stating that this License and any]&] -[s0; [C0 non`-permissive terms added in accord with section 7 apply -to the code;]&] -[s0; [C0 keep intact all notices of the absence of any warranty; and -give all]&] -[s0; [C0 recipients a copy of this License along with the Program.]&] -[s0;C0 &] -[s0; [C0 You may charge any price or no price for each copy that -you convey,]&] -[s0; [C0 and you may offer support or warranty protection for a fee.]&] -[s0;C0 &] -[s0; [C0 5. Conveying Modified Source Versions.]&] -[s0;C0 &] -[s0; [C0 You may convey a work based on the Program, or the modifications -to]&] -[s0; [C0 produce it from the Program, in the form of source code under -the]&] -[s0; [C0 terms of section 4, provided that you also meet all of these -conditions:]&] -[s0;C0 &] -[s0; [C0 a) The work must carry prominent notices stating that -you modified]&] -[s0; [C0 it, and giving a relevant date.]&] -[s0;C0 &] -[s0; [C0 b) The work must carry prominent notices stating that -it is]&] -[s0; [C0 released under this License and any conditions added under -section]&] -[s0; [C0 7. This requirement modifies the requirement in section -4 to]&] -[s0; [C0 `"keep intact all notices`".]&] -[s0;C0 &] -[s0; [C0 c) You must license the entire work, as a whole, under -this]&] -[s0; [C0 License to anyone who comes into possession of a copy. - This]&] -[s0; [C0 License will therefore apply, along with any applicable -section 7]&] -[s0; [C0 additional terms, to the whole of the work, and all its -parts,]&] -[s0; [C0 regardless of how they are packaged. This License gives -no]&] -[s0; [C0 permission to license the work in any other way, but it -does not]&] -[s0; [C0 invalidate such permission if you have separately received -it.]&] -[s0;C0 &] -[s0; [C0 d) If the work has interactive user interfaces, each must -display]&] -[s0; [C0 Appropriate Legal Notices; however, if the Program has -interactive]&] -[s0; [C0 interfaces that do not display Appropriate Legal Notices, -your]&] -[s0; [C0 work need not make them do so.]&] -[s0;C0 &] -[s0; [C0 A compilation of a covered work with other separate and -independent]&] -[s0; [C0 works, which are not by their nature extensions of the covered -work,]&] -[s0; [C0 and which are not combined with it such as to form a larger -program,]&] -[s0; [C0 in or on a volume of a storage or distribution medium, is -called an]&] -[s0; [C0 `"aggregate`" if the compilation and its resulting copyright -are not]&] -[s0; [C0 used to limit the access or legal rights of the compilation`'s -users]&] -[s0; [C0 beyond what the individual works permit. Inclusion of a covered -work]&] -[s0; [C0 in an aggregate does not cause this License to apply to the -other]&] -[s0; [C0 parts of the aggregate.]&] -[s0;C0 &] -[s0; [C0 6. Conveying Non`-Source Forms.]&] -[s0;C0 &] -[s0; [C0 You may convey a covered work in object code form under -the terms]&] -[s0; [C0 of sections 4 and 5, provided that you also convey the]&] -[s0; [C0 machine`-readable Corresponding Source under the terms of -this License,]&] -[s0; [C0 in one of these ways:]&] -[s0;C0 &] -[s0; [C0 a) Convey the object code in, or embodied in, a physical -product]&] -[s0; [C0 (including a physical distribution medium), accompanied -by the]&] -[s0; [C0 Corresponding Source fixed on a durable physical medium]&] -[s0; [C0 customarily used for software interchange.]&] -[s0;C0 &] -[s0; [C0 b) Convey the object code in, or embodied in, a physical -product]&] -[s0; [C0 (including a physical distribution medium), accompanied -by a]&] -[s0; [C0 written offer, valid for at least three years and valid -for as]&] -[s0; [C0 long as you offer spare parts or customer support for -that product]&] -[s0; [C0 model, to give anyone who possesses the object code either -(1) a]&] -[s0; [C0 copy of the Corresponding Source for all the software -in the]&] -[s0; [C0 product that is covered by this License, on a durable -physical]&] -[s0; [C0 medium customarily used for software interchange, for -a price no]&] -[s0; [C0 more than your reasonable cost of physically performing -this]&] -[s0; [C0 conveying of source, or (2) access to copy the]&] -[s0; [C0 Corresponding Source from a network server at no charge.]&] -[s0;C0 &] -[s0; [C0 c) Convey individual copies of the object code with a -copy of the]&] -[s0; [C0 written offer to provide the Corresponding Source. This]&] -[s0; [C0 alternative is allowed only occasionally and noncommercially, -and]&] -[s0; [C0 only if you received the object code with such an offer, -in accord]&] -[s0; [C0 with subsection 6b.]&] -[s0;C0 &] -[s0; [C0 d) Convey the object code by offering access from a designated]&] -[s0; [C0 place (gratis or for a charge), and offer equivalent access -to the]&] -[s0; [C0 Corresponding Source in the same way through the same -place at no]&] -[s0; [C0 further charge. You need not require recipients to copy -the]&] -[s0; [C0 Corresponding Source along with the object code. If the -place to]&] -[s0; [C0 copy the object code is a network server, the Corresponding -Source]&] -[s0; [C0 may be on a different server (operated by you or a third -party)]&] -[s0; [C0 that supports equivalent copying facilities, provided -you maintain]&] -[s0; [C0 clear directions next to the object code saying where -to find the]&] -[s0; [C0 Corresponding Source. Regardless of what server hosts -the]&] -[s0; [C0 Corresponding Source, you remain obligated to ensure that -it is]&] -[s0; [C0 available for as long as needed to satisfy these requirements.]&] -[s0;C0 &] -[s0; [C0 e) Convey the object code using peer`-to`-peer transmission, -provided]&] -[s0; [C0 you inform other peers where the object code and Corresponding]&] -[s0; [C0 Source of the work are being offered to the general public -at no]&] -[s0; [C0 charge under subsection 6d.]&] -[s0;C0 &] -[s0; [C0 A separable portion of the object code, whose source code -is excluded]&] -[s0; [C0 from the Corresponding Source as a System Library, need not -be]&] -[s0; [C0 included in conveying the object code work.]&] -[s0;C0 &] -[s0; [C0 A `"User Product`" is either (1) a `"consumer product`", -which means any]&] -[s0; [C0 tangible personal property which is normally used for personal, -family,]&] -[s0; [C0 or household purposes, or (2) anything designed or sold for -incorporation]&] -[s0; [C0 into a dwelling. In determining whether a product is a consumer -product,]&] -[s0; [C0 doubtful cases shall be resolved in favor of coverage. For -a particular]&] -[s0; [C0 product received by a particular user, `"normally used`" refers -to a]&] -[s0; [C0 typical or common use of that class of product, regardless -of the status]&] -[s0; [C0 of the particular user or of the way in which the particular -user]&] -[s0; [C0 actually uses, or expects or is expected to use, the product. - A product]&] -[s0; [C0 is a consumer product regardless of whether the product has -substantial]&] -[s0; [C0 commercial, industrial or non`-consumer uses, unless such -uses represent]&] -[s0; [C0 the only significant mode of use of the product.]&] -[s0;C0 &] -[s0; [C0 `"Installation Information`" for a User Product means any -methods,]&] -[s0; [C0 procedures, authorization keys, or other information required -to install]&] -[s0; [C0 and execute modified versions of a covered work in that User -Product from]&] -[s0; [C0 a modified version of its Corresponding Source. The information -must]&] -[s0; [C0 suffice to ensure that the continued functioning of the modified -object]&] -[s0; [C0 code is in no case prevented or interfered with solely because]&] -[s0; [C0 modification has been made.]&] -[s0;C0 &] -[s0; [C0 If you convey an object code work under this section in, -or with, or]&] -[s0; [C0 specifically for use in, a User Product, and the conveying -occurs as]&] -[s0; [C0 part of a transaction in which the right of possession and -use of the]&] -[s0; [C0 User Product is transferred to the recipient in perpetuity -or for a]&] -[s0; [C0 fixed term (regardless of how the transaction is characterized), -the]&] -[s0; [C0 Corresponding Source conveyed under this section must be accompanied]&] -[s0; [C0 by the Installation Information. But this requirement does -not apply]&] -[s0; [C0 if neither you nor any third party retains the ability to -install]&] -[s0; [C0 modified object code on the User Product (for example, the -work has]&] -[s0; [C0 been installed in ROM).]&] -[s0;C0 &] -[s0; [C0 The requirement to provide Installation Information does -not include a]&] -[s0; [C0 requirement to continue to provide support service, warranty, -or updates]&] -[s0; [C0 for a work that has been modified or installed by the recipient, -or for]&] -[s0; [C0 the User Product in which it has been modified or installed. - Access to a]&] -[s0; [C0 network may be denied when the modification itself materially -and]&] -[s0; [C0 adversely affects the operation of the network or violates -the rules and]&] -[s0; [C0 protocols for communication across the network.]&] -[s0;C0 &] -[s0; [C0 Corresponding Source conveyed, and Installation Information -provided,]&] -[s0; [C0 in accord with this section must be in a format that is publicly]&] -[s0; [C0 documented (and with an implementation available to the public -in]&] -[s0; [C0 source code form), and must require no special password or -key for]&] -[s0; [C0 unpacking, reading or copying.]&] -[s0;C0 &] -[s0; [C0 7. Additional Terms.]&] -[s0;C0 &] -[s0; [C0 `"Additional permissions`" are terms that supplement the -terms of this]&] -[s0; [C0 License by making exceptions from one or more of its conditions.]&] -[s0; [C0 Additional permissions that are applicable to the entire Program -shall]&] -[s0; [C0 be treated as though they were included in this License, to -the extent]&] -[s0; [C0 that they are valid under applicable law. If additional permissions]&] -[s0; [C0 apply only to part of the Program, that part may be used separately]&] -[s0; [C0 under those permissions, but the entire Program remains governed -by]&] -[s0; [C0 this License without regard to the additional permissions.]&] -[s0;C0 &] -[s0; [C0 When you convey a copy of a covered work, you may at your -option]&] -[s0; [C0 remove any additional permissions from that copy, or from -any part of]&] -[s0; [C0 it. (Additional permissions may be written to require their -own]&] -[s0; [C0 removal in certain cases when you modify the work.) You may -place]&] -[s0; [C0 additional permissions on material, added by you to a covered -work,]&] -[s0; [C0 for which you have or can give appropriate copyright permission.]&] -[s0;C0 &] -[s0; [C0 Notwithstanding any other provision of this License, for -material you]&] -[s0; [C0 add to a covered work, you may (if authorized by the copyright -holders of]&] -[s0; [C0 that material) supplement the terms of this License with terms:]&] -[s0;C0 &] -[s0; [C0 a) Disclaiming warranty or limiting liability differently -from the]&] -[s0; [C0 terms of sections 15 and 16 of this License; or]&] -[s0;C0 &] -[s0; [C0 b) Requiring preservation of specified reasonable legal -notices or]&] -[s0; [C0 author attributions in that material or in the Appropriate -Legal]&] -[s0; [C0 Notices displayed by works containing it; or]&] -[s0;C0 &] -[s0; [C0 c) Prohibiting misrepresentation of the origin of that -material, or]&] -[s0; [C0 requiring that modified versions of such material be marked -in]&] -[s0; [C0 reasonable ways as different from the original version; -or]&] -[s0;C0 &] -[s0; [C0 d) Limiting the use for publicity purposes of names of -licensors or]&] -[s0; [C0 authors of the material; or]&] -[s0;C0 &] -[s0; [C0 e) Declining to grant rights under trademark law for use -of some]&] -[s0; [C0 trade names, trademarks, or service marks; or]&] -[s0;C0 &] -[s0; [C0 f) Requiring indemnification of licensors and authors -of that]&] -[s0; [C0 material by anyone who conveys the material (or modified -versions of]&] -[s0; [C0 it) with contractual assumptions of liability to the recipient, -for]&] -[s0; [C0 any liability that these contractual assumptions directly -impose on]&] -[s0; [C0 those licensors and authors.]&] -[s0;C0 &] -[s0; [C0 All other non`-permissive additional terms are considered -`"further]&] -[s0; [C0 restrictions`" within the meaning of section 10. If the Program -as you]&] -[s0; [C0 received it, or any part of it, contains a notice stating -that it is]&] -[s0; [C0 governed by this License along with a term that is a further]&] -[s0; [C0 restriction, you may remove that term. If a license document -contains]&] -[s0; [C0 a further restriction but permits relicensing or conveying -under this]&] -[s0; [C0 License, you may add to a covered work material governed by -the terms]&] -[s0; [C0 of that license document, provided that the further restriction -does]&] -[s0; [C0 not survive such relicensing or conveying.]&] -[s0;C0 &] -[s0; [C0 If you add terms to a covered work in accord with this section, -you]&] -[s0; [C0 must place, in the relevant source files, a statement of the]&] -[s0; [C0 additional terms that apply to those files, or a notice indicating]&] -[s0; [C0 where to find the applicable terms.]&] -[s0;C0 &] -[s0; [C0 Additional terms, permissive or non`-permissive, may be -stated in the]&] -[s0; [C0 form of a separately written license, or stated as exceptions;]&] -[s0; [C0 the above requirements apply either way.]&] -[s0;C0 &] -[s0; [C0 8. Termination.]&] -[s0;C0 &] -[s0; [C0 You may not propagate or modify a covered work except as -expressly]&] -[s0; [C0 provided under this License. Any attempt otherwise to propagate -or]&] -[s0; [C0 modify it is void, and will automatically terminate your rights -under]&] -[s0; [C0 this License (including any patent licenses granted under -the third]&] -[s0; [C0 paragraph of section 11).]&] -[s0;C0 &] -[s0; [C0 However, if you cease all violation of this License, then -your]&] -[s0; [C0 license from a particular copyright holder is reinstated (a)]&] -[s0; [C0 provisionally, unless and until the copyright holder explicitly -and]&] -[s0; [C0 finally terminates your license, and (b) permanently, if the -copyright]&] -[s0; [C0 holder fails to notify you of the violation by some reasonable -means]&] -[s0; [C0 prior to 60 days after the cessation.]&] -[s0;C0 &] -[s0; [C0 Moreover, your license from a particular copyright holder -is]&] -[s0; [C0 reinstated permanently if the copyright holder notifies you -of the]&] -[s0; [C0 violation by some reasonable means, this is the first time -you have]&] -[s0; [C0 received notice of violation of this License (for any work) -from that]&] -[s0; [C0 copyright holder, and you cure the violation prior to 30 days -after]&] -[s0; [C0 your receipt of the notice.]&] -[s0;C0 &] -[s0; [C0 Termination of your rights under this section does not terminate -the]&] -[s0; [C0 licenses of parties who have received copies or rights from -you under]&] -[s0; [C0 this License. If your rights have been terminated and not -permanently]&] -[s0; [C0 reinstated, you do not qualify to receive new licenses for -the same]&] -[s0; [C0 material under section 10.]&] -[s0;C0 &] -[s0; [C0 9. Acceptance Not Required for Having Copies.]&] -[s0;C0 &] -[s0; [C0 You are not required to accept this License in order to -receive or]&] -[s0; [C0 run a copy of the Program. Ancillary propagation of a covered -work]&] -[s0; [C0 occurring solely as a consequence of using peer`-to`-peer -transmission]&] -[s0; [C0 to receive a copy likewise does not require acceptance. However,]&] -[s0; [C0 nothing other than this License grants you permission to propagate -or]&] -[s0; [C0 modify any covered work. These actions infringe copyright -if you do]&] -[s0; [C0 not accept this License. Therefore, by modifying or propagating -a]&] -[s0; [C0 covered work, you indicate your acceptance of this License -to do so.]&] -[s0;C0 &] -[s0; [C0 10. Automatic Licensing of Downstream Recipients.]&] -[s0;C0 &] -[s0; [C0 Each time you convey a covered work, the recipient automatically]&] -[s0; [C0 receives a license from the original licensors, to run, modify -and]&] -[s0; [C0 propagate that work, subject to this License. You are not -responsible]&] -[s0; [C0 for enforcing compliance by third parties with this License.]&] -[s0;C0 &] -[s0; [C0 An `"entity transaction`" is a transaction transferring -control of an]&] -[s0; [C0 organization, or substantially all assets of one, or subdividing -an]&] -[s0; [C0 organization, or merging organizations. If propagation of -a covered]&] -[s0; [C0 work results from an entity transaction, each party to that]&] -[s0; [C0 transaction who receives a copy of the work also receives -whatever]&] -[s0; [C0 licenses to the work the party`'s predecessor in interest -had or could]&] -[s0; [C0 give under the previous paragraph, plus a right to possession -of the]&] -[s0; [C0 Corresponding Source of the work from the predecessor in interest, -if]&] -[s0; [C0 the predecessor has it or can get it with reasonable efforts.]&] -[s0;C0 &] -[s0; [C0 You may not impose any further restrictions on the exercise -of the]&] -[s0; [C0 rights granted or affirmed under this License. For example, -you may]&] -[s0; [C0 not impose a license fee, royalty, or other charge for exercise -of]&] -[s0; [C0 rights granted under this License, and you may not initiate -litigation]&] -[s0; [C0 (including a cross`-claim or counterclaim in a lawsuit) alleging -that]&] -[s0; [C0 any patent claim is infringed by making, using, selling, offering -for]&] -[s0; [C0 sale, or importing the Program or any portion of it.]&] -[s0;C0 &] -[s0; [C0 11. Patents.]&] -[s0;C0 &] -[s0; [C0 A `"contributor`" is a copyright holder who authorizes use -under this]&] -[s0; [C0 License of the Program or a work on which the Program is based. - The]&] -[s0; [C0 work thus licensed is called the contributor`'s `"contributor -version`".]&] -[s0;C0 &] -[s0; [C0 A contributor`'s `"essential patent claims`" are all patent -claims]&] -[s0; [C0 owned or controlled by the contributor, whether already acquired -or]&] -[s0; [C0 hereafter acquired, that would be infringed by some manner, -permitted]&] -[s0; [C0 by this License, of making, using, or selling its contributor -version,]&] -[s0; [C0 but do not include claims that would be infringed only as -a]&] -[s0; [C0 consequence of further modification of the contributor version. - For]&] -[s0; [C0 purposes of this definition, `"control`" includes the right -to grant]&] -[s0; [C0 patent sublicenses in a manner consistent with the requirements -of]&] -[s0; [C0 this License.]&] -[s0;C0 &] -[s0; [C0 Each contributor grants you a non`-exclusive, worldwide, -royalty`-free]&] -[s0; [C0 patent license under the contributor`'s essential patent claims, -to]&] -[s0; [C0 make, use, sell, offer for sale, import and otherwise run, -modify and]&] -[s0; [C0 propagate the contents of its contributor version.]&] -[s0;C0 &] -[s0; [C0 In the following three paragraphs, a `"patent license`" -is any express]&] -[s0; [C0 agreement or commitment, however denominated, not to enforce -a patent]&] -[s0; [C0 (such as an express permission to practice a patent or covenant -not to]&] -[s0; [C0 sue for patent infringement). To `"grant`" such a patent -license to a]&] -[s0; [C0 party means to make such an agreement or commitment not to -enforce a]&] -[s0; [C0 patent against the party.]&] -[s0;C0 &] -[s0; [C0 If you convey a covered work, knowingly relying on a patent -license,]&] -[s0; [C0 and the Corresponding Source of the work is not available -for anyone]&] -[s0; [C0 to copy, free of charge and under the terms of this License, -through a]&] -[s0; [C0 publicly available network server or other readily accessible -means,]&] -[s0; [C0 then you must either (1) cause the Corresponding Source to -be so]&] -[s0; [C0 available, or (2) arrange to deprive yourself of the benefit -of the]&] -[s0; [C0 patent license for this particular work, or (3) arrange, in -a manner]&] -[s0; [C0 consistent with the requirements of this License, to extend -the patent]&] -[s0; [C0 license to downstream recipients. `"Knowingly relying`" means -you have]&] -[s0; [C0 actual knowledge that, but for the patent license, your conveying -the]&] -[s0; [C0 covered work in a country, or your recipient`'s use of the -covered work]&] -[s0; [C0 in a country, would infringe one or more identifiable patents -in that]&] -[s0; [C0 country that you have reason to believe are valid.]&] -[s0;C0 &] -[s0; [C0 If, pursuant to or in connection with a single transaction -or]&] -[s0; [C0 arrangement, you convey, or propagate by procuring conveyance -of, a]&] -[s0; [C0 covered work, and grant a patent license to some of the parties]&] -[s0; [C0 receiving the covered work authorizing them to use, propagate, -modify]&] -[s0; [C0 or convey a specific copy of the covered work, then the patent -license]&] -[s0; [C0 you grant is automatically extended to all recipients of the -covered]&] -[s0; [C0 work and works based on it.]&] -[s0;C0 &] -[s0; [C0 A patent license is `"discriminatory`" if it does not include -within]&] -[s0; [C0 the scope of its coverage, prohibits the exercise of, or is]&] -[s0; [C0 conditioned on the non`-exercise of one or more of the rights -that are]&] -[s0; [C0 specifically granted under this License. You may not convey -a covered]&] -[s0; [C0 work if you are a party to an arrangement with a third party -that is]&] -[s0; [C0 in the business of distributing software, under which you -make payment]&] -[s0; [C0 to the third party based on the extent of your activity of -conveying]&] -[s0; [C0 the work, and under which the third party grants, to any of -the]&] -[s0; [C0 parties who would receive the covered work from you, a discriminatory]&] -[s0; [C0 patent license (a) in connection with copies of the covered -work]&] -[s0; [C0 conveyed by you (or copies made from those copies), or (b) -primarily]&] -[s0; [C0 for and in connection with specific products or compilations -that]&] -[s0; [C0 contain the covered work, unless you entered into that arrangement,]&] -[s0; [C0 or that patent license was granted, prior to 28 March 2007.]&] -[s0;C0 &] -[s0; [C0 Nothing in this License shall be construed as excluding -or limiting]&] -[s0; [C0 any implied license or other defenses to infringement that -may]&] -[s0; [C0 otherwise be available to you under applicable patent law.]&] -[s0;C0 &] -[s0; [C0 12. No Surrender of Others`' Freedom.]&] -[s0;C0 &] -[s0; [C0 If conditions are imposed on you (whether by court order, -agreement or]&] -[s0; [C0 otherwise) that contradict the conditions of this License, -they do not]&] -[s0; [C0 excuse you from the conditions of this License. If you cannot -convey a]&] -[s0; [C0 covered work so as to satisfy simultaneously your obligations -under this]&] -[s0; [C0 License and any other pertinent obligations, then as a consequence -you may]&] -[s0; [C0 not convey it at all. For example, if you agree to terms -that obligate you]&] -[s0; [C0 to collect a royalty for further conveying from those to whom -you convey]&] -[s0; [C0 the Program, the only way you could satisfy both those terms -and this]&] -[s0; [C0 License would be to refrain entirely from conveying the Program.]&] -[s0;C0 &] -[s0; [C0 13. Use with the GNU Affero General Public License.]&] -[s0;C0 &] -[s0; [C0 Notwithstanding any other provision of this License, you -have]&] -[s0; [C0 permission to link or combine any covered work with a work -licensed]&] -[s0; [C0 under version 3 of the GNU Affero General Public License into -a single]&] -[s0; [C0 combined work, and to convey the resulting work. The terms -of this]&] -[s0; [C0 License will continue to apply to the part which is the covered -work,]&] -[s0; [C0 but the special requirements of the GNU Affero General Public -License,]&] -[s0; [C0 section 13, concerning interaction through a network will -apply to the]&] -[s0; [C0 combination as such.]&] -[s0;C0 &] -[s0; [C0 14. Revised Versions of this License.]&] -[s0;C0 &] -[s0; [C0 The Free Software Foundation may publish revised and/or -new versions of]&] -[s0; [C0 the GNU General Public License from time to time. Such new -versions will]&] -[s0; [C0 be similar in spirit to the present version, but may differ -in detail to]&] -[s0; [C0 address new problems or concerns.]&] -[s0;C0 &] -[s0; [C0 Each version is given a distinguishing version number. -If the]&] -[s0; [C0 Program specifies that a certain numbered version of the GNU -General]&] -[s0; [C0 Public License `"or any later version`" applies to it, you -have the]&] -[s0; [C0 option of following the terms and conditions either of that -numbered]&] -[s0; [C0 version or of any later version published by the Free Software]&] -[s0; [C0 Foundation. If the Program does not specify a version number -of the]&] -[s0; [C0 GNU General Public License, you may choose any version ever -published]&] -[s0; [C0 by the Free Software Foundation.]&] -[s0;C0 &] -[s0; [C0 If the Program specifies that a proxy can decide which future]&] -[s0; [C0 versions of the GNU General Public License can be used, that -proxy`'s]&] -[s0; [C0 public statement of acceptance of a version permanently authorizes -you]&] -[s0; [C0 to choose that version for the Program.]&] -[s0;C0 &] -[s0; [C0 Later license versions may give you additional or different]&] -[s0; [C0 permissions. However, no additional obligations are imposed -on any]&] -[s0; [C0 author or copyright holder as a result of your choosing to -follow a]&] -[s0; [C0 later version.]&] -[s0;C0 &] -[s0; [C0 15. Disclaimer of Warranty.]&] -[s0;C0 &] -[s0; [C0 THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED -BY]&] -[s0; [C0 APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE -COPYRIGHT]&] -[s0; [C0 HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM `"AS IS`" -WITHOUT WARRANTY]&] -[s0; [C0 OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT -LIMITED TO,]&] -[s0; [C0 THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR]&] -[s0; [C0 PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE -OF THE PROGRAM]&] -[s0; [C0 IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME -THE COST OF]&] -[s0; [C0 ALL NECESSARY SERVICING, REPAIR OR CORRECTION.]&] -[s0;C0 &] -[s0; [C0 16. Limitation of Liability.]&] -[s0;C0 &] -[s0; [C0 IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED -TO IN WRITING]&] -[s0; [C0 WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES -AND/OR CONVEYS]&] -[s0; [C0 THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY]&] -[s0; [C0 GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE]&] -[s0; [C0 USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF]&] -[s0; [C0 DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED -BY YOU OR THIRD]&] -[s0; [C0 PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS),]&] -[s0; [C0 EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF]&] -[s0; [C0 SUCH DAMAGES.]&] -[s0;C0 &] -[s0; [C0 17. Interpretation of Sections 15 and 16.]&] -[s0;C0 &] -[s0; [C0 If the disclaimer of warranty and limitation of liability -provided]&] -[s0; [C0 above cannot be given local legal effect according to their -terms,]&] -[s0; [C0 reviewing courts shall apply local law that most closely approximates]&] -[s0; [C0 an absolute waiver of all civil liability in connection with -the]&] -[s0; [C0 Program, unless a warranty or assumption of liability accompanies -a]&] -[s0; [C0 copy of the Program in return for a fee.]&] -[s0;C0 &] -[s0; [C0 END OF TERMS AND CONDITIONS]&] -[s0;C0 &] -[s0; [C0 How to Apply These Terms to Your New Programs]&] -[s0;C0 &] -[s0; [C0 If you develop a new program, and you want it to be of the -greatest]&] -[s0; [C0 possible use to the public, the best way to achieve this is -to make it]&] -[s0; [C0 free software which everyone can redistribute and change under -these terms.]&] -[s0;C0 &] -[s0; [C0 To do so, attach the following notices to the program. -It is safest]&] -[s0; [C0 to attach them to the start of each source file to most effectively]&] -[s0; [C0 state the exclusion of warranty; and each file should have -at least]&] -[s0; [C0 the `"copyright`" line and a pointer to where the full notice -is found.]&] -[s0;C0 &] -[s0; [C0 ]&] -[s0; [C0 Copyright (C) ]&] -[s0;C0 &] -[s0; [C0 This program is free software: you can redistribute it -and/or modify]&] -[s0; [C0 it under the terms of the GNU General Public License as -published by]&] -[s0; [C0 the Free Software Foundation, either version 3 of the -License, or]&] -[s0; [C0 (at your option) any later version.]&] -[s0;C0 &] -[s0; [C0 This program is distributed in the hope that it will be -useful,]&] -[s0; [C0 but WITHOUT ANY WARRANTY; without even the implied warranty -of]&] -[s0; [C0 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -See the]&] -[s0; [C0 GNU General Public License for more details.]&] -[s0;C0 &] -[s0; [C0 You should have received a copy of the GNU General Public -License]&] -[s0; [C0 along with this program. If not, see .]&] -[s0;C0 &] -[s0; [C0 Also add information on how to contact you by electronic and -paper mail.]&] -[s0;C0 &] -[s0; [C0 If the program does terminal interaction, make it output -a short]&] -[s0; [C0 notice like this when it starts in an interactive mode:]&] -[s0;C0 &] -[s0; [C0 Copyright (C) ]&] -[s0; [C0 This program comes with ABSOLUTELY NO WARRANTY; for details -type ``show w`'.]&] -[s0; [C0 This is free software, and you are welcome to redistribute -it]&] -[s0; [C0 under certain conditions; type ``show c`' for details.]&] -[s0;C0 &] -[s0; [C0 The hypothetical commands ``show w`' and ``show c`' should -show the appropriate]&] -[s0; [C0 parts of the General Public License. Of course, your program`'s -commands]&] -[s0; [C0 might be different; for a GUI interface, you would use an -`"about box`".]&] -[s0;C0 &] -[s0; [C0 You should also get your employer (if you work as a programmer) -or school,]&] -[s0; [C0 if any, to sign a `"copyright disclaimer`" for the program, -if necessary.]&] -[s0; [C0 For more information on this, and how to apply and follow -the GNU GPL, see]&] -[s0; [C0 .]&] -[s0;C0 &] -[s0; [C0 The GNU General Public License does not permit incorporating -your program]&] -[s0; [C0 into proprietary programs. If your program is a subroutine -library, you]&] -[s0; [C0 may consider it more useful to permit linking proprietary -applications with]&] -[s0; [C0 the library. If this is what you want to do, use the GNU -Lesser General]&] -[s0; [C0 Public License instead of this License. But first, please -read]&] -[s0; [C0 .]&] -[s0;C0 ]}}&] +topic "Copyright (C) 2005 Mirek Fidler, Tomas Rylek and various contributors (see AUTHORS)"; +[2 $$0,0#00000000000000000000000000000000:Default] +[l288;i704;a17;O9;~~~.992;2 $$1,0#10431211400427159095818037425705:param] +[a83;*R6 $$2,5#31310162474203024125188417583966:caption] +[b83;*2 $$3,5#07864147445237544204411237157677:title] +[b167;a42;C2 $$4,6#40027414424643823182269349404212:item] +[b42;a42;2 $$5,5#45413000475342174754091244180557:text] +[l288;a17;2 $$6,6#27521748481378242620020725143825:desc] +[l321;t246;C@5;1 $$7,7#20902679421464641399138805415013:code] +[b2503;2 $$8,0#65142375456100023862071332075487:separator] +[*@(0.0.255)2 $$9,0#83433469410354161042741608181528:base] +[t4167;C2 $$10,0#37138531426314131251341829483380:class] +[l288;a17;*1 $$11,11#70004532496200323422659154056402:requirement] +[i417;b42;a42;O9;~~~.416;2 $$12,12#10566046415157235020018451313112:tparam] +[b167;C2 $$13,13#92430459443460461911108080531343:item1] +[i288;a42;O9;C2 $$14,14#77422149456609303542238260500223:item2] +[*@2$(0.128.128)2 $$15,15#34511555403152284025741354420178:NewsDate] +[l321;*C$7;2 $$16,16#03451589433145915344929335295360:result] +[l321;b83;a83;*C$7;2 $$17,17#07531550463529505371228428965313:result`-line] +[l160;t4167;*C+117 $$18,5#88603949442205825958800053222425:package`-title] +[{_} +[s0;%% [*+117 Copyright © 1998, 2017 Ultimate`+`+ team]&] +[s0;%% All rights reserved.&] +[s0;%% &] +[s0;%% Redistribution and use in source and binary forms, with or +without modification, are permitted provided that the following +conditions are met:&] +[s0;%% &] +[s0;%% 1. Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer.&] +[s0;%% &] +[s0;%% 2. Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution.&] +[s0;%% &] +[s0;%% THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +`"AS IS`" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT +NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT +SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.&] +[s0; &] +[s0;H8;0 &] +[s0; [/ U`+`+ sources contain some 3rd party code]&] +[s0; &] +[s0; Package [* plugin/astyle] has following licence notice:&] +[ {{10000@(255.255.192) [s0; [C1 The `"Artistic Style`" project, including all files needed +to]&] +[s0; [C1 compile it, is free software; you can redistribute it and/or]&] +[s0; [C1 modify it under the terms of the GNU Lesser General Public]&] +[s0; [C1 License as published by the Free Software Foundation; either]&] +[s0; [C1 version 2.1 of the License, or (at your option) any later]&] +[s0; [C1 version.]&] +[s0;C1 &] +[s0; [C1 This program is distributed in the hope that it will be useful,]&] +[s0; [C1 but WITHOUT ANY WARRANTY; without even the implied warranty +of]&] +[s0; [C1 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See +the]&] +[s0; [C1 GNU Lesser General Public License for more details.]&] +[s0;C1 &] +[s0; [C1 You should have received a copy of the GNU Lesser General +Public]&] +[s0; [C1 License along with this project; if not, write to the]&] +[s0; [C1 Free Software Foundation, Inc., 51 Franklin Street, Fifth +Floor,]&] +[s0; [C1 Boston, MA 02110`-1301, USA.]&] +[s0;C1 ]}}&] +[s0; &] +[s0; Package [* plugin/box2d] has following licence notice:&] +[ {{10000@(255.255.192) [s0; [C1 Copyright (c) 2006`-2009 Erin Catto http://www.gphysics.com]&] +[s0;C1 &] +[s0; [C1 This software is provided `'as`-is`', without any express +or implied]&] +[s0; [C1 warranty. In no event will the authors be held liable for +any damages]&] +[s0; [C1 arising from the use of this software.]&] +[s0; [C1 Permission is granted to anyone to use this software for any +purpose,]&] +[s0; [C1 including commercial applications, and to alter it and redistribute +it]&] +[s0; [C1 freely, subject to the following restrictions:]&] +[s0; [C1 1. The origin of this software must not be misrepresented; +you must not]&] +[s0; [C1 claim that you wrote the original software. If you use this +software]&] +[s0; [C1 in a product, an acknowledgment in the product documentation +would be]&] +[s0; [C1 appreciated but is not required.]&] +[s0; [C1 2. Altered source versions must be plainly marked as such, +and must not be]&] +[s0; [C1 misrepresented as being the original software.]&] +[s0; [C1 3. This notice may not be removed or altered from any source +distribution.]&] +[s0;C1 ]}}&] +[s0; &] +[s0; Package [* plugin/bz2] has following licence notice:&] +[ {{10000@(255.255.192) [s0; [C1 This program, `"bzip2`" and associated library `"libbzip2`", +are]&] +[s0; [C1 copyright (C) 1996`-2002 Julian R Seward. All rights reserved.]&] +[s0;C1 &] +[s0; [C1 Redistribution and use in source and binary forms, with or +without]&] +[s0; [C1 modification, are permitted provided that the following conditions]&] +[s0; [C1 are met:]&] +[s0;C1 &] +[s0; [C1 1. Redistributions of source code must retain the above copyright]&] +[s0; [C1 notice, this list of conditions and the following disclaimer.]&] +[s0;C1 &] +[s0; [C1 2. The origin of this software must not be misrepresented; +you must]&] +[s0; [C1 not claim that you wrote the original software. If you +use this]&] +[s0; [C1 software in a product, an acknowledgment in the product]&] +[s0; [C1 documentation would be appreciated but is not required.]&] +[s0;C1 &] +[s0; [C1 3. Altered source versions must be plainly marked as such, +and must]&] +[s0; [C1 not be misrepresented as being the original software.]&] +[s0;C1 &] +[s0; [C1 4. The name of the author may not be used to endorse or promote]&] +[s0; [C1 products derived from this software without specific prior +written]&] +[s0; [C1 permission.]&] +[s0;C1 &] +[s0; [C1 THIS SOFTWARE IS PROVIDED BY THE AUTHOR ````AS IS`'`' AND +ANY EXPRESS]&] +[s0; [C1 OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED]&] +[s0; [C1 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE]&] +[s0; [C1 ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY]&] +[s0; [C1 DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL]&] +[s0; [C1 DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE]&] +[s0; [C1 GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS]&] +[s0; [C1 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,]&] +[s0; [C1 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING]&] +[s0; [C1 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS]&] +[s0; [C1 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.]&] +[s0;C1 &] +[s0; [C1 Julian Seward, Cambridge, UK.]&] +[s0; [C1 jseward`@acm.org]&] +[s0; [C1 bzip2/libbzip2 version 1.0.2 of 30 December 2001]&] +[s0;C1 ]}}&] +[s0; &] +[s0; Package [* plugin/DroidFonts] has following licence notice:&] +[ {{10000@(255.255.192) [s0; [C1 Licensed under the Apache License, Version 2.0 (the `"License`");]&] +[s0; [C1 you may not use this file except in compliance with the License.]&] +[s0; [C1 You may obtain a copy of the License at]&] +[s0;C1 &] +[s0; [C1 http://www.apache.org/licenses/LICENSE`-2.0]&] +[s0;C1 &] +[s0; [C1 Unless required by applicable law or agreed to in writing, +software]&] +[s0; [C1 distributed under the License is distributed on an `"AS IS`" +BASIS,]&] +[s0; [C1 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express +or implied.]&] +[s0; [C1 See the License for the specific language governing permissions +and]&] +[s0; [C1 limitations under the License.]]}}&] +[s0; &] +[s0; Package [* plugin/Eigen] has following licence notice:&] +[ {{10000@(255.255.192) [s0; [C1 Copyright (C) 2008 Gael Guennebaud ]&] +[s0;C1 &] +[s0; [C1 This Source Code Form is subject to the terms of the Mozilla]&] +[s0; [C1 Public License v. 2.0. If a copy of the MPL was not distributed]&] +[s0; [C1 with this file, You can obtain one at http://mozilla.org/MPL/2.0/.]&] +[s0;C1 ]}}&] +[s0; &] +[s0; Package [* plugin/ftp] has following licence notice:&] +[ {{10000@(255.255.192) [s0; [C1 Copyright (C) 1996`-2001 Thomas Pfau, pfau`@eclipse.net + ]&] +[s0; [C1 1407 Thomas Ave, North Brunswick, NJ, 08902 + ]&] +[s0; [C1 + ]&] +[s0; [C1 This library is free software; you can redistribute it and/or + ]&] +[s0; [C1 modify it under the terms of the GNU Library General Public + ]&] +[s0; [C1 License as published by the Free Software Foundation; either + ]&] +[s0; [C1 version 2 of the License, or (at your option) any later version. + ]&] +[s0; [C1 + ]&] +[s0; [C1 This library is distributed in the hope that it will be useful, + ]&] +[s0; [C1 but WITHOUT ANY WARRANTY; without even the implied warranty +of ]&] +[s0; [C1 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See +the GNU ]&] +[s0; [C1 Library General Public License for more details. + ]&] +[s0; [C1 + ]&] +[s0; [C1 You should have received a copy of the GNU Library General +Public ]&] +[s0; [C1 License along with this progam; if not, write to the + ]&] +[s0; [C1 Free Software Foundation, Inc., 59 Temple Place `- Suite 330, + ]&] +[s0; [C1 Boston, MA 02111`-1307, USA. + ]&] +[s0;C1 ]}}&] +[s0; &] +[s0; Package [* plugin/FT`_fontsys] has following licence notice:&] +[ {{10000@(255.255.192) [s0; [C1 The FreeType Project LICENSE]&] +[s0; [C1 `-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-]&] +[s0;C1 &] +[s0; [C1 2006`-Jan`-27]&] +[s0;C1 &] +[s0; [C1 Copyright 1996`-2002, 2006 by]&] +[s0; [C1 David Turner, Robert Wilhelm, and Werner Lemberg]&] +[s0;C1 &] +[s0;C1 &] +[s0;C1 &] +[s0; [C1 Introduction]&] +[s0; [C1 `=`=`=`=`=`=`=`=`=`=`=`=]&] +[s0;C1 &] +[s0; [C1 The FreeType Project is distributed in several archive +packages;]&] +[s0; [C1 some of them may contain, in addition to the FreeType font +engine,]&] +[s0; [C1 various tools and contributions which rely on, or relate +to, the]&] +[s0; [C1 FreeType Project.]&] +[s0;C1 &] +[s0; [C1 This license applies to all files found in such packages, +and]&] +[s0; [C1 which do not fall under their own explicit license. The +license]&] +[s0; [C1 affects thus the FreeType font engine, the test + programs,]&] +[s0; [C1 documentation and makefiles, at the very least.]&] +[s0;C1 &] +[s0; [C1 This license was inspired by the BSD, Artistic, + and IJG]&] +[s0; [C1 (Independent JPEG Group) licenses, which all encourage +inclusion]&] +[s0; [C1 and use of free software in commercial and freeware + products]&] +[s0; [C1 alike. As a consequence, its main points are that:]&] +[s0;C1 &] +[s0; [C1 o We don`'t promise that this software works. However, +we will be]&] +[s0; [C1 interested in any kind of bug reports. (``as is`' distribution)]&] +[s0;C1 &] +[s0; [C1 o You can use this software for whatever you want, in +parts or]&] +[s0; [C1 full form, without having to pay us. (``royalty`-free`' +usage)]&] +[s0;C1 &] +[s0; [C1 o You may not pretend that you wrote this software. +If you use]&] +[s0; [C1 it, or only parts of it, in a program, you must acknowledge]&] +[s0; [C1 somewhere in your documentation that you have + used the]&] +[s0; [C1 FreeType code. (``credits`')]&] +[s0;C1 &] +[s0; [C1 We specifically permit and encourage the inclusion + of this]&] +[s0; [C1 software, with or without modifications, in commercial +products.]&] +[s0; [C1 We disclaim all warranties covering The FreeType Project + and]&] +[s0; [C1 assume no liability related to The FreeType Project.]&] +[s0;C1 &] +[s0;C1 &] +[s0; [C1 Finally, many people asked us for a preferred form + for a]&] +[s0; [C1 credit/disclaimer to use in compliance with this license. + We thus]&] +[s0; [C1 encourage you to use the following text:]&] +[s0;C1 &] +[s0; [C1 `"`"`"]&] +[s0; [C1 Portions of this software are copyright � The +FreeType]&] +[s0; [C1 Project (www.freetype.org). All rights reserved.]&] +[s0; [C1 `"`"`"]&] +[s0;C1 &] +[s0; [C1 Please replace with the value from the FreeType version +you]&] +[s0; [C1 actually use.]&] +[s0;C1 &] +[s0;C1 &] +[s0; [C1 Legal Terms]&] +[s0; [C1 `=`=`=`=`=`=`=`=`=`=`=]&] +[s0;C1 &] +[s0; [C1 0. Definitions]&] +[s0; [C1 `-`-`-`-`-`-`-`-`-`-`-`-`-`-]&] +[s0;C1 &] +[s0; [C1 Throughout this license, the terms ``package`', ``FreeType +Project`',]&] +[s0; [C1 and ``FreeType archive`' refer to the set of files + originally]&] +[s0; [C1 distributed by the authors (David Turner, Robert Wilhelm, + and]&] +[s0; [C1 Werner Lemberg) as the ``FreeType Project`', be they named +as alpha,]&] +[s0; [C1 beta or final release.]&] +[s0;C1 &] +[s0; [C1 ``You`' refers to the licensee, or person using the project, +where]&] +[s0; [C1 ``using`' is a generic term including compiling the project`'s +source]&] +[s0; [C1 code as well as linking it to form a ``program`' or ``executable`'.]&] +[s0; [C1 This program is referred to as ``a program using the + FreeType]&] +[s0; [C1 engine`'.]&] +[s0;C1 &] +[s0; [C1 This license applies to all files distributed in the +original]&] +[s0; [C1 FreeType Project, including all source code, binaries + and]&] +[s0; [C1 documentation, unless otherwise stated in the file + in its]&] +[s0; [C1 original, unmodified form as distributed in the original +archive.]&] +[s0; [C1 If you are unsure whether or not a particular file is +covered by]&] +[s0; [C1 this license, you must contact us to verify this.]&] +[s0;C1 &] +[s0; [C1 The FreeType Project is copyright (C) 1996`-2000 by David +Turner,]&] +[s0; [C1 Robert Wilhelm, and Werner Lemberg. All rights reserved +except as]&] +[s0; [C1 specified below.]&] +[s0;C1 &] +[s0; [C1 1. No Warranty]&] +[s0; [C1 `-`-`-`-`-`-`-`-`-`-`-`-`-`-]&] +[s0;C1 &] +[s0; [C1 THE FREETYPE PROJECT IS PROVIDED ``AS IS`' WITHOUT WARRANTY +OF ANY]&] +[s0; [C1 KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED +TO,]&] +[s0; [C1 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +PARTICULAR]&] +[s0; [C1 PURPOSE. IN NO EVENT WILL ANY OF THE AUTHORS OR COPYRIGHT +HOLDERS]&] +[s0; [C1 BE LIABLE FOR ANY DAMAGES CAUSED BY THE USE OR THE INABILITY +TO]&] +[s0; [C1 USE, OF THE FREETYPE PROJECT.]&] +[s0;C1 &] +[s0; [C1 2. Redistribution]&] +[s0; [C1 `-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-]&] +[s0;C1 &] +[s0; [C1 This license grants a worldwide, royalty`-free, perpetual + and]&] +[s0; [C1 irrevocable right and license to use, execute, perform, +compile,]&] +[s0; [C1 display, copy, create derivative works of, distribute + and]&] +[s0; [C1 sublicense the FreeType Project (in both source and object +code]&] +[s0; [C1 forms) and derivative works thereof for any purpose; +and to]&] +[s0; [C1 authorize others to exercise some or all of the rights +granted]&] +[s0; [C1 herein, subject to the following conditions:]&] +[s0;C1 &] +[s0; [C1 o Redistribution of source code must retain this license +file]&] +[s0; [C1 (``FTL.TXT`') unaltered; any additions, deletions or +changes to]&] +[s0; [C1 the original files must be clearly indicated in accompanying]&] +[s0; [C1 documentation. The copyright notices of the +unaltered,]&] +[s0; [C1 original files must be preserved in all copies +of source]&] +[s0; [C1 files.]&] +[s0;C1 &] +[s0; [C1 o Redistribution in binary form must provide a disclaimer + that]&] +[s0; [C1 states that the software is based in part of the work +of the]&] +[s0; [C1 FreeType Team, in the distribution documentation. + We also]&] +[s0; [C1 encourage you to put an URL to the FreeType web page + in your]&] +[s0; [C1 documentation, though this isn`'t mandatory.]&] +[s0;C1 &] +[s0; [C1 These conditions apply to any software derived from or + based on]&] +[s0; [C1 the FreeType Project, not just the unmodified files. +If you use]&] +[s0; [C1 our work, you must acknowledge us. However, no fee need +be paid]&] +[s0; [C1 to us.]&] +[s0;C1 &] +[s0; [C1 3. Advertising]&] +[s0; [C1 `-`-`-`-`-`-`-`-`-`-`-`-`-`-]&] +[s0;C1 &] +[s0; [C1 Neither the FreeType authors and contributors nor you + shall use]&] +[s0; [C1 the name of the other for commercial, advertising, or promotional]&] +[s0; [C1 purposes without specific prior written permission.]&] +[s0;C1 &] +[s0; [C1 We suggest, but do not require, that you use one or more +of the]&] +[s0; [C1 following phrases to refer to this software in your documentation]&] +[s0; [C1 or advertising materials: ``FreeType Project`', ``FreeType +Engine`',]&] +[s0; [C1 ``FreeType library`', or ``FreeType Distribution`'.]&] +[s0;C1 &] +[s0; [C1 As you have not signed this license, you are not required +to]&] +[s0; [C1 accept it. However, as the FreeType Project is copyrighted]&] +[s0; [C1 material, only this license, or another one contracted + with the]&] +[s0; [C1 authors, grants you the right to use, distribute, and +modify it.]&] +[s0; [C1 Therefore, by using, distributing, or modifying the + FreeType]&] +[s0; [C1 Project, you indicate that you understand and accept all +the terms]&] +[s0; [C1 of this license.]&] +[s0;C1 &] +[s0; [C1 4. Contacts]&] +[s0; [C1 `-`-`-`-`-`-`-`-`-`-`-]&] +[s0;C1 &] +[s0; [C1 There are two mailing lists related to FreeType:]&] +[s0;C1 &] +[s0; [C1 o freetype`@nongnu.org]&] +[s0;C1 &] +[s0; [C1 Discusses general use and applications of FreeType, +as well as]&] +[s0; [C1 future and wanted additions to the library and distribution.]&] +[s0; [C1 If you are looking for support, start in this list + if you]&] +[s0; [C1 haven`'t found anything to help you in the documentation.]&] +[s0;C1 &] +[s0; [C1 o freetype`-devel`@nongnu.org]&] +[s0;C1 &] +[s0; [C1 Discusses bugs, as well as engine internals, design +issues,]&] +[s0; [C1 specific licenses, porting, etc.]&] +[s0;C1 &] +[s0; [C1 Our home page can be found at]&] +[s0;C1 &] +[s0; [C1 http://www.freetype.org]&] +[s0;C1 &] +[s0;C1 &] +[s0; [C1 `-`-`- end of FTL.TXT `-`-`-]&] +[s0;C1 ]}}&] +[s0; &] +[s0; Package [* plugin/glew] has following licence notice:&] +[ {{10000@(255.255.192) [s0; [C1 The OpenGL Extension Wrangler Library]&] +[s0; [C1 Copyright (C) 2002`-2008, Milan Ikits ]&] +[s0; [C1 Copyright (C) 2002`-2008, Marcelo E. Magallon ]&] +[s0; [C1 Copyright (C) 2002, Lev Povalahev]&] +[s0; [C1 All rights reserved.]&] +[s0;C1 &] +[s0; [C1 Redistribution and use in source and binary forms, with or +without ]&] +[s0; [C1 modification, are permitted provided that the following conditions +are met:]&] +[s0;C1 &] +[s0; [C1 `* Redistributions of source code must retain the above copyright +notice, ]&] +[s0; [C1 this list of conditions and the following disclaimer.]&] +[s0; [C1 `* Redistributions in binary form must reproduce the above +copyright notice, ]&] +[s0; [C1 this list of conditions and the following disclaimer in +the documentation ]&] +[s0; [C1 and/or other materials provided with the distribution.]&] +[s0; [C1 `* The name of the author may be used to endorse or promote +products ]&] +[s0; [C1 derived from this software without specific prior written +permission.]&] +[s0;C1 &] +[s0; [C1 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +`"AS IS`" ]&] +[s0; [C1 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE ]&] +[s0; [C1 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE]&] +[s0; [C1 ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS +BE ]&] +[s0; [C1 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, +OR ]&] +[s0; [C1 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT +OF ]&] +[s0; [C1 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +OR BUSINESS]&] +[s0; [C1 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN]&] +[s0; [C1 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +OR OTHERWISE)]&] +[s0; [C1 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +ADVISED OF]&] +[s0; [C1 THE POSSIBILITY OF SUCH DAMAGE.]&] +[s0;C1 &] +[s0;C1 &] +[s0; [C1 Mesa 3`-D graphics library]&] +[s0; [C1 Version: 7.0]&] +[s0;C1 &] +[s0; [C1 Copyright (C) 1999`-2007 Brian Paul All Rights Reserved.]&] +[s0;C1 &] +[s0; [C1 Permission is hereby granted, free of charge, to any person +obtaining a]&] +[s0; [C1 copy of this software and associated documentation files (the +`"Software`"),]&] +[s0; [C1 to deal in the Software without restriction, including without +limitation]&] +[s0; [C1 the rights to use, copy, modify, merge, publish, distribute, +sublicense,]&] +[s0; [C1 and/or sell copies of the Software, and to permit persons +to whom the]&] +[s0; [C1 Software is furnished to do so, subject to the following conditions:]&] +[s0;C1 &] +[s0; [C1 The above copyright notice and this permission notice shall +be included]&] +[s0; [C1 in all copies or substantial portions of the Software.]&] +[s0;C1 &] +[s0; [C1 THE SOFTWARE IS PROVIDED `"AS IS`", WITHOUT WARRANTY OF ANY +KIND, EXPRESS]&] +[s0; [C1 OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY,]&] +[s0; [C1 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL]&] +[s0; [C1 BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN]&] +[s0; [C1 AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT +OF OR IN]&] +[s0; [C1 CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +IN THE SOFTWARE.]&] +[s0;C1 &] +[s0;C1 &] +[s0; [C1 Copyright (c) 2007 The Khronos Group Inc.]&] +[s0;C1 &] +[s0; [C1 Permission is hereby granted, free of charge, to any person +obtaining a]&] +[s0; [C1 copy of this software and/or associated documentation files +(the]&] +[s0; [C1 `"Materials`"), to deal in the Materials without restriction, +including]&] +[s0; [C1 without limitation the rights to use, copy, modify, merge, +publish,]&] +[s0; [C1 distribute, sublicense, and/or sell copies of the Materials, +and to]&] +[s0; [C1 permit persons to whom the Materials are furnished to do so, +subject to]&] +[s0; [C1 the following conditions:]&] +[s0;C1 &] +[s0; [C1 The above copyright notice and this permission notice shall +be included]&] +[s0; [C1 in all copies or substantial portions of the Materials.]&] +[s0;C1 &] +[s0; [C1 THE MATERIALS ARE PROVIDED `"AS IS`", WITHOUT WARRANTY OF +ANY KIND,]&] +[s0; [C1 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF]&] +[s0; [C1 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.]&] +[s0; [C1 IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +FOR ANY]&] +[s0; [C1 CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF +CONTRACT,]&] +[s0; [C1 TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH +THE]&] +[s0; [C1 MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.]&] +[s0;C1 ]}}&] +[s0; &] +[s0; Package [* plugin/jpg] has following licence notice:&] +[ {{10000@(255.255.192) [s0; [C1 The authors make NO WARRANTY or representation, either express +or implied,]&] +[s0; [C1 with respect to this software, its quality, accuracy, merchantability, +or]&] +[s0; [C1 fitness for a particular purpose. This software is provided +`"AS IS`", and you,]&] +[s0; [C1 its user, assume the entire risk as to its quality and accuracy.]&] +[s0;C1 &] +[s0; [C1 This software is copyright (C) 1991`-1998, Thomas G. Lane.]&] +[s0; [C1 All Rights Reserved except as specified below.]&] +[s0;C1 &] +[s0; [C1 Permission is hereby granted to use, copy, modify, and distribute +this]&] +[s0; [C1 software (or portions thereof) for any purpose, without fee, +subject to these]&] +[s0; [C1 conditions:]&] +[s0; [C1 (1) If any part of the source code for this software is distributed, +then this]&] +[s0; [C1 README file must be included, with this copyright and no`-warranty +notice]&] +[s0; [C1 unaltered; and any additions, deletions, or changes to the +original files]&] +[s0; [C1 must be clearly indicated in accompanying documentation.]&] +[s0; [C1 (2) If only executable code is distributed, then the accompanying]&] +[s0; [C1 documentation must state that `"this software is based in +part on the work of]&] +[s0; [C1 the Independent JPEG Group`".]&] +[s0; [C1 (3) Permission for use of this software is granted only if +the user accepts]&] +[s0; [C1 full responsibility for any undesirable consequences; the +authors accept]&] +[s0; [C1 NO LIABILITY for damages of any kind.]&] +[s0;C1 &] +[s0; [C1 These conditions apply to any software derived from or based +on the IJG code,]&] +[s0; [C1 not just to the unmodified library. If you use our work, +you ought to]&] +[s0; [C1 acknowledge us.]&] +[s0;C1 &] +[s0; [C1 Permission is NOT granted for the use of any IJG author`'s +name or company name]&] +[s0; [C1 in advertising or publicity relating to this software or products +derived from]&] +[s0; [C1 it. This software may be referred to only as `"the Independent +JPEG Group`'s]&] +[s0; [C1 software`".]&] +[s0;C1 &] +[s0; [C1 We specifically permit and encourage the use of this software +as the basis of]&] +[s0; [C1 commercial products, provided that all warranty or liability +claims are]&] +[s0; [C1 assumed by the product vendor.]&] +[s0;C1 ]}}&] +[s0; &] +[s0; Package [* plugin/lz4] has following licence notice:&] +[ {{10000@(255.255.192) [s0; [C1 LZ4 Library]&] +[s0; [C1 Copyright (c) 2011`-2014, Yann Collet]&] +[s0; [C1 All rights reserved.]&] +[s0;C1 &] +[s0; [C1 Redistribution and use in source and binary forms, with or +without modification,]&] +[s0; [C1 are permitted provided that the following conditions are met:]&] +[s0;C1 &] +[s0; [C1 `* Redistributions of source code must retain the above copyright +notice, this]&] +[s0; [C1 list of conditions and the following disclaimer.]&] +[s0;C1 &] +[s0; [C1 `* Redistributions in binary form must reproduce the above +copyright notice, this]&] +[s0; [C1 list of conditions and the following disclaimer in the documentation +and/or]&] +[s0; [C1 other materials provided with the distribution.]&] +[s0;C1 &] +[s0; [C1 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +`"AS IS`" AND]&] +[s0; [C1 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +TO, THE IMPLIED]&] +[s0; [C1 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE]&] +[s0; [C1 DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS +BE LIABLE FOR]&] +[s0; [C1 ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES]&] +[s0; [C1 (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +GOODS OR SERVICES;]&] +[s0; [C1 LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON]&] +[s0; [C1 ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT]&] +[s0; [C1 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +OF THE USE OF THIS]&] +[s0; [C1 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.]]}}&] +[s0; &] +[s0; Package [* plugin/lzma] has following licence notice:&] +[ {{10000@(255.255.192) [s0; [C1 Igor Pavlov : Public domain]]}}&] +[s0; &] +[s0; Package [* plugin/ndisasm] has following licence notice:&] +[ {{10000@(255.255.192) [s0; [C1 NASM is now licensed under the 2`-clause BSD license, also +known as the]&] +[s0; [C1 simplified BSD license.]&] +[s0;C1 &] +[s0; [C1 Copyright 1996`-2009 the NASM Authors `- All rights reserved.]&] +[s0;C1 &] +[s0; [C1 Redistribution and use in source and binary forms, with +or without]&] +[s0; [C1 modification, are permitted provided that the following]&] +[s0; [C1 conditions are met:]&] +[s0;C1 &] +[s0; [C1 `* Redistributions of source code must retain the above +copyright]&] +[s0; [C1 notice, this list of conditions and the following disclaimer.]&] +[s0; [C1 `* Redistributions in binary form must reproduce the above]&] +[s0; [C1 copyright notice, this list of conditions and the following]&] +[s0; [C1 disclaimer in the documentation and/or other materials +provided]&] +[s0; [C1 with the distribution.]&] +[s0; [C1 ]&] +[s0; [C1 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND]&] +[s0; [C1 CONTRIBUTORS `"AS IS`" AND ANY EXPRESS OR IMPLIED WARRANTIES,]&] +[s0; [C1 INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +OF]&] +[s0; [C1 MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE]&] +[s0; [C1 DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR]&] +[s0; [C1 CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,]&] +[s0; [C1 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT]&] +[s0; [C1 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;]&] +[s0; [C1 LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)]&] +[s0; [C1 HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +IN]&] +[s0; [C1 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +OR]&] +[s0; [C1 OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE,]&] +[s0; [C1 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.]&] +[s0;C1 ]}}&] +[s0; &] +[s0; Package [* plugin/pcre] has following licence notice:&] +[ {{10000@(255.255.192) [s0; [C1 Copyright (c) 1998, 2014, The U`+`+ Project]&] +[s0; [C1 All rights reserved.]&] +[s0;C1 &] +[s0; [C1 Redistribution and use in source and binary forms, with or +without modification, are permitted]&] +[s0; [C1 provided that the following conditions are met:]&] +[s0;C1 &] +[s0; [C1 1. Redistributions of source code must retain the above copyright +notice, this list of]&] +[s0; [C1 conditions and the following disclaimer.]&] +[s0;C1 &] +[s0; [C1 2. Redistributions in binary form must reproduce the above +copyright notice, this list of]&] +[s0; [C1 conditions and the following disclaimer in the documentation +and/or other materials provided]&] +[s0; [C1 with the distribution.]&] +[s0;C1 &] +[s0; [C1 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +`"AS IS`" AND ANY EXPRESS OR]&] +[s0; [C1 IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY]&] +[s0; [C1 AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +EVENT SHALL THE COPYRIGHT HOLDER OR]&] +[s0; [C1 CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR]&] +[s0; [C1 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT +OF SUBSTITUTE GOODS OR ]&] +[s0; [C1 SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY]&] +[s0; [C1 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR]&] +[s0; [C1 OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +EVEN IF ADVISED OF THE]&] +[s0; [C1 POSSIBILITY OF SUCH DAMAGE.]&] +[s0;C1 &] +[s0; [C1 `*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`* +`*`*`*`*`*`*`*`*`*`*]&] +[s0; [C1 `* Perl`-Compatible Regular Expressions `*]&] +[s0; [C1 `*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`* +`*`*`*`*`*`*`*`*`*`*]&] +[s0;C1 &] +[s0; [C1 PCRE is a library of functions to support regular expressions +whose syntax]&] +[s0; [C1 and semantics are as close as possible to those of the Perl +5 language.]&] +[s0;C1 &] +[s0; [C1 Written by Philip Hazel]&] +[s0; [C1 Copyright (c) 1997`-2008 University of Cambridge]&] +[s0;C1 &] +[s0; [C1 `-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`- +`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-]&] +[s0; [C1 Redistribution and use in source and binary forms, with or +without]&] +[s0; [C1 modification, are permitted provided that the following conditions +are met:]&] +[s0;C1 &] +[s0; [C1 `* Redistributions of source code must retain the above +copyright notice,]&] +[s0; [C1 this list of conditions and the following disclaimer.]&] +[s0;C1 &] +[s0; [C1 `* Redistributions in binary form must reproduce the above +copyright]&] +[s0; [C1 notice, this list of conditions and the following disclaimer +in the]&] +[s0; [C1 documentation and/or other materials provided with the +distribution.]&] +[s0;C1 &] +[s0; [C1 `* Neither the name of the University of Cambridge nor +the names of its]&] +[s0; [C1 contributors may be used to endorse or promote products +derived from]&] +[s0; [C1 this software without specific prior written permission.]&] +[s0;C1 &] +[s0; [C1 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +`"AS IS`"]&] +[s0; [C1 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE]&] +[s0; [C1 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE]&] +[s0; [C1 ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS +BE]&] +[s0; [C1 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, +OR]&] +[s0; [C1 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT +OF]&] +[s0; [C1 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +OR BUSINESS]&] +[s0; [C1 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN]&] +[s0; [C1 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +OR OTHERWISE)]&] +[s0; [C1 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +ADVISED OF THE]&] +[s0; [C1 POSSIBILITY OF SUCH DAMAGE.]&] +[s0; [C1 `-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`- +`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-`-]&] +[s0;C1 ]}}&] +[s0; &] +[s0; Package [* plugin/png] has following licence notice:&] +[ {{10000@(255.255.192) [s0; [C1 If you modify libpng you may insert additional notices immediately +following]&] +[s0; [C1 this sentence.]&] +[s0;C1 &] +[s0; [C1 libpng versions 1.2.6, August 15, 2004, through 1.2.22, October +13, 2007, are]&] +[s0; [C1 Copyright (c) 2004, 2006`-2007 Glenn Randers`-Pehrson, and +are]&] +[s0; [C1 distributed according to the same disclaimer and license as +libpng`-1.2.5]&] +[s0; [C1 with the following individual added to the list of Contributing +Authors:]&] +[s0;C1 &] +[s0; [C1 Cosmin Truta]&] +[s0;C1 &] +[s0; [C1 libpng versions 1.0.7, July 1, 2000, through 1.2.5, October +3, 2002, are]&] +[s0; [C1 Copyright (c) 2000`-2002 Glenn Randers`-Pehrson, and are]&] +[s0; [C1 distributed according to the same disclaimer and license as +libpng`-1.0.6]&] +[s0; [C1 with the following individuals added to the list of Contributing +Authors:]&] +[s0;C1 &] +[s0; [C1 Simon`-Pierre Cadieux]&] +[s0; [C1 Eric S. Raymond]&] +[s0; [C1 Gilles Vollant]&] +[s0;C1 &] +[s0; [C1 and with the following additions to the disclaimer:]&] +[s0;C1 &] +[s0; [C1 There is no warranty against interference with your enjoyment +of the]&] +[s0; [C1 library or against infringement. There is no warranty +that our]&] +[s0; [C1 efforts or the library will fulfill any of your particular +purposes]&] +[s0; [C1 or needs. This library is provided with all faults, and +the entire]&] +[s0; [C1 risk of satisfactory quality, performance, accuracy, and +effort is with]&] +[s0; [C1 the user.]&] +[s0;C1 &] +[s0; [C1 libpng versions 0.97, January 1998, through 1.0.6, March 20, +2000, are]&] +[s0; [C1 Copyright (c) 1998, 1999, 2000 Glenn Randers`-Pehrson, and +are]&] +[s0; [C1 distributed according to the same disclaimer and license as +libpng`-0.96,]&] +[s0; [C1 with the following individuals added to the list of Contributing +Authors:]&] +[s0;C1 &] +[s0; [C1 Tom Lane]&] +[s0; [C1 Glenn Randers`-Pehrson]&] +[s0; [C1 Willem van Schaik]&] +[s0;C1 &] +[s0; [C1 libpng versions 0.89, June 1996, through 0.96, May 1997, are]&] +[s0; [C1 Copyright (c) 1996, 1997 Andreas Dilger]&] +[s0; [C1 Distributed according to the same disclaimer and license as +libpng`-0.88,]&] +[s0; [C1 with the following individuals added to the list of Contributing +Authors:]&] +[s0;C1 &] +[s0; [C1 John Bowler]&] +[s0; [C1 Kevin Bracey]&] +[s0; [C1 Sam Bushell]&] +[s0; [C1 Magnus Holmgren]&] +[s0; [C1 Greg Roelofs]&] +[s0; [C1 Tom Tanner]&] +[s0;C1 &] +[s0; [C1 libpng versions 0.5, May 1995, through 0.88, January 1996, +are]&] +[s0; [C1 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.]&] +[s0;C1 &] +[s0; [C1 For the purposes of this copyright and license, `"Contributing +Authors`"]&] +[s0; [C1 is defined as the following set of individuals:]&] +[s0;C1 &] +[s0; [C1 Andreas Dilger]&] +[s0; [C1 Dave Martindale]&] +[s0; [C1 Guy Eric Schalnat]&] +[s0; [C1 Paul Schmidt]&] +[s0; [C1 Tim Wegner]&] +[s0;C1 &] +[s0; [C1 The PNG Reference Library is supplied `"AS IS`". The Contributing +Authors]&] +[s0; [C1 and Group 42, Inc. disclaim all warranties, expressed or implied,]&] +[s0; [C1 including, without limitation, the warranties of merchantability +and of]&] +[s0; [C1 fitness for any purpose. The Contributing Authors and Group +42, Inc.]&] +[s0; [C1 assume no liability for direct, indirect, incidental, special, +exemplary,]&] +[s0; [C1 or consequential damages, which may result from the use of +the PNG]&] +[s0; [C1 Reference Library, even if advised of the possibility of such +damage.]&] +[s0;C1 &] +[s0; [C1 Permission is hereby granted to use, copy, modify, and distribute +this]&] +[s0; [C1 source code, or portions hereof, for any purpose, without +fee, subject]&] +[s0; [C1 to the following restrictions:]&] +[s0;C1 &] +[s0; [C1 1. The origin of this source code must not be misrepresented.]&] +[s0;C1 &] +[s0; [C1 2. Altered versions must be plainly marked as such and]&] +[s0; [C1 must not be misrepresented as being the original source.]&] +[s0;C1 &] +[s0; [C1 3. This Copyright notice may not be removed or altered from]&] +[s0; [C1 any source or altered source distribution.]&] +[s0;C1 &] +[s0; [C1 The Contributing Authors and Group 42, Inc. specifically permit, +without]&] +[s0; [C1 fee, and encourage the use of this source code as a component +to]&] +[s0; [C1 supporting the PNG file format in commercial products. If +you use this]&] +[s0; [C1 source code in a product, acknowledgment is not required but +would be]&] +[s0; [C1 appreciated.]&] +[s0;C1 ]}}&] +[s0; &] +[s0; Package [* plugin/sqlite3] has following licence notice:&] +[ {{10000@(255.255.192) [s0; [C1 The author disclaims copyright to this source code. In place +of]&] +[s0; [C1 a legal notice, here is a blessing:]&] +[s0;C1 &] +[s0; [C1 May you do good and not evil.]&] +[s0; [C1 May you find forgiveness for yourself and forgive others.]&] +[s0; [C1 May you share freely, never taking more than you give.]&] +[s0;C1 &] +[s0;C1 ]}}&] +[s0; &] +[s0; Package [* plugin/tif] has following licence notice:&] +[ {{10000@(255.255.192) [s0; [C1 Copyright (c) 1995`-1997 Sam Leffler]&] +[s0; [C1 Copyright (c) 1995`-1997 Silicon Graphics, Inc.]&] +[s0;C1 &] +[s0; [C1 Permission to use, copy, modify, distribute, and sell this +software and ]&] +[s0; [C1 its documentation for any purpose is hereby granted without +fee, provided]&] +[s0; [C1 that (i) the above copyright notices and this permission notice +appear in]&] +[s0; [C1 all copies of the software and related documentation, and +(ii) the names of]&] +[s0; [C1 Sam Leffler and Silicon Graphics may not be used in any advertising +or]&] +[s0; [C1 publicity relating to the software without the specific, prior +written]&] +[s0; [C1 permission of Sam Leffler and Silicon Graphics.]&] +[s0;C1 &] +[s0; [C1 THE SOFTWARE IS PROVIDED `"AS`-IS`" AND WITHOUT WARRANTY OF +ANY KIND, ]&] +[s0; [C1 EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, +ANY ]&] +[s0; [C1 WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + ]&] +[s0;C1 &] +[s0; [C1 IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE +FOR]&] +[s0; [C1 ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES +OF ANY KIND,]&] +[s0; [C1 OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA +OR PROFITS,]&] +[s0; [C1 WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON +ANY THEORY OF ]&] +[s0; [C1 LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE ]&] +[s0; [C1 OF THIS SOFTWARE.]&] +[s0;C1 ]}}&] +[s0; &] +[s0; Package [* plugin/z] has following licence notice:&] +[ {{10000@(255.255.192) [s0; [C1 version 1.2.8, April 28th, 2013]&] +[s0;C1 &] +[s0; [C1 Copyright (C) 1995`-2013 Jean`-loup Gailly and Mark Adler]&] +[s0;C1 &] +[s0; [C1 This software is provided `'as`-is`', without any express +or implied]&] +[s0; [C1 warranty. In no event will the authors be held liable for +any damages]&] +[s0; [C1 arising from the use of this software.]&] +[s0;C1 &] +[s0; [C1 Permission is granted to anyone to use this software for any +purpose,]&] +[s0; [C1 including commercial applications, and to alter it and redistribute +it]&] +[s0; [C1 freely, subject to the following restrictions:]&] +[s0;C1 &] +[s0; [C1 1. The origin of this software must not be misrepresented; +you must not]&] +[s0; [C1 claim that you wrote the original software. If you use +this software]&] +[s0; [C1 in a product, an acknowledgment in the product documentation +would be]&] +[s0; [C1 appreciated but is not required.]&] +[s0; [C1 2. Altered source versions must be plainly marked as such, +and must not be]&] +[s0; [C1 misrepresented as being the original software.]&] +[s0; [C1 3. This notice may not be removed or altered from any source +distribution.]&] +[s0;C1 &] +[s0; [C1 Jean`-loup Gailly Mark Adler]&] +[s0; [C1 jloup`@gzip.org madler`@alumni.caltech.edu]&] +[s0;C1 &] +[s0;C1 &] +[s0; [C1 The data format used by the zlib library is described by RFCs +(Request for]&] +[s0; [C1 Comments) 1950 to 1952 in the files http://tools.ietf.org/html/rfc1950]&] +[s0; [C1 (zlib format), rfc1951 (deflate format) and rfc1952 (gzip +format).]&] +[s0;C1 ]}}&] +[s0; &] +[s0; &] +[s0;H8;0 &] +[s0; [/ Windows releases might contain TDM`-MINGW64 binaries with following +licenses:]&] +[s0;C0 &] +[s0; [C0 MINGW`-W64]&] +[ {{10000@(255.255.192) [s0; [C0 MinGW`-w64 licensing]&] +[s0; [C0 `*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*]&] +[s0;C0 &] +[s0; [C0 The copyright and license notices have been divided in two +files:]&] +[s0; [C0 The notices in COPYING.MinGW`-w64.txt (this file) apply only +to]&] +[s0; [C0 MinGW`-w64 itself. These don`'t apply to the binaries built +with]&] +[s0; [C0 MinGW`-w64 unless you specifically tell MinGW`-w64 to link +against]&] +[s0; [C0 these parts, for example, by enabling profiling code.]&] +[s0;C0 &] +[s0; [C0 In addition to the notices in this file, also the notices +in]&] +[s0; [C0 COPYING.MinGW`-w64`-runtime.txt apply to MinGW`-w64. Some +(possibly]&] +[s0; [C0 all) notices in that file may apply also to the binaries built +with]&] +[s0; [C0 this version of MinGW`-w64. The idea is that if you create +binary]&] +[s0; [C0 packages of your software with MinGW`-w64, you can simply +copy]&] +[s0; [C0 COPYING.MinGW`-w64`-runtime.txt into your package to fulfill +the]&] +[s0; [C0 license requirements of the MinGW runtime.]&] +[s0;C0 &] +[s0; [C0 If you think that not all notices apply to your package and +want to]&] +[s0; [C0 remove some of them, note that, for example, the gdtoa files +always]&] +[s0; [C0 get linked in if you use any printf`-like function. So usually +it is]&] +[s0; [C0 easiest and safest to just keep all the notices.]&] +[s0;C0 &] +[s0;C0 &] +[s0; [C0 `=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=]&] +[s0; [C0 GCC and GNU binutils]&] +[s0; [C0 `=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=]&] +[s0;C0 &] +[s0; [C0 Copyright (C) Free Software Foundation]&] +[s0; [C0 License: GNU GPLv3`+ (see the file COPYING.GPLv3)]&] +[s0;C0 &] +[s0;C0 &] +[s0; [C0 `=`=`=`=`=`=`=`=`=`=`=`=`=`=]&] +[s0; [C0 Profiling code]&] +[s0; [C0 `=`=`=`=`=`=`=`=`=`=`=`=`=`=]&] +[s0;C0 &] +[s0; [C0 Copyright 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.]&] +[s0; [C0 License: GNU GPLv2`+ (see the file COPYING.GPLv2)]&] +[s0;C0 &] +[s0; [C0 `* `* `* `* `* `* + `*]&] +[s0;C0 &] +[s0; [C0 Copyright (c) 1982, 1983, 1986, 1992, 1993]&] +[s0; [C0 The Regents of the University of California. All rights +reserved.]&] +[s0;C0 &] +[s0; [C0 Redistribution and use in source and binary forms, with or +without]&] +[s0; [C0 modification, are permitted provided that the following conditions]&] +[s0; [C0 are met:]&] +[s0; [C0 1. Redistributions of source code must retain the above copyright]&] +[s0; [C0 notice, this list of conditions and the following disclaimer.]&] +[s0; [C0 2. Redistributions in binary form must reproduce the above +copyright]&] +[s0; [C0 notice, this list of conditions and the following disclaimer +in the]&] +[s0; [C0 documentation and/or other materials provided with the +distribution.]&] +[s0; [C0 4. Neither the name of the University nor the names of its +contributors]&] +[s0; [C0 may be used to endorse or promote products derived from +this software]&] +[s0; [C0 without specific prior written permission.]&] +[s0;C0 &] +[s0; [C0 THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS +````AS IS`'`' AND]&] +[s0; [C0 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +TO, THE]&] +[s0; [C0 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE]&] +[s0; [C0 ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS +BE LIABLE]&] +[s0; [C0 FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, +OR CONSEQUENTIAL]&] +[s0; [C0 DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +GOODS]&] +[s0; [C0 OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)]&] +[s0; [C0 HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT]&] +[s0; [C0 LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING +IN ANY WAY]&] +[s0; [C0 OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY +OF]&] +[s0; [C0 SUCH DAMAGE.]&] +[s0;C0 &] +[s0;C0 &] +[s0; [C0 `=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=]&] +[s0; [C0 DirectX and DDK headers]&] +[s0; [C0 `=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=]&] +[s0;C0 &] +[s0; [C0 DirectX and DDK headers are under GNU LGPLv2.1`+ (see the +file]&] +[s0; [C0 COPYING.LGPLv2.1) and copyrighted by various people. Using +these]&] +[s0; [C0 headers doesn`'t make LGPLv2.1 apply to your code, because +these]&] +[s0; [C0 headers files contain only data structure definitions, short]&] +[s0; [C0 macros, and short inline functions. Here is the relevant part]&] +[s0; [C0 from LGPLv2.1 section 5 paragraph 4:]&] +[s0;C0 &] +[s0; [C0 If such an object file uses only numerical parameters, +data]&] +[s0; [C0 structure layouts and accessors, and small macros and +small]&] +[s0; [C0 inline functions (ten lines or less in length), then the +use]&] +[s0; [C0 of the object file is unrestricted, regardless of whether +it]&] +[s0; [C0 is legally a derivative work.]&] +[s0;C0 &] +[s0; [C0 `=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=]&] +[s0; [C0 libmangle and gendef]&] +[s0; [C0 `=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=]&] +[s0;C0 &] +[s0; [C0 Copyright (c) 2009 mingw`-w64 project]&] +[s0;C0 &] +[s0; [C0 Contributing authors: Kai Tietz, Jonathan Yong]&] +[s0;C0 &] +[s0; [C0 Permission is hereby granted, free of charge, to any person +obtaining a]&] +[s0; [C0 copy of this software and associated documentation files (the +`"Software`"),]&] +[s0; [C0 to deal in the Software without restriction, including without +limitation]&] +[s0; [C0 the rights to use, copy, modify, merge, publish, distribute, +sublicense,]&] +[s0; [C0 and/or sell copies of the Software, and to permit persons +to whom the]&] +[s0; [C0 Software is furnished to do so, subject to the following conditions:]&] +[s0;C0 &] +[s0; [C0 The above copyright notice and this permission notice shall +be included in]&] +[s0; [C0 all copies or substantial portions of the Software.]&] +[s0;C0 &] +[s0; [C0 THE SOFTWARE IS PROVIDED `"AS IS`", WITHOUT WARRANTY OF ANY +KIND, EXPRESS OR]&] +[s0; [C0 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,]&] +[s0; [C0 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO +EVENT SHALL THE]&] +[s0; [C0 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES +OR OTHER]&] +[s0; [C0 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING]&] +[s0; [C0 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE +OR OTHER]&] +[s0; [C0 DEALINGS IN THE SOFTWARE.]&] +[s0;C0 &] +[s0;C0 &] +[s0; [C0 `=`=`=`=]&] +[s0; [C0 PSEH]&] +[s0; [C0 `=`=`=`=]&] +[s0;C0 &] +[s0; [C0 Copyright (c) 2004`-2008 KJK`::Hyperion]&] +[s0;C0 &] +[s0; [C0 Permission is hereby granted, free of charge, to any person +obtaining a]&] +[s0; [C0 copy of this software and associated documentation files (the +`"Software`"),]&] +[s0; [C0 to deal in the Software without restriction, including without +limitation]&] +[s0; [C0 the rights to use, copy, modify, merge, publish, distribute, +sublicense,]&] +[s0; [C0 and/or sell copies of the Software, and to permit persons +to whom the]&] +[s0; [C0 Software is furnished to do so, subject to the following conditions:]&] +[s0;C0 &] +[s0; [C0 The above copyright notice and this permission notice shall +be included in]&] +[s0; [C0 all copies or substantial portions of the Software.]&] +[s0;C0 &] +[s0; [C0 THE SOFTWARE IS PROVIDED `"AS IS`", WITHOUT WARRANTY OF ANY +KIND, EXPRESS OR]&] +[s0; [C0 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,]&] +[s0; [C0 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO +EVENT SHALL THE]&] +[s0; [C0 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES +OR OTHER]&] +[s0; [C0 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING]&] +[s0; [C0 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE +OR OTHER]&] +[s0; [C0 DEALINGS IN THE SOFTWARE.]&] +[s0;C0 ]}}&] +[s0;C0 &] +[s0;C0 &] +[s0; [C0 GCC runtime]&] +[ {{10000@(255.255.192) [s0; [C0 GCC RUNTIME LIBRARY EXCEPTION]&] +[s0;C0 &] +[s0; [C0 Version 3.1, 31 March 2009]&] +[s0;C0 &] +[s0; [C0 Copyright (C) 2009 Free Software Foundation, Inc. ]&] +[s0;C0 &] +[s0; [C0 Everyone is permitted to copy and distribute verbatim copies +of this]&] +[s0; [C0 license document, but changing it is not allowed.]&] +[s0;C0 &] +[s0; [C0 This GCC Runtime Library Exception (`"Exception`") is an additional]&] +[s0; [C0 permission under section 7 of the GNU General Public License, +version]&] +[s0; [C0 3 (`"GPLv3`"). It applies to a given file (the `"Runtime Library`") +that]&] +[s0; [C0 bears a notice placed by the copyright holder of the file +stating that]&] +[s0; [C0 the file is governed by GPLv3 along with this Exception.]&] +[s0;C0 &] +[s0; [C0 When you use GCC to compile a program, GCC may combine portions +of]&] +[s0; [C0 certain GCC header files and runtime libraries with the compiled]&] +[s0; [C0 program. The purpose of this Exception is to allow compilation +of]&] +[s0; [C0 non`-GPL (including proprietary) programs to use, in this +way, the]&] +[s0; [C0 header files and runtime libraries covered by this Exception.]&] +[s0;C0 &] +[s0; [C0 0. Definitions.]&] +[s0;C0 &] +[s0; [C0 A file is an `"Independent Module`" if it either requires +the Runtime]&] +[s0; [C0 Library for execution after a Compilation Process, or makes +use of an]&] +[s0; [C0 interface provided by the Runtime Library, but is not otherwise +based]&] +[s0; [C0 on the Runtime Library.]&] +[s0;C0 &] +[s0; [C0 `"GCC`" means a version of the GNU Compiler Collection, with +or without]&] +[s0; [C0 modifications, governed by version 3 (or a specified later +version) of]&] +[s0; [C0 the GNU General Public License (GPL) with the option of using +any]&] +[s0; [C0 subsequent versions published by the FSF.]&] +[s0;C0 &] +[s0; [C0 `"GPL`-compatible Software`" is software whose conditions +of propagation,]&] +[s0; [C0 modification and use would permit combination with GCC in +accord with]&] +[s0; [C0 the license of GCC.]&] +[s0;C0 &] +[s0; [C0 `"Target Code`" refers to output from any compiler for a real +or virtual]&] +[s0; [C0 target processor architecture, in executable form or suitable +for]&] +[s0; [C0 input to an assembler, loader, linker and/or execution]&] +[s0; [C0 phase. Notwithstanding that, Target Code does not include +data in any]&] +[s0; [C0 format that is used as a compiler intermediate representation, +or used]&] +[s0; [C0 for producing a compiler intermediate representation.]&] +[s0;C0 &] +[s0; [C0 The `"Compilation Process`" transforms code entirely represented +in]&] +[s0; [C0 non`-intermediate languages designed for human`-written code, +and/or in]&] +[s0; [C0 Java Virtual Machine byte code, into Target Code. Thus, for +example,]&] +[s0; [C0 use of source code generators and preprocessors need not be +considered]&] +[s0; [C0 part of the Compilation Process, since the Compilation Process +can be]&] +[s0; [C0 understood as starting with the output of the generators or]&] +[s0; [C0 preprocessors.]&] +[s0;C0 &] +[s0; [C0 A Compilation Process is `"Eligible`" if it is done using +GCC, alone or]&] +[s0; [C0 with other GPL`-compatible software, or if it is done without +using any]&] +[s0; [C0 work based on GCC. For example, using non`-GPL`-compatible +Software to]&] +[s0; [C0 optimize any GCC intermediate representations would not qualify +as an]&] +[s0; [C0 Eligible Compilation Process.]&] +[s0;C0 &] +[s0; [C0 1. Grant of Additional Permission.]&] +[s0;C0 &] +[s0; [C0 You have permission to propagate a work of Target Code formed +by]&] +[s0; [C0 combining the Runtime Library with Independent Modules, even +if such]&] +[s0; [C0 propagation would otherwise violate the terms of GPLv3, provided +that]&] +[s0; [C0 all Target Code was generated by Eligible Compilation Processes. +You]&] +[s0; [C0 may then convey such a combination under terms of your choice,]&] +[s0; [C0 consistent with the licensing of the Independent Modules.]&] +[s0;C0 &] +[s0; [C0 2. No Weakening of GCC Copyleft.]&] +[s0;C0 &] +[s0; [C0 The availability of this Exception does not imply any general]&] +[s0; [C0 presumption that third`-party software is unaffected by the +copyleft]&] +[s0; [C0 requirements of the license of GCC.]&] +[s0;C0 &] +[s0;C0 ]}}&] +[s0;C0 &] +[s0;C0 &] +[s0; [C0 MINGW`-W64 runtime]&] +[ {{10000@(255.255.192) [s0; [C0 MinGW`-w64 runtime licensing]&] +[s0; [C0 `*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*`*]&] +[s0;C0 &] +[s0; [C0 This program or library was built using MinGW`-w64 and statically]&] +[s0; [C0 linked against the MinGW`-w64 runtime. Some parts of the runtime]&] +[s0; [C0 are under licenses which require that the copyright and license]&] +[s0; [C0 notices are included when distributing the code in binary +form.]&] +[s0; [C0 These notices are listed below.]&] +[s0;C0 &] +[s0;C0 &] +[s0; [C0 `=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=]&] +[s0; [C0 Overall copyright notice]&] +[s0; [C0 `=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=]&] +[s0;C0 &] +[s0; [C0 Copyright (c) 2009, 2010 by the mingw`-w64 project]&] +[s0;C0 &] +[s0; [C0 This license has been certified as open source. It has also +been designated]&] +[s0; [C0 as GPL compatible by the Free Software Foundation (FSF).]&] +[s0;C0 &] +[s0; [C0 Redistribution and use in source and binary forms, with or +without]&] +[s0; [C0 modification, are permitted provided that the following conditions +are met:]&] +[s0;C0 &] +[s0; [C0 1. Redistributions in source code must retain the accompanying +copyright]&] +[s0; [C0 notice, this list of conditions, and the following disclaimer.]&] +[s0; [C0 2. Redistributions in binary form must reproduce the accompanying]&] +[s0; [C0 copyright notice, this list of conditions, and the following +disclaimer]&] +[s0; [C0 in the documentation and/or other materials provided +with the]&] +[s0; [C0 distribution.]&] +[s0; [C0 3. Names of the copyright holders must not be used to endorse +or promote]&] +[s0; [C0 products derived from this software without prior written +permission]&] +[s0; [C0 from the copyright holders.]&] +[s0; [C0 4. The right to distribute this software or to use it for +any purpose does]&] +[s0; [C0 not give you the right to use Servicemarks (sm) or Trademarks +(tm) of]&] +[s0; [C0 the copyright holders. Use of them is covered by separate +agreement]&] +[s0; [C0 with the copyright holders.]&] +[s0; [C0 5. If any files are modified, you must cause the modified +files to carry]&] +[s0; [C0 prominent notices stating that you changed the files +and the date of]&] +[s0; [C0 any change.]&] +[s0;C0 &] +[s0; [C0 Disclaimer]&] +[s0;C0 &] +[s0; [C0 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ````AS +IS`'`' AND ANY EXPRESSED]&] +[s0; [C0 OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES]&] +[s0; [C0 OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO]&] +[s0; [C0 EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY DIRECT, +INDIRECT,]&] +[s0; [C0 INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT]&] +[s0; [C0 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +OF USE, DATA,]&] +[s0; [C0 OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF]&] +[s0; [C0 LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING]&] +[s0; [C0 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE,]&] +[s0; [C0 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.]&] +[s0;C0 &] +[s0; [C0 `=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`= +`= ]&] +[s0; [C0 getopt, getopt`_long, and getop`_long`_only]&] +[s0; [C0 `=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`= +`= ]&] +[s0;C0 &] +[s0; [C0 Copyright (c) 2002 Todd C. Miller +]&] +[s0; [C0 ]&] +[s0; [C0 Permission to use, copy, modify, and distribute this software +for any ]&] +[s0; [C0 purpose with or without fee is hereby granted, provided that +the above ]&] +[s0; [C0 copyright notice and this permission notice appear in all +copies. ]&] +[s0; [C0 -| ]&] +[s0; [C0 THE SOFTWARE IS PROVIDED `"AS IS`" AND THE AUTHOR DISCLAIMS +ALL WARRANTIES]&] +[s0; [C0 WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES +OF]&] +[s0; [C0 MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR +BE LIABLE FOR]&] +[s0; [C0 ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR +ANY DAMAGES]&] +[s0; [C0 WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER +IN AN]&] +[s0; [C0 ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING +OUT OF]&] +[s0; [C0 OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.]&] +[s0;C0 &] +[s0; [C0 Sponsored in part by the Defense Advanced Research Projects]&] +[s0; [C0 Agency (DARPA) and Air Force Research Laboratory, Air Force]&] +[s0; [C0 Materiel Command, USAF, under agreement number F39502`-99`-1`-0512.]&] +[s0;C0 &] +[s0; [C0 `* `* `* `* `* `* + `* ]&] +[s0;C0 &] +[s0; [C0 Copyright (c) 2000 The NetBSD Foundation, Inc.]&] +[s0; [C0 All rights reserved.]&] +[s0;C0 &] +[s0; [C0 This code is derived from software contributed to The NetBSD +Foundation]&] +[s0; [C0 by Dieter Baron and Thomas Klausner.]&] +[s0;C0 &] +[s0; [C0 Redistribution and use in source and binary forms, with or +without]&] +[s0; [C0 modification, are permitted provided that the following conditions]&] +[s0; [C0 are met:]&] +[s0; [C0 1. Redistributions of source code must retain the above copyright]&] +[s0; [C0 notice, this list of conditions and the following disclaimer.]&] +[s0; [C0 2. Redistributions in binary form must reproduce the above +copyright]&] +[s0; [C0 notice, this list of conditions and the following disclaimer +in the]&] +[s0; [C0 documentation and/or other materials provided with the +distribution.]&] +[s0;C0 &] +[s0; [C0 THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND +CONTRIBUTORS]&] +[s0; [C0 ````AS IS`'`' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, +BUT NOT LIMITED]&] +[s0; [C0 TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR]&] +[s0; [C0 PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION +OR CONTRIBUTORS]&] +[s0; [C0 BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, +OR]&] +[s0; [C0 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT +OF]&] +[s0; [C0 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +OR BUSINESS]&] +[s0; [C0 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN]&] +[s0; [C0 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +OR OTHERWISE)]&] +[s0; [C0 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +ADVISED OF THE]&] +[s0; [C0 POSSIBILITY OF SUCH DAMAGE.]&] +[s0;C0 &] +[s0;C0 &] +[s0; [C0 `=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`= +`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=]&] +[s0; [C0 gdtoa: Converting between IEEE floating point numbers and ASCII]&] +[s0; [C0 `=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`= +`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=]&] +[s0;C0 &] +[s0; [C0 The author of this software is David M. Gay.]&] +[s0;C0 &] +[s0; [C0 Copyright (C) 1997, 1998, 1999, 2000, 2001 by Lucent Technologies]&] +[s0; [C0 All Rights Reserved]&] +[s0;C0 &] +[s0; [C0 Permission to use, copy, modify, and distribute this software +and]&] +[s0; [C0 its documentation for any purpose and without fee is hereby]&] +[s0; [C0 granted, provided that the above copyright notice appear in +all]&] +[s0; [C0 copies and that both that the copyright notice and this]&] +[s0; [C0 permission notice and warranty disclaimer appear in supporting]&] +[s0; [C0 documentation, and that the name of Lucent or any of its entities]&] +[s0; [C0 not be used in advertising or publicity pertaining to]&] +[s0; [C0 distribution of the software without specific, written prior]&] +[s0; [C0 permission.]&] +[s0;C0 &] +[s0; [C0 LUCENT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,]&] +[s0; [C0 INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS.]&] +[s0; [C0 IN NO EVENT SHALL LUCENT OR ANY OF ITS ENTITIES BE LIABLE +FOR ANY]&] +[s0; [C0 SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES]&] +[s0; [C0 WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER]&] +[s0; [C0 IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,]&] +[s0; [C0 ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +OF]&] +[s0; [C0 THIS SOFTWARE.]&] +[s0;C0 &] +[s0; [C0 `* `* `* `* `* `* + `*]&] +[s0;C0 &] +[s0; [C0 The author of this software is David M. Gay.]&] +[s0;C0 &] +[s0; [C0 Copyright (C) 2005 by David M. Gay]&] +[s0; [C0 All Rights Reserved]&] +[s0;C0 &] +[s0; [C0 Permission to use, copy, modify, and distribute this software +and its]&] +[s0; [C0 documentation for any purpose and without fee is hereby granted,]&] +[s0; [C0 provided that the above copyright notice appear in all copies +and that]&] +[s0; [C0 both that the copyright notice and this permission notice +and warranty]&] +[s0; [C0 disclaimer appear in supporting documentation, and that the +name of]&] +[s0; [C0 the author or any of his current or former employers not be +used in]&] +[s0; [C0 advertising or publicity pertaining to distribution of the +software]&] +[s0; [C0 without specific, written prior permission.]&] +[s0;C0 &] +[s0; [C0 THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,]&] +[s0; [C0 INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. + IN]&] +[s0; [C0 NO EVENT SHALL THE AUTHOR OR ANY OF HIS CURRENT OR FORMER +EMPLOYERS BE]&] +[s0; [C0 LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES +OR ANY]&] +[s0; [C0 DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,]&] +[s0; [C0 WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS +ACTION,]&] +[s0; [C0 ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +OF THIS]&] +[s0; [C0 SOFTWARE.]&] +[s0;C0 &] +[s0; [C0 `* `* `* `* `* `* + `*]&] +[s0;C0 &] +[s0; [C0 The author of this software is David M. Gay.]&] +[s0;C0 &] +[s0; [C0 Copyright (C) 2004 by David M. Gay.]&] +[s0; [C0 All Rights Reserved]&] +[s0; [C0 Based on material in the rest of /netlib/fp/gdota.tar.gz,]&] +[s0; [C0 which is copyright (C) 1998, 2000 by Lucent Technologies.]&] +[s0;C0 &] +[s0; [C0 Permission to use, copy, modify, and distribute this software +and]&] +[s0; [C0 its documentation for any purpose and without fee is hereby]&] +[s0; [C0 granted, provided that the above copyright notice appear in +all]&] +[s0; [C0 copies and that both that the copyright notice and this]&] +[s0; [C0 permission notice and warranty disclaimer appear in supporting]&] +[s0; [C0 documentation, and that the name of Lucent or any of its entities]&] +[s0; [C0 not be used in advertising or publicity pertaining to]&] +[s0; [C0 distribution of the software without specific, written prior]&] +[s0; [C0 permission.]&] +[s0;C0 &] +[s0; [C0 LUCENT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,]&] +[s0; [C0 INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS.]&] +[s0; [C0 IN NO EVENT SHALL LUCENT OR ANY OF ITS ENTITIES BE LIABLE +FOR ANY]&] +[s0; [C0 SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES]&] +[s0; [C0 WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER]&] +[s0; [C0 IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,]&] +[s0; [C0 ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +OF]&] +[s0; [C0 THIS SOFTWARE.]&] +[s0;C0 &] +[s0;C0 &] +[s0; [C0 `=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=]&] +[s0; [C0 Parts of the math library]&] +[s0; [C0 `=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=]&] +[s0;C0 &] +[s0; [C0 Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.]&] +[s0;C0 &] +[s0; [C0 Developed at SunSoft, a Sun Microsystems, Inc. business.]&] +[s0; [C0 Permission to use, copy, modify, and distribute this]&] +[s0; [C0 software is freely granted, provided that this notice]&] +[s0; [C0 is preserved.]&] +[s0;C0 &] +[s0; [C0 `* `* `* `* `* `* + `*]&] +[s0;C0 &] +[s0; [C0 Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.]&] +[s0;C0 &] +[s0; [C0 Developed at SunPro, a Sun Microsystems, Inc. business.]&] +[s0; [C0 Permission to use, copy, modify, and distribute this]&] +[s0; [C0 software is freely granted, provided that this notice]&] +[s0; [C0 is preserved.]&] +[s0;C0 &] +[s0; [C0 `* `* `* `* `* `* + `*]&] +[s0;C0 &] +[s0; [C0 FIXME: Cephes math lib]&] +[s0; [C0 Copyright (C) 1984`-1998 Stephen L. Moshier]&] +[s0;C0 &] +[s0; [C0 It sounds vague, but as to be found at]&] +[s0; [C0 , +it gives an]&] +[s0; [C0 impression that the author could be willing to give an explicit]&] +[s0; [C0 permission to distribute those files e.g. under a BSD style +license. So]&] +[s0; [C0 probably there is no problem here, although it could be good +to get a]&] +[s0; [C0 permission from the author and then add a license into the +Cephes files]&] +[s0; [C0 in MinGW runtime. At least on follow`-up it is marked that +debian sees the]&] +[s0; [C0 version a`-like BSD one. As MinGW.org (where those cephes +parts are coming]&] +[s0; [C0 from) distributes them now over 6 years, it should be fine.]&] +[s0;C0 &] +[s0; [C0 `=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=]&] +[s0; [C0 Headers and IDLs imported from Wine]&] +[s0; [C0 `=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=`=]&] +[s0;C0 &] +[s0; [C0 Some header and IDL files were imported from the Wine project. +These files]&] +[s0; [C0 are prominent maked in source. Their copyright belongs to +contributors and]&] +[s0; [C0 they are distributed under LGPL license.]&] +[s0;C0 &] +[s0; [C0 Disclaimer]&] +[s0;C0 &] +[s0; [C0 This library is free software; you can redistribute it and/or]&] +[s0; [C0 modify it under the terms of the GNU Lesser General Public]&] +[s0; [C0 License as published by the Free Software Foundation; either]&] +[s0; [C0 version 2.1 of the License, or (at your option) any later +version.]&] +[s0;C0 &] +[s0; [C0 This library is distributed in the hope that it will be useful,]&] +[s0; [C0 but WITHOUT ANY WARRANTY; without even the implied warranty +of]&] +[s0; [C0 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See +the GNU]&] +[s0; [C0 Lesser General Public License for more details.]]}}&] +[s0;C0 &] +[s0;C0 &] +[s0; [C0 MINGW`-W64]&] +[ {{10000@(255.255.192) [s0; [C0 Copyright (c) 2011 mingw`-w64 project]&] +[s0;C0 &] +[s0; [C0 Permission is hereby granted, free of charge, to any person +obtaining a]&] +[s0; [C0 copy of this software and associated documentation files (the +`"Software`"),]&] +[s0; [C0 to deal in the Software without restriction, including without +limitation]&] +[s0; [C0 the rights to use, copy, modify, merge, publish, distribute, +sublicense,]&] +[s0; [C0 and/or sell copies of the Software, and to permit persons +to whom the]&] +[s0; [C0 Software is furnished to do so, subject to the following conditions:]&] +[s0;C0 &] +[s0; [C0 The above copyright notice and this permission notice shall +be included in]&] +[s0; [C0 all copies or substantial portions of the Software.]&] +[s0;C0 &] +[s0; [C0 THE SOFTWARE IS PROVIDED `"AS IS`", WITHOUT WARRANTY OF ANY +KIND, EXPRESS OR]&] +[s0; [C0 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,]&] +[s0; [C0 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO +EVENT SHALL THE]&] +[s0; [C0 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES +OR OTHER]&] +[s0; [C0 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING]&] +[s0; [C0 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE +OR OTHER]&] +[s0; [C0 DEALINGS IN THE SOFTWARE.]&] +[s0;C0 &] +[s0;C0 &] +[s0; [C0 /`*]&] +[s0; [C0 `* Parts of this library are derived by:]&] +[s0; [C0 `*]&] +[s0; [C0 `* Posix Threads library for Microsoft Windows]&] +[s0; [C0 `*]&] +[s0; [C0 `* Use at own risk, there is no implied warranty to this +code.]&] +[s0; [C0 `* It uses undocumented features of Microsoft Windows that +can change]&] +[s0; [C0 `* at any time in the future.]&] +[s0; [C0 `*]&] +[s0; [C0 `* (C) 2010 Lockless Inc.]&] +[s0; [C0 `* All rights reserved.]&] +[s0; [C0 `*]&] +[s0; [C0 `* Redistribution and use in source and binary forms, with +or without modification,]&] +[s0; [C0 `* are permitted provided that the following conditions are +met:]&] +[s0; [C0 `*]&] +[s0; [C0 `*]&] +[s0; [C0 `* `* Redistributions of source code must retain the above +copyright notice,]&] +[s0; [C0 `* this list of conditions and the following disclaimer.]&] +[s0; [C0 `* `* Redistributions in binary form must reproduce the +above copyright notice,]&] +[s0; [C0 `* this list of conditions and the following disclaimer +in the documentation]&] +[s0; [C0 `* and/or other materials provided with the distribution.]&] +[s0; [C0 `* `* Neither the name of Lockless Inc. nor the names of +its contributors may be]&] +[s0; [C0 `* used to endorse or promote products derived from this +software without]&] +[s0; [C0 `* specific prior written permission.]&] +[s0; [C0 `*]&] +[s0; [C0 `* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND +CONTRIBUTORS `"AS IS`" AN]&] +[s0; [C0 `* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED]&] +[s0; [C0 `* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED.]&] +[s0; [C0 `* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS +BE LIABLE FOR ANY DIRECT,]&] +[s0; [C0 `* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING,]&] +[s0; [C0 `* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE,]&] +[s0; [C0 `* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +AND ON ANY THEORY OF]&] +[s0; [C0 `* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE]&] +[s0; [C0 `* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED]&] +[s0; [C0 `* OF THE POSSIBILITY OF SUCH DAMAGE.]&] +[s0; [C0 `*/]&] +[s0;C0 ]}}&] +[s0;C0 &] +[s0;C0 &] +[s0; [C0 GCC, binutils]&] +[ {{10000@(255.255.192) [s0; [C0 GNU GENERAL PUBLIC LICENSE]&] +[s0; [C0 Version 3, 29 June 2007]&] +[s0;C0 &] +[s0; [C0 Copyright (C) 2007 Free Software Foundation, Inc. ]&] +[s0; [C0 Everyone is permitted to copy and distribute verbatim copies]&] +[s0; [C0 of this license document, but changing it is not allowed.]&] +[s0;C0 &] +[s0; [C0 Preamble]&] +[s0;C0 &] +[s0; [C0 The GNU General Public License is a free, copyleft license +for]&] +[s0; [C0 software and other kinds of works.]&] +[s0;C0 &] +[s0; [C0 The licenses for most software and other practical works +are designed]&] +[s0; [C0 to take away your freedom to share and change the works. +By contrast,]&] +[s0; [C0 the GNU General Public License is intended to guarantee your +freedom to]&] +[s0; [C0 share and change all versions of a program`-`-to make sure +it remains free]&] +[s0; [C0 software for all its users. We, the Free Software Foundation, +use the]&] +[s0; [C0 GNU General Public License for most of our software; it applies +also to]&] +[s0; [C0 any other work released this way by its authors. You can +apply it to]&] +[s0; [C0 your programs, too.]&] +[s0;C0 &] +[s0; [C0 When we speak of free software, we are referring to freedom, +not]&] +[s0; [C0 price. Our General Public Licenses are designed to make sure +that you]&] +[s0; [C0 have the freedom to distribute copies of free software (and +charge for]&] +[s0; [C0 them if you wish), that you receive source code or can get +it if you]&] +[s0; [C0 want it, that you can change the software or use pieces of +it in new]&] +[s0; [C0 free programs, and that you know you can do these things.]&] +[s0;C0 &] +[s0; [C0 To protect your rights, we need to prevent others from denying +you]&] +[s0; [C0 these rights or asking you to surrender the rights. Therefore, +you have]&] +[s0; [C0 certain responsibilities if you distribute copies of the software, +or if]&] +[s0; [C0 you modify it: responsibilities to respect the freedom of others.]&] +[s0;C0 &] +[s0; [C0 For example, if you distribute copies of such a program, +whether]&] +[s0; [C0 gratis or for a fee, you must pass on to the recipients the +same]&] +[s0; [C0 freedoms that you received. You must make sure that they, +too, receive]&] +[s0; [C0 or can get the source code. And you must show them these +terms so they]&] +[s0; [C0 know their rights.]&] +[s0;C0 &] +[s0; [C0 Developers that use the GNU GPL protect your rights with +two steps:]&] +[s0; [C0 (1) assert copyright on the software, and (2) offer you this +License]&] +[s0; [C0 giving you legal permission to copy, distribute and/or modify +it.]&] +[s0;C0 &] +[s0; [C0 For the developers`' and authors`' protection, the GPL clearly +explains]&] +[s0; [C0 that there is no warranty for this free software. For both +users`' and]&] +[s0; [C0 authors`' sake, the GPL requires that modified versions be +marked as]&] +[s0; [C0 changed, so that their problems will not be attributed erroneously +to]&] +[s0; [C0 authors of previous versions.]&] +[s0;C0 &] +[s0; [C0 Some devices are designed to deny users access to install +or run]&] +[s0; [C0 modified versions of the software inside them, although the +manufacturer]&] +[s0; [C0 can do so. This is fundamentally incompatible with the aim +of]&] +[s0; [C0 protecting users`' freedom to change the software. The systematic]&] +[s0; [C0 pattern of such abuse occurs in the area of products for individuals +to]&] +[s0; [C0 use, which is precisely where it is most unacceptable. Therefore, +we]&] +[s0; [C0 have designed this version of the GPL to prohibit the practice +for those]&] +[s0; [C0 products. If such problems arise substantially in other domains, +we]&] +[s0; [C0 stand ready to extend this provision to those domains in future +versions]&] +[s0; [C0 of the GPL, as needed to protect the freedom of users.]&] +[s0;C0 &] +[s0; [C0 Finally, every program is threatened constantly by software +patents.]&] +[s0; [C0 States should not allow patents to restrict development and +use of]&] +[s0; [C0 software on general`-purpose computers, but in those that +do, we wish to]&] +[s0; [C0 avoid the special danger that patents applied to a free program +could]&] +[s0; [C0 make it effectively proprietary. To prevent this, the GPL +assures that]&] +[s0; [C0 patents cannot be used to render the program non`-free.]&] +[s0;C0 &] +[s0; [C0 The precise terms and conditions for copying, distribution +and]&] +[s0; [C0 modification follow.]&] +[s0;C0 &] +[s0; [C0 TERMS AND CONDITIONS]&] +[s0;C0 &] +[s0; [C0 0. Definitions.]&] +[s0;C0 &] +[s0; [C0 `"This License`" refers to version 3 of the GNU General +Public License.]&] +[s0;C0 &] +[s0; [C0 `"Copyright`" also means copyright`-like laws that apply +to other kinds of]&] +[s0; [C0 works, such as semiconductor masks.]&] +[s0;C0 &] +[s0; [C0 `"The Program`" refers to any copyrightable work licensed +under this]&] +[s0; [C0 License. Each licensee is addressed as `"you`". `"Licensees`" +and]&] +[s0; [C0 `"recipients`" may be individuals or organizations.]&] +[s0;C0 &] +[s0; [C0 To `"modify`" a work means to copy from or adapt all or +part of the work]&] +[s0; [C0 in a fashion requiring copyright permission, other than the +making of an]&] +[s0; [C0 exact copy. The resulting work is called a `"modified version`" +of the]&] +[s0; [C0 earlier work or a work `"based on`" the earlier work.]&] +[s0;C0 &] +[s0; [C0 A `"covered work`" means either the unmodified Program or +a work based]&] +[s0; [C0 on the Program.]&] +[s0;C0 &] +[s0; [C0 To `"propagate`" a work means to do anything with it that, +without]&] +[s0; [C0 permission, would make you directly or secondarily liable +for]&] +[s0; [C0 infringement under applicable copyright law, except executing +it on a]&] +[s0; [C0 computer or modifying a private copy. Propagation includes +copying,]&] +[s0; [C0 distribution (with or without modification), making available +to the]&] +[s0; [C0 public, and in some countries other activities as well.]&] +[s0;C0 &] +[s0; [C0 To `"convey`" a work means any kind of propagation that +enables other]&] +[s0; [C0 parties to make or receive copies. Mere interaction with +a user through]&] +[s0; [C0 a computer network, with no transfer of a copy, is not conveying.]&] +[s0;C0 &] +[s0; [C0 An interactive user interface displays `"Appropriate Legal +Notices`"]&] +[s0; [C0 to the extent that it includes a convenient and prominently +visible]&] +[s0; [C0 feature that (1) displays an appropriate copyright notice, +and (2)]&] +[s0; [C0 tells the user that there is no warranty for the work (except +to the]&] +[s0; [C0 extent that warranties are provided), that licensees may convey +the]&] +[s0; [C0 work under this License, and how to view a copy of this License. + If]&] +[s0; [C0 the interface presents a list of user commands or options, +such as a]&] +[s0; [C0 menu, a prominent item in the list meets this criterion.]&] +[s0;C0 &] +[s0; [C0 1. Source Code.]&] +[s0;C0 &] +[s0; [C0 The `"source code`" for a work means the preferred form +of the work]&] +[s0; [C0 for making modifications to it. `"Object code`" means any +non`-source]&] +[s0; [C0 form of a work.]&] +[s0;C0 &] +[s0; [C0 A `"Standard Interface`" means an interface that either +is an official]&] +[s0; [C0 standard defined by a recognized standards body, or, in the +case of]&] +[s0; [C0 interfaces specified for a particular programming language, +one that]&] +[s0; [C0 is widely used among developers working in that language.]&] +[s0;C0 &] +[s0; [C0 The `"System Libraries`" of an executable work include anything, +other]&] +[s0; [C0 than the work as a whole, that (a) is included in the normal +form of]&] +[s0; [C0 packaging a Major Component, but which is not part of that +Major]&] +[s0; [C0 Component, and (b) serves only to enable use of the work with +that]&] +[s0; [C0 Major Component, or to implement a Standard Interface for +which an]&] +[s0; [C0 implementation is available to the public in source code form. + A]&] +[s0; [C0 `"Major Component`", in this context, means a major essential +component]&] +[s0; [C0 (kernel, window system, and so on) of the specific operating +system]&] +[s0; [C0 (if any) on which the executable work runs, or a compiler +used to]&] +[s0; [C0 produce the work, or an object code interpreter used to run +it.]&] +[s0;C0 &] +[s0; [C0 The `"Corresponding Source`" for a work in object code form +means all]&] +[s0; [C0 the source code needed to generate, install, and (for an executable]&] +[s0; [C0 work) run the object code and to modify the work, including +scripts to]&] +[s0; [C0 control those activities. However, it does not include the +work`'s]&] +[s0; [C0 System Libraries, or general`-purpose tools or generally available +free]&] +[s0; [C0 programs which are used unmodified in performing those activities +but]&] +[s0; [C0 which are not part of the work. For example, Corresponding +Source]&] +[s0; [C0 includes interface definition files associated with source +files for]&] +[s0; [C0 the work, and the source code for shared libraries and dynamically]&] +[s0; [C0 linked subprograms that the work is specifically designed +to require,]&] +[s0; [C0 such as by intimate data communication or control flow between +those]&] +[s0; [C0 subprograms and other parts of the work.]&] +[s0;C0 &] +[s0; [C0 The Corresponding Source need not include anything that +users]&] +[s0; [C0 can regenerate automatically from other parts of the Corresponding]&] +[s0; [C0 Source.]&] +[s0;C0 &] +[s0; [C0 The Corresponding Source for a work in source code form +is that]&] +[s0; [C0 same work.]&] +[s0;C0 &] +[s0; [C0 2. Basic Permissions.]&] +[s0;C0 &] +[s0; [C0 All rights granted under this License are granted for the +term of]&] +[s0; [C0 copyright on the Program, and are irrevocable provided the +stated]&] +[s0; [C0 conditions are met. This License explicitly affirms your +unlimited]&] +[s0; [C0 permission to run the unmodified Program. The output from +running a]&] +[s0; [C0 covered work is covered by this License only if the output, +given its]&] +[s0; [C0 content, constitutes a covered work. This License acknowledges +your]&] +[s0; [C0 rights of fair use or other equivalent, as provided by copyright +law.]&] +[s0;C0 &] +[s0; [C0 You may make, run and propagate covered works that you do +not]&] +[s0; [C0 convey, without conditions so long as your license otherwise +remains]&] +[s0; [C0 in force. You may convey covered works to others for the +sole purpose]&] +[s0; [C0 of having them make modifications exclusively for you, or +provide you]&] +[s0; [C0 with facilities for running those works, provided that you +comply with]&] +[s0; [C0 the terms of this License in conveying all material for which +you do]&] +[s0; [C0 not control copyright. Those thus making or running the covered +works]&] +[s0; [C0 for you must do so exclusively on your behalf, under your +direction]&] +[s0; [C0 and control, on terms that prohibit them from making any copies +of]&] +[s0; [C0 your copyrighted material outside their relationship with +you.]&] +[s0;C0 &] +[s0; [C0 Conveying under any other circumstances is permitted solely +under]&] +[s0; [C0 the conditions stated below. Sublicensing is not allowed; +section 10]&] +[s0; [C0 makes it unnecessary.]&] +[s0;C0 &] +[s0; [C0 3. Protecting Users`' Legal Rights From Anti`-Circumvention +Law.]&] +[s0;C0 &] +[s0; [C0 No covered work shall be deemed part of an effective technological]&] +[s0; [C0 measure under any applicable law fulfilling obligations under +article]&] +[s0; [C0 11 of the WIPO copyright treaty adopted on 20 December 1996, +or]&] +[s0; [C0 similar laws prohibiting or restricting circumvention of such]&] +[s0; [C0 measures.]&] +[s0;C0 &] +[s0; [C0 When you convey a covered work, you waive any legal power +to forbid]&] +[s0; [C0 circumvention of technological measures to the extent such +circumvention]&] +[s0; [C0 is effected by exercising rights under this License with respect +to]&] +[s0; [C0 the covered work, and you disclaim any intention to limit +operation or]&] +[s0; [C0 modification of the work as a means of enforcing, against +the work`'s]&] +[s0; [C0 users, your or third parties`' legal rights to forbid circumvention +of]&] +[s0; [C0 technological measures.]&] +[s0;C0 &] +[s0; [C0 4. Conveying Verbatim Copies.]&] +[s0;C0 &] +[s0; [C0 You may convey verbatim copies of the Program`'s source +code as you]&] +[s0; [C0 receive it, in any medium, provided that you conspicuously +and]&] +[s0; [C0 appropriately publish on each copy an appropriate copyright +notice;]&] +[s0; [C0 keep intact all notices stating that this License and any]&] +[s0; [C0 non`-permissive terms added in accord with section 7 apply +to the code;]&] +[s0; [C0 keep intact all notices of the absence of any warranty; and +give all]&] +[s0; [C0 recipients a copy of this License along with the Program.]&] +[s0;C0 &] +[s0; [C0 You may charge any price or no price for each copy that +you convey,]&] +[s0; [C0 and you may offer support or warranty protection for a fee.]&] +[s0;C0 &] +[s0; [C0 5. Conveying Modified Source Versions.]&] +[s0;C0 &] +[s0; [C0 You may convey a work based on the Program, or the modifications +to]&] +[s0; [C0 produce it from the Program, in the form of source code under +the]&] +[s0; [C0 terms of section 4, provided that you also meet all of these +conditions:]&] +[s0;C0 &] +[s0; [C0 a) The work must carry prominent notices stating that +you modified]&] +[s0; [C0 it, and giving a relevant date.]&] +[s0;C0 &] +[s0; [C0 b) The work must carry prominent notices stating that +it is]&] +[s0; [C0 released under this License and any conditions added under +section]&] +[s0; [C0 7. This requirement modifies the requirement in section +4 to]&] +[s0; [C0 `"keep intact all notices`".]&] +[s0;C0 &] +[s0; [C0 c) You must license the entire work, as a whole, under +this]&] +[s0; [C0 License to anyone who comes into possession of a copy. + This]&] +[s0; [C0 License will therefore apply, along with any applicable +section 7]&] +[s0; [C0 additional terms, to the whole of the work, and all its +parts,]&] +[s0; [C0 regardless of how they are packaged. This License gives +no]&] +[s0; [C0 permission to license the work in any other way, but it +does not]&] +[s0; [C0 invalidate such permission if you have separately received +it.]&] +[s0;C0 &] +[s0; [C0 d) If the work has interactive user interfaces, each must +display]&] +[s0; [C0 Appropriate Legal Notices; however, if the Program has +interactive]&] +[s0; [C0 interfaces that do not display Appropriate Legal Notices, +your]&] +[s0; [C0 work need not make them do so.]&] +[s0;C0 &] +[s0; [C0 A compilation of a covered work with other separate and +independent]&] +[s0; [C0 works, which are not by their nature extensions of the covered +work,]&] +[s0; [C0 and which are not combined with it such as to form a larger +program,]&] +[s0; [C0 in or on a volume of a storage or distribution medium, is +called an]&] +[s0; [C0 `"aggregate`" if the compilation and its resulting copyright +are not]&] +[s0; [C0 used to limit the access or legal rights of the compilation`'s +users]&] +[s0; [C0 beyond what the individual works permit. Inclusion of a covered +work]&] +[s0; [C0 in an aggregate does not cause this License to apply to the +other]&] +[s0; [C0 parts of the aggregate.]&] +[s0;C0 &] +[s0; [C0 6. Conveying Non`-Source Forms.]&] +[s0;C0 &] +[s0; [C0 You may convey a covered work in object code form under +the terms]&] +[s0; [C0 of sections 4 and 5, provided that you also convey the]&] +[s0; [C0 machine`-readable Corresponding Source under the terms of +this License,]&] +[s0; [C0 in one of these ways:]&] +[s0;C0 &] +[s0; [C0 a) Convey the object code in, or embodied in, a physical +product]&] +[s0; [C0 (including a physical distribution medium), accompanied +by the]&] +[s0; [C0 Corresponding Source fixed on a durable physical medium]&] +[s0; [C0 customarily used for software interchange.]&] +[s0;C0 &] +[s0; [C0 b) Convey the object code in, or embodied in, a physical +product]&] +[s0; [C0 (including a physical distribution medium), accompanied +by a]&] +[s0; [C0 written offer, valid for at least three years and valid +for as]&] +[s0; [C0 long as you offer spare parts or customer support for +that product]&] +[s0; [C0 model, to give anyone who possesses the object code either +(1) a]&] +[s0; [C0 copy of the Corresponding Source for all the software +in the]&] +[s0; [C0 product that is covered by this License, on a durable +physical]&] +[s0; [C0 medium customarily used for software interchange, for +a price no]&] +[s0; [C0 more than your reasonable cost of physically performing +this]&] +[s0; [C0 conveying of source, or (2) access to copy the]&] +[s0; [C0 Corresponding Source from a network server at no charge.]&] +[s0;C0 &] +[s0; [C0 c) Convey individual copies of the object code with a +copy of the]&] +[s0; [C0 written offer to provide the Corresponding Source. This]&] +[s0; [C0 alternative is allowed only occasionally and noncommercially, +and]&] +[s0; [C0 only if you received the object code with such an offer, +in accord]&] +[s0; [C0 with subsection 6b.]&] +[s0;C0 &] +[s0; [C0 d) Convey the object code by offering access from a designated]&] +[s0; [C0 place (gratis or for a charge), and offer equivalent access +to the]&] +[s0; [C0 Corresponding Source in the same way through the same +place at no]&] +[s0; [C0 further charge. You need not require recipients to copy +the]&] +[s0; [C0 Corresponding Source along with the object code. If the +place to]&] +[s0; [C0 copy the object code is a network server, the Corresponding +Source]&] +[s0; [C0 may be on a different server (operated by you or a third +party)]&] +[s0; [C0 that supports equivalent copying facilities, provided +you maintain]&] +[s0; [C0 clear directions next to the object code saying where +to find the]&] +[s0; [C0 Corresponding Source. Regardless of what server hosts +the]&] +[s0; [C0 Corresponding Source, you remain obligated to ensure that +it is]&] +[s0; [C0 available for as long as needed to satisfy these requirements.]&] +[s0;C0 &] +[s0; [C0 e) Convey the object code using peer`-to`-peer transmission, +provided]&] +[s0; [C0 you inform other peers where the object code and Corresponding]&] +[s0; [C0 Source of the work are being offered to the general public +at no]&] +[s0; [C0 charge under subsection 6d.]&] +[s0;C0 &] +[s0; [C0 A separable portion of the object code, whose source code +is excluded]&] +[s0; [C0 from the Corresponding Source as a System Library, need not +be]&] +[s0; [C0 included in conveying the object code work.]&] +[s0;C0 &] +[s0; [C0 A `"User Product`" is either (1) a `"consumer product`", +which means any]&] +[s0; [C0 tangible personal property which is normally used for personal, +family,]&] +[s0; [C0 or household purposes, or (2) anything designed or sold for +incorporation]&] +[s0; [C0 into a dwelling. In determining whether a product is a consumer +product,]&] +[s0; [C0 doubtful cases shall be resolved in favor of coverage. For +a particular]&] +[s0; [C0 product received by a particular user, `"normally used`" refers +to a]&] +[s0; [C0 typical or common use of that class of product, regardless +of the status]&] +[s0; [C0 of the particular user or of the way in which the particular +user]&] +[s0; [C0 actually uses, or expects or is expected to use, the product. + A product]&] +[s0; [C0 is a consumer product regardless of whether the product has +substantial]&] +[s0; [C0 commercial, industrial or non`-consumer uses, unless such +uses represent]&] +[s0; [C0 the only significant mode of use of the product.]&] +[s0;C0 &] +[s0; [C0 `"Installation Information`" for a User Product means any +methods,]&] +[s0; [C0 procedures, authorization keys, or other information required +to install]&] +[s0; [C0 and execute modified versions of a covered work in that User +Product from]&] +[s0; [C0 a modified version of its Corresponding Source. The information +must]&] +[s0; [C0 suffice to ensure that the continued functioning of the modified +object]&] +[s0; [C0 code is in no case prevented or interfered with solely because]&] +[s0; [C0 modification has been made.]&] +[s0;C0 &] +[s0; [C0 If you convey an object code work under this section in, +or with, or]&] +[s0; [C0 specifically for use in, a User Product, and the conveying +occurs as]&] +[s0; [C0 part of a transaction in which the right of possession and +use of the]&] +[s0; [C0 User Product is transferred to the recipient in perpetuity +or for a]&] +[s0; [C0 fixed term (regardless of how the transaction is characterized), +the]&] +[s0; [C0 Corresponding Source conveyed under this section must be accompanied]&] +[s0; [C0 by the Installation Information. But this requirement does +not apply]&] +[s0; [C0 if neither you nor any third party retains the ability to +install]&] +[s0; [C0 modified object code on the User Product (for example, the +work has]&] +[s0; [C0 been installed in ROM).]&] +[s0;C0 &] +[s0; [C0 The requirement to provide Installation Information does +not include a]&] +[s0; [C0 requirement to continue to provide support service, warranty, +or updates]&] +[s0; [C0 for a work that has been modified or installed by the recipient, +or for]&] +[s0; [C0 the User Product in which it has been modified or installed. + Access to a]&] +[s0; [C0 network may be denied when the modification itself materially +and]&] +[s0; [C0 adversely affects the operation of the network or violates +the rules and]&] +[s0; [C0 protocols for communication across the network.]&] +[s0;C0 &] +[s0; [C0 Corresponding Source conveyed, and Installation Information +provided,]&] +[s0; [C0 in accord with this section must be in a format that is publicly]&] +[s0; [C0 documented (and with an implementation available to the public +in]&] +[s0; [C0 source code form), and must require no special password or +key for]&] +[s0; [C0 unpacking, reading or copying.]&] +[s0;C0 &] +[s0; [C0 7. Additional Terms.]&] +[s0;C0 &] +[s0; [C0 `"Additional permissions`" are terms that supplement the +terms of this]&] +[s0; [C0 License by making exceptions from one or more of its conditions.]&] +[s0; [C0 Additional permissions that are applicable to the entire Program +shall]&] +[s0; [C0 be treated as though they were included in this License, to +the extent]&] +[s0; [C0 that they are valid under applicable law. If additional permissions]&] +[s0; [C0 apply only to part of the Program, that part may be used separately]&] +[s0; [C0 under those permissions, but the entire Program remains governed +by]&] +[s0; [C0 this License without regard to the additional permissions.]&] +[s0;C0 &] +[s0; [C0 When you convey a copy of a covered work, you may at your +option]&] +[s0; [C0 remove any additional permissions from that copy, or from +any part of]&] +[s0; [C0 it. (Additional permissions may be written to require their +own]&] +[s0; [C0 removal in certain cases when you modify the work.) You may +place]&] +[s0; [C0 additional permissions on material, added by you to a covered +work,]&] +[s0; [C0 for which you have or can give appropriate copyright permission.]&] +[s0;C0 &] +[s0; [C0 Notwithstanding any other provision of this License, for +material you]&] +[s0; [C0 add to a covered work, you may (if authorized by the copyright +holders of]&] +[s0; [C0 that material) supplement the terms of this License with terms:]&] +[s0;C0 &] +[s0; [C0 a) Disclaiming warranty or limiting liability differently +from the]&] +[s0; [C0 terms of sections 15 and 16 of this License; or]&] +[s0;C0 &] +[s0; [C0 b) Requiring preservation of specified reasonable legal +notices or]&] +[s0; [C0 author attributions in that material or in the Appropriate +Legal]&] +[s0; [C0 Notices displayed by works containing it; or]&] +[s0;C0 &] +[s0; [C0 c) Prohibiting misrepresentation of the origin of that +material, or]&] +[s0; [C0 requiring that modified versions of such material be marked +in]&] +[s0; [C0 reasonable ways as different from the original version; +or]&] +[s0;C0 &] +[s0; [C0 d) Limiting the use for publicity purposes of names of +licensors or]&] +[s0; [C0 authors of the material; or]&] +[s0;C0 &] +[s0; [C0 e) Declining to grant rights under trademark law for use +of some]&] +[s0; [C0 trade names, trademarks, or service marks; or]&] +[s0;C0 &] +[s0; [C0 f) Requiring indemnification of licensors and authors +of that]&] +[s0; [C0 material by anyone who conveys the material (or modified +versions of]&] +[s0; [C0 it) with contractual assumptions of liability to the recipient, +for]&] +[s0; [C0 any liability that these contractual assumptions directly +impose on]&] +[s0; [C0 those licensors and authors.]&] +[s0;C0 &] +[s0; [C0 All other non`-permissive additional terms are considered +`"further]&] +[s0; [C0 restrictions`" within the meaning of section 10. If the Program +as you]&] +[s0; [C0 received it, or any part of it, contains a notice stating +that it is]&] +[s0; [C0 governed by this License along with a term that is a further]&] +[s0; [C0 restriction, you may remove that term. If a license document +contains]&] +[s0; [C0 a further restriction but permits relicensing or conveying +under this]&] +[s0; [C0 License, you may add to a covered work material governed by +the terms]&] +[s0; [C0 of that license document, provided that the further restriction +does]&] +[s0; [C0 not survive such relicensing or conveying.]&] +[s0;C0 &] +[s0; [C0 If you add terms to a covered work in accord with this section, +you]&] +[s0; [C0 must place, in the relevant source files, a statement of the]&] +[s0; [C0 additional terms that apply to those files, or a notice indicating]&] +[s0; [C0 where to find the applicable terms.]&] +[s0;C0 &] +[s0; [C0 Additional terms, permissive or non`-permissive, may be +stated in the]&] +[s0; [C0 form of a separately written license, or stated as exceptions;]&] +[s0; [C0 the above requirements apply either way.]&] +[s0;C0 &] +[s0; [C0 8. Termination.]&] +[s0;C0 &] +[s0; [C0 You may not propagate or modify a covered work except as +expressly]&] +[s0; [C0 provided under this License. Any attempt otherwise to propagate +or]&] +[s0; [C0 modify it is void, and will automatically terminate your rights +under]&] +[s0; [C0 this License (including any patent licenses granted under +the third]&] +[s0; [C0 paragraph of section 11).]&] +[s0;C0 &] +[s0; [C0 However, if you cease all violation of this License, then +your]&] +[s0; [C0 license from a particular copyright holder is reinstated (a)]&] +[s0; [C0 provisionally, unless and until the copyright holder explicitly +and]&] +[s0; [C0 finally terminates your license, and (b) permanently, if the +copyright]&] +[s0; [C0 holder fails to notify you of the violation by some reasonable +means]&] +[s0; [C0 prior to 60 days after the cessation.]&] +[s0;C0 &] +[s0; [C0 Moreover, your license from a particular copyright holder +is]&] +[s0; [C0 reinstated permanently if the copyright holder notifies you +of the]&] +[s0; [C0 violation by some reasonable means, this is the first time +you have]&] +[s0; [C0 received notice of violation of this License (for any work) +from that]&] +[s0; [C0 copyright holder, and you cure the violation prior to 30 days +after]&] +[s0; [C0 your receipt of the notice.]&] +[s0;C0 &] +[s0; [C0 Termination of your rights under this section does not terminate +the]&] +[s0; [C0 licenses of parties who have received copies or rights from +you under]&] +[s0; [C0 this License. If your rights have been terminated and not +permanently]&] +[s0; [C0 reinstated, you do not qualify to receive new licenses for +the same]&] +[s0; [C0 material under section 10.]&] +[s0;C0 &] +[s0; [C0 9. Acceptance Not Required for Having Copies.]&] +[s0;C0 &] +[s0; [C0 You are not required to accept this License in order to +receive or]&] +[s0; [C0 run a copy of the Program. Ancillary propagation of a covered +work]&] +[s0; [C0 occurring solely as a consequence of using peer`-to`-peer +transmission]&] +[s0; [C0 to receive a copy likewise does not require acceptance. However,]&] +[s0; [C0 nothing other than this License grants you permission to propagate +or]&] +[s0; [C0 modify any covered work. These actions infringe copyright +if you do]&] +[s0; [C0 not accept this License. Therefore, by modifying or propagating +a]&] +[s0; [C0 covered work, you indicate your acceptance of this License +to do so.]&] +[s0;C0 &] +[s0; [C0 10. Automatic Licensing of Downstream Recipients.]&] +[s0;C0 &] +[s0; [C0 Each time you convey a covered work, the recipient automatically]&] +[s0; [C0 receives a license from the original licensors, to run, modify +and]&] +[s0; [C0 propagate that work, subject to this License. You are not +responsible]&] +[s0; [C0 for enforcing compliance by third parties with this License.]&] +[s0;C0 &] +[s0; [C0 An `"entity transaction`" is a transaction transferring +control of an]&] +[s0; [C0 organization, or substantially all assets of one, or subdividing +an]&] +[s0; [C0 organization, or merging organizations. If propagation of +a covered]&] +[s0; [C0 work results from an entity transaction, each party to that]&] +[s0; [C0 transaction who receives a copy of the work also receives +whatever]&] +[s0; [C0 licenses to the work the party`'s predecessor in interest +had or could]&] +[s0; [C0 give under the previous paragraph, plus a right to possession +of the]&] +[s0; [C0 Corresponding Source of the work from the predecessor in interest, +if]&] +[s0; [C0 the predecessor has it or can get it with reasonable efforts.]&] +[s0;C0 &] +[s0; [C0 You may not impose any further restrictions on the exercise +of the]&] +[s0; [C0 rights granted or affirmed under this License. For example, +you may]&] +[s0; [C0 not impose a license fee, royalty, or other charge for exercise +of]&] +[s0; [C0 rights granted under this License, and you may not initiate +litigation]&] +[s0; [C0 (including a cross`-claim or counterclaim in a lawsuit) alleging +that]&] +[s0; [C0 any patent claim is infringed by making, using, selling, offering +for]&] +[s0; [C0 sale, or importing the Program or any portion of it.]&] +[s0;C0 &] +[s0; [C0 11. Patents.]&] +[s0;C0 &] +[s0; [C0 A `"contributor`" is a copyright holder who authorizes use +under this]&] +[s0; [C0 License of the Program or a work on which the Program is based. + The]&] +[s0; [C0 work thus licensed is called the contributor`'s `"contributor +version`".]&] +[s0;C0 &] +[s0; [C0 A contributor`'s `"essential patent claims`" are all patent +claims]&] +[s0; [C0 owned or controlled by the contributor, whether already acquired +or]&] +[s0; [C0 hereafter acquired, that would be infringed by some manner, +permitted]&] +[s0; [C0 by this License, of making, using, or selling its contributor +version,]&] +[s0; [C0 but do not include claims that would be infringed only as +a]&] +[s0; [C0 consequence of further modification of the contributor version. + For]&] +[s0; [C0 purposes of this definition, `"control`" includes the right +to grant]&] +[s0; [C0 patent sublicenses in a manner consistent with the requirements +of]&] +[s0; [C0 this License.]&] +[s0;C0 &] +[s0; [C0 Each contributor grants you a non`-exclusive, worldwide, +royalty`-free]&] +[s0; [C0 patent license under the contributor`'s essential patent claims, +to]&] +[s0; [C0 make, use, sell, offer for sale, import and otherwise run, +modify and]&] +[s0; [C0 propagate the contents of its contributor version.]&] +[s0;C0 &] +[s0; [C0 In the following three paragraphs, a `"patent license`" +is any express]&] +[s0; [C0 agreement or commitment, however denominated, not to enforce +a patent]&] +[s0; [C0 (such as an express permission to practice a patent or covenant +not to]&] +[s0; [C0 sue for patent infringement). To `"grant`" such a patent +license to a]&] +[s0; [C0 party means to make such an agreement or commitment not to +enforce a]&] +[s0; [C0 patent against the party.]&] +[s0;C0 &] +[s0; [C0 If you convey a covered work, knowingly relying on a patent +license,]&] +[s0; [C0 and the Corresponding Source of the work is not available +for anyone]&] +[s0; [C0 to copy, free of charge and under the terms of this License, +through a]&] +[s0; [C0 publicly available network server or other readily accessible +means,]&] +[s0; [C0 then you must either (1) cause the Corresponding Source to +be so]&] +[s0; [C0 available, or (2) arrange to deprive yourself of the benefit +of the]&] +[s0; [C0 patent license for this particular work, or (3) arrange, in +a manner]&] +[s0; [C0 consistent with the requirements of this License, to extend +the patent]&] +[s0; [C0 license to downstream recipients. `"Knowingly relying`" means +you have]&] +[s0; [C0 actual knowledge that, but for the patent license, your conveying +the]&] +[s0; [C0 covered work in a country, or your recipient`'s use of the +covered work]&] +[s0; [C0 in a country, would infringe one or more identifiable patents +in that]&] +[s0; [C0 country that you have reason to believe are valid.]&] +[s0;C0 &] +[s0; [C0 If, pursuant to or in connection with a single transaction +or]&] +[s0; [C0 arrangement, you convey, or propagate by procuring conveyance +of, a]&] +[s0; [C0 covered work, and grant a patent license to some of the parties]&] +[s0; [C0 receiving the covered work authorizing them to use, propagate, +modify]&] +[s0; [C0 or convey a specific copy of the covered work, then the patent +license]&] +[s0; [C0 you grant is automatically extended to all recipients of the +covered]&] +[s0; [C0 work and works based on it.]&] +[s0;C0 &] +[s0; [C0 A patent license is `"discriminatory`" if it does not include +within]&] +[s0; [C0 the scope of its coverage, prohibits the exercise of, or is]&] +[s0; [C0 conditioned on the non`-exercise of one or more of the rights +that are]&] +[s0; [C0 specifically granted under this License. You may not convey +a covered]&] +[s0; [C0 work if you are a party to an arrangement with a third party +that is]&] +[s0; [C0 in the business of distributing software, under which you +make payment]&] +[s0; [C0 to the third party based on the extent of your activity of +conveying]&] +[s0; [C0 the work, and under which the third party grants, to any of +the]&] +[s0; [C0 parties who would receive the covered work from you, a discriminatory]&] +[s0; [C0 patent license (a) in connection with copies of the covered +work]&] +[s0; [C0 conveyed by you (or copies made from those copies), or (b) +primarily]&] +[s0; [C0 for and in connection with specific products or compilations +that]&] +[s0; [C0 contain the covered work, unless you entered into that arrangement,]&] +[s0; [C0 or that patent license was granted, prior to 28 March 2007.]&] +[s0;C0 &] +[s0; [C0 Nothing in this License shall be construed as excluding +or limiting]&] +[s0; [C0 any implied license or other defenses to infringement that +may]&] +[s0; [C0 otherwise be available to you under applicable patent law.]&] +[s0;C0 &] +[s0; [C0 12. No Surrender of Others`' Freedom.]&] +[s0;C0 &] +[s0; [C0 If conditions are imposed on you (whether by court order, +agreement or]&] +[s0; [C0 otherwise) that contradict the conditions of this License, +they do not]&] +[s0; [C0 excuse you from the conditions of this License. If you cannot +convey a]&] +[s0; [C0 covered work so as to satisfy simultaneously your obligations +under this]&] +[s0; [C0 License and any other pertinent obligations, then as a consequence +you may]&] +[s0; [C0 not convey it at all. For example, if you agree to terms +that obligate you]&] +[s0; [C0 to collect a royalty for further conveying from those to whom +you convey]&] +[s0; [C0 the Program, the only way you could satisfy both those terms +and this]&] +[s0; [C0 License would be to refrain entirely from conveying the Program.]&] +[s0;C0 &] +[s0; [C0 13. Use with the GNU Affero General Public License.]&] +[s0;C0 &] +[s0; [C0 Notwithstanding any other provision of this License, you +have]&] +[s0; [C0 permission to link or combine any covered work with a work +licensed]&] +[s0; [C0 under version 3 of the GNU Affero General Public License into +a single]&] +[s0; [C0 combined work, and to convey the resulting work. The terms +of this]&] +[s0; [C0 License will continue to apply to the part which is the covered +work,]&] +[s0; [C0 but the special requirements of the GNU Affero General Public +License,]&] +[s0; [C0 section 13, concerning interaction through a network will +apply to the]&] +[s0; [C0 combination as such.]&] +[s0;C0 &] +[s0; [C0 14. Revised Versions of this License.]&] +[s0;C0 &] +[s0; [C0 The Free Software Foundation may publish revised and/or +new versions of]&] +[s0; [C0 the GNU General Public License from time to time. Such new +versions will]&] +[s0; [C0 be similar in spirit to the present version, but may differ +in detail to]&] +[s0; [C0 address new problems or concerns.]&] +[s0;C0 &] +[s0; [C0 Each version is given a distinguishing version number. +If the]&] +[s0; [C0 Program specifies that a certain numbered version of the GNU +General]&] +[s0; [C0 Public License `"or any later version`" applies to it, you +have the]&] +[s0; [C0 option of following the terms and conditions either of that +numbered]&] +[s0; [C0 version or of any later version published by the Free Software]&] +[s0; [C0 Foundation. If the Program does not specify a version number +of the]&] +[s0; [C0 GNU General Public License, you may choose any version ever +published]&] +[s0; [C0 by the Free Software Foundation.]&] +[s0;C0 &] +[s0; [C0 If the Program specifies that a proxy can decide which future]&] +[s0; [C0 versions of the GNU General Public License can be used, that +proxy`'s]&] +[s0; [C0 public statement of acceptance of a version permanently authorizes +you]&] +[s0; [C0 to choose that version for the Program.]&] +[s0;C0 &] +[s0; [C0 Later license versions may give you additional or different]&] +[s0; [C0 permissions. However, no additional obligations are imposed +on any]&] +[s0; [C0 author or copyright holder as a result of your choosing to +follow a]&] +[s0; [C0 later version.]&] +[s0;C0 &] +[s0; [C0 15. Disclaimer of Warranty.]&] +[s0;C0 &] +[s0; [C0 THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED +BY]&] +[s0; [C0 APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE +COPYRIGHT]&] +[s0; [C0 HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM `"AS IS`" +WITHOUT WARRANTY]&] +[s0; [C0 OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT +LIMITED TO,]&] +[s0; [C0 THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR]&] +[s0; [C0 PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE +OF THE PROGRAM]&] +[s0; [C0 IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME +THE COST OF]&] +[s0; [C0 ALL NECESSARY SERVICING, REPAIR OR CORRECTION.]&] +[s0;C0 &] +[s0; [C0 16. Limitation of Liability.]&] +[s0;C0 &] +[s0; [C0 IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED +TO IN WRITING]&] +[s0; [C0 WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES +AND/OR CONVEYS]&] +[s0; [C0 THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY]&] +[s0; [C0 GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE]&] +[s0; [C0 USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF]&] +[s0; [C0 DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED +BY YOU OR THIRD]&] +[s0; [C0 PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS),]&] +[s0; [C0 EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF]&] +[s0; [C0 SUCH DAMAGES.]&] +[s0;C0 &] +[s0; [C0 17. Interpretation of Sections 15 and 16.]&] +[s0;C0 &] +[s0; [C0 If the disclaimer of warranty and limitation of liability +provided]&] +[s0; [C0 above cannot be given local legal effect according to their +terms,]&] +[s0; [C0 reviewing courts shall apply local law that most closely approximates]&] +[s0; [C0 an absolute waiver of all civil liability in connection with +the]&] +[s0; [C0 Program, unless a warranty or assumption of liability accompanies +a]&] +[s0; [C0 copy of the Program in return for a fee.]&] +[s0;C0 &] +[s0; [C0 END OF TERMS AND CONDITIONS]&] +[s0;C0 &] +[s0; [C0 How to Apply These Terms to Your New Programs]&] +[s0;C0 &] +[s0; [C0 If you develop a new program, and you want it to be of the +greatest]&] +[s0; [C0 possible use to the public, the best way to achieve this is +to make it]&] +[s0; [C0 free software which everyone can redistribute and change under +these terms.]&] +[s0;C0 &] +[s0; [C0 To do so, attach the following notices to the program. +It is safest]&] +[s0; [C0 to attach them to the start of each source file to most effectively]&] +[s0; [C0 state the exclusion of warranty; and each file should have +at least]&] +[s0; [C0 the `"copyright`" line and a pointer to where the full notice +is found.]&] +[s0;C0 &] +[s0; [C0 ]&] +[s0; [C0 Copyright (C) ]&] +[s0;C0 &] +[s0; [C0 This program is free software: you can redistribute it +and/or modify]&] +[s0; [C0 it under the terms of the GNU General Public License as +published by]&] +[s0; [C0 the Free Software Foundation, either version 3 of the +License, or]&] +[s0; [C0 (at your option) any later version.]&] +[s0;C0 &] +[s0; [C0 This program is distributed in the hope that it will be +useful,]&] +[s0; [C0 but WITHOUT ANY WARRANTY; without even the implied warranty +of]&] +[s0; [C0 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +See the]&] +[s0; [C0 GNU General Public License for more details.]&] +[s0;C0 &] +[s0; [C0 You should have received a copy of the GNU General Public +License]&] +[s0; [C0 along with this program. If not, see .]&] +[s0;C0 &] +[s0; [C0 Also add information on how to contact you by electronic and +paper mail.]&] +[s0;C0 &] +[s0; [C0 If the program does terminal interaction, make it output +a short]&] +[s0; [C0 notice like this when it starts in an interactive mode:]&] +[s0;C0 &] +[s0; [C0 Copyright (C) ]&] +[s0; [C0 This program comes with ABSOLUTELY NO WARRANTY; for details +type ``show w`'.]&] +[s0; [C0 This is free software, and you are welcome to redistribute +it]&] +[s0; [C0 under certain conditions; type ``show c`' for details.]&] +[s0;C0 &] +[s0; [C0 The hypothetical commands ``show w`' and ``show c`' should +show the appropriate]&] +[s0; [C0 parts of the General Public License. Of course, your program`'s +commands]&] +[s0; [C0 might be different; for a GUI interface, you would use an +`"about box`".]&] +[s0;C0 &] +[s0; [C0 You should also get your employer (if you work as a programmer) +or school,]&] +[s0; [C0 if any, to sign a `"copyright disclaimer`" for the program, +if necessary.]&] +[s0; [C0 For more information on this, and how to apply and follow +the GNU GPL, see]&] +[s0; [C0 .]&] +[s0;C0 &] +[s0; [C0 The GNU General Public License does not permit incorporating +your program]&] +[s0; [C0 into proprietary programs. If your program is a subroutine +library, you]&] +[s0; [C0 may consider it more useful to permit linking proprietary +applications with]&] +[s0; [C0 the library. If this is what you want to do, use the GNU +Lesser General]&] +[s0; [C0 Public License instead of this License. But first, please +read]&] +[s0; [C0 .]&] +[s0;C0 ]}}&] +[s0;C0 &] +[s0; [C0 GDB]&] +[ {{10000@(255.255.192) [s0; [C0 GNU GENERAL PUBLIC LICENSE]&] +[s0; [C0 Version 3, 29 June 2007]&] +[s0;C0 &] +[s0; [C0 Copyright (C) 2007 Free Software Foundation, Inc. ]&] +[s0; [C0 Everyone is permitted to copy and distribute verbatim copies]&] +[s0; [C0 of this license document, but changing it is not allowed.]&] +[s0;C0 &] +[s0; [C0 Preamble]&] +[s0;C0 &] +[s0; [C0 The GNU General Public License is a free, copyleft license +for]&] +[s0; [C0 software and other kinds of works.]&] +[s0;C0 &] +[s0; [C0 The licenses for most software and other practical works +are designed]&] +[s0; [C0 to take away your freedom to share and change the works. +By contrast,]&] +[s0; [C0 the GNU General Public License is intended to guarantee your +freedom to]&] +[s0; [C0 share and change all versions of a program`-`-to make sure +it remains free]&] +[s0; [C0 software for all its users. We, the Free Software Foundation, +use the]&] +[s0; [C0 GNU General Public License for most of our software; it applies +also to]&] +[s0; [C0 any other work released this way by its authors. You can +apply it to]&] +[s0; [C0 your programs, too.]&] +[s0;C0 &] +[s0; [C0 When we speak of free software, we are referring to freedom, +not]&] +[s0; [C0 price. Our General Public Licenses are designed to make sure +that you]&] +[s0; [C0 have the freedom to distribute copies of free software (and +charge for]&] +[s0; [C0 them if you wish), that you receive source code or can get +it if you]&] +[s0; [C0 want it, that you can change the software or use pieces of +it in new]&] +[s0; [C0 free programs, and that you know you can do these things.]&] +[s0;C0 &] +[s0; [C0 To protect your rights, we need to prevent others from denying +you]&] +[s0; [C0 these rights or asking you to surrender the rights. Therefore, +you have]&] +[s0; [C0 certain responsibilities if you distribute copies of the software, +or if]&] +[s0; [C0 you modify it: responsibilities to respect the freedom of others.]&] +[s0;C0 &] +[s0; [C0 For example, if you distribute copies of such a program, +whether]&] +[s0; [C0 gratis or for a fee, you must pass on to the recipients the +same]&] +[s0; [C0 freedoms that you received. You must make sure that they, +too, receive]&] +[s0; [C0 or can get the source code. And you must show them these +terms so they]&] +[s0; [C0 know their rights.]&] +[s0;C0 &] +[s0; [C0 Developers that use the GNU GPL protect your rights with +two steps:]&] +[s0; [C0 (1) assert copyright on the software, and (2) offer you this +License]&] +[s0; [C0 giving you legal permission to copy, distribute and/or modify +it.]&] +[s0;C0 &] +[s0; [C0 For the developers`' and authors`' protection, the GPL clearly +explains]&] +[s0; [C0 that there is no warranty for this free software. For both +users`' and]&] +[s0; [C0 authors`' sake, the GPL requires that modified versions be +marked as]&] +[s0; [C0 changed, so that their problems will not be attributed erroneously +to]&] +[s0; [C0 authors of previous versions.]&] +[s0;C0 &] +[s0; [C0 Some devices are designed to deny users access to install +or run]&] +[s0; [C0 modified versions of the software inside them, although the +manufacturer]&] +[s0; [C0 can do so. This is fundamentally incompatible with the aim +of]&] +[s0; [C0 protecting users`' freedom to change the software. The systematic]&] +[s0; [C0 pattern of such abuse occurs in the area of products for individuals +to]&] +[s0; [C0 use, which is precisely where it is most unacceptable. Therefore, +we]&] +[s0; [C0 have designed this version of the GPL to prohibit the practice +for those]&] +[s0; [C0 products. If such problems arise substantially in other domains, +we]&] +[s0; [C0 stand ready to extend this provision to those domains in future +versions]&] +[s0; [C0 of the GPL, as needed to protect the freedom of users.]&] +[s0;C0 &] +[s0; [C0 Finally, every program is threatened constantly by software +patents.]&] +[s0; [C0 States should not allow patents to restrict development and +use of]&] +[s0; [C0 software on general`-purpose computers, but in those that +do, we wish to]&] +[s0; [C0 avoid the special danger that patents applied to a free program +could]&] +[s0; [C0 make it effectively proprietary. To prevent this, the GPL +assures that]&] +[s0; [C0 patents cannot be used to render the program non`-free.]&] +[s0;C0 &] +[s0; [C0 The precise terms and conditions for copying, distribution +and]&] +[s0; [C0 modification follow.]&] +[s0;C0 &] +[s0; [C0 TERMS AND CONDITIONS]&] +[s0;C0 &] +[s0; [C0 0. Definitions.]&] +[s0;C0 &] +[s0; [C0 `"This License`" refers to version 3 of the GNU General +Public License.]&] +[s0;C0 &] +[s0; [C0 `"Copyright`" also means copyright`-like laws that apply +to other kinds of]&] +[s0; [C0 works, such as semiconductor masks.]&] +[s0;C0 &] +[s0; [C0 `"The Program`" refers to any copyrightable work licensed +under this]&] +[s0; [C0 License. Each licensee is addressed as `"you`". `"Licensees`" +and]&] +[s0; [C0 `"recipients`" may be individuals or organizations.]&] +[s0;C0 &] +[s0; [C0 To `"modify`" a work means to copy from or adapt all or +part of the work]&] +[s0; [C0 in a fashion requiring copyright permission, other than the +making of an]&] +[s0; [C0 exact copy. The resulting work is called a `"modified version`" +of the]&] +[s0; [C0 earlier work or a work `"based on`" the earlier work.]&] +[s0;C0 &] +[s0; [C0 A `"covered work`" means either the unmodified Program or +a work based]&] +[s0; [C0 on the Program.]&] +[s0;C0 &] +[s0; [C0 To `"propagate`" a work means to do anything with it that, +without]&] +[s0; [C0 permission, would make you directly or secondarily liable +for]&] +[s0; [C0 infringement under applicable copyright law, except executing +it on a]&] +[s0; [C0 computer or modifying a private copy. Propagation includes +copying,]&] +[s0; [C0 distribution (with or without modification), making available +to the]&] +[s0; [C0 public, and in some countries other activities as well.]&] +[s0;C0 &] +[s0; [C0 To `"convey`" a work means any kind of propagation that +enables other]&] +[s0; [C0 parties to make or receive copies. Mere interaction with +a user through]&] +[s0; [C0 a computer network, with no transfer of a copy, is not conveying.]&] +[s0;C0 &] +[s0; [C0 An interactive user interface displays `"Appropriate Legal +Notices`"]&] +[s0; [C0 to the extent that it includes a convenient and prominently +visible]&] +[s0; [C0 feature that (1) displays an appropriate copyright notice, +and (2)]&] +[s0; [C0 tells the user that there is no warranty for the work (except +to the]&] +[s0; [C0 extent that warranties are provided), that licensees may convey +the]&] +[s0; [C0 work under this License, and how to view a copy of this License. + If]&] +[s0; [C0 the interface presents a list of user commands or options, +such as a]&] +[s0; [C0 menu, a prominent item in the list meets this criterion.]&] +[s0;C0 &] +[s0; [C0 1. Source Code.]&] +[s0;C0 &] +[s0; [C0 The `"source code`" for a work means the preferred form +of the work]&] +[s0; [C0 for making modifications to it. `"Object code`" means any +non`-source]&] +[s0; [C0 form of a work.]&] +[s0;C0 &] +[s0; [C0 A `"Standard Interface`" means an interface that either +is an official]&] +[s0; [C0 standard defined by a recognized standards body, or, in the +case of]&] +[s0; [C0 interfaces specified for a particular programming language, +one that]&] +[s0; [C0 is widely used among developers working in that language.]&] +[s0;C0 &] +[s0; [C0 The `"System Libraries`" of an executable work include anything, +other]&] +[s0; [C0 than the work as a whole, that (a) is included in the normal +form of]&] +[s0; [C0 packaging a Major Component, but which is not part of that +Major]&] +[s0; [C0 Component, and (b) serves only to enable use of the work with +that]&] +[s0; [C0 Major Component, or to implement a Standard Interface for +which an]&] +[s0; [C0 implementation is available to the public in source code form. + A]&] +[s0; [C0 `"Major Component`", in this context, means a major essential +component]&] +[s0; [C0 (kernel, window system, and so on) of the specific operating +system]&] +[s0; [C0 (if any) on which the executable work runs, or a compiler +used to]&] +[s0; [C0 produce the work, or an object code interpreter used to run +it.]&] +[s0;C0 &] +[s0; [C0 The `"Corresponding Source`" for a work in object code form +means all]&] +[s0; [C0 the source code needed to generate, install, and (for an executable]&] +[s0; [C0 work) run the object code and to modify the work, including +scripts to]&] +[s0; [C0 control those activities. However, it does not include the +work`'s]&] +[s0; [C0 System Libraries, or general`-purpose tools or generally available +free]&] +[s0; [C0 programs which are used unmodified in performing those activities +but]&] +[s0; [C0 which are not part of the work. For example, Corresponding +Source]&] +[s0; [C0 includes interface definition files associated with source +files for]&] +[s0; [C0 the work, and the source code for shared libraries and dynamically]&] +[s0; [C0 linked subprograms that the work is specifically designed +to require,]&] +[s0; [C0 such as by intimate data communication or control flow between +those]&] +[s0; [C0 subprograms and other parts of the work.]&] +[s0;C0 &] +[s0; [C0 The Corresponding Source need not include anything that +users]&] +[s0; [C0 can regenerate automatically from other parts of the Corresponding]&] +[s0; [C0 Source.]&] +[s0;C0 &] +[s0; [C0 The Corresponding Source for a work in source code form +is that]&] +[s0; [C0 same work.]&] +[s0;C0 &] +[s0; [C0 2. Basic Permissions.]&] +[s0;C0 &] +[s0; [C0 All rights granted under this License are granted for the +term of]&] +[s0; [C0 copyright on the Program, and are irrevocable provided the +stated]&] +[s0; [C0 conditions are met. This License explicitly affirms your +unlimited]&] +[s0; [C0 permission to run the unmodified Program. The output from +running a]&] +[s0; [C0 covered work is covered by this License only if the output, +given its]&] +[s0; [C0 content, constitutes a covered work. This License acknowledges +your]&] +[s0; [C0 rights of fair use or other equivalent, as provided by copyright +law.]&] +[s0;C0 &] +[s0; [C0 You may make, run and propagate covered works that you do +not]&] +[s0; [C0 convey, without conditions so long as your license otherwise +remains]&] +[s0; [C0 in force. You may convey covered works to others for the +sole purpose]&] +[s0; [C0 of having them make modifications exclusively for you, or +provide you]&] +[s0; [C0 with facilities for running those works, provided that you +comply with]&] +[s0; [C0 the terms of this License in conveying all material for which +you do]&] +[s0; [C0 not control copyright. Those thus making or running the covered +works]&] +[s0; [C0 for you must do so exclusively on your behalf, under your +direction]&] +[s0; [C0 and control, on terms that prohibit them from making any copies +of]&] +[s0; [C0 your copyrighted material outside their relationship with +you.]&] +[s0;C0 &] +[s0; [C0 Conveying under any other circumstances is permitted solely +under]&] +[s0; [C0 the conditions stated below. Sublicensing is not allowed; +section 10]&] +[s0; [C0 makes it unnecessary.]&] +[s0;C0 &] +[s0; [C0 3. Protecting Users`' Legal Rights From Anti`-Circumvention +Law.]&] +[s0;C0 &] +[s0; [C0 No covered work shall be deemed part of an effective technological]&] +[s0; [C0 measure under any applicable law fulfilling obligations under +article]&] +[s0; [C0 11 of the WIPO copyright treaty adopted on 20 December 1996, +or]&] +[s0; [C0 similar laws prohibiting or restricting circumvention of such]&] +[s0; [C0 measures.]&] +[s0;C0 &] +[s0; [C0 When you convey a covered work, you waive any legal power +to forbid]&] +[s0; [C0 circumvention of technological measures to the extent such +circumvention]&] +[s0; [C0 is effected by exercising rights under this License with respect +to]&] +[s0; [C0 the covered work, and you disclaim any intention to limit +operation or]&] +[s0; [C0 modification of the work as a means of enforcing, against +the work`'s]&] +[s0; [C0 users, your or third parties`' legal rights to forbid circumvention +of]&] +[s0; [C0 technological measures.]&] +[s0;C0 &] +[s0; [C0 4. Conveying Verbatim Copies.]&] +[s0;C0 &] +[s0; [C0 You may convey verbatim copies of the Program`'s source +code as you]&] +[s0; [C0 receive it, in any medium, provided that you conspicuously +and]&] +[s0; [C0 appropriately publish on each copy an appropriate copyright +notice;]&] +[s0; [C0 keep intact all notices stating that this License and any]&] +[s0; [C0 non`-permissive terms added in accord with section 7 apply +to the code;]&] +[s0; [C0 keep intact all notices of the absence of any warranty; and +give all]&] +[s0; [C0 recipients a copy of this License along with the Program.]&] +[s0;C0 &] +[s0; [C0 You may charge any price or no price for each copy that +you convey,]&] +[s0; [C0 and you may offer support or warranty protection for a fee.]&] +[s0;C0 &] +[s0; [C0 5. Conveying Modified Source Versions.]&] +[s0;C0 &] +[s0; [C0 You may convey a work based on the Program, or the modifications +to]&] +[s0; [C0 produce it from the Program, in the form of source code under +the]&] +[s0; [C0 terms of section 4, provided that you also meet all of these +conditions:]&] +[s0;C0 &] +[s0; [C0 a) The work must carry prominent notices stating that +you modified]&] +[s0; [C0 it, and giving a relevant date.]&] +[s0;C0 &] +[s0; [C0 b) The work must carry prominent notices stating that +it is]&] +[s0; [C0 released under this License and any conditions added under +section]&] +[s0; [C0 7. This requirement modifies the requirement in section +4 to]&] +[s0; [C0 `"keep intact all notices`".]&] +[s0;C0 &] +[s0; [C0 c) You must license the entire work, as a whole, under +this]&] +[s0; [C0 License to anyone who comes into possession of a copy. + This]&] +[s0; [C0 License will therefore apply, along with any applicable +section 7]&] +[s0; [C0 additional terms, to the whole of the work, and all its +parts,]&] +[s0; [C0 regardless of how they are packaged. This License gives +no]&] +[s0; [C0 permission to license the work in any other way, but it +does not]&] +[s0; [C0 invalidate such permission if you have separately received +it.]&] +[s0;C0 &] +[s0; [C0 d) If the work has interactive user interfaces, each must +display]&] +[s0; [C0 Appropriate Legal Notices; however, if the Program has +interactive]&] +[s0; [C0 interfaces that do not display Appropriate Legal Notices, +your]&] +[s0; [C0 work need not make them do so.]&] +[s0;C0 &] +[s0; [C0 A compilation of a covered work with other separate and +independent]&] +[s0; [C0 works, which are not by their nature extensions of the covered +work,]&] +[s0; [C0 and which are not combined with it such as to form a larger +program,]&] +[s0; [C0 in or on a volume of a storage or distribution medium, is +called an]&] +[s0; [C0 `"aggregate`" if the compilation and its resulting copyright +are not]&] +[s0; [C0 used to limit the access or legal rights of the compilation`'s +users]&] +[s0; [C0 beyond what the individual works permit. Inclusion of a covered +work]&] +[s0; [C0 in an aggregate does not cause this License to apply to the +other]&] +[s0; [C0 parts of the aggregate.]&] +[s0;C0 &] +[s0; [C0 6. Conveying Non`-Source Forms.]&] +[s0;C0 &] +[s0; [C0 You may convey a covered work in object code form under +the terms]&] +[s0; [C0 of sections 4 and 5, provided that you also convey the]&] +[s0; [C0 machine`-readable Corresponding Source under the terms of +this License,]&] +[s0; [C0 in one of these ways:]&] +[s0;C0 &] +[s0; [C0 a) Convey the object code in, or embodied in, a physical +product]&] +[s0; [C0 (including a physical distribution medium), accompanied +by the]&] +[s0; [C0 Corresponding Source fixed on a durable physical medium]&] +[s0; [C0 customarily used for software interchange.]&] +[s0;C0 &] +[s0; [C0 b) Convey the object code in, or embodied in, a physical +product]&] +[s0; [C0 (including a physical distribution medium), accompanied +by a]&] +[s0; [C0 written offer, valid for at least three years and valid +for as]&] +[s0; [C0 long as you offer spare parts or customer support for +that product]&] +[s0; [C0 model, to give anyone who possesses the object code either +(1) a]&] +[s0; [C0 copy of the Corresponding Source for all the software +in the]&] +[s0; [C0 product that is covered by this License, on a durable +physical]&] +[s0; [C0 medium customarily used for software interchange, for +a price no]&] +[s0; [C0 more than your reasonable cost of physically performing +this]&] +[s0; [C0 conveying of source, or (2) access to copy the]&] +[s0; [C0 Corresponding Source from a network server at no charge.]&] +[s0;C0 &] +[s0; [C0 c) Convey individual copies of the object code with a +copy of the]&] +[s0; [C0 written offer to provide the Corresponding Source. This]&] +[s0; [C0 alternative is allowed only occasionally and noncommercially, +and]&] +[s0; [C0 only if you received the object code with such an offer, +in accord]&] +[s0; [C0 with subsection 6b.]&] +[s0;C0 &] +[s0; [C0 d) Convey the object code by offering access from a designated]&] +[s0; [C0 place (gratis or for a charge), and offer equivalent access +to the]&] +[s0; [C0 Corresponding Source in the same way through the same +place at no]&] +[s0; [C0 further charge. You need not require recipients to copy +the]&] +[s0; [C0 Corresponding Source along with the object code. If the +place to]&] +[s0; [C0 copy the object code is a network server, the Corresponding +Source]&] +[s0; [C0 may be on a different server (operated by you or a third +party)]&] +[s0; [C0 that supports equivalent copying facilities, provided +you maintain]&] +[s0; [C0 clear directions next to the object code saying where +to find the]&] +[s0; [C0 Corresponding Source. Regardless of what server hosts +the]&] +[s0; [C0 Corresponding Source, you remain obligated to ensure that +it is]&] +[s0; [C0 available for as long as needed to satisfy these requirements.]&] +[s0;C0 &] +[s0; [C0 e) Convey the object code using peer`-to`-peer transmission, +provided]&] +[s0; [C0 you inform other peers where the object code and Corresponding]&] +[s0; [C0 Source of the work are being offered to the general public +at no]&] +[s0; [C0 charge under subsection 6d.]&] +[s0;C0 &] +[s0; [C0 A separable portion of the object code, whose source code +is excluded]&] +[s0; [C0 from the Corresponding Source as a System Library, need not +be]&] +[s0; [C0 included in conveying the object code work.]&] +[s0;C0 &] +[s0; [C0 A `"User Product`" is either (1) a `"consumer product`", +which means any]&] +[s0; [C0 tangible personal property which is normally used for personal, +family,]&] +[s0; [C0 or household purposes, or (2) anything designed or sold for +incorporation]&] +[s0; [C0 into a dwelling. In determining whether a product is a consumer +product,]&] +[s0; [C0 doubtful cases shall be resolved in favor of coverage. For +a particular]&] +[s0; [C0 product received by a particular user, `"normally used`" refers +to a]&] +[s0; [C0 typical or common use of that class of product, regardless +of the status]&] +[s0; [C0 of the particular user or of the way in which the particular +user]&] +[s0; [C0 actually uses, or expects or is expected to use, the product. + A product]&] +[s0; [C0 is a consumer product regardless of whether the product has +substantial]&] +[s0; [C0 commercial, industrial or non`-consumer uses, unless such +uses represent]&] +[s0; [C0 the only significant mode of use of the product.]&] +[s0;C0 &] +[s0; [C0 `"Installation Information`" for a User Product means any +methods,]&] +[s0; [C0 procedures, authorization keys, or other information required +to install]&] +[s0; [C0 and execute modified versions of a covered work in that User +Product from]&] +[s0; [C0 a modified version of its Corresponding Source. The information +must]&] +[s0; [C0 suffice to ensure that the continued functioning of the modified +object]&] +[s0; [C0 code is in no case prevented or interfered with solely because]&] +[s0; [C0 modification has been made.]&] +[s0;C0 &] +[s0; [C0 If you convey an object code work under this section in, +or with, or]&] +[s0; [C0 specifically for use in, a User Product, and the conveying +occurs as]&] +[s0; [C0 part of a transaction in which the right of possession and +use of the]&] +[s0; [C0 User Product is transferred to the recipient in perpetuity +or for a]&] +[s0; [C0 fixed term (regardless of how the transaction is characterized), +the]&] +[s0; [C0 Corresponding Source conveyed under this section must be accompanied]&] +[s0; [C0 by the Installation Information. But this requirement does +not apply]&] +[s0; [C0 if neither you nor any third party retains the ability to +install]&] +[s0; [C0 modified object code on the User Product (for example, the +work has]&] +[s0; [C0 been installed in ROM).]&] +[s0;C0 &] +[s0; [C0 The requirement to provide Installation Information does +not include a]&] +[s0; [C0 requirement to continue to provide support service, warranty, +or updates]&] +[s0; [C0 for a work that has been modified or installed by the recipient, +or for]&] +[s0; [C0 the User Product in which it has been modified or installed. + Access to a]&] +[s0; [C0 network may be denied when the modification itself materially +and]&] +[s0; [C0 adversely affects the operation of the network or violates +the rules and]&] +[s0; [C0 protocols for communication across the network.]&] +[s0;C0 &] +[s0; [C0 Corresponding Source conveyed, and Installation Information +provided,]&] +[s0; [C0 in accord with this section must be in a format that is publicly]&] +[s0; [C0 documented (and with an implementation available to the public +in]&] +[s0; [C0 source code form), and must require no special password or +key for]&] +[s0; [C0 unpacking, reading or copying.]&] +[s0;C0 &] +[s0; [C0 7. Additional Terms.]&] +[s0;C0 &] +[s0; [C0 `"Additional permissions`" are terms that supplement the +terms of this]&] +[s0; [C0 License by making exceptions from one or more of its conditions.]&] +[s0; [C0 Additional permissions that are applicable to the entire Program +shall]&] +[s0; [C0 be treated as though they were included in this License, to +the extent]&] +[s0; [C0 that they are valid under applicable law. If additional permissions]&] +[s0; [C0 apply only to part of the Program, that part may be used separately]&] +[s0; [C0 under those permissions, but the entire Program remains governed +by]&] +[s0; [C0 this License without regard to the additional permissions.]&] +[s0;C0 &] +[s0; [C0 When you convey a copy of a covered work, you may at your +option]&] +[s0; [C0 remove any additional permissions from that copy, or from +any part of]&] +[s0; [C0 it. (Additional permissions may be written to require their +own]&] +[s0; [C0 removal in certain cases when you modify the work.) You may +place]&] +[s0; [C0 additional permissions on material, added by you to a covered +work,]&] +[s0; [C0 for which you have or can give appropriate copyright permission.]&] +[s0;C0 &] +[s0; [C0 Notwithstanding any other provision of this License, for +material you]&] +[s0; [C0 add to a covered work, you may (if authorized by the copyright +holders of]&] +[s0; [C0 that material) supplement the terms of this License with terms:]&] +[s0;C0 &] +[s0; [C0 a) Disclaiming warranty or limiting liability differently +from the]&] +[s0; [C0 terms of sections 15 and 16 of this License; or]&] +[s0;C0 &] +[s0; [C0 b) Requiring preservation of specified reasonable legal +notices or]&] +[s0; [C0 author attributions in that material or in the Appropriate +Legal]&] +[s0; [C0 Notices displayed by works containing it; or]&] +[s0;C0 &] +[s0; [C0 c) Prohibiting misrepresentation of the origin of that +material, or]&] +[s0; [C0 requiring that modified versions of such material be marked +in]&] +[s0; [C0 reasonable ways as different from the original version; +or]&] +[s0;C0 &] +[s0; [C0 d) Limiting the use for publicity purposes of names of +licensors or]&] +[s0; [C0 authors of the material; or]&] +[s0;C0 &] +[s0; [C0 e) Declining to grant rights under trademark law for use +of some]&] +[s0; [C0 trade names, trademarks, or service marks; or]&] +[s0;C0 &] +[s0; [C0 f) Requiring indemnification of licensors and authors +of that]&] +[s0; [C0 material by anyone who conveys the material (or modified +versions of]&] +[s0; [C0 it) with contractual assumptions of liability to the recipient, +for]&] +[s0; [C0 any liability that these contractual assumptions directly +impose on]&] +[s0; [C0 those licensors and authors.]&] +[s0;C0 &] +[s0; [C0 All other non`-permissive additional terms are considered +`"further]&] +[s0; [C0 restrictions`" within the meaning of section 10. If the Program +as you]&] +[s0; [C0 received it, or any part of it, contains a notice stating +that it is]&] +[s0; [C0 governed by this License along with a term that is a further]&] +[s0; [C0 restriction, you may remove that term. If a license document +contains]&] +[s0; [C0 a further restriction but permits relicensing or conveying +under this]&] +[s0; [C0 License, you may add to a covered work material governed by +the terms]&] +[s0; [C0 of that license document, provided that the further restriction +does]&] +[s0; [C0 not survive such relicensing or conveying.]&] +[s0;C0 &] +[s0; [C0 If you add terms to a covered work in accord with this section, +you]&] +[s0; [C0 must place, in the relevant source files, a statement of the]&] +[s0; [C0 additional terms that apply to those files, or a notice indicating]&] +[s0; [C0 where to find the applicable terms.]&] +[s0;C0 &] +[s0; [C0 Additional terms, permissive or non`-permissive, may be +stated in the]&] +[s0; [C0 form of a separately written license, or stated as exceptions;]&] +[s0; [C0 the above requirements apply either way.]&] +[s0;C0 &] +[s0; [C0 8. Termination.]&] +[s0;C0 &] +[s0; [C0 You may not propagate or modify a covered work except as +expressly]&] +[s0; [C0 provided under this License. Any attempt otherwise to propagate +or]&] +[s0; [C0 modify it is void, and will automatically terminate your rights +under]&] +[s0; [C0 this License (including any patent licenses granted under +the third]&] +[s0; [C0 paragraph of section 11).]&] +[s0;C0 &] +[s0; [C0 However, if you cease all violation of this License, then +your]&] +[s0; [C0 license from a particular copyright holder is reinstated (a)]&] +[s0; [C0 provisionally, unless and until the copyright holder explicitly +and]&] +[s0; [C0 finally terminates your license, and (b) permanently, if the +copyright]&] +[s0; [C0 holder fails to notify you of the violation by some reasonable +means]&] +[s0; [C0 prior to 60 days after the cessation.]&] +[s0;C0 &] +[s0; [C0 Moreover, your license from a particular copyright holder +is]&] +[s0; [C0 reinstated permanently if the copyright holder notifies you +of the]&] +[s0; [C0 violation by some reasonable means, this is the first time +you have]&] +[s0; [C0 received notice of violation of this License (for any work) +from that]&] +[s0; [C0 copyright holder, and you cure the violation prior to 30 days +after]&] +[s0; [C0 your receipt of the notice.]&] +[s0;C0 &] +[s0; [C0 Termination of your rights under this section does not terminate +the]&] +[s0; [C0 licenses of parties who have received copies or rights from +you under]&] +[s0; [C0 this License. If your rights have been terminated and not +permanently]&] +[s0; [C0 reinstated, you do not qualify to receive new licenses for +the same]&] +[s0; [C0 material under section 10.]&] +[s0;C0 &] +[s0; [C0 9. Acceptance Not Required for Having Copies.]&] +[s0;C0 &] +[s0; [C0 You are not required to accept this License in order to +receive or]&] +[s0; [C0 run a copy of the Program. Ancillary propagation of a covered +work]&] +[s0; [C0 occurring solely as a consequence of using peer`-to`-peer +transmission]&] +[s0; [C0 to receive a copy likewise does not require acceptance. However,]&] +[s0; [C0 nothing other than this License grants you permission to propagate +or]&] +[s0; [C0 modify any covered work. These actions infringe copyright +if you do]&] +[s0; [C0 not accept this License. Therefore, by modifying or propagating +a]&] +[s0; [C0 covered work, you indicate your acceptance of this License +to do so.]&] +[s0;C0 &] +[s0; [C0 10. Automatic Licensing of Downstream Recipients.]&] +[s0;C0 &] +[s0; [C0 Each time you convey a covered work, the recipient automatically]&] +[s0; [C0 receives a license from the original licensors, to run, modify +and]&] +[s0; [C0 propagate that work, subject to this License. You are not +responsible]&] +[s0; [C0 for enforcing compliance by third parties with this License.]&] +[s0;C0 &] +[s0; [C0 An `"entity transaction`" is a transaction transferring +control of an]&] +[s0; [C0 organization, or substantially all assets of one, or subdividing +an]&] +[s0; [C0 organization, or merging organizations. If propagation of +a covered]&] +[s0; [C0 work results from an entity transaction, each party to that]&] +[s0; [C0 transaction who receives a copy of the work also receives +whatever]&] +[s0; [C0 licenses to the work the party`'s predecessor in interest +had or could]&] +[s0; [C0 give under the previous paragraph, plus a right to possession +of the]&] +[s0; [C0 Corresponding Source of the work from the predecessor in interest, +if]&] +[s0; [C0 the predecessor has it or can get it with reasonable efforts.]&] +[s0;C0 &] +[s0; [C0 You may not impose any further restrictions on the exercise +of the]&] +[s0; [C0 rights granted or affirmed under this License. For example, +you may]&] +[s0; [C0 not impose a license fee, royalty, or other charge for exercise +of]&] +[s0; [C0 rights granted under this License, and you may not initiate +litigation]&] +[s0; [C0 (including a cross`-claim or counterclaim in a lawsuit) alleging +that]&] +[s0; [C0 any patent claim is infringed by making, using, selling, offering +for]&] +[s0; [C0 sale, or importing the Program or any portion of it.]&] +[s0;C0 &] +[s0; [C0 11. Patents.]&] +[s0;C0 &] +[s0; [C0 A `"contributor`" is a copyright holder who authorizes use +under this]&] +[s0; [C0 License of the Program or a work on which the Program is based. + The]&] +[s0; [C0 work thus licensed is called the contributor`'s `"contributor +version`".]&] +[s0;C0 &] +[s0; [C0 A contributor`'s `"essential patent claims`" are all patent +claims]&] +[s0; [C0 owned or controlled by the contributor, whether already acquired +or]&] +[s0; [C0 hereafter acquired, that would be infringed by some manner, +permitted]&] +[s0; [C0 by this License, of making, using, or selling its contributor +version,]&] +[s0; [C0 but do not include claims that would be infringed only as +a]&] +[s0; [C0 consequence of further modification of the contributor version. + For]&] +[s0; [C0 purposes of this definition, `"control`" includes the right +to grant]&] +[s0; [C0 patent sublicenses in a manner consistent with the requirements +of]&] +[s0; [C0 this License.]&] +[s0;C0 &] +[s0; [C0 Each contributor grants you a non`-exclusive, worldwide, +royalty`-free]&] +[s0; [C0 patent license under the contributor`'s essential patent claims, +to]&] +[s0; [C0 make, use, sell, offer for sale, import and otherwise run, +modify and]&] +[s0; [C0 propagate the contents of its contributor version.]&] +[s0;C0 &] +[s0; [C0 In the following three paragraphs, a `"patent license`" +is any express]&] +[s0; [C0 agreement or commitment, however denominated, not to enforce +a patent]&] +[s0; [C0 (such as an express permission to practice a patent or covenant +not to]&] +[s0; [C0 sue for patent infringement). To `"grant`" such a patent +license to a]&] +[s0; [C0 party means to make such an agreement or commitment not to +enforce a]&] +[s0; [C0 patent against the party.]&] +[s0;C0 &] +[s0; [C0 If you convey a covered work, knowingly relying on a patent +license,]&] +[s0; [C0 and the Corresponding Source of the work is not available +for anyone]&] +[s0; [C0 to copy, free of charge and under the terms of this License, +through a]&] +[s0; [C0 publicly available network server or other readily accessible +means,]&] +[s0; [C0 then you must either (1) cause the Corresponding Source to +be so]&] +[s0; [C0 available, or (2) arrange to deprive yourself of the benefit +of the]&] +[s0; [C0 patent license for this particular work, or (3) arrange, in +a manner]&] +[s0; [C0 consistent with the requirements of this License, to extend +the patent]&] +[s0; [C0 license to downstream recipients. `"Knowingly relying`" means +you have]&] +[s0; [C0 actual knowledge that, but for the patent license, your conveying +the]&] +[s0; [C0 covered work in a country, or your recipient`'s use of the +covered work]&] +[s0; [C0 in a country, would infringe one or more identifiable patents +in that]&] +[s0; [C0 country that you have reason to believe are valid.]&] +[s0;C0 &] +[s0; [C0 If, pursuant to or in connection with a single transaction +or]&] +[s0; [C0 arrangement, you convey, or propagate by procuring conveyance +of, a]&] +[s0; [C0 covered work, and grant a patent license to some of the parties]&] +[s0; [C0 receiving the covered work authorizing them to use, propagate, +modify]&] +[s0; [C0 or convey a specific copy of the covered work, then the patent +license]&] +[s0; [C0 you grant is automatically extended to all recipients of the +covered]&] +[s0; [C0 work and works based on it.]&] +[s0;C0 &] +[s0; [C0 A patent license is `"discriminatory`" if it does not include +within]&] +[s0; [C0 the scope of its coverage, prohibits the exercise of, or is]&] +[s0; [C0 conditioned on the non`-exercise of one or more of the rights +that are]&] +[s0; [C0 specifically granted under this License. You may not convey +a covered]&] +[s0; [C0 work if you are a party to an arrangement with a third party +that is]&] +[s0; [C0 in the business of distributing software, under which you +make payment]&] +[s0; [C0 to the third party based on the extent of your activity of +conveying]&] +[s0; [C0 the work, and under which the third party grants, to any of +the]&] +[s0; [C0 parties who would receive the covered work from you, a discriminatory]&] +[s0; [C0 patent license (a) in connection with copies of the covered +work]&] +[s0; [C0 conveyed by you (or copies made from those copies), or (b) +primarily]&] +[s0; [C0 for and in connection with specific products or compilations +that]&] +[s0; [C0 contain the covered work, unless you entered into that arrangement,]&] +[s0; [C0 or that patent license was granted, prior to 28 March 2007.]&] +[s0;C0 &] +[s0; [C0 Nothing in this License shall be construed as excluding +or limiting]&] +[s0; [C0 any implied license or other defenses to infringement that +may]&] +[s0; [C0 otherwise be available to you under applicable patent law.]&] +[s0;C0 &] +[s0; [C0 12. No Surrender of Others`' Freedom.]&] +[s0;C0 &] +[s0; [C0 If conditions are imposed on you (whether by court order, +agreement or]&] +[s0; [C0 otherwise) that contradict the conditions of this License, +they do not]&] +[s0; [C0 excuse you from the conditions of this License. If you cannot +convey a]&] +[s0; [C0 covered work so as to satisfy simultaneously your obligations +under this]&] +[s0; [C0 License and any other pertinent obligations, then as a consequence +you may]&] +[s0; [C0 not convey it at all. For example, if you agree to terms +that obligate you]&] +[s0; [C0 to collect a royalty for further conveying from those to whom +you convey]&] +[s0; [C0 the Program, the only way you could satisfy both those terms +and this]&] +[s0; [C0 License would be to refrain entirely from conveying the Program.]&] +[s0;C0 &] +[s0; [C0 13. Use with the GNU Affero General Public License.]&] +[s0;C0 &] +[s0; [C0 Notwithstanding any other provision of this License, you +have]&] +[s0; [C0 permission to link or combine any covered work with a work +licensed]&] +[s0; [C0 under version 3 of the GNU Affero General Public License into +a single]&] +[s0; [C0 combined work, and to convey the resulting work. The terms +of this]&] +[s0; [C0 License will continue to apply to the part which is the covered +work,]&] +[s0; [C0 but the special requirements of the GNU Affero General Public +License,]&] +[s0; [C0 section 13, concerning interaction through a network will +apply to the]&] +[s0; [C0 combination as such.]&] +[s0;C0 &] +[s0; [C0 14. Revised Versions of this License.]&] +[s0;C0 &] +[s0; [C0 The Free Software Foundation may publish revised and/or +new versions of]&] +[s0; [C0 the GNU General Public License from time to time. Such new +versions will]&] +[s0; [C0 be similar in spirit to the present version, but may differ +in detail to]&] +[s0; [C0 address new problems or concerns.]&] +[s0;C0 &] +[s0; [C0 Each version is given a distinguishing version number. +If the]&] +[s0; [C0 Program specifies that a certain numbered version of the GNU +General]&] +[s0; [C0 Public License `"or any later version`" applies to it, you +have the]&] +[s0; [C0 option of following the terms and conditions either of that +numbered]&] +[s0; [C0 version or of any later version published by the Free Software]&] +[s0; [C0 Foundation. If the Program does not specify a version number +of the]&] +[s0; [C0 GNU General Public License, you may choose any version ever +published]&] +[s0; [C0 by the Free Software Foundation.]&] +[s0;C0 &] +[s0; [C0 If the Program specifies that a proxy can decide which future]&] +[s0; [C0 versions of the GNU General Public License can be used, that +proxy`'s]&] +[s0; [C0 public statement of acceptance of a version permanently authorizes +you]&] +[s0; [C0 to choose that version for the Program.]&] +[s0;C0 &] +[s0; [C0 Later license versions may give you additional or different]&] +[s0; [C0 permissions. However, no additional obligations are imposed +on any]&] +[s0; [C0 author or copyright holder as a result of your choosing to +follow a]&] +[s0; [C0 later version.]&] +[s0;C0 &] +[s0; [C0 15. Disclaimer of Warranty.]&] +[s0;C0 &] +[s0; [C0 THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED +BY]&] +[s0; [C0 APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE +COPYRIGHT]&] +[s0; [C0 HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM `"AS IS`" +WITHOUT WARRANTY]&] +[s0; [C0 OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT +LIMITED TO,]&] +[s0; [C0 THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR]&] +[s0; [C0 PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE +OF THE PROGRAM]&] +[s0; [C0 IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME +THE COST OF]&] +[s0; [C0 ALL NECESSARY SERVICING, REPAIR OR CORRECTION.]&] +[s0;C0 &] +[s0; [C0 16. Limitation of Liability.]&] +[s0;C0 &] +[s0; [C0 IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED +TO IN WRITING]&] +[s0; [C0 WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES +AND/OR CONVEYS]&] +[s0; [C0 THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY]&] +[s0; [C0 GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE]&] +[s0; [C0 USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF]&] +[s0; [C0 DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED +BY YOU OR THIRD]&] +[s0; [C0 PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS),]&] +[s0; [C0 EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF]&] +[s0; [C0 SUCH DAMAGES.]&] +[s0;C0 &] +[s0; [C0 17. Interpretation of Sections 15 and 16.]&] +[s0;C0 &] +[s0; [C0 If the disclaimer of warranty and limitation of liability +provided]&] +[s0; [C0 above cannot be given local legal effect according to their +terms,]&] +[s0; [C0 reviewing courts shall apply local law that most closely approximates]&] +[s0; [C0 an absolute waiver of all civil liability in connection with +the]&] +[s0; [C0 Program, unless a warranty or assumption of liability accompanies +a]&] +[s0; [C0 copy of the Program in return for a fee.]&] +[s0;C0 &] +[s0; [C0 END OF TERMS AND CONDITIONS]&] +[s0;C0 &] +[s0; [C0 How to Apply These Terms to Your New Programs]&] +[s0;C0 &] +[s0; [C0 If you develop a new program, and you want it to be of the +greatest]&] +[s0; [C0 possible use to the public, the best way to achieve this is +to make it]&] +[s0; [C0 free software which everyone can redistribute and change under +these terms.]&] +[s0;C0 &] +[s0; [C0 To do so, attach the following notices to the program. +It is safest]&] +[s0; [C0 to attach them to the start of each source file to most effectively]&] +[s0; [C0 state the exclusion of warranty; and each file should have +at least]&] +[s0; [C0 the `"copyright`" line and a pointer to where the full notice +is found.]&] +[s0;C0 &] +[s0; [C0 ]&] +[s0; [C0 Copyright (C) ]&] +[s0;C0 &] +[s0; [C0 This program is free software: you can redistribute it +and/or modify]&] +[s0; [C0 it under the terms of the GNU General Public License as +published by]&] +[s0; [C0 the Free Software Foundation, either version 3 of the +License, or]&] +[s0; [C0 (at your option) any later version.]&] +[s0;C0 &] +[s0; [C0 This program is distributed in the hope that it will be +useful,]&] +[s0; [C0 but WITHOUT ANY WARRANTY; without even the implied warranty +of]&] +[s0; [C0 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +See the]&] +[s0; [C0 GNU General Public License for more details.]&] +[s0;C0 &] +[s0; [C0 You should have received a copy of the GNU General Public +License]&] +[s0; [C0 along with this program. If not, see .]&] +[s0;C0 &] +[s0; [C0 Also add information on how to contact you by electronic and +paper mail.]&] +[s0;C0 &] +[s0; [C0 If the program does terminal interaction, make it output +a short]&] +[s0; [C0 notice like this when it starts in an interactive mode:]&] +[s0;C0 &] +[s0; [C0 Copyright (C) ]&] +[s0; [C0 This program comes with ABSOLUTELY NO WARRANTY; for details +type ``show w`'.]&] +[s0; [C0 This is free software, and you are welcome to redistribute +it]&] +[s0; [C0 under certain conditions; type ``show c`' for details.]&] +[s0;C0 &] +[s0; [C0 The hypothetical commands ``show w`' and ``show c`' should +show the appropriate]&] +[s0; [C0 parts of the General Public License. Of course, your program`'s +commands]&] +[s0; [C0 might be different; for a GUI interface, you would use an +`"about box`".]&] +[s0;C0 &] +[s0; [C0 You should also get your employer (if you work as a programmer) +or school,]&] +[s0; [C0 if any, to sign a `"copyright disclaimer`" for the program, +if necessary.]&] +[s0; [C0 For more information on this, and how to apply and follow +the GNU GPL, see]&] +[s0; [C0 .]&] +[s0;C0 &] +[s0; [C0 The GNU General Public License does not permit incorporating +your program]&] +[s0; [C0 into proprietary programs. If your program is a subroutine +library, you]&] +[s0; [C0 may consider it more useful to permit linking proprietary +applications with]&] +[s0; [C0 the library. If this is what you want to do, use the GNU +Lesser General]&] +[s0; [C0 Public License instead of this License. But first, please +read]&] +[s0; [C0 .]&] +[s0;C0 ]}}&] +[s0;C0 &] +[s0; [C0 GDB]&] +[ {{10000@(255.255.192) [s0; [C0 GNU GENERAL PUBLIC LICENSE]&] +[s0; [C0 Version 3, 29 June 2007]&] +[s0;C0 &] +[s0; [C0 Copyright (C) 2007 Free Software Foundation, Inc. ]&] +[s0; [C0 Everyone is permitted to copy and distribute verbatim copies]&] +[s0; [C0 of this license document, but changing it is not allowed.]&] +[s0;C0 &] +[s0; [C0 Preamble]&] +[s0;C0 &] +[s0; [C0 The GNU General Public License is a free, copyleft license +for]&] +[s0; [C0 software and other kinds of works.]&] +[s0;C0 &] +[s0; [C0 The licenses for most software and other practical works +are designed]&] +[s0; [C0 to take away your freedom to share and change the works. +By contrast,]&] +[s0; [C0 the GNU General Public License is intended to guarantee your +freedom to]&] +[s0; [C0 share and change all versions of a program`-`-to make sure +it remains free]&] +[s0; [C0 software for all its users. We, the Free Software Foundation, +use the]&] +[s0; [C0 GNU General Public License for most of our software; it applies +also to]&] +[s0; [C0 any other work released this way by its authors. You can +apply it to]&] +[s0; [C0 your programs, too.]&] +[s0;C0 &] +[s0; [C0 When we speak of free software, we are referring to freedom, +not]&] +[s0; [C0 price. Our General Public Licenses are designed to make sure +that you]&] +[s0; [C0 have the freedom to distribute copies of free software (and +charge for]&] +[s0; [C0 them if you wish), that you receive source code or can get +it if you]&] +[s0; [C0 want it, that you can change the software or use pieces of +it in new]&] +[s0; [C0 free programs, and that you know you can do these things.]&] +[s0;C0 &] +[s0; [C0 To protect your rights, we need to prevent others from denying +you]&] +[s0; [C0 these rights or asking you to surrender the rights. Therefore, +you have]&] +[s0; [C0 certain responsibilities if you distribute copies of the software, +or if]&] +[s0; [C0 you modify it: responsibilities to respect the freedom of others.]&] +[s0;C0 &] +[s0; [C0 For example, if you distribute copies of such a program, +whether]&] +[s0; [C0 gratis or for a fee, you must pass on to the recipients the +same]&] +[s0; [C0 freedoms that you received. You must make sure that they, +too, receive]&] +[s0; [C0 or can get the source code. And you must show them these +terms so they]&] +[s0; [C0 know their rights.]&] +[s0;C0 &] +[s0; [C0 Developers that use the GNU GPL protect your rights with +two steps:]&] +[s0; [C0 (1) assert copyright on the software, and (2) offer you this +License]&] +[s0; [C0 giving you legal permission to copy, distribute and/or modify +it.]&] +[s0;C0 &] +[s0; [C0 For the developers`' and authors`' protection, the GPL clearly +explains]&] +[s0; [C0 that there is no warranty for this free software. For both +users`' and]&] +[s0; [C0 authors`' sake, the GPL requires that modified versions be +marked as]&] +[s0; [C0 changed, so that their problems will not be attributed erroneously +to]&] +[s0; [C0 authors of previous versions.]&] +[s0;C0 &] +[s0; [C0 Some devices are designed to deny users access to install +or run]&] +[s0; [C0 modified versions of the software inside them, although the +manufacturer]&] +[s0; [C0 can do so. This is fundamentally incompatible with the aim +of]&] +[s0; [C0 protecting users`' freedom to change the software. The systematic]&] +[s0; [C0 pattern of such abuse occurs in the area of products for individuals +to]&] +[s0; [C0 use, which is precisely where it is most unacceptable. Therefore, +we]&] +[s0; [C0 have designed this version of the GPL to prohibit the practice +for those]&] +[s0; [C0 products. If such problems arise substantially in other domains, +we]&] +[s0; [C0 stand ready to extend this provision to those domains in future +versions]&] +[s0; [C0 of the GPL, as needed to protect the freedom of users.]&] +[s0;C0 &] +[s0; [C0 Finally, every program is threatened constantly by software +patents.]&] +[s0; [C0 States should not allow patents to restrict development and +use of]&] +[s0; [C0 software on general`-purpose computers, but in those that +do, we wish to]&] +[s0; [C0 avoid the special danger that patents applied to a free program +could]&] +[s0; [C0 make it effectively proprietary. To prevent this, the GPL +assures that]&] +[s0; [C0 patents cannot be used to render the program non`-free.]&] +[s0;C0 &] +[s0; [C0 The precise terms and conditions for copying, distribution +and]&] +[s0; [C0 modification follow.]&] +[s0;C0 &] +[s0; [C0 TERMS AND CONDITIONS]&] +[s0;C0 &] +[s0; [C0 0. Definitions.]&] +[s0;C0 &] +[s0; [C0 `"This License`" refers to version 3 of the GNU General +Public License.]&] +[s0;C0 &] +[s0; [C0 `"Copyright`" also means copyright`-like laws that apply +to other kinds of]&] +[s0; [C0 works, such as semiconductor masks.]&] +[s0;C0 &] +[s0; [C0 `"The Program`" refers to any copyrightable work licensed +under this]&] +[s0; [C0 License. Each licensee is addressed as `"you`". `"Licensees`" +and]&] +[s0; [C0 `"recipients`" may be individuals or organizations.]&] +[s0;C0 &] +[s0; [C0 To `"modify`" a work means to copy from or adapt all or +part of the work]&] +[s0; [C0 in a fashion requiring copyright permission, other than the +making of an]&] +[s0; [C0 exact copy. The resulting work is called a `"modified version`" +of the]&] +[s0; [C0 earlier work or a work `"based on`" the earlier work.]&] +[s0;C0 &] +[s0; [C0 A `"covered work`" means either the unmodified Program or +a work based]&] +[s0; [C0 on the Program.]&] +[s0;C0 &] +[s0; [C0 To `"propagate`" a work means to do anything with it that, +without]&] +[s0; [C0 permission, would make you directly or secondarily liable +for]&] +[s0; [C0 infringement under applicable copyright law, except executing +it on a]&] +[s0; [C0 computer or modifying a private copy. Propagation includes +copying,]&] +[s0; [C0 distribution (with or without modification), making available +to the]&] +[s0; [C0 public, and in some countries other activities as well.]&] +[s0;C0 &] +[s0; [C0 To `"convey`" a work means any kind of propagation that +enables other]&] +[s0; [C0 parties to make or receive copies. Mere interaction with +a user through]&] +[s0; [C0 a computer network, with no transfer of a copy, is not conveying.]&] +[s0;C0 &] +[s0; [C0 An interactive user interface displays `"Appropriate Legal +Notices`"]&] +[s0; [C0 to the extent that it includes a convenient and prominently +visible]&] +[s0; [C0 feature that (1) displays an appropriate copyright notice, +and (2)]&] +[s0; [C0 tells the user that there is no warranty for the work (except +to the]&] +[s0; [C0 extent that warranties are provided), that licensees may convey +the]&] +[s0; [C0 work under this License, and how to view a copy of this License. + If]&] +[s0; [C0 the interface presents a list of user commands or options, +such as a]&] +[s0; [C0 menu, a prominent item in the list meets this criterion.]&] +[s0;C0 &] +[s0; [C0 1. Source Code.]&] +[s0;C0 &] +[s0; [C0 The `"source code`" for a work means the preferred form +of the work]&] +[s0; [C0 for making modifications to it. `"Object code`" means any +non`-source]&] +[s0; [C0 form of a work.]&] +[s0;C0 &] +[s0; [C0 A `"Standard Interface`" means an interface that either +is an official]&] +[s0; [C0 standard defined by a recognized standards body, or, in the +case of]&] +[s0; [C0 interfaces specified for a particular programming language, +one that]&] +[s0; [C0 is widely used among developers working in that language.]&] +[s0;C0 &] +[s0; [C0 The `"System Libraries`" of an executable work include anything, +other]&] +[s0; [C0 than the work as a whole, that (a) is included in the normal +form of]&] +[s0; [C0 packaging a Major Component, but which is not part of that +Major]&] +[s0; [C0 Component, and (b) serves only to enable use of the work with +that]&] +[s0; [C0 Major Component, or to implement a Standard Interface for +which an]&] +[s0; [C0 implementation is available to the public in source code form. + A]&] +[s0; [C0 `"Major Component`", in this context, means a major essential +component]&] +[s0; [C0 (kernel, window system, and so on) of the specific operating +system]&] +[s0; [C0 (if any) on which the executable work runs, or a compiler +used to]&] +[s0; [C0 produce the work, or an object code interpreter used to run +it.]&] +[s0;C0 &] +[s0; [C0 The `"Corresponding Source`" for a work in object code form +means all]&] +[s0; [C0 the source code needed to generate, install, and (for an executable]&] +[s0; [C0 work) run the object code and to modify the work, including +scripts to]&] +[s0; [C0 control those activities. However, it does not include the +work`'s]&] +[s0; [C0 System Libraries, or general`-purpose tools or generally available +free]&] +[s0; [C0 programs which are used unmodified in performing those activities +but]&] +[s0; [C0 which are not part of the work. For example, Corresponding +Source]&] +[s0; [C0 includes interface definition files associated with source +files for]&] +[s0; [C0 the work, and the source code for shared libraries and dynamically]&] +[s0; [C0 linked subprograms that the work is specifically designed +to require,]&] +[s0; [C0 such as by intimate data communication or control flow between +those]&] +[s0; [C0 subprograms and other parts of the work.]&] +[s0;C0 &] +[s0; [C0 The Corresponding Source need not include anything that +users]&] +[s0; [C0 can regenerate automatically from other parts of the Corresponding]&] +[s0; [C0 Source.]&] +[s0;C0 &] +[s0; [C0 The Corresponding Source for a work in source code form +is that]&] +[s0; [C0 same work.]&] +[s0;C0 &] +[s0; [C0 2. Basic Permissions.]&] +[s0;C0 &] +[s0; [C0 All rights granted under this License are granted for the +term of]&] +[s0; [C0 copyright on the Program, and are irrevocable provided the +stated]&] +[s0; [C0 conditions are met. This License explicitly affirms your +unlimited]&] +[s0; [C0 permission to run the unmodified Program. The output from +running a]&] +[s0; [C0 covered work is covered by this License only if the output, +given its]&] +[s0; [C0 content, constitutes a covered work. This License acknowledges +your]&] +[s0; [C0 rights of fair use or other equivalent, as provided by copyright +law.]&] +[s0;C0 &] +[s0; [C0 You may make, run and propagate covered works that you do +not]&] +[s0; [C0 convey, without conditions so long as your license otherwise +remains]&] +[s0; [C0 in force. You may convey covered works to others for the +sole purpose]&] +[s0; [C0 of having them make modifications exclusively for you, or +provide you]&] +[s0; [C0 with facilities for running those works, provided that you +comply with]&] +[s0; [C0 the terms of this License in conveying all material for which +you do]&] +[s0; [C0 not control copyright. Those thus making or running the covered +works]&] +[s0; [C0 for you must do so exclusively on your behalf, under your +direction]&] +[s0; [C0 and control, on terms that prohibit them from making any copies +of]&] +[s0; [C0 your copyrighted material outside their relationship with +you.]&] +[s0;C0 &] +[s0; [C0 Conveying under any other circumstances is permitted solely +under]&] +[s0; [C0 the conditions stated below. Sublicensing is not allowed; +section 10]&] +[s0; [C0 makes it unnecessary.]&] +[s0;C0 &] +[s0; [C0 3. Protecting Users`' Legal Rights From Anti`-Circumvention +Law.]&] +[s0;C0 &] +[s0; [C0 No covered work shall be deemed part of an effective technological]&] +[s0; [C0 measure under any applicable law fulfilling obligations under +article]&] +[s0; [C0 11 of the WIPO copyright treaty adopted on 20 December 1996, +or]&] +[s0; [C0 similar laws prohibiting or restricting circumvention of such]&] +[s0; [C0 measures.]&] +[s0;C0 &] +[s0; [C0 When you convey a covered work, you waive any legal power +to forbid]&] +[s0; [C0 circumvention of technological measures to the extent such +circumvention]&] +[s0; [C0 is effected by exercising rights under this License with respect +to]&] +[s0; [C0 the covered work, and you disclaim any intention to limit +operation or]&] +[s0; [C0 modification of the work as a means of enforcing, against +the work`'s]&] +[s0; [C0 users, your or third parties`' legal rights to forbid circumvention +of]&] +[s0; [C0 technological measures.]&] +[s0;C0 &] +[s0; [C0 4. Conveying Verbatim Copies.]&] +[s0;C0 &] +[s0; [C0 You may convey verbatim copies of the Program`'s source +code as you]&] +[s0; [C0 receive it, in any medium, provided that you conspicuously +and]&] +[s0; [C0 appropriately publish on each copy an appropriate copyright +notice;]&] +[s0; [C0 keep intact all notices stating that this License and any]&] +[s0; [C0 non`-permissive terms added in accord with section 7 apply +to the code;]&] +[s0; [C0 keep intact all notices of the absence of any warranty; and +give all]&] +[s0; [C0 recipients a copy of this License along with the Program.]&] +[s0;C0 &] +[s0; [C0 You may charge any price or no price for each copy that +you convey,]&] +[s0; [C0 and you may offer support or warranty protection for a fee.]&] +[s0;C0 &] +[s0; [C0 5. Conveying Modified Source Versions.]&] +[s0;C0 &] +[s0; [C0 You may convey a work based on the Program, or the modifications +to]&] +[s0; [C0 produce it from the Program, in the form of source code under +the]&] +[s0; [C0 terms of section 4, provided that you also meet all of these +conditions:]&] +[s0;C0 &] +[s0; [C0 a) The work must carry prominent notices stating that +you modified]&] +[s0; [C0 it, and giving a relevant date.]&] +[s0;C0 &] +[s0; [C0 b) The work must carry prominent notices stating that +it is]&] +[s0; [C0 released under this License and any conditions added under +section]&] +[s0; [C0 7. This requirement modifies the requirement in section +4 to]&] +[s0; [C0 `"keep intact all notices`".]&] +[s0;C0 &] +[s0; [C0 c) You must license the entire work, as a whole, under +this]&] +[s0; [C0 License to anyone who comes into possession of a copy. + This]&] +[s0; [C0 License will therefore apply, along with any applicable +section 7]&] +[s0; [C0 additional terms, to the whole of the work, and all its +parts,]&] +[s0; [C0 regardless of how they are packaged. This License gives +no]&] +[s0; [C0 permission to license the work in any other way, but it +does not]&] +[s0; [C0 invalidate such permission if you have separately received +it.]&] +[s0;C0 &] +[s0; [C0 d) If the work has interactive user interfaces, each must +display]&] +[s0; [C0 Appropriate Legal Notices; however, if the Program has +interactive]&] +[s0; [C0 interfaces that do not display Appropriate Legal Notices, +your]&] +[s0; [C0 work need not make them do so.]&] +[s0;C0 &] +[s0; [C0 A compilation of a covered work with other separate and +independent]&] +[s0; [C0 works, which are not by their nature extensions of the covered +work,]&] +[s0; [C0 and which are not combined with it such as to form a larger +program,]&] +[s0; [C0 in or on a volume of a storage or distribution medium, is +called an]&] +[s0; [C0 `"aggregate`" if the compilation and its resulting copyright +are not]&] +[s0; [C0 used to limit the access or legal rights of the compilation`'s +users]&] +[s0; [C0 beyond what the individual works permit. Inclusion of a covered +work]&] +[s0; [C0 in an aggregate does not cause this License to apply to the +other]&] +[s0; [C0 parts of the aggregate.]&] +[s0;C0 &] +[s0; [C0 6. Conveying Non`-Source Forms.]&] +[s0;C0 &] +[s0; [C0 You may convey a covered work in object code form under +the terms]&] +[s0; [C0 of sections 4 and 5, provided that you also convey the]&] +[s0; [C0 machine`-readable Corresponding Source under the terms of +this License,]&] +[s0; [C0 in one of these ways:]&] +[s0;C0 &] +[s0; [C0 a) Convey the object code in, or embodied in, a physical +product]&] +[s0; [C0 (including a physical distribution medium), accompanied +by the]&] +[s0; [C0 Corresponding Source fixed on a durable physical medium]&] +[s0; [C0 customarily used for software interchange.]&] +[s0;C0 &] +[s0; [C0 b) Convey the object code in, or embodied in, a physical +product]&] +[s0; [C0 (including a physical distribution medium), accompanied +by a]&] +[s0; [C0 written offer, valid for at least three years and valid +for as]&] +[s0; [C0 long as you offer spare parts or customer support for +that product]&] +[s0; [C0 model, to give anyone who possesses the object code either +(1) a]&] +[s0; [C0 copy of the Corresponding Source for all the software +in the]&] +[s0; [C0 product that is covered by this License, on a durable +physical]&] +[s0; [C0 medium customarily used for software interchange, for +a price no]&] +[s0; [C0 more than your reasonable cost of physically performing +this]&] +[s0; [C0 conveying of source, or (2) access to copy the]&] +[s0; [C0 Corresponding Source from a network server at no charge.]&] +[s0;C0 &] +[s0; [C0 c) Convey individual copies of the object code with a +copy of the]&] +[s0; [C0 written offer to provide the Corresponding Source. This]&] +[s0; [C0 alternative is allowed only occasionally and noncommercially, +and]&] +[s0; [C0 only if you received the object code with such an offer, +in accord]&] +[s0; [C0 with subsection 6b.]&] +[s0;C0 &] +[s0; [C0 d) Convey the object code by offering access from a designated]&] +[s0; [C0 place (gratis or for a charge), and offer equivalent access +to the]&] +[s0; [C0 Corresponding Source in the same way through the same +place at no]&] +[s0; [C0 further charge. You need not require recipients to copy +the]&] +[s0; [C0 Corresponding Source along with the object code. If the +place to]&] +[s0; [C0 copy the object code is a network server, the Corresponding +Source]&] +[s0; [C0 may be on a different server (operated by you or a third +party)]&] +[s0; [C0 that supports equivalent copying facilities, provided +you maintain]&] +[s0; [C0 clear directions next to the object code saying where +to find the]&] +[s0; [C0 Corresponding Source. Regardless of what server hosts +the]&] +[s0; [C0 Corresponding Source, you remain obligated to ensure that +it is]&] +[s0; [C0 available for as long as needed to satisfy these requirements.]&] +[s0;C0 &] +[s0; [C0 e) Convey the object code using peer`-to`-peer transmission, +provided]&] +[s0; [C0 you inform other peers where the object code and Corresponding]&] +[s0; [C0 Source of the work are being offered to the general public +at no]&] +[s0; [C0 charge under subsection 6d.]&] +[s0;C0 &] +[s0; [C0 A separable portion of the object code, whose source code +is excluded]&] +[s0; [C0 from the Corresponding Source as a System Library, need not +be]&] +[s0; [C0 included in conveying the object code work.]&] +[s0;C0 &] +[s0; [C0 A `"User Product`" is either (1) a `"consumer product`", +which means any]&] +[s0; [C0 tangible personal property which is normally used for personal, +family,]&] +[s0; [C0 or household purposes, or (2) anything designed or sold for +incorporation]&] +[s0; [C0 into a dwelling. In determining whether a product is a consumer +product,]&] +[s0; [C0 doubtful cases shall be resolved in favor of coverage. For +a particular]&] +[s0; [C0 product received by a particular user, `"normally used`" refers +to a]&] +[s0; [C0 typical or common use of that class of product, regardless +of the status]&] +[s0; [C0 of the particular user or of the way in which the particular +user]&] +[s0; [C0 actually uses, or expects or is expected to use, the product. + A product]&] +[s0; [C0 is a consumer product regardless of whether the product has +substantial]&] +[s0; [C0 commercial, industrial or non`-consumer uses, unless such +uses represent]&] +[s0; [C0 the only significant mode of use of the product.]&] +[s0;C0 &] +[s0; [C0 `"Installation Information`" for a User Product means any +methods,]&] +[s0; [C0 procedures, authorization keys, or other information required +to install]&] +[s0; [C0 and execute modified versions of a covered work in that User +Product from]&] +[s0; [C0 a modified version of its Corresponding Source. The information +must]&] +[s0; [C0 suffice to ensure that the continued functioning of the modified +object]&] +[s0; [C0 code is in no case prevented or interfered with solely because]&] +[s0; [C0 modification has been made.]&] +[s0;C0 &] +[s0; [C0 If you convey an object code work under this section in, +or with, or]&] +[s0; [C0 specifically for use in, a User Product, and the conveying +occurs as]&] +[s0; [C0 part of a transaction in which the right of possession and +use of the]&] +[s0; [C0 User Product is transferred to the recipient in perpetuity +or for a]&] +[s0; [C0 fixed term (regardless of how the transaction is characterized), +the]&] +[s0; [C0 Corresponding Source conveyed under this section must be accompanied]&] +[s0; [C0 by the Installation Information. But this requirement does +not apply]&] +[s0; [C0 if neither you nor any third party retains the ability to +install]&] +[s0; [C0 modified object code on the User Product (for example, the +work has]&] +[s0; [C0 been installed in ROM).]&] +[s0;C0 &] +[s0; [C0 The requirement to provide Installation Information does +not include a]&] +[s0; [C0 requirement to continue to provide support service, warranty, +or updates]&] +[s0; [C0 for a work that has been modified or installed by the recipient, +or for]&] +[s0; [C0 the User Product in which it has been modified or installed. + Access to a]&] +[s0; [C0 network may be denied when the modification itself materially +and]&] +[s0; [C0 adversely affects the operation of the network or violates +the rules and]&] +[s0; [C0 protocols for communication across the network.]&] +[s0;C0 &] +[s0; [C0 Corresponding Source conveyed, and Installation Information +provided,]&] +[s0; [C0 in accord with this section must be in a format that is publicly]&] +[s0; [C0 documented (and with an implementation available to the public +in]&] +[s0; [C0 source code form), and must require no special password or +key for]&] +[s0; [C0 unpacking, reading or copying.]&] +[s0;C0 &] +[s0; [C0 7. Additional Terms.]&] +[s0;C0 &] +[s0; [C0 `"Additional permissions`" are terms that supplement the +terms of this]&] +[s0; [C0 License by making exceptions from one or more of its conditions.]&] +[s0; [C0 Additional permissions that are applicable to the entire Program +shall]&] +[s0; [C0 be treated as though they were included in this License, to +the extent]&] +[s0; [C0 that they are valid under applicable law. If additional permissions]&] +[s0; [C0 apply only to part of the Program, that part may be used separately]&] +[s0; [C0 under those permissions, but the entire Program remains governed +by]&] +[s0; [C0 this License without regard to the additional permissions.]&] +[s0;C0 &] +[s0; [C0 When you convey a copy of a covered work, you may at your +option]&] +[s0; [C0 remove any additional permissions from that copy, or from +any part of]&] +[s0; [C0 it. (Additional permissions may be written to require their +own]&] +[s0; [C0 removal in certain cases when you modify the work.) You may +place]&] +[s0; [C0 additional permissions on material, added by you to a covered +work,]&] +[s0; [C0 for which you have or can give appropriate copyright permission.]&] +[s0;C0 &] +[s0; [C0 Notwithstanding any other provision of this License, for +material you]&] +[s0; [C0 add to a covered work, you may (if authorized by the copyright +holders of]&] +[s0; [C0 that material) supplement the terms of this License with terms:]&] +[s0;C0 &] +[s0; [C0 a) Disclaiming warranty or limiting liability differently +from the]&] +[s0; [C0 terms of sections 15 and 16 of this License; or]&] +[s0;C0 &] +[s0; [C0 b) Requiring preservation of specified reasonable legal +notices or]&] +[s0; [C0 author attributions in that material or in the Appropriate +Legal]&] +[s0; [C0 Notices displayed by works containing it; or]&] +[s0;C0 &] +[s0; [C0 c) Prohibiting misrepresentation of the origin of that +material, or]&] +[s0; [C0 requiring that modified versions of such material be marked +in]&] +[s0; [C0 reasonable ways as different from the original version; +or]&] +[s0;C0 &] +[s0; [C0 d) Limiting the use for publicity purposes of names of +licensors or]&] +[s0; [C0 authors of the material; or]&] +[s0;C0 &] +[s0; [C0 e) Declining to grant rights under trademark law for use +of some]&] +[s0; [C0 trade names, trademarks, or service marks; or]&] +[s0;C0 &] +[s0; [C0 f) Requiring indemnification of licensors and authors +of that]&] +[s0; [C0 material by anyone who conveys the material (or modified +versions of]&] +[s0; [C0 it) with contractual assumptions of liability to the recipient, +for]&] +[s0; [C0 any liability that these contractual assumptions directly +impose on]&] +[s0; [C0 those licensors and authors.]&] +[s0;C0 &] +[s0; [C0 All other non`-permissive additional terms are considered +`"further]&] +[s0; [C0 restrictions`" within the meaning of section 10. If the Program +as you]&] +[s0; [C0 received it, or any part of it, contains a notice stating +that it is]&] +[s0; [C0 governed by this License along with a term that is a further]&] +[s0; [C0 restriction, you may remove that term. If a license document +contains]&] +[s0; [C0 a further restriction but permits relicensing or conveying +under this]&] +[s0; [C0 License, you may add to a covered work material governed by +the terms]&] +[s0; [C0 of that license document, provided that the further restriction +does]&] +[s0; [C0 not survive such relicensing or conveying.]&] +[s0;C0 &] +[s0; [C0 If you add terms to a covered work in accord with this section, +you]&] +[s0; [C0 must place, in the relevant source files, a statement of the]&] +[s0; [C0 additional terms that apply to those files, or a notice indicating]&] +[s0; [C0 where to find the applicable terms.]&] +[s0;C0 &] +[s0; [C0 Additional terms, permissive or non`-permissive, may be +stated in the]&] +[s0; [C0 form of a separately written license, or stated as exceptions;]&] +[s0; [C0 the above requirements apply either way.]&] +[s0;C0 &] +[s0; [C0 8. Termination.]&] +[s0;C0 &] +[s0; [C0 You may not propagate or modify a covered work except as +expressly]&] +[s0; [C0 provided under this License. Any attempt otherwise to propagate +or]&] +[s0; [C0 modify it is void, and will automatically terminate your rights +under]&] +[s0; [C0 this License (including any patent licenses granted under +the third]&] +[s0; [C0 paragraph of section 11).]&] +[s0;C0 &] +[s0; [C0 However, if you cease all violation of this License, then +your]&] +[s0; [C0 license from a particular copyright holder is reinstated (a)]&] +[s0; [C0 provisionally, unless and until the copyright holder explicitly +and]&] +[s0; [C0 finally terminates your license, and (b) permanently, if the +copyright]&] +[s0; [C0 holder fails to notify you of the violation by some reasonable +means]&] +[s0; [C0 prior to 60 days after the cessation.]&] +[s0;C0 &] +[s0; [C0 Moreover, your license from a particular copyright holder +is]&] +[s0; [C0 reinstated permanently if the copyright holder notifies you +of the]&] +[s0; [C0 violation by some reasonable means, this is the first time +you have]&] +[s0; [C0 received notice of violation of this License (for any work) +from that]&] +[s0; [C0 copyright holder, and you cure the violation prior to 30 days +after]&] +[s0; [C0 your receipt of the notice.]&] +[s0;C0 &] +[s0; [C0 Termination of your rights under this section does not terminate +the]&] +[s0; [C0 licenses of parties who have received copies or rights from +you under]&] +[s0; [C0 this License. If your rights have been terminated and not +permanently]&] +[s0; [C0 reinstated, you do not qualify to receive new licenses for +the same]&] +[s0; [C0 material under section 10.]&] +[s0;C0 &] +[s0; [C0 9. Acceptance Not Required for Having Copies.]&] +[s0;C0 &] +[s0; [C0 You are not required to accept this License in order to +receive or]&] +[s0; [C0 run a copy of the Program. Ancillary propagation of a covered +work]&] +[s0; [C0 occurring solely as a consequence of using peer`-to`-peer +transmission]&] +[s0; [C0 to receive a copy likewise does not require acceptance. However,]&] +[s0; [C0 nothing other than this License grants you permission to propagate +or]&] +[s0; [C0 modify any covered work. These actions infringe copyright +if you do]&] +[s0; [C0 not accept this License. Therefore, by modifying or propagating +a]&] +[s0; [C0 covered work, you indicate your acceptance of this License +to do so.]&] +[s0;C0 &] +[s0; [C0 10. Automatic Licensing of Downstream Recipients.]&] +[s0;C0 &] +[s0; [C0 Each time you convey a covered work, the recipient automatically]&] +[s0; [C0 receives a license from the original licensors, to run, modify +and]&] +[s0; [C0 propagate that work, subject to this License. You are not +responsible]&] +[s0; [C0 for enforcing compliance by third parties with this License.]&] +[s0;C0 &] +[s0; [C0 An `"entity transaction`" is a transaction transferring +control of an]&] +[s0; [C0 organization, or substantially all assets of one, or subdividing +an]&] +[s0; [C0 organization, or merging organizations. If propagation of +a covered]&] +[s0; [C0 work results from an entity transaction, each party to that]&] +[s0; [C0 transaction who receives a copy of the work also receives +whatever]&] +[s0; [C0 licenses to the work the party`'s predecessor in interest +had or could]&] +[s0; [C0 give under the previous paragraph, plus a right to possession +of the]&] +[s0; [C0 Corresponding Source of the work from the predecessor in interest, +if]&] +[s0; [C0 the predecessor has it or can get it with reasonable efforts.]&] +[s0;C0 &] +[s0; [C0 You may not impose any further restrictions on the exercise +of the]&] +[s0; [C0 rights granted or affirmed under this License. For example, +you may]&] +[s0; [C0 not impose a license fee, royalty, or other charge for exercise +of]&] +[s0; [C0 rights granted under this License, and you may not initiate +litigation]&] +[s0; [C0 (including a cross`-claim or counterclaim in a lawsuit) alleging +that]&] +[s0; [C0 any patent claim is infringed by making, using, selling, offering +for]&] +[s0; [C0 sale, or importing the Program or any portion of it.]&] +[s0;C0 &] +[s0; [C0 11. Patents.]&] +[s0;C0 &] +[s0; [C0 A `"contributor`" is a copyright holder who authorizes use +under this]&] +[s0; [C0 License of the Program or a work on which the Program is based. + The]&] +[s0; [C0 work thus licensed is called the contributor`'s `"contributor +version`".]&] +[s0;C0 &] +[s0; [C0 A contributor`'s `"essential patent claims`" are all patent +claims]&] +[s0; [C0 owned or controlled by the contributor, whether already acquired +or]&] +[s0; [C0 hereafter acquired, that would be infringed by some manner, +permitted]&] +[s0; [C0 by this License, of making, using, or selling its contributor +version,]&] +[s0; [C0 but do not include claims that would be infringed only as +a]&] +[s0; [C0 consequence of further modification of the contributor version. + For]&] +[s0; [C0 purposes of this definition, `"control`" includes the right +to grant]&] +[s0; [C0 patent sublicenses in a manner consistent with the requirements +of]&] +[s0; [C0 this License.]&] +[s0;C0 &] +[s0; [C0 Each contributor grants you a non`-exclusive, worldwide, +royalty`-free]&] +[s0; [C0 patent license under the contributor`'s essential patent claims, +to]&] +[s0; [C0 make, use, sell, offer for sale, import and otherwise run, +modify and]&] +[s0; [C0 propagate the contents of its contributor version.]&] +[s0;C0 &] +[s0; [C0 In the following three paragraphs, a `"patent license`" +is any express]&] +[s0; [C0 agreement or commitment, however denominated, not to enforce +a patent]&] +[s0; [C0 (such as an express permission to practice a patent or covenant +not to]&] +[s0; [C0 sue for patent infringement). To `"grant`" such a patent +license to a]&] +[s0; [C0 party means to make such an agreement or commitment not to +enforce a]&] +[s0; [C0 patent against the party.]&] +[s0;C0 &] +[s0; [C0 If you convey a covered work, knowingly relying on a patent +license,]&] +[s0; [C0 and the Corresponding Source of the work is not available +for anyone]&] +[s0; [C0 to copy, free of charge and under the terms of this License, +through a]&] +[s0; [C0 publicly available network server or other readily accessible +means,]&] +[s0; [C0 then you must either (1) cause the Corresponding Source to +be so]&] +[s0; [C0 available, or (2) arrange to deprive yourself of the benefit +of the]&] +[s0; [C0 patent license for this particular work, or (3) arrange, in +a manner]&] +[s0; [C0 consistent with the requirements of this License, to extend +the patent]&] +[s0; [C0 license to downstream recipients. `"Knowingly relying`" means +you have]&] +[s0; [C0 actual knowledge that, but for the patent license, your conveying +the]&] +[s0; [C0 covered work in a country, or your recipient`'s use of the +covered work]&] +[s0; [C0 in a country, would infringe one or more identifiable patents +in that]&] +[s0; [C0 country that you have reason to believe are valid.]&] +[s0;C0 &] +[s0; [C0 If, pursuant to or in connection with a single transaction +or]&] +[s0; [C0 arrangement, you convey, or propagate by procuring conveyance +of, a]&] +[s0; [C0 covered work, and grant a patent license to some of the parties]&] +[s0; [C0 receiving the covered work authorizing them to use, propagate, +modify]&] +[s0; [C0 or convey a specific copy of the covered work, then the patent +license]&] +[s0; [C0 you grant is automatically extended to all recipients of the +covered]&] +[s0; [C0 work and works based on it.]&] +[s0;C0 &] +[s0; [C0 A patent license is `"discriminatory`" if it does not include +within]&] +[s0; [C0 the scope of its coverage, prohibits the exercise of, or is]&] +[s0; [C0 conditioned on the non`-exercise of one or more of the rights +that are]&] +[s0; [C0 specifically granted under this License. You may not convey +a covered]&] +[s0; [C0 work if you are a party to an arrangement with a third party +that is]&] +[s0; [C0 in the business of distributing software, under which you +make payment]&] +[s0; [C0 to the third party based on the extent of your activity of +conveying]&] +[s0; [C0 the work, and under which the third party grants, to any of +the]&] +[s0; [C0 parties who would receive the covered work from you, a discriminatory]&] +[s0; [C0 patent license (a) in connection with copies of the covered +work]&] +[s0; [C0 conveyed by you (or copies made from those copies), or (b) +primarily]&] +[s0; [C0 for and in connection with specific products or compilations +that]&] +[s0; [C0 contain the covered work, unless you entered into that arrangement,]&] +[s0; [C0 or that patent license was granted, prior to 28 March 2007.]&] +[s0;C0 &] +[s0; [C0 Nothing in this License shall be construed as excluding +or limiting]&] +[s0; [C0 any implied license or other defenses to infringement that +may]&] +[s0; [C0 otherwise be available to you under applicable patent law.]&] +[s0;C0 &] +[s0; [C0 12. No Surrender of Others`' Freedom.]&] +[s0;C0 &] +[s0; [C0 If conditions are imposed on you (whether by court order, +agreement or]&] +[s0; [C0 otherwise) that contradict the conditions of this License, +they do not]&] +[s0; [C0 excuse you from the conditions of this License. If you cannot +convey a]&] +[s0; [C0 covered work so as to satisfy simultaneously your obligations +under this]&] +[s0; [C0 License and any other pertinent obligations, then as a consequence +you may]&] +[s0; [C0 not convey it at all. For example, if you agree to terms +that obligate you]&] +[s0; [C0 to collect a royalty for further conveying from those to whom +you convey]&] +[s0; [C0 the Program, the only way you could satisfy both those terms +and this]&] +[s0; [C0 License would be to refrain entirely from conveying the Program.]&] +[s0;C0 &] +[s0; [C0 13. Use with the GNU Affero General Public License.]&] +[s0;C0 &] +[s0; [C0 Notwithstanding any other provision of this License, you +have]&] +[s0; [C0 permission to link or combine any covered work with a work +licensed]&] +[s0; [C0 under version 3 of the GNU Affero General Public License into +a single]&] +[s0; [C0 combined work, and to convey the resulting work. The terms +of this]&] +[s0; [C0 License will continue to apply to the part which is the covered +work,]&] +[s0; [C0 but the special requirements of the GNU Affero General Public +License,]&] +[s0; [C0 section 13, concerning interaction through a network will +apply to the]&] +[s0; [C0 combination as such.]&] +[s0;C0 &] +[s0; [C0 14. Revised Versions of this License.]&] +[s0;C0 &] +[s0; [C0 The Free Software Foundation may publish revised and/or +new versions of]&] +[s0; [C0 the GNU General Public License from time to time. Such new +versions will]&] +[s0; [C0 be similar in spirit to the present version, but may differ +in detail to]&] +[s0; [C0 address new problems or concerns.]&] +[s0;C0 &] +[s0; [C0 Each version is given a distinguishing version number. +If the]&] +[s0; [C0 Program specifies that a certain numbered version of the GNU +General]&] +[s0; [C0 Public License `"or any later version`" applies to it, you +have the]&] +[s0; [C0 option of following the terms and conditions either of that +numbered]&] +[s0; [C0 version or of any later version published by the Free Software]&] +[s0; [C0 Foundation. If the Program does not specify a version number +of the]&] +[s0; [C0 GNU General Public License, you may choose any version ever +published]&] +[s0; [C0 by the Free Software Foundation.]&] +[s0;C0 &] +[s0; [C0 If the Program specifies that a proxy can decide which future]&] +[s0; [C0 versions of the GNU General Public License can be used, that +proxy`'s]&] +[s0; [C0 public statement of acceptance of a version permanently authorizes +you]&] +[s0; [C0 to choose that version for the Program.]&] +[s0;C0 &] +[s0; [C0 Later license versions may give you additional or different]&] +[s0; [C0 permissions. However, no additional obligations are imposed +on any]&] +[s0; [C0 author or copyright holder as a result of your choosing to +follow a]&] +[s0; [C0 later version.]&] +[s0;C0 &] +[s0; [C0 15. Disclaimer of Warranty.]&] +[s0;C0 &] +[s0; [C0 THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED +BY]&] +[s0; [C0 APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE +COPYRIGHT]&] +[s0; [C0 HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM `"AS IS`" +WITHOUT WARRANTY]&] +[s0; [C0 OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT +LIMITED TO,]&] +[s0; [C0 THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR]&] +[s0; [C0 PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE +OF THE PROGRAM]&] +[s0; [C0 IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME +THE COST OF]&] +[s0; [C0 ALL NECESSARY SERVICING, REPAIR OR CORRECTION.]&] +[s0;C0 &] +[s0; [C0 16. Limitation of Liability.]&] +[s0;C0 &] +[s0; [C0 IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED +TO IN WRITING]&] +[s0; [C0 WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES +AND/OR CONVEYS]&] +[s0; [C0 THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY]&] +[s0; [C0 GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE]&] +[s0; [C0 USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF]&] +[s0; [C0 DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED +BY YOU OR THIRD]&] +[s0; [C0 PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS),]&] +[s0; [C0 EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF]&] +[s0; [C0 SUCH DAMAGES.]&] +[s0;C0 &] +[s0; [C0 17. Interpretation of Sections 15 and 16.]&] +[s0;C0 &] +[s0; [C0 If the disclaimer of warranty and limitation of liability +provided]&] +[s0; [C0 above cannot be given local legal effect according to their +terms,]&] +[s0; [C0 reviewing courts shall apply local law that most closely approximates]&] +[s0; [C0 an absolute waiver of all civil liability in connection with +the]&] +[s0; [C0 Program, unless a warranty or assumption of liability accompanies +a]&] +[s0; [C0 copy of the Program in return for a fee.]&] +[s0;C0 &] +[s0; [C0 END OF TERMS AND CONDITIONS]&] +[s0;C0 &] +[s0; [C0 How to Apply These Terms to Your New Programs]&] +[s0;C0 &] +[s0; [C0 If you develop a new program, and you want it to be of the +greatest]&] +[s0; [C0 possible use to the public, the best way to achieve this is +to make it]&] +[s0; [C0 free software which everyone can redistribute and change under +these terms.]&] +[s0;C0 &] +[s0; [C0 To do so, attach the following notices to the program. +It is safest]&] +[s0; [C0 to attach them to the start of each source file to most effectively]&] +[s0; [C0 state the exclusion of warranty; and each file should have +at least]&] +[s0; [C0 the `"copyright`" line and a pointer to where the full notice +is found.]&] +[s0;C0 &] +[s0; [C0 ]&] +[s0; [C0 Copyright (C) ]&] +[s0;C0 &] +[s0; [C0 This program is free software: you can redistribute it +and/or modify]&] +[s0; [C0 it under the terms of the GNU General Public License as +published by]&] +[s0; [C0 the Free Software Foundation, either version 3 of the +License, or]&] +[s0; [C0 (at your option) any later version.]&] +[s0;C0 &] +[s0; [C0 This program is distributed in the hope that it will be +useful,]&] +[s0; [C0 but WITHOUT ANY WARRANTY; without even the implied warranty +of]&] +[s0; [C0 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +See the]&] +[s0; [C0 GNU General Public License for more details.]&] +[s0;C0 &] +[s0; [C0 You should have received a copy of the GNU General Public +License]&] +[s0; [C0 along with this program. If not, see .]&] +[s0;C0 &] +[s0; [C0 Also add information on how to contact you by electronic and +paper mail.]&] +[s0;C0 &] +[s0; [C0 If the program does terminal interaction, make it output +a short]&] +[s0; [C0 notice like this when it starts in an interactive mode:]&] +[s0;C0 &] +[s0; [C0 Copyright (C) ]&] +[s0; [C0 This program comes with ABSOLUTELY NO WARRANTY; for details +type ``show w`'.]&] +[s0; [C0 This is free software, and you are welcome to redistribute +it]&] +[s0; [C0 under certain conditions; type ``show c`' for details.]&] +[s0;C0 &] +[s0; [C0 The hypothetical commands ``show w`' and ``show c`' should +show the appropriate]&] +[s0; [C0 parts of the General Public License. Of course, your program`'s +commands]&] +[s0; [C0 might be different; for a GUI interface, you would use an +`"about box`".]&] +[s0;C0 &] +[s0; [C0 You should also get your employer (if you work as a programmer) +or school,]&] +[s0; [C0 if any, to sign a `"copyright disclaimer`" for the program, +if necessary.]&] +[s0; [C0 For more information on this, and how to apply and follow +the GNU GPL, see]&] +[s0; [C0 .]&] +[s0;C0 &] +[s0; [C0 The GNU General Public License does not permit incorporating +your program]&] +[s0; [C0 into proprietary programs. If your program is a subroutine +library, you]&] +[s0; [C0 may consider it more useful to permit linking proprietary +applications with]&] +[s0; [C0 the library. If this is what you want to do, use the GNU +Lesser General]&] +[s0; [C0 Public License instead of this License. But first, please +read]&] +[s0; [C0 .]&] +[s0;C0 ]}}&] [s0;%% ]] \ No newline at end of file diff --git a/uppsrc/ide/app.tpp/Blitz$en-us.tpp b/uppsrc/ide/app.tpp/Blitz_en-us.tpp similarity index 97% rename from uppsrc/ide/app.tpp/Blitz$en-us.tpp rename to uppsrc/ide/app.tpp/Blitz_en-us.tpp index a9ea96ba4..167716742 100644 --- a/uppsrc/ide/app.tpp/Blitz$en-us.tpp +++ b/uppsrc/ide/app.tpp/Blitz_en-us.tpp @@ -1,137 +1,137 @@ -topic "What is BLITZ and how are precompiled headers supported"; -[2 $$0,0#00000000000000000000000000000000:Default] -[l288;i1120;a17;O9;~~~.1408;2 $$1,0#10431211400427159095818037425705:param] -[a83;*R6 $$2,5#31310162474203024125188417583966:caption] -[b83;*4 $$3,5#07864147445237544204411237157677:title] -[i288;O9;C2 $$4,6#40027414424643823182269349404212:item] -[b42;a42;2 $$5,5#45413000475342174754091244180557:text] -[l288;b17;a17;2 $$6,6#27521748481378242620020725143825:desc] -[l321;C@5;1 $$7,7#20902679421464641399138805415013:code] -[b2503;2 $$8,0#65142375456100023862071332075487:separator] -[*@(0.0.255)2 $$9,0#83433469410354161042741608181528:base] -[C2 $$10,0#37138531426314131251341829483380:class] -[l288;a17;*1 $$11,11#70004532496200323422659154056402:requirement] -[i417;b42;a42;O9;~~~.416;2 $$12,12#10566046415157235020018451313112:tparam] -[b167;C2 $$13,13#92430459443460461911108080531343:item1] -[i288;a42;O9;C2 $$14,14#77422149456609303542238260500223:item2] -[*@2$(0.128.128)2 $$15,15#34511555403152284025741354420178:NewsDate] -[l321;*C$7;2 $$16,16#03451589433145915344929335295360:result] -[l321;b83;a83;*C$7;2 $$17,17#07531550463529505371228428965313:result`-line] -[l160;*C+117 $$18,5#88603949442205825958800053222425:package`-title] -[2 $$19,0#53580023442335529039900623488521:gap] -[C2 $$20,20#70211524482531209251820423858195:class`-nested] -[b50;2 $$21,21#03324558446220344731010354752573:Par] -[{_}%EN-US -[s2; About BLITZ and precompiled headers&] -[s0; [* Blitz] is advanced compilation technique based on [^http`:`/`/en`.wikipedia`.org`/wiki`/Single`_Compilation`_Unit^ S -CU] approach, intended to speedup debug mode rebuilds of large -applications. In fact, BLITZ is what allows U`+`+ to keep libraries -in sources form. You can consider BLITZ as an automated form -SCU.&] -[s0; &] -[s0; Blitz processes packages (not the whole program) `- each package -can have a single [/ blitz`-block] (blitz block is SCU).&] -[s0; &] -[s0; Only .cpp including files with inclusion guards (#ifdef NAME`_H -#define NAME`_H .... #endif) can qualify to be part of [/ blitz`-block]. -&] -[s0; &] -[s0; Alternatively, you can force inclusion by&] -[s7; &] -[s7; #pragma BLITZ`_APPROVE&] -[s7; &] -[s0; or&] -[s7; &] -[s7; //#BLITZ`_APPROVE&] -[s7; &] -[s0; &] -[s0; (also works for header) or exclusion by&] -[s0; &] -[s7; #pragma BLITZ`_PROHIBIT.&] -[s7; &] -[s0; or&] -[s7; &] -[s7; //#BLITZ`_PROHIBIT&] -[s7; &] -[s0; &] -[s0; In addition only files older than one hour qualify for [/ blitz`-block]. -This simple heuristics excludes file that are being worked on -`- otherwise change in file would always require rebuilding of -the whole package, which would be potentially slower.&] -[s0; &] -[s0; The files in package that do not qualify for [/ blitz`-block ]are -build the regular way.&] -[s0; &] -[s0; It is also possible to disable blitz for individual packages, -either on project basis (in Package organizer) or in Output mode -dialog (machine specific setting).&] -[s0; &] -[s0; Files in [/ blitz`-block] are scanned for any #define, these are -undefined after the file. [/ blitz`-block] is in fact a file generated -into output directory that include all blitz approved files and -gets compiled instead of them (it is named `$blitz.cpp, you can -check the output directory for details).&] -[s0; &] -[s0; BLITZ also includes one dirty trick to basically allow BLITZ -compilation of packages that define static variables names based -on the line number (macro `_`_LINE`_`_). Static variables are -not visible outside the compilation unit using the normal build -process, but when using BLITZ, more than single .cpp files are -compiled into single unit and so there is the possibility that -two such variables would have the same name.&] -[s0; &] -[s0; Therefore BLITZ adds BLITZ`_INDEX`_`_ macro, which contains -a unique number (index of file) for each .cpp. That way you can -create `"static`" identifiers e.g. like this (and also make it -compile without BLITZ):&] -[s0; &] -[ {{10000@(255.255.192) [s7; #define MK`_`_s`_`_(x) s`_`_s##x&] -[s7; #define MK`_`_s`_(x) MK`_`_s`_`_(x)&] -[s7; &] -[s7; #ifdef BLITZ`_INDEX`_`_&] -[s7; #define STATIC`_ID MK`_`_s`_(COMBINE(BLITZ`_INDEX`_`_, -`_`_LINE`_`_))&] -[s7; #else&] -[s7; #define STATIC`_ID MK`_`_s`_(`_`_LINE`_`_)&] -[s0; [C@5;1 -|#endif]]}}&] -[s0; &] -[s0; [*^http`:`/`/en`.wikipedia`.org`/wiki`/Precompiled`_header^ Precompiled -headers] is a compiler technique trying to solve the very same -problem. In general, we have found BLITZ faster than any precompiled -header use, however BLITZ tends to have one disadvantage: by combining -all files into single object file, linker has less opportunity -to remove unused code. This leads to (sometimes significantly) -larger executable binaries. For this reason, we do not recommend -(and have off by default) BLITZ for release builds and if possible, -we use precompiled headers for release builds.&] -[s0; &] -[s0; Precompiled headers have a set of its own problems. Notably, -Microsoft C`+`+ precompiled headers are hard to use with multiple -processes building the code (Hydra) in debug mode. Also, precompiled -headers in general are very bulky files, easily surpassing 100MB, -which is a problem as we need to have single precompiled header -per package.&] -[s0; &] -[s0; For these reasons precompiled headers support works like this:&] -[s0; &] -[s0;i150;O2; Precompiled headers are activated only in release mode -without blitz.&] -[s0;i150;O2; You have to set `"Precompile header`" flag on header -files candidates for precompilation. Only single candidate per -package is allowed. Note that not all headers can be with this -system. Header has to have include guards and it must be possible -for all files in the package to include it first before all other -headers.&] -[s0;i150;O2; Build method has to have `"Allow precompiled headers`" -set.&] -[s0;i150;O2; When package is build, it first checks whether using -precompiled header is possible (as per rules above). Then it -checks how many files are to be rebuild. If there are 3 or more -files to build, U`+`+ precompiles the header and uses it to build -the package. When the package is built, U`+`+ deletes the header -to conserve the space.&] -[s0; &] -[s0; U`+`+ supports precompiled headers for MSC, GCC and CLANG. However, -practical benchmarks show that with CLANG using precompiled headers -actually leads to worse compilation times.&] +topic "What is BLITZ and how are precompiled headers supported"; +[2 $$0,0#00000000000000000000000000000000:Default] +[l288;i1120;a17;O9;~~~.1408;2 $$1,0#10431211400427159095818037425705:param] +[a83;*R6 $$2,5#31310162474203024125188417583966:caption] +[b83;*4 $$3,5#07864147445237544204411237157677:title] +[i288;O9;C2 $$4,6#40027414424643823182269349404212:item] +[b42;a42;2 $$5,5#45413000475342174754091244180557:text] +[l288;b17;a17;2 $$6,6#27521748481378242620020725143825:desc] +[l321;C@5;1 $$7,7#20902679421464641399138805415013:code] +[b2503;2 $$8,0#65142375456100023862071332075487:separator] +[*@(0.0.255)2 $$9,0#83433469410354161042741608181528:base] +[C2 $$10,0#37138531426314131251341829483380:class] +[l288;a17;*1 $$11,11#70004532496200323422659154056402:requirement] +[i417;b42;a42;O9;~~~.416;2 $$12,12#10566046415157235020018451313112:tparam] +[b167;C2 $$13,13#92430459443460461911108080531343:item1] +[i288;a42;O9;C2 $$14,14#77422149456609303542238260500223:item2] +[*@2$(0.128.128)2 $$15,15#34511555403152284025741354420178:NewsDate] +[l321;*C$7;2 $$16,16#03451589433145915344929335295360:result] +[l321;b83;a83;*C$7;2 $$17,17#07531550463529505371228428965313:result`-line] +[l160;*C+117 $$18,5#88603949442205825958800053222425:package`-title] +[2 $$19,0#53580023442335529039900623488521:gap] +[C2 $$20,20#70211524482531209251820423858195:class`-nested] +[b50;2 $$21,21#03324558446220344731010354752573:Par] +[{_}%EN-US +[s2; About BLITZ and precompiled headers&] +[s0; [* Blitz] is advanced compilation technique based on [^http`:`/`/en`.wikipedia`.org`/wiki`/Single`_Compilation`_Unit^ S +CU] approach, intended to speedup debug mode rebuilds of large +applications. In fact, BLITZ is what allows U`+`+ to keep libraries +in sources form. You can consider BLITZ as an automated form +SCU.&] +[s0; &] +[s0; Blitz processes packages (not the whole program) `- each package +can have a single [/ blitz`-block] (blitz block is SCU).&] +[s0; &] +[s0; Only .cpp including files with inclusion guards (#ifdef NAME`_H +#define NAME`_H .... #endif) can qualify to be part of [/ blitz`-block]. +&] +[s0; &] +[s0; Alternatively, you can force inclusion by&] +[s7; &] +[s7; #pragma BLITZ`_APPROVE&] +[s7; &] +[s0; or&] +[s7; &] +[s7; //#BLITZ`_APPROVE&] +[s7; &] +[s0; &] +[s0; (also works for header) or exclusion by&] +[s0; &] +[s7; #pragma BLITZ`_PROHIBIT.&] +[s7; &] +[s0; or&] +[s7; &] +[s7; //#BLITZ`_PROHIBIT&] +[s7; &] +[s0; &] +[s0; In addition only files older than one hour qualify for [/ blitz`-block]. +This simple heuristics excludes file that are being worked on +`- otherwise change in file would always require rebuilding of +the whole package, which would be potentially slower.&] +[s0; &] +[s0; The files in package that do not qualify for [/ blitz`-block ]are +build the regular way.&] +[s0; &] +[s0; It is also possible to disable blitz for individual packages, +either on project basis (in Package organizer) or in Output mode +dialog (machine specific setting).&] +[s0; &] +[s0; Files in [/ blitz`-block] are scanned for any #define, these are +undefined after the file. [/ blitz`-block] is in fact a file generated +into output directory that include all blitz approved files and +gets compiled instead of them (it is named `$blitz.cpp, you can +check the output directory for details).&] +[s0; &] +[s0; BLITZ also includes one dirty trick to basically allow BLITZ +compilation of packages that define static variables names based +on the line number (macro `_`_LINE`_`_). Static variables are +not visible outside the compilation unit using the normal build +process, but when using BLITZ, more than single .cpp files are +compiled into single unit and so there is the possibility that +two such variables would have the same name.&] +[s0; &] +[s0; Therefore BLITZ adds BLITZ`_INDEX`_`_ macro, which contains +a unique number (index of file) for each .cpp. That way you can +create `"static`" identifiers e.g. like this (and also make it +compile without BLITZ):&] +[s0; &] +[ {{10000@(255.255.192) [s7; #define MK`_`_s`_`_(x) s`_`_s##x&] +[s7; #define MK`_`_s`_(x) MK`_`_s`_`_(x)&] +[s7; &] +[s7; #ifdef BLITZ`_INDEX`_`_&] +[s7; #define STATIC`_ID MK`_`_s`_(COMBINE(BLITZ`_INDEX`_`_, +`_`_LINE`_`_))&] +[s7; #else&] +[s7; #define STATIC`_ID MK`_`_s`_(`_`_LINE`_`_)&] +[s0; [C@5;1 -|#endif]]}}&] +[s0; &] +[s0; [*^http`:`/`/en`.wikipedia`.org`/wiki`/Precompiled`_header^ Precompiled +headers] is a compiler technique trying to solve the very same +problem. In general, we have found BLITZ faster than any precompiled +header use, however BLITZ tends to have one disadvantage: by combining +all files into single object file, linker has less opportunity +to remove unused code. This leads to (sometimes significantly) +larger executable binaries. For this reason, we do not recommend +(and have off by default) BLITZ for release builds and if possible, +we use precompiled headers for release builds.&] +[s0; &] +[s0; Precompiled headers have a set of its own problems. Notably, +Microsoft C`+`+ precompiled headers are hard to use with multiple +processes building the code (Hydra) in debug mode. Also, precompiled +headers in general are very bulky files, easily surpassing 100MB, +which is a problem as we need to have single precompiled header +per package.&] +[s0; &] +[s0; For these reasons precompiled headers support works like this:&] +[s0; &] +[s0;i150;O2; Precompiled headers are activated only in release mode +without blitz.&] +[s0;i150;O2; You have to set `"Precompile header`" flag on header +files candidates for precompilation. Only single candidate per +package is allowed. Note that not all headers can be with this +system. Header has to have include guards and it must be possible +for all files in the package to include it first before all other +headers.&] +[s0;i150;O2; Build method has to have `"Allow precompiled headers`" +set.&] +[s0;i150;O2; When package is build, it first checks whether using +precompiled header is possible (as per rules above). Then it +checks how many files are to be rebuild. If there are 3 or more +files to build, U`+`+ precompiles the header and uses it to build +the package. When the package is built, U`+`+ deletes the header +to conserve the space.&] +[s0; &] +[s0; U`+`+ supports precompiled headers for MSC, GCC and CLANG. However, +practical benchmarks show that with CLANG using precompiled headers +actually leads to worse compilation times.&] [s0; ]] \ No newline at end of file diff --git a/uppsrc/ide/app.tpp/ConfiguringPackagesAssemblies$en-us.tpp b/uppsrc/ide/app.tpp/ConfiguringPackagesAssemblies_en-us.tpp similarity index 99% rename from uppsrc/ide/app.tpp/ConfiguringPackagesAssemblies$en-us.tpp rename to uppsrc/ide/app.tpp/ConfiguringPackagesAssemblies_en-us.tpp index d4ca15303..34295aa6a 100644 --- a/uppsrc/ide/app.tpp/ConfiguringPackagesAssemblies$en-us.tpp +++ b/uppsrc/ide/app.tpp/ConfiguringPackagesAssemblies_en-us.tpp @@ -1,372 +1,372 @@ -topic "Configuring Packages and Assemblies"; -[ $$0,0#00000000000000000000000000000000:Default] -[=b133;*R5 $$1,2#50732784410233463530219518343157:Heading1] -[a17;*@(170.42.0) $$2,3#48345324464242285505540720043115:Heading2] -[2 $$3,3#42410412485283044863419059360682:Body1] -[a83;*R6 $$4,5#31310162474203024125188417583966:caption] -[b42;a42;ph2 $$5,5#45413000475342174754091244180557:text] -[b83;*4 $$6,5#07864147445237544204411237157677:title] -[l321;C@5;1 $$7,7#20902679421464641399138805415013:code] -[{_}%EN-US -[s4; Configuring Packages `& Assemblies&] -[s6; Opening a package&] -[s5; To open a package, the [/ Set`-main`-package] option on the File -menu in TheIDE is used. The `"Select main package`" dialog will -appear.&] -[s0; &] -[s0;= -@@image:2272&1326 -(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) -&] -[s3; &] -[s5; First, select an assembly in the left hand pane, then select -one of the assembly`'s packages in the right hand pane. Click -OK and the selected package will be opened in TheIDE with the -package name shown in TheIDE application window title bar. The -package that has been opened is referred to as the [* main package] -and appears first in the list of packages shown at the left`-hand`-side -of TheIDE.&] -[s5; In the select`-main`-package dialog, if the `"all packages`" -checkbox is unchecked, then the right hand pane will show only -packages that have [* main configuration]. `"Main configuration`" -refers to the settings that determine how a package is built. - Packages that have no [* main configuration] can`'t be built by -themselves but they can be used by other packages and they can -be opened in TheIDE.&] -[s5; The build configurations for the [* main package ]can be assigned -using the [/ Main`-package`-configuration] option on the Project -menu. Predefined build configuration options are target type -(executable or dll), application style (GUI or non`-GUI) and -thread model (single`-threaded or multi`-threaded). These options -determine the switches supplied to the compiler and linker and -the choice of libs to be linked with when the package is built. - These configuration options are referred to as [* main configuration] -and are stored in the [* mainconfig] section of the package definition -file (i.e. the file).&] -[s5; A package that has no [* main configuration] (no mainconfig section -in the .upp file) cannot be built because there is no information -that says what target type or style it is etc. If the `"all -packages`" checkbox in the select`-main`-package dialog is unchecked, -only packages which have [* main configuration] will be shown. - When a package is first created it will have no main configuration -unless one of the package template options was used (see `"creating -a package`" below).&] -[s5; For more detail on the organization of packages, assemblies -and nests, [^topic`:`/`/ide`/app`/PackagesAssembliesAndNests`$en`-us^ see -this].&] -[s6; Assembly setup &] -[s5; From the Select`-main`-package dialog shown above, the settings -for an assembly can be changed (or a new assembly created) by -right`-clicking on the assembly name and selecting `"edit assembly`" -(or `"new assembly`").&] -[s0; &] -[s0;= -@@image:2287&1089 -(A/IB7QAAABP/AAAAAHic7Z0JlBT1nccLCAy4L9lNSHwaRdfb4BEHDxQcRREwwCDXKMghqBxBhEiMu0k0WbLP5xqXfTHGeCSrsr54hCvGaNxEwRU5dDiHGweco3t6Lo6BmWFmOHp///431TV1/OtfR09V13y/7/Pmdf/rX/+juuvT/6np6U4m20UZsbHLyC2EMmwXY/juNKPLlHHlyr0xZWqC/+wyvVaZWqPcm1Am17Abk08zoQ7kIAdBjjGxGuQY+jOu/Tk4hhNnP0ckUjfiqRt0N1UyolIZGmPQDXY3wcqH1iq3liR1Gj8dLvMesxrzFpzs/ZPkt3/BuOjJ5GWLkvn/mcz/TXLAs4yC5xm3vmAJrwByC8EDCsJJ4M8Z4ALjg8ilqv60gkm4PSRnglzdY+4JEruSv1bndvJ51yk1pPSucxvyHj1FNVWxX/A0g9x+xa8ykOQ52kIAAABWkEU52rtcznz9zGWrQoXau1zIKtzSRN78k4Qy4agyMLNoV277XBldoYzb22VGHaHMOsAhw3eb19Rtfht5XvnhyW4LkgS/TT/VQn6DF/Z45BQt9XlNAED26DL3FMgt+KPGtcmdyekyp63rjNZusxu7zWjoMq1Jue+Icm/q56QjdDddMu1gmsn17CeVFNWmL91QCTG+Uhm8TSkoTV+BIauP2Kjc+2WGqQnl/hpueHI7hxneAraVhqQyowEAAIAND9Qzptd1mV7bdUoNwf5SOaGKURRPQ7rmjCtnjC4juhSWKsNL2V881T+AktL7FytnLWFW7/d/bCtZfdzeNBqxq25P8/0jGdTCWQdYHe1LCcg9agAAWYekfZruk6pm/rYuXn886SEzn/6y+6CNSsEGpnSSOfGt19I3bvucve/FwuoqOpOzEqrA3wwzVTNm/loDAABARV11pxbhM5+raSsvrXvmhzU/nZZ4pKhqTmF85p1EbPrtsQfuiN13C6dy8kBOxd3Xphl3TVnh5aVDzt8y7rpDu0tmPrVfyV/LNN73r8qlS5nVL37DzOoxU6urJtfIPJF6r2Oinc/V3x1ArqA+30CuwH8fB7lI6hGklXb9oscOvf6rw2/85uDLT9Yt+lHtU/MYC2fX/HxmzeP3E9U/vq/6x1MZP5qYWHB31bzRRHz292LTbi0r6rdl6EXvj7gmXtuatvqF/8t8/rUnlLOWsLsFG7oO0VudeZvbW3X79NpM4dT2v1AYX48AANkjcDUBF7Cr4hWpGxVk9Zqfzzj89gsNS18++N9P1z/7k7pnFhC1Tz5cs3B29c9mEMztP51OVP/LlOpHJ1bNH0vE54yMPTC4fGL/kuGX//Hab7EL6WT1K9cbrc4uuWsX6lNruMM5/Ho+v6SfueRietUl8GUncEHgjgJOCVxQwCnkcw1k4+pHJ5DPDy1edOD5n9f98pHaf59D1DzxYPW/Tk38cCJj/viqh8cQ8dkj4rOHsyszxLRbKycPKLv7upKRfZfecBazev9iZvV/Xg+rgwyBOwo4JXBHAacYrJ6YP7b+2R/XP/c4U/q/zTq2fWPzhtWJBRMTD4+Lzy4kYg8Ojd13G1E5aUDlxBuPrvozUVHUr6Io/8tx12wbdeWyAX3MrU6r91tL0h8LQM8W9UMAUmJfV9pGe60vPa59+w17B47pFZiOddFH21rK6060tJ1yXQEAADqIMXGd1avmFNY9Na/ulz+gJXrzxtX8bS1N61amfD6Mcd8g5vNJAyruvu7oynd4haMfragYe9WXY6/eVnja6jeUpK1+6VIZqzc0n6K9jhxp6TViQ9isrr6954wrFrurkFUWvXt03d5WOoDBP50AAIEjZ3VK49q/66xOS3R1q0erP7G8UW1q4Ys7wmv1s/7dXYUOGl7+kuCfUQCAYDFYPT5jaM3C2exa+s9mVP/L1KbPVmXEvvqD2PTBsSkFlRNuaPz43YzSP1xeMeqyitF9y8Zcua2w77KbzjWx+rc/ZNdkBpaw/0UaV866Tlmde5tffuH5bEMsb1JFt+l1qtjT/wkFq7sdHgDuGQNylsJKglu9+ifTqh+/n/18dFJi3vim9Ss1Yv9r5eQBjdpV+t+XVhReXDHiworCS8pGf2f7yO8sv+mcdlbn19WFVueXXypiDepFGNXqTyxt3JM4wftqOX5qT9XxN9c00+6Pv3WEbqfL21LlnzarT8XffdhUXpfeq+bwyY+2tWifqFRIW6mQdqTb1Dvdpl2oJm9t3d5WXX2eL/Yd4BW2lLWZVuBe5e1QZr98mFegG+pgjCeOx7noois31tTdpbnwG9QvjSR4jYBQEbiagGtOW71yys3Vj05k71p8bEpiwcSq+eOIxnUfqhI4XluVkfxHy2J3XURUjvznysILy++6ZMfwS1b0P9vc6lQyKPWpAuNT//Q0sZpfgVEvv/z6xfX8xsIXd6hWL68/qbNW7aG2vJHbVdFlyg+25Q3fRi2rmmq/13H1iWrcasyqTQ3i+keaThgrcKuTk/nd9/+29ytjy6jk3Q3H1JJeN7yrO3H8nQsfg+6uscR0Ui1tJx96oS54kwAAXCNn9fhDoxrX/K/OAI0rV8TGXCay+ne2tLsCo1p9TKprZnX2sWDrStkylZboZBtajSc1F2G6TalXu1v4H6uowqt/2LRkxfZe/d81L7/hXdWotK6mcqJkRzUvWVWc9pW6L+2ivpQkUy8r6t2W1hM9h2zQ1ed98RU7G2fJAV0FVaH8twCqmXfnFrqrLsXnPfY+L9HiZS663jmmQ9KV6DpVWy7ZfZC/EgEAchit1Sf2Tzw8pnrBPdU/nJh45J6qeWMZcwrjs4Ydr0uoKjheG4/fc2V83KXx0RcyCs+LF55fMeqCnd+7YMX1ZzKrX7/b3OqjK9iFcb5QT1mdX35h4uq/Ym/1SW74XoWbuNX51mRqldv97kplQl2Pu/bkFe5oVz66XCmq7THyi7zhu9SrH+TPXgWfsI+RLKrlJdRszyGb1bvcb7SL9m6PUfszd694Xbs7r0B9zX75aKbBwcW6CnyXdXvTa2w+Bn67tq6RKnxlbIzXUfEyF9PeTQt1JaJJDVqnGyEAIMc4vWKnk7pifL/490ckfjA+8cjd1T8oSswfS1TNLWxa+7dk+zR9vCJRdGli7AVE1ahzqwrPrRx57s6h5/7p2m+krc6X633/yqxOer9xN/vWJLZQr01/Wu+0gz9b1qIKrdewte+VpK9FLHxpV/cHDnab1kAVWtrScjvSdPLdza38w34ff7uppTVd3kDlG9PlSWHO6LdcW4f5ze6uTYlZg8Ts36clSQvv363UXH7p/77xe9+8zMW0d5lZ2E4qKwT+VAegk5D+Jjt2XptavWnd39VT/nhd5rp608plllYfsCe9XKe1eu9n2ln9tNKV+46sK9VfNuf5bEOs57Ra9snA0xrm/ndDyZ5DmU27mvk3Kj700uGS3Qd15QINtrSeSBksU0fmrkyJsQJRkbpaThNZvzv9ysUuvwzfZfrtkK7nYtW7izGbtgMAyD2KGlTojC6/64rYA3dUPTQq5fNxVfPGNK3/SD3fm9Z8kJhR0LQ68x6Y5pVLqsdfUD36nEThWbHhZ+26/cw/5/8jlSsDy5jVL9rJ1upk9fNLlIJSZvWi01a/j30BR0OzubXYRZjRJT1mNXab3kz0mHJ44eIqVWg9h21VJrGv8PjKPfX/9mpcW65ezSCFqteZM1z1B9qrnb7s7hpLHl+StjS/omK6C/HmuvTfC+hXDLUyDVitoMPdXKx6t52F7u7sV46pR17bDujsTDgKcpiU1ctGXFI5tSA+686quaOqHh7dpHn3S9PavyZm356YcXP1/Tc0r878vZLEXjP67OqRZ8aG9d596z+9c9UZVKgMKmdiv7qUWf1bv2ZWp7tDU5eUU0onnliRvt5SsqNalZX6Z7uFL+/uMaf1reKTb31+suuM1p8tz7wb5Iyr33hz/QmCXheeWNau/KOdJ1Xl/nzJMf7NTfQbAb/B0QrN9q62ZOF/rKK7exJp2bK/aQ78u+kunIbmzG8i7PJLqrIRL3PR9v7rF9erhS3HM/3S3S0VmZHopkkvGdpJscfi+j+bjtM77Bu1AAAdxgR2KfjLIedVTLghdv/t8Vnfa1ybufDStPaDxKzbGA8OrL7/eqL5kxXq1uYP36wZ/vWqO766a+A/vHNFjyT7ltJqZWBFxuq0aGdWT13tSSmdCWqfRo+jtnd76HiPuSfe3pAuZBdhZhypzSwqk2o5eammwbxcmdZae1j/RkEmq/0ttImj9ZvtXW2JNhWxBvbH1nGVVEEdDHlV7YVYV3pKK8+80V9qt6p4mQuhCpnH2LUuumlqQ78j0Dh7DttiOk4AQA4wWcO9bP2mtXrLnvR3STet/VvV7CE6q9dOvar546VpG6x7X291EjgXe7//y1h9RIJdfkkpvdv05oZjGeP1mlJFSifm/jGtI3YRpmjPHzeeqj3UppZ8vPpLklLPUXve/Pxk7cFWfXnhzi4PthLvr6mj9a1qqi/2HXj1D5t6Dt/Ct2r9ZnuXl9AKVv0lglrm3fW6/VNe4fuvn+CDofIek+p4IaH+MsLfmth92lF1kxYvc+HsjbW7fsILSf5UXx2w1TTVxqlldqnnu29ajRN0QpRpJ0CuwfWevkGn9v5BZ5WPubpy8gASe9W80a0VXzSu+aBqxuCqGbdVPVhAJO6/sXpaP6Jmct/aiRc3r3y7bf/2ugkX1tz5tfigXrtu6P6ny7oyqw87xKx+Yy37X6T0FZgKZUQdu5Kfsnrq267bzhjwF37hpeec5h6PnCLyFpzsOf9Y+oLMze9RSa/piTNuX5UuGfBez6L9XeecIvImJXoNMinn9JxQmdma/3av4ZvyptarW9ULPjJ3eQn9NkHwcmpZ1133mcd4d7pyLkz2y8jwTdpyHV7mwqFCdfdMIQ04/211wNp5aSWvNk6N0EQE4wSdDWXGSZDDTGPrun03f7NsxCXl4/MrJ90Um1oQuy/F1IHxqTfFp/Ynqqb0S0y6kqi+55Ka8efXjD6bMfzr1Xf8Q6yg+85ru664tEva6rRcJ6vnr2VW//Zm1ep8oc6tzq66zG/Lm39SVXreo6e08PJuC5Jp5mUI/Akv5vtvJlfuyZiTvB34kLRorR74YAAA/qKKnc7x3f2/9sXgc/eNvHz/2O9+WXRt2T3XMYryy+7OL7/7aqKiqG9s3CWM0efHR54dv7M3Y/BXY7fkld3Ydet3lT9epDCrjzzKxE5W51dg2ludi51ZfXZbj7knyOqMBSeNVheLPbRoQwt1MmfgQ7IaYUeOLfCnOgCdB271+IETG793+YYbe2+45ZzNd1ywedglm4ddyhh68ZZhF20degFRMuS8HUPOYdx+5s5BvXcUfI3YeVOvHdd/Zes1XT7pqyy5+Xy91Xs/o7W6MumIulznK/Yec1r1bl+QXr1bKT3wIyaGX+Iu2VHN35QYtoV6V6zVAYg06lp95u8aD+7c8t4dl79xxVeXXvP1JfnfeLvfNxnXfGNpv97LUizP/6d3rvkq8eerz/jLVT3f6duDcXm3v1zWZfnFytKbz6/dvnnmrw+bWb1MtTr/2W0a+yej1KK9Me12TurPpkS3h44b4WPm6/www65U3/SXXoVbezzYGPhgLEeYosN6DP4yIwCdhNN/Oe0+/djMlwxvJXSSeP2Jmb863H1UQ+a6us7qhakvQ0x//Wjmn0zZv5FymOFV2rrM0UMDPv3XeZBzBP72AOCUwJ8zwCGTW9kDRz8ntvC3rCv3NCsTjjHoRlGjMqYx/ZPfUBlDq/FD7CffSitzvjjXobM6E3sZ+07qwZu73LGl6xAG+3akFF0KSznsy5JI/urXeRi+X5V/FhkAIOsMLQM5Bjl2hMUDN7iUfcQiUXCaW/am7w46DS+hnwP2MG7cnf74F7pBP8nhplYfvJlZPSV21e2m8AoMtb5mR5Bz8Ice5BBdQA6SxacE/8SA1Htg8q7be+acgz2L9tXX7AYAAJCjKAP3Khe8rfT+T1gdAAAiAKwOAABRAlYHAIAoAasDAECUgNUBACBKqFbvBasDAEDuw97c3uc1WB0AAKJB9qyuKErgswMAgM6G2OpK+zhrOcRWD/PYAADAC7ZWF9y1aTnE5gzz2AAAwAvurG66gNcV6jZJ7iiuqWvQdgy6QqtxGnuB9gEAOYr3tbrR4brKVoY03VFQqCsxvmrYNmUckulWwZgBACDkqFbvmb/H3XV1sdUFevRodXdN6XaHvQEAEcPW6uZ7GWxvu5yW3FF3VcTqBcXRXsZGdLcFr1kAAJBbuLC65JJYcAFEsKPtCt/RGKz2kpkXAADkIh6tLl6rW92w2lG8gBeUSL5A2A5JPHEAAAg/Hq/A1Lc3pNWlFdOLIZKF8r8vWO1l2o62R9OtgT80AADgArHVAxgPdAoAAB5QrZ6Xv9v2PTBWK2c/xwOrAwCAB5jVz7O0egeNoaNeMgAAIPKEweoAAAD8AlYHAIAoAasDAECUEFt93tPLAQAAhAqPVk8iCIIgoQmsjiAIErYU7z384nsVTqG9krA6giBI+MIV7RTaKwmrIwiChC/k5893H3QKrI4gCBLOkJ8/23XAKYFYXVGU7ByDjk4HTCQyx0oXwbyiOmUEcRry8/qd9U7JhtW1/9pvOlRduWlNwe5W7fgepxOxLXc3Br+aSrafkXFepn1pC612dzFI7b7eW0OQSIb8vG5HnQ46QYyFWpxavaed1WVEkTRzhbFCsFZ3MRHbyr6MJBtNWUleV+j7SKwOMsSOIMmU1ddur9HBz0pjuYqs1W8pVfostrW6+GS08oPxBNeWuNjLuPAzFZRgsepuIlkamKA73YGybV9+XpKTtR2GtsS2KdNxepyyuJpghAgSeMjPa7ZV61Cfq8ZNnIhZ3bSCTF+62+4mkqWByShOvn2BwcSmtaog7tGqNe9Wd31IZcaJIGEI+Xl1SUKH9hQ2biU60uq6GE9h3WloVW512+r0ty0UjM3RRLI3MO9N2Rpbpo5iiOsebV9T/JqyfEcIErYwq2+t0pFRumETJ3tWt1oQaiuY3ugAq9sOz91Esjew8FjdWMG2R8ELgbaCVb/epyzoWjApBAk85OdPtsR08CezsVwl22t18SnjSNemprU9W21PYRndSU4kqwNzarOQWN325UlwYH2fsvyRQZAwhPz88eZKHfSMNRZq8dfqSeEpI3OWOb1t1Y58oWQvLgbg48CsKvjrvWxb3fhK5+JF3/shhdWRXAmz+ibHOLW60/eru5Ohsb5kO8Z+BYPRlRhb9j4RvwambVxbwUv7VoWCFoyjEkxfMGCrkcu34G7KumbFxwRBAg/5edXGcqdIv199n3KerNUdRfI8kqlmWsfReerlpBbs631g4l38aj+E6YRTRhA15OeVG8qckhNW92J++TPdoxNg9WykE04ZQdSwKzDFe50SuNVl0jFWz16yPbDQTjx76YRTRjph2Htginc4JSesjiAI0glDfv60eLNTYHUEQZBwJsvfhZS2uu07GxEEQZDAI/WZjX1En9kIAAAgVHixOgAAgNwCVgcAgCgBqwMAQJSA1QEAIErA6gAAECU0Vt8DqwMAQK6j+TZqWB0AAHIeWB0AAKIErA4AAFECVgcAgCgBqwMAQJRQrZ7XLzpWVxQl8DEEPsicOAgAAN9JfWajjdW1X/5o36ArmfirINPWxF10vAPVHrM0MMn2O/ihyfVhABB+bK2uO5tsT67QWr0jB+Bjj96t3vEHM8DDBQAQW12w6DW1ve674LUlpg0a9zL2ZdqCsb6xa8GwjW2ajtm0U0GJ1XjEg7QahszABIfLOFTTAYuH7fTI6JqyeggcjUHQLwDAiL9Wrzc4yuleoqEanGDbrOTugpGY7lVvpibb8Tiau+TABCVW4hVPU2Ykks2ajtDpGOSnDwDgZNXqLvYSDdW5MLM07HprfYXZ6raV3Vld5jjLTMH7MwQAUB96qyvt47RZd8O27VRXYmp1yZELupYZmGDWtlaXmabTB1RQbvswuXuGAAB0qFY3/cxGj3p0sZeg9w6zuu1IdCWmVpecjseBeW9fvhBWByAn0PwXkvkn8cqcZVZrS+OOtntZdW21nhQ3K65pOlpH7rK67WLu7o6n7eGynbh4mi6OjFWhuzHITx8AwLG1en3739ZNy+vNlKKL5F5WXddLnPVW5tfWFMhBu7tu2E6tbnXQTAdpOwXBwGwPl9XEbUfo+shYFXocg+4ZYtUFAEDG6i5bxnnXWcFDD0CAiK2uWMe+ZZzanRI87gAEC9bqwF/wuAMQLJH8dC8AAOi0wOoAABAlxFaf9/RyAAAAocKj1ZMIgiBIaAKrIwiChC3Few+/+F6FU2ivJKyOIAgSvnBFO4X2SsLqCIIg4Qv5+fPdB53i1Oqm71eH1REEQXwP+fmzXQecImv1W8jqi/2yuqIo2TkGHdpFIBHMK6pTRpBOG/Lz+p31TsmG1bWfGGA6VKflLuKv4oyfhGDbl7bQancXg9Tu670109EiCBKSkJ/X7ajTQWersVCL71aXMZ5Vue8qznZTVpLXFfo+EquD7LojWB1BQhjy89rtNTq4XozlKv5aXSwHseiMvlJLjCtSU3MKXGqqQfn25eclOVnbYWhLbJuyGqftel7XNdyOIKEK+XnNtmod6tlq3MQJudWtJC/ey7Y7cVOCVxZT9Xm3umtvC7ZaTVm+WQRBgg35eXVJQofWRcathHOri97Z6EgOVgqyXVjaFvrYlK2xZeoohrju0fY1xcWUrTpFECTYMKtvrdKRUbphEyd7Vrda2WoriG879ZKxu/BY3VjBtkfBC4G2glW/sDqC5HrIz59siengJ76xXCXba3WxLuQNlpS2rkeBh8Tqtvq1fbmE1REk10N+/nhzpQ46W42FWvy1elJoPCsDS5ZLFspU8Ff12ba68ZVO5rXSRbMIgoQqzOqbHOO71ZMWC++kK6ubLuCtGteV6DrVVvDSvlWhoAUrZ5puFQzYauS2LVgdKGO56TgRBAkk5OdVG8udkg2rO4rAJKabXJhHLFXv7Ycw0ZgFgnTykJ9XbihzCqzuvf0QJhqzQJBOHnYFpnivUwK3uiDZtm6ErY4gSATC3gNTvMMpYbY6giBIZw75+dPizU6B1REEQcKZ7H4XEqyOIAiSO/FudQAAAKHCi9UBAADkFrA6AABECVgdAACiBKwOAABRAlYHAIAoAasDAECUgNUBACBKwOoAABAlYHUAAIgSsDoAAEQJWB0AAKJEZKyufr+btiTwUQEAQAcjY3Xtt2QGPmDzWZjJPJDRhvYQAQA6CbZW12kqnNYyHRWsDgDohIitLnCU6QKe39YWuqiga1a7i5W9tVuNa3WroQoaNB2kzFBNBw8AAB2GO6tbLeCtdC1ZwbRZ09cFwXgk2xQ0KO5R0KygHAAAOgbfrW5aR7KCI39aFTq1uvzsZEYFjQMAgqUzWF0XdatuTW47O5lRweoAgGDpDFa3OQJmV2Bs78LqAIBw4u49MLlrdcnr6r4cAavRAgBA9nD9fnWrQvFtmQrGSyW6wZiOUNCXePzi1pweAbVcMFoAAMgekfnfUgAAAPXM6vuUPqLr6qYJfNgAAABMEVsdAABAbgGrAwBAlIDVAQAgSsDqAAAQJcRWn/f0cgAAAKHCxuoFonc20u5JBEEQJDSB1REEQcKW4r2HX3yvwim0VxJWRxAECV+4op1CeyVhdQRBkPCF/Pz57oNOgdURBEHCGfLzZ7sOOCUQqyuKkp1j0KFdBBLBvKI6ZQTptCE/r99Z7xSnVs+TsLr2o2BMh+q03EX8VZzxI25s+9IWWu3uYpDafb23hiBImEN+XrejTged6cZCLb5bXcZ4VuW+qzjbTVlJXlfo+0isDjLEjiBRCvl57fYaHVwvxnIVf60utopYdEZfqSXGFampOQUuNdWgfPvy85KcrO0wtCW2TVmN03Q9b9WmsZqjCpIPE4Ig8iE/r9lWrUM9rYybOCG3utgtVnvZdiduyqrQylFi01pVEPdo1Zr8VttxmiraaGbbCvLHFkEQRyE/ry5J6NC6yLiV6Eir62J11lsZTOwQcReum7I1tkwdxRDXPTpytYuajl4fPR5GBEHEYVbfWqUjo3TDJk72rG61stVWEN92pAvT7sJjdWMF2x4FLwTaClb9wuoIkushP3+yJaaDn/jGcpVsr9XFp7O8wZLSuvAo8JBY3dbAti+XsDqC5HrIzx9vrtRBZ5OxUIu01fcpfV7z+B4YK89IlksWylTwV/XZtrrxlU7mtRJWR5BcD7P6Jsf4bvWkxcI76crqpgt4q8Z1JbpOtRW8tG9VKGjBymliAZq2YDpy2xYEJboBmN6WqWDsyHRICILIh/y8amO5U7JhdUcRnO+mm1z4QSxV7+2HMNGYBYJ08pCfV24ocwqs7r39ECYas0CQTh52BaZ4r1MCt7og2bZuhK2OIEgEwt4DU7zDKWG2OoIgSGcO+fnT4s1OgdURBEHCmSx/F9I+5TxYHUEQJDfi3eoAAABChRerAwAAyC1gdQAAiBKwOgAARAlYHQAAooRySymsDgAAkQFWBwCAKAGrAwBAlIDVAQAgSsDqAAAQJWB1AACIErA6AABECeWWfYJvowYAAJBbwOoAABAlYHUAAIgSsDoAAEQJWB0AAKKEavWesLpPBP6J+hEj8Ac0h9i1ffXWjR9tWP9BZKDp0KRwKBwdCmb11PeWwup+MQ9fC+hfYHV56JQnps5/csCYBWddNz0CFIx/7MEfLUrE9xxrPoxDIX8oYHXfgdV9DKwuD63lyGPEy699uHTFxpUr9+c0y/606ff/s4pURhxvO+buUKz+bGt5rDroZ7HXVMRr1hRvlz8UsLrvwOo+BlaXh35Jp6UpKf2VVzZFg18+/d4vnnqNlqn0THBxKEjpQT9//cyzz/9G8lDA6r4Dq/sYWF0eUhn9qk6rdPJh0I+bPyGrP7PoDZpU0rnVaS9apZ+MUF555beShwJW9x1Y3cfA6vJwla1cuZ+sHrSB/AlZ/fnnlrq2Ou114vjxyLD0rZdg9aCA1X0MrC6P1urHIxHvVm9ra40MLqyel7+7462uKIqj8pxAtbqSik5TpoXGOv77MTcDq8ujtXpba2sE8G711paWyODA6gWlp/8LSWT1LGkWVjcNrK4GVpdHa/WWlmMRwLvVjx1rjgyweoBorZ5sr2htibHcdi/tK4JpoWlJTgdWl0dr9ebmpgjg3erNTY3hhM5Qp7v4a3XuWJ1pVXsYS3SF6iZtNeNW0710Jaaj8j4Mq71M+7UlG1a3krx4Lz+0GnBgdXm0Vm9qPOov2hNEW6ir42+n3q3e2HjEKdqZuthdvhenu2Tb6mIDa+/K+Nx0L0GPxtZMKzgahuleVs2K0Vk9aVCuVbnVbZ2fjXtZFUYgsLo8WqsfPdLgI/S8Mr2rLdfV8QXvVj965LAjUrOwvOsjLlr20eoC61pVs6rp6LVAUE3co4/DcEeAVk/iCkwnRmv1Iw2H/IKeS1aF6ibTOt7xbnXvM1U3qdEdAW2hVU3Tak6PhgurW72zUeBD4wJYG9vd67NjdXfDMN3LHUarW902+lk3DOO+pnsZ75qW5GJgdXm0Vj986IBf0BPJqlD7Mxt4t7r3mQrmrq1vdSh0JepdFwfNodVF71e31Z1AvPUdbnXbBmWG4RF5qwtua0vkrS5uLRcDq8ujtfrBA3V+QU8kq0LuBB/70uHd6ocO1MlDc5GvpqtsWmhVTb4vLX5Z3ag7owZ91KntXoKxmQ7M4zAEvQswtbo2LqxuuoA3FiZxBaYTo7X6gboav6DnklWh9mc28G71A/U18rCJWG/SxljZtNC4o1pB0JcV2bZ6vcM3n1jd1s3Xdi/B2EwHpshZ3Wrwgt4FOPrfUhn9mtaJjLfFgdXl0Vq9rjbhF/RMsypUN5nW8Y53q9fXJuRhJ7tEOb8rUyjfpgw+XoEJHBdeDRZ5q0uaGVYHMmitXlMd9xF6spne1Zbr6viCd6vX1lQ5gmZhvKst5As/mZqCBk1r2uLjWt00HfZEzTml18PqvgZWl0dr9eqqSn/Rnv7aQl0dfzv1bvWaRMwp2pkaC/lt9ae2gtXuVg06HVhk1urRtjpiG1hdHq3Vq2LlEcC71RNVFZHBhdXz+oXR6rkIrO5jYHV5tFaPV34ZAbxbvSpWFhmcfGZjqdJnMazuI7C6j4HV5dFavWzfrgjg3eqBvzD5CKweICQi4COBP6C5gtbqX+zeHAG8Wz3wFyYfgdUB6Gxorb6jZF0E8G71wF+YfARWB6CzwVW27E/se5y3bFwVAcjqi/7rTddWr4jXBP7C5COvvvoirA5Ap4JUVjD+sd//D5NhZHjyl68PuuenLqxOh2JN8fbAX5h85LkXXpA8FKrVw/nORgCAJFs3fvTgjxYRv3jqtWcWvfH8c0tzGlqlk9Ln/PS3xPG2Y+4OxbPP/+aVV3679K2XchpapZPS5Q9FyN+vDgCQZNf21VWxPaQyWqbSr+oRgJam5LFjzYcJHAr5QwGrAxAZ6JSntVwg70HNUmg6TpWOQwGrAwBAlIDVAQAgSsDqAAAQJWB1AACIErA6AABECWb1PrA6AABEBFgdAACiBKwOAABRAlYHAIAoAasDAECUUK2unL2ZxP6NsXHu9ry7amVQ7mwAAAAQFkjpV61MW/3M5ewtjozFp2/4xWI5/Ouxj3/42J3MQfCxKdljtdgenx9omePgH34dhD7+zc7nUyyE3fnuEJ8I57Pd5+fV6+zGOb9jVv/mS+wnAACASPD/XhbaVw==) -&] -[s0; &] -[s5; Clicking on the arrow at the end of each edit box allows you -to browse to the folder whose path you want to add. The `"package -nests`" item may contain multiple paths and these are separated -with semicolons.&] -[s5; When a new assembly is created, the paths that are assigned -initially, are copied from whichever assembly was selected before -the new assembly was created.&] -[s6; Creating a package&] -[s5; To create a new package, select the assembly in the [/ Select`-main`-package] -dialog then click the [* New] button. The [/ Create`-new`-package] -dialog will appear.&] -[s3; &] -[s0;= -@@image:2690&2850 -(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) -&] -[s3; &] -[s5; The drop`-down list box labeled `"Create in`" allows you to -select one of the assembly`'s nests (folders) into which the -package should be created. The edit`-box labeled `"Package name`" -allows you to enter the name of the new package. If the package -is to be located in a sub`-folder of the nest folder, then the -package name should include the sub`-folder name(s). e.g. If -the path for the selected nest is C:/MyApps and you want a new -package named `"Web`" to be in the C:/MyApps/Project1/Client folder -then you enter `"Project1/Client/Web`" (without the quotes) in -the Package`-name edit box.&] -[s5; You can choose one of the template options according to the -type of package you are creating. When you select a template, -the right hand pane shows which files will be created and what -content they will have. If you select the `"empty`" template, -then the only file which will be automatically created is the -package definition file.&] -[s5; Click the Create button when you have entered all the necessary -information and the package will be created and opened in TheIDE.&] -[s5; The CtrlLib application with main window template&] -[s5; The [/ Create`-new`-package] example dialog box above shows the -[* CtrlLib application with main window] [* template] selected. -This is the template to select if you are creating a standard -GUI application. You need to enter a name for the C`+`+ class -that represents the main window&] -[s5; The drop`-down list labeled `"Layout`" gives the following choices:&] -[s5;l288;i150;O0; No layouts&] -[s5;l288;i150;O0; Generate layout file&] -[s5;l288;i150;O0; Main window has layout&] -[s5;l288;i150;O0; Main window has OK/cancel&] -[s5; If you want to create the visual interface for your package -at design time (i.e. using TheIDE) then you should select either -`"Generate layout file`" or `"Main window has layout`". If `"Main -window has layout`" is chosen, then at runtime when the application -is started, a visible window will appear. If the application -needs to start without a visible window (or does not always want -the same visible window), then you can choose `"Generate layout -file`".&] -[s6; Package build configurations&] -[s5; The left`-hand drop`-down list on TheIDE toolbar shows which -build configuration is currently selected. To change the build -configurations for the [* main package] use the [/ main`-package`-configuration -]option on the Project menu in TheIDE. Alternatively, click -within the text area of the drop`-down list that shows the currently -selected build configuration. The `"Main package configurations`" -dialog will appear.&] -[s3; &] -[s0;= -@@image:2668&934 -(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) -&] -[s3; &] -[s5; A package can have more than one build configuration. Each -line in this dialog corresponds to one particular build configuration. - To add a new line, use mouse right click and select `"append -row`". To edit an existing line, right click and select `"edit`". -In the right`-hand column (headed `"optional name`") you can -optionally enter a name for that particular build. This name -will appear in the left`-hand drop`-down list on TheIDE tool -bar. When a build command is initiated in TheIDE, the main package -is built according to the currently selected build configuration.as -shown in the drop`-down list. For example, a package can have -a DEBUG build and a non`-DEBUG build. If the DEBUG flags name -is not present in a particular build configuration, then a non`-debug -build occurs by default. Similarly, if the MT name is not present -then a single`-threaded application is built by default and if -the GUI flags name is not present, then a console type application -is built.&] -[s5; The names that appear in the Flags column are alpha`-numeric -strings separated by spaces. There are some predefined names -that can be used (e.g. GUI DEBUG WIN32 MT) however, you can enter -any names you desire (e.g. PRO`_VERSION) as shown above. TheIDE -build process will react to some of these names (such as GUI -and DEBUG) and these affect the switches etc that are used when -the compiler or linker are invoked.and also which libs are used. - Each of the Flag names also becomes a #define`'d MACRO name -that can be used in source files where each flag name is prefixed -with `"flag`" e.g. flagGUI, flagDEBUG, flagSTD`_VERSION. Hence -you can then test for these in source code with #ifdef or #if -defined(flagNAME)&] -[s5; All of the packages that are directly or indirectly used by -the main package are built with the same build configuration -as the main package, however it is possible to restrict a Flag -name to apply to the main package only by preceding it with a -dot (.) character. If a Flag name is preceded by a dot character -(e.g. .ENCRYPT) then that name is in effect only when the main -package source files are compiled, unless a dependent package -is explicitly configured as `"accepting`" a particular `"dotted`" -build Flag name. Flag names that are not preceded by a dot character -are in effect for both the main package and all of the packages -it uses.&] -[s5; The build configuration information is stored in the [* mainconfig] -section of the package definition file.&] -[s5; Flag names such as GUI and DEBUG can be detected in the [/ package`-organizer] -dialog box by entering them in the `"when`" column. This includes -all of the names that are present in the build configuration -flags names list, not just predefined names e.g. PRO`_VERSION. - By using these names in the package`-organizer dialog, the build -process can be customized for each build configuration.&] -[s6; Package build settings&] -[s5; From TheIDE project menu, select [/ package`-organizer.]&] -[s3; &] -[s0;= -@@image:2368&1775 -(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12FxlVBfuJwi31H1xBOHj7lo/46xxCUfjr79uo146h/c+4Jcjn29Ro2zTL8MtOAXxq1tb3DallhuhXGZ9ilJSxM43nDjrUBERCzVS2cNOwvn8I575fPUobvuGL369EjhTC5661MDy+WAwxtvixbOmb9sx4yMnJN+Ols488faL1HNvD4l8kY/RCMLZ861z0c8anG4d7K9eYeffu6ezcNCcUE+g8+5YLfIpNvu3C/fKiX5xSOPfvs7dx971qC4Sl+4+FH4tz+bOZYydFD8uHfCvOR//JeDTxw0n+G8d/IZuSh9vWJGsd6/+4etcr1Jrt/ymJpFXJAn8R43b428Nr61wu//6/OpW5J0K8TvJ75M+xTjiiLj7TfceCsQsbkGlz+H2EBl6rQviKekXR946dB5b9t36ckickYXn/v03l8cvPP20StPG73yg6OfnScc+/R7xi8/SThx6ZsmL37tU+tufmbXz/df9OqJj/z6yAeOe/BdR9/6hiNDWThCUTjvmWx/7t/0q1R7g/n722f+TBWOzJuj/vBZoXrx5ZgvvTDnuufnfOWFttc9L36Uisg57iNTr9GcdPOx5+8QHj/35vahj4v2HXnNC0Jx4bgPrJ99EeesrXMuf1xepSbKH4VzFrXUMPHjcadvbP84N7rkOZeMHX/yP6vZ1UfNCMQshvXOvbm93kUttSKjxy7cpWYRF8SP+rXxrW1vsMOWJN0K4zLtUwwn2MTG22+48VYgYkMNrnwesdGKp8tH3vfbe+a/bujCufsuee/wonnDl0256JSRRe8dWfRu4einThq75C3C8U+8buLCV06c+7K2Z/3m+If/zfC8ox94x5G3vP6IduGc/eT0YRxROHPvahfO725ThaMfwBF5c8y1z8y5djpmZvNmxunCuS6cdvGsvb5TDz0WrtsRfv770yv6yX3TUTH9YcslPrzUZ0sQEREbpCqch97967847RWPnP3GXef//u6F79jziXe2XTh3z8fnDn38bcK9C980fMHr2p77ypGzXzbykRe3Pe1Fw6fO2fOeI7f/fvCPrwmmC0dGjigc+SpVZ+HIyGkXztXPzL4ydd3z8cKxR07vHEp4Y/T0hyefcls5m1GrLcFCrPz+jojYV4rCGXn0uS0ffePm97x486kv3/bhV20783Xbznx92zNeO3jma7af8SrhvaefeP/pL2/7oZc88IEX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) -&] -[s3; &] -[s5; The package organizer allows the setting of a number of things -affecting the package build process. The `"When`" column allows -control of when the item in the right hand column is applied. - In the above example, the `-I compiler option is applied with -GCC compiler and /I is applied with the Microsoft (MSC71) compiler.&] -[s5;l288;i150;O0; Target file override. Allows specification of a -name for the final executable. The default name is the package -name.&] -[s5;l288;i150;O0; Additional libraries. Allows specification of -the path and name of object file libs and shared libraries that -will be supplied to the linker.&] -[s5;l288;i150;O0; Compiler options. These are text strings that -will be supplied on the command line to the compiler. These -will be added to the command line [/ after] (at the end of) the -compiler options generated by TheIDE. These options affect all -source files being compiled, not just those from the [* main package], -however you can use [* build flags] and the `"dotted`" mechanism -(see [/ Package`-build`-configurations] above) to restrict which -packages the options are applied to.&] -[s5;l288;i150;O0; Link options. These are text strings that will -be supplied on the command line to the linker. These will be -added to the command line [/ after] (at the end of) the linker -options generated by TheIDE.&] -[s5; You can also set additional compiler options for individual -source files. In the `"additional dependencies`" list you can -specify a list of files that a source file is dependent on. -This means TheIDE will check these additional files to determine -whether a source file should be rebuilt.&] -[s5; The `"accepts`" edit`-box allows selection of which `"dotted`" -build flags are accepted and applied by this package. When the -[* main package] is built, the [* build flags] of the main package -are passed to all of the packages that are `"used`" by the main -package, however, dotted flags are accepted by a `"used`" package -only if listed in the `"accepts`" edit`-box for the used package. - Build flags from the main package that are not `"dotted`" will -be applied to all used packages regardless of whether listed -in the `"accepts`" list of a particular package or not.&] -[s6; Adding Dependent Packages&] -[s5; If a package uses other packages, then they must be `"added`" -to the using package. For example, the HelloWorld package in -the `"examples`" assembly uses the CtrlLib package which you -can see in the example [/ package`-organizer] dialog in the previous -section. The CtrlLib package uses the CtrlCore and RichText packages. -The [/ package`-organizer] dialog allows you to add or remove dependent -packages and you can also select the order in which the used -packages are built. Use mouse right`-click in the `"uses`" pane -of the [/ package`-organizer] dialog to do this. Alternatively -you can use `"[/ add package]`" from the Project menu.&] -[s6; Custom Build Steps&] -[s5; Custom build steps allow you to specify how files with a particular -extension are `"built`". For example, you can specify the invocation -of a particular assembler for assembler files or the Microsoft -Intermediate Definition Language compiler (MIDL) for IDL files. -You can even invoke the C`+`+ compiler with a custom build step -if you wish. To bring up the Custom`-build`-steps dialog, select -Custom`-build`-steps on the Project menu.&] -[s3; &] -[s0;= -@@image:2250&1693 -(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) -&] -[s3; &] -[s5; In the example above, you can see that files with an extension -of idl have a custom build step which invokes midl to generate -a header file and a type library file. The output files generated -by the custom build step need to be listed in the Output`-files -section because TheIDE uses these to determine when they are -out of date with respect to the input file and do a rebuild.&] -[s5; If the extension is specified as `"pre`-link`", then the specified -command is executed prior to invocation of the linker. If the -extension is specified as `"post`-link`" then the command is -executed after linking. The uppsrc Ole/Ctrl/Calc package uses -`"post`-link`" to register an .ocx by executing&] -[s5; regsvr32 /s /c `$(OUTPUT)`\calc.ocx&] -[s5; The `"When`" column in the custom`-build`-steps dialog allows -the entry of build flags so that the custom build step can be -applied selectively e.g. for one particular compiler or to have -separate commands for debug and non`-debug builds.&] -[s6; Adding source files to a package&] -[s5; The source files that belong to a package must be added to the -package. TheIDE will attempt to build all of the files that -belong to the package, according to the file extension. In TheIDE -you can see the list of source files for a particular package -in the left`-hand pane of TheIDE and also in the [/ package`-organizer]. - You can add files to a package in either the [/ package`-organizer] -or the main IDE window by right clicking in the pane containing -the list of source files. The right click menu provides two -options for adding files, `"[/ Insert package directory file(s)]`" -and `"[/ Insert any file(s)]`". The [/ Insert`-any`-files] option -allows you to browse to any folder to select source files. The -[/ Insert`-package`-directory`-files] option goes immediately to -the folder associated with the package. Source files can be -in sub`-directories of the package directory or in any folder -at all, but it is recommended to keep them in the package folder -tree because this makes it easier to move or copy the package -and is easier to organize.&] -[s6; Building packages from an ESC macro&] -[s5; You can build a package from a macro. The `"brc`" reference -example (in the reference assembly) includes the following macro.&] -[ {{10000@(255.255.150) [s3; [* macro ]`"Ship`" Ctrl`+Shift`+W `{&] -[s3; -|ClearConsole();&] -[s3; -|cout(`"Building BRC...`");&] -[s3; -|[* if](!Build(`"`"))&] -[s3; -|-|cout(`"Error building BRC.`");&] -[s3; -|[* else ]`{&] -[s3; -|-|cout(`"Shipping BRC...`");&] -[s3; -|-|[* if](!BuildProject(`"BRC/ship`", `"`"))&] -[s3; -|-|-|cout(`"Error shipping BRC.`");&] -[s3; -|-|[* else ]`{&] -[s3; -|-|-|cout(`"Build finished successfully.`");&] -[s3; -|-|-|[* if](!Execute(`"CopyBRCExecutable.exe`"))&] -[s3; -|-|-|-|cout(`"Error copying BRC executable!`");&] -[s3; -|-|-|[* else]&] -[s3; -|-|-|-|cout(`"BRC executable copied to network`");&] -[s3; -|-|`}&] -[s3; -|`}&] -[s3; `}]}}&] -[s5; The above macro will appear on the Macro menu in TheIDE as an -option named `"Ship`". The Build command on the third line of -the macro builds the current main package using whichever build -configuration is currently selected in TheIDE. If a non empty -string [* maincfg ]is passed to the Build function, then [* maincfg] -determines the build flags and not the currently selected build -configuration. The BuildProject function on line 7 builds the -`"BRC/ship`" package from the current assembly using the currently -selected build configuration. The Execute function executes the -supplied command and returns only when the command has completed.&] -[s5; There is also a Launch function that allows you to launch any -application. The Launch function does not wait for the command -to be completed before returning. For example, on the Windows -platform this could be used to launch Windows Explorer to open -at your main package source file directory with a command such -as &] -[s5; Launch(`"C:/Windows/explorer.exe /n,/e,C:/MyApps/Project1`");&] -[s5; The ESC macros relating to project building are :&] -[s5;l288;i150;O0; [/ bool Build()] `- builds the current project with -currently selected main configuration flags, returns true on -success&] -[s5;l288;i150;O0; [/ bool Build(maincfg)] `- builds the current project -with given main configuration flags, returns true on success&] -[s5;l288;i150;O0; [/ bool BuildProject(mainwspc, maincfg)] `- builds -given main package with given main configuration flags, returns -true on success&] -[s5;l288;i150;O0; [/ bool Execute(commandline)] `- executes a given -application, returns true on success&] -[s5;l288;i150;O0; [/ void Launch(commandline)] `- launches a detached -application and continues running&] -[s5;l288;i150;O0; [/ void ClearConsole()] clears the IDE console&] -[s5;l288;i150;O0; [/ void cout(message)] `- outputs message to the -console.&] -[s6; Binary resource extensions&] -[s5; [*/ BINARY`_MASK(mydir, `"`*.`*`")]&] -[s5; adds all files matching a given mask to the binary resource -file. This behaves more or less like BINARY`_ARRAY, so an array -of byte `* named mydir is created with the appropriate number -of elements, and moreover two parallel arrays int mydir`_length`[`] -and char `*mydir`_files`[`]. &] -[s5; The mydir`_length array holds lengths of the individual file -data objects, the mydir`_files array contains pointers to zero`-terminated -strings containing the individual file names (files are sorted -in ascending order using StdLess; file paths are currently -not kept, just the file names with extensions).&] -[s5; [*/ BINARY`[`_ARRAY `| `_MASK`](mydir`[, index`], `[BZ2 -`| ZIP`])]&] -[s5; can be used to automatically ZIP or BZ2 the file`[s`] before -putting them into the binary resource file.&] -[s5; These extensions, among others, enable simple creation of application -shipping (redistribution or installation) applications; you can -e.g. make a simple macro which builds your current project and -then builds a specialized shipping project which BZips your project -executable (and possibly some additional files) into the binary -resource and links it with a simple application which unpacks -its contents in a specified directory.&] -[s5; Both features (BRC enhancements and the shipping technique using -macros) are demonstrated in a simple reference example called -BRC (reference/BRC). BRC is the application being shipped (it -also demonstrates the various kinds of BINARY objects), BRC/ship -is the shipping application. Note that in the current version, -during BuildProject, the other application (here the shipping -application) inherits Output mode settings (notably the output -directory). This shouldn`'t be a big problem but nevertheless +topic "Configuring Packages and Assemblies"; +[ $$0,0#00000000000000000000000000000000:Default] +[=b133;*R5 $$1,2#50732784410233463530219518343157:Heading1] +[a17;*@(170.42.0) $$2,3#48345324464242285505540720043115:Heading2] +[2 $$3,3#42410412485283044863419059360682:Body1] +[a83;*R6 $$4,5#31310162474203024125188417583966:caption] +[b42;a42;ph2 $$5,5#45413000475342174754091244180557:text] +[b83;*4 $$6,5#07864147445237544204411237157677:title] +[l321;C@5;1 $$7,7#20902679421464641399138805415013:code] +[{_}%EN-US +[s4; Configuring Packages `& Assemblies&] +[s6; Opening a package&] +[s5; To open a package, the [/ Set`-main`-package] option on the File +menu in TheIDE is used. The `"Select main package`" dialog will +appear.&] +[s0; &] +[s0;= +@@image:2272&1326 +(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) +&] +[s3; &] +[s5; First, select an assembly in the left hand pane, then select +one of the assembly`'s packages in the right hand pane. Click +OK and the selected package will be opened in TheIDE with the +package name shown in TheIDE application window title bar. The +package that has been opened is referred to as the [* main package] +and appears first in the list of packages shown at the left`-hand`-side +of TheIDE.&] +[s5; In the select`-main`-package dialog, if the `"all packages`" +checkbox is unchecked, then the right hand pane will show only +packages that have [* main configuration]. `"Main configuration`" +refers to the settings that determine how a package is built. + Packages that have no [* main configuration] can`'t be built by +themselves but they can be used by other packages and they can +be opened in TheIDE.&] +[s5; The build configurations for the [* main package ]can be assigned +using the [/ Main`-package`-configuration] option on the Project +menu. Predefined build configuration options are target type +(executable or dll), application style (GUI or non`-GUI) and +thread model (single`-threaded or multi`-threaded). These options +determine the switches supplied to the compiler and linker and +the choice of libs to be linked with when the package is built. + These configuration options are referred to as [* main configuration] +and are stored in the [* mainconfig] section of the package definition +file (i.e. the file).&] +[s5; A package that has no [* main configuration] (no mainconfig section +in the .upp file) cannot be built because there is no information +that says what target type or style it is etc. If the `"all +packages`" checkbox in the select`-main`-package dialog is unchecked, +only packages which have [* main configuration] will be shown. + When a package is first created it will have no main configuration +unless one of the package template options was used (see `"creating +a package`" below).&] +[s5; For more detail on the organization of packages, assemblies +and nests, [^topic`:`/`/ide`/app`/PackagesAssembliesAndNests`$en`-us^ see +this].&] +[s6; Assembly setup &] +[s5; From the Select`-main`-package dialog shown above, the settings +for an assembly can be changed (or a new assembly created) by +right`-clicking on the assembly name and selecting `"edit assembly`" +(or `"new assembly`").&] +[s0; &] +[s0;= +@@image:2287&1089 +(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) +&] +[s0; &] +[s5; Clicking on the arrow at the end of each edit box allows you +to browse to the folder whose path you want to add. The `"package +nests`" item may contain multiple paths and these are separated +with semicolons.&] +[s5; When a new assembly is created, the paths that are assigned +initially, are copied from whichever assembly was selected before +the new assembly was created.&] +[s6; Creating a package&] +[s5; To create a new package, select the assembly in the [/ Select`-main`-package] +dialog then click the [* New] button. The [/ Create`-new`-package] +dialog will appear.&] +[s3; &] +[s0;= +@@image:2690&2850 +(A10DkAMAAHD8AAAAAHic7N0NnB1VYffxGygJ0I8+VaoPVoQigoigBBE1GHkNICExEAJEILwoEAIEeREUIy9aa62mj9r20Ur7VD+tpSpKNYpSCaAowYISQSCJIWQ3u9lsNkBe9o3Xec7sbCazc17mzNyZuefc/X0//08+d8+dOXPubLL3n7l7dxszv96Y+fUgCBojNxrTfzvhlOUijROfDHPyitHMWtuY3dH4cFdjXk/054QLNjbm9TY+3NM4pze8cc72nNVHCNHnWUKIOnM3EELUST+PjH1mOTVKd/jn9J6RG90jN8SHIyPT1zVO6AojboQf9oTjJ2xsHPXopt4VyTS218KoDU68pH/S1S/vcUPwF58Js9/ngrcuDiZ/KZj8D8GUr4SZ+o9hjvqaNtEGhBBlDP92CBnnafk/T0JcjvzvJWpl8Z+6hC1ubES7ExFlb+LlL4lm2Jj8QKoWikK407m9ohPudPmWSde+IraMm+G+XwgjyuHbv7wjoiVGSQ4SQgghhJDSI2pYlOSHUbuLruBFbS2OGEx+GDW6OFHNE5l05csijbO2NY58dEctPOZ/GrM6G7NXTbioT6RxyTNRREXceeHAzle+IIpi45qXd746EIluiz/jwehGNDjxqlcmXT26JSGEEGKfCZe/QghRJvoHEvWuqHRFmbDghZ0uen7n+f07X7RlwvkDjfO2Nj488ufZW8WHoyPnPzuaczaFf4qRORtHX30WIyKnr2sc91hj6uodtXD6bxsffnpH5vU0LuyNKqIoh1HCiqhJeK9YUpyLthBCCCGEkKrykU1hLuibcMHGnc7tFQnf7nHW+jBzukcj+l6U2R1hZq0VmTBjdePk1eHbRuJ3kYhO+J6HGnt+L6yFh/0ivFfUwtmrRpNohnE5HM2lW3ckHrzkmXCbZBclhGjTSwghhOSOaH2pRA1Qan3bi9/2+hcn6oGiBIoc9Whj6sOjEZ1QtEGR131z9MYx/xO++1hTC+OkqmA4IjaI3pI8L7HmqKwSQgghhHiVXeZ2X/yPG7s3vRg0Qcwg5ilzwr/v3eWMzrABzune5cwu8WGzE35+zS5TRgrh5AfCHnjQTxsH3B7Wwrf8h6oWdilrYVwFE22wZ+RH1vSMKYTx1UtCSCrxJX1CSCrRFQ9CWpqL/37D6u6Xr/nG8PlfGprzV4Mzbhw86YYBkWOvGzj+EwMfuGY0R141mndd3h/l0AX9B360f59znzv8krWP/nGrmKeSCU9fJzrhCx2r+754Te+nzu+5as76BTO6Lz5JpOuCY7s+cnzXeR+Isu6cI6N0nvGu0cw+dO2MA1dP22f57MOfW/GoaIZhJ4xq4ZvvCgvhqz/d2PN74YdTH95pWroWhsUvqn9xObxg447BeWMvacZNu+VfWAghhPiYVvcBQkSCILjun4e/fMfz//Cj5z932/DH/3l44dfCzP/q0MVfHrrw78Kc96WheV8MM/dvBs/43OCsz4T54KKBoz4+cNhlW/c7Z92h5/y6e9OL5U8YvkE4nHDT4uue+7cvb/6Pf3j2G5/rW/zxjZ9fGOaW+b03Xdy76EKRDZ88b8Mn54X5+Nyeq89Yv3CWSPf8D3adf9TaOYctP2G/O6cf2r3x+dGrhQc/KNfC8OXm5KXCeb1RCYwSfU9j9G2NO141Vr5w3PKrMYS4nJY/8xLibFrdBwhpjJSui7489LUfP/+Nn77whe8+f8M3h6/+Rpgr/lEUueGL/s+QiChyFywOc+7fDs39/OBpnw1zyo2Dx10/8J6FWw88b93rTrhLzFP+hKIWzuoUN3pvumjzd7625fZvPPsvX9j0lRv6vni1yMbPXdF7y/wNN14kEpbDT10gsuH6czdcO3f9laeJdC84pesjx3XMfc+jJx/43Xe9LpxQ1EIRUQv/8kFqISEtSMufeQlxNq3uA4Q0RlrcWX89KPrb4u8/f9O/DV/1T8ML/j7MR/9uaJ7obH8d5vTPDJ56c5jpiwZOXhS+Fixy1McHplzdf/jlWw+6YN2eJ/08WQtLm3B7Ldxw7VmiED73rcXP/ONNfX971cbPLhDp/fRHN3xiXs81c8Ncefr6K04V6Z4/vXv+yeGLyyLnH7XunClrzzj80VMOuv2IPZuvhY0YtZCQYmn5My8hzqbVfYCQxkiLO+0zg5/81+FF3wor3CVfGT7/i0Micz83NPuWwRmfCnPC9QPHXBNmypX9710omluYwy7vn3xZ/6GXbjn4wq43nXJ3shaWNuH2Wthz5WmbvvLJTX+/KOyEN18y9IffDj58f8/Vc3uumN09f4ZI10dP6DrvGJF1Z09ZN/e92+79kUjnnMM650x+evahj808+PtT3qSthZMfCN+nHP3iY/EPM/41xyPN8OYRcR8Ucwjhj8cR5O8tTDz93farwY6+l6I3vPRufll82PpnZLI9Sx8bFp+d4RdeaflKCCGEEHciSsuMGwcXfm34YyOX9S780vDZfz0kcvrNQ6K/nXh9mKOvFv0tzOFX9B96Wf8hl4Y5+NKBQy4deMelWw/+SPdoi9NMaPlmYcWE22vh+gUz+j6/sO9vP7bxswsGf3t/tP3AsntGCuGJYc47OiyEZ0/pPOPwbff8MNpg29I7Ok875OnT3vHYjO218IhHw0S18IDbdbXw5rHiNqi4oamFy9e+ID/A368ZqvqzuXjJtmWrnt8ySNvJSPxJ2f3t32r5YgghhBBH4m8tFPof+HmqFm6790fxvVa18C/uDq8fHvlo+DMPZ3eED2GkFsaTiNv33Xdf3AOTf47+SG2pFsadcGNf/1e//uDue3524XV3itudXVt2Pfr+qj+bo21n8vda/lfL5ew4UXt+tuWLIYSQMKcS0vqIZ8YTPjkw/6thhbvo/wzP+8LQmZ8NM+vGwZM/OXjcxwdEpl41cMTCfpF3Xjbw9ksHDrwkzFsvHjho/sDBl2496MKuvU5ZGpYuzYSWtVA94Yx14kb3RSf03jI//H7CGy/acP28gd/cu6MZ3v+zrguO6zp36rqzjui/b8mOTnj3DzpnvrVz1kFrTz34sRkHff99e6VrYfQisqkWhvUv9QpylB2kWrh4ybZoAcPPvyQqx25HLJk4c5UYX/BPz3zl20/tNuWuSr+q0HZacqIW/edW8X+Blj8oQojfaXUfIKSxvcWd/6WhCxeH3wR49ueHTv9MmJmLBk/8xOAx1w6ITLlq4PCF/SKHXDZw4KUDb7kkzJsvHtj/koG3zd/6to90vXF6uhYmJxQjmROKbdQTbq+FG244f8OiC8M/rz27Z+HpAw/ek2iGP113zpT+5HXCn9/eOeMtndPf3Dlj/7Wz3vaHU972g/e9sVgtTLZBOTua4fZaGF8qvO/+p1MvUP7JaWujihivc8nDQ1sGXxE3Ovpeira59e6B5HckLn1sOPV1I9o+3kBsH98lN+34rsxpUwlr7Quv3ParQbGx8ljmOeO9RF+KRuZ/Y3M0Im5EI+KueF/dGiLxKV25/sV4wsyz0Rip6GIX8UDi3eMNUrVQPNL4WJkzi4cgNounFScherydvcPFzjYhhIRpdR8gpDHS4t5/df/czw+e+7dD534hfJvw7FsGRWbeOHjiDQPHfCLMlGsHDr86zMFXDrz18oH9FgyK/OWlg2+eP7D/pVv3v3D9G6aHJU03oRjJnFBso55wpBauO/f9G66dG/7wmevO7bl67vorZ4v0L7s7fuJ+ceP6+Hb/0u93fWg/kXWn/OW6GW/u+ND+j5+8/x3veUOgq4Vi5OiRX5x3evhLVW6WGK4Whq8jz90wmpFmGNeJW/7m3l2nPaz8ty/3t+/d8Yfdptyl/I7Ejc+9mNxXdJvUBt/5xRbdtFHnsZk2c4WRf7nruWgD85xxy3r08Q27zHoqOSIeqajHyRnCx37EEss1DL/w8mVf67M5G8tWPS/v3rlheOIpTzbG1sL4Aq9YrfgweqFfN7PYOC6ESas6+sOLw3afREIIIcTNBCXWQs2EQTW1sPuymf2/viv1/Nt/zx1dp75VWwvfuyIsgW9bPuZ7C+NaeGq4/uibCWNhLZS+qzD6c+dzN0UJ35K8vRkm+0bUiJTnfLQt9IVdIsp3fzF6Pe2PTz0TjYiWEo3c+1Bfcvfdpt4r7v3q1x8crTpdWyad/Fhq5njauI9lTqtc4Z3/vUrsIv6MFyxqlc2ccXeKWlZclsSW0WqjD6OX2uP1K9cgCnbyEI+ueDYqloazcevdA/H8//rt30WLvO/+p8Vm0ev48eQLr7szWmr0uUh+86dy5rj2izYr7hV/Rh9u3Tosti92tgkhhBBHIp6w3rOw/9RbBs/8XFjhxJ+n3TIoMkO0uE8NHvPJMEdeP3D4tWEOvnrwgCsH33xFmL0vG9xnweC+C7bte+H6139wTC1MTShGMicU2ygmjGvh3Pf0XHHqhqvP3HDN3J6rzly/8LQwC2Z0X3Lii3098VP8ixu7u888uHv2Ad2z3hxmxt7dM/bpnLnvEx/c9453vz6IauG7V6hr4azO8HLf3A2KWqh/J/L2WripcVZf1AyTxawxZ6MyyU6y2xE/iQbjF17Dwam/TG4pKseu0x6JRm69e6ij7+VgrN2m3J2aOT665bS6FYad7aTHkiNiwTZzLl87erVNVErxYdymwg2OXrbk4dFLeeEFurf/W+YadpnVMf8b25IzmM9GvMKwE7793yae8sdoe7G2iTPXJCcXbTCcc9sLI98I+pP46LqZx5yZk58cs87J3y92tgkhhBBHIp6wDrusf/qnB07/7OAZfzU057NDp31mUGTGzYMnfXrw2EVh3n/D4OGfCHPIdYMHXDO071Vh9rpycK8rBvda0L/XBetfe9K9QVgL1RMGIz/J0Dyh2EYx4fZXpTtPP6z70uk9Hzu956ozNnxsTs+Vp4msv3zGwAP/nXriHrjvjp45B/Sctq/I+pl7rZ+x17pT9nrihL3+612vDeJaGF0wPOinYS0U/VAMntA1cqlwo2h3uquFURGM2mD03uSdz9+SuGA40gzP6hve/tpjWMxGRuQkq8WfiC49dlBp98N+ILa59R71+3fiYxlGDNOaVyiP2My56Duj1+tEHbr8H8KLqFv7XxS3xY2Ff/3ImJfaj12Wew1ZZyN5e+KHVhsmj93yfx+P7zXMnLxaKLa87dfD8cO0PDPjPa3+ikcIIcSQwOla2CcSaGrhwLKfx0+4L/btePV24J7va2vh1NWNKStHLxgecHtjjy+OqYXiOeucTYrvLRz9hsIgunIYj4e1cCSNs7eGOetZkfgS079++3fRiJxkzZAHZdErrWKb3i1jXsGU5zGMGKa1WWFyxHLOjdsvnf2xI7zQ95uHu37zaDjPH596JhqPXrfdZXZ3gTWYz4a8r25yseCorIrFxCsxzLz4x+ofuBRuedgdlmeGEEIIcTPiCevtF/cf/4mBmTeFbXD2ZwdP/UyYGbcMnXTT4HEjmXrj4LsXhTnkhqEDrh/a99owb7xqaM+FQ3su6H/9eT3/68T7xDy6CcVI5oRiG8WEc7aIiBsdH3p710eOX3/ZzJFCOHv9wlMHHlwaP+EO/PpnPRdNHbh/xzuRB+/53obT990w6409M/bsOnnPJ499/Y8m/69wwiM7G0euDWvhfk+EVwtFLdzn0bArilo4Z7QWNs7bmv4BNSOdMKqFOzrhBYNxJpw/0PjwSM7eetuy0cuFnV1bJp7aOdoYz966+M7nRaLbY0rL9g3iy1ALr7sz/s7AHTnk26kdJ31ojTyPPGIzrRzzzJZzxqcicsvf3Hvzt3qSI+GbTd53l3IB8hrm/7/RK3jRdTnz2Yh73Ve//qB5crGqr37ryej2b/6wWT60fJ5///SYN5WIPhl9+6LYstjZJoSQMGdtI6TlEU9h+1+4beo1/Sd9amDmzYOzbhmcOZLpNw+eeNPgsSN5/02DR9w0JHLIoqEDPjn8l9cPibzhmqHXXzm0x6X9f3buht2PvzcIa6F6QjGSOaHYxjDh2un7r5s3tfuSk9ZfPnP9FbMGEu9BHnjgpz3zj+256P0bLjxi8P4dP7dQNMPeWW/YcMrru07cY8VRf/bDQ3YPJzxmQ+PojrAZvmN1WAtf99WwFooPw1q4MeqEUS2MXj7e/k7ksBMmR8JaOP+FnS56XiRZDqNsGRy9Svbo6v5Lv/W8GPm7n704/GLQ2ffSxLM2iA+TNSPea+kTL8c146bvDUWDy1a/HG+Q3FGUmSXLX5LniUdEHbKfVo5hZjFiP2f8xpOoy+3y4b64OI2+2WT22sw1iIolPlzZM7pj+O2I7/6R+WwkV/jlHw/IK0xuLFb14KrRpveVO/rMM3ds2lE4476325E/nzSnq/DZHlcZ/Q8UIYQQJyOewvY+d9sRC/uPvW7gg5/a8YQoe7docZ8e2v+G4b2vD/O/rxl+zRVDr7q4/0/n9kw8ZuTinmrCU24Ma+HJNw6ddOPgtJsGj7k5zJE3DYrZkhOKbQwTPj1t786zjui68NjuSz7Y/8CO144HHvhZzyXHhPnokRsufLfI4C93vJA3ePdtvSe/Zv3xr3ryyD/94dsnBlEtFDmyc0ct3O+JkVq4MXzBeqQTimcu6QfUBPH3GcYmXv6SaIZxOZzw0TCN88Ms+v5Lwy+k360Q9pmVz+129K/EBsmaEe0SZePmlxR7rRmON4irUUr4tg7VBpbTypFXmBqxnHN55+h6fvNw1+7vXiJGlq1OtLt33GazhiRRJkVL3PXE5Zlnw7xC+QFGDVbU14ln9RlmHk7/3JrQlsFAPNLCZ5sQQghxJEGJtVA1YVQLbSgmPOd5kWBsLRxe+Wi0/cAD/71+/rRULdw475DB+26PNhhedme6Fp74XNgAo2Z42C921MLpPeEryCOdcOcLBsNrgKLyXfaiSKoiTrry5Tg7Lwx2WvCKyIQFL4g0LnpZJOqHl31zUJTA6JvWgpEXlKPvUtv15OXi3vghh9fiPvp8Mnf+ui96b2wwUoH++NQz//rt30V7RensfT66K/xWvYe7xI2orkya/XS0waquMS+2Wk6birxCecRmzk/fMdqRwreWzHgiPaJfQPKI8VHEIcIXZ9952y7nb7M5G8kVRrt/9esP6j4F//zL+Dsh+w0zf/dX/Vv7FT+ZMPwsb3yh2NkmhJAJ4YWFlwhpecQz155zt71jfv+Uq/qPvd5UCw/79NBBi4bfcsPwm64P87prhl99+fBuH+nf5YyenY66NwhroWLCE24YmHbDoMhxnxo8ZtHg1E+Hee+nB8VsdhOGz85rjt6z49R3rDtnimiG6xfOer7zj/2//tn6i45bf9Ex6z86VaTnwvduOP8wkd5zDto49y2D93znhTV/6Dvrzb0nvbr76N2ePGKX/3rrTkFUC0VELXzvxvCHWo++iNzZmN4XfmPkSC1MdsKJl78k6t/Eq14RmXT1y5OufSXM1aMjIqIZiky4/BWRqCLG2eXiod1m/mH3KT8ZfZ1x2rJJZ/fE98avP6b2Etn1rHW7HX3v6AaTv7Pbyb+bNG9TcgMxVXTXrqetFBE3wsJ51rodG5w8+pP6xNHtp01FXqE8YjPnxI9sizYQN3QjyiSbW3wUcQhxYu3PxpgVjuw+6fzNuocjFh9vZphZfB7jT+vuiR9sKIhdip1tQgiJri0Q0tqI57I/P2Pb/hf2T76s/31X9U+9dmDqtYMiR3584H3XDbzn+jCHfWLw4E8Miex//dA+1w294eowr1k4/Kfzh3Y5v3+n2esnTB35MYOVTfjU+/987fT9O06fvO7s93XNm9p13kjmHdk9733d894jsv7cw3rOPlhkw5n7956+T++sN4Q5+TUbjv/Trqm7PPGune44YEI44SnbRi8Yilo4+YGwFv7FI3EtTF0qnHjlC4pOuD2jtfDqYDQLd6TlX1vaI8la2PLFJNPxbHDPyuDS20Y/0T9+bHSd0eXZli+PEEIIKRzxdPbqWc/sdfZzB35k8zvnb37XZVsOvzzM5Mu3Tr5i6zuuDHPQx7bu/7FtIvtcue0NV/TvsSDMqy7un3T+tp0+vLkxo7MxJfxtI6VPGNfCFe959R+P2+upUw5cc9o7n57zrrVnHh5mzuS1Z0zuOOMdIp1zDuqavX+YWft0n/KG7pP2CHPcq7o+MGnte3f6/Tsb392vMVoLo2YoamH0IvLYWhg1w+ibBqNLhWGuflmuheZmSJpPsha2fDFxOjQ/8mf016kceWfLV+h4Wv4VjxBCiCHdz7x04Lyn9/jQ02+c8/S+H+7c/5yOA85dK/KWczr2m9e570j2ntf5xvO6RV4/r3uPc9e/+uxukd3OWv8np6+fMLOzMe2xfWb+LK6F5U4oaqGY8LcfPPDh9+7x8Afe+Mjx+z5y4v6PnHhAmBPesvzE/X5/wr4ij07b+/Fpbwxz7OufOHqPx6e+WuSJ9+32+Lv/5PeHTvjlQY3vvX+fsBae2j+mFu7xxWQtbJy943sLo2uGExc8ny6HiVeQlZ2w5Z/QtomzVwvvfPDZzq4t0XcbBiPf+vibh7vCb3qc/B1eKSaEEOJ1Lv6XgeWrthx4xv2vOurO1xy/9LXTfv7n0+4See3xd+0x7e49Tlgq8mfT7nnVtPtEdp/2i12Pv3/iMfeJ7HzUfROOur9x5D37zLzrkRXPiHlKnzC6Wnjxrf3PPrH8J8cf+B9vf9Xth77me5Nf+53D/jzMoa+9/bA9vj+SH0z+sx8e+iqRH71j9x8fsusPD5oY5sCdf/zWCT94S+P29++z8Q+PXPzVzZpauDauhdGfoz+nOrxs2D9aDqNc/lKU6DsPU4kefnSlkZSS+Pv3Wr6SVHY9c+1ux/9698n/ObrCo5buNuvJiR/tb/nC3E/Lv22GEEKIIbtc/KLoXYZ3mmTqfuYlMYOYp/wJR97DsssFQxf/09bs3QwTbnpJdMJdZm4Z872FqVo4Y13j9HXhr0UOM/Jzrc8P34Sy80VbRhNWxDgvRO8+Tqax/W3ILX93OSEOp/XvsyPE1bT8nychruac58N/I+LPucPhTy88a1vjzMHGWUNhxI05/eF1v+jP6EacUzc3Tnku/DO6N/5mwlRStTBshmsbUx9uHPfIhOOX7zQtTOPkFVEmzFgdpTFrbdgeZ3WOZnbHjttRxL2EEEJIgZywlhCijihp0zX/Ro5b3Th6JFO35wOrRj88enuiEfHnlJVh3rti9FchixviT1EClbXwuEfCWjjSDONyqEy0QZh4+8SOhBBdon9lhBA5Ewgh+lT4ry/65XfRO5Hf8Mikw1e9fsGzu855alPvCkIIIYQQMn7SOGlL48hVjX2/09jjS9RCQgghhJBxG2ohIYQQQgjZRC0khBBCCCEjoRZWlIVf+AHxK6nP4O3/+U+EEEJImyUIAmphS2phMz9eEjVT1sIGAABtRDy7BdRCaiGyaGthEBBCCCEOplg/CaiFrQi10C/UQkIIIX4lera6/77/+umSfze8aizuFdtQC6mFsEctJIQQ4leiTiiyeuVvujqWK9uIGBf3RpttohZSC2HHqhZu2RKOLFrU8i8FhBBCiHiq+umSfxet757lm8wR24gtHayF0bc7jodQC/1iVQuXLw9Hbrut5V8KCCGEkOipqqtj+dJHNpojthFbVlQL5Xe1UAuphb6zqoWiEArLljUWLw5viJbY6q8JhBBCxm2ipyrx592/601m+rzrUyPxlhXVwsJNj1oIN1nVwvnzw5ElS0ZfTZ45s+VfEwghhIzbJGrhhjiiE0ZJDrakFiovIaYGU3dZ7mjeMjVh5hrkjZObmfeiFrar7FoYVcF4hFpICCGkpYnL3s9/2xMl7oRR4vGW1EJlQ9Ptq+tayh0Ng6kRZe3ULUB32/IxUgvbSXYtTH5j4bJl4e0lS1r+NYEQQsi4TVz2/vvh9SJxG0zdFqm6FmZeSTPXQkPLarIWZnY5ZS9VXkWkFo4r2bUw+sbClSt33BblsNVfEwghhIzbJGphd6IHdkdJjlRdCy3rYuYFPcsd40FzI9V1OeVembXQpv1SC9tGxi+/C7Z/Y2FHR3g7estJdJsQQghpReKyd9dDXSKiAUY34sQj9ddCm+t7ynH7C4OZ3SzXNcZcVwsLhFrol4xamPrGwpkzd9wmhBBCWpFELVxnTmtroflqobmeKXujueDZ18JcVwszHzK1sJ3wW04IIYT4lU3bf27hvb9bY07VP7dQNy5XuNTrsMoyZt7RMJtNLTRMZaiFmceiFrYZaiEhhBC/smn7bzlZ9vuV5jj7W06KpfmXdOsPtdAv1EJCCCF+ZZMbvxO5oUItpBZ6TVcLW70uAADUomcr0fd+uuTfxXOWLuLeuBNWUQvrSW2dk1qIgFoIAPBNsX5i3tHZWuh7qIV+oRYCAPzydH7UQmohbFALAQB+oRZ6FGqhXzJrYXQ7VRSVvTH+5geb41pumWvOAiqdHABQBWqhRxE1g/iVArVQVqBcVTFnAdRCAPALtZCQ2pKshXInVF6+S709P0hchdNtnDmtPGdFdOsEALiphlq4G7WQkJHEtdBQzOQGpRxJ1cvUDXnQcLs6upUAANxUVS2currxpm9SCwlJxny1MDluP2JugLr+Wf+LyNRCAHAftZCQ2lLi1UL5duagec4qUAsBwC/UQkJqS0uuFir/4VMLAQAyaiEhtSV5tTCQmpLyEqI8qLttM4Nhs9IZ1gkAcBO1kJDaYq6FAAC0FrXQo7T8p/CRvNHVQgAAHEQt9CgL+S0nXvG9Fjaa0+rlAwByoxZ6FGph/R5atfnrP+nMG7FX4H8tBACMN9RCj0ItrF/U8fJG7BVQCwEAvqEWehRqYf1EwfufFc/mDbUQAOAjaqFHoRbWTxS83zz5TN5QCwEAPqIWepRitZAe0gxR8B58YlPeWNZC3Y+psXzLhvLNHe58unnjCQB4x6lamHwbY/MlKtckpRyxJbUw872fcm0o1kPG51O8KHjLHu/LmyZroW4w1wYu8GKRAICYO7UwVcya72leNL0ma6HllaJUFaEW2hMF74E/9OaNTS1UdsL4EyF/ypQjyXHdZoHq81vPj5HRHR0A4CZHaqGuwkXjyeuHyiuK8mBqRLmX8kDJjVveA8210PxU25CuSiVv60YK7JVqJvKgcsQXouD9+rENyUyfd33mSGYtbIwVHasxtuClBg23k5T1T54/c55S6B4IAMBN7tfCVP3L3CvZDPPuZT5cy+NaLdS1xMxjeUQUvPsf7YkjGmAUw4hIsauFytvKAhnkqYX2c5bO6089AIxD7tdC+w9LqYU2q/KiFqboLhlljutuK+uHzaBfwlr4+/XJ7OiBY28n0+TVwkB/nuUNzOO55iwdtRAA/OJdLUxRjsu1ULlBO9XCzCs/LayFNstzlih4v1zelUrcBqPIG5R7tVC5MGohAKB03tVC+23kG5kL8LcW6kbkey17iLJzJqtdrlpouUIHiYJ33yPr5MSdUHmvzdXCQHN+lKfaMGIY1N1Wzlk6w9EBAG5ypBbqKpm5p8nbRE895lrYaJerhYHdpaHUiG4bm9u6eewHvSsGYS38nTphJ9TcVbgWAgDQQu7Uwk1jX+3VFTN5m+SgriUq92qDWhjkeUuCuYoUqIXycQ2LSY34QhS8e3/bkTf8lhMAgI+cqoWkQC3MxbKT2Gym3Kb9Oo8oePc8vDZv2qMWNprT6uUDAHJzpBbqnlla3sScSj21sJnq2H5lIHwR+aFVedMetRAAMN44UgtJPbXQBrUwKXwn8kOP5w21EADgI2qhR6mnFiJJFLxfPfRI3lALAQA+ohZ6FGph/R5atVl0vLwRewXUQgCAb6iFHoVa6BdqIQDALzXUwl0nr6QWllULiV+hFgIAPEItJKS2UAsBAC6jFhJSW6iFAACXUQsJqS3UQgCAy6iFhNQWaiEAwGXUQkJqC7UQAOAyaiEhtYVaCABwGbWQkNpCLQQAuMyRWtjyny9HSBWhFgIAPOJOLWz1mQBKRi0EAPjFtVrY8pf5CGk+ov4F1EIAgG+ohYSUHmohAMBH1EJCSg+1EADgI2ohIaWHWggA8BG1MFxwo9HyIkHaKZa1MLqdKorN9MbGiOq2t5mt8JzyjobZUqcx84jy9m6uM++WAFAux2thQ6X0J3HznJRGkjfN1MIm5Z2trBYqP64C88sb2/coyw0cX6f5EHRFAFVzvBbumLPKbkYtJOXGphbKnVC+6BR/aLhCJY/Lu8szJGc2LMDAcFzlIuWVmBdvGNHtqFt8Zv1zZJ02W1p+dgCgGH9rYfLLeGqz5GDqdnJHeXJ5ztSI8qCEpJJZC5U9JCJ/mCwq8jaZu8u35eZjnjNF2Wp0uyjHdb2o8LS6ByKPuLxOyy11qwKA5nlaC3Uf2hRC5V6GI+o2oxkSXYpdLUyOKz+0aRR5d09VRGVTNcxfbNx+Y/u6ZXOXy+s07JhrbQDQjParhcpt4lqYuZfhXmohsUy5Vwvl2xXVQruvGeVcLbTc2HDFTPdha2th4XUaDiFPQicEUBF/a2GKvFmBWmieU3dQQlKp82qhZQ9Jdokma6H9OvMeq/S6ZT69Tq2z8CMCgBL5WwszN8tbC21KY8v7BvEiNlcLA1VnSEqOpG7LHyp3T44HY7uHcmPl7ga6BSg3sz903kHdA5fPsMvrbGjOpGEvAChde9TCRhlXC1Pby3Oa10BInGK1EOXi9AJAXp7Wwk3GdyLrbqf+3y1vmbxL2RKVuxOSCr/lBADgI19qYSmhy5F6Qi0EAPiIWkhI6aEWAgB8RC0kpPRQCwEAPhpXtZCQekItBAD4yKla+PCDPyOkPRJQCwEAvqmhFk6avMKyFv78p/9JSHskoBYCAHxTYS3cO3ctBNoDLyIDAHxELQRKRy0EAPiIWgiUjloIAPARtRAoHbUQAOAjamGEJ2uUiFoIAPCRj7WwiidW85w8lSMXaiEAwEd+1cLGiNSH8mBqy9Tt5I7yPPJUykMDBtRCAICPfKmFcivTfWhTCJV7ydPKz+CUQ9igFgIAfOR+LdQ1MUMtVG4T10LLvQxP35RDmFELAQA+cr8WRpRXC5Uv/lZaCymEsEEtBAD4yJdaGNHVv9Q2htuFayGFEPaohQAAH/lVCyN5C17evTI/BMyohQAAH/lYC2M2bx9O3Va+7pycTd4RyItaCADwkde1sADLJ2Weu9EMaiEAwEfUwmLbAAaWtVD35ibLb2TVXfQu4QEYDyGvMLmZ/BYw3YcNI+UG8qBuncp9mzkPmRuUe+YBoCWohcW2AQyarIW6wVwblEV3oIa+jibbms2gfJd5BuWqzCOWp0vX7qr7ukGfBOAUp2qheNIkpD0SZNVCZSdMXhNLDRouhZk3C1Tdw/4amqEmKZthZpEztDVdtctbAs376lgWYPvdDZ8g+S7LRQJApZyqhUB7yKyFul4X3yhwuUw5rps/cx7zBnXWQmV9tRyxr76GzYrVwgKPnXIIoOWohUDpil0t1BUJuUAG+q5iWU6Uc9pMqFt8rqPbbJ/rQLn2zdzR/t7MBRg+cYYTCwCtQi0EStfk1cIgqzzYj+ea0zyhTausqBYaVmVep3Jf5Wx5z3PmlubCr+uQlscCgIpQC4tp8hJEPWtAq5R7tVB5iNbWQpvD2Ry9tlpo85Atj67rb5a1UDkD/5YBOMLxWqi7KGEp7+WC1IEMu+v+y2++q1zFnuWD/E+XyMvmamGg6SHyX0XziGFQd1s5p1KxOZUzFBg0b2b52G0eZmry5IeZ2+iWZB43zAYALeR+LVTeLpf8RT7ziA3N07puzioUPgRPQ1UrXAvhjtq+4ACAOzytheb/m8u7GC4a6L5E664/JPfSXUxI/mm4GiCvSrmXbiq5vionNI+Yt8x8CFCyeREZ45DhCxEAuMDTWihvY+hL5q/AhntTlcl8UPkum8Xb7GXTBu0PEajOle7R5XoIiFELAQA+cr8WZv7/2qahGc6AZS1s8qD2tdB+qhpqYa6HgBi1EADgI/drofJDZV2U26PjtVB+FKXXQt2JsjkEtbAwaiEAwEc+1sLMupLrMlqraqH9QytcCzN3LHZcZKIWAgB85HstVF5nK/zqqnJ35Qzl1sKKrhYqDyGP5z0uMlELAQA+cr8Wyq+BJscD1SvLyc3keTIPpByXt9ctz3CX7qCZE+pOQubDVJ6oINESzfvKDxk2LGuh/HmRP8zF8JetlO1tZis8p+4fWjNzZh7RfPRmZubfCwAfOV4LxxvlUwnPL95pphY2Ke9sZbVQ5X9Y8s5vaMhV18LSD6GruCUeAgBKRy10CrWwPRT+5XfyBeF4M7nDKC+j6a6AGWY2LMDAplM1xrJ5UJlzKtepm9PwiJS1zXyg5IeZ58ryMQKAU6iFTqEWtgeb33Ji0+sCqdrJ29g3K+U8NnOmKOuQocJZzmBevHJQ2Qwzt7QcMZ863fKU6zF8TgHAKU7VQvGkSUh7JMh/tTA5rvxQVzOa2V2+FGZzEazJccuN89ZCeUvL7m0zg7xZZi3MezgAaDmnaiHQHjJroX1jqbMWWj66Uq4W2mzcfC1UHsVyVeYDZZ4uw9q4WgjAWdRCoHR1Xi20bJXJKtJkLbRfZ95jNfPYm2yqlkePP7QZsVwnALiDWgiUzuZqYaApG8lLiLrb8ofK3ZPjwdjqotxYubuBbgHKzewPnTln3scuD+pWaD+t/anQTQIADqIWFpP55b2Gr/88xTirWC1EDUo553ziALQrx2thk//Ltt/L8ppA6i7lBrU94zcSV1qK7VhgX9iweREZPuK6H4D25n4tVN4uV2pmm7qV2f1cvlrIM1rVqIUAAB95WgvN3wgk72L4P77uaVr+jqDk7pZXC80XFuRVKffSTSXXV+WE5hHzlpkPAUrUQgCAjzythfI2hr5kfiI23JuqTOaDynfZLN5mL5s2aH+IQHWudI8u10NAjFoIAPCR+7VQvoolbxNkNTTDGbCshU0e1L4W2k9VQy3M9RAQoxYCAHzkfi1Ufqisi3J7dLwWyo+i9FqoO1E2h6AWFkYtBAD4yMdamFlXcl1Ga1UttH9ohWth5o7FjotM1EIAgI98r4XK62yFX11V7q6codxaWNHVQuUh5PG8x0UmaiEAwEfu10L5NdDkeKB6ZTm5mTxP5oGU4/L2uuUZ7tIdNHNC3UnIfJjKExUkWqJ5X/khwwa1EADgI8dr4Xij7AwUCe9QCwEAPqIWOoVa2B6ohQAAH1ELnUItbA/UQgCAj5yqheJJk5D2SEAtBAD4xqlaCLQHaiEAwEfUQqB01EIAgI+ohUDpqIUAAB9RC2O1PV87VQxavpiWL6AK1EIAgI9qqIW7Nl0LM38udCnqr4V5j6j8WdalrKSUfQvP1n5NiVoIAPBRVbXwA6sbb/pWKbWwtt+14f7VwnJX2ORsmbXQ8LtdSl+Ma6iFAAAfOV4LDc+hul/WpvwlcboR3e+SM1+ctDy0YT2ZR8wcMW+pPK78KCzPm3ISebBBLdyOWggA8JGntVDZQJTtyzwSqNqRzQIsD53ZBu0PYf9YdMfVPa7M86acpNxaaBj3EbUQAOCjNquFmYO6zcyTGNgfus5amPkQDL2xyVrYUDGMm9fpKWohAMBHbV8LA81ru8rNAlV7UR5d7jy51mPYTHeIQNXlHKyF5uMWGPcRtRAA4KPxUAstNzOUtGKHLlwLM3csdlzdILWwdNRCAICPHK+FQdM1zLJKZd6rHKnoaqHyEPaPpZ5aaJ5Et0uBcR9RCwEAPnK/FgZjX1E1DBpqWOa+yu0NBSZVCBtjyfPoDmR4LKlDJMcz91WeB/lRWJ433QyB6twW0/wMTqEWAgB85EUtdJ/yud7xAuDU8pxaTPOohQAAH1ELS+FjLQycWaEjyygRtRAA4CNqYSk8rYWBA4ts+QKqQC0EAPjIqVoonjQJaY8E1EIAgG+cqoVAe6AWAgB8RC0ESkctBAD4iFoIlI5aCADwEbWwatSAcYhaCADwkRe10ObnKjurnjXnPYqPZ9Ij1EIAgI/cr4WWv7PDWW4u2M1VtQ1qIQDAR47XQptfu5b6JW66Xz9nP4lh2uQ8hpHUoM1ilEexfESWG8SDmacFTaIWAgB85GktbKguIer6mG6qzBHDtOaRYGwbtFyMck7LR2Q4iqGFoiLUQgCAj9qsFmZuk2skV9dqvhZaHlr5IbXQKdRCAICP2rsWpmROnqubpabNrIW5FlO4FspHoRbWj1oIAPBRe9dC82MvpZtlbmboZk0eOvNqoW7BNutBM6iFAAAfOV4LgyZe2M37um3hYxWohdVdLcycRLcAlIhaCADwkfu1MBj72qhhUNm1dC/aGiYxTytvmblOm8U0xsr7iMxHMQwqTwuaRC0EAPjIi1o4HjTZFigbTqEWAgB8RC10BLWwnVALAQA+qqEWTqIWWijcFngt2EHUQgCAj6qqhVOfauyduxaKJ01C2iMBtRAA4BunaiHQHqiFAAAfUQuB0lELAQA+ohYCpaMWAgB8RC2sGjVgHKIWAgB85EUtzPyp1C6rZ815j+LjmfRI4Vro6V9yJcNjMfxQ98IHaoz9teD2c2b+hPkCS6pCQ6XA7kGhsyRPZb99Ye6cfGD8cL8Wpr4yePeFws0Fu7mqttHM1cJ2+tQYHku5DzNvD7RcTG2fC/OJirtcauNm/jPY5EMrcGj+6wp4wfFamPnVMvnVJvkfYd02NpMYpk19XdWNKL/8mhejPIrlI7LcIB7MPC1okk0t1H0W5E+KbjPLv4H2bHZM/S2SdzT/BU7Oo3w4ysNlLqxh/BenmzBzncqDyvumzoluAebbutWaH6z5QKkJLc+SbvfUXcVOiPxwdHJtDKAsntZC5RdPw9dA5VSZI4ZpzSPB2K+6lotRzmn5iAxHsXxmQYkya6H9X1TdU7nlYC5yDcjcLHNJukpg89fS/hElz2qxf/iWp7HJT4du8swvCIb12595+7Nk/hRnni7zX2/Lv5x8jQJaos1qYeY2uUZyda3ma6HloZUfUgudkqsWpugaQur5VB7RDZau+RYkf2i/jWFJzdTCzNvJQeWnQ3cjc9BmzYZ78346in1tKetAysMp8TUKaIn2roUpmZPn6mapaQ2bFVhMsS/dyqMU/rKMwkqshTYtxXKwLE12BsMKc7UjeUubfzWZIwXKnvLQuU6Ickm5vvrZHMj+LDX5KTYfyObTyhcooFXauxaaH3sp3Sxzs8waUPjQ5mclw4Jt1oNmtP2LyIajJycpsRaaF1a4Fuatc+ZHlGsem4pY+Cy5WQtz/bXkaxTQEo7XwiBPX7L/Qmc5YnmsArWwlEZquQZqYf1yveUk3qsxlmE8c7Niy7bcV3cg5fIsH2bmxjarCqR/FOalplaru22z/kDzjzrzLGU+UpvNzIvMe5Z0t3WP3eZAyodmlnd7AKVwvxYG1k+Chi/Luq8whi9xumkNXwx167RZjO7rreUjMh/FMKg8LWhSe/846zZ4CFVw6rQ4tZhi2uAhAD7yohaOB01+DeRLqFPauBaa/581PmX+97NmTi2mGW3wEADvUAsdQS1sJ21cCwEAbYxa6IjCbaE9Lgu0GWohAMBHTtVC8aRJSHskoBYCAHzjVC00bECIR6EWAgB8RC0kpPRQCwEAPqIWElJ6yqqFhm8cNfykoyJfCAAAaNNaKJ4Zm9yghjU4GB/X7OZjKfFqoWF7GiAAoFxe1MLkjwWzed6P7lJuYLirolqS91iWj7GKFVZ3uLJmtp/H5VoYX+hLXvEz3A401wZTI7qfVqf8qXq8gR0AIHO/Fqae3206TGb3c/lqYf19poZaWH9croWBqvgFY2ueoSLK2xgGlXMG1EIAgIrjtVD35N4YKx5J7pV5tVC+Aqk7RGrfzMFNmmtx8r7mEfOW5oegXIy8MN2ZNJwW+Wyn5tedjRLXrDvnlic584hNxqYWxv8GG1m1UB5Ufmi/DQAASp7Wwk1SZVJWF5tWY9MHDHvpplI2mcxDKIuK7tGZH4JlxTKcSd0JVG5vrnnlrln3icj8OyAPUgsBAIi1Ry1U3mWuhZZHKVY8lE3G5hDKopLruLotDY1IdybNTc9wW3eIstZcrAHq1mP5CcqVJmth1HtTgwEvIgMAKlZDLdzVz1rYGKtY8chcTOoQm5prQYYHW1stNDwoamHqewvlbhaPNFRSm6XGMzdWHggAgFhltXB1403f9LcWllU8DIvJ3LHYcXVb6iqW4Uwa5sy11NLX3B61sLX/8AEAkDleCzOf2ZVP6OXWwui6SrHiYViM8hDyeN7jmo+S60w2WQvlB1XWmjMHzZ+yzKM0H5sfUEMzBAC4xv1aGD/LJ2tGalzZKxpjZd6lO2jmhMqplKVLt29mq9E9kMxiYyg/8hFt5tRNaH5Q8mNsZs26eXSHznx0upUUDr/8DgDgIy9qoSPJrEmERKEWAgB8RC20D7WQWIZaCADwEbXQPtRCYhlqIQDAR07VQvGkSUh7JKAWAgB841QtBNpD+9XC6D07lpsVe4zJNweZZzMPNlQ/tbsx9qdBypOn5lRuKSvwMAHAZdRCoHStqoWtnbyZo6cqWeacDemnc8c3kreVg/IGug+TtdB+bQDgL2ohULqW1EL5QpbhkleguuamvAiW3N6wZZOX0SzrX3Iws6HpBg0dT35Eyl0yZwYAT7VlLcz84lzDV28fnyB8XLNOax+LO1cLld1JWY10Wxp2MdxufuWGcWU3M3RaXf3LrIXyuKH3UgsBtAEvaqHyKoThK7D5f/TmfcuifA7NtWOBfYsdqPBSCxyrtnmohfJgZgOU/6HZb6k7ejMr142b/xXbnIRmaqHh0ADgO/drofzff+W4vE3mBpUqfIj6n3FqqIX1oxamBnX9zfzZt9/SMG4jc87MUmqeylwLc1XifA8MALzieC00PFmkvozLX88znyINzyypQ6T2zRwMsp7OLEfMW5ofgnIx8sJ0Z9JwWgLpbKfm152NEtesnEd+LIZTZ77dJBdqoXxmzJvZf0bMfzeKsV+e7l7llobdM/9K2A/KEwKApzythYHmy3vyLsPTnOFZ0nAsXdWxeRazPESget7RPTrzQyjwPGtzWuTGZd64ijXrPhHyVJmDbVYLA03rVhYY5WbyeGMs3ZbKzZpcuTyn4Xag/4shLzI5rpzTPKhbaoFHDQBOaY9aqLxLua/yrsyv54a9dFOlblgeIrVlgePqtpT30i3VZk7zbd0hylqz/Qkxf3Z0R2meaz+3MO9feOTFKQXQHqiFhi3liwb2U9nUQuWVB99roeFBUQvrr4XKz0XyQwAAYtRCwww2exWuhZk7Fjuubst6aqFNDWt+zdRCAACq4HgtDKx7l7xNWbUwvrRSXS2UL6xlHsKmYilny1yqeU77Wig/qLLWnDlo/pRlHqV51EIAgI/cr4WB6oWw1Li8fWovuZ/o5lRObp5QOZWydOn2DbJaje6ByIdTnorMXXSn135C84OSH2Mza9bNozt05qPTraQwaiEAwEde1EJHZNYkIEItBAD4iFpoj1oIS9RCAICPqIX2qIWw1NpaaPliPQAAKU7VQvGkSUh7JKAWAgB841QtBNpDC2uh/TVt+W04AIBxjloIlI5aCADwEbUQKJ0XtRAAgBRqYQu1/Mm65QtoV9RCAICPaqmFK5v8LSeGHwSdeiGs0qe/vJObt29mqfK+hWejMFTBi1rIi8gAgJQKa+HeJdRCXf8x/J6L8s9RUYbFNLnOzFpo8wtEyloMZO7XQjohAEDmXS3UjSvrom6b1IXHYOyzpO46pM0G8aByG3n9yiXZ764boRa2lvs/oIZPOgBANt5qYap66QaVHxouVOZ65tW1TfMhco3kqoWGcRTjfi0EAEDmeC0M9N9bKG+mHJe3Me9Sfy3MuyTDSEPFMJ65VBTT2loIAEAx7tfCFF0Nq7MWKntX5uEMc+Zaks0IVwtbi1oIAPARtbDJq4XKvQyDyjlzLclmhFrYWtRCAICPHK+FlvXP8OKyYTZ/X0Q2T2J5aJtxFEMtBAD4yPFaGOi/t1D5bXK6cfNUhs1S44YNDIPKB6U8uvkQunXqNrBEUSkdtRAA4CP3a2GJmnxGLvEJ3alu4NRi2oNNLeS0AwBcQy2sbfdKZyvMkWW0GcurhZx8AIBTqIWWO1bxDN7yVtDyBbSrZmphRX/ZAADI5FQtFE+ahLRHAmohAMA3TtVCoD00UwsBAGgVaiFQOstaGNAMAQAuoRYCpeNFZACAj6iFZv4+Qfu78jZQuBbSCQEALeR+LdT9DGrdj49u5mzIP1POckKbnz5dM3dWMg41UwtrXSgAAAmO10Ld86bhl4OUclpyTejmd4s5sozxyaYW8gkCALjGu1qoG1fWRcNeytvxJKmrf4YrgYYjKi9yxuO6bZQPSr4omjmoe4DmHS0XBjP7t5wAAOAOamEg1cJA6lGZx81coVwIddukRsxHD/QPXH4sNjsaBmGPWggA8JHjtTDQX8uSN1OOGzYzX1VTHqj5Wpi5Ta4NdDMbxm2WRC1sErUQAOAj92thSuEWJG/mQi1Ull7zJPKOuoXpBg07xoPmhcGMWggA8BG10J2rhc1MYnNCmpkNuVALAQA+crwWWtY/XYvLnDNzHpsiV7hu5e2cyqZnroW6x6Lc0XwJEfaohQAAHzleCwP99xYqX+K0eenTphYmp9JtoFukYVBZ3gyrzXyYwdjWpxxXbmM/qHvIMKAWAgB85H4tHM/qrxCUllJQCwEAPqIWuoxa6ClqIQDARzXUwkmHUQsLqqdC8Hpx6aiFAAAfVVYLnypQC8WTJiHtkYBaCADwjVO1EGgP1EIAgI+ohUDpqIUAAB9RC4HSUQsBAD6iFo4fLS8kLV9AbaiFAAAfOV4LzT9N2vBjolOb2fysacsFyDtW9DbevBPmeiBNzlx4tnFSiqiFAAAftUctNFDuYj9PKb20HvaPovmZLU+gctyFc1U1aiEAwEce1ULz73RL/mm4dperqBiOqFyAbvfUpcV4MB7RXczM3CAeNF/8VB7dMJtu98zzkLmjYeN2Qi0EAPiozWqhocLlHTQfUbkAeXfl+m0mVB5dN2jzKMxLMs9Tbi00jLcNaiEAwEeO18JAc0kwsG5Q8W37S2G6+ZPzFKigNh2shlqYd0mGkYaKYTxzqW2DWggA8JEvtdDclyzrjbyX4TlaVwszN9YNFq6Fyt5luQbdA7Ffks1IrtNiGG8blrXQ8Nm0ZFm5leUcAICUcVsLM58ilRe7WlILix3OMGeuJdmMUAtTaquFNru3/dkGAJSl7WuhzaDuoPY71lYLW3K10DyJ5aFtxtuGTS3UnfzUf0PizZRbJmdQXhJU/u8GAAAl92thYH21SldvlBf9zE+XuWqhYRLloQ2bWa7fPKhcofLo5kNYPsy8xkM5yayFmX83Up8aeVC+V55ENwIAgJIXtdBTTT4dl/hs7lQxcGoxFSl2tTBXV5QHlR8qRwAAUKIWVsedWlj6bIU5soyqNX+1MEYtBADUhlpYncJPx6W8VquctvQ5/VpAbQpfLZSnohYCAGrjVC0UT5qEtEeCrKuFgabCJS8h6m4HquuNuiuQ8iAAAEpO1UKgnRSohQAAtBC1EKgIv+UEAOAXaiFQEWohAMAv1EKgItRCAIBfqIVARaiFAAC/UAuBilALAQB+oRYCFaEWAgD8Qi0EKkItBAD4hVoIVIRaCADwSw21cNfJK6iFGIeohQAAv1RWC1dTCzHOUQsBAH6hFgIVoRYCAPxCLQQqQi0EAPiFWghUhFoIAPALtRCoCLUQAOAXaiFQEWohAMAv1EKgItRCAIBfqIVARaiFAAC/UAuBilALAQB+oRYCFaEWAgD8Qi0EKkItBAD4hVoIVIRaCADwC7UQqAi1EADgF2ohUBFqIQDAL9RCoCLUQgCAX6iFQEWohQAAv1ALgYpQCwEAfqEWAhWhFgIA/EItBCpCLQQA+IVaCFSEWggA8Au1EKgItRAA4BdqIVARaiEAwC/UQqAi1EIAgF+ohUBFdLVQ9EJCCCHEwVALgYpQCwkhhPgVaiFQEWohIYQQv0ItBCpSfi3s7Q13X7So5V83CCGEtGVqqIWTDltJLcQ4xNVCQgghfoVaCFTEVAsXLQpvLF8+euO228LbM2eGt5cuDTfYsqVx662NyPz5jZUrw0GxWbTX4sXhDTEY3Yh2SUbcJfZK7ismjES7iEl0g4QQQsZrqIVARUy1MBLVuYiofHFJC7Y3wN7e0ReORWMUg1HTE5tFBVK0uOQucTo6whHRKqN7oxedRTmMBqN7xVS6QUIIIeM11EKgItpaGDW9qMslbwfBjgaYTDQYdTzR3FJVUK6F0WVG0fSSg0uW7BiMd1EOEkIIGa+hFgIV0dbC5ctHLw8Giet14vayZeFtUdWCkcK2eHGY6MJg9CpzdCPaRd49jrLgRS8TpzZQDhJCCBmvoRYCFdHWwqVLd1yji25HryZHLxyLchh9w6EY7O0dHRT1L/7GwmiX6DsGk7vHURa81PXJ6JVl5SAhhJDxGmohUBFtLYyu0UW1UHk72daiq4VB4hsLzbvEg2Lf1LcORmUyapKiXioHW/0ViRBCSAtDLQQqoq2FcdMTiW6Lspe8Hb0rWSR6WTkabGx/S4hy99QVwqgZinujd7JE84h+KGYQg1H9Uw4SQggZx6EWAhVx6OcWRm9CSRU/5SAhhJBxHGohUBGHamH8AnTmICGEkHEcaiFQEYdqISGEEGIRaiFQEV0tbPW6AABQoxYCFaEWAgD8Qi0EKkItBAD4hVoIVIRaCADwC7UQqEhmLYxup4piM71x+w8vrGr71F7m3XX3Wu4OAKgftRCoSLFa2KS8sxWrhZb76mph4UMDACpFLQQqYq6FcidsbJcaCVQX1hoJqXF5d3mG5MyGBSjlrYXyoS13BwDUjFoIVMRQCxtjJfdS1r/UXcqWlfmhch6bOQvTzQ8AcBO1EKhI3quFyXHlhzYVK+/uqYpoecHQUhVVEwBQHWohUJGyrhbKtyuqhXkenBVqIQD4hVoIVKSeq4WWrTLz9eLma5u54lILAcB91EKgIuarhYGqwqUuIepuyx8qd0+OB1IzlDfWXcC0pFuPcrUAAAdRC4GK5K2FAAC0FrUQqAi/5QQA4BdqIVARaiEAwC/UQqAi1EIAgF+ohUBFqIUAAL/UUAt3nbyCWohxiFoIAPBLVbXwA6IWfotaiPGMWggA8Au1EKgItRAA4BdqIVARaiEAwC/UQqAi1EIAgF+ohUBFqIUAAL9QC4GKUAsBAH6hFgIVoRYCAPxCLQQqQi0EAPiFWghUhFoIAPALtRCoCLUQAOAXaiFQEWohAMAv1EKgItRCAIBfqIVARaiFAAC/UAuBilALAQB+oRYCFaEWAgD8Qi0EKkItBAD4hVoIVIRaCADwC7UQqAi1EADgF2ohUBFqIQDAL9RCoCLUQgCAX6iFQEWohQAAv1ALgYpQCwEAfqEWAhWhFgIA/EItBCpCLQQA+IVaCFSEWggA8Au1EKgItRAA4BdqIVARaiEAwC/UQqAi1EIAgF9qqYUrqYUYh6iFAAC/UAuBilALAQB+oRYCFaEWAgD8Qi0EKkItBAD4hVoIVIRaCADwC7UQqAi1EADgF2ohUBFqIQDAL9RCoCLUQgCAX6iFQEWohQAAv1ALgYpQCwEAfqEWAhWhFgIA/EItBCpCLQQA+IVaCFSEWggA8Au1EKgItRAA4BdqIVARaiEAwC/UQqAi1EIAgF+ohUBFqIUAAL9QC4GKUAsBAH6hFgIVKbcWpnakXgIASkctBCpCLQQA+IVaCFTEXAsbI1K7KAcDTQmkGQIAykUtBCpCLQQA+IVaCFSkxBeRqYUAgBpQC4GKUAsBAH6hFgIV4UVkAIBfqIVARaiFAAC/UAuBivADagAAfqEWAhWhFgIA/EItBCrCL78DAPiFWghUhFoIAPCLO7WQkPYLtRAA4BFHaiEh4yHUQgCAy6iFhNQWaiEAwGXUQkJqi1wLaYkAAHdQCwmpLalaSCcEADiFWkhIbaEWAgBcRi0kpLZQCwEALqMWElJbqIUAAJdRCwmpLclaSCcEALiGWkhIbeFqIQDAZdRCQmoLtRAA4DJqISG1hVoIAHAZtTBXxPO4dzMTd8KPswYAuMyRWtgYYTOY2qCUJ2v7eaiFpJnwy+8AAC7zuhbWH2ohaSbUQgCAy9yphZvGVqPUSCNBuY18b2ozw23zPI2xdOvJPEpqSbrddY80c0Q+LYYHotw4uZl5L1Is1EIAgMt8qYXyxptUlUa5i30tzFyA5aD9emwGzatSzm/TS+WN5ZqqfKSkcKiFAACXOVULN0ltxLIWKu+VB+U/M+exH8w8is0KDcvO3Fh3r8051N2mFpYbaiEAwGW+1MLGWMqNU7vIg17UQt0jla8BpkZ089ucQ93thqSUdjRuU3UtTH6mCu+unLCkBRYkLyBzSeZll/uI4mOlbsi3Cxy9nvNveQjLxcgnJNdRALSQa7VQedvQcwz3yoPyn5nz2A9mHsV+hYYtC4zYrNnyzJMmU2kt1D3/5i0hmSMVsWxxqf+nGHavf+WlfAoM8zfPfirdlpa1ULkxtRBwn3e1MHou0N0rf5h5CPM8ykMbjmg4innc8nC6EcP8NufQ5swbHhGxTG21MDkol6j4dqpZKScxTyt/aLgrdUTlZjZLkgd1D1N+jMpDpGaQD2fWsK6F8iHMn4v4Lt36DWdeuU7lWdId2vLToXxQho11C9MtG0CdHKyFyvH4K09qUN43cyrdLrp5dIdOjtscJbVZanfLw8kzZJ5Mm3NouK17pKRA6q+FunHdE7HN83hmASgwmGv9Daks6TbT9RPDh2V9gpKLzDy6vM7kjWLn07Aqm3HLLfOeulx/GwHUz5FaSMh4iFO10HJjw/N46tnc0G0yBwssyaYW6u7VdcgSPzu5aqF8O++g8kC6VdmM29dC5V+GvAsA4AhqISG1xetaaNnrMltf87Uw78rlew1ztuRqoXzbo1poPqLltAAcQS0kpLa0/C0nyoKhm0S3i7lu2R/aZmPDUg0rNxdU84fmR2TP/VpoPsmWW5ZSCwufZAClc6QWLvzCDwhpg7SwFgb6V0JT442x8g6ax22WFI/opk1tXODhZ97WPUx5TsujK9cTSJ0qdSzd7cylmg9kXlXmUXJtaTh7unMiH8Vm5QBq4E4tbPWZAJrV8lrYchU9uladNBpLuZQnkzMMOIVaCJRlPNfCXJeMCkxe+pwuH7ddcT4B91ELgbKM51oIAGgD1EKgLNRCAIDXqIVAWaiFAACvUQuBslALAQBeoxYCZaEWAgC8Ri0EypKrFtIPAQCuoRYCZcl7tZBmCABwCrUQKAu1EADgNWohUBZqIQDAa9RCoCzUQgCA16iFQFkKvBOZZggAcAe1ECgLVwsBAF6jFgJloRYCALxGLQTKQi0EAHiNWgiUhR9nDQDwGrUQKAu//A4A4DVqIVAWaiEAwGvUQqAs1EIAgNfcqYWEtEGohQAAfzlSCwkZD6EWAgBcRi0kpLZQCwEALqMWElJbqIUAAJdRCwmpLdRCAIDLqIWE1BZqIQDAZdRCQmoLtRAA4DJqISG1hVoIAHAZtZCQ2kItBAC4jFpISG2hFgIAXEYtJKS2UAsBAC5zpBaK58oanpTrOQohulALAQAuoxYSUluohQAAl7lcCxsJ8mbJQcNm8YfyZoTUHGohAMBlLtdCeQO5FuoaoHJyCiFpbaiFAACX+VULN0nFj1pIPAq1EADgMpdrYWOs5JbUQuJjqIUAAJc5WwvN1Y5aSHxMshYm/8uT/FB3Ox4xkLdR7ms5oW5JmQcyPyIAgLO8qIXRE4ruLnkv3b7UQtLaxLUwVdJSN1K35Q8N5C3N89s0w0DTAzOPnmqSNusHALSQO7UwKTW4KasKpnY070s5JK2KshbGmq+FysmrqIW6R0EtBACvOVILc4VeRzyNj7VQOa19LTRsDABwjXe1kE5I/I1cC+PL2kGVtVD5ErA8aJ6QWggAbY9aSEhtqfR7CxtjmffN1TPldSoPpFs2tRAAfOFILVz4hR8Q0gZpbS3MvJ1rwubXmWqSNkcEALSQO7Ww1WcCaJZ9LQysX9s1XJrT7ai7bTiK/ZyZBzLca38mAQAtQS0EUh5atfnrP+nMFbFLkLMWAgDgGmohkBLVvFwRuwTUQgCA56iFQIroeL9Z8Wyu1FkL5ddz3ZwTAOAdaiGQIjreg08+kytcLQQAtAFqYTNKeYovsSdQOUohOt6yJzblCrUQANAG3KyFytewMl/YKusJ136e8VMLx1WZER3vgcc35gq1EADQBtqpFtaPWtiWRMf79R9640yfd33yQ+UItRAA0AacrYXB2CqSGlF+Y3xyG8O3zcu7pG6b51F+W75yJPOIqcMZDiQPyo/LfH50j9Swmby2cVJpRMf71WMboogGGMUwIlK4Fo6TUwoA8IKntVDeOBjbYeR7lSPmWpi5AMvBzPWYN8ics9i+9o9FN3O7Eh3v/t+vjxP3wNTtZIrVwnF1VgEA7nO5FgZSV7Gshcp75UH5z8x5ClQp3VF0K7Ssdkq5zg+1UEd0vF8u704mboNRUveKUAsBAG3A01rYGEu5cWoXedDxWqh7jKmri7n2lZeX67GME6Lj/eKRrlTiTijfJUItBAC0AcdrofK2TQ1T7q6cx81amPko7C8qUgvzEh3vvt8pIjqhclyEWggAaAO+18JiVwsNhzDPozy04Yg2HaDYgSxrYerSYq5HLZ/bcUJ0vHt/25ErBWrhuDqlAAAvuF8LlePJl0frrIWGQyfHbY5iPnrmgcxTKfdVHkue0LDvOGkyouPd8/DaXOFqIQCgDbhZC1EReoiN8EXkh1blCrUQANAGqIXjByXEUvhO5IcezxVqIQCgDVALxw9KiKXwx1k/9Eiu8OOsAQBtgFoIpDy0arOoebkidgn45XcAAM9RC4GyUAsBAF5zpxYS0gahFgIA/OVILSRkPIRaCABwGbWQkNpCLQQAuIxaSEhtqacWFnizc2Osmo8OAHAEtZCQ2uJsLQzsfiNPdUcHALiAWkhIbamhFirnt7xgmLqdvHKY/H2I8r0Fjj5+fpciAHiEWkhIbfGrFhoGlRvkOjq1EAAcRC0kpLY4Xgvl7y2074pNHh0A4AJqISG1xfFaKG9MLQSAccWRWviud11sk5Y/rRPSTNyphfJruOYGqHvhmBeRAaCduFMLnxixYsWKVSPWrFnT0dGxbrve3l5qIfE9ztZCw8vHqfeYJLc0v+hsf3QAgCPcr4WiEPb09LS8FopnsSZ3j5Q1IfExLv+AmjqPTicEADe5UwtXjBCFcPXq1clLhT0j5FooF61KEx/IcETdXco2SC0ch6EWAgBc5k4tjC4SRp0wfu047oR9fX3y1cI6m5XNsWxqYUsWTxwJv/wOAOAyd2qhKIS9I+ROKGzevNlcC6PbyeuH8ou2yldy5XHdlvKNzL3kccM8FMW2D7UQAOAyd2rhmjVrkp0w+q7CmE0tVBZCw5U6ub/pBuUbuV4XNmysOxxpy1ALAQAuc6cWJt93HF8k7OvrE4Vw6wibq4Xm26nBsmqh+Vi69VALx2GohQAAl7lTC5WdUBCFsH9Ek7VQfr1YVwvlLTdp+mHqld9itVB5ONKWoRYCAFzmVC3s7u6O32CS7ISDI5qphfYXBjOrnbxBiS8ik/ZOshbSDwEArnGnFibfYBK/dhx1wuERZdVC5dVC8yVE+Yah6SlOCC8ik5GkrhbSDAEATnGwFopO+Oyzz2bWQt2LvLrbypePzYPm7qd82Vf5QrDlPHTCtg+1EADgsspq4VONN3n2O5FpZaTqUAsBAC5zpBa6EGohqTrUQgCAy8Z5LeQFXFJn5Hci0wwBAO4Y57WQkDrD1UIAgMuohYTUFmohAMBl1EJCagu1EADgMmohIbWFH2cNAHAZtZCQ2sIvvwMAuIxaSEhtoRYCAFxGLSSktlALAQAuoxYSUluohQAAl1ELCakt1EIAgMscqYUu/E5kQqoOtRAA4DJ3auETI1asWLFqxJo1azo6OtZt19vbSy0kvodaCABwmfu1UBTCnp6esmqh5e8+rvRXJNtPzm9qbrNQCwEALnOnFq4YIQrh6tWrk5cKe0bItbAxIn1o1WBqg9QN5SC1kFQRaiEAwGXu1MLoImHUCePXjuNO2NfXV10ttLy3rFALx22ohQAAl7lTC0Uh7B0hd0Jh8+bNci3cpLroJ49vkvpeI0E5mBqR941HUtvYDNrvTi1ss1ALAQAuc6cWrlmzJtkJo+8qjJVbC5U7pm4oZ1bupfxQt8gCg6RtQi0EALjMnVqYfN9xfJGwr69PFMKtI5S1cJNUqMqqhfLu5s5GLSSZoRYCAFzmTi1UdkJBFML+EQ7WwsyXhs0N0HJL0jahFgIAXOZULezu7o7fYJLshIMjdLVQebv+q4V5d7TfnbRNqIUAAJe5UwuTbzCJXzuOOuHwiMK1MHUpz7B78y8iK4+bOZi5bNIeoRYCAFzmYC0UnfDZZ5/NVQuV48oXZy1rm+X1PfkVZMNxDYOZu5P2CLUQAOAyd2ohvxOZtH2ohQAAlzlSCwkZD6EWAgBcRi0kpLZQCwEALqMWElJbqIUAAJdRCwmpLdRCAIDLqqqFU1c39qYWEjIm1EIAgMuohYTUFmohAMBl1EJCagu1EADgMmohIbWFWggAcBm1kJDaQi0EALiMWkhIbaEWAgBcRi0kpLZQCwEALqMWElJbqIUAAJdRCwmpLdRCAIDLqIWE1JaoFopeSAghhDgYaiEhtYVaSAghxOVQCwmpLdRCQgghLodaSEhtUdTCjo5wZNGiln8pIIQQQqiFhNQWRS1ctiwcue22ln8pIIQQQqiFhNQWRS0UhVBYvryxZUvj1lsbkfnzGytXhvdGxA1xrzBzZsu/YhBCCGnjUAsJqS2KWrhoUTjS2zvaD8UNkbgBLl4c3hadULREYenSln/FIIQQ0sahFhJSWxS1ML4emBqMamF0/bCjo7FkyWg/bPVXDEIIIW0caiEhtSVdC6P3myxeHN4WxU/cEBGFMP5uw6VLR2uhGBcVsdVfLgghhLR3qIWE1JZ0LYxanyiE0UvJ4sP41eToewuXLx8dj0cIIYSQykItJKS2jNbC+IXj6DXi6PsGoxFRC6OrhdG/0OhyYvQmlFZ/rSCEENL2oRYSUlvStVCUveg7BpcvD9ugSPTzapLfRhgR463+WkEIIaTtQy0kpLbk/i0n0YvI/FwaQgghtYRaSEhtyVcLUz/DkBBCCKk41EJCagu/E5kQQojLoRYSUluiWhgAAOAkaiEhtYVaCABwGbWQkNpCLQQAuKyGWjiJWkjISKiFAACXUQsJqS3UQgCAy6iFhNQWaiEAwGXUQkJqC7UQAOAyaiEhtYVaCABwGbWQkNpCLQQAuIxaSEhtoRYCAFxGLSSktlALAQAuoxYSUluohQAAl1ELCakt1EIAgMuohYTUFmohAMBl1EJCagu1EADgMmohIbWFWggAcBm1kJDaQi0EALiMWkhIbaEWAgBcRi0kpLZQCwEALqMWElJb4lrY2C717zE1mNwstYvhw4ZR6nDKYzlO91gsB/MeqJmjFzsuALQKtZCQ2pK8WqjrDObmlmtQvsvcW2qrMc0cqJkT0uTh8h6IWgjAO9RCQmpLZi1M1TndYN4WZDiWzWbJ62DJDw13xR/qbjd5HS+1YDdrYTPHBYCWoBYSUlu8q4VNXpqr9DJaMyek2FEKHIhaCMAv1EJCakuxWiiPtORqofmgNdfCJk9IbQeiFgLwC7WQkNqirIU2r67WXAste13h63VlvXZc7OjNHItaCKC9UQsJqS2ZtTD+h+l4LQzGfrtg5pJsNpY3U7J/7PaLtzxcsQPZHAUAHEEtJKS2yD+gJu4nutvyh6UMBpqmJG9sGJcn1B09UDVD5cZBlsx1FnjsrT0QALiDWkhIbXHtx1k3s5jSH4iyVlWhzgPVcBQAKBG1kJDa0h61UHkNrVWL4UAAUCJqISG1xbVaCABAErWQkNpCLQQAuIxaSEhtoRYCAFxWWS18qvGmb1ILCUmGWggAcBm1kJDaQi0EALiMWkhIbaEWAgBcRi0kpLZQCwEALqMWElJbqIUAAJdRCwmpLdRCAIDLqIWE1BZqIQDAZdRCQmoLtRAA4DJqISG1hVoIAHAZtZCQ2kItBAC4jFpISG2hFgIAXEYtJKS2UAsBAC6jFhJSW6iFAACXUQsJqS3UQgCAy6iFhNQWaiEAwGXUQkJqC7UQAOAyaiEhtYVaCABwGbWQkNoS1UKZ+AelvJ3axky3ZWpQd1Dzh8ol2a8NAOAFaiEhtSW+WpjqafGN5G3dDQPdNqlx3dFtBostDADgBWohIbUlVQvltmYuXZkFTLmB7liGyW2OThsEgPZDLSSktiRrofzyq7IxUgsBALWhFhJSWzKvFsp3VVQLdUdP3aYWAsC4Qi0kpLYov7cwVmItlN82ors4qfyQWggA4xO1kJDakvmWk/hGk285KdDrqIUAAGohIbUl1w+oCcZe68v8t2wzp3wVUTlDsUEAgO+ohYTUFn6cNQDAZdRCQmoLtRAA4DJqISG1pZRaqHsZGgCAJlVYC/emFhIyJlwtBAC4jFpISG2hFgIAXEYtJKS2UAsBAC6jFhJSW6iFAACXUQsJqS3UQgCAy6iFhNQWaiEAwGXUQkJqC7UQAOAyaiEhtYVaCABwGbWQkNpCLQQAuIxaSEhtoRYCAFxGLSSktlALAQAuoxYSUluohQAAl1ELCakt1EIAgMuohYTUFmohAMBl1EJCagu1EADgMmohIbWFWggAcBm1kJDaQi0EALiMWkhIbaEWAgBcRi0kpLZQCwEALqMWElJbqIUAAJdRCwmpLdRCAIDLqIWE1BZqIQDAZdRCQmoLtRAA4DJqISG1hVoIAHAZtZCQ2kItBAC4jFpISG2hFgIAXEYtJKS2UAsBAC6jFhJSW6iFAACXVVULP7CaWkhIKtRCAIDLqIWE1BZqIQDAZdRCQmpLVAtFLySEEEIcDLWQkNpCLSSEEOJyqIWE1BZqISGEEJdDLSSktlALCSGEuBxqISG1hVpICCHE5VALCaktilq4eHE4snLljtsdHY0tWxqRaGT58vBe5SAhhBBSXqiFhNQWRS2cOXPHSHxbtETh1lvDiijMn68dJIQQQsoLtZCQ2pKuhb294YeLFoW3o4uBUdlbsmT0sqG4HdENEkIIIeWFWkhIbUnXwuXLww9F3wsSFwOD7a8mR9vEDVA5SAghhJQXaiEhtSVdC0UJjL+xMLoYuGxZeDtufcnLicpBQgghpLxQCwmpLaO1MC540TcTilq4dOno7Y6O0W8djMejd5coB1v91YMQQkibhVpISG1J18Ko4N122+gryNHgsmWjrybPnx92xaj+KQcJIYSQUkMtJKS2WP3cwuiV5VTxUw4SQgghpYZaSEhtsaqF8+eH22zZkj1ICCGElBpqISG1hd9yQgghxOVQCwmpLVEtDAAAcBK1kJDaQi0EALiMWkhIbaEWAgBcRi0kpLZQCwEALqMWElJbqIUAAJdRCwmpLdRCAIDLqIWE1JbkbzmJ/gEmb8cf6gaT/3KVWwIA0AxqISG1Jb5amGp9qRvFBgEAaBK1kJDaYq6FgerCYGMsw5YAADSJWkhIbcmshfJgZvGjGQIAykItJKS2yLUw9X2G8T9Mcy3kRWQAQBWohYTUluQ7keNCmLph8+4S3m8CAKhCZbXwqcbe36IWEpIMP6AGwP9v735fJDnoPI7PAyHhQBA5JCDJX6APIoEDYYM+OsQH4rHgMyHgI58cCMk9yGMf+kBOo8dBsos+FDnwgT+jQpBEko1ZiSR7l6iJ+yOb65CYy2V1V2lrt51KbVV1dXV31be+XfN68SbM1HRPd+/MZD7bvTMNmZmFUlhmIQCZmYVSWGYhAJmZhVJYZiEAmZmFUlhmIQCZmYVSWGYhAJmZhVJYZiEAmZmFUlhjz8I9f59hx69MbD1xxxkBOERmoRTWqLOw43mWd3snW53dLASYAbNQCitsFlYPrnuSlOWauwc3vtt1T8XS+g7XHQQgIbNQCit+Fq473ueh4a3ebW129rksALIxC6WwUs3CnifuPws3ngWA5MxCKayDnoXdDzebhQAzYBZKYU3+IyfrNl7ribvP0n8WehAZ4FCYhVJYYb+gpvt4x8+h7Haw9WTVE493kwEYkFkohXUCf531Sbu9AAfNLJTCOoGzEIADYhZKYZmFAGRmFkphmYUAZGYWSmGZhQBkZhZKYZmFAGRmFkphmYUAZGYWSmGZhQBkZhZKYZmFAGRmFkphmYUAZGYWSmGZhQBkZhZKYZmFAGQWMAvvNAulW5mFAGQ24iy8+4xZKFUzCwHIzCyUwjILAcjMLJTCMgsByMwslMIyCwHIzCyUwjILAcjMLJTCMgsByMwslMIyCwHIzCyUwjILAcjMLJTCMgsByMwslMKqzcKjY9UvyeZubJ4GAMZgFkphVWfhVkvPLAQggFkohVXOwqPbrb4YW+88LN/UPOJeRACGZRZKYfW5t7DPLKw9Ej3Y/w4AONnMQimsAWdh885GANiTWSiFNca9hQAwFLNQCsssBCAzs1AKq+ePnGw8WDse/r8NAObJLJTC8uusAcjMLJTCMgsByMwslMIyCwHIzCyUwjILAcjMLJTCMgsByMwslMIyCwHIzCyUwjILAcjMLJTCGnUWlr/DsPuXGa57a8+zAzBjZqEU1tizsPbCxlPudnYA5soslMJKNQubT5vS8+wAzFXALLzj3hfNQmmR5t8W1p5cb9orA0AeY83CUy8d3XPWLJSq5ZmFrS8DcMKZhVJYZiEAmZmFUliTzMLmTxabhQC0MgulsDLMwqNjtZcBwCyUwkryIDIAtDILpbDMQgAyMwulsMxCADIzC6WwzEIAMjMLpbDMQgAyMwulsMxCADIzC6WwzEIAMjMLpbAOdBYe4nUGYAdmoRTWgc5CAE4Is1AKK8MsrD3Lybo3dR9Ztj2nXvfF1c5VPfu27xOAkZiFUlgZZuHyeA3WlmHHEyW3rsfWN7VeUO3l1rP3f58AjMcslMLKPAuXjXv2aqdvfbX/LOw+e//3CcB4zEIprMyzcKt7C9e9qfWCOg6ahQCpmIVSWAGzsM8/zxtpFnbfzdh9QWYhQAZmoRRWzCzceIKm1jd1H6m9vFyzSJuPSrc+VN16EIBgZqEU1tiz8CBm1cZHlgGYilkohRUwC8d754NovUvQ/YQASZiFUlhJfuQEAFqZhVJYZiEAmZmFUlhmIQCZmYVSWGYhAJmZhVJYZiEAmZmFUlhJZmHtFw/2PPHYFwTA5AJm4Z33XjALpUWmWVh7oefpx74gAKY15iw8YxZK1WYzC1uf36T1aVC2uiAApmUWSmElmYXbav726ebLrQcBOCxmoRTWPGbhcv3zGq87PQAHwSyUwprHLFx3x2DtgWMADo5ZKIUVMAsH+cHh5vF1r7Y+u/Fulw7A5MxCKayYWbjPeVtnXuvjxd2PIwNwiMxCKayxZ+Hkd9aZhQAHzSyUwgqYheO9840X3bzzEIDDYhZKYR3oj5wAcEKYhVJYZiEAmZmFUlhmIQCZmYVSWGYhAJmZhVJYZiEAmZmFUlhmIQCZmYVSWGYhAJmZhVJYZiEAmZmFUlhmIQCZmYVSWGYhAJmZhVJYZiEAmZmFUlhmIQCZmYVSWGYhAJmZhVJYZiEAmZmFUlhmIQCZmYVSWGYhAJmZhVJYZiEAmZmFUlhmIQCZmYVSWGYhAJkFzMI7PmYWSjczCwHIbKxZeP9LR3efNQulamYhAJmZhVJYZiEAmZmFUli1WXh0y3Rf/QBwG7NQCsssBCAzs1AKy4PIAGRmFkphmYUAZGYWSmF5EBmAzMxCKazqLLQJAcjGLJTCqs3CSb/0AaDOLJTC8m8LAcjMLJTCMgsByMwslMIyCwHIzCyUwjILAcjMLJTCMgsByMwslMIyCwHIzCyUwjILAcjMLJTCMgsByMwslMIyCwHIzCyUwjILAcjMLJTCMgsByMwslMIyCwHIzCyUwjILAcjMLJTCMgsByMwslMIyCwHIzCyUwjILAcjMLJTCMgsByMwslMIyCwHIzCyUwjILAcgsYBbeea9ZKN3MLAQgs7Fm4amXju45YxZK1cxCADIzC6Wwdp6FYWPy6Ngklw7AtMxCKazk9xZmvm4ABDALpbBWs7B6j1zzfrnanXXrjlRfaJ644z2sO/vR7dZd+sbrAMDhMgulsMp7C5v/Xd4+Ebsfxq0tt46zrzvY50I3XhmbEGBmzEIprO5ZuFxzd9+ycyW2Drz+p9xnFnacBYBDZBZKYQ14b2HzZbMQgD2ZhVJYYbNwh4PNS9nq0gGYAbNQCqv2IycdP+JRHuw4Unu5+WrrwY3vqvv6NI+P+L8nAGKZhVJYyX9BzQ5mdnMATjizUAprNrPQXYUAs2QWSmHNZhYCMEtmoRSWWQhAZmahFJZZCEBmZqEUllkIQGZmoRSWWQhAZmahFNaos7D2Gwg7Do5xQcvGLzPc4RckDns9AdiWWSiFNfYsrL2w7uCoF9TnBB2v2oQAEzILpbBOyCxsPbjzLHT/IUAYs1AKK/O/LWx9bHers3cf7J6FG6/YttcHgB2YhVJYmWfhnmr/SrD8h4LNE7S+CkAGZqEUVuZZOOC9hTv820IAMjALFd8Lzz9x/tzjzzz1g9lU3JziRm284Zln4Z7Gm4UeRAYIYxYm6Ymf/9f3v/ftYjbMoOKGFDenYxMWff5fv/zxz37prvsemEGnTj/0hQe/cuXShWvvvnViZ+Hy9oePOw5udbekTQgQySzMUDGiil668MuLrzw3+ZXZs+ImFDdkdYtaT3D+3OPFJix64pfnX7n42tRfAft69dLVXzz9fDELi25cv9b9hzPvWTgGf1wAkczCDH3/e98uptTkV2PAiptT3KjWNz3z1A8+/tkvFZtw6s/9IX316187dfqhZefXxcIsBCA3szBDxVqYwf2E1YqbU9yo1jcVs/Cu+x545eJrf52RRx99pLhR3V8XC7MQgNzMwgytW1AHXfcsLD6F/nLjxmwqbqxZCMChG3EW3m0W7rugDrqNs/D69T/PJrMQgBkwCzN0Mmfhn//0p9lkFgIwA2Zhhk7mLLx27d3ZZBYCMANmYYZO5ix89//fyVmx3LY9i1kIwAyYhRnaeRZWf4n0hFdjq/dWzsJ33nl726q/BnmHs/e/lG3PYhYCMAO7fcfvPqNZuG277bHVucoP5f6jrngPO39K9L9R5Sz8v7ff2qpiUHW8OmA7vGezEIAZWH232vjMa7WnM1uahYO2w6IrN2H14PJ4HFbvP2y9R7F5sHZk//shN87Ct//4Zv+KNdXxplL1xLWD607ZerKtrluRWQjADCx6PPNa8+nMlmbhoO02C1s/CuWQW318O+5RbB5cvc/uc+1/o8pZ+Nabb/SvWFP9T7aaec2D3e+zfLXnZVUzCwGYgcXxM6/99LlFd9WnM1uahYM27CwsP7LNk7WeqzzYfKH7sna7UeUsfPON/+1fsab6n6x24taD607W/7KqmYUAzMDi+JnXHv/V691Vn85saRYO2uCzsPpqrfKD3nqw9a0jzcI3Flf7V6ypjjdVNU/cerB5xvIEHZe1LrMQgBkov33/5Nmr3VW/0S/NwkEbdRY2P+jNx4iXbfcWNj9VBrlR5SxcvH6lf8Wa6nN89Wqfg/3fZ5/MQgBmYPHeLHyt6NOf/7fVC2XlkYVZOFqD/OO98kdFlusf/22eZt29hc1zDXWjyln4+tXLW1UMquar1YOre/z6nLLjHbaecmNmIQAzUH77/vG5K8UCXFW8vKp6ZGEWjtY+P+1b/XnhZeWuv47TVA8u2lbiunMNcqPKWXj1ysVtqz7g2zy4ern8b/UE686+7h1ue8XMQgBmoPz2/aNnLheVO7D2ctHCLBytnWfhovJYcPlBaX50mqepHqydpXqwea79b1Q5C69cfnU2mYUAzMDivVl4aVW5Bo834d+PL8zC0dpnFqZt4yy8fPH3s8ksBGAGym/fP3z6Ylm5CasHF2Zh+II66DbOwkt/+N1sMgsBmIHFe7PwD9VubcLbjizMwvAFddBtnIW/f/mF2WQWAjADi+PfW/izZ3/bnd9bGL+gDrqNs/B/XvzVbDILAZiBxfGznDx5/kJ3nuVk1AW17pkHD7TqXyJqrWbhq5eu/ubXT86mxx77plkIwKFbeE7kBK2W+eRXY8Cqf4moVczCU6cf+sXTzz937mez6d+/8Y1PfO7h7q+LhVkIQG6r71bF3iu+iTef8qyseGu5CRdm4dBtXOYHVPMvEbXOn3v8Cw9+peirX//ao48+0vFZdxA99tg3i034xYcfKbpx/Vr3H45ZCEBmu33r7z6jWbhDG5f5AVX7S0StF55/4vLFC8UsPHX6obvue2AGfeJzDxeb8Nq7bxV1f5S/M8d/RCpJOuGZhdqnYj7duH5t6r8SDam4ORs34eL23xAOALPR8b3PLJQkSdLCLJQkSdKtzEJJkiQtzEJJkiTdqjkLP/gvl1bL8I7PvL5nN9+5JEmSDqJiE370p9VZ+P5//u8PnP7dP3zqwvs++eKeHd3/8r4VV+/Qu3/vTr28d1P/Iex/E/b/Y5zBZ2OGm5DhOgzwFXHoX1CD/CHs/8kw+f/cJv8o5PhATH4Tpv9MGOSPcfLrsP8VGOIm/NNzRx/5ydE937o5Cz/03aN7ztzq7PELk3d2vya//mduTu7Jm/xW7PtxPDvEH8Le12GAP8azezX9F9QQ7fmHMEjTfhzvnvpDMNTn8/SfkJNf/0G+pia/CQma/It6mA/lDDpzcxAWL3z4P2/Own/8j5v/lSRJ0snub6fW1PQ=) +&] +[s3; &] +[s5; The drop`-down list box labeled `"Create in`" allows you to +select one of the assembly`'s nests (folders) into which the +package should be created. The edit`-box labeled `"Package name`" +allows you to enter the name of the new package. If the package +is to be located in a sub`-folder of the nest folder, then the +package name should include the sub`-folder name(s). e.g. If +the path for the selected nest is C:/MyApps and you want a new +package named `"Web`" to be in the C:/MyApps/Project1/Client folder +then you enter `"Project1/Client/Web`" (without the quotes) in +the Package`-name edit box.&] +[s5; You can choose one of the template options according to the +type of package you are creating. When you select a template, +the right hand pane shows which files will be created and what +content they will have. If you select the `"empty`" template, +then the only file which will be automatically created is the +package definition file.&] +[s5; Click the Create button when you have entered all the necessary +information and the package will be created and opened in TheIDE.&] +[s5; The CtrlLib application with main window template&] +[s5; The [/ Create`-new`-package] example dialog box above shows the +[* CtrlLib application with main window] [* template] selected. +This is the template to select if you are creating a standard +GUI application. You need to enter a name for the C`+`+ class +that represents the main window&] +[s5; The drop`-down list labeled `"Layout`" gives the following choices:&] +[s5;l288;i150;O0; No layouts&] +[s5;l288;i150;O0; Generate layout file&] +[s5;l288;i150;O0; Main window has layout&] +[s5;l288;i150;O0; Main window has OK/cancel&] +[s5; If you want to create the visual interface for your package +at design time (i.e. using TheIDE) then you should select either +`"Generate layout file`" or `"Main window has layout`". If `"Main +window has layout`" is chosen, then at runtime when the application +is started, a visible window will appear. If the application +needs to start without a visible window (or does not always want +the same visible window), then you can choose `"Generate layout +file`".&] +[s6; Package build configurations&] +[s5; The left`-hand drop`-down list on TheIDE toolbar shows which +build configuration is currently selected. To change the build +configurations for the [* main package] use the [/ main`-package`-configuration +]option on the Project menu in TheIDE. Alternatively, click +within the text area of the drop`-down list that shows the currently +selected build configuration. The `"Main package configurations`" +dialog will appear.&] +[s3; &] +[s0;= +@@image:2668&934 +(A1YDKwEAANX+AAAAAHic7Z0JdFT1obgvUEjiO+3/tbYerKLP3brV4A5GcQEUCIZNQBZBBRERKrW+12rbZ3s8Puvjvap171Op5wkUkLrhxqLlyVJB9j1AlpnsQBKSkIUw/9+d3+TOzdxlbpJJZvl93/lOzsydO/f+7p0k98udJZqmBUxoQzd1G7ZFqA3erTtkT8icPG1UvnaPT5tcLL92m1qmTS7V7inWJpbqFya2OK4cEe08goitHF+CiJFGHjhaH0pGSP3616HFwQv+4AVxNThlaKE2yKcrLuhXi/Xpg8q0m7cFAkVmtZYClOHX68GatLnNp/4q8OPf6Z73dOCieYHM/wxk/inQ73ndrJd0b37FUTkDIkbo8lODqKZx/6lETEytPykywIyvTurB1loRckLRdb1mnRARqGWujShA0X7dJ5WK/Os+qyrtsZNiTiMCz3lWV3TgpX8MK4JQap6IiIiIiB1RFJfUfFWGnDwvJ8PMUEw0X5XxZiiLTpg2p1mojTum9d9mFKB2yz+0nAJt1L5u08qF2oOHpaIGe8yu7TGnUTSh9vPmHnMDQnlZfDUmygtyYq9HT6bNDc2JiIjoYrdZJxExQvmjIRNL9pW028zG7tMaesyo6TGtqtuUWu3eau2e4NcJ1eJqaMqUIyEnVuhfxZQxZaGnj8UU4ehC7bbtWlau/sI/WYBDN2n3HAo7uVi7r1TWoOhAqV6DDuq3iiEZTqtCRERExBh4f4Xu1PJuU8u6TyoV6u/CGFekO8YfUqSddFS+bk6esFt2rjYkV383h/HmDpF/132j9V6sF2Dfr/RbRQGO2hfSFIFGB4Z8qDqsMfHBw/o85uxERBtLERERoysCr8WeE4qmv1zur2gKdIDpzx7qOWCTlrVRzz8RfsIfvR26cMs/9Pf/OhSgYUT16VPEDPJNwZNNY5ZdioiIiIht0jibFzy5N/3F0sb83PLnfl76xJTiR8cUzcz2T79D6Jt6q+/+23333iQtnNhfWnD3VSFHXZmXfXHuwLO3jLr66J5t0585qGWu1ZPvkk+0C5foBXj+u3YF6LMtQKP6TOFXHPx8mOJW7Weck0REQ+OHGhGl8ukqRLQ1+GMSCAQq5j1+9J0/Vr77pyOvP10+7xdlz8zWfWpG6W+nlz55n7Dkl/eW/HKy7i/GF8+9u2h2jtA/407flJvzxvTdMui85UOv9Jc1hArw3M/09vver7Xei/WrWRu7D4wsQL3xZOkZHTi1LDxxcusTldZ2RUREdDHuR1jExFR/FV9B8EKBKMDS306rXPRK1ZLXj/zPsxXP/6r8ubnCsqcfKX1qRslvpgn1DnxiqrDkXyeVPDa+aM5IoX/mMN/9t+WPv27bkIv/etWP9Bf+iQK8bL21APWXCJpPAE4ulb0nla8/lC9BDD/ta/vMb9zPtCAmpnE/2iImmnE/ziImoKL9TIpyK3lsnGi/o/PnHX7pt+V/eLTs9zOFpb9+oOTfJhf/fLzunNFFj4wQ+mcM9c8Yoj87LJxyc+HEfnl3X71t2CVLru2tF+B13+gF+C/rKUDELjXuR1vERDPuh1rEBNRSgMVzRlY8/8uKF5/U8+/fHzy+Y1PdxjXFc8cXPzLKPyNb6HtgkO/eW4SFE/oVjr/+2OoPhAVj+haMyTw06srtwy9b2q+PfQFmrtU/Jlr+6zfxI9nyj97k+0ce+ssxWYAyAh96qzr0/+NsnwW2O/Ct3F4v5hdf438IdhhefvmJ+saTcR9J1/jkwmqxvfJB3FvUZOyEBH+MOml4M16vFHvDfR4xg5gt7jsBERGVcIQ/ogCLZmaXPzO7/A8/K/v9zLpNa+QRvHbdqmD7Dda9d4DefhP6Fdx99bFV78sZjq1cVjDy8kMjr9ie3VKA124LFeCFS1wKcN4ntXIJyz/f13OSzyjAjzY3yOkvvLreYwEab0ZOH7gx/jvWeXinXDo/7oPpbEX+md8evm1nSUbW6sR5jOZ9eGzdvoaqusga76Thib0hyl8sNqPfZy6ziRnqG5t/8+7RuD98iIiY+norQEHN2i8iCvDY6g+MW9tdgAvW18slFPiq0kZsNwowv6JZTl+8bEev0Qe8nwP8cs2hU3r/Pv471mK4ABNyeLF1b1GTEfZie2c/vjx9wJrEeYzCj0XmYvP0ThqeSE09g/cccV/slrxGMVv1scaeOQfi/ggiImKKaylA/7RBpU/N0F/795tpJf86uXbD6nAErvnUN/U236SswnHX1nz5YTj/VrxXMPyigpxL8kZctj37kqU3nGlTgD9eoT8v3H+b/rnQo/L1VQcLcNXOBmM5GQNWygIUGhPF4TgtZ5fHz4FJH7hRHGQT/RxgLOriyYXVIhjivlFeNjbtji1iyndG5nl5jLpmu1wei5h/C8mqrG9o1hcbzGAX6xv1P3y+/Edp3B9BxJRyBCI6m10olAVY8qspJU/ep399bELx7NG161eZIvCTwon9asxn/75YUpB9fsHQcwuyL8jL+cmOYT9574YzWhWgfB2gQwHuLT5hLGrxsh0y/xZuqDcm7j9wOH3oZpl/8lyKpLSy+Y0VtcYPeMCEMaW+8eSC/6sTc9rexaqxBHk2JhB8AZtoEvM8LmPQgk8virvIp/zk3Y0ZIqpDDMxYV9Qlz3i9UsxmLDa//ITcqILS0CvWxMzGi+7ETV5eyeYyVOGHG4+b91vEAt33bcCC02Pkvl0RM1unGFfFaOXeM15r5/FbxX14HdwP5sVu21kin/0X307GCVJxX3FZ3N2Y2fjGS8y/YhCT1bgfYRET2ZYCLJx0Y8lj4/VPenl8UvHc8UVzRglr1q0wDo5NZUXG5ZqVS313nScsHPYvhdnn5t91wc4hFyy77vSAbQGKKQOC/zludPADqMeXiAI0nu2VR8n00XtEAW4tCP9TkgJfVcatX+n/nG58yd6icC5KFn1VJX/AzRNlYlkP9JL/+czxdVa289c3Nj/8Srkxj3H4to5h3b4G690LSup7DduttS5AUV/GJhunhpyWLGY2GsnMvvwacd+Mfp8Z2WCm7GiTy+9D96FGXaD1Vonct9bp1kdE7gT37Yq4u2apaOt9xR8R8rV2Lg+Tx+F1fD9owYCUU97632/lo2yEeniBRxrThmyX84t6lBOXf74v/gdNRERMYb0VoP/h4TVffxZx5KpZtcw34iK3AvzJllbPAhsFOCK4ar0AK+SiqqvlM2UnMu7c0PP+I/VN4YmCjJtW9phUIRTFmDHgK3F0fuHV9fIm/dWDLUdPpwO6fCma+Bo64JbXyM6xatzlqf9YLe4i8kxe3bbniPEkpjAja7V1DMaxW2yFONyLGYRfrjkkZpNNYix89uPLZfmIkUQ8M2i7ZON0lsgbcav4auw0Mb9xLnH/gcNypcawV39TbruZ7kM1okUOTyiWHLHAqPvW/FhIrY+R+3ZZH1CXh9gYqv6kc8v3g+3OtC7HaXgx2Q9G74nvqIg9I7/HxP7Xq/XaD+UCjXfQ6KMNPnuOiIjYiZoLcPx1xY+MKJk7tuTn44sfHVs0e6TuzGz/g4ObyouN41dTmd8/9jL/qAv9OefqZp/lzz67YPg5u+48Z9k1p4kZtGv22BdgToH+Qr7gCUCjADds9MkLL/xl139/Vh8xURwoZQG+sbo+vzx8zlCS0W+FNqZM2DoPWl1Nu2O7eUrGtR/Lu0RovkvPnPwZr4fO1IkmSR+wTs7zxorjtmMwngfUm+rSd3oN2y/nTx+4udfwg+aFizwIBF/wr5/pMo3EacmtNmTI7lbjzFxqrFeEZUbW380bog974GbrZroP1bhVJIoc3pMLa4yRywVG3bcRj4XtHnbfLtuFREwxrurb3voxddqZtsuxHV5M9kN9Y3gG8R0lphjdq7/5PThF7H+5+eYx6H8NtYwWERGxs2w5EygOPQWj+/ofGlr8s9HFj95d8rMxxXNGCotmZdeu/TzieFr75bLiMRcWjzxHWDT8zKLsMwuHnblr0Jl/u+oHAVmA8jTgJZ/oBShS8Po92iBf8ARgmTauXOTfvE9DsffCq+v3+fXLovo25OpHzf0HDhtnb8QFkX9//rI+YId+EBdLG1ceMSXqDFbd7tL3PXH1jVXHncZgvtzrrlyXhRs89fJO41aXJZvPlYk5F3wd2g8i8Mzrtb97cNgum2kdqvnWnqMKIiZmXLfcy761zmCdzX272rqW74g/ZDzsTPfvBPP0TtoPTy6qrW8ItWVVbfOHmxoc9/9l79h+l0Y37r9PEBExWRxRLg04FGDtui+MA1NTefh1gLWrljoWYL+9odOAFy7RTn2uVQEG80+bcmTB+tCLtUTj/XX9cXn0r65rllXwwtLQKUdxOW2cr7Sq1ZOGrY+tR4QRU6LOYDXqXVzG4H3h9Q0n5BPcZeU1PUf55a0uS573kX366nP2XWZ7k7Ei28G4D9X21oiJUXeU0yq8b1dH1tLWbxXb4XXefnj4tcpte8I3bdhd5/3RQUREjJljqgzFcSf/rkt9999e9PDwYPuNKpo9onb9SuOoVPv1p8XTsmrXhN8LXLdqccnoc0pyzijO7u0b0nv3rad9kPn/xHStf55egOft0s8BigI8e5uWlasX4JiWAry3euWu0MkQUYCz3jpmzoDZjy9//uMqefnLNYfSR+ebj4xpdx1sdaCcUC2MmBJ1BqsRM8x4M3QqKXRWqvUMEWMwqkP/CGvXhT/1H6tfmL87dPTfUWldtXXrth5q9ZYEkY7y9XtiTuNMmthjxqvawl7+v9aRuA/VuFWMU055cnG9sV6P+9ZpV3vfrlitxcu3iu0dY7IfjEcnYkXfGVvx72+FXhMoQj198NaIMRjfcogYA8cdQ0Q3gwWYN/SCwslZ/gfvKJo1vOiRnFrTu4Br135SPOPW4mk3ltx3bd2a8OcBiggszTm9ZNhpvsGn7rn5n9+//BQxURuQr0fgFbl6Af7oBb0AxVW9AMtk/gn3loRTJO3eirLqk+Yj7PNfhPJA/0CYEfuN1Ykj8odbwm+oFHN2m1IrjJgSdQarxgyipsTVvcWh8ejv2L3mA/MM1jEYNSsG/8ePQgtcl9tsXbj+rOI95ev3hbbu+WXl7kvOrwjvJSPtMvp/kTbGJ+5oXu9vFx+3rteq+1CNW8VuF+MUU4wWEiku1utl3zrtau/bJaxveTvv8s/3iatbCprbupao3ypi1U7Di8l+ML6FxEjkDAvWnxCKC79eGq7fU654V95qTNTf1xP8lmuH2j2IiIhtcZx+Fu7QwLMKxl3ru+9W/4N31qwNP/lbu/bT4gdv0X2gf8l91wjr/h5+CrJuxYLSId8vuv27u/v/0/uX9hJTtFtKtP4F4QI8b1ewAIPPOAfzTxyq8g+Hz5CkTan8aHv4RfKn3LKq16zQsVv/QJg7vzFyMQL9czOmNAjNB1/rVdspEdouv77hhP4vLQZvETMYB3TbMZRVRn7Qh2DbwXqntct3BFdX1/caV+6y5PrIzzXRqaoLbCk4KZfjvl5b3e9ie2voncvZ+73sW+sM1tmibte6XPt9EnUt7g+TdQbb4cVkPyxYH37TTc97jooppVWRC9yw0Wfc/Y2vwv8KJ+P2b1weQURExA450eQ9+hkMcwHW790mj0e1az8vmjEwogDLJl9e9+USOUP9uuWRBShiT0Zg36/CBTi0WH8KOJh/PabWmQ+XovdmLTS9rXViQdqc8DmfjIHrus88WVCmH2FFkulvGNnoExfkYT1t1KFuD7Q6+Fqv2k6J0HyUlxf2HzisP7v60wU9pxyT8xSUuo1h+dflxn0DLe9nSR+yxXbtf/57y1mm/BqXJf/1/2qqa2w+mE5QUNYoF2Ver7ijWK/+AXTB9TrpMlTh6k1HjFvFBfmP0jKyVjjtyag73zrbgn80R90uEaVyP8gxeFxL1IdJuM/X6il+p+3q4H4Qys4XY0gbXyKuiq0uO9JgrFouMD17l5x53YGTgZYXcKbdXejy8CGid7UpJxDRokzB0AVx9Dk4oHf+iCsKJ/YTEVg0O6ehYH/N158WTbutaNotRQ9kCYvvu75kSl9h6cRLysafX7dqUePBHeXjzi2943v+ARm7r+35t4u6i+Vog4/qBXh9mf650KFngQu0oeX6Kw+DBdh9WkOPGY3G03+i93o9ejJ91nF5NX3O8bS5+hRjhh6zA91mncwYvE6/mrkofeReobigzzyuUPSh0JjZ9qrtFLPmw3fGgNWh5yWHfNtz+nHzbCJHXcYgLhj3lXdPm1LptPa0yRXGbC5LTptQfEq/j427G++SDrS0ceR6Mxfp651cYbuZhi5D1W8dczC8EwasFlfN9426b512tXm6l+3KGL5D7gc5Bo9rifow6TMMCX0WohiDy3Z1cD+s2huQUSfGEHrQJxSHd3u/j80LlOdF9SzMXOT+2CGid7VpzYjo5hT9PMmBG3+YN/SC/NGZhRNu8E3O8t0bdHJ//+Qb/JOvExZN6ls84TJhydgLSkefXZpzuu6Q75fc/k++rJ67ruq+7MJuoQIcVKYXYOZavQB/vNkoQHkCUBZgj4ebes1plPknFNWX9thJs3J6j7mBkLPDxvy3hLkA4/4ry2z+kYAIiYcWhDb5o+0B8/mruA+P7XJXPpu8YVuUIF8ffM9K2WF92yM6ExERsTM0IlAcgPZc9739t515YNjFB0f+9NCYq/LGXq07JjPv7sz8u68QFoy5xDfqAt2cs/3DTvffcarubd/13ZSWd333rT/V/nqephfgsGN6BIoClM8Cty5AGYF6Ac5o7DXrhChA3bnN1gJ0j8DYai7AzltLW80Pf0BIK0L/0aP/8riPkO2KatlR/fnujNH7XObR869Sf/73lFtXd2Rdcf99goiISaQsQP/hE5vuvHjj9aduvOmMzbefs3nwBZsHX6g76Pwtg8/bOugc4baBZ+0ceIburaftGnDqzqzvCXfdkLHzmu9svbLb3y/RFt94dmQBnvqcuQC1CdXGaUB5JrDXzIbIDpwbOivolH+dsRMS9hzg8vVHCnxV8sVsgeAL0jZs9OkvUMxcFPWp3kQ2VbfL1n2Fde7fV3tLQy8/iPtQERFREY1zgNPfqDmya8vHt1/87qXfXXLl9xdn/mBR3x/qXvmDJX1PXRr0vcx/fv/K7wo/uOKUjy5Pf/+SXroX9/joom7vna8tufHssh2bp79QaVeAeUYByq89plTp6icDa0IdKJ11Qtrj4Sarcszy/GHMDb/ssHOW327Tx+Zl3P71KZkLQyO8eWVGzu5eD9TEfWBsl3cz7vymgzN4Mf6vJ0FExGSx5V0hPacen/5adaAD+CtOTP9jZc/hVeHXAUYUYHahNrpQ/9fAuqF/DqLdW91jWlVIvQYNG7vNjFQMuOXtXYhoNe7vL0NMNOP+U4mYeE5s0H86xNfx9fIjAbWxddq447riwpgabURN6Ku8YDiiUht2VP8qbx12LHTSL8KIAtQjME/L2qjdtrnb7Vu6D9TVhuyRdsvOlWo5eXoo5hSEHJUfviwVtyIiInpxUB4iRip6bKjDT8dtudqAoFkt3rQvdHVAi3KK+Npvr+71e0L/DlhcEF9F79kW4G2b9QIMRqDRgbbKGXSN+U13RESr8ucLEQ27IaKdnfhzJ/8rXPC9wGlX7ztt5pH0MQcqSvcgIiIiYgqr9d+nnbNIO/U/KUBERERERaQAEREREVWTAkRERERUTQoQERERUTUpQERERETVpAARERERVdO9AGc/+x4iIiIipoC2BZjhUIAd+Q90AAAAAJAIRBZgVq7W5+2oBRj3c5WIiBhblyx8jV/viCoof9gpQERErKAAEZWRAkREREMKEFERKUBERDSkABEVsQsKUNO0uG8mIiJ6MZELkKMJYgyNYQFqFozpcd9MRET0oksBWn+9u2ieJ1ZHAY4miDE0tgVouwp+ZhERk0WnAoz4TR71F3tn/ObnaIIYQ7uyAG3/fnQ6bejxz0xERIyhtgVo+9tYTjS+2v4ON89jne50d9s5bYfRjrtbx+l+L8RU1b0A0zP3dtI5wIhfC04T+TFEROxK21GAtr+0bdPL+91t125bgG26u9Nlp+EhprCxLcAIjOnW9XosQERE7Erbdw7QOqf3AvS4Ittb2313j8NDTGG78hygtQ9dfnVwHh4RsetNkAL0eD6h3Xe3HZ7tvRBT1S4rwPb99cfPICJiV5oIBehlmbZT2jokl3shprxxKUDbc4BOE+O+ixAR1bGt7wXu7AJsxzlAL3f3ODzEFDYuzwK3aSIiInaZbf08QJdnTl1+t3sJSNu7W4fUvrvbXnbaEMSUNIYF2HH5oUNEjK9t/Z8g/N5GTFIpQERENKQAERXRvQDTMvd0dgFy1h0RMXGkABEV0bEAz+qiAkRExMSxrQWIiElquwtw4/pPERERETFJbV8BfvHJQkRERERMUtv9LDAAAKQY8okhAEh5OvI6QAAASDEoQABFoAABAMCAAgRQBAoQAAAMKEAARYh5AZo/38+YYp3HPKf7QszLseI0s8vw3AfjccnuI3TZG8ZE91EBAMQFChBAEWJbgLZh4xRdtje5z9+Oqx4X7mUkLsO2vcnl7hQgACQmFCCAIsSwAJ0ypuMF6D5D1GL0MnMHC9DjPOZ1ubQiAEC8oAABFEG1Agw4pBcFCAAQoAABlCEBCzAQ7aV9nVSA1pW6DMPpJu8FGHVmAICuhwIEUIROKsCIjnKa02P5uCdfWwsw4PksnPdxeow6p/VSgACQIFCAAIrQqecAU6YAoy6TAgSA1IACBFCELngvcMA5paJ2l/tivVxt61C9zOOxaT3e3faZbgCAuEABAihCp34eoNPzwk5Toi7EuNX7zC7jdFmIl7OX1pW6bKN7GVKAAJAgUIAAiuBegOn8TxAAAJWgAAEUwb4Ab8rV+sxP9gK0ntbjVBsAgDsUIIAipHABAgBAW6EAARSh3QUo7oiIiIiISWr7ChAAAFKPJZwDBFADChAAAAwoQABFoAABAMCAAgRQBAoQAAAMKEAARYh5Adp+TrJ1noDzJ0K7f9hy1Lu4b2/UwZiX47JS90G6D8x2ae7DBgDoGihAAEVwL8CY/Fc4p+iyvcnjQjTXf7HhuLVt+efFLkv2uEUud6cAASAxoQABFMG+ALMOaGe1uQCdMqZTC9DLErwMpoMF2KaBWddIAQJAgkABAiiCagUYcEgvChAAIEABAihDYhagy0vsrK+p8z4S661OyzcizXalXsYTtQCjzgwA0PVQgACK0EkFGNFRTnN67zenu7SjAAOez8J5LzSPUee0XgoQABIEChBAETr1HGBnFKDLZfeJ7gNr00pd5qQAASCpoQABFCGGBRjw9sK59vWby6k/L2cF27TAqPN4bFqPd7c+xQwAEC8oQABFiG0BBlxfIBd1ijHddrEuU2zX6I5thkUsx730rCt12Ub3MqQAASBBoAABFMG9APmfIAAASkEBAiiCQwHman3eTvYCtJ7W41QbAIA7FCCAIqRwAQIAQFuhAAEUod0FKO6IiIiIiElq+wowc+bXiIiYYoqDQtzHgIhdIAWIiIiGFCCiIlKAiIhoSAEiKiIFiIiIhhQgoiLGvADNbzMxpljnMc/psgTzrda3sdiuzmWNTiOMunanIXlZoNMwbHeF06ZF3NF9kO4Ds11a3L8PETFBpAARFTFaAe5tUwHapoVLjzk1WPtmdpnT6SaXOV02wXalLoOMuroO7gfbm1zuTgEiopMUIKIiOhbgWW0uQI9ZmNnGAsz0nElRG8lL6rSpANu0HzqyaVFX6n1g1jVSgIhoSAEiKiIF6L722Bag9wG3daXeF0gBIqKLFCCiIiZXAUZgnRh1CVF3iNMCrRO9j9/pVqflu2yax/FELcCoMyOimlKAiIrYSQUYUTJOc7a1AKPO7L5GpxG6r91lwO0oQKfBeF+plzm9FKD7jkVENaUAERWxU88BJnIBuq/LZWIHzwHaDqZNK3WZkwJExA5KASIqYgwLMNPbS9faWlBtysW2rrEdBdjWBbZpR7VvP0Tdape7254IRURlpQARFTG2BZjp+hK1qFM8LsF8k9PM7Vi+cavtRrlMcVmay15yGZKxaU73st0E9z3mvup4ffshYqJJASIqonsBpvVtcwEiImLySgEiKqJDAR6gADuo9bQeOw0RE18KEFERKUBERDSkABEVsd0FKO6IiIiIiElq+woQAAAAAJIaChAAAABANShAAAAAANWgAAEAAABUgwIEAAAAUA2nAkzP3EMBAgAAAKQkzv8VjgIEAAAASE0oQAAAAADVoAABAAAAVIMCBAAAAFANChAAAABANShAAAAAANWgAAEAAABUw6kA+URoAAAAgFSFAgQAAABQDQoQAAAAQDUoQAAAAADVoAABAAAAVIMCBAAAAFANChAAAABANShAAAAAANWgAAEAAABUg/8JAgAAAKAakQV4kyjA+RQgAAAAQApDAQIAAACoBgUIAAAAoBoUIAAAAIBqUIAAAAAAqkEBAgAAAKgGBQgAAACgGs4FyCdCAwAAAKQmFCAAAACAalCAAAAAAKpBAQIAAACoBgUIAAAAoBoUIAAAAIBqUIAAAAAAqkEBAgAAAKgGBQgAAACgGhQgAAAAgGpQgAAAAACqQQECAAAAqAYFCAAAAKAaFCAAAACAalCAAAAAAKpBAQIAAACoBgUIAAAAoBoUIAAAAIBqUIAAAAAAqkEBAgAAAKgGBQgAAACgGhQgAAAAgGpQgAAAAACqQQECAAAAqAYFCAAAAKAaFCAAAACAalCAAAAAAKpBAQIAAACoBgUIAAAAoBoUIAAAAIBqUIAAAAAAqkEBAgAAAKgGBQgAAACgGhQgAAAAgGpQgAAAAACqQQECAAAAqAYFCAAAAKAaFCAAAACAalCAAAAAAKpBAQIAAACoBgUIAAAAoBoUIAAAAIBqUIAAAAAAqkEBAgAAAKiGpQAPaH0oQAAAAIBUhgIEAAAAUA0KEAAAAEA1KEAAAAAA1aAAAQAAAFSDAgQAAABQDQoQAAAAQDUoQAAAAADViCzALD4RGgAAACDFoQABAAAAVIMCBAAAAFANChAAAABANShAAAAAANWgAAEAAABUgwIEAAAAUA0KEAAAAEA1nAowjQIEAAAASFEoQAAAAADVoAABAAAAVIMCBAAAAFANChAAAABANShAAAAAANWgAAEAAABUgwIEAAAAUA0KEAAAAEA1LAV4QOvzNgUIAAAAkMJQgAAAAACqQQECAAAAqAYFCAAAAKAaFCAAAACAalCAAAAAAKpBAQIAAACoBgUIAAAAoBoUIAAAAIBq2BTgWRQgAAAAQCpDAQIAAACoBgUIAAAAoBoUIAAAAIBqUIAAAAAAqkEBAgAAAKgGBQgAAACgGhQgAAAAgGpEFuBNuRQgAAAAQGpDAQIAAACoBgUIAAAAoBoUIAAAAIBqUIAAAAAAqkEBAgAAAKgGBQgAAACgGhQgAAAAgGpQgAAAAACqYSnAA9pZ8ylAAAAAgBSGAgQAAABQDQoQAAAAQDUoQAAAAADVoAABAAAAVIMCBAAAAFANChAAAABANZwKMJ0CBAAAAEhRbAqwz9sUIAAAAEAKQwECAAAAqAYFCAAAAKAaFCAAAACAalCAAAAAAKpBAQIAAACoBgUIAAAAoBoUIAAAAIBqOBVgWuYeChAAAAAgJYkswKzclv8KRwECAAAApCZtLUBERERETAG9FyAiIiIipp4UICIiIqJqUoCIiIiIqkkBIiIiIqomBYiIiIiomkYB2n4iNCIiIiKmnsECdPyfIIiIiIiYelKAiIiIiKpJASIiIiaRu3es2bpp5cb1n6LYD2JvsKPat6MoQERExGRRHMeFk+c83W/E3N5XT1XZrNGPP/CLecX+vcfrKtlR7dhRFCAiImKyuHXTSlE1wtffXrFk2aZVqw6q6dK/ffvnv6wWYSNsajzusqPWbNia7yuJ97/kjRsF/tKvv9lhu6MoQERExGRx4/pP+42YK/LvzTe/Vdw/PPvx7555O2v046JznHaUyL94J1hC8PxLf7LuKAoQERExWRRh0/vqqUuWbRIJFO+siDOiAJ+b967YGwGHAhQ35ftKmqG5+c03X7buKAoQERExWZRhs2rVQVGAzc0nVFYU4EsvLnEvQHFTEzQ1LVn4mksBpvWlABERERNacwE2NTWqrMcCbGxoQPsCvClX6zOfAkREREx8zQXY0FCvsh4LsL7+OFKAiIiISa25AOuP16msxwKsq6tNOjVNi+0CKUBERMSk1lyAdbU1XaZmwjwxYp6uHJLHAqytORZDzfshtkuOWEtsF0gBIiIiJrXmAqw5Vt01iiCxvWqeHjFPF+ixAI9VV8VKsY0uVztvRR2XAkRERExqzQVYXVXZBYoacZpo3GQ7T2frsQCrq47GxOA2Ot5kYJ45YqLTnLazxWrYUgoQERExqTUXYFXl4S5Q1IjTRPPXrtdjAVYePRwTxWZ6n00WnXWi+zKNqx7X5V0KEBERMak1F+DRI+VdoKgRp4myc7pmGFY9FuCRw+UxUWyp99kiZrad6DSb93V5170A+URoRETEBNdcgIcrSrtAUSNOE81fu16PBXi4vDQm6pvpfJMZ68y2E613NGZwWVf7dP9EaAoQERExwTUXYHlZcRcoasRponGT7TydrccC7NT9YJ0esWdcJnpfZselABEREZNacwGWlfi7RhEktlfN0yPm6QI9FmBpiT9Wim20XjVPlOfxvMzpskDbOTsoBYiIiJjUmguwpKiwyzQ/U2meGDFPVw7JYwF2zX4wppi/WveM9e5edmzHpQARERGTWnMBFvnyVdZjAcZ9nIkgBYiIiJjUmgvQX3hIZT0WYNzHmQhSgIiIiEmtuQAP5u5UWY8FmHdgN1KAiIiISa25APfs/EZlPRbg/j2bkQJERERMamXYLP3bt6IAt337lcqKApz3XwvcC7DAX7pz2zp8661XKUBERMTkVYRN1ujH//yX1aJ/8Ok/vDNg7BNOBSh21Nff7NiyaTW++Mor1h2lF2AfChARETEJ3Lpp5QO/mCf83TNvPzfv3ZdeXKKm8/5rgci/mU+8LGxqPO6yo55/6U9vvvnykoWvqelbb70q8s92R1GAiIiIyeLuHWuKfHtF2GSNfrz31VNVdsDYJ0TVHK+rFLKj2rGjKEBERMQkUhzHmxqPByAQEPvBNv/YURHY7igKEBEREVE1KUBERERE1aQAEREREVWTAkRERERUTaMAtdM3iwj8wUi/7MC0u8o6qHZHFSIiIiImnCL/Ll8VKsDT3tM/Glp3fsuF+Dq/w8Z7E/rE20TYhA4+iHEfQMe/kfrM76gJ8dPUwccx3sbgZ6GDA0gE4/r7MDbfh2xC8hv/H+e4/yQmgmI/vKNfOOMNvQB/+Jr+FRERERGV8f8Dta0Knw==) +&] +[s3; &] +[s5; A package can have more than one build configuration. Each +line in this dialog corresponds to one particular build configuration. + To add a new line, use mouse right click and select `"append +row`". To edit an existing line, right click and select `"edit`". +In the right`-hand column (headed `"optional name`") you can +optionally enter a name for that particular build. This name +will appear in the left`-hand drop`-down list on TheIDE tool +bar. When a build command is initiated in TheIDE, the main package +is built according to the currently selected build configuration.as +shown in the drop`-down list. For example, a package can have +a DEBUG build and a non`-DEBUG build. If the DEBUG flags name +is not present in a particular build configuration, then a non`-debug +build occurs by default. Similarly, if the MT name is not present +then a single`-threaded application is built by default and if +the GUI flags name is not present, then a console type application +is built.&] +[s5; The names that appear in the Flags column are alpha`-numeric +strings separated by spaces. There are some predefined names +that can be used (e.g. GUI DEBUG WIN32 MT) however, you can enter +any names you desire (e.g. PRO`_VERSION) as shown above. TheIDE +build process will react to some of these names (such as GUI +and DEBUG) and these affect the switches etc that are used when +the compiler or linker are invoked.and also which libs are used. + Each of the Flag names also becomes a #define`'d MACRO name +that can be used in source files where each flag name is prefixed +with `"flag`" e.g. flagGUI, flagDEBUG, flagSTD`_VERSION. Hence +you can then test for these in source code with #ifdef or #if +defined(flagNAME)&] +[s5; All of the packages that are directly or indirectly used by +the main package are built with the same build configuration +as the main package, however it is possible to restrict a Flag +name to apply to the main package only by preceding it with a +dot (.) character. If a Flag name is preceded by a dot character +(e.g. .ENCRYPT) then that name is in effect only when the main +package source files are compiled, unless a dependent package +is explicitly configured as `"accepting`" a particular `"dotted`" +build Flag name. Flag names that are not preceded by a dot character +are in effect for both the main package and all of the packages +it uses.&] +[s5; The build configuration information is stored in the [* mainconfig] +section of the package definition file.&] +[s5; Flag names such as GUI and DEBUG can be detected in the [/ package`-organizer] +dialog box by entering them in the `"when`" column. This includes +all of the names that are present in the build configuration +flags names list, not just predefined names e.g. PRO`_VERSION. + By using these names in the package`-organizer dialog, the build +process can be customized for each build configuration.&] +[s6; Package build settings&] +[s5; From TheIDE project menu, select [/ package`-organizer.]&] +[s3; &] +[s0;= +@@image:2368&1775 +(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12FxlVBfuJwi31H1xBOHj7lo/46xxCUfjr79uo146h/c+4Jcjn29Ro2zTL8MtOAXxq1tb3DallhuhXGZ9ilJSxM43nDjrUBERCzVS2cNOwvn8I575fPUobvuGL369EjhTC5661MDy+WAwxtvixbOmb9sx4yMnJN+Ols488faL1HNvD4l8kY/RCMLZ861z0c8anG4d7K9eYeffu6ezcNCcUE+g8+5YLfIpNvu3C/fKiX5xSOPfvs7dx971qC4Sl+4+FH4tz+bOZYydFD8uHfCvOR//JeDTxw0n+G8d/IZuSh9vWJGsd6/+4etcr1Jrt/ymJpFXJAn8R43b428Nr61wu//6/OpW5J0K8TvJ75M+xTjiiLj7TfceCsQsbkGlz+H2EBl6rQviKekXR946dB5b9t36ckickYXn/v03l8cvPP20StPG73yg6OfnScc+/R7xi8/SThx6ZsmL37tU+tufmbXz/df9OqJj/z6yAeOe/BdR9/6hiNDWThCUTjvmWx/7t/0q1R7g/n722f+TBWOzJuj/vBZoXrx5ZgvvTDnuufnfOWFttc9L36Uisg57iNTr9GcdPOx5+8QHj/35vahj4v2HXnNC0Jx4bgPrJ99EeesrXMuf1xepSbKH4VzFrXUMPHjcadvbP84N7rkOZeMHX/yP6vZ1UfNCMQshvXOvbm93kUttSKjxy7cpWYRF8SP+rXxrW1vsMOWJN0K4zLtUwwn2MTG22+48VYgYkMNrnwesdGKp8tH3vfbe+a/bujCufsuee/wonnDl0256JSRRe8dWfRu4einThq75C3C8U+8buLCV06c+7K2Z/3m+If/zfC8ox94x5G3vP6IduGc/eT0YRxROHPvahfO725ThaMfwBF5c8y1z8y5djpmZvNmxunCuS6cdvGsvb5TDz0WrtsRfv770yv6yX3TUTH9YcslPrzUZ0sQEREbpCqch97967847RWPnP3GXef//u6F79jziXe2XTh3z8fnDn38bcK9C980fMHr2p77ypGzXzbykRe3Pe1Fw6fO2fOeI7f/fvCPrwmmC0dGjigc+SpVZ+HIyGkXztXPzL4ydd3z8cKxR07vHEp4Y/T0hyefcls5m1GrLcFCrPz+jojYV4rCGXn0uS0ffePm97x486kv3/bhV20783Xbznx92zNeO3jma7af8SrhvaefeP/pL2/7oZc88IEX3z/v14UPvPe4+//g17a//YifvSn4wfte2S6c8w52FM6L/0ovnOCS2fNw5JGc9tumIp2jvURlzJsSfie33f3Y3uED8pyWcOq0mXs2D7ffJT335tSXonzdEkRExAYpj+F87rsHH3tg8J8//MbvvflFy9/+mz+Y+1s3n/Tbbd/+W8tPevEPp/zR3N/48dtfJPyntx3/k7ce++M3HdP2jUf95A1H/Oi1wfL3vXLy59s+9+3HEwpnjyoc+a/8yOKpgzkHpztHOvMuKnmWTkS5zfL4T6899hN7jvvwncfPXTZ9Ysn71x537oPHfPZgOWuv55Zgl1b+ejQiYh85ddbx0Vf86nM3PGF+RcSNkdZzIm+OPudAx3k4kcJZsK/93eIXjU45++HG7Y8vlrZrR/nMEddEFRs8c3o/YhOt/P0FiFmt/F6DmN1Ln27vveLfiw+3PxXnoieDTzwVXPSrtuLCwoPtozHyX3lBed7jwdm/bP8rr1Un3kSMFE47cvYE8zYHp2074sODR57eNjjrIekRC3ZKg3P3tEPo3L3TXjA0e1kqrkVExHI8Yw9i8xS9MT9h7z1tZ/urwIXzZjz14ekfPzCjnCL+PXlH2/c8NP11VPKbN0XPGAvntG3twpmKHNU5RuWAtmq8NiNiE5X7P2KDPAKxmfbwfiG/tUG+l+pl2+a88+GXXPPYsQsfWfyXP8KG2pp4CBERsc8NPnIgOOXh4FU3By/+b5HC6eZsH6gKCgcREbFF4XhEELQ/5ojCQUREbDkUzm5oAsuX3UDhICIiKl0Kp/KNxFT7p3AqP80JEY1W/uDAQxNGpHD8sK8Kp/xXAAHAjvePPDw0NQ4KxxspHACoEO8feXhoqoRNDz/+nX/em1UxV1hK4Yin3cp3vH6QwgGACvH+kYeHpkqQuZJVMVfoXDhBJ5n+6BROOVI4AFAh3j/y8NBUCaJV/vWhx7KatXD0v2OmaKFwypHCAYAK8f6Rh4emShCtcs+Dj2a1kMIxHtiJTIxc5TijfSTGpXAAoEIa8cjT0+eR7h+a1JNdplm6XGnNEa1y9wOtrBZ+DCfeM5HBSbuWcUbLRDSaWji9/u2V9tehcABqSCGFE8To0cNULx6vIg9NkRuS+gvM1ypqLl9TR7TKxvv3Z7Xw83DshWPZnSicQqRwAKBCiiqc5j5MxQvH8mMcCseIaJW7fj6R1W6O4eh7S6R8jIWTNNEyo5rY0573SXvhJP2SI79Yxyn6dOOwnv69KByAGtK7wkl6VHF5vGqZnm4iD4mOs2R9aApiyRFoNaIwTjEOSFqUcbw3iFa5875x3fmLrk+d0n3hBAlNkvrc6jJj0tIwyayFk/SXskzRHw3iY+IXjMvsXgoHoIb0tHDijyruj1fGMZZHs6RZsj40JRWOvVXiOM7lX9tIRKtsuHdMKWJGapkiLLZw1H5i2euSngGNT75d7ml9qKVw7EFi+fXmeMQo4c9E4QDUkN6dh5Pp/6YzPV5lmiXrQxOFUwjtwtk+qjubNJ2XdYt9lSqy5yTtnPEx7hPJG7s9KhzHR5v4Wnr3J6NwAGpIr1+livzY6MKJEB8fH9DPhfOzweGIKmyk8QFJhXNcPb61gZ7Jqr1w4qHoWDipfxrLApMmdimFA1BDKJx8x3Di440x08+FM7BtX1yVN8ZrOwpn3s7ghBspnEabVDhJjwM5CsfxGE7kYE7ht5TCAagh9S+c+P/iZZol60NTapMkTY8fzEmaaFmsN7QLZ6vZdt4kXFXDwokfZ0B3sxaO8ReedUr88UE9RPTu70jhANSQks/DcXy8ijwcBQ6FkzRL1oemyA1JukqfGB8QdjaMcWJkroL/rlUjWmX9lqGsuheOeOrERhiU8pnGPeoWdykcgBrSiM807ukjHg9NvUC0yrrNe7LqWDjxooY6E5qO4Rgp4f7eI3kYAaghPTqGU/kDjvsG8NDUC9qvUm16OKuOhVPtroWZXL7shpBjOABQBT4dw8nXVzw09YL2e6k23Z/VLgunVo2N0nIKp3J5GAGoId4/8vDQVAmiVf5l07as5iicSNUMTBGSOrWRwgGAqvD+kYeHpkrY9PDjIleyKuYKsxeOWqksHPGfcOb0D/FjvHAi2eNSQfqY1PGXX3aRGLB752b540fO/JD4UfwrfxTTxY9ijPsumrTGRvQbhQMAVeH9Iw8PTY0jV+EE8gRkmTfTl8NgyZIl5RfOX//3b4gB99x1u7j80P13qkNJ4rKYIqaLy2KM+y5K4dRfcQMRsYZW/uDAQxNG7KpwwooL55Yf3igGfG/pd8Tl22+7WRWOuCymiOnishjjvotSOIiIiH7oWDhBjOm8ib2hvGPh1sKRR2BUosTHRMaLYfJ1KDV+cOt68eM3vv4f1NJk88jjNmK6uCzGJM2uViFGfvlLn4+vUUy//LKLfrruVgoHERGxWboXzoCGLJxgpnD06R0LNyGv+u4N/10ebJH9oI60JBWOTBcxXh6riY+X9SKnyFNx3GeXr3NFZlFbKC9QOIiIiA0yd+HoJ+LYC8f4owoSOV2dD5xUOPKk4vj4L3/p8+JHmUnyYI6cIk/CkUdmLLO7b2FDC6fyl0ERERErsbvCCXMXTtKxnayX5QEWGTDy5Sd5+o18iUpc674o92H1NKlwyj5/HQAAoGoyFU6UhBNxHAtHP0KSNIt+OekgjDpJJph5sUkevZHIU44tsztuoQeFU/nmIToq9+TKNwMR66B4QMgxV6bCacXeS6WfiJPjvVTqLBf5Lu/UV6mSTqTR3yQeWVEw87Zxy+wuWyjnpXAQy5HCQUSlKpwNA7euXLHU8vXT4loxRg42Fs6xc3dYCmdgYGDJFDJxhPKVKTUxsmGWfmjNJEQw9YqSSpGkwmnNvBlKqL8ZqjVzsEWdctOaOWIT2R7j7PYtFBsmxjf6vVQUDjZOCgcRlbJwRLoId+64Z3ho0DhMTBfXymGtXIXTSTh7Tk7sKAqWL4WDfkjhIKJSFs7KFUtFwKwbbNkVY8TIVvbC0Y20TuW/AWz1oHD4y2IldlM4xp3Wyz25kEfg/vl1YXOVhSP+HR4aXLtt0q4YI8d3UzhYQzMVTuRBzPgjD3RYifbCse+WffKUHXltvfuFeP8bw+aqCkf8u2brhO78RddHpqiRLoUDDYLCQT+kcFLtvnBS5/Lvl4YNtbNwxpUib6T6xFYRhRM9IwdqQO7CifeMPiV+JDx+eDxpJGIOLYVjbG/ji+apr6Tbd+Ok9RqXnzosdaWRy5m2PHWTLJsaGRO/yYiVqxfO6i1jUpU3UjW9lbdwIvcUeZpxZGq5T+nQQS8Kxz7MPhIxn5kKJ2mHjE+0TDHuxpEBqSuNDItnTOqmOm68/TfgsihL6qSuGrFk9cK5Y/OoUIVN5LKw1UXh6Jdl3sx8NE4482VVBjL1jxpmHG+/ts/JeqZx0sOv8WEwPix1ImI+kwrH+FxcbOEkbZJ9gY7lYJ/LfotcfhXuvwfH/x/hjox1sLNwRrSkGZHqU1rdFs70J/5pX0s1+4l/8afdSBcZLxvH2xuGwomTr3Asj8OW/8/VSRqJmM9GFE78XpC0halbFb/fGRfu8qtwvGMm3Rz7rUasRL1wVm0aFoqYkReUakqrwMIJUwrHMoXCKZzSCidpUUk/ImbSUjj2qGiltUTSlByFkzqsm8JJ/RU5LtyxcLLeTMQy7SycfXZbuQon/r8VCV9LFUTmMj4XRwbLC/q/SfPGZyF1FJUUjuMTCqK7xsJJqpTIDmyZaFlal4VjvMu4F47lctJW2Ree+nvoZtWIJat/Hs76rbvsZvo8HEUQ+25x7Wupgs7pHXMlPR3rV8VrJ2le/Vr7yD4kxyf+2R/5LQ/jCvtIxBxmKpxW54ss9omR2e27ceraI7O3HMrBOFd8+UnDHBfu8nuIxw/3Yqyn+mcab9y+w26mzzRWxAtHPxGn+8KJX04tHJe19BV8awP6Id/a0CMt//9iH4xYob37XipFQuGEFE59oHDQDymcHul+lIa8wfrYu+8WVwRxEk7EicwVeRZOTRQKJzcUDvohhVOg9he83CciVqUqnEyG3b2XSj8Rp8t3i1M4hUDhoB9SOIioFA8Iu7MTZi+cgYGBJVMEMy9TyVem1ETjM2/S4R17rpgOGpmv7aYKfMJSOJvvvh0REbGJFlU4c+Y+5PitDTJvps/JITZqgKVwVq9choiI2ES7LZwT0wtHx3LuDVSF/VUqAACAJlJy4UANoXAAAMA/KBygcAAAwD9KLhxepaohFA4AAPhHCYUTqRp5mnFI6tQGCgcAAPyjnMLRL8u8mflonDD+gcb6YPf+Mb6pnHZygcIBAAD/KLFwpj/xT/taqm4/8a+b8aCgcAAAwD+qKZwwpXAsU1ILx2VpoEPhAACAf/S6cGIf95f0tVRO37wZGRxon1ecmkDGJRhn77eXtygcAADwjxIKJ/Ld4trXUhXw3eLxsHGf17IQ+3I8g8IBAAD/KL9w9BNxui+c+OUchZO6cL+hcAAAwD8qKpywtoWT9MKZx1A4AADgHyUUjuOJOJG5Itvpfsgl67z9edxGh8IBAAD/6HXhhLH3Uukn4nT5bvFCLvMqFYUDAAD+UU7hDAwMLJkimHmZSr4ypSYaty3p8I7L4ZekV5ri0x1n9BgKBwAA/KOcwom8HjV7Tk7/5UQNoXAAAMA/SigcHcu5N1AVFA4AAPhHyYUDNYTCAQAA/6BwgMIBAAD/KLlweJWqhlA4AADgHyUUTqRq5GnGIalTGygcAADwj3IKR78s82bmo3HC+Acah+bv6zQsLY7LogiqCBQOAAD4R4mFM/2Jf9rXUiV+4p/LFCOWYbnDxvsionAAAMA/qimckMKpERQOAAD4R68Lx/QKkfFrqXJ+L5XxNSzjS1GWF7CMY/RF+R05FA4AAPhHCYUT+W5x7WupMny3eLxwjGWi14h9malhY9kYz6BwAADAP8ovHP1EHEvhJB3hSQqY+EQKxxEKBwAA/KOiwglTC8d4OSy0cBxfI6NwAAAAGkcJhRM/HGM8EScyV9KPvTiGE5/OMRwKBwAAGk2vCyeMvZdKPxHH8b1UqYVjn+i+zJDCoXAAAMALyimcgYGBJVMEMy9TyVem1MT4LElTIu2RdJZOfCHGZbrMHj/E5BkUDgAA+Ec5hRN5PWr2nBzTS1RQMhQOAAD4h/6k5mjIN2/6BYUDAAD+IZ/ONgzcunLFUvFMl6S4VoyxFM6xboUDNYTCAQAA/5B5I9y5457hoUHjQRsxXVwrh3UUzqk7gxNuonCaDoUDAAD+IZ7LVq5YKgJm3WDLrhgjRnZZOLxKVUMoHAAA8A/xXCae4IaHBtdum7QrxoiROQonUjXyNOOQ1KkNFA4AAPiHLBzx75qtE3bVyDB74eiXZd7MfDROGP9A45BDPeVC4QAAgH9ohTMunL/oenlBqaZ0XTjTn/infS1Vnk/8g8KhcAAAwD9Ut6zeMiZiRiouS/UpRRZOmK1wjFOgKCgcAADwD9Utd2weFaqkiVwW5iuc2Mf9JX0tVfrnD+sX9B/12SOviFkWCAoKBwAA/EMrnBGpCpuZvJmenrtwIt8trn0tldN3i0em2HuGwskBhQMAAP6humXVpmGlyht9YlGFo5+Ik69wjDfEeJAnnj0Qh8IBAAD/0Apnn+5U3nRMKbRwwqIKJ/46F4WTFQoHAAD8Q30ezvqtu+zm+zyc+Hk4SSfiROaKbKf7mTYUTlYoHAAA8A/1mcYbt++wm/szjWcCY/r9U/qJODneLZ5UNZyBkxsKBwAA/KOE76WSr0YtmSKYeZlKvjKlJsZncTy8owZQOLmhcAAAwD+6+m7xXN/aIPNm+pwcU8NAyVA4AADgH8aDNnZDvnnTLygcAAAASe7CgRqSVDiIiIh9KIXjDcbCQURE7E8jhTOHV6kaC4WDiIiobBfOvEeCE9MLJ1I18jTjkNSpDRQOIiKiMlPh6Jdl3sx8NE4Y/0BjfTD9UwIUDiIiojJ74Ux/4p/2tVSJn/gX8pk2JcKZxoiIiMquCidMKRyXKVAUvFscAABA4l44sY/7S/paqpTvpTIuMzJeTeHlrUzYC6fyo4WIjso9ufLNQMQ6KL9JM6thxsKJfLe49rVUGb5b3HhVJGksA8AChYN+SOEgolIVTs5vbchVOPqJOAUWjn0AWKBw0A8pHERUysLJ/82b+Qsn7GnhJL34BUYoHPRDCgcRlbJwVq5YKgJm3WDLrhgjRrayF47jiTiRuSLPwvbDNRy36YbCC0f8CSrft7EPrW3hqEc5fUrlW5W0qZVvA2IhysIR/w4PDa7dNmlXjJHjwyyFE8beS6WfiJPj3eK8SlU4mQon8gBo/JEHSaxEY+EY/ierN/tn0mKNYVOH+4hxG+qwYYiFqApH/Ltm64Tu/EXXR6aokWH2whkYGFgyRTDzMpV8ZUpNND7zJr3SFJ8ePwTES1TuUDjoh/ZjOL3eLV0Kp7SNKfxWIDbOzsIZV4q8keoTW10UTuT1qNlzckiRGpC7cOI9o08xHpmPTEwaiZjDrIVj3yHjY4wTk6YYpwexYzhJM6ZuZOpyIrfFeNMy3UbEZqkXzuotY1KVN1I1vZW3cHQid6XeP3tDOr0oHPsw+0jEfHZzDMdlh7TsyZblJwWJZVHuG5DpzuV+c1I3DLH+6oVzx+ZRoQqbyGVhq4jCgRqS9UzjpEfppId6HkixHAspHMssNSmc+Oz57lzcMdFvOwtnREuaEak+pUXheEq+wrH8j6Tl/ygjh755IMUC7eZVqkyFE5/RuPz49HiiGBdl34CW6R6X485lLxz7hiHWX71wVm0aFoqYkReUakqLV6k8pbTCSVpU0o+ImcxUOC57qfue7Dg9KVGybrP9Hudye+03mXsiemBn4eyz27IWzrHOZxrL04wjU8t9SocOKikcx//NRHQ3d+G4HPdIHdN94SRFiH1RScNyFI7L7wGxKeqfh7N+6y67ps/D2RmccKNL4eiXZd7MfDROGP9A4yRyhJBlFrJKkeMT/+wPxZanAIV9JGIOc79K1UqoAuOYlmlP1qdb1hvf85MWFd8A+50lx50rvg2ZNgyx5uqfabxx+w67ps80zlQ405/4p30tle0T/+IU2yQUjoJvbUA/7PVnGvNcj9ggu/5eqryFE1ZfOL1YYEOhcNAPKRxEVHb93eLphRPESPhaKsP3UkWmq8vGifr4+Ej7Au0DjJsXWVGjoXDQD3tROLxYg9hQVeFkMsxYOJHvFte+lsr23eJJlRImFI5+wX1i6hrtm0HhINbH2n7zJiKWr3hA2J2dsLvC0U/EsRRO/LJj4bjP0uUyI5ebi6VwNt99OyIiYhOtqHBCCqc+WApn9cpliIiITbSEwomScCJOZK74ZQqnR1gKp/LDjIju5nvZHRG9tIRXqcLYe6n0E3GS3kuVegJMbOHZTrmJb577XMYVNRoKB/2QwkFEZWmFMzAwsGSKYOZlKvnKlJoYnyVMe+tT/OCP+jFf4aSu0bKiRkPhoB9SOIioLK1wIq9HzZ6TY3qJKuy6HHLMnm+NFA5ifSykcIK0b2EoVuNaylk1ot+WUzg60dZJHpb1adpylCbr7D1dUQ3JVDiRv6BlonEW+w5pnDe+fONE9420b5hxaZXfVdFFY+Ek7VRJuhSOfQ/JtMMYBydNdL8rIWL5heNIvnJQ9/1er7GbFdWQrIUT/9HyCJ/pwd9SOI5bYlmI44ZROM3V+8LJvRbEPrS2hQNl0rvCcX/0TrqqkMLJtGHxNfJU0hSzFk7SQbzUYfHxSUswzmhcVOohGstdL7JAy0Icb47LchBrbm1fpYIyqU/htJIfbB23xL58CsdvMxVO6v5jGeZSOEkzZroHWSYaF5i6HPutTrqDcBfAJlrJmcbyNOPI1NKf1WGW3p2HU2DhxFeRtFKX7bFsWHwMD+9NMalwkvafyDDjhazDknYb49Lsa3HZ4ZM2z/hj6s1xXCxiIyy0cHakfR7O9GWZNzMfjRPGP9A49OUM3qbQzTGcyESXB8bUR8v4Y36mlbqMdCkc4xSss1mP4dibwaVwLHtL94WTekNSZzSuznir47claRhiUyygcE50L5zpT/zTvpbK9ol/PX9ehxkKLBzLZfvE+IBMy7Evk8LpE7t5lSo+3tfCsdxq9/9rQKy/lRVOSOHUiGILp2V62LfPnmmBqWMsj+ouGxafzqN9UyztPBzjtUUVTtIu103h2LfKceMRm2UJhRM/2pnwtVTm76UKTF+pEB+cNDGMvUYWHwmFF07L9IidKRWMmRFZjmWl8cH6RPuGGVdd+V0VXSztvVSpS06a0WVjjMPcJ6bu1fatSr3ViE2xnMKJfLe49rVU6d8tLu9fxsuRC8aJxllCjhF1wmcaox/yrQ2IqKykcPQTcVwKJz4xTEgUx+xJmr1vqaRwAhOV3yOw0VI4iKisrnDCAgtHf4q0jIw8mXYfBt7AMRz0QwoHEZWVnIeTdCJOZK7IhaTL+SaCjqVwxFWIiIhNtNeFE8beS6WfiJP6Xir3wjEew0k9sAOhtXAAAAAaSjmFMzAwsGSKYOZlKvnKlJoYnyVywX45SHjblHEieROBwgEAAP8op3Air0fNnpPT++SgZ1KhcAAAwD9KKBwdy7k3BcILUpmgcAAAwD9KLpzS4AUpdygcAADwD18LB9yhcAAAwD9KLpxyXqWCTFA4AADgHyUUTqRq5GnGIalTGygcAADwj3IKR78s82bmo3HC+AcaJ5EjhCyzkFUKCgcAAPyjqMKZc5LrJ/5pX0uV+Il/RoptEgpHQeEAAIB/dFc4j+QsnLD6wunFAhsKhQMAAP7R68KJfdxf0tdSGb6XKjJdXU76uBs1Pj7SvsD4dub/hTYQCgcAAPyjhMKJfLe49rVUtu8WT6qUMKFw9AvuE+O/kH7Lm5DCAQAAH8nxjeRhd4Wjn4hjKZz4ZcfCcZ8lNPUMhUPhAACAB8insw0Dt65csdTyFeTiWjGmuMIJ61k4fZg3IYUDAAA+IvNGuHPHPcNDg8aDNmK6uFYOy1E48RNujCfiROaKX+514fRn3oQUDgAA+Ih4Llu5YqkImHWDLbtijBiZtXDC2Hup9BNxkt5L1YvzcOKzWMb0FRQOAAD4h3guE09ww0ODa7dN2hVjxMh8hTMwMLBkimDmZSr5ypSaGJ8ldH7rU2RimOUYTmRdxgNK3kPhAACAf8jCEf+u2TphV40MsxdOJB9mz8lJKIouG6PfEqVLKBwAAPAPrXDGhfMXXS8vKNWU3IWj43ioJEeicEZNbigcAADwD9Utq7eMiZiRistSfUohheNIvkTpz9eYuofCAQAA/1DdcsfmUaFKmshlYZmFA+VD4QAAgE9ohTMiVWEzkzfT0ykcv6FwAADAJ1S3rNo0rFR5o0+kcPyGwgEAAJ/QCmef7lTedEyhcPyGwgEAAJ9Qn4ezfusuu7k/DwcaAYUDAAA+oT7TeOP2HXbtn2l87NyHKJxGQ+EAAIBPdPe9VDspHG+gcAAAwCe6+25xCscfKBwAAPAJ40EbuyGF4yMUDgAAAIXjH/HCQURE7EMpHM9Y3Fk4iIiI/SmF4xkUDiIiYovC8Q4KBxERsUXheAeFg4iI2KJwvGMxZxojIiJyprF3LObd4gAA0PdQOP6RVDiVHy1EdHT5shvYYxFRKr9JM6shheMjFA42XQoHEZWqcPjWBqBwsOlSOIiolIXDN29CSOFg86VwEFEpC2fliqUiYNYNtuyKMWJki8LxlAILJwiCyvdt7EO7KZxydlrjWiITufsgFqIsHPHv8NDg2m2TdsUYOT6kcHzEsXDsj8byRx6isRLthWPfLdW18Qup87prL5zC7z7cE7GfVYUj/l2zdUJ3/qLrI1PUyNBUOHNO2kHhNBoKB5tuIYXjOD6fHMNBLM3OwhlXiryR6hNbFI7X5CiceM/oU4IZ9GsjE5NGIubQUjjG9g46iYzUp+vXOu7D8ZHxDYhMtNx99IkuWxJfsmULK//DIfZCvXBWbxmTqryRquktCsdrii0c+zD7SMR8Zioc4w5pvGCcvZVlHzYuM+napLuP5d6RNMa+2fZtRmy6euHcsXlUqMImclnYonC8xv1MY+P/chovGIelTkTMZ1LhGJ/NCyycpHWlrtR4rctajEuIj8m9QEQP7CycES1pRqT6lBaF4zVZC8fy+G/5X93I0XIKBwu0VoUT39vjg41rdAyS1HtTy3rX06dX/odD7IV64azaNCwUMSMvKNWUFoXjNSUUTtKikn5EzKSlcFJjo9jCSV245dpMC7SMsUxP2gBEn+wsnH12WxSO15RcOBzDwcI1Fo7L876xfIoqnF4cwzEu37Fwku6/iJ6pfx7O+q277No/D4fCaTqZPvEv6bHUeG38qHjq/0cj5jBT4bQ6X6ZJCpv4te7HguwLN84SWYVlxvjyXW5p/NZxp0Nf1T/TeOP2HXbtn2lM4TQdvrUBmy7f2oCIygK/l4rCaToUDjZdCgcRlQV+t7heONhQ9X1jMYWDTZPCQUSlKpxM2gun8huFhUjhYOOkcBBRKR4QdmeHwukHZeFsvvt2RETEJkrhoFFZOKtXLkNERGyiFA4aXcwZ4wAA0GQKL5zKT5fF3FI4AADgDb0onKpvE+SBwgEAAJ8oqnCOnfsQhdNQgiAIKRwAAPCLrgrnVFE4NyUVTo4lQ/ksX3YDhQMAAP6R4zkxdC6cyk+XxVQpHAAA8BIKp8+lcAAAwEsonD6XwgEAAC+hcPpcCgcAALykp4Ujnjojz6fxKVitFA4AAHgJhdPnUjgAAOAlVRVOMIN+lWVi5SXgqxQOAAB4SSWFE2mYVuzYTtIwLFwKBwAAvKTywtGnpw7DwqVwAADASyopnFbs5acghnEYFi6FAwAAXlJV4USmpDYMkdMjKRwAAPCSnhZOK+FcGs7DqY8UDgAAeEmvC6eV8EoT76WqiRQOAAB4SQmFg3WWwgEAAC+hcPpcCgcAALykuMLZQeE0UQoHAAC8pHeFI546sRFSOAAA4B89Kpz459tAnQkpHAAA8IveHcOBprB82Q0hhQMAAH5RcuHEDx1A5VA4AADgHyUUTqRqBqYISZ3aQOEAAIB/lFM4+mWZN+FM2IgfkwonU/+oYcbx9mv7HAoHAAD8o8TCCWSzyLyZvhwGS5YssTeJ5bJxvL1hKJw4FA4AAPhHNYUTphSOZQqFUzgUDgAA+EevC8f0xuSpvIldE5nLuLWRwfKC/m/SvPFZSB0FhQMAAP5RQuEMaMjCCWYKp3N6x1xJGxx5xSoeNqmFwzk5ESgcAADwjxyf8x92Vzj6iTjdF078svuZxhSOhMIBAAD/kE9nGwZuXbliqeWD/cW1YkxxhRNSOPWBwgEAAP+QeSPcueOe4aFB40EbMV1cK4flKBzHE3Eic0W2MzVRKJzcUDgAAOAf4rls5YqlImDWDbbsijFiZNbCCWPvpdJPxOny3eIUTiFQOAAA4B/iuUw8wQ0PDa7dNmlXjBEj8xXOwMDAkimCmZep5CtTaqJx25IO79hzxXTQyHxtAb8+L6BwAADAP2ThiH/XbJ2wq0aG3X1rg8yb6XNyiI0aQOEAAIB/aIUzLpy/6Hp5Qamm5C4cHcu5N1AVFA4AAPiH6pbVW8ZEzEjFZak+pZDCgRpC4QAAgH+obrlj86hQJU3kspDC8RsKBwAAfEIrnBGpCpuZvJmeTuH4DYUDAAA+obpl1aZhpcobfSKF4zcUDgAA+IRWOPt0p/KmYwqF4zcUDgAA+IT6PJz1W3fZzf15ONAIKBwAAPAJ9ZnGG7fvsJv7M42hEVA4AADgE73+XipoChQOAAD4RK+/WxyaAoUDAAA+YTxoYzekcHyEwgEAAKBw/CNeOIiIiH0oheMZizsLBxERsT+lcDyDwkFERGxRON5B4SAiIrYoHO+gcBAREVsUjncs5kxjREREzjT2jsW8WxwAAPoeCsc/kgqn8qOFiI4uX3YDeywiSuU3aWY1pHB8hMLBpkvhIKJSFQ7f2gAUDjZdCgcRlbJw+OZNCCkcbL4UDiIqZeGsXLFUBMy6wZZdMUaMbFE4nlJg4QRBUPm+jX1oHQqHnR+xJsrCEf8ODw2u3TZpV4yR40MKx0ccCyfyAG78kQd5rERL4QQavVi1WmwJO7++Cu5riEmqwhH/rtk6oTt/0fWRKWpkSOH4CIWDTTepcOw7bbGWXDiImGRn4YwrRd5I9YktCsdrchROvGf0KfH/ZY7/f3TSSMQcGgvHsl8ZD+zo+6Q+LH6t8VhKZK6keV02xriuyDDH1RnvhpX/vRB7ql44q7eMSVXeSNX0FoXjNcUWjn2YfSRiPjMVjnGHbLm1jXGuyLD4wi1dkene0c2di7sb9o964dyxeVSowiZyWdiicLzG/UzjpAdz4yNwfFjqRMR8FlU4xjH2PdaxcJK2PNO9w71wMm0Domd2Fs6IljQjUn1Ki8LxmqyFY3mYtfwfpU7SSMR81qpwUvf21I3pReHo21b53wuxp+qFs2rTsFDEjLygVFNaFI7XlFA4SYtK+hExk7UqnNQ1pm5MjwrHZXsQPbCzcPbZbVE4XlNy4XAMBws303upyiyc+hzDSbp1iP6pfx7O+q277PJ5OH6T6RP/7P8/mHp43N5CiPnM+nk4SRMtl4NO4iPd9/bULUxal7oq0+riIyv/eyH2VP0zjTdu32GXzzT2G761AZtuCZ9pXGYYECGI3cj3UoGCwsGmS+EgopLvFgcFhYNNl8JBRKUqnEyGFI6PUDjYdOvwzZuIWBPFA8Lu7IQUjo8YC2fz3bcjIiI2UQoHJMbCWb1yGSIiYhOlcEBiLJzKDzMiupvvZXdE9FJepQIFhYNNl8JBRCWFAwoKB5suhYOISgoHFBQONt0SCqcm7+Du6WbU5DYidimFAwrHwjF+krzl4+VbCZ+Nb9Q4b3z5xonuG2nfMOPSkrY2de35fg+YT5fCcdwNUmfP/afMOotxvONC8u1pJeyf+r2y1+vCvpXCAYV74cR/tCSBYy0kXWtcvn3JSQtx3DDHwnFce+p0LFDHYzhd7p8l/ykt+3M5qyv51iEWJYUDil4UTtb//exR4WTasPga3Z9isk7HYs1aOIX0dmS3iaSy8XhR6gA1MWlMZNVJfR5fV9KKcs8S32DHX05kXuNmI3YjhQOKOhRO5NpMy7EPdl9g/BbFByetIut0LNZqC8eyz8Svcrkf2TcjstJ4PxgXa1lRplmSluPyyzH+CSgcLFwKBxS9OA+nwMKJryJppS7bk1o49sEUTj01Fo5xd41ccNG+tyc9g8d/zBQMLouyXE5abOqOmjqL45JTh6X+ZhBzS+GAIt8xnMhE++O8ZWJ8gHspOS4wdZak9dofxiPRZd8A7KnFHsPJNFeOwomXUo8Kp9W5l1pueNKO7b7BFA7WRwoHFIUUjuWyfWJ8QKbl2JfZ08Kxj3S8yViIvSucrHu1S+GkLiR11e6Fk3vtWWehcLA+UjigKKpwWs6PyRZd5koak+nhNHV2/X9jc6w9dToWaLHvpeqm27MWjmNF5CucHH2Ve4MjM2YqnKQNQ8wnhQOKAgunZXqgS0oFo8bMiCzH/rAZX2l8G4wb5lg4SWux3N4cvwfMZLGfh5O0V7jfBeyLdd95kvb51C3MtPMn7a4u2xZZTmSDjb+c+K1L+t0i5pPCAQWfaYxNt0efaVzs027upfX02b8maVGTzUA/pHBAUXLhBCYqv0dgo6VwanIbm7sN6JMUDig4hoNNt+bfvEnGp/5+Kt8G9EkKBxTGwhF7CCIiYhOlcEBiLByABiEe0KreBACoCxQOKCgcaDoUDgAoKBxQUDjQdCgcAFBQOKCgcKDppBZOEARdrqL7JRRCTzejJrcRoEsoHFA4Fk7k/d2WicZZ7NtgnDe+fONE9420b5hxacZbZJnouG3GwalrhyRcCsdxN3BZguMs8SV0P95xIfl2nhJ2OX3n7/W6oG+hcEDhXjjxHy1Pypmer43ZkDRX0pKTFuK4Yd0XjuMGGEfGt4SnAHfshZNpN7AsoeQEtexO5ayup7B7Q++gcEDRi8LJ+r+fPSqcTBsWX6PLViXNa9lgxzE8BbiTtXAK6e3Inz4eqJH9xGWAXsvGMZFVJ/W5pZaNS84xS3yDHX85kXmNmw3QDRQOKOpQOJFrMy3HPth9gfFbFB+cNMb427Asx2UMj/buVFs4ln0maVexT7RvRmSl8X4wLta+i7rPkrQcl19OfAuNawToEgoHFL04D6fAwomvImmlLttj2TCX58GkZxD7LyT1cTvHrwt0LIXjvhukLsHlj2v5MbLPWCY6LspyOWmxSTfcZZ/PtOTUYam/GYDcUDigyHcMJzLR/jhvmRgf4F5K7uWQqXCMU4zLSd0Sx4duCqdLSisc+/LtP6qdIV5KPSocfXWWmxBfSGQWlw2mcKA+UDigKKRwLJftE+MDMi3HvszeFY7jZrg8dLs86YCdpMJJigT3323WvdqlcFIXkrpq98LJvfass1A4UB8oHFAUVTih82OyBZe53J+2LA+nqbPr/xtrnDdTEbn/olKnQ5ysheN+Va8Lx7Ei8hVOjr7KvcGRGbu5RwB0CYUDigILJzQ90BlTIQljZkSWY3/YjK80vg3GDctaOO4b4L7S1IWAEZfCcdwN4nMZL1smpi42aU9ImhhfS+oWZtr5k3ZUl22LLCeywcZfTvzWGUcC5IbCAQWfaQxNx1g43T9pFvu0m3tpPX32r0la1GQzwA8oHFCUXDiBiZ6uEbyHwslNHe59ddgG8ImuC+eR4AQKxxM4hgNNp+bfvEnG2+GXA8VC4YDCWDhiD0FERGyiFA5IOIYDAAA+QeGAhMIBAACfoHBAQuEAAIBPUDggoXAAAMAnKByQUDgAAOATFA5IKBwAAPAJCgckFA4AAPiE/qTmaEjh+AiFAwAAPiGfzjYM3LpyxVLLx+aIa8UYCsdjKBwAAPAJmTfCnTvuGR4aNB60EdPFtXIYheMrFA4AAPiEeC5buWKpCJh1gy27YowYSeH4CoUDAAA+IZ7Lli+7YXhocO22SbtijBhJ4fgKhQMAAD4hC0f8u2brhF01MqRwfITCAQAAn9AKZ1w4f9H18oJSTaFw/IbCAQAAn1DdsnrLmIgZqbgs1adQOH5D4QAAgE+obrlj86hQJU3kstBQOPN2BidSOJ5A4QAAgE9ohTMiVWEzkzfT0ykcv6FwAADAJ1S3rNo0rFR5o0+kcPyGwgEAAJ/QCmef7lTedEyhcPyGwgEAAJ9Qn4ezfusuu4bPw6FwPILCAQAAn1Cfabxx+w67hs80pnA8gsIBAACf6Op7qSgcj6BwAADAJ7r6bnEKxyMoHAAA8AnjQRu7IYXjIxQOAAAAheMf8cJBRETsQykcz1jcWTiIiIj9KYXjGRQOIiJii8LxDgoHERGxReF4B4WDiIjYonC8YzFnGiMiInKmsXcs5t3iAADQ98QLZw6F03CSCqfyo4WIji5fdgN7LCJK5TdpZjWkcHyEwsGmS+EgolIVTvff2kDhNB0KB5suhYOISlk4hXzzJoXTdCgcbLoUDiIqZeGsXLFUBMy6wZZdMUaMbFE4nlJg4QRBUPm+jX1oIYXD3ovoh7JwxL/DQ4Nrt03aFWPk+JDC8RHHwok8/ht/5DkCK9FYOMa90bKLFrj36oviToFYsqpwxL9rtk7ozl90fWSKGhlSOD5C4WDTdS8ciz0qHEQs2c7CGVeKvJHqE1sUjtfkKJx4z+hTghn0ayMTk0Yi5jDrMRzj7pd64MVxN44MS5qeNLtxCiK6qxfO6i1jUpU3UjW9ReF4TbGFYx9mH4mYzxyFY9lRLTO6LKeVdmdx3IykLUFEu3rh3LF5VKjCJnJZ2KJwvMb9TOP4/3sap0fGu09EzGe+YzjGiUm7Yqbd2L1wUiciYlY7C2dES5oRqT6lReF4TdbCcf+f38hBeOOhe+OMiJksqnAs+2FphdPS7jKV/2IRm6heOKs2DQtFzMgLSjWlReF4TQmFk7SopB8RM+nTMZzUm4CIdjsLZ5/dFoXjNSUXDsdwsHALLBz7jC7LaXVXOPF5ETGT+ufhrN+6yy6fh+M3mT7xz/6/malH3e0thJjPpMJJ2vHypYVxafGJ+lWtXPcC4wIR0VH9M403bt9hl8809hu+tQGbblXf2kCEINZQvpcKFBQONl0KBxGVfLc4KCgcbLoUDiIqVeFkMqRwfITCwabLd4sjolI8IOzOTjhbOI8EJ9xI4fiBsXA23307IiJiE6VwQGIsnNUrlyEiIjZRCgckSa9SAQAANBEKByQUDgAA+ASFAxIKBwAAfILCAQmFAwAAPkHhgITCAQAAn6BwQELhAACAT1A4IKFwAADAJygckFA4AADgExQOSCgcAADwCQoHJBQOAAD4BIUDEgoHAAB8gsIBCYUDAAA+QeGAhMIBAACfoHBAQuEAAIBPUDggoXAAAMAnui2cEykcT6BwAADAJygckFA4AADgExQOSCgcAADwCQoHJBQOAAD4BIUDEgoHAAB8gsIBCYUDAAA+QeGAhMIBAACf0J/UHA0pHB+hcAAAwCfk09mGgVtXrli6fNkNSYprxRgKx2MoHAAA8AmZN8KdO+4ZHho0HrQR08W1chiF4ysUDgAA+IR4Llu5YqkImHWDLbtijBhJ4fgKhQMAAD4hnsuWL7theGhw7bZJu2KMGEnh+AqFAwAAPiELR/y7ZuuEXTUypHB8hMIBAACf0ApnXDh/0fXyglJNoXD8hsIBAACfUN2yesuYiBmpuCzVp1A4fkPhAACAT6huuWPzqFAlTeSykMLxGwoHAAB8QiucEakKm5m8mZ5O4fgNhQMAAD6humXVpmGlyht9oqFwTt1J4XgDhQMAAD6hFc4+3am86ZhC4fgNhQMAAD6hPg9n/dZddg2fh0PheASFAwAAPqE+03jj9h12DZ9pTOF4BIUDAAA+0dX3UlE4HkHhAACAT3T13eIUjkdQOAAA4BPGgzZ2QwrHRygcAAAAe+FgQ40UDiIiYh+aVDg5DgohIiIi1kQKBxEREf2TwkFERET/pHAQERHRPznTGLFu6vfQyjcGEbGh8m5xgFqxmPf7AwB0DYUDUB+CIAiTC6fy471YicuX3cBfH/tZ+U2aWQ3dCmc3APQecS+mcDAuhYN9riqcXnxrg3jsrfwGInovhYNGKRzsc2XhdPHNm48EJ95E4SBWKIWDRikc7HNl4axcsVQEzLrBll0xRoxsUTiIdbIXhSMWWPntwi6tQ+GwI2GFysIR/w4PDa7dNmlXjJHjCywc9n/ELs1aOJE7nfFH7pgeaCmcQKMXq1aLLWFH0lfBfou6qnDEv2u2TujOX3R9ZIoa6V44QQy53jL3f0S/pXDQaFLh2HeAYi25cBB1OwtnXCnyRqpPbOUqHPsGsHMidmk3hRPvGX1K/H/zk/5vpacHBDCfxsKx/I2MB3b0v68+LH6t8VhKZK6keV02xriuyDDH1Rl36cr/Xli4euGs3jImVXkjVdNbxRWOy/6PiC72qHDsw+wjsQ5mKhzjH7fl1jbGuSLD4gu3PNpn2tO62VHZdf1WL5w7No8KVdhELgtbPSucpDsXIqaa40zjpDug8VkjPix1ItbBogrHOMb+13csnKQtz7SnuRdOpm1AD+wsnBEtaUak+pRWz87D4UESMbe5C8fy1GD5v+DI3Zk7b22tVeGk7jmpG9OLwtG3rfK/FxauXjirNg0LRczIC0o1pdXLYzjGEELEVMssnKRFJf2IFVqrwkldY+rG9KhwXLYHG2pn4eyz2yrrVSpEdLeqwuEYTs3N9F6qMgunPsdwkm4d+qH+eTjrt+6ym+PzcPIVDnsaorv5PvHP/v+wqYf07S2EdTDr5+EkTbRcDjqJj3Tfc1K3MGld6qpMq4uPrPzvhYWrf6bxxu077Ob4TGPHwmkl3LkQMVW+tQGNlvCZxmU+XPPUgFnle6kQmy6Fg0YpHOxzu/5ucQoHsWIpHDRK4WCfqwonkxQOYn2kcNBoHb55E7FCxV1gd3YcC8dyRAgRC9RSOJvvvh0RsT8tqnCO7SycAABKJKlwVq9chojYn3ZbOCfcaCycyg9PYQ6XTx3WhoZiLJy519yJ/am4O1e+DYgVurz7V6koHI+kcBoNhYO6FA72ueUXjn5cvfIndIxI4TQaCgd1KRzsc8ssnCVLlsizBdqIC9bOce+fwO0TMtFFCqfRUDiom1o4vd49ytn95M6fY6u4d3hvaYUj8mb6UXiqbXTFVZZuSZXCKVAKp9E4Fo4cbJkYWWx8mGVwfHzlj3J9q0vh2P989llSN0CO6fU+4Lgxka0qYcOwcksrnOmjNzNJ0w6emcIxlgmFU4kUTqMppHCMV0UuGH+MDzauCEvTXjhJf+7UWZJ+TBrc032gm1vBzum95RSOnjcDAwNy4pKpV62WWAsn/jJW/BweY+GknuqjjiHpU9R0+0SPpXAajXvhzO18eNenGGexTLePcZkLe2Q3haPvV/p4+9KMy9eXE19sZKS+duNyLLfCuOSk1UUuJC3fvpxMNwTLt7zCSX5BKqFAgni62MPGPiySN/HLesbYJ3oshdNoKBzULeoYjstIy58+fiE+Peny3FgkGBdiHGNZncsw99+G4w3B8i25cNQBnFRdjtKkXmg5FI5xorFqKByoOZkKZ27ssTrsfHBWRK5N0r4uLF9L4ST9rS1/xEx/yjAhAJK2wTJj0lypS05dXeryLTctdW9PuoxlWnLhRF6lEsPsr1LF0yX+ZnMKh8IBSVGFYxyfdG18sakTsRwdCydpgI5lpH35kXXFF5s0eK5DgSTdCjWjfXWpy7f8NvSJ9m3L+qvDAi31TGMtcgTtPcPtTGP7ucQUDoUDkqyFY7kcH590rcu8WIlJhZP6Rw8TgsFxvcbZLUuw75AuS8u0wZElJC0/9ea4bxL3gqqspHCyvluc83AoHHChkMKJzxImPEMlLSdpDJZsIYUjdy3jYPuOFP/RZXrqDpk6l/uMmYZFfhvGtTv+QrA0y/zEv+nvB9R0/MQ/+5ukHN9LFXtPFu+lonB8I0fhGKdHFhsZE5+etJakhWA55i6cuZ0vwYSxp3jjjmFZpr4o+/4Tv5y0I1nWaNyTjde6DEv6bWS9IVi+fGuDtmEpL131gxROo+EzjVHXWDi93iUKX75xgezY6CLfvKmkcFoUTsOhcFCXwsE+l8JRUjgtCqfhUDio68c3b7IPY257VzgAUDLGwhH3cUTE/rSowpkz9yEKB6BCjIUDANC3dFU483YGJ95E4QDUAQoHAECHwgHwAwoHAEAnx/moIYUDUD8oHAAAHflguGHg1pUrllpO1xHXijEUDkBtoXAAAHRk3gh37rhneGjQeNBGTBfXymEUDkA9oXAAAHTEI+HKFUtFwKwbbNkVY8RICgegnlA4AAA68nPehocG126btCvGiJEUDkA9oXAAAHRk4Yh/12ydsKtGhhQOQP2gcAAAdLTCGRfOX3S9vKBUUygcgDpD4QAA6KhuWb1lTMSMVFyW6lMoHIA6Q+EAAOiobrlj86hQJU3kspDCAagzFA4AgI5WOCNSFTYzeTM9ncIBqDMUDgCAjuqWVZuGlSpv9IkUDkCdoXAAAHS0wtmnO5U3HVMoHIA6Q+EAAOioz8NZv3WXXT4PB6DOUDgAADrqM403bt9hl880BqgzFA4AgE5R30t17NwdFA5AhVA4AAA6XX+3+I0UDkAdoHAAAHSMB23shhQOQP2gcAAAuofCAagb8cJBRMQcUjgAtWJxZ+EgImI+KRyAWkHhICIWIoUDUCsoHETEQqRwAGoFhYOIWIgUDkCtWMyZxoiIRUjhANSKxbxbHACgaygcgLqRVDiVH+9FRCxf+U2aWQ0pHID6QeEgIipV4fCtDQBNh8JBRFTKwunumzcpHIBaQOEgIipl4axcsVQEzLrBll0xRoxsUTgAtaTYwgmCoISHoNS1lLMZZa4IEctRFo74d3hocO22SbtijBwfUjgA9SNr4dif09W18Qup87rrWeGQSYj1URWO+HfN1gnd+Yuuj0xRI0MKB6B+9KhwHMfn07PCQcT62Fk440qRN1J9YstaOHNOonAAqiRT4cgn9MjTetBJZKQ+Xb/WPt648MhmxLfNuNjcK3IZWeCKLDc2MgURe6deOKu3jElV3kjV9Fa8cE7dGZxwE4UDUAe6LJwgVjtJF4yztzpLIGmxlmVaNsN9Rd2PzDd7piUTOYglqBfOHZtHhSpsIpeFLQoHoMa4F47x2bbAwklaV+pKMy2zVhPzjUfE3tlZOCNa0oxI9SktCgegxtS8cIJOjCu1LDM+e/cjC5w9dSH69Gof9hH7RL1wVm0aFoqYkReUakqLwgGoMZkKJzU2ii2c1IXHr7LM3ouRBa4otWGIHMQS7CycfXZbFA5AjXEsnKSoiARM7wrHklVJI7tMKfdNKqSFXFZX4MM4IhrVPw9n/dZddg2fh0PhANSGLgun1fkySlLYxK91PxZkX3hkLS4rik8sZJOyzh4fad+wyh/5EftB/TONN27fYdfwmcYUDkBt6LdvbSAVENFit99LReEA1AYKBxFR2e13i1M4ALWBwkFEVKrCyWRI4QDUj34rHEREi6JwdmcnpHAA6oexcDbffTsiYn9K4QD4gbFwVq9chojYn1I4AH6Q9CoVAEB/QuEA+AGFAwCgQ+EA+AGFAwCgQ+EA+AGFAwCgU1ThHDuXwgGoEgoHAECnq8KZtzM48UYKB6AOUDgAADoUDoAfUDgAADoUDoAfUDgAADoUDoAfUDgAADoUDoAfUDgAADoUDoAfUDgAADoUDoAfUDgAADoUDoAfUDgAADoUDoAfUDgAADoUDoAfUDgAADoUDoAfUDgAADoUDoAfUDgAADoUDoAfUDgAADoUDoAfUDgAADoUDoAfUDgAADr6Q6KjIYUDUD8oHAAAHflguGHg1pUrli5fdkOS4loxhsIBqC0UDgCAjswb4c4d9wwPDRoP2ojp4lo5LFo4J1A4ALWAwgEA0BGPhCtXLBUBs26wZVeMESMpHIB6QuEAAOiIR8Lly24YHhpcu23SrhgjRlI4APWEwgEA0JGFI/5ds3XCrhoZUjgA9YPCAQDQ0QpnXDh/0fXyglJNoXAA6gyFAwCgo7pl9ZYxETNScVmqT6FwAOoMhQMAoKO65Y7No0KVNJHLQgoHoM5QOAAAOlrhjEhV2MzkzfR0CgegzlA4AAA6qltWbRpWqrzRJ1I4AHWGwgEA0NEKZ5/uVN50TKFwAOoMhQMAoKM+D2f91l12+TwcgDpD4QAA6KjPNN64fYddPtMYoM5QOAAAOnwvFYAfUDgAADrdfrc4hQNQDygcAAAd40EbuyGFA1A/KBwAgO6xFw4iVmKkcBARMYfxwvmt80dk5Mz52GQ+28tERERErFCRN29dpxfOi858+Dcu3H38R3f82gcfymdw6iM5FRvTIE/N67xH8lrJLc27tbl/P83af8rf2gp+P7n32G5szq6e/09Z/mNIf/xiK9naJj0jVPIX6Wanzbu17x4M3rImOPHv24Xzkh8FJ9445U0zF0r2pi4sfWtPKN1KNjX3X6T8Neb//dyU32r29nx/kdLt6v6Ve6XlW/qDT79sbfmbWoX98OBTjTe220ZcePl324Xz2ze0/0VERET0yP8PfyFZpQ==) +&] +[s3; &] +[s5; The package organizer allows the setting of a number of things +affecting the package build process. The `"When`" column allows +control of when the item in the right hand column is applied. + In the above example, the `-I compiler option is applied with +GCC compiler and /I is applied with the Microsoft (MSC71) compiler.&] +[s5;l288;i150;O0; Target file override. Allows specification of a +name for the final executable. The default name is the package +name.&] +[s5;l288;i150;O0; Additional libraries. Allows specification of +the path and name of object file libs and shared libraries that +will be supplied to the linker.&] +[s5;l288;i150;O0; Compiler options. These are text strings that +will be supplied on the command line to the compiler. These +will be added to the command line [/ after] (at the end of) the +compiler options generated by TheIDE. These options affect all +source files being compiled, not just those from the [* main package], +however you can use [* build flags] and the `"dotted`" mechanism +(see [/ Package`-build`-configurations] above) to restrict which +packages the options are applied to.&] +[s5;l288;i150;O0; Link options. These are text strings that will +be supplied on the command line to the linker. These will be +added to the command line [/ after] (at the end of) the linker +options generated by TheIDE.&] +[s5; You can also set additional compiler options for individual +source files. In the `"additional dependencies`" list you can +specify a list of files that a source file is dependent on. +This means TheIDE will check these additional files to determine +whether a source file should be rebuilt.&] +[s5; The `"accepts`" edit`-box allows selection of which `"dotted`" +build flags are accepted and applied by this package. When the +[* main package] is built, the [* build flags] of the main package +are passed to all of the packages that are `"used`" by the main +package, however, dotted flags are accepted by a `"used`" package +only if listed in the `"accepts`" edit`-box for the used package. + Build flags from the main package that are not `"dotted`" will +be applied to all used packages regardless of whether listed +in the `"accepts`" list of a particular package or not.&] +[s6; Adding Dependent Packages&] +[s5; If a package uses other packages, then they must be `"added`" +to the using package. For example, the HelloWorld package in +the `"examples`" assembly uses the CtrlLib package which you +can see in the example [/ package`-organizer] dialog in the previous +section. The CtrlLib package uses the CtrlCore and RichText packages. +The [/ package`-organizer] dialog allows you to add or remove dependent +packages and you can also select the order in which the used +packages are built. Use mouse right`-click in the `"uses`" pane +of the [/ package`-organizer] dialog to do this. Alternatively +you can use `"[/ add package]`" from the Project menu.&] +[s6; Custom Build Steps&] +[s5; Custom build steps allow you to specify how files with a particular +extension are `"built`". For example, you can specify the invocation +of a particular assembler for assembler files or the Microsoft +Intermediate Definition Language compiler (MIDL) for IDL files. +You can even invoke the C`+`+ compiler with a custom build step +if you wish. To bring up the Custom`-build`-steps dialog, select +Custom`-build`-steps on the Project menu.&] +[s3; &] +[s0;= +@@image:2250&1693 +(A9ACHgIAAOL9AAAAAHic7Z0JfBTlwf8XkNPiBSIqh4ggAh5BPApGQQWUIwIJRzgCAcIRrgIKKnjV+ua1re9b622taP231Yra2tZqFbUvVbGAHKJyCiTZZDcHkGM3IYD7fyYTJsvu7OzszD67m+T7/Xw/+ew+88wzzzw7O88vs9fDDt+W3/gEnz/he9jhc4za0mz0NqFjxHeKI3fVOfagI/WQY0q+I6NQ/dsss8iR4XZMKXRMcys3pp1ycjFignkYMYFMdyEmkIFny9PPn+NUncrfUYW1N5y1N8Td2pJReY7h+YrihnK3UCkfXuS4ZYfvdETG+H69ckONGa3mVbZefrLD/b6LfqrY8zHf5U/4kn7pS3raN+hJxeRnFG95LqRqBcTE0eBwRYy9cX9GIAYYfIiq0732N5RKPDhdERuEIkW0WnRCRA5H0ucBqUMkjebT3SJsNF9U1vruH0RNLXL0eFxRpI5+v6pXxA9V/0JERERsWIr5XdX/rhob1GsOagzQFIX+d9WooKnmB2HrpSeFjskVjsH1FzocQ//jGJvrSN3TLKtY6JhXqiqyR4slnhZLa0QCcaw42WK5T6jeFn+1QvWGWthq2Q+tl9fVRETEYJst+gExcVSPSXVCV2dz1WbZNc2zjrWYX9kiq6zZTI9jRrljSu3fqeXibl3JzMN1TitR/oqSCUV1L8SIEmFanuO2rx3J++rzxqgtjikH6s0odMxyq9lDpA5VJXuEUFkquqSZVYaIiIgN0tklipnFzTKLmk93C5X3ak4uUJzgrFMECdXUQ4pjDwqbjdnnGLlPec+n9hZQETZu2OTo/KYSNgb8S1kq8kbqnjr9IoeWOupcUF6vVjivVKnjH3IQE0s3IiKGVMSJANVoERQnTiWKU7lCUw0YIl0Ib9nhSN5cpwgbImYIz3+l7sbQ/yifSQmRNzQDMoZSIiqoH1TJ8OuzmoIQERFRc5Kz3wr3qt8fzflzRc47/pbXWlbn20cV3xIeyVlX658O57xRmvNGifjbd3GeY2K+2mDLdOfcZ4qcJcd9Npj7lLvlxFwlWkxwtpyUL+7abTDn+5aDapNG0udKwOj7D0fvdUreuOwPenkjXzdvaBnDL2YU1n5CtvC0pKFdb0FMBLXrfoiJoPoPIzY9+y7Nv/uVw8n3Fl+7tPjK7KIr5rp7z1Hsmem6bJarx0zVwu4zas0ouHiK8+L0fOGFk/LPT807J+VAl9Tvlv7qYN+svWqDc59y7XOeXPFi9cxfVk34mXfMg9477vcIb13puf1ez80r6hy8rM5rF1WqXpNd2WdOZffpRwbOO7hjb7loR2kwLU+EjZpD+4p/scK9embhsgkF2WOcc+8Q5mfemj/79vwZN6vmTRusmjvx2jpTrzk4ps++Yd23pQ48smuHiBxK2FDzxqUfKEnjrAccnd9U7iZvbj4sMG8oiULNFVrqyCyqL8w4/SKMlt/i/lxGRExk4z3rYbzMefPwzSuLRj9clPKIe/j9rpvvdg1apnjD4sLrFxUOXKg4ILtwwIIC4dXzCq6a4+w7K194eUZuj/RDF6Ue6DDy2wtHfrbqqYNqgz6fb+VL1b9659jT7x577I/V97xUveQ5xfm/rpr7q6pZ/6M445dVGb9QTP9v78THvGN/qnjnGs8t93gGLCzvOS3vmmmfOUuO135sRGmw5ImVR1771dE/PH34xceKn7inKGeJ4iPz3Q/Nda+ZJXTdN8N1X4biPemFyycWLBkrdM6/M3/mLQcnDNg2vOd7o65xFh2ru77Rf2Nw3lBeefG/uJHhVtOFqvq+EfWtI/UvoOi+hhL3f2YRA4z7/ILob7xnPYyXOX8qvW6pa+wj7vE/LbrzfvfQe1w3LVMctMR1wyLXddmFwoELCq6dr5iU5bx6dn6/zDxhn4y8num5XVMPnD/y2zNv+iTnpVy1QREPsn5V9dzfjr34j5rH/3Ts/leql7+ouPgZETmqs/63SigiR+YTitN/XpWe4x3/qOLoB723rfLcsKS8z4y884d/oLyZU+SNsbnihvuhrKNvPFe27sXDv3285Mn7i3+xXFj02GL3I/NdD2YJldSxOlPoWjXddXd6wdLxQmf26PzZtx1Kv2HHyD5/uvZ8pUGRN4Qib1yykbyBTcW4zy+I/sZ71sN4mfNG6dULXHeudo9a475tpZI0blyseF22a8A819VZhcL+swr6zXQK+0x3Xj49/7IpecIek/O6T8ztMv5gp1G72if/K+eluqNITOuT/8srksYTbx176LXqZS9UZz+lOOd/qjJEuvgvxbSfesc9rDhqjWfkGuV1FuEt93gGLa8cuKi8b2Ze5zs+9M8brrsni6Rx5NUnSp95qPjny4oezRa6H5jjujejcEW64tK0gsXjhM75o5zzRyqvswhn3pI3bdDBiQN3jO677vrOJvNGu3u/Of+hfT+6f2/b+/a2uW9v+9X7zlqz77wH9ra7b0+be/c4lu9qtWqPY8Uux+pCx9xd5A1sAMZ9fkH0N96zHsbLnDcO95vnHnKP+9aVbhE2bljkunaB4tVZrv6zXFfMKBT2ml5w6RSnsPskZ7eJzi5p+cKLhKn5F447dMHoPWcP2ZDzUr7aoJjWx//Ue9/a6jWvKmFj3pPVM39RJUx/rCr1Ee+Y1YrDV3mGrlActLTyxiUiYygOWFSZtLDymgVl/Wfldx39kX/eKFw6vuTJ+0qeWqOEjYfnVe3c4t28oXB5euHiVOf8McL8OcPzZwwV5k0dlJd+Y8Un7wpzJwzInZB0IPWar1P6vzWoa8i8kfS58ukV9UdSxHNh4SbHwu2OJdsci7e3WL6j5TJxe7tj8Vbl79KtQ55zOrK33v4778nsq8Rdx12bQr1T9I//9h4qPqG+W9V99KS4G/95x4brv64Wu1Nd84PNRsRoiL/m24zKdhERMe7mvHHkijlFg5YVDV5WdONi98Bs9zVzFfvPcl8xw917ukt46ZTC7pMKhF0mFFyYVtA5VfGC8QWdxzs7j8u7IGXf2UP+nfNS3WwrJpQxD3qXPFf9k9orG7N+WW3yIyT9F3iuXOC5akF5/9nOgLxRkD2mOGdJ8c9/UvRotnfLBrW+54uPa5PGCMUZQ5SkMXVQ7sSBFR//Ra1Qsf6d3PFXHhh/1ddjTuWN63coqnmj9zrdvPHVgX0f7Nj9wdd7PtixR/mruFspEXd37H5v665/bN/9t627/rQj74YndjpSNurmjW0Ha4J3cPv3VfYfryf+WvHFnmNl3ljPv9petOv3qv1G2gzbbLJNO9uN11ghImKwDTdvCCo//zAgb1R88q621FTeuOgj5YrH4B3Kd3ekHnLUTXA1JvTNei1XN29oYaOouPLXz29s1/nRJSvfE7dz88vaDNlg8/Gqn3+T3ozlcVK/3c6PWm5Evb7x6YYDaiNm2rSz3XiNFSIaOQ6bqDmvH+mV6b5hSfGNi4uuW1g0YL77qjmKfTPdl09395zqEl6S7uo6sVB4YVrhBamu88cXKo4r7DRepI78TiJvDP0857d1v9MqTu/D7/PM/7USNrL+tzrj8SqTeePyuZ6+8z39F5T3nZXfZbTyo61Kg2PyxA1n1nD3I/OV92w8mOValeH58pP6yLHh/fzM2/KnJ+dNvr7y07/Wh42P3s5NuTx3bN+D4/p/PabvWz/uEpg31NdT9PPGsVoDAoZWctLn+0FUyvrdgeC8If6nVjtQfeyEmCLbXv/XVil7RHn2C6VP/n5/20Ef2HyqRmXej+N22wzbLFoIvL4hO2/EdqwQ0ch4z3oYL3PeUPLGtQuLBmYXX7ug6Jp5Rf1nu4XKxY1p7kunuITdJ7u6TCwUdk5znZ/q6jBe8bxxhR3HF3YaJ/LG/rOGfJHzW5faoJo3Zv6yatYTyjs3puYoeSPtp1Upa7wj7vUOvdsjHLTMM3BJpfDKhZ4+CzyXzfOIOpfO9fSa57lifvkVs/MvHhWYN1z3z3StmaX8vXtq4ZI0z8aP/SLHP/KmDar0v7Lx4brcMZfljro0d0yvg2Ov2Dn6ird/fHGEeeOEz3fc+PrG/Jf3BucN7eKG8l/86S8BnDH+oJo9tH5qi/xL1rxevrug7svNqmt+ELe1934EhzSthb9urnIfPakWihvaeyS0FQ8VnxCFokFxu8z7g7j9m4886iqi8Is9x4xPEdoW9+4vVVcRe6pbIVRJcLdD5QHRstpP7Q0woTKDtbESO+7/1prgsVLRHkrRrNhQ2C0ioinjPethvBR545LpRVfPL05aoHj13FN5Y6a7d4b70umK3ae4u6S7hBdMcp0/wdUhzS08N9V13ngROZwdU75vP/TLnN+61QbFefim5ZXpOd7pP6+a/rjyaRRRkvqIN+VB74j7PUPvVRx0t2fgcsX+Sz2XL/L0zPaKOpcs8F4639NrQXmvWQUXjlLihNJgbd7Im36T6+505bOuK6cXLk8vWJoqrPziI21qOF5UoN2uXP9W/l09hXmjL8kbc+mhu3p9M7LXOzdc6AuVN0TJkNrvQk9Tvs60to1jp1/Q0Df7pe+aj/uPI91VZ23kEFO52o1H/vsT9b/4YIPnUP8S/0lWpehwTeuRXzv05lC1Bd23ixQdOR68RQM++arM4BShu0q554TJnQpoweD1FC016e5pgDEbq+qakwufKzbeIiIiGhjNvFHboC9WecO5MKXysw8CTv6VH7+TP+7ykHnjxl1Kurhi22nv39Dyxri6/odNGrUeX/ibb1qM3dxieu3vYZ2KHP6zW8ux+3XHPHgO9S/RbovEIu6u/f1Xb76zs+31fw2uqfrXzXWvWBUVV6ol6iUIwSebigPWEk39+vmN2l1xW7tbfexEqIDk34LaK20TX+4oNbNTuiXBFdQ3eAhy88tEodhWcB2DXoUdqz/+26uWiP6rJTu+cYUaK7VNrcKOXYfPGH/QeIuIiBjKnDfKuk4r7pdVctW8kqvnlVw1t7jf7CLhFZlFvWcUXZqh2H16UZepihekF3WcVHTeRMVzJhSdo6SOwnNTDv5oyH9yXq4/Xd+wpHLcI95JjylhQ/wVJeMfUb7YfMRq79D7FAev8gy8W7H/cm/vpd5LFyuzQLeF3u7Z3h7ZFT1mFXS68/S8kX5D4eJxruWTXCvSC5dNKlgyXjF7jHPeiOPFhdoUcLzI6ZzU35na2zn2UsUx3Zxjuuem9Pj2zh7vXNfJp+aN63bp542xucoFinR1cjGVNxa/sK35mH/X5o0S5cfuayPH6fNjka7BdfxLtCsk7/1zT8uxh8TSVqP3th75Xah1tQsCYgZse/3fRcma1yvVEpFA2gzbGrCWaMr/bquU7+vv9nvNTJ9Fr+a/WPc2lfLy6ja3bQq7U7olYfZl0Ee6dfy1PFZLVr7XNvn//KspOxI0VoF7OuQL4y0iImIoc/5UftHUkj5zSvrPK71qXumVc0v6ZYn4UXzF7OLemcU9a71kRkmX6Yqdp5V0nFJybrri2ZOKz55YfHaq++y7ctsN2ZKztkRtUJyKByysHPWAJ+1R78SfVU14tDZv/NQ75mHvHQ94b12jeNP93oH3Kl650tt7RVWPZUqdLku9XRZ7u2RXdsksOO+OT3xq3qh9gSY3bYBzwajCn6QVLpvo+smEwqXjhQWLxng+/6fvdDyfvlM4oXfh+B7CgpQuBWO65I3u8u3wLn++9jyfljfUSxx9/6HkDRE8ROHw/NqLG0UiNtQ2c7z2/Rth8sayZzereaM+ckwurj71s3LKHFdbEuxp82BQyZo3PNXH6qbFMs/Jv245Zn7dlqm5AYVtb3gveC3juxH3ecDbYTumW2JmX4z7ZnmsdAm/IwPeNt5ighrvkwwioiPR80ax0Bcib3i++FCbCI4X17+Q4fn4rZB5I3mfY9Duukscvdc5OvzitLwhzszTSmrbCBs2hCdWPL2x+diNLWaWOaaWK04+LDxUXDcZrf39V2pJsKfPaDolC184umNXfeGX33nNr6tbGNFda3020zH7qwRrbayCUT9PZPPRQUTEUOa8WXlB+uHLZh2+Iutwv3mH+8873G+uorjbe3Zpz9klwksyS7rMVOw8o7Tj9NJzpx4WnpV+uP2k0vYTSn50V36boVtzXqlrUJyB+82tvP1eT8pDXhEzUh9VXisZJ/LGI1V3POS9rdbkB73XrVG88v6q3quqetyt5I2Ll1V1XlLVObuy04zCs0d86lM+UFAmFDcO3dUvf/btBQtTapNGasGScZ6N67UTvuez9wuzkj0b6j+f4v34TVdaD9fYiwvHdM4f2fm7Wzu9m3S20uDgXMfgg0re6Pmtcn1D5I3uO5QQIvLGBP+8oVJTe6EjFCdXPPdl87GbWmR6m830OKbUOrX8j1/UrZKbX9ZqXG5dFJla/sR7x4Tq7dPmrxAlZ0wqeXitU5sK24zYHqqmu6z+HapqyZo3694Fob6jI3gt47u6BtQJuwkzJcEV/N9tG6qRYM2Pldb+kpXvaW/qqPfK3wevNf/lurfHlJdXh310EDG8kyuwaZrzZlXHyUcvmXm095yjV8w72nfe0SvmKvbJEiVHes4+LLxkdmnXWYeFnTMPd5xx5NwMxfbTjvwo/Ui7CaVt7ipsOXRbzu+Oqg2KM3CvWRXJKyrvWO1Jedg79hElb6Q84h31sHfEQ95ba73pIe/1D1UJr1xT1fu+6ktWKaf0C1dUdVpa1WFB5TnTXe1u/0SUaA0eHNUrLyPZOe+OgkUpBYvHevw+meL5/B+F828tzLrJNet674b6798QkcM99kLX6E75IzrsuuWcv1zZTmlwqMsx5JASOa7ap+SN83+t5A1xV8kbRcprIjPKOw158rzBPz9v0M+Vvzf5+3iAHa5f1TztK5E3VEXqUC3z1l3i2LGvcsGrx0TJ/7x/vPq4L7f4RKvJLnFXe83lvX/uEXe35dZ/IkN5T+PGE0JR/sBb9Z+kaHfVH9TGtZJfP79RLVn/bd3qe/eXtpxSLEq0BPLphgNtB3/ov5ZoP+xdXbU6IgmIu7sL6zahvFuydhPGOxXQSKjtamup+3LaCOj1zfJYiZj00JtVauEX+07q7qnIJP57uuMbV7vr3jXeYmJaF4YREeNqzlvV50ws6zqjrOfsssuzyn7528JQdplztPPsox0zy86Zofij6eVt08taTzjSKsXVYujXOa+Vqw2K02+36RXXL6m8daXnztWe0Q8qeWPkg1V3POgd9pB36MOKgx/yXvdQlfDKB6p63V/dbZXyz/IFK6rPXVzVfm7lmemFrYbWXt841eCBYd1yJ1+fP+tW57w7Kz+vfxnF8/n7hfOGKs4Z7Jp1ndD7f+9oS70f/dE98tyC29t/N/jMv/Rr5VPzhnBwbn3e6Pltbd4oUl67mVEubDbV3Wx6QfPpBS1mFraY7Wo+q1j8bTXH3XJWfoAtMnJbzD/WPEux2RxFx0zFNW+dqK7R+VDnjt1H2g75t6jwxb4fgpdqs6q7LLDwy835yn/WtY1r05+KWlh0NPBDmr5TVx7ajNkrKvi3H/aurrq9VT9F0jo1L+xOBTSilmh7KvKAWmH+qyfUb94waMTfaI3Vju+rjfe0+tgJET/ajNhmvEVERAxlNPNGbYM+vbxhBp28Me2Y0Hd63qjevUOt7/n8nwXzhwXkjaKMK72frqubI754LzBvjDiiRAs1cgz4V33eGFWovJgiwsZMT4tMr8gPLebXtFh4XNhq0QnV1ktPBthiia959g/CZtk1QkfWSaEaPBa+4hXpory8/tOdb76zU5n9R25TK4gJTkxhvtpU8OmGA9ogKNc3/nOy6HDdrCdaUL/9u82Yb9UVhXvyT7vCrxZ+suWwaEotV9sUi9omf6Qu9W8/7F1dfbX/4GsfDq3fxK3/1uoY7JRuNxa8dkLdU1G51dRitc5Dbx3LLay7yKB96jZU36yN1XufFWtjJTostrL2919pD422Ra2OqKC8/nL1H1vOrAi7RUQ01jHzBDZNc94+1n5iReeMiu6zyntmVRjkjYuyKjrNqegwu+LsTMUzMypaT6loOaGsRUpRs6E7c/5fpdqgOA93Tq+4an7loGWVt67yDL/fM+x+r/C21d6ha7zJDyje+IB3wANVwr5rqi+7v7rrKsXzV1Sftai67ezKlhMLm9/yiRIPlAaVc/v3QzofGndV3rRBInIULBl7LHdv5WfvF2TdVpA1tGBOsrBw1o2umQOE7ml9i9Iv8378Rs33O4snX+q+4yznkLbfXd/yz5c3r8sbQpE3bixSvvWr7vWUXMeoYuXNJ7V5IyBsiFzRatkPwtbLT7a++wfF5XUlQhE5hM0W/SBUs4dmy7lVbVN2thv0d/W9AW2HfdF6aqF/BWVp0hvKoiGftJnwvfYuArFI1BSFdSWD/i6WBjTeduRX2lKtUFTT1lLb9F/Fv/2wd3VVmk3ZqXQ7xCaMd0p3Q8oo1fbZv6lWsyvEcNVtRdvTEH2zOFaT8+rXSnpD1GmdUaIu8k849eM58ivRVZNbREQD1X/NsAma8+eaMydWdpxWeVFmZbc5FZdkVap2z6rsllXRdY7iRXMqL5jjEXac4zlntqf9zEph2+meVumVLSZUNBtT3GzoNzm/96gNihN1x4kVvWYpPy7/42WVyXd7ku/2Cgff4/nxSs8NqxQH3Ovtf2+VsNeqqu4rqy5crnjukuoz51e1nFnZPLWgWXLt92+canD/TR0Pjup1KC0pb+qP8zOS82fUmjHYmfFjZ8YNwoLpAwqn9he6JvVyp3V3j71QceS5rtvPzE9u+e21zd/p3UxpcHRF3SUOkTeSPlfyxkVbtbwRcHGj1dIanbBxyrq8sdxX55J64/50Rjv65424dwYRsdGY85cTrdPKz55Sfn5G+YUzyy+eVd6l1osyK4SdZ5ULO80q7zirQnhOZoVIGu0yFFtPrTxjUkWz1DLH6CLH0K9z/lj33584UZ81trTL1CN9Zh+9ev7RaxeWDVykmLSoPGlx+VVLFfv+pLzXTyqE3ZdWXLi4skO2Yvu5la1nVjSfctQxJtcx6AP/vLHrhrP23tZl/+g+34+/+sCEaw9OGqg4IengxKRDE68S5k7om5/aS3Fsd+foC513dFC8rX3+za0P3th8+9WOP/V01OUNNXKIvKG+nnJ63lAjh5I35tfUv4ay/GRw3jCOHNhw9c8bce9MVIz7SQYRUbjq9ePnTy9uN6H4rMnF504p6TilWLWDcKooUTxnSvHZU0uFP5pS2i69tPXkEmHLiaXNU0ubpRQ57sw7Z0x93nCWnuiTcaDDXQcunnCgx5TcXtMO9Z5+UHjZtEM9M3J71NotI/fiGU5hpwxnh+kFZ011CttOLjgjraBZSq5j2NfdU94XJ/zmtVfeRINb7uyz+cYOm2++eOvtPbaO6LV1RG/F4ZdtG9Fz+/Aewh3Dun0z7GLFWzt9O6TDN8lnCb/9cdtvrjtj+zXN/q+v482buit5Y1zlaXmjwy/884Zjav37N9SrHK2yjwWmDr8XU3TDRtwfULQp1zcQEWXY94HjS9Z6zk/f33rMt23v2t0uZdeZKd8J2ynuUm2bsqt1ym5hq5Q9Z4zZ22LUbmHzO3c3u2OvY9iuc1K+WfLs0b4r6vLG3N96tu0p6zNxQ/tb3jv39vXnDfuw47APhOfd/kGHYR91GL5eeM6wj9sP+1TYbti/2ty+odXQT4Utbvm02S0bHIM/7p7ywdZdpaId9frG3N9UHv52299v7/OHfu3XXXPum0nnvTGgo+I1560b0OGtWt9OOucv17QXvntVu79d2eYvfVsp9mnxt8ubvX2ZY91N3Yt2bp3766Mh8sZBLW+of1vMLFNULnRU1qUO1VPvHVXf3RGguvvqtRFs0GrvGIl7T6Ji3F+0RURUnHOi7+qanHdP5rx7Iucv/h6v98+n+05NnW/X5LxVs+p31X3vrnbMPqE22HLucZEQfDZwlp4QLYh21DegtsysmvtCefjVDBosOSHCRsuUstPevxGQN8bkKb8Pq/6sfO0XfzlmKu8gbZFVVqeSPTRr1M+k+Os49eGUuH/mCPF04/++dEQ/4/6MQPRz2jHlsBR/06uVb+GYXOGY5HVMrlIUNyZUKlcq1L/qDc1xRx2jjyh/1aXaGzYCDMgbSuQ46Eje7Lhta7PbtzUfpugYuUu12Zh9qo6xB5VYMja3ztRD9bdVxVJERDRw+EHEBFLM/qNCHJa37VN+zlWYfMqb99TdHXJKtUT8HbRb8cZddT+bov5em0gXunnjtq1K3qiNHFrq0FWtoKjV91sRMaFUD2zEBLEZYoIp8YBXv89c/XzKhVtbD9zTKftwmwn7S9y7EBEREaOi444yx+A9jh5vODr8kryBiIiIMiRvICIiomzJG4iIiChbM3ljyeNvIyIiIkakhbxh5xs/AAAAoKlhJ2/E/WpMw3Ld6y8waIiIjV7O9roDQt6I8YDHvRuIiChVzva6A0LeiPGAx70biIgoVc72ugNC3ojxgMe9G4iIKFXO9roD0rjzhsPhiHsfAga8oe8FIiIaS97QHZAo5o3gaTHSiTLqE2tCzdS6R2BAD3XvJtReICKisVHMG9E6/8d3HiFvxGXAjXtI3kBEbOgmYN5IhAGJTd5w+OG/1L9Et06J35wbanWDwoBFJlcM2yU7A24waKH6bH4EQtVERMSYaSZvhDqB+98OntFMnvN1S4y3K3XiiFneCCgPNavqtqANgsFWQm0obMvme2jQQqQDbjBoBnnDuJpxTUREjKVh80ao+cX8/GhydjBo2bgRGQMS3bwRjMEOhn0IjB8XM20abMvMQxB2uxYG3GAHA7Yb9jCLQZ8RETFSY5k3whZGWj9eeaOttOsbJYYXfEw+LsbBRqujW2gmEQXXtD/gZg6DUMEjbPfIG4iIcddM3gg1v5ic8qxNr6FmE91Goj4gOnkjeZ+j6ysxyBu6Q6T7uJhs00wH7LQWlQEPtYMW8obJsUJExFga6fWNgHLdOcvaOT9g9aaZN2yOZ8Dqxnkj1CZ0V5R3rUBq3uD6BiJigmjy1fNQ5WbmR2vTa6PPGyWnXwjyXxpQohUGlxivHmpDoYbdYMWw3bY54LqLDIbO4GAI7h55AxEx7obNGyXhTuDBNcOuUhJiRgu1KJYTR9TzhiRjP2lK2iLfOIeI2BTkbK87IOSNmG2RIxARsSnI2V53QMgb2lai+NKJwYDHZtAQETFecrbXHZDEzxuNRo5ARMSmIGd73QGxnDc2b3wfERERMax28saH/3gdERERMax28kZS9mcYketefyHufUBERNlytg8eEPJGjAc87n1ARETZcrYPHhDyRowHPO59QERE2XK2Dx6QWOYNg1Wikl4SPwJxBCIiNgUjOttrk1fiz2J2BkRG3vD5oTukBqMdth3ZoUX2gMe9D4iIKNtQZ/tQk53B0sahjLxhkDGMR9I4nJh5OBL/kSJvICI2Bbm+ETwg0c0bJpNb2AsXBmEmYF3/RhL/kSJvICI2BcNe3wiezpIawixmZ0DC5o02SbujmzfMXLgwcxEjotdrEkTyBiJiU9A4b1i4gN/QTai8YXLMDeok/iNF3kBEbAqSN4IHJC55Q/c6kskxJ28gImKCS94IHpC4X98w81iYfFwS/5EibyAiNgXJG8EDEt28YTCMYcfZeNiDy8kbiIiYmJrPG7xf1HLe0EbP4P2coSroPgq67YRdNzElbyAiNgXNfz4liesbNvKGTRv3gMe9D4iIKFvO9sEDQt6I8YDHvQ+IiChbzvbBA5KAeaMRyxGIiNgU5GwfPCB28oZYHRERETGsdvIGRIo64AAA0LjhbB8AeSPGcAQCADQFONsHQN6IMRyBAABNAc72AcQ4bzgcDguLIm3fZlNR6UkoOAIBAJoCMT7bm5m5pM5uYZGUNxx+BJQbrGKynbCNmG/KfE+iBXkDAKApIONsb2YOlf1/vWVk5A2DjGG8s8bhJKLBNNmUmW5EF/IGAEBTIF55w9rqMcBM3midtMt83gh1bSH4hvGFi1DD4jgdrSTUhgyaCtsN85dEzEPeAABoCuie7f2nrYB5x6DQoE5Ay/6b0G0huH7MMMob3WTlDTMXLkxexLDZlPlORgvyBgBAUyBU3giennQnslD/BYfaXPAUZrCh2IcNX4LljeCaxpsIrhNpU+Y7GS3IGwAATQGD6xsBd80UBqwefK3DzDwrdXYLS7zyRgChahpvwn7e0O0GeQMAAGxiM2/4QrzsEmpzJvNGvMKGLzGub+hWtp83wjZl8BCH7aRlyBsAAE0B+3kjuMR+3jBuRCpRzxs+Ey+XGI9tqIENddXIclMBHSNvAABAtIji6ynRzRvG7chDRt7w6b20pJUbV/DpxQDddsKua6Yp/xLdPBNqQ5YhbwAANAUM3i9qMBmFmqECCnVb9r9hPsPEDEl5wyZRHIe4pDgDyBsAAE0BM9c3mhTkjRhD3gAAaAqQNwJIzLzRiCFvAAA0BcgbAdjMG2J1RERExLDayRsAAAAAJiFvAAAAgGzIGwAAACAb8gYAAADIhrwBAAAAsiFvAAAAgGzIGwAAACAb8gYAAADIhrwBAAAAsiFvAAAAgGzIGwAAACAb8gYAAADIhrwBAAAAsiFvAAAAgGzIGwAAACAb8gYAAADIhrwBAAAAsiFvAAAAgGzIGwAAACAb8gYAAADIhrwBAAAAsjHOG23IGwAAAGAbnbxx8z5H11fJGwAAABAtyBsAAAAgG/IGAAAAyIa8AQAAALIhbwAAAIBsyBsAAAAgG/IGAAAAyIa8AQAAALIhbwAAAIBsyBsAAAAgG/IGAAAAyIa8AQAAALIhbwAAAIBsyBsAAAAgG/IGAAAAyIa8AQAAALIxzhutyRsAAABgG528kbzf0Y28AQAAAFGDvAEAAACyIW8AAACAbMgbAAAAIBvyBgAAAMiGvAEAAACyIW8AAACAbMgbAAAAIBvyBgAAAMiGvAEAAACyIW8AAACAbMgbAAAAIBvyBgAAAMiGvAEAAACyIW8AAACAbIzzRhvyBgAAANhGL2/sc3R9hbwBAAAA0YK8AQAAALIhbwAAAIBsyBsAAAAgG/IGAAAAyIa8AQAAALIhbwAAAIBsyBsAAAAgG/IGAAAAyIa8AQAAALIhbwAAAIBsyBsAAAAgG/IGAAAAyIa8AQAAALIhbwAAAIBswuWN3eQNAAAAsIl+3uhG3gAAAICoQd4AAAAA2ZA3AAAAQDbkDQAAAJANeQMAAABkQ94AAAAA2ZA3AAAAQDbkDQAAAJANeQMAAABkQ94AAAAA2ZA3AAAAQDbkDQAAAJANeQMAAABkQ94AAAAA2ZA3AAAAQDbGeaP1APIGAAAA2EUvb+wnbwAAAEAUIW8AAACAbMgbAAAAIBvyBgAAAMiGvAEAAACyIW8AAACAbMgbAAAAIBvyBgAAAMiGvAEAAACyIW8AAACAbMgbAAAAIBvyBgAAAMiGvAEAAACyIW8AAACAbMgbAAAAIBvyBgAAAMjGOG+0SdpF3gAAAACb6OWNfeQNAAAAiCLkDQAAAJANeQMAAABkQ94AAAAA2ZA3AAAAQDbkDQAAAJANeQMAAABkQ94AAAAA2ZA3AAAAQDbkDQAAAJANeQMAAABkQ94AAAAA2ZA3AAAAQDbkDQAAAJANeQMAAABkY5w3Wg/YTd4AAAAAm5A3AAAAQDbkDQAAAJANeQMAAABkQ94AAAAA2ZA3AAAAQDbkDQAAAJANeQMAAABkQ94AAAAA2ZA3AAAAQDbkDQAAAJANeQMAAABkQ94AAAAA2ZA3AAAAQDbkDQAAAJANeQMAAABkY5w32iTtIm8AAACATXTyxs0ib7xK3gAAAIBoQd4AAAAA2ZA3AAAAQDbkDQAAAJANeQMAAABkQ94AAAAA2ZA3AAAAQDbkDQAAAJANeQMAAABkQ94AAAAA2ZA3AAAAQDbkDQAAAJANeQMAAABkQ94AAAAA2ZA3AAAAQDbh8sZu8gYAAADYhLwBAAAAsiFvAAAAgGzIGwAAACAb8gYAAADIhrwBAAAAsiFvAAAAgGzIGwAAACAb8gYAAADIhrwBAAAAsiFvAAAAgGzIGwAAACAb8gYAAADIhrwBAAAAsiFvAAAAgGzIGwAAACAb8gYAAADIhrwBAAAAsiFvAAAAgGzIGwAAACAb8gYAAADIhrwBAAAAsiFvAAAAgGys5Q1ERETEiIw0byAiIiLakbyBiIiIsiVvICIiomzJG4iIiChb8gYiIiLKlryBiIiIsiVvICIiomzJG4iIiChb8gYiIiLKlryBiIiIsiVvICIiomzJG4iIiGjsutdfiFSfz+ffAnkDERERjRX5wREJYhXyBiIiIkakmjfEje92bti+Zf3mje/rKhaJCuoq5A1ERESMSDVviCwhzFj62KBxyzsPzAwwOW3lnHueKHTurvIeLWnUeUONXoiIiBhd1byxfct6ETaEG77cfijf5fMj1+n+bNNOkTeEx2uqSmzkjYDXZRLQhO0YIiJig1bNG5s3vj9o3HIRNnwhePKZp5PTVqpJw1reCJjKE3NmT8xeISIiNnS1vNF5YOahfFdNzTFdX375WVHBct4wmMd1L3qot/0LLVQIaNZ/lVA1A1prEBkJEREx8fXPGyJIeD2VQm22Ve8KRTUZeSPUhB4qSJivENxsqMSiW1O3h+QNREREawbkDYce5WVHYp83dOuYrxDcbNhoEaoQERERbRqQN0pL3AFhQ5QIG1zeCH6VxHze8F897g8QIiJiIzAgb7gL84XabKveFTasvGH5UkZwP4kciIiI9vXPG7lOtzPvgKoo1G4L16593k7eKIn88oLuihbyhvnrG7o1w75Yg4iIiGHV8kZy2srPNu3c9c0mXZ967rkhk1bbyRsloT+KoltofNv86yklJrJNcNLQfT2FvIGIiGhN7fu+1G/0evKZp19++Vn/X2dbu/Z5ETayVz8rtPl9X4iIiNg01b7PvCB/t8gbyWkrg7/PfMik1SJsVHmPWv4+c0cI4r77iIiIGAO132sTWeJ4TVWo7xcVi9SwUcL1DURERIxQkTciXYW8gYiIiBEZ6oKGMf4tkDcQERFRtmbyxpLH30ZERESMSAt5w9qFFAAAAGiakDcAAABANuQNAAAAkA15AwAAAGQTg7zhcDgkdT7xtx5LZO9pvEYy9tttuMdMqJ433D2SQWMdDWuPftN5XkcLnmVm0B2NBMkb6jeUBpfYfwQT5xgw2CP7exrwXa/GNU0WWqhjp77JdqI1VqGasjmSMjC/IYOjK6H2yA6xOSdE8YxkZi3jY9L8hiIqN7M0oHsRdYZnmc0NxRFJz7LEeT3F8jwYaZvysDNr2+lq8Ikx6lsPe8YIdVYxbjYsko6KUGdCyyNpPBTGYxV2GI17Ylwnintk3GfLS4O7EXZAzIyGfSw/EBbW0nYz1AFgfxM2ibR9gz2K4jFpvNT4mAy7OTNdivoeGffZ8tLgboQdEDOjESnkjShi+XA1ua6d7drcuvlnkLWORdRCtI4KO0+xsOtG1POw60brTGh+9eBRMt++mXUjOiebXzeKRPHYM//8srxrssck0vZ5lkXUhybyLLOcN7REZLyzusFJt0LUZ5ZQDWqbC9U33UUGITAU5nullYcdsYjaNF/NuAV5S42RMVY+q0/PsNXMtGb5TBi2b5Eeb2GrJfKZ0Hh1A+J1RjJzzrHfvm658bnI5miY6RLPMoNqTe1ZZuf6hv+haOEZ6l8e9mloAeNnWahqFhZFdK6w1iszzZo5e1hYJHWpMZLGKuxGrY1kYp4JfVb3KBHOhJaPWGNif0aSesSGbdDaUjOjYRmeZQElTeRZZjNvmOm55cMmVKEZzI+h8Xkg1FLd22Z6a/K5YLI1m5uwuchMhRg/gtElopG0eSYMe76Kymkh6o3bOT8bLLI2GZkk9mckqUesjGdoFE9HYeFZFrbxRvMsI28EJIdggisH/zXfW/OHYtT33fJhaW1zJle336XGcSY0rmB5UaQdiLTxaJ0JdZ9H5A0LjUdaoUnlDeMKlhdF2oFIG280z7JGmTcienQiCgyJmTdMns0sDKadPbK80UjbjOKZ0M5IRuVMGOlGDcp1lzasM6FBI+QN800lWt7gWWazfcvNxv1ZFq+84Qva90TIGybvmswbkY5GpNElYF0Ng2rGq5tfxXydBpc3LI+kzUc/WusGL7VzbJhp39rSRDsTBvch0u0ajLDUI9ZmHTujYQ2eZRbat7Y00Z5lNj+f4jg15wbc8AU9BLoPhG4jJteNaDd1txh8N3jrxu0b7JFBm8EVAgbB/M6G6lhEdQweHeOmzDy+YbtkspOhemtnxKx1QLeO8VCYefR1j4ewXTK549aODct7ZGHd4Ac01Orm99p4d0K1rJVb6JVux0LtoIVdCG7ZeKlBn+2MRlQw05qDZ1kkuxx2XUe8n2WJ8/0b0cLaKDUCrB3t0aocxRbi/ghGfSTtE5czYcLSgLoqlQY9Dgl4TPIs80dGVxtf3gBjYnbAN6BnljUa30g2iIesQXQSokXjO/gbxAEsqZPkDQAAAJANeQMAGgGhXrDWfW0aACxg81lG3gAAAADZkDcAAABANuQNAAAAkA15AwAAAGRD3gAAAADZkDcAAABANuQNAAAAkA15AwAAAGRD3gAAAADZ6OWN/Y6u5A0AAACIGuQNAAAAkA15AwAAAGRD3gAAAADZkDcAAABANuQNAAAAkA15AwAAAGRD3gAAAADZkDcAAABANuQNAAAAkA15AwAAAGRD3gAAAADZkDcAAABANuQNAAAAkA15AwAAAGRD3gAAAADZ6OSN5H2ObuQNAAAAiBrkDQAAAJANeQMAAABkQ94AAAAA2ZA3AAAAQDbkDQAAAJANeQMAAABkQ94AAAAA2ZA3AAAAQDbkDQAAAJANeQMAAABkQ94AAAAA2ZA3AAAAQDbkDQAAAJANeQMAAABkY5w3WpM3AAAAwDbkDQAAAJANeQMAAABkQ94AAAAA2ZA3AAAAQDbkDQAAAJANeQMAAABkQ94AAAAA2ZA3AAAAQDbkDQAAAJANeQMAAABkQ94AAAAA2ZA3AAAAQDbkDQAAAJANeQMAAABkQ94AAAAA2ZA3AAAAQDZ6eWO/o+sr5A0AAACIFuQNAAAAkA15AwAAAGRD3gAAAADZkDcAAABANuQNAAAAkA15AwAAAGRD3gAAAADZkDcAAABANuQNAAAAkA15AwAAAGRD3gAAAADZkDcAAABANuQNAAAAkA15AwAAAGRD3gAAAADZkDcAAABANvp5oxt5AwAAAKIGeQMAAABkQ94AAAAA2ZA3AAAAQDbkDQAAAJANeQMAAABkQ94AAAAA2ZA3AAAAQDbkDQAAAJANeQMAAABkQ94AAAAA2ZA3AAAAQDbkDQAAAJANeQMAAABkQ94AAAAA2ZA3AAAAQDY6eePmfeQNAAAAiCLkDQAAAJCNtbyBiIiIGJGR5g1EREREO5I3EBERUbbkDURERJQteQMRERFlS95ARERE2ZI3EBERUbbkDURERJQteQMRERFlS95ARERE2ZI3EBERUbbkDURERDR23esvRKrP5/NvgbyBiIiIxor84IgEsQp5AxERESNSzRvixnc7N2zfsn7zxvd1FYtEBXUVvbyx39HtVfIGIiIi6qrmDZElhBlLHxs0bnnngZkBJqetnHPPE4XO3VXeoyUNNm/4X6LRSkyuaLIQERERdVXzxvYt60XYEG74cvuhfJfPj1yn+7NNO0XeEB6vqSqxkTcCXpcx1tqEHmot3ZhhsxtEDkRERJOqeWPzxvcHjVsuwoYvBE8+83Ry2ko1aVjLGwGzc9jJWl7eiGIfiByIiIhm1PJG54GZh/JdNTXHdH355WdFBct5w2C6180hwW9SDbgwEnatgKUBTQU0YrBicCMG+0X8QERE1NU/b4gg4fVUCrW5Vb0rFNVimTdKgsJApGvpbku3spmmDN71YbAIERERVQPyhkOP8rIj8c0bFtbS3ZZu5UjzhkHLiIiIqGtA3igtcQeEDVEibNx5I4BQ2w1+PcVgi4iIiKgZkDfchflCbW5V7wobd94Iu4pBOXkDERExrP55I9fpduYdUBWF2m3h2rXP28kbJaZftrCQNwwuSuhu3ebrKQZ5g+yBiIioq5Y3ktNWfrZp565vNun61HPPDZm02k7eKDHx+ZGSEB8J0V3ReK3gTQff9r8RqmO6m9OtEHwXERERVbXv+1K/0evJZ55++eVn/X+dbe3a50XYyF79rNDm931ZM46TeNhNEzAQERHNqH2feUH+bpE3ktNWBn+f+ZBJq0XYqPIetfx95rpXKnQvRAQb3zndYOuEDURERJNqv9cmssTxmqpQ3y8qFqlho6QpXd8w6EDce4WIiNiAFHkj0lUa6O+1ISIiYrwMdUHDGP8WAvJGG/IGIiIiRtu6vNH1FfIGIiIiStI4byx5/G1EREREC0aUN6y9ZAMAAABNGfIGAAAAmEeNBC+tW/+zF/9ucDVDLBV11Mo+8gYAAABEgho2hHsOFpQcKdevc6RcLFWrkTcAAAAgUkQe+NmLfxdx4uNtJeu3Fn30lfujr1wfbin85+aCf252frAp/4NNeZ989f0X23d/tWOLqBmVvOFwOOKxr1EgVM8b7h7JgNEAAIAA1DxQcqQ8bN7Yv3+HGjN89vJGwJeZG/QtZtOW+Q3p1kzAPbKD/U6aaSF4rMwMoMmmAAAg0dDygMgbuhW0vFGXTOzljeApJlTHQk1GurOS7s+ymFw3bE+M60Rxj4z7bHlpcDfCDoiZ0bCP5QciWmsBAEDM8M8b67cWJWV/Fqy8vGFA2Ekwotkq7LrRyhvmV9fuBt8wv1GDdSNKPubXjSLkDQCApkN8r2+EwuRMZH6itJNVImrZ/OqJnDeMVzcg1AUT3QpRzxthtw4AAPEixtc3fKdfzw/VqwaUN3xW9ygR8kakD4FJzDwKoYbLTs6x2QgAAMgjxtc3AojoooHNvBE2FURl8o1643ZSkMEia5HPJJYfPsvbNZMnAQAgjsT++oY/scwbxhUsL4q0A5E2Hq28ofvvP3kDAABiQ2J+PkXq6ymRRoKIZvyGlTcMGiFvAABAFIn951MsX8y3M0tGcd3gpTZfnmgieSO4D5Fu12CEyRsAAAlOQN4w+L4v83mjddIu+98vGjyDGMzswUuDpzbjyc5a2LCzR8HdNlgUtkLYdbU6YVs2v9fGuxOqZa3cQq90OxZqBy3sAgAASCJq3y+avM/R7VV5eUM2oTZnshsJuEd2aEBdBQCABkHUfj8lkrxhkpjNeo1vQ3ZoEJ0EAICGhfb7sCJO7N+/wz9FaIpysTTM78NKyBsAAADQOFAjgQgSP3vx7yIYhFIsVcMGeaPJEuptIbxZAgAAwqJ7QcNYH3kDAAAAIkHkgdKiPYeL9x0pPXD08KGyI/kVZQWV5S5PRbHXU1rlPXqsurzmmOd4TdWJEzUnT55Q1yJvAAAAgHnIGwAAACCbuOSNhvtyv82PzQIAADRNYp83zL/PMAE/pmr8fVOJs0d2kNdJgyHiTacAAI2bGOeNgDnFYIoJrmkwrRt/YsLMhynMTHZmVrSzR8Z9trw0uBthB8TMaJjZx4jqWN4oAAAkPvHNGwaEnQQjig1h141W3jC/unY3+Ib5jRqsG1HyMb+uMeQNAADQJTHzhsmZ1/xEaSerRNSy+dUTOW8Yrx6qzbCXTYxbdvj9qArZAwCgkRHf92+E6lUDyhs+q3uUCHkj0ocgLDavb/gvInIAADQm4vt52Ij+BbaZNyz/3228yHwHrDVuJwUZLLIW+cJiM29EpQ8AAJCANJ28YVzB8qJIOxBp49HKG7qXDsgbAAAQG2TkjTZJu21+PkXq6ynW3lcQCjt7ZKF9y80ajICFV5cs9CdsHfIGAEAjJqp54xUzecPyxXw7s2QU1w1eavPliQaXN8y/JhXpOJuJhQAA0BCJcd5QsfBfsCMI46UBM5duiZkumZz1rP1fb3mPLKyr1Qnbctjd0V1Fd+vm90i7G6pLAADQoGkoeUM2oTZnshsJuEd2aEBdBQCABkFc8oZJYjbrNb4N2aFBdBIAABoWiZw3AAAAoHFA3gAAAADZkDcAAABANuQNAAAAkA15AwAAAGRD3gAAAADZkDcAAABANuQNAAAAkA15AwAAAGRD3gAAAADZkDcAAABANjLyRusB5A0AAACoJ2p54+Z9jq6vkjcAAAAgGPIGAAAAyIa8AQAAALIhbwAAAIBsyBsAAACQmESaNxAREREtaD5vICIiItqXvIGIiIiyJW8gIiKibMkbiIiIKFvyBiIiIsqWvIGIiIiyJW8gIiKibMkbiIiIKFvyBiIiIso2IG+0SSJvICIiYpRV8kbyPke3V8gbiIiIKEnyBiIion2/27lh+5b1mze+j2IcxGgEjA95AxER0aZiehVmLH1s0LjlnQdmNmWT01bOueeJQufuKu9R/yEibyAiItpU/EcvwoZww5fbD+W74v1T8HEj1+n+bNNOkTeEx2uq/IeIvIGIiGjTzRvfHzRuuQgb8Z7wE4Inn3k6OW2luOE/ROQNREREm4q80Xlg5qF810k4efLll58Vo0HeQEREjK5q3hAz7HE4fnzd6y+QNxAREaOuljdqjh1D8gYiIqIMtbxRXV2F5A1EREQZannD6/XEUofDEeMtmpG8gYiIKEMtb3gqKyTp8MO/UN4WLUveQERElKGWNyrKy2QocoXu3YDyBJG8gYiIKEMtb5SXHYm6IlSEXeR/9cN/aagSgzbtS95ARESUoZY3jh4pjboiGxgvCqgQXGhQTYbkDURERBlqeeNwaXHUFcHAeFFABd3CUNVkSN5ARESUoZY3SovdUVcEA+NFARW0u9pLJwF3A8qjLnkDERFRhlreKC4qjLoiGBgvCqgQXF+3mjyN8kZX8gYiIqJFtbzhdjllKKKC7l31hu5S/0KDajIkbyAiIspQyxuugjxJ+r8O4l9ovDRUiX9h1CVvICIiylDLGwX5h5C8gYiIKEMtbzjzDiB5AxERUYZa3ji4/zskbyAiIspQyxt7d21F8gYiIqIM1byR63R/s+MLXLv2efIGIiJi1BV5Izlt5Webdm7b8gk+9dxzQyatJm8gIiJG1+1b1s+55wnhk888/fLLz657/YWm6dq1z4uwkb36WeHxmir/ISJvICIi2vS7nRsK8neLvJGctrLzwMym7JBJq0XYqPIeFfoPEXkDERHRvmJ6Ff/R+8DnE+MQEDZKyBuIiIgoX/IGIiIiypa8gYiIiLIlbyAiIqJsg/PGeeOdauRofVeRBZUGEREREf0VYePKj/3zRvsRe85JO9Duzt1nDN1lQcfN+60oupH43mzJ5P2WjPHeWeqktQFpEEdILDsZ6wGxdkA23sPY4qPG2SCOnbR6QDaARy3Gg2/n2R15J2/Y5uj/kaPba0re6PS2o9srtb566kbMfNWqMexk1xga405aG/xYbsv6gLxqxVgfxhYGP7bGdPBjbAzPIQ2ghw2lkzG0sZ5D4vBEe025cfFvlLzR8QXlLyIiIqI0/z8dFcBS) +&] +[s3; &] +[s5; In the example above, you can see that files with an extension +of idl have a custom build step which invokes midl to generate +a header file and a type library file. The output files generated +by the custom build step need to be listed in the Output`-files +section because TheIDE uses these to determine when they are +out of date with respect to the input file and do a rebuild.&] +[s5; If the extension is specified as `"pre`-link`", then the specified +command is executed prior to invocation of the linker. If the +extension is specified as `"post`-link`" then the command is +executed after linking. The uppsrc Ole/Ctrl/Calc package uses +`"post`-link`" to register an .ocx by executing&] +[s5; regsvr32 /s /c `$(OUTPUT)`\calc.ocx&] +[s5; The `"When`" column in the custom`-build`-steps dialog allows +the entry of build flags so that the custom build step can be +applied selectively e.g. for one particular compiler or to have +separate commands for debug and non`-debug builds.&] +[s6; Adding source files to a package&] +[s5; The source files that belong to a package must be added to the +package. TheIDE will attempt to build all of the files that +belong to the package, according to the file extension. In TheIDE +you can see the list of source files for a particular package +in the left`-hand pane of TheIDE and also in the [/ package`-organizer]. + You can add files to a package in either the [/ package`-organizer] +or the main IDE window by right clicking in the pane containing +the list of source files. The right click menu provides two +options for adding files, `"[/ Insert package directory file(s)]`" +and `"[/ Insert any file(s)]`". The [/ Insert`-any`-files] option +allows you to browse to any folder to select source files. The +[/ Insert`-package`-directory`-files] option goes immediately to +the folder associated with the package. Source files can be +in sub`-directories of the package directory or in any folder +at all, but it is recommended to keep them in the package folder +tree because this makes it easier to move or copy the package +and is easier to organize.&] +[s6; Building packages from an ESC macro&] +[s5; You can build a package from a macro. The `"brc`" reference +example (in the reference assembly) includes the following macro.&] +[ {{10000@(255.255.150) [s3; [* macro ]`"Ship`" Ctrl`+Shift`+W `{&] +[s3; -|ClearConsole();&] +[s3; -|cout(`"Building BRC...`");&] +[s3; -|[* if](!Build(`"`"))&] +[s3; -|-|cout(`"Error building BRC.`");&] +[s3; -|[* else ]`{&] +[s3; -|-|cout(`"Shipping BRC...`");&] +[s3; -|-|[* if](!BuildProject(`"BRC/ship`", `"`"))&] +[s3; -|-|-|cout(`"Error shipping BRC.`");&] +[s3; -|-|[* else ]`{&] +[s3; -|-|-|cout(`"Build finished successfully.`");&] +[s3; -|-|-|[* if](!Execute(`"CopyBRCExecutable.exe`"))&] +[s3; -|-|-|-|cout(`"Error copying BRC executable!`");&] +[s3; -|-|-|[* else]&] +[s3; -|-|-|-|cout(`"BRC executable copied to network`");&] +[s3; -|-|`}&] +[s3; -|`}&] +[s3; `}]}}&] +[s5; The above macro will appear on the Macro menu in TheIDE as an +option named `"Ship`". The Build command on the third line of +the macro builds the current main package using whichever build +configuration is currently selected in TheIDE. If a non empty +string [* maincfg ]is passed to the Build function, then [* maincfg] +determines the build flags and not the currently selected build +configuration. The BuildProject function on line 7 builds the +`"BRC/ship`" package from the current assembly using the currently +selected build configuration. The Execute function executes the +supplied command and returns only when the command has completed.&] +[s5; There is also a Launch function that allows you to launch any +application. The Launch function does not wait for the command +to be completed before returning. For example, on the Windows +platform this could be used to launch Windows Explorer to open +at your main package source file directory with a command such +as &] +[s5; Launch(`"C:/Windows/explorer.exe /n,/e,C:/MyApps/Project1`");&] +[s5; The ESC macros relating to project building are :&] +[s5;l288;i150;O0; [/ bool Build()] `- builds the current project with +currently selected main configuration flags, returns true on +success&] +[s5;l288;i150;O0; [/ bool Build(maincfg)] `- builds the current project +with given main configuration flags, returns true on success&] +[s5;l288;i150;O0; [/ bool BuildProject(mainwspc, maincfg)] `- builds +given main package with given main configuration flags, returns +true on success&] +[s5;l288;i150;O0; [/ bool Execute(commandline)] `- executes a given +application, returns true on success&] +[s5;l288;i150;O0; [/ void Launch(commandline)] `- launches a detached +application and continues running&] +[s5;l288;i150;O0; [/ void ClearConsole()] clears the IDE console&] +[s5;l288;i150;O0; [/ void cout(message)] `- outputs message to the +console.&] +[s6; Binary resource extensions&] +[s5; [*/ BINARY`_MASK(mydir, `"`*.`*`")]&] +[s5; adds all files matching a given mask to the binary resource +file. This behaves more or less like BINARY`_ARRAY, so an array +of byte `* named mydir is created with the appropriate number +of elements, and moreover two parallel arrays int mydir`_length`[`] +and char `*mydir`_files`[`]. &] +[s5; The mydir`_length array holds lengths of the individual file +data objects, the mydir`_files array contains pointers to zero`-terminated +strings containing the individual file names (files are sorted +in ascending order using StdLess; file paths are currently +not kept, just the file names with extensions).&] +[s5; [*/ BINARY`[`_ARRAY `| `_MASK`](mydir`[, index`], `[BZ2 +`| ZIP`])]&] +[s5; can be used to automatically ZIP or BZ2 the file`[s`] before +putting them into the binary resource file.&] +[s5; These extensions, among others, enable simple creation of application +shipping (redistribution or installation) applications; you can +e.g. make a simple macro which builds your current project and +then builds a specialized shipping project which BZips your project +executable (and possibly some additional files) into the binary +resource and links it with a simple application which unpacks +its contents in a specified directory.&] +[s5; Both features (BRC enhancements and the shipping technique using +macros) are demonstrated in a simple reference example called +BRC (reference/BRC). BRC is the application being shipped (it +also demonstrates the various kinds of BINARY objects), BRC/ship +is the shipping application. Note that in the current version, +during BuildProject, the other application (here the shipping +application) inherits Output mode settings (notably the output +directory). This shouldn`'t be a big problem but nevertheless this behaviour might change in the future.]] \ No newline at end of file diff --git a/uppsrc/ide/app.tpp/Contact$en-us.tpp b/uppsrc/ide/app.tpp/Contact_en-us.tpp similarity index 98% rename from uppsrc/ide/app.tpp/Contact$en-us.tpp rename to uppsrc/ide/app.tpp/Contact_en-us.tpp index 6069ea9dd..60ad26492 100644 --- a/uppsrc/ide/app.tpp/Contact$en-us.tpp +++ b/uppsrc/ide/app.tpp/Contact_en-us.tpp @@ -1,25 +1,25 @@ -topic "Contact"; -[ $$0,0#00000000000000000000000000000000:Default] -[l288;i704;a17;O9;~~~.992; $$1,0#10431211400427159095818037425705:param] -[a83;*R6 $$2,5#31310162474203024125188417583966:caption] -[b83;* $$3,5#07864147445237544204411237157677:title] -[b167;a42;C $$4,13#40027414424643823182269349404212:item] -[b42;a42; $$5,5#45413000475342174754091244180557:text] -[l288;a17; $$6,6#27521748481378242620020725143825:desc] -[l321;t246;C@5;1 $$7,7#20902679421464641399138805415013:code] -[b2503; $$8,0#65142375456100023862071332075487:separator] -[*@(0.0.255) $$9,0#83433469410354161042741608181528:base] -[t4167;C+117 $$10,0#37138531426314131251341829483380:class] -[l288;a17;*1 $$11,11#70004532496200323422659154056402:requirement] -[i416;b42;a42;O9;~~~.416; $$12,12#10566046415157235020018451313112:tparam] -[b167;C $$13,13#92430459443460461911108080531343:item1] -[a42;C $$14,14#77422149456609303542238260500223:item2] -[*@2$(0.128.128) $$15,15#34511555403152284025741354420178:NewsDate] -[l321;*C$7 $$16,16#03451589433145915344929335295360:result] -[l321;b83;a83;*C$7 $$17,17#07531550463529505371228428965313:result`-line] -[l160;t4167;*C+117 $$18,5#88603949442205825958800053222425:package`-title] -[{_}%EN-US -[s0;~~~1184; Ultimate`+`+ team email: -|[^mailto`:mirek`.fidler`@gmail`.com^ mirek.fidler -`@gmail.com]&] -[s0;~~~1184; Ultimate`+`+ home page:-|[^http`:`/`/www`.ultimatepp`.org^ www.ultimatepp.or +topic "Contact"; +[ $$0,0#00000000000000000000000000000000:Default] +[l288;i704;a17;O9;~~~.992; $$1,0#10431211400427159095818037425705:param] +[a83;*R6 $$2,5#31310162474203024125188417583966:caption] +[b83;* $$3,5#07864147445237544204411237157677:title] +[b167;a42;C $$4,13#40027414424643823182269349404212:item] +[b42;a42; $$5,5#45413000475342174754091244180557:text] +[l288;a17; $$6,6#27521748481378242620020725143825:desc] +[l321;t246;C@5;1 $$7,7#20902679421464641399138805415013:code] +[b2503; $$8,0#65142375456100023862071332075487:separator] +[*@(0.0.255) $$9,0#83433469410354161042741608181528:base] +[t4167;C+117 $$10,0#37138531426314131251341829483380:class] +[l288;a17;*1 $$11,11#70004532496200323422659154056402:requirement] +[i416;b42;a42;O9;~~~.416; $$12,12#10566046415157235020018451313112:tparam] +[b167;C $$13,13#92430459443460461911108080531343:item1] +[a42;C $$14,14#77422149456609303542238260500223:item2] +[*@2$(0.128.128) $$15,15#34511555403152284025741354420178:NewsDate] +[l321;*C$7 $$16,16#03451589433145915344929335295360:result] +[l321;b83;a83;*C$7 $$17,17#07531550463529505371228428965313:result`-line] +[l160;t4167;*C+117 $$18,5#88603949442205825958800053222425:package`-title] +[{_}%EN-US +[s0;~~~1184; Ultimate`+`+ team email: -|[^mailto`:mirek`.fidler`@gmail`.com^ mirek.fidler +`@gmail.com]&] +[s0;~~~1184; Ultimate`+`+ home page:-|[^http`:`/`/www`.ultimatepp`.org^ www.ultimatepp.or g] ]] \ No newline at end of file diff --git a/uppsrc/ide/app.tpp/Cpp$en-us.tpp b/uppsrc/ide/app.tpp/Cpp_en-us.tpp similarity index 100% rename from uppsrc/ide/app.tpp/Cpp$en-us.tpp rename to uppsrc/ide/app.tpp/Cpp_en-us.tpp diff --git a/uppsrc/ide/app.tpp/CrossComp$en-gb.tpp b/uppsrc/ide/app.tpp/CrossComp_en-gb.tpp similarity index 98% rename from uppsrc/ide/app.tpp/CrossComp$en-gb.tpp rename to uppsrc/ide/app.tpp/CrossComp_en-gb.tpp index 627bfab03..2d02539ea 100644 --- a/uppsrc/ide/app.tpp/CrossComp$en-gb.tpp +++ b/uppsrc/ide/app.tpp/CrossComp_en-gb.tpp @@ -1,121 +1,121 @@ -topic "Using theIDE as a Cross Development Tool"; -[2 $$0,0#00000000000000000000000000000000:Default] -[l288;i1120;a17;O9;~~~.1408;2 $$1,0#10431211400427159095818037425705:param] -[a83;*R6 $$2,5#31310162474203024125188417583966:caption] -[b83;*4 $$3,5#07864147445237544204411237157677:title] -[i288;O9;C2 $$4,6#40027414424643823182269349404212:item] -[b42;a42;ph2 $$5,5#45413000475342174754091244180557:text] -[l288;b17;a17;2 $$6,6#27521748481378242620020725143825:desc] -[l321;t246;C@5;1 $$7,7#20902679421464641399138805415013:code] -[b2503;2 $$8,0#65142375456100023862071332075487:separator] -[*@(0.0.255)2 $$9,0#83433469410354161042741608181528:base] -[t4167;C2 $$10,0#37138531426314131251341829483380:class] -[l288;a17;*1 $$11,11#70004532496200323422659154056402:requirement] -[i417;b42;a42;O9;~~~.416;2 $$12,12#10566046415157235020018451313112:tparam] -[b167;C2 $$13,13#92430459443460461911108080531343:item1] -[i288;a42;O9;C2 $$14,14#77422149456609303542238260500223:item2] -[*@2$(0.128.128)2 $$15,15#34511555403152284025741354420178:NewsDate] -[l321;*C$7;2 $$16,16#03451589433145915344929335295360:result] -[l321;b83;a83;*C$7;2 $$17,17#07531550463529505371228428965313:result`-line] -[l160;t4167;*C+117 $$18,5#88603949442205825958800053222425:package`-title] -[2 $$19,0#53580023442335529039900623488521:gap] -[t4167;C2 $$20,20#70211524482531209251820423858195:class`-nested] -[b50;2 $$21,21#03324558446220344731010354752573:Par] -[{_}%EN-US -[s2; Using TheIDE as a Cross Development Tool&] -[s5; By turning off many of the features of TheIDE it can be used -as a cross development tool which uses pre`-defined external -makefiles. This is especially useful when moving applications -previously developed under other IDE`'s to TheIDE.&] -[s5; What follows is a description of how to use TheIDE with such -external makefiles without having to edit such files. There may -be other ways of achieving such tasks and it may be possible -to utilities the existing comprehensive build features of TheIDE. -However the aim was to minimize the effort of conversion in order -to get a valid compilation.&] -[s5; It should be noted that the following will only work with versions -of TheIDE from 602 onwards. This is because it requires additional -standard library functions not implemented in previous versions.&] -[s3; 1. Create an empty package within MyApps&] -[s5; Start TheIDE and create a new package. Define the of -the package and select an `'empty`' package. Immediately the -package has been created load and edit the .upp file in -the directory using TheIDE. If not already present add -the lines:&] -[s5; &] -[ {{10000<544;>2176; [s0; mainconfig&] -[s0; `"`"`=`"`";]}}&] -[s5; &] -[s5; Close and reopen the package. This tests that the package -can be found and that the .upp file is recognized and has -the correct syntax. Without the two lines above TheIDE will -not find the package.&] -[s0;3 &] -[s3; 2. Create a macro file for the package&] -[s0; &] -[s5; With the package open under TheIDE create a new file -with the extension usc... I suggest macro.usc. This will be the -macro file where all the work will be done. Create appropriate -macros in this file in the form of the examples below. This -is using the ESC scripting language. Note the `'Execute`' standard -library function is required. This is only available in versions -602 onwards of TheIDE.&] -[s5; &] -[ {{10000@(255.255.150) [s0; [* macro ]`"MakeA`" Alt`+A `{&] -[s0; -|Execute(`"c:/mingw/bin/mingw32`-make.exe `-C d:/myapps/control -`-f d:/myapps/control/makealarm all`");&] -[s0; `}&] -[s0; &] -[s0; [* macro ]`"CopyLibs`" Alt`+0 `{&] -[s0; -|Execute (`"cp.exe d:/myapps/edrtoslib/libed8515.a d:/myapps/control/`");&] -[s0; -|Execute(`"cp d:/myapps/edrtoslib/libed8535.a d:/myapps/control/`");&] -[s0; `}]}}&] -[s5; &] -[s5; The first macro named `'MakeA`' can be invoked by the `'Alt`+A`' -keystrokes or by clicking the macro name. When invoked it calls -the Execute standard function. The parameter within this function -is the full path name with its parameters for a command line -application execution. You will need to incorporate your own -command lines as appropriate for your cross development environment.&] -[s5; The above example is for the AVR cross development package WINAVR. - This utilities the mingw GCC compiler and other packages along -with the mingw32`-make utility.&] -[s5; Note that an explicit makefile has been defined and that an -explicit directory has been named. The reasons for this are -twofold. Firstly, the IDE has as its `'root`' directory `'MyApps`' -rather than the package directory when the command is executed. - Secondly the explicit directory naming results in the makefile -not having to be edited.&] -[s5; Also for some of the above `'applications; to be found the `'autoexec.bat`' -file path and other environmental variable names have been set -from the previous cross development application. This is not -part of the function of TheIDE.&] -[s3; 3. Running the Cross`-Compile&] -[s5; The `'macro`' menu item will appear sometime on the menu bar. -You may have to close and reopen the package for it to appear -for the first time. Click on `'macro`' and then the required -macro name to run it. Alternatively use the quick key, Alt`+M -in this case, if it has been defined. When selected the macro -body will be executed which will in this case invoke the application -make facility. Errors will be displayed in the bottom window. -Any errors can be located by clicking the left mouse button on -the error line as with the normal TheIDE operation.&] -[s3; 4. Adding Files and Spacers&] -[s5; Files and spacers can be added in the normal way by clicking -the right mouse button in the files window at the left side of -the screen. These however will have no association with the external -makefiles.&] -[s3; 5. Open File or Open Edited Files Warning.&] -[s5; I am unsure of what will happen with open / edited files with -the external makefiles. When the inbuilt `'build`' is executed -any open files are updated so that the changed will be compiled. -This does not appear to be the case when the external makefile -is used. It is recommended that all edited files are written -back prior to invoking the macro.&] -[s3; 6. Incorporation into TheIDE&] -[s5; When more knowledge of TheIDE is known it may be possible to -incorporate such external make facilities such as WINAVR into -its standard build features. There are mechanisms to select other -compiler builds but the extensive windows library will need to -be uncoupled. This however is a future project.&] +topic "Using theIDE as a Cross Development Tool"; +[2 $$0,0#00000000000000000000000000000000:Default] +[l288;i1120;a17;O9;~~~.1408;2 $$1,0#10431211400427159095818037425705:param] +[a83;*R6 $$2,5#31310162474203024125188417583966:caption] +[b83;*4 $$3,5#07864147445237544204411237157677:title] +[i288;O9;C2 $$4,6#40027414424643823182269349404212:item] +[b42;a42;ph2 $$5,5#45413000475342174754091244180557:text] +[l288;b17;a17;2 $$6,6#27521748481378242620020725143825:desc] +[l321;t246;C@5;1 $$7,7#20902679421464641399138805415013:code] +[b2503;2 $$8,0#65142375456100023862071332075487:separator] +[*@(0.0.255)2 $$9,0#83433469410354161042741608181528:base] +[t4167;C2 $$10,0#37138531426314131251341829483380:class] +[l288;a17;*1 $$11,11#70004532496200323422659154056402:requirement] +[i417;b42;a42;O9;~~~.416;2 $$12,12#10566046415157235020018451313112:tparam] +[b167;C2 $$13,13#92430459443460461911108080531343:item1] +[i288;a42;O9;C2 $$14,14#77422149456609303542238260500223:item2] +[*@2$(0.128.128)2 $$15,15#34511555403152284025741354420178:NewsDate] +[l321;*C$7;2 $$16,16#03451589433145915344929335295360:result] +[l321;b83;a83;*C$7;2 $$17,17#07531550463529505371228428965313:result`-line] +[l160;t4167;*C+117 $$18,5#88603949442205825958800053222425:package`-title] +[2 $$19,0#53580023442335529039900623488521:gap] +[t4167;C2 $$20,20#70211524482531209251820423858195:class`-nested] +[b50;2 $$21,21#03324558446220344731010354752573:Par] +[{_}%EN-US +[s2; Using TheIDE as a Cross Development Tool&] +[s5; By turning off many of the features of TheIDE it can be used +as a cross development tool which uses pre`-defined external +makefiles. This is especially useful when moving applications +previously developed under other IDE`'s to TheIDE.&] +[s5; What follows is a description of how to use TheIDE with such +external makefiles without having to edit such files. There may +be other ways of achieving such tasks and it may be possible +to utilities the existing comprehensive build features of TheIDE. +However the aim was to minimize the effort of conversion in order +to get a valid compilation.&] +[s5; It should be noted that the following will only work with versions +of TheIDE from 602 onwards. This is because it requires additional +standard library functions not implemented in previous versions.&] +[s3; 1. Create an empty package within MyApps&] +[s5; Start TheIDE and create a new package. Define the of +the package and select an `'empty`' package. Immediately the +package has been created load and edit the .upp file in +the directory using TheIDE. If not already present add +the lines:&] +[s5; &] +[ {{10000<544;>2176; [s0; mainconfig&] +[s0; `"`"`=`"`";]}}&] +[s5; &] +[s5; Close and reopen the package. This tests that the package +can be found and that the .upp file is recognized and has +the correct syntax. Without the two lines above TheIDE will +not find the package.&] +[s0;3 &] +[s3; 2. Create a macro file for the package&] +[s0; &] +[s5; With the package open under TheIDE create a new file +with the extension usc... I suggest macro.usc. This will be the +macro file where all the work will be done. Create appropriate +macros in this file in the form of the examples below. This +is using the ESC scripting language. Note the `'Execute`' standard +library function is required. This is only available in versions +602 onwards of TheIDE.&] +[s5; &] +[ {{10000@(255.255.150) [s0; [* macro ]`"MakeA`" Alt`+A `{&] +[s0; -|Execute(`"c:/mingw/bin/mingw32`-make.exe `-C d:/myapps/control +`-f d:/myapps/control/makealarm all`");&] +[s0; `}&] +[s0; &] +[s0; [* macro ]`"CopyLibs`" Alt`+0 `{&] +[s0; -|Execute (`"cp.exe d:/myapps/edrtoslib/libed8515.a d:/myapps/control/`");&] +[s0; -|Execute(`"cp d:/myapps/edrtoslib/libed8535.a d:/myapps/control/`");&] +[s0; `}]}}&] +[s5; &] +[s5; The first macro named `'MakeA`' can be invoked by the `'Alt`+A`' +keystrokes or by clicking the macro name. When invoked it calls +the Execute standard function. The parameter within this function +is the full path name with its parameters for a command line +application execution. You will need to incorporate your own +command lines as appropriate for your cross development environment.&] +[s5; The above example is for the AVR cross development package WINAVR. + This utilities the mingw GCC compiler and other packages along +with the mingw32`-make utility.&] +[s5; Note that an explicit makefile has been defined and that an +explicit directory has been named. The reasons for this are +twofold. Firstly, the IDE has as its `'root`' directory `'MyApps`' +rather than the package directory when the command is executed. + Secondly the explicit directory naming results in the makefile +not having to be edited.&] +[s5; Also for some of the above `'applications; to be found the `'autoexec.bat`' +file path and other environmental variable names have been set +from the previous cross development application. This is not +part of the function of TheIDE.&] +[s3; 3. Running the Cross`-Compile&] +[s5; The `'macro`' menu item will appear sometime on the menu bar. +You may have to close and reopen the package for it to appear +for the first time. Click on `'macro`' and then the required +macro name to run it. Alternatively use the quick key, Alt`+M +in this case, if it has been defined. When selected the macro +body will be executed which will in this case invoke the application +make facility. Errors will be displayed in the bottom window. +Any errors can be located by clicking the left mouse button on +the error line as with the normal TheIDE operation.&] +[s3; 4. Adding Files and Spacers&] +[s5; Files and spacers can be added in the normal way by clicking +the right mouse button in the files window at the left side of +the screen. These however will have no association with the external +makefiles.&] +[s3; 5. Open File or Open Edited Files Warning.&] +[s5; I am unsure of what will happen with open / edited files with +the external makefiles. When the inbuilt `'build`' is executed +any open files are updated so that the changed will be compiled. +This does not appear to be the case when the external makefile +is used. It is recommended that all edited files are written +back prior to invoking the macro.&] +[s3; 6. Incorporation into TheIDE&] +[s5; When more knowledge of TheIDE is known it may be possible to +incorporate such external make facilities such as WINAVR into +its standard build features. There are mechanisms to select other +compiler builds but the extensive windows library will need to +be uncoupled. This however is a future project.&] [s0; ]] \ No newline at end of file diff --git a/uppsrc/ide/app.tpp/Files$en-us.tpp b/uppsrc/ide/app.tpp/Files_en-us.tpp similarity index 97% rename from uppsrc/ide/app.tpp/Files$en-us.tpp rename to uppsrc/ide/app.tpp/Files_en-us.tpp index a36e32b6b..ad4c2a301 100644 --- a/uppsrc/ide/app.tpp/Files$en-us.tpp +++ b/uppsrc/ide/app.tpp/Files_en-us.tpp @@ -1,141 +1,141 @@ -topic "TheIDE and Ultimate++ File Types"; -[ $$0,0#00000000000000000000000000000000:Default] -[l288;i704;a17;O9;~~~.992; $$1,0#10431211400427159095818037425705:param] -[a83;*R6 $$2,5#31310162474203024125188417583966:caption] -[b83;* $$3,5#07864147445237544204411237157677:title] -[b167;a42;C $$4,13#40027414424643823182269349404212:item] -[b42;a42; $$5,5#45413000475342174754091244180557:text] -[l288;a17; $$6,6#27521748481378242620020725143825:desc] -[l321;t246;C@5;1 $$7,7#20902679421464641399138805415013:code] -[b2503; $$8,0#65142375456100023862071332075487:separator] -[*@(0.0.255) $$9,0#83433469410354161042741608181528:base] -[t4167;C+117 $$10,0#37138531426314131251341829483380:class] -[l288;a17;*1 $$11,11#70004532496200323422659154056402:requirement] -[i416;b42;a42;O9;~~~.416; $$12,12#10566046415157235020018451313112:tparam] -[b167;C $$13,13#92430459443460461911108080531343:item1] -[a42;C $$14,14#77422149456609303542238260500223:item2] -[*@2$(0.128.128) $$15,15#34511555403152284025741354420178:NewsDate] -[l321;*C$7 $$16,16#03451589433145915344929335295360:result] -[l321;b83;a83;*C$7 $$17,17#07531550463529505371228428965313:result`-line] -[l160;t4167;*C+117 $$18,5#88603949442205825958800053222425:package`-title] -[{_}%EN-US -[s0;= [*R6 TheIDE and Ultimate`+`+ File Types]&] -[s0;2 &] -[s0;2 &] -[s0; [*2 File types recognized by TheIDE][2 :]&] -[s0;2 &] -[ {{2413:7587^ [s0; [*2 .cpp, .cc, .cxx, .c, .m, .mm]&] -[s0;*2 ] -:: [s0; [2 Files with these extensions are recognized as source files -by TheIDE C`+`+ builders. ]] -:: [s0; [*2 .h, .hpp]] -:: [s0; [2 Header files. C`+`+ builders provide automatic header dependency -tests. U`+`+ packages tend to use ][*2 hpp][2 instead of ][*2 h][2 -in case that file contains template function definitions.]] -:: [s0; [*2 .icpp]] -:: [s0; [2 This file type is recognized as .cpp source file, but unlike -regular .cpp, which might be placed into the library first and -eventually eliminated by linker, .icpp one is always linked as -object file. This forces the file to be always linked. The rationale -of this is that you can put module initialization code into .icpp -that is linked into the executable even when code is not referenced -from other files.]] -:: [s0; [*2 .java]] -:: [s0; [2 Java files (Android builder).]] -:: [s0; [*2 .rc]] -:: [s0; [2 Windows resource files.]] -:: [s0; [*2 .lay]] -:: [s0; [2 Layout files. Contain layouts of e.g. dialogs.]] -:: [s0; [*2 .iml]] -:: [s0; [2 Image files. Contain icons and other raster images.]] -:: [s0; [*2 .t]] -:: [s0; [2 Translation files containing translation of strings used in -package to various languages.]] -:: [s0; [*2 .usc]] -:: [s0; [2 Scripts and other meta`-information. Contain widget descriptions -for layout designer, including visual representation description -using ESC scripts.]] -:: [s0; [*2 .upt]] -:: [s0; [2 Project templates.]] -:: [s0; [*2 .defs]] -:: [s0; [2 Fixed macro definitions overrides for Assist`+`+ C`+`+ parser.]] -:: [s0; [*2 .png]&] -[s0;*2 ] -:: [s0; [2 TheIDE displays images and if they are smaller than 1024x768, -edits them using icon designer.]] -:: [s0; [*2 .jpg]&] -[s0; [*2 .gif]&] -[s0; [*2 .bmp]] -:: [s0; [2 TheIDE displays images.]] -:: [s0; [*2 .qtf]] -:: [s0; [2 U`+`+ rich text format.]] -:: [s0; [*2 import.ext]] -:: [s0; [2 This file contains description of ][^topic`:`/`/ide`/app`/importext`$en`-us^2 imp -orting][2 3rd party source files contained in package.]]}}&] -[s0;2 &] -[s0;2 &] -[s0; [*2 Other text files you might encounter in packages (TheIDE might -have highlighting for them)]&] -[s0;2 &] -[ {{2353:7647^ [s0; [*2 .key]] -:: [s0; [2 Re`-definable keys definition file.]] -:: [s0; [2 .][*2 i]] -:: [s0; [2 These files are usually included by some .][*2 cpp][2 file(s) -for various purposes.]] -:: [s0; [2 .][*2 sch]] -:: [s0; [2 Database schema files. Contain definitions of database layouts. -U`+`+ database applications build database schema building scripts -from these files and also use them to define structures and constants -and variables needed for database interaction.]] -:: [s0; [*2 .witz]] -:: [s0; [2 Skylark HTML templates.]] -:: [s0; [*2 Copying]] -:: [s0; [2 This file contains license info for package.]] -:: [s0; [*2 COPYING`-PLAIN]] -:: [s0; [2 Contains license explanation.]] -:: [s0; [*2 AUTHORS]] -:: [s0; [2 List of authors.]]}}&] -[s0;*2 &] -[s0;*2 &] -[s0; [*2 Other files and directories that you can encounter in package -directories]&] -[s0;*2 &] -[ {{2370:7630h1;^ [s0; [2 .][*2 upp]] -::= [s0; [2 Package definition file. Its name must be the same as name -of package folder. It is normally managed by TheIDE`'s package -organizer.]] -::^ [s0; [*2 .tpp]] -::= [s0; [2 Directories with this extension represent Topic`+`+ group. -Inside this directories are topic files with the same .tpp extension.]] -::^ [s0; [*2 all.i]] -::= [s0; [2 This file inside .tpp directories contains is Topic`+`+ generated -file for inclusion of topic group into C`+`+.]] -::^ [s0; [*2 .tdx]] -::= [s0; [2 Pre`-parsed tpp files for fast searching.]] -::^ [s0; [*2 init]] -::= [s0; [2 Used by BLITZ to properly include icpp files before the rest -of the code.]] -::^ [s0; [*2 .scd]] -::= [s0; [2 Older format for spelling dictionaries, superseded by ][*2 .udc]]}}&] -[s0; &] -[s0; &] -[s0; [*2 Files found in the installation root folder. You can backup -or copy your configuration settings by copying the files in the -installation folder.]&] -[s0;*2 &] -[ {{2370:7630h1;^ [s0; [*2 theide.cfg]] -::= [s0; [2 This is a binary file file takes its name from theide.exe or -whatever the name of the executable is that runs the ide. It -contains configuration settings which are a serialization of -the Setup`->Environment dialog.]] -::^ [s0; [*2 .var]] -::= [s0; [2 A text file that contains an assembly configuration as specified -in the Assembly setup dialog.]] -::^ [s0; [*2 .bm]] -::= [s0; [2 A text file that contains the build settings associated with -a particular compiler/ linker (`"build method`")]] -::^ [s0; [*2 cfg folder]] -::= [s0; [2 This folder holds cache files of theide (tdx,cache,pkg`_cache) -`+ and configuration files (per package settings `- opened files, -cursor positions etc.)]]}}&] +topic "TheIDE and Ultimate++ File Types"; +[ $$0,0#00000000000000000000000000000000:Default] +[l288;i704;a17;O9;~~~.992; $$1,0#10431211400427159095818037425705:param] +[a83;*R6 $$2,5#31310162474203024125188417583966:caption] +[b83;* $$3,5#07864147445237544204411237157677:title] +[b167;a42;C $$4,13#40027414424643823182269349404212:item] +[b42;a42; $$5,5#45413000475342174754091244180557:text] +[l288;a17; $$6,6#27521748481378242620020725143825:desc] +[l321;t246;C@5;1 $$7,7#20902679421464641399138805415013:code] +[b2503; $$8,0#65142375456100023862071332075487:separator] +[*@(0.0.255) $$9,0#83433469410354161042741608181528:base] +[t4167;C+117 $$10,0#37138531426314131251341829483380:class] +[l288;a17;*1 $$11,11#70004532496200323422659154056402:requirement] +[i416;b42;a42;O9;~~~.416; $$12,12#10566046415157235020018451313112:tparam] +[b167;C $$13,13#92430459443460461911108080531343:item1] +[a42;C $$14,14#77422149456609303542238260500223:item2] +[*@2$(0.128.128) $$15,15#34511555403152284025741354420178:NewsDate] +[l321;*C$7 $$16,16#03451589433145915344929335295360:result] +[l321;b83;a83;*C$7 $$17,17#07531550463529505371228428965313:result`-line] +[l160;t4167;*C+117 $$18,5#88603949442205825958800053222425:package`-title] +[{_}%EN-US +[s0;= [*R6 TheIDE and Ultimate`+`+ File Types]&] +[s0;2 &] +[s0;2 &] +[s0; [*2 File types recognized by TheIDE][2 :]&] +[s0;2 &] +[ {{2413:7587^ [s0; [*2 .cpp, .cc, .cxx, .c, .m, .mm]&] +[s0;*2 ] +:: [s0; [2 Files with these extensions are recognized as source files +by TheIDE C`+`+ builders. ]] +:: [s0; [*2 .h, .hpp]] +:: [s0; [2 Header files. C`+`+ builders provide automatic header dependency +tests. U`+`+ packages tend to use ][*2 hpp][2 instead of ][*2 h][2 +in case that file contains template function definitions.]] +:: [s0; [*2 .icpp]] +:: [s0; [2 This file type is recognized as .cpp source file, but unlike +regular .cpp, which might be placed into the library first and +eventually eliminated by linker, .icpp one is always linked as +object file. This forces the file to be always linked. The rationale +of this is that you can put module initialization code into .icpp +that is linked into the executable even when code is not referenced +from other files.]] +:: [s0; [*2 .java]] +:: [s0; [2 Java files (Android builder).]] +:: [s0; [*2 .rc]] +:: [s0; [2 Windows resource files.]] +:: [s0; [*2 .lay]] +:: [s0; [2 Layout files. Contain layouts of e.g. dialogs.]] +:: [s0; [*2 .iml]] +:: [s0; [2 Image files. Contain icons and other raster images.]] +:: [s0; [*2 .t]] +:: [s0; [2 Translation files containing translation of strings used in +package to various languages.]] +:: [s0; [*2 .usc]] +:: [s0; [2 Scripts and other meta`-information. Contain widget descriptions +for layout designer, including visual representation description +using ESC scripts.]] +:: [s0; [*2 .upt]] +:: [s0; [2 Project templates.]] +:: [s0; [*2 .defs]] +:: [s0; [2 Fixed macro definitions overrides for Assist`+`+ C`+`+ parser.]] +:: [s0; [*2 .png]&] +[s0;*2 ] +:: [s0; [2 TheIDE displays images and if they are smaller than 1024x768, +edits them using icon designer.]] +:: [s0; [*2 .jpg]&] +[s0; [*2 .gif]&] +[s0; [*2 .bmp]] +:: [s0; [2 TheIDE displays images.]] +:: [s0; [*2 .qtf]] +:: [s0; [2 U`+`+ rich text format.]] +:: [s0; [*2 import.ext]] +:: [s0; [2 This file contains description of ][^topic`:`/`/ide`/app`/importext`$en`-us^2 imp +orting][2 3rd party source files contained in package.]]}}&] +[s0;2 &] +[s0;2 &] +[s0; [*2 Other text files you might encounter in packages (TheIDE might +have highlighting for them)]&] +[s0;2 &] +[ {{2353:7647^ [s0; [*2 .key]] +:: [s0; [2 Re`-definable keys definition file.]] +:: [s0; [2 .][*2 i]] +:: [s0; [2 These files are usually included by some .][*2 cpp][2 file(s) +for various purposes.]] +:: [s0; [2 .][*2 sch]] +:: [s0; [2 Database schema files. Contain definitions of database layouts. +U`+`+ database applications build database schema building scripts +from these files and also use them to define structures and constants +and variables needed for database interaction.]] +:: [s0; [*2 .witz]] +:: [s0; [2 Skylark HTML templates.]] +:: [s0; [*2 Copying]] +:: [s0; [2 This file contains license info for package.]] +:: [s0; [*2 COPYING`-PLAIN]] +:: [s0; [2 Contains license explanation.]] +:: [s0; [*2 AUTHORS]] +:: [s0; [2 List of authors.]]}}&] +[s0;*2 &] +[s0;*2 &] +[s0; [*2 Other files and directories that you can encounter in package +directories]&] +[s0;*2 &] +[ {{2370:7630h1;^ [s0; [2 .][*2 upp]] +::= [s0; [2 Package definition file. Its name must be the same as name +of package folder. It is normally managed by TheIDE`'s package +organizer.]] +::^ [s0; [*2 .tpp]] +::= [s0; [2 Directories with this extension represent Topic`+`+ group. +Inside this directories are topic files with the same .tpp extension.]] +::^ [s0; [*2 all.i]] +::= [s0; [2 This file inside .tpp directories contains is Topic`+`+ generated +file for inclusion of topic group into C`+`+.]] +::^ [s0; [*2 .tdx]] +::= [s0; [2 Pre`-parsed tpp files for fast searching.]] +::^ [s0; [*2 init]] +::= [s0; [2 Used by BLITZ to properly include icpp files before the rest +of the code.]] +::^ [s0; [*2 .scd]] +::= [s0; [2 Older format for spelling dictionaries, superseded by ][*2 .udc]]}}&] +[s0; &] +[s0; &] +[s0; [*2 Files found in the installation root folder. You can backup +or copy your configuration settings by copying the files in the +installation folder.]&] +[s0;*2 &] +[ {{2370:7630h1;^ [s0; [*2 theide.cfg]] +::= [s0; [2 This is a binary file file takes its name from theide.exe or +whatever the name of the executable is that runs the ide. It +contains configuration settings which are a serialization of +the Setup`->Environment dialog.]] +::^ [s0; [*2 .var]] +::= [s0; [2 A text file that contains an assembly configuration as specified +in the Assembly setup dialog.]] +::^ [s0; [*2 .bm]] +::= [s0; [2 A text file that contains the build settings associated with +a particular compiler/ linker (`"build method`")]] +::^ [s0; [*2 cfg folder]] +::= [s0; [2 This folder holds cache files of theide (tdx,cache,pkg`_cache) +`+ and configuration files (per package settings `- opened files, +cursor positions etc.)]]}}&] [s0; ]] \ No newline at end of file diff --git a/uppsrc/ide/app.tpp/FindFile$en-us.tpp b/uppsrc/ide/app.tpp/FindFile_en-us.tpp similarity index 100% rename from uppsrc/ide/app.tpp/FindFile$en-us.tpp rename to uppsrc/ide/app.tpp/FindFile_en-us.tpp diff --git a/uppsrc/ide/app.tpp/Flags$en-us.tpp b/uppsrc/ide/app.tpp/Flags_en-us.tpp similarity index 97% rename from uppsrc/ide/app.tpp/Flags$en-us.tpp rename to uppsrc/ide/app.tpp/Flags_en-us.tpp index 962a8d1fa..58ac6f2aa 100644 --- a/uppsrc/ide/app.tpp/Flags$en-us.tpp +++ b/uppsrc/ide/app.tpp/Flags_en-us.tpp @@ -1,105 +1,105 @@ -topic "Build flags"; -[2 $$0,0#00000000000000000000000000000000:Default] -[l288;i704;a17;O9;~~~.992;2 $$1,0#10431211400427159095818037425705:param] -[a83;*R6 $$2,5#31310162474203024125188417583966:caption] -[b133;*2 $$3,5#07864147445237544204411237157677:title] -[b167;a42;C2 $$4,6#40027414424643823182269349404212:item] -[b42;a42;ph2 $$5,5#45413000475342174754091244180557:text] -[l288;a17;2 $$6,6#27521748481378242620020725143825:desc] -[l321;t246;C@5;1 $$7,7#20902679421464641399138805415013:code] -[b2503;2 $$8,0#65142375456100023862071332075487:separator] -[*@(0.0.255)2 $$9,0#83433469410354161042741608181528:base] -[t4167;C2 $$10,0#37138531426314131251341829483380:class] -[l288;a17;*1 $$11,11#70004532496200323422659154056402:requirement] -[i417;b42;a42;O9;~~~.416;2 $$12,12#10566046415157235020018451313112:tparam] -[b167;C2 $$13,13#92430459443460461911108080531343:item1] -[i288;a42;O9;C2 $$14,14#77422149456609303542238260500223:item2] -[*@2$(0.128.128)2 $$15,15#34511555403152284025741354420178:NewsDate] -[l321;*C$7;2 $$16,16#03451589433145915344929335295360:result] -[l321;b83;a83;*C$7;2 $$17,17#07531550463529505371228428965313:result`-line] -[l160;t4167;*C+117 $$18,5#88603949442205825958800053222425:package`-title] -[{_}%EN-US -[s2; C`+`+ Build flags&] -[s3; [4 Main configuration flags]&] -[s0; &] -[ {{2429:7571 [s5;%- [* MT]] -:: [s5; Build multi`-threaded application.] -:: [s5;%- [* GUI]] -:: [s5; Build GUI application.] -:: [s5;%- [* DLL]] -:: [s5; Target is .dll/.so.]}}&] -[s0; &] -[s0; &] -[s3; [4 Output method flags]&] -[s0; &] -[ {{2441:7559^ [s5;%- [* DEBUG]] -::= [s5; Target is to be linked with debug version of libraries.] -::^ [s5;%- [* DEBUG`_MINIMAL]] -::= [s5; Minimal debug information `- depends on actual builder, usually -it should provide line numbers information to debugger.] -::^ [s5;%- [* DEBUG`_FULL]] -::= [s5; Full debug info.] -::^ [s5;%- [* SHARED]] -::= [s5; Prefer dynamic libraries when linking.] -::^ [s5;%- [* SO]] -::= [s5; Link non`-main packages as shared libraries (.dll/.so). Implies -SHARED.] -::^ [s5;%- [* BLITZ]] -::= [s5; Use blitz build.]}}&] -[s0; &] -[s0; &] -[s3; [4 Platform flags]&] -[s0; &] -[ {{2426:7574 [s5;%- [* WIN32]] -:: [s5; Win32.] -:: [s5;%- [* POSIX]] -:: [s5; Anything else then WIN32] -:: [s5;%- [* LINUX]] -:: [s5; Linux.] -:: [s5;%- [* FREEBSD]] -:: [s5; FreeBSD.] -:: [s5;%- [* SOLARIS]] -:: [s5; Solaris.]}}&] -[s0; &] -[s0; &] -[s3; [4 Flags determining the builder (supplied by builder method)]&] -[s0; &] -[ {{2426:7574 [s5;%- [* MSC71]] -:: [s5; Microsoft Visual C`+`+ 7.1] -:: [s5;%- [* MSC8]] -:: [s5; Microsoft Visual C`+`+ 8.0] -:: [s5;%- [* GCC]] -:: [s5; GCC compiler in implicit mode (32 or 64).] -:: [s5;%- [* GCC32]] -:: [s5; GCC compiler in 32`-bit mode.] -:: [s5;%- [* EVC`_ARM]] -:: [s5; Microsoft WinCE C`+`+ ARM complier.] -:: [s5;%- [* EVC`_MIPS]] -:: [s5; Microsoft WinCE C`+`+ MIPS complier.] -:: [s5;%- [* EVC`_SH3]] -:: [s5; Microsoft WinCE C`+`+ SH3 complier.] -:: [s5;%- [* EVC`_SH4]] -:: [s5; Microsoft WinCE C`+`+ SH4 complier.] -:: [s5;%- [* INTEL]] -:: [s5; Intel C`+`+.]}}&] -[s0; &] -[s0; &] -[s3; [4 Other flags (to be supplied by user)]&] -[s0; &] -[ {{2426:7574 [s5;%- [* X11]] -:: [s5; On POSIX systems turns on X11 backend.] -:: [s5;%- [* NOGTK]] -:: [s5; On POSIX systems turns on X11 backend and prevents linking against -GTK libraries.] -:: [s5;%- [* NONAMESPACE]] -:: [s5; Create all U`+`+ classes in global namespace instead of Upp`::.] -:: [s5;%- [* USEMALLOC]] -:: [s5; Use malloc to allocate memory instead of U`+`+ allocator.] -:: [s5;%- [* NOAPPSQL]] -:: [s5; Do not create global SQL/SQLR instances.] -:: [s5;%- [* NOMYSQL]] -:: [s5; Disable MySql package.] -:: [s5;%- [* NOPOSTGRESQL]] -:: [s5; Disable PostgreSQL package.]}}&] -[s0; &] +topic "Build flags"; +[2 $$0,0#00000000000000000000000000000000:Default] +[l288;i704;a17;O9;~~~.992;2 $$1,0#10431211400427159095818037425705:param] +[a83;*R6 $$2,5#31310162474203024125188417583966:caption] +[b133;*2 $$3,5#07864147445237544204411237157677:title] +[b167;a42;C2 $$4,6#40027414424643823182269349404212:item] +[b42;a42;ph2 $$5,5#45413000475342174754091244180557:text] +[l288;a17;2 $$6,6#27521748481378242620020725143825:desc] +[l321;t246;C@5;1 $$7,7#20902679421464641399138805415013:code] +[b2503;2 $$8,0#65142375456100023862071332075487:separator] +[*@(0.0.255)2 $$9,0#83433469410354161042741608181528:base] +[t4167;C2 $$10,0#37138531426314131251341829483380:class] +[l288;a17;*1 $$11,11#70004532496200323422659154056402:requirement] +[i417;b42;a42;O9;~~~.416;2 $$12,12#10566046415157235020018451313112:tparam] +[b167;C2 $$13,13#92430459443460461911108080531343:item1] +[i288;a42;O9;C2 $$14,14#77422149456609303542238260500223:item2] +[*@2$(0.128.128)2 $$15,15#34511555403152284025741354420178:NewsDate] +[l321;*C$7;2 $$16,16#03451589433145915344929335295360:result] +[l321;b83;a83;*C$7;2 $$17,17#07531550463529505371228428965313:result`-line] +[l160;t4167;*C+117 $$18,5#88603949442205825958800053222425:package`-title] +[{_}%EN-US +[s2; C`+`+ Build flags&] +[s3; [4 Main configuration flags]&] +[s0; &] +[ {{2429:7571 [s5;%- [* MT]] +:: [s5; Build multi`-threaded application.] +:: [s5;%- [* GUI]] +:: [s5; Build GUI application.] +:: [s5;%- [* DLL]] +:: [s5; Target is .dll/.so.]}}&] +[s0; &] +[s0; &] +[s3; [4 Output method flags]&] +[s0; &] +[ {{2441:7559^ [s5;%- [* DEBUG]] +::= [s5; Target is to be linked with debug version of libraries.] +::^ [s5;%- [* DEBUG`_MINIMAL]] +::= [s5; Minimal debug information `- depends on actual builder, usually +it should provide line numbers information to debugger.] +::^ [s5;%- [* DEBUG`_FULL]] +::= [s5; Full debug info.] +::^ [s5;%- [* SHARED]] +::= [s5; Prefer dynamic libraries when linking.] +::^ [s5;%- [* SO]] +::= [s5; Link non`-main packages as shared libraries (.dll/.so). Implies +SHARED.] +::^ [s5;%- [* BLITZ]] +::= [s5; Use blitz build.]}}&] +[s0; &] +[s0; &] +[s3; [4 Platform flags]&] +[s0; &] +[ {{2426:7574 [s5;%- [* WIN32]] +:: [s5; Win32.] +:: [s5;%- [* POSIX]] +:: [s5; Anything else then WIN32] +:: [s5;%- [* LINUX]] +:: [s5; Linux.] +:: [s5;%- [* FREEBSD]] +:: [s5; FreeBSD.] +:: [s5;%- [* SOLARIS]] +:: [s5; Solaris.]}}&] +[s0; &] +[s0; &] +[s3; [4 Flags determining the builder (supplied by builder method)]&] +[s0; &] +[ {{2426:7574 [s5;%- [* MSC71]] +:: [s5; Microsoft Visual C`+`+ 7.1] +:: [s5;%- [* MSC8]] +:: [s5; Microsoft Visual C`+`+ 8.0] +:: [s5;%- [* GCC]] +:: [s5; GCC compiler in implicit mode (32 or 64).] +:: [s5;%- [* GCC32]] +:: [s5; GCC compiler in 32`-bit mode.] +:: [s5;%- [* EVC`_ARM]] +:: [s5; Microsoft WinCE C`+`+ ARM complier.] +:: [s5;%- [* EVC`_MIPS]] +:: [s5; Microsoft WinCE C`+`+ MIPS complier.] +:: [s5;%- [* EVC`_SH3]] +:: [s5; Microsoft WinCE C`+`+ SH3 complier.] +:: [s5;%- [* EVC`_SH4]] +:: [s5; Microsoft WinCE C`+`+ SH4 complier.] +:: [s5;%- [* INTEL]] +:: [s5; Intel C`+`+.]}}&] +[s0; &] +[s0; &] +[s3; [4 Other flags (to be supplied by user)]&] +[s0; &] +[ {{2426:7574 [s5;%- [* X11]] +:: [s5; On POSIX systems turns on X11 backend.] +:: [s5;%- [* NOGTK]] +:: [s5; On POSIX systems turns on X11 backend and prevents linking against +GTK libraries.] +:: [s5;%- [* NONAMESPACE]] +:: [s5; Create all U`+`+ classes in global namespace instead of Upp`::.] +:: [s5;%- [* USEMALLOC]] +:: [s5; Use malloc to allocate memory instead of U`+`+ allocator.] +:: [s5;%- [* NOAPPSQL]] +:: [s5; Do not create global SQL/SQLR instances.] +:: [s5;%- [* NOMYSQL]] +:: [s5; Disable MySql package.] +:: [s5;%- [* NOPOSTGRESQL]] +:: [s5; Disable PostgreSQL package.]}}&] +[s0; &] [s0; ]] \ No newline at end of file diff --git a/uppsrc/ide/app.tpp/GPL$en-us.tpp b/uppsrc/ide/app.tpp/GPL_en-us.tpp similarity index 99% rename from uppsrc/ide/app.tpp/GPL$en-us.tpp rename to uppsrc/ide/app.tpp/GPL_en-us.tpp index 440e2f79c..44ef4da7e 100644 --- a/uppsrc/ide/app.tpp/GPL$en-us.tpp +++ b/uppsrc/ide/app.tpp/GPL_en-us.tpp @@ -1,32 +1,32 @@ -TITLE("GPL") -COMPRESSED -120,156,205,92,251,115,219,200,145,254,87,166,214,123,183,146,3,203,4,248,150,146,84,100,175,156,85,202,107,187,36,57,41,151,75,21,129,228,72,68,12,2,12,6,144,204,186,187,252,237,247,117,247,204,96,192,135,189,169,251,229,178,217,181,37,206,163,167,159,95,247,244,240,179,250,241,199,94,212,123,214,251,206,255,78,127,214,247,105,147,215,183,159,243,100,50,57,203,198,189,193,89,26,143,207,222,79,207,254,245,175,127,157,76,167,201,25,86,138,177,82,220,27,244,227,36,142,7,189,222,32,25,199,195,105,111,58,156,196,147,94,127,60,72,134,227,222,240,116,157,86,233,234,246,115,58,233,159,61,191,26,97,86,130,89,253,184,31,247,226,81,50,192,168,94,191,151,12,226,100,24,79,38,131,120,60,156,244,167,163,209,233,60,93,215,89,89,220,126,158,209,60,204,234,71,195,103,189,241,100,52,136,49,103,48,76,250,227,225,0,115,7,131,56,198,223,227,225,120,52,30,159,214,89,157,107,204,137,71,227,179,116,144,156,189,198,196,65,52,122,6,226,146,49,102,14, -146,193,104,208,159,36,253,120,146,36,163,105,127,48,29,128,234,56,57,205,106,13,26,103,152,66,211,48,107,136,237,6,195,65,220,7,51,6,227,97,31,163,198,248,115,208,155,198,9,246,156,244,134,67,108,167,191,58,14,17,115,48,109,132,205,146,241,144,6,79,6,147,184,63,158,36,131,100,148,96,251,222,24,39,164,189,135,167,11,109,230,152,214,79,226,179,26,4,157,189,254,211,240,44,198,228,49,24,147,244,166,189,100,52,158,98,63,144,138,211,246,167,211,184,63,193,126,131,120,216,139,251,167,243,114,65,39,76,134,189,62,109,56,193,156,17,22,102,126,12,71,49,200,77,250,19,236,56,142,251,125,252,119,56,152,140,79,141,38,33,212,101,117,251,249,249,159,142,122,39,189,147,100,56,60,198,236,105,20,247,158,77,250,131,126,127,48,154,14,226,94,31,187,96,141,1,49,107,212,131,24,227,97,50,57,157,165,6,91,214,3,226,234,235,223,197,241,152,68,223,163,169,96,124,127,50,236,99,251,17,254,3,153,226,140,125,112,39,153,14,38,253,254,164,119,58, -207,83,99,2,22,61,167,115,198,113,20,199,207,198,196,217,97,63,25,76,137,63,253,4,44,78,70,195,105,12,30,15,71,131,94,114,90,233,127,54,89,165,87,186,0,147,51,236,126,230,228,99,181,144,126,69,203,37,81,156,64,15,135,163,81,143,56,54,132,50,36,253,33,88,222,139,39,3,16,132,127,32,226,218,42,34,43,7,41,70,220,143,226,254,179,105,50,232,131,142,233,96,0,30,96,126,60,141,227,184,55,193,63,56,23,56,195,170,17,67,127,173,58,197,131,40,30,60,27,67,111,33,161,233,128,54,157,246,137,113,9,248,158,140,122,67,8,32,145,89,9,177,59,249,17,12,143,147,9,253,75,44,143,135,81,60,124,214,7,93,241,112,136,179,246,193,226,100,130,243,14,193,243,62,235,116,60,158,156,190,211,79,230,231,180,214,86,79,158,191,254,145,185,62,138,226,209,179,30,205,30,78,166,16,91,60,32,142,245,7,131,105,50,237,247,135,201,116,216,31,245,192,57,35,182,75,83,201,128,216,248,236,18,227,40,30,195,146,112,186,225,16,231,229,73,56, -235,56,38,50,146,201,116,68,231,182,75,220,189,200,179,130,104,128,54,156,137,2,60,247,26,48,137,6,207,38,147,81,175,63,5,31,112,252,222,16,202,13,227,159,64,176,144,107,2,205,39,235,159,127,73,31,244,221,11,107,154,255,245,247,255,249,143,139,119,47,62,94,171,207,166,119,246,135,231,87,191,131,173,168,63,191,251,168,254,124,241,238,226,234,252,173,250,240,241,213,219,203,215,10,255,94,188,187,190,248,207,91,30,247,82,253,85,87,6,14,65,37,145,250,75,83,104,21,195,46,228,67,37,127,188,84,175,203,245,166,202,30,150,181,58,122,125,140,1,147,105,196,195,212,155,74,107,117,93,222,215,79,105,165,213,155,178,41,22,41,121,151,72,93,22,243,19,55,125,56,85,55,122,181,206,181,250,144,167,115,29,169,235,6,82,84,253,126,47,82,175,74,83,211,248,95,207,149,234,193,219,197,119,47,224,26,198,74,125,188,62,151,249,196,102,117,241,168,171,77,9,234,50,163,214,186,90,101,117,173,23,170,46,213,28,164,169,180,88,168,69,102,234,42,155,53, -88,24,99,103,32,99,69,31,102,218,168,242,94,213,75,76,204,179,185,46,140,86,139,114,222,144,242,71,10,195,213,124,153,22,15,89,241,160,178,154,86,47,202,90,165,121,94,62,233,133,61,192,31,216,83,190,188,26,168,15,149,78,87,179,92,7,132,221,44,181,91,215,168,251,178,82,43,28,72,25,199,18,250,23,94,41,123,40,132,220,58,253,130,95,62,165,27,181,41,155,74,221,131,127,139,114,69,159,152,37,143,199,73,152,32,156,180,62,81,234,213,6,135,40,234,42,53,160,182,198,94,44,80,93,232,42,205,213,135,102,134,173,213,91,123,44,16,159,21,181,46,22,178,213,67,3,179,196,207,250,251,91,209,103,158,230,187,23,208,169,82,173,136,82,211,96,32,109,235,15,132,77,120,52,29,21,108,2,149,70,53,6,42,4,98,111,136,201,7,136,75,215,235,156,100,65,43,19,135,88,38,250,160,2,221,253,100,2,38,22,124,160,180,216,168,18,147,42,181,174,202,7,184,28,245,180,44,105,233,166,94,150,149,1,163,86,208,11,26,217,24,145,39,104,58,186, -46,87,218,78,59,180,89,231,116,243,18,234,3,14,206,54,158,223,111,179,89,149,86,155,131,124,47,76,173,211,197,201,177,82,159,202,70,205,211,130,79,187,81,66,12,115,223,82,108,32,196,178,60,9,244,231,111,75,93,168,39,48,120,173,211,47,196,149,142,44,34,250,136,8,171,244,189,174,42,58,21,86,180,162,140,88,87,215,21,200,192,65,223,99,151,253,4,154,29,45,12,101,155,214,68,161,90,166,143,34,233,64,79,2,147,106,45,169,67,159,58,178,90,84,61,136,74,176,157,65,29,30,177,181,202,238,121,233,167,204,44,143,163,118,171,74,207,117,246,72,139,52,213,156,150,94,64,64,21,243,237,65,215,108,134,118,34,212,23,63,6,83,105,140,213,217,142,86,98,58,148,80,129,198,185,80,73,139,20,170,208,79,66,175,99,255,153,232,146,91,238,75,81,62,249,117,23,37,173,105,104,101,240,217,132,66,186,41,105,133,90,207,107,145,38,251,66,195,194,41,116,192,82,248,118,48,108,78,58,101,100,23,240,100,150,45,72,117,201,121,17,79,117,193,182,111, -247,146,149,136,126,82,112,243,69,62,42,73,56,21,89,114,197,231,148,81,39,228,108,204,246,46,176,113,147,35,158,177,51,212,85,157,226,220,24,177,198,135,217,44,203,179,58,179,142,137,86,182,140,221,43,216,144,161,17,81,100,7,175,202,69,118,79,202,28,114,228,13,62,215,95,83,114,234,209,55,87,53,205,124,169,82,39,0,176,108,169,217,22,241,83,157,241,193,217,147,168,123,141,133,120,187,6,222,225,33,179,218,8,93,201,176,84,1,30,145,183,105,153,209,213,220,19,49,61,158,187,165,220,152,178,97,171,139,188,226,5,202,38,135,246,122,136,117,206,161,32,158,14,179,132,130,96,204,202,169,6,66,15,57,38,94,85,212,7,127,203,156,70,116,12,91,239,211,25,24,67,189,84,245,19,36,92,235,181,57,85,71,241,49,199,48,9,175,93,25,144,174,30,37,199,96,35,140,223,42,77,16,198,158,150,25,120,75,172,50,252,97,174,31,96,251,28,29,13,71,116,27,30,163,80,50,88,243,37,71,41,22,106,184,95,72,252,121,110,192,47,146,140,78,73,126, -236,97,201,39,219,35,209,234,68,29,14,38,102,192,166,234,204,192,169,33,243,95,187,200,221,144,58,155,26,211,140,151,140,184,220,162,196,252,138,130,213,166,117,34,29,63,3,185,92,118,53,148,230,241,33,50,241,213,6,110,158,118,209,185,145,128,177,6,62,198,71,132,45,28,125,20,171,2,133,2,185,86,130,32,230,201,233,138,120,66,11,4,104,199,18,162,201,138,52,143,68,238,24,70,129,8,140,0,16,88,113,200,173,202,69,51,23,50,56,208,144,148,161,172,180,0,252,118,78,42,64,210,8,214,114,49,235,238,39,140,88,55,53,135,161,142,250,188,161,97,249,38,226,205,66,31,70,164,213,75,0,17,68,122,236,9,116,64,60,173,17,110,152,11,150,59,107,250,152,92,6,233,33,57,96,246,47,143,101,182,96,58,22,228,66,43,57,13,130,157,83,15,138,162,176,217,180,187,33,31,38,43,22,217,99,182,104,136,40,85,206,88,190,178,137,135,63,17,185,92,13,93,157,179,17,114,176,90,182,203,224,79,196,42,93,35,146,18,86,32,151,10,221,32,181,129, -184,89,72,204,249,85,186,32,236,163,230,185,78,171,128,223,178,23,91,229,204,67,174,133,232,168,85,49,82,80,166,156,98,1,126,79,2,240,3,83,134,117,39,91,208,109,77,250,224,13,155,131,89,137,147,138,111,165,181,201,128,112,146,192,134,156,238,139,246,205,5,65,220,151,4,25,195,213,67,236,120,53,252,62,16,191,82,55,23,87,191,94,171,243,119,63,171,215,239,223,253,124,121,115,249,254,221,181,122,243,254,10,63,126,248,116,249,238,207,145,250,249,242,250,230,234,242,213,71,250,136,7,254,250,254,231,203,55,151,175,207,233,23,178,78,134,108,136,9,64,42,167,62,63,255,29,114,91,213,187,61,121,241,223,12,206,246,160,49,171,204,44,34,156,87,144,210,83,89,125,177,254,133,224,39,132,13,230,16,63,41,172,175,9,196,123,128,212,58,175,101,153,83,192,50,233,198,162,233,21,96,46,100,213,122,159,133,56,1,158,39,28,119,208,124,63,114,97,76,169,213,221,15,31,132,192,187,31,0,217,53,24,29,9,32,242,7,224,40,19,156,130,232,23,255,153, -98,54,159,134,114,237,133,179,67,191,158,90,105,196,79,165,51,62,118,240,17,173,66,43,131,220,236,17,50,134,102,242,50,114,128,246,208,121,250,116,42,156,207,29,231,95,138,214,102,76,29,184,1,66,100,174,101,165,51,140,112,39,181,46,43,86,36,198,46,145,35,200,103,50,116,38,138,28,161,210,25,231,204,61,6,88,144,55,34,142,136,20,115,88,121,131,28,145,96,240,47,240,181,112,41,247,96,123,228,39,208,134,156,53,204,243,134,178,6,218,162,108,200,104,0,164,237,199,133,151,22,56,25,110,127,247,3,33,222,11,138,15,214,200,216,109,166,139,5,224,7,91,156,193,12,4,38,12,220,226,144,58,71,8,121,20,104,82,90,206,19,178,251,109,182,70,254,141,76,187,131,212,91,229,62,19,55,206,176,176,169,77,198,238,4,65,27,171,59,133,74,231,156,128,84,77,177,35,12,235,248,29,198,210,139,200,66,70,94,13,174,26,30,166,92,109,79,113,164,148,5,193,254,123,222,144,164,205,113,134,93,116,86,115,244,85,7,117,81,29,193,197,234,53,129,190, -130,169,131,55,36,226,102,26,9,2,59,69,156,115,15,197,199,39,148,67,56,38,138,218,85,13,225,125,90,203,208,46,46,182,249,173,22,165,118,193,102,203,95,12,85,76,206,130,193,84,186,249,237,217,117,107,82,156,184,181,192,62,53,29,204,79,186,157,21,108,89,43,196,157,6,136,16,102,139,192,162,3,88,78,12,91,103,243,166,108,76,46,219,195,95,113,244,128,142,227,55,107,114,18,8,105,56,26,195,19,75,101,56,42,176,80,235,181,236,41,230,121,154,173,192,43,80,237,48,199,153,250,162,245,154,76,135,244,194,193,76,153,102,92,140,36,4,70,249,123,199,139,74,94,74,163,211,153,209,5,118,161,232,137,179,181,75,211,24,70,179,109,246,26,64,144,46,239,160,30,124,20,231,20,253,62,121,9,153,11,114,108,71,239,24,149,23,154,164,99,140,169,45,158,130,211,94,110,12,12,40,119,186,207,46,192,229,148,169,197,137,169,195,190,88,37,181,184,181,92,91,191,68,28,240,48,45,192,129,20,244,191,186,66,130,195,242,135,180,43,9,181,203,130,80,222, -70,14,94,237,87,42,231,140,183,156,100,189,108,56,72,175,228,12,7,77,43,178,129,125,87,151,57,110,116,125,170,141,30,251,34,213,181,61,113,12,113,195,224,247,169,110,10,224,12,205,214,162,71,114,10,163,3,80,17,6,139,12,193,217,115,39,61,182,140,33,132,51,79,27,35,9,144,199,184,247,89,46,1,123,14,25,176,0,112,108,114,21,78,81,13,121,108,246,13,206,140,88,38,226,187,100,182,243,100,11,178,16,171,170,50,234,228,16,89,179,93,178,88,193,137,69,126,167,128,163,96,159,53,79,155,182,103,228,127,202,156,63,97,204,88,213,45,166,160,223,25,137,177,116,196,109,207,234,196,78,115,56,91,40,239,41,149,235,0,192,148,144,137,236,144,18,51,156,250,83,28,100,83,206,170,5,175,64,106,117,8,126,56,188,113,136,11,115,112,193,38,32,94,32,14,110,20,80,64,70,197,192,228,11,169,66,113,142,67,181,184,42,165,64,71,62,235,137,234,60,112,223,65,146,43,220,36,69,230,15,33,191,138,66,184,243,241,100,75,172,159,193,66,140,108,109, -72,150,50,90,181,64,84,175,200,227,112,150,75,229,32,10,31,21,201,4,64,77,252,98,81,148,13,188,19,213,60,109,176,103,139,249,13,30,211,131,190,195,25,219,17,33,112,100,93,145,67,126,94,45,172,121,144,124,236,224,227,182,254,194,69,67,118,3,65,2,162,59,25,131,151,86,199,130,108,64,214,121,238,34,33,45,165,56,83,47,213,99,166,159,14,248,81,130,65,23,95,231,154,29,218,41,133,233,78,20,175,141,206,239,93,17,213,241,155,10,196,20,45,25,20,120,73,11,147,165,180,209,101,111,36,222,236,112,148,247,248,130,175,96,22,173,200,182,22,58,57,222,118,239,174,248,227,239,110,140,45,51,218,16,228,21,147,55,111,205,66,114,231,140,96,5,62,79,145,181,42,163,109,245,136,57,68,217,47,79,177,184,234,144,57,90,55,10,66,103,68,71,106,202,2,171,113,129,154,80,86,197,240,179,133,48,52,216,222,143,9,118,54,86,115,87,96,244,35,165,139,53,169,125,40,33,217,129,192,19,155,103,68,53,57,174,199,183,231,164,130,175,39,159,237,102, -203,1,113,181,38,53,91,91,83,41,189,169,15,77,128,230,174,130,101,49,155,93,14,167,194,226,90,36,23,202,204,183,195,12,251,214,16,187,218,48,38,107,184,220,181,44,14,123,160,200,214,180,219,42,142,164,161,22,208,91,156,141,132,229,43,21,250,157,232,73,180,149,221,198,225,213,134,131,133,148,111,240,11,206,145,229,88,149,126,72,171,5,226,1,239,142,73,234,137,162,121,91,225,11,117,174,161,180,190,14,235,33,124,199,80,123,194,45,215,56,50,17,182,10,74,154,140,128,77,183,254,133,97,146,92,86,116,133,83,88,210,165,122,129,113,103,10,50,91,114,142,210,110,37,153,148,254,170,43,201,213,93,17,80,10,92,84,127,201,247,178,62,200,221,152,154,156,74,49,46,147,51,123,101,184,195,129,203,130,50,154,76,46,181,86,228,254,210,135,7,226,160,219,196,37,91,124,42,226,209,94,179,223,6,111,236,53,249,151,223,80,168,99,250,57,85,143,101,222,172,36,94,35,72,148,21,50,58,235,224,219,211,10,152,110,93,213,172,114,206,49,160,174,141,126,156, -12,29,136,126,59,152,173,255,189,140,96,251,92,219,71,162,16,39,123,59,4,149,28,147,47,40,103,255,160,90,145,187,0,128,128,231,77,205,14,138,64,221,55,16,152,33,8,6,26,18,1,98,135,112,24,188,7,149,4,173,17,74,137,6,108,249,38,4,59,159,35,128,175,9,117,64,235,189,212,232,119,185,230,32,89,73,113,157,35,232,10,214,5,16,118,247,130,66,191,120,214,54,245,137,172,211,112,102,255,157,50,200,129,163,177,6,88,233,206,177,82,185,74,171,12,230,210,184,226,87,91,16,165,176,37,104,238,12,236,140,190,133,232,118,79,153,122,139,100,164,31,169,199,52,207,100,7,176,52,135,183,175,185,236,168,213,70,167,21,223,99,181,121,77,11,178,54,145,205,1,44,10,43,232,186,79,74,241,133,3,250,114,251,231,18,18,10,167,186,114,40,222,242,47,212,237,136,195,185,229,255,46,199,219,72,191,45,157,142,44,4,53,254,127,145,193,252,160,166,101,5,177,66,188,75,144,56,51,206,181,222,94,82,177,237,251,185,3,39,39,208,195,165,191,52,7, -105,133,120,67,254,145,175,184,165,98,113,207,197,210,130,160,43,249,88,100,137,59,21,24,87,217,232,208,20,130,181,239,219,51,159,209,129,38,171,101,84,11,0,31,42,169,61,169,235,102,230,226,201,76,152,191,23,7,117,42,12,247,173,199,145,98,158,80,197,23,166,34,159,149,143,195,52,136,47,233,165,60,221,205,252,192,81,190,50,126,195,105,71,72,190,148,19,189,18,134,187,203,150,174,104,176,67,23,126,143,77,26,74,190,178,54,239,65,230,152,55,134,77,39,53,166,156,103,174,118,7,67,72,73,253,245,125,86,100,82,88,166,196,205,142,23,207,93,101,107,185,115,95,132,241,143,136,203,108,73,143,65,20,93,11,228,121,26,194,144,246,68,56,229,47,16,255,35,137,128,145,162,89,107,150,187,118,248,56,218,57,79,104,59,124,235,73,113,198,150,14,233,40,124,109,234,107,80,30,43,135,211,142,168,86,32,149,77,187,50,120,52,147,4,134,228,116,220,218,193,42,253,7,199,236,21,116,154,177,238,145,156,144,40,254,2,69,214,185,0,29,67,62,254,216,157, -16,81,173,146,44,216,108,76,13,32,200,213,47,242,194,221,243,83,146,101,40,40,49,10,98,154,253,86,46,19,72,173,125,114,157,188,203,189,29,144,112,191,131,61,130,189,8,190,5,150,65,23,87,182,156,199,70,192,169,216,124,206,132,216,126,22,70,222,169,189,178,103,221,88,75,227,12,35,102,63,139,82,1,184,105,6,219,221,5,118,116,209,65,121,6,186,188,24,62,104,56,135,48,123,33,107,199,121,210,61,13,97,239,230,97,185,149,80,183,181,216,213,26,25,89,208,147,19,44,178,85,191,10,152,113,8,114,12,66,200,33,235,83,125,74,10,70,72,52,249,150,64,240,114,136,132,186,80,68,116,153,14,168,191,174,169,38,205,153,155,69,10,206,251,119,210,195,115,50,72,4,193,21,166,49,110,122,98,188,89,30,220,254,27,187,99,97,186,110,19,45,229,43,180,180,161,200,81,219,160,71,65,39,35,225,118,224,241,62,178,188,165,58,166,19,100,231,187,50,239,136,165,106,198,204,112,189,9,44,114,242,214,187,75,182,215,147,174,235,35,171,218,38,38,79,24, -27,23,139,142,210,41,190,97,177,4,32,255,164,251,63,252,255,190,201,197,247,228,89,138,204,245,144,60,135,78,158,78,95,194,252,151,116,119,93,111,165,65,38,163,114,170,239,76,161,57,182,127,133,125,180,231,9,161,111,182,5,186,247,125,160,34,131,20,156,187,215,224,182,210,120,88,90,84,136,170,205,246,109,143,52,53,81,218,157,186,212,176,226,136,183,204,102,89,45,87,15,121,250,228,27,32,108,182,186,123,30,89,7,49,169,164,123,253,153,43,125,18,225,29,36,191,117,25,113,100,11,96,135,51,4,41,39,209,229,236,220,171,146,236,159,218,114,116,71,240,53,131,98,186,219,231,226,142,237,223,250,119,46,63,133,226,150,252,45,38,110,101,86,62,165,220,209,136,17,105,4,95,30,213,217,74,91,88,241,173,156,226,59,108,168,195,102,145,45,83,179,102,66,113,206,217,173,119,136,254,70,94,62,145,70,156,157,174,137,110,199,132,163,11,126,128,61,89,237,59,135,246,48,210,181,166,88,71,150,33,202,216,26,234,125,83,217,251,128,160,159,199,30,172,189,35, -184,251,169,205,124,173,111,182,190,130,181,29,188,88,242,213,222,137,234,218,151,237,0,18,240,133,52,27,255,157,147,192,90,99,181,23,103,129,55,223,186,224,56,36,187,49,201,238,242,222,66,7,42,255,192,154,253,245,7,5,150,170,86,255,104,22,15,92,112,20,24,20,100,204,246,42,31,72,151,162,152,118,131,238,173,148,221,37,9,213,151,212,145,220,225,175,50,219,238,233,230,26,211,104,115,28,133,10,203,248,155,185,203,234,65,26,117,228,186,141,102,27,75,21,144,38,99,30,164,240,126,99,239,233,143,29,18,160,134,75,88,84,109,147,10,191,197,78,177,134,111,26,173,217,35,220,80,117,150,246,245,218,117,120,174,84,229,108,239,25,87,221,130,91,137,210,162,125,67,61,82,80,58,147,173,154,28,22,173,229,70,76,238,101,16,131,30,44,114,221,227,226,217,190,219,134,73,13,1,51,184,9,166,89,56,177,35,196,77,160,174,7,44,210,54,83,168,157,62,176,116,171,41,4,54,219,228,2,21,165,109,87,85,229,6,169,200,230,238,5,119,106,4,54,31,128, -15,183,13,196,38,200,186,228,118,167,210,95,35,218,91,162,5,66,200,156,90,95,248,110,193,255,132,60,149,161,10,14,226,139,140,90,50,24,219,121,75,218,0,178,28,127,103,224,18,225,115,169,156,133,129,146,135,205,216,113,194,123,87,20,245,124,197,138,165,252,13,242,247,193,196,173,91,172,78,5,13,127,93,234,156,160,187,228,222,212,212,88,136,225,106,6,146,34,102,119,35,146,205,155,60,133,143,206,170,121,179,50,236,239,197,13,206,210,188,117,254,58,92,62,108,15,150,154,170,187,17,114,131,130,219,148,189,227,41,203,99,141,10,183,53,187,39,237,84,12,215,77,197,78,111,79,201,16,82,107,172,202,241,79,226,18,130,142,31,211,54,165,208,85,5,244,120,99,139,127,92,109,116,173,147,174,212,200,156,203,234,141,187,221,98,216,34,35,207,186,155,47,83,155,80,209,89,3,10,221,205,166,141,109,196,130,135,202,174,88,47,183,122,165,187,226,151,156,35,106,139,197,25,217,5,185,25,129,10,107,105,110,113,166,177,230,75,6,98,159,82,191,242,137,117,73, -77,242,109,27,212,3,117,197,192,230,197,37,217,109,124,29,224,137,238,86,42,190,119,165,70,203,29,146,56,65,175,44,104,135,197,218,148,136,251,67,109,4,40,11,169,222,27,182,89,238,10,154,7,41,163,159,116,102,107,192,205,218,95,120,115,3,219,203,69,89,136,0,22,8,88,11,110,249,229,160,170,204,146,53,136,144,166,237,90,238,56,56,75,171,163,175,245,84,150,72,185,123,242,125,37,214,71,218,224,41,94,122,89,102,243,221,84,236,102,203,162,66,21,230,230,68,34,155,246,164,139,11,110,49,123,178,25,235,12,76,209,143,50,114,166,119,3,155,132,101,83,239,120,242,3,81,114,34,81,114,183,50,109,187,118,154,54,160,7,57,67,219,120,66,130,114,157,148,156,171,85,228,242,108,250,60,235,216,199,108,211,222,222,133,133,4,113,241,45,198,217,233,213,34,159,202,217,160,233,208,177,39,158,112,75,192,98,33,133,17,82,19,40,196,131,166,225,235,37,247,21,116,142,24,52,16,33,44,218,251,70,113,227,254,40,109,63,101,103,106,231,129,135,84,157,10, -198,16,171,146,209,139,99,132,56,151,198,216,13,244,130,34,106,97,13,62,149,224,28,208,143,116,162,132,141,211,141,144,156,53,32,17,158,0,122,235,234,159,246,122,117,86,46,118,111,16,15,136,122,42,13,118,135,159,51,48,251,92,219,74,165,31,51,190,185,22,61,160,38,245,71,121,131,227,251,30,14,188,52,16,92,65,120,153,172,16,127,226,204,215,116,224,206,26,156,221,65,131,129,26,50,138,16,56,144,89,103,85,230,128,42,21,199,12,217,187,157,33,207,96,136,66,32,92,42,45,98,194,66,67,239,114,246,251,210,207,197,91,248,166,87,185,220,129,118,22,187,190,159,65,189,93,154,164,73,85,98,42,160,146,148,161,6,13,88,64,218,224,70,20,205,106,166,171,182,193,215,131,107,170,72,221,115,141,97,107,236,78,86,35,254,54,232,105,180,161,252,238,7,242,43,212,24,87,185,37,168,131,176,243,220,193,183,183,180,247,3,65,77,120,43,39,178,198,231,124,163,35,171,172,92,184,233,236,229,4,222,246,74,30,82,143,221,211,251,139,28,97,195,230,187,76, -136,60,108,131,99,116,25,134,155,66,169,242,191,65,141,211,242,81,175,219,25,214,187,61,113,160,213,181,20,7,102,197,160,100,167,115,135,27,18,197,181,119,94,98,216,123,206,142,233,111,129,121,209,70,190,84,39,219,212,221,208,227,30,76,80,218,208,38,251,22,146,250,0,227,67,113,232,31,191,115,254,173,237,14,13,59,227,103,59,229,74,147,33,26,9,46,190,124,106,124,35,187,125,154,67,241,145,101,225,172,19,134,176,104,105,161,23,1,15,101,154,27,129,32,154,159,208,88,85,20,196,1,95,213,72,119,54,230,183,117,10,254,149,123,223,213,125,50,37,96,102,85,122,44,67,239,190,164,241,99,1,39,100,227,143,159,242,32,62,39,223,236,147,127,247,37,28,119,21,191,123,175,254,118,126,117,117,254,238,230,147,157,144,12,71,110,194,28,26,51,135,202,196,183,159,231,234,68,221,190,210,109,75,83,208,200,222,182,113,19,245,160,70,174,141,56,108,29,122,27,224,23,136,252,245,247,87,134,47,109,216,160,188,65,176,12,193,230,60,125,58,249,187,146,206,15, -233,0,104,107,123,196,86,9,181,36,115,199,168,237,56,201,142,224,243,60,81,47,111,91,52,106,115,102,215,228,18,158,236,238,135,207,47,57,170,152,219,187,31,124,87,173,63,135,117,22,95,0,126,125,167,175,45,81,106,134,253,132,27,51,106,61,245,205,58,226,163,187,201,176,189,35,151,177,110,117,219,60,183,146,107,168,58,229,39,64,130,243,239,179,186,32,79,46,23,38,65,10,97,209,47,152,116,211,54,19,84,153,249,18,92,58,253,179,73,253,66,246,190,46,76,50,2,153,114,157,23,62,2,203,93,47,57,127,10,7,16,187,248,130,67,174,226,197,109,165,72,231,87,218,178,94,16,22,105,121,65,175,185,12,93,14,200,139,50,230,67,165,215,105,86,73,4,170,42,1,122,39,135,21,48,97,5,188,5,18,43,72,151,228,197,129,173,251,251,34,228,142,190,48,224,160,26,193,66,156,156,215,14,41,228,22,155,29,21,137,84,167,124,193,119,161,12,175,130,70,199,80,137,14,54,61,165,33,254,177,125,134,220,239,198,180,201,123,66,22,225,34,93,165,15,242, -234,162,237,232,218,56,51,142,220,149,14,127,206,221,63,192,19,18,183,5,213,214,124,207,39,139,192,223,102,252,102,146,244,212,138,212,62,162,0,112,180,58,196,15,43,187,196,210,113,142,110,91,2,118,149,84,229,165,244,153,192,105,166,92,236,164,63,103,154,70,203,11,55,54,191,116,62,111,56,136,96,4,205,160,126,198,198,16,246,21,241,208,161,197,161,6,229,42,105,54,5,78,161,199,94,91,138,72,81,135,47,131,180,189,223,222,126,60,106,136,246,227,91,123,185,145,217,151,106,22,23,119,172,124,195,185,34,247,97,167,11,129,110,110,51,80,154,89,238,184,183,110,150,163,123,158,130,60,191,26,168,139,119,63,171,247,111,246,62,245,232,188,185,182,127,60,127,73,149,110,58,204,57,167,223,82,140,190,97,108,130,95,126,34,199,255,14,192,204,70,91,35,179,18,247,112,59,113,225,122,129,67,230,229,154,218,249,4,198,181,253,92,193,67,75,155,249,216,195,61,240,27,35,88,163,156,50,23,141,112,16,146,129,169,173,55,208,32,42,172,112,45,127,73,73,148, -64,19,233,219,225,192,152,213,91,1,74,2,179,127,28,70,93,101,29,147,8,94,39,135,109,128,12,203,78,252,241,252,95,110,218,194,118,93,167,246,190,175,69,116,190,153,187,12,149,132,96,23,167,126,38,189,167,51,16,253,126,246,202,13,230,190,76,190,210,163,79,236,149,22,93,203,250,183,204,242,230,73,250,60,97,94,143,122,99,195,18,204,194,88,116,217,237,8,231,165,120,13,35,46,146,241,104,208,104,65,143,94,188,139,65,12,161,111,11,176,73,241,186,228,252,142,59,169,56,74,242,81,27,185,209,225,103,183,228,226,193,180,109,54,189,78,20,253,239,247,196,111,94,207,181,112,4,44,161,246,253,130,238,8,101,175,25,82,45,238,29,76,165,85,44,101,53,225,231,3,127,236,44,218,253,134,128,223,83,143,200,31,177,21,47,69,222,156,33,91,59,165,51,151,83,246,32,128,116,20,229,204,191,207,237,168,135,32,252,246,37,99,103,193,172,222,223,232,251,205,215,243,228,119,3,132,220,89,240,219,48,176,125,171,35,223,163,224,54,123,219,94,81,118,86,59, -234,182,214,31,239,102,14,39,191,141,81,97,165,199,102,173,75,234,235,170,173,156,28,212,132,221,66,63,162,206,90,228,169,255,118,121,243,203,251,143,55,240,67,159,60,148,59,243,112,197,94,250,238,32,12,114,117,157,165,126,189,184,122,253,11,230,158,191,186,124,123,121,243,137,156,231,155,203,155,119,23,215,242,122,237,92,125,56,191,186,185,124,253,241,237,249,149,250,240,241,234,195,251,235,11,202,91,53,43,94,103,165,111,136,71,190,90,129,223,177,83,102,106,14,176,136,238,64,66,147,106,219,103,58,141,66,135,55,234,172,214,185,184,110,121,127,70,225,2,198,246,173,68,161,179,206,246,23,99,68,255,199,175,196,240,167,110,29,32,189,216,229,2,77,216,64,68,101,78,9,31,220,121,34,79,145,41,156,106,234,132,172,202,2,231,150,183,178,8,149,112,212,89,190,199,181,94,238,32,188,160,65,58,242,238,221,190,142,74,137,253,149,239,33,207,179,47,54,24,48,240,198,56,118,167,70,30,1,117,90,173,97,200,250,180,115,44,167,21,5,146,152,71,201,158,156, -145,141,166,209,150,207,33,151,163,84,215,225,28,92,102,94,82,202,198,130,61,127,117,253,254,237,199,155,139,183,159,194,140,230,76,32,150,232,154,170,55,176,170,187,59,126,13,254,116,247,211,201,174,85,110,187,173,54,182,114,176,211,57,237,40,183,8,29,47,214,89,201,190,45,244,53,63,151,13,159,117,8,152,223,253,20,18,183,109,8,20,12,201,17,108,214,132,96,248,10,180,125,147,208,158,65,10,36,237,138,214,104,220,131,247,206,203,128,78,98,127,240,165,230,251,123,190,99,179,215,98,237,158,220,131,96,43,136,51,138,244,220,38,194,137,51,23,130,130,7,128,7,201,179,111,250,228,214,134,29,211,140,20,6,203,222,189,152,131,140,47,12,6,87,186,104,20,125,63,144,161,239,48,161,104,197,133,15,211,100,210,20,224,177,223,30,45,15,28,7,247,142,210,151,3,240,20,178,210,114,131,101,142,220,183,82,248,246,122,187,26,114,173,99,37,95,176,128,205,168,252,146,203,93,88,33,79,50,168,111,129,223,161,182,57,67,251,16,13,177,125,39,173,37,239,226, -82,31,234,117,176,169,112,74,221,59,112,25,103,210,203,199,115,72,223,205,30,171,249,84,110,202,197,166,208,206,223,16,80,152,109,252,190,210,177,214,210,195,118,72,16,200,134,17,75,74,176,224,221,93,96,63,144,207,145,109,110,133,245,27,121,107,111,148,237,162,162,38,45,115,236,235,169,216,246,47,68,165,250,37,157,127,209,213,94,199,253,123,105,116,178,56,254,102,3,219,46,139,63,70,42,6,238,173,178,156,191,114,40,24,110,7,68,244,133,60,38,115,15,38,255,10,85,220,103,12,135,191,148,198,87,217,236,221,100,91,205,34,197,12,53,70,234,88,193,19,118,159,70,248,139,220,42,116,145,41,53,7,84,37,53,76,144,19,228,239,143,9,74,116,246,197,4,63,146,166,160,38,17,154,47,184,133,18,224,51,238,80,12,119,12,174,103,76,219,77,101,23,119,37,68,241,69,79,174,15,218,125,47,195,2,200,216,37,111,191,253,43,109,14,212,191,213,237,255,2,178,226,101,221, - +TITLE("GPL") +COMPRESSED +120,156,205,92,251,115,219,200,145,254,87,166,214,123,183,146,3,203,4,248,150,146,84,100,175,156,85,202,107,187,36,57,41,151,75,21,129,228,72,68,12,2,12,6,144,204,186,187,252,237,247,117,247,204,96,192,135,189,169,251,229,178,217,181,37,206,163,167,159,95,247,244,240,179,250,241,199,94,212,123,214,251,206,255,78,127,214,247,105,147,215,183,159,243,100,50,57,203,198,189,193,89,26,143,207,222,79,207,254,245,175,127,157,76,167,201,25,86,138,177,82,220,27,244,227,36,142,7,189,222,32,25,199,195,105,111,58,156,196,147,94,127,60,72,134,227,222,240,116,157,86,233,234,246,115,58,233,159,61,191,26,97,86,130,89,253,184,31,247,226,81,50,192,168,94,191,151,12,226,100,24,79,38,131,120,60,156,244,167,163,209,233,60,93,215,89,89,220,126,158,209,60,204,234,71,195,103,189,241,100,52,136,49,103,48,76,250,227,225,0,115,7,131,56,198,223,227,225,120,52,30,159,214,89,157,107,204,137,71,227,179,116,144,156,189,198,196,65,52,122,6,226,146,49,102,14, +146,193,104,208,159,36,253,120,146,36,163,105,127,48,29,128,234,56,57,205,106,13,26,103,152,66,211,48,107,136,237,6,195,65,220,7,51,6,227,97,31,163,198,248,115,208,155,198,9,246,156,244,134,67,108,167,191,58,14,17,115,48,109,132,205,146,241,144,6,79,6,147,184,63,158,36,131,100,148,96,251,222,24,39,164,189,135,167,11,109,230,152,214,79,226,179,26,4,157,189,254,211,240,44,198,228,49,24,147,244,166,189,100,52,158,98,63,144,138,211,246,167,211,184,63,193,126,131,120,216,139,251,167,243,114,65,39,76,134,189,62,109,56,193,156,17,22,102,126,12,71,49,200,77,250,19,236,56,142,251,125,252,119,56,152,140,79,141,38,33,212,101,117,251,249,249,159,142,122,39,189,147,100,56,60,198,236,105,20,247,158,77,250,131,126,127,48,154,14,226,94,31,187,96,141,1,49,107,212,131,24,227,97,50,57,157,165,6,91,214,3,226,234,235,223,197,241,152,68,223,163,169,96,124,127,50,236,99,251,17,254,3,153,226,140,125,112,39,153,14,38,253,254,164,119,58, +207,83,99,2,22,61,167,115,198,113,20,199,207,198,196,217,97,63,25,76,137,63,253,4,44,78,70,195,105,12,30,15,71,131,94,114,90,233,127,54,89,165,87,186,0,147,51,236,126,230,228,99,181,144,126,69,203,37,81,156,64,15,135,163,81,143,56,54,132,50,36,253,33,88,222,139,39,3,16,132,127,32,226,218,42,34,43,7,41,70,220,143,226,254,179,105,50,232,131,142,233,96,0,30,96,126,60,141,227,184,55,193,63,56,23,56,195,170,17,67,127,173,58,197,131,40,30,60,27,67,111,33,161,233,128,54,157,246,137,113,9,248,158,140,122,67,8,32,145,89,9,177,59,249,17,12,143,147,9,253,75,44,143,135,81,60,124,214,7,93,241,112,136,179,246,193,226,100,130,243,14,193,243,62,235,116,60,158,156,190,211,79,230,231,180,214,86,79,158,191,254,145,185,62,138,226,209,179,30,205,30,78,166,16,91,60,32,142,245,7,131,105,50,237,247,135,201,116,216,31,245,192,57,35,182,75,83,201,128,216,248,236,18,227,40,30,195,146,112,186,225,16,231,229,73,56, +235,56,38,50,146,201,116,68,231,182,75,220,189,200,179,130,104,128,54,156,137,2,60,247,26,48,137,6,207,38,147,81,175,63,5,31,112,252,222,16,202,13,227,159,64,176,144,107,2,205,39,235,159,127,73,31,244,221,11,107,154,255,245,247,255,249,143,139,119,47,62,94,171,207,166,119,246,135,231,87,191,131,173,168,63,191,251,168,254,124,241,238,226,234,252,173,250,240,241,213,219,203,215,10,255,94,188,187,190,248,207,91,30,247,82,253,85,87,6,14,65,37,145,250,75,83,104,21,195,46,228,67,37,127,188,84,175,203,245,166,202,30,150,181,58,122,125,140,1,147,105,196,195,212,155,74,107,117,93,222,215,79,105,165,213,155,178,41,22,41,121,151,72,93,22,243,19,55,125,56,85,55,122,181,206,181,250,144,167,115,29,169,235,6,82,84,253,126,47,82,175,74,83,211,248,95,207,149,234,193,219,197,119,47,224,26,198,74,125,188,62,151,249,196,102,117,241,168,171,77,9,234,50,163,214,186,90,101,117,173,23,170,46,213,28,164,169,180,88,168,69,102,234,42,155,53, +88,24,99,103,32,99,69,31,102,218,168,242,94,213,75,76,204,179,185,46,140,86,139,114,222,144,242,71,10,195,213,124,153,22,15,89,241,160,178,154,86,47,202,90,165,121,94,62,233,133,61,192,31,216,83,190,188,26,168,15,149,78,87,179,92,7,132,221,44,181,91,215,168,251,178,82,43,28,72,25,199,18,250,23,94,41,123,40,132,220,58,253,130,95,62,165,27,181,41,155,74,221,131,127,139,114,69,159,152,37,143,199,73,152,32,156,180,62,81,234,213,6,135,40,234,42,53,160,182,198,94,44,80,93,232,42,205,213,135,102,134,173,213,91,123,44,16,159,21,181,46,22,178,213,67,3,179,196,207,250,251,91,209,103,158,230,187,23,208,169,82,173,136,82,211,96,32,109,235,15,132,77,120,52,29,21,108,2,149,70,53,6,42,4,98,111,136,201,7,136,75,215,235,156,100,65,43,19,135,88,38,250,160,2,221,253,100,2,38,22,124,160,180,216,168,18,147,42,181,174,202,7,184,28,245,180,44,105,233,166,94,150,149,1,163,86,208,11,26,217,24,145,39,104,58,186, +46,87,218,78,59,180,89,231,116,243,18,234,3,14,206,54,158,223,111,179,89,149,86,155,131,124,47,76,173,211,197,201,177,82,159,202,70,205,211,130,79,187,81,66,12,115,223,82,108,32,196,178,60,9,244,231,111,75,93,168,39,48,120,173,211,47,196,149,142,44,34,250,136,8,171,244,189,174,42,58,21,86,180,162,140,88,87,215,21,200,192,65,223,99,151,253,4,154,29,45,12,101,155,214,68,161,90,166,143,34,233,64,79,2,147,106,45,169,67,159,58,178,90,84,61,136,74,176,157,65,29,30,177,181,202,238,121,233,167,204,44,143,163,118,171,74,207,117,246,72,139,52,213,156,150,94,64,64,21,243,237,65,215,108,134,118,34,212,23,63,6,83,105,140,213,217,142,86,98,58,148,80,129,198,185,80,73,139,20,170,208,79,66,175,99,255,153,232,146,91,238,75,81,62,249,117,23,37,173,105,104,101,240,217,132,66,186,41,105,133,90,207,107,145,38,251,66,195,194,41,116,192,82,248,118,48,108,78,58,101,100,23,240,100,150,45,72,117,201,121,17,79,117,193,182,111, +247,146,149,136,126,82,112,243,69,62,42,73,56,21,89,114,197,231,148,81,39,228,108,204,246,46,176,113,147,35,158,177,51,212,85,157,226,220,24,177,198,135,217,44,203,179,58,179,142,137,86,182,140,221,43,216,144,161,17,81,100,7,175,202,69,118,79,202,28,114,228,13,62,215,95,83,114,234,209,55,87,53,205,124,169,82,39,0,176,108,169,217,22,241,83,157,241,193,217,147,168,123,141,133,120,187,6,222,225,33,179,218,8,93,201,176,84,1,30,145,183,105,153,209,213,220,19,49,61,158,187,165,220,152,178,97,171,139,188,226,5,202,38,135,246,122,136,117,206,161,32,158,14,179,132,130,96,204,202,169,6,66,15,57,38,94,85,212,7,127,203,156,70,116,12,91,239,211,25,24,67,189,84,245,19,36,92,235,181,57,85,71,241,49,199,48,9,175,93,25,144,174,30,37,199,96,35,140,223,42,77,16,198,158,150,25,120,75,172,50,252,97,174,31,96,251,28,29,13,71,116,27,30,163,80,50,88,243,37,71,41,22,106,184,95,72,252,121,110,192,47,146,140,78,73,126, +236,97,201,39,219,35,209,234,68,29,14,38,102,192,166,234,204,192,169,33,243,95,187,200,221,144,58,155,26,211,140,151,140,184,220,162,196,252,138,130,213,166,117,34,29,63,3,185,92,118,53,148,230,241,33,50,241,213,6,110,158,118,209,185,145,128,177,6,62,198,71,132,45,28,125,20,171,2,133,2,185,86,130,32,230,201,233,138,120,66,11,4,104,199,18,162,201,138,52,143,68,238,24,70,129,8,140,0,16,88,113,200,173,202,69,51,23,50,56,208,144,148,161,172,180,0,252,118,78,42,64,210,8,214,114,49,235,238,39,140,88,55,53,135,161,142,250,188,161,97,249,38,226,205,66,31,70,164,213,75,0,17,68,122,236,9,116,64,60,173,17,110,152,11,150,59,107,250,152,92,6,233,33,57,96,246,47,143,101,182,96,58,22,228,66,43,57,13,130,157,83,15,138,162,176,217,180,187,33,31,38,43,22,217,99,182,104,136,40,85,206,88,190,178,137,135,63,17,185,92,13,93,157,179,17,114,176,90,182,203,224,79,196,42,93,35,146,18,86,32,151,10,221,32,181,129, +184,89,72,204,249,85,186,32,236,163,230,185,78,171,128,223,178,23,91,229,204,67,174,133,232,168,85,49,82,80,166,156,98,1,126,79,2,240,3,83,134,117,39,91,208,109,77,250,224,13,155,131,89,137,147,138,111,165,181,201,128,112,146,192,134,156,238,139,246,205,5,65,220,151,4,25,195,213,67,236,120,53,252,62,16,191,82,55,23,87,191,94,171,243,119,63,171,215,239,223,253,124,121,115,249,254,221,181,122,243,254,10,63,126,248,116,249,238,207,145,250,249,242,250,230,234,242,213,71,250,136,7,254,250,254,231,203,55,151,175,207,233,23,178,78,134,108,136,9,64,42,167,62,63,255,29,114,91,213,187,61,121,241,223,12,206,246,160,49,171,204,44,34,156,87,144,210,83,89,125,177,254,133,224,39,132,13,230,16,63,41,172,175,9,196,123,128,212,58,175,101,153,83,192,50,233,198,162,233,21,96,46,100,213,122,159,133,56,1,158,39,28,119,208,124,63,114,97,76,169,213,221,15,31,132,192,187,31,0,217,53,24,29,9,32,242,7,224,40,19,156,130,232,23,255,153, +98,54,159,134,114,237,133,179,67,191,158,90,105,196,79,165,51,62,118,240,17,173,66,43,131,220,236,17,50,134,102,242,50,114,128,246,208,121,250,116,42,156,207,29,231,95,138,214,102,76,29,184,1,66,100,174,101,165,51,140,112,39,181,46,43,86,36,198,46,145,35,200,103,50,116,38,138,28,161,210,25,231,204,61,6,88,144,55,34,142,136,20,115,88,121,131,28,145,96,240,47,240,181,112,41,247,96,123,228,39,208,134,156,53,204,243,134,178,6,218,162,108,200,104,0,164,237,199,133,151,22,56,25,110,127,247,3,33,222,11,138,15,214,200,216,109,166,139,5,224,7,91,156,193,12,4,38,12,220,226,144,58,71,8,121,20,104,82,90,206,19,178,251,109,182,70,254,141,76,187,131,212,91,229,62,19,55,206,176,176,169,77,198,238,4,65,27,171,59,133,74,231,156,128,84,77,177,35,12,235,248,29,198,210,139,200,66,70,94,13,174,26,30,166,92,109,79,113,164,148,5,193,254,123,222,144,164,205,113,134,93,116,86,115,244,85,7,117,81,29,193,197,234,53,129,190, +130,169,131,55,36,226,102,26,9,2,59,69,156,115,15,197,199,39,148,67,56,38,138,218,85,13,225,125,90,203,208,46,46,182,249,173,22,165,118,193,102,203,95,12,85,76,206,130,193,84,186,249,237,217,117,107,82,156,184,181,192,62,53,29,204,79,186,157,21,108,89,43,196,157,6,136,16,102,139,192,162,3,88,78,12,91,103,243,166,108,76,46,219,195,95,113,244,128,142,227,55,107,114,18,8,105,56,26,195,19,75,101,56,42,176,80,235,181,236,41,230,121,154,173,192,43,80,237,48,199,153,250,162,245,154,76,135,244,194,193,76,153,102,92,140,36,4,70,249,123,199,139,74,94,74,163,211,153,209,5,118,161,232,137,179,181,75,211,24,70,179,109,246,26,64,144,46,239,160,30,124,20,231,20,253,62,121,9,153,11,114,108,71,239,24,149,23,154,164,99,140,169,45,158,130,211,94,110,12,12,40,119,186,207,46,192,229,148,169,197,137,169,195,190,88,37,181,184,181,92,91,191,68,28,240,48,45,192,129,20,244,191,186,66,130,195,242,135,180,43,9,181,203,130,80,222, +70,14,94,237,87,42,231,140,183,156,100,189,108,56,72,175,228,12,7,77,43,178,129,125,87,151,57,110,116,125,170,141,30,251,34,213,181,61,113,12,113,195,224,247,169,110,10,224,12,205,214,162,71,114,10,163,3,80,17,6,139,12,193,217,115,39,61,182,140,33,132,51,79,27,35,9,144,199,184,247,89,46,1,123,14,25,176,0,112,108,114,21,78,81,13,121,108,246,13,206,140,88,38,226,187,100,182,243,100,11,178,16,171,170,50,234,228,16,89,179,93,178,88,193,137,69,126,167,128,163,96,159,53,79,155,182,103,228,127,202,156,63,97,204,88,213,45,166,160,223,25,137,177,116,196,109,207,234,196,78,115,56,91,40,239,41,149,235,0,192,148,144,137,236,144,18,51,156,250,83,28,100,83,206,170,5,175,64,106,117,8,126,56,188,113,136,11,115,112,193,38,32,94,32,14,110,20,80,64,70,197,192,228,11,169,66,113,142,67,181,184,42,165,64,71,62,235,137,234,60,112,223,65,146,43,220,36,69,230,15,33,191,138,66,184,243,241,100,75,172,159,193,66,140,108,109, +72,150,50,90,181,64,84,175,200,227,112,150,75,229,32,10,31,21,201,4,64,77,252,98,81,148,13,188,19,213,60,109,176,103,139,249,13,30,211,131,190,195,25,219,17,33,112,100,93,145,67,126,94,45,172,121,144,124,236,224,227,182,254,194,69,67,118,3,65,2,162,59,25,131,151,86,199,130,108,64,214,121,238,34,33,45,165,56,83,47,213,99,166,159,14,248,81,130,65,23,95,231,154,29,218,41,133,233,78,20,175,141,206,239,93,17,213,241,155,10,196,20,45,25,20,120,73,11,147,165,180,209,101,111,36,222,236,112,148,247,248,130,175,96,22,173,200,182,22,58,57,222,118,239,174,248,227,239,110,140,45,51,218,16,228,21,147,55,111,205,66,114,231,140,96,5,62,79,145,181,42,163,109,245,136,57,68,217,47,79,177,184,234,144,57,90,55,10,66,103,68,71,106,202,2,171,113,129,154,80,86,197,240,179,133,48,52,216,222,143,9,118,54,86,115,87,96,244,35,165,139,53,169,125,40,33,217,129,192,19,155,103,68,53,57,174,199,183,231,164,130,175,39,159,237,102, +203,1,113,181,38,53,91,91,83,41,189,169,15,77,128,230,174,130,101,49,155,93,14,167,194,226,90,36,23,202,204,183,195,12,251,214,16,187,218,48,38,107,184,220,181,44,14,123,160,200,214,180,219,42,142,164,161,22,208,91,156,141,132,229,43,21,250,157,232,73,180,149,221,198,225,213,134,131,133,148,111,240,11,206,145,229,88,149,126,72,171,5,226,1,239,142,73,234,137,162,121,91,225,11,117,174,161,180,190,14,235,33,124,199,80,123,194,45,215,56,50,17,182,10,74,154,140,128,77,183,254,133,97,146,92,86,116,133,83,88,210,165,122,129,113,103,10,50,91,114,142,210,110,37,153,148,254,170,43,201,213,93,17,80,10,92,84,127,201,247,178,62,200,221,152,154,156,74,49,46,147,51,123,101,184,195,129,203,130,50,154,76,46,181,86,228,254,210,135,7,226,160,219,196,37,91,124,42,226,209,94,179,223,6,111,236,53,249,151,223,80,168,99,250,57,85,143,101,222,172,36,94,35,72,148,21,50,58,235,224,219,211,10,152,110,93,213,172,114,206,49,160,174,141,126,156, +12,29,136,126,59,152,173,255,189,140,96,251,92,219,71,162,16,39,123,59,4,149,28,147,47,40,103,255,160,90,145,187,0,128,128,231,77,205,14,138,64,221,55,16,152,33,8,6,26,18,1,98,135,112,24,188,7,149,4,173,17,74,137,6,108,249,38,4,59,159,35,128,175,9,117,64,235,189,212,232,119,185,230,32,89,73,113,157,35,232,10,214,5,16,118,247,130,66,191,120,214,54,245,137,172,211,112,102,255,157,50,200,129,163,177,6,88,233,206,177,82,185,74,171,12,230,210,184,226,87,91,16,165,176,37,104,238,12,236,140,190,133,232,118,79,153,122,139,100,164,31,169,199,52,207,100,7,176,52,135,183,175,185,236,168,213,70,167,21,223,99,181,121,77,11,178,54,145,205,1,44,10,43,232,186,79,74,241,133,3,250,114,251,231,18,18,10,167,186,114,40,222,242,47,212,237,136,195,185,229,255,46,199,219,72,191,45,157,142,44,4,53,254,127,145,193,252,160,166,101,5,177,66,188,75,144,56,51,206,181,222,94,82,177,237,251,185,3,39,39,208,195,165,191,52,7, +105,133,120,67,254,145,175,184,165,98,113,207,197,210,130,160,43,249,88,100,137,59,21,24,87,217,232,208,20,130,181,239,219,51,159,209,129,38,171,101,84,11,0,31,42,169,61,169,235,102,230,226,201,76,152,191,23,7,117,42,12,247,173,199,145,98,158,80,197,23,166,34,159,149,143,195,52,136,47,233,165,60,221,205,252,192,81,190,50,126,195,105,71,72,190,148,19,189,18,134,187,203,150,174,104,176,67,23,126,143,77,26,74,190,178,54,239,65,230,152,55,134,77,39,53,166,156,103,174,118,7,67,72,73,253,245,125,86,100,82,88,166,196,205,142,23,207,93,101,107,185,115,95,132,241,143,136,203,108,73,143,65,20,93,11,228,121,26,194,144,246,68,56,229,47,16,255,35,137,128,145,162,89,107,150,187,118,248,56,218,57,79,104,59,124,235,73,113,198,150,14,233,40,124,109,234,107,80,30,43,135,211,142,168,86,32,149,77,187,50,120,52,147,4,134,228,116,220,218,193,42,253,7,199,236,21,116,154,177,238,145,156,144,40,254,2,69,214,185,0,29,67,62,254,216,157, +16,81,173,146,44,216,108,76,13,32,200,213,47,242,194,221,243,83,146,101,40,40,49,10,98,154,253,86,46,19,72,173,125,114,157,188,203,189,29,144,112,191,131,61,130,189,8,190,5,150,65,23,87,182,156,199,70,192,169,216,124,206,132,216,126,22,70,222,169,189,178,103,221,88,75,227,12,35,102,63,139,82,1,184,105,6,219,221,5,118,116,209,65,121,6,186,188,24,62,104,56,135,48,123,33,107,199,121,210,61,13,97,239,230,97,185,149,80,183,181,216,213,26,25,89,208,147,19,44,178,85,191,10,152,113,8,114,12,66,200,33,235,83,125,74,10,70,72,52,249,150,64,240,114,136,132,186,80,68,116,153,14,168,191,174,169,38,205,153,155,69,10,206,251,119,210,195,115,50,72,4,193,21,166,49,110,122,98,188,89,30,220,254,27,187,99,97,186,110,19,45,229,43,180,180,161,200,81,219,160,71,65,39,35,225,118,224,241,62,178,188,165,58,166,19,100,231,187,50,239,136,165,106,198,204,112,189,9,44,114,242,214,187,75,182,215,147,174,235,35,171,218,38,38,79,24, +27,23,139,142,210,41,190,97,177,4,32,255,164,251,63,252,255,190,201,197,247,228,89,138,204,245,144,60,135,78,158,78,95,194,252,151,116,119,93,111,165,65,38,163,114,170,239,76,161,57,182,127,133,125,180,231,9,161,111,182,5,186,247,125,160,34,131,20,156,187,215,224,182,210,120,88,90,84,136,170,205,246,109,143,52,53,81,218,157,186,212,176,226,136,183,204,102,89,45,87,15,121,250,228,27,32,108,182,186,123,30,89,7,49,169,164,123,253,153,43,125,18,225,29,36,191,117,25,113,100,11,96,135,51,4,41,39,209,229,236,220,171,146,236,159,218,114,116,71,240,53,131,98,186,219,231,226,142,237,223,250,119,46,63,133,226,150,252,45,38,110,101,86,62,165,220,209,136,17,105,4,95,30,213,217,74,91,88,241,173,156,226,59,108,168,195,102,145,45,83,179,102,66,113,206,217,173,119,136,254,70,94,62,145,70,156,157,174,137,110,199,132,163,11,126,128,61,89,237,59,135,246,48,210,181,166,88,71,150,33,202,216,26,234,125,83,217,251,128,160,159,199,30,172,189,35, +184,251,169,205,124,173,111,182,190,130,181,29,188,88,242,213,222,137,234,218,151,237,0,18,240,133,52,27,255,157,147,192,90,99,181,23,103,129,55,223,186,224,56,36,187,49,201,238,242,222,66,7,42,255,192,154,253,245,7,5,150,170,86,255,104,22,15,92,112,20,24,20,100,204,246,42,31,72,151,162,152,118,131,238,173,148,221,37,9,213,151,212,145,220,225,175,50,219,238,233,230,26,211,104,115,28,133,10,203,248,155,185,203,234,65,26,117,228,186,141,102,27,75,21,144,38,99,30,164,240,126,99,239,233,143,29,18,160,134,75,88,84,109,147,10,191,197,78,177,134,111,26,173,217,35,220,80,117,150,246,245,218,117,120,174,84,229,108,239,25,87,221,130,91,137,210,162,125,67,61,82,80,58,147,173,154,28,22,173,229,70,76,238,101,16,131,30,44,114,221,227,226,217,190,219,134,73,13,1,51,184,9,166,89,56,177,35,196,77,160,174,7,44,210,54,83,168,157,62,176,116,171,41,4,54,219,228,2,21,165,109,87,85,229,6,169,200,230,238,5,119,106,4,54,31,128, +15,183,13,196,38,200,186,228,118,167,210,95,35,218,91,162,5,66,200,156,90,95,248,110,193,255,132,60,149,161,10,14,226,139,140,90,50,24,219,121,75,218,0,178,28,127,103,224,18,225,115,169,156,133,129,146,135,205,216,113,194,123,87,20,245,124,197,138,165,252,13,242,247,193,196,173,91,172,78,5,13,127,93,234,156,160,187,228,222,212,212,88,136,225,106,6,146,34,102,119,35,146,205,155,60,133,143,206,170,121,179,50,236,239,197,13,206,210,188,117,254,58,92,62,108,15,150,154,170,187,17,114,131,130,219,148,189,227,41,203,99,141,10,183,53,187,39,237,84,12,215,77,197,78,111,79,201,16,82,107,172,202,241,79,226,18,130,142,31,211,54,165,208,85,5,244,120,99,139,127,92,109,116,173,147,174,212,200,156,203,234,141,187,221,98,216,34,35,207,186,155,47,83,155,80,209,89,3,10,221,205,166,141,109,196,130,135,202,174,88,47,183,122,165,187,226,151,156,35,106,139,197,25,217,5,185,25,129,10,107,105,110,113,166,177,230,75,6,98,159,82,191,242,137,117,73, +77,242,109,27,212,3,117,197,192,230,197,37,217,109,124,29,224,137,238,86,42,190,119,165,70,203,29,146,56,65,175,44,104,135,197,218,148,136,251,67,109,4,40,11,169,222,27,182,89,238,10,154,7,41,163,159,116,102,107,192,205,218,95,120,115,3,219,203,69,89,136,0,22,8,88,11,110,249,229,160,170,204,146,53,136,144,166,237,90,238,56,56,75,171,163,175,245,84,150,72,185,123,242,125,37,214,71,218,224,41,94,122,89,102,243,221,84,236,102,203,162,66,21,230,230,68,34,155,246,164,139,11,110,49,123,178,25,235,12,76,209,143,50,114,166,119,3,155,132,101,83,239,120,242,3,81,114,34,81,114,183,50,109,187,118,154,54,160,7,57,67,219,120,66,130,114,157,148,156,171,85,228,242,108,250,60,235,216,199,108,211,222,222,133,133,4,113,241,45,198,217,233,213,34,159,202,217,160,233,208,177,39,158,112,75,192,98,33,133,17,82,19,40,196,131,166,225,235,37,247,21,116,142,24,52,16,33,44,218,251,70,113,227,254,40,109,63,101,103,106,231,129,135,84,157,10, +198,16,171,146,209,139,99,132,56,151,198,216,13,244,130,34,106,97,13,62,149,224,28,208,143,116,162,132,141,211,141,144,156,53,32,17,158,0,122,235,234,159,246,122,117,86,46,118,111,16,15,136,122,42,13,118,135,159,51,48,251,92,219,74,165,31,51,190,185,22,61,160,38,245,71,121,131,227,251,30,14,188,52,16,92,65,120,153,172,16,127,226,204,215,116,224,206,26,156,221,65,131,129,26,50,138,16,56,144,89,103,85,230,128,42,21,199,12,217,187,157,33,207,96,136,66,32,92,42,45,98,194,66,67,239,114,246,251,210,207,197,91,248,166,87,185,220,129,118,22,187,190,159,65,189,93,154,164,73,85,98,42,160,146,148,161,6,13,88,64,218,224,70,20,205,106,166,171,182,193,215,131,107,170,72,221,115,141,97,107,236,78,86,35,254,54,232,105,180,161,252,238,7,242,43,212,24,87,185,37,168,131,176,243,220,193,183,183,180,247,3,65,77,120,43,39,178,198,231,124,163,35,171,172,92,184,233,236,229,4,222,246,74,30,82,143,221,211,251,139,28,97,195,230,187,76, +136,60,108,131,99,116,25,134,155,66,169,242,191,65,141,211,242,81,175,219,25,214,187,61,113,160,213,181,20,7,102,197,160,100,167,115,135,27,18,197,181,119,94,98,216,123,206,142,233,111,129,121,209,70,190,84,39,219,212,221,208,227,30,76,80,218,208,38,251,22,146,250,0,227,67,113,232,31,191,115,254,173,237,14,13,59,227,103,59,229,74,147,33,26,9,46,190,124,106,124,35,187,125,154,67,241,145,101,225,172,19,134,176,104,105,161,23,1,15,101,154,27,129,32,154,159,208,88,85,20,196,1,95,213,72,119,54,230,183,117,10,254,149,123,223,213,125,50,37,96,102,85,122,44,67,239,190,164,241,99,1,39,100,227,143,159,242,32,62,39,223,236,147,127,247,37,28,119,21,191,123,175,254,118,126,117,117,254,238,230,147,157,144,12,71,110,194,28,26,51,135,202,196,183,159,231,234,68,221,190,210,109,75,83,208,200,222,182,113,19,245,160,70,174,141,56,108,29,122,27,224,23,136,252,245,247,87,134,47,109,216,160,188,65,176,12,193,230,60,125,58,249,187,146,206,15, +233,0,104,107,123,196,86,9,181,36,115,199,168,237,56,201,142,224,243,60,81,47,111,91,52,106,115,102,215,228,18,158,236,238,135,207,47,57,170,152,219,187,31,124,87,173,63,135,117,22,95,0,126,125,167,175,45,81,106,134,253,132,27,51,106,61,245,205,58,226,163,187,201,176,189,35,151,177,110,117,219,60,183,146,107,168,58,229,39,64,130,243,239,179,186,32,79,46,23,38,65,10,97,209,47,152,116,211,54,19,84,153,249,18,92,58,253,179,73,253,66,246,190,46,76,50,2,153,114,157,23,62,2,203,93,47,57,127,10,7,16,187,248,130,67,174,226,197,109,165,72,231,87,218,178,94,16,22,105,121,65,175,185,12,93,14,200,139,50,230,67,165,215,105,86,73,4,170,42,1,122,39,135,21,48,97,5,188,5,18,43,72,151,228,197,129,173,251,251,34,228,142,190,48,224,160,26,193,66,156,156,215,14,41,228,22,155,29,21,137,84,167,124,193,119,161,12,175,130,70,199,80,137,14,54,61,165,33,254,177,125,134,220,239,198,180,201,123,66,22,225,34,93,165,15,242, +234,162,237,232,218,56,51,142,220,149,14,127,206,221,63,192,19,18,183,5,213,214,124,207,39,139,192,223,102,252,102,146,244,212,138,212,62,162,0,112,180,58,196,15,43,187,196,210,113,142,110,91,2,118,149,84,229,165,244,153,192,105,166,92,236,164,63,103,154,70,203,11,55,54,191,116,62,111,56,136,96,4,205,160,126,198,198,16,246,21,241,208,161,197,161,6,229,42,105,54,5,78,161,199,94,91,138,72,81,135,47,131,180,189,223,222,126,60,106,136,246,227,91,123,185,145,217,151,106,22,23,119,172,124,195,185,34,247,97,167,11,129,110,110,51,80,154,89,238,184,183,110,150,163,123,158,130,60,191,26,168,139,119,63,171,247,111,246,62,245,232,188,185,182,127,60,127,73,149,110,58,204,57,167,223,82,140,190,97,108,130,95,126,34,199,255,14,192,204,70,91,35,179,18,247,112,59,113,225,122,129,67,230,229,154,218,249,4,198,181,253,92,193,67,75,155,249,216,195,61,240,27,35,88,163,156,50,23,141,112,16,146,129,169,173,55,208,32,42,172,112,45,127,73,73,148, +64,19,233,219,225,192,152,213,91,1,74,2,179,127,28,70,93,101,29,147,8,94,39,135,109,128,12,203,78,252,241,252,95,110,218,194,118,93,167,246,190,175,69,116,190,153,187,12,149,132,96,23,167,126,38,189,167,51,16,253,126,246,202,13,230,190,76,190,210,163,79,236,149,22,93,203,250,183,204,242,230,73,250,60,97,94,143,122,99,195,18,204,194,88,116,217,237,8,231,165,120,13,35,46,146,241,104,208,104,65,143,94,188,139,65,12,161,111,11,176,73,241,186,228,252,142,59,169,56,74,242,81,27,185,209,225,103,183,228,226,193,180,109,54,189,78,20,253,239,247,196,111,94,207,181,112,4,44,161,246,253,130,238,8,101,175,25,82,45,238,29,76,165,85,44,101,53,225,231,3,127,236,44,218,253,134,128,223,83,143,200,31,177,21,47,69,222,156,33,91,59,165,51,151,83,246,32,128,116,20,229,204,191,207,237,168,135,32,252,246,37,99,103,193,172,222,223,232,251,205,215,243,228,119,3,132,220,89,240,219,48,176,125,171,35,223,163,224,54,123,219,94,81,118,86,59, +234,182,214,31,239,102,14,39,191,141,81,97,165,199,102,173,75,234,235,170,173,156,28,212,132,221,66,63,162,206,90,228,169,255,118,121,243,203,251,143,55,240,67,159,60,148,59,243,112,197,94,250,238,32,12,114,117,157,165,126,189,184,122,253,11,230,158,191,186,124,123,121,243,137,156,231,155,203,155,119,23,215,242,122,237,92,125,56,191,186,185,124,253,241,237,249,149,250,240,241,234,195,251,235,11,202,91,53,43,94,103,165,111,136,71,190,90,129,223,177,83,102,106,14,176,136,238,64,66,147,106,219,103,58,141,66,135,55,234,172,214,185,184,110,121,127,70,225,2,198,246,173,68,161,179,206,246,23,99,68,255,199,175,196,240,167,110,29,32,189,216,229,2,77,216,64,68,101,78,9,31,220,121,34,79,145,41,156,106,234,132,172,202,2,231,150,183,178,8,149,112,212,89,190,199,181,94,238,32,188,160,65,58,242,238,221,190,142,74,137,253,149,239,33,207,179,47,54,24,48,240,198,56,118,167,70,30,1,117,90,173,97,200,250,180,115,44,167,21,5,146,152,71,201,158,156, +145,141,166,209,150,207,33,151,163,84,215,225,28,92,102,94,82,202,198,130,61,127,117,253,254,237,199,155,139,183,159,194,140,230,76,32,150,232,154,170,55,176,170,187,59,126,13,254,116,247,211,201,174,85,110,187,173,54,182,114,176,211,57,237,40,183,8,29,47,214,89,201,190,45,244,53,63,151,13,159,117,8,152,223,253,20,18,183,109,8,20,12,201,17,108,214,132,96,248,10,180,125,147,208,158,65,10,36,237,138,214,104,220,131,247,206,203,128,78,98,127,240,165,230,251,123,190,99,179,215,98,237,158,220,131,96,43,136,51,138,244,220,38,194,137,51,23,130,130,7,128,7,201,179,111,250,228,214,134,29,211,140,20,6,203,222,189,152,131,140,47,12,6,87,186,104,20,125,63,144,161,239,48,161,104,197,133,15,211,100,210,20,224,177,223,30,45,15,28,7,247,142,210,151,3,240,20,178,210,114,131,101,142,220,183,82,248,246,122,187,26,114,173,99,37,95,176,128,205,168,252,146,203,93,88,33,79,50,168,111,129,223,161,182,57,67,251,16,13,177,125,39,173,37,239,226, +82,31,234,117,176,169,112,74,221,59,112,25,103,210,203,199,115,72,223,205,30,171,249,84,110,202,197,166,208,206,223,16,80,152,109,252,190,210,177,214,210,195,118,72,16,200,134,17,75,74,176,224,221,93,96,63,144,207,145,109,110,133,245,27,121,107,111,148,237,162,162,38,45,115,236,235,169,216,246,47,68,165,250,37,157,127,209,213,94,199,253,123,105,116,178,56,254,102,3,219,46,139,63,70,42,6,238,173,178,156,191,114,40,24,110,7,68,244,133,60,38,115,15,38,255,10,85,220,103,12,135,191,148,198,87,217,236,221,100,91,205,34,197,12,53,70,234,88,193,19,118,159,70,248,139,220,42,116,145,41,53,7,84,37,53,76,144,19,228,239,143,9,74,116,246,197,4,63,146,166,160,38,17,154,47,184,133,18,224,51,238,80,12,119,12,174,103,76,219,77,101,23,119,37,68,241,69,79,174,15,218,125,47,195,2,200,216,37,111,191,253,43,109,14,212,191,213,237,255,2,178,226,101,221, + diff --git a/uppsrc/ide/app.tpp/GettingStarted$en-us.tpp b/uppsrc/ide/app.tpp/GettingStarted_en-us.tpp similarity index 99% rename from uppsrc/ide/app.tpp/GettingStarted$en-us.tpp rename to uppsrc/ide/app.tpp/GettingStarted_en-us.tpp index df589a0e6..654407a21 100644 --- a/uppsrc/ide/app.tpp/GettingStarted$en-us.tpp +++ b/uppsrc/ide/app.tpp/GettingStarted_en-us.tpp @@ -1,306 +1,306 @@ -topic "Getting started with TheIDE"; -[2 $$0,0#00000000000000000000000000000000:Default] -[l288;i704;a17;O9;~~~.992;2 $$1,0#10431211400427159095818037425705:param] -[a83;*R6 $$2,5#31310162474203024125188417583966:caption] -[H4;b83;*4 $$3,5#07864147445237544204411237157677:title] -[b167;a42;C2 $$4,6#40027414424643823182269349404212:item] -[b42;a42;ph2 $$5,5#45413000475342174754091244180557:text] -[l288;a17;ph2 $$6,6#27521748481378242620020725143825:desc] -[l321;t246;C@5;1 $$7,7#20902679421464641399138805415013:code] -[b2503;2 $$8,0#65142375456100023862071332075487:separator] -[*@(0.0.255)2 $$9,0#83433469410354161042741608181528:base] -[t4167;C2 $$10,0#37138531426314131251341829483380:class] -[l288;a17;*1 $$11,11#70004532496200323422659154056402:requirement] -[i417;b42;a42;O9;~~~.416;2 $$12,12#10566046415157235020018451313112:tparam] -[b167;C2 $$13,13#92430459443460461911108080531343:item1] -[i288;a42;O9;C2 $$14,14#77422149456609303542238260500223:item2] -[*@2$(0.128.128)2 $$15,15#34511555403152284025741354420178:NewsDate] -[l321;*C$7;2 $$16,16#03451589433145915344929335295360:result] -[l321;b83;a83;*C$7;2 $$17,17#07531550463529505371228428965313:result`-line] -[l160;t4167;*C+117 $$18,5#88603949442205825958800053222425:package`-title] -[l192;i150;a42;phO2;2 $$19,19#37291126451403010472971723210990:point] -[i167;phO9;2 $$20,20#33190467493505743255250994711132:step] -[b83;*+117 $$21,21#2AC2FD302E8CD436942CC99374D81489:SubTitle] -[{_}%EN-US -[s2; Getting started with TheIDE&] -[s3; Table of contents&] -[s0; &] -[s0; [^topic`:`/`/ide`/app`/GettingStarted`$en`-us`#1^ 1. Launching -TheIDE]&] -[s0; [^topic`:`/`/ide`/app`/GettingStarted`$en`-us`#2^ 2. Assemblies -and Packages]&] -[s0; [^topic`:`/`/ide`/app`/GettingStarted`$en`-us`#2`_1^ 2.1 Selecting -assembly]&] -[s0; [^topic`:`/`/ide`/app`/GettingStarted`$en`-us`#2`_2^ 2.2 Creating -new package]&] -[s0; [^topic`:`/`/ide`/app`/GettingStarted`$en`-us`#3^ 3. Configuring -package]&] -[s0; [^topic`:`/`/ide`/app`/GettingStarted`$en`-us`#4^ 4. Creating -new file]&] -[s0; [^topic`:`/`/ide`/app`/GettingStarted`$en`-us`#5^ 5. Explanations -about TheIDE]&] -[s0; [^topic`:`/`/ide`/app`/GettingStarted`$en`-us`#5`_1^ 5.1 What -is stored where?]&] -[s0; [^topic`:`/`/ide`/app`/GettingStarted`$en`-us`#5`_2^ 5.2 Package -organizer]&] -[s0; [^topic`:`/`/ide`/app`/GettingStarted`$en`-us`#5`_3^ 5.3 Build -methods]&] -[s0; [^topic`:`/`/ide`/app`/GettingStarted`$en`-us`#5`_4^ 5.4 Output -mode]&] -[s0; &] -[s3;:1: 1. Launching TheIDE&] -[s5; After installing U`+`+ find the appropriate TheIDE executable -file and launch it. By default the file should be localized in -the installation directory. However, it can depends on the operating -system and the way you installed U`+`+.&] -[s3;:2: 2. Assemblies and Packages&] -[s5; In this section we show how to create your own main package. -It can be treated as project, solution etc.&] -[s21;:2`_1: 2.1 Selecting assembly&] -[s5; After you launch TheIDE on the screen window should appear. -This window acts as a hub. When you can select/create packages -and assemblies. You can back to this window at any time when -you are working with TheIDE. Just select from main menu `"File`" -entry and select `"Set main package`" option.&] -[s5; First of all, select assembly which is called `"MyApps`". It -exists by default and it is intended to store user application. -To select this assembly click on its name once. If you want to -read more about assemblies see [^topic`:`/`/ide`/app`/PackagesAssembliesAndNests`$en`-us^ t -his reference page] for more details. In brief assembly is a -collection of packages.&] -[s5; &] -[s0;=l160; -@@rawimage:3475&2319 -(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) -&] -[s5; &] -[s5; In this window you can perform the following operations:&] -[s19; You can create a new assembly by right`-clicking on the assembly -list and choosing `"New assembly`". If you select an existing -assembly before this, the directory settings from the existing -assembly will be used.&] -[s19; If you`'re just getting started, leave this as it is and continue -creating package process.&] -[s5; &] -[s21;:2`_2: 2.2 Creating new package&] -[s5; To create a new package, press the `"New package`" button localized -on the bottom of the window. After that on the screen appears -the package creator.&] -[s5; &] -[s0;= -@@rawimage:3590&2543 -(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AABQWkIvAAAApSX0AgAAUFpCLwAAAKUl9AIAAFBaQi8AAAClJfQCAABQWkIvAAAApSX0AgAAUFpCLwAAAKUl9AIAAFBaQi8AAAClJfQCAABQWkIvAAAApSX0AgAAUFpCLwAAAKUl9AIAAFBaQi8AAAClJfQCAABQWkIvAAAApSX0AgAAUFpCLwAAAKUl9AIAAFBaQi8AAAClJfQCAABQWkIvAAAApSX0AgAAUFpCLwAAAKUl9AIAAFBaQi8AAAClJfQCAABQWkIvAAAApSX0AgAAUFpCLwAAAKUl9AIAAFBaQi8AAAClJfQCAABQWkIvAAAApSX0AgAAUFpCLwAAAKUl9AIAAFBaQi8AAAClJfQCAABQWkIvAAAApSX0AgAAUFpCLwAAAKUl9AIAAFBaQi8AAAClJfQCAABQWkIvAAAApSX0AgAAUFpCLwAAAKUl9AIAAFBaQi8AAAClJfQCAABQWkIvAAAApSX0AgAAUFpCLwAAAKUl9AIAAFBaQi8AAAClJfQCAABQWkIvAAAApSX0AgAAUFpCLwAAAKUl9AIAAFBaQi8AAAClJfQCAABQWkIvAAAApSX0AgAAUFpCLwAAAKUl9AIAAFBaQi8AAAClJfQCAABQWkIvAAAApSX0AgAAUFpCLwAAAKUl9AIAAFBaQi8AAAClJfQCAABQWkIvAAAApSX0AgAAUFpCLwAAAKUl9AIAAFBaQi8AAAClJfQCAABQWkIvAAAApSX0AgAAUFpCLwAAAKUl9AIAAFBaQi8AAAClJfQCAABQWkIvAAAApSX0AgAAUFpCLwAAAKUl9AIAAFBaQi8AAAClJfQCAABQWkIvAAAApSX0AgAAUFpCLwAAAKUl9AIAAFBaQi8AAAClJfQCAABQWkIvAAAApSX0AgAAUFpCLwAAAKUl9AIAAFBaQi8AAAClJfQCAABQWkIvAAAApSX0AgAAUFpCLwAAAKUl9AIAAFBaQi8AAAClJfQCAABQWkIvAAAApSX0AgAAUFpCLwAAAKUl9AIAAFBaQi8AAAClJfQCAABQWkIvAAAApSX0AgAAUFpCLwAAAKUl9AIAAFBaQi8AAAClJfQCAABQWkIvAAAApSX0AgAAUFpCLwAAAKUl9AIAAFBaQi8AAAClJfQCAABQWkIvAAAApSX0AgAAUFpCLwAAAKUl9AIAAFBaQi8AAAClJfQCAABQWkIvAAAApSX0AgAAUFpCLwAAAKUl9AIAAFBaQi8AAAClJfQCAABQWkIvAAAApSX0AgAAUFpCLwAAAKUl9AIAAFBaQi8AAAClJfQCAABQWkIvAAAApSX0AgAAUFpCLwAAAKUl9AIAAFBaQi8AAAClJfQCAABQWkIvAAAApSX0AgAAUFpCLwAAAKUl9AIAAFBaQi8AAAClJfQCAABQWkIvAAAApSX0AgAAUFpCLwAAAKUl9AIAAFBaQi8AAAClJfQCAABQWn2Prr209dztDxazwFFz27MfFFO3tg+f/EgxtdO3v/3tYurW9ulPf7qY6uz5CxfjS09OF3MAAAfv2rVrxdT+HDt2LL7y7Fw8/tipYknFE++/IvTCUSf0VuwWeu+9995i7tb0xhtvCL0AwKEl9AJtVUPve4/9eP7nreaOC3+a/yn0dib0AgCH2UGGXmN6AQAAKC2hFwAAgNISegEAACgtoRcAAIDSEnoBAAAoLaEXKLwbLzx0R9xxR/F56IVsCdtu5v15Lc7c8VC84AsBANgzoRfI8twL8dAdn4qNz78X771XfL4a8buvFeuvSwkC24HeHwAADpLQC7e8d+OFLzwdd198L565r1iU3Pm5+Fz9/C3L/QEAOMqEXrjVvfu78c03H4kH2ga4Sk/tmTMPxR13nMnmMnnPZ7XUt1iWee1MXfnvmbQ07XsqXow34+lPVZdl2ux/KO16f1pdd7600sP9wpnauocaursby6Vrux2lewMAcAQIvUDEPQNxVzHZ2pvx1sBX4733non7Upj71DfjM98pynwvRnytCHP3PVMt/70Yj7z4tXjh3fvimTQd98RTafu8q7T9/ofWLvdn53UXK1LY33iguM5H4s2n54sQmwLvp+Kbn/lOsV+1F/kI3hsAgENO6AWybLYR7xSTrd0Tn/nlOyuT774Tb1V7blNv5KkXs92LvV+r9mqm3t02Ou1/WO12f9pedxb2p4ou4vseyML/W/FOyrBF7/HnP1fc06qjeG8AAA7A97///WKqUbvlnQi9cKu785fjM/e8GK/uqY72kbhY9FDmn9RNmcpyT0Wx/Dvx1D3Fpi212P+w2u3+7Om6u3GE7g0AwAFqDrj7CbyJ0Au3vDvjc59/JF48VTeuNMnC3Autgt6dd8Xd8eLOstt3NuLNahlw3pOZL92p3f6H1i73p9vrrlcE6R334MjdGwCAg1UNuvsNvInQC6RBqfHed56Kt7JgVynTzT5fiPjllp2M98Uz2bbx9Ke2t01p8L6peCqejk/l+27E3bUez/vigUfqH2TVZv/DrNP9aXvdnWRB+hsX4+66e1C5BUfw3gAAHICPfexjxVRj4K1f3q2+R9de2nru9geLWeCoue3ZD/I/33vsx/M/bzV3XPjT/M8Pn/xI/mcr3/72t+Pee+8t5m5Nb7zxRnz6058u5jp7/sLF+NKT08UcAMDBu3btWjHVqNvAe+zYsfjKs3Px+GOniiUVT7z/ip5eAAAADqdq0N1PD2+V0AsAAMChdT2BNxF6AQAAKC2hFwAAgNISegEAACgtT2+GI6769OZbnac3d+bpzQDAYdbu6c3d6vT0ZqEXjjiht2K30EsIvQBAqQm9AHQlhV4AgKNI6AUAAOCWkUKvB1kBAABQWkIvAAAApSX0AgAAUFr5mN5iGgAAAEok4v8PGPL7k2+fvSYAAAAASUVORK5CYII=) -&] -[s5; &] -[s5; To create new package you should execute following steps:&] -[s19; Enter a package name, for this example we`'ll type `"main`", -leave the `"create in`" directory as it is for now (i.e. on MyApps -directory).&] -[s19; Optionally you can fill in a short description of the package, -that will appear in the package selection dialog.&] -[s19; It is possible to choose one of predefined templates, but we -leave it on for now.&] -[s19; Finally, press the `"Create`" button on the bottom of the window.&] -[s0; &] -[s3;:3: 3. Configuring package&] -[s5; At the beginning, let`'s assume that the package you have created -is main. Please note, that any package created or selected within -manager is by default main. To configure it, select `"Main package -configuration`" from the `"Project`" menu. Alternatively, you -can right mouse click on package list and select the same option.&] -[s5; &] -[s0;= -@@rawimage:3400&1194 -(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) -&] -[s5; &] -[s5; Let`'s take a look at the possibilities available in `"Main -package configuration`" window:&] -[s19; Here you should set the [^topic`:`/`/ide`/app`/Flags`$en`-us^ configuration -flags] that your program needs.&] -[s19; For the main package, you must specify at least one possible -configuration (otherwise you will not see your new package listed -under the `"MyApps`" assembly `- unless you select `"all packages`" -`- because only main packages are listed by default).&] -[s19; Just add an empty row for now (right click`->`"Append row`" -or press Insert key). The `"optional name`" can be left empty -or you can enter any meaningful description for your own reference.&] -[s19; [/ Note: For windows users: If you add `"GUI`" flag here, the standard -cin/cout/cerr will not be connected to anything. (so even if -you start the program from the command line you will not see -any text`-output).]&] -[s19; Press OK.&] -[s5; Here is a need of small digression. Several predefined templates -mention in the previous chapter have main package privileges -.by default. It means that there is not need to execute above -steps. Following templates fall under above definition: Basic -[*/ `"CtrlLib application`"], [*/ `"Core console project`"] and [*/ `"Skylark -web application`"].&] -[s5; Not main package can be used as supportive module for your projects. -You can place their common functions and classes and share between -other packages. In this way packages delivered by U`+`+ work -like Core and CtrlLib.&] -[s5; &] -[s3;:4: 4. Creating new file&] -[s5; You can now add files to you package, for this example, add -a new file `"main.cpp`" to the package. Below is the list of -steps that will guild you through the process:&] -[s19; Right click on the lower`-left part of TheIDE (or on `"File`" -in menu) and choose `"Insert package directory file(s)`", type -`"main.cpp`" and click `"Open`". If the file does not exist, -it will be created `- that is why you won`'t find `"New file`" -anywhere in TheIDE, it is just not needed.&] -[s5; &] -[s0;= -@@rawimage:3894&2524 -(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) -&] -[s5; &] -[s19; Alternatively, in the newer versions of TheIDE, you can create -new file using `"New`" option from the same menu shown in above -image. Then simply select file type and choose name for it. This -method is recommended for newer user, because it is a little -bit more intuitive and straight forward than creating file by -insertion (old way).&] -[s19; Type or copy following code into the newly created file:&] -[s5; &] -[s7; // `-`- example `-`- -|&] -[s7; -|#include &] -[s7; -|&] -[s7; -|int main()&] -[s7; -|`{&] -[s7; -|-|char dummy;&] -[s7; -|-|std`::cerr << `"Hello, platform! `" << std`::endl;&] -[s7; -|-|std`::cin >> dummy;&] -[s7; -|-|&] -[s7; -|-|return 0;&] -[s7; -|`}&] -[s7; // `-`- example `-`-&] -[s5; &] -[s19; If you have configured your compiler previously (you probably -did, either the installer instructed you how to do it or it was -done automatically), you can start the program by clicking on -execute -@@rawimage:100&100 -(iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAAAAAAAAAHqZRakAAACEElEQVQ4jaWSz0tUURTHP+e+MTCzsAQHUatJCI2gRWkkhRBFLYpWQbRw0ybaWAtdSC0CoSBCBP+AVuUqiBZt2kRFRbUIIqIg/EGtLEadeTP33XtOi+dUS6UDBy6Hy+d8vnDgP0vOjt6/cmz40O1fKS1mgCqmStSIqaGmWIyoGRYjUZXWJl/5+Glx/NHUhZnCwNDA9KbmFtfRvKHFLdWqTgMzhTSYS3+ublg9DeYAChaNyYu9GwZcujVHDjAFwIeIAaZGVFAMVSOqEoPlbYqPxu5iK1FjDsAMAHGCmGFOMDFEBecEEYdIRBIjUUch5P815ADXIDlARBAnJE5wiSAOEgdNScLk41NMPDyCJVkOiLm5M82JiPwBOcm3J4mQCDgH9eDpau9jdHYQH2poI0LjwZoBAGaMPRjGLOA14EOgs62XvuIgK7UKZ2ZKtNlUDghZ9sdAADNDRAjqObFvhGj5USnG9/IC+7uGWPUp79IRSuNsK9halgSwRhQzasETTZlb+kKmgaAZWcxYrq9woPsoq1mVV+nzpYKq/o2w1ohQCzVCDHRs7SFoJJryozzP9i1F3i+84PXXD1TrHJRzV2dni92d5zVGNCoxRlSV5fbL1LzHq6cWPHva+zlcOsnb+Zc8+/yGndVrT57evXF63ZfXf5PKyL3j1jPB4o4x9v5rva7adZ2KarK5XI+l8h2+Nea/AbjMJEcWh0TKAAAAAElFTkSuQmCC) - icon localized on main tool bar or by pressing CTRL`+F5 &] -[s19; After program launch, you can close it by typing any letter. -On the other hand, it can be ended by simply closing terminal -window.&] -[s19; Now you know how to use TheIDE to compile basic C`+`+ program. -Looking at the rest of documentation will give you better idea -how to unleash the full power of TheIDE and U`+`+. The best parts -to continue would be probably [^topic`:`/`/ide`/app`/PackagesAssembliesAndNests`$en`-us^ P -ackages, Assemblies and Nests] and [^topic`:`/`/ide`/app`/ConfiguringPackagesAssemblies`$en`-us^ t -heir configuration.] something about the key technologies utilized -in TheIDE: [^topic`:`/`/ide`/app`/Assist`$en`-us^ Assist`+`+], [^topic`:`/`/ide`/app`/Topic`$en`-us^ T -opic`+`+], [^topic`:`/`/ide`/app`/Blitz`$en`-us^ Blitz] or even -one of the tutorials linked from Manual section, if you want -to learn more about how to use U`+`+.&] -[s5; &] -[s3;:5: 5. Explanations about TheIDE&] -[s21;:5`_1: 5.1 What is stored where?&] -[s5; When you use TheIDE for the first time, it can be confusing -to see that settings like static/shared building, execute`-, -include`- and linker`- paths can be set in multiple places (for -instance, in Project`->Package organizer, in Setup`->Build methods -and by clicking on the current build method in the main screen -(at the top, e.g. `"GCC Debug`").&] -[s5; In the next part of this paragraph, we look at all configuration -options.&] -[s21;:5`_2: 5.2 Package organizer&] -[s5; Package organizer is localized at `"Project `-> Package organizer`".&] -[s5; &] -[s0;= -@@rawimage:3766&2611 -(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ACUksAMAAEAJCewAAABQQgI7AAAAlJDADgAAACUksAMAAEAJCewAAABQQgI7AAAAlJDADgAAACUksAMAAEAJCewAAABQQgI7AAAAlJDADgAAACUksAMAAEAJCewAAABQQgI7AAAAlJDADgAAACUksAMAAEAJCewAAABQQgI7AAAAlJDADgAAACUksAMAAEAJCewAAABQQgI7AAAAlJDADgAAACUksAMAAEAJCewAAABQQgI7AAAAlJDADgAAACUksAMAAEAJCewAAABQQgI7AAAAlJDADgAAACUksAMAAEAJCewAAABQQgI7AAAAlJDADgAAACUksAMAAEAJCewAAABQQgI7AAAAlJDADgAAACUksAMAAEAJCewAAABQQgI7AAAAlJDADgAAACUksAMAAEAJCewAAABQQgI7AAAAlJDADgAAACUksAMAAEAJCewAAABQQgI7AAAAlJDADgAAACUksAMAAEAJCewAAABQQssePn3gyhN3bC6KFYNDw7HzsUeKErBU7Hr8ydjW31eUapwT5mb//v1FH3Atv/zLv1z0AcDicvny5aJvblauXNn0e/ijLx0R2IEagX1+pcC+ZcuWogS0cujQIYEdgEVrIQO7JvEAAABQQgI7AAAAlJDADgAAACUksAMsAl/60pfi05/+dPyn//Sf8i71p2Fwq/ja174Wf//3fx/f/va343vf+15cuXKlGAMAS5fADlBy//AP/xCnTp2KTZs2xS/90i/lXepPw775zW8WU8Hi9sUvfjG+8pWv5KH9u9/9bjEUAJY2gR2ghFLt+djYWF6bfuTIkfj+7//+OHPmTF7zmMLM6dOn82FHjx7Np0nTqnFnMfv85z8fL730Unz1q1/Na9nVsAOAwA5QSs8991x0d3dP1qi/9a1vjfHx8Tyo/9f/+l/jc5/7XD6sOj5Nm+aBxapaw/6Nb3xDDTsAFAR2gJJJwXz58uX531SjnroUZn7gB34gbwafute85jX5sBRsvvOd7+RhPc2TatrnanT7qli1fbQotTIa21dtiqGJothgunHz5Uasg5vh61//en6LRzqeU+26GnYAENgBSicF8c7Ozjy8/MVf/EVeq/43f/M38a53vSv+xb/4F3mX+tOwVNuepvm7v/u7WLVqVfzVX/1VsZRZmhiKPeN90Te+Rxjmpqg+aE5QB4AagR2gZJYtWxY/+qM/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) -&] -[s5; &] -[s5; Everything set here is stored in the .upp file of the package.&] -[s5; You can use your own (or existing) compiler switches to include -different things for different builds here, based on configuration -flags.&] -[s5; Examples:&] -[s5; &] -[ {{1122:2364:6514<288;h1;@(204) [s0; [* When]] -:: [s0; [* Libraries]] -:: [s0; [*/ Comment]] -::@2 [s0; MSC] -:: [s0; SDL] -:: [s0; [/ some extra library to link to with VC`+`+ compiler]] -:: [s0; MSC] -:: [s0; SDL`_ttf] -:: [s0;/ ] -:: [s0; MINGW] -:: [s0; mingw32] -:: [s0;/ ] -:: [s0; MINGW] -:: [s0; SDL.dll] -:: [s0; [/ mingw compiler has special feature to link directly to dll -files]] -:: [s0; MINGW] -:: [s0; SDL`_ttf.dll] -:: [s0;/ ]}}&] -[s5; &] -[ {{1120:2385:6495<288;h1;@(204) [s0; [* When]] -:: [s0; [* Compiler options]] -:: [s0; [*/ Comment]] -::@2 [s0; MSC] -:: [s0; /Ot] -:: [s0; [/ additional compiler option for VC`+`+.]]}}&] -[s5; &] -[ {{1103:2386:6511<288;h1;@(204) [s0; [* When]] -:: [s0; [* Linker options]] -:: [s0; [*/ Comment]] -::@2 [s0; MSC] -:: [s0; `-nologo] -:: [s0; [/ some extra linker options when compiler is VC`+`+.]]}}&] -[s5; &] -[s21;:5`_3: 5.3 Build methods&] -[s5; Build methods are localized at `"Setup`-> Build methods`".&] -[s5; &] -[s0;= -@@rawimage:3812&3129 -(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) -&] -[s5; &] -[s5; Look carefully at the settings here. You can create different -build methods for different compilers.&] -[s5; Each method will store it`'s settings in a .bm file. The .bm -(bm stands for build method) files are stored in `~/.theide on -Posix systems and in the executable path of TheIDE on MS Windows.&] -[s5; The boxes at the top of the windows called `"Debug mode default`" -and `"Release mode default`" do [* NOT] contain the options actually -used for the current build. (they are not in effect when your -press F5). These are the default values used for new projects, -the options for the current build can be set by clicking on the -current build method in the main screen (top of the screen e.g. -`"GCC Debug`").&] -[s5; &] -[s0;= -@@rawimage:3969&885 -(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) -&] -[s5; &] -[s5; Notice that it has two `"pull`-down`" arrows. The left one selects -the build method. The right one sets the current build mode, -which occurs in two variants `"Debug`" and `"Release`".&] -[s21;:5`_4: 5.4 Output mode&] -[s5; You will need to click on build method name on main TheIDE tool -bar. It is shown on above image with `"MINGW Debug`" method.&] -[s5; &] -[s0;= -@@rawimage:3155&2538 -(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) -&] -[s0; &] -[s5; Link mode &] -[s19; [* All static] `- static libraries are preferred.&] -[s19; [* Shared libs] `- shared libraries are preferred, but the program`'s -packages will be linked statically.&] -[s19; [* All shared] `- both the external libraries and the applications -packages will be compiled and linked dynamically.&] -[s5; Target override&] -[s19; You can specify a target`-location for the resulting binary -here. By default it will be writing to following path:&] +topic "Getting started with TheIDE"; +[2 $$0,0#00000000000000000000000000000000:Default] +[l288;i704;a17;O9;~~~.992;2 $$1,0#10431211400427159095818037425705:param] +[a83;*R6 $$2,5#31310162474203024125188417583966:caption] +[H4;b83;*4 $$3,5#07864147445237544204411237157677:title] +[b167;a42;C2 $$4,6#40027414424643823182269349404212:item] +[b42;a42;ph2 $$5,5#45413000475342174754091244180557:text] +[l288;a17;ph2 $$6,6#27521748481378242620020725143825:desc] +[l321;t246;C@5;1 $$7,7#20902679421464641399138805415013:code] +[b2503;2 $$8,0#65142375456100023862071332075487:separator] +[*@(0.0.255)2 $$9,0#83433469410354161042741608181528:base] +[t4167;C2 $$10,0#37138531426314131251341829483380:class] +[l288;a17;*1 $$11,11#70004532496200323422659154056402:requirement] +[i417;b42;a42;O9;~~~.416;2 $$12,12#10566046415157235020018451313112:tparam] +[b167;C2 $$13,13#92430459443460461911108080531343:item1] +[i288;a42;O9;C2 $$14,14#77422149456609303542238260500223:item2] +[*@2$(0.128.128)2 $$15,15#34511555403152284025741354420178:NewsDate] +[l321;*C$7;2 $$16,16#03451589433145915344929335295360:result] +[l321;b83;a83;*C$7;2 $$17,17#07531550463529505371228428965313:result`-line] +[l160;t4167;*C+117 $$18,5#88603949442205825958800053222425:package`-title] +[l192;i150;a42;phO2;2 $$19,19#37291126451403010472971723210990:point] +[i167;phO9;2 $$20,20#33190467493505743255250994711132:step] +[b83;*+117 $$21,21#2AC2FD302E8CD436942CC99374D81489:SubTitle] +[{_}%EN-US +[s2; Getting started with TheIDE&] +[s3; Table of contents&] +[s0; &] +[s0; [^topic`:`/`/ide`/app`/GettingStarted`$en`-us`#1^ 1. Launching +TheIDE]&] +[s0; [^topic`:`/`/ide`/app`/GettingStarted`$en`-us`#2^ 2. Assemblies +and Packages]&] +[s0; [^topic`:`/`/ide`/app`/GettingStarted`$en`-us`#2`_1^ 2.1 Selecting +assembly]&] +[s0; [^topic`:`/`/ide`/app`/GettingStarted`$en`-us`#2`_2^ 2.2 Creating +new package]&] +[s0; [^topic`:`/`/ide`/app`/GettingStarted`$en`-us`#3^ 3. Configuring +package]&] +[s0; [^topic`:`/`/ide`/app`/GettingStarted`$en`-us`#4^ 4. Creating +new file]&] +[s0; [^topic`:`/`/ide`/app`/GettingStarted`$en`-us`#5^ 5. Explanations +about TheIDE]&] +[s0; [^topic`:`/`/ide`/app`/GettingStarted`$en`-us`#5`_1^ 5.1 What +is stored where?]&] +[s0; [^topic`:`/`/ide`/app`/GettingStarted`$en`-us`#5`_2^ 5.2 Package +organizer]&] +[s0; [^topic`:`/`/ide`/app`/GettingStarted`$en`-us`#5`_3^ 5.3 Build +methods]&] +[s0; [^topic`:`/`/ide`/app`/GettingStarted`$en`-us`#5`_4^ 5.4 Output +mode]&] +[s0; &] +[s3;:1: 1. Launching TheIDE&] +[s5; After installing U`+`+ find the appropriate TheIDE executable +file and launch it. By default the file should be localized in +the installation directory. However, it can depends on the operating +system and the way you installed U`+`+.&] +[s3;:2: 2. Assemblies and Packages&] +[s5; In this section we show how to create your own main package. +It can be treated as project, solution etc.&] +[s21;:2`_1: 2.1 Selecting assembly&] +[s5; After you launch TheIDE on the screen window should appear. +This window acts as a hub. When you can select/create packages +and assemblies. You can back to this window at any time when +you are working with TheIDE. Just select from main menu `"File`" +entry and select `"Set main package`" option.&] +[s5; First of all, select assembly which is called `"MyApps`". It +exists by default and it is intended to store user application. +To select this assembly click on its name once. If you want to +read more about assemblies see [^topic`:`/`/ide`/app`/PackagesAssembliesAndNests`$en`-us^ t +his reference page] for more details. In brief assembly is a +collection of packages.&] +[s5; &] +[s0;=l160; +@@rawimage:3475&2319 +(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) +&] +[s5; &] +[s5; In this window you can perform the following operations:&] +[s19; You can create a new assembly by right`-clicking on the assembly +list and choosing `"New assembly`". If you select an existing +assembly before this, the directory settings from the existing +assembly will be used.&] +[s19; If you`'re just getting started, leave this as it is and continue +creating package process.&] +[s5; &] +[s21;:2`_2: 2.2 Creating new package&] +[s5; To create a new package, press the `"New package`" button localized +on the bottom of the window. After that on the screen appears +the package creator.&] +[s5; &] +[s0;= +@@rawimage:3590&2543 +(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AABQWkIvAAAApSX0AgAAUFpCLwAAAKUl9AIAAFBaQi8AAAClJfQCAABQWkIvAAAApSX0AgAAUFpCLwAAAKUl9AIAAFBaQi8AAAClJfQCAABQWkIvAAAApSX0AgAAUFpCLwAAAKUl9AIAAFBaQi8AAAClJfQCAABQWkIvAAAApSX0AgAAUFpCLwAAAKUl9AIAAFBaQi8AAAClJfQCAABQWkIvAAAApSX0AgAAUFpCLwAAAKUl9AIAAFBaQi8AAAClJfQCAABQWkIvAAAApSX0AgAAUFpCLwAAAKUl9AIAAFBaQi8AAAClJfQCAABQWkIvAAAApSX0AgAAUFpCLwAAAKUl9AIAAFBaQi8AAAClJfQCAABQWkIvAAAApSX0AgAAUFpCLwAAAKUl9AIAAFBaQi8AAAClJfQCAABQWkIvAAAApSX0AgAAUFpCLwAAAKUl9AIAAFBaQi8AAAClJfQCAABQWkIvAAAApSX0AgAAUFpCLwAAAKUl9AIAAFBaQi8AAAClJfQCAABQWkIvAAAApSX0AgAAUFpCLwAAAKUl9AIAAFBaQi8AAAClJfQCAABQWkIvAAAApSX0AgAAUFpCLwAAAKUl9AIAAFBaQi8AAAClJfQCAABQWkIvAAAApSX0AgAAUFpCLwAAAKUl9AIAAFBaQi8AAAClJfQCAABQWkIvAAAApSX0AgAAUFpCLwAAAKUl9AIAAFBaQi8AAAClJfQCAABQWkIvAAAApSX0AgAAUFpCLwAAAKUl9AIAAFBaQi8AAAClJfQCAABQWkIvAAAApSX0AgAAUFpCLwAAAKUl9AIAAFBaQi8AAAClJfQCAABQWkIvAAAApSX0AgAAUFpCLwAAAKUl9AIAAFBaQi8AAAClJfQCAABQWkIvAAAApSX0AgAAUFpCLwAAAKUl9AIAAFBaQi8AAAClJfQCAABQWkIvAAAApSX0AgAAUFpCLwAAAKUl9AIAAFBaQi8AAAClJfQCAABQWkIvAAAApSX0AgAAUFpCLwAAAKUl9AIAAFBaQi8AAAClJfQCAABQWkIvAAAApSX0AgAAUFpCLwAAAKUl9AIAAFBaQi8AAAClJfQCAABQWkIvAAAApSX0AgAAUFpCLwAAAKUl9AIAAFBaQi8AAAClJfQCAABQWkIvAAAApSX0AgAAUFpCLwAAAKUl9AIAAFBaQi8AAAClJfQCAABQWkIvAAAApSX0AgAAUFpCLwAAAKUl9AIAAFBaQi8AAAClJfQCAABQWkIvAAAApSX0AgAAUFpCLwAAAKUl9AIAAFBaQi8AAAClJfQCAABQWkIvAAAApSX0AgAAUFpCLwAAAKUl9AIAAFBaQi8AAAClJfQCAABQWkIvAAAApSX0AgAAUFpCLwAAAKUl9AIAAFBaQi8AAAClJfQCAABQWkIvAAAApSX0AgAAUFpCLwAAAKUl9AIAAFBaQi8AAAClJfQCAABQWn2Prr209dztDxazwFFz27MfFFO3tg+f/EgxtdO3v/3tYurW9ulPf7qY6uz5CxfjS09OF3MAAAfv2rVrxdT+HDt2LL7y7Fw8/tipYknFE++/IvTCUSf0VuwWeu+9995i7tb0xhtvCL0AwKEl9AJtVUPve4/9eP7nreaOC3+a/yn0dib0AgCH2UGGXmN6AQAAKC2hFwAAgNISegEAACgtoRcAAIDSEnoBAAAoLaEXKLwbLzx0R9xxR/F56IVsCdtu5v15Lc7c8VC84AsBANgzoRfI8twL8dAdn4qNz78X771XfL4a8buvFeuvSwkC24HeHwAADpLQC7e8d+OFLzwdd198L565r1iU3Pm5+Fz9/C3L/QEAOMqEXrjVvfu78c03H4kH2ga4Sk/tmTMPxR13nMnmMnnPZ7XUt1iWee1MXfnvmbQ07XsqXow34+lPVZdl2ux/KO16f1pdd7600sP9wpnauocaursby6Vrux2lewMAcAQIvUDEPQNxVzHZ2pvx1sBX4733non7Upj71DfjM98pynwvRnytCHP3PVMt/70Yj7z4tXjh3fvimTQd98RTafu8q7T9/ofWLvdn53UXK1LY33iguM5H4s2n54sQmwLvp+Kbn/lOsV+1F/kI3hsAgENO6AWybLYR7xSTrd0Tn/nlOyuT774Tb1V7blNv5KkXs92LvV+r9mqm3t02Ou1/WO12f9pedxb2p4ou4vseyML/W/FOyrBF7/HnP1fc06qjeG8AAA7A97///WKqUbvlnQi9cKu785fjM/e8GK/uqY72kbhY9FDmn9RNmcpyT0Wx/Dvx1D3Fpi212P+w2u3+7Om6u3GE7g0AwAFqDrj7CbyJ0Au3vDvjc59/JF48VTeuNMnC3Autgt6dd8Xd8eLOstt3NuLNahlw3pOZL92p3f6H1i73p9vrrlcE6R334MjdGwCAg1UNuvsNvInQC6RBqfHed56Kt7JgVynTzT5fiPjllp2M98Uz2bbx9Ke2t01p8L6peCqejk/l+27E3bUez/vigUfqH2TVZv/DrNP9aXvdnWRB+hsX4+66e1C5BUfw3gAAHICPfexjxVRj4K1f3q2+R9de2nru9geLWeCoue3ZD/I/33vsx/M/bzV3XPjT/M8Pn/xI/mcr3/72t+Pee+8t5m5Nb7zxRnz6058u5jp7/sLF+NKT08UcAMDBu3btWjHVqNvAe+zYsfjKs3Px+GOniiUVT7z/ip5eAAAADqdq0N1PD2+V0AsAAMChdT2BNxF6AQAAKC2hFwAAgNISegEAACgtT2+GI6769OZbnac3d+bpzQDAYdbu6c3d6vT0ZqEXjjiht2K30EsIvQBAqQm9AHQlhV4AgKNI6AUAAOCWkUKvB1kBAABQWkIvAAAApSX0AgAAUFr5mN5iGgAAAEok4v8PGPL7k2+fvSYAAAAASUVORK5CYII=) +&] +[s5; &] +[s5; To create new package you should execute following steps:&] +[s19; Enter a package name, for this example we`'ll type `"main`", +leave the `"create in`" directory as it is for now (i.e. on MyApps +directory).&] +[s19; Optionally you can fill in a short description of the package, +that will appear in the package selection dialog.&] +[s19; It is possible to choose one of predefined templates, but we +leave it on for now.&] +[s19; Finally, press the `"Create`" button on the bottom of the window.&] +[s0; &] +[s3;:3: 3. Configuring package&] +[s5; At the beginning, let`'s assume that the package you have created +is main. Please note, that any package created or selected within +manager is by default main. To configure it, select `"Main package +configuration`" from the `"Project`" menu. Alternatively, you +can right mouse click on package list and select the same option.&] +[s5; &] +[s0;= +@@rawimage:3400&1194 +(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) +&] +[s5; &] +[s5; Let`'s take a look at the possibilities available in `"Main +package configuration`" window:&] +[s19; Here you should set the [^topic`:`/`/ide`/app`/Flags`$en`-us^ configuration +flags] that your program needs.&] +[s19; For the main package, you must specify at least one possible +configuration (otherwise you will not see your new package listed +under the `"MyApps`" assembly `- unless you select `"all packages`" +`- because only main packages are listed by default).&] +[s19; Just add an empty row for now (right click`->`"Append row`" +or press Insert key). The `"optional name`" can be left empty +or you can enter any meaningful description for your own reference.&] +[s19; [/ Note: For windows users: If you add `"GUI`" flag here, the standard +cin/cout/cerr will not be connected to anything. (so even if +you start the program from the command line you will not see +any text`-output).]&] +[s19; Press OK.&] +[s5; Here is a need of small digression. Several predefined templates +mention in the previous chapter have main package privileges +.by default. It means that there is not need to execute above +steps. Following templates fall under above definition: Basic +[*/ `"CtrlLib application`"], [*/ `"Core console project`"] and [*/ `"Skylark +web application`"].&] +[s5; Not main package can be used as supportive module for your projects. +You can place their common functions and classes and share between +other packages. In this way packages delivered by U`+`+ work +like Core and CtrlLib.&] +[s5; &] +[s3;:4: 4. Creating new file&] +[s5; You can now add files to you package, for this example, add +a new file `"main.cpp`" to the package. Below is the list of +steps that will guild you through the process:&] +[s19; Right click on the lower`-left part of TheIDE (or on `"File`" +in menu) and choose `"Insert package directory file(s)`", type +`"main.cpp`" and click `"Open`". If the file does not exist, +it will be created `- that is why you won`'t find `"New file`" +anywhere in TheIDE, it is just not needed.&] +[s5; &] +[s0;= +@@rawimage:3894&2524 +(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) +&] +[s5; &] +[s19; Alternatively, in the newer versions of TheIDE, you can create +new file using `"New`" option from the same menu shown in above +image. Then simply select file type and choose name for it. This +method is recommended for newer user, because it is a little +bit more intuitive and straight forward than creating file by +insertion (old way).&] +[s19; Type or copy following code into the newly created file:&] +[s5; &] +[s7; // `-`- example `-`- -|&] +[s7; -|#include &] +[s7; -|&] +[s7; -|int main()&] +[s7; -|`{&] +[s7; -|-|char dummy;&] +[s7; -|-|std`::cerr << `"Hello, platform! `" << std`::endl;&] +[s7; -|-|std`::cin >> dummy;&] +[s7; -|-|&] +[s7; -|-|return 0;&] +[s7; -|`}&] +[s7; // `-`- example `-`-&] +[s5; &] +[s19; If you have configured your compiler previously (you probably +did, either the installer instructed you how to do it or it was +done automatically), you can start the program by clicking on +execute +@@rawimage:100&100 +(iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAAAAAAAAAHqZRakAAACEElEQVQ4jaWSz0tUURTHP+e+MTCzsAQHUatJCI2gRWkkhRBFLYpWQbRw0ybaWAtdSC0CoSBCBP+AVuUqiBZt2kRFRbUIIqIg/EGtLEadeTP33XtOi+dUS6UDBy6Hy+d8vnDgP0vOjt6/cmz40O1fKS1mgCqmStSIqaGmWIyoGRYjUZXWJl/5+Glx/NHUhZnCwNDA9KbmFtfRvKHFLdWqTgMzhTSYS3+ublg9DeYAChaNyYu9GwZcujVHDjAFwIeIAaZGVFAMVSOqEoPlbYqPxu5iK1FjDsAMAHGCmGFOMDFEBecEEYdIRBIjUUch5P815ADXIDlARBAnJE5wiSAOEgdNScLk41NMPDyCJVkOiLm5M82JiPwBOcm3J4mQCDgH9eDpau9jdHYQH2poI0LjwZoBAGaMPRjGLOA14EOgs62XvuIgK7UKZ2ZKtNlUDghZ9sdAADNDRAjqObFvhGj5USnG9/IC+7uGWPUp79IRSuNsK9halgSwRhQzasETTZlb+kKmgaAZWcxYrq9woPsoq1mVV+nzpYKq/o2w1ohQCzVCDHRs7SFoJJryozzP9i1F3i+84PXXD1TrHJRzV2dni92d5zVGNCoxRlSV5fbL1LzHq6cWPHva+zlcOsnb+Zc8+/yGndVrT57evXF63ZfXf5PKyL3j1jPB4o4x9v5rva7adZ2KarK5XI+l8h2+Nea/AbjMJEcWh0TKAAAAAElFTkSuQmCC) + icon localized on main tool bar or by pressing CTRL`+F5 &] +[s19; After program launch, you can close it by typing any letter. +On the other hand, it can be ended by simply closing terminal +window.&] +[s19; Now you know how to use TheIDE to compile basic C`+`+ program. +Looking at the rest of documentation will give you better idea +how to unleash the full power of TheIDE and U`+`+. The best parts +to continue would be probably [^topic`:`/`/ide`/app`/PackagesAssembliesAndNests`$en`-us^ P +ackages, Assemblies and Nests] and [^topic`:`/`/ide`/app`/ConfiguringPackagesAssemblies`$en`-us^ t +heir configuration.] something about the key technologies utilized +in TheIDE: [^topic`:`/`/ide`/app`/Assist`$en`-us^ Assist`+`+], [^topic`:`/`/ide`/app`/Topic`$en`-us^ T +opic`+`+], [^topic`:`/`/ide`/app`/Blitz`$en`-us^ Blitz] or even +one of the tutorials linked from Manual section, if you want +to learn more about how to use U`+`+.&] +[s5; &] +[s3;:5: 5. Explanations about TheIDE&] +[s21;:5`_1: 5.1 What is stored where?&] +[s5; When you use TheIDE for the first time, it can be confusing +to see that settings like static/shared building, execute`-, +include`- and linker`- paths can be set in multiple places (for +instance, in Project`->Package organizer, in Setup`->Build methods +and by clicking on the current build method in the main screen +(at the top, e.g. `"GCC Debug`").&] +[s5; In the next part of this paragraph, we look at all configuration +options.&] +[s21;:5`_2: 5.2 Package organizer&] +[s5; Package organizer is localized at `"Project `-> Package organizer`".&] +[s5; &] +[s0;= +@@rawimage:3766&2611 +(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ACUksAMAAEAJCewAAABQQgI7AAAAlJDADgAAACUksAMAAEAJCewAAABQQgI7AAAAlJDADgAAACUksAMAAEAJCewAAABQQgI7AAAAlJDADgAAACUksAMAAEAJCewAAABQQgI7AAAAlJDADgAAACUksAMAAEAJCewAAABQQgI7AAAAlJDADgAAACUksAMAAEAJCewAAABQQgI7AAAAlJDADgAAACUksAMAAEAJCewAAABQQgI7AAAAlJDADgAAACUksAMAAEAJCewAAABQQgI7AAAAlJDADgAAACUksAMAAEAJCewAAABQQgI7AAAAlJDADgAAACUksAMAAEAJCewAAABQQgI7AAAAlJDADgAAACUksAMAAEAJCewAAABQQgI7AAAAlJDADgAAACUksAMAAEAJCewAAABQQgI7AAAAlJDADgAAACUksAMAAEAJCewAAABQQgI7AAAAlJDADgAAACUksAMAAEAJCewAAABQQssePn3gyhN3bC6KFYNDw7HzsUeKErBU7Hr8ydjW31eUapwT5mb//v1FH3Atv/zLv1z0AcDicvny5aJvblauXNn0e/ijLx0R2IEagX1+pcC+ZcuWogS0cujQIYEdgEVrIQO7JvEAAABQQgI7AAAAlJDADgAAACUksAMsAl/60pfi05/+dPyn//Sf8i71p2Fwq/ja174Wf//3fx/f/va343vf+15cuXKlGAMAS5fADlBy//AP/xCnTp2KTZs2xS/90i/lXepPw775zW8WU8Hi9sUvfjG+8pWv5KH9u9/9bjEUAJY2gR2ghFLt+djYWF6bfuTIkfj+7//+OHPmTF7zmMLM6dOn82FHjx7Np0nTqnFnMfv85z8fL730Unz1q1/Na9nVsAOAwA5QSs8991x0d3dP1qi/9a1vjfHx8Tyo/9f/+l/jc5/7XD6sOj5Nm+aBxapaw/6Nb3xDDTsAFAR2gJJJwXz58uX531SjnroUZn7gB34gbwafute85jX5sBRsvvOd7+RhPc2TatrnanT7qli1fbQotTIa21dtiqGJothgunHz5Uasg5vh61//en6LRzqeU+26GnYAENgBSicF8c7Ozjy8/MVf/EVeq/43f/M38a53vSv+xb/4F3mX+tOwVNuepvm7v/u7WLVqVfzVX/1VsZRZmhiKPeN90Te+Rxjmpqg+aE5QB4AagR2gZJYtWxY/+qM/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) +&] +[s5; &] +[s5; Everything set here is stored in the .upp file of the package.&] +[s5; You can use your own (or existing) compiler switches to include +different things for different builds here, based on configuration +flags.&] +[s5; Examples:&] +[s5; &] +[ {{1122:2364:6514<288;h1;@(204) [s0; [* When]] +:: [s0; [* Libraries]] +:: [s0; [*/ Comment]] +::@2 [s0; MSC] +:: [s0; SDL] +:: [s0; [/ some extra library to link to with VC`+`+ compiler]] +:: [s0; MSC] +:: [s0; SDL`_ttf] +:: [s0;/ ] +:: [s0; MINGW] +:: [s0; mingw32] +:: [s0;/ ] +:: [s0; MINGW] +:: [s0; SDL.dll] +:: [s0; [/ mingw compiler has special feature to link directly to dll +files]] +:: [s0; MINGW] +:: [s0; SDL`_ttf.dll] +:: [s0;/ ]}}&] +[s5; &] +[ {{1120:2385:6495<288;h1;@(204) [s0; [* When]] +:: [s0; [* Compiler options]] +:: [s0; [*/ Comment]] +::@2 [s0; MSC] +:: [s0; /Ot] +:: [s0; [/ additional compiler option for VC`+`+.]]}}&] +[s5; &] +[ {{1103:2386:6511<288;h1;@(204) [s0; [* When]] +:: [s0; [* Linker options]] +:: [s0; [*/ Comment]] +::@2 [s0; MSC] +:: [s0; `-nologo] +:: [s0; [/ some extra linker options when compiler is VC`+`+.]]}}&] +[s5; &] +[s21;:5`_3: 5.3 Build methods&] +[s5; Build methods are localized at `"Setup`-> Build methods`".&] +[s5; &] +[s0;= +@@rawimage:3812&3129 +(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) +&] +[s5; &] +[s5; Look carefully at the settings here. You can create different +build methods for different compilers.&] +[s5; Each method will store it`'s settings in a .bm file. The .bm +(bm stands for build method) files are stored in `~/.theide on +Posix systems and in the executable path of TheIDE on MS Windows.&] +[s5; The boxes at the top of the windows called `"Debug mode default`" +and `"Release mode default`" do [* NOT] contain the options actually +used for the current build. (they are not in effect when your +press F5). These are the default values used for new projects, +the options for the current build can be set by clicking on the +current build method in the main screen (top of the screen e.g. +`"GCC Debug`").&] +[s5; &] +[s0;= +@@rawimage:3969&885 +(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) +&] +[s5; &] +[s5; Notice that it has two `"pull`-down`" arrows. The left one selects +the build method. The right one sets the current build mode, +which occurs in two variants `"Debug`" and `"Release`".&] +[s21;:5`_4: 5.4 Output mode&] +[s5; You will need to click on build method name on main TheIDE tool +bar. It is shown on above image with `"MINGW Debug`" method.&] +[s5; &] +[s0;= +@@rawimage:3155&2538 +(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) +&] +[s0; &] +[s5; Link mode &] +[s19; [* All static] `- static libraries are preferred.&] +[s19; [* Shared libs] `- shared libraries are preferred, but the program`'s +packages will be linked statically.&] +[s19; [* All shared] `- both the external libraries and the applications +packages will be compiled and linked dynamically.&] +[s5; Target override&] +[s19; You can specify a target`-location for the resulting binary +here. By default it will be writing to following path:&] [s19;O_; [/ `"C:`\upp`\out`\`$target`\MINGW.Blitz.Debug.Shared.So.Win32`\foo.exe`".]]] \ No newline at end of file diff --git a/uppsrc/ide/app.tpp/IconDes$en-us.tpp b/uppsrc/ide/app.tpp/IconDes_en-us.tpp similarity index 99% rename from uppsrc/ide/app.tpp/IconDes$en-us.tpp rename to uppsrc/ide/app.tpp/IconDes_en-us.tpp index 710127ca9..e4320c1bc 100644 --- a/uppsrc/ide/app.tpp/IconDes$en-us.tpp +++ b/uppsrc/ide/app.tpp/IconDes_en-us.tpp @@ -1,53 +1,53 @@ -topic "Iml designer"; -[ $$0,0#00000000000000000000000000000000:Default] -[#a83;*R6 $$1,0#31310162474203024125188417583966:caption] -[#b83;*4 $$2,0#07864147445237544204411237157677:title] -[b42;a42;2 $$3,3#45413000475342174754091244180557:text] -[{_}%EN-US -[s1; Icon Designer&] -[s2; 1. Fundamental controls&] -[s0; &] -[ {{3462:6538 [s3; [* Right mouse button]] -:: [s3; Picks current color.] -:: [s3; [* Shift`+Left mouse button]] -:: [s3; Flood fill.] -:: [s3; [* Shift`+cursor keys]] -:: [s3; Move selection if any, scroll image otherwise.]}}&] -[s2; 2. Supersampling mode&] -[s3; -@@image:118&118 -(AxMAEwAAAAAAAAAAAHice/PyxpsRgxoYGOBsBjAgUhcEIQsS1AtRj0wia2TAEMHjVKzqcTmgAUOcoF0ENRJvI3KokupH8uKRJAPxKMCvF54GcCEq+oIWumiBAOu9VuA=) - icon switches designer to `"supersampling`" mode. Image is scaled -3 times by repeating pixels in this mode:&] -[s0;= [* -@@image:725&731 -(A3QAdQAAAAAAAAAAAHic7dhBakMxEATRf9qcI9fwaZ1sPBiiReBrZLV4RRamEBgVgRa+Lkzm+eL389eLxwvyjtRW20T53rZ8nSTvSG21TZTvbTEXW9YntdU2UdqyPqmttonSG6wPW9YntdU2UdqyPqmttonSG6yPj2zZdX3/+WuRy240lNpqm962fJ1sksvaLrvRUGqrbXpbzKV7y5b9i/5fdlxzKLXVNr1t+Tp5X27YtuOaQ6mttultMZfNt6zjizquOZTaapvetnydvC+X7c7mW6attoltMZfuLeuQy/bxptRW2/S25evknnLZPt6U2mqb3hZz2XzLUmZrKLXVNr1t+Tr5cZkyW0OprbbpbTGXfbYseraGUltt09uWr5MrZfRsDaW22qa3xVxsWZ/UVtv0tuXr5Ep59pZpq21iW8xlny07T2qrbaLcZ8vOk9pqmyi9wfrYZ8vO/j1BW20T25avkyvl2b8naKttYlvMxZb1SW21TW9bvk6ulGdvmbbaJrbFXPbZsvOkttomyn227DyprbaJ0husD1vWJ7XVNlHasj6prbaJ0husD1vWJ7XVNlHasj6prbaJ0husjycAYC0/+ktIYA==) -][* ][* -@@image:1694&1694 -(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) -]&] -[s3; In supersampling mode, you can draw detailed content that will -get smooth antialiased appearance when rescaled down again:&] -[s0;= [* -@@image:1689&1689 -(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) -][* ][* -@@image:712&712 -(A3IAcgAAAAAAAAAAAHic7ZwxSytBFEbtrWy0Nr2NNlqbXpQXi2AnpAlo855Wwpb6E/y1ebIXPwKZhQ0zd2duOB8Xi8NlM3NYuGt2yNERKZzNZvPzd/Wb798AcyBWsRoFmlUR9QBzIFaxGgWaVVI2TCsPiFWsRoFMKw+IVaxGgTxZeaSFaTWfP1itVn+t9oLL5ZPV5+eXVfUdYRWrsayKqGdKKEWStheUTOmtviOsYjWWVVI2ftPq7m5h9fb2YdV/YLdTLvD6+t5qsXixctpmEmIVq7GsiqgnH0qm9E5pVTKl12mbSYhVrMaySsrGb1qdnj5bzWavVv0HdiNvttlsaXV1tbbKv6bHNpMQq1iNZVVEPflQG5eKvQxIpvTmX9Njm0mIVazGskrKxm9ajb+Fbm7urR4fX6yGrpl8mdLstMIqVqNYFVFPPhy/WcmU3qFrJl+mNDutsIrVKFZJ2bRwdiUJk4Pp+PjV6uTkn1W/iW73tjw7e7ba/sZgssVjFauxrIqopzpMDibJlN4hq5IpvVMuHqtYjWWVlE0L0ypzMCU76x4VxipWY1kVUc+UMHMwJTvrHhXGKlZjWSVl08K0yjyRojOH7+8fVtV3hFWsxrIqop4pYeaJFMncPn5cd0dYxWosq6RsWphW42/Luu9NxkOsYjWWVRH1TAnHW6373mQ8xCpWY1klZdPCtDo8iFWsRoEtTKvDg1jFahTIk5VHWphWFxd/rG5v11b90rrd/wLUOZ+vraovPgmxitVYVkXUMyWUTEkbsiqZ2511F5+EWMVqLKukbFqYVufnS6vLy7VVv7Qu9f1q4oeD6i4+CbGK1VhWRdQzJZRM6R2ymvzhoLqLT0KsYjWWVVI2LUyrw4NYxWoU2MK0OjyIVaxGgTxZeYRp5QGxitUokGnlAbGK1SiQJyuPMK08IFaxGgUyrTwgVrEaBfJk5ZEN8cl/Ektw1Q==) -]&] -[s3; Scaling up and down algorithms are paired in a way that is loss`-less -for unaltered parts of image. It is therefore possible to edit -parts of already supersampled Image without problems.&] -[s2; 3. Interpolation&] -[s3; Interpolation -@@image:125&125 -(AxQAFAAAAAAAAAAAAHice//6+fsRj/4zMDQwMMBJ4jUC1XeGVSToJlXETKx3SVxRWNtAnHagLd3xDa66dWA7G2Kdyxc0TCbGaqDqpeUdmb7NEI2qaqWhrpnV/uHE2As0f03vnNKkFif7ShO7YnvfrPCUpLKChAVNRQStBpo/LSmjLq04IbnAPznduzQuuDk0fVJY15T0tROr8dsONHx9X29PTVlheWZMS5zPJH+nNQ4eO21K10WuWteO32qgybMToyaUZ9R0pKZMDXff5KB0TQEYSeE7LdrrPAjau66iaF5zfndfRtGSKO/91qDY/c+QuNN+Vm8SMV5e31Ixf0px3+Kc4vVB8ac8Ug+7T5yfSHwUb53QuHX9pMmtUUv3ti6aX0xq0kJOlsRrHN4IAE/wpu0=) - is a function that fills transparent areas with colors created -by smooth interpolation of non`-transparent pixels in the area:&] -[s0;= [*+117 -@@image:1806&1806 -(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) -][*+117 ][*+117 -@@image:1806&1806 -(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) +topic "Iml designer"; +[ $$0,0#00000000000000000000000000000000:Default] +[#a83;*R6 $$1,0#31310162474203024125188417583966:caption] +[#b83;*4 $$2,0#07864147445237544204411237157677:title] +[b42;a42;2 $$3,3#45413000475342174754091244180557:text] +[{_}%EN-US +[s1; Icon Designer&] +[s2; 1. Fundamental controls&] +[s0; &] +[ {{3462:6538 [s3; [* Right mouse button]] +:: [s3; Picks current color.] +:: [s3; [* Shift`+Left mouse button]] +:: [s3; Flood fill.] +:: [s3; [* Shift`+cursor keys]] +:: [s3; Move selection if any, scroll image otherwise.]}}&] +[s2; 2. Supersampling mode&] +[s3; +@@image:118&118 +(AxMAEwAAAAAAAAAAAHice/PyxpsRgxoYGOBsBjAgUhcEIQsS1AtRj0wia2TAEMHjVKzqcTmgAUOcoF0ENRJvI3KokupH8uKRJAPxKMCvF54GcCEq+oIWumiBAOu9VuA=) + icon switches designer to `"supersampling`" mode. Image is scaled +3 times by repeating pixels in this mode:&] +[s0;= [* +@@image:725&731 +(A3QAdQAAAAAAAAAAAHic7dhBakMxEATRf9qcI9fwaZ1sPBiiReBrZLV4RRamEBgVgRa+Lkzm+eL389eLxwvyjtRW20T53rZ8nSTvSG21TZTvbTEXW9YntdU2UdqyPqmttonSG6wPW9YntdU2UdqyPqmttonSG6yPj2zZdX3/+WuRy240lNpqm962fJ1sksvaLrvRUGqrbXpbzKV7y5b9i/5fdlxzKLXVNr1t+Tp5X27YtuOaQ6mttultMZfNt6zjizquOZTaapvetnydvC+X7c7mW6attoltMZfuLeuQy/bxptRW2/S25evknnLZPt6U2mqb3hZz2XzLUmZrKLXVNr1t+Tr5cZkyW0OprbbpbTGXfbYseraGUltt09uWr5MrZfRsDaW22qa3xVxsWZ/UVtv0tuXr5Ep59pZpq21iW8xlny07T2qrbaLcZ8vOk9pqmyi9wfrYZ8vO/j1BW20T25avkyvl2b8naKttYlvMxZb1SW21TW9bvk6ulGdvmbbaJrbFXPbZsvOkttomyn227DyprbaJ0husD1vWJ7XVNlHasj6prbaJ0husD1vWJ7XVNlHasj6prbaJ0husjycAYC0/+ktIYA==) +][* ][* +@@image:1694&1694 +(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) +]&] +[s3; In supersampling mode, you can draw detailed content that will +get smooth antialiased appearance when rescaled down again:&] +[s0;= [* +@@image:1689&1689 +(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) +][* ][* +@@image:712&712 +(A3IAcgAAAAAAAAAAAHic7ZwxSytBFEbtrWy0Nr2NNlqbXpQXi2AnpAlo855Wwpb6E/y1ebIXPwKZhQ0zd2duOB8Xi8NlM3NYuGt2yNERKZzNZvPzd/Wb798AcyBWsRoFmlUR9QBzIFaxGgWaVVI2TCsPiFWsRoFMKw+IVaxGgTxZeaSFaTWfP1itVn+t9oLL5ZPV5+eXVfUdYRWrsayKqGdKKEWStheUTOmtviOsYjWWVVI2ftPq7m5h9fb2YdV/YLdTLvD6+t5qsXixctpmEmIVq7GsiqgnH0qm9E5pVTKl12mbSYhVrMaySsrGb1qdnj5bzWavVv0HdiNvttlsaXV1tbbKv6bHNpMQq1iNZVVEPflQG5eKvQxIpvTmX9Njm0mIVazGskrKxm9ajb+Fbm7urR4fX6yGrpl8mdLstMIqVqNYFVFPPhy/WcmU3qFrJl+mNDutsIrVKFZJ2bRwdiUJk4Pp+PjV6uTkn1W/iW73tjw7e7ba/sZgssVjFauxrIqopzpMDibJlN4hq5IpvVMuHqtYjWWVlE0L0ypzMCU76x4VxipWY1kVUc+UMHMwJTvrHhXGKlZjWSVl08K0yjyRojOH7+8fVtV3hFWsxrIqop4pYeaJFMncPn5cd0dYxWosq6RsWphW42/Luu9NxkOsYjWWVRH1TAnHW6373mQ8xCpWY1klZdPCtDo8iFWsRoEtTKvDg1jFahTIk5VHWphWFxd/rG5v11b90rrd/wLUOZ+vraovPgmxitVYVkXUMyWUTEkbsiqZ2511F5+EWMVqLKukbFqYVufnS6vLy7VVv7Qu9f1q4oeD6i4+CbGK1VhWRdQzJZRM6R2ymvzhoLqLT0KsYjWWVVI2LUyrw4NYxWoU2MK0OjyIVaxGgTxZeYRp5QGxitUokGnlAbGK1SiQJyuPMK08IFaxGgUyrTwgVrEaBfJk5ZEN8cl/Ektw1Q==) +]&] +[s3; Scaling up and down algorithms are paired in a way that is loss`-less +for unaltered parts of image. It is therefore possible to edit +parts of already supersampled Image without problems.&] +[s2; 3. Interpolation&] +[s3; Interpolation +@@image:125&125 +(AxQAFAAAAAAAAAAAAHice//6+fsRj/4zMDQwMMBJ4jUC1XeGVSToJlXETKx3SVxRWNtAnHagLd3xDa66dWA7G2Kdyxc0TCbGaqDqpeUdmb7NEI2qaqWhrpnV/uHE2As0f03vnNKkFif7ShO7YnvfrPCUpLKChAVNRQStBpo/LSmjLq04IbnAPznduzQuuDk0fVJY15T0tROr8dsONHx9X29PTVlheWZMS5zPJH+nNQ4eO21K10WuWteO32qgybMToyaUZ9R0pKZMDXff5KB0TQEYSeE7LdrrPAjau66iaF5zfndfRtGSKO/91qDY/c+QuNN+Vm8SMV5e31Ixf0px3+Kc4vVB8ac8Ug+7T5yfSHwUb53QuHX9pMmtUUv3ti6aX0xq0kJOlsRrHN4IAE/wpu0=) + is a function that fills transparent areas with colors created +by smooth interpolation of non`-transparent pixels in the area:&] +[s0;= [*+117 +@@image:1806&1806 +(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) +][*+117 ][*+117 +@@image:1806&1806 +(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) ]]] \ No newline at end of file diff --git a/uppsrc/ide/app.tpp/IntroductionToUPP$en-us.tpp b/uppsrc/ide/app.tpp/IntroductionToUPP_en-us.tpp similarity index 97% rename from uppsrc/ide/app.tpp/IntroductionToUPP$en-us.tpp rename to uppsrc/ide/app.tpp/IntroductionToUPP_en-us.tpp index d8c55bb0c..28c245470 100644 --- a/uppsrc/ide/app.tpp/IntroductionToUPP$en-us.tpp +++ b/uppsrc/ide/app.tpp/IntroductionToUPP_en-us.tpp @@ -1,90 +1,90 @@ -topic "Introduction to U++"; -[ $$0,0#00000000000000000000000000000000:Default] -[=b133;*R5 $$1,2#50732784410233463530219518343157:Heading1] -[a17;*@(170.42.0) $$2,3#48345324464242285505540720043115:Heading2] -[2 $$3,3#42410412485283044863419059360682:Body1] -[{_}%EN-US -[s0; &] -[s1; Introduction to U`+`+&] -[s0; &] -[s0; &] -[s2; Welcome to U`+`+.&] -[s3; U`+`+ is both an application framework (class library for Win32 -and Linux) as well as a complete development tool including RAD -GUI designer, source editor, image editor, code documenting tool, -and C`+`+ project builder. It also provides a powerful `"C`-like`" -scripting language (ESC) enabling you to provide end user extensibility -and customization of your own applications, as well as extend -TheIDE (the U`+`+ IDE)&] -[s3; &] -[s3; This topic describes the key concepts of U`+`+ to help you get -started as quickly as possible. If you want to try out U`+`+ -before reading any further, you can build and run the HelloWorld -example and read the HelloWorld tutorial [@(255.42.0) here (fix)].&] -[s0; &] -[s0; &] -[s2; [_ TheIDE]&] -[s3; Before you can run TheIDE, you must first choose the package -and assembly you wish to work with using the `"Select`-main`-package`" -dialog. After an assembly and package have been selected, the -package is opened in TheIDE. The package that has been opened -is referred to as the [* main package] and its name is shown in -the title bar of the U`+`+ application window. The uppermost -pane at the left hand side of TheIDE shows the name of the main -package followed by a list of the packages used by the main package. - The lower left`-hand pane lists the source files belonging to -the package whose name is highlighted in the upper pane. To -select a different main package, the `"Set main package`" option -from the File menu is used. For more detail on using TheIDE, -[^topic`:`/`/ide`/app`/Intro`_TheIDE`$en`-us^ see this][@(226.42.0) .]&] -[s0; &] -[s0; &] -[s2; Packages, assemblies and nests&] -[s3; Packages are centric to U`+`+. An executable application is -built from a package. A package can also build into a dynamic -link library, a static library, or a set of object files. A -package can be used by other packages. A package corresponds -to a single directory whose name is the name of the package. - TheIDE itself is a package and you can rebuild it from within -TheIDE if you wish!&] -[s3; &] -[s3; An assembly can be thought of as a collection of packages but -it is actually just a set of paths which determine where U`+`+ -looks for the packages and source files needed when building -one of the assembly packages. The paths defined by the assembly -are stored in an assembly definition file which has a .var extension -and is stored in the U`+`+ root installation directory. A package -can `"appear`" in multiple assemblies.&] -[s3; &] -[s3; U`+`+ requires that packages be organized into nests. A nest -is actually just a directory containing a set of package directories, -folders or files. An assembly defines an ordered list of nests -(paths) and the packages contained in those nests form the packages -of the assembly. For more detail on packages and assemblies -see [^topic`:`/`/ide`/app`/PackagesAssembliesAndNests`$en`-us^ `"Packages, -Assemblies and Nests`" ]and. [^topic`:`/`/ide`/app`/ConfiguringPackagesAssemblies`$en`-us^ `" -Creating and Configuring Assemblies and Packages`"]&] -[s0;_@(28.85.0) &] -[s0;_@(28.85.0) &] -[s2; RAD GUI designer&] -[s0; &] -[s0; &] -[s0; &] -[s2; The ESC macro language&] -[s0; &] -[s0; &] -[s2; The help system.&] -[s3; U`+`+ documentation is created with Topic`+`+.&] -[s3; &] -[s3; &] -[s0; &] -[s2; U`+`+ License&] -[s3; The U`+`+ license is BSD, allowing almost unrestricted use of -the product and its source&] -[s3; code. Full C`+`+ source code is provided for both TheIDE and -the class framework,&] -[s3; ensuring both the future of U`+`+ and the ability to support -and extend your &] -[s3; own applications.&] -[s0; &] +topic "Introduction to U++"; +[ $$0,0#00000000000000000000000000000000:Default] +[=b133;*R5 $$1,2#50732784410233463530219518343157:Heading1] +[a17;*@(170.42.0) $$2,3#48345324464242285505540720043115:Heading2] +[2 $$3,3#42410412485283044863419059360682:Body1] +[{_}%EN-US +[s0; &] +[s1; Introduction to U`+`+&] +[s0; &] +[s0; &] +[s2; Welcome to U`+`+.&] +[s3; U`+`+ is both an application framework (class library for Win32 +and Linux) as well as a complete development tool including RAD +GUI designer, source editor, image editor, code documenting tool, +and C`+`+ project builder. It also provides a powerful `"C`-like`" +scripting language (ESC) enabling you to provide end user extensibility +and customization of your own applications, as well as extend +TheIDE (the U`+`+ IDE)&] +[s3; &] +[s3; This topic describes the key concepts of U`+`+ to help you get +started as quickly as possible. If you want to try out U`+`+ +before reading any further, you can build and run the HelloWorld +example and read the HelloWorld tutorial [@(255.42.0) here (fix)].&] +[s0; &] +[s0; &] +[s2; [_ TheIDE]&] +[s3; Before you can run TheIDE, you must first choose the package +and assembly you wish to work with using the `"Select`-main`-package`" +dialog. After an assembly and package have been selected, the +package is opened in TheIDE. The package that has been opened +is referred to as the [* main package] and its name is shown in +the title bar of the U`+`+ application window. The uppermost +pane at the left hand side of TheIDE shows the name of the main +package followed by a list of the packages used by the main package. + The lower left`-hand pane lists the source files belonging to +the package whose name is highlighted in the upper pane. To +select a different main package, the `"Set main package`" option +from the File menu is used. For more detail on using TheIDE, +[^topic`:`/`/ide`/app`/Intro`_TheIDE`$en`-us^ see this][@(226.42.0) .]&] +[s0; &] +[s0; &] +[s2; Packages, assemblies and nests&] +[s3; Packages are centric to U`+`+. An executable application is +built from a package. A package can also build into a dynamic +link library, a static library, or a set of object files. A +package can be used by other packages. A package corresponds +to a single directory whose name is the name of the package. + TheIDE itself is a package and you can rebuild it from within +TheIDE if you wish!&] +[s3; &] +[s3; An assembly can be thought of as a collection of packages but +it is actually just a set of paths which determine where U`+`+ +looks for the packages and source files needed when building +one of the assembly packages. The paths defined by the assembly +are stored in an assembly definition file which has a .var extension +and is stored in the U`+`+ root installation directory. A package +can `"appear`" in multiple assemblies.&] +[s3; &] +[s3; U`+`+ requires that packages be organized into nests. A nest +is actually just a directory containing a set of package directories, +folders or files. An assembly defines an ordered list of nests +(paths) and the packages contained in those nests form the packages +of the assembly. For more detail on packages and assemblies +see [^topic`:`/`/ide`/app`/PackagesAssembliesAndNests`$en`-us^ `"Packages, +Assemblies and Nests`" ]and. [^topic`:`/`/ide`/app`/ConfiguringPackagesAssemblies`$en`-us^ `" +Creating and Configuring Assemblies and Packages`"]&] +[s0;_@(28.85.0) &] +[s0;_@(28.85.0) &] +[s2; RAD GUI designer&] +[s0; &] +[s0; &] +[s0; &] +[s2; The ESC macro language&] +[s0; &] +[s0; &] +[s2; The help system.&] +[s3; U`+`+ documentation is created with Topic`+`+.&] +[s3; &] +[s3; &] +[s0; &] +[s2; U`+`+ License&] +[s3; The U`+`+ license is BSD, allowing almost unrestricted use of +the product and its source&] +[s3; code. Full C`+`+ source code is provided for both TheIDE and +the class framework,&] +[s3; ensuring both the future of U`+`+ and the ability to support +and extend your &] +[s3; own applications.&] +[s0; &] [s0; ]] \ No newline at end of file diff --git a/uppsrc/ide/app.tpp/Keys$en-us.tpp b/uppsrc/ide/app.tpp/Keys_en-us.tpp similarity index 97% rename from uppsrc/ide/app.tpp/Keys$en-us.tpp rename to uppsrc/ide/app.tpp/Keys_en-us.tpp index 33d651332..39a5527af 100644 --- a/uppsrc/ide/app.tpp/Keys$en-us.tpp +++ b/uppsrc/ide/app.tpp/Keys_en-us.tpp @@ -1,270 +1,270 @@ -topic "Keys"; -[ $$0,0#00000000000000000000000000000000:Default] -[l288;i704;a17;O9;~~~.992; $$1,0#10431211400427159095818037425705:param] -[a83;*R6 $$2,0#31310162474203024125188417583966:caption] -[b83;* $$3,5#07864147445237544204411237157677:title] -[b167;a42;C $$4,6#40027414424643823182269349404212:item] -[b42;a42; $$5,5#45413000475342174754091244180557:text] -[l288;a17; $$6,6#27521748481378242620020725143825:desc] -[l321;t246;C@5;1 $$7,0#20902679421464641399138805415013:code] -[b2503; $$8,0#65142375456100023862071332075487:separator] -[*@(0.0.255) $$9,10#83433469410354161042741608181528:base] -[t4167;C+117 $$10,10#37138531426314131251341829483380:class] -[l288;a17;*1 $$11,11#70004532496200323422659154056402:requirement] -[i416;b42;a42;O9;~~~.416; $$12,12#10566046415157235020018451313112:tparam] -[b167;C $$13,13#92430459443460461911108080531343:item1] -[a42;C $$14,14#77422149456609303542238260500223:item2] -[*@2$(0.128.128) $$15,15#34511555403152284025741354420178:NewsDate] -[l321;*C$7 $$16,16#03451589433145915344929335295360:result] -[l321;b83;a83;*C$7 $$17,17#07531550463529505371228428965313:result`-line] -[l160;t4167;*C+117 $$18,4#88603949442205825958800053222425:package`-title] -[{_}%EN-US -[s0;=O9; [*R+217 TheIDE keys]&] -[s0;O9;*R2 &] -[s0;O9; [*+117 Fixed keys]&] -[s0;O9;~~~.1600;@(0.0.255)2 &] -[ {{4000:6000<167;>167;^@(255.255.150) [s0; [*@(0.0.255)2 Ctrl`+Tab]] -:: [s0; [*2 Cycle files.]] -:: [s0;%- [*@(0.0.255)2 Esc]] -:: [s0; [*2 Show/hide bottom pane.]] -::@2 [s0;%- [*@(0.0.255)2 Ctrl`+Z][*2 , ][*@(0.0.255)2 Alt`+Backspace]] -:: [s0; [2 Undo.]] -:: [s0;%- [*@(0.0.255)2 Shift`+Ctrl`+Z][*2 , ][*@(0.0.255)2 Shift`+Alt`+Backspace]] -:: [s0; [2 Redo.]] -:: [s0;%- [*@(0.0.255)2 Ctrl`+X][*2 , ][*@(0.0.255)2 Shift`+Delete]] -:: [s0; [2 Cut.]] -:: [s0;%- [*@(0.0.255)2 Ctrl`+C][*2 , ][*@(0.0.255)2 Ctrl`+Insert]] -:: [s0; [2 Copy selection if defined, current line otherwise.]] -:: [s0;%- [*@(0.0.255)2 Ctrl`+V][*2 , ][*@(0.0.255)2 Shift`+Insert]] -:: [s0; [2 Paste.]] -:: [s0;%- [*@(0.0.255)2 Delete]] -:: [s0; [2 Delete selection if defined, one character otherwise.]] -:: [s0;%- [*@(0.0.255)2 Ctrl`+A]] -:: [s0; [2 Select all.]] -:: [s0;%- [*@(0.0.255)2 Ctrl`+Up]] -:: [s0; [2 Scroll up.]] -:: [s0;%- [*@(0.0.255)2 Ctrl`+Down]] -:: [s0; [2 Scroll down.]] -:: [s0;%- [*@(0.0.255)2 Ctrl`+PageUp][*2 , ][*@(0.0.255)2 Ctrl`+Home]] -:: [s0; [2 Begin of the file.]] -:: [s0;%- [*@(0.0.255)2 Ctrl`+PageDown][*2 , ][*@(0.0.255)2 Ctrl`+End]] -:: [s0; [2 End of the file.]] -:: [s0;%- [*@(0.0.255)2 Ctrl`+Delete]] -:: [s0; [2 Delete identifier from cursor to end.]] -:: [s0;%- [*@(0.0.255)2 Ctrl`+Backspace]] -:: [s0; [2 Delete identifier from cursor to beginning.]] -:: [s0;%- [*@(0.0.255)2 Ctrl`+Left]] -:: [s0; [2 Previous word.]] -:: [s0;%- [*@(0.0.255)2 Ctrl`+Right]] -:: [s0; [2 Next word.]] -:: [s0;%- [*@(0.0.255)2 Ctrl`+`[]] -:: [s0; [2 Next matching bracket.]] -:: [s0;%- [*@(0.0.255)2 Ctrl`+`]]] -:: [s0; [2 Previous matching bracket.]] -:: [s0;%- [*@(0.0.255)2 Tab]] -:: [s0; [2 When selection is defined, indent selection right.]] -:: [s0;%- [*@(0.0.255)2 Shift`+Tab]] -:: [s0; [2 When selection is defined, indent selection left.]] -:: [s0;%- [*@(0.0.255)2 Shift`+Ctrl`+Up]] -:: [s0; [2 Move package file up.]] -:: [s0;%- [*@(0.0.255)2 Shift`+Ctrl`+Down]] -:: [s0; [2 Move package file down.]] -:: [s0;%- [*@(0.0.255)2 Alt`+Delete]] -:: [s0; [2 Remove package file.]] -:: [s0;%- [*@(0.0.255)2 Alt`+Up]] -:: [s0; [2 Previous package file.]] -:: [s0;%- [*@(0.0.255)2 Alt`+Down]] -:: [s0; [2 Next package file.]] -:: [s0;%- [*@(0.0.255)2 Alt`+Left]] -:: [s0; [2 Go back.]] -:: [s0;%- [*@(0.0.255)2 Alt`+Right]] -:: [s0; [2 Go forward.]] -:: [s0;%- [*@(0.0.255)2 Alt`+Page Up]] -:: [s0; [2 Previous package.]] -:: [s0;%- [*@(0.0.255)2 Alt`+Page Down]] -:: [s0; [2 Next package.]] -:: [s0;%- [*@(0.0.255)2 Ctrl`+Alt`+Left]] -:: [s0; [2 Previous file tab.]] -:: [s0;%- [*@(0.0.255)2 Ctrl`+Alt`+Right]] -:: [s0; [2 Next file tab.]] -:: [s0;%- [*@(0.0.255)2 Ctrl`+Tab]] -:: [s0; [2 Cycle files.]] -:: [s0;%- [*@(0.0.255)2 Shift`+Ctrl`+0][*2 ... ][*@(0.0.255)2 Shift`+Ctrl`+9]] -:: [s0; [2 Bookmark position.]] -:: [s0;%- [*@(0.0.255)2 Ctrl`+0][*2 ... ][*@(0.0.255)2 Ctrl`+9]] -:: [s0; [2 Go to bookmarked position.]] -:: [s0;%- [*@(0.0.255)2 Alt`+0][*2 ... ][*@(0.0.255)2 Alt`+9]] -:: [s0; [2 Go to file tab.]]}}&] -[s0;O9;~~~.1600;@(0.0.255)2 &] -[s0;O9;~~~.1600;@(0.0.255)2 &] -[s0;O9;~~~.1600; [*+117 Predefined keys]&] -[s0;O9;~~~.1600;2 &] -[s0; [* TheIDE]&] -[s0;2 &] -[ {{4000:6000<167;>167; [s0;%- [*@(0.0.255)2 Ctrl`+O]] -:: [s0; [2 Edit file]] -:: [s0;%- [*@(0.0.255)2 Ctrl`+S]] -:: [s0; [2 Save]] -:: [s0;%- [*@(0.0.255)2 Ctrl`+`[/`]]] -:: [s0; [2 Show/hide workspace]] -:: [s0;%- [*@(0.0.255)2 Ctrl`+N]] -:: [s0; [2 Show/hide languages]] -:: [s0;%- [*@(0.0.255)2 Ctrl`+`[`-`], Ctrl`+Num`[`-`]]] -:: [s0; [2 Split editor]] -:: [s0;%- [*@(0.0.255)2 Ctrl`+`[```]]] -:: [s0; [2 Other editor]] -:: [s0;%- [*@(0.0.255)2 Ctrl`+Shift`+F]] -:: [s0; [2 Find in files..]] -:: [s0;%- [*@(0.0.255)2 Ctrl`+H]] -:: [s0; [2 Find file]] -:: [s0;%- [*@(0.0.255)2 Ctrl`+T]] -:: [s0; [2 Edit as text]] -:: [s0;%- [*@(0.0.255)2 Ctrl`+T]] -:: [s0; [2 Edit using the designer]] -:: [s0;%- [*@(0.0.255)2 Ctrl`+Y, Ctrl`+L]] -:: [s0; [2 Cut line]] -::^ [s0;%- [*@(0.0.255)2 Ctrl`+U]] -:: [s0; [2 Clear tabs.]] -::= [s0;%- [*@(0.0.255)2 Ctrl`+G]] -:: [s0; [2 Navigate]] -:: [s0;%- [*@(0.0.255)2 Ctrl`+Shift`+G]] -:: [s0; [2 Go to line]] -:: [s0;%- [*@(0.0.255)2 Ctrl`+F]] -:: [s0; [2 Find / replace.]] -:: [s0;%- [*@(0.0.255)2 Ctrl`+Alt`+F]] -:: [s0; [2 Find selected text.]] -:: [s0;%- [*@(0.0.255)2 F3]] -:: [s0; [2 Find next]] -:: [s0;%- [*@(0.0.255)2 Shift`+F3]] -:: [s0; [2 Find previous]] -:: [s0;%- [*@(0.0.255)2 F2]] -:: [s0; [2 Find string]] -:: [s0;%- [*@(0.0.255)2 Shift`+F2]] -:: [s0; [2 Find string backwards]] -:: [s0;%- [*@(0.0.255)2 Alt`+F2]] -:: [s0; [2 Find lang`-string]] -:: [s0;%- [*@(0.0.255)2 Alt`+Shift`+F2]] -:: [s0; [2 Find lang`-string bw]] -:: [s0;%- [*@(0.0.255)2 Ctrl`+F2]] -:: [s0; [2 Synchronize translation files]] -:: [s0;%- [*@(0.0.255)2 Ctrl`+F7]] -:: [s0; [2 Compile file]] -:: [s0;%- [*@(0.0.255)2 Alt`+F7]] -:: [s0; [2 Preprocess file]] -:: [s0;%- [*@(0.0.255)2 F7]] -:: [s0; [2 Start/stop build]] -:: [s0;%- [*@(0.0.255)2 F4]] -:: [s0; [2 Find next error]] -:: [s0;%- [*@(0.0.255)2 Shift`+F4]] -:: [s0; [2 Find previous error]] -:: [s0;%- [*@(0.0.255)2 Ctrl`+F5]] -:: [s0; [2 Execute]] -:: [s0;%- [*@(0.0.255)2 F5]] -:: [s0; [2 Run (in debugger)]] -:: [s0;%- [*@(0.0.255)2 Ctrl`+F10]] -:: [s0; [2 Run to cursor (in debugger)]] -:: [s0;%- [*@(0.0.255)2 Alt`+F5]] -:: [s0; [2 Debug externally]] -:: [s0;%- [*@(0.0.255)2 Alt`+Shift`+F5]] -:: [s0; [2 Debug file externally]] -:: [s0;%- [*@(0.0.255)2 F9]] -:: [s0; [2 Toggle breakpoint]] -:: [s0;%- [*@(0.0.255)2 Alt`+F9]] -:: [s0; [2 Conditional breakpoint..]] -:: [s0;%- [*@(0.0.255)2 Ctrl`+Shift`+F9]] -:: [s0; [2 Clear all breakpoints]] -:: [s0;%- [*@(0.0.255)2 Ctrl`+B]] -:: [s0; [2 Browser`+`+]] -:: [s0;%- [*@(0.0.255)2 Ctrl`+Q]] -:: [s0; [2 Browser`+`+ query]] -:: [s0;%- [*@(0.0.255)2 Ctrl`+W]] -:: [s0; [2 Browser`+`+ query word]] -:: [s0;%- [*@(0.0.255)2 Alt`+T]] -:: [s0; [2 Topic`+`+]] -:: [s0;%- [*@(0.0.255)2 Ctrl`+E]] -:: [s0; [2 Calculator console.]] -:: [s0; [*@(0.0.255)2 Ctrl`+Space]] -:: [s0; [2 Assist.]]}}&] -[s0;2 &] -[s0;2 &] -[s0; [* Layout designer]&] -[s0;2 &] -[ {{4000:6000<167;>167; [s0;%- [*@(0.0.255)2 Ctrl`+D]] -:: [s0; [2 Duplicate]] -:: [s0;%- [*@(0.0.255)2 Ctrl`+Up]] -:: [s0; [2 Move Up]] -:: [s0;%- [*@(0.0.255)2 Ctrl`+Down]] -:: [s0; [2 Move Down]] -:: [s0;%- [*@(0.0.255)2 Alt`+Page Up]] -:: [s0; [2 Previous layout]] -:: [s0;%- [*@(0.0.255)2 Alt`+Page Down]] -:: [s0; [2 Next layout]] -:: [s0;%- [*@(0.0.255)2 Ctrl`+Num`[`-`]]] -:: [s0; [2 Hide selection]] -:: [s0;%- [*@(0.0.255)2 Ctrl`+Num`[`+`]]] -:: [s0; [2 Show selection]] -:: [s0;%- [*@(0.0.255)2 Ctrl`+Shift`+F9]] -:: [s0; [2 Horizontal center in layout]] -:: [s0;%- [*@(0.0.255)2 Ctrl`+F9]] -:: [s0; [2 Vertical center in layout]] -:: [s0;%- [*@(0.0.255)2 Alt`+Shift`+Left]] -:: [s0; [2 Left]] -:: [s0;%- [*@(0.0.255)2 Shift`+F9]] -:: [s0; [2 Horizontal center]] -:: [s0;%- [*@(0.0.255)2 Alt`+Shift`+Right]] -:: [s0; [2 Right]] -:: [s0;%- [*@(0.0.255)2 Alt`+Shift`+Up]] -:: [s0; [2 Top]] -:: [s0;%- [*@(0.0.255)2 F9]] -:: [s0; [2 Vertical center]] -:: [s0;%- [*@(0.0.255)2 Alt`+Shift`+Down]] -:: [s0; [2 Bottom]] -:: [s0;%- [*@(0.0.255)2 Alt`+F9]] -:: [s0; [2 Align label]] -:: [s0;%- [*@(0.0.255)2 Shift`+F8]] -:: [s0; [2 Same width]] -:: [s0;%- [*@(0.0.255)2 Ctrl`+F8]] -:: [s0; [2 Same height]] -:: [s0;%- [*@(0.0.255)2 F8]] -:: [s0; [2 Same size]] -:: [s0;%- [*@(0.0.255)2 Ctrl`+W]] -:: [s0; [2 Minimal width]] -:: [s0;%- [*@(0.0.255)2 Ctrl`+H]] -:: [s0; [2 Minimal height]] -:: [s0;%- [*@(0.0.255)2 Ctrl`+Alt`+Up]] -:: [s0; [2 Move Layout Up]] -:: [s0;%- [*@(0.0.255)2 Ctrl`+Alt`+Down]] -:: [s0; [2 Move Layout Down]] -:: [s0;%- [*@(0.0.255)2 Alt]] -:: [s0; [2 Alters grid behaviour when moving/resizing items]]}}&] -[s0;2 &] -[s0;2 &] -[s0; [* Native debugger]&] -[s0;2 &] -[ {{4000:6000<167;>167; [s0;%- [*@(0.0.255)2 Shift`+F5]] -:: [s0; [2 Stop debugging.]] -:: [s0;%- [*@(0.0.255)2 F11]] -:: [s0; [2 Step into.]] -:: [s0;%- [*@(0.0.255)2 F10]] -:: [s0; [2 Step over.]] -:: [s0;%- [*@(0.0.255)2 Shift`+F11]] -:: [s0; [2 Step out.]] -:: [s0;%- [*@(0.0.255)2 Ctrl`+F10]] -:: [s0; [2 Run to.]] -:: [s0;%- [*@(0.0.255)2 F5]] -:: [s0; [2 Run.]] -:: [s0;%- [*@(0.0.255)2 Ctrl`+Break]] -:: [s0; [2 Stop!]] -:: [s0;%- [*@(0.0.255)2 Shift`+F6]] -:: [s0; [2 Autos.]] -:: [s0;%- [*@(0.0.255)2 Shift`+F7]] -:: [s0; [2 Locals.]] -:: [s0;%- [*@(0.0.255)2 Shift`+F8]] -:: [s0; [2 Watches.]] -:: [s0;%- [*@(0.0.255)2 Ctrl`+Shift`+F8]] -:: [s0; [2 Add watch.]] -:: [s0;%- [*@(0.0.255)2 Shift`+F9]] -:: [s0; [2 Explorer.]] -:: [s0;%- [*@(0.0.255)2 Shift`+F10]] -:: [s0; [2 Memory.]]}}&] +topic "Keys"; +[ $$0,0#00000000000000000000000000000000:Default] +[l288;i704;a17;O9;~~~.992; $$1,0#10431211400427159095818037425705:param] +[a83;*R6 $$2,0#31310162474203024125188417583966:caption] +[b83;* $$3,5#07864147445237544204411237157677:title] +[b167;a42;C $$4,6#40027414424643823182269349404212:item] +[b42;a42; $$5,5#45413000475342174754091244180557:text] +[l288;a17; $$6,6#27521748481378242620020725143825:desc] +[l321;t246;C@5;1 $$7,0#20902679421464641399138805415013:code] +[b2503; $$8,0#65142375456100023862071332075487:separator] +[*@(0.0.255) $$9,10#83433469410354161042741608181528:base] +[t4167;C+117 $$10,10#37138531426314131251341829483380:class] +[l288;a17;*1 $$11,11#70004532496200323422659154056402:requirement] +[i416;b42;a42;O9;~~~.416; $$12,12#10566046415157235020018451313112:tparam] +[b167;C $$13,13#92430459443460461911108080531343:item1] +[a42;C $$14,14#77422149456609303542238260500223:item2] +[*@2$(0.128.128) $$15,15#34511555403152284025741354420178:NewsDate] +[l321;*C$7 $$16,16#03451589433145915344929335295360:result] +[l321;b83;a83;*C$7 $$17,17#07531550463529505371228428965313:result`-line] +[l160;t4167;*C+117 $$18,4#88603949442205825958800053222425:package`-title] +[{_}%EN-US +[s0;=O9; [*R+217 TheIDE keys]&] +[s0;O9;*R2 &] +[s0;O9; [*+117 Fixed keys]&] +[s0;O9;~~~.1600;@(0.0.255)2 &] +[ {{4000:6000<167;>167;^@(255.255.150) [s0; [*@(0.0.255)2 Ctrl`+Tab]] +:: [s0; [*2 Cycle files.]] +:: [s0;%- [*@(0.0.255)2 Esc]] +:: [s0; [*2 Show/hide bottom pane.]] +::@2 [s0;%- [*@(0.0.255)2 Ctrl`+Z][*2 , ][*@(0.0.255)2 Alt`+Backspace]] +:: [s0; [2 Undo.]] +:: [s0;%- [*@(0.0.255)2 Shift`+Ctrl`+Z][*2 , ][*@(0.0.255)2 Shift`+Alt`+Backspace]] +:: [s0; [2 Redo.]] +:: [s0;%- [*@(0.0.255)2 Ctrl`+X][*2 , ][*@(0.0.255)2 Shift`+Delete]] +:: [s0; [2 Cut.]] +:: [s0;%- [*@(0.0.255)2 Ctrl`+C][*2 , ][*@(0.0.255)2 Ctrl`+Insert]] +:: [s0; [2 Copy selection if defined, current line otherwise.]] +:: [s0;%- [*@(0.0.255)2 Ctrl`+V][*2 , ][*@(0.0.255)2 Shift`+Insert]] +:: [s0; [2 Paste.]] +:: [s0;%- [*@(0.0.255)2 Delete]] +:: [s0; [2 Delete selection if defined, one character otherwise.]] +:: [s0;%- [*@(0.0.255)2 Ctrl`+A]] +:: [s0; [2 Select all.]] +:: [s0;%- [*@(0.0.255)2 Ctrl`+Up]] +:: [s0; [2 Scroll up.]] +:: [s0;%- [*@(0.0.255)2 Ctrl`+Down]] +:: [s0; [2 Scroll down.]] +:: [s0;%- [*@(0.0.255)2 Ctrl`+PageUp][*2 , ][*@(0.0.255)2 Ctrl`+Home]] +:: [s0; [2 Begin of the file.]] +:: [s0;%- [*@(0.0.255)2 Ctrl`+PageDown][*2 , ][*@(0.0.255)2 Ctrl`+End]] +:: [s0; [2 End of the file.]] +:: [s0;%- [*@(0.0.255)2 Ctrl`+Delete]] +:: [s0; [2 Delete identifier from cursor to end.]] +:: [s0;%- [*@(0.0.255)2 Ctrl`+Backspace]] +:: [s0; [2 Delete identifier from cursor to beginning.]] +:: [s0;%- [*@(0.0.255)2 Ctrl`+Left]] +:: [s0; [2 Previous word.]] +:: [s0;%- [*@(0.0.255)2 Ctrl`+Right]] +:: [s0; [2 Next word.]] +:: [s0;%- [*@(0.0.255)2 Ctrl`+`[]] +:: [s0; [2 Next matching bracket.]] +:: [s0;%- [*@(0.0.255)2 Ctrl`+`]]] +:: [s0; [2 Previous matching bracket.]] +:: [s0;%- [*@(0.0.255)2 Tab]] +:: [s0; [2 When selection is defined, indent selection right.]] +:: [s0;%- [*@(0.0.255)2 Shift`+Tab]] +:: [s0; [2 When selection is defined, indent selection left.]] +:: [s0;%- [*@(0.0.255)2 Shift`+Ctrl`+Up]] +:: [s0; [2 Move package file up.]] +:: [s0;%- [*@(0.0.255)2 Shift`+Ctrl`+Down]] +:: [s0; [2 Move package file down.]] +:: [s0;%- [*@(0.0.255)2 Alt`+Delete]] +:: [s0; [2 Remove package file.]] +:: [s0;%- [*@(0.0.255)2 Alt`+Up]] +:: [s0; [2 Previous package file.]] +:: [s0;%- [*@(0.0.255)2 Alt`+Down]] +:: [s0; [2 Next package file.]] +:: [s0;%- [*@(0.0.255)2 Alt`+Left]] +:: [s0; [2 Go back.]] +:: [s0;%- [*@(0.0.255)2 Alt`+Right]] +:: [s0; [2 Go forward.]] +:: [s0;%- [*@(0.0.255)2 Alt`+Page Up]] +:: [s0; [2 Previous package.]] +:: [s0;%- [*@(0.0.255)2 Alt`+Page Down]] +:: [s0; [2 Next package.]] +:: [s0;%- [*@(0.0.255)2 Ctrl`+Alt`+Left]] +:: [s0; [2 Previous file tab.]] +:: [s0;%- [*@(0.0.255)2 Ctrl`+Alt`+Right]] +:: [s0; [2 Next file tab.]] +:: [s0;%- [*@(0.0.255)2 Ctrl`+Tab]] +:: [s0; [2 Cycle files.]] +:: [s0;%- [*@(0.0.255)2 Shift`+Ctrl`+0][*2 ... ][*@(0.0.255)2 Shift`+Ctrl`+9]] +:: [s0; [2 Bookmark position.]] +:: [s0;%- [*@(0.0.255)2 Ctrl`+0][*2 ... ][*@(0.0.255)2 Ctrl`+9]] +:: [s0; [2 Go to bookmarked position.]] +:: [s0;%- [*@(0.0.255)2 Alt`+0][*2 ... ][*@(0.0.255)2 Alt`+9]] +:: [s0; [2 Go to file tab.]]}}&] +[s0;O9;~~~.1600;@(0.0.255)2 &] +[s0;O9;~~~.1600;@(0.0.255)2 &] +[s0;O9;~~~.1600; [*+117 Predefined keys]&] +[s0;O9;~~~.1600;2 &] +[s0; [* TheIDE]&] +[s0;2 &] +[ {{4000:6000<167;>167; [s0;%- [*@(0.0.255)2 Ctrl`+O]] +:: [s0; [2 Edit file]] +:: [s0;%- [*@(0.0.255)2 Ctrl`+S]] +:: [s0; [2 Save]] +:: [s0;%- [*@(0.0.255)2 Ctrl`+`[/`]]] +:: [s0; [2 Show/hide workspace]] +:: [s0;%- [*@(0.0.255)2 Ctrl`+N]] +:: [s0; [2 Show/hide languages]] +:: [s0;%- [*@(0.0.255)2 Ctrl`+`[`-`], Ctrl`+Num`[`-`]]] +:: [s0; [2 Split editor]] +:: [s0;%- [*@(0.0.255)2 Ctrl`+`[```]]] +:: [s0; [2 Other editor]] +:: [s0;%- [*@(0.0.255)2 Ctrl`+Shift`+F]] +:: [s0; [2 Find in files..]] +:: [s0;%- [*@(0.0.255)2 Ctrl`+H]] +:: [s0; [2 Find file]] +:: [s0;%- [*@(0.0.255)2 Ctrl`+T]] +:: [s0; [2 Edit as text]] +:: [s0;%- [*@(0.0.255)2 Ctrl`+T]] +:: [s0; [2 Edit using the designer]] +:: [s0;%- [*@(0.0.255)2 Ctrl`+Y, Ctrl`+L]] +:: [s0; [2 Cut line]] +::^ [s0;%- [*@(0.0.255)2 Ctrl`+U]] +:: [s0; [2 Clear tabs.]] +::= [s0;%- [*@(0.0.255)2 Ctrl`+G]] +:: [s0; [2 Navigate]] +:: [s0;%- [*@(0.0.255)2 Ctrl`+Shift`+G]] +:: [s0; [2 Go to line]] +:: [s0;%- [*@(0.0.255)2 Ctrl`+F]] +:: [s0; [2 Find / replace.]] +:: [s0;%- [*@(0.0.255)2 Ctrl`+Alt`+F]] +:: [s0; [2 Find selected text.]] +:: [s0;%- [*@(0.0.255)2 F3]] +:: [s0; [2 Find next]] +:: [s0;%- [*@(0.0.255)2 Shift`+F3]] +:: [s0; [2 Find previous]] +:: [s0;%- [*@(0.0.255)2 F2]] +:: [s0; [2 Find string]] +:: [s0;%- [*@(0.0.255)2 Shift`+F2]] +:: [s0; [2 Find string backwards]] +:: [s0;%- [*@(0.0.255)2 Alt`+F2]] +:: [s0; [2 Find lang`-string]] +:: [s0;%- [*@(0.0.255)2 Alt`+Shift`+F2]] +:: [s0; [2 Find lang`-string bw]] +:: [s0;%- [*@(0.0.255)2 Ctrl`+F2]] +:: [s0; [2 Synchronize translation files]] +:: [s0;%- [*@(0.0.255)2 Ctrl`+F7]] +:: [s0; [2 Compile file]] +:: [s0;%- [*@(0.0.255)2 Alt`+F7]] +:: [s0; [2 Preprocess file]] +:: [s0;%- [*@(0.0.255)2 F7]] +:: [s0; [2 Start/stop build]] +:: [s0;%- [*@(0.0.255)2 F4]] +:: [s0; [2 Find next error]] +:: [s0;%- [*@(0.0.255)2 Shift`+F4]] +:: [s0; [2 Find previous error]] +:: [s0;%- [*@(0.0.255)2 Ctrl`+F5]] +:: [s0; [2 Execute]] +:: [s0;%- [*@(0.0.255)2 F5]] +:: [s0; [2 Run (in debugger)]] +:: [s0;%- [*@(0.0.255)2 Ctrl`+F10]] +:: [s0; [2 Run to cursor (in debugger)]] +:: [s0;%- [*@(0.0.255)2 Alt`+F5]] +:: [s0; [2 Debug externally]] +:: [s0;%- [*@(0.0.255)2 Alt`+Shift`+F5]] +:: [s0; [2 Debug file externally]] +:: [s0;%- [*@(0.0.255)2 F9]] +:: [s0; [2 Toggle breakpoint]] +:: [s0;%- [*@(0.0.255)2 Alt`+F9]] +:: [s0; [2 Conditional breakpoint..]] +:: [s0;%- [*@(0.0.255)2 Ctrl`+Shift`+F9]] +:: [s0; [2 Clear all breakpoints]] +:: [s0;%- [*@(0.0.255)2 Ctrl`+B]] +:: [s0; [2 Browser`+`+]] +:: [s0;%- [*@(0.0.255)2 Ctrl`+Q]] +:: [s0; [2 Browser`+`+ query]] +:: [s0;%- [*@(0.0.255)2 Ctrl`+W]] +:: [s0; [2 Browser`+`+ query word]] +:: [s0;%- [*@(0.0.255)2 Alt`+T]] +:: [s0; [2 Topic`+`+]] +:: [s0;%- [*@(0.0.255)2 Ctrl`+E]] +:: [s0; [2 Calculator console.]] +:: [s0; [*@(0.0.255)2 Ctrl`+Space]] +:: [s0; [2 Assist.]]}}&] +[s0;2 &] +[s0;2 &] +[s0; [* Layout designer]&] +[s0;2 &] +[ {{4000:6000<167;>167; [s0;%- [*@(0.0.255)2 Ctrl`+D]] +:: [s0; [2 Duplicate]] +:: [s0;%- [*@(0.0.255)2 Ctrl`+Up]] +:: [s0; [2 Move Up]] +:: [s0;%- [*@(0.0.255)2 Ctrl`+Down]] +:: [s0; [2 Move Down]] +:: [s0;%- [*@(0.0.255)2 Alt`+Page Up]] +:: [s0; [2 Previous layout]] +:: [s0;%- [*@(0.0.255)2 Alt`+Page Down]] +:: [s0; [2 Next layout]] +:: [s0;%- [*@(0.0.255)2 Ctrl`+Num`[`-`]]] +:: [s0; [2 Hide selection]] +:: [s0;%- [*@(0.0.255)2 Ctrl`+Num`[`+`]]] +:: [s0; [2 Show selection]] +:: [s0;%- [*@(0.0.255)2 Ctrl`+Shift`+F9]] +:: [s0; [2 Horizontal center in layout]] +:: [s0;%- [*@(0.0.255)2 Ctrl`+F9]] +:: [s0; [2 Vertical center in layout]] +:: [s0;%- [*@(0.0.255)2 Alt`+Shift`+Left]] +:: [s0; [2 Left]] +:: [s0;%- [*@(0.0.255)2 Shift`+F9]] +:: [s0; [2 Horizontal center]] +:: [s0;%- [*@(0.0.255)2 Alt`+Shift`+Right]] +:: [s0; [2 Right]] +:: [s0;%- [*@(0.0.255)2 Alt`+Shift`+Up]] +:: [s0; [2 Top]] +:: [s0;%- [*@(0.0.255)2 F9]] +:: [s0; [2 Vertical center]] +:: [s0;%- [*@(0.0.255)2 Alt`+Shift`+Down]] +:: [s0; [2 Bottom]] +:: [s0;%- [*@(0.0.255)2 Alt`+F9]] +:: [s0; [2 Align label]] +:: [s0;%- [*@(0.0.255)2 Shift`+F8]] +:: [s0; [2 Same width]] +:: [s0;%- [*@(0.0.255)2 Ctrl`+F8]] +:: [s0; [2 Same height]] +:: [s0;%- [*@(0.0.255)2 F8]] +:: [s0; [2 Same size]] +:: [s0;%- [*@(0.0.255)2 Ctrl`+W]] +:: [s0; [2 Minimal width]] +:: [s0;%- [*@(0.0.255)2 Ctrl`+H]] +:: [s0; [2 Minimal height]] +:: [s0;%- [*@(0.0.255)2 Ctrl`+Alt`+Up]] +:: [s0; [2 Move Layout Up]] +:: [s0;%- [*@(0.0.255)2 Ctrl`+Alt`+Down]] +:: [s0; [2 Move Layout Down]] +:: [s0;%- [*@(0.0.255)2 Alt]] +:: [s0; [2 Alters grid behaviour when moving/resizing items]]}}&] +[s0;2 &] +[s0;2 &] +[s0; [* Native debugger]&] +[s0;2 &] +[ {{4000:6000<167;>167; [s0;%- [*@(0.0.255)2 Shift`+F5]] +:: [s0; [2 Stop debugging.]] +:: [s0;%- [*@(0.0.255)2 F11]] +:: [s0; [2 Step into.]] +:: [s0;%- [*@(0.0.255)2 F10]] +:: [s0; [2 Step over.]] +:: [s0;%- [*@(0.0.255)2 Shift`+F11]] +:: [s0; [2 Step out.]] +:: [s0;%- [*@(0.0.255)2 Ctrl`+F10]] +:: [s0; [2 Run to.]] +:: [s0;%- [*@(0.0.255)2 F5]] +:: [s0; [2 Run.]] +:: [s0;%- [*@(0.0.255)2 Ctrl`+Break]] +:: [s0; [2 Stop!]] +:: [s0;%- [*@(0.0.255)2 Shift`+F6]] +:: [s0; [2 Autos.]] +:: [s0;%- [*@(0.0.255)2 Shift`+F7]] +:: [s0; [2 Locals.]] +:: [s0;%- [*@(0.0.255)2 Shift`+F8]] +:: [s0; [2 Watches.]] +:: [s0;%- [*@(0.0.255)2 Ctrl`+Shift`+F8]] +:: [s0; [2 Add watch.]] +:: [s0;%- [*@(0.0.255)2 Shift`+F9]] +:: [s0; [2 Explorer.]] +:: [s0;%- [*@(0.0.255)2 Shift`+F10]] +:: [s0; [2 Memory.]]}}&] [s0; ]] \ No newline at end of file diff --git a/uppsrc/ide/app.tpp/NewProject$en-us.tpp b/uppsrc/ide/app.tpp/NewProject_en-us.tpp similarity index 99% rename from uppsrc/ide/app.tpp/NewProject$en-us.tpp rename to uppsrc/ide/app.tpp/NewProject_en-us.tpp index b5742f5d1..e79970000 100644 --- a/uppsrc/ide/app.tpp/NewProject$en-us.tpp +++ b/uppsrc/ide/app.tpp/NewProject_en-us.tpp @@ -1,10 +1,10 @@ -TITLE("NewProject") -COMPRESSED -120,156,133,86,107,111,219,70,16,252,43,135,40,125,57,180,122,79,242,40,125,105,224,164,104,80,52,45,154,6,253,96,8,21,69,158,37,34,20,79,37,79,81,140,182,249,237,157,229,67,166,220,166,245,67,182,204,219,221,153,217,217,61,223,178,167,79,121,196,103,252,127,62,22,47,220,93,118,172,194,234,182,146,214,46,203,132,235,101,38,146,229,143,233,242,227,199,143,243,52,149,75,100,18,200,36,184,86,66,10,161,57,215,50,17,38,229,169,177,194,114,149,104,105,18,110,22,135,172,201,246,171,219,204,170,229,213,207,49,162,36,162,148,80,130,139,88,106,156,226,138,75,45,164,17,214,106,145,24,171,210,56,94,228,217,33,148,190,94,221,110,40,14,81,42,50,51,158,216,88,11,196,104,35,85,98,52,98,181,22,2,191,11,147,196,73,178,8,101,168,28,98,68,156,44,51,45,151,55,8,212,81,60,3,56,153,32,82,75,29,107,101,165,18,86,202,56,85,58,213,64,45,228,162,12,14,24,55,8,161,48,68,25,148,211,70,11,5,49,116,98,20,78,37,248,169, -121,42,36,106,90,110,12,202,185,15,163,66,36,14,194,98,20,147,137,161,195,86,91,161,18,43,181,140,37,202,243,4,12,169,182,89,20,174,205,17,166,164,88,6,0,90,222,124,99,150,2,193,9,132,145,60,229,50,78,82,212,3,84,176,85,105,42,148,69,61,45,12,23,106,145,251,130,24,74,195,21,21,180,136,137,145,184,211,195,196,2,112,165,178,168,152,8,165,240,106,180,77,22,173,163,38,4,223,172,110,175,190,249,146,207,249,92,26,243,21,162,211,72,240,153,85,90,41,29,167,90,112,133,42,200,161,73,172,152,163,141,194,72,187,216,100,45,74,6,77,170,222,60,19,34,161,214,115,10,133,240,202,26,133,242,49,94,208,83,112,84,80,71,166,218,42,101,249,34,175,178,182,157,72,116,69,60,133,136,132,152,37,164,172,81,82,167,164,143,146,144,88,198,38,21,208,216,196,154,203,69,227,126,63,150,141,219,187,26,34,151,168,190,28,251,51,184,144,254,68,233,100,36,36,124,104,226,152,147,98,6,102,144,202,64,114,46,172,6,32,124,162,197,97,48,98, -103,14,50,134,80,145,80,179,84,106,5,28,169,214,208,0,241,34,21,66,112,139,79,240,130,50,157,53,4,252,59,216,73,232,72,232,89,2,223,162,67,169,166,162,169,34,225,36,116,151,49,55,104,128,236,163,36,201,45,159,66,112,33,45,125,147,228,194,68,194,204,20,112,9,99,192,85,65,98,105,193,215,64,115,213,121,90,36,118,241,218,157,218,23,89,112,131,79,174,110,158,118,170,199,145,136,103,156,162,141,77,209,54,161,73,49,165,117,42,83,165,140,76,141,138,57,148,107,251,217,165,80,26,160,110,248,134,20,73,36,18,76,18,216,25,3,190,93,16,184,38,130,96,72,155,198,196,123,72,177,190,174,202,154,48,192,13,203,222,0,87,103,7,216,72,207,172,141,185,74,161,3,232,115,3,115,99,248,45,26,139,190,74,56,159,166,63,127,151,109,221,250,122,24,205,63,126,251,235,179,151,175,175,223,190,97,183,45,6,237,166,113,89,40,235,45,203,88,237,78,44,59,28,170,50,207,104,242,217,151,181,15,236,216,210,195,33,9,131,166,135,10,162,124,245,249, -234,182,229,75,118,253,231,171,154,133,93,217,50,247,33,195,35,199,78,248,42,171,138,229,148,215,33,107,91,118,127,95,63,249,206,85,149,103,39,223,84,197,250,201,69,161,211,174,204,119,44,247,117,200,202,186,101,225,228,199,130,109,196,242,172,170,92,193,110,175,216,15,120,186,98,89,221,189,121,27,202,106,53,63,195,120,187,126,182,126,198,6,195,34,197,46,11,4,165,197,200,57,230,143,13,107,241,146,59,118,87,86,120,124,172,11,215,0,91,227,193,176,64,68,142,115,247,99,169,140,242,215,174,13,171,57,251,101,231,186,95,39,167,122,122,61,88,230,195,14,153,198,135,229,185,52,157,217,249,170,192,91,119,81,187,79,57,13,24,82,161,112,89,119,199,255,173,222,198,229,126,239,206,125,152,198,103,45,49,29,244,38,170,19,105,63,41,144,175,113,246,174,59,62,74,205,130,71,153,158,253,158,184,13,15,160,194,175,67,83,91,7,50,59,223,132,234,30,236,78,20,113,238,243,52,228,161,236,155,144,53,129,40,191,122,241,114,206,158,3,120,86,249,109,159,13, -56,93,214,176,206,151,93,79,223,184,10,172,30,23,127,206,170,18,130,0,45,142,96,153,185,253,166,34,222,171,62,158,184,116,178,85,238,46,204,217,207,229,118,23,88,14,1,222,49,255,30,189,233,30,13,9,38,209,100,163,182,175,135,180,175,201,250,253,195,251,137,171,254,7,239,243,33,2,137,194,241,0,168,223,150,77,27,34,182,45,223,187,174,238,152,146,134,43,67,251,134,6,223,149,142,156,241,207,60,116,168,99,188,245,190,96,249,206,151,176,77,217,246,174,160,4,224,208,229,125,232,112,52,76,207,121,238,224,225,113,216,214,79,30,168,188,198,77,25,177,67,227,223,151,5,181,107,148,228,194,108,36,204,39,48,254,52,56,143,206,183,195,96,220,17,221,137,83,247,71,188,221,244,212,39,254,5,178,172,14,157,89,134,169,121,196,97,253,69,59,14,199,171,59,118,239,143,168,226,10,212,69,200,177,117,15,14,237,198,185,96,174,106,221,9,115,231,162,238,240,201,31,1,117,164,54,106,213,142,98,117,136,251,177,156,212,223,71,108,184,148,105,191,77,5,118, -25,228,156,142,95,216,209,26,115,251,114,125,157,251,106,58,84,152,139,130,224,135,51,195,194,119,235,16,201,125,135,13,211,66,224,124,141,238,62,70,56,14,224,35,37,134,109,65,176,231,236,141,31,27,242,168,7,108,213,117,40,98,225,254,64,219,53,95,124,253,143,158,83,143,104,153,246,75,170,59,63,244,23,158,26,156,157,103,53,181,140,134,167,167,138,179,37,54,90,255,223,39,57,155,4,66,103,94,126,40,195,208,217,46,112,115,223,79,217,40,31,240,253,248,253,138,109,142,33,76,37,122,30,250,114,109,0,242,136,245,107,168,95,143,217,251,113,109,21,255,182,247,46,56,209,10,170,177,113,206,78,234,215,206,244,170,248,239,155,130,221,244,43,225,44,38,70,126,68,75,9,219,110,81,13,207,110,250,236,116,33,142,27,119,53,208,166,164,231,249,62,95,139,99,71,215,79,168,52,174,183,249,176,243,134,189,73,201,35,50,195,105,122,155,14,72,177,201,250,202,193,31,250,70,12,206,45,202,22,183,237,253,133,223,166,34,236,179,119,110,66,247,98,113,70,116, -101,100,52,61,104,91,183,66,240,242,128,23,21,187,105,133,39,139,99,222,223,27,0,185,117,225,226,250,184,92,167,245,165,182,15,235,243,135,73,97,26,178,187,114,123,108,186,12,43,230,155,201,193,95,125,243,174,197,65,183,254,243,211,49,243,249,124,5,136,141,63,110,59,59,50,252,3,122,100,155,172,153,108,51,168,80,185,64,227,50,56,97,162,41,53,28,154,2,97,86,20,68,63,248,199,146,159,119,252,234,111,23,116,54,155, - +TITLE("NewProject") +COMPRESSED +120,156,133,86,107,111,219,70,16,252,43,135,40,125,57,180,122,79,242,40,125,105,224,164,104,80,52,45,154,6,253,96,8,21,69,158,37,34,20,79,37,79,81,140,182,249,237,157,229,67,166,220,166,245,67,182,204,219,221,153,217,217,61,223,178,167,79,121,196,103,252,127,62,22,47,220,93,118,172,194,234,182,146,214,46,203,132,235,101,38,146,229,143,233,242,227,199,143,243,52,149,75,100,18,200,36,184,86,66,10,161,57,215,50,17,38,229,169,177,194,114,149,104,105,18,110,22,135,172,201,246,171,219,204,170,229,213,207,49,162,36,162,148,80,130,139,88,106,156,226,138,75,45,164,17,214,106,145,24,171,210,56,94,228,217,33,148,190,94,221,110,40,14,81,42,50,51,158,216,88,11,196,104,35,85,98,52,98,181,22,2,191,11,147,196,73,178,8,101,168,28,98,68,156,44,51,45,151,55,8,212,81,60,3,56,153,32,82,75,29,107,101,165,18,86,202,56,85,58,213,64,45,228,162,12,14,24,55,8,161,48,68,25,148,211,70,11,5,49,116,98,20,78,37,248,169, +121,42,36,106,90,110,12,202,185,15,163,66,36,14,194,98,20,147,137,161,195,86,91,161,18,43,181,140,37,202,243,4,12,169,182,89,20,174,205,17,166,164,88,6,0,90,222,124,99,150,2,193,9,132,145,60,229,50,78,82,212,3,84,176,85,105,42,148,69,61,45,12,23,106,145,251,130,24,74,195,21,21,180,136,137,145,184,211,195,196,2,112,165,178,168,152,8,165,240,106,180,77,22,173,163,38,4,223,172,110,175,190,249,146,207,249,92,26,243,21,162,211,72,240,153,85,90,41,29,167,90,112,133,42,200,161,73,172,152,163,141,194,72,187,216,100,45,74,6,77,170,222,60,19,34,161,214,115,10,133,240,202,26,133,242,49,94,208,83,112,84,80,71,166,218,42,101,249,34,175,178,182,157,72,116,69,60,133,136,132,152,37,164,172,81,82,167,164,143,146,144,88,198,38,21,208,216,196,154,203,69,227,126,63,150,141,219,187,26,34,151,168,190,28,251,51,184,144,254,68,233,100,36,36,124,104,226,152,147,98,6,102,144,202,64,114,46,172,6,32,124,162,197,97,48,98, +103,14,50,134,80,145,80,179,84,106,5,28,169,214,208,0,241,34,21,66,112,139,79,240,130,50,157,53,4,252,59,216,73,232,72,232,89,2,223,162,67,169,166,162,169,34,225,36,116,151,49,55,104,128,236,163,36,201,45,159,66,112,33,45,125,147,228,194,68,194,204,20,112,9,99,192,85,65,98,105,193,215,64,115,213,121,90,36,118,241,218,157,218,23,89,112,131,79,174,110,158,118,170,199,145,136,103,156,162,141,77,209,54,161,73,49,165,117,42,83,165,140,76,141,138,57,148,107,251,217,165,80,26,160,110,248,134,20,73,36,18,76,18,216,25,3,190,93,16,184,38,130,96,72,155,198,196,123,72,177,190,174,202,154,48,192,13,203,222,0,87,103,7,216,72,207,172,141,185,74,161,3,232,115,3,115,99,248,45,26,139,190,74,56,159,166,63,127,151,109,221,250,122,24,205,63,126,251,235,179,151,175,175,223,190,97,183,45,6,237,166,113,89,40,235,45,203,88,237,78,44,59,28,170,50,207,104,242,217,151,181,15,236,216,210,195,33,9,131,166,135,10,162,124,245,249, +234,182,229,75,118,253,231,171,154,133,93,217,50,247,33,195,35,199,78,248,42,171,138,229,148,215,33,107,91,118,127,95,63,249,206,85,149,103,39,223,84,197,250,201,69,161,211,174,204,119,44,247,117,200,202,186,101,225,228,199,130,109,196,242,172,170,92,193,110,175,216,15,120,186,98,89,221,189,121,27,202,106,53,63,195,120,187,126,182,126,198,6,195,34,197,46,11,4,165,197,200,57,230,143,13,107,241,146,59,118,87,86,120,124,172,11,215,0,91,227,193,176,64,68,142,115,247,99,169,140,242,215,174,13,171,57,251,101,231,186,95,39,167,122,122,61,88,230,195,14,153,198,135,229,185,52,157,217,249,170,192,91,119,81,187,79,57,13,24,82,161,112,89,119,199,255,173,222,198,229,126,239,206,125,152,198,103,45,49,29,244,38,170,19,105,63,41,144,175,113,246,174,59,62,74,205,130,71,153,158,253,158,184,13,15,160,194,175,67,83,91,7,50,59,223,132,234,30,236,78,20,113,238,243,52,228,161,236,155,144,53,129,40,191,122,241,114,206,158,3,120,86,249,109,159,13, +56,93,214,176,206,151,93,79,223,184,10,172,30,23,127,206,170,18,130,0,45,142,96,153,185,253,166,34,222,171,62,158,184,116,178,85,238,46,204,217,207,229,118,23,88,14,1,222,49,255,30,189,233,30,13,9,38,209,100,163,182,175,135,180,175,201,250,253,195,251,137,171,254,7,239,243,33,2,137,194,241,0,168,223,150,77,27,34,182,45,223,187,174,238,152,146,134,43,67,251,134,6,223,149,142,156,241,207,60,116,168,99,188,245,190,96,249,206,151,176,77,217,246,174,160,4,224,208,229,125,232,112,52,76,207,121,238,224,225,113,216,214,79,30,168,188,198,77,25,177,67,227,223,151,5,181,107,148,228,194,108,36,204,39,48,254,52,56,143,206,183,195,96,220,17,221,137,83,247,71,188,221,244,212,39,254,5,178,172,14,157,89,134,169,121,196,97,253,69,59,14,199,171,59,118,239,143,168,226,10,212,69,200,177,117,15,14,237,198,185,96,174,106,221,9,115,231,162,238,240,201,31,1,117,164,54,106,213,142,98,117,136,251,177,156,212,223,71,108,184,148,105,191,77,5,118, +25,228,156,142,95,216,209,26,115,251,114,125,157,251,106,58,84,152,139,130,224,135,51,195,194,119,235,16,201,125,135,13,211,66,224,124,141,238,62,70,56,14,224,35,37,134,109,65,176,231,236,141,31,27,242,168,7,108,213,117,40,98,225,254,64,219,53,95,124,253,143,158,83,143,104,153,246,75,170,59,63,244,23,158,26,156,157,103,53,181,140,134,167,167,138,179,37,54,90,255,223,39,57,155,4,66,103,94,126,40,195,208,217,46,112,115,223,79,217,40,31,240,253,248,253,138,109,142,33,76,37,122,30,250,114,109,0,242,136,245,107,168,95,143,217,251,113,109,21,255,182,247,46,56,209,10,170,177,113,206,78,234,215,206,244,170,248,239,155,130,221,244,43,225,44,38,70,126,68,75,9,219,110,81,13,207,110,250,236,116,33,142,27,119,53,208,166,164,231,249,62,95,139,99,71,215,79,168,52,174,183,249,176,243,134,189,73,201,35,50,195,105,122,155,14,72,177,201,250,202,193,31,250,70,12,206,45,202,22,183,237,253,133,223,166,34,236,179,119,110,66,247,98,113,70,116, +101,100,52,61,104,91,183,66,240,242,128,23,21,187,105,133,39,139,99,222,223,27,0,185,117,225,226,250,184,92,167,245,165,182,15,235,243,135,73,97,26,178,187,114,123,108,186,12,43,230,155,201,193,95,125,243,174,197,65,183,254,243,211,49,243,249,124,5,136,141,63,110,59,59,50,252,3,122,100,155,172,153,108,51,168,80,185,64,227,50,56,97,162,41,53,28,154,2,97,86,20,68,63,248,199,146,159,119,252,234,111,23,116,54,155, + diff --git a/uppsrc/ide/app.tpp/PackageTemplates$en-us.tpp b/uppsrc/ide/app.tpp/PackageTemplates_en-us.tpp similarity index 99% rename from uppsrc/ide/app.tpp/PackageTemplates$en-us.tpp rename to uppsrc/ide/app.tpp/PackageTemplates_en-us.tpp index 24aeff2cf..b2d50fc6e 100644 --- a/uppsrc/ide/app.tpp/PackageTemplates$en-us.tpp +++ b/uppsrc/ide/app.tpp/PackageTemplates_en-us.tpp @@ -1,37 +1,37 @@ -TITLE("Ultimate++ Project Templates") -COMPRESSED -120,156,237,93,11,119,227,182,149,254,43,136,157,221,181,83,90,230,83,162,228,52,137,227,113,154,217,78,198,62,99,79,178,57,179,62,22,37,209,54,59,148,168,146,212,120,220,205,246,183,239,119,47,0,18,124,200,243,200,164,155,237,217,166,141,109,16,184,184,184,184,111,92,160,175,92,241,249,231,182,101,239,218,239,248,207,228,73,124,19,109,210,242,234,85,234,134,225,81,226,56,174,125,20,57,163,163,179,241,209,223,255,254,247,129,227,219,225,17,1,115,0,204,177,125,207,113,29,180,217,190,59,114,130,177,61,14,66,39,180,189,145,239,6,35,59,152,172,163,60,90,94,189,138,66,239,232,139,23,67,140,114,173,96,215,115,60,199,118,134,174,143,94,182,103,187,190,227,6,78,24,250,206,40,8,189,241,112,56,153,71,235,50,201,86,87,175,102,52,206,199,48,15,195,236,81,56,244,29,12,242,3,215,27,5,62,6,251,62,208,243,48,241,104,56,26,77,202,164,76,227,171,87,9,225,13,108,79,8,75,223,26,238,2,59,119,132,145,190,235,15,125,47,116,61,39, -116,221,225,216,243,199,62,208,118,220,73,82,198,64,114,230,187,71,17,254,71,195,2,204,231,7,190,227,129,34,254,40,240,208,109,132,159,190,61,118,92,76,26,218,65,128,249,226,183,154,76,51,16,136,136,68,99,135,152,210,29,5,52,34,244,67,199,27,133,174,239,14,93,32,97,143,176,80,194,32,152,44,226,98,142,177,158,235,28,149,64,235,232,228,155,224,200,193,224,145,53,218,117,237,177,237,14,71,99,76,10,132,177,102,111,60,118,188,16,147,250,78,96,59,222,100,158,45,176,206,153,27,216,30,207,24,98,43,134,128,204,100,9,134,14,144,118,189,16,83,142,28,207,195,191,3,63,28,77,138,152,54,163,204,242,171,87,95,124,179,103,15,236,129,27,4,251,52,124,140,225,161,231,123,158,63,28,251,142,237,97,26,192,240,137,102,67,27,219,233,4,110,56,153,69,5,230,44,209,52,146,148,117,136,155,64,123,47,12,60,76,61,196,191,176,175,88,160,7,250,184,99,63,244,188,208,158,204,211,168,40,20,145,136,64,95,208,34,29,199,114,156,221,17,209,54, -240,92,127,76,196,241,92,16,217,29,6,99,7,84,14,134,190,237,78,242,248,175,155,36,143,151,241,10,100,78,192,30,71,122,139,20,47,2,25,201,138,174,229,184,96,198,96,56,180,137,94,1,24,194,245,2,16,220,118,66,31,24,225,31,108,115,169,184,113,86,175,193,179,28,111,119,236,250,30,48,25,251,62,40,0,0,206,216,113,28,59,196,63,88,25,232,194,252,225,40,198,82,211,203,225,190,229,248,187,35,176,49,118,106,236,211,244,99,143,232,231,130,252,238,208,14,176,15,174,28,238,18,213,221,207,65,119,199,13,233,127,76,121,39,176,28,200,3,80,116,130,0,235,246,64,106,55,196,218,3,208,222,99,22,119,70,225,228,121,124,95,60,137,202,88,49,204,23,39,159,75,78,115,134,150,51,220,181,105,124,16,142,177,129,142,79,244,243,124,127,236,142,61,47,112,199,129,55,180,65,199,66,10,52,13,38,145,98,113,172,128,140,44,103,4,225,194,90,131,0,171,231,97,88,249,200,33,84,220,112,60,36,42,40,32,211,131,52,89,17,30,224,140,35,201,12, -95,156,252,193,113,70,4,40,132,208,132,225,208,246,198,32,6,104,96,7,224,116,40,132,16,27,141,125,118,33,6,164,17,230,175,163,219,120,122,160,164,149,81,32,14,12,188,32,36,190,197,72,160,14,36,0,103,108,219,67,180,132,33,164,105,114,27,173,27,12,232,218,150,107,131,139,160,127,2,8,37,230,2,251,217,99,210,37,208,12,216,1,168,162,113,32,57,112,122,176,138,139,50,94,96,243,3,155,151,237,58,150,235,128,118,224,191,32,8,125,127,8,124,49,247,136,84,19,109,33,4,56,24,121,147,243,8,242,178,94,148,174,55,132,6,35,85,228,186,150,235,66,167,160,23,68,203,31,219,80,38,80,34,62,216,13,92,224,13,221,208,25,121,246,228,167,159,166,215,188,196,233,181,109,3,196,29,131,120,193,83,123,150,235,237,66,68,64,23,12,244,176,111,96,19,204,7,141,104,67,37,133,99,23,48,27,16,72,130,48,188,1,197,183,92,127,151,68,8,76,59,130,32,5,96,61,40,44,136,48,233,55,32,24,96,69,38,20,176,112,234,143,220,38,148,192, -114,193,129,158,11,46,134,70,118,88,238,161,245,64,83,210,117,222,104,4,89,24,153,80,192,201,60,156,71,15,45,119,184,75,58,0,54,0,219,139,205,246,60,27,84,0,251,59,196,75,248,225,56,60,186,152,231,113,188,82,235,48,230,31,89,46,115,159,3,196,161,57,156,225,16,123,225,13,33,83,67,48,131,77,212,241,198,12,97,158,173,74,185,8,26,157,183,224,132,150,27,238,66,98,32,237,176,40,33,97,77,56,129,29,0,216,166,95,195,145,162,41,212,118,11,206,153,107,130,26,91,238,120,23,250,139,180,45,248,42,132,108,67,146,189,49,180,49,169,73,24,4,95,17,54,77,10,9,106,151,9,219,194,201,179,45,15,124,13,170,184,100,123,28,119,4,189,46,217,155,84,188,61,244,108,40,12,3,39,87,109,144,1,194,177,60,7,6,129,108,22,240,128,126,15,200,188,122,24,10,45,1,118,135,145,181,71,6,121,8,196,200,30,155,32,92,203,115,65,25,176,23,88,11,186,213,27,143,160,42,177,40,178,110,176,12,0,20,250,6,8,79,97,209,165,140, -231,89,158,183,139,81,35,55,132,137,31,129,229,72,227,66,230,194,33,236,57,64,142,48,135,65,25,189,32,13,133,229,214,243,45,15,140,11,193,182,73,107,66,107,219,228,1,224,47,180,64,103,56,35,80,198,83,8,45,136,227,166,215,51,147,50,18,74,96,121,193,174,67,202,157,76,6,100,206,25,122,196,177,238,136,197,106,72,130,229,152,80,20,101,234,77,146,112,134,150,7,123,237,141,65,98,143,236,60,28,5,168,226,113,64,123,4,58,193,165,9,29,19,142,71,187,221,207,57,222,200,242,192,204,144,65,96,1,54,6,251,56,67,56,43,99,111,4,140,200,118,143,160,32,76,38,228,149,237,182,249,38,180,188,112,215,135,38,128,62,0,74,80,103,208,12,35,168,249,145,29,66,57,192,74,2,148,1,6,234,161,189,170,177,229,141,119,225,60,4,112,55,72,52,109,103,140,193,112,212,2,103,12,21,7,222,1,31,26,171,178,77,201,148,158,147,109,249,224,94,240,23,154,192,62,208,46,216,36,40,245,32,36,183,34,132,207,5,188,12,16,77,49,104,16,198, -119,44,223,217,29,195,149,0,239,193,204,134,94,200,40,128,119,70,33,45,148,169,110,74,2,19,230,191,174,255,251,95,78,159,31,188,188,16,175,10,215,61,18,47,211,50,89,194,14,78,255,48,253,131,56,151,134,68,92,198,203,117,138,198,226,95,175,100,47,254,233,29,9,123,112,240,203,9,56,26,238,67,161,219,248,231,232,72,56,248,118,158,103,105,118,187,137,117,155,139,182,39,112,203,242,132,189,79,221,236,161,249,69,28,45,30,96,178,178,233,193,166,104,77,233,57,212,199,57,248,229,236,77,156,191,73,226,251,186,209,61,248,229,219,168,72,230,226,164,204,211,103,201,76,68,235,117,154,204,35,13,94,246,242,24,205,34,75,99,243,187,216,91,101,226,37,173,116,191,238,234,83,215,60,22,115,213,127,157,103,127,137,231,101,221,33,64,135,238,92,226,62,41,239,196,50,74,232,183,213,34,51,80,28,30,252,114,241,228,153,6,212,59,233,72,118,97,24,60,187,50,225,154,64,62,8,164,41,34,190,75,128,214,179,232,33,219,84,88,249,68,156,211,183,216,135, -194,88,183,79,212,185,192,156,104,43,234,70,175,106,20,103,249,34,206,235,47,88,251,69,242,183,106,214,0,179,94,60,172,202,232,173,238,18,208,60,39,217,114,169,55,92,54,98,154,159,238,224,130,137,11,224,29,215,237,158,222,156,23,155,212,104,246,137,9,210,100,137,17,185,132,226,114,51,1,159,238,76,191,193,63,59,102,179,75,205,95,127,173,26,25,68,64,203,93,195,97,42,170,181,113,103,70,176,53,167,250,224,106,224,175,14,197,13,72,184,138,150,144,168,184,130,114,101,78,202,184,211,164,232,188,181,139,79,93,190,156,136,193,96,32,38,95,53,191,5,242,219,215,162,9,0,253,184,251,151,147,65,123,196,240,93,35,14,123,198,50,49,120,228,249,241,201,159,143,255,116,106,194,28,18,49,90,226,166,191,128,26,47,11,197,97,18,202,200,132,114,125,121,246,242,252,252,244,133,9,110,180,21,220,168,7,92,216,11,238,250,228,248,252,194,4,26,110,5,26,246,0,29,31,252,242,61,244,68,156,139,103,240,145,235,190,227,173,80,198,114,223,75,37,60,230, -212,99,185,199,32,247,115,176,194,85,243,19,239,45,137,243,116,199,18,211,157,98,51,107,126,15,58,184,57,54,13,169,56,203,232,237,216,91,209,195,39,151,62,221,36,171,164,243,197,235,206,193,18,146,44,26,208,157,237,208,157,173,208,157,62,232,76,170,140,129,52,102,112,183,207,224,110,157,193,237,155,129,41,94,196,41,244,79,99,6,111,251,12,222,214,25,188,190,25,124,185,221,111,155,240,253,237,240,253,173,240,253,62,248,180,241,171,5,117,143,23,226,77,148,39,209,44,85,134,17,42,115,104,42,234,39,73,4,235,103,168,106,234,49,98,19,184,78,179,7,82,162,186,53,68,235,233,58,105,24,203,227,245,58,94,45,146,183,19,1,217,145,90,191,214,198,212,65,91,220,142,165,213,86,56,60,18,103,55,48,10,218,246,20,226,46,122,19,139,242,46,22,5,120,84,80,194,193,170,255,44,202,124,51,47,55,57,218,162,213,66,28,138,44,23,241,27,12,79,22,64,21,134,46,133,93,202,1,37,187,17,228,143,12,196,217,42,22,247,209,131,40,51,17,189,201, -146,133,216,172,86,241,28,154,43,202,209,248,176,78,86,183,4,164,128,174,79,163,92,220,103,249,107,113,127,7,136,136,84,96,54,241,53,18,171,248,190,178,141,105,242,154,208,139,74,75,36,5,65,37,87,32,18,156,84,136,97,45,96,156,22,66,203,242,64,175,81,255,60,94,53,221,23,101,68,171,1,98,239,229,249,229,62,65,46,54,243,187,237,112,197,211,146,58,97,238,5,225,192,184,198,34,195,90,177,150,165,97,158,217,142,20,88,81,2,112,243,104,37,102,177,136,23,48,107,11,113,179,201,65,215,124,32,46,241,239,88,127,228,193,88,223,138,161,1,155,158,53,44,4,216,133,7,168,137,37,137,208,153,62,228,16,158,155,207,196,101,38,160,102,192,121,220,25,72,46,50,192,77,10,73,55,108,40,123,34,235,77,190,206,64,65,236,23,125,68,167,249,134,184,110,32,26,211,122,253,142,153,193,69,199,60,61,32,68,162,88,199,115,240,53,47,93,58,44,145,24,108,214,229,244,32,214,254,7,249,78,37,230,167,253,37,73,100,110,202,55,68,170,154,156,209, -98,193,242,6,80,212,167,67,136,159,136,77,138,18,252,70,96,64,197,167,79,78,137,254,224,194,148,90,166,59,44,17,135,226,34,46,213,106,229,166,12,6,164,178,137,6,112,207,98,8,40,58,75,151,76,20,119,217,61,173,97,186,243,28,20,85,222,237,116,71,72,149,135,125,87,116,146,127,51,163,176,170,138,23,150,198,32,205,178,215,133,184,1,34,160,72,193,43,35,83,77,254,16,205,185,20,64,36,18,20,154,13,128,25,13,102,25,88,169,77,64,135,104,83,102,96,81,18,167,244,161,66,9,64,200,177,85,189,152,186,123,197,126,77,47,75,96,39,139,100,134,33,203,108,145,220,36,224,177,217,131,194,180,48,150,26,149,181,64,67,22,192,205,76,73,200,113,254,128,197,161,7,109,35,152,54,90,241,186,166,59,39,60,1,200,112,159,131,117,37,251,40,116,136,145,19,181,111,139,164,120,205,235,165,239,166,208,2,94,78,206,59,117,2,143,147,144,99,28,232,217,102,178,119,185,249,21,199,249,61,238,62,53,106,128,13,41,167,93,186,75,176,254,133,100,71, -38,95,150,166,217,61,45,182,72,222,242,78,77,26,200,140,143,196,59,226,6,217,229,221,65,131,238,215,31,49,168,175,239,25,46,200,222,219,99,133,250,123,127,160,48,62,58,187,174,22,72,191,194,159,4,125,203,7,120,139,98,25,71,171,98,66,122,98,149,149,82,175,174,30,58,42,178,185,103,254,251,68,88,230,198,92,146,244,144,170,152,109,146,116,1,65,90,129,95,229,134,108,86,139,72,242,42,88,60,18,127,122,249,212,4,52,81,92,21,47,176,141,201,106,158,110,22,49,56,46,39,249,121,163,108,20,13,161,116,245,155,8,46,86,201,50,40,93,180,189,125,146,120,205,154,42,165,189,144,56,136,155,52,186,29,136,159,161,37,43,219,167,133,6,252,122,27,175,226,92,42,217,59,233,88,178,94,219,99,2,107,60,110,55,81,190,128,48,242,12,25,105,46,6,131,201,55,96,196,242,142,184,63,134,79,102,206,216,165,227,123,197,160,189,196,148,26,160,232,39,36,182,13,76,116,194,162,48,239,194,31,136,83,178,224,76,93,120,117,7,68,196,155,104,158,164, -80,190,49,131,104,8,19,204,14,177,7,196,152,172,159,182,94,81,30,175,166,255,86,50,199,40,226,117,244,53,99,91,89,218,121,182,4,116,32,6,91,7,205,192,54,159,44,213,95,54,69,201,170,135,8,137,40,39,205,146,82,169,214,30,146,61,18,139,63,198,117,189,116,234,161,141,50,220,88,169,193,169,239,65,165,237,236,84,89,236,79,203,76,226,184,50,150,192,82,187,7,82,60,120,116,69,119,64,212,19,145,135,166,86,72,48,37,89,176,47,75,154,153,142,24,176,173,183,236,14,208,70,17,42,76,163,82,252,8,168,89,254,229,69,73,246,228,171,129,216,59,79,99,56,138,164,55,164,115,38,141,36,254,75,172,82,25,27,216,148,249,93,148,79,191,32,184,111,166,175,166,87,150,90,217,58,3,252,56,46,200,210,222,40,148,192,82,202,144,177,23,67,56,105,196,177,52,195,57,40,24,13,49,61,80,96,109,13,119,29,145,239,129,113,20,110,105,187,153,195,1,165,238,224,148,91,248,118,131,253,46,83,125,64,254,166,195,100,69,28,47,11,101,231,216,203, -202,10,214,165,55,155,148,25,80,174,45,141,30,182,48,225,116,103,150,220,130,12,45,237,39,25,234,22,142,140,50,183,166,3,69,112,200,77,101,231,25,80,200,9,20,217,253,170,129,61,159,192,72,186,104,114,72,92,42,95,242,46,131,39,104,112,110,68,104,34,46,129,97,88,109,208,255,38,38,58,79,176,167,234,3,192,69,74,63,166,186,47,97,71,205,6,157,166,7,236,17,222,192,64,52,59,97,103,100,199,233,193,99,61,181,10,102,223,101,5,10,157,253,121,186,67,187,205,227,225,157,68,171,121,156,82,211,183,155,178,36,90,125,151,72,57,40,89,55,145,55,179,210,30,91,67,163,195,129,91,146,109,35,103,76,78,197,48,205,206,31,169,202,31,205,232,245,106,38,141,213,22,190,184,72,32,191,20,48,146,68,255,128,16,34,162,168,17,10,100,15,243,236,247,235,117,104,205,166,238,54,20,86,91,141,31,83,220,6,54,202,150,205,245,247,234,171,14,149,216,47,164,38,10,6,75,114,129,215,150,162,126,196,241,76,30,171,208,134,169,184,36,252,141,205,214, -250,241,31,98,50,30,205,164,182,231,126,151,205,248,152,109,49,85,181,213,180,40,219,118,139,136,40,163,185,223,231,86,121,143,39,160,77,183,189,155,136,110,138,3,22,90,69,137,76,98,218,2,94,202,146,182,121,70,162,200,209,228,14,71,99,145,252,118,23,81,136,4,99,1,37,69,203,50,96,228,68,222,152,162,30,16,92,36,165,54,75,156,183,160,13,74,64,44,21,199,75,165,42,39,237,176,78,39,89,110,34,126,92,227,9,248,75,108,128,216,172,165,205,33,130,34,52,130,254,130,38,40,212,248,158,104,131,56,65,109,93,170,114,151,245,7,157,71,18,139,42,15,85,52,123,240,220,221,175,149,195,143,185,158,74,19,104,76,194,200,38,8,27,87,183,86,21,86,82,35,155,11,25,68,70,36,115,112,169,147,133,52,194,183,43,112,199,162,35,171,79,41,137,132,53,38,36,16,219,80,102,30,147,60,20,165,48,1,105,121,151,109,110,239,212,182,176,32,115,8,44,77,211,50,122,77,204,47,73,155,198,111,19,237,8,148,119,155,2,240,211,13,193,239,209,26, -74,164,48,162,0,31,204,217,218,145,107,218,162,145,129,64,65,121,179,121,21,115,71,55,48,80,141,233,89,152,102,144,230,77,25,163,199,134,226,254,162,128,52,222,148,160,37,70,89,170,103,210,12,27,216,92,171,196,129,178,70,48,6,93,68,100,83,65,250,228,193,208,206,82,168,23,61,204,216,119,72,211,22,37,205,109,125,146,36,19,2,164,78,155,241,112,70,192,38,109,154,58,175,166,112,180,174,38,253,108,138,14,46,58,172,22,186,67,239,222,195,102,39,55,181,174,209,1,195,68,108,101,95,192,245,0,55,175,224,182,123,137,61,19,98,239,180,251,29,70,237,149,2,162,183,202,140,204,226,219,68,58,137,70,174,133,253,203,90,243,206,213,17,23,233,23,226,172,123,62,221,42,232,116,11,61,63,84,150,120,179,90,8,129,173,150,240,99,74,153,198,137,176,151,203,100,158,165,237,172,137,218,233,158,149,235,221,239,2,219,190,200,158,209,82,20,57,207,86,72,171,185,39,187,231,69,185,47,244,105,220,64,252,216,183,229,114,176,100,174,190,89,40,131,21,169, -248,77,233,225,66,154,84,74,249,89,192,18,11,190,101,47,55,227,241,123,160,37,166,37,48,189,116,216,182,138,94,26,196,216,2,181,122,45,27,61,130,102,158,121,182,229,11,237,109,8,188,177,156,62,102,211,190,89,206,72,63,168,212,3,13,160,53,171,49,90,75,44,170,116,30,115,113,146,151,27,214,67,155,149,60,4,93,116,204,109,243,228,213,52,176,157,19,88,19,233,159,149,179,47,189,0,108,42,220,153,124,81,37,7,20,79,239,77,119,14,17,165,209,81,226,244,139,67,70,30,45,135,211,157,125,98,224,77,1,228,160,209,120,199,244,74,30,227,63,124,127,192,78,202,160,162,32,15,141,51,166,109,16,219,182,78,13,39,239,175,70,81,169,173,38,1,7,226,28,17,128,204,253,98,1,112,210,57,108,125,23,126,114,125,88,169,57,96,27,54,169,140,148,225,72,197,9,40,39,43,242,138,14,219,244,29,121,155,27,209,92,186,41,250,154,85,30,193,24,114,129,216,136,34,48,5,35,162,156,234,130,117,145,226,56,139,92,160,60,106,232,165,69,22,23,172, -116,231,112,99,187,249,244,247,219,13,230,110,157,116,175,210,169,248,154,233,164,1,0,196,17,73,125,11,66,149,7,160,68,191,116,137,217,157,215,179,214,71,218,176,151,103,245,226,140,246,142,170,149,199,108,210,57,87,33,163,142,243,99,242,89,41,55,168,88,227,146,242,18,202,190,170,84,167,9,73,154,67,153,248,54,154,251,249,172,187,219,157,66,134,237,155,189,157,178,15,242,48,68,42,77,101,147,216,228,176,251,98,16,162,194,118,179,154,35,24,186,229,148,232,251,33,218,41,173,168,16,13,122,75,44,168,153,15,55,237,163,74,217,195,51,202,95,23,93,51,18,181,215,198,185,69,125,170,0,127,184,204,212,49,147,198,128,86,169,87,216,18,4,242,137,122,100,192,146,92,206,199,15,25,188,192,246,140,26,87,253,243,91,176,68,133,55,159,79,73,243,91,163,192,137,189,62,211,31,49,30,164,166,36,214,115,202,113,113,216,96,114,8,226,53,34,37,187,120,213,68,164,198,117,238,139,40,32,205,165,40,239,51,78,129,193,211,196,16,189,104,185,90,86,115,121, -172,206,138,164,47,44,83,183,213,233,151,185,174,106,170,27,240,128,52,182,52,161,92,12,7,67,213,2,73,89,80,154,69,126,217,107,175,115,191,201,91,141,153,52,83,52,10,108,76,150,56,214,14,180,252,108,112,134,58,141,34,19,152,166,20,59,202,60,84,31,155,88,202,255,231,176,179,201,232,124,20,106,44,166,67,135,167,101,203,157,173,117,98,135,25,177,67,160,145,213,52,215,239,29,236,52,169,207,171,253,237,249,137,167,249,71,112,147,218,61,138,120,48,130,142,132,105,25,9,133,200,217,154,211,111,58,5,218,228,22,113,65,78,4,231,230,82,138,179,147,82,65,73,96,165,217,30,32,246,149,155,211,228,44,191,191,74,171,169,142,122,170,181,26,220,87,116,246,50,230,176,80,57,121,39,231,80,146,100,12,117,146,83,159,106,201,61,131,169,140,115,174,90,128,78,73,179,91,254,245,196,100,63,229,221,195,237,152,145,235,168,24,152,66,84,139,242,79,57,29,154,182,56,150,52,26,121,154,101,169,29,123,53,13,7,172,42,153,67,64,30,214,148,203,88,100, -27,8,9,28,232,246,150,156,154,102,143,210,49,177,202,112,169,156,157,193,234,143,88,149,14,88,237,1,70,105,33,139,39,100,165,67,115,9,239,237,218,41,77,195,151,149,228,250,248,212,173,206,56,85,131,101,182,86,158,150,87,173,150,12,8,57,99,82,115,30,214,136,253,234,96,254,252,244,199,211,23,226,229,197,169,56,126,46,78,255,227,252,197,233,197,197,211,179,231,226,242,76,92,156,94,138,203,239,79,197,147,211,239,142,95,62,187,20,63,30,63,123,121,42,206,190,19,199,226,187,167,207,78,159,31,255,112,138,182,23,79,143,191,125,134,230,23,4,224,233,147,170,229,51,241,243,217,203,23,226,228,236,135,243,151,151,152,226,233,133,120,246,244,207,167,207,126,38,208,39,47,142,47,190,23,199,23,226,226,12,115,225,39,247,189,60,253,225,252,217,241,229,41,245,189,56,125,118,122,114,121,250,164,71,113,190,119,77,225,71,88,89,130,164,248,75,150,230,112,128,150,44,57,99,199,57,138,136,83,19,134,123,198,144,119,212,113,19,159,10,221,145,15,91,233,16, -83,133,200,243,39,68,72,69,237,229,81,236,213,211,91,9,142,82,110,124,254,128,129,156,22,169,214,44,57,37,37,5,73,137,31,218,110,112,94,174,142,139,164,250,103,161,132,227,170,10,72,72,253,72,96,196,166,134,138,28,168,136,23,189,147,242,161,38,9,207,179,136,215,140,180,114,56,207,46,58,124,116,217,74,118,82,21,146,172,92,34,197,187,42,116,124,155,26,169,72,41,130,172,69,227,183,17,5,168,197,190,145,61,202,40,5,81,213,254,64,91,200,116,47,132,52,110,73,177,182,138,147,6,86,254,81,226,4,54,101,242,104,235,191,156,168,170,200,201,87,131,249,122,173,122,84,31,27,156,164,37,233,10,125,239,218,125,27,61,21,237,175,6,229,219,82,79,222,96,213,71,234,89,155,236,201,166,98,129,61,90,112,105,83,204,139,143,42,13,44,85,148,78,92,145,129,214,58,89,39,209,117,170,201,52,35,79,43,183,157,84,9,129,201,55,113,43,143,82,129,108,247,189,129,54,83,157,169,14,45,175,199,192,248,204,17,225,74,85,140,191,239,178,116,81,88, -170,104,205,76,29,165,28,71,68,179,76,157,217,178,233,106,157,178,201,165,111,51,158,50,7,173,68,45,190,185,129,162,27,136,111,43,201,173,75,79,216,120,51,130,198,209,70,53,81,36,250,118,129,98,114,233,11,176,149,165,80,142,93,130,98,115,3,215,42,254,140,50,49,6,223,160,99,30,19,196,162,62,9,149,233,55,50,103,244,219,170,161,219,7,226,167,132,120,185,212,133,111,188,252,45,67,169,154,103,9,58,45,100,42,172,9,135,195,44,25,95,117,92,181,149,20,78,114,72,42,219,66,38,35,35,79,167,179,98,189,245,44,214,154,82,50,149,153,166,213,215,130,66,129,121,188,168,78,66,183,209,181,38,125,47,125,23,25,135,198,84,109,181,157,100,95,78,132,34,177,128,188,117,214,119,211,15,218,96,255,12,61,136,177,209,218,222,47,181,35,6,198,205,165,200,58,176,46,90,164,166,53,153,62,22,37,150,31,69,242,237,8,200,216,185,202,34,48,169,54,235,238,156,191,205,54,215,106,227,215,108,243,147,179,143,222,98,173,39,251,138,250,155,10,242,203, -9,9,42,27,92,222,90,160,7,63,177,84,250,105,158,102,228,190,41,125,172,42,43,26,254,87,149,0,168,156,89,105,242,12,229,72,103,159,208,109,88,254,131,42,107,35,225,165,9,170,64,164,232,236,204,177,170,149,176,106,44,176,226,191,110,178,82,186,182,236,112,192,89,78,98,58,240,132,161,155,151,124,138,78,117,13,60,176,86,19,213,160,66,185,41,210,132,27,121,220,200,80,10,186,108,178,242,6,73,87,206,98,90,131,172,147,182,56,92,144,108,34,181,182,92,217,64,156,145,138,190,79,72,189,67,223,233,242,68,218,195,237,190,173,116,215,99,195,191,111,230,144,22,106,57,100,8,6,183,131,166,162,26,30,129,7,72,135,179,167,59,189,118,196,215,66,213,139,95,59,216,204,73,245,151,75,219,187,5,7,210,205,116,219,85,52,88,165,199,116,224,43,243,136,242,143,129,21,157,53,72,22,98,78,165,162,155,156,178,89,153,12,179,226,60,39,71,131,74,168,111,65,218,227,122,140,84,35,234,24,77,215,125,169,141,235,99,228,247,191,129,98,178,55,155,81, -229,43,137,120,185,145,226,58,221,129,20,237,53,1,237,19,152,35,85,101,111,44,250,167,70,126,205,12,53,128,206,116,66,147,22,181,154,145,241,48,89,210,242,62,150,133,106,75,226,54,234,48,161,95,214,121,182,216,204,227,222,188,157,148,24,173,203,122,169,240,49,183,106,126,13,61,68,12,93,251,251,166,140,223,127,103,168,25,154,247,221,29,106,170,193,106,176,46,57,7,37,244,189,8,121,97,224,38,145,97,132,145,233,163,204,58,171,63,109,139,12,51,2,144,170,26,85,94,160,193,90,214,92,36,4,125,37,139,150,139,228,118,213,74,215,104,108,205,187,66,205,253,139,21,156,132,179,137,101,204,39,114,103,156,197,73,215,119,145,14,223,235,84,11,213,68,79,175,229,189,159,67,93,89,138,166,255,84,185,154,104,62,143,215,74,107,107,111,72,6,58,58,15,161,195,35,54,65,148,159,227,227,71,177,200,41,95,173,139,45,34,29,98,67,180,37,17,101,47,153,188,168,227,176,61,168,129,219,129,5,221,76,69,84,197,254,64,104,100,146,102,64,88,230,64,4, -241,249,146,21,63,91,254,195,30,165,244,147,114,233,43,27,201,25,90,197,55,143,238,65,219,79,100,53,77,137,152,134,85,109,199,104,181,3,215,60,176,239,183,224,10,143,234,192,78,188,136,111,8,217,172,74,74,112,48,211,59,184,185,84,48,129,148,107,19,55,180,232,143,181,44,60,114,243,173,41,20,125,55,224,250,133,162,134,242,143,144,14,171,187,247,155,245,58,206,57,5,153,198,165,228,106,83,132,234,138,133,123,250,87,167,55,204,55,160,233,76,163,206,80,170,211,136,190,152,155,106,76,11,236,14,229,135,216,17,50,247,186,233,29,112,90,245,62,78,211,233,1,76,40,154,146,226,46,166,107,20,92,161,17,215,101,76,53,86,205,226,89,98,18,10,135,193,133,123,131,187,233,193,190,42,195,232,154,223,254,237,144,41,220,55,81,146,50,62,28,186,53,106,179,242,152,43,94,11,65,218,62,151,89,234,233,206,208,30,79,15,22,241,27,175,197,105,154,55,182,169,160,167,242,66,76,78,233,21,150,202,74,115,90,253,40,70,233,61,85,144,42,183,183,104,73, -106,67,10,223,131,57,222,33,21,213,196,91,197,227,157,55,57,155,66,210,119,163,243,29,66,162,96,253,94,69,101,219,254,1,255,233,181,222,52,153,136,251,235,166,214,111,136,103,26,112,85,140,163,42,62,86,157,121,229,125,35,126,65,72,246,209,102,72,91,144,55,36,29,8,53,138,104,32,190,147,247,203,56,35,197,122,94,6,238,240,10,231,205,193,93,23,216,62,58,17,63,60,156,131,161,14,233,135,164,212,244,224,43,241,195,207,211,235,243,227,203,239,167,215,242,55,94,229,255,93,89,55,184,234,55,145,248,240,83,73,188,70,244,127,71,238,229,244,91,165,191,123,229,186,41,238,125,87,175,219,14,88,163,246,73,75,116,179,246,78,222,201,180,120,29,114,229,85,248,79,238,23,165,91,111,51,186,167,73,177,104,243,224,59,216,122,207,187,141,135,249,93,188,142,31,184,172,194,64,168,89,232,35,81,170,195,219,106,192,239,161,156,76,35,195,167,163,43,206,201,62,18,245,247,112,111,239,237,247,78,228,163,52,178,121,197,162,34,144,186,200,161,106,21,148,227, -86,237,26,87,221,87,108,42,239,24,202,107,131,213,181,203,5,223,143,30,84,135,188,239,88,131,78,12,51,50,191,174,178,181,77,138,109,183,253,91,12,84,84,116,215,181,111,138,252,239,194,221,130,83,44,11,212,212,237,235,121,182,238,16,180,215,173,154,238,200,91,164,141,43,174,116,87,83,222,104,109,232,10,117,40,55,221,57,78,83,221,181,80,149,212,173,123,173,243,187,120,254,154,18,51,58,11,167,151,95,97,163,149,102,30,235,11,174,117,25,202,71,109,114,7,7,170,110,97,44,12,36,152,242,125,56,200,88,227,227,231,239,38,203,42,62,86,119,179,103,25,229,11,53,25,100,204,199,232,244,165,93,87,113,194,65,148,161,19,232,212,182,91,124,80,80,238,147,242,108,143,177,95,240,72,240,250,65,117,163,166,186,175,136,196,66,190,146,66,46,166,175,152,145,166,191,64,185,205,232,7,255,169,126,167,31,188,254,171,163,174,33,232,123,223,162,105,10,122,223,185,104,186,126,245,240,170,184,203,112,234,170,204,104,37,45,92,184,127,151,113,198,171,74,131,139, -151,5,39,10,203,170,134,155,154,23,124,245,94,133,170,170,36,225,215,133,255,146,7,6,239,27,246,243,181,3,51,242,231,82,166,190,160,191,19,210,119,153,162,239,97,144,54,107,104,230,235,212,20,178,134,124,111,213,196,149,14,145,50,186,244,0,29,15,29,136,39,25,91,53,157,161,213,197,144,124,195,125,213,76,84,86,40,152,172,95,217,43,157,184,45,226,210,60,37,126,20,169,168,208,133,7,122,187,163,214,250,160,245,74,200,198,214,42,127,206,171,206,75,171,206,168,209,13,58,125,186,220,45,122,248,32,225,170,142,52,88,184,228,59,139,224,19,252,174,65,79,175,89,228,32,112,211,63,202,94,106,61,211,157,171,182,124,233,29,247,250,244,64,237,185,245,64,239,122,109,173,76,249,58,202,141,3,152,234,189,18,153,144,134,89,161,39,64,22,58,85,163,78,32,180,23,47,135,39,133,94,127,83,29,52,158,162,105,41,130,190,39,105,154,138,128,6,126,184,10,208,231,20,191,169,2,208,249,190,235,182,224,247,72,105,207,3,59,255,47,165,191,27,41,77,22, -159,82,62,155,79,38,105,142,255,20,242,153,44,126,165,100,54,82,251,221,103,156,90,210,217,247,156,83,83,58,245,224,15,151,208,89,150,33,146,94,201,195,190,173,130,170,156,192,89,246,86,244,21,15,106,52,255,41,101,75,121,142,211,29,155,238,195,211,47,14,231,105,182,35,40,111,57,150,77,113,51,74,175,249,200,169,81,28,201,167,10,234,216,255,119,41,153,85,168,242,94,210,249,10,218,248,202,38,15,213,153,190,66,47,22,209,126,33,117,63,194,136,242,225,160,188,88,65,79,108,138,137,249,183,219,22,226,199,224,240,122,164,145,34,72,234,60,217,104,115,185,173,15,222,215,253,234,163,194,228,138,14,154,63,116,168,156,246,163,134,214,244,64,183,195,102,155,251,43,144,105,66,172,233,210,3,113,155,186,108,21,159,126,10,149,217,121,151,174,165,50,251,222,167,107,170,76,61,120,187,202,36,241,41,228,19,103,124,70,72,142,135,186,52,254,20,97,195,45,148,130,172,33,182,90,87,112,108,75,250,33,42,35,77,218,214,84,163,133,150,112,3,137,166,186,125, -146,103,235,103,73,85,70,111,213,207,67,212,105,131,66,199,193,250,201,171,42,237,44,95,52,235,211,208,61,79,243,181,53,180,6,174,19,60,20,177,55,170,155,105,71,87,37,229,86,138,193,111,165,211,171,87,178,20,200,199,116,60,116,237,109,242,134,218,86,153,230,52,121,187,220,250,120,253,223,71,137,70,170,159,223,101,41,26,119,24,30,244,213,73,202,125,174,100,153,80,195,71,147,133,238,84,70,249,97,182,67,221,47,147,23,0,76,190,171,138,7,232,148,143,12,20,115,154,146,249,236,102,122,77,21,194,248,77,233,238,3,225,116,66,227,182,85,146,124,8,74,234,42,114,77,81,195,61,231,91,99,92,185,201,39,10,149,88,91,234,149,149,7,93,70,164,214,82,85,33,223,82,100,109,192,214,219,84,23,137,105,63,35,150,143,75,200,2,42,101,64,63,133,29,59,36,101,167,38,217,171,220,166,107,71,166,17,245,159,46,253,9,189,70,85,156,87,204,123,210,134,181,212,164,86,123,80,69,100,245,216,222,241,37,205,95,76,123,212,187,15,91,140,161,247,17, -198,112,250,71,204,141,246,191,197,121,54,189,102,141,170,167,154,94,39,171,69,252,214,40,158,97,149,253,110,152,95,125,114,128,159,30,199,47,63,57,192,79,143,227,103,31,11,178,109,73,213,69,141,79,148,23,104,154,210,214,3,172,45,67,218,247,16,107,211,144,202,161,31,28,121,64,167,228,179,164,204,233,229,209,95,153,38,32,243,82,167,10,142,233,134,80,85,141,67,7,154,143,228,3,122,30,147,253,103,136,89,254,73,242,1,124,255,246,19,102,4,252,223,44,35,192,152,126,74,169,124,228,217,98,243,97,77,222,179,77,183,35,237,118,239,70,9,174,56,32,231,145,159,209,131,53,134,168,44,7,226,57,221,157,3,150,244,140,10,23,59,116,96,114,149,48,250,107,31,134,238,108,16,227,219,157,215,16,222,241,168,178,241,78,237,165,121,14,68,231,56,211,131,218,247,149,167,235,178,208,158,171,70,54,121,46,207,102,42,151,23,46,118,188,156,201,155,180,84,181,32,148,128,77,119,54,235,117,145,207,201,223,81,93,122,223,167,168,11,220,249,204,42,203,25,40, -165,25,103,177,34,92,229,189,240,131,9,75,121,45,92,141,178,122,78,183,238,19,160,65,79,195,65,101,102,105,58,139,232,242,232,133,124,197,64,61,63,161,31,133,171,103,167,18,140,119,61,51,209,122,90,164,104,61,25,195,15,197,240,131,14,43,165,8,59,120,27,158,26,187,105,203,232,65,158,140,3,227,153,58,178,27,136,127,231,107,85,171,52,202,111,229,225,167,60,186,28,240,221,109,121,95,92,110,105,245,36,9,173,152,224,52,87,141,168,168,189,106,131,61,137,67,23,49,23,222,111,95,171,126,100,87,29,158,170,58,244,66,92,30,127,219,200,255,130,75,150,180,136,205,58,79,110,239,74,65,140,30,81,25,118,33,125,103,121,245,46,91,199,213,157,132,250,98,190,126,20,78,189,155,203,135,198,6,108,117,173,162,126,105,163,205,236,61,239,131,55,25,188,126,133,184,243,184,143,124,17,50,203,147,184,122,162,88,226,209,120,240,199,27,145,143,249,195,195,49,88,186,254,123,163,174,151,141,26,111,74,93,108,102,38,80,118,246,233,106,105,65,231,93,61,15, -151,116,222,49,111,224,110,60,65,29,105,237,45,15,232,25,219,222,130,156,102,40,60,221,25,58,118,163,38,167,245,246,15,113,40,244,204,130,195,163,37,4,136,44,127,29,73,112,241,60,189,31,189,161,39,187,230,20,81,148,15,107,122,43,114,13,231,194,130,54,227,167,46,243,120,157,229,234,177,42,165,109,155,143,183,101,249,102,41,246,238,202,114,61,57,60,188,191,191,31,128,19,73,135,12,160,133,15,65,202,67,238,113,184,223,135,98,129,88,164,186,234,192,101,149,41,201,29,189,147,110,60,47,89,125,104,35,5,234,111,69,169,111,186,178,151,236,176,195,124,183,44,225,186,185,230,212,230,183,106,246,2,194,253,65,83,235,237,127,252,25,123,197,31,30,6,156,210,179,34,250,65,98,121,221,78,255,101,24,124,249,186,164,89,148,98,84,98,204,140,199,237,163,110,233,74,245,108,59,130,77,245,54,187,241,150,92,82,200,199,231,214,250,200,63,172,113,83,156,165,30,225,107,172,190,245,150,103,161,107,0,206,213,69,222,44,95,178,26,190,139,218,23,36,229,5, -213,198,155,113,213,156,227,35,126,151,86,255,94,189,89,122,164,91,244,79,154,164,238,165,238,132,34,4,29,208,255,115,162,213,243,197,109,127,161,203,10,109,168,84,5,48,207,86,55,201,109,221,15,214,116,71,176,107,68,75,38,120,105,196,169,59,114,104,166,59,12,3,78,199,213,255,0,155,254,93,210, - +TITLE("Ultimate++ Project Templates") +COMPRESSED +120,156,237,93,11,119,227,182,149,254,43,136,157,221,181,83,90,230,83,162,228,52,137,227,113,154,217,78,198,62,99,79,178,57,179,62,22,37,209,54,59,148,168,146,212,120,220,205,246,183,239,119,47,0,18,124,200,243,200,164,155,237,217,166,141,109,16,184,184,184,184,111,92,160,175,92,241,249,231,182,101,239,218,239,248,207,228,73,124,19,109,210,242,234,85,234,134,225,81,226,56,174,125,20,57,163,163,179,241,209,223,255,254,247,129,227,219,225,17,1,115,0,204,177,125,207,113,29,180,217,190,59,114,130,177,61,14,66,39,180,189,145,239,6,35,59,152,172,163,60,90,94,189,138,66,239,232,139,23,67,140,114,173,96,215,115,60,199,118,134,174,143,94,182,103,187,190,227,6,78,24,250,206,40,8,189,241,112,56,153,71,235,50,201,86,87,175,102,52,206,199,48,15,195,236,81,56,244,29,12,242,3,215,27,5,62,6,251,62,208,243,48,241,104,56,26,77,202,164,76,227,171,87,9,225,13,108,79,8,75,223,26,238,2,59,119,132,145,190,235,15,125,47,116,61,39, +116,221,225,216,243,199,62,208,118,220,73,82,198,64,114,230,187,71,17,254,71,195,2,204,231,7,190,227,129,34,254,40,240,208,109,132,159,190,61,118,92,76,26,218,65,128,249,226,183,154,76,51,16,136,136,68,99,135,152,210,29,5,52,34,244,67,199,27,133,174,239,14,93,32,97,143,176,80,194,32,152,44,226,98,142,177,158,235,28,149,64,235,232,228,155,224,200,193,224,145,53,218,117,237,177,237,14,71,99,76,10,132,177,102,111,60,118,188,16,147,250,78,96,59,222,100,158,45,176,206,153,27,216,30,207,24,98,43,134,128,204,100,9,134,14,144,118,189,16,83,142,28,207,195,191,3,63,28,77,138,152,54,163,204,242,171,87,95,124,179,103,15,236,129,27,4,251,52,124,140,225,161,231,123,158,63,28,251,142,237,97,26,192,240,137,102,67,27,219,233,4,110,56,153,69,5,230,44,209,52,146,148,117,136,155,64,123,47,12,60,76,61,196,191,176,175,88,160,7,250,184,99,63,244,188,208,158,204,211,168,40,20,145,136,64,95,208,34,29,199,114,156,221,17,209,54, +240,92,127,76,196,241,92,16,217,29,6,99,7,84,14,134,190,237,78,242,248,175,155,36,143,151,241,10,100,78,192,30,71,122,139,20,47,2,25,201,138,174,229,184,96,198,96,56,180,137,94,1,24,194,245,2,16,220,118,66,31,24,225,31,108,115,169,184,113,86,175,193,179,28,111,119,236,250,30,48,25,251,62,40,0,0,206,216,113,28,59,196,63,88,25,232,194,252,225,40,198,82,211,203,225,190,229,248,187,35,176,49,118,106,236,211,244,99,143,232,231,130,252,238,208,14,176,15,174,28,238,18,213,221,207,65,119,199,13,233,127,76,121,39,176,28,200,3,80,116,130,0,235,246,64,106,55,196,218,3,208,222,99,22,119,70,225,228,121,124,95,60,137,202,88,49,204,23,39,159,75,78,115,134,150,51,220,181,105,124,16,142,177,129,142,79,244,243,124,127,236,142,61,47,112,199,129,55,180,65,199,66,10,52,13,38,145,98,113,172,128,140,44,103,4,225,194,90,131,0,171,231,97,88,249,200,33,84,220,112,60,36,42,40,32,211,131,52,89,17,30,224,140,35,201,12, +95,156,252,193,113,70,4,40,132,208,132,225,208,246,198,32,6,104,96,7,224,116,40,132,16,27,141,125,118,33,6,164,17,230,175,163,219,120,122,160,164,149,81,32,14,12,188,32,36,190,197,72,160,14,36,0,103,108,219,67,180,132,33,164,105,114,27,173,27,12,232,218,150,107,131,139,160,127,2,8,37,230,2,251,217,99,210,37,208,12,216,1,168,162,113,32,57,112,122,176,138,139,50,94,96,243,3,155,151,237,58,150,235,128,118,224,191,32,8,125,127,8,124,49,247,136,84,19,109,33,4,56,24,121,147,243,8,242,178,94,148,174,55,132,6,35,85,228,186,150,235,66,167,160,23,68,203,31,219,80,38,80,34,62,216,13,92,224,13,221,208,25,121,246,228,167,159,166,215,188,196,233,181,109,3,196,29,131,120,193,83,123,150,235,237,66,68,64,23,12,244,176,111,96,19,204,7,141,104,67,37,133,99,23,48,27,16,72,130,48,188,1,197,183,92,127,151,68,8,76,59,130,32,5,96,61,40,44,136,48,233,55,32,24,96,69,38,20,176,112,234,143,220,38,148,192, +114,193,129,158,11,46,134,70,118,88,238,161,245,64,83,210,117,222,104,4,89,24,153,80,192,201,60,156,71,15,45,119,184,75,58,0,54,0,219,139,205,246,60,27,84,0,251,59,196,75,248,225,56,60,186,152,231,113,188,82,235,48,230,31,89,46,115,159,3,196,161,57,156,225,16,123,225,13,33,83,67,48,131,77,212,241,198,12,97,158,173,74,185,8,26,157,183,224,132,150,27,238,66,98,32,237,176,40,33,97,77,56,129,29,0,216,166,95,195,145,162,41,212,118,11,206,153,107,130,26,91,238,120,23,250,139,180,45,248,42,132,108,67,146,189,49,180,49,169,73,24,4,95,17,54,77,10,9,106,151,9,219,194,201,179,45,15,124,13,170,184,100,123,28,119,4,189,46,217,155,84,188,61,244,108,40,12,3,39,87,109,144,1,194,177,60,7,6,129,108,22,240,128,126,15,200,188,122,24,10,45,1,118,135,145,181,71,6,121,8,196,200,30,155,32,92,203,115,65,25,176,23,88,11,186,213,27,143,160,42,177,40,178,110,176,12,0,20,250,6,8,79,97,209,165,140, +231,89,158,183,139,81,35,55,132,137,31,129,229,72,227,66,230,194,33,236,57,64,142,48,135,65,25,189,32,13,133,229,214,243,45,15,140,11,193,182,73,107,66,107,219,228,1,224,47,180,64,103,56,35,80,198,83,8,45,136,227,166,215,51,147,50,18,74,96,121,193,174,67,202,157,76,6,100,206,25,122,196,177,238,136,197,106,72,130,229,152,80,20,101,234,77,146,112,134,150,7,123,237,141,65,98,143,236,60,28,5,168,226,113,64,123,4,58,193,165,9,29,19,142,71,187,221,207,57,222,200,242,192,204,144,65,96,1,54,6,251,56,67,56,43,99,111,4,140,200,118,143,160,32,76,38,228,149,237,182,249,38,180,188,112,215,135,38,128,62,0,74,80,103,208,12,35,168,249,145,29,66,57,192,74,2,148,1,6,234,161,189,170,177,229,141,119,225,60,4,112,55,72,52,109,103,140,193,112,212,2,103,12,21,7,222,1,31,26,171,178,77,201,148,158,147,109,249,224,94,240,23,154,192,62,208,46,216,36,40,245,32,36,183,34,132,207,5,188,12,16,77,49,104,16,198, +119,44,223,217,29,195,149,0,239,193,204,134,94,200,40,128,119,70,33,45,148,169,110,74,2,19,230,191,174,255,251,95,78,159,31,188,188,16,175,10,215,61,18,47,211,50,89,194,14,78,255,48,253,131,56,151,134,68,92,198,203,117,138,198,226,95,175,100,47,254,233,29,9,123,112,240,203,9,56,26,238,67,161,219,248,231,232,72,56,248,118,158,103,105,118,187,137,117,155,139,182,39,112,203,242,132,189,79,221,236,161,249,69,28,45,30,96,178,178,233,193,166,104,77,233,57,212,199,57,248,229,236,77,156,191,73,226,251,186,209,61,248,229,219,168,72,230,226,164,204,211,103,201,76,68,235,117,154,204,35,13,94,246,242,24,205,34,75,99,243,187,216,91,101,226,37,173,116,191,238,234,83,215,60,22,115,213,127,157,103,127,137,231,101,221,33,64,135,238,92,226,62,41,239,196,50,74,232,183,213,34,51,80,28,30,252,114,241,228,153,6,212,59,233,72,118,97,24,60,187,50,225,154,64,62,8,164,41,34,190,75,128,214,179,232,33,219,84,88,249,68,156,211,183,216,135, +194,88,183,79,212,185,192,156,104,43,234,70,175,106,20,103,249,34,206,235,47,88,251,69,242,183,106,214,0,179,94,60,172,202,232,173,238,18,208,60,39,217,114,169,55,92,54,98,154,159,238,224,130,137,11,224,29,215,237,158,222,156,23,155,212,104,246,137,9,210,100,137,17,185,132,226,114,51,1,159,238,76,191,193,63,59,102,179,75,205,95,127,173,26,25,68,64,203,93,195,97,42,170,181,113,103,70,176,53,167,250,224,106,224,175,14,197,13,72,184,138,150,144,168,184,130,114,101,78,202,184,211,164,232,188,181,139,79,93,190,156,136,193,96,32,38,95,53,191,5,242,219,215,162,9,0,253,184,251,151,147,65,123,196,240,93,35,14,123,198,50,49,120,228,249,241,201,159,143,255,116,106,194,28,18,49,90,226,166,191,128,26,47,11,197,97,18,202,200,132,114,125,121,246,242,252,252,244,133,9,110,180,21,220,168,7,92,216,11,238,250,228,248,252,194,4,26,110,5,26,246,0,29,31,252,242,61,244,68,156,139,103,240,145,235,190,227,173,80,198,114,223,75,37,60,230, +212,99,185,199,32,247,115,176,194,85,243,19,239,45,137,243,116,199,18,211,157,98,51,107,126,15,58,184,57,54,13,169,56,203,232,237,216,91,209,195,39,151,62,221,36,171,164,243,197,235,206,193,18,146,44,26,208,157,237,208,157,173,208,157,62,232,76,170,140,129,52,102,112,183,207,224,110,157,193,237,155,129,41,94,196,41,244,79,99,6,111,251,12,222,214,25,188,190,25,124,185,221,111,155,240,253,237,240,253,173,240,253,62,248,180,241,171,5,117,143,23,226,77,148,39,209,44,85,134,17,42,115,104,42,234,39,73,4,235,103,168,106,234,49,98,19,184,78,179,7,82,162,186,53,68,235,233,58,105,24,203,227,245,58,94,45,146,183,19,1,217,145,90,191,214,198,212,65,91,220,142,165,213,86,56,60,18,103,55,48,10,218,246,20,226,46,122,19,139,242,46,22,5,120,84,80,194,193,170,255,44,202,124,51,47,55,57,218,162,213,66,28,138,44,23,241,27,12,79,22,64,21,134,46,133,93,202,1,37,187,17,228,143,12,196,217,42,22,247,209,131,40,51,17,189,201, +146,133,216,172,86,241,28,154,43,202,209,248,176,78,86,183,4,164,128,174,79,163,92,220,103,249,107,113,127,7,136,136,84,96,54,241,53,18,171,248,190,178,141,105,242,154,208,139,74,75,36,5,65,37,87,32,18,156,84,136,97,45,96,156,22,66,203,242,64,175,81,255,60,94,53,221,23,101,68,171,1,98,239,229,249,229,62,65,46,54,243,187,237,112,197,211,146,58,97,238,5,225,192,184,198,34,195,90,177,150,165,97,158,217,142,20,88,81,2,112,243,104,37,102,177,136,23,48,107,11,113,179,201,65,215,124,32,46,241,239,88,127,228,193,88,223,138,161,1,155,158,53,44,4,216,133,7,168,137,37,137,208,153,62,228,16,158,155,207,196,101,38,160,102,192,121,220,25,72,46,50,192,77,10,73,55,108,40,123,34,235,77,190,206,64,65,236,23,125,68,167,249,134,184,110,32,26,211,122,253,142,153,193,69,199,60,61,32,68,162,88,199,115,240,53,47,93,58,44,145,24,108,214,229,244,32,214,254,7,249,78,37,230,167,253,37,73,100,110,202,55,68,170,154,156,209, +98,193,242,6,80,212,167,67,136,159,136,77,138,18,252,70,96,64,197,167,79,78,137,254,224,194,148,90,166,59,44,17,135,226,34,46,213,106,229,166,12,6,164,178,137,6,112,207,98,8,40,58,75,151,76,20,119,217,61,173,97,186,243,28,20,85,222,237,116,71,72,149,135,125,87,116,146,127,51,163,176,170,138,23,150,198,32,205,178,215,133,184,1,34,160,72,193,43,35,83,77,254,16,205,185,20,64,36,18,20,154,13,128,25,13,102,25,88,169,77,64,135,104,83,102,96,81,18,167,244,161,66,9,64,200,177,85,189,152,186,123,197,126,77,47,75,96,39,139,100,134,33,203,108,145,220,36,224,177,217,131,194,180,48,150,26,149,181,64,67,22,192,205,76,73,200,113,254,128,197,161,7,109,35,152,54,90,241,186,166,59,39,60,1,200,112,159,131,117,37,251,40,116,136,145,19,181,111,139,164,120,205,235,165,239,166,208,2,94,78,206,59,117,2,143,147,144,99,28,232,217,102,178,119,185,249,21,199,249,61,238,62,53,106,128,13,41,167,93,186,75,176,254,133,100,71, +38,95,150,166,217,61,45,182,72,222,242,78,77,26,200,140,143,196,59,226,6,217,229,221,65,131,238,215,31,49,168,175,239,25,46,200,222,219,99,133,250,123,127,160,48,62,58,187,174,22,72,191,194,159,4,125,203,7,120,139,98,25,71,171,98,66,122,98,149,149,82,175,174,30,58,42,178,185,103,254,251,68,88,230,198,92,146,244,144,170,152,109,146,116,1,65,90,129,95,229,134,108,86,139,72,242,42,88,60,18,127,122,249,212,4,52,81,92,21,47,176,141,201,106,158,110,22,49,56,46,39,249,121,163,108,20,13,161,116,245,155,8,46,86,201,50,40,93,180,189,125,146,120,205,154,42,165,189,144,56,136,155,52,186,29,136,159,161,37,43,219,167,133,6,252,122,27,175,226,92,42,217,59,233,88,178,94,219,99,2,107,60,110,55,81,190,128,48,242,12,25,105,46,6,131,201,55,96,196,242,142,184,63,134,79,102,206,216,165,227,123,197,160,189,196,148,26,160,232,39,36,182,13,76,116,194,162,48,239,194,31,136,83,178,224,76,93,120,117,7,68,196,155,104,158,164, +80,190,49,131,104,8,19,204,14,177,7,196,152,172,159,182,94,81,30,175,166,255,86,50,199,40,226,117,244,53,99,91,89,218,121,182,4,116,32,6,91,7,205,192,54,159,44,213,95,54,69,201,170,135,8,137,40,39,205,146,82,169,214,30,146,61,18,139,63,198,117,189,116,234,161,141,50,220,88,169,193,169,239,65,165,237,236,84,89,236,79,203,76,226,184,50,150,192,82,187,7,82,60,120,116,69,119,64,212,19,145,135,166,86,72,48,37,89,176,47,75,154,153,142,24,176,173,183,236,14,208,70,17,42,76,163,82,252,8,168,89,254,229,69,73,246,228,171,129,216,59,79,99,56,138,164,55,164,115,38,141,36,254,75,172,82,25,27,216,148,249,93,148,79,191,32,184,111,166,175,166,87,150,90,217,58,3,252,56,46,200,210,222,40,148,192,82,202,144,177,23,67,56,105,196,177,52,195,57,40,24,13,49,61,80,96,109,13,119,29,145,239,129,113,20,110,105,187,153,195,1,165,238,224,148,91,248,118,131,253,46,83,125,64,254,166,195,100,69,28,47,11,101,231,216,203, +202,10,214,165,55,155,148,25,80,174,45,141,30,182,48,225,116,103,150,220,130,12,45,237,39,25,234,22,142,140,50,183,166,3,69,112,200,77,101,231,25,80,200,9,20,217,253,170,129,61,159,192,72,186,104,114,72,92,42,95,242,46,131,39,104,112,110,68,104,34,46,129,97,88,109,208,255,38,38,58,79,176,167,234,3,192,69,74,63,166,186,47,97,71,205,6,157,166,7,236,17,222,192,64,52,59,97,103,100,199,233,193,99,61,181,10,102,223,101,5,10,157,253,121,186,67,187,205,227,225,157,68,171,121,156,82,211,183,155,178,36,90,125,151,72,57,40,89,55,145,55,179,210,30,91,67,163,195,129,91,146,109,35,103,76,78,197,48,205,206,31,169,202,31,205,232,245,106,38,141,213,22,190,184,72,32,191,20,48,146,68,255,128,16,34,162,168,17,10,100,15,243,236,247,235,117,104,205,166,238,54,20,86,91,141,31,83,220,6,54,202,150,205,245,247,234,171,14,149,216,47,164,38,10,6,75,114,129,215,150,162,126,196,241,76,30,171,208,134,169,184,36,252,141,205,214, +250,241,31,98,50,30,205,164,182,231,126,151,205,248,152,109,49,85,181,213,180,40,219,118,139,136,40,163,185,223,231,86,121,143,39,160,77,183,189,155,136,110,138,3,22,90,69,137,76,98,218,2,94,202,146,182,121,70,162,200,209,228,14,71,99,145,252,118,23,81,136,4,99,1,37,69,203,50,96,228,68,222,152,162,30,16,92,36,165,54,75,156,183,160,13,74,64,44,21,199,75,165,42,39,237,176,78,39,89,110,34,126,92,227,9,248,75,108,128,216,172,165,205,33,130,34,52,130,254,130,38,40,212,248,158,104,131,56,65,109,93,170,114,151,245,7,157,71,18,139,42,15,85,52,123,240,220,221,175,149,195,143,185,158,74,19,104,76,194,200,38,8,27,87,183,86,21,86,82,35,155,11,25,68,70,36,115,112,169,147,133,52,194,183,43,112,199,162,35,171,79,41,137,132,53,38,36,16,219,80,102,30,147,60,20,165,48,1,105,121,151,109,110,239,212,182,176,32,115,8,44,77,211,50,122,77,204,47,73,155,198,111,19,237,8,148,119,155,2,240,211,13,193,239,209,26, +74,164,48,162,0,31,204,217,218,145,107,218,162,145,129,64,65,121,179,121,21,115,71,55,48,80,141,233,89,152,102,144,230,77,25,163,199,134,226,254,162,128,52,222,148,160,37,70,89,170,103,210,12,27,216,92,171,196,129,178,70,48,6,93,68,100,83,65,250,228,193,208,206,82,168,23,61,204,216,119,72,211,22,37,205,109,125,146,36,19,2,164,78,155,241,112,70,192,38,109,154,58,175,166,112,180,174,38,253,108,138,14,46,58,172,22,186,67,239,222,195,102,39,55,181,174,209,1,195,68,108,101,95,192,245,0,55,175,224,182,123,137,61,19,98,239,180,251,29,70,237,149,2,162,183,202,140,204,226,219,68,58,137,70,174,133,253,203,90,243,206,213,17,23,233,23,226,172,123,62,221,42,232,116,11,61,63,84,150,120,179,90,8,129,173,150,240,99,74,153,198,137,176,151,203,100,158,165,237,172,137,218,233,158,149,235,221,239,2,219,190,200,158,209,82,20,57,207,86,72,171,185,39,187,231,69,185,47,244,105,220,64,252,216,183,229,114,176,100,174,190,89,40,131,21,169, +248,77,233,225,66,154,84,74,249,89,192,18,11,190,101,47,55,227,241,123,160,37,166,37,48,189,116,216,182,138,94,26,196,216,2,181,122,45,27,61,130,102,158,121,182,229,11,237,109,8,188,177,156,62,102,211,190,89,206,72,63,168,212,3,13,160,53,171,49,90,75,44,170,116,30,115,113,146,151,27,214,67,155,149,60,4,93,116,204,109,243,228,213,52,176,157,19,88,19,233,159,149,179,47,189,0,108,42,220,153,124,81,37,7,20,79,239,77,119,14,17,165,209,81,226,244,139,67,70,30,45,135,211,157,125,98,224,77,1,228,160,209,120,199,244,74,30,227,63,124,127,192,78,202,160,162,32,15,141,51,166,109,16,219,182,78,13,39,239,175,70,81,169,173,38,1,7,226,28,17,128,204,253,98,1,112,210,57,108,125,23,126,114,125,88,169,57,96,27,54,169,140,148,225,72,197,9,40,39,43,242,138,14,219,244,29,121,155,27,209,92,186,41,250,154,85,30,193,24,114,129,216,136,34,48,5,35,162,156,234,130,117,145,226,56,139,92,160,60,106,232,165,69,22,23,172, +116,231,112,99,187,249,244,247,219,13,230,110,157,116,175,210,169,248,154,233,164,1,0,196,17,73,125,11,66,149,7,160,68,191,116,137,217,157,215,179,214,71,218,176,151,103,245,226,140,246,142,170,149,199,108,210,57,87,33,163,142,243,99,242,89,41,55,168,88,227,146,242,18,202,190,170,84,167,9,73,154,67,153,248,54,154,251,249,172,187,219,157,66,134,237,155,189,157,178,15,242,48,68,42,77,101,147,216,228,176,251,98,16,162,194,118,179,154,35,24,186,229,148,232,251,33,218,41,173,168,16,13,122,75,44,168,153,15,55,237,163,74,217,195,51,202,95,23,93,51,18,181,215,198,185,69,125,170,0,127,184,204,212,49,147,198,128,86,169,87,216,18,4,242,137,122,100,192,146,92,206,199,15,25,188,192,246,140,26,87,253,243,91,176,68,133,55,159,79,73,243,91,163,192,137,189,62,211,31,49,30,164,166,36,214,115,202,113,113,216,96,114,8,226,53,34,37,187,120,213,68,164,198,117,238,139,40,32,205,165,40,239,51,78,129,193,211,196,16,189,104,185,90,86,115,121, +172,206,138,164,47,44,83,183,213,233,151,185,174,106,170,27,240,128,52,182,52,161,92,12,7,67,213,2,73,89,80,154,69,126,217,107,175,115,191,201,91,141,153,52,83,52,10,108,76,150,56,214,14,180,252,108,112,134,58,141,34,19,152,166,20,59,202,60,84,31,155,88,202,255,231,176,179,201,232,124,20,106,44,166,67,135,167,101,203,157,173,117,98,135,25,177,67,160,145,213,52,215,239,29,236,52,169,207,171,253,237,249,137,167,249,71,112,147,218,61,138,120,48,130,142,132,105,25,9,133,200,217,154,211,111,58,5,218,228,22,113,65,78,4,231,230,82,138,179,147,82,65,73,96,165,217,30,32,246,149,155,211,228,44,191,191,74,171,169,142,122,170,181,26,220,87,116,246,50,230,176,80,57,121,39,231,80,146,100,12,117,146,83,159,106,201,61,131,169,140,115,174,90,128,78,73,179,91,254,245,196,100,63,229,221,195,237,152,145,235,168,24,152,66,84,139,242,79,57,29,154,182,56,150,52,26,121,154,101,169,29,123,53,13,7,172,42,153,67,64,30,214,148,203,88,100, +27,8,9,28,232,246,150,156,154,102,143,210,49,177,202,112,169,156,157,193,234,143,88,149,14,88,237,1,70,105,33,139,39,100,165,67,115,9,239,237,218,41,77,195,151,149,228,250,248,212,173,206,56,85,131,101,182,86,158,150,87,173,150,12,8,57,99,82,115,30,214,136,253,234,96,254,252,244,199,211,23,226,229,197,169,56,126,46,78,255,227,252,197,233,197,197,211,179,231,226,242,76,92,156,94,138,203,239,79,197,147,211,239,142,95,62,187,20,63,30,63,123,121,42,206,190,19,199,226,187,167,207,78,159,31,255,112,138,182,23,79,143,191,125,134,230,23,4,224,233,147,170,229,51,241,243,217,203,23,226,228,236,135,243,151,151,152,226,233,133,120,246,244,207,167,207,126,38,208,39,47,142,47,190,23,199,23,226,226,12,115,225,39,247,189,60,253,225,252,217,241,229,41,245,189,56,125,118,122,114,121,250,164,71,113,190,119,77,225,71,88,89,130,164,248,75,150,230,112,128,150,44,57,99,199,57,138,136,83,19,134,123,198,144,119,212,113,19,159,10,221,145,15,91,233,16, +83,133,200,243,39,68,72,69,237,229,81,236,213,211,91,9,142,82,110,124,254,128,129,156,22,169,214,44,57,37,37,5,73,137,31,218,110,112,94,174,142,139,164,250,103,161,132,227,170,10,72,72,253,72,96,196,166,134,138,28,168,136,23,189,147,242,161,38,9,207,179,136,215,140,180,114,56,207,46,58,124,116,217,74,118,82,21,146,172,92,34,197,187,42,116,124,155,26,169,72,41,130,172,69,227,183,17,5,168,197,190,145,61,202,40,5,81,213,254,64,91,200,116,47,132,52,110,73,177,182,138,147,6,86,254,81,226,4,54,101,242,104,235,191,156,168,170,200,201,87,131,249,122,173,122,84,31,27,156,164,37,233,10,125,239,218,125,27,61,21,237,175,6,229,219,82,79,222,96,213,71,234,89,155,236,201,166,98,129,61,90,112,105,83,204,139,143,42,13,44,85,148,78,92,145,129,214,58,89,39,209,117,170,201,52,35,79,43,183,157,84,9,129,201,55,113,43,143,82,129,108,247,189,129,54,83,157,169,14,45,175,199,192,248,204,17,225,74,85,140,191,239,178,116,81,88, +170,104,205,76,29,165,28,71,68,179,76,157,217,178,233,106,157,178,201,165,111,51,158,50,7,173,68,45,190,185,129,162,27,136,111,43,201,173,75,79,216,120,51,130,198,209,70,53,81,36,250,118,129,98,114,233,11,176,149,165,80,142,93,130,98,115,3,215,42,254,140,50,49,6,223,160,99,30,19,196,162,62,9,149,233,55,50,103,244,219,170,161,219,7,226,167,132,120,185,212,133,111,188,252,45,67,169,154,103,9,58,45,100,42,172,9,135,195,44,25,95,117,92,181,149,20,78,114,72,42,219,66,38,35,35,79,167,179,98,189,245,44,214,154,82,50,149,153,166,213,215,130,66,129,121,188,168,78,66,183,209,181,38,125,47,125,23,25,135,198,84,109,181,157,100,95,78,132,34,177,128,188,117,214,119,211,15,218,96,255,12,61,136,177,209,218,222,47,181,35,6,198,205,165,200,58,176,46,90,164,166,53,153,62,22,37,150,31,69,242,237,8,200,216,185,202,34,48,169,54,235,238,156,191,205,54,215,106,227,215,108,243,147,179,143,222,98,173,39,251,138,250,155,10,242,203, +9,9,42,27,92,222,90,160,7,63,177,84,250,105,158,102,228,190,41,125,172,42,43,26,254,87,149,0,168,156,89,105,242,12,229,72,103,159,208,109,88,254,131,42,107,35,225,165,9,170,64,164,232,236,204,177,170,149,176,106,44,176,226,191,110,178,82,186,182,236,112,192,89,78,98,58,240,132,161,155,151,124,138,78,117,13,60,176,86,19,213,160,66,185,41,210,132,27,121,220,200,80,10,186,108,178,242,6,73,87,206,98,90,131,172,147,182,56,92,144,108,34,181,182,92,217,64,156,145,138,190,79,72,189,67,223,233,242,68,218,195,237,190,173,116,215,99,195,191,111,230,144,22,106,57,100,8,6,183,131,166,162,26,30,129,7,72,135,179,167,59,189,118,196,215,66,213,139,95,59,216,204,73,245,151,75,219,187,5,7,210,205,116,219,85,52,88,165,199,116,224,43,243,136,242,143,129,21,157,53,72,22,98,78,165,162,155,156,178,89,153,12,179,226,60,39,71,131,74,168,111,65,218,227,122,140,84,35,234,24,77,215,125,169,141,235,99,228,247,191,129,98,178,55,155,81, +229,43,137,120,185,145,226,58,221,129,20,237,53,1,237,19,152,35,85,101,111,44,250,167,70,126,205,12,53,128,206,116,66,147,22,181,154,145,241,48,89,210,242,62,150,133,106,75,226,54,234,48,161,95,214,121,182,216,204,227,222,188,157,148,24,173,203,122,169,240,49,183,106,126,13,61,68,12,93,251,251,166,140,223,127,103,168,25,154,247,221,29,106,170,193,106,176,46,57,7,37,244,189,8,121,97,224,38,145,97,132,145,233,163,204,58,171,63,109,139,12,51,2,144,170,26,85,94,160,193,90,214,92,36,4,125,37,139,150,139,228,118,213,74,215,104,108,205,187,66,205,253,139,21,156,132,179,137,101,204,39,114,103,156,197,73,215,119,145,14,223,235,84,11,213,68,79,175,229,189,159,67,93,89,138,166,255,84,185,154,104,62,143,215,74,107,107,111,72,6,58,58,15,161,195,35,54,65,148,159,227,227,71,177,200,41,95,173,139,45,34,29,98,67,180,37,17,101,47,153,188,168,227,176,61,168,129,219,129,5,221,76,69,84,197,254,64,104,100,146,102,64,88,230,64,4, +241,249,146,21,63,91,254,195,30,165,244,147,114,233,43,27,201,25,90,197,55,143,238,65,219,79,100,53,77,137,152,134,85,109,199,104,181,3,215,60,176,239,183,224,10,143,234,192,78,188,136,111,8,217,172,74,74,112,48,211,59,184,185,84,48,129,148,107,19,55,180,232,143,181,44,60,114,243,173,41,20,125,55,224,250,133,162,134,242,143,144,14,171,187,247,155,245,58,206,57,5,153,198,165,228,106,83,132,234,138,133,123,250,87,167,55,204,55,160,233,76,163,206,80,170,211,136,190,152,155,106,76,11,236,14,229,135,216,17,50,247,186,233,29,112,90,245,62,78,211,233,1,76,40,154,146,226,46,166,107,20,92,161,17,215,101,76,53,86,205,226,89,98,18,10,135,193,133,123,131,187,233,193,190,42,195,232,154,223,254,237,144,41,220,55,81,146,50,62,28,186,53,106,179,242,152,43,94,11,65,218,62,151,89,234,233,206,208,30,79,15,22,241,27,175,197,105,154,55,182,169,160,167,242,66,76,78,233,21,150,202,74,115,90,253,40,70,233,61,85,144,42,183,183,104,73, +106,67,10,223,131,57,222,33,21,213,196,91,197,227,157,55,57,155,66,210,119,163,243,29,66,162,96,253,94,69,101,219,254,1,255,233,181,222,52,153,136,251,235,166,214,111,136,103,26,112,85,140,163,42,62,86,157,121,229,125,35,126,65,72,246,209,102,72,91,144,55,36,29,8,53,138,104,32,190,147,247,203,56,35,197,122,94,6,238,240,10,231,205,193,93,23,216,62,58,17,63,60,156,131,161,14,233,135,164,212,244,224,43,241,195,207,211,235,243,227,203,239,167,215,242,55,94,229,255,93,89,55,184,234,55,145,248,240,83,73,188,70,244,127,71,238,229,244,91,165,191,123,229,186,41,238,125,87,175,219,14,88,163,246,73,75,116,179,246,78,222,201,180,120,29,114,229,85,248,79,238,23,165,91,111,51,186,167,73,177,104,243,224,59,216,122,207,187,141,135,249,93,188,142,31,184,172,194,64,168,89,232,35,81,170,195,219,106,192,239,161,156,76,35,195,167,163,43,206,201,62,18,245,247,112,111,239,237,247,78,228,163,52,178,121,197,162,34,144,186,200,161,106,21,148,227, +86,237,26,87,221,87,108,42,239,24,202,107,131,213,181,203,5,223,143,30,84,135,188,239,88,131,78,12,51,50,191,174,178,181,77,138,109,183,253,91,12,84,84,116,215,181,111,138,252,239,194,221,130,83,44,11,212,212,237,235,121,182,238,16,180,215,173,154,238,200,91,164,141,43,174,116,87,83,222,104,109,232,10,117,40,55,221,57,78,83,221,181,80,149,212,173,123,173,243,187,120,254,154,18,51,58,11,167,151,95,97,163,149,102,30,235,11,174,117,25,202,71,109,114,7,7,170,110,97,44,12,36,152,242,125,56,200,88,227,227,231,239,38,203,42,62,86,119,179,103,25,229,11,53,25,100,204,199,232,244,165,93,87,113,194,65,148,161,19,232,212,182,91,124,80,80,238,147,242,108,143,177,95,240,72,240,250,65,117,163,166,186,175,136,196,66,190,146,66,46,166,175,152,145,166,191,64,185,205,232,7,255,169,126,167,31,188,254,171,163,174,33,232,123,223,162,105,10,122,223,185,104,186,126,245,240,170,184,203,112,234,170,204,104,37,45,92,184,127,151,113,198,171,74,131,139, +151,5,39,10,203,170,134,155,154,23,124,245,94,133,170,170,36,225,215,133,255,146,7,6,239,27,246,243,181,3,51,242,231,82,166,190,160,191,19,210,119,153,162,239,97,144,54,107,104,230,235,212,20,178,134,124,111,213,196,149,14,145,50,186,244,0,29,15,29,136,39,25,91,53,157,161,213,197,144,124,195,125,213,76,84,86,40,152,172,95,217,43,157,184,45,226,210,60,37,126,20,169,168,208,133,7,122,187,163,214,250,160,245,74,200,198,214,42,127,206,171,206,75,171,206,168,209,13,58,125,186,220,45,122,248,32,225,170,142,52,88,184,228,59,139,224,19,252,174,65,79,175,89,228,32,112,211,63,202,94,106,61,211,157,171,182,124,233,29,247,250,244,64,237,185,245,64,239,122,109,173,76,249,58,202,141,3,152,234,189,18,153,144,134,89,161,39,64,22,58,85,163,78,32,180,23,47,135,39,133,94,127,83,29,52,158,162,105,41,130,190,39,105,154,138,128,6,126,184,10,208,231,20,191,169,2,208,249,190,235,182,224,247,72,105,207,3,59,255,47,165,191,27,41,77,22, +159,82,62,155,79,38,105,142,255,20,242,153,44,126,165,100,54,82,251,221,103,156,90,210,217,247,156,83,83,58,245,224,15,151,208,89,150,33,146,94,201,195,190,173,130,170,156,192,89,246,86,244,21,15,106,52,255,41,101,75,121,142,211,29,155,238,195,211,47,14,231,105,182,35,40,111,57,150,77,113,51,74,175,249,200,169,81,28,201,167,10,234,216,255,119,41,153,85,168,242,94,210,249,10,218,248,202,38,15,213,153,190,66,47,22,209,126,33,117,63,194,136,242,225,160,188,88,65,79,108,138,137,249,183,219,22,226,199,224,240,122,164,145,34,72,234,60,217,104,115,185,173,15,222,215,253,234,163,194,228,138,14,154,63,116,168,156,246,163,134,214,244,64,183,195,102,155,251,43,144,105,66,172,233,210,3,113,155,186,108,21,159,126,10,149,217,121,151,174,165,50,251,222,167,107,170,76,61,120,187,202,36,241,41,228,19,103,124,70,72,142,135,186,52,254,20,97,195,45,148,130,172,33,182,90,87,112,108,75,250,33,42,35,77,218,214,84,163,133,150,112,3,137,166,186,125, +146,103,235,103,73,85,70,111,213,207,67,212,105,131,66,199,193,250,201,171,42,237,44,95,52,235,211,208,61,79,243,181,53,180,6,174,19,60,20,177,55,170,155,105,71,87,37,229,86,138,193,111,165,211,171,87,178,20,200,199,116,60,116,237,109,242,134,218,86,153,230,52,121,187,220,250,120,253,223,71,137,70,170,159,223,101,41,26,119,24,30,244,213,73,202,125,174,100,153,80,195,71,147,133,238,84,70,249,97,182,67,221,47,147,23,0,76,190,171,138,7,232,148,143,12,20,115,154,146,249,236,102,122,77,21,194,248,77,233,238,3,225,116,66,227,182,85,146,124,8,74,234,42,114,77,81,195,61,231,91,99,92,185,201,39,10,149,88,91,234,149,149,7,93,70,164,214,82,85,33,223,82,100,109,192,214,219,84,23,137,105,63,35,150,143,75,200,2,42,101,64,63,133,29,59,36,101,167,38,217,171,220,166,107,71,166,17,245,159,46,253,9,189,70,85,156,87,204,123,210,134,181,212,164,86,123,80,69,100,245,216,222,241,37,205,95,76,123,212,187,15,91,140,161,247,17, +198,112,250,71,204,141,246,191,197,121,54,189,102,141,170,167,154,94,39,171,69,252,214,40,158,97,149,253,110,152,95,125,114,128,159,30,199,47,63,57,192,79,143,227,103,31,11,178,109,73,213,69,141,79,148,23,104,154,210,214,3,172,45,67,218,247,16,107,211,144,202,161,31,28,121,64,167,228,179,164,204,233,229,209,95,153,38,32,243,82,167,10,142,233,134,80,85,141,67,7,154,143,228,3,122,30,147,253,103,136,89,254,73,242,1,124,255,246,19,102,4,252,223,44,35,192,152,126,74,169,124,228,217,98,243,97,77,222,179,77,183,35,237,118,239,70,9,174,56,32,231,145,159,209,131,53,134,168,44,7,226,57,221,157,3,150,244,140,10,23,59,116,96,114,149,48,250,107,31,134,238,108,16,227,219,157,215,16,222,241,168,178,241,78,237,165,121,14,68,231,56,211,131,218,247,149,167,235,178,208,158,171,70,54,121,46,207,102,42,151,23,46,118,188,156,201,155,180,84,181,32,148,128,77,119,54,235,117,145,207,201,223,81,93,122,223,167,168,11,220,249,204,42,203,25,40, +165,25,103,177,34,92,229,189,240,131,9,75,121,45,92,141,178,122,78,183,238,19,160,65,79,195,65,101,102,105,58,139,232,242,232,133,124,197,64,61,63,161,31,133,171,103,167,18,140,119,61,51,209,122,90,164,104,61,25,195,15,197,240,131,14,43,165,8,59,120,27,158,26,187,105,203,232,65,158,140,3,227,153,58,178,27,136,127,231,107,85,171,52,202,111,229,225,167,60,186,28,240,221,109,121,95,92,110,105,245,36,9,173,152,224,52,87,141,168,168,189,106,131,61,137,67,23,49,23,222,111,95,171,126,100,87,29,158,170,58,244,66,92,30,127,219,200,255,130,75,150,180,136,205,58,79,110,239,74,65,140,30,81,25,118,33,125,103,121,245,46,91,199,213,157,132,250,98,190,126,20,78,189,155,203,135,198,6,108,117,173,162,126,105,163,205,236,61,239,131,55,25,188,126,133,184,243,184,143,124,17,50,203,147,184,122,162,88,226,209,120,240,199,27,145,143,249,195,195,49,88,186,254,123,163,174,151,141,26,111,74,93,108,102,38,80,118,246,233,106,105,65,231,93,61,15, +151,116,222,49,111,224,110,60,65,29,105,237,45,15,232,25,219,222,130,156,102,40,60,221,25,58,118,163,38,167,245,246,15,113,40,244,204,130,195,163,37,4,136,44,127,29,73,112,241,60,189,31,189,161,39,187,230,20,81,148,15,107,122,43,114,13,231,194,130,54,227,167,46,243,120,157,229,234,177,42,165,109,155,143,183,101,249,102,41,246,238,202,114,61,57,60,188,191,191,31,128,19,73,135,12,160,133,15,65,202,67,238,113,184,223,135,98,129,88,164,186,234,192,101,149,41,201,29,189,147,110,60,47,89,125,104,35,5,234,111,69,169,111,186,178,151,236,176,195,124,183,44,225,186,185,230,212,230,183,106,246,2,194,253,65,83,235,237,127,252,25,123,197,31,30,6,156,210,179,34,250,65,98,121,221,78,255,101,24,124,249,186,164,89,148,98,84,98,204,140,199,237,163,110,233,74,245,108,59,130,77,245,54,187,241,150,92,82,200,199,231,214,250,200,63,172,113,83,156,165,30,225,107,172,190,245,150,103,161,107,0,206,213,69,222,44,95,178,26,190,139,218,23,36,229,5, +213,198,155,113,213,156,227,35,126,151,86,255,94,189,89,122,164,91,244,79,154,164,238,165,238,132,34,4,29,208,255,115,162,213,243,197,109,127,161,203,10,109,168,84,5,48,207,86,55,201,109,221,15,214,116,71,176,107,68,75,38,120,105,196,169,59,114,104,166,59,12,3,78,199,213,255,0,155,254,93,210, + diff --git a/uppsrc/ide/app.tpp/PackagesAssembliesAndNests$en-us.tpp b/uppsrc/ide/app.tpp/PackagesAssembliesAndNests_en-us.tpp similarity index 99% rename from uppsrc/ide/app.tpp/PackagesAssembliesAndNests$en-us.tpp rename to uppsrc/ide/app.tpp/PackagesAssembliesAndNests_en-us.tpp index e85fff74b..43ea544aa 100644 --- a/uppsrc/ide/app.tpp/PackagesAssembliesAndNests$en-us.tpp +++ b/uppsrc/ide/app.tpp/PackagesAssembliesAndNests_en-us.tpp @@ -1,301 +1,301 @@ -topic "Packages, Assemblies and Nests"; -[ $$0,0#00000000000000000000000000000000:Default] -[=b133;*R+184 $$1,2#50732784410233463530219518343157:Heading1] -[a17;*@(170.42.0) $$2,3#48345324464242285505540720043115:Heading2] -[ph2 $$3,3#42410412485283044863419059360682:Enumaration] -[a83;*R6 $$4,5#31310162474203024125188417583966:caption] -[b42;a42;ph2 $$5,5#45413000475342174754091244180557:text] -[b83;*4 $$6,5#07864147445237544204411237157677:title] -[b17;t246;C@5;2 $$7,7#20902679421464641399138805415013:code] -[{_}%EN-US -[s4; Packages, Assemblies `& Nests&] -[s6; Packages&] -[s5; Packages are centric to U`+`+. An executable application is -built from a package. A package can also build into a dynamic -link library. A package can be used by other packages. A package -corresponds to a single directory with the directory name being -the name of the package. The package directory contains the -package definition file (a plain text file with a .upp extension), -which always has the same name as the package directory. The -package definition file contains a list of the source files that -make up the package, plus information on what type of package -it is, how it should be built and what other packages it uses. - The source files for the package are normally located in the -package directory and its subdirectories, but they may be in -any desired location. A package directory must be located in -an assembly nest or in the sub`-folders of a nest (see [/ Package`-locations -]below).&] -[s5; The package definition file is maintained by TheIDE and you -should never need to manipulate it manually. The package definition -file is updated at various times by TheIDE, including :&] -[s3;l288;i150;O0;~~~160; When you add/remove source files to/from -a package&] -[s3;l288;i150;O0;~~~160; When you add/remove packages used by the -package&] -[s3;l288;i150;O0;~~~160; When you change package build settings using -the [/ package`-organizer]&] -[s3;l288;i150;O0;~~~160; When you change the package build configurations -using [/ main`-package`-configuration]&] -[s3;l288;i150;O0;~~~160; When you change/assign custom build steps -for the package&] -[s5; For more detail on configuring packages and assemblies, [^topic`:`/`/ide`/app`/ConfiguringPackagesAssemblies`$en`-us^ s -ee this].&] -[s5; When a package is built, the compiler will be invoked for each -of the source files that belong to the package and for any source -files that belong to packages directly or indirectly used by -the [* main package.]&] -[s6; Assemblies&] -[s5; An assembly can be thought of as a collection of packages but -it is actually just a set of paths which determine where U`+`+ -looks for the packages needed to build a package (or application). - The assembly paths also determine where the compiler looks for -files named in C`+`+ #include directives. An assembly also specifies -the root folder for the location for the output files (.obj, -.exe etc) produced by a build plus the location of common files. - The paths defined by the assembly are stored in an assembly -definition file which has a .var extension and is stored in the -U`+`+ root installation directory. A package can be associated -with multiple assemblies. Files produced by a build are actually -placed in a sub`-folder of the output root folder and the sub`-folder -is named according to the package name, the [* build flags] and -the compiler that was used. e.g. for the HelloWorld example -when built with MSVC`+`+ 7.1 compiler, the output file folder -is typically [/ C:/upp/out/HelloWorld/MSC71.Gui.Main] where [/ C:/upp/out] -is specified as the output folder root in the assembly.&] -[s6; Opening a package&] -[s3; To open a package, the [/ Set`-main`-package] option on the File -menu in TheIDE is used. The `"Select main package`" dialog will -appear.&] -[s3; &] -[s0;= -@@rawimage:2956&1618 -(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) -&] -[s3; &] -[s5; First select an assembly in the left hand pane, then select -one of the assembly`'s packages in the right hand pane. Click -OK and the selected package will be opened in TheIDE with the -package name shown in TheIDE application window title bar. The -package that has been opened is referred to as the [* main package] -and it appears first in the list of packages shown at the left`-hand`-side -of TheIDE. To select a different [* main package], the [/ Set`-main`-package] -option from the File menu can be used. For more detail on creating -and configuring packages and assemblies, [^topic`:`/`/ide`/app`/ConfiguringPackagesAssemblies`$en`-us^ s -ee this].&] -[s5; In TheIDE, a build command builds a package, not an assembly, -but the assembly determines where the needed packages and include -files are looked for. The Build option on TheIDE build`-menu -always builds the [* main package]. The build`-package option -can be used to build any of the packages that are directly or -indirectly used by the [* main package] i.e. any of the packages -displayed in the package list at the left hand side of TheIDE. - On the Project menu in TheIDE, the [/ add`-package], [/ package`-organizer] -and [/ main`-package`-configuration] options apply to the [* main -package]. The [/ project`-export] option on the File menu exports -the main package and all the packages that are directly and indirectly -used by the main package, to any folder you choose.&] -[s6; Nests&] -[s5; U`+`+ requires that packages be organized into nests. A nest -is actually just a directory containing a set of package directories -and source files. An assembly defines an ordered list of nests -(paths) and the packages contained in those nests form the packages -of the assembly. The packages associated with an assembly are -shown in the right hand pane of the [/ Select`-main`-package] dialog -when the assembly name is highlighted in the left hand pane. - The nest paths specified in an assembly can also be used to -set additional include paths for the compiler. See [/ Include`-paths`-and`-#include -`-directives] below for more detail.&] -[s5; The assembly containing all of the U`+`+ library packages is -uppsrc and the name of the associated nest is also uppsrc.&] -[s6; The U`+`+ examples assembly&] -[s5; The assembly containing all of the U`+`+ examples (such as HelloWorld), -is named `"examples`" and you can see it in the select`-main`-package -dialog. It has two nests, `"examples`" and `"uppsrc`". On the -Windows platform, the path setting for the nests of the examples -assembly might appear as follows :&] -[s5; C:/upp/examples;C:/upp/uppsrc&] -[s5; where C:`\upp is the U`+`+ root installation directory. A semicolon -separates the path settings for each nest The examples nest -contains all of the U`+`+ examples packages and the uppsrc nest -contains all of the U`+`+ core library packages.&] -[s5; For portability, [*_@(170.42.150) forward slashes should be used -in all path specifications] rather than back`-slashes. This -also applies to #include directives.&] -[s6; Include paths and #include directives&] -[s5; The nest paths defined in an assembly determine where U`+`+ -looks for the assembly`'s packages. These paths are also added -to the `"include path list`" for the compilation of source files -via the `"`-I`" (or equivalent) compiler command line option. - e.g. for the examples assembly above, the `-I command line setting -(for GCC) would be &] -[s5; `-IC:/upp/examples `-IC:/upp/uppsrc&] -[s5; This means that the path names used in #include directives in -C`+`+ source files can begin with the name of a folder/package -that is the member of an assembly nest. e.g. in the HelloWorld -example hello.cpp file you will see&] -[s7; #include &] -[s5; CtrlLib is the name of a U`+`+ library package in the uppsrc -nest. Angle brackets should be used in a #include directive -when #including U`+`+ source files because this prevents the -compiler from looking in the current directory for a folder named -e.g. `"CtrlLib`". i.e. with all U`+`+ supported compilers, the -angle brackets means the search for the included file begins -with the paths specified in the `-I directive. When #including -files that are members of the same folder (or sub`-folders) as -the file doing the #include, then double quotes should be used -instead of angle brackets.&] -[s5; On non`-Windows platforms, folder names are case sensitive so -[*_@(141.42.150) it is recommended that the correct case always -be used] e.g. CtrlLib and not ctrllib.&] -[s5; See [/ Alternative`-#include`-path`-mechanisms] below for additional -information.&] -[s6; Package locations&] -[s5; A package folder does not have to be located in a top level -nest folder. It may be located in a sub`-folder of a nest folder -if desired. For example, consider the following directory structure.&] -[s5; [/ Nest1/Pkg1]&] -[s5; [/ Nest1/Project1/Pkg2]&] -[s5; [/ Nest1/Project1/Client/Pkg3]&] -[s5; [/ Nest1/Project1/Common]&] -[s5; and an assembly nest path setting of&] -[s5; [/ C:/upp/Nest1;C:/upp/uppsrc]&] -[s5; Pkg1 is located in the top level Nest1 folder. Pkg2 is located -in the Project1 sub`-folder of Nest1. U`+`+ searches all of -the sub`-folders of a nest to maximum depth when looking for -packages.&] -[s5; A source file in Pkg3 can #include a source file in Pkg2 (File2.h) -with&] -[s7; #include &] -[s5; Double quotes can be used instead of angle brackets providing -the Pkg3 folder does not contain a Project1 folder.&] -[s5; A source file in Pkg3 can #include a file from its own folder -(File3.h) with either&] -[s7; #include `"File3.h`"&] -[s3; or&] -[s7; #include &] -[s5; The organization of packages and #includes shown above allows -the Project1 folder to be located in any nest.without changing -any of the #includes.because all of the pathnames begin with -Project1. It also allows an assembly to switch between different -revisions of Project1 just by changing the assembly nest path -setting.&] -[s5; When a package is created using the Create`-new`-package dialog, -the package name must include some path information if the package -is not a top level folder within a nest. e.g. for the Project1/Pkg2 -package above, the package name needs to be entered as Project1/Pkg2. - For Pkg1, the package name can be entered as just Pkg1 because -the package is in a top level nest folder.&] -[s5; An assembly may contain multiple projects/applications or just -one project. If there are multiple projects in an assembly then -you need to consider the package/folder/file name issue described -below.&] -[s6; Package/folder/file names&] -[s5; It is usually necessary that the names of the folders and files -that appear in the top level nest folders of an assembly be [*_@(113.42.150) unique - across all the top level nest folders of that assembly] unless -duplicated names are referenced using a complete path specification. - This means that if an assembly includes the uppsrc nest, then -the other nests of that assembly must not contain packages or -folders that have the same name as folders/packages in the uppsrc -nest. e.g. The HelloWorld examples nest cannot contain packages -with names such as CtrlLib, RichEdit or Common because these -are the names of uppsrc library packages.&] -[s5; Hence the names of uppsrc packages need to be avoided when choosing -names for folders/packages that are located in a top level nest -folder if the assembly includes the uppsrc nest. Refer to the -uppsrc folder in the U`+`+ installation path for the full list -of uppsrc package/folder names. The names of uppsrc packages -need to be avoided as folder names within any folder that is -specified as an include path to the compiler (see [/ alternative`-include`-path`-me -chanisms] below).&] -[s5; If a package is to be distributed to others, one way of avoiding -a clash of package names is to locate them in a folder whose -name is likely to be unique e.g. &] -[s5; Nest1/CZ1Soft/Pkg1. &] -[s5; and&] -[s7; #include &] -[s5; CZ1Soft is a name that has a reasonable chance of being unique. - The name of the Pkg1 folder can be anything because it is not -a top level nest folder and.is not specified as an include path -to the compiler.&] -[s5; If source files are placed directly in a nest folder (e.g. Nest1 -above), then the names need to be unique across all nest folders -of the assembly unless they are always accessed with either a -complete path specification or with no path specification (in -which case they need to be in the same folder as the including -file). e.g.&] -[s3;l160;i96;O0; #include `"File1.h`" contains no path specification.&] -[s3;l160;i96;O0; #include `"../Pkg2/File2.h`" is a complete path -specification.&] -[s3;l160;i96;O0; #include is an incomplete -path specification.&] -[s5; Note `"..`" in a path specification means `"parent folder`" -i.e. up one level&] -[s6; Alternative #include path mechanisms&] -[s5; The nest paths specified in an assembly are normally used to -identify the directory (or directory tree) where packages can -be found and, as explained above, the `"normal`" method of #including -header files is that when the header file name involves an incomplete -path, the given pathname begins with the name of a top`-level -nest folder e.g. #include . CtrlLib is the -name of a top`-level nest folder because it is located in the -uppsrc nest.&] -[s5; Because the paths specified in an assembly are added to the -`"include path list`" for the compiler (using `-I or /I), you -can use this mechanism to add directories to the include path -list, even if those directories don`'t contain any packages. - You need to remember that the search for packages looks in all -sub`-folders of the assembly nest paths and also that you may -need to avoid using folder names that are the names of uppsrc -packages (see the [/ Package`-folder`-names] section above). The -order of the `-I (or /I) directives supplied to the compiler -is the same as the order of the nest paths specified in the assembly -and this determines the search order when the compiler looks -for #include files.&] -[s5; e.g. suppose you have a folder, C:/SomeFolder, that contains -a header file SomeHeader.h. You can add SomeFolder to the assembly -nest path like this&] -[s5; C:/upp/examples;C:/upp/uppsrc;C:/SomeFolder&] -[s3; &] -[s3; In your source files you can now write&] -[s7; #include &] -[s3; or&] -[s7; #include `"SomeHeader.h`"&] -[s5; Angle brackets are preferred because they mean the search begins -in paths specified in `-I directives rather than in the folder -containing the file doing the #include&] -[s5; .Providing the header files in the SomeFolder folder use angle -brackets when #including uppsrc files, it will not matter if -the SomeFolder folder contains directories that have the same -name as uppsrc directories, because C:/SomeFolder is last in the -assembly nest path list.&] -[s5; You can also use the [/ package`-organizer] in TheIDE to specify -additional include paths. The [/ package`-organizer] allows you -to enter additional switches to be passed to the compiler for -all packages, for specific packages or for specific source files. - This allows you to add a `-I switch (or /I) to specify an include -path. These switches get added to the compiler command line -[/ after] the `-I switches for the assembly nest paths. To see -how the compiler is invoked when a source file is compiled, turn -on the [/ verbose] option in the Setup menu in TheIDE. You can -use [* build flags] to restrict the additional compiler switches -to be in effect only when your own package`'s source files are -being compiled. The [/^topic`:`/`/ide`/app`/ConfiguringPackagesAssemblies`$en`-us^ p -ackage`-organizer] also allows you to specify compiler switches -for specific files.&] -[s6; Layout file #includes&] -[s5; A layout file contains a description of the GUI part of a project -i.e. the layout of widgets etc. e.g. the AddressBook example -in the examples assembly uses a layout file and the AddressBook.cpp -file has the following two lines.&] -[s7; #define LAYOUTFILE &] -[s7; #include &] -[s5; The #define for LAYOUTFILE should use angle brackets and not -double quotes and must also include a path specification that -starts with a top level folder of a nest. i.e. it should not -be written as&] -[s7; #define LAYOUTFILE `"AddressBook.lay`"&] -[s5; because the CtrlCore/lay.h file uses it to #include the layout -file (multiple times) with&] -[s7; #include LAYOUTFILE&] +topic "Packages, Assemblies and Nests"; +[ $$0,0#00000000000000000000000000000000:Default] +[=b133;*R+184 $$1,2#50732784410233463530219518343157:Heading1] +[a17;*@(170.42.0) $$2,3#48345324464242285505540720043115:Heading2] +[ph2 $$3,3#42410412485283044863419059360682:Enumaration] +[a83;*R6 $$4,5#31310162474203024125188417583966:caption] +[b42;a42;ph2 $$5,5#45413000475342174754091244180557:text] +[b83;*4 $$6,5#07864147445237544204411237157677:title] +[b17;t246;C@5;2 $$7,7#20902679421464641399138805415013:code] +[{_}%EN-US +[s4; Packages, Assemblies `& Nests&] +[s6; Packages&] +[s5; Packages are centric to U`+`+. An executable application is +built from a package. A package can also build into a dynamic +link library. A package can be used by other packages. A package +corresponds to a single directory with the directory name being +the name of the package. The package directory contains the +package definition file (a plain text file with a .upp extension), +which always has the same name as the package directory. The +package definition file contains a list of the source files that +make up the package, plus information on what type of package +it is, how it should be built and what other packages it uses. + The source files for the package are normally located in the +package directory and its subdirectories, but they may be in +any desired location. A package directory must be located in +an assembly nest or in the sub`-folders of a nest (see [/ Package`-locations +]below).&] +[s5; The package definition file is maintained by TheIDE and you +should never need to manipulate it manually. The package definition +file is updated at various times by TheIDE, including :&] +[s3;l288;i150;O0;~~~160; When you add/remove source files to/from +a package&] +[s3;l288;i150;O0;~~~160; When you add/remove packages used by the +package&] +[s3;l288;i150;O0;~~~160; When you change package build settings using +the [/ package`-organizer]&] +[s3;l288;i150;O0;~~~160; When you change the package build configurations +using [/ main`-package`-configuration]&] +[s3;l288;i150;O0;~~~160; When you change/assign custom build steps +for the package&] +[s5; For more detail on configuring packages and assemblies, [^topic`:`/`/ide`/app`/ConfiguringPackagesAssemblies`$en`-us^ s +ee this].&] +[s5; When a package is built, the compiler will be invoked for each +of the source files that belong to the package and for any source +files that belong to packages directly or indirectly used by +the [* main package.]&] +[s6; Assemblies&] +[s5; An assembly can be thought of as a collection of packages but +it is actually just a set of paths which determine where U`+`+ +looks for the packages needed to build a package (or application). + The assembly paths also determine where the compiler looks for +files named in C`+`+ #include directives. An assembly also specifies +the root folder for the location for the output files (.obj, +.exe etc) produced by a build plus the location of common files. + The paths defined by the assembly are stored in an assembly +definition file which has a .var extension and is stored in the +U`+`+ root installation directory. A package can be associated +with multiple assemblies. Files produced by a build are actually +placed in a sub`-folder of the output root folder and the sub`-folder +is named according to the package name, the [* build flags] and +the compiler that was used. e.g. for the HelloWorld example +when built with MSVC`+`+ 7.1 compiler, the output file folder +is typically [/ C:/upp/out/HelloWorld/MSC71.Gui.Main] where [/ C:/upp/out] +is specified as the output folder root in the assembly.&] +[s6; Opening a package&] +[s3; To open a package, the [/ Set`-main`-package] option on the File +menu in TheIDE is used. The `"Select main package`" dialog will +appear.&] +[s3; &] +[s0;= +@@rawimage:2956&1618 +(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) +&] +[s3; &] +[s5; First select an assembly in the left hand pane, then select +one of the assembly`'s packages in the right hand pane. Click +OK and the selected package will be opened in TheIDE with the +package name shown in TheIDE application window title bar. The +package that has been opened is referred to as the [* main package] +and it appears first in the list of packages shown at the left`-hand`-side +of TheIDE. To select a different [* main package], the [/ Set`-main`-package] +option from the File menu can be used. For more detail on creating +and configuring packages and assemblies, [^topic`:`/`/ide`/app`/ConfiguringPackagesAssemblies`$en`-us^ s +ee this].&] +[s5; In TheIDE, a build command builds a package, not an assembly, +but the assembly determines where the needed packages and include +files are looked for. The Build option on TheIDE build`-menu +always builds the [* main package]. The build`-package option +can be used to build any of the packages that are directly or +indirectly used by the [* main package] i.e. any of the packages +displayed in the package list at the left hand side of TheIDE. + On the Project menu in TheIDE, the [/ add`-package], [/ package`-organizer] +and [/ main`-package`-configuration] options apply to the [* main +package]. The [/ project`-export] option on the File menu exports +the main package and all the packages that are directly and indirectly +used by the main package, to any folder you choose.&] +[s6; Nests&] +[s5; U`+`+ requires that packages be organized into nests. A nest +is actually just a directory containing a set of package directories +and source files. An assembly defines an ordered list of nests +(paths) and the packages contained in those nests form the packages +of the assembly. The packages associated with an assembly are +shown in the right hand pane of the [/ Select`-main`-package] dialog +when the assembly name is highlighted in the left hand pane. + The nest paths specified in an assembly can also be used to +set additional include paths for the compiler. See [/ Include`-paths`-and`-#include +`-directives] below for more detail.&] +[s5; The assembly containing all of the U`+`+ library packages is +uppsrc and the name of the associated nest is also uppsrc.&] +[s6; The U`+`+ examples assembly&] +[s5; The assembly containing all of the U`+`+ examples (such as HelloWorld), +is named `"examples`" and you can see it in the select`-main`-package +dialog. It has two nests, `"examples`" and `"uppsrc`". On the +Windows platform, the path setting for the nests of the examples +assembly might appear as follows :&] +[s5; C:/upp/examples;C:/upp/uppsrc&] +[s5; where C:`\upp is the U`+`+ root installation directory. A semicolon +separates the path settings for each nest The examples nest +contains all of the U`+`+ examples packages and the uppsrc nest +contains all of the U`+`+ core library packages.&] +[s5; For portability, [*_@(170.42.150) forward slashes should be used +in all path specifications] rather than back`-slashes. This +also applies to #include directives.&] +[s6; Include paths and #include directives&] +[s5; The nest paths defined in an assembly determine where U`+`+ +looks for the assembly`'s packages. These paths are also added +to the `"include path list`" for the compilation of source files +via the `"`-I`" (or equivalent) compiler command line option. + e.g. for the examples assembly above, the `-I command line setting +(for GCC) would be &] +[s5; `-IC:/upp/examples `-IC:/upp/uppsrc&] +[s5; This means that the path names used in #include directives in +C`+`+ source files can begin with the name of a folder/package +that is the member of an assembly nest. e.g. in the HelloWorld +example hello.cpp file you will see&] +[s7; #include &] +[s5; CtrlLib is the name of a U`+`+ library package in the uppsrc +nest. Angle brackets should be used in a #include directive +when #including U`+`+ source files because this prevents the +compiler from looking in the current directory for a folder named +e.g. `"CtrlLib`". i.e. with all U`+`+ supported compilers, the +angle brackets means the search for the included file begins +with the paths specified in the `-I directive. When #including +files that are members of the same folder (or sub`-folders) as +the file doing the #include, then double quotes should be used +instead of angle brackets.&] +[s5; On non`-Windows platforms, folder names are case sensitive so +[*_@(141.42.150) it is recommended that the correct case always +be used] e.g. CtrlLib and not ctrllib.&] +[s5; See [/ Alternative`-#include`-path`-mechanisms] below for additional +information.&] +[s6; Package locations&] +[s5; A package folder does not have to be located in a top level +nest folder. It may be located in a sub`-folder of a nest folder +if desired. For example, consider the following directory structure.&] +[s5; [/ Nest1/Pkg1]&] +[s5; [/ Nest1/Project1/Pkg2]&] +[s5; [/ Nest1/Project1/Client/Pkg3]&] +[s5; [/ Nest1/Project1/Common]&] +[s5; and an assembly nest path setting of&] +[s5; [/ C:/upp/Nest1;C:/upp/uppsrc]&] +[s5; Pkg1 is located in the top level Nest1 folder. Pkg2 is located +in the Project1 sub`-folder of Nest1. U`+`+ searches all of +the sub`-folders of a nest to maximum depth when looking for +packages.&] +[s5; A source file in Pkg3 can #include a source file in Pkg2 (File2.h) +with&] +[s7; #include &] +[s5; Double quotes can be used instead of angle brackets providing +the Pkg3 folder does not contain a Project1 folder.&] +[s5; A source file in Pkg3 can #include a file from its own folder +(File3.h) with either&] +[s7; #include `"File3.h`"&] +[s3; or&] +[s7; #include &] +[s5; The organization of packages and #includes shown above allows +the Project1 folder to be located in any nest.without changing +any of the #includes.because all of the pathnames begin with +Project1. It also allows an assembly to switch between different +revisions of Project1 just by changing the assembly nest path +setting.&] +[s5; When a package is created using the Create`-new`-package dialog, +the package name must include some path information if the package +is not a top level folder within a nest. e.g. for the Project1/Pkg2 +package above, the package name needs to be entered as Project1/Pkg2. + For Pkg1, the package name can be entered as just Pkg1 because +the package is in a top level nest folder.&] +[s5; An assembly may contain multiple projects/applications or just +one project. If there are multiple projects in an assembly then +you need to consider the package/folder/file name issue described +below.&] +[s6; Package/folder/file names&] +[s5; It is usually necessary that the names of the folders and files +that appear in the top level nest folders of an assembly be [*_@(113.42.150) unique + across all the top level nest folders of that assembly] unless +duplicated names are referenced using a complete path specification. + This means that if an assembly includes the uppsrc nest, then +the other nests of that assembly must not contain packages or +folders that have the same name as folders/packages in the uppsrc +nest. e.g. The HelloWorld examples nest cannot contain packages +with names such as CtrlLib, RichEdit or Common because these +are the names of uppsrc library packages.&] +[s5; Hence the names of uppsrc packages need to be avoided when choosing +names for folders/packages that are located in a top level nest +folder if the assembly includes the uppsrc nest. Refer to the +uppsrc folder in the U`+`+ installation path for the full list +of uppsrc package/folder names. The names of uppsrc packages +need to be avoided as folder names within any folder that is +specified as an include path to the compiler (see [/ alternative`-include`-path`-me +chanisms] below).&] +[s5; If a package is to be distributed to others, one way of avoiding +a clash of package names is to locate them in a folder whose +name is likely to be unique e.g. &] +[s5; Nest1/CZ1Soft/Pkg1. &] +[s5; and&] +[s7; #include &] +[s5; CZ1Soft is a name that has a reasonable chance of being unique. + The name of the Pkg1 folder can be anything because it is not +a top level nest folder and.is not specified as an include path +to the compiler.&] +[s5; If source files are placed directly in a nest folder (e.g. Nest1 +above), then the names need to be unique across all nest folders +of the assembly unless they are always accessed with either a +complete path specification or with no path specification (in +which case they need to be in the same folder as the including +file). e.g.&] +[s3;l160;i96;O0; #include `"File1.h`" contains no path specification.&] +[s3;l160;i96;O0; #include `"../Pkg2/File2.h`" is a complete path +specification.&] +[s3;l160;i96;O0; #include is an incomplete +path specification.&] +[s5; Note `"..`" in a path specification means `"parent folder`" +i.e. up one level&] +[s6; Alternative #include path mechanisms&] +[s5; The nest paths specified in an assembly are normally used to +identify the directory (or directory tree) where packages can +be found and, as explained above, the `"normal`" method of #including +header files is that when the header file name involves an incomplete +path, the given pathname begins with the name of a top`-level +nest folder e.g. #include . CtrlLib is the +name of a top`-level nest folder because it is located in the +uppsrc nest.&] +[s5; Because the paths specified in an assembly are added to the +`"include path list`" for the compiler (using `-I or /I), you +can use this mechanism to add directories to the include path +list, even if those directories don`'t contain any packages. + You need to remember that the search for packages looks in all +sub`-folders of the assembly nest paths and also that you may +need to avoid using folder names that are the names of uppsrc +packages (see the [/ Package`-folder`-names] section above). The +order of the `-I (or /I) directives supplied to the compiler +is the same as the order of the nest paths specified in the assembly +and this determines the search order when the compiler looks +for #include files.&] +[s5; e.g. suppose you have a folder, C:/SomeFolder, that contains +a header file SomeHeader.h. You can add SomeFolder to the assembly +nest path like this&] +[s5; C:/upp/examples;C:/upp/uppsrc;C:/SomeFolder&] +[s3; &] +[s3; In your source files you can now write&] +[s7; #include &] +[s3; or&] +[s7; #include `"SomeHeader.h`"&] +[s5; Angle brackets are preferred because they mean the search begins +in paths specified in `-I directives rather than in the folder +containing the file doing the #include&] +[s5; .Providing the header files in the SomeFolder folder use angle +brackets when #including uppsrc files, it will not matter if +the SomeFolder folder contains directories that have the same +name as uppsrc directories, because C:/SomeFolder is last in the +assembly nest path list.&] +[s5; You can also use the [/ package`-organizer] in TheIDE to specify +additional include paths. The [/ package`-organizer] allows you +to enter additional switches to be passed to the compiler for +all packages, for specific packages or for specific source files. + This allows you to add a `-I switch (or /I) to specify an include +path. These switches get added to the compiler command line +[/ after] the `-I switches for the assembly nest paths. To see +how the compiler is invoked when a source file is compiled, turn +on the [/ verbose] option in the Setup menu in TheIDE. You can +use [* build flags] to restrict the additional compiler switches +to be in effect only when your own package`'s source files are +being compiled. The [/^topic`:`/`/ide`/app`/ConfiguringPackagesAssemblies`$en`-us^ p +ackage`-organizer] also allows you to specify compiler switches +for specific files.&] +[s6; Layout file #includes&] +[s5; A layout file contains a description of the GUI part of a project +i.e. the layout of widgets etc. e.g. the AddressBook example +in the examples assembly uses a layout file and the AddressBook.cpp +file has the following two lines.&] +[s7; #define LAYOUTFILE &] +[s7; #include &] +[s5; The #define for LAYOUTFILE should use angle brackets and not +double quotes and must also include a path specification that +starts with a top level folder of a nest. i.e. it should not +be written as&] +[s7; #define LAYOUTFILE `"AddressBook.lay`"&] +[s5; because the CtrlCore/lay.h file uses it to #include the layout +file (multiple times) with&] +[s7; #include LAYOUTFILE&] [s0;2 ]] \ No newline at end of file diff --git a/uppsrc/ide/app.tpp/Topic$en-us.tpp b/uppsrc/ide/app.tpp/Topic_en-us.tpp similarity index 99% rename from uppsrc/ide/app.tpp/Topic$en-us.tpp rename to uppsrc/ide/app.tpp/Topic_en-us.tpp index c85522341..7cffecca8 100644 --- a/uppsrc/ide/app.tpp/Topic$en-us.tpp +++ b/uppsrc/ide/app.tpp/Topic_en-us.tpp @@ -1,163 +1,163 @@ -topic "Topic++"; -[2 $$0,0#00000000000000000000000000000000:Default] -[l288;i1120;a17;O9;~~~.1408;2 $$1,0#10431211400427159095818037425705:param] -[a83;*R6 $$2,5#31310162474203024125188417583966:caption] -[b83;*4 $$3,5#07864147445237544204411237157677:title] -[i288;O9;C2 $$4,6#40027414424643823182269349404212:item] -[b42;a42;ph2 $$5,5#45413000475342174754091244180557:text] -[l288;b17;a17;2 $$6,6#27521748481378242620020725143825:desc] -[l321;t246;C@5;1 $$7,7#20902679421464641399138805415013:code] -[b2503;2 $$8,0#65142375456100023862071332075487:separator] -[*@(0.0.255)2 $$9,0#83433469410354161042741608181528:base] -[t4167;C2 $$10,0#37138531426314131251341829483380:class] -[l288;a17;*1 $$11,11#70004532496200323422659154056402:requirement] -[i417;b42;a42;O9;~~~.416;2 $$12,12#10566046415157235020018451313112:tparam] -[b167;C2 $$13,13#92430459443460461911108080531343:item1] -[i288;a42;O9;C2 $$14,14#77422149456609303542238260500223:item2] -[*@2$(0.128.128)2 $$15,15#34511555403152284025741354420178:NewsDate] -[l321;*C$7;2 $$16,16#03451589433145915344929335295360:result] -[l321;b83;a83;*C$7;2 $$17,17#07531550463529505371228428965313:result`-line] -[l160;t4167;*C+117 $$18,5#88603949442205825958800053222425:package`-title] -[2 $$19,0#53580023442335529039900623488521:gap] -[t4167;C2 $$20,20#70211524482531209251820423858195:class`-nested] -[b50;2 $$21,21#03324558446220344731010354752573:Par] -[H6;0 $$22,0#05600065144404261032431302351956:begin] -[i448;a25;kKO9;2 $$23,0#37138531426314131252341829483370:codeitem] -[0 $$24,0#96390100711032703541132217272105:end] -[{_}%EN-US -[s2; Topic`+`+&] -[s5; Topic`+`+ is a documentation system designed for U`+`+, but -usable for any project. Its main purpose is to make dealing with -application related documents as easy as possible. It can be -used to provide RichText resources for applications (including -help), to prepare printed manuals and also to document code. -Most documents you have encountered when dealing with U`+`+ were -created and managed using Topic`+`+ (including the website).&] -[s5; Topic`+`+ documents (usually called just `"topics`") are organized -in topic groups that are parts of packages. They are logically -divided in several groups `- some group names are standardized, -`"src`" should contain code`-reference, `"srcdoc`" is for other -code`-related documents, `"app`" are document resources for applications.&] -[s5; U`+`+ library is capable of including topics into target executable -and exploiting them in user code. To see how this can be done, -see `"Topic`" reference example.&] -[s3; Basics&] -[s5; To create a new topic group, right`-click in the lower left -pane of TheIDE, where package files are listed. From context -menu, choose [/ Insert package directory file(s) ]as if you open/create -any other file. To path write the group name with .tpp extension, -e.g. `"app.tpp`". Now press enter or click on [/ Open ]and Topic -editor with new group will appear. Now you have to add some topic -to it. Right click in the topic listing area (see the picture -in next paragraph). In the dialog that comes up you choose a -name for the topic and its language. You can also include a template, -which contains some predefined styles.&] -[s5; The actual process of writing the docs is very similar to writing -anything in common rich text editor. You can add hyperlinks to -any other documentation topic as well as to the Internet. You -can add tables, images, use various fonts and colors or even -define paragraph styles to make the editing really simple. You -can also add code reference, to associate given paragraph with -a piece of code which can then be accessed from the documentation.&] -[s3; Quick description of Topic`+`+ editor&] -[s0; &] -[s0;= -@@PING:2844&1666 -(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) -&] -[s0;= &] -[s5;l352; [* A]-|List of topics in current group.&] -[s5;l352; [* B]-|Topic title. Will be displayed when using document -as resource.&] -[s5;l352; [* C]-|Hyperlink. It can link to other topics or to external -sources (http:// ....).&] -[s5;l352; [* D]-|Code reference. Connects actual paragraph with some -source code element.&] -[s5;l352; [* E]-|Topic text.&] -[s0;3 &] -[s3; Using Topic`+`+ to create code reference&] -[s5; Topic`+`+ is directly connected with [^topic`:`/`/ide`/app`/Assist`$en`-us^ Assist -`+`+] system to create and provide documentation of code elements. -Each paragraph of topic can be connected with one code element -using the paragraph label (F in Topic`+`+ window description). -This label contains unique code element signature `- this way -the paragraph can be connect with unambiguous code element.&] -[s5; There are two ways how to document a code element. Either directly -from code editor or from Topic`+`+ editor.&] -[s5; &] -[s0;= -@@PING:2404&875 -(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) -&] -[s5; &] -[s5; To add a documentation of code directly just click the green -square in the left gutter. If the document is not documented, -context menu will appear and let you select which topic group -should be used or create a new one. Upon clicking on one of the -option, the Topic`+`+ editor will open at the newly added skeleton -paragraph, which you can then edit to your liking.&] -[s5; To document one or more code elements from Topic`+`+ editor, -press -@@image:99&99/25 -(AxAAEAAAAPD/AAAAAHic+/+fHoCBAUESoxgZDTnzMfS2YEM4zQLKYjWBJPVYxdFk4cYis4kxnxhxNP+SbQ5WcVwIq3r8AACrn3da) - icon. Topic`+`+ will bring the code browser dialog:&] -[s5; &] -[s0;= -@@PING:2950&1378 -(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) -&] -[s5; &] -[s5; Use the search fields to find the code elements you are interested -in. Select elements you want to document by clicking on them -(you can select more than one using Shift key) and press `"OK`":&] -[s5; &] -[s0;= -@@PING:2515&704 -(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) -&] -[s5; &] -[s5; As in the previous method, Topic`+`+ inserts skeletons for documenting -chosen code elements and binds them to the code via paragraph -labels. All you have to do now is to fill in the description -of elements and parameters.&] -[s5; To see the referenced piece of code click on the red -@@image:99&99/25 -(BBAAEAAAAAAAAAAAAHiczZFBCsAwCAR9uk/zZy0rIaR2E8VD6YKQgzNZUOS3ucKUoqq+P4N30QM2cnGGf9t5ZbHrzoU/dHiwZjb33ANfxtc67ruTvzs8648k/akDQ+5Y4hv3k+F/cZL/TT0N7tPc+Y6yqA==) - icon or press Alt`+I. It work the other way around as well, -from code editor you can access the docs by clicking on the -@@image:77&99/25 -(BAwAEAAAAAAAAAAAAHicY2AYFmAVEP/HglfhUP9fr7b2dMqMGaftW1tPC+TlnWZOTz8N1YNVPUjt5gMHTufOnXtaB6iXIysLr3qHtjawWp/e3tPqlZWnOQmoFwS6QR9ormZ19WnJoqLTbJmZeNWzZmScBukRys8/zZ2TQ9D9DGlpYDUgzARSC+TjUU9qeA5ZAAC591FY) - little green squares an the left gutter at code editor, or you -can just display a tool tip with the related paragraph by hovering -mouse cursor over the green square.&] -[s5; In order to detect problems with documentation, you can use -two tools. Query in code browser dialog can be setup to display -undocumented elements. `"Find broken references`" operation `- - -@@image:99&99/25 -(AxAAEAAAAPD/AAAAAHicnZABCgAhCAR9ej+vIPKGcveOWyRSx0Xs/VFslemt1SLPtOS/+6cblRXPq8pv/6N78xwpSTOifMzduFKLYBg+4Znl2/TdFj+/jJI/lvH+lPJXUv6vI7wPNQDcBKP5) - or Ctrl`+F3 `- searches through current group topic and detects -any broken code references in paragraph labels.&] -[s3; Export&] -[s5; Aside from using the documentation directly inside your applications, -it is also possible to export the documentation to HTML or Pdf -files. To do so, just open the topic in editor and select one -of the options in Edit menu:&] -[s5; &] -[s0;= -@@PING:3333&1458 -(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) -&] -[s3; Technical background&] -[s5; [/ This paragraph is aimed at curious readers, who are interested -in the inner machinery behind Topic`+`+. Feel free to skip it -if you want.]&] -[s5; Each topic group is represented on hard drive as a directory, -e.g. (uppsrc/Core/srcdoc.tpp/) which contains one `*.tpp file -for every topic. All `*.tpp files are internally just a text -file in [^topic`:`/`/RichText`/srcdoc`/QTF`$en`-us^ QTF] format -(U`+`+ specific rich formatted text format). TheIDE also creates -`"inclusion file`" with .tppi extension for each topic and all.i -file for each group. These files are useful for easy embedding -the documentation into application (See the above mentioned `"Topic`" +topic "Topic++"; +[2 $$0,0#00000000000000000000000000000000:Default] +[l288;i1120;a17;O9;~~~.1408;2 $$1,0#10431211400427159095818037425705:param] +[a83;*R6 $$2,5#31310162474203024125188417583966:caption] +[b83;*4 $$3,5#07864147445237544204411237157677:title] +[i288;O9;C2 $$4,6#40027414424643823182269349404212:item] +[b42;a42;ph2 $$5,5#45413000475342174754091244180557:text] +[l288;b17;a17;2 $$6,6#27521748481378242620020725143825:desc] +[l321;t246;C@5;1 $$7,7#20902679421464641399138805415013:code] +[b2503;2 $$8,0#65142375456100023862071332075487:separator] +[*@(0.0.255)2 $$9,0#83433469410354161042741608181528:base] +[t4167;C2 $$10,0#37138531426314131251341829483380:class] +[l288;a17;*1 $$11,11#70004532496200323422659154056402:requirement] +[i417;b42;a42;O9;~~~.416;2 $$12,12#10566046415157235020018451313112:tparam] +[b167;C2 $$13,13#92430459443460461911108080531343:item1] +[i288;a42;O9;C2 $$14,14#77422149456609303542238260500223:item2] +[*@2$(0.128.128)2 $$15,15#34511555403152284025741354420178:NewsDate] +[l321;*C$7;2 $$16,16#03451589433145915344929335295360:result] +[l321;b83;a83;*C$7;2 $$17,17#07531550463529505371228428965313:result`-line] +[l160;t4167;*C+117 $$18,5#88603949442205825958800053222425:package`-title] +[2 $$19,0#53580023442335529039900623488521:gap] +[t4167;C2 $$20,20#70211524482531209251820423858195:class`-nested] +[b50;2 $$21,21#03324558446220344731010354752573:Par] +[H6;0 $$22,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$23,0#37138531426314131252341829483370:codeitem] +[0 $$24,0#96390100711032703541132217272105:end] +[{_}%EN-US +[s2; Topic`+`+&] +[s5; Topic`+`+ is a documentation system designed for U`+`+, but +usable for any project. Its main purpose is to make dealing with +application related documents as easy as possible. It can be +used to provide RichText resources for applications (including +help), to prepare printed manuals and also to document code. +Most documents you have encountered when dealing with U`+`+ were +created and managed using Topic`+`+ (including the website).&] +[s5; Topic`+`+ documents (usually called just `"topics`") are organized +in topic groups that are parts of packages. They are logically +divided in several groups `- some group names are standardized, +`"src`" should contain code`-reference, `"srcdoc`" is for other +code`-related documents, `"app`" are document resources for applications.&] +[s5; U`+`+ library is capable of including topics into target executable +and exploiting them in user code. To see how this can be done, +see `"Topic`" reference example.&] +[s3; Basics&] +[s5; To create a new topic group, right`-click in the lower left +pane of TheIDE, where package files are listed. From context +menu, choose [/ Insert package directory file(s) ]as if you open/create +any other file. To path write the group name with .tpp extension, +e.g. `"app.tpp`". Now press enter or click on [/ Open ]and Topic +editor with new group will appear. Now you have to add some topic +to it. Right click in the topic listing area (see the picture +in next paragraph). In the dialog that comes up you choose a +name for the topic and its language. You can also include a template, +which contains some predefined styles.&] +[s5; The actual process of writing the docs is very similar to writing +anything in common rich text editor. You can add hyperlinks to +any other documentation topic as well as to the Internet. You +can add tables, images, use various fonts and colors or even +define paragraph styles to make the editing really simple. You +can also add code reference, to associate given paragraph with +a piece of code which can then be accessed from the documentation.&] +[s3; Quick description of Topic`+`+ editor&] +[s0; &] +[s0;= +@@PING:2844&1666 +(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) +&] +[s0;= &] +[s5;l352; [* A]-|List of topics in current group.&] +[s5;l352; [* B]-|Topic title. Will be displayed when using document +as resource.&] +[s5;l352; [* C]-|Hyperlink. It can link to other topics or to external +sources (http:// ....).&] +[s5;l352; [* D]-|Code reference. Connects actual paragraph with some +source code element.&] +[s5;l352; [* E]-|Topic text.&] +[s0;3 &] +[s3; Using Topic`+`+ to create code reference&] +[s5; Topic`+`+ is directly connected with [^topic`:`/`/ide`/app`/Assist`$en`-us^ Assist +`+`+] system to create and provide documentation of code elements. +Each paragraph of topic can be connected with one code element +using the paragraph label (F in Topic`+`+ window description). +This label contains unique code element signature `- this way +the paragraph can be connect with unambiguous code element.&] +[s5; There are two ways how to document a code element. Either directly +from code editor or from Topic`+`+ editor.&] +[s5; &] +[s0;= +@@PING:2404&875 +(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) +&] +[s5; &] +[s5; To add a documentation of code directly just click the green +square in the left gutter. If the document is not documented, +context menu will appear and let you select which topic group +should be used or create a new one. Upon clicking on one of the +option, the Topic`+`+ editor will open at the newly added skeleton +paragraph, which you can then edit to your liking.&] +[s5; To document one or more code elements from Topic`+`+ editor, +press +@@image:99&99/25 +(AxAAEAAAAPD/AAAAAHic+/+fHoCBAUESoxgZDTnzMfS2YEM4zQLKYjWBJPVYxdFk4cYis4kxnxhxNP+SbQ5WcVwIq3r8AACrn3da) + icon. Topic`+`+ will bring the code browser dialog:&] +[s5; &] +[s0;= +@@PING:2950&1378 +(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) +&] +[s5; &] +[s5; Use the search fields to find the code elements you are interested +in. Select elements you want to document by clicking on them +(you can select more than one using Shift key) and press `"OK`":&] +[s5; &] +[s0;= +@@PING:2515&704 +(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) +&] +[s5; &] +[s5; As in the previous method, Topic`+`+ inserts skeletons for documenting +chosen code elements and binds them to the code via paragraph +labels. All you have to do now is to fill in the description +of elements and parameters.&] +[s5; To see the referenced piece of code click on the red +@@image:99&99/25 +(BBAAEAAAAAAAAAAAAHiczZFBCsAwCAR9uk/zZy0rIaR2E8VD6YKQgzNZUOS3ucKUoqq+P4N30QM2cnGGf9t5ZbHrzoU/dHiwZjb33ANfxtc67ruTvzs8648k/akDQ+5Y4hv3k+F/cZL/TT0N7tPc+Y6yqA==) + icon or press Alt`+I. It work the other way around as well, +from code editor you can access the docs by clicking on the +@@image:77&99/25 +(BAwAEAAAAAAAAAAAAHicY2AYFmAVEP/HglfhUP9fr7b2dMqMGaftW1tPC+TlnWZOTz8N1YNVPUjt5gMHTufOnXtaB6iXIysLr3qHtjawWp/e3tPqlZWnOQmoFwS6QR9ormZ19WnJoqLTbJmZeNWzZmScBukRys8/zZ2TQ9D9DGlpYDUgzARSC+TjUU9qeA5ZAAC591FY) + little green squares an the left gutter at code editor, or you +can just display a tool tip with the related paragraph by hovering +mouse cursor over the green square.&] +[s5; In order to detect problems with documentation, you can use +two tools. Query in code browser dialog can be setup to display +undocumented elements. `"Find broken references`" operation `- + +@@image:99&99/25 +(AxAAEAAAAPD/AAAAAHicnZABCgAhCAR9ej+vIPKGcveOWyRSx0Xs/VFslemt1SLPtOS/+6cblRXPq8pv/6N78xwpSTOifMzduFKLYBg+4Znl2/TdFj+/jJI/lvH+lPJXUv6vI7wPNQDcBKP5) + or Ctrl`+F3 `- searches through current group topic and detects +any broken code references in paragraph labels.&] +[s3; Export&] +[s5; Aside from using the documentation directly inside your applications, +it is also possible to export the documentation to HTML or Pdf +files. To do so, just open the topic in editor and select one +of the options in Edit menu:&] +[s5; &] +[s0;= +@@PING:3333&1458 +(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) +&] +[s3; Technical background&] +[s5; [/ This paragraph is aimed at curious readers, who are interested +in the inner machinery behind Topic`+`+. Feel free to skip it +if you want.]&] +[s5; Each topic group is represented on hard drive as a directory, +e.g. (uppsrc/Core/srcdoc.tpp/) which contains one `*.tpp file +for every topic. All `*.tpp files are internally just a text +file in [^topic`:`/`/RichText`/srcdoc`/QTF`$en`-us^ QTF] format +(U`+`+ specific rich formatted text format). TheIDE also creates +`"inclusion file`" with .tppi extension for each topic and all.i +file for each group. These files are useful for easy embedding +the documentation into application (See the above mentioned `"Topic`" reference package). ]] \ No newline at end of file diff --git a/uppsrc/ide/app.tpp/cmdline$en-us.tpp b/uppsrc/ide/app.tpp/cmdline_en-us.tpp similarity index 98% rename from uppsrc/ide/app.tpp/cmdline$en-us.tpp rename to uppsrc/ide/app.tpp/cmdline_en-us.tpp index 1e9b36891..6b76e3f5d 100644 --- a/uppsrc/ide/app.tpp/cmdline$en-us.tpp +++ b/uppsrc/ide/app.tpp/cmdline_en-us.tpp @@ -1,29 +1,29 @@ -topic "TheIDE command-line & umk"; -[2 $$0,0#00000000000000000000000000000000:Default] -[l288;i1120;a17;O9;~~~.1408;2 $$1,0#10431211400427159095818037425705:param] -[a83;*R6 $$2,5#31310162474203024125188417583966:caption] -[b83;*4 $$3,5#07864147445237544204411237157677:title] -[i288;O9;C2 $$4,6#40027414424643823182269349404212:item] -[b42;a42;2 $$5,5#45413000475342174754091244180557:text] -[l288;b17;a17;2 $$6,6#27521748481378242620020725143825:desc] -[l321;t246;C@5;1 $$7,7#20902679421464641399138805415013:code] -[b2503;2 $$8,0#65142375456100023862071332075487:separator] -[*@(0.0.255)2 $$9,0#83433469410354161042741608181528:base] -[t4167;C2 $$10,0#37138531426314131251341829483380:class] -[l288;a17;*1 $$11,11#70004532496200323422659154056402:requirement] -[i417;b42;a42;O9;~~~.416;2 $$12,12#10566046415157235020018451313112:tparam] -[b167;C2 $$13,13#92430459443460461911108080531343:item1] -[i288;a42;O9;C2 $$14,14#77422149456609303542238260500223:item2] -[*@2$(0.128.128)2 $$15,15#34511555403152284025741354420178:NewsDate] -[l321;*C$7;2 $$16,16#03451589433145915344929335295360:result] -[l321;b83;a83;*C$7;2 $$17,17#07531550463529505371228428965313:result`-line] -[l160;t4167;*C+117 $$18,5#88603949442205825958800053222425:package`-title] -[2 $$19,0#53580023442335529039900623488521:gap] -[t4167;C2 $$20,20#70211524482531209251820423858195:class`-nested] -[b50;2 $$21,21#03324558446220344731010354752573:Par] -[{_}%EN-US -[s2; [+184 TheIDE command`-line]&] -[s0; [3 TheIDE can specify assembly and package in command`-line]&] -[s0;3 &] -[s0; [*C3 theide ][*C@4;3 assembly][*C@5;3 ][*C@4;3 package]&] +topic "TheIDE command-line & umk"; +[2 $$0,0#00000000000000000000000000000000:Default] +[l288;i1120;a17;O9;~~~.1408;2 $$1,0#10431211400427159095818037425705:param] +[a83;*R6 $$2,5#31310162474203024125188417583966:caption] +[b83;*4 $$3,5#07864147445237544204411237157677:title] +[i288;O9;C2 $$4,6#40027414424643823182269349404212:item] +[b42;a42;2 $$5,5#45413000475342174754091244180557:text] +[l288;b17;a17;2 $$6,6#27521748481378242620020725143825:desc] +[l321;t246;C@5;1 $$7,7#20902679421464641399138805415013:code] +[b2503;2 $$8,0#65142375456100023862071332075487:separator] +[*@(0.0.255)2 $$9,0#83433469410354161042741608181528:base] +[t4167;C2 $$10,0#37138531426314131251341829483380:class] +[l288;a17;*1 $$11,11#70004532496200323422659154056402:requirement] +[i417;b42;a42;O9;~~~.416;2 $$12,12#10566046415157235020018451313112:tparam] +[b167;C2 $$13,13#92430459443460461911108080531343:item1] +[i288;a42;O9;C2 $$14,14#77422149456609303542238260500223:item2] +[*@2$(0.128.128)2 $$15,15#34511555403152284025741354420178:NewsDate] +[l321;*C$7;2 $$16,16#03451589433145915344929335295360:result] +[l321;b83;a83;*C$7;2 $$17,17#07531550463529505371228428965313:result`-line] +[l160;t4167;*C+117 $$18,5#88603949442205825958800053222425:package`-title] +[2 $$19,0#53580023442335529039900623488521:gap] +[t4167;C2 $$20,20#70211524482531209251820423858195:class`-nested] +[b50;2 $$21,21#03324558446220344731010354752573:Par] +[{_}%EN-US +[s2; [+184 TheIDE command`-line]&] +[s0; [3 TheIDE can specify assembly and package in command`-line]&] +[s0;3 &] +[s0; [*C3 theide ][*C@4;3 assembly][*C@5;3 ][*C@4;3 package]&] [s0; ]] \ No newline at end of file diff --git a/uppsrc/ide/app.tpp/esc$en-us.tpp b/uppsrc/ide/app.tpp/esc_en-us.tpp similarity index 97% rename from uppsrc/ide/app.tpp/esc$en-us.tpp rename to uppsrc/ide/app.tpp/esc_en-us.tpp index 424ec4e0c..6bd333b54 100644 --- a/uppsrc/ide/app.tpp/esc$en-us.tpp +++ b/uppsrc/ide/app.tpp/esc_en-us.tpp @@ -1,519 +1,519 @@ -topic "Esc scripting language"; -[ $$0,0#00000000000000000000000000000000:Default] -[b83;*+150 $$1,0#07864147445237544204411237157677:title] -[b133;a83;*+117 $$2,0#31310162474203024125188417583966:subtitle] -[l321;t246;C@5;1 $$3,3#20902679421464641399138805415013:code] -[{_}%EN-US -[s0; [*R8 Esc scripting language]&] -[s0; &] -[s0; Esc is simple scripting language intended for embedding in Ultimate`+`+ -applications.&] -[s0; &] -[s0; It is typeless, value oriented language with simple interfacing -with C`+`+/U`+`+ code. It is very simple yet quite complete language.&] -[s0; &] -[s1; Value types&] -[s2; voids&] -[s0; All variables have void value before assigned any other value. -Void type has single value&] -[s0; &] -[s3; void&] -[s0; &] -[s0; and expression can be tested for voidness using [@(128.0.255) is`_void] -function.&] -[s2; numbers&] -[s0; Number is floating point number (corresponding to C type double). -Examples of number literals:&] -[s0; &] -[s3; 1&] -[s3; 1.123&] -[s3; 1.123e`-96&] -[s3; 0x123-|-|[@4 // hexadecimal]&] -[s3; 0123 -|-|[@4 // octal]&] -[s3; 0b10100100-|-|[@4 // binary]&] -[s3; `'x`'-|-|-|[@4 // character code]&] -[s0; &] -[s0; Esc supports common C`-like operations for number values.&] -[s2; arrays&] -[s0; Arrays are ordered random access sequences of other Esc values -(nested arrays included). Array values are specified using [@(128.0.255) `[`]] -brackets:&] -[s0; &] -[s3; `[`]-|-|-|-|[@4 // empty array]&] -[s3; `[ 1, 2, 3, 4, 5 `]&] -[s3; `[ 1, `[2, 3`], 4 `]-|-|[@4 // array contains nested array]&] -[s3; `"Hello`"-|-|-|[@4 // equivalent to `[`'H`', `'e`', `'l`', `'l`', -`'o`'`]]&] -[s3; `[ 1, 2, 3 `* alfa `]-|[@4 // expressions can be used as well]&] -[s0; &] -[s0; Number of elements in the array can be retrieved by standard -function count.&] -[s0; &] -[s0; Accessing elements of arrays is provided by subscript [@(128.0.255) `[ -`]] operator:&] -[s0; &] -[s3; a`[0`]&] -[s3; a`[1`] `= 3&] -[s0; &] -[s0; First element of array corresponds to index [@(128.0.255) `[0`]].&] -[s0; &] -[s0; Negative indexes are allowed and designate elements from the -end of array: [@(128.0.255) `[`-1`]] is last element of array, [@(128.0.255) `[`-2`]] -last but one etc.&] -[s0; &] -[s3; a`[`-1`]&] -[s0; &] -[s0; is equivalent to&] -[s0; &] -[s3; a`[count(a) `- 1`]&] -[s0; &] -[s0; When index is used for the r`-value (standing on the right side -of [@(128.0.255) `=]), index is range checked. For l`-value, if -non`-negative index designates element past the of the array, -array is expanded with void values to create this element.&] -[s0; &] -[s0; `"Empty`" index [@(128.0.255) `[`]] designates element past last -and can be used to add elements to the array:&] -[s0; &] -[s3; x`[`] `= item&] -[s0; &] -[s0; is equivalent to&] -[s0; &] -[s3; x`[count(x)`] `= item&] -[s0; &] -[s0; Range of element in array can be obtained or changed using slices:&] -[s0; &] -[s3; array`[pos, count`]&] -[s0; &] -[s0; designates array slice of [/ count] elements starting with [/ pos] -element.&] -[s0; &] -[s3; x`[start:end`]&] -[s0; &] -[s0; designates array slice of [/ end `- start] elements starting with -[/ start] .&] -[s0; &] -[s0; Parts of slices can be ommited&] -[s0; &] -[s3; array`[pos,`]&] -[s0; or&] -[s3; array`[pos:`]&] -[s0; &] -[s0; is equivalent to&] -[s0; &] -[s3; array`[pos : count(array)`]&] -[s0; &] -[s0; and&] -[s0; &] -[s3; array`[,count`]&] -[s0; or&] -[s3; array`[:count`]&] -[s0; &] -[s0; is equivalent to&] -[s0; &] -[s3; array`[0, count`]&] -[s0; &] -[s0; When slices are used as l`-value, corresponding part of the -array is replaced:&] -[s0; &] -[s3; s `= `"1234`";&] -[s3; s`[1: `-1`] `= `"xXx`";-|[@4 // s is now `"1xXx4`"]&] -[s0; &] -[s0; Several operators can be applied to arrays&] -[s0; &] -[s3; array1 `+ array2&] -[s0; &] -[s0; concatenates two arrays,&] -[s0; &] -[s3; array `* number&] -[s3; number `* array&] -[s0; &] -[s0; repeats array number times.&] -[s0; &] -[s3; array `+`= array1&] -[s0; &] -[s0; is equivalent to&] -[s0; &] -[s3; array `= array `+ array1&] -[s0; &] -[s0; also&] -[s0; &] -[s3; array << array1 << array2 << array3&] -[s0; &] -[s0; is equivalent to&] -[s0; &] -[s3; array `= array `+ array1 `+ array2 `+ array3&] -[s0; &] -[s0; Esc allows [/ void] value on the right side of array concatenation -expression `- in such cases, operator has no effect.&] -[s2; maps&] -[s0; Maps contain key`-value pairs as entries. Normal subscripts -[@(128.0.255) `[`]] are used to access map entries:&] -[s0; &] -[s3; map`[key`] `= value&] -[s0; &] -[s0; All entries in map that are not assigned particular non`-void -value have void value. This way assigning void to the map key -can be considered as removing entry from the map&] -[s0; &] -[s3; map`[key`] `= void&] -[s0; &] -[s0; and testing entry for being void can be considered as test -of key presence in map:&] -[s0;C &] -[s3; if(is`_void(map`[key`])) `{ ... `}&] -[s0; &] -[s0; As the special exception, when a void value appears before an -l`-value [@(128.0.255) `[`]], it is changed to the empty map:&] -[s0; &] -[s3; x `= void; // x is void&] -[s3; x`[key`] `= value; // x is now map&] -[s0; &] -[s0; Maps are also used to create compound data structures. To make -this job easier, special [/ .field] syntax is supported:&] -[s0; &] -[s3; x.field `= value;&] -[s0; &] -[s0; is equivalent to&] -[s0; &] -[s3; x`[`"field`"`] `= value;&] -[s0; &] -[s0; Map values can also be specified using `{`} braces:&] -[s0; &] -[s3; `{`} // empty map&] -[s3; `{ `"alfa`":10, `"beta`":20, 20:`"40`" `}&] -[s3; `{ 2 `* a : `"100`" `} // map values can contain expressions&] -[s2; lambdas&] -[s0; Lambdas represent executable Esc code. Lambda values are introduced -using [@(128.0.255) `@] character:&] -[s0; &] -[s3; `@(x) `{ return 2 `* x; `}&] -[s0; &] -[s0; Assigning lambda value to variable is equivalent to defining -a function:&] -[s0; &] -[s3; :foo `= `@(x) `{ return 2 `* x; `};-|[@4 // defines global function -foo]&] -[s0; &] -[s0; If lambda argument is preceded with [@(128.0.255) `&] character, -it designates input`-output argument (other arguments are input -only).&] -[s0; &] -[s0; [*@(128.0.255) ... ]at the end of the argument list allows variable -number of arguments to be present. In that case, additional parameters -are passed in [/ argv] variable of type array.&] -[s0; &] -[s3; :sum `= `@(...) `{ s `= 0; for(i in argv) s `+`= argv`[i`]; `}&] -[s0; &] -[s0; Parameters can have default values separated by [@(128.0.255) `=]:&] -[s0; &] -[s3; :bar `= `@(x `= 0) `{ ... `}&] -[s0; &] -[s0; To make life easier, alternative form of function definition -is available:&] -[s0; &] -[s3; #:foo(x) `{ return 2 `* x; `}&] -[s1;i150;O9; Variables and contexts&] -[s0; &] -[s0; Variable names in Esc follow C principles (are case sensitive, -start with alphabetic character or [@(128.0.255) `_] and can contain -alphabetic characters, [@(128.0.255) `_] and numbers).&] -[s0; &] -[s0; Esc distinguishes three types of variables contexts using [*@(128.0.255) .] -and [*@(128.0.255) :] characters:&] -[s0; &] -[s3; var-|-|[@4 // local]&] -[s3; .var-|-|[@4 // instance]&] -[s3; :var-|-|[@4 // global]&] -[s0; &] -[s0; Local variables are specific to function, global variables are -shared among all functions. Instance variables &] -[s0; represent map values (keys designate variable names) of map -whose lambda value is invoked, or can be forced using binary -[@(128.0.255) !] bind operator:&] -[s0; &] -[s3; var.x `= 0;&] -[s3; var.Next `= `@() `{ .x`+`+; `};&] -[s3; var.Next();-|-|-|[@4 // var.x is now 1 ]&] -[s3; var1.x `= 0;&] -[s3; var.Next()! var1;-|-|[@4 // var1.x is now 1]&] -[s0; &] -[s0; To make programmer`'s life easier, one exception applies concerning -context `- when invoking lambda from local variable and lambda -is not present in it, instance and global contexts (in this order) -are tried as well:&] -[s0; &] -[s3; beta(x)&] -[s3; &] -[s0; Tries to get lambda form local [/ beta] variable first, then (if -no lambda found) from instance [/ beta ]variable and finally (if -still no lambda) from global [/ beta]. Of course, [*@(128.0.255) .] -and [*@(128.0.255) :] can still be used to designate context:&] -[s0; &] -[s3; :beta(x)-|-|-|-|[@4 // calls global beta even if local or instance -beta is present]&] -[s0; &] -[s1; Expressions&] -[s0; &] -[s0; When expressions are used as logical values, void, zero number -and map or array with zero elements represent [/ false], other -values are [/ true.]&] -[s0;/ &] -[s0; In following table, thick lines divide operators with the same -priority, with topmost items having the highest priority:&] -[s0; &] -[ {{4468:5532h1;@(216) [s0; Operator] -:: [s0; Comments] -::^@2 [s0; [/C map][*C `[][/C key][*C `]]] -:: [s0; Map value at [/ key].] -:: [s0; [/C map][*C .][/C field]] -:: [s0; Same as [/ map]`[`"[/ field]`"`].] -:: [s0; [/C array][*C `[][/C index][*C `]]] -:: [s0; Array element at position [/ index].] -:: [s0; [/C array][*C `[][/C start][*C , ][/C count][*C `]]] -:: [s0; Array slice starting at [/ start] of [/ count] elements.] -:: [s0; [/C array][*C `[][/C start][*C :][/C end][*C `]]] -:: [s0; Array slice of elements [/ start .. end] `- 1] -:: [s0; [/C array][*C `[,][/C count][*C `]]&] -[s0; [/C array][*C `[:][/C count][*C `]]] -:: [s0; Same as [/ array]`[0, [/ count]`].&] -[s0; ] -:: [s0; [/C array][*C `[][/C start][*C :`]]&] -[s0; [/C array][*C `[][/C start][*C ,`]]] -:: [s0; Same as [/ array]`[[/ start] : count(array)`]. ] -:: [s0; [/C lambda][*C (][/C args][*C )]] -:: [s0; Invokes [/ lambda] with the set of [/ args]. If lambda is subscript -of the map, map becomes instance for [/ lambda] execution (accessible -via [* .][/ name] or [* self]).] -:: [s0; [/C lambda][*C (][/C args][*C ) ! ][/C instance]] -:: [s0; Invokes [/ lambda], using[/ instance] as instance for lambda execution -(accessible via [* .][/ name] or [* self]).] -:: [s0; [*C self]] -:: [s0; Instance.] -::t33/15 [s0; [*C `+`+][/C l`-number]&] -[s0; [*C `-`-][/C l`-number]] -:: [s0; Increments/decrements number l`-value.] -::t0/15 [s0; [*C `-][/C number]] -:: [s0; Unary minus.] -:: [s0; [*C `~][/C number]] -:: [s0; Bit`-wise complement.] -:: [s0; [*C !][/C value]] -:: [s0; Logical not. 1 when value represents false, 0 otherwise.] -:: [s0; [/C l`-number][*C `-`-]&] -[s0; [/C l`-number][*C `+`+]] -:: [s0; Post`-increment / post`-decrement of number l`-value.] -::t33/15 [s0; [/C array][*C `* ][/C number]&] -[s0; [/C number][*C `* ][/C array]] -:: [s0; Returns [/ array][*/ ]repeated [/ number] times.] -::t0/15 [s0; [/C number][*C `* ][/C number]] -:: [s0; Multiplication.] -:: [s0; [/C number][*C / ][/C number]] -:: [s0; Division.] -:: [s0; [/C number][*C % ][/C number]] -:: [s0; Modulo.] -::t33/15 [s0; [/C array][*C `+ ][/C array]] -:: [s0; Concatenates [/ array]s.] -::t0/15 [s0; [/C number][*C `+ ][/C number]] -:: [s0; Addition.] -:: [s0; [/C number][*C `- ][/C number]] -:: [s0; Subtraction.] -::t33/15 [s0; [/C l`-array][*C << ][/C array]] -:: [s0; Concatenates [/ array ]to [/ l`-array], yielding [/ l`-array ]as l`-value -result.] -::t0/15 [s0; [/C number][*C << ][/C number]] -:: [s0; Shift left.] -:: [s0; [/C number][*C >> ][/C number]] -:: [s0; Shift right.] -::t33/15 [s0; [/C number][*C < ][/C number]&] -[s0; [/C number][*C > ][/C number]&] -[s0; [/C number][*C <`= ][/C number]&] -[s0; [/C number][*C >`= ][/C number]] -:: [s0; Comparison of [/ number]s.] -::t0/15 [s0; [/C array][*C < ][/C array]&] -[s0; [/C array][*C > ][/C array]&] -[s0; [/C array][*C <`= ][/C array]&] -[s0; [/C array][*C >`= ][/C array]] -:: [s0; Comparison of [/ array]s.] -::t33/15 [s0; [/C value][*C `=`= ][/C value]] -:: [s0; Equality.] -::t0/15 [s0; [/C value][*C !`= ][/C value]] -:: [s0; Inequality.] -::t33/15 [s0; [/C number][*C `& ][/C number]] -:: [s0; Binary and.] -:: [s0; [/C number][*C `^ ][/C number]] -:: [s0; Binary xor.] -:: [s0; [/C number][*C `| ][/C number]] -:: [s0; Binary or.] -:: [s0; [/C value][*C `&`& ][/C value]] -:: [s0; Logical and. If first value is false, second value is not evaluated, -just skipped.] -:: [s0; [/C value][*C `|`| ][/C value]] -:: [s0; Logical or. If first value is true, second value is not evaluated, -just skipped.] -:: [s0; [/C value ][*C ?][/C value ][*C :][/C value]] -:: [s0; Conditional expression. Only necessary expressions are evaluated.] -:: [s0; [/C l`-value][*C `= ][/C value]] -:: [s0; Assignment.] -::t0/15 [s0; [/C l`-array][*C `+`= ][/C array]] -:: [s0; Same as [C l`-array `= l`-array `+ array].] -:: [s0; [/C l`-number][*C `+`= ][/C number]] -:: [s0; Same as [C l`-number `= l`-number `+ number].] -:: [s0; [/C l`-number][*C `-`= ][/C number]] -:: [s0; Same as [C l`-number `= l`-number `- number].] -:: [s0; [/C l`-number][*C `*`= ][/C number]] -:: [s0; Same as [C l`-number `= l`-number `* number].] -:: [s0; [/C l`-number][*C /`= ][/C number]] -:: [s0; Same as [C l`-number `= l`-number / number].] -:: [s0; [/C l`-number][*C %`= ][/C number]] -:: [s0; Same as [C l`-number `= l`-number % number].]}}&] -[s0; &] -[s0; &] -[s1; Statements&] -[s0; &] -[ {{4508:5492h1;@(216) [s0; Statement] -:: [s0; Comments] -::^@2 [s0; [*C ;]] -:: [s0; Empty statement.] -:: [s0; [/C expression][*C ;]] -:: [s0; Expression. It gets evaluated.] -:: [s0; [*C `{ ][/C statement][*C ; ... `}]] -:: [s0; Compound statement.] -:: [s0; [*C if(][/C condition][*C ) ][/C statement]] -:: [s0; Conditional statement.] -:: [s0; [*C if(][/C condition][*C ) ][/C statement]&] -[s0; [*C else ][/C statement]] -:: [s0; Conditional statement with ] -:: [s0; [*C while(][/C condition][*C ) ][/C statement]] -:: [s0; Loop. Statement is performed as long as the [/ condition] is true.] -:: [s0; [*C do ][/C statement]&] -[s0; [*C while(][/C condition][*C )]] -:: [s0; Loop. Statement is performed once and then is repeated as long -as the [/ condition] is true.] -:: [s0; [*C for(][/C init][*C , ][/C condition][*C , ][/C increment][*C )]&] -[s0; [*C -|][/C statement]] -:: [s0; Same as&] -[s0; [/C init][C ;]&] -[s0; [C while(][/C condition][C ) `{]&] -[s0; [C -|][/C statement][C ;]&] -[s0; [C -|][/C increment][C ;]&] -[s0; [C `}]] -:: [s0; [*C for(][/C l`-value][*C in ][/C array][*C )]&] -[s0; [*C -|][/C statement]] -:: [s0; Same as&] -[s0; [C for(][/C l`-value][C `= 0; ][/C l`-value][C < count(][/C array][C );]&] -[s0; [C ][/C l`-value][C `+`+)]&] -[s0; [C -|][/C statement]&] -[s0; ] -:: [s0; [*C for(][/C l`-value][*C in ][/C map][*C )]&] -[s0; [*C -|][/C statement]] -:: [s0; Iterates through [/ map], assigning keys of elements with non`-void -value to the [/ l`-value].] -:: [s0; [*C break;]] -:: [s0; Causes exit from innermost loop or switch statement.] -:: [s0; [*C switch(][/C value][*C ) ][/C statement]] -:: [s0; Matches [/ value] to all case statements inside the [/ statement], -continues at the case with the same value, or with default if -no such case exists and default is present. If neither matching -case and default exists, does nothing.] -:: [s0; [*C case ][/C value][*C :]] -:: [s0; Switch case.] -:: [s0; [*C default:]] -:: [s0; Default switch case.] -:: [s0; [*C #][/C name][*C (][/C args][*C ) `{ ... `}]] -:: [s0; Same as [/C name][C `= `@(][/C args][C ) `{ ... `};]] -:: [s0; [*C #.][/C name][*C (][/C args][*C ) `{ ... `}]] -:: [s0; Same as [C .][/C name][C `= `@(][/C args][C ) `{ ... `};]] -:: [s0; [*C #:][/C name][*C (][/C args][*C ) `{ ... `}]] -:: [s0; Same as [C :][/C name][C `= `@(][/C args][C ) `{ ... `};]]}}&] -[s0; &] -[s1; [3 Standard library]&] -[s0; &] -[ {{3528:6472h1;@(216) [s0; Function] -:: [s0; Comments] -::^@2 [s0; [*C is`_number(][/C x][*C )]] -:: [s0; Returns 1 if [/ x] is a number, 0 otherwise.] -:: [s0; [*C is`_array(][/C x][*C )]] -:: [s0; Returns 1 if [/ x] is a array, 0 otherwise.] -:: [s0; [*C is`_map(][/C x][*C )]] -:: [s0; Returns 1 if [/ x] is a map, 0 otherwise.] -:: [s0; [*C is`_void(][/C x][*C )]] -:: [s0; Returns 1 if [/ x] is void, 0 otherwise.] -:: [s0; [*C int(][/C number][*C )]] -:: [s0; Returns the [/ number] rounded towards zero.] -:: [s0; [*C to`_string(][/C x][*C )]] -:: [s0; Return [/ x] as array representing string representation.] -:: [s0; [*C to`_number(][/C x][*C )]] -:: [s0; Converts an array (string) to the number. Returns void if the -string doesn`'t start with a number.] -:: [s0; [*C count(][/C x][*C )]] -:: [s0; If [/ x ]is void, returns 0.&] -[s0; If x is a number, returns 1.&] -[s0; If x is an array, returns number of elements of this array.&] -[s0; If x is an map, returns number of entries in this map with non`-void -values.] -:: [s0; [*C keys(][/C map][*C )]] -:: [s0; Returns array of keys of map (ordering is the same as for [* values] -function, otherwise is unspecified).] -:: [s0; [*C values(][/C map][*C )]] -:: [s0; Returns array of values of map (ordering is the same as for -[* keys] function, otherwise is unspecified).] -:: [s0; [*C rand()]] -:: [s0; Returns random number in range 0..32767.] -:: [s0; [*C reverse(][/C array][*C )]] -:: [s0; Returns reversed [/ array].] -:: [s0; [*C sort(][/C array][*C )]] -:: [s0; Returns sorted [/ array].] -:: [s0; [*C order(][/C array][*C )]] -:: [s0; Returns sort order of elements in the [/ array].] -:: [s0; [*C IsDate(][/C map][*C )]] -:: [s0; Returns 1 if map contains `"day`", `"month`" and `"year`" keys, -0 otherwise.] -:: [s0; [*C IsTime(][/C map][*C )]] -:: [s0; Returns 1 if map contains `"second`", `"minute`", `"hour`", -`"day`", `"month`" and `"year`" members, 0 otherwise.] -:: [s0; [*C GetSysTime()]] -:: [s0; Returns current time as map with `"second`", `"minute`", `"hour`", -`"day`", `"month`" and `"year`" members.] -:: [s0; [*C sin(][/C x][*C )]] -:: [s0; Returns sin of the argument.] -:: [s0; [*C cos(][/C x][*C )]] -:: [s0; Returns cos of the argument.] -:: [s0; [*C ToLower(][/C string][*C )]] -:: [s0; Returns lowercased string.] -:: [s0; [*C ToUpper(][/C string][*C )]] -:: [s0; Returns uppercased string.] -:: [s0; [*C OpenFileIn(][/C string][*C )]] -:: [s0; Opens file given as parameter for reading and returns FileIn -object.] -:: [s0; [*C OpenFileOut(][/C string][*C )]] -:: [s0; Opens file given as parameter for writing and returns FileOut -object.] -:: [s0; [*C OpenFileAppend(][/C string][*C )]] -:: [s0; Opens file given as parameter for appending and returns FileOut -object.]}}&] -[s0; &] -[ {{1385:2687:5928h1;@(216) [s0; Object] -:: [s0; Method] -:: [s0; Comments] -::^@2|3 [s0; [*C FileIn]] -:: [s0; [*C IsEof()]] -::= [s0; Returns true when the end of file is reached.] -:: [s0;%- ] -::^ [s0; [*C Read()]] -::= [s0; Returns one byte from the file.] -:: [s0;%- ] -::^ [s0; [*C ReadLine()]] -::= [s0; Returns string containing all text till next newline character.] -:: [s0;%- ] -::^ [s0; [*C Close()]] -::= [s0; Closes file.] -::^|2 [s0; [*C FileOut]] -:: [s0; [*C Put(][/C int][*C )]] -::= [s0; Writes one byte to the file.] -:: [s0;%- ] -::^ [s0; [*C PutLine(][/C string][*C )]] -::= [s0; Writes the string to the file and adds a newline character.] -:: [s0;%- ] -::^ [s0; [*C Close()]] -::= [s0; Closes the file.]}}&] +topic "Esc scripting language"; +[ $$0,0#00000000000000000000000000000000:Default] +[b83;*+150 $$1,0#07864147445237544204411237157677:title] +[b133;a83;*+117 $$2,0#31310162474203024125188417583966:subtitle] +[l321;t246;C@5;1 $$3,3#20902679421464641399138805415013:code] +[{_}%EN-US +[s0; [*R8 Esc scripting language]&] +[s0; &] +[s0; Esc is simple scripting language intended for embedding in Ultimate`+`+ +applications.&] +[s0; &] +[s0; It is typeless, value oriented language with simple interfacing +with C`+`+/U`+`+ code. It is very simple yet quite complete language.&] +[s0; &] +[s1; Value types&] +[s2; voids&] +[s0; All variables have void value before assigned any other value. +Void type has single value&] +[s0; &] +[s3; void&] +[s0; &] +[s0; and expression can be tested for voidness using [@(128.0.255) is`_void] +function.&] +[s2; numbers&] +[s0; Number is floating point number (corresponding to C type double). +Examples of number literals:&] +[s0; &] +[s3; 1&] +[s3; 1.123&] +[s3; 1.123e`-96&] +[s3; 0x123-|-|[@4 // hexadecimal]&] +[s3; 0123 -|-|[@4 // octal]&] +[s3; 0b10100100-|-|[@4 // binary]&] +[s3; `'x`'-|-|-|[@4 // character code]&] +[s0; &] +[s0; Esc supports common C`-like operations for number values.&] +[s2; arrays&] +[s0; Arrays are ordered random access sequences of other Esc values +(nested arrays included). Array values are specified using [@(128.0.255) `[`]] +brackets:&] +[s0; &] +[s3; `[`]-|-|-|-|[@4 // empty array]&] +[s3; `[ 1, 2, 3, 4, 5 `]&] +[s3; `[ 1, `[2, 3`], 4 `]-|-|[@4 // array contains nested array]&] +[s3; `"Hello`"-|-|-|[@4 // equivalent to `[`'H`', `'e`', `'l`', `'l`', +`'o`'`]]&] +[s3; `[ 1, 2, 3 `* alfa `]-|[@4 // expressions can be used as well]&] +[s0; &] +[s0; Number of elements in the array can be retrieved by standard +function count.&] +[s0; &] +[s0; Accessing elements of arrays is provided by subscript [@(128.0.255) `[ +`]] operator:&] +[s0; &] +[s3; a`[0`]&] +[s3; a`[1`] `= 3&] +[s0; &] +[s0; First element of array corresponds to index [@(128.0.255) `[0`]].&] +[s0; &] +[s0; Negative indexes are allowed and designate elements from the +end of array: [@(128.0.255) `[`-1`]] is last element of array, [@(128.0.255) `[`-2`]] +last but one etc.&] +[s0; &] +[s3; a`[`-1`]&] +[s0; &] +[s0; is equivalent to&] +[s0; &] +[s3; a`[count(a) `- 1`]&] +[s0; &] +[s0; When index is used for the r`-value (standing on the right side +of [@(128.0.255) `=]), index is range checked. For l`-value, if +non`-negative index designates element past the of the array, +array is expanded with void values to create this element.&] +[s0; &] +[s0; `"Empty`" index [@(128.0.255) `[`]] designates element past last +and can be used to add elements to the array:&] +[s0; &] +[s3; x`[`] `= item&] +[s0; &] +[s0; is equivalent to&] +[s0; &] +[s3; x`[count(x)`] `= item&] +[s0; &] +[s0; Range of element in array can be obtained or changed using slices:&] +[s0; &] +[s3; array`[pos, count`]&] +[s0; &] +[s0; designates array slice of [/ count] elements starting with [/ pos] +element.&] +[s0; &] +[s3; x`[start:end`]&] +[s0; &] +[s0; designates array slice of [/ end `- start] elements starting with +[/ start] .&] +[s0; &] +[s0; Parts of slices can be ommited&] +[s0; &] +[s3; array`[pos,`]&] +[s0; or&] +[s3; array`[pos:`]&] +[s0; &] +[s0; is equivalent to&] +[s0; &] +[s3; array`[pos : count(array)`]&] +[s0; &] +[s0; and&] +[s0; &] +[s3; array`[,count`]&] +[s0; or&] +[s3; array`[:count`]&] +[s0; &] +[s0; is equivalent to&] +[s0; &] +[s3; array`[0, count`]&] +[s0; &] +[s0; When slices are used as l`-value, corresponding part of the +array is replaced:&] +[s0; &] +[s3; s `= `"1234`";&] +[s3; s`[1: `-1`] `= `"xXx`";-|[@4 // s is now `"1xXx4`"]&] +[s0; &] +[s0; Several operators can be applied to arrays&] +[s0; &] +[s3; array1 `+ array2&] +[s0; &] +[s0; concatenates two arrays,&] +[s0; &] +[s3; array `* number&] +[s3; number `* array&] +[s0; &] +[s0; repeats array number times.&] +[s0; &] +[s3; array `+`= array1&] +[s0; &] +[s0; is equivalent to&] +[s0; &] +[s3; array `= array `+ array1&] +[s0; &] +[s0; also&] +[s0; &] +[s3; array << array1 << array2 << array3&] +[s0; &] +[s0; is equivalent to&] +[s0; &] +[s3; array `= array `+ array1 `+ array2 `+ array3&] +[s0; &] +[s0; Esc allows [/ void] value on the right side of array concatenation +expression `- in such cases, operator has no effect.&] +[s2; maps&] +[s0; Maps contain key`-value pairs as entries. Normal subscripts +[@(128.0.255) `[`]] are used to access map entries:&] +[s0; &] +[s3; map`[key`] `= value&] +[s0; &] +[s0; All entries in map that are not assigned particular non`-void +value have void value. This way assigning void to the map key +can be considered as removing entry from the map&] +[s0; &] +[s3; map`[key`] `= void&] +[s0; &] +[s0; and testing entry for being void can be considered as test +of key presence in map:&] +[s0;C &] +[s3; if(is`_void(map`[key`])) `{ ... `}&] +[s0; &] +[s0; As the special exception, when a void value appears before an +l`-value [@(128.0.255) `[`]], it is changed to the empty map:&] +[s0; &] +[s3; x `= void; // x is void&] +[s3; x`[key`] `= value; // x is now map&] +[s0; &] +[s0; Maps are also used to create compound data structures. To make +this job easier, special [/ .field] syntax is supported:&] +[s0; &] +[s3; x.field `= value;&] +[s0; &] +[s0; is equivalent to&] +[s0; &] +[s3; x`[`"field`"`] `= value;&] +[s0; &] +[s0; Map values can also be specified using `{`} braces:&] +[s0; &] +[s3; `{`} // empty map&] +[s3; `{ `"alfa`":10, `"beta`":20, 20:`"40`" `}&] +[s3; `{ 2 `* a : `"100`" `} // map values can contain expressions&] +[s2; lambdas&] +[s0; Lambdas represent executable Esc code. Lambda values are introduced +using [@(128.0.255) `@] character:&] +[s0; &] +[s3; `@(x) `{ return 2 `* x; `}&] +[s0; &] +[s0; Assigning lambda value to variable is equivalent to defining +a function:&] +[s0; &] +[s3; :foo `= `@(x) `{ return 2 `* x; `};-|[@4 // defines global function +foo]&] +[s0; &] +[s0; If lambda argument is preceded with [@(128.0.255) `&] character, +it designates input`-output argument (other arguments are input +only).&] +[s0; &] +[s0; [*@(128.0.255) ... ]at the end of the argument list allows variable +number of arguments to be present. In that case, additional parameters +are passed in [/ argv] variable of type array.&] +[s0; &] +[s3; :sum `= `@(...) `{ s `= 0; for(i in argv) s `+`= argv`[i`]; `}&] +[s0; &] +[s0; Parameters can have default values separated by [@(128.0.255) `=]:&] +[s0; &] +[s3; :bar `= `@(x `= 0) `{ ... `}&] +[s0; &] +[s0; To make life easier, alternative form of function definition +is available:&] +[s0; &] +[s3; #:foo(x) `{ return 2 `* x; `}&] +[s1;i150;O9; Variables and contexts&] +[s0; &] +[s0; Variable names in Esc follow C principles (are case sensitive, +start with alphabetic character or [@(128.0.255) `_] and can contain +alphabetic characters, [@(128.0.255) `_] and numbers).&] +[s0; &] +[s0; Esc distinguishes three types of variables contexts using [*@(128.0.255) .] +and [*@(128.0.255) :] characters:&] +[s0; &] +[s3; var-|-|[@4 // local]&] +[s3; .var-|-|[@4 // instance]&] +[s3; :var-|-|[@4 // global]&] +[s0; &] +[s0; Local variables are specific to function, global variables are +shared among all functions. Instance variables &] +[s0; represent map values (keys designate variable names) of map +whose lambda value is invoked, or can be forced using binary +[@(128.0.255) !] bind operator:&] +[s0; &] +[s3; var.x `= 0;&] +[s3; var.Next `= `@() `{ .x`+`+; `};&] +[s3; var.Next();-|-|-|[@4 // var.x is now 1 ]&] +[s3; var1.x `= 0;&] +[s3; var.Next()! var1;-|-|[@4 // var1.x is now 1]&] +[s0; &] +[s0; To make programmer`'s life easier, one exception applies concerning +context `- when invoking lambda from local variable and lambda +is not present in it, instance and global contexts (in this order) +are tried as well:&] +[s0; &] +[s3; beta(x)&] +[s3; &] +[s0; Tries to get lambda form local [/ beta] variable first, then (if +no lambda found) from instance [/ beta ]variable and finally (if +still no lambda) from global [/ beta]. Of course, [*@(128.0.255) .] +and [*@(128.0.255) :] can still be used to designate context:&] +[s0; &] +[s3; :beta(x)-|-|-|-|[@4 // calls global beta even if local or instance +beta is present]&] +[s0; &] +[s1; Expressions&] +[s0; &] +[s0; When expressions are used as logical values, void, zero number +and map or array with zero elements represent [/ false], other +values are [/ true.]&] +[s0;/ &] +[s0; In following table, thick lines divide operators with the same +priority, with topmost items having the highest priority:&] +[s0; &] +[ {{4468:5532h1;@(216) [s0; Operator] +:: [s0; Comments] +::^@2 [s0; [/C map][*C `[][/C key][*C `]]] +:: [s0; Map value at [/ key].] +:: [s0; [/C map][*C .][/C field]] +:: [s0; Same as [/ map]`[`"[/ field]`"`].] +:: [s0; [/C array][*C `[][/C index][*C `]]] +:: [s0; Array element at position [/ index].] +:: [s0; [/C array][*C `[][/C start][*C , ][/C count][*C `]]] +:: [s0; Array slice starting at [/ start] of [/ count] elements.] +:: [s0; [/C array][*C `[][/C start][*C :][/C end][*C `]]] +:: [s0; Array slice of elements [/ start .. end] `- 1] +:: [s0; [/C array][*C `[,][/C count][*C `]]&] +[s0; [/C array][*C `[:][/C count][*C `]]] +:: [s0; Same as [/ array]`[0, [/ count]`].&] +[s0; ] +:: [s0; [/C array][*C `[][/C start][*C :`]]&] +[s0; [/C array][*C `[][/C start][*C ,`]]] +:: [s0; Same as [/ array]`[[/ start] : count(array)`]. ] +:: [s0; [/C lambda][*C (][/C args][*C )]] +:: [s0; Invokes [/ lambda] with the set of [/ args]. If lambda is subscript +of the map, map becomes instance for [/ lambda] execution (accessible +via [* .][/ name] or [* self]).] +:: [s0; [/C lambda][*C (][/C args][*C ) ! ][/C instance]] +:: [s0; Invokes [/ lambda], using[/ instance] as instance for lambda execution +(accessible via [* .][/ name] or [* self]).] +:: [s0; [*C self]] +:: [s0; Instance.] +::t33/15 [s0; [*C `+`+][/C l`-number]&] +[s0; [*C `-`-][/C l`-number]] +:: [s0; Increments/decrements number l`-value.] +::t0/15 [s0; [*C `-][/C number]] +:: [s0; Unary minus.] +:: [s0; [*C `~][/C number]] +:: [s0; Bit`-wise complement.] +:: [s0; [*C !][/C value]] +:: [s0; Logical not. 1 when value represents false, 0 otherwise.] +:: [s0; [/C l`-number][*C `-`-]&] +[s0; [/C l`-number][*C `+`+]] +:: [s0; Post`-increment / post`-decrement of number l`-value.] +::t33/15 [s0; [/C array][*C `* ][/C number]&] +[s0; [/C number][*C `* ][/C array]] +:: [s0; Returns [/ array][*/ ]repeated [/ number] times.] +::t0/15 [s0; [/C number][*C `* ][/C number]] +:: [s0; Multiplication.] +:: [s0; [/C number][*C / ][/C number]] +:: [s0; Division.] +:: [s0; [/C number][*C % ][/C number]] +:: [s0; Modulo.] +::t33/15 [s0; [/C array][*C `+ ][/C array]] +:: [s0; Concatenates [/ array]s.] +::t0/15 [s0; [/C number][*C `+ ][/C number]] +:: [s0; Addition.] +:: [s0; [/C number][*C `- ][/C number]] +:: [s0; Subtraction.] +::t33/15 [s0; [/C l`-array][*C << ][/C array]] +:: [s0; Concatenates [/ array ]to [/ l`-array], yielding [/ l`-array ]as l`-value +result.] +::t0/15 [s0; [/C number][*C << ][/C number]] +:: [s0; Shift left.] +:: [s0; [/C number][*C >> ][/C number]] +:: [s0; Shift right.] +::t33/15 [s0; [/C number][*C < ][/C number]&] +[s0; [/C number][*C > ][/C number]&] +[s0; [/C number][*C <`= ][/C number]&] +[s0; [/C number][*C >`= ][/C number]] +:: [s0; Comparison of [/ number]s.] +::t0/15 [s0; [/C array][*C < ][/C array]&] +[s0; [/C array][*C > ][/C array]&] +[s0; [/C array][*C <`= ][/C array]&] +[s0; [/C array][*C >`= ][/C array]] +:: [s0; Comparison of [/ array]s.] +::t33/15 [s0; [/C value][*C `=`= ][/C value]] +:: [s0; Equality.] +::t0/15 [s0; [/C value][*C !`= ][/C value]] +:: [s0; Inequality.] +::t33/15 [s0; [/C number][*C `& ][/C number]] +:: [s0; Binary and.] +:: [s0; [/C number][*C `^ ][/C number]] +:: [s0; Binary xor.] +:: [s0; [/C number][*C `| ][/C number]] +:: [s0; Binary or.] +:: [s0; [/C value][*C `&`& ][/C value]] +:: [s0; Logical and. If first value is false, second value is not evaluated, +just skipped.] +:: [s0; [/C value][*C `|`| ][/C value]] +:: [s0; Logical or. If first value is true, second value is not evaluated, +just skipped.] +:: [s0; [/C value ][*C ?][/C value ][*C :][/C value]] +:: [s0; Conditional expression. Only necessary expressions are evaluated.] +:: [s0; [/C l`-value][*C `= ][/C value]] +:: [s0; Assignment.] +::t0/15 [s0; [/C l`-array][*C `+`= ][/C array]] +:: [s0; Same as [C l`-array `= l`-array `+ array].] +:: [s0; [/C l`-number][*C `+`= ][/C number]] +:: [s0; Same as [C l`-number `= l`-number `+ number].] +:: [s0; [/C l`-number][*C `-`= ][/C number]] +:: [s0; Same as [C l`-number `= l`-number `- number].] +:: [s0; [/C l`-number][*C `*`= ][/C number]] +:: [s0; Same as [C l`-number `= l`-number `* number].] +:: [s0; [/C l`-number][*C /`= ][/C number]] +:: [s0; Same as [C l`-number `= l`-number / number].] +:: [s0; [/C l`-number][*C %`= ][/C number]] +:: [s0; Same as [C l`-number `= l`-number % number].]}}&] +[s0; &] +[s0; &] +[s1; Statements&] +[s0; &] +[ {{4508:5492h1;@(216) [s0; Statement] +:: [s0; Comments] +::^@2 [s0; [*C ;]] +:: [s0; Empty statement.] +:: [s0; [/C expression][*C ;]] +:: [s0; Expression. It gets evaluated.] +:: [s0; [*C `{ ][/C statement][*C ; ... `}]] +:: [s0; Compound statement.] +:: [s0; [*C if(][/C condition][*C ) ][/C statement]] +:: [s0; Conditional statement.] +:: [s0; [*C if(][/C condition][*C ) ][/C statement]&] +[s0; [*C else ][/C statement]] +:: [s0; Conditional statement with ] +:: [s0; [*C while(][/C condition][*C ) ][/C statement]] +:: [s0; Loop. Statement is performed as long as the [/ condition] is true.] +:: [s0; [*C do ][/C statement]&] +[s0; [*C while(][/C condition][*C )]] +:: [s0; Loop. Statement is performed once and then is repeated as long +as the [/ condition] is true.] +:: [s0; [*C for(][/C init][*C , ][/C condition][*C , ][/C increment][*C )]&] +[s0; [*C -|][/C statement]] +:: [s0; Same as&] +[s0; [/C init][C ;]&] +[s0; [C while(][/C condition][C ) `{]&] +[s0; [C -|][/C statement][C ;]&] +[s0; [C -|][/C increment][C ;]&] +[s0; [C `}]] +:: [s0; [*C for(][/C l`-value][*C in ][/C array][*C )]&] +[s0; [*C -|][/C statement]] +:: [s0; Same as&] +[s0; [C for(][/C l`-value][C `= 0; ][/C l`-value][C < count(][/C array][C );]&] +[s0; [C ][/C l`-value][C `+`+)]&] +[s0; [C -|][/C statement]&] +[s0; ] +:: [s0; [*C for(][/C l`-value][*C in ][/C map][*C )]&] +[s0; [*C -|][/C statement]] +:: [s0; Iterates through [/ map], assigning keys of elements with non`-void +value to the [/ l`-value].] +:: [s0; [*C break;]] +:: [s0; Causes exit from innermost loop or switch statement.] +:: [s0; [*C switch(][/C value][*C ) ][/C statement]] +:: [s0; Matches [/ value] to all case statements inside the [/ statement], +continues at the case with the same value, or with default if +no such case exists and default is present. If neither matching +case and default exists, does nothing.] +:: [s0; [*C case ][/C value][*C :]] +:: [s0; Switch case.] +:: [s0; [*C default:]] +:: [s0; Default switch case.] +:: [s0; [*C #][/C name][*C (][/C args][*C ) `{ ... `}]] +:: [s0; Same as [/C name][C `= `@(][/C args][C ) `{ ... `};]] +:: [s0; [*C #.][/C name][*C (][/C args][*C ) `{ ... `}]] +:: [s0; Same as [C .][/C name][C `= `@(][/C args][C ) `{ ... `};]] +:: [s0; [*C #:][/C name][*C (][/C args][*C ) `{ ... `}]] +:: [s0; Same as [C :][/C name][C `= `@(][/C args][C ) `{ ... `};]]}}&] +[s0; &] +[s1; [3 Standard library]&] +[s0; &] +[ {{3528:6472h1;@(216) [s0; Function] +:: [s0; Comments] +::^@2 [s0; [*C is`_number(][/C x][*C )]] +:: [s0; Returns 1 if [/ x] is a number, 0 otherwise.] +:: [s0; [*C is`_array(][/C x][*C )]] +:: [s0; Returns 1 if [/ x] is a array, 0 otherwise.] +:: [s0; [*C is`_map(][/C x][*C )]] +:: [s0; Returns 1 if [/ x] is a map, 0 otherwise.] +:: [s0; [*C is`_void(][/C x][*C )]] +:: [s0; Returns 1 if [/ x] is void, 0 otherwise.] +:: [s0; [*C int(][/C number][*C )]] +:: [s0; Returns the [/ number] rounded towards zero.] +:: [s0; [*C to`_string(][/C x][*C )]] +:: [s0; Return [/ x] as array representing string representation.] +:: [s0; [*C to`_number(][/C x][*C )]] +:: [s0; Converts an array (string) to the number. Returns void if the +string doesn`'t start with a number.] +:: [s0; [*C count(][/C x][*C )]] +:: [s0; If [/ x ]is void, returns 0.&] +[s0; If x is a number, returns 1.&] +[s0; If x is an array, returns number of elements of this array.&] +[s0; If x is an map, returns number of entries in this map with non`-void +values.] +:: [s0; [*C keys(][/C map][*C )]] +:: [s0; Returns array of keys of map (ordering is the same as for [* values] +function, otherwise is unspecified).] +:: [s0; [*C values(][/C map][*C )]] +:: [s0; Returns array of values of map (ordering is the same as for +[* keys] function, otherwise is unspecified).] +:: [s0; [*C rand()]] +:: [s0; Returns random number in range 0..32767.] +:: [s0; [*C reverse(][/C array][*C )]] +:: [s0; Returns reversed [/ array].] +:: [s0; [*C sort(][/C array][*C )]] +:: [s0; Returns sorted [/ array].] +:: [s0; [*C order(][/C array][*C )]] +:: [s0; Returns sort order of elements in the [/ array].] +:: [s0; [*C IsDate(][/C map][*C )]] +:: [s0; Returns 1 if map contains `"day`", `"month`" and `"year`" keys, +0 otherwise.] +:: [s0; [*C IsTime(][/C map][*C )]] +:: [s0; Returns 1 if map contains `"second`", `"minute`", `"hour`", +`"day`", `"month`" and `"year`" members, 0 otherwise.] +:: [s0; [*C GetSysTime()]] +:: [s0; Returns current time as map with `"second`", `"minute`", `"hour`", +`"day`", `"month`" and `"year`" members.] +:: [s0; [*C sin(][/C x][*C )]] +:: [s0; Returns sin of the argument.] +:: [s0; [*C cos(][/C x][*C )]] +:: [s0; Returns cos of the argument.] +:: [s0; [*C ToLower(][/C string][*C )]] +:: [s0; Returns lowercased string.] +:: [s0; [*C ToUpper(][/C string][*C )]] +:: [s0; Returns uppercased string.] +:: [s0; [*C OpenFileIn(][/C string][*C )]] +:: [s0; Opens file given as parameter for reading and returns FileIn +object.] +:: [s0; [*C OpenFileOut(][/C string][*C )]] +:: [s0; Opens file given as parameter for writing and returns FileOut +object.] +:: [s0; [*C OpenFileAppend(][/C string][*C )]] +:: [s0; Opens file given as parameter for appending and returns FileOut +object.]}}&] +[s0; &] +[ {{1385:2687:5928h1;@(216) [s0; Object] +:: [s0; Method] +:: [s0; Comments] +::^@2|3 [s0; [*C FileIn]] +:: [s0; [*C IsEof()]] +::= [s0; Returns true when the end of file is reached.] +:: [s0;%- ] +::^ [s0; [*C Read()]] +::= [s0; Returns one byte from the file.] +:: [s0;%- ] +::^ [s0; [*C ReadLine()]] +::= [s0; Returns string containing all text till next newline character.] +:: [s0;%- ] +::^ [s0; [*C Close()]] +::= [s0; Closes file.] +::^|2 [s0; [*C FileOut]] +:: [s0; [*C Put(][/C int][*C )]] +::= [s0; Writes one byte to the file.] +:: [s0;%- ] +::^ [s0; [*C PutLine(][/C string][*C )]] +::= [s0; Writes the string to the file and adds a newline character.] +:: [s0;%- ] +::^ [s0; [*C Close()]] +::= [s0; Closes the file.]}}&] [s0; ]] \ No newline at end of file diff --git a/uppsrc/ide/app.tpp/importext$en-us.tpp b/uppsrc/ide/app.tpp/importext_en-us.tpp similarity index 100% rename from uppsrc/ide/app.tpp/importext$en-us.tpp rename to uppsrc/ide/app.tpp/importext_en-us.tpp diff --git a/uppsrc/ide/app.tpp/index$en-us.tpp b/uppsrc/ide/app.tpp/index_en-us.tpp similarity index 98% rename from uppsrc/ide/app.tpp/index$en-us.tpp rename to uppsrc/ide/app.tpp/index_en-us.tpp index 994a3a8e6..15b90bba2 100644 --- a/uppsrc/ide/app.tpp/index$en-us.tpp +++ b/uppsrc/ide/app.tpp/index_en-us.tpp @@ -1,68 +1,68 @@ -topic "TheIde help index"; -[ $$0,0#00000000000000000000000000000000:Default] -[l288;i704;a17;O9;~~~.992; $$1,0#10431211400427159095818037425705:param] -[a83;*R6 $$2,0#31310162474203024125188417583966:caption] -[b83;* $$3,5#07864147445237544204411237157677:title] -[b167;a42;C $$4,6#40027414424643823182269349404212:item] -[b42;a42; $$5,5#45413000475342174754091244180557:text] -[l288;a17; $$6,6#27521748481378242620020725143825:desc] -[l321;t246;C@5;1 $$7,0#20902679421464641399138805415013:code] -[b2503; $$8,0#65142375456100023862071332075487:separator] -[*@(0.0.255) $$9,10#83433469410354161042741608181528:base] -[t4167;C+117 $$10,10#37138531426314131251341829483380:class] -[l288;a17;*1 $$11,11#70004532496200323422659154056402:requirement] -[i416;b42;a42;O9;~~~.416; $$12,12#10566046415157235020018451313112:tparam] -[b167;C $$13,13#92430459443460461911108080531343:item1] -[a42;C $$14,14#77422149456609303542238260500223:item2] -[*@2$(0.128.128) $$15,15#34511555403152284025741354420178:NewsDate] -[l321;*C$7 $$16,16#03451589433145915344929335295360:result] -[l321;b83;a83;*C$7 $$17,17#07531550463529505371228428965313:result`-line] -[l160;t4167;*C+117 $$18,4#88603949442205825958800053222425:package`-title] -[{_}%EN-US -[s0;= [*/R6 TheIde help]&] -[s0; &] -[s0;l224; [^topic`:`/`/ide`/app`/GettingStarted`$en`-us^ Getting started -with TheIDE]&] -[s0;l224; [^topic`:`/`/ide`/app`/PackagesAssembliesAndNests`$en`-us^ Packages, -Assemblies and Nests]&] -[s0;l224; [^topic`:`/`/ide`/app`/ConfiguringPackagesAssemblies`$en`-us^ Configuring -Packages and Assemblies]&] -[s0;l224; [^topic`:`/`/ide`/app`/Assist`$en`-us^ Assist`+`+ (code completion, -navigation and transformation)]&] -[s0;l224; [^topic`:`/`/ide`/app`/Blitz`$en`-us^ BLITZ]&] -[s0;l224; [^topic`:`/`/ide`/app`/Files`$en`-us^ File types]&] -[s0;l224; [^topic`:`/`/ide`/app`/Keys`$en`-us^ Keys]&] -[s0;l224; [^topic`:`/`/ide`/app`/Flags`$en`-us^ Build flags]&] -[s0;l224; [^topic`:`/`/ide`/app`/Topic`$en`-us^ Topic`+`+]&] -[s0;l224; [^topic`:`/`/ide`/app`/macros`$en`-us^ Macros]&] -[s0;l224; [^topic`:`/`/ide`/app`/PackageTemplates`$en`-us^ Ultimate`+`+ -Project Templates]&] -[s0;l224; [^topic`:`/`/ide`/app`/IconDes`$en`-us^ Icon designer]&] -[s0;l224; [^topic`:`/`/ide`/app`/special`$en`-us^ Special features]&] -[s0;l224; [^topic`:`/`/ide`/app`/AdvancedReplace`$en`-us^ Advanced -Find and Replace]&] -[s0;l224; [^topic`:`/`/ide`/app`/FindFile`$en`-us^ Finding specific -file in the project (Find File)]&] -[s0;l224; [^topic`:`/`/ide`/app`/importext`$en`-us^ import.ext `- importing -libraries]&] -[s0;l224; &] -[s0;l224; [^topic`:`/`/ide`/app`/umk`$en`-us^ UMK `- command line builder]&] -[s0;l224; [^topic`:`/`/ide`/app`/upp`$en`-us^ .upp file format description]&] -[s0;l224; &] -[s0;l224; [^topic`:`/`/ide`/app`/CrossComp`$en`-gb^ Using TheIDE as -a Cross Development Tool]&] -[s0;l224; &] -[s0;l224; [^topic`:`/`/ide`/app`/AndroidBuilder`$en`-us^ Working with -Android builder]&] -[s0; &] -[s0; &] -[s0; [*4 Ultimate`+`+ donors]&] -[s0; [/1 Thank you!]&] -[s0; &] -[s0;%- [%%*^http`:`/`/nullptr`.nl`/^ Jan_Wilmans], [*^http`:`/`/www`.vegachess`.com^ vega -chess], Marcelo Santos, Daniel Jesús Pérez Burgos, yeohhs, -Matt Ezell, Herbert Danler, Garry Everard, Jay Krell, mobilehunter, -Michael Bzdega, Reza Fatahilah Shah, Keith Willis, Brian Rich, -Alex Nicolson, Jean`-François GUCHENS, Daryl Warder, Jeff Humphreys, -Neil Neilson, Timothy Reilly, James McNamara, Jeff L. Holcomb, +topic "TheIde help index"; +[ $$0,0#00000000000000000000000000000000:Default] +[l288;i704;a17;O9;~~~.992; $$1,0#10431211400427159095818037425705:param] +[a83;*R6 $$2,0#31310162474203024125188417583966:caption] +[b83;* $$3,5#07864147445237544204411237157677:title] +[b167;a42;C $$4,6#40027414424643823182269349404212:item] +[b42;a42; $$5,5#45413000475342174754091244180557:text] +[l288;a17; $$6,6#27521748481378242620020725143825:desc] +[l321;t246;C@5;1 $$7,0#20902679421464641399138805415013:code] +[b2503; $$8,0#65142375456100023862071332075487:separator] +[*@(0.0.255) $$9,10#83433469410354161042741608181528:base] +[t4167;C+117 $$10,10#37138531426314131251341829483380:class] +[l288;a17;*1 $$11,11#70004532496200323422659154056402:requirement] +[i416;b42;a42;O9;~~~.416; $$12,12#10566046415157235020018451313112:tparam] +[b167;C $$13,13#92430459443460461911108080531343:item1] +[a42;C $$14,14#77422149456609303542238260500223:item2] +[*@2$(0.128.128) $$15,15#34511555403152284025741354420178:NewsDate] +[l321;*C$7 $$16,16#03451589433145915344929335295360:result] +[l321;b83;a83;*C$7 $$17,17#07531550463529505371228428965313:result`-line] +[l160;t4167;*C+117 $$18,4#88603949442205825958800053222425:package`-title] +[{_}%EN-US +[s0;= [*/R6 TheIde help]&] +[s0; &] +[s0;l224; [^topic`:`/`/ide`/app`/GettingStarted`$en`-us^ Getting started +with TheIDE]&] +[s0;l224; [^topic`:`/`/ide`/app`/PackagesAssembliesAndNests`$en`-us^ Packages, +Assemblies and Nests]&] +[s0;l224; [^topic`:`/`/ide`/app`/ConfiguringPackagesAssemblies`$en`-us^ Configuring +Packages and Assemblies]&] +[s0;l224; [^topic`:`/`/ide`/app`/Assist`$en`-us^ Assist`+`+ (code completion, +navigation and transformation)]&] +[s0;l224; [^topic`:`/`/ide`/app`/Blitz`$en`-us^ BLITZ]&] +[s0;l224; [^topic`:`/`/ide`/app`/Files`$en`-us^ File types]&] +[s0;l224; [^topic`:`/`/ide`/app`/Keys`$en`-us^ Keys]&] +[s0;l224; [^topic`:`/`/ide`/app`/Flags`$en`-us^ Build flags]&] +[s0;l224; [^topic`:`/`/ide`/app`/Topic`$en`-us^ Topic`+`+]&] +[s0;l224; [^topic`:`/`/ide`/app`/macros`$en`-us^ Macros]&] +[s0;l224; [^topic`:`/`/ide`/app`/PackageTemplates`$en`-us^ Ultimate`+`+ +Project Templates]&] +[s0;l224; [^topic`:`/`/ide`/app`/IconDes`$en`-us^ Icon designer]&] +[s0;l224; [^topic`:`/`/ide`/app`/special`$en`-us^ Special features]&] +[s0;l224; [^topic`:`/`/ide`/app`/AdvancedReplace`$en`-us^ Advanced +Find and Replace]&] +[s0;l224; [^topic`:`/`/ide`/app`/FindFile`$en`-us^ Finding specific +file in the project (Find File)]&] +[s0;l224; [^topic`:`/`/ide`/app`/importext`$en`-us^ import.ext `- importing +libraries]&] +[s0;l224; &] +[s0;l224; [^topic`:`/`/ide`/app`/umk`$en`-us^ UMK `- command line builder]&] +[s0;l224; [^topic`:`/`/ide`/app`/upp`$en`-us^ .upp file format description]&] +[s0;l224; &] +[s0;l224; [^topic`:`/`/ide`/app`/CrossComp`$en`-gb^ Using TheIDE as +a Cross Development Tool]&] +[s0;l224; &] +[s0;l224; [^topic`:`/`/ide`/app`/AndroidBuilder`$en`-us^ Working with +Android builder]&] +[s0; &] +[s0; &] +[s0; [*4 Ultimate`+`+ donors]&] +[s0; [/1 Thank you!]&] +[s0; &] +[s0;%- [%%*^http`:`/`/nullptr`.nl`/^ Jan_Wilmans], [*^http`:`/`/www`.vegachess`.com^ vega +chess], Marcelo Santos, Daniel Jesús Pérez Burgos, yeohhs, +Matt Ezell, Herbert Danler, Garry Everard, Jay Krell, mobilehunter, +Michael Bzdega, Reza Fatahilah Shah, Keith Willis, Brian Rich, +Alex Nicolson, Jean`-François GUCHENS, Daryl Warder, Jeff Humphreys, +Neil Neilson, Timothy Reilly, James McNamara, Jeff L. Holcomb, Martin Bartuska, Patryk Głowacz, Henk ten Hove]] \ No newline at end of file diff --git a/uppsrc/ide/app.tpp/install$en-us.tpp b/uppsrc/ide/app.tpp/install_en-us.tpp similarity index 99% rename from uppsrc/ide/app.tpp/install$en-us.tpp rename to uppsrc/ide/app.tpp/install_en-us.tpp index 7b2e94325..d5828a9ab 100644 --- a/uppsrc/ide/app.tpp/install$en-us.tpp +++ b/uppsrc/ide/app.tpp/install_en-us.tpp @@ -1,57 +1,57 @@ -topic "Ultimate++ installation guide"; -[2 $$0,0#00000000000000000000000000000000:Default] -[l288;i704;a17;O9;~~~.992;2 $$1,0#10431211400427159095818037425705:param] -[a83;*R6 $$2,5#31310162474203024125188417583966:caption] -[b83;*2 $$3,5#07864147445237544204411237157677:title] -[b167;a42;C2 $$4,6#40027414424643823182269349404212:item] -[b42;a42;ph2 $$5,5#45413000475342174754091244180557:text] -[l288;a17;2 $$6,6#27521748481378242620020725143825:desc] -[l321;t246;C@5;1 $$7,7#20902679421464641399138805415013:code] -[b2503;2 $$8,0#65142375456100023862071332075487:separator] -[ph*@(0.0.255)2 $$9,0#83433469410354161042741608181528:base] -[t4167;C2 $$10,0#37138531426314131251341829483380:class] -[l288;a17;*1 $$11,11#70004532496200323422659154056402:requirement] -[i417;b42;a42;O9;~~~.416;2 $$12,12#10566046415157235020018451313112:tparam] -[b167;C2 $$13,13#92430459443460461911108080531343:item1] -[i288;a42;O9;C2 $$14,14#77422149456609303542238260500223:item2] -[*@2$(0.128.128)2 $$15,15#34511555403152284025741354420178:NewsDate] -[l321;*C$7;2 $$16,16#03451589433145915344929335295360:result] -[l321;b83;a83;*C$7;2 $$17,17#07531550463529505371228428965313:result`-line] -[l160;t4167;*C+117 $$18,5#88603949442205825958800053222425:package`-title] -[{_}%EN-US -[s2;= Ultimate`+`+ Windows releases&] -[s5; Windows release a simple archive [^http`:`/`/www`.7`-zip`.org`/^ .7z] -archive. Unpack to directory of your preference, then just run -theide.exe (or theide32.exe if you have 32`-bit windows). U`+`+ -does not write anything to registry or outside its directory.&] -[s5; U`+`+ comes in two variants:&] -[s5;l160;i150;O0; [* upp`-mingw] contains TMD64 compiler system for -out of the box operation&] -[s5;l160;i150;O0; [* upp`-win] comes without compiler/SDK,&] -[s5; Both variants are able (on first install, when installation -is moved or on demand `- menu Setup/Instant setup) to detect -and use SDK and C`+`+ compiler from [*^https`:`/`/www`.visualstudio`.com`/products`/visual`-studio`-community`-vs^ M -icrosoft Visual Studio 2015][* ](free community edition is fine). -Note: While mingw/TDM64 is fine for light work, we really recommend -using VS2015 C`+`+ compiler for serious work. It significantly -faster and better supported by 3rd party libraries.&] -[s5; When installing Visual Studio 2015, please make sure these options -are checked &] -[s0; &] -[s0;= -@@rawimage:1437&2012 -(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) -&] -[s0; &] -[s5; As can be seen on the above image, [* Visual C`+`+] option from -`"Programming Languages`" category is selected. Moreover, in -`"Windows and Web Development`" [* Universal Windows App Development -Tools] is chosen[* .]&] -[s5; TheIDE can also be configured to work with external MinGW or -older Microsoft compilers and usually auto setup them (menu Setup/Legacy -compilers automatic setup). However, as previous version of Visual -C`+`+ do not support parts of C`+`+11 standard important for -U`+`+, we recommend using compiler from VS2015 (on the other -hand, current U`+`+ will work just fine in C`+`+98 mode with -previous Microsoft compiler).&] +topic "Ultimate++ installation guide"; +[2 $$0,0#00000000000000000000000000000000:Default] +[l288;i704;a17;O9;~~~.992;2 $$1,0#10431211400427159095818037425705:param] +[a83;*R6 $$2,5#31310162474203024125188417583966:caption] +[b83;*2 $$3,5#07864147445237544204411237157677:title] +[b167;a42;C2 $$4,6#40027414424643823182269349404212:item] +[b42;a42;ph2 $$5,5#45413000475342174754091244180557:text] +[l288;a17;2 $$6,6#27521748481378242620020725143825:desc] +[l321;t246;C@5;1 $$7,7#20902679421464641399138805415013:code] +[b2503;2 $$8,0#65142375456100023862071332075487:separator] +[ph*@(0.0.255)2 $$9,0#83433469410354161042741608181528:base] +[t4167;C2 $$10,0#37138531426314131251341829483380:class] +[l288;a17;*1 $$11,11#70004532496200323422659154056402:requirement] +[i417;b42;a42;O9;~~~.416;2 $$12,12#10566046415157235020018451313112:tparam] +[b167;C2 $$13,13#92430459443460461911108080531343:item1] +[i288;a42;O9;C2 $$14,14#77422149456609303542238260500223:item2] +[*@2$(0.128.128)2 $$15,15#34511555403152284025741354420178:NewsDate] +[l321;*C$7;2 $$16,16#03451589433145915344929335295360:result] +[l321;b83;a83;*C$7;2 $$17,17#07531550463529505371228428965313:result`-line] +[l160;t4167;*C+117 $$18,5#88603949442205825958800053222425:package`-title] +[{_}%EN-US +[s2;= Ultimate`+`+ Windows releases&] +[s5; Windows release a simple archive [^http`:`/`/www`.7`-zip`.org`/^ .7z] +archive. Unpack to directory of your preference, then just run +theide.exe (or theide32.exe if you have 32`-bit windows). U`+`+ +does not write anything to registry or outside its directory.&] +[s5; U`+`+ comes in two variants:&] +[s5;l160;i150;O0; [* upp`-mingw] contains TMD64 compiler system for +out of the box operation&] +[s5;l160;i150;O0; [* upp`-win] comes without compiler/SDK,&] +[s5; Both variants are able (on first install, when installation +is moved or on demand `- menu Setup/Instant setup) to detect +and use SDK and C`+`+ compiler from [*^https`:`/`/www`.visualstudio`.com`/products`/visual`-studio`-community`-vs^ M +icrosoft Visual Studio 2015][* ](free community edition is fine). +Note: While mingw/TDM64 is fine for light work, we really recommend +using VS2015 C`+`+ compiler for serious work. It significantly +faster and better supported by 3rd party libraries.&] +[s5; When installing Visual Studio 2015, please make sure these options +are checked &] +[s0; &] +[s0;= +@@rawimage:1437&2012 +(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) +&] +[s0; &] +[s5; As can be seen on the above image, [* Visual C`+`+] option from +`"Programming Languages`" category is selected. Moreover, in +`"Windows and Web Development`" [* Universal Windows App Development +Tools] is chosen[* .]&] +[s5; TheIDE can also be configured to work with external MinGW or +older Microsoft compilers and usually auto setup them (menu Setup/Legacy +compilers automatic setup). However, as previous version of Visual +C`+`+ do not support parts of C`+`+11 standard important for +U`+`+, we recommend using compiler from VS2015 (on the other +hand, current U`+`+ will work just fine in C`+`+98 mode with +previous Microsoft compiler).&] [s0; ]] \ No newline at end of file diff --git a/uppsrc/ide/app.tpp/macros$en-us.tpp b/uppsrc/ide/app.tpp/macros_en-us.tpp similarity index 97% rename from uppsrc/ide/app.tpp/macros$en-us.tpp rename to uppsrc/ide/app.tpp/macros_en-us.tpp index fa6c62812..9f084faf6 100644 --- a/uppsrc/ide/app.tpp/macros$en-us.tpp +++ b/uppsrc/ide/app.tpp/macros_en-us.tpp @@ -1,238 +1,238 @@ -topic "TheIDE macros"; -[2 $$0,0#00000000000000000000000000000000:Default] -[l288;i704;a17;O9;~~~.992;2 $$1,0#10431211400427159095818037425705:param] -[a83;*R6 $$2,5#31310162474203024125188417583966:caption] -[b83;*4 $$3,5#07864147445237544204411237157677:title] -[i288;b167;a42;O9;C2 $$4,6#40027414424643823182269349404212:item] -[b42;a42;ph2 $$5,5#45413000475342174754091244180557:text] -[l288;a17;2 $$6,6#27521748481378242620020725143825:desc] -[l321;t246;C@5;1 $$7,7#20902679421464641399138805415013:code] -[b2503;2 $$8,0#65142375456100023862071332075487:separator] -[*@(0.0.255)2 $$9,0#83433469410354161042741608181528:base] -[t4167;C2 $$10,0#37138531426314131251341829483380:class] -[l288;a17;*1 $$11,11#70004532496200323422659154056402:requirement] -[i417;b42;a42;O9;~~~.416;2 $$12,12#10566046415157235020018451313112:tparam] -[b167;C2 $$13,13#92430459443460461911108080531343:item1] -[i288;a42;O9;C2 $$14,14#77422149456609303542238260500223:item2] -[*@2$(0.128.128)2 $$15,15#34511555403152284025741354420178:NewsDate] -[l321;*C$7;2 $$16,16#03451589433145915344929335295360:result] -[l321;b83;a83;*C$7;2 $$17,17#07531550463529505371228428965313:result`-line] -[l160;t4167;*C+117 $$18,5#88603949442205825958800053222425:package`-title] -[b83;*+117 $$19,19#1546C2CD4112BAB0A26C534D6F11ED13:subtitle] -[ph2 $$20,20#DD7DA091E475BE28D02C795D449A6B57:TextInTable] -[{_}%EN-US -[s2; TheIDE Macros&] -[s3; 1. Overview&] -[s5; TheIDE macros are written in [^topic`:`/`/ide`/app`/esc`$en`-us^ Esc -scripting language] and placed in .usc files. .usc files can -be either part of regular packages or are placed in Common or -Local directory.&] -[s5; Macro definition in .usc file starts with header in following -form:&] -[s0; &] -[s7; [* macro] [*/@4 Macro`_menu][* :][*/@4 Macro`_item] [*/@4 Key]&] -[s0; &] -[s5; where [*/@4 Macro`_menu] and [*/@4 Macro`_item] are text literals -(with C syntax) and [*/@4 Key] is key description similar to those -shown in menus. [*/@4 Macro`_menu] with [@(0.0.255) :] and [*/@4 Key] -can be omitted. Macro header is followed by [^topic`:`/`/Esc`/srcdoc`/Esc`$en`-us^ E -sc] body.&] -[s5; Examples:&] -[s0; &] -[s7; macro `"Navigation`":`"Find next `\`"TopWindow`\`"`" Ctrl`+T -`{&] -[s7; -|.Find(`"TopWindow`");&] -[s7; `}&] -[s7; &] -[s7; macro `"Insert current date`" `{&] -[s7; -|s `= `[`];&] -[s7; -|tm `= GetSysTime();&] -[s7; -|s << to`_string(tm.year) << `"`-`" << to`_string(tm.month) -<< `"`-`" << to`_string(tm.day);&] -[s7; -|.Insert(s);&] -[s7; `}&] -[s0; &] -[s5; Formally, from Esc perspective, macro is a `"method`" of editor -`- all editor commands are written in `"method`" notation (starting -with dot).&] -[s5; Additionally, helper functions can be defined using the [*/@5 fn] -keyword:&] -[s0; &] -[s7; fn Duplicate(str) `{&] -[s7; -|return str `+ str;&] -[s7; `}&] -[s0; &] -[s5; Functions defined like this can be simply called in the code -of macros as a global functions.&] -[s3; 2. TheIDE `- API&] -[s19; 2.1 Text editing methods&] -[s5; Most of text editing methods are provided in two (`"overloaded`") -forms `- implicit that works with cursor and selection or explicit -with given positions.&] -[s0; &] -[ {{3667:6333h1;@(204) [s0; Method] -:: [s0; Description] -::^@2 [s0;ph [*C+75 GetLength()]] -:: [s20; Length of text.] -:: [s0;ph [*C+75 GetLineCount()]] -:: [s20; Number of lines in text.] -:: [s0;ph [*C+75 GetLinePos(][/C+75 line][*C+75 )]] -:: [s20; Position (offset from the beginning of the file) of the first -character of [/ line].] -:: [s0;ph [*C+75 GetLineLength(][/C+75 line][*C+75 )]] -:: [s20; Returns the number of characters in given line.] -:: [s0;ph [*C+75 GetCursor()]] -:: [s20; Cursor offset.] -:: [s0;ph [*C+75 GetLine(][/C+75 position][*C+75 )]] -:: [s20; Line for given [/ position].] -:: [s0;ph [*C+75 GetColumn(][/C+75 position][*C+75 )]] -:: [s20; Position in line for given [/ position].] -:: [s0;ph [*C+75 GetSelBegin()]] -:: [s20; Start of selection.] -:: [s0;ph [*C+75 GetSelCount()]] -:: [s20; Number of characters in selection. If zero, GetSelBegin() is -equal to GetCursor().] -:: [s0;ph [*C+75 SetCursor(][/C+75 position][*C+75 )]] -:: [s20; Sets cursor to given [/ position].] -:: [s0;ph [*C+75 SetSelection(][/C+75 position][*C+75 , ][/C+75 count][*C+75 )]] -:: [s20; Sets selection starting with [/ position] with [/ count] characters.] -:: [s0;ph [*C+75 ClearSelection()]] -:: [s20; Cancels selection.] -:: [s0;ph [*C+75 Get(][/C+75 position][*C+75 , ][/C+75 count][*C+75 )]] -:: [s20; Returns array of [/ count] characters, starting at [/ position.]] -:: [s0;ph [*C+75 Get(][/C+75 position][*C+75 )]] -:: [s20; Same as Get(position, 1).] -:: [s0;ph [*C+75 Remove(][/C+75 position][*C+75 , ][/C+75 count][*C+75 )]] -:: [s20; Removes [/ count] characters at [/ position.]] -:: [s0;ph [*C+75 Remove(][/C+75 count][*C+75 )]] -:: [s20; Same as Remove(GetCursor(), [/ count]) `- removes [/ count] characters -at cursor position.] -:: [s0;ph [*C+75 Remove()]] -:: [s20; Same as Remove(GetSelBegin(), GetSelCount()) `- removes selection.] -:: [s0;ph [*C+75 Insert(][/C+75 position][*C+75 , ][/C+75 text][*C+75 )]] -:: [s20; Inserts array of characters [/ text] at the [/ position.]] -:: [s0;ph [*C+75 Insert(][/C+75 text][*C+75 )]] -:: [s20; Same as Insert(GetCursor(), [/ text]) `- inserts [/ text] at cursor -position.] -:: [s0;ph [*C+75 Find(][/C+75 text][*C+75 , ][/C+75 down][*C+75 , ][/C+75 whole`_word][*C+75 , -][/C+75 ignore`_case][*C+75 , ][/C+75 wildcards][*C+75 )]] -:: [s20; Finds [/ text], using give options. Options can be omitted `- -in that case [/ down] is considered true and rest of options false. -If text is found, function returns 1, otherwise 0.] -:: [s0;ph [*C+75 Replace(][/C+75 text][*C+75 , ][/C+75 replace`_with][*C+75 , -][/C+75 whole`_word][*C+75 , ][/C+75 ignore`_case][*C+75 , ][/C+75 widcards][*C+75 )]] -:: [s20; Block replace, using given options. Options ca be omitted `- -in that case they are considered false. Returns number of strings -replaced.] -:: [s0;ph [*C+75 MoveLeft(...)]&] -[s0;ph [*C+75 MoveRight(...)]&] -[s0;ph [*C+75 MoveWordLeft(...)]&] -[s0;ph [*C+75 MoveWordRight(...)]&] -[s0;ph [*C+75 MoveUp(...)]&] -[s0;ph [*C+75 MoveDown(...)]&] -[s0;ph [*C+75 MoveHome(...)]&] -[s0;ph [*C+75 MoveEnd(...)]&] -[s0;ph [*C+75 MovePageUp(...)]&] -[s0;ph [*C+75 MovePageDown(...)]&] -[s0;ph [*C+75 MoveTextBegin(...)]&] -[s0;ph [*C+75 MoveTextEnd(...)]&] -[s0;ph [*C+75 MoveLeft(][/C+75 sel][*C+75 )]&] -[s0;ph [*C+75 MoveRight(][/C+75 sel][*C+75 )]&] -[s0;ph [*C+75 MoveWordLeft(][/C+75 sel][*C+75 )]&] -[s0;ph [*C+75 MoveWordRight(][/C+75 sel][*C+75 )]&] -[s0;ph [*C+75 MoveUp(][/C+75 sel][*C+75 )]&] -[s0;ph [*C+75 MoveDown(][/C+75 sel][*C+75 )]&] -[s0;ph [*C+75 MoveHome(][/C+75 sel][*C+75 )]&] -[s0;ph [*C+75 MoveEnd(][/C+75 sel][*C+75 )]&] -[s0;ph [*C+75 MovePageUp(][/C+75 sel][*C+75 )]&] -[s0;ph [*C+75 MovePageDown(][/C+75 sel][*C+75 )]&] -[s0;ph [*C+75 MoveTextBegin(][/C+75 sel][*C+75 )]&] -[s0;ph [*C+75 MoveTextEnd(sel)]] -:: [s20; Moves cursor in given direction. Variant with [/ sel] makes selection -(like when corresponding movement while pressing Shift key) if -[/ sel] is 1.]}}&] -[s0; &] -[s19; 2.2 File methods&] -[s5; This section grouped methods that allows to manipulate TheIDE -files.&] -[s0; &] -[ {{3667:6333h1;@(204) [s0; Method] -:: [s0; Description] -::^@2 [s0;ph [*C+75 FileName()]] -:: [s20; Returns the name of currently edited file.] -:: [s0;ph [*C+75 EditFile(][/C+75 path][*C+75 )]&] -[s0;ph [*C+75 EditFile(][/C+75 filename, pkg][*C+75 )]] -:: [s20; Opens the specified file in editor.] -:: [s0;ph [*C+75 SaveCurrentFile()]] -:: [s20; Saves file in active tab.] -:: [s0;ph [*C+75 CloseFile()]] -:: [s20; Closes active tab.]}}&] -[s0; &] -[s19; 2.3 User interaction methods&] -[s5; From time to time, it is necessary to communicate some information -from user to the macro or vice versa, which is exactly what these -methods do.&] -[s0; &] -[ {{3629:6371h1;@(204) [s0; Method] -:: [s0; Description] -::^@2 [s0;ph [*C+75 Input(][/C+75 label, ...][*C+75 )]] -:: [s20; Simple input dialog. Provides as many input text fields as is -number of parameters specifying labels for these fields. If user -chooses Cancel, returns void, otherwise returns single string -if there is just one edit field or array of strings for multiple -edit fields.] -:: [s0;ph [*C+75 ClearConsole()]] -:: [s20; Clear the output console.] -:: [s0;ph [*C+75 Echo(][/C+75 ...][*C+75 )]] -:: [s20; Prints all arguments to the output console, one per line.]}}&] -[s0; &] -[s19; 2.4 Build and execute methods&] -[s5; The macros can be used to extend the capabilities of TheIDE. -For that, there is a few methods that allow executing other programs -and also to trigger building U`+`+ packages.&] -[s0; &] -[ {{3667:6333h1;@(204) [s0; Method] -:: [s0; Description] -::^@2 [s0;ph [*C+75 Execute(][/C+75 cmdline][*C+75 )]] -:: [s20; Executes cmdline, capturing the output to the console.] -:: [s0;ph [*C+75 Launch(][/C+75 cmdline][*C+75 )]] -:: [s20; Launches the application.] -:: [s0;ph [*C+75 Build(][/C+75 `[flags`[, outfile`]`]][*C+75 )]] -:: [s20; Builds open main package. Optional parameters can be used to -specify the flags (e.g. `"GUI MT`") and target path for the compiled -executable.] -:: [s0;ph [*C+75 BuildProject(][/C+75 uppfile, flags`[, outfile`]][*C+75 )]] -:: [s20; Same as previous, but works with any package specified by passing -path to it`'s .upp file as a first parameter.]}}&] -[s0; &] -[s19; 2.5 Informative methods&] -[s5; The methods providing information about packages and build settings. -If the optional parameter [/ pkg] is not specified, the currently -selected package is used.&] -[s0; &] -[ {{3667:6333h1;@(204) [s0; Method] -:: [s0; Description] -::^@2 [s0; [*C+75 ActivePackage()]] -:: [s20; The name of package in which the currently edited file belongs -to.] -:: [s0; [*C+75 MainPackage()]] -:: [s20; The name of main package.] -:: [s0; [*C+75 AllPackages()]] -:: [s20; Array of all used packages.] -:: [s0; [*C+75 PackageDir(][/C+75 `[pkg`]][*C+75 )]] -:: [s20; The directory where the package resides.] -:: [s0; [*C+75 PackageFiles(][/C+75 `[pkg`]][*C+75 )]] -:: [s20; List of all files in the package.] -:: [s0; [*C+75 Assembly()]] -:: [s20; Name of the assembly.] -:: [s0; [*C+75 Flags()]] -:: [s20; Array of currently set build flags.] -:: [s0; [*C+75 BuildMethod()]] -:: [s20; Currently selected build method.] -:: [s0; [*C+75 BuildMode()]] -:: [s20; Currently selected build mode (0 `= Debug, 1 `= Optimal, 2 `= -Speed, 3 `= Size).] -:: [s0; [*C+75 Target()]] -:: [s20; Returns current target name. To obtain this value project must -be firstly build.]}}&] +topic "TheIDE macros"; +[2 $$0,0#00000000000000000000000000000000:Default] +[l288;i704;a17;O9;~~~.992;2 $$1,0#10431211400427159095818037425705:param] +[a83;*R6 $$2,5#31310162474203024125188417583966:caption] +[b83;*4 $$3,5#07864147445237544204411237157677:title] +[i288;b167;a42;O9;C2 $$4,6#40027414424643823182269349404212:item] +[b42;a42;ph2 $$5,5#45413000475342174754091244180557:text] +[l288;a17;2 $$6,6#27521748481378242620020725143825:desc] +[l321;t246;C@5;1 $$7,7#20902679421464641399138805415013:code] +[b2503;2 $$8,0#65142375456100023862071332075487:separator] +[*@(0.0.255)2 $$9,0#83433469410354161042741608181528:base] +[t4167;C2 $$10,0#37138531426314131251341829483380:class] +[l288;a17;*1 $$11,11#70004532496200323422659154056402:requirement] +[i417;b42;a42;O9;~~~.416;2 $$12,12#10566046415157235020018451313112:tparam] +[b167;C2 $$13,13#92430459443460461911108080531343:item1] +[i288;a42;O9;C2 $$14,14#77422149456609303542238260500223:item2] +[*@2$(0.128.128)2 $$15,15#34511555403152284025741354420178:NewsDate] +[l321;*C$7;2 $$16,16#03451589433145915344929335295360:result] +[l321;b83;a83;*C$7;2 $$17,17#07531550463529505371228428965313:result`-line] +[l160;t4167;*C+117 $$18,5#88603949442205825958800053222425:package`-title] +[b83;*+117 $$19,19#1546C2CD4112BAB0A26C534D6F11ED13:subtitle] +[ph2 $$20,20#DD7DA091E475BE28D02C795D449A6B57:TextInTable] +[{_}%EN-US +[s2; TheIDE Macros&] +[s3; 1. Overview&] +[s5; TheIDE macros are written in [^topic`:`/`/ide`/app`/esc`$en`-us^ Esc +scripting language] and placed in .usc files. .usc files can +be either part of regular packages or are placed in Common or +Local directory.&] +[s5; Macro definition in .usc file starts with header in following +form:&] +[s0; &] +[s7; [* macro] [*/@4 Macro`_menu][* :][*/@4 Macro`_item] [*/@4 Key]&] +[s0; &] +[s5; where [*/@4 Macro`_menu] and [*/@4 Macro`_item] are text literals +(with C syntax) and [*/@4 Key] is key description similar to those +shown in menus. [*/@4 Macro`_menu] with [@(0.0.255) :] and [*/@4 Key] +can be omitted. Macro header is followed by [^topic`:`/`/Esc`/srcdoc`/Esc`$en`-us^ E +sc] body.&] +[s5; Examples:&] +[s0; &] +[s7; macro `"Navigation`":`"Find next `\`"TopWindow`\`"`" Ctrl`+T +`{&] +[s7; -|.Find(`"TopWindow`");&] +[s7; `}&] +[s7; &] +[s7; macro `"Insert current date`" `{&] +[s7; -|s `= `[`];&] +[s7; -|tm `= GetSysTime();&] +[s7; -|s << to`_string(tm.year) << `"`-`" << to`_string(tm.month) +<< `"`-`" << to`_string(tm.day);&] +[s7; -|.Insert(s);&] +[s7; `}&] +[s0; &] +[s5; Formally, from Esc perspective, macro is a `"method`" of editor +`- all editor commands are written in `"method`" notation (starting +with dot).&] +[s5; Additionally, helper functions can be defined using the [*/@5 fn] +keyword:&] +[s0; &] +[s7; fn Duplicate(str) `{&] +[s7; -|return str `+ str;&] +[s7; `}&] +[s0; &] +[s5; Functions defined like this can be simply called in the code +of macros as a global functions.&] +[s3; 2. TheIDE `- API&] +[s19; 2.1 Text editing methods&] +[s5; Most of text editing methods are provided in two (`"overloaded`") +forms `- implicit that works with cursor and selection or explicit +with given positions.&] +[s0; &] +[ {{3667:6333h1;@(204) [s0; Method] +:: [s0; Description] +::^@2 [s0;ph [*C+75 GetLength()]] +:: [s20; Length of text.] +:: [s0;ph [*C+75 GetLineCount()]] +:: [s20; Number of lines in text.] +:: [s0;ph [*C+75 GetLinePos(][/C+75 line][*C+75 )]] +:: [s20; Position (offset from the beginning of the file) of the first +character of [/ line].] +:: [s0;ph [*C+75 GetLineLength(][/C+75 line][*C+75 )]] +:: [s20; Returns the number of characters in given line.] +:: [s0;ph [*C+75 GetCursor()]] +:: [s20; Cursor offset.] +:: [s0;ph [*C+75 GetLine(][/C+75 position][*C+75 )]] +:: [s20; Line for given [/ position].] +:: [s0;ph [*C+75 GetColumn(][/C+75 position][*C+75 )]] +:: [s20; Position in line for given [/ position].] +:: [s0;ph [*C+75 GetSelBegin()]] +:: [s20; Start of selection.] +:: [s0;ph [*C+75 GetSelCount()]] +:: [s20; Number of characters in selection. If zero, GetSelBegin() is +equal to GetCursor().] +:: [s0;ph [*C+75 SetCursor(][/C+75 position][*C+75 )]] +:: [s20; Sets cursor to given [/ position].] +:: [s0;ph [*C+75 SetSelection(][/C+75 position][*C+75 , ][/C+75 count][*C+75 )]] +:: [s20; Sets selection starting with [/ position] with [/ count] characters.] +:: [s0;ph [*C+75 ClearSelection()]] +:: [s20; Cancels selection.] +:: [s0;ph [*C+75 Get(][/C+75 position][*C+75 , ][/C+75 count][*C+75 )]] +:: [s20; Returns array of [/ count] characters, starting at [/ position.]] +:: [s0;ph [*C+75 Get(][/C+75 position][*C+75 )]] +:: [s20; Same as Get(position, 1).] +:: [s0;ph [*C+75 Remove(][/C+75 position][*C+75 , ][/C+75 count][*C+75 )]] +:: [s20; Removes [/ count] characters at [/ position.]] +:: [s0;ph [*C+75 Remove(][/C+75 count][*C+75 )]] +:: [s20; Same as Remove(GetCursor(), [/ count]) `- removes [/ count] characters +at cursor position.] +:: [s0;ph [*C+75 Remove()]] +:: [s20; Same as Remove(GetSelBegin(), GetSelCount()) `- removes selection.] +:: [s0;ph [*C+75 Insert(][/C+75 position][*C+75 , ][/C+75 text][*C+75 )]] +:: [s20; Inserts array of characters [/ text] at the [/ position.]] +:: [s0;ph [*C+75 Insert(][/C+75 text][*C+75 )]] +:: [s20; Same as Insert(GetCursor(), [/ text]) `- inserts [/ text] at cursor +position.] +:: [s0;ph [*C+75 Find(][/C+75 text][*C+75 , ][/C+75 down][*C+75 , ][/C+75 whole`_word][*C+75 , +][/C+75 ignore`_case][*C+75 , ][/C+75 wildcards][*C+75 )]] +:: [s20; Finds [/ text], using give options. Options can be omitted `- +in that case [/ down] is considered true and rest of options false. +If text is found, function returns 1, otherwise 0.] +:: [s0;ph [*C+75 Replace(][/C+75 text][*C+75 , ][/C+75 replace`_with][*C+75 , +][/C+75 whole`_word][*C+75 , ][/C+75 ignore`_case][*C+75 , ][/C+75 widcards][*C+75 )]] +:: [s20; Block replace, using given options. Options ca be omitted `- +in that case they are considered false. Returns number of strings +replaced.] +:: [s0;ph [*C+75 MoveLeft(...)]&] +[s0;ph [*C+75 MoveRight(...)]&] +[s0;ph [*C+75 MoveWordLeft(...)]&] +[s0;ph [*C+75 MoveWordRight(...)]&] +[s0;ph [*C+75 MoveUp(...)]&] +[s0;ph [*C+75 MoveDown(...)]&] +[s0;ph [*C+75 MoveHome(...)]&] +[s0;ph [*C+75 MoveEnd(...)]&] +[s0;ph [*C+75 MovePageUp(...)]&] +[s0;ph [*C+75 MovePageDown(...)]&] +[s0;ph [*C+75 MoveTextBegin(...)]&] +[s0;ph [*C+75 MoveTextEnd(...)]&] +[s0;ph [*C+75 MoveLeft(][/C+75 sel][*C+75 )]&] +[s0;ph [*C+75 MoveRight(][/C+75 sel][*C+75 )]&] +[s0;ph [*C+75 MoveWordLeft(][/C+75 sel][*C+75 )]&] +[s0;ph [*C+75 MoveWordRight(][/C+75 sel][*C+75 )]&] +[s0;ph [*C+75 MoveUp(][/C+75 sel][*C+75 )]&] +[s0;ph [*C+75 MoveDown(][/C+75 sel][*C+75 )]&] +[s0;ph [*C+75 MoveHome(][/C+75 sel][*C+75 )]&] +[s0;ph [*C+75 MoveEnd(][/C+75 sel][*C+75 )]&] +[s0;ph [*C+75 MovePageUp(][/C+75 sel][*C+75 )]&] +[s0;ph [*C+75 MovePageDown(][/C+75 sel][*C+75 )]&] +[s0;ph [*C+75 MoveTextBegin(][/C+75 sel][*C+75 )]&] +[s0;ph [*C+75 MoveTextEnd(sel)]] +:: [s20; Moves cursor in given direction. Variant with [/ sel] makes selection +(like when corresponding movement while pressing Shift key) if +[/ sel] is 1.]}}&] +[s0; &] +[s19; 2.2 File methods&] +[s5; This section grouped methods that allows to manipulate TheIDE +files.&] +[s0; &] +[ {{3667:6333h1;@(204) [s0; Method] +:: [s0; Description] +::^@2 [s0;ph [*C+75 FileName()]] +:: [s20; Returns the name of currently edited file.] +:: [s0;ph [*C+75 EditFile(][/C+75 path][*C+75 )]&] +[s0;ph [*C+75 EditFile(][/C+75 filename, pkg][*C+75 )]] +:: [s20; Opens the specified file in editor.] +:: [s0;ph [*C+75 SaveCurrentFile()]] +:: [s20; Saves file in active tab.] +:: [s0;ph [*C+75 CloseFile()]] +:: [s20; Closes active tab.]}}&] +[s0; &] +[s19; 2.3 User interaction methods&] +[s5; From time to time, it is necessary to communicate some information +from user to the macro or vice versa, which is exactly what these +methods do.&] +[s0; &] +[ {{3629:6371h1;@(204) [s0; Method] +:: [s0; Description] +::^@2 [s0;ph [*C+75 Input(][/C+75 label, ...][*C+75 )]] +:: [s20; Simple input dialog. Provides as many input text fields as is +number of parameters specifying labels for these fields. If user +chooses Cancel, returns void, otherwise returns single string +if there is just one edit field or array of strings for multiple +edit fields.] +:: [s0;ph [*C+75 ClearConsole()]] +:: [s20; Clear the output console.] +:: [s0;ph [*C+75 Echo(][/C+75 ...][*C+75 )]] +:: [s20; Prints all arguments to the output console, one per line.]}}&] +[s0; &] +[s19; 2.4 Build and execute methods&] +[s5; The macros can be used to extend the capabilities of TheIDE. +For that, there is a few methods that allow executing other programs +and also to trigger building U`+`+ packages.&] +[s0; &] +[ {{3667:6333h1;@(204) [s0; Method] +:: [s0; Description] +::^@2 [s0;ph [*C+75 Execute(][/C+75 cmdline][*C+75 )]] +:: [s20; Executes cmdline, capturing the output to the console.] +:: [s0;ph [*C+75 Launch(][/C+75 cmdline][*C+75 )]] +:: [s20; Launches the application.] +:: [s0;ph [*C+75 Build(][/C+75 `[flags`[, outfile`]`]][*C+75 )]] +:: [s20; Builds open main package. Optional parameters can be used to +specify the flags (e.g. `"GUI MT`") and target path for the compiled +executable.] +:: [s0;ph [*C+75 BuildProject(][/C+75 uppfile, flags`[, outfile`]][*C+75 )]] +:: [s20; Same as previous, but works with any package specified by passing +path to it`'s .upp file as a first parameter.]}}&] +[s0; &] +[s19; 2.5 Informative methods&] +[s5; The methods providing information about packages and build settings. +If the optional parameter [/ pkg] is not specified, the currently +selected package is used.&] +[s0; &] +[ {{3667:6333h1;@(204) [s0; Method] +:: [s0; Description] +::^@2 [s0; [*C+75 ActivePackage()]] +:: [s20; The name of package in which the currently edited file belongs +to.] +:: [s0; [*C+75 MainPackage()]] +:: [s20; The name of main package.] +:: [s0; [*C+75 AllPackages()]] +:: [s20; Array of all used packages.] +:: [s0; [*C+75 PackageDir(][/C+75 `[pkg`]][*C+75 )]] +:: [s20; The directory where the package resides.] +:: [s0; [*C+75 PackageFiles(][/C+75 `[pkg`]][*C+75 )]] +:: [s20; List of all files in the package.] +:: [s0; [*C+75 Assembly()]] +:: [s20; Name of the assembly.] +:: [s0; [*C+75 Flags()]] +:: [s20; Array of currently set build flags.] +:: [s0; [*C+75 BuildMethod()]] +:: [s20; Currently selected build method.] +:: [s0; [*C+75 BuildMode()]] +:: [s20; Currently selected build mode (0 `= Debug, 1 `= Optimal, 2 `= +Speed, 3 `= Size).] +:: [s0; [*C+75 Target()]] +:: [s20; Returns current target name. To obtain this value project must +be firstly build.]}}&] [s0; ]] \ No newline at end of file diff --git a/uppsrc/ide/app.tpp/special$en-us.tpp b/uppsrc/ide/app.tpp/special_en-us.tpp similarity index 100% rename from uppsrc/ide/app.tpp/special$en-us.tpp rename to uppsrc/ide/app.tpp/special_en-us.tpp diff --git a/uppsrc/ide/app.tpp/umk$en-us.tpp b/uppsrc/ide/app.tpp/umk_en-us.tpp similarity index 100% rename from uppsrc/ide/app.tpp/umk$en-us.tpp rename to uppsrc/ide/app.tpp/umk_en-us.tpp diff --git a/uppsrc/ide/app.tpp/upp$en-us.tpp b/uppsrc/ide/app.tpp/upp_en-us.tpp similarity index 100% rename from uppsrc/ide/app.tpp/upp$en-us.tpp rename to uppsrc/ide/app.tpp/upp_en-us.tpp diff --git a/uppsrc/plugin/bz2/src.tpp/index$en-us.tpp b/uppsrc/plugin/bz2/src.tpp/index$en-us.tpp deleted file mode 100644 index 784bff07b..000000000 --- a/uppsrc/plugin/bz2/src.tpp/index$en-us.tpp +++ /dev/null @@ -1,75 +0,0 @@ -topic "BZ2 Compression";[ $$0,0#00000000000000000000000000000000:Default] -[l288;i1120;a17;O9;~~~.1408;2 $$1,0#10431211400427159095818037425705:param] -[a83;*R6 $$2,5#31310162474203024125188417583966:caption] -[b83;*4 $$3,5#07864147445237544204411237157677:title] -[i288;O9;C2 $$4,6#40027414424643823182269349404212:item] -[b42;a42;2 $$5,5#45413000475342174754091244180557:text] -[l288;b17;a17;2 $$6,6#27521748481378242620020725143825:desc] -[l321;tC@5;1 $$7,7#20902679421464641399138805415013:code] -[b2503;2 $$8,0#65142375456100023862071332075487:separator] -[*@(0.0.255)2 $$9,0#83433469410354161042741608181528:base] -[tC2 $$10,0#37138531426314131251341829483380:class] -[l288;a17;*1 $$11,11#70004532496200323422659154056402:requirement] -[i417;b42;a42;O9;~~~.416;2 $$12,12#10566046415157235020018451313112:tparam] -[b167;C2 $$13,13#92430459443460461911108080531343:item1] -[i288;a42;O9;C2 $$14,14#77422149456609303542238260500223:item2] -[*@2$(0.128.128)2 $$15,15#34511555403152284025741354420178:NewsDate] -[l321;*C$7;2 $$16,16#03451589433145915344929335295360:result] -[l321;b83;a83;*C$7;2 $$17,17#07531550463529505371228428965313:result`-line] -[l160;*tC+117 $$18,5#88603949442205825958800053222425:package`-title] -[2 $$19,0#53580023442335529039900623488521:gap] -[tC2 $$20,20#70211524482531209251820423858195:class`-nested] -[b50;2 $$21,21#03324558446220344731010354752573:Par] -[b117;*+117 $$22,21#27457433418004101424360058862402:Caption] -[i128;*C@(28.42.150)2 $$23,23#90519220486603166734501227306500:code] -[i448;a25;kKO9;*@(64)2 $$24,4#37138531426314131252341829483370:item] -[i448;a25;kKO9;*@(64) $$25,0#37138531426314131252341829483380:class] -[i448;a25;kO9;*@(64)2 $$26,26#46142079503553116794228416715415:item`_next] -[{_}%EN-US -[s0;~~~0;%- Upp BZ2 Compression&] -[s0;~~~0;%- plugin`\bz2&] -[s0;~~~0;%- &] -[ {{10000F(128)G(128)@1 [s0; Method Detail]}}&] -[s0; &] -[s24;:`:`:BZ2Compress`(`:`:String`,`:`:Gate2``):%- [^`:`:String^ String]_[@0 BZ -2Compress]([^`:`:String^ String]_[@3 s], [^`:`:Gate2^ Gate2]<[^int^ int], -[^int^ int]>_[@3 progress])&] -[s6;b0;a0; Compress the string [%-*@3 s] using bzip2 library. Run Gate -function [%-*@3 progress] (usually used to update GUI progress -bar) as compression continues. [%-*@3 progress] function is called -each time a block of text is compressed (block size depends on -compression buffer size). Return the compressed String.&] -[s0; &] -[s24;:`:`:BZ2Compress`(`:`:Stream`&`,`:`:Stream`&`,`:`:Gate2``):%- [@(0.0.255) v -oid]_[@0 BZ2Compress]([^`:`:Stream^ Stream]`&_[@3 out], [^`:`:Stream^ Stream]`&_[@3 in], -[^`:`:Gate2^ Gate2]<[^int^ int], [^int^ int]>_[@3 progress]_`=_false)&] -[s6;b0;a0; Compress the Stream [%-*@3 in] while calling Gate function -[%-*@3 progress]for each block that is compressed. Each compressed -block is sent to Stream [%-*@3 out].&] -[s0; &] -[s24;:`:`:BZ2Decompress`(`:`:String`,`:`:Gate2``):%- [^`:`:String^ String]_[@0 B -Z2Decompress]([^`:`:String^ String]_[@3 s], [^`:`:Gate2^ Gate2]<[^int^ int], -[^int^ int]>_[@3 progress]_`=_false)&] -[s6;b0;a0; Decompress the string [%-*@3 s] using bzip2 library. Run -Gate function [%-*@3 progress] (usually used to update GUI progress -bar) as decompression continues. [%-*@3 progress] function is called -each time a block of text is decompressed (block size depends -on decompression buffer size). Return the decompressed String.&] -[s0; &] -[s24;:`:`:BZ2Decompress`(`:`:Stream`&`,`:`:Stream`&`,`:`:Gate2``):%- [@(0.0.255) v -oid]_[@0 BZ2Decompress]([^`:`:Stream^ Stream]`&_[@3 out], [^`:`:Stream^ Stream]`&_[@3 in], -[^`:`:Gate2^ Gate2]<[^int^ int], [^int^ int]>_[@3 progress]_`=_false)&] -[s6;b0;a0; Decompress the Stream [%-*@3 in] while calling Gate function -[%-*@3 progress]for each block that is compressed. Each decompressed -block is sent to Stream [%-*@3 out].&] -[s0; &] -[s24;:`:`:BZ2Decompress`(`:`:Stream`&`,`:`:Gate2``):%- [^`:`:String^ String]_ -[@0 BZ2Decompress]([^`:`:Stream^ Stream]`&_[@3 stream], [^`:`:Gate2^ Gate2]<[^int^ int], -[^int^ int]>_[@3 progress]_`=_false)&] -[s6; Decompress the Stream [%-*@3 stream] using bzip2 library. Run -Gate function [%-*@3 progress] (usually used to update GUI progress -bar) as decompression continues. [%-*@3 progress] function is called -each time a block is decompressed (block size depends on decompression -buffer size). Return the entire decompressed String.&] -[s0; &] -[s0; ] \ No newline at end of file diff --git a/uppsrc/plugin/jpg/src.tpp/JPGRaster$en-us.tpp b/uppsrc/plugin/jpg/src.tpp/JPGRaster_en-us.tpp similarity index 100% rename from uppsrc/plugin/jpg/src.tpp/JPGRaster$en-us.tpp rename to uppsrc/plugin/jpg/src.tpp/JPGRaster_en-us.tpp diff --git a/uppsrc/plugin/lz4/src.tpp/Lz4$en-us.tpp b/uppsrc/plugin/lz4/src.tpp/Lz4_en-us.tpp similarity index 100% rename from uppsrc/plugin/lz4/src.tpp/Lz4$en-us.tpp rename to uppsrc/plugin/lz4/src.tpp/Lz4_en-us.tpp diff --git a/uppsrc/plugin/lzma/src.tpp/lzma$en-us.tpp b/uppsrc/plugin/lzma/src.tpp/lzma_en-us.tpp similarity index 100% rename from uppsrc/plugin/lzma/src.tpp/lzma$en-us.tpp rename to uppsrc/plugin/lzma/src.tpp/lzma_en-us.tpp diff --git a/uppsrc/plugin/zstd/src.tpp/zstd$en-us.tpp b/uppsrc/plugin/zstd/src.tpp/zstd_en-us.tpp similarity index 100% rename from uppsrc/plugin/zstd/src.tpp/zstd$en-us.tpp rename to uppsrc/plugin/zstd/src.tpp/zstd_en-us.tpp